diff --git a/.gitattributes b/.gitattributes index a7233fe6a..2ca17cab1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,6 +11,10 @@ Makefile text eol=lf *.sha1 text eol=lf *.sed text eol=lf *.sh text eol=lf +*.json text eol=lf *.png binary *.bin binary + +*.h linguist-language=C +*.inc linguist-language=Assembly diff --git a/.gitignore b/.gitignore index 3e38a227e..fdc668785 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ ld_script_sapphire.txt *.id2 *.nam *.til +.fuse* *.ld tags types_*.taghl @@ -40,3 +41,4 @@ build/ .idea/ *.DS_Store *.pl +*.bak diff --git a/INSTALL.md b/INSTALL.md index 745f70007..31f136c76 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,11 +1,29 @@ -Run the following commands (first, see [this](#macos) if you are on **macOS** or [this](#old-windows) if you are on **old Windows**): +## Prerequisites + +Until further notice, this repository requires a **baserom.gba** file, which must be [a legitimate copy of English Pokémon FireRed v1.0](https://datomatic.no-intro.org/?page=show_record&s=23&n=1616). See [this article](https://www.howtogeek.com/67241/htg-explains-what-are-md5-sha-1-hashes-and-how-do-i-check-them/) for help on how to verify the checksum. + +---- + +**Linux:** Proceed to [Installation](#installation). + +**macOS:** Get the [Xcode command-line tools](https://developer.apple.com/library/archive/technotes/tn2339/_index.html#//apple_ref/doc/uid/DTS40014588-CH1-DOWNLOADING_COMMAND_LINE_TOOLS_IS_NOT_AVAILABLE_IN_XCODE_FOR_MACOS_10_9__HOW_CAN_I_INSTALL_THEM_ON_MY_MACHINE_). + +**Windows 10 (1709+):** Get the [Windows Subsystem for Linux](https://docs.microsoft.com/windows/wsl/install-win10). + +**Windows Vista, 7, 8, 8.1, and 10 (1507, 1511, 1607, 1703):** Get [Cygwin](https://cygwin.com/install.html) and [include](https://cygwin.com/cygwin-ug-net/setup-net.html#setup-packages) the `make`, `git`, `gcc-core`, `gcc-g++`, and `libpng-devel` packages. If you're on Windows 10 1607 or 1703 and use [the prerelease version of the Linux subsystem](https://docs.microsoft.com/windows/wsl/install-legacy), consider uninstalling it. + + +## Installation + +To set up the repository: git clone https://github.com/pret/pokefirered - git clone https://github.com/pikalaxalt/agbcc -b new_layout_with_libs + git clone https://github.com/luckytyphlosion/agbcc -b new_layout_with_libs - cd agbcc + cd ./agbcc make make install prefix=../pokefirered + make install-sdk prefix=../pokefirered cd ../pokefirered @@ -13,39 +31,12 @@ To build **pokefirered.gba**: make -j$(nproc) -If you have only changed `.c` or `.s` files, you can turn off the dependency scanning temporarily. Changes to any other files will be ignored, and the build will either fail or not reflect those changes. +To confirm it matches the official ROM image while building, do this instead: + + make compare -j$(nproc) + +**Note:** If only `.c` or `.s` files were changed, turn off the dependency scanning temporarily. Changes to any other files will be ignored and the build will either fail or not reflect those changes. make -j$(nproc) NODEP=1 - -## macOS - -Run `xcode-select --install` in Terminal, then proceed by executing the commands. - - -## Old Windows - -*For Windows 8.1 and earlier* - -Download and run the [Cygwin](https://www.cygwin.com/install.html) setup, leaving the default settings intact. At "Select Packages", set the view to "Full" and choose to install the following: - -- `make` -- `git` -- `gcc-core` -- `gcc-g++` -- `libpng-devel` - -In the Cygwin command prompt, enter the commands. - -If the command for building pokefirered.gba does not work, run `nproc` and use that value instead of `$(nproc)` for `make`. - - -## Windows 10 - -Install the [Windows Subsystem for Linux](https://docs.microsoft.com/windows/wsl/install-win10), and run the commands. - -## Important note for all users - -Until further notice, this repository is dependent on `baserom.gba`, which is a copy of Pokémon FireRed (U)(1.0) bearing the SHA1 sum `41cb23d8dccc8ebd7c649cd8fbb58eeace6e2fdc`. If you attempt to build and get the following error or similar, it's because `baserom.gba` is missing. - - No rule to make target 'build/firered/data/librfu_rodata.o', needed by 'pokefirered.elf'. Stop. +**Note 2:** If the build command is not recognized on Linux, including the Linux environment used within Windows, run `nproc` and replace `$(nproc)` with the returned value (e.g.: `make -j4`). Because `nproc` is not available on macOS, the alternative is `sysctl -n hw.ncpu`. diff --git a/Makefile b/Makefile index 495279735..b8b021287 100644 --- a/Makefile +++ b/Makefile @@ -45,6 +45,8 @@ SCANINC := tools/scaninc/scaninc PREPROC := tools/preproc/preproc RAMSCRGEN := tools/ramscrgen/ramscrgen FIX := tools/gbafix/gbafix +MAPJSON := tools/mapjson/mapjson +JSONPROC := tools/jsonproc/jsonproc # Clear the default suffixes .SUFFIXES: @@ -56,10 +58,20 @@ FIX := tools/gbafix/gbafix # Secondary expansion is required for dependency variables in object rules. .SECONDEXPANSION: -.PHONY: rom clean compare tidy +.PHONY: rom tools clean compare tidy $(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR) $(SONG_BUILDDIR)) +infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) + +# Build tools when building the rom +# Disable dependency scanning for clean/tidy/tools +ifeq (,$(filter-out all compare,$(MAKECMDGOALS))) +$(call infoshell, $(MAKE) tools) +else +NODEP := 1 +endif + C_SRCS := $(wildcard $(C_SUBDIR)/*.c) C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) @@ -75,17 +87,51 @@ SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS)) OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) +MAKEFLAGS += --no-print-directory + +AUTO_GEN_TARGETS := + +all: rom + rom: $(ROM) +tools: + @$(MAKE) -C tools/gbagfx + @$(MAKE) -C tools/scaninc + @$(MAKE) -C tools/preproc + @$(MAKE) -C tools/bin2c + @$(MAKE) -C tools/rsfont + @$(MAKE) -C tools/aif2pcm + @$(MAKE) -C tools/ramscrgen + @$(MAKE) -C tools/mid2agb + @$(MAKE) -C tools/gbafix + @$(MAKE) -C tools/mapjson + @$(MAKE) -C tools/jsonproc + # For contributors to make sure a change didn't affect the contents of the ROM. -compare: $(ROM) +compare: rom @$(SHA1) rom.sha1 clean: tidy rm -f sound/direct_sound_samples/*.bin rm -f $(SONG_OBJS) find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + - @$(MAKE) -C berry_fix clean + rm -f $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc + rm -f $(DATA_ASM_SUBDIR)/maps/connections.inc $(DATA_ASM_SUBDIR)/maps/events.inc $(DATA_ASM_SUBDIR)/maps/groups.inc $(DATA_ASM_SUBDIR)/maps/headers.inc + find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} + + rm -f $(AUTO_GEN_TARGETS) + @$(MAKE) clean -C berry_fix + @$(MAKE) clean -C tools/gbagfx + @$(MAKE) clean -C tools/scaninc + @$(MAKE) clean -C tools/preproc + @$(MAKE) clean -C tools/bin2c + @$(MAKE) clean -C tools/rsfont + @$(MAKE) clean -C tools/aif2pcm + @$(MAKE) clean -C tools/ramscrgen + @$(MAKE) clean -C tools/mid2agb + @$(MAKE) clean -C tools/gbafix + @$(MAKE) clean -C tools/mapjson + @$(MAKE) clean -C tools/jsonproc tidy: rm -f $(ROM) $(ELF) $(MAP) @@ -93,6 +139,9 @@ tidy: @$(MAKE) -C berry_fix tidy include graphics_file_rules.mk +include tileset_rules.mk +include map_data_rules.mk +include json_data_rules.mk %.s: ; %.png: ; @@ -115,8 +164,7 @@ $(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_2.o: CC1 := tools/agbcc/bin/old_agbcc -$(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc +$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/isagbprn.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/isagbprn.o: CFLAGS := -mthumb-interwork @@ -138,7 +186,7 @@ $(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep) ifeq ($(NODEP),1) $(ASM_BUILDDIR)/%.o: asm_dep := else -$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) $(ASM_SUBDIR)/$*.s) +$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) -I . $(ASM_SUBDIR)/$*.s) endif $(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep) @@ -147,11 +195,11 @@ $(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep) ifeq ($(NODEP),1) $(DATA_ASM_BUILDDIR)/%.o: data_dep := else -$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s) +$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) -I . $(DATA_ASM_SUBDIR)/$*.s) endif $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) - $(PREPROC) $< charmap.txt | $(CPP) -I include -nostdinc -undef - | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include -nostdinc -undef -Wno-unicode - | $(AS) $(ASFLAGS) -o $@ $(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s $(AS) $(ASFLAGS) -I sound -o $@ $< diff --git a/README.md b/README.md index e1ba89794..5165c65d3 100644 --- a/README.md +++ b/README.md @@ -4,31 +4,28 @@ This is a disassembly of Pokémon FireRed and LeafGreen. It builds the following ROM: -* pokefirered.gba `sha1: 41cb23d8dccc8ebd7c649cd8fbb58eeace6e2fdc` +* [**pokefirered.gba**](https://datomatic.no-intro.org/?page=show_record&s=23&n=1616) `sha1: 41cb23d8dccc8ebd7c649cd8fbb58eeace6e2fdc` -To set up the repository, see [**INSTALL.md**](INSTALL.md). +To set up the repository, see [INSTALL.md](INSTALL.md). ## See also -* Disassembly of [**Pokémon Red and Blue**][pokered] -* Disassembly of [**Pokémon Yellow**][pokeyellow] -* Disassembly of [**Pokémon Gold and Silver**][pokegold] -* Disassembly of [**Pokémon Crystal**][pokecrystal] -* Disassembly of [**Pokémon Pinball**][pokepinball] -* Disassembly of [**Pokémon TCG**][poketcg] -* Disassembly of [**Pokémon Ruby and Sapphire**][pokeruby] -* Disassembly of [**Pokémon Emerald**][pokeemerald] -* Discord: [**pret**][Discord] -* irc: **irc.freenode.net** [**#pret**][irc] +Other disassembly and/or decompilation projects: +* [**Pokémon Red and Blue**](https://github.com/pret/pokered) +* [**Pokémon Gold and Silver (Space World '97 demo)**](https://github.com/pret/pokegold-spaceworld) +* [**Pokémon Yellow**](https://github.com/pret/pokeyellow) +* [**Pokémon Trading Card Game**](https://github.com/pret/poketcg) +* [**Pokémon Pinball**](https://github.com/pret/pokepinball) +* [**Pokémon Stadium**](https://github.com/pret/pokestadium) +* [**Pokémon Gold and Silver**](https://github.com/pret/pokegold) +* [**Pokémon Crystal**](https://github.com/pret/pokecrystal) +* [**Pokémon Ruby and Sapphire**](https://github.com/pret/pokeruby) +* [**Pokémon Pinball: Ruby & Sapphire**](https://github.com/pret/pokepinballrs) +* [**Pokémon Emerald**](https://github.com/pret/pokeemerald) +* [**Pokémon Mystery Dungeon: Red Rescue Team**](https://github.com/pret/pmd-red) -[pokered]: https://github.com/pret/pokered -[pokeyellow]: https://github.com/pret/pokeyellow -[pokegold]: https://github.com/pret/pokegold -[pokecrystal]: https://github.com/pret/pokecrystal -[pokepinball]: https://github.com/pret/pokepinball -[poketcg]: https://github.com/pret/poketcg -[pokeruby]: https://github.com/pret/pokeruby -[pokeemerald]: https://github.com/pret/pokeemerald -[Discord]: https://discord.gg/6EuWgX9 -[irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret + +## Contacts + +You can find us on [Discord](https://discord.gg/6EuWgX9) and [IRC](https://kiwiirc.com/client/irc.freenode.net/?#pret). diff --git a/asm/bag.s b/asm/bag.s deleted file mode 100644 index e7c72d082..000000000 --- a/asm/bag.s +++ /dev/null @@ -1,431 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_810B858 -sub_810B858: @ 810B858 - push {r4,lr} - ldr r0, _0810B86C @ =gUnknown_203ACFC - ldrb r0, [r0, 0x4] - cmp r0, 0x3 - beq _0810B874 - ldr r0, _0810B870 @ =gUnknown_84530C4 - bl InitWindows - b _0810B87A - .align 2, 0 -_0810B86C: .4byte gUnknown_203ACFC -_0810B870: .4byte gUnknown_84530C4 -_0810B874: - ldr r0, _0810B8E4 @ =gUnknown_84530E4 - bl InitWindows -_0810B87A: - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x64 - movs r2, 0xE0 - bl sub_815001C - movs r0, 0 - movs r1, 0x6D - movs r2, 0xD0 - bl sub_814FEAC - movs r0, 0 - movs r1, 0x81 - movs r2, 0xC0 - bl sub_814FF2C - ldr r0, _0810B8E8 @ =gUnknown_8453098 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_0810B8A8: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0810B8A8 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, 0 - ldr r3, _0810B8EC @ =gUnknown_203AD34 - movs r2, 0xFF -_0810B8CC: - adds r0, r4, r3 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _0810B8CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B8E4: .4byte gUnknown_84530E4 -_0810B8E8: .4byte gUnknown_8453098 -_0810B8EC: .4byte gUnknown_203AD34 - thumb_func_end sub_810B858 - - thumb_func_start sub_810B8F0 -sub_810B8F0: @ 810B8F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r3 - ldr r3, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r6, [sp, 0x38] - ldr r5, [sp, 0x3C] - mov r8, r5 - ldr r5, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - mov r9, r7 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, _0810B954 @ =gUnknown_84530B8 - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r2, [sp, 0x10] - mov r2, r9 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810B954: .4byte gUnknown_84530B8 - thumb_func_end sub_810B8F0 - - thumb_func_start sub_810B958 -sub_810B958: @ 810B958 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r2, 0x48 - subs r2, r0 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0810B990 @ =gUnknown_84530B8 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B990: .4byte gUnknown_84530B8 - thumb_func_end sub_810B958 - - thumb_func_start sub_810B994 -sub_810B994: @ 810B994 - push {r4,lr} - sub sp, 0xC - movs r0, 0x2 - movs r1, 0 - movs r2, 0x81 - movs r3, 0xC - bl SetWindowBorderStyle - ldr r4, _0810B9D8 @ =gUnknown_84162E8 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r3, 0x40 - subs r3, r0 - lsrs r3, 1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - adds r2, r4, 0 - bl AddTextPrinterParameterized - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B9D8: .4byte gUnknown_84162E8 - thumb_func_end sub_810B994 - - thumb_func_start sub_810B9DC -sub_810B9DC: @ 810B9DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r6, _0810BA10 @ =gUnknown_203AD34 - adds r4, r5, r6 - ldrb r0, [r4] - cmp r0, 0xFF - bne _0810BA2A - adds r0, r5, r1 - lsls r0, 3 - ldr r1, _0810BA14 @ =gUnknown_8453104 - adds r0, r1 - bl AddWindow - strb r0, [r4] - cmp r5, 0x6 - beq _0810BA18 - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x64 - movs r3, 0xE - bl SetWindowBorderStyle - b _0810BA24 - .align 2, 0 -_0810BA10: .4byte gUnknown_203AD34 -_0810BA14: .4byte gUnknown_8453104 -_0810BA18: - ldrb r0, [r6, 0x6] - movs r1, 0 - movs r2, 0x81 - movs r3, 0xC - bl SetWindowBorderStyle -_0810BA24: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram -_0810BA2A: - ldr r0, _0810BA38 @ =gUnknown_203AD34 - adds r0, r5, r0 - ldrb r0, [r0] - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0810BA38: .4byte gUnknown_203AD34 - thumb_func_end sub_810B9DC - - thumb_func_start sub_810BA3C -sub_810BA3C: @ 810BA3C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810BA6C @ =gUnknown_203AD34 - adds r4, r0 - ldrb r0, [r4] - movs r1, 0 - bl sub_810F4D8 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BA6C: .4byte gUnknown_203AD34 - thumb_func_end sub_810BA3C - - thumb_func_start sub_810BA70 -sub_810BA70: @ 810BA70 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0810BA94 @ =gUnknown_203AD34 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - bne _0810BA8C - lsls r0, r1, 3 - ldr r1, _0810BA98 @ =gUnknown_8453104 - adds r0, r1 - bl AddWindow - strb r0, [r4] -_0810BA8C: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810BA94: .4byte gUnknown_203AD34 -_0810BA98: .4byte gUnknown_8453104 - thumb_func_end sub_810BA70 - - thumb_func_start sub_810BA9C -sub_810BA9C: @ 810BA9C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810BAD4 @ =gUnknown_203AD34 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - beq _0810BACE - movs r1, 0 - bl sub_810F260 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] -_0810BACE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BAD4: .4byte gUnknown_203AD34 - thumb_func_end sub_810BA9C - - thumb_func_start sub_810BAD8 -sub_810BAD8: @ 810BAD8 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810BAE4 @ =gUnknown_203AD34 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0810BAE4: .4byte gUnknown_203AD34 - thumb_func_end sub_810BAD8 - - thumb_func_start sub_810BAE8 -sub_810BAE8: @ 810BAE8 - push {lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810BB10 @ =gUnknown_845311C - movs r2, 0x2 - str r2, [sp] - movs r2, 0x64 - str r2, [sp, 0x4] - movs r2, 0xE - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0x2 - movs r3, 0 - bl sub_80BF5D0 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_0810BB10: .4byte gUnknown_845311C - thumb_func_end sub_810BAE8 - - thumb_func_start sub_810BB14 -sub_810BB14: @ 810BB14 - push {lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810BB3C @ =gUnknown_8453124 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x64 - str r2, [sp, 0x4] - movs r2, 0xE - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0x2 - movs r3, 0 - bl sub_80BF5D0 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_0810BB3C: .4byte gUnknown_8453124 - thumb_func_end sub_810BB14 - - thumb_func_start sub_810BB40 -sub_810BB40: @ 810BB40 - push {r4,lr} - movs r0, 0x2 - movs r1, 0 - bl sub_810B9DC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810BB70 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - adds r3, r0, 0 - adds r0, r4, 0 - movs r1, 0x81 - movs r2, 0xC - bl PrintMoneyAmountInMoneyBoxWithBorder - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BB70: .4byte gSaveBlock1Ptr - thumb_func_end sub_810BB40 - - thumb_func_start sub_810BB74 -sub_810BB74: @ 810BB74 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - movs r2, 0xE - bl sub_8150048 - pop {r0} - bx r0 - thumb_func_end sub_810BB74 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_1.s b/asm/battle_1.s index 72f5fe901..87cb0e750 100644 --- a/asm/battle_1.s +++ b/asm/battle_1.s @@ -223,11 +223,11 @@ sub_800F380: @ 800F380 movs r0, 0x2 movs r1, 0x12 movs r2, 0x10 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0x2 movs r1, 0x22 movs r2, 0x10 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame ldr r4, _0800F3F0 @ =gPlttBufferUnfaded adds r0, r4, 0 adds r0, 0xB8 @@ -253,11 +253,11 @@ sub_800F380: @ 800F380 cmp r0, 0 beq _0800F3EA movs r0, 0x70 - bl sub_80F77CC + bl Menu_LoadStdPalAt movs r0, 0 movs r1, 0x30 movs r2, 0x70 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 adds r0, r4, 0 adds r0, 0xEC movs r1, 0 @@ -294,7 +294,7 @@ sub_800F40C: @ 800F40C thumb_func_start LoadBattleTextboxAndBackground LoadBattleTextboxAndBackground: @ 800F420 push {lr} - ldr r0, _0800F454 @ =gUnknown_8D00000 + ldr r0, _0800F454 @ =gBattleTextboxTiles movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram @@ -305,7 +305,7 @@ LoadBattleTextboxAndBackground: @ 800F420 bl CopyToBgTilemapBuffer movs r0, 0 bl CopyBgTilemapBufferToVram - ldr r0, _0800F45C @ =gUnknown_8D004D8 + ldr r0, _0800F45C @ =gBattleTextboxPalette movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette @@ -314,9 +314,9 @@ LoadBattleTextboxAndBackground: @ 800F420 pop {r0} bx r0 .align 2, 0 -_0800F454: .4byte gUnknown_8D00000 +_0800F454: .4byte gBattleTextboxTiles _0800F458: .4byte gFile_graphics_interface_menu_map_tilemap -_0800F45C: .4byte gUnknown_8D004D8 +_0800F45C: .4byte gBattleTextboxPalette thumb_func_end LoadBattleTextboxAndBackground thumb_func_start sub_800F460 @@ -517,7 +517,7 @@ _0800F5C8: .4byte 0x00006001 thumb_func_start sub_800F5CC sub_800F5CC: @ 800F5CC push {lr} - ldr r0, _0800F5E0 @ =gUnknown_2023E8A + ldr r0, _0800F5E0 @ =gBattleOutcome ldrb r2, [r0] cmp r2, 0x3 bne _0800F5E8 @@ -526,7 +526,7 @@ sub_800F5CC: @ 800F5CC bl sub_80D87BC b _0800F6F0 .align 2, 0 -_0800F5E0: .4byte gUnknown_2023E8A +_0800F5E0: .4byte gBattleOutcome _0800F5E4: .4byte gUnknown_83FE883 _0800F5E8: ldr r0, _0800F61C @ =gBattleTypeFlags @@ -908,7 +908,7 @@ _0800F8F0: ldrsh r0, [r5, r1] cmp r0, 0 beq _0800F958 - ldr r4, _0800F944 @ =gUnknown_2022978 + ldr r4, _0800F944 @ =gBattle_BG1_X ldrh r0, [r5, 0xA] bl Sin2 lsls r0, 16 @@ -923,7 +923,7 @@ _0800F90A: adds r0, r2, 0 subs r0, r1 strh r0, [r4] - ldr r4, _0800F948 @ =gUnknown_202297C + ldr r4, _0800F948 @ =gBattle_BG2_X ldrh r0, [r5, 0xC] bl Sin2 lsls r0, 16 @@ -938,21 +938,21 @@ _0800F928: adds r0, r3, 0 subs r0, r1 strh r0, [r4] - ldr r0, _0800F94C @ =gUnknown_202297A + ldr r0, _0800F94C @ =gBattle_BG1_Y ldr r2, _0800F950 @ =0x0000ffdc adds r1, r2, 0 strh r1, [r0] - ldr r0, _0800F954 @ =gUnknown_202297E + ldr r0, _0800F954 @ =gBattle_BG2_Y strh r1, [r0] b _0800F9C4 .align 2, 0 -_0800F944: .4byte gUnknown_2022978 -_0800F948: .4byte gUnknown_202297C -_0800F94C: .4byte gUnknown_202297A +_0800F944: .4byte gBattle_BG1_X +_0800F948: .4byte gBattle_BG2_X +_0800F94C: .4byte gBattle_BG1_Y _0800F950: .4byte 0x0000ffdc -_0800F954: .4byte gUnknown_202297E +_0800F954: .4byte gBattle_BG2_Y _0800F958: - ldr r4, _0800F9E8 @ =gUnknown_2022978 + ldr r4, _0800F9E8 @ =gBattle_BG1_X ldrh r0, [r5, 0xA] bl Sin2 lsls r0, 16 @@ -967,7 +967,7 @@ _0800F96A: adds r0, r3, 0 subs r0, r1 strh r0, [r4] - ldr r4, _0800F9EC @ =gUnknown_202297A + ldr r4, _0800F9EC @ =gBattle_BG1_Y ldrh r0, [r5, 0xA] bl Cos2 lsls r0, 16 @@ -979,7 +979,7 @@ _0800F988: asrs r0, 5 subs r0, 0xA4 strh r0, [r4] - ldr r4, _0800F9F0 @ =gUnknown_202297C + ldr r4, _0800F9F0 @ =gBattle_BG2_X ldrh r0, [r5, 0xC] bl Sin2 lsls r0, 16 @@ -994,7 +994,7 @@ _0800F9A0: adds r0, r2, 0 subs r0, r1 strh r0, [r4] - ldr r4, _0800F9F4 @ =gUnknown_202297E + ldr r4, _0800F9F4 @ =gBattle_BG2_Y ldrh r0, [r5, 0xC] bl Cos2 lsls r0, 16 @@ -1025,10 +1025,10 @@ _0800F9C4: strh r0, [r1, 0xA] b _0800FAC4 .align 2, 0 -_0800F9E8: .4byte gUnknown_2022978 -_0800F9EC: .4byte gUnknown_202297A -_0800F9F0: .4byte gUnknown_202297C -_0800F9F4: .4byte gUnknown_202297E +_0800F9E8: .4byte gBattle_BG1_X +_0800F9EC: .4byte gBattle_BG1_Y +_0800F9F0: .4byte gBattle_BG2_X +_0800F9F4: .4byte gBattle_BG2_Y _0800F9F8: .4byte gTasks _0800F9FC: movs r3, 0x12 @@ -1190,11 +1190,11 @@ sub_800FAE0: @ 800FAE0 movs r0, 0x4A movs r1, 0x36 bl SetGpuReg - ldr r0, _0800FB84 @ =gUnknown_202297A + ldr r0, _0800FB84 @ =gBattle_BG1_Y ldr r2, _0800FB88 @ =0x0000ff5c adds r1, r2, 0 strh r1, [r0] - ldr r0, _0800FB8C @ =gUnknown_202297E + ldr r0, _0800FB8C @ =gBattle_BG2_Y strh r1, [r0] ldr r0, _0800FB90 @ =gUnknown_8248318 bl sub_800F034 @@ -1208,9 +1208,9 @@ _0800FB74: .4byte 0x06010000 _0800FB78: .4byte gFile_graphics_battle_transitions_vs_frame_palette _0800FB7C: .4byte 0x00005c04 _0800FB80: .4byte gFile_graphics_battle_transitions_vs_frame_tilemap -_0800FB84: .4byte gUnknown_202297A +_0800FB84: .4byte gBattle_BG1_Y _0800FB88: .4byte 0x0000ff5c -_0800FB8C: .4byte gUnknown_202297E +_0800FB8C: .4byte gBattle_BG2_Y _0800FB90: .4byte gUnknown_8248318 _0800FB94: movs r0, 0x80 @@ -1385,13 +1385,13 @@ _0800FCD0: .4byte _0800FD68 .4byte _0800FD8C _0800FCEC: - ldr r0, _0800FCF8 @ =gUnknown_8D00000 + ldr r0, _0800FCF8 @ =gBattleTextboxTiles movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _0800FD94 .align 2, 0 -_0800FCF8: .4byte gUnknown_8D00000 +_0800FCF8: .4byte gBattleTextboxTiles _0800FCFC: ldr r1, _0800FD10 @ =gFile_graphics_interface_menu_map_tilemap movs r0, 0 @@ -1404,13 +1404,13 @@ _0800FCFC: .align 2, 0 _0800FD10: .4byte gFile_graphics_interface_menu_map_tilemap _0800FD14: - ldr r0, _0800FD20 @ =gUnknown_8D004D8 + ldr r0, _0800FD20 @ =gBattleTextboxPalette movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette b _0800FD94 .align 2, 0 -_0800FD20: .4byte gUnknown_8D004D8 +_0800FD20: .4byte gBattleTextboxPalette _0800FD24: bl sub_800FC2C lsls r0, 24 diff --git a/asm/battle_2.s b/asm/battle_2.s index 1ecfe6ad3..0826ea927 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -45,11 +45,11 @@ _0800FDD8: cmp r1, 0 beq _0800FDFE movs r0, 0x19 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _0800FE1C _0800FDFE: movs r0, 0x18 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _0800FE1C _0800FE06: movs r0, 0x80 @@ -57,11 +57,11 @@ _0800FE06: cmp r1, 0 beq _0800FE16 movs r0, 0x1A - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _0800FE1C _0800FE16: movs r0, 0x17 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _0800FE1C: pop {r4} pop {r0} @@ -104,8 +104,8 @@ sub_800FE24: @ 800FE24 strh r0, [r1] ldr r0, _0800FF34 @ =gUnknown_2022986 strh r4, [r0] - bl dp12_8087EA4 - ldr r0, _0800FF38 @ =gUnknown_2038700 + bl ScanlineEffect_Clear + ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers movs r3, 0xF0 movs r1, 0xF0 lsls r1, 3 @@ -121,7 +121,7 @@ _0800FE88: bge _0800FE88 movs r1, 0x50 ldr r4, _0800FF3C @ =gUnknown_824EFE4 - ldr r0, _0800FF38 @ =gUnknown_2038700 + ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers ldr r3, _0800FF40 @ =0x0000ff10 movs r5, 0x82 lsls r5, 4 @@ -138,24 +138,24 @@ _0800FEA6: ldr r0, [r4] ldr r1, [r4, 0x4] ldr r2, [r4, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams bl ResetPaletteFade - ldr r0, _0800FF44 @ =gUnknown_2022974 + ldr r0, _0800FF44 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _0800FF48 @ =gUnknown_2022976 + ldr r0, _0800FF48 @ =gBattle_BG0_Y strh r1, [r0] - ldr r0, _0800FF4C @ =gUnknown_2022978 + ldr r0, _0800FF4C @ =gBattle_BG1_X strh r1, [r0] - ldr r0, _0800FF50 @ =gUnknown_202297A + ldr r0, _0800FF50 @ =gBattle_BG1_Y strh r1, [r0] - ldr r0, _0800FF54 @ =gUnknown_202297C + ldr r0, _0800FF54 @ =gBattle_BG2_X strh r1, [r0] - ldr r0, _0800FF58 @ =gUnknown_202297E + ldr r0, _0800FF58 @ =gBattle_BG2_Y strh r1, [r0] - ldr r0, _0800FF5C @ =gUnknown_2022980 + ldr r0, _0800FF5C @ =gBattle_BG3_X strh r1, [r0] - ldr r0, _0800FF60 @ =gUnknown_2022982 + ldr r0, _0800FF60 @ =gBattle_BG3_Y strh r1, [r0] bl sub_807FC5C ldr r1, _0800FF64 @ =gUnknown_2022B50 @@ -186,17 +186,17 @@ _0800FF28: .4byte 0x05006000 _0800FF2C: .4byte 0x00005051 _0800FF30: .4byte gUnknown_2022984 _0800FF34: .4byte gUnknown_2022986 -_0800FF38: .4byte gUnknown_2038700 +_0800FF38: .4byte gScanlineEffectRegBuffers _0800FF3C: .4byte gUnknown_824EFE4 _0800FF40: .4byte 0x0000ff10 -_0800FF44: .4byte gUnknown_2022974 -_0800FF48: .4byte gUnknown_2022976 -_0800FF4C: .4byte gUnknown_2022978 -_0800FF50: .4byte gUnknown_202297A -_0800FF54: .4byte gUnknown_202297C -_0800FF58: .4byte gUnknown_202297E -_0800FF5C: .4byte gUnknown_2022980 -_0800FF60: .4byte gUnknown_2022982 +_0800FF44: .4byte gBattle_BG0_X +_0800FF48: .4byte gBattle_BG0_Y +_0800FF4C: .4byte gBattle_BG1_X +_0800FF50: .4byte gBattle_BG1_Y +_0800FF54: .4byte gBattle_BG2_X +_0800FF58: .4byte gBattle_BG2_Y +_0800FF5C: .4byte gBattle_BG3_X +_0800FF60: .4byte gBattle_BG3_Y _0800FF64: .4byte gUnknown_2022B50 _0800FF68: .4byte gReservedSpritePaletteCount _0800FF6C: .4byte sub_80116F4 @@ -1645,7 +1645,7 @@ _08010B2A: ldrb r0, [r0] cmp r0, 0 beq _08010B64 - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 cmp r0, 0 beq _08010B82 @@ -2093,13 +2093,13 @@ _08010EE4: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 - ldr r1, _08010EF8 @ =gUnknown_201C0C8 + ldr r1, _08010EF8 @ =gDecompressionBuffer + 0x0C8 movs r2, 0x64 bl SendBlock ldr r1, _08010EFC @ =gUnknown_2023E82 b _080110EA .align 2, 0 -_08010EF8: .4byte gUnknown_201C0C8 +_08010EF8: .4byte gDecompressionBuffer + 0x0C8 _08010EFC: .4byte gUnknown_2023E82 _08010F00: bl GetBlockReceivedStatus @@ -2376,7 +2376,7 @@ sub_8011100: @ 8011100 cmp r0, 0 beq _08011158 ldr r2, _08011168 @ =gSpecialVar_Result - ldr r1, _0801116C @ =gUnknown_2023E8A + ldr r1, _0801116C @ =gBattleOutcome movs r0, 0x3 strb r0, [r1] movs r0, 0x3 @@ -2399,7 +2399,7 @@ _08011158: _08011160: .4byte gMain _08011164: .4byte gBattleTypeFlags _08011168: .4byte gSpecialVar_Result -_0801116C: .4byte gUnknown_2023E8A +_0801116C: .4byte gBattleOutcome _08011170: .4byte CB2_QuitRecordedBattle thumb_func_end sub_8011100 @@ -2410,7 +2410,7 @@ FreeRestoreBattleData: @ 8011174 ldr r0, _080111B0 @ =gUnknown_3004F80 ldr r0, [r0] str r0, [r1] - ldr r2, _080111B4 @ =gUnknown_2039600 + ldr r2, _080111B4 @ =gScanlineEffect movs r0, 0x3 strb r0, [r2, 0x15] ldr r0, _080111B8 @ =0x00000439 @@ -2431,7 +2431,7 @@ FreeRestoreBattleData: @ 8011174 .align 2, 0 _080111AC: .4byte gMain _080111B0: .4byte gUnknown_3004F80 -_080111B4: .4byte gUnknown_2039600 +_080111B4: .4byte gScanlineEffect _080111B8: .4byte 0x00000439 thumb_func_end FreeRestoreBattleData @@ -3125,35 +3125,35 @@ _080116F0: .4byte 0x04000008 sub_80116F4: @ 80116F4 push {lr} bl Random - ldr r0, _08011788 @ =gUnknown_2022974 + ldr r0, _08011788 @ =gBattle_BG0_X ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg - ldr r0, _0801178C @ =gUnknown_2022976 + ldr r0, _0801178C @ =gBattle_BG0_Y ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, _08011790 @ =gUnknown_2022978 + ldr r0, _08011790 @ =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, _08011794 @ =gUnknown_202297A + ldr r0, _08011794 @ =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, _08011798 @ =gUnknown_202297C + ldr r0, _08011798 @ =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, _0801179C @ =gUnknown_202297E + ldr r0, _0801179C @ =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, _080117A0 @ =gUnknown_2022980 + ldr r0, _080117A0 @ =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg - ldr r0, _080117A4 @ =gUnknown_2022982 + ldr r0, _080117A4 @ =gBattle_BG3_Y ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg @@ -3176,18 +3176,18 @@ sub_80116F4: @ 80116F4 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .align 2, 0 -_08011788: .4byte gUnknown_2022974 -_0801178C: .4byte gUnknown_2022976 -_08011790: .4byte gUnknown_2022978 -_08011794: .4byte gUnknown_202297A -_08011798: .4byte gUnknown_202297C -_0801179C: .4byte gUnknown_202297E -_080117A0: .4byte gUnknown_2022980 -_080117A4: .4byte gUnknown_2022982 +_08011788: .4byte gBattle_BG0_X +_0801178C: .4byte gBattle_BG0_Y +_08011790: .4byte gBattle_BG1_X +_08011794: .4byte gBattle_BG1_Y +_08011798: .4byte gBattle_BG2_X +_0801179C: .4byte gBattle_BG2_Y +_080117A0: .4byte gBattle_BG3_X +_080117A4: .4byte gBattle_BG3_Y _080117A8: .4byte gUnknown_2022984 _080117AC: .4byte gUnknown_2022986 _080117B0: .4byte gUnknown_2022988 @@ -3548,8 +3548,8 @@ sub_8011A1C: @ 8011A1C strh r0, [r1] ldr r0, _08011B4C @ =gUnknown_2022986 strh r4, [r0] - bl dp12_8087EA4 - ldr r0, _08011B50 @ =gUnknown_2038700 + bl ScanlineEffect_Clear + ldr r0, _08011B50 @ =gScanlineEffectRegBuffers movs r3, 0xF0 movs r1, 0xF0 lsls r1, 3 @@ -3564,7 +3564,7 @@ _08011A80: cmp r1, 0 bge _08011A80 movs r1, 0x50 - ldr r0, _08011B50 @ =gUnknown_2038700 + ldr r0, _08011B50 @ =gScanlineEffectRegBuffers ldr r3, _08011B54 @ =0x0000ff10 movs r4, 0x82 lsls r4, 4 @@ -3579,25 +3579,25 @@ _08011A9C: cmp r1, 0x9F ble _08011A9C bl ResetPaletteFade - ldr r0, _08011B58 @ =gUnknown_2022974 + ldr r0, _08011B58 @ =gBattle_BG0_X movs r4, 0 strh r4, [r0] - ldr r0, _08011B5C @ =gUnknown_2022976 + ldr r0, _08011B5C @ =gBattle_BG0_Y strh r4, [r0] - ldr r0, _08011B60 @ =gUnknown_2022978 + ldr r0, _08011B60 @ =gBattle_BG1_X strh r4, [r0] - ldr r0, _08011B64 @ =gUnknown_202297A + ldr r0, _08011B64 @ =gBattle_BG1_Y strh r4, [r0] - ldr r0, _08011B68 @ =gUnknown_202297C + ldr r0, _08011B68 @ =gBattle_BG2_X strh r4, [r0] - ldr r0, _08011B6C @ =gUnknown_202297E + ldr r0, _08011B6C @ =gBattle_BG2_Y strh r4, [r0] - ldr r0, _08011B70 @ =gUnknown_2022980 + ldr r0, _08011B70 @ =gBattle_BG3_X strh r4, [r0] - ldr r0, _08011B74 @ =gUnknown_2022982 + ldr r0, _08011B74 @ =gBattle_BG3_Y strh r4, [r0] bl sub_800F34C - ldr r0, _08011B78 @ =gUnknown_8D004D8 + ldr r0, _08011B78 @ =gBattleTextboxPalette movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette @@ -3645,17 +3645,17 @@ _08011B40: .4byte 0x05006000 _08011B44: .4byte 0x00005051 _08011B48: .4byte gUnknown_2022984 _08011B4C: .4byte gUnknown_2022986 -_08011B50: .4byte gUnknown_2038700 +_08011B50: .4byte gScanlineEffectRegBuffers _08011B54: .4byte 0x0000ff10 -_08011B58: .4byte gUnknown_2022974 -_08011B5C: .4byte gUnknown_2022976 -_08011B60: .4byte gUnknown_2022978 -_08011B64: .4byte gUnknown_202297A -_08011B68: .4byte gUnknown_202297C -_08011B6C: .4byte gUnknown_202297E -_08011B70: .4byte gUnknown_2022980 -_08011B74: .4byte gUnknown_2022982 -_08011B78: .4byte gUnknown_8D004D8 +_08011B58: .4byte gBattle_BG0_X +_08011B5C: .4byte gBattle_BG0_Y +_08011B60: .4byte gBattle_BG1_X +_08011B64: .4byte gBattle_BG1_Y +_08011B68: .4byte gBattle_BG2_X +_08011B6C: .4byte gBattle_BG2_Y +_08011B70: .4byte gBattle_BG3_X +_08011B74: .4byte gBattle_BG3_Y +_08011B78: .4byte gBattleTextboxPalette _08011B7C: .4byte gReservedSpritePaletteCount _08011B80: .4byte sub_80116F4 _08011B84: .4byte sub_800F6FC @@ -4511,7 +4511,7 @@ _080121D4: .4byte SpriteCB_HealthBoxBounce _080121D8: .4byte gUnknown_3004FF0 _080121DC: .4byte gSprites _080121E0: - ldr r0, _0801224C @ =gUnknown_2023D44 + ldr r0, _0801224C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r7, [r0] ldr r2, _08012250 @ =gUnknown_2024018 @@ -4567,7 +4567,7 @@ _0801223C: pop {r0} bx r0 .align 2, 0 -_0801224C: .4byte gUnknown_2023D44 +_0801224C: .4byte gBattlerSpriteIds _08012250: .4byte gUnknown_2024018 _08012254: .4byte gSprites thumb_func_end dp11b_obj_instanciate @@ -4966,7 +4966,7 @@ _08012522: strb r0, [r2, 0x1D] ldr r0, _08012724 @ =gUnknown_2023D72 strb r1, [r0] - ldr r2, _08012728 @ =gUnknown_2023E8A + ldr r2, _08012728 @ =gBattleOutcome strb r1, [r2] ldr r0, _0801272C @ =gUnknown_2023BC8 str r1, [r0] @@ -5194,7 +5194,7 @@ _08012718: .4byte 0x00010002 _0801271C: .4byte gSaveBlock2Ptr _08012720: .4byte gBattleScripting _08012724: .4byte gUnknown_2023D72 -_08012728: .4byte gUnknown_2023E8A +_08012728: .4byte gBattleOutcome _0801272C: .4byte gUnknown_2023BC8 _08012730: .4byte gUnknown_2023E7E _08012734: .4byte gUnknown_2023E82 @@ -7783,7 +7783,7 @@ sub_8013BD4: @ 8013BD4 push {r5-r7} movs r0, 0x1 bl TurnValuesCleanUp - ldr r0, _08013C78 @ =gUnknown_2023E8A + ldr r0, _08013C78 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0 bne _08013C04 @@ -7844,7 +7844,7 @@ _08013C58: subs r0, 0x1 cmp r0, r1 bge _08013C58 - ldr r0, _08013C78 @ =gUnknown_2023E8A + ldr r0, _08013C78 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0 beq _08013CB0 @@ -7856,7 +7856,7 @@ _08013C58: str r0, [r1] b _08013D20 .align 2, 0 -_08013C78: .4byte gUnknown_2023E8A +_08013C78: .4byte gBattleOutcome _08013C7C: .4byte gBattleStruct _08013C80: .4byte gUnknown_2023DD0 _08013C84: .4byte 0xfffffdff @@ -10971,7 +10971,7 @@ _080155C4: .4byte gBattleResources thumb_func_start RunTurnActionsFunctions RunTurnActionsFunctions: @ 80155C8 push {r4-r6,lr} - ldr r6, _0801561C @ =gUnknown_2023E8A + ldr r6, _0801561C @ =gBattleOutcome ldrb r0, [r6] ldr r2, _08015620 @ =gUnknown_2023BE3 cmp r0, 0 @@ -11012,7 +11012,7 @@ _080155D8: str r0, [r3] b _0801565C .align 2, 0 -_0801561C: .4byte gUnknown_2023E8A +_0801561C: .4byte gBattleOutcome _08015620: .4byte gUnknown_2023BE3 _08015624: .4byte gBattleStruct _08015628: .4byte gUnknown_2023BE2 @@ -11058,7 +11058,7 @@ sub_8015670: @ 8015670 cmp r0, 0 beq _080156C4 ldr r1, _080156B0 @ =gBattleTextBuff1 - ldr r4, _080156B4 @ =gUnknown_2023E8A + ldr r4, _080156B4 @ =gBattleOutcome ldrb r0, [r4] strb r0, [r1] movs r0, 0 @@ -11077,7 +11077,7 @@ sub_8015670: @ 8015670 _080156A8: .4byte gUnknown_2023BE3 _080156AC: .4byte gBattleTypeFlags _080156B0: .4byte gBattleTextBuff1 -_080156B4: .4byte gUnknown_2023E8A +_080156B4: .4byte gBattleOutcome _080156B8: .4byte sBattler_AI _080156BC: .4byte gUnknown_2023D74 _080156C0: .4byte gUnknown_81D88CC @@ -11181,7 +11181,7 @@ sub_801578C: @ 801578C cmp r0, 0 beq _080157E0 ldr r1, _080157CC @ =gBattleTextBuff1 - ldr r4, _080157D0 @ =gUnknown_2023E8A + ldr r4, _080157D0 @ =gBattleOutcome ldrb r0, [r4] strb r0, [r1] movs r0, 0 @@ -11200,7 +11200,7 @@ sub_801578C: @ 801578C _080157C4: .4byte gUnknown_2023BE3 _080157C8: .4byte gBattleTypeFlags _080157CC: .4byte gBattleTextBuff1 -_080157D0: .4byte gUnknown_2023E8A +_080157D0: .4byte gBattleOutcome _080157D4: .4byte sBattler_AI _080157D8: .4byte gUnknown_2023D74 _080157DC: .4byte gUnknown_81D88CC @@ -11496,7 +11496,7 @@ sub_8015A30: @ 8015A30 ldrb r0, [r0] cmp r0, 0 beq _08015A52 - ldr r0, _08015A60 @ =gUnknown_2023E8A + ldr r0, _08015A60 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _08015A6C @@ -11507,7 +11507,7 @@ _08015A52: .align 2, 0 _08015A58: .4byte gPaletteFade _08015A5C: .4byte gUnknown_3004FD4 -_08015A60: .4byte gUnknown_2023E8A +_08015A60: .4byte gBattleOutcome _08015A64: .4byte gUnknown_3004F84 _08015A68: .4byte ReturnFromBattleToOverworld _08015A6C: @@ -11653,7 +11653,7 @@ _08015B74: bne _08015BD4 _08015B86: ldr r1, _08015BE8 @ =gSpecialVar_Result - ldr r5, _08015BEC @ =gUnknown_2023E8A + ldr r5, _08015BEC @ =gBattleOutcome ldrb r0, [r5] strh r0, [r1] ldr r3, _08015BF0 @ =gMain @@ -11698,7 +11698,7 @@ _08015BDC: .4byte gBattleTypeFlags _08015BE0: .4byte gPlayerParty _08015BE4: .4byte gReceivedRemoteLinkPlayers _08015BE8: .4byte gSpecialVar_Result -_08015BEC: .4byte gUnknown_2023E8A +_08015BEC: .4byte gBattleOutcome _08015BF0: .4byte gMain _08015BF4: .4byte 0x00000439 _08015BF8: .4byte gUnknown_3004F80 @@ -12610,10 +12610,10 @@ sub_8016374: @ 8016374 adds r0, r1 ldrb r0, [r0] strb r0, [r3] - ldr r0, _080163EC @ =gUnknown_2022974 + ldr r0, _080163EC @ =gBattle_BG0_X movs r2, 0 strh r2, [r0] - ldr r0, _080163F0 @ =gUnknown_2022976 + ldr r0, _080163F0 @ =gBattle_BG0_Y strh r2, [r0] ldr r1, _080163F4 @ =gUnknown_2023FF8 ldrb r0, [r3] @@ -12661,8 +12661,8 @@ _080163DA: _080163E0: .4byte sBattler_AI _080163E4: .4byte gUnknown_2023BDE _080163E8: .4byte gUnknown_2023BE2 -_080163EC: .4byte gUnknown_2022974 -_080163F0: .4byte gUnknown_2022976 +_080163EC: .4byte gBattle_BG0_X +_080163F0: .4byte gBattle_BG0_Y _080163F4: .4byte gUnknown_2023FF8 _080163F8: .4byte gUnknown_2023FFC _080163FC: .4byte gBattleTextBuff1 @@ -12690,10 +12690,10 @@ sub_8016418: @ 8016418 ldrb r0, [r0] strb r0, [r2] strb r0, [r4] - ldr r0, _08016484 @ =gUnknown_2022974 + ldr r0, _08016484 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08016488 @ =gUnknown_2022976 + ldr r0, _08016488 @ =gBattle_BG0_Y strh r1, [r0] ldrb r0, [r4] bl ClearFuryCutterDestinyBondGrudge @@ -12726,8 +12726,8 @@ _08016474: .4byte sBattler_AI _08016478: .4byte gBattlerTarget _0801647C: .4byte gUnknown_2023BDE _08016480: .4byte gUnknown_2023BE2 -_08016484: .4byte gUnknown_2022974 -_08016488: .4byte gUnknown_2022976 +_08016484: .4byte gBattle_BG0_X +_08016488: .4byte gBattle_BG0_Y _0801648C: .4byte gUnknown_2023D68 _08016490: .4byte gUnknown_20233C4 _08016494: .4byte gUnknown_2023D74 @@ -13212,7 +13212,7 @@ _0801687A: ldr r0, _0801689C @ =gBattlersCount ldrb r0, [r0] strb r0, [r1] - ldr r1, _080168A0 @ =gUnknown_2023E8A + ldr r1, _080168A0 @ =gBattleOutcome movs r0, 0x4 strb r0, [r1] _0801688C: @@ -13224,7 +13224,7 @@ _0801688C: _08016894: .4byte gBattleStruct _08016898: .4byte gUnknown_2023BE2 _0801689C: .4byte gBattlersCount -_080168A0: .4byte gUnknown_2023E8A +_080168A0: .4byte gBattleOutcome thumb_func_end sub_8016748 thumb_func_start sub_80168A4 @@ -13254,7 +13254,7 @@ sub_80168A4: @ 80168A4 beq _08016938 adds r4, r2, 0 ldr r6, _0801690C @ =gUnknown_2023D7C - ldr r5, _08016910 @ =gUnknown_2023E8A + ldr r5, _08016910 @ =gBattleOutcome _080168D8: ldrb r0, [r4] bl GetBattlerSide @@ -13277,7 +13277,7 @@ _08016900: .4byte gBattleTypeFlags _08016904: .4byte gBattlersCount _08016908: .4byte gActiveBattler _0801690C: .4byte gUnknown_2023D7C -_08016910: .4byte gUnknown_2023E8A +_08016910: .4byte gBattleOutcome _08016914: ldrb r0, [r4] adds r0, r6 @@ -13300,7 +13300,7 @@ _08016926: cmp r0, r1 bcc _080168D8 _08016938: - ldr r0, _08016948 @ =gUnknown_2023E8A + ldr r0, _08016948 @ =gBattleOutcome ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 @@ -13308,7 +13308,7 @@ _08016938: b _080169D8 .align 2, 0 _08016944: .4byte gBattlersCount -_08016948: .4byte gUnknown_2023E8A +_08016948: .4byte gBattleOutcome _0801694C: ldrb r0, [r4] bl GetBattlerSide @@ -13368,7 +13368,7 @@ _080169CC: ldr r0, _080169E0 @ =gBattlersCount ldrb r0, [r0] strb r0, [r5] - ldr r1, _080169E4 @ =gUnknown_2023E8A + ldr r1, _080169E4 @ =gBattleOutcome movs r0, 0x6 _080169D6: strb r0, [r1] @@ -13378,7 +13378,7 @@ _080169D8: bx r0 .align 2, 0 _080169E0: .4byte gBattlersCount -_080169E4: .4byte gUnknown_2023E8A +_080169E4: .4byte gBattleOutcome thumb_func_end sub_80168A4 thumb_func_start sub_80169E8 @@ -13391,10 +13391,10 @@ sub_80169E8: @ 80169E8 adds r0, r1 ldrb r0, [r0] strb r0, [r2] - ldr r0, _08016A50 @ =gUnknown_2022974 + ldr r0, _08016A50 @ =gBattle_BG0_X movs r5, 0 strh r5, [r0] - ldr r0, _08016A54 @ =gUnknown_2022976 + ldr r0, _08016A54 @ =gBattle_BG0_Y strh r5, [r0] ldr r4, _08016A58 @ =gBattleStruct ldr r1, [r4] @@ -13431,8 +13431,8 @@ sub_80169E8: @ 80169E8 _08016A44: .4byte sBattler_AI _08016A48: .4byte gUnknown_2023BDE _08016A4C: .4byte gUnknown_2023BE2 -_08016A50: .4byte gUnknown_2022974 -_08016A54: .4byte gUnknown_2022976 +_08016A50: .4byte gBattle_BG0_X +_08016A54: .4byte gBattle_BG0_Y _08016A58: .4byte gBattleStruct _08016A5C: .4byte gEnemyParty _08016A60: .4byte gBaseStats @@ -13492,10 +13492,10 @@ sub_8016AC0: @ 8016AC0 adds r0, r1 ldrb r0, [r0] strb r0, [r2] - ldr r0, _08016B04 @ =gUnknown_2022974 + ldr r0, _08016B04 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08016B08 @ =gUnknown_2022976 + ldr r0, _08016B08 @ =gBattle_BG0_Y strh r1, [r0] ldr r1, _08016B0C @ =gUnknown_2039994 ldrb r0, [r1] @@ -13516,8 +13516,8 @@ sub_8016AC0: @ 8016AC0 _08016AF8: .4byte sBattler_AI _08016AFC: .4byte gUnknown_2023BDE _08016B00: .4byte gUnknown_2023BE2 -_08016B04: .4byte gUnknown_2022974 -_08016B08: .4byte gUnknown_2022976 +_08016B04: .4byte gBattle_BG0_X +_08016B08: .4byte gBattle_BG0_Y _08016B0C: .4byte gUnknown_2039994 _08016B10: .4byte gUnknown_2023D68 _08016B14: .4byte gUnknown_2023D74 @@ -13535,10 +13535,10 @@ sub_8016B20: @ 8016B20 adds r0, r1 ldrb r0, [r0] strb r0, [r2] - ldr r0, _08016BA8 @ =gUnknown_2022974 + ldr r0, _08016BA8 @ =gBattle_BG0_X movs r7, 0 strh r7, [r0] - ldr r0, _08016BAC @ =gUnknown_2022976 + ldr r0, _08016BAC @ =gBattle_BG0_Y strh r7, [r0] bl Random ldr r6, _08016BB0 @ =gBattleStruct @@ -13592,8 +13592,8 @@ _08016B86: _08016B9C: .4byte sBattler_AI _08016BA0: .4byte gUnknown_2023BDE _08016BA4: .4byte gUnknown_2023BE2 -_08016BA8: .4byte gUnknown_2022974 -_08016BAC: .4byte gUnknown_2022976 +_08016BA8: .4byte gBattle_BG0_X +_08016BAC: .4byte gBattle_BG0_Y _08016BB0: .4byte gBattleStruct _08016BB4: .4byte gUnknown_2023D74 _08016BB8: .4byte gUnknown_81D9A04 @@ -13610,10 +13610,10 @@ sub_8016BC0: @ 8016BC0 adds r0, r1 ldrb r0, [r0] strb r0, [r2] - ldr r0, _08016C48 @ =gUnknown_2022974 + ldr r0, _08016C48 @ =gBattle_BG0_X movs r7, 0 strh r7, [r0] - ldr r0, _08016C4C @ =gUnknown_2022976 + ldr r0, _08016C4C @ =gBattle_BG0_Y strh r7, [r0] bl Random ldr r6, _08016C50 @ =gBattleStruct @@ -13667,8 +13667,8 @@ _08016C26: _08016C3C: .4byte sBattler_AI _08016C40: .4byte gUnknown_2023BDE _08016C44: .4byte gUnknown_2023BE2 -_08016C48: .4byte gUnknown_2022974 -_08016C4C: .4byte gUnknown_2022976 +_08016C48: .4byte gBattle_BG0_X +_08016C4C: .4byte gBattle_BG0_Y _08016C50: .4byte gBattleStruct _08016C54: .4byte gUnknown_2023D74 _08016C58: .4byte gUnknown_81D9A04 @@ -13690,7 +13690,7 @@ HandleAction_SafriZoneRun: @ 8016C60 ldr r0, _08016C94 @ =gBattlersCount ldrb r0, [r0] strb r0, [r4] - ldr r1, _08016C98 @ =gUnknown_2023E8A + ldr r1, _08016C98 @ =gBattleOutcome movs r0, 0x4 strb r0, [r1] pop {r4} @@ -13701,7 +13701,7 @@ _08016C88: .4byte sBattler_AI _08016C8C: .4byte gUnknown_2023BDE _08016C90: .4byte gUnknown_2023BE2 _08016C94: .4byte gBattlersCount -_08016C98: .4byte gUnknown_2023E8A +_08016C98: .4byte gBattleOutcome thumb_func_end HandleAction_SafriZoneRun thumb_func_start HandleAction_Action9 @@ -13713,10 +13713,10 @@ HandleAction_Action9: @ 8016C9C adds r0, r1 ldrb r2, [r0] strb r2, [r3] - ldr r0, _08016CF4 @ =gUnknown_2022974 + ldr r0, _08016CF4 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08016CF8 @ =gUnknown_2022976 + ldr r0, _08016CF8 @ =gBattle_BG0_Y strh r1, [r0] ldr r1, _08016CFC @ =gBattleTextBuff1 movs r0, 0xFD @@ -13747,8 +13747,8 @@ HandleAction_Action9: @ 8016C9C _08016CE8: .4byte sBattler_AI _08016CEC: .4byte gUnknown_2023BDE _08016CF0: .4byte gUnknown_2023BE2 -_08016CF4: .4byte gUnknown_2022974 -_08016CF8: .4byte gUnknown_2022976 +_08016CF4: .4byte gBattle_BG0_X +_08016CF8: .4byte gBattle_BG0_Y _08016CFC: .4byte gBattleTextBuff1 _08016D00: .4byte gBattlerPartyIndexes _08016D04: .4byte gUnknown_2023D74 diff --git a/asm/battle_anim.s b/asm/battle_anim.s index 085b11f09..7e698830f 100644 --- a/asm/battle_anim.s +++ b/asm/battle_anim.s @@ -20,7 +20,7 @@ ClearBattleAnimationVars: @ 80724C0 strb r1, [r0] ldr r0, _08072560 @ =gUnknown_2037EE3 strb r1, [r0] - ldr r0, _08072564 @ =gUnknown_2037EE4 + ldr r0, _08072564 @ =gAnimDisableStructPtr movs r1, 0 str r1, [r0] ldr r0, _08072568 @ =gUnknown_2037EE8 @@ -31,12 +31,12 @@ ClearBattleAnimationVars: @ 80724C0 ldr r0, _08072570 @ =gUnknown_2037EFE strb r2, [r0] ldr r4, _08072574 @ =gUnknown_2037F14 - ldr r5, _08072578 @ =gUnknown_2037F16 + ldr r5, _08072578 @ =gAnimMoveTurn ldr r6, _0807257C @ =gUnknown_2037F17 ldr r7, _08072580 @ =gUnknown_2037F18 - ldr r0, _08072584 @ =gUnknown_2037F1A + ldr r0, _08072584 @ =gBattleAnimAttacker mov r12, r0 - ldr r1, _08072588 @ =gUnknown_2037F1B + ldr r1, _08072588 @ =gBattleAnimTarget mov r8, r1 ldr r0, _0807258C @ =gUnknown_2037F24 mov r9, r0 @@ -52,7 +52,7 @@ _0807250A: subs r2, 0x1 cmp r2, 0 bge _0807250A - ldr r1, _08072598 @ =gUnknown_2037F02 + ldr r1, _08072598 @ =gBattleAnimArgs movs r2, 0 adds r0, r1, 0 adds r0, 0xE @@ -88,20 +88,20 @@ _08072554: .4byte gUnknown_2037EE0 _08072558: .4byte gUnknown_2037EE1 _0807255C: .4byte gUnknown_2037EE2 _08072560: .4byte gUnknown_2037EE3 -_08072564: .4byte gUnknown_2037EE4 +_08072564: .4byte gAnimDisableStructPtr _08072568: .4byte gUnknown_2037EE8 _0807256C: .4byte gUnknown_2037EEC _08072570: .4byte gUnknown_2037EFE _08072574: .4byte gUnknown_2037F14 -_08072578: .4byte gUnknown_2037F16 +_08072578: .4byte gAnimMoveTurn _0807257C: .4byte gUnknown_2037F17 _08072580: .4byte gUnknown_2037F18 -_08072584: .4byte gUnknown_2037F1A -_08072588: .4byte gUnknown_2037F1B +_08072584: .4byte gBattleAnimAttacker +_08072588: .4byte gBattleAnimTarget _0807258C: .4byte gUnknown_2037F24 _08072590: .4byte 0x0000ffff _08072594: .4byte gUnknown_2037EEE -_08072598: .4byte gUnknown_2037F02 +_08072598: .4byte gBattleAnimArgs thumb_func_end ClearBattleAnimationVars thumb_func_start DoMoveAnim @@ -110,11 +110,11 @@ DoMoveAnim: @ 807259C adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r2, _080725C0 @ =gUnknown_2037F1A + ldr r2, _080725C0 @ =gBattleAnimAttacker ldr r0, _080725C4 @ =sBattler_AI ldrb r0, [r0] strb r0, [r2] - ldr r2, _080725C8 @ =gUnknown_2037F1B + ldr r2, _080725C8 @ =gBattleAnimTarget ldr r0, _080725CC @ =gBattlerTarget ldrb r0, [r0] strb r0, [r2] @@ -124,9 +124,9 @@ DoMoveAnim: @ 807259C pop {r0} bx r0 .align 2, 0 -_080725C0: .4byte gUnknown_2037F1A +_080725C0: .4byte gBattleAnimAttacker _080725C4: .4byte sBattler_AI -_080725C8: .4byte gUnknown_2037F1B +_080725C8: .4byte gBattleAnimTarget _080725CC: .4byte gBattlerTarget _080725D0: .4byte gUnknown_81C68F4 thumb_func_end DoMoveAnim @@ -206,7 +206,7 @@ _08072658: ldr r0, _080726D4 @ =gUnknown_2037EDC mov r10, r0 ldr r7, _080726D8 @ =RunAnimScriptCommand - ldr r1, _080726DC @ =gUnknown_2037F02 + ldr r1, _080726DC @ =gBattleAnimArgs movs r2, 0 adds r0, r1, 0 adds r0, 0xE @@ -257,7 +257,7 @@ _080726CC: .4byte gUnknown_2037EE1 _080726D0: .4byte gUnknown_2037EE0 _080726D4: .4byte gUnknown_2037EDC _080726D8: .4byte RunAnimScriptCommand -_080726DC: .4byte gUnknown_2037F02 +_080726DC: .4byte gBattleAnimArgs _080726E0: .4byte 0x0000ffff _080726E4: .4byte gUnknown_2037EEE _080726E8: .4byte gUnknown_81C68EC @@ -581,7 +581,7 @@ ScriptCmd_createsprite: @ 807291C cmp r0, 0 beq _0807296C adds r6, r5, 0 - ldr r5, _08072988 @ =gUnknown_2037F02 + ldr r5, _08072988 @ =gBattleAnimArgs adds r3, r0, 0 _08072954: ldr r2, [r6] @@ -610,16 +610,16 @@ _0807296C: b _0807298E .align 2, 0 _08072984: .4byte gUnknown_2037ED4 -_08072988: .4byte gUnknown_2037F02 +_08072988: .4byte gBattleAnimArgs _0807298C: negs r0, r4 _0807298E: lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08072998 @ =gUnknown_2037F1B + ldr r0, _08072998 @ =gBattleAnimTarget b _080729AE .align 2, 0 -_08072998: .4byte gUnknown_2037F1B +_08072998: .4byte gBattleAnimTarget _0807299C: cmp r4, 0x3F bls _080729A6 @@ -631,7 +631,7 @@ _080729A6: _080729A8: lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08072A04 @ =gUnknown_2037F1A + ldr r0, _08072A04 @ =gBattleAnimAttacker _080729AE: ldrb r0, [r0] bl sub_807685C @@ -648,7 +648,7 @@ _080729AE: bgt _080729CC movs r6, 0x3 _080729CC: - ldr r5, _08072A08 @ =gUnknown_2037F1B + ldr r5, _08072A08 @ =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -674,8 +674,8 @@ _080729CC: pop {r0} bx r0 .align 2, 0 -_08072A04: .4byte gUnknown_2037F1A -_08072A08: .4byte gUnknown_2037F1B +_08072A04: .4byte gBattleAnimAttacker +_08072A08: .4byte gBattleAnimTarget _08072A0C: .4byte gUnknown_2037EE2 thumb_func_end ScriptCmd_createsprite @@ -707,7 +707,7 @@ ScriptCmd_createvisualtask: @ 8072A10 cmp r0, 0 beq _08072A60 adds r5, r4, 0 - ldr r4, _08072A84 @ =gUnknown_2037F02 + ldr r4, _08072A84 @ =gBattleAnimArgs adds r3, r0, 0 _08072A48: ldr r2, [r5] @@ -738,7 +738,7 @@ _08072A60: bx r0 .align 2, 0 _08072A80: .4byte gUnknown_2037ED4 -_08072A84: .4byte gUnknown_2037F02 +_08072A84: .4byte gBattleAnimArgs _08072A88: .4byte gUnknown_2037EE2 thumb_func_end ScriptCmd_createvisualtask @@ -980,12 +980,12 @@ _08072C52: cmp r6, 0x2 bne _08072C60 _08072C56: - ldr r0, _08072C5C @ =gUnknown_2037F1A + ldr r0, _08072C5C @ =gBattleAnimAttacker b _08072C62 .align 2, 0 -_08072C5C: .4byte gUnknown_2037F1A +_08072C5C: .4byte gBattleAnimAttacker _08072C60: - ldr r0, _08072CD8 @ =gUnknown_2037F1B + ldr r0, _08072CD8 @ =gBattleAnimTarget _08072C62: ldrb r5, [r0] adds r0, r5, 0 @@ -1008,7 +1008,7 @@ _08072C88: adds r0, r5, 0 adds r1, r7, 0 bl sub_8072E48 - ldr r0, _08072CDC @ =gUnknown_2023D44 + ldr r0, _08072CDC @ =gBattlerSpriteIds adds r0, r5, r0 ldrb r4, [r0] ldr r0, _08072CE0 @ =task_pA_ma0A_obj_to_bg_pal @@ -1037,24 +1037,24 @@ _08072C88: strh r1, [r2, 0xC] cmp r7, 0 bne _08072CF4 - ldr r0, _08072CEC @ =gUnknown_2022978 + ldr r0, _08072CEC @ =gBattle_BG1_X ldrh r0, [r0] strh r0, [r2, 0xE] - ldr r0, _08072CF0 @ =gUnknown_202297A + ldr r0, _08072CF0 @ =gBattle_BG1_Y b _08072CFC .align 2, 0 -_08072CD8: .4byte gUnknown_2037F1B -_08072CDC: .4byte gUnknown_2023D44 +_08072CD8: .4byte gBattleAnimTarget +_08072CDC: .4byte gBattlerSpriteIds _08072CE0: .4byte task_pA_ma0A_obj_to_bg_pal _08072CE4: .4byte gTasks _08072CE8: .4byte gSprites -_08072CEC: .4byte gUnknown_2022978 -_08072CF0: .4byte gUnknown_202297A +_08072CEC: .4byte gBattle_BG1_X +_08072CF0: .4byte gBattle_BG1_Y _08072CF4: - ldr r0, _08072D8C @ =gUnknown_202297C + ldr r0, _08072D8C @ =gBattle_BG2_X ldrh r0, [r0] strh r0, [r2, 0xE] - ldr r0, _08072D90 @ =gUnknown_202297E + ldr r0, _08072D90 @ =gBattle_BG2_Y _08072CFC: ldrh r0, [r0] strh r0, [r2, 0x10] @@ -1092,7 +1092,7 @@ _08072D3E: adds r0, r5, 0 adds r1, r7, 0 bl sub_8072E48 - ldr r0, _08072D9C @ =gUnknown_2023D44 + ldr r0, _08072D9C @ =gBattlerSpriteIds adds r0, r5, r0 ldrb r4, [r0] ldr r0, _08072DA0 @ =task_pA_ma0A_obj_to_bg_pal @@ -1121,26 +1121,26 @@ _08072D3E: strh r1, [r2, 0xC] cmp r7, 0 bne _08072DB0 - ldr r0, _08072DA8 @ =gUnknown_2022978 + ldr r0, _08072DA8 @ =gBattle_BG1_X ldrh r0, [r0] strh r0, [r2, 0xE] - ldr r0, _08072DAC @ =gUnknown_202297A + ldr r0, _08072DAC @ =gBattle_BG1_Y b _08072DB8 .align 2, 0 -_08072D8C: .4byte gUnknown_202297C -_08072D90: .4byte gUnknown_202297E +_08072D8C: .4byte gBattle_BG2_X +_08072D90: .4byte gBattle_BG2_Y _08072D94: .4byte gTasks _08072D98: .4byte gUnknown_2037F14 -_08072D9C: .4byte gUnknown_2023D44 +_08072D9C: .4byte gBattlerSpriteIds _08072DA0: .4byte task_pA_ma0A_obj_to_bg_pal _08072DA4: .4byte gSprites -_08072DA8: .4byte gUnknown_2022978 -_08072DAC: .4byte gUnknown_202297A +_08072DA8: .4byte gBattle_BG1_X +_08072DAC: .4byte gBattle_BG1_Y _08072DB0: - ldr r0, _08072DDC @ =gUnknown_202297C + ldr r0, _08072DDC @ =gBattle_BG2_X ldrh r0, [r0] strh r0, [r2, 0xE] - ldr r0, _08072DE0 @ =gUnknown_202297E + ldr r0, _08072DE0 @ =gBattle_BG2_Y _08072DB8: ldrh r0, [r0] strh r0, [r2, 0x10] @@ -1162,8 +1162,8 @@ _08072DCE: pop {r0} bx r0 .align 2, 0 -_08072DDC: .4byte gUnknown_202297C -_08072DE0: .4byte gUnknown_202297E +_08072DDC: .4byte gBattle_BG2_X +_08072DE0: .4byte gBattle_BG2_Y _08072DE4: .4byte gTasks _08072DE8: .4byte gUnknown_2037F14 _08072DEC: .4byte gUnknown_2037ED4 @@ -1190,7 +1190,7 @@ sub_8072DF0: @ 8072DF0 cmp r0, 0 beq _08072E30 ldr r2, _08072E38 @ =gSprites - ldr r0, _08072E3C @ =gUnknown_2023D44 + ldr r0, _08072E3C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1208,7 +1208,7 @@ _08072E30: .align 2, 0 _08072E34: .4byte gUnknown_2024018 _08072E38: .4byte gSprites -_08072E3C: .4byte gUnknown_2023D44 +_08072E3C: .4byte gBattlerSpriteIds _08072E40: movs r0, 0 _08072E42: @@ -1268,10 +1268,10 @@ _08072E5E: movs r1, 0x1 movs r2, 0 bl SetAnimBgAttribute - ldr r2, _08072F6C @ =gUnknown_2023D44 + ldr r2, _08072F6C @ =gBattlerSpriteIds adds r2, r7, r2 ldrb r0, [r2] - ldr r5, _08072F70 @ =gUnknown_2022978 + ldr r5, _08072F70 @ =gBattle_BG1_X ldr r3, _08072F74 @ =gSprites lsls r1, r0, 4 adds r1, r0 @@ -1283,7 +1283,7 @@ _08072E5E: negs r0, r0 adds r0, 0x20 strh r0, [r5] - ldr r4, _08072F78 @ =gUnknown_202297A + ldr r4, _08072F78 @ =gBattle_BG1_Y ldrh r0, [r1, 0x26] ldrh r1, [r1, 0x22] adds r0, r1 @@ -1349,10 +1349,10 @@ _08072F5C: .4byte 0x06004000 _08072F60: .4byte 0x0600e000 _08072F64: .4byte 0x01000800 _08072F68: .4byte 0x01000400 -_08072F6C: .4byte gUnknown_2023D44 -_08072F70: .4byte gUnknown_2022978 +_08072F6C: .4byte gBattlerSpriteIds +_08072F70: .4byte gBattle_BG1_X _08072F74: .4byte gSprites -_08072F78: .4byte gUnknown_202297A +_08072F78: .4byte gBattle_BG1_Y _08072F7C: .4byte gPlttBufferUnfaded + 0x200 _08072F80: .4byte 0x04000008 _08072F84: @@ -1401,10 +1401,10 @@ _08072F84: movs r1, 0x1 movs r2, 0 bl SetAnimBgAttribute - ldr r2, _080730A4 @ =gUnknown_2023D44 + ldr r2, _080730A4 @ =gBattlerSpriteIds adds r2, r7, r2 ldrb r0, [r2] - ldr r5, _080730A8 @ =gUnknown_202297C + ldr r5, _080730A8 @ =gBattle_BG2_X ldr r3, _080730AC @ =gSprites lsls r1, r0, 4 adds r1, r0 @@ -1416,7 +1416,7 @@ _08072F84: negs r0, r0 adds r0, 0x20 strh r0, [r5] - ldr r4, _080730B0 @ =gUnknown_202297E + ldr r4, _080730B0 @ =gBattle_BG2_Y ldrh r0, [r1, 0x26] ldrh r1, [r1, 0x22] adds r0, r1 @@ -1483,10 +1483,10 @@ _08073094: .4byte 0x06006000 _08073098: .4byte 0x0600f000 _0807309C: .4byte 0x01000800 _080730A0: .4byte 0x01000400 -_080730A4: .4byte gUnknown_2023D44 -_080730A8: .4byte gUnknown_202297C +_080730A4: .4byte gBattlerSpriteIds +_080730A8: .4byte gBattle_BG2_X _080730AC: .4byte gSprites -_080730B0: .4byte gUnknown_202297E +_080730B0: .4byte gBattle_BG2_Y _080730B4: .4byte gPlttBufferUnfaded + 0x200 _080730B8: .4byte 0x05000120 _080730BC: .4byte 0x04000008 @@ -1563,21 +1563,21 @@ sub_8073128: @ 8073128 bne _08073154 movs r0, 0x1 bl sub_8075358 - ldr r0, _0807314C @ =gUnknown_2022978 + ldr r0, _0807314C @ =gBattle_BG1_X strh r4, [r0] - ldr r0, _08073150 @ =gUnknown_202297A + ldr r0, _08073150 @ =gBattle_BG1_Y strh r4, [r0] b _08073164 .align 2, 0 -_0807314C: .4byte gUnknown_2022978 -_08073150: .4byte gUnknown_202297A +_0807314C: .4byte gBattle_BG1_X +_08073150: .4byte gBattle_BG1_Y _08073154: movs r0, 0x2 bl sub_8075358 - ldr r0, _0807316C @ =gUnknown_202297C + ldr r0, _0807316C @ =gBattle_BG2_X movs r1, 0 strh r1, [r0] - ldr r0, _08073170 @ =gUnknown_202297E + ldr r0, _08073170 @ =gBattle_BG2_Y strh r1, [r0] _08073164: add sp, 0x10 @@ -1585,8 +1585,8 @@ _08073164: pop {r0} bx r0 .align 2, 0 -_0807316C: .4byte gUnknown_202297C -_08073170: .4byte gUnknown_202297E +_0807316C: .4byte gBattle_BG2_X +_08073170: .4byte gBattle_BG2_Y thumb_func_end sub_8073128 thumb_func_start task_pA_ma0A_obj_to_bg_pal @@ -1627,13 +1627,13 @@ task_pA_ma0A_obj_to_bg_pal: @ 8073174 ldrsh r0, [r5, r1] cmp r0, 0 bne _0807320C - ldr r1, _080731F8 @ =gUnknown_2022978 + ldr r1, _080731F8 @ =gBattle_BG1_X lsls r0, r3, 16 asrs r0, 16 ldrh r3, [r5, 0xE] adds r0, r3 strh r0, [r1] - ldr r1, _080731FC @ =gUnknown_202297A + ldr r1, _080731FC @ =gBattle_BG1_Y lsls r0, r2, 16 asrs r0, 16 ldrh r5, [r5, 0x10] @@ -1654,19 +1654,19 @@ task_pA_ma0A_obj_to_bg_pal: @ 8073174 .align 2, 0 _080731F0: .4byte gTasks _080731F4: .4byte gSprites -_080731F8: .4byte gUnknown_2022978 -_080731FC: .4byte gUnknown_202297A +_080731F8: .4byte gBattle_BG1_X +_080731FC: .4byte gBattle_BG1_Y _08073200: .4byte gPlttBufferFaded + 0x200 _08073204: .4byte 0xfffffe00 _08073208: .4byte 0x04000008 _0807320C: - ldr r1, _0807323C @ =gUnknown_202297C + ldr r1, _0807323C @ =gBattle_BG2_X lsls r0, r3, 16 asrs r0, 16 ldrh r3, [r5, 0xE] adds r0, r3 strh r0, [r1] - ldr r1, _08073240 @ =gUnknown_202297E + ldr r1, _08073240 @ =gBattle_BG2_Y lsls r0, r2, 16 asrs r0, 16 ldrh r5, [r5, 0x10] @@ -1684,8 +1684,8 @@ _08073232: pop {r0} bx r0 .align 2, 0 -_0807323C: .4byte gUnknown_202297C -_08073240: .4byte gUnknown_202297E +_0807323C: .4byte gBattle_BG2_X +_08073240: .4byte gBattle_BG2_Y _08073244: .4byte gPlttBufferFaded + 0x200 _08073248: .4byte 0x04000008 thumb_func_end task_pA_ma0A_obj_to_bg_pal @@ -1715,12 +1715,12 @@ _0807326E: cmp r4, 0x2 bne _0807327C _08073272: - ldr r0, _08073278 @ =gUnknown_2037F1A + ldr r0, _08073278 @ =gBattleAnimAttacker b _0807327E .align 2, 0 -_08073278: .4byte gUnknown_2037F1A +_08073278: .4byte gBattleAnimAttacker _0807327C: - ldr r0, _080732D4 @ =gUnknown_2037F1B + ldr r0, _080732D4 @ =gBattleAnimTarget _0807327E: ldrb r5, [r0] ldr r3, _080732D8 @ =gUnknown_2037F14 @@ -1728,7 +1728,7 @@ _0807327E: cmp r0, 0xFF beq _080732A4 ldr r2, _080732DC @ =gSprites - ldr r0, _080732E0 @ =gUnknown_2023D44 + ldr r0, _080732E0 @ =gBattlerSpriteIds adds r0, r5, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1748,7 +1748,7 @@ _080732A4: cmp r0, 0xFF beq _080732E4 ldr r3, _080732DC @ =gSprites - ldr r2, _080732E0 @ =gUnknown_2023D44 + ldr r2, _080732E0 @ =gBattlerSpriteIds movs r1, 0x2 adds r0, r5, 0 eors r0, r1 @@ -1766,10 +1766,10 @@ _080732A4: strb r1, [r0] b _080732E6 .align 2, 0 -_080732D4: .4byte gUnknown_2037F1B +_080732D4: .4byte gBattleAnimTarget _080732D8: .4byte gUnknown_2037F14 _080732DC: .4byte gSprites -_080732E0: .4byte gUnknown_2023D44 +_080732E0: .4byte gBattlerSpriteIds _080732E4: movs r4, 0 _080732E6: @@ -1888,12 +1888,12 @@ _080733BE: cmp r5, 0x2 bne _080733CC _080733C2: - ldr r0, _080733C8 @ =gUnknown_2037F1A + ldr r0, _080733C8 @ =gBattleAnimAttacker b _080733CE .align 2, 0 -_080733C8: .4byte gUnknown_2037F1A +_080733C8: .4byte gBattleAnimAttacker _080733CC: - ldr r0, _08073474 @ =gUnknown_2037F1B + ldr r0, _08073474 @ =gBattleAnimTarget _080733CE: ldrb r4, [r0] adds r0, r4, 0 @@ -1916,7 +1916,7 @@ _080733F4: adds r0, r4, 0 bl sub_8072E48 ldr r2, _08073478 @ =gSprites - ldr r0, _0807347C @ =gUnknown_2023D44 + ldr r0, _0807347C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1954,7 +1954,7 @@ _08073442: adds r0, r4, 0 bl sub_8072E48 ldr r2, _08073478 @ =gSprites - ldr r0, _0807347C @ =gUnknown_2023D44 + ldr r0, _0807347C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1976,9 +1976,9 @@ _08073464: pop {r0} bx r0 .align 2, 0 -_08073474: .4byte gUnknown_2037F1B +_08073474: .4byte gBattleAnimTarget _08073478: .4byte gSprites -_0807347C: .4byte gUnknown_2023D44 +_0807347C: .4byte gBattlerSpriteIds _08073480: .4byte gUnknown_2037ED4 thumb_func_end sub_807339C @@ -2007,12 +2007,12 @@ _080734A6: cmp r5, 0x2 bne _080734B4 _080734AA: - ldr r0, _080734B0 @ =gUnknown_2037F1A + ldr r0, _080734B0 @ =gBattleAnimAttacker b _080734B6 .align 2, 0 -_080734B0: .4byte gUnknown_2037F1A +_080734B0: .4byte gBattleAnimAttacker _080734B4: - ldr r0, _08073514 @ =gUnknown_2037F1B + ldr r0, _08073514 @ =gBattleAnimTarget _080734B6: ldrb r6, [r0] adds r0, r6, 0 @@ -2021,7 +2021,7 @@ _080734B6: cmp r0, 0 beq _080734E0 ldr r2, _08073518 @ =gSprites - ldr r0, _0807351C @ =gUnknown_2023D44 + ldr r0, _0807351C @ =gBattlerSpriteIds adds r0, r6, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -2046,7 +2046,7 @@ _080734E0: cmp r0, 0 beq _08073520 ldr r2, _08073518 @ =gSprites - ldr r0, _0807351C @ =gUnknown_2023D44 + ldr r0, _0807351C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -2061,9 +2061,9 @@ _080734E0: strb r1, [r0] b _08073522 .align 2, 0 -_08073514: .4byte gUnknown_2037F1B +_08073514: .4byte gBattleAnimTarget _08073518: .4byte gSprites -_0807351C: .4byte gUnknown_2023D44 +_0807351C: .4byte gBattlerSpriteIds _08073520: movs r5, 0 _08073522: @@ -2290,7 +2290,7 @@ ScriptCmd_setarg: @ 80736AC orrs r4, r0 adds r1, 0x4 str r1, [r5] - ldr r0, _080736DC @ =gUnknown_2037F02 + ldr r0, _080736DC @ =gBattleAnimArgs lsls r2, 1 adds r2, r0 strh r4, [r2] @@ -2299,7 +2299,7 @@ ScriptCmd_setarg: @ 80736AC bx r0 .align 2, 0 _080736D8: .4byte gUnknown_2037ED4 -_080736DC: .4byte gUnknown_2037F02 +_080736DC: .4byte gBattleAnimArgs thumb_func_end ScriptCmd_setarg thumb_func_start ScriptCmd_choosetwoturnanim @@ -2309,7 +2309,7 @@ ScriptCmd_choosetwoturnanim: @ 80736E0 ldr r2, [r3] adds r0, r2, 0x1 str r0, [r3] - ldr r0, _0807371C @ =gUnknown_2037F16 + ldr r0, _0807371C @ =gAnimMoveTurn ldrb r1, [r0] movs r0, 0x1 ands r0, r1 @@ -2334,7 +2334,7 @@ _080736FA: bx r0 .align 2, 0 _08073718: .4byte gUnknown_2037ED4 -_0807371C: .4byte gUnknown_2037F16 +_0807371C: .4byte gAnimMoveTurn thumb_func_end ScriptCmd_choosetwoturnanim thumb_func_start ScriptCmd_jumpifmoveturn @@ -2347,7 +2347,7 @@ ScriptCmd_jumpifmoveturn: @ 8073720 ldrb r1, [r4, 0x1] adds r3, r2, 0x1 str r3, [r5] - ldr r0, _08073754 @ =gUnknown_2037F16 + ldr r0, _08073754 @ =gAnimMoveTurn ldrb r0, [r0] cmp r1, r0 bne _08073758 @@ -2365,7 +2365,7 @@ ScriptCmd_jumpifmoveturn: @ 8073720 b _0807375C .align 2, 0 _08073750: .4byte gUnknown_2037ED4 -_08073754: .4byte gUnknown_2037F16 +_08073754: .4byte gAnimMoveTurn _08073758: adds r0, r4, 0x6 str r0, [r5] @@ -2469,7 +2469,7 @@ sub_80737E4: @ 80737E4 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08073828 @ =gUnknown_2037F1B + ldr r0, _08073828 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2485,7 +2485,7 @@ sub_80737E4: @ 80737E4 .align 2, 0 _08073820: .4byte gUnknown_2037ED4 _08073824: .4byte sub_8073850 -_08073828: .4byte gUnknown_2037F1B +_08073828: .4byte gBattleAnimTarget _0807382C: .4byte gTasks _08073830: ldr r1, _08073848 @ =gTasks @@ -2774,7 +2774,7 @@ sub_8073A44: @ 8073A44 lsrs r4, r0, 24 ldr r0, _08073A78 @ =gUnknown_2024018 ldr r1, [r0] - ldr r0, _08073A7C @ =gUnknown_2037F1A + ldr r0, _08073A7C @ =gBattleAnimAttacker ldrb r2, [r0] ldr r1, [r1, 0x4] lsls r0, r2, 1 @@ -2796,14 +2796,14 @@ sub_8073A44: @ 8073A44 b _08073AE6 .align 2, 0 _08073A78: .4byte gUnknown_2024018 -_08073A7C: .4byte gUnknown_2037F1A +_08073A7C: .4byte gBattleAnimAttacker _08073A80: adds r0, r2, 0 bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08073ABA - ldr r0, _08073AA8 @ =gUnknown_2037F1B + ldr r0, _08073AA8 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2816,7 +2816,7 @@ _08073A80: movs r4, 0xC0 b _08073AE6 .align 2, 0 -_08073AA8: .4byte gUnknown_2037F1B +_08073AA8: .4byte gBattleAnimTarget _08073AAC: movs r0, 0x40 negs r0, r0 @@ -2826,7 +2826,7 @@ _08073AAC: lsls r0, 24 b _08073AE4 _08073ABA: - ldr r0, _08073ADC @ =gUnknown_2037F1B + ldr r0, _08073ADC @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2842,7 +2842,7 @@ _08073ABA: movs r4, 0x3F b _08073AE6 .align 2, 0 -_08073ADC: .4byte gUnknown_2037F1B +_08073ADC: .4byte gBattleAnimTarget _08073AE0: lsls r0, r4, 24 negs r0, r0 @@ -2876,7 +2876,7 @@ sub_8073B08: @ 8073B08 lsrs r4, r0, 24 ldr r0, _08073B3C @ =gUnknown_2024018 ldr r1, [r0] - ldr r0, _08073B40 @ =gUnknown_2037F1A + ldr r0, _08073B40 @ =gBattleAnimAttacker ldrb r2, [r0] ldr r1, [r1, 0x4] lsls r0, r2, 1 @@ -2898,7 +2898,7 @@ sub_8073B08: @ 8073B08 b _08073B56 .align 2, 0 _08073B3C: .4byte gUnknown_2024018 -_08073B40: .4byte gUnknown_2037F1A +_08073B40: .4byte gBattleAnimAttacker _08073B44: adds r0, r2, 0 bl GetBattlerSide @@ -3597,7 +3597,7 @@ ScriptCmd_createsoundtask: @ 807406C cmp r0, 0 beq _080740B6 adds r5, r4, 0 - ldr r4, _080740D8 @ =gUnknown_2037F02 + ldr r4, _080740D8 @ =gBattleAnimArgs adds r3, r0, 0 _0807409E: ldr r2, [r5] @@ -3628,7 +3628,7 @@ _080740B6: bx r0 .align 2, 0 _080740D4: .4byte gUnknown_2037ED4 -_080740D8: .4byte gUnknown_2037F02 +_080740D8: .4byte gBattleAnimArgs _080740DC: .4byte gUnknown_2037EE3 thumb_func_end ScriptCmd_createsoundtask @@ -3707,7 +3707,7 @@ ScriptCmd_jumpargeq: @ 8074164 ldrb r0, [r3, 0x2] lsls r0, 8 orrs r1, r0 - ldr r0, _080741A8 @ =gUnknown_2037F02 + ldr r0, _080741A8 @ =gBattleAnimArgs lsls r2, 1 adds r2, r0 lsls r1, 16 @@ -3730,7 +3730,7 @@ ScriptCmd_jumpargeq: @ 8074164 b _080741B2 .align 2, 0 _080741A4: .4byte gUnknown_2037ED4 -_080741A8: .4byte gUnknown_2037F02 +_080741A8: .4byte gBattleAnimArgs _080741AC: adds r0, r4, 0 adds r0, 0x8 @@ -3762,13 +3762,13 @@ sub_80741C8: @ 80741C8 str r1, [r0] cmp r2, 0 beq _080741E4 - ldr r0, _080741E0 @ =gUnknown_2037F1B + ldr r0, _080741E0 @ =gBattleAnimTarget b _080741E6 .align 2, 0 _080741DC: .4byte gUnknown_2037ED4 -_080741E0: .4byte gUnknown_2037F1B +_080741E0: .4byte gBattleAnimTarget _080741E4: - ldr r0, _08074210 @ =gUnknown_2037F1A + ldr r0, _08074210 @ =gBattleAnimAttacker _080741E6: ldrb r0, [r0] bl GetBattlerPosition @@ -3791,7 +3791,7 @@ _0807420C: pop {r0} bx r0 .align 2, 0 -_08074210: .4byte gUnknown_2037F1A +_08074210: .4byte gBattleAnimAttacker thumb_func_end sub_80741C8 thumb_func_start sub_8074214 @@ -3823,11 +3823,11 @@ sub_807423C: @ 807423C ldrb r6, [r0, 0x1] adds r0, 0x2 str r0, [r1] - ldr r7, _08074270 @ =gUnknown_2037F1A + ldr r7, _08074270 @ =gBattleAnimAttacker ldrb r0, [r7] bl GetBattlerSide adds r4, r0, 0 - ldr r5, _08074274 @ =gUnknown_2037F1B + ldr r5, _08074274 @ =gBattleAnimTarget ldrb r0, [r5] bl GetBattlerSide lsls r4, 24 @@ -3840,8 +3840,8 @@ sub_807423C: @ 807423C b _0807427A .align 2, 0 _0807426C: .4byte gUnknown_2037ED4 -_08074270: .4byte gUnknown_2037F1A -_08074274: .4byte gUnknown_2037F1B +_08074270: .4byte gBattleAnimAttacker +_08074274: .4byte gBattleAnimTarget _08074278: ldrb r0, [r7] _0807427A: @@ -3946,11 +3946,11 @@ sub_8074320: @ 8074320 lsls r0, 24 cmp r0, 0 beq _080743C2 - ldr r6, _08074368 @ =gUnknown_2037F1A + ldr r6, _08074368 @ =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide adds r4, r0, 0 - ldr r5, _0807436C @ =gUnknown_2037F1B + ldr r5, _0807436C @ =gBattleAnimTarget ldrb r0, [r5] bl GetBattlerSide lsls r4, 24 @@ -3967,8 +3967,8 @@ sub_8074320: @ 8074320 b _0807437C .align 2, 0 _08074364: .4byte gUnknown_2037ED4 -_08074368: .4byte gUnknown_2037F1A -_0807436C: .4byte gUnknown_2037F1B +_08074368: .4byte gBattleAnimAttacker +_0807436C: .4byte gBattleAnimTarget _08074370: ldrb r0, [r5] bl sub_80768B0 @@ -4028,11 +4028,11 @@ sub_80743C8: @ 80743C8 lsls r0, 24 cmp r0, 0 beq _0807444C - ldr r6, _08074410 @ =gUnknown_2037F1A + ldr r6, _08074410 @ =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide adds r4, r0, 0 - ldr r5, _08074414 @ =gUnknown_2037F1B + ldr r5, _08074414 @ =gBattleAnimTarget ldrb r0, [r5] bl GetBattlerSide lsls r4, 24 @@ -4049,8 +4049,8 @@ sub_80743C8: @ 80743C8 b _08074424 .align 2, 0 _0807440C: .4byte gUnknown_2037ED4 -_08074410: .4byte gUnknown_2037F1A -_08074414: .4byte gUnknown_2037F1B +_08074410: .4byte gBattleAnimAttacker +_08074414: .4byte gBattleAnimTarget _08074418: ldrb r0, [r5] bl sub_80768B0 diff --git a/asm/battle_anim_80989F8.s b/asm/battle_anim_80989F8.s deleted file mode 100644 index 41dc60f9f..000000000 --- a/asm/battle_anim_80989F8.s +++ /dev/null @@ -1,2588 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80989F8 -sub_80989F8: @ 80989F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _08098A18 @ =gUnknown_2037F02 - ldrb r0, [r4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _08098A1C - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08098A58 - .align 2, 0 -_08098A18: .4byte gUnknown_2037F02 -_08098A1C: - ldr r1, _08098A60 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x24] - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x26] - ldr r1, _08098A64 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x8] - ldrh r1, [r4, 0x6] - strh r1, [r0, 0xA] - ldrh r1, [r4, 0x8] - strh r1, [r0, 0xC] - ldrh r1, [r4, 0x8] - strh r1, [r0, 0xE] - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x10] - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x12] - ldr r1, _08098A68 @ =sub_8098A6C - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 -_08098A58: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08098A60: .4byte gSprites -_08098A64: .4byte gTasks -_08098A68: .4byte sub_8098A6C - thumb_func_end sub_80989F8 - - thumb_func_start sub_8098A6C -sub_8098A6C: @ 8098A6C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08098AA8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0xE] - movs r2, 0xE - ldrsh r5, [r3, r2] - adds r7, r1, 0 - cmp r5, 0 - bne _08098B12 - ldr r2, _08098AAC @ =gSprites - movs r6, 0x8 - ldrsh r1, [r3, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r6, 0x24 - ldrsh r0, [r1, r6] - adds r6, r2, 0 - cmp r0, 0 - bne _08098AB0 - ldrh r0, [r3, 0x10] - strh r0, [r1, 0x24] - b _08098AB2 - .align 2, 0 -_08098AA8: .4byte gTasks -_08098AAC: .4byte gSprites -_08098AB0: - strh r5, [r1, 0x24] -_08098AB2: - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r7 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - movs r5, 0x26 - ldrsh r0, [r1, r5] - cmp r0, 0 - bne _08098AD2 - ldrh r0, [r3, 0x12] - b _08098AD4 -_08098AD2: - movs r0, 0 -_08098AD4: - strh r0, [r1, 0x26] - adds r0, r2, r4 - lsls r0, 3 - adds r2, r0, r7 - ldrh r0, [r2, 0xC] - strh r0, [r2, 0xE] - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _08098B16 - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r3, [r0, 0x24] - movs r5, 0x8 - ldrsh r1, [r2, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r3, [r0, 0x26] - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _08098B16 -_08098B12: - subs r0, 0x1 - strh r0, [r3, 0xE] -_08098B16: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8098A6C - - thumb_func_start sub_8098B1C -sub_8098B1C: @ 8098B1C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, _08098B44 @ =gUnknown_2037F02 - ldrh r0, [r2] - movs r3, 0 - ldrsh r1, [r2, r3] - cmp r1, 0x3 - bgt _08098B48 - lsls r0, 24 - lsrs r0, 24 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _08098B9E - b _08098BA2 - .align 2, 0 -_08098B44: .4byte gUnknown_2037F02 -_08098B48: - cmp r1, 0x8 - beq _08098B94 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x5 - beq _08098B68 - cmp r0, 0x5 - bgt _08098B5E - cmp r0, 0x4 - beq _08098B64 - b _08098B70 -_08098B5E: - cmp r0, 0x6 - beq _08098B6C - b _08098B70 -_08098B64: - movs r0, 0 - b _08098B72 -_08098B68: - movs r0, 0x2 - b _08098B72 -_08098B6C: - movs r0, 0x1 - b _08098B72 -_08098B70: - movs r0, 0x3 -_08098B72: - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - bne _08098B88 - movs r6, 0x1 -_08098B88: - ldr r0, _08098B90 @ =gUnknown_2023D44 - adds r0, r4, r0 - b _08098B9C - .align 2, 0 -_08098B90: .4byte gUnknown_2023D44 -_08098B94: - ldr r1, _08098BAC @ =gUnknown_2023D44 - ldr r0, _08098BB0 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r0, r1 -_08098B9C: - ldrb r3, [r0] -_08098B9E: - cmp r6, 0 - beq _08098BB4 -_08098BA2: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08098BF2 - .align 2, 0 -_08098BAC: .4byte gUnknown_2023D44 -_08098BB0: .4byte gUnknown_2037F1A -_08098BB4: - ldr r1, _08098BF8 @ =gSprites - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldr r2, _08098BFC @ =gUnknown_2037F02 - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x24] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x26] - ldr r1, _08098C00 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x8] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0xE] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x10] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x12] - ldr r1, _08098C04 @ =sub_8098C08 - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 -_08098BF2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098BF8: .4byte gSprites -_08098BFC: .4byte gUnknown_2037F02 -_08098C00: .4byte gTasks -_08098C04: .4byte sub_8098C08 - thumb_func_end sub_8098B1C - - thumb_func_start sub_8098C08 -sub_8098C08: @ 8098C08 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08098C4C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0xE] - movs r4, 0xE - ldrsh r0, [r3, r4] - mov r12, r1 - cmp r0, 0 - bne _08098CC0 - ldr r2, _08098C50 @ =gSprites - movs r7, 0x8 - ldrsh r1, [r3, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r0, 0x24 - ldrsh r1, [r4, r0] - ldrh r5, [r3, 0x10] - movs r7, 0x10 - ldrsh r0, [r3, r7] - adds r7, r2, 0 - cmp r1, r0 - bne _08098C54 - negs r0, r5 - strh r0, [r4, 0x24] - b _08098C56 - .align 2, 0 -_08098C4C: .4byte gTasks -_08098C50: .4byte gSprites -_08098C54: - strh r5, [r4, 0x24] -_08098C56: - lsls r3, r6, 2 - adds r1, r3, r6 - lsls r1, 3 - add r1, r12 - movs r0, 0x8 - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r7 - movs r0, 0x26 - ldrsh r2, [r4, r0] - mov r8, r2 - ldrh r5, [r1, 0x12] - movs r2, 0x12 - ldrsh r0, [r1, r2] - cmp r8, r0 - bne _08098C80 - negs r0, r5 - strh r0, [r4, 0x26] - b _08098C82 -_08098C80: - strh r5, [r4, 0x26] -_08098C82: - adds r0, r3, r6 - lsls r0, 3 - mov r4, r12 - adds r3, r0, r4 - ldrh r0, [r3, 0xC] - strh r0, [r3, 0xE] - ldrh r0, [r3, 0xA] - subs r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _08098CC4 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x24] - movs r4, 0x8 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _08098CC4 -_08098CC0: - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_08098CC4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8098C08 - - thumb_func_start sub_8098CD0 -sub_8098CD0: @ 8098CD0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _08098CF0 @ =gUnknown_2037F02 - ldrb r0, [r4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _08098CF4 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08098D42 - .align 2, 0 -_08098CF0: .4byte gUnknown_2037F02 -_08098CF4: - ldr r0, _08098D48 @ =gSprites - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x2] - ldrh r2, [r1, 0x24] - adds r0, r2 - movs r2, 0 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x4] - ldrh r6, [r1, 0x26] - adds r0, r6 - strh r0, [r1, 0x26] - ldr r0, _08098D4C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - strh r3, [r1, 0x8] - strh r2, [r1, 0xA] - ldrh r0, [r4, 0x6] - strh r0, [r1, 0xC] - strh r2, [r1, 0xE] - ldrh r0, [r4, 0x8] - strh r0, [r1, 0x10] - movs r2, 0x2 - ldrsh r0, [r4, r2] - lsls r0, 1 - strh r0, [r1, 0x12] - movs r6, 0x4 - ldrsh r0, [r4, r6] - lsls r0, 1 - strh r0, [r1, 0x14] - ldr r2, _08098D50 @ =sub_8098D54 - str r2, [r1] - adds r0, r5, 0 - bl _call_via_r2 -_08098D42: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098D48: .4byte gSprites -_08098D4C: .4byte gTasks -_08098D50: .4byte sub_8098D54 - thumb_func_end sub_8098CD0 - - thumb_func_start sub_8098D54 -sub_8098D54: @ 8098D54 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08098DAC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - adds r6, r1, 0 - cmp r0, 0 - beq _08098D72 - b _08098E84 -_08098D72: - ldrh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08098DB4 - ldr r2, _08098DB0 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x12] - ldrh r3, [r0, 0x24] - adds r1, r3 - strh r1, [r0, 0x24] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x14] - ldrh r3, [r0, 0x26] - adds r1, r3 - strh r1, [r0, 0x26] - adds r3, r2, 0 - b _08098DDE - .align 2, 0 -_08098DAC: .4byte gTasks -_08098DB0: .4byte gSprites -_08098DB4: - ldr r3, _08098E40 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - ldrh r2, [r4, 0x12] - subs r1, r2 - strh r1, [r0, 0x24] - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - ldrh r2, [r4, 0x14] - subs r1, r2 - strh r1, [r0, 0x26] -_08098DDE: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - ldrh r0, [r4, 0x10] - strh r0, [r4, 0xE] - ldrh r0, [r4, 0xA] - adds r2, r0, 0x1 - strh r2, [r4, 0xA] - lsls r0, r2, 16 - asrs r0, 16 - movs r6, 0xC - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _08098E88 - movs r0, 0x1 - ands r2, r0 - cmp r2, 0 - beq _08098E44 - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r2, 0x12 - ldrsh r0, [r4, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - ldrh r6, [r1, 0x24] - adds r0, r6 - strh r0, [r1, 0x24] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r2, 0x14 - ldrsh r0, [r4, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - ldrh r3, [r1, 0x26] - adds r0, r3 - strh r0, [r1, 0x26] - b _08098E7C - .align 2, 0 -_08098E40: .4byte gSprites -_08098E44: - movs r6, 0x8 - ldrsh r0, [r4, r6] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r2, 0x24] - subs r0, r1 - strh r0, [r2, 0x24] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r3, 0x14 - ldrsh r1, [r4, r3] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r2, 0x26] - subs r0, r1 - strh r0, [r2, 0x26] -_08098E7C: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08098E88 -_08098E84: - subs r0, r2, 0x1 - strh r0, [r4, 0xE] -_08098E88: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8098D54 - - thumb_func_start sub_8098E90 -sub_8098E90: @ 8098E90 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08098EE0 @ =gUnknown_2037F02 - ldrb r0, [r5] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08098EE4 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r5, 0x2] - strh r2, [r1, 0x24] - ldr r2, _08098EE8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x8] - ldrh r0, [r5, 0x2] - strh r0, [r1, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r1, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r1, 0x10] - ldr r2, _08098EEC @ =sub_8098EF0 - str r2, [r1] - adds r0, r4, 0 - bl _call_via_r2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08098EE0: .4byte gUnknown_2037F02 -_08098EE4: .4byte gSprites -_08098EE8: .4byte gTasks -_08098EEC: .4byte sub_8098EF0 - thumb_func_end sub_8098E90 - - thumb_func_start sub_8098EF0 -sub_8098EF0: @ 8098EF0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _08098F7C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r2 - ldrb r5, [r3, 0x8] - ldrh r4, [r3, 0xA] - ldrh r1, [r3, 0x18] - adds r0, r1, 0x1 - strh r0, [r3, 0x18] - movs r7, 0xC - ldrsh r0, [r3, r7] - lsls r1, 16 - asrs r1, 16 - mov r12, r2 - ldr r7, _08098F80 @ =gSprites - cmp r0, r1 - bne _08098F42 - movs r0, 0 - strh r0, [r3, 0x18] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, r0, r7 - ldrh r3, [r1, 0x24] - movs r0, 0x24 - ldrsh r2, [r1, r0] - lsls r0, r4, 16 - asrs r0, 16 - cmp r2, r0 - bne _08098F3A - negs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_08098F3A: - lsls r0, r4, 16 - asrs r0, 16 - adds r0, r3 - strh r0, [r1, 0x24] -_08098F42: - lsls r2, r6, 2 - adds r2, r6 - lsls r2, 3 - add r2, r12 - strh r4, [r2, 0xA] - ldrh r1, [r2, 0xE] - ldrh r0, [r2, 0x1A] - adds r1, r0 - strh r1, [r2, 0x1A] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r7 - lsls r1, 16 - asrs r1, 24 - strh r1, [r0, 0x26] - ldrh r0, [r2, 0x10] - subs r0, 0x1 - strh r0, [r2, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _08098F74 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_08098F74: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098F7C: .4byte gTasks -_08098F80: .4byte gSprites - thumb_func_end sub_8098EF0 - - thumb_func_start sub_8098F84 -sub_8098F84: @ 8098F84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0x1 - ldr r4, _08098FF8 @ =gUnknown_2037F02 - ldrb r0, [r4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r7, r0, 24 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - ble _08098FA8 - movs r0, 0x5 - strh r0, [r4, 0x8] -_08098FA8: - movs r1, 0 - movs r2, 0x8 - ldrsh r0, [r4, r2] - adds r3, r4, 0 - ldr r2, _08098FFC @ =gTasks - mov r12, r2 - lsls r4, r5, 2 - ldr r2, _08099000 @ =sub_8099004 - mov r8, r2 - cmp r1, r0 - bge _08098FCE - adds r2, r0, 0 -_08098FC0: - lsls r0, r6, 25 - lsrs r6, r0, 24 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r2 - blt _08098FC0 -_08098FCE: - adds r0, r4, r5 - lsls r0, 3 - add r0, r12 - strh r7, [r0, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0xE] - strh r6, [r0, 0x10] - mov r1, r8 - str r1, [r0] - adds r0, r5, 0 - bl _call_via_r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098FF8: .4byte gUnknown_2037F02 -_08098FFC: .4byte gTasks -_08099000: .4byte sub_8099004 - thumb_func_end sub_8098F84 - - thumb_func_start sub_8099004 -sub_8099004: @ 8099004 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _08099074 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrb r4, [r5, 0x8] - movs r1, 0x12 - ldrsh r0, [r5, r1] - movs r2, 0xA - ldrsh r1, [r5, r2] - bl Sin - ldr r2, _08099078 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r4, r1, r2 - strh r0, [r4, 0x24] - movs r1, 0x12 - ldrsh r0, [r5, r1] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r5, 0xC] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x10] - ldrh r1, [r5, 0x12] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x12] - cmp r0, 0 - bne _0809905C - ldrh r0, [r5, 0xE] - subs r0, 0x1 - strh r0, [r5, 0xE] -_0809905C: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _0809906E - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_0809906E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08099074: .4byte gTasks -_08099078: .4byte gSprites - thumb_func_end sub_8099004 - - thumb_func_start sub_809907C -sub_809907C: @ 809907C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080990A4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099098 - ldr r1, _080990A8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_08099098: - adds r0, r4, 0 - bl sub_8098F84 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080990A4: .4byte gUnknown_2037F1A -_080990A8: .4byte gUnknown_2037F02 - thumb_func_end sub_809907C - - thumb_func_start sub_80990AC -sub_80990AC: @ 80990AC - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080990D4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080990DC - ldr r1, _080990D8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - b _080990E0 - .align 2, 0 -_080990D4: .4byte gUnknown_2037F1A -_080990D8: .4byte gUnknown_2037F02 -_080990DC: - ldr r1, _0809910C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] -_080990E0: - strh r0, [r4, 0x30] - ldrh r2, [r1] - movs r0, 0 - strh r2, [r4, 0x2E] - strh r0, [r4, 0x32] - ldr r1, _08099110 @ =gUnknown_2023D44 - ldr r0, _08099114 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r1, _08099118 @ =sub_8099120 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _0809911C @ =sub_8074DC4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809910C: .4byte gUnknown_2037F02 -_08099110: .4byte gUnknown_2023D44 -_08099114: .4byte gUnknown_2037F1A -_08099118: .4byte sub_8099120 -_0809911C: .4byte sub_8074DC4 - thumb_func_end sub_80990AC - - thumb_func_start sub_8099120 -sub_8099120: @ 8099120 - push {lr} - ldrh r1, [r0, 0x36] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x30] - negs r1, r1 - strh r1, [r0, 0x30] - ldr r1, _0809913C @ =sub_8074DC4 - str r1, [r0, 0x1C] - ldr r1, _08099140 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_0809913C: .4byte sub_8074DC4 -_08099140: .4byte DestroyAnimSprite - thumb_func_end sub_8099120 - - thumb_func_start sub_8099144 -sub_8099144: @ 8099144 - push {r4,r5,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r5, _08099184 @ =gUnknown_2037F02 - ldrb r0, [r5, 0x4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r5] - movs r1, 0 - strh r2, [r4, 0x2E] - strh r1, [r4, 0x30] - ldrh r1, [r5, 0x2] - strh r1, [r4, 0x32] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r1, _08099188 @ =sub_8099190 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _0809918C @ =sub_8074DC4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099184: .4byte gUnknown_2037F02 -_08099188: .4byte sub_8099190 -_0809918C: .4byte sub_8074DC4 - thumb_func_end sub_8099144 - - thumb_func_start sub_8099190 -sub_8099190: @ 8099190 - push {lr} - ldrh r1, [r0, 0x36] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x32] - negs r1, r1 - strh r1, [r0, 0x32] - ldr r1, _080991AC @ =sub_8074DC4 - str r1, [r0, 0x1C] - ldr r1, _080991B0 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080991AC: .4byte sub_8074DC4 -_080991B0: .4byte DestroyAnimSprite - thumb_func_end sub_8099190 - - thumb_func_start sub_80991B4 -sub_80991B4: @ 80991B4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r0, _080991CC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080991D8 - ldr r1, _080991D0 @ =gUnknown_2023D44 - ldr r0, _080991D4 @ =gUnknown_2037F1A - b _080991DC - .align 2, 0 -_080991CC: .4byte gUnknown_2037F02 -_080991D0: .4byte gUnknown_2023D44 -_080991D4: .4byte gUnknown_2037F1A -_080991D8: - ldr r1, _0809923C @ =gUnknown_2023D44 - ldr r0, _08099240 @ =gUnknown_2037F1B -_080991DC: - ldrb r0, [r0] - adds r0, r1 - ldrb r7, [r0] - ldr r5, _08099244 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x4] - movs r3, 0 - strh r0, [r6, 0x2E] - ldr r0, _08099248 @ =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r6, 0x30] - ldrh r0, [r4, 0x20] - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x22] - strh r0, [r6, 0x36] - adds r0, r6, 0 - str r3, [sp] - bl sub_80754B8 - ldr r3, [sp] - strh r3, [r6, 0x34] - strh r3, [r6, 0x36] - ldrh r0, [r4, 0x24] - strh r0, [r6, 0x38] - ldrh r0, [r4, 0x26] - strh r0, [r6, 0x3A] - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _0809924C - strh r3, [r6, 0x32] - b _08099252 - .align 2, 0 -_0809923C: .4byte gUnknown_2023D44 -_08099240: .4byte gUnknown_2037F1B -_08099244: .4byte gUnknown_2037F02 -_08099248: .4byte gSprites -_0809924C: - cmp r0, 0x2 - bne _08099252 - strh r3, [r6, 0x30] -_08099252: - ldr r0, _08099268 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - lsls r0, r7, 8 - orrs r0, r1 - strh r0, [r6, 0x3C] - ldr r0, _0809926C @ =sub_8099270 - str r0, [r6, 0x1C] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099268: .4byte gUnknown_2037F02 -_0809926C: .4byte sub_8099270 - thumb_func_end sub_80991B4 - - thumb_func_start sub_8099270 -sub_8099270: @ 8099270 - push {r4-r6,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x3C] - lsls r1, r0, 24 - lsrs r4, r1, 24 - adds r5, r4, 0 - lsls r0, 16 - asrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080992AC @ =gSprites - adds r3, r1, r0 - ldrh r0, [r2, 0x2E] - movs r6, 0x2E - ldrsh r1, [r2, r6] - cmp r1, 0 - bne _080992B0 - cmp r4, 0x1 - bhi _0809929A - strh r1, [r3, 0x24] -_0809929A: - cmp r5, 0x2 - beq _080992A2 - cmp r5, 0 - bne _080992A4 -_080992A2: - strh r1, [r3, 0x26] -_080992A4: - adds r0, r2, 0 - bl DestroyAnimSprite - b _080992DA - .align 2, 0 -_080992AC: .4byte gSprites -_080992B0: - subs r0, 0x1 - strh r0, [r2, 0x2E] - ldrh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - adds r1, r0 - strh r1, [r2, 0x34] - ldrh r0, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r0, r4 - strh r0, [r2, 0x36] - lsls r1, 16 - asrs r1, 24 - ldrh r6, [r2, 0x38] - adds r1, r6 - strh r1, [r3, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r2, 0x3A] - adds r0, r2 - strh r0, [r3, 0x26] -_080992DA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8099270 - - thumb_func_start sub_80992E0 -sub_80992E0: @ 80992E0 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080992F4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080992FC - ldr r0, _080992F8 @ =gUnknown_2037F1A - b _080992FE - .align 2, 0 -_080992F4: .4byte gUnknown_2037F02 -_080992F8: .4byte gUnknown_2037F1A -_080992FC: - ldr r0, _0809937C @ =gUnknown_2037F1B -_080992FE: - ldrb r2, [r0] - ldr r0, _08099380 @ =gUnknown_2023D44 - adds r0, r2, r0 - ldrb r6, [r0] - adds r0, r2, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099328 - ldr r1, _08099384 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _08099328 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_08099328: - ldr r2, _08099384 @ =gUnknown_2037F02 - ldrh r0, [r2, 0x8] - movs r4, 0 - strh r0, [r5, 0x2E] - ldr r0, _08099388 @ =gSprites - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r2, 0x2] - ldrh r3, [r1, 0x20] - adds r0, r3 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x22] - strh r0, [r5, 0x34] - ldrh r0, [r2, 0x4] - ldrh r1, [r1, 0x22] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_80754B8 - strh r4, [r5, 0x34] - strh r4, [r5, 0x36] - strh r6, [r5, 0x38] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0809938C @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _08099390 @ =sub_8074E14 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809937C: .4byte gUnknown_2037F1B -_08099380: .4byte gUnknown_2023D44 -_08099384: .4byte gUnknown_2037F02 -_08099388: .4byte gSprites -_0809938C: .4byte DestroyAnimSprite -_08099390: .4byte sub_8074E14 - thumb_func_end sub_80992E0 - - thumb_func_start sub_8099394 -sub_8099394: @ 8099394 - push {r4-r7,lr} - adds r6, r0, 0 - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080993B4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080993BC - ldr r0, _080993B8 @ =gUnknown_2037F1A - b _080993BE - .align 2, 0 -_080993B4: .4byte gUnknown_2037F02 -_080993B8: .4byte gUnknown_2037F1A -_080993BC: - ldr r0, _0809943C @ =gUnknown_2037F1B -_080993BE: - ldrb r1, [r0] - ldr r0, _08099440 @ =gUnknown_2023D44 - adds r0, r1, r0 - ldrb r7, [r0] - adds r0, r1, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080993E8 - ldr r1, _08099444 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080993E8 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080993E8: - ldr r5, _08099444 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r0, _08099448 @ =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r6, 0x30] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r6, 0x34] - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl sub_80754B8 - ldrh r0, [r4, 0x24] - lsls r0, 8 - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x26] - lsls r0, 8 - strh r0, [r6, 0x36] - strh r7, [r6, 0x38] - ldrh r0, [r5, 0xA] - strh r0, [r6, 0x3A] - lsls r0, 16 - cmp r0, 0 - bne _08099450 - ldr r1, _0809944C @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - b _08099458 - .align 2, 0 -_0809943C: .4byte gUnknown_2037F1B -_08099440: .4byte gUnknown_2023D44 -_08099444: .4byte gUnknown_2037F02 -_08099448: .4byte gSprites -_0809944C: .4byte DestroyAnimSprite -_08099450: - ldr r1, _08099464 @ =sub_809946C - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 -_08099458: - ldr r0, _08099468 @ =sub_8074E14 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099464: .4byte sub_809946C -_08099468: .4byte sub_8074E14 - thumb_func_end sub_8099394 - - thumb_func_start sub_809946C -sub_809946C: @ 809946C - push {r4,lr} - ldr r4, _08099498 @ =gSprites - movs r1, 0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - movs r3, 0 - strh r3, [r1, 0x24] - movs r1, 0x38 - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r3, [r1, 0x26] - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099498: .4byte gSprites - thumb_func_end sub_809946C - - thumb_func_start sub_809949C -sub_809949C: @ 809949C - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _08099520 @ =gUnknown_2037F02 - movs r0, 0x6 - ldrsh r1, [r5, r0] - movs r0, 0x80 - lsls r0, 8 - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _08099524 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080994CE - ldrh r0, [r5, 0x2] - negs r0, r0 - strh r0, [r5, 0x2] - ldrh r0, [r5, 0xA] - negs r0, r0 - strh r0, [r5, 0xA] -_080994CE: - ldrb r0, [r5] - bl GetAnimBankSpriteId - ldr r1, _08099528 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - movs r1, 0x2 - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r2, 0xC - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x12] - ldrh r0, [r5, 0xC] - strh r0, [r4, 0x14] - strh r7, [r4, 0x16] - ldr r0, _0809952C @ =sub_8099530 - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099520: .4byte gUnknown_2037F02 -_08099524: .4byte gUnknown_2037F1A -_08099528: .4byte gTasks -_0809952C: .4byte sub_8099530 - thumb_func_end sub_809949C - - thumb_func_start sub_8099530 -sub_8099530: @ 8099530 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08099588 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - ldrb r1, [r5, 0x8] - ldrh r0, [r5, 0xA] - ldrh r2, [r5, 0x1E] - adds r0, r2 - strh r0, [r5, 0x1E] - ldr r2, _0809958C @ =gSprites - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r2 - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x1C] - lsrs r0, 8 - movs r2, 0xC - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x16] - ldrh r1, [r5, 0x1C] - adds r0, r1 - strh r0, [r5, 0x1C] - ldrh r0, [r5, 0xE] - subs r0, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _08099580 - ldr r0, _08099590 @ =sub_8099594 - str r0, [r5] -_08099580: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099588: .4byte gTasks -_0809958C: .4byte gSprites -_08099590: .4byte sub_8099594 - thumb_func_end sub_8099530 - - thumb_func_start sub_8099594 -sub_8099594: @ 8099594 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080995B8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080995BC - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - b _080995F0 - .align 2, 0 -_080995B8: .4byte gTasks -_080995BC: - ldrb r0, [r4, 0x8] - ldrh r2, [r4, 0x12] - ldrh r1, [r4, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - ldr r3, _080995F8 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - lsls r2, 16 - asrs r2, 24 - ldrh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 24 - adds r2, r0 - strh r2, [r1, 0x24] - ldrh r0, [r4, 0x14] - subs r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _080995F0 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080995F0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080995F8: .4byte gSprites - thumb_func_end sub_8099594 - - thumb_func_start sub_80995FC -sub_80995FC: @ 80995FC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08099620 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _0809962A - cmp r0, 0x2 - bgt _08099624 - cmp r0, 0 - blt _0809965C - ldrb r0, [r1] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - b _08099664 - .align 2, 0 -_08099620: .4byte gUnknown_2037F02 -_08099624: - cmp r0, 0x3 - beq _08099634 - b _0809965C -_0809962A: - ldr r5, _08099630 @ =gUnknown_2037F1A - b _08099636 - .align 2, 0 -_08099630: .4byte gUnknown_2037F1A -_08099634: - ldr r5, _08099654 @ =gUnknown_2037F1B -_08099636: - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _0809965C - ldr r1, _08099658 @ =gUnknown_2023D44 - ldrb r0, [r5] - eors r0, r4 - adds r0, r1 - ldrb r2, [r0] - b _08099664 - .align 2, 0 -_08099654: .4byte gUnknown_2037F1B -_08099658: .4byte gUnknown_2023D44 -_0809965C: - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _080996A4 -_08099664: - ldr r1, _08099684 @ =gTasks - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r0, 3 - adds r5, r0, r1 - strh r2, [r5, 0x8] - ldr r0, _08099688 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099690 - ldr r0, _0809968C @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - b _08099696 - .align 2, 0 -_08099684: .4byte gTasks -_08099688: .4byte gUnknown_2037F1B -_0809968C: .4byte gUnknown_2037F02 -_08099690: - ldr r0, _080996AC @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - negs r0, r0 -_08099696: - strh r0, [r5, 0xA] - ldr r0, _080996B0 @ =gTasks - adds r1, r4, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080996B4 @ =sub_80996B8 - str r0, [r1] -_080996A4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080996AC: .4byte gUnknown_2037F02 -_080996B0: .4byte gTasks -_080996B4: .4byte sub_80996B8 - thumb_func_end sub_80995FC - - thumb_func_start sub_80996B8 -sub_80996B8: @ 80996B8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080996FC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r2, [r1, 0x8] - ldr r3, _08099700 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r1, 0xA] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - movs r2, 0x24 - ldrsh r1, [r0, r2] - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r1, r0 - adds r1, 0x20 - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bls _080996F6 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080996F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080996FC: .4byte gTasks -_08099700: .4byte gSprites - thumb_func_end sub_80996B8 - - thumb_func_start sub_8099704 -sub_8099704: @ 8099704 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _08099754 @ =gUnknown_2037F1A - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099720 - ldr r1, _08099758 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_08099720: - ldr r4, _08099758 @ =gUnknown_2037F02 - ldrb r0, [r4, 0x8] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0809975C @ =gTasks - lsls r3, r5, 2 - adds r1, r3, r5 - lsls r1, 3 - adds r2, r1, r2 - ldrh r1, [r4] - strh r1, [r2, 0x8] - ldrh r1, [r4, 0x2] - strh r1, [r2, 0xA] - ldrh r1, [r4, 0x4] - strh r1, [r2, 0xC] - ldrh r1, [r4, 0x6] - strh r1, [r2, 0xE] - strh r0, [r2, 0x10] - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08099760 - ldrb r0, [r6] - b _08099764 - .align 2, 0 -_08099754: .4byte gUnknown_2037F1A -_08099758: .4byte gUnknown_2037F02 -_0809975C: .4byte gTasks -_08099760: - ldr r0, _0809977C @ =gUnknown_2037F1B - ldrb r0, [r0] -_08099764: - strh r0, [r2, 0x12] - ldr r1, _08099780 @ =gTasks - adds r0, r3, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x20] - ldr r1, _08099784 @ =sub_8099788 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809977C: .4byte gUnknown_2037F1B -_08099780: .4byte gTasks -_08099784: .4byte sub_8099788 - thumb_func_end sub_8099704 - - thumb_func_start sub_8099788 -sub_8099788: @ 8099788 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080997D8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrb r7, [r4, 0x10] - ldrh r0, [r4, 0xC] - ldrh r1, [r4, 0x1C] - adds r0, r1 - lsls r1, r0, 16 - strh r0, [r4, 0x1C] - lsrs r1, 24 - mov r8, r1 - mov r0, r8 - movs r2, 0xA - ldrsh r1, [r4, r2] - bl Sin - lsls r0, 16 - lsrs r5, r0, 16 - mov r9, r5 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080997E0 - ldr r0, _080997DC @ =gSprites - lsls r2, r7, 4 - adds r1, r2, r7 - lsls r1, 2 - adds r1, r0 - strh r5, [r1, 0x24] - mov r9, r0 - adds r4, r2, 0 - b _08099826 - .align 2, 0 -_080997D8: .4byte gTasks -_080997DC: .4byte gSprites -_080997E0: - ldrb r0, [r4, 0x12] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08099808 - ldr r1, _08099804 @ =gSprites - lsls r2, r7, 4 - adds r0, r2, r7 - lsls r0, 2 - adds r3, r0, r1 - lsls r0, r5, 16 - asrs r0, 16 - mov r9, r1 - adds r4, r2, 0 - cmp r0, 0 - bge _08099824 - b _08099822 - .align 2, 0 -_08099804: .4byte gSprites -_08099808: - ldr r1, _080998A8 @ =gSprites - lsls r2, r7, 4 - adds r0, r2, r7 - lsls r0, 2 - adds r3, r0, r1 - mov r4, r9 - lsls r0, r4, 16 - asrs r0, 16 - mov r9, r1 - adds r4, r2, 0 - cmp r0, 0 - bge _08099822 - negs r0, r0 -_08099822: - negs r0, r0 -_08099824: - strh r0, [r3, 0x26] -_08099826: - mov r5, r8 - cmp r5, 0x7F - bls _08099848 - ldr r1, _080998AC @ =gTasks - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0x1E - ldrsh r0, [r3, r5] - adds r5, r1, 0 - cmp r0, 0 - bne _08099848 - movs r1, 0x20 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _0809986A -_08099848: - mov r2, r8 - cmp r2, 0x7E - bhi _0809989C - ldr r1, _080998AC @ =gTasks - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0x1E - ldrsh r0, [r3, r5] - adds r5, r1, 0 - cmp r0, 0x1 - bne _0809989C - movs r1, 0x20 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _0809989C -_0809986A: - adds r1, r2, r6 - lsls r1, 3 - adds r1, r5 - ldrh r0, [r1, 0x1E] - movs r2, 0x1 - eors r0, r2 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - eors r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0xE] - subs r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _0809989C - adds r0, r4, r7 - lsls r0, 2 - add r0, r9 - strh r3, [r0, 0x24] - strh r3, [r0, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_0809989C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080998A8: .4byte gSprites -_080998AC: .4byte gTasks - thumb_func_end sub_8099788 - - thumb_func_start sub_80998B0 -sub_80998B0: @ 80998B0 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _080998FC @ =gUnknown_2037F02 - ldrb r0, [r6, 0x6] - bl GetAnimBankSpriteId - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r1, [r6, 0x8] - adds r0, r5, 0 - bl sub_80758E0 - ldr r1, _08099900 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r6] - strh r1, [r0, 0x8] - ldrh r1, [r6, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r6, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r6, 0x4] - strh r1, [r0, 0xE] - strh r5, [r0, 0x10] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x1C] - strh r1, [r0, 0x1E] - ldr r1, _08099904 @ =sub_8099908 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080998FC: .4byte gUnknown_2037F02 -_08099900: .4byte gTasks -_08099904: .4byte sub_8099908 - thumb_func_end sub_80998B0 - - thumb_func_start sub_8099908 -sub_8099908: @ 8099908 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _08099968 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x8] - ldrh r1, [r4, 0x1C] - adds r0, r1 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xA] - ldrh r3, [r4, 0x1E] - adds r0, r3 - strh r0, [r4, 0x1E] - ldrb r0, [r4, 0x10] - adds r6, r0, 0 - movs r0, 0x1C - ldrsh r1, [r4, r0] - movs r3, 0x1E - ldrsh r2, [r4, r3] - adds r0, r6, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _08099978 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - ble _0809996C - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - negs r0, r0 - strh r0, [r4, 0xA] - strh r2, [r4, 0xC] - strh r1, [r4, 0xE] - b _08099978 - .align 2, 0 -_08099968: .4byte gTasks -_0809996C: - adds r0, r6, 0 - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_08099978: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8099908 - - thumb_func_start sub_8099980 -sub_8099980: @ 8099980 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _080999BC @ =gUnknown_2037F02 - ldrb r0, [r4, 0x4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0 - bl sub_80758E0 - ldr r1, _080999C0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2, 0xA] - ldrh r0, [r4] - strh r0, [r2, 0xC] - movs r3, 0x6 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - beq _080999C4 - strh r1, [r2, 0xE] - b _080999D0 - .align 2, 0 -_080999BC: .4byte gUnknown_2037F02 -_080999C0: .4byte gTasks -_080999C4: - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - adds r3, r0, 0 - muls r3, r1 - adds r0, r3, 0 - strh r0, [r2, 0xE] -_080999D0: - ldr r1, _080999FC @ =gTasks - lsls r4, r7, 2 - adds r0, r4, r7 - lsls r0, 3 - adds r5, r0, r1 - ldr r6, _08099A00 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x10] - mov r0, r8 - strh r0, [r5, 0x12] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x14] - bl sub_8073788 - lsls r0, 24 - mov r8, r4 - cmp r0, 0 - beq _08099A04 - movs r0, 0x1 - strh r0, [r5, 0x16] - b _08099A28 - .align 2, 0 -_080999FC: .4byte gTasks -_08099A00: .4byte gUnknown_2037F02 -_08099A04: - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08099A14 - ldr r0, _08099A10 @ =gUnknown_2037F1A - b _08099A16 - .align 2, 0 -_08099A10: .4byte gUnknown_2037F1A -_08099A14: - ldr r0, _08099A6C @ =gUnknown_2037F1B -_08099A16: - ldrb r0, [r0] - bl GetBattlerSide - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _08099A26 - movs r1, 0x1 -_08099A26: - strh r1, [r5, 0x16] -_08099A28: - ldr r0, _08099A70 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r4, r1, r0 - movs r3, 0x16 - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _08099A54 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _08099A54 - movs r1, 0xE - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0xE] - movs r2, 0x10 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x10] -_08099A54: - ldr r0, _08099A70 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _08099A74 @ =sub_8099B54 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099A6C: .4byte gUnknown_2037F1B -_08099A70: .4byte gTasks -_08099A74: .4byte sub_8099B54 - thumb_func_end sub_8099980 - - thumb_func_start sub_8099A78 -sub_8099A78: @ 8099A78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _08099AB4 @ =gUnknown_2037F02 - ldrb r0, [r4, 0x4] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0 - bl sub_80758E0 - ldr r1, _08099AB8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xA] - ldrh r1, [r4] - strh r1, [r0, 0xC] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08099AC0 - ldr r0, _08099ABC @ =gUnknown_2037F1A - b _08099AC2 - .align 2, 0 -_08099AB4: .4byte gUnknown_2037F02 -_08099AB8: .4byte gTasks -_08099ABC: .4byte gUnknown_2037F1A -_08099AC0: - ldr r0, _08099AF0 @ =gUnknown_2037F1B -_08099AC2: - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _08099AD4 - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] -_08099AD4: - ldr r0, _08099AF4 @ =gUnknown_2037F02 - movs r2, 0x6 - ldrsh r1, [r0, r2] - adds r6, r0, 0 - cmp r1, 0x1 - beq _08099AFC - ldr r2, _08099AF8 @ =gTasks - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0xE] - b _08099B16 - .align 2, 0 -_08099AF0: .4byte gUnknown_2037F1B -_08099AF4: .4byte gUnknown_2037F02 -_08099AF8: .4byte gTasks -_08099AFC: - ldr r3, _08099B4C @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r0, r3 - ldrh r2, [r6] - ldrh r1, [r6, 0x2] - adds r7, r2, 0 - muls r7, r1 - adds r1, r7, 0 - strh r1, [r0, 0xE] - adds r2, r3, 0 - adds r3, r4, 0 -_08099B16: - adds r1, r3, r5 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r6, 0x2] - strh r0, [r1, 0x10] - mov r0, r8 - strh r0, [r1, 0x12] - ldrh r0, [r6, 0x6] - strh r0, [r1, 0x14] - movs r0, 0x1 - strh r0, [r1, 0x16] - movs r2, 0xE - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0xE] - movs r7, 0x10 - ldrsh r0, [r1, r7] - negs r0, r0 - strh r0, [r1, 0x10] - ldr r0, _08099B50 @ =sub_8099B54 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099B4C: .4byte gTasks -_08099B50: .4byte sub_8099B54 - thumb_func_end sub_8099A78 - - thumb_func_start sub_8099B54 -sub_8099B54: @ 8099B54 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08099BAC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] - ldrb r0, [r4, 0x12] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0xE] - adds r1, r2, 0 - bl obj_id_set_rotscale - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08099B88 - ldrb r0, [r4, 0x12] - bl sub_80759DC -_08099B88: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xC - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _08099BCE - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08099BB0 - cmp r0, 0x1 - ble _08099BB6 - cmp r0, 0x2 - beq _08099BBE - b _08099BB6 - .align 2, 0 -_08099BAC: .4byte gTasks -_08099BB0: - ldrb r0, [r4, 0x12] - bl sub_8075980 -_08099BB6: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _08099BCE -_08099BBE: - movs r0, 0 - strh r0, [r4, 0xA] - movs r2, 0x10 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x10] - movs r0, 0x1 - strh r0, [r4, 0x14] -_08099BCE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8099B54 - - thumb_func_start sub_8099BD4 -sub_8099BD4: @ 8099BD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08099C00 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r8, r0 - cmp r1, 0 - bne _08099C0C - ldr r4, _08099C04 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _08099C08 @ =gUnknown_2037EEC - ldrh r0, [r0] - movs r1, 0xC - bl __udivsi3 - b _08099C20 - .align 2, 0 -_08099C00: .4byte gUnknown_2037F02 -_08099C04: .4byte gTasks -_08099C08: .4byte gUnknown_2037EEC -_08099C0C: - ldr r4, _08099CA8 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r6, r0, r4 - ldr r0, _08099CAC @ =gUnknown_2037EE8 - ldr r0, [r0] - movs r1, 0xC - bl __divsi3 -_08099C20: - strh r0, [r6, 0x26] - lsls r0, 16 - adds r1, r4, 0 - cmp r0, 0 - bgt _08099C2E - movs r0, 0x1 - strh r0, [r6, 0x26] -_08099C2E: - movs r2, 0x26 - ldrsh r0, [r6, r2] - cmp r0, 0x10 - ble _08099C3A - movs r0, 0x10 - strh r0, [r6, 0x26] -_08099C3A: - adds r4, r5, r7 - lsls r4, 3 - adds r4, r1 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - movs r5, 0 - strh r1, [r4, 0x24] - ldrh r2, [r4, 0x26] - movs r0, 0x1 - ands r0, r2 - adds r1, r0 - strh r1, [r4, 0x22] - strh r5, [r4, 0x20] - mov r1, r8 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x1C] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x1E] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - ldr r2, _08099CB0 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x18] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x1A] - strh r5, [r4, 0x8] - mov r1, r8 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0xA] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0xC] - ldr r0, _08099CB4 @ =sub_8099CB8 - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099CA8: .4byte gTasks -_08099CAC: .4byte gUnknown_2037EE8 -_08099CB0: .4byte gSprites -_08099CB4: .4byte sub_8099CB8 - thumb_func_end sub_8099BD4 - - thumb_func_start sub_8099CB8 -sub_8099CB8: @ 8099CB8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08099D0C @ =gTasks - adds r3, r0, r1 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xA - ldrsh r1, [r3, r2] - cmp r0, r1 - ble _08099D96 - movs r0, 0 - strh r0, [r3, 0x8] - ldrh r0, [r3, 0x20] - adds r1, r0, 0x1 - movs r0, 0x1 - ands r1, r0 - strh r1, [r3, 0x20] - movs r2, 0x1C - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _08099D2A - cmp r1, 0 - beq _08099D14 - ldr r2, _08099D10 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x18] - adds r1, r2 - b _08099D28 - .align 2, 0 -_08099D0C: .4byte gTasks -_08099D10: .4byte gSprites -_08099D14: - ldr r2, _08099D50 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x18] - ldrh r2, [r3, 0x24] - subs r1, r2 -_08099D28: - strh r1, [r0, 0x24] -_08099D2A: - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08099D64 - movs r2, 0x20 - ldrsh r4, [r3, r2] - cmp r4, 0 - beq _08099D54 - ldr r2, _08099D50 @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x26] - strh r1, [r0, 0x26] - b _08099D64 - .align 2, 0 -_08099D50: .4byte gSprites -_08099D54: - ldr r2, _08099D9C @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x26] -_08099D64: - ldrh r0, [r3, 0xC] - subs r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - bne _08099D96 - ldr r2, _08099D9C @ =gSprites - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x24] - movs r0, 0x16 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x26] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_08099D96: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099D9C: .4byte gSprites - thumb_func_end sub_8099CB8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_80A22E8.s b/asm/battle_anim_80A22E8.s deleted file mode 100644 index e64654d57..000000000 --- a/asm/battle_anim_80A22E8.s +++ /dev/null @@ -1,55436 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A22E8 -sub_80A22E8: @ 80A22E8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A231C @ =gUnknown_2037F02 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080A2320 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2324 - ldrh r0, [r5, 0x8] - negs r0, r0 - b _080A2326 - .align 2, 0 -_080A231C: .4byte gUnknown_2037F02 -_080A2320: .4byte gUnknown_2037F1A -_080A2324: - ldrh r0, [r5, 0x8] -_080A2326: - strh r0, [r4, 0x34] - ldr r0, _080A2338 @ =gUnknown_2037F02 - ldrh r0, [r0, 0xA] - strh r0, [r4, 0x36] - ldr r0, _080A233C @ =sub_80A2340 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2338: .4byte gUnknown_2037F02 -_080A233C: .4byte sub_80A2340 - thumb_func_end sub_80A22E8 - - thumb_func_start sub_80A2340 -sub_80A2340: @ 80A2340 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A237C - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r1, r0 - strh r1, [r4, 0x32] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A2382 -_080A237C: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2382: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2340 - - thumb_func_start sub_80A2388 -sub_80A2388: @ 80A2388 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080A23C8 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r5, _080A23CC @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080A23D0 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080A23D4 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A23C8: .4byte gUnknown_2037F02 -_080A23CC: .4byte gUnknown_2037F1A -_080A23D0: .4byte sub_8075590 -_080A23D4: .4byte move_anim_8074EE0 - thumb_func_end sub_80A2388 - - thumb_func_start sub_80A23D8 -sub_80A23D8: @ 80A23D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080A2420 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x6] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldr r5, _080A2424 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080A2428 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080A242C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2420: .4byte gUnknown_2037F02 -_080A2424: .4byte gUnknown_2037F1B -_080A2428: .4byte sub_8075590 -_080A242C: .4byte DestroyAnimSprite - thumb_func_end sub_80A23D8 - - thumb_func_start sub_80A2430 -sub_80A2430: @ 80A2430 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r6, _080A2480 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080A2484 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r6, 0x6] - strh r0, [r4, 0x38] - ldr r1, _080A2488 @ =sub_80A248C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2480: .4byte gUnknown_2037F02 -_080A2484: .4byte gUnknown_2037F1B -_080A2488: .4byte sub_80A248C - thumb_func_end sub_80A2430 - - thumb_func_start sub_80A248C -sub_80A248C: @ 80A248C - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080A24A2 - adds r0, r4, 0 - bl DestroySprite - b _080A24F6 -_080A24A2: - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _080A24BC - ldr r0, _080A24B8 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - adds r0, 0x1 - b _080A24C6 - .align 2, 0 -_080A24B8: .4byte gUnknown_2037F1B -_080A24BC: - ldr r0, _080A24FC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - adds r0, 0x6 -_080A24C6: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0xF - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] -_080A24F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A24FC: .4byte gUnknown_2037F1B - thumb_func_end sub_80A248C - - thumb_func_start sub_80A2500 -sub_80A2500: @ 80A2500 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080A2570 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - subs r0, 0x1 - movs r2, 0 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080A255A - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - movs r0, 0x6 - strh r0, [r5, 0x8] - ldr r1, _080A2574 @ =gUnknown_2037F02 - movs r0, 0xF - strh r0, [r1] - strh r2, [r1, 0x2] - movs r0, 0x50 - strh r0, [r1, 0x4] - strh r2, [r1, 0x6] - ldr r4, _080A2578 @ =gUnknown_83E2A88 - ldr r0, _080A257C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - adds r3, r0, 0 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl CreateSpriteAndAnimate -_080A255A: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0xF - bne _080A2568 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A2568: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2570: .4byte gTasks -_080A2574: .4byte gUnknown_2037F02 -_080A2578: .4byte gUnknown_83E2A88 -_080A257C: .4byte gUnknown_2037F1B - thumb_func_end sub_80A2500 - - thumb_func_start sub_80A2580 -sub_80A2580: @ 80A2580 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r6, _080A25C4 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x6] - strh r0, [r4, 0x2E] - ldr r5, _080A25C8 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldr r0, _080A25CC @ =sub_80A25D0 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A25C4: .4byte gUnknown_2037F02 -_080A25C8: .4byte gUnknown_2037F1A -_080A25CC: .4byte sub_80A25D0 - thumb_func_end sub_80A2580 - - thumb_func_start sub_80A25D0 -sub_80A25D0: @ 80A25D0 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080A25E4 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A25E4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A25D0 - - thumb_func_start sub_80A25EC -sub_80A25EC: @ 80A25EC - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x7 - ands r1, r0 - adds r0, r5, 0 - bl StartSpriteAnim - ldr r4, _080A2634 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2638 - ldrh r0, [r5, 0x20] - subs r0, 0x14 - b _080A263C - .align 2, 0 -_080A2634: .4byte gUnknown_2037F1A -_080A2638: - ldrh r0, [r5, 0x20] - adds r0, 0x14 -_080A263C: - strh r0, [r5, 0x20] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1F - ands r0, r1 - adds r0, 0x40 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080A269C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8075804 - bl Random - movs r1, 0xFF - ands r1, r0 - strh r1, [r5, 0x38] - adds r0, r5, 0 - adds r0, 0x43 - ldrb r0, [r0] - strh r0, [r5, 0x3A] - ldr r1, _080A26A0 @ =sub_80A26A4 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A269C: .4byte gUnknown_2037F1B -_080A26A0: .4byte sub_80A26A4 - thumb_func_end sub_80A25EC - - thumb_func_start sub_80A26A4 -sub_80A26A4: @ 80A26A4 - push {r4,lr} - adds r4, r0, 0 - bl sub_807578C - lsls r0, 24 - cmp r0, 0 - beq _080A26BA - adds r0, r4, 0 - bl DestroyAnimSprite - b _080A26EA -_080A26BA: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xC - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7E - bgt _080A26D6 - ldrh r0, [r4, 0x3A] - b _080A26DA -_080A26D6: - ldrh r0, [r4, 0x3A] - adds r0, 0x1 -_080A26DA: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r4, 0x38] - adds r0, 0x18 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] -_080A26EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A26A4 - - thumb_func_start sub_80A26F0 -sub_80A26F0: @ 80A26F0 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080A2750 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2710 - ldr r1, _080A2754 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A2710: - ldr r4, _080A2754 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080A2758 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_8075068 - ldr r0, _080A275C @ =sub_80A2760 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2750: .4byte gUnknown_2037F1A -_080A2754: .4byte gUnknown_2037F02 -_080A2758: .4byte gUnknown_2037F1B -_080A275C: .4byte sub_80A2760 - thumb_func_end sub_80A26F0 - - thumb_func_start sub_80A2760 -sub_80A2760: @ 80A2760 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080A278A - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0xA - strh r0, [r4, 0x2E] - ldr r0, _080A2790 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080A2794 @ =sub_80A2798 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 -_080A278A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2790: .4byte sub_8074C44 -_080A2794: .4byte sub_80A2798 - thumb_func_end sub_80A2760 - - thumb_func_start sub_80A2798 -sub_80A2798: @ 80A2798 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x3C - strh r0, [r4, 0x2E] - ldr r0, _080A27C8 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080A27CC @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A27C8: .4byte sub_8074C44 -_080A27CC: .4byte DestroyAnimSprite - thumb_func_end sub_80A2798 - - thumb_func_start sub_80A27D0 -sub_80A27D0: @ 80A27D0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r5, _080A2814 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - bl StartSpriteAnim - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080A27FA - ldrb r0, [r4, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x1] -_080A27FA: - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldr r1, _080A2818 @ =sub_80A281C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2814: .4byte gUnknown_2037F02 -_080A2818: .4byte sub_80A281C - thumb_func_end sub_80A27D0 - - thumb_func_start sub_80A281C -sub_80A281C: @ 80A281C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x32] - adds r1, 0x18 - strh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080A2870 - ldr r0, _080A286C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - b _080A2894 - .align 2, 0 -_080A286C: .4byte gUnknown_2037F1B -_080A2870: - ldr r0, _080A28C0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - adds r0, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080A2884 - movs r2, 0x3 -_080A2884: - movs r0, 0x3 - ands r2, r0 - lsls r2, 2 - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 -_080A2894: - strb r0, [r4, 0x5] - ldrh r0, [r4, 0x30] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080A28B8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A28B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A28C0: .4byte gUnknown_2037F1B - thumb_func_end sub_80A281C - - thumb_func_start sub_80A28C4 -sub_80A28C4: @ 80A28C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A28DE - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - bne _080A28E6 -_080A28DE: - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080A2918 -_080A28E6: - ldr r0, _080A2904 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A2908 - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x3 - bl SetAnimBgAttribute - b _080A2912 - .align 2, 0 -_080A2904: .4byte gUnknown_2037F1B -_080A2908: - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute -_080A2912: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A2918: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A28C4 - - thumb_func_start sub_80A2920 -sub_80A2920: @ 80A2920 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r5, _080A2968 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldr r0, _080A296C @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x4] - adds r0, r5 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r4, 0x38] - ldr r1, _080A2970 @ =sub_80A2974 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2968: .4byte gUnknown_2037F02 -_080A296C: .4byte gUnknown_2037F1A -_080A2970: .4byte sub_80A2974 - thumb_func_end sub_80A2920 - - thumb_func_start sub_80A2974 -sub_80A2974: @ 80A2974 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080A29E0 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x5 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080A29C0 - ldr r0, _080A29BC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - subs r0, 0x1 - b _080A29CA - .align 2, 0 -_080A29BC: .4byte gUnknown_2037F1A -_080A29C0: - ldr r0, _080A29DC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - adds r0, 0x1 -_080A29CA: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r4, 0x38] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A29E6 - .align 2, 0 -_080A29DC: .4byte gUnknown_2037F1A -_080A29E0: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A29E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2974 - - thumb_func_start sub_80A29EC -sub_80A29EC: @ 80A29EC - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080A2A34 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldr r0, _080A2A38 @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x4] - adds r0, r5 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r4, 0x38] - ldr r1, _080A2A3C @ =sub_80A2A40 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2A34: .4byte gUnknown_2037F02 -_080A2A38: .4byte gUnknown_2037F1A -_080A2A3C: .4byte sub_80A2A40 - thumb_func_end sub_80A29EC - - thumb_func_start sub_80A2A40 -sub_80A2A40: @ 80A2A40 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080A2A98 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r1, [r4, 0x38] - adds r0, r1, 0 - subs r0, 0x3B - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bls _080A2A78 - adds r0, r1, 0 - subs r0, 0xBB - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _080A2A8C -_080A2A78: - ldrb r2, [r4, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x8 - eors r1, r0 - lsls r1, 1 - subs r0, 0x47 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] -_080A2A8C: - ldrh r0, [r4, 0x38] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A2A9E -_080A2A98: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2A9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2A40 - - thumb_func_start sub_80A2AA4 -sub_80A2AA4: @ 80A2AA4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A2AE0 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r1, _080A2AE4 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x32] - ldr r0, _080A2AE8 @ =sub_80A2AEC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2AE0: .4byte gUnknown_2037F1A -_080A2AE4: .4byte gUnknown_2037F02 -_080A2AE8: .4byte sub_80A2AEC - thumb_func_end sub_80A2AA4 - - thumb_func_start sub_80A2AEC -sub_80A2AEC: @ 80A2AEC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x32] - movs r2, 0x32 - ldrsh r3, [r1, r2] - cmp r3, 0 - bne _080A2B20 - ldrh r0, [r1, 0x30] - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - beq _080A2B0E - movs r0, 0x80 - strh r0, [r1, 0x2E] - strh r3, [r1, 0x30] - strh r3, [r1, 0x32] - b _080A2B14 -_080A2B0E: - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - strh r2, [r1, 0x32] -_080A2B14: - ldr r0, _080A2B1C @ =sub_80A2B38 - str r0, [r1, 0x1C] - b _080A2B34 - .align 2, 0 -_080A2B1C: .4byte sub_80A2B38 -_080A2B20: - subs r0, 0x1 - strh r0, [r1, 0x32] - ldrh r0, [r1, 0x2E] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x30] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] -_080A2B34: - pop {r0} - bx r0 - thumb_func_end sub_80A2AEC - - thumb_func_start sub_80A2B38 -sub_80A2B38: @ 80A2B38 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A2B58 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2B5C - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x19 - bl Sin - negs r0, r0 - b _080A2B66 - .align 2, 0 -_080A2B58: .4byte gUnknown_2037F1A -_080A2B5C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x19 - bl Sin -_080A2B66: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A2B86 - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] -_080A2B86: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x50 - ble _080A2B94 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2B94: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2B38 - - thumb_func_start sub_80A2B9C -sub_80A2B9C: @ 80A2B9C - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080A2BF0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2BBC - ldr r1, _080A2BF4 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A2BBC: - ldr r6, _080A2BF4 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - movs r1, 0xC - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A2BFC - ldr r4, _080A2BF8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - b _080A2C1C - .align 2, 0 -_080A2BF0: .4byte gUnknown_2037F1A -_080A2BF4: .4byte gUnknown_2037F02 -_080A2BF8: .4byte gUnknown_2037F1B -_080A2BFC: - ldr r0, _080A2C48 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 -_080A2C1C: - strh r0, [r5, 0x36] - ldr r0, _080A2C4C @ =gUnknown_2037F02 - ldrh r0, [r0, 0xA] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080A2C50 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, 0 - ldr r0, _080A2C48 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080A2C54 - movs r0, 0x1 - b _080A2C56 - .align 2, 0 -_080A2C48: .4byte gUnknown_2037F1B -_080A2C4C: .4byte gUnknown_2037F02 -_080A2C50: .4byte gUnknown_2037F1A -_080A2C54: - movs r0, 0 -_080A2C56: - strh r0, [r5, 0x2E] - ldr r0, _080A2C64 @ =sub_80A2C68 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2C64: .4byte sub_80A2C68 - thumb_func_end sub_80A2B9C - - thumb_func_start sub_80A2C68 -sub_80A2C68: @ 80A2C68 - push {r4-r7,lr} - adds r6, r0, 0 - movs r7, 0 - ldrh r5, [r6, 0x2E] - ldrh r4, [r6, 0x3C] - movs r0, 0x1 - strh r0, [r6, 0x2E] - adds r0, r6, 0 - bl AnimateBallThrow - ldrh r0, [r6, 0x3C] - strh r5, [r6, 0x2E] - lsls r4, 16 - asrs r4, 16 - cmp r4, 0xC8 - ble _080A2C9A - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x37 - bgt _080A2C9A - ldrh r0, [r6, 0x6] - cmp r0, 0 - bne _080A2CA0 - adds r0, 0x1 - strh r0, [r6, 0x6] -_080A2C9A: - ldrh r0, [r6, 0x6] - cmp r0, 0 - beq _080A2CD2 -_080A2CA0: - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080A2CD2 - adds r3, r6, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r6, 0x6] - adds r0, 0x1 - strh r0, [r6, 0x6] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bne _080A2CD2 - movs r7, 0x1 -_080A2CD2: - movs r2, 0x20 - ldrsh r0, [r6, r2] - movs r2, 0x24 - ldrsh r1, [r6, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080A2CFC - movs r0, 0x22 - ldrsh r1, [r6, r0] - movs r2, 0x26 - ldrsh r0, [r6, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080A2CFC - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080A2CFE -_080A2CFC: - movs r7, 0x1 -_080A2CFE: - cmp r7, 0 - beq _080A2D08 - adds r0, r6, 0 - bl DestroyAnimSprite -_080A2D08: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A2C68 - - thumb_func_start sub_80A2D10 -sub_80A2D10: @ 80A2D10 - push {r4,lr} - adds r4, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A2D3C - bl sub_8075290 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A2D3C - ldr r0, _080A2D64 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_8076D9C -_080A2D3C: - ldrh r0, [r4, 0x22] - adds r0, 0x20 - strh r0, [r4, 0x22] - ldr r1, _080A2D68 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x36] - ldr r0, _080A2D6C @ =sub_80A2D70 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2D64: .4byte gUnknown_2037F1B -_080A2D68: .4byte gUnknown_2037F02 -_080A2D6C: .4byte sub_80A2D70 - thumb_func_end sub_80A2D10 - - thumb_func_start sub_80A2D70 -sub_80A2D70: @ 80A2D70 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0xFF - bne _080A2D86 - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - b _080A2D94 -_080A2D86: - cmp r0, 0 - ble _080A2D94 - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - subs r0, r1, 0x2 - strh r0, [r4, 0x30] -_080A2D94: - ldrh r3, [r4, 0x32] - ldrh r5, [r4, 0x38] - adds r2, r3, r5 - strh r2, [r4, 0x38] - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r5, 0x36 - ldrsh r0, [r4, r5] - cmp r1, r0 - bge _080A2DAC - adds r0, r2, r3 - strh r0, [r4, 0x38] -_080A2DAC: - ldrh r1, [r4, 0x38] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r5, 0x38 - ldrsh r0, [r4, r5] - movs r1, 0x5 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _080A2DEC - ldr r0, _080A2DE8 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - b _080A2DFA - .align 2, 0 -_080A2DE8: .4byte gUnknown_2037F1B -_080A2DEC: - ldr r0, _080A2E24 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 -_080A2DFA: - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080A2E1E - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2E1E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2E24: .4byte gUnknown_2037F1B - thumb_func_end sub_80A2D70 - - thumb_func_start sub_80A2E28 -sub_80A2E28: @ 80A2E28 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8075114 - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r4, _080A2E5C @ =gUnknown_2037F02 - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAffineAnim - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x3A] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x3C] - ldr r0, _080A2E60 @ =sub_80A2E64 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2E5C: .4byte gUnknown_2037F02 -_080A2E60: .4byte sub_80A2E64 - thumb_func_end sub_80A2E28 - - thumb_func_start sub_80A2E64 -sub_80A2E64: @ 80A2E64 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A2E94 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A2E98 @ =0x0000ffff - cmp r1, r0 - bne _080A2E8E - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - bl GetAnimBankSpriteId - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x2E] - ldr r0, _080A2E9C @ =sub_80A2EA0 - str r0, [r4, 0x1C] -_080A2E8E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2E94: .4byte gUnknown_2037F02 -_080A2E98: .4byte 0x0000ffff -_080A2E9C: .4byte sub_80A2EA0 - thumb_func_end sub_80A2E64 - - thumb_func_start sub_80A2EA0 -sub_80A2EA0: @ 80A2EA0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - bl GetAnimBankSpriteId - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A2EB8 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - b _080A2EBC -_080A2EB8: - ldrh r0, [r4, 0x2E] - subs r0, 0xB -_080A2EBC: - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080A2ED8 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x32] -_080A2ED8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A2F06 - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - cmp r0, 0 - ble _080A2F00 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAffineAnim - b _080A2F06 -_080A2F00: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A2F06: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2EA0 - - thumb_func_start sub_80A2F0C -sub_80A2F0C: @ 80A2F0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A2F38 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _080A2F3C - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080A2F62 - .align 2, 0 -_080A2F38: .4byte gSprites -_080A2F3C: - adds r0, r2, 0 - movs r1, 0x1 - bl sub_80758E0 - ldr r1, _080A2F68 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A2F6C @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x8] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xA] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x1E] - ldr r1, _080A2F70 @ =sub_80A2F74 - str r1, [r0] -_080A2F62: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2F68: .4byte gTasks -_080A2F6C: .4byte gUnknown_2037F02 -_080A2F70: .4byte sub_80A2F74 - thumb_func_end sub_80A2F0C - - thumb_func_start sub_80A2F74 -sub_80A2F74: @ 80A2F74 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080A2FF4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x8] - ldrh r0, [r4, 0x1C] - adds r1, r0 - strh r1, [r4, 0x1C] - ldr r2, _080A2FF8 @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r2 - lsls r1, 16 - asrs r1, 24 - strh r1, [r5, 0x24] - ldr r0, _080A2FFC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A2FBE - ldrh r0, [r5, 0x24] - negs r0, r0 - strh r0, [r5, 0x24] -_080A2FBE: - ldrh r0, [r4, 0x1E] - adds r0, 0x10 - strh r0, [r4, 0x1E] - movs r0, 0x1E - ldrsh r2, [r4, r0] - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - adds r0, r6, 0 - bl sub_8076440 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080A2FEC - strh r0, [r4, 0x8] - ldr r0, _080A3000 @ =sub_80A3004 - str r0, [r4] -_080A2FEC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A2FF4: .4byte gTasks -_080A2FF8: .4byte gSprites -_080A2FFC: .4byte gUnknown_2037F1B -_080A3000: .4byte sub_80A3004 - thumb_func_end sub_80A2F74 - - thumb_func_start sub_80A3004 -sub_80A3004: @ 80A3004 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080A3050 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A3054 @ =0x0000ffff - cmp r1, r0 - bne _080A3060 - ldr r0, _080A3058 @ =gTasks - lsls r2, r3, 2 - adds r1, r2, r3 - lsls r1, 3 - adds r6, r1, r0 - movs r1, 0x8 - ldrsh r5, [r6, r1] - adds r4, r0, 0 - cmp r5, 0 - bne _080A3074 - movs r0, 0x1 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8075980 - ldr r1, _080A305C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - strh r5, [r0, 0x24] - strh r5, [r0, 0x26] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _080A308E - .align 2, 0 -_080A3050: .4byte gUnknown_2037F02 -_080A3054: .4byte 0x0000ffff -_080A3058: .4byte gTasks -_080A305C: .4byte gSprites -_080A3060: - ldr r1, _080A3094 @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r0, r1 - movs r4, 0x8 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0 - beq _080A308E -_080A3074: - adds r1, r2, r3 - lsls r1, 3 - adds r1, r4 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080A308E - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080A308E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3094: .4byte gTasks - thumb_func_end sub_80A3004 - - thumb_func_start sub_80A3098 -sub_80A3098: @ 80A3098 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080A30AA - cmp r0, 0x1 - beq _080A3104 - b _080A3156 -_080A30AA: - ldr r6, _080A30FC @ =gUnknown_2037F1B - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A30C2 - ldr r1, _080A3100 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] -_080A30C2: - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A3100 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080A3156 - .align 2, 0 -_080A30FC: .4byte gUnknown_2037F1B -_080A3100: .4byte gUnknown_2037F02 -_080A3104: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A3156 - adds r0, r5, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - movs r0, 0x19 - strh r0, [r5, 0x2E] - ldr r4, _080A315C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080A3160 @ =sub_8075764 - str r0, [r5, 0x1C] - ldr r1, _080A3164 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080A3156: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A315C: .4byte gUnknown_2037F1A -_080A3160: .4byte sub_8075764 -_080A3164: .4byte DestroyAnimSprite - thumb_func_end sub_80A3098 - - thumb_func_start sub_80A3168 -sub_80A3168: @ 80A3168 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A31D4 - ldr r4, _080A31E0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080A31E4 @ =gUnknown_2037F02 - ldrh r0, [r4] - strh r0, [r5, 0x24] - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x26] - ldrb r0, [r4, 0x4] - adds r0, 0x1E - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r4, 0x6] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r2, 0x22 - ldrsh r0, [r5, r2] - movs r2, 0x26 - ldrsh r1, [r5, r2] - adds r0, r1 - cmp r0, 0x78 - ble _080A31D4 - ldrh r0, [r5, 0x22] - adds r1, r0, 0 - subs r1, 0x78 - ldrh r2, [r5, 0x26] - adds r0, r2 - adds r1, r0 - strh r1, [r5, 0x22] -_080A31D4: - ldr r0, _080A31E8 @ =sub_80A32DC - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A31E0: .4byte gUnknown_2037F1A -_080A31E4: .4byte gUnknown_2037F02 -_080A31E8: .4byte sub_80A32DC - thumb_func_end sub_80A3168 - - thumb_func_start sub_80A31EC -sub_80A31EC: @ 80A31EC - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - mov r9, r0 - ldr r4, _080A32C8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, _080A32CC @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - adds r2, r0, 0 - lsls r2, 24 - subs r4, r5 - lsls r4, 16 - lsrs r2, 24 - mov r1, r8 - subs r2, r1 - lsls r2, 16 - lsrs r2, 16 - lsrs r3, r4, 16 - mov r10, r3 - asrs r4, 16 - ldr r6, _080A32D0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - muls r0, r4 - movs r1, 0x64 - str r2, [sp] - bl __divsi3 - adds r5, r0 - mov r3, r9 - strh r5, [r3, 0x20] - ldr r2, [sp] - lsls r0, r2, 16 - asrs r0, 16 - movs r3, 0 - ldrsh r1, [r6, r3] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - add r8, r0 - mov r1, r8 - mov r0, r9 - strh r1, [r0, 0x22] - ldrh r0, [r6, 0x2] - mov r3, r9 - strh r0, [r3, 0x24] - ldrh r0, [r6, 0x4] - strh r0, [r3, 0x26] - ldrb r0, [r6, 0x6] - adds r0, 0x1E - mov r1, r9 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0x8] - mov r0, r9 - bl StartSpriteAnim - ldrh r0, [r6, 0xA] - mov r1, r9 - strh r0, [r1, 0x32] - ldr r0, _080A32D4 @ =sub_80A32DC - str r0, [r1, 0x1C] - ldr r1, _080A32D8 @ =gUnknown_203999C - mov r3, r9 - ldrh r0, [r3, 0x20] - strh r0, [r1] - ldrh r0, [r3, 0x22] - strh r0, [r1, 0x2] - mov r0, r10 - strh r0, [r1, 0x4] - ldr r2, [sp] - strh r2, [r1, 0x6] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A32C8: .4byte gUnknown_2037F1A -_080A32CC: .4byte gUnknown_2037F1B -_080A32D0: .4byte gUnknown_2037F02 -_080A32D4: .4byte sub_80A32DC -_080A32D8: .4byte gUnknown_203999C - thumb_func_end sub_80A31EC - - thumb_func_start sub_80A32DC -sub_80A32DC: @ 80A32DC - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - adds r1, 0x1 - strh r1, [r3, 0x2E] - lsls r1, 16 - asrs r1, 16 - movs r2, 0x32 - ldrsh r0, [r3, r2] - subs r0, 0xA - cmp r1, r0 - ble _080A331C - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - movs r2, 0x3E - adds r2, r3 - mov r12, r2 - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080A331C: - movs r2, 0x2E - ldrsh r1, [r3, r2] - movs r2, 0x32 - ldrsh r0, [r3, r2] - cmp r1, r0 - ble _080A332E - adds r0, r3, 0 - bl DestroyAnimSprite -_080A332E: - pop {r0} - bx r0 - thumb_func_end sub_80A32DC - - thumb_func_start sub_80A3334 -sub_80A3334: @ 80A3334 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A3374 - ldr r5, _080A33B0 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A33B4 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r2, [r4] - adds r0, r2 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x30] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x34] -_080A3374: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] - ldrh r1, [r6, 0x30] - muls r0, r1 - strh r0, [r6, 0x24] - movs r2, 0x2E - ldrsh r1, [r6, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - movs r1, 0xFF - ands r0, r1 - movs r2, 0x32 - ldrsh r1, [r6, r2] - bl Sin - strh r0, [r6, 0x26] - movs r0, 0x2E - ldrsh r1, [r6, r0] - movs r2, 0x34 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080A33AA - adds r0, r6, 0 - bl DestroyAnimSprite -_080A33AA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A33B0: .4byte gUnknown_2037F1A -_080A33B4: .4byte gUnknown_2037F02 - thumb_func_end sub_80A3334 - - thumb_func_start sub_80A33B8 -sub_80A33B8: @ 80A33B8 - push {r4,r5,lr} - movs r2, 0x20 - ldrsh r4, [r0, r2] - lsls r4, 8 - movs r3, 0x22 - ldrsh r2, [r0, r3] - orrs r4, r2 - movs r5, 0x3A - ldrsh r2, [r0, r5] - lsls r2, 8 - movs r5, 0x3C - ldrsh r3, [r0, r5] - orrs r2, r3 - lsls r1, 8 - strh r4, [r0, 0x38] - strh r2, [r0, 0x3A] - strh r1, [r0, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A33B8 - - thumb_func_start sub_80A33E0 -sub_80A33E0: @ 80A33E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - ldrh r0, [r0, 0x38] - lsrs r1, r0, 8 - mov r10, r1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r1, r8 - ldrh r0, [r1, 0x3A] - lsrs r2, r0, 8 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r1, [r1, 0x3C] - lsls r0, r1, 16 - asrs r0, 24 - lsls r0, 16 - lsrs r6, r0, 16 - movs r3, 0xFF - ands r3, r1 - cmp r2, 0 - bne _080A341A - movs r2, 0x20 - negs r2, r2 - b _080A3422 -_080A341A: - cmp r2, 0xFF - bne _080A3422 - movs r2, 0x88 - lsls r2, 1 -_080A3422: - mov r0, r9 - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - mov r1, r10 - subs r0, r2, r1 - lsls r5, r3, 16 - asrs r5, 16 - muls r0, r5 - lsls r1, r6, 16 - asrs r7, r1, 16 - adds r1, r7, 0 - bl __divsi3 - adds r6, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - muls r0, r5 - adds r1, r7, 0 - bl __divsi3 - add r6, r10 - mov r1, r8 - strh r6, [r1, 0x20] - add r0, r9 - strh r0, [r1, 0x22] - adds r5, 0x1 - lsls r5, 16 - lsrs r3, r5, 16 - asrs r5, 16 - cmp r5, r7 - beq _080A3474 - lsls r1, r7, 8 - lsls r0, r3, 16 - asrs r0, 16 - orrs r0, r1 - mov r1, r8 - strh r0, [r1, 0x3C] - movs r0, 0 - b _080A3476 -_080A3474: - movs r0, 0x1 -_080A3476: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A33E0 - - thumb_func_start sub_80A3484 -sub_80A3484: @ 80A3484 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080A3498 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080A3498: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - ble _080A34AC - adds r0, r4, 0 - bl DestroyAnimSprite -_080A34AC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A3484 - - thumb_func_start sub_80A34B4 -sub_80A34B4: @ 80A34B4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080A34DE - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080A34DE: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_80A33E0 - lsls r0, 24 - cmp r0, 0 - beq _080A350E - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - ldr r0, _080A3514 @ =sub_80A3484 - str r0, [r4, 0x1C] -_080A350E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A3514: .4byte sub_80A3484 - thumb_func_end sub_80A34B4 - - thumb_func_start sub_80A3518 -sub_80A3518: @ 80A3518 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r4, _080A3560 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A3564 @ =gUnknown_2037F1A - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080A3568 - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80A33B8 - movs r0, 0x1 - b _080A357A - .align 2, 0 -_080A3560: .4byte gUnknown_2037F1B -_080A3564: .4byte gUnknown_2037F1A -_080A3568: - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80A33B8 - movs r0, 0x3 -_080A357A: - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080A358C @ =sub_80A34B4 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A358C: .4byte sub_80A34B4 - thumb_func_end sub_80A3518 - - thumb_func_start sub_80A3590 -sub_80A3590: @ 80A3590 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080A35BA - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080A35BA: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_80A33E0 - lsls r0, 24 - cmp r0, 0 - beq _080A35EC - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - adds r0, r4, 0 - bl DestroyAnimSprite -_080A35EC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A3590 - - thumb_func_start sub_80A35F4 -sub_80A35F4: @ 80A35F4 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080A3630 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080A3638 - strh r0, [r5, 0x3A] - adds r0, r6, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x28 - bl sub_80A33B8 - movs r0, 0x3 - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080A3634 @ =sub_80A34B4 - b _080A3662 - .align 2, 0 -_080A3630: .4byte gUnknown_2037F1B -_080A3634: .4byte sub_80A34B4 -_080A3638: - movs r0, 0xFF - strh r0, [r5, 0x3A] - adds r0, r6, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A3650 - movs r0, 0 - strh r0, [r5, 0x3A] -_080A3650: - adds r0, r5, 0 - movs r1, 0x28 - bl sub_80A33B8 - movs r0, 0x3 - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080A366C @ =sub_80A3590 -_080A3662: - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A366C: .4byte sub_80A3590 - thumb_func_end sub_80A35F4 - - thumb_func_start sub_80A3670 -sub_80A3670: @ 80A3670 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A368A - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 - ldr r0, _080A36B0 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x30] -_080A368A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - muls r0, r1 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A36AA - adds r0, r4, 0 - bl DestroyAnimSprite -_080A36AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A36B0: .4byte gUnknown_2037F02 - thumb_func_end sub_80A3670 - - thumb_func_start sub_80A36B4 -sub_80A36B4: @ 80A36B4 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8075114 - ldr r4, _080A36FC @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A3700 @ =gUnknown_2037F1B - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080A3704 - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80A33B8 - movs r0, 0x1 - b _080A3716 - .align 2, 0 -_080A36FC: .4byte gUnknown_2037F1A -_080A3700: .4byte gUnknown_2037F1B -_080A3704: - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80A33B8 - movs r0, 0x3 -_080A3716: - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080A3728 @ =sub_80A372C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3728: .4byte sub_80A372C - thumb_func_end sub_80A36B4 - - thumb_func_start sub_80A372C -sub_80A372C: @ 80A372C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080A3756 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080A3756: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - bne _080A378A - movs r0, 0x3F - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x76 - bl PlaySE12WithPanning -_080A378A: - adds r0, r4, 0 - bl sub_80A33E0 - lsls r0, 24 - cmp r0, 0 - beq _080A37B2 - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - ldr r0, _080A37B8 @ =sub_80A3484 - str r0, [r4, 0x1C] - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x76 - bl PlaySE12WithPanning -_080A37B2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A37B8: .4byte sub_80A3484 - thumb_func_end sub_80A372C - - thumb_func_start sub_80A37BC -sub_80A37BC: @ 80A37BC - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A3850 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A37E4 - ldr r0, _080A37E0 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - strh r1, [r4, 0x30] - movs r1, 0x78 - strh r1, [r4, 0x20] - adds r5, r0, 0 - b _080A3806 - .align 2, 0 -_080A37E0: .4byte gUnknown_2037F02 -_080A37E4: - ldr r0, _080A3840 @ =gUnknown_2037F02 - movs r1, 0x2 - ldrsh r3, [r0, r1] - adds r1, r3, 0 - subs r1, 0x20 - adds r2, r1, 0 - adds r5, r0, 0 - cmp r1, 0 - bge _080A37FA - adds r2, r3, 0 - adds r2, 0xDF -_080A37FA: - asrs r0, r2, 8 - lsls r0, 8 - subs r0, r1, r0 - strh r0, [r4, 0x30] - movs r0, 0x46 - strh r0, [r4, 0x20] -_080A3806: - ldrh r0, [r5] - strh r0, [r4, 0x22] - strh r0, [r4, 0x32] - movs r0, 0x14 - strh r0, [r4, 0x36] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3C - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - ldr r0, _080A3844 @ =sub_80A3858 - str r0, [r4, 0x1C] - ldrh r0, [r4, 0x30] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBE - bhi _080A3848 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F - b _080A384E - .align 2, 0 -_080A3840: .4byte gUnknown_2037F02 -_080A3844: .4byte sub_80A3858 -_080A3848: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D -_080A384E: - strb r0, [r1] -_080A3850: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A37BC - - thumb_func_start sub_80A3858 -sub_80A3858: @ 80A3858 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A386A - cmp r0, 0x1 - beq _080A389A - b _080A38BA -_080A386A: - ldrh r5, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x4E - ble _080A3882 - movs r0, 0x1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080A38BA -_080A3882: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - adds r0, r5, r0 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x36] - adds r1, 0x3 - strh r1, [r4, 0x36] - strh r0, [r4, 0x22] - b _080A38BA -_080A389A: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A38BA - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A38BA - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x32] - ldr r0, _080A38C0 @ =sub_80A38C4 - str r0, [r4, 0x1C] -_080A38BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A38C0: .4byte sub_80A38C4 - thumb_func_end sub_80A3858 - - thumb_func_start sub_80A38C4 -sub_80A38C4: @ 80A38C4 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080A3908 @ =gUnknown_83E2F78 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r3, r0, r1 - adds r0, r5, 0x1 - adds r0, r3, r0 - ldrh r2, [r4, 0x32] - movs r6, 0x32 - ldrsh r1, [r4, r6] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080A3910 - adds r0, r5, 0x2 - adds r0, r3, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x7F - bne _080A38FC - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080A390C @ =sub_80A397C - str r0, [r4, 0x1C] -_080A38FC: - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080A3976 - .align 2, 0 -_080A3908: .4byte gUnknown_83E2F78 -_080A390C: .4byte sub_80A397C -_080A3910: - adds r0, r2, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - adds r1, r0, r5 - movs r2, 0 - ldrsb r2, [r1, r2] - adds r1, r5, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - muls r0, r2 - ldrh r1, [r4, 0x30] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A395E - ldrh r0, [r4, 0x30] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBE - bhi _080A3956 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F - b _080A395C -_080A3956: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D -_080A395C: - strb r0, [r1] -_080A395E: - movs r6, 0x30 - ldrsh r0, [r4, r6] - movs r1, 0x3C - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] -_080A3976: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A38C4 - - thumb_func_start sub_80A397C -sub_80A397C: @ 80A397C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x14 - ble _080A398E - adds r0, r4, 0 - bl DestroyAnimSprite -_080A398E: - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A397C - - thumb_func_start sub_80A39C0 -sub_80A39C0: @ 80A39C0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080A3B14 @ =gTasks - adds r5, r0, r1 - ldr r4, _080A3B18 @ =gUnknown_2037F1B - ldrb r0, [r4] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - strh r0, [r5, 0x10] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8076B2C - strh r0, [r5, 0x1C] - ldrb r0, [r4] - movs r1, 0 - bl sub_8076B2C - strh r0, [r5, 0x1E] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0x1 - bne _080A3A28 - movs r1, 0x1 -_080A3A28: - strh r1, [r5, 0x12] - movs r3, 0x12 - ldrsh r0, [r5, r3] - lsls r0, 6 - movs r1, 0x38 - subs r1, r0 - strh r1, [r5, 0x1A] - ldrh r0, [r5, 0x16] - subs r0, r1 - ldrh r1, [r5, 0x14] - adds r0, r1 - strh r0, [r5, 0x18] - ldr r0, _080A3B1C @ =gUnknown_83E2FF0 - movs r2, 0x18 - ldrsh r1, [r5, r2] - movs r3, 0x1A - ldrsh r2, [r5, r3] - ldrb r3, [r5, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xC] - cmp r0, 0x40 - bne _080A3A60 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A3A60: - ldr r4, _080A3B20 @ =gSprites - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xA - strh r1, [r0, 0x2E] - movs r2, 0xC - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x18] - strh r1, [r0, 0x30] - movs r3, 0xC - ldrsh r0, [r5, r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - movs r1, 0x1C - ldrsh r0, [r5, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r5, r3] - muls r1, r0 - ldrh r0, [r5, 0x14] - subs r0, r1 - strh r0, [r2, 0x32] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x1A] - strh r1, [r0, 0x34] - movs r1, 0xC - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r2, 0x1E - ldrsh r0, [r5, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r2, [r5, r3] - muls r0, r2 - ldrh r2, [r5, 0x16] - adds r0, r2 - strh r0, [r1, 0x36] - movs r3, 0xC - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_80A3F04 - movs r1, 0xC - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x38] - movs r2, 0xC - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_8075068 - ldr r0, _080A3B24 @ =sub_80A3B28 - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3B14: .4byte gTasks -_080A3B18: .4byte gUnknown_2037F1B -_080A3B1C: .4byte gUnknown_83E2FF0 -_080A3B20: .4byte gSprites -_080A3B24: .4byte sub_80A3B28 - thumb_func_end sub_80A39C0 - - thumb_func_start sub_80A3B28 -sub_80A3B28: @ 80A3B28 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080A3B6C @ =gTasks - adds r6, r0, r1 - movs r0, 0xC - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A3B70 @ =gSprites - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r5, [r6, r1] - cmp r5, 0x7 - bne _080A3B50 - b _080A3D80 -_080A3B50: - cmp r5, 0x7 - bgt _080A3B9E - cmp r5, 0x3 - bne _080A3B5A - b _080A3C72 -_080A3B5A: - cmp r5, 0x3 - bgt _080A3B74 - cmp r5, 0x1 - beq _080A3C04 - cmp r5, 0x1 - bgt _080A3C54 - cmp r5, 0 - beq _080A3BE6 - b _080A3EFC - .align 2, 0 -_080A3B6C: .4byte gTasks -_080A3B70: .4byte gSprites -_080A3B74: - cmp r5, 0x5 - bne _080A3B7A - b _080A3CE8 -_080A3B7A: - cmp r5, 0x5 - ble _080A3B80 - b _080A3D62 -_080A3B80: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3B96 - b _080A3EFC -_080A3B96: - movs r0, 0x5 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3B9E: - cmp r5, 0xB - bne _080A3BA4 - b _080A3E64 -_080A3BA4: - cmp r5, 0xB - bgt _080A3BD2 - cmp r5, 0x9 - bne _080A3BAE - b _080A3DD2 -_080A3BAE: - cmp r5, 0x9 - ble _080A3BB4 - b _080A3E48 -_080A3BB4: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3BCA - b _080A3EFC -_080A3BCA: - movs r0, 0x9 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3BD2: - cmp r5, 0xD - bne _080A3BD8 - b _080A3ED6 -_080A3BD8: - cmp r5, 0xD - bge _080A3BDE - b _080A3EB6 -_080A3BDE: - cmp r5, 0xFF - bne _080A3BE4 - b _080A3EE6 -_080A3BE4: - b _080A3EFC -_080A3BE6: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3BFC - b _080A3EFC -_080A3BFC: - movs r0, 0x1 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3C04: - ldrh r2, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r2, r3 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x16] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - ldrh r0, [r6, 0x10] - adds r0, 0x2 - strh r0, [r6, 0x10] - strh r5, [r6, 0xE] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3C54: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3C6A - b _080A3EFC -_080A3C6A: - movs r0, 0x3 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3C72: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r1, r0 - ldrh r0, [r6, 0x14] - subs r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r1, 0x1E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r2, 0x12 - ldrsh r1, [r6, r2] - muls r1, r0 - ldrh r0, [r6, 0x16] - subs r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - movs r0, 0x2 - strh r0, [r6, 0xE] - ldrh r0, [r6, 0x10] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3CE8: - ldrh r1, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r1, r3 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r0, r1 - ldrh r1, [r6, 0x14] - adds r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r2, 0x1E - ldrsh r0, [r6, r2] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r0, r1 - ldrh r1, [r6, 0x16] - adds r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - subs r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x3 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3D62: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080A3D78 - b _080A3EFC -_080A3D78: - movs r0, 0x7 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3D80: - ldrh r2, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r2, r3 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x16] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - adds r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x4 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3DD2: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r1, r0 - ldrh r0, [r6, 0x14] - subs r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r1, 0x1E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r2, 0x12 - ldrsh r1, [r6, r2] - muls r0, r1 - ldrh r3, [r6, 0x16] - adds r0, r3 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - movs r0, 0x5 - strh r0, [r6, 0xE] - ldrh r0, [r6, 0x10] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3E48: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080A3EFC - movs r0, 0xB - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080A3EFA -_080A3E64: - ldrh r2, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r2, r0 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x18] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x1A] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80A3F04 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - subs r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x6 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_8075068 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3EB6: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80A3F24 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080A3EFC - adds r0, r4, 0 - bl DestroySprite - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080A3EFA -_080A3ED6: - movs r1, 0x20 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A3EFC - adds r0, r2, 0 - bl DestroyAnimVisualTask - b _080A3EFC -_080A3EE6: - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080A3EFC - movs r0, 0 - strh r0, [r6, 0xA] - ldrh r0, [r6, 0x26] -_080A3EFA: - strh r0, [r6, 0x8] -_080A3EFC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A3B28 - - thumb_func_start sub_80A3F04 -sub_80A3F04: @ 80A3F04 - push {lr} - movs r2, 0x8 - movs r3, 0x36 - ldrsh r1, [r0, r3] - movs r3, 0x22 - ldrsh r0, [r0, r3] - cmp r1, r0 - bge _080A3F1A - negs r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 -_080A3F1A: - lsls r0, r2, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80A3F04 - - thumb_func_start sub_80A3F24 -sub_80A3F24: @ 80A3F24 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - ldrh r0, [r6, 0x24] - adds r0, 0x1 - strh r0, [r6, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080A3FBA - movs r0, 0 - strh r0, [r6, 0x24] - ldr r0, _080A3FC4 @ =gSprites - mov r8, r0 - movs r2, 0xC - ldrsh r1, [r6, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - ldrh r2, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r2, r0 - ldr r0, _080A3FC8 @ =gUnknown_83E2FF0 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - ldrb r3, [r6, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080A3FBA - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - mov r0, r8 - adds r4, r5, r0 - strh r7, [r4, 0x3A] - movs r0, 0xC - strh r0, [r4, 0x3C] - ldr r0, _080A3FCC @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldrh r2, [r6, 0x22] - movs r0, 0x1 - ands r0, r2 - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r6, 0x10] - adds r4, 0x43 - strb r0, [r4] - mov r0, r8 - adds r0, 0x1C - adds r5, r0 - ldr r0, _080A3FD0 @ =sub_80A3FD4 - str r0, [r5] -_080A3FBA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3FC4: .4byte gSprites -_080A3FC8: .4byte gUnknown_83E2FF0 -_080A3FCC: .4byte gTasks -_080A3FD0: .4byte sub_80A3FD4 - thumb_func_end sub_80A3F24 - - thumb_func_start sub_80A3FD4 -sub_80A3FD4: @ 80A3FD4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A4036 - movs r0, 0 - strh r0, [r4, 0x2E] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A4036 - ldr r3, _080A403C @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080A4036: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A403C: .4byte gTasks - thumb_func_end sub_80A3FD4 - - thumb_func_start sub_80A4040 -sub_80A4040: @ 80A4040 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080A4054 @ =gUnknown_2037F02 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A405C - ldr r0, _080A4058 @ =gUnknown_2037F1A - b _080A405E - .align 2, 0 -_080A4054: .4byte gUnknown_2037F02 -_080A4058: .4byte gUnknown_2037F1A -_080A405C: - ldr r0, _080A407C @ =gUnknown_2037F1B -_080A405E: - ldrb r6, [r0] - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A4088 - movs r0, 0 - strh r0, [r4, 0x36] - ldr r1, _080A4080 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x32] - ldr r0, _080A4084 @ =0x0000fff0 - b _080A4098 - .align 2, 0 -_080A407C: .4byte gUnknown_2037F1B -_080A4080: .4byte gUnknown_2037F02 -_080A4084: .4byte 0x0000fff0 -_080A4088: - movs r0, 0x1 - strh r0, [r4, 0x36] - ldr r1, _080A40BC @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r4, 0x32] - movs r0, 0x80 - lsls r0, 1 -_080A4098: - strh r0, [r4, 0x20] - adds r7, r1, 0 - adds r5, r7, 0 - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x34] - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080A40CE - cmp r0, 0x1 - bgt _080A40C0 - cmp r0, 0 - beq _080A40CA - b _080A4138 - .align 2, 0 -_080A40BC: .4byte gUnknown_2037F02 -_080A40C0: - cmp r0, 0x2 - beq _080A40D4 - cmp r0, 0x3 - beq _080A4100 - b _080A4138 -_080A40CA: - ldrh r0, [r5] - b _080A40E4 -_080A40CE: - ldrh r0, [r5] - strh r0, [r4, 0x22] - b _080A411A -_080A40D4: - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5] - adds r0, r5 -_080A40E4: - strh r0, [r4, 0x22] - adds r0, r6, 0 - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080A4138 -_080A4100: - ldr r0, _080A4144 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r7, [r7] - adds r0, r7 - strh r0, [r4, 0x22] - movs r0, 0x1 - bl GetAnimBankSpriteId -_080A411A: - adds r0, r6, 0 - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_080A4138: - ldr r0, _080A4148 @ =sub_80A414C - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4144: .4byte gUnknown_2037F1B -_080A4148: .4byte sub_80A414C - thumb_func_end sub_80A4040 - - thumb_func_start sub_80A414C -sub_80A414C: @ 80A414C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r3, [r4, r0] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x30 - ldrsh r2, [r4, r1] - ldr r1, _080A41A0 @ =gUnknown_825E074 - movs r5, 0x2E - ldrsh r0, [r4, r5] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r2 - asrs r0, 8 - strh r0, [r4, 0x26] - movs r2, 0x32 - ldrsh r0, [r4, r2] - muls r0, r3 - strh r0, [r4, 0x24] - movs r5, 0x34 - ldrsh r0, [r4, r5] - muls r0, r3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A41A4 - movs r2, 0x24 - ldrsh r0, [r4, r2] - movs r5, 0x20 - ldrsh r1, [r4, r5] - adds r0, r1 - cmp r0, 0xF7 - ble _080A41BC - b _080A41B6 - .align 2, 0 -_080A41A0: .4byte gUnknown_825E074 -_080A41A4: - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _080A41BC -_080A41B6: - adds r0, r4, 0 - bl move_anim_8074EE0 -_080A41BC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A414C - - thumb_func_start sub_80A41C4 -sub_80A41C4: @ 80A41C4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080A41E4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080A41E8 - cmp r0, 0x1 - beq _080A421C - b _080A4276 - .align 2, 0 -_080A41E4: .4byte gTasks -_080A41E8: - ldr r0, _080A4214 @ =0x0000274f - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r2, 0x80 - lsls r2, 1 - adds r4, r2, 0 - adds r0, r4 - strh r0, [r5, 0x18] - ldr r0, _080A4218 @ =0x000027b0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - adds r0, r4 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080A4276 - .align 2, 0 -_080A4214: .4byte 0x0000274f -_080A4218: .4byte 0x000027b0 -_080A421C: - ldrh r0, [r5, 0x1A] - adds r0, 0x1 - movs r7, 0 - strh r0, [r5, 0x1A] - lsls r0, 16 - cmp r0, 0 - blt _080A4276 - strh r7, [r5, 0x1A] - ldrh r0, [r5, 0x18] - ldrb r2, [r5, 0x1C] - ldr r4, _080A4290 @ =gUnknown_83E30F0 - movs r3, 0x1E - ldrsh r1, [r5, r3] - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r5, 0x20] - ldrb r2, [r5, 0x1C] - movs r3, 0x1E - ldrsh r1, [r5, r3] - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - bne _080A4276 - strh r7, [r5, 0x1C] - ldrh r0, [r5, 0x1E] - adds r0, 0x1 - strh r0, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bne _080A4276 - strh r7, [r5, 0x1E] -_080A4276: - ldr r0, _080A4294 @ =gUnknown_2037F02 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080A428A - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A428A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4290: .4byte gUnknown_83E30F0 -_080A4294: .4byte gUnknown_2037F02 - thumb_func_end sub_80A41C4 - - thumb_func_start sub_80A4298 -sub_80A4298: @ 80A4298 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r1, _080A42B0 @ =gUnknown_2037F02 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A42B4 - adds r0, r6, 0 - bl DestroyAnimSprite - b _080A438E - .align 2, 0 -_080A42B0: .4byte gUnknown_2037F02 -_080A42B4: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080A42C4 - ldr r4, _080A42C0 @ =gUnknown_2037F1A - b _080A42C6 - .align 2, 0 -_080A42C0: .4byte gUnknown_2037F1A -_080A42C4: - ldr r4, _080A4300 @ =gUnknown_2037F1B -_080A42C6: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A4304 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x8] - strh r1, [r6, 0x2E] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r7, r0, 0 - cmp r1, 0 - bne _080A4308 - ldrh r0, [r7, 0x4] - adds r0, r5 - strh r0, [r6, 0x20] - ldrh r0, [r7, 0x6] - adds r0, r2 - strh r0, [r6, 0x22] - strh r5, [r6, 0x38] - strh r2, [r6, 0x3A] - b _080A4318 - .align 2, 0 -_080A4300: .4byte gUnknown_2037F1B -_080A4304: .4byte gUnknown_2037F02 -_080A4308: - strh r5, [r6, 0x20] - strh r2, [r6, 0x22] - ldrh r0, [r7, 0x4] - adds r0, r5 - strh r0, [r6, 0x38] - ldrh r0, [r7, 0x6] - adds r0, r2 - strh r0, [r6, 0x3A] -_080A4318: - ldrh r4, [r6, 0x20] - lsls r0, r4, 4 - strh r0, [r6, 0x30] - ldrh r5, [r6, 0x22] - lsls r0, r5, 4 - strh r0, [r6, 0x32] - movs r1, 0x38 - ldrsh r0, [r6, r1] - movs r2, 0x20 - ldrsh r1, [r6, r2] - subs r0, r1 - lsls r0, 4 - movs r3, 0x8 - ldrsh r1, [r7, r3] - bl __divsi3 - strh r0, [r6, 0x34] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x22 - ldrsh r1, [r6, r2] - subs r0, r1 - lsls r0, 4 - movs r3, 0x8 - ldrsh r1, [r7, r3] - bl __divsi3 - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x38] - subs r0, r4 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r6, 0x3A] - subs r1, r5 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - lsrs r4, r0, 16 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A437A - ldr r1, _080A4398 @ =0xffff8000 - adds r0, r4, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_080A437A: - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - ldr r0, _080A439C @ =sub_80A43A0 - str r0, [r6, 0x1C] -_080A438E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4398: .4byte 0xffff8000 -_080A439C: .4byte sub_80A43A0 - thumb_func_end sub_80A4298 - - thumb_func_start sub_80A43A0 -sub_80A43A0: @ 80A43A0 - push {r4,lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x2E] - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080A43D0 - ldrh r0, [r2, 0x34] - ldrh r4, [r2, 0x30] - adds r0, r4 - strh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - ldrh r4, [r2, 0x32] - adds r1, r4 - strh r1, [r2, 0x32] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r2, 0x22] - subs r0, r3, 0x1 - strh r0, [r2, 0x2E] - b _080A43D6 -_080A43D0: - adds r0, r2, 0 - bl move_anim_8074EE0 -_080A43D6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A43A0 - - thumb_func_start sub_80A43DC -sub_80A43DC: @ 80A43DC - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A43F2 - adds r0, r2, 0 - bl DestroyAnimSprite -_080A43F2: - pop {r0} - bx r0 - thumb_func_end sub_80A43DC - - thumb_func_start sub_80A43F8 -sub_80A43F8: @ 80A43F8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A4418 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A4420 - ldr r2, _080A441C @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - b _080A442C - .align 2, 0 -_080A4418: .4byte gUnknown_2037F1A -_080A441C: .4byte gUnknown_2037F02 -_080A4420: - ldr r0, _080A4444 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] -_080A442C: - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080A4448 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080A444C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4444: .4byte gUnknown_2037F02 -_080A4448: .4byte sub_8074F6C -_080A444C: .4byte DestroyAnimSprite - thumb_func_end sub_80A43F8 - - thumb_func_start sub_80A4450 -sub_80A4450: @ 80A4450 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080A4488 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A446A - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080A446A: - ldr r0, _080A448C @ =sub_80A43DC - str r0, [r5, 0x1C] - ldr r4, _080A4490 @ =gUnknown_2037F02 - movs r0, 0 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_8074FF8 - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4488: .4byte gUnknown_2037F1A -_080A448C: .4byte sub_80A43DC -_080A4490: .4byte gUnknown_2037F02 - thumb_func_end sub_80A4450 - - thumb_func_start sub_80A4494 -sub_80A4494: @ 80A4494 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080A44D4 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x38] - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldr r1, _080A44D8 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A44DC @ =sub_8074E70 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A44D4: .4byte gUnknown_2037F02 -_080A44D8: .4byte move_anim_8074EE0 -_080A44DC: .4byte sub_8074E70 - thumb_func_end sub_80A4494 - - thumb_func_start sub_80A44E0 -sub_80A44E0: @ 80A44E0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080A4530 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A4514 - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] -_080A4514: - ldr r0, _080A4534 @ =sub_80A46CC - str r0, [r5, 0x1C] - ldr r0, _080A4538 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080A453C - ldrh r0, [r3] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x20] - b _080A4550 - .align 2, 0 -_080A4530: .4byte gUnknown_2037F1B -_080A4534: .4byte sub_80A46CC -_080A4538: .4byte gUnknown_2037F02 -_080A453C: - ldrh r0, [r5, 0x20] - ldrh r1, [r3] - subs r0, r1 - strh r0, [r5, 0x20] - adds r2, r5, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080A4550: - ldrh r0, [r3, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldr r1, _080A4584 @ =0xfffffc00 - adds r0, r1, 0 - ldrh r2, [r5, 0x30] - adds r1, r0, r2 - strh r1, [r5, 0x30] - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] - ldrh r0, [r3, 0x4] - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A457E - negs r0, r1 - strh r0, [r5, 0x30] -_080A457E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4584: .4byte 0xfffffc00 - thumb_func_end sub_80A44E0 - - thumb_func_start sub_80A4588 -sub_80A4588: @ 80A4588 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r0, _080A45A4 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080A45A8 - cmp r0, 0x1 - ble _080A4624 - cmp r0, 0x2 - beq _080A45C8 - b _080A4624 - .align 2, 0 -_080A45A4: .4byte gUnknown_2037F02 -_080A45A8: - ldr r5, _080A45C4 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r5] - eors r4, r0 - adds r0, r4, 0 - b _080A4634 - .align 2, 0 -_080A45C4: .4byte gUnknown_2037F1B -_080A45C8: - ldr r5, _080A4620 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5] - movs r2, 0x2 - mov r8, r2 - mov r1, r8 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A463E - ldrb r0, [r5] - mov r2, r8 - eors r0, r2 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - lsrs r7, r0, 1 - ldrb r0, [r5] - mov r1, r8 - eors r0, r1 - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - lsrs r4, r0, 1 - b _080A463E - .align 2, 0 -_080A4620: .4byte gUnknown_2037F1B -_080A4624: - ldr r4, _080A4670 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4] -_080A4634: - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r4, r0, 24 -_080A463E: - strh r7, [r6, 0x20] - strh r4, [r6, 0x22] - ldr r0, _080A4670 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A4656 - ldrh r0, [r6, 0x22] - adds r0, 0x8 - strh r0, [r6, 0x22] -_080A4656: - ldr r0, _080A4674 @ =sub_80A46CC - str r0, [r6, 0x1C] - ldr r0, _080A4678 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080A467C - ldrh r0, [r3] - ldrh r1, [r6, 0x20] - adds r0, r1 - strh r0, [r6, 0x20] - b _080A4690 - .align 2, 0 -_080A4670: .4byte gUnknown_2037F1B -_080A4674: .4byte sub_80A46CC -_080A4678: .4byte gUnknown_2037F02 -_080A467C: - ldrh r0, [r6, 0x20] - ldrh r1, [r3] - subs r0, r1 - strh r0, [r6, 0x20] - adds r2, r6, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080A4690: - ldrh r0, [r3, 0x2] - ldrh r2, [r6, 0x22] - adds r0, r2 - strh r0, [r6, 0x22] - ldr r1, _080A46C8 @ =0xfffffc00 - adds r0, r1, 0 - ldrh r2, [r6, 0x30] - adds r1, r0, r2 - strh r1, [r6, 0x30] - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - ldrh r2, [r6, 0x32] - adds r0, r2 - strh r0, [r6, 0x32] - ldrh r0, [r3, 0x4] - strh r0, [r6, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A46BE - negs r0, r1 - strh r0, [r6, 0x30] -_080A46BE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A46C8: .4byte 0xfffffc00 - thumb_func_end sub_80A4588 - - thumb_func_start sub_80A46CC -sub_80A46CC: @ 80A46CC - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x34] - adds r0, r1, r2 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A46EE - adds r0, r1, 0 - adds r0, 0x18 - b _080A46F2 -_080A46EE: - adds r0, r1, 0 - subs r0, 0x18 -_080A46F2: - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - subs r0, 0x18 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080A4728 - ldr r1, _080A4730 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - movs r0, 0x3 - strh r0, [r4, 0x2E] - ldr r0, _080A4734 @ =sub_8074C44 - str r0, [r4, 0x1C] -_080A4728: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4730: .4byte DestroyAnimSprite -_080A4734: .4byte sub_8074C44 - thumb_func_end sub_80A46CC - - thumb_func_start sub_80A4738 -sub_80A4738: @ 80A4738 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0x1 - ble _080A47DC - ldrh r1, [r5, 0x34] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A4794 - adds r3, r5, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - strb r0, [r3] - ldr r4, _080A4790 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r3, [r0] - adds r1, r2, 0 - ands r1, r3 - strb r1, [r0] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - b _080A47CA - .align 2, 0 -_080A4790: .4byte gSprites -_080A4794: - adds r1, r5, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r3, _080A47D8 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] -_080A47CA: - movs r0, 0 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - b _080A47E0 - .align 2, 0 -_080A47D8: .4byte gSprites -_080A47DC: - adds r0, r1, 0x1 - strh r0, [r5, 0x32] -_080A47E0: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xA - bne _080A4810 - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080A4818 @ =gSprites - adds r0, r4 - bl DestroySprite - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r0, r5, 0 - bl DestroyAnimSprite -_080A4810: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4818: .4byte gSprites - thumb_func_end sub_80A4738 - - thumb_func_start sub_80A481C -sub_80A481C: @ 80A481C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080A483C @ =gUnknown_2037F02 - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080A4840 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A4844 - ldrh r0, [r5, 0x20] - ldrh r1, [r4] - subs r0, r1 - b _080A484A - .align 2, 0 -_080A483C: .4byte gUnknown_2037F02 -_080A4840: .4byte gUnknown_2037F1A -_080A4844: - ldrh r0, [r4] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080A484A: - strh r0, [r5, 0x20] - ldr r4, _080A4878 @ =gUnknown_2037F02 - ldrb r1, [r4, 0xA] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x6] - negs r0, r0 - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x34] - ldr r1, _080A487C @ =sub_80A4880 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4878: .4byte gUnknown_2037F02 -_080A487C: .4byte sub_80A4880 - thumb_func_end sub_80A481C - - thumb_func_start sub_80A4880 -sub_80A4880: @ 80A4880 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x64 - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _080A48AC - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0 - b _080A48B2 -_080A48AC: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0xE -_080A48B2: - strb r0, [r1] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x2E] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - adds r0, 0x82 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080A48E8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A48E8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4880 - - thumb_func_start sub_80A48F0 -sub_80A48F0: @ 80A48F0 - push {r4-r6,lr} - adds r5, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A4906 - ldr r1, _080A4964 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - adds r0, 0x8 - strh r0, [r1, 0x2] -_080A4906: - ldr r6, _080A4968 @ =gUnknown_2037F1A - ldrb r0, [r6] - movs r1, 0 - bl sub_8074844 - lsls r0, 24 - ldr r4, _080A4964 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8074844 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A4944 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A496C -_080A4944: - ldrb r0, [r6] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - b _080A4984 - .align 2, 0 -_080A4964: .4byte gUnknown_2037F02 -_080A4968: .4byte gUnknown_2037F1A -_080A496C: - ldrb r0, [r6] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] -_080A4984: - ldr r0, _080A49C8 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080A49CC @ =0x00002828 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r5, 0x32] - movs r4, 0x10 - movs r0, 0x10 - strh r0, [r5, 0x3C] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r0, [r5, 0x3C] - lsls r1, r0, 8 - subs r4, r0 - orrs r1, r4 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080A49D0 @ =sub_80A49D4 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A49C8: .4byte gUnknown_2037F02 -_080A49CC: .4byte 0x00002828 -_080A49D0: .4byte sub_80A49D4 - thumb_func_end sub_80A48F0 - - thumb_func_start sub_80A49D4 -sub_80A49D4: @ 80A49D4 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x60 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A4A32 - movs r0, 0 - strh r0, [r4, 0x30] - ldr r1, _080A4A7C @ =gPlttBufferFaded - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x1 - lsls r0, 1 - adds r0, r1 - ldrh r5, [r0] - movs r2, 0 - adds r6, r1, 0 - adds r3, r6, 0 -_080A4A0C: - movs r1, 0x32 - ldrsh r0, [r4, r1] - adds r2, 0x1 - adds r0, r2 - lsls r1, r0, 1 - adds r1, r3 - adds r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - cmp r2, 0x5 - ble _080A4A0C - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x7 - lsls r0, 1 - adds r0, r6 - strh r5, [r0] -_080A4A32: - ldrh r2, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x6 - ble _080A4A6C - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _080A4A80 - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A4A6C - movs r0, 0 - strh r0, [r4, 0x3A] - subs r2, 0x1 - strh r2, [r4, 0x3C] - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_080A4A6C: - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A4A80 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080A4AC2 - .align 2, 0 -_080A4A7C: .4byte gPlttBufferFaded -_080A4A80: - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A4AC2 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r2, 0x1 - strh r2, [r4, 0x3C] - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A4AC2 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A4AC8 @ =sub_8074F88 - str r0, [r4, 0x1C] -_080A4AC2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4AC8: .4byte sub_8074F88 - thumb_func_end sub_80A49D4 - - thumb_func_start sub_80A4ACC -sub_80A4ACC: @ 80A4ACC - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080A4B2C @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A4B30 @ =0x0000ffe8 - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - strh r5, [r4, 0x34] - strh r5, [r4, 0x36] - strh r5, [r4, 0x3A] - movs r0, 0x10 - strh r0, [r4, 0x3C] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r4, 0x3C] - lsls r1, 8 - ldrh r0, [r4, 0x3A] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080A4B34 @ =sub_80A4B38 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4B2C: .4byte gUnknown_2037F1B -_080A4B30: .4byte 0x0000ffe8 -_080A4B34: .4byte sub_80A4B38 - thumb_func_end sub_80A4ACC - - thumb_func_start sub_80A4B38 -sub_80A4B38: @ 80A4B38 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080A4B46 - b _080A4C90 -_080A4B46: - lsls r0, 2 - ldr r1, _080A4B50 @ =_080A4B54 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A4B50: .4byte _080A4B54 - .align 2, 0 -_080A4B54: - .4byte _080A4B68 - .4byte _080A4BCC - .4byte _080A4BE8 - .4byte _080A4C66 - .4byte _080A4C7A -_080A4B68: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - cmp r0, 0 - bgt _080A4B76 - b _080A4C90 -_080A4B76: - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A4B98 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080A4BA6 - adds r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080A4BA6 -_080A4B98: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A4BA6 - subs r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080A4BA6: - ldrh r1, [r4, 0x3C] - lsls r1, 8 - ldrh r0, [r4, 0x3A] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A4C90 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A4C90 - strh r0, [r4, 0x30] - b _080A4C72 -_080A4BCC: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A4C90 - movs r0, 0 - strh r0, [r4, 0x30] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080A4C72 -_080A4BE8: - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x4 - bl sub_80A4C98 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080A4C0A - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080A4C0A: - ldrh r0, [r4, 0x32] - adds r1, r0, 0x1 - strh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080A4C90 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080A4C30 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A4C3E - subs r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080A4C3E -_080A4C30: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080A4C3E - adds r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080A4C3E: - ldrh r1, [r4, 0x3C] - lsls r1, 8 - ldrh r0, [r4, 0x3A] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x3A - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080A4C90 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080A4C90 - strh r1, [r4, 0x30] - strh r1, [r4, 0x32] - b _080A4C72 -_080A4C66: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080A4C72: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080A4C90 -_080A4C7A: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimSprite -_080A4C90: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4B38 - - thumb_func_start sub_80A4C98 -sub_80A4C98: @ 80A4C98 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0xB - bgt _080A4CAA - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080A4CAA: - ldrh r5, [r4, 0x34] - adds r0, r5, 0 - subs r0, 0x12 - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - cmp r0, 0x17 - bhi _080A4CC0 - ldrh r0, [r4, 0x36] - subs r0, 0x2 - strh r0, [r4, 0x36] -_080A4CC0: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _080A4CCE - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080A4CCE: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0x9 - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl __divsi3 - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - bge _080A4CF4 - movs r1, 0x26 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x26] -_080A4CF4: - adds r0, r5, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _080A4D04 - movs r0, 0 - strh r0, [r4, 0x34] -_080A4D04: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A4C98 - - thumb_func_start sub_80A4D0C -sub_80A4D0C: @ 80A4D0C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A4D50 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A4D20 - adds r0, r4, 0 - bl sub_8074FCC -_080A4D20: - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_8074FF8 - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x32] - ldr r1, _080A4D54 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A4D58 @ =sub_8074D00 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A4D50: .4byte gUnknown_2037F02 -_080A4D54: .4byte DestroyAnimSprite -_080A4D58: .4byte sub_8074D00 - thumb_func_end sub_80A4D0C - - thumb_func_start sub_80A4D5C -sub_80A4D5C: @ 80A4D5C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080A4D70 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A4D78 - ldr r0, _080A4D74 @ =gUnknown_2037F1A - b _080A4D7A - .align 2, 0 -_080A4D70: .4byte gUnknown_2037F02 -_080A4D74: .4byte gUnknown_2037F1A -_080A4D78: - ldr r0, _080A4DBC @ =gUnknown_2037F1B -_080A4D7A: - ldrb r6, [r0] - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080A4DC4 - movs r1, 0x2 - adds r0, r6, 0 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A4DC4 - ldr r4, _080A4DC0 @ =gUnknown_2037F02 - ldrb r1, [r4, 0xC] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - adds r0, r6, 0 - bl sub_8076D9C - movs r2, 0 - ldrsh r1, [r4, r2] - adds r0, r5, 0 - bl sub_8074FF8 - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - b _080A4E14 - .align 2, 0 -_080A4DBC: .4byte gUnknown_2037F1B -_080A4DC0: .4byte gUnknown_2037F02 -_080A4DC4: - ldr r4, _080A4DE4 @ =gUnknown_2037F02 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A4DE8 - adds r0, r6, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - b _080A4DFA - .align 2, 0 -_080A4DE4: .4byte gUnknown_2037F02 -_080A4DE8: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 -_080A4DFA: - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - ldr r0, _080A4E34 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r0, r5, 0 - bl sub_8074FF8 -_080A4E14: - ldr r1, _080A4E34 @ =gUnknown_2037F02 - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - ldr r1, _080A4E38 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A4E3C @ =sub_8074D00 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4E34: .4byte gUnknown_2037F02 -_080A4E38: .4byte DestroyAnimSprite -_080A4E3C: .4byte sub_8074D00 - thumb_func_end sub_80A4D5C - - thumb_func_start sub_80A4E40 -sub_80A4E40: @ 80A4E40 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080A4E6C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A4E74 - ldr r0, _080A4E70 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - b _080A4E8E - .align 2, 0 -_080A4E6C: .4byte gUnknown_2037F1A -_080A4E70: .4byte gUnknown_2037F02 -_080A4E74: - ldr r2, _080A4E98 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080A4E8E: - ldr r0, _080A4E9C @ =sub_80A4EA0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4E98: .4byte gUnknown_2037F02 -_080A4E9C: .4byte sub_80A4EA0 - thumb_func_end sub_80A4E40 - - thumb_func_start sub_80A4EA0 -sub_80A4EA0: @ 80A4EA0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080A4ED8 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r0, 0x1E - subs r0, r1 - movs r1, 0x3 - bl __divsi3 - strh r0, [r4, 0x26] - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsls r0, 18 - asrs r0, 16 - movs r1, 0x3 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080A4ED8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A4EEC - adds r0, r4, 0 - bl DestroyAnimSprite -_080A4EEC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4EA0 - - thumb_func_start sub_80A4EF4 -sub_80A4EF4: @ 80A4EF4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080A4F24 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A4F2C - ldr r1, _080A4F28 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x1 - strh r0, [r4, 0x34] - b _080A4F4A - .align 2, 0 -_080A4F24: .4byte gUnknown_2037F1A -_080A4F28: .4byte gUnknown_2037F02 -_080A4F2C: - ldr r2, _080A4F54 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldr r0, _080A4F58 @ =0x0000ffff - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080A4F4A: - ldr r0, _080A4F5C @ =sub_80A4F60 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4F54: .4byte gUnknown_2037F02 -_080A4F58: .4byte 0x0000ffff -_080A4F5C: .4byte sub_80A4F60 - thumb_func_end sub_80A4EF4 - - thumb_func_start sub_80A4F60 -sub_80A4F60: @ 80A4F60 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x36 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 1 - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080A4FA4 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080A4FA4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4F60 - - thumb_func_start sub_80A4FAC -sub_80A4FAC: @ 80A4FAC - push {lr} - ldrh r1, [r0, 0x20] - subs r1, 0x20 - strh r1, [r0, 0x20] - ldrh r1, [r0, 0x22] - subs r1, 0x20 - strh r1, [r0, 0x22] - movs r1, 0x14 - strh r1, [r0, 0x2E] - ldr r1, _080A4FCC @ =sub_8074C44 - str r1, [r0, 0x1C] - ldr r1, _080A4FD0 @ =sub_80A4FD4 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080A4FCC: .4byte sub_8074C44 -_080A4FD0: .4byte sub_80A4FD4 - thumb_func_end sub_80A4FAC - - thumb_func_start sub_80A4FD4 -sub_80A4FD4: @ 80A4FD4 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r6, [r5, 0x38] - movs r1, 0x1 - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - beq _080A4FEA - cmp r0, 0x1 - beq _080A5004 - b _080A506A -_080A4FEA: - strh r1, [r5, 0x2E] - ldr r0, _080A4FFC @ =sub_8074C44 - str r0, [r5, 0x1C] - ldr r1, _080A5000 @ =sub_80A4FD4 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - b _080A506A - .align 2, 0 -_080A4FFC: .4byte sub_8074C44 -_080A5000: .4byte sub_80A4FD4 -_080A5004: - ldrh r3, [r5, 0x24] - ldrh r0, [r5, 0x20] - adds r3, r0 - movs r0, 0 - strh r3, [r5, 0x20] - ldrh r4, [r5, 0x26] - ldrh r1, [r5, 0x22] - adds r4, r1 - strh r4, [r5, 0x22] - strh r0, [r5, 0x26] - strh r0, [r5, 0x24] - movs r0, 0x8 - strh r0, [r5, 0x2E] - ldr r2, _080A5078 @ =gUnknown_83E3548 - lsls r0, r6, 16 - asrs r0, 24 - lsls r0, 1 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r3, r1 - strh r3, [r5, 0x32] - adds r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, r0 - strh r4, [r5, 0x36] - ldr r0, _080A507C @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A5080 @ =sub_80A5084 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - movs r0, 0x3F - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xCB - bl PlaySE12WithPanning -_080A506A: - ldrh r0, [r5, 0x38] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x38] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5078: .4byte gUnknown_83E3548 -_080A507C: .4byte sub_8075590 -_080A5080: .4byte sub_80A5084 - thumb_func_end sub_80A4FD4 - - thumb_func_start sub_80A5084 -sub_80A5084: @ 80A5084 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _080A50AC - movs r0, 0xA - strh r0, [r2, 0x2E] - ldr r0, _080A50A4 @ =sub_8074C44 - str r0, [r2, 0x1C] - ldr r1, _080A50A8 @ =sub_80A50B8 - adds r0, r2, 0 - bl StoreSpriteCallbackInData6 - b _080A50B0 - .align 2, 0 -_080A50A4: .4byte sub_8074C44 -_080A50A8: .4byte sub_80A50B8 -_080A50AC: - ldr r0, _080A50B4 @ =sub_80A4FD4 - str r0, [r2, 0x1C] -_080A50B0: - pop {r0} - bx r0 - .align 2, 0 -_080A50B4: .4byte sub_80A4FD4 - thumb_func_end sub_80A5084 - - thumb_func_start sub_80A50B8 -sub_80A50B8: @ 80A50B8 - push {r4-r7,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x6] - cmp r1, 0 - bne _080A50E0 - movs r0, 0x3 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - strh r1, [r5, 0x32] - ldr r0, _080A50D8 @ =sub_8074C44 - str r0, [r5, 0x1C] - ldr r1, _080A50DC @ =sub_80A5174 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - b _080A5160 - .align 2, 0 -_080A50D8: .4byte sub_8074C44 -_080A50DC: .4byte sub_80A5174 -_080A50E0: - ldrh r0, [r5, 0x6] - cmp r0, 0x2 - beq _080A5100 - cmp r0, 0x2 - bgt _080A50F0 - cmp r0, 0x1 - beq _080A50F6 - b _080A5114 -_080A50F0: - cmp r0, 0x3 - beq _080A5108 - b _080A5114 -_080A50F6: - ldr r6, _080A50FC @ =0x0000fff8 - adds r7, r6, 0 - b _080A5118 - .align 2, 0 -_080A50FC: .4byte 0x0000fff8 -_080A5100: - ldr r7, _080A5104 @ =0x0000fff8 - b _080A5116 - .align 2, 0 -_080A5104: .4byte 0x0000fff8 -_080A5108: - movs r7, 0x8 - ldr r6, _080A5110 @ =0x0000fff8 - b _080A5118 - .align 2, 0 -_080A5110: .4byte 0x0000fff8 -_080A5114: - movs r7, 0x8 -_080A5116: - movs r6, 0x8 -_080A5118: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080A5168 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, _080A516C @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A5170 @ =sub_80A5220 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080A5160: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A5168: .4byte gUnknown_2037F1B -_080A516C: .4byte sub_8075590 -_080A5170: .4byte sub_80A5220 - thumb_func_end sub_80A50B8 - - thumb_func_start sub_80A5174 -sub_80A5174: @ 80A5174 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A5194 - ldrh r0, [r4, 0x30] - adds r0, 0x3 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080A51A4 - movs r0, 0x10 - b _080A51A2 -_080A5194: - ldrh r0, [r4, 0x30] - subs r0, 0x3 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _080A51A4 - movs r0, 0 -_080A51A2: - strh r0, [r4, 0x30] -_080A51A4: - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8075BE8 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080A5200 @ =0x00007fff - bl BlendPalettes - movs r3, 0x30 - ldrsh r0, [r4, r3] - cmp r0, 0x10 - bne _080A520C - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrb r1, [r4, 0x5] - lsrs r1, 4 - lsls r0, r1, 5 - ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210 - adds r0, r2 - lsls r1, 4 - ldr r3, _080A5208 @ =0x00000101 - adds r2, r3, 0 - orrs r1, r2 - movs r2, 0x4 - bl LoadPalette - movs r0, 0x3F - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xB9 - bl PlaySE12WithPanning - b _080A5214 - .align 2, 0 -_080A5200: .4byte 0x00007fff -_080A5204: .4byte gPlttBufferUnfaded + 0x210 -_080A5208: .4byte 0x00000101 -_080A520C: - cmp r0, 0 - bne _080A5214 - ldr r0, _080A521C @ =sub_80A5220 - str r0, [r4, 0x1C] -_080A5214: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A521C: .4byte sub_80A5220 - thumb_func_end sub_80A5174 - - thumb_func_start sub_80A5220 -sub_80A5220: @ 80A5220 - push {lr} - adds r2, r0, 0 - ldr r0, _080A523C @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A5240 @ =0x0000ffff - cmp r1, r0 - bne _080A5238 - movs r0, 0 - strh r0, [r2, 0x30] - strh r0, [r2, 0x2E] - ldr r0, _080A5244 @ =sub_80A5248 - str r0, [r2, 0x1C] -_080A5238: - pop {r0} - bx r0 - .align 2, 0 -_080A523C: .4byte gUnknown_2037F02 -_080A5240: .4byte 0x0000ffff -_080A5244: .4byte sub_80A5248 - thumb_func_end sub_80A5220 - - thumb_func_start sub_80A5248 -sub_80A5248: @ 80A5248 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080A527C - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080A527C: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bne _080A5290 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A5290: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5248 - - thumb_func_start sub_80A5298 -sub_80A5298: @ 80A5298 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080A52B8 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r3, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A52BC - ldrh r0, [r3, 0x20] - subs r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - subs r0, 0x18 - strh r0, [r3, 0x22] - b _080A530E - .align 2, 0 -_080A52B8: .4byte gUnknown_2037F02 -_080A52BC: - cmp r0, 0x2 - bne _080A52D8 - ldrh r0, [r3, 0x20] - subs r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - adds r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x20 - b _080A530A -_080A52D8: - cmp r0, 0x3 - bne _080A52F4 - ldrh r0, [r3, 0x20] - adds r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - subs r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - b _080A530A -_080A52F4: - ldrh r0, [r3, 0x20] - adds r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - adds r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x30 -_080A530A: - orrs r0, r1 - strb r0, [r3, 0x3] -_080A530E: - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x10 - ldr r4, _080A5334 @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080A5338 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldr r1, _080A533C @ =sub_80A4FAC - str r1, [r3, 0x1C] - adds r0, r3, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5334: .4byte 0x000003ff -_080A5338: .4byte 0xfffffc00 -_080A533C: .4byte sub_80A4FAC - thumb_func_end sub_80A5298 - - thumb_func_start sub_80A5340 -sub_80A5340: @ 80A5340 - push {lr} - adds r3, r0, 0 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - strh r0, [r3, 0x2E] - ldr r0, _080A5368 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080A537C - cmp r0, 0x1 - bgt _080A536C - cmp r0, 0 - beq _080A5372 - b _080A538C - .align 2, 0 -_080A5368: .4byte gUnknown_2037F02 -_080A536C: - cmp r0, 0x2 - beq _080A5384 - b _080A538C -_080A5372: - ldr r0, _080A5378 @ =sub_80A5398 - b _080A538E - .align 2, 0 -_080A5378: .4byte sub_80A5398 -_080A537C: - ldr r0, _080A5380 @ =sub_80A5474 - b _080A538E - .align 2, 0 -_080A5380: .4byte sub_80A5474 -_080A5384: - ldr r0, _080A5388 @ =sub_80A54C4 - b _080A538E - .align 2, 0 -_080A5388: .4byte sub_80A54C4 -_080A538C: - ldr r0, _080A5394 @ =sub_80A5584 -_080A538E: - str r0, [r3, 0x1C] - pop {r0} - bx r0 - .align 2, 0 -_080A5394: .4byte sub_80A5584 - thumb_func_end sub_80A5340 - - thumb_func_start sub_80A5398 -sub_80A5398: @ 80A5398 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - strh r0, [r4, 0x2E] - ldr r5, _080A53D8 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - movs r2, 0x2 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - beq _080A53B6 - movs r1, 0x2 -_080A53B6: - strh r1, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080A53DC @ =gUnknown_2023D44 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - ldr r1, _080A53E0 @ =sub_80A53E8 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A53E4 @ =sub_8074DC4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A53D8: .4byte gUnknown_2037F1A -_080A53DC: .4byte gUnknown_2023D44 -_080A53E0: .4byte sub_80A53E8 -_080A53E4: .4byte sub_8074DC4 - thumb_func_end sub_80A5398 - - thumb_func_start sub_80A53E8 -sub_80A53E8: @ 80A53E8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x2E - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _080A5424 - ldr r1, _080A5464 @ =gUnknown_2023D44 - ldr r4, _080A5468 @ =gUnknown_2037F1A - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5, 0x34] - movs r1, 0 - bl sub_80758E0 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - ldr r2, _080A546C @ =0xfffffd00 - adds r1, r2, 0 - cmp r0, 0 - beq _080A5420 - movs r0, 0xC0 - lsls r0, 2 - adds r1, r0, 0 -_080A5420: - strh r1, [r5, 0x36] - strh r6, [r5, 0x38] -_080A5424: - ldrh r0, [r5, 0x36] - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r5, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_80759DC - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A545E - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080A5470 @ =sub_80A5584 - str r0, [r5, 0x1C] -_080A545E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5464: .4byte gUnknown_2023D44 -_080A5468: .4byte gUnknown_2037F1A -_080A546C: .4byte 0xfffffd00 -_080A5470: .4byte sub_80A5584 - thumb_func_end sub_80A53E8 - - thumb_func_start sub_80A5474 -sub_80A5474: @ 80A5474 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - strh r0, [r4, 0x2E] - ldr r5, _080A54B4 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - movs r1, 0x3 - cmp r0, 0 - beq _080A5492 - movs r0, 0x3 - negs r0, r0 - adds r1, r0, 0 -_080A5492: - strh r1, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080A54B8 @ =gUnknown_2023D44 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - ldr r1, _080A54BC @ =sub_80A5584 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A54C0 @ =sub_8074DC4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A54B4: .4byte gUnknown_2037F1A -_080A54B8: .4byte gUnknown_2023D44 -_080A54BC: .4byte sub_80A5584 -_080A54C0: .4byte sub_8074DC4 - thumb_func_end sub_80A5474 - - thumb_func_start sub_80A54C4 -sub_80A54C4: @ 80A54C4 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A54DE - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080A54E4 @ =sub_80A54E8 - str r0, [r1, 0x1C] -_080A54DE: - pop {r0} - bx r0 - .align 2, 0 -_080A54E4: .4byte sub_80A54E8 - thumb_func_end sub_80A54C4 - - thumb_func_start sub_80A54E8 -sub_80A54E8: @ 80A54E8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A5538 - ldr r1, _080A5524 @ =gUnknown_2023D44 - ldr r4, _080A5528 @ =gUnknown_2037F1A - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5, 0x34] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A552C - movs r0, 0xFC - lsls r0, 8 - strh r0, [r5, 0x36] - movs r0, 0xC0 - lsls r0, 4 - b _080A5536 - .align 2, 0 -_080A5524: .4byte gUnknown_2023D44 -_080A5528: .4byte gUnknown_2037F1A -_080A552C: - movs r0, 0x80 - lsls r0, 3 - strh r0, [r5, 0x36] - movs r0, 0xF4 - lsls r0, 8 -_080A5536: - strh r0, [r5, 0x38] -_080A5538: - ldrh r0, [r5, 0x36] - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r5, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_80759DC - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080A5578 - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_8075980 - ldr r0, _080A5580 @ =sub_80A5584 - str r0, [r5, 0x1C] -_080A5578: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5580: .4byte sub_80A5584 - thumb_func_end sub_80A54E8 - - thumb_func_start sub_80A5584 -sub_80A5584: @ 80A5584 - push {lr} - bl DestroyAnimSprite - pop {r0} - bx r0 - thumb_func_end sub_80A5584 - - thumb_func_start sub_80A5590 -sub_80A5590: @ 80A5590 - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r1, _080A559C @ =sub_80A55A0 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A559C: .4byte sub_80A55A0 - thumb_func_end sub_80A5590 - - thumb_func_start sub_80A55A0 -sub_80A55A0: @ 80A55A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080A55FA - cmp r5, 0x1 - bgt _080A55B6 - cmp r5, 0 - beq _080A55BC - b _080A568E -_080A55B6: - cmp r5, 0x2 - beq _080A564C - b _080A568E -_080A55BC: - strh r5, [r4, 0x30] - ldr r1, _080A5640 @ =gUnknown_2023D44 - ldr r2, _080A5644 @ =gUnknown_2037F1A - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x32] - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x34] - ldr r2, _080A5648 @ =0xfffffe00 - adds r1, r2, 0 - cmp r0, 0 - beq _080A55E4 - movs r0, 0x80 - lsls r0, 2 - adds r1, r0, 0 -_080A55E4: - strh r1, [r4, 0x36] - strh r5, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80758E0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080A55FA: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80759DC - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A568E - movs r0, 0 - strh r0, [r4, 0x30] - movs r2, 0x36 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080A568E - .align 2, 0 -_080A5640: .4byte gUnknown_2023D44 -_080A5644: .4byte gUnknown_2037F1A -_080A5648: .4byte 0xfffffe00 -_080A564C: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_80759DC - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A568E - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_8075980 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A568E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A55A0 - - thumb_func_start sub_80A5694 -sub_80A5694: @ 80A5694 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A56D8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldr r1, _080A56DC @ =gUnknown_2023D44 - ldr r2, _080A56E0 @ =gUnknown_2037F1A - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - movs r4, 0 - strh r0, [r5, 0x8] - ldrb r0, [r2] - bl GetBattlerSide - lsls r0, 24 - lsrs r2, r0, 24 - strh r2, [r5, 0xA] - strh r4, [r5, 0xC] - ldr r0, _080A56E4 @ =gUnknown_2037F02 - movs r3, 0 - ldrsh r1, [r0, r3] - cmp r1, 0 - beq _080A56E8 - cmp r1, 0x1 - beq _080A5704 - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _080A5722 - .align 2, 0 -_080A56D8: .4byte gTasks -_080A56DC: .4byte gUnknown_2023D44 -_080A56E0: .4byte gUnknown_2037F1A -_080A56E4: .4byte gUnknown_2037F02 -_080A56E8: - strh r1, [r5, 0xC] - movs r0, 0x8 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - movs r0, 0x3 - strh r0, [r5, 0x12] - cmp r2, 0 - bne _080A56FC - negs r0, r0 - strh r0, [r5, 0x12] -_080A56FC: - ldr r0, _080A5700 @ =sub_80A572C - b _080A5720 - .align 2, 0 -_080A5700: .4byte sub_80A572C -_080A5704: - movs r0, 0x8 - strh r0, [r5, 0xE] - movs r0, 0xC0 - lsls r0, 3 - strh r0, [r5, 0x10] - movs r1, 0xC0 - strh r1, [r5, 0x12] - cmp r2, 0 - bne _080A571E - negs r0, r0 - strh r0, [r5, 0x10] - negs r0, r1 - strh r0, [r5, 0x12] -_080A571E: - ldr r0, _080A5728 @ =sub_80A58EC -_080A5720: - str r0, [r5] -_080A5722: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5728: .4byte sub_80A58EC - thumb_func_end sub_80A5694 - - thumb_func_start sub_80A572C -sub_80A572C: @ 80A572C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080A5750 @ =gTasks - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080A5746 - b _080A58E6 -_080A5746: - lsls r0, 2 - ldr r1, _080A5754 @ =_080A5758 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A5750: .4byte gTasks -_080A5754: .4byte _080A5758 - .align 2, 0 -_080A5758: - .4byte _080A576C - .4byte _080A579E - .4byte _080A57F8 - .4byte _080A5870 - .4byte _080A58B4 -_080A576C: - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _080A577C - ldrh r2, [r4, 0x12] - ldrh r3, [r4, 0x10] - adds r2, r3 - b _080A58C2 -_080A577C: - movs r0, 0x8 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r1, 0xC0 - cmp r0, 0 - bne _080A5792 - movs r2, 0xC0 - negs r2, r2 - adds r1, r2, 0 -_080A5792: - strh r1, [r4, 0x12] - ldrb r0, [r4, 0x8] - movs r1, 0 - bl sub_80758E0 - b _080A58A8 -_080A579E: - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A57C4 - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x10] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_80759DC - b _080A58D4 -_080A57C4: - movs r0, 0x8 - strh r0, [r4, 0xE] - ldr r2, _080A57F4 @ =gSprites - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x2 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080A57EA - movs r1, 0x2 -_080A57EA: - strh r1, [r4, 0x12] - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080A58A8 - .align 2, 0 -_080A57F4: .4byte gSprites -_080A57F8: - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A5854 - ldrh r1, [r4, 0x14] - movs r3, 0x14 - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A5812 - subs r0, r1, 0x1 - strh r0, [r4, 0x14] - b _080A58E6 -_080A5812: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080A5834 - ldr r2, _080A5830 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x12] - ldrh r2, [r4, 0x10] - adds r1, r2 - b _080A5848 - .align 2, 0 -_080A5830: .4byte gSprites -_080A5834: - ldr r2, _080A5850 @ =gSprites - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - ldrh r2, [r4, 0x12] - subs r1, r2 -_080A5848: - strh r1, [r0, 0x24] - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080A58D4 - .align 2, 0 -_080A5850: .4byte gSprites -_080A5854: - ldr r2, _080A586C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - strh r1, [r0, 0x24] - movs r0, 0xC - strh r0, [r4, 0xE] - b _080A58A8 - .align 2, 0 -_080A586C: .4byte gSprites -_080A5870: - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080A5880 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080A58E6 -_080A5880: - movs r0, 0x3 - strh r0, [r4, 0xE] - ldr r2, _080A58B0 @ =gSprites - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x8 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080A58A6 - movs r1, 0x8 -_080A58A6: - strh r1, [r4, 0x12] -_080A58A8: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _080A58E6 - .align 2, 0 -_080A58B0: .4byte gSprites -_080A58B4: - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A58E0 - ldrh r2, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r2, r0 -_080A58C2: - strh r2, [r4, 0x10] - ldr r3, _080A58DC @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] -_080A58D4: - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080A58E6 - .align 2, 0 -_080A58DC: .4byte gSprites -_080A58E0: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080A58E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A572C - - thumb_func_start sub_80A58EC -sub_80A58EC: @ 80A58EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A5928 @ =gTasks - adds r4, r0, r1 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A592C - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x10] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_80759DC - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080A5938 - .align 2, 0 -_080A5928: .4byte gTasks -_080A592C: - ldrb r0, [r4, 0x8] - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A5938: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A58EC - - thumb_func_start sub_80A5940 -sub_80A5940: @ 80A5940 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080A5954 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A595C - ldr r4, _080A5958 @ =gUnknown_2037F1A - b _080A595E - .align 2, 0 -_080A5954: .4byte gUnknown_2037F02 -_080A5958: .4byte gUnknown_2037F1A -_080A595C: - ldr r4, _080A599C @ =gUnknown_2037F1B -_080A595E: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x4] - adds r0, r6 - strh r0, [r5, 0x22] - movs r0, 0 - strh r0, [r5, 0x2E] - strh r0, [r5, 0x30] - ldr r1, _080A59A0 @ =sub_80A5A8C - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A59A4 @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A599C: .4byte gUnknown_2037F1B -_080A59A0: .4byte sub_80A5A8C -_080A59A4: .4byte sub_8074F6C - thumb_func_end sub_80A5940 - - thumb_func_start sub_80A59A8 -sub_80A59A8: @ 80A59A8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A59E0 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A59E4 @ =0x0000ffd0 - adds r0, r1 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r1, _080A59E8 @ =sub_80A5A44 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A59EC @ =sub_8074F6C - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A59E0: .4byte gUnknown_2037F1B -_080A59E4: .4byte 0x0000ffd0 -_080A59E8: .4byte sub_80A5A44 -_080A59EC: .4byte sub_8074F6C - thumb_func_end sub_80A59A8 - - thumb_func_start sub_80A59F0 -sub_80A59F0: @ 80A59F0 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080A5A34 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A5A38 @ =gUnknown_2037F02 - ldr r2, _080A5A3C @ =0x0000ffd0 - adds r0, r2 - ldrh r1, [r1] - adds r0, r1 - movs r6, 0 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - strh r6, [r4, 0x2E] - strh r6, [r4, 0x30] - ldr r0, _080A5A40 @ =sub_80A5A8C - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5A34: .4byte gUnknown_2037F1B -_080A5A38: .4byte gUnknown_2037F02 -_080A5A3C: .4byte 0x0000ffd0 -_080A5A40: .4byte sub_80A5A8C - thumb_func_end sub_80A59F0 - - thumb_func_start sub_80A5A44 -sub_80A5A44: @ 80A5A44 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A5A6E - movs r0, 0xC - strh r0, [r4, 0x2E] - movs r0, 0x8 - strh r0, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080A5A74 @ =sub_80A5A7C - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A5A78 @ =sub_8074CD0 - str r0, [r4, 0x1C] -_080A5A6E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5A74: .4byte sub_80A5A7C -_080A5A78: .4byte sub_8074CD0 - thumb_func_end sub_80A5A44 - - thumb_func_start sub_80A5A7C -sub_80A5A7C: @ 80A5A7C - movs r1, 0 - strh r1, [r0, 0x2E] - strh r1, [r0, 0x30] - ldr r1, _080A5A88 @ =sub_80A5A8C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A5A88: .4byte sub_80A5A8C - thumb_func_end sub_80A5A7C - - thumb_func_start sub_80A5A8C -sub_80A5A8C: @ 80A5A8C - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A5AD4 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080A5AD4 - adds r0, r3, 0 - bl DestroyAnimSprite -_080A5AD4: - pop {r0} - bx r0 - thumb_func_end sub_80A5A8C - - thumb_func_start sub_80A5AD8 -sub_80A5AD8: @ 80A5AD8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080A5AEC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A5AF4 - ldr r4, _080A5AF0 @ =gUnknown_2037F1A - b _080A5AF6 - .align 2, 0 -_080A5AEC: .4byte gUnknown_2037F02 -_080A5AF0: .4byte gUnknown_2037F1A -_080A5AF4: - ldr r4, _080A5B30 @ =gUnknown_2037F1B -_080A5AF6: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x4] - adds r0, r6 - strh r0, [r5, 0x22] - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080A5B34 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x6] - strh r0, [r5, 0x30] - ldr r0, _080A5B38 @ =sub_80A5B3C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5B30: .4byte gUnknown_2037F1B -_080A5B34: .4byte gUnknown_2037F02 -_080A5B38: .4byte sub_80A5B3C - thumb_func_end sub_80A5AD8 - - thumb_func_start sub_80A5B3C -sub_80A5B3C: @ 80A5B3C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - ble _080A5B5C - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x22] - subs r0, 0x1 - strh r0, [r2, 0x22] -_080A5B5C: - ldrh r0, [r2, 0x22] - ldrh r1, [r2, 0x2E] - subs r0, r1 - strh r0, [r2, 0x22] - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A5B78 - adds r0, r2, 0 - bl DestroyAnimSprite -_080A5B78: - pop {r0} - bx r0 - thumb_func_end sub_80A5B3C - - thumb_func_start sub_80A5B7C -sub_80A5B7C: @ 80A5B7C - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080A5BC4 @ =gUnknown_2037F1A - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0xC - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - movs r0, 0x2 - strh r0, [r4, 0x30] - strh r5, [r4, 0x32] - strh r5, [r4, 0x34] - strh r5, [r4, 0x36] - subs r0, 0x42 - bl sub_8073A44 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x38] - ldr r0, _080A5BC8 @ =sub_80A5BCC - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5BC4: .4byte gUnknown_2037F1A -_080A5BC8: .4byte sub_80A5BCC - thumb_func_end sub_80A5B7C - - thumb_func_start sub_80A5BCC -sub_80A5BCC: @ 80A5BCC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080A5C38 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r1, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080A5C1E - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5C1E - ldrh r1, [r4, 0x38] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xBB - bl PlaySE12WithPanning -_080A5C1E: - movs r1, 0 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A5C38 - strh r1, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080A5C38: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A5C62 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - ble _080A5C62 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080A5C62 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A5C62: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5BCC - - thumb_func_start sub_80A5C68 -sub_80A5C68: @ 80A5C68 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080A5CB2 - ldr r4, _080A5CC8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - ldr r5, _080A5CCC @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x2] - adds r0, r5 - strh r0, [r6, 0x22] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A5CAC - ldrh r0, [r6, 0x22] - adds r0, 0xA - strh r0, [r6, 0x22] -_080A5CAC: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] -_080A5CB2: - ldr r0, _080A5CCC @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A5CD0 @ =0x0000ffff - cmp r1, r0 - bne _080A5CC2 - adds r0, r6, 0 - bl DestroyAnimSprite -_080A5CC2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5CC8: .4byte gUnknown_2037F1A -_080A5CCC: .4byte gUnknown_2037F02 -_080A5CD0: .4byte 0x0000ffff - thumb_func_end sub_80A5C68 - - thumb_func_start sub_80A5CD4 -sub_80A5CD4: @ 80A5CD4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A5CF4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080A5D00 - ldr r1, _080A5CF8 @ =gUnknown_2037F02 - ldr r0, _080A5CFC @ =0x0000ffff - strh r0, [r1, 0xE] - b _080A5D3E - .align 2, 0 -_080A5CF4: .4byte gTasks -_080A5CF8: .4byte gUnknown_2037F02 -_080A5CFC: .4byte 0x0000ffff -_080A5D00: - cmp r0, 0x2 - bne _080A5D0C - adds r0, r2, 0 - bl DestroyAnimVisualTask - b _080A5D44 -_080A5D0C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080A5D44 - movs r0, 0 - strh r0, [r4, 0x8] - ldrh r2, [r4, 0xA] - adds r2, 0x1 - strh r2, [r4, 0xA] - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A5D44 -_080A5D3E: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_080A5D44: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5CD4 - - thumb_func_start sub_80A5D4C -sub_80A5D4C: @ 80A5D4C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075114 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A5D74 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080A5D78 @ =sub_80A5D7C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5D74: .4byte gUnknown_2037F02 -_080A5D78: .4byte sub_80A5D7C - thumb_func_end sub_80A5D4C - - thumb_func_start sub_80A5D7C -sub_80A5D7C: @ 80A5D7C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080A5D90 - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] - b _080A5DCC -_080A5D90: - adds r2, r5, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1E - strh r0, [r5, 0x2E] - ldr r4, _080A5DD4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080A5DD8 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A5DDC @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080A5DCC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5DD4: .4byte gUnknown_2037F1A -_080A5DD8: .4byte sub_8075590 -_080A5DDC: .4byte DestroyAnimSprite - thumb_func_end sub_80A5D7C - - thumb_func_start sub_80A5DE0 -sub_80A5DE0: @ 80A5DE0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A5E30 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080A5E28 - movs r0, 0 - strh r0, [r4, 0x8] - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A5E28 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A5E28: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5E30: .4byte gTasks - thumb_func_end sub_80A5DE0 - - thumb_func_start sub_80A5E34 -sub_80A5E34: @ 80A5E34 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r0, _080A5E9C @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - bcs _080A5E90 - ldr r6, _080A5EA0 @ =gUnknown_2037F02 - ldr r5, _080A5EA4 @ =gUnknown_3004FF0 -_080A5E48: - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _080A5E64 - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A5E64 - adds r0, r4, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible -_080A5E64: - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _080A5E82 - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5E82 - adds r0, r4, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible -_080A5E82: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A5E9C @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - bcc _080A5E48 -_080A5E90: - adds r0, r7, 0 - bl DestroyAnimVisualTask - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A5E9C: .4byte gBattlersCount -_080A5EA0: .4byte gUnknown_2037F02 -_080A5EA4: .4byte gUnknown_3004FF0 - thumb_func_end sub_80A5E34 - - thumb_func_start sub_80A5EA8 -sub_80A5EA8: @ 80A5EA8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - b _080A5EC2 -_080A5EB2: - ldr r0, _080A5ED8 @ =gUnknown_3004FF0 - adds r0, r4, r0 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080A5EC2: - ldr r0, _080A5EDC @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - bcc _080A5EB2 - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5ED8: .4byte gUnknown_3004FF0 -_080A5EDC: .4byte gBattlersCount - thumb_func_end sub_80A5EA8 - - thumb_func_start sub_80A5EE0 -sub_80A5EE0: @ 80A5EE0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A5EF6 - movs r0, 0x30 - strh r0, [r4, 0x20] - movs r0, 0x28 - b _080A5EFE -_080A5EF6: - ldr r0, _080A5F20 @ =gUnknown_2037F02 - ldrh r1, [r0] - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] -_080A5EFE: - strh r0, [r4, 0x22] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080A5F24 @ =sub_80A5F28 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5F20: .4byte gUnknown_2037F02 -_080A5F24: .4byte sub_80A5F28 - thumb_func_end sub_80A5EE0 - - thumb_func_start sub_80A5F28 -sub_80A5F28: @ 80A5F28 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080A5F3A - adds r0, r1, 0 - bl DestroyAnimSprite -_080A5F3A: - pop {r0} - bx r0 - thumb_func_end sub_80A5F28 - - thumb_func_start sub_80A5F40 -sub_80A5F40: @ 80A5F40 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A5F78 @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r2, _080A5F7C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r2] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - strh r0, [r4, 0x22] - strh r1, [r4, 0x2E] - strh r1, [r4, 0x30] - strh r1, [r4, 0x32] - strh r1, [r4, 0x34] - movs r0, 0x1 - strh r0, [r4, 0x36] - ldr r0, _080A5F80 @ =sub_80A5F84 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5F78: .4byte gUnknown_2037F1A -_080A5F7C: .4byte gUnknown_2037F02 -_080A5F80: .4byte sub_80A5F84 - thumb_func_end sub_80A5F40 - - thumb_func_start sub_80A5F84 -sub_80A5F84: @ 80A5F84 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A5FAE - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r2, [r1, 0x32] - movs r3, 0x32 - ldrsh r0, [r1, r3] - cmp r0, 0x77 - bgt _080A5FAE - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] - adds r0, r2, 0x1 - strh r0, [r1, 0x32] -_080A5FAE: - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080A5FBC - adds r0, r1, 0 - bl DestroyAnimSprite -_080A5FBC: - pop {r0} - bx r0 - thumb_func_end sub_80A5F84 - - thumb_func_start sub_80A5FC0 -sub_80A5FC0: @ 80A5FC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - mov r8, r0 - ldr r0, _080A6090 @ =0x0000ffff - mov r1, r8 - ands r1, r0 - mov r8, r1 - ldr r0, _080A6094 @ =gTasks - mov r9, r0 - lsls r5, r7, 2 - adds r5, r7 - lsls r5, 3 - adds r6, r5, r0 - strh r4, [r6, 0x8] - strh r4, [r6, 0xA] - strh r4, [r6, 0xC] - strh r1, [r6, 0xE] - strh r4, [r6, 0x10] - strh r4, [r6, 0x12] - strh r4, [r6, 0x14] - movs r0, 0xD - strh r0, [r6, 0x16] - movs r0, 0xE - strh r0, [r6, 0x18] - movs r0, 0xF - strh r0, [r6, 0x1A] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8075CB8 - mov r10, r0 - mov r1, r8 - orrs r1, r0 - mov r8, r1 - movs r0, 0x8 - add r9, r0 - add r5, r9 - adds r0, r5, 0 - adds r0, 0x1C - adds r5, 0x1E - adds r1, r5, 0 - mov r2, r8 - bl sub_80765C0 - ldr r0, _080A6098 @ =0x000027d2 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r4, 0x80 - lsls r4, 9 - adds r1, r4, 0 - lsls r1, r0 - mov r0, r10 - orrs r0, r1 - mov r10, r0 - ldr r0, _080A609C @ =0x000027d3 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0 - mov r1, r10 - orrs r4, r1 - ldr r0, _080A60A0 @ =0x00007fbb - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080A60A4 @ =sub_80A60A8 - str r1, [r6] - adds r0, r7, 0 - bl _call_via_r1 - 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 -_080A6090: .4byte 0x0000ffff -_080A6094: .4byte gTasks -_080A6098: .4byte 0x000027d2 -_080A609C: .4byte 0x000027d3 -_080A60A0: .4byte 0x00007fbb -_080A60A4: .4byte sub_80A60A8 - thumb_func_end sub_80A5FC0 - - thumb_func_start sub_80A60A8 -sub_80A60A8: @ 80A60A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080A60D0 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080A6194 - cmp r1, 0x1 - bgt _080A60D4 - cmp r1, 0 - beq _080A60E2 - b _080A6232 - .align 2, 0 -_080A60D0: .4byte gTasks -_080A60D4: - cmp r1, 0x2 - bne _080A60DA - b _080A61EC -_080A60DA: - cmp r1, 0x3 - bne _080A60E0 - b _080A6220 -_080A60E0: - b _080A6232 -_080A60E2: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bgt _080A60F0 - b _080A6232 -_080A60F0: - strh r1, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bgt _080A613C - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - ldrh r2, [r4, 0x18] - ldrh r3, [r4, 0x12] - adds r2, r3 - strh r2, [r4, 0x12] - ldrh r1, [r4, 0x1A] - ldrh r5, [r4, 0x14] - adds r1, r5 - strh r1, [r4, 0x14] - lsls r0, 16 - asrs r0, 19 - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - asrs r2, 19 - lsls r2, 16 - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r2, 11 - orrs r0, r2 - lsrs r1, 6 - orrs r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - b _080A6146 -_080A613C: - ldr r7, _080A618C @ =0x00007fbb - mov r12, r7 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080A6146: - movs r2, 0x1 - movs r3, 0 - movs r1, 0 -_080A614C: - movs r5, 0xE - ldrsh r0, [r4, r5] - ands r0, r2 - lsls r5, r2, 17 - adds r6, r3, 0 - adds r6, 0x10 - adds r1, 0x1 - mov r8, r1 - cmp r0, 0 - beq _080A6178 - movs r1, 0x1 - ldr r2, _080A6190 @ =gPlttBufferFaded -_080A6164: - adds r0, r3, r1 - lsls r0, 1 - adds r0, r2 - mov r7, r12 - strh r7, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _080A6164 -_080A6178: - lsrs r2, r5, 16 - lsls r0, r6, 16 - lsrs r3, r0, 16 - mov r1, r8 - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _080A614C - b _080A6232 - .align 2, 0 -_080A618C: .4byte 0x00007fbb -_080A6190: .4byte gPlttBufferFaded -_080A6194: - ldr r0, _080A61DC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A6232 - movs r2, 0 - ldr r3, _080A61E0 @ =gSprites - movs r5, 0x14 - adds r5, r3 - mov r12, r5 - ldr r7, _080A61E4 @ =gUnknown_83E3734 - mov r8, r7 - ldr r6, _080A61E8 @ =gUnknown_83E3764 - movs r5, 0x1 -_080A61B2: - lsls r0, r2, 4 - adds r0, r2 - lsls r1, r0, 2 - mov r7, r12 - adds r0, r1, r7 - ldr r0, [r0] - cmp r0, r8 - beq _080A61C6 - cmp r0, r6 - bne _080A61CA -_080A61C6: - adds r0, r1, r3 - strh r5, [r0, 0x2E] -_080A61CA: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _080A61B2 - movs r0, 0 - strh r0, [r4, 0xA] - b _080A6214 - .align 2, 0 -_080A61DC: .4byte gPaletteFade -_080A61E0: .4byte gSprites -_080A61E4: .4byte gUnknown_83E3734 -_080A61E8: .4byte gUnknown_83E3764 -_080A61EC: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080A6232 - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - bl sub_80765C8 - ldr r1, _080A621C @ =0x00007fbb - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_080A6214: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080A6232 - .align 2, 0 -_080A621C: .4byte 0x00007fbb -_080A6220: - ldr r0, _080A6240 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A6232 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080A6232: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6240: .4byte gPaletteFade - thumb_func_end sub_80A60A8 - - thumb_func_start sub_80A6244 -sub_80A6244: @ 80A6244 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080A62C8 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bgt _080A6256 - movs r0, 0x2 - strh r0, [r6, 0x4] -_080A6256: - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0x7F - ble _080A6262 - movs r0, 0x7F - strh r0, [r6, 0x4] -_080A6262: - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x30] - ldr r4, _080A62CC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x2] - adds r0, r6 - strh r0, [r5, 0x22] - ldrh r1, [r5, 0x20] - strh r1, [r5, 0x3A] - strh r0, [r5, 0x3C] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A62D4 - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - adds r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080A62D0 @ =0xffffec00 - b _080A62FA - .align 2, 0 -_080A62C8: .4byte gUnknown_2037F02 -_080A62CC: .4byte gUnknown_2037F1B -_080A62D0: .4byte 0xffffec00 -_080A62D4: - ldr r0, _080A6314 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A631C - ldrh r0, [r5, 0x20] - subs r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - adds r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0xA0 - lsls r0, 5 -_080A62FA: - bl __divsi3 - strh r0, [r5, 0x34] - lsls r4, 7 - strh r4, [r5, 0x36] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080A6318 @ =0xfffff600 - bl __divsi3 - strh r0, [r5, 0x38] - b _080A6358 - .align 2, 0 -_080A6314: .4byte gUnknown_2037F1A -_080A6318: .4byte 0xfffff600 -_080A631C: - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - subs r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080A6364 @ =0xffffec00 - bl __divsi3 - strh r0, [r5, 0x34] - lsls r4, 7 - strh r4, [r5, 0x36] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0xA0 - lsls r0, 4 - bl __divsi3 - strh r0, [r5, 0x38] - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x30 - orrs r0, r1 - strb r0, [r5, 0x3] -_080A6358: - ldr r0, _080A6368 @ =sub_80A636C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6364: .4byte 0xffffec00 -_080A6368: .4byte sub_80A636C - thumb_func_end sub_80A6244 - - thumb_func_start sub_80A636C -sub_80A636C: @ 80A636C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x36] - adds r1, r3 - strh r1, [r2, 0x36] - lsls r0, 16 - asrs r0, 23 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 23 - strh r1, [r2, 0x22] - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A63A2 - ldrh r0, [r2, 0x3A] - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x22] -_080A63A2: - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080A63B0 - adds r0, r2, 0 - bl DestroyAnimSprite -_080A63B0: - pop {r0} - bx r0 - thumb_func_end sub_80A636C - - thumb_func_start sub_80A63B4 -sub_80A63B4: @ 80A63B4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _080A6444 @ =gTasks - adds r6, r0, r1 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x8] - ldr r0, _080A6448 @ =0x00002771 - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0xA] - movs r1, 0xA - ldrsh r0, [r6, r1] - lsls r0, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - ldr r2, _080A644C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r4, r0, 4 - movs r5, 0x1 - ldr r2, _080A6450 @ =gPlttBufferUnfaded -_080A640C: - adds r1, r3, r5 - lsls r1, 1 - adds r1, r2 - adds r0, r4, r5 - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080A640C - adds r0, r3, 0 - movs r1, 0x10 - movs r2, 0xB - movs r3, 0 - bl BlendPalette - movs r0, 0 - strh r0, [r6, 0xE] - movs r5, 0 - ldr r7, _080A644C @ =gSprites - movs r1, 0x1C - adds r1, r7 - mov r9, r1 - b _080A6488 - .align 2, 0 -_080A6444: .4byte gTasks -_080A6448: .4byte 0x00002771 -_080A644C: .4byte gSprites -_080A6450: .4byte gPlttBufferUnfaded -_080A6454: - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r4, r2, r7 - ldrb r1, [r6, 0xA] - lsls r1, 4 - ldrb r3, [r4, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0x5] - movs r0, 0 - strh r0, [r4, 0x2E] - lsls r0, r5, 7 - strh r0, [r4, 0x30] - mov r0, r8 - strh r0, [r4, 0x32] - add r2, r9 - ldr r0, _080A64BC @ =sub_80A653C - str r0, [r2] - ldrh r0, [r6, 0xE] - adds r0, 0x1 - strh r0, [r6, 0xE] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080A6488: - cmp r5, 0x1 - bhi _080A649A - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080A6454 -_080A649A: - ldr r0, _080A64C0 @ =sub_80A64E0 - str r0, [r6] - ldr r0, _080A64C4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A64C8 - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl ClearGpuRegBits - b _080A64D2 - .align 2, 0 -_080A64BC: .4byte sub_80A653C -_080A64C0: .4byte sub_80A64E0 -_080A64C4: .4byte gUnknown_2037F1A -_080A64C8: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl ClearGpuRegBits -_080A64D2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A63B4 - - thumb_func_start sub_80A64E0 -sub_80A64E0: @ 80A64E0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A6514 @ =gTasks - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6532 - ldr r0, _080A6518 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A651C - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl SetGpuRegBits - b _080A6526 - .align 2, 0 -_080A6514: .4byte gTasks -_080A6518: .4byte gUnknown_2037F1A -_080A651C: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits -_080A6526: - ldr r0, _080A6538 @ =0x00002771 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A6532: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6538: .4byte 0x00002771 - thumb_func_end sub_80A64E0 - - thumb_func_start sub_80A653C -sub_80A653C: @ 80A653C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A6558 - movs r0, 0 - strh r0, [r5, 0x34] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_080A6558: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x40 - ble _080A6580 - ldr r2, _080A657C @ =gTasks - movs r0, 0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0xE] - subs r1, 0x1 - strh r1, [r0, 0xE] - adds r0, r5, 0 - bl obj_delete_but_dont_free_vram - b _080A65C2 - .align 2, 0 -_080A657C: .4byte gTasks -_080A6580: - ldr r4, _080A65C8 @ =gUnknown_825E074 - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x6 - bl __divsi3 - strh r0, [r5, 0x36] - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0xD - bl __divsi3 - strh r0, [r5, 0x38] - ldrh r1, [r5, 0x30] - adds r1, r0 - movs r0, 0xFF - ands r1, r0 - strh r1, [r5, 0x30] - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] -_080A65C2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A65C8: .4byte gUnknown_825E074 - thumb_func_end sub_80A653C - - thumb_func_start sub_80A65CC -sub_80A65CC: @ 80A65CC - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080A65E0 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - ldr r0, _080A65E4 @ =sub_8074F6C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A65E0: .4byte DestroyAnimSprite -_080A65E4: .4byte sub_8074F6C - thumb_func_end sub_80A65CC - - thumb_func_start sub_80A65E8 -sub_80A65E8: @ 80A65E8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r4, _080A6698 @ =gUnknown_83E3898 - ldrh r0, [r4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - beq _080A662C - lsls r0, r3, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - movs r2, 0x1 - ldr r5, _080A669C @ =gPlttBufferFaded -_080A6614: - adds r1, r3, r2 - lsls r1, 1 - adds r1, r5 - lsls r0, r2, 1 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080A6614 -_080A662C: - movs r4, 0x1 - ldr r0, _080A6698 @ =gUnknown_83E3898 - mov r8, r0 -_080A6632: - lsls r0, r4, 1 - adds r0, r4 - lsls r5, r0, 2 - mov r1, r8 - adds r0, r5, r1 - ldrh r0, [r0] - bl AllocSpritePalette - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, 0x1 - mov r12, r4 - cmp r3, 0xFF - beq _080A667A - lsls r0, r3, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - movs r2, 0x1 - ldr r7, _080A669C @ =gPlttBufferFaded - ldr r6, _080A6698 @ =gUnknown_83E3898 - adds r4, r5, 0 -_080A6660: - adds r1, r3, r2 - lsls r1, 1 - adds r1, r7 - lsls r0, r2, 1 - adds r0, r4 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080A6660 -_080A667A: - mov r1, r12 - lsls r0, r1, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080A6632 - mov r0, r9 - bl DestroyAnimVisualTask - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6698: .4byte gUnknown_83E3898 -_080A669C: .4byte gPlttBufferFaded - thumb_func_end sub_80A65E8 - - thumb_func_start sub_80A66A0 -sub_80A66A0: @ 80A66A0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0x1 - ldr r6, _080A66D0 @ =gUnknown_83E3898 -_080A66AA: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r6 - ldrh r0, [r0] - bl FreeSpritePaletteByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080A66AA - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A66D0: .4byte gUnknown_83E3898 - thumb_func_end sub_80A66A0 - - thumb_func_start sub_80A66D4 -sub_80A66D4: @ 80A66D4 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_8074FCC - ldr r4, _080A672C @ =gUnknown_2037F02 - ldrb r1, [r4] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r2, _080A6730 @ =gUnknown_83E3898 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080A6710 - lsls r2, r0, 4 - ldrb r1, [r5, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] -_080A6710: - ldrh r0, [r4, 0x2] - movs r1, 0 - strh r0, [r5, 0x30] - strh r1, [r5, 0x32] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x34] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A6734 - movs r6, 0x30 - movs r3, 0x28 - b _080A674E - .align 2, 0 -_080A672C: .4byte gUnknown_2037F02 -_080A6730: .4byte gUnknown_83E3898 -_080A6734: - ldr r4, _080A6784 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r3, r0, 24 -_080A674E: - ldrh r0, [r5, 0x20] - lsls r1, r0, 4 - strh r1, [r5, 0x36] - ldrh r1, [r5, 0x22] - lsls r2, r1, 4 - strh r2, [r5, 0x38] - subs r0, r6, r0 - lsls r0, 16 - asrs r0, 16 - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - adds r2, r5, 0 - adds r2, 0x3A - adds r3, r5, 0 - adds r3, 0x3C - movs r4, 0x28 - str r4, [sp] - bl sub_80A678C - ldr r0, _080A6788 @ =sub_80A67E4 - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6784: .4byte gUnknown_2037F1B -_080A6788: .4byte sub_80A67E4 - thumb_func_end sub_80A66D4 - - thumb_func_start sub_80A678C -sub_80A678C: @ 80A678C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r2, 0 - mov r8, r3 - ldr r2, [sp, 0x18] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r1, r2, 24 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bge _080A67AE - lsls r0, r1, 24 - negs r0, r0 - lsrs r1, r0, 24 -_080A67AE: - lsls r5, r2, 8 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl __divsi3 - adds r4, r0, 0 - cmp r4, 0 - bne _080A67C2 - movs r4, 0x1 -_080A67C2: - adds r0, r5, 0 - adds r1, r4, 0 - bl __divsi3 - strh r0, [r7] - lsls r0, r6, 16 - asrs r0, 8 - adds r1, r4, 0 - bl __divsi3 - mov r1, r8 - strh r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A678C - - thumb_func_start sub_80A67E4 -sub_80A67E4: @ 80A67E4 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x2E] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r1, r0, r1 - adds r0, r1, 0 - cmp r1, 0 - bge _080A6800 - adds r0, 0xFF -_080A6800: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - ldrh r1, [r4, 0x3A] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - ldrh r2, [r4, 0x3C] - ldrh r3, [r4, 0x38] - adds r2, r3 - strh r2, [r4, 0x38] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x20] - lsls r2, 16 - asrs r2, 20 - strh r2, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xF - bl Sin - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - ldrh r0, [r4, 0x20] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bhi _080A684E - lsls r0, r2, 16 - asrs r1, r0, 16 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - blt _080A684E - cmp r1, 0x80 - ble _080A6856 -_080A684E: - adds r0, r4, 0 - bl move_anim_8074EE0 - b _080A68A6 -_080A6856: - movs r0, 0x34 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _080A68A6 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, r1 - ble _080A68A6 - strh r5, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A687E - strh r5, [r4, 0x30] -_080A687E: - ldr r2, _080A68AC @ =gUnknown_83E3898 - movs r3, 0x30 - ldrsh r1, [r4, r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080A68A6 - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] -_080A68A6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A68AC: .4byte gUnknown_83E3898 - thumb_func_end sub_80A67E4 - - thumb_func_start sub_80A68B0 -sub_80A68B0: @ 80A68B0 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r7, _080A6934 @ =gUnknown_2037F1A - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A68CE - ldr r1, _080A6938 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080A68CE: - ldrb r0, [r7] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A6938 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - movs r5, 0 - strh r0, [r6, 0x20] - ldrb r0, [r7] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r6, 0x22] - ldrb r1, [r4] - adds r0, r6, 0 - bl StartSpriteAnim - strh r5, [r6, 0x32] - strh r5, [r6, 0x34] - ldrh r0, [r6, 0x20] - lsls r0, 4 - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x22] - lsls r0, 4 - strh r0, [r6, 0x38] - movs r1, 0x2 - ldrsh r0, [r4, r1] - lsls r0, 4 - movs r1, 0x5 - bl __divsi3 - strh r0, [r6, 0x3A] - movs r2, 0x4 - ldrsh r0, [r4, r2] - lsls r0, 7 - movs r1, 0x5 - bl __divsi3 - strh r0, [r6, 0x3C] - ldr r0, _080A693C @ =sub_80A6940 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6934: .4byte gUnknown_2037F1A -_080A6938: .4byte gUnknown_2037F02 -_080A693C: .4byte sub_80A6940 - thumb_func_end sub_80A68B0 - - thumb_func_start sub_80A6940 -sub_80A6940: @ 80A6940 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - ldrh r1, [r4, 0x3C] - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x22] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - ble _080A699E - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A699E - ldrh r0, [r4, 0x32] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x12 - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x12 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A699E - movs r0, 0x1 - strh r0, [r4, 0x34] -_080A699E: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x30 - bne _080A69B2 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080A69B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6940 - - thumb_func_start sub_80A69B8 -sub_80A69B8: @ 80A69B8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080A69D8 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080A69DC - ldrb r0, [r5, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r5, 0x3] - movs r6, 0x10 - b _080A69DE - .align 2, 0 -_080A69D8: .4byte gUnknown_2037F02 -_080A69DC: - ldr r6, _080A6A18 @ =0x0000fff0 -_080A69DE: - ldr r4, _080A6A1C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x8 - strh r0, [r5, 0x22] - movs r0, 0x8 - strh r0, [r5, 0x2E] - ldr r0, _080A6A20 @ =sub_8074C44 - str r0, [r5, 0x1C] - ldr r1, _080A6A24 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6A18: .4byte 0x0000fff0 -_080A6A1C: .4byte gUnknown_2037F1A -_080A6A20: .4byte sub_8074C44 -_080A6A24: .4byte DestroyAnimSprite - thumb_func_end sub_80A69B8 - - thumb_func_start sub_80A6A28 -sub_80A6A28: @ 80A6A28 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldrh r0, [r4, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] - ldr r5, _080A6AA0 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r2, _080A6AA4 @ =gUnknown_83E3898 - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080A6A68 - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] -_080A6A68: - movs r1, 0 - ldrsh r0, [r5, r1] - movs r2, 0x20 - cmp r0, 0 - bne _080A6A74 - ldr r2, _080A6AA8 @ =0x0000ffe0 -_080A6A74: - movs r0, 0x28 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x20] - strh r1, [r4, 0x30] - lsls r0, r2, 16 - asrs r0, 16 - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - subs r0, 0x28 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x38] - ldr r0, _080A6AAC @ =sub_80A6AB0 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6AA0: .4byte gUnknown_2037F02 -_080A6AA4: .4byte gUnknown_83E3898 -_080A6AA8: .4byte 0x0000ffe0 -_080A6AAC: .4byte sub_80A6AB0 - thumb_func_end sub_80A6A28 - - thumb_func_start sub_80A6AB0 -sub_80A6AB0: @ 80A6AB0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080A6B00 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - lsls r0, 16 - lsrs r1, r0, 16 - ldrh r2, [r4, 0x24] - movs r3, 0x24 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080A6ADC - lsls r0, r1, 16 - negs r0, r0 - lsrs r1, r0, 16 -_080A6ADC: - lsls r0, r1, 16 - asrs r0, 16 - adds r0, r2 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - ldrh r3, [r4, 0x26] - adds r0, r3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A6B06 -_080A6B00: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A6B06: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6AB0 - - thumb_func_start sub_80A6B0C -sub_80A6B0C: @ 80A6B0C - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A6B2C - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8076B2C - adds r0, 0x8 - b _080A6B36 -_080A6B2C: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8076B2C - subs r0, 0x8 -_080A6B36: - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8074480 - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0 - bl sub_8076B2C - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080A6B58 - adds r0, 0x3 -_080A6B58: - asrs r0, 2 - subs r0, r4, r0 - strh r0, [r6, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A6B0C - - thumb_func_start sub_80A6B64 -sub_80A6B64: @ 80A6B64 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080A6B78 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6B80 - ldr r0, _080A6B7C @ =gUnknown_2037F1A - b _080A6B82 - .align 2, 0 -_080A6B78: .4byte gUnknown_2037F02 -_080A6B7C: .4byte gUnknown_2037F1A -_080A6B80: - ldr r0, _080A6BC0 @ =gUnknown_2037F1B -_080A6B82: - ldrb r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A6B0C - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - ldr r0, _080A6BC4 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - strh r0, [r5, 0x2E] - adds r0, r1, 0x2 - strh r0, [r5, 0x30] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r1, _080A6BC8 @ =sub_80A6BD0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6BCC @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6BC0: .4byte gUnknown_2037F1B -_080A6BC4: .4byte gUnknown_2037F02 -_080A6BC8: .4byte sub_80A6BD0 -_080A6BCC: .4byte sub_8074F6C - thumb_func_end sub_80A6B64 - - thumb_func_start sub_80A6BD0 -sub_80A6BD0: @ 80A6BD0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080A6BF8 - ldr r1, _080A6C00 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080A6C04 @ =sub_8074F6C - str r0, [r4, 0x1C] -_080A6BF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6C00: .4byte DestroyAnimSprite -_080A6C04: .4byte sub_8074F6C - thumb_func_end sub_80A6BD0 - - thumb_func_start sub_80A6C08 -sub_80A6C08: @ 80A6C08 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A6C1C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6C24 - ldr r0, _080A6C20 @ =gUnknown_2037F1A - b _080A6C26 - .align 2, 0 -_080A6C1C: .4byte gUnknown_2037F02 -_080A6C20: .4byte gUnknown_2037F1A -_080A6C24: - ldr r0, _080A6C44 @ =gUnknown_2037F1B -_080A6C26: - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80A6B0C - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r1, _080A6C48 @ =sub_80A6C50 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6C4C @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6C44: .4byte gUnknown_2037F1B -_080A6C48: .4byte sub_80A6C50 -_080A6C4C: .4byte sub_8074F50 - thumb_func_end sub_80A6C08 - - thumb_func_start sub_80A6C50 -sub_80A6C50: @ 80A6C50 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080A6C76 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080A6C7C @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6C80 @ =sub_8074F50 - str r0, [r4, 0x1C] -_080A6C76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6C7C: .4byte move_anim_8074EE0 -_080A6C80: .4byte sub_8074F50 - thumb_func_end sub_80A6C50 - - thumb_func_start sub_80A6C84 -sub_80A6C84: @ 80A6C84 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r0, _080A6C98 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6CA0 - ldr r0, _080A6C9C @ =gUnknown_2037F1A - b _080A6CA2 - .align 2, 0 -_080A6C98: .4byte gUnknown_2037F02 -_080A6C9C: .4byte gUnknown_2037F1A -_080A6CA0: - ldr r0, _080A6CF4 @ =gUnknown_2037F1B -_080A6CA2: - ldrb r5, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - strh r0, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bgt _080A6CCA - movs r0, 0xA - strh r0, [r4, 0x22] -_080A6CCA: - movs r0, 0x1 - strh r0, [r4, 0x2E] - strh r6, [r4, 0x30] - adds r1, r4, 0 - adds r1, 0x43 - ldrb r0, [r1] - strh r0, [r4, 0x32] - ldrb r0, [r1] - adds r0, 0x4 - strh r0, [r4, 0x34] - strh r6, [r4, 0x36] - ldr r1, _080A6CF8 @ =sub_80A6D00 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6CFC @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6CF4: .4byte gUnknown_2037F1B -_080A6CF8: .4byte sub_80A6D00 -_080A6CFC: .4byte sub_8074F50 - thumb_func_end sub_80A6C84 - - thumb_func_start sub_80A6D00 -sub_80A6D00: @ 80A6D00 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x36] - adds r0, 0x1 - strh r0, [r1, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080A6D16 - ldr r0, _080A6D1C @ =sub_80A6D20 - str r0, [r1, 0x1C] -_080A6D16: - pop {r0} - bx r0 - .align 2, 0 -_080A6D1C: .4byte sub_80A6D20 - thumb_func_end sub_80A6D00 - - thumb_func_start sub_80A6D20 -sub_80A6D20: @ 80A6D20 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0x4 - strh r1, [r2, 0x30] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFE - ble _080A6D52 - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080A6D4C - strh r0, [r2, 0x24] - ldr r0, _080A6D48 @ =sub_80A6C50 - str r0, [r2, 0x1C] - b _080A6D88 - .align 2, 0 -_080A6D48: .4byte sub_80A6C50 -_080A6D4C: - movs r0, 0xFF - ands r1, r0 - strh r1, [r2, 0x30] -_080A6D52: - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0x4F - ble _080A6D62 - ldrh r0, [r2, 0x34] - adds r1, r2, 0 - adds r1, 0x43 - strb r0, [r1] -_080A6D62: - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0x9F - ble _080A6D72 - ldrh r0, [r2, 0x32] - adds r1, r2, 0 - adds r1, 0x43 - strb r0, [r1] -_080A6D72: - ldr r1, _080A6D8C @ =gUnknown_825E074 - movs r3, 0x30 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 19 - asrs r1, r0, 1 - adds r0, r1 - strh r0, [r2, 0x24] -_080A6D88: - pop {r0} - bx r0 - .align 2, 0 -_080A6D8C: .4byte gUnknown_825E074 - thumb_func_end sub_80A6D20 - - thumb_func_start sub_80A6D90 -sub_80A6D90: @ 80A6D90 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080A6DA4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6DAC - ldr r0, _080A6DA8 @ =gUnknown_2037F1A - b _080A6DAE - .align 2, 0 -_080A6DA4: .4byte gUnknown_2037F02 -_080A6DA8: .4byte gUnknown_2037F1A -_080A6DAC: - ldr r0, _080A6DD0 @ =gUnknown_2037F1B -_080A6DAE: - ldrb r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A6B0C - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A6DD4 - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAnim - movs r0, 0x2 - b _080A6DDE - .align 2, 0 -_080A6DD0: .4byte gUnknown_2037F1B -_080A6DD4: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x3 -_080A6DDE: - strh r0, [r5, 0x2E] - ldr r0, _080A6DEC @ =sub_80A6DF0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6DEC: .4byte sub_80A6DF0 - thumb_func_end sub_80A6D90 - - thumb_func_start sub_80A6DF0 -sub_80A6DF0: @ 80A6DF0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080A6E1E - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r1, _080A6E24 @ =sub_80A6E2C - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A6E28 @ =sub_8074F6C - str r0, [r4, 0x1C] -_080A6E1E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6E24: .4byte sub_80A6E2C -_080A6E28: .4byte sub_8074F6C - thumb_func_end sub_80A6DF0 - - thumb_func_start sub_80A6E2C -sub_80A6E2C: @ 80A6E2C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080A6E44 - adds r0, r1, 0 - bl DestroyAnimSprite -_080A6E44: - pop {r0} - bx r0 - thumb_func_end sub_80A6E2C - - thumb_func_start sub_80A6E48 -sub_80A6E48: @ 80A6E48 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r5, _080A6E8C @ =gUnknown_2037F02 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_8074FF8 - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x34] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x36] - ldr r1, _080A6E90 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080A6E94 @ =sub_8074BE4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6E8C: .4byte gUnknown_2037F02 -_080A6E90: .4byte move_anim_8074EE0 -_080A6E94: .4byte sub_8074BE4 - thumb_func_end sub_80A6E48 - - thumb_func_start sub_80A6E98 -sub_80A6E98: @ 80A6E98 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A6EAC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A6EB4 - ldr r0, _080A6EB0 @ =gUnknown_2037F1A - b _080A6EB6 - .align 2, 0 -_080A6EAC: .4byte gUnknown_2037F02 -_080A6EB0: .4byte gUnknown_2037F1A -_080A6EB4: - ldr r0, _080A6ED0 @ =gUnknown_2037F1B -_080A6EB6: - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80A6B0C - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x30] - ldr r0, _080A6ED4 @ =sub_80A6ED8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6ED0: .4byte gUnknown_2037F1B -_080A6ED4: .4byte sub_80A6ED8 - thumb_func_end sub_80A6E98 - - thumb_func_start sub_80A6ED8 -sub_80A6ED8: @ 80A6ED8 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080A6F0A - cmp r0, 0x1 - bgt _080A6EEE - cmp r0, 0 - beq _080A6EF4 - b _080A6F38 -_080A6EEE: - cmp r0, 0x2 - beq _080A6F24 - b _080A6F38 -_080A6EF4: - ldrh r0, [r1, 0x26] - subs r0, 0x3 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080A6F38 - b _080A6F1C -_080A6F0A: - ldrh r0, [r1, 0x26] - adds r0, 0x3 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080A6F38 -_080A6F1C: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _080A6F38 -_080A6F24: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _080A6F38 - adds r0, r1, 0 - bl DestroyAnimSprite -_080A6F38: - pop {r0} - bx r0 - thumb_func_end sub_80A6ED8 - - thumb_func_start sub_80A6F3C -sub_80A6F3C: @ 80A6F3C - push {r4,lr} - adds r4, r0, 0 - ldr r3, _080A6F88 @ =gSprites - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r4, 0x30] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x30] - movs r0, 0x2E - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _080A6F7A - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] - adds r0, r4, 0 - bl move_anim_8074EE0 -_080A6F7A: - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6F88: .4byte gSprites - thumb_func_end sub_80A6F3C - - thumb_func_start sub_80A6F8C -sub_80A6F8C: @ 80A6F8C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080A6FD4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080A6FD8 @ =gUnknown_2023D44 - ldr r0, _080A6FDC @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A6FE4 - ldr r0, _080A6FE0 @ =gUnknown_2037F02 - ldrh r1, [r5, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r5, 0x20] - adds r1, r0, 0 - b _080A6FEE - .align 2, 0 -_080A6FD4: .4byte gUnknown_2037F1A -_080A6FD8: .4byte gUnknown_2023D44 -_080A6FDC: .4byte gUnknown_2037F1B -_080A6FE0: .4byte gUnknown_2037F02 -_080A6FE4: - ldr r1, _080A7018 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] -_080A6FEE: - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - strh r6, [r5, 0x32] - ldr r0, _080A701C @ =sub_80A6F3C - str r0, [r5, 0x1C] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A7018: .4byte gUnknown_2037F02 -_080A701C: .4byte sub_80A6F3C - thumb_func_end sub_80A6F8C - - thumb_func_start sub_80A7020 -sub_80A7020: @ 80A7020 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080A704C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x38] - ldr r0, _080A7050 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080A7054 @ =sub_80A7058 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A704C: .4byte gUnknown_2037F02 -_080A7050: .4byte sub_8074C44 -_080A7054: .4byte sub_80A7058 - thumb_func_end sub_80A7020 - - thumb_func_start sub_80A7058 -sub_80A7058: @ 80A7058 - push {lr} - ldrh r1, [r0, 0x30] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - adds r1, 0xF - strh r1, [r0, 0x36] - ldr r1, _080A7078 @ =sub_8075590 - str r1, [r0, 0x1C] - ldr r1, _080A707C @ =sub_80A7080 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080A7078: .4byte sub_8075590 -_080A707C: .4byte sub_80A7080 - thumb_func_end sub_80A7058 - - thumb_func_start sub_80A7080 -sub_80A7080: @ 80A7080 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x38] - movs r3, 0x38 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080A7096 - adds r0, r1, 0 - bl DestroyAnimSprite - b _080A709A -_080A7096: - subs r0, r2, 0x1 - strh r0, [r1, 0x38] -_080A709A: - pop {r0} - bx r0 - thumb_func_end sub_80A7080 - - thumb_func_start sub_80A70A0 -sub_80A70A0: @ 80A70A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A70CC @ =gUnknown_2023D44 - ldr r0, _080A70D0 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_80758E0 - ldr r1, _080A70D4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A70D8 @ =sub_80A70DC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A70CC: .4byte gUnknown_2023D44 -_080A70D0: .4byte gUnknown_2037F1A -_080A70D4: .4byte gTasks -_080A70D8: .4byte sub_80A70DC - thumb_func_end sub_80A70A0 - - thumb_func_start sub_80A70DC -sub_80A70DC: @ 80A70DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A710C @ =gUnknown_2023D44 - ldr r0, _080A7110 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r1, r0, r1 - ldrb r4, [r1] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A7118 - ldr r1, _080A7114 @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - negs r0, r0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r6, r2, 0 - b _080A7126 - .align 2, 0 -_080A710C: .4byte gUnknown_2023D44 -_080A7110: .4byte gUnknown_2037F1A -_080A7114: .4byte gTasks -_080A7118: - ldr r2, _080A7158 @ =gTasks - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - ldrh r3, [r0, 0x8] - adds r6, r1, 0 -_080A7126: - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - bl obj_id_set_rotscale - ldr r1, _080A7158 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A7160 - ldrh r0, [r1, 0x8] - adds r0, 0xB0 - strh r0, [r1, 0x8] - ldr r1, _080A715C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - adds r1, 0x1 - b _080A718A - .align 2, 0 -_080A7158: .4byte gTasks -_080A715C: .4byte gSprites -_080A7160: - cmp r0, 0x1 - bne _080A7176 - ldrh r0, [r1, 0xE] - adds r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - bne _080A71D0 - movs r0, 0x2 - b _080A71CE -_080A7176: - ldrh r0, [r1, 0x8] - subs r0, 0xB0 - strh r0, [r1, 0x8] - ldr r1, _080A71C4 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - subs r1, 0x1 -_080A718A: - strh r1, [r0, 0x26] - adds r0, r4, 0 - bl sub_80759DC - ldr r0, _080A71C8 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r2, [r1, r3] - movs r0, 0xF2 - lsls r0, 4 - cmp r2, r0 - beq _080A71AA - cmp r2, 0 - bne _080A71D0 -_080A71AA: - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bne _080A71CC - adds r0, r4, 0 - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _080A71D0 - .align 2, 0 -_080A71C4: .4byte gSprites -_080A71C8: .4byte gTasks -_080A71CC: - adds r0, r2, 0x1 -_080A71CE: - strh r0, [r1, 0xA] -_080A71D0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A70DC - - thumb_func_start sub_80A71D8 -sub_80A71D8: @ 80A71D8 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080A71FC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A7204 - ldr r0, _080A7200 @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - adds r5, r0, 0 - b _080A7210 - .align 2, 0 -_080A71FC: .4byte gUnknown_2037F1A -_080A7200: .4byte gUnknown_2037F02 -_080A7204: - ldr r1, _080A7244 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r5, r1, 0 -_080A7210: - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080A7248 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A724C - adds r3, r4, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x1 - adds r2, r0, 0 - orrs r2, r1 - strb r2, [r3] - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080A7260 - movs r0, 0x2 - orrs r2, r0 - strb r2, [r3] - b _080A7260 - .align 2, 0 -_080A7244: .4byte gUnknown_2037F02 -_080A7248: .4byte gUnknown_2037F1A -_080A724C: - movs r2, 0x4 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080A7260 - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] -_080A7260: - ldr r0, _080A7274 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080A7278 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7274: .4byte sub_8074F6C -_080A7278: .4byte DestroyAnimSprite - thumb_func_end sub_80A71D8 - - thumb_func_start sub_80A727C -sub_80A727C: @ 80A727C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r0, _080A7298 @ =sub_8074F50 - str r0, [r4, 0x1C] - ldr r1, _080A729C @ =sub_80A72A0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7298: .4byte sub_8074F50 -_080A729C: .4byte sub_80A72A0 - thumb_func_end sub_80A727C - - thumb_func_start sub_80A72A0 -sub_80A72A0: @ 80A72A0 - push {lr} - movs r1, 0x6 - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - subs r1, 0x20 - strh r1, [r0, 0x36] - ldr r1, _080A72C0 @ =sub_8075590 - str r1, [r0, 0x1C] - ldr r1, _080A72C4 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080A72C0: .4byte sub_8075590 -_080A72C4: .4byte DestroyAnimSprite - thumb_func_end sub_80A72A0 - - thumb_func_start sub_80A72C8 -sub_80A72C8: @ 80A72C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A72EC - ldr r1, _080A72E8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - b _080A730E - .align 2, 0 -_080A72E8: .4byte gUnknown_2037F02 -_080A72EC: - ldr r0, _080A73B4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A730E - ldr r1, _080A73B8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080A730E: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r4, _080A73BC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r6, _080A73B8 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x6] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - adds r7, r0, 0 - ldrh r1, [r5, 0x20] - mov r2, r8 - lsls r0, r2, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 24 - adds r0, r1 - lsrs r4, r0, 16 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A7380 - ldr r2, _080A73C0 @ =0xffffa000 - adds r0, r4, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_080A7380: - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - adds r0, r5, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - mov r0, r8 - strh r0, [r5, 0x32] - strh r7, [r5, 0x36] - ldr r0, _080A73C4 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A73C8 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A73B4: .4byte gUnknown_2037F1A -_080A73B8: .4byte gUnknown_2037F02 -_080A73BC: .4byte gUnknown_2037F1B -_080A73C0: .4byte 0xffffa000 -_080A73C4: .4byte sub_8075590 -_080A73C8: .4byte DestroyAnimSprite - thumb_func_end sub_80A72C8 - - thumb_func_start sub_80A73CC -sub_80A73CC: @ 80A73CC - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - subs r1, r0, 0x1 - strh r1, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080A73F6 - ldr r2, _080A73FC @ =gTasks - movs r0, 0x3C - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0xA] - subs r1, 0x1 - strh r1, [r0, 0xA] - adds r0, r3, 0 - bl DestroySprite -_080A73F6: - pop {r0} - bx r0 - .align 2, 0 -_080A73FC: .4byte gTasks - thumb_func_end sub_80A73CC - - thumb_func_start sub_80A7400 -sub_80A7400: @ 80A7400 - push {r4,lr} - adds r2, r0, 0 - movs r0, 0x3C - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080A7430 @ =gTasks - adds r4, r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _080A7434 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x38] - adds r0, r1 - strh r0, [r2, 0x38] - ldrh r0, [r2, 0x36] - ldrh r3, [r2, 0x3A] - adds r0, r3 - b _080A7442 - .align 2, 0 -_080A7430: .4byte gTasks -_080A7434: - ldrh r0, [r2, 0x38] - ldrh r1, [r2, 0x34] - subs r0, r1 - strh r0, [r2, 0x38] - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x36] - subs r0, r1 -_080A7442: - strh r0, [r2, 0x3A] - ldrh r0, [r2, 0x38] - ldrh r1, [r2, 0x30] - adds r3, r0, r1 - strh r3, [r2, 0x30] - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r4, 0x16] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7466 - lsls r0, r3, 16 - lsrs r0, 24 - negs r0, r0 - b _080A746A -_080A7466: - lsls r0, r3, 16 - lsrs r0, 24 -_080A746A: - strh r0, [r2, 0x24] - ldrh r1, [r4, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A747E - ldrh r0, [r2, 0x32] - lsrs r0, 8 - negs r0, r0 - b _080A7482 -_080A747E: - ldrh r0, [r2, 0x32] - lsrs r0, 8 -_080A7482: - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - subs r1, r0, 0x1 - strh r1, [r2, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080A7498 - movs r0, 0x1E - strh r0, [r2, 0x2E] - ldr r0, _080A74A0 @ =sub_80A73CC - str r0, [r2, 0x1C] -_080A7498: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A74A0: .4byte sub_80A73CC - thumb_func_end sub_80A7400 - - thumb_func_start sub_80A74A4 -sub_80A74A4: @ 80A74A4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080A74E8 @ =gTasks - adds r6, r0, r1 - ldrh r2, [r6, 0x16] - movs r1, 0x2 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - ldrh r3, [r7, 0x30] - adds r2, r0, r3 - strh r2, [r7, 0x30] - ldrh r0, [r6, 0x18] - ands r1, r0 - ldrh r0, [r7, 0x32] - adds r1, r0 - strh r1, [r7, 0x32] - ldrh r1, [r6, 0x16] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A74EC - lsls r0, r2, 16 - lsrs r0, 24 - negs r0, r0 - b _080A74F0 - .align 2, 0 -_080A74E8: .4byte gTasks -_080A74EC: - lsls r0, r2, 16 - lsrs r0, 24 -_080A74F0: - strh r0, [r7, 0x24] - ldrh r1, [r6, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7504 - ldrh r0, [r7, 0x32] - lsrs r0, 8 - negs r0, r0 - b _080A7508 -_080A7504: - ldrh r0, [r7, 0x32] - lsrs r0, 8 -_080A7508: - strh r0, [r7, 0x26] - ldrh r0, [r7, 0x2E] - subs r1, r0, 0x1 - strh r1, [r7, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080A75D4 - movs r4, 0 - movs r0, 0x8 - strh r0, [r7, 0x2E] - movs r0, 0x4 - strh r0, [r6, 0x12] - movs r0, 0x80 - lsls r0, 5 - bl sub_80D8B90 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r7, 0x24] - ldrh r1, [r7, 0x20] - adds r2, r0, r1 - strh r2, [r7, 0x20] - ldrh r0, [r7, 0x26] - ldrh r3, [r7, 0x22] - adds r0, r3 - strh r0, [r7, 0x22] - strh r4, [r7, 0x26] - strh r4, [r7, 0x24] - ldrh r3, [r6, 0x1E] - movs r0, 0x1E - ldrsh r1, [r6, r0] - lsls r0, r2, 16 - asrs r0, 16 - cmp r1, r0 - blt _080A7552 - subs r0, r3, r2 - b _080A7554 -_080A7552: - subs r0, r2, r3 -_080A7554: - lsls r0, 24 - lsrs r4, r0, 16 - ldrh r3, [r6, 0x20] - movs r0, 0x20 - ldrsh r1, [r6, r0] - ldrh r2, [r7, 0x22] - movs r6, 0x22 - ldrsh r0, [r7, r6] - cmp r1, r0 - blt _080A756C - subs r0, r3, r2 - b _080A756E -_080A756C: - subs r0, r2, r3 -_080A756E: - lsls r0, 24 - lsrs r0, 16 - mov r8, r0 - movs r0, 0 - strh r0, [r7, 0x32] - strh r0, [r7, 0x30] - strh r0, [r7, 0x3A] - strh r0, [r7, 0x38] - lsls r0, r4, 16 - asrs r0, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r5, 0 - bl sub_80D8AA0 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - movs r6, 0xE0 - lsls r6, 1 - adds r0, r6, 0 - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - strh r0, [r7, 0x34] - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - adds r1, r5, 0 - bl sub_80D8AA0 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r6, 0 - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - strh r0, [r7, 0x36] - ldr r0, _080A75E0 @ =sub_80A7400 - str r0, [r7, 0x1C] -_080A75D4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A75E0: .4byte sub_80A7400 - thumb_func_end sub_80A74A4 - - thumb_func_start sub_80A75E4 -sub_80A75E4: @ 80A75E4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A7608 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A7602 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080A7602: - pop {r0} - bx r0 - .align 2, 0 -_080A7608: .4byte gTasks - thumb_func_end sub_80A75E4 - - thumb_func_start sub_80A760C -sub_80A760C: @ 80A760C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080A7660 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - subs r1, r0, 0x1 - strh r1, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bgt _080A76E0 - ldr r0, _080A7664 @ =gUnknown_83E3C28 - movs r2, 0x1A - ldrsh r1, [r5, r2] - movs r3, 0x1C - ldrsh r2, [r5, r3] - ldrb r3, [r5, 0xC] - ldrb r4, [r5, 0xA] - subs r3, r4 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r0, 4 - add r0, r12 - lsls r0, 2 - ldr r1, _080A7668 @ =gSprites - adds r6, r0, r1 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080A766C - cmp r0, 0x2 - beq _080A7682 - b _080A7690 - .align 2, 0 -_080A7660: .4byte gTasks -_080A7664: .4byte gUnknown_83E3C28 -_080A7668: .4byte gSprites -_080A766C: - ldrb r2, [r6, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x18 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x57 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x3] - b _080A7690 -_080A7682: - ldrb r0, [r6, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r6, 0x3] -_080A7690: - ldr r3, _080A76E8 @ =gTasks - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 3 - adds r4, r2, r3 - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x14] - subs r0, r1 - strh r0, [r6, 0x2E] - strh r7, [r6, 0x3C] - movs r1, 0xA - ldrsh r0, [r4, r1] - adds r0, 0xD - lsls r0, 1 - adds r0, r2 - adds r3, 0x8 - adds r0, r3 - mov r2, r12 - strh r2, [r0] - ldrh r0, [r4, 0xE] - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0x3F - negs r0, r0 - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x93 - bl PlaySE12WithPanning - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0x2 - ble _080A76E0 - ldr r0, _080A76EC @ =sub_80A75E4 - str r0, [r4] -_080A76E0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A76E8: .4byte gTasks -_080A76EC: .4byte sub_80A75E4 - thumb_func_end sub_80A760C - - thumb_func_start sub_80A76F0 -sub_80A76F0: @ 80A76F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r9, r0 - movs r5, 0 - mov r0, sp - mov r1, r9 - strh r1, [r0] - mov r4, sp - adds r4, 0x2 - strh r1, [r4] - bl sub_8073788 - lsls r0, 24 - mov r10, r4 - cmp r0, 0 - beq _080A775C - ldr r1, _080A774C @ =gTasks - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x10] - ldr r3, _080A7750 @ =gUnknown_2037F02 - ldrh r0, [r3] - negs r0, r0 - strh r0, [r3] - ldrh r1, [r3, 0x4] - movs r0, 0x1 - ands r0, r1 - mov r8, r2 - cmp r0, 0 - beq _080A7754 - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strh r0, [r3, 0x4] - b _080A77B6 - .align 2, 0 -_080A774C: .4byte gTasks -_080A7750: .4byte gUnknown_2037F02 -_080A7754: - movs r0, 0x1 - orrs r0, r1 - strh r0, [r3, 0x4] - b _080A77B6 -_080A775C: - ldr r1, _080A77A0 @ =gUnknown_2023BD6 - ldr r0, _080A77A4 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - lsls r2, r7, 2 - mov r8, r2 - cmp r0, 0 - bne _080A77B6 - ldr r1, _080A77A8 @ =gTasks - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x10] - ldr r2, _080A77AC @ =gUnknown_2037F02 - ldrh r0, [r2] - negs r0, r0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - negs r0, r0 - strh r0, [r2, 0x2] - ldrh r1, [r2, 0x4] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080A77B0 - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - b _080A77B4 - .align 2, 0 -_080A77A0: .4byte gUnknown_2023BD6 -_080A77A4: .4byte gUnknown_2037F1B -_080A77A8: .4byte gTasks -_080A77AC: .4byte gUnknown_2037F02 -_080A77B0: - movs r0, 0x1 - orrs r0, r1 -_080A77B4: - strh r0, [r2, 0x4] -_080A77B6: - ldr r5, _080A7810 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - ldr r1, _080A7814 @ =gTasks - mov r3, r8 - adds r4, r3, r7 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - adds r6, r0, 0 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - mov r9, r0 - ldr r0, _080A7818 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7820 - ldr r4, _080A781C @ =gUnknown_2037F1B - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A7820 - ldrb r0, [r4] - movs r1, 0 - mov r2, sp - mov r3, r10 - bl sub_8076D9C - b _080A7842 - .align 2, 0 -_080A7810: .4byte gUnknown_2037F1A -_080A7814: .4byte gTasks -_080A7818: .4byte gBattleTypeFlags -_080A781C: .4byte gUnknown_2037F1B -_080A7820: - mov r5, sp - ldr r4, _080A787C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r1, r10 - strh r0, [r1] -_080A7842: - mov r4, sp - ldr r0, _080A7880 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - mov r2, sp - ldr r3, _080A7884 @ =gUnknown_2037F02 - ldrh r0, [r3] - ldrh r2, [r2] - adds r0, r2 - strh r0, [r1, 0x1E] - strh r0, [r4] - ldrh r0, [r3, 0x2] - mov r3, r10 - ldrh r3, [r3] - adds r0, r3 - strh r0, [r1, 0x20] - mov r1, r10 - strh r0, [r1] - mov r0, sp - ldrh r2, [r0] - movs r3, 0 - ldrsh r0, [r0, r3] - adds r1, r6, 0 - cmp r0, r1 - blt _080A7888 - subs r0, r2, r1 - b _080A788A - .align 2, 0 -_080A787C: .4byte gUnknown_2037F1B -_080A7880: .4byte gTasks -_080A7884: .4byte gUnknown_2037F02 -_080A7888: - subs r0, r1, r2 -_080A788A: - lsls r0, 16 - lsrs r0, 16 - lsls r4, r0, 16 - asrs r4, 16 - ldr r5, _080A7900 @ =gUnknown_2037F02 - ldrh r1, [r5, 0x4] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - lsls r0, 16 - asrs r0, 16 - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - ldr r2, _080A7904 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r6, r1, r2 - strh r0, [r6, 0x12] - movs r1, 0x12 - ldrsh r0, [r6, r1] - movs r1, 0x80 - bl sub_80D8AA0 - strh r0, [r6, 0x14] - ldrh r0, [r5, 0x4] - strh r0, [r6, 0x16] - mov r2, r10 - ldrh r1, [r2] - movs r3, 0 - ldrsh r0, [r2, r3] - mov r4, r9 - cmp r0, r4 - blt _080A7908 - subs r4, r1, r4 - lsls r4, 16 - asrs r4, 16 - movs r1, 0x12 - ldrsh r0, [r6, r1] - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - movs r1, 0x2 - negs r1, r1 - ands r1, r0 - strh r1, [r6, 0x18] - b _080A7928 - .align 2, 0 -_080A7900: .4byte gUnknown_2037F02 -_080A7904: .4byte gTasks -_080A7908: - subs r4, r1 - lsls r4, 16 - asrs r4, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - bl sub_80D8B90 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_80D8AA0 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r6, 0x18] -_080A7928: - ldr r1, _080A7968 @ =gTasks - mov r3, r8 - adds r0, r3, r7 - lsls r0, 3 - adds r5, r0, r1 - ldr r4, _080A796C @ =gUnknown_2037F02 - ldrh r0, [r4, 0x6] - strh r0, [r5, 0xE] - ldrh r1, [r4, 0x8] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080A7978 - movs r0, 0x80 - eors r0, r1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _080A79A0 - ldr r0, _080A7970 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A7974 @ =0x0000ffc0 - adds r1, r2, 0 - ldrh r4, [r4, 0x8] - adds r1, r4 - adds r0, r1 - b _080A79B0 - .align 2, 0 -_080A7968: .4byte gTasks -_080A796C: .4byte gUnknown_2037F02 -_080A7970: .4byte gUnknown_2037F1B -_080A7974: .4byte 0x0000ffc0 -_080A7978: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _080A79A0 - ldr r0, _080A7998 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080A799C @ =0x0000ffc0 - adds r1, r3, 0 - ldrh r4, [r4, 0x8] - adds r1, r4 - adds r0, r1 - b _080A79B0 - .align 2, 0 -_080A7998: .4byte gUnknown_2037F1B -_080A799C: .4byte 0x0000ffc0 -_080A79A0: - ldr r0, _080A79DC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x8] - subs r0, r1 -_080A79B0: - strh r0, [r5, 0xC] - ldr r0, _080A79E0 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bgt _080A79C8 - movs r0, 0x3 - strh r0, [r1, 0xC] -_080A79C8: - ldr r0, _080A79E4 @ =sub_80A760C - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A79DC: .4byte gUnknown_2037F1B -_080A79E0: .4byte gTasks -_080A79E4: .4byte sub_80A760C - thumb_func_end sub_80A76F0 - - thumb_func_start sub_80A79E8 -sub_80A79E8: @ 80A79E8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r0, _080A7A10 @ =gUnknown_83E3D18 - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4, 0x2E] - ldr r0, _080A7A14 @ =sub_80A7A18 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7A10: .4byte gUnknown_83E3D18 -_080A7A14: .4byte sub_80A7A18 - thumb_func_end sub_80A79E8 - - thumb_func_start sub_80A7A18 -sub_80A7A18: @ 80A7A18 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080A7A7C - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r5, [r4, 0x2E] - ldr r1, _080A7A84 @ =gPlttBufferFaded - adds r0, r5, 0 - adds r0, 0x8 - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - adds r6, r1, 0 - adds r1, r5, 0 - adds r1, 0x9 - lsls r0, r5, 1 - adds r0, r6 - adds r2, r0, 0 - adds r2, 0x10 - movs r3, 0x7 - lsls r1, 1 - adds r1, r6 -_080A7A50: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080A7A50 - adds r0, r5, 0 - adds r0, 0xF - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - bne _080A7A7C - adds r0, r4, 0 - bl DestroyAnimSprite -_080A7A7C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7A84: .4byte gPlttBufferFaded - thumb_func_end sub_80A7A18 - - thumb_func_start sub_80A7A88 -sub_80A7A88: @ 80A7A88 - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r4, _080A7B28 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A7B2C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _080A7B30 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A7ACC - ldrh r0, [r4, 0x4] - negs r0, r0 - strh r0, [r4, 0x4] -_080A7ACC: - lsls r0, r6, 16 - asrs r0, 16 - ldrh r1, [r4, 0x4] - adds r0, r1 - lsls r0, 16 - ldrh r1, [r5, 0x20] - lsrs r6, r0, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - strh r6, [r5, 0x32] - strh r7, [r5, 0x36] - ldr r0, _080A7B34 @ =sub_80756A4 - str r0, [r5, 0x1C] - ldr r1, _080A7B38 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7B28: .4byte gUnknown_2037F1B -_080A7B2C: .4byte gUnknown_2037F02 -_080A7B30: .4byte gUnknown_2037F1A -_080A7B34: .4byte sub_80756A4 -_080A7B38: .4byte DestroyAnimSprite - thumb_func_end sub_80A7A88 - - thumb_func_start sub_80A7B3C -sub_80A7B3C: @ 80A7B3C - ldr r1, _080A7B4C @ =0x0000fff0 - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - ldr r1, _080A7B50 @ =sub_80A7B54 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A7B4C: .4byte 0x0000fff0 -_080A7B50: .4byte sub_80A7B54 - thumb_func_end sub_80A7B3C - - thumb_func_start sub_80A7B54 -sub_80A7B54: @ 80A7B54 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldr r0, _080A7BC0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A7B78 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] -_080A7B78: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x5 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _080A7BB8 - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080A7BB8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A7BB8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7BC0: .4byte gUnknown_2037F1A - thumb_func_end sub_80A7B54 - - thumb_func_start sub_80A7BC4 -sub_80A7BC4: @ 80A7BC4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r5, _080A7C10 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080A7C14 @ =sub_8075590 - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080A7C18 @ =sub_80A7C1C - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7C10: .4byte gUnknown_2037F1B -_080A7C14: .4byte sub_8075590 -_080A7C18: .4byte sub_80A7C1C - thumb_func_end sub_80A7BC4 - - thumb_func_start sub_80A7C1C -sub_80A7C1C: @ 80A7C1C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3F - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x9F - bl PlaySE12WithPanning - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - movs r2, 0 - movs r1, 0x7 - adds r0, r4, 0 - adds r0, 0x3C -_080A7C50: - strh r2, [r0] - subs r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080A7C50 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - ands r0, r1 - ldr r2, _080A7C98 @ =0x0000fff4 - adds r1, r2, 0 - subs r1, r0 - strh r1, [r4, 0x3A] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA0 - bl __umodsi3 - adds r0, 0xA0 - strh r0, [r4, 0x3C] - ldr r0, _080A7C9C @ =sub_80A7CA0 - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7C98: .4byte 0x0000fff4 -_080A7C9C: .4byte sub_80A7CA0 - thumb_func_end sub_80A7C1C - - thumb_func_start sub_80A7CA0 -sub_80A7CA0: @ 80A7CA0 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - ldrh r2, [r4, 0x2E] - adds r0, r1, r2 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r2, r0, 24 - strh r2, [r4, 0x24] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7CBE - negs r0, r2 - strh r0, [r4, 0x24] -_080A7CBE: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x8 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _080A7CFE - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A7CFE - adds r0, r4, 0 - bl DestroyAnimSprite -_080A7CFE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7CA0 - - thumb_func_start sub_80A7D04 -sub_80A7D04: @ 80A7D04 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r0, _080A7D54 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A7D22 - ldrh r0, [r4, 0x22] - adds r0, 0x10 - strh r0, [r4, 0x22] -_080A7D22: - ldr r1, _080A7D58 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0xC] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldr r0, _080A7D5C @ =sub_8074A80 - str r0, [r4, 0x1C] - ldr r1, _080A7D60 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7D54: .4byte gUnknown_2037F1A -_080A7D58: .4byte gUnknown_2037F02 -_080A7D5C: .4byte sub_8074A80 -_080A7D60: .4byte DestroyAnimSprite - thumb_func_end sub_80A7D04 - - thumb_func_start sub_80A7D64 -sub_80A7D64: @ 80A7D64 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r7, 0x20 - ldr r4, _080A7DE0 @ =0x0000ffe0 - movs r0, 0x10 - mov r8, r0 - ldr r6, _080A7DE4 @ =0x0000fff0 - ldr r0, _080A7DE8 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080A7D90 - adds r7, r4, 0 - movs r4, 0x20 - mov r8, r6 - movs r6, 0x10 - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080A7D90: - lsls r0, r7, 16 - asrs r0, 16 - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080A7DEC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - add r0, r8 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, _080A7DF0 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A7DF4 @ =sub_80A7DF8 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7DE0: .4byte 0x0000ffe0 -_080A7DE4: .4byte 0x0000fff0 -_080A7DE8: .4byte gUnknown_2037F02 -_080A7DEC: .4byte gUnknown_2037F1B -_080A7DF0: .4byte sub_8075590 -_080A7DF4: .4byte sub_80A7DF8 - thumb_func_end sub_80A7D64 - - thumb_func_start sub_80A7DF8 -sub_80A7DF8: @ 80A7DF8 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A7E0E - adds r0, r2, 0 - bl DestroyAnimSprite -_080A7E0E: - pop {r0} - bx r0 - thumb_func_end sub_80A7DF8 - - thumb_func_start sub_80A7E14 -sub_80A7E14: @ 80A7E14 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r0, 0x20 - mov r8, r0 - ldr r4, _080A7EA8 @ =0x0000ffe0 - movs r2, 0x10 - mov r9, r2 - ldr r6, _080A7EAC @ =0x0000fff0 - ldr r7, _080A7EB0 @ =gUnknown_2037F02 - ldrh r1, [r7] - movs r2, 0 - ldrsh r0, [r7, r2] - cmp r0, 0 - beq _080A7E48 - mov r8, r4 - movs r4, 0x20 - mov r9, r6 - movs r6, 0x10 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim -_080A7E48: - mov r0, r8 - lsls r1, r0, 16 - asrs r1, 16 - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - movs r0, 0x6 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - ldr r4, _080A7EB4 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - add r0, r9 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r7] - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x2E] - strh r0, [r5, 0x3A] - ldr r0, _080A7EB8 @ =sub_80A7EBC - str r0, [r5, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A7EA8: .4byte 0x0000ffe0 -_080A7EAC: .4byte 0x0000fff0 -_080A7EB0: .4byte gUnknown_2037F02 -_080A7EB4: .4byte gUnknown_2037F1B -_080A7EB8: .4byte sub_80A7EBC - thumb_func_end sub_80A7E14 - - thumb_func_start sub_80A7EBC -sub_80A7EBC: @ 80A7EBC - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080A7F20 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A7F20 - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r2, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x2 - strh r0, [r4, 0x24] - ldr r0, _080A7F28 @ =0x0000fffe - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - eors r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x36] - strh r2, [r4, 0x34] - ldr r0, _080A7F2C @ =sub_80A7F30 - str r0, [r4, 0x1C] -_080A7F20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7F28: .4byte 0x0000fffe -_080A7F2C: .4byte sub_80A7F30 - thumb_func_end sub_80A7EBC - - thumb_func_start sub_80A7F30 -sub_80A7F30: @ 80A7F30 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A7F48 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] -_080A7F48: - ldrh r0, [r4, 0x34] - movs r1, 0x1 - eors r0, r1 - movs r1, 0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080A7F8A - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - strh r1, [r4, 0x36] - strh r1, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - movs r1, 0x1 - eors r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080A7F90 @ =sub_80A7F94 - str r0, [r4, 0x1C] -_080A7F8A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7F90: .4byte sub_80A7F94 - thumb_func_end sub_80A7F30 - - thumb_func_start sub_80A7F94 -sub_80A7F94: @ 80A7F94 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080A7FA8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A7FA8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7F94 - - thumb_func_start sub_80A7FB0 -sub_80A7FB0: @ 80A7FB0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80758E0 - adds r0, r4, 0 - movs r1, 0xD0 - movs r2, 0xD0 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _080A8008 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0 - bl sub_8075B48 - ldr r1, _080A800C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x50 - strh r1, [r0, 0x8] - ldr r1, _080A8010 @ =sub_80A8014 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8008: .4byte gSprites -_080A800C: .4byte gTasks -_080A8010: .4byte sub_80A8014 - thumb_func_end sub_80A7FB0 - - thumb_func_start sub_80A8014 -sub_80A8014: @ 80A8014 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A806C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080A8064 - movs r0, 0x1 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8075980 - ldr r1, _080A8070 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0x1 - bl sub_8075B48 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A8064: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A806C: .4byte gTasks -_080A8070: .4byte gSprites - thumb_func_end sub_80A8014 - - thumb_func_start sub_80A8074 -sub_80A8074: @ 80A8074 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A80C0 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x8] - movs r1, 0 - bl sub_80758E0 - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x10] - strh r5, [r4, 0x12] - strh r5, [r4, 0x14] - ldr r0, _080A80C4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - ldr r0, _080A80C8 @ =sub_80A80CC - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A80C0: .4byte gTasks -_080A80C4: .4byte gUnknown_2037F1A -_080A80C8: .4byte sub_80A80CC - thumb_func_end sub_80A8074 - - thumb_func_start sub_80A80CC -sub_80A80CC: @ 80A80CC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A80F0 @ =gTasks - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080A80E6 - b _080A81F6 -_080A80E6: - lsls r0, 2 - ldr r1, _080A80F4 @ =_080A80F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A80F0: .4byte gTasks -_080A80F4: .4byte _080A80F8 - .align 2, 0 -_080A80F8: - .4byte _080A8110 - .4byte _080A8158 - .4byte _080A818E - .4byte _080A8194 - .4byte _080A81A4 - .4byte _080A81D8 -_080A8110: - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080A8120 - cmp r0, 0x3 - beq _080A8120 - cmp r0, 0x6 - bne _080A8128 -_080A8120: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A8200 -_080A8128: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - adds r0, 0x28 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r1, 0x10 - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8076440 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _080A81F6 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - b _080A81D0 -_080A8158: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A81F6 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r1, 0x3 - bne _080A816E - strh r0, [r4, 0xC] - strh r1, [r4, 0xA] - b _080A81F6 -_080A816E: - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r2, 0x80 - lsls r2, 1 - strh r2, [r4, 0x10] - ldrb r0, [r4, 0x8] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8076440 - movs r0, 0x2 - strh r0, [r4, 0xA] - b _080A81F6 -_080A818E: - movs r0, 0 - strh r0, [r4, 0xA] - b _080A81F6 -_080A8194: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _080A81F6 - b _080A81CC -_080A81A4: - ldrh r0, [r4, 0xC] - adds r0, 0x2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - subs r0, 0x50 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r1, 0x10 - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8076440 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _080A81F6 -_080A81CC: - movs r0, 0 - strh r0, [r4, 0xC] -_080A81D0: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080A81F6 -_080A81D8: - ldrb r0, [r4, 0x8] - bl sub_8075980 - ldr r2, _080A81FC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x26] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A81F6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A81FC: .4byte gSprites - thumb_func_end sub_80A80CC - - thumb_func_start sub_80A8200 -sub_80A8200: @ 80A8200 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - blt _080A82DA - bl AllocOamMatrix - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xFF - bne _080A8244 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _080A8240 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram - b _080A82DA - .align 2, 0 -_080A8240: .4byte gSprites -_080A8244: - ldr r5, _080A82E8 @ =gSprites - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r4, r3, r5 - ldrb r1, [r4, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1F - ands r6, r0 - lsls r2, r6, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - ldrb r0, [r7, 0x16] - ldrb r1, [r7, 0xE] - subs r0, r1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r7, 0xE] - adds r0, 0x1 - strh r0, [r7, 0xE] - ldrh r0, [r7, 0x14] - adds r0, 0x1 - strh r0, [r7, 0x14] - movs r0, 0x10 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - movs r0, 0x6 - strh r0, [r4, 0x32] - adds r5, 0x1C - adds r3, r5 - ldr r0, _080A82EC @ =sub_80A82F0 - str r0, [r3] - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - movs r1, 0x10 - ldrsh r2, [r7, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x1] - movs r3, 0x4 - negs r3, r3 - ands r3, r0 - movs r0, 0x1 - orrs r3, r0 - strb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec -_080A82DA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A82E8: .4byte gSprites -_080A82EC: .4byte sub_80A82F0 - thumb_func_end sub_80A8200 - - thumb_func_start sub_80A82F0 -sub_80A82F0: @ 80A82F0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080A832E - ldr r3, _080A8334 @ =gTasks - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl obj_delete_but_dont_free_vram -_080A832E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8334: .4byte gTasks - thumb_func_end sub_80A82F0 - - thumb_func_start sub_80A8338 -sub_80A8338: @ 80A8338 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080A835C @ =gTasks - adds r4, r0, r1 - ldr r5, _080A8360 @ =gUnknown_2037F02 - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A8364 - adds r0, r2, 0 - bl DestroyAnimVisualTask - b _080A838A - .align 2, 0 -_080A835C: .4byte gTasks -_080A8360: .4byte gUnknown_2037F02 -_080A8364: - ldrb r0, [r5] - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - strh r1, [r4, 0x8] - strh r2, [r4, 0xA] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0xC] - strh r2, [r4, 0xE] - strh r2, [r4, 0x10] - ldr r2, _080A8390 @ =gUnknown_83E3E60 - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080A8394 @ =sub_80A8398 - str r0, [r4] -_080A838A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8390: .4byte gUnknown_83E3E60 -_080A8394: .4byte sub_80A8398 - thumb_func_end sub_80A8338 - - thumb_func_start sub_80A8398 -sub_80A8398: @ 80A8398 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080A83BC @ =gTasks - adds r4, r0, r1 - movs r0, 0xA - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080A8400 - cmp r5, 0x1 - bgt _080A83C0 - cmp r5, 0 - beq _080A83CA - b _080A84A8 - .align 2, 0 -_080A83BC: .4byte gTasks -_080A83C0: - cmp r5, 0x2 - beq _080A8434 - cmp r5, 0x3 - beq _080A8464 - b _080A84A8 -_080A83CA: - adds r0, r4, 0 - bl sub_8076308 - ldrh r2, [r4, 0x10] - adds r2, 0x3 - strh r2, [r4, 0x10] - ldr r3, _080A83FC @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080A84A8 - strh r5, [r4, 0xE] - b _080A845C - .align 2, 0 -_080A83FC: .4byte gSprites -_080A8400: - adds r0, r4, 0 - bl sub_8076308 - ldr r2, _080A8430 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - ldrh r2, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080A84A8 - movs r0, 0 - strh r0, [r4, 0xE] - b _080A845C - .align 2, 0 -_080A8430: .4byte gSprites -_080A8434: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A845C - ldr r2, _080A8458 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0x10] - subs r0, 0x2 - strh r0, [r4, 0x10] - b _080A84A8 - .align 2, 0 -_080A8458: .4byte gSprites -_080A845C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080A84A8 -_080A8464: - adds r0, r4, 0 - bl sub_8076308 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080A84A8 - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080A849C - ldr r2, _080A8498 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _080A84A8 - .align 2, 0 -_080A8498: .4byte gSprites -_080A849C: - ldrb r1, [r4, 0x8] - ldr r2, _080A84B0 @ =gUnknown_83E3E60 - adds r0, r4, 0 - bl sub_80762D0 - strh r5, [r4, 0xA] -_080A84A8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A84B0: .4byte gUnknown_83E3E60 - thumb_func_end sub_80A8398 - - thumb_func_start sub_80A84B4 -sub_80A84B4: @ 80A84B4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A84E4 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080A84E8 @ =gUnknown_83E3E80 - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080A84EC @ =sub_80A84F0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A84E4: .4byte gTasks -_080A84E8: .4byte gUnknown_83E3E80 -_080A84EC: .4byte sub_80A84F0 - thumb_func_end sub_80A84B4 - - thumb_func_start sub_80A84F0 -sub_80A84F0: @ 80A84F0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A8518 @ =gTasks - adds r0, r1 - bl sub_8076308 - lsls r0, 24 - cmp r0, 0 - bne _080A8510 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A8510: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8518: .4byte gTasks - thumb_func_end sub_80A84F0 - - thumb_func_start sub_80A851C -sub_80A851C: @ 80A851C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080A854C @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A8550 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r4, 0x20] - movs r0, 0x40 - b _080A856A - .align 2, 0 -_080A854C: .4byte gUnknown_2037F1A -_080A8550: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x20 - strh r0, [r4, 0x20] - ldr r0, _080A859C @ =0x0000ffc0 -_080A856A: - strh r0, [r4, 0x30] - ldr r0, _080A85A0 @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4, 0x22] - movs r0, 0x34 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x32] - strh r1, [r4, 0x34] - strh r1, [r4, 0x36] - ldr r1, _080A85A4 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A85A8 @ =sub_8074D00 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A859C: .4byte 0x0000ffc0 -_080A85A0: .4byte gUnknown_2037F1A -_080A85A4: .4byte DestroyAnimSprite -_080A85A8: .4byte sub_8074D00 - thumb_func_end sub_80A851C - - thumb_func_start sub_80A85AC -sub_80A85AC: @ 80A85AC - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080A85C0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A85C8 - ldr r0, _080A85C4 @ =gUnknown_2037F1A - b _080A85CA - .align 2, 0 -_080A85C0: .4byte gUnknown_2037F02 -_080A85C4: .4byte gUnknown_2037F1A -_080A85C8: - ldr r0, _080A8628 @ =gUnknown_2037F1B -_080A85CA: - ldrb r5, [r0] - adds r0, r5, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A85E4 - ldr r1, _080A862C @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080A85E4: - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A862C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x4] - adds r0, r4 - strh r0, [r6, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _080A8616 - movs r0, 0x8 - strh r0, [r6, 0x22] -_080A8616: - ldr r1, _080A8630 @ =move_anim_8074EE0 - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080A8634 @ =sub_8074F50 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8628: .4byte gUnknown_2037F1B -_080A862C: .4byte gUnknown_2037F02 -_080A8630: .4byte move_anim_8074EE0 -_080A8634: .4byte sub_8074F50 - thumb_func_end sub_80A85AC - - thumb_func_start sub_80A8638 -sub_80A8638: @ 80A8638 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A866C @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - strh r1, [r4, 0x8] - strh r0, [r4, 0xA] - ldr r2, _080A8670 @ =gUnknown_83E3F1C - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080A8674 @ =sub_80A8678 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A866C: .4byte gTasks -_080A8670: .4byte gUnknown_83E3F1C -_080A8674: .4byte sub_80A8678 - thumb_func_end sub_80A8638 - - thumb_func_start sub_80A8678 -sub_80A8678: @ 80A8678 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A86A0 @ =gTasks - adds r0, r1 - bl sub_8076308 - lsls r0, 24 - cmp r0, 0 - bne _080A8698 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A8698: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A86A0: .4byte gTasks - thumb_func_end sub_80A8678 - - thumb_func_start sub_80A86A4 -sub_80A86A4: @ 80A86A4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A8718 @ =gTasks - adds r4, r1, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - strh r0, [r4, 0x8] - strh r2, [r4, 0xA] - movs r0, 0x4 - strh r0, [r4, 0xC] - movs r0, 0x7 - strh r0, [r4, 0xE] - movs r0, 0x3 - strh r0, [r4, 0x10] - ldr r3, _080A871C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - strh r0, [r4, 0x12] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x14] - strh r2, [r4, 0x16] - strh r2, [r4, 0x18] - movs r0, 0x2 - strh r0, [r4, 0x1A] - ldr r0, _080A8720 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A870E - movs r1, 0xC - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0xC] -_080A870E: - ldr r0, _080A8724 @ =sub_80A8728 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8718: .4byte gTasks -_080A871C: .4byte gSprites -_080A8720: .4byte gUnknown_2037F1A -_080A8724: .4byte sub_80A8728 - thumb_func_end sub_80A86A4 - - thumb_func_start sub_80A8728 -sub_80A8728: @ 80A8728 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A8770 @ =gTasks - adds r3, r0, r1 - ldrh r0, [r3, 0x16] - adds r0, 0x1 - strh r0, [r3, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080A878E - movs r0, 0 - strh r0, [r3, 0x16] - ldrh r0, [r3, 0x18] - adds r0, 0x1 - strh r0, [r3, 0x18] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A8778 - ldr r2, _080A8774 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x1A] - ldrh r2, [r0, 0x22] - adds r1, r2 - b _080A878C - .align 2, 0 -_080A8770: .4byte gTasks -_080A8774: .4byte gSprites -_080A8778: - ldr r2, _080A87A0 @ =gSprites - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - ldrh r2, [r3, 0x1A] - subs r1, r2 -_080A878C: - strh r1, [r0, 0x22] -_080A878E: - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080A87DC - cmp r0, 0x1 - bgt _080A87A4 - cmp r0, 0 - beq _080A87AA - b _080A886C - .align 2, 0 -_080A87A0: .4byte gSprites -_080A87A4: - cmp r0, 0x2 - beq _080A880C - b _080A886C -_080A87AA: - ldr r2, _080A87D8 @ =gSprites - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0xC] - ldrh r2, [r0, 0x20] - adds r1, r2 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080A886C - movs r0, 0xE - strh r0, [r3, 0xE] - movs r0, 0x1 - strh r0, [r3, 0xA] - b _080A886C - .align 2, 0 -_080A87D8: .4byte gSprites -_080A87DC: - ldr r2, _080A8808 @ =gSprites - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - ldrh r2, [r3, 0xC] - subs r1, r2 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080A886C - movs r0, 0x7 - strh r0, [r3, 0xE] - movs r0, 0x2 - strh r0, [r3, 0xA] - b _080A886C - .align 2, 0 -_080A8808: .4byte gSprites -_080A880C: - ldr r2, _080A8844 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0xC] - ldrh r5, [r0, 0x20] - adds r1, r5 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _080A886C - ldrh r0, [r3, 0x10] - subs r0, 0x1 - strh r0, [r3, 0x10] - lsls r0, 16 - cmp r0, 0 - beq _080A8848 - movs r0, 0x7 - strh r0, [r3, 0xE] - strh r1, [r3, 0xA] - b _080A886C - .align 2, 0 -_080A8844: .4byte gSprites -_080A8848: - ldrh r1, [r3, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A8866 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - ldrh r2, [r3, 0x1A] - subs r1, r2 - strh r1, [r0, 0x22] -_080A8866: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A886C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A8728 - - thumb_func_start sub_80A8874 -sub_80A8874: @ 80A8874 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A88C4 @ =gTasks - adds r5, r1, r0 - ldr r4, _080A88C8 @ =gUnknown_2037F1B - ldrb r0, [r4] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - movs r1, 0 - strh r0, [r5, 0x8] - movs r0, 0x4 - strh r0, [r5, 0xA] - strh r1, [r5, 0xC] - strh r1, [r5, 0xE] - strh r1, [r5, 0x10] - strh r1, [r5, 0x12] - ldrb r0, [r4] - bl sub_8076B2C - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A88D4 - ldr r0, _080A88CC @ =gUnknown_2022978 - ldrh r0, [r0] - strh r0, [r5, 0x14] - ldr r0, _080A88D0 @ =0x04000014 - b _080A88DC - .align 2, 0 -_080A88C4: .4byte gTasks -_080A88C8: .4byte gUnknown_2037F1B -_080A88CC: .4byte gUnknown_2022978 -_080A88D0: .4byte 0x04000014 -_080A88D4: - ldr r0, _080A8940 @ =gUnknown_202297C - ldrh r0, [r0] - strh r0, [r5, 0x14] - ldr r0, _080A8944 @ =0x04000018 -_080A88DC: - str r0, [sp] - ldrh r0, [r5, 0x8] - adds r1, r0, 0 - subs r1, 0x40 - lsls r2, r1, 16 - lsls r0, 16 - cmp r2, r0 - bgt _080A891A - ldr r4, _080A8948 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080A88F4: - asrs r3, r2, 16 - cmp r3, 0 - blt _080A890C - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x14] - adds r0, 0xF0 - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x14] - adds r0, 0xF0 - strh r0, [r1] -_080A890C: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x8 - ldrsh r0, [r5, r3] - cmp r1, r0 - ble _080A88F4 -_080A891A: - ldr r0, _080A894C @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldr r0, _080A8950 @ =sub_80A8954 - str r0, [r5] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8940: .4byte gUnknown_202297C -_080A8944: .4byte 0x04000018 -_080A8948: .4byte gUnknown_2038700 -_080A894C: .4byte 0xa2600001 -_080A8950: .4byte sub_80A8954 - thumb_func_end sub_80A8874 - - thumb_func_start sub_80A8954 -sub_80A8954: @ 80A8954 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A8974 @ =gTasks - adds r3, r0, r1 - movs r1, 0x10 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080A8978 - cmp r0, 0x1 - beq _080A898E - b _080A8A0E - .align 2, 0 -_080A8974: .4byte gTasks -_080A8978: - ldrh r0, [r3, 0x12] - adds r0, 0x1 - strh r0, [r3, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080A8A0E - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] - b _080A8A0E -_080A898E: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A8A0E - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r1, [r3, 0xE] - movs r0, 0x3 - ands r0, r1 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x8] - subs r0, r1 - strh r0, [r3, 0x12] - movs r2, 0xC - ldrsh r1, [r3, r2] - cmp r1, 0x1 - beq _080A89C4 - cmp r1, 0x1 - ble _080A89CC - cmp r1, 0x2 - beq _080A89C8 - cmp r1, 0x3 - beq _080A89C8 - b _080A89CC -_080A89C4: - subs r0, 0x2 - b _080A89CA -_080A89C8: - adds r0, 0x1 -_080A89CA: - strh r0, [r3, 0x12] -_080A89CC: - movs r1, 0x12 - ldrsh r0, [r3, r1] - cmp r0, 0 - blt _080A89F0 - ldr r2, _080A8A14 @ =gUnknown_2038700 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r3, 0x14] - strh r1, [r0] - movs r1, 0x12 - ldrsh r0, [r3, r1] - lsls r0, 1 - movs r1, 0xF0 - lsls r1, 3 - adds r2, r1 - adds r0, r2 - ldrh r1, [r3, 0x14] - strh r1, [r0] -_080A89F0: - ldrh r0, [r3, 0xE] - adds r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x26 - ldrsh r1, [r3, r2] - cmp r0, r1 - blt _080A8A0E - ldr r1, _080A8A18 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A8A0E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8A14: .4byte gUnknown_2038700 -_080A8A18: .4byte gUnknown_2039600 - thumb_func_end sub_80A8954 - - thumb_func_start sub_80A8A1C -sub_80A8A1C: @ 80A8A1C - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080A8A70 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - movs r0, 0x10 - strh r0, [r4, 0x34] - strh r5, [r4, 0x36] - ldrb r0, [r6] - movs r1, 0 - bl sub_8076B2C - adds r0, 0x2 - strh r0, [r4, 0x38] - movs r0, 0x3F - bl sub_8073A44 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x3A] - ldr r0, _080A8A74 @ =sub_80A8A78 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A8A70: .4byte gUnknown_2037F1B -_080A8A74: .4byte sub_80A8A78 - thumb_func_end sub_80A8A1C - - thumb_func_start sub_80A8A78 -sub_80A8A78: @ 80A8A78 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080A8ADC - cmp r1, 0x1 - bgt _080A8A8E - cmp r1, 0 - beq _080A8A94 - b _080A8BBC -_080A8A8E: - cmp r1, 0x2 - beq _080A8B6E - b _080A8BBC -_080A8A94: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A8ABE - strh r1, [r4, 0x32] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080A8ABE: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080A8BBC - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - b _080A8B66 -_080A8ADC: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A8B22 - ldrh r2, [r4, 0x32] - movs r3, 0x32 - ldrsh r1, [r4, r3] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080A8B22 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - adds r0, r2, 0x1 - strh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080A8B22 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xC6 - bl PlaySE12WithPanning -_080A8B22: - ldrh r0, [r4, 0x34] - ldrh r2, [r4, 0x36] - adds r1, r0, r2 - strh r1, [r4, 0x36] - lsls r0, r1, 16 - asrs r2, r0, 16 - cmp r2, 0x1F - ble _080A8B36 - movs r0, 0x40 - b _080A8B44 -_080A8B36: - movs r0, 0x20 - negs r0, r0 - cmp r2, r0 - bgt _080A8B50 - movs r2, 0x40 - negs r2, r2 - adds r0, r2, 0 -_080A8B44: - subs r0, r1 - strh r0, [r4, 0x36] - movs r3, 0x34 - ldrsh r0, [r4, r3] - negs r0, r0 - strh r0, [r4, 0x34] -_080A8B50: - ldrh r0, [r4, 0x36] - movs r2, 0 - strh r0, [r4, 0x24] - movs r0, 0x38 - ldrsh r1, [r4, r0] - movs r3, 0x32 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080A8BBC - strh r2, [r4, 0x30] - strh r2, [r4, 0x32] -_080A8B66: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080A8BBC -_080A8B6E: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A8B9A - movs r0, 0 - strh r0, [r4, 0x32] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080A8B9A: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080A8BBC - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - bl DestroyAnimSprite -_080A8BBC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A8A78 - - thumb_func_start sub_80A8BC4 -sub_80A8BC4: @ 80A8BC4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - movs r5, 0 - mov r0, sp - strh r5, [r0] - mov r1, sp - adds r1, 0x2 - strh r5, [r1] - ldr r0, _080A8BE8 @ =gUnknown_2037F02 - movs r3, 0x4 - ldrsh r2, [r0, r3] - adds r7, r1, 0 - adds r1, r0, 0 - cmp r2, 0 - bne _080A8BF0 - ldr r0, _080A8BEC @ =gUnknown_2037F1A - b _080A8BF2 - .align 2, 0 -_080A8BE8: .4byte gUnknown_2037F02 -_080A8BEC: .4byte gUnknown_2037F1A -_080A8BF0: - ldr r0, _080A8C2C @ =gUnknown_2037F1B -_080A8BF2: - ldrb r5, [r0] - ldrb r1, [r1, 0x6] - movs r0, 0x1 - adds r4, r0, 0 - eors r4, r1 - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080A8C6A - movs r1, 0x2 - adds r0, r5, 0 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A8C6A - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, sp - adds r3, r7, 0 - bl sub_8076D9C - cmp r4, 0 - bne _080A8C30 - adds r0, r5, 0 - movs r1, 0 - b _080A8C34 - .align 2, 0 -_080A8C2C: .4byte gUnknown_2037F1B -_080A8C30: - adds r0, r5, 0 - movs r1, 0x2 -_080A8C34: - bl sub_8074480 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A8C60 - ldr r2, _080A8C5C @ =gUnknown_2037F02 - mov r0, sp - ldrh r1, [r0] - subs r1, r4 - ldrh r0, [r2] - subs r1, r0 - subs r0, r1 - strh r0, [r2] - b _080A8C6A - .align 2, 0 -_080A8C5C: .4byte gUnknown_2037F02 -_080A8C60: - ldr r1, _080A8C7C @ =gUnknown_2037F02 - mov r0, sp - ldrh r0, [r0] - subs r0, r4 - strh r0, [r1] -_080A8C6A: - ldr r1, _080A8C80 @ =sub_8075D9C - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A8C7C: .4byte gUnknown_2037F02 -_080A8C80: .4byte sub_8075D9C - thumb_func_end sub_80A8BC4 - - thumb_func_start sub_80A8C84 -sub_80A8C84: @ 80A8C84 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080A8C9E - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroyAnimSprite -_080A8C9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A8C84 - - thumb_func_start sub_80A8CA4 -sub_80A8CA4: @ 80A8CA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r0, 0 - movs r6, 0 - mov r0, sp - strh r6, [r0] - mov r1, sp - adds r1, 0x2 - strh r6, [r1] - ldr r0, _080A8CD0 @ =gUnknown_2037F02 - movs r2, 0xA - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080A8CDC - ldr r0, _080A8CD4 @ =gUnknown_2037F1A - ldrb r7, [r0] - ldr r0, _080A8CD8 @ =gUnknown_2037F1B - b _080A8CE2 - .align 2, 0 -_080A8CD0: .4byte gUnknown_2037F02 -_080A8CD4: .4byte gUnknown_2037F1A -_080A8CD8: .4byte gUnknown_2037F1B -_080A8CDC: - ldr r0, _080A8CFC @ =gUnknown_2037F1B - ldrb r7, [r0] - ldr r0, _080A8D00 @ =gUnknown_2037F1A -_080A8CE2: - ldrb r0, [r0] - mov r8, r0 - ldr r0, _080A8D04 @ =gUnknown_2037F02 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080A8D08 - movs r0, 0 - mov r10, r0 - movs r1, 0x1 - str r1, [sp, 0x4] - b _080A8D10 - .align 2, 0 -_080A8CFC: .4byte gUnknown_2037F1B -_080A8D00: .4byte gUnknown_2037F1A -_080A8D04: .4byte gUnknown_2037F02 -_080A8D08: - movs r2, 0x2 - mov r10, r2 - movs r3, 0x3 - str r3, [sp, 0x4] -_080A8D10: - adds r0, r7, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A8D6C - adds r0, r7, 0 - mov r1, r10 - bl sub_8074480 - lsls r0, 24 - ldr r1, _080A8D50 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0x2 - mov r4, r8 - eors r4, r0 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A8D5C - ldr r2, _080A8D54 @ =gSprites - ldr r0, _080A8D58 @ =gUnknown_2023D44 - adds r0, r4, r0 - b _080A8DEA - .align 2, 0 -_080A8D50: .4byte gUnknown_2037F02 -_080A8D54: .4byte gSprites -_080A8D58: .4byte gUnknown_2023D44 -_080A8D5C: - ldr r2, _080A8D64 @ =gSprites - ldr r0, _080A8D68 @ =gUnknown_2023D44 - add r0, r8 - b _080A8DEA - .align 2, 0 -_080A8D64: .4byte gSprites -_080A8D68: .4byte gUnknown_2023D44 -_080A8D6C: - adds r0, r7, 0 - mov r1, r10 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A8DD4 @ =gUnknown_2037F02 - ldrh r1, [r1] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A8DE4 - movs r0, 0x2 - adds r4, r7, 0 - eors r4, r0 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A8DE4 - ldr r3, _080A8DD8 @ =gSprites - ldr r2, _080A8DDC @ =gUnknown_2023D44 - adds r0, r7, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r0, r3 - adds r2, r4, r2 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r3 - movs r0, 0x20 - ldrsh r1, [r6, r0] - movs r3, 0x20 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080A8DE0 - adds r0, r2, 0 - adds r0, 0x43 - ldrb r0, [r0] - adds r0, 0x1 - b _080A8DFA - .align 2, 0 -_080A8DD4: .4byte gUnknown_2037F02 -_080A8DD8: .4byte gSprites -_080A8DDC: .4byte gUnknown_2023D44 -_080A8DE0: - adds r0, r6, 0 - b _080A8DF4 -_080A8DE4: - ldr r2, _080A8E40 @ =gSprites - ldr r0, _080A8E44 @ =gUnknown_2023D44 - adds r0, r7, r0 -_080A8DEA: - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 -_080A8DF4: - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 -_080A8DFA: - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r7, 0 - ldr r1, [sp, 0x4] - bl sub_8074480 - lsls r0, 24 - ldr r4, _080A8E48 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A8E4C - movs r1, 0x2 - mov r0, r8 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080A8E4C - ldrb r1, [r4, 0xC] - mov r0, r8 - mov r2, sp - mov r3, sp - adds r3, 0x2 - bl sub_8076D9C - b _080A8E6C - .align 2, 0 -_080A8E40: .4byte gSprites -_080A8E44: .4byte gUnknown_2023D44 -_080A8E48: .4byte gUnknown_2037F02 -_080A8E4C: - mov r4, sp - mov r0, r8 - mov r1, r10 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - mov r0, r8 - ldr r1, [sp, 0x4] - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r2, sp - strh r0, [r2, 0x2] -_080A8E6C: - mov r0, r8 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A8E90 - mov r3, sp - mov r2, sp - ldr r1, _080A8E8C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - ldrh r2, [r2] - adds r0, r2 - strh r0, [r3] - adds r2, r1, 0 - b _080A8E9E - .align 2, 0 -_080A8E8C: .4byte gUnknown_2037F02 -_080A8E90: - mov r3, sp - mov r0, sp - ldr r2, _080A8EE0 @ =gUnknown_2037F02 - ldrh r0, [r0] - ldrh r1, [r2, 0x6] - subs r0, r1 - strh r0, [r3] -_080A8E9E: - ldrh r1, [r2, 0x8] - mov r3, sp - ldrh r3, [r3, 0x2] - adds r1, r3 - mov r0, sp - strh r1, [r0, 0x2] - mov r3, r9 - strh r3, [r5, 0x30] - strh r3, [r5, 0x20] - strh r6, [r5, 0x34] - strh r6, [r5, 0x22] - ldrh r0, [r0] - strh r0, [r5, 0x32] - strh r1, [r5, 0x36] - ldrh r0, [r2] - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080A8EE4 @ =sub_80A8C84 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - 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 -_080A8EE0: .4byte gUnknown_2037F02 -_080A8EE4: .4byte sub_80A8C84 - thumb_func_end sub_80A8CA4 - - thumb_func_start sub_80A8EE8 -sub_80A8EE8: @ 80A8EE8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A8F28 @ =0x000027db - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080A8F0E - lsls r0, 20 - ldr r1, _080A8F2C @ =0x01010000 - adds r0, r1 - lsrs r0, 16 - ldr r1, _080A8F30 @ =gUnknown_2037F02 - ldrb r2, [r1, 0xA] - ldrh r3, [r1, 0x8] - movs r1, 0xF - bl BlendPalette -_080A8F0E: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080A8F34 @ =sub_8075D9C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8F28: .4byte 0x000027db -_080A8F2C: .4byte 0x01010000 -_080A8F30: .4byte gUnknown_2037F02 -_080A8F34: .4byte sub_8075D9C - thumb_func_end sub_80A8EE8 - - thumb_func_start sub_80A8F38 -sub_80A8F38: @ 80A8F38 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r0, _080A8F6C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - movs r1, 0xA0 - cmp r0, 0 - beq _080A8F54 - ldr r1, _080A8F70 @ =0x0000ff60 -_080A8F54: - movs r0, 0xE0 - lsls r0, 2 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - ldr r0, _080A8F74 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080A8F78 @ =sub_80A8F7C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A8F6C: .4byte gUnknown_2037F1A -_080A8F70: .4byte 0x0000ff60 -_080A8F74: .4byte gUnknown_2037F02 -_080A8F78: .4byte sub_80A8F7C - thumb_func_end sub_80A8F38 - - thumb_func_start sub_80A8F7C -sub_80A8F7C: @ 80A8F7C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - subs r1, r0 - movs r5, 0 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - subs r2, 0x20 - strh r2, [r4, 0x2E] - ldr r0, _080A8FE8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - movs r1, 0xA0 - cmp r0, 0 - beq _080A8FAC - ldr r1, _080A8FEC @ =0x0000ff60 -_080A8FAC: - lsls r0, r1, 16 - asrs r0, 16 - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x26] - movs r2, 0x26 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A8FE0 - ldrh r2, [r4, 0x22] - adds r0, r1, r2 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x26] - strh r5, [r4, 0x24] - strh r5, [r4, 0x2E] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _080A8FF0 @ =sub_80A8FF4 - str r0, [r4, 0x1C] -_080A8FE0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A8FE8: .4byte gUnknown_2037F1A -_080A8FEC: .4byte 0x0000ff60 -_080A8FF0: .4byte sub_80A8FF4 - thumb_func_end sub_80A8F7C - - thumb_func_start sub_80A8FF4 -sub_80A8FF4: @ 80A8FF4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080A9012 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080A9018 @ =sub_80A901C - str r0, [r4, 0x1C] -_080A9012: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9018: .4byte sub_80A901C - thumb_func_end sub_80A8FF4 - - thumb_func_start sub_80A901C -sub_80A901C: @ 80A901C - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A9082 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r0, 0 - strh r0, [r4, 0x2E] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A9068 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x10 - ldr r3, _080A905C @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080A9060 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, _080A9064 @ =sub_80A9094 - b _080A9080 - .align 2, 0 -_080A905C: .4byte 0x000003ff -_080A9060: .4byte 0xfffffc00 -_080A9064: .4byte sub_80A9094 -_080A9068: - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r3, _080A9088 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080A908C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, _080A9090 @ =sub_80A911C -_080A9080: - str r0, [r4, 0x1C] -_080A9082: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9088: .4byte 0x000003ff -_080A908C: .4byte 0xfffffc00 -_080A9090: .4byte sub_80A911C - thumb_func_end sub_80A901C - - thumb_func_start sub_80A9094 -sub_80A9094: @ 80A9094 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x26] - subs r0, 0x2 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bne _080A90CA - movs r0, 0x10 - strh r0, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r4, 0x2E] - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080A90D0 @ =sub_80A90D4 - str r0, [r4, 0x1C] -_080A90CA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A90D0: .4byte sub_80A90D4 - thumb_func_end sub_80A9094 - - thumb_func_start sub_80A90D4 -sub_80A90D4: @ 80A90D4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080A9112 - ldrh r1, [r4, 0x2E] - subs r1, 0x1 - strh r1, [r4, 0x2E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A9112 - ldr r0, _080A9118 @ =sub_80A911C - str r0, [r4, 0x1C] -_080A9112: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9118: .4byte sub_80A911C - thumb_func_end sub_80A90D4 - - thumb_func_start sub_80A911C -sub_80A911C: @ 80A911C - push {lr} - adds r3, r0, 0 - ldr r0, _080A9144 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080A9148 @ =0x0000ffff - cmp r1, r0 - bne _080A9154 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x3C - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080A9150 - ldr r0, _080A914C @ =sub_80A915C - b _080A9152 - .align 2, 0 -_080A9144: .4byte gUnknown_2037F02 -_080A9148: .4byte 0x0000ffff -_080A914C: .4byte sub_80A915C -_080A9150: - ldr r0, _080A9158 @ =DestroyAnimSprite -_080A9152: - str r0, [r3, 0x1C] -_080A9154: - pop {r0} - bx r0 - .align 2, 0 -_080A9158: .4byte DestroyAnimSprite - thumb_func_end sub_80A911C - - thumb_func_start sub_80A915C -sub_80A915C: @ 80A915C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A915C - - thumb_func_start sub_80A917C -sub_80A917C: @ 80A917C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A91AC @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - strh r1, [r4, 0x8] - ldr r2, _080A91B0 @ =gUnknown_83E4128 - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080A91B4 @ =sub_80A91B8 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A91AC: .4byte gTasks -_080A91B0: .4byte gUnknown_83E4128 -_080A91B4: .4byte sub_80A91B8 - thumb_func_end sub_80A917C - - thumb_func_start sub_80A91B8 -sub_80A91B8: @ 80A91B8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A9208 @ =gTasks - adds r4, r0, r1 - adds r0, r4, 0 - bl sub_8076308 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080A9202 - ldr r2, _080A920C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A9202: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9208: .4byte gTasks -_080A920C: .4byte gSprites - thumb_func_end sub_80A91B8 - - thumb_func_start sub_80A9210 -sub_80A9210: @ 80A9210 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A9244 @ =gTasks - adds r4, r1, r0 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r0, 0x3 - strh r0, [r4, 0x20] - ldr r0, _080A9248 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080A9250 - ldr r0, _080A924C @ =0x0000ffff - strh r0, [r4, 0x22] - movs r0, 0x8 - b _080A9256 - .align 2, 0 -_080A9244: .4byte gTasks -_080A9248: .4byte gUnknown_2037F1B -_080A924C: .4byte 0x0000ffff -_080A9250: - movs r0, 0x1 - strh r0, [r4, 0x22] - ldr r0, _080A9270 @ =0x0000fff8 -_080A9256: - strh r0, [r4, 0x24] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080A9274 @ =sub_80A9278 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9270: .4byte 0x0000fff8 -_080A9274: .4byte sub_80A9278 - thumb_func_end sub_80A9210 - - thumb_func_start sub_80A9278 -sub_80A9278: @ 80A9278 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A929C @ =gTasks - adds r3, r0, r1 - movs r0, 0x8 - ldrsh r4, [r3, r0] - cmp r4, 0x1 - beq _080A92CC - cmp r4, 0x1 - bgt _080A92A0 - cmp r4, 0 - beq _080A92AA - b _080A9392 - .align 2, 0 -_080A929C: .4byte gTasks -_080A92A0: - cmp r4, 0x2 - beq _080A9348 - cmp r4, 0x3 - beq _080A9362 - b _080A9392 -_080A92AA: - ldr r2, _080A92C8 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x24] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - strh r4, [r3, 0xA] - strh r4, [r3, 0xC] - strh r4, [r3, 0xE] - b _080A935A - .align 2, 0 -_080A92C8: .4byte gSprites -_080A92CC: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A9392 - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - ands r0, r4 - lsls r0, 16 - cmp r0, 0 - beq _080A9304 - ldr r2, _080A9300 @ =gSprites - movs r4, 0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - adds r1, 0x6 - b _080A9316 - .align 2, 0 -_080A9300: .4byte gSprites -_080A9304: - ldr r2, _080A9344 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - subs r1, 0x6 -_080A9316: - strh r1, [r0, 0x24] - ldrh r0, [r3, 0xE] - adds r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080A9392 - ldrh r1, [r3, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A935A - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x24] - subs r0, 0x6 - strh r0, [r1, 0x24] - b _080A935A - .align 2, 0 -_080A9344: .4byte gSprites -_080A9348: - ldrh r0, [r3, 0x20] - subs r0, 0x1 - strh r0, [r3, 0x20] - lsls r0, 16 - cmp r0, 0 - beq _080A935A - movs r0, 0 - strh r0, [r3, 0x8] - b _080A9392 -_080A935A: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080A9392 -_080A9362: - ldr r2, _080A9398 @ =gSprites - movs r4, 0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x22] - ldrh r4, [r0, 0x24] - adds r1, r4 - strh r1, [r0, 0x24] - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x24 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A9392 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A9392: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9398: .4byte gSprites - thumb_func_end sub_80A9278 - - thumb_func_start sub_80A939C -sub_80A939C: @ 80A939C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A93D8 @ =gTasks - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r0, 0xE - strh r0, [r4, 0x22] - movs r0, 0x2 - strh r0, [r4, 0x24] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080A93DC @ =sub_80A93E0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A93D8: .4byte gTasks -_080A93DC: .4byte sub_80A93E0 - thumb_func_end sub_80A939C - - thumb_func_start sub_80A93E0 -sub_80A93E0: @ 80A93E0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080A9434 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _080A94A6 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x10 - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _080A94A6 - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A943C - ldr r3, _080A9438 @ =gSprites - movs r6, 0x26 - ldrsh r1, [r4, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _080A9452 - .align 2, 0 -_080A9434: .4byte gTasks -_080A9438: .4byte gSprites -_080A943C: - ldr r3, _080A9484 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_080A9452: - strb r1, [r0] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r6, 0x22 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080A94A6 - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - movs r6, 0x24 - ldrsh r1, [r4, r6] - cmp r0, r1 - bge _080A9488 - strh r2, [r4, 0xA] - strh r2, [r4, 0xC] - strh r2, [r4, 0xE] - b _080A94A6 - .align 2, 0 -_080A9484: .4byte gSprites -_080A9488: - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A94A6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A93E0 - - thumb_func_start sub_80A94AC -sub_80A94AC: @ 80A94AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080A94FC @ =gTasks - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x8] - movs r1, 0x4 - strh r1, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - strh r0, [r4, 0x12] - strh r0, [r4, 0x14] - strh r0, [r4, 0x16] - strh r0, [r4, 0x18] - strh r0, [r4, 0x22] - ldr r5, _080A9500 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080A9504 @ =sub_80A9508 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A94FC: .4byte gTasks -_080A9500: .4byte gUnknown_2037F1A -_080A9504: .4byte sub_80A9508 - thumb_func_end sub_80A94AC - - thumb_func_start sub_80A9508 -sub_80A9508: @ 80A9508 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080A952C @ =gTasks - adds r4, r0, r1 - movs r0, 0x18 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _080A9574 - cmp r2, 0x1 - bgt _080A9530 - cmp r2, 0 - beq _080A9536 - b _080A9590 - .align 2, 0 -_080A952C: .4byte gTasks -_080A9530: - cmp r2, 0x2 - beq _080A958C - b _080A9590 -_080A9536: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080A9590 - strh r2, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080A9590 - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A956E - strh r2, [r4, 0x14] - movs r0, 0x1 - strh r0, [r4, 0x18] - b _080A9590 -_080A956E: - movs r0, 0x2 - strh r0, [r4, 0x18] - b _080A9590 -_080A9574: - movs r1, 0 - strh r1, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080A9590 - strh r2, [r4, 0x16] - strh r1, [r4, 0x18] - b _080A9590 -_080A958C: - movs r0, 0x1 - strh r0, [r4, 0x12] -_080A9590: - movs r2, 0x8 - ldrsh r5, [r4, r2] - cmp r5, 0 - beq _080A959E - cmp r5, 0x1 - beq _080A9634 - b _080A9642 -_080A959E: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080A9642 - strh r5, [r4, 0xA] - ldr r0, _080A9628 @ =gUnknown_83E4154 - movs r3, 0x24 - ldrsh r1, [r4, r3] - movs r3, 0x26 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080A9642 - ldr r0, _080A962C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - strh r6, [r1, 0x2E] - movs r0, 0xD - strh r0, [r1, 0x30] - ldr r2, _080A9630 @ =gUnknown_83E416C - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x24] - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080A9642 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080A9642 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080A9642 - .align 2, 0 -_080A9628: .4byte gUnknown_83E4154 -_080A962C: .4byte gSprites -_080A9630: .4byte gUnknown_83E416C -_080A9634: - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A9642 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A9642: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A9508 - - thumb_func_start sub_80A9648 -sub_80A9648: @ 80A9648 - push {r4,lr} - adds r3, r0, 0 - ldr r4, _080A96B0 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r2, 0x1 - ldrb r1, [r0, 0x12] - ands r1, r2 - lsls r1, 2 - mov r0, r12 - ldrb r2, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A96AA - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r1, 1 - movs r0, 0x2E - ldrsh r2, [r3, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x8 - adds r1, r0 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r3, 0 - bl DestroySprite -_080A96AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A96B0: .4byte gTasks - thumb_func_end sub_80A9648 - - thumb_func_start sub_80A96B4 -sub_80A96B4: @ 80A96B4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080A9750 @ =0x000027de - bl IndexOfSpritePaletteTag - mov r1, sp - strb r0, [r1] - movs r4, 0x1 - ldr r0, _080A9754 @ =0x00002710 - adds r5, r0, 0 -_080A96CC: - subs r0, r5, r4 - lsls r0, 16 - lsrs r0, 16 - bl AllocSpritePalette - mov r2, sp - adds r1, r2, r4 - strb r0, [r1] - adds r4, 0x1 - cmp r4, 0x2 - ble _080A96CC - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - adds r1, r0, 0 - ldr r0, _080A9758 @ =gMonSpritesGfxPtr - ldr r0, [r0] - movs r2, 0xBE - lsls r2, 1 - adds r0, r2 - str r1, [r0] - ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette - bl LZDecompressWram - movs r4, 0 -_080A9700: - ldr r5, _080A9758 @ =gMonSpritesGfxPtr - ldr r0, [r5] - movs r1, 0xBE - lsls r1, 1 - adds r0, r1 - lsls r1, r4, 6 - ldr r0, [r0] - adds r0, r1 - mov r2, sp - adds r1, r2, r4 - ldrb r1, [r1] - lsls r1, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - adds r4, 0x1 - cmp r4, 0x2 - ble _080A9700 - ldr r0, [r5] - movs r4, 0xBE - lsls r4, 1 - adds r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r5] - adds r0, r4 - movs r1, 0 - str r1, [r0] - adds r0, r6, 0 - bl DestroyAnimVisualTask - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9750: .4byte 0x000027de -_080A9754: .4byte 0x00002710 -_080A9758: .4byte gMonSpritesGfxPtr -_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette - thumb_func_end sub_80A96B4 - - thumb_func_start sub_80A9760 -sub_80A9760: @ 80A9760 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _080A9784 @ =gUnknown_83E41C8 - movs r4, 0x2 -_080A976A: - ldrh r0, [r5] - bl FreeSpritePaletteByTag - adds r5, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080A976A - adds r0, r6, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9784: .4byte gUnknown_83E41C8 - thumb_func_end sub_80A9760 - - thumb_func_start sub_80A9788 -sub_80A9788: @ 80A9788 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsls r2, 24 - lsrs r3, r2, 24 - movs r0, 0x1 - ands r3, r0 - negs r0, r3 - orrs r0, r3 - asrs r0, 31 - movs r3, 0x20 - ands r0, r3 - ldrh r4, [r5, 0x4] - lsls r3, r4, 22 - lsrs r3, 22 - lsrs r1, 22 - adds r0, r1 - adds r3, r0 - ldr r1, _080A97DC @ =0x000003ff - adds r0, r1, 0 - ands r3, r0 - ldr r0, _080A97E0 @ =0xfffffc00 - ands r0, r4 - orrs r0, r3 - strh r0, [r5, 0x4] - ldr r0, _080A97E4 @ =gUnknown_83E41C8 - lsrs r2, 25 - lsls r2, 1 - adds r2, r0 - ldrh r0, [r2] - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r5, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A97DC: .4byte 0x000003ff -_080A97E0: .4byte 0xfffffc00 -_080A97E4: .4byte gUnknown_83E41C8 - thumb_func_end sub_80A9788 - - thumb_func_start sub_80A97E8 -sub_80A97E8: @ 80A97E8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8075160 - ldr r6, _080A9850 @ =gUnknown_2037F1A - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080A9808 - ldr r1, _080A9854 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A9808: - ldr r4, _080A9854 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldr r0, _080A9858 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080A985C @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldrb r1, [r4, 0xA] - ldrb r2, [r4, 0xC] - adds r0, r5, 0 - bl sub_80A9788 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9850: .4byte gUnknown_2037F1A -_080A9854: .4byte gUnknown_2037F02 -_080A9858: .4byte sub_8075590 -_080A985C: .4byte DestroyAnimSprite - thumb_func_end sub_80A97E8 - - thumb_func_start sub_80A9860 -sub_80A9860: @ 80A9860 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A987A - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 -_080A987A: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x32] - lsls r0, r2, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x7 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - subs r2, 0x80 - strh r2, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x3C - bne _080A98AA - adds r0, r4, 0 - bl DestroyAnimSprite -_080A98AA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A9860 - - thumb_func_start sub_80A98B0 -sub_80A98B0: @ 80A98B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - bl sub_8073788 - lsls r0, 24 - movs r6, 0xF0 - cmp r0, 0 - beq _080A98C4 - movs r6, 0x98 -_080A98C4: - movs r5, 0 - ldr r1, _080A9918 @ =gUnknown_2022984 - strh r6, [r1] - ldr r4, _080A991C @ =gUnknown_2022986 - movs r0, 0xA0 - strh r0, [r4] - ldrh r1, [r1] - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x44 - bl SetGpuReg - ldr r1, _080A9920 @ =0x00003f1f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080A9924 @ =0x00003f3f - movs r0, 0x4A - bl SetGpuReg - movs r0, 0x50 - movs r1, 0xC8 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0x10 - bl SetGpuReg - ldr r1, _080A9928 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - strh r6, [r0, 0xA] - ldr r1, _080A992C @ =sub_80A9930 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A9918: .4byte gUnknown_2022984 -_080A991C: .4byte gUnknown_2022986 -_080A9920: .4byte 0x00003f1f -_080A9924: .4byte 0x00003f3f -_080A9928: .4byte gTasks -_080A992C: .4byte sub_80A9930 - thumb_func_end sub_80A98B0 - - thumb_func_start sub_80A9930 -sub_80A9930: @ 80A9930 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A9964 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0x8] - adds r4, r0, 0 - adds r4, 0xD - strh r4, [r3, 0x8] - ldrh r0, [r3, 0xA] - adds r2, r0, 0 - subs r2, 0xD - strh r2, [r3, 0xA] - lsls r1, r4, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080A9970 - ldr r0, _080A9968 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080A996C @ =sub_80A9984 - str r0, [r3] - b _080A9978 - .align 2, 0 -_080A9964: .4byte gTasks -_080A9968: .4byte gUnknown_2022984 -_080A996C: .4byte sub_80A9984 -_080A9970: - ldr r1, _080A9980 @ =gUnknown_2022984 - lsls r0, r4, 8 - orrs r2, r0 - strh r2, [r1] -_080A9978: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A9980: .4byte gUnknown_2022984 - thumb_func_end sub_80A9930 - - thumb_func_start sub_80A9984 -sub_80A9984: @ 80A9984 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080A99D0 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080A99D8 - movs r0, 0x88 - strh r0, [r1, 0x1E] - movs r0, 0x50 - movs r1, 0x88 - bl SetGpuReg - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - ldr r2, _080A99D4 @ =0x00007fff - movs r1, 0x10 - bl BlendPalettes - b _080A9A0C - .align 2, 0 -_080A99D0: .4byte gTasks -_080A99D4: .4byte 0x00007fff -_080A99D8: - cmp r0, 0x4 - ble _080A9A0C - ldr r0, _080A9A14 @ =gUnknown_2022984 - strh r4, [r0] - ldr r0, _080A9A18 @ =gUnknown_2022986 - strh r4, [r0] - ldr r4, _080A9A1C @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A9A0C: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9A14: .4byte gUnknown_2022984 -_080A9A18: .4byte gUnknown_2022986 -_080A9A1C: .4byte 0x00003f3f - thumb_func_end sub_80A9984 - - thumb_func_start sub_80A9A20 -sub_80A9A20: @ 80A9A20 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A9A70 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A9A7C - movs r0, 0x1 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080A9A74 @ =gUnknown_83E4200 - adds r0, r5, 0 - bl sub_80762D0 - ldr r1, _080A9A78 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x24] - b _080A9AA4 - .align 2, 0 -_080A9A70: .4byte gTasks -_080A9A74: .4byte gUnknown_83E4200 -_080A9A78: .4byte gSprites -_080A9A7C: - ldr r1, _080A9AAC @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r5, 0 - bl sub_8076308 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080A9AA4 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A9AA4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9AAC: .4byte gSprites - thumb_func_end sub_80A9A20 - - thumb_func_start sub_80A9AB0 -sub_80A9AB0: @ 80A9AB0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A9B00 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080A9B0C - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080A9B04 @ =gUnknown_83E4200 - adds r0, r5, 0 - bl sub_80762D0 - ldr r1, _080A9B08 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x24] - b _080A9B34 - .align 2, 0 -_080A9B00: .4byte gTasks -_080A9B04: .4byte gUnknown_83E4200 -_080A9B08: .4byte gSprites -_080A9B0C: - ldr r1, _080A9B3C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r5, 0 - bl sub_8076308 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080A9B34 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080A9B34: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A9B3C: .4byte gSprites - thumb_func_end sub_80A9AB0 - - thumb_func_start sub_80A9B40 -sub_80A9B40: @ 80A9B40 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - movs r0, 0x5F - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080A9B84 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080A9B88 @ =sub_80A9B8C - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9B84: .4byte gUnknown_2037F1B -_080A9B88: .4byte sub_80A9B8C - thumb_func_end sub_80A9B40 - - thumb_func_start sub_80A9B8C -sub_80A9B8C: @ 80A9B8C - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080A9BB6 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080A9BBC -_080A9BB6: - adds r0, r4, 0 - bl DestroyAnimSprite -_080A9BBC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A9B8C - - thumb_func_start sub_80A9BC4 -sub_80A9BC4: @ 80A9BC4 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A9BE8 - ldr r1, _080A9BE4 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x32] - adds r0, r2, 0x1 - strh r0, [r4, 0x2E] - b _080A9C44 - .align 2, 0 -_080A9BE4: .4byte gUnknown_2037F02 -_080A9BE8: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x64 - ble _080A9C36 - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080A9C36: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _080A9C44 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A9C44: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A9BC4 - - thumb_func_start sub_80A9C4C -sub_80A9C4C: @ 80A9C4C - push {lr} - ldr r2, _080A9C70 @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x20] - movs r1, 0xA0 - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x2E] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x30] - ldr r1, _080A9C74 @ =sub_8074C44 - str r1, [r0, 0x1C] - ldr r1, _080A9C78 @ =sub_80A9C7C - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080A9C70: .4byte gUnknown_2037F02 -_080A9C74: .4byte sub_8074C44 -_080A9C78: .4byte sub_80A9C7C - thumb_func_end sub_80A9C4C - - thumb_func_start sub_80A9C7C -sub_80A9C7C: @ 80A9C7C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - lsls r0, 16 - lsrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - lsls r0, 16 - asrs r5, r0, 16 - cmp r5, 0x48 - bgt _080A9CE2 - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - cmp r5, 0x40 - bgt _080A9CE2 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A9CE2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A9C7C - - thumb_func_start sub_80A9CE8 -sub_80A9CE8: @ 80A9CE8 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A9DA0 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x3 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A9D2A - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080A9D2A: - ldr r0, _080A9DA4 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r4, _080A9DA8 @ =gUnknown_202297A - strh r1, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap - bl sub_807543C - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A9D88 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080A9D88: - ldr r0, _080A9DB8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A9DBC @ =sub_80A9DC0 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A9DA0: .4byte 0x00003f42 -_080A9DA4: .4byte gUnknown_2022978 -_080A9DA8: .4byte gUnknown_202297A -_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap -_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet -_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette -_080A9DB8: .4byte gTasks -_080A9DBC: .4byte sub_80A9DC0 - thumb_func_end sub_80A9CE8 - - thumb_func_start sub_80A9DC0 -sub_80A9DC0: @ 80A9DC0 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A9DE8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080A9DDE - b _080A9F08 -_080A9DDE: - lsls r0, 2 - ldr r1, _080A9DEC @ =_080A9DF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A9DE8: .4byte gTasks -_080A9DEC: .4byte _080A9DF0 - .align 2, 0 -_080A9DF0: - .4byte _080A9E04 - .4byte _080A9E48 - .4byte _080A9E6A - .4byte _080A9EAE - .4byte _080A9ED4 -_080A9E04: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080A9F08 - strh r5, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080A9F08 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x1E] - b _080A9F08 -_080A9E48: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8D - bne _080A9F08 - movs r0, 0x10 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080A9F08 -_080A9E6A: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080A9F08 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080A9F08 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080A9F08 -_080A9EAE: - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - bl sub_8075358 - ldr r1, _080A9ED0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - b _080A9F08 - .align 2, 0 -_080A9ED0: .4byte gTasks -_080A9ED4: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A9EE8 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080A9EE8: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080A9F08: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A9DC0 - - thumb_func_start sub_80A9F10 -sub_80A9F10: @ 80A9F10 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A9F88 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080A9F52 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080A9F52: - ldr r0, _080A9F8C @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r4, _080A9F90 @ =gUnknown_202297A - strh r1, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A9F98 - ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap - ldr r1, [sp, 0x4] - bl LZDecompressVram - b _080A9FC6 - .align 2, 0 -_080A9F88: .4byte 0x00003f42 -_080A9F8C: .4byte gUnknown_2022978 -_080A9F90: .4byte gUnknown_202297A -_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap -_080A9F98: - ldr r0, _080A9FB4 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A9FBC - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap - bl sub_807543C - b _080A9FC6 - .align 2, 0 -_080A9FB4: .4byte gUnknown_2037F1B -_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap -_080A9FBC: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap - bl sub_807543C -_080A9FC6: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080A9FFA - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080A9FFA: - ldr r0, _080AA01C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AA020 @ =sub_80AA024 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap -_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet -_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette -_080AA01C: .4byte gTasks -_080AA020: .4byte sub_80AA024 - thumb_func_end sub_80A9F10 - - thumb_func_start sub_80AA024 -sub_80AA024: @ 80AA024 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080AA04C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080AA042 - b _080AA168 -_080AA042: - lsls r0, 2 - ldr r1, _080AA050 @ =_080AA054 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AA04C: .4byte gTasks -_080AA050: .4byte _080AA054 - .align 2, 0 -_080AA054: - .4byte _080AA068 - .4byte _080AA0AC - .4byte _080AA0CE - .4byte _080AA112 - .4byte _080AA134 -_080AA068: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080AA168 - strh r5, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0xE - bne _080AA168 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x1E] - b _080AA168 -_080AA0AC: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080AA168 - movs r0, 0xE - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080AA168 -_080AA0CE: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080AA168 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080AA168 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080AA168 -_080AA112: - mov r0, sp - bl sub_80752A0 - movs r0, 0x1 - bl sub_8075358 - movs r0, 0x2 - bl sub_8075358 - ldr r0, _080AA170 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080AA134: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AA148 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080AA148: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AA168: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA170: .4byte gTasks - thumb_func_end sub_80AA024 - - thumb_func_start sub_80AA174 -sub_80AA174: @ 80AA174 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080AA1C8 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080AA1CC @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrb r0, [r5] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x3C] - ldr r1, _080AA1D0 @ =sub_80AA1D4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA1C8: .4byte gUnknown_2037F1A -_080AA1CC: .4byte gUnknown_2037F02 -_080AA1D0: .4byte sub_80AA1D4 - thumb_func_end sub_80AA174 - - thumb_func_start sub_80AA1D4 -sub_80AA1D4: @ 80AA1D4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080AA1EA - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - b _080AA1EE -_080AA1EA: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 -_080AA1EE: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r2, 0x30 - ldrsh r0, [r4, r2] - ldrh r1, [r4, 0x34] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x9 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r3, 0x38 - ldrsh r2, [r4, r3] - cmp r2, 0 - beq _080AA260 - cmp r2, 0x1 - bne _080AA290 - ldr r1, _080AA258 @ =0xfffffc00 - adds r0, r1, 0 - ldrh r2, [r4, 0x32] - adds r0, r2 - strh r0, [r4, 0x32] - ldr r3, _080AA25C @ =0xffffff00 - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x2E - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080AA290 - movs r0, 0x2 - strh r0, [r4, 0x38] - b _080AA2A0 - .align 2, 0 -_080AA258: .4byte 0xfffffc00 -_080AA25C: .4byte 0xffffff00 -_080AA260: - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x2E - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080AA290 - strh r2, [r4, 0x36] - movs r0, 0x1 - strh r0, [r4, 0x38] -_080AA290: - ldr r0, _080AA2A8 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080AA2AC @ =0x0000ffff - cmp r1, r0 - bne _080AA2A0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA2A0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA2A8: .4byte gUnknown_2037F02 -_080AA2AC: .4byte 0x0000ffff - thumb_func_end sub_80AA1D4 - - thumb_func_start sub_80AA2B0 -sub_80AA2B0: @ 80AA2B0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080AA2F8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080AA2FC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - strh r0, [r5, 0x2E] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x7 - bl Cos - strh r0, [r5, 0x30] - ldr r0, _080AA300 @ =sub_80AA304 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA2F8: .4byte gUnknown_2037F1A -_080AA2FC: .4byte gUnknown_2037F02 -_080AA300: .4byte sub_80AA304 - thumb_func_end sub_80AA2B0 - - thumb_func_start sub_80AA304 -sub_80AA304: @ 80AA304 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x30] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] - movs r1, 0x20 - ldrsh r0, [r2, r1] - movs r3, 0x24 - ldrsh r1, [r2, r3] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080AA342 - movs r0, 0x22 - ldrsh r1, [r2, r0] - movs r3, 0x26 - ldrsh r0, [r2, r3] - adds r1, r0 - cmp r1, 0xA0 - bgt _080AA342 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AA348 -_080AA342: - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA348: - pop {r0} - bx r0 - thumb_func_end sub_80AA304 - - thumb_func_start sub_80AA34C -sub_80AA34C: @ 80AA34C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x30] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r1, r0, 0x1 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080AA378 - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA378: - pop {r0} - bx r0 - thumb_func_end sub_80AA34C - - thumb_func_start sub_80AA37C -sub_80AA37C: @ 80AA37C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080AA3C8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080AA3CC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - strh r0, [r5, 0x2E] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x7 - bl Cos - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x32] - ldr r0, _080AA3D0 @ =sub_80AA34C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA3C8: .4byte gUnknown_2037F1A -_080AA3CC: .4byte gUnknown_2037F02 -_080AA3D0: .4byte sub_80AA34C - thumb_func_end sub_80AA37C - - thumb_func_start sub_80AA3D4 -sub_80AA3D4: @ 80AA3D4 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AA3EA - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA3EA: - pop {r0} - bx r0 - thumb_func_end sub_80AA3D4 - - thumb_func_start sub_80AA3F0 -sub_80AA3F0: @ 80AA3F0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080AA404 @ =sub_80AA3D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA404: .4byte sub_80AA3D4 - thumb_func_end sub_80AA3F0 - - thumb_func_start sub_80AA408 -sub_80AA408: @ 80AA408 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA426 - ldr r0, _080AA498 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080AA426: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r5, r0, 1 - movs r0, 0xFF - ands r5, r0 - adds r0, r5, 0 - movs r1, 0x50 - bl Sin - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4F - bgt _080AA46A - adds r0, r5, 0 - movs r1, 0x50 - bl Cos - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - lsls r0, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x26] -_080AA46A: - movs r0, 0x2E - ldrsh r2, [r4, r0] - cmp r2, 0x5A - ble _080AA488 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r4, 0x24] - subs r0, r1 - strh r0, [r4, 0x24] -_080AA488: - cmp r2, 0x64 - ble _080AA492 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA492: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA498: .4byte gUnknown_2037F02 - thumb_func_end sub_80AA408 - - thumb_func_start sub_80AA49C -sub_80AA49C: @ 80AA49C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x14 - ble _080AA4F2 - adds r1, r0, 0 - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080AA4F2: - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x1E - ble _080AA500 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA500: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AA49C - - thumb_func_start sub_80AA508 -sub_80AA508: @ 80AA508 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA52C - ldr r1, _080AA528 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x32] - adds r0, r2, 0x1 - strh r0, [r4, 0x2E] - b _080AA580 - .align 2, 0 -_080AA528: .4byte gUnknown_2037F02 -_080AA52C: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - movs r5, 0 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x46 - ble _080AA580 - ldr r0, _080AA588 @ =sub_80AA49C - str r0, [r4, 0x1C] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r0, r2, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x24] - strh r5, [r4, 0x26] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xB4 - bl __umodsi3 - strh r0, [r4, 0x34] -_080AA580: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA588: .4byte sub_80AA49C - thumb_func_end sub_80AA508 - - thumb_func_start sub_80AA58C -sub_80AA58C: @ 80AA58C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA5C6 - ldr r1, _080AA688 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - ldr r0, _080AA68C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807685C - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r0, 0x1 - strh r0, [r4, 0x32] -_080AA5C6: - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r0, r2 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r1, r0, 2 - adds r0, r1, 0 - cmp r1, 0 - bge _080AA5DC - adds r0, 0xFF -_080AA5DC: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _080AA5EE - movs r0, 0 - strh r0, [r4, 0x30] -_080AA5EE: - movs r0, 0x30 - ldrsh r2, [r4, r0] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080AA5FC - adds r0, 0x3 -_080AA5FC: - asrs r0, 2 - movs r1, 0x1E - subs r1, r0 - adds r0, r2, 0 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0x30 - ldrsh r2, [r4, r0] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080AA618 - adds r0, 0x7 -_080AA618: - asrs r0, 3 - movs r1, 0xA - subs r1, r0 - adds r0, r2, 0 - bl Sin - strh r0, [r4, 0x26] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x80 - ble _080AA63C - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080AA63C - ldr r0, _080AA690 @ =0x0000ffff - strh r0, [r4, 0x32] -_080AA63C: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA650 - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _080AA650 - movs r0, 0x1 - strh r0, [r4, 0x32] -_080AA650: - ldrh r0, [r4, 0x34] - adds r1, r0, 0x1 - strh r1, [r4, 0x34] - subs r0, 0x9 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x46 - bls _080AA694 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080AA6A2 - .align 2, 0 -_080AA688: .4byte gUnknown_2037F02 -_080AA68C: .4byte gUnknown_2037F1B -_080AA690: .4byte 0x0000ffff -_080AA694: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080AA6A2: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x5A - ble _080AA6B0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA6B0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AA58C - - thumb_func_start sub_80AA6B8 -sub_80AA6B8: @ 80AA6B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA6EC - ldr r1, _080AA6E8 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080AA700 - .align 2, 0 -_080AA6E8: .4byte gUnknown_2037F02 -_080AA6EC: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AA700 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA700: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AA6B8 - - thumb_func_start sub_80AA708 -sub_80AA708: @ 80AA708 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r1, _080AA720 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080AA724 - adds r0, r5, 0 - bl DestroyAnimSprite - b _080AA788 - .align 2, 0 -_080AA720: .4byte gUnknown_2037F02 -_080AA724: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080AA734 - ldr r4, _080AA730 @ =gUnknown_2037F1A - b _080AA736 - .align 2, 0 -_080AA730: .4byte gUnknown_2037F1A -_080AA734: - ldr r4, _080AA764 @ =gUnknown_2037F1B -_080AA736: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080AA768 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0 - bne _080AA76C - ldrh r0, [r5, 0x20] - adds r0, 0x20 - b _080AA770 - .align 2, 0 -_080AA764: .4byte gUnknown_2037F1B -_080AA768: .4byte gUnknown_2037F02 -_080AA76C: - ldrh r0, [r5, 0x20] - subs r0, 0x20 -_080AA770: - strh r0, [r5, 0x20] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x2E] - ldrh r1, [r2, 0x2] - strh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - ldr r0, _080AA790 @ =sub_80AA794 - str r0, [r5, 0x1C] -_080AA788: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA790: .4byte sub_80AA794 - thumb_func_end sub_80AA708 - - thumb_func_start sub_80AA794 -sub_80AA794: @ 80AA794 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AA7C4 - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - cmp r0, 0 - beq _080AA7BE - ldrh r1, [r2, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim - b _080AA7C4 -_080AA7BE: - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA7C4: - pop {r0} - bx r0 - thumb_func_end sub_80AA794 - - thumb_func_start sub_80AA7C8 -sub_80AA7C8: @ 80AA7C8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080AA7FC @ =gUnknown_2037F02 - ldrb r0, [r0] - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _080AA800 @ =gTasks - adds r4, r0 - ldr r2, _080AA804 @ =gUnknown_83E4410 - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080AA808 @ =sub_80AA80C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AA7FC: .4byte gUnknown_2037F02 -_080AA800: .4byte gTasks -_080AA804: .4byte gUnknown_83E4410 -_080AA808: .4byte sub_80AA80C - thumb_func_end sub_80AA7C8 - - thumb_func_start sub_80AA80C -sub_80AA80C: @ 80AA80C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080AA834 @ =gTasks - adds r0, r1 - bl sub_8076308 - lsls r0, 24 - cmp r0, 0 - bne _080AA82C - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AA82C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA834: .4byte gTasks - thumb_func_end sub_80AA80C - - thumb_func_start sub_80AA838 -sub_80AA838: @ 80AA838 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080AA84C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AA854 - ldr r0, _080AA850 @ =gUnknown_2037F1A - b _080AA856 - .align 2, 0 -_080AA84C: .4byte gUnknown_2037F02 -_080AA850: .4byte gUnknown_2037F1A -_080AA854: - ldr r0, _080AA8EC @ =gUnknown_2037F1B -_080AA856: - ldrb r6, [r0] - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AA870 - ldr r1, _080AA8F0 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080AA870: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r7, _080AA8F0 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r3, [r7, 0x2] - adds r0, r3 - movs r4, 0 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x4] - adds r0, r1 - strh r0, [r5, 0x22] - strh r4, [r5, 0x2E] - ldrh r1, [r5, 0x20] - lsls r1, 3 - strh r1, [r5, 0x30] - lsls r0, 3 - strh r0, [r5, 0x32] - movs r2, 0x2 - ldrsh r0, [r7, r2] - lsls r0, 3 - cmp r0, 0 - bge _080AA8B0 - adds r0, 0x7 -_080AA8B0: - asrs r0, 3 - strh r0, [r5, 0x34] - movs r3, 0x4 - ldrsh r0, [r7, r3] - lsls r0, 3 - cmp r0, 0 - bge _080AA8C0 - adds r0, 0x7 -_080AA8C0: - asrs r0, 3 - strh r0, [r5, 0x36] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x6 - ldrsh r0, [r7, r3] - lsls r0, 4 - adds r1, r0 - ldr r3, _080AA8F4 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080AA8F8 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r0, _080AA8FC @ =sub_80AA900 - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AA8EC: .4byte gUnknown_2037F1B -_080AA8F0: .4byte gUnknown_2037F02 -_080AA8F4: .4byte 0x000003ff -_080AA8F8: .4byte 0xfffffc00 -_080AA8FC: .4byte sub_80AA900 - thumb_func_end sub_80AA838 - - thumb_func_start sub_80AA900 -sub_80AA900: @ 80AA900 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x30] - adds r0, r1 - strh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - ldrh r3, [r2, 0x32] - adds r1, r3 - strh r1, [r2, 0x32] - lsls r0, 16 - asrs r0, 19 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 19 - strh r1, [r2, 0x22] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080AA934 - adds r0, r2, 0 - bl DestroyAnimSprite -_080AA934: - pop {r0} - bx r0 - thumb_func_end sub_80AA900 - - thumb_func_start sub_80AA938 -sub_80AA938: @ 80AA938 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AA95A - ldr r0, _080AA994 @ =gUnknown_2037F02 - ldrh r1, [r0] - movs r0, 0x78 - subs r0, r1 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080AA95A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080AA978 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0 - bl sub_8075B48 -_080AA978: - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x30 - ldrsh r0, [r4, r2] - adds r0, 0x50 - cmp r1, r0 - bne _080AA98C - adds r0, r4, 0 - bl DestroyAnimSprite -_080AA98C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AA994: .4byte gUnknown_2037F02 - thumb_func_end sub_80AA938 - - thumb_func_start sub_80AA998 -sub_80AA998: @ 80AA998 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AA9C6 - movs r5, 0x78 - strh r5, [r6, 0x20] - ldr r4, _080AAA48 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r4, r2] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - subs r0, 0xF - strh r0, [r6, 0x22] - ldrb r1, [r4, 0x2] - adds r0, r6, 0 - bl StartSpriteAnim - strh r5, [r6, 0x38] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x34] -_080AA9C6: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r6, 0x2E] - movs r1, 0x2E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r6, 0x30] - movs r2, 0x2E - ldrsh r0, [r6, r2] - lsls r4, r0, 1 - adds r4, r0 - ldrh r0, [r6, 0x34] - adds r4, r0 - movs r2, 0xFF - ldrh r0, [r6, 0x3A] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r6, 0x3A] - ands r4, r2 - adds r0, r4, 0 - movs r1, 0x64 - bl Cos - strh r0, [r6, 0x24] - adds r0, r4, 0 - movs r1, 0xA - bl Sin - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r1, 0x4 - bl Cos - ldrh r2, [r6, 0x30] - adds r4, r2 - adds r0, r4 - strh r0, [r6, 0x26] - movs r0, 0x2E - ldrsh r1, [r6, r0] - movs r2, 0x38 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080AAA42 - ldr r0, _080AAA4C @ =sub_80AAA50 - str r0, [r6, 0x1C] - strh r5, [r6, 0x2E] - adds r0, r6, 0 - bl oamt_add_pos2_onto_pos1 - movs r0, 0x5 - strh r0, [r6, 0x32] - strh r5, [r6, 0x36] - strh r5, [r6, 0x34] - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080AAA42: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AAA48: .4byte gUnknown_2037F02 -_080AAA4C: .4byte sub_80AAA50 - thumb_func_end sub_80AA998 - - thumb_func_start sub_80AAA50 -sub_80AAA50: @ 80AAA50 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080AAA6A - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080AAA70 @ =sub_80AAA74 - str r0, [r1, 0x1C] -_080AAA6A: - pop {r0} - bx r0 - .align 2, 0 -_080AAA70: .4byte sub_80AAA74 - thumb_func_end sub_80AAA50 - - thumb_func_start sub_80AAA74 -sub_80AAA74: @ 80AAA74 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x34] - adds r0, r1, r2 - strh r0, [r4, 0x34] - strh r0, [r4, 0x26] - adds r1, 0x1 - strh r1, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x30 - ble _080AAA9E - lsls r0, r1, 16 - cmp r0, 0 - ble _080AAA9E - ldrh r0, [r4, 0x36] - subs r1, r0, 0x5 - strh r1, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x36] -_080AAA9E: - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080AAAD0 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0 - bl DestroyAnimSprite -_080AAAD0: - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bne _080AAADE - adds r0, r4, 0 - bl DestroyAnimSprite -_080AAADE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AAA74 - - thumb_func_start sub_80AAAE4 -sub_80AAAE4: @ 80AAAE4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080AAB28 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AAB30 - ldr r4, _080AAB2C @ =gUnknown_2037F1A - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080AAB30 - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldrh r0, [r5, 0x22] - adds r0, 0x28 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080AAB50 - .align 2, 0 -_080AAB28: .4byte gBattleTypeFlags -_080AAB2C: .4byte gUnknown_2037F1A -_080AAB30: - ldr r4, _080AAB70 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x28 - strh r0, [r5, 0x22] -_080AAB50: - movs r0, 0xD - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - subs r0, 0x48 - strh r0, [r5, 0x36] - ldr r0, _080AAB74 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080AAB78 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AAB70: .4byte gUnknown_2037F1A -_080AAB74: .4byte sub_8075590 -_080AAB78: .4byte DestroyAnimSprite - thumb_func_end sub_80AAAE4 - - thumb_func_start sub_80AAB7C -sub_80AAB7C: @ 80AAB7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080AAB98 @ =gUnknown_2037F02 - ldr r1, _080AAB9C @ =gUnknown_2037EE4 - ldr r1, [r1] - ldrb r2, [r1, 0x10] - movs r1, 0x1 - ands r1, r2 - strh r1, [r3, 0xE] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080AAB98: .4byte gUnknown_2037F02 -_080AAB9C: .4byte gUnknown_2037EE4 - thumb_func_end sub_80AAB7C - - thumb_func_start update_fury_cutter_counter_copy -update_fury_cutter_counter_copy: @ 80AABA0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AABB8 @ =gUnknown_2037F02 - ldr r1, _080AABBC @ =gUnknown_2037EE4 - ldr r1, [r1] - ldrb r1, [r1, 0x10] - strh r1, [r2, 0xE] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080AABB8: .4byte gUnknown_2037F02 -_080AABBC: .4byte gUnknown_2037EE4 - thumb_func_end update_fury_cutter_counter_copy - - thumb_func_start sub_80AABC0 -sub_80AABC0: @ 80AABC0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080AAC48 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AABE8 - ldr r1, _080AAC4C @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r5, 0xA] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0xC] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0xE] -_080AABE8: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r2, 0x8 - ldrsh r0, [r5, r2] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl __modsi3 - cmp r0, 0x1 - bne _080AAC30 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF0 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x50 - bl __umodsi3 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _080AAC50 @ =gUnknown_83E5898 - adds r1, r4, 0 - movs r3, 0x4 - bl CreateSprite -_080AAC30: - movs r0, 0x8 - ldrsh r1, [r5, r0] - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _080AAC42 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080AAC42: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AAC48: .4byte gTasks -_080AAC4C: .4byte gUnknown_2037F02 -_080AAC50: .4byte gUnknown_83E5898 - thumb_func_end sub_80AABC0 - - thumb_func_start sub_80AAC54 -sub_80AAC54: @ 80AAC54 - ldr r1, _080AAC5C @ =sub_80AAC60 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080AAC5C: .4byte sub_80AAC60 - thumb_func_end sub_80AAC54 - - thumb_func_start sub_80AAC60 -sub_80AAC60: @ 80AAC60 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080AAC7E - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x26] - adds r0, 0x4 - strh r0, [r2, 0x26] -_080AAC7E: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AAC92 - adds r0, r2, 0 - bl DestroySprite -_080AAC92: - pop {r0} - bx r0 - thumb_func_end sub_80AAC60 - - thumb_func_start sub_80AAC98 -sub_80AAC98: @ 80AAC98 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _080AACC0 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AACC8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080AACC4 @ =gUnknown_2037F02 - ldrh r1, [r4] - subs r0, r1 - b _080AACDA - .align 2, 0 -_080AACC0: .4byte gUnknown_2037F1A -_080AACC4: .4byte gUnknown_2037F02 -_080AACC8: - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080AADA0 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 -_080AACDA: - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r6, 0x22] - adds r2, r6, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AADA4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AAD10 - ldr r1, _080AADA0 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080AAD10: - ldr r5, _080AADA0 @ =gUnknown_2037F02 - ldrh r0, [r5, 0xC] - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldr r4, _080AADA8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080AADAC @ =SpriteCallbackDummy - bl CreateInvisibleSpriteWithCallback - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - strh r4, [r6, 0x38] - ldrb r0, [r5, 0x8] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r6, 0x20] - subs r1, r0 - strh r1, [r6, 0x20] - ldrb r0, [r5, 0x8] - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl Cos - ldrh r1, [r6, 0x22] - subs r1, r0 - strh r1, [r6, 0x22] - ldr r0, _080AADB0 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r5, 0x4] - strh r0, [r1, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r1, 0x32] - ldrb r0, [r5, 0x8] - lsls r0, 8 - strh r0, [r1, 0x34] - ldrh r0, [r5, 0xC] - strh r0, [r1, 0x36] - ldr r1, _080AADB4 @ =sub_80AADB8 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AADA0: .4byte gUnknown_2037F02 -_080AADA4: .4byte gUnknown_2037F1A -_080AADA8: .4byte gUnknown_2037F1B -_080AADAC: .4byte SpriteCallbackDummy -_080AADB0: .4byte gSprites -_080AADB4: .4byte sub_80AADB8 - thumb_func_end sub_80AAC98 - - thumb_func_start sub_80AADB8 -sub_80AADB8: @ 80AADB8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r1, [r5, 0x38] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080AAE20 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r7, r0, r2 - ldrh r4, [r7, 0x36] - lsls r4, 24 - lsrs r4, 24 - ldrh r0, [r7, 0x34] - mov r8, r0 - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_80755E0 - mov r1, r8 - lsrs r6, r1, 8 - movs r0, 0x2E - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Sin - ldrh r1, [r5, 0x24] - adds r0, r1 - strh r0, [r5, 0x24] - movs r0, 0x30 - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Cos - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r0, [r7, 0x32] - mov r1, r8 - adds r1, r0 - strh r1, [r7, 0x34] - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - cmp r4, 0 - beq _080AAE24 - strh r4, [r7, 0x36] - b _080AAE2E - .align 2, 0 -_080AAE20: .4byte gSprites -_080AAE24: - ldr r0, _080AAE3C @ =sub_80AAE40 - str r0, [r5, 0x1C] - adds r0, r7, 0 - bl DestroySprite -_080AAE2E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAE3C: .4byte sub_80AAE40 - thumb_func_end sub_80AADB8 - - thumb_func_start sub_80AAE40 -sub_80AAE40: @ 80AAE40 - push {lr} - adds r3, r0, 0 - adds r3, 0x2C - ldrb r2, [r3] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - strb r1, [r3] - ldr r1, _080AAE60 @ =sub_8074F6C - str r1, [r0, 0x1C] - ldr r1, _080AAE64 @ =sub_80AAE68 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080AAE60: .4byte sub_8074F6C -_080AAE64: .4byte sub_80AAE68 - thumb_func_end sub_80AAE40 - - thumb_func_start sub_80AAE68 -sub_80AAE68: @ 80AAE68 - push {lr} - movs r1, 0xA - strh r1, [r0, 0x2E] - ldr r1, _080AAE7C @ =sub_8074C44 - str r1, [r0, 0x1C] - ldr r1, _080AAE80 @ =move_anim_8074EE0 - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080AAE7C: .4byte sub_8074C44 -_080AAE80: .4byte move_anim_8074EE0 - thumb_func_end sub_80AAE68 - - thumb_func_start sub_80AAE84 -sub_80AAE84: @ 80AAE84 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080AAEAC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AAEB4 - ldr r1, _080AAEB0 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - adds r7, r1, 0 - b _080AAEBA - .align 2, 0 -_080AAEAC: .4byte gUnknown_2037F1A -_080AAEB0: .4byte gUnknown_2037F02 -_080AAEB4: - ldr r0, _080AAF10 @ =gUnknown_2037F02 - ldrh r6, [r0, 0x4] - adds r7, r0, 0 -_080AAEBA: - ldrh r0, [r7, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080AAF14 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r7, [r7, 0x6] - adds r0, r7 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080AAF18 @ =sub_80AAF1C - str r0, [r5, 0x1C] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AAF10: .4byte gUnknown_2037F02 -_080AAF14: .4byte gUnknown_2037F1B -_080AAF18: .4byte sub_80AAF1C - thumb_func_end sub_80AAE84 - - thumb_func_start sub_80AAF1C -sub_80AAF1C: @ 80AAF1C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AAF58 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - ldr r0, _080AAF5C @ =0x0000ffff - cmp r1, r0 - bne _080AAF3E - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] -_080AAF3E: - adds r0, r4, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080AAF50 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AAF50: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAF58: .4byte gUnknown_2037F02 -_080AAF5C: .4byte 0x0000ffff - thumb_func_end sub_80AAF1C - - thumb_func_start sub_80AAF60 -sub_80AAF60: @ 80AAF60 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080AAF94 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r0, _080AAF98 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x8] - ldr r0, _080AAF9C @ =0x0000279c - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4, 0xC] - ldr r0, _080AAFA0 @ =sub_80AAFA4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AAF94: .4byte gTasks -_080AAF98: .4byte gUnknown_2037F02 -_080AAF9C: .4byte 0x0000279c -_080AAFA0: .4byte sub_80AAFA4 - thumb_func_end sub_80AAF60 - - thumb_func_start sub_80AAFA4 -sub_80AAFA4: @ 80AAFA4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080AB01C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x1C] - adds r0, 0x1 - strh r0, [r2, 0x1C] - lsls r0, 16 - asrs r0, 16 - mov r12, r1 - cmp r0, 0x3 - bne _080AAFF6 - movs r0, 0 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080AB020 @ =gPlttBufferFaded - lsls r0, r5, 1 - adds r0, r1 - ldrh r6, [r0] - adds r7, r1, 0 - adds r3, r0, 0x2 - movs r1, 0x6 - adds r2, r0, 0 -_080AAFE0: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080AAFE0 - adds r0, r5, 0x7 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] -_080AAFF6: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r12 - ldrh r1, [r0, 0x1E] - adds r1, 0x1 - strh r1, [r0, 0x1E] - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _080AB016 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AB016: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB01C: .4byte gTasks -_080AB020: .4byte gPlttBufferFaded - thumb_func_end sub_80AAFA4 - - thumb_func_start sub_80AB024 -sub_80AB024: @ 80AB024 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - movs r0, 0x1E - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080AB08C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x2E - ldrsh r1, [r5, r0] - movs r0, 0xD2 - lsls r0, 8 - bl __divsi3 - strh r0, [r5, 0x38] - ldr r0, _080AB090 @ =gUnknown_2037F02 - ldrh r2, [r0, 0x6] - strh r2, [r5, 0x3C] - ldrh r1, [r0, 0xE] - movs r3, 0xE - ldrsh r0, [r0, r3] - cmp r0, 0x7F - ble _080AB094 - adds r0, r1, 0 - subs r0, 0x7F - lsls r0, 8 - strh r0, [r5, 0x3A] - negs r0, r2 - strh r0, [r5, 0x3C] - b _080AB098 - .align 2, 0 -_080AB08C: .4byte gUnknown_2037F1B -_080AB090: .4byte gUnknown_2037F02 -_080AB094: - lsls r0, r1, 8 - strh r0, [r5, 0x3A] -_080AB098: - ldr r1, _080AB0A8 @ =sub_80AB0AC - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AB0A8: .4byte sub_80AB0AC - thumb_func_end sub_80AB024 - - thumb_func_start sub_80AB0AC -sub_80AB0AC: @ 80AB0AC - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080AB0C0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AB0C0: - ldrh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - adds r0, r1 - asrs r0, 8 - cmp r0, 0x7F - ble _080AB0F0 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - negs r0, r0 - strh r0, [r4, 0x3C] - b _080AB0F8 -_080AB0F0: - ldrh r0, [r4, 0x38] - ldrh r1, [r4, 0x3A] - adds r0, r1 - strh r0, [r4, 0x3A] -_080AB0F8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AB0AC - - thumb_func_start sub_80AB100 -sub_80AB100: @ 80AB100 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AB120 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080AB124 @ =gUnknown_2037F02 - ldrh r0, [r3] - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r3, 0xE] - ldr r0, _080AB128 @ =sub_80AB12C - str r0, [r1] - bx lr - .align 2, 0 -_080AB120: .4byte gTasks -_080AB124: .4byte gUnknown_2037F02 -_080AB128: .4byte sub_80AB12C - thumb_func_end sub_80AB100 - - thumb_func_start sub_80AB12C -sub_80AB12C: @ 80AB12C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080AB160 @ =gUnknown_2037F02 - ldrh r0, [r2, 0xE] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r2, 0xE] - ldr r1, _080AB164 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bne _080AB15A - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080AB15A: - pop {r0} - bx r0 - .align 2, 0 -_080AB160: .4byte gUnknown_2037F02 -_080AB164: .4byte gTasks - thumb_func_end sub_80AB12C - - thumb_func_start sub_80AB168 -sub_80AB168: @ 80AB168 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r7, _080AB1B4 @ =gUnknown_2037F1A - ldrb r0, [r7] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r7] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r6, _080AB1B8 @ =0x0000fff6 - strh r6, [r4, 0x26] - ldrb r0, [r7] - bl sub_807685C - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AB1C2 - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AB1BC - movs r0, 0xA - strh r0, [r4, 0x24] - b _080AB1C4 - .align 2, 0 -_080AB1B4: .4byte gUnknown_2037F1A -_080AB1B8: .4byte 0x0000fff6 -_080AB1BC: - strh r6, [r4, 0x24] - subs r0, r5, 0x2 - b _080AB1C6 -_080AB1C2: - strh r6, [r4, 0x24] -_080AB1C4: - adds r0, r5, 0x2 -_080AB1C6: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldr r0, _080AB1D8 @ =sub_80AB1DC - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB1D8: .4byte sub_80AB1DC - thumb_func_end sub_80AB168 - - thumb_func_start sub_80AB1DC -sub_80AB1DC: @ 80AB1DC - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080AB1F2 - adds r0, r2, 0 - bl DestroyAnimSprite -_080AB1F2: - pop {r0} - bx r0 - thumb_func_end sub_80AB1DC - - thumb_func_start sub_80AB1F8 -sub_80AB1F8: @ 80AB1F8 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r5, _080AB2B8 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - adds r4, r0, 0 - ldr r0, _080AB2BC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080AB242 - ldr r4, _080AB2C0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - beq _080AB23A - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AB242 -_080AB23A: - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] -_080AB242: - ldr r5, _080AB2C0 @ =gUnknown_2037F02 - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0 - cmp r0, 0 - bne _080AB256 - movs r1, 0x1 -_080AB256: - ldrb r0, [r5, 0xA] - movs r7, 0x1 - cmp r0, 0 - bne _080AB260 - movs r7, 0x3 -_080AB260: - adds r0, r6, 0 - bl sub_8075160 - ldr r0, _080AB2B8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AB27A - ldrh r0, [r5, 0x4] - negs r0, r0 - strh r0, [r5, 0x4] -_080AB27A: - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r4, _080AB2BC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r4] - adds r1, r7, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r6, 0x36] - ldr r0, _080AB2C4 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080AB2C8 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB2B8: .4byte gUnknown_2037F1A -_080AB2BC: .4byte gUnknown_2037F1B -_080AB2C0: .4byte gUnknown_2037F02 -_080AB2C4: .4byte sub_8075590 -_080AB2C8: .4byte DestroyAnimSprite - thumb_func_end sub_80AB1F8 - - thumb_func_start sub_80AB2CC -sub_80AB2CC: @ 80AB2CC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080AB2FC @ =gUnknown_2037F02 - ldrh r1, [r0, 0x8] - strh r1, [r4, 0x2E] - ldrh r0, [r0, 0x4] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x36] - ldr r0, _080AB300 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080AB304 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB2FC: .4byte gUnknown_2037F02 -_080AB300: .4byte sub_8075590 -_080AB304: .4byte DestroyAnimSprite - thumb_func_end sub_80AB2CC - - thumb_func_start sub_80AB308 -sub_80AB308: @ 80AB308 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AB320 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080AB324 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - b _080AB32C - .align 2, 0 -_080AB320: .4byte gUnknown_2037F02 -_080AB324: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075160 -_080AB32C: - ldr r0, _080AB33C @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080AB340 @ =sub_80AB344 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AB33C: .4byte gUnknown_2037F02 -_080AB340: .4byte sub_80AB344 - thumb_func_end sub_80AB308 - - thumb_func_start sub_80AB344 -sub_80AB344: @ 80AB344 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080AB384 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AB384: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AB344 - - thumb_func_start sub_80AB38C -sub_80AB38C: @ 80AB38C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080AB3FC @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl SetAnimBgAttribute - mov r0, sp - bl sub_80752A0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AB418 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute - ldr r0, _080AB400 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AB408 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap - bl sub_807543C - b _080AB42E - .align 2, 0 -_080AB3FC: .4byte 0x00003f42 -_080AB400: .4byte gUnknown_2037F1A -_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap -_080AB408: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap - bl sub_807543C - b _080AB42E - .align 2, 0 -_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap -_080AB418: - ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap - ldr r1, [sp, 0x4] - bl LZDecompressVram - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0x1 - bl sub_80730C0 -_080AB42E: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080AB460 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AB468 - ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080AB476 - .align 2, 0 -_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap -_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet -_080AB460: .4byte gUnknown_2037F02 -_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette -_080AB468: - ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080AB476: - ldr r0, _080AB4E4 @ =sub_80AB79C - ldr r4, _080AB4E8 @ =gTasks - mov r2, r10 - lsls r5, r2, 2 - adds r1, r5, r2 - lsls r1, 3 - adds r6, r1, r4 - ldrb r1, [r6, 0x7] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - mov r9, r0 - mov r1, r8 - strh r1, [r6, 0x26] - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r7, r0, r4 - mov r0, r9 - strh r0, [r7, 0x8] - movs r0, 0x80 - lsls r0, 5 - strh r0, [r7, 0xA] - strh r0, [r7, 0xC] - bl sub_8073788 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080AB4F8 - ldr r1, _080AB4EC @ =0x0000ffb0 - adds r0, r1, 0 - ldr r2, _080AB4F0 @ =gUnknown_2022978 - strh r0, [r2] - adds r1, 0x20 - adds r0, r1, 0 - ldr r2, _080AB4F4 @ =gUnknown_202297A - strh r0, [r2] - movs r0, 0x2 - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - mov r0, r9 - strh r0, [r7, 0xE] - b _080AB552 - .align 2, 0 -_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette -_080AB4E4: .4byte sub_80AB79C -_080AB4E8: .4byte gTasks -_080AB4EC: .4byte 0x0000ffb0 -_080AB4F0: .4byte gUnknown_2022978 -_080AB4F4: .4byte gUnknown_202297A -_080AB4F8: - ldr r0, _080AB528 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080AB53C - ldr r2, _080AB52C @ =0x0000ff20 - adds r0, r2, 0 - ldr r2, _080AB530 @ =gUnknown_2022978 - strh r0, [r2] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldr r2, _080AB534 @ =gUnknown_202297A - strh r0, [r2] - movs r0, 0x2 - strh r0, [r6, 0x8] - ldr r0, _080AB538 @ =0x0000ffff - strh r0, [r6, 0xA] - strh r1, [r7, 0xE] - b _080AB552 - .align 2, 0 -_080AB528: .4byte gUnknown_2037F1A -_080AB52C: .4byte 0x0000ff20 -_080AB530: .4byte gUnknown_2022978 -_080AB534: .4byte gUnknown_202297A -_080AB538: .4byte 0x0000ffff -_080AB53C: - ldr r0, _080AB584 @ =gUnknown_2022978 - strh r4, [r0] - ldr r1, _080AB588 @ =0x0000ffd0 - adds r0, r1, 0 - ldr r2, _080AB58C @ =gUnknown_202297A - strh r0, [r2] - ldr r0, _080AB590 @ =0x0000fffe - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - strh r4, [r7, 0xE] -_080AB552: - ldr r0, _080AB584 @ =gUnknown_2022978 - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r2, _080AB58C @ =gUnknown_202297A - ldrh r1, [r2] - movs r0, 0x16 - bl SetGpuReg - ldr r1, _080AB594 @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080AB598 - movs r0, 0x30 - strh r0, [r1, 0x10] - movs r0, 0x70 - b _080AB59C - .align 2, 0 -_080AB584: .4byte gUnknown_2022978 -_080AB588: .4byte 0x0000ffd0 -_080AB58C: .4byte gUnknown_202297A -_080AB590: .4byte 0x0000fffe -_080AB594: .4byte gTasks -_080AB598: - movs r0, 0 - strh r0, [r1, 0x10] -_080AB59C: - strh r0, [r1, 0x12] - ldr r1, _080AB5C0 @ =gTasks - mov r2, r10 - adds r0, r5, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x14] - ldr r1, _080AB5C4 @ =sub_80AB5C8 - str r1, [r0] - 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 -_080AB5C0: .4byte gTasks -_080AB5C4: .4byte sub_80AB5C8 - thumb_func_end sub_80AB38C - - thumb_func_start sub_80AB5C8 -sub_80AB5C8: @ 80AB5C8 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080AB6F4 @ =gUnknown_2022978 - ldr r2, _080AB6F8 @ =gUnknown_202297A - ldr r0, _080AB6FC @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x8] - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - ldrh r0, [r4, 0xA] - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - mov r0, sp - bl sub_80752A0 - ldrh r0, [r4, 0xA] - ldrh r3, [r4, 0xC] - adds r0, r3 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080AB65C - ldr r1, _080AB700 @ =gPlttBufferFaded - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - adds r0, 0x7 - lsls r0, 1 - adds r0, r1 - ldrh r6, [r0] - movs r2, 0x6 - adds r7, r1, 0 - adds r3, r7, 0 - mov r4, sp -_080AB622: - ldrb r0, [r4, 0x8] - lsls r0, 4 - adds r1, r2, 0x1 - adds r0, r1 - lsls r1, r0, 1 - adds r1, r3 - subs r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080AB622 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - adds r0, 0x1 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] - ldr r1, _080AB6FC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x12] -_080AB65C: - ldr r1, _080AB6FC @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0x14] - adds r0, 0x1 - strh r0, [r3, 0x14] - lsls r0, 16 - asrs r0, 16 - adds r4, r1, 0 - adds r6, r2, 0 - cmp r0, 0x1 - ble _080AB6CA - movs r0, 0 - strh r0, [r3, 0x14] - ldrh r0, [r3, 0xE] - adds r2, r0, 0x1 - strh r2, [r3, 0xE] - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080AB6A6 - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] -_080AB6A6: - movs r1, 0xE - ldrsh r0, [r3, r1] - cmp r0, 0x36 - ble _080AB6CA - ldrh r2, [r3, 0x10] - subs r2, 0x1 - strh r2, [r3, 0x10] - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] -_080AB6CA: - adds r0, r6, r5 - lsls r0, 3 - adds r2, r0, r4 - movs r3, 0x26 - ldrsh r1, [r2, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldrh r0, [r0, 0xA] - movs r3, 0x1F - ands r3, r0 - cmp r3, 0 - bne _080AB6EC - strh r3, [r2, 0x8] - ldr r0, _080AB704 @ =sub_80AB708 - str r0, [r2] -_080AB6EC: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB6F4: .4byte gUnknown_2022978 -_080AB6F8: .4byte gUnknown_202297A -_080AB6FC: .4byte gTasks -_080AB700: .4byte gPlttBufferFaded -_080AB704: .4byte sub_80AB708 - thumb_func_end sub_80AB5C8 - - thumb_func_start sub_80AB708 -sub_80AB708: @ 80AB708 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r7, _080AB740 @ =gUnknown_2022978 - ldr r0, _080AB744 @ =gUnknown_202297A - mov r8, r0 - ldr r6, _080AB748 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AB74C - movs r0, 0x1 - bl sub_8075358 - movs r0, 0x2 - bl sub_8075358 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AB78E - .align 2, 0 -_080AB740: .4byte gUnknown_2022978 -_080AB744: .4byte gUnknown_202297A -_080AB748: .4byte gTasks -_080AB74C: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AB760 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080AB760: - movs r0, 0 - strh r0, [r7] - mov r1, r8 - strh r0, [r1] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldr r1, _080AB798 @ =0x0000ffff - strh r1, [r0, 0x26] - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080AB78E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AB798: .4byte 0x0000ffff - thumb_func_end sub_80AB708 - - thumb_func_start sub_80AB79C -sub_80AB79C: @ 80AB79C - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080AB7C4 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080AB7B8 - b _080AB8F0 -_080AB7B8: - cmp r0, 0x1 - bgt _080AB7C8 - cmp r0, 0 - beq _080AB7D0 - b _080ABA66 - .align 2, 0 -_080AB7C4: .4byte gTasks -_080AB7C8: - cmp r0, 0x2 - bne _080AB7CE - b _080AB9BC -_080AB7CE: - b _080ABA66 -_080AB7D0: - movs r3, 0 - movs r2, 0x10 - ldrsh r0, [r4, r2] - ldr r1, _080AB8A0 @ =gUnknown_2038700 - mov r12, r1 - cmp r3, r0 - bge _080AB80E - mov r7, r12 - movs r5, 0xF0 - lsls r5, 3 - add r5, r12 - ldr r6, _080AB8A4 @ =0x0000ffff -_080AB7E8: - lsls r2, r3, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r7 - adds r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r6, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _080AB7E8 -_080AB80E: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080AB848 - ldr r5, _080AB8A0 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080AB8A4 @ =0x0000ffff -_080AB826: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldrh r1, [r4, 0xA] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080AB826 -_080AB848: - ldrh r3, [r4, 0x12] - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - bgt _080AB87E - ldr r5, _080AB8A0 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080AB8A4 @ =0x0000ffff -_080AB85C: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - ble _080AB85C -_080AB87E: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AB8A8 - lsls r0, r3, 16 - asrs r0, 15 - mov r3, r12 - adds r2, r0, r3 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xA] - strh r1, [r0] - ldrh r0, [r4, 0xA] - b _080AB8BE - .align 2, 0 -_080AB8A0: .4byte gUnknown_2038700 -_080AB8A4: .4byte 0x0000ffff -_080AB8A8: - lsls r0, r3, 16 - asrs r0, 15 - mov r1, r12 - adds r2, r0, r1 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xC] - strh r1, [r0] - ldrh r0, [r4, 0xC] -_080AB8BE: - strh r0, [r2] - ldr r0, _080AB8E8 @ =0x04000052 - str r0, [sp] - ldr r0, _080AB8EC @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080ABA66 - .align 2, 0 -_080AB8E8: .4byte 0x04000052 -_080AB8EC: .4byte 0xa2600001 -_080AB8F0: - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080AB908 - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bgt _080AB91C - strh r1, [r4, 0x10] - b _080AB916 -_080AB908: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080AB91C -_080AB916: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080AB91C: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080AB950 - ldr r6, _080AB9B4 @ =gUnknown_2038700 - ldr r5, _080AB9B8 @ =gUnknown_2039600 -_080AB92A: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080AB92A -_080AB950: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080AB984 - ldr r6, _080AB9B4 @ =gUnknown_2038700 - ldr r5, _080AB9B8 @ =gUnknown_2039600 -_080AB962: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080AB962 -_080AB984: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080ABA66 - ldr r6, _080AB9B4 @ =gUnknown_2038700 - ldr r5, _080AB9B8 @ =gUnknown_2039600 -_080AB992: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080AB992 - b _080ABA66 - .align 2, 0 -_080AB9B4: .4byte gUnknown_2038700 -_080AB9B8: .4byte gUnknown_2039600 -_080AB9BC: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080AB9F0 - ldr r6, _080ABA70 @ =gUnknown_2038700 - ldr r5, _080ABA74 @ =gUnknown_2039600 -_080AB9CA: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080AB9CA -_080AB9F0: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080ABA24 - ldr r6, _080ABA70 @ =gUnknown_2038700 - ldr r5, _080ABA74 @ =gUnknown_2039600 -_080ABA02: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080ABA02 -_080ABA24: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080ABA50 - ldr r6, _080ABA70 @ =gUnknown_2038700 - ldr r5, _080ABA74 @ =gUnknown_2039600 -_080ABA32: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080ABA32 -_080ABA50: - movs r0, 0x26 - ldrsh r1, [r4, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080ABA66 - bl remove_some_task - adds r0, r7, 0 - bl DestroyTask -_080ABA66: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ABA70: .4byte gUnknown_2038700 -_080ABA74: .4byte gUnknown_2039600 - thumb_func_end sub_80AB79C - - thumb_func_start sub_80ABA78 -sub_80ABA78: @ 80ABA78 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080ABACC @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080ABAD0 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080ABAD4 @ =0x000001ff - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080ABABE - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080ABABE: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080ABAD8 @ =sub_80ABADC - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ABACC: .4byte 0x000003ff -_080ABAD0: .4byte 0xfffffc00 -_080ABAD4: .4byte 0x000001ff -_080ABAD8: .4byte sub_80ABADC - thumb_func_end sub_80ABA78 - - thumb_func_start sub_80ABADC -sub_80ABADC: @ 80ABADC - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080ABB00 - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080ABB04 -_080ABB00: - lsls r0, r3, 16 - asrs r0, 24 -_080ABB04: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080ABB22 - adds r0, r2, 0 - bl DestroyAnimSprite -_080ABB22: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ABADC - - thumb_func_start sub_80ABB28 -sub_80ABB28: @ 80ABB28 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080ABB78 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r2, _080ABB7C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x12] - bl sub_80ABDC8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80758E0 - ldr r0, _080ABB80 @ =sub_80ABB84 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ABB78: .4byte gTasks -_080ABB7C: .4byte gSprites -_080ABB80: .4byte sub_80ABB84 - thumb_func_end sub_80ABB28 - - thumb_func_start sub_80ABB84 -sub_80ABB84: @ 80ABB84 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080ABBAC @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bls _080ABBA0 - b _080ABDBE -_080ABBA0: - lsls r0, 2 - ldr r1, _080ABBB0 @ =_080ABBB4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ABBAC: .4byte gTasks -_080ABBB0: .4byte _080ABBB4 - .align 2, 0 -_080ABBB4: - .4byte _080ABBD4 - .4byte _080ABBFA - .4byte _080ABC8C - .4byte _080ABCC2 - .4byte _080ABCD6 - .4byte _080ABCE4 - .4byte _080ABD64 - .4byte _080ABDB0 -_080ABBD4: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0xE0 - str r0, [sp] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x4] - movs r0, 0x20 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r2, r3, 0 - bl sub_80765D4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080ABBFA: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080ABC56 - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ABC44 - ldr r2, _080ABC40 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x24] - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] - b _080ABC56 - .align 2, 0 -_080ABC40: .4byte gSprites -_080ABC44: - ldr r2, _080ABC84 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080ABC88 @ =0x0000fffd - strh r1, [r0, 0x24] -_080ABC56: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080ABC66 - b _080ABDBE -_080ABC66: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8076440 - ldr r2, _080ABC84 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x24] - strh r5, [r4, 0xE] - b _080ABDA0 - .align 2, 0 -_080ABC84: .4byte gSprites -_080ABC88: .4byte 0x0000fffd -_080ABC8C: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080ABC9C - b _080ABDBE -_080ABC9C: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xE0 - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_80765D4 - movs r0, 0 - strh r0, [r4, 0xE] - b _080ABDA2 -_080ABCC2: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080ABDBE - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080ABDA2 -_080ABCD6: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80ABE4C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080ABCE4: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080ABDBE - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ABD1C - ldr r2, _080ABD18 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x2 - b _080ABD2E - .align 2, 0 -_080ABD18: .4byte gSprites -_080ABD1C: - ldr r2, _080ABD60 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x2 -_080ABD2E: - strh r1, [r0, 0x26] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080ABDBE - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xE0 - bl sub_80765D4 - movs r0, 0 - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080ABDA2 - .align 2, 0 -_080ABD60: .4byte gSprites -_080ABD64: - ldr r6, _080ABDAC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080ABDBE - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8075980 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0x12] - strh r1, [r0, 0x22] -_080ABDA0: - strh r5, [r4, 0x10] -_080ABDA2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080ABDBE - .align 2, 0 -_080ABDAC: .4byte gSprites -_080ABDB0: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080ABDBE - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080ABDBE: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80ABB84 - - thumb_func_start sub_80ABDC8 -sub_80ABDC8: @ 80ABDC8 - push {r4,r5,lr} - ldr r4, _080ABDEC @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080ABDFC - ldr r1, _080ABDF0 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080ABDF4 @ =gPlayerParty - b _080ABE0C - .align 2, 0 -_080ABDEC: .4byte gUnknown_2037F1A -_080ABDF0: .4byte gBattlerPartyIndexes -_080ABDF4: .4byte gPlayerParty -_080ABDF8: - adds r0, r2, 0 - b _080ABE3E -_080ABDFC: - ldr r1, _080ABE44 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080ABE48 @ =gEnemyParty -_080ABE0C: - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - lsrs r4, 18 - movs r2, 0 -_080ABE2A: - adds r1, r2, 0x1 - adds r0, r4, 0 - muls r0, r1 - cmp r3, r0 - blt _080ABDF8 - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080ABE2A - movs r0, 0x3 -_080ABE3E: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080ABE44: .4byte gBattlerPartyIndexes -_080ABE48: .4byte gEnemyParty - thumb_func_end sub_80ABDC8 - - thumb_func_start sub_80ABE4C -sub_80ABE4C: @ 80ABE4C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - ldr r4, _080ABF54 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0xAC - ldrb r0, [r4] - bl sub_807685C - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldrh r1, [r7, 0xA] - movs r0, 0x4 - subs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r0, 0 - bgt _080ABE9C - movs r1, 0x1 -_080ABE9C: - movs r0, 0 - str r0, [sp, 0x4] - lsls r0, r1, 16 - mov r10, r8 - mov r9, r6 - mov r1, r10 - lsls r1, 4 - str r1, [sp, 0xC] - mov r1, r9 - lsls r1, 4 - str r1, [sp, 0x10] - asrs r0, 16 - mov r8, r0 -_080ABEB6: - ldr r0, _080ABF58 @ =gUnknown_83E5AE0 - mov r1, r10 - mov r2, r9 - ldr r3, [sp, 0x8] - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r6, r5, 16 - cmp r2, 0x40 - beq _080ABF1E - ldr r1, _080ABF5C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r1 - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x30] - mov r1, sp - ldrh r1, [r1, 0xC] - strh r1, [r5, 0x32] - mov r0, sp - ldrh r0, [r0, 0x10] - strh r0, [r5, 0x34] - asrs r4, r6, 16 - adds r0, r4, 0 - movs r1, 0x40 - bl Cos - strh r0, [r5, 0x36] - adds r0, r4, 0 - movs r1, 0x40 - bl Sin - strh r0, [r5, 0x38] - mov r1, sp - ldrh r1, [r1] - strh r1, [r5, 0x3A] - movs r0, 0x2 - strh r0, [r5, 0x3C] - ldrh r1, [r7, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ABF18 - adds r0, r5, 0 - bl sub_80ABF60 -_080ABF18: - ldrh r0, [r7, 0xC] - adds r0, 0x1 - strh r0, [r7, 0xC] -_080ABF1E: - mov r1, r8 - lsls r0, r1, 1 - asrs r1, r6, 16 - adds r1, r0 - lsls r1, 16 - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r5, r0, 16 - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - asrs r0, 16 - add r0, r8 - lsls r0, 16 - lsrs r1, r0, 16 - str r1, [sp, 0x4] - asrs r0, 16 - cmp r0, 0x13 - ble _080ABEB6 - 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 -_080ABF54: .4byte gUnknown_2037F1A -_080ABF58: .4byte gUnknown_83E5AE0 -_080ABF5C: .4byte gSprites - thumb_func_end sub_80ABE4C - - thumb_func_start sub_80ABF60 -sub_80ABF60: @ 80ABF60 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080ABF72 - cmp r0, 0x1 - beq _080ABFA8 - b _080AC002 -_080ABF72: - movs r2, 0x30 - ldrsh r0, [r4, r2] - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r0, [r4, 0x36] - adds r1, r0 - strh r1, [r4, 0x36] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080ABFA8: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r2, r1, 20 - strh r2, [r4, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080ABFDE - adds r1, r2, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080ABFDE - cmp r1, 0x78 - ble _080AC002 -_080ABFDE: - ldr r3, _080AC008 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080AC002: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC008: .4byte gTasks - thumb_func_end sub_80ABF60 - - thumb_func_start sub_80AC00C -sub_80AC00C: @ 80AC00C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AC03C @ =gTasks - adds r4, r1, r0 - bl sub_80ABDC8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldr r0, _080AC040 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AC044 - movs r0, 0x88 - strh r0, [r4, 0x10] - movs r0, 0x28 - b _080AC04A - .align 2, 0 -_080AC03C: .4byte gTasks -_080AC040: .4byte gUnknown_2037F1A -_080AC044: - movs r0, 0x10 - strh r0, [r4, 0x10] - movs r0, 0x50 -_080AC04A: - strh r0, [r4, 0x14] - movs r0, 0x62 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r0, 0x31 - strh r0, [r4, 0x16] - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x5 - strh r0, [r4, 0x20] - ldr r0, _080AC06C @ =sub_80AC070 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC06C: .4byte sub_80AC070 - thumb_func_end sub_80AC00C - - thumb_func_start sub_80AC070 -sub_80AC070: @ 80AC070 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r7, _080AC094 @ =gTasks - adds r4, r0, r7 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _080AC098 - cmp r2, 0x1 - beq _080AC148 - b _080AC156 - .align 2, 0 -_080AC094: .4byte gTasks -_080AC098: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080AC0AE - strh r2, [r4, 0xC] - adds r0, r4, 0 - bl sub_80AC160 -_080AC0AE: - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AC128 - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AC128 - ldr r5, _080AC13C @ =gUnknown_2037F02 - movs r1, 0x1 - mov r8, r1 - mov r2, r8 - strh r2, [r5] - strh r0, [r5, 0x2] - movs r0, 0xC - strh r0, [r5, 0x4] - ldr r6, _080AC140 @ =sub_80B94B4 - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080AC0F8 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080AC144 @ =gUnknown_2037EE2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080AC0F8: - movs r0, 0x3 - strh r0, [r5] - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080AC124 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080AC144 @ =gUnknown_2037EE2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080AC124: - mov r0, r8 - strh r0, [r4, 0x22] -_080AC128: - movs r2, 0x1E - ldrsh r1, [r4, r2] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080AC156 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AC156 - .align 2, 0 -_080AC13C: .4byte gUnknown_2037F02 -_080AC140: .4byte sub_80B94B4 -_080AC144: .4byte gUnknown_2037EE2 -_080AC148: - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AC156 - adds r0, r1, 0 - bl DestroyAnimVisualTask -_080AC156: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AC070 - - thumb_func_start sub_80AC160 -sub_80AC160: @ 80AC160 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _080AC1EC @ =gUnknown_825E074 - movs r2, 0x18 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x3 - asrs r0, 4 - ldrh r2, [r4, 0x14] - adds r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080AC1F0 @ =gUnknown_83E5AE0 - movs r2, 0x16 - ldrsh r1, [r4, r2] - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080AC1BA - ldr r3, _080AC1F4 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _080AC1F8 @ =sub_80AC204 - str r2, [r1] - adds r0, r3 - strh r5, [r0, 0x38] - strh r6, [r0, 0x3A] - movs r1, 0x9 - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] -_080AC1BA: - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x18] - adds r0, 0x27 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x18] - movs r0, 0x16 - ldrsh r1, [r4, r0] - ldr r0, _080AC1FC @ =0x41c64e6d - muls r0, r1 - ldr r1, _080AC200 @ =0x00003039 - adds r0, r1 - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - ldrh r1, [r4, 0x10] - adds r1, r0 - strh r1, [r4, 0x16] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC1EC: .4byte gUnknown_825E074 -_080AC1F0: .4byte gUnknown_83E5AE0 -_080AC1F4: .4byte gSprites -_080AC1F8: .4byte sub_80AC204 -_080AC1FC: .4byte 0x41c64e6d -_080AC200: .4byte 0x00003039 - thumb_func_end sub_80AC160 - - thumb_func_start sub_80AC204 -sub_80AC204: @ 80AC204 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AC29A - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _080AC29A - ldr r2, _080AC2A0 @ =gTasks - movs r3, 0x3A - ldrsh r1, [r5, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x1C] - ldr r0, _080AC2A4 @ =gUnknown_83E7C38 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x30] - cmp r0, 0x40 - beq _080AC294 - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080AC2A8 @ =gSprites - adds r0, r4 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r2, 0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3A] - strh r1, [r0, 0x3A] - movs r3, 0x30 - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3C] - strh r1, [r0, 0x3C] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080AC2AC @ =sub_80AC2B0 - str r1, [r0] -_080AC294: - adds r0, r5, 0 - bl DestroySprite -_080AC29A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC2A0: .4byte gTasks -_080AC2A4: .4byte gUnknown_83E7C38 -_080AC2A8: .4byte gSprites -_080AC2AC: .4byte sub_80AC2B0 - thumb_func_end sub_80AC204 - - thumb_func_start sub_80AC2B0 -sub_80AC2B0: @ 80AC2B0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AC31C - movs r0, 0 - strh r0, [r4, 0x30] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080AC31C - ldr r3, _080AC324 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080AC31C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC324: .4byte gTasks - thumb_func_end sub_80AC2B0 - - thumb_func_start sub_80AC328 -sub_80AC328: @ 80AC328 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AC3AC @ =gTasks - adds r5, r1, r0 - ldr r4, _080AC3B0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0xE] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x10] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080AC36C - movs r1, 0x1 -_080AC36C: - strh r1, [r5, 0x16] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080AC380 - movs r1, 0x16 - ldrsh r0, [r5, r1] - negs r0, r0 - strh r0, [r5, 0x16] -_080AC380: - movs r2, 0x16 - ldrsh r0, [r5, r2] - lsls r0, 3 - ldrh r1, [r5, 0xE] - adds r0, r1 - strh r0, [r5, 0x12] - movs r2, 0x16 - ldrsh r1, [r5, r2] - lsls r1, 3 - ldrh r0, [r5, 0x10] - subs r0, r1 - strh r0, [r5, 0x14] - ldr r0, _080AC3B4 @ =0x0000ffe0 - strh r0, [r5, 0x1A] - strh r6, [r5, 0xA] - strh r6, [r5, 0x8] - ldr r0, _080AC3B8 @ =sub_80AC3BC - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC3AC: .4byte gTasks -_080AC3B0: .4byte gUnknown_2037F1A -_080AC3B4: .4byte 0x0000ffe0 -_080AC3B8: .4byte sub_80AC3BC - thumb_func_end sub_80AC328 - - thumb_func_start sub_80AC3BC -sub_80AC3BC: @ 80AC3BC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080AC3E0 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bls _080AC3D6 - b _080AC4F6 -_080AC3D6: - lsls r0, 2 - ldr r1, _080AC3E4 @ =_080AC3E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AC3E0: .4byte gTasks -_080AC3E4: .4byte _080AC3E8 - .align 2, 0 -_080AC3E8: - .4byte _080AC404 - .4byte _080AC414 - .4byte _080AC42E - .4byte _080AC470 - .4byte _080AC492 - .4byte _080AC4C0 - .4byte _080AC4E6 -_080AC404: - adds r0, r4, 0 - bl sub_80AC504 - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AC4FC - b _080AC4EE -_080AC414: - adds r0, r4, 0 - bl sub_80AC504 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080AC4FC - movs r0, 0 - strh r0, [r4, 0xA] - b _080AC4EE -_080AC42E: - adds r0, r4, 0 - bl sub_80AC504 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - adds r1, r0 - movs r2, 0 - strh r1, [r4, 0x12] - adds r1, 0x10 - lsls r1, 16 - movs r0, 0x88 - lsls r0, 17 - cmp r1, r0 - bls _080AC4FC - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080AC46C - movs r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x6 - strh r0, [r4, 0x8] - strh r2, [r4, 0xA] - b _080AC4FC -_080AC46C: - strh r2, [r4, 0xA] - b _080AC4EE -_080AC470: - adds r0, r4, 0 - bl sub_80AC504 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080AC4FC - b _080AC4EE -_080AC492: - adds r0, r4, 0 - bl sub_80AC504 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x12] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bls _080AC4FC - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0xA] - b _080AC4EE -_080AC4C0: - adds r0, r4, 0 - bl sub_80AC504 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080AC4FC - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080AC4FC -_080AC4E6: - movs r1, 0x18 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AC4FC -_080AC4EE: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AC4FC -_080AC4F6: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080AC4FC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AC3BC - - thumb_func_start sub_80AC504 -sub_80AC504: @ 80AC504 - push {r4-r6,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0xC] - adds r0, 0x1 - strh r0, [r6, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AC55E - movs r0, 0 - strh r0, [r6, 0xC] - ldr r0, _080AC564 @ =gUnknown_83E5AE0 - movs r2, 0xE - ldrsh r1, [r6, r2] - movs r3, 0x10 - ldrsh r2, [r6, r3] - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080AC55E - ldr r5, _080AC568 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - movs r1, 0x10 - strh r1, [r0, 0x2E] - ldrh r1, [r6, 0x12] - strh r1, [r0, 0x32] - ldrh r1, [r6, 0x14] - strh r1, [r0, 0x36] - ldrh r1, [r6, 0x1A] - strh r1, [r0, 0x38] - bl sub_8075068 - adds r5, 0x1C - adds r4, r5 - ldr r0, _080AC56C @ =sub_80AC570 - str r0, [r4] - ldrh r0, [r6, 0x18] - adds r0, 0x1 - strh r0, [r6, 0x18] -_080AC55E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC564: .4byte gUnknown_83E5AE0 -_080AC568: .4byte gSprites -_080AC56C: .4byte sub_80AC570 - thumb_func_end sub_80AC504 - - thumb_func_start sub_80AC570 -sub_80AC570: @ 80AC570 - push {r4-r6,lr} - adds r6, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080AC5CA - ldrh r0, [r6, 0x24] - ldrh r1, [r6, 0x20] - adds r0, r1 - strh r0, [r6, 0x20] - ldrh r0, [r6, 0x26] - ldrh r1, [r6, 0x22] - adds r0, r1 - strh r0, [r6, 0x22] - movs r0, 0x6 - strh r0, [r6, 0x2E] - bl Random - movs r4, 0x1F - adds r1, r4, 0 - ands r1, r0 - ldr r5, _080AC5D0 @ =0x0000fff0 - adds r1, r5 - ldrh r0, [r6, 0x20] - adds r1, r0 - strh r1, [r6, 0x32] - bl Random - ands r4, r0 - adds r4, r5 - ldrh r1, [r6, 0x22] - adds r4, r1 - strh r4, [r6, 0x36] - bl Random - movs r1, 0x7 - ands r1, r0 - mvns r1, r1 - strh r1, [r6, 0x38] - adds r0, r6, 0 - bl sub_8075068 - ldr r0, _080AC5D4 @ =sub_80AC5D8 - str r0, [r6, 0x1C] -_080AC5CA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC5D0: .4byte 0x0000fff0 -_080AC5D4: .4byte sub_80AC5D8 - thumb_func_end sub_80AC570 - - thumb_func_start sub_80AC5D8 -sub_80AC5D8: @ 80AC5D8 - push {r4-r6,lr} - adds r5, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080AC614 - movs r4, 0 - ldr r6, _080AC61C @ =gTasks -_080AC5EA: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r6 - ldr r1, [r2] - ldr r0, _080AC620 @ =sub_80AC3BC - cmp r1, r0 - bne _080AC60A - movs r0, 0x1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0x18] - subs r0, 0x1 - strh r0, [r2, 0x18] - adds r0, r5, 0 - bl DestroySprite -_080AC60A: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080AC5EA -_080AC614: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AC61C: .4byte gTasks -_080AC620: .4byte sub_80AC3BC - thumb_func_end sub_80AC5D8 - - thumb_func_start sub_80AC624 -sub_80AC624: @ 80AC624 - ldr r2, _080AC644 @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x20] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x2E] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0x30] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0x32] - ldrh r1, [r2, 0xA] - strh r1, [r0, 0x34] - ldr r1, _080AC648 @ =sub_80AC64C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080AC644: .4byte gUnknown_2037F02 -_080AC648: .4byte sub_80AC64C - thumb_func_end sub_80AC624 - - thumb_func_start sub_80AC64C -sub_80AC64C: @ 80AC64C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x2E] - subs r0, r1 - strh r0, [r4, 0x36] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080AC690 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AC690: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AC64C - - thumb_func_start sub_80AC698 -sub_80AC698: @ 80AC698 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 23 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 23 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080AC6D0 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080AC6D0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AC698 - - thumb_func_start sub_80AC6D8 -sub_80AC6D8: @ 80AC6D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080AC714 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r1, _080AC718 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldr r0, _080AC71C @ =sub_80AC720 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC714: .4byte gUnknown_2037F1B -_080AC718: .4byte gUnknown_2037F02 -_080AC71C: .4byte sub_80AC720 - thumb_func_end sub_80AC6D8 - - thumb_func_start sub_80AC720 -sub_80AC720: @ 80AC720 - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x20 - ldrsh r0, [r4, r2] - subs r6, r1, r0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x22 - ldrsh r0, [r4, r2] - subs r5, r1, r0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r6 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r5 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080AC778 - movs r0, 0 - strh r0, [r4, 0x38] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80AC798 -_080AC778: - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080AC78A - adds r0, r4, 0 - bl DestroyAnimSprite -_080AC78A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80AC720 - - thumb_func_start sub_80AC798 -sub_80AC798: @ 80AC798 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r4, r1, 0 - adds r5, r2, 0 - movs r2, 0x2E - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - lsls r1, 15 - lsrs r1, 16 - str r1, [sp] - ldrh r1, [r0, 0x24] - ldrh r3, [r0, 0x20] - adds r1, r3 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r0, r5, r0 - subs r0, 0x5 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - bl Random - negs r4, r4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r4, r0 - subs r4, 0x5 - lsls r4, 16 - lsrs r7, r4, 16 - movs r6, 0 - mov r0, r8 - lsls r0, 16 - mov r8, r0 - mov r1, r10 - lsls r1, 16 - str r1, [sp, 0xC] - ldr r2, [sp] - lsls r2, 16 - str r2, [sp, 0x10] - asrs r1, 16 - lsls r0, r7, 16 - asrs r5, r0, 16 - str r0, [sp, 0x14] - negs r3, r5 - str r3, [sp, 0x4] - asrs r0, r2, 16 - adds r1, r0 - lsls r1, 16 - mov r10, r1 -_080AC826: - ldr r0, _080AC868 @ =gUnknown_83E5B88 - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080AC86C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080AC870 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - bge _080AC874 - mov r1, sp - ldrh r1, [r1, 0x4] - strh r1, [r4, 0x32] - b _080AC876 - .align 2, 0 -_080AC868: .4byte gUnknown_83E5B88 -_080AC86C: .4byte gSprites -_080AC870: .4byte gUnknown_2037F1A -_080AC874: - strh r7, [r4, 0x32] -_080AC876: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080AC826 - movs r6, 0 - ldr r3, [sp, 0xC] - asrs r1, r3, 16 - ldr r0, [sp, 0x14] - asrs r5, r0, 16 - negs r2, r5 - str r2, [sp, 0x8] - ldr r3, [sp, 0x10] - asrs r0, r3, 16 - subs r1, r0 - lsls r1, 16 - mov r10, r1 -_080AC89C: - ldr r0, _080AC8E0 @ =gUnknown_83E5B88 - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080AC8E4 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080AC8E8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807685C - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - ble _080AC8EC - mov r1, sp - ldrh r1, [r1, 0x8] - strh r1, [r4, 0x32] - b _080AC8EE - .align 2, 0 -_080AC8E0: .4byte gUnknown_83E5B88 -_080AC8E4: .4byte gSprites -_080AC8E8: .4byte gUnknown_2037F1A -_080AC8EC: - strh r7, [r4, 0x32] -_080AC8EE: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080AC89C - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AC798 - - thumb_func_start sub_80AC90C -sub_80AC90C: @ 80AC90C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AC940 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x2E] - movs r0, 0x3C - strh r0, [r4, 0x30] - movs r0, 0x9 - strh r0, [r4, 0x32] - movs r0, 0x1E - strh r0, [r4, 0x34] - movs r0, 0xFE - lsls r0, 8 - strh r0, [r4, 0x36] - ldr r1, _080AC944 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080AC948 @ =sub_8074AE0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC940: .4byte gUnknown_2037F02 -_080AC944: .4byte DestroyAnimSprite -_080AC948: .4byte sub_8074AE0 - thumb_func_end sub_80AC90C - - thumb_func_start sub_80AC94C -sub_80AC94C: @ 80AC94C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080AC984 @ =gUnknown_2037F02 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_8074FF8 - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x32] - ldr r0, _080AC988 @ =sub_8074D00 - str r0, [r4, 0x1C] - ldr r1, _080AC98C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AC984: .4byte gUnknown_2037F02 -_080AC988: .4byte sub_8074D00 -_080AC98C: .4byte DestroyAnimSprite - thumb_func_end sub_80AC94C - - thumb_func_start sub_80AC990 -sub_80AC990: @ 80AC990 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080AC9C4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AC9CC - ldr r2, _080AC9C8 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x8] - negs r0, r0 - strh r0, [r4, 0x32] - adds r1, r2, 0 - b _080AC9E2 - .align 2, 0 -_080AC9C4: .4byte gUnknown_2037F1A -_080AC9C8: .4byte gUnknown_2037F02 -_080AC9CC: - ldr r1, _080AC9F8 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] -_080AC9E2: - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080AC9FC @ =sub_80ACA6C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AC9F8: .4byte gUnknown_2037F02 -_080AC9FC: .4byte sub_80ACA6C - thumb_func_end sub_80AC990 - - thumb_func_start sub_80ACA00 -sub_80ACA00: @ 80ACA00 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080ACA2C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ACA34 - ldr r2, _080ACA30 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x8] - strh r0, [r4, 0x32] - adds r1, r2, 0 - b _080ACA4C - .align 2, 0 -_080ACA2C: .4byte gUnknown_2037F1A -_080ACA30: .4byte gUnknown_2037F02 -_080ACA34: - ldr r1, _080ACA64 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x8] - negs r0, r0 - strh r0, [r4, 0x32] -_080ACA4C: - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080ACA68 @ =sub_80ACA6C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACA64: .4byte gUnknown_2037F02 -_080ACA68: .4byte sub_80ACA6C - thumb_func_end sub_80ACA00 - - thumb_func_start sub_80ACA6C -sub_80ACA6C: @ 80ACA6C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x36 - ldrsh r1, [r2, r3] - cmp r0, r1 - bge _080ACA92 - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x34] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] -_080ACA92: - movs r0, 0x2E - ldrsh r1, [r2, r0] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r1, r0 - bne _080ACAA4 - adds r0, r2, 0 - bl move_anim_8074EE0 -_080ACAA4: - pop {r0} - bx r0 - thumb_func_end sub_80ACA6C - - thumb_func_start sub_80ACAA8 -sub_80ACAA8: @ 80ACAA8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074FCC - ldr r0, _080ACACC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ACAD4 - ldr r0, _080ACAD0 @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080ACAE6 - .align 2, 0 -_080ACACC: .4byte gUnknown_2037F1A -_080ACAD0: .4byte gUnknown_2037F02 -_080ACAD4: - ldr r0, _080ACB14 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - adds r2, r4, 0 - adds r2, 0x43 - movs r1, 0x8 - strb r1, [r2] -_080ACAE6: - adds r2, r0, 0 - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r2, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r2, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r2, 0xA] - strh r0, [r4, 0x34] - ldrh r0, [r2, 0xC] - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - ldr r0, _080ACB18 @ =sub_80ACB1C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACB14: .4byte gUnknown_2037F02 -_080ACB18: .4byte sub_80ACB1C - thumb_func_end sub_80ACAA8 - - thumb_func_start sub_80ACB1C -sub_80ACB1C: @ 80ACB1C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080ACBA4 - movs r2, 0x38 - ldrsh r1, [r4, r2] - ldr r0, _080ACB88 @ =0x00002710 - cmp r1, r0 - ble _080ACB3A - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1 - strb r0, [r1] -_080ACB3A: - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080ACB90 - ldr r2, _080ACB8C @ =0xffffff00 - b _080ACB98 - .align 2, 0 -_080ACB88: .4byte 0x00002710 -_080ACB8C: .4byte 0xffffff00 -_080ACB90: - cmp r0, 0 - bge _080ACB9C - movs r2, 0x80 - lsls r2, 1 -_080ACB98: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080ACB9C: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080ACBAA -_080ACBA4: - adds r0, r4, 0 - bl move_anim_8074EE0 -_080ACBAA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ACB1C - - thumb_func_start sub_80ACBB0 -sub_80ACBB0: @ 80ACBB0 - push {lr} - movs r1, 0 - strh r1, [r0, 0x20] - strh r1, [r0, 0x22] - movs r1, 0x3C - strh r1, [r0, 0x2E] - movs r1, 0x8C - strh r1, [r0, 0x32] - movs r1, 0x50 - strh r1, [r0, 0x36] - ldr r1, _080ACBD4 @ =sub_8075590 - str r1, [r0, 0x1C] - ldr r1, _080ACBD8 @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080ACBD4: .4byte sub_8075590 -_080ACBD8: .4byte DestroyAnimSprite - thumb_func_end sub_80ACBB0 - - thumb_func_start sub_80ACBDC -sub_80ACBDC: @ 80ACBDC - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _080ACC34 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - adds r4, r0, 0 - ldr r0, _080ACC38 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080ACC22 - movs r0, 0x2 - bl GetBattlerAtPosition - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _080ACC1A - movs r0, 0x3 - bl GetBattlerAtPosition - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _080ACC22 -_080ACC1A: - ldr r1, _080ACC3C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080ACC22: - ldr r1, _080ACC40 @ =sub_8075F0C - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ACC34: .4byte gUnknown_2037F1A -_080ACC38: .4byte gUnknown_2037F1B -_080ACC3C: .4byte gUnknown_2037F02 -_080ACC40: .4byte sub_8075F0C - thumb_func_end sub_80ACBDC - - thumb_func_start sub_80ACC44 -sub_80ACC44: @ 80ACC44 - ldr r2, _080ACC58 @ =gUnknown_2037F02 - ldrh r1, [r2] - negs r1, r1 - strh r1, [r2] - ldrh r1, [r2, 0x4] - negs r1, r1 - strh r1, [r2, 0x4] - ldr r1, _080ACC5C @ =sub_8075F0C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080ACC58: .4byte gUnknown_2037F02 -_080ACC5C: .4byte sub_8075F0C - thumb_func_end sub_80ACC44 - - thumb_func_start sub_80ACC60 -sub_80ACC60: @ 80ACC60 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080ACC80 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - movs r1, 0 - strh r0, [r4, 0x3C] - strh r1, [r4, 0x2E] - ldr r0, _080ACC84 @ =sub_80ACC88 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACC80: .4byte gUnknown_2037F02 -_080ACC84: .4byte sub_80ACC88 - thumb_func_end sub_80ACC60 - - thumb_func_start sub_80ACC88 -sub_80ACC88: @ 80ACC88 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_80ACD7C - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x12 - bne _080ACCD2 - movs r0, 0x19 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080ACCD8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080ACCDC @ =sub_80ACCE0 - str r0, [r5, 0x1C] -_080ACCD2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ACCD8: .4byte gUnknown_2037F1B -_080ACCDC: .4byte sub_80ACCE0 - thumb_func_end sub_80ACC88 - - thumb_func_start sub_80ACCE0 -sub_80ACCE0: @ 80ACCE0 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080ACD28 - movs r4, 0 - strh r4, [r6, 0x2E] - ldr r5, _080ACD20 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - strh r4, [r6, 0x26] - strh r4, [r6, 0x24] - ldr r1, _080ACD24 @ =sub_80ACD58 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - b _080ACD52 - .align 2, 0 -_080ACD20: .4byte gUnknown_2037F1B -_080ACD24: .4byte sub_80ACD58 -_080ACD28: - movs r1, 0x3C - ldrsh r0, [r6, r1] - movs r1, 0x1C - bl Sin - ldrh r1, [r6, 0x24] - adds r0, r1 - strh r0, [r6, 0x24] - movs r1, 0x3C - ldrsh r0, [r6, r1] - movs r1, 0x1C - bl Cos - ldrh r1, [r6, 0x26] - adds r0, r1 - strh r0, [r6, 0x26] - ldrh r0, [r6, 0x3C] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r6, 0x3C] -_080ACD52: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80ACCE0 - - thumb_func_start sub_80ACD58 -sub_80ACD58: @ 80ACD58 - push {r4,lr} - adds r4, r0, 0 - bl sub_80ACD7C - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080ACD74 - adds r0, r4, 0 - bl DestroyAnimSprite -_080ACD74: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ACD58 - - thumb_func_start sub_80ACD7C -sub_80ACD7C: @ 80ACD7C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x1C - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x1C - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ACD7C - - thumb_func_start sub_80ACDA8 -sub_80ACDA8: @ 80ACDA8 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080ACDDC @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] - ldr r1, _080ACDE0 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080ACDE4 @ =sub_8074CD0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACDDC: .4byte gUnknown_2037F02 -_080ACDE0: .4byte DestroyAnimSprite -_080ACDE4: .4byte sub_8074CD0 - thumb_func_end sub_80ACDA8 - - thumb_func_start sub_80ACDE8 -sub_80ACDE8: @ 80ACDE8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080ACE1C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x2E] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080ACE20 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080ACE24 @ =sub_80ACE28 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ACE1C: .4byte gUnknown_2037F02 -_080ACE20: .4byte sub_8074C44 -_080ACE24: .4byte sub_80ACE28 - thumb_func_end sub_80ACDE8 - - thumb_func_start sub_80ACE28 -sub_80ACE28: @ 80ACE28 - push {lr} - adds r3, r0, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r3] - ldrh r1, [r0, 0x30] - movs r2, 0 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - ldr r1, _080ACE4C @ =sub_80ACE50 - str r1, [r0, 0x1C] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080ACE4C: .4byte sub_80ACE50 - thumb_func_end sub_80ACE28 - - thumb_func_start sub_80ACE50 -sub_80ACE50: @ 80ACE50 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - adds r0, 0xD0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080ACE9C - adds r0, r4, 0 - bl DestroyAnimSprite -_080ACE9C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ACE50 - - thumb_func_start sub_80ACEA4 -sub_80ACEA4: @ 80ACEA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080ACF04 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x26] - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - ldr r2, _080ACF08 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x10] - ldr r0, _080ACF0C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - strh r5, [r4, 0x14] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80758E0 - ldr r0, _080ACF10 @ =sub_80ACF14 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ACF04: .4byte gTasks -_080ACF08: .4byte gSprites -_080ACF0C: .4byte gUnknown_2037F1A -_080ACF10: .4byte sub_80ACF14 - thumb_func_end sub_80ACEA4 - - thumb_func_start sub_80ACF14 -sub_80ACF14: @ 80ACF14 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080ACF3C @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bls _080ACF30 - b _080AD1EE -_080ACF30: - lsls r0, 2 - ldr r1, _080ACF40 @ =_080ACF44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ACF3C: .4byte gTasks -_080ACF40: .4byte _080ACF44 - .align 2, 0 -_080ACF44: - .4byte _080ACF60 - .4byte _080ACF86 - .4byte _080AD038 - .4byte _080AD098 - .4byte _080AD0B6 - .4byte _080AD18C - .4byte _080AD1E0 -_080ACF60: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0xE0 - str r0, [sp] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x4] - movs r0, 0x20 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r2, r3, 0 - bl sub_80765D4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080ACF86: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080ACFCE - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ACFBC - ldr r2, _080ACFB8 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - b _080ACFCC - .align 2, 0 -_080ACFB8: .4byte gSprites -_080ACFBC: - ldr r2, _080AD030 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080AD034 @ =0x0000fffd -_080ACFCC: - strh r1, [r0, 0x24] -_080ACFCE: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080ACFFC - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080ACFFC - movs r0, 0 - strh r0, [r4, 0xE] - ldr r2, _080AD030 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] -_080ACFFC: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080AD00C - b _080AD1EE -_080AD00C: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8076440 - ldr r2, _080AD030 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x24] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - b _080AD1D4 - .align 2, 0 -_080AD030: .4byte gSprites -_080AD034: .4byte 0x0000fffd -_080AD038: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080AD048 - b _080AD1EE -_080AD048: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AD072 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xF0 - str r0, [sp, 0x4] - movs r0, 0x6 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_80765D4 - b _080AD092 -_080AD072: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xC0 - str r0, [sp, 0x4] - movs r0, 0x6 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_80765D4 -_080AD092: - movs r0, 0 - strh r0, [r4, 0xA] - b _080AD1D4 -_080AD098: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - cmp r0, 0 - beq _080AD0A6 - b _080AD1EE -_080AD0A6: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - movs r2, 0x6 - bl sub_80AD1F8 - b _080AD1D4 -_080AD0B6: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AD104 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD0F0 - ldr r2, _080AD0EC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - b _080AD102 - .align 2, 0 -_080AD0EC: .4byte gSprites -_080AD0F0: - ldr r2, _080AD13C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x3 -_080AD102: - strh r1, [r0, 0x26] -_080AD104: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _080AD1EE - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AD140 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xF0 - bl sub_80765D4 - b _080AD15E - .align 2, 0 -_080AD13C: .4byte gSprites -_080AD140: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xC0 - bl sub_80765D4 -_080AD15E: - ldrh r1, [r4, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD17C - ldr r2, _080AD188 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x3 - strh r1, [r0, 0x26] -_080AD17C: - movs r0, 0 - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - b _080AD1D4 - .align 2, 0 -_080AD188: .4byte gSprites -_080AD18C: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AD1A8 - ldr r2, _080AD1DC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_080AD1A8: - adds r0, r4, 0 - bl sub_8076640 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080AD1EE - ldr r2, _080AD1DC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - strh r1, [r0, 0x22] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8075980 - strh r5, [r4, 0xC] -_080AD1D4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080AD1EE - .align 2, 0 -_080AD1DC: .4byte gSprites -_080AD1E0: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AD1EE - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080AD1EE: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80ACF14 - - thumb_func_start sub_80AD1F8 -sub_80AD1F8: @ 80AD1F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - adds r0, r4, 0 - bl sub_80AD374 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r1, _080AD248 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r4, [r0, 0x20] - ldr r0, _080AD24C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AD250 - adds r0, r4, 0 - subs r0, 0xC - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - b _080AD25A - .align 2, 0 -_080AD248: .4byte gSprites -_080AD24C: .4byte gUnknown_2037F1A -_080AD250: - adds r0, r4, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0xFF -_080AD25A: - movs r6, 0 - movs r5, 0 - lsls r4, 16 - str r4, [sp, 0x8] - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0x4] - ldr r2, _080AD314 @ =gUnknown_83E5E44 - mov r9, r2 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r3, r8 - lsls r3, 1 - mov r10, r3 -_080AD278: - ldr r0, _080AD318 @ =gUnknown_83E5E2C - ldr r2, [sp, 0x8] - asrs r1, r2, 16 - ldr r3, [sp, 0x4] - asrs r2, r3, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080AD2FA - ldr r1, _080AD31C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - lsls r0, r5, 2 - adds r0, 0x40 - adds r1, r0 - ldr r3, _080AD320 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r3, _080AD324 @ =0xfffffc00 - adds r0, r3, 0 - ands r2, r0 - orrs r2, r1 - strh r2, [r4, 0x4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _080AD2C2 - movs r5, 0 -_080AD2C2: - lsls r2, r6, 2 - mov r1, r9 - adds r0, r2, r1 - ldrh r0, [r0] - ldr r3, [sp] - adds r1, r0, 0 - muls r1, r3 - lsls r1, 16 - asrs r1, 16 - ldr r0, _080AD328 @ =gUnknown_83E5E46 - adds r2, r0 - movs r3, 0 - ldrsh r2, [r2, r3] - adds r0, r4, 0 - bl sub_80AD3C8 - strh r7, [r4, 0x3A] - mov r0, r8 - strh r0, [r4, 0x3C] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - add r0, r10 - ldr r1, _080AD32C @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] -_080AD2FA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x6 - bls _080AD278 - 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 -_080AD314: .4byte gUnknown_83E5E44 -_080AD318: .4byte gUnknown_83E5E2C -_080AD31C: .4byte gSprites -_080AD320: .4byte 0x000003ff -_080AD324: .4byte 0xfffffc00 -_080AD328: .4byte gUnknown_83E5E46 -_080AD32C: .4byte gTasks+0x8 - thumb_func_end sub_80AD1F8 - - thumb_func_start sub_80AD330 -sub_80AD330: @ 80AD330 - push {r4,lr} - adds r4, r0, 0 - bl sub_80AD3E4 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080AD36A - ldr r3, _080AD370 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080AD36A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AD370: .4byte gTasks - thumb_func_end sub_80AD330 - - thumb_func_start sub_80AD374 -sub_80AD374: @ 80AD374 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080AD3AC @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x26] - ldrh r0, [r1, 0x22] - adds r2, r0 - adds r1, 0x29 - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080AD3B0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AD3B4 - lsls r0, r4, 16 - movs r1, 0x94 - lsls r1, 15 - b _080AD3BA - .align 2, 0 -_080AD3AC: .4byte gSprites -_080AD3B0: .4byte gUnknown_2037F1A -_080AD3B4: - lsls r0, r4, 16 - movs r1, 0xB0 - lsls r1, 14 -_080AD3BA: - adds r0, r1 - lsrs r4, r0, 16 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80AD374 - - thumb_func_start sub_80AD3C8 -sub_80AD3C8: @ 80AD3C8 - movs r3, 0 - strh r3, [r0, 0x2E] - strh r3, [r0, 0x30] - ldrh r3, [r0, 0x20] - lsls r3, 3 - strh r3, [r0, 0x32] - ldrh r3, [r0, 0x22] - lsls r3, 3 - strh r3, [r0, 0x34] - lsls r1, 3 - strh r1, [r0, 0x36] - lsls r2, 3 - strh r2, [r0, 0x38] - bx lr - thumb_func_end sub_80AD3C8 - - thumb_func_start sub_80AD3E4 -sub_80AD3E4: @ 80AD3E4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080AD40E - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x30] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - ldrh r3, [r2, 0x34] - adds r0, r3 - strh r0, [r2, 0x34] -_080AD40E: - ldrh r0, [r2, 0x36] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 19 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x34] - adds r1, r3 - strh r1, [r2, 0x34] - lsls r1, 16 - asrs r3, r1, 19 - strh r3, [r2, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080AD444 - adds r1, r3, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080AD444 - cmp r1, 0x78 - ble _080AD450 -_080AD444: - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080AD450: - pop {r0} - bx r0 - thumb_func_end sub_80AD3E4 - - thumb_func_start sub_80AD454 -sub_80AD454: @ 80AD454 - push {r4,r5,lr} - ldr r3, _080AD498 @ =gUnknown_2037F02 - ldrh r1, [r3] - movs r2, 0 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x2] - strh r1, [r0, 0x22] - strh r2, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x32] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0x3A] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0x3C] - ldrh r4, [r0, 0x4] - lsls r2, r4, 22 - lsrs r2, 22 - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r1, 4 - adds r2, r1 - ldr r3, _080AD49C @ =0x000003ff - adds r1, r3, 0 - ands r2, r1 - ldr r1, _080AD4A0 @ =0xfffffc00 - ands r1, r4 - orrs r1, r2 - strh r1, [r0, 0x4] - ldr r1, _080AD4A4 @ =sub_80AD4A8 - str r1, [r0, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AD498: .4byte gUnknown_2037F02 -_080AD49C: .4byte 0x000003ff -_080AD4A0: .4byte 0xfffffc00 -_080AD4A4: .4byte sub_80AD4A8 - thumb_func_end sub_80AD454 - - thumb_func_start sub_80AD4A8 -sub_80AD4A8: @ 80AD4A8 - push {r4,lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _080AD4DA - cmp r0, 0x1 - bgt _080AD4BE - cmp r0, 0 - beq _080AD4C4 - b _080AD538 -_080AD4BE: - cmp r0, 0x2 - beq _080AD4F8 - b _080AD538 -_080AD4C4: - ldrh r1, [r2, 0x3A] - movs r3, 0x3A - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080AD4D4 - subs r0, r1, 0x1 - strh r0, [r2, 0x3A] - b _080AD538 -_080AD4D4: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] -_080AD4DA: - ldrh r0, [r2, 0x22] - adds r0, 0x8 - strh r0, [r2, 0x22] - lsls r0, 16 - asrs r0, 16 - ldrh r3, [r2, 0x3C] - movs r4, 0x3C - ldrsh r1, [r2, r4] - cmp r0, r1 - blt _080AD538 - strh r3, [r2, 0x22] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - b _080AD538 -_080AD4F8: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AD524 - movs r0, 0 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD520 - ldr r0, _080AD51C @ =0x0000fffd - b _080AD522 - .align 2, 0 -_080AD51C: .4byte 0x0000fffd -_080AD520: - movs r0, 0x3 -_080AD522: - strh r0, [r2, 0x26] -_080AD524: - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080AD538 - adds r0, r2, 0 - bl DestroyAnimSprite -_080AD538: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AD4A8 - - thumb_func_start sub_80AD540 -sub_80AD540: @ 80AD540 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080AD5B4 - cmp r0, 0x1 - bgt _080AD556 - cmp r0, 0 - beq _080AD55C - b _080AD682 -_080AD556: - cmp r0, 0x2 - beq _080AD612 - b _080AD682 -_080AD55C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8075160 - ldr r4, _080AD584 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x3C] - ldr r0, _080AD588 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AD58C - movs r0, 0x4 - b _080AD58E - .align 2, 0 -_080AD584: .4byte gUnknown_2037F02 -_080AD588: .4byte gUnknown_2037F1A -_080AD58C: - ldr r0, _080AD5AC @ =0x0000fffc -_080AD58E: - strh r0, [r5, 0x36] - ldr r0, _080AD5B0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080AD60A - .align 2, 0 -_080AD5AC: .4byte 0x0000fffc -_080AD5B0: .4byte gUnknown_2037F1B -_080AD5B4: - ldrh r0, [r5, 0x30] - adds r0, 0xC0 - strh r0, [r5, 0x30] - ldr r0, _080AD5D4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AD5D8 - ldrh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - b _080AD5DE - .align 2, 0 -_080AD5D4: .4byte gUnknown_2037F1A -_080AD5D8: - ldrh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 -_080AD5DE: - strh r0, [r5, 0x26] - movs r2, 0x32 - ldrsh r0, [r5, r2] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080AD682 - movs r0, 0 - strh r0, [r5, 0x34] -_080AD60A: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080AD682 -_080AD612: - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - adds r2, r0, 0 - movs r3, 0 - strh r2, [r5, 0x24] - ldrh r0, [r5, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080AD682 - ldrh r0, [r5, 0x20] - adds r1, r2, r0 - strh r1, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r3, [r5, 0x26] - strh r3, [r5, 0x24] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - ldr r4, _080AD688 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8075678 - ldr r0, _080AD68C @ =sub_80AD690 - str r0, [r5, 0x1C] -_080AD682: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AD688: .4byte gUnknown_2037F1B -_080AD68C: .4byte sub_80AD690 - thumb_func_end sub_80AD540 - - thumb_func_start sub_80AD690 -sub_80AD690: @ 80AD690 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080AD6E8 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080AD6C6 - cmp r2, 0xC4 - ble _080AD6EE -_080AD6C6: - lsls r0, 16 - cmp r0, 0 - ble _080AD6EE - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AD6EE - ldr r0, _080AD6E4 @ =gUnknown_2037F24 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x89 - bl PlaySE12WithPanning - b _080AD6EE - .align 2, 0 -_080AD6E4: .4byte gUnknown_2037F24 -_080AD6E8: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AD6EE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AD690 - - thumb_func_start sub_80AD6F4 -sub_80AD6F4: @ 80AD6F4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080AD70C - ldr r0, _080AD778 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x30] - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] -_080AD70C: - movs r0, 0xC0 - lsls r0, 1 - adds r1, r0, 0 - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0xA0 - strh r0, [r4, 0x36] - movs r2, 0x30 - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x36] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x7 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AD7A8 - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080AD780 - ldr r0, _080AD77C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080AD7C4 - .align 2, 0 -_080AD778: .4byte gUnknown_2037F02 -_080AD77C: .4byte gUnknown_2037F1B -_080AD780: - ldr r0, _080AD7A4 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080AD7C4 - .align 2, 0 -_080AD7A4: .4byte gUnknown_2037F1B -_080AD7A8: - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080AD7BC - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D - b _080AD7C2 -_080AD7BC: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F -_080AD7C2: - strb r0, [r1] -_080AD7C4: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080AD7EC - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080AD7EC: - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x1E - bne _080AD7FA - adds r0, r4, 0 - bl DestroyAnimSprite -_080AD7FA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AD6F4 - - thumb_func_start sub_80AD800 -sub_80AD800: @ 80AD800 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AD860 @ =gTasks - adds r4, r1, r0 - ldr r0, _080AD864 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080AD826 - movs r1, 0x1 -_080AD826: - strh r1, [r4, 0x20] - ldr r0, _080AD868 @ =gUnknown_2037F1B - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - movs r0, 0x3 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080AD86C @ =sub_80AD870 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AD860: .4byte gTasks -_080AD864: .4byte gUnknown_2037F1A -_080AD868: .4byte gUnknown_2037F1B -_080AD86C: .4byte sub_80AD870 - thumb_func_end sub_80AD800 - - thumb_func_start sub_80AD870 -sub_80AD870: @ 80AD870 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080AD894 @ =gTasks - adds r2, r0, r1 - movs r0, 0x8 - ldrsh r3, [r2, r0] - cmp r3, 0x1 - beq _080AD938 - cmp r3, 0x1 - bgt _080AD898 - cmp r3, 0 - beq _080AD8A6 - b _080ADA98 - .align 2, 0 -_080AD894: .4byte gTasks -_080AD898: - cmp r3, 0x2 - bne _080AD89E - b _080AD9C0 -_080AD89E: - cmp r3, 0x3 - bne _080AD8A4 - b _080ADA54 -_080AD8A4: - b _080ADA98 -_080AD8A6: - movs r1, 0x20 - ldrsh r0, [r2, r1] - lsls r0, 1 - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AD8D8 - strh r3, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD8D4 - movs r0, 0x2 - b _080AD8D6 -_080AD8D4: - ldr r0, _080AD930 @ =0x0000fffe -_080AD8D6: - strh r0, [r2, 0x1E] -_080AD8D8: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080AD91A - ldr r4, _080AD934 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080AD8EA: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080AD8EA -_080AD91A: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - beq _080AD92A - b _080ADA98 -_080AD92A: - movs r0, 0 - strh r0, [r2, 0x1A] - b _080ADA44 - .align 2, 0 -_080AD930: .4byte 0x0000fffe -_080AD934: .4byte gSprites -_080AD938: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080AD960 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - ands r0, r3 - lsls r0, 16 - cmp r0, 0 - beq _080AD95C - movs r0, 0x2 - b _080AD95E -_080AD95C: - ldr r0, _080AD9B8 @ =0x0000fffe -_080AD95E: - strh r0, [r2, 0x1E] -_080AD960: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080AD9A2 - ldr r4, _080AD9BC @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080AD972: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080AD972 -_080AD9A2: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x60 - bne _080ADA98 - movs r0, 0 - strh r0, [r2, 0x1A] - b _080ADA44 - .align 2, 0 -_080AD9B8: .4byte 0x0000fffe -_080AD9BC: .4byte gSprites -_080AD9C0: - movs r7, 0x20 - ldrsh r1, [r2, r7] - lsls r1, 1 - ldrh r0, [r2, 0x1C] - subs r0, r1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AD9F4 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AD9F0 - strh r3, [r2, 0x1E] - b _080AD9F4 -_080AD9F0: - ldr r0, _080ADA4C @ =0x0000fffe - strh r0, [r2, 0x1E] -_080AD9F4: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080ADA36 - ldr r4, _080ADA50 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080ADA06: - movs r5, 0xE - ldrsh r0, [r2, r5] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r0, [r0, r7] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080ADA06 -_080ADA36: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080ADA98 -_080ADA44: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080ADA98 - .align 2, 0 -_080ADA4C: .4byte 0x0000fffe -_080ADA50: .4byte gSprites -_080ADA54: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080ADA92 - ldr r6, _080ADAA0 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 - movs r5, 0 -_080ADA68: - movs r7, 0xE - ldrsh r0, [r2, r7] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r5, [r0, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080ADA68 -_080ADA92: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080ADA98: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ADAA0: .4byte gSprites - thumb_func_end sub_80AD870 - - thumb_func_start sub_80ADAA4 -sub_80ADAA4: @ 80ADAA4 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - ldr r1, _080ADAD4 @ =gUnknown_2037F02 - ldrb r2, [r1] - ldrh r3, [r1, 0x2] - movs r1, 0x10 - bl BlendPalette - adds r0, r4, 0 - bl DestroyAnimVisualTask - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADAD4: .4byte gUnknown_2037F02 - thumb_func_end sub_80ADAA4 - - thumb_func_start sub_80ADAD8 -sub_80ADAD8: @ 80ADAD8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080ADB30 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - mov r9, r1 - ldr r4, _080ADB34 @ =gUnknown_2037F02 - mov r8, r4 - cmp r0, 0 - bne _080ADB0E - ldrh r0, [r4] - strh r0, [r2, 0xA] - ldrh r0, [r4, 0x2] - strh r0, [r2, 0xC] - ldrh r0, [r4, 0x4] - strh r0, [r2, 0xE] - ldrh r0, [r4, 0x6] - strh r0, [r2, 0x10] -_080ADB0E: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - ldr r1, _080ADB38 @ =gUnknown_2023D44 - ldr r0, _080ADB3C @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - movs r5, 0x10 - ldrsh r0, [r2, r5] - cmp r0, 0 - bne _080ADB44 - ldr r4, _080ADB40 @ =gUnknown_83E5EFC - movs r1, 0x8 - ldrsh r0, [r2, r1] - b _080ADB4A - .align 2, 0 -_080ADB30: .4byte gTasks -_080ADB34: .4byte gUnknown_2037F02 -_080ADB38: .4byte gUnknown_2023D44 -_080ADB3C: .4byte gUnknown_2037F1B -_080ADB40: .4byte gUnknown_83E5EFC -_080ADB44: - ldr r4, _080ADB90 @ =gUnknown_83E5F0C - movs r3, 0x8 - ldrsh r0, [r2, r3] -_080ADB4A: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - adds r0, r4 - ldrb r5, [r0] - lsls r0, r7, 2 - adds r1, r0, r7 - lsls r1, 3 - add r1, r9 - movs r4, 0xE - ldrsh r1, [r1, r4] - mov r12, r0 - cmp r1, 0x1 - bne _080ADB98 - ldr r2, _080ADB94 @ =gSprites - lsls r3, r6, 4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - mov r10, r0 - mov r0, r8 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r5, 24 - asrs r0, 24 - muls r0, r1 - cmp r0, 0 - bge _080ADB88 - negs r0, r0 -_080ADB88: - mov r5, r10 - strh r0, [r5, 0x26] - b _080ADBB2 - .align 2, 0 -_080ADB90: .4byte gUnknown_83E5F0C -_080ADB94: .4byte gSprites -_080ADB98: - ldr r3, _080ADBE8 @ =gSprites - lsls r4, r6, 4 - adds r2, r4, r6 - lsls r2, 2 - adds r2, r3 - lsls r0, r5, 24 - asrs r0, 24 - mov r5, r8 - ldrh r1, [r5, 0x2] - muls r0, r1 - strh r0, [r2, 0x24] - adds r2, r3, 0 - adds r3, r4, 0 -_080ADBB2: - mov r1, r12 - adds r0, r1, r7 - lsls r0, 3 - add r0, r9 - movs r4, 0x8 - ldrsh r1, [r0, r4] - movs r5, 0xA - ldrsh r0, [r0, r5] - cmp r1, r0 - bne _080ADBD8 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x24] - strh r1, [r0, 0x26] - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080ADBD8: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ADBE8: .4byte gSprites - thumb_func_end sub_80ADAD8 - - thumb_func_start sub_80ADBEC -sub_80ADBEC: @ 80ADBEC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080ADC0C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ADC14 - ldr r0, _080ADC10 @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080ADC20 - .align 2, 0 -_080ADC0C: .4byte gUnknown_2037F1A -_080ADC10: .4byte gUnknown_2037F02 -_080ADC14: - ldr r1, _080ADC34 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080ADC20: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080ADC38 @ =sub_80ADC3C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADC34: .4byte gUnknown_2037F02 -_080ADC38: .4byte sub_80ADC3C - thumb_func_end sub_80ADBEC - - thumb_func_start sub_80ADC3C -sub_80ADC3C: @ 80ADC3C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080ADC52 - adds r0, r2, 0 - bl DestroyAnimSprite -_080ADC52: - pop {r0} - bx r0 - thumb_func_end sub_80ADC3C - - thumb_func_start sub_80ADC58 -sub_80ADC58: @ 80ADC58 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080ADC78 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ADC80 - ldr r0, _080ADC7C @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r4, 0x20] - b _080ADC8A - .align 2, 0 -_080ADC78: .4byte gUnknown_2037F1A -_080ADC7C: .4byte gUnknown_2037F02 -_080ADC80: - ldr r0, _080ADC94 @ =gUnknown_2037F02 - ldrh r0, [r0] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] -_080ADC8A: - ldr r0, _080ADC98 @ =sub_80ADC9C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ADC94: .4byte gUnknown_2037F02 -_080ADC98: .4byte sub_80ADC9C - thumb_func_end sub_80ADC58 - - thumb_func_start sub_80ADC9C -sub_80ADC9C: @ 80ADC9C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080ADCB2 - adds r0, r2, 0 - bl move_anim_8074EE0 -_080ADCB2: - pop {r0} - bx r0 - thumb_func_end sub_80ADC9C - - thumb_func_start sub_80ADCB8 -sub_80ADCB8: @ 80ADCB8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080ADCFC @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080ADD00 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080ADD08 - ldr r2, _080ADD04 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r5, 0x22] - b _080ADD1C - .align 2, 0 -_080ADCFC: .4byte gUnknown_2037F1B -_080ADD00: .4byte gUnknown_2037F1A -_080ADD04: .4byte gUnknown_2037F02 -_080ADD08: - ldr r0, _080ADD40 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x20] - ldrh r1, [r0, 0x2] - ldrh r2, [r5, 0x22] - adds r1, r2 - strh r1, [r5, 0x22] - adds r2, r0, 0 -_080ADD1C: - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x30] - ldrh r0, [r2, 0x6] - strh r0, [r5, 0x32] - ldrh r0, [r2, 0x8] - strh r0, [r5, 0x34] - ldr r1, _080ADD44 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080ADD48 @ =sub_8074A80 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ADD40: .4byte gUnknown_2037F02 -_080ADD44: .4byte move_anim_8074EE0 -_080ADD48: .4byte sub_8074A80 - thumb_func_end sub_80ADCB8 - - thumb_func_start sub_80ADD4C -sub_80ADD4C: @ 80ADD4C - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080ADD64 @ =gUnknown_2037F02 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080ADDC4 - cmp r0, 0x1 - bgt _080ADD68 - cmp r0, 0 - beq _080ADD72 - b _080ADDC4 - .align 2, 0 -_080ADD64: .4byte gUnknown_2037F02 -_080ADD68: - cmp r0, 0x2 - beq _080ADD7C - cmp r0, 0x3 - beq _080ADDA0 - b _080ADDC4 -_080ADD72: - ldr r0, _080ADD78 @ =gUnknown_2037F1A - b _080ADDC6 - .align 2, 0 -_080ADD78: .4byte gUnknown_2037F1A -_080ADD7C: - ldr r4, _080ADD94 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r6, 0x2 - eors r0, r6 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - bne _080ADD98 - ldrb r4, [r4] - b _080ADDC8 - .align 2, 0 -_080ADD94: .4byte gUnknown_2037F1A -_080ADD98: - ldrb r0, [r4] - adds r4, r6, 0 - eors r4, r0 - b _080ADDC8 -_080ADDA0: - ldr r0, _080ADDBC @ =gUnknown_2037F1A - ldrb r0, [r0] - movs r4, 0x2 - eors r0, r4 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080ADDC4 - ldr r0, _080ADDC0 @ =gUnknown_2037F1B - ldrb r0, [r0] - eors r4, r0 - b _080ADDC8 - .align 2, 0 -_080ADDBC: .4byte gUnknown_2037F1A -_080ADDC0: .4byte gUnknown_2037F1B -_080ADDC4: - ldr r0, _080ADDE8 @ =gUnknown_2037F1B -_080ADDC6: - ldrb r4, [r0] -_080ADDC8: - ldr r0, _080ADDEC @ =gUnknown_2037F02 - movs r2, 0xA - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080ADDF0 - adds r0, r4, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r4, 0 - movs r1, 0x1 - b _080ADE02 - .align 2, 0 -_080ADDE8: .4byte gUnknown_2037F1B -_080ADDEC: .4byte gUnknown_2037F02 -_080ADDF0: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r4, 0 - movs r1, 0x3 -_080ADE02: - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r7, _080ADEA0 @ =gUnknown_825E074 - ldr r6, _080ADEA4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - lsls r0, 1 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x2 - ldrsh r0, [r6, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, 0x40 - lsls r0, 1 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x2 - ldrsh r0, [r6, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x26] - ldrh r1, [r6, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ADE66 - adds r0, r4, 0 - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] -_080ADE66: - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - ldr r3, _080ADEA8 @ =gOamMatrices - lsls r2, 3 - adds r2, r3 - adds r1, 0x40 - lsls r1, 1 - adds r1, r7 - ldrh r1, [r1] - strh r1, [r2, 0x6] - strh r1, [r2] - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x2E] - ldr r0, _080ADEAC @ =sub_80B1D3C - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080ADEA0: .4byte gUnknown_825E074 -_080ADEA4: .4byte gUnknown_2037F02 -_080ADEA8: .4byte gOamMatrices -_080ADEAC: .4byte sub_80B1D3C - thumb_func_end sub_80ADD4C - - thumb_func_start sub_80ADEB0 -sub_80ADEB0: @ 80ADEB0 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080ADF24 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r6, _080ADF28 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x38] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x3A] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x3C] - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0xC - ldrsh r0, [r5, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080ADF2C @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080ADF30 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r1, _080ADF34 @ =sub_80ADF38 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080ADF24: .4byte gUnknown_2037F02 -_080ADF28: .4byte gUnknown_2037F1B -_080ADF2C: .4byte 0x000003ff -_080ADF30: .4byte 0xfffffc00 -_080ADF34: .4byte sub_80ADF38 - thumb_func_end sub_80ADEB0 - - thumb_func_start sub_80ADF38 -sub_80ADF38: @ 80ADF38 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080ADFA2 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080ADFA8 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080ADFA8 -_080ADFA2: - adds r0, r4, 0 - bl DestroyAnimSprite -_080ADFA8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ADF38 - - thumb_func_start sub_80ADFB0 -sub_80ADFB0: @ 80ADFB0 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x38] - subs r0, 0x1 - strh r0, [r3, 0x38] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080ADFE8 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x36] - strh r0, [r3, 0x38] -_080ADFE8: - ldrh r0, [r3, 0x34] - subs r1, r0, 0x1 - strh r1, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bgt _080ADFFA - adds r0, r3, 0 - bl DestroyAnimSprite -_080ADFFA: - pop {r0} - bx r0 - thumb_func_end sub_80ADFB0 - - thumb_func_start sub_80AE000 -sub_80AE000: @ 80AE000 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AE01C - ldr r0, _080AE060 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AE024 -_080AE01C: - ldr r1, _080AE064 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080AE024: - ldr r5, _080AE060 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080AE064 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4] - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x36] - strh r0, [r6, 0x38] - ldr r0, _080AE068 @ =sub_80ADFB0 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AE060: .4byte gUnknown_2037F1B -_080AE064: .4byte gUnknown_2037F02 -_080AE068: .4byte sub_80ADFB0 - thumb_func_end sub_80AE000 - - thumb_func_start sub_80AE06C -sub_80AE06C: @ 80AE06C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r1, _080AE088 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x2E] - movs r2, 0xE - ldrsh r0, [r1, r2] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080AE090 - ldr r0, _080AE08C @ =gUnknown_2037F1B - b _080AE092 - .align 2, 0 -_080AE088: .4byte gUnknown_2037F02 -_080AE08C: .4byte gUnknown_2037F1B -_080AE090: - ldr r0, _080AE118 @ =gUnknown_2037F1A -_080AE092: - ldrb r6, [r0] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AE0AA - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AE0B2 -_080AE0AA: - ldr r1, _080AE11C @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080AE0B2: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080AE11C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r3, [r4] - adds r0, r3 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - ldr r0, _080AE120 @ =0x00007fff - ands r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x38] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0x3A] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x3C] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080AE124 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080AE128 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r1, _080AE12C @ =sub_80AE130 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AE118: .4byte gUnknown_2037F1A -_080AE11C: .4byte gUnknown_2037F02 -_080AE120: .4byte 0x00007fff -_080AE124: .4byte 0x000003ff -_080AE128: .4byte 0xfffffc00 -_080AE12C: .4byte sub_80AE130 - thumb_func_end sub_80AE06C - - thumb_func_start sub_80AE130 -sub_80AE130: @ 80AE130 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _080AE186 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080AE186: - ldrh r0, [r4, 0x2E] - subs r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080AE198 - adds r0, r4, 0 - bl DestroyAnimSprite -_080AE198: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AE130 - - thumb_func_start sub_80AE1A0 -sub_80AE1A0: @ 80AE1A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075114 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldr r3, _080AE1DC @ =gUnknown_2037F02 - movs r5, 0x6 - ldrsh r0, [r3, r5] - lsls r0, 2 - adds r1, r0 - ldr r5, _080AE1E0 @ =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, _080AE1E4 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x6 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - bne _080AE1E8 - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - b _080AE1F6 - .align 2, 0 -_080AE1DC: .4byte gUnknown_2037F02 -_080AE1E0: .4byte 0x000003ff -_080AE1E4: .4byte 0xfffffc00 -_080AE1E8: - cmp r0, 0x2 - bne _080AE1FA - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x20 -_080AE1F6: - orrs r1, r0 - strb r1, [r4, 0x3] -_080AE1FA: - ldr r0, _080AE214 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080AE218 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080AE21C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE214: .4byte gUnknown_2037F02 -_080AE218: .4byte sub_8074C44 -_080AE21C: .4byte DestroyAnimSprite - thumb_func_end sub_80AE1A0 - - thumb_func_start sub_80AE220 -sub_80AE220: @ 80AE220 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _080AE268 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - ldr r1, _080AE26C @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - ldr r5, _080AE270 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r4, 0x8] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldr r0, _080AE274 @ =sub_80AE278 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AE268: .4byte gUnknown_2037F1B -_080AE26C: .4byte gTasks -_080AE270: .4byte gUnknown_2037F02 -_080AE274: .4byte sub_80AE278 - thumb_func_end sub_80AE220 - - thumb_func_start sub_80AE278 -sub_80AE278: @ 80AE278 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r5, 0 - movs r7, 0 - ldr r1, _080AE2B8 @ =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldrb r2, [r0, 0xC] - str r2, [sp] - ldrh r4, [r0, 0x8] - ldrh r6, [r0, 0xA] - movs r3, 0xC - ldrsh r0, [r0, r3] - mov r10, r1 - cmp r0, 0 - bne _080AE2BC - movs r0, 0 - mov r8, r0 - movs r2, 0x1 - movs r1, 0x10 - mov r12, r1 - b _080AE2C6 - .align 2, 0 -_080AE2B8: .4byte gTasks -_080AE2BC: - movs r2, 0x10 - mov r12, r2 - movs r3, 0x8 - mov r8, r3 - movs r2, 0x4 -_080AE2C6: - mov r0, r9 - lsls r1, r0, 2 - adds r0, r1, r0 - lsls r0, 3 - add r0, r10 - movs r3, 0x1C - ldrsh r0, [r0, r3] - mov r10, r1 - cmp r0, 0xA - bhi _080AE3BC - lsls r0, 2 - ldr r1, _080AE2E4 @ =_080AE2E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AE2E4: .4byte _080AE2E8 - .align 2, 0 -_080AE2E8: - .4byte _080AE314 - .4byte _080AE3BC - .4byte _080AE328 - .4byte _080AE3BC - .4byte _080AE348 - .4byte _080AE3BC - .4byte _080AE35E - .4byte _080AE3BC - .4byte _080AE380 - .4byte _080AE3BC - .4byte _080AE3B4 -_080AE314: - ldr r0, _080AE324 @ =gUnknown_83E60A0 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - mov r4, r12 - lsls r3, r4, 16 - b _080AE396 - .align 2, 0 -_080AE324: .4byte gUnknown_83E60A0 -_080AE328: - mov r0, r12 - lsls r3, r0, 17 - mov r1, r8 - adds r0, r1, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _080AE344 @ =gUnknown_83E60A0 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - b _080AE396 - .align 2, 0 -_080AE344: .4byte gUnknown_83E60A0 -_080AE348: - mov r3, r12 - lsls r0, r3, 16 - asrs r0, 16 - lsls r3, r0, 1 - adds r3, r0 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - b _080AE38A -_080AE35E: - mov r0, r12 - lsls r3, r0, 18 - lsls r0, r2, 1 - adds r0, r2 - add r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _080AE37C @ =gUnknown_83E60A0 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - b _080AE396 - .align 2, 0 -_080AE37C: .4byte gUnknown_83E60A0 -_080AE380: - mov r1, r12 - lsls r0, r1, 16 - asrs r0, 16 - lsls r3, r0, 2 - adds r3, r0 -_080AE38A: - ldr r0, _080AE3B0 @ =gUnknown_83E60A0 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - lsls r3, 16 -_080AE396: - asrs r3, 16 - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - b _080AE3BC - .align 2, 0 -_080AE3B0: .4byte gUnknown_83E60A0 -_080AE3B4: - mov r0, r9 - bl DestroyAnimVisualTask - b _080AE400 -_080AE3BC: - cmp r7, 0 - beq _080AE3F0 - ldr r4, _080AE410 @ =gSprites - lsls r3, r5, 4 - adds r3, r5 - lsls r3, 2 - adds r0, r3, r4 - ldrh r5, [r0, 0x4] - lsls r2, r5, 22 - lsrs r2, 22 - add r2, r8 - ldr r6, _080AE414 @ =0x000003ff - adds r1, r6, 0 - ands r2, r1 - ldr r1, _080AE418 @ =0xfffffc00 - ands r1, r5 - orrs r1, r2 - strh r1, [r0, 0x4] - mov r1, sp - ldrh r1, [r1] - strh r1, [r0, 0x2E] - adds r4, 0x1C - adds r3, r4 - ldr r1, [r3] - bl _call_via_r1 -_080AE3F0: - ldr r0, _080AE41C @ =gTasks - mov r1, r10 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] -_080AE400: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE410: .4byte gSprites -_080AE414: .4byte 0x000003ff -_080AE418: .4byte 0xfffffc00 -_080AE41C: .4byte gTasks - thumb_func_end sub_80AE278 - - thumb_func_start sub_80AE420 -sub_80AE420: @ 80AE420 - push {lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080AE442 - ldrb r1, [r3, 0x1] - movs r2, 0x3F - adds r0, r2, 0 - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x3] - ands r2, r0 - strb r2, [r3, 0x3] - b _080AE456 -_080AE442: - ldrb r2, [r3, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r3, 0x3] -_080AE456: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bne _080AE46A - adds r0, r3, 0 - bl DestroySprite -_080AE46A: - pop {r0} - bx r0 - thumb_func_end sub_80AE420 - - thumb_func_start sub_80AE470 -sub_80AE470: @ 80AE470 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080AE4D8 @ =gUnknown_2037F02 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - ldr r0, _080AE4DC @ =gUnknown_83E60B8 - adds r1, 0x20 - lsls r1, 16 - asrs r1, 16 - movs r7, 0x22 - ldrsh r2, [r4, r7] - adds r3, r4, 0 - adds r3, 0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080AE4E0 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r6, r2, r3 - ldrh r5, [r6, 0x4] - lsls r1, r5, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r7, _080AE4E4 @ =0x000003ff - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080AE4E8 @ =0xfffffc00 - ands r0, r5 - orrs r0, r1 - strh r0, [r6, 0x4] - ldr r1, _080AE4EC @ =gUnknown_2037EE2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r3, 0x1C - adds r2, r3 - ldr r0, _080AE4F0 @ =sub_80AE4F4 - str r0, [r2] - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AE4D8: .4byte gUnknown_2037F02 -_080AE4DC: .4byte gUnknown_83E60B8 -_080AE4E0: .4byte gSprites -_080AE4E4: .4byte 0x000003ff -_080AE4E8: .4byte 0xfffffc00 -_080AE4EC: .4byte gUnknown_2037EE2 -_080AE4F0: .4byte sub_80AE4F4 - thumb_func_end sub_80AE470 - - thumb_func_start sub_80AE4F4 -sub_80AE4F4: @ 80AE4F4 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080AE528 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080AE528: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080AE53C - adds r0, r3, 0 - bl DestroyAnimSprite -_080AE53C: - pop {r0} - bx r0 - thumb_func_end sub_80AE4F4 - - thumb_func_start sub_80AE540 -sub_80AE540: @ 80AE540 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080AE560 @ =gTasks - adds r5, r1, r0 - ldr r0, _080AE564 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AE56C - ldr r4, _080AE568 @ =gUnknown_2037F1A - b _080AE56E - .align 2, 0 -_080AE560: .4byte gTasks -_080AE564: .4byte gUnknown_2037F02 -_080AE568: .4byte gUnknown_2037F1A -_080AE56C: - ldr r4, _080AE5B0 @ =gUnknown_2037F1B -_080AE56E: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x26] - ldr r2, _080AE5B4 @ =gUnknown_2037F02 - ldrh r0, [r2, 0x2] - movs r1, 0 - strh r0, [r5, 0x14] - strh r1, [r5, 0x16] - strh r1, [r5, 0x18] - strh r1, [r5, 0x1A] - strh r1, [r5, 0x1C] - ldrh r0, [r2, 0x6] - strh r0, [r5, 0x1E] - strh r1, [r5, 0x20] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x22] - ldr r0, _080AE5B8 @ =sub_80AE5BC - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE5B0: .4byte gUnknown_2037F1B -_080AE5B4: .4byte gUnknown_2037F02 -_080AE5B8: .4byte sub_80AE5BC - thumb_func_end sub_80AE540 - - thumb_func_start sub_80AE5BC -sub_80AE5BC: @ 80AE5BC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r2, r6, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080AE6A4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080AE6BC - ldrh r0, [r5, 0x20] - adds r0, 0x1 - movs r7, 0 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x22 - ldrsh r1, [r5, r2] - cmp r0, r1 - ble _080AE6CA - strh r7, [r5, 0x20] - ldr r0, _080AE6A8 @ =gUnknown_83E6120 - movs r3, 0x24 - ldrsh r1, [r5, r3] - movs r3, 0x26 - ldrsh r2, [r5, r3] - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080AE6CA - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080AE6AC @ =gSprites - adds r4, r0 - ldr r1, _080AE6B0 @ =gUnknown_83E60D0 - movs r2, 0x1A - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - movs r3, 0 - ldrsb r3, [r0, r3] - ldrh r0, [r4, 0x20] - adds r3, r0 - strh r3, [r4, 0x20] - movs r2, 0x1A - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - ldrh r0, [r4, 0x22] - adds r2, r0 - strh r2, [r4, 0x22] - movs r1, 0x18 - ldrsh r0, [r5, r1] - lsls r1, r0, 2 - adds r1, r0 - movs r0, 0x28 - subs r0, r1 - strh r0, [r4, 0x2E] - strh r3, [r4, 0x30] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - ldrh r0, [r5, 0x26] - strh r0, [r4, 0x36] - strh r6, [r4, 0x38] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080AE6B4 @ =sub_80AE704 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AE6B8 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldrh r0, [r5, 0x1A] - adds r0, 0x1 - strh r0, [r5, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080AE674 - strh r7, [r5, 0x1A] -_080AE674: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1E - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _080AE696 - strh r7, [r5, 0x1C] - ldrh r1, [r5, 0x18] - movs r3, 0x18 - ldrsh r0, [r5, r3] - cmp r0, 0x5 - bgt _080AE696 - adds r0, r1, 0x1 - strh r0, [r5, 0x18] -_080AE696: - ldrh r0, [r5, 0x16] - adds r0, 0x1 - strh r0, [r5, 0x16] - ldrh r0, [r5, 0x14] - subs r0, 0x1 - strh r0, [r5, 0x14] - b _080AE6CA - .align 2, 0 -_080AE6A4: .4byte gTasks -_080AE6A8: .4byte gUnknown_83E6120 -_080AE6AC: .4byte gSprites -_080AE6B0: .4byte gUnknown_83E60D0 -_080AE6B4: .4byte sub_80AE704 -_080AE6B8: .4byte sub_8074F6C -_080AE6BC: - movs r1, 0x16 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AE6CA - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080AE6CA: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80AE5BC - - thumb_func_start sub_80AE6D0 -sub_80AE6D0: @ 80AE6D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080AE6F8 - ldr r2, _080AE700 @ =gTasks - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x16] - subs r1, 0x1 - strh r1, [r0, 0x16] - adds r0, r4, 0 - bl DestroySprite -_080AE6F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE700: .4byte gTasks - thumb_func_end sub_80AE6D0 - - thumb_func_start sub_80AE704 -sub_80AE704: @ 80AE704 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080AE718 @ =sub_80AE6D0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE718: .4byte sub_80AE6D0 - thumb_func_end sub_80AE704 - - thumb_func_start sub_80AE71C -sub_80AE71C: @ 80AE71C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080AE730 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AE738 - ldr r4, _080AE734 @ =gUnknown_2037F1A - b _080AE73A - .align 2, 0 -_080AE730: .4byte gUnknown_2037F02 -_080AE734: .4byte gUnknown_2037F1A -_080AE738: - ldr r4, _080AE768 @ =gUnknown_2037F1B -_080AE73A: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080AE76C @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AE770 @ =sub_8074F50 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE768: .4byte gUnknown_2037F1B -_080AE76C: .4byte move_anim_8074EE0 -_080AE770: .4byte sub_8074F50 - thumb_func_end sub_80AE71C - - thumb_func_start sub_80AE774 -sub_80AE774: @ 80AE774 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080AE788 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080AE790 - ldr r4, _080AE78C @ =gUnknown_2037F1A - b _080AE792 - .align 2, 0 -_080AE788: .4byte gUnknown_2037F02 -_080AE78C: .4byte gUnknown_2037F1A -_080AE790: - ldr r4, _080AE7CC @ =gUnknown_2037F1B -_080AE792: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080AE7D0 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x24] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x26] - ldr r1, _080AE7D4 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AE7D8 @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE7CC: .4byte gUnknown_2037F1B -_080AE7D0: .4byte gUnknown_2037F02 -_080AE7D4: .4byte DestroyAnimSprite -_080AE7D8: .4byte sub_8074F6C - thumb_func_end sub_80AE774 - - thumb_func_start sub_80AE7DC -sub_80AE7DC: @ 80AE7DC - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r4, _080AE834 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - movs r0, 0x10 - strh r0, [r5, 0x3C] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080AE82A - movs r1, 0x3C - ldrsh r0, [r5, r1] - negs r0, r0 - strh r0, [r5, 0x3C] -_080AE82A: - ldr r0, _080AE838 @ =sub_80AE83C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AE834: .4byte gUnknown_2037F1A -_080AE838: .4byte sub_80AE83C - thumb_func_end sub_80AE7DC - - thumb_func_start sub_80AE83C -sub_80AE83C: @ 80AE83C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AE84E - cmp r0, 0x1 - beq _080AE864 - b _080AE894 -_080AE84E: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080AE894 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080AE894 -_080AE864: - ldrh r2, [r4, 0x3C] - ldrh r1, [r4, 0x20] - adds r0, r2, r1 - strh r0, [r4, 0x20] - ldr r3, _080AE89C @ =gSprites - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - adds r2, r1 - strh r2, [r0, 0x24] - ldrh r0, [r4, 0x20] - adds r0, 0x50 - lsls r0, 16 - movs r1, 0xC8 - lsls r1, 17 - cmp r0, r1 - bls _080AE894 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080AE894: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AE89C: .4byte gSprites - thumb_func_end sub_80AE83C - - thumb_func_start sub_80AE8A0 -sub_80AE8A0: @ 80AE8A0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080AE8C4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080AE934 - cmp r0, 0x1 - bgt _080AE8C8 - cmp r0, 0 - beq _080AE8D4 - b _080AEA04 - .align 2, 0 -_080AE8C4: .4byte gTasks -_080AE8C8: - cmp r0, 0x2 - beq _080AE990 - cmp r0, 0x3 - bne _080AE8D2 - b _080AE9E4 -_080AE8D2: - b _080AEA04 -_080AE8D4: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0x26] - ldr r4, _080AE908 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AE910 - ldr r0, _080AE90C @ =0x0000ffe0 - strh r0, [r5, 0x24] - movs r0, 0x2 - b _080AE916 - .align 2, 0 -_080AE908: .4byte gUnknown_2037F1A -_080AE90C: .4byte 0x0000ffe0 -_080AE910: - movs r0, 0x20 - strh r0, [r5, 0x24] - ldr r0, _080AE92C @ =0x0000fffe -_080AE916: - strh r0, [r5, 0x22] - ldr r2, _080AE930 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r5, 0x24] - strh r1, [r0, 0x24] - b _080AE9D6 - .align 2, 0 -_080AE92C: .4byte 0x0000fffe -_080AE930: .4byte gSprites -_080AE934: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AEA04 - movs r0, 0 - strh r0, [r5, 0xA] - ldr r4, _080AE98C @ =gSprites - movs r1, 0x26 - ldrsh r0, [r5, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r1, [r5, 0x24] - movs r2, 0x24 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080AE9D6 - ldrh r2, [r5, 0x22] - adds r2, r1, r2 - strh r2, [r5, 0x24] - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x24] - b _080AEA04 - .align 2, 0 -_080AE98C: .4byte gSprites -_080AE990: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AEA04 - movs r0, 0 - strh r0, [r5, 0xA] - ldr r1, _080AE9E0 @ =gSprites - movs r2, 0x26 - ldrsh r0, [r5, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bne _080AEA04 -_080AE9D6: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080AEA04 - .align 2, 0 -_080AE9E0: .4byte gSprites -_080AE9E4: - ldr r2, _080AEA0C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080AEA04: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AEA0C: .4byte gSprites - thumb_func_end sub_80AE8A0 - - thumb_func_start sub_80AEA10 -sub_80AEA10: @ 80AEA10 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080AEA34 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080AEA2A - b _080AEB50 -_080AEA2A: - cmp r0, 0x1 - bgt _080AEA38 - cmp r0, 0 - beq _080AEA40 - b _080AEB92 - .align 2, 0 -_080AEA34: .4byte gTasks -_080AEA38: - cmp r0, 0x2 - bne _080AEA3E - b _080AEB84 -_080AEA3E: - b _080AEB92 -_080AEA40: - ldr r4, _080AEA80 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080AEA56 - movs r1, 0x1 -_080AEA56: - movs r6, 0 - strh r1, [r5, 0xA] - ldr r0, _080AEA84 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r3, r0, 0 - cmp r2, 0 - beq _080AEA8C - cmp r2, 0x4 - beq _080AEAB4 - ldrh r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AEAEC - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0xE] - ldr r0, _080AEA88 @ =0x0000fff0 - b _080AEAF4 - .align 2, 0 -_080AEA80: .4byte gUnknown_2037F1A -_080AEA84: .4byte gUnknown_2037F02 -_080AEA88: .4byte 0x0000fff0 -_080AEA8C: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 7 - adds r0, 0x78 - strh r0, [r5, 0x10] - b _080AEB2A -_080AEAB4: - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r1, 7 - movs r0, 0x78 - subs r0, r1 - strh r0, [r5, 0xE] - ldr r4, _080AEAE8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xA - ldrsh r1, [r5, r2] - lsls r1, 5 - subs r0, r1 - strh r0, [r5, 0x10] - b _080AEB2A - .align 2, 0 -_080AEAE8: .4byte gUnknown_2037F1B -_080AEAEC: - ldr r0, _080AEB10 @ =0x0000fff0 - strh r0, [r5, 0xE] - movs r0, 0x80 - lsls r0, 1 -_080AEAF4: - strh r0, [r5, 0x10] - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080AEB14 - movs r2, 0 - ldrsh r0, [r3, r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - movs r0, 0x50 - subs r0, r1 - strh r0, [r5, 0x12] - b _080AEB2A - .align 2, 0 -_080AEB10: .4byte 0x0000fff0 -_080AEB14: - movs r0, 0 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, 0x28 - strh r0, [r5, 0x12] - ldrh r1, [r5, 0xE] - ldrh r0, [r5, 0x10] - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] -_080AEB2A: - movs r2, 0xE - ldrsh r1, [r5, r2] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - bge _080AEB40 - movs r1, 0 - movs r0, 0x1 - strh r0, [r5, 0xA] - strh r1, [r5, 0x14] - b _080AEB7C -_080AEB40: - ldr r0, _080AEB4C @ =0x0000ffff - strh r0, [r5, 0xA] - movs r0, 0x3 - strh r0, [r5, 0x14] - b _080AEB7C - .align 2, 0 -_080AEB4C: .4byte 0x0000ffff -_080AEB50: - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - ble _080AEB92 - movs r0, 0 - strh r0, [r5, 0xC] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80AEB98 - lsls r0, 24 - cmp r0, 0 - bne _080AEB7C - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80AEB98 - lsls r0, 24 - cmp r0, 0 - beq _080AEB92 -_080AEB7C: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080AEB92 -_080AEB84: - movs r1, 0x16 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AEB92 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AEB92: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80AEA10 - - thumb_func_start sub_80AEB98 -sub_80AEB98: @ 80AEB98 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080AEC24 @ =gUnknown_83E6278 - movs r2, 0xE - ldrsh r1, [r4, r2] - movs r3, 0x12 - ldrsh r2, [r4, r3] - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080AEBCE - ldr r1, _080AEC28 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strh r5, [r0, 0x3A] - movs r1, 0x7 - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] -_080AEBCE: - ldrh r1, [r4, 0xA] - ldrh r5, [r4, 0x14] - adds r0, r1, r5 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bge _080AEBE0 - movs r0, 0x3 - strh r0, [r4, 0x14] -_080AEBE0: - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - ble _080AEBEC - movs r0, 0 - strh r0, [r4, 0x14] -_080AEBEC: - movs r3, 0xA - ldrsh r0, [r4, r3] - lsls r0, 4 - ldrh r5, [r4, 0xE] - adds r2, r0, r5 - strh r2, [r4, 0xE] - lsls r0, r1, 16 - asrs r3, r0, 16 - cmp r3, 0x1 - bne _080AEC0C - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0x10 - ldrsh r1, [r4, r5] - cmp r0, r1 - bge _080AEC20 -_080AEC0C: - movs r0, 0x1 - negs r0, r0 - cmp r3, r0 - bne _080AEC2C - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x10 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _080AEC2C -_080AEC20: - movs r0, 0x1 - b _080AEC2E - .align 2, 0 -_080AEC24: .4byte gUnknown_83E6278 -_080AEC28: .4byte gSprites -_080AEC2C: - movs r0, 0 -_080AEC2E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80AEB98 - - thumb_func_start sub_80AEC34 -sub_80AEC34: @ 80AEC34 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080AEC74 - ldr r3, _080AEC7C @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080AEC74: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AEC7C: .4byte gTasks - thumb_func_end sub_80AEC34 - - thumb_func_start sub_80AEC80 -sub_80AEC80: @ 80AEC80 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080AEC92 - cmp r0, 0x1 - beq _080AECC4 - b _080AECD8 -_080AEC92: - ldr r4, _080AECC0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080AECD8 - .align 2, 0 -_080AECC0: .4byte gUnknown_2037F1A -_080AECC4: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080AECD8 - adds r0, r5, 0 - bl move_anim_8074EE0 -_080AECD8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AEC80 - - thumb_func_start sub_80AECE0 -sub_80AECE0: @ 80AECE0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080AED04 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080AECFA - b _080AEE6C -_080AECFA: - lsls r0, 2 - ldr r1, _080AED08 @ =_080AED0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AED04: .4byte gTasks -_080AED08: .4byte _080AED0C - .align 2, 0 -_080AED0C: - .4byte _080AED20 - .4byte _080AEDB0 - .4byte _080AEDEC - .4byte _080AEE48 - .4byte _080AEE58 -_080AED20: - ldr r4, _080AEDA4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x16] - movs r0, 0x4 - strh r0, [r5, 0x18] - ldr r0, _080AEDA8 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - movs r2, 0x1C - ldrsh r0, [r5, r2] - movs r2, 0x14 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r1, 0x5 - bl __divsi3 - strh r0, [r5, 0x1A] - movs r0, 0x7 - strh r0, [r5, 0x10] - ldr r0, _080AEDAC @ =0x0000ffff - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - subs r0, 0x4C - bl sub_8073A44 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x20] - movs r0, 0x3F - bl sub_8073A44 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x22] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x24] - movs r1, 0x22 - ldrsh r0, [r5, r1] - movs r2, 0x20 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r1, 0x3 - bl __divsi3 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - b _080AEE6A - .align 2, 0 -_080AEDA4: .4byte gUnknown_2037F1A -_080AEDA8: .4byte gUnknown_2037F1B -_080AEDAC: .4byte 0x0000ffff -_080AEDB0: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - ble _080AEDE0 - movs r0, 0 - strh r0, [r5, 0xA] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80AEE74 - lsls r0, 24 - cmp r0, 0 - beq _080AEDE0 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x5 - bne _080AEDDA - movs r0, 0x3 - b _080AEDDE -_080AEDDA: - ldrh r0, [r5, 0x8] - adds r0, 0x1 -_080AEDDE: - strh r0, [r5, 0x8] -_080AEDE0: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080AEE6C - b _080AEE62 -_080AEDEC: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080AEDFA - subs r0, r1, 0x1 - strh r0, [r5, 0x1E] -_080AEDFA: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - movs r3, 0 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080AEE6C - strh r3, [r5, 0xA] - ldrh r1, [r5, 0xC] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080AEE26 - movs r0, 0x4 - strh r0, [r5, 0x16] - movs r0, 0x44 - strh r0, [r5, 0x18] - strh r3, [r5, 0x10] - strh r2, [r5, 0x12] - b _080AEE36 -_080AEE26: - movs r0, 0x44 - strh r0, [r5, 0x16] - movs r0, 0x4 - strh r0, [r5, 0x18] - movs r0, 0x7 - strh r0, [r5, 0x10] - ldr r0, _080AEE44 @ =0x0000ffff - strh r0, [r5, 0x12] -_080AEE36: - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080AEE68 - movs r0, 0x4 - b _080AEE6A - .align 2, 0 -_080AEE44: .4byte 0x0000ffff -_080AEE48: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AEE6C - adds r0, r2, 0 - bl DestroyAnimVisualTask - b _080AEE6C -_080AEE58: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080AEE68 -_080AEE62: - subs r0, r1, 0x1 - strh r0, [r5, 0x1E] - b _080AEE6C -_080AEE68: - movs r0, 0x1 -_080AEE6A: - strh r0, [r5, 0x8] -_080AEE6C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AECE0 - - thumb_func_start sub_80AEE74 -sub_80AEE74: @ 80AEE74 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080AEF3C @ =gUnknown_83E62A8 - movs r2, 0x14 - ldrsh r1, [r4, r2] - movs r3, 0x16 - ldrsh r2, [r4, r3] - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080AEEE0 - ldr r1, _080AEF40 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldrh r6, [r4, 0x10] - adds r1, r6 - ldr r6, _080AEF44 @ =0x000003ff - adds r0, r6, 0 - ands r1, r0 - ldr r0, _080AEF48 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _080AEEC8 - movs r0, 0x7 - strh r0, [r4, 0x10] -_080AEEC8: - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0x7 - ble _080AEED4 - movs r0, 0 - strh r0, [r4, 0x10] -_080AEED4: - strh r5, [r3, 0x3A] - movs r0, 0x3 - strh r0, [r3, 0x3C] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] -_080AEEE0: - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080AEF02 - movs r5, 0x12 - ldrsh r0, [r4, r5] - cmp r0, 0 - ble _080AEF02 - ldrh r1, [r4, 0x26] - ldrh r6, [r4, 0x24] - adds r1, r6 - strh r1, [r4, 0x24] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x6F - bl PlaySE12WithPanning -_080AEF02: - movs r0, 0x12 - ldrsh r3, [r4, r0] - ldrh r2, [r4, 0x16] - cmp r3, 0 - bge _080AEF18 - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0x18 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080AEF28 -_080AEF18: - cmp r3, 0 - ble _080AEF4C - lsls r0, r2, 16 - asrs r0, 16 - movs r6, 0x18 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080AEF4C -_080AEF28: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x1A] - ldrh r1, [r4, 0x14] - adds r0, r1 - strh r0, [r4, 0x14] - movs r0, 0x1 - b _080AEF58 - .align 2, 0 -_080AEF3C: .4byte gUnknown_83E62A8 -_080AEF40: .4byte gSprites -_080AEF44: .4byte 0x000003ff -_080AEF48: .4byte 0xfffffc00 -_080AEF4C: - movs r3, 0x12 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r0, r2, r0 - strh r0, [r4, 0x16] - movs r0, 0 -_080AEF58: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80AEE74 - - thumb_func_start sub_80AEF60 -sub_80AEF60: @ 80AEF60 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080AEF96 - ldr r3, _080AEF9C @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080AEF96: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AEF9C: .4byte gTasks - thumb_func_end sub_80AEF60 - - thumb_func_start sub_80AEFA0 -sub_80AEFA0: @ 80AEFA0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080AEFC4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080AF01C - cmp r0, 0x1 - bgt _080AEFC8 - cmp r0, 0 - beq _080AEFCE - b _080AF052 - .align 2, 0 -_080AEFC4: .4byte gTasks -_080AEFC8: - cmp r0, 0x2 - beq _080AF044 - b _080AF052 -_080AEFCE: - ldr r0, _080AF018 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r5, 0x26] - strh r0, [r5, 0x24] - cmp r0, 0x10 - ble _080AEFF8 - adds r2, r0, 0 -_080AEFE8: - adds r1, r2, 0 - subs r1, 0x20 - adds r2, r1, 0 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x10 - bgt _080AEFE8 - strh r1, [r5, 0x24] -_080AEFF8: - ldr r4, _080AF018 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x2 - strh r0, [r5, 0x20] - b _080AF03C - .align 2, 0 -_080AF018: .4byte gUnknown_2037F1B -_080AF01C: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080AF052 - movs r0, 0 - strh r0, [r5, 0xA] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80AF058 - lsls r0, 24 - cmp r0, 0 - beq _080AF052 -_080AF03C: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080AF052 -_080AF044: - movs r1, 0x1C - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AF052 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080AF052: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AEFA0 - - thumb_func_start sub_80AF058 -sub_80AF058: @ 80AF058 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080AF0B4 @ =gUnknown_83E5F38 - movs r2, 0x22 - ldrsh r1, [r4, r2] - movs r3, 0x24 - ldrsh r2, [r4, r3] - ldrh r3, [r4, 0x20] - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080AF09C - ldr r3, _080AF0B8 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _080AF0BC @ =sub_80AF0C8 - str r2, [r1] - adds r0, r3 - strh r5, [r0, 0x3A] - movs r1, 0xA - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] -_080AF09C: - ldrh r2, [r4, 0x24] - movs r0, 0x24 - ldrsh r1, [r4, r0] - movs r3, 0x26 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080AF0C0 - adds r0, r2, 0 - adds r0, 0x20 - strh r0, [r4, 0x24] - movs r0, 0 - b _080AF0C2 - .align 2, 0 -_080AF0B4: .4byte gUnknown_83E5F38 -_080AF0B8: .4byte gSprites -_080AF0BC: .4byte sub_80AF0C8 -_080AF0C0: - movs r0, 0x1 -_080AF0C2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80AF058 - - thumb_func_start sub_80AF0C8 -sub_80AF0C8: @ 80AF0C8 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AF0FC - ldr r3, _080AF104 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080AF0FC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF104: .4byte gTasks - thumb_func_end sub_80AF0C8 - - thumb_func_start sub_80AF108 -sub_80AF108: @ 80AF108 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x7 - ldr r3, _080AF210 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080AF214 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r4, _080AF218 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080AF21C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - str r3, [sp] - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080AF220 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r1] - ldr r3, [sp] - adds r0, r3 - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x4] - mov r4, r9 - adds r0, r4, r0 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - adds r0, r6 - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x6] - mov r7, r8 - adds r0, r7, r0 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8074C80 - adds r4, 0x20 - movs r0, 0x98 - lsls r0, 1 - mov r12, r0 - ldr r3, [sp] - cmp r4, r12 - bhi _080AF1E2 - adds r0, r7, 0 - adds r0, 0x20 - ldrh r1, [r5, 0x30] - ldrh r2, [r5, 0x32] - cmp r0, 0xE0 - bhi _080AF1E2 - adds r4, r1, 0 - mov r10, r12 -_080AF1AE: - mov r7, r9 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r4 - lsls r1, 16 - mov r7, r8 - lsls r0, r7, 16 - asrs r0, 16 - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsrs r0, r1, 16 - mov r9, r0 - movs r7, 0x80 - lsls r7, 14 - adds r1, r7 - lsrs r1, 16 - cmp r1, r10 - bhi _080AF1E2 - mov r1, r8 - lsls r0, r1, 16 - adds r0, r7 - lsrs r0, 16 - cmp r0, 0xE0 - bls _080AF1AE -_080AF1E2: - ldrh r0, [r5, 0x30] - negs r7, r0 - strh r7, [r5, 0x30] - ldrh r0, [r5, 0x32] - negs r4, r0 - strh r4, [r5, 0x32] - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - lsrs r0, 16 - movs r2, 0x98 - lsls r2, 1 - mov r12, r2 - ldr r1, _080AF220 @ =gUnknown_2037F02 - mov r10, r1 - cmp r0, r12 - bhi _080AF24E - lsls r1, r6, 16 - movs r2, 0x80 - lsls r2, 14 - adds r0, r1, r2 - b _080AF246 - .align 2, 0 -_080AF210: .4byte 0x000003ff -_080AF214: .4byte 0xfffffc00 -_080AF218: .4byte gUnknown_2037F1B -_080AF21C: .4byte gUnknown_2037F1A -_080AF220: .4byte gUnknown_2037F02 -_080AF224: - lsls r1, r3, 16 - asrs r1, 16 - adds r1, r7 - lsls r1, 16 - asrs r0, r2, 16 - adds r0, r4 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r3, r1, 16 - movs r0, 0x80 - lsls r0, 14 - adds r1, r0 - lsrs r1, 16 - cmp r1, r12 - bhi _080AF24E - lsls r1, r6, 16 - adds r0, r1, r0 -_080AF246: - lsrs r0, 16 - adds r2, r1, 0 - cmp r0, 0xE0 - bls _080AF224 -_080AF24E: - strh r3, [r5, 0x20] - strh r6, [r5, 0x22] - mov r1, r10 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - strh r3, [r5, 0x30] - mov r2, r9 - strh r2, [r5, 0x32] - strh r6, [r5, 0x34] - mov r3, r8 - strh r3, [r5, 0x36] - adds r0, r5, 0 - bl sub_8074C80 - mov r7, r10 - ldrh r0, [r7, 0xA] - strh r0, [r5, 0x34] - ldrh r0, [r7, 0xC] - strh r0, [r5, 0x36] - ldr r0, _080AF288 @ =sub_80AF28C - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AF288: .4byte sub_80AF28C - thumb_func_end sub_80AF108 - - thumb_func_start sub_80AF28C -sub_80AF28C: @ 80AF28C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080AF2E4 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - strh r1, [r4, 0x24] - strh r0, [r4, 0x26] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - b _080AF2EA -_080AF2E4: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AF2EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AF28C - - thumb_func_start sub_80AF2F0 -sub_80AF2F0: @ 80AF2F0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AF324 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x2E] - movs r0, 0x3C - strh r0, [r4, 0x30] - movs r0, 0x9 - strh r0, [r4, 0x32] - movs r0, 0x1E - strh r0, [r4, 0x34] - movs r0, 0xFE - lsls r0, 8 - strh r0, [r4, 0x36] - ldr r1, _080AF328 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080AF32C @ =sub_8074AE0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF324: .4byte gUnknown_2037F02 -_080AF328: .4byte DestroyAnimSprite -_080AF32C: .4byte sub_8074AE0 - thumb_func_end sub_80AF2F0 - - thumb_func_start sub_80AF330 -sub_80AF330: @ 80AF330 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080AF364 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r0, _080AF368 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF370 - ldr r0, _080AF36C @ =gUnknown_2037F02 - ldrh r1, [r4, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r4, 0x32] - b _080AF37A - .align 2, 0 -_080AF364: .4byte gUnknown_2037F1B -_080AF368: .4byte gUnknown_2037F1A -_080AF36C: .4byte gUnknown_2037F02 -_080AF370: - ldr r0, _080AF3A8 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] -_080AF37A: - ldr r0, _080AF3AC @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - ldr r1, _080AF3A8 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r2, [r1, 0x6] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x2E] - ldr r1, _080AF3B0 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AF3B4 @ =sub_8075590 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF3A8: .4byte gUnknown_2037F02 -_080AF3AC: .4byte gUnknown_2037F1B -_080AF3B0: .4byte DestroyAnimSprite -_080AF3B4: .4byte sub_8075590 - thumb_func_end sub_80AF330 - - thumb_func_start sub_80AF3B8 -sub_80AF3B8: @ 80AF3B8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080AF3D0 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AF3D4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - b _080AF40A - .align 2, 0 -_080AF3D0: .4byte gUnknown_2037F02 -_080AF3D4: - ldr r0, _080AF41C @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_8076D9C - ldr r0, _080AF420 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF3FA - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080AF3FA: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080AF40A: - ldr r1, _080AF424 @ =sub_80AF42C - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080AF428 @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF41C: .4byte gUnknown_2037F1B -_080AF420: .4byte gUnknown_2037F1A -_080AF424: .4byte sub_80AF42C -_080AF428: .4byte sub_8074F50 - thumb_func_end sub_80AF3B8 - - thumb_func_start sub_80AF42C -sub_80AF42C: @ 80AF42C - push {lr} - adds r3, r0, 0 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080AF462 - adds r0, r3, 0 - bl move_anim_8074EE0 -_080AF462: - pop {r0} - bx r0 - thumb_func_end sub_80AF42C - - thumb_func_start sub_80AF468 -sub_80AF468: @ 80AF468 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r6, _080AF4B0 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AF4B8 - ldr r4, _080AF4B4 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x36] - b _080AF4CA - .align 2, 0 -_080AF4B0: .4byte gUnknown_2037F02 -_080AF4B4: .4byte gUnknown_2037F1B -_080AF4B8: - ldr r0, _080AF4E4 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C -_080AF4CA: - ldr r0, _080AF4E8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF4F0 - ldr r0, _080AF4EC @ =gUnknown_2037F02 - ldrh r1, [r5, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r5, 0x32] - b _080AF4FA - .align 2, 0 -_080AF4E4: .4byte gUnknown_2037F1B -_080AF4E8: .4byte gUnknown_2037F1A -_080AF4EC: .4byte gUnknown_2037F02 -_080AF4F0: - ldr r0, _080AF598 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080AF4FA: - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080AF504: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080AF504 - adds r0, r5, 0 - bl sub_8075804 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080AF526: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_807578C - movs r0, 0x20 - ldrsh r1, [r5, r0] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080AF55A - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080AF55A - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AF526 -_080AF55A: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r6, _080AF59C @ =sub_8075830 - ldr r1, _080AF5A0 @ =sub_80AF5A4 - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080AF57A: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080AF57A - str r6, [r5, 0x1C] - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AF598: .4byte gUnknown_2037F02 -_080AF59C: .4byte sub_8075830 -_080AF5A0: .4byte sub_80AF5A4 - thumb_func_end sub_80AF468 - - thumb_func_start sub_80AF5A4 -sub_80AF5A4: @ 80AF5A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r5, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - strh r5, [r4, 0x24] - movs r0, 0x80 - strh r0, [r4, 0x2E] - ldr r0, _080AF600 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - ldr r1, _080AF604 @ =0x0000ffec - cmp r0, 0 - beq _080AF5D4 - movs r1, 0x14 -_080AF5D4: - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x34] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] - ldr r1, _080AF608 @ =sub_80AF60C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AF600: .4byte gUnknown_2037F1A -_080AF604: .4byte 0x0000ffec -_080AF608: .4byte sub_80AF60C - thumb_func_end sub_80AF5A4 - - thumb_func_start sub_80AF60C -sub_80AF60C: @ 80AF60C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080AF660 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - ldr r1, _080AF664 @ =0x0000ffec - cmp r0, 0 - beq _080AF622 - movs r1, 0x14 -_080AF622: - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0x1F - bgt _080AF668 - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - ldrh r1, [r4, 0x34] - subs r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x36] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - b _080AF686 - .align 2, 0 -_080AF660: .4byte gUnknown_2037F1A -_080AF664: .4byte 0x0000ffec -_080AF668: - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - strh r1, [r4, 0x36] - strh r1, [r4, 0x34] - ldr r0, _080AF68C @ =sub_80AF690 - str r0, [r4, 0x1C] -_080AF686: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080AF68C: .4byte sub_80AF690 - thumb_func_end sub_80AF60C - - thumb_func_start sub_80AF690 -sub_80AF690: @ 80AF690 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_807578C - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080AF6CC - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r1, r0, r1 - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bgt _080AF6CC - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AF6D2 -_080AF6CC: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AF6D2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AF690 - - thumb_func_start sub_80AF6D8 -sub_80AF6D8: @ 80AF6D8 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080AF71C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080AF724 - ldr r4, _080AF720 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080AF736 - .align 2, 0 -_080AF71C: .4byte gUnknown_2037F02 -_080AF720: .4byte gUnknown_2037F1B -_080AF724: - ldr r0, _080AF754 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C -_080AF736: - ldr r0, _080AF758 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF760 - ldr r0, _080AF75C @ =gUnknown_2037F02 - ldrh r1, [r5, 0x32] - ldrh r2, [r0, 0x4] - subs r1, r2 - strh r1, [r5, 0x32] - adds r1, r0, 0 - b _080AF76A - .align 2, 0 -_080AF754: .4byte gUnknown_2037F1B -_080AF758: .4byte gUnknown_2037F1A -_080AF75C: .4byte gUnknown_2037F02 -_080AF760: - ldr r1, _080AF814 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080AF76A: - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8075804 - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080AF782: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080AF782 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080AF79E: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_807578C - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080AF7D2 - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080AF7D2 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AF79E -_080AF7D2: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r1, _080AF814 @ =gUnknown_2037F02 - ldr r6, _080AF818 @ =sub_80AF81C - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080AF7F2: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080AF7F2 - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - ldrh r0, [r1, 0xC] - strh r0, [r5, 0x3A] - str r6, [r5, 0x1C] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080AF814: .4byte gUnknown_2037F02 -_080AF818: .4byte sub_80AF81C - thumb_func_end sub_80AF6D8 - - thumb_func_start sub_80AF81C -sub_80AF81C: @ 80AF81C - push {r4,lr} - adds r4, r0, 0 - bl sub_807578C - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AF830 - movs r0, 0x1 - strh r0, [r4, 0x2E] -_080AF830: - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080AF886 - movs r2, 0x20 - ldrsh r0, [r4, r2] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080AF880 - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r2, 0x26 - ldrsh r0, [r4, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080AF880 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080AF886 -_080AF880: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AF886: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AF81C - - thumb_func_start sub_80AF88C -sub_80AF88C: @ 80AF88C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080AF8F8 - ldr r5, _080AF8AC @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080AF8B0 - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 - b _080AF8E6 - .align 2, 0 -_080AF8AC: .4byte gUnknown_2037F02 -_080AF8B0: - ldr r0, _080AF8F0 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldr r0, _080AF8F4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF8D6 - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080AF8D6: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080AF8E6: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080AF90C - .align 2, 0 -_080AF8F0: .4byte gUnknown_2037F1B -_080AF8F4: .4byte gUnknown_2037F1A -_080AF8F8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080AF90C - adds r0, r4, 0 - bl DestroyAnimSprite -_080AF90C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80AF88C - - thumb_func_start sub_80AF914 -sub_80AF914: @ 80AF914 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080AF934 @ =gUnknown_2037F02 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AF984 - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AF938 - adds r0, r5, 0 - movs r1, 0 - bl sub_8075160 - b _080AF976 - .align 2, 0 -_080AF934: .4byte gUnknown_2037F02 -_080AF938: - ldr r4, _080AF960 @ =gUnknown_2037F1A - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF964 - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080AF96A - .align 2, 0 -_080AF960: .4byte gUnknown_2037F1A -_080AF964: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080AF96A: - strh r0, [r5, 0x20] - ldr r0, _080AF97C @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080AF976: - ldr r0, _080AF980 @ =gUnknown_2037F1A - b _080AF9D4 - .align 2, 0 -_080AF97C: .4byte gUnknown_2037F02 -_080AF980: .4byte gUnknown_2037F1A -_080AF984: - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080AF996 - adds r0, r5, 0 - movs r1, 0 - bl sub_8075114 - b _080AF9D2 -_080AF996: - ldr r4, _080AF9BC @ =gUnknown_2037F1B - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080AF9C0 - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080AF9C6 - .align 2, 0 -_080AF9BC: .4byte gUnknown_2037F1B -_080AF9C0: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080AF9C6: - strh r0, [r5, 0x20] - ldr r0, _080AF9F0 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080AF9D2: - ldr r0, _080AF9F4 @ =gUnknown_2037F1B -_080AF9D4: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - ldr r0, _080AF9F0 @ =gUnknown_2037F02 - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080AF9EC - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - bne _080AF9F8 -_080AF9EC: - movs r0, 0x20 - b _080AF9FA - .align 2, 0 -_080AF9F0: .4byte gUnknown_2037F02 -_080AF9F4: .4byte gUnknown_2037F1B -_080AF9F8: - movs r0, 0x40 -_080AF9FA: - strh r0, [r5, 0x3A] - ldr r0, _080AFA40 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080AFA10 - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] -_080AFA10: - ldr r1, _080AFA44 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrh r1, [r1, 0x4] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r5, 0x38] - ldr r1, _080AFA48 @ =sub_80AFA4C - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080AFA40: .4byte gUnknown_2037F1B -_080AFA44: .4byte gUnknown_2037F02 -_080AFA48: .4byte sub_80AFA4C - thumb_func_end sub_80AF914 - - thumb_func_start sub_80AFA4C -sub_80AFA4C: @ 80AFA4C - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080AFAD6 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0x6 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080AFAA8 - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080AFACA -_080AFAA8: - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_080AFACA: - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080AFADC -_080AFAD6: - adds r0, r4, 0 - bl DestroyAnimSprite -_080AFADC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80AFA4C - - thumb_func_start sub_80AFAE4 -sub_80AFAE4: @ 80AFAE4 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080AFBA0 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AFB26 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080AFB26: - ldr r0, _080AFBA4 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r4, _080AFBA8 @ =gUnknown_202297A - strh r1, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AFBAC @ =gUnknown_83C3540 - movs r2, 0x80 - lsls r2, 4 - mov r3, sp - ldrh r3, [r3, 0xA] - bl LoadBgTiles - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AFBB0 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap - bl sub_807543C - ldr r0, _080AFBB4 @ =gUnknown_83C2CE0 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080AFB88 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080AFB88: - ldr r0, _080AFBB8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080AFBBC @ =sub_80AFBC0 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFBA0: .4byte 0x00003f42 -_080AFBA4: .4byte gUnknown_2022978 -_080AFBA8: .4byte gUnknown_202297A -_080AFBAC: .4byte gUnknown_83C3540 -_080AFBB0: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap -_080AFBB4: .4byte gUnknown_83C2CE0 -_080AFBB8: .4byte gTasks -_080AFBBC: .4byte sub_80AFBC0 - thumb_func_end sub_80AFAE4 - - thumb_func_start sub_80AFBC0 -sub_80AFBC0: @ 80AFBC0 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080AFBF4 @ =gUnknown_2022978 - ldr r2, _080AFBF8 @ =0x0000ffff - adds r0, r2, 0 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - ldr r1, _080AFBFC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080AFBEA - b _080AFD36 -_080AFBEA: - lsls r0, 2 - ldr r1, _080AFC00 @ =_080AFC04 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AFBF4: .4byte gUnknown_2022978 -_080AFBF8: .4byte 0x0000ffff -_080AFBFC: .4byte gTasks -_080AFC00: .4byte _080AFC04 - .align 2, 0 -_080AFC04: - .4byte _080AFC18 - .4byte _080AFC70 - .4byte _080AFC92 - .4byte _080AFCD6 - .4byte _080AFCF8 -_080AFC18: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080AFC32 - b _080AFD36 -_080AFC32: - strh r5, [r4, 0x1C] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - ldr r1, _080AFC6C @ =gUnknown_83E64D4 - movs r2, 0x1A - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x9 - bne _080AFD36 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x1E] - b _080AFD36 - .align 2, 0 -_080AFC6C: .4byte gUnknown_83E64D4 -_080AFC70: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080AFD36 - movs r0, 0x9 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080AFD36 -_080AFC92: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080AFD36 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080AFD36 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080AFD36 -_080AFCD6: - mov r0, sp - bl sub_80752A0 - movs r0, 0x1 - bl sub_8075358 - movs r0, 0x2 - bl sub_8075358 - ldr r0, _080AFD40 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080AFCF8: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AFD0C - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080AFD0C: - ldr r0, _080AFD44 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080AFD48 @ =gUnknown_202297A - strh r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AFD36: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFD40: .4byte gTasks -_080AFD44: .4byte gUnknown_2022978 -_080AFD48: .4byte gUnknown_202297A - thumb_func_end sub_80AFBC0 - - thumb_func_start sub_80AFD4C -sub_80AFD4C: @ 80AFD4C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080AFD78 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080AFD7C @ =sub_8075DF4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFD78: .4byte gUnknown_2037F1A -_080AFD7C: .4byte sub_8075DF4 - thumb_func_end sub_80AFD4C - - thumb_func_start sub_80AFD80 -sub_80AFD80: @ 80AFD80 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080AFE40 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AFDC2 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080AFDC2: - ldr r0, _080AFE44 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r4, _080AFE48 @ =gUnknown_202297A - strh r1, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AFE4C @ =gUnknown_83C3540 - movs r2, 0x80 - lsls r2, 4 - mov r3, sp - ldrh r3, [r3, 0xA] - bl LoadBgTiles - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080AFE50 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap - bl sub_807543C - ldr r0, _080AFE54 @ =gUnknown_83C2CE0 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080AFE24 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080AFE24: - ldr r1, _080AFE58 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080AFE5C @ =0x0000ffff - strh r1, [r0, 0x26] - ldr r1, _080AFE60 @ =sub_80AFE64 - str r1, [r0] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFE40: .4byte 0x00003f42 -_080AFE44: .4byte gUnknown_2022978 -_080AFE48: .4byte gUnknown_202297A -_080AFE4C: .4byte gUnknown_83C3540 -_080AFE50: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap -_080AFE54: .4byte gUnknown_83C2CE0 -_080AFE58: .4byte gTasks -_080AFE5C: .4byte 0x0000ffff -_080AFE60: .4byte sub_80AFE64 - thumb_func_end sub_80AFD80 - - thumb_func_start sub_80AFE64 -sub_80AFE64: @ 80AFE64 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _080AFE94 @ =gUnknown_2022978 - ldr r3, _080AFE98 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r3 - ldrh r0, [r1, 0x26] - ldrh r5, [r2] - adds r0, r5 - strh r0, [r2] - movs r2, 0x20 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - bls _080AFE8A - b _080AFFBE -_080AFE8A: - lsls r0, 2 - ldr r1, _080AFE9C @ =_080AFEA0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080AFE94: .4byte gUnknown_2022978 -_080AFE98: .4byte gTasks -_080AFE9C: .4byte _080AFEA0 - .align 2, 0 -_080AFEA0: - .4byte _080AFEB4 - .4byte _080AFEF8 - .4byte _080AFF1A - .4byte _080AFF5E - .4byte _080AFF80 -_080AFEB4: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r3 - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - ldr r1, _080AFEF4 @ =gUnknown_83E6500 - movs r5, 0x1A - ldrsh r0, [r4, r5] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r4, 0x1E] - movs r0, 0x11 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bne _080AFFBE - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0x1E] - b _080AFFBE - .align 2, 0 -_080AFEF4: .4byte gUnknown_83E6500 -_080AFEF8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r3 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080AFFBE - movs r0, 0x5 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080AFFBE -_080AFF1A: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r3 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080AFFBE - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080AFFBE - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080AFFBE -_080AFF5E: - mov r0, sp - bl sub_80752A0 - movs r0, 0x1 - bl sub_8075358 - movs r0, 0x2 - bl sub_8075358 - ldr r0, _080AFFC8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080AFF80: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080AFF94 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080AFF94: - ldr r0, _080AFFCC @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080AFFD0 @ =gUnknown_202297A - strh r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080AFFBE: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080AFFC8: .4byte gTasks -_080AFFCC: .4byte gUnknown_2022978 -_080AFFD0: .4byte gUnknown_202297A - thumb_func_end sub_80AFE64 - - thumb_func_start sub_80AFFD4 -sub_80AFFD4: @ 80AFFD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldr r6, _080B00BC @ =gUnknown_2037F02 - ldrh r0, [r6] - strh r0, [r5, 0x2E] - ldr r0, _080B00C0 @ =gUnknown_2037F1A - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - ldr r7, _080B00C4 @ =gUnknown_2037F1B - ldrb r0, [r7] - movs r1, 0x2 - bl sub_8074480 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bcs _080B0008 - movs r0, 0x80 - lsls r0, 8 - strh r0, [r5, 0x3C] -_080B0008: - ldr r3, _080B00C8 @ =gUnknown_2023BD6 - ldrb r0, [r7] - adds r0, r3 - ldrb r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080B0068 - ldrh r0, [r6, 0x2] - negs r0, r0 - strh r0, [r6, 0x2] - ldrh r0, [r6, 0x6] - negs r0, r0 - strh r0, [r6, 0x6] - movs r1, 0x3C - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080B0064 - mov r1, r8 - ldrb r0, [r1] - adds r0, r3 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080B0064 - movs r0, 0x1 - bl GetAnimBankSpriteId - ldr r2, _080B00CC @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] -_080B0064: - movs r0, 0x1 - strh r0, [r5, 0x3A] -_080B0068: - ldr r4, _080B00C0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r6, _080B00BC @ =gUnknown_2037F02 - movs r1, 0xE - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080B00D0 - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080B00C4 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - b _080B00F8 - .align 2, 0 -_080B00BC: .4byte gUnknown_2037F02 -_080B00C0: .4byte gUnknown_2037F1A -_080B00C4: .4byte gUnknown_2037F1B -_080B00C8: .4byte gUnknown_2023BD6 -_080B00CC: .4byte gSprites -_080B00D0: - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080B0140 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x1 -_080B00F8: - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x8] - adds r0, r6 - strh r0, [r5, 0x36] - ldrb r0, [r4] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 16 - ldrh r1, [r5, 0x3C] - orrs r0, r1 - strh r0, [r5, 0x3C] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B012C - movs r0, 0x1 - strh r0, [r5, 0x3A] - adds r1, r5, 0 - adds r1, 0x43 - movs r0, 0x80 - strb r0, [r1] -_080B012C: - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080B0144 @ =sub_80B0148 - str r0, [r5, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B0140: .4byte gUnknown_2037F1B -_080B0144: .4byte sub_80B0148 - thumb_func_end sub_80AFFD4 - - thumb_func_start sub_80B0148 -sub_80B0148: @ 80B0148 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - movs r5, 0xFF - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x1 - beq _080B0230 - cmp r1, 0x1 - bgt _080B0162 - cmp r1, 0 - beq _080B016A - b _080B0380 -_080B0162: - cmp r1, 0x2 - bne _080B0168 - b _080B0344 -_080B0168: - b _080B0380 -_080B016A: - adds r0, r4, 0 - bl sub_80755E0 - ldr r1, _080B0194 @ =gUnknown_825E074 - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 4 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B0198 - ldrh r0, [r4, 0x38] - subs r0, 0x8 - b _080B019C - .align 2, 0 -_080B0194: .4byte gUnknown_825E074 -_080B0198: - ldrh r0, [r4, 0x38] - adds r0, 0x8 -_080B019C: - ands r0, r5 - strh r0, [r4, 0x38] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B01AA - b _080B0380 -_080B01AA: - movs r5, 0x50 - strh r5, [r4, 0x2E] - ldr r6, _080B01F8 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x1D - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B0200 - ldr r1, _080B01FC @ =gUnknown_2023BD6 - ldrb r0, [r6] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B0200 - movs r0, 0xCC - strh r0, [r4, 0x38] - b _080B0202 - .align 2, 0 -_080B01F8: .4byte gUnknown_2037F1B -_080B01FC: .4byte gUnknown_2023BD6 -_080B0200: - strh r5, [r4, 0x38] -_080B0202: - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080B022C @ =gUnknown_825E074 - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 3 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - b _080B0380 - .align 2, 0 -_080B022C: .4byte gUnknown_825E074 -_080B0230: - adds r0, r4, 0 - bl sub_80755E0 - ldr r1, _080B028C @ =gUnknown_825E074 - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - asrs r0, 3 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - adds r0, 0x40 - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - negs r0, r0 - asrs r0, 8 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B02AE - ldrh r1, [r4, 0x38] - adds r0, r1, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - adds r3, r1, 0 - cmp r0, 0x7F - bhi _080B0290 - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - b _080B0298 - .align 2, 0 -_080B028C: .4byte gUnknown_825E074 -_080B0290: - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - adds r1, 0x1 -_080B0298: - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r0, r3, 0x4 - b _080B02CE -_080B02AE: - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080B02C2 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x80 - b _080B02C8 -_080B02C2: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x8C -_080B02C8: - strb r0, [r1] - ldrh r0, [r4, 0x38] - subs r0, 0x4 -_080B02CE: - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bgt _080B0380 - movs r5, 0 - movs r0, 0xC0 - lsls r0, 2 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x4 - strh r0, [r4, 0x36] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B0328 - ldr r1, _080B0320 @ =gUnknown_2023BD6 - ldr r0, _080B0324 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B0328 - movs r0, 0x80 - lsls r0, 1 - b _080B032A - .align 2, 0 -_080B0320: .4byte gUnknown_2023BD6 -_080B0324: .4byte gUnknown_2037F1B -_080B0328: - ldr r0, _080B0340 @ =0x0000fff0 -_080B032A: - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x3C] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl sub_8075678 - b _080B0380 - .align 2, 0 -_080B0340: .4byte 0x0000fff0 -_080B0344: - adds r0, r4, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080B0380 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B0372 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080B0372: - adds r0, r4, 0 - bl DestroySprite - ldr r1, _080B0388 @ =gUnknown_2037EE2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080B0380: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B0388: .4byte gUnknown_2037EE2 - thumb_func_end sub_80B0148 - - thumb_func_start sub_80B038C -sub_80B038C: @ 80B038C - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B03A0 @ =gTasks - adds r1, r0 - ldr r0, _080B03A4 @ =sub_80B03A8 - str r0, [r1] - bx lr - .align 2, 0 -_080B03A0: .4byte gTasks -_080B03A4: .4byte sub_80B03A8 - thumb_func_end sub_80B038C - - thumb_func_start sub_80B03A8 -sub_80B03A8: @ 80B03A8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B03CC @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080B03EC - cmp r5, 0x1 - bgt _080B03D0 - cmp r5, 0 - beq _080B03D6 - b _080B0450 - .align 2, 0 -_080B03CC: .4byte gTasks -_080B03D0: - cmp r5, 0x2 - beq _080B0442 - b _080B0450 -_080B03D6: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080B0450 - strh r5, [r4, 0x10] - strh r5, [r4, 0x12] - strh r5, [r4, 0xC] - b _080B0428 -_080B03EC: - ldrh r1, [r4, 0x12] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080B043C - ldrb r0, [r4, 0xE] - ldrb r1, [r4, 0xC] - movs r3, 0x1 - bl sub_80B0458 - lsls r0, 24 - cmp r0, 0 - beq _080B040C - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_080B040C: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B0438 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080B0430 -_080B0428: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B0450 -_080B0430: - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] - b _080B0450 -_080B0438: - strh r5, [r4, 0x12] - b _080B0450 -_080B043C: - subs r0, r1, 0x1 - strh r0, [r4, 0x12] - b _080B0450 -_080B0442: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B0450 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B0450: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B03A8 - - thumb_func_start sub_80B0458 -sub_80B0458: @ 80B0458 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, _080B04D0 @ =gUnknown_83E652C - lsrs r0, 22 - adds r4, r0, r1 - ldrb r0, [r4, 0x3] - lsls r0, 24 - asrs r0, 28 - mov r8, r0 - cmp r0, 0x2 - beq _080B0544 - ldrh r0, [r4, 0x2] - lsls r0, 20 - lsrs r0, 24 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B0544 - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r8 - cmp r1, 0 - beq _080B04D4 - cmp r1, 0x1 - beq _080B050A - b _080B0556 - .align 2, 0 -_080B04D0: .4byte gUnknown_83E652C -_080B04D4: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - subs r1, r0 - b _080B053E -_080B050A: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - adds r1, r0 -_080B053E: - lsls r1, 16 - lsrs r6, r1, 16 - b _080B0556 -_080B0544: - ldrh r0, [r4] - lsls r0, 22 - asrs r0, 6 - lsrs r7, r0, 16 - ldr r0, [r4] - lsls r0, 12 - asrs r0, 22 - lsls r0, 16 - lsrs r6, r0, 16 -_080B0556: - lsls r0, r6, 16 - asrs r0, 16 - adds r0, 0x8 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - ldr r0, _080B05B0 @ =gUnknown_83E65A4 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - negs r2, r2 - movs r3, 0x12 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080B05B8 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r0, _080B05B4 @ =gSprites - adds r4, r0 - adds r0, r4, 0 - mov r1, r9 - bl StartSpriteAffineAnim - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - strh r7, [r4, 0x34] - strh r6, [r4, 0x36] - mov r1, r9 - strh r1, [r4, 0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x3A] - mov r1, r10 - strh r1, [r4, 0x3C] - movs r0, 0x1 - b _080B05BA - .align 2, 0 -_080B05B0: .4byte gUnknown_83E65A4 -_080B05B4: .4byte gSprites -_080B05B8: - movs r0, 0 -_080B05BA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B0458 - - thumb_func_start sub_80B05CC -sub_80B05CC: @ 80B05CC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r2, r1, 0 - adds r2, 0x8 - strh r2, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _080B05F6 - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080B06A6 -_080B05F6: - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080B0678 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B0678 - ldr r0, _080B066C @ =gUnknown_83E63E0 - movs r2, 0x34 - ldrsh r1, [r4, r2] - movs r3, 0x36 - ldrsh r2, [r4, r3] - adds r3, r4, 0 - adds r3, 0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - cmp r0, 0x40 - beq _080B065A - ldr r2, _080B0670 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080B0674 @ =sub_80B06B0 - str r1, [r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3A] - strh r1, [r0, 0x3A] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3C] - strh r1, [r0, 0x3C] -_080B065A: - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - b _080B06A6 - .align 2, 0 -_080B066C: .4byte gUnknown_83E63E0 -_080B0670: .4byte gSprites -_080B0674: .4byte sub_80B06B0 -_080B0678: - ldr r3, _080B06AC @ =gTasks - movs r2, 0x3C - ldrsh r1, [r4, r2] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080B06A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B06AC: .4byte gTasks - thumb_func_end sub_80B05CC - - thumb_func_start sub_80B06B0 -sub_80B06B0: @ 80B06B0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080B06F0 - ldr r3, _080B06F8 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080B06F0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B06F8: .4byte gTasks - thumb_func_end sub_80B06B0 - - thumb_func_start unc_080B06FC -unc_080B06FC: @ 80B06FC - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080B077C @ =gUnknown_2037EE4 - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080B071A - movs r1, 0x4 -_080B071A: - adds r0, r5, 0 - bl StartSpriteAffineAnim - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r6, _080B0780 @ =gUnknown_2037F02 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080B0784 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B0742 - ldrh r0, [r6, 0x4] - negs r0, r0 - strh r0, [r6, 0x4] -_080B0742: - ldr r4, _080B0788 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r6, 0xA] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080B078C @ =sub_80B0790 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B077C: .4byte gUnknown_2037EE4 -_080B0780: .4byte gUnknown_2037F02 -_080B0784: .4byte gUnknown_2037F1A -_080B0788: .4byte gUnknown_2037F1B -_080B078C: .4byte sub_80B0790 - thumb_func_end unc_080B06FC - - thumb_func_start sub_80B0790 -sub_80B0790: @ 80B0790 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B07B2 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080B07B8 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080B07BC @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 -_080B07B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B07B8: .4byte sub_8074F6C -_080B07BC: .4byte DestroyAnimSprite - thumb_func_end sub_80B0790 - - thumb_func_start sub_80B07C0 -sub_80B07C0: @ 80B07C0 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080B0814 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B0818 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080B081C @ =0x000001ff - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080B0806 - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080B0806: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080B0820 @ =sub_80B0824 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B0814: .4byte 0x000003ff -_080B0818: .4byte 0xfffffc00 -_080B081C: .4byte 0x000001ff -_080B0820: .4byte sub_80B0824 - thumb_func_end sub_80B07C0 - - thumb_func_start sub_80B0824 -sub_80B0824: @ 80B0824 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080B0848 - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080B084C -_080B0848: - lsls r0, r3, 16 - asrs r0, 24 -_080B084C: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080B086A - adds r0, r2, 0 - bl DestroyAnimSprite -_080B086A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B0824 - - thumb_func_start sub_80B0870 -sub_80B0870: @ 80B0870 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B0898 @ =gUnknown_2037F02 - ldrb r3, [r1] - lsls r3, 1 - adds r3, r1 - ldr r1, _080B089C @ =gUnknown_2037EE4 - ldr r1, [r1] - ldrb r1, [r1, 0x11] - lsrs r2, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r2, r1 - subs r2, 0x1 - strh r2, [r3] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080B0898: .4byte gUnknown_2037F02 -_080B089C: .4byte gUnknown_2037EE4 - thumb_func_end sub_80B0870 - - thumb_func_start unc_080B08A0 -unc_080B08A0: @ 80B08A0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B08D0 @ =gUnknown_2037F02 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_8074FF8 - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0xF - strh r0, [r4, 0x2E] - ldr r0, _080B08D4 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080B08D8 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B08D0: .4byte gUnknown_2037F02 -_080B08D4: .4byte sub_8074C44 -_080B08D8: .4byte DestroyAnimSprite - thumb_func_end unc_080B08A0 - - thumb_func_start sub_80B08DC -sub_80B08DC: @ 80B08DC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B0920 @ =gUnknown_2037F02 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080B0904 - ldr r0, _080B0924 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B0904 - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x6] - negs r0, r0 - strh r0, [r4, 0x6] -_080B0904: - ldr r4, _080B0920 @ =gUnknown_2037F02 - ldrb r1, [r4, 0xC] - adds r0, r5, 0 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r4, 0xC] - adds r0, r5, 0 - bl sub_8075F0C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0920: .4byte gUnknown_2037F02 -_080B0924: .4byte gUnknown_2037F1A - thumb_func_end sub_80B08DC - - thumb_func_start sub_80B0928 -sub_80B0928: @ 80B0928 - push {r4,lr} - adds r4, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B0944 - ldr r0, _080B0950 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0x6] - negs r1, r1 - strh r1, [r0, 0x6] -_080B0944: - adds r0, r4, 0 - bl sub_80B08DC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0950: .4byte gUnknown_2037F02 - thumb_func_end sub_80B0928 - - thumb_func_start sub_80B0954 -sub_80B0954: @ 80B0954 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B0974 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x8] - bl StartSpriteAnim - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B0978 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - b _080B0980 - .align 2, 0 -_080B0974: .4byte gUnknown_2037F02 -_080B0978: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075114 -_080B0980: - ldr r0, _080B0998 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080B099C @ =sub_8074C44 - str r0, [r5, 0x1C] - ldr r1, _080B09A0 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0998: .4byte gUnknown_2037F02 -_080B099C: .4byte sub_8074C44 -_080B09A0: .4byte DestroyAnimSprite - thumb_func_end sub_80B0954 - - thumb_func_start sub_80B09A4 -sub_80B09A4: @ 80B09A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - ldr r0, _080B09C0 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r9, r0 - cmp r1, 0 - bne _080B09C8 - ldr r0, _080B09C4 @ =gUnknown_2037F1A - b _080B09CA - .align 2, 0 -_080B09C0: .4byte gUnknown_2037F02 -_080B09C4: .4byte gUnknown_2037F1A -_080B09C8: - ldr r0, _080B0B10 @ =gUnknown_2037F1B -_080B09CA: - ldrb r0, [r0] - mov r8, r0 - mov r4, r9 - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080B09E8 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - strh r0, [r4, 0x4] -_080B09E8: - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAnim - mov r0, r8 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - mov r0, r8 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - mov r0, r8 - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r6, r1, 16 - mov r0, r8 - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080B0A32 - adds r0, 0x3 -_080B0A32: - lsls r4, r0, 14 - lsrs r4, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - bl __modsi3 - lsls r0, 16 - lsrs r6, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - movs r7, 0x1 - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080B0A74 - lsls r0, r6, 16 - negs r0, r0 - lsrs r6, r0, 16 -_080B0A74: - bl Random - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080B0A86 - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080B0A86: - ldr r0, _080B0B14 @ =gUnknown_2023BD6 - add r0, r8 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _080B0A9C - lsls r0, r4, 16 - ldr r1, _080B0B18 @ =0xfff00000 - adds r0, r1 - lsrs r4, r0, 16 -_080B0A9C: - lsls r0, r6, 16 - asrs r0, 16 - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - mov r1, r9 - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080B0B1C @ =gUnknown_83E7C08 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - adds r3, r5, 0 - adds r3, 0x43 - ldrb r3, [r3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3C] - cmp r0, 0x40 - beq _080B0B00 - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080B0B20 @ =gSprites - adds r0, r4 - movs r1, 0 - bl StartSpriteAffineAnim - movs r2, 0x3C - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080B0B24 @ =SpriteCallbackDummy - str r1, [r0] -_080B0B00: - ldr r0, _080B0B28 @ =sub_80B0B2C - str r0, [r5, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B0B10: .4byte gUnknown_2037F1B -_080B0B14: .4byte gUnknown_2023BD6 -_080B0B18: .4byte 0xfff00000 -_080B0B1C: .4byte gUnknown_83E7C08 -_080B0B20: .4byte gSprites -_080B0B24: .4byte SpriteCallbackDummy -_080B0B28: .4byte sub_80B0B2C - thumb_func_end sub_80B09A4 - - thumb_func_start sub_80B0B2C -sub_80B0B2C: @ 80B0B2C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080B0B74 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x40 - beq _080B0B68 - ldr r4, _080B0B70 @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_080B0B68: - adds r0, r5, 0 - bl DestroyAnimSprite - b _080B0B78 - .align 2, 0 -_080B0B70: .4byte gSprites -_080B0B74: - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] -_080B0B78: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B0B2C - - thumb_func_start sub_80B0B80 -sub_80B0B80: @ 80B0B80 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - movs r0, 0x1E - strh r0, [r4, 0x2E] - ldr r0, _080B0BA0 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B0BA4 - ldrh r0, [r4, 0x20] - subs r0, 0x14 - strh r0, [r4, 0x32] - b _080B0BB6 - .align 2, 0 -_080B0BA0: .4byte gUnknown_2037F02 -_080B0BA4: - ldrh r0, [r4, 0x20] - adds r0, 0x14 - strh r0, [r4, 0x32] - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080B0BB6: - ldrh r0, [r4, 0x22] - subs r0, 0x14 - strh r0, [r4, 0x36] - ldr r0, _080B0BD0 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080B0BD4 @ =sub_80B0BD8 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0BD0: .4byte sub_8075590 -_080B0BD4: .4byte sub_80B0BD8 - thumb_func_end sub_80B0B80 - - thumb_func_start sub_80B0BD8 -sub_80B0BD8: @ 80B0BD8 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - adds r0, 0x1 - movs r6, 0 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _080B0C18 - ldrh r2, [r5, 0x20] - ldrh r4, [r5, 0x24] - subs r0, r2, r4 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x22] - ldrh r3, [r5, 0x26] - subs r0, r1, r3 - strh r0, [r5, 0x36] - movs r0, 0x8 - strh r0, [r5, 0x2E] - adds r2, r4 - strh r2, [r5, 0x20] - adds r1, r3 - strh r1, [r5, 0x22] - strh r6, [r5, 0x26] - strh r6, [r5, 0x24] - ldr r0, _080B0C20 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080B0C24 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080B0C18: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B0C20: .4byte sub_8075590 -_080B0C24: .4byte DestroyAnimSprite - thumb_func_end sub_80B0BD8 - - thumb_func_start sub_80B0C28 -sub_80B0C28: @ 80B0C28 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080B0CA4 @ =gUnknown_2037F1A - ldrb r1, [r0] - movs r0, 0x2 - ldr r2, _080B0CA8 @ =gUnknown_2037F1B - eors r0, r1 - ldrb r1, [r2] - cmp r0, r1 - bne _080B0C54 - ldrb r0, [r2] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080B0C54 - ldr r1, _080B0CAC @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] -_080B0C54: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080B0CA4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B0C72 - ldr r1, _080B0CAC @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080B0C72: - ldr r4, _080B0CAC @ =gUnknown_2037F02 - ldrh r0, [r4, 0x6] - movs r5, 0 - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x3A] - strh r5, [r6, 0x3C] - ldr r0, _080B0CB0 @ =sub_80B0CB4 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B0CA4: .4byte gUnknown_2037F1A -_080B0CA8: .4byte gUnknown_2037F1B -_080B0CAC: .4byte gUnknown_2037F02 -_080B0CB0: .4byte sub_80B0CB4 - thumb_func_end sub_80B0C28 - - thumb_func_start sub_80B0CB4 -sub_80B0CB4: @ 80B0CB4 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - bne _080B0CE0 - ldrh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - strh r0, [r4, 0x3C] - b _080B0CE6 -_080B0CE0: - adds r0, r4, 0 - bl DestroyAnimSprite -_080B0CE6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B0CB4 - - thumb_func_start sub_80B0CEC -sub_80B0CEC: @ 80B0CEC - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r5, _080B0D18 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldr r0, _080B0D1C @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080B0D20 @ =sub_80B0D24 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0D18: .4byte gUnknown_2037F02 -_080B0D1C: .4byte sub_8074C44 -_080B0D20: .4byte sub_80B0D24 - thumb_func_end sub_80B0CEC - - thumb_func_start sub_80B0D24 -sub_80B0D24: @ 80B0D24 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl StartSpriteAffineAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r0, _080B0D50 @ =sub_8074C44 - str r0, [r4, 0x1C] - ldr r1, _080B0D54 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0D50: .4byte sub_8074C44 -_080B0D54: .4byte DestroyAnimSprite - thumb_func_end sub_80B0D24 - - thumb_func_start sub_80B0D58 -sub_80B0D58: @ 80B0D58 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080B0D74 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080B0D78 @ =sub_80B0D7C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B0D74: .4byte gUnknown_2037F02 -_080B0D78: .4byte sub_80B0D7C - thumb_func_end sub_80B0D58 - - thumb_func_start sub_80B0D7C -sub_80B0D7C: @ 80B0D7C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - subs r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B0DC0 - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080B0DC8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080B0DCC @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080B0DD0 @ =sub_80B0DD4 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 -_080B0DC0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0DC8: .4byte gUnknown_2037F1B -_080B0DCC: .4byte sub_8075590 -_080B0DD0: .4byte sub_80B0DD4 - thumb_func_end sub_80B0D7C - - thumb_func_start sub_80B0DD4 -sub_80B0DD4: @ 80B0DD4 - push {lr} - movs r1, 0xF - strh r1, [r0, 0x2E] - ldr r1, _080B0DE8 @ =sub_8074C44 - str r1, [r0, 0x1C] - ldr r1, _080B0DEC @ =DestroyAnimSprite - bl StoreSpriteCallbackInData6 - pop {r0} - bx r0 - .align 2, 0 -_080B0DE8: .4byte sub_8074C44 -_080B0DEC: .4byte DestroyAnimSprite - thumb_func_end sub_80B0DD4 - - thumb_func_start sub_80B0DF0 -sub_80B0DF0: @ 80B0DF0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B0E1C - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r1, _080B0E18 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B0E78 - .align 2, 0 -_080B0E18: .4byte gUnknown_2037F02 -_080B0E1C: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x64 - ble _080B0E6A - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080B0E6A: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _080B0E78 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B0E78: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B0DF0 - - thumb_func_start sub_80B0E80 -sub_80B0E80: @ 80B0E80 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B0E94 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B0E9C - ldr r4, _080B0E98 @ =gUnknown_2037F1A - b _080B0E9E - .align 2, 0 -_080B0E94: .4byte gUnknown_2037F02 -_080B0E98: .4byte gUnknown_2037F1A -_080B0E9C: - ldr r4, _080B0EE4 @ =gUnknown_2037F1B -_080B0E9E: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080B0EE8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x20] - adds r0, r2 - movs r2, 0 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x4] - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - strh r2, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldr r0, _080B0EEC @ =sub_80B0EF0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B0EE4: .4byte gUnknown_2037F1B -_080B0EE8: .4byte gUnknown_2037F02 -_080B0EEC: .4byte sub_80B0EF0 - thumb_func_end sub_80B0E80 - - thumb_func_start sub_80B0EF0 -sub_80B0EF0: @ 80B0EF0 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - cmp r2, 0 - beq _080B0F02 - cmp r2, 0x1 - beq _080B0F26 - b _080B0F60 -_080B0F02: - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B0F60 - movs r2, 0x32 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080B0F1E - adds r0, r1, 0 - bl DestroyAnimSprite - b _080B0F60 -_080B0F1E: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _080B0F60 -_080B0F26: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B0F4E - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r0, [r1, 0x34] - adds r0, 0x1 - strh r0, [r1, 0x34] - ands r0, r2 - lsls r0, 16 - cmp r0, 0 - beq _080B0F4A - movs r0, 0x2 - b _080B0F4C -_080B0F4A: - ldr r0, _080B0F64 @ =0x0000fffe -_080B0F4C: - strh r0, [r1, 0x24] -_080B0F4E: - ldrh r0, [r1, 0x32] - subs r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - cmp r0, 0 - bne _080B0F60 - adds r0, r1, 0 - bl DestroyAnimSprite -_080B0F60: - pop {r0} - bx r0 - .align 2, 0 -_080B0F64: .4byte 0x0000fffe - thumb_func_end sub_80B0EF0 - - thumb_func_start sub_80B0F68 -sub_80B0F68: @ 80B0F68 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080B0F8C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080B0F94 - ldr r4, _080B0F90 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x4] - adds r0, r2 - b _080B0FA6 - .align 2, 0 -_080B0F8C: .4byte gUnknown_2037F02 -_080B0F90: .4byte gUnknown_2037F1A -_080B0F94: - ldr r4, _080B0FF0 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 -_080B0FA6: - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x22] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldr r3, _080B0FF4 @ =gUnknown_2037F02 - movs r4, 0x2 - ldrsh r0, [r3, r4] - lsls r0, 4 - adds r1, r0 - ldr r4, _080B0FF8 @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080B0FFC @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - movs r1, 0 - movs r0, 0 - strh r0, [r5, 0x2E] - movs r2, 0x2 - ldrsh r0, [r3, r2] - cmp r0, 0x1 - beq _080B1014 - cmp r0, 0x1 - bgt _080B1000 - cmp r0, 0 - beq _080B100A - b _080B103A - .align 2, 0 -_080B0FF0: .4byte gUnknown_2037F1B -_080B0FF4: .4byte gUnknown_2037F02 -_080B0FF8: .4byte 0x000003ff -_080B0FFC: .4byte 0xfffffc00 -_080B1000: - cmp r0, 0x2 - beq _080B1024 - cmp r0, 0x3 - beq _080B1034 - b _080B103A -_080B100A: - ldr r0, _080B1010 @ =0x0000fffd - b _080B1034 - .align 2, 0 -_080B1010: .4byte 0x0000fffd -_080B1014: - movs r0, 0x3 - strh r0, [r5, 0x3A] - ldr r0, _080B1020 @ =0x0000fffd - strh r0, [r5, 0x3C] - b _080B1042 - .align 2, 0 -_080B1020: .4byte 0x0000fffd -_080B1024: - ldr r0, _080B1030 @ =0x0000fffd - strh r0, [r5, 0x3A] - movs r0, 0x3 - strh r0, [r5, 0x3C] - b _080B1042 - .align 2, 0 -_080B1030: .4byte 0x0000fffd -_080B1034: - strh r0, [r5, 0x3A] - strh r0, [r5, 0x3C] - b _080B1042 -_080B103A: - adds r0, r5, 0 - bl DestroyAnimSprite - b _080B1046 -_080B1042: - ldr r0, _080B104C @ =sub_80B1050 - str r0, [r5, 0x1C] -_080B1046: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B104C: .4byte sub_80B1050 - thumb_func_end sub_80B0F68 - - thumb_func_start sub_80B1050 -sub_80B1050: @ 80B1050 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x3A] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x3C] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080B1078 - adds r0, r1, 0 - bl DestroyAnimSprite -_080B1078: - pop {r0} - bx r0 - thumb_func_end sub_80B1050 - - thumb_func_start sub_80B107C -sub_80B107C: @ 80B107C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B10C8 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B10D8 - ldr r4, _080B10CC @ =sBattler_AI - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080B10D0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080B10D4 @ =gUnknown_2037F1B - b _080B10F4 - .align 2, 0 -_080B10C8: .4byte gUnknown_2037F02 -_080B10CC: .4byte sBattler_AI -_080B10D0: .4byte gUnknown_2037F1A -_080B10D4: .4byte gUnknown_2037F1B -_080B10D8: - ldr r0, _080B1110 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080B1114 @ =gUnknown_2037F1A -_080B10F4: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - movs r0, 0 - strh r0, [r5, 0x2E] - movs r0, 0xC - strh r0, [r5, 0x30] - movs r0, 0x8 - strh r0, [r5, 0x32] - ldr r0, _080B1118 @ =sub_80B111C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1110: .4byte gUnknown_2037F1B -_080B1114: .4byte gUnknown_2037F1A -_080B1118: .4byte sub_80B111C - thumb_func_end sub_80B107C - - thumb_func_start sub_80B111C -sub_80B111C: @ 80B111C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB4 - bne _080B1178 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080B1180 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B1184 @ =sub_807563C - str r0, [r4, 0x1C] -_080B1178: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1180: .4byte move_anim_8074EE0 -_080B1184: .4byte sub_807563C - thumb_func_end sub_80B111C - - thumb_func_start sub_80B1188 -sub_80B1188: @ 80B1188 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B11D4 @ =gUnknown_2037F02 - ldrh r0, [r4] - strh r0, [r5, 0x20] - movs r2, 0x78 - strh r2, [r5, 0x22] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x2E] - adds r0, r5, 0 - adds r0, 0x36 - adds r1, r5, 0 - adds r1, 0x38 - lsls r2, 8 - bl sub_80765C0 - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x3A] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x4 - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080B11D8 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B11DC @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r0, _080B11E0 @ =sub_80B11E4 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B11D4: .4byte gUnknown_2037F02 -_080B11D8: .4byte 0x000003ff -_080B11DC: .4byte 0xfffffc00 -_080B11E0: .4byte sub_80B11E4 - thumb_func_end sub_80B1188 - - thumb_func_start sub_80B11E4 -sub_80B11E4: @ 80B11E4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _080B1236 - movs r2, 0x36 - ldrsh r0, [r7, r2] - movs r2, 0x38 - ldrsh r1, [r7, r2] - bl sub_80765C8 - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r7, r1] - subs r4, r0 - adds r0, r7, 0 - adds r0, 0x36 - adds r1, r7, 0 - adds r1, 0x38 - adds r2, r4, 0 - bl sub_80765C0 - asrs r4, 8 - strh r4, [r7, 0x22] - lsls r4, 16 - asrs r4, 16 - movs r0, 0x8 - negs r0, r0 - cmp r4, r0 - bge _080B122E - adds r0, r7, 0 - bl DestroyAnimSprite - b _080B128C -_080B122E: - ldrh r0, [r7, 0x2E] - subs r0, 0x1 - strh r0, [r7, 0x2E] - b _080B128C -_080B1236: - ldr r4, _080B1298 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r2, _080B129C @ =gUnknown_2037F1B - mov r8, r2 - ldrb r0, [r2] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - subs r4, r6 - strh r4, [r7, 0x2E] - lsrs r0, 24 - subs r0, r5 - strh r0, [r7, 0x30] - ldrh r0, [r7, 0x20] - lsls r0, 4 - strh r0, [r7, 0x32] - ldrh r0, [r7, 0x22] - lsls r0, 4 - strh r0, [r7, 0x34] - ldr r0, _080B12A0 @ =sub_80B12A4 - str r0, [r7, 0x1C] -_080B128C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B1298: .4byte gUnknown_2037F1A -_080B129C: .4byte gUnknown_2037F1B -_080B12A0: .4byte sub_80B12A4 - thumb_func_end sub_80B11E4 - - thumb_func_start sub_80B12A4 -sub_80B12A4: @ 80B12A4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x34] - adds r1, r3 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080B12DE - adds r1, r3, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080B12DE - cmp r1, 0x78 - ble _080B12E4 -_080B12DE: - adds r0, r2, 0 - bl DestroyAnimSprite -_080B12E4: - pop {r0} - bx r0 - thumb_func_end sub_80B12A4 - - thumb_func_start sub_80B12E8 -sub_80B12E8: @ 80B12E8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B131C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B132C - ldr r4, _080B1320 @ =sBattler_AI - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080B1324 @ =gUnknown_2037F1B - ldrb r4, [r0] - ldr r0, _080B1328 @ =gUnknown_2037F1A - b _080B1332 - .align 2, 0 -_080B131C: .4byte gUnknown_2037F02 -_080B1320: .4byte sBattler_AI -_080B1324: .4byte gUnknown_2037F1B -_080B1328: .4byte gUnknown_2037F1A -_080B132C: - ldr r0, _080B1364 @ =gUnknown_2037F1A - ldrb r4, [r0] - ldr r0, _080B1368 @ =gUnknown_2037F1B -_080B1332: - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B136C - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x8 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x47 - b _080B1386 - .align 2, 0 -_080B1364: .4byte gUnknown_2037F1A -_080B1368: .4byte gUnknown_2037F1B -_080B136C: - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B138C - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x18 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x57 -_080B1386: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] -_080B138C: - movs r0, 0x10 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080B13CC @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B13D0 @ =sub_807563C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B13CC: .4byte DestroyAnimSprite -_080B13D0: .4byte sub_807563C - thumb_func_end sub_80B12E8 - - thumb_func_start sub_80B13D4 -sub_80B13D4: @ 80B13D4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080B13EA - adds r0, r4, 0 - bl DestroyAnimSprite -_080B13EA: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B13D4 - - thumb_func_start sub_80B13F8 -sub_80B13F8: @ 80B13F8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080B1474 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080B1478 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1] - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x36] - ldr r0, _080B147C @ =gUnknown_2037F16 - ldrb r6, [r0] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B1442 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080B1442: - movs r0, 0x1 - ands r6, r0 - cmp r6, 0 - beq _080B1456 - ldrh r0, [r5, 0x32] - negs r0, r0 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] -_080B1456: - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x32] - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x34] - strh r0, [r5, 0x26] - ldr r0, _080B1480 @ =sub_80B13D4 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1474: .4byte gUnknown_2037F1B -_080B1478: .4byte gUnknown_2037F02 -_080B147C: .4byte gUnknown_2037F16 -_080B1480: .4byte sub_80B13D4 - thumb_func_end sub_80B13F8 - - thumb_func_start sub_80B1484 -sub_80B1484: @ 80B1484 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B149C @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B14A0 - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 - b _080B14A8 - .align 2, 0 -_080B149C: .4byte gUnknown_2037F02 -_080B14A0: - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 -_080B14A8: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B14BC - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - b _080B14D2 -_080B14BC: - ldr r0, _080B14E4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B14D2 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080B14D2: - ldr r0, _080B14E8 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080B14EC @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B14E4: .4byte gUnknown_2037F1A -_080B14E8: .4byte sub_8074F6C -_080B14EC: .4byte DestroyAnimSprite - thumb_func_end sub_80B1484 - - thumb_func_start sub_80B14F0 -sub_80B14F0: @ 80B14F0 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B152A - ldrh r0, [r4, 0x30] - adds r0, 0x28 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080B152A - adds r0, r4, 0 - bl DestroyAnimSprite -_080B152A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B14F0 - - thumb_func_start sub_80B1530 -sub_80B1530: @ 80B1530 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080B1560 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B1568 - cmp r0, 0x1 - bgt _080B1582 - cmp r0, 0 - bne _080B1582 - movs r0, 0 - bl sub_8075458 - ldr r0, _080B1564 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r4, 0x18] - b _080B157A - .align 2, 0 -_080B1560: .4byte gTasks -_080B1564: .4byte gUnknown_2037F02 -_080B1568: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B158E -_080B157A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B158E -_080B1582: - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r1, [r4, 0x1A] - adds r0, r1 - strh r0, [r4, 0x1A] -_080B158E: - movs r2, 0xB0 - lsls r2, 4 - adds r0, r2, 0 - ldrh r1, [r4, 0x1C] - adds r0, r1 - strh r0, [r4, 0x1C] - ldr r0, _080B15BC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B15C4 - ldr r1, _080B15C0 @ =gUnknown_2022980 - ldrh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - adds r7, r1, 0 - b _080B15D4 - .align 2, 0 -_080B15BC: .4byte gUnknown_2037F1B -_080B15C0: .4byte gUnknown_2022980 -_080B15C4: - ldr r2, _080B1614 @ =gUnknown_2022980 - ldrh r1, [r4, 0x1A] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - adds r7, r2, 0 -_080B15D4: - ldr r3, _080B1618 @ =gUnknown_2022982 - ldrh r2, [r4, 0x1C] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - movs r0, 0xFF - ldrb r1, [r4, 0x1A] - movs r5, 0 - strh r1, [r4, 0x1A] - ands r0, r2 - strh r0, [r4, 0x1C] - ldr r0, _080B161C @ =gUnknown_2037F02 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080B160C - strh r5, [r7] - strh r5, [r3] - movs r0, 0x1 - bl sub_8075458 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080B160C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B1614: .4byte gUnknown_2022980 -_080B1618: .4byte gUnknown_2022982 -_080B161C: .4byte gUnknown_2037F02 - thumb_func_end sub_80B1530 - - thumb_func_start sub_80B1620 -sub_80B1620: @ 80B1620 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B1674 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B1636 - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080B1636: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2E] - ldr r4, _080B1678 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080B167C @ =0x0000ffe2 - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080B1680 @ =sub_80B1684 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1674: .4byte gUnknown_2037F02 -_080B1678: .4byte gUnknown_2037F1B -_080B167C: .4byte 0x0000ffe2 -_080B1680: .4byte sub_80B1684 - thumb_func_end sub_80B1620 - - thumb_func_start sub_80B1684 -sub_80B1684: @ 80B1684 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B1698 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B1698: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B1684 - - thumb_func_start sub_80B16A0 -sub_80B16A0: @ 80B16A0 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r5, _080B1714 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B16B8 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080B16B8: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B1718 @ =gUnknown_2037F1B - ldrb r0, [r0] - mov r6, sp - adds r6, 0x2 - movs r1, 0x1 - mov r2, sp - adds r3, r6, 0 - bl sub_8076D9C - ldr r0, _080B171C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B16E6 - ldrh r0, [r5, 0x8] - negs r0, r0 - strh r0, [r5, 0x8] -_080B16E6: - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - mov r1, sp - ldrh r0, [r5, 0x8] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - ldrh r6, [r6] - adds r0, r6 - strh r0, [r4, 0x36] - ldr r0, _080B1720 @ =0x0000ffe2 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldr r0, _080B1724 @ =sub_80B1728 - str r0, [r4, 0x1C] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1714: .4byte gUnknown_2037F02 -_080B1718: .4byte gUnknown_2037F1B -_080B171C: .4byte gUnknown_2037F1A -_080B1720: .4byte 0x0000ffe2 -_080B1724: .4byte sub_80B1728 - thumb_func_end sub_80B16A0 - - thumb_func_start sub_80B1728 -sub_80B1728: @ 80B1728 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B173C - adds r0, r4, 0 - bl DestroyAnimSprite -_080B173C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B1728 - - thumb_func_start sub_80B1744 -sub_80B1744: @ 80B1744 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B1790 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r1, [r5] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80754B8 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x38] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x3A] - ldr r0, _080B1794 @ =sub_80B1798 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1790: .4byte gUnknown_2037F02 -_080B1794: .4byte sub_80B1798 - thumb_func_end sub_80B1744 - - thumb_func_start sub_80B1798 -sub_80B1798: @ 80B1798 - push {r4,lr} - adds r4, r0, 0 - bl sub_8074D00 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x38] - subs r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x3A] - subs r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B17BE - adds r0, r4, 0 - bl DestroyAnimSprite -_080B17BE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B1798 - - thumb_func_start sub_80B17C4 -sub_80B17C4: @ 80B17C4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B1824 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_8076D9C - ldr r0, _080B1828 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B17F0 - ldr r1, _080B182C @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080B17F0: - ldr r0, _080B182C @ =gUnknown_2037F02 - ldrh r2, [r0] - ldrh r1, [r4, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - ldrh r1, [r0, 0x2] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - ldrh r3, [r0, 0x8] - strh r3, [r4, 0x2E] - ldrh r0, [r0, 0x4] - adds r2, r0 - strh r2, [r4, 0x32] - adds r1, r3 - strh r1, [r4, 0x36] - ldr r0, _080B1830 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080B1834 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1824: .4byte gUnknown_2037F1B -_080B1828: .4byte gUnknown_2037F1A -_080B182C: .4byte gUnknown_2037F02 -_080B1830: .4byte sub_8075590 -_080B1834: .4byte DestroyAnimSprite - thumb_func_end sub_80B17C4 - - thumb_func_start sub_80B1838 -sub_80B1838: @ 80B1838 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B1850 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B1854 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 - b _080B188A - .align 2, 0 -_080B1850: .4byte gUnknown_2037F02 -_080B1854: - ldr r0, _080B1894 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_8076D9C - ldr r0, _080B1898 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B187A - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080B187A: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080B188A: - ldr r0, _080B189C @ =sub_80B18A0 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1894: .4byte gUnknown_2037F1B -_080B1898: .4byte gUnknown_2037F1A -_080B189C: .4byte sub_80B18A0 - thumb_func_end sub_80B1838 - - thumb_func_start sub_80B18A0 -sub_80B18A0: @ 80B18A0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B18DC - adds r0, r4, 0 - bl DestroyAnimSprite -_080B18DC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B18A0 - - thumb_func_start sub_80B18E4 -sub_80B18E4: @ 80B18E4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8075114 - ldrh r0, [r4, 0x22] - adds r0, 0x14 - strh r0, [r4, 0x22] - movs r0, 0xBF - strh r0, [r4, 0x30] - ldr r1, _080B1908 @ =sub_80B190C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1908: .4byte sub_80B190C - thumb_func_end sub_80B18E4 - - thumb_func_start sub_80B190C -sub_80B190C: @ 80B190C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x47 - bne _080B1946 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B1946: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B190C - - thumb_func_start sub_80B194C -sub_80B194C: @ 80B194C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B197C @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r1, _080B1980 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x8] - ldrh r0, [r1] - strh r0, [r4, 0xA] - ldr r0, _080B1984 @ =0x00002719 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - ldr r0, _080B1988 @ =sub_80B198C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B197C: .4byte gTasks -_080B1980: .4byte gUnknown_2037F02 -_080B1984: .4byte 0x00002719 -_080B1988: .4byte sub_80B198C - thumb_func_end sub_80B194C - - thumb_func_start sub_80B198C -sub_80B198C: @ 80B198C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080B1A0C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r1, r0, 0x1 - strh r1, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xA - ldrsh r1, [r3, r4] - adds r7, r2, 0 - cmp r0, r1 - bne _080B19EA - movs r0, 0 - strh r0, [r3, 0x1C] - ldrb r0, [r3, 0xC] - ldr r2, _080B1A10 @ =gPlttBufferFaded - lsls r0, 4 - movs r3, 0x84 - lsls r3, 1 - adds r1, r0, r3 - lsls r1, 1 - adds r1, r2 - ldrh r6, [r1] - movs r4, 0x7 - mov r12, r0 - ldr r0, _080B1A14 @ =0x00000107 - add r0, r12 - lsls r0, 1 - adds r3, r0, r2 -_080B19D2: - ldrh r0, [r3] - strh r0, [r1] - subs r3, 0x2 - subs r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bgt _080B19D2 - ldr r0, _080B1A18 @ =0x00000101 - add r0, r12 - lsls r0, 1 - adds r0, r2 - strh r6, [r0] -_080B19EA: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r7 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bne _080B1A04 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B1A04: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B1A0C: .4byte gTasks -_080B1A10: .4byte gPlttBufferFaded -_080B1A14: .4byte 0x00000107 -_080B1A18: .4byte 0x00000101 - thumb_func_end sub_80B198C - - thumb_func_start sub_80B1A1C -sub_80B1A1C: @ 80B1A1C - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B1A88 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B1A3C - ldr r1, _080B1A8C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080B1A3C: - ldr r4, _080B1A8C @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldr r5, _080B1A90 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080B1A94 @ =sub_8074F50 - str r0, [r6, 0x1C] - ldr r1, _080B1A98 @ =sub_80B1A9C - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B1A88: .4byte gUnknown_2037F1A -_080B1A8C: .4byte gUnknown_2037F02 -_080B1A90: .4byte gUnknown_2037F1B -_080B1A94: .4byte sub_8074F50 -_080B1A98: .4byte sub_80B1A9C - thumb_func_end sub_80B1A1C - - thumb_func_start sub_80B1A9C -sub_80B1A9C: @ 80B1A9C - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080B1AB0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B1AB0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B1A9C - - thumb_func_start sub_80B1AB8 -sub_80B1AB8: @ 80B1AB8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B1B54 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B1AE4 - ldr r1, _080B1B58 @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080B1AE4: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B1AFC - ldr r0, _080B1B58 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0x6] - negs r1, r1 - strh r1, [r0, 0x6] -_080B1AFC: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - ldr r2, _080B1B58 @ =gUnknown_2037F02 - ldrh r1, [r2] - ldrh r3, [r5, 0x20] - adds r1, r3 - strh r1, [r5, 0x20] - lsrs r0, 24 - ldrh r1, [r2, 0x2] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r0, [r2, 0x8] - strh r0, [r5, 0x2E] - movs r3, 0xC - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080B1B60 - ldr r4, _080B1B5C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080B1B72 - .align 2, 0 -_080B1B54: .4byte gUnknown_2037F1A -_080B1B58: .4byte gUnknown_2037F02 -_080B1B5C: .4byte gUnknown_2037F1B -_080B1B60: - ldr r0, _080B1BA0 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C -_080B1B72: - ldr r4, _080B1BA4 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x4] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x6] - ldrh r3, [r5, 0x36] - adds r0, r3 - strh r0, [r5, 0x36] - ldr r0, _080B1BA8 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080B1BAC @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldrb r1, [r4, 0xA] - adds r0, r5, 0 - bl SeekSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1BA0: .4byte gUnknown_2037F1B -_080B1BA4: .4byte gUnknown_2037F02 -_080B1BA8: .4byte sub_8075590 -_080B1BAC: .4byte DestroyAnimSprite - thumb_func_end sub_80B1AB8 - - thumb_func_start sub_80B1BB0 -sub_80B1BB0: @ 80B1BB0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080B1BEC @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080B1BF0 @ =sub_80B1BF8 - str r0, [r4, 0x1C] - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B1BF4 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1BEC: .4byte gUnknown_2037F02 -_080B1BF0: .4byte sub_80B1BF8 -_080B1BF4: .4byte gSprites - thumb_func_end sub_80B1BB0 - - thumb_func_start sub_80B1BF8 -sub_80B1BF8: @ 80B1BF8 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080B1C0C - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - b _080B1C1E -_080B1C0C: - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - subs r1, r0 - strh r1, [r2, 0x26] -_080B1C1E: - movs r3, 0x22 - ldrsh r0, [r2, r3] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080B1C36 - adds r0, r2, 0 - bl DestroyAnimSprite -_080B1C36: - pop {r0} - bx r0 - thumb_func_end sub_80B1BF8 - - thumb_func_start sub_80B1C3C -sub_80B1C3C: @ 80B1C3C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B1C64 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B1C6C - movs r0, 0x88 - lsls r0, 1 - strh r0, [r5, 0x20] - ldr r0, _080B1C68 @ =0x0000ffe0 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080B1C72 - .align 2, 0 -_080B1C64: .4byte gUnknown_2037F1A -_080B1C68: .4byte 0x0000ffe0 -_080B1C6C: - ldr r0, _080B1CB0 @ =0x0000ffe0 - strh r0, [r5, 0x20] - strh r0, [r5, 0x22] -_080B1C72: - ldr r0, _080B1CB4 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080B1CB8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080B1CBC @ =sub_80B1CC0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B1CB0: .4byte 0x0000ffe0 -_080B1CB4: .4byte gUnknown_2037F02 -_080B1CB8: .4byte gUnknown_2037F1B -_080B1CBC: .4byte sub_80B1CC0 - thumb_func_end sub_80B1C3C - - thumb_func_start sub_80B1CC0 -sub_80B1CC0: @ 80B1CC0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80755E0 - ldrh r1, [r4, 0x34] - lsrs r0, r1, 8 - cmp r0, 0xC8 - bls _080B1CE8 - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] -_080B1CE8: - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x20 - movs r1, 0x98 - lsls r1, 1 - cmp r0, r1 - bhi _080B1D0A - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - cmp r0, 0xA0 - ble _080B1D30 -_080B1D0A: - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B1D38 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyAnimSprite -_080B1D30: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1D38: .4byte gSprites - thumb_func_end sub_80B1CC0 - - thumb_func_start sub_80B1D3C -sub_80B1D3C: @ 80B1D3C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080B1D7C - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B1D6E - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080B1D6E: - adds r0, r4, 0 - bl DestroySprite - ldr r1, _080B1D84 @ =gUnknown_2037EE2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080B1D7C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B1D84: .4byte gUnknown_2037EE2 - thumb_func_end sub_80B1D3C - - thumb_func_start sub_80B1D88 -sub_80B1D88: @ 80B1D88 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r5, r7, 0 - adds r5, 0x2E - ldr r0, _080B1DA8 @ =gUnknown_2037F02 - ldrh r1, [r0, 0xE] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080B1DB0 - ldr r0, _080B1DAC @ =gUnknown_2037F1A - b _080B1DB2 - .align 2, 0 -_080B1DA8: .4byte gUnknown_2037F02 -_080B1DAC: .4byte gUnknown_2037F1A -_080B1DB0: - ldr r0, _080B1E5C @ =gUnknown_2037F1B -_080B1DB2: - ldrb r6, [r0] - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B1DC8 - ldr r1, _080B1E60 @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080B1DC8: - adds r0, r6, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080B1E60 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r7, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - ldrh r1, [r4, 0x2] - lsrs r0, 24 - adds r1, r0, r1 - strh r1, [r7, 0x22] - lsls r1, 8 - strh r1, [r5, 0x8] - ldrh r1, [r4, 0xC] - adds r0, r1 - lsls r0, 1 - ldrh r2, [r5, 0xE] - movs r1, 0x1 - ands r1, r2 - orrs r1, r0 - strh r1, [r5, 0xE] - ldrb r0, [r5] - movs r2, 0x4 - mov r8, r2 - mov r1, r8 - orrs r0, r1 - strb r0, [r5] - ldrh r0, [r4, 0x4] - ldrb r1, [r4, 0x4] - strh r1, [r5, 0x2] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0xA] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x4] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x6] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0xC] - subs r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x7F - bhi _080B1EBE - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B1E64 - adds r0, r6, 0 - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r7, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x5] - b _080B1E7C - .align 2, 0 -_080B1E5C: .4byte gUnknown_2037F1B -_080B1E60: .4byte gUnknown_2037F02 -_080B1E64: - adds r0, r6, 0 - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] -_080B1E7C: - ldrb r1, [r5, 0xE] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - strb r0, [r5, 0xE] - movs r2, 0x4 - ldrsh r0, [r5, r2] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _080B1F1E - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r0, r2, 31 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - b _080B1F16 -_080B1EBE: - adds r0, r6, 0 - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] - ldrb r0, [r5, 0xE] - movs r4, 0x1 - orrs r0, r4 - strb r0, [r5, 0xE] - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080B1F1E - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - ands r1, r4 - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - mov r2, r8 - orrs r0, r2 -_080B1F16: - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] -_080B1F1E: - ldrh r1, [r5, 0x2] - lsrs r1, 6 - lsls r1, 4 - ldrb r2, [r5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r3, _080B1F88 @ =gUnknown_825E074 - ldrh r0, [r5, 0x2] - lsls r0, 1 - adds r0, r3 - movs r2, 0 - ldrsh r1, [r0, r2] - ldrb r0, [r5, 0xC] - muls r0, r1 - asrs r0, 8 - strh r0, [r7, 0x24] - ldrb r2, [r7, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r1, 0x24 - ldrsh r0, [r7, r1] - negs r0, r0 - asrs r0, 1 - ldrb r5, [r5, 0xA] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r4, [r1] - ldr r1, _080B1F8C @ =gOamMatrices - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r4, [r2, 0x2] - lsls r0, r4, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldr r0, _080B1F90 @ =sub_80B1F94 - str r0, [r7, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B1F88: .4byte gUnknown_825E074 -_080B1F8C: .4byte gOamMatrices -_080B1F90: .4byte sub_80B1F94 - thumb_func_end sub_80B1D88 - - thumb_func_start sub_80B1F94 -sub_80B1F94: @ 80B1F94 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r6, 0 - adds r4, r5, 0 - adds r4, 0x2E - ldrb r2, [r4] - movs r7, 0x1 - movs r0, 0x1 - mov r9, r0 - ands r0, r2 - cmp r0, 0 - beq _080B1FCE - ldrb r0, [r4, 0x1] - adds r1, r0, 0 - adds r1, 0xFF - strb r1, [r4, 0x1] - lsls r0, 24 - cmp r0, 0 - beq _080B1FC2 - b _080B24AA -_080B1FC2: - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080B24AA -_080B1FCE: - ldrh r0, [r4, 0x2] - lsrs r1, r0, 6 - mov r12, r0 - cmp r1, 0x1 - bne _080B1FDA - b _080B20FE -_080B1FDA: - cmp r1, 0x1 - bgt _080B1FE4 - cmp r1, 0 - beq _080B1FF2 - b _080B23F0 -_080B1FE4: - cmp r1, 0x2 - bne _080B1FEA - b _080B21F2 -_080B1FEA: - cmp r1, 0x3 - bne _080B1FF0 - b _080B22E6 -_080B1FF0: - b _080B23F0 -_080B1FF2: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080B2006 - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080B20F4 -_080B2006: - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080B2028 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - strb r1, [r4] - strb r6, [r4, 0x1] - b _080B20F4 -_080B2028: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080B20F4 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B20E6 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B20B6 - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B209C - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B20D4 -_080B209C: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B20D4 -_080B20B6: - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B20CA - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - b _080B20D2 -_080B20CA: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC -_080B20D2: - strb r0, [r1] -_080B20D4: - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080B20E6: - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, 0x2] - mov r12, r1 -_080B20F4: - ldrb r1, [r4] - movs r0, 0xF - ands r0, r1 - strb r0, [r4] - b _080B23F0 -_080B20FE: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0 - bne _080B210C - movs r0, 0x8 - orrs r0, r2 - b _080B2114 -_080B210C: - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080B211C - adds r0, r2, 0 -_080B2114: - orrs r0, r7 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080B21E8 -_080B211C: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080B21E8 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B21DA - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B21AA - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B2190 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B21C8 -_080B2190: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B21C8 -_080B21AA: - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B21BE - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - b _080B21C6 -_080B21BE: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC -_080B21C6: - strb r0, [r1] -_080B21C8: - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080B21DA: - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, 0x2] - mov r12, r1 -_080B21E8: - ldrb r0, [r4] - movs r1, 0xF - ands r1, r0 - movs r0, 0x10 - b _080B23EC -_080B21F2: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080B2200 - movs r0, 0x8 - orrs r0, r2 - b _080B2208 -_080B2200: - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080B2210 - adds r0, r2, 0 -_080B2208: - orrs r0, r7 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080B22DC -_080B2210: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080B22DC - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B22CE - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B229E - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B2284 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B22BC -_080B2284: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B22BC -_080B229E: - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B22B2 - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - b _080B22BA -_080B22B2: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC -_080B22BA: - strb r0, [r1] -_080B22BC: - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080B22CE: - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, 0x2] - mov r12, r1 -_080B22DC: - ldrb r0, [r4] - movs r1, 0xF - ands r1, r0 - movs r0, 0x20 - b _080B23EC -_080B22E6: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080B22F6 - movs r0, 0x8 - orrs r0, r2 - strb r0, [r4] - b _080B23E4 -_080B22F6: - lsrs r0, r1, 28 - cmp r0, 0 - bne _080B2318 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - strb r1, [r4] - strb r6, [r4, 0x1] - b _080B23E4 -_080B2318: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080B23E4 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B23D6 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B23A6 - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B238C - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B23C4 -_080B238C: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080B23C4 -_080B23A6: - ldrb r1, [r4, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080B23BA - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - b _080B23C2 -_080B23BA: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC -_080B23C2: - strb r0, [r1] -_080B23C4: - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080B23D6: - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r1, [r4, 0x2] - mov r12, r1 -_080B23E4: - ldrb r0, [r4] - movs r1, 0xF - ands r1, r0 - movs r0, 0x30 -_080B23EC: - orrs r1, r0 - strb r1, [r4] -_080B23F0: - ldrb r1, [r4] - lsls r1, 30 - lsrs r1, 31 - adds r0, r4, 0 - adds r0, 0xC - adds r0, r1 - ldrb r1, [r0] - ldr r3, _080B2478 @ =gUnknown_825E074 - mov r2, r12 - lsls r0, r2, 1 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r1, 0x24 - ldrsh r0, [r5, r1] - negs r0, r0 - asrs r0, 1 - ldrb r1, [r4, 0xA] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r6, [r1] - ldr r1, _080B247C @ =gOamMatrices - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r6, [r2, 0x2] - lsls r0, r6, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldrh r0, [r4, 0x6] - ldrh r2, [r4, 0x8] - adds r0, r2 - strh r0, [r4, 0x8] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080B2480 - ldrh r0, [r4, 0x4] - subs r1, 0x1 - ands r1, r0 - ldrh r0, [r4, 0x2] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2] - b _080B2490 - .align 2, 0 -_080B2478: .4byte gUnknown_825E074 -_080B247C: .4byte gOamMatrices -_080B2480: - ldrh r0, [r4, 0x4] - ldr r1, _080B24B8 @ =0x00007fff - ands r1, r0 - ldrh r2, [r4, 0x2] - adds r1, r2 - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0x2] -_080B2490: - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - ldrh r0, [r4, 0xE] - lsrs r0, 1 - cmp r1, r0 - blt _080B24AA - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080B24BC @ =sub_80B1D3C - str r0, [r5, 0x1C] -_080B24AA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B24B8: .4byte 0x00007fff -_080B24BC: .4byte sub_80B1D3C - thumb_func_end sub_80B1F94 - - thumb_func_start sub_80B24C0 -sub_80B24C0: @ 80B24C0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _080B2508 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldr r5, _080B250C @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080B2510 @ =sub_8075DF4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2508: .4byte gUnknown_2037F1B -_080B250C: .4byte gUnknown_2037F1A -_080B2510: .4byte sub_8075DF4 - thumb_func_end sub_80B24C0 - - thumb_func_start sub_80B2514 -sub_80B2514: @ 80B2514 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, _080B2554 @ =gUnknown_2037F02 - ldrh r0, [r5] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x34] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B25C4 - ldr r0, _080B2558 @ =gUnknown_2023BD6 - ldr r1, _080B255C @ =gUnknown_2037F1B - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B2560 - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - b _080B256E - .align 2, 0 -_080B2554: .4byte gUnknown_2037F02 -_080B2558: .4byte gUnknown_2023BD6 -_080B255C: .4byte gUnknown_2037F1B -_080B2560: - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x28 -_080B256E: - strh r0, [r4, 0x3C] - ldr r0, _080B259C @ =gUnknown_2037F02 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080B25A4 - ldr r0, _080B25A0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080B25D8 - .align 2, 0 -_080B259C: .4byte gUnknown_2037F02 -_080B25A0: .4byte gUnknown_2037F1B -_080B25A4: - ldr r0, _080B25C0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_8076884 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080B25D8 - .align 2, 0 -_080B25C0: .4byte gUnknown_2037F1B -_080B25C4: - ldr r0, _080B267C @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r4, 0x3C] -_080B25D8: - ldr r5, _080B2680 @ =gUnknown_825E074 - ldrh r3, [r4, 0x30] - movs r1, 0xFF - ands r1, r3 - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - movs r2, 0 - strh r0, [r4, 0x36] - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r4, 0x38] - strh r2, [r4, 0x3A] - strh r2, [r4, 0x26] - strh r2, [r4, 0x24] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r6, r0, 27 - lsls r3, 16 - lsrs r3, 24 - strh r3, [r4, 0x30] - bl Random - lsls r0, 16 - asrs r7, r0, 16 - movs r0, 0x80 - lsls r0, 8 - ands r0, r7 - cmp r0, 0 - beq _080B2622 - ldrh r1, [r4, 0x30] - movs r0, 0xFF - subs r0, r1 - strh r0, [r4, 0x30] -_080B2622: - movs r0, 0x30 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r3, _080B2684 @ =gOamMatrices - lsls r2, r6, 3 - adds r2, r3 - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r1, [r1] - strh r1, [r2, 0x6] - strh r1, [r2] - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - adds r3, r4, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - movs r0, 0x1 - ands r0, r7 - cmp r0, 0 - beq _080B2672 - adds r2, r4, 0 - adds r2, 0x2A - movs r1, 0x1 - movs r0, 0x1 - strb r0, [r2] - ldrb r0, [r3] - orrs r0, r1 - strb r0, [r3] -_080B2672: - ldr r0, _080B2688 @ =sub_80B268C - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B267C: .4byte gUnknown_2037F1B -_080B2680: .4byte gUnknown_825E074 -_080B2684: .4byte gOamMatrices -_080B2688: .4byte sub_80B268C - thumb_func_end sub_80B2514 - - thumb_func_start sub_80B268C -sub_80B268C: @ 80B268C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r4, 0 - adds r5, 0x2E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r1, 0 - mov r8, r1 - movs r7, 0 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080B2770 - movs r2, 0x36 - ldrsh r1, [r4, r2] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r6, r0, 8 - strh r6, [r4, 0x24] - movs r0, 0x38 - ldrsh r1, [r4, r0] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r3, r0, 8 - strh r3, [r4, 0x26] - ldrh r2, [r4, 0x34] - movs r1, 0xFF - adds r0, r1, 0 - ands r0, r2 - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - ldrh r2, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - ands r1, r2 - cmp r0, r1 - blt _080B2770 - ldrh r0, [r4, 0x20] - adds r0, r6 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - strh r7, [r4, 0x24] - strh r7, [r4, 0x26] - mov r0, sp - adds r1, r5, 0 - movs r2, 0x10 - bl memcpy - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - bl memset - ldrh r0, [r4, 0x22] - lsls r0, 8 - strh r0, [r5, 0x8] - mov r0, sp - ldrh r0, [r0, 0x6] - lsrs r1, r0, 8 - strh r1, [r5, 0x6] - strh r7, [r5, 0x2] - mov r0, sp - ldrh r0, [r0, 0x2] - strh r0, [r5, 0xA] - adds r0, r4, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0 - beq _080B2740 - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080B2738 - ldr r0, _080B2734 @ =0x00008001 - b _080B274E - .align 2, 0 -_080B2734: .4byte 0x00008001 -_080B2738: - ldr r0, _080B273C @ =0x00008002 - b _080B274E - .align 2, 0 -_080B273C: .4byte 0x00008002 -_080B2740: - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080B274C - movs r0, 0x1 - b _080B274E -_080B274C: - movs r0, 0x2 -_080B274E: - strh r0, [r5, 0x4] - mov r0, sp - ldrh r0, [r0, 0x4] - lsrs r0, 8 - strb r0, [r5, 0xC] - subs r0, 0x2 - strb r0, [r5, 0xD] - mov r0, sp - ldrh r1, [r0, 0xE] - lsls r1, 1 - ldrh r2, [r5, 0xE] - movs r0, 0x1 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0xE] - ldr r0, _080B277C @ =sub_80B1F94 - str r0, [r4, 0x1C] -_080B2770: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B277C: .4byte sub_80B1F94 - thumb_func_end sub_80B268C - - thumb_func_start sub_80B2780 -sub_80B2780: @ 80B2780 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B2798 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B279C - adds r0, r5, 0 - movs r1, 0 - bl sub_8075160 - b _080B27A4 - .align 2, 0 -_080B2798: .4byte gUnknown_2037F02 -_080B279C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8075114 -_080B27A4: - ldr r4, _080B280C @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B27BC - ldr r0, _080B2810 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B27D2 -_080B27BC: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080B27D8 - ldr r0, _080B2814 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B27D8 -_080B27D2: - ldrh r0, [r5, 0x20] - adds r0, 0x8 - strh r0, [r5, 0x20] -_080B27D8: - ldr r4, _080B280C @ =gUnknown_2037F02 - ldrb r1, [r4, 0x8] - adds r0, r5, 0 - bl SeekSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x20 - strh r0, [r5, 0x20] - ldr r0, _080B2818 @ =0x00000ccc - strh r0, [r5, 0x30] - ldrh r1, [r4, 0x8] - movs r0, 0xC - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 - ldrh r2, [r5, 0x24] - adds r0, r2 - strh r0, [r5, 0x24] - strh r1, [r5, 0x2E] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x3C] - ldr r0, _080B281C @ =sub_80B2820 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B280C: .4byte gUnknown_2037F02 -_080B2810: .4byte gUnknown_2037F1A -_080B2814: .4byte gUnknown_2037F1B -_080B2818: .4byte 0x00000ccc -_080B281C: .4byte sub_80B2820 - thumb_func_end sub_80B2780 - - thumb_func_start sub_80B2820 -sub_80B2820: @ 80B2820 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080B284A - strh r1, [r4, 0x2E] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl StartSpriteAnim -_080B284A: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B2862 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B2862: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B2820 - - thumb_func_start sub_80B2868 -sub_80B2868: @ 80B2868 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080B2900 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - ldrh r0, [r7, 0x8] - movs r1, 0x1F - ands r0, r1 - cmp r0, 0 - bne _080B28E2 - ldr r1, _080B2904 @ =gUnknown_2037EE2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r1, 0x8 - ldrsh r0, [r7, r1] - movs r5, 0xD - negs r5, r5 - adds r1, r5, 0 - bl Sin - ldr r4, _080B2908 @ =gUnknown_2037F02 - strh r0, [r4] - movs r1, 0x8 - ldrsh r0, [r7, r1] - adds r1, r5, 0 - bl Cos - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r4, 0x4] - movs r0, 0x3 - strh r0, [r4, 0x6] - ldr r0, _080B290C @ =gUnknown_83E7C98 - mov r8, r0 - ldr r5, _080B2910 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0x3 - bl CreateSpriteAndAnimate -_080B28E2: - ldrh r0, [r7, 0x8] - adds r0, 0x8 - strh r0, [r7, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080B28F6 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080B28F6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B2900: .4byte gTasks -_080B2904: .4byte gUnknown_2037EE2 -_080B2908: .4byte gUnknown_2037F02 -_080B290C: .4byte gUnknown_83E7C98 -_080B2910: .4byte gUnknown_2037F1B - thumb_func_end sub_80B2868 - - thumb_func_start sub_80B2914 -sub_80B2914: @ 80B2914 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B2926 - cmp r0, 0x1 - beq _080B2958 - b _080B296C -_080B2926: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075160 - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B2954 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B296C - .align 2, 0 -_080B2954: .4byte gSprites -_080B2958: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B296C - adds r0, r4, 0 - bl DestroyAnimSprite -_080B296C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B2914 - - thumb_func_start sub_80B2974 -sub_80B2974: @ 80B2974 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B29AC - cmp r0, 0x1 - bgt _080B298A - cmp r0, 0 - beq _080B2990 - b _080B29FE -_080B298A: - cmp r0, 0x2 - beq _080B29C0 - b _080B29FE -_080B2990: - ldr r0, _080B29A8 @ =gUnknown_2037F1B - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - negs r0, r0 - subs r0, 0x20 - strh r0, [r4, 0x26] - b _080B29B8 - .align 2, 0 -_080B29A8: .4byte gUnknown_2037F1B -_080B29AC: - ldrh r0, [r4, 0x26] - adds r0, 0xA - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080B29FE -_080B29B8: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B29FE -_080B29C0: - ldrh r0, [r4, 0x26] - subs r0, 0xA - strh r0, [r4, 0x26] - movs r2, 0x22 - ldrsh r0, [r4, r2] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080B29FE - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B2A04 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyAnimSprite -_080B29FE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2A04: .4byte gSprites - thumb_func_end sub_80B2974 - - thumb_func_start sub_80B2A08 -sub_80B2A08: @ 80B2A08 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080B2A44 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080B2A48 @ =sub_80B2A50 - str r0, [r4, 0x1C] - movs r0, 0 - bl GetAnimBankSpriteId - ldr r2, _080B2A4C @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2A44: .4byte gUnknown_2037F02 -_080B2A48: .4byte sub_80B2A50 -_080B2A4C: .4byte gSprites - thumb_func_end sub_80B2A08 - - thumb_func_start sub_80B2A50 -sub_80B2A50: @ 80B2A50 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080B2A64 - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - b _080B2AA8 -_080B2A64: - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080B2A8A - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - subs r1, r0 - strh r1, [r2, 0x26] - b _080B2AA8 -_080B2A8A: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x34] - adds r1, r0, 0x1 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B2AA8 - ldr r0, _080B2AAC @ =sub_80B2AB0 - str r0, [r2, 0x1C] -_080B2AA8: - pop {r0} - bx r0 - .align 2, 0 -_080B2AAC: .4byte sub_80B2AB0 - thumb_func_end sub_80B2A50 - - thumb_func_start sub_80B2AB0 -sub_80B2AB0: @ 80B2AB0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] - movs r3, 0x22 - ldrsh r0, [r2, r3] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080B2AE0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_080B2AE0: - movs r1, 0x26 - ldrsh r0, [r2, r1] - cmp r0, 0 - ble _080B2AEE - adds r0, r2, 0 - bl DestroyAnimSprite -_080B2AEE: - pop {r0} - bx r0 - thumb_func_end sub_80B2AB0 - - thumb_func_start sub_80B2AF4 -sub_80B2AF4: @ 80B2AF4 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080B2B08 - cmp r0, 0x1 - beq _080B2B60 - b _080B2BCC -_080B2B08: - ldr r0, _080B2B18 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080B2B20 - ldr r4, _080B2B1C @ =gUnknown_2037F1A - b _080B2B22 - .align 2, 0 -_080B2B18: .4byte gUnknown_2037F02 -_080B2B1C: .4byte gUnknown_2037F1A -_080B2B20: - ldr r4, _080B2B5C @ =gUnknown_2037F1B -_080B2B22: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0 - movs r3, 0x80 - lsls r3, 2 - strh r3, [r5, 0x30] - movs r2, 0x80 - lsls r2, 1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - bl sub_8075A1C - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080B2BCC - .align 2, 0 -_080B2B5C: .4byte gUnknown_2037F1B -_080B2B60: - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0xB - bgt _080B2B6E - ldrh r0, [r5, 0x30] - subs r0, 0x28 - b _080B2B72 -_080B2B6E: - ldrh r0, [r5, 0x30] - adds r0, 0x28 -_080B2B72: - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x32] - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x30 - ldrsh r3, [r5, r0] - str r1, [sp] - adds r0, r5, 0 - bl sub_8075A1C - ldrb r1, [r5, 0x3] - lsls r1, 26 - lsrs r1, 27 - movs r0, 0xF4 - lsls r0, 6 - ldr r2, _080B2BD4 @ =gOamMatrices - lsls r1, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, 0x1 - cmp r1, 0x80 - ble _080B2BAC - movs r1, 0x80 -_080B2BAC: - movs r0, 0x40 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r1, r0, 1 - strh r1, [r5, 0x26] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x18 - bne _080B2BCC - adds r0, r5, 0 - bl sub_8075AD8 - adds r0, r5, 0 - bl DestroyAnimSprite -_080B2BCC: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2BD4: .4byte gOamMatrices - thumb_func_end sub_80B2AF4 - - thumb_func_start sub_80B2BD8 -sub_80B2BD8: @ 80B2BD8 - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - ldr r4, _080B2BFC @ =0x000001ff - ands r4, r0 - bl Random - movs r1, 0x7F - ands r1, r0 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080B2C00 - movs r2, 0xB8 - lsls r2, 2 - adds r0, r4, r2 - b _080B2C08 - .align 2, 0 -_080B2BFC: .4byte 0x000001ff -_080B2C00: - movs r2, 0xB8 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r4 -_080B2C08: - strh r0, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B2C1C - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - adds r0, r1, r0 - b _080B2C24 -_080B2C1C: - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r1 -_080B2C24: - strh r0, [r5, 0x30] - ldr r2, _080B2C4C @ =gUnknown_2037F02 - ldrh r0, [r2] - strh r0, [r5, 0x32] - lsls r0, 16 - cmp r0, 0 - beq _080B2C40 - ldrb r0, [r5, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r5, 0x3] -_080B2C40: - movs r1, 0x2 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080B2C54 - ldr r4, _080B2C50 @ =gUnknown_2037F1A - b _080B2C56 - .align 2, 0 -_080B2C4C: .4byte gUnknown_2037F02 -_080B2C50: .4byte gUnknown_2037F1A -_080B2C54: - ldr r4, _080B2C80 @ =gUnknown_2037F1B -_080B2C56: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r5, 0x22] - ldr r0, _080B2C84 @ =sub_80B2C88 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B2C80: .4byte gUnknown_2037F1B -_080B2C84: .4byte sub_80B2C88 - thumb_func_end sub_80B2BD8 - - thumb_func_start sub_80B2C88 -sub_80B2C88: @ 80B2C88 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B2CA0 - ldrh r3, [r4, 0x2E] - lsls r0, r3, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - b _080B2CAA -_080B2CA0: - ldrh r3, [r4, 0x2E] - lsls r1, r3, 16 - asrs r1, 24 - ldrh r0, [r4, 0x24] - subs r0, r1 -_080B2CAA: - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x30] - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r4, 0x26] - subs r0, r1 - strh r0, [r4, 0x26] - strh r3, [r4, 0x2E] - adds r0, r2, 0 - subs r0, 0x20 - strh r0, [r4, 0x30] - lsls r0, r3, 16 - cmp r0, 0 - bge _080B2CCA - movs r0, 0 - strh r0, [r4, 0x2E] -_080B2CCA: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080B2CDE - adds r0, r4, 0 - bl DestroyAnimSprite -_080B2CDE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B2C88 - - thumb_func_start sub_80B2CE4 -sub_80B2CE4: @ 80B2CE4 - movs r1, 0 - strh r1, [r0, 0x3A] - movs r1, 0x40 - strh r1, [r0, 0x3C] - ldr r1, _080B2CF4 @ =sub_80B2CF8 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080B2CF4: .4byte sub_80B2CF8 - thumb_func_end sub_80B2CE4 - - thumb_func_start sub_80B2CF8 -sub_80B2CF8: @ 80B2CF8 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _080B2D0A - cmp r1, 0x1 - beq _080B2D58 - b _080B2D5E -_080B2D0A: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080B2D5E - strh r1, [r3, 0x30] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r2, [r1] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080B2D5E - ldrb r1, [r1] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B2D5E - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080B2D5E -_080B2D58: - adds r0, r3, 0 - bl DestroyAnimSprite -_080B2D5E: - pop {r0} - bx r0 - thumb_func_end sub_80B2CF8 - - thumb_func_start sub_80B2D64 -sub_80B2D64: @ 80B2D64 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r8, r0 - ldrh r4, [r0, 0x20] - ldrh r5, [r0, 0x22] - ldr r6, _080B2E18 @ =gUnknown_2037F1A - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - mov r2, r8 - strh r6, [r2, 0x22] - ldrh r0, [r2, 0x20] - mov r9, r0 - mov r1, r9 - lsls r0, r1, 4 - strh r0, [r2, 0x36] - lsls r0, r6, 4 - strh r0, [r2, 0x38] - lsls r4, 16 - asrs r4, 16 - movs r1, 0x20 - ldrsh r0, [r2, r1] - subs r0, r4, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3A] - lsls r5, 16 - asrs r5, 16 - movs r1, 0x22 - ldrsh r0, [r2, r1] - subs r0, r5, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3C] - mov r0, r9 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - subs r5, r6 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - mov r0, r8 - movs r1, 0x1 - adds r2, r3, 0 - bl sub_8075A1C - ldr r0, _080B2E1C @ =sub_80B2E20 - mov r2, r8 - str r0, [r2, 0x1C] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B2E18: .4byte gUnknown_2037F1A -_080B2E1C: .4byte sub_80B2E20 - thumb_func_end sub_80B2D64 - - thumb_func_start sub_80B2E20 -sub_80B2E20: @ 80B2E20 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x3C] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x2D - lsls r0, 16 - movs r1, 0xA5 - lsls r1, 17 - cmp r0, r1 - bhi _080B2E5A - adds r1, r3, 0 - cmp r1, 0x9D - bgt _080B2E5A - movs r0, 0x2D - negs r0, r0 - cmp r1, r0 - bge _080B2E60 -_080B2E5A: - adds r0, r2, 0 - bl move_anim_8074EE0 -_080B2E60: - pop {r0} - bx r0 - thumb_func_end sub_80B2E20 - - thumb_func_start sub_80B2E64 -sub_80B2E64: @ 80B2E64 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080B2E94 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B2E9C - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B2E98 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - b _080B2EBA - .align 2, 0 -_080B2E94: .4byte gUnknown_2037F02 -_080B2E98: .4byte gSprites -_080B2E9C: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B2EC8 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 -_080B2EBA: - strb r0, [r1] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B2EC8: .4byte gSprites - thumb_func_end sub_80B2E64 - - thumb_func_start sub_80B2ECC -sub_80B2ECC: @ 80B2ECC - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, _080B2F84 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B2EE8 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B2EFE -_080B2EE8: - ldrb r1, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r6, 0x5] - adds r1, r6, 0 - adds r1, 0x43 - movs r0, 0xC8 - strb r0, [r1] -_080B2EFE: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B2F5A - movs r0, 0x1 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - adds r0, r4, 0 - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B2F3C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8072E48 -_080B2F3C: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r7 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B2F5A - movs r0, 0x1 - eors r5, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8072E48 -_080B2F5A: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B2F90 - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080B2F90 - ldr r0, _080B2F84 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B2F88 - movs r0, 0x48 - strh r0, [r6, 0x20] - movs r0, 0x50 - b _080B2FCA - .align 2, 0 -_080B2F84: .4byte gUnknown_2037F1A -_080B2F88: - movs r0, 0xB0 - strh r0, [r6, 0x20] - movs r0, 0x28 - b _080B2FCA -_080B2F90: - ldr r5, _080B3000 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B2FA6 - ldr r1, _080B3004 @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080B2FA6: - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - ldr r4, _080B3004 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 -_080B2FCA: - strh r0, [r6, 0x22] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B2FDC - ldrh r0, [r6, 0x22] - adds r0, 0x9 - strh r0, [r6, 0x22] -_080B2FDC: - ldr r0, _080B3004 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x2E] - ldr r1, _080B3008 @ =sub_80B300C - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B3000: .4byte gUnknown_2037F1A -_080B3004: .4byte gUnknown_2037F02 -_080B3008: .4byte sub_80B300C - thumb_func_end sub_80B2ECC - - thumb_func_start sub_80B300C -sub_80B300C: @ 80B300C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0xD - bne _080B3038 - ldr r0, _080B3034 @ =sub_80B3044 - str r0, [r4, 0x1C] - b _080B303C - .align 2, 0 -_080B3034: .4byte sub_80B3044 -_080B3038: - adds r0, r1, 0x1 - strh r0, [r4, 0x34] -_080B303C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B300C - - thumb_func_start sub_80B3044 -sub_80B3044: @ 80B3044 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080B30A2 - movs r0, 0 - strh r0, [r3, 0x30] - ldrh r4, [r3, 0x2E] - ldr r1, _080B30A8 @ =gPlttBufferFaded - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - movs r5, 0x8 - adds r6, r1, 0 - adds r1, r4, 0x7 - lsls r0, r4, 1 - adds r0, r6 - adds r2, r0, 0 - adds r2, 0x10 - lsls r1, 1 - adds r1, r6 -_080B307A: - ldrh r0, [r1] - strh r0, [r2] - subs r1, 0x2 - subs r2, 0x2 - subs r5, 0x1 - cmp r5, 0 - bgt _080B307A - adds r0, r4, 0x1 - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080B30A2 - ldr r0, _080B30AC @ =sub_80B30B0 - str r0, [r3, 0x1C] -_080B30A2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B30A8: .4byte gPlttBufferFaded -_080B30AC: .4byte sub_80B30B0 - thumb_func_end sub_80B3044 - - thumb_func_start sub_80B30B0 -sub_80B30B0: @ 80B30B0 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldrh r0, [r5, 0x34] - subs r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B3156 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B3146 - movs r0, 0x1 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B3118 - ldr r2, _080B315C @ =gSprites - ldr r0, _080B3160 @ =gUnknown_2023D44 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080B3118: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r6 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B3146 - ldr r2, _080B315C @ =gSprites - ldr r0, _080B3160 @ =gUnknown_2023D44 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080B3146: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B3164 @ =sub_80B3168 - str r0, [r5, 0x1C] -_080B3156: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B315C: .4byte gSprites -_080B3160: .4byte gUnknown_2023D44 -_080B3164: .4byte sub_80B3168 - thumb_func_end sub_80B30B0 - - thumb_func_start sub_80B3168 -sub_80B3168: @ 80B3168 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B31C0 - movs r0, 0x1 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B31A6 - adds r0, r5, 0 - bl sub_8073128 -_080B31A6: - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B31C0 - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8073128 -_080B31C0: - ldr r0, _080B31CC @ =DestroyAnimSprite - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B31CC: .4byte DestroyAnimSprite - thumb_func_end sub_80B3168 - - thumb_func_start sub_80B31D0 -sub_80B31D0: @ 80B31D0 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B325C - ldr r5, _080B321C @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r5, r1] - movs r6, 0 - cmp r0, 0 - bne _080B31EA - movs r6, 0x1 -_080B31EA: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B3232 - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080B3232 - ldr r0, _080B3220 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B3224 - ldrh r0, [r5] - movs r1, 0x48 - subs r1, r0 - strh r1, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x50 - strh r0, [r4, 0x22] - b _080B3254 - .align 2, 0 -_080B321C: .4byte gUnknown_2037F02 -_080B3220: .4byte gUnknown_2037F1A -_080B3224: - ldrh r0, [r5] - adds r0, 0xB0 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x28 - strh r0, [r4, 0x22] - b _080B3254 -_080B3232: - ldr r0, _080B3248 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B324C - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8075160 - b _080B3254 - .align 2, 0 -_080B3248: .4byte gUnknown_2037F02 -_080B324C: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8075114 -_080B3254: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B3270 -_080B325C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _080B3270 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080B3270: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B31D0 - - thumb_func_start sub_80B3278 -sub_80B3278: @ 80B3278 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B32C0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B32C8 - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xA - strh r0, [r5, 0x22] - ldr r0, _080B32C4 @ =0x0000ffff - b _080B32D6 - .align 2, 0 -_080B32C0: .4byte gUnknown_2037F1A -_080B32C4: .4byte 0x0000ffff -_080B32C8: - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - subs r0, 0xA - strh r0, [r5, 0x22] - movs r0, 0x1 -_080B32D6: - strh r0, [r5, 0x30] - ldr r1, _080B32EC @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B32F0 @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B32EC: .4byte DestroyAnimSprite -_080B32F0: .4byte sub_8074F6C - thumb_func_end sub_80B3278 - - thumb_func_start sub_80B32F4 -sub_80B32F4: @ 80B32F4 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r6, _080B3378 @ =gUnknown_2037F1A - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r4, r1, 16 - ldrb r0, [r6] - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - negs r1, r1 - lsls r1, 16 - lsrs r7, r1, 16 - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B333A - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080B333A: - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bgt _080B3366 - movs r0, 0x10 - strh r0, [r5, 0x22] -_080B3366: - ldr r1, _080B337C @ =sub_80B3384 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B3380 @ =sub_8074F6C - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B3378: .4byte gUnknown_2037F1A -_080B337C: .4byte sub_80B3384 -_080B3380: .4byte sub_8074F6C - thumb_func_end sub_80B32F4 - - thumb_func_start sub_80B3384 -sub_80B3384: @ 80B3384 - push {r4,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080B33B0 @ =gUnknown_83E6FF0 - str r0, [r4, 0x10] - movs r0, 0 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl InitSpriteAffineAnim - ldr r0, _080B33B4 @ =sub_80B33B8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B33B0: .4byte gUnknown_83E6FF0 -_080B33B4: .4byte sub_80B33B8 - thumb_func_end sub_80B3384 - - thumb_func_start sub_80B33B8 -sub_80B33B8: @ 80B33B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B33CA - cmp r0, 0x1 - beq _080B33F8 - b _080B3410 -_080B33CA: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B3410 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x12 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B3410 -_080B33F8: - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B3410 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B3410: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B33B8 - - thumb_func_start sub_80B3418 -sub_80B3418: @ 80B3418 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080B3448 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - strh r1, [r4, 0x8] - ldr r2, _080B344C @ =gUnknown_83E700C - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080B3450 @ =sub_80B3454 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B3448: .4byte gTasks -_080B344C: .4byte gUnknown_83E700C -_080B3450: .4byte sub_80B3454 - thumb_func_end sub_80B3418 - - thumb_func_start sub_80B3454 -sub_80B3454: @ 80B3454 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080B347C @ =gTasks - adds r0, r1 - bl sub_8076308 - lsls r0, 24 - cmp r0, 0 - bne _080B3474 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080B3474: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B347C: .4byte gTasks - thumb_func_end sub_80B3454 - - thumb_func_start sub_80B3480 -sub_80B3480: @ 80B3480 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B34CC @ =gTasks - adds r4, r1, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - strh r1, [r4, 0xC] - ldr r0, _080B34D0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - movs r1, 0x8 - cmp r0, 0 - beq _080B34B4 - movs r1, 0x4 -_080B34B4: - strh r1, [r4, 0xE] - ldrb r1, [r4, 0x8] - ldr r2, _080B34D4 @ =gUnknown_83E702C - adds r0, r4, 0 - bl sub_80762D0 - ldr r0, _080B34D8 @ =sub_80B34DC - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B34CC: .4byte gTasks -_080B34D0: .4byte gUnknown_2037F1A -_080B34D4: .4byte gUnknown_83E702C -_080B34D8: .4byte sub_80B34DC - thumb_func_end sub_80B3480 - - thumb_func_start sub_80B34DC -sub_80B34DC: @ 80B34DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B34FC @ =gTasks - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B3500 - cmp r0, 0x1 - beq _080B351C - b _080B357A - .align 2, 0 -_080B34FC: .4byte gTasks -_080B3500: - adds r0, r4, 0 - bl sub_8076308 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080B357A - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080B357A -_080B351C: - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B3544 - ldr r2, _080B3540 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x8 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080B357A - .align 2, 0 -_080B3540: .4byte gSprites -_080B3544: - ldr r3, _080B3580 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - ldrb r0, [r4, 0x8] - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B357A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3580: .4byte gSprites - thumb_func_end sub_80B34DC - - thumb_func_start sub_80B3584 -sub_80B3584: @ 80B3584 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B360C @ =gTasks - adds r5, r1, r0 - movs r1, 0 - movs r0, 0x10 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - ldr r4, _080B3610 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r0, [r4] - movs r1, 0 - bl sub_8076B2C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, r6 - bcs _080B35EE - adds r1, r6, 0 -_080B35EE: - strh r1, [r5, 0x20] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldr r0, _080B3614 @ =sub_80B3618 - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B360C: .4byte gTasks -_080B3610: .4byte gUnknown_2037F1A -_080B3614: .4byte sub_80B3618 - thumb_func_end sub_80B3584 - - thumb_func_start sub_80B3618 -sub_80B3618: @ 80B3618 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B363C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080B3718 - cmp r1, 0x1 - bgt _080B3640 - cmp r1, 0 - beq _080B364E - b _080B379E - .align 2, 0 -_080B363C: .4byte gTasks -_080B3640: - cmp r1, 0x2 - bne _080B3646 - b _080B377A -_080B3646: - cmp r1, 0x3 - bne _080B364C - b _080B3788 -_080B364C: - b _080B379E -_080B364E: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bgt _080B365E - b _080B379E -_080B365E: - strh r1, [r4, 0xA] - ldr r0, _080B369C @ =gUnknown_83E7044 - movs r2, 0x22 - ldrsh r1, [r4, r2] - movs r3, 0x24 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xC - ldrsh r1, [r4, r0] - adds r1, 0x8 - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - strh r2, [r0] - cmp r2, 0x40 - beq _080B3702 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B36BC - cmp r0, 0x1 - bgt _080B36A0 - cmp r0, 0 - beq _080B36AA - b _080B3702 - .align 2, 0 -_080B369C: .4byte gUnknown_83E7044 -_080B36A0: - cmp r0, 0x2 - beq _080B36D4 - cmp r0, 0x3 - beq _080B36EC - b _080B3702 -_080B36AA: - ldr r0, _080B36B8 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - b _080B36FA - .align 2, 0 -_080B36B8: .4byte gSprites -_080B36BC: - ldr r0, _080B36D0 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - b _080B3700 - .align 2, 0 -_080B36D0: .4byte gSprites -_080B36D4: - ldr r1, _080B36E8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x24] - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x26] - b _080B3702 - .align 2, 0 -_080B36E8: .4byte gSprites -_080B36EC: - ldr r0, _080B3714 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 -_080B36FA: - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - negs r0, r0 -_080B3700: - strh r0, [r1, 0x26] -_080B3702: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080B379E - b _080B377A - .align 2, 0 -_080B3714: .4byte gSprites -_080B3718: - ldrh r0, [r4, 0xA] - ands r1, r0 - cmp r1, 0 - beq _080B3728 - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080B372E -_080B3728: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] -_080B372E: - ldrh r1, [r4, 0x10] - lsls r1, 8 - ldrh r0, [r4, 0xE] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - bne _080B379E - movs r5, 0x8 - adds r6, r4, 0 - adds r6, 0x8 -_080B3754: - lsls r0, r5, 1 - adds r1, r6, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x40 - beq _080B3770 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B3784 @ =gSprites - adds r0, r1 - bl DestroySprite -_080B3770: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xC - bls _080B3754 -_080B377A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B379E - .align 2, 0 -_080B3784: .4byte gSprites -_080B3788: - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B379E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B3618 - - thumb_func_start sub_80B37A4 -sub_80B37A4: @ 80B37A4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - subs r0, 0xA - cmp r1, r0 - ble _080B37CE - ldrh r0, [r4, 0x30] - movs r1, 0x1 - ands r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080B37CE: - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080B37E0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B37E0: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B37A4 - - thumb_func_start sub_80B37EC -sub_80B37EC: @ 80B37EC - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080B3828 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080B3818 - ldr r4, _080B382C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080B3818: - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080B3830 @ =sub_80B37A4 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3828: .4byte gUnknown_2037F02 -_080B382C: .4byte gUnknown_2037F1A -_080B3830: .4byte sub_80B37A4 - thumb_func_end sub_80B37EC - - thumb_func_start sub_80B3834 -sub_80B3834: @ 80B3834 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B3890 @ =gTasks - adds r5, r1, r0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B38D8 - ldr r0, _080B3894 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080B38A4 - ldr r0, _080B3898 @ =0x0000fff6 - strh r0, [r5, 0x1C] - ldr r4, _080B389C @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080B38A0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - b _080B3962 - .align 2, 0 -_080B3890: .4byte gTasks -_080B3894: .4byte gUnknown_2037F02 -_080B3898: .4byte 0x0000fff6 -_080B389C: .4byte gUnknown_2037F1B -_080B38A0: .4byte gUnknown_2037F1A -_080B38A4: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080B38D0 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080B38D4 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - b _080B3956 - .align 2, 0 -_080B38D0: .4byte gUnknown_2037F1A -_080B38D4: .4byte gUnknown_2037F1B -_080B38D8: - ldr r0, _080B391C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080B392C - ldr r0, _080B3920 @ =0x0000fff6 - strh r0, [r5, 0x1C] - ldr r4, _080B3924 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080B3928 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - b _080B3962 - .align 2, 0 -_080B391C: .4byte gUnknown_2037F02 -_080B3920: .4byte 0x0000fff6 -_080B3924: .4byte gUnknown_2037F1B -_080B3928: .4byte gUnknown_2037F1A -_080B392C: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080B3974 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080B3978 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 -_080B3956: - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8076B2C - subs r0, 0x8 -_080B3962: - strh r0, [r5, 0x24] - movs r0, 0x6 - strh r0, [r5, 0xA] - ldr r0, _080B397C @ =sub_80B3980 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B3974: .4byte gUnknown_2037F1A -_080B3978: .4byte gUnknown_2037F1B -_080B397C: .4byte sub_80B3980 - thumb_func_end sub_80B3834 - - thumb_func_start sub_80B3980 -sub_80B3980: @ 80B3980 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B39A0 @ =gTasks - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0 - beq _080B39A4 - cmp r1, 0x1 - beq _080B3A18 - b _080B3A2C - .align 2, 0 -_080B39A0: .4byte gTasks -_080B39A4: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080B3A2C - strh r1, [r5, 0xA] - ldr r0, _080B3A10 @ =gUnknown_83E7114 - movs r2, 0x1E - ldrsh r1, [r5, r2] - movs r3, 0x20 - ldrsh r2, [r5, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080B39F8 - ldr r0, _080B3A14 @ =gSprites - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r0 - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x22] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x36] - ldrh r0, [r5, 0x1C] - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldrb r0, [r5, 0xC] - movs r1, 0x3 - ands r1, r0 - adds r0, r4, 0 - bl StartSpriteAffineAnim -_080B39F8: - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080B3A2C - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080B3A2C - .align 2, 0 -_080B3A10: .4byte gUnknown_83E7114 -_080B3A14: .4byte gSprites -_080B3A18: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _080B3A2C - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B3A2C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B3980 - - thumb_func_start sub_80B3A34 -sub_80B3A34: @ 80B3A34 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B3A52 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080B3A52: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B3A34 - - thumb_func_start sub_80B3A58 -sub_80B3A58: @ 80B3A58 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B3A90 @ =gTasks - adds r4, r1, r0 - ldr r0, _080B3A94 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_807492C - lsls r0, 24 - lsrs r1, r0, 24 - adds r0, r1, 0 - subs r0, 0x20 - strh r0, [r4, 0x24] - ldr r0, _080B3A98 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x1 - beq _080B3AAE - cmp r0, 0x1 - bgt _080B3A9C - cmp r0, 0 - beq _080B3AA2 - b _080B3ACA - .align 2, 0 -_080B3A90: .4byte gTasks -_080B3A94: .4byte gUnknown_2037F1B -_080B3A98: .4byte gUnknown_2037F02 -_080B3A9C: - cmp r0, 0x2 - beq _080B3ABA - b _080B3ACA -_080B3AA2: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0x40 - b _080B3AC2 -_080B3AAE: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0xC0 - b _080B3AC2 -_080B3ABA: - movs r0, 0x4 - strh r0, [r4, 0x1E] - strh r0, [r4, 0x20] - movs r0, 0 -_080B3AC2: - strh r0, [r4, 0x22] - adds r0, r1, 0 - adds r0, 0x20 - strh r0, [r4, 0x26] -_080B3ACA: - movs r1, 0x24 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080B3AD6 - movs r0, 0 - strh r0, [r4, 0x24] -_080B3AD6: - ldr r0, _080B3AF0 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B3AFC - ldr r0, _080B3AF4 @ =gUnknown_2022978 - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080B3AF8 @ =0x04000014 - b _080B3B04 - .align 2, 0 -_080B3AF0: .4byte gUnknown_2037F1B -_080B3AF4: .4byte gUnknown_2022978 -_080B3AF8: .4byte 0x04000014 -_080B3AFC: - ldr r0, _080B3B64 @ =gUnknown_202297C - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080B3B68 @ =0x04000018 -_080B3B04: - str r0, [sp] - ldrh r1, [r4, 0x24] - lsls r3, r1, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - bgt _080B3B3E - ldr r5, _080B3B6C @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080B3B1E: - asrs r3, 16 - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0x1C] - strh r0, [r1] - adds r3, 0x1 - lsls r3, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - ble _080B3B1E -_080B3B3E: - ldr r0, _080B3B70 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldr r0, _080B3B74 @ =sub_80B3B78 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B3B64: .4byte gUnknown_202297C -_080B3B68: .4byte 0x04000018 -_080B3B6C: .4byte gUnknown_2038700 -_080B3B70: .4byte 0xa2600001 -_080B3B74: .4byte sub_80B3B78 - thumb_func_end sub_80B3A58 - - thumb_func_start sub_80B3B78 -sub_80B3B78: @ 80B3B78 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B3BA0 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080B3C52 - cmp r0, 0x1 - bgt _080B3BA4 - cmp r0, 0 - beq _080B3BAA - b _080B3C6A - .align 2, 0 -_080B3BA0: .4byte gTasks -_080B3BA4: - cmp r0, 0x2 - beq _080B3C64 - b _080B3C6A -_080B3BAA: - ldrh r3, [r5, 0x22] - ldrh r4, [r5, 0x24] - movs r2, 0x24 - ldrsh r1, [r5, r2] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r1, r0 - bgt _080B3C42 - ldr r0, _080B3BF4 @ =gUnknown_825E074 - mov r9, r0 - movs r7, 0x3 - ldr r1, _080B3BF8 @ =gUnknown_2038700 - mov r12, r1 - movs r2, 0xF0 - lsls r2, 3 - add r2, r12 - mov r8, r2 -_080B3BCC: - lsls r2, r3, 16 - asrs r0, r2, 15 - add r0, r9 - movs r3, 0 - ldrsh r0, [r0, r3] - movs r3, 0x20 - ldrsh r1, [r5, r3] - asrs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r3, r0, 16 - adds r6, r2, 0 - cmp r3, 0 - ble _080B3BFC - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - adds r0, r3, r0 - b _080B3C08 - .align 2, 0 -_080B3BF4: .4byte gUnknown_825E074 -_080B3BF8: .4byte gUnknown_2038700 -_080B3BFC: - cmp r3, 0 - bge _080B3C0C - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - subs r0, r3, r0 -_080B3C08: - lsls r0, 16 - lsrs r1, r0, 16 -_080B3C0C: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - mov r0, r12 - adds r4, r3, r0 - ldrh r0, [r5, 0x1C] - lsls r1, 16 - asrs r1, 16 - adds r0, r1, r0 - strh r0, [r4] - add r3, r8 - ldrh r0, [r5, 0x1C] - adds r1, r0 - strh r1, [r3] - asrs r0, r6, 16 - ldrh r1, [r5, 0x1E] - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r2, r0 - ble _080B3BCC -_080B3C42: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - ble _080B3C6A - b _080B3C58 -_080B3C52: - ldr r1, _080B3C60 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B3C58: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080B3C6A - .align 2, 0 -_080B3C60: .4byte gUnknown_2039600 -_080B3C64: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B3C6A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B3B78 - - thumb_func_start sub_80B3C78 -sub_80B3C78: @ 80B3C78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080B3CAC @ =gTasks - adds r7, r0, r1 - bl AllocOamMatrix - lsls r0, 24 - lsrs r5, r0, 24 - mov r10, r5 - adds r6, r5, 0 - cmp r6, 0xFF - bne _080B3CB0 - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080B3D5A - .align 2, 0 -_080B3CAC: .4byte gTasks -_080B3CB0: - ldr r1, _080B3CD4 @ =gUnknown_2037F02 - ldrb r0, [r1] - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r1, r0, 16 - mov r9, r1 - asrs r0, 16 - cmp r0, 0 - bge _080B3CD8 - adds r0, r5, 0 - bl FreeOamMatrix - mov r0, r8 - bl DestroyAnimVisualTask - b _080B3D5A - .align 2, 0 -_080B3CD4: .4byte gUnknown_2037F02 -_080B3CD8: - ldr r2, _080B3D68 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r2, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, _080B3D6C @ =SpriteCallbackDummy - str r1, [r0] - adds r4, r2 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1F - ands r6, r0 - lsls r2, r6, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - ldr r1, _080B3D70 @ =gUnknown_2037F02 - ldrb r0, [r1] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x22] - mov r0, r10 - strh r0, [r7, 0x24] - mov r1, r9 - strh r1, [r7, 0x26] - ldr r0, _080B3D74 @ =sub_80B3D78 - str r0, [r7] -_080B3D5A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B3D68: .4byte gSprites -_080B3D6C: .4byte SpriteCallbackDummy -_080B3D70: .4byte gUnknown_2037F02 -_080B3D74: .4byte sub_80B3D78 - thumb_func_end sub_80B3C78 - - thumb_func_start sub_80B3D78 -sub_80B3D78: @ 80B3D78 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B3D9C @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B3DFC - cmp r0, 0x1 - bgt _080B3DA0 - cmp r0, 0 - beq _080B3DAA - b _080B3E7C - .align 2, 0 -_080B3D9C: .4byte gTasks -_080B3DA0: - cmp r0, 0x2 - beq _080B3E4C - cmp r0, 0x3 - beq _080B3E6C - b _080B3E7C -_080B3DAA: - ldrh r0, [r4, 0xA] - adds r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080B3DF8 @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8076494 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x30 - bne _080B3E7C - b _080B3E5E - .align 2, 0 -_080B3DF8: .4byte gUnknown_825E074 -_080B3DFC: - ldrh r0, [r4, 0xA] - subs r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080B3E48 @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8076494 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B3E7C - b _080B3E5E - .align 2, 0 -_080B3E48: .4byte gUnknown_825E074 -_080B3E4C: - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B3E68 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram -_080B3E5E: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B3E7C - .align 2, 0 -_080B3E68: .4byte gSprites -_080B3E6C: - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - bl FreeOamMatrix - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B3E7C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B3D78 - - thumb_func_start sub_80B3E84 -sub_80B3E84: @ 80B3E84 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080B3EFC - cmp r0, 0x1 - bgt _080B3E9A - cmp r0, 0 - beq _080B3EA4 - b _080B3FA4 -_080B3E9A: - cmp r0, 0x2 - beq _080B3F2E - cmp r0, 0x3 - beq _080B3F8E - b _080B3FA4 -_080B3EA4: - ldr r4, _080B3EF8 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B3ED2 - ldrh r0, [r5, 0x22] - adds r0, 0xC - strh r0, [r5, 0x22] -_080B3ED2: - movs r0, 0x8 - strh r0, [r5, 0x30] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r0, [r5, 0x30] - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - b _080B3F26 - .align 2, 0 -_080B3EF8: .4byte gUnknown_2037F1A -_080B3EFC: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080B3FA4 - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xC4 - bl PlaySE12WithPanning - adds r0, r5, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim -_080B3F26: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080B3FA4 -_080B3F2E: - ldrh r0, [r5, 0x32] - adds r1, r0, 0x1 - strh r1, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B3F72 - movs r0, 0 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x30] - subs r1, 0x1 - strh r1, [r5, 0x30] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B3F72 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080B3F72: - movs r0, 0xE0 - lsls r0, 2 - adds r2, r0, 0 - ldrh r1, [r5, 0x34] - adds r2, r1 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r5, 0x26] - subs r0, r1 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r2, r0 - strh r2, [r5, 0x34] - b _080B3FA4 -_080B3F8E: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimSprite -_080B3FA4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B3E84 - - thumb_func_start sub_80B3FAC -sub_80B3FAC: @ 80B3FAC - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B3FD8 - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080B3FD4 @ =gUnknown_2037F02 - ldrh r1, [r0, 0x4] - negs r1, r1 - strh r1, [r0, 0x4] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] - b _080B4008 - .align 2, 0 -_080B3FD4: .4byte gUnknown_2037F02 -_080B3FD8: - ldr r0, _080B406C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B4008 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080B4070 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080B4008: - ldr r5, _080B406C @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074844 - lsls r0, 24 - ldr r4, _080B4070 @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074844 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - ldr r0, _080B4074 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080B4078 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B406C: .4byte gUnknown_2037F1B -_080B4070: .4byte gUnknown_2037F02 -_080B4074: .4byte sub_8075590 -_080B4078: .4byte DestroyAnimSprite - thumb_func_end sub_80B3FAC - - thumb_func_start sub_80B407C -sub_80B407C: @ 80B407C - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B40A0 - ldr r1, _080B409C @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _080B40BC - .align 2, 0 -_080B409C: .4byte gUnknown_2037F02 -_080B40A0: - ldr r0, _080B4118 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B40BC - ldr r0, _080B411C @ =gUnknown_2037F02 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] -_080B40BC: - ldr r5, _080B4118 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074844 - lsls r0, 24 - ldr r4, _080B411C @ =gUnknown_2037F02 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074844 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - ldr r0, _080B4120 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080B4124 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B4118: .4byte gUnknown_2037F1B -_080B411C: .4byte gUnknown_2037F02 -_080B4120: .4byte sub_8075590 -_080B4124: .4byte DestroyAnimSprite - thumb_func_end sub_80B407C - - thumb_func_start sub_80B4128 -sub_80B4128: @ 80B4128 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B4144 - ldr r0, _080B4184 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - strh r1, [r0, 0x4] -_080B4144: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r1, _080B4184 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080B418C - ldr r4, _080B4188 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080B419E - .align 2, 0 -_080B4184: .4byte gUnknown_2037F02 -_080B4188: .4byte gUnknown_2037F1B -_080B418C: - ldr r0, _080B41B4 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_8076D9C -_080B419E: - adds r0, r5, 0 - bl sub_8075678 - ldr r0, _080B41B8 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x6] - strh r0, [r5, 0x38] - ldr r0, _080B41BC @ =sub_80B41C0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B41B4: .4byte gUnknown_2037F1B -_080B41B8: .4byte gUnknown_2037F02 -_080B41BC: .4byte sub_80B41C0 - thumb_func_end sub_80B4128 - - thumb_func_start sub_80B41C0 -sub_80B41C0: @ 80B41C0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080B41D6 - adds r0, r4, 0 - bl DestroyAnimSprite - b _080B41F2 -_080B41D6: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3A] - adds r0, 0xD - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] -_080B41F2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B41C0 - - thumb_func_start sub_80B41F8 -sub_80B41F8: @ 80B41F8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B4228 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C - ldr r0, _080B422C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B4234 - ldr r0, _080B4230 @ =gUnknown_2037F02 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080B4240 - .align 2, 0 -_080B4228: .4byte gUnknown_2037F1B -_080B422C: .4byte gUnknown_2037F1A -_080B4230: .4byte gUnknown_2037F02 -_080B4234: - ldr r1, _080B4268 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080B4240: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080B426C @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B425C - ldrh r0, [r4, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] -_080B425C: - ldr r0, _080B4270 @ =sub_80B4274 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4268: .4byte gUnknown_2037F02 -_080B426C: .4byte gUnknown_2037F1B -_080B4270: .4byte sub_80B4274 - thumb_func_end sub_80B41F8 - - thumb_func_start sub_80B4274 -sub_80B4274: @ 80B4274 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B42A8 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080B42A8: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080B42BC - adds r0, r3, 0 - bl DestroyAnimSprite -_080B42BC: - pop {r0} - bx r0 - thumb_func_end sub_80B4274 - - thumb_func_start sub_80B42C0 -sub_80B42C0: @ 80B42C0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldr r0, _080B42E4 @ =sub_80B42E8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B42E4: .4byte sub_80B42E8 - thumb_func_end sub_80B42C0 - - thumb_func_start sub_80B42E8 -sub_80B42E8: @ 80B42E8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x13 - bgt _080B42FC - adds r0, r1, 0x1 - strh r0, [r4, 0x32] - b _080B433A -_080B42FC: - ldrh r1, [r4, 0x30] - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B433A - ldrh r1, [r4, 0x2E] - subs r1, 0x1 - strh r1, [r4, 0x2E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B433A - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B4340 @ =sub_80B4344 - str r0, [r4, 0x1C] -_080B433A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4340: .4byte sub_80B4344 - thumb_func_end sub_80B42E8 - - thumb_func_start sub_80B4344 -sub_80B4344: @ 80B4344 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B4344 - - thumb_func_start sub_80B4364 -sub_80B4364: @ 80B4364 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B4384 - ldr r1, _080B4380 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - b _080B43A6 - .align 2, 0 -_080B4380: .4byte gUnknown_2037F02 -_080B4384: - ldr r0, _080B4480 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B43A6 - ldr r1, _080B4484 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080B43A6: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B43F6 - ldr r0, _080B4480 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, 0 - ldr r5, _080B4488 @ =gUnknown_2037F1B - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B43F6 - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - beq _080B43E4 - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B43F6 -_080B43E4: - ldr r0, _080B4484 @ =gUnknown_2037F02 - movs r2, 0x4 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0, 0x4] - movs r2, 0 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0] -_080B43F6: - adds r0, r7, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r5, _080B4488 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - adds r4, r0, 0 - lsls r4, 24 - ldr r6, _080B4484 @ =gUnknown_2037F02 - lsrs r4, 24 - ldrh r0, [r6, 0x4] - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r6, 0x6] - adds r1, r2 - lsls r1, 16 - ldrh r2, [r7, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r7, 0x22] - lsrs r5, r1, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - ldrh r0, [r6, 0x8] - strh r0, [r7, 0x2E] - strh r4, [r7, 0x32] - strh r5, [r7, 0x36] - ldr r0, _080B448C @ =sub_8075590 - str r0, [r7, 0x1C] - ldr r1, _080B4490 @ =DestroyAnimSprite - adds r0, r7, 0 - bl StoreSpriteCallbackInData6 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B4480: .4byte gUnknown_2037F1A -_080B4484: .4byte gUnknown_2037F02 -_080B4488: .4byte gUnknown_2037F1B -_080B448C: .4byte sub_8075590 -_080B4490: .4byte DestroyAnimSprite - thumb_func_end sub_80B4364 - - thumb_func_start sub_80B4494 -sub_80B4494: @ 80B4494 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B4500 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B44B4 - ldr r1, _080B4504 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080B44B4: - ldr r4, _080B4504 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080B4508 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_8075068 - ldr r0, _080B450C @ =sub_80B4510 - str r0, [r6, 0x1C] - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B4500: .4byte gUnknown_2037F1A -_080B4504: .4byte gUnknown_2037F02 -_080B4508: .4byte gUnknown_2037F1B -_080B450C: .4byte sub_80B4510 - thumb_func_end sub_80B4494 - - thumb_func_start sub_80B4510 -sub_80B4510: @ 80B4510 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B453C - adds r0, r4, 0 - bl DestroyAnimSprite - b _080B45CC -_080B453C: - movs r0, 0x2E - adds r0, r4 - mov r8, r0 - ldrh r7, [r4, 0x20] - ldrh r5, [r4, 0x24] - ldrh r1, [r4, 0x22] - mov r12, r1 - ldrh r6, [r4, 0x26] - mov r2, r8 - add r1, sp, 0x4 - movs r3, 0x7 -_080B4552: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080B4552 - adds r0, r7, r5 - lsls r0, 16 - lsrs r5, r0, 16 - mov r2, r12 - adds r0, r2, r6 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - bne _080B45CC - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - lsls r1, r5, 16 - asrs r1, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r1, r2 - lsls r2, r6, 16 - asrs r2, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_8075B30 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8075A1C - add r2, sp, 0x4 - mov r1, r8 - movs r3, 0x7 -_080B45BE: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080B45BE -_080B45CC: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B4510 - - thumb_func_start sub_80B45D8 -sub_80B45D8: @ 80B45D8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B45EC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B45F4 - ldr r4, _080B45F0 @ =gUnknown_2037F1A - b _080B45F6 - .align 2, 0 -_080B45EC: .4byte gUnknown_2037F02 -_080B45F0: .4byte gUnknown_2037F1A -_080B45F4: - ldr r4, _080B4628 @ =gUnknown_2037F1B -_080B45F6: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x12 - strh r0, [r5, 0x22] - ldr r1, _080B462C @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B4630 @ =sub_8074F50 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4628: .4byte gUnknown_2037F1B -_080B462C: .4byte move_anim_8074EE0 -_080B4630: .4byte sub_8074F50 - thumb_func_end sub_80B45D8 - - thumb_func_start sub_80B4634 -sub_80B4634: @ 80B4634 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080B46A0 @ =gUnknown_2037F02 - movs r1, 0x6 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080B4654 - ldr r0, _080B46A4 @ =gUnknown_2037F1B - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_8076D9C -_080B4654: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r4, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xE - strh r0, [r5, 0x22] - ldrb r1, [r6, 0x2] - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - strh r4, [r5, 0x2E] - strh r4, [r5, 0x30] - movs r0, 0x4 - strh r0, [r5, 0x32] - movs r0, 0x10 - strh r0, [r5, 0x34] - ldr r0, _080B46A8 @ =0x0000ffba - strh r0, [r5, 0x36] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x38] - ldr r1, _080B46AC @ =sub_80B46B4 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080B46B0 @ =sub_8074BE4 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B46A0: .4byte gUnknown_2037F02 -_080B46A4: .4byte gUnknown_2037F1B -_080B46A8: .4byte 0x0000ffba -_080B46AC: .4byte sub_80B46B4 -_080B46B0: .4byte sub_8074BE4 - thumb_func_end sub_80B4634 - - thumb_func_start sub_80B46B4 -sub_80B46B4: @ 80B46B4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x20] - adds r0, r1, r2 - strh r0, [r4, 0x20] - movs r0, 0xC0 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r0, 0x4 - strh r0, [r4, 0x32] - movs r0, 0x20 - strh r0, [r4, 0x34] - ldr r0, _080B46EC @ =0x0000ffe8 - strh r0, [r4, 0x36] - ldr r1, _080B46F0 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080B46F4 @ =sub_8074BE4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B46EC: .4byte 0x0000ffe8 -_080B46F0: .4byte move_anim_8074EE0 -_080B46F4: .4byte sub_8074BE4 - thumb_func_end sub_80B46B4 - - thumb_func_start sub_80B46F8 -sub_80B46F8: @ 80B46F8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B4720 @ =gUnknown_2037F02 - ldrb r1, [r4, 0xA] - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - ldr r0, _080B4724 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B4728 - ldrh r0, [r5, 0x20] - ldrh r1, [r4] - subs r0, r1 - b _080B472E - .align 2, 0 -_080B4720: .4byte gUnknown_2037F02 -_080B4724: .4byte gUnknown_2037F1A -_080B4728: - ldrh r0, [r4] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080B472E: - strh r0, [r5, 0x20] - ldr r3, _080B4770 @ =gUnknown_2037F02 - ldrh r2, [r3, 0x2] - ldrh r0, [r5, 0x22] - adds r2, r0 - movs r4, 0 - strh r2, [r5, 0x22] - ldrh r0, [r3, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r1, [r3, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldrh r0, [r3, 0x6] - adds r2, r0 - strh r2, [r5, 0x36] - adds r0, r5, 0 - bl sub_80754B8 - strh r4, [r5, 0x34] - strh r4, [r5, 0x36] - ldr r0, _080B4774 @ =sub_8074D00 - str r0, [r5, 0x1C] - ldr r1, _080B4778 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4770: .4byte gUnknown_2037F02 -_080B4774: .4byte sub_8074D00 -_080B4778: .4byte move_anim_8074EE0 - thumb_func_end sub_80B46F8 - - thumb_func_start sub_80B477C -sub_80B477C: @ 80B477C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B4794 @ =gUnknown_2037F02 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B4798 - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 - b _080B47A0 - .align 2, 0 -_080B4794: .4byte gUnknown_2037F02 -_080B4798: - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 -_080B47A0: - ldr r1, _080B47BC @ =gUnknown_2037F02 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080B47C0 @ =sub_80B47C4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B47BC: .4byte gUnknown_2037F02 -_080B47C0: .4byte sub_80B47C4 - thumb_func_end sub_80B477C - - thumb_func_start sub_80B47C4 -sub_80B47C4: @ 80B47C4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080B480A - adds r0, r4, 0 - bl DestroyAnimSprite -_080B480A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B47C4 - - thumb_func_start do_boulder_dust -do_boulder_dust: @ 80B4810 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, _080B48E4 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B4854 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080B4854: - ldr r0, _080B48E8 @ =gUnknown_2022978 - strh r5, [r0] - ldr r4, _080B48EC @ =gUnknown_202297A - strh r5, [r4] - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x16 - bl SetGpuReg - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080B48F0 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap - bl sub_807543C - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080B48F4 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080B48F8 @ =gFile_graphics_battle_anims_sprites_261_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B48B0 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080B48B0: - ldr r0, _080B48FC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080B48CA - ldr r0, _080B4900 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B48CA - movs r5, 0x1 -_080B48CA: - ldr r0, _080B4904 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - strh r5, [r1, 0x8] - ldr r0, _080B4908 @ =sub_80B490C - str r0, [r1] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B48E4: .4byte 0x00003f42 -_080B48E8: .4byte gUnknown_2022978 -_080B48EC: .4byte gUnknown_202297A -_080B48F0: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap -_080B48F4: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet -_080B48F8: .4byte gFile_graphics_battle_anims_sprites_261_palette -_080B48FC: .4byte gUnknown_2037F02 -_080B4900: .4byte gUnknown_2037F1A -_080B4904: .4byte gTasks -_080B4908: .4byte sub_80B490C - thumb_func_end do_boulder_dust - - thumb_func_start sub_80B490C -sub_80B490C: @ 80B490C - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080B4934 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0 - bne _080B4940 - ldr r1, _080B4938 @ =gUnknown_2022978 - ldr r3, _080B493C @ =0x0000fffa - adds r0, r3, 0 - ldrh r3, [r1] - adds r0, r3 - b _080B4946 - .align 2, 0 -_080B4934: .4byte gTasks -_080B4938: .4byte gUnknown_2022978 -_080B493C: .4byte 0x0000fffa -_080B4940: - ldr r1, _080B4974 @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x6 -_080B4946: - strh r0, [r1] - ldr r1, _080B4978 @ =gUnknown_202297A - ldr r3, _080B497C @ =0x0000ffff - adds r0, r3, 0 - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - movs r3, 0x20 - ldrsh r0, [r0, r3] - adds r4, r1, 0 - cmp r0, 0x4 - bls _080B4968 - b _080B4A96 -_080B4968: - lsls r0, 2 - ldr r1, _080B4980 @ =_080B4984 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B4974: .4byte gUnknown_2022978 -_080B4978: .4byte gUnknown_202297A -_080B497C: .4byte 0x0000ffff -_080B4980: .4byte _080B4984 - .align 2, 0 -_080B4984: - .4byte _080B4998 - .4byte _080B49DA - .4byte _080B49F4 - .4byte _080B4A36 - .4byte _080B4A58 -_080B4998: - adds r0, r4, r5 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080B4A96 - strh r5, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bne _080B4A96 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x1E] - b _080B4A96 -_080B49DA: - adds r0, r4, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bne _080B4A96 - movs r0, 0x7 - strh r0, [r1, 0x1E] - b _080B4A4C -_080B49F4: - adds r0, r4, r5 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080B4A96 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080B4A96 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080B4A96 -_080B4A36: - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - bl sub_8075358 - ldr r0, _080B4A54 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 -_080B4A4C: - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080B4A96 - .align 2, 0 -_080B4A54: .4byte gTasks -_080B4A58: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B4A6C - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080B4A6C: - ldr r0, _080B4AA0 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B4AA4 @ =gUnknown_202297A - strh r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B4A96: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4AA0: .4byte gUnknown_2022978 -_080B4AA4: .4byte gUnknown_202297A - thumb_func_end sub_80B490C - - thumb_func_start sub_80B4AA8 -sub_80B4AA8: @ 80B4AA8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B4B24 - ldr r4, _080B4AEC @ =gUnknown_2037F02 - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B4AF4 - ldr r0, _080B4AF0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B4AF4 - movs r0, 0x98 - lsls r0, 1 - strh r0, [r5, 0x20] - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r5, 0x38] - ldrb r1, [r5, 0x3] - subs r0, 0x40 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x3] - b _080B4AF8 - .align 2, 0 -_080B4AEC: .4byte gUnknown_2037F02 -_080B4AF0: .4byte gUnknown_2037F1A -_080B4AF4: - ldr r0, _080B4B18 @ =0x0000ffc0 - strh r0, [r5, 0x20] -_080B4AF8: - ldr r4, _080B4B1C @ =gUnknown_2037F02 - ldrh r0, [r4] - strh r0, [r5, 0x22] - ldr r1, _080B4B20 @ =gUnknown_83E7470 - adds r0, r5, 0 - bl SetSubspriteTables - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080B4B80 - .align 2, 0 -_080B4B18: .4byte 0x0000ffc0 -_080B4B1C: .4byte gUnknown_2037F02 -_080B4B20: .4byte gUnknown_83E7470 -_080B4B24: - ldrh r1, [r5, 0x30] - ldrh r3, [r5, 0x34] - adds r1, r3 - ldrh r2, [r5, 0x32] - ldrh r0, [r5, 0x36] - adds r2, r0 - lsls r0, r1, 16 - asrs r0, 24 - ldrh r3, [r5, 0x24] - adds r0, r3 - strh r0, [r5, 0x24] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r3, [r5, 0x26] - adds r0, r3 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r1, r0 - strh r1, [r5, 0x34] - ands r2, r0 - strh r2, [r5, 0x36] - movs r1, 0x38 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B4B6A - movs r2, 0x20 - ldrsh r0, [r5, r2] - movs r3, 0x24 - ldrsh r1, [r5, r3] - adds r0, r1 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - ble _080B4B80 - b _080B4B7C -_080B4B6A: - movs r1, 0x20 - ldrsh r0, [r5, r1] - movs r2, 0x24 - ldrsh r1, [r5, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080B4B80 -_080B4B7C: - ldr r0, _080B4B88 @ =DestroyAnimSprite - str r0, [r5, 0x1C] -_080B4B80: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4B88: .4byte DestroyAnimSprite - thumb_func_end sub_80B4AA8 - - thumb_func_start sub_80B4B8C -sub_80B4B8C: @ 80B4B8C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B4BC4 @ =gUnknown_2037F02 - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x36] - ldr r0, _080B4BC8 @ =sub_8075590 - str r0, [r4, 0x1C] - ldr r1, _080B4BCC @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B4BC4: .4byte gUnknown_2037F02 -_080B4BC8: .4byte sub_8075590 -_080B4BCC: .4byte DestroyAnimSprite - thumb_func_end sub_80B4B8C - - thumb_func_start sub_80B4BD0 -sub_80B4BD0: @ 80B4BD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B4C50 @ =gTasks - adds r6, r1, r0 - ldr r5, _080B4C54 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r1, 0xC0 - lsls r1, 13 - adds r0, r1 - lsrs r7, r0, 16 - ldr r4, _080B4C58 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xC0 - lsls r2, 13 - adds r0, r2 - lsrs r0, 16 - mov r8, r0 - ldrb r1, [r5] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080B4C40 - mov r8, r7 -_080B4C40: - bl sub_80B4FB8 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _080B4C5C - movs r0, 0x20 - b _080B4C62 - .align 2, 0 -_080B4C50: .4byte gTasks -_080B4C54: .4byte gUnknown_2037F1A -_080B4C58: .4byte gUnknown_2037F1B -_080B4C5C: - lsls r1, r5, 3 - movs r0, 0x30 - subs r0, r1 -_080B4C62: - strh r0, [r6, 0x18] - movs r4, 0 - strh r4, [r6, 0x8] - strh r4, [r6, 0x1E] - strh r4, [r6, 0x1A] - movs r0, 0x1 - strh r0, [r6, 0x20] - movs r1, 0x18 - ldrsh r0, [r6, r1] - cmp r0, 0 - bge _080B4C7A - adds r0, 0x7 -_080B4C7A: - asrs r0, 3 - subs r0, 0x1 - strh r0, [r6, 0x1C] - mov r2, r9 - lsls r0, r2, 3 - strh r0, [r6, 0xC] - lsls r0, r7, 3 - strh r0, [r6, 0xE] - mov r1, r10 - subs r0, r1, r2 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x10] - mov r1, r8 - subs r0, r1, r7 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x12] - strh r4, [r6, 0x14] - strh r4, [r6, 0x16] - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - adds r4, r0, 0 - lsls r4, 24 - asrs r4, 8 - lsrs r4, 16 - movs r0, 0x3F - bl sub_8073A44 - lsls r0, 24 - strh r4, [r6, 0x22] - asrs r0, 24 - lsls r4, 16 - asrs r4, 16 - subs r0, r4 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x24] - strh r5, [r6, 0xA] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x26] - ldr r0, _080B4CFC @ =sub_80B4D00 - str r0, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B4CFC: .4byte sub_80B4D00 - thumb_func_end sub_80B4BD0 - - thumb_func_start sub_80B4D00 -sub_80B4D00: @ 80B4D00 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B4D24 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080B4D1A - b _080B4E68 -_080B4D1A: - lsls r0, 2 - ldr r1, _080B4D28 @ =_080B4D2C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B4D24: .4byte gTasks -_080B4D28: .4byte _080B4D2C - .align 2, 0 -_080B4D2C: - .4byte _080B4D40 - .4byte _080B4DA4 - .4byte _080B4DAC - .4byte _080B4E08 - .4byte _080B4E5A -_080B4D40: - ldrh r2, [r4, 0x14] - ldrh r0, [r4, 0x10] - subs r2, r0 - strh r2, [r4, 0x14] - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x16] - ldr r3, _080B4DA0 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - lsls r2, 16 - asrs r2, 19 - strh r2, [r0, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080B4D90 - movs r0, 0x14 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B4D90: - ldrh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x9B - bl PlaySE12WithPanning - b _080B4E68 - .align 2, 0 -_080B4DA0: .4byte gSprites -_080B4DA4: - ldrh r0, [r4, 0x1E] - subs r0, 0x1 - strh r0, [r4, 0x1E] - b _080B4E4C -_080B4DAC: - ldrh r0, [r4, 0x1A] - subs r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _080B4DCC - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0x14] - adds r0, r2 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x16] - adds r0, r1 - strh r0, [r4, 0x16] - b _080B4DD6 -_080B4DCC: - strh r0, [r4, 0x14] - strh r0, [r4, 0x16] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B4DD6: - ldr r2, _080B4E04 @ =gSprites - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - b _080B4E68 - .align 2, 0 -_080B4E04: .4byte gSprites -_080B4E08: - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0xC] - adds r0, r2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1C - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080B4E46 - movs r0, 0 - strh r0, [r4, 0x1A] - adds r0, r4, 0 - bl sub_80B4E70 - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xA8 - bl PlaySE12WithPanning -_080B4E46: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] -_080B4E4C: - lsls r0, 16 - cmp r0, 0 - bne _080B4E68 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B4E68 -_080B4E5A: - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B4E68 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B4E68: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B4D00 - - thumb_func_start sub_80B4E70 -sub_80B4E70: @ 80B4E70 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bhi _080B4F60 - lsls r0, 2 - ldr r1, _080B4E8C @ =_080B4E90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B4E8C: .4byte _080B4E90 - .align 2, 0 -_080B4E90: - .4byte _080B4EA4 - .4byte _080B4EB0 - .4byte _080B4EB0 - .4byte _080B4EBC - .4byte _080B4EC8 -_080B4EA4: - ldr r3, _080B4EAC @ =gUnknown_83E74D8 - movs r5, 0 - b _080B4ECC - .align 2, 0 -_080B4EAC: .4byte gUnknown_83E74D8 -_080B4EB0: - ldr r3, _080B4EB8 @ =gUnknown_83E74F0 - movs r5, 0x50 - b _080B4ECC - .align 2, 0 -_080B4EB8: .4byte gUnknown_83E74F0 -_080B4EBC: - ldr r3, _080B4EC4 @ =gUnknown_83E74F0 - movs r5, 0x40 - b _080B4ECC - .align 2, 0 -_080B4EC4: .4byte gUnknown_83E74F0 -_080B4EC8: - ldr r3, _080B4F68 @ =gUnknown_83E74F0 - movs r5, 0x30 -_080B4ECC: - ldrh r1, [r4, 0xC] - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r4, 0xE] - lsls r2, 16 - asrs r2, 19 - lsls r2, 16 - movs r6, 0x20 - ldrsh r0, [r4, r6] - lsls r0, 2 - adds r1, r0 - lsls r1, 16 - lsrs r6, r1, 16 - asrs r1, 16 - lsrs r7, r2, 16 - asrs r2, 16 - adds r0, r3, 0 - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080B4F58 - ldr r1, _080B4F6C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x12 - strh r1, [r0, 0x2E] - movs r2, 0x20 - ldrsh r1, [r4, r2] - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 2 - adds r2, r6, r2 - movs r6, 0xA - ldrsh r3, [r4, r6] - lsls r1, r3, 1 - adds r1, r3 - adds r2, r1 - strh r2, [r0, 0x32] - strh r7, [r0, 0x36] - movs r1, 0xA - ldrsh r2, [r4, r1] - lsls r2, 1 - movs r3, 0x10 - negs r3, r3 - adds r1, r3, 0 - subs r1, r2 - strh r1, [r0, 0x38] - ldrh r3, [r0, 0x4] - lsls r2, r3, 22 - lsrs r2, 22 - adds r2, r5 - ldr r5, _080B4F70 @ =0x000003ff - adds r1, r5, 0 - ands r2, r1 - ldr r1, _080B4F74 @ =0xfffffc00 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, 0x4] - bl sub_8075068 - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] -_080B4F58: - movs r6, 0x20 - ldrsh r0, [r4, r6] - negs r0, r0 - strh r0, [r4, 0x20] -_080B4F60: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B4F68: .4byte gUnknown_83E74F0 -_080B4F6C: .4byte gSprites -_080B4F70: .4byte 0x000003ff -_080B4F74: .4byte 0xfffffc00 - thumb_func_end sub_80B4E70 - - thumb_func_start sub_80B4F78 -sub_80B4F78: @ 80B4F78 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B4FAA - ldr r0, _080B4FB0 @ =sub_80B4D00 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080B4FA4 - ldr r0, _080B4FB4 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1E] - subs r0, 0x1 - strh r0, [r1, 0x1E] -_080B4FA4: - adds r0, r4, 0 - bl DestroySprite -_080B4FAA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4FB0: .4byte sub_80B4D00 -_080B4FB4: .4byte gTasks - thumb_func_end sub_80B4F78 - - thumb_func_start sub_80B4FB8 -sub_80B4FB8: @ 80B4FB8 - push {lr} - ldr r0, _080B4FE0 @ =gUnknown_2037EE4 - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B4FDA - movs r1, 0x1 -_080B4FDA: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080B4FE0: .4byte gUnknown_2037EE4 - thumb_func_end sub_80B4FB8 - - thumb_func_start sub_80B4FE4 -sub_80B4FE4: @ 80B4FE4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B501C @ =gUnknown_2037F02 - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - ldrh r0, [r5] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - ldrh r1, [r5, 0x4] - subs r0, r1 - strh r0, [r4, 0x34] - movs r0, 0x3 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080B5020 @ =sub_80B5024 - str r0, [r4, 0x1C] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B501C: .4byte gUnknown_2037F02 -_080B5020: .4byte sub_80B5024 - thumb_func_end sub_80B4FE4 - - thumb_func_start sub_80B5024 -sub_80B5024: @ 80B5024 - push {lr} - adds r2, r0, 0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r3] - ldrh r1, [r2, 0x34] - movs r3, 0x34 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080B505C - ldrh r3, [r2, 0x32] - adds r0, r1, r3 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r1, r0 - strh r1, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r1, 16 - cmp r1, 0 - ble _080B506E - movs r0, 0 - strh r0, [r2, 0x34] - b _080B506E -_080B505C: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080B506E - adds r0, r2, 0 - bl DestroyAnimSprite -_080B506E: - pop {r0} - bx r0 - thumb_func_end sub_80B5024 - - thumb_func_start sub_80B5074 -sub_80B5074: @ 80B5074 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B509C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B5090 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080B5090: - adds r0, r4, 0 - bl sub_8075DF4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B509C: .4byte gUnknown_2037F1A - thumb_func_end sub_80B5074 - - thumb_func_start sub_80B50A0 -sub_80B50A0: @ 80B50A0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B50EC @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B50F0 @ =gUnknown_2037F02 - ldrh r3, [r2] - ldrh r5, [r4, 0x20] - adds r1, r3, r5 - strh r1, [r4, 0x20] - ldrh r1, [r2, 0x2] - adds r0, r1 - strh r0, [r4, 0x22] - strh r3, [r4, 0x30] - strh r1, [r4, 0x32] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x38] - ldrb r1, [r2, 0x6] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080B50F4 @ =sub_80B50F8 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B50EC: .4byte gUnknown_2037F1B -_080B50F0: .4byte gUnknown_2037F02 -_080B50F4: .4byte sub_80B50F8 - thumb_func_end sub_80B50A0 - - thumb_func_start sub_80B50F8 -sub_80B50F8: @ 80B50F8 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x8 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - ldrh r1, [r4, 0x24] - adds r1, r0 - strh r1, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - subs r1, r0 - strh r1, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x8C - ble _080B5142 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B5142: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B50F8 - - thumb_func_start sub_80B5148 -sub_80B5148: @ 80B5148 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080B5180 @ =gUnknown_2037EE8 - ldr r0, [r2] - cmp r0, 0x20 - bgt _080B515C - ldr r1, _080B5184 @ =gUnknown_2037F02 - movs r0, 0 - strh r0, [r1, 0xE] -_080B515C: - ldr r2, [r2] - adds r0, r2, 0 - subs r0, 0x21 - cmp r0, 0x20 - bhi _080B516C - ldr r1, _080B5184 @ =gUnknown_2037F02 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080B516C: - cmp r2, 0x41 - ble _080B5176 - ldr r1, _080B5184 @ =gUnknown_2037F02 - movs r0, 0x2 - strh r0, [r1, 0xE] -_080B5176: - adds r0, r3, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080B5180: .4byte gUnknown_2037EE8 -_080B5184: .4byte gUnknown_2037F02 - thumb_func_end sub_80B5148 - - thumb_func_start sub_80B5188 -sub_80B5188: @ 80B5188 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080B51E4 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080B51AA - movs r0, 0 - bl sub_8075458 - movs r0, 0xC8 - strh r0, [r5, 0xA] -_080B51AA: - ldr r4, _080B51E8 @ =gUnknown_2022982 - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xA - bl __divsi3 - ldrh r1, [r4] - adds r1, r0 - strh r1, [r4] - ldrh r0, [r5, 0xA] - subs r0, 0x3 - strh r0, [r5, 0xA] - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x78 - bne _080B51D6 - movs r0, 0x1 - bl sub_8075458 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080B51D6: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B51E4: .4byte gTasks -_080B51E8: .4byte gUnknown_2022982 - thumb_func_end sub_80B5188 - - thumb_func_start sub_80B51EC -sub_80B51EC: @ 80B51EC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080B5258 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B5218 - movs r0, 0 - bl sub_8075458 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080B525C @ =gUnknown_2022982 - ldrh r0, [r0] - strh r0, [r4, 0xC] -_080B5218: - ldrh r0, [r4, 0xA] - adds r0, 0x50 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0xA] - ldr r6, _080B525C @ =gUnknown_2022982 - movs r2, 0xA - ldrsh r1, [r4, r2] - movs r0, 0x4 - bl Cos - ldrh r4, [r4, 0xC] - adds r0, r4 - strh r0, [r6] - ldr r0, _080B5260 @ =gUnknown_2037F02 - movs r2, 0xE - ldrsh r1, [r0, r2] - ldr r0, _080B5264 @ =0x00000fff - cmp r1, r0 - bne _080B5250 - movs r0, 0 - strh r0, [r6] - movs r0, 0x1 - bl sub_8075458 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B5250: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B5258: .4byte gTasks -_080B525C: .4byte gUnknown_2022982 -_080B5260: .4byte gUnknown_2037F02 -_080B5264: .4byte 0x00000fff - thumb_func_end sub_80B51EC - - thumb_func_start sub_80B5268 -sub_80B5268: @ 80B5268 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B52C4 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080B52C8 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_8075678 - ldr r0, _080B52CC @ =sub_80B52D0 - str r0, [r4, 0x1C] - movs r0, 0x10 - strh r0, [r4, 0x3A] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r4, 0x3A] - movs r0, 0x52 - bl SetGpuReg - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B52C4: .4byte gUnknown_2037F02 -_080B52C8: .4byte gUnknown_2037F1B -_080B52CC: .4byte sub_80B52D0 - thumb_func_end sub_80B5268 - - thumb_func_start sub_80B52D0 -sub_80B52D0: @ 80B52D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80B53C0 - adds r0, r4, 0 - bl sub_80755E0 - lsls r0, 24 - cmp r0, 0 - beq _080B52F0 - ldr r0, _080B52EC @ =sub_80B5344 - str r0, [r4, 0x1C] - b _080B533A - .align 2, 0 -_080B52EC: .4byte sub_80B5344 -_080B52F0: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080B5328 - cmp r2, 0xC4 - ble _080B533A -_080B5328: - lsls r0, 16 - cmp r0, 0 - ble _080B533A - ldr r0, _080B5340 @ =gUnknown_2037F24 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xBD - bl PlaySE12WithPanning -_080B533A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5340: .4byte gUnknown_2037F24 - thumb_func_end sub_80B52D0 - - thumb_func_start sub_80B5344 -sub_80B5344: @ 80B5344 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80755E0 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080B538A - cmp r2, 0xC4 - ble _080B5396 -_080B538A: - lsls r0, 16 - cmp r0, 0 - ble _080B5396 - movs r0, 0xBD - bl PlaySE -_080B5396: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B53B4 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B53B0 @ =sub_8074F88 - str r0, [r4, 0x1C] - b _080B53BA - .align 2, 0 -_080B53B0: .4byte sub_8074F88 -_080B53B4: - adds r0, r4, 0 - bl sub_80B53C0 -_080B53BA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B5344 - - thumb_func_start sub_80B53C0 -sub_80B53C0: @ 80B53C0 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x3A] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0xFF - ble _080B53E4 - adds r0, r2, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - ldr r1, _080B53E0 @ =0x010d0000 - cmp r0, r1 - bne _080B544A - movs r0, 0 - b _080B5448 - .align 2, 0 -_080B53E0: .4byte 0x010d0000 -_080B53E4: - ldrh r1, [r4, 0x3C] - adds r3, r1, 0x1 - strh r3, [r4, 0x3C] - movs r0, 0xFF - ands r0, r1 - cmp r0, 0 - bne _080B544A - ldr r1, _080B5408 @ =0xffffff00 - ands r1, r3 - strh r1, [r4, 0x3C] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080B540C - adds r0, r2, 0x1 - b _080B540E - .align 2, 0 -_080B5408: .4byte 0xffffff00 -_080B540C: - subs r0, r2, 0x1 -_080B540E: - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3A] - movs r1, 0x10 - subs r1, r0 - lsls r1, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B5430 - cmp r0, 0x10 - bne _080B543C -_080B5430: - ldrh r0, [r4, 0x3C] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - eors r0, r1 - strh r0, [r4, 0x3C] -_080B543C: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B544A - movs r0, 0x80 - lsls r0, 1 -_080B5448: - strh r0, [r4, 0x3A] -_080B544A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B53C0 - - thumb_func_start sub_80B5450 -sub_80B5450: @ 80B5450 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r1, _080B546C @ =sub_80B5470 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B546C: .4byte sub_80B5470 - thumb_func_end sub_80B5450 - - thumb_func_start sub_80B5470 -sub_80B5470: @ 80B5470 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x82 - bhi _080B54A4 - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x8 - b _080B54AE -_080B54A4: - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 -_080B54AE: - orrs r1, r0 - strb r1, [r4, 0x5] - ldrh r0, [r4, 0x2E] - adds r0, 0x13 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x50 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3D - bne _080B54E0 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B54E0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B5470 - - thumb_func_start sub_80B54E8 -sub_80B54E8: @ 80B54E8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80758E0 - adds r0, r4, 0 - movs r1, 0x80 - movs r2, 0x80 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _080B5560 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r1, _080B5564 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x80 - strh r1, [r0, 0x8] - ldr r1, _080B5568 @ =gUnknown_2037F02 - ldrh r1, [r1] - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r1, 0x10 - strh r1, [r0, 0xE] - ldr r1, _080B556C @ =sub_80B5570 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B5560: .4byte gSprites -_080B5564: .4byte gTasks -_080B5568: .4byte gUnknown_2037F02 -_080B556C: .4byte sub_80B5570 - thumb_func_end sub_80B54E8 - - thumb_func_start sub_80B5570 -sub_80B5570: @ 80B5570 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B55C0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B55B8 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0xC] - adds r1, 0x1 - strh r1, [r4, 0xC] - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x9 - bne _080B55B8 - ldr r0, _080B55C4 @ =sub_80B55C8 - str r0, [r4] -_080B55B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B55C0: .4byte gTasks -_080B55C4: .4byte sub_80B55C8 - thumb_func_end sub_80B5570 - - thumb_func_start sub_80B55C8 -sub_80B55C8: @ 80B55C8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080B55EC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B55F0 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - b _080B5634 - .align 2, 0 -_080B55EC: .4byte gTasks -_080B55F0: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r1, r0, 24 - ldrh r0, [r4, 0x8] - adds r0, 0x8 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - bgt _080B5618 - movs r0, 0x8 - ldrsh r2, [r4, r0] - adds r0, r1, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - b _080B5634 -_080B5618: - adds r0, r1, 0 - bl sub_8075980 - adds r0, r5, 0 - bl DestroyAnimVisualTask - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg -_080B5634: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B55C8 - - thumb_func_start sub_80B563C -sub_80B563C: @ 80B563C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r5, [r4, 0x20] - ldrh r6, [r4, 0x22] - ldr r0, _080B56D8 @ =gUnknown_2037F1A - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - mov r9, r1 - strh r0, [r4, 0x20] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - mov r1, r9 - strh r1, [r4, 0x2E] - ldr r2, _080B56DC @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r4, 0x30] - ldrh r1, [r2, 0x2] - strh r1, [r4, 0x32] - ldrh r1, [r2, 0x4] - strh r1, [r4, 0x34] - ldrh r1, [r4, 0x20] - lsls r1, 4 - strh r1, [r4, 0x36] - lsls r0, 4 - strh r0, [r4, 0x38] - lsls r5, 16 - asrs r5, 16 - movs r1, 0x20 - ldrsh r0, [r4, r1] - subs r5, r0 - lsls r5, 4 - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r1, 1 - adds r0, r5, 0 - str r2, [sp] - bl __divsi3 - strh r0, [r4, 0x3A] - lsls r6, 16 - asrs r6, 16 - movs r1, 0x22 - ldrsh r0, [r4, r1] - subs r6, r0 - lsls r6, 4 - ldr r2, [sp] - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r1, 1 - adds r0, r6, 0 - bl __divsi3 - strh r0, [r4, 0x3C] - ldr r0, _080B56E0 @ =sub_80B56E4 - str r0, [r4, 0x1C] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B56D8: .4byte gUnknown_2037F1A -_080B56DC: .4byte gUnknown_2037F02 -_080B56E0: .4byte sub_80B56E4 - thumb_func_end sub_80B563C - - thumb_func_start sub_80B56E4 -sub_80B56E4: @ 80B56E4 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080B572E - cmp r0, 0x1 - bgt _080B56FA - cmp r0, 0 - beq _080B5704 - b _080B57F2 -_080B56FA: - cmp r0, 0x2 - beq _080B5798 - cmp r0, 0x3 - beq _080B57EC - b _080B57F2 -_080B5704: - ldrh r0, [r5, 0x3A] - ldrh r2, [r5, 0x36] - adds r0, r2 - strh r0, [r5, 0x36] - ldrh r1, [r5, 0x3C] - ldrh r2, [r5, 0x38] - adds r1, r2 - strh r1, [r5, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x30] - subs r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - cmp r0, 0 - bgt _080B57F2 - b _080B57DE -_080B572E: - ldrh r0, [r5, 0x32] - subs r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - cmp r0, 0 - bgt _080B57F2 - ldr r4, _080B5794 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x30] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x20] - lsls r0, 4 - strh r0, [r5, 0x36] - ldrh r0, [r5, 0x22] - lsls r0, 4 - strh r0, [r5, 0x38] - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r2, 0x20 - ldrsh r1, [r5, r2] - subs r0, r1 - lsls r0, 4 - movs r2, 0x34 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0x3A] - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r2, 0x22 - ldrsh r1, [r5, r2] - subs r0, r1 - lsls r0, 4 - movs r2, 0x34 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0x3C] - b _080B57DE - .align 2, 0 -_080B5794: .4byte gUnknown_2037F1B -_080B5798: - ldrh r0, [r5, 0x3A] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r1, [r5, 0x3C] - ldrh r2, [r5, 0x38] - adds r1, r2 - strh r1, [r5, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x34] - subs r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - cmp r0, 0 - bgt _080B57F2 - ldr r4, _080B57E8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080B57DE: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080B57F2 - .align 2, 0 -_080B57E8: .4byte gUnknown_2037F1B -_080B57EC: - adds r0, r5, 0 - bl move_anim_8074EE0 -_080B57F2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B56E4 - - thumb_func_start sub_80B57F8 -sub_80B57F8: @ 80B57F8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080B580C @ =sub_80B5810 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B580C: .4byte sub_80B5810 - thumb_func_end sub_80B57F8 - - thumb_func_start sub_80B5810 -sub_80B5810: @ 80B5810 - push {r4-r6,lr} - adds r3, r0, 0 - movs r5, 0 - movs r6, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B58A6 - adds r1, r3, 0 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x4 - ands r0, r2 - adds r4, r1, 0 - cmp r0, 0 - bne _080B583A - movs r0, 0x4 - orrs r0, r2 - strb r0, [r4] -_080B583A: - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080B584A - cmp r0, 0x1 - beq _080B5854 - movs r6, 0x1 - b _080B585E -_080B584A: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0x2 - bne _080B585E - b _080B5862 -_080B5854: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0x4 - bne _080B585E - movs r5, 0x1 -_080B585E: - cmp r5, 0 - beq _080B5894 -_080B5862: - ldrb r2, [r4] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r3, 0x32] - strh r1, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080B58A6 - strh r1, [r3, 0x32] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080B58A6 -_080B5894: - cmp r6, 0 - beq _080B58A0 - adds r0, r3, 0 - bl DestroyAnimSprite - b _080B58A6 -_080B58A0: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] -_080B58A6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B5810 - - thumb_func_start sub_80B58AC -sub_80B58AC: @ 80B58AC - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080B58D8 @ =gTasks - adds r5, r0, r1 - movs r0, 0x1 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - movs r6, 0 - movs r1, 0 - strh r0, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bge _080B58DC - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080B59B8 - .align 2, 0 -_080B58D8: .4byte gTasks -_080B58DC: - strh r1, [r5, 0xA] - movs r0, 0xF - strh r0, [r5, 0xC] - movs r0, 0x2 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r5, 0xE] - lsls r1, 8 - ldrh r0, [r5, 0xC] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r4, _080B5944 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x50 - strh r1, [r0, 0x2E] - ldr r0, _080B5948 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B5950 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080B594C @ =0x0000ff70 - strh r1, [r0, 0x30] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x70 - b _080B596E - .align 2, 0 -_080B5944: .4byte gSprites -_080B5948: .4byte gUnknown_2037F1B -_080B594C: .4byte 0x0000ff70 -_080B5950: - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x90 - strh r1, [r0, 0x30] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080B59C0 @ =0x0000ff90 -_080B596E: - strh r1, [r0, 0x32] - ldr r4, _080B59C4 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r2, 0 - strh r2, [r0, 0x34] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x36] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080B59C8 @ =SpriteCallbackDummy - bl StoreSpriteCallbackInData6 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080B59CC @ =sub_8074D00 - str r1, [r0] - ldr r0, _080B59D0 @ =sub_80B59D4 - str r0, [r5] -_080B59B8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B59C0: .4byte 0x0000ff90 -_080B59C4: .4byte gSprites -_080B59C8: .4byte SpriteCallbackDummy -_080B59CC: .4byte sub_8074D00 -_080B59D0: .4byte sub_80B59D4 - thumb_func_end sub_80B58AC - - thumb_func_start sub_80B59D4 -sub_80B59D4: @ 80B59D4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B59F8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B5A78 - cmp r0, 0x1 - bgt _080B59FC - cmp r0, 0 - beq _080B5A02 - b _080B5AA4 - .align 2, 0 -_080B59F8: .4byte gTasks -_080B59FC: - cmp r0, 0x2 - beq _080B5A9E - b _080B5AA4 -_080B5A02: - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x3 - ands r0, r1 - strh r0, [r4, 0x12] - cmp r0, 0x1 - bne _080B5A20 - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B5A20 - subs r0, r1, 0x1 - strh r0, [r4, 0xC] -_080B5A20: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - bne _080B5A36 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B5A36 - adds r0, r1, 0x1 - strh r0, [r4, 0xE] -_080B5A36: - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0xC] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r1, [r4, 0xC] - movs r0, 0x80 - lsls r0, 13 - cmp r1, r0 - bne _080B5AA4 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x50 - ble _080B5AA4 - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B5A74 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram - movs r0, 0x1 - strh r0, [r4, 0x10] - b _080B5AA4 - .align 2, 0 -_080B5A74: .4byte gSprites -_080B5A78: - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B5AA4 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - b _080B5AA4 -_080B5A9E: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B5AA4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B59D4 - - thumb_func_start sub_80B5AAC -sub_80B5AAC: @ 80B5AAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _080B5ACC @ =gTasks - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x26] - ldr r2, _080B5AD0 @ =sub_80B5AD4 - str r2, [r1] - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_080B5ACC: .4byte gTasks -_080B5AD0: .4byte sub_80B5AD4 - thumb_func_end sub_80B5AAC - - thumb_func_start sub_80B5AD4 -sub_80B5AD4: @ 80B5AD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080B5B0C @ =gTasks - adds r5, r0, r1 - ldr r0, _080B5B10 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080B5B00 - b _080B5D22 -_080B5B00: - lsls r0, 2 - ldr r1, _080B5B14 @ =_080B5B18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B5B0C: .4byte gTasks -_080B5B10: .4byte gUnknown_2037F1B -_080B5B14: .4byte _080B5B18 - .align 2, 0 -_080B5B18: - .4byte _080B5B2C - .4byte _080B5C2C - .4byte _080B5C70 - .4byte _080B5CD8 - .4byte _080B5D04 -_080B5B2C: - ldr r7, _080B5B64 @ =0x00002771 - adds r0, r7, 0 - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - mov r8, r2 - strh r0, [r5, 0x24] - cmp r0, 0xFF - beq _080B5B5A - cmp r0, 0xF - beq _080B5B5A - movs r0, 0x1 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - strh r0, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bge _080B5B68 - adds r0, r7, 0 - bl FreeSpritePaletteByTag -_080B5B5A: - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080B5D28 - .align 2, 0 -_080B5B64: .4byte 0x00002771 -_080B5B68: - ldr r4, _080B5C14 @ =gSprites - movs r1, 0x8 - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r2, [r5, 0x24] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r2, 0x8 - ldrsh r0, [r5, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x8 - ldrsh r0, [r5, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldr r0, _080B5C18 @ =gUnknown_2024018 - ldr r1, [r0] - ldr r0, _080B5C1C @ =gUnknown_2037F1B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 31 - adds r2, 0x3E - lsrs r1, 31 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - mov r2, r8 - strh r2, [r5, 0xA] - strh r2, [r5, 0xC] - movs r0, 0x10 - strh r0, [r5, 0xE] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r0, 4 - strh r0, [r5, 0x10] - cmp r6, 0x1 - bne _080B5C20 - movs r1, 0x80 - lsls r1, 2 - b _080B5C24 - .align 2, 0 -_080B5C14: .4byte gSprites -_080B5C18: .4byte gUnknown_2024018 -_080B5C1C: .4byte gUnknown_2037F1B -_080B5C20: - movs r1, 0x80 - lsls r1, 3 -_080B5C24: - movs r0, 0 - bl ClearGpuRegBits - b _080B5D22 -_080B5C2C: - movs r1, 0x24 - ldrsh r0, [r5, r1] - adds r0, 0x10 - lsls r0, 4 - strh r0, [r5, 0x24] - movs r2, 0x10 - ldrsh r0, [r5, r2] - lsls r0, 1 - ldr r1, _080B5C60 @ =gPlttBufferUnfaded - adds r0, r1 - movs r2, 0x24 - ldrsh r1, [r5, r2] - lsls r1, 1 - ldr r2, _080B5C64 @ =gPlttBufferFaded - adds r1, r2 - ldr r2, _080B5C68 @ =0x04000008 - bl CpuSet - ldrh r0, [r5, 0x10] - ldr r3, _080B5C6C @ =0x00003c0d - movs r1, 0x10 - movs r2, 0xA - bl BlendPalette - b _080B5D22 - .align 2, 0 -_080B5C60: .4byte gPlttBufferUnfaded -_080B5C64: .4byte gPlttBufferFaded -_080B5C68: .4byte 0x04000008 -_080B5C6C: .4byte 0x00003c0d -_080B5C70: - ldr r2, _080B5CAC @ =gSprites - movs r0, 0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - subs r1, 0x20 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r1, 0 - bge _080B5C90 - movs r2, 0 -_080B5C90: - cmp r6, 0x1 - bne _080B5CB0 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x4 - str r2, [sp, 0x4] - str r6, [sp, 0x8] - b _080B5CC8 - .align 2, 0 -_080B5CAC: .4byte gSprites -_080B5CB0: - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x8 - str r2, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] -_080B5CC8: - movs r2, 0x2 - movs r3, 0x6 - bl sub_8088230 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - b _080B5D22 -_080B5CD8: - cmp r6, 0x1 - bne _080B5CEC - ldr r1, _080B5CE8 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - b _080B5CF4 - .align 2, 0 -_080B5CE8: .4byte 0x00003f42 -_080B5CEC: - ldr r1, _080B5D00 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg -_080B5CF4: - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - b _080B5D22 - .align 2, 0 -_080B5D00: .4byte 0x00003f44 -_080B5D04: - cmp r6, 0x1 - bne _080B5D14 - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl SetGpuRegBits - b _080B5D1E -_080B5D14: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits -_080B5D1E: - ldr r0, _080B5D34 @ =sub_80B5D38 - str r0, [r5] -_080B5D22: - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] -_080B5D28: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5D34: .4byte sub_80B5D38 - thumb_func_end sub_80B5AD4 - - thumb_func_start sub_80B5D38 -sub_80B5D38: @ 80B5D38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B5DC0 @ =gTasks - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - strh r0, [r4, 0x12] - cmp r0, 0 - bne _080B5D70 - ldr r1, _080B5DC4 @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - strh r0, [r4, 0xC] -_080B5D70: - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _080B5D92 - ldr r1, _080B5DC4 @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - movs r1, 0x10 - subs r1, r0 - strh r1, [r4, 0xE] -_080B5D92: - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0xC] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x80 - bne _080B5DBA - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080B5DC8 @ =sub_80B5DCC - str r1, [r4] - adds r0, r5, 0 - bl _call_via_r1 -_080B5DBA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B5DC0: .4byte gTasks -_080B5DC4: .4byte gUnknown_825E074 -_080B5DC8: .4byte sub_80B5DCC - thumb_func_end sub_80B5D38 - - thumb_func_start sub_80B5DCC -sub_80B5DCC: @ 80B5DCC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B5DFC @ =gTasks - adds r4, r0, r1 - ldr r0, _080B5E00 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B5E38 - cmp r0, 0x1 - bgt _080B5E04 - cmp r0, 0 - beq _080B5E0A - b _080B5EB4 - .align 2, 0 -_080B5DFC: .4byte gTasks -_080B5E00: .4byte gUnknown_2037F1B -_080B5E04: - cmp r0, 0x2 - beq _080B5E4C - b _080B5EB4 -_080B5E0A: - ldr r1, _080B5E28 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - cmp r6, 0x1 - bne _080B5E2C - movs r1, 0x80 - lsls r1, 2 - b _080B5E30 - .align 2, 0 -_080B5E28: .4byte gUnknown_2039600 -_080B5E2C: - movs r1, 0x80 - lsls r1, 3 -_080B5E30: - movs r0, 0 - bl ClearGpuRegBits - b _080B5EB4 -_080B5E38: - ldrh r0, [r4, 0x10] - ldr r3, _080B5E48 @ =0x00003c0d - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - b _080B5EB4 - .align 2, 0 -_080B5E48: .4byte 0x00003c0d -_080B5E4C: - ldr r3, _080B5E9C @ =gSprites - movs r0, 0x24 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - bl obj_delete_but_dont_free_vram - ldr r0, _080B5EA0 @ =0x00002771 - bl FreeSpritePaletteByTag - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - cmp r6, 0x1 - bne _080B5EA4 - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl SetGpuRegBits - b _080B5EAE - .align 2, 0 -_080B5E9C: .4byte gSprites -_080B5EA0: .4byte 0x00002771 -_080B5EA4: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits -_080B5EAE: - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B5EB4: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B5DCC - - thumb_func_start sub_80B5EC0 -sub_80B5EC0: @ 80B5EC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - ldr r0, _080B5EFC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B5F08 - ldr r4, _080B5F00 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xE0 - lsls r2, 13 - adds r0, r2 - lsrs r5, r0, 16 - ldr r4, _080B5F04 @ =gUnknown_2037F1B - b _080B5F2C - .align 2, 0 -_080B5EFC: .4byte gUnknown_2037F02 -_080B5F00: .4byte gUnknown_2037F1A -_080B5F04: .4byte gUnknown_2037F1B -_080B5F08: - ldr r4, _080B5FD0 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xE0 - lsls r2, 13 - adds r0, r2 - lsrs r5, r0, 16 - ldr r4, _080B5FD4 @ =gUnknown_2037F1A -_080B5F2C: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 8 - movs r1, 0xE0 - lsls r1, 13 - adds r0, r1 - lsrs r0, 16 - mov r9, r0 - mov r8, r5 - mov r2, r9 - subs r4, r2, r5 - lsls r4, 16 - lsrs r4, 16 - lsls r0, r6, 4 - strh r0, [r7, 0x2E] - lsls r0, r5, 4 - strh r0, [r7, 0x30] - mov r1, r10 - subs r0, r1, r6 - lsls r0, 4 - ldr r5, _080B5FD8 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r7, 0x32] - lsls r4, 16 - asrs r4, 12 - movs r0, 0x2 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl __divsi3 - strh r0, [r7, 0x34] - ldrh r0, [r5, 0x2] - strh r0, [r7, 0x36] - mov r1, r10 - strh r1, [r7, 0x38] - mov r2, r9 - strh r2, [r7, 0x3A] - movs r1, 0x36 - ldrsh r0, [r7, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r7, 0x3C] - ldrb r1, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r7, 0x5] - strh r6, [r7, 0x20] - mov r2, r8 - strh r2, [r7, 0x22] - ldr r0, _080B5FDC @ =sub_80B5FE0 - str r0, [r7, 0x1C] - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5FD0: .4byte gUnknown_2037F1B -_080B5FD4: .4byte gUnknown_2037F1A -_080B5FD8: .4byte gUnknown_2037F02 -_080B5FDC: .4byte sub_80B5FE0 - thumb_func_end sub_80B5EC0 - - thumb_func_start sub_80B5FE0 -sub_80B5FE0: @ 80B5FE0 - push {r4,lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x36] - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080B6018 - ldrh r0, [r2, 0x32] - ldrh r4, [r2, 0x2E] - adds r0, r4 - strh r0, [r2, 0x2E] - ldrh r1, [r2, 0x34] - ldrh r4, [r2, 0x30] - adds r1, r4 - strh r1, [r2, 0x30] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r2, 0x22] - subs r0, r3, 0x1 - strh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080B6018 - strh r0, [r2, 0x2E] -_080B6018: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B5FE0 - - thumb_func_start sub_80B6020 -sub_80B6020: @ 80B6020 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B6170 @ =gTasks - adds r1, r0 - str r1, [sp] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0 - ldr r1, [sp] - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - strh r0, [r1, 0x16] - strh r0, [r1, 0x18] - movs r0, 0x10 - strh r0, [r1, 0x1A] - ldr r2, _080B6174 @ =gUnknown_2037F02 - ldrh r0, [r2] - strh r0, [r1, 0x1C] - ldr r4, _080B6178 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8076B2C - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B6090 - b _080B618C -_080B6090: - movs r4, 0 -_080B6092: - lsls r1, r4, 16 - asrs r3, r1, 16 - ldr r0, _080B6178 @ =gUnknown_2037F1A - ldrb r2, [r0] - str r1, [sp, 0x10] - cmp r3, r2 - beq _080B615E - movs r0, 0x2 - eors r2, r0 - cmp r3, r2 - beq _080B615E - lsls r0, r4, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B615E - ldr r6, [sp, 0x4] - ldr r3, [sp, 0x8] - lsls r0, r3, 16 - asrs r7, r0, 16 - ldr r0, _080B617C @ =gUnknown_83E7668 - adds r1, r6, 0 - adds r2, r7, 0 - movs r3, 0x37 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x40 - beq _080B615E - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - adds r0, r4, 0 - movs r1, 0x3 - bl sub_8076B2C - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r0, r8 - lsls r5, r0, 4 - add r5, r8 - lsls r5, 2 - ldr r1, _080B6180 @ =gSprites - adds r4, r5, r1 - lsls r0, r6, 4 - strh r0, [r4, 0x2E] - lsls r0, r7, 4 - strh r0, [r4, 0x30] - mov r2, r10 - subs r0, r2, r6 - lsls r0, 4 - ldr r3, _080B6174 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, 0x32] - mov r3, r9 - lsls r0, r3, 16 - asrs r0, 16 - subs r0, r7 - lsls r0, 4 - ldr r2, _080B6174 @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, 0x34] - ldr r1, _080B6174 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x36] - mov r2, r10 - strh r2, [r4, 0x38] - mov r3, r9 - strh r3, [r4, 0x3A] - ldr r0, _080B6184 @ =gSprites + 0x1C - adds r5, r0 - ldr r0, _080B6188 @ =sub_80B5FE0 - str r0, [r5] - ldr r2, [sp] - movs r3, 0x20 - ldrsh r1, [r2, r3] - adds r1, 0xD - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1 - mov r1, r8 - strh r1, [r0] - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] -_080B615E: - ldr r2, [sp, 0x10] - movs r3, 0x80 - lsls r3, 9 - adds r0, r2, r3 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080B6092 - b _080B6210 - .align 2, 0 -_080B6170: .4byte gTasks -_080B6174: .4byte gUnknown_2037F02 -_080B6178: .4byte gUnknown_2037F1A -_080B617C: .4byte gUnknown_83E7668 -_080B6180: .4byte gSprites -_080B6184: .4byte gSprites + 0x1C -_080B6188: .4byte sub_80B5FE0 -_080B618C: - ldr r0, _080B6228 @ =gUnknown_83E7668 - ldr r7, [sp, 0x4] - ldr r2, [sp, 0x8] - lsls r1, r2, 16 - asrs r1, 16 - str r1, [sp, 0xC] - adds r1, r7, 0 - ldr r2, [sp, 0xC] - movs r3, 0x37 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x40 - beq _080B6210 - movs r3, 0x30 - mov r10, r3 - movs r0, 0x28 - mov r9, r0 - ldr r6, _080B622C @ =gSprites - mov r1, r8 - lsls r5, r1, 4 - add r5, r8 - lsls r5, 2 - adds r4, r5, r6 - lsls r0, r7, 4 - strh r0, [r4, 0x2E] - ldr r2, [sp, 0xC] - lsls r0, r2, 4 - strh r0, [r4, 0x30] - subs r0, r3, r7 - lsls r0, 4 - ldr r3, _080B6230 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, 0x32] - mov r3, r9 - ldr r1, [sp, 0xC] - subs r0, r3, r1 - lsls r0, 4 - ldr r2, _080B6230 @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, 0x34] - ldr r1, _080B6230 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x36] - mov r2, r10 - strh r2, [r4, 0x38] - mov r3, r9 - strh r3, [r4, 0x3A] - adds r6, 0x1C - adds r5, r6 - ldr r0, _080B6234 @ =sub_80B5FE0 - str r0, [r5] - mov r1, r8 - ldr r0, [sp] - strh r1, [r0, 0x22] - movs r0, 0x1 - ldr r2, [sp] - strh r0, [r2, 0x20] -_080B6210: - ldr r0, _080B6238 @ =sub_80B623C - ldr r3, [sp] - str r0, [r3] - 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 -_080B6228: .4byte gUnknown_83E7668 -_080B622C: .4byte gSprites -_080B6230: .4byte gUnknown_2037F02 -_080B6234: .4byte sub_80B5FE0 -_080B6238: .4byte sub_80B623C - thumb_func_end sub_80B6020 - - thumb_func_start sub_80B623C -sub_80B623C: @ 80B623C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B6260 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080B62F2 - cmp r1, 0x1 - bgt _080B6264 - cmp r1, 0 - beq _080B6272 - b _080B63AE - .align 2, 0 -_080B6260: .4byte gTasks -_080B6264: - cmp r1, 0x2 - bne _080B626A - b _080B6384 -_080B626A: - cmp r1, 0x3 - bne _080B6270 - b _080B6398 -_080B6270: - b _080B63AE -_080B6272: - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B62D8 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B62D8 - strh r1, [r4, 0x12] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B62A8 - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B62B6 - adds r0, r1, 0x1 - strh r0, [r4, 0x18] - b _080B62B6 -_080B62A8: - ldrh r1, [r4, 0x1A] - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B62B6 - subs r0, r1, 0x1 - strh r0, [r4, 0x1A] -_080B62B6: - ldrh r1, [r4, 0x1A] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0x17 - ble _080B62D8 - movs r0, 0 - strh r0, [r4, 0x16] - movs r0, 0x1 - strh r0, [r4, 0x14] -_080B62D8: - ldrh r1, [r4, 0x1C] - movs r2, 0x1C - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B62E8 - subs r0, r1, 0x1 - strh r0, [r4, 0x1C] - b _080B63AE -_080B62E8: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B63AE - b _080B6390 -_080B62F2: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B63AE - movs r0, 0 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - ands r0, r1 - lsls r0, 16 - cmp r0, 0 - beq _080B6322 - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B6330 - subs r0, r1, 0x1 - strh r0, [r4, 0x18] - b _080B6330 -_080B6322: - ldrh r1, [r4, 0x1A] - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B6330 - adds r0, r1, 0x1 - strh r0, [r4, 0x1A] -_080B6330: - ldrh r1, [r4, 0x1A] - lsls r1, 8 - ldrh r0, [r4, 0x18] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r1, [r4, 0x18] - movs r0, 0x80 - lsls r0, 13 - cmp r1, r0 - bne _080B63AE - movs r5, 0 - b _080B6374 -_080B6350: - adds r1, r5, 0 - adds r1, 0xD - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B6380 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080B6374: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r5, r0 - blt _080B6350 - b _080B6390 - .align 2, 0 -_080B6380: .4byte gSprites -_080B6384: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - cmp r0, 0 - ble _080B63AE -_080B6390: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B63AE -_080B6398: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B63AE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B623C - - thumb_func_start sub_80B63B4 -sub_80B63B4: @ 80B63B4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080B6400 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B6404 @ =gUnknown_2022986 - strh r1, [r0] - ldr r1, _080B6408 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080B640C @ =0x00003f1f - movs r0, 0x4A - bl SetGpuReg - movs r0, 0x50 - movs r1, 0xC8 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0x10 - bl SetGpuReg - ldr r0, _080B6410 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B63FC - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080B6414 -_080B63FC: - movs r6, 0x28 - b _080B6416 - .align 2, 0 -_080B6400: .4byte gUnknown_2022984 -_080B6404: .4byte gUnknown_2022986 -_080B6408: .4byte 0x00003f3f -_080B640C: .4byte 0x00003f1f -_080B6410: .4byte gUnknown_2037F1A -_080B6414: - movs r6, 0xC8 -_080B6416: - ldr r1, _080B6454 @ =gUnknown_2022984 - lsls r3, r6, 16 - asrs r2, r3, 16 - lsls r0, r2, 8 - orrs r0, r2 - strh r0, [r1] - ldr r1, _080B6458 @ =gUnknown_2022986 - movs r5, 0x28 - ldr r0, _080B645C @ =0x00002828 - strh r0, [r1] - lsrs r3, 16 - movs r1, 0xF0 - subs r1, r2 - movs r4, 0x48 - ldr r2, _080B6460 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - strh r3, [r0, 0xA] - strh r1, [r0, 0xC] - strh r5, [r0, 0xE] - strh r4, [r0, 0x10] - strh r6, [r0, 0x12] - strh r5, [r0, 0x14] - ldr r1, _080B6464 @ =sub_80B6468 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B6454: .4byte gUnknown_2022984 -_080B6458: .4byte gUnknown_2022986 -_080B645C: .4byte 0x00002828 -_080B6460: .4byte gTasks -_080B6464: .4byte sub_80B6468 - thumb_func_end sub_80B63B4 - - thumb_func_start sub_80B6468 -sub_80B6468: @ 80B6468 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B6588 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0x8] - adds r0, r1, 0x1 - strh r0, [r4, 0x8] - ldrh r5, [r4, 0xA] - ldrh r7, [r4, 0xC] - ldrh r0, [r4, 0xE] - mov r10, r0 - ldrh r2, [r4, 0x10] - str r2, [sp, 0xC] - ldrh r0, [r4, 0x12] - ldrh r2, [r4, 0x14] - mov r8, r2 - lsls r1, 16 - asrs r6, r1, 16 - cmp r6, 0xF - ble _080B64A4 - b _080B6594 -_080B64A4: - lsls r0, 16 - asrs r0, 16 - bl __floatsidf - str r0, [sp, 0x10] - str r1, [sp, 0x14] - lsls r0, r5, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080B658C @ =0x3fb00000 - ldr r3, _080B6590 @ =0x00000000 - bl __muldf3 - adds r5, r1, 0 - adds r4, r0, 0 - adds r0, r6, 0 - bl __floatsidf - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - adds r1, r5, 0 - adds r0, r4, 0 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - bl __subdf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r0, r7, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080B658C @ =0x3fb00000 - ldr r3, _080B6590 @ =0x00000000 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - bl __adddf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r7, r0, 16 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - bl __floatsidf - adds r5, r1, 0 - adds r4, r0, 0 - mov r2, r10 - lsls r0, r2, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080B658C @ =0x3fb00000 - ldr r3, _080B6590 @ =0x00000000 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - adds r1, r5, 0 - adds r0, r4, 0 - bl __subdf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, [sp, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080B658C @ =0x3fb00000 - ldr r3, _080B6590 @ =0x00000000 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - adds r1, r5, 0 - adds r0, r4, 0 - bl __adddf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r5, r0, 16 - b _080B65C2 - .align 2, 0 -_080B6588: .4byte gTasks -_080B658C: .4byte 0x3fb00000 -_080B6590: .4byte 0x00000000 -_080B6594: - movs r2, 0 - mov r9, r2 - movs r7, 0xF0 - movs r6, 0 - movs r5, 0x70 - str r6, [sp] - str r6, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r3, 0 - bl sub_8075BE8 - lsls r0, 16 - lsrs r0, 16 - str r6, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080B65E4 @ =sub_80B65F0 - str r0, [r4] -_080B65C2: - ldr r1, _080B65E8 @ =gUnknown_2022984 - mov r2, r9 - lsls r0, r2, 8 - orrs r7, r0 - strh r7, [r1] - ldr r1, _080B65EC @ =gUnknown_2022986 - lsls r0, r6, 8 - orrs r5, r0 - strh r5, [r1] - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B65E4: .4byte sub_80B65F0 -_080B65E8: .4byte gUnknown_2022984 -_080B65EC: .4byte gUnknown_2022986 - thumb_func_end sub_80B6468 - - thumb_func_start sub_80B65F0 -sub_80B65F0: @ 80B65F0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080B663C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080B6636 - ldr r0, _080B6640 @ =gUnknown_2022984 - strh r1, [r0] - ldr r0, _080B6644 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080B6648 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B6636: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B663C: .4byte gPaletteFade -_080B6640: .4byte gUnknown_2022984 -_080B6644: .4byte gUnknown_2022986 -_080B6648: .4byte 0x00003f3f - thumb_func_end sub_80B65F0 - - thumb_func_start sub_80B664C -sub_80B664C: @ 80B664C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r0, _080B6678 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B6680 - movs r2, 0x18 - ldr r3, _080B667C @ =0x0000fffe - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r4, 0x3] - b _080B6684 - .align 2, 0 -_080B6678: .4byte gUnknown_2037F1A -_080B667C: .4byte 0x0000fffe -_080B6680: - ldr r2, _080B66A0 @ =0x0000ffe8 - movs r3, 0x2 -_080B6684: - lsls r0, r2, 16 - asrs r0, 16 - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r3, [r4, 0x30] - movs r0, 0x3C - strh r0, [r4, 0x2E] - ldr r0, _080B66A4 @ =sub_80B66A8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B66A0: .4byte 0x0000ffe8 -_080B66A4: .4byte sub_80B66A8 - thumb_func_end sub_80B664C - - thumb_func_start sub_80B66A8 -sub_80B66A8: @ 80B66A8 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080B66BA - subs r0, r1, 0x1 - b _080B671E -_080B66BA: - ldrh r0, [r3, 0x30] - ldrh r4, [r3, 0x24] - adds r1, r0, r4 - strh r1, [r3, 0x24] - adds r0, r1, 0x7 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xE - bls _080B6720 - ldrh r0, [r3, 0x20] - adds r0, r1 - strh r0, [r3, 0x20] - movs r0, 0 - strh r0, [r3, 0x24] - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r4, _080B670C @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080B6710 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B671C - movs r0, 0x1E - strh r0, [r3, 0x2E] - ldr r0, _080B6714 @ =sub_8074C44 - str r0, [r3, 0x1C] - ldr r1, _080B6718 @ =sub_80B6728 - adds r0, r3, 0 - bl StoreSpriteCallbackInData6 - b _080B6720 - .align 2, 0 -_080B670C: .4byte 0x000003ff -_080B6710: .4byte 0xfffffc00 -_080B6714: .4byte sub_8074C44 -_080B6718: .4byte sub_80B6728 -_080B671C: - movs r0, 0x28 -_080B671E: - strh r0, [r3, 0x2E] -_080B6720: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B66A8 - - thumb_func_start sub_80B6728 -sub_80B6728: @ 80B6728 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _080B6752 - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - b _080B6796 -_080B6752: - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bgt _080B6762 - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - b _080B6796 -_080B6762: - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - movs r1, 0x10 - subs r1, r0 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080B6796 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B679C @ =sub_80B67A0 - str r0, [r4, 0x1C] -_080B6796: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B679C: .4byte sub_80B67A0 - thumb_func_end sub_80B6728 - - thumb_func_start sub_80B67A0 -sub_80B67A0: @ 80B67A0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - ldr r0, _080B67CC @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B67D0 @ =gUnknown_2022986 - strh r1, [r0] - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B67CC: .4byte gUnknown_2022984 -_080B67D0: .4byte gUnknown_2022986 - thumb_func_end sub_80B67A0 - - thumb_func_start sub_80B67D4 -sub_80B67D4: @ 80B67D4 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r1, 0xC - bl Sin - strh r0, [r5, 0x24] - ldr r0, _080B683C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B67F8 - ldrh r0, [r5, 0x24] - negs r0, r0 - strh r0, [r5, 0x24] -_080B67F8: - ldrh r0, [r5, 0x2E] - adds r0, 0x6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080B6844 - ldr r0, _080B6840 @ =0x0000050b - strh r0, [r5, 0x3A] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r5, 0x3A] - movs r0, 0x52 - bl SetGpuReg - b _080B689C - .align 2, 0 -_080B683C: .4byte gUnknown_2037F1A -_080B6840: .4byte 0x0000050b -_080B6844: - cmp r0, 0x1E - ble _080B689C - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x3A] - lsls r0, r1, 16 - asrs r0, 24 - lsls r0, 16 - movs r6, 0xFF - ands r6, r1 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r7, r0, 16 - cmp r7, 0x10 - bls _080B6868 - movs r7, 0x10 -_080B6868: - subs r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r0, 0 - bge _080B6874 - movs r6, 0 -_080B6874: - lsls r4, r7, 8 - orrs r4, r6 - lsls r1, r4, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - strh r4, [r5, 0x3A] - cmp r7, 0x10 - bne _080B689C - cmp r6, 0 - bne _080B689C - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B68A4 @ =sub_80B68A8 - str r0, [r5, 0x1C] -_080B689C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B68A4: .4byte sub_80B68A8 - thumb_func_end sub_80B67D4 - - thumb_func_start sub_80B68A8 -sub_80B68A8: @ 80B68A8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B68A8 - - thumb_func_start sub_80B68C8 -sub_80B68C8: @ 80B68C8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080B6960 @ =gTasks - adds r4, r0 - movs r6, 0 - strh r6, [r4, 0x8] - movs r0, 0x10 - mov r8, r0 - mov r0, r8 - strh r0, [r4, 0xA] - ldr r5, _080B6964 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - ldrb r0, [r5] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8076B2C - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - adds r1, 0x8 - strh r1, [r4, 0x1E] - strh r6, [r4, 0x16] - ldrb r0, [r5] - bl sub_8076884 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - ldrb r0, [r5] - bl sub_807685C - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x2 - strh r0, [r4, 0x14] - strh r6, [r4, 0xE] - mov r0, r8 - strh r0, [r4, 0x10] - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - strh r6, [r4, 0x18] - ldr r0, _080B6968 @ =sub_80B696C - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B6960: .4byte gTasks -_080B6964: .4byte gUnknown_2037F1A -_080B6968: .4byte sub_80B696C - thumb_func_end sub_80B68C8 - - thumb_func_start sub_80B696C -sub_80B696C: @ 80B696C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080B6990 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080B6986 - b _080B6AF2 -_080B6986: - lsls r0, 2 - ldr r1, _080B6994 @ =_080B6998 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B6990: .4byte gTasks -_080B6994: .4byte _080B6998 - .align 2, 0 -_080B6998: - .4byte _080B69B0 - .4byte _080B6A20 - .4byte _080B6A62 - .4byte _080B6A76 - .4byte _080B6ACC - .4byte _080B6ADC -_080B69B0: - movs r6, 0 -_080B69B2: - movs r2, 0x1A - ldrsh r1, [r4, r2] - movs r0, 0x1C - ldrsh r2, [r4, r0] - ldrb r3, [r4, 0x14] - ldr r0, _080B6A14 @ =gUnknown_83E76E0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080B6A06 - ldr r1, _080B6A18 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r1 - strh r7, [r5, 0x2E] - ldr r0, _080B6A1C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _080B69E8 - movs r1, 0x1 -_080B69E8: - strh r1, [r5, 0x30] - movs r0, 0x2A - muls r0, r6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x1E] - strh r0, [r5, 0x34] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 1 - strh r0, [r5, 0x38] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] -_080B6A06: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080B69B2 - b _080B6AD4 - .align 2, 0 -_080B6A14: .4byte gUnknown_83E76E0 -_080B6A18: .4byte gSprites -_080B6A1C: .4byte gUnknown_2037F1A -_080B6A20: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B6A3E - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0xD - bgt _080B6A4C - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080B6A4C -_080B6A3E: - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0x4 - ble _080B6A4C - subs r0, r1, 0x1 - strh r0, [r4, 0x10] -_080B6A4C: - movs r1, 0xE - ldrsh r0, [r4, r1] - ldrh r2, [r4, 0xE] - ldrh r1, [r4, 0x10] - cmp r0, 0xE - bne _080B6ABC - cmp r1, 0x4 - bne _080B6ABC - movs r0, 0 - strh r0, [r4, 0xA] - b _080B6AB6 -_080B6A62: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080B6AF2 - movs r0, 0 - strh r0, [r4, 0xA] - b _080B6AD4 -_080B6A76: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B6A94 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B6AA2 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080B6AA2 -_080B6A94: - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B6AA2 - adds r0, r1, 0x1 - strh r0, [r4, 0x10] -_080B6AA2: - movs r1, 0xE - ldrsh r0, [r4, r1] - ldrh r2, [r4, 0xE] - ldrh r1, [r4, 0x10] - cmp r0, 0 - bne _080B6ABC - cmp r1, 0x10 - bne _080B6ABC - movs r0, 0x1 - strh r0, [r4, 0x18] -_080B6AB6: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6ABC: - lsls r1, 8 - orrs r1, r2 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - b _080B6AF2 -_080B6ACC: - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B6AF2 -_080B6AD4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B6AF2 -_080B6ADC: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080B6AF2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B696C - - thumb_func_start sub_80B6AF8 -sub_80B6AF8: @ 80B6AF8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B6B0A - ldrh r0, [r4, 0x32] - adds r0, 0x2 - b _080B6B0E -_080B6B0A: - ldrh r0, [r4, 0x32] - subs r0, 0x2 -_080B6B0E: - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x32] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7E - bhi _080B6B50 - ldr r2, _080B6B4C @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x12] - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - b _080B6B64 - .align 2, 0 -_080B6B4C: .4byte gTasks -_080B6B50: - ldr r2, _080B6BB8 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x3 - ldrb r1, [r0, 0x12] - ands r1, r2 -_080B6B64: - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsls r0, 3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r1, 0x7 - bl Sin - strh r0, [r4, 0x26] - ldr r2, _080B6BB8 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - movs r2, 0x18 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080B6BB2 - ldrh r0, [r1, 0x16] - subs r0, 0x1 - strh r0, [r1, 0x16] - adds r0, r4, 0 - bl DestroySprite -_080B6BB2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B6BB8: .4byte gTasks - thumb_func_end sub_80B6AF8 - - thumb_func_start sub_80B6BBC -sub_80B6BBC: @ 80B6BBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _080B6BDC @ =gTasks - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x26] - ldr r2, _080B6BE0 @ =sub_80B6BE4 - str r2, [r1] - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_080B6BDC: .4byte gTasks -_080B6BE0: .4byte sub_80B6BE4 - thumb_func_end sub_80B6BBC - - thumb_func_start sub_80B6BE4 -sub_80B6BE4: @ 80B6BE4 - push {r4-r6,lr} - sub sp, 0x1C - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B6C18 @ =gTasks - adds r6, r1, r0 - ldr r0, _080B6C1C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0x26 - ldrsh r0, [r6, r1] - cmp r0, 0x7 - bls _080B6C0C - b _080B6F1E -_080B6C0C: - lsls r0, 2 - ldr r1, _080B6C20 @ =_080B6C24 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B6C18: .4byte gTasks -_080B6C1C: .4byte gUnknown_2037F1A -_080B6C20: .4byte _080B6C24 - .align 2, 0 -_080B6C24: - .4byte _080B6C44 - .4byte _080B6CCC - .4byte _080B6D28 - .4byte _080B6D8C - .4byte _080B6E04 - .4byte _080B6E6C - .4byte _080B6E82 - .4byte _080B6EEC -_080B6C44: - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x2 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0 - strh r0, [r6, 0xA] - strh r0, [r6, 0xC] - movs r0, 0x10 - strh r0, [r6, 0xE] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x10] - ldr r3, _080B6CC8 @ =gSprites - movs r2, 0x10 - ldrsh r1, [r6, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x5] - lsls r0, 28 - lsrs r0, 30 - strh r0, [r6, 0x12] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r0, 4 - strh r0, [r6, 0x14] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x10 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - movs r0, 0x80 - strh r0, [r6, 0x16] - b _080B6F1E - .align 2, 0 -_080B6CC8: .4byte gSprites -_080B6CCC: - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] - movs r5, 0x1 - ands r5, r0 - cmp r5, 0 - beq _080B6CDC - b _080B6F24 -_080B6CDC: - ldrh r0, [r6, 0x14] - ldrb r2, [r6, 0xC] - ldr r4, _080B6D08 @ =0x000066e0 - movs r1, 0x10 - adds r3, r4, 0 - bl BlendPalette - ldrh r0, [r6, 0x16] - ldrb r2, [r6, 0xC] - movs r1, 0x10 - adds r3, r4, 0 - bl BlendPalette - ldrh r1, [r6, 0xC] - movs r2, 0xC - ldrsh r0, [r6, r2] - cmp r0, 0xB - bgt _080B6D0C - adds r0, r1, 0x1 - strh r0, [r6, 0xC] - b _080B6F24 - .align 2, 0 -_080B6D08: .4byte 0x000066e0 -_080B6D0C: - strh r5, [r6, 0xA] - strh r5, [r6, 0xC] - ldr r1, _080B6D24 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - b _080B6F1E - .align 2, 0 -_080B6D24: .4byte 0x00003f44 -_080B6D28: - movs r0, 0x2 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - ldr r0, _080B6D7C @ =gUnknown_202297C - movs r1, 0 - strh r1, [r0] - ldr r4, _080B6D80 @ =gUnknown_202297E - strh r1, [r4] - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - ldrh r1, [r4] - movs r0, 0x1A - bl SetGpuReg - add r0, sp, 0xC - movs r1, 0x2 - bl sub_80752C8 - add r0, sp, 0xC - ldrb r0, [r0, 0x9] - ldr r1, _080B6D84 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet - add r2, sp, 0xC - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080B6D88 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette - add r1, sp, 0xC - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080B6F1E - .align 2, 0 -_080B6D7C: .4byte gUnknown_202297C -_080B6D80: .4byte gUnknown_202297E -_080B6D84: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet -_080B6D88: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette -_080B6D8C: - add r0, sp, 0xC - movs r1, 0x2 - bl sub_80752C8 - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - adds r1, r0, 0 - ldr r5, _080B6DFC @ =gMonSpritesGfxPtr - ldr r0, [r5] - movs r4, 0xBE - lsls r4, 1 - adds r0, r4 - str r1, [r0] - ldr r0, _080B6E00 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap - bl LZDecompressWram - add r0, sp, 0xC - ldrb r0, [r0, 0x8] - ldr r1, [r5] - adds r1, r4 - ldr r1, [r1] - movs r2, 0x80 - lsls r2, 1 - movs r3, 0 - bl sub_80730C0 - add r0, sp, 0xC - ldrb r0, [r0, 0x9] - ldr r1, [r5] - adds r1, r4 - ldr r1, [r1] - movs r2, 0x20 - str r2, [sp] - str r2, [sp, 0x4] - movs r2, 0x11 - str r2, [sp, 0x8] - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, [r5] - adds r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r5] - adds r0, r4 - movs r1, 0 - str r1, [r0] - b _080B6F1E - .align 2, 0 -_080B6DFC: .4byte gMonSpritesGfxPtr -_080B6E00: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap -_080B6E04: - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B6E14 - b _080B6F24 -_080B6E14: - ldrh r1, [r6, 0xC] - adds r1, 0x1 - strh r1, [r6, 0xC] - ldrh r0, [r6, 0xE] - subs r0, 0x1 - strh r0, [r6, 0xE] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0xE - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080B6F24 - strh r0, [r6, 0xA] - strh r0, [r6, 0xC] - movs r0, 0x10 - strh r0, [r6, 0xE] - ldr r1, _080B6E68 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x2 - bl SetAnimBgAttribute - b _080B6F1E - .align 2, 0 -_080B6E68: .4byte 0x00003f42 -_080B6E6C: - cmp r4, 0x1 - bne _080B6E76 - movs r1, 0x80 - lsls r1, 2 - b _080B6E7A -_080B6E76: - movs r1, 0x80 - lsls r1, 3 -_080B6E7A: - movs r0, 0 - bl ClearGpuRegBits - b _080B6F1E -_080B6E82: - ldr r2, _080B6EC0 @ =gSprites - movs r0, 0x10 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - subs r1, 0x20 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r1, 0 - bge _080B6EA2 - movs r2, 0 -_080B6EA2: - cmp r4, 0x1 - bne _080B6EC4 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x4 - str r2, [sp, 0x4] - str r4, [sp, 0x8] - b _080B6EDE - .align 2, 0 -_080B6EC0: .4byte gSprites -_080B6EC4: - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x8 - str r2, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] - movs r2, 0x4 -_080B6EDE: - movs r3, 0x8 - bl sub_8088230 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x1C] - b _080B6F1E -_080B6EEC: - ldrh r0, [r6, 0x16] - ldr r3, _080B6F08 @ =0x000077ff - movs r1, 0x10 - movs r2, 0xC - bl BlendPalette - cmp r4, 0x1 - bne _080B6F0C - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl SetGpuRegBits - b _080B6F16 - .align 2, 0 -_080B6F08: .4byte 0x000077ff -_080B6F0C: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits -_080B6F16: - ldr r0, _080B6F2C @ =sub_80B6F30 - str r0, [r6] - movs r0, 0 - strh r0, [r6, 0x26] -_080B6F1E: - ldrh r0, [r6, 0x26] - adds r0, 0x1 - strh r0, [r6, 0x26] -_080B6F24: - add sp, 0x1C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B6F2C: .4byte sub_80B6F30 - thumb_func_end sub_80B6BE4 - - thumb_func_start sub_80B6F30 -sub_80B6F30: @ 80B6F30 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B6FB8 @ =gTasks - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - strh r0, [r4, 0x18] - cmp r0, 0 - bne _080B6F68 - ldr r1, _080B6FBC @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - strh r0, [r4, 0xC] -_080B6F68: - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _080B6F8A - ldr r1, _080B6FBC @ =gUnknown_825E074 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - movs r1, 0x10 - subs r1, r0 - strh r1, [r4, 0xE] -_080B6F8A: - ldrh r1, [r4, 0xE] - lsls r1, 8 - ldrh r0, [r4, 0xC] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x80 - bne _080B6FB2 - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080B6FC0 @ =sub_80B6FC4 - str r1, [r4] - adds r0, r5, 0 - bl _call_via_r1 -_080B6FB2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6FB8: .4byte gTasks -_080B6FBC: .4byte gUnknown_825E074 -_080B6FC0: .4byte sub_80B6FC4 - thumb_func_end sub_80B6F30 - - thumb_func_start sub_80B6FC4 -sub_80B6FC4: @ 80B6FC4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080B6FE8 @ =gTasks - adds r6, r0, r1 - movs r1, 0x26 - ldrsh r0, [r6, r1] - cmp r0, 0x5 - bls _080B6FDE - b _080B7148 -_080B6FDE: - lsls r0, 2 - ldr r1, _080B6FEC @ =_080B6FF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B6FE8: .4byte gTasks -_080B6FEC: .4byte _080B6FF0 - .align 2, 0 -_080B6FF0: - .4byte _080B7008 - .4byte _080B7024 - .4byte _080B7044 - .4byte _080B707C - .4byte _080B709C - .4byte _080B70E8 -_080B7008: - ldr r1, _080B701C @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] - ldrh r0, [r6, 0x16] - ldr r3, _080B7020 @ =0x000066e0 - movs r1, 0x10 - movs r2, 0xC - bl BlendPalette - b _080B7148 - .align 2, 0 -_080B701C: .4byte gUnknown_2039600 -_080B7020: .4byte 0x000066e0 -_080B7024: - ldr r1, _080B7040 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - movs r1, 0 - movs r0, 0x10 - strh r0, [r6, 0xC] - strh r1, [r6, 0xE] - b _080B7148 - .align 2, 0 -_080B7040: .4byte 0x00003f44 -_080B7044: - ldrh r1, [r6, 0xC] - subs r1, 0x1 - strh r1, [r6, 0xC] - ldrh r0, [r6, 0xE] - adds r0, 0x1 - strh r0, [r6, 0xE] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0xE - ldrsh r0, [r6, r2] - cmp r0, 0xF - ble _080B714E - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x2 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x2 - bl SetAnimBgAttribute - b _080B7148 -_080B707C: - movs r0, 0x2 - bl sub_8075358 - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette - movs r0, 0x2 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute - movs r0, 0xC - strh r0, [r6, 0xA] - b _080B7148 -_080B709C: - ldrh r0, [r6, 0x14] - ldrb r2, [r6, 0xA] - ldr r4, _080B70C8 @ =0x000066e0 - movs r1, 0x10 - adds r3, r4, 0 - bl BlendPalette - ldrh r0, [r6, 0x16] - ldrb r2, [r6, 0xA] - movs r1, 0x10 - adds r3, r4, 0 - bl BlendPalette - ldrh r0, [r6, 0xA] - movs r2, 0xA - ldrsh r1, [r6, r2] - cmp r1, 0 - beq _080B70CC - subs r0, 0x1 - strh r0, [r6, 0xA] - b _080B714E - .align 2, 0 -_080B70C8: .4byte 0x000066e0 -_080B70CC: - strh r1, [r6, 0xA] - ldr r1, _080B70E4 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - b _080B7148 - .align 2, 0 -_080B70E4: .4byte 0x00003f44 -_080B70E8: - ldr r5, _080B7154 @ =gSprites - movs r1, 0x10 - ldrsh r0, [r6, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - movs r0, 0x3 - ldrb r2, [r6, 0x12] - ands r2, r0 - lsls r2, 2 - ldrb r4, [r1, 0x5] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r0, r4 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r2, 0x10 - ldrsh r1, [r6, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r3, r1 - strb r3, [r0, 0x1] - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x2 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080B7148: - ldrh r0, [r6, 0x26] - adds r0, 0x1 - strh r0, [r6, 0x26] -_080B714E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7154: .4byte gSprites - thumb_func_end sub_80B6FC4 - - thumb_func_start sub_80B7158 -sub_80B7158: @ 80B7158 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - ldr r2, _080B719C @ =gUnknown_2023D44 - ldr r1, _080B71A0 @ =gUnknown_2037F1A - ldrb r1, [r1] - adds r1, r2 - ldrb r1, [r1] - strh r1, [r0, 0x38] - movs r1, 0x80 - strh r1, [r0, 0x2E] - movs r1, 0xA - strh r1, [r0, 0x30] - ldr r2, _080B71A4 @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x32] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x34] - ldr r1, _080B71A8 @ =sub_80B71B0 - str r1, [r0, 0x1C] - ldr r2, _080B71AC @ =gSprites - movs r3, 0x38 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080B719C: .4byte gUnknown_2023D44 -_080B71A0: .4byte gUnknown_2037F1A -_080B71A4: .4byte gUnknown_2037F02 -_080B71A8: .4byte sub_80B71B0 -_080B71AC: .4byte gSprites - thumb_func_end sub_80B7158 - - thumb_func_start sub_80B71B0 -sub_80B71B0: @ 80B71B0 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - movs r1, 0x34 - ldrsh r3, [r5, r1] - cmp r3, 0 - beq _080B7218 - subs r0, 0x1 - strh r0, [r5, 0x34] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Sin - ldr r4, _080B7210 @ =gSprites - movs r1, 0x38 - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Cos - movs r1, 0x38 - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x26] - ldrh r0, [r5, 0x32] - ldrh r2, [r5, 0x2E] - adds r1, r0, r2 - strh r1, [r5, 0x2E] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080B724C - ldr r2, _080B7214 @ =0xffffff00 - adds r0, r1, r2 - strh r0, [r5, 0x2E] - b _080B724C - .align 2, 0 -_080B7210: .4byte gSprites -_080B7214: .4byte 0xffffff00 -_080B7218: - ldr r2, _080B7254 @ =gSprites - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x8 - strh r1, [r0, 0x22] - ldr r0, _080B7258 @ =move_anim_8074EE0 - str r0, [r5, 0x1C] -_080B724C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7254: .4byte gSprites -_080B7258: .4byte move_anim_8074EE0 - thumb_func_end sub_80B71B0 - - thumb_func_start sub_80B725C -sub_80B725C: @ 80B725C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B72A4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B72AC - ldr r2, _080B72A8 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r2, 0x6] - negs r0, r0 - strh r0, [r2, 0x6] - ldrh r0, [r2, 0x8] - negs r0, r0 - strh r0, [r2, 0x8] - adds r1, r2, 0 - b _080B72B6 - .align 2, 0 -_080B72A4: .4byte gUnknown_2037F1A -_080B72A8: .4byte gUnknown_2037F02 -_080B72AC: - ldr r1, _080B72EC @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] -_080B72B6: - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080B72F0 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080B72F4 @ =sub_8074E70 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B72EC: .4byte gUnknown_2037F02 -_080B72F0: .4byte move_anim_8074EE0 -_080B72F4: .4byte sub_8074E70 - thumb_func_end sub_80B725C - - thumb_func_start sub_80B72F8 -sub_80B72F8: @ 80B72F8 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8074FCC - ldr r4, _080B7350 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080B7354 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B735C - ldr r2, _080B7358 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x20] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r1, r0 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x32] - ldrh r1, [r2, 0x4] - subs r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r2, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - b _080B7386 - .align 2, 0 -_080B7350: .4byte gUnknown_2037F1B -_080B7354: .4byte gUnknown_2037F1A -_080B7358: .4byte gUnknown_2037F02 -_080B735C: - ldr r1, _080B73A0 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080B7386: - ldr r0, _080B73A0 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080B73A4 @ =sub_8075590 - str r0, [r5, 0x1C] - ldr r1, _080B73A8 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B73A0: .4byte gUnknown_2037F02 -_080B73A4: .4byte sub_8075590 -_080B73A8: .4byte move_anim_8074EE0 - thumb_func_end sub_80B72F8 - - thumb_func_start sub_80B73AC -sub_80B73AC: @ 80B73AC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080B73C0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B73C8 - ldr r4, _080B73C4 @ =gUnknown_2037F1A - b _080B73CA - .align 2, 0 -_080B73C0: .4byte gUnknown_2037F02 -_080B73C4: .4byte gUnknown_2037F1A -_080B73C8: - ldr r4, _080B740C @ =gUnknown_2037F1B -_080B73CA: - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080B7410 @ =gUnknown_2037F02 - movs r0, 0x2 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_8074FF8 - ldrh r0, [r4, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldr r0, _080B7414 @ =sub_8074F6C - str r0, [r5, 0x1C] - ldr r1, _080B7418 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B740C: .4byte gUnknown_2037F1B -_080B7410: .4byte gUnknown_2037F02 -_080B7414: .4byte sub_8074F6C -_080B7418: .4byte move_anim_8074EE0 - thumb_func_end sub_80B73AC - - thumb_func_start sub_80B741C -sub_80B741C: @ 80B741C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B7444 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B7436 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080B7436: - adds r0, r4, 0 - bl sub_80B72F8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7444: .4byte gUnknown_2037F1A - thumb_func_end sub_80B741C - - thumb_func_start sub_80B7448 -sub_80B7448: @ 80B7448 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r4, _080B749C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r6, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - strh r5, [r6, 0x36] - movs r0, 0x1 - strh r0, [r6, 0x38] - ldr r0, _080B74A0 @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r6, 0x3A] - ldr r4, _080B74A4 @ =sBattler_AI - ldrb r0, [r4] - movs r1, 0 - bl sub_8076B2C - lsls r7, r0, 16 - lsrs r5, r7, 16 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8076B2C - lsls r1, r0, 16 - lsrs r0, r1, 16 - cmp r5, r0 - bls _080B74A8 - lsrs r0, r7, 17 - b _080B74AA - .align 2, 0 -_080B749C: .4byte gUnknown_2037F1A -_080B74A0: .4byte gUnknown_2037F02 -_080B74A4: .4byte sBattler_AI -_080B74A8: - lsrs r0, r1, 17 -_080B74AA: - strh r0, [r6, 0x3C] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Cos - strh r0, [r6, 0x24] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Sin - strh r0, [r6, 0x26] - ldr r0, _080B74D4 @ =sub_80B74D8 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B74D4: .4byte sub_80B74D8 - thumb_func_end sub_80B7448 - - thumb_func_start sub_80B74D8 -sub_80B74D8: @ 80B74D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080B74EA - cmp r5, 0x1 - beq _080B7556 - b _080B75DA -_080B74EA: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080B753C - strh r5, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B753C - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080B753C - movs r0, 0x10 - strh r0, [r4, 0x38] -_080B753C: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080B75DA - movs r0, 0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080B75DA -_080B7556: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x95 - bgt _080B757E - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x95 - ble _080B757E - movs r0, 0x96 - strh r0, [r4, 0x3C] -_080B757E: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080B75C6 - movs r0, 0 - strh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080B75C6 - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080B75C6 - movs r0, 0x10 - strh r0, [r4, 0x38] -_080B75C6: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B75DA - adds r0, r4, 0 - bl DestroyAnimSprite -_080B75DA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B74D8 - - thumb_func_start sub_80B75E0 -sub_80B75E0: @ 80B75E0 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B760C @ =gTasks - adds r4, r1, r0 - ldr r0, _080B7610 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B761C - ldr r0, _080B7614 @ =0x04000014 - str r0, [sp] - ldr r0, _080B7618 @ =gUnknown_2022978 - b _080B7622 - .align 2, 0 -_080B760C: .4byte gTasks -_080B7610: .4byte gUnknown_2037F1A -_080B7614: .4byte 0x04000014 -_080B7618: .4byte gUnknown_2022978 -_080B761C: - ldr r0, _080B7698 @ =0x04000018 - str r0, [sp] - ldr r0, _080B769C @ =gUnknown_202297C -_080B7622: - ldrh r0, [r0] - strh r0, [r4, 0xC] - ldr r0, _080B76A0 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r5, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r5, [r0, 0x9] - ldr r0, _080B76A4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0xE] - adds r0, 0x20 - strh r0, [r4, 0x10] - cmp r1, 0 - bge _080B7652 - strh r5, [r4, 0xE] -_080B7652: - ldrh r3, [r4, 0xE] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bgt _080B7680 - ldr r5, _080B76A8 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080B7664: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - ble _080B7664 -_080B7680: - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldr r0, _080B76AC @ =sub_80B76B0 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7698: .4byte 0x04000018 -_080B769C: .4byte gUnknown_202297C -_080B76A0: .4byte 0xa2600001 -_080B76A4: .4byte gUnknown_2037F1A -_080B76A8: .4byte gUnknown_2038700 -_080B76AC: .4byte sub_80B76B0 - thumb_func_end sub_80B75E0 - - thumb_func_start sub_80B76B0 -sub_80B76B0: @ 80B76B0 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080B76D4 @ =gTasks - adds r2, r0, r1 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _080B7766 - lsls r0, 2 - ldr r1, _080B76D8 @ =_080B76DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B76D4: .4byte gTasks -_080B76D8: .4byte _080B76DC - .align 2, 0 -_080B76DC: - .4byte _080B76F0 - .4byte _080B7712 - .4byte _080B7722 - .4byte _080B774E - .4byte _080B7760 -_080B76F0: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B7746 - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - adds r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080B7746 - b _080B7740 -_080B7712: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080B7746 - b _080B7740 -_080B7722: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B7746 - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - subs r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _080B7746 -_080B7740: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_080B7746: - adds r0, r2, 0 - bl sub_80B776C - b _080B7766 -_080B774E: - ldr r1, _080B775C @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080B7766 - .align 2, 0 -_080B775C: .4byte gUnknown_2039600 -_080B7760: - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080B7766: - pop {r0} - bx r0 - thumb_func_end sub_80B76B0 - - thumb_func_start sub_80B776C -sub_80B776C: @ 80B776C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldrh r3, [r5, 0x12] - ldrh r4, [r5, 0xE] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r4, r0 - bgt _080B77C2 - ldr r7, _080B77D8 @ =gUnknown_2038700 - mov r12, r7 - ldr r0, _080B77DC @ =gUnknown_825E074 - mov r8, r0 - ldr r6, _080B77E0 @ =gUnknown_2039600 -_080B778A: - lsls r2, r4, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - lsls r0, r3, 1 - add r0, r8 - movs r7, 0 - ldrsh r1, [r0, r7] - movs r7, 0x14 - ldrsh r0, [r5, r7] - muls r0, r1 - asrs r0, 7 - ldrh r1, [r5, 0xC] - adds r0, r1 - strh r0, [r2] - adds r3, 0x8 - movs r0, 0xFF - ands r3, r0 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0x10 - ldrsh r0, [r5, r7] - cmp r4, r0 - ble _080B778A -_080B77C2: - ldrh r0, [r5, 0x12] - adds r0, 0x9 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x12] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B77D8: .4byte gUnknown_2038700 -_080B77DC: .4byte gUnknown_825E074 -_080B77E0: .4byte gUnknown_2039600 - thumb_func_end sub_80B776C - - thumb_func_start sub_80B77E4 -sub_80B77E4: @ 80B77E4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - ldr r5, _080B7884 @ =gUnknown_2037F02 - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - movs r1, 0x5 - bl __divsi3 - adds r6, r0, 0 - ldr r1, _080B7888 @ =gUnknown_2037F1A - mov r8, r1 - ldrb r0, [r1] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r5, 0x8] - adds r0, r3 - strh r0, [r4, 0x22] - movs r1, 0x2 - ldrsh r0, [r5, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Cos - strh r0, [r4, 0x30] - movs r3, 0x2 - ldrsh r0, [r5, r3] - lsls r6, 16 - asrs r6, 16 - adds r1, r6, 0 - bl Sin - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - ldrh r2, [r5] - adds r3, r2, 0 - muls r3, r1 - adds r1, r3, 0 - ldrh r3, [r4, 0x20] - adds r1, r3 - strh r1, [r4, 0x20] - adds r1, r2, 0 - muls r1, r0 - adds r0, r1, 0 - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x34] - ldr r0, _080B788C @ =sub_80B7894 - str r0, [r4, 0x1C] - adds r4, 0x2E - ldr r2, _080B7890 @ =gUnknown_20399A4 - movs r1, 0x6 -_080B786C: - ldrh r0, [r4] - strh r0, [r2] - adds r4, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080B786C - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7884: .4byte gUnknown_2037F02 -_080B7888: .4byte gUnknown_2037F1A -_080B788C: .4byte sub_80B7894 -_080B7890: .4byte gUnknown_20399A4 - thumb_func_end sub_80B77E4 - - thumb_func_start sub_80B7894 -sub_80B7894: @ 80B7894 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080B78D8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B78D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7894 - - thumb_func_start sub_80B78E0 -sub_80B78E0: @ 80B78E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080B791C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080B7920 @ =gUnknown_2037F02 - ldrh r1, [r1] - strh r1, [r0, 0x8] - ldr r1, _080B7924 @ =gUnknown_2037F1A - ldrb r4, [r1] - movs r1, 0x10 - strh r1, [r0, 0xA] - movs r0, 0x52 - bl SetGpuReg - adds r0, r4, 0 - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B792C - ldr r1, _080B7928 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - b _080B7934 - .align 2, 0 -_080B791C: .4byte gTasks -_080B7920: .4byte gUnknown_2037F02 -_080B7924: .4byte gUnknown_2037F1A -_080B7928: .4byte 0x00003f42 -_080B792C: - ldr r1, _080B7948 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg -_080B7934: - ldr r0, _080B794C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080B7950 @ =sub_80B7954 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7948: .4byte 0x00003f44 -_080B794C: .4byte gTasks -_080B7950: .4byte sub_80B7954 - thumb_func_end sub_80B78E0 - - thumb_func_start sub_80B7954 -sub_80B7954: @ 80B7954 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080B79C0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r6, r0, r1 - ldrh r0, [r6, 0xA] - lsrs r4, r0, 8 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC - ldrsh r0, [r6, r2] - ldrb r2, [r6, 0x8] - cmp r0, r2 - bne _080B79D0 - adds r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 8 - orrs r1, r0 - movs r5, 0 - strh r1, [r6, 0xA] - ldrh r1, [r6, 0xA] - movs r0, 0x52 - bl SetGpuReg - strh r5, [r6, 0xC] - cmp r4, 0x10 - bne _080B79D6 - ldr r2, _080B79C4 @ =gSprites - ldr r1, _080B79C8 @ =gUnknown_2023D44 - ldr r0, _080B79CC @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r7, 0 - bl DestroyAnimVisualTask - b _080B79D6 - .align 2, 0 -_080B79C0: .4byte gTasks -_080B79C4: .4byte gSprites -_080B79C8: .4byte gUnknown_2023D44 -_080B79CC: .4byte gUnknown_2037F1A -_080B79D0: - ldrh r0, [r6, 0xC] - adds r0, 0x1 - strh r0, [r6, 0xC] -_080B79D6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B7954 - - thumb_func_start sub_80B79DC -sub_80B79DC: @ 80B79DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B7A08 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldr r0, _080B7A0C @ =gUnknown_2037F02 - ldrh r0, [r0] - strh r0, [r2, 0x8] - movs r1, 0x80 - lsls r1, 5 - strh r1, [r2, 0xA] - ldr r0, _080B7A10 @ =sub_80B7A14 - str r0, [r2] - movs r0, 0x52 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_080B7A08: .4byte gTasks -_080B7A0C: .4byte gUnknown_2037F02 -_080B7A10: .4byte sub_80B7A14 - thumb_func_end sub_80B79DC - - thumb_func_start sub_80B7A14 -sub_80B7A14: @ 80B7A14 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080B7A70 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r6, r0, r1 - ldrh r0, [r6, 0xA] - lsrs r4, r0, 8 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC - ldrsh r0, [r6, r2] - ldrb r2, [r6, 0x8] - cmp r0, r2 - bne _080B7A74 - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 8 - orrs r1, r0 - movs r5, 0 - strh r1, [r6, 0xA] - ldrh r1, [r6, 0xA] - movs r0, 0x52 - bl SetGpuReg - strh r5, [r6, 0xC] - cmp r4, 0 - bne _080B7A7A - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r7, 0 - bl DestroyAnimVisualTask - b _080B7A7A - .align 2, 0 -_080B7A70: .4byte gTasks -_080B7A74: - ldrh r0, [r6, 0xC] - adds r0, 0x1 - strh r0, [r6, 0xC] -_080B7A7A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B7A14 - - thumb_func_start sub_80B7A80 -sub_80B7A80: @ 80B7A80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080B7AAC @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B7AB4 - ldr r1, _080B7AB0 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - b _080B7ABC - .align 2, 0 -_080B7AAC: .4byte gUnknown_2037F1A -_080B7AB0: .4byte 0x00003f42 -_080B7AB4: - ldr r1, _080B7AC8 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg -_080B7ABC: - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7AC8: .4byte 0x00003f44 - thumb_func_end sub_80B7A80 - - thumb_func_start sub_80B7ACC -sub_80B7ACC: @ 80B7ACC - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080B7B38 @ =gUnknown_2037F1B - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldr r5, _080B7B3C @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - movs r0, 0x7E - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80754B8 - ldrh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - negs r0, r0 - strh r0, [r4, 0x36] - ldr r0, _080B7B40 @ =0x0000ffd8 - strh r0, [r4, 0x3A] - ldr r1, _080B7B44 @ =sub_80B7B48 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7B38: .4byte gUnknown_2037F1B -_080B7B3C: .4byte gUnknown_2037F1A -_080B7B40: .4byte 0x0000ffd8 -_080B7B44: .4byte sub_80B7B48 - thumb_func_end sub_80B7ACC - - thumb_func_start sub_80B7B48 -sub_80B7B48: @ 80B7B48 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r5, [r4, 0x30] - ldrh r0, [r4, 0x34] - adds r2, r5, r0 - strh r2, [r4, 0x34] - ldrh r3, [r4, 0x32] - ldrh r6, [r4, 0x36] - adds r1, r3, r6 - strh r1, [r4, 0x36] - lsls r0, r2, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - movs r6, 0x3C - ldrsh r0, [r4, r6] - cmp r0, 0 - bne _080B7B8A - adds r0, r2, r5 - strh r0, [r4, 0x34] - adds r1, r3 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] -_080B7B8A: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r6, [r4, 0x26] - adds r0, r6 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - cmp r0, 0x7F - ble _080B7BBA - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - adds r0, 0x14 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] -_080B7BBA: - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080B7BCC - adds r0, r4, 0 - bl DestroyAnimSprite -_080B7BCC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B7B48 - - thumb_func_start sub_80B7BD4 -sub_80B7BD4: @ 80B7BD4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B7C08 @ =gUnknown_2037F02 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x32] - ldr r0, _080B7C0C @ =sub_80B7C10 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7C08: .4byte gUnknown_2037F02 -_080B7C0C: .4byte sub_80B7C10 - thumb_func_end sub_80B7BD4 - - thumb_func_start sub_80B7C10 -sub_80B7C10: @ 80B7C10 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _080B7C46 - ldr r0, _080B7C4C @ =sub_80B7C50 - str r0, [r2, 0x1C] -_080B7C46: - pop {r0} - bx r0 - .align 2, 0 -_080B7C4C: .4byte sub_80B7C50 - thumb_func_end sub_80B7C10 - - thumb_func_start sub_80B7C50 -sub_80B7C50: @ 80B7C50 - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x36] - ldrh r0, [r3, 0x2E] - subs r1, r0 - strh r1, [r3, 0x36] - ldrh r0, [r3, 0x38] - ldrh r2, [r3, 0x30] - subs r0, r2 - strh r0, [r3, 0x38] - lsls r1, 16 - asrs r1, 24 - strh r1, [r3, 0x24] - lsls r0, 16 - asrs r0, 24 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080B7C82 - adds r0, r3, 0 - bl move_anim_8074EE0 -_080B7C82: - pop {r0} - bx r0 - thumb_func_end sub_80B7C50 - - thumb_func_start sub_80B7C88 -sub_80B7C88: @ 80B7C88 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080B7C9C @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080B7CA4 - ldr r0, _080B7CA0 @ =gUnknown_2037F1A - b _080B7CA6 - .align 2, 0 -_080B7C9C: .4byte gUnknown_2037F02 -_080B7CA0: .4byte gUnknown_2037F1A -_080B7CA4: - ldr r0, _080B7CD4 @ =gUnknown_2037F1B -_080B7CA6: - ldrb r5, [r0] - movs r6, 0x14 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x4 - ldr r7, _080B7CD8 @ =0x000003ff - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080B7CDC @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x2 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080B7D04 - cmp r0, 0x1 - bgt _080B7CE0 - cmp r0, 0 - beq _080B7CEA - b _080B7D58 - .align 2, 0 -_080B7CD4: .4byte gUnknown_2037F1B -_080B7CD8: .4byte 0x000003ff -_080B7CDC: .4byte 0xfffffc00 -_080B7CE0: - cmp r0, 0x2 - beq _080B7D1E - cmp r0, 0x3 - beq _080B7D36 - b _080B7D58 -_080B7CEA: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r4, 0x22] - b _080B7D58 -_080B7D04: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8076B2C - subs r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x10 - strh r0, [r4, 0x22] - b _080B7D58 -_080B7D1E: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x8 - b _080B7D4C -_080B7D36: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8076B2C - adds r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8076B2C - adds r0, 0x10 -_080B7D4C: - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r6, 0xEC -_080B7D58: - movs r0, 0x20 - strh r0, [r4, 0x2E] - lsls r0, r6, 24 - asrs r0, 24 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r0, 0xC - strh r0, [r4, 0x36] - ldr r0, _080B7D80 @ =0x0000fff4 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldr r0, _080B7D84 @ =sub_80B7D88 - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7D80: .4byte 0x0000fff4 -_080B7D84: .4byte sub_80B7D88 - thumb_func_end sub_80B7C88 - - thumb_func_start sub_80B7D88 -sub_80B7D88: @ 80B7D88 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B7D9C - adds r0, r4, 0 - bl move_anim_8074EE0 -_080B7D9C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7D88 - - thumb_func_start sub_80B7DA4 -sub_80B7DA4: @ 80B7DA4 - push {r4-r7,lr} - sub sp, 0x1C - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B7E08 @ =gTasks - adds r5, r1, r0 - ldr r4, _080B7E0C @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - strh r1, [r5, 0x12] - strh r0, [r5, 0x10] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r5, 0x24] - adds r0, 0x20 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B7E14 - ldr r0, _080B7E10 @ =0x0000fff4 - b _080B7E16 - .align 2, 0 -_080B7E08: .4byte gTasks -_080B7E0C: .4byte gUnknown_2037F1A -_080B7E10: .4byte 0x0000fff4 -_080B7E14: - ldr r0, _080B7E60 @ =0x0000ffc0 -_080B7E16: - strh r0, [r5, 0x18] - ldr r0, _080B7E64 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080B7E78 - add r4, sp, 0xC - adds r0, r4, 0 - bl sub_80752A0 - ldr r0, _080B7E68 @ =gUnknown_202297A - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080B7E6C @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - ldrb r1, [r4, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - ldr r0, _080B7E70 @ =0x04000016 - str r0, [sp] - movs r7, 0x2 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B7EA8 - ldr r1, _080B7E74 @ =gUnknown_202297C - b _080B7EA2 - .align 2, 0 -_080B7E60: .4byte 0x0000ffc0 -_080B7E64: .4byte gUnknown_2037F1A -_080B7E68: .4byte gUnknown_202297A -_080B7E6C: .4byte 0x00003f42 -_080B7E70: .4byte 0x04000016 -_080B7E74: .4byte gUnknown_202297C -_080B7E78: - ldr r0, _080B7F30 @ =gUnknown_202297E - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080B7F34 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette - ldr r0, _080B7F38 @ =0x0400001a - str r0, [sp] - movs r7, 0x4 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B7EA8 - ldr r1, _080B7F3C @ =gUnknown_2022978 -_080B7EA2: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] -_080B7EA8: - ldr r0, _080B7F40 @ =0xa2600001 - str r0, [sp, 0x4] - mov r2, sp - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x8] - mov r0, sp - strb r1, [r0, 0x9] - strh r1, [r5, 0x1E] - movs r0, 0x10 - strh r0, [r5, 0x20] - strh r1, [r5, 0x8] - strh r1, [r5, 0xA] - strh r1, [r5, 0xC] - movs r0, 0x3 - bl sub_80B856C - movs r3, 0 - ldr r4, _080B7F44 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080B7ED4: - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x1C] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080B7ED4 - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - movs r0, 0x3F - eors r7, r0 - movs r1, 0xFC - lsls r1, 6 - adds r0, r1, 0 - orrs r7, r0 - movs r0, 0x4A - adds r1, r7, 0 - bl SetGpuReg - ldr r1, _080B7F48 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r2, _080B7F4C @ =gUnknown_2022984 - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080B7F50 @ =gUnknown_2022986 - movs r0, 0xA0 - strh r0, [r1] - ldr r0, _080B7F54 @ =sub_80B7F58 - str r0, [r5] - add sp, 0x1C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7F30: .4byte gUnknown_202297E -_080B7F34: .4byte 0x00003f44 -_080B7F38: .4byte 0x0400001a -_080B7F3C: .4byte gUnknown_2022978 -_080B7F40: .4byte 0xa2600001 -_080B7F44: .4byte gUnknown_2038700 -_080B7F48: .4byte 0x00003f3f -_080B7F4C: .4byte gUnknown_2022984 -_080B7F50: .4byte gUnknown_2022986 -_080B7F54: .4byte sub_80B7F58 - thumb_func_end sub_80B7DA4 - - thumb_func_start sub_80B7F58 -sub_80B7F58: @ 80B7F58 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B7F7C @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080B7F72 - b _080B806A -_080B7F72: - lsls r0, 2 - ldr r1, _080B7F80 @ =_080B7F84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B7F7C: .4byte gTasks -_080B7F80: .4byte _080B7F84 - .align 2, 0 -_080B7F84: - .4byte _080B7F98 - .4byte _080B7FFA - .4byte _080B8014 - .4byte _080B8050 - .4byte _080B8064 -_080B7F98: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B806A - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B7FC8 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0xC - beq _080B7FD6 - adds r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080B7FD6 -_080B7FC8: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - beq _080B7FD6 - subs r0, r1, 0x1 - strh r0, [r4, 0x20] -_080B7FD6: - ldrh r1, [r4, 0x20] - lsls r1, 8 - ldrh r0, [r4, 0x1E] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0xC - bne _080B806A - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _080B806A - b _080B8056 -_080B7FFA: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80B843C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _080B806A - b _080B8056 -_080B8014: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80B843C - ldrh r1, [r4, 0x24] - adds r1, 0x4 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r2, r0, 0x4 - strh r2, [r4, 0x26] - lsls r1, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080B8036 - strh r2, [r4, 0x24] -_080B8036: - ldr r3, _080B804C @ =gUnknown_2022984 - ldrh r2, [r4, 0x24] - lsls r0, r2, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r3] - lsls r2, 16 - lsls r1, 16 - cmp r2, r1 - bne _080B806A - b _080B8056 - .align 2, 0 -_080B804C: .4byte gUnknown_2022984 -_080B8050: - ldr r1, _080B8060 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B8056: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B806A - .align 2, 0 -_080B8060: .4byte gUnknown_2039600 -_080B8064: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B806A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7F58 - - thumb_func_start sub_80B8070 -sub_80B8070: @ 80B8070 - push {r4-r7,lr} - sub sp, 0x1C - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080B8098 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080B808C - b _080B829E -_080B808C: - lsls r0, 2 - ldr r1, _080B809C @ =_080B80A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B8098: .4byte gTasks -_080B809C: .4byte _080B80A0 - .align 2, 0 -_080B80A0: - .4byte _080B80B4 - .4byte _080B8138 - .4byte _080B817C - .4byte _080B81E8 - .4byte _080B8250 -_080B80B4: - bl sub_8073788 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B80F0 - ldr r0, _080B80E4 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B80E8 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080B80EC @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _080B829E - .align 2, 0 -_080B80E4: .4byte gUnknown_2022984 -_080B80E8: .4byte gUnknown_2022986 -_080B80EC: .4byte 0x00003f3f -_080B80F0: - ldr r0, _080B8110 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080B811C - ldr r1, _080B8114 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _080B8118 @ =gUnknown_202297C - b _080B8126 - .align 2, 0 -_080B8110: .4byte gUnknown_2037F1B -_080B8114: .4byte 0x00003f42 -_080B8118: .4byte gUnknown_202297C -_080B811C: - ldr r1, _080B8130 @ =0x00003f44 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _080B8134 @ =gUnknown_2022978 -_080B8126: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] - b _080B823C - .align 2, 0 -_080B8130: .4byte 0x00003f44 -_080B8134: .4byte gUnknown_2022978 -_080B8138: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080B8160 - mov r0, sp - bl sub_80752A0 - ldr r0, _080B815C @ =gUnknown_202297A - ldrh r0, [r0] - strh r0, [r5, 0x1C] - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - b _080B8170 - .align 2, 0 -_080B815C: .4byte gUnknown_202297A -_080B8160: - ldr r0, _080B8178 @ =gUnknown_202297E - ldrh r0, [r0] - strh r0, [r5, 0x1C] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette -_080B8170: - movs r0, 0x3 - bl sub_80B856C - b _080B823C - .align 2, 0 -_080B8178: .4byte gUnknown_202297E -_080B817C: - ldr r4, _080B81C8 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8076B2C - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x4 - strh r1, [r5, 0x24] - adds r0, 0x4 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080B81D0 - ldr r0, _080B81CC @ =0x0000fff4 - b _080B81D2 - .align 2, 0 -_080B81C8: .4byte gUnknown_2037F1B -_080B81CC: .4byte 0x0000fff4 -_080B81D0: - ldr r0, _080B81E4 @ =0x0000ffc0 -_080B81D2: - strh r0, [r5, 0x18] - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x10] - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - movs r0, 0x8 - strh r0, [r5, 0x20] - b _080B823C - .align 2, 0 -_080B81E4: .4byte 0x0000ffc0 -_080B81E8: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080B81F8 - ldr r0, _080B81F4 @ =0x04000016 - b _080B81FA - .align 2, 0 -_080B81F4: .4byte 0x04000016 -_080B81F8: - ldr r0, _080B8244 @ =0x0400001a -_080B81FA: - str r0, [sp, 0x10] - movs r3, 0 - add r4, sp, 0x10 - ldr r6, _080B8248 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r7, r6, r0 -_080B8208: - lsls r1, r3, 1 - adds r2, r1, r6 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r2] - adds r1, r7 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080B8208 - ldr r1, _080B824C @ =0xa2600001 - str r1, [r4, 0x4] - movs r2, 0 - movs r0, 0x1 - strb r0, [r4, 0x8] - strb r2, [r4, 0x9] - ldr r0, [sp, 0x10] - ldr r2, [r4, 0x8] - bl sub_8087EE4 -_080B823C: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080B829E - .align 2, 0 -_080B8244: .4byte 0x0400001a -_080B8248: .4byte gUnknown_2038700 -_080B824C: .4byte 0xa2600001 -_080B8250: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080B8268 - ldr r1, _080B8264 @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - b _080B8270 - .align 2, 0 -_080B8264: .4byte 0x00003f3d -_080B8268: - ldr r1, _080B82A8 @ =0x00003f3b - movs r0, 0x4A - bl SetGpuReg -_080B8270: - ldr r1, _080B82AC @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r2, _080B82B0 @ =gUnknown_2022984 - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080B82B4 @ =gUnknown_2022986 - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - strh r0, [r5, 0xC] - ldr r1, _080B82B8 @ =0x0000080c - movs r0, 0x52 - bl SetGpuReg - ldr r0, _080B82BC @ =sub_80B82C0 - str r0, [r5] -_080B829E: - add sp, 0x1C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B82A8: .4byte 0x00003f3b -_080B82AC: .4byte 0x00003f3f -_080B82B0: .4byte gUnknown_2022984 -_080B82B4: .4byte gUnknown_2022986 -_080B82B8: .4byte 0x0000080c -_080B82BC: .4byte sub_80B82C0 - thumb_func_end sub_80B8070 - - thumb_func_start sub_80B82C0 -sub_80B82C0: @ 80B82C0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B82E4 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080B82DA - b _080B842A -_080B82DA: - lsls r0, 2 - ldr r1, _080B82E8 @ =_080B82EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B82E4: .4byte gTasks -_080B82E8: .4byte _080B82EC - .align 2, 0 -_080B82EC: - .4byte _080B8300 - .4byte _080B832C - .4byte _080B8394 - .4byte _080B83F6 - .4byte _080B8408 -_080B8300: - ldrh r0, [r4, 0x12] - adds r0, 0x8 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x16] - movs r3, 0x16 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080B8316 - strh r2, [r4, 0x12] -_080B8316: - adds r0, r4, 0 - bl sub_80B843C - movs r0, 0x12 - ldrsh r1, [r4, r0] - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080B832A - b _080B842A -_080B832A: - b _080B83FC -_080B832C: - movs r3, 0x26 - ldrsh r0, [r4, r3] - movs r2, 0x24 - ldrsh r1, [r4, r2] - subs r0, r1 - cmp r0, 0x3F - bgt _080B8348 - ldrh r0, [r4, 0x24] - subs r0, 0x4 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - adds r0, 0x4 - strh r0, [r4, 0x26] - b _080B834C -_080B8348: - movs r0, 0x1 - strh r0, [r4, 0xA] -_080B834C: - ldr r2, _080B8390 @ =gUnknown_2022984 - ldrh r0, [r4, 0x24] - lsls r0, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, 0x10] - adds r0, 0x8 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x14] - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080B836E - strh r2, [r4, 0x10] -_080B836E: - adds r0, r4, 0 - bl sub_80B843C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080B842A - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080B842A - movs r0, 0 - strh r0, [r4, 0xA] - b _080B83FC - .align 2, 0 -_080B8390: .4byte gUnknown_2022984 -_080B8394: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B842A - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B83C4 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B83D2 - subs r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080B83D2 -_080B83C4: - ldrh r1, [r4, 0x20] - movs r3, 0x20 - ldrsh r0, [r4, r3] - cmp r0, 0xF - bgt _080B83D2 - adds r0, r1, 0x1 - strh r0, [r4, 0x20] -_080B83D2: - ldrh r1, [r4, 0x20] - lsls r1, 8 - ldrh r0, [r4, 0x1E] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B842A - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080B842A - b _080B83FC -_080B83F6: - ldr r1, _080B8404 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B83FC: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B842A - .align 2, 0 -_080B8404: .4byte gUnknown_2039600 -_080B8408: - ldr r0, _080B8430 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B8434 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080B8438 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080B842A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8430: .4byte gUnknown_2022984 -_080B8434: .4byte gUnknown_2022986 -_080B8438: .4byte 0x00003f3f - thumb_func_end sub_80B82C0 - - thumb_func_start sub_80B843C -sub_80B843C: @ 80B843C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r0, [r6, 0x12] - ldrh r4, [r6, 0x10] - subs r0, r4 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080B8530 - movs r2, 0x22 - ldrsh r0, [r6, r2] - bl __divsi3 - mov r8, r0 - movs r3, 0x14 - ldrsh r0, [r6, r3] - lsls r5, r0, 8 - lsls r0, r4, 16 - movs r4, 0 - cmp r0, 0 - ble _080B849C - ldr r0, _080B8528 @ =gUnknown_2038700 - mov r12, r0 - ldr r7, _080B852C @ =gUnknown_2039600 -_080B8470: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r3, r0 - add r3, r12 - adds r1, r2, 0 - subs r1, 0x9F - ldrh r0, [r6, 0x1C] - subs r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r6, r1] - cmp r2, r0 - blt _080B8470 -_080B849C: - ldrh r4, [r6, 0x10] - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - bgt _080B84E6 - ldr r0, _080B8528 @ =gUnknown_2038700 - mov r12, r0 - ldr r7, _080B852C @ =gUnknown_2039600 -_080B84B0: - asrs r4, r3, 16 - cmp r4, 0 - blt _080B84D2 - asrs r1, r5, 8 - subs r1, r4 - lsls r3, r4, 1 - ldrb r2, [r7, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - add r3, r12 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r6, 0x1C] - adds r1, r2 - strh r1, [r3] -_080B84D2: - add r5, r8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080B84B0 -_080B84E6: - movs r3, 0x1C - ldrsh r0, [r6, r3] - adds r0, 0x9F - lsls r2, r4, 16 - asrs r1, r2, 16 - subs r5, r0, r1 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - bge _080B855E - ldr r7, _080B8528 @ =gUnknown_2038700 - ldr r4, _080B852C @ =gUnknown_2039600 -_080B84FE: - asrs r3, r2, 16 - cmp r3, 0 - blt _080B8516 - lsls r2, r3, 1 - ldrb r1, [r4, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - strh r5, [r2] - subs r5, 0x1 -_080B8516: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - blt _080B84FE - b _080B855E - .align 2, 0 -_080B8528: .4byte gUnknown_2038700 -_080B852C: .4byte gUnknown_2039600 -_080B8530: - movs r1, 0x1C - ldrsh r0, [r6, r1] - adds r5, r0, 0 - adds r5, 0x9F - movs r4, 0 - ldr r3, _080B8568 @ =gUnknown_2038700 - movs r2, 0xF0 - lsls r2, 3 - adds r6, r3, r2 -_080B8542: - lsls r0, r4, 16 - asrs r0, 16 - lsls r2, r0, 1 - adds r1, r2, r3 - strh r5, [r1] - adds r2, r6 - strh r5, [r2] - subs r5, 0x1 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080B8542 -_080B855E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8568: .4byte gUnknown_2038700 - thumb_func_end sub_80B843C - - thumb_func_start sub_80B856C -sub_80B856C: @ 80B856C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - ldr r7, _080B85B4 @ =gSprites - movs r1, 0x3 - ands r0, r1 - lsls r5, r0, 2 - movs r0, 0xD - negs r0, r0 - adds r6, r0, 0 -_080B8582: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080B85A2 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1, 0x5] - ands r0, r6 - orrs r0, r5 - strb r0, [r1, 0x5] -_080B85A2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080B8582 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B85B4: .4byte gSprites - thumb_func_end sub_80B856C - - thumb_func_start sub_80B85B8 -sub_80B85B8: @ 80B85B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r6, _080B8658 @ =gUnknown_2037F1A - ldrb r0, [r6] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - ldrb r0, [r6] - adds r1, r4, 0 - bl sub_8072E48 - ldr r0, _080B865C @ =gSprites - mov r9, r0 - ldr r0, _080B8660 @ =gUnknown_2023D44 - mov r8, r0 - ldrb r0, [r6] - add r0, r8 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - adds r1, 0x3E - ldrb r2, [r1] - movs r7, 0x5 - negs r7, r7 - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B8642 - ldrb r0, [r6] - eors r0, r5 - movs r1, 0x1 - eors r4, r1 - adds r1, r4, 0 - bl sub_8072E48 - ldrb r0, [r6] - eors r0, r5 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r7, 0 - ands r1, r2 - strb r1, [r0] -_080B8642: - mov r0, r10 - bl DestroyAnimVisualTask - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8658: .4byte gUnknown_2037F1A -_080B865C: .4byte gSprites -_080B8660: .4byte gUnknown_2023D44 - thumb_func_end sub_80B85B8 - - thumb_func_start sub_80B8664 -sub_80B8664: @ 80B8664 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _080B86AC @ =gUnknown_2037F1A - ldrb r0, [r4] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r5, 0 - bl sub_8073128 - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B86A0 - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8073128 -_080B86A0: - adds r0, r6, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B86AC: .4byte gUnknown_2037F1A - thumb_func_end sub_80B8664 - - thumb_func_start sub_80B86B0 -sub_80B86B0: @ 80B86B0 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080B86E0 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080B86E4 @ =sub_8074F6C - str r0, [r4, 0x1C] - ldr r1, _080B86E8 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B86E0: .4byte gUnknown_2037F02 -_080B86E4: .4byte sub_8074F6C -_080B86E8: .4byte DestroyAnimSprite - thumb_func_end sub_80B86B0 - - thumb_func_start sub_80B86EC -sub_80B86EC: @ 80B86EC - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - ldr r0, _080B87EC @ =gUnknown_2022984 - strh r6, [r0] - ldr r0, _080B87F0 @ =gUnknown_2022986 - strh r6, [r0] - ldr r1, _080B87F4 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080B87F8 @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - movs r1, 0x80 - lsls r1, 8 - movs r0, 0 - bl SetGpuRegBits - ldr r1, _080B87FC @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _080B8800 @ =0x00000c08 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B8750 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080B8750: - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080B87CA - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B87CA - ldr r4, _080B8804 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080B8780 - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - bne _080B87CA -_080B8780: - ldrb r0, [r4] - movs r5, 0x2 - eors r0, r5 - bl sub_8072DF0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B87CA - ldr r3, _080B8808 @ =gSprites - ldr r1, _080B880C @ =gUnknown_2023D44 - ldrb r0, [r4] - eors r0, r5 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r6, 0x1 -_080B87CA: - ldr r4, _080B8804 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B8818 - ldr r1, _080B8810 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080B8814 @ =gEnemyParty - b _080B8828 - .align 2, 0 -_080B87EC: .4byte gUnknown_2022984 -_080B87F0: .4byte gUnknown_2022986 -_080B87F4: .4byte 0x00003f3f -_080B87F8: .4byte 0x00003f3d -_080B87FC: .4byte 0x00003f42 -_080B8800: .4byte 0x00000c08 -_080B8804: .4byte gUnknown_2037F1A -_080B8808: .4byte gSprites -_080B880C: .4byte gUnknown_2023D44 -_080B8810: .4byte gBattlerPartyIndexes -_080B8814: .4byte gEnemyParty -_080B8818: - ldr r1, _080B88B8 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080B88BC @ =gPlayerParty -_080B8828: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B88C0 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8076E34 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080B88C4 @ =gFile_graphics_battle_anims_masks_metal_shine_tilemap - bl sub_807543C - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080B88C8 @ =gFile_graphics_battle_anims_masks_metal_shine_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080B88CC @ =gFile_graphics_battle_anims_masks_metal_shine_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r2, _080B88D0 @ =gUnknown_2022978 - ldr r0, _080B88D4 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x60 - strh r0, [r2] - ldr r2, _080B88D8 @ =gUnknown_202297A - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - ldr r2, _080B88DC @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080B88E0 - adds r0, r1, 0 - movs r1, 0 - bl sub_8075B48 - b _080B88EC - .align 2, 0 -_080B88B8: .4byte gBattlerPartyIndexes -_080B88BC: .4byte gPlayerParty -_080B88C0: .4byte gUnknown_2037F1A -_080B88C4: .4byte gFile_graphics_battle_anims_masks_metal_shine_tilemap -_080B88C8: .4byte gFile_graphics_battle_anims_masks_metal_shine_sheet -_080B88CC: .4byte gFile_graphics_battle_anims_masks_metal_shine_palette -_080B88D0: .4byte gUnknown_2022978 -_080B88D4: .4byte gSprites -_080B88D8: .4byte gUnknown_202297A -_080B88DC: .4byte gUnknown_2037F02 -_080B88E0: - lsls r0, r1, 4 - ldrh r3, [r2, 0x4] - movs r1, 0x10 - movs r2, 0xB - bl BlendPalette -_080B88EC: - ldr r1, _080B8914 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r2, _080B8918 @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0xE] - strh r6, [r0, 0x14] - ldr r1, _080B891C @ =sub_80B8920 - str r1, [r0] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8914: .4byte gTasks -_080B8918: .4byte gUnknown_2037F02 -_080B891C: .4byte sub_80B8920 - thumb_func_end sub_80B86EC - - thumb_func_start sub_80B8920 -sub_80B8920: @ 80B8920 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080B89E8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x4 - movs r5, 0 - strh r0, [r4, 0x1C] - ldr r2, _080B89EC @ =gUnknown_2022978 - ldrh r3, [r2] - subs r1, r3, 0x4 - strh r1, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x80 - beq _080B894E - b _080B8A5E -_080B894E: - strh r5, [r4, 0x1C] - adds r0, r3, 0 - adds r0, 0x7C - strh r0, [r2] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080B89FC - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080B89F0 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B8990 - adds r0, r1, 0 - movs r1, 0x1 - bl sub_8075B48 -_080B8990: - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - bl sub_8075358 - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080B8A5E - ldr r2, _080B89F4 @ =gUnknown_2023D44 - ldr r0, _080B89F8 @ =gUnknown_2037F1A - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - b _080B8A5E - .align 2, 0 -_080B89E8: .4byte gTasks -_080B89EC: .4byte gUnknown_2022978 -_080B89F0: .4byte gSprites -_080B89F4: .4byte gUnknown_2023D44 -_080B89F8: .4byte gUnknown_2037F1A -_080B89FC: - cmp r0, 0x3 - bne _080B8A5E - ldr r0, _080B8A68 @ =gUnknown_2022984 - strh r5, [r0] - ldr r0, _080B8A6C @ =gUnknown_2022986 - strh r5, [r0] - ldr r4, _080B8A70 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080B8A2E - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080B8A2E: - movs r0, 0 - bl GetGpuReg - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - eors r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080B8A5E: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B8A68: .4byte gUnknown_2022984 -_080B8A6C: .4byte gUnknown_2022986 -_080B8A70: .4byte 0x00003f3f - thumb_func_end sub_80B8920 - - thumb_func_start sub_80B8A74 -sub_80B8A74: @ 80B8A74 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080B8A94 @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0x7 - bhi _080B8AD8 - lsls r0, r1, 2 - ldr r1, _080B8A98 @ =_080B8A9C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B8A94: .4byte gUnknown_2037F02 -_080B8A98: .4byte _080B8A9C - .align 2, 0 -_080B8A9C: - .4byte _080B8ABC - .4byte _080B8ABC - .4byte _080B8ABC - .4byte _080B8ABC - .4byte _080B8AC8 - .4byte _080B8ACC - .4byte _080B8AD0 - .4byte _080B8AD4 -_080B8ABC: - ldrb r0, [r2] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - b _080B8ADA -_080B8AC8: - movs r4, 0 - b _080B8AE0 -_080B8ACC: - movs r4, 0x2 - b _080B8AE0 -_080B8AD0: - movs r4, 0x1 - b _080B8AE0 -_080B8AD4: - movs r4, 0x3 - b _080B8AE0 -_080B8AD8: - movs r2, 0xFF -_080B8ADA: - movs r0, 0 - cmp r0, 0 - beq _080B8B06 -_080B8AE0: - adds r0, r4, 0 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B8B04 - ldr r0, _080B8B00 @ =gUnknown_2023D44 - adds r0, r4, r0 - ldrb r2, [r0] - b _080B8B06 - .align 2, 0 -_080B8B00: .4byte gUnknown_2023D44 -_080B8B04: - movs r2, 0xFF -_080B8B06: - cmp r2, 0xFF - beq _080B8B22 - ldr r1, _080B8B30 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - ldr r1, _080B8B34 @ =gUnknown_2037F02 - ldrb r1, [r1, 0x2] - bl sub_8075B48 -_080B8B22: - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8B30: .4byte gSprites -_080B8B34: .4byte gUnknown_2037F02 - thumb_func_end sub_80B8A74 - - thumb_func_start sub_80B8B38 -sub_80B8B38: @ 80B8B38 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080B8B64 @ =gUnknown_2037F16 - ldrb r0, [r2] - cmp r0, 0x1 - bhi _080B8B4C - ldr r1, _080B8B68 @ =gUnknown_2037F02 - movs r0, 0 - strh r0, [r1, 0xE] -_080B8B4C: - ldrb r0, [r2] - cmp r0, 0x2 - bne _080B8B58 - ldr r1, _080B8B68 @ =gUnknown_2037F02 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080B8B58: - adds r0, r3, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080B8B64: .4byte gUnknown_2037F16 -_080B8B68: .4byte gUnknown_2037F02 - thumb_func_end sub_80B8B38 - - thumb_func_start sub_80B8B6C -sub_80B8B6C: @ 80B8B6C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B8BC4 @ =gUnknown_2037F1A - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r5, _080B8BC8 @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080B8BCC @ =0x0000ffd8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_8075068 - ldr r0, _080B8BD0 @ =sub_80B8BD4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8BC4: .4byte gUnknown_2037F1A -_080B8BC8: .4byte gUnknown_2037F1B -_080B8BCC: .4byte 0x0000ffd8 -_080B8BD0: .4byte sub_80B8BD4 - thumb_func_end sub_80B8B6C - - thumb_func_start sub_80B8BD4 -sub_80B8BD4: @ 80B8BD4 - push {r4,r5,lr} - adds r5, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B8C28 - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r0, 0x14 - strh r0, [r5, 0x2E] - ldr r4, _080B8C30 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - movs r0, 0x28 - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080B8C34 @ =sub_80B8C38 - str r0, [r5, 0x1C] -_080B8C28: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B8C30: .4byte gUnknown_2037F1A -_080B8C34: .4byte sub_80B8C38 - thumb_func_end sub_80B8BD4 - - thumb_func_start sub_80B8C38 -sub_80B8C38: @ 80B8C38 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B8C4C - adds r0, r4, 0 - bl DestroyAnimSprite -_080B8C4C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B8C38 - - thumb_func_start sub_80B8C54 -sub_80B8C54: @ 80B8C54 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075114 - ldr r0, _080B8CB4 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080B8C74 - ldr r1, _080B8CB8 @ =gUnknown_2037F02 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080B8C74: - ldr r4, _080B8CB8 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080B8CBC @ =gUnknown_2037F1B - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - ldr r0, _080B8CC0 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080B8CC4 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B8CB4: .4byte gUnknown_2037F1A -_080B8CB8: .4byte gUnknown_2037F02 -_080B8CBC: .4byte gUnknown_2037F1B -_080B8CC0: .4byte sub_8075590 -_080B8CC4: .4byte DestroyAnimSprite - thumb_func_end sub_80B8C54 - - thumb_func_start sub_80B8CC8 -sub_80B8CC8: @ 80B8CC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8075160 - ldr r4, _080B8D48 @ =gUnknown_2037F1B - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074844 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074844 - lsls r0, 24 - lsrs r7, r0, 24 - bl Random - movs r4, 0x1F - adds r5, r4, 0 - ands r5, r0 - bl Random - ands r4, r0 - adds r1, r5, 0 - cmp r1, 0x10 - ble _080B8D10 - movs r0, 0x10 - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 -_080B8D10: - lsls r0, r4, 16 - asrs r1, r0, 16 - cmp r1, 0x10 - ble _080B8D20 - movs r0, 0x10 - subs r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_080B8D20: - ldr r0, _080B8D4C @ =gUnknown_2037F02 - ldrh r0, [r0, 0x4] - strh r0, [r6, 0x2E] - mov r1, r8 - adds r0, r1, r5 - strh r0, [r6, 0x32] - adds r0, r7, r4 - strh r0, [r6, 0x36] - ldr r0, _080B8D50 @ =sub_8075590 - str r0, [r6, 0x1C] - ldr r1, _080B8D54 @ =move_anim_8074EE0 - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8D48: .4byte gUnknown_2037F1B -_080B8D4C: .4byte gUnknown_2037F02 -_080B8D50: .4byte sub_8075590 -_080B8D54: .4byte move_anim_8074EE0 - thumb_func_end sub_80B8CC8 - - thumb_func_start sub_80B8D58 -sub_80B8D58: @ 80B8D58 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x1 - ldr r3, _080B8DB8 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B8DBC @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r6, _080B8DC0 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080B8DCC - ldr r4, _080B8DC4 @ =gUnknown_2037F1A - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x2] - adds r0, r2 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r6, 0x4] - adds r0, r3 - strh r0, [r5, 0x22] - movs r1, 0x2 - ldrsh r0, [r6, r1] - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - ble _080B8DB2 - movs r1, 0x1 -_080B8DB2: - strh r1, [r5, 0x2E] - ldr r0, _080B8DC8 @ =sub_80B8DE8 - b _080B8DDA - .align 2, 0 -_080B8DB8: .4byte 0x000003ff -_080B8DBC: .4byte 0xfffffc00 -_080B8DC0: .4byte gUnknown_2037F02 -_080B8DC4: .4byte gUnknown_2037F1A -_080B8DC8: .4byte sub_80B8DE8 -_080B8DCC: - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x20] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x22] - negs r0, r0 - strh r0, [r5, 0x26] - ldr r0, _080B8DE4 @ =sub_80B8E24 -_080B8DDA: - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B8DE4: .4byte sub_80B8E24 - thumb_func_end sub_80B8D58 - - thumb_func_start sub_80B8DE8 -sub_80B8DE8: @ 80B8DE8 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B8E06 - movs r0, 0 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] -_080B8E06: - ldrh r0, [r2, 0x22] - subs r0, 0x4 - strh r0, [r2, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x4 - negs r1, r1 - cmp r0, r1 - bge _080B8E1E - adds r0, r2, 0 - bl DestroyAnimSprite -_080B8E1E: - pop {r0} - bx r0 - thumb_func_end sub_80B8DE8 - - thumb_func_start sub_80B8E24 -sub_80B8E24: @ 80B8E24 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _080B8E36 - cmp r1, 0x1 - beq _080B8E4C - b _080B8E8E -_080B8E36: - ldrh r0, [r3, 0x26] - adds r0, 0x4 - strh r0, [r3, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080B8E8E - strh r1, [r3, 0x26] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080B8E8E -_080B8E4C: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - cmp r0, 0 - ble _080B8E8E - movs r0, 0 - strh r0, [r3, 0x30] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r2, [r1] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080B8E8E - adds r0, r3, 0 - bl DestroyAnimSprite -_080B8E8E: - pop {r0} - bx r0 - thumb_func_end sub_80B8E24 - - thumb_func_start sub_80B8E94 -sub_80B8E94: @ 80B8E94 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B8EB4 @ =gTasks - adds r1, r0, r1 - ldr r0, _080B8EB8 @ =gUnknown_2037F02 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080B8EC0 - ldr r0, _080B8EBC @ =sub_80B8ED4 - b _080B8EC2 - .align 2, 0 -_080B8EB4: .4byte gTasks -_080B8EB8: .4byte gUnknown_2037F02 -_080B8EBC: .4byte sub_80B8ED4 -_080B8EC0: - ldr r0, _080B8ED0 @ =sub_80B908C -_080B8EC2: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, 0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B8ED0: .4byte sub_80B908C - thumb_func_end sub_80B8E94 - - thumb_func_start sub_80B8ED4 -sub_80B8ED4: @ 80B8ED4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B8EF8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080B8EEE - b _080B9082 -_080B8EEE: - lsls r0, 2 - ldr r1, _080B8EFC @ =_080B8F00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B8EF8: .4byte gTasks -_080B8EFC: .4byte _080B8F00 - .align 2, 0 -_080B8F00: - .4byte _080B8F14 - .4byte _080B8F9C - .4byte _080B8FAC - .4byte _080B9050 - .4byte _080B9064 -_080B8F14: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r0, _080B8F3C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080B8F48 - ldr r0, _080B8F40 @ =gUnknown_2022978 - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080B8F44 @ =gUnknown_202297A - b _080B8F50 - .align 2, 0 -_080B8F3C: .4byte gUnknown_2037F1A -_080B8F40: .4byte gUnknown_2022978 -_080B8F44: .4byte gUnknown_202297A -_080B8F48: - ldr r0, _080B8F8C @ =gUnknown_202297C - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080B8F90 @ =gUnknown_202297E -_080B8F50: - ldrh r0, [r0] - strh r0, [r4, 0x22] - ldr r0, _080B8F94 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0x24] - adds r0, 0x20 - strh r0, [r4, 0x26] - cmp r1, 0 - bge _080B8F72 - movs r0, 0 - strh r0, [r4, 0x24] -_080B8F72: - ldr r2, _080B8F98 @ =gSprites - movs r3, 0x1C - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _080B9056 - .align 2, 0 -_080B8F8C: .4byte gUnknown_202297C -_080B8F90: .4byte gUnknown_202297E -_080B8F94: .4byte gUnknown_2037F1A -_080B8F98: .4byte gSprites -_080B8F9C: - ldrb r0, [r4, 0x1E] - movs r2, 0x24 - ldrsh r1, [r4, r2] - movs r3, 0x26 - ldrsh r2, [r4, r3] - bl sub_80B92B8 - b _080B9056 -_080B8FAC: - ldrh r0, [r4, 0xC] - adds r0, 0x6 - movs r1, 0x7F - ands r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080B8FCE - movs r0, 0 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] -_080B8FCE: - ldr r1, _080B8FF0 @ =gUnknown_825E074 - movs r2, 0xC - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - ldrh r3, [r4, 0xE] - adds r2, r0, r3 - strh r2, [r4, 0x12] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080B8FF8 - ldr r1, _080B8FF4 @ =gUnknown_202297A - b _080B8FFA - .align 2, 0 -_080B8FF0: .4byte gUnknown_825E074 -_080B8FF4: .4byte gUnknown_202297A -_080B8FF8: - ldr r1, _080B901C @ =gUnknown_202297E -_080B8FFA: - ldrh r0, [r4, 0x22] - subs r0, r2 - strh r0, [r1] - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x3F - ble _080B9082 - ldrh r0, [r4, 0x24] - movs r1, 0x78 - subs r2, r1, r0 - strh r2, [r4, 0x12] - movs r3, 0x1E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080B9024 - ldr r1, _080B9020 @ =gUnknown_202297A - b _080B9026 - .align 2, 0 -_080B901C: .4byte gUnknown_202297E -_080B9020: .4byte gUnknown_202297A -_080B9024: - ldr r1, _080B9048 @ =gUnknown_202297E -_080B9026: - ldrh r0, [r4, 0x22] - subs r0, r2 - strh r0, [r1] - ldr r2, _080B904C @ =gSprites - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x20] - movs r3, 0x88 - lsls r3, 1 - adds r0, r3, 0 - subs r0, r2 - strh r0, [r1, 0x24] - b _080B9056 - .align 2, 0 -_080B9048: .4byte gUnknown_202297E -_080B904C: .4byte gSprites -_080B9050: - ldr r1, _080B9060 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B9056: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B9082 - .align 2, 0 -_080B9060: .4byte gUnknown_2039600 -_080B9064: - adds r0, r2, 0 - bl DestroyAnimVisualTask - ldr r2, _080B9088 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080B9082: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9088: .4byte gSprites - thumb_func_end sub_80B8ED4 - - thumb_func_start sub_80B908C -sub_80B908C: @ 80B908C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B90CC @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r3] - movs r4, 0 - strh r4, [r1, 0x24] - strh r4, [r1, 0x26] - ldr r0, _080B90D0 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B90D8 - ldr r0, _080B90D4 @ =gUnknown_202297A - b _080B90DA - .align 2, 0 -_080B90CC: .4byte gSprites -_080B90D0: .4byte gUnknown_2037F1A -_080B90D4: .4byte gUnknown_202297A -_080B90D8: - ldr r0, _080B90E8 @ =gUnknown_202297E -_080B90DA: - strh r4, [r0] - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B90E8: .4byte gUnknown_202297E - thumb_func_end sub_80B908C - - thumb_func_start sub_80B90EC -sub_80B90EC: @ 80B90EC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B910C @ =gTasks - adds r1, r0, r1 - ldr r0, _080B9110 @ =gUnknown_2037F02 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080B9118 - ldr r0, _080B9114 @ =sub_80B912C - b _080B911A - .align 2, 0 -_080B910C: .4byte gTasks -_080B9110: .4byte gUnknown_2037F02 -_080B9114: .4byte sub_80B912C -_080B9118: - ldr r0, _080B9128 @ =sub_80B91B0 -_080B911A: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, 0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B9128: .4byte sub_80B91B0 - thumb_func_end sub_80B90EC - - thumb_func_start sub_80B912C -sub_80B912C: @ 80B912C - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B914C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080B9150 - cmp r5, 0x1 - beq _080B91A4 - b _080B91AA - .align 2, 0 -_080B914C: .4byte gTasks -_080B9150: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r3, _080B91A0 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r5, [r0, 0x24] - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x22] - movs r0, 0xA0 - subs r0, r2 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B91AA - .align 2, 0 -_080B91A0: .4byte gSprites -_080B91A4: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B91AA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B912C - - thumb_func_start sub_80B91B0 -sub_80B91B0: @ 80B91B0 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B91D4 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _080B92B2 - lsls r0, 2 - ldr r1, _080B91D8 @ =_080B91DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B91D4: .4byte gTasks -_080B91D8: .4byte _080B91DC - .align 2, 0 -_080B91DC: - .4byte _080B91F0 - .4byte _080B9244 - .4byte _080B9252 - .4byte _080B926C - .4byte _080B92AC -_080B91F0: - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r0, _080B9214 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_80768B0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080B921C - ldr r0, _080B9218 @ =gUnknown_2022978 - b _080B921E - .align 2, 0 -_080B9214: .4byte gUnknown_2037F1A -_080B9218: .4byte gUnknown_2022978 -_080B921C: - ldr r0, _080B923C @ =gUnknown_202297C -_080B921E: - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080B9240 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0x24] - adds r0, 0x20 - strh r0, [r4, 0x26] - b _080B929A - .align 2, 0 -_080B923C: .4byte gUnknown_202297C -_080B9240: .4byte gUnknown_2037F1A -_080B9244: - ldrb r0, [r4, 0x1E] - movs r1, 0x26 - ldrsh r2, [r4, r1] - movs r1, 0 - bl sub_80B92B8 - b _080B929A -_080B9252: - ldr r2, _080B9268 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x60 - strh r1, [r0, 0x26] - b _080B929A - .align 2, 0 -_080B9268: .4byte gSprites -_080B926C: - ldr r2, _080B92A4 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x8 - strh r1, [r0, 0x26] - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B92B2 - ldr r1, _080B92A8 @ =gUnknown_2039600 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080B929A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B92B2 - .align 2, 0 -_080B92A4: .4byte gSprites -_080B92A8: .4byte gUnknown_2039600 -_080B92AC: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B92B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B91B0 - - thumb_func_start sub_80B92B8 -sub_80B92B8: @ 80B92B8 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - cmp r0, 0x1 - bne _080B92DC - ldr r0, _080B92D4 @ =gUnknown_2022978 - ldrh r3, [r0] - ldr r0, _080B92D8 @ =0x04000014 - b _080B92E2 - .align 2, 0 -_080B92D4: .4byte gUnknown_2022978 -_080B92D8: .4byte 0x04000014 -_080B92DC: - ldr r0, _080B9368 @ =gUnknown_202297C - ldrh r3, [r0] - ldr r0, _080B936C @ =0x04000018 -_080B92E2: - str r0, [sp] - lsls r0, r1, 16 - cmp r0, 0 - bge _080B92EC - movs r1, 0 -_080B92EC: - lsls r2, r1, 16 - lsls r0, r4, 16 - asrs r4, r0, 16 - cmp r2, r0 - bge _080B9318 - ldr r5, _080B9370 @ =gUnknown_2038700 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080B92FE: - asrs r2, 16 - lsls r1, r2, 1 - adds r0, r1, r5 - strh r3, [r0] - adds r1, r6 - strh r3, [r1] - adds r2, 0x1 - lsls r2, 16 - lsrs r1, r2, 16 - lsls r2, r1, 16 - asrs r0, r2, 16 - cmp r0, r4 - blt _080B92FE -_080B9318: - lsls r1, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080B9346 - ldr r4, _080B9370 @ =gUnknown_2038700 - lsls r0, r3, 16 - asrs r0, 16 - adds r3, r0, 0 - adds r3, 0xF0 - movs r0, 0xF0 - lsls r0, 3 - adds r5, r4, r0 -_080B9330: - asrs r2, r1, 16 - lsls r1, r2, 1 - adds r0, r1, r4 - strh r3, [r0] - adds r1, r5 - strh r3, [r1] - adds r2, 0x1 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080B9330 -_080B9346: - ldr r0, _080B9374 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9368: .4byte gUnknown_202297C -_080B936C: .4byte 0x04000018 -_080B9370: .4byte gUnknown_2038700 -_080B9374: .4byte 0xa2600001 - thumb_func_end sub_80B92B8 - - thumb_func_start sub_80B9378 -sub_80B9378: @ 80B9378 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080B938C @ =gUnknown_2037F02 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r7, r0, 0 - cmp r1, 0 - bne _080B9394 - ldr r0, _080B9390 @ =gUnknown_2037F1A - b _080B9396 - .align 2, 0 -_080B938C: .4byte gUnknown_2037F02 -_080B9390: .4byte gUnknown_2037F1A -_080B9394: - ldr r0, _080B93F8 @ =gUnknown_2037F1B -_080B9396: - ldrb r4, [r0] - movs r6, 0x18 - adds r1, r7, 0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080B93B2 - negs r0, r6 - lsls r0, 16 - lsrs r6, r0, 16 - movs r2, 0x4 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x4] -_080B93B2: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x20] - adds r0, r4, 0 - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1E - strh r0, [r5, 0x22] - ldrh r1, [r7, 0xA] - strh r1, [r5, 0x2E] - ldrh r1, [r7, 0x4] - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x32] - ldrh r1, [r7, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r7, 0x8] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_8075068 - ldr r0, _080B93FC @ =sub_80B9400 - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B93F8: .4byte gUnknown_2037F1B -_080B93FC: .4byte sub_80B9400 - thumb_func_end sub_80B9378 - - thumb_func_start sub_80B9400 -sub_80B9400: @ 80B9400 - push {r4,lr} - adds r4, r0, 0 - bl AnimateBallThrow - lsls r0, 24 - cmp r0, 0 - beq _080B9414 - adds r0, r4, 0 - bl DestroyAnimSprite -_080B9414: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B9400 - - thumb_func_start sub_80B941C -sub_80B941C: @ 80B941C - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080B9430 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080B9438 - ldr r0, _080B9434 @ =gUnknown_2037F1A - b _080B943A - .align 2, 0 -_080B9430: .4byte gUnknown_2037F02 -_080B9434: .4byte gUnknown_2037F1A -_080B9438: - ldr r0, _080B9498 @ =gUnknown_2037F1B -_080B943A: - ldrb r5, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B949C @ =0x0000fff0 - adds r0, r2 - ldr r4, _080B94A0 @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r1, [r4, r3] - lsls r1, 5 - adds r0, r1 - strh r0, [r6, 0x20] - adds r0, r5, 0 - bl sub_807492C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r6, 0x22] - ldrh r2, [r6, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x2 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r1, r0 - ldr r3, _080B94A4 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080B94A8 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r6, 0x4] - ldr r1, _080B94AC @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData6 - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x2E] - ldr r0, _080B94B0 @ =sub_8074C44 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9498: .4byte gUnknown_2037F1B -_080B949C: .4byte 0x0000fff0 -_080B94A0: .4byte gUnknown_2037F02 -_080B94A4: .4byte 0x000003ff -_080B94A8: .4byte 0xfffffc00 -_080B94AC: .4byte DestroyAnimSprite -_080B94B0: .4byte sub_8074C44 - thumb_func_end sub_80B941C - - thumb_func_start sub_80B94B4 -sub_80B94B4: @ 80B94B4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B94D8 @ =gTasks - adds r4, r0, r1 - ldr r0, _080B94DC @ =gUnknown_2037F02 - ldrh r2, [r0, 0x2] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r6, r0, 0 - cmp r1, 0 - beq _080B94E0 - adds r0, r2, 0x3 - b _080B94EC - .align 2, 0 -_080B94D8: .4byte gTasks -_080B94DC: .4byte gUnknown_2037F02 -_080B94E0: - ldr r0, _080B950C @ =gUnknown_2037EEC - ldrh r0, [r0] - movs r1, 0xA - bl __udivsi3 - adds r0, 0x3 -_080B94EC: - strh r0, [r4, 0x26] - strh r0, [r4, 0x24] - adds r1, r6, 0 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0xE] - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - beq _080B9518 - cmp r0, 0x5 - bne _080B9558 - ldr r0, _080B9510 @ =gUnknown_2022980 - ldrh r0, [r0] - strh r0, [r4, 0x22] - ldr r0, _080B9514 @ =sub_80B9584 - b _080B9576 - .align 2, 0 -_080B950C: .4byte gUnknown_2037EEC -_080B9510: .4byte gUnknown_2022980 -_080B9514: .4byte sub_80B9584 -_080B9518: - movs r0, 0 - strh r0, [r4, 0x22] - movs r5, 0 -_080B951E: - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080B9548 - movs r3, 0x22 - ldrsh r0, [r4, r3] - adds r0, 0x9 - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x8 - adds r1, r0 - ldr r0, _080B9554 @ =gUnknown_2023D44 - adds r0, r5, r0 - ldrb r0, [r0] - strh r0, [r1] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080B9548: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080B951E - b _080B9574 - .align 2, 0 -_080B9554: .4byte gUnknown_2023D44 -_080B9558: - ldrb r0, [r6] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - cmp r0, 0xFF - bne _080B9570 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _080B9578 -_080B9570: - movs r0, 0x1 - strh r0, [r4, 0x22] -_080B9574: - ldr r0, _080B9580 @ =sub_80B967C -_080B9576: - str r0, [r4] -_080B9578: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9580: .4byte sub_80B967C - thumb_func_end sub_80B94B4 - - thumb_func_start sub_80B9584 -sub_80B9584: @ 80B9584 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080B95A8 @ =gTasks - adds r3, r0, r1 - movs r0, 0x8 - ldrsh r1, [r3, r0] - cmp r1, 0x1 - beq _080B9608 - cmp r1, 0x1 - bgt _080B95AC - cmp r1, 0 - beq _080B95B2 - b _080B9674 - .align 2, 0 -_080B95A8: .4byte gTasks -_080B95AC: - cmp r1, 0x2 - beq _080B9668 - b _080B9674 -_080B95B2: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B9674 - strh r1, [r3, 0xA] - ldrh r1, [r3, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080B95DC - ldr r1, _080B95D8 @ =gUnknown_2022980 - ldrh r0, [r3, 0x26] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r1] - b _080B95E6 - .align 2, 0 -_080B95D8: .4byte gUnknown_2022980 -_080B95DC: - ldr r0, _080B9604 @ =gUnknown_2022980 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x26] - subs r1, r2 - strh r1, [r0] -_080B95E6: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xE - ldrsh r1, [r3, r2] - cmp r0, r1 - bne _080B9674 - movs r0, 0 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x24] - subs r0, 0x1 - strh r0, [r3, 0x24] - b _080B965C - .align 2, 0 -_080B9604: .4byte gUnknown_2022980 -_080B9608: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B9674 - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r0, [r3, 0xC] - ands r1, r0 - cmp r1, 0 - bne _080B9634 - ldr r1, _080B9630 @ =gUnknown_2022980 - ldrh r0, [r3, 0x24] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r1] - b _080B963E - .align 2, 0 -_080B9630: .4byte gUnknown_2022980 -_080B9634: - ldr r0, _080B9664 @ =gUnknown_2022980 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x24] - subs r1, r2 - strh r1, [r0] -_080B963E: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080B9674 - movs r0, 0 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x24] - subs r0, 0x1 - strh r0, [r3, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080B9674 -_080B965C: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080B9674 - .align 2, 0 -_080B9664: .4byte gUnknown_2022980 -_080B9668: - ldr r1, _080B9678 @ =gUnknown_2022980 - ldrh r0, [r3, 0x22] - strh r0, [r1] - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080B9674: - pop {r0} - bx r0 - .align 2, 0 -_080B9678: .4byte gUnknown_2022980 - thumb_func_end sub_80B9584 - - thumb_func_start sub_80B967C -sub_80B967C: @ 80B967C - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080B96A0 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080B96DC - cmp r5, 0x1 - bgt _080B96A4 - cmp r5, 0 - beq _080B96AA - b _080B9756 - .align 2, 0 -_080B96A0: .4byte gTasks -_080B96A4: - cmp r5, 0x2 - beq _080B9718 - b _080B9756 -_080B96AA: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B9756 - strh r5, [r4, 0xA] - adds r0, r4, 0 - bl sub_80B9760 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080B9756 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0x24] - subs r0, 0x1 - strh r0, [r4, 0x24] - b _080B9710 -_080B96DC: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080B9756 - strh r5, [r4, 0xA] - adds r0, r4, 0 - bl sub_80B9760 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080B9756 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0x24] - subs r0, 0x1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080B9756 -_080B9710: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B9756 -_080B9718: - movs r2, 0 - movs r7, 0x22 - ldrsh r0, [r4, r7] - cmp r2, r0 - bge _080B9750 - ldr r0, _080B975C @ =gSprites - mov r12, r0 - adds r5, r4, 0 - adds r5, 0x8 - movs r6, 0 -_080B972C: - adds r0, r2, 0 - adds r0, 0x9 - lsls r0, 1 - adds r0, r5, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r12 - strh r6, [r0, 0x24] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _080B972C -_080B9750: - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080B9756: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B975C: .4byte gSprites - thumb_func_end sub_80B967C - - thumb_func_start sub_80B9760 -sub_80B9760: @ 80B9760 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0xC] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080B9788 - movs r0, 0x24 - ldrsh r1, [r3, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r2, [r3, 0x24] - adds r0, r4, 0 - ands r0, r2 - adds r1, r0 - lsls r1, 16 - lsrs r4, r1, 16 - b _080B9798 -_080B9788: - movs r1, 0x24 - ldrsh r0, [r3, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 -_080B9798: - movs r2, 0 - movs r7, 0x22 - ldrsh r0, [r3, r7] - cmp r2, r0 - bge _080B97CC - ldr r6, _080B97D4 @ =gSprites - adds r5, r3, 0 - adds r5, 0x8 -_080B97A8: - adds r0, r2, 0 - adds r0, 0x9 - lsls r0, 1 - adds r0, r5, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r4, [r0, 0x24] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x22 - ldrsh r0, [r3, r1] - cmp r2, r0 - blt _080B97A8 -_080B97CC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B97D4: .4byte gSprites - thumb_func_end sub_80B9760 - - thumb_func_start sub_80B97D8 -sub_80B97D8: @ 80B97D8 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, _080B97F8 @ =gUnknown_2037F02 - movs r2, 0 - ldr r0, _080B97FC @ =gUnknown_2037EEC - ldrh r0, [r0] - cmp r0, 0x63 - bls _080B97EC - movs r2, 0x1 -_080B97EC: - strh r2, [r3, 0x1E] - adds r0, r1, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080B97F8: .4byte gUnknown_2037F02 -_080B97FC: .4byte gUnknown_2037EEC - thumb_func_end sub_80B97D8 - - thumb_func_start sub_80B9800 -sub_80B9800: @ 80B9800 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080B9818 @ =gUnknown_2037F02 - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _080B9820 - ldr r0, _080B981C @ =gUnknown_2037F1B - b _080B9822 - .align 2, 0 -_080B9818: .4byte gUnknown_2037F02 -_080B981C: .4byte gUnknown_2037F1B -_080B9820: - ldr r0, _080B9890 @ =gUnknown_2037F1A -_080B9822: - ldrb r0, [r0] - adds r5, r0, 0 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - ble _080B9832 - movs r0, 0x2 - eors r5, r0 -_080B9832: - ldr r0, _080B9894 @ =sub_80B98A8 - ldrb r1, [r6, 0x2] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080B9898 @ =gTasks - adds r4, r0 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x20 - subs r1, r0 - ldr r2, _080B989C @ =0x000001ff - adds r0, r2, 0 - ands r1, r0 - strh r1, [r4, 0xA] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8074480 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x40 - subs r1, r0 - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0xC] - ldr r2, _080B98A0 @ =gUnknown_2022980 - ldrh r0, [r4, 0xA] - strh r0, [r2] - ldr r0, _080B98A4 @ =gUnknown_2022982 - strh r1, [r0] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0xE] - adds r0, r7, 0 - bl DestroyAnimVisualTask - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9890: .4byte gUnknown_2037F1A -_080B9894: .4byte sub_80B98A8 -_080B9898: .4byte gTasks -_080B989C: .4byte 0x000001ff -_080B98A0: .4byte gUnknown_2022980 -_080B98A4: .4byte gUnknown_2022982 - thumb_func_end sub_80B9800 - - thumb_func_start sub_80B98A8 -sub_80B98A8: @ 80B98A8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080B98D8 @ =gTasks - adds r2, r0, r1 - ldr r0, _080B98DC @ =gUnknown_2037F02 - movs r4, 0xE - ldrsh r1, [r0, r4] - movs r4, 0xE - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _080B98E8 - ldr r0, _080B98E0 @ =gUnknown_2022980 - movs r1, 0 - strh r1, [r0] - ldr r0, _080B98E4 @ =gUnknown_2022982 - strh r1, [r0] - adds r0, r3, 0 - bl DestroyTask - b _080B98F4 - .align 2, 0 -_080B98D8: .4byte gTasks -_080B98DC: .4byte gUnknown_2037F02 -_080B98E0: .4byte gUnknown_2022980 -_080B98E4: .4byte gUnknown_2022982 -_080B98E8: - ldr r1, _080B98FC @ =gUnknown_2022980 - ldrh r0, [r2, 0xA] - strh r0, [r1] - ldr r1, _080B9900 @ =gUnknown_2022982 - ldrh r0, [r2, 0xC] - strh r0, [r1] -_080B98F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B98FC: .4byte gUnknown_2022980 -_080B9900: .4byte gUnknown_2022982 - thumb_func_end sub_80B98A8 - - thumb_func_start sub_80B9904 -sub_80B9904: @ 80B9904 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B993C @ =gUnknown_2037F02 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080B9940 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080B9944 - ldrh r0, [r5, 0x6] - negs r0, r0 - strh r0, [r4, 0x30] - movs r0, 0x1 - strh r0, [r4, 0x36] - b _080B9952 - .align 2, 0 -_080B993C: .4byte gUnknown_2037F02 -_080B9940: .4byte gUnknown_2037F1A -_080B9944: - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - strh r1, [r4, 0x36] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080B9952: - ldr r0, _080B9968 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x8] - strh r0, [r4, 0x34] - ldr r1, _080B996C @ =sub_80B9970 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9968: .4byte gUnknown_2037F02 -_080B996C: .4byte sub_80B9970 - thumb_func_end sub_80B9904 - - thumb_func_start sub_80B9970 -sub_80B9970: @ 80B9970 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x1E - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0xA - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - cmp r0, 0x7F - bhi _080B99A2 - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080B99AA -_080B99A2: - ldrb r0, [r4, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r4, 0x5] -_080B99AA: - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080B99CE - adds r0, r4, 0 - bl DestroyAnimSprite -_080B99CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B9970 - - thumb_func_start sub_80B99D4 -sub_80B99D4: @ 80B99D4 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r4, _080B9A0C @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - bl sub_80B9A14 - movs r1, 0x2 - ldrsb r1, [r4, r1] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - ldrh r4, [r4, 0x8] - str r4, [sp] - bl BeginNormalPaletteFade - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B9A10 @ =sub_80B9A5C - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9A0C: .4byte gUnknown_2037F02 -_080B9A10: .4byte sub_80B9A5C - thumb_func_end sub_80B99D4 - - thumb_func_start sub_80B9A14 -sub_80B9A14: @ 80B9A14 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - lsls r0, 16 - lsrs r0, 16 - movs r4, 0x1 - mov r8, r0 - mov r1, r8 - ands r1, r4 - mov r8, r1 - lsls r0, 16 - asrs r1, r0, 17 - ands r1, r4 - asrs r2, r0, 18 - ands r2, r4 - asrs r3, r0, 19 - ands r3, r4 - asrs r6, r0, 20 - ands r6, r4 - asrs r5, r0, 21 - ands r5, r4 - asrs r0, 22 - ands r0, r4 - str r6, [sp] - str r5, [sp, 0x4] - str r0, [sp, 0x8] - mov r0, r8 - bl sub_8075BE8 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80B9A14 - - thumb_func_start sub_80B9A5C -sub_80B9A5C: @ 80B9A5C - push {lr} - adds r2, r0, 0 - ldr r0, _080B9A78 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9A72 - adds r0, r2, 0 - bl DestroyAnimSprite -_080B9A72: - pop {r0} - bx r0 - .align 2, 0 -_080B9A78: .4byte gPaletteFade - thumb_func_end sub_80B9A5C - - thumb_func_start sub_80B9A7C -sub_80B9A7C: @ 80B9A7C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080B9AC8 @ =gUnknown_2037F02 - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x2E] - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x34] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0x38] - ldrh r0, [r4, 0xC] - strh r0, [r5, 0x3A] - ldrh r0, [r4] - strh r0, [r5, 0x3C] - movs r1, 0x3C - ldrsh r0, [r5, r1] - bl sub_80B9A14 - ldrb r1, [r4, 0x8] - ldrh r2, [r4, 0x6] - bl BlendPalettes - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080B9ACC @ =sub_80B9AD0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9AC8: .4byte gUnknown_2037F02 -_080B9ACC: .4byte sub_80B9AD0 - thumb_func_end sub_80B9A7C - - thumb_func_start sub_80B9AD0 -sub_80B9AD0: @ 80B9AD0 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080B9AE4 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080B9B54 -_080B9AE4: - ldr r0, _080B9B00 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9B54 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080B9B08 - ldr r0, _080B9B04 @ =sub_80B9B5C - str r0, [r4, 0x1C] - b _080B9B54 - .align 2, 0 -_080B9B00: .4byte gPaletteFade -_080B9B04: .4byte sub_80B9B5C -_080B9B08: - movs r2, 0x3C - ldrsh r0, [r4, r2] - bl sub_80B9A14 - adds r3, r0, 0 - ldrh r1, [r4, 0x30] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080B9B2E - ldrh r1, [r4, 0x36] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x34] - adds r0, r3, 0 - bl BlendPalettes - b _080B9B3C -_080B9B2E: - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x38] - adds r0, r3, 0 - bl BlendPalettes -_080B9B3C: - ldrh r0, [r4, 0x30] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - eors r0, r1 - strh r0, [r4, 0x30] - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - subs r0, 0x1 - strh r0, [r4, 0x32] -_080B9B54: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B9AD0 - - thumb_func_start sub_80B9B5C -sub_80B9B5C: @ 80B9B5C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080B9B88 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9B82 - movs r1, 0x3C - ldrsh r0, [r4, r1] - bl sub_80B9A14 - movs r1, 0 - movs r2, 0 - bl BlendPalettes - adds r0, r4, 0 - bl DestroyAnimSprite -_080B9B82: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9B88: .4byte gPaletteFade - thumb_func_end sub_80B9B5C - - thumb_func_start sub_80B9B8C -sub_80B9B8C: @ 80B9B8C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080B9BD0 @ =gUnknown_2037F02 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - movs r2, 0 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r2, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x30] - movs r0, 0x8 - strh r0, [r4, 0x32] - movs r0, 0x28 - strh r0, [r4, 0x34] - movs r0, 0x70 - strh r0, [r4, 0x36] - strh r2, [r4, 0x38] - ldr r1, _080B9BD4 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r1, _080B9BD8 @ =sub_8074AE0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9BD0: .4byte gUnknown_2037F02 -_080B9BD4: .4byte move_anim_8074EE0 -_080B9BD8: .4byte sub_8074AE0 - thumb_func_end sub_80B9B8C - - thumb_func_start sub_80B9BDC -sub_80B9BDC: @ 80B9BDC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B9C20 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r3, _080B9C24 @ =gUnknown_2037F02 - ldrh r1, [r3] - movs r5, 0 - strh r1, [r4, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r4, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r4, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r4, 0xE] - ldrh r2, [r3, 0x8] - strh r2, [r4, 0x10] - ldrh r1, [r3, 0xA] - strh r1, [r4, 0x12] - strh r5, [r4, 0x18] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - bl sub_80B9C2C - ldr r0, _080B9C28 @ =sub_80B9C7C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9C20: .4byte gTasks -_080B9C24: .4byte gUnknown_2037F02 -_080B9C28: .4byte sub_80B9C7C - thumb_func_end sub_80B9BDC - - thumb_func_start sub_80B9C2C -sub_80B9C2C: @ 80B9C2C - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080B9C78 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - bl sub_80B9A14 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r2, [r4, 0x12] - str r2, [sp] - adds r2, r5, 0 - adds r3, r6, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9C78: .4byte gTasks - thumb_func_end sub_80B9C2C - - thumb_func_start sub_80B9C7C -sub_80B9C7C: @ 80B9C7C - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080B9CB4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9CDE - ldr r1, _080B9CB8 @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080B9CD8 - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080B9CBC - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080B9CC0 - .align 2, 0 -_080B9CB4: .4byte gPaletteFade -_080B9CB8: .4byte gTasks -_080B9CBC: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080B9CC0: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080B9CD0 - movs r2, 0 -_080B9CD0: - adds r0, r4, 0 - bl sub_80B9C2C - b _080B9CDE -_080B9CD8: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080B9CDE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B9C7C - - thumb_func_start sub_80B9CE4 -sub_80B9CE4: @ 80B9CE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r3, _080B9D88 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r3 - ldr r2, _080B9D8C @ =gUnknown_2037F02 - ldrh r1, [r2] - strh r1, [r0, 0x8] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0xE] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0x10] - ldrh r1, [r2, 0xA] - strh r1, [r0, 0x12] - strh r5, [r0, 0x18] - movs r4, 0 - ldr r0, _080B9D90 @ =gBattlersCount - ldrb r1, [r0] - mov r9, r3 - mov r8, r2 - cmp r5, r1 - bge _080B9D4C - ldr r0, _080B9D94 @ =gUnknown_2037F1A - ldrb r3, [r0] - ldr r7, _080B9D98 @ =gUnknown_2037F1B - movs r0, 0x1 - mov r12, r0 - adds r2, r1, 0 -_080B9D32: - cmp r4, r3 - beq _080B9D46 - ldrb r1, [r7] - cmp r4, r1 - beq _080B9D46 - adds r1, r4, 0 - adds r1, 0x10 - mov r0, r12 - lsls r0, r1 - orrs r5, r0 -_080B9D46: - adds r4, 0x1 - cmp r4, r2 - blt _080B9D32 -_080B9D4C: - mov r2, r8 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080B9D5A - movs r0, 0xE - orrs r5, r0 -_080B9D5A: - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - add r4, r9 - lsrs r0, r5, 16 - strh r0, [r4, 0x1A] - movs r0, 0xFF - ands r5, r0 - strh r5, [r4, 0x1C] - ldrb r2, [r4, 0x10] - adds r0, r6, 0 - movs r1, 0 - bl sub_80B9DA0 - ldr r0, _080B9D9C @ =sub_80B9DF0 - str r0, [r4] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9D88: .4byte gTasks -_080B9D8C: .4byte gUnknown_2037F02 -_080B9D90: .4byte gBattlersCount -_080B9D94: .4byte gUnknown_2037F1A -_080B9D98: .4byte gUnknown_2037F1B -_080B9D9C: .4byte sub_80B9DF0 - thumb_func_end sub_80B9CE4 - - thumb_func_start sub_80B9DA0 -sub_80B9DA0: @ 80B9DA0 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _080B9DEC @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrh r0, [r4, 0x1A] - lsls r0, 16 - ldrh r1, [r4, 0x1C] - orrs r0, r1 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r2, [r4, 0x12] - str r2, [sp] - adds r2, r5, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9DEC: .4byte gTasks - thumb_func_end sub_80B9DA0 - - thumb_func_start sub_80B9DF0 -sub_80B9DF0: @ 80B9DF0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080B9E28 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9E52 - ldr r1, _080B9E2C @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080B9E4C - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080B9E30 - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080B9E34 - .align 2, 0 -_080B9E28: .4byte gPaletteFade -_080B9E2C: .4byte gTasks -_080B9E30: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080B9E34: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080B9E44 - movs r2, 0 -_080B9E44: - adds r0, r4, 0 - bl sub_80B9DA0 - b _080B9E52 -_080B9E4C: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080B9E52: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B9DF0 - - thumb_func_start sub_80B9E58 -sub_80B9E58: @ 80B9E58 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B9E9C @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r3, _080B9EA0 @ =gUnknown_2037F02 - ldrh r1, [r3] - movs r5, 0 - strh r1, [r4, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r4, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r4, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r4, 0xE] - ldrh r2, [r3, 0x8] - strh r2, [r4, 0x10] - ldrh r1, [r3, 0xA] - strh r1, [r4, 0x12] - strh r5, [r4, 0x18] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - bl sub_80B9EA8 - ldr r0, _080B9EA4 @ =sub_80B9F04 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9E9C: .4byte gTasks -_080B9EA0: .4byte gUnknown_2037F02 -_080B9EA4: .4byte sub_80B9F04 - thumb_func_end sub_80B9E58 - - thumb_func_start sub_80B9EA8 -sub_80B9EA8: @ 80B9EA8 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080B9F00 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrh r0, [r4, 0x8] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r2, 0x1 - lsls r2, r0 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r0, [r4, 0x12] - str r0, [sp] - adds r0, r2, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9F00: .4byte gTasks - thumb_func_end sub_80B9EA8 - - thumb_func_start sub_80B9F04 -sub_80B9F04: @ 80B9F04 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080B9F3C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B9F66 - ldr r1, _080B9F40 @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080B9F60 - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080B9F44 - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080B9F48 - .align 2, 0 -_080B9F3C: .4byte gPaletteFade -_080B9F40: .4byte gTasks -_080B9F44: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080B9F48: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080B9F58 - movs r2, 0 -_080B9F58: - adds r0, r4, 0 - bl sub_80B9EA8 - b _080B9F66 -_080B9F60: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080B9F66: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B9F04 - - thumb_func_start sub_80B9F6C -sub_80B9F6C: @ 80B9F6C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B9FCC @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r5, _080B9FD0 @ =gUnknown_2037F02 - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x8] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x10] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x12] - ldrh r0, [r5, 0xC] - strh r0, [r4, 0x14] - ldrh r0, [r5] - strh r0, [r4, 0x16] - ldrh r0, [r5] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - ldrb r3, [r5, 0x8] - ldrh r0, [r5, 0x6] - str r0, [sp] - adds r0, r1, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080B9FD4 @ =sub_80B9FD8 - str r0, [r4] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B9FCC: .4byte gTasks -_080B9FD0: .4byte gUnknown_2037F02 -_080B9FD4: .4byte sub_80B9FD8 - thumb_func_end sub_80B9F6C - - thumb_func_start sub_80B9FD8 -sub_80B9FD8: @ 80B9FD8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080B9FFC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080BA000 - subs r0, r1, 0x1 - strh r0, [r4, 0x8] - b _080BA084 - .align 2, 0 -_080B9FFC: .4byte gTasks -_080BA000: - ldr r0, _080BA01C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BA084 - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080BA024 - ldr r0, _080BA020 @ =sub_80BA090 - str r0, [r4] - b _080BA084 - .align 2, 0 -_080BA01C: .4byte gPaletteFade -_080BA020: .4byte sub_80BA090 -_080BA024: - ldrh r0, [r4, 0x16] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r2, 0x1 - lsls r2, r0 - ldrh r1, [r4, 0xA] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BA052 - ldrb r3, [r4, 0x10] - ldrh r0, [r4, 0xE] - str r0, [sp] - adds r0, r2, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade - b _080BA062 -_080BA052: - ldrb r3, [r4, 0x14] - ldrh r0, [r4, 0x12] - str r0, [sp] - adds r0, r2, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade -_080BA062: - ldr r0, _080BA08C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - movs r3, 0x80 - lsls r3, 1 - adds r2, r3, 0 - eors r0, r2 - strh r0, [r1, 0xA] - movs r2, 0xFF - ands r0, r2 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] -_080BA084: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA08C: .4byte gTasks - thumb_func_end sub_80B9FD8 - - thumb_func_start sub_80BA090 -sub_80BA090: @ 80BA090 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BA0E0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080BA0D6 - ldr r1, _080BA0E4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x16] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - str r5, [sp] - adds r0, r1, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080BA0D6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA0E0: .4byte gPaletteFade -_080BA0E4: .4byte gTasks - thumb_func_end sub_80BA090 - - thumb_func_start sub_80BA0E8 -sub_80BA0E8: @ 80BA0E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0 - ldr r0, _080BA160 @ =gUnknown_2037F1A - ldrb r6, [r0] - ldr r0, _080BA164 @ =gUnknown_2037F1B - ldrb r7, [r0] - ldr r4, _080BA168 @ =gUnknown_2037F02 - ldrh r1, [r4] - movs r5, 0x80 - lsls r5, 1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA122 - str r2, [sp] - str r2, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r3, 0 - bl sub_8075BE8 - adds r2, r0, 0 -_080BA122: - ldrh r1, [r4, 0x2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA134 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r6 - orrs r2, r0 -_080BA134: - ldrh r1, [r4, 0x4] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA146 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r7 - orrs r2, r0 -_080BA146: - adds r0, r2, 0 - bl InvertPlttBuffer - mov r0, r8 - bl DestroyAnimVisualTask - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA160: .4byte gUnknown_2037F1A -_080BA164: .4byte gUnknown_2037F1B -_080BA168: .4byte gUnknown_2037F02 - thumb_func_end sub_80BA0E8 - - thumb_func_start sub_80BA16C -sub_80BA16C: @ 80BA16C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r1, _080BA260 @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BA1AE - ldr r1, _080BA264 @ =gUnknown_2037F02 - ldrh r0, [r1] - strh r0, [r4, 0xC] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0xE] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x10] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0xA] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x12] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x14] - ldrh r0, [r1, 0xC] - strh r0, [r4, 0x16] -_080BA1AE: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080BA268 @ =gUnknown_2037F1A - ldrb r0, [r0] - mov r9, r0 - ldr r0, _080BA26C @ =gUnknown_2037F1B - ldrb r0, [r0] - mov r10, r0 - ldrh r1, [r4, 0xC] - movs r7, 0x80 - lsls r7, 1 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA1D0 - ldr r5, _080BA270 @ =0x0000ffff -_080BA1D0: - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA200 - ldr r2, _080BA274 @ =gSprites - ldr r0, _080BA278 @ =gUnknown_3004FF0 - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x14 - adds r0, r2 - ldr r0, [r0] - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r1, r6, 0 - lsls r1, r0 - lsls r1, 16 - orrs r5, r1 -_080BA200: - ldrh r1, [r4, 0xE] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA214 - adds r0, r6, 0 - mov r2, r9 - lsls r0, r2 - lsls r0, 16 - orrs r5, r0 -_080BA214: - ldrh r1, [r4, 0x10] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080BA228 - adds r0, r6, 0 - mov r1, r10 - lsls r0, r1 - lsls r0, 16 - orrs r5, r0 -_080BA228: - movs r1, 0x12 - ldrsb r1, [r4, r1] - movs r2, 0x14 - ldrsb r2, [r4, r2] - movs r3, 0x16 - ldrsb r3, [r4, r3] - adds r0, r5, 0 - bl TintPlttBuffer - movs r2, 0x8 - ldrsh r1, [r4, r2] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080BA252 - adds r0, r5, 0 - bl UnfadePlttBuffer - mov r0, r8 - bl DestroyAnimVisualTask -_080BA252: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA260: .4byte gTasks -_080BA264: .4byte gUnknown_2037F02 -_080BA268: .4byte gUnknown_2037F1A -_080BA26C: .4byte gUnknown_2037F1B -_080BA270: .4byte 0x0000ffff -_080BA274: .4byte gSprites -_080BA278: .4byte gUnknown_3004FF0 - thumb_func_end sub_80BA16C - - thumb_func_start sub_80BA27C -sub_80BA27C: @ 80BA27C - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080BA2B0 @ =gUnknown_2037F02 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x34] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080BA2C4 - cmp r0, 0x1 - bgt _080BA2B4 - cmp r0, 0 - beq _080BA2BA - b _080BA2DC - .align 2, 0 -_080BA2B0: .4byte gUnknown_2037F02 -_080BA2B4: - cmp r0, 0x2 - beq _080BA2CC - b _080BA2DC -_080BA2BA: - ldr r1, _080BA2C0 @ =gUnknown_2022980 - b _080BA2CE - .align 2, 0 -_080BA2C0: .4byte gUnknown_2022980 -_080BA2C4: - ldr r1, _080BA2C8 @ =gUnknown_2022982 - b _080BA2CE - .align 2, 0 -_080BA2C8: .4byte gUnknown_2022982 -_080BA2CC: - ldr r1, _080BA2D8 @ =gSpriteCoordOffsetX -_080BA2CE: - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - b _080BA2E4 - .align 2, 0 -_080BA2D8: .4byte gSpriteCoordOffsetX -_080BA2DC: - ldr r1, _080BA314 @ =gSpriteCoordOffsetY - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 -_080BA2E4: - movs r0, 0x3A - ldrsh r1, [r4, r0] - movs r2, 0x3C - ldrsh r0, [r4, r2] - lsls r0, 16 - orrs r1, r0 - ldrh r0, [r1] - strh r0, [r4, 0x36] - ldr r0, _080BA318 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x6] - strh r0, [r4, 0x38] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BA308 - bl sub_80BA3CC -_080BA308: - ldr r0, _080BA31C @ =sub_80BA320 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA314: .4byte gSpriteCoordOffsetY -_080BA318: .4byte gUnknown_2037F02 -_080BA31C: .4byte sub_80BA320 - thumb_func_end sub_80BA27C - - thumb_func_start sub_80BA320 -sub_80BA320: @ 80BA320 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080BA362 - subs r0, r1, 0x1 - strh r0, [r3, 0x34] - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080BA342 - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - b _080BA3BA -_080BA342: - ldrh r0, [r3, 0x32] - strh r0, [r3, 0x30] - movs r0, 0x3A - ldrsh r1, [r3, r0] - movs r2, 0x3C - ldrsh r0, [r3, r2] - lsls r0, 16 - orrs r1, r0 - ldrh r0, [r3, 0x2E] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - ldrh r0, [r3, 0x2E] - negs r0, r0 - strh r0, [r3, 0x2E] - b _080BA3BA -_080BA362: - movs r0, 0x3A - ldrsh r1, [r3, r0] - movs r2, 0x3C - ldrsh r0, [r3, r2] - lsls r0, 16 - orrs r1, r0 - ldrh r0, [r3, 0x36] - strh r0, [r1] - ldrh r0, [r3, 0x38] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BA3B4 - movs r4, 0 - ldr r5, _080BA3C0 @ =gBattlersCount - ldrb r0, [r5] - cmp r4, r0 - bcs _080BA3B4 - ldr r2, _080BA3C4 @ =gSprites - mov r12, r2 - ldr r6, _080BA3C8 @ =gUnknown_2023D44 - movs r7, 0x3 - negs r7, r7 -_080BA392: - adds r0, r4, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5] - cmp r4, r0 - bcc _080BA392 -_080BA3B4: - adds r0, r3, 0 - bl DestroyAnimSprite -_080BA3BA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA3C0: .4byte gBattlersCount -_080BA3C4: .4byte gSprites -_080BA3C8: .4byte gUnknown_2023D44 - thumb_func_end sub_80BA320 - - thumb_func_start sub_80BA3CC -sub_80BA3CC: @ 80BA3CC - push {r4-r6,lr} - ldr r6, _080BA440 @ =gSprites - ldr r4, _080BA444 @ =gUnknown_2023D44 - ldr r5, _080BA448 @ =gUnknown_2037F1A - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x3 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r3, _080BA44C @ =gUnknown_2037F1B - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - ldr r0, _080BA450 @ =gUnknown_2037F02 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x2 - bne _080BA454 - ldrb r0, [r5] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - b _080BA470 - .align 2, 0 -_080BA440: .4byte gSprites -_080BA444: .4byte gUnknown_2023D44 -_080BA448: .4byte gUnknown_2037F1A -_080BA44C: .4byte gUnknown_2037F1B -_080BA450: .4byte gUnknown_2037F02 -_080BA454: - cmp r0, 0 - bne _080BA45C - ldrb r0, [r5] - b _080BA45E -_080BA45C: - ldrb r0, [r3] -_080BA45E: - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 -_080BA470: - orrs r1, r2 - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BA3CC - - thumb_func_start sub_80BA47C -sub_80BA47C: @ 80BA47C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080BA4BC @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldr r3, _080BA4C0 @ =gUnknown_2037F02 - ldrh r1, [r3] - strh r1, [r2, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r2, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0xE] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0x18] - ldr r4, _080BA4C4 @ =gUnknown_2022980 - ldrh r1, [r3] - strh r1, [r4] - ldr r4, _080BA4C8 @ =gUnknown_2022982 - ldrh r1, [r3, 0x2] - strh r1, [r4] - ldr r1, _080BA4CC @ =sub_80BA4D0 - str r1, [r2] - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA4BC: .4byte gTasks -_080BA4C0: .4byte gUnknown_2037F02 -_080BA4C4: .4byte gUnknown_2022980 -_080BA4C8: .4byte gUnknown_2022982 -_080BA4CC: .4byte sub_80BA4D0 - thumb_func_end sub_80BA47C - - thumb_func_start sub_80BA4D0 -sub_80BA4D0: @ 80BA4D0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080BA500 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0xE] - movs r4, 0xE - ldrsh r0, [r3, r4] - mov r12, r1 - cmp r0, 0 - bne _080BA556 - ldr r0, _080BA504 @ =gUnknown_2022980 - ldrh r2, [r0] - movs r7, 0x8 - ldrsh r1, [r3, r7] - adds r6, r0, 0 - cmp r2, r1 - bne _080BA508 - ldrh r0, [r3, 0x8] - negs r0, r0 - b _080BA50A - .align 2, 0 -_080BA500: .4byte gTasks -_080BA504: .4byte gUnknown_2022980 -_080BA508: - ldrh r0, [r3, 0x8] -_080BA50A: - strh r0, [r6] - ldr r2, _080BA528 @ =gUnknown_2022982 - ldrh r3, [r2] - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - mov r7, r12 - adds r4, r0, r7 - movs r7, 0xA - ldrsh r0, [r4, r7] - cmn r3, r0 - bne _080BA52C - movs r0, 0 - b _080BA530 - .align 2, 0 -_080BA528: .4byte gUnknown_2022982 -_080BA52C: - ldrh r0, [r4, 0xA] - negs r0, r0 -_080BA530: - strh r0, [r2] - adds r0, r1, r5 - lsls r0, 3 - add r0, r12 - ldrh r1, [r0, 0x18] - strh r1, [r0, 0xE] - ldrh r1, [r0, 0xC] - subs r1, 0x1 - strh r1, [r0, 0xC] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0 - bne _080BA55A - strh r1, [r6] - strh r1, [r2] - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _080BA55A -_080BA556: - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_080BA55A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BA4D0 - - thumb_func_start sub_80BA560 -sub_80BA560: @ 80BA560 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080BA580 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BA584 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - b _080BA58C - .align 2, 0 -_080BA580: .4byte gUnknown_2037F02 -_080BA584: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075114 -_080BA58C: - ldr r0, _080BA5A0 @ =sub_8074F50 - str r0, [r5, 0x1C] - ldr r1, _080BA5A4 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA5A0: .4byte sub_8074F50 -_080BA5A4: .4byte DestroyAnimSprite - thumb_func_end sub_80BA560 - - thumb_func_start sub_80BA5A8 -sub_80BA5A8: @ 80BA5A8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080BA5C8 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BA5CC - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - b _080BA5D4 - .align 2, 0 -_080BA5C8: .4byte gUnknown_2037F02 -_080BA5CC: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075114 -_080BA5D4: - ldr r0, _080BA5EC @ =gUnknown_2037F02 - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080BA5F0 @ =sub_8074F50 - str r0, [r5, 0x1C] - ldr r1, _080BA5F4 @ =sub_80B1D3C - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA5EC: .4byte gUnknown_2037F02 -_080BA5F0: .4byte sub_8074F50 -_080BA5F4: .4byte sub_80B1D3C - thumb_func_end sub_80BA5A8 - - thumb_func_start sub_80BA5F8 -sub_80BA5F8: @ 80BA5F8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080BA628 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BA61C - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BA61C - ldr r1, _080BA62C @ =gUnknown_2037F02 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080BA61C: - adds r0, r4, 0 - bl sub_80BA560 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA628: .4byte gUnknown_2037F1A -_080BA62C: .4byte gUnknown_2037F02 - thumb_func_end sub_80BA5F8 - - thumb_func_start sub_80BA630 -sub_80BA630: @ 80BA630 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080BA668 @ =gUnknown_2037F02 - movs r0, 0x2 - ldrsh r1, [r5, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080BA64C - bl Random - movs r1, 0x3 - ands r1, r0 - strh r1, [r5, 0x2] -_080BA64C: - ldrb r1, [r5, 0x2] - adds r0, r4, 0 - bl StartSpriteAffineAnim - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080BA66C - adds r0, r4, 0 - movs r1, 0 - bl sub_8075160 - b _080BA674 - .align 2, 0 -_080BA668: .4byte gUnknown_2037F02 -_080BA66C: - adds r0, r4, 0 - movs r1, 0 - bl sub_8075114 -_080BA674: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x30 - bl __umodsi3 - ldr r1, _080BA6B8 @ =0x0000ffe8 - adds r0, r1 - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x18 - bl __umodsi3 - ldr r1, _080BA6BC @ =0x0000fff4 - adds r0, r1 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldr r1, _080BA6C0 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080BA6C4 @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA6B8: .4byte 0x0000ffe8 -_080BA6BC: .4byte 0x0000fff4 -_080BA6C0: .4byte move_anim_8074EE0 -_080BA6C4: .4byte sub_8074F50 - thumb_func_end sub_80BA630 - - thumb_func_start sub_80BA6C8 -sub_80BA6C8: @ 80BA6C8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080BA728 @ =gUnknown_2037F02 - ldrb r0, [r5] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, _080BA72C @ =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - strh r1, [r4, 0x20] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - strh r1, [r4, 0x22] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x26] - ldrb r1, [r5, 0x6] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldr r1, _080BA730 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080BA734 @ =sub_8074F50 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA728: .4byte gUnknown_2037F02 -_080BA72C: .4byte gSprites -_080BA730: .4byte move_anim_8074EE0 -_080BA734: .4byte sub_8074F50 - thumb_func_end sub_80BA6C8 - - thumb_func_start sub_80BA738 -sub_80BA738: @ 80BA738 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080BA750 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BA754 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075160 - b _080BA75C - .align 2, 0 -_080BA750: .4byte gUnknown_2037F02 -_080BA754: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075114 -_080BA75C: - ldr r0, _080BA774 @ =gUnknown_2037F02 - ldrh r0, [r0, 0x6] - strh r0, [r4, 0x2E] - ldr r1, _080BA778 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, _080BA77C @ =sub_8074C44 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA774: .4byte gUnknown_2037F02 -_080BA778: .4byte DestroyAnimSprite -_080BA77C: .4byte sub_8074C44 - thumb_func_end sub_80BA738 - - thumb_func_start sub_80BA780 -sub_80BA780: @ 80BA780 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080BA7A0 @ =gUnknown_2037F02 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BA7A4 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075160 - b _080BA7AC - .align 2, 0 -_080BA7A0: .4byte gUnknown_2037F02 -_080BA7A4: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8075114 -_080BA7AC: - ldr r0, _080BA7B8 @ =sub_80BA7BC - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BA7B8: .4byte sub_80BA7BC - thumb_func_end sub_80BA780 - - thumb_func_start sub_80BA7BC -sub_80BA7BC: @ 80BA7BC - push {lr} - adds r3, r0, 0 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x2E] - adds r1, r0, 0x1 - strh r1, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080BA7F2 - adds r0, r3, 0 - bl DestroyAnimSprite -_080BA7F2: - pop {r0} - bx r0 - thumb_func_end sub_80BA7BC - - thumb_func_start sub_80BA7F8 -sub_80BA7F8: @ 80BA7F8 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080BA838 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r4, r1] - bl sub_80B9A14 - adds r6, r0, 0 - ldrh r3, [r4] - lsls r3, 16 - asrs r0, r3, 23 - movs r4, 0x1 - ands r0, r4 - asrs r1, r3, 24 - ands r1, r4 - asrs r2, r3, 25 - ands r2, r4 - asrs r3, 26 - ands r3, r4 - bl sub_8075CB8 - orrs r6, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80BAA4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BA838: .4byte gUnknown_2037F02 - thumb_func_end sub_80BA7F8 - - thumb_func_start sub_80BA83C -sub_80BA83C: @ 80BA83C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x1] - movs r0, 0x1 - bl sub_80B9A14 - adds r5, r0, 0 - ldr r0, _080BA868 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x7 - bhi _080BA8E6 - lsls r0, 2 - ldr r1, _080BA86C @ =_080BA870 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BA868: .4byte gUnknown_2037F02 -_080BA86C: .4byte _080BA870 - .align 2, 0 -_080BA870: - .4byte _080BA892 - .4byte _080BA89E - .4byte _080BA890 - .4byte _080BA89C - .4byte _080BA8AC - .4byte _080BA8C4 - .4byte _080BA8CC - .4byte _080BA8D8 -_080BA890: - movs r5, 0 -_080BA892: - mov r0, sp - ldr r1, _080BA898 @ =gUnknown_2037F1A - b _080BA8A2 - .align 2, 0 -_080BA898: .4byte gUnknown_2037F1A -_080BA89C: - movs r5, 0 -_080BA89E: - mov r0, sp - ldr r1, _080BA8A8 @ =gUnknown_2037F1B -_080BA8A2: - ldrb r1, [r1] - strb r1, [r0] - b _080BA8E6 - .align 2, 0 -_080BA8A8: .4byte gUnknown_2037F1B -_080BA8AC: - mov r1, sp - ldr r0, _080BA8BC @ =gUnknown_2037F1A - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080BA8C0 @ =gUnknown_2037F1B - ldrb r0, [r0] - strb r0, [r1, 0x1] - b _080BA8E6 - .align 2, 0 -_080BA8BC: .4byte gUnknown_2037F1A -_080BA8C0: .4byte gUnknown_2037F1B -_080BA8C4: - mov r1, sp - movs r0, 0xFF - strb r0, [r1] - b _080BA8E6 -_080BA8CC: - movs r5, 0 - mov r2, sp - ldr r0, _080BA8D4 @ =gUnknown_2037F1A - b _080BA8DE - .align 2, 0 -_080BA8D4: .4byte gUnknown_2037F1A -_080BA8D8: - movs r5, 0 - mov r2, sp - ldr r0, _080BA930 @ =gUnknown_2037F1B -_080BA8DE: - ldrb r0, [r0] - movs r1, 0x2 - eors r0, r1 - strb r0, [r2] -_080BA8E6: - movs r4, 0 - mov r6, sp -_080BA8EA: - ldrb r0, [r6] - cmp r4, r0 - beq _080BA914 - ldrb r0, [r6, 0x1] - cmp r4, r0 - beq _080BA914 - adds r0, r4, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080BA914 - adds r0, r4, 0 - bl sub_8075D80 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - orrs r5, r1 -_080BA914: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080BA8EA - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_80BAA4C - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA930: .4byte gUnknown_2037F1B - thumb_func_end sub_80BA83C - - thumb_func_start sub_80BA934 -sub_80BA934: @ 80BA934 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BA958 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - bl sub_80B9A14 - adds r2, r0, 0 - ldr r0, _080BA95C @ =gUnknown_2022B50 - ldrb r0, [r0] - cmp r0, 0x9 - bhi _080BAA0A - lsls r0, 2 - ldr r1, _080BA960 @ =_080BA964 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BA958: .4byte gUnknown_2037F02 -_080BA95C: .4byte gUnknown_2022B50 -_080BA960: .4byte _080BA964 - .align 2, 0 -_080BA964: - .4byte _080BA98C - .4byte _080BA99C - .4byte _080BA9A8 - .4byte _080BA9B8 - .4byte _080BA9C4 - .4byte _080BA9D4 - .4byte _080BA9E4 - .4byte _080BA9F4 - .4byte _080BAA04 - .4byte _080BAA04 -_080BA98C: - ldr r1, _080BA994 @ =gUnknown_2037F02 - ldr r0, _080BA998 @ =0x00000b0c - b _080BAA08 - .align 2, 0 -_080BA994: .4byte gUnknown_2037F02 -_080BA998: .4byte 0x00000b0c -_080BA99C: - ldr r1, _080BA9A4 @ =gUnknown_2037F02 - movs r0, 0x9E - lsls r0, 4 - b _080BAA08 - .align 2, 0 -_080BA9A4: .4byte gUnknown_2037F02 -_080BA9A8: - ldr r1, _080BA9B0 @ =gUnknown_2037F02 - ldr r0, _080BA9B4 @ =0x00002f1e - b _080BAA08 - .align 2, 0 -_080BA9B0: .4byte gUnknown_2037F02 -_080BA9B4: .4byte 0x00002f1e -_080BA9B8: - ldr r1, _080BA9C0 @ =gUnknown_2037F02 - movs r0, 0x90 - lsls r0, 7 - b _080BAA08 - .align 2, 0 -_080BA9C0: .4byte gUnknown_2037F02 -_080BA9C4: - ldr r1, _080BA9CC @ =gUnknown_2037F02 - ldr r0, _080BA9D0 @ =0x00007ecb - b _080BAA08 - .align 2, 0 -_080BA9CC: .4byte gUnknown_2037F02 -_080BA9D0: .4byte 0x00007ecb -_080BA9D4: - ldr r1, _080BA9DC @ =gUnknown_2037F02 - ldr r0, _080BA9E0 @ =0x00007ecb - b _080BAA08 - .align 2, 0 -_080BA9DC: .4byte gUnknown_2037F02 -_080BA9E0: .4byte 0x00007ecb -_080BA9E4: - ldr r1, _080BA9EC @ =gUnknown_2037F02 - ldr r0, _080BA9F0 @ =0x00002a16 - b _080BAA08 - .align 2, 0 -_080BA9EC: .4byte gUnknown_2037F02 -_080BA9F0: .4byte 0x00002a16 -_080BA9F4: - ldr r1, _080BA9FC @ =gUnknown_2037F02 - ldr r0, _080BAA00 @ =0x00000d2e - b _080BAA08 - .align 2, 0 -_080BA9FC: .4byte gUnknown_2037F02 -_080BAA00: .4byte 0x00000d2e -_080BAA04: - ldr r1, _080BAA18 @ =gUnknown_2037F02 - ldr r0, _080BAA1C @ =0x00007fff -_080BAA08: - strh r0, [r1, 0x8] -_080BAA0A: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80BAA4C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BAA18: .4byte gUnknown_2037F02 -_080BAA1C: .4byte 0x00007fff - thumb_func_end sub_80BA934 - - thumb_func_start sub_80BAA20 -sub_80BAA20: @ 80BAA20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080BAA48 @ =gUnknown_2037F02 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - adds r0, r4, 0 - bl sub_80BAA4C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BAA48: .4byte gUnknown_2037F02 - thumb_func_end sub_80BAA20 - - thumb_func_start sub_80BAA4C -sub_80BAA4C: @ 80BAA4C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080BAA84 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - strh r1, [r2, 0x8] - lsrs r1, 16 - strh r1, [r2, 0xA] - ldr r3, _080BAA88 @ =gUnknown_2037F02 - ldrh r1, [r3, 0x2] - strh r1, [r2, 0xC] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0xE] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0x10] - ldrh r1, [r3, 0x8] - strh r1, [r2, 0x12] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0x1C] - ldr r1, _080BAA8C @ =sub_80BAA90 - str r1, [r2] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080BAA84: .4byte gTasks -_080BAA88: .4byte gUnknown_2037F02 -_080BAA8C: .4byte sub_80BAA90 - thumb_func_end sub_80BAA4C - - thumb_func_start sub_80BAA90 -sub_80BAA90: @ 80BAA90 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - ldr r2, _080BAB10 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1A] - mov r8, r0 - movs r4, 0x1A - ldrsh r1, [r3, r4] - movs r4, 0xC - ldrsh r0, [r3, r4] - mov r9, r2 - cmp r1, r0 - bne _080BAB26 - strh r6, [r3, 0x1A] - movs r0, 0x8 - ldrsh r4, [r3, r0] - movs r1, 0xA - ldrsh r0, [r3, r1] - lsls r0, 16 - orrs r4, r0 - mov r8, r5 - cmp r4, 0 - beq _080BAAF2 - adds r5, r3, 0 -_080BAAD0: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080BAAE4 - ldrb r2, [r5, 0x1C] - ldrh r3, [r5, 0x12] - adds r0, r6, 0 - movs r1, 0x10 - bl BlendPalette -_080BAAE4: - adds r0, r6, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r4, 1 - cmp r4, 0 - bne _080BAAD0 -_080BAAF2: - mov r4, r8 - adds r0, r4, r7 - lsls r0, 3 - mov r1, r9 - adds r2, r0, r1 - ldrh r0, [r2, 0x1C] - movs r4, 0x1C - ldrsh r3, [r2, r4] - movs r4, 0x10 - ldrsh r1, [r2, r4] - cmp r3, r1 - bge _080BAB14 - adds r0, 0x1 - strh r0, [r2, 0x1C] - b _080BAB2C - .align 2, 0 -_080BAB10: .4byte gTasks -_080BAB14: - cmp r3, r1 - ble _080BAB1E - subs r0, 0x1 - strh r0, [r2, 0x1C] - b _080BAB2C -_080BAB1E: - adds r0, r7, 0 - bl DestroyAnimVisualTask - b _080BAB2C -_080BAB26: - mov r0, r8 - adds r0, 0x1 - strh r0, [r3, 0x1A] -_080BAB2C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BAA90 - - thumb_func_start sub_80BAB38 -sub_80BAB38: @ 80BAB38 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080BAB6C @ =gUnknown_2037F02 - ldrb r0, [r4] - ldrb r1, [r4, 0x2] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - ldrb r4, [r4, 0x8] - str r4, [sp] - bl BeginHardwarePaletteFade - ldr r1, _080BAB70 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BAB74 @ =sub_80BAB78 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BAB6C: .4byte gUnknown_2037F02 -_080BAB70: .4byte gTasks -_080BAB74: .4byte sub_80BAB78 - thumb_func_end sub_80BAB38 - - thumb_func_start sub_80BAB78 -sub_80BAB78: @ 80BAB78 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080BAB94 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BAB90 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080BAB90: - pop {r0} - bx r0 - .align 2, 0 -_080BAB94: .4byte gPaletteFade - thumb_func_end sub_80BAB78 - - thumb_func_start sub_80BAB98 -sub_80BAB98: @ 80BAB98 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080BABC4 @ =gTasks - adds r1, r0 - ldr r2, _080BABC8 @ =gUnknown_2037F02 - ldrh r0, [r2] - movs r3, 0 - strh r0, [r1, 0x8] - strh r3, [r1, 0xA] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0xC] - ldrh r0, [r2, 0x4] - strh r0, [r1, 0xE] - ldrh r0, [r2, 0x6] - strh r0, [r1, 0x10] - strh r3, [r1, 0x12] - ldr r0, _080BABCC @ =sub_80BABD0 - str r0, [r1] - bx lr - .align 2, 0 -_080BABC4: .4byte gTasks -_080BABC8: .4byte gUnknown_2037F02 -_080BABCC: .4byte sub_80BABD0 - thumb_func_end sub_80BAB98 - - thumb_func_start sub_80BABD0 -sub_80BABD0: @ 80BABD0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080BABFC @ =gTasks - adds r4, r0, r1 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080BAC94 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080BAC00 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - b _080BACA2 - .align 2, 0 -_080BABFC: .4byte gTasks -_080BAC00: - ldrb r0, [r4, 0x8] - bl duplicate_obj_of_side_rel2move_in_transparent_mode - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - blt _080BAC7E - ldr r6, _080BAC8C @ =gSprites - movs r1, 0x14 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r3, r1, r6 - movs r2, 0x8 - ldrsh r0, [r4, r2] - movs r2, 0x2 - cmp r0, 0 - beq _080BAC28 - movs r2, 0x1 -_080BAC28: - lsls r2, 2 - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x5] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0xE] - strh r1, [r0, 0x2E] - movs r2, 0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r5, [r0, 0x30] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - strh r1, [r0, 0x32] - movs r2, 0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080BAC90 @ =sub_80BACA8 - str r1, [r0] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] -_080BAC7E: - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - strh r0, [r4, 0xA] - b _080BACA2 - .align 2, 0 -_080BAC8C: .4byte gSprites -_080BAC90: .4byte sub_80BACA8 -_080BAC94: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BACA2 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080BACA2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BABD0 - - thumb_func_start sub_80BACA8 -sub_80BACA8: @ 80BACA8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080BACBC - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080BACE0 -_080BACBC: - ldr r3, _080BACE8 @ =gTasks - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl obj_delete_but_dont_free_vram -_080BACE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BACE8: .4byte gTasks - thumb_func_end sub_80BACA8 - - thumb_func_start sub_80BACEC -sub_80BACEC: @ 80BACEC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r0, _080BAE20 @ =gUnknown_2022984 - strh r7, [r0] - ldr r0, _080BAE24 @ =gUnknown_2022986 - strh r7, [r0] - ldr r1, _080BAE28 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080BAE2C @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - movs r1, 0x80 - lsls r1, 8 - movs r0, 0 - bl SetGpuRegBits - ldr r1, _080BAE30 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _080BAE34 @ =0x00000c08 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0xA - bl GetGpuReg - add r4, sp, 0x10 - strh r0, [r4] - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - mov r8, r0 - ands r0, r1 - strb r0, [r4] - mov r2, sp - adds r2, 0x11 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2] - ldrh r1, [r4] - movs r0, 0xA - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BAD7A - ldrb r1, [r4] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r4] - movs r0, 0xA - bl SetGpuReg -_080BAD7A: - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080BADFE - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BADFE - ldr r5, _080BAE38 @ =gUnknown_2037F1A - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080BADAA - ldrb r0, [r5] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - bne _080BADFE -_080BADAA: - ldrb r0, [r5] - movs r6, 0x2 - eors r0, r6 - bl sub_8072DF0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BADFE - ldr r3, _080BAE3C @ =gSprites - ldr r1, _080BAE40 @ =gUnknown_2023D44 - ldrb r0, [r5] - eors r0, r6 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r4] - mov r0, r8 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r4] - movs r0, 0xA - bl SetGpuReg - movs r7, 0x1 -_080BADFE: - ldr r4, _080BAE38 @ =gUnknown_2037F1A - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BAE4C - ldr r1, _080BAE44 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BAE48 @ =gEnemyParty - b _080BAE5C - .align 2, 0 -_080BAE20: .4byte gUnknown_2022984 -_080BAE24: .4byte gUnknown_2022986 -_080BAE28: .4byte 0x00003f3f -_080BAE2C: .4byte 0x00003f3d -_080BAE30: .4byte 0x00003f42 -_080BAE34: .4byte 0x00000c08 -_080BAE38: .4byte gUnknown_2037F1A -_080BAE3C: .4byte gSprites -_080BAE40: .4byte gUnknown_2023D44 -_080BAE44: .4byte gBattlerPartyIndexes -_080BAE48: .4byte gEnemyParty -_080BAE4C: - ldr r1, _080BAF0C @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BAF10 @ =gPlayerParty -_080BAE5C: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r0, _080BAF14 @ =gUnknown_2037F1A - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8076E34 - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap - bl sub_807543C - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080BAEAC - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080BAEAC: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BAF1C @ =gFile_graphics_battle_anims_masks_curse_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080BAF20 @ =gUnknown_83E7CC8 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - adds r1, 0x1 - movs r2, 0x2 - bl LoadPalette - ldr r2, _080BAF24 @ =gUnknown_2022978 - ldr r0, _080BAF28 @ =gSprites - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldr r2, _080BAF2C @ =gUnknown_202297A - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldr r1, _080BAF30 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - strh r7, [r0, 0x14] - ldr r1, _080BAF34 @ =sub_80BAF38 - str r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BAF0C: .4byte gBattlerPartyIndexes -_080BAF10: .4byte gPlayerParty -_080BAF14: .4byte gUnknown_2037F1A -_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap -_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet -_080BAF20: .4byte gUnknown_83E7CC8 -_080BAF24: .4byte gUnknown_2022978 -_080BAF28: .4byte gSprites -_080BAF2C: .4byte gUnknown_202297A -_080BAF30: .4byte gTasks -_080BAF34: .4byte sub_80BAF38 - thumb_func_end sub_80BACEC - - thumb_func_start sub_80BAF38 -sub_80BAF38: @ 80BAF38 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080BB068 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x1C] - adds r0, 0x4 - movs r1, 0 - mov r8, r1 - strh r0, [r5, 0x1C] - ldr r7, _080BB06C @ =gUnknown_202297A - ldrh r2, [r7] - subs r1, r2, 0x4 - strh r1, [r7] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _080BB05A - mov r0, r8 - strh r0, [r5, 0x1C] - adds r0, r2, 0 - adds r0, 0x3C - strh r0, [r7] - ldrh r0, [r5, 0x1E] - adds r0, 0x1 - strh r0, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080BB05A - movs r0, 0 - bl sub_8073128 - ldr r0, _080BB070 @ =gUnknown_2022984 - mov r1, r8 - strh r1, [r0] - ldr r0, _080BB074 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080BB078 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BAFCA - movs r0, 0xA - bl GetGpuReg - add r1, sp, 0x10 - strh r0, [r1] - ldrb r2, [r1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrh r1, [r1] - movs r0, 0xA - bl SetGpuReg -_080BAFCA: - movs r0, 0 - bl GetGpuReg - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - eors r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl GetAnimBankSpriteId - ldr r4, _080BB07C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - bl sub_8075358 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080BB050 - ldr r2, _080BB080 @ =gUnknown_2023D44 - ldr r0, _080BB084 @ =gUnknown_2037F1A - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080BB050: - mov r2, r8 - strh r2, [r7] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080BB05A: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BB068: .4byte gTasks -_080BB06C: .4byte gUnknown_202297A -_080BB070: .4byte gUnknown_2022984 -_080BB074: .4byte gUnknown_2022986 -_080BB078: .4byte 0x00003f3f -_080BB07C: .4byte gSprites -_080BB080: .4byte gUnknown_2023D44 -_080BB084: .4byte gUnknown_2037F1A - thumb_func_end sub_80BAF38 - - thumb_func_start sub_80BB088 -sub_80BB088: @ 80BB088 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080BB0C8 @ =gUnknown_20399B4 - movs r0, 0x18 - bl AllocZeroed - str r0, [r4] - movs r2, 0 - ldr r3, _080BB0CC @ =gUnknown_2037F02 -_080BB09C: - ldr r1, [r4] - lsls r0, r2, 1 - adds r1, 0x4 - adds r1, r0 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _080BB09C - ldr r0, _080BB0D0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BB0D4 @ =sub_80BB0D8 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BB0C8: .4byte gUnknown_20399B4 -_080BB0CC: .4byte gUnknown_2037F02 -_080BB0D0: .4byte gTasks -_080BB0D4: .4byte sub_80BB0D8 - thumb_func_end sub_80BB088 - - thumb_func_start sub_80BB0D8 -sub_80BB0D8: @ 80BB0D8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080BB0F0 @ =gUnknown_20399B4 - ldr r1, [r0] - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080BB0F8 - ldr r0, _080BB0F4 @ =gUnknown_2037F1A - b _080BB0FA - .align 2, 0 -_080BB0F0: .4byte gUnknown_20399B4 -_080BB0F4: .4byte gUnknown_2037F1A -_080BB0F8: - ldr r0, _080BB230 @ =gUnknown_2037F1B -_080BB0FA: - ldrb r0, [r0] - strb r0, [r1] - ldr r4, _080BB234 @ =gUnknown_20399B4 - ldr r2, [r4] - ldrb r0, [r2] - movs r1, 0x2 - eors r0, r1 - strb r0, [r2, 0x1] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BB12A - ldr r1, [r4] - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080BB130 - ldrb r0, [r1, 0x1] - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - bne _080BB130 -_080BB12A: - ldr r1, [r4] - movs r0, 0 - strh r0, [r1, 0xA] -_080BB130: - ldr r0, _080BB238 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BB23C @ =gUnknown_2022986 - strh r1, [r0] - ldr r1, _080BB240 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080BB244 @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - movs r1, 0x80 - lsls r1, 8 - movs r0, 0 - bl SetGpuRegBits - ldr r1, _080BB248 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0 - bl SetAnimBgAttribute - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BB18E - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl SetAnimBgAttribute -_080BB18E: - bl sub_8075290 - lsls r0, 24 - cmp r0, 0 - beq _080BB20A - ldr r4, _080BB234 @ =gUnknown_20399B4 - ldr r1, [r4] - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080BB20A - ldrb r0, [r1] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080BB1C0 - ldr r0, [r4] - ldrb r0, [r0] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - bne _080BB20A -_080BB1C0: - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8072DF0 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _080BB20A - ldr r3, _080BB24C @ =gSprites - ldr r1, _080BB250 @ =gUnknown_2023D44 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x1 - movs r1, 0x4 - movs r2, 0x1 - bl SetAnimBgAttribute - ldr r0, [r4] - strb r5, [r0, 0x2] -_080BB20A: - ldr r4, _080BB234 @ =gUnknown_20399B4 - ldr r0, [r4] - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BB25C - ldr r1, _080BB254 @ =gBattlerPartyIndexes - ldr r0, [r4] - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BB258 @ =gEnemyParty - b _080BB26E - .align 2, 0 -_080BB230: .4byte gUnknown_2037F1B -_080BB234: .4byte gUnknown_20399B4 -_080BB238: .4byte gUnknown_2022984 -_080BB23C: .4byte gUnknown_2022986 -_080BB240: .4byte 0x00003f3f -_080BB244: .4byte 0x00003f3d -_080BB248: .4byte 0x00003f42 -_080BB24C: .4byte gSprites -_080BB250: .4byte gUnknown_2023D44 -_080BB254: .4byte gBattlerPartyIndexes -_080BB258: .4byte gEnemyParty -_080BB25C: - ldr r1, _080BB290 @ =gBattlerPartyIndexes - ldr r0, [r4] - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BB294 @ =gPlayerParty -_080BB26E: - adds r0, r1 - movs r1, 0xB - bl GetMonData - ldr r1, [r4] - strh r0, [r1, 0x14] - ldr r0, _080BB298 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BB29C @ =sub_80BB2A0 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB290: .4byte gBattlerPartyIndexes -_080BB294: .4byte gPlayerParty -_080BB298: .4byte gTasks -_080BB29C: .4byte sub_80BB2A0 - thumb_func_end sub_80BB0D8 - - thumb_func_start sub_80BB2A0 -sub_80BB2A0: @ 80BB2A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - mov r8, r0 - ldr r6, _080BB300 @ =gUnknown_2023D44 - ldr r4, _080BB304 @ =gUnknown_20399B4 - ldr r2, [r4] - ldrb r0, [r2] - adds r1, r0, r6 - ldrb r1, [r1] - ldrh r2, [r2, 0x14] - bl sub_8076E34 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, [r4] - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080BB2E2 - ldrb r0, [r2, 0x1] - adds r1, r0, r6 - ldrb r1, [r1] - ldrh r2, [r2, 0x14] - bl sub_8076E34 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080BB2E2: - mov r0, sp - bl sub_80752A0 - ldr r0, [r4] - movs r4, 0x4 - ldrsh r0, [r0, r4] - cmp r0, 0 - bne _080BB30C - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BB308 @ =gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap - bl sub_807543C - b _080BB316 - .align 2, 0 -_080BB300: .4byte gUnknown_2023D44 -_080BB304: .4byte gUnknown_20399B4 -_080BB308: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap -_080BB30C: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap - bl sub_807543C -_080BB316: - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080BB32E - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080BB32E: - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, _080BB358 @ =gFile_graphics_battle_anims_masks_stat_sheet - mov r2, sp - ldrh r2, [r2, 0xA] - bl sub_80753B4 - ldr r0, _080BB35C @ =gUnknown_20399B4 - ldr r0, [r0] - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0x6 - bhi _080BB3C4 - lsls r0, 2 - ldr r1, _080BB360 @ =_080BB364 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BB354: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap -_080BB358: .4byte gFile_graphics_battle_anims_masks_stat_sheet -_080BB35C: .4byte gUnknown_20399B4 -_080BB360: .4byte _080BB364 - .align 2, 0 -_080BB364: - .4byte _080BB380 - .4byte _080BB388 - .4byte _080BB390 - .4byte _080BB398 - .4byte _080BB3A0 - .4byte _080BB3A8 - .4byte _080BB3B0 -_080BB380: - ldr r0, _080BB384 @ =gFile_graphics_battle_anims_masks_stat2_palette - b _080BB3B2 - .align 2, 0 -_080BB384: .4byte gFile_graphics_battle_anims_masks_stat2_palette -_080BB388: - ldr r0, _080BB38C @ =gFile_graphics_battle_anims_masks_stat1_palette - b _080BB3B2 - .align 2, 0 -_080BB38C: .4byte gFile_graphics_battle_anims_masks_stat1_palette -_080BB390: - ldr r0, _080BB394 @ =gFile_graphics_battle_anims_masks_stat3_palette - b _080BB3B2 - .align 2, 0 -_080BB394: .4byte gFile_graphics_battle_anims_masks_stat3_palette -_080BB398: - ldr r0, _080BB39C @ =gFile_graphics_battle_anims_masks_stat4_palette - b _080BB3B2 - .align 2, 0 -_080BB39C: .4byte gFile_graphics_battle_anims_masks_stat4_palette -_080BB3A0: - ldr r0, _080BB3A4 @ =gFile_graphics_battle_anims_masks_stat6_palette - b _080BB3B2 - .align 2, 0 -_080BB3A4: .4byte gFile_graphics_battle_anims_masks_stat6_palette -_080BB3A8: - ldr r0, _080BB3AC @ =gFile_graphics_battle_anims_masks_stat7_palette - b _080BB3B2 - .align 2, 0 -_080BB3AC: .4byte gFile_graphics_battle_anims_masks_stat7_palette -_080BB3B0: - ldr r0, _080BB3C0 @ =gFile_graphics_battle_anims_masks_stat8_palette -_080BB3B2: - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080BB3D2 - .align 2, 0 -_080BB3C0: .4byte gFile_graphics_battle_anims_masks_stat8_palette -_080BB3C4: - ldr r0, _080BB3FC @ =gFile_graphics_battle_anims_masks_stat5_palette - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080BB3D2: - ldr r3, _080BB400 @ =gUnknown_2022978 - movs r2, 0 - strh r2, [r3] - ldr r0, _080BB404 @ =gUnknown_202297A - strh r2, [r0] - ldr r1, _080BB408 @ =gUnknown_20399B4 - ldr r0, [r1] - movs r4, 0x4 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0x1 - bne _080BB414 - movs r0, 0x40 - strh r0, [r3] - ldr r2, _080BB40C @ =gTasks - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - ldr r1, _080BB410 @ =0x0000fffd - b _080BB420 - .align 2, 0 -_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette -_080BB400: .4byte gUnknown_2022978 -_080BB404: .4byte gUnknown_202297A -_080BB408: .4byte gUnknown_20399B4 -_080BB40C: .4byte gTasks -_080BB410: .4byte 0x0000fffd -_080BB414: - ldr r2, _080BB43C @ =gTasks - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x3 -_080BB420: - strh r1, [r0, 0xA] - ldr r0, [r4] - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BB440 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0xA - strh r1, [r0, 0x10] - movs r1, 0x14 - b _080BB44C - .align 2, 0 -_080BB43C: .4byte gTasks -_080BB440: - adds r0, r3, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0xD - strh r1, [r0, 0x10] - movs r1, 0x1E -_080BB44C: - strh r1, [r0, 0x12] - adds r1, r3, r5 - lsls r1, 3 - adds r1, r2 - strh r7, [r1, 0x8] - ldr r3, [r4] - ldrh r0, [r3, 0xA] - strh r0, [r1, 0xC] - mov r4, r8 - strh r4, [r1, 0xE] - ldrb r0, [r3, 0x2] - strh r0, [r1, 0x14] - ldr r2, _080BB490 @ =gUnknown_2023D44 - ldrb r0, [r3, 0x1] - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1, 0x16] - ldr r0, _080BB494 @ =sub_80BB4B8 - str r0, [r1] - movs r1, 0x4 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080BB498 - movs r0, 0x40 - negs r0, r0 - bl sub_8073B08 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xE8 - bl PlaySE12WithPanning - b _080BB4AC - .align 2, 0 -_080BB490: .4byte gUnknown_2023D44 -_080BB494: .4byte sub_80BB4B8 -_080BB498: - movs r0, 0x40 - negs r0, r0 - bl sub_8073B08 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xEE - bl PlaySE12WithPanning -_080BB4AC: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB2A0 - - thumb_func_start sub_80BB4B8 -sub_80BB4B8: @ 80BB4B8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080BB4E4 @ =gUnknown_202297A - ldr r1, _080BB4E8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0xA] - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - movs r0, 0x26 - ldrsh r2, [r5, r0] - cmp r2, 0x1 - beq _080BB52E - cmp r2, 0x1 - bgt _080BB4EC - cmp r2, 0 - beq _080BB4F6 - b _080BB644 - .align 2, 0 -_080BB4E4: .4byte gUnknown_202297A -_080BB4E8: .4byte gTasks -_080BB4EC: - cmp r2, 0x2 - beq _080BB544 - cmp r2, 0x3 - beq _080BB582 - b _080BB644 -_080BB4F6: - ldrh r0, [r5, 0x1E] - adds r1, r0, 0x1 - strh r1, [r5, 0x1E] - lsls r0, 16 - cmp r0, 0 - bgt _080BB504 - b _080BB644 -_080BB504: - strh r2, [r5, 0x1E] - ldrh r1, [r5, 0x20] - adds r1, 0x1 - strh r1, [r5, 0x20] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - beq _080BB52C - b _080BB644 -_080BB52C: - b _080BB57A -_080BB52E: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r5, r2] - cmp r0, r1 - beq _080BB542 - b _080BB644 -_080BB542: - b _080BB57A -_080BB544: - ldrh r0, [r5, 0x1E] - adds r1, r0, 0x1 - strh r1, [r5, 0x1E] - lsls r0, 16 - cmp r0, 0 - ble _080BB644 - movs r0, 0 - strh r0, [r5, 0x1E] - ldrh r1, [r5, 0x20] - subs r1, 0x1 - strh r1, [r5, 0x20] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x20 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080BB644 - movs r0, 0 - bl sub_8073128 -_080BB57A: - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] - b _080BB644 -_080BB582: - ldr r0, _080BB64C @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BB650 @ =gUnknown_2022986 - strh r1, [r0] - ldr r4, _080BB654 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BB5B2 - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl SetAnimBgAttribute -_080BB5B2: - movs r0, 0 - bl GetGpuReg - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - eors r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080BB658 @ =gSprites - adds r0, r4 - bl DestroySprite - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080BB606 - movs r2, 0xE - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_080BB606: - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080BB632 - movs r2, 0x16 - ldrsh r0, [r5, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080BB632: - ldr r4, _080BB65C @ =gUnknown_20399B4 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080BB644: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB64C: .4byte gUnknown_2022984 -_080BB650: .4byte gUnknown_2022986 -_080BB654: .4byte 0x00003f3f -_080BB658: .4byte gSprites -_080BB65C: .4byte gUnknown_20399B4 - thumb_func_end sub_80BB4B8 - - thumb_func_start sub_80BB660 -sub_80BB660: @ 80BB660 - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8075CB8 - adds r6, r0, 0 - movs r1, 0 - bl sub_80BB790 - ldr r0, _080BB6C0 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - lsrs r0, r6, 16 - movs r5, 0 - strh r0, [r4, 0x24] - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - adds r6, r0, 0 - ldr r1, _080BB6C4 @ =0x0000ffff - ands r6, r1 - adds r0, r6, 0 - bl sub_80BB790 - strh r6, [r4, 0x26] - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - ldr r0, _080BB6C8 @ =sub_80BB6CC - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB6C0: .4byte gTasks -_080BB6C4: .4byte 0x0000ffff -_080BB6C8: .4byte sub_80BB6CC - thumb_func_end sub_80BB660 - - thumb_func_start sub_80BB6CC -sub_80BB6CC: @ 80BB6CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080BB6F0 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080BB710 - cmp r1, 0x1 - bgt _080BB6F4 - cmp r1, 0 - beq _080BB6FA - b _080BB78A - .align 2, 0 -_080BB6F0: .4byte gTasks -_080BB6F4: - cmp r1, 0x2 - beq _080BB784 - b _080BB78A -_080BB6FA: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080BB78A - strh r1, [r4, 0xA] - movs r0, 0x10 - strh r0, [r4, 0xC] - b _080BB778 -_080BB710: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080BB78A - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - movs r5, 0 - movs r6, 0x1 -_080BB72C: - movs r1, 0x26 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, 0 - beq _080BB746 - lsls r0, r5, 20 - lsrs r0, 16 - ldrb r2, [r4, 0xC] - movs r1, 0x10 - ldr r3, _080BB780 @ =0x0000ffff - bl BlendPalette -_080BB746: - movs r1, 0x24 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, 0 - beq _080BB766 - lsls r0, r5, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldrb r2, [r4, 0xC] - movs r1, 0x10 - movs r3, 0 - bl BlendPalette -_080BB766: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080BB72C - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080BB78A -_080BB778: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080BB78A - .align 2, 0 -_080BB780: .4byte 0x0000ffff -_080BB784: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080BB78A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BB6CC - - thumb_func_start sub_80BB790 -sub_80BB790: @ 80BB790 - push {r4-r6,lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - movs r2, 0 -_080BB79A: - movs r0, 0x1 - ands r0, r3 - lsrs r4, r3, 1 - adds r5, r2, 0x1 - cmp r0, 0 - beq _080BB7C6 - lsls r0, r2, 20 - lsrs r2, r0, 16 - adds r0, r2, 0 - adds r0, 0x10 - cmp r2, r0 - bge _080BB7C6 - ldr r1, _080BB7D8 @ =gPlttBufferFaded - adds r3, r0, 0 -_080BB7B6: - lsls r0, r2, 1 - adds r0, r1 - strh r6, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - blt _080BB7B6 -_080BB7C6: - adds r3, r4, 0 - lsls r0, r5, 16 - lsrs r2, r0, 16 - cmp r2, 0x1F - bls _080BB79A - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB7D8: .4byte gPlttBufferFaded - thumb_func_end sub_80BB790 - - thumb_func_start sub_80BB7DC -sub_80BB7DC: @ 80BB7DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - movs r2, 0 - ldr r0, _080BB824 @ =gUnknown_2037F1A - ldrb r3, [r0] - movs r5, 0x1 -_080BB7EC: - cmp r3, r2 - beq _080BB7FA - adds r1, r2, 0 - adds r1, 0x10 - adds r0, r5, 0 - lsls r0, r1 - orrs r4, r0 -_080BB7FA: - adds r2, 0x1 - cmp r2, 0x3 - bls _080BB7EC - movs r2, 0x5 - ldr r0, _080BB828 @ =gUnknown_2037F02 - adds r1, r0, 0 - adds r1, 0x8 -_080BB808: - ldrh r0, [r1] - strh r0, [r1, 0x2] - subs r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080BB808 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80BAA4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB824: .4byte gUnknown_2037F1A -_080BB828: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB7DC - - thumb_func_start sub_80BB82C -sub_80BB82C: @ 80BB82C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl sub_8075458 - ldr r0, _080BB894 @ =sub_80BB8A4 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080BB898 @ =gUnknown_2037F02 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080BB868 - ldr r0, _080BB89C @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BB868 - ldrh r0, [r4] - negs r0, r0 - strh r0, [r4] - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] -_080BB868: - ldr r0, _080BB8A0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r2, _080BB898 @ =gUnknown_2037F02 - ldrh r0, [r2] - strh r0, [r1, 0xA] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0xC] - ldrh r0, [r2, 0x6] - strh r0, [r1, 0xE] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - adds r0, r6, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB894: .4byte sub_80BB8A4 -_080BB898: .4byte gUnknown_2037F02 -_080BB89C: .4byte gUnknown_2037F1A -_080BB8A0: .4byte gTasks - thumb_func_end sub_80BB82C - - thumb_func_start sub_80BB8A4 -sub_80BB8A4: @ 80BB8A4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080BB910 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r3, [r1, 0xA] - ldrh r0, [r1, 0x1C] - adds r3, r0 - movs r4, 0 - mov r12, r4 - strh r3, [r1, 0x1C] - ldrh r2, [r1, 0xC] - ldrh r7, [r1, 0x1E] - adds r2, r7 - strh r2, [r1, 0x1E] - ldr r6, _080BB914 @ =gUnknown_2022980 - lsls r0, r3, 16 - asrs r0, 24 - ldrh r4, [r6] - adds r0, r4 - strh r0, [r6] - ldr r4, _080BB918 @ =gUnknown_2022982 - lsls r0, r2, 16 - asrs r0, 24 - ldrh r7, [r4] - adds r0, r7 - strh r0, [r4] - movs r0, 0xFF - ands r3, r0 - strh r3, [r1, 0x1C] - ands r2, r0 - strh r2, [r1, 0x1E] - ldr r0, _080BB91C @ =gUnknown_2037F02 - movs r3, 0xE - ldrsh r2, [r0, r3] - movs r7, 0xE - ldrsh r0, [r1, r7] - cmp r2, r0 - bne _080BB90A - mov r0, r12 - strh r0, [r6] - strh r0, [r4] - movs r0, 0x1 - bl sub_8075458 - adds r0, r5, 0 - bl DestroyTask -_080BB90A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BB910: .4byte gTasks -_080BB914: .4byte gUnknown_2022980 -_080BB918: .4byte gUnknown_2022982 -_080BB91C: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB8A4 - - thumb_func_start sub_80BB920 -sub_80BB920: @ 80BB920 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080BB944 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - ldr r1, _080BB948 @ =gUnknown_2037F02 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xE] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB944: .4byte gUnknown_2037F1A -_080BB948: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB920 - - thumb_func_start sub_80BB94C -sub_80BB94C: @ 80BB94C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080BB970 @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - ldr r1, _080BB974 @ =gUnknown_2037F02 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xE] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB970: .4byte gUnknown_2037F1B -_080BB974: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB94C - - thumb_func_start sub_80BB978 -sub_80BB978: @ 80BB978 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r5, _080BB9A4 @ =gUnknown_2037F02 - movs r4, 0 - ldr r0, _080BB9A8 @ =gUnknown_2037F1A - ldrb r2, [r0] - movs r0, 0x2 - ldr r1, _080BB9AC @ =gUnknown_2037F1B - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bne _080BB994 - movs r4, 0x1 -_080BB994: - strh r4, [r5, 0xE] - adds r0, r3, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BB9A4: .4byte gUnknown_2037F02 -_080BB9A8: .4byte gUnknown_2037F1A -_080BB9AC: .4byte gUnknown_2037F1B - thumb_func_end sub_80BB978 - - thumb_func_start sub_80BB9B0 -sub_80BB9B0: @ 80BB9B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r6, _080BBA10 @ =gSprites -_080BB9BA: - ldr r0, _080BBA14 @ =gUnknown_2037F1A - ldrb r0, [r0] - cmp r4, r0 - beq _080BB9F8 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - beq _080BB9F8 - ldr r0, _080BBA18 @ =gUnknown_2023D44 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldr r1, _080BBA1C @ =gUnknown_2037F02 - adds r2, 0x3E - movs r0, 0x1 - ldrb r3, [r1] - ands r3, r0 - lsls r3, 2 - ldrb r0, [r2] - movs r7, 0x5 - negs r7, r7 - adds r1, r7, 0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080BB9F8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080BB9BA - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BBA10: .4byte gSprites -_080BBA14: .4byte gUnknown_2037F1A -_080BBA18: .4byte gUnknown_2023D44 -_080BBA1C: .4byte gUnknown_2037F02 - thumb_func_end sub_80BB9B0 - - thumb_func_start sub_80BBA20 -sub_80BBA20: @ 80BBA20 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r1, [sp, 0x44] - ldr r4, [sp, 0x48] - ldr r5, [sp, 0x4C] - ldr r6, [sp, 0x50] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x14] - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x18] - lsls r5, 24 - lsrs r5, 24 - str r5, [sp, 0x1C] - lsls r6, 24 - lsrs r6, 24 - mov r10, r6 - movs r0, 0 - str r0, [sp, 0x20] - movs r0, 0x2 - adds r6, r7, 0 - eors r6, r0 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BBA82 - mov r1, r8 - cmp r1, 0 - beq _080BBA86 - adds r0, r6, 0 - bl sub_8072DF0 - lsls r0, 24 - cmp r0, 0 - bne _080BBA86 -_080BBA82: - movs r2, 0 - mov r8, r2 -_080BBA86: - ldr r0, _080BBB20 @ =gUnknown_2022984 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BBB24 @ =gUnknown_2022986 - strh r1, [r0] - ldr r1, _080BBB28 @ =0x00003f3f - movs r0, 0x48 - bl SetGpuReg - ldr r1, _080BBB2C @ =0x00003f3d - movs r0, 0x4A - bl SetGpuReg - movs r1, 0x80 - lsls r1, 8 - movs r0, 0 - bl SetGpuRegBits - ldr r1, _080BBB30 @ =0x00003f42 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0xA - bl GetGpuReg - add r4, sp, 0x10 - strh r0, [r4] - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - mov r2, sp - adds r2, 0x11 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2] - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BBAFC - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080BBAFC: - ldrh r1, [r4] - movs r0, 0xA - bl SetGpuReg - adds r0, r7, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080BBB3C - ldr r1, _080BBB34 @ =gBattlerPartyIndexes - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BBB38 @ =gEnemyParty - b _080BBB4A - .align 2, 0 -_080BBB20: .4byte gUnknown_2022984 -_080BBB24: .4byte gUnknown_2022986 -_080BBB28: .4byte 0x00003f3f -_080BBB2C: .4byte 0x00003f3d -_080BBB30: .4byte 0x00003f42 -_080BBB34: .4byte gBattlerPartyIndexes -_080BBB38: .4byte gEnemyParty -_080BBB3C: - ldr r1, _080BBC10 @ =gBattlerPartyIndexes - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BBC14 @ =gPlayerParty -_080BBB4A: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, _080BBC18 @ =gUnknown_2023D44 - adds r0, r7, r5 - ldrb r1, [r0] - adds r0, r7, 0 - adds r2, r4, 0 - bl sub_8076E34 - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, r8 - cmp r0, 0 - beq _080BBB80 - adds r0, r6, r5 - ldrb r1, [r0] - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_8076E34 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x20] -_080BBB80: - mov r0, sp - bl sub_80752A0 - mov r0, sp - ldrb r0, [r0, 0x9] - ldr r1, [sp, 0x58] - bl sub_807543C - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080BBBA8 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80730C0 -_080BBBA8: - mov r0, sp - ldrb r0, [r0, 0x9] - mov r1, sp - ldrh r2, [r1, 0xA] - ldr r1, [sp, 0x54] - bl sub_80753B4 - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - ldr r0, [sp, 0x5C] - movs r2, 0x20 - bl LoadCompressedPalette - ldr r0, _080BBC1C @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BBC20 @ =gUnknown_202297A - strh r1, [r0] - ldr r1, _080BBC24 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - mov r1, sp - ldrh r1, [r1, 0x14] - strh r1, [r0, 0xA] - mov r2, sp - ldrh r2, [r2, 0x18] - strh r2, [r0, 0x10] - mov r1, r10 - strh r1, [r0, 0x12] - mov r2, sp - ldrh r2, [r2, 0x1C] - strh r2, [r0, 0x14] - strh r7, [r0, 0x8] - mov r1, r8 - strh r1, [r0, 0xC] - mov r2, sp - ldrh r2, [r2, 0x20] - strh r2, [r0, 0xE] - ldr r1, _080BBC28 @ =sub_80BBC2C - str r1, [r0] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BBC10: .4byte gBattlerPartyIndexes -_080BBC14: .4byte gPlayerParty -_080BBC18: .4byte gUnknown_2023D44 -_080BBC1C: .4byte gUnknown_2022978 -_080BBC20: .4byte gUnknown_202297A -_080BBC24: .4byte gTasks -_080BBC28: .4byte sub_80BBC2C - thumb_func_end sub_80BBA20 - - thumb_func_start sub_80BBC2C -sub_80BBC2C: @ 80BBC2C - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080BBC68 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r0, 0xA - ldrsh r2, [r3, r0] - adds r5, r1, 0 - cmp r2, 0 - bge _080BBC4A - negs r2, r2 -_080BBC4A: - ldrh r0, [r3, 0x22] - adds r4, r0, r2 - strh r4, [r3, 0x22] - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0 - bge _080BBC70 - ldr r2, _080BBC6C @ =gUnknown_202297A - lsls r1, r4, 16 - asrs r1, 24 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - b _080BBC7C - .align 2, 0 -_080BBC68: .4byte gTasks -_080BBC6C: .4byte gUnknown_202297A -_080BBC70: - ldr r1, _080BBCA0 @ =gUnknown_202297A - lsls r0, r4, 16 - asrs r0, 24 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] -_080BBC7C: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r5 - ldrh r1, [r5, 0x22] - movs r0, 0xFF - ands r0, r1 - movs r2, 0 - strh r0, [r5, 0x22] - movs r3, 0x26 - ldrsh r0, [r5, r3] - cmp r0, 0x1 - beq _080BBCE6 - cmp r0, 0x1 - bgt _080BBCA4 - cmp r0, 0 - beq _080BBCAA - b _080BBDD8 - .align 2, 0 -_080BBCA0: .4byte gUnknown_202297A -_080BBCA4: - cmp r0, 0x2 - beq _080BBD00 - b _080BBDD8 -_080BBCAA: - ldrh r0, [r5, 0x1E] - adds r1, r0, 0x1 - strh r1, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x14 - ldrsh r1, [r5, r3] - cmp r0, r1 - bge _080BBCBE - b _080BBDD8 -_080BBCBE: - strh r2, [r5, 0x1E] - ldrh r1, [r5, 0x20] - adds r1, 0x1 - strh r1, [r5, 0x20] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x20 - ldrsh r1, [r5, r0] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _080BBDD8 - b _080BBCF8 -_080BBCE6: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r5, r3] - cmp r0, r1 - bne _080BBDD8 -_080BBCF8: - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] - b _080BBDD8 -_080BBD00: - ldrh r0, [r5, 0x1E] - adds r1, r0, 0x1 - strh r1, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x14 - ldrsh r1, [r5, r3] - cmp r0, r1 - blt _080BBDD8 - strh r2, [r5, 0x1E] - ldrh r1, [r5, 0x20] - subs r1, 0x1 - strh r1, [r5, 0x20] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x20 - ldrsh r4, [r5, r0] - cmp r4, 0 - bne _080BBDD8 - movs r0, 0 - bl sub_8073128 - ldr r0, _080BBDE0 @ =gUnknown_2022984 - strh r4, [r0] - ldr r0, _080BBDE4 @ =gUnknown_2022986 - strh r4, [r0] - ldr r4, _080BBDE8 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - bne _080BBD7E - movs r0, 0xA - bl GetGpuReg - mov r1, sp - strh r0, [r1] - mov r2, sp - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] - mov r0, sp - ldrh r1, [r0] - movs r0, 0xA - bl SetGpuReg -_080BBD7E: - movs r0, 0 - bl GetGpuReg - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - eors r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r3, 0x8 - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080BBDEC @ =gSprites - adds r0, r4 - bl DestroySprite - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080BBDD2 - movs r2, 0xE - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_080BBDD2: - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080BBDD8: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BBDE0: .4byte gUnknown_2022984 -_080BBDE4: .4byte gUnknown_2022986 -_080BBDE8: .4byte 0x00003f3f -_080BBDEC: .4byte gSprites - thumb_func_end sub_80BBC2C - - thumb_func_start sub_80BBDF0 -sub_80BBDF0: @ 80BBDF0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BBE08 @ =gUnknown_2037F02 - ldr r1, _080BBE0C @ =gUnknown_2022B50 - ldrb r1, [r1] - strh r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080BBE08: .4byte gUnknown_2037F02 -_080BBE0C: .4byte gUnknown_2022B50 - thumb_func_end sub_80BBDF0 - - thumb_func_start sub_80BBE10 -sub_80BBE10: @ 80BBE10 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - ldr r1, _080BBE38 @ =gMonSpritesGfxPtr - ldr r1, [r1] - movs r2, 0xBE - lsls r2, 1 - adds r1, r2 - str r0, [r1] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BBE38: .4byte gMonSpritesGfxPtr - thumb_func_end sub_80BBE10 - - thumb_func_start sub_80BBE3C -sub_80BBE3C: @ 80BBE3C - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _080BBE68 @ =gMonSpritesGfxPtr - ldr r0, [r6] - movs r5, 0xBE - lsls r5, 1 - adds r0, r5 - ldr r0, [r0] - bl Free - ldr r0, [r6] - adds r0, r5 - movs r1, 0 - str r1, [r0] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BBE68: .4byte gMonSpritesGfxPtr - thumb_func_end sub_80BBE3C - - thumb_func_start sub_80BBE6C -sub_80BBE6C: @ 80BBE6C - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080BBEAC @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BBEB0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BBEC8 - movs r2, 0x1 -_080BBE9E: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080BBE9E - b _080BBEC8 - .align 2, 0 -_080BBEAC: .4byte gUnknown_2037F02 -_080BBEB0: - cmp r0, 0x1 - bne _080BBEBC - ldr r0, _080BBEB8 @ =gUnknown_2037F1A - b _080BBEC2 - .align 2, 0 -_080BBEB8: .4byte gUnknown_2037F1A -_080BBEBC: - cmp r0, 0x2 - bne _080BBEC8 - ldr r0, _080BBEF8 @ =gUnknown_2037F1B -_080BBEC2: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080BBEC8: - ldr r0, _080BBEFC @ =gMonSpritesGfxPtr - ldr r1, [r0] - ldr r0, _080BBF00 @ =gUnknown_2037F02 - movs r2, 0x2 - ldrsh r0, [r0, r2] - movs r2, 0xBE - lsls r2, 1 - adds r1, r2 - ldr r1, [r1] - lsls r0, 5 - adds r0, r1 - lsls r1, r4, 5 - ldr r2, _080BBF04 @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x20 - bl memcpy - adds r0, r5, 0 - bl DestroyAnimVisualTask - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BBEF8: .4byte gUnknown_2037F1B -_080BBEFC: .4byte gMonSpritesGfxPtr -_080BBF00: .4byte gUnknown_2037F02 -_080BBF04: .4byte gPlttBufferUnfaded - thumb_func_end sub_80BBE6C - - thumb_func_start sub_80BBF08 -sub_80BBF08: @ 80BBF08 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080BBF48 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BBF4C - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BBF64 - movs r2, 0x1 -_080BBF3A: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080BBF3A - b _080BBF64 - .align 2, 0 -_080BBF48: .4byte gUnknown_2037F02 -_080BBF4C: - cmp r0, 0x1 - bne _080BBF58 - ldr r0, _080BBF54 @ =gUnknown_2037F1A - b _080BBF5E - .align 2, 0 -_080BBF54: .4byte gUnknown_2037F1A -_080BBF58: - cmp r0, 0x2 - bne _080BBF64 - ldr r0, _080BBF94 @ =gUnknown_2037F1B -_080BBF5E: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080BBF64: - lsls r0, r4, 5 - ldr r1, _080BBF98 @ =gPlttBufferUnfaded - adds r0, r1 - ldr r1, _080BBF9C @ =gMonSpritesGfxPtr - ldr r2, [r1] - ldr r1, _080BBFA0 @ =gUnknown_2037F02 - movs r3, 0x2 - ldrsh r1, [r1, r3] - movs r3, 0xBE - lsls r3, 1 - adds r2, r3 - ldr r2, [r2] - lsls r1, 5 - adds r1, r2 - movs r2, 0x20 - bl memcpy - adds r0, r5, 0 - bl DestroyAnimVisualTask - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BBF94: .4byte gUnknown_2037F1B -_080BBF98: .4byte gPlttBufferUnfaded -_080BBF9C: .4byte gMonSpritesGfxPtr -_080BBFA0: .4byte gUnknown_2037F02 - thumb_func_end sub_80BBF08 - - thumb_func_start sub_80BBFA4 -sub_80BBFA4: @ 80BBFA4 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080BBFE4 @ =gUnknown_2037F02 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080BBFE8 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8075BE8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BC000 - movs r2, 0x1 -_080BBFD6: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080BBFD6 - b _080BC000 - .align 2, 0 -_080BBFE4: .4byte gUnknown_2037F02 -_080BBFE8: - cmp r0, 0x1 - bne _080BBFF4 - ldr r0, _080BBFF0 @ =gUnknown_2037F1A - b _080BBFFA - .align 2, 0 -_080BBFF0: .4byte gUnknown_2037F1A -_080BBFF4: - cmp r0, 0x2 - bne _080BC000 - ldr r0, _080BC020 @ =gUnknown_2037F1B -_080BBFFA: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080BC000: - lsls r1, r4, 5 - ldr r0, _080BC024 @ =gPlttBufferUnfaded - adds r0, r1, r0 - ldr r2, _080BC028 @ =gPlttBufferFaded - adds r1, r2 - movs r2, 0x20 - bl memcpy - adds r0, r5, 0 - bl DestroyAnimVisualTask - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC020: .4byte gUnknown_2037F1B -_080BC024: .4byte gPlttBufferUnfaded -_080BC028: .4byte gPlttBufferFaded - thumb_func_end sub_80BBFA4 - - thumb_func_start sub_80BC02C -sub_80BC02C: @ 80BC02C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8073788 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080BC04C - ldr r1, _080BC048 @ =gUnknown_2037F02 - movs r0, 0x1 - strh r0, [r1, 0xE] - b _080BC050 - .align 2, 0 -_080BC048: .4byte gUnknown_2037F02 -_080BC04C: - ldr r0, _080BC05C @ =gUnknown_2037F02 - strh r1, [r0, 0xE] -_080BC050: - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC05C: .4byte gUnknown_2037F02 - thumb_func_end sub_80BC02C - - thumb_func_start sub_80BC060 -sub_80BC060: @ 80BC060 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BC080 @ =gUnknown_2037F1A - ldr r1, _080BC084 @ =gBattlerTarget - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _080BC088 @ =gUnknown_2037F1B - ldr r1, _080BC08C @ =gUnknown_2023D6E - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080BC080: .4byte gUnknown_2037F1A -_080BC084: .4byte gBattlerTarget -_080BC088: .4byte gUnknown_2037F1B -_080BC08C: .4byte gUnknown_2023D6E - thumb_func_end sub_80BC060 - - thumb_func_start sub_80BC090 -sub_80BC090: @ 80BC090 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080BC0B8 @ =gUnknown_2037F1A - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, 0 - ldr r0, _080BC0BC @ =gUnknown_2037F1B - ldrb r0, [r0] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080BC0C4 - ldr r1, _080BC0C0 @ =gUnknown_2037F02 - movs r0, 0x1 - b _080BC0C8 - .align 2, 0 -_080BC0B8: .4byte gUnknown_2037F1A -_080BC0BC: .4byte gUnknown_2037F1B -_080BC0C0: .4byte gUnknown_2037F02 -_080BC0C4: - ldr r1, _080BC0D8 @ =gUnknown_2037F02 - movs r0, 0 -_080BC0C8: - strh r0, [r1, 0xE] - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC0D8: .4byte gUnknown_2037F02 - thumb_func_end sub_80BC090 - - thumb_func_start sub_80BC0DC -sub_80BC0DC: @ 80BC0DC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BC0F4 @ =gUnknown_2037F1B - ldr r1, _080BC0F8 @ =gBattlerTarget - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080BC0F4: .4byte gUnknown_2037F1B -_080BC0F8: .4byte gBattlerTarget - thumb_func_end sub_80BC0DC - - thumb_func_start sub_80BC0FC -sub_80BC0FC: @ 80BC0FC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BC11C @ =gUnknown_2037F1A - ldr r1, _080BC120 @ =sBattler_AI - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _080BC124 @ =gUnknown_2037F1B - ldr r1, _080BC128 @ =gUnknown_2023D6E - ldrb r1, [r1] - strb r1, [r2] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080BC11C: .4byte gUnknown_2037F1A -_080BC120: .4byte sBattler_AI -_080BC124: .4byte gUnknown_2037F1B -_080BC128: .4byte gUnknown_2023D6E - thumb_func_end sub_80BC0FC - - thumb_func_start sub_80BC12C -sub_80BC12C: @ 80BC12C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8073788 - lsls r0, 24 - cmp r0, 0 - beq _080BC144 - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080BC180 -_080BC144: - ldr r0, _080BC188 @ =gTasks - lsls r3, r4, 2 - adds r3, r4 - lsls r3, 3 - adds r3, r0 - ldr r0, _080BC18C @ =gUnknown_2024018 - ldr r4, [r0] - ldr r2, _080BC190 @ =gUnknown_2037F1A - ldrb r0, [r2] - ldr r1, [r4] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 31 - lsrs r0, 31 - strh r0, [r3, 0x8] - ldrb r1, [r2] - ldr r0, [r4] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _080BC194 @ =sub_80BC19C - str r0, [r3] - ldr r1, _080BC198 @ =gUnknown_2037EE2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080BC180: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC188: .4byte gTasks -_080BC18C: .4byte gUnknown_2024018 -_080BC190: .4byte gUnknown_2037F1A -_080BC194: .4byte sub_80BC19C -_080BC198: .4byte gUnknown_2037EE2 - thumb_func_end sub_80BC12C - - thumb_func_start sub_80BC19C -sub_80BC19C: @ 80BC19C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BC1E8 @ =gUnknown_2037F02 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bne _080BC1E0 - ldr r0, _080BC1EC @ =gUnknown_2024018 - ldr r1, [r0] - ldr r0, _080BC1F0 @ =gUnknown_2037F1A - ldrb r3, [r0] - ldr r0, [r1] - lsls r3, 2 - adds r3, r0 - ldr r1, _080BC1F4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r1, 0x1 - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0 - bl DestroyTask -_080BC1E0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC1E8: .4byte gUnknown_2037F02 -_080BC1EC: .4byte gUnknown_2024018 -_080BC1F0: .4byte gUnknown_2037F1A -_080BC1F4: .4byte gTasks - thumb_func_end sub_80BC19C - - thumb_func_start SetAnimBgAttribute -SetAnimBgAttribute: @ 80BC1F8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - cmp r6, 0x3 - bls _080BC20C - b _080BC2FE -_080BC20C: - ldr r0, _080BC228 @ =gUnknown_83E7CCA - adds r0, r6, r0 - ldrb r0, [r0] - bl GetGpuReg - ldr r1, _080BC22C @ =gUnknown_20399B8 - strh r0, [r1] - cmp r5, 0x6 - bhi _080BC2F0 - lsls r0, r5, 2 - ldr r1, _080BC230 @ =_080BC234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BC228: .4byte gUnknown_83E7CCA -_080BC22C: .4byte gUnknown_20399B8 -_080BC230: .4byte _080BC234 - .align 2, 0 -_080BC234: - .4byte _080BC250 - .4byte _080BC264 - .4byte _080BC27C - .4byte _080BC294 - .4byte _080BC2AC - .4byte _080BC2C8 - .4byte _080BC2DC -_080BC250: - ldr r2, _080BC260 @ =gUnknown_20399B8 - lsls r3, r4, 6 - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x1] - b _080BC2F0 - .align 2, 0 -_080BC260: .4byte gUnknown_20399B8 -_080BC264: - ldr r3, _080BC278 @ =gUnknown_20399B8 - movs r0, 0x1 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 5 - ldrb r2, [r3, 0x1] - movs r0, 0x21 - negs r0, r0 - b _080BC2EA - .align 2, 0 -_080BC278: .4byte gUnknown_20399B8 -_080BC27C: - ldr r3, _080BC290 @ =gUnknown_20399B8 - movs r0, 0x1 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x41 - negs r0, r0 - b _080BC2BA - .align 2, 0 -_080BC290: .4byte gUnknown_20399B8 -_080BC294: - ldr r3, _080BC2A8 @ =gUnknown_20399B8 - movs r0, 0x3 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0xD - negs r0, r0 - b _080BC2BA - .align 2, 0 -_080BC2A8: .4byte gUnknown_20399B8 -_080BC2AC: - ldr r3, _080BC2C4 @ =gUnknown_20399B8 - movs r0, 0x3 - adds r1, r4, 0 - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x4 - negs r0, r0 -_080BC2BA: - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080BC2F0 - .align 2, 0 -_080BC2C4: .4byte gUnknown_20399B8 -_080BC2C8: - ldr r2, _080BC2D8 @ =gUnknown_20399B8 - lsls r3, r4, 7 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - b _080BC2F0 - .align 2, 0 -_080BC2D8: .4byte gUnknown_20399B8 -_080BC2DC: - ldr r3, _080BC304 @ =gUnknown_20399B8 - movs r0, 0x1F - adds r1, r4, 0 - ands r1, r0 - ldrb r2, [r3, 0x1] - movs r0, 0x20 - negs r0, r0 -_080BC2EA: - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x1] -_080BC2F0: - ldr r0, _080BC308 @ =gUnknown_83E7CCA - adds r0, r6, r0 - ldrb r0, [r0] - ldr r1, _080BC304 @ =gUnknown_20399B8 - ldrh r1, [r1] - bl SetGpuReg -_080BC2FE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BC304: .4byte gUnknown_20399B8 -_080BC308: .4byte gUnknown_83E7CCA - thumb_func_end SetAnimBgAttribute - - thumb_func_start sub_80BC30C -sub_80BC30C: @ 80BC30C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r2, 0x3 - bhi _080BC394 - ldr r0, _080BC338 @ =gUnknown_83E7CCE - adds r0, r2, r0 - ldrb r0, [r0] - bl GetGpuReg - mov r1, sp - strh r0, [r1] - cmp r4, 0x6 - bhi _080BC394 - lsls r0, r4, 2 - ldr r1, _080BC33C @ =_080BC340 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BC338: .4byte gUnknown_83E7CCE -_080BC33C: .4byte _080BC340 - .align 2, 0 -_080BC340: - .4byte _080BC35C - .4byte _080BC364 - .4byte _080BC36C - .4byte _080BC374 - .4byte _080BC37C - .4byte _080BC384 - .4byte _080BC38C -_080BC35C: - ldr r0, [sp] - lsls r0, 16 - lsrs r0, 30 - b _080BC396 -_080BC364: - ldr r0, [sp] - lsls r0, 18 - lsrs r0, 31 - b _080BC396 -_080BC36C: - ldr r0, [sp] - lsls r0, 25 - lsrs r0, 31 - b _080BC396 -_080BC374: - ldr r0, [sp] - lsls r0, 28 - lsrs r0, 30 - b _080BC396 -_080BC37C: - ldr r0, [sp] - lsls r0, 30 - lsrs r0, 30 - b _080BC396 -_080BC384: - ldr r0, [sp] - lsls r0, 24 - lsrs r0, 31 - b _080BC396 -_080BC38C: - ldr r0, [sp] - lsls r0, 19 - lsrs r0, 27 - b _080BC396 -_080BC394: - movs r0, 0 -_080BC396: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BC30C - - thumb_func_start sub_80BC3A0 -sub_80BC3A0: @ 80BC3A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BC3B8 @ =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BC3C0 - ldr r0, _080BC3BC @ =sub_80BCC4C - b _080BC3E8 - .align 2, 0 -_080BC3B8: .4byte gBattleTypeFlags -_080BC3BC: .4byte sub_80BCC4C -_080BC3C0: - movs r0, 0x80 - lsls r0, 5 - ands r1, r0 - cmp r1, 0 - beq _080BC3E0 - ldr r0, _080BC3D8 @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - beq _080BC3E0 - movs r4, 0x3 - ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8 - b _080BC3E8 - .align 2, 0 -_080BC3D8: .4byte gGameVersion -_080BC3DC: .4byte task00_battle_intro_80BC6C8 -_080BC3E0: - ldr r1, _080BC414 @ =gUnknown_83E7CD4 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] -_080BC3E8: - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080BC418 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] - strh r4, [r1, 0xA] - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - strh r0, [r1, 0x10] - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC414: .4byte gUnknown_83E7CD4 -_080BC418: .4byte gTasks - thumb_func_end sub_80BC3A0 - - thumb_func_start sub_80BC41C -sub_80BC41C: @ 80BC41C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r0, _080BC468 @ =gUnknown_2022978 - movs r1, 0 - strh r1, [r0] - ldr r0, _080BC46C @ =gUnknown_202297A - strh r1, [r0] - ldr r0, _080BC470 @ =gUnknown_202297C - strh r1, [r0] - ldr r0, _080BC474 @ =gUnknown_202297E - strh r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r4, _080BC478 @ =0x00003f3f - movs r0, 0x48 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x4A - adds r1, r4, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC468: .4byte gUnknown_2022978 -_080BC46C: .4byte gUnknown_202297A -_080BC470: .4byte gUnknown_202297C -_080BC474: .4byte gUnknown_202297E -_080BC478: .4byte 0x00003f3f - thumb_func_end sub_80BC41C - - thumb_func_start task_battle_intro_80BC47C -task_battle_intro_80BC47C: @ 80BC47C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080BC4B4 @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x6 - strh r0, [r1] - ldr r1, _080BC4B8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, 0x4 - bls _080BC4A8 - b _080BC6BA -_080BC4A8: - lsls r0, 2 - ldr r1, _080BC4BC @ =_080BC4C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BC4B4: .4byte gUnknown_2022978 -_080BC4B8: .4byte gTasks -_080BC4BC: .4byte _080BC4C0 - .align 2, 0 -_080BC4C0: - .4byte _080BC4D4 - .4byte _080BC504 - .4byte _080BC52C - .4byte _080BC574 - .4byte _080BC6B4 -_080BC4D4: - ldr r0, _080BC4EC @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BC4F0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x10 - b _080BC4FA - .align 2, 0 -_080BC4EC: .4byte gBattleTypeFlags -_080BC4F0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x1 -_080BC4FA: - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080BC6BA -_080BC504: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r3, r8 - adds r1, r0, r3 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080BC51C - b _080BC6BA -_080BC51C: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - b _080BC6BA -_080BC52C: - ldr r1, _080BC568 @ =gUnknown_2022986 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080BC544 - b _080BC6BA -_080BC544: - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080BC56C @ =gUnknown_2023F4C - ldrh r1, [r2] - ldr r0, _080BC570 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080BC6BA - .align 2, 0 -_080BC568: .4byte gUnknown_2022986 -_080BC56C: .4byte gUnknown_2023F4C -_080BC570: .4byte 0x0000fffe -_080BC574: - lsls r0, r4, 2 - adds r1, r0, r4 - lsls r1, 3 - mov r5, r8 - adds r2, r1, r5 - ldrh r3, [r2, 0xE] - movs r5, 0xE - ldrsh r1, [r2, r5] - mov r12, r0 - cmp r1, 0 - beq _080BC590 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080BC5BE -_080BC590: - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080BC5B0 - ldr r2, _080BC5A8 @ =gUnknown_202297A - ldrh r1, [r2] - ldr r0, _080BC5AC @ =0x0000ffb0 - cmp r1, r0 - beq _080BC5BE - subs r0, r1, 0x2 - b _080BC5BC - .align 2, 0 -_080BC5A8: .4byte gUnknown_202297A -_080BC5AC: .4byte 0x0000ffb0 -_080BC5B0: - ldr r2, _080BC690 @ =gUnknown_202297A - ldrh r1, [r2] - ldr r0, _080BC694 @ =0x0000ffc8 - cmp r1, r0 - beq _080BC5BE - subs r0, r1, 0x1 -_080BC5BC: - strh r0, [r2] -_080BC5BE: - ldr r2, _080BC698 @ =gUnknown_2022986 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080BC5D2 - ldr r3, _080BC69C @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080BC5D2: - mov r5, r12 - adds r0, r5, r4 - lsls r0, 3 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BC5EA - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080BC5EA: - movs r3, 0 - ldr r5, _080BC6A0 @ =gUnknown_2039600 - mov r9, r5 - ldr r7, _080BC6A4 @ =gUnknown_2038700 - mov r6, r9 - adds r5, r1, 0 -_080BC5F6: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080BC5F6 - cmp r3, 0x9F - bgt _080BC63A - ldr r7, _080BC6A4 @ =gUnknown_2038700 - ldr r6, _080BC6A0 @ =gUnknown_2039600 - ldr r1, _080BC6A8 @ =gTasks - mov r2, r12 - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r1 -_080BC620: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080BC620 -_080BC63A: - mov r3, r12 - adds r0, r3, r4 - lsls r0, 3 - mov r5, r8 - adds r1, r0, r5 - movs r0, 0xC - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _080BC6BA - movs r0, 0x3 - mov r3, r9 - strb r0, [r3, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080BC6AC @ =0x0600e000 - ldr r2, _080BC6B0 @ =0x05000200 - mov r0, sp - bl CpuSet - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r1, 0x9C - lsls r1, 8 - movs r0, 0xA - bl SetGpuReg - movs r1, 0xBC - lsls r1, 7 - movs r0, 0xC - bl SetGpuReg - b _080BC6BA - .align 2, 0 -_080BC690: .4byte gUnknown_202297A -_080BC694: .4byte 0x0000ffc8 -_080BC698: .4byte gUnknown_2022986 -_080BC69C: .4byte 0xfffffc04 -_080BC6A0: .4byte gUnknown_2039600 -_080BC6A4: .4byte gUnknown_2038700 -_080BC6A8: .4byte gTasks -_080BC6AC: .4byte 0x0600e000 -_080BC6B0: .4byte 0x05000200 -_080BC6B4: - adds r0, r4, 0 - bl sub_80BC41C -_080BC6BA: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end task_battle_intro_80BC47C - - thumb_func_start task00_battle_intro_80BC6C8 -task00_battle_intro_80BC6C8: @ 80BC6C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080BC6F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0xA - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x3 - beq _080BC708 - cmp r0, 0x3 - bgt _080BC6F8 - cmp r0, 0x2 - beq _080BC6FC - b _080BC710 - .align 2, 0 -_080BC6F4: .4byte gTasks -_080BC6F8: - cmp r0, 0x4 - bne _080BC710 -_080BC6FC: - ldr r1, _080BC704 @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x8 - b _080BC70E - .align 2, 0 -_080BC704: .4byte gUnknown_2022978 -_080BC708: - ldr r1, _080BC74C @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x6 -_080BC70E: - strh r0, [r1] -_080BC710: - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - adds r4, r1, r2 - movs r3, 0xA - ldrsh r1, [r4, r3] - adds r6, r0, 0 - cmp r1, 0x4 - bne _080BC774 - ldr r7, _080BC750 @ =gUnknown_202297A - ldrh r0, [r4, 0x14] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080BC736 - ldr r1, _080BC754 @ =0x000001ff - adds r0, r1 -_080BC736: - asrs r0, 9 - subs r0, 0x8 - strh r0, [r7] - ldrh r1, [r4, 0x14] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0xB3 - bgt _080BC758 - adds r0, r1, 0x4 - b _080BC75A - .align 2, 0 -_080BC74C: .4byte gUnknown_2022978 -_080BC750: .4byte gUnknown_202297A -_080BC754: .4byte 0x000001ff -_080BC758: - adds r0, r1, 0x6 -_080BC75A: - strh r0, [r4, 0x14] - ldr r2, _080BC790 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r3, r0, r2 - movs r0, 0x14 - ldrsh r1, [r3, r0] - movs r0, 0xB4 - lsls r0, 1 - cmp r1, r0 - bne _080BC774 - movs r0, 0 - strh r0, [r3, 0x14] -_080BC774: - adds r0, r6, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bls _080BC784 - b _080BC9AA -_080BC784: - lsls r0, 2 - ldr r1, _080BC794 @ =_080BC798 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BC790: .4byte gTasks -_080BC794: .4byte _080BC798 - .align 2, 0 -_080BC798: - .4byte _080BC7AC - .4byte _080BC7DC - .4byte _080BC808 - .4byte _080BC858 - .4byte _080BC9A4 -_080BC7AC: - ldr r1, _080BC7C8 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x10 - strh r3, [r2, 0x10] - ldr r0, _080BC7CC @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BC7D0 - strh r3, [r2, 0xC] - b _080BC7D4 - .align 2, 0 -_080BC7C8: .4byte gTasks -_080BC7CC: .4byte gBattleTypeFlags -_080BC7D0: - movs r0, 0x1 - strh r0, [r2, 0xC] -_080BC7D4: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080BC9AA -_080BC7DC: - ldr r0, _080BC804 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080BC7F2 - b _080BC9AA -_080BC7F2: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - b _080BC9AA - .align 2, 0 -_080BC804: .4byte gTasks -_080BC808: - ldr r1, _080BC848 @ =gUnknown_2022986 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080BC820 - b _080BC9AA -_080BC820: - ldr r0, _080BC84C @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080BC850 @ =gUnknown_2023F4C - ldrh r1, [r2] - ldr r0, _080BC854 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080BC9AA - .align 2, 0 -_080BC848: .4byte gUnknown_2022986 -_080BC84C: .4byte gTasks -_080BC850: .4byte gUnknown_2023F4C -_080BC854: .4byte 0x0000fffe -_080BC858: - ldr r0, _080BC890 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xE] - movs r3, 0xE - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BC898 - subs r0, r2, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080BC8B8 - ldr r1, _080BC894 @ =0x00001842 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0xF - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - b _080BC8B8 - .align 2, 0 -_080BC890: .4byte gTasks -_080BC894: .4byte 0x00001842 -_080BC898: - ldrh r2, [r1, 0x10] - movs r0, 0x1F - ands r0, r2 - cmp r0, 0 - beq _080BC8B8 - ldrh r0, [r1, 0x12] - subs r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080BC8B8 - adds r0, r2, 0 - adds r0, 0xFF - strh r0, [r1, 0x10] - movs r0, 0x4 - strh r0, [r1, 0x12] -_080BC8B8: - ldr r2, _080BC988 @ =gUnknown_2022986 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080BC8CC - ldr r3, _080BC98C @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080BC8CC: - ldr r0, _080BC990 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BC8E2 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080BC8E2: - movs r3, 0 - ldr r0, _080BC994 @ =gUnknown_2039600 - mov r8, r0 - ldr r2, _080BC998 @ =gUnknown_2038700 - mov r12, r2 - mov r7, r8 - adds r4, r1, 0 -_080BC8F0: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080BC8F0 - cmp r3, 0x9F - bgt _080BC934 - ldr r0, _080BC998 @ =gUnknown_2038700 - mov r12, r0 - ldr r7, _080BC994 @ =gUnknown_2039600 - ldr r1, _080BC990 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r1 -_080BC91A: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080BC91A -_080BC934: - ldr r1, _080BC990 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080BC9AA - movs r0, 0x3 - mov r3, r8 - strb r0, [r3, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080BC99C @ =0x0600e000 - ldr r2, _080BC9A0 @ =0x05000200 - mov r0, sp - bl CpuSet - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r1, 0x9C - lsls r1, 8 - movs r0, 0xA - bl SetGpuReg - movs r1, 0xBC - lsls r1, 7 - movs r0, 0xC - bl SetGpuReg - b _080BC9AA - .align 2, 0 -_080BC988: .4byte gUnknown_2022986 -_080BC98C: .4byte 0xfffffc04 -_080BC990: .4byte gTasks -_080BC994: .4byte gUnknown_2039600 -_080BC998: .4byte gUnknown_2038700 -_080BC99C: .4byte 0x0600e000 -_080BC9A0: .4byte 0x05000200 -_080BC9A4: - adds r0, r5, 0 - bl sub_80BC41C -_080BC9AA: - ldr r0, _080BC9D0 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - beq _080BC9C2 - ldrh r1, [r1, 0x10] - movs r0, 0x52 - bl SetGpuReg -_080BC9C2: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BC9D0: .4byte gTasks - thumb_func_end task00_battle_intro_80BC6C8 - - thumb_func_start task_battle_intro_anim -task_battle_intro_anim: @ 80BC9D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080BCA08 @ =gUnknown_2022978 - ldrh r0, [r1] - adds r0, 0x8 - strh r0, [r1] - ldr r1, _080BCA0C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x4 - bls _080BC9FE - b _080BCC22 -_080BC9FE: - lsls r0, 2 - ldr r1, _080BCA10 @ =_080BCA14 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BCA08: .4byte gUnknown_2022978 -_080BCA0C: .4byte gTasks -_080BCA10: .4byte _080BCA14 - .align 2, 0 -_080BCA14: - .4byte _080BCA28 - .4byte _080BCA7C - .4byte _080BCAA8 - .4byte _080BCAF8 - .4byte _080BCC1C -_080BCA28: - ldr r1, _080BCA60 @ =0x00001842 - movs r0, 0x50 - bl SetGpuReg - ldr r4, _080BCA64 @ =0x00000808 - movs r0, 0x52 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r1, _080BCA68 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - strh r4, [r2, 0x10] - ldr r0, _080BCA6C @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BCA70 - movs r0, 0x10 - b _080BCA72 - .align 2, 0 -_080BCA60: .4byte 0x00001842 -_080BCA64: .4byte 0x00000808 -_080BCA68: .4byte gTasks -_080BCA6C: .4byte gBattleTypeFlags -_080BCA70: - movs r0, 0x1 -_080BCA72: - strh r0, [r2, 0xC] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080BCC22 -_080BCA7C: - ldr r0, _080BCAA4 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080BCA94 - b _080BCC22 -_080BCA94: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - b _080BCC22 - .align 2, 0 -_080BCAA4: .4byte gTasks -_080BCAA8: - ldr r1, _080BCAE8 @ =gUnknown_2022986 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080BCAC0 - b _080BCC22 -_080BCAC0: - ldr r0, _080BCAEC @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080BCAF0 @ =gUnknown_2023F4C - ldrh r1, [r2] - ldr r0, _080BCAF4 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080BCC22 - .align 2, 0 -_080BCAE8: .4byte gUnknown_2022986 -_080BCAEC: .4byte gTasks -_080BCAF0: .4byte gUnknown_2023F4C -_080BCAF4: .4byte 0x0000fffe -_080BCAF8: - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - adds r2, r1, r4 - ldrh r3, [r2, 0xE] - movs r6, 0xE - ldrsh r1, [r2, r6] - mov r12, r0 - cmp r1, 0 - beq _080BCB12 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080BCB32 -_080BCB12: - ldrh r1, [r2, 0x10] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - beq _080BCB32 - ldrh r0, [r2, 0x12] - subs r0, 0x1 - strh r0, [r2, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080BCB32 - adds r0, r1, 0 - adds r0, 0xFF - strh r0, [r2, 0x10] - movs r0, 0x6 - strh r0, [r2, 0x12] -_080BCB32: - ldr r2, _080BCC00 @ =gUnknown_2022986 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080BCB46 - ldr r3, _080BCC04 @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080BCB46: - mov r6, r12 - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r4 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BCB5C - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080BCB5C: - movs r3, 0 - ldr r6, _080BCC08 @ =gUnknown_2039600 - mov r8, r6 - ldr r7, _080BCC0C @ =gUnknown_2038700 - adds r4, r1, 0 -_080BCB66: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080BCB66 - cmp r3, 0x9F - bgt _080BCBAA - ldr r7, _080BCC0C @ =gUnknown_2038700 - ldr r6, _080BCC08 @ =gUnknown_2039600 - ldr r1, _080BCC10 @ =gTasks - mov r2, r12 - adds r0, r2, r5 - lsls r0, 3 - adds r4, r0, r1 -_080BCB90: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080BCB90 -_080BCBAA: - ldr r1, _080BCC10 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080BCC22 - movs r0, 0x3 - mov r6, r8 - strb r0, [r6, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080BCC14 @ =0x0600e000 - ldr r2, _080BCC18 @ =0x05000200 - mov r0, sp - bl CpuSet - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r1, 0x9C - lsls r1, 8 - movs r0, 0xA - bl SetGpuReg - movs r1, 0xBC - lsls r1, 7 - movs r0, 0xC - bl SetGpuReg - b _080BCC22 - .align 2, 0 -_080BCC00: .4byte gUnknown_2022986 -_080BCC04: .4byte 0xfffffc04 -_080BCC08: .4byte gUnknown_2039600 -_080BCC0C: .4byte gUnknown_2038700 -_080BCC10: .4byte gTasks -_080BCC14: .4byte 0x0600e000 -_080BCC18: .4byte 0x05000200 -_080BCC1C: - adds r0, r5, 0 - bl sub_80BC41C -_080BCC22: - ldr r0, _080BCC48 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - beq _080BCC3C - ldrh r1, [r1, 0x10] - movs r0, 0x52 - bl SetGpuReg -_080BCC3C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCC48: .4byte gTasks - thumb_func_end task_battle_intro_anim - - thumb_func_start sub_80BCC4C -sub_80BCC4C: @ 80BCC4C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080BCC98 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - ble _080BCCC2 - movs r2, 0x10 - ldrsh r0, [r7, r2] - cmp r0, 0 - bne _080BCCC2 - ldr r2, _080BCC9C @ =gUnknown_2022978 - ldrh r1, [r2] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _080BCC8A - cmp r1, 0x4F - bhi _080BCCA4 -_080BCC8A: - adds r0, r1, 0x3 - strh r0, [r2] - ldr r1, _080BCCA0 @ =gUnknown_202297C - ldrh r0, [r1] - subs r0, 0x3 - strh r0, [r1] - b _080BCCC2 - .align 2, 0 -_080BCC98: .4byte gTasks -_080BCC9C: .4byte gUnknown_2022978 -_080BCCA0: .4byte gUnknown_202297C -_080BCCA4: - str r5, [sp] - ldr r1, _080BCCE4 @ =0x0600e000 - ldr r4, _080BCCE8 @ =0x05000200 - mov r0, sp - adds r2, r4, 0 - bl CpuSet - str r5, [sp, 0x4] - add r0, sp, 0x4 - ldr r1, _080BCCEC @ =0x0600f000 - adds r2, r4, 0 - bl CpuSet - movs r0, 0x1 - strh r0, [r7, 0x10] -_080BCCC2: - ldr r0, _080BCCF0 @ =gTasks - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r1, [r1, r3] - mov r9, r0 - adds r5, r2, 0 - cmp r1, 0x4 - bls _080BCCDA - b _080BCEE6 -_080BCCDA: - lsls r0, r1, 2 - ldr r1, _080BCCF4 @ =_080BCCF8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BCCE4: .4byte 0x0600e000 -_080BCCE8: .4byte 0x05000200 -_080BCCEC: .4byte 0x0600f000 -_080BCCF0: .4byte gTasks -_080BCCF4: .4byte _080BCCF8 - .align 2, 0 -_080BCCF8: - .4byte _080BCD0C - .4byte _080BCD1E - .4byte _080BCDC4 - .4byte _080BCE08 - .4byte _080BCEE0 -_080BCD0C: - adds r0, r5, r6 - lsls r0, 3 - add r0, r9 - movs r1, 0x20 - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080BCEE6 -_080BCD1E: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r9 - adds r1, r0, r2 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080BCD34 - b _080BCEE6 -_080BCD34: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r4, _080BCDB4 @ =gSprites - ldr r5, _080BCDB8 @ =gBattleStruct - ldr r0, [r5] - adds r0, 0x7D - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r3, [r1, 0x1] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - movs r3, 0x8 - mov r9, r3 - mov r3, r9 - orrs r0, r3 - strb r0, [r1, 0x1] - ldr r3, [r5] - adds r0, r3, 0 - adds r0, 0x7D - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - movs r1, 0x1C - adds r1, r4 - mov r8, r1 - add r0, r8 - ldr r6, _080BCDBC @ =sub_801182C - str r6, [r0] - adds r3, 0x7E - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - ands r2, r1 - mov r3, r9 - orrs r2, r3 - strb r2, [r0, 0x1] - ldr r0, [r5] - adds r0, 0x7E - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - str r6, [r0] - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - ldr r1, _080BCDC0 @ =0x00003f06 - movs r0, 0x4A - bl SetGpuReg - b _080BCEE6 - .align 2, 0 -_080BCDB4: .4byte gSprites -_080BCDB8: .4byte gBattleStruct -_080BCDBC: .4byte sub_801182C -_080BCDC0: .4byte 0x00003f06 -_080BCDC4: - ldr r1, _080BCDFC @ =gUnknown_2022986 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080BCDDC - b _080BCEE6 -_080BCDDC: - adds r1, r5, r6 - lsls r1, 3 - add r1, r9 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080BCE00 @ =gUnknown_2023F4C - ldrh r1, [r2] - ldr r0, _080BCE04 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080BCEE6 - .align 2, 0 -_080BCDFC: .4byte gUnknown_2022986 -_080BCE00: .4byte gUnknown_2023F4C -_080BCE04: .4byte 0x0000fffe -_080BCE08: - ldr r2, _080BCECC @ =gUnknown_2022986 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080BCE1C - ldr r3, _080BCED0 @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080BCE1C: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r9 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BCE32 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080BCE32: - movs r3, 0 - ldr r0, _080BCED4 @ =gUnknown_2039600 - mov r12, r0 - ldr r2, _080BCED8 @ =gUnknown_2038700 - mov r8, r2 - mov r7, r12 - adds r4, r1, 0 -_080BCE40: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080BCE40 - cmp r3, 0x9F - bgt _080BCE84 - ldr r0, _080BCED8 @ =gUnknown_2038700 - mov r8, r0 - ldr r7, _080BCED4 @ =gUnknown_2039600 - ldr r1, _080BCEDC @ =gTasks - adds r0, r5, r6 - lsls r0, 3 - adds r4, r0, r1 -_080BCE6A: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080BCE6A -_080BCE84: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r9 - adds r1, r0, r2 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080BCEE6 - movs r0, 0x3 - mov r2, r12 - strb r0, [r2, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r1, 0x9C - lsls r1, 8 - movs r0, 0xA - bl SetGpuReg - movs r1, 0xBC - lsls r1, 7 - movs r0, 0xC - bl SetGpuReg - b _080BCEE6 - .align 2, 0 -_080BCECC: .4byte gUnknown_2022986 -_080BCED0: .4byte 0xfffffc04 -_080BCED4: .4byte gUnknown_2039600 -_080BCED8: .4byte gUnknown_2038700 -_080BCEDC: .4byte gTasks -_080BCEE0: - adds r0, r6, 0 - bl sub_80BC41C -_080BCEE6: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BCC4C - - thumb_func_start sub_80BCEF4 -sub_80BCEF4: @ 80BCEF4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r0, [sp] - adds r6, r2, 0 - adds r4, r3, 0 - ldr r0, [sp, 0x24] - ldr r7, [sp, 0x28] - ldr r2, [sp, 0x2C] - mov r9, r2 - ldr r5, [sp, 0x30] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr - ldr r2, [r1] - lsls r4, 2 - adds r2, 0x4 - adds r2, r4 - ldr r1, _080BCFC8 @ =gBattleMonForms - adds r0, r1 - ldrb r1, [r0] - lsls r1, 11 - ldr r0, [r2] - adds r0, r1 - movs r2, 0x80 - lsls r2, 3 - adds r1, r7, 0 - bl CpuSet - ldr r1, [sp] - lsls r0, r1, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 5 - adds r1, r7, 0 - adds r3, r5, 0 - bl LoadBgTiles - adds r0, r6, 0 - adds r0, 0x8 - cmp r6, r0 - bge _080BCFA0 - mov r12, r0 - mov r2, r8 - lsls r7, r2, 1 -_080BCF72: - mov r1, r8 - adds r2, r1, 0 - adds r2, 0x8 - adds r4, r6, 0x1 - cmp r1, r2 - bge _080BCF9A - mov r0, r10 - lsls r3, r0, 12 - lsls r0, r6, 6 - add r0, r9 - adds r6, r7, r0 - subs r1, r2, r1 -_080BCF8A: - adds r0, r5, 0 - orrs r0, r3 - strh r0, [r6] - adds r5, 0x1 - adds r6, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _080BCF8A -_080BCF9A: - adds r6, r4, 0 - cmp r6, r12 - blt _080BCF72 -_080BCFA0: - ldr r1, [sp] - lsls r0, r1, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 4 - mov r1, r9 - movs r3, 0 - bl LoadBgTilemap - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCFC4: .4byte gMonSpritesGfxPtr -_080BCFC8: .4byte gBattleMonForms - thumb_func_end sub_80BCEF4 - - thumb_func_start sub_80BCFCC -sub_80BCFCC: @ 80BCFCC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - ldr r5, [sp, 0x28] - mov r8, r5 - ldr r5, [sp, 0x2C] - ldr r6, [sp, 0x30] - mov r9, r6 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 24 - lsls r2, 24 - lsls r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - mov r7, r8 - lsls r7, 16 - lsrs r6, r7, 16 - lsls r5, 24 - lsrs r5, 24 - mov r0, r9 - lsls r0, 24 - mov r9, r0 - ldr r4, _080BD090 @ =0x040000d4 - ldr r0, _080BD094 @ =gMonSpritesGfxPtr - ldr r0, [r0] - lsrs r2, 22 - adds r0, 0x4 - adds r0, r2 - lsrs r3, 13 - ldr r0, [r0] - adds r0, r3 - str r0, [r4] - movs r0, 0xC0 - lsls r0, 19 - adds r6, r0 - str r6, [r4, 0x4] - ldr r0, _080BD098 @ =0x80000400 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, r7, 0 - lsrs r2, 21 - mov r6, r9 - lsrs r6, 15 - subs r4, r2, r6 - lsrs r0, r1, 24 - adds r1, r0, 0 - adds r1, 0x8 - cmp r0, r1 - bge _080BD080 - mov r9, r1 - mov r7, r12 - lsls r7, 1 - mov r8, r7 - lsls r5, 11 - str r5, [sp] -_080BD048: - mov r2, r12 - adds r3, r2, 0 - adds r3, 0x8 - adds r5, r0, 0x1 - cmp r2, r3 - bge _080BD07A - mov r1, r10 - lsls r6, r1, 12 - lsls r0, 6 - movs r7, 0xC0 - lsls r7, 19 - adds r0, r7 - ldr r1, [sp] - adds r0, r1, r0 - mov r7, r8 - adds r1, r7, r0 - subs r2, r3, r2 -_080BD06A: - adds r0, r4, 0 - orrs r0, r6 - strh r0, [r1] - adds r4, 0x1 - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080BD06A -_080BD07A: - adds r0, r5, 0 - cmp r0, r9 - blt _080BD048 -_080BD080: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BD090: .4byte 0x040000d4 -_080BD094: .4byte gMonSpritesGfxPtr -_080BD098: .4byte 0x80000400 - thumb_func_end sub_80BCFCC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s new file mode 100644 index 000000000..18289e193 --- /dev/null +++ b/asm/battle_anim_effects_1.s @@ -0,0 +1,9882 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80A22E8 +sub_80A22E8: @ 80A22E8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A231C @ =gBattleAnimArgs + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080A2320 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2324 + ldrh r0, [r5, 0x8] + negs r0, r0 + b _080A2326 + .align 2, 0 +_080A231C: .4byte gBattleAnimArgs +_080A2320: .4byte gBattleAnimAttacker +_080A2324: + ldrh r0, [r5, 0x8] +_080A2326: + strh r0, [r4, 0x34] + ldr r0, _080A2338 @ =gBattleAnimArgs + ldrh r0, [r0, 0xA] + strh r0, [r4, 0x36] + ldr r0, _080A233C @ =sub_80A2340 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2338: .4byte gBattleAnimArgs +_080A233C: .4byte sub_80A2340 + thumb_func_end sub_80A22E8 + + thumb_func_start sub_80A2340 +sub_80A2340: @ 80A2340 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A237C + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r1, r0 + strh r1, [r4, 0x32] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A2382 +_080A237C: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2382: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2340 + + thumb_func_start sub_80A2388 +sub_80A2388: @ 80A2388 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080A23C8 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r5, _080A23CC @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080A23D0 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080A23D4 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A23C8: .4byte gBattleAnimArgs +_080A23CC: .4byte gBattleAnimAttacker +_080A23D0: .4byte sub_8075590 +_080A23D4: .4byte move_anim_8074EE0 + thumb_func_end sub_80A2388 + + thumb_func_start sub_80A23D8 +sub_80A23D8: @ 80A23D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080A2420 @ =gBattleAnimArgs + ldrb r1, [r5, 0x6] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldr r5, _080A2424 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080A2428 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080A242C @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2420: .4byte gBattleAnimArgs +_080A2424: .4byte gBattleAnimTarget +_080A2428: .4byte sub_8075590 +_080A242C: .4byte DestroyAnimSprite + thumb_func_end sub_80A23D8 + + thumb_func_start sub_80A2430 +sub_80A2430: @ 80A2430 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r6, _080A2480 @ =gBattleAnimArgs + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080A2484 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r6, 0x6] + strh r0, [r4, 0x38] + ldr r1, _080A2488 @ =sub_80A248C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2480: .4byte gBattleAnimArgs +_080A2484: .4byte gBattleAnimTarget +_080A2488: .4byte sub_80A248C + thumb_func_end sub_80A2430 + + thumb_func_start sub_80A248C +sub_80A248C: @ 80A248C + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080A24A2 + adds r0, r4, 0 + bl DestroySprite + b _080A24F6 +_080A24A2: + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + ble _080A24BC + ldr r0, _080A24B8 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + adds r0, 0x1 + b _080A24C6 + .align 2, 0 +_080A24B8: .4byte gBattleAnimTarget +_080A24BC: + ldr r0, _080A24FC @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + adds r0, 0x6 +_080A24C6: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0xF + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] +_080A24F6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A24FC: .4byte gBattleAnimTarget + thumb_func_end sub_80A248C + + thumb_func_start sub_80A2500 +sub_80A2500: @ 80A2500 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080A2570 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + subs r0, 0x1 + movs r2, 0 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080A255A + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + movs r0, 0x6 + strh r0, [r5, 0x8] + ldr r1, _080A2574 @ =gBattleAnimArgs + movs r0, 0xF + strh r0, [r1] + strh r2, [r1, 0x2] + movs r0, 0x50 + strh r0, [r1, 0x4] + strh r2, [r1, 0x6] + ldr r4, _080A2578 @ =gUnknown_83E2A88 + ldr r0, _080A257C @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + adds r3, r0, 0 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl CreateSpriteAndAnimate +_080A255A: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0xF + bne _080A2568 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A2568: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2570: .4byte gTasks +_080A2574: .4byte gBattleAnimArgs +_080A2578: .4byte gUnknown_83E2A88 +_080A257C: .4byte gBattleAnimTarget + thumb_func_end sub_80A2500 + + thumb_func_start sub_80A2580 +sub_80A2580: @ 80A2580 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r6, _080A25C4 @ =gBattleAnimArgs + ldrh r0, [r6, 0x6] + strh r0, [r4, 0x2E] + ldr r5, _080A25C8 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldr r0, _080A25CC @ =sub_80A25D0 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A25C4: .4byte gBattleAnimArgs +_080A25C8: .4byte gBattleAnimAttacker +_080A25CC: .4byte sub_80A25D0 + thumb_func_end sub_80A2580 + + thumb_func_start sub_80A25D0 +sub_80A25D0: @ 80A25D0 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080A25E4 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A25E4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A25D0 + + thumb_func_start sub_80A25EC +sub_80A25EC: @ 80A25EC + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x7 + ands r1, r0 + adds r0, r5, 0 + bl StartSpriteAnim + ldr r4, _080A2634 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2638 + ldrh r0, [r5, 0x20] + subs r0, 0x14 + b _080A263C + .align 2, 0 +_080A2634: .4byte gBattleAnimAttacker +_080A2638: + ldrh r0, [r5, 0x20] + adds r0, 0x14 +_080A263C: + strh r0, [r5, 0x20] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1F + ands r0, r1 + adds r0, 0x40 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080A269C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8075804 + bl Random + movs r1, 0xFF + ands r1, r0 + strh r1, [r5, 0x38] + adds r0, r5, 0 + adds r0, 0x43 + ldrb r0, [r0] + strh r0, [r5, 0x3A] + ldr r1, _080A26A0 @ =sub_80A26A4 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A269C: .4byte gBattleAnimTarget +_080A26A0: .4byte sub_80A26A4 + thumb_func_end sub_80A25EC + + thumb_func_start sub_80A26A4 +sub_80A26A4: @ 80A26A4 + push {r4,lr} + adds r4, r0, 0 + bl sub_807578C + lsls r0, 24 + cmp r0, 0 + beq _080A26BA + adds r0, r4, 0 + bl DestroyAnimSprite + b _080A26EA +_080A26BA: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xC + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7E + bgt _080A26D6 + ldrh r0, [r4, 0x3A] + b _080A26DA +_080A26D6: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 +_080A26DA: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r4, 0x38] + adds r0, 0x18 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] +_080A26EA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A26A4 + + thumb_func_start sub_80A26F0 +sub_80A26F0: @ 80A26F0 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080A2750 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2710 + ldr r1, _080A2754 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A2710: + ldr r4, _080A2754 @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080A2758 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_8075068 + ldr r0, _080A275C @ =sub_80A2760 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2750: .4byte gBattleAnimAttacker +_080A2754: .4byte gBattleAnimArgs +_080A2758: .4byte gBattleAnimTarget +_080A275C: .4byte sub_80A2760 + thumb_func_end sub_80A26F0 + + thumb_func_start sub_80A2760 +sub_80A2760: @ 80A2760 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080A278A + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0xA + strh r0, [r4, 0x2E] + ldr r0, _080A2790 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080A2794 @ =sub_80A2798 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 +_080A278A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2790: .4byte sub_8074C44 +_080A2794: .4byte sub_80A2798 + thumb_func_end sub_80A2760 + + thumb_func_start sub_80A2798 +sub_80A2798: @ 80A2798 + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x3C + strh r0, [r4, 0x2E] + ldr r0, _080A27C8 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080A27CC @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A27C8: .4byte sub_8074C44 +_080A27CC: .4byte DestroyAnimSprite + thumb_func_end sub_80A2798 + + thumb_func_start sub_80A27D0 +sub_80A27D0: @ 80A27D0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r5, _080A2814 @ =gBattleAnimArgs + ldrb r1, [r5, 0x8] + adds r0, r4, 0 + bl StartSpriteAnim + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080A27FA + ldrb r0, [r4, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x1] +_080A27FA: + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldr r1, _080A2818 @ =sub_80A281C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2814: .4byte gBattleAnimArgs +_080A2818: .4byte sub_80A281C + thumb_func_end sub_80A27D0 + + thumb_func_start sub_80A281C +sub_80A281C: @ 80A281C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x32] + adds r1, 0x18 + strh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080A2870 + ldr r0, _080A286C @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + b _080A2894 + .align 2, 0 +_080A286C: .4byte gBattleAnimTarget +_080A2870: + ldr r0, _080A28C0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + adds r0, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080A2884 + movs r2, 0x3 +_080A2884: + movs r0, 0x3 + ands r2, r0 + lsls r2, 2 + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 +_080A2894: + strb r0, [r4, 0x5] + ldrh r0, [r4, 0x30] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080A28B8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A28B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A28C0: .4byte gBattleAnimTarget + thumb_func_end sub_80A281C + + thumb_func_start sub_80A28C4 +sub_80A28C4: @ 80A28C4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A28DE + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _080A28E6 +_080A28DE: + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080A2918 +_080A28E6: + ldr r0, _080A2904 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A2908 + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x3 + bl SetAnimBgAttribute + b _080A2912 + .align 2, 0 +_080A2904: .4byte gBattleAnimTarget +_080A2908: + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute +_080A2912: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A2918: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A28C4 + + thumb_func_start sub_80A2920 +sub_80A2920: @ 80A2920 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r5, _080A2968 @ =gBattleAnimArgs + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldr r0, _080A296C @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x4] + adds r0, r5 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r4, 0x38] + ldr r1, _080A2970 @ =sub_80A2974 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2968: .4byte gBattleAnimArgs +_080A296C: .4byte gBattleAnimAttacker +_080A2970: .4byte sub_80A2974 + thumb_func_end sub_80A2920 + + thumb_func_start sub_80A2974 +sub_80A2974: @ 80A2974 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080A29E0 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x5 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080A29C0 + ldr r0, _080A29BC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + subs r0, 0x1 + b _080A29CA + .align 2, 0 +_080A29BC: .4byte gBattleAnimAttacker +_080A29C0: + ldr r0, _080A29DC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + adds r0, 0x1 +_080A29CA: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r4, 0x38] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A29E6 + .align 2, 0 +_080A29DC: .4byte gBattleAnimAttacker +_080A29E0: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A29E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2974 + + thumb_func_start sub_80A29EC +sub_80A29EC: @ 80A29EC + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080A2A34 @ =gBattleAnimArgs + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldr r0, _080A2A38 @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x4] + adds r0, r5 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r4, 0x38] + ldr r1, _080A2A3C @ =sub_80A2A40 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2A34: .4byte gBattleAnimArgs +_080A2A38: .4byte gBattleAnimAttacker +_080A2A3C: .4byte sub_80A2A40 + thumb_func_end sub_80A29EC + + thumb_func_start sub_80A2A40 +sub_80A2A40: @ 80A2A40 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080A2A98 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r1, [r4, 0x38] + adds r0, r1, 0 + subs r0, 0x3B + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bls _080A2A78 + adds r0, r1, 0 + subs r0, 0xBB + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bhi _080A2A8C +_080A2A78: + ldrb r2, [r4, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x8 + eors r1, r0 + lsls r1, 1 + subs r0, 0x47 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] +_080A2A8C: + ldrh r0, [r4, 0x38] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A2A9E +_080A2A98: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2A9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2A40 + + thumb_func_start sub_80A2AA4 +sub_80A2AA4: @ 80A2AA4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A2AE0 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r1, _080A2AE4 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x32] + ldr r0, _080A2AE8 @ =sub_80A2AEC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2AE0: .4byte gBattleAnimAttacker +_080A2AE4: .4byte gBattleAnimArgs +_080A2AE8: .4byte sub_80A2AEC + thumb_func_end sub_80A2AA4 + + thumb_func_start sub_80A2AEC +sub_80A2AEC: @ 80A2AEC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x32] + movs r2, 0x32 + ldrsh r3, [r1, r2] + cmp r3, 0 + bne _080A2B20 + ldrh r0, [r1, 0x30] + movs r2, 0x1 + ands r2, r0 + cmp r2, 0 + beq _080A2B0E + movs r0, 0x80 + strh r0, [r1, 0x2E] + strh r3, [r1, 0x30] + strh r3, [r1, 0x32] + b _080A2B14 +_080A2B0E: + strh r2, [r1, 0x2E] + strh r2, [r1, 0x30] + strh r2, [r1, 0x32] +_080A2B14: + ldr r0, _080A2B1C @ =sub_80A2B38 + str r0, [r1, 0x1C] + b _080A2B34 + .align 2, 0 +_080A2B1C: .4byte sub_80A2B38 +_080A2B20: + subs r0, 0x1 + strh r0, [r1, 0x32] + ldrh r0, [r1, 0x2E] + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x30] + ldrh r2, [r1, 0x22] + adds r0, r2 + strh r0, [r1, 0x22] +_080A2B34: + pop {r0} + bx r0 + thumb_func_end sub_80A2AEC + + thumb_func_start sub_80A2B38 +sub_80A2B38: @ 80A2B38 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A2B58 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2B5C + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x19 + bl Sin + negs r0, r0 + b _080A2B66 + .align 2, 0 +_080A2B58: .4byte gBattleAnimAttacker +_080A2B5C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x19 + bl Sin +_080A2B66: + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A2B86 + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] +_080A2B86: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _080A2B94 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2B94: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2B38 + + thumb_func_start sub_80A2B9C +sub_80A2B9C: @ 80A2B9C + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080A2BF0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2BBC + ldr r1, _080A2BF4 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A2BBC: + ldr r6, _080A2BF4 @ =gBattleAnimArgs + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + movs r1, 0xC + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A2BFC + ldr r4, _080A2BF8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + b _080A2C1C + .align 2, 0 +_080A2BF0: .4byte gBattleAnimAttacker +_080A2BF4: .4byte gBattleAnimArgs +_080A2BF8: .4byte gBattleAnimTarget +_080A2BFC: + ldr r0, _080A2C48 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 +_080A2C1C: + strh r0, [r5, 0x36] + ldr r0, _080A2C4C @ =gBattleAnimArgs + ldrh r0, [r0, 0xA] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080A2C50 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, 0 + ldr r0, _080A2C48 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080A2C54 + movs r0, 0x1 + b _080A2C56 + .align 2, 0 +_080A2C48: .4byte gBattleAnimTarget +_080A2C4C: .4byte gBattleAnimArgs +_080A2C50: .4byte gBattleAnimAttacker +_080A2C54: + movs r0, 0 +_080A2C56: + strh r0, [r5, 0x2E] + ldr r0, _080A2C64 @ =sub_80A2C68 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2C64: .4byte sub_80A2C68 + thumb_func_end sub_80A2B9C + + thumb_func_start sub_80A2C68 +sub_80A2C68: @ 80A2C68 + push {r4-r7,lr} + adds r6, r0, 0 + movs r7, 0 + ldrh r5, [r6, 0x2E] + ldrh r4, [r6, 0x3C] + movs r0, 0x1 + strh r0, [r6, 0x2E] + adds r0, r6, 0 + bl AnimateBallThrow + ldrh r0, [r6, 0x3C] + strh r5, [r6, 0x2E] + lsls r4, 16 + asrs r4, 16 + cmp r4, 0xC8 + ble _080A2C9A + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x37 + bgt _080A2C9A + ldrh r0, [r6, 0x6] + cmp r0, 0 + bne _080A2CA0 + adds r0, 0x1 + strh r0, [r6, 0x6] +_080A2C9A: + ldrh r0, [r6, 0x6] + cmp r0, 0 + beq _080A2CD2 +_080A2CA0: + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080A2CD2 + adds r3, r6, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r6, 0x6] + adds r0, 0x1 + strh r0, [r6, 0x6] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bne _080A2CD2 + movs r7, 0x1 +_080A2CD2: + movs r2, 0x20 + ldrsh r0, [r6, r2] + movs r2, 0x24 + ldrsh r1, [r6, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080A2CFC + movs r0, 0x22 + ldrsh r1, [r6, r0] + movs r2, 0x26 + ldrsh r0, [r6, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080A2CFC + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080A2CFE +_080A2CFC: + movs r7, 0x1 +_080A2CFE: + cmp r7, 0 + beq _080A2D08 + adds r0, r6, 0 + bl DestroyAnimSprite +_080A2D08: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A2C68 + + thumb_func_start sub_80A2D10 +sub_80A2D10: @ 80A2D10 + push {r4,lr} + adds r4, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A2D3C + bl sub_8075290 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A2D3C + ldr r0, _080A2D64 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_8076D9C +_080A2D3C: + ldrh r0, [r4, 0x22] + adds r0, 0x20 + strh r0, [r4, 0x22] + ldr r1, _080A2D68 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x36] + ldr r0, _080A2D6C @ =sub_80A2D70 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2D64: .4byte gBattleAnimTarget +_080A2D68: .4byte gBattleAnimArgs +_080A2D6C: .4byte sub_80A2D70 + thumb_func_end sub_80A2D10 + + thumb_func_start sub_80A2D70 +sub_80A2D70: @ 80A2D70 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0xFF + bne _080A2D86 + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + b _080A2D94 +_080A2D86: + cmp r0, 0 + ble _080A2D94 + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + subs r0, r1, 0x2 + strh r0, [r4, 0x30] +_080A2D94: + ldrh r3, [r4, 0x32] + ldrh r5, [r4, 0x38] + adds r2, r3, r5 + strh r2, [r4, 0x38] + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r5, 0x36 + ldrsh r0, [r4, r5] + cmp r1, r0 + bge _080A2DAC + adds r0, r2, r3 + strh r0, [r4, 0x38] +_080A2DAC: + ldrh r1, [r4, 0x38] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r5, 0x38 + ldrsh r0, [r4, r5] + movs r1, 0x5 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _080A2DEC + ldr r0, _080A2DE8 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + b _080A2DFA + .align 2, 0 +_080A2DE8: .4byte gBattleAnimTarget +_080A2DEC: + ldr r0, _080A2E24 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 +_080A2DFA: + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080A2E1E + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2E1E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2E24: .4byte gBattleAnimTarget + thumb_func_end sub_80A2D70 + + thumb_func_start sub_80A2E28 +sub_80A2E28: @ 80A2E28 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8075114 + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r4, _080A2E5C @ =gBattleAnimArgs + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAffineAnim + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x3A] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x3C] + ldr r0, _080A2E60 @ =sub_80A2E64 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A2E5C: .4byte gBattleAnimArgs +_080A2E60: .4byte sub_80A2E64 + thumb_func_end sub_80A2E28 + + thumb_func_start sub_80A2E64 +sub_80A2E64: @ 80A2E64 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A2E94 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A2E98 @ =0x0000ffff + cmp r1, r0 + bne _080A2E8E + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r0, 0x1 + bl GetAnimBankSpriteId + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x2E] + ldr r0, _080A2E9C @ =sub_80A2EA0 + str r0, [r4, 0x1C] +_080A2E8E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2E94: .4byte gBattleAnimArgs +_080A2E98: .4byte 0x0000ffff +_080A2E9C: .4byte sub_80A2EA0 + thumb_func_end sub_80A2E64 + + thumb_func_start sub_80A2EA0 +sub_80A2EA0: @ 80A2EA0 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + bl GetAnimBankSpriteId + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A2EB8 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + b _080A2EBC +_080A2EB8: + ldrh r0, [r4, 0x2E] + subs r0, 0xB +_080A2EBC: + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080A2ED8 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x32] +_080A2ED8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A2F06 + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + cmp r0, 0 + ble _080A2F00 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAffineAnim + b _080A2F06 +_080A2F00: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A2F06: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A2EA0 + + thumb_func_start sub_80A2F0C +sub_80A2F0C: @ 80A2F0C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080A2F38 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _080A2F3C + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080A2F62 + .align 2, 0 +_080A2F38: .4byte gSprites +_080A2F3C: + adds r0, r2, 0 + movs r1, 0x1 + bl sub_80758E0 + ldr r1, _080A2F68 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080A2F6C @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x8] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xA] + movs r1, 0x80 + lsls r1, 1 + strh r1, [r0, 0x1E] + ldr r1, _080A2F70 @ =sub_80A2F74 + str r1, [r0] +_080A2F62: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A2F68: .4byte gTasks +_080A2F6C: .4byte gBattleAnimArgs +_080A2F70: .4byte sub_80A2F74 + thumb_func_end sub_80A2F0C + + thumb_func_start sub_80A2F74 +sub_80A2F74: @ 80A2F74 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080A2FF4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x8] + ldrh r0, [r4, 0x1C] + adds r1, r0 + strh r1, [r4, 0x1C] + ldr r2, _080A2FF8 @ =gSprites + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r5, r0, r2 + lsls r1, 16 + asrs r1, 24 + strh r1, [r5, 0x24] + ldr r0, _080A2FFC @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A2FBE + ldrh r0, [r5, 0x24] + negs r0, r0 + strh r0, [r5, 0x24] +_080A2FBE: + ldrh r0, [r4, 0x1E] + adds r0, 0x10 + strh r0, [r4, 0x1E] + movs r0, 0x1E + ldrsh r2, [r4, r0] + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + adds r0, r6, 0 + bl sub_8076440 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080A2FEC + strh r0, [r4, 0x8] + ldr r0, _080A3000 @ =sub_80A3004 + str r0, [r4] +_080A2FEC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A2FF4: .4byte gTasks +_080A2FF8: .4byte gSprites +_080A2FFC: .4byte gBattleAnimTarget +_080A3000: .4byte sub_80A3004 + thumb_func_end sub_80A2F74 + + thumb_func_start sub_80A3004 +sub_80A3004: @ 80A3004 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080A3050 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A3054 @ =0x0000ffff + cmp r1, r0 + bne _080A3060 + ldr r0, _080A3058 @ =gTasks + lsls r2, r3, 2 + adds r1, r2, r3 + lsls r1, 3 + adds r6, r1, r0 + movs r1, 0x8 + ldrsh r5, [r6, r1] + adds r4, r0, 0 + cmp r5, 0 + bne _080A3074 + movs r0, 0x1 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8075980 + ldr r1, _080A305C @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + strh r5, [r0, 0x24] + strh r5, [r0, 0x26] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _080A308E + .align 2, 0 +_080A3050: .4byte gBattleAnimArgs +_080A3054: .4byte 0x0000ffff +_080A3058: .4byte gTasks +_080A305C: .4byte gSprites +_080A3060: + ldr r1, _080A3094 @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r0, r1 + movs r4, 0x8 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0 + beq _080A308E +_080A3074: + adds r1, r2, r3 + lsls r1, 3 + adds r1, r4 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080A308E + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080A308E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A3094: .4byte gTasks + thumb_func_end sub_80A3004 + + thumb_func_start sub_80A3098 +sub_80A3098: @ 80A3098 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080A30AA + cmp r0, 0x1 + beq _080A3104 + b _080A3156 +_080A30AA: + ldr r6, _080A30FC @ =gBattleAnimTarget + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A30C2 + ldr r1, _080A3100 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] +_080A30C2: + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A3100 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080A3156 + .align 2, 0 +_080A30FC: .4byte gBattleAnimTarget +_080A3100: .4byte gBattleAnimArgs +_080A3104: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A3156 + adds r0, r5, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim + movs r0, 0x19 + strh r0, [r5, 0x2E] + ldr r4, _080A315C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080A3160 @ =sub_8075764 + str r0, [r5, 0x1C] + ldr r1, _080A3164 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080A3156: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A315C: .4byte gBattleAnimAttacker +_080A3160: .4byte sub_8075764 +_080A3164: .4byte DestroyAnimSprite + thumb_func_end sub_80A3098 + + thumb_func_start sub_80A3168 +sub_80A3168: @ 80A3168 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A31D4 + ldr r4, _080A31E0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080A31E4 @ =gBattleAnimArgs + ldrh r0, [r4] + strh r0, [r5, 0x24] + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x26] + ldrb r0, [r4, 0x4] + adds r0, 0x1E + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r4, 0x6] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + movs r2, 0x22 + ldrsh r0, [r5, r2] + movs r2, 0x26 + ldrsh r1, [r5, r2] + adds r0, r1 + cmp r0, 0x78 + ble _080A31D4 + ldrh r0, [r5, 0x22] + adds r1, r0, 0 + subs r1, 0x78 + ldrh r2, [r5, 0x26] + adds r0, r2 + adds r1, r0 + strh r1, [r5, 0x22] +_080A31D4: + ldr r0, _080A31E8 @ =sub_80A32DC + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A31E0: .4byte gBattleAnimAttacker +_080A31E4: .4byte gBattleAnimArgs +_080A31E8: .4byte sub_80A32DC + thumb_func_end sub_80A3168 + + thumb_func_start sub_80A31EC +sub_80A31EC: @ 80A31EC + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + mov r9, r0 + ldr r4, _080A32C8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r6, _080A32CC @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + adds r2, r0, 0 + lsls r2, 24 + subs r4, r5 + lsls r4, 16 + lsrs r2, 24 + mov r1, r8 + subs r2, r1 + lsls r2, 16 + lsrs r2, 16 + lsrs r3, r4, 16 + mov r10, r3 + asrs r4, 16 + ldr r6, _080A32D0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + muls r0, r4 + movs r1, 0x64 + str r2, [sp] + bl __divsi3 + adds r5, r0 + mov r3, r9 + strh r5, [r3, 0x20] + ldr r2, [sp] + lsls r0, r2, 16 + asrs r0, 16 + movs r3, 0 + ldrsh r1, [r6, r3] + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + add r8, r0 + mov r1, r8 + mov r0, r9 + strh r1, [r0, 0x22] + ldrh r0, [r6, 0x2] + mov r3, r9 + strh r0, [r3, 0x24] + ldrh r0, [r6, 0x4] + strh r0, [r3, 0x26] + ldrb r0, [r6, 0x6] + adds r0, 0x1E + mov r1, r9 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0x8] + mov r0, r9 + bl StartSpriteAnim + ldrh r0, [r6, 0xA] + mov r1, r9 + strh r0, [r1, 0x32] + ldr r0, _080A32D4 @ =sub_80A32DC + str r0, [r1, 0x1C] + ldr r1, _080A32D8 @ =gUnknown_203999C + mov r3, r9 + ldrh r0, [r3, 0x20] + strh r0, [r1] + ldrh r0, [r3, 0x22] + strh r0, [r1, 0x2] + mov r0, r10 + strh r0, [r1, 0x4] + ldr r2, [sp] + strh r2, [r1, 0x6] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A32C8: .4byte gBattleAnimAttacker +_080A32CC: .4byte gBattleAnimTarget +_080A32D0: .4byte gBattleAnimArgs +_080A32D4: .4byte sub_80A32DC +_080A32D8: .4byte gUnknown_203999C + thumb_func_end sub_80A31EC + + thumb_func_start sub_80A32DC +sub_80A32DC: @ 80A32DC + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + adds r1, 0x1 + strh r1, [r3, 0x2E] + lsls r1, 16 + asrs r1, 16 + movs r2, 0x32 + ldrsh r0, [r3, r2] + subs r0, 0xA + cmp r1, r0 + ble _080A331C + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + movs r2, 0x3E + adds r2, r3 + mov r12, r2 + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080A331C: + movs r2, 0x2E + ldrsh r1, [r3, r2] + movs r2, 0x32 + ldrsh r0, [r3, r2] + cmp r1, r0 + ble _080A332E + adds r0, r3, 0 + bl DestroyAnimSprite +_080A332E: + pop {r0} + bx r0 + thumb_func_end sub_80A32DC + + thumb_func_start sub_80A3334 +sub_80A3334: @ 80A3334 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A3374 + ldr r5, _080A33B0 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A33B4 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r2, [r4] + adds r0, r2 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x30] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x32] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x34] +_080A3374: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + strh r0, [r6, 0x2E] + ldrh r1, [r6, 0x30] + muls r0, r1 + strh r0, [r6, 0x24] + movs r2, 0x2E + ldrsh r1, [r6, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + movs r1, 0xFF + ands r0, r1 + movs r2, 0x32 + ldrsh r1, [r6, r2] + bl Sin + strh r0, [r6, 0x26] + movs r0, 0x2E + ldrsh r1, [r6, r0] + movs r2, 0x34 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080A33AA + adds r0, r6, 0 + bl DestroyAnimSprite +_080A33AA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A33B0: .4byte gBattleAnimAttacker +_080A33B4: .4byte gBattleAnimArgs + thumb_func_end sub_80A3334 + + thumb_func_start sub_80A33B8 +sub_80A33B8: @ 80A33B8 + push {r4,r5,lr} + movs r2, 0x20 + ldrsh r4, [r0, r2] + lsls r4, 8 + movs r3, 0x22 + ldrsh r2, [r0, r3] + orrs r4, r2 + movs r5, 0x3A + ldrsh r2, [r0, r5] + lsls r2, 8 + movs r5, 0x3C + ldrsh r3, [r0, r5] + orrs r2, r3 + lsls r1, 8 + strh r4, [r0, 0x38] + strh r2, [r0, 0x3A] + strh r1, [r0, 0x3C] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A33B8 + + thumb_func_start sub_80A33E0 +sub_80A33E0: @ 80A33E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + ldrh r0, [r0, 0x38] + lsrs r1, r0, 8 + mov r10, r1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r1, r8 + ldrh r0, [r1, 0x3A] + lsrs r2, r0, 8 + lsls r0, 24 + lsrs r4, r0, 24 + ldrh r1, [r1, 0x3C] + lsls r0, r1, 16 + asrs r0, 24 + lsls r0, 16 + lsrs r6, r0, 16 + movs r3, 0xFF + ands r3, r1 + cmp r2, 0 + bne _080A341A + movs r2, 0x20 + negs r2, r2 + b _080A3422 +_080A341A: + cmp r2, 0xFF + bne _080A3422 + movs r2, 0x88 + lsls r2, 1 +_080A3422: + mov r0, r9 + subs r4, r0 + lsls r4, 16 + lsrs r4, 16 + mov r1, r10 + subs r0, r2, r1 + lsls r5, r3, 16 + asrs r5, 16 + muls r0, r5 + lsls r1, r6, 16 + asrs r7, r1, 16 + adds r1, r7, 0 + bl __divsi3 + adds r6, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + muls r0, r5 + adds r1, r7, 0 + bl __divsi3 + add r6, r10 + mov r1, r8 + strh r6, [r1, 0x20] + add r0, r9 + strh r0, [r1, 0x22] + adds r5, 0x1 + lsls r5, 16 + lsrs r3, r5, 16 + asrs r5, 16 + cmp r5, r7 + beq _080A3474 + lsls r1, r7, 8 + lsls r0, r3, 16 + asrs r0, 16 + orrs r0, r1 + mov r1, r8 + strh r0, [r1, 0x3C] + movs r0, 0 + b _080A3476 +_080A3474: + movs r0, 0x1 +_080A3476: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A33E0 + + thumb_func_start sub_80A3484 +sub_80A3484: @ 80A3484 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080A3498 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080A3498: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + ble _080A34AC + adds r0, r4, 0 + bl DestroyAnimSprite +_080A34AC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A3484 + + thumb_func_start sub_80A34B4 +sub_80A34B4: @ 80A34B4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080A34DE + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080A34DE: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + adds r0, r4, 0 + bl sub_80A33E0 + lsls r0, 24 + cmp r0, 0 + beq _080A350E + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + ldr r0, _080A3514 @ =sub_80A3484 + str r0, [r4, 0x1C] +_080A350E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A3514: .4byte sub_80A3484 + thumb_func_end sub_80A34B4 + + thumb_func_start sub_80A3518 +sub_80A3518: @ 80A3518 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r4, _080A3560 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080A3564 @ =gBattleAnimAttacker + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080A3568 + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80A33B8 + movs r0, 0x1 + b _080A357A + .align 2, 0 +_080A3560: .4byte gBattleAnimTarget +_080A3564: .4byte gBattleAnimAttacker +_080A3568: + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80A33B8 + movs r0, 0x3 +_080A357A: + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080A358C @ =sub_80A34B4 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A358C: .4byte sub_80A34B4 + thumb_func_end sub_80A3518 + + thumb_func_start sub_80A3590 +sub_80A3590: @ 80A3590 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080A35BA + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080A35BA: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + adds r0, r4, 0 + bl sub_80A33E0 + lsls r0, 24 + cmp r0, 0 + beq _080A35EC + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + adds r0, r4, 0 + bl DestroyAnimSprite +_080A35EC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A3590 + + thumb_func_start sub_80A35F4 +sub_80A35F4: @ 80A35F4 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080A3630 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080A3638 + strh r0, [r5, 0x3A] + adds r0, r6, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x28 + bl sub_80A33B8 + movs r0, 0x3 + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080A3634 @ =sub_80A34B4 + b _080A3662 + .align 2, 0 +_080A3630: .4byte gBattleAnimTarget +_080A3634: .4byte sub_80A34B4 +_080A3638: + movs r0, 0xFF + strh r0, [r5, 0x3A] + adds r0, r6, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A3650 + movs r0, 0 + strh r0, [r5, 0x3A] +_080A3650: + adds r0, r5, 0 + movs r1, 0x28 + bl sub_80A33B8 + movs r0, 0x3 + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080A366C @ =sub_80A3590 +_080A3662: + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A366C: .4byte sub_80A3590 + thumb_func_end sub_80A35F4 + + thumb_func_start sub_80A3670 +sub_80A3670: @ 80A3670 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A368A + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 + ldr r0, _080A36B0 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x30] +_080A368A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x30] + muls r0, r1 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A36AA + adds r0, r4, 0 + bl DestroyAnimSprite +_080A36AA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A36B0: .4byte gBattleAnimArgs + thumb_func_end sub_80A3670 + + thumb_func_start sub_80A36B4 +sub_80A36B4: @ 80A36B4 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8075114 + ldr r4, _080A36FC @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080A3700 @ =gBattleAnimTarget + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080A3704 + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80A33B8 + movs r0, 0x1 + b _080A3716 + .align 2, 0 +_080A36FC: .4byte gBattleAnimAttacker +_080A3700: .4byte gBattleAnimTarget +_080A3704: + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80A33B8 + movs r0, 0x3 +_080A3716: + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080A3728 @ =sub_80A372C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A3728: .4byte sub_80A372C + thumb_func_end sub_80A36B4 + + thumb_func_start sub_80A372C +sub_80A372C: @ 80A372C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080A3756 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080A3756: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + bne _080A378A + movs r0, 0x3F + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x76 + bl PlaySE12WithPanning +_080A378A: + adds r0, r4, 0 + bl sub_80A33E0 + lsls r0, 24 + cmp r0, 0 + beq _080A37B2 + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + ldr r0, _080A37B8 @ =sub_80A3484 + str r0, [r4, 0x1C] + movs r0, 0x40 + negs r0, r0 + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x76 + bl PlaySE12WithPanning +_080A37B2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A37B8: .4byte sub_80A3484 + thumb_func_end sub_80A372C + + thumb_func_start sub_80A37BC +sub_80A37BC: @ 80A37BC + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A3850 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A37E4 + ldr r0, _080A37E0 @ =gBattleAnimArgs + ldrh r1, [r0, 0x2] + strh r1, [r4, 0x30] + movs r1, 0x78 + strh r1, [r4, 0x20] + adds r5, r0, 0 + b _080A3806 + .align 2, 0 +_080A37E0: .4byte gBattleAnimArgs +_080A37E4: + ldr r0, _080A3840 @ =gBattleAnimArgs + movs r1, 0x2 + ldrsh r3, [r0, r1] + adds r1, r3, 0 + subs r1, 0x20 + adds r2, r1, 0 + adds r5, r0, 0 + cmp r1, 0 + bge _080A37FA + adds r2, r3, 0 + adds r2, 0xDF +_080A37FA: + asrs r0, r2, 8 + lsls r0, 8 + subs r0, r1, r0 + strh r0, [r4, 0x30] + movs r0, 0x46 + strh r0, [r4, 0x20] +_080A3806: + ldrh r0, [r5] + strh r0, [r4, 0x22] + strh r0, [r4, 0x32] + movs r0, 0x14 + strh r0, [r4, 0x36] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3C + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] + ldr r0, _080A3844 @ =sub_80A3858 + str r0, [r4, 0x1C] + ldrh r0, [r4, 0x30] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBE + bhi _080A3848 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F + b _080A384E + .align 2, 0 +_080A3840: .4byte gBattleAnimArgs +_080A3844: .4byte sub_80A3858 +_080A3848: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D +_080A384E: + strb r0, [r1] +_080A3850: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A37BC + + thumb_func_start sub_80A3858 +sub_80A3858: @ 80A3858 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A386A + cmp r0, 0x1 + beq _080A389A + b _080A38BA +_080A386A: + ldrh r5, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x4E + ble _080A3882 + movs r0, 0x1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080A38BA +_080A3882: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + adds r0, r5, r0 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x36] + adds r1, 0x3 + strh r1, [r4, 0x36] + strh r0, [r4, 0x22] + b _080A38BA +_080A389A: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A38BA + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A38BA + movs r0, 0 + strh r0, [r4, 0x2E] + strh r0, [r4, 0x32] + ldr r0, _080A38C0 @ =sub_80A38C4 + str r0, [r4, 0x1C] +_080A38BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A38C0: .4byte sub_80A38C4 + thumb_func_end sub_80A3858 + + thumb_func_start sub_80A38C4 +sub_80A38C4: @ 80A38C4 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080A3908 @ =gUnknown_83E2F78 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r3, r0, r1 + adds r0, r5, 0x1 + adds r0, r3, r0 + ldrh r2, [r4, 0x32] + movs r6, 0x32 + ldrsh r1, [r4, r6] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080A3910 + adds r0, r5, 0x2 + adds r0, r3, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x7F + bne _080A38FC + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080A390C @ =sub_80A397C + str r0, [r4, 0x1C] +_080A38FC: + movs r0, 0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080A3976 + .align 2, 0 +_080A3908: .4byte gUnknown_83E2F78 +_080A390C: .4byte sub_80A397C +_080A3910: + adds r0, r2, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + adds r1, r0, r5 + movs r2, 0 + ldrsb r2, [r1, r2] + adds r1, r5, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + muls r0, r2 + ldrh r1, [r4, 0x30] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A395E + ldrh r0, [r4, 0x30] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBE + bhi _080A3956 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F + b _080A395C +_080A3956: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D +_080A395C: + strb r0, [r1] +_080A395E: + movs r6, 0x30 + ldrsh r0, [r4, r6] + movs r1, 0x3C + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] +_080A3976: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A38C4 + + thumb_func_start sub_80A397C +sub_80A397C: @ 80A397C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x14 + ble _080A398E + adds r0, r4, 0 + bl DestroyAnimSprite +_080A398E: + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A397C + + thumb_func_start sub_80A39C0 +sub_80A39C0: @ 80A39C0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080A3B14 @ =gTasks + adds r5, r0, r1 + ldr r4, _080A3B18 @ =gBattleAnimTarget + ldrb r0, [r4] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + strh r0, [r5, 0x10] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8076B2C + strh r0, [r5, 0x1C] + ldrb r0, [r4] + movs r1, 0 + bl sub_8076B2C + strh r0, [r5, 0x1E] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0x1 + bne _080A3A28 + movs r1, 0x1 +_080A3A28: + strh r1, [r5, 0x12] + movs r3, 0x12 + ldrsh r0, [r5, r3] + lsls r0, 6 + movs r1, 0x38 + subs r1, r0 + strh r1, [r5, 0x1A] + ldrh r0, [r5, 0x16] + subs r0, r1 + ldrh r1, [r5, 0x14] + adds r0, r1 + strh r0, [r5, 0x18] + ldr r0, _080A3B1C @ =gUnknown_83E2FF0 + movs r2, 0x18 + ldrsh r1, [r5, r2] + movs r3, 0x1A + ldrsh r2, [r5, r3] + ldrb r3, [r5, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xC] + cmp r0, 0x40 + bne _080A3A60 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A3A60: + ldr r4, _080A3B20 @ =gSprites + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xA + strh r1, [r0, 0x2E] + movs r2, 0xC + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x18] + strh r1, [r0, 0x30] + movs r3, 0xC + ldrsh r0, [r5, r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + movs r1, 0x1C + ldrsh r0, [r5, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r5, r3] + muls r1, r0 + ldrh r0, [r5, 0x14] + subs r0, r1 + strh r0, [r2, 0x32] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x1A] + strh r1, [r0, 0x34] + movs r1, 0xC + ldrsh r0, [r5, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r2, 0x1E + ldrsh r0, [r5, r2] + lsrs r2, r0, 31 + adds r0, r2 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r2, [r5, r3] + muls r0, r2 + ldrh r2, [r5, 0x16] + adds r0, r2 + strh r0, [r1, 0x36] + movs r3, 0xC + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_80A3F04 + movs r1, 0xC + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x38] + movs r2, 0xC + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8075068 + ldr r0, _080A3B24 @ =sub_80A3B28 + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A3B14: .4byte gTasks +_080A3B18: .4byte gBattleAnimTarget +_080A3B1C: .4byte gUnknown_83E2FF0 +_080A3B20: .4byte gSprites +_080A3B24: .4byte sub_80A3B28 + thumb_func_end sub_80A39C0 + + thumb_func_start sub_80A3B28 +sub_80A3B28: @ 80A3B28 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080A3B6C @ =gTasks + adds r6, r0, r1 + movs r0, 0xC + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080A3B70 @ =gSprites + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r5, [r6, r1] + cmp r5, 0x7 + bne _080A3B50 + b _080A3D80 +_080A3B50: + cmp r5, 0x7 + bgt _080A3B9E + cmp r5, 0x3 + bne _080A3B5A + b _080A3C72 +_080A3B5A: + cmp r5, 0x3 + bgt _080A3B74 + cmp r5, 0x1 + beq _080A3C04 + cmp r5, 0x1 + bgt _080A3C54 + cmp r5, 0 + beq _080A3BE6 + b _080A3EFC + .align 2, 0 +_080A3B6C: .4byte gTasks +_080A3B70: .4byte gSprites +_080A3B74: + cmp r5, 0x5 + bne _080A3B7A + b _080A3CE8 +_080A3B7A: + cmp r5, 0x5 + ble _080A3B80 + b _080A3D62 +_080A3B80: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3B96 + b _080A3EFC +_080A3B96: + movs r0, 0x5 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3B9E: + cmp r5, 0xB + bne _080A3BA4 + b _080A3E64 +_080A3BA4: + cmp r5, 0xB + bgt _080A3BD2 + cmp r5, 0x9 + bne _080A3BAE + b _080A3DD2 +_080A3BAE: + cmp r5, 0x9 + ble _080A3BB4 + b _080A3E48 +_080A3BB4: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3BCA + b _080A3EFC +_080A3BCA: + movs r0, 0x9 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3BD2: + cmp r5, 0xD + bne _080A3BD8 + b _080A3ED6 +_080A3BD8: + cmp r5, 0xD + bge _080A3BDE + b _080A3EB6 +_080A3BDE: + cmp r5, 0xFF + bne _080A3BE4 + b _080A3EE6 +_080A3BE4: + b _080A3EFC +_080A3BE6: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3BFC + b _080A3EFC +_080A3BFC: + movs r0, 0x1 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3C04: + ldrh r2, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r2, r3 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x16] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + ldrh r0, [r6, 0x10] + adds r0, 0x2 + strh r0, [r6, 0x10] + strh r5, [r6, 0xE] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3C54: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3C6A + b _080A3EFC +_080A3C6A: + movs r0, 0x3 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3C72: + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r1, r0 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r1, r0 + ldrh r0, [r6, 0x14] + subs r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r1, 0x1E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r2, 0x12 + ldrsh r1, [r6, r2] + muls r1, r0 + ldrh r0, [r6, 0x16] + subs r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + movs r0, 0x2 + strh r0, [r6, 0xE] + ldrh r0, [r6, 0x10] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3CE8: + ldrh r1, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r1, r3 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r0, r1 + ldrh r1, [r6, 0x14] + adds r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r2, 0x1E + ldrsh r0, [r6, r2] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r0, r1 + ldrh r1, [r6, 0x16] + adds r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + subs r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x3 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3D62: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080A3D78 + b _080A3EFC +_080A3D78: + movs r0, 0x7 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3D80: + ldrh r2, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r2, r3 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x16] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + adds r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x4 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3DD2: + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r1, r0 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r1, r0 + ldrh r0, [r6, 0x14] + subs r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r1, 0x1E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r2, 0x12 + ldrsh r1, [r6, r2] + muls r0, r1 + ldrh r3, [r6, 0x16] + adds r0, r3 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + movs r0, 0x5 + strh r0, [r6, 0xE] + ldrh r0, [r6, 0x10] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3E48: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080A3EFC + movs r0, 0xB + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080A3EFA +_080A3E64: + ldrh r2, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r2, r0 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x18] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x1A] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80A3F04 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + subs r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x6 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_8075068 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3EB6: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80A3F24 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080A3EFC + adds r0, r4, 0 + bl DestroySprite + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080A3EFA +_080A3ED6: + movs r1, 0x20 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A3EFC + adds r0, r2, 0 + bl DestroyAnimVisualTask + b _080A3EFC +_080A3EE6: + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080A3EFC + movs r0, 0 + strh r0, [r6, 0xA] + ldrh r0, [r6, 0x26] +_080A3EFA: + strh r0, [r6, 0x8] +_080A3EFC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A3B28 + + thumb_func_start sub_80A3F04 +sub_80A3F04: @ 80A3F04 + push {lr} + movs r2, 0x8 + movs r3, 0x36 + ldrsh r1, [r0, r3] + movs r3, 0x22 + ldrsh r0, [r0, r3] + cmp r1, r0 + bge _080A3F1A + negs r0, r2 + lsls r0, 16 + lsrs r2, r0, 16 +_080A3F1A: + lsls r0, r2, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80A3F04 + + thumb_func_start sub_80A3F24 +sub_80A3F24: @ 80A3F24 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + ldrh r0, [r6, 0x24] + adds r0, 0x1 + strh r0, [r6, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080A3FBA + movs r0, 0 + strh r0, [r6, 0x24] + ldr r0, _080A3FC4 @ =gSprites + mov r8, r0 + movs r2, 0xC + ldrsh r1, [r6, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrh r1, [r0, 0x24] + ldrh r2, [r0, 0x20] + adds r1, r2 + ldrh r2, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r2, r0 + ldr r0, _080A3FC8 @ =gUnknown_83E2FF0 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + ldrb r3, [r6, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080A3FBA + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + mov r0, r8 + adds r4, r5, r0 + strh r7, [r4, 0x3A] + movs r0, 0xC + strh r0, [r4, 0x3C] + ldr r0, _080A3FCC @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldrh r2, [r6, 0x22] + movs r0, 0x1 + ands r0, r2 + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r6, 0x10] + adds r4, 0x43 + strb r0, [r4] + mov r0, r8 + adds r0, 0x1C + adds r5, r0 + ldr r0, _080A3FD0 @ =sub_80A3FD4 + str r0, [r5] +_080A3FBA: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A3FC4: .4byte gSprites +_080A3FC8: .4byte gUnknown_83E2FF0 +_080A3FCC: .4byte gTasks +_080A3FD0: .4byte sub_80A3FD4 + thumb_func_end sub_80A3F24 + + thumb_func_start sub_80A3FD4 +sub_80A3FD4: @ 80A3FD4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A4036 + movs r0, 0 + strh r0, [r4, 0x2E] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A4036 + ldr r3, _080A403C @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080A4036: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A403C: .4byte gTasks + thumb_func_end sub_80A3FD4 + + thumb_func_start sub_80A4040 +sub_80A4040: @ 80A4040 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080A4054 @ =gBattleAnimArgs + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A405C + ldr r0, _080A4058 @ =gBattleAnimAttacker + b _080A405E + .align 2, 0 +_080A4054: .4byte gBattleAnimArgs +_080A4058: .4byte gBattleAnimAttacker +_080A405C: + ldr r0, _080A407C @ =gBattleAnimTarget +_080A405E: + ldrb r6, [r0] + adds r0, r6, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A4088 + movs r0, 0 + strh r0, [r4, 0x36] + ldr r1, _080A4080 @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x32] + ldr r0, _080A4084 @ =0x0000fff0 + b _080A4098 + .align 2, 0 +_080A407C: .4byte gBattleAnimTarget +_080A4080: .4byte gBattleAnimArgs +_080A4084: .4byte 0x0000fff0 +_080A4088: + movs r0, 0x1 + strh r0, [r4, 0x36] + ldr r1, _080A40BC @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r4, 0x32] + movs r0, 0x80 + lsls r0, 1 +_080A4098: + strh r0, [r4, 0x20] + adds r7, r1, 0 + adds r5, r7, 0 + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x34] + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080A40CE + cmp r0, 0x1 + bgt _080A40C0 + cmp r0, 0 + beq _080A40CA + b _080A4138 + .align 2, 0 +_080A40BC: .4byte gBattleAnimArgs +_080A40C0: + cmp r0, 0x2 + beq _080A40D4 + cmp r0, 0x3 + beq _080A4100 + b _080A4138 +_080A40CA: + ldrh r0, [r5] + b _080A40E4 +_080A40CE: + ldrh r0, [r5] + strh r0, [r4, 0x22] + b _080A411A +_080A40D4: + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5] + adds r0, r5 +_080A40E4: + strh r0, [r4, 0x22] + adds r0, r6, 0 + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080A4138 +_080A4100: + ldr r0, _080A4144 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r7, [r7] + adds r0, r7 + strh r0, [r4, 0x22] + movs r0, 0x1 + bl GetAnimBankSpriteId +_080A411A: + adds r0, r6, 0 + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_080A4138: + ldr r0, _080A4148 @ =sub_80A414C + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4144: .4byte gBattleAnimTarget +_080A4148: .4byte sub_80A414C + thumb_func_end sub_80A4040 + + thumb_func_start sub_80A414C +sub_80A414C: @ 80A414C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x3C + ldrsh r3, [r4, r0] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r1, 0x30 + ldrsh r2, [r4, r1] + ldr r1, _080A41A0 @ =gSineTable + movs r5, 0x2E + ldrsh r0, [r4, r5] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r2 + asrs r0, 8 + strh r0, [r4, 0x26] + movs r2, 0x32 + ldrsh r0, [r4, r2] + muls r0, r3 + strh r0, [r4, 0x24] + movs r5, 0x34 + ldrsh r0, [r4, r5] + muls r0, r3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A41A4 + movs r2, 0x24 + ldrsh r0, [r4, r2] + movs r5, 0x20 + ldrsh r1, [r4, r5] + adds r0, r1 + cmp r0, 0xF7 + ble _080A41BC + b _080A41B6 + .align 2, 0 +_080A41A0: .4byte gSineTable +_080A41A4: + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r2, 0x20 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bgt _080A41BC +_080A41B6: + adds r0, r4, 0 + bl move_anim_8074EE0 +_080A41BC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A414C + + thumb_func_start sub_80A41C4 +sub_80A41C4: @ 80A41C4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080A41E4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080A41E8 + cmp r0, 0x1 + beq _080A421C + b _080A4276 + .align 2, 0 +_080A41E4: .4byte gTasks +_080A41E8: + ldr r0, _080A4214 @ =0x0000274f + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r2, 0x80 + lsls r2, 1 + adds r4, r2, 0 + adds r0, r4 + strh r0, [r5, 0x18] + ldr r0, _080A4218 @ =0x000027b0 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + adds r0, r4 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080A4276 + .align 2, 0 +_080A4214: .4byte 0x0000274f +_080A4218: .4byte 0x000027b0 +_080A421C: + ldrh r0, [r5, 0x1A] + adds r0, 0x1 + movs r7, 0 + strh r0, [r5, 0x1A] + lsls r0, 16 + cmp r0, 0 + blt _080A4276 + strh r7, [r5, 0x1A] + ldrh r0, [r5, 0x18] + ldrb r2, [r5, 0x1C] + ldr r4, _080A4290 @ =gUnknown_83E30F0 + movs r3, 0x1E + ldrsh r1, [r5, r3] + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r5, 0x20] + ldrb r2, [r5, 0x1C] + movs r3, 0x1E + ldrsh r1, [r5, r3] + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + bne _080A4276 + strh r7, [r5, 0x1C] + ldrh r0, [r5, 0x1E] + adds r0, 0x1 + strh r0, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bne _080A4276 + strh r7, [r5, 0x1E] +_080A4276: + ldr r0, _080A4294 @ =gBattleAnimArgs + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080A428A + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A428A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4290: .4byte gUnknown_83E30F0 +_080A4294: .4byte gBattleAnimArgs + thumb_func_end sub_80A41C4 + + thumb_func_start sub_80A4298 +sub_80A4298: @ 80A4298 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r1, _080A42B0 @ =gBattleAnimArgs + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080A42B4 + adds r0, r6, 0 + bl DestroyAnimSprite + b _080A438E + .align 2, 0 +_080A42B0: .4byte gBattleAnimArgs +_080A42B4: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080A42C4 + ldr r4, _080A42C0 @ =gBattleAnimAttacker + b _080A42C6 + .align 2, 0 +_080A42C0: .4byte gBattleAnimAttacker +_080A42C4: + ldr r4, _080A4300 @ =gBattleAnimTarget +_080A42C6: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080A4304 @ =gBattleAnimArgs + ldrh r1, [r0, 0x8] + strh r1, [r6, 0x2E] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r7, r0, 0 + cmp r1, 0 + bne _080A4308 + ldrh r0, [r7, 0x4] + adds r0, r5 + strh r0, [r6, 0x20] + ldrh r0, [r7, 0x6] + adds r0, r2 + strh r0, [r6, 0x22] + strh r5, [r6, 0x38] + strh r2, [r6, 0x3A] + b _080A4318 + .align 2, 0 +_080A4300: .4byte gBattleAnimTarget +_080A4304: .4byte gBattleAnimArgs +_080A4308: + strh r5, [r6, 0x20] + strh r2, [r6, 0x22] + ldrh r0, [r7, 0x4] + adds r0, r5 + strh r0, [r6, 0x38] + ldrh r0, [r7, 0x6] + adds r0, r2 + strh r0, [r6, 0x3A] +_080A4318: + ldrh r4, [r6, 0x20] + lsls r0, r4, 4 + strh r0, [r6, 0x30] + ldrh r5, [r6, 0x22] + lsls r0, r5, 4 + strh r0, [r6, 0x32] + movs r1, 0x38 + ldrsh r0, [r6, r1] + movs r2, 0x20 + ldrsh r1, [r6, r2] + subs r0, r1 + lsls r0, 4 + movs r3, 0x8 + ldrsh r1, [r7, r3] + bl __divsi3 + strh r0, [r6, 0x34] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x22 + ldrsh r1, [r6, r2] + subs r0, r1 + lsls r0, 4 + movs r3, 0x8 + ldrsh r1, [r7, r3] + bl __divsi3 + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x38] + subs r0, r4 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r6, 0x3A] + subs r1, r5 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + lsrs r4, r0, 16 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A437A + ldr r1, _080A4398 @ =0xffff8000 + adds r0, r4, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_080A437A: + movs r3, 0x80 + lsls r3, 1 + str r4, [sp] + adds r0, r6, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + ldr r0, _080A439C @ =sub_80A43A0 + str r0, [r6, 0x1C] +_080A438E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A4398: .4byte 0xffff8000 +_080A439C: .4byte sub_80A43A0 + thumb_func_end sub_80A4298 + + thumb_func_start sub_80A43A0 +sub_80A43A0: @ 80A43A0 + push {r4,lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x2E] + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080A43D0 + ldrh r0, [r2, 0x34] + ldrh r4, [r2, 0x30] + adds r0, r4 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + ldrh r4, [r2, 0x32] + adds r1, r4 + strh r1, [r2, 0x32] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r2, 0x22] + subs r0, r3, 0x1 + strh r0, [r2, 0x2E] + b _080A43D6 +_080A43D0: + adds r0, r2, 0 + bl move_anim_8074EE0 +_080A43D6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A43A0 + + thumb_func_start sub_80A43DC +sub_80A43DC: @ 80A43DC + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A43F2 + adds r0, r2, 0 + bl DestroyAnimSprite +_080A43F2: + pop {r0} + bx r0 + thumb_func_end sub_80A43DC + + thumb_func_start sub_80A43F8 +sub_80A43F8: @ 80A43F8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A4418 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A4420 + ldr r2, _080A441C @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + b _080A442C + .align 2, 0 +_080A4418: .4byte gBattleAnimAttacker +_080A441C: .4byte gBattleAnimArgs +_080A4420: + ldr r0, _080A4444 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] +_080A442C: + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080A4448 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080A444C @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4444: .4byte gBattleAnimArgs +_080A4448: .4byte sub_8074F6C +_080A444C: .4byte DestroyAnimSprite + thumb_func_end sub_80A43F8 + + thumb_func_start sub_80A4450 +sub_80A4450: @ 80A4450 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080A4488 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A446A + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080A446A: + ldr r0, _080A448C @ =sub_80A43DC + str r0, [r5, 0x1C] + ldr r4, _080A4490 @ =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_8074FF8 + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4488: .4byte gBattleAnimAttacker +_080A448C: .4byte sub_80A43DC +_080A4490: .4byte gBattleAnimArgs + thumb_func_end sub_80A4450 + + thumb_func_start sub_80A4494 +sub_80A4494: @ 80A4494 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080A44D4 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x38] + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldr r1, _080A44D8 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A44DC @ =sub_8074E70 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A44D4: .4byte gBattleAnimArgs +_080A44D8: .4byte move_anim_8074EE0 +_080A44DC: .4byte sub_8074E70 + thumb_func_end sub_80A4494 + + thumb_func_start sub_80A44E0 +sub_80A44E0: @ 80A44E0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080A4530 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A4514 + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] +_080A4514: + ldr r0, _080A4534 @ =sub_80A46CC + str r0, [r5, 0x1C] + ldr r0, _080A4538 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080A453C + ldrh r0, [r3] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x20] + b _080A4550 + .align 2, 0 +_080A4530: .4byte gBattleAnimTarget +_080A4534: .4byte sub_80A46CC +_080A4538: .4byte gBattleAnimArgs +_080A453C: + ldrh r0, [r5, 0x20] + ldrh r1, [r3] + subs r0, r1 + strh r0, [r5, 0x20] + adds r2, r5, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080A4550: + ldrh r0, [r3, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldr r1, _080A4584 @ =0xfffffc00 + adds r0, r1, 0 + ldrh r2, [r5, 0x30] + adds r1, r0, r2 + strh r1, [r5, 0x30] + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] + ldrh r0, [r3, 0x4] + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A457E + negs r0, r1 + strh r0, [r5, 0x30] +_080A457E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4584: .4byte 0xfffffc00 + thumb_func_end sub_80A44E0 + + thumb_func_start sub_80A4588 +sub_80A4588: @ 80A4588 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r0, _080A45A4 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080A45A8 + cmp r0, 0x1 + ble _080A4624 + cmp r0, 0x2 + beq _080A45C8 + b _080A4624 + .align 2, 0 +_080A45A4: .4byte gBattleAnimArgs +_080A45A8: + ldr r5, _080A45C4 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r5] + eors r4, r0 + adds r0, r4, 0 + b _080A4634 + .align 2, 0 +_080A45C4: .4byte gBattleAnimTarget +_080A45C8: + ldr r5, _080A4620 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5] + movs r2, 0x2 + mov r8, r2 + mov r1, r8 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A463E + ldrb r0, [r5] + mov r2, r8 + eors r0, r2 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + lsrs r7, r0, 1 + ldrb r0, [r5] + mov r1, r8 + eors r0, r1 + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + lsrs r4, r0, 1 + b _080A463E + .align 2, 0 +_080A4620: .4byte gBattleAnimTarget +_080A4624: + ldr r4, _080A4670 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r4] +_080A4634: + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r4, r0, 24 +_080A463E: + strh r7, [r6, 0x20] + strh r4, [r6, 0x22] + ldr r0, _080A4670 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A4656 + ldrh r0, [r6, 0x22] + adds r0, 0x8 + strh r0, [r6, 0x22] +_080A4656: + ldr r0, _080A4674 @ =sub_80A46CC + str r0, [r6, 0x1C] + ldr r0, _080A4678 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080A467C + ldrh r0, [r3] + ldrh r1, [r6, 0x20] + adds r0, r1 + strh r0, [r6, 0x20] + b _080A4690 + .align 2, 0 +_080A4670: .4byte gBattleAnimTarget +_080A4674: .4byte sub_80A46CC +_080A4678: .4byte gBattleAnimArgs +_080A467C: + ldrh r0, [r6, 0x20] + ldrh r1, [r3] + subs r0, r1 + strh r0, [r6, 0x20] + adds r2, r6, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080A4690: + ldrh r0, [r3, 0x2] + ldrh r2, [r6, 0x22] + adds r0, r2 + strh r0, [r6, 0x22] + ldr r1, _080A46C8 @ =0xfffffc00 + adds r0, r1, 0 + ldrh r2, [r6, 0x30] + adds r1, r0, r2 + strh r1, [r6, 0x30] + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + ldrh r2, [r6, 0x32] + adds r0, r2 + strh r0, [r6, 0x32] + ldrh r0, [r3, 0x4] + strh r0, [r6, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A46BE + negs r0, r1 + strh r0, [r6, 0x30] +_080A46BE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A46C8: .4byte 0xfffffc00 + thumb_func_end sub_80A4588 + + thumb_func_start sub_80A46CC +sub_80A46CC: @ 80A46CC + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x34] + adds r0, r1, r2 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A46EE + adds r0, r1, 0 + adds r0, 0x18 + b _080A46F2 +_080A46EE: + adds r0, r1, 0 + subs r0, 0x18 +_080A46F2: + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + subs r0, 0x18 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080A4728 + ldr r1, _080A4730 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + movs r0, 0x3 + strh r0, [r4, 0x2E] + ldr r0, _080A4734 @ =sub_8074C44 + str r0, [r4, 0x1C] +_080A4728: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4730: .4byte DestroyAnimSprite +_080A4734: .4byte sub_8074C44 + thumb_func_end sub_80A46CC + + thumb_func_start sub_80A4738 +sub_80A4738: @ 80A4738 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x32] + movs r2, 0x32 + ldrsh r0, [r5, r2] + cmp r0, 0x1 + ble _080A47DC + ldrh r1, [r5, 0x34] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A4794 + adds r3, r5, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + strb r0, [r3] + ldr r4, _080A4790 @ =gSprites + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r3, [r0] + adds r1, r2, 0 + ands r1, r3 + strb r1, [r0] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + b _080A47CA + .align 2, 0 +_080A4790: .4byte gSprites +_080A4794: + adds r1, r5, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldr r3, _080A47D8 @ =gSprites + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] +_080A47CA: + movs r0, 0 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + b _080A47E0 + .align 2, 0 +_080A47D8: .4byte gSprites +_080A47DC: + adds r0, r1, 0x1 + strh r0, [r5, 0x32] +_080A47E0: + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0xA + bne _080A4810 + movs r2, 0x2E + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080A4818 @ =gSprites + adds r0, r4 + bl DestroySprite + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + adds r0, r5, 0 + bl DestroyAnimSprite +_080A4810: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4818: .4byte gSprites + thumb_func_end sub_80A4738 + + thumb_func_start sub_80A481C +sub_80A481C: @ 80A481C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080A483C @ =gBattleAnimArgs + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080A4840 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A4844 + ldrh r0, [r5, 0x20] + ldrh r1, [r4] + subs r0, r1 + b _080A484A + .align 2, 0 +_080A483C: .4byte gBattleAnimArgs +_080A4840: .4byte gBattleAnimAttacker +_080A4844: + ldrh r0, [r4] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080A484A: + strh r0, [r5, 0x20] + ldr r4, _080A4878 @ =gBattleAnimArgs + ldrb r1, [r4, 0xA] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x6] + negs r0, r0 + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x34] + ldr r1, _080A487C @ =sub_80A4880 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4878: .4byte gBattleAnimArgs +_080A487C: .4byte sub_80A4880 + thumb_func_end sub_80A481C + + thumb_func_start sub_80A4880 +sub_80A4880: @ 80A4880 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x64 + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _080A48AC + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0 + b _080A48B2 +_080A48AC: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0xE +_080A48B2: + strb r0, [r1] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x2E] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + adds r0, 0x82 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080A48E8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A48E8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4880 + + thumb_func_start sub_80A48F0 +sub_80A48F0: @ 80A48F0 + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A4906 + ldr r1, _080A4964 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + adds r0, 0x8 + strh r0, [r1, 0x2] +_080A4906: + ldr r6, _080A4968 @ =gBattleAnimAttacker + ldrb r0, [r6] + movs r1, 0 + bl sub_8074844 + lsls r0, 24 + ldr r4, _080A4964 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8074844 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A4944 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A496C +_080A4944: + ldrb r0, [r6] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + b _080A4984 + .align 2, 0 +_080A4964: .4byte gBattleAnimArgs +_080A4968: .4byte gBattleAnimAttacker +_080A496C: + ldrb r0, [r6] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] +_080A4984: + ldr r0, _080A49C8 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080A49CC @ =0x00002828 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r5, 0x32] + movs r4, 0x10 + movs r0, 0x10 + strh r0, [r5, 0x3C] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r0, [r5, 0x3C] + lsls r1, r0, 8 + subs r4, r0 + orrs r1, r4 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080A49D0 @ =sub_80A49D4 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A49C8: .4byte gBattleAnimArgs +_080A49CC: .4byte 0x00002828 +_080A49D0: .4byte sub_80A49D4 + thumb_func_end sub_80A48F0 + + thumb_func_start sub_80A49D4 +sub_80A49D4: @ 80A49D4 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x60 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A4A32 + movs r0, 0 + strh r0, [r4, 0x30] + ldr r1, _080A4A7C @ =gPlttBufferFaded + movs r2, 0x32 + ldrsh r0, [r4, r2] + adds r0, 0x1 + lsls r0, 1 + adds r0, r1 + ldrh r5, [r0] + movs r2, 0 + adds r6, r1, 0 + adds r3, r6, 0 +_080A4A0C: + movs r1, 0x32 + ldrsh r0, [r4, r1] + adds r2, 0x1 + adds r0, r2 + lsls r1, r0, 1 + adds r1, r3 + adds r0, 0x1 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + cmp r2, 0x5 + ble _080A4A0C + movs r2, 0x32 + ldrsh r0, [r4, r2] + adds r0, 0x7 + lsls r0, 1 + adds r0, r6 + strh r5, [r0] +_080A4A32: + ldrh r2, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x6 + ble _080A4A6C + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _080A4A80 + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A4A6C + movs r0, 0 + strh r0, [r4, 0x3A] + subs r2, 0x1 + strh r2, [r4, 0x3C] + lsls r1, r2, 8 + movs r0, 0x10 + subs r0, r2 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg +_080A4A6C: + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A4A80 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080A4AC2 + .align 2, 0 +_080A4A7C: .4byte gPlttBufferFaded +_080A4A80: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A4AC2 + movs r0, 0 + strh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r2, 0x1 + strh r2, [r4, 0x3C] + lsls r1, r2, 8 + movs r0, 0x10 + subs r0, r2 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A4AC2 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080A4AC8 @ =sub_8074F88 + str r0, [r4, 0x1C] +_080A4AC2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4AC8: .4byte sub_8074F88 + thumb_func_end sub_80A49D4 + + thumb_func_start sub_80A4ACC +sub_80A4ACC: @ 80A4ACC + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080A4B2C @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A4B30 @ =0x0000ffe8 + adds r0, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + strh r5, [r4, 0x34] + strh r5, [r4, 0x36] + strh r5, [r4, 0x3A] + movs r0, 0x10 + strh r0, [r4, 0x3C] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r4, 0x3C] + lsls r1, 8 + ldrh r0, [r4, 0x3A] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080A4B34 @ =sub_80A4B38 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4B2C: .4byte gBattleAnimTarget +_080A4B30: .4byte 0x0000ffe8 +_080A4B34: .4byte sub_80A4B38 + thumb_func_end sub_80A4ACC + + thumb_func_start sub_80A4B38 +sub_80A4B38: @ 80A4B38 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080A4B46 + b _080A4C90 +_080A4B46: + lsls r0, 2 + ldr r1, _080A4B50 @ =_080A4B54 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A4B50: .4byte _080A4B54 + .align 2, 0 +_080A4B54: + .4byte _080A4B68 + .4byte _080A4BCC + .4byte _080A4BE8 + .4byte _080A4C66 + .4byte _080A4C7A +_080A4B68: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + cmp r0, 0 + bgt _080A4B76 + b _080A4C90 +_080A4B76: + movs r0, 0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A4B98 + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080A4BA6 + adds r0, r1, 0x1 + strh r0, [r4, 0x3A] + b _080A4BA6 +_080A4B98: + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A4BA6 + subs r0, r1, 0x1 + strh r0, [r4, 0x3C] +_080A4BA6: + ldrh r1, [r4, 0x3C] + lsls r1, 8 + ldrh r0, [r4, 0x3A] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A4C90 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A4C90 + strh r0, [r4, 0x30] + b _080A4C72 +_080A4BCC: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A4C90 + movs r0, 0 + strh r0, [r4, 0x30] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080A4C72 +_080A4BE8: + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x4 + bl sub_80A4C98 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080A4C0A + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_080A4C0A: + ldrh r0, [r4, 0x32] + adds r1, r0, 0x1 + strh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080A4C90 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080A4C30 + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A4C3E + subs r0, r1, 0x1 + strh r0, [r4, 0x3A] + b _080A4C3E +_080A4C30: + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080A4C3E + adds r0, r1, 0x1 + strh r0, [r4, 0x3C] +_080A4C3E: + ldrh r1, [r4, 0x3C] + lsls r1, 8 + ldrh r0, [r4, 0x3A] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x3A + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _080A4C90 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bne _080A4C90 + strh r1, [r4, 0x30] + strh r1, [r4, 0x32] + b _080A4C72 +_080A4C66: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080A4C72: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080A4C90 +_080A4C7A: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimSprite +_080A4C90: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4B38 + + thumb_func_start sub_80A4C98 +sub_80A4C98: @ 80A4C98 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0xB + bgt _080A4CAA + ldrh r0, [r4, 0x36] + adds r0, 0x2 + strh r0, [r4, 0x36] +_080A4CAA: + ldrh r5, [r4, 0x34] + adds r0, r5, 0 + subs r0, 0x12 + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + cmp r0, 0x17 + bhi _080A4CC0 + ldrh r0, [r4, 0x36] + subs r0, 0x2 + strh r0, [r4, 0x36] +_080A4CC0: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2F + ble _080A4CCE + ldrh r0, [r4, 0x36] + adds r0, 0x2 + strh r0, [r4, 0x36] +_080A4CCE: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0x9 + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl __divsi3 + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + bge _080A4CF4 + movs r1, 0x26 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x26] +_080A4CF4: + adds r0, r5, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + ble _080A4D04 + movs r0, 0 + strh r0, [r4, 0x34] +_080A4D04: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A4C98 + + thumb_func_start sub_80A4D0C +sub_80A4D0C: @ 80A4D0C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A4D50 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A4D20 + adds r0, r4, 0 + bl sub_8074FCC +_080A4D20: + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_8074FF8 + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x32] + ldr r1, _080A4D54 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A4D58 @ =sub_8074D00 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A4D50: .4byte gBattleAnimArgs +_080A4D54: .4byte DestroyAnimSprite +_080A4D58: .4byte sub_8074D00 + thumb_func_end sub_80A4D0C + + thumb_func_start sub_80A4D5C +sub_80A4D5C: @ 80A4D5C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080A4D70 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A4D78 + ldr r0, _080A4D74 @ =gBattleAnimAttacker + b _080A4D7A + .align 2, 0 +_080A4D70: .4byte gBattleAnimArgs +_080A4D74: .4byte gBattleAnimAttacker +_080A4D78: + ldr r0, _080A4DBC @ =gBattleAnimTarget +_080A4D7A: + ldrb r6, [r0] + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080A4DC4 + movs r1, 0x2 + adds r0, r6, 0 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A4DC4 + ldr r4, _080A4DC0 @ =gBattleAnimArgs + ldrb r1, [r4, 0xC] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + adds r0, r6, 0 + bl sub_8076D9C + movs r2, 0 + ldrsh r1, [r4, r2] + adds r0, r5, 0 + bl sub_8074FF8 + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + b _080A4E14 + .align 2, 0 +_080A4DBC: .4byte gBattleAnimTarget +_080A4DC0: .4byte gBattleAnimArgs +_080A4DC4: + ldr r4, _080A4DE4 @ =gBattleAnimArgs + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A4DE8 + adds r0, r6, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x1 + b _080A4DFA + .align 2, 0 +_080A4DE4: .4byte gBattleAnimArgs +_080A4DE8: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 +_080A4DFA: + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + ldr r0, _080A4E34 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r0, r5, 0 + bl sub_8074FF8 +_080A4E14: + ldr r1, _080A4E34 @ =gBattleAnimArgs + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x32] + ldr r1, _080A4E38 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A4E3C @ =sub_8074D00 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A4E34: .4byte gBattleAnimArgs +_080A4E38: .4byte DestroyAnimSprite +_080A4E3C: .4byte sub_8074D00 + thumb_func_end sub_80A4D5C + + thumb_func_start sub_80A4E40 +sub_80A4E40: @ 80A4E40 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080A4E6C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A4E74 + ldr r0, _080A4E70 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + b _080A4E8E + .align 2, 0 +_080A4E6C: .4byte gBattleAnimAttacker +_080A4E70: .4byte gBattleAnimArgs +_080A4E74: + ldr r2, _080A4E98 @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080A4E8E: + ldr r0, _080A4E9C @ =sub_80A4EA0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4E98: .4byte gBattleAnimArgs +_080A4E9C: .4byte sub_80A4EA0 + thumb_func_end sub_80A4E40 + + thumb_func_start sub_80A4EA0 +sub_80A4EA0: @ 80A4EA0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080A4ED8 + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r0, 0x1E + subs r0, r1 + movs r1, 0x3 + bl __divsi3 + strh r0, [r4, 0x26] + movs r1, 0x30 + ldrsh r0, [r4, r1] + lsls r0, 18 + asrs r0, 16 + movs r1, 0x3 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_080A4ED8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A4EEC + adds r0, r4, 0 + bl DestroyAnimSprite +_080A4EEC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4EA0 + + thumb_func_start sub_80A4EF4 +sub_80A4EF4: @ 80A4EF4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080A4F24 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A4F2C + ldr r1, _080A4F28 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x1 + strh r0, [r4, 0x34] + b _080A4F4A + .align 2, 0 +_080A4F24: .4byte gBattleAnimAttacker +_080A4F28: .4byte gBattleAnimArgs +_080A4F2C: + ldr r2, _080A4F54 @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldr r0, _080A4F58 @ =0x0000ffff + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080A4F4A: + ldr r0, _080A4F5C @ =sub_80A4F60 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A4F54: .4byte gBattleAnimArgs +_080A4F58: .4byte 0x0000ffff +_080A4F5C: .4byte sub_80A4F60 + thumb_func_end sub_80A4EF4 + + thumb_func_start sub_80A4F60 +sub_80A4F60: @ 80A4F60 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl __divsi3 + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x36 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 1 + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080A4FA4 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080A4FA4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A4F60 + + thumb_func_start sub_80A4FAC +sub_80A4FAC: @ 80A4FAC + push {lr} + ldrh r1, [r0, 0x20] + subs r1, 0x20 + strh r1, [r0, 0x20] + ldrh r1, [r0, 0x22] + subs r1, 0x20 + strh r1, [r0, 0x22] + movs r1, 0x14 + strh r1, [r0, 0x2E] + ldr r1, _080A4FCC @ =sub_8074C44 + str r1, [r0, 0x1C] + ldr r1, _080A4FD0 @ =sub_80A4FD4 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080A4FCC: .4byte sub_8074C44 +_080A4FD0: .4byte sub_80A4FD4 + thumb_func_end sub_80A4FAC + + thumb_func_start sub_80A4FD4 +sub_80A4FD4: @ 80A4FD4 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r6, [r5, 0x38] + movs r1, 0x1 + adds r0, r1, 0 + ands r0, r6 + cmp r0, 0 + beq _080A4FEA + cmp r0, 0x1 + beq _080A5004 + b _080A506A +_080A4FEA: + strh r1, [r5, 0x2E] + ldr r0, _080A4FFC @ =sub_8074C44 + str r0, [r5, 0x1C] + ldr r1, _080A5000 @ =sub_80A4FD4 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + b _080A506A + .align 2, 0 +_080A4FFC: .4byte sub_8074C44 +_080A5000: .4byte sub_80A4FD4 +_080A5004: + ldrh r3, [r5, 0x24] + ldrh r0, [r5, 0x20] + adds r3, r0 + movs r0, 0 + strh r3, [r5, 0x20] + ldrh r4, [r5, 0x26] + ldrh r1, [r5, 0x22] + adds r4, r1 + strh r4, [r5, 0x22] + strh r0, [r5, 0x26] + strh r0, [r5, 0x24] + movs r0, 0x8 + strh r0, [r5, 0x2E] + ldr r2, _080A5078 @ =gUnknown_83E3548 + lsls r0, r6, 16 + asrs r0, 24 + lsls r0, 1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r3, r1 + strh r3, [r5, 0x32] + adds r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, r0 + strh r4, [r5, 0x36] + ldr r0, _080A507C @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A5080 @ =sub_80A5084 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + movs r0, 0x3F + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xCB + bl PlaySE12WithPanning +_080A506A: + ldrh r0, [r5, 0x38] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x38] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5078: .4byte gUnknown_83E3548 +_080A507C: .4byte sub_8075590 +_080A5080: .4byte sub_80A5084 + thumb_func_end sub_80A4FD4 + + thumb_func_start sub_80A5084 +sub_80A5084: @ 80A5084 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x38] + lsls r0, 16 + asrs r0, 24 + cmp r0, 0x4 + bne _080A50AC + movs r0, 0xA + strh r0, [r2, 0x2E] + ldr r0, _080A50A4 @ =sub_8074C44 + str r0, [r2, 0x1C] + ldr r1, _080A50A8 @ =sub_80A50B8 + adds r0, r2, 0 + bl StoreSpriteCallbackInData6 + b _080A50B0 + .align 2, 0 +_080A50A4: .4byte sub_8074C44 +_080A50A8: .4byte sub_80A50B8 +_080A50AC: + ldr r0, _080A50B4 @ =sub_80A4FD4 + str r0, [r2, 0x1C] +_080A50B0: + pop {r0} + bx r0 + .align 2, 0 +_080A50B4: .4byte sub_80A4FD4 + thumb_func_end sub_80A5084 + + thumb_func_start sub_80A50B8 +sub_80A50B8: @ 80A50B8 + push {r4-r7,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x6] + cmp r1, 0 + bne _080A50E0 + movs r0, 0x3 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + strh r1, [r5, 0x32] + ldr r0, _080A50D8 @ =sub_8074C44 + str r0, [r5, 0x1C] + ldr r1, _080A50DC @ =sub_80A5174 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + b _080A5160 + .align 2, 0 +_080A50D8: .4byte sub_8074C44 +_080A50DC: .4byte sub_80A5174 +_080A50E0: + ldrh r0, [r5, 0x6] + cmp r0, 0x2 + beq _080A5100 + cmp r0, 0x2 + bgt _080A50F0 + cmp r0, 0x1 + beq _080A50F6 + b _080A5114 +_080A50F0: + cmp r0, 0x3 + beq _080A5108 + b _080A5114 +_080A50F6: + ldr r6, _080A50FC @ =0x0000fff8 + adds r7, r6, 0 + b _080A5118 + .align 2, 0 +_080A50FC: .4byte 0x0000fff8 +_080A5100: + ldr r7, _080A5104 @ =0x0000fff8 + b _080A5116 + .align 2, 0 +_080A5104: .4byte 0x0000fff8 +_080A5108: + movs r7, 0x8 + ldr r6, _080A5110 @ =0x0000fff8 + b _080A5118 + .align 2, 0 +_080A5110: .4byte 0x0000fff8 +_080A5114: + movs r7, 0x8 +_080A5116: + movs r6, 0x8 +_080A5118: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080A5168 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, _080A516C @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A5170 @ =sub_80A5220 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080A5160: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A5168: .4byte gBattleAnimTarget +_080A516C: .4byte sub_8075590 +_080A5170: .4byte sub_80A5220 + thumb_func_end sub_80A50B8 + + thumb_func_start sub_80A5174 +sub_80A5174: @ 80A5174 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A5194 + ldrh r0, [r4, 0x30] + adds r0, 0x3 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080A51A4 + movs r0, 0x10 + b _080A51A2 +_080A5194: + ldrh r0, [r4, 0x30] + subs r0, 0x3 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _080A51A4 + movs r0, 0 +_080A51A2: + strh r0, [r4, 0x30] +_080A51A4: + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_8075BE8 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080A5200 @ =0x00007fff + bl BlendPalettes + movs r3, 0x30 + ldrsh r0, [r4, r3] + cmp r0, 0x10 + bne _080A520C + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + ldrb r1, [r4, 0x5] + lsrs r1, 4 + lsls r0, r1, 5 + ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210 + adds r0, r2 + lsls r1, 4 + ldr r3, _080A5208 @ =0x00000101 + adds r2, r3, 0 + orrs r1, r2 + movs r2, 0x4 + bl LoadPalette + movs r0, 0x3F + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xB9 + bl PlaySE12WithPanning + b _080A5214 + .align 2, 0 +_080A5200: .4byte 0x00007fff +_080A5204: .4byte gPlttBufferUnfaded + 0x210 +_080A5208: .4byte 0x00000101 +_080A520C: + cmp r0, 0 + bne _080A5214 + ldr r0, _080A521C @ =sub_80A5220 + str r0, [r4, 0x1C] +_080A5214: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A521C: .4byte sub_80A5220 + thumb_func_end sub_80A5174 + + thumb_func_start sub_80A5220 +sub_80A5220: @ 80A5220 + push {lr} + adds r2, r0, 0 + ldr r0, _080A523C @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A5240 @ =0x0000ffff + cmp r1, r0 + bne _080A5238 + movs r0, 0 + strh r0, [r2, 0x30] + strh r0, [r2, 0x2E] + ldr r0, _080A5244 @ =sub_80A5248 + str r0, [r2, 0x1C] +_080A5238: + pop {r0} + bx r0 + .align 2, 0 +_080A523C: .4byte gBattleAnimArgs +_080A5240: .4byte 0x0000ffff +_080A5244: .4byte sub_80A5248 + thumb_func_end sub_80A5220 + + thumb_func_start sub_80A5248 +sub_80A5248: @ 80A5248 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080A527C + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080A527C: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x8 + bne _080A5290 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A5290: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5248 + + thumb_func_start sub_80A5298 +sub_80A5298: @ 80A5298 + push {r4,lr} + adds r3, r0, 0 + ldr r0, _080A52B8 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r3, 0x6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A52BC + ldrh r0, [r3, 0x20] + subs r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + subs r0, 0x18 + strh r0, [r3, 0x22] + b _080A530E + .align 2, 0 +_080A52B8: .4byte gBattleAnimArgs +_080A52BC: + cmp r0, 0x2 + bne _080A52D8 + ldrh r0, [r3, 0x20] + subs r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + adds r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x20 + b _080A530A +_080A52D8: + cmp r0, 0x3 + bne _080A52F4 + ldrh r0, [r3, 0x20] + adds r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + subs r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + b _080A530A +_080A52F4: + ldrh r0, [r3, 0x20] + adds r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + adds r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x30 +_080A530A: + orrs r0, r1 + strb r0, [r3, 0x3] +_080A530E: + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x10 + ldr r4, _080A5334 @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080A5338 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldr r1, _080A533C @ =sub_80A4FAC + str r1, [r3, 0x1C] + adds r0, r3, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5334: .4byte 0x000003ff +_080A5338: .4byte 0xfffffc00 +_080A533C: .4byte sub_80A4FAC + thumb_func_end sub_80A5298 + + thumb_func_start sub_80A5340 +sub_80A5340: @ 80A5340 + push {lr} + adds r3, r0, 0 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + strh r0, [r3, 0x2E] + ldr r0, _080A5368 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080A537C + cmp r0, 0x1 + bgt _080A536C + cmp r0, 0 + beq _080A5372 + b _080A538C + .align 2, 0 +_080A5368: .4byte gBattleAnimArgs +_080A536C: + cmp r0, 0x2 + beq _080A5384 + b _080A538C +_080A5372: + ldr r0, _080A5378 @ =sub_80A5398 + b _080A538E + .align 2, 0 +_080A5378: .4byte sub_80A5398 +_080A537C: + ldr r0, _080A5380 @ =sub_80A5474 + b _080A538E + .align 2, 0 +_080A5380: .4byte sub_80A5474 +_080A5384: + ldr r0, _080A5388 @ =sub_80A54C4 + b _080A538E + .align 2, 0 +_080A5388: .4byte sub_80A54C4 +_080A538C: + ldr r0, _080A5394 @ =sub_80A5584 +_080A538E: + str r0, [r3, 0x1C] + pop {r0} + bx r0 + .align 2, 0 +_080A5394: .4byte sub_80A5584 + thumb_func_end sub_80A5340 + + thumb_func_start sub_80A5398 +sub_80A5398: @ 80A5398 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + strh r0, [r4, 0x2E] + ldr r5, _080A53D8 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + beq _080A53B6 + movs r1, 0x2 +_080A53B6: + strh r1, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080A53DC @ =gBattlerSpriteIds + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + ldr r1, _080A53E0 @ =sub_80A53E8 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A53E4 @ =sub_8074DC4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A53D8: .4byte gBattleAnimAttacker +_080A53DC: .4byte gBattlerSpriteIds +_080A53E0: .4byte sub_80A53E8 +_080A53E4: .4byte sub_8074DC4 + thumb_func_end sub_80A5398 + + thumb_func_start sub_80A53E8 +sub_80A53E8: @ 80A53E8 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x2E + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _080A5424 + ldr r1, _080A5464 @ =gBattlerSpriteIds + ldr r4, _080A5468 @ =gBattleAnimAttacker + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5, 0x34] + movs r1, 0 + bl sub_80758E0 + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + ldr r2, _080A546C @ =0xfffffd00 + adds r1, r2, 0 + cmp r0, 0 + beq _080A5420 + movs r0, 0xC0 + lsls r0, 2 + adds r1, r0, 0 +_080A5420: + strh r1, [r5, 0x36] + strh r6, [r5, 0x38] +_080A5424: + ldrh r0, [r5, 0x36] + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r5, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_80759DC + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A545E + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080A5470 @ =sub_80A5584 + str r0, [r5, 0x1C] +_080A545E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5464: .4byte gBattlerSpriteIds +_080A5468: .4byte gBattleAnimAttacker +_080A546C: .4byte 0xfffffd00 +_080A5470: .4byte sub_80A5584 + thumb_func_end sub_80A53E8 + + thumb_func_start sub_80A5474 +sub_80A5474: @ 80A5474 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + strh r0, [r4, 0x2E] + ldr r5, _080A54B4 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + movs r1, 0x3 + cmp r0, 0 + beq _080A5492 + movs r0, 0x3 + negs r0, r0 + adds r1, r0, 0 +_080A5492: + strh r1, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080A54B8 @ =gBattlerSpriteIds + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + ldr r1, _080A54BC @ =sub_80A5584 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A54C0 @ =sub_8074DC4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A54B4: .4byte gBattleAnimAttacker +_080A54B8: .4byte gBattlerSpriteIds +_080A54BC: .4byte sub_80A5584 +_080A54C0: .4byte sub_8074DC4 + thumb_func_end sub_80A5474 + + thumb_func_start sub_80A54C4 +sub_80A54C4: @ 80A54C4 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A54DE + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080A54E4 @ =sub_80A54E8 + str r0, [r1, 0x1C] +_080A54DE: + pop {r0} + bx r0 + .align 2, 0 +_080A54E4: .4byte sub_80A54E8 + thumb_func_end sub_80A54C4 + + thumb_func_start sub_80A54E8 +sub_80A54E8: @ 80A54E8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A5538 + ldr r1, _080A5524 @ =gBattlerSpriteIds + ldr r4, _080A5528 @ =gBattleAnimAttacker + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5, 0x34] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A552C + movs r0, 0xFC + lsls r0, 8 + strh r0, [r5, 0x36] + movs r0, 0xC0 + lsls r0, 4 + b _080A5536 + .align 2, 0 +_080A5524: .4byte gBattlerSpriteIds +_080A5528: .4byte gBattleAnimAttacker +_080A552C: + movs r0, 0x80 + lsls r0, 3 + strh r0, [r5, 0x36] + movs r0, 0xF4 + lsls r0, 8 +_080A5536: + strh r0, [r5, 0x38] +_080A5538: + ldrh r0, [r5, 0x36] + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r5, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_80759DC + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080A5578 + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_8075980 + ldr r0, _080A5580 @ =sub_80A5584 + str r0, [r5, 0x1C] +_080A5578: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5580: .4byte sub_80A5584 + thumb_func_end sub_80A54E8 + + thumb_func_start sub_80A5584 +sub_80A5584: @ 80A5584 + push {lr} + bl DestroyAnimSprite + pop {r0} + bx r0 + thumb_func_end sub_80A5584 + + thumb_func_start sub_80A5590 +sub_80A5590: @ 80A5590 + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r1, _080A559C @ =sub_80A55A0 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080A559C: .4byte sub_80A55A0 + thumb_func_end sub_80A5590 + + thumb_func_start sub_80A55A0 +sub_80A55A0: @ 80A55A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080A55FA + cmp r5, 0x1 + bgt _080A55B6 + cmp r5, 0 + beq _080A55BC + b _080A568E +_080A55B6: + cmp r5, 0x2 + beq _080A564C + b _080A568E +_080A55BC: + strh r5, [r4, 0x30] + ldr r1, _080A5640 @ =gBattlerSpriteIds + ldr r2, _080A5644 @ =gBattleAnimAttacker + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x32] + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x34] + ldr r2, _080A5648 @ =0xfffffe00 + adds r1, r2, 0 + cmp r0, 0 + beq _080A55E4 + movs r0, 0x80 + lsls r0, 2 + adds r1, r0, 0 +_080A55E4: + strh r1, [r4, 0x36] + strh r5, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80758E0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080A55FA: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80759DC + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A568E + movs r0, 0 + strh r0, [r4, 0x30] + movs r2, 0x36 + ldrsh r0, [r4, r2] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080A568E + .align 2, 0 +_080A5640: .4byte gBattlerSpriteIds +_080A5644: .4byte gBattleAnimAttacker +_080A5648: .4byte 0xfffffe00 +_080A564C: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_80759DC + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A568E + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_8075980 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A568E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A55A0 + + thumb_func_start sub_80A5694 +sub_80A5694: @ 80A5694 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080A56D8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldr r1, _080A56DC @ =gBattlerSpriteIds + ldr r2, _080A56E0 @ =gBattleAnimAttacker + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + movs r4, 0 + strh r0, [r5, 0x8] + ldrb r0, [r2] + bl GetBattlerSide + lsls r0, 24 + lsrs r2, r0, 24 + strh r2, [r5, 0xA] + strh r4, [r5, 0xC] + ldr r0, _080A56E4 @ =gBattleAnimArgs + movs r3, 0 + ldrsh r1, [r0, r3] + cmp r1, 0 + beq _080A56E8 + cmp r1, 0x1 + beq _080A5704 + adds r0, r6, 0 + bl DestroyAnimVisualTask + b _080A5722 + .align 2, 0 +_080A56D8: .4byte gTasks +_080A56DC: .4byte gBattlerSpriteIds +_080A56E0: .4byte gBattleAnimAttacker +_080A56E4: .4byte gBattleAnimArgs +_080A56E8: + strh r1, [r5, 0xC] + movs r0, 0x8 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + movs r0, 0x3 + strh r0, [r5, 0x12] + cmp r2, 0 + bne _080A56FC + negs r0, r0 + strh r0, [r5, 0x12] +_080A56FC: + ldr r0, _080A5700 @ =sub_80A572C + b _080A5720 + .align 2, 0 +_080A5700: .4byte sub_80A572C +_080A5704: + movs r0, 0x8 + strh r0, [r5, 0xE] + movs r0, 0xC0 + lsls r0, 3 + strh r0, [r5, 0x10] + movs r1, 0xC0 + strh r1, [r5, 0x12] + cmp r2, 0 + bne _080A571E + negs r0, r0 + strh r0, [r5, 0x10] + negs r0, r1 + strh r0, [r5, 0x12] +_080A571E: + ldr r0, _080A5728 @ =sub_80A58EC +_080A5720: + str r0, [r5] +_080A5722: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5728: .4byte sub_80A58EC + thumb_func_end sub_80A5694 + + thumb_func_start sub_80A572C +sub_80A572C: @ 80A572C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080A5750 @ =gTasks + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080A5746 + b _080A58E6 +_080A5746: + lsls r0, 2 + ldr r1, _080A5754 @ =_080A5758 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A5750: .4byte gTasks +_080A5754: .4byte _080A5758 + .align 2, 0 +_080A5758: + .4byte _080A576C + .4byte _080A579E + .4byte _080A57F8 + .4byte _080A5870 + .4byte _080A58B4 +_080A576C: + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r1, 0 + beq _080A577C + ldrh r2, [r4, 0x12] + ldrh r3, [r4, 0x10] + adds r2, r3 + b _080A58C2 +_080A577C: + movs r0, 0x8 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r1, 0xC0 + cmp r0, 0 + bne _080A5792 + movs r2, 0xC0 + negs r2, r2 + adds r1, r2, 0 +_080A5792: + strh r1, [r4, 0x12] + ldrb r0, [r4, 0x8] + movs r1, 0 + bl sub_80758E0 + b _080A58A8 +_080A579E: + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A57C4 + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x10] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_80759DC + b _080A58D4 +_080A57C4: + movs r0, 0x8 + strh r0, [r4, 0xE] + ldr r2, _080A57F4 @ =gSprites + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x24] + strh r0, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080A57EA + movs r1, 0x2 +_080A57EA: + strh r1, [r4, 0x12] + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080A58A8 + .align 2, 0 +_080A57F4: .4byte gSprites +_080A57F8: + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A5854 + ldrh r1, [r4, 0x14] + movs r3, 0x14 + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A5812 + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + b _080A58E6 +_080A5812: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080A5834 + ldr r2, _080A5830 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x12] + ldrh r2, [r4, 0x10] + adds r1, r2 + b _080A5848 + .align 2, 0 +_080A5830: .4byte gSprites +_080A5834: + ldr r2, _080A5850 @ =gSprites + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + ldrh r2, [r4, 0x12] + subs r1, r2 +_080A5848: + strh r1, [r0, 0x24] + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080A58D4 + .align 2, 0 +_080A5850: .4byte gSprites +_080A5854: + ldr r2, _080A586C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + strh r1, [r0, 0x24] + movs r0, 0xC + strh r0, [r4, 0xE] + b _080A58A8 + .align 2, 0 +_080A586C: .4byte gSprites +_080A5870: + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080A5880 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080A58E6 +_080A5880: + movs r0, 0x3 + strh r0, [r4, 0xE] + ldr r2, _080A58B0 @ =gSprites + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x24] + strh r0, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x8 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080A58A6 + movs r1, 0x8 +_080A58A6: + strh r1, [r4, 0x12] +_080A58A8: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _080A58E6 + .align 2, 0 +_080A58B0: .4byte gSprites +_080A58B4: + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A58E0 + ldrh r2, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r2, r0 +_080A58C2: + strh r2, [r4, 0x10] + ldr r3, _080A58DC @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x24] +_080A58D4: + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080A58E6 + .align 2, 0 +_080A58DC: .4byte gSprites +_080A58E0: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080A58E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A572C + + thumb_func_start sub_80A58EC +sub_80A58EC: @ 80A58EC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A5928 @ =gTasks + adds r4, r0, r1 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A592C + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x10] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_80759DC + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080A5938 + .align 2, 0 +_080A5928: .4byte gTasks +_080A592C: + ldrb r0, [r4, 0x8] + bl sub_8075980 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A5938: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A58EC + + thumb_func_start sub_80A5940 +sub_80A5940: @ 80A5940 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080A5954 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A595C + ldr r4, _080A5958 @ =gBattleAnimAttacker + b _080A595E + .align 2, 0 +_080A5954: .4byte gBattleAnimArgs +_080A5958: .4byte gBattleAnimAttacker +_080A595C: + ldr r4, _080A599C @ =gBattleAnimTarget +_080A595E: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x4] + adds r0, r6 + strh r0, [r5, 0x22] + movs r0, 0 + strh r0, [r5, 0x2E] + strh r0, [r5, 0x30] + ldr r1, _080A59A0 @ =sub_80A5A8C + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A59A4 @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A599C: .4byte gBattleAnimTarget +_080A59A0: .4byte sub_80A5A8C +_080A59A4: .4byte sub_8074F6C + thumb_func_end sub_80A5940 + + thumb_func_start sub_80A59A8 +sub_80A59A8: @ 80A59A8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A59E0 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A59E4 @ =0x0000ffd0 + adds r0, r1 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r1, _080A59E8 @ =sub_80A5A44 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A59EC @ =sub_8074F6C + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A59E0: .4byte gBattleAnimTarget +_080A59E4: .4byte 0x0000ffd0 +_080A59E8: .4byte sub_80A5A44 +_080A59EC: .4byte sub_8074F6C + thumb_func_end sub_80A59A8 + + thumb_func_start sub_80A59F0 +sub_80A59F0: @ 80A59F0 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080A5A34 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A5A38 @ =gBattleAnimArgs + ldr r2, _080A5A3C @ =0x0000ffd0 + adds r0, r2 + ldrh r1, [r1] + adds r0, r1 + movs r6, 0 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + strh r6, [r4, 0x2E] + strh r6, [r4, 0x30] + ldr r0, _080A5A40 @ =sub_80A5A8C + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5A34: .4byte gBattleAnimTarget +_080A5A38: .4byte gBattleAnimArgs +_080A5A3C: .4byte 0x0000ffd0 +_080A5A40: .4byte sub_80A5A8C + thumb_func_end sub_80A59F0 + + thumb_func_start sub_80A5A44 +sub_80A5A44: @ 80A5A44 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A5A6E + movs r0, 0xC + strh r0, [r4, 0x2E] + movs r0, 0x8 + strh r0, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080A5A74 @ =sub_80A5A7C + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A5A78 @ =sub_8074CD0 + str r0, [r4, 0x1C] +_080A5A6E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5A74: .4byte sub_80A5A7C +_080A5A78: .4byte sub_8074CD0 + thumb_func_end sub_80A5A44 + + thumb_func_start sub_80A5A7C +sub_80A5A7C: @ 80A5A7C + movs r1, 0 + strh r1, [r0, 0x2E] + strh r1, [r0, 0x30] + ldr r1, _080A5A88 @ =sub_80A5A8C + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080A5A88: .4byte sub_80A5A8C + thumb_func_end sub_80A5A7C + + thumb_func_start sub_80A5A8C +sub_80A5A8C: @ 80A5A8C + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A5AD4 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080A5AD4 + adds r0, r3, 0 + bl DestroyAnimSprite +_080A5AD4: + pop {r0} + bx r0 + thumb_func_end sub_80A5A8C + + thumb_func_start sub_80A5AD8 +sub_80A5AD8: @ 80A5AD8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080A5AEC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A5AF4 + ldr r4, _080A5AF0 @ =gBattleAnimAttacker + b _080A5AF6 + .align 2, 0 +_080A5AEC: .4byte gBattleAnimArgs +_080A5AF0: .4byte gBattleAnimAttacker +_080A5AF4: + ldr r4, _080A5B30 @ =gBattleAnimTarget +_080A5AF6: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x4] + adds r0, r6 + strh r0, [r5, 0x22] + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080A5B34 @ =gBattleAnimArgs + ldrh r0, [r0, 0x6] + strh r0, [r5, 0x30] + ldr r0, _080A5B38 @ =sub_80A5B3C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5B30: .4byte gBattleAnimTarget +_080A5B34: .4byte gBattleAnimArgs +_080A5B38: .4byte sub_80A5B3C + thumb_func_end sub_80A5AD8 + + thumb_func_start sub_80A5B3C +sub_80A5B3C: @ 80A5B3C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x30 + ldrsh r1, [r2, r3] + cmp r0, r1 + ble _080A5B5C + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x22] + subs r0, 0x1 + strh r0, [r2, 0x22] +_080A5B5C: + ldrh r0, [r2, 0x22] + ldrh r1, [r2, 0x2E] + subs r0, r1 + strh r0, [r2, 0x22] + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A5B78 + adds r0, r2, 0 + bl DestroyAnimSprite +_080A5B78: + pop {r0} + bx r0 + thumb_func_end sub_80A5B3C + + thumb_func_start sub_80A5B7C +sub_80A5B7C: @ 80A5B7C + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080A5BC4 @ =gBattleAnimAttacker + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0xC + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + movs r0, 0x2 + strh r0, [r4, 0x30] + strh r5, [r4, 0x32] + strh r5, [r4, 0x34] + strh r5, [r4, 0x36] + subs r0, 0x42 + bl sub_8073A44 + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x38] + ldr r0, _080A5BC8 @ =sub_80A5BCC + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5BC4: .4byte gBattleAnimAttacker +_080A5BC8: .4byte sub_80A5BCC + thumb_func_end sub_80A5B7C + + thumb_func_start sub_80A5BCC +sub_80A5BCC: @ 80A5BCC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080A5C38 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r1, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080A5C1E + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080A5C1E + ldrh r1, [r4, 0x38] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xBB + bl PlaySE12WithPanning +_080A5C1E: + movs r1, 0 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A5C38 + strh r1, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_080A5C38: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A5C62 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + ble _080A5C62 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080A5C62 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A5C62: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5BCC + + thumb_func_start sub_80A5C68 +sub_80A5C68: @ 80A5C68 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080A5CB2 + ldr r4, _080A5CC8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + ldr r5, _080A5CCC @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x2] + adds r0, r5 + strh r0, [r6, 0x22] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A5CAC + ldrh r0, [r6, 0x22] + adds r0, 0xA + strh r0, [r6, 0x22] +_080A5CAC: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + strh r0, [r6, 0x2E] +_080A5CB2: + ldr r0, _080A5CCC @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A5CD0 @ =0x0000ffff + cmp r1, r0 + bne _080A5CC2 + adds r0, r6, 0 + bl DestroyAnimSprite +_080A5CC2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A5CC8: .4byte gBattleAnimAttacker +_080A5CCC: .4byte gBattleAnimArgs +_080A5CD0: .4byte 0x0000ffff + thumb_func_end sub_80A5C68 + + thumb_func_start sub_80A5CD4 +sub_80A5CD4: @ 80A5CD4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080A5CF4 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080A5D00 + ldr r1, _080A5CF8 @ =gBattleAnimArgs + ldr r0, _080A5CFC @ =0x0000ffff + strh r0, [r1, 0xE] + b _080A5D3E + .align 2, 0 +_080A5CF4: .4byte gTasks +_080A5CF8: .4byte gBattleAnimArgs +_080A5CFC: .4byte 0x0000ffff +_080A5D00: + cmp r0, 0x2 + bne _080A5D0C + adds r0, r2, 0 + bl DestroyAnimVisualTask + b _080A5D44 +_080A5D0C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080A5D44 + movs r0, 0 + strh r0, [r4, 0x8] + ldrh r2, [r4, 0xA] + adds r2, 0x1 + strh r2, [r4, 0xA] + lsls r1, r2, 8 + movs r0, 0x10 + subs r0, r2 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A5D44 +_080A5D3E: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] +_080A5D44: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5CD4 + + thumb_func_start sub_80A5D4C +sub_80A5D4C: @ 80A5D4C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075114 + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080A5D74 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080A5D78 @ =sub_80A5D7C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5D74: .4byte gBattleAnimArgs +_080A5D78: .4byte sub_80A5D7C + thumb_func_end sub_80A5D4C + + thumb_func_start sub_80A5D7C +sub_80A5D7C: @ 80A5D7C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080A5D90 + subs r0, r1, 0x1 + strh r0, [r5, 0x2E] + b _080A5DCC +_080A5D90: + adds r2, r5, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r0, 0x1E + strh r0, [r5, 0x2E] + ldr r4, _080A5DD4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080A5DD8 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A5DDC @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080A5DCC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5DD4: .4byte gBattleAnimAttacker +_080A5DD8: .4byte sub_8075590 +_080A5DDC: .4byte DestroyAnimSprite + thumb_func_end sub_80A5D7C + + thumb_func_start sub_80A5DE0 +sub_80A5DE0: @ 80A5DE0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A5E30 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080A5E28 + movs r0, 0 + strh r0, [r4, 0x8] + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A5E28 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A5E28: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5E30: .4byte gTasks + thumb_func_end sub_80A5DE0 + + thumb_func_start sub_80A5E34 +sub_80A5E34: @ 80A5E34 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + ldr r0, _080A5E9C @ =gBattlersCount + ldrb r0, [r0] + cmp r4, r0 + bcs _080A5E90 + ldr r6, _080A5EA0 @ =gBattleAnimArgs + ldr r5, _080A5EA4 @ =gUnknown_3004FF0 +_080A5E48: + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bne _080A5E64 + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A5E64 + adds r0, r4, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible +_080A5E64: + movs r1, 0x2 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bne _080A5E82 + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5E82 + adds r0, r4, r5 + ldrb r0, [r0] + bl SetHealthboxSpriteInvisible +_080A5E82: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080A5E9C @ =gBattlersCount + ldrb r0, [r0] + cmp r4, r0 + bcc _080A5E48 +_080A5E90: + adds r0, r7, 0 + bl DestroyAnimVisualTask + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A5E9C: .4byte gBattlersCount +_080A5EA0: .4byte gBattleAnimArgs +_080A5EA4: .4byte gUnknown_3004FF0 + thumb_func_end sub_80A5E34 + + thumb_func_start sub_80A5EA8 +sub_80A5EA8: @ 80A5EA8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + b _080A5EC2 +_080A5EB2: + ldr r0, _080A5ED8 @ =gUnknown_3004FF0 + adds r0, r4, r0 + ldrb r0, [r0] + bl SetHealthboxSpriteVisible + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080A5EC2: + ldr r0, _080A5EDC @ =gBattlersCount + ldrb r0, [r0] + cmp r4, r0 + bcc _080A5EB2 + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A5ED8: .4byte gUnknown_3004FF0 +_080A5EDC: .4byte gBattlersCount + thumb_func_end sub_80A5EA8 + + thumb_func_start sub_80A5EE0 +sub_80A5EE0: @ 80A5EE0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A5EF6 + movs r0, 0x30 + strh r0, [r4, 0x20] + movs r0, 0x28 + b _080A5EFE +_080A5EF6: + ldr r0, _080A5F20 @ =gBattleAnimArgs + ldrh r1, [r0] + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] +_080A5EFE: + strh r0, [r4, 0x22] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r4, 0x3] + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080A5F24 @ =sub_80A5F28 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5F20: .4byte gBattleAnimArgs +_080A5F24: .4byte sub_80A5F28 + thumb_func_end sub_80A5EE0 + + thumb_func_start sub_80A5F28 +sub_80A5F28: @ 80A5F28 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080A5F3A + adds r0, r1, 0 + bl DestroyAnimSprite +_080A5F3A: + pop {r0} + bx r0 + thumb_func_end sub_80A5F28 + + thumb_func_start sub_80A5F40 +sub_80A5F40: @ 80A5F40 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A5F78 @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r2, _080A5F7C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + strh r0, [r4, 0x22] + strh r1, [r4, 0x2E] + strh r1, [r4, 0x30] + strh r1, [r4, 0x32] + strh r1, [r4, 0x34] + movs r0, 0x1 + strh r0, [r4, 0x36] + ldr r0, _080A5F80 @ =sub_80A5F84 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A5F78: .4byte gBattleAnimAttacker +_080A5F7C: .4byte gBattleAnimArgs +_080A5F80: .4byte sub_80A5F84 + thumb_func_end sub_80A5F40 + + thumb_func_start sub_80A5F84 +sub_80A5F84: @ 80A5F84 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A5FAE + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r2, [r1, 0x32] + movs r3, 0x32 + ldrsh r0, [r1, r3] + cmp r0, 0x77 + bgt _080A5FAE + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] + adds r0, r2, 0x1 + strh r0, [r1, 0x32] +_080A5FAE: + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080A5FBC + adds r0, r1, 0 + bl DestroyAnimSprite +_080A5FBC: + pop {r0} + bx r0 + thumb_func_end sub_80A5F84 + + thumb_func_start sub_80A5FC0 +sub_80A5FC0: @ 80A5FC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + mov r8, r0 + ldr r0, _080A6090 @ =0x0000ffff + mov r1, r8 + ands r1, r0 + mov r8, r1 + ldr r0, _080A6094 @ =gTasks + mov r9, r0 + lsls r5, r7, 2 + adds r5, r7 + lsls r5, 3 + adds r6, r5, r0 + strh r4, [r6, 0x8] + strh r4, [r6, 0xA] + strh r4, [r6, 0xC] + strh r1, [r6, 0xE] + strh r4, [r6, 0x10] + strh r4, [r6, 0x12] + strh r4, [r6, 0x14] + movs r0, 0xD + strh r0, [r6, 0x16] + movs r0, 0xE + strh r0, [r6, 0x18] + movs r0, 0xF + strh r0, [r6, 0x1A] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_8075CB8 + mov r10, r0 + mov r1, r8 + orrs r1, r0 + mov r8, r1 + movs r0, 0x8 + add r9, r0 + add r5, r9 + adds r0, r5, 0 + adds r0, 0x1C + adds r5, 0x1E + adds r1, r5, 0 + mov r2, r8 + bl sub_80765C0 + ldr r0, _080A6098 @ =0x000027d2 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r4, 0x80 + lsls r4, 9 + adds r1, r4, 0 + lsls r1, r0 + mov r0, r10 + orrs r0, r1 + mov r10, r0 + ldr r0, _080A609C @ =0x000027d3 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0 + mov r1, r10 + orrs r4, r1 + ldr r0, _080A60A0 @ =0x00007fbb + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080A60A4 @ =sub_80A60A8 + str r1, [r6] + adds r0, r7, 0 + bl _call_via_r1 + 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 +_080A6090: .4byte 0x0000ffff +_080A6094: .4byte gTasks +_080A6098: .4byte 0x000027d2 +_080A609C: .4byte 0x000027d3 +_080A60A0: .4byte 0x00007fbb +_080A60A4: .4byte sub_80A60A8 + thumb_func_end sub_80A5FC0 + + thumb_func_start sub_80A60A8 +sub_80A60A8: @ 80A60A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080A60D0 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080A6194 + cmp r1, 0x1 + bgt _080A60D4 + cmp r1, 0 + beq _080A60E2 + b _080A6232 + .align 2, 0 +_080A60D0: .4byte gTasks +_080A60D4: + cmp r1, 0x2 + bne _080A60DA + b _080A61EC +_080A60DA: + cmp r1, 0x3 + bne _080A60E0 + b _080A6220 +_080A60E0: + b _080A6232 +_080A60E2: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bgt _080A60F0 + b _080A6232 +_080A60F0: + strh r1, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bgt _080A613C + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + ldrh r2, [r4, 0x18] + ldrh r3, [r4, 0x12] + adds r2, r3 + strh r2, [r4, 0x12] + ldrh r1, [r4, 0x1A] + ldrh r5, [r4, 0x14] + adds r1, r5 + strh r1, [r4, 0x14] + lsls r0, 16 + asrs r0, 19 + lsls r0, 16 + lsrs r0, 16 + lsls r2, 16 + asrs r2, 19 + lsls r2, 16 + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r2, 11 + orrs r0, r2 + lsrs r1, 6 + orrs r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + b _080A6146 +_080A613C: + ldr r7, _080A618C @ =0x00007fbb + mov r12, r7 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080A6146: + movs r2, 0x1 + movs r3, 0 + movs r1, 0 +_080A614C: + movs r5, 0xE + ldrsh r0, [r4, r5] + ands r0, r2 + lsls r5, r2, 17 + adds r6, r3, 0 + adds r6, 0x10 + adds r1, 0x1 + mov r8, r1 + cmp r0, 0 + beq _080A6178 + movs r1, 0x1 + ldr r2, _080A6190 @ =gPlttBufferFaded +_080A6164: + adds r0, r3, r1 + lsls r0, 1 + adds r0, r2 + mov r7, r12 + strh r7, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _080A6164 +_080A6178: + lsrs r2, r5, 16 + lsls r0, r6, 16 + lsrs r3, r0, 16 + mov r1, r8 + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _080A614C + b _080A6232 + .align 2, 0 +_080A618C: .4byte 0x00007fbb +_080A6190: .4byte gPlttBufferFaded +_080A6194: + ldr r0, _080A61DC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A6232 + movs r2, 0 + ldr r3, _080A61E0 @ =gSprites + movs r5, 0x14 + adds r5, r3 + mov r12, r5 + ldr r7, _080A61E4 @ =gUnknown_83E3734 + mov r8, r7 + ldr r6, _080A61E8 @ =gUnknown_83E3764 + movs r5, 0x1 +_080A61B2: + lsls r0, r2, 4 + adds r0, r2 + lsls r1, r0, 2 + mov r7, r12 + adds r0, r1, r7 + ldr r0, [r0] + cmp r0, r8 + beq _080A61C6 + cmp r0, r6 + bne _080A61CA +_080A61C6: + adds r0, r1, r3 + strh r5, [r0, 0x2E] +_080A61CA: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3F + bls _080A61B2 + movs r0, 0 + strh r0, [r4, 0xA] + b _080A6214 + .align 2, 0 +_080A61DC: .4byte gPaletteFade +_080A61E0: .4byte gSprites +_080A61E4: .4byte gUnknown_83E3734 +_080A61E8: .4byte gUnknown_83E3764 +_080A61EC: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080A6232 + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + bl sub_80765C8 + ldr r1, _080A621C @ =0x00007fbb + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_080A6214: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080A6232 + .align 2, 0 +_080A621C: .4byte 0x00007fbb +_080A6220: + ldr r0, _080A6240 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A6232 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080A6232: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6240: .4byte gPaletteFade + thumb_func_end sub_80A60A8 + + thumb_func_start sub_80A6244 +sub_80A6244: @ 80A6244 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080A62C8 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bgt _080A6256 + movs r0, 0x2 + strh r0, [r6, 0x4] +_080A6256: + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0x7F + ble _080A6262 + movs r0, 0x7F + strh r0, [r6, 0x4] +_080A6262: + movs r0, 0 + strh r0, [r5, 0x2E] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x30] + ldr r4, _080A62CC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x2] + adds r0, r6 + strh r0, [r5, 0x22] + ldrh r1, [r5, 0x20] + strh r1, [r5, 0x3A] + strh r0, [r5, 0x3C] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A62D4 + ldrb r1, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x3] + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + adds r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080A62D0 @ =0xffffec00 + b _080A62FA + .align 2, 0 +_080A62C8: .4byte gBattleAnimArgs +_080A62CC: .4byte gBattleAnimTarget +_080A62D0: .4byte 0xffffec00 +_080A62D4: + ldr r0, _080A6314 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A631C + ldrh r0, [r5, 0x20] + subs r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + adds r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0xA0 + lsls r0, 5 +_080A62FA: + bl __divsi3 + strh r0, [r5, 0x34] + lsls r4, 7 + strh r4, [r5, 0x36] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080A6318 @ =0xfffff600 + bl __divsi3 + strh r0, [r5, 0x38] + b _080A6358 + .align 2, 0 +_080A6314: .4byte gBattleAnimAttacker +_080A6318: .4byte 0xfffff600 +_080A631C: + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + subs r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080A6364 @ =0xffffec00 + bl __divsi3 + strh r0, [r5, 0x34] + lsls r4, 7 + strh r4, [r5, 0x36] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0xA0 + lsls r0, 4 + bl __divsi3 + strh r0, [r5, 0x38] + ldrb r1, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x30 + orrs r0, r1 + strb r0, [r5, 0x3] +_080A6358: + ldr r0, _080A6368 @ =sub_80A636C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6364: .4byte 0xffffec00 +_080A6368: .4byte sub_80A636C + thumb_func_end sub_80A6244 + + thumb_func_start sub_80A636C +sub_80A636C: @ 80A636C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x36] + adds r1, r3 + strh r1, [r2, 0x36] + lsls r0, 16 + asrs r0, 23 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 23 + strh r1, [r2, 0x22] + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A63A2 + ldrh r0, [r2, 0x3A] + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x3C] + strh r0, [r2, 0x22] +_080A63A2: + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080A63B0 + adds r0, r2, 0 + bl DestroyAnimSprite +_080A63B0: + pop {r0} + bx r0 + thumb_func_end sub_80A636C + + thumb_func_start sub_80A63B4 +sub_80A63B4: @ 80A63B4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, _080A6444 @ =gTasks + adds r6, r0, r1 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x8] + ldr r0, _080A6448 @ =0x00002771 + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0xA] + movs r1, 0xA + ldrsh r0, [r6, r1] + lsls r0, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + ldr r2, _080A644C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r4, r0, 4 + movs r5, 0x1 + ldr r2, _080A6450 @ =gPlttBufferUnfaded +_080A640C: + adds r1, r3, r5 + lsls r1, 1 + adds r1, r2 + adds r0, r4, r5 + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xF + bls _080A640C + adds r0, r3, 0 + movs r1, 0x10 + movs r2, 0xB + movs r3, 0 + bl BlendPalette + movs r0, 0 + strh r0, [r6, 0xE] + movs r5, 0 + ldr r7, _080A644C @ =gSprites + movs r1, 0x1C + adds r1, r7 + mov r9, r1 + b _080A6488 + .align 2, 0 +_080A6444: .4byte gTasks +_080A6448: .4byte 0x00002771 +_080A644C: .4byte gSprites +_080A6450: .4byte gPlttBufferUnfaded +_080A6454: + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r4, r2, r7 + ldrb r1, [r6, 0xA] + lsls r1, 4 + ldrb r3, [r4, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r1 + strb r0, [r4, 0x5] + movs r0, 0 + strh r0, [r4, 0x2E] + lsls r0, r5, 7 + strh r0, [r4, 0x30] + mov r0, r8 + strh r0, [r4, 0x32] + add r2, r9 + ldr r0, _080A64BC @ =sub_80A653C + str r0, [r2] + ldrh r0, [r6, 0xE] + adds r0, 0x1 + strh r0, [r6, 0xE] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080A6488: + cmp r5, 0x1 + bhi _080A649A + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080A6454 +_080A649A: + ldr r0, _080A64C0 @ =sub_80A64E0 + str r0, [r6] + ldr r0, _080A64C4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A64C8 + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl ClearGpuRegBits + b _080A64D2 + .align 2, 0 +_080A64BC: .4byte sub_80A653C +_080A64C0: .4byte sub_80A64E0 +_080A64C4: .4byte gBattleAnimAttacker +_080A64C8: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl ClearGpuRegBits +_080A64D2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A63B4 + + thumb_func_start sub_80A64E0 +sub_80A64E0: @ 80A64E0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A6514 @ =gTasks + adds r0, r1 + movs r1, 0xE + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6532 + ldr r0, _080A6518 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A651C + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl SetGpuRegBits + b _080A6526 + .align 2, 0 +_080A6514: .4byte gTasks +_080A6518: .4byte gBattleAnimAttacker +_080A651C: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl SetGpuRegBits +_080A6526: + ldr r0, _080A6538 @ =0x00002771 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A6532: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6538: .4byte 0x00002771 + thumb_func_end sub_80A64E0 + + thumb_func_start sub_80A653C +sub_80A653C: @ 80A653C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A6558 + movs r0, 0 + strh r0, [r5, 0x34] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_080A6558: + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x40 + ble _080A6580 + ldr r2, _080A657C @ =gTasks + movs r0, 0x32 + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0xE] + subs r1, 0x1 + strh r1, [r0, 0xE] + adds r0, r5, 0 + bl obj_delete_but_dont_free_vram + b _080A65C2 + .align 2, 0 +_080A657C: .4byte gTasks +_080A6580: + ldr r4, _080A65C8 @ =gSineTable + movs r1, 0x2E + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x6 + bl __divsi3 + strh r0, [r5, 0x36] + movs r1, 0x2E + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0xD + bl __divsi3 + strh r0, [r5, 0x38] + ldrh r1, [r5, 0x30] + adds r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r5, 0x30] + movs r1, 0x30 + ldrsh r0, [r5, r1] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] +_080A65C2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A65C8: .4byte gSineTable + thumb_func_end sub_80A653C + + thumb_func_start sub_80A65CC +sub_80A65CC: @ 80A65CC + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080A65E0 @ =DestroyAnimSprite + bl StoreSpriteCallbackInData6 + ldr r0, _080A65E4 @ =sub_8074F6C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A65E0: .4byte DestroyAnimSprite +_080A65E4: .4byte sub_8074F6C + thumb_func_end sub_80A65CC + + thumb_func_start sub_80A65E8 +sub_80A65E8: @ 80A65E8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r4, _080A6698 @ =gUnknown_83E3898 + ldrh r0, [r4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xFF + beq _080A662C + lsls r0, r3, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + movs r2, 0x1 + ldr r5, _080A669C @ =gPlttBufferFaded +_080A6614: + adds r1, r3, r2 + lsls r1, 1 + adds r1, r5 + lsls r0, r2, 1 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080A6614 +_080A662C: + movs r4, 0x1 + ldr r0, _080A6698 @ =gUnknown_83E3898 + mov r8, r0 +_080A6632: + lsls r0, r4, 1 + adds r0, r4 + lsls r5, r0, 2 + mov r1, r8 + adds r0, r5, r1 + ldrh r0, [r0] + bl AllocSpritePalette + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, 0x1 + mov r12, r4 + cmp r3, 0xFF + beq _080A667A + lsls r0, r3, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + movs r2, 0x1 + ldr r7, _080A669C @ =gPlttBufferFaded + ldr r6, _080A6698 @ =gUnknown_83E3898 + adds r4, r5, 0 +_080A6660: + adds r1, r3, r2 + lsls r1, 1 + adds r1, r7 + lsls r0, r2, 1 + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080A6660 +_080A667A: + mov r1, r12 + lsls r0, r1, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080A6632 + mov r0, r9 + bl DestroyAnimVisualTask + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6698: .4byte gUnknown_83E3898 +_080A669C: .4byte gPlttBufferFaded + thumb_func_end sub_80A65E8 + + thumb_func_start sub_80A66A0 +sub_80A66A0: @ 80A66A0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0x1 + ldr r6, _080A66D0 @ =gUnknown_83E3898 +_080A66AA: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r6 + ldrh r0, [r0] + bl FreeSpritePaletteByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080A66AA + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A66D0: .4byte gUnknown_83E3898 + thumb_func_end sub_80A66A0 + + thumb_func_start sub_80A66D4 +sub_80A66D4: @ 80A66D4 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_8074FCC + ldr r4, _080A672C @ =gBattleAnimArgs + ldrb r1, [r4] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r2, _080A6730 @ =gUnknown_83E3898 + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080A6710 + lsls r2, r0, 4 + ldrb r1, [r5, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x5] +_080A6710: + ldrh r0, [r4, 0x2] + movs r1, 0 + strh r0, [r5, 0x30] + strh r1, [r5, 0x32] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x34] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A6734 + movs r6, 0x30 + movs r3, 0x28 + b _080A674E + .align 2, 0 +_080A672C: .4byte gBattleAnimArgs +_080A6730: .4byte gUnknown_83E3898 +_080A6734: + ldr r4, _080A6784 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r3, r0, 24 +_080A674E: + ldrh r0, [r5, 0x20] + lsls r1, r0, 4 + strh r1, [r5, 0x36] + ldrh r1, [r5, 0x22] + lsls r2, r1, 4 + strh r2, [r5, 0x38] + subs r0, r6, r0 + lsls r0, 16 + asrs r0, 16 + subs r1, r3, r1 + lsls r1, 16 + asrs r1, 16 + adds r2, r5, 0 + adds r2, 0x3A + adds r3, r5, 0 + adds r3, 0x3C + movs r4, 0x28 + str r4, [sp] + bl sub_80A678C + ldr r0, _080A6788 @ =sub_80A67E4 + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6784: .4byte gBattleAnimTarget +_080A6788: .4byte sub_80A67E4 + thumb_func_end sub_80A66D4 + + thumb_func_start sub_80A678C +sub_80A678C: @ 80A678C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r2, 0 + mov r8, r3 + ldr r2, [sp, 0x18] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r1, r2, 24 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bge _080A67AE + lsls r0, r1, 24 + negs r0, r0 + lsrs r1, r0, 24 +_080A67AE: + lsls r5, r2, 8 + lsls r1, 24 + asrs r1, 24 + adds r0, r5, 0 + bl __divsi3 + adds r4, r0, 0 + cmp r4, 0 + bne _080A67C2 + movs r4, 0x1 +_080A67C2: + adds r0, r5, 0 + adds r1, r4, 0 + bl __divsi3 + strh r0, [r7] + lsls r0, r6, 16 + asrs r0, 8 + adds r1, r4, 0 + bl __divsi3 + mov r1, r8 + strh r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A678C + + thumb_func_start sub_80A67E4 +sub_80A67E4: @ 80A67E4 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x2E] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r1, r0, r1 + adds r0, r1, 0 + cmp r1, 0 + bge _080A6800 + adds r0, 0xFF +_080A6800: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + ldrh r1, [r4, 0x3A] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + ldrh r2, [r4, 0x3C] + ldrh r3, [r4, 0x38] + adds r2, r3 + strh r2, [r4, 0x38] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x20] + lsls r2, 16 + asrs r2, 20 + strh r2, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0xF + bl Sin + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + ldrh r0, [r4, 0x20] + adds r0, 0x10 + lsls r0, 16 + movs r1, 0x88 + lsls r1, 17 + cmp r0, r1 + bhi _080A684E + lsls r0, r2, 16 + asrs r1, r0, 16 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + blt _080A684E + cmp r1, 0x80 + ble _080A6856 +_080A684E: + adds r0, r4, 0 + bl move_anim_8074EE0 + b _080A68A6 +_080A6856: + movs r0, 0x34 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _080A68A6 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, r1 + ble _080A68A6 + strh r5, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A687E + strh r5, [r4, 0x30] +_080A687E: + ldr r2, _080A68AC @ =gUnknown_83E3898 + movs r3, 0x30 + ldrsh r1, [r4, r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080A68A6 + lsls r2, r0, 4 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] +_080A68A6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A68AC: .4byte gUnknown_83E3898 + thumb_func_end sub_80A67E4 + + thumb_func_start sub_80A68B0 +sub_80A68B0: @ 80A68B0 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r7, _080A6934 @ =gBattleAnimAttacker + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A68CE + ldr r1, _080A6938 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080A68CE: + ldrb r0, [r7] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A6938 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + movs r5, 0 + strh r0, [r6, 0x20] + ldrb r0, [r7] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r4, 0x4] + adds r0, r2 + strh r0, [r6, 0x22] + ldrb r1, [r4] + adds r0, r6, 0 + bl StartSpriteAnim + strh r5, [r6, 0x32] + strh r5, [r6, 0x34] + ldrh r0, [r6, 0x20] + lsls r0, 4 + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x22] + lsls r0, 4 + strh r0, [r6, 0x38] + movs r1, 0x2 + ldrsh r0, [r4, r1] + lsls r0, 4 + movs r1, 0x5 + bl __divsi3 + strh r0, [r6, 0x3A] + movs r2, 0x4 + ldrsh r0, [r4, r2] + lsls r0, 7 + movs r1, 0x5 + bl __divsi3 + strh r0, [r6, 0x3C] + ldr r0, _080A693C @ =sub_80A6940 + str r0, [r6, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A6934: .4byte gBattleAnimAttacker +_080A6938: .4byte gBattleAnimArgs +_080A693C: .4byte sub_80A6940 + thumb_func_end sub_80A68B0 + + thumb_func_start sub_80A6940 +sub_80A6940: @ 80A6940 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + ldrh r1, [r4, 0x3C] + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x22] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x5 + ble _080A699E + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A699E + ldrh r0, [r4, 0x32] + adds r0, 0x10 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x12 + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0x12 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A699E + movs r0, 0x1 + strh r0, [r4, 0x34] +_080A699E: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x30 + bne _080A69B2 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080A69B2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6940 + + thumb_func_start sub_80A69B8 +sub_80A69B8: @ 80A69B8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080A69D8 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080A69DC + ldrb r0, [r5, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r5, 0x3] + movs r6, 0x10 + b _080A69DE + .align 2, 0 +_080A69D8: .4byte gBattleAnimArgs +_080A69DC: + ldr r6, _080A6A18 @ =0x0000fff0 +_080A69DE: + ldr r4, _080A6A1C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x8 + strh r0, [r5, 0x22] + movs r0, 0x8 + strh r0, [r5, 0x2E] + ldr r0, _080A6A20 @ =sub_8074C44 + str r0, [r5, 0x1C] + ldr r1, _080A6A24 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6A18: .4byte 0x0000fff0 +_080A6A1C: .4byte gBattleAnimAttacker +_080A6A20: .4byte sub_8074C44 +_080A6A24: .4byte DestroyAnimSprite + thumb_func_end sub_80A69B8 + + thumb_func_start sub_80A6A28 +sub_80A6A28: @ 80A6A28 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldrh r0, [r4, 0x22] + adds r0, 0x8 + strh r0, [r4, 0x22] + ldr r5, _080A6AA0 @ =gBattleAnimArgs + ldrb r1, [r5, 0x2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r2, _080A6AA4 @ =gUnknown_83E3898 + movs r0, 0x4 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080A6A68 + lsls r2, r0, 4 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] +_080A6A68: + movs r1, 0 + ldrsh r0, [r5, r1] + movs r2, 0x20 + cmp r0, 0 + bne _080A6A74 + ldr r2, _080A6AA8 @ =0x0000ffe0 +_080A6A74: + movs r0, 0x28 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x20] + strh r1, [r4, 0x30] + lsls r0, r2, 16 + asrs r0, 16 + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + subs r0, 0x28 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x38] + ldr r0, _080A6AAC @ =sub_80A6AB0 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6AA0: .4byte gBattleAnimArgs +_080A6AA4: .4byte gUnknown_83E3898 +_080A6AA8: .4byte 0x0000ffe0 +_080A6AAC: .4byte sub_80A6AB0 + thumb_func_end sub_80A6A28 + + thumb_func_start sub_80A6AB0 +sub_80A6AB0: @ 80A6AB0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080A6B00 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + lsls r0, 16 + lsrs r1, r0, 16 + ldrh r2, [r4, 0x24] + movs r3, 0x24 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080A6ADC + lsls r0, r1, 16 + negs r0, r0 + lsrs r1, r0, 16 +_080A6ADC: + lsls r0, r1, 16 + asrs r0, 16 + adds r0, r2 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + ldrh r3, [r4, 0x26] + adds r0, r3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A6B06 +_080A6B00: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A6B06: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6AB0 + + thumb_func_start sub_80A6B0C +sub_80A6B0C: @ 80A6B0C + push {r4-r6,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A6B2C + adds r0, r5, 0 + movs r1, 0x5 + bl sub_8076B2C + adds r0, 0x8 + b _080A6B36 +_080A6B2C: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_8076B2C + subs r0, 0x8 +_080A6B36: + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8074480 + adds r4, r0, 0 + adds r0, r5, 0 + movs r1, 0 + bl sub_8076B2C + lsls r4, 24 + lsrs r4, 24 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080A6B58 + adds r0, 0x3 +_080A6B58: + asrs r0, 2 + subs r0, r4, r0 + strh r0, [r6, 0x22] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A6B0C + + thumb_func_start sub_80A6B64 +sub_80A6B64: @ 80A6B64 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080A6B78 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6B80 + ldr r0, _080A6B7C @ =gBattleAnimAttacker + b _080A6B82 + .align 2, 0 +_080A6B78: .4byte gBattleAnimArgs +_080A6B7C: .4byte gBattleAnimAttacker +_080A6B80: + ldr r0, _080A6BC0 @ =gBattleAnimTarget +_080A6B82: + ldrb r4, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A6B0C + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + ldr r0, _080A6BC4 @ =gBattleAnimArgs + ldrh r0, [r0, 0x2] + strh r0, [r5, 0x2E] + adds r0, r1, 0x2 + strh r0, [r5, 0x30] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r1, _080A6BC8 @ =sub_80A6BD0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6BCC @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6BC0: .4byte gBattleAnimTarget +_080A6BC4: .4byte gBattleAnimArgs +_080A6BC8: .4byte sub_80A6BD0 +_080A6BCC: .4byte sub_8074F6C + thumb_func_end sub_80A6B64 + + thumb_func_start sub_80A6BD0 +sub_80A6BD0: @ 80A6BD0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080A6BF8 + ldr r1, _080A6C00 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080A6C04 @ =sub_8074F6C + str r0, [r4, 0x1C] +_080A6BF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6C00: .4byte DestroyAnimSprite +_080A6C04: .4byte sub_8074F6C + thumb_func_end sub_80A6BD0 + + thumb_func_start sub_80A6C08 +sub_80A6C08: @ 80A6C08 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A6C1C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6C24 + ldr r0, _080A6C20 @ =gBattleAnimAttacker + b _080A6C26 + .align 2, 0 +_080A6C1C: .4byte gBattleAnimArgs +_080A6C20: .4byte gBattleAnimAttacker +_080A6C24: + ldr r0, _080A6C44 @ =gBattleAnimTarget +_080A6C26: + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80A6B0C + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r1, _080A6C48 @ =sub_80A6C50 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6C4C @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6C44: .4byte gBattleAnimTarget +_080A6C48: .4byte sub_80A6C50 +_080A6C4C: .4byte sub_8074F50 + thumb_func_end sub_80A6C08 + + thumb_func_start sub_80A6C50 +sub_80A6C50: @ 80A6C50 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080A6C76 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080A6C7C @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6C80 @ =sub_8074F50 + str r0, [r4, 0x1C] +_080A6C76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6C7C: .4byte move_anim_8074EE0 +_080A6C80: .4byte sub_8074F50 + thumb_func_end sub_80A6C50 + + thumb_func_start sub_80A6C84 +sub_80A6C84: @ 80A6C84 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r0, _080A6C98 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6CA0 + ldr r0, _080A6C9C @ =gBattleAnimAttacker + b _080A6CA2 + .align 2, 0 +_080A6C98: .4byte gBattleAnimArgs +_080A6C9C: .4byte gBattleAnimAttacker +_080A6CA0: + ldr r0, _080A6CF4 @ =gBattleAnimTarget +_080A6CA2: + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + strh r0, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bgt _080A6CCA + movs r0, 0xA + strh r0, [r4, 0x22] +_080A6CCA: + movs r0, 0x1 + strh r0, [r4, 0x2E] + strh r6, [r4, 0x30] + adds r1, r4, 0 + adds r1, 0x43 + ldrb r0, [r1] + strh r0, [r4, 0x32] + ldrb r0, [r1] + adds r0, 0x4 + strh r0, [r4, 0x34] + strh r6, [r4, 0x36] + ldr r1, _080A6CF8 @ =sub_80A6D00 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6CFC @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A6CF4: .4byte gBattleAnimTarget +_080A6CF8: .4byte sub_80A6D00 +_080A6CFC: .4byte sub_8074F50 + thumb_func_end sub_80A6C84 + + thumb_func_start sub_80A6D00 +sub_80A6D00: @ 80A6D00 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x36] + adds r0, 0x1 + strh r0, [r1, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080A6D16 + ldr r0, _080A6D1C @ =sub_80A6D20 + str r0, [r1, 0x1C] +_080A6D16: + pop {r0} + bx r0 + .align 2, 0 +_080A6D1C: .4byte sub_80A6D20 + thumb_func_end sub_80A6D00 + + thumb_func_start sub_80A6D20 +sub_80A6D20: @ 80A6D20 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0x4 + strh r1, [r2, 0x30] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFE + ble _080A6D52 + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080A6D4C + strh r0, [r2, 0x24] + ldr r0, _080A6D48 @ =sub_80A6C50 + str r0, [r2, 0x1C] + b _080A6D88 + .align 2, 0 +_080A6D48: .4byte sub_80A6C50 +_080A6D4C: + movs r0, 0xFF + ands r1, r0 + strh r1, [r2, 0x30] +_080A6D52: + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0x4F + ble _080A6D62 + ldrh r0, [r2, 0x34] + adds r1, r2, 0 + adds r1, 0x43 + strb r0, [r1] +_080A6D62: + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0x9F + ble _080A6D72 + ldrh r0, [r2, 0x32] + adds r1, r2, 0 + adds r1, 0x43 + strb r0, [r1] +_080A6D72: + ldr r1, _080A6D8C @ =gSineTable + movs r3, 0x30 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 19 + asrs r1, r0, 1 + adds r0, r1 + strh r0, [r2, 0x24] +_080A6D88: + pop {r0} + bx r0 + .align 2, 0 +_080A6D8C: .4byte gSineTable + thumb_func_end sub_80A6D20 + + thumb_func_start sub_80A6D90 +sub_80A6D90: @ 80A6D90 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080A6DA4 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6DAC + ldr r0, _080A6DA8 @ =gBattleAnimAttacker + b _080A6DAE + .align 2, 0 +_080A6DA4: .4byte gBattleAnimArgs +_080A6DA8: .4byte gBattleAnimAttacker +_080A6DAC: + ldr r0, _080A6DD0 @ =gBattleAnimTarget +_080A6DAE: + ldrb r4, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A6B0C + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A6DD4 + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAnim + movs r0, 0x2 + b _080A6DDE + .align 2, 0 +_080A6DD0: .4byte gBattleAnimTarget +_080A6DD4: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x3 +_080A6DDE: + strh r0, [r5, 0x2E] + ldr r0, _080A6DEC @ =sub_80A6DF0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6DEC: .4byte sub_80A6DF0 + thumb_func_end sub_80A6D90 + + thumb_func_start sub_80A6DF0 +sub_80A6DF0: @ 80A6DF0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080A6E1E + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r1, _080A6E24 @ =sub_80A6E2C + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A6E28 @ =sub_8074F6C + str r0, [r4, 0x1C] +_080A6E1E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6E24: .4byte sub_80A6E2C +_080A6E28: .4byte sub_8074F6C + thumb_func_end sub_80A6DF0 + + thumb_func_start sub_80A6E2C +sub_80A6E2C: @ 80A6E2C + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080A6E44 + adds r0, r1, 0 + bl DestroyAnimSprite +_080A6E44: + pop {r0} + bx r0 + thumb_func_end sub_80A6E2C + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s new file mode 100644 index 000000000..34bb0db27 --- /dev/null +++ b/asm/battle_anim_effects_2.s @@ -0,0 +1,7946 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80A6E48 +sub_80A6E48: @ 80A6E48 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r5, _080A6E8C @ =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_8074FF8 + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x34] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x36] + ldr r1, _080A6E90 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080A6E94 @ =sub_8074BE4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A6E8C: .4byte gBattleAnimArgs +_080A6E90: .4byte move_anim_8074EE0 +_080A6E94: .4byte sub_8074BE4 + thumb_func_end sub_80A6E48 + + thumb_func_start sub_80A6E98 +sub_80A6E98: @ 80A6E98 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A6EAC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A6EB4 + ldr r0, _080A6EB0 @ =gBattleAnimAttacker + b _080A6EB6 + .align 2, 0 +_080A6EAC: .4byte gBattleAnimArgs +_080A6EB0: .4byte gBattleAnimAttacker +_080A6EB4: + ldr r0, _080A6ED0 @ =gBattleAnimTarget +_080A6EB6: + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80A6B0C + movs r0, 0 + strh r0, [r4, 0x2E] + strh r0, [r4, 0x30] + ldr r0, _080A6ED4 @ =sub_80A6ED8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6ED0: .4byte gBattleAnimTarget +_080A6ED4: .4byte sub_80A6ED8 + thumb_func_end sub_80A6E98 + + thumb_func_start sub_80A6ED8 +sub_80A6ED8: @ 80A6ED8 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080A6F0A + cmp r0, 0x1 + bgt _080A6EEE + cmp r0, 0 + beq _080A6EF4 + b _080A6F38 +_080A6EEE: + cmp r0, 0x2 + beq _080A6F24 + b _080A6F38 +_080A6EF4: + ldrh r0, [r1, 0x26] + subs r0, 0x3 + strh r0, [r1, 0x26] + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080A6F38 + b _080A6F1C +_080A6F0A: + ldrh r0, [r1, 0x26] + adds r0, 0x3 + strh r0, [r1, 0x26] + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080A6F38 +_080A6F1C: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _080A6F38 +_080A6F24: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _080A6F38 + adds r0, r1, 0 + bl DestroyAnimSprite +_080A6F38: + pop {r0} + bx r0 + thumb_func_end sub_80A6ED8 + + thumb_func_start sub_80A6F3C +sub_80A6F3C: @ 80A6F3C + push {r4,lr} + adds r4, r0, 0 + ldr r3, _080A6F88 @ =gSprites + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r4, 0x30] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x30] + movs r0, 0x2E + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _080A6F7A + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x24] + adds r0, r4, 0 + bl move_anim_8074EE0 +_080A6F7A: + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A6F88: .4byte gSprites + thumb_func_end sub_80A6F3C + + thumb_func_start sub_80A6F8C +sub_80A6F8C: @ 80A6F8C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080A6FD4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080A6FD8 @ =gBattlerSpriteIds + ldr r0, _080A6FDC @ =gBattleAnimTarget + ldrb r0, [r0] + adds r0, r1 + ldrb r6, [r0] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A6FE4 + ldr r0, _080A6FE0 @ =gBattleAnimArgs + ldrh r1, [r5, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r5, 0x20] + adds r1, r0, 0 + b _080A6FEE + .align 2, 0 +_080A6FD4: .4byte gBattleAnimAttacker +_080A6FD8: .4byte gBattlerSpriteIds +_080A6FDC: .4byte gBattleAnimTarget +_080A6FE0: .4byte gBattleAnimArgs +_080A6FE4: + ldr r1, _080A7018 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] +_080A6FEE: + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + strh r6, [r5, 0x32] + ldr r0, _080A701C @ =sub_80A6F3C + str r0, [r5, 0x1C] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A7018: .4byte gBattleAnimArgs +_080A701C: .4byte sub_80A6F3C + thumb_func_end sub_80A6F8C + + thumb_func_start sub_80A7020 +sub_80A7020: @ 80A7020 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080A704C @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x38] + ldr r0, _080A7050 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080A7054 @ =sub_80A7058 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A704C: .4byte gBattleAnimArgs +_080A7050: .4byte sub_8074C44 +_080A7054: .4byte sub_80A7058 + thumb_func_end sub_80A7020 + + thumb_func_start sub_80A7058 +sub_80A7058: @ 80A7058 + push {lr} + ldrh r1, [r0, 0x30] + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + adds r1, 0xF + strh r1, [r0, 0x36] + ldr r1, _080A7078 @ =sub_8075590 + str r1, [r0, 0x1C] + ldr r1, _080A707C @ =sub_80A7080 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080A7078: .4byte sub_8075590 +_080A707C: .4byte sub_80A7080 + thumb_func_end sub_80A7058 + + thumb_func_start sub_80A7080 +sub_80A7080: @ 80A7080 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x38] + movs r3, 0x38 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080A7096 + adds r0, r1, 0 + bl DestroyAnimSprite + b _080A709A +_080A7096: + subs r0, r2, 0x1 + strh r0, [r1, 0x38] +_080A709A: + pop {r0} + bx r0 + thumb_func_end sub_80A7080 + + thumb_func_start sub_80A70A0 +sub_80A70A0: @ 80A70A0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080A70CC @ =gBattlerSpriteIds + ldr r0, _080A70D0 @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_80758E0 + ldr r1, _080A70D4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080A70D8 @ =sub_80A70DC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A70CC: .4byte gBattlerSpriteIds +_080A70D0: .4byte gBattleAnimAttacker +_080A70D4: .4byte gTasks +_080A70D8: .4byte sub_80A70DC + thumb_func_end sub_80A70A0 + + thumb_func_start sub_80A70DC +sub_80A70DC: @ 80A70DC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A710C @ =gBattlerSpriteIds + ldr r0, _080A7110 @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r1, r0, r1 + ldrb r4, [r1] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A7118 + ldr r1, _080A7114 @ =gTasks + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + negs r0, r0 + lsls r0, 16 + lsrs r3, r0, 16 + adds r6, r2, 0 + b _080A7126 + .align 2, 0 +_080A710C: .4byte gBattlerSpriteIds +_080A7110: .4byte gBattleAnimAttacker +_080A7114: .4byte gTasks +_080A7118: + ldr r2, _080A7158 @ =gTasks + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + ldrh r3, [r0, 0x8] + adds r6, r1, 0 +_080A7126: + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + bl obj_id_set_rotscale + ldr r1, _080A7158 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080A7160 + ldrh r0, [r1, 0x8] + adds r0, 0xB0 + strh r0, [r1, 0x8] + ldr r1, _080A715C @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + adds r1, 0x1 + b _080A718A + .align 2, 0 +_080A7158: .4byte gTasks +_080A715C: .4byte gSprites +_080A7160: + cmp r0, 0x1 + bne _080A7176 + ldrh r0, [r1, 0xE] + adds r0, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + bne _080A71D0 + movs r0, 0x2 + b _080A71CE +_080A7176: + ldrh r0, [r1, 0x8] + subs r0, 0xB0 + strh r0, [r1, 0x8] + ldr r1, _080A71C4 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + subs r1, 0x1 +_080A718A: + strh r1, [r0, 0x26] + adds r0, r4, 0 + bl sub_80759DC + ldr r0, _080A71C8 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r3, 0x8 + ldrsh r2, [r1, r3] + movs r0, 0xF2 + lsls r0, 4 + cmp r2, r0 + beq _080A71AA + cmp r2, 0 + bne _080A71D0 +_080A71AA: + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bne _080A71CC + adds r0, r4, 0 + bl sub_8075980 + adds r0, r5, 0 + bl DestroyAnimVisualTask + b _080A71D0 + .align 2, 0 +_080A71C4: .4byte gSprites +_080A71C8: .4byte gTasks +_080A71CC: + adds r0, r2, 0x1 +_080A71CE: + strh r0, [r1, 0xA] +_080A71D0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A70DC + + thumb_func_start sub_80A71D8 +sub_80A71D8: @ 80A71D8 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080A71FC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A7204 + ldr r0, _080A7200 @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + adds r5, r0, 0 + b _080A7210 + .align 2, 0 +_080A71FC: .4byte gBattleAnimAttacker +_080A7200: .4byte gBattleAnimArgs +_080A7204: + ldr r1, _080A7244 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r5, r1, 0 +_080A7210: + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080A7248 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A724C + adds r3, r4, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x1 + adds r2, r0, 0 + orrs r2, r1 + strb r2, [r3] + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080A7260 + movs r0, 0x2 + orrs r2, r0 + strb r2, [r3] + b _080A7260 + .align 2, 0 +_080A7244: .4byte gBattleAnimArgs +_080A7248: .4byte gBattleAnimAttacker +_080A724C: + movs r2, 0x4 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080A7260 + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] +_080A7260: + ldr r0, _080A7274 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080A7278 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7274: .4byte sub_8074F6C +_080A7278: .4byte DestroyAnimSprite + thumb_func_end sub_80A71D8 + + thumb_func_start sub_80A727C +sub_80A727C: @ 80A727C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r0, _080A7298 @ =sub_8074F50 + str r0, [r4, 0x1C] + ldr r1, _080A729C @ =sub_80A72A0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7298: .4byte sub_8074F50 +_080A729C: .4byte sub_80A72A0 + thumb_func_end sub_80A727C + + thumb_func_start sub_80A72A0 +sub_80A72A0: @ 80A72A0 + push {lr} + movs r1, 0x6 + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + subs r1, 0x20 + strh r1, [r0, 0x36] + ldr r1, _080A72C0 @ =sub_8075590 + str r1, [r0, 0x1C] + ldr r1, _080A72C4 @ =DestroyAnimSprite + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080A72C0: .4byte sub_8075590 +_080A72C4: .4byte DestroyAnimSprite + thumb_func_end sub_80A72A0 + + thumb_func_start sub_80A72C8 +sub_80A72C8: @ 80A72C8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A72EC + ldr r1, _080A72E8 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + b _080A730E + .align 2, 0 +_080A72E8: .4byte gBattleAnimArgs +_080A72EC: + ldr r0, _080A73B4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A730E + ldr r1, _080A73B8 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080A730E: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r4, _080A73BC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r6, _080A73B8 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x6] + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + adds r7, r0, 0 + ldrh r1, [r5, 0x20] + mov r2, r8 + lsls r0, r2, 16 + asrs r0, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xF0 + lsls r1, 24 + adds r0, r1 + lsrs r4, r0, 16 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A7380 + ldr r2, _080A73C0 @ =0xffffa000 + adds r0, r4, r2 + lsls r0, 16 + lsrs r4, r0, 16 +_080A7380: + movs r3, 0x80 + lsls r3, 1 + str r4, [sp] + adds r0, r5, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + mov r0, r8 + strh r0, [r5, 0x32] + strh r7, [r5, 0x36] + ldr r0, _080A73C4 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A73C8 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A73B4: .4byte gBattleAnimAttacker +_080A73B8: .4byte gBattleAnimArgs +_080A73BC: .4byte gBattleAnimTarget +_080A73C0: .4byte 0xffffa000 +_080A73C4: .4byte sub_8075590 +_080A73C8: .4byte DestroyAnimSprite + thumb_func_end sub_80A72C8 + + thumb_func_start sub_80A73CC +sub_80A73CC: @ 80A73CC + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + subs r1, r0, 0x1 + strh r1, [r3, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080A73F6 + ldr r2, _080A73FC @ =gTasks + movs r0, 0x3C + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0xA] + subs r1, 0x1 + strh r1, [r0, 0xA] + adds r0, r3, 0 + bl DestroySprite +_080A73F6: + pop {r0} + bx r0 + .align 2, 0 +_080A73FC: .4byte gTasks + thumb_func_end sub_80A73CC + + thumb_func_start sub_80A7400 +sub_80A7400: @ 80A7400 + push {r4,lr} + adds r2, r0, 0 + movs r0, 0x3C + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _080A7430 @ =gTasks + adds r4, r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _080A7434 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x38] + adds r0, r1 + strh r0, [r2, 0x38] + ldrh r0, [r2, 0x36] + ldrh r3, [r2, 0x3A] + adds r0, r3 + b _080A7442 + .align 2, 0 +_080A7430: .4byte gTasks +_080A7434: + ldrh r0, [r2, 0x38] + ldrh r1, [r2, 0x34] + subs r0, r1 + strh r0, [r2, 0x38] + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x36] + subs r0, r1 +_080A7442: + strh r0, [r2, 0x3A] + ldrh r0, [r2, 0x38] + ldrh r1, [r2, 0x30] + adds r3, r0, r1 + strh r3, [r2, 0x30] + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r4, 0x16] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7466 + lsls r0, r3, 16 + lsrs r0, 24 + negs r0, r0 + b _080A746A +_080A7466: + lsls r0, r3, 16 + lsrs r0, 24 +_080A746A: + strh r0, [r2, 0x24] + ldrh r1, [r4, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A747E + ldrh r0, [r2, 0x32] + lsrs r0, 8 + negs r0, r0 + b _080A7482 +_080A747E: + ldrh r0, [r2, 0x32] + lsrs r0, 8 +_080A7482: + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + subs r1, r0, 0x1 + strh r1, [r2, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080A7498 + movs r0, 0x1E + strh r0, [r2, 0x2E] + ldr r0, _080A74A0 @ =sub_80A73CC + str r0, [r2, 0x1C] +_080A7498: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A74A0: .4byte sub_80A73CC + thumb_func_end sub_80A7400 + + thumb_func_start sub_80A74A4 +sub_80A74A4: @ 80A74A4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _080A74E8 @ =gTasks + adds r6, r0, r1 + ldrh r2, [r6, 0x16] + movs r1, 0x2 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + ldrh r3, [r7, 0x30] + adds r2, r0, r3 + strh r2, [r7, 0x30] + ldrh r0, [r6, 0x18] + ands r1, r0 + ldrh r0, [r7, 0x32] + adds r1, r0 + strh r1, [r7, 0x32] + ldrh r1, [r6, 0x16] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A74EC + lsls r0, r2, 16 + lsrs r0, 24 + negs r0, r0 + b _080A74F0 + .align 2, 0 +_080A74E8: .4byte gTasks +_080A74EC: + lsls r0, r2, 16 + lsrs r0, 24 +_080A74F0: + strh r0, [r7, 0x24] + ldrh r1, [r6, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7504 + ldrh r0, [r7, 0x32] + lsrs r0, 8 + negs r0, r0 + b _080A7508 +_080A7504: + ldrh r0, [r7, 0x32] + lsrs r0, 8 +_080A7508: + strh r0, [r7, 0x26] + ldrh r0, [r7, 0x2E] + subs r1, r0, 0x1 + strh r1, [r7, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080A75D4 + movs r4, 0 + movs r0, 0x8 + strh r0, [r7, 0x2E] + movs r0, 0x4 + strh r0, [r6, 0x12] + movs r0, 0x80 + lsls r0, 5 + bl sub_80D8B90 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r7, 0x24] + ldrh r1, [r7, 0x20] + adds r2, r0, r1 + strh r2, [r7, 0x20] + ldrh r0, [r7, 0x26] + ldrh r3, [r7, 0x22] + adds r0, r3 + strh r0, [r7, 0x22] + strh r4, [r7, 0x26] + strh r4, [r7, 0x24] + ldrh r3, [r6, 0x1E] + movs r0, 0x1E + ldrsh r1, [r6, r0] + lsls r0, r2, 16 + asrs r0, 16 + cmp r1, r0 + blt _080A7552 + subs r0, r3, r2 + b _080A7554 +_080A7552: + subs r0, r2, r3 +_080A7554: + lsls r0, 24 + lsrs r4, r0, 16 + ldrh r3, [r6, 0x20] + movs r0, 0x20 + ldrsh r1, [r6, r0] + ldrh r2, [r7, 0x22] + movs r6, 0x22 + ldrsh r0, [r7, r6] + cmp r1, r0 + blt _080A756C + subs r0, r3, r2 + b _080A756E +_080A756C: + subs r0, r2, r3 +_080A756E: + lsls r0, 24 + lsrs r0, 16 + mov r8, r0 + movs r0, 0 + strh r0, [r7, 0x32] + strh r0, [r7, 0x30] + strh r0, [r7, 0x3A] + strh r0, [r7, 0x38] + lsls r0, r4, 16 + asrs r0, 16 + lsls r5, 16 + asrs r5, 16 + adds r1, r5, 0 + bl sub_80D8AA0 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + movs r6, 0xE0 + lsls r6, 1 + adds r0, r6, 0 + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + strh r0, [r7, 0x34] + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + adds r1, r5, 0 + bl sub_80D8AA0 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r6, 0 + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + strh r0, [r7, 0x36] + ldr r0, _080A75E0 @ =sub_80A7400 + str r0, [r7, 0x1C] +_080A75D4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A75E0: .4byte sub_80A7400 + thumb_func_end sub_80A74A4 + + thumb_func_start sub_80A75E4 +sub_80A75E4: @ 80A75E4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080A7608 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A7602 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080A7602: + pop {r0} + bx r0 + .align 2, 0 +_080A7608: .4byte gTasks + thumb_func_end sub_80A75E4 + + thumb_func_start sub_80A760C +sub_80A760C: @ 80A760C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080A7660 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + subs r1, r0, 0x1 + strh r1, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bgt _080A76E0 + ldr r0, _080A7664 @ =gUnknown_83E3C28 + movs r2, 0x1A + ldrsh r1, [r5, r2] + movs r3, 0x1C + ldrsh r2, [r5, r3] + ldrb r3, [r5, 0xC] + ldrb r4, [r5, 0xA] + subs r3, r4 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r0, 4 + add r0, r12 + lsls r0, 2 + ldr r1, _080A7668 @ =gSprites + adds r6, r0, r1 + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080A766C + cmp r0, 0x2 + beq _080A7682 + b _080A7690 + .align 2, 0 +_080A7660: .4byte gTasks +_080A7664: .4byte gUnknown_83E3C28 +_080A7668: .4byte gSprites +_080A766C: + ldrb r2, [r6, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x18 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x57 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x3] + b _080A7690 +_080A7682: + ldrb r0, [r6, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r6, 0x3] +_080A7690: + ldr r3, _080A76E8 @ =gTasks + lsls r2, r7, 2 + adds r2, r7 + lsls r2, 3 + adds r4, r2, r3 + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x14] + subs r0, r1 + strh r0, [r6, 0x2E] + strh r7, [r6, 0x3C] + movs r1, 0xA + ldrsh r0, [r4, r1] + adds r0, 0xD + lsls r0, 1 + adds r0, r2 + adds r3, 0x8 + adds r0, r3 + mov r2, r12 + strh r2, [r0] + ldrh r0, [r4, 0xE] + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0x3F + negs r0, r0 + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x93 + bl PlaySE12WithPanning + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0x2 + ble _080A76E0 + ldr r0, _080A76EC @ =sub_80A75E4 + str r0, [r4] +_080A76E0: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A76E8: .4byte gTasks +_080A76EC: .4byte sub_80A75E4 + thumb_func_end sub_80A760C + + thumb_func_start sub_80A76F0 +sub_80A76F0: @ 80A76F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r9, r0 + movs r5, 0 + mov r0, sp + mov r1, r9 + strh r1, [r0] + mov r4, sp + adds r4, 0x2 + strh r1, [r4] + bl sub_8073788 + lsls r0, 24 + mov r10, r4 + cmp r0, 0 + beq _080A775C + ldr r1, _080A774C @ =gTasks + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x10] + ldr r3, _080A7750 @ =gBattleAnimArgs + ldrh r0, [r3] + negs r0, r0 + strh r0, [r3] + ldrh r1, [r3, 0x4] + movs r0, 0x1 + ands r0, r1 + mov r8, r2 + cmp r0, 0 + beq _080A7754 + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strh r0, [r3, 0x4] + b _080A77B6 + .align 2, 0 +_080A774C: .4byte gTasks +_080A7750: .4byte gBattleAnimArgs +_080A7754: + movs r0, 0x1 + orrs r0, r1 + strh r0, [r3, 0x4] + b _080A77B6 +_080A775C: + ldr r1, _080A77A0 @ =gUnknown_2023BD6 + ldr r0, _080A77A4 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r7, 2 + mov r8, r2 + cmp r0, 0 + bne _080A77B6 + ldr r1, _080A77A8 @ =gTasks + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x10] + ldr r2, _080A77AC @ =gBattleAnimArgs + ldrh r0, [r2] + negs r0, r0 + strh r0, [r2] + ldrh r0, [r2, 0x2] + negs r0, r0 + strh r0, [r2, 0x2] + ldrh r1, [r2, 0x4] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080A77B0 + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + b _080A77B4 + .align 2, 0 +_080A77A0: .4byte gUnknown_2023BD6 +_080A77A4: .4byte gBattleAnimTarget +_080A77A8: .4byte gTasks +_080A77AC: .4byte gBattleAnimArgs +_080A77B0: + movs r0, 0x1 + orrs r0, r1 +_080A77B4: + strh r0, [r2, 0x4] +_080A77B6: + ldr r5, _080A7810 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + ldr r1, _080A7814 @ =gTasks + mov r3, r8 + adds r4, r3, r7 + lsls r4, 3 + adds r4, r1 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + adds r6, r0, 0 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + mov r9, r0 + ldr r0, _080A7818 @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7820 + ldr r4, _080A781C @ =gBattleAnimTarget + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A7820 + ldrb r0, [r4] + movs r1, 0 + mov r2, sp + mov r3, r10 + bl sub_8076D9C + b _080A7842 + .align 2, 0 +_080A7810: .4byte gBattleAnimAttacker +_080A7814: .4byte gTasks +_080A7818: .4byte gBattleTypeFlags +_080A781C: .4byte gBattleAnimTarget +_080A7820: + mov r5, sp + ldr r4, _080A787C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r1, r10 + strh r0, [r1] +_080A7842: + mov r4, sp + ldr r0, _080A7880 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + mov r2, sp + ldr r3, _080A7884 @ =gBattleAnimArgs + ldrh r0, [r3] + ldrh r2, [r2] + adds r0, r2 + strh r0, [r1, 0x1E] + strh r0, [r4] + ldrh r0, [r3, 0x2] + mov r3, r10 + ldrh r3, [r3] + adds r0, r3 + strh r0, [r1, 0x20] + mov r1, r10 + strh r0, [r1] + mov r0, sp + ldrh r2, [r0] + movs r3, 0 + ldrsh r0, [r0, r3] + adds r1, r6, 0 + cmp r0, r1 + blt _080A7888 + subs r0, r2, r1 + b _080A788A + .align 2, 0 +_080A787C: .4byte gBattleAnimTarget +_080A7880: .4byte gTasks +_080A7884: .4byte gBattleAnimArgs +_080A7888: + subs r0, r1, r2 +_080A788A: + lsls r0, 16 + lsrs r0, 16 + lsls r4, r0, 16 + asrs r4, 16 + ldr r5, _080A7900 @ =gBattleAnimArgs + ldrh r1, [r5, 0x4] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + lsls r0, 16 + asrs r0, 16 + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + ldr r2, _080A7904 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r6, r1, r2 + strh r0, [r6, 0x12] + movs r1, 0x12 + ldrsh r0, [r6, r1] + movs r1, 0x80 + bl sub_80D8AA0 + strh r0, [r6, 0x14] + ldrh r0, [r5, 0x4] + strh r0, [r6, 0x16] + mov r2, r10 + ldrh r1, [r2] + movs r3, 0 + ldrsh r0, [r2, r3] + mov r4, r9 + cmp r0, r4 + blt _080A7908 + subs r4, r1, r4 + lsls r4, 16 + asrs r4, 16 + movs r1, 0x12 + ldrsh r0, [r6, r1] + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + movs r1, 0x2 + negs r1, r1 + ands r1, r0 + strh r1, [r6, 0x18] + b _080A7928 + .align 2, 0 +_080A7900: .4byte gBattleAnimArgs +_080A7904: .4byte gTasks +_080A7908: + subs r4, r1 + lsls r4, 16 + asrs r4, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + bl sub_80D8B90 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_80D8AA0 + movs r1, 0x1 + orrs r0, r1 + strh r0, [r6, 0x18] +_080A7928: + ldr r1, _080A7968 @ =gTasks + mov r3, r8 + adds r0, r3, r7 + lsls r0, 3 + adds r5, r0, r1 + ldr r4, _080A796C @ =gBattleAnimArgs + ldrh r0, [r4, 0x6] + strh r0, [r5, 0xE] + ldrh r1, [r4, 0x8] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080A7978 + movs r0, 0x80 + eors r0, r1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _080A79A0 + ldr r0, _080A7970 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A7974 @ =0x0000ffc0 + adds r1, r2, 0 + ldrh r4, [r4, 0x8] + adds r1, r4 + adds r0, r1 + b _080A79B0 + .align 2, 0 +_080A7968: .4byte gTasks +_080A796C: .4byte gBattleAnimArgs +_080A7970: .4byte gBattleAnimTarget +_080A7974: .4byte 0x0000ffc0 +_080A7978: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _080A79A0 + ldr r0, _080A7998 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080A799C @ =0x0000ffc0 + adds r1, r3, 0 + ldrh r4, [r4, 0x8] + adds r1, r4 + adds r0, r1 + b _080A79B0 + .align 2, 0 +_080A7998: .4byte gBattleAnimTarget +_080A799C: .4byte 0x0000ffc0 +_080A79A0: + ldr r0, _080A79DC @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x8] + subs r0, r1 +_080A79B0: + strh r0, [r5, 0xC] + ldr r0, _080A79E0 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bgt _080A79C8 + movs r0, 0x3 + strh r0, [r1, 0xC] +_080A79C8: + ldr r0, _080A79E4 @ =sub_80A760C + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A79DC: .4byte gBattleAnimTarget +_080A79E0: .4byte gTasks +_080A79E4: .4byte sub_80A760C + thumb_func_end sub_80A76F0 + + thumb_func_start sub_80A79E8 +sub_80A79E8: @ 80A79E8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r0, _080A7A10 @ =gUnknown_83E3D18 + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4, 0x2E] + ldr r0, _080A7A14 @ =sub_80A7A18 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7A10: .4byte gUnknown_83E3D18 +_080A7A14: .4byte sub_80A7A18 + thumb_func_end sub_80A79E8 + + thumb_func_start sub_80A7A18 +sub_80A7A18: @ 80A7A18 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080A7A7C + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r5, [r4, 0x2E] + ldr r1, _080A7A84 @ =gPlttBufferFaded + adds r0, r5, 0 + adds r0, 0x8 + lsls r0, 1 + adds r0, r1 + ldrh r7, [r0] + adds r6, r1, 0 + adds r1, r5, 0 + adds r1, 0x9 + lsls r0, r5, 1 + adds r0, r6 + adds r2, r0, 0 + adds r2, 0x10 + movs r3, 0x7 + lsls r1, 1 + adds r1, r6 +_080A7A50: + ldrh r0, [r1] + strh r0, [r2] + adds r1, 0x2 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080A7A50 + adds r0, r5, 0 + adds r0, 0xF + lsls r0, 1 + adds r0, r6 + strh r7, [r0] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + bne _080A7A7C + adds r0, r4, 0 + bl DestroyAnimSprite +_080A7A7C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7A84: .4byte gPlttBufferFaded + thumb_func_end sub_80A7A18 + + thumb_func_start sub_80A7A88 +sub_80A7A88: @ 80A7A88 + push {r4-r7,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r4, _080A7B28 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A7B2C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, _080A7B30 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A7ACC + ldrh r0, [r4, 0x4] + negs r0, r0 + strh r0, [r4, 0x4] +_080A7ACC: + lsls r0, r6, 16 + asrs r0, 16 + ldrh r1, [r4, 0x4] + adds r0, r1 + lsls r0, 16 + ldrh r1, [r5, 0x20] + lsrs r6, r0, 16 + asrs r0, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + strh r6, [r5, 0x32] + strh r7, [r5, 0x36] + ldr r0, _080A7B34 @ =sub_80756A4 + str r0, [r5, 0x1C] + ldr r1, _080A7B38 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7B28: .4byte gBattleAnimTarget +_080A7B2C: .4byte gBattleAnimArgs +_080A7B30: .4byte gBattleAnimAttacker +_080A7B34: .4byte sub_80756A4 +_080A7B38: .4byte DestroyAnimSprite + thumb_func_end sub_80A7A88 + + thumb_func_start sub_80A7B3C +sub_80A7B3C: @ 80A7B3C + ldr r1, _080A7B4C @ =0x0000fff0 + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + ldr r1, _080A7B50 @ =sub_80A7B54 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080A7B4C: .4byte 0x0000fff0 +_080A7B50: .4byte sub_80A7B54 + thumb_func_end sub_80A7B3C + + thumb_func_start sub_80A7B54 +sub_80A7B54: @ 80A7B54 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldr r0, _080A7BC0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A7B78 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] +_080A7B78: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x5 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7E + ble _080A7BB8 + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080A7BB8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A7BB8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7BC0: .4byte gBattleAnimAttacker + thumb_func_end sub_80A7B54 + + thumb_func_start sub_80A7BC4 +sub_80A7BC4: @ 80A7BC4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r5, _080A7C10 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080A7C14 @ =sub_8075590 + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080A7C18 @ =sub_80A7C1C + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A7C10: .4byte gBattleAnimTarget +_080A7C14: .4byte sub_8075590 +_080A7C18: .4byte sub_80A7C1C + thumb_func_end sub_80A7BC4 + + thumb_func_start sub_80A7C1C +sub_80A7C1C: @ 80A7C1C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3F + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x9F + bl PlaySE12WithPanning + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + movs r2, 0 + movs r1, 0x7 + adds r0, r4, 0 + adds r0, 0x3C +_080A7C50: + strh r2, [r0] + subs r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080A7C50 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + ands r0, r1 + ldr r2, _080A7C98 @ =0x0000fff4 + adds r1, r2, 0 + subs r1, r0 + strh r1, [r4, 0x3A] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA0 + bl __umodsi3 + adds r0, 0xA0 + strh r0, [r4, 0x3C] + ldr r0, _080A7C9C @ =sub_80A7CA0 + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7C98: .4byte 0x0000fff4 +_080A7C9C: .4byte sub_80A7CA0 + thumb_func_end sub_80A7C1C + + thumb_func_start sub_80A7CA0 +sub_80A7CA0: @ 80A7CA0 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + ldrh r2, [r4, 0x2E] + adds r0, r1, r2 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r2, r0, 24 + strh r2, [r4, 0x24] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7CBE + negs r0, r2 + strh r0, [r4, 0x24] +_080A7CBE: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x8 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7E + ble _080A7CFE + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A7CFE + adds r0, r4, 0 + bl DestroyAnimSprite +_080A7CFE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7CA0 + + thumb_func_start sub_80A7D04 +sub_80A7D04: @ 80A7D04 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r0, _080A7D54 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A7D22 + ldrh r0, [r4, 0x22] + adds r0, 0x10 + strh r0, [r4, 0x22] +_080A7D22: + ldr r1, _080A7D58 @ =gBattleAnimArgs + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0xC] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldr r0, _080A7D5C @ =sub_8074A80 + str r0, [r4, 0x1C] + ldr r1, _080A7D60 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7D54: .4byte gBattleAnimAttacker +_080A7D58: .4byte gBattleAnimArgs +_080A7D5C: .4byte sub_8074A80 +_080A7D60: .4byte DestroyAnimSprite + thumb_func_end sub_80A7D04 + + thumb_func_start sub_80A7D64 +sub_80A7D64: @ 80A7D64 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + movs r7, 0x20 + ldr r4, _080A7DE0 @ =0x0000ffe0 + movs r0, 0x10 + mov r8, r0 + ldr r6, _080A7DE4 @ =0x0000fff0 + ldr r0, _080A7DE8 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080A7D90 + adds r7, r4, 0 + movs r4, 0x20 + mov r8, r6 + movs r6, 0x10 + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080A7D90: + lsls r0, r7, 16 + asrs r0, 16 + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080A7DEC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + add r0, r8 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, _080A7DF0 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A7DF4 @ =sub_80A7DF8 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7DE0: .4byte 0x0000ffe0 +_080A7DE4: .4byte 0x0000fff0 +_080A7DE8: .4byte gBattleAnimArgs +_080A7DEC: .4byte gBattleAnimTarget +_080A7DF0: .4byte sub_8075590 +_080A7DF4: .4byte sub_80A7DF8 + thumb_func_end sub_80A7D64 + + thumb_func_start sub_80A7DF8 +sub_80A7DF8: @ 80A7DF8 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A7E0E + adds r0, r2, 0 + bl DestroyAnimSprite +_080A7E0E: + pop {r0} + bx r0 + thumb_func_end sub_80A7DF8 + + thumb_func_start sub_80A7E14 +sub_80A7E14: @ 80A7E14 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r0, 0x20 + mov r8, r0 + ldr r4, _080A7EA8 @ =0x0000ffe0 + movs r2, 0x10 + mov r9, r2 + ldr r6, _080A7EAC @ =0x0000fff0 + ldr r7, _080A7EB0 @ =gBattleAnimArgs + ldrh r1, [r7] + movs r2, 0 + ldrsh r0, [r7, r2] + cmp r0, 0 + beq _080A7E48 + mov r8, r4 + movs r4, 0x20 + mov r9, r6 + movs r6, 0x10 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim +_080A7E48: + mov r0, r8 + lsls r1, r0, 16 + asrs r1, 16 + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + movs r0, 0x6 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + ldr r4, _080A7EB4 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + add r0, r9 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r7] + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x2E] + strh r0, [r5, 0x3A] + ldr r0, _080A7EB8 @ =sub_80A7EBC + str r0, [r5, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A7EA8: .4byte 0x0000ffe0 +_080A7EAC: .4byte 0x0000fff0 +_080A7EB0: .4byte gBattleAnimArgs +_080A7EB4: .4byte gBattleAnimTarget +_080A7EB8: .4byte sub_80A7EBC + thumb_func_end sub_80A7E14 + + thumb_func_start sub_80A7EBC +sub_80A7EBC: @ 80A7EBC + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080A7F20 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A7F20 + adds r0, r4, 0 + movs r1, 0 + bl SeekSpriteAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r2, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x2 + strh r0, [r4, 0x24] + ldr r0, _080A7F28 @ =0x0000fffe + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + eors r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x36] + strh r2, [r4, 0x34] + ldr r0, _080A7F2C @ =sub_80A7F30 + str r0, [r4, 0x1C] +_080A7F20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7F28: .4byte 0x0000fffe +_080A7F2C: .4byte sub_80A7F30 + thumb_func_end sub_80A7EBC + + thumb_func_start sub_80A7F30 +sub_80A7F30: @ 80A7F30 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A7F48 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + negs r0, r0 + strh r0, [r4, 0x26] +_080A7F48: + ldrh r0, [r4, 0x34] + movs r1, 0x1 + eors r0, r1 + movs r1, 0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080A7F8A + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + strh r1, [r4, 0x36] + strh r1, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + movs r1, 0x1 + eors r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080A7F90 @ =sub_80A7F94 + str r0, [r4, 0x1C] +_080A7F8A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A7F90: .4byte sub_80A7F94 + thumb_func_end sub_80A7F30 + + thumb_func_start sub_80A7F94 +sub_80A7F94: @ 80A7F94 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080A7FA8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A7FA8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7F94 + + thumb_func_start sub_80A7FB0 +sub_80A7FB0: @ 80A7FB0 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80758E0 + adds r0, r4, 0 + movs r1, 0xD0 + movs r2, 0xD0 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, _080A8008 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0 + bl sub_8075B48 + ldr r1, _080A800C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x50 + strh r1, [r0, 0x8] + ldr r1, _080A8010 @ =sub_80A8014 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8008: .4byte gSprites +_080A800C: .4byte gTasks +_080A8010: .4byte sub_80A8014 + thumb_func_end sub_80A7FB0 + + thumb_func_start sub_80A8014 +sub_80A8014: @ 80A8014 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A806C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080A8064 + movs r0, 0x1 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8075980 + ldr r1, _080A8070 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0x1 + bl sub_8075B48 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A8064: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A806C: .4byte gTasks +_080A8070: .4byte gSprites + thumb_func_end sub_80A8014 + + thumb_func_start sub_80A8074 +sub_80A8074: @ 80A8074 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A80C0 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x8] + movs r1, 0 + bl sub_80758E0 + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x10] + strh r5, [r4, 0x12] + strh r5, [r4, 0x14] + ldr r0, _080A80C4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x16] + ldr r0, _080A80C8 @ =sub_80A80CC + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A80C0: .4byte gTasks +_080A80C4: .4byte gBattleAnimAttacker +_080A80C8: .4byte sub_80A80CC + thumb_func_end sub_80A8074 + + thumb_func_start sub_80A80CC +sub_80A80CC: @ 80A80CC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A80F0 @ =gTasks + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080A80E6 + b _080A81F6 +_080A80E6: + lsls r0, 2 + ldr r1, _080A80F4 @ =_080A80F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A80F0: .4byte gTasks +_080A80F4: .4byte _080A80F8 + .align 2, 0 +_080A80F8: + .4byte _080A8110 + .4byte _080A8158 + .4byte _080A818E + .4byte _080A8194 + .4byte _080A81A4 + .4byte _080A81D8 +_080A8110: + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080A8120 + cmp r0, 0x3 + beq _080A8120 + cmp r0, 0x6 + bne _080A8128 +_080A8120: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A8200 +_080A8128: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + adds r0, 0x28 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r1, 0x10 + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8076440 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _080A81F6 + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + b _080A81D0 +_080A8158: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A81F6 + movs r2, 0x12 + ldrsh r1, [r4, r2] + cmp r1, 0x3 + bne _080A816E + strh r0, [r4, 0xC] + strh r1, [r4, 0xA] + b _080A81F6 +_080A816E: + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r2, 0x80 + lsls r2, 1 + strh r2, [r4, 0x10] + ldrb r0, [r4, 0x8] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8076440 + movs r0, 0x2 + strh r0, [r4, 0xA] + b _080A81F6 +_080A818E: + movs r0, 0 + strh r0, [r4, 0xA] + b _080A81F6 +_080A8194: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _080A81F6 + b _080A81CC +_080A81A4: + ldrh r0, [r4, 0xC] + adds r0, 0x2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + subs r0, 0x50 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r1, 0x10 + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8076440 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _080A81F6 +_080A81CC: + movs r0, 0 + strh r0, [r4, 0xC] +_080A81D0: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080A81F6 +_080A81D8: + ldrb r0, [r4, 0x8] + bl sub_8075980 + ldr r2, _080A81FC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x26] + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A81F6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A81FC: .4byte gSprites + thumb_func_end sub_80A80CC + + thumb_func_start sub_80A8200 +sub_80A8200: @ 80A8200 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r0, 16 + asrs r4, r0, 16 + cmp r4, 0 + blt _080A82DA + bl AllocOamMatrix + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xFF + bne _080A8244 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _080A8240 @ =gSprites + adds r0, r1 + bl obj_delete_but_dont_free_vram + b _080A82DA + .align 2, 0 +_080A8240: .4byte gSprites +_080A8244: + ldr r5, _080A82E8 @ =gSprites + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r4, r3, r5 + ldrb r1, [r4, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x1F + ands r6, r0 + lsls r2, r6, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + ldrb r0, [r7, 0x16] + ldrb r1, [r7, 0xE] + subs r0, r1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r7, 0xE] + adds r0, 0x1 + strh r0, [r7, 0xE] + ldrh r0, [r7, 0x14] + adds r0, 0x1 + strh r0, [r7, 0x14] + movs r0, 0x10 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + movs r0, 0x6 + strh r0, [r4, 0x32] + adds r5, 0x1C + adds r3, r5 + ldr r0, _080A82EC @ =sub_80A82F0 + str r0, [r3] + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + movs r1, 0x10 + ldrsh r2, [r7, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x1] + movs r3, 0x4 + negs r3, r3 + ands r3, r0 + movs r0, 0x1 + orrs r3, r0 + strb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec +_080A82DA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A82E8: .4byte gSprites +_080A82EC: .4byte sub_80A82F0 + thumb_func_end sub_80A8200 + + thumb_func_start sub_80A82F0 +sub_80A82F0: @ 80A82F0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080A832E + ldr r3, _080A8334 @ =gTasks + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl obj_delete_but_dont_free_vram +_080A832E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8334: .4byte gTasks + thumb_func_end sub_80A82F0 + + thumb_func_start sub_80A8338 +sub_80A8338: @ 80A8338 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080A835C @ =gTasks + adds r4, r0, r1 + ldr r5, _080A8360 @ =gBattleAnimArgs + movs r1, 0x2 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A8364 + adds r0, r2, 0 + bl DestroyAnimVisualTask + b _080A838A + .align 2, 0 +_080A835C: .4byte gTasks +_080A8360: .4byte gBattleAnimArgs +_080A8364: + ldrb r0, [r5] + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + strh r1, [r4, 0x8] + strh r2, [r4, 0xA] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0xC] + strh r2, [r4, 0xE] + strh r2, [r4, 0x10] + ldr r2, _080A8390 @ =gUnknown_83E3E60 + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080A8394 @ =sub_80A8398 + str r0, [r4] +_080A838A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8390: .4byte gUnknown_83E3E60 +_080A8394: .4byte sub_80A8398 + thumb_func_end sub_80A8338 + + thumb_func_start sub_80A8398 +sub_80A8398: @ 80A8398 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080A83BC @ =gTasks + adds r4, r0, r1 + movs r0, 0xA + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080A8400 + cmp r5, 0x1 + bgt _080A83C0 + cmp r5, 0 + beq _080A83CA + b _080A84A8 + .align 2, 0 +_080A83BC: .4byte gTasks +_080A83C0: + cmp r5, 0x2 + beq _080A8434 + cmp r5, 0x3 + beq _080A8464 + b _080A84A8 +_080A83CA: + adds r0, r4, 0 + bl sub_8076308 + ldrh r2, [r4, 0x10] + adds r2, 0x3 + strh r2, [r4, 0x10] + ldr r3, _080A83FC @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080A84A8 + strh r5, [r4, 0xE] + b _080A845C + .align 2, 0 +_080A83FC: .4byte gSprites +_080A8400: + adds r0, r4, 0 + bl sub_8076308 + ldr r2, _080A8430 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + ldrh r2, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080A84A8 + movs r0, 0 + strh r0, [r4, 0xE] + b _080A845C + .align 2, 0 +_080A8430: .4byte gSprites +_080A8434: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A845C + ldr r2, _080A8458 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0x10] + subs r0, 0x2 + strh r0, [r4, 0x10] + b _080A84A8 + .align 2, 0 +_080A8458: .4byte gSprites +_080A845C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080A84A8 +_080A8464: + adds r0, r4, 0 + bl sub_8076308 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080A84A8 + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _080A849C + ldr r2, _080A8498 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x26] + adds r0, r6, 0 + bl DestroyAnimVisualTask + b _080A84A8 + .align 2, 0 +_080A8498: .4byte gSprites +_080A849C: + ldrb r1, [r4, 0x8] + ldr r2, _080A84B0 @ =gUnknown_83E3E60 + adds r0, r4, 0 + bl sub_80762D0 + strh r5, [r4, 0xA] +_080A84A8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A84B0: .4byte gUnknown_83E3E60 + thumb_func_end sub_80A8398 + + thumb_func_start sub_80A84B4 +sub_80A84B4: @ 80A84B4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A84E4 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080A84E8 @ =gUnknown_83E3E80 + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080A84EC @ =sub_80A84F0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A84E4: .4byte gTasks +_080A84E8: .4byte gUnknown_83E3E80 +_080A84EC: .4byte sub_80A84F0 + thumb_func_end sub_80A84B4 + + thumb_func_start sub_80A84F0 +sub_80A84F0: @ 80A84F0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A8518 @ =gTasks + adds r0, r1 + bl sub_8076308 + lsls r0, 24 + cmp r0, 0 + bne _080A8510 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A8510: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8518: .4byte gTasks + thumb_func_end sub_80A84F0 + + thumb_func_start sub_80A851C +sub_80A851C: @ 80A851C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080A854C @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A8550 + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r4, 0x20] + movs r0, 0x40 + b _080A856A + .align 2, 0 +_080A854C: .4byte gBattleAnimAttacker +_080A8550: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x20 + strh r0, [r4, 0x20] + ldr r0, _080A859C @ =0x0000ffc0 +_080A856A: + strh r0, [r4, 0x30] + ldr r0, _080A85A0 @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4, 0x22] + movs r0, 0x34 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x32] + strh r1, [r4, 0x34] + strh r1, [r4, 0x36] + ldr r1, _080A85A4 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A85A8 @ =sub_8074D00 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A859C: .4byte 0x0000ffc0 +_080A85A0: .4byte gBattleAnimAttacker +_080A85A4: .4byte DestroyAnimSprite +_080A85A8: .4byte sub_8074D00 + thumb_func_end sub_80A851C + + thumb_func_start sub_80A85AC +sub_80A85AC: @ 80A85AC + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080A85C0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A85C8 + ldr r0, _080A85C4 @ =gBattleAnimAttacker + b _080A85CA + .align 2, 0 +_080A85C0: .4byte gBattleAnimArgs +_080A85C4: .4byte gBattleAnimAttacker +_080A85C8: + ldr r0, _080A8628 @ =gBattleAnimTarget +_080A85CA: + ldrb r5, [r0] + adds r0, r5, 0 + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A85E4 + ldr r1, _080A862C @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080A85E4: + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A862C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x4] + adds r0, r4 + strh r0, [r6, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bgt _080A8616 + movs r0, 0x8 + strh r0, [r6, 0x22] +_080A8616: + ldr r1, _080A8630 @ =move_anim_8074EE0 + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080A8634 @ =sub_8074F50 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8628: .4byte gBattleAnimTarget +_080A862C: .4byte gBattleAnimArgs +_080A8630: .4byte move_anim_8074EE0 +_080A8634: .4byte sub_8074F50 + thumb_func_end sub_80A85AC + + thumb_func_start sub_80A8638 +sub_80A8638: @ 80A8638 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A866C @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + strh r1, [r4, 0x8] + strh r0, [r4, 0xA] + ldr r2, _080A8670 @ =gUnknown_83E3F1C + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080A8674 @ =sub_80A8678 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A866C: .4byte gTasks +_080A8670: .4byte gUnknown_83E3F1C +_080A8674: .4byte sub_80A8678 + thumb_func_end sub_80A8638 + + thumb_func_start sub_80A8678 +sub_80A8678: @ 80A8678 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A86A0 @ =gTasks + adds r0, r1 + bl sub_8076308 + lsls r0, 24 + cmp r0, 0 + bne _080A8698 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A8698: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A86A0: .4byte gTasks + thumb_func_end sub_80A8678 + + thumb_func_start sub_80A86A4 +sub_80A86A4: @ 80A86A4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A8718 @ =gTasks + adds r4, r1, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + strh r0, [r4, 0x8] + strh r2, [r4, 0xA] + movs r0, 0x4 + strh r0, [r4, 0xC] + movs r0, 0x7 + strh r0, [r4, 0xE] + movs r0, 0x3 + strh r0, [r4, 0x10] + ldr r3, _080A871C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x20] + strh r0, [r4, 0x12] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x14] + strh r2, [r4, 0x16] + strh r2, [r4, 0x18] + movs r0, 0x2 + strh r0, [r4, 0x1A] + ldr r0, _080A8720 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A870E + movs r1, 0xC + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0xC] +_080A870E: + ldr r0, _080A8724 @ =sub_80A8728 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8718: .4byte gTasks +_080A871C: .4byte gSprites +_080A8720: .4byte gBattleAnimAttacker +_080A8724: .4byte sub_80A8728 + thumb_func_end sub_80A86A4 + + thumb_func_start sub_80A8728 +sub_80A8728: @ 80A8728 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A8770 @ =gTasks + adds r3, r0, r1 + ldrh r0, [r3, 0x16] + adds r0, 0x1 + strh r0, [r3, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080A878E + movs r0, 0 + strh r0, [r3, 0x16] + ldrh r0, [r3, 0x18] + adds r0, 0x1 + strh r0, [r3, 0x18] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A8778 + ldr r2, _080A8774 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x1A] + ldrh r2, [r0, 0x22] + adds r1, r2 + b _080A878C + .align 2, 0 +_080A8770: .4byte gTasks +_080A8774: .4byte gSprites +_080A8778: + ldr r2, _080A87A0 @ =gSprites + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + ldrh r2, [r3, 0x1A] + subs r1, r2 +_080A878C: + strh r1, [r0, 0x22] +_080A878E: + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _080A87DC + cmp r0, 0x1 + bgt _080A87A4 + cmp r0, 0 + beq _080A87AA + b _080A886C + .align 2, 0 +_080A87A0: .4byte gSprites +_080A87A4: + cmp r0, 0x2 + beq _080A880C + b _080A886C +_080A87AA: + ldr r2, _080A87D8 @ =gSprites + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0xC] + ldrh r2, [r0, 0x20] + adds r1, r2 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080A886C + movs r0, 0xE + strh r0, [r3, 0xE] + movs r0, 0x1 + strh r0, [r3, 0xA] + b _080A886C + .align 2, 0 +_080A87D8: .4byte gSprites +_080A87DC: + ldr r2, _080A8808 @ =gSprites + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + ldrh r2, [r3, 0xC] + subs r1, r2 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080A886C + movs r0, 0x7 + strh r0, [r3, 0xE] + movs r0, 0x2 + strh r0, [r3, 0xA] + b _080A886C + .align 2, 0 +_080A8808: .4byte gSprites +_080A880C: + ldr r2, _080A8844 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0xC] + ldrh r5, [r0, 0x20] + adds r1, r5 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + bne _080A886C + ldrh r0, [r3, 0x10] + subs r0, 0x1 + strh r0, [r3, 0x10] + lsls r0, 16 + cmp r0, 0 + beq _080A8848 + movs r0, 0x7 + strh r0, [r3, 0xE] + strh r1, [r3, 0xA] + b _080A886C + .align 2, 0 +_080A8844: .4byte gSprites +_080A8848: + ldrh r1, [r3, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A8866 + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + ldrh r2, [r3, 0x1A] + subs r1, r2 + strh r1, [r0, 0x22] +_080A8866: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A886C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A8728 + + thumb_func_start sub_80A8874 +sub_80A8874: @ 80A8874 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A88C4 @ =gTasks + adds r5, r1, r0 + ldr r4, _080A88C8 @ =gBattleAnimTarget + ldrb r0, [r4] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + movs r1, 0 + strh r0, [r5, 0x8] + movs r0, 0x4 + strh r0, [r5, 0xA] + strh r1, [r5, 0xC] + strh r1, [r5, 0xE] + strh r1, [r5, 0x10] + strh r1, [r5, 0x12] + ldrb r0, [r4] + bl sub_8076B2C + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A88D4 + ldr r0, _080A88CC @ =gBattle_BG1_X + ldrh r0, [r0] + strh r0, [r5, 0x14] + ldr r0, _080A88D0 @ =0x04000014 + b _080A88DC + .align 2, 0 +_080A88C4: .4byte gTasks +_080A88C8: .4byte gBattleAnimTarget +_080A88CC: .4byte gBattle_BG1_X +_080A88D0: .4byte 0x04000014 +_080A88D4: + ldr r0, _080A8940 @ =gBattle_BG2_X + ldrh r0, [r0] + strh r0, [r5, 0x14] + ldr r0, _080A8944 @ =0x04000018 +_080A88DC: + str r0, [sp] + ldrh r0, [r5, 0x8] + adds r1, r0, 0 + subs r1, 0x40 + lsls r2, r1, 16 + lsls r0, 16 + cmp r2, r0 + bgt _080A891A + ldr r4, _080A8948 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r4, r0 +_080A88F4: + asrs r3, r2, 16 + cmp r3, 0 + blt _080A890C + lsls r1, r3, 1 + adds r2, r1, r4 + ldrh r0, [r5, 0x14] + adds r0, 0xF0 + strh r0, [r2] + adds r1, r6 + ldrh r0, [r5, 0x14] + adds r0, 0xF0 + strh r0, [r1] +_080A890C: + adds r0, r3, 0x1 + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r3, 0x8 + ldrsh r0, [r5, r3] + cmp r1, r0 + ble _080A88F4 +_080A891A: + ldr r0, _080A894C @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + ldr r0, _080A8950 @ =sub_80A8954 + str r0, [r5] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8940: .4byte gBattle_BG2_X +_080A8944: .4byte 0x04000018 +_080A8948: .4byte gScanlineEffectRegBuffers +_080A894C: .4byte 0xa2600001 +_080A8950: .4byte sub_80A8954 + thumb_func_end sub_80A8874 + + thumb_func_start sub_80A8954 +sub_80A8954: @ 80A8954 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080A8974 @ =gTasks + adds r3, r0, r1 + movs r1, 0x10 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080A8978 + cmp r0, 0x1 + beq _080A898E + b _080A8A0E + .align 2, 0 +_080A8974: .4byte gTasks +_080A8978: + ldrh r0, [r3, 0x12] + adds r0, 0x1 + strh r0, [r3, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080A8A0E + ldrh r0, [r3, 0x10] + adds r0, 0x1 + strh r0, [r3, 0x10] + b _080A8A0E +_080A898E: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A8A0E + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r1, [r3, 0xE] + movs r0, 0x3 + ands r0, r1 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x8] + subs r0, r1 + strh r0, [r3, 0x12] + movs r2, 0xC + ldrsh r1, [r3, r2] + cmp r1, 0x1 + beq _080A89C4 + cmp r1, 0x1 + ble _080A89CC + cmp r1, 0x2 + beq _080A89C8 + cmp r1, 0x3 + beq _080A89C8 + b _080A89CC +_080A89C4: + subs r0, 0x2 + b _080A89CA +_080A89C8: + adds r0, 0x1 +_080A89CA: + strh r0, [r3, 0x12] +_080A89CC: + movs r1, 0x12 + ldrsh r0, [r3, r1] + cmp r0, 0 + blt _080A89F0 + ldr r2, _080A8A14 @ =gScanlineEffectRegBuffers + lsls r0, 1 + adds r0, r2 + ldrh r1, [r3, 0x14] + strh r1, [r0] + movs r1, 0x12 + ldrsh r0, [r3, r1] + lsls r0, 1 + movs r1, 0xF0 + lsls r1, 3 + adds r2, r1 + adds r0, r2 + ldrh r1, [r3, 0x14] + strh r1, [r0] +_080A89F0: + ldrh r0, [r3, 0xE] + adds r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x26 + ldrsh r1, [r3, r2] + cmp r0, r1 + blt _080A8A0E + ldr r1, _080A8A18 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A8A0E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8A14: .4byte gScanlineEffectRegBuffers +_080A8A18: .4byte gScanlineEffect + thumb_func_end sub_80A8954 + + thumb_func_start sub_80A8A1C +sub_80A8A1C: @ 80A8A1C + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080A8A70 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + movs r0, 0x10 + strh r0, [r4, 0x34] + strh r5, [r4, 0x36] + ldrb r0, [r6] + movs r1, 0 + bl sub_8076B2C + adds r0, 0x2 + strh r0, [r4, 0x38] + movs r0, 0x3F + bl sub_8073A44 + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x3A] + ldr r0, _080A8A74 @ =sub_80A8A78 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A8A70: .4byte gBattleAnimTarget +_080A8A74: .4byte sub_80A8A78 + thumb_func_end sub_80A8A1C + + thumb_func_start sub_80A8A78 +sub_80A8A78: @ 80A8A78 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080A8ADC + cmp r1, 0x1 + bgt _080A8A8E + cmp r1, 0 + beq _080A8A94 + b _080A8BBC +_080A8A8E: + cmp r1, 0x2 + beq _080A8B6E + b _080A8BBC +_080A8A94: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A8ABE + strh r1, [r4, 0x32] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080A8ABE: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080A8BBC + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + b _080A8B66 +_080A8ADC: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A8B22 + ldrh r2, [r4, 0x32] + movs r3, 0x32 + ldrsh r1, [r4, r3] + movs r3, 0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080A8B22 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + subs r0, 0x1 + strh r0, [r4, 0x22] + adds r0, r2, 0x1 + strh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080A8B22 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xC6 + bl PlaySE12WithPanning +_080A8B22: + ldrh r0, [r4, 0x34] + ldrh r2, [r4, 0x36] + adds r1, r0, r2 + strh r1, [r4, 0x36] + lsls r0, r1, 16 + asrs r2, r0, 16 + cmp r2, 0x1F + ble _080A8B36 + movs r0, 0x40 + b _080A8B44 +_080A8B36: + movs r0, 0x20 + negs r0, r0 + cmp r2, r0 + bgt _080A8B50 + movs r2, 0x40 + negs r2, r2 + adds r0, r2, 0 +_080A8B44: + subs r0, r1 + strh r0, [r4, 0x36] + movs r3, 0x34 + ldrsh r0, [r4, r3] + negs r0, r0 + strh r0, [r4, 0x34] +_080A8B50: + ldrh r0, [r4, 0x36] + movs r2, 0 + strh r0, [r4, 0x24] + movs r0, 0x38 + ldrsh r1, [r4, r0] + movs r3, 0x32 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080A8BBC + strh r2, [r4, 0x30] + strh r2, [r4, 0x32] +_080A8B66: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080A8BBC +_080A8B6E: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A8B9A + movs r0, 0 + strh r0, [r4, 0x32] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080A8B9A: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080A8BBC + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + bl DestroyAnimSprite +_080A8BBC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A8A78 + + thumb_func_start sub_80A8BC4 +sub_80A8BC4: @ 80A8BC4 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + movs r5, 0 + mov r0, sp + strh r5, [r0] + mov r1, sp + adds r1, 0x2 + strh r5, [r1] + ldr r0, _080A8BE8 @ =gBattleAnimArgs + movs r3, 0x4 + ldrsh r2, [r0, r3] + adds r7, r1, 0 + adds r1, r0, 0 + cmp r2, 0 + bne _080A8BF0 + ldr r0, _080A8BEC @ =gBattleAnimAttacker + b _080A8BF2 + .align 2, 0 +_080A8BE8: .4byte gBattleAnimArgs +_080A8BEC: .4byte gBattleAnimAttacker +_080A8BF0: + ldr r0, _080A8C2C @ =gBattleAnimTarget +_080A8BF2: + ldrb r5, [r0] + ldrb r1, [r1, 0x6] + movs r0, 0x1 + adds r4, r0, 0 + eors r4, r1 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080A8C6A + movs r1, 0x2 + adds r0, r5, 0 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A8C6A + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, sp + adds r3, r7, 0 + bl sub_8076D9C + cmp r4, 0 + bne _080A8C30 + adds r0, r5, 0 + movs r1, 0 + b _080A8C34 + .align 2, 0 +_080A8C2C: .4byte gBattleAnimTarget +_080A8C30: + adds r0, r5, 0 + movs r1, 0x2 +_080A8C34: + bl sub_8074480 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A8C60 + ldr r2, _080A8C5C @ =gBattleAnimArgs + mov r0, sp + ldrh r1, [r0] + subs r1, r4 + ldrh r0, [r2] + subs r1, r0 + subs r0, r1 + strh r0, [r2] + b _080A8C6A + .align 2, 0 +_080A8C5C: .4byte gBattleAnimArgs +_080A8C60: + ldr r1, _080A8C7C @ =gBattleAnimArgs + mov r0, sp + ldrh r0, [r0] + subs r0, r4 + strh r0, [r1] +_080A8C6A: + ldr r1, _080A8C80 @ =sub_8075D9C + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A8C7C: .4byte gBattleAnimArgs +_080A8C80: .4byte sub_8075D9C + thumb_func_end sub_80A8BC4 + + thumb_func_start sub_80A8C84 +sub_80A8C84: @ 80A8C84 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080A8C9E + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroyAnimSprite +_080A8C9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A8C84 + + thumb_func_start sub_80A8CA4 +sub_80A8CA4: @ 80A8CA4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r0, 0 + movs r6, 0 + mov r0, sp + strh r6, [r0] + mov r1, sp + adds r1, 0x2 + strh r6, [r1] + ldr r0, _080A8CD0 @ =gBattleAnimArgs + movs r2, 0xA + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080A8CDC + ldr r0, _080A8CD4 @ =gBattleAnimAttacker + ldrb r7, [r0] + ldr r0, _080A8CD8 @ =gBattleAnimTarget + b _080A8CE2 + .align 2, 0 +_080A8CD0: .4byte gBattleAnimArgs +_080A8CD4: .4byte gBattleAnimAttacker +_080A8CD8: .4byte gBattleAnimTarget +_080A8CDC: + ldr r0, _080A8CFC @ =gBattleAnimTarget + ldrb r7, [r0] + ldr r0, _080A8D00 @ =gBattleAnimAttacker +_080A8CE2: + ldrb r0, [r0] + mov r8, r0 + ldr r0, _080A8D04 @ =gBattleAnimArgs + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080A8D08 + movs r0, 0 + mov r10, r0 + movs r1, 0x1 + str r1, [sp, 0x4] + b _080A8D10 + .align 2, 0 +_080A8CFC: .4byte gBattleAnimTarget +_080A8D00: .4byte gBattleAnimAttacker +_080A8D04: .4byte gBattleAnimArgs +_080A8D08: + movs r2, 0x2 + mov r10, r2 + movs r3, 0x3 + str r3, [sp, 0x4] +_080A8D10: + adds r0, r7, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A8D6C + adds r0, r7, 0 + mov r1, r10 + bl sub_8074480 + lsls r0, 24 + ldr r1, _080A8D50 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r0, 0x2 + mov r4, r8 + eors r4, r0 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A8D5C + ldr r2, _080A8D54 @ =gSprites + ldr r0, _080A8D58 @ =gBattlerSpriteIds + adds r0, r4, r0 + b _080A8DEA + .align 2, 0 +_080A8D50: .4byte gBattleAnimArgs +_080A8D54: .4byte gSprites +_080A8D58: .4byte gBattlerSpriteIds +_080A8D5C: + ldr r2, _080A8D64 @ =gSprites + ldr r0, _080A8D68 @ =gBattlerSpriteIds + add r0, r8 + b _080A8DEA + .align 2, 0 +_080A8D64: .4byte gSprites +_080A8D68: .4byte gBattlerSpriteIds +_080A8D6C: + adds r0, r7, 0 + mov r1, r10 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080A8DD4 @ =gBattleAnimArgs + ldrh r1, [r1] + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A8DE4 + movs r0, 0x2 + adds r4, r7, 0 + eors r4, r0 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A8DE4 + ldr r3, _080A8DD8 @ =gSprites + ldr r2, _080A8DDC @ =gBattlerSpriteIds + adds r0, r7, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r6, r0, r3 + adds r2, r4, r2 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r3 + movs r0, 0x20 + ldrsh r1, [r6, r0] + movs r3, 0x20 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080A8DE0 + adds r0, r2, 0 + adds r0, 0x43 + ldrb r0, [r0] + adds r0, 0x1 + b _080A8DFA + .align 2, 0 +_080A8DD4: .4byte gBattleAnimArgs +_080A8DD8: .4byte gSprites +_080A8DDC: .4byte gBattlerSpriteIds +_080A8DE0: + adds r0, r6, 0 + b _080A8DF4 +_080A8DE4: + ldr r2, _080A8E40 @ =gSprites + ldr r0, _080A8E44 @ =gBattlerSpriteIds + adds r0, r7, r0 +_080A8DEA: + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 +_080A8DF4: + adds r0, 0x43 + ldrb r0, [r0] + subs r0, 0x1 +_080A8DFA: + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] + adds r0, r7, 0 + ldr r1, [sp, 0x4] + bl sub_8074480 + lsls r0, 24 + ldr r4, _080A8E48 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A8E4C + movs r1, 0x2 + mov r0, r8 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A8E4C + ldrb r1, [r4, 0xC] + mov r0, r8 + mov r2, sp + mov r3, sp + adds r3, 0x2 + bl sub_8076D9C + b _080A8E6C + .align 2, 0 +_080A8E40: .4byte gSprites +_080A8E44: .4byte gBattlerSpriteIds +_080A8E48: .4byte gBattleAnimArgs +_080A8E4C: + mov r4, sp + mov r0, r8 + mov r1, r10 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + mov r0, r8 + ldr r1, [sp, 0x4] + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r2, sp + strh r0, [r2, 0x2] +_080A8E6C: + mov r0, r8 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A8E90 + mov r3, sp + mov r2, sp + ldr r1, _080A8E8C @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + ldrh r2, [r2] + adds r0, r2 + strh r0, [r3] + adds r2, r1, 0 + b _080A8E9E + .align 2, 0 +_080A8E8C: .4byte gBattleAnimArgs +_080A8E90: + mov r3, sp + mov r0, sp + ldr r2, _080A8EE0 @ =gBattleAnimArgs + ldrh r0, [r0] + ldrh r1, [r2, 0x6] + subs r0, r1 + strh r0, [r3] +_080A8E9E: + ldrh r1, [r2, 0x8] + mov r3, sp + ldrh r3, [r3, 0x2] + adds r1, r3 + mov r0, sp + strh r1, [r0, 0x2] + mov r3, r9 + strh r3, [r5, 0x30] + strh r3, [r5, 0x20] + strh r6, [r5, 0x34] + strh r6, [r5, 0x22] + ldrh r0, [r0] + strh r0, [r5, 0x32] + strh r1, [r5, 0x36] + ldrh r0, [r2] + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080A8EE4 @ =sub_80A8C84 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + 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 +_080A8EE0: .4byte gBattleAnimArgs +_080A8EE4: .4byte sub_80A8C84 + thumb_func_end sub_80A8CA4 + + thumb_func_start sub_80A8EE8 +sub_80A8EE8: @ 80A8EE8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080A8F28 @ =0x000027db + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080A8F0E + lsls r0, 20 + ldr r1, _080A8F2C @ =0x01010000 + adds r0, r1 + lsrs r0, 16 + ldr r1, _080A8F30 @ =gBattleAnimArgs + ldrb r2, [r1, 0xA] + ldrh r3, [r1, 0x8] + movs r1, 0xF + bl BlendPalette +_080A8F0E: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080A8F34 @ =sub_8075D9C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8F28: .4byte 0x000027db +_080A8F2C: .4byte 0x01010000 +_080A8F30: .4byte gBattleAnimArgs +_080A8F34: .4byte sub_8075D9C + thumb_func_end sub_80A8EE8 + + thumb_func_start sub_80A8F38 +sub_80A8F38: @ 80A8F38 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r0, _080A8F6C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + movs r1, 0xA0 + cmp r0, 0 + beq _080A8F54 + ldr r1, _080A8F70 @ =0x0000ff60 +_080A8F54: + movs r0, 0xE0 + lsls r0, 2 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + ldr r0, _080A8F74 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x3C] + ldr r0, _080A8F78 @ =sub_80A8F7C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A8F6C: .4byte gBattleAnimAttacker +_080A8F70: .4byte 0x0000ff60 +_080A8F74: .4byte gBattleAnimArgs +_080A8F78: .4byte sub_80A8F7C + thumb_func_end sub_80A8F38 + + thumb_func_start sub_80A8F7C +sub_80A8F7C: @ 80A8F7C + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + subs r1, r0 + movs r5, 0 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + subs r2, 0x20 + strh r2, [r4, 0x2E] + ldr r0, _080A8FE8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + movs r1, 0xA0 + cmp r0, 0 + beq _080A8FAC + ldr r1, _080A8FEC @ =0x0000ff60 +_080A8FAC: + lsls r0, r1, 16 + asrs r0, 16 + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x26] + movs r2, 0x26 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A8FE0 + ldrh r2, [r4, 0x22] + adds r0, r1, r2 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x26] + strh r5, [r4, 0x24] + strh r5, [r4, 0x2E] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _080A8FF0 @ =sub_80A8FF4 + str r0, [r4, 0x1C] +_080A8FE0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A8FE8: .4byte gBattleAnimAttacker +_080A8FEC: .4byte 0x0000ff60 +_080A8FF0: .4byte sub_80A8FF4 + thumb_func_end sub_80A8F7C + + thumb_func_start sub_80A8FF4 +sub_80A8FF4: @ 80A8FF4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080A9012 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080A9018 @ =sub_80A901C + str r0, [r4, 0x1C] +_080A9012: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9018: .4byte sub_80A901C + thumb_func_end sub_80A8FF4 + + thumb_func_start sub_80A901C +sub_80A901C: @ 80A901C + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A9082 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r0, 0 + strh r0, [r4, 0x2E] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A9068 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x10 + ldr r3, _080A905C @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080A9060 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r0, _080A9064 @ =sub_80A9094 + b _080A9080 + .align 2, 0 +_080A905C: .4byte 0x000003ff +_080A9060: .4byte 0xfffffc00 +_080A9064: .4byte sub_80A9094 +_080A9068: + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r3, _080A9088 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080A908C @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r0, _080A9090 @ =sub_80A911C +_080A9080: + str r0, [r4, 0x1C] +_080A9082: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9088: .4byte 0x000003ff +_080A908C: .4byte 0xfffffc00 +_080A9090: .4byte sub_80A911C + thumb_func_end sub_80A901C + + thumb_func_start sub_80A9094 +sub_80A9094: @ 80A9094 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x26] + subs r0, 0x2 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bne _080A90CA + movs r0, 0x10 + strh r0, [r4, 0x2E] + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r4, 0x2E] + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080A90D0 @ =sub_80A90D4 + str r0, [r4, 0x1C] +_080A90CA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A90D0: .4byte sub_80A90D4 + thumb_func_end sub_80A9094 + + thumb_func_start sub_80A90D4 +sub_80A90D4: @ 80A90D4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080A9112 + ldrh r1, [r4, 0x2E] + subs r1, 0x1 + strh r1, [r4, 0x2E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A9112 + ldr r0, _080A9118 @ =sub_80A911C + str r0, [r4, 0x1C] +_080A9112: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9118: .4byte sub_80A911C + thumb_func_end sub_80A90D4 + + thumb_func_start sub_80A911C +sub_80A911C: @ 80A911C + push {lr} + adds r3, r0, 0 + ldr r0, _080A9144 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080A9148 @ =0x0000ffff + cmp r1, r0 + bne _080A9154 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r1, 0x3C + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080A9150 + ldr r0, _080A914C @ =sub_80A915C + b _080A9152 + .align 2, 0 +_080A9144: .4byte gBattleAnimArgs +_080A9148: .4byte 0x0000ffff +_080A914C: .4byte sub_80A915C +_080A9150: + ldr r0, _080A9158 @ =DestroyAnimSprite +_080A9152: + str r0, [r3, 0x1C] +_080A9154: + pop {r0} + bx r0 + .align 2, 0 +_080A9158: .4byte DestroyAnimSprite + thumb_func_end sub_80A911C + + thumb_func_start sub_80A915C +sub_80A915C: @ 80A915C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A915C + + thumb_func_start sub_80A917C +sub_80A917C: @ 80A917C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A91AC @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + strh r1, [r4, 0x8] + ldr r2, _080A91B0 @ =gUnknown_83E4128 + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080A91B4 @ =sub_80A91B8 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A91AC: .4byte gTasks +_080A91B0: .4byte gUnknown_83E4128 +_080A91B4: .4byte sub_80A91B8 + thumb_func_end sub_80A917C + + thumb_func_start sub_80A91B8 +sub_80A91B8: @ 80A91B8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A9208 @ =gTasks + adds r4, r0, r1 + adds r0, r4, 0 + bl sub_8076308 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080A9202 + ldr r2, _080A920C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A9202: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9208: .4byte gTasks +_080A920C: .4byte gSprites + thumb_func_end sub_80A91B8 + + thumb_func_start sub_80A9210 +sub_80A9210: @ 80A9210 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080A9244 @ =gTasks + adds r4, r1, r0 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r0, 0x3 + strh r0, [r4, 0x20] + ldr r0, _080A9248 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080A9250 + ldr r0, _080A924C @ =0x0000ffff + strh r0, [r4, 0x22] + movs r0, 0x8 + b _080A9256 + .align 2, 0 +_080A9244: .4byte gTasks +_080A9248: .4byte gBattleAnimTarget +_080A924C: .4byte 0x0000ffff +_080A9250: + movs r0, 0x1 + strh r0, [r4, 0x22] + ldr r0, _080A9270 @ =0x0000fff8 +_080A9256: + strh r0, [r4, 0x24] + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080A9274 @ =sub_80A9278 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9270: .4byte 0x0000fff8 +_080A9274: .4byte sub_80A9278 + thumb_func_end sub_80A9210 + + thumb_func_start sub_80A9278 +sub_80A9278: @ 80A9278 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A929C @ =gTasks + adds r3, r0, r1 + movs r0, 0x8 + ldrsh r4, [r3, r0] + cmp r4, 0x1 + beq _080A92CC + cmp r4, 0x1 + bgt _080A92A0 + cmp r4, 0 + beq _080A92AA + b _080A9392 + .align 2, 0 +_080A929C: .4byte gTasks +_080A92A0: + cmp r4, 0x2 + beq _080A9348 + cmp r4, 0x3 + beq _080A9362 + b _080A9392 +_080A92AA: + ldr r2, _080A92C8 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x24] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + strh r4, [r3, 0xA] + strh r4, [r3, 0xC] + strh r4, [r3, 0xE] + b _080A935A + .align 2, 0 +_080A92C8: .4byte gSprites +_080A92CC: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A9392 + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + ands r0, r4 + lsls r0, 16 + cmp r0, 0 + beq _080A9304 + ldr r2, _080A9300 @ =gSprites + movs r4, 0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + adds r1, 0x6 + b _080A9316 + .align 2, 0 +_080A9300: .4byte gSprites +_080A9304: + ldr r2, _080A9344 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + subs r1, 0x6 +_080A9316: + strh r1, [r0, 0x24] + ldrh r0, [r3, 0xE] + adds r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080A9392 + ldrh r1, [r3, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A935A + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x24] + subs r0, 0x6 + strh r0, [r1, 0x24] + b _080A935A + .align 2, 0 +_080A9344: .4byte gSprites +_080A9348: + ldrh r0, [r3, 0x20] + subs r0, 0x1 + strh r0, [r3, 0x20] + lsls r0, 16 + cmp r0, 0 + beq _080A935A + movs r0, 0 + strh r0, [r3, 0x8] + b _080A9392 +_080A935A: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080A9392 +_080A9362: + ldr r2, _080A9398 @ =gSprites + movs r4, 0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x22] + ldrh r4, [r0, 0x24] + adds r1, r4 + strh r1, [r0, 0x24] + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A9392 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A9392: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9398: .4byte gSprites + thumb_func_end sub_80A9278 + + thumb_func_start sub_80A939C +sub_80A939C: @ 80A939C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A93D8 @ =gTasks + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r0, 0x1 + strh r0, [r4, 0x10] + movs r0, 0xE + strh r0, [r4, 0x22] + movs r0, 0x2 + strh r0, [r4, 0x24] + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080A93DC @ =sub_80A93E0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A93D8: .4byte gTasks +_080A93DC: .4byte sub_80A93E0 + thumb_func_end sub_80A939C + + thumb_func_start sub_80A93E0 +sub_80A93E0: @ 80A93E0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080A9434 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _080A94A6 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x10 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _080A94A6 + strh r2, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A943C + ldr r3, _080A9438 @ =gSprites + movs r6, 0x26 + ldrsh r1, [r4, r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + b _080A9452 + .align 2, 0 +_080A9434: .4byte gTasks +_080A9438: .4byte gSprites +_080A943C: + ldr r3, _080A9484 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 +_080A9452: + strb r1, [r0] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r6, 0x22 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080A94A6 + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + movs r6, 0x24 + ldrsh r1, [r4, r6] + cmp r0, r1 + bge _080A9488 + strh r2, [r4, 0xA] + strh r2, [r4, 0xC] + strh r2, [r4, 0xE] + b _080A94A6 + .align 2, 0 +_080A9484: .4byte gSprites +_080A9488: + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A94A6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A93E0 + + thumb_func_start sub_80A94AC +sub_80A94AC: @ 80A94AC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080A94FC @ =gTasks + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x8] + movs r1, 0x4 + strh r1, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + strh r0, [r4, 0x12] + strh r0, [r4, 0x14] + strh r0, [r4, 0x16] + strh r0, [r4, 0x18] + strh r0, [r4, 0x22] + ldr r5, _080A9500 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080A9504 @ =sub_80A9508 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A94FC: .4byte gTasks +_080A9500: .4byte gBattleAnimAttacker +_080A9504: .4byte sub_80A9508 + thumb_func_end sub_80A94AC + + thumb_func_start sub_80A9508 +sub_80A9508: @ 80A9508 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080A952C @ =gTasks + adds r4, r0, r1 + movs r0, 0x18 + ldrsh r2, [r4, r0] + cmp r2, 0x1 + beq _080A9574 + cmp r2, 0x1 + bgt _080A9530 + cmp r2, 0 + beq _080A9536 + b _080A9590 + .align 2, 0 +_080A952C: .4byte gTasks +_080A9530: + cmp r2, 0x2 + beq _080A958C + b _080A9590 +_080A9536: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080A9590 + strh r2, [r4, 0x10] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x14] + adds r0, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080A9590 + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A956E + strh r2, [r4, 0x14] + movs r0, 0x1 + strh r0, [r4, 0x18] + b _080A9590 +_080A956E: + movs r0, 0x2 + strh r0, [r4, 0x18] + b _080A9590 +_080A9574: + movs r1, 0 + strh r1, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080A9590 + strh r2, [r4, 0x16] + strh r1, [r4, 0x18] + b _080A9590 +_080A958C: + movs r0, 0x1 + strh r0, [r4, 0x12] +_080A9590: + movs r2, 0x8 + ldrsh r5, [r4, r2] + cmp r5, 0 + beq _080A959E + cmp r5, 0x1 + beq _080A9634 + b _080A9642 +_080A959E: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080A9642 + strh r5, [r4, 0xA] + ldr r0, _080A9628 @ =gUnknown_83E4154 + movs r3, 0x24 + ldrsh r1, [r4, r3] + movs r3, 0x26 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080A9642 + ldr r0, _080A962C @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + strh r6, [r1, 0x2E] + movs r0, 0xD + strh r0, [r1, 0x30] + ldr r2, _080A9630 @ =gUnknown_83E416C + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0x24] + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080A9642 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080A9642 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080A9642 + .align 2, 0 +_080A9628: .4byte gUnknown_83E4154 +_080A962C: .4byte gSprites +_080A9630: .4byte gUnknown_83E416C +_080A9634: + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A9642 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A9642: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A9508 + + thumb_func_start sub_80A9648 +sub_80A9648: @ 80A9648 + push {r4,lr} + adds r3, r0, 0 + ldr r4, _080A96B0 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r2, 0x1 + ldrb r1, [r0, 0x12] + ands r1, r2 + lsls r1, 2 + mov r0, r12 + ldrb r2, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + adds r0, r3, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A96AA + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r1, 1 + movs r0, 0x2E + ldrsh r2, [r3, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r0, r4, 0 + adds r0, 0x8 + adds r1, r0 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r3, 0 + bl DestroySprite +_080A96AA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A96B0: .4byte gTasks + thumb_func_end sub_80A9648 + + thumb_func_start sub_80A96B4 +sub_80A96B4: @ 80A96B4 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080A9750 @ =0x000027de + bl IndexOfSpritePaletteTag + mov r1, sp + strb r0, [r1] + movs r4, 0x1 + ldr r0, _080A9754 @ =0x00002710 + adds r5, r0, 0 +_080A96CC: + subs r0, r5, r4 + lsls r0, 16 + lsrs r0, 16 + bl AllocSpritePalette + mov r2, sp + adds r1, r2, r4 + strb r0, [r1] + adds r4, 0x1 + cmp r4, 0x2 + ble _080A96CC + movs r0, 0x80 + lsls r0, 6 + bl AllocZeroed + adds r1, r0, 0 + ldr r0, _080A9758 @ =gMonSpritesGfxPtr + ldr r0, [r0] + movs r2, 0xBE + lsls r2, 1 + adds r0, r2 + str r1, [r0] + ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette + bl LZDecompressWram + movs r4, 0 +_080A9700: + ldr r5, _080A9758 @ =gMonSpritesGfxPtr + ldr r0, [r5] + movs r1, 0xBE + lsls r1, 1 + adds r0, r1 + lsls r1, r4, 6 + ldr r0, [r0] + adds r0, r1 + mov r2, sp + adds r1, r2, r4 + ldrb r1, [r1] + lsls r1, 20 + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadPalette + adds r4, 0x1 + cmp r4, 0x2 + ble _080A9700 + ldr r0, [r5] + movs r4, 0xBE + lsls r4, 1 + adds r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r5] + adds r0, r4 + movs r1, 0 + str r1, [r0] + adds r0, r6, 0 + bl DestroyAnimVisualTask + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9750: .4byte 0x000027de +_080A9754: .4byte 0x00002710 +_080A9758: .4byte gMonSpritesGfxPtr +_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette + thumb_func_end sub_80A96B4 + + thumb_func_start sub_80A9760 +sub_80A9760: @ 80A9760 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _080A9784 @ =gUnknown_83E41C8 + movs r4, 0x2 +_080A976A: + ldrh r0, [r5] + bl FreeSpritePaletteByTag + adds r5, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080A976A + adds r0, r6, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9784: .4byte gUnknown_83E41C8 + thumb_func_end sub_80A9760 + + thumb_func_start sub_80A9788 +sub_80A9788: @ 80A9788 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsls r2, 24 + lsrs r3, r2, 24 + movs r0, 0x1 + ands r3, r0 + negs r0, r3 + orrs r0, r3 + asrs r0, 31 + movs r3, 0x20 + ands r0, r3 + ldrh r4, [r5, 0x4] + lsls r3, r4, 22 + lsrs r3, 22 + lsrs r1, 22 + adds r0, r1 + adds r3, r0 + ldr r1, _080A97DC @ =0x000003ff + adds r0, r1, 0 + ands r3, r0 + ldr r0, _080A97E0 @ =0xfffffc00 + ands r0, r4 + orrs r0, r3 + strh r0, [r5, 0x4] + ldr r0, _080A97E4 @ =gUnknown_83E41C8 + lsrs r2, 25 + lsls r2, 1 + adds r2, r0 + ldrh r0, [r2] + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r5, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A97DC: .4byte 0x000003ff +_080A97E0: .4byte 0xfffffc00 +_080A97E4: .4byte gUnknown_83E41C8 + thumb_func_end sub_80A9788 + + thumb_func_start sub_80A97E8 +sub_80A97E8: @ 80A97E8 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8075160 + ldr r6, _080A9850 @ =gBattleAnimAttacker + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080A9808 + ldr r1, _080A9854 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A9808: + ldr r4, _080A9854 @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldr r0, _080A9858 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080A985C @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldrb r1, [r4, 0xA] + ldrb r2, [r4, 0xC] + adds r0, r5, 0 + bl sub_80A9788 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9850: .4byte gBattleAnimAttacker +_080A9854: .4byte gBattleAnimArgs +_080A9858: .4byte sub_8075590 +_080A985C: .4byte DestroyAnimSprite + thumb_func_end sub_80A97E8 + + thumb_func_start sub_80A9860 +sub_80A9860: @ 80A9860 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A987A + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 +_080A987A: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x32] + lsls r0, r2, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x7 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + subs r2, 0x80 + strh r2, [r4, 0x32] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x3C + bne _080A98AA + adds r0, r4, 0 + bl DestroyAnimSprite +_080A98AA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A9860 + + thumb_func_start sub_80A98B0 +sub_80A98B0: @ 80A98B0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + bl sub_8073788 + lsls r0, 24 + movs r6, 0xF0 + cmp r0, 0 + beq _080A98C4 + movs r6, 0x98 +_080A98C4: + movs r5, 0 + ldr r1, _080A9918 @ =gUnknown_2022984 + strh r6, [r1] + ldr r4, _080A991C @ =gUnknown_2022986 + movs r0, 0xA0 + strh r0, [r4] + ldrh r1, [r1] + movs r0, 0x40 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x44 + bl SetGpuReg + ldr r1, _080A9920 @ =0x00003f1f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080A9924 @ =0x00003f3f + movs r0, 0x4A + bl SetGpuReg + movs r0, 0x50 + movs r1, 0xC8 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0x10 + bl SetGpuReg + ldr r1, _080A9928 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + strh r6, [r0, 0xA] + ldr r1, _080A992C @ =sub_80A9930 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080A9918: .4byte gUnknown_2022984 +_080A991C: .4byte gUnknown_2022986 +_080A9920: .4byte 0x00003f1f +_080A9924: .4byte 0x00003f3f +_080A9928: .4byte gTasks +_080A992C: .4byte sub_80A9930 + thumb_func_end sub_80A98B0 + + thumb_func_start sub_80A9930 +sub_80A9930: @ 80A9930 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080A9964 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r0, [r3, 0x8] + adds r4, r0, 0 + adds r4, 0xD + strh r4, [r3, 0x8] + ldrh r0, [r3, 0xA] + adds r2, r0, 0 + subs r2, 0xD + strh r2, [r3, 0xA] + lsls r1, r4, 16 + lsls r0, r2, 16 + cmp r1, r0 + blt _080A9970 + ldr r0, _080A9968 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080A996C @ =sub_80A9984 + str r0, [r3] + b _080A9978 + .align 2, 0 +_080A9964: .4byte gTasks +_080A9968: .4byte gUnknown_2022984 +_080A996C: .4byte sub_80A9984 +_080A9970: + ldr r1, _080A9980 @ =gUnknown_2022984 + lsls r0, r4, 8 + orrs r2, r0 + strh r2, [r1] +_080A9978: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080A9980: .4byte gUnknown_2022984 + thumb_func_end sub_80A9930 + + thumb_func_start sub_80A9984 +sub_80A9984: @ 80A9984 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080A99D0 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080A99D8 + movs r0, 0x88 + strh r0, [r1, 0x1E] + movs r0, 0x50 + movs r1, 0x88 + bl SetGpuReg + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + ldr r2, _080A99D4 @ =0x00007fff + movs r1, 0x10 + bl BlendPalettes + b _080A9A0C + .align 2, 0 +_080A99D0: .4byte gTasks +_080A99D4: .4byte 0x00007fff +_080A99D8: + cmp r0, 0x4 + ble _080A9A0C + ldr r0, _080A9A14 @ =gUnknown_2022984 + strh r4, [r0] + ldr r0, _080A9A18 @ =gUnknown_2022986 + strh r4, [r0] + ldr r4, _080A9A1C @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A9A0C: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9A14: .4byte gUnknown_2022984 +_080A9A18: .4byte gUnknown_2022986 +_080A9A1C: .4byte 0x00003f3f + thumb_func_end sub_80A9984 + + thumb_func_start sub_80A9A20 +sub_80A9A20: @ 80A9A20 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080A9A70 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A9A7C + movs r0, 0x1 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080A9A74 @ =gUnknown_83E4200 + adds r0, r5, 0 + bl sub_80762D0 + ldr r1, _080A9A78 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x24] + b _080A9AA4 + .align 2, 0 +_080A9A70: .4byte gTasks +_080A9A74: .4byte gUnknown_83E4200 +_080A9A78: .4byte gSprites +_080A9A7C: + ldr r1, _080A9AAC @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + adds r0, r5, 0 + bl sub_8076308 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080A9AA4 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A9AA4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9AAC: .4byte gSprites + thumb_func_end sub_80A9A20 + + thumb_func_start sub_80A9AB0 +sub_80A9AB0: @ 80A9AB0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080A9B00 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080A9B0C + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080A9B04 @ =gUnknown_83E4200 + adds r0, r5, 0 + bl sub_80762D0 + ldr r1, _080A9B08 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x24] + b _080A9B34 + .align 2, 0 +_080A9B00: .4byte gTasks +_080A9B04: .4byte gUnknown_83E4200 +_080A9B08: .4byte gSprites +_080A9B0C: + ldr r1, _080A9B3C @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + adds r0, r5, 0 + bl sub_8076308 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080A9B34 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080A9B34: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080A9B3C: .4byte gSprites + thumb_func_end sub_80A9AB0 + + thumb_func_start sub_80A9B40 +sub_80A9B40: @ 80A9B40 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + movs r0, 0x5F + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080A9B84 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080A9B88 @ =sub_80A9B8C + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9B84: .4byte gBattleAnimTarget +_080A9B88: .4byte sub_80A9B8C + thumb_func_end sub_80A9B40 + + thumb_func_start sub_80A9B8C +sub_80A9B8C: @ 80A9B8C + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080A9BB6 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080A9BBC +_080A9BB6: + adds r0, r4, 0 + bl DestroyAnimSprite +_080A9BBC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A9B8C + + thumb_func_start sub_80A9BC4 +sub_80A9BC4: @ 80A9BC4 + push {r4,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A9BE8 + ldr r1, _080A9BE4 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x32] + adds r0, r2, 0x1 + strh r0, [r4, 0x2E] + b _080A9C44 + .align 2, 0 +_080A9BE4: .4byte gBattleAnimArgs +_080A9BE8: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x64 + ble _080A9C36 + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080A9C36: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x78 + ble _080A9C44 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A9C44: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A9BC4 + + thumb_func_start sub_80A9C4C +sub_80A9C4C: @ 80A9C4C + push {lr} + ldr r2, _080A9C70 @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x20] + movs r1, 0xA0 + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x2E] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x30] + ldr r1, _080A9C74 @ =sub_8074C44 + str r1, [r0, 0x1C] + ldr r1, _080A9C78 @ =sub_80A9C7C + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080A9C70: .4byte gBattleAnimArgs +_080A9C74: .4byte sub_8074C44 +_080A9C78: .4byte sub_80A9C7C + thumb_func_end sub_80A9C4C + + thumb_func_start sub_80A9C7C +sub_80A9C7C: @ 80A9C7C + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + lsls r0, 16 + lsrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + lsls r0, 16 + asrs r5, r0, 16 + cmp r5, 0x48 + bgt _080A9CE2 + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + cmp r5, 0x40 + bgt _080A9CE2 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A9CE2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A9C7C + + thumb_func_start sub_80A9CE8 +sub_80A9CE8: @ 80A9CE8 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A9DA0 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x3 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A9D2A + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080A9D2A: + ldr r0, _080A9DA4 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080A9DA8 @ =gBattle_BG1_Y + strh r1, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap + bl sub_807543C + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A9D88 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080A9D88: + ldr r0, _080A9DB8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080A9DBC @ =sub_80A9DC0 + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080A9DA0: .4byte 0x00003f42 +_080A9DA4: .4byte gBattle_BG1_X +_080A9DA8: .4byte gBattle_BG1_Y +_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap +_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet +_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette +_080A9DB8: .4byte gTasks +_080A9DBC: .4byte sub_80A9DC0 + thumb_func_end sub_80A9CE8 + + thumb_func_start sub_80A9DC0 +sub_80A9DC0: @ 80A9DC0 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080A9DE8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080A9DDE + b _080A9F08 +_080A9DDE: + lsls r0, 2 + ldr r1, _080A9DEC @ =_080A9DF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A9DE8: .4byte gTasks +_080A9DEC: .4byte _080A9DF0 + .align 2, 0 +_080A9DF0: + .4byte _080A9E04 + .4byte _080A9E48 + .4byte _080A9E6A + .4byte _080A9EAE + .4byte _080A9ED4 +_080A9E04: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080A9F08 + strh r5, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + adds r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080A9F08 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x1E] + b _080A9F08 +_080A9E48: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8D + bne _080A9F08 + movs r0, 0x10 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080A9F08 +_080A9E6A: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080A9F08 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080A9F08 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080A9F08 +_080A9EAE: + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + bl sub_8075358 + ldr r1, _080A9ED0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x20] + adds r1, 0x1 + strh r1, [r0, 0x20] + b _080A9F08 + .align 2, 0 +_080A9ED0: .4byte gTasks +_080A9ED4: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A9EE8 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080A9EE8: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080A9F08: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A9DC0 + + thumb_func_start sub_80A9F10 +sub_80A9F10: @ 80A9F10 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080A9F88 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080A9F52 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080A9F52: + ldr r0, _080A9F8C @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080A9F90 @ =gBattle_BG1_Y + strh r1, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A9F98 + ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap + ldr r1, [sp, 0x4] + bl LZDecompressVram + b _080A9FC6 + .align 2, 0 +_080A9F88: .4byte 0x00003f42 +_080A9F8C: .4byte gBattle_BG1_X +_080A9F90: .4byte gBattle_BG1_Y +_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap +_080A9F98: + ldr r0, _080A9FB4 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A9FBC + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap + bl sub_807543C + b _080A9FC6 + .align 2, 0 +_080A9FB4: .4byte gBattleAnimTarget +_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap +_080A9FBC: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap + bl sub_807543C +_080A9FC6: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080A9FFA + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080A9FFA: + ldr r0, _080AA01C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AA020 @ =sub_80AA024 + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap +_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet +_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette +_080AA01C: .4byte gTasks +_080AA020: .4byte sub_80AA024 + thumb_func_end sub_80A9F10 + + thumb_func_start sub_80AA024 +sub_80AA024: @ 80AA024 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AA04C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080AA042 + b _080AA168 +_080AA042: + lsls r0, 2 + ldr r1, _080AA050 @ =_080AA054 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AA04C: .4byte gTasks +_080AA050: .4byte _080AA054 + .align 2, 0 +_080AA054: + .4byte _080AA068 + .4byte _080AA0AC + .4byte _080AA0CE + .4byte _080AA112 + .4byte _080AA134 +_080AA068: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080AA168 + strh r5, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + adds r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0xE + bne _080AA168 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x1E] + b _080AA168 +_080AA0AC: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080AA168 + movs r0, 0xE + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080AA168 +_080AA0CE: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080AA168 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080AA168 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080AA168 +_080AA112: + mov r0, sp + bl sub_80752A0 + movs r0, 0x1 + bl sub_8075358 + movs r0, 0x2 + bl sub_8075358 + ldr r0, _080AA170 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080AA134: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AA148 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080AA148: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AA168: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA170: .4byte gTasks + thumb_func_end sub_80AA024 + + thumb_func_start sub_80AA174 +sub_80AA174: @ 80AA174 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080AA1C8 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080AA1CC @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrb r0, [r5] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x3C] + ldr r1, _080AA1D0 @ =sub_80AA1D4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA1C8: .4byte gBattleAnimAttacker +_080AA1CC: .4byte gBattleAnimArgs +_080AA1D0: .4byte sub_80AA1D4 + thumb_func_end sub_80AA174 + + thumb_func_start sub_80AA1D4 +sub_80AA1D4: @ 80AA1D4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080AA1EA + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + b _080AA1EE +_080AA1EA: + ldrh r0, [r4, 0x3C] + subs r0, 0x1 +_080AA1EE: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r2, 0x30 + ldrsh r0, [r4, r2] + ldrh r1, [r4, 0x34] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x9 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r3, 0x38 + ldrsh r2, [r4, r3] + cmp r2, 0 + beq _080AA260 + cmp r2, 0x1 + bne _080AA290 + ldr r1, _080AA258 @ =0xfffffc00 + adds r0, r1, 0 + ldrh r2, [r4, 0x32] + adds r0, r2 + strh r0, [r4, 0x32] + ldr r3, _080AA25C @ =0xffffff00 + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x2E + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080AA290 + movs r0, 0x2 + strh r0, [r4, 0x38] + b _080AA2A0 + .align 2, 0 +_080AA258: .4byte 0xfffffc00 +_080AA25C: .4byte 0xffffff00 +_080AA260: + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x2E + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080AA290 + strh r2, [r4, 0x36] + movs r0, 0x1 + strh r0, [r4, 0x38] +_080AA290: + ldr r0, _080AA2A8 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080AA2AC @ =0x0000ffff + cmp r1, r0 + bne _080AA2A0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA2A0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA2A8: .4byte gBattleAnimArgs +_080AA2AC: .4byte 0x0000ffff + thumb_func_end sub_80AA1D4 + + thumb_func_start sub_80AA2B0 +sub_80AA2B0: @ 80AA2B0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080AA2F8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080AA2FC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + strh r0, [r5, 0x2E] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x7 + bl Cos + strh r0, [r5, 0x30] + ldr r0, _080AA300 @ =sub_80AA304 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA2F8: .4byte gBattleAnimAttacker +_080AA2FC: .4byte gBattleAnimArgs +_080AA300: .4byte sub_80AA304 + thumb_func_end sub_80AA2B0 + + thumb_func_start sub_80AA304 +sub_80AA304: @ 80AA304 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x30] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] + movs r1, 0x20 + ldrsh r0, [r2, r1] + movs r3, 0x24 + ldrsh r1, [r2, r3] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080AA342 + movs r0, 0x22 + ldrsh r1, [r2, r0] + movs r3, 0x26 + ldrsh r0, [r2, r3] + adds r1, r0 + cmp r1, 0xA0 + bgt _080AA342 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AA348 +_080AA342: + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA348: + pop {r0} + bx r0 + thumb_func_end sub_80AA304 + + thumb_func_start sub_80AA34C +sub_80AA34C: @ 80AA34C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x30] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r1, r0, 0x1 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080AA378 + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA378: + pop {r0} + bx r0 + thumb_func_end sub_80AA34C + + thumb_func_start sub_80AA37C +sub_80AA37C: @ 80AA37C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080AA3C8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080AA3CC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + strh r0, [r5, 0x2E] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x7 + bl Cos + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x32] + ldr r0, _080AA3D0 @ =sub_80AA34C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA3C8: .4byte gBattleAnimAttacker +_080AA3CC: .4byte gBattleAnimArgs +_080AA3D0: .4byte sub_80AA34C + thumb_func_end sub_80AA37C + + thumb_func_start sub_80AA3D4 +sub_80AA3D4: @ 80AA3D4 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AA3EA + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA3EA: + pop {r0} + bx r0 + thumb_func_end sub_80AA3D4 + + thumb_func_start sub_80AA3F0 +sub_80AA3F0: @ 80AA3F0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080AA404 @ =sub_80AA3D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA404: .4byte sub_80AA3D4 + thumb_func_end sub_80AA3F0 + + thumb_func_start sub_80AA408 +sub_80AA408: @ 80AA408 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA426 + ldr r0, _080AA498 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080AA426: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r5, r0, 1 + movs r0, 0xFF + ands r5, r0 + adds r0, r5, 0 + movs r1, 0x50 + bl Sin + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4F + bgt _080AA46A + adds r0, r5, 0 + movs r1, 0x50 + bl Cos + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + lsls r0, 16 + asrs r0, 24 + adds r1, r0 + strh r1, [r4, 0x26] +_080AA46A: + movs r0, 0x2E + ldrsh r2, [r4, r0] + cmp r2, 0x5A + ble _080AA488 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r0, [r4, 0x24] + subs r0, r1 + strh r0, [r4, 0x24] +_080AA488: + cmp r2, 0x64 + ble _080AA492 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA492: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA498: .4byte gBattleAnimArgs + thumb_func_end sub_80AA408 + + thumb_func_start sub_80AA49C +sub_80AA49C: @ 80AA49C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x14 + ble _080AA4F2 + adds r1, r0, 0 + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080AA4F2: + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x1E + ble _080AA500 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA500: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AA49C + + thumb_func_start sub_80AA508 +sub_80AA508: @ 80AA508 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA52C + ldr r1, _080AA528 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x32] + adds r0, r2, 0x1 + strh r0, [r4, 0x2E] + b _080AA580 + .align 2, 0 +_080AA528: .4byte gBattleAnimArgs +_080AA52C: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + movs r5, 0 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x46 + ble _080AA580 + ldr r0, _080AA588 @ =sub_80AA49C + str r0, [r4, 0x1C] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x22] + adds r0, r2, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x24] + strh r5, [r4, 0x26] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB4 + bl __umodsi3 + strh r0, [r4, 0x34] +_080AA580: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA588: .4byte sub_80AA49C + thumb_func_end sub_80AA508 + + thumb_func_start sub_80AA58C +sub_80AA58C: @ 80AA58C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA5C6 + ldr r1, _080AA688 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + ldr r0, _080AA68C @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807685C + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r0, 0x1 + strh r0, [r4, 0x32] +_080AA5C6: + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r0, r2 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r1, r0, 2 + adds r0, r1, 0 + cmp r1, 0 + bge _080AA5DC + adds r0, 0xFF +_080AA5DC: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _080AA5EE + movs r0, 0 + strh r0, [r4, 0x30] +_080AA5EE: + movs r0, 0x30 + ldrsh r2, [r4, r0] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080AA5FC + adds r0, 0x3 +_080AA5FC: + asrs r0, 2 + movs r1, 0x1E + subs r1, r0 + adds r0, r2, 0 + bl Cos + strh r0, [r4, 0x24] + movs r0, 0x30 + ldrsh r2, [r4, r0] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080AA618 + adds r0, 0x7 +_080AA618: + asrs r0, 3 + movs r1, 0xA + subs r1, r0 + adds r0, r2, 0 + bl Sin + strh r0, [r4, 0x26] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x80 + ble _080AA63C + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080AA63C + ldr r0, _080AA690 @ =0x0000ffff + strh r0, [r4, 0x32] +_080AA63C: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA650 + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _080AA650 + movs r0, 0x1 + strh r0, [r4, 0x32] +_080AA650: + ldrh r0, [r4, 0x34] + adds r1, r0, 0x1 + strh r1, [r4, 0x34] + subs r0, 0x9 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x46 + bls _080AA694 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080AA6A2 + .align 2, 0 +_080AA688: .4byte gBattleAnimArgs +_080AA68C: .4byte gBattleAnimTarget +_080AA690: .4byte 0x0000ffff +_080AA694: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080AA6A2: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x5A + ble _080AA6B0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA6B0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AA58C + + thumb_func_start sub_80AA6B8 +sub_80AA6B8: @ 80AA6B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA6EC + ldr r1, _080AA6E8 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrb r1, [r1, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080AA700 + .align 2, 0 +_080AA6E8: .4byte gBattleAnimArgs +_080AA6EC: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AA700 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA700: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AA6B8 + + thumb_func_start sub_80AA708 +sub_80AA708: @ 80AA708 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r1, _080AA720 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080AA724 + adds r0, r5, 0 + bl DestroyAnimSprite + b _080AA788 + .align 2, 0 +_080AA720: .4byte gBattleAnimArgs +_080AA724: + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080AA734 + ldr r4, _080AA730 @ =gBattleAnimAttacker + b _080AA736 + .align 2, 0 +_080AA730: .4byte gBattleAnimAttacker +_080AA734: + ldr r4, _080AA764 @ =gBattleAnimTarget +_080AA736: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080AA768 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r1, [r0, r2] + adds r2, r0, 0 + cmp r1, 0 + bne _080AA76C + ldrh r0, [r5, 0x20] + adds r0, 0x20 + b _080AA770 + .align 2, 0 +_080AA764: .4byte gBattleAnimTarget +_080AA768: .4byte gBattleAnimArgs +_080AA76C: + ldrh r0, [r5, 0x20] + subs r0, 0x20 +_080AA770: + strh r0, [r5, 0x20] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x2E] + ldrh r1, [r2, 0x2] + strh r1, [r5, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + ldr r0, _080AA790 @ =sub_80AA794 + str r0, [r5, 0x1C] +_080AA788: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA790: .4byte sub_80AA794 + thumb_func_end sub_80AA708 + + thumb_func_start sub_80AA794 +sub_80AA794: @ 80AA794 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AA7C4 + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + cmp r0, 0 + beq _080AA7BE + ldrh r1, [r2, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim + b _080AA7C4 +_080AA7BE: + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA7C4: + pop {r0} + bx r0 + thumb_func_end sub_80AA794 + + thumb_func_start sub_80AA7C8 +sub_80AA7C8: @ 80AA7C8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080AA7FC @ =gBattleAnimArgs + ldrb r0, [r0] + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080AA800 @ =gTasks + adds r4, r0 + ldr r2, _080AA804 @ =gUnknown_83E4410 + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080AA808 @ =sub_80AA80C + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AA7FC: .4byte gBattleAnimArgs +_080AA800: .4byte gTasks +_080AA804: .4byte gUnknown_83E4410 +_080AA808: .4byte sub_80AA80C + thumb_func_end sub_80AA7C8 + + thumb_func_start sub_80AA80C +sub_80AA80C: @ 80AA80C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080AA834 @ =gTasks + adds r0, r1 + bl sub_8076308 + lsls r0, 24 + cmp r0, 0 + bne _080AA82C + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AA82C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA834: .4byte gTasks + thumb_func_end sub_80AA80C + + thumb_func_start sub_80AA838 +sub_80AA838: @ 80AA838 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080AA84C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AA854 + ldr r0, _080AA850 @ =gBattleAnimAttacker + b _080AA856 + .align 2, 0 +_080AA84C: .4byte gBattleAnimArgs +_080AA850: .4byte gBattleAnimAttacker +_080AA854: + ldr r0, _080AA8EC @ =gBattleAnimTarget +_080AA856: + ldrb r6, [r0] + adds r0, r6, 0 + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080AA870 + ldr r1, _080AA8F0 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080AA870: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r7, _080AA8F0 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r3, [r7, 0x2] + adds r0, r3 + movs r4, 0 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r7, 0x4] + adds r0, r1 + strh r0, [r5, 0x22] + strh r4, [r5, 0x2E] + ldrh r1, [r5, 0x20] + lsls r1, 3 + strh r1, [r5, 0x30] + lsls r0, 3 + strh r0, [r5, 0x32] + movs r2, 0x2 + ldrsh r0, [r7, r2] + lsls r0, 3 + cmp r0, 0 + bge _080AA8B0 + adds r0, 0x7 +_080AA8B0: + asrs r0, 3 + strh r0, [r5, 0x34] + movs r3, 0x4 + ldrsh r0, [r7, r3] + lsls r0, 3 + cmp r0, 0 + bge _080AA8C0 + adds r0, 0x7 +_080AA8C0: + asrs r0, 3 + strh r0, [r5, 0x36] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x6 + ldrsh r0, [r7, r3] + lsls r0, 4 + adds r1, r0 + ldr r3, _080AA8F4 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080AA8F8 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r0, _080AA8FC @ =sub_80AA900 + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AA8EC: .4byte gBattleAnimTarget +_080AA8F0: .4byte gBattleAnimArgs +_080AA8F4: .4byte 0x000003ff +_080AA8F8: .4byte 0xfffffc00 +_080AA8FC: .4byte sub_80AA900 + thumb_func_end sub_80AA838 + + thumb_func_start sub_80AA900 +sub_80AA900: @ 80AA900 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x30] + adds r0, r1 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + ldrh r3, [r2, 0x32] + adds r1, r3 + strh r1, [r2, 0x32] + lsls r0, 16 + asrs r0, 19 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 19 + strh r1, [r2, 0x22] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080AA934 + adds r0, r2, 0 + bl DestroyAnimSprite +_080AA934: + pop {r0} + bx r0 + thumb_func_end sub_80AA900 + + thumb_func_start sub_80AA938 +sub_80AA938: @ 80AA938 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AA95A + ldr r0, _080AA994 @ =gBattleAnimArgs + ldrh r1, [r0] + movs r0, 0x78 + subs r0, r1 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080AA95A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080AA978 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0 + bl sub_8075B48 +_080AA978: + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r2, 0x30 + ldrsh r0, [r4, r2] + adds r0, 0x50 + cmp r1, r0 + bne _080AA98C + adds r0, r4, 0 + bl DestroyAnimSprite +_080AA98C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AA994: .4byte gBattleAnimArgs + thumb_func_end sub_80AA938 + + thumb_func_start sub_80AA998 +sub_80AA998: @ 80AA998 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AA9C6 + movs r5, 0x78 + strh r5, [r6, 0x20] + ldr r4, _080AAA48 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r4, r2] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r0, 0xF + strh r0, [r6, 0x22] + ldrb r1, [r4, 0x2] + adds r0, r6, 0 + bl StartSpriteAnim + strh r5, [r6, 0x38] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x34] +_080AA9C6: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + movs r5, 0 + strh r0, [r6, 0x2E] + movs r1, 0x2E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r6, 0x30] + movs r2, 0x2E + ldrsh r0, [r6, r2] + lsls r4, r0, 1 + adds r4, r0 + ldrh r0, [r6, 0x34] + adds r4, r0 + movs r2, 0xFF + ldrh r0, [r6, 0x3A] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r6, 0x3A] + ands r4, r2 + adds r0, r4, 0 + movs r1, 0x64 + bl Cos + strh r0, [r6, 0x24] + adds r0, r4, 0 + movs r1, 0xA + bl Sin + adds r4, r0, 0 + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r1, 0x4 + bl Cos + ldrh r2, [r6, 0x30] + adds r4, r2 + adds r0, r4 + strh r0, [r6, 0x26] + movs r0, 0x2E + ldrsh r1, [r6, r0] + movs r2, 0x38 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080AAA42 + ldr r0, _080AAA4C @ =sub_80AAA50 + str r0, [r6, 0x1C] + strh r5, [r6, 0x2E] + adds r0, r6, 0 + bl oamt_add_pos2_onto_pos1 + movs r0, 0x5 + strh r0, [r6, 0x32] + strh r5, [r6, 0x36] + strh r5, [r6, 0x34] + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080AAA42: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AAA48: .4byte gBattleAnimArgs +_080AAA4C: .4byte sub_80AAA50 + thumb_func_end sub_80AA998 + + thumb_func_start sub_80AAA50 +sub_80AAA50: @ 80AAA50 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080AAA6A + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080AAA70 @ =sub_80AAA74 + str r0, [r1, 0x1C] +_080AAA6A: + pop {r0} + bx r0 + .align 2, 0 +_080AAA70: .4byte sub_80AAA74 + thumb_func_end sub_80AAA50 + + thumb_func_start sub_80AAA74 +sub_80AAA74: @ 80AAA74 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x34] + adds r0, r1, r2 + strh r0, [r4, 0x34] + strh r0, [r4, 0x26] + adds r1, 0x1 + strh r1, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x30 + ble _080AAA9E + lsls r0, r1, 16 + cmp r0, 0 + ble _080AAA9E + ldrh r0, [r4, 0x36] + subs r1, r0, 0x5 + strh r1, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x36] +_080AAA9E: + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _080AAAD0 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0 + bl DestroyAnimSprite +_080AAAD0: + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bne _080AAADE + adds r0, r4, 0 + bl DestroyAnimSprite +_080AAADE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AAA74 + + thumb_func_start sub_80AAAE4 +sub_80AAAE4: @ 80AAAE4 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080AAB28 @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AAB30 + ldr r4, _080AAB2C @ =gBattleAnimAttacker + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080AAB30 + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldrh r0, [r5, 0x22] + adds r0, 0x28 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080AAB50 + .align 2, 0 +_080AAB28: .4byte gBattleTypeFlags +_080AAB2C: .4byte gBattleAnimAttacker +_080AAB30: + ldr r4, _080AAB70 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x28 + strh r0, [r5, 0x22] +_080AAB50: + movs r0, 0xD + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + subs r0, 0x48 + strh r0, [r5, 0x36] + ldr r0, _080AAB74 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080AAB78 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AAB70: .4byte gBattleAnimAttacker +_080AAB74: .4byte sub_8075590 +_080AAB78: .4byte DestroyAnimSprite + thumb_func_end sub_80AAAE4 + + thumb_func_start sub_80AAB7C +sub_80AAB7C: @ 80AAB7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080AAB98 @ =gBattleAnimArgs + ldr r1, _080AAB9C @ =gAnimDisableStructPtr + ldr r1, [r1] + ldrb r2, [r1, 0x10] + movs r1, 0x1 + ands r1, r2 + strh r1, [r3, 0xE] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080AAB98: .4byte gBattleAnimArgs +_080AAB9C: .4byte gAnimDisableStructPtr + thumb_func_end sub_80AAB7C + + thumb_func_start update_fury_cutter_counter_copy +update_fury_cutter_counter_copy: @ 80AABA0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AABB8 @ =gBattleAnimArgs + ldr r1, _080AABBC @ =gAnimDisableStructPtr + ldr r1, [r1] + ldrb r1, [r1, 0x10] + strh r1, [r2, 0xE] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080AABB8: .4byte gBattleAnimArgs +_080AABBC: .4byte gAnimDisableStructPtr + thumb_func_end update_fury_cutter_counter_copy + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_80DE2C0.s b/asm/battle_anim_effects_3.s similarity index 92% rename from asm/battle_anim_80DE2C0.s rename to asm/battle_anim_effects_3.s index f3ddeb0b1..74f6ef9fc 100644 --- a/asm/battle_anim_80DE2C0.s +++ b/asm/battle_anim_effects_3.s @@ -9,7 +9,7 @@ sub_80DE2C0: @ 80DE2C0 push {lr} adds r2, r0, 0 - ldr r1, _080DE2E4 @ =gUnknown_2037F02 + ldr r1, _080DE2E4 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r3, [r2, 0x20] adds r0, r3 @@ -25,7 +25,7 @@ sub_80DE2C0: @ 80DE2C0 ldrh r0, [r1, 0x4] b _080DE2EC .align 2, 0 -_080DE2E4: .4byte gUnknown_2037F02 +_080DE2E4: .4byte gBattleAnimArgs _080DE2E8: ldrh r0, [r1, 0x4] negs r0, r0 @@ -89,7 +89,7 @@ sub_80DE34C: @ 80DE34C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, _080DE398 @ =gUnknown_2037F1B + ldr r6, _080DE398 @ =gBattleAnimTarget ldrb r0, [r6] movs r1, 0x2 bl sub_8074480 @@ -119,7 +119,7 @@ sub_80DE34C: @ 80DE34C pop {r0} bx r0 .align 2, 0 -_080DE398: .4byte gUnknown_2037F1B +_080DE398: .4byte gBattleAnimTarget thumb_func_end sub_80DE34C thumb_func_start sub_80DE39C @@ -213,7 +213,7 @@ sub_80DE440: @ 80DE440 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 - ldr r4, _080DE4CC @ =gUnknown_2037F1B + ldr r4, _080DE4CC @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -260,7 +260,7 @@ _080DE49E: movs r1, 0 adds r2, r3, 0 bl sub_8075A1C - ldr r0, _080DE4D0 @ =gUnknown_2037F02 + ldr r0, _080DE4D0 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] strh r7, [r5, 0x32] @@ -275,8 +275,8 @@ _080DE49E: pop {r0} bx r0 .align 2, 0 -_080DE4CC: .4byte gUnknown_2037F1B -_080DE4D0: .4byte gUnknown_2037F02 +_080DE4CC: .4byte gBattleAnimTarget +_080DE4D0: .4byte gBattleAnimArgs _080DE4D4: .4byte sub_8075590 _080DE4D8: .4byte DestroyAnimSprite thumb_func_end sub_80DE440 @@ -642,7 +642,7 @@ _080DE766: add r0, r9 strh r1, [r0, 0x12] _080DE788: - ldr r0, _080DE7AC @ =gUnknown_2037F02 + ldr r0, _080DE7AC @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080DE7B0 @ =0x0000ffff cmp r1, r0 @@ -659,7 +659,7 @@ _080DE798: .align 2, 0 _080DE7A4: .4byte gTasks _080DE7A8: .4byte gPlttBufferFaded -_080DE7AC: .4byte gUnknown_2037F02 +_080DE7AC: .4byte gBattleAnimArgs _080DE7B0: .4byte 0x0000ffff thumb_func_end sub_80DE718 @@ -770,7 +770,7 @@ _080DE85A: adds r0, r2 strh r1, [r0, 0x12] _080DE87E: - ldr r0, _080DE8A8 @ =gUnknown_2037F02 + ldr r0, _080DE8A8 @ =gBattleAnimArgs ldrh r1, [r0, 0xE] ldr r0, _080DE8AC @ =0x0000ffff cmp r1, r0 @@ -789,7 +789,7 @@ _080DE88E: _080DE89C: .4byte gTasks _080DE8A0: .4byte gPlttBufferFaded _080DE8A4: .4byte gPlttBufferUnfaded -_080DE8A8: .4byte gUnknown_2037F02 +_080DE8A8: .4byte gBattleAnimArgs _080DE8AC: .4byte 0x0000ffff thumb_func_end sub_80DE7DC @@ -800,7 +800,7 @@ sub_80DE8B0: @ 80DE8B0 adds r4, r0, 0 movs r1, 0x1 bl sub_8075160 - ldr r0, _080DE914 @ =gUnknown_2037F1B + ldr r0, _080DE914 @ =gBattleAnimTarget ldrb r0, [r0] mov r5, sp adds r5, 0x2 @@ -808,18 +808,18 @@ sub_80DE8B0: @ 80DE8B0 mov r2, sp adds r3, r5, 0 bl sub_8076D9C - ldr r0, _080DE918 @ =gUnknown_2037F1A + ldr r0, _080DE918 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080DE8E4 - ldr r1, _080DE91C @ =gUnknown_2037F02 + ldr r1, _080DE91C @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DE8E4: - ldr r1, _080DE91C @ =gUnknown_2037F02 + ldr r1, _080DE91C @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] mov r2, sp @@ -842,9 +842,9 @@ _080DE8E4: pop {r0} bx r0 .align 2, 0 -_080DE914: .4byte gUnknown_2037F1B -_080DE918: .4byte gUnknown_2037F1A -_080DE91C: .4byte gUnknown_2037F02 +_080DE914: .4byte gBattleAnimTarget +_080DE918: .4byte gBattleAnimAttacker +_080DE91C: .4byte gBattleAnimArgs _080DE920: .4byte 0x0000ffce _080DE924: .4byte sub_80DE928 thumb_func_end sub_80DE8B0 @@ -919,7 +919,7 @@ sub_80DE99C: @ 80DE99C push {r4,r5,lr} adds r4, r0, 0 bl sub_8074FCC - ldr r5, _080DE9CC @ =gUnknown_2037F02 + ldr r5, _080DE9CC @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 @@ -937,7 +937,7 @@ sub_80DE99C: @ 80DE99C pop {r0} bx r0 .align 2, 0 -_080DE9CC: .4byte gUnknown_2037F02 +_080DE9CC: .4byte gBattleAnimArgs _080DE9D0: .4byte sub_8074F6C _080DE9D4: .4byte DestroyAnimSprite thumb_func_end sub_80DE99C @@ -952,7 +952,7 @@ sub_80DE9D8: @ 80DE9D8 bne _080DEA38 adds r0, r4, 0 bl sub_8074FCC - ldr r5, _080DEA14 @ =gUnknown_2037F02 + ldr r5, _080DEA14 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r5, r2] adds r0, r4, 0 @@ -961,7 +961,7 @@ sub_80DE9D8: @ 80DE9D8 lsls r0, 24 cmp r0, 0 bne _080DEA2C - ldr r0, _080DEA18 @ =gUnknown_2037F1A + ldr r0, _080DEA18 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -970,8 +970,8 @@ sub_80DE9D8: @ 80DE9D8 ldrh r0, [r5, 0x4] b _080DEA32 .align 2, 0 -_080DEA14: .4byte gUnknown_2037F02 -_080DEA18: .4byte gUnknown_2037F1A +_080DEA14: .4byte gBattleAnimArgs +_080DEA18: .4byte gBattleAnimAttacker _080DEA1C: movs r1, 0x4 ldrsh r0, [r5, r1] @@ -1061,21 +1061,21 @@ sub_80DEAB4: @ 80DEAB4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080DEAD0 @ =gUnknown_2037F1B + ldr r0, _080DEAD0 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DEAD8 - ldr r1, _080DEAD4 @ =gUnknown_2037F02 + ldr r1, _080DEAD4 @ =gBattleAnimArgs movs r0, 0 b _080DEADC .align 2, 0 -_080DEAD0: .4byte gUnknown_2037F1B -_080DEAD4: .4byte gUnknown_2037F02 +_080DEAD0: .4byte gBattleAnimTarget +_080DEAD4: .4byte gBattleAnimArgs _080DEAD8: - ldr r1, _080DEAEC @ =gUnknown_2037F02 + ldr r1, _080DEAEC @ =gBattleAnimArgs movs r0, 0x1 _080DEADC: strh r0, [r1, 0xE] @@ -1085,7 +1085,7 @@ _080DEADC: pop {r0} bx r0 .align 2, 0 -_080DEAEC: .4byte gUnknown_2037F02 +_080DEAEC: .4byte gBattleAnimArgs thumb_func_end sub_80DEAB4 thumb_func_start sub_80DEAF0 @@ -1097,14 +1097,14 @@ sub_80DEAF0: @ 80DEAF0 ldr r0, [r0] cmp r0, 0 ble _080DEB0C - ldr r1, _080DEB08 @ =gUnknown_2037F02 + ldr r1, _080DEB08 @ =gBattleAnimArgs movs r0, 0 b _080DEB10 .align 2, 0 _080DEB04: .4byte gUnknown_2037EE8 -_080DEB08: .4byte gUnknown_2037F02 +_080DEB08: .4byte gBattleAnimArgs _080DEB0C: - ldr r1, _080DEB1C @ =gUnknown_2037F02 + ldr r1, _080DEB1C @ =gBattleAnimArgs movs r0, 0x1 _080DEB10: strh r0, [r1, 0xE] @@ -1113,7 +1113,7 @@ _080DEB10: pop {r0} bx r0 .align 2, 0 -_080DEB1C: .4byte gUnknown_2037F02 +_080DEB1C: .4byte gBattleAnimArgs thumb_func_end sub_80DEAF0 thumb_func_start sub_80DEB20 @@ -1303,12 +1303,12 @@ _080DEC8C: .4byte 0x00003f3f sub_80DEC90: @ 80DEC90 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080DED04 @ =gUnknown_2037F02 + ldr r6, _080DED04 @ =gBattleAnimArgs movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 bne _080DECBC - ldr r4, _080DED08 @ =gUnknown_2037F1A + ldr r4, _080DED08 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 bl sub_8074480 @@ -1358,8 +1358,8 @@ _080DECBC: movs r0, 0x2 b _080DED1E .align 2, 0 -_080DED04: .4byte gUnknown_2037F02 -_080DED08: .4byte gUnknown_2037F1A +_080DED04: .4byte gBattleAnimArgs +_080DED08: .4byte gBattleAnimAttacker _080DED0C: .4byte 0x000003ff _080DED10: .4byte 0xfffffc00 _080DED14: .4byte 0x0000fff4 @@ -1369,7 +1369,7 @@ _080DED18: ldr r0, _080DED3C @ =0x0000fffe _080DED1E: strh r0, [r5, 0x30] - ldr r1, _080DED40 @ =gUnknown_2037F02 + ldr r1, _080DED40 @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] movs r2, 0x34 @@ -1386,7 +1386,7 @@ _080DED32: bx r0 .align 2, 0 _080DED3C: .4byte 0x0000fffe -_080DED40: .4byte gUnknown_2037F02 +_080DED40: .4byte gBattleAnimArgs _080DED44: .4byte sub_80DED48 thumb_func_end sub_80DEC90 @@ -1575,18 +1575,18 @@ _080DEEB8: .4byte gUnknown_202298A sub_80DEEBC: @ 80DEEBC push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080DEED0 @ =gUnknown_2037F02 + ldr r6, _080DEED0 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080DEED8 - ldr r4, _080DEED4 @ =gUnknown_2037F1A + ldr r4, _080DEED4 @ =gBattleAnimAttacker b _080DEEDA .align 2, 0 -_080DEED0: .4byte gUnknown_2037F02 -_080DEED4: .4byte gUnknown_2037F1A +_080DEED0: .4byte gBattleAnimArgs +_080DEED4: .4byte gBattleAnimAttacker _080DEED8: - ldr r4, _080DEF2C @ =gUnknown_2037F1B + ldr r4, _080DEF2C @ =gBattleAnimTarget _080DEEDA: ldrb r0, [r4] movs r1, 0 @@ -1602,7 +1602,7 @@ _080DEEDA: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r2, _080DEF30 @ =gUnknown_2037F02 + ldr r2, _080DEF30 @ =gBattleAnimArgs ldrh r0, [r2, 0x4] strh r0, [r5, 0x26] movs r3, 0 @@ -1629,8 +1629,8 @@ _080DEF12: pop {r0} bx r0 .align 2, 0 -_080DEF2C: .4byte gUnknown_2037F1B -_080DEF30: .4byte gUnknown_2037F02 +_080DEF2C: .4byte gBattleAnimTarget +_080DEF30: .4byte gBattleAnimArgs _080DEF34: .4byte sub_80DEF38 thumb_func_end sub_80DEEBC @@ -1644,7 +1644,7 @@ sub_80DEF38: @ 80DEF38 movs r1, 0xFF ands r0, r1 strh r0, [r2, 0x30] - ldr r1, _080DEF80 @ =gUnknown_825E074 + ldr r1, _080DEF80 @ =gSineTable movs r3, 0x30 ldrsh r0, [r2, r3] lsls r0, 1 @@ -1671,7 +1671,7 @@ sub_80DEF38: @ 80DEF38 bl DestroyAnimSprite b _080DEF96 .align 2, 0 -_080DEF80: .4byte gUnknown_825E074 +_080DEF80: .4byte gSineTable _080DEF84: lsls r0, r1, 16 asrs r0, 16 @@ -1697,19 +1697,19 @@ sub_80DEF9C: @ 80DEF9C lsls r1, 3 ldr r0, _080DEFBC @ =gTasks adds r5, r1, r0 - ldr r0, _080DEFC0 @ =gUnknown_2037F02 + ldr r0, _080DEFC0 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DEFC8 - ldr r4, _080DEFC4 @ =gUnknown_2037F1A + ldr r4, _080DEFC4 @ =gBattleAnimAttacker b _080DEFCA .align 2, 0 _080DEFBC: .4byte gTasks -_080DEFC0: .4byte gUnknown_2037F02 -_080DEFC4: .4byte gUnknown_2037F1A +_080DEFC0: .4byte gBattleAnimArgs +_080DEFC4: .4byte gBattleAnimAttacker _080DEFC8: - ldr r4, _080DF010 @ =gUnknown_2037F1B + ldr r4, _080DF010 @ =gBattleAnimTarget _080DEFCA: ldrb r0, [r4] bl sub_807492C @@ -1735,21 +1735,21 @@ _080DEFF4: strh r0, [r5, 0xE] movs r0, 0x8 strh r0, [r5, 0x10] - ldr r1, _080DF014 @ =gUnknown_2037F02 + ldr r1, _080DF014 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x12] strh r2, [r5, 0x14] strh r2, [r5, 0x16] cmp r7, 0x1 bne _080DF01C - ldr r0, _080DF018 @ =gUnknown_2022978 + ldr r0, _080DF018 @ =gBattle_BG1_X b _080DF01E .align 2, 0 -_080DF010: .4byte gUnknown_2037F1B -_080DF014: .4byte gUnknown_2037F02 -_080DF018: .4byte gUnknown_2022978 +_080DF010: .4byte gBattleAnimTarget +_080DF014: .4byte gBattleAnimArgs +_080DF018: .4byte gBattle_BG1_X _080DF01C: - ldr r0, _080DF03C @ =gUnknown_202297C + ldr r0, _080DF03C @ =gBattle_BG2_X _080DF01E: ldrh r2, [r0] strh r2, [r5, 0x18] @@ -1766,7 +1766,7 @@ _080DF01E: ldrh r3, [r5, 0x18] b _080DF044 .align 2, 0 -_080DF03C: .4byte gUnknown_202297C +_080DF03C: .4byte gBattle_BG2_X _080DF040: strh r2, [r5, 0x1E] ldrh r3, [r5, 0x1A] @@ -1780,7 +1780,7 @@ _080DF044: ldrsh r0, [r5, r6] cmp r1, r0 bgt _080DF07A - ldr r4, _080DF084 @ =gUnknown_2038700 + ldr r4, _080DF084 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r0, r4 @@ -1805,7 +1805,7 @@ _080DF07A: ldr r0, _080DF088 @ =0x04000014 b _080DF08E .align 2, 0 -_080DF084: .4byte gUnknown_2038700 +_080DF084: .4byte gScanlineEffectRegBuffers _080DF088: .4byte 0x04000014 _080DF08C: ldr r0, _080DF0B8 @ =0x04000018 @@ -1822,7 +1822,7 @@ _080DF08E: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams ldr r0, _080DF0C0 @ =sub_80DF0C4 str r0, [r5] add sp, 0xC @@ -1917,7 +1917,7 @@ _080DF148: ldrsh r0, [r4, r2] cmp r1, r0 bge _080DF17C - ldr r5, _080DF1D4 @ =gUnknown_2038700 + ldr r5, _080DF1D4 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -1945,7 +1945,7 @@ _080DF17C: ldrsh r0, [r4, r2] cmp r1, r0 bgt _080DF1B0 - ldr r5, _080DF1D4 @ =gUnknown_2038700 + ldr r5, _080DF1D4 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -1974,7 +1974,7 @@ _080DF1B0: ldrsh r0, [r4, r1] cmp r0, 0 beq _080DF1C6 - ldr r1, _080DF1D8 @ =gUnknown_2039600 + ldr r1, _080DF1D8 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _080DF1C6: @@ -1985,8 +1985,8 @@ _080DF1CC: pop {r0} bx r0 .align 2, 0 -_080DF1D4: .4byte gUnknown_2038700 -_080DF1D8: .4byte gUnknown_2039600 +_080DF1D4: .4byte gScanlineEffectRegBuffers +_080DF1D8: .4byte gScanlineEffect thumb_func_end sub_80DF0C4 thumb_func_start sub_80DF1DC @@ -2002,7 +2002,7 @@ sub_80DF1DC: @ 80DF1DC movs r5, 0 strh r5, [r4, 0x8] strh r5, [r4, 0xA] - ldr r6, _080DF234 @ =gUnknown_2037F1A + ldr r6, _080DF234 @ =gBattleAnimAttacker ldrb r0, [r6] movs r1, 0x2 bl sub_8074480 @@ -2032,7 +2032,7 @@ sub_80DF1DC: @ 80DF1DC bx r0 .align 2, 0 _080DF230: .4byte gTasks -_080DF234: .4byte gUnknown_2037F1A +_080DF234: .4byte gBattleAnimAttacker _080DF238: .4byte 0x0000ffec _080DF23C: .4byte sub_80DF240 thumb_func_end sub_80DF1DC @@ -2391,7 +2391,7 @@ _080DF4C4: strh r1, [r5, 0x26] movs r0, 0x14 strh r0, [r5, 0x2E] - ldr r4, _080DF51C @ =gUnknown_2037F1B + ldr r4, _080DF51C @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -2412,7 +2412,7 @@ _080DF510: bx r0 .align 2, 0 _080DF518: .4byte DestroyAnimSprite -_080DF51C: .4byte gUnknown_2037F1B +_080DF51C: .4byte gBattleAnimTarget _080DF520: .4byte sub_8075590 thumb_func_end sub_80DF468 @@ -2488,7 +2488,7 @@ _080DF5A0: beq _080DF664 b _080DF682 _080DF5AA: - ldr r4, _080DF5DC @ =gUnknown_2037F1A + ldr r4, _080DF5DC @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -2510,7 +2510,7 @@ _080DF5AA: strh r0, [r5, 0x32] b _080DF658 .align 2, 0 -_080DF5DC: .4byte gUnknown_2037F1A +_080DF5DC: .4byte gBattleAnimAttacker _080DF5E0: ldrh r0, [r5, 0x30] adds r0, 0x60 @@ -2602,7 +2602,7 @@ _080DF682: sub_80DF688: @ 80DF688 push {r4,lr} adds r4, r0, 0 - ldr r0, _080DF6A0 @ =gUnknown_2037F1A + ldr r0, _080DF6A0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2611,7 +2611,7 @@ sub_80DF688: @ 80DF688 ldr r0, _080DF6A4 @ =0x0000fff0 b _080DF6AC .align 2, 0 -_080DF6A0: .4byte gUnknown_2037F1A +_080DF6A0: .4byte gBattleAnimAttacker _080DF6A4: .4byte 0x0000fff0 _080DF6A8: movs r0, 0x80 @@ -2636,7 +2636,7 @@ sub_80DF6C0: @ 80DF6C0 ldrh r0, [r4, 0x2E] adds r0, 0x48 strh r0, [r4, 0x2E] - ldr r0, _080DF6E0 @ =gUnknown_2037F1A + ldr r0, _080DF6E0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2647,7 +2647,7 @@ sub_80DF6C0: @ 80DF6C0 asrs r0, 20 b _080DF6EC .align 2, 0 -_080DF6E0: .4byte gUnknown_2037F1A +_080DF6E0: .4byte gBattleAnimAttacker _080DF6E4: ldrh r0, [r4, 0x2E] lsls r0, 16 @@ -2947,7 +2947,7 @@ _080DF90A: movs r0, 0x90 lsls r0, 4 strh r0, [r4, 0x30] - ldr r0, _080DF930 @ =gUnknown_2037F1A + ldr r0, _080DF930 @ =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0x3 bl sub_8074480 @@ -2959,7 +2959,7 @@ _080DF90A: strh r0, [r4, 0x2E] b _080DF95C .align 2, 0 -_080DF930: .4byte gUnknown_2037F1A +_080DF930: .4byte gBattleAnimAttacker _080DF934: ldrh r2, [r4, 0x30] lsls r1, r2, 16 @@ -3067,7 +3067,7 @@ _080DFA00: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, _080DFA24 @ =gUnknown_2037F1A + ldr r0, _080DFA24 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80768B0 lsls r0, 24 @@ -3080,7 +3080,7 @@ _080DFA00: bl SetAnimBgAttribute b _080DFA32 .align 2, 0 -_080DFA24: .4byte gUnknown_2037F1A +_080DFA24: .4byte gBattleAnimAttacker _080DFA28: movs r0, 0x2 movs r1, 0x2 @@ -3092,13 +3092,13 @@ _080DFA32: adds r1, r5 lsls r1, 3 adds r1, r0 - ldr r0, _080DFA48 @ =gUnknown_2037F02 + ldr r0, _080DFA48 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r1, 0x1C] b _080DFB00 .align 2, 0 _080DFA44: .4byte gTasks -_080DFA48: .4byte gUnknown_2037F02 +_080DFA48: .4byte gBattleAnimArgs _080DFA4C: lsls r0, r5, 2 adds r0, r5 @@ -3131,9 +3131,9 @@ _080DFA64: _080DFA84: b _080DFB50 _080DFA86: - ldr r6, _080DFAB4 @ =gUnknown_2037F1A + ldr r6, _080DFAB4 @ =gBattleAnimAttacker ldrb r0, [r6] - ldr r1, _080DFAB8 @ =gUnknown_2037F1B + ldr r1, _080DFAB8 @ =gBattleAnimTarget ldrb r1, [r1] lsls r4, r5, 2 adds r2, r4, r5 @@ -3151,8 +3151,8 @@ _080DFA86: movs r1, 0 b _080DFAC6 .align 2, 0 -_080DFAB4: .4byte gUnknown_2037F1A -_080DFAB8: .4byte gUnknown_2037F1B +_080DFAB4: .4byte gBattleAnimAttacker +_080DFAB8: .4byte gBattleAnimTarget _080DFABC: ldrb r0, [r6] bl GetBattlerPosition @@ -3165,7 +3165,7 @@ _080DFAC6: adds r2, 0x4 adds r2, r0 ldr r1, _080DFB0C @ =gBattleMonForms - ldr r0, _080DFB10 @ =gUnknown_2037F1A + ldr r0, _080DFB10 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -3194,7 +3194,7 @@ _080DFB00: .align 2, 0 _080DFB08: .4byte gMonSpritesGfxPtr _080DFB0C: .4byte gBattleMonForms -_080DFB10: .4byte gUnknown_2037F1A +_080DFB10: .4byte gBattleAnimAttacker _080DFB14: .4byte 0x04000200 _080DFB18: .4byte gTasks _080DFB1C: @@ -3232,7 +3232,7 @@ _080DFB58: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, _080DFB7C @ =gUnknown_2037F1A + ldr r0, _080DFB7C @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80768B0 lsls r0, 24 @@ -3245,7 +3245,7 @@ _080DFB58: bl SetAnimBgAttribute b _080DFB8A .align 2, 0 -_080DFB7C: .4byte gUnknown_2037F1A +_080DFB7C: .4byte gBattleAnimAttacker _080DFB80: movs r0, 0x2 movs r1, 0x2 @@ -3256,7 +3256,7 @@ _080DFB8A: lsls r0, 24 cmp r0, 0 bne _080DFBC8 - ldr r4, _080DFBD8 @ =gUnknown_2037F1A + ldr r4, _080DFBD8 @ =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -3289,7 +3289,7 @@ _080DFBCE: pop {r0} bx r0 .align 2, 0 -_080DFBD8: .4byte gUnknown_2037F1A +_080DFBD8: .4byte gBattleAnimAttacker _080DFBDC: .4byte gTasks _080DFBE0: .4byte gUnknown_2024018 thumb_func_end sub_80DF9BC @@ -3299,10 +3299,10 @@ c3_80DFBE4: @ 80DFBE4 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r4, _080DFC14 @ =gUnknown_2037F02 + ldr r4, _080DFC14 @ =gBattleAnimArgs ldr r3, _080DFC18 @ =gSprites - ldr r2, _080DFC1C @ =gUnknown_2023D44 - ldr r1, _080DFC20 @ =gUnknown_2037F1A + ldr r2, _080DFC1C @ =gBattlerSpriteIds + ldr r1, _080DFC20 @ =gBattleAnimAttacker ldrb r1, [r1] adds r1, r2 ldrb r2, [r1] @@ -3320,10 +3320,10 @@ c3_80DFBE4: @ 80DFBE4 pop {r0} bx r0 .align 2, 0 -_080DFC14: .4byte gUnknown_2037F02 +_080DFC14: .4byte gBattleAnimArgs _080DFC18: .4byte gSprites -_080DFC1C: .4byte gUnknown_2023D44 -_080DFC20: .4byte gUnknown_2037F1A +_080DFC1C: .4byte gBattlerSpriteIds +_080DFC20: .4byte gBattleAnimAttacker thumb_func_end c3_80DFBE4 thumb_func_start sub_80DFC24 @@ -3332,9 +3332,9 @@ sub_80DFC24: @ 80DFC24 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080DFC48 @ =gUnknown_2037F1A + ldr r0, _080DFC48 @ =gBattleAnimAttacker ldrb r0, [r0] - ldr r1, _080DFC4C @ =gUnknown_2037F1B + ldr r1, _080DFC4C @ =gBattleAnimTarget ldrb r1, [r1] movs r2, 0x1 bl sub_8034BF4 @@ -3344,8 +3344,8 @@ sub_80DFC24: @ 80DFC24 pop {r0} bx r0 .align 2, 0 -_080DFC48: .4byte gUnknown_2037F1A -_080DFC4C: .4byte gUnknown_2037F1B +_080DFC48: .4byte gBattleAnimAttacker +_080DFC4C: .4byte gBattleAnimTarget thumb_func_end sub_80DFC24 thumb_func_start sub_80DFC50 @@ -3434,7 +3434,7 @@ _080DFCCE: movs r2, 0 movs r3, 0 bl sub_80730C0 - ldr r1, _080DFD28 @ =gUnknown_2022978 + ldr r1, _080DFD28 @ =gBattle_BG1_X ldr r3, _080DFD2C @ =0x0000ffc8 b _080DFD58 .align 2, 0 @@ -3442,31 +3442,31 @@ _080DFD18: .4byte 0x00003f42 _080DFD1C: .4byte gFile_graphics_battle_anims_masks_morning_sun_tilemap _080DFD20: .4byte gFile_graphics_battle_anims_masks_morning_sun_sheet _080DFD24: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette -_080DFD28: .4byte gUnknown_2022978 +_080DFD28: .4byte gBattle_BG1_X _080DFD2C: .4byte 0x0000ffc8 _080DFD30: - ldr r0, _080DFD48 @ =gUnknown_2037F1A + ldr r0, _080DFD48 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080DFD54 - ldr r1, _080DFD4C @ =gUnknown_2022978 + ldr r1, _080DFD4C @ =gBattle_BG1_X ldr r2, _080DFD50 @ =0x0000ff79 adds r0, r2, 0 b _080DFD5A .align 2, 0 -_080DFD48: .4byte gUnknown_2037F1A -_080DFD4C: .4byte gUnknown_2022978 +_080DFD48: .4byte gBattleAnimAttacker +_080DFD4C: .4byte gBattle_BG1_X _080DFD50: .4byte 0x0000ff79 _080DFD54: - ldr r1, _080DFD80 @ =gUnknown_2022978 + ldr r1, _080DFD80 @ =gBattle_BG1_X ldr r3, _080DFD84 @ =0x0000fff6 _080DFD58: adds r0, r3, 0 _080DFD5A: strh r0, [r1] - ldr r1, _080DFD88 @ =gUnknown_202297A + ldr r1, _080DFD88 @ =gBattle_BG1_Y movs r0, 0 strh r0, [r1] ldr r0, _080DFD8C @ =gTasks @@ -3474,19 +3474,19 @@ _080DFD5A: adds r1, r4 lsls r1, 3 adds r1, r0 - ldr r0, _080DFD80 @ =gUnknown_2022978 + ldr r0, _080DFD80 @ =gBattle_BG1_X ldrh r0, [r0] strh r0, [r1, 0x1C] - ldr r0, _080DFD88 @ =gUnknown_202297A + ldr r0, _080DFD88 @ =gBattle_BG1_Y ldrh r0, [r0] strh r0, [r1, 0x1E] ldrh r0, [r1, 0x8] adds r0, 0x1 b _080DFE66 .align 2, 0 -_080DFD80: .4byte gUnknown_2022978 +_080DFD80: .4byte gBattle_BG1_X _080DFD84: .4byte 0x0000fff6 -_080DFD88: .4byte gUnknown_202297A +_080DFD88: .4byte gBattle_BG1_Y _080DFD8C: .4byte gTasks _080DFD90: lsls r0, r4, 2 @@ -3557,7 +3557,7 @@ _080DFDF8: ldrsh r0, [r4, r2] cmp r0, 0 bne _080DFECA - ldr r2, _080DFE3C @ =gUnknown_2022978 + ldr r2, _080DFE3C @ =gBattle_BG1_X ldr r1, _080DFE40 @ =gUnknown_83FF240 movs r3, 0xC ldrsh r0, [r4, r3] @@ -3578,7 +3578,7 @@ _080DFDF8: strh r0, [r4, 0x8] b _080DFECA .align 2, 0 -_080DFE3C: .4byte gUnknown_2022978 +_080DFE3C: .4byte gBattle_BG1_X _080DFE40: .4byte gUnknown_83FF240 _080DFE44: movs r0, 0x3 @@ -3629,10 +3629,10 @@ _080DFEA0: movs r1, 0x4 movs r2, 0x1 bl SetAnimBgAttribute - ldr r0, _080DFED4 @ =gUnknown_2022978 + ldr r0, _080DFED4 @ =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, _080DFED8 @ =gUnknown_202297A + ldr r0, _080DFED8 @ =gBattle_BG1_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -3648,8 +3648,8 @@ _080DFECA: pop {r0} bx r0 .align 2, 0 -_080DFED4: .4byte gUnknown_2022978 -_080DFED8: .4byte gUnknown_202297A +_080DFED4: .4byte gBattle_BG1_X +_080DFED8: .4byte gBattle_BG1_Y thumb_func_end sub_80DFC50 thumb_func_start sub_80DFEDC @@ -3675,7 +3675,7 @@ sub_80DFEDC: @ 80DFEDC lsls r0, 16 lsrs r5, r0, 16 _080DFF06: - ldr r4, _080E0000 @ =gUnknown_2037F1A + ldr r4, _080E0000 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 bl sub_8074480 @@ -3690,7 +3690,7 @@ _080DFF06: lsrs r0, 24 adds r0, 0x20 strh r0, [r7, 0x22] - ldr r1, _080E0004 @ =gUnknown_2037F02 + ldr r1, _080E0004 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r7, 0x30] ldrh r0, [r1, 0x2] @@ -3748,7 +3748,7 @@ _080DFF06: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim - ldr r1, _080E0004 @ =gUnknown_2037F02 + ldr r1, _080E0004 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r5, 0x30] ldrh r0, [r1, 0x2] @@ -3794,8 +3794,8 @@ _080DFF06: pop {r0} bx r0 .align 2, 0 -_080E0000: .4byte gUnknown_2037F1A -_080E0004: .4byte gUnknown_2037F02 +_080E0000: .4byte gBattleAnimAttacker +_080E0004: .4byte gBattleAnimArgs _080E0008: .4byte gUnknown_83FF26C _080E000C: .4byte gSprites _080E0010: .4byte 0x0000ffff @@ -4076,7 +4076,7 @@ _080E01FC: movs r2, 0 movs r3, 0 bl sub_80730C0 - ldr r1, _080E025C @ =gUnknown_2022978 + ldr r1, _080E025C @ =gBattle_BG1_X ldr r3, _080E0260 @ =0x0000ffc8 adds r0, r3, 0 b _080E02CE @@ -4086,10 +4086,10 @@ _080E024C: .4byte 0x00000d03 _080E0250: .4byte gFile_graphics_battle_anims_masks_morning_sun_tilemap _080E0254: .4byte gFile_graphics_battle_anims_masks_morning_sun_sheet _080E0258: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette -_080E025C: .4byte gUnknown_2022978 +_080E025C: .4byte gBattle_BG1_X _080E0260: .4byte 0x0000ffc8 _080E0264: - ldr r0, _080E02A4 @ =gUnknown_2037F1B + ldr r0, _080E02A4 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerPosition lsls r0, 24 @@ -4099,7 +4099,7 @@ _080E0264: lsrs r0, 24 cmp r0, 0x1 bne _080E02B8 - ldr r1, _080E02A8 @ =gUnknown_2022978 + ldr r1, _080E02A8 @ =gBattle_BG1_X cmp r4, 0x1 bne _080E0288 ldr r2, _080E02AC @ =0x0000ff65 @@ -4119,33 +4119,33 @@ _080E0292: _080E029A: cmp r4, 0x2 bne _080E02D0 - ldr r1, _080E02A8 @ =gUnknown_2022978 + ldr r1, _080E02A8 @ =gBattle_BG1_X ldr r2, _080E02B4 @ =0x0000ffec b _080E02CC .align 2, 0 -_080E02A4: .4byte gUnknown_2037F1B -_080E02A8: .4byte gUnknown_2022978 +_080E02A4: .4byte gBattleAnimTarget +_080E02A8: .4byte gBattle_BG1_X _080E02AC: .4byte 0x0000ff65 _080E02B0: .4byte 0x0000ff8d _080E02B4: .4byte 0x0000ffec _080E02B8: cmp r4, 0x1 bne _080E02C4 - ldr r1, _080E02F0 @ =gUnknown_2022978 + ldr r1, _080E02F0 @ =gBattle_BG1_X ldr r3, _080E02F4 @ =0x0000ff79 adds r0, r3, 0 strh r0, [r1] _080E02C4: cmp r4, 0 bne _080E02D0 - ldr r1, _080E02F0 @ =gUnknown_2022978 + ldr r1, _080E02F0 @ =gBattle_BG1_X ldr r2, _080E02F8 @ =0x0000fff6 _080E02CC: adds r0, r2, 0 _080E02CE: strh r0, [r1] _080E02D0: - ldr r1, _080E02FC @ =gUnknown_202297A + ldr r1, _080E02FC @ =gBattle_BG1_Y movs r0, 0 strh r0, [r1] ldr r0, _080E0300 @ =gTasks @@ -4153,18 +4153,18 @@ _080E02D0: adds r1, r6 lsls r1, 3 adds r1, r0 - ldr r0, _080E02F0 @ =gUnknown_2022978 + ldr r0, _080E02F0 @ =gBattle_BG1_X ldrh r0, [r0] strh r0, [r1, 0x1C] - ldr r0, _080E02FC @ =gUnknown_202297A + ldr r0, _080E02FC @ =gBattle_BG1_Y ldrh r0, [r0] strh r0, [r1, 0x1E] b _080E0384 .align 2, 0 -_080E02F0: .4byte gUnknown_2022978 +_080E02F0: .4byte gBattle_BG1_X _080E02F4: .4byte 0x0000ff79 _080E02F8: .4byte 0x0000fff6 -_080E02FC: .4byte gUnknown_202297A +_080E02FC: .4byte gBattle_BG1_Y _080E0300: .4byte gTasks _080E0304: ldr r1, _080E0338 @ =gTasks @@ -4174,14 +4174,14 @@ _080E0304: adds r5, r0, r1 movs r0, 0 strh r0, [r5, 0xE] - ldr r0, _080E033C @ =gUnknown_2037F1B + ldr r0, _080E033C @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E0348 - ldr r2, _080E0340 @ =gUnknown_2022978 + ldr r2, _080E0340 @ =gBattle_BG1_X ldr r1, _080E0344 @ =gUnknown_83FF284 movs r3, 0xC ldrsh r0, [r5, r3] @@ -4194,11 +4194,11 @@ _080E0304: b _080E035A .align 2, 0 _080E0338: .4byte gTasks -_080E033C: .4byte gUnknown_2037F1B -_080E0340: .4byte gUnknown_2022978 +_080E033C: .4byte gBattleAnimTarget +_080E0340: .4byte gBattle_BG1_X _080E0344: .4byte gUnknown_83FF284 _080E0348: - ldr r2, _080E0378 @ =gUnknown_2022978 + ldr r2, _080E0378 @ =gBattle_BG1_X ldr r1, _080E037C @ =gUnknown_83FF284 movs r3, 0xC ldrsh r0, [r5, r3] @@ -4223,7 +4223,7 @@ _080E035A: strh r0, [r1, 0x8] b _080E0476 .align 2, 0 -_080E0378: .4byte gUnknown_2022978 +_080E0378: .4byte gBattle_BG1_X _080E037C: .4byte gUnknown_83FF284 _080E0380: .4byte gTasks _080E0384: @@ -4332,10 +4332,10 @@ _080E044C: movs r1, 0x4 movs r2, 0x1 bl SetAnimBgAttribute - ldr r0, _080E0480 @ =gUnknown_2022978 + ldr r0, _080E0480 @ =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, _080E0484 @ =gUnknown_202297A + ldr r0, _080E0484 @ =gBattle_BG1_Y strh r1, [r0] movs r0, 0x50 movs r1, 0 @@ -4351,8 +4351,8 @@ _080E0476: pop {r0} bx r0 .align 2, 0 -_080E0480: .4byte gUnknown_2022978 -_080E0484: .4byte gUnknown_202297A +_080E0480: .4byte gBattle_BG1_X +_080E0484: .4byte gBattle_BG1_Y thumb_func_end sub_80E017C thumb_func_start sub_80E0488 @@ -4426,7 +4426,7 @@ _080E04FE: ldrh r0, [r4, 0x32] adds r0, 0x80 strh r0, [r4, 0x32] - ldr r0, _080E052C @ =gUnknown_2037F1A + ldr r0, _080E052C @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4438,7 +4438,7 @@ _080E04FE: negs r0, r0 b _080E0536 .align 2, 0 -_080E052C: .4byte gUnknown_2037F1A +_080E052C: .4byte gBattleAnimAttacker _080E0530: ldrh r0, [r4, 0x30] lsls r0, 16 @@ -4473,7 +4473,7 @@ sub_80E0558: @ 80E0558 lsls r0, 3 ldr r1, _080E057C @ =gTasks adds r4, r0, r1 - ldr r5, _080E0580 @ =gUnknown_2037F02 + ldr r5, _080E0580 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 @@ -4483,7 +4483,7 @@ sub_80E0558: @ 80E0558 b _080E0618 .align 2, 0 _080E057C: .4byte gTasks -_080E0580: .4byte gUnknown_2037F02 +_080E0580: .4byte gBattleAnimArgs _080E0584: movs r1, 0x4 ldrsh r0, [r5, r1] @@ -4531,12 +4531,12 @@ _080E059C: ldrsh r0, [r5, r1] cmp r0, 0 bne _080E05E8 - ldr r0, _080E05E4 @ =gUnknown_2037F1A + ldr r0, _080E05E4 @ =gBattleAnimAttacker b _080E05EA .align 2, 0 -_080E05E4: .4byte gUnknown_2037F1A +_080E05E4: .4byte gBattleAnimAttacker _080E05E8: - ldr r0, _080E0620 @ =gUnknown_2037F1B + ldr r0, _080E0620 @ =gBattleAnimTarget _080E05EA: ldrb r0, [r0] bl GetBattlerSide @@ -4565,7 +4565,7 @@ _080E0618: pop {r0} bx r0 .align 2, 0 -_080E0620: .4byte gUnknown_2037F1B +_080E0620: .4byte gBattleAnimTarget _080E0624: .4byte sub_80E0628 thumb_func_end sub_80E0558 @@ -4754,7 +4754,7 @@ _080E0788: sub_80E0790: @ 80E0790 push {r4,lr} adds r4, r0, 0 - ldr r0, _080E07AC @ =gUnknown_2037F1A + ldr r0, _080E07AC @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4762,16 +4762,16 @@ sub_80E0790: @ 80E0790 cmp r0, 0 bne _080E07B4 strh r0, [r4, 0x20] - ldr r1, _080E07B0 @ =gUnknown_2037F02 + ldr r1, _080E07B0 @ =gBattleAnimArgs ldrh r0, [r1] b _080E07BE .align 2, 0 -_080E07AC: .4byte gUnknown_2037F1A -_080E07B0: .4byte gUnknown_2037F02 +_080E07AC: .4byte gBattleAnimAttacker +_080E07B0: .4byte gBattleAnimArgs _080E07B4: movs r0, 0xF0 strh r0, [r4, 0x20] - ldr r1, _080E07D8 @ =gUnknown_2037F02 + ldr r1, _080E07D8 @ =gBattleAnimArgs ldrh r0, [r1] subs r0, 0x1E _080E07BE: @@ -4787,7 +4787,7 @@ _080E07BE: pop {r0} bx r0 .align 2, 0 -_080E07D8: .4byte gUnknown_2037F02 +_080E07D8: .4byte gBattleAnimArgs _080E07DC: .4byte sub_80E07E0 thumb_func_end sub_80E0790 @@ -4798,7 +4798,7 @@ sub_80E07E0: @ 80E07E0 ldrh r0, [r4, 0x2E] adds r0, 0x3 strh r0, [r4, 0x2E] - ldr r0, _080E0820 @ =gUnknown_2037F1A + ldr r0, _080E0820 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4824,7 +4824,7 @@ _080E0812: bl Sin b _080E0848 .align 2, 0 -_080E0820: .4byte gUnknown_2037F1A +_080E0820: .4byte gBattleAnimAttacker _080E0824: ldrh r1, [r4, 0x20] subs r1, 0x5 @@ -4872,7 +4872,7 @@ sub_80E0850: @ 80E0850 movs r0, 0x80 lsls r0, 4 strh r0, [r4, 0x24] - ldr r0, _080E089C @ =gUnknown_2037F02 + ldr r0, _080E089C @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId lsls r0, 24 @@ -4887,7 +4887,7 @@ sub_80E0850: @ 80E0850 bx r0 .align 2, 0 _080E0898: .4byte gTasks -_080E089C: .4byte gUnknown_2037F02 +_080E089C: .4byte gBattleAnimArgs _080E08A0: .4byte sub_80E08A4 thumb_func_end sub_80E0850 @@ -5108,12 +5108,12 @@ sub_80E0A3C: @ 80E0A3C ldrsh r0, [r5, r1] cmp r0, 0 bne _080E0A9C - ldr r6, _080E0A94 @ =gUnknown_2037F02 + ldr r6, _080E0A94 @ =gBattleAnimArgs movs r2, 0x4 ldrsh r0, [r6, r2] cmp r0, 0 bne _080E0A70 - ldr r4, _080E0A98 @ =gUnknown_2037F1A + ldr r4, _080E0A98 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -5146,8 +5146,8 @@ _080E0A70: strh r0, [r5, 0x2E] b _080E0AFA .align 2, 0 -_080E0A94: .4byte gUnknown_2037F02 -_080E0A98: .4byte gUnknown_2037F1A +_080E0A94: .4byte gBattleAnimArgs +_080E0A98: .4byte gBattleAnimAttacker _080E0A9C: ldrh r1, [r5, 0x30] lsls r0, r1, 16 @@ -5218,20 +5218,20 @@ sub_80E0B00: @ 80E0B00 ldrsh r0, [r2, r1] cmp r0, 0 bne _080E0C0C - ldr r0, _080E0B34 @ =gUnknown_2037F02 + ldr r0, _080E0B34 @ =gBattleAnimArgs movs r3, 0 ldrsh r1, [r0, r3] mov r8, r0 cmp r1, 0 bne _080E0B3C - ldr r0, _080E0B38 @ =gUnknown_2037F1A + ldr r0, _080E0B38 @ =gBattleAnimAttacker b _080E0B3E .align 2, 0 _080E0B30: .4byte gTasks -_080E0B34: .4byte gUnknown_2037F02 -_080E0B38: .4byte gUnknown_2037F1A +_080E0B34: .4byte gBattleAnimArgs +_080E0B38: .4byte gBattleAnimAttacker _080E0B3C: - ldr r0, _080E0B78 @ =gUnknown_2037F1B + ldr r0, _080E0B78 @ =gBattleAnimTarget _080E0B3E: ldrb r0, [r0] strh r0, [r2, 0x1E] @@ -5261,7 +5261,7 @@ _080E0B3E: lsls r2, r5, 4 b _080E0BE8 .align 2, 0 -_080E0B78: .4byte gUnknown_2037F1B +_080E0B78: .4byte gBattleAnimTarget _080E0B7C: .4byte gTasks _080E0B80: cmp r0, 0x2 @@ -5443,7 +5443,7 @@ _080E0CDA: subs r0, r1 _080E0CE2: strh r0, [r4, 0x30] - ldr r0, _080E0CF4 @ =gUnknown_2037F02 + ldr r0, _080E0CF4 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r4, 0x32] lsls r0, 16 @@ -5452,7 +5452,7 @@ _080E0CE2: ldr r0, _080E0CF8 @ =0x0000fff8 b _080E0CFE .align 2, 0 -_080E0CF4: .4byte gUnknown_2037F02 +_080E0CF4: .4byte gBattleAnimArgs _080E0CF8: .4byte 0x0000fff8 _080E0CFC: movs r0, 0xF8 @@ -5546,7 +5546,7 @@ sub_80E0D74: @ 80E0D74 ldrh r1, [r4] movs r0, 0x44 bl SetGpuReg - ldr r0, _080E0DE4 @ =gUnknown_2037F02 + ldr r0, _080E0DE4 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] adds r0, r5, 0 @@ -5574,7 +5574,7 @@ sub_80E0D74: @ 80E0D74 _080E0DD8: .4byte 0x00001f3f _080E0DDC: .4byte gUnknown_2022984 _080E0DE0: .4byte gUnknown_2022986 -_080E0DE4: .4byte gUnknown_2037F02 +_080E0DE4: .4byte gBattleAnimArgs _080E0DE8: .4byte sub_80E0DEC thumb_func_end sub_80E0D74 @@ -5672,7 +5672,7 @@ _080E0E90: .4byte 0x00003f3f sub_80E0E94: @ 80E0E94 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _080E0ED0 @ =gUnknown_2037F1A + ldr r5, _080E0ED0 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -5685,7 +5685,7 @@ sub_80E0E94: @ 80E0E94 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r1, _080E0ED4 @ =gUnknown_2037F02 + ldr r1, _080E0ED4 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] @@ -5698,8 +5698,8 @@ sub_80E0E94: @ 80E0E94 pop {r0} bx r0 .align 2, 0 -_080E0ED0: .4byte gUnknown_2037F1A -_080E0ED4: .4byte gUnknown_2037F02 +_080E0ED0: .4byte gBattleAnimAttacker +_080E0ED4: .4byte gBattleAnimArgs _080E0ED8: .4byte sub_80E0EDC thumb_func_end sub_80E0E94 @@ -5733,15 +5733,15 @@ sub_80E0EDC: @ 80E0EDC cmp r0, 0xC3 ble _080E0F28 _080E0F16: - ldr r0, _080E0F24 @ =gUnknown_2037F1A + ldr r0, _080E0F24 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_807685C subs r0, 0x1 b _080E0F32 .align 2, 0 -_080E0F24: .4byte gUnknown_2037F1A +_080E0F24: .4byte gBattleAnimAttacker _080E0F28: - ldr r0, _080E0F74 @ =gUnknown_2037F1A + ldr r0, _080E0F74 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_807685C adds r0, 0x1 @@ -5779,7 +5779,7 @@ _080E0F32: strh r0, [r4, 0x38] b _080E0FA8 .align 2, 0 -_080E0F74: .4byte gUnknown_2037F1A +_080E0F74: .4byte gBattleAnimAttacker _080E0F78: cmp r2, 0x1 bne _080E0FA8 @@ -5826,7 +5826,7 @@ sub_80E0FB8: @ 80E0FB8 str r0, [sp, 0x18] movs r0, 0 bl GetAnimBankSpriteId - ldr r0, _080E1040 @ =gUnknown_2037F1A + ldr r0, _080E1040 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -5835,7 +5835,7 @@ sub_80E0FB8: @ 80E0FB8 movs r0, 0 str r0, [sp, 0x1C] ldr r6, _080E1044 @ =gBattlerPartyIndexes - ldr r4, _080E1048 @ =gUnknown_2037F1B + ldr r4, _080E1048 @ =gBattleAnimTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -5878,9 +5878,9 @@ sub_80E0FB8: @ 80E0FB8 adds r0, r7 b _080E1062 .align 2, 0 -_080E1040: .4byte gUnknown_2037F1A +_080E1040: .4byte gBattleAnimAttacker _080E1044: .4byte gBattlerPartyIndexes -_080E1048: .4byte gUnknown_2037F1B +_080E1048: .4byte gBattleAnimTarget _080E104C: .4byte gPlayerParty _080E1050: .4byte gUnknown_2024018 _080E1054: @@ -5909,7 +5909,7 @@ _080E107C: movs r2, 0x1 str r2, [sp, 0x1C] ldr r6, _080E10E0 @ =gBattlerPartyIndexes - ldr r4, _080E10E4 @ =gUnknown_2037F1B + ldr r4, _080E10E4 @ =gBattleAnimTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -5954,7 +5954,7 @@ _080E107C: b _080E1100 .align 2, 0 _080E10E0: .4byte gBattlerPartyIndexes -_080E10E4: .4byte gUnknown_2037F1B +_080E10E4: .4byte gBattleAnimTarget _080E10E8: .4byte gEnemyParty _080E10EC: .4byte gUnknown_2024018 _080E10F0: .4byte gPlayerParty @@ -5977,12 +5977,12 @@ _080E110E: ldr r3, _080E11FC @ =0x0000ffec mov r8, r3 _080E1112: - ldr r0, _080E1200 @ =gUnknown_2037F1A + ldr r0, _080E1200 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_8076884 lsls r0, 24 lsrs r7, r0, 24 - ldr r5, _080E1200 @ =gUnknown_2037F1A + ldr r5, _080E1200 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 bl sub_8074480 @@ -6007,7 +6007,7 @@ _080E1112: str r3, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] - ldr r0, _080E1204 @ =gUnknown_2037F1B + ldr r0, _080E1204 @ =gBattleAnimTarget ldrb r0, [r0] str r0, [sp, 0x10] movs r0, 0x1 @@ -6089,8 +6089,8 @@ _080E1112: bx r0 .align 2, 0 _080E11FC: .4byte 0x0000ffec -_080E1200: .4byte gUnknown_2037F1A -_080E1204: .4byte gUnknown_2037F1B +_080E1200: .4byte gBattleAnimAttacker +_080E1204: .4byte gBattleAnimTarget _080E1208: .4byte gSprites _080E120C: .4byte 0x00007fff _080E1210: .4byte gTasks @@ -6222,19 +6222,19 @@ sub_80E12F8: @ 80E12F8 lsls r1, 3 ldr r0, _080E1318 @ =gTasks adds r4, r1, r0 - ldr r0, _080E131C @ =gUnknown_2037F02 + ldr r0, _080E131C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E1324 - ldr r0, _080E1320 @ =gUnknown_2037F1A + ldr r0, _080E1320 @ =gBattleAnimAttacker b _080E1326 .align 2, 0 _080E1318: .4byte gTasks -_080E131C: .4byte gUnknown_2037F02 -_080E1320: .4byte gUnknown_2037F1A +_080E131C: .4byte gBattleAnimArgs +_080E1320: .4byte gBattleAnimAttacker _080E1324: - ldr r0, _080E13A4 @ =gUnknown_2037F1B + ldr r0, _080E13A4 @ =gBattleAnimTarget _080E1326: ldrb r5, [r0] movs r6, 0 @@ -6274,7 +6274,7 @@ _080E136C: ldrh r0, [r4, 0x22] adds r0, 0x42 strh r0, [r4, 0x24] - ldr r0, _080E13A8 @ =gUnknown_2037F02 + ldr r0, _080E13A8 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId lsls r0, 24 @@ -6291,31 +6291,31 @@ _080E136C: ldr r1, _080E13B0 @ =0x00003f42 movs r0, 0x50 bl SetGpuReg - ldr r0, _080E13B4 @ =gUnknown_2022978 + ldr r0, _080E13B4 @ =gBattle_BG1_X ldrh r5, [r0] - ldr r0, _080E13B8 @ =gUnknown_202297A + ldr r0, _080E13B8 @ =gBattle_BG1_Y b _080E13CE .align 2, 0 -_080E13A4: .4byte gUnknown_2037F1B -_080E13A8: .4byte gUnknown_2037F02 +_080E13A4: .4byte gBattleAnimTarget +_080E13A8: .4byte gBattleAnimArgs _080E13AC: .4byte 0x04000014 _080E13B0: .4byte 0x00003f42 -_080E13B4: .4byte gUnknown_2022978 -_080E13B8: .4byte gUnknown_202297A +_080E13B4: .4byte gBattle_BG1_X +_080E13B8: .4byte gBattle_BG1_Y _080E13BC: ldr r0, _080E1434 @ =0x04000018 str r0, [sp] ldr r1, _080E1438 @ =0x00003f44 movs r0, 0x50 bl SetGpuReg - ldr r0, _080E143C @ =gUnknown_202297C + ldr r0, _080E143C @ =gBattle_BG2_X ldrh r5, [r0] - ldr r0, _080E1440 @ =gUnknown_202297E + ldr r0, _080E1440 @ =gBattle_BG2_Y _080E13CE: ldrh r3, [r0] movs r7, 0 movs r2, 0 - ldr r6, _080E1444 @ =gUnknown_2038700 + ldr r6, _080E1444 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r0, r6 @@ -6356,7 +6356,7 @@ _080E13DE: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams ldr r0, _080E144C @ =sub_80E1450 str r0, [r4] add sp, 0xC @@ -6366,9 +6366,9 @@ _080E13DE: .align 2, 0 _080E1434: .4byte 0x04000018 _080E1438: .4byte 0x00003f44 -_080E143C: .4byte gUnknown_202297C -_080E1440: .4byte gUnknown_202297E -_080E1444: .4byte gUnknown_2038700 +_080E143C: .4byte gBattle_BG2_X +_080E1440: .4byte gBattle_BG2_Y +_080E1444: .4byte gScanlineEffectRegBuffers _080E1448: .4byte 0xa6600001 _080E144C: .4byte sub_80E1450 thumb_func_end sub_80E12F8 @@ -6394,20 +6394,20 @@ sub_80E1450: @ 80E1450 lsrs r0, 24 cmp r0, 0x1 bne _080E1490 - ldr r0, _080E1488 @ =gUnknown_2022978 + ldr r0, _080E1488 @ =gBattle_BG1_X ldrh r0, [r0] str r0, [sp, 0x4] - ldr r0, _080E148C @ =gUnknown_202297A + ldr r0, _080E148C @ =gBattle_BG1_Y b _080E1498 .align 2, 0 _080E1484: .4byte gTasks -_080E1488: .4byte gUnknown_2022978 -_080E148C: .4byte gUnknown_202297A +_080E1488: .4byte gBattle_BG1_X +_080E148C: .4byte gBattle_BG1_Y _080E1490: - ldr r0, _080E14B0 @ =gUnknown_202297C + ldr r0, _080E14B0 @ =gBattle_BG2_X ldrh r0, [r0] str r0, [sp, 0x4] - ldr r0, _080E14B4 @ =gUnknown_202297E + ldr r0, _080E14B4 @ =gBattle_BG2_Y _080E1498: ldrh r0, [r0] str r0, [sp, 0x8] @@ -6423,8 +6423,8 @@ _080E14A6: beq _080E14C6 b _080E16F4 .align 2, 0 -_080E14B0: .4byte gUnknown_202297C -_080E14B4: .4byte gUnknown_202297E +_080E14B0: .4byte gBattle_BG2_X +_080E14B4: .4byte gBattle_BG2_Y _080E14B8: cmp r0, 0x2 bne _080E14BE @@ -6480,7 +6480,7 @@ _080E14C6: ldrsh r0, [r6, r3] cmp r1, r0 ble _080E15E6 - ldr r0, _080E163C @ =gUnknown_2039600 + ldr r0, _080E163C @ =gScanlineEffect mov r10, r0 ldr r1, [sp, 0x4] lsls r0, r1, 16 @@ -6501,7 +6501,7 @@ _080E1536: subs r0, r1 lsls r0, 7 adds r2, r0 - ldr r0, _080E1640 @ =gUnknown_2038700 + ldr r0, _080E1640 @ =gScanlineEffectRegBuffers adds r2, r0 lsls r4, 16 asrs r4, 16 @@ -6519,7 +6519,7 @@ _080E1536: subs r0, r1 lsls r0, 7 adds r3, r0 - ldr r1, _080E1640 @ =gUnknown_2038700 + ldr r1, _080E1640 @ =gScanlineEffectRegBuffers adds r3, r1 lsls r1, r7, 16 asrs r1, 16 @@ -6529,7 +6529,7 @@ _080E1536: lsls r2, r7, 16 asrs r2, 16 lsls r0, r2, 1 - ldr r7, _080E1644 @ =gUnknown_825E074 + ldr r7, _080E1644 @ =gSineTable adds r0, r7 ldrh r0, [r0] lsls r0, 16 @@ -6583,7 +6583,7 @@ _080E15E6: lsls r1, r2, 17 cmp r1, 0 blt _080E1612 - ldr r4, _080E1640 @ =gUnknown_2038700 + ldr r4, _080E1640 @ =gScanlineEffectRegBuffers ldr r7, [sp, 0x4] lsls r0, r7, 16 asrs r0, 16 @@ -6625,9 +6625,9 @@ _080E1612: strh r0, [r6, 0xE] b _080E1652 .align 2, 0 -_080E163C: .4byte gUnknown_2039600 -_080E1640: .4byte gUnknown_2038700 -_080E1644: .4byte gUnknown_825E074 +_080E163C: .4byte gScanlineEffect +_080E1640: .4byte gScanlineEffectRegBuffers +_080E1644: .4byte gSineTable _080E1648: .4byte 0xffff0000 _080E164C: ldrh r0, [r6, 0x10] @@ -6667,14 +6667,14 @@ _080E1684: asrs r0, 16 cmp r0, 0xC ble _080E16F4 - ldr r1, _080E16A0 @ =gUnknown_2039600 + ldr r1, _080E16A0 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0 strh r0, [r6, 0xC] b _080E16E6 .align 2, 0 -_080E16A0: .4byte gUnknown_2039600 +_080E16A0: .4byte gScanlineEffect _080E16A4: ldrh r0, [r6, 0xC] adds r0, 0x1 @@ -6741,7 +6741,7 @@ sub_80E1704: @ 80E1704 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, _080E1740 @ =gUnknown_2037F02 + ldr r0, _080E1740 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId adds r1, r0, 0 @@ -6758,7 +6758,7 @@ sub_80E1704: @ 80E1704 bx r0 .align 2, 0 _080E173C: .4byte gTasks -_080E1740: .4byte gUnknown_2037F02 +_080E1740: .4byte gBattleAnimArgs _080E1744: .4byte gUnknown_83FF3D0 _080E1748: .4byte sub_80E174C thumb_func_end sub_80E1704 @@ -6921,7 +6921,7 @@ sub_80E186C: @ 80E186C ldrh r6, [r4, 0x20] ldrh r5, [r4, 0x22] bl sub_8074FCC - ldr r0, _080E18B4 @ =gUnknown_2037F02 + ldr r0, _080E18B4 @ =gBattleAnimArgs ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAffineAnim @@ -6948,7 +6948,7 @@ sub_80E186C: @ 80E186C pop {r0} bx r0 .align 2, 0 -_080E18B4: .4byte gUnknown_2037F02 +_080E18B4: .4byte gBattleAnimArgs _080E18B8: .4byte sub_80E18BC thumb_func_end sub_80E186C @@ -7012,13 +7012,13 @@ _080E1922: sub_80E1928: @ 80E1928 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080E1980 @ =gUnknown_2037F02 + ldr r6, _080E1980 @ =gBattleAnimArgs ldrh r0, [r6, 0x6] strh r0, [r5, 0x2E] ldrb r1, [r6] adds r0, r5, 0 bl StartSpriteAffineAnim - ldr r0, _080E1984 @ =gUnknown_2037F1B + ldr r0, _080E1984 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -7028,7 +7028,7 @@ sub_80E1928: @ 80E1928 negs r0, r0 strh r0, [r6, 0x2] _080E194E: - ldr r4, _080E1988 @ =gUnknown_2037F1A + ldr r4, _080E1988 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -7051,9 +7051,9 @@ _080E194E: pop {r0} bx r0 .align 2, 0 -_080E1980: .4byte gUnknown_2037F02 -_080E1984: .4byte gUnknown_2037F1B -_080E1988: .4byte gUnknown_2037F1A +_080E1980: .4byte gBattleAnimArgs +_080E1984: .4byte gBattleAnimTarget +_080E1988: .4byte gBattleAnimAttacker _080E198C: .4byte sub_80B1D3C thumb_func_end sub_80E1928 @@ -7441,13 +7441,13 @@ sub_80E1C48: @ 80E1C48 lsls r0, 3 mov r1, r8 adds r4, r0, r1 - ldr r1, _080E1CAC @ =gUnknown_2023D44 - ldr r2, _080E1CB0 @ =gUnknown_2037F1A + ldr r1, _080E1CAC @ =gBattlerSpriteIds + ldr r2, _080E1CB0 @ =gBattleAnimAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x26] - ldr r5, _080E1CB4 @ =gUnknown_2037F02 + ldr r5, _080E1CB4 @ =gBattleAnimArgs ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5] @@ -7478,9 +7478,9 @@ _080E1C8C: b _080E1D2C .align 2, 0 _080E1CA8: .4byte gTasks -_080E1CAC: .4byte gUnknown_2023D44 -_080E1CB0: .4byte gUnknown_2037F1A -_080E1CB4: .4byte gUnknown_2037F02 +_080E1CAC: .4byte gBattlerSpriteIds +_080E1CB0: .4byte gBattleAnimAttacker +_080E1CB4: .4byte gBattleAnimArgs _080E1CB8: .4byte 0xffff8000 _080E1CBC: movs r7, 0x2 @@ -7503,7 +7503,7 @@ _080E1CD8: orrs r0, r1 _080E1CE0: strh r0, [r4, 0xC] - ldr r0, _080E1D0C @ =gUnknown_2037F02 + ldr r0, _080E1D0C @ =gBattleAnimArgs movs r3, 0x4 ldrsh r1, [r0, r3] movs r2, 0x80 @@ -7523,7 +7523,7 @@ _080E1CE0: b _080E1D2A .align 2, 0 _080E1D08: .4byte 0xffff8000 -_080E1D0C: .4byte gUnknown_2037F02 +_080E1D0C: .4byte gBattleAnimArgs _080E1D10: .4byte gTasks _080E1D14: .4byte 0x00007fff _080E1D18: @@ -7572,7 +7572,7 @@ sub_80E1D5C: @ 80E1D5C lsls r0, 3 ldr r1, _080E1D94 @ =gTasks adds r5, r0, r1 - ldr r4, _080E1D98 @ =gUnknown_2037F02 + ldr r4, _080E1D98 @ =gBattleAnimArgs movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 @@ -7590,14 +7590,14 @@ _080E1D7C: ldrsh r0, [r4, r1] cmp r0, 0 bne _080E1DA0 - ldr r0, _080E1D9C @ =gUnknown_2037F1A + ldr r0, _080E1D9C @ =gBattleAnimAttacker b _080E1DA2 .align 2, 0 _080E1D94: .4byte gTasks -_080E1D98: .4byte gUnknown_2037F02 -_080E1D9C: .4byte gUnknown_2037F1A +_080E1D98: .4byte gBattleAnimArgs +_080E1D9C: .4byte gBattleAnimAttacker _080E1DA0: - ldr r0, _080E1DF0 @ =gUnknown_2037F1B + ldr r0, _080E1DF0 @ =gBattleAnimTarget _080E1DA2: ldrb r4, [r0] adds r0, r4, 0 @@ -7617,7 +7617,7 @@ _080E1DA2: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] - ldr r0, _080E1DF4 @ =gUnknown_2037F02 + ldr r0, _080E1DF4 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId adds r1, r0, 0 @@ -7633,8 +7633,8 @@ _080E1DA2: pop {r0} bx r0 .align 2, 0 -_080E1DF0: .4byte gUnknown_2037F1B -_080E1DF4: .4byte gUnknown_2037F02 +_080E1DF0: .4byte gBattleAnimTarget +_080E1DF4: .4byte gBattleAnimArgs _080E1DF8: .4byte gUnknown_83FF52C _080E1DFC: .4byte sub_80E1E00 thumb_func_end sub_80E1D5C @@ -7888,7 +7888,7 @@ sub_80E1FC4: @ 80E1FC4 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] - ldr r1, _080E2010 @ =gUnknown_2037F02 + ldr r1, _080E2010 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] @@ -7915,7 +7915,7 @@ sub_80E1FC4: @ 80E1FC4 bx r0 .align 2, 0 _080E200C: .4byte gTasks -_080E2010: .4byte gUnknown_2037F02 +_080E2010: .4byte gBattleAnimArgs _080E2014: .4byte gSprites _080E2018: .4byte sub_80E201C thumb_func_end sub_80E1FC4 @@ -7983,9 +7983,9 @@ sub_80E2084: @ 80E2084 lsrs r0, 24 movs r2, 0xD0 lsls r2, 1 - ldr r1, _080E20C0 @ =gUnknown_2037F1A + ldr r1, _080E20C0 @ =gBattleAnimAttacker ldrb r3, [r1] - ldr r1, _080E20C4 @ =gUnknown_2037F02 + ldr r1, _080E20C4 @ =gBattleAnimArgs ldrb r1, [r1] str r1, [sp] movs r1, 0xA @@ -8006,8 +8006,8 @@ sub_80E2084: @ 80E2084 pop {r0} bx r0 .align 2, 0 -_080E20C0: .4byte gUnknown_2037F1A -_080E20C4: .4byte gUnknown_2037F02 +_080E20C0: .4byte gBattleAnimAttacker +_080E20C4: .4byte gBattleAnimArgs _080E20C8: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_sheet _080E20CC: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_tilemap _080E20D0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette @@ -8017,14 +8017,14 @@ _080E20D0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette sub_80E20D4: @ 80E20D4 push {r4-r6,lr} adds r5, r0, 0 - ldr r6, _080E212C @ =gUnknown_2037F1A + ldr r6, _080E212C @ =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E20F0 - ldr r1, _080E2130 @ =gUnknown_2037F02 + ldr r1, _080E2130 @ =gBattleAnimArgs ldrh r0, [r1] negs r0, r0 strh r0, [r1] @@ -8033,7 +8033,7 @@ _080E20F0: movs r1, 0 bl sub_8074480 lsls r0, 24 - ldr r4, _080E2130 @ =gUnknown_2037F02 + ldr r4, _080E2130 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r4] adds r0, r1 @@ -8057,8 +8057,8 @@ _080E20F0: strh r0, [r5, 0x30] b _080E2160 .align 2, 0 -_080E212C: .4byte gUnknown_2037F1A -_080E2130: .4byte gUnknown_2037F02 +_080E212C: .4byte gBattleAnimAttacker +_080E2130: .4byte gBattleAnimArgs _080E2134: .4byte 0x0000fd80 _080E2138: cmp r0, 0x1 @@ -8082,7 +8082,7 @@ _080E2152: lsls r0, 2 strh r0, [r5, 0x2E] _080E2160: - ldr r0, _080E218C @ =gUnknown_2037F1A + ldr r0, _080E218C @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -8104,7 +8104,7 @@ _080E2180: pop {r0} bx r0 .align 2, 0 -_080E218C: .4byte gUnknown_2037F1A +_080E218C: .4byte gBattleAnimAttacker _080E2190: .4byte sub_80E2194 thumb_func_end sub_80E20D4 @@ -8156,7 +8156,7 @@ sub_80E21CC: @ 80E21CC movs r0, 0x3 strh r0, [r6, 0x14] strh r1, [r6, 0x16] - ldr r5, _080E2220 @ =gUnknown_2037F1A + ldr r5, _080E2220 @ =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 @@ -8182,7 +8182,7 @@ _080E2216: b _080E2248 .align 2, 0 _080E221C: .4byte gTasks -_080E2220: .4byte gUnknown_2037F1A +_080E2220: .4byte gBattleAnimAttacker _080E2224: ldrb r0, [r5] movs r1, 0x2 @@ -8203,7 +8203,7 @@ _080E2244: subs r0, r4, r0 _080E2248: strh r0, [r6, 0x1E] - ldr r5, _080E229C @ =gUnknown_2037F1A + ldr r5, _080E229C @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x3 bl sub_8074480 @@ -8222,7 +8222,7 @@ _080E226C: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x20] - ldr r4, _080E22A0 @ =gUnknown_2037F1B + ldr r4, _080E22A0 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -8241,8 +8241,8 @@ _080E226C: pop {r0} bx r0 .align 2, 0 -_080E229C: .4byte gUnknown_2037F1A -_080E22A0: .4byte gUnknown_2037F1B +_080E229C: .4byte gBattleAnimAttacker +_080E22A0: .4byte gBattleAnimTarget _080E22A4: .4byte sub_80E22A8 thumb_func_end sub_80E21CC @@ -8551,7 +8551,7 @@ _080E24DC: .4byte gTasks sub_80E24E0: @ 80E24E0 push {r4,lr} adds r4, r0, 0 - ldr r1, _080E250C @ =gUnknown_2037F02 + ldr r1, _080E250C @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] @@ -8571,7 +8571,7 @@ sub_80E24E0: @ 80E24E0 pop {r0} bx r0 .align 2, 0 -_080E250C: .4byte gUnknown_2037F02 +_080E250C: .4byte gBattleAnimArgs _080E2510: .4byte DestroyAnimSprite _080E2514: .4byte sub_8075764 thumb_func_end sub_80E24E0 @@ -8591,7 +8591,7 @@ sub_80E2518: @ 80E2518 lsls r0, 3 ldr r1, _080E2638 @ =gTasks adds r7, r0, r1 - ldr r0, _080E263C @ =gUnknown_2037F1A + ldr r0, _080E263C @ =gBattleAnimAttacker mov r10, r0 ldrb r0, [r0] movs r1, 0x2 @@ -8606,7 +8606,7 @@ sub_80E2518: @ 80E2518 lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] - ldr r0, _080E2640 @ =gUnknown_2037F1B + ldr r0, _080E2640 @ =gBattleAnimTarget mov r8, r0 ldrb r0, [r0] movs r1, 0x2 @@ -8716,8 +8716,8 @@ _080E2632: b _080E265A .align 2, 0 _080E2638: .4byte gTasks -_080E263C: .4byte gUnknown_2037F1A -_080E2640: .4byte gUnknown_2037F1B +_080E263C: .4byte gBattleAnimAttacker +_080E2640: .4byte gBattleAnimTarget _080E2644: .4byte gUnknown_83FF62C _080E2648: .4byte gSprites _080E264C: .4byte 0x0000ffe0 @@ -8877,19 +8877,19 @@ _080E276E: sub_80E2774: @ 80E2774 push {r4-r6,lr} adds r4, r0, 0 - ldr r0, _080E2788 @ =gUnknown_2037F02 + ldr r0, _080E2788 @ =gBattleAnimArgs movs r2, 0 ldrsh r1, [r0, r2] adds r6, r0, 0 cmp r1, 0 bne _080E2790 - ldr r0, _080E278C @ =gUnknown_2037F1A + ldr r0, _080E278C @ =gBattleAnimAttacker b _080E2792 .align 2, 0 -_080E2788: .4byte gUnknown_2037F02 -_080E278C: .4byte gUnknown_2037F1A +_080E2788: .4byte gBattleAnimArgs +_080E278C: .4byte gBattleAnimAttacker _080E2790: - ldr r0, _080E27F8 @ =gUnknown_2037F1B + ldr r0, _080E27F8 @ =gBattleAnimTarget _080E2792: ldrb r5, [r0] ldrh r2, [r4, 0x4] @@ -8942,7 +8942,7 @@ _080E27C0: subs r0, 0x8 b _080E280E .align 2, 0 -_080E27F8: .4byte gUnknown_2037F1B +_080E27F8: .4byte gBattleAnimTarget _080E27FC: .4byte 0x000003ff _080E2800: .4byte 0xfffffc00 _080E2804: @@ -9072,7 +9072,7 @@ sub_80E28DC: @ 80E28DC push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 - ldr r2, _080E28F4 @ =gUnknown_2037F02 + ldr r2, _080E28F4 @ =gBattleAnimArgs movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 @@ -9081,7 +9081,7 @@ sub_80E28DC: @ 80E28DC bl DestroyAnimVisualTask b _080E2920 .align 2, 0 -_080E28F4: .4byte gUnknown_2037F02 +_080E28F4: .4byte gBattleAnimArgs _080E28F8: ldr r0, _080E2928 @ =gTasks lsls r4, r1, 2 @@ -9210,18 +9210,18 @@ _080E29EA: sub_80E29F0: @ 80E29F0 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _080E2A04 @ =gUnknown_2037F02 + ldr r0, _080E2A04 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E2A0C - ldr r4, _080E2A08 @ =gUnknown_2037F1A + ldr r4, _080E2A08 @ =gBattleAnimAttacker b _080E2A0E .align 2, 0 -_080E2A04: .4byte gUnknown_2037F02 -_080E2A08: .4byte gUnknown_2037F1A +_080E2A04: .4byte gBattleAnimArgs +_080E2A08: .4byte gBattleAnimAttacker _080E2A0C: - ldr r4, _080E2A4C @ =gUnknown_2037F1B + ldr r4, _080E2A4C @ =gBattleAnimTarget _080E2A0E: ldrb r0, [r4] movs r1, 0x2 @@ -9242,7 +9242,7 @@ _080E2A0E: _080E2A32: movs r2, 0 strh r2, [r5, 0x2E] - ldr r1, _080E2A50 @ =gUnknown_2037F02 + ldr r1, _080E2A50 @ =gBattleAnimArgs ldrh r0, [r1, 0x2] strh r0, [r5, 0x30] strh r2, [r5, 0x32] @@ -9254,8 +9254,8 @@ _080E2A32: pop {r0} bx r0 .align 2, 0 -_080E2A4C: .4byte gUnknown_2037F1B -_080E2A50: .4byte gUnknown_2037F02 +_080E2A4C: .4byte gBattleAnimTarget +_080E2A50: .4byte gBattleAnimArgs _080E2A54: .4byte sub_80E2A58 thumb_func_end sub_80E29F0 @@ -9311,7 +9311,7 @@ _080E2AAC: sub_80E2AB0: @ 80E2AB0 push {lr} adds r3, r0, 0 - ldr r0, _080E2ADC @ =gUnknown_2037F02 + ldr r0, _080E2ADC @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -9331,7 +9331,7 @@ sub_80E2AB0: @ 80E2AB0 movs r0, 0x1 b _080E2AE6 .align 2, 0 -_080E2ADC: .4byte gUnknown_2037F02 +_080E2ADC: .4byte gBattleAnimArgs _080E2AE0: movs r0, 0x8C strh r0, [r3, 0x20] @@ -9427,7 +9427,7 @@ _080E2B80: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r3, _080E2BBC @ =gUnknown_825E074 + ldr r3, _080E2BBC @ =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 @@ -9448,7 +9448,7 @@ _080E2B80: _080E2BB8: b _080E2CAE .align 2, 0 -_080E2BBC: .4byte gUnknown_825E074 +_080E2BBC: .4byte gSineTable _080E2BC0: ldrh r0, [r4, 0x30] adds r0, 0x1 @@ -9471,7 +9471,7 @@ _080E2BD2: ldrh r0, [r4, 0x22] subs r0, r1 strh r0, [r4, 0x22] - ldr r3, _080E2C0C @ =gUnknown_825E074 + ldr r3, _080E2C0C @ =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 @@ -9490,7 +9490,7 @@ _080E2BD2: bne _080E2CDC b _080E2CB2 .align 2, 0 -_080E2C0C: .4byte gUnknown_825E074 +_080E2C0C: .4byte gSineTable _080E2C10: ldrh r2, [r4, 0x30] adds r2, 0x1 @@ -9502,7 +9502,7 @@ _080E2C10: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r3, _080E2C68 @ =gUnknown_825E074 + ldr r3, _080E2C68 @ =gSineTable movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 @@ -9537,7 +9537,7 @@ _080E2C5C: bne _080E2CDC b _080E2CAE .align 2, 0 -_080E2C68: .4byte gUnknown_825E074 +_080E2C68: .4byte gSineTable _080E2C6C: .4byte 0x000003ff _080E2C70: .4byte 0xfffffc00 _080E2C74: @@ -9622,7 +9622,7 @@ sub_80E2CE4: @ 80E2CE4 lsrs r7, r0, 24 cmp r7, 0x1 bne _080E2D44 - ldr r5, _080E2D38 @ =gUnknown_2037F1A + ldr r5, _080E2D38 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 bl sub_8074480 @@ -9642,14 +9642,14 @@ sub_80E2CE4: @ 80E2CE4 b _080E2D64 .align 2, 0 _080E2D34: .4byte gTasks -_080E2D38: .4byte gUnknown_2037F1A +_080E2D38: .4byte gBattleAnimAttacker _080E2D3C: ldr r0, _080E2D40 @ =0x0000ffff b _080E2D62 .align 2, 0 _080E2D40: .4byte 0x0000ffff _080E2D44: - ldr r0, _080E2D58 @ =gUnknown_2037F1A + ldr r0, _080E2D58 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -9658,7 +9658,7 @@ _080E2D44: ldr r0, _080E2D5C @ =0x0000ffff b _080E2D62 .align 2, 0 -_080E2D58: .4byte gUnknown_2037F1A +_080E2D58: .4byte gBattleAnimAttacker _080E2D5C: .4byte 0x0000ffff _080E2D60: movs r0, 0x1 @@ -9895,7 +9895,7 @@ _080E2F10: .4byte gSprites sub_80E2F14: @ 80E2F14 push {r4,lr} adds r4, r0, 0 - ldr r0, _080E2F30 @ =gUnknown_2037F02 + ldr r0, _080E2F30 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -9903,13 +9903,13 @@ sub_80E2F14: @ 80E2F14 adds r0, r4, 0 movs r1, 0x1 bl sub_8075160 - ldr r0, _080E2F34 @ =gUnknown_2037F1A + ldr r0, _080E2F34 @ =gBattleAnimAttacker b _080E2F3A .align 2, 0 -_080E2F30: .4byte gUnknown_2037F02 -_080E2F34: .4byte gUnknown_2037F1A +_080E2F30: .4byte gBattleAnimArgs +_080E2F34: .4byte gBattleAnimAttacker _080E2F38: - ldr r0, _080E2F90 @ =gUnknown_2037F1B + ldr r0, _080E2F90 @ =gBattleAnimTarget _080E2F3A: ldrb r0, [r0] strh r0, [r4, 0x3C] @@ -9954,7 +9954,7 @@ _080E2F5E: pop {r0} bx r0 .align 2, 0 -_080E2F90: .4byte gUnknown_2037F1B +_080E2F90: .4byte gBattleAnimTarget _080E2F94: .4byte sub_80E2F98 thumb_func_end sub_80E2F14 @@ -10295,7 +10295,7 @@ _080E3218: .4byte gUnknown_83FF180 sub_80E321C: @ 80E321C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E3250 @ =gUnknown_2037F1B + ldr r4, _080E3250 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -10307,7 +10307,7 @@ sub_80E321C: @ 80E321C lsls r0, 24 cmp r0, 0 bne _080E3258 - ldr r2, _080E3254 @ =gUnknown_2037F02 + ldr r2, _080E3254 @ =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] subs r0, r1, r0 @@ -10316,10 +10316,10 @@ sub_80E321C: @ 80E321C subs r1, r0 b _080E3266 .align 2, 0 -_080E3250: .4byte gUnknown_2037F1B -_080E3254: .4byte gUnknown_2037F02 +_080E3250: .4byte gBattleAnimTarget +_080E3254: .4byte gBattleAnimArgs _080E3258: - ldr r2, _080E328C @ =gUnknown_2037F02 + ldr r2, _080E328C @ =gBattleAnimArgs ldrh r1, [r5, 0x20] ldrh r0, [r2] adds r0, r1, r0 @@ -10347,7 +10347,7 @@ _080E3266: pop {r0} bx r0 .align 2, 0 -_080E328C: .4byte gUnknown_2037F02 +_080E328C: .4byte gBattleAnimArgs _080E3290: .4byte sub_80E319C thumb_func_end sub_80E321C @@ -10431,7 +10431,7 @@ _080E3328: .align 2, 0 _080E3330: .4byte gSprites _080E3334: - ldr r0, _080E336C @ =gUnknown_2037F1A + ldr r0, _080E336C @ =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0 bl LoadBattleMonGfxAndAnimate @@ -10461,7 +10461,7 @@ _080E3360: pop {r0} bx r0 .align 2, 0 -_080E336C: .4byte gUnknown_2037F1A +_080E336C: .4byte gBattleAnimAttacker _080E3370: .4byte sub_80E3374 thumb_func_end sub_80E3294 @@ -10647,7 +10647,7 @@ _080E34CC: .4byte gSprites sub_80E34D0: @ 80E34D0 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E34F4 @ =gUnknown_2037F1B + ldr r4, _080E34F4 @ =gBattleAnimTarget ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -10662,7 +10662,7 @@ sub_80E34D0: @ 80E34D0 ldr r4, _080E34F8 @ =0x0000ff70 b _080E350C .align 2, 0 -_080E34F4: .4byte gUnknown_2037F1B +_080E34F4: .4byte gBattleAnimTarget _080E34F8: .4byte 0x0000ff70 _080E34FC: ldrb r0, [r4] @@ -10673,7 +10673,7 @@ _080E34FC: strb r0, [r1] ldr r4, _080E3528 @ =0x0000ffa0 _080E350C: - ldr r0, _080E352C @ =gUnknown_2037F1B + ldr r0, _080E352C @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x3 bl sub_8074480 @@ -10688,7 +10688,7 @@ _080E350C: bx r0 .align 2, 0 _080E3528: .4byte 0x0000ffa0 -_080E352C: .4byte gUnknown_2037F1B +_080E352C: .4byte gBattleAnimTarget _080E3530: .4byte sub_80E3534 thumb_func_end sub_80E34D0 @@ -10738,7 +10738,7 @@ _080E3588: adds r1, 0x4 movs r5, 0 strh r1, [r4, 0x30] - ldr r2, _080E35C4 @ =gUnknown_825E074 + ldr r2, _080E35C4 @ =gSineTable movs r3, 0x30 ldrsh r0, [r4, r3] lsls r0, 1 @@ -10763,13 +10763,13 @@ _080E3588: strh r5, [r4, 0x26] b _080E361C .align 2, 0 -_080E35C4: .4byte gUnknown_825E074 +_080E35C4: .4byte gSineTable _080E35C8: ldrh r1, [r4, 0x30] adds r1, 0x6 movs r3, 0 strh r1, [r4, 0x30] - ldr r2, _080E35F4 @ =gUnknown_825E074 + ldr r2, _080E35F4 @ =gSineTable movs r5, 0x30 ldrsh r0, [r4, r5] lsls r0, 1 @@ -10787,7 +10787,7 @@ _080E35C8: strh r3, [r4, 0x26] b _080E361C .align 2, 0 -_080E35F4: .4byte gUnknown_825E074 +_080E35F4: .4byte gSineTable _080E35F8: ldrh r0, [r4, 0x30] adds r0, 0x1 @@ -10929,7 +10929,7 @@ _080E36B4: strh r1, [r0, 0x8] ldr r0, _080E3750 @ =gUnknown_2024018 ldr r1, [r0] - ldr r0, _080E3754 @ =gUnknown_2037F1B + ldr r0, _080E3754 @ =gBattleAnimTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -10961,7 +10961,7 @@ _080E3744: .4byte gSprites _080E3748: .4byte 0x0000fff0 _080E374C: .4byte gTasks _080E3750: .4byte gUnknown_2024018 -_080E3754: .4byte gUnknown_2037F1B +_080E3754: .4byte gBattleAnimTarget _080E3758: adds r1, r5, 0 adds r1, 0x3E @@ -11065,7 +11065,7 @@ sub_80E37FC: @ 80E37FC strh r0, [r4, 0x30] ldr r0, _080E3870 @ =gUnknown_2024018 ldr r1, [r0] - ldr r0, _080E3874 @ =gUnknown_2037F1B + ldr r0, _080E3874 @ =gBattleAnimTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -11112,7 +11112,7 @@ _080E3846: b _080E38CE .align 2, 0 _080E3870: .4byte gUnknown_2024018 -_080E3874: .4byte gUnknown_2037F1B +_080E3874: .4byte gBattleAnimTarget _080E3878: ldrh r0, [r4, 0x32] adds r0, 0x1 @@ -11170,7 +11170,7 @@ sub_80E38D8: @ 80E38D8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r3, _080E3924 @ =gUnknown_2037F02 + ldr r3, _080E3924 @ =gBattleAnimArgs movs r2, 0 strh r2, [r3, 0xE] ldr r1, _080E3928 @ =gUnknown_2037EFE @@ -11208,7 +11208,7 @@ _080E3918: pop {r0} bx r0 .align 2, 0 -_080E3924: .4byte gUnknown_2037F02 +_080E3924: .4byte gBattleAnimArgs _080E3928: .4byte gUnknown_2037EFE thumb_func_end sub_80E38D8 @@ -11266,7 +11266,7 @@ _080E3978: ldrh r1, [r6, 0xA] adds r0, r1 strh r0, [r6, 0xA] - ldr r0, _080E39C8 @ =gUnknown_2037F1A + ldr r0, _080E39C8 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11287,7 +11287,7 @@ _080E3978: b _080E39EA .align 2, 0 _080E39C4: .4byte gTasks -_080E39C8: .4byte gUnknown_2037F1A +_080E39C8: .4byte gBattleAnimAttacker _080E39CC: .4byte gSprites _080E39D0: ldr r3, _080E3A24 @ =gSprites @@ -11337,7 +11337,7 @@ _080E3A16: _080E3A24: .4byte gSprites _080E3A28: .4byte gTasks _080E3A2C: - ldr r4, _080E3A90 @ =gUnknown_2037F1A + ldr r4, _080E3A90 @ =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -11384,7 +11384,7 @@ _080E3A2C: lsrs r5, r0, 16 b _080E3AA2 .align 2, 0 -_080E3A90: .4byte gUnknown_2037F1A +_080E3A90: .4byte gBattleAnimAttacker _080E3A94: .4byte gBattlerPartyIndexes _080E3A98: .4byte gPlayerParty _080E3A9C: .4byte gUnknown_2024018 @@ -11476,7 +11476,7 @@ _080E3B32: movs r7, 0x1 ldr r6, _080E3BD4 @ =0x0000ffe0 _080E3B54: - ldr r0, _080E3BD8 @ =gUnknown_2037F1B + ldr r0, _080E3BD8 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 bl sub_8074480 @@ -11490,7 +11490,7 @@ _080E3B54: str r2, [sp, 0x8] mov r4, r9 str r4, [sp, 0xC] - ldr r4, _080E3BDC @ =gUnknown_2037F1A + ldr r4, _080E3BDC @ =gBattleAnimAttacker ldrb r0, [r4] str r0, [sp, 0x10] movs r0, 0 @@ -11538,8 +11538,8 @@ _080E3BBE: .align 2, 0 _080E3BD0: .4byte gSprites _080E3BD4: .4byte 0x0000ffe0 -_080E3BD8: .4byte gUnknown_2037F1B -_080E3BDC: .4byte gUnknown_2037F1A +_080E3BD8: .4byte gBattleAnimTarget +_080E3BDC: .4byte gBattleAnimAttacker _080E3BE0: .4byte gUnknown_2024018 _080E3BE4: .4byte 0x00007fff _080E3BE8: .4byte gTasks @@ -11559,7 +11559,7 @@ _080E3BEC: ldrh r2, [r6, 0xA] adds r0, r2 strh r0, [r6, 0xA] - ldr r0, _080E3C3C @ =gUnknown_2037F1A + ldr r0, _080E3C3C @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11582,7 +11582,7 @@ _080E3BEC: b _080E3C5A .align 2, 0 _080E3C38: .4byte gTasks -_080E3C3C: .4byte gUnknown_2037F1A +_080E3C3C: .4byte gBattleAnimAttacker _080E3C40: .4byte gSprites _080E3C44: ldr r2, _080E3CA8 @ =gSprites @@ -11616,7 +11616,7 @@ _080E3C5A: ldrsh r0, [r6, r1] cmp r0, 0 bne _080E3CDA - ldr r0, _080E3CB0 @ =gUnknown_2037F1A + ldr r0, _080E3CB0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11624,7 +11624,7 @@ _080E3C5A: bne _080E3CB8 lsls r4, r5, 16 asrs r4, 16 - ldr r0, _080E3CB4 @ =gUnknown_2037F1B + ldr r0, _080E3CB4 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl sub_8074480 @@ -11636,12 +11636,12 @@ _080E3C5A: .align 2, 0 _080E3CA8: .4byte gSprites _080E3CAC: .4byte gTasks -_080E3CB0: .4byte gUnknown_2037F1A -_080E3CB4: .4byte gUnknown_2037F1B +_080E3CB0: .4byte gBattleAnimAttacker +_080E3CB4: .4byte gBattleAnimTarget _080E3CB8: lsls r4, r5, 16 asrs r4, 16 - ldr r0, _080E3CFC @ =gUnknown_2037F1B + ldr r0, _080E3CFC @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl sub_8074480 @@ -11653,7 +11653,7 @@ _080E3CCE: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] - ldr r1, _080E3D00 @ =gUnknown_2037F02 + ldr r1, _080E3D00 @ =gBattleAnimArgs ldr r0, _080E3D04 @ =0x0000ffff strh r0, [r1, 0xE] _080E3CDA: @@ -11676,8 +11676,8 @@ _080E3CEC: strh r0, [r1, 0xA] b _080E3D82 .align 2, 0 -_080E3CFC: .4byte gUnknown_2037F1B -_080E3D00: .4byte gUnknown_2037F02 +_080E3CFC: .4byte gBattleAnimTarget +_080E3D00: .4byte gBattleAnimArgs _080E3D04: .4byte 0x0000ffff _080E3D08: .4byte gTasks _080E3D0C: @@ -11700,7 +11700,7 @@ _080E3D0C: ldr r5, _080E3D5C @ =gSprites adds r0, r5 bl sub_8076B20 - ldr r0, _080E3D60 @ =gUnknown_2037F1A + ldr r0, _080E3D60 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11719,7 +11719,7 @@ _080E3D0C: .align 2, 0 _080E3D58: .4byte gTasks _080E3D5C: .4byte gSprites -_080E3D60: .4byte gUnknown_2037F1A +_080E3D60: .4byte gBattleAnimAttacker _080E3D64: lsls r0, r7, 4 adds r0, r7 @@ -11761,7 +11761,7 @@ _080E3D90: ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] - ldr r0, _080E3E08 @ =gUnknown_2037F1A + ldr r0, _080E3E08 @ =gBattleAnimAttacker mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x18] @@ -11801,7 +11801,7 @@ _080E3D90: b _080E3E48 .align 2, 0 _080E3E04: .4byte gTasks -_080E3E08: .4byte gUnknown_2037F1A +_080E3E08: .4byte gBattleAnimAttacker _080E3E0C: .4byte gSprites _080E3E10: ldr r1, _080E3E7C @ =gSprites @@ -11875,7 +11875,7 @@ sub_80E3E84: @ 80E3E84 beq _080E3F36 b _080E3FB8 _080E3E96: - ldr r0, _080E3F14 @ =gUnknown_2037F02 + ldr r0, _080E3F14 @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 @@ -11889,7 +11889,7 @@ _080E3E96: asrs r1, 24 movs r0, 0x73 bl PlaySE12WithPanning - ldr r0, _080E3F18 @ =gUnknown_2037F1B + ldr r0, _080E3F18 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 bl sub_8074480 @@ -11909,7 +11909,7 @@ _080E3E96: negs r0, r0 ands r0, r1 strb r0, [r2] - ldr r0, _080E3F20 @ =gUnknown_2037F1A + ldr r0, _080E3F20 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11933,10 +11933,10 @@ _080E3E96: strb r0, [r1] b _080E3FB8 .align 2, 0 -_080E3F14: .4byte gUnknown_2037F02 -_080E3F18: .4byte gUnknown_2037F1B +_080E3F14: .4byte gBattleAnimArgs +_080E3F18: .4byte gBattleAnimTarget _080E3F1C: .4byte 0x0000ffe0 -_080E3F20: .4byte gUnknown_2037F1A +_080E3F20: .4byte gBattleAnimAttacker _080E3F24: .4byte gSprites _080E3F28: adds r0, r4, 0 @@ -11979,7 +11979,7 @@ _080E3F6A: ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] - ldr r0, _080E3F94 @ =gUnknown_2037F1A + ldr r0, _080E3F94 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11994,7 +11994,7 @@ _080E3F6A: adds r1, r2, 0 b _080E3FA4 .align 2, 0 -_080E3F94: .4byte gUnknown_2037F1A +_080E3F94: .4byte gBattleAnimAttacker _080E3F98: ldrh r1, [r4, 0x32] lsls r0, r1, 16 @@ -12051,14 +12051,14 @@ _080E3FF0: .4byte _080E40C8 .4byte _080E412E _080E4004: - ldr r0, _080E4048 @ =gUnknown_2037F1A + ldr r0, _080E4048 @ =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0 bl sub_8074480 lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 - ldr r0, _080E404C @ =gUnknown_2037F1B + ldr r0, _080E404C @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl sub_8074480 @@ -12084,12 +12084,12 @@ _080E403A: strh r0, [r1, 0x26] b _080E414C .align 2, 0 -_080E4048: .4byte gUnknown_2037F1A -_080E404C: .4byte gUnknown_2037F1B +_080E4048: .4byte gBattleAnimAttacker +_080E404C: .4byte gBattleAnimTarget _080E4050: .4byte gTasks _080E4054: - ldr r1, _080E4090 @ =gUnknown_2023D44 - ldr r0, _080E4094 @ =gUnknown_2037F1A + ldr r1, _080E4090 @ =gBattlerSpriteIds + ldr r0, _080E4094 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -12119,8 +12119,8 @@ _080E4054: ldrsh r1, [r2, r3] b _080E4122 .align 2, 0 -_080E4090: .4byte gUnknown_2023D44 -_080E4094: .4byte gUnknown_2037F1A +_080E4090: .4byte gBattlerSpriteIds +_080E4094: .4byte gBattleAnimAttacker _080E4098: .4byte gSprites _080E409C: movs r3, 0x20 @@ -12147,8 +12147,8 @@ _080E40B0: strh r1, [r0, 0x26] b _080E414C _080E40C8: - ldr r1, _080E4108 @ =gUnknown_2023D44 - ldr r0, _080E410C @ =gUnknown_2037F1A + ldr r1, _080E4108 @ =gBattlerSpriteIds + ldr r0, _080E410C @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -12180,8 +12180,8 @@ _080E40C8: bgt _080E414C b _080E4126 .align 2, 0 -_080E4108: .4byte gUnknown_2023D44 -_080E410C: .4byte gUnknown_2037F1A +_080E4108: .4byte gBattlerSpriteIds +_080E410C: .4byte gBattleAnimAttacker _080E4110: .4byte gSprites _080E4114: movs r3, 0x20 @@ -12200,8 +12200,8 @@ _080E4126: strh r0, [r2, 0x26] b _080E414C _080E412E: - ldr r1, _080E4154 @ =gUnknown_2023D44 - ldr r0, _080E4158 @ =gUnknown_2037F1A + ldr r1, _080E4154 @ =gBattlerSpriteIds + ldr r0, _080E4158 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -12219,8 +12219,8 @@ _080E414C: pop {r0} bx r0 .align 2, 0 -_080E4154: .4byte gUnknown_2023D44 -_080E4158: .4byte gUnknown_2037F1A +_080E4154: .4byte gBattlerSpriteIds +_080E4158: .4byte gBattleAnimAttacker _080E415C: .4byte gSprites thumb_func_end sub_80E3FC0 @@ -12240,7 +12240,7 @@ sub_80E4160: @ 80E4160 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] - ldr r0, _080E41CC @ =gUnknown_2037F1A + ldr r0, _080E41CC @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -12279,7 +12279,7 @@ _080E4194: bx r0 .align 2, 0 _080E41C8: .4byte gTasks -_080E41CC: .4byte gUnknown_2037F1A +_080E41CC: .4byte gBattleAnimAttacker _080E41D0: .4byte gSprites _080E41D4: .4byte sub_80E41D8 thumb_func_end sub_80E4160 @@ -12322,7 +12322,7 @@ _080E4206: adds r1, r0 lsls r1, 2 adds r1, r5 - ldr r3, _080E427C @ =gUnknown_825E074 + ldr r3, _080E427C @ =gSineTable movs r6, 0x1E ldrsh r0, [r4, r6] lsls r0, 1 @@ -12368,7 +12368,7 @@ _080E4206: b _080E42C0 .align 2, 0 _080E4278: .4byte gSprites -_080E427C: .4byte gUnknown_825E074 +_080E427C: .4byte gSineTable _080E4280: ldrh r0, [r4, 0x1E] adds r0, 0x8 @@ -12382,7 +12382,7 @@ _080E4280: adds r1, r0 lsls r1, 2 adds r1, r3 - ldr r2, _080E42CC @ =gUnknown_825E074 + ldr r2, _080E42CC @ =gSineTable movs r5, 0x1E ldrsh r0, [r4, r5] lsls r0, 1 @@ -12409,7 +12409,7 @@ _080E42C0: b _080E42D6 .align 2, 0 _080E42C8: .4byte gSprites -_080E42CC: .4byte gUnknown_825E074 +_080E42CC: .4byte gSineTable _080E42D0: adds r0, r2, 0 bl DestroyAnimVisualTask @@ -12423,7 +12423,7 @@ _080E42D6: sub_80E42DC: @ 80E42DC push {r4,lr} adds r4, r0, 0 - ldr r0, _080E4330 @ =gUnknown_2037F1B + ldr r0, _080E4330 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -12460,20 +12460,20 @@ _080E4322: pop {r0} bx r0 .align 2, 0 -_080E4330: .4byte gUnknown_2037F1B +_080E4330: .4byte gBattleAnimTarget thumb_func_end sub_80E42DC thumb_func_start sub_80E4334 sub_80E4334: @ 80E4334 push {r4,lr} adds r4, r0, 0 - ldr r0, _080E436C @ =gUnknown_2037F1B + ldr r0, _080E436C @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080E4378 - ldr r2, _080E4370 @ =gUnknown_2037F02 + ldr r2, _080E4370 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -12491,15 +12491,15 @@ sub_80E4334: @ 80E4334 bl StartSpriteAffineAnim b _080E4392 .align 2, 0 -_080E436C: .4byte gUnknown_2037F1B -_080E4370: .4byte gUnknown_2037F02 +_080E436C: .4byte gBattleAnimTarget +_080E4370: .4byte gBattleAnimArgs _080E4374: .4byte 0x0000fff5 _080E4378: movs r0, 0xB strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] - ldr r1, _080E439C @ =gUnknown_2037F02 + ldr r1, _080E439C @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -12515,7 +12515,7 @@ _080E4392: pop {r0} bx r0 .align 2, 0 -_080E439C: .4byte gUnknown_2037F02 +_080E439C: .4byte gBattleAnimArgs _080E43A0: .4byte sub_80E42DC thumb_func_end sub_80E4334 @@ -12523,7 +12523,7 @@ _080E43A0: .4byte sub_80E42DC sub_80E43A4: @ 80E43A4 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080E43E8 @ =gUnknown_2037F1A + ldr r4, _080E43E8 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -12554,7 +12554,7 @@ _080E43CE: pop {r0} bx r0 .align 2, 0 -_080E43E8: .4byte gUnknown_2037F1A +_080E43E8: .4byte gBattleAnimAttacker _080E43EC: .4byte sub_80E43F0 thumb_func_end sub_80E43A4 @@ -12700,7 +12700,7 @@ sub_80E44EC: @ 80E44EC push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, _080E4508 @ =gUnknown_2037F02 + ldr r2, _080E4508 @ =gBattleAnimArgs movs r0, 0 strh r0, [r2, 0xE] ldr r0, _080E450C @ =gUnknown_2037F00 @@ -12712,7 +12712,7 @@ sub_80E44EC: @ 80E44EC movs r0, 0x1 b _080E4532 .align 2, 0 -_080E4508: .4byte gUnknown_2037F02 +_080E4508: .4byte gBattleAnimArgs _080E450C: .4byte gUnknown_2037F00 _080E4510: movs r0, 0x7 @@ -12755,7 +12755,7 @@ sub_80E4540: @ 80E4540 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] - ldr r0, _080E457C @ =gUnknown_2037F02 + ldr r0, _080E457C @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId adds r1, r0, 0 @@ -12772,7 +12772,7 @@ sub_80E4540: @ 80E4540 bx r0 .align 2, 0 _080E4578: .4byte gTasks -_080E457C: .4byte gUnknown_2037F02 +_080E457C: .4byte gBattleAnimArgs _080E4580: .4byte gUnknown_83FF7A8 _080E4584: .4byte sub_80E4588 thumb_func_end sub_80E4540 diff --git a/asm/battle_anim_8074480.s b/asm/battle_anim_mons.s similarity index 95% rename from asm/battle_anim_8074480.s rename to asm/battle_anim_mons.s index b900ba15a..aded063d4 100644 --- a/asm/battle_anim_8074480.s +++ b/asm/battle_anim_mons.s @@ -711,37 +711,37 @@ GetAnimBankSpriteId: @ 80749D4 adds r1, r0, 0 cmp r0, 0 bne _080749FC - ldr r4, _080749F4 @ =gUnknown_2037F1A + ldr r4, _080749F4 @ =gBattleAnimAttacker ldrb r0, [r4] bl sub_8075224 lsls r0, 24 cmp r0, 0 beq _08074A4A - ldr r1, _080749F8 @ =gUnknown_2023D44 + ldr r1, _080749F8 @ =gBattlerSpriteIds ldrb r0, [r4] b _08074A5A .align 2, 0 -_080749F4: .4byte gUnknown_2037F1A -_080749F8: .4byte gUnknown_2023D44 +_080749F4: .4byte gBattleAnimAttacker +_080749F8: .4byte gBattlerSpriteIds _080749FC: cmp r0, 0x1 bne _08074A1C - ldr r4, _08074A14 @ =gUnknown_2037F1B + ldr r4, _08074A14 @ =gBattleAnimTarget ldrb r0, [r4] bl sub_8075224 lsls r0, 24 cmp r0, 0 beq _08074A4A - ldr r1, _08074A18 @ =gUnknown_2023D44 + ldr r1, _08074A18 @ =gBattlerSpriteIds ldrb r0, [r4] b _08074A5A .align 2, 0 -_08074A14: .4byte gUnknown_2037F1B -_08074A18: .4byte gUnknown_2023D44 +_08074A14: .4byte gBattleAnimTarget +_08074A18: .4byte gBattlerSpriteIds _08074A1C: cmp r1, 0x2 bne _08074A38 - ldr r5, _08074A34 @ =gUnknown_2037F1A + ldr r5, _08074A34 @ =gBattleAnimAttacker ldrb r0, [r5] movs r4, 0x2 eors r0, r4 @@ -751,9 +751,9 @@ _08074A1C: beq _08074A4A b _08074A54 .align 2, 0 -_08074A34: .4byte gUnknown_2037F1A +_08074A34: .4byte gBattleAnimAttacker _08074A38: - ldr r5, _08074A50 @ =gUnknown_2037F1B + ldr r5, _08074A50 @ =gBattleAnimTarget ldrb r0, [r5] movs r4, 0x2 eors r0, r4 @@ -765,9 +765,9 @@ _08074A4A: movs r0, 0xFF b _08074A5E .align 2, 0 -_08074A50: .4byte gUnknown_2037F1B +_08074A50: .4byte gBattleAnimTarget _08074A54: - ldr r1, _08074A64 @ =gUnknown_2023D44 + ldr r1, _08074A64 @ =gBattlerSpriteIds ldrb r0, [r5] eors r0, r4 _08074A5A: @@ -778,7 +778,7 @@ _08074A5E: pop {r1} bx r1 .align 2, 0 -_08074A64: .4byte gUnknown_2023D44 +_08074A64: .4byte gBattlerSpriteIds thumb_func_end GetAnimBankSpriteId thumb_func_start StoreSpriteCallbackInData6 @@ -1242,7 +1242,7 @@ sub_8074D80: @ 8074D80 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, _08074DBC @ =gUnknown_2037F1B + ldr r5, _08074DBC @ =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -1261,7 +1261,7 @@ sub_8074D80: @ 8074D80 pop {r0} bx r0 .align 2, 0 -_08074DBC: .4byte gUnknown_2037F1B +_08074DBC: .4byte gBattleAnimTarget _08074DC0: .4byte sub_8074C64 thumb_func_end sub_8074D80 @@ -1443,7 +1443,7 @@ sub_8074EF4: @ 8074EF4 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, _08074F30 @ =gUnknown_2037F1A + ldr r5, _08074F30 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -1462,7 +1462,7 @@ sub_8074EF4: @ 8074EF4 pop {r0} bx r0 .align 2, 0 -_08074F30: .4byte gUnknown_2037F1A +_08074F30: .4byte gBattleAnimAttacker _08074F34: .4byte sub_8074C64 thumb_func_end sub_8074EF4 @@ -1553,7 +1553,7 @@ sub_8074FA8: @ 8074FA8 sub_8074FCC: @ 8074FCC push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _08074FF4 @ =gUnknown_2037F1A + ldr r4, _08074FF4 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -1570,7 +1570,7 @@ sub_8074FCC: @ 8074FCC pop {r0} bx r0 .align 2, 0 -_08074FF4: .4byte gUnknown_2037F1A +_08074FF4: .4byte gBattleAnimAttacker thumb_func_end sub_8074FCC thumb_func_start sub_8074FF8 @@ -1582,13 +1582,13 @@ sub_8074FF8: @ 8074FF8 lsls r1, 16 lsrs r5, r1, 16 mov r8, r5 - ldr r7, _08075030 @ =gUnknown_2037F1A + ldr r7, _08075030 @ =gBattleAnimAttacker ldrb r0, [r7] movs r1, 0 bl sub_8074480 lsls r0, 24 lsrs r6, r0, 24 - ldr r0, _08075034 @ =gUnknown_2037F1B + ldr r0, _08075034 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl sub_8074480 @@ -1601,8 +1601,8 @@ sub_8074FF8: @ 8074FF8 lsls r0, r5, 16 b _08075054 .align 2, 0 -_08075030: .4byte gUnknown_2037F1A -_08075034: .4byte gUnknown_2037F1B +_08075030: .4byte gBattleAnimAttacker +_08075034: .4byte gBattleAnimTarget _08075038: ldrb r0, [r7] bl GetBattlerSide @@ -1738,7 +1738,7 @@ sub_8075114: @ 8075114 lsls r1, 24 cmp r1, 0 bne _0807513C - ldr r4, _08075158 @ =gUnknown_2037F1B + ldr r4, _08075158 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 bl sub_8074844 @@ -1752,7 +1752,7 @@ sub_8075114: @ 8075114 lsrs r0, 24 strh r0, [r5, 0x22] _0807513C: - ldr r4, _0807515C @ =gUnknown_2037F02 + ldr r4, _0807515C @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -1765,8 +1765,8 @@ _0807513C: pop {r0} bx r0 .align 2, 0 -_08075158: .4byte gUnknown_2037F1B -_0807515C: .4byte gUnknown_2037F02 +_08075158: .4byte gBattleAnimTarget +_0807515C: .4byte gBattleAnimArgs thumb_func_end sub_8075114 thumb_func_start sub_8075160 @@ -1776,7 +1776,7 @@ sub_8075160: @ 8075160 lsls r1, 24 cmp r1, 0 bne _08075184 - ldr r4, _08075180 @ =gUnknown_2037F1A + ldr r4, _08075180 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 bl sub_8074844 @@ -1787,9 +1787,9 @@ sub_8075160: @ 8075160 movs r1, 0x1 b _08075198 .align 2, 0 -_08075180: .4byte gUnknown_2037F1A +_08075180: .4byte gBattleAnimAttacker _08075184: - ldr r4, _080751BC @ =gUnknown_2037F1A + ldr r4, _080751BC @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074844 @@ -1803,7 +1803,7 @@ _08075198: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r4, _080751C0 @ =gUnknown_2037F02 + ldr r4, _080751C0 @ =gBattleAnimArgs movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 @@ -1816,8 +1816,8 @@ _08075198: pop {r0} bx r0 .align 2, 0 -_080751BC: .4byte gUnknown_2037F1A -_080751C0: .4byte gUnknown_2037F02 +_080751BC: .4byte gBattleAnimAttacker +_080751C0: .4byte gBattleAnimArgs thumb_func_end sub_8075160 thumb_func_start GetBattlerSide @@ -2011,7 +2011,7 @@ sub_8075300: @ 8075300 ldr r0, _08075338 @ =gUnknown_2022BBC ldr r0, [r0] str r0, [r4, 0x4] - ldr r0, _0807533C @ =gUnknown_2037F1A + ldr r0, _0807533C @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80768B0 lsls r0, 24 @@ -2030,7 +2030,7 @@ sub_8075300: @ 8075300 .align 2, 0 _08075334: .4byte gUnknown_2022BB8 _08075338: .4byte gUnknown_2022BBC -_0807533C: .4byte gUnknown_2037F1A +_0807533C: .4byte gBattleAnimAttacker _08075340: movs r1, 0 movs r0, 0x9 @@ -3252,7 +3252,7 @@ sub_8075BE8: @ 8075BE8 _08075C1C: cmp r1, 0 beq _08075C2E - ldr r0, _08075CB0 @ =gUnknown_2037F1A + ldr r0, _08075CB0 @ =gBattleAnimAttacker ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3262,7 +3262,7 @@ _08075C1C: _08075C2E: cmp r2, 0 beq _08075C40 - ldr r0, _08075CB4 @ =gUnknown_2037F1B + ldr r0, _08075CB4 @ =gBattleAnimTarget ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3272,7 +3272,7 @@ _08075C2E: _08075C40: cmp r3, 0 beq _08075C64 - ldr r6, _08075CB0 @ =gUnknown_2037F1A + ldr r6, _08075CB0 @ =gBattleAnimAttacker ldrb r0, [r6] movs r5, 0x2 eors r0, r5 @@ -3290,7 +3290,7 @@ _08075C40: _08075C64: cmp r7, 0 beq _08075C88 - ldr r6, _08075CB4 @ =gUnknown_2037F1B + ldr r6, _08075CB4 @ =gBattleAnimTarget ldrb r0, [r6] movs r5, 0x2 eors r0, r5 @@ -3328,8 +3328,8 @@ _08075CA0: pop {r1} bx r1 .align 2, 0 -_08075CB0: .4byte gUnknown_2037F1A -_08075CB4: .4byte gUnknown_2037F1B +_08075CB0: .4byte gBattleAnimAttacker +_08075CB4: .4byte gBattleAnimTarget thumb_func_end sub_8075BE8 thumb_func_start sub_8075CB8 @@ -3454,7 +3454,7 @@ sub_8075D9C: @ 8075D9C ldrsh r0, [r4, r1] cmp r0, 0 bne _08075DDA - ldr r2, _08075DC8 @ =gUnknown_2037F02 + ldr r2, _08075DC8 @ =gBattleAnimArgs movs r3, 0x6 ldrsh r0, [r2, r3] movs r1, 0 @@ -3470,7 +3470,7 @@ _08075DB6: bl sub_8075160 b _08075DD2 .align 2, 0 -_08075DC8: .4byte gUnknown_2037F02 +_08075DC8: .4byte gBattleAnimArgs _08075DCC: adds r0, r4, 0 bl sub_8075114 @@ -3499,7 +3499,7 @@ _08075DEE: sub_8075DF4: @ 8075DF4 push {r4-r7,lr} adds r5, r0, 0 - ldr r6, _08075E6C @ =gUnknown_2037F02 + ldr r6, _08075E6C @ =gBattleAnimArgs movs r1, 0xA ldrsh r0, [r6, r1] movs r1, 0xFF @@ -3518,7 +3518,7 @@ _08075E0C: _08075E16: adds r0, r5, 0 bl sub_8075160 - ldr r0, _08075E70 @ =gUnknown_2037F1A + ldr r0, _08075E70 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3530,7 +3530,7 @@ _08075E16: _08075E30: ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] - ldr r4, _08075E74 @ =gUnknown_2037F1B + ldr r4, _08075E74 @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -3556,9 +3556,9 @@ _08075E30: pop {r0} bx r0 .align 2, 0 -_08075E6C: .4byte gUnknown_2037F02 -_08075E70: .4byte gUnknown_2037F1A -_08075E74: .4byte gUnknown_2037F1B +_08075E6C: .4byte gBattleAnimArgs +_08075E70: .4byte gBattleAnimAttacker +_08075E74: .4byte gBattleAnimTarget _08075E78: .4byte sub_8075590 _08075E7C: .4byte DestroyAnimSprite thumb_func_end sub_8075DF4 @@ -3569,21 +3569,21 @@ sub_8075E80: @ 8075E80 adds r6, r0, 0 movs r1, 0x1 bl sub_8075160 - ldr r0, _08075EE0 @ =gUnknown_2037F1A + ldr r0, _08075EE0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08075EA0 - ldr r1, _08075EE4 @ =gUnknown_2037F02 + ldr r1, _08075EE4 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _08075EA0: - ldr r4, _08075EE4 @ =gUnknown_2037F02 + ldr r4, _08075EE4 @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, _08075EE8 @ =gUnknown_2037F1B + ldr r5, _08075EE8 @ =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 bl sub_8074480 @@ -3610,9 +3610,9 @@ _08075EA0: pop {r0} bx r0 .align 2, 0 -_08075EE0: .4byte gUnknown_2037F1A -_08075EE4: .4byte gUnknown_2037F02 -_08075EE8: .4byte gUnknown_2037F1B +_08075EE0: .4byte gBattleAnimAttacker +_08075EE4: .4byte gBattleAnimArgs +_08075EE8: .4byte gBattleAnimTarget _08075EEC: .4byte sub_8075EF0 thumb_func_end sub_8075E80 @@ -3636,7 +3636,7 @@ _08075F04: sub_8075F0C: @ 8075F0C push {r4-r7,lr} adds r5, r0, 0 - ldr r0, _08075F20 @ =gUnknown_2037F02 + ldr r0, _08075F20 @ =gBattleAnimArgs movs r2, 0xC ldrsh r1, [r0, r2] cmp r1, 0 @@ -3645,7 +3645,7 @@ sub_8075F0C: @ 8075F0C movs r7, 0x3 b _08075F28 .align 2, 0 -_08075F20: .4byte gUnknown_2037F02 +_08075F20: .4byte gBattleAnimArgs _08075F24: movs r4, 0 movs r7, 0x1 @@ -3657,24 +3657,24 @@ _08075F28: adds r0, r5, 0 adds r1, r4, 0 bl sub_8075160 - ldr r0, _08075F3C @ =gUnknown_2037F1A + ldr r0, _08075F3C @ =gBattleAnimAttacker b _08075F4A .align 2, 0 -_08075F3C: .4byte gUnknown_2037F1A +_08075F3C: .4byte gBattleAnimAttacker _08075F40: adds r0, r5, 0 adds r1, r4, 0 bl sub_8075114 - ldr r0, _08075FA8 @ =gUnknown_2037F1B + ldr r0, _08075FA8 @ =gBattleAnimTarget _08075F4A: ldrb r6, [r0] - ldr r0, _08075FAC @ =gUnknown_2037F1A + ldr r0, _08075FAC @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08075F62 - ldr r1, _08075FB0 @ =gUnknown_2037F02 + ldr r1, _08075FB0 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] @@ -3682,7 +3682,7 @@ _08075F62: adds r0, r5, 0 adds r1, r4, 0 bl sub_8075114 - ldr r4, _08075FB0 @ =gUnknown_2037F02 + ldr r4, _08075FB0 @ =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] adds r0, r6, 0 @@ -3710,9 +3710,9 @@ _08075F62: pop {r0} bx r0 .align 2, 0 -_08075FA8: .4byte gUnknown_2037F1B -_08075FAC: .4byte gUnknown_2037F1A -_08075FB0: .4byte gUnknown_2037F02 +_08075FA8: .4byte gBattleAnimTarget +_08075FAC: .4byte gBattleAnimAttacker +_08075FB0: .4byte gBattleAnimArgs _08075FB4: .4byte sub_8075590 _08075FB8: .4byte DestroyAnimSprite thumb_func_end sub_8075F0C @@ -3801,7 +3801,7 @@ sub_8076048: @ 8076048 lsrs r5, r0, 24 movs r6, 0 movs r3, 0 - ldr r2, _080760C0 @ =gUnknown_2037F02 + ldr r2, _080760C0 @ =gBattleAnimArgs movs r0, 0x4 ldrsh r1, [r2, r0] movs r4, 0 @@ -3860,7 +3860,7 @@ _0807607C: pop {r0} bx r0 .align 2, 0 -_080760C0: .4byte gUnknown_2037F02 +_080760C0: .4byte gBattleAnimArgs _080760C4: .4byte 0x0000ffff _080760C8: .4byte gTasks _080760CC: .4byte sub_80760D0 @@ -3952,7 +3952,7 @@ sub_807616C: @ 807616C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _0807618C @ =gUnknown_2037F02 + ldr r0, _0807618C @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBankSpriteId lsls r0, 24 @@ -3963,7 +3963,7 @@ sub_807616C: @ 807616C bl DestroyAnimVisualTask b _080761B6 .align 2, 0 -_0807618C: .4byte gUnknown_2037F02 +_0807618C: .4byte gBattleAnimArgs _08076190: ldr r1, _080761BC @ =gTasks lsls r0, r4, 2 @@ -3995,7 +3995,7 @@ _080761C4: .4byte 0x00000101 thumb_func_start sub_80761C8 sub_80761C8: @ 80761C8 - ldr r3, _080761E8 @ =gUnknown_2037F02 + ldr r3, _080761E8 @ =gBattleAnimArgs ldrh r1, [r3, 0x2] movs r2, 0 strh r1, [r0, 0xA] @@ -4012,7 +4012,7 @@ sub_80761C8: @ 80761C8 str r1, [r0] bx lr .align 2, 0 -_080761E8: .4byte gUnknown_2037F02 +_080761E8: .4byte gBattleAnimArgs _080761EC: .4byte sub_80761F0 thumb_func_end sub_80761C8 @@ -4099,7 +4099,7 @@ sub_8076288: @ 8076288 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080762A8 @ =gUnknown_2037F02 + ldr r0, _080762A8 @ =gBattleAnimArgs ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 @@ -4110,7 +4110,7 @@ sub_8076288: @ 8076288 bl DestroyAnimVisualTask b _080762C2 .align 2, 0 -_080762A8: .4byte gUnknown_2037F02 +_080762A8: .4byte gBattleAnimArgs _080762AC: ldr r1, _080762C8 @ =gTasks lsls r0, r4, 2 @@ -4428,7 +4428,7 @@ sub_80764EC: @ 80764EC lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r1, _0807654C @ =gUnknown_2023D44 + ldr r1, _0807654C @ =gBattlerSpriteIds ldr r6, _08076550 @ =gBattlerPartyIndexes _08076508: adds r0, r4, r1 @@ -4463,7 +4463,7 @@ _08076508: b _0807655E .align 2, 0 _08076548: .4byte gSprites -_0807654C: .4byte gUnknown_2023D44 +_0807654C: .4byte gBattlerSpriteIds _08076550: .4byte gBattlerPartyIndexes _08076554: .4byte gUnknown_2024018 _08076558: .4byte gPlayerParty @@ -4680,7 +4680,7 @@ sub_80766B8: @ 80766B8 bhi _080766D6 movs r1, 0x2 _080766D6: - ldr r0, _080766E8 @ =gUnknown_2037F02 + ldr r0, _080766E8 @ =gBattleAnimArgs strh r1, [r0, 0xE] adds r0, r2, 0 bl DestroyAnimVisualTask @@ -4688,7 +4688,7 @@ _080766D6: bx r0 .align 2, 0 _080766E4: .4byte gUnknown_2037EFE -_080766E8: .4byte gUnknown_2037F02 +_080766E8: .4byte gBattleAnimArgs thumb_func_end sub_80766B8 thumb_func_start sub_80766EC @@ -4699,14 +4699,14 @@ sub_80766EC: @ 80766EC lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 - ldr r6, _080767E0 @ =gUnknown_2037F1B + ldr r6, _080767E0 @ =gBattleAnimTarget ldrb r0, [r6] bl sub_8072DF0 lsls r0, 24 cmp r0, 0 beq _0807672C ldr r2, _080767E4 @ =gSprites - ldr r1, _080767E8 @ =gUnknown_2023D44 + ldr r1, _080767E8 @ =gBattlerSpriteIds ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] @@ -4725,7 +4725,7 @@ sub_80766EC: @ 80766EC orrs r0, r2 strb r0, [r1, 0x5] _0807672C: - ldr r0, _080767EC @ =gUnknown_2037F1A + ldr r0, _080767EC @ =gBattleAnimAttacker mov r8, r0 ldrb r0, [r0] bl sub_8072DF0 @@ -4733,7 +4733,7 @@ _0807672C: cmp r0, 0 beq _08076764 ldr r2, _080767E4 @ =gSprites - ldr r1, _080767E8 @ =gUnknown_2023D44 + ldr r1, _080767E8 @ =gBattlerSpriteIds mov r3, r8 ldrb r0, [r3] adds r0, r1 @@ -4761,7 +4761,7 @@ _08076764: cmp r0, 0 beq _0807679C ldr r2, _080767E4 @ =gSprites - ldr r1, _080767E8 @ =gUnknown_2023D44 + ldr r1, _080767E8 @ =gBattlerSpriteIds ldrb r0, [r6] eors r0, r5 adds r0, r1 @@ -4789,7 +4789,7 @@ _0807679C: cmp r0, 0 beq _080767D4 ldr r2, _080767E4 @ =gSprites - ldr r1, _080767E8 @ =gUnknown_2023D44 + ldr r1, _080767E8 @ =gBattlerSpriteIds mov r3, r8 ldrb r0, [r3] eors r0, r5 @@ -4815,10 +4815,10 @@ _080767D4: pop {r0} bx r0 .align 2, 0 -_080767E0: .4byte gUnknown_2037F1B +_080767E0: .4byte gBattleAnimTarget _080767E4: .4byte gSprites -_080767E8: .4byte gUnknown_2023D44 -_080767EC: .4byte gUnknown_2037F1A +_080767E8: .4byte gBattlerSpriteIds +_080767EC: .4byte gBattleAnimAttacker thumb_func_end sub_80766EC thumb_func_start sub_80767F0 @@ -4840,7 +4840,7 @@ _080767FE: beq _08076840 adds r0, r4, 0 bl sub_807685C - ldr r3, _08076858 @ =gUnknown_2023D44 + ldr r3, _08076858 @ =gBattlerSpriteIds adds r3, r5, r3 ldrb r2, [r3] lsls r1, r2, 4 @@ -4875,7 +4875,7 @@ _0807684A: .align 2, 0 _08076850: .4byte gBattlersCount _08076854: .4byte gSprites -_08076858: .4byte gUnknown_2023D44 +_08076858: .4byte gBattlerSpriteIds thumb_func_end sub_80767F0 thumb_func_start sub_807685C @@ -5050,7 +5050,7 @@ _0807694E: beq _080769C4 _0807699A: lsls r0, r6, 3 - ldr r1, _080769C0 @ =gUnknown_82350AC + ldr r1, _080769C0 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080769B8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5065,10 +5065,10 @@ _080769B0: .4byte gUnknown_83AE084 _080769B4: .4byte gUnknown_83AE054 _080769B8: .4byte gMonSpritesGfxPtr _080769BC: .4byte gUnknown_2024018 -_080769C0: .4byte gUnknown_82350AC +_080769C0: .4byte gMonFrontPicTable _080769C4: lsls r0, r6, 3 - ldr r1, _080769E4 @ =gUnknown_82350AC + ldr r1, _080769E4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080769E8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5080,10 +5080,10 @@ _080769C4: str r2, [sp] adds r2, r6, 0 mov r3, r8 - bl sub_800ECF0 + bl LoadSpecialPokePic b _08076A7C .align 2, 0 -_080769E4: .4byte gUnknown_82350AC +_080769E4: .4byte gMonFrontPicTable _080769E8: .4byte gMonSpritesGfxPtr _080769EC: adds r0, r6, 0 @@ -5120,7 +5120,7 @@ _080769EC: beq _08076A60 _08076A32: lsls r0, r6, 3 - ldr r1, _08076A58 @ =gUnknown_823654C + ldr r1, _08076A58 @ =gMonBackPicTable adds r0, r1 ldr r1, _08076A5C @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5137,11 +5137,11 @@ _08076A46: b _08076A7C .align 2, 0 _08076A54: .4byte gUnknown_2024018 -_08076A58: .4byte gUnknown_823654C +_08076A58: .4byte gMonBackPicTable _08076A5C: .4byte gMonSpritesGfxPtr _08076A60: lsls r0, r6, 3 - ldr r1, _08076AC8 @ =gUnknown_823654C + ldr r1, _08076AC8 @ =gMonBackPicTable adds r0, r1 ldr r1, _08076ACC @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5152,7 +5152,7 @@ _08076A60: str r2, [sp] adds r2, r6, 0 mov r3, r8 - bl sub_800ECF0 + bl LoadSpecialPokePic _08076A7C: ldr r5, _08076ACC @ =gMonSpritesGfxPtr ldr r0, [r5] @@ -5190,7 +5190,7 @@ _08076A7C: ldr r3, _08076AD8 @ =gUnknown_82349CC b _08076AEE .align 2, 0 -_08076AC8: .4byte gUnknown_823654C +_08076AC8: .4byte gMonBackPicTable _08076ACC: .4byte gMonSpritesGfxPtr _08076AD0: .4byte 0x06010000 _08076AD4: .4byte gUnknown_83AE054 @@ -5719,13 +5719,13 @@ sub_8076ED8: @ 8076ED8 push {r4,lr} adds r4, r0, 0 bl sub_8074FCC - ldr r0, _08076F10 @ =gUnknown_2037F1A + ldr r0, _08076F10 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08076F18 - ldr r2, _08076F14 @ =gUnknown_2037F02 + ldr r2, _08076F14 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -5742,10 +5742,10 @@ sub_8076ED8: @ 8076ED8 adds r1, r2, 0 b _08076F22 .align 2, 0 -_08076F10: .4byte gUnknown_2037F1A -_08076F14: .4byte gUnknown_2037F02 +_08076F10: .4byte gBattleAnimAttacker +_08076F14: .4byte gBattleAnimArgs _08076F18: - ldr r1, _08076F4C @ =gUnknown_2037F02 + ldr r1, _08076F4C @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -5772,7 +5772,7 @@ _08076F22: pop {r0} bx r0 .align 2, 0 -_08076F4C: .4byte gUnknown_2037F02 +_08076F4C: .4byte gBattleAnimArgs _08076F50: .4byte move_anim_8074EE0 _08076F54: .4byte sub_8074E70 thumb_func_end sub_8076ED8 @@ -5781,13 +5781,13 @@ _08076F54: .4byte sub_8074E70 sub_8076F58: @ 8076F58 push {r4,lr} adds r4, r0, 0 - ldr r0, _08076F80 @ =gUnknown_2037F1A + ldr r0, _08076F80 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08076F88 - ldr r2, _08076F84 @ =gUnknown_2037F02 + ldr r2, _08076F84 @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 @@ -5799,10 +5799,10 @@ sub_8076F58: @ 8076F58 adds r1, r2, 0 b _08076F92 .align 2, 0 -_08076F80: .4byte gUnknown_2037F1A -_08076F84: .4byte gUnknown_2037F02 +_08076F80: .4byte gBattleAnimAttacker +_08076F84: .4byte gBattleAnimArgs _08076F88: - ldr r1, _08076FC4 @ =gUnknown_2037F02 + ldr r1, _08076FC4 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -5832,7 +5832,7 @@ _08076F92: pop {r0} bx r0 .align 2, 0 -_08076FC4: .4byte gUnknown_2037F02 +_08076FC4: .4byte gBattleAnimArgs _08076FC8: .4byte move_anim_8074EE0 _08076FCC: .4byte sub_8074E70 thumb_func_end sub_8076F58 @@ -5842,23 +5842,23 @@ sub_8076FD0: @ 8076FD0 push {r4,lr} adds r4, r0, 0 bl sub_8074FCC - ldr r0, _08076FF4 @ =gUnknown_2037F1A + ldr r0, _08076FF4 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08076FFC - ldr r0, _08076FF8 @ =gUnknown_2037F02 + ldr r0, _08076FF8 @ =gBattleAnimArgs ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r4, 0x20] b _08077008 .align 2, 0 -_08076FF4: .4byte gUnknown_2037F1A -_08076FF8: .4byte gUnknown_2037F02 +_08076FF4: .4byte gBattleAnimAttacker +_08076FF8: .4byte gBattleAnimArgs _08076FFC: - ldr r1, _08077024 @ =gUnknown_2037F02 + ldr r1, _08077024 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 @@ -5878,7 +5878,7 @@ _08077008: pop {r0} bx r0 .align 2, 0 -_08077024: .4byte gUnknown_2037F02 +_08077024: .4byte gBattleAnimArgs _08077028: .4byte sub_8074F6C _0807702C: .4byte DestroyAnimSprite thumb_func_end sub_8076FD0 @@ -5899,7 +5899,7 @@ sub_8077030: @ 8077030 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x8] - ldr r7, _080770C8 @ =gUnknown_2037F1A + ldr r7, _080770C8 @ =gBattleAnimAttacker ldrb r0, [r7] bl GetBattlerSide lsls r0, 24 @@ -5959,7 +5959,7 @@ _080770C0: b _080770D6 .align 2, 0 _080770C4: .4byte gTasks -_080770C8: .4byte gUnknown_2037F1A +_080770C8: .4byte gBattleAnimAttacker _080770CC: .4byte gSprites _080770D0: .4byte 0x00002771 _080770D4: @@ -5974,7 +5974,7 @@ _080770D6: adds r1, r2 ldr r2, _0807710C @ =0x04000008 bl CpuSet - ldr r0, _08077110 @ =gUnknown_2037F02 + ldr r0, _08077110 @ =gBattleAnimArgs ldrb r2, [r0, 0x2] ldrh r3, [r0] adds r0, r6, 0 @@ -5989,7 +5989,7 @@ _080770D6: _08077104: .4byte gPlttBufferUnfaded _08077108: .4byte gPlttBufferFaded _0807710C: .4byte 0x04000008 -_08077110: .4byte gUnknown_2037F02 +_08077110: .4byte gBattleAnimArgs _08077114: .4byte sub_8077118 thumb_func_end sub_8077030 @@ -6198,7 +6198,7 @@ _08077298: .4byte gTasks sub_807729C: @ 807729C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, _080772D0 @ =gUnknown_2037F1A + ldr r4, _080772D0 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -6219,7 +6219,7 @@ sub_807729C: @ 807729C movs r0, 0x5 b _080772D6 .align 2, 0 -_080772D0: .4byte gUnknown_2037F1A +_080772D0: .4byte gBattleAnimAttacker _080772D4: ldr r0, _080772E8 @ =0x0000fff6 _080772D6: @@ -6289,7 +6289,7 @@ _08077348: sub_8077350: @ 8077350 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, _08077388 @ =gUnknown_2037F02 + ldr r5, _08077388 @ =gBattleAnimArgs ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x8] @@ -6300,7 +6300,7 @@ sub_8077350: @ 8077350 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x36] - ldr r0, _0807738C @ =gUnknown_2037F1B + ldr r0, _0807738C @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -6315,8 +6315,8 @@ sub_8077350: @ 8077350 subs r0, 0x14 b _0807739E .align 2, 0 -_08077388: .4byte gUnknown_2037F02 -_0807738C: .4byte gUnknown_2037F1B +_08077388: .4byte gBattleAnimArgs +_0807738C: .4byte gBattleAnimTarget _08077390: ldrh r0, [r5, 0x8] subs r0, 0x1E diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s index 016e8b093..954878daa 100644 --- a/asm/battle_anim_sound_tasks.s +++ b/asm/battle_anim_sound_tasks.s @@ -15,7 +15,7 @@ sub_80DCE10: @ 80DCE10 adds r6, r0 lsls r6, 3 adds r6, r1 - ldr r1, _080DCE70 @ =gUnknown_2037F02 + ldr r1, _080DCE70 @ =gBattleAnimArgs ldrh r0, [r1] strh r0, [r6, 0x8] ldrh r0, [r1, 0x2] @@ -51,7 +51,7 @@ sub_80DCE10: @ 80DCE10 bx r0 .align 2, 0 _080DCE6C: .4byte gTasks -_080DCE70: .4byte gUnknown_2037F02 +_080DCE70: .4byte gBattleAnimArgs _080DCE74: .4byte sub_80DCE78 thumb_func_end sub_80DCE10 @@ -168,7 +168,7 @@ mas_80DCF38: @ 80DCF38 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, _080DCFDC @ =gUnknown_2037F02 + ldr r0, _080DCFDC @ =gBattleAnimArgs ldrh r1, [r0] str r1, [sp] ldrb r5, [r0, 0x4] @@ -236,7 +236,7 @@ mas_80DCF38: @ 80DCF38 pop {r0} bx r0 .align 2, 0 -_080DCFDC: .4byte gUnknown_2037F02 +_080DCFDC: .4byte gBattleAnimArgs _080DCFE0: .4byte gTasks _080DCFE4: .4byte sub_80DCFE8 thumb_func_end mas_80DCF38 @@ -320,41 +320,41 @@ sub_80DD06C: @ 80DD06C bl sub_8073A44 lsls r0, 24 lsrs r6, r0, 24 - ldr r0, _080DD090 @ =gUnknown_2037F02 + ldr r0, _080DD090 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DD098 - ldr r0, _080DD094 @ =gUnknown_2037F1A + ldr r0, _080DD094 @ =gBattleAnimAttacker ldrb r4, [r0] b _080DD0BE .align 2, 0 -_080DD090: .4byte gUnknown_2037F02 -_080DD094: .4byte gUnknown_2037F1A +_080DD090: .4byte gBattleAnimArgs +_080DD094: .4byte gBattleAnimAttacker _080DD098: cmp r0, 0x1 bne _080DD0A8 - ldr r0, _080DD0A4 @ =gUnknown_2037F1B + ldr r0, _080DD0A4 @ =gBattleAnimTarget ldrb r4, [r0] b _080DD0BE .align 2, 0 -_080DD0A4: .4byte gUnknown_2037F1B +_080DD0A4: .4byte gBattleAnimTarget _080DD0A8: cmp r0, 0x2 bne _080DD0B4 - ldr r0, _080DD0B0 @ =gUnknown_2037F1A + ldr r0, _080DD0B0 @ =gBattleAnimAttacker b _080DD0B6 .align 2, 0 -_080DD0B0: .4byte gUnknown_2037F1A +_080DD0B0: .4byte gBattleAnimAttacker _080DD0B4: - ldr r0, _080DD0E0 @ =gUnknown_2037F1B + ldr r0, _080DD0E0 @ =gBattleAnimTarget _080DD0B6: ldrb r1, [r0] movs r0, 0x2 adds r4, r0, 0 eors r4, r1 _080DD0BE: - ldr r0, _080DD0E4 @ =gUnknown_2037F02 + ldr r0, _080DD0E4 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 @@ -371,8 +371,8 @@ _080DD0CC: bl DestroyAnimVisualTask b _080DD13A .align 2, 0 -_080DD0E0: .4byte gUnknown_2037F1B -_080DD0E4: .4byte gUnknown_2037F02 +_080DD0E0: .4byte gBattleAnimTarget +_080DD0E4: .4byte gBattleAnimArgs _080DD0E8: adds r0, r4, 0 bl GetBattlerSide @@ -432,41 +432,41 @@ sub_80DD148: @ 80DD148 bl sub_8073A44 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _080DD16C @ =gUnknown_2037F02 + ldr r0, _080DD16C @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DD174 - ldr r0, _080DD170 @ =gUnknown_2037F1A + ldr r0, _080DD170 @ =gBattleAnimAttacker ldrb r4, [r0] b _080DD19A .align 2, 0 -_080DD16C: .4byte gUnknown_2037F02 -_080DD170: .4byte gUnknown_2037F1A +_080DD16C: .4byte gBattleAnimArgs +_080DD170: .4byte gBattleAnimAttacker _080DD174: cmp r0, 0x1 bne _080DD184 - ldr r0, _080DD180 @ =gUnknown_2037F1B + ldr r0, _080DD180 @ =gBattleAnimTarget ldrb r4, [r0] b _080DD19A .align 2, 0 -_080DD180: .4byte gUnknown_2037F1B +_080DD180: .4byte gBattleAnimTarget _080DD184: cmp r0, 0x2 bne _080DD190 - ldr r0, _080DD18C @ =gUnknown_2037F1A + ldr r0, _080DD18C @ =gBattleAnimAttacker b _080DD192 .align 2, 0 -_080DD18C: .4byte gUnknown_2037F1A +_080DD18C: .4byte gBattleAnimAttacker _080DD190: - ldr r0, _080DD1BC @ =gUnknown_2037F1B + ldr r0, _080DD1BC @ =gBattleAnimTarget _080DD192: ldrb r1, [r0] movs r0, 0x2 adds r4, r0, 0 eors r4, r1 _080DD19A: - ldr r0, _080DD1C0 @ =gUnknown_2037F02 + ldr r0, _080DD1C0 @ =gBattleAnimArgs movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x1 @@ -483,8 +483,8 @@ _080DD1A8: bl DestroyAnimVisualTask b _080DD26A .align 2, 0 -_080DD1BC: .4byte gUnknown_2037F1B -_080DD1C0: .4byte gUnknown_2037F02 +_080DD1BC: .4byte gBattleAnimTarget +_080DD1C0: .4byte gBattleAnimArgs _080DD1C4: adds r0, r4, 0 bl GetBattlerSide @@ -521,7 +521,7 @@ _080DD1F6: adds r0, r2, r6 lsls r0, 3 adds r0, r1 - ldr r4, _080DD240 @ =gUnknown_2037F02 + ldr r4, _080DD240 @ =gBattleAnimArgs ldrh r1, [r4, 0x2] strh r1, [r0, 0x8] strh r3, [r0, 0xA] @@ -543,7 +543,7 @@ _080DD1F6: _080DD234: .4byte gBattlerPartyIndexes _080DD238: .4byte gPlayerParty _080DD23C: .4byte gTasks -_080DD240: .4byte gUnknown_2037F02 +_080DD240: .4byte gBattleAnimArgs _080DD244: adds r0, r3, 0 movs r2, 0x7 @@ -677,7 +677,7 @@ sub_80DD334: @ 80DD334 negs r0, r0 bl sub_8073A44 ldr r2, _080DD374 @ =gUnknown_2037F1C - ldr r1, _080DD378 @ =gUnknown_2037F1A + ldr r1, _080DD378 @ =gBattleAnimAttacker ldrb r1, [r1] lsls r1, 1 adds r1, r2 @@ -701,7 +701,7 @@ sub_80DD334: @ 80DD334 b _080DD38A .align 2, 0 _080DD374: .4byte gUnknown_2037F1C -_080DD378: .4byte gUnknown_2037F1A +_080DD378: .4byte gBattleAnimAttacker _080DD37C: .4byte gTasks _080DD380: .4byte sub_80DD390 _080DD384: @@ -758,7 +758,7 @@ sub_80DD3DC: @ 80DD3DC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080DD40C @ =gUnknown_2037F02 + ldr r0, _080DD40C @ =gBattleAnimArgs ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 @@ -775,7 +775,7 @@ sub_80DD3DC: @ 80DD3DC pop {r0} bx r0 .align 2, 0 -_080DD40C: .4byte gUnknown_2037F02 +_080DD40C: .4byte gBattleAnimArgs thumb_func_end sub_80DD3DC thumb_func_start sub_80DD410 @@ -784,7 +784,7 @@ sub_80DD410: @ 80DD410 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080DD440 @ =gUnknown_2037F02 + ldr r0, _080DD440 @ =gBattleAnimArgs ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 @@ -801,7 +801,7 @@ sub_80DD410: @ 80DD410 pop {r0} bx r0 .align 2, 0 -_080DD440: .4byte gUnknown_2037F02 +_080DD440: .4byte gBattleAnimArgs thumb_func_end sub_80DD410 thumb_func_start sub_80DD444 @@ -814,7 +814,7 @@ sub_80DD444: @ 80DD444 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, _080DD4C8 @ =gUnknown_2037F02 + ldr r0, _080DD4C8 @ =gBattleAnimArgs ldrb r5, [r0, 0x2] ldrb r6, [r0, 0x4] ldrh r1, [r0, 0x6] @@ -868,7 +868,7 @@ sub_80DD444: @ 80DD444 pop {r0} bx r0 .align 2, 0 -_080DD4C8: .4byte gUnknown_2037F02 +_080DD4C8: .4byte gBattleAnimArgs _080DD4CC: .4byte gTasks _080DD4D0: .4byte sub_80DD4D4 thumb_func_end sub_80DD444 diff --git a/asm/battle_anim_80EEC0C.s b/asm/battle_anim_special.s similarity index 95% rename from asm/battle_anim_80EEC0C.s rename to asm/battle_anim_special.s index 82179f2e0..704a1e9a7 100644 --- a/asm/battle_anim_80EEC0C.s +++ b/asm/battle_anim_special.s @@ -16,7 +16,7 @@ sub_80EEC0C: @ 80EEC0C lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] - ldr r0, _080EEDB4 @ =gUnknown_2037F1A + ldr r0, _080EEDB4 @ =gBattleAnimAttacker ldrb r4, [r0] ldr r0, _080EEDB8 @ =gUnknown_2022984 movs r1, 0 @@ -168,12 +168,12 @@ sub_80EEC0C: @ 80EEC0C lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette - ldr r1, _080EEDE4 @ =gUnknown_2022978 + ldr r1, _080EEDE4 @ =gBattle_BG1_X ldrh r0, [r7, 0x20] negs r0, r0 adds r0, 0x20 strh r0, [r1] - ldr r1, _080EEDE8 @ =gUnknown_202297A + ldr r1, _080EEDE8 @ =gBattle_BG1_Y ldrh r0, [r7, 0x22] negs r0, r0 subs r0, 0x20 @@ -203,7 +203,7 @@ sub_80EEC0C: @ 80EEC0C pop {r0} bx r0 .align 2, 0 -_080EEDB4: .4byte gUnknown_2037F1A +_080EEDB4: .4byte gBattleAnimAttacker _080EEDB8: .4byte gUnknown_2022984 _080EEDBC: .4byte gUnknown_2022986 _080EEDC0: .4byte 0x00003f3f @@ -215,8 +215,8 @@ _080EEDD4: .4byte SpriteCallbackDummy _080EEDD8: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_tilemap _080EEDDC: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_sheet _080EEDE0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette -_080EEDE4: .4byte gUnknown_2022978 -_080EEDE8: .4byte gUnknown_202297A +_080EEDE4: .4byte gBattle_BG1_X +_080EEDE8: .4byte gBattle_BG1_Y _080EEDEC: .4byte gTasks _080EEDF0: .4byte sub_80EEDF4 thumb_func_end sub_80EEC0C @@ -228,7 +228,7 @@ sub_80EEDF4: @ 80EEDF4 push {r7} lsls r0, 24 lsrs r7, r0, 24 - ldr r0, _080EEE3C @ =gUnknown_2037F1A + ldr r0, _080EEE3C @ =gBattleAnimAttacker ldrb r0, [r0] mov r8, r0 ldr r1, _080EEE40 @ =gTasks @@ -241,7 +241,7 @@ sub_80EEDF4: @ 80EEDF4 adds r1, r0 movs r3, 0 strh r1, [r5, 0x22] - ldr r2, _080EEE44 @ =gUnknown_202297A + ldr r2, _080EEE44 @ =gBattle_BG1_Y lsls r0, r1, 16 lsrs r0, 24 ldrh r4, [r2] @@ -260,9 +260,9 @@ sub_80EEDF4: @ 80EEDF4 beq _080EEE4E b _080EEFA8 .align 2, 0 -_080EEE3C: .4byte gUnknown_2037F1A +_080EEE3C: .4byte gBattleAnimAttacker _080EEE40: .4byte gTasks -_080EEE44: .4byte gUnknown_202297A +_080EEE44: .4byte gBattle_BG1_Y _080EEE48: cmp r0, 0x2 beq _080EEE9C @@ -569,7 +569,7 @@ sub_80EF0B4: @ 80EF0B4 lsrs r4, 24 mov r1, sp adds r1, 0x1 - ldr r0, _080EF0DC @ =gUnknown_2037F1A + ldr r0, _080EF0DC @ =gBattleAnimAttacker ldrb r2, [r0] mov r0, sp bl sub_80EEFC8 @@ -580,7 +580,7 @@ sub_80EF0B4: @ 80EF0B4 pop {r0} bx r0 .align 2, 0 -_080EF0DC: .4byte gUnknown_2037F1A +_080EF0DC: .4byte gBattleAnimAttacker thumb_func_end sub_80EF0B4 thumb_func_start sub_80EF0E0 @@ -664,7 +664,7 @@ sub_80EF180: @ 80EF180 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080EF19C @ =gUnknown_2037F1A + ldr r0, _080EF19C @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80EF0E0 adds r0, r4, 0 @@ -673,7 +673,7 @@ sub_80EF180: @ 80EF180 pop {r0} bx r0 .align 2, 0 -_080EF19C: .4byte gUnknown_2037F1A +_080EF19C: .4byte gBattleAnimAttacker thumb_func_end sub_80EF180 thumb_func_start sub_80EF1A0 @@ -685,7 +685,7 @@ sub_80EF1A0: @ 80EF1A0 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r2, _080EF1C4 @ =gUnknown_2037F02 + ldr r2, _080EF1C4 @ =gBattleAnimArgs ldrh r0, [r2] strh r0, [r1, 0x1C] ldrh r0, [r2, 0x2] @@ -695,7 +695,7 @@ sub_80EF1A0: @ 80EF1A0 bx lr .align 2, 0 _080EF1C0: .4byte gTasks -_080EF1C4: .4byte gUnknown_2037F02 +_080EF1C4: .4byte gBattleAnimArgs _080EF1C8: .4byte sub_80EF1CC thumb_func_end sub_80EF1A0 @@ -809,8 +809,8 @@ sub_80EF298: @ 80EF298 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r1, _080EF2C4 @ =gUnknown_2023D44 - ldr r0, _080EF2C8 @ =gUnknown_2037F1A + ldr r1, _080EF2C4 @ =gBattlerSpriteIds + ldr r0, _080EF2C8 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r5, [r0] @@ -829,8 +829,8 @@ sub_80EF298: @ 80EF298 beq _080EF2D6 b _080EF338 .align 2, 0 -_080EF2C4: .4byte gUnknown_2023D44 -_080EF2C8: .4byte gUnknown_2037F1A +_080EF2C4: .4byte gBattlerSpriteIds +_080EF2C8: .4byte gBattleAnimAttacker _080EF2CC: .4byte gTasks _080EF2D0: cmp r0, 0x2 @@ -900,8 +900,8 @@ sub_80EF344: @ 80EF344 sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 - ldr r1, _080EF37C @ =gUnknown_2023D44 - ldr r4, _080EF380 @ =gUnknown_2037F1A + ldr r1, _080EF37C @ =gBattlerSpriteIds + ldr r4, _080EF380 @ =gBattleAnimAttacker ldrb r0, [r4] adds r1, r0, r1 ldrb r1, [r1] @@ -920,8 +920,8 @@ sub_80EF344: @ 80EF344 ldr r1, _080EF388 @ =gPlayerParty b _080EF39C .align 2, 0 -_080EF37C: .4byte gUnknown_2023D44 -_080EF380: .4byte gUnknown_2037F1A +_080EF37C: .4byte gBattlerSpriteIds +_080EF380: .4byte gBattleAnimAttacker _080EF384: .4byte gBattlerPartyIndexes _080EF388: .4byte gPlayerParty _080EF38C: @@ -960,7 +960,7 @@ _080EF3CC: .4byte gBattlerPartyIndexes _080EF3D0: .4byte gEnemyParty _080EF3D4: .4byte gTasks _080EF3D8: - ldr r5, _080EF450 @ =gUnknown_2037F1A + ldr r5, _080EF450 @ =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 bl sub_8074480 @@ -1015,7 +1015,7 @@ _080EF3D8: strh r0, [r6, 0x8] b _080EF482 .align 2, 0 -_080EF450: .4byte gUnknown_2037F1A +_080EF450: .4byte gBattleAnimAttacker _080EF454: .4byte gSprites _080EF458: movs r1, 0x1C @@ -1103,21 +1103,21 @@ sub_80EF4E0: @ 80EF4E0 beq _080EF504 cmp r0, 0x6 beq _080EF514 - ldr r1, _080EF500 @ =gUnknown_2037F02 + ldr r1, _080EF500 @ =gBattleAnimArgs movs r0, 0 b _080EF518 .align 2, 0 _080EF4FC: .4byte gUnknown_2024018 -_080EF500: .4byte gUnknown_2037F02 +_080EF500: .4byte gBattleAnimArgs _080EF504: - ldr r1, _080EF50C @ =gUnknown_2037F02 + ldr r1, _080EF50C @ =gBattleAnimArgs ldr r0, _080EF510 @ =0x0000ffff b _080EF518 .align 2, 0 -_080EF50C: .4byte gUnknown_2037F02 +_080EF50C: .4byte gBattleAnimArgs _080EF510: .4byte 0x0000ffff _080EF514: - ldr r1, _080EF524 @ =gUnknown_2037F02 + ldr r1, _080EF524 @ =gBattleAnimArgs ldr r0, _080EF528 @ =0x0000fffe _080EF518: strh r0, [r1, 0xE] @@ -1126,7 +1126,7 @@ _080EF518: pop {r0} bx r0 .align 2, 0 -_080EF524: .4byte gUnknown_2037F02 +_080EF524: .4byte gBattleAnimArgs _080EF528: .4byte 0x0000fffe thumb_func_end sub_80EF4E0 @@ -1236,7 +1236,7 @@ sub_80EF5AC: @ 80EF5AC adds r6, r4, r1 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r2, _080EF680 @ =gUnknown_2037F1B + ldr r2, _080EF680 @ =gBattleAnimTarget mov r8, r2 ldrb r0, [r2] movs r1, 0 @@ -1260,7 +1260,7 @@ sub_80EF5AC: @ 80EF5AC ldr r0, _080EF688 @ =gUnknown_2024018 ldr r0, [r0] ldr r3, [r0, 0x8] - ldr r1, _080EF68C @ =gUnknown_2023D44 + ldr r1, _080EF68C @ =gBattlerSpriteIds mov r2, r8 ldrb r0, [r2] adds r0, r1 @@ -1300,10 +1300,10 @@ sub_80EF5AC: @ 80EF5AC _080EF674: .4byte gUnknown_2023D68 _080EF678: .4byte gUnknown_82606F4 _080EF67C: .4byte gSprites -_080EF680: .4byte gUnknown_2037F1B +_080EF680: .4byte gBattleAnimTarget _080EF684: .4byte sub_80EF8C0 _080EF688: .4byte gUnknown_2024018 -_080EF68C: .4byte gUnknown_2023D44 +_080EF68C: .4byte gBattlerSpriteIds _080EF690: .4byte gTasks _080EF694: .4byte sub_80EF698 thumb_func_end sub_80EF5AC @@ -1407,7 +1407,7 @@ _080EF708: adds r6, r4, r0 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r1, _080EF7D4 @ =gUnknown_2037F1B + ldr r1, _080EF7D4 @ =gBattleAnimTarget mov r8, r1 ldrb r0, [r1] movs r1, 0 @@ -1430,7 +1430,7 @@ _080EF708: str r0, [r4] movs r0, 0 bl GetBattlerAtPosition - ldr r1, _080EF7DC @ =gUnknown_2023D44 + ldr r1, _080EF7DC @ =gBattlerSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1460,9 +1460,9 @@ _080EF7C4: .4byte gSaveBlock2Ptr _080EF7C8: .4byte gUnknown_2023D68 _080EF7CC: .4byte gUnknown_82606F4 _080EF7D0: .4byte gSprites -_080EF7D4: .4byte gUnknown_2037F1B +_080EF7D4: .4byte gBattleAnimTarget _080EF7D8: .4byte SpriteCallbackDummy -_080EF7DC: .4byte gUnknown_2023D44 +_080EF7DC: .4byte gBattlerSpriteIds _080EF7E0: .4byte sub_8012354 _080EF7E4: .4byte gTasks _080EF7E8: .4byte sub_80EF7EC @@ -1476,7 +1476,7 @@ sub_80EF7EC: @ 80EF7EC ldr r6, _080EF84C @ =gSprites movs r0, 0 bl GetBattlerAtPosition - ldr r1, _080EF850 @ =gUnknown_2023D44 + ldr r1, _080EF850 @ =gBattlerSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1518,7 +1518,7 @@ _080EF846: bx r0 .align 2, 0 _080EF84C: .4byte gSprites -_080EF850: .4byte gUnknown_2023D44 +_080EF850: .4byte gBattlerSpriteIds _080EF854: .4byte gTasks _080EF858: .4byte sub_80EF8C0 _080EF85C: .4byte sub_80EF864 @@ -1533,7 +1533,7 @@ sub_80EF864: @ 80EF864 ldr r6, _080EF8B8 @ =gSprites movs r0, 0 bl GetBattlerAtPosition - ldr r4, _080EF8BC @ =gUnknown_2023D44 + ldr r4, _080EF8BC @ =gBattlerSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -1567,7 +1567,7 @@ _080EF8B0: bx r0 .align 2, 0 _080EF8B8: .4byte gSprites -_080EF8BC: .4byte gUnknown_2023D44 +_080EF8BC: .4byte gBattlerSpriteIds thumb_func_end sub_80EF864 thumb_func_start sub_80EF8C0 @@ -1674,7 +1674,7 @@ _080EF954: movs r2, 0x1 movs r3, 0x1C bl LaunchBallStarsTask - ldr r0, _080EF9B0 @ =gUnknown_2037F1B + ldr r0, _080EF9B0 @ =gBattleAnimTarget ldrb r1, [r0] movs r0, 0 movs r2, 0xE @@ -1688,7 +1688,7 @@ _080EF99E: .align 2, 0 _080EF9A8: .4byte sub_80EF9B4 _080EF9AC: .4byte gUnknown_2023D68 -_080EF9B0: .4byte gUnknown_2037F1B +_080EF9B0: .4byte gBattleAnimTarget thumb_func_end sub_80EF8F0 thumb_func_start sub_80EF9B4 @@ -1711,8 +1711,8 @@ sub_80EF9B4: @ 80EF9B4 ldr r0, _080EF9FC @ =sub_80EFA0C str r0, [r4, 0x1C] ldr r2, _080EFA00 @ =gSprites - ldr r1, _080EFA04 @ =gUnknown_2023D44 - ldr r0, _080EFA08 @ =gUnknown_2037F1B + ldr r1, _080EFA04 @ =gBattlerSpriteIds + ldr r0, _080EFA08 @ =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -1730,16 +1730,16 @@ _080EF9F0: _080EF9F8: .4byte TaskDummy _080EF9FC: .4byte sub_80EFA0C _080EFA00: .4byte gSprites -_080EFA04: .4byte gUnknown_2023D44 -_080EFA08: .4byte gUnknown_2037F1B +_080EFA04: .4byte gBattlerSpriteIds +_080EFA08: .4byte gBattleAnimTarget thumb_func_end sub_80EF9B4 thumb_func_start sub_80EFA0C sub_80EFA0C: @ 80EFA0C push {r4-r7,lr} adds r7, r0, 0 - ldr r1, _080EFA50 @ =gUnknown_2023D44 - ldr r0, _080EFA54 @ =gUnknown_2037F1B + ldr r1, _080EFA50 @ =gBattlerSpriteIds + ldr r0, _080EFA54 @ =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r4, [r0] @@ -1771,8 +1771,8 @@ _080EFA3E: beq _080EFA62 b _080EFB20 .align 2, 0 -_080EFA50: .4byte gUnknown_2023D44 -_080EFA54: .4byte gUnknown_2037F1B +_080EFA50: .4byte gBattlerSpriteIds +_080EFA54: .4byte gBattleAnimTarget _080EFA58: .4byte gTasks _080EFA5C: cmp r0, 0x2 @@ -2495,7 +2495,7 @@ sub_80EFFC4: @ 80EFFC4 push {r7} sub sp, 0x4 adds r6, r0, 0 - ldr r7, _080F0004 @ =gUnknown_2037F1B + ldr r7, _080F0004 @ =gBattleAnimTarget ldrh r0, [r6, 0x36] adds r0, 0x1 movs r1, 0 @@ -2519,7 +2519,7 @@ sub_80EFFC4: @ 80EFFC4 bl sub_80F01B8 b _080F0088 .align 2, 0 -_080F0004: .4byte gUnknown_2037F1B +_080F0004: .4byte gBattleAnimTarget _080F0008: cmp r1, 0x3C bne _080F0026 @@ -2555,7 +2555,7 @@ _080F004C: cmp r1, r0 bne _080F0088 ldr r5, _080F0098 @ =gSprites - ldr r4, _080F009C @ =gUnknown_2023D44 + ldr r4, _080F009C @ =gBattlerSpriteIds ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] @@ -2589,7 +2589,7 @@ _080F0088: .align 2, 0 _080F0094: .4byte 0x0000013b _080F0098: .4byte gSprites -_080F009C: .4byte gUnknown_2023D44 +_080F009C: .4byte gBattlerSpriteIds _080F00A0: .4byte sub_80F00A4 thumb_func_end sub_80EFFC4 @@ -2893,7 +2893,7 @@ sub_80F02B0: @ 80F02B0 movs r2, 0x1 movs r3, 0x1C bl LaunchBallStarsTask - ldr r0, _080F036C @ =gUnknown_2037F1B + ldr r0, _080F036C @ =gBattleAnimTarget ldrb r1, [r0] movs r0, 0x1 movs r2, 0xE @@ -2901,8 +2901,8 @@ sub_80F02B0: @ 80F02B0 bl LaunchBallFadeMonTask _080F0302: ldr r6, _080F0370 @ =gSprites - ldr r5, _080F0374 @ =gUnknown_2023D44 - ldr r4, _080F036C @ =gUnknown_2037F1B + ldr r5, _080F0374 @ =gBattlerSpriteIds + ldr r4, _080F036C @ =gBattleAnimTarget ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -2950,9 +2950,9 @@ _080F0302: .align 2, 0 _080F0364: .4byte sub_80F0378 _080F0368: .4byte gUnknown_2023D68 -_080F036C: .4byte gUnknown_2037F1B +_080F036C: .4byte gBattleAnimTarget _080F0370: .4byte gSprites -_080F0374: .4byte gUnknown_2023D44 +_080F0374: .4byte gBattlerSpriteIds thumb_func_end sub_80F02B0 thumb_func_start sub_80F0378 @@ -2974,8 +2974,8 @@ sub_80F0378: @ 80F0378 strb r0, [r2] _080F0396: ldr r4, _080F03C4 @ =gSprites - ldr r3, _080F03C8 @ =gUnknown_2023D44 - ldr r2, _080F03CC @ =gUnknown_2037F1B + ldr r3, _080F03C8 @ =gBattlerSpriteIds + ldr r2, _080F03CC @ =gBattleAnimTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -2996,8 +2996,8 @@ _080F0396: b _080F03F0 .align 2, 0 _080F03C4: .4byte gSprites -_080F03C8: .4byte gUnknown_2023D44 -_080F03CC: .4byte gUnknown_2037F1B +_080F03C8: .4byte gBattlerSpriteIds +_080F03CC: .4byte gBattleAnimTarget _080F03D0: ldr r6, _080F045C @ =0xfffffee0 adds r0, r6, 0 @@ -3026,8 +3026,8 @@ _080F03F0: cmp r5, 0 beq _080F0456 ldr r4, _080F0460 @ =gSprites - ldr r3, _080F0464 @ =gUnknown_2023D44 - ldr r2, _080F0468 @ =gUnknown_2037F1B + ldr r3, _080F0464 @ =gBattlerSpriteIds + ldr r2, _080F0468 @ =gBattleAnimTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -3073,8 +3073,8 @@ _080F0456: .align 2, 0 _080F045C: .4byte 0xfffffee0 _080F0460: .4byte gSprites -_080F0464: .4byte gUnknown_2023D44 -_080F0468: .4byte gUnknown_2037F1B +_080F0464: .4byte gBattlerSpriteIds +_080F0468: .4byte gBattleAnimTarget _080F046C: .4byte gUnknown_2024018 _080F0470: .4byte sub_80F018C _080F0474: .4byte gUnknown_2024005 @@ -5082,8 +5082,8 @@ sub_80F1420: @ 80F1420 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 - ldr r0, _080F1454 @ =gUnknown_2023D44 - ldr r3, _080F1458 @ =gUnknown_2037F1A + ldr r0, _080F1454 @ =gBattlerSpriteIds + ldr r3, _080F1458 @ =gBattleAnimAttacker ldrb r2, [r3] adds r0, r2, r0 ldrb r6, [r0] @@ -5102,15 +5102,15 @@ sub_80F1420: @ 80F1420 beq _080F1466 b _080F15BA .align 2, 0 -_080F1454: .4byte gUnknown_2023D44 -_080F1458: .4byte gUnknown_2037F1A +_080F1454: .4byte gBattlerSpriteIds +_080F1458: .4byte gBattleAnimAttacker _080F145C: .4byte gTasks _080F1460: cmp r0, 0x2 beq _080F150A b _080F15BA _080F1466: - ldr r0, _080F14A0 @ =gUnknown_2037F02 + ldr r0, _080F14A0 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r5, 0x1E] movs r2, 0xA0 @@ -5138,7 +5138,7 @@ _080F1466: adds r4, r3, 0 b _080F14C0 .align 2, 0 -_080F14A0: .4byte gUnknown_2037F02 +_080F14A0: .4byte gBattleAnimArgs _080F14A4: .4byte gSprites _080F14A8: ldr r3, _080F14F0 @ =gSprites @@ -5238,7 +5238,7 @@ _080F1558: adds r0, r1 ldrb r1, [r0, 0x8] strh r1, [r0, 0x8] - ldr r0, _080F1594 @ =gUnknown_2037F1A + ldr r0, _080F1594 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -5259,7 +5259,7 @@ _080F1558: .align 2, 0 _080F158C: .4byte gSprites _080F1590: .4byte gTasks -_080F1594: .4byte gUnknown_2037F1A +_080F1594: .4byte gBattleAnimAttacker _080F1598: ldr r0, _080F15C4 @ =gSprites adds r1, r4, r6 @@ -5315,7 +5315,7 @@ _080F15F0: beq _080F167E b _080F16B4 _080F15F6: - ldr r0, _080F1610 @ =gUnknown_2037F1A + ldr r0, _080F1610 @ =gBattleAnimAttacker ldrb r0, [r0] bl sub_80768B0 lsls r0, 24 @@ -5327,7 +5327,7 @@ _080F15F6: bl SetGpuReg b _080F1620 .align 2, 0 -_080F1610: .4byte gUnknown_2037F1A +_080F1610: .4byte gBattleAnimAttacker _080F1614: .4byte 0x00003f42 _080F1618: ldr r1, _080F163C @ =0x00003f44 @@ -5379,8 +5379,8 @@ _080F1644: strh r0, [r4, 0x26] b _080F16B4 _080F167E: - ldr r1, _080F16BC @ =gUnknown_2023D44 - ldr r4, _080F16C0 @ =gUnknown_2037F1A + ldr r1, _080F16BC @ =gBattlerSpriteIds + ldr r4, _080F16C0 @ =gBattleAnimAttacker ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] @@ -5408,8 +5408,8 @@ _080F16B4: pop {r0} bx r0 .align 2, 0 -_080F16BC: .4byte gUnknown_2023D44 -_080F16C0: .4byte gUnknown_2037F1A +_080F16BC: .4byte gBattlerSpriteIds +_080F16C0: .4byte gBattleAnimAttacker _080F16C4: .4byte gSprites _080F16C8: .4byte 0x06010000 thumb_func_end sub_80F15C8 @@ -5419,10 +5419,10 @@ sub_80F16CC: @ 80F16CC push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, _080F16F4 @ =gUnknown_2037F02 + ldr r3, _080F16F4 @ =gBattleAnimArgs ldr r1, _080F16F8 @ =gUnknown_2024018 ldr r2, [r1] - ldr r1, _080F16FC @ =gUnknown_2037F1A + ldr r1, _080F16FC @ =gBattleAnimAttacker ldrb r1, [r1] ldr r2, [r2] lsls r1, 2 @@ -5435,9 +5435,9 @@ sub_80F16CC: @ 80F16CC pop {r0} bx r0 .align 2, 0 -_080F16F4: .4byte gUnknown_2037F02 +_080F16F4: .4byte gBattleAnimArgs _080F16F8: .4byte gUnknown_2024018 -_080F16FC: .4byte gUnknown_2037F1A +_080F16FC: .4byte gBattleAnimAttacker thumb_func_end sub_80F16CC thumb_func_start sub_80F1700 @@ -5445,7 +5445,7 @@ sub_80F1700: @ 80F1700 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080F1718 @ =gUnknown_2037F1B + ldr r2, _080F1718 @ =gBattleAnimTarget ldr r1, _080F171C @ =gUnknown_2023D6E ldrb r1, [r1] strb r1, [r2] @@ -5453,7 +5453,7 @@ sub_80F1700: @ 80F1700 pop {r0} bx r0 .align 2, 0 -_080F1718: .4byte gUnknown_2037F1B +_080F1718: .4byte gBattleAnimTarget _080F171C: .4byte gUnknown_2023D6E thumb_func_end sub_80F1700 @@ -5992,7 +5992,7 @@ sub_80F1B3C: @ 80F1B3C movs r1, 0 bl sub_8074480 lsls r0, 24 - ldr r5, _080F1BB0 @ =gUnknown_2037F02 + ldr r5, _080F1BB0 @ =gBattleAnimArgs lsrs r0, 24 ldrh r1, [r5, 0x4] adds r0, r1 @@ -6013,8 +6013,8 @@ sub_80F1B3C: @ 80F1B3C adds r0, r4, 0 bl sub_8075068 ldr r2, _080F1BB8 @ =gSprites - ldr r1, _080F1BBC @ =gUnknown_2023D44 - ldr r0, _080F1BC0 @ =gUnknown_2037F1A + ldr r1, _080F1BBC @ =gBattlerSpriteIds + ldr r0, _080F1BC0 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -6031,11 +6031,11 @@ sub_80F1B3C: @ 80F1B3C pop {r0} bx r0 .align 2, 0 -_080F1BB0: .4byte gUnknown_2037F02 +_080F1BB0: .4byte gBattleAnimArgs _080F1BB4: .4byte 0x0000ffe0 _080F1BB8: .4byte gSprites -_080F1BBC: .4byte gUnknown_2023D44 -_080F1BC0: .4byte gUnknown_2037F1A +_080F1BBC: .4byte gBattlerSpriteIds +_080F1BC0: .4byte gBattleAnimAttacker _080F1BC4: .4byte sub_8012354 _080F1BC8: .4byte sub_80F1BCC thumb_func_end sub_80F1B3C @@ -6045,8 +6045,8 @@ sub_80F1BCC: @ 80F1BCC push {lr} adds r3, r0, 0 ldr r2, _080F1BF4 @ =gSprites - ldr r1, _080F1BF8 @ =gUnknown_2023D44 - ldr r0, _080F1BFC @ =gUnknown_2037F1A + ldr r1, _080F1BF8 @ =gBattlerSpriteIds + ldr r0, _080F1BFC @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -6065,8 +6065,8 @@ _080F1BF0: bx r0 .align 2, 0 _080F1BF4: .4byte gSprites -_080F1BF8: .4byte gUnknown_2023D44 -_080F1BFC: .4byte gUnknown_2037F1A +_080F1BF8: .4byte gBattlerSpriteIds +_080F1BFC: .4byte gBattleAnimAttacker _080F1C00: .4byte sub_80F1C04 thumb_func_end sub_80F1BCC @@ -6101,8 +6101,8 @@ sub_80F1C30: @ 80F1C30 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080F1C80 @ =gSprites - ldr r3, _080F1C84 @ =gUnknown_2023D44 - ldr r2, _080F1C88 @ =gUnknown_2037F1A + ldr r3, _080F1C84 @ =gBattlerSpriteIds + ldr r2, _080F1C88 @ =gBattleAnimAttacker ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -6138,8 +6138,8 @@ _080F1C78: bx r0 .align 2, 0 _080F1C80: .4byte gSprites -_080F1C84: .4byte gUnknown_2023D44 -_080F1C88: .4byte gUnknown_2037F1A +_080F1C84: .4byte gBattlerSpriteIds +_080F1C88: .4byte gBattleAnimAttacker thumb_func_end sub_80F1C30 thumb_func_start sub_80F1C8C @@ -6147,7 +6147,7 @@ sub_80F1C8C: @ 80F1C8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _080F1CA4 @ =gUnknown_2037F02 + ldr r0, _080F1CA4 @ =gBattleAnimArgs movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 @@ -6156,25 +6156,25 @@ sub_80F1C8C: @ 80F1C8C beq _080F1CBC b _080F1CD0 .align 2, 0 -_080F1CA4: .4byte gUnknown_2037F02 +_080F1CA4: .4byte gBattleAnimArgs _080F1CA8: movs r0, 0 bl GetBattlerAtPosition - ldr r1, _080F1CB8 @ =gUnknown_2037F1A + ldr r1, _080F1CB8 @ =gBattleAnimAttacker strb r0, [r1] movs r0, 0x1 b _080F1CC8 .align 2, 0 -_080F1CB8: .4byte gUnknown_2037F1A +_080F1CB8: .4byte gBattleAnimAttacker _080F1CBC: movs r0, 0x1 bl GetBattlerAtPosition - ldr r1, _080F1CDC @ =gUnknown_2037F1A + ldr r1, _080F1CDC @ =gBattleAnimAttacker strb r0, [r1] movs r0, 0 _080F1CC8: bl GetBattlerAtPosition - ldr r1, _080F1CE0 @ =gUnknown_2037F1B + ldr r1, _080F1CE0 @ =gBattleAnimTarget strb r0, [r1] _080F1CD0: adds r0, r4, 0 @@ -6183,8 +6183,8 @@ _080F1CD0: pop {r0} bx r0 .align 2, 0 -_080F1CDC: .4byte gUnknown_2037F1A -_080F1CE0: .4byte gUnknown_2037F1B +_080F1CDC: .4byte gBattleAnimAttacker +_080F1CE0: .4byte gBattleAnimTarget thumb_func_end sub_80F1C8C thumb_func_start sub_80F1CE4 @@ -6196,14 +6196,14 @@ sub_80F1CE4: @ 80F1CE4 ldrb r0, [r2, 0x5] cmp r0, 0x2 bls _080F1D00 - ldr r1, _080F1CFC @ =gUnknown_2037F02 + ldr r1, _080F1CFC @ =gBattleAnimArgs movs r0, 0 b _080F1D04 .align 2, 0 _080F1CF8: .4byte gUnknown_2023E82 -_080F1CFC: .4byte gUnknown_2037F02 +_080F1CFC: .4byte gBattleAnimArgs _080F1D00: - ldr r1, _080F1D10 @ =gUnknown_2037F02 + ldr r1, _080F1D10 @ =gBattleAnimArgs ldrb r0, [r2, 0x5] _080F1D04: strh r0, [r1, 0xE] @@ -6212,7 +6212,7 @@ _080F1D04: pop {r0} bx r0 .align 2, 0 -_080F1D10: .4byte gUnknown_2037F02 +_080F1D10: .4byte gBattleAnimArgs thumb_func_end sub_80F1CE4 thumb_func_start sub_80F1D14 @@ -6226,40 +6226,40 @@ sub_80F1D14: @ 80F1D14 ldrh r1, [r0] cmp r1, 0x53 bne _080F1D34 - ldr r1, _080F1D30 @ =gUnknown_2037F02 + ldr r1, _080F1D30 @ =gBattleAnimArgs movs r0, 0x1 b _080F1D6C .align 2, 0 _080F1D2C: .4byte gUnknown_2024018 -_080F1D30: .4byte gUnknown_2037F02 +_080F1D30: .4byte gBattleAnimArgs _080F1D34: cmp r1, 0xFA bne _080F1D44 - ldr r1, _080F1D40 @ =gUnknown_2037F02 + ldr r1, _080F1D40 @ =gBattleAnimArgs movs r0, 0x2 b _080F1D6C .align 2, 0 -_080F1D40: .4byte gUnknown_2037F02 +_080F1D40: .4byte gBattleAnimArgs _080F1D44: cmp r1, 0x80 bne _080F1D54 - ldr r1, _080F1D50 @ =gUnknown_2037F02 + ldr r1, _080F1D50 @ =gBattleAnimArgs movs r0, 0x3 b _080F1D6C .align 2, 0 -_080F1D50: .4byte gUnknown_2037F02 +_080F1D50: .4byte gBattleAnimArgs _080F1D54: movs r0, 0xA4 lsls r0, 1 cmp r1, r0 bne _080F1D68 - ldr r1, _080F1D64 @ =gUnknown_2037F02 + ldr r1, _080F1D64 @ =gBattleAnimArgs movs r0, 0x4 b _080F1D6C .align 2, 0 -_080F1D64: .4byte gUnknown_2037F02 +_080F1D64: .4byte gBattleAnimArgs _080F1D68: - ldr r1, _080F1D78 @ =gUnknown_2037F02 + ldr r1, _080F1D78 @ =gBattleAnimArgs movs r0, 0 _080F1D6C: strh r0, [r1] @@ -6268,7 +6268,7 @@ _080F1D6C: pop {r0} bx r0 .align 2, 0 -_080F1D78: .4byte gUnknown_2037F02 +_080F1D78: .4byte gBattleAnimArgs thumb_func_end sub_80F1D14 thumb_func_start sub_80F1D7C @@ -6276,13 +6276,13 @@ sub_80F1D7C: @ 80F1D7C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, _080F1DA0 @ =gUnknown_2037F1A + ldr r3, _080F1DA0 @ =gBattleAnimAttacker ldr r1, _080F1DA4 @ =gUnknown_2024018 ldr r2, [r1] ldr r1, [r2, 0x8] ldrh r1, [r1] strb r1, [r3] - ldr r3, _080F1DA8 @ =gUnknown_2037F1B + ldr r3, _080F1DA8 @ =gBattleAnimTarget ldr r1, [r2, 0x8] ldrh r1, [r1] lsrs r1, 8 @@ -6291,9 +6291,9 @@ sub_80F1D7C: @ 80F1D7C pop {r0} bx r0 .align 2, 0 -_080F1DA0: .4byte gUnknown_2037F1A +_080F1DA0: .4byte gBattleAnimAttacker _080F1DA4: .4byte gUnknown_2024018 -_080F1DA8: .4byte gUnknown_2037F1B +_080F1DA8: .4byte gBattleAnimTarget thumb_func_end sub_80F1D7C .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_8078178.s b/asm/battle_anim_status_effects.s similarity index 97% rename from asm/battle_anim_8078178.s rename to asm/battle_anim_status_effects.s index 1080351b3..5530fd869 100644 --- a/asm/battle_anim_8078178.s +++ b/asm/battle_anim_status_effects.s @@ -16,7 +16,7 @@ sub_8078178: @ 8078178 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 - ldr r0, _0807821C @ =gUnknown_2023D44 + ldr r0, _0807821C @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r6, [r0] ldr r0, _08078220 @ =sub_80782BC @@ -88,7 +88,7 @@ _08078210: bls _080781CC b _08078298 .align 2, 0 -_0807821C: .4byte gUnknown_2023D44 +_0807821C: .4byte gBattlerSpriteIds _08078220: .4byte sub_80782BC _08078224: .4byte gUnknown_83AD048 _08078228: .4byte gUnknown_83AD950 @@ -341,7 +341,7 @@ sub_80783FC: @ 80783FC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r4, _080784AC @ =gUnknown_2037F1B + ldr r4, _080784AC @ =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_8074480 @@ -420,7 +420,7 @@ _08078484: pop {r0} bx r0 .align 2, 0 -_080784AC: .4byte gUnknown_2037F1B +_080784AC: .4byte gBattleAnimTarget _080784B0: .4byte 0xffe00000 _080784B4: .4byte 0xffdc0000 _080784B8: .4byte 0xfffa0000 @@ -867,7 +867,7 @@ _08078830: bl DestroyAnimVisualTask b _0807885A _08078838: - ldr r0, _08078860 @ =gUnknown_2037F02 + ldr r0, _08078860 @ =gBattleAnimArgs movs r1, 0 strh r5, [r0] strh r2, [r0, 0x2] @@ -888,7 +888,7 @@ _0807885A: pop {r0} bx r0 .align 2, 0 -_08078860: .4byte gUnknown_2037F02 +_08078860: .4byte gBattleAnimArgs _08078864: .4byte gTasks _08078868: .4byte sub_80BB088 thumb_func_end sub_8078694 @@ -901,9 +901,9 @@ LaunchStatusAnimation: @ 807886C lsrs r4, 24 lsls r1, 24 lsrs r1, 24 - ldr r0, _080788A8 @ =gUnknown_2037F1A + ldr r0, _080788A8 @ =gBattleAnimAttacker strb r4, [r0] - ldr r0, _080788AC @ =gUnknown_2037F1B + ldr r0, _080788AC @ =gBattleAnimTarget strb r4, [r0] ldr r0, _080788B0 @ =gUnknown_81C6E84 movs r2, 0 @@ -923,8 +923,8 @@ LaunchStatusAnimation: @ 807886C pop {r0} bx r0 .align 2, 0 -_080788A8: .4byte gUnknown_2037F1A -_080788AC: .4byte gUnknown_2037F1B +_080788A8: .4byte gBattleAnimAttacker +_080788AC: .4byte gBattleAnimTarget _080788B0: .4byte gUnknown_81C6E84 _080788B4: .4byte task0A_80788BC _080788B8: .4byte gTasks diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s new file mode 100644 index 000000000..d33f51842 --- /dev/null +++ b/asm/battle_anim_utility_funcs.s @@ -0,0 +1,5133 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80BA7F8 +sub_80BA7F8: @ 80BA7F8 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080BA838 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_80B9A14 + adds r6, r0, 0 + ldrh r3, [r4] + lsls r3, 16 + asrs r0, r3, 23 + movs r4, 0x1 + ands r0, r4 + asrs r1, r3, 24 + ands r1, r4 + asrs r2, r3, 25 + ands r2, r4 + asrs r3, 26 + ands r3, r4 + bl sub_8075CB8 + orrs r6, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80BAA4C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BA838: .4byte gBattleAnimArgs + thumb_func_end sub_80BA7F8 + + thumb_func_start sub_80BA83C +sub_80BA83C: @ 80BA83C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x1] + movs r0, 0x1 + bl sub_80B9A14 + adds r5, r0, 0 + ldr r0, _080BA868 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x7 + bhi _080BA8E6 + lsls r0, 2 + ldr r1, _080BA86C @ =_080BA870 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BA868: .4byte gBattleAnimArgs +_080BA86C: .4byte _080BA870 + .align 2, 0 +_080BA870: + .4byte _080BA892 + .4byte _080BA89E + .4byte _080BA890 + .4byte _080BA89C + .4byte _080BA8AC + .4byte _080BA8C4 + .4byte _080BA8CC + .4byte _080BA8D8 +_080BA890: + movs r5, 0 +_080BA892: + mov r0, sp + ldr r1, _080BA898 @ =gBattleAnimAttacker + b _080BA8A2 + .align 2, 0 +_080BA898: .4byte gBattleAnimAttacker +_080BA89C: + movs r5, 0 +_080BA89E: + mov r0, sp + ldr r1, _080BA8A8 @ =gBattleAnimTarget +_080BA8A2: + ldrb r1, [r1] + strb r1, [r0] + b _080BA8E6 + .align 2, 0 +_080BA8A8: .4byte gBattleAnimTarget +_080BA8AC: + mov r1, sp + ldr r0, _080BA8BC @ =gBattleAnimAttacker + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080BA8C0 @ =gBattleAnimTarget + ldrb r0, [r0] + strb r0, [r1, 0x1] + b _080BA8E6 + .align 2, 0 +_080BA8BC: .4byte gBattleAnimAttacker +_080BA8C0: .4byte gBattleAnimTarget +_080BA8C4: + mov r1, sp + movs r0, 0xFF + strb r0, [r1] + b _080BA8E6 +_080BA8CC: + movs r5, 0 + mov r2, sp + ldr r0, _080BA8D4 @ =gBattleAnimAttacker + b _080BA8DE + .align 2, 0 +_080BA8D4: .4byte gBattleAnimAttacker +_080BA8D8: + movs r5, 0 + mov r2, sp + ldr r0, _080BA930 @ =gBattleAnimTarget +_080BA8DE: + ldrb r0, [r0] + movs r1, 0x2 + eors r0, r1 + strb r0, [r2] +_080BA8E6: + movs r4, 0 + mov r6, sp +_080BA8EA: + ldrb r0, [r6] + cmp r4, r0 + beq _080BA914 + ldrb r0, [r6, 0x1] + cmp r4, r0 + beq _080BA914 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080BA914 + adds r0, r4, 0 + bl sub_8075D80 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + orrs r5, r1 +_080BA914: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080BA8EA + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_80BAA4C + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA930: .4byte gBattleAnimTarget + thumb_func_end sub_80BA83C + + thumb_func_start sub_80BA934 +sub_80BA934: @ 80BA934 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BA958 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_80B9A14 + adds r2, r0, 0 + ldr r0, _080BA95C @ =gUnknown_2022B50 + ldrb r0, [r0] + cmp r0, 0x9 + bhi _080BAA0A + lsls r0, 2 + ldr r1, _080BA960 @ =_080BA964 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BA958: .4byte gBattleAnimArgs +_080BA95C: .4byte gUnknown_2022B50 +_080BA960: .4byte _080BA964 + .align 2, 0 +_080BA964: + .4byte _080BA98C + .4byte _080BA99C + .4byte _080BA9A8 + .4byte _080BA9B8 + .4byte _080BA9C4 + .4byte _080BA9D4 + .4byte _080BA9E4 + .4byte _080BA9F4 + .4byte _080BAA04 + .4byte _080BAA04 +_080BA98C: + ldr r1, _080BA994 @ =gBattleAnimArgs + ldr r0, _080BA998 @ =0x00000b0c + b _080BAA08 + .align 2, 0 +_080BA994: .4byte gBattleAnimArgs +_080BA998: .4byte 0x00000b0c +_080BA99C: + ldr r1, _080BA9A4 @ =gBattleAnimArgs + movs r0, 0x9E + lsls r0, 4 + b _080BAA08 + .align 2, 0 +_080BA9A4: .4byte gBattleAnimArgs +_080BA9A8: + ldr r1, _080BA9B0 @ =gBattleAnimArgs + ldr r0, _080BA9B4 @ =0x00002f1e + b _080BAA08 + .align 2, 0 +_080BA9B0: .4byte gBattleAnimArgs +_080BA9B4: .4byte 0x00002f1e +_080BA9B8: + ldr r1, _080BA9C0 @ =gBattleAnimArgs + movs r0, 0x90 + lsls r0, 7 + b _080BAA08 + .align 2, 0 +_080BA9C0: .4byte gBattleAnimArgs +_080BA9C4: + ldr r1, _080BA9CC @ =gBattleAnimArgs + ldr r0, _080BA9D0 @ =0x00007ecb + b _080BAA08 + .align 2, 0 +_080BA9CC: .4byte gBattleAnimArgs +_080BA9D0: .4byte 0x00007ecb +_080BA9D4: + ldr r1, _080BA9DC @ =gBattleAnimArgs + ldr r0, _080BA9E0 @ =0x00007ecb + b _080BAA08 + .align 2, 0 +_080BA9DC: .4byte gBattleAnimArgs +_080BA9E0: .4byte 0x00007ecb +_080BA9E4: + ldr r1, _080BA9EC @ =gBattleAnimArgs + ldr r0, _080BA9F0 @ =0x00002a16 + b _080BAA08 + .align 2, 0 +_080BA9EC: .4byte gBattleAnimArgs +_080BA9F0: .4byte 0x00002a16 +_080BA9F4: + ldr r1, _080BA9FC @ =gBattleAnimArgs + ldr r0, _080BAA00 @ =0x00000d2e + b _080BAA08 + .align 2, 0 +_080BA9FC: .4byte gBattleAnimArgs +_080BAA00: .4byte 0x00000d2e +_080BAA04: + ldr r1, _080BAA18 @ =gBattleAnimArgs + ldr r0, _080BAA1C @ =0x00007fff +_080BAA08: + strh r0, [r1, 0x8] +_080BAA0A: + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80BAA4C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BAA18: .4byte gBattleAnimArgs +_080BAA1C: .4byte 0x00007fff + thumb_func_end sub_80BA934 + + thumb_func_start sub_80BAA20 +sub_80BAA20: @ 80BAA20 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080BAA48 @ =gBattleAnimArgs + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + adds r0, r4, 0 + bl sub_80BAA4C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BAA48: .4byte gBattleAnimArgs + thumb_func_end sub_80BAA20 + + thumb_func_start sub_80BAA4C +sub_80BAA4C: @ 80BAA4C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080BAA84 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + strh r1, [r2, 0x8] + lsrs r1, 16 + strh r1, [r2, 0xA] + ldr r3, _080BAA88 @ =gBattleAnimArgs + ldrh r1, [r3, 0x2] + strh r1, [r2, 0xC] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0xE] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0x10] + ldrh r1, [r3, 0x8] + strh r1, [r2, 0x12] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0x1C] + ldr r1, _080BAA8C @ =sub_80BAA90 + str r1, [r2] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080BAA84: .4byte gTasks +_080BAA88: .4byte gBattleAnimArgs +_080BAA8C: .4byte sub_80BAA90 + thumb_func_end sub_80BAA4C + + thumb_func_start sub_80BAA90 +sub_80BAA90: @ 80BAA90 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r2, _080BAB10 @ =gTasks + lsls r5, r7, 2 + adds r0, r5, r7 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1A] + mov r8, r0 + movs r4, 0x1A + ldrsh r1, [r3, r4] + movs r4, 0xC + ldrsh r0, [r3, r4] + mov r9, r2 + cmp r1, r0 + bne _080BAB26 + strh r6, [r3, 0x1A] + movs r0, 0x8 + ldrsh r4, [r3, r0] + movs r1, 0xA + ldrsh r0, [r3, r1] + lsls r0, 16 + orrs r4, r0 + mov r8, r5 + cmp r4, 0 + beq _080BAAF2 + adds r5, r3, 0 +_080BAAD0: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080BAAE4 + ldrb r2, [r5, 0x1C] + ldrh r3, [r5, 0x12] + adds r0, r6, 0 + movs r1, 0x10 + bl BlendPalette +_080BAAE4: + adds r0, r6, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r4, 1 + cmp r4, 0 + bne _080BAAD0 +_080BAAF2: + mov r4, r8 + adds r0, r4, r7 + lsls r0, 3 + mov r1, r9 + adds r2, r0, r1 + ldrh r0, [r2, 0x1C] + movs r4, 0x1C + ldrsh r3, [r2, r4] + movs r4, 0x10 + ldrsh r1, [r2, r4] + cmp r3, r1 + bge _080BAB14 + adds r0, 0x1 + strh r0, [r2, 0x1C] + b _080BAB2C + .align 2, 0 +_080BAB10: .4byte gTasks +_080BAB14: + cmp r3, r1 + ble _080BAB1E + subs r0, 0x1 + strh r0, [r2, 0x1C] + b _080BAB2C +_080BAB1E: + adds r0, r7, 0 + bl DestroyAnimVisualTask + b _080BAB2C +_080BAB26: + mov r0, r8 + adds r0, 0x1 + strh r0, [r3, 0x1A] +_080BAB2C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BAA90 + + thumb_func_start sub_80BAB38 +sub_80BAB38: @ 80BAB38 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080BAB6C @ =gBattleAnimArgs + ldrb r0, [r4] + ldrb r1, [r4, 0x2] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + ldrb r4, [r4, 0x8] + str r4, [sp] + bl BeginHardwarePaletteFade + ldr r1, _080BAB70 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BAB74 @ =sub_80BAB78 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BAB6C: .4byte gBattleAnimArgs +_080BAB70: .4byte gTasks +_080BAB74: .4byte sub_80BAB78 + thumb_func_end sub_80BAB38 + + thumb_func_start sub_80BAB78 +sub_80BAB78: @ 80BAB78 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080BAB94 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BAB90 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080BAB90: + pop {r0} + bx r0 + .align 2, 0 +_080BAB94: .4byte gPaletteFade + thumb_func_end sub_80BAB78 + + thumb_func_start sub_80BAB98 +sub_80BAB98: @ 80BAB98 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080BABC4 @ =gTasks + adds r1, r0 + ldr r2, _080BABC8 @ =gBattleAnimArgs + ldrh r0, [r2] + movs r3, 0 + strh r0, [r1, 0x8] + strh r3, [r1, 0xA] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0xC] + ldrh r0, [r2, 0x4] + strh r0, [r1, 0xE] + ldrh r0, [r2, 0x6] + strh r0, [r1, 0x10] + strh r3, [r1, 0x12] + ldr r0, _080BABCC @ =sub_80BABD0 + str r0, [r1] + bx lr + .align 2, 0 +_080BABC4: .4byte gTasks +_080BABC8: .4byte gBattleAnimArgs +_080BABCC: .4byte sub_80BABD0 + thumb_func_end sub_80BAB98 + + thumb_func_start sub_80BABD0 +sub_80BABD0: @ 80BABD0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080BABFC @ =gTasks + adds r4, r0, r1 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080BAC94 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080BAC00 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + b _080BACA2 + .align 2, 0 +_080BABFC: .4byte gTasks +_080BAC00: + ldrb r0, [r4, 0x8] + bl duplicate_obj_of_side_rel2move_in_transparent_mode + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + blt _080BAC7E + ldr r6, _080BAC8C @ =gSprites + movs r1, 0x14 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r3, r1, r6 + movs r2, 0x8 + ldrsh r0, [r4, r2] + movs r2, 0x2 + cmp r0, 0 + beq _080BAC28 + movs r2, 0x1 +_080BAC28: + lsls r2, 2 + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x5] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0xE] + strh r1, [r0, 0x2E] + movs r2, 0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r5, [r0, 0x30] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + strh r1, [r0, 0x32] + movs r2, 0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080BAC90 @ =sub_80BACA8 + str r1, [r0] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] +_080BAC7E: + ldrh r0, [r4, 0x10] + subs r0, 0x1 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xC] + strh r0, [r4, 0xA] + b _080BACA2 + .align 2, 0 +_080BAC8C: .4byte gSprites +_080BAC90: .4byte sub_80BACA8 +_080BAC94: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BACA2 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080BACA2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BABD0 + + thumb_func_start sub_80BACA8 +sub_80BACA8: @ 80BACA8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080BACBC + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080BACE0 +_080BACBC: + ldr r3, _080BACE8 @ =gTasks + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl obj_delete_but_dont_free_vram +_080BACE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BACE8: .4byte gTasks + thumb_func_end sub_80BACA8 + + thumb_func_start sub_80BACEC +sub_80BACEC: @ 80BACEC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r7, 0 + ldr r0, _080BAE20 @ =gUnknown_2022984 + strh r7, [r0] + ldr r0, _080BAE24 @ =gUnknown_2022986 + strh r7, [r0] + ldr r1, _080BAE28 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080BAE2C @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + movs r1, 0x80 + lsls r1, 8 + movs r0, 0 + bl SetGpuRegBits + ldr r1, _080BAE30 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + ldr r1, _080BAE34 @ =0x00000c08 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0xA + bl GetGpuReg + add r4, sp, 0x10 + strh r0, [r4] + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + mov r8, r0 + ands r0, r1 + strb r0, [r4] + mov r2, sp + adds r2, 0x11 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2] + ldrh r1, [r4] + movs r0, 0xA + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BAD7A + ldrb r1, [r4] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r4] + movs r0, 0xA + bl SetGpuReg +_080BAD7A: + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080BADFE + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BADFE + ldr r5, _080BAE38 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080BADAA + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + bne _080BADFE +_080BADAA: + ldrb r0, [r5] + movs r6, 0x2 + eors r0, r6 + bl sub_8072DF0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BADFE + ldr r3, _080BAE3C @ =gSprites + ldr r1, _080BAE40 @ =gBattlerSpriteIds + ldrb r0, [r5] + eors r0, r6 + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + ldrb r1, [r4] + mov r0, r8 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r4] + movs r0, 0xA + bl SetGpuReg + movs r7, 0x1 +_080BADFE: + ldr r4, _080BAE38 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BAE4C + ldr r1, _080BAE44 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BAE48 @ =gEnemyParty + b _080BAE5C + .align 2, 0 +_080BAE20: .4byte gUnknown_2022984 +_080BAE24: .4byte gUnknown_2022986 +_080BAE28: .4byte 0x00003f3f +_080BAE2C: .4byte 0x00003f3d +_080BAE30: .4byte 0x00003f42 +_080BAE34: .4byte 0x00000c08 +_080BAE38: .4byte gBattleAnimAttacker +_080BAE3C: .4byte gSprites +_080BAE40: .4byte gBattlerSpriteIds +_080BAE44: .4byte gBattlerPartyIndexes +_080BAE48: .4byte gEnemyParty +_080BAE4C: + ldr r1, _080BAF0C @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BAF10 @ =gPlayerParty +_080BAE5C: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r0, _080BAF14 @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8076E34 + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap + bl sub_807543C + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080BAEAC + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080BAEAC: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BAF1C @ =gFile_graphics_battle_anims_masks_curse_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080BAF20 @ =gUnknown_83E7CC8 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + adds r1, 0x1 + movs r2, 0x2 + bl LoadPalette + ldr r2, _080BAF24 @ =gBattle_BG1_X + ldr r0, _080BAF28 @ =gSprites + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x20] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldr r2, _080BAF2C @ =gBattle_BG1_Y + ldrh r0, [r1, 0x22] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldr r1, _080BAF30 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x8] + strh r7, [r0, 0x14] + ldr r1, _080BAF34 @ =sub_80BAF38 + str r1, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BAF0C: .4byte gBattlerPartyIndexes +_080BAF10: .4byte gPlayerParty +_080BAF14: .4byte gBattleAnimAttacker +_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap +_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet +_080BAF20: .4byte gUnknown_83E7CC8 +_080BAF24: .4byte gBattle_BG1_X +_080BAF28: .4byte gSprites +_080BAF2C: .4byte gBattle_BG1_Y +_080BAF30: .4byte gTasks +_080BAF34: .4byte sub_80BAF38 + thumb_func_end sub_80BACEC + + thumb_func_start sub_80BAF38 +sub_80BAF38: @ 80BAF38 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080BB068 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x1C] + adds r0, 0x4 + movs r1, 0 + mov r8, r1 + strh r0, [r5, 0x1C] + ldr r7, _080BB06C @ =gBattle_BG1_Y + ldrh r2, [r7] + subs r1, r2, 0x4 + strh r1, [r7] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _080BB05A + mov r0, r8 + strh r0, [r5, 0x1C] + adds r0, r2, 0 + adds r0, 0x3C + strh r0, [r7] + ldrh r0, [r5, 0x1E] + adds r0, 0x1 + strh r0, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080BB05A + movs r0, 0 + bl sub_8073128 + ldr r0, _080BB070 @ =gUnknown_2022984 + mov r1, r8 + strh r1, [r0] + ldr r0, _080BB074 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080BB078 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BAFCA + movs r0, 0xA + bl GetGpuReg + add r1, sp, 0x10 + strh r0, [r1] + ldrb r2, [r1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrh r1, [r1] + movs r0, 0xA + bl SetGpuReg +_080BAFCA: + movs r0, 0 + bl GetGpuReg + adds r1, r0, 0 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + eors r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + bl GetAnimBankSpriteId + ldr r4, _080BB07C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + bl sub_8075358 + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080BB050 + ldr r2, _080BB080 @ =gBattlerSpriteIds + ldr r0, _080BB084 @ =gBattleAnimAttacker + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080BB050: + mov r2, r8 + strh r2, [r7] + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080BB05A: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BB068: .4byte gTasks +_080BB06C: .4byte gBattle_BG1_Y +_080BB070: .4byte gUnknown_2022984 +_080BB074: .4byte gUnknown_2022986 +_080BB078: .4byte 0x00003f3f +_080BB07C: .4byte gSprites +_080BB080: .4byte gBattlerSpriteIds +_080BB084: .4byte gBattleAnimAttacker + thumb_func_end sub_80BAF38 + + thumb_func_start sub_80BB088 +sub_80BB088: @ 80BB088 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080BB0C8 @ =gUnknown_20399B4 + movs r0, 0x18 + bl AllocZeroed + str r0, [r4] + movs r2, 0 + ldr r3, _080BB0CC @ =gBattleAnimArgs +_080BB09C: + ldr r1, [r4] + lsls r0, r2, 1 + adds r1, 0x4 + adds r1, r0 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _080BB09C + ldr r0, _080BB0D0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BB0D4 @ =sub_80BB0D8 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BB0C8: .4byte gUnknown_20399B4 +_080BB0CC: .4byte gBattleAnimArgs +_080BB0D0: .4byte gTasks +_080BB0D4: .4byte sub_80BB0D8 + thumb_func_end sub_80BB088 + + thumb_func_start sub_80BB0D8 +sub_80BB0D8: @ 80BB0D8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080BB0F0 @ =gUnknown_20399B4 + ldr r1, [r0] + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080BB0F8 + ldr r0, _080BB0F4 @ =gBattleAnimAttacker + b _080BB0FA + .align 2, 0 +_080BB0F0: .4byte gUnknown_20399B4 +_080BB0F4: .4byte gBattleAnimAttacker +_080BB0F8: + ldr r0, _080BB230 @ =gBattleAnimTarget +_080BB0FA: + ldrb r0, [r0] + strb r0, [r1] + ldr r4, _080BB234 @ =gUnknown_20399B4 + ldr r2, [r4] + ldrb r0, [r2] + movs r1, 0x2 + eors r0, r1 + strb r0, [r2, 0x1] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BB12A + ldr r1, [r4] + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080BB130 + ldrb r0, [r1, 0x1] + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + bne _080BB130 +_080BB12A: + ldr r1, [r4] + movs r0, 0 + strh r0, [r1, 0xA] +_080BB130: + ldr r0, _080BB238 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080BB23C @ =gUnknown_2022986 + strh r1, [r0] + ldr r1, _080BB240 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080BB244 @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + movs r1, 0x80 + lsls r1, 8 + movs r0, 0 + bl SetGpuRegBits + ldr r1, _080BB248 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BB18E + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080BB18E: + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080BB20A + ldr r4, _080BB234 @ =gUnknown_20399B4 + ldr r1, [r4] + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080BB20A + ldrb r0, [r1] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080BB1C0 + ldr r0, [r4] + ldrb r0, [r0] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + bne _080BB20A +_080BB1C0: + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8072DF0 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _080BB20A + ldr r3, _080BB24C @ =gSprites + ldr r1, _080BB250 @ =gBattlerSpriteIds + ldr r0, [r4] + ldrb r0, [r0, 0x1] + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + ldr r0, [r4] + strb r5, [r0, 0x2] +_080BB20A: + ldr r4, _080BB234 @ =gUnknown_20399B4 + ldr r0, [r4] + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BB25C + ldr r1, _080BB254 @ =gBattlerPartyIndexes + ldr r0, [r4] + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BB258 @ =gEnemyParty + b _080BB26E + .align 2, 0 +_080BB230: .4byte gBattleAnimTarget +_080BB234: .4byte gUnknown_20399B4 +_080BB238: .4byte gUnknown_2022984 +_080BB23C: .4byte gUnknown_2022986 +_080BB240: .4byte 0x00003f3f +_080BB244: .4byte 0x00003f3d +_080BB248: .4byte 0x00003f42 +_080BB24C: .4byte gSprites +_080BB250: .4byte gBattlerSpriteIds +_080BB254: .4byte gBattlerPartyIndexes +_080BB258: .4byte gEnemyParty +_080BB25C: + ldr r1, _080BB290 @ =gBattlerPartyIndexes + ldr r0, [r4] + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BB294 @ =gPlayerParty +_080BB26E: + adds r0, r1 + movs r1, 0xB + bl GetMonData + ldr r1, [r4] + strh r0, [r1, 0x14] + ldr r0, _080BB298 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BB29C @ =sub_80BB2A0 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB290: .4byte gBattlerPartyIndexes +_080BB294: .4byte gPlayerParty +_080BB298: .4byte gTasks +_080BB29C: .4byte sub_80BB2A0 + thumb_func_end sub_80BB0D8 + + thumb_func_start sub_80BB2A0 +sub_80BB2A0: @ 80BB2A0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + mov r8, r0 + ldr r6, _080BB300 @ =gBattlerSpriteIds + ldr r4, _080BB304 @ =gUnknown_20399B4 + ldr r2, [r4] + ldrb r0, [r2] + adds r1, r0, r6 + ldrb r1, [r1] + ldrh r2, [r2, 0x14] + bl sub_8076E34 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, [r4] + movs r1, 0xA + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080BB2E2 + ldrb r0, [r2, 0x1] + adds r1, r0, r6 + ldrb r1, [r1] + ldrh r2, [r2, 0x14] + bl sub_8076E34 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_080BB2E2: + mov r0, sp + bl sub_80752A0 + ldr r0, [r4] + movs r4, 0x4 + ldrsh r0, [r0, r4] + cmp r0, 0 + bne _080BB30C + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BB308 @ =gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap + bl sub_807543C + b _080BB316 + .align 2, 0 +_080BB300: .4byte gBattlerSpriteIds +_080BB304: .4byte gUnknown_20399B4 +_080BB308: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap +_080BB30C: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap + bl sub_807543C +_080BB316: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080BB32E + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080BB32E: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080BB358 @ =gFile_graphics_battle_anims_masks_stat_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080BB35C @ =gUnknown_20399B4 + ldr r0, [r0] + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0x6 + bhi _080BB3C4 + lsls r0, 2 + ldr r1, _080BB360 @ =_080BB364 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BB354: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap +_080BB358: .4byte gFile_graphics_battle_anims_masks_stat_sheet +_080BB35C: .4byte gUnknown_20399B4 +_080BB360: .4byte _080BB364 + .align 2, 0 +_080BB364: + .4byte _080BB380 + .4byte _080BB388 + .4byte _080BB390 + .4byte _080BB398 + .4byte _080BB3A0 + .4byte _080BB3A8 + .4byte _080BB3B0 +_080BB380: + ldr r0, _080BB384 @ =gFile_graphics_battle_anims_masks_stat2_palette + b _080BB3B2 + .align 2, 0 +_080BB384: .4byte gFile_graphics_battle_anims_masks_stat2_palette +_080BB388: + ldr r0, _080BB38C @ =gFile_graphics_battle_anims_masks_stat1_palette + b _080BB3B2 + .align 2, 0 +_080BB38C: .4byte gFile_graphics_battle_anims_masks_stat1_palette +_080BB390: + ldr r0, _080BB394 @ =gFile_graphics_battle_anims_masks_stat3_palette + b _080BB3B2 + .align 2, 0 +_080BB394: .4byte gFile_graphics_battle_anims_masks_stat3_palette +_080BB398: + ldr r0, _080BB39C @ =gFile_graphics_battle_anims_masks_stat4_palette + b _080BB3B2 + .align 2, 0 +_080BB39C: .4byte gFile_graphics_battle_anims_masks_stat4_palette +_080BB3A0: + ldr r0, _080BB3A4 @ =gFile_graphics_battle_anims_masks_stat6_palette + b _080BB3B2 + .align 2, 0 +_080BB3A4: .4byte gFile_graphics_battle_anims_masks_stat6_palette +_080BB3A8: + ldr r0, _080BB3AC @ =gFile_graphics_battle_anims_masks_stat7_palette + b _080BB3B2 + .align 2, 0 +_080BB3AC: .4byte gFile_graphics_battle_anims_masks_stat7_palette +_080BB3B0: + ldr r0, _080BB3C0 @ =gFile_graphics_battle_anims_masks_stat8_palette +_080BB3B2: + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080BB3D2 + .align 2, 0 +_080BB3C0: .4byte gFile_graphics_battle_anims_masks_stat8_palette +_080BB3C4: + ldr r0, _080BB3FC @ =gFile_graphics_battle_anims_masks_stat5_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette +_080BB3D2: + ldr r3, _080BB400 @ =gBattle_BG1_X + movs r2, 0 + strh r2, [r3] + ldr r0, _080BB404 @ =gBattle_BG1_Y + strh r2, [r0] + ldr r1, _080BB408 @ =gUnknown_20399B4 + ldr r0, [r1] + movs r4, 0x4 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0x1 + bne _080BB414 + movs r0, 0x40 + strh r0, [r3] + ldr r2, _080BB40C @ =gTasks + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + ldr r1, _080BB410 @ =0x0000fffd + b _080BB420 + .align 2, 0 +_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette +_080BB400: .4byte gBattle_BG1_X +_080BB404: .4byte gBattle_BG1_Y +_080BB408: .4byte gUnknown_20399B4 +_080BB40C: .4byte gTasks +_080BB410: .4byte 0x0000fffd +_080BB414: + ldr r2, _080BB43C @ =gTasks + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x3 +_080BB420: + strh r1, [r0, 0xA] + ldr r0, [r4] + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BB440 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0xA + strh r1, [r0, 0x10] + movs r1, 0x14 + b _080BB44C + .align 2, 0 +_080BB43C: .4byte gTasks +_080BB440: + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0xD + strh r1, [r0, 0x10] + movs r1, 0x1E +_080BB44C: + strh r1, [r0, 0x12] + adds r1, r3, r5 + lsls r1, 3 + adds r1, r2 + strh r7, [r1, 0x8] + ldr r3, [r4] + ldrh r0, [r3, 0xA] + strh r0, [r1, 0xC] + mov r4, r8 + strh r4, [r1, 0xE] + ldrb r0, [r3, 0x2] + strh r0, [r1, 0x14] + ldr r2, _080BB490 @ =gBattlerSpriteIds + ldrb r0, [r3, 0x1] + adds r0, r2 + ldrb r0, [r0] + strh r0, [r1, 0x16] + ldr r0, _080BB494 @ =sub_80BB4B8 + str r0, [r1] + movs r1, 0x4 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080BB498 + movs r0, 0x40 + negs r0, r0 + bl sub_8073B08 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xE8 + bl PlaySE12WithPanning + b _080BB4AC + .align 2, 0 +_080BB490: .4byte gBattlerSpriteIds +_080BB494: .4byte sub_80BB4B8 +_080BB498: + movs r0, 0x40 + negs r0, r0 + bl sub_8073B08 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xEE + bl PlaySE12WithPanning +_080BB4AC: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB2A0 + + thumb_func_start sub_80BB4B8 +sub_80BB4B8: @ 80BB4B8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080BB4E4 @ =gBattle_BG1_Y + ldr r1, _080BB4E8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0xA] + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + movs r0, 0x26 + ldrsh r2, [r5, r0] + cmp r2, 0x1 + beq _080BB52E + cmp r2, 0x1 + bgt _080BB4EC + cmp r2, 0 + beq _080BB4F6 + b _080BB644 + .align 2, 0 +_080BB4E4: .4byte gBattle_BG1_Y +_080BB4E8: .4byte gTasks +_080BB4EC: + cmp r2, 0x2 + beq _080BB544 + cmp r2, 0x3 + beq _080BB582 + b _080BB644 +_080BB4F6: + ldrh r0, [r5, 0x1E] + adds r1, r0, 0x1 + strh r1, [r5, 0x1E] + lsls r0, 16 + cmp r0, 0 + bgt _080BB504 + b _080BB644 +_080BB504: + strh r2, [r5, 0x1E] + ldrh r1, [r5, 0x20] + adds r1, 0x1 + strh r1, [r5, 0x20] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + beq _080BB52C + b _080BB644 +_080BB52C: + b _080BB57A +_080BB52E: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r5, r2] + cmp r0, r1 + beq _080BB542 + b _080BB644 +_080BB542: + b _080BB57A +_080BB544: + ldrh r0, [r5, 0x1E] + adds r1, r0, 0x1 + strh r1, [r5, 0x1E] + lsls r0, 16 + cmp r0, 0 + ble _080BB644 + movs r0, 0 + strh r0, [r5, 0x1E] + ldrh r1, [r5, 0x20] + subs r1, 0x1 + strh r1, [r5, 0x20] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x20 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080BB644 + movs r0, 0 + bl sub_8073128 +_080BB57A: + ldrh r0, [r5, 0x26] + adds r0, 0x1 + strh r0, [r5, 0x26] + b _080BB644 +_080BB582: + ldr r0, _080BB64C @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080BB650 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080BB654 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BB5B2 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080BB5B2: + movs r0, 0 + bl GetGpuReg + adds r1, r0, 0 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + eors r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080BB658 @ =gSprites + adds r0, r4 + bl DestroySprite + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080BB606 + movs r2, 0xE + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite +_080BB606: + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080BB632 + movs r2, 0x16 + ldrsh r0, [r5, r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080BB632: + ldr r4, _080BB65C @ =gUnknown_20399B4 + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080BB644: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB64C: .4byte gUnknown_2022984 +_080BB650: .4byte gUnknown_2022986 +_080BB654: .4byte 0x00003f3f +_080BB658: .4byte gSprites +_080BB65C: .4byte gUnknown_20399B4 + thumb_func_end sub_80BB4B8 + + thumb_func_start sub_80BB660 +sub_80BB660: @ 80BB660 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_8075CB8 + adds r6, r0, 0 + movs r1, 0 + bl sub_80BB790 + ldr r0, _080BB6C0 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + lsrs r0, r6, 16 + movs r5, 0 + strh r0, [r4, 0x24] + str r5, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + adds r6, r0, 0 + ldr r1, _080BB6C4 @ =0x0000ffff + ands r6, r1 + adds r0, r6, 0 + bl sub_80BB790 + strh r6, [r4, 0x26] + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + ldr r0, _080BB6C8 @ =sub_80BB6CC + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB6C0: .4byte gTasks +_080BB6C4: .4byte 0x0000ffff +_080BB6C8: .4byte sub_80BB6CC + thumb_func_end sub_80BB660 + + thumb_func_start sub_80BB6CC +sub_80BB6CC: @ 80BB6CC + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080BB6F0 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080BB710 + cmp r1, 0x1 + bgt _080BB6F4 + cmp r1, 0 + beq _080BB6FA + b _080BB78A + .align 2, 0 +_080BB6F0: .4byte gTasks +_080BB6F4: + cmp r1, 0x2 + beq _080BB784 + b _080BB78A +_080BB6FA: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080BB78A + strh r1, [r4, 0xA] + movs r0, 0x10 + strh r0, [r4, 0xC] + b _080BB778 +_080BB710: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080BB78A + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + movs r5, 0 + movs r6, 0x1 +_080BB72C: + movs r1, 0x26 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, 0 + beq _080BB746 + lsls r0, r5, 20 + lsrs r0, 16 + ldrb r2, [r4, 0xC] + movs r1, 0x10 + ldr r3, _080BB780 @ =0x0000ffff + bl BlendPalette +_080BB746: + movs r1, 0x24 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, 0 + beq _080BB766 + lsls r0, r5, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + ldrb r2, [r4, 0xC] + movs r1, 0x10 + movs r3, 0 + bl BlendPalette +_080BB766: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xF + bls _080BB72C + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BB78A +_080BB778: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080BB78A + .align 2, 0 +_080BB780: .4byte 0x0000ffff +_080BB784: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080BB78A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BB6CC + + thumb_func_start sub_80BB790 +sub_80BB790: @ 80BB790 + push {r4-r6,lr} + adds r3, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + movs r2, 0 +_080BB79A: + movs r0, 0x1 + ands r0, r3 + lsrs r4, r3, 1 + adds r5, r2, 0x1 + cmp r0, 0 + beq _080BB7C6 + lsls r0, r2, 20 + lsrs r2, r0, 16 + adds r0, r2, 0 + adds r0, 0x10 + cmp r2, r0 + bge _080BB7C6 + ldr r1, _080BB7D8 @ =gPlttBufferFaded + adds r3, r0, 0 +_080BB7B6: + lsls r0, r2, 1 + adds r0, r1 + strh r6, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + blt _080BB7B6 +_080BB7C6: + adds r3, r4, 0 + lsls r0, r5, 16 + lsrs r2, r0, 16 + cmp r2, 0x1F + bls _080BB79A + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB7D8: .4byte gPlttBufferFaded + thumb_func_end sub_80BB790 + + thumb_func_start sub_80BB7DC +sub_80BB7DC: @ 80BB7DC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + movs r2, 0 + ldr r0, _080BB824 @ =gBattleAnimAttacker + ldrb r3, [r0] + movs r5, 0x1 +_080BB7EC: + cmp r3, r2 + beq _080BB7FA + adds r1, r2, 0 + adds r1, 0x10 + adds r0, r5, 0 + lsls r0, r1 + orrs r4, r0 +_080BB7FA: + adds r2, 0x1 + cmp r2, 0x3 + bls _080BB7EC + movs r2, 0x5 + ldr r0, _080BB828 @ =gBattleAnimArgs + adds r1, r0, 0 + adds r1, 0x8 +_080BB808: + ldrh r0, [r1] + strh r0, [r1, 0x2] + subs r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080BB808 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80BAA4C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB824: .4byte gBattleAnimAttacker +_080BB828: .4byte gBattleAnimArgs + thumb_func_end sub_80BB7DC + + thumb_func_start sub_80BB82C +sub_80BB82C: @ 80BB82C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + bl sub_8075458 + ldr r0, _080BB894 @ =sub_80BB8A4 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080BB898 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080BB868 + ldr r0, _080BB89C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BB868 + ldrh r0, [r4] + negs r0, r0 + strh r0, [r4] + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] +_080BB868: + ldr r0, _080BB8A0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r2, _080BB898 @ =gBattleAnimArgs + ldrh r0, [r2] + strh r0, [r1, 0xA] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0xC] + ldrh r0, [r2, 0x6] + strh r0, [r1, 0xE] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + adds r0, r6, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB894: .4byte sub_80BB8A4 +_080BB898: .4byte gBattleAnimArgs +_080BB89C: .4byte gBattleAnimAttacker +_080BB8A0: .4byte gTasks + thumb_func_end sub_80BB82C + + thumb_func_start sub_80BB8A4 +sub_80BB8A4: @ 80BB8A4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080BB910 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r3, [r1, 0xA] + ldrh r0, [r1, 0x1C] + adds r3, r0 + movs r4, 0 + mov r12, r4 + strh r3, [r1, 0x1C] + ldrh r2, [r1, 0xC] + ldrh r7, [r1, 0x1E] + adds r2, r7 + strh r2, [r1, 0x1E] + ldr r6, _080BB914 @ =gBattle_BG3_X + lsls r0, r3, 16 + asrs r0, 24 + ldrh r4, [r6] + adds r0, r4 + strh r0, [r6] + ldr r4, _080BB918 @ =gBattle_BG3_Y + lsls r0, r2, 16 + asrs r0, 24 + ldrh r7, [r4] + adds r0, r7 + strh r0, [r4] + movs r0, 0xFF + ands r3, r0 + strh r3, [r1, 0x1C] + ands r2, r0 + strh r2, [r1, 0x1E] + ldr r0, _080BB91C @ =gBattleAnimArgs + movs r3, 0xE + ldrsh r2, [r0, r3] + movs r7, 0xE + ldrsh r0, [r1, r7] + cmp r2, r0 + bne _080BB90A + mov r0, r12 + strh r0, [r6] + strh r0, [r4] + movs r0, 0x1 + bl sub_8075458 + adds r0, r5, 0 + bl DestroyTask +_080BB90A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BB910: .4byte gTasks +_080BB914: .4byte gBattle_BG3_X +_080BB918: .4byte gBattle_BG3_Y +_080BB91C: .4byte gBattleAnimArgs + thumb_func_end sub_80BB8A4 + + thumb_func_start sub_80BB920 +sub_80BB920: @ 80BB920 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080BB944 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + ldr r1, _080BB948 @ =gBattleAnimArgs + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0xE] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB944: .4byte gBattleAnimAttacker +_080BB948: .4byte gBattleAnimArgs + thumb_func_end sub_80BB920 + + thumb_func_start sub_80BB94C +sub_80BB94C: @ 80BB94C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080BB970 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + ldr r1, _080BB974 @ =gBattleAnimArgs + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0xE] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB970: .4byte gBattleAnimTarget +_080BB974: .4byte gBattleAnimArgs + thumb_func_end sub_80BB94C + + thumb_func_start sub_80BB978 +sub_80BB978: @ 80BB978 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r5, _080BB9A4 @ =gBattleAnimArgs + movs r4, 0 + ldr r0, _080BB9A8 @ =gBattleAnimAttacker + ldrb r2, [r0] + movs r0, 0x2 + ldr r1, _080BB9AC @ =gBattleAnimTarget + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bne _080BB994 + movs r4, 0x1 +_080BB994: + strh r4, [r5, 0xE] + adds r0, r3, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BB9A4: .4byte gBattleAnimArgs +_080BB9A8: .4byte gBattleAnimAttacker +_080BB9AC: .4byte gBattleAnimTarget + thumb_func_end sub_80BB978 + + thumb_func_start sub_80BB9B0 +sub_80BB9B0: @ 80BB9B0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r6, _080BBA10 @ =gSprites +_080BB9BA: + ldr r0, _080BBA14 @ =gBattleAnimAttacker + ldrb r0, [r0] + cmp r4, r0 + beq _080BB9F8 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080BB9F8 + ldr r0, _080BBA18 @ =gBattlerSpriteIds + adds r0, r4, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldr r1, _080BBA1C @ =gBattleAnimArgs + adds r2, 0x3E + movs r0, 0x1 + ldrb r3, [r1] + ands r3, r0 + lsls r3, 2 + ldrb r0, [r2] + movs r7, 0x5 + negs r7, r7 + adds r1, r7, 0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_080BB9F8: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080BB9BA + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBA10: .4byte gSprites +_080BBA14: .4byte gBattleAnimAttacker +_080BBA18: .4byte gBattlerSpriteIds +_080BBA1C: .4byte gBattleAnimArgs + thumb_func_end sub_80BB9B0 + + thumb_func_start sub_80BBA20 +sub_80BBA20: @ 80BBA20 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r1, [sp, 0x44] + ldr r4, [sp, 0x48] + ldr r5, [sp, 0x4C] + ldr r6, [sp, 0x50] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x14] + lsls r3, 24 + lsrs r7, r3, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x18] + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x1C] + lsls r6, 24 + lsrs r6, 24 + mov r10, r6 + movs r0, 0 + str r0, [sp, 0x20] + movs r0, 0x2 + adds r6, r7, 0 + eors r6, r0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BBA82 + mov r1, r8 + cmp r1, 0 + beq _080BBA86 + adds r0, r6, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + bne _080BBA86 +_080BBA82: + movs r2, 0 + mov r8, r2 +_080BBA86: + ldr r0, _080BBB20 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080BBB24 @ =gUnknown_2022986 + strh r1, [r0] + ldr r1, _080BBB28 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080BBB2C @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + movs r1, 0x80 + lsls r1, 8 + movs r0, 0 + bl SetGpuRegBits + ldr r1, _080BBB30 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0xA + bl GetGpuReg + add r4, sp, 0x10 + strh r0, [r4] + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + mov r2, sp + adds r2, 0x11 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BBAFC + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080BBAFC: + ldrh r1, [r4] + movs r0, 0xA + bl SetGpuReg + adds r0, r7, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BBB3C + ldr r1, _080BBB34 @ =gBattlerPartyIndexes + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BBB38 @ =gEnemyParty + b _080BBB4A + .align 2, 0 +_080BBB20: .4byte gUnknown_2022984 +_080BBB24: .4byte gUnknown_2022986 +_080BBB28: .4byte 0x00003f3f +_080BBB2C: .4byte 0x00003f3d +_080BBB30: .4byte 0x00003f42 +_080BBB34: .4byte gBattlerPartyIndexes +_080BBB38: .4byte gEnemyParty +_080BBB3C: + ldr r1, _080BBC10 @ =gBattlerPartyIndexes + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BBC14 @ =gPlayerParty +_080BBB4A: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + ldr r5, _080BBC18 @ =gBattlerSpriteIds + adds r0, r7, r5 + ldrb r1, [r0] + adds r0, r7, 0 + adds r2, r4, 0 + bl sub_8076E34 + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, r8 + cmp r0, 0 + beq _080BBB80 + adds r0, r6, r5 + ldrb r1, [r0] + adds r0, r6, 0 + adds r2, r4, 0 + bl sub_8076E34 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x20] +_080BBB80: + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, [sp, 0x58] + bl sub_807543C + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080BBBA8 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080BBBA8: + mov r0, sp + ldrb r0, [r0, 0x9] + mov r1, sp + ldrh r2, [r1, 0xA] + ldr r1, [sp, 0x54] + bl sub_80753B4 + mov r0, sp + ldrb r1, [r0, 0x8] + lsls r1, 4 + ldr r0, [sp, 0x5C] + movs r2, 0x20 + bl LoadCompressedPalette + ldr r0, _080BBC1C @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080BBC20 @ =gBattle_BG1_Y + strh r1, [r0] + ldr r1, _080BBC24 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + mov r1, sp + ldrh r1, [r1, 0x14] + strh r1, [r0, 0xA] + mov r2, sp + ldrh r2, [r2, 0x18] + strh r2, [r0, 0x10] + mov r1, r10 + strh r1, [r0, 0x12] + mov r2, sp + ldrh r2, [r2, 0x1C] + strh r2, [r0, 0x14] + strh r7, [r0, 0x8] + mov r1, r8 + strh r1, [r0, 0xC] + mov r2, sp + ldrh r2, [r2, 0x20] + strh r2, [r0, 0xE] + ldr r1, _080BBC28 @ =sub_80BBC2C + str r1, [r0] + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBC10: .4byte gBattlerPartyIndexes +_080BBC14: .4byte gPlayerParty +_080BBC18: .4byte gBattlerSpriteIds +_080BBC1C: .4byte gBattle_BG1_X +_080BBC20: .4byte gBattle_BG1_Y +_080BBC24: .4byte gTasks +_080BBC28: .4byte sub_80BBC2C + thumb_func_end sub_80BBA20 + + thumb_func_start sub_80BBC2C +sub_80BBC2C: @ 80BBC2C + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080BBC68 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r1 + movs r0, 0xA + ldrsh r2, [r3, r0] + adds r5, r1, 0 + cmp r2, 0 + bge _080BBC4A + negs r2, r2 +_080BBC4A: + ldrh r0, [r3, 0x22] + adds r4, r0, r2 + strh r4, [r3, 0x22] + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0 + bge _080BBC70 + ldr r2, _080BBC6C @ =gBattle_BG1_Y + lsls r1, r4, 16 + asrs r1, 24 + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + b _080BBC7C + .align 2, 0 +_080BBC68: .4byte gTasks +_080BBC6C: .4byte gBattle_BG1_Y +_080BBC70: + ldr r1, _080BBCA0 @ =gBattle_BG1_Y + lsls r0, r4, 16 + asrs r0, 24 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] +_080BBC7C: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r5 + ldrh r1, [r5, 0x22] + movs r0, 0xFF + ands r0, r1 + movs r2, 0 + strh r0, [r5, 0x22] + movs r3, 0x26 + ldrsh r0, [r5, r3] + cmp r0, 0x1 + beq _080BBCE6 + cmp r0, 0x1 + bgt _080BBCA4 + cmp r0, 0 + beq _080BBCAA + b _080BBDD8 + .align 2, 0 +_080BBCA0: .4byte gBattle_BG1_Y +_080BBCA4: + cmp r0, 0x2 + beq _080BBD00 + b _080BBDD8 +_080BBCAA: + ldrh r0, [r5, 0x1E] + adds r1, r0, 0x1 + strh r1, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x14 + ldrsh r1, [r5, r3] + cmp r0, r1 + bge _080BBCBE + b _080BBDD8 +_080BBCBE: + strh r2, [r5, 0x1E] + ldrh r1, [r5, 0x20] + adds r1, 0x1 + strh r1, [r5, 0x20] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x20 + ldrsh r1, [r5, r0] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _080BBDD8 + b _080BBCF8 +_080BBCE6: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x12 + ldrsh r1, [r5, r3] + cmp r0, r1 + bne _080BBDD8 +_080BBCF8: + ldrh r0, [r5, 0x26] + adds r0, 0x1 + strh r0, [r5, 0x26] + b _080BBDD8 +_080BBD00: + ldrh r0, [r5, 0x1E] + adds r1, r0, 0x1 + strh r1, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x14 + ldrsh r1, [r5, r3] + cmp r0, r1 + blt _080BBDD8 + strh r2, [r5, 0x1E] + ldrh r1, [r5, 0x20] + subs r1, 0x1 + strh r1, [r5, 0x20] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x20 + ldrsh r4, [r5, r0] + cmp r4, 0 + bne _080BBDD8 + movs r0, 0 + bl sub_8073128 + ldr r0, _080BBDE0 @ =gUnknown_2022984 + strh r4, [r0] + ldr r0, _080BBDE4 @ =gUnknown_2022986 + strh r4, [r0] + ldr r4, _080BBDE8 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BBD7E + movs r0, 0xA + bl GetGpuReg + mov r1, sp + strh r0, [r1] + mov r2, sp + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] + mov r0, sp + ldrh r1, [r0] + movs r0, 0xA + bl SetGpuReg +_080BBD7E: + movs r0, 0 + bl GetGpuReg + adds r1, r0, 0 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + eors r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r3, 0x8 + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080BBDEC @ =gSprites + adds r0, r4 + bl DestroySprite + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080BBDD2 + movs r2, 0xE + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite +_080BBDD2: + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080BBDD8: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BBDE0: .4byte gUnknown_2022984 +_080BBDE4: .4byte gUnknown_2022986 +_080BBDE8: .4byte 0x00003f3f +_080BBDEC: .4byte gSprites + thumb_func_end sub_80BBC2C + + thumb_func_start sub_80BBDF0 +sub_80BBDF0: @ 80BBDF0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BBE08 @ =gBattleAnimArgs + ldr r1, _080BBE0C @ =gUnknown_2022B50 + ldrb r1, [r1] + strh r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080BBE08: .4byte gBattleAnimArgs +_080BBE0C: .4byte gUnknown_2022B50 + thumb_func_end sub_80BBDF0 + + thumb_func_start sub_80BBE10 +sub_80BBE10: @ 80BBE10 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x80 + lsls r0, 6 + bl AllocZeroed + ldr r1, _080BBE38 @ =gMonSpritesGfxPtr + ldr r1, [r1] + movs r2, 0xBE + lsls r2, 1 + adds r1, r2 + str r0, [r1] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBE38: .4byte gMonSpritesGfxPtr + thumb_func_end sub_80BBE10 + + thumb_func_start sub_80BBE3C +sub_80BBE3C: @ 80BBE3C + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r6, _080BBE68 @ =gMonSpritesGfxPtr + ldr r0, [r6] + movs r5, 0xBE + lsls r5, 1 + adds r0, r5 + ldr r0, [r0] + bl Free + ldr r0, [r6] + adds r0, r5 + movs r1, 0 + str r1, [r0] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BBE68: .4byte gMonSpritesGfxPtr + thumb_func_end sub_80BBE3C + + thumb_func_start sub_80BBE6C +sub_80BBE6C: @ 80BBE6C + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080BBEAC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BBEB0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BBEC8 + movs r2, 0x1 +_080BBE9E: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080BBE9E + b _080BBEC8 + .align 2, 0 +_080BBEAC: .4byte gBattleAnimArgs +_080BBEB0: + cmp r0, 0x1 + bne _080BBEBC + ldr r0, _080BBEB8 @ =gBattleAnimAttacker + b _080BBEC2 + .align 2, 0 +_080BBEB8: .4byte gBattleAnimAttacker +_080BBEBC: + cmp r0, 0x2 + bne _080BBEC8 + ldr r0, _080BBEF8 @ =gBattleAnimTarget +_080BBEC2: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080BBEC8: + ldr r0, _080BBEFC @ =gMonSpritesGfxPtr + ldr r1, [r0] + ldr r0, _080BBF00 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r0, [r0, r2] + movs r2, 0xBE + lsls r2, 1 + adds r1, r2 + ldr r1, [r1] + lsls r0, 5 + adds r0, r1 + lsls r1, r4, 5 + ldr r2, _080BBF04 @ =gPlttBufferUnfaded + adds r1, r2 + movs r2, 0x20 + bl memcpy + adds r0, r5, 0 + bl DestroyAnimVisualTask + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBEF8: .4byte gBattleAnimTarget +_080BBEFC: .4byte gMonSpritesGfxPtr +_080BBF00: .4byte gBattleAnimArgs +_080BBF04: .4byte gPlttBufferUnfaded + thumb_func_end sub_80BBE6C + + thumb_func_start sub_80BBF08 +sub_80BBF08: @ 80BBF08 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080BBF48 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BBF4C + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BBF64 + movs r2, 0x1 +_080BBF3A: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080BBF3A + b _080BBF64 + .align 2, 0 +_080BBF48: .4byte gBattleAnimArgs +_080BBF4C: + cmp r0, 0x1 + bne _080BBF58 + ldr r0, _080BBF54 @ =gBattleAnimAttacker + b _080BBF5E + .align 2, 0 +_080BBF54: .4byte gBattleAnimAttacker +_080BBF58: + cmp r0, 0x2 + bne _080BBF64 + ldr r0, _080BBF94 @ =gBattleAnimTarget +_080BBF5E: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080BBF64: + lsls r0, r4, 5 + ldr r1, _080BBF98 @ =gPlttBufferUnfaded + adds r0, r1 + ldr r1, _080BBF9C @ =gMonSpritesGfxPtr + ldr r2, [r1] + ldr r1, _080BBFA0 @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r1, [r1, r3] + movs r3, 0xBE + lsls r3, 1 + adds r2, r3 + ldr r2, [r2] + lsls r1, 5 + adds r1, r2 + movs r2, 0x20 + bl memcpy + adds r0, r5, 0 + bl DestroyAnimVisualTask + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBF94: .4byte gBattleAnimTarget +_080BBF98: .4byte gPlttBufferUnfaded +_080BBF9C: .4byte gMonSpritesGfxPtr +_080BBFA0: .4byte gBattleAnimArgs + thumb_func_end sub_80BBF08 + + thumb_func_start sub_80BBFA4 +sub_80BBFA4: @ 80BBFA4 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080BBFE4 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BBFE8 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8075BE8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BC000 + movs r2, 0x1 +_080BBFD6: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080BBFD6 + b _080BC000 + .align 2, 0 +_080BBFE4: .4byte gBattleAnimArgs +_080BBFE8: + cmp r0, 0x1 + bne _080BBFF4 + ldr r0, _080BBFF0 @ =gBattleAnimAttacker + b _080BBFFA + .align 2, 0 +_080BBFF0: .4byte gBattleAnimAttacker +_080BBFF4: + cmp r0, 0x2 + bne _080BC000 + ldr r0, _080BC020 @ =gBattleAnimTarget +_080BBFFA: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080BC000: + lsls r1, r4, 5 + ldr r0, _080BC024 @ =gPlttBufferUnfaded + adds r0, r1, r0 + ldr r2, _080BC028 @ =gPlttBufferFaded + adds r1, r2 + movs r2, 0x20 + bl memcpy + adds r0, r5, 0 + bl DestroyAnimVisualTask + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC020: .4byte gBattleAnimTarget +_080BC024: .4byte gPlttBufferUnfaded +_080BC028: .4byte gPlttBufferFaded + thumb_func_end sub_80BBFA4 + + thumb_func_start sub_80BC02C +sub_80BC02C: @ 80BC02C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8073788 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080BC04C + ldr r1, _080BC048 @ =gBattleAnimArgs + movs r0, 0x1 + strh r0, [r1, 0xE] + b _080BC050 + .align 2, 0 +_080BC048: .4byte gBattleAnimArgs +_080BC04C: + ldr r0, _080BC05C @ =gBattleAnimArgs + strh r1, [r0, 0xE] +_080BC050: + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC05C: .4byte gBattleAnimArgs + thumb_func_end sub_80BC02C + + thumb_func_start sub_80BC060 +sub_80BC060: @ 80BC060 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BC080 @ =gBattleAnimAttacker + ldr r1, _080BC084 @ =gBattlerTarget + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _080BC088 @ =gBattleAnimTarget + ldr r1, _080BC08C @ =gUnknown_2023D6E + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080BC080: .4byte gBattleAnimAttacker +_080BC084: .4byte gBattlerTarget +_080BC088: .4byte gBattleAnimTarget +_080BC08C: .4byte gUnknown_2023D6E + thumb_func_end sub_80BC060 + + thumb_func_start sub_80BC090 +sub_80BC090: @ 80BC090 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080BC0B8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, 0 + ldr r0, _080BC0BC @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080BC0C4 + ldr r1, _080BC0C0 @ =gBattleAnimArgs + movs r0, 0x1 + b _080BC0C8 + .align 2, 0 +_080BC0B8: .4byte gBattleAnimAttacker +_080BC0BC: .4byte gBattleAnimTarget +_080BC0C0: .4byte gBattleAnimArgs +_080BC0C4: + ldr r1, _080BC0D8 @ =gBattleAnimArgs + movs r0, 0 +_080BC0C8: + strh r0, [r1, 0xE] + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC0D8: .4byte gBattleAnimArgs + thumb_func_end sub_80BC090 + + thumb_func_start sub_80BC0DC +sub_80BC0DC: @ 80BC0DC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BC0F4 @ =gBattleAnimTarget + ldr r1, _080BC0F8 @ =gBattlerTarget + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080BC0F4: .4byte gBattleAnimTarget +_080BC0F8: .4byte gBattlerTarget + thumb_func_end sub_80BC0DC + + thumb_func_start sub_80BC0FC +sub_80BC0FC: @ 80BC0FC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BC11C @ =gBattleAnimAttacker + ldr r1, _080BC120 @ =sBattler_AI + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _080BC124 @ =gBattleAnimTarget + ldr r1, _080BC128 @ =gUnknown_2023D6E + ldrb r1, [r1] + strb r1, [r2] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080BC11C: .4byte gBattleAnimAttacker +_080BC120: .4byte sBattler_AI +_080BC124: .4byte gBattleAnimTarget +_080BC128: .4byte gUnknown_2023D6E + thumb_func_end sub_80BC0FC + + thumb_func_start sub_80BC12C +sub_80BC12C: @ 80BC12C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080BC144 + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080BC180 +_080BC144: + ldr r0, _080BC188 @ =gTasks + lsls r3, r4, 2 + adds r3, r4 + lsls r3, 3 + adds r3, r0 + ldr r0, _080BC18C @ =gUnknown_2024018 + ldr r4, [r0] + ldr r2, _080BC190 @ =gBattleAnimAttacker + ldrb r0, [r2] + ldr r1, [r4] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + lsls r0, 31 + lsrs r0, 31 + strh r0, [r3, 0x8] + ldrb r1, [r2] + ldr r0, [r4] + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + ldr r0, _080BC194 @ =sub_80BC19C + str r0, [r3] + ldr r1, _080BC198 @ =gUnknown_2037EE2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080BC180: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC188: .4byte gTasks +_080BC18C: .4byte gUnknown_2024018 +_080BC190: .4byte gBattleAnimAttacker +_080BC194: .4byte sub_80BC19C +_080BC198: .4byte gUnknown_2037EE2 + thumb_func_end sub_80BC12C + + thumb_func_start sub_80BC19C +sub_80BC19C: @ 80BC19C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BC1E8 @ =gBattleAnimArgs + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bne _080BC1E0 + ldr r0, _080BC1EC @ =gUnknown_2024018 + ldr r1, [r0] + ldr r0, _080BC1F0 @ =gBattleAnimAttacker + ldrb r3, [r0] + ldr r0, [r1] + lsls r3, 2 + adds r3, r0 + ldr r1, _080BC1F4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r1, 0x1 + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0 + bl DestroyTask +_080BC1E0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC1E8: .4byte gBattleAnimArgs +_080BC1EC: .4byte gUnknown_2024018 +_080BC1F0: .4byte gBattleAnimAttacker +_080BC1F4: .4byte gTasks + thumb_func_end sub_80BC19C + + thumb_func_start SetAnimBgAttribute +SetAnimBgAttribute: @ 80BC1F8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + cmp r6, 0x3 + bls _080BC20C + b _080BC2FE +_080BC20C: + ldr r0, _080BC228 @ =gUnknown_83E7CCA + adds r0, r6, r0 + ldrb r0, [r0] + bl GetGpuReg + ldr r1, _080BC22C @ =gUnknown_20399B8 + strh r0, [r1] + cmp r5, 0x6 + bhi _080BC2F0 + lsls r0, r5, 2 + ldr r1, _080BC230 @ =_080BC234 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BC228: .4byte gUnknown_83E7CCA +_080BC22C: .4byte gUnknown_20399B8 +_080BC230: .4byte _080BC234 + .align 2, 0 +_080BC234: + .4byte _080BC250 + .4byte _080BC264 + .4byte _080BC27C + .4byte _080BC294 + .4byte _080BC2AC + .4byte _080BC2C8 + .4byte _080BC2DC +_080BC250: + ldr r2, _080BC260 @ =gUnknown_20399B8 + lsls r3, r4, 6 + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x1] + b _080BC2F0 + .align 2, 0 +_080BC260: .4byte gUnknown_20399B8 +_080BC264: + ldr r3, _080BC278 @ =gUnknown_20399B8 + movs r0, 0x1 + adds r1, r4, 0 + ands r1, r0 + lsls r1, 5 + ldrb r2, [r3, 0x1] + movs r0, 0x21 + negs r0, r0 + b _080BC2EA + .align 2, 0 +_080BC278: .4byte gUnknown_20399B8 +_080BC27C: + ldr r3, _080BC290 @ =gUnknown_20399B8 + movs r0, 0x1 + adds r1, r4, 0 + ands r1, r0 + lsls r1, 6 + ldrb r2, [r3] + movs r0, 0x41 + negs r0, r0 + b _080BC2BA + .align 2, 0 +_080BC290: .4byte gUnknown_20399B8 +_080BC294: + ldr r3, _080BC2A8 @ =gUnknown_20399B8 + movs r0, 0x3 + adds r1, r4, 0 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0xD + negs r0, r0 + b _080BC2BA + .align 2, 0 +_080BC2A8: .4byte gUnknown_20399B8 +_080BC2AC: + ldr r3, _080BC2C4 @ =gUnknown_20399B8 + movs r0, 0x3 + adds r1, r4, 0 + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x4 + negs r0, r0 +_080BC2BA: + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080BC2F0 + .align 2, 0 +_080BC2C4: .4byte gUnknown_20399B8 +_080BC2C8: + ldr r2, _080BC2D8 @ =gUnknown_20399B8 + lsls r3, r4, 7 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + b _080BC2F0 + .align 2, 0 +_080BC2D8: .4byte gUnknown_20399B8 +_080BC2DC: + ldr r3, _080BC304 @ =gUnknown_20399B8 + movs r0, 0x1F + adds r1, r4, 0 + ands r1, r0 + ldrb r2, [r3, 0x1] + movs r0, 0x20 + negs r0, r0 +_080BC2EA: + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x1] +_080BC2F0: + ldr r0, _080BC308 @ =gUnknown_83E7CCA + adds r0, r6, r0 + ldrb r0, [r0] + ldr r1, _080BC304 @ =gUnknown_20399B8 + ldrh r1, [r1] + bl SetGpuReg +_080BC2FE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BC304: .4byte gUnknown_20399B8 +_080BC308: .4byte gUnknown_83E7CCA + thumb_func_end SetAnimBgAttribute + + thumb_func_start sub_80BC30C +sub_80BC30C: @ 80BC30C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r2, 0x3 + bhi _080BC394 + ldr r0, _080BC338 @ =gUnknown_83E7CCE + adds r0, r2, r0 + ldrb r0, [r0] + bl GetGpuReg + mov r1, sp + strh r0, [r1] + cmp r4, 0x6 + bhi _080BC394 + lsls r0, r4, 2 + ldr r1, _080BC33C @ =_080BC340 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BC338: .4byte gUnknown_83E7CCE +_080BC33C: .4byte _080BC340 + .align 2, 0 +_080BC340: + .4byte _080BC35C + .4byte _080BC364 + .4byte _080BC36C + .4byte _080BC374 + .4byte _080BC37C + .4byte _080BC384 + .4byte _080BC38C +_080BC35C: + ldr r0, [sp] + lsls r0, 16 + lsrs r0, 30 + b _080BC396 +_080BC364: + ldr r0, [sp] + lsls r0, 18 + lsrs r0, 31 + b _080BC396 +_080BC36C: + ldr r0, [sp] + lsls r0, 25 + lsrs r0, 31 + b _080BC396 +_080BC374: + ldr r0, [sp] + lsls r0, 28 + lsrs r0, 30 + b _080BC396 +_080BC37C: + ldr r0, [sp] + lsls r0, 30 + lsrs r0, 30 + b _080BC396 +_080BC384: + ldr r0, [sp] + lsls r0, 24 + lsrs r0, 31 + b _080BC396 +_080BC38C: + ldr r0, [sp] + lsls r0, 19 + lsrs r0, 27 + b _080BC396 +_080BC394: + movs r0, 0 +_080BC396: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BC30C + + thumb_func_start sub_80BC3A0 +sub_80BC3A0: @ 80BC3A0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BC3B8 @ =gBattleTypeFlags + ldr r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BC3C0 + ldr r0, _080BC3BC @ =sub_80BCC4C + b _080BC3E8 + .align 2, 0 +_080BC3B8: .4byte gBattleTypeFlags +_080BC3BC: .4byte sub_80BCC4C +_080BC3C0: + movs r0, 0x80 + lsls r0, 5 + ands r1, r0 + cmp r1, 0 + beq _080BC3E0 + ldr r0, _080BC3D8 @ =gGameVersion + ldrb r0, [r0] + cmp r0, 0x2 + beq _080BC3E0 + movs r4, 0x3 + ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8 + b _080BC3E8 + .align 2, 0 +_080BC3D8: .4byte gGameVersion +_080BC3DC: .4byte task00_battle_intro_80BC6C8 +_080BC3E0: + ldr r1, _080BC414 @ =gUnknown_83E7CD4 + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] +_080BC3E8: + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080BC418 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + movs r0, 0 + strh r0, [r1, 0x8] + strh r4, [r1, 0xA] + strh r0, [r1, 0xC] + strh r0, [r1, 0xE] + strh r0, [r1, 0x10] + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC414: .4byte gUnknown_83E7CD4 +_080BC418: .4byte gTasks + thumb_func_end sub_80BC3A0 + + thumb_func_start sub_80BC41C +sub_80BC41C: @ 80BC41C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r0, _080BC468 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080BC46C @ =gBattle_BG1_Y + strh r1, [r0] + ldr r0, _080BC470 @ =gBattle_BG2_X + strh r1, [r0] + ldr r0, _080BC474 @ =gBattle_BG2_Y + strh r1, [r0] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + ldr r4, _080BC478 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC468: .4byte gBattle_BG1_X +_080BC46C: .4byte gBattle_BG1_Y +_080BC470: .4byte gBattle_BG2_X +_080BC474: .4byte gBattle_BG2_Y +_080BC478: .4byte 0x00003f3f + thumb_func_end sub_80BC41C + + thumb_func_start task_battle_intro_80BC47C +task_battle_intro_80BC47C: @ 80BC47C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080BC4B4 @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x6 + strh r0, [r1] + ldr r1, _080BC4B8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + mov r8, r1 + cmp r0, 0x4 + bls _080BC4A8 + b _080BC6BA +_080BC4A8: + lsls r0, 2 + ldr r1, _080BC4BC @ =_080BC4C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BC4B4: .4byte gBattle_BG1_X +_080BC4B8: .4byte gTasks +_080BC4BC: .4byte _080BC4C0 + .align 2, 0 +_080BC4C0: + .4byte _080BC4D4 + .4byte _080BC504 + .4byte _080BC52C + .4byte _080BC574 + .4byte _080BC6B4 +_080BC4D4: + ldr r0, _080BC4EC @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BC4F0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + movs r1, 0x10 + b _080BC4FA + .align 2, 0 +_080BC4EC: .4byte gBattleTypeFlags +_080BC4F0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + movs r1, 0x1 +_080BC4FA: + strh r1, [r0, 0xC] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080BC6BA +_080BC504: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + mov r3, r8 + adds r1, r0, r3 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080BC51C + b _080BC6BA +_080BC51C: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + b _080BC6BA +_080BC52C: + ldr r1, _080BC568 @ =gUnknown_2022986 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080BC544 + b _080BC6BA +_080BC544: + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + add r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + ldr r2, _080BC56C @ =gUnknown_2023F4C + ldrh r1, [r2] + ldr r0, _080BC570 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080BC6BA + .align 2, 0 +_080BC568: .4byte gUnknown_2022986 +_080BC56C: .4byte gUnknown_2023F4C +_080BC570: .4byte 0x0000fffe +_080BC574: + lsls r0, r4, 2 + adds r1, r0, r4 + lsls r1, 3 + mov r5, r8 + adds r2, r1, r5 + ldrh r3, [r2, 0xE] + movs r5, 0xE + ldrsh r1, [r2, r5] + mov r12, r0 + cmp r1, 0 + beq _080BC590 + subs r0, r3, 0x1 + strh r0, [r2, 0xE] + b _080BC5BE +_080BC590: + movs r1, 0xA + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080BC5B0 + ldr r2, _080BC5A8 @ =gBattle_BG1_Y + ldrh r1, [r2] + ldr r0, _080BC5AC @ =0x0000ffb0 + cmp r1, r0 + beq _080BC5BE + subs r0, r1, 0x2 + b _080BC5BC + .align 2, 0 +_080BC5A8: .4byte gBattle_BG1_Y +_080BC5AC: .4byte 0x0000ffb0 +_080BC5B0: + ldr r2, _080BC690 @ =gBattle_BG1_Y + ldrh r1, [r2] + ldr r0, _080BC694 @ =0x0000ffc8 + cmp r1, r0 + beq _080BC5BE + subs r0, r1, 0x1 +_080BC5BC: + strh r0, [r2] +_080BC5BE: + ldr r2, _080BC698 @ =gUnknown_2022986 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080BC5D2 + ldr r3, _080BC69C @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080BC5D2: + mov r5, r12 + adds r0, r5, r4 + lsls r0, 3 + mov r2, r8 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BC5EA + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080BC5EA: + movs r3, 0 + ldr r5, _080BC6A0 @ =gScanlineEffect + mov r9, r5 + ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers + mov r6, r9 + adds r5, r1, 0 +_080BC5F6: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080BC5F6 + cmp r3, 0x9F + bgt _080BC63A + ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers + ldr r6, _080BC6A0 @ =gScanlineEffect + ldr r1, _080BC6A8 @ =gTasks + mov r2, r12 + adds r0, r2, r4 + lsls r0, 3 + adds r5, r0, r1 +_080BC620: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080BC620 +_080BC63A: + mov r3, r12 + adds r0, r3, r4 + lsls r0, 3 + mov r5, r8 + adds r1, r0, r5 + movs r0, 0xC + ldrsh r2, [r1, r0] + cmp r2, 0 + bne _080BC6BA + movs r0, 0x3 + mov r3, r9 + strb r0, [r3, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080BC6AC @ =0x0600e000 + ldr r2, _080BC6B0 @ =0x05000200 + mov r0, sp + bl CpuSet + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r1, 0x9C + lsls r1, 8 + movs r0, 0xA + bl SetGpuReg + movs r1, 0xBC + lsls r1, 7 + movs r0, 0xC + bl SetGpuReg + b _080BC6BA + .align 2, 0 +_080BC690: .4byte gBattle_BG1_Y +_080BC694: .4byte 0x0000ffc8 +_080BC698: .4byte gUnknown_2022986 +_080BC69C: .4byte 0xfffffc04 +_080BC6A0: .4byte gScanlineEffect +_080BC6A4: .4byte gScanlineEffectRegBuffers +_080BC6A8: .4byte gTasks +_080BC6AC: .4byte 0x0600e000 +_080BC6B0: .4byte 0x05000200 +_080BC6B4: + adds r0, r4, 0 + bl sub_80BC41C +_080BC6BA: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end task_battle_intro_80BC47C + + thumb_func_start task00_battle_intro_80BC6C8 +task00_battle_intro_80BC6C8: @ 80BC6C8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080BC6F4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0xA + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x3 + beq _080BC708 + cmp r0, 0x3 + bgt _080BC6F8 + cmp r0, 0x2 + beq _080BC6FC + b _080BC710 + .align 2, 0 +_080BC6F4: .4byte gTasks +_080BC6F8: + cmp r0, 0x4 + bne _080BC710 +_080BC6FC: + ldr r1, _080BC704 @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x8 + b _080BC70E + .align 2, 0 +_080BC704: .4byte gBattle_BG1_X +_080BC708: + ldr r1, _080BC74C @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x6 +_080BC70E: + strh r0, [r1] +_080BC710: + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + adds r4, r1, r2 + movs r3, 0xA + ldrsh r1, [r4, r3] + adds r6, r0, 0 + cmp r1, 0x4 + bne _080BC774 + ldr r7, _080BC750 @ =gBattle_BG1_Y + ldrh r0, [r4, 0x14] + bl Cos2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080BC736 + ldr r1, _080BC754 @ =0x000001ff + adds r0, r1 +_080BC736: + asrs r0, 9 + subs r0, 0x8 + strh r0, [r7] + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0xB3 + bgt _080BC758 + adds r0, r1, 0x4 + b _080BC75A + .align 2, 0 +_080BC74C: .4byte gBattle_BG1_X +_080BC750: .4byte gBattle_BG1_Y +_080BC754: .4byte 0x000001ff +_080BC758: + adds r0, r1, 0x6 +_080BC75A: + strh r0, [r4, 0x14] + ldr r2, _080BC790 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r3, r0, r2 + movs r0, 0x14 + ldrsh r1, [r3, r0] + movs r0, 0xB4 + lsls r0, 1 + cmp r1, r0 + bne _080BC774 + movs r0, 0 + strh r0, [r3, 0x14] +_080BC774: + adds r0, r6, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x4 + bls _080BC784 + b _080BC9AA +_080BC784: + lsls r0, 2 + ldr r1, _080BC794 @ =_080BC798 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BC790: .4byte gTasks +_080BC794: .4byte _080BC798 + .align 2, 0 +_080BC798: + .4byte _080BC7AC + .4byte _080BC7DC + .4byte _080BC808 + .4byte _080BC858 + .4byte _080BC9A4 +_080BC7AC: + ldr r1, _080BC7C8 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x10 + strh r3, [r2, 0x10] + ldr r0, _080BC7CC @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BC7D0 + strh r3, [r2, 0xC] + b _080BC7D4 + .align 2, 0 +_080BC7C8: .4byte gTasks +_080BC7CC: .4byte gBattleTypeFlags +_080BC7D0: + movs r0, 0x1 + strh r0, [r2, 0xC] +_080BC7D4: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080BC9AA +_080BC7DC: + ldr r0, _080BC804 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080BC7F2 + b _080BC9AA +_080BC7F2: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + b _080BC9AA + .align 2, 0 +_080BC804: .4byte gTasks +_080BC808: + ldr r1, _080BC848 @ =gUnknown_2022986 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080BC820 + b _080BC9AA +_080BC820: + ldr r0, _080BC84C @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x12] + ldr r2, _080BC850 @ =gUnknown_2023F4C + ldrh r1, [r2] + ldr r0, _080BC854 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080BC9AA + .align 2, 0 +_080BC848: .4byte gUnknown_2022986 +_080BC84C: .4byte gTasks +_080BC850: .4byte gUnknown_2023F4C +_080BC854: .4byte 0x0000fffe +_080BC858: + ldr r0, _080BC890 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xE] + movs r3, 0xE + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BC898 + subs r0, r2, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080BC8B8 + ldr r1, _080BC894 @ =0x00001842 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0xF + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + b _080BC8B8 + .align 2, 0 +_080BC890: .4byte gTasks +_080BC894: .4byte 0x00001842 +_080BC898: + ldrh r2, [r1, 0x10] + movs r0, 0x1F + ands r0, r2 + cmp r0, 0 + beq _080BC8B8 + ldrh r0, [r1, 0x12] + subs r0, 0x1 + strh r0, [r1, 0x12] + lsls r0, 16 + cmp r0, 0 + bne _080BC8B8 + adds r0, r2, 0 + adds r0, 0xFF + strh r0, [r1, 0x10] + movs r0, 0x4 + strh r0, [r1, 0x12] +_080BC8B8: + ldr r2, _080BC988 @ =gUnknown_2022986 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080BC8CC + ldr r3, _080BC98C @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080BC8CC: + ldr r0, _080BC990 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BC8E2 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080BC8E2: + movs r3, 0 + ldr r0, _080BC994 @ =gScanlineEffect + mov r8, r0 + ldr r2, _080BC998 @ =gScanlineEffectRegBuffers + mov r12, r2 + mov r7, r8 + adds r4, r1, 0 +_080BC8F0: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080BC8F0 + cmp r3, 0x9F + bgt _080BC934 + ldr r0, _080BC998 @ =gScanlineEffectRegBuffers + mov r12, r0 + ldr r7, _080BC994 @ =gScanlineEffect + ldr r1, _080BC990 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r4, r0, r1 +_080BC91A: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080BC91A +_080BC934: + ldr r1, _080BC990 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0xC + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080BC9AA + movs r0, 0x3 + mov r3, r8 + strb r0, [r3, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080BC99C @ =0x0600e000 + ldr r2, _080BC9A0 @ =0x05000200 + mov r0, sp + bl CpuSet + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r1, 0x9C + lsls r1, 8 + movs r0, 0xA + bl SetGpuReg + movs r1, 0xBC + lsls r1, 7 + movs r0, 0xC + bl SetGpuReg + b _080BC9AA + .align 2, 0 +_080BC988: .4byte gUnknown_2022986 +_080BC98C: .4byte 0xfffffc04 +_080BC990: .4byte gTasks +_080BC994: .4byte gScanlineEffect +_080BC998: .4byte gScanlineEffectRegBuffers +_080BC99C: .4byte 0x0600e000 +_080BC9A0: .4byte 0x05000200 +_080BC9A4: + adds r0, r5, 0 + bl sub_80BC41C +_080BC9AA: + ldr r0, _080BC9D0 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + beq _080BC9C2 + ldrh r1, [r1, 0x10] + movs r0, 0x52 + bl SetGpuReg +_080BC9C2: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BC9D0: .4byte gTasks + thumb_func_end task00_battle_intro_80BC6C8 + + thumb_func_start task_battle_intro_anim +task_battle_intro_anim: @ 80BC9D4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080BCA08 @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x8 + strh r0, [r1] + ldr r1, _080BCA0C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x4 + bls _080BC9FE + b _080BCC22 +_080BC9FE: + lsls r0, 2 + ldr r1, _080BCA10 @ =_080BCA14 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BCA08: .4byte gBattle_BG1_X +_080BCA0C: .4byte gTasks +_080BCA10: .4byte _080BCA14 + .align 2, 0 +_080BCA14: + .4byte _080BCA28 + .4byte _080BCA7C + .4byte _080BCAA8 + .4byte _080BCAF8 + .4byte _080BCC1C +_080BCA28: + ldr r1, _080BCA60 @ =0x00001842 + movs r0, 0x50 + bl SetGpuReg + ldr r4, _080BCA64 @ =0x00000808 + movs r0, 0x52 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + ldr r1, _080BCA68 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + strh r4, [r2, 0x10] + ldr r0, _080BCA6C @ =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BCA70 + movs r0, 0x10 + b _080BCA72 + .align 2, 0 +_080BCA60: .4byte 0x00001842 +_080BCA64: .4byte 0x00000808 +_080BCA68: .4byte gTasks +_080BCA6C: .4byte gBattleTypeFlags +_080BCA70: + movs r0, 0x1 +_080BCA72: + strh r0, [r2, 0xC] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080BCC22 +_080BCA7C: + ldr r0, _080BCAA4 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080BCA94 + b _080BCC22 +_080BCA94: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + b _080BCC22 + .align 2, 0 +_080BCAA4: .4byte gTasks +_080BCAA8: + ldr r1, _080BCAE8 @ =gUnknown_2022986 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080BCAC0 + b _080BCC22 +_080BCAC0: + ldr r0, _080BCAEC @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x12] + ldr r2, _080BCAF0 @ =gUnknown_2023F4C + ldrh r1, [r2] + ldr r0, _080BCAF4 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080BCC22 + .align 2, 0 +_080BCAE8: .4byte gUnknown_2022986 +_080BCAEC: .4byte gTasks +_080BCAF0: .4byte gUnknown_2023F4C +_080BCAF4: .4byte 0x0000fffe +_080BCAF8: + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + adds r2, r1, r4 + ldrh r3, [r2, 0xE] + movs r6, 0xE + ldrsh r1, [r2, r6] + mov r12, r0 + cmp r1, 0 + beq _080BCB12 + subs r0, r3, 0x1 + strh r0, [r2, 0xE] + b _080BCB32 +_080BCB12: + ldrh r1, [r2, 0x10] + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + beq _080BCB32 + ldrh r0, [r2, 0x12] + subs r0, 0x1 + strh r0, [r2, 0x12] + lsls r0, 16 + cmp r0, 0 + bne _080BCB32 + adds r0, r1, 0 + adds r0, 0xFF + strh r0, [r2, 0x10] + movs r0, 0x6 + strh r0, [r2, 0x12] +_080BCB32: + ldr r2, _080BCC00 @ =gUnknown_2022986 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080BCB46 + ldr r3, _080BCC04 @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080BCB46: + mov r6, r12 + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r4 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BCB5C + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080BCB5C: + movs r3, 0 + ldr r6, _080BCC08 @ =gScanlineEffect + mov r8, r6 + ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers + adds r4, r1, 0 +_080BCB66: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080BCB66 + cmp r3, 0x9F + bgt _080BCBAA + ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers + ldr r6, _080BCC08 @ =gScanlineEffect + ldr r1, _080BCC10 @ =gTasks + mov r2, r12 + adds r0, r2, r5 + lsls r0, 3 + adds r4, r0, r1 +_080BCB90: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080BCB90 +_080BCBAA: + ldr r1, _080BCC10 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0xC + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080BCC22 + movs r0, 0x3 + mov r6, r8 + strb r0, [r6, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080BCC14 @ =0x0600e000 + ldr r2, _080BCC18 @ =0x05000200 + mov r0, sp + bl CpuSet + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r1, 0x9C + lsls r1, 8 + movs r0, 0xA + bl SetGpuReg + movs r1, 0xBC + lsls r1, 7 + movs r0, 0xC + bl SetGpuReg + b _080BCC22 + .align 2, 0 +_080BCC00: .4byte gUnknown_2022986 +_080BCC04: .4byte 0xfffffc04 +_080BCC08: .4byte gScanlineEffect +_080BCC0C: .4byte gScanlineEffectRegBuffers +_080BCC10: .4byte gTasks +_080BCC14: .4byte 0x0600e000 +_080BCC18: .4byte 0x05000200 +_080BCC1C: + adds r0, r5, 0 + bl sub_80BC41C +_080BCC22: + ldr r0, _080BCC48 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + beq _080BCC3C + ldrh r1, [r1, 0x10] + movs r0, 0x52 + bl SetGpuReg +_080BCC3C: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCC48: .4byte gTasks + thumb_func_end task_battle_intro_anim + + thumb_func_start sub_80BCC4C +sub_80BCC4C: @ 80BCC4C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080BCC98 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0x1 + ble _080BCCC2 + movs r2, 0x10 + ldrsh r0, [r7, r2] + cmp r0, 0 + bne _080BCCC2 + ldr r2, _080BCC9C @ =gBattle_BG1_X + ldrh r1, [r2] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080BCC8A + cmp r1, 0x4F + bhi _080BCCA4 +_080BCC8A: + adds r0, r1, 0x3 + strh r0, [r2] + ldr r1, _080BCCA0 @ =gBattle_BG2_X + ldrh r0, [r1] + subs r0, 0x3 + strh r0, [r1] + b _080BCCC2 + .align 2, 0 +_080BCC98: .4byte gTasks +_080BCC9C: .4byte gBattle_BG1_X +_080BCCA0: .4byte gBattle_BG2_X +_080BCCA4: + str r5, [sp] + ldr r1, _080BCCE4 @ =0x0600e000 + ldr r4, _080BCCE8 @ =0x05000200 + mov r0, sp + adds r2, r4, 0 + bl CpuSet + str r5, [sp, 0x4] + add r0, sp, 0x4 + ldr r1, _080BCCEC @ =0x0600f000 + adds r2, r4, 0 + bl CpuSet + movs r0, 0x1 + strh r0, [r7, 0x10] +_080BCCC2: + ldr r0, _080BCCF0 @ =gTasks + lsls r2, r6, 2 + adds r1, r2, r6 + lsls r1, 3 + adds r1, r0 + movs r3, 0x8 + ldrsh r1, [r1, r3] + mov r9, r0 + adds r5, r2, 0 + cmp r1, 0x4 + bls _080BCCDA + b _080BCEE6 +_080BCCDA: + lsls r0, r1, 2 + ldr r1, _080BCCF4 @ =_080BCCF8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BCCE4: .4byte 0x0600e000 +_080BCCE8: .4byte 0x05000200 +_080BCCEC: .4byte 0x0600f000 +_080BCCF0: .4byte gTasks +_080BCCF4: .4byte _080BCCF8 + .align 2, 0 +_080BCCF8: + .4byte _080BCD0C + .4byte _080BCD1E + .4byte _080BCDC4 + .4byte _080BCE08 + .4byte _080BCEE0 +_080BCD0C: + adds r0, r5, r6 + lsls r0, 3 + add r0, r9 + movs r1, 0x20 + strh r1, [r0, 0xC] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080BCEE6 +_080BCD1E: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r9 + adds r1, r0, r2 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080BCD34 + b _080BCEE6 +_080BCD34: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r4, _080BCDB4 @ =gSprites + ldr r5, _080BCDB8 @ =gBattleStruct + ldr r0, [r5] + adds r0, 0x7D + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r3, [r1, 0x1] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + movs r3, 0x8 + mov r9, r3 + mov r3, r9 + orrs r0, r3 + strb r0, [r1, 0x1] + ldr r3, [r5] + adds r0, r3, 0 + adds r0, 0x7D + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + movs r1, 0x1C + adds r1, r4 + mov r8, r1 + add r0, r8 + ldr r6, _080BCDBC @ =sub_801182C + str r6, [r0] + adds r3, 0x7E + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + ands r2, r1 + mov r3, r9 + orrs r2, r3 + strb r2, [r0, 0x1] + ldr r0, [r5] + adds r0, 0x7E + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + str r6, [r0] + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + ldr r1, _080BCDC0 @ =0x00003f06 + movs r0, 0x4A + bl SetGpuReg + b _080BCEE6 + .align 2, 0 +_080BCDB4: .4byte gSprites +_080BCDB8: .4byte gBattleStruct +_080BCDBC: .4byte sub_801182C +_080BCDC0: .4byte 0x00003f06 +_080BCDC4: + ldr r1, _080BCDFC @ =gUnknown_2022986 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080BCDDC + b _080BCEE6 +_080BCDDC: + adds r1, r5, r6 + lsls r1, 3 + add r1, r9 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + ldr r2, _080BCE00 @ =gUnknown_2023F4C + ldrh r1, [r2] + ldr r0, _080BCE04 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080BCEE6 + .align 2, 0 +_080BCDFC: .4byte gUnknown_2022986 +_080BCE00: .4byte gUnknown_2023F4C +_080BCE04: .4byte 0x0000fffe +_080BCE08: + ldr r2, _080BCECC @ =gUnknown_2022986 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080BCE1C + ldr r3, _080BCED0 @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080BCE1C: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r9 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BCE32 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080BCE32: + movs r3, 0 + ldr r0, _080BCED4 @ =gScanlineEffect + mov r12, r0 + ldr r2, _080BCED8 @ =gScanlineEffectRegBuffers + mov r8, r2 + mov r7, r12 + adds r4, r1, 0 +_080BCE40: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r8 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080BCE40 + cmp r3, 0x9F + bgt _080BCE84 + ldr r0, _080BCED8 @ =gScanlineEffectRegBuffers + mov r8, r0 + ldr r7, _080BCED4 @ =gScanlineEffect + ldr r1, _080BCEDC @ =gTasks + adds r0, r5, r6 + lsls r0, 3 + adds r4, r0, r1 +_080BCE6A: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r8 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080BCE6A +_080BCE84: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r9 + adds r1, r0, r2 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080BCEE6 + movs r0, 0x3 + mov r2, r12 + strb r0, [r2, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl SetBgAttribute + movs r1, 0x9C + lsls r1, 8 + movs r0, 0xA + bl SetGpuReg + movs r1, 0xBC + lsls r1, 7 + movs r0, 0xC + bl SetGpuReg + b _080BCEE6 + .align 2, 0 +_080BCECC: .4byte gUnknown_2022986 +_080BCED0: .4byte 0xfffffc04 +_080BCED4: .4byte gScanlineEffect +_080BCED8: .4byte gScanlineEffectRegBuffers +_080BCEDC: .4byte gTasks +_080BCEE0: + adds r0, r6, 0 + bl sub_80BC41C +_080BCEE6: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BCC4C + + thumb_func_start sub_80BCEF4 +sub_80BCEF4: @ 80BCEF4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r0, [sp] + adds r6, r2, 0 + adds r4, r3, 0 + ldr r0, [sp, 0x24] + ldr r7, [sp, 0x28] + ldr r2, [sp, 0x2C] + mov r9, r2 + ldr r5, [sp, 0x30] + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr + ldr r2, [r1] + lsls r4, 2 + adds r2, 0x4 + adds r2, r4 + ldr r1, _080BCFC8 @ =gBattleMonForms + adds r0, r1 + ldrb r1, [r0] + lsls r1, 11 + ldr r0, [r2] + adds r0, r1 + movs r2, 0x80 + lsls r2, 3 + adds r1, r7, 0 + bl CpuSet + ldr r1, [sp] + lsls r0, r1, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 5 + adds r1, r7, 0 + adds r3, r5, 0 + bl LoadBgTiles + adds r0, r6, 0 + adds r0, 0x8 + cmp r6, r0 + bge _080BCFA0 + mov r12, r0 + mov r2, r8 + lsls r7, r2, 1 +_080BCF72: + mov r1, r8 + adds r2, r1, 0 + adds r2, 0x8 + adds r4, r6, 0x1 + cmp r1, r2 + bge _080BCF9A + mov r0, r10 + lsls r3, r0, 12 + lsls r0, r6, 6 + add r0, r9 + adds r6, r7, r0 + subs r1, r2, r1 +_080BCF8A: + adds r0, r5, 0 + orrs r0, r3 + strh r0, [r6] + adds r5, 0x1 + adds r6, 0x2 + subs r1, 0x1 + cmp r1, 0 + bne _080BCF8A +_080BCF9A: + adds r6, r4, 0 + cmp r6, r12 + blt _080BCF72 +_080BCFA0: + ldr r1, [sp] + lsls r0, r1, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 4 + mov r1, r9 + movs r3, 0 + bl LoadBgTilemap + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCFC4: .4byte gMonSpritesGfxPtr +_080BCFC8: .4byte gBattleMonForms + thumb_func_end sub_80BCEF4 + + thumb_func_start sub_80BCFCC +sub_80BCFCC: @ 80BCFCC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, [sp, 0x24] + ldr r5, [sp, 0x28] + mov r8, r5 + ldr r5, [sp, 0x2C] + ldr r6, [sp, 0x30] + mov r9, r6 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r1, 24 + lsls r2, 24 + lsls r3, 24 + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + mov r7, r8 + lsls r7, 16 + lsrs r6, r7, 16 + lsls r5, 24 + lsrs r5, 24 + mov r0, r9 + lsls r0, 24 + mov r9, r0 + ldr r4, _080BD090 @ =0x040000d4 + ldr r0, _080BD094 @ =gMonSpritesGfxPtr + ldr r0, [r0] + lsrs r2, 22 + adds r0, 0x4 + adds r0, r2 + lsrs r3, 13 + ldr r0, [r0] + adds r0, r3 + str r0, [r4] + movs r0, 0xC0 + lsls r0, 19 + adds r6, r0 + str r6, [r4, 0x4] + ldr r0, _080BD098 @ =0x80000400 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r2, r7, 0 + lsrs r2, 21 + mov r6, r9 + lsrs r6, 15 + subs r4, r2, r6 + lsrs r0, r1, 24 + adds r1, r0, 0 + adds r1, 0x8 + cmp r0, r1 + bge _080BD080 + mov r9, r1 + mov r7, r12 + lsls r7, 1 + mov r8, r7 + lsls r5, 11 + str r5, [sp] +_080BD048: + mov r2, r12 + adds r3, r2, 0 + adds r3, 0x8 + adds r5, r0, 0x1 + cmp r2, r3 + bge _080BD07A + mov r1, r10 + lsls r6, r1, 12 + lsls r0, 6 + movs r7, 0xC0 + lsls r7, 19 + adds r0, r7 + ldr r1, [sp] + adds r0, r1, r0 + mov r7, r8 + adds r1, r7, r0 + subs r2, r3, r2 +_080BD06A: + adds r0, r4, 0 + orrs r0, r6 + strh r0, [r1] + adds r4, 0x1 + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080BD06A +_080BD07A: + adds r0, r5, 0 + cmp r0, r9 + blt _080BD048 +_080BD080: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD090: .4byte 0x040000d4 +_080BD094: .4byte gMonSpritesGfxPtr +_080BD098: .4byte 0x80000400 + thumb_func_end sub_80BCFCC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s index d5a9b8ae6..873fa088c 100644 --- a/asm/battle_controller_link_opponent.s +++ b/asm/battle_controller_link_opponent.s @@ -70,7 +70,7 @@ _0803A6D0: sub_803A6D4: @ 803A6D4 push {lr} ldr r2, _0803A6FC @ =gSprites - ldr r1, _0803A700 @ =gUnknown_2023D44 + ldr r1, _0803A700 @ =gBattlerSpriteIds ldr r0, _0803A704 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -90,7 +90,7 @@ _0803A6F8: bx r0 .align 2, 0 _0803A6FC: .4byte gSprites -_0803A700: .4byte gUnknown_2023D44 +_0803A700: .4byte gBattlerSpriteIds _0803A704: .4byte gActiveBattler _0803A708: .4byte SpriteCallbackDummy thumb_func_end sub_803A6D4 @@ -99,7 +99,7 @@ _0803A708: .4byte SpriteCallbackDummy sub_803A70C: @ 803A70C push {r4-r6,lr} ldr r4, _0803A784 @ =gSprites - ldr r6, _0803A788 @ =gUnknown_2023D44 + ldr r6, _0803A788 @ =gBattlerSpriteIds ldr r5, _0803A78C @ =gActiveBattler ldrb r0, [r5] adds r0, r6 @@ -155,7 +155,7 @@ _0803A77C: bx r0 .align 2, 0 _0803A784: .4byte gSprites -_0803A788: .4byte gUnknown_2023D44 +_0803A788: .4byte gBattlerSpriteIds _0803A78C: .4byte gActiveBattler _0803A790: .4byte SpriteCallbackDummy _0803A794: .4byte 0x000003ff @@ -714,7 +714,7 @@ _0803AC10: .4byte sub_803A7E4 sub_803AC14: @ 803AC14 push {r4-r7,lr} ldr r2, _0803AC70 @ =gSprites - ldr r0, _0803AC74 @ =gUnknown_2023D44 + ldr r0, _0803AC74 @ =gBattlerSpriteIds ldr r7, _0803AC78 @ =gActiveBattler ldrb r3, [r7] adds r0, r3, r0 @@ -758,7 +758,7 @@ sub_803AC14: @ 803AC14 b _0803ACC0 .align 2, 0 _0803AC70: .4byte gSprites -_0803AC74: .4byte gUnknown_2023D44 +_0803AC74: .4byte gBattlerSpriteIds _0803AC78: .4byte gActiveBattler _0803AC7C: .4byte gUnknown_2024018 _0803AC80: .4byte gBattlerPartyIndexes @@ -842,7 +842,7 @@ _0803AD18: sub_803AD20: @ 803AD20 push {lr} ldr r2, _0803AD54 @ =gSprites - ldr r0, _0803AD58 @ =gUnknown_2023D44 + ldr r0, _0803AD58 @ =gBattlerSpriteIds ldr r1, _0803AD5C @ =gActiveBattler ldrb r3, [r1] adds r0, r3, r0 @@ -866,7 +866,7 @@ _0803AD4E: bx r0 .align 2, 0 _0803AD54: .4byte gSprites -_0803AD58: .4byte gUnknown_2023D44 +_0803AD58: .4byte gBattlerSpriteIds _0803AD5C: .4byte gActiveBattler _0803AD60: .4byte gUnknown_3004FF0 thumb_func_end sub_803AD20 @@ -888,7 +888,7 @@ sub_803AD64: @ 803AD64 ands r0, r1 cmp r0, 0 bne _0803ADBE - ldr r5, _0803ADCC @ =gUnknown_2023D44 + ldr r5, _0803ADCC @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -920,7 +920,7 @@ _0803ADBE: .align 2, 0 _0803ADC4: .4byte gUnknown_2024018 _0803ADC8: .4byte gActiveBattler -_0803ADCC: .4byte gUnknown_2023D44 +_0803ADCC: .4byte gBattlerSpriteIds _0803ADD0: .4byte gSprites _0803ADD4: .4byte gUnknown_3004FF0 thumb_func_end sub_803AD64 @@ -942,7 +942,7 @@ _0803ADEA: thumb_func_start DoHitAnimBlinkSpriteEffect_4 DoHitAnimBlinkSpriteEffect_4: @ 803ADF0 push {r4,lr} - ldr r1, _0803AE2C @ =gUnknown_2023D44 + ldr r1, _0803AE2C @ =gBattlerSpriteIds ldr r0, _0803AE30 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -970,7 +970,7 @@ DoHitAnimBlinkSpriteEffect_4: @ 803ADF0 bl RecordedOpponentBufferExecCompleted b _0803AE66 .align 2, 0 -_0803AE2C: .4byte gUnknown_2023D44 +_0803AE2C: .4byte gBattlerSpriteIds _0803AE30: .4byte gActiveBattler _0803AE34: .4byte gSprites _0803AE38: .4byte gUnknown_2024005 @@ -1132,7 +1132,7 @@ sub_803AF28: @ 803AF28 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag - ldr r1, _0803AFE0 @ =gUnknown_2023D44 + ldr r1, _0803AFE0 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -1179,7 +1179,7 @@ _0803AFCC: _0803AFD4: .4byte gUnknown_2024018 _0803AFD8: .4byte gActiveBattler _0803AFDC: .4byte 0x000027f9 -_0803AFE0: .4byte gUnknown_2023D44 +_0803AFE0: .4byte gBattlerSpriteIds _0803AFE4: .4byte gSprites _0803AFE8: .4byte gUnknown_3004FF0 _0803AFEC: .4byte gBattlerPartyIndexes @@ -3576,7 +3576,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _0803C4E8 @ =gMultiuseSpriteTemplate mov r8, r0 ldrb r0, [r6] @@ -3599,7 +3599,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _0803C4EC @ =gUnknown_2023D44 + ldr r4, _0803C4EC @ =gBattlerSpriteIds ldrb r1, [r6] adds r1, r4 strb r0, [r1] @@ -3678,7 +3678,7 @@ _0803C4DC: .4byte gBattlerPartyIndexes _0803C4E0: .4byte gActiveBattler _0803C4E4: .4byte gEnemyParty _0803C4E8: .4byte gMultiuseSpriteTemplate -_0803C4EC: .4byte gUnknown_2023D44 +_0803C4EC: .4byte gBattlerSpriteIds _0803C4F0: .4byte gSprites _0803C4F4: .4byte 0x0000ff10 _0803C4F8: .4byte gBattleMonForms @@ -3780,7 +3780,7 @@ sub_803C550: @ 803C550 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _0803C6C0 @ =gMultiuseSpriteTemplate mov r9, r0 adds r0, r6, 0 @@ -3803,7 +3803,7 @@ sub_803C550: @ 803C550 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _0803C6C4 @ =gUnknown_2023D44 + ldr r4, _0803C6C4 @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _0803C6C8 @ =gSprites @@ -3893,7 +3893,7 @@ _0803C6B4: .4byte gEnemyParty _0803C6B8: .4byte sub_8033E3C _0803C6BC: .4byte gUnknown_3004FFC _0803C6C0: .4byte gMultiuseSpriteTemplate -_0803C6C4: .4byte gUnknown_2023D44 +_0803C6C4: .4byte gBattlerSpriteIds _0803C6C8: .4byte gSprites _0803C6CC: .4byte gBattleMonForms _0803C6D0: .4byte SpriteCallbackDummy @@ -3933,7 +3933,7 @@ _0803C710: .4byte gUnknown_2024018 _0803C714: .4byte gUnknown_3004FE0 _0803C718: .4byte sub_803C76C _0803C71C: - ldr r5, _0803C760 @ =gUnknown_2023D44 + ldr r5, _0803C760 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -3963,7 +3963,7 @@ _0803C758: pop {r0} bx r0 .align 2, 0 -_0803C760: .4byte gUnknown_2023D44 +_0803C760: .4byte gBattlerSpriteIds _0803C764: .4byte gSprites _0803C768: .4byte gUnknown_3004FF0 thumb_func_end LinkOpponentHandleReturnPokeToBall @@ -4278,7 +4278,7 @@ _0803C992: adds r1, r6, 0 adds r2, r4, 0 bl CreateSprite - ldr r5, _0803CAD8 @ =gUnknown_2023D44 + ldr r5, _0803CAD8 @ =gBattlerSpriteIds mov r2, r8 ldrb r1, [r2] adds r1, r5 @@ -4302,7 +4302,7 @@ _0803C992: adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] - ldr r0, _0803CAE4 @ =gUnknown_8239A1C + ldr r0, _0803CAE4 @ =gTrainerFrontPicPaletteTable mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 @@ -4334,7 +4334,7 @@ _0803C992: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _0803CAE8 @ =gUnknown_823957C + ldr r0, _0803CAE8 @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag @@ -4392,11 +4392,11 @@ _0803CAC8: .4byte gFacilityClassToPicIndex _0803CACC: .4byte gActiveBattler _0803CAD0: .4byte gMultiuseSpriteTemplate _0803CAD4: .4byte gUnknown_823932C -_0803CAD8: .4byte gUnknown_2023D44 +_0803CAD8: .4byte gBattlerSpriteIds _0803CADC: .4byte gSprites _0803CAE0: .4byte 0x0000ff10 -_0803CAE4: .4byte gUnknown_8239A1C -_0803CAE8: .4byte gUnknown_823957C +_0803CAE4: .4byte gTrainerFrontPicPaletteTable +_0803CAE8: .4byte gTrainerFrontPicTable _0803CAEC: .4byte 0x000003ff _0803CAF0: .4byte 0xfffffc00 _0803CAF4: .4byte sub_8033EEC @@ -4415,7 +4415,7 @@ sub_803CB00: @ 803CB00 thumb_func_start sub_803CB0C sub_803CB0C: @ 803CB0C push {r4-r6,lr} - ldr r6, _0803CB9C @ =gUnknown_2023D44 + ldr r6, _0803CB9C @ =gBattlerSpriteIds ldr r4, _0803CBA0 @ =gActiveBattler ldrb r0, [r4] adds r0, r6 @@ -4484,7 +4484,7 @@ sub_803CB0C: @ 803CB0C pop {r0} bx r0 .align 2, 0 -_0803CB9C: .4byte gUnknown_2023D44 +_0803CB9C: .4byte gBattlerSpriteIds _0803CBA0: .4byte gActiveBattler _0803CBA4: .4byte gSprites _0803CBA8: .4byte sub_8075590 @@ -4548,7 +4548,7 @@ _0803CC0C: movs r1, 0x3F bl PlaySE12WithPanning ldr r2, _0803CC50 @ =gSprites - ldr r1, _0803CC54 @ =gUnknown_2023D44 + ldr r1, _0803CC54 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -4571,7 +4571,7 @@ _0803CC48: bx r0 .align 2, 0 _0803CC50: .4byte gSprites -_0803CC54: .4byte gUnknown_2023D44 +_0803CC54: .4byte gBattlerSpriteIds _0803CC58: .4byte sub_8011EA0 _0803CC5C: .4byte gUnknown_3004FE0 _0803CC60: .4byte sub_803AD20 @@ -4633,7 +4633,7 @@ _0803CCA6: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _0803CD80 @ =gUnknown_2037F16 + ldr r5, _0803CD80 @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -4701,7 +4701,7 @@ _0803CCA6: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _0803CD94 @ =gUnknown_2037EE4 + ldr r3, _0803CD94 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4725,12 +4725,12 @@ _0803CCA6: .align 2, 0 _0803CD78: .4byte gActiveBattler _0803CD7C: .4byte gUnknown_2022BC4 -_0803CD80: .4byte gUnknown_2037F16 +_0803CD80: .4byte gAnimMoveTurn _0803CD84: .4byte gUnknown_2037EEC _0803CD88: .4byte gUnknown_2037EE8 _0803CD8C: .4byte gUnknown_2037EFE _0803CD90: .4byte gUnknown_2037F00 -_0803CD94: .4byte gUnknown_2037EE4 +_0803CD94: .4byte gAnimDisableStructPtr _0803CD98: .4byte gUnknown_2024008 _0803CD9C: ldr r0, _0803CDC0 @ =gUnknown_2024018 @@ -4952,10 +4952,10 @@ _0803CF40: thumb_func_start sub_803CF50 sub_803CF50: @ 803CF50 push {r4,lr} - ldr r0, _0803CF84 @ =gUnknown_2022974 + ldr r0, _0803CF84 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _0803CF88 @ =gUnknown_2022976 + ldr r0, _0803CF88 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _0803CF8C @ =gActiveBattler ldrb r4, [r0] @@ -4974,8 +4974,8 @@ sub_803CF50: @ 803CF50 bl sub_80D87BC b _0803CFA0 .align 2, 0 -_0803CF84: .4byte gUnknown_2022974 -_0803CF88: .4byte gUnknown_2022976 +_0803CF84: .4byte gBattle_BG0_X +_0803CF88: .4byte gBattle_BG0_Y _0803CF8C: .4byte gActiveBattler _0803CF90: .4byte gUnknown_2022BC6 _0803CF94: .4byte gDisplayedStringBattle @@ -5437,7 +5437,7 @@ _0803D2F0: .4byte gUnknown_2022870 RecordedOpponentHandleHitAnimation: @ 803D2F4 push {r4,lr} ldr r3, _0803D31C @ =gSprites - ldr r2, _0803D320 @ =gUnknown_2023D44 + ldr r2, _0803D320 @ =gBattlerSpriteIds ldr r4, _0803D324 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -5455,7 +5455,7 @@ RecordedOpponentHandleHitAnimation: @ 803D2F4 b _0803D352 .align 2, 0 _0803D31C: .4byte gSprites -_0803D320: .4byte gUnknown_2023D44 +_0803D320: .4byte gBattlerSpriteIds _0803D324: .4byte gActiveBattler _0803D328: ldr r1, _0803D358 @ =gUnknown_2024005 @@ -5612,7 +5612,7 @@ _0803D450: .4byte gUnknown_2023F4C thumb_func_start sub_803D454 sub_803D454: @ 803D454 push {r4-r6,lr} - ldr r5, _0803D534 @ =gUnknown_2023D44 + ldr r5, _0803D534 @ =gBattlerSpriteIds ldr r6, _0803D538 @ =gActiveBattler ldrb r0, [r6] adds r0, r5 @@ -5722,7 +5722,7 @@ _0803D516: pop {r0} bx r0 .align 2, 0 -_0803D534: .4byte gUnknown_2023D44 +_0803D534: .4byte gBattlerSpriteIds _0803D538: .4byte gActiveBattler _0803D53C: .4byte gSprites _0803D540: .4byte sub_8075590 @@ -6100,7 +6100,7 @@ RecordedOpponentHandleSpriteInvisibility: @ 803D834 cmp r0, 0 beq _0803D87A ldr r3, _0803D888 @ =gSprites - ldr r0, _0803D88C @ =gUnknown_2023D44 + ldr r0, _0803D88C @ =gBattlerSpriteIds ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -6133,7 +6133,7 @@ _0803D87A: .align 2, 0 _0803D884: .4byte gActiveBattler _0803D888: .4byte gSprites -_0803D88C: .4byte gUnknown_2023D44 +_0803D88C: .4byte gBattlerSpriteIds _0803D890: .4byte gUnknown_2022BC4 thumb_func_end RecordedOpponentHandleSpriteInvisibility @@ -6218,15 +6218,15 @@ RecordedOpponentHandleCmd55: @ 803D914 ldrb r2, [r0] cmp r2, 0x3 bne _0803D93C - ldr r0, _0803D938 @ =gUnknown_2023E8A + ldr r0, _0803D938 @ =gBattleOutcome strb r2, [r0] b _0803D944 .align 2, 0 _0803D930: .4byte gUnknown_2022BC4 _0803D934: .4byte gActiveBattler -_0803D938: .4byte gUnknown_2023E8A +_0803D938: .4byte gBattleOutcome _0803D93C: - ldr r0, _0803D968 @ =gUnknown_2023E8A + ldr r0, _0803D968 @ =gBattleOutcome movs r1, 0x3 eors r1, r2 strb r1, [r0] @@ -6246,7 +6246,7 @@ _0803D944: pop {r0} bx r0 .align 2, 0 -_0803D968: .4byte gUnknown_2023E8A +_0803D968: .4byte gBattleOutcome _0803D96C: .4byte gUnknown_3004FE0 _0803D970: .4byte gActiveBattler _0803D974: .4byte sub_802F6A8 diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s index 7480e8b12..8da94bdce 100644 --- a/asm/battle_controller_link_partner.s +++ b/asm/battle_controller_link_partner.s @@ -70,7 +70,7 @@ _080D426C: sub_80D4270: @ 80D4270 push {lr} ldr r2, _080D4298 @ =gSprites - ldr r1, _080D429C @ =gUnknown_2023D44 + ldr r1, _080D429C @ =gBattlerSpriteIds ldr r0, _080D42A0 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -90,7 +90,7 @@ _080D4294: bx r0 .align 2, 0 _080D4298: .4byte gSprites -_080D429C: .4byte gUnknown_2023D44 +_080D429C: .4byte gBattlerSpriteIds _080D42A0: .4byte gActiveBattler _080D42A4: .4byte SpriteCallbackDummy thumb_func_end sub_80D4270 @@ -99,7 +99,7 @@ _080D42A4: .4byte SpriteCallbackDummy sub_80D42A8: @ 80D42A8 push {r4-r6,lr} ldr r6, _080D4300 @ =gSprites - ldr r5, _080D4304 @ =gUnknown_2023D44 + ldr r5, _080D4304 @ =gBattlerSpriteIds ldr r4, _080D4308 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -139,7 +139,7 @@ _080D42F8: bx r0 .align 2, 0 _080D4300: .4byte gSprites -_080D4304: .4byte gUnknown_2023D44 +_080D4304: .4byte gBattlerSpriteIds _080D4308: .4byte gActiveBattler _080D430C: .4byte SpriteCallbackDummy thumb_func_end sub_80D42A8 @@ -456,7 +456,7 @@ _080D458C: .4byte sub_80D4358 sub_80D4590: @ 80D4590 push {lr} ldr r2, _080D45C4 @ =gSprites - ldr r1, _080D45C8 @ =gUnknown_2023D44 + ldr r1, _080D45C8 @ =gBattlerSpriteIds ldr r0, _080D45CC @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -481,7 +481,7 @@ _080D45BE: bx r0 .align 2, 0 _080D45C4: .4byte gSprites -_080D45C8: .4byte gUnknown_2023D44 +_080D45C8: .4byte gBattlerSpriteIds _080D45CC: .4byte gActiveBattler thumb_func_end sub_80D4590 @@ -543,7 +543,7 @@ _080D463C: .4byte gPlayerParty sub_80D4640: @ 80D4640 push {r4-r6,lr} ldr r6, _080D4698 @ =gSprites - ldr r5, _080D469C @ =gUnknown_2023D44 + ldr r5, _080D469C @ =gBattlerSpriteIds ldr r4, _080D46A0 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -583,7 +583,7 @@ _080D4690: bx r0 .align 2, 0 _080D4698: .4byte gSprites -_080D469C: .4byte gUnknown_2023D44 +_080D469C: .4byte gBattlerSpriteIds _080D46A0: .4byte gActiveBattler _080D46A4: .4byte gUnknown_3004FF0 thumb_func_end sub_80D4640 @@ -605,7 +605,7 @@ sub_80D46A8: @ 80D46A8 ands r0, r1 cmp r0, 0 bne _080D46FC - ldr r5, _080D470C @ =gUnknown_2023D44 + ldr r5, _080D470C @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -635,7 +635,7 @@ _080D46FC: .align 2, 0 _080D4704: .4byte gUnknown_2024018 _080D4708: .4byte gActiveBattler -_080D470C: .4byte gUnknown_2023D44 +_080D470C: .4byte gBattlerSpriteIds _080D4710: .4byte gSprites _080D4714: .4byte gUnknown_3004FF0 thumb_func_end sub_80D46A8 @@ -657,7 +657,7 @@ _080D472A: thumb_func_start sub_80D4730 sub_80D4730: @ 80D4730 push {r4,lr} - ldr r1, _080D476C @ =gUnknown_2023D44 + ldr r1, _080D476C @ =gBattlerSpriteIds ldr r0, _080D4770 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -685,7 +685,7 @@ sub_80D4730: @ 80D4730 bl sub_80D49E8 b _080D47A6 .align 2, 0 -_080D476C: .4byte gUnknown_2023D44 +_080D476C: .4byte gBattlerSpriteIds _080D4770: .4byte gActiveBattler _080D4774: .4byte gSprites _080D4778: .4byte gUnknown_2024005 @@ -852,7 +852,7 @@ sub_80D484C: @ 80D484C ldr r5, _080D492C @ =gPlayerParty adds r0, r5 bl HandleLowHpMusicChange - ldr r1, _080D4930 @ =gUnknown_2023D44 + ldr r1, _080D4930 @ =gBattlerSpriteIds ldrb r0, [r7] adds r0, r1 ldrb r1, [r0] @@ -901,7 +901,7 @@ _080D4920: .4byte 0x000027f9 _080D4924: .4byte c3_0802FDF4 _080D4928: .4byte gBattlerPartyIndexes _080D492C: .4byte gPlayerParty -_080D4930: .4byte gUnknown_2023D44 +_080D4930: .4byte gBattlerSpriteIds _080D4934: .4byte gSprites _080D4938: .4byte gUnknown_3004FF0 _080D493C: .4byte gUnknown_3004FE0 @@ -3370,7 +3370,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080D5EB4 @ =gMultiuseSpriteTemplate mov r8, r0 ldrb r0, [r6] @@ -3393,7 +3393,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _080D5EB8 @ =gUnknown_2023D44 + ldr r4, _080D5EB8 @ =gBattlerSpriteIds ldrb r1, [r6] adds r1, r4 strb r0, [r1] @@ -3455,7 +3455,7 @@ _080D5EA8: .4byte gBattlerPartyIndexes _080D5EAC: .4byte gActiveBattler _080D5EB0: .4byte gPlayerParty _080D5EB4: .4byte gMultiuseSpriteTemplate -_080D5EB8: .4byte gUnknown_2023D44 +_080D5EB8: .4byte gBattlerSpriteIds _080D5EBC: .4byte gSprites _080D5EC0: .4byte 0x0000ff10 _080D5EC4: .4byte gBattleMonForms @@ -3562,7 +3562,7 @@ sub_80D5F40: @ 80D5F40 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080D6098 @ =gMultiuseSpriteTemplate mov r10, r0 adds r0, r6, 0 @@ -3585,7 +3585,7 @@ sub_80D5F40: @ 80D5F40 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _080D609C @ =gUnknown_2023D44 + ldr r4, _080D609C @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _080D60A0 @ =gSprites @@ -3675,7 +3675,7 @@ _080D608C: .4byte gPlayerParty _080D6090: .4byte sub_8033E3C _080D6094: .4byte gUnknown_3004FFC _080D6098: .4byte gMultiuseSpriteTemplate -_080D609C: .4byte gUnknown_2023D44 +_080D609C: .4byte gBattlerSpriteIds _080D60A0: .4byte gSprites _080D60A4: .4byte gBattleMonForms _080D60A8: .4byte SpriteCallbackDummy @@ -3715,7 +3715,7 @@ _080D60E8: .4byte gUnknown_2024018 _080D60EC: .4byte gUnknown_3004FE0 _080D60F0: .4byte sub_80D613C _080D60F4: - ldr r5, _080D6130 @ =gUnknown_2023D44 + ldr r5, _080D6130 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -3743,7 +3743,7 @@ _080D612A: pop {r0} bx r0 .align 2, 0 -_080D6130: .4byte gUnknown_2023D44 +_080D6130: .4byte gBattlerSpriteIds _080D6134: .4byte gSprites _080D6138: .4byte gUnknown_3004FF0 thumb_func_end LinkPartnerHandleReturnPokeToBall @@ -3926,7 +3926,7 @@ _080D6258: mov r1, r8 adds r2, r4, 0 bl CreateSprite - ldr r6, _080D6324 @ =gUnknown_2023D44 + ldr r6, _080D6324 @ =gBattlerSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -3987,7 +3987,7 @@ _080D6258: _080D6318: .4byte gActiveBattler _080D631C: .4byte gMultiuseSpriteTemplate _080D6320: .4byte gUnknown_8239F8C -_080D6324: .4byte gUnknown_2023D44 +_080D6324: .4byte gBattlerSpriteIds _080D6328: .4byte gSprites _080D632C: .4byte 0x0000fffe _080D6330: .4byte sub_8033EEC @@ -4006,7 +4006,7 @@ sub_80D633C: @ 80D633C thumb_func_start sub_80D6348 sub_80D6348: @ 80D6348 push {r4-r6,lr} - ldr r6, _080D63D4 @ =gUnknown_2023D44 + ldr r6, _080D63D4 @ =gBattlerSpriteIds ldr r4, _080D63D8 @ =gActiveBattler ldrb r0, [r4] adds r0, r6 @@ -4074,7 +4074,7 @@ sub_80D6348: @ 80D6348 pop {r0} bx r0 .align 2, 0 -_080D63D4: .4byte gUnknown_2023D44 +_080D63D4: .4byte gBattlerSpriteIds _080D63D8: .4byte gActiveBattler _080D63DC: .4byte gSprites _080D63E0: .4byte 0x0000ffd8 @@ -4150,7 +4150,7 @@ _080D6448: movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _080D64CC @ =gSprites - ldr r3, _080D64D0 @ =gUnknown_2023D44 + ldr r3, _080D64D0 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -4192,7 +4192,7 @@ _080D64BE: _080D64C4: .4byte gBattlerPartyIndexes _080D64C8: .4byte gPlayerParty _080D64CC: .4byte gSprites -_080D64D0: .4byte gUnknown_2023D44 +_080D64D0: .4byte gBattlerSpriteIds _080D64D4: .4byte sub_8012110 _080D64D8: .4byte gUnknown_3004FE0 _080D64DC: .4byte sub_80D4640 @@ -4254,7 +4254,7 @@ _080D6522: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _080D65FC @ =gUnknown_2037F16 + ldr r5, _080D65FC @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -4322,7 +4322,7 @@ _080D6522: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _080D6610 @ =gUnknown_2037EE4 + ldr r3, _080D6610 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4346,12 +4346,12 @@ _080D6522: .align 2, 0 _080D65F4: .4byte gActiveBattler _080D65F8: .4byte gUnknown_2022BC4 -_080D65FC: .4byte gUnknown_2037F16 +_080D65FC: .4byte gAnimMoveTurn _080D6600: .4byte gUnknown_2037EEC _080D6604: .4byte gUnknown_2037EE8 _080D6608: .4byte gUnknown_2037EFE _080D660C: .4byte gUnknown_2037F00 -_080D6610: .4byte gUnknown_2037EE4 +_080D6610: .4byte gAnimDisableStructPtr _080D6614: .4byte gUnknown_2024008 _080D6618: ldr r0, _080D663C @ =gUnknown_2024018 @@ -4573,10 +4573,10 @@ _080D67BC: thumb_func_start sub_80D67CC sub_80D67CC: @ 80D67CC push {r4,lr} - ldr r0, _080D6800 @ =gUnknown_2022974 + ldr r0, _080D6800 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080D6804 @ =gUnknown_2022976 + ldr r0, _080D6804 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _080D6808 @ =gActiveBattler ldrb r4, [r0] @@ -4595,8 +4595,8 @@ sub_80D67CC: @ 80D67CC bl sub_80D87BC b _080D681C .align 2, 0 -_080D6800: .4byte gUnknown_2022974 -_080D6804: .4byte gUnknown_2022976 +_080D6800: .4byte gBattle_BG0_X +_080D6804: .4byte gBattle_BG0_Y _080D6808: .4byte gActiveBattler _080D680C: .4byte gUnknown_2022BC6 _080D6810: .4byte gDisplayedStringBattle @@ -5058,7 +5058,7 @@ _080D6B6C: .4byte gUnknown_2022870 LinkPartnerHandleHitAnimation: @ 80D6B70 push {r4,lr} ldr r3, _080D6B98 @ =gSprites - ldr r2, _080D6B9C @ =gUnknown_2023D44 + ldr r2, _080D6B9C @ =gBattlerSpriteIds ldr r4, _080D6BA0 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -5076,7 +5076,7 @@ LinkPartnerHandleHitAnimation: @ 80D6B70 b _080D6BCE .align 2, 0 _080D6B98: .4byte gSprites -_080D6B9C: .4byte gUnknown_2023D44 +_080D6B9C: .4byte gBattlerSpriteIds _080D6BA0: .4byte gActiveBattler _080D6BA4: ldr r1, _080D6BD4 @ =gUnknown_2024005 @@ -5234,7 +5234,7 @@ _080D6CD0: .4byte gUnknown_2023F4C thumb_func_start sub_80D6CD4 sub_80D6CD4: @ 80D6CD4 push {r4-r7,lr} - ldr r5, _080D6DDC @ =gUnknown_2023D44 + ldr r5, _080D6DDC @ =gBattlerSpriteIds ldr r6, _080D6DE0 @ =gActiveBattler ldrb r0, [r6] adds r0, r5 @@ -5358,7 +5358,7 @@ _080D6DC2: adds r0, 0x2 b _080D6E0C .align 2, 0 -_080D6DDC: .4byte gUnknown_2023D44 +_080D6DDC: .4byte gBattlerSpriteIds _080D6DE0: .4byte gActiveBattler _080D6DE4: .4byte gSprites _080D6DE8: .4byte 0x0000ffd8 @@ -5386,7 +5386,7 @@ _080D6E0C: movs r2, 0x20 bl LoadCompressedPalette ldr r2, _080D6EA8 @ =gSprites - ldr r1, _080D6EAC @ =gUnknown_2023D44 + ldr r1, _080D6EAC @ =gBattlerSpriteIds ldr r5, _080D6EB0 @ =gActiveBattler ldrb r0, [r5] adds r0, r1 @@ -5453,7 +5453,7 @@ _080D6E86: .align 2, 0 _080D6EA4: .4byte gUnknown_8239FD4 _080D6EA8: .4byte gSprites -_080D6EAC: .4byte gUnknown_2023D44 +_080D6EAC: .4byte gBattlerSpriteIds _080D6EB0: .4byte gActiveBattler _080D6EB4: .4byte sub_80D6ED0 _080D6EB8: .4byte gTasks @@ -5781,7 +5781,7 @@ LinkPartnerHandleSpriteInvisibility: @ 80D7144 cmp r0, 0 beq _080D718A ldr r3, _080D7198 @ =gSprites - ldr r0, _080D719C @ =gUnknown_2023D44 + ldr r0, _080D719C @ =gBattlerSpriteIds ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -5814,7 +5814,7 @@ _080D718A: .align 2, 0 _080D7194: .4byte gActiveBattler _080D7198: .4byte gSprites -_080D719C: .4byte gUnknown_2023D44 +_080D719C: .4byte gBattlerSpriteIds _080D71A0: .4byte gUnknown_2022BC4 thumb_func_end LinkPartnerHandleSpriteInvisibility @@ -5890,7 +5890,7 @@ sub_80D7218: @ 80D7218 thumb_func_start LinkPartnerHandlecmd55 LinkPartnerHandlecmd55: @ 80D7224 push {r4,lr} - ldr r2, _080D725C @ =gUnknown_2023E8A + ldr r2, _080D725C @ =gBattleOutcome ldr r1, _080D7260 @ =gUnknown_2022BC4 ldr r4, _080D7264 @ =gActiveBattler ldrb r0, [r4] @@ -5914,7 +5914,7 @@ LinkPartnerHandlecmd55: @ 80D7224 pop {r0} bx r0 .align 2, 0 -_080D725C: .4byte gUnknown_2023E8A +_080D725C: .4byte gBattleOutcome _080D7260: .4byte gUnknown_2022BC4 _080D7264: .4byte gActiveBattler _080D7268: .4byte gUnknown_3004FE0 diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s index 29ae446f6..9f878733e 100644 --- a/asm/battle_controller_oak.s +++ b/asm/battle_controller_oak.s @@ -308,7 +308,7 @@ _080E77AC: bhi _080E7838 adds r0, r5, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem _080E780A: movs r0, 0x5 bl PlaySE @@ -422,7 +422,7 @@ _080E78D8: sub_80E78E0: @ 80E78E0 push {lr} ldr r2, _080E7908 @ =gSprites - ldr r1, _080E790C @ =gUnknown_2023D44 + ldr r1, _080E790C @ =gBattlerSpriteIds ldr r0, _080E7910 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -442,7 +442,7 @@ _080E7904: bx r0 .align 2, 0 _080E7908: .4byte gSprites -_080E790C: .4byte gUnknown_2023D44 +_080E790C: .4byte gBattlerSpriteIds _080E7910: .4byte gActiveBattler _080E7914: .4byte SpriteCallbackDummy thumb_func_end sub_80E78E0 @@ -1653,7 +1653,7 @@ _080E82F0: .4byte sub_80E8930 sub_80E82F4: @ 80E82F4 push {r4-r6,lr} ldr r6, _080E834C @ =gSprites - ldr r5, _080E8350 @ =gUnknown_2023D44 + ldr r5, _080E8350 @ =gBattlerSpriteIds ldr r4, _080E8354 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -1693,7 +1693,7 @@ _080E8344: bx r0 .align 2, 0 _080E834C: .4byte gSprites -_080E8350: .4byte gUnknown_2023D44 +_080E8350: .4byte gBattlerSpriteIds _080E8354: .4byte gActiveBattler _080E8358: .4byte gUnknown_3004FF0 thumb_func_end sub_80E82F4 @@ -2432,7 +2432,7 @@ _080E8942: thumb_func_start DoHitAnimBlinkSpriteEffect_3 DoHitAnimBlinkSpriteEffect_3: @ 80E8948 push {r4,lr} - ldr r1, _080E8984 @ =gUnknown_2023D44 + ldr r1, _080E8984 @ =gBattlerSpriteIds ldr r0, _080E8988 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -2460,7 +2460,7 @@ DoHitAnimBlinkSpriteEffect_3: @ 80E8948 bl WallyBufferExecCompleted b _080E89BE .align 2, 0 -_080E8984: .4byte gUnknown_2023D44 +_080E8984: .4byte gBattlerSpriteIds _080E8988: .4byte gActiveBattler _080E898C: .4byte gSprites _080E8990: .4byte gUnknown_2024005 @@ -2510,7 +2510,7 @@ sub_80E89C4: @ 80E89C4 ands r0, r1 cmp r0, 0 bne _080E8A18 - ldr r5, _080E8A28 @ =gUnknown_2023D44 + ldr r5, _080E8A28 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -2540,7 +2540,7 @@ _080E8A18: .align 2, 0 _080E8A20: .4byte gUnknown_2024018 _080E8A24: .4byte gActiveBattler -_080E8A28: .4byte gUnknown_2023D44 +_080E8A28: .4byte gBattlerSpriteIds _080E8A2C: .4byte gSprites _080E8A30: .4byte gUnknown_3004FF0 thumb_func_end sub_80E89C4 @@ -2549,7 +2549,7 @@ _080E8A30: .4byte gUnknown_3004FF0 sub_80E8A34: @ 80E8A34 push {lr} ldr r2, _080E8A5C @ =gSprites - ldr r1, _080E8A60 @ =gUnknown_2023D44 + ldr r1, _080E8A60 @ =gBattlerSpriteIds ldr r0, _080E8A64 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -2569,7 +2569,7 @@ _080E8A58: bx r0 .align 2, 0 _080E8A5C: .4byte gSprites -_080E8A60: .4byte gUnknown_2023D44 +_080E8A60: .4byte gBattlerSpriteIds _080E8A64: .4byte gActiveBattler _080E8A68: .4byte SpriteCallbackDummy thumb_func_end sub_80E8A34 @@ -4919,7 +4919,7 @@ _080E9E18: .4byte gActiveBattler _080E9E1C: .4byte gUnknown_3004FE0 _080E9E20: .4byte sub_80E89C4 _080E9E24: - ldr r5, _080E9E60 @ =gUnknown_2023D44 + ldr r5, _080E9E60 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -4947,7 +4947,7 @@ _080E9E5A: pop {r0} bx r0 .align 2, 0 -_080E9E60: .4byte gUnknown_2023D44 +_080E9E60: .4byte gBattlerSpriteIds _080E9E64: .4byte gSprites _080E9E68: .4byte gUnknown_3004FF0 thumb_func_end WallyHandleReturnMonToBall @@ -4993,7 +4993,7 @@ sub_80E9E6C: @ 80E9E6C movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r2, _080E9EDC @ =gUnknown_2023D44 + ldr r2, _080E9EDC @ =gBattlerSpriteIds ldrb r1, [r6] b _080E9F1C .align 2, 0 @@ -5002,7 +5002,7 @@ _080E9ECC: .4byte gSaveBlock2Ptr _080E9ED0: .4byte gActiveBattler _080E9ED4: .4byte gMultiuseSpriteTemplate _080E9ED8: .4byte gUnknown_8239F8C -_080E9EDC: .4byte gUnknown_2023D44 +_080E9EDC: .4byte gBattlerSpriteIds _080E9EE0: ldr r4, _080E9F8C @ =gActiveBattler ldrb r1, [r4] @@ -5028,13 +5028,13 @@ _080E9EE0: movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r2, _080E9F98 @ =gUnknown_2023D44 + ldr r2, _080E9F98 @ =gBattlerSpriteIds ldrb r1, [r4] _080E9F1C: adds r1, r2 strb r0, [r1] ldr r4, _080E9F9C @ =gSprites - ldr r5, _080E9F98 @ =gUnknown_2023D44 + ldr r5, _080E9F98 @ =gBattlerSpriteIds ldr r6, _080E9F8C @ =gActiveBattler ldrb r3, [r6] adds r0, r3, r5 @@ -5090,7 +5090,7 @@ _080E9F1C: _080E9F8C: .4byte gActiveBattler _080E9F90: .4byte gMultiuseSpriteTemplate _080E9F94: .4byte gUnknown_8239F8C -_080E9F98: .4byte gUnknown_2023D44 +_080E9F98: .4byte gBattlerSpriteIds _080E9F9C: .4byte gSprites _080E9FA0: .4byte 0x0000fffe _080E9FA4: .4byte sub_8033EEC @@ -5139,7 +5139,7 @@ sub_80E9FB0: @ 80E9FB0 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r2, _080EA020 @ =gUnknown_2023D44 + ldr r2, _080EA020 @ =gBattlerSpriteIds ldrb r1, [r6] b _080EA060 .align 2, 0 @@ -5148,7 +5148,7 @@ _080EA010: .4byte gSaveBlock2Ptr _080EA014: .4byte gActiveBattler _080EA018: .4byte gMultiuseSpriteTemplate _080EA01C: .4byte gUnknown_8239F8C -_080EA020: .4byte gUnknown_2023D44 +_080EA020: .4byte gBattlerSpriteIds _080EA024: ldr r4, _080EA0D0 @ =gActiveBattler ldrb r1, [r4] @@ -5174,13 +5174,13 @@ _080EA024: movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r2, _080EA0DC @ =gUnknown_2023D44 + ldr r2, _080EA0DC @ =gBattlerSpriteIds ldrb r1, [r4] _080EA060: adds r1, r2 strb r0, [r1] ldr r4, _080EA0E0 @ =gSprites - ldr r5, _080EA0DC @ =gUnknown_2023D44 + ldr r5, _080EA0DC @ =gBattlerSpriteIds ldr r6, _080EA0D0 @ =gActiveBattler ldrb r3, [r6] adds r0, r3, r5 @@ -5236,7 +5236,7 @@ _080EA060: _080EA0D0: .4byte gActiveBattler _080EA0D4: .4byte gMultiuseSpriteTemplate _080EA0D8: .4byte gUnknown_8239F8C -_080EA0DC: .4byte gUnknown_2023D44 +_080EA0DC: .4byte gBattlerSpriteIds _080EA0E0: .4byte gSprites _080EA0E4: .4byte 0x0000ffa0 _080EA0E8: .4byte sub_8033EEC @@ -5318,7 +5318,7 @@ _080EA154: movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _080EA1D8 @ =gSprites - ldr r3, _080EA1DC @ =gUnknown_2023D44 + ldr r3, _080EA1DC @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -5360,7 +5360,7 @@ _080EA1CA: _080EA1D0: .4byte gBattlerPartyIndexes _080EA1D4: .4byte gPlayerParty _080EA1D8: .4byte gSprites -_080EA1DC: .4byte gUnknown_2023D44 +_080EA1DC: .4byte gBattlerSpriteIds _080EA1E0: .4byte sub_8012110 _080EA1E4: .4byte gUnknown_3004FE0 _080EA1E8: .4byte sub_80E82F4 @@ -5483,7 +5483,7 @@ sub_80EA2B8: @ 80EA2B8 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _080EA394 @ =gUnknown_2037F16 + ldr r5, _080EA394 @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -5551,7 +5551,7 @@ sub_80EA2B8: @ 80EA2B8 lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _080EA3A8 @ =gUnknown_2037EE4 + ldr r3, _080EA3A8 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -5575,12 +5575,12 @@ sub_80EA2B8: @ 80EA2B8 .align 2, 0 _080EA38C: .4byte gUnknown_2022BC4 _080EA390: .4byte gActiveBattler -_080EA394: .4byte gUnknown_2037F16 +_080EA394: .4byte gAnimMoveTurn _080EA398: .4byte gUnknown_2037EEC _080EA39C: .4byte gUnknown_2037EE8 _080EA3A0: .4byte gUnknown_2037EFE _080EA3A4: .4byte gUnknown_2037F00 -_080EA3A8: .4byte gUnknown_2037EE4 +_080EA3A8: .4byte gAnimDisableStructPtr _080EA3AC: .4byte gUnknown_2024008 _080EA3B0: ldr r0, _080EA3D4 @ =gUnknown_2024018 @@ -5776,10 +5776,10 @@ _080EA520: thumb_func_start sub_80EA52C sub_80EA52C: @ 80EA52C push {r4,lr} - ldr r0, _080EA55C @ =gUnknown_2022974 + ldr r0, _080EA55C @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080EA560 @ =gUnknown_2022976 + ldr r0, _080EA560 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _080EA564 @ =gActiveBattler ldrb r0, [r0] @@ -5799,8 +5799,8 @@ sub_80EA52C: @ 80EA52C bl WallyBufferExecCompleted b _080EA65A .align 2, 0 -_080EA55C: .4byte gUnknown_2022974 -_080EA560: .4byte gUnknown_2022976 +_080EA55C: .4byte gBattle_BG0_X +_080EA560: .4byte gBattle_BG0_Y _080EA564: .4byte gActiveBattler _080EA568: .4byte gUnknown_2022BC6 _080EA56C: .4byte gBattleTypeFlags @@ -5951,9 +5951,9 @@ sub_80EA690: @ 80EA690 lsrs r1, r0, 24 cmp r1, 0 bne _080EA6EA - ldr r0, _080EA6C4 @ =gUnknown_2022974 + ldr r0, _080EA6C4 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _080EA6C8 @ =gUnknown_2022976 + ldr r1, _080EA6C8 @ =gBattle_BG0_Y movs r0, 0xA0 strh r0, [r1] ldr r0, _080EA6CC @ =gBattleTypeFlags @@ -5970,8 +5970,8 @@ sub_80EA690: @ 80EA690 ldr r1, _080EA6D8 @ =sub_80E763C b _080EA6E8 .align 2, 0 -_080EA6C4: .4byte gUnknown_2022974 -_080EA6C8: .4byte gUnknown_2022976 +_080EA6C4: .4byte gBattle_BG0_X +_080EA6C8: .4byte gBattle_BG0_Y _080EA6CC: .4byte gBattleTypeFlags _080EA6D0: .4byte gUnknown_3004FE0 _080EA6D4: .4byte gActiveBattler @@ -6074,9 +6074,9 @@ sub_80EA798: @ 80EA798 lsrs r1, r0, 24 cmp r1, 0 bne _080EA7C2 - ldr r0, _080EA7C8 @ =gUnknown_2022974 + ldr r0, _080EA7C8 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _080EA7CC @ =gUnknown_2022976 + ldr r1, _080EA7CC @ =gBattle_BG0_Y movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 @@ -6092,8 +6092,8 @@ _080EA7C2: pop {r0} bx r0 .align 2, 0 -_080EA7C8: .4byte gUnknown_2022974 -_080EA7CC: .4byte gUnknown_2022976 +_080EA7C8: .4byte gBattle_BG0_X +_080EA7CC: .4byte gBattle_BG0_Y _080EA7D0: .4byte gUnknown_3004FE0 _080EA7D4: .4byte gActiveBattler _080EA7D8: .4byte sub_80E7988 @@ -6641,7 +6641,7 @@ sub_80EABFC: @ 80EABFC sub_80EAC08: @ 80EAC08 push {r4,lr} ldr r3, _080EAC30 @ =gSprites - ldr r2, _080EAC34 @ =gUnknown_2023D44 + ldr r2, _080EAC34 @ =gBattlerSpriteIds ldr r4, _080EAC38 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -6659,7 +6659,7 @@ sub_80EAC08: @ 80EAC08 b _080EAC66 .align 2, 0 _080EAC30: .4byte gSprites -_080EAC34: .4byte gUnknown_2023D44 +_080EAC34: .4byte gBattlerSpriteIds _080EAC38: .4byte gActiveBattler _080EAC3C: ldr r1, _080EAC6C @ =gUnknown_2024005 @@ -6812,7 +6812,7 @@ sub_80EAD54: @ 80EAD54 bne _080EAD64 b _080EAEE4 _080EAD64: - ldr r6, _080EAEA4 @ =gUnknown_2023D44 + ldr r6, _080EAEA4 @ =gBattlerSpriteIds ldr r7, _080EAEA8 @ =gActiveBattler ldrb r0, [r7] adds r0, r6 @@ -6966,7 +6966,7 @@ _080EAE84: b _080EAF18 .align 2, 0 _080EAEA0: .4byte gBattleTypeFlags -_080EAEA4: .4byte gUnknown_2023D44 +_080EAEA4: .4byte gBattlerSpriteIds _080EAEA8: .4byte gActiveBattler _080EAEAC: .4byte gSprites _080EAEB0: .4byte 0x0000ffd8 @@ -7071,7 +7071,7 @@ sub_80EAF34: @ 80EAF34 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080EB094 @ =gMultiuseSpriteTemplate mov r10, r0 adds r0, r6, 0 @@ -7094,7 +7094,7 @@ sub_80EAF34: @ 80EAF34 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _080EB098 @ =gUnknown_2023D44 + ldr r4, _080EB098 @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _080EB09C @ =gSprites @@ -7185,7 +7185,7 @@ _080EB088: .4byte gPlayerParty _080EB08C: .4byte sub_8033E3C _080EB090: .4byte gUnknown_3004FFC _080EB094: .4byte gMultiuseSpriteTemplate -_080EB098: .4byte gUnknown_2023D44 +_080EB098: .4byte gBattlerSpriteIds _080EB09C: .4byte gSprites _080EB0A0: .4byte gBattleMonForms _080EB0A4: .4byte SpriteCallbackDummy @@ -7435,7 +7435,7 @@ sub_80EB274: @ 80EB274 thumb_func_start sub_80EB280 sub_80EB280: @ 80EB280 push {r4,lr} - ldr r2, _080EB2C4 @ =gUnknown_2023E8A + ldr r2, _080EB2C4 @ =gBattleOutcome ldr r1, _080EB2C8 @ =gUnknown_2022BC4 ldr r4, _080EB2CC @ =gActiveBattler ldrb r0, [r4] @@ -7466,7 +7466,7 @@ _080EB2BC: pop {r0} bx r0 .align 2, 0 -_080EB2C4: .4byte gUnknown_2023E8A +_080EB2C4: .4byte gBattleOutcome _080EB2C8: .4byte gUnknown_2022BC4 _080EB2CC: .4byte gActiveBattler _080EB2D0: .4byte gBattleTypeFlags diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 0405efdf1..0c94035ee 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -70,7 +70,7 @@ _08035AE4: sub_8035AE8: @ 8035AE8 push {lr} ldr r2, _08035B10 @ =gSprites - ldr r1, _08035B14 @ =gUnknown_2023D44 + ldr r1, _08035B14 @ =gBattlerSpriteIds ldr r0, _08035B18 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -90,7 +90,7 @@ _08035B0C: bx r0 .align 2, 0 _08035B10: .4byte gSprites -_08035B14: .4byte gUnknown_2023D44 +_08035B14: .4byte gBattlerSpriteIds _08035B18: .4byte gActiveBattler _08035B1C: .4byte SpriteCallbackDummy thumb_func_end sub_8035AE8 @@ -99,7 +99,7 @@ _08035B1C: .4byte SpriteCallbackDummy sub_8035B20: @ 8035B20 push {lr} ldr r2, _08035B48 @ =gSprites - ldr r1, _08035B4C @ =gUnknown_2023D44 + ldr r1, _08035B4C @ =gBattlerSpriteIds ldr r0, _08035B50 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -119,7 +119,7 @@ _08035B44: bx r0 .align 2, 0 _08035B48: .4byte gSprites -_08035B4C: .4byte gUnknown_2023D44 +_08035B4C: .4byte gBattlerSpriteIds _08035B50: .4byte gActiveBattler _08035B54: .4byte SpriteCallbackDummy thumb_func_end sub_8035B20 @@ -128,7 +128,7 @@ _08035B54: .4byte SpriteCallbackDummy sub_8035B58: @ 8035B58 push {r4-r6,lr} ldr r4, _08035BD0 @ =gSprites - ldr r6, _08035BD4 @ =gUnknown_2023D44 + ldr r6, _08035BD4 @ =gBattlerSpriteIds ldr r5, _08035BD8 @ =gActiveBattler ldrb r0, [r5] adds r0, r6 @@ -184,7 +184,7 @@ _08035BC8: bx r0 .align 2, 0 _08035BD0: .4byte gSprites -_08035BD4: .4byte gUnknown_2023D44 +_08035BD4: .4byte gBattlerSpriteIds _08035BD8: .4byte gActiveBattler _08035BDC: .4byte SpriteCallbackDummy _08035BE0: .4byte 0x000003ff @@ -685,7 +685,7 @@ _08035FE4: .4byte sub_8035C30 sub_8035FE8: @ 8035FE8 push {r4-r7,lr} ldr r2, _08036044 @ =gSprites - ldr r0, _08036048 @ =gUnknown_2023D44 + ldr r0, _08036048 @ =gBattlerSpriteIds ldr r7, _0803604C @ =gActiveBattler ldrb r3, [r7] adds r0, r3, r0 @@ -729,7 +729,7 @@ sub_8035FE8: @ 8035FE8 b _08036094 .align 2, 0 _08036044: .4byte gSprites -_08036048: .4byte gUnknown_2023D44 +_08036048: .4byte gBattlerSpriteIds _0803604C: .4byte gActiveBattler _08036050: .4byte gUnknown_2024018 _08036054: .4byte gBattlerPartyIndexes @@ -838,7 +838,7 @@ _08036124: sub_803612C: @ 803612C push {lr} ldr r2, _08036160 @ =gSprites - ldr r0, _08036164 @ =gUnknown_2023D44 + ldr r0, _08036164 @ =gBattlerSpriteIds ldr r1, _08036168 @ =gActiveBattler ldrb r3, [r1] adds r0, r3, r0 @@ -862,7 +862,7 @@ _0803615A: bx r0 .align 2, 0 _08036160: .4byte gSprites -_08036164: .4byte gUnknown_2023D44 +_08036164: .4byte gBattlerSpriteIds _08036168: .4byte gActiveBattler _0803616C: .4byte gUnknown_3004FF0 thumb_func_end sub_803612C @@ -884,7 +884,7 @@ sub_8036170: @ 8036170 ands r0, r1 cmp r0, 0 bne _080361CA - ldr r5, _080361D8 @ =gUnknown_2023D44 + ldr r5, _080361D8 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -916,7 +916,7 @@ _080361CA: .align 2, 0 _080361D0: .4byte gUnknown_2024018 _080361D4: .4byte gActiveBattler -_080361D8: .4byte gUnknown_2023D44 +_080361D8: .4byte gBattlerSpriteIds _080361DC: .4byte gSprites _080361E0: .4byte gUnknown_3004FF0 thumb_func_end sub_8036170 @@ -938,7 +938,7 @@ _080361F6: thumb_func_start sub_80361FC sub_80361FC: @ 80361FC push {r4,lr} - ldr r1, _08036238 @ =gUnknown_2023D44 + ldr r1, _08036238 @ =gBattlerSpriteIds ldr r0, _0803623C @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -966,7 +966,7 @@ sub_80361FC: @ 80361FC bl OpponentBufferExecCompleted b _08036272 .align 2, 0 -_08036238: .4byte gUnknown_2023D44 +_08036238: .4byte gBattlerSpriteIds _0803623C: .4byte gActiveBattler _08036240: .4byte gSprites _08036244: .4byte gUnknown_2024005 @@ -1128,7 +1128,7 @@ sub_8036334: @ 8036334 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag - ldr r1, _080363EC @ =gUnknown_2023D44 + ldr r1, _080363EC @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -1175,7 +1175,7 @@ _080363D8: _080363E0: .4byte gUnknown_2024018 _080363E4: .4byte gActiveBattler _080363E8: .4byte 0x000027f9 -_080363EC: .4byte gUnknown_2023D44 +_080363EC: .4byte gBattlerSpriteIds _080363F0: .4byte gSprites _080363F4: .4byte gUnknown_3004FF0 _080363F8: .4byte gBattlerPartyIndexes @@ -3649,7 +3649,7 @@ _080378AA: lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r6, _080379A0 @ =gMultiuseSpriteTemplate ldrb r0, [r7] movs r1, 0x2 @@ -3666,7 +3666,7 @@ _080378AA: adds r1, r4, 0 adds r2, r5, 0 bl CreateSprite - ldr r4, _080379A4 @ =gUnknown_2023D44 + ldr r4, _080379A4 @ =gBattlerSpriteIds ldrb r1, [r7] adds r1, r4 strb r0, [r1] @@ -3759,7 +3759,7 @@ _08037986: .align 2, 0 _0803799C: .4byte gActiveBattler _080379A0: .4byte gMultiuseSpriteTemplate -_080379A4: .4byte gUnknown_2023D44 +_080379A4: .4byte gBattlerSpriteIds _080379A8: .4byte gSprites _080379AC: .4byte 0x0000ff10 _080379B0: .4byte gBattleMonForms @@ -3872,7 +3872,7 @@ sub_8037A28: @ 8037A28 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _08037B98 @ =gMultiuseSpriteTemplate mov r9, r0 adds r0, r6, 0 @@ -3895,7 +3895,7 @@ sub_8037A28: @ 8037A28 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _08037B9C @ =gUnknown_2023D44 + ldr r4, _08037B9C @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _08037BA0 @ =gSprites @@ -3985,7 +3985,7 @@ _08037B8C: .4byte gEnemyParty _08037B90: .4byte sub_8033E3C _08037B94: .4byte gUnknown_3004FFC _08037B98: .4byte gMultiuseSpriteTemplate -_08037B9C: .4byte gUnknown_2023D44 +_08037B9C: .4byte gBattlerSpriteIds _08037BA0: .4byte gSprites _08037BA4: .4byte gBattleMonForms _08037BA8: .4byte SpriteCallbackDummy @@ -4025,7 +4025,7 @@ _08037BE8: .4byte gUnknown_2024018 _08037BEC: .4byte gUnknown_3004FE0 _08037BF0: .4byte sub_8037C44 _08037BF4: - ldr r5, _08037C38 @ =gUnknown_2023D44 + ldr r5, _08037C38 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -4055,7 +4055,7 @@ _08037C30: pop {r0} bx r0 .align 2, 0 -_08037C38: .4byte gUnknown_2023D44 +_08037C38: .4byte gBattlerSpriteIds _08037C3C: .4byte gSprites _08037C40: .4byte gUnknown_3004FF0 thumb_func_end sub_8037BAC @@ -4227,7 +4227,7 @@ _08037D3A: movs r1, 0xB0 adds r2, r4, 0 bl CreateSprite - ldr r5, _08037E7C @ =gUnknown_2023D44 + ldr r5, _08037E7C @ =gBattlerSpriteIds mov r2, r8 ldrb r1, [r2] adds r1, r5 @@ -4251,7 +4251,7 @@ _08037D3A: adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] - ldr r0, _08037E88 @ =gUnknown_8239A1C + ldr r0, _08037E88 @ =gTrainerFrontPicPaletteTable mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 @@ -4283,7 +4283,7 @@ _08037D3A: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _08037E8C @ =gUnknown_823957C + ldr r0, _08037E8C @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag @@ -4341,11 +4341,11 @@ _08037E6C: .4byte gTrainers _08037E70: .4byte gActiveBattler _08037E74: .4byte gMultiuseSpriteTemplate _08037E78: .4byte gUnknown_823932C -_08037E7C: .4byte gUnknown_2023D44 +_08037E7C: .4byte gBattlerSpriteIds _08037E80: .4byte gSprites _08037E84: .4byte 0x0000ff10 -_08037E88: .4byte gUnknown_8239A1C -_08037E8C: .4byte gUnknown_823957C +_08037E88: .4byte gTrainerFrontPicPaletteTable +_08037E8C: .4byte gTrainerFrontPicTable _08037E90: .4byte 0x000003ff _08037E94: .4byte 0xfffffc00 _08037E98: .4byte sub_8033EEC @@ -4439,7 +4439,7 @@ _08037F0E: movs r1, 0xB0 movs r3, 0x1E bl CreateSprite - ldr r5, _08038050 @ =gUnknown_2023D44 + ldr r5, _08038050 @ =gBattlerSpriteIds mov r2, r8 ldrb r1, [r2] adds r1, r5 @@ -4473,7 +4473,7 @@ _08037F0E: adds r0, r4 ldr r1, _08038058 @ =0x0000fffe strh r1, [r0, 0x2E] - ldr r0, _0803805C @ =gUnknown_8239A1C + ldr r0, _0803805C @ =gTrainerFrontPicPaletteTable mov r3, r9 lsls r6, r3, 3 adds r0, r6, r0 @@ -4505,7 +4505,7 @@ _08037F0E: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _08038060 @ =gUnknown_823957C + ldr r0, _08038060 @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag @@ -4561,11 +4561,11 @@ _08038040: .4byte gTrainers _08038044: .4byte gActiveBattler _08038048: .4byte gMultiuseSpriteTemplate _0803804C: .4byte gUnknown_823932C -_08038050: .4byte gUnknown_2023D44 +_08038050: .4byte gBattlerSpriteIds _08038054: .4byte gSprites _08038058: .4byte 0x0000fffe -_0803805C: .4byte gUnknown_8239A1C -_08038060: .4byte gUnknown_823957C +_0803805C: .4byte gTrainerFrontPicPaletteTable +_08038060: .4byte gTrainerFrontPicTable _08038064: .4byte 0x000003ff _08038068: .4byte 0xfffffc00 _0803806C: .4byte sub_8033EEC @@ -4576,7 +4576,7 @@ _08038074: .4byte sub_8035B20 thumb_func_start sub_8038078 sub_8038078: @ 8038078 push {r4-r6,lr} - ldr r6, _08038108 @ =gUnknown_2023D44 + ldr r6, _08038108 @ =gBattlerSpriteIds ldr r4, _0803810C @ =gActiveBattler ldrb r0, [r4] adds r0, r6 @@ -4645,7 +4645,7 @@ sub_8038078: @ 8038078 pop {r0} bx r0 .align 2, 0 -_08038108: .4byte gUnknown_2023D44 +_08038108: .4byte gBattlerSpriteIds _0803810C: .4byte gActiveBattler _08038110: .4byte gSprites _08038114: .4byte sub_8075590 @@ -4709,7 +4709,7 @@ _08038178: movs r1, 0x3F bl PlaySE12WithPanning ldr r2, _080381BC @ =gSprites - ldr r1, _080381C0 @ =gUnknown_2023D44 + ldr r1, _080381C0 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -4732,7 +4732,7 @@ _080381B4: bx r0 .align 2, 0 _080381BC: .4byte gSprites -_080381C0: .4byte gUnknown_2023D44 +_080381C0: .4byte gBattlerSpriteIds _080381C4: .4byte sub_8011EA0 _080381C8: .4byte gUnknown_3004FE0 _080381CC: .4byte sub_803612C @@ -4794,7 +4794,7 @@ _08038212: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _080382EC @ =gUnknown_2037F16 + ldr r5, _080382EC @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -4862,7 +4862,7 @@ _08038212: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _08038300 @ =gUnknown_2037EE4 + ldr r3, _08038300 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4886,12 +4886,12 @@ _08038212: .align 2, 0 _080382E4: .4byte gActiveBattler _080382E8: .4byte gUnknown_2022BC4 -_080382EC: .4byte gUnknown_2037F16 +_080382EC: .4byte gAnimMoveTurn _080382F0: .4byte gUnknown_2037EEC _080382F4: .4byte gUnknown_2037EE8 _080382F8: .4byte gUnknown_2037EFE _080382FC: .4byte gUnknown_2037F00 -_08038300: .4byte gUnknown_2037EE4 +_08038300: .4byte gAnimDisableStructPtr _08038304: .4byte gUnknown_2024008 _08038308: ldr r0, _0803832C @ =gUnknown_2024018 @@ -5113,10 +5113,10 @@ _080384AC: thumb_func_start sub_80384BC sub_80384BC: @ 80384BC push {r4,lr} - ldr r0, _080384F0 @ =gUnknown_2022974 + ldr r0, _080384F0 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080384F4 @ =gUnknown_2022976 + ldr r0, _080384F4 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _080384F8 @ =gActiveBattler ldrb r0, [r0] @@ -5135,8 +5135,8 @@ sub_80384BC: @ 80384BC bl sub_80D87BC b _0803850C .align 2, 0 -_080384F0: .4byte gUnknown_2022974 -_080384F4: .4byte gUnknown_2022976 +_080384F0: .4byte gBattle_BG0_X +_080384F4: .4byte gBattle_BG0_Y _080384F8: .4byte gActiveBattler _080384FC: .4byte gUnknown_2022BC6 _08038500: .4byte gDisplayedStringBattle @@ -5926,7 +5926,7 @@ _08038B1C: .4byte gUnknown_2022870 OpponentHandleHitAnimation: @ 8038B20 push {r4,lr} ldr r3, _08038B48 @ =gSprites - ldr r2, _08038B4C @ =gUnknown_2023D44 + ldr r2, _08038B4C @ =gBattlerSpriteIds ldr r4, _08038B50 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -5944,7 +5944,7 @@ OpponentHandleHitAnimation: @ 8038B20 b _08038B7E .align 2, 0 _08038B48: .4byte gSprites -_08038B4C: .4byte gUnknown_2023D44 +_08038B4C: .4byte gBattlerSpriteIds _08038B50: .4byte gActiveBattler _08038B54: ldr r1, _08038B84 @ =gUnknown_2024005 @@ -6101,7 +6101,7 @@ _08038C7C: .4byte gUnknown_2023F4C thumb_func_start sub_8038C80 sub_8038C80: @ 8038C80 push {r4-r6,lr} - ldr r5, _08038D60 @ =gUnknown_2023D44 + ldr r5, _08038D60 @ =gBattlerSpriteIds ldr r6, _08038D64 @ =gActiveBattler ldrb r0, [r6] adds r0, r5 @@ -6211,7 +6211,7 @@ _08038D42: pop {r0} bx r0 .align 2, 0 -_08038D60: .4byte gUnknown_2023D44 +_08038D60: .4byte gBattlerSpriteIds _08038D64: .4byte gActiveBattler _08038D68: .4byte gSprites _08038D6C: .4byte sub_8075590 @@ -6589,7 +6589,7 @@ sub_8039060: @ 8039060 cmp r0, 0 beq _080390A6 ldr r3, _080390B4 @ =gSprites - ldr r0, _080390B8 @ =gUnknown_2023D44 + ldr r0, _080390B8 @ =gBattlerSpriteIds ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -6622,7 +6622,7 @@ _080390A6: .align 2, 0 _080390B0: .4byte gActiveBattler _080390B4: .4byte gSprites -_080390B8: .4byte gUnknown_2023D44 +_080390B8: .4byte gBattlerSpriteIds _080390BC: .4byte gUnknown_2022BC4 thumb_func_end sub_8039060 diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 4db1f94c3..2a2419a7b 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -131,7 +131,7 @@ _0802E400: CompleteOnBankSpritePosX_0: @ 802E404 push {lr} ldr r2, _0802E42C @ =gSprites - ldr r1, _0802E430 @ =gUnknown_2023D44 + ldr r1, _0802E430 @ =gBattlerSpriteIds ldr r0, _0802E434 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -150,7 +150,7 @@ _0802E426: bx r0 .align 2, 0 _0802E42C: .4byte gSprites -_0802E430: .4byte gUnknown_2023D44 +_0802E430: .4byte gBattlerSpriteIds _0802E434: .4byte gActiveBattler thumb_func_end CompleteOnBankSpritePosX_0 @@ -381,7 +381,7 @@ _0802E5A8: bhi _0802E634 adds r0, r5, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem _0802E606: movs r0, 0x5 bl PlaySE @@ -480,7 +480,7 @@ _0802E6B6: movs r0, 0x5 bl PlaySE ldr r2, _0802E718 @ =gSprites - ldr r1, _0802E71C @ =gUnknown_2023D44 + ldr r1, _0802E71C @ =gBattlerSpriteIds ldr r4, _0802E70C @ =gUnknown_3004FF4 ldrb r0, [r4] adds r0, r1 @@ -514,7 +514,7 @@ _0802E70C: .4byte gUnknown_3004FF4 _0802E710: .4byte gBattlersCount _0802E714: .4byte gMain _0802E718: .4byte gSprites -_0802E71C: .4byte gUnknown_2023D44 +_0802E71C: .4byte gBattlerSpriteIds _0802E720: .4byte sub_8012098 _0802E724: .4byte gUnknown_2023FFC _0802E728: .4byte gActiveBattler @@ -526,7 +526,7 @@ _0802E72C: movs r0, 0x5 bl PlaySE ldr r2, _0802E784 @ =gSprites - ldr r1, _0802E788 @ =gUnknown_2023D44 + ldr r1, _0802E788 @ =gBattlerSpriteIds ldr r5, _0802E78C @ =gUnknown_3004FF4 ldrb r0, [r5] adds r0, r1 @@ -561,7 +561,7 @@ _0802E72C: b _0802E9DC .align 2, 0 _0802E784: .4byte gSprites -_0802E788: .4byte gUnknown_2023D44 +_0802E788: .4byte gBattlerSpriteIds _0802E78C: .4byte gUnknown_3004FF4 _0802E790: .4byte sub_8012098 _0802E794: .4byte gUnknown_3004FE0 @@ -577,7 +577,7 @@ _0802E7AA: movs r0, 0x5 bl PlaySE ldr r2, _0802E7DC @ =gSprites - ldr r1, _0802E7E0 @ =gUnknown_2023D44 + ldr r1, _0802E7E0 @ =gBattlerSpriteIds ldr r3, _0802E7E4 @ =gUnknown_3004FF4 ldrb r0, [r3] adds r0, r1 @@ -600,7 +600,7 @@ _0802E7CC: b _0802E7F6 .align 2, 0 _0802E7DC: .4byte gSprites -_0802E7E0: .4byte gUnknown_2023D44 +_0802E7E0: .4byte gBattlerSpriteIds _0802E7E4: .4byte gUnknown_3004FF4 _0802E7E8: .4byte sub_8012098 _0802E7EC: @@ -718,7 +718,7 @@ _0802E8CE: movs r0, 0x5 bl PlaySE ldr r2, _0802E900 @ =gSprites - ldr r1, _0802E904 @ =gUnknown_2023D44 + ldr r1, _0802E904 @ =gBattlerSpriteIds ldr r3, _0802E908 @ =gUnknown_3004FF4 ldrb r0, [r3] adds r0, r1 @@ -741,7 +741,7 @@ _0802E8F0: b _0802E91A .align 2, 0 _0802E900: .4byte gSprites -_0802E904: .4byte gUnknown_2023D44 +_0802E904: .4byte gBattlerSpriteIds _0802E908: .4byte gUnknown_3004FF4 _0802E90C: .4byte sub_8012098 _0802E910: @@ -841,7 +841,7 @@ _0802E9C0: beq _0802E8F0 _0802E9C4: ldr r2, _0802EA04 @ =gSprites - ldr r1, _0802EA08 @ =gUnknown_2023D44 + ldr r1, _0802EA08 @ =gBattlerSpriteIds ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -867,7 +867,7 @@ _0802E9F8: .4byte gAbsentBattlerFlags _0802E9FC: .4byte gBitTable _0802EA00: .4byte gUnknown_3004FF4 _0802EA04: .4byte gSprites -_0802EA08: .4byte gUnknown_2023D44 +_0802EA08: .4byte gBattlerSpriteIds _0802EA0C: .4byte sub_8012044 thumb_func_end sub_802E674 @@ -1095,7 +1095,7 @@ _0802EBDE: _0802EBE4: strb r0, [r1] ldr r2, _0802EC04 @ =gSprites - ldr r1, _0802EC08 @ =gUnknown_2023D44 + ldr r1, _0802EC08 @ =gBattlerSpriteIds ldr r0, _0802EC00 @ =gUnknown_3004FF4 ldrb r0, [r0] adds r0, r1 @@ -1110,7 +1110,7 @@ _0802EBE4: .align 2, 0 _0802EC00: .4byte gUnknown_3004FF4 _0802EC04: .4byte gSprites -_0802EC08: .4byte gUnknown_2023D44 +_0802EC08: .4byte gBattlerSpriteIds _0802EC0C: .4byte sub_8012044 _0802EC10: movs r7, 0x2 @@ -1354,10 +1354,10 @@ _0802EDF6: beq _0802EE18 movs r0, 0x5 bl PlaySE - ldr r1, _0802EF44 @ =gUnknown_2022974 + ldr r1, _0802EF44 @ =gBattle_BG0_X movs r0, 0 strh r0, [r1] - ldr r1, _0802EF48 @ =gUnknown_2022976 + ldr r1, _0802EF48 @ =gBattle_BG0_Y movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 @@ -1505,8 +1505,8 @@ _0802EF36: bx r1 .align 2, 0 _0802EF40: .4byte gMain -_0802EF44: .4byte gUnknown_2022974 -_0802EF48: .4byte gUnknown_2022976 +_0802EF44: .4byte gBattle_BG0_X +_0802EF48: .4byte gBattle_BG0_Y _0802EF4C: .4byte gUnknown_2023FFC _0802EF50: .4byte gActiveBattler _0802EF54: .4byte gUnknown_3004FF8 @@ -2462,7 +2462,7 @@ _0802F72C: .4byte gUnknown_3004F80 sub_802F730: @ 802F730 push {lr} ldr r2, _0802F758 @ =gSprites - ldr r1, _0802F75C @ =gUnknown_2023D44 + ldr r1, _0802F75C @ =gBattlerSpriteIds ldr r0, _0802F760 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -2482,7 +2482,7 @@ _0802F754: bx r0 .align 2, 0 _0802F758: .4byte gSprites -_0802F75C: .4byte gUnknown_2023D44 +_0802F75C: .4byte gBattlerSpriteIds _0802F760: .4byte gActiveBattler _0802F764: .4byte SpriteCallbackDummy thumb_func_end sub_802F730 @@ -2491,7 +2491,7 @@ _0802F764: .4byte SpriteCallbackDummy sub_802F768: @ 802F768 push {lr} ldr r2, _0802F790 @ =gSprites - ldr r1, _0802F794 @ =gUnknown_2023D44 + ldr r1, _0802F794 @ =gBattlerSpriteIds ldr r0, _0802F798 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -2511,7 +2511,7 @@ _0802F78C: bx r0 .align 2, 0 _0802F790: .4byte gSprites -_0802F794: .4byte gUnknown_2023D44 +_0802F794: .4byte gBattlerSpriteIds _0802F798: .4byte gActiveBattler _0802F79C: .4byte SpriteCallbackDummy thumb_func_end sub_802F768 @@ -2520,7 +2520,7 @@ _0802F79C: .4byte SpriteCallbackDummy sub_802F7A0: @ 802F7A0 push {r4-r6,lr} ldr r6, _0802F7FC @ =gSprites - ldr r5, _0802F800 @ =gUnknown_2023D44 + ldr r5, _0802F800 @ =gBattlerSpriteIds ldr r4, _0802F804 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -2562,7 +2562,7 @@ _0802F7F4: bx r0 .align 2, 0 _0802F7FC: .4byte gSprites -_0802F800: .4byte gUnknown_2023D44 +_0802F800: .4byte gBattlerSpriteIds _0802F804: .4byte gActiveBattler _0802F808: .4byte SpriteCallbackDummy _0802F80C: .4byte gSaveBlock2Ptr @@ -4010,7 +4010,7 @@ sub_80303A8: @ 80303A8 negs r1, r0 orrs r1, r0 lsrs r6, r1, 31 - ldr r0, _08030400 @ =gUnknown_2023D44 + ldr r0, _08030400 @ =gBattlerSpriteIds adds r0, r7, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -4031,7 +4031,7 @@ _080303F0: mov pc, r0 .align 2, 0 _080303FC: .4byte gTasks+0x8 -_08030400: .4byte gUnknown_2023D44 +_08030400: .4byte gBattlerSpriteIds _08030404: .4byte gSprites _08030408: .4byte _0803040C .align 2, 0 @@ -4051,19 +4051,19 @@ _08030428: bne _0803051C cmp r6, 0 bne _0803044C - ldr r1, _08030444 @ =gUnknown_2022978 + ldr r1, _08030444 @ =gBattle_BG1_X ldrh r0, [r1] strh r0, [r5, 0x1C] - ldr r2, _08030448 @ =gUnknown_202297A + ldr r2, _08030448 @ =gBattle_BG1_Y b _08030454 .align 2, 0 -_08030444: .4byte gUnknown_2022978 -_08030448: .4byte gUnknown_202297A +_08030444: .4byte gBattle_BG1_X +_08030448: .4byte gBattle_BG1_Y _0803044C: - ldr r1, _08030474 @ =gUnknown_202297C + ldr r1, _08030474 @ =gBattle_BG2_X ldrh r0, [r1] strh r0, [r5, 0x1C] - ldr r2, _08030478 @ =gUnknown_202297E + ldr r2, _08030478 @ =gBattle_BG2_Y _08030454: ldrh r0, [r2] strh r0, [r5, 0x1A] @@ -4081,8 +4081,8 @@ _08030454: strh r0, [r2] b _080304E0 .align 2, 0 -_08030474: .4byte gUnknown_202297C -_08030478: .4byte gUnknown_202297E +_08030474: .4byte gBattle_BG2_X +_08030478: .4byte gBattle_BG2_Y _0803047C: adds r0, r7, 0 adds r1, r6, 0 @@ -4138,19 +4138,19 @@ _080304E0: _080304E8: cmp r6, 0 bne _08030500 - ldr r1, _080304F8 @ =gUnknown_2022978 + ldr r1, _080304F8 @ =gBattle_BG1_X ldrh r0, [r5, 0x1C] strh r0, [r1] - ldr r1, _080304FC @ =gUnknown_202297A + ldr r1, _080304FC @ =gBattle_BG1_Y b _08030508 .align 2, 0 -_080304F8: .4byte gUnknown_2022978 -_080304FC: .4byte gUnknown_202297A +_080304F8: .4byte gBattle_BG1_X +_080304FC: .4byte gBattle_BG1_Y _08030500: - ldr r1, _08030528 @ =gUnknown_202297C + ldr r1, _08030528 @ =gBattle_BG2_X ldrh r0, [r5, 0x1C] strh r0, [r1] - ldr r1, _0803052C @ =gUnknown_202297E + ldr r1, _0803052C @ =gBattle_BG2_Y _08030508: ldrh r0, [r5, 0x1A] strh r0, [r1] @@ -4169,8 +4169,8 @@ _0803051C: pop {r0} bx r0 .align 2, 0 -_08030528: .4byte gUnknown_202297C -_0803052C: .4byte gUnknown_202297E +_08030528: .4byte gBattle_BG2_X +_0803052C: .4byte gBattle_BG2_Y _08030530: .4byte gUnknown_3004FE0 _08030534: .4byte sub_802FE94 thumb_func_end sub_80303A8 @@ -4179,7 +4179,7 @@ _08030534: .4byte sub_802FE94 sub_8030538: @ 8030538 push {r4-r6,lr} ldr r6, _08030590 @ =gSprites - ldr r5, _08030594 @ =gUnknown_2023D44 + ldr r5, _08030594 @ =gBattlerSpriteIds ldr r4, _08030598 @ =gActiveBattler ldrb r0, [r4] adds r0, r5 @@ -4219,7 +4219,7 @@ _08030588: bx r0 .align 2, 0 _08030590: .4byte gSprites -_08030594: .4byte gUnknown_2023D44 +_08030594: .4byte gBattlerSpriteIds _08030598: .4byte gActiveBattler _0803059C: .4byte gUnknown_3004FF0 thumb_func_end sub_8030538 @@ -4241,7 +4241,7 @@ sub_80305A0: @ 80305A0 ands r0, r1 cmp r0, 0 bne _080305F4 - ldr r5, _08030604 @ =gUnknown_2023D44 + ldr r5, _08030604 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -4271,7 +4271,7 @@ _080305F4: .align 2, 0 _080305FC: .4byte gUnknown_2024018 _08030600: .4byte gActiveBattler -_08030604: .4byte gUnknown_2023D44 +_08030604: .4byte gBattlerSpriteIds _08030608: .4byte gSprites _0803060C: .4byte gUnknown_3004FF0 thumb_func_end sub_80305A0 @@ -4485,7 +4485,7 @@ _080307B0: .4byte gActiveBattler thumb_func_start DoHitAnimBlinkSpriteEffect DoHitAnimBlinkSpriteEffect: @ 80307B4 push {r4,lr} - ldr r1, _080307F0 @ =gUnknown_2023D44 + ldr r1, _080307F0 @ =gBattlerSpriteIds ldr r0, _080307F4 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -4513,7 +4513,7 @@ DoHitAnimBlinkSpriteEffect: @ 80307B4 bl PlayerBufferExecCompleted b _0803082A .align 2, 0 -_080307F0: .4byte gUnknown_2023D44 +_080307F0: .4byte gBattlerSpriteIds _080307F4: .4byte gActiveBattler _080307F8: .4byte gSprites _080307FC: .4byte gUnknown_2024005 @@ -4964,10 +4964,10 @@ PrintLinkStandbyMsg: @ 8030B5C ands r0, r1 cmp r0, 0 beq _08030B7C - ldr r0, _08030B84 @ =gUnknown_2022974 + ldr r0, _08030B84 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08030B88 @ =gUnknown_2022976 + ldr r0, _08030B88 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _08030B8C @ =gUnknown_83FE714 movs r1, 0 @@ -4977,8 +4977,8 @@ _08030B7C: bx r0 .align 2, 0 _08030B80: .4byte gBattleTypeFlags -_08030B84: .4byte gUnknown_2022974 -_08030B88: .4byte gUnknown_2022976 +_08030B84: .4byte gBattle_BG0_X +_08030B88: .4byte gBattle_BG0_Y _08030B8C: .4byte gUnknown_83FE714 thumb_func_end PrintLinkStandbyMsg @@ -7299,7 +7299,7 @@ PlayerHandleLoadMonSprite: @ 8031F00 adds r0, r2 bl sub_8034498 ldr r2, _08031F58 @ =gSprites - ldr r0, _08031F5C @ =gUnknown_2023D44 + ldr r0, _08031F5C @ =gBattlerSpriteIds ldrb r3, [r4] adds r0, r3, r0 ldrb r0, [r0] @@ -7327,7 +7327,7 @@ _08031F4C: .4byte gBattlerPartyIndexes _08031F50: .4byte gActiveBattler _08031F54: .4byte gPlayerParty _08031F58: .4byte gSprites -_08031F5C: .4byte gUnknown_2023D44 +_08031F5C: .4byte gBattlerSpriteIds _08031F60: .4byte gUnknown_3004FE0 _08031F64: .4byte CompleteOnBankSpritePosX_0 thumb_func_end PlayerHandleLoadMonSprite @@ -7442,7 +7442,7 @@ sub_8031FF4: @ 8031FF4 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _0803214C @ =gMultiuseSpriteTemplate mov r10, r0 adds r0, r6, 0 @@ -7465,7 +7465,7 @@ sub_8031FF4: @ 8031FF4 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _08032150 @ =gUnknown_2023D44 + ldr r4, _08032150 @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _08032154 @ =gSprites @@ -7555,7 +7555,7 @@ _08032140: .4byte gPlayerParty _08032144: .4byte sub_8033E3C _08032148: .4byte gUnknown_3004FFC _0803214C: .4byte gMultiuseSpriteTemplate -_08032150: .4byte gUnknown_2023D44 +_08032150: .4byte gBattlerSpriteIds _08032154: .4byte gSprites _08032158: .4byte gBattleMonForms _0803215C: .4byte SpriteCallbackDummy @@ -7595,7 +7595,7 @@ _0803219C: .4byte gUnknown_2024018 _080321A0: .4byte gUnknown_3004FE0 _080321A4: .4byte sub_80321F0 _080321A8: - ldr r5, _080321E4 @ =gUnknown_2023D44 + ldr r5, _080321E4 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -7623,7 +7623,7 @@ _080321DE: pop {r0} bx r0 .align 2, 0 -_080321E4: .4byte gUnknown_2023D44 +_080321E4: .4byte gBattlerSpriteIds _080321E8: .4byte gSprites _080321EC: .4byte gUnknown_3004FF0 thumb_func_end PlayerHandleReturnPokeToBall @@ -7833,7 +7833,7 @@ _08032342: mov r1, r8 adds r2, r4, 0 bl CreateSprite - ldr r6, _08032410 @ =gUnknown_2023D44 + ldr r6, _08032410 @ =gBattlerSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -7895,7 +7895,7 @@ _08032400: .4byte gSaveBlock2Ptr _08032404: .4byte gActiveBattler _08032408: .4byte gMultiuseSpriteTemplate _0803240C: .4byte gUnknown_8239F8C -_08032410: .4byte gUnknown_2023D44 +_08032410: .4byte gBattlerSpriteIds _08032414: .4byte gSprites _08032418: .4byte 0x0000fffe _0803241C: .4byte sub_8033EEC @@ -8003,7 +8003,7 @@ _080324BE: movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _08032578 @ =gUnknown_2023D44 + ldr r6, _08032578 @ =gBattlerSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -8063,7 +8063,7 @@ _08032568: .4byte gSaveBlock2Ptr _0803256C: .4byte gActiveBattler _08032570: .4byte gMultiuseSpriteTemplate _08032574: .4byte gUnknown_8239F8C -_08032578: .4byte gUnknown_2023D44 +_08032578: .4byte gBattlerSpriteIds _0803257C: .4byte gSprites _08032580: .4byte 0x0000ffa0 _08032584: .4byte sub_8033EEC @@ -8074,7 +8074,7 @@ _0803258C: .4byte sub_802F768 thumb_func_start PlayerHandleTrainerSlideBack PlayerHandleTrainerSlideBack: @ 8032590 push {r4-r6,lr} - ldr r5, _08032630 @ =gUnknown_2023D44 + ldr r5, _08032630 @ =gBattlerSpriteIds ldr r6, _08032634 @ =gActiveBattler ldrb r0, [r6] adds r0, r5 @@ -8151,7 +8151,7 @@ PlayerHandleTrainerSlideBack: @ 8032590 pop {r0} bx r0 .align 2, 0 -_08032630: .4byte gUnknown_2023D44 +_08032630: .4byte gBattlerSpriteIds _08032634: .4byte gActiveBattler _08032638: .4byte gSprites _0803263C: .4byte 0x0000ffd8 @@ -8227,7 +8227,7 @@ _080326A4: movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _08032728 @ =gSprites - ldr r3, _0803272C @ =gUnknown_2023D44 + ldr r3, _0803272C @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -8269,7 +8269,7 @@ _0803271A: _08032720: .4byte gBattlerPartyIndexes _08032724: .4byte gPlayerParty _08032728: .4byte gSprites -_0803272C: .4byte gUnknown_2023D44 +_0803272C: .4byte gBattlerSpriteIds _08032730: .4byte sub_8012110 _08032734: .4byte gUnknown_3004FE0 _08032738: .4byte sub_8030538 @@ -8428,7 +8428,7 @@ _08032852: ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _0803292C @ =gUnknown_2037F16 + ldr r5, _0803292C @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -8496,7 +8496,7 @@ _08032852: lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _08032940 @ =gUnknown_2037EE4 + ldr r3, _08032940 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -8520,12 +8520,12 @@ _08032852: .align 2, 0 _08032924: .4byte gActiveBattler _08032928: .4byte gUnknown_2022BC4 -_0803292C: .4byte gUnknown_2037F16 +_0803292C: .4byte gAnimMoveTurn _08032930: .4byte gUnknown_2037EEC _08032934: .4byte gUnknown_2037EE8 _08032938: .4byte gUnknown_2037EFE _0803293C: .4byte gUnknown_2037F00 -_08032940: .4byte gUnknown_2037EE4 +_08032940: .4byte gAnimDisableStructPtr _08032944: .4byte gUnknown_2024008 _08032948: ldr r0, _0803296C @ =gUnknown_2024018 @@ -8747,10 +8747,10 @@ _08032AEC: thumb_func_start sub_8032AFC sub_8032AFC: @ 8032AFC push {r4,lr} - ldr r0, _08032B30 @ =gUnknown_2022974 + ldr r0, _08032B30 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08032B34 @ =gUnknown_2022976 + ldr r0, _08032B34 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _08032B38 @ =gActiveBattler ldrb r4, [r0] @@ -8769,8 +8769,8 @@ sub_8032AFC: @ 8032AFC bl sub_80D87BC b _08032B4C .align 2, 0 -_08032B30: .4byte gUnknown_2022974 -_08032B34: .4byte gUnknown_2022976 +_08032B30: .4byte gBattle_BG0_X +_08032B34: .4byte gBattle_BG0_Y _08032B38: .4byte gActiveBattler _08032B3C: .4byte gUnknown_2022BC6 _08032B40: .4byte gDisplayedStringBattle @@ -8824,9 +8824,9 @@ sub_8032B94: @ 8032B94 lsrs r1, r0, 24 cmp r1, 0 bne _08032BBA - ldr r0, _08032BC0 @ =gUnknown_2022974 + ldr r0, _08032BC0 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _08032BC4 @ =gUnknown_2022976 + ldr r1, _08032BC4 @ =gBattle_BG0_Y movs r0, 0xA0 strh r0, [r1] ldr r1, _08032BC8 @ =gUnknown_3004FE0 @@ -8840,8 +8840,8 @@ _08032BBA: pop {r0} bx r0 .align 2, 0 -_08032BC0: .4byte gUnknown_2022974 -_08032BC4: .4byte gUnknown_2022976 +_08032BC0: .4byte gBattle_BG0_X +_08032BC4: .4byte gBattle_BG0_Y _08032BC8: .4byte gUnknown_3004FE0 _08032BCC: .4byte gActiveBattler _08032BD0: .4byte sub_802E438 @@ -8910,9 +8910,9 @@ sub_8032C4C: @ 8032C4C lsrs r1, r0, 24 cmp r1, 0 bne _08032C76 - ldr r0, _08032C7C @ =gUnknown_2022974 + ldr r0, _08032C7C @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _08032C80 @ =gUnknown_2022976 + ldr r1, _08032C80 @ =gBattle_BG0_Y movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 @@ -8928,8 +8928,8 @@ _08032C76: pop {r0} bx r0 .align 2, 0 -_08032C7C: .4byte gUnknown_2022974 -_08032C80: .4byte gUnknown_2022976 +_08032C7C: .4byte gBattle_BG0_X +_08032C80: .4byte gBattle_BG0_Y _08032C84: .4byte gUnknown_3004FE0 _08032C88: .4byte gActiveBattler _08032C8C: .4byte sub_802EA10 @@ -9754,7 +9754,7 @@ _08033310: .4byte gUnknown_2022870 PlayerHandleHitAnimation: @ 8033314 push {r4,lr} ldr r3, _0803333C @ =gSprites - ldr r2, _08033340 @ =gUnknown_2023D44 + ldr r2, _08033340 @ =gBattlerSpriteIds ldr r4, _08033344 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -9772,7 +9772,7 @@ PlayerHandleHitAnimation: @ 8033314 b _08033372 .align 2, 0 _0803333C: .4byte gSprites -_08033340: .4byte gUnknown_2023D44 +_08033340: .4byte gBattlerSpriteIds _08033344: .4byte gActiveBattler _08033348: ldr r1, _08033378 @ =gUnknown_2024005 @@ -9930,7 +9930,7 @@ _08033474: .4byte gUnknown_2023F4C thumb_func_start PlayerHandleIntroTrainerBallThrow PlayerHandleIntroTrainerBallThrow: @ 8033478 push {r4-r7,lr} - ldr r6, _080335B8 @ =gUnknown_2023D44 + ldr r6, _080335B8 @ =gBattlerSpriteIds ldr r7, _080335BC @ =gActiveBattler ldrb r0, [r7] adds r0, r6 @@ -10085,7 +10085,7 @@ _0803359A: pop {r0} bx r0 .align 2, 0 -_080335B8: .4byte gUnknown_2023D44 +_080335B8: .4byte gBattlerSpriteIds _080335BC: .4byte gActiveBattler _080335C0: .4byte gSprites _080335C4: .4byte 0x0000ffd8 @@ -10129,7 +10129,7 @@ sub_80335F8: @ 80335F8 adds r0, r1 adds r1, r4, 0 bl sub_8034498 - ldr r0, _08033658 @ =gUnknown_2023D44 + ldr r0, _08033658 @ =gBattlerSpriteIds adds r4, r0 ldrb r1, [r4] lsls r0, r1, 4 @@ -10145,7 +10145,7 @@ sub_80335F8: @ 80335F8 .align 2, 0 _08033650: .4byte gBattlerPartyIndexes _08033654: .4byte gPlayerParty -_08033658: .4byte gUnknown_2023D44 +_08033658: .4byte gBattlerSpriteIds _0803365C: .4byte gSprites thumb_func_end sub_80335F8 @@ -10476,7 +10476,7 @@ PlayerHandleSpriteInvisibility: @ 80338EC cmp r0, 0 beq _08033932 ldr r3, _08033940 @ =gSprites - ldr r0, _08033944 @ =gUnknown_2023D44 + ldr r0, _08033944 @ =gBattlerSpriteIds ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] @@ -10509,7 +10509,7 @@ _08033932: .align 2, 0 _0803393C: .4byte gActiveBattler _08033940: .4byte gSprites -_08033944: .4byte gUnknown_2023D44 +_08033944: .4byte gBattlerSpriteIds _08033948: .4byte gUnknown_2022BC4 thumb_func_end PlayerHandleSpriteInvisibility @@ -10671,7 +10671,7 @@ _08033A74: .4byte gUnknown_2023FFC thumb_func_start PlayerHandlecmd55 PlayerHandlecmd55: @ 8033A78 push {r4,lr} - ldr r2, _08033AB0 @ =gUnknown_2023E8A + ldr r2, _08033AB0 @ =gBattleOutcome ldr r1, _08033AB4 @ =gUnknown_2022BC4 ldr r4, _08033AB8 @ =gActiveBattler ldrb r0, [r4] @@ -10695,7 +10695,7 @@ PlayerHandlecmd55: @ 8033A78 pop {r0} bx r0 .align 2, 0 -_08033AB0: .4byte gUnknown_2023E8A +_08033AB0: .4byte gBattleOutcome _08033AB4: .4byte gUnknown_2022BC4 _08033AB8: .4byte gActiveBattler _08033ABC: .4byte gUnknown_3004FE0 diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s index 58fad294a..23b4a23e8 100644 --- a/asm/battle_controller_pokedude.s +++ b/asm/battle_controller_pokedude.s @@ -98,7 +98,7 @@ sub_8156140: @ 8156140 sub_815614C: @ 815614C push {lr} ldr r2, _08156174 @ =gSprites - ldr r1, _08156178 @ =gUnknown_2023D44 + ldr r1, _08156178 @ =gBattlerSpriteIds ldr r0, _0815617C @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -118,7 +118,7 @@ _08156170: bx r0 .align 2, 0 _08156174: .4byte gSprites -_08156178: .4byte gUnknown_2023D44 +_08156178: .4byte gBattlerSpriteIds _0815617C: .4byte gActiveBattler _08156180: .4byte SpriteCallbackDummy thumb_func_end sub_815614C @@ -127,7 +127,7 @@ _08156180: .4byte SpriteCallbackDummy sub_8156184: @ 8156184 push {r4-r7,lr} ldr r2, _081561E0 @ =gSprites - ldr r0, _081561E4 @ =gUnknown_2023D44 + ldr r0, _081561E4 @ =gBattlerSpriteIds ldr r7, _081561E8 @ =gActiveBattler ldrb r3, [r7] adds r0, r3, r0 @@ -171,7 +171,7 @@ sub_8156184: @ 8156184 b _08156230 .align 2, 0 _081561E0: .4byte gSprites -_081561E4: .4byte gUnknown_2023D44 +_081561E4: .4byte gBattlerSpriteIds _081561E8: .4byte gActiveBattler _081561EC: .4byte gUnknown_2024018 _081561F0: .4byte gBattlerPartyIndexes @@ -1635,7 +1635,7 @@ sub_8156DCC: @ 8156DCC cmp r0, 0 bne _08156E3C ldr r6, _08156E30 @ =gSprites - ldr r5, _08156E34 @ =gUnknown_2023D44 + ldr r5, _08156E34 @ =gBattlerSpriteIds ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -1672,11 +1672,11 @@ sub_8156DCC: @ 8156DCC .align 2, 0 _08156E2C: .4byte gActiveBattler _08156E30: .4byte gSprites -_08156E34: .4byte gUnknown_2023D44 +_08156E34: .4byte gBattlerSpriteIds _08156E38: .4byte gUnknown_3004FF0 _08156E3C: ldr r2, _08156E6C @ =gSprites - ldr r0, _08156E70 @ =gUnknown_2023D44 + ldr r0, _08156E70 @ =gBattlerSpriteIds ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] @@ -1700,7 +1700,7 @@ _08156E66: bx r0 .align 2, 0 _08156E6C: .4byte gSprites -_08156E70: .4byte gUnknown_2023D44 +_08156E70: .4byte gBattlerSpriteIds _08156E74: .4byte gUnknown_3004FF0 thumb_func_end sub_8156DCC @@ -1775,7 +1775,7 @@ _08156EFA: thumb_func_start sub_8156F00 sub_8156F00: @ 8156F00 push {r4,lr} - ldr r1, _08156F3C @ =gUnknown_2023D44 + ldr r1, _08156F3C @ =gBattlerSpriteIds ldr r0, _08156F40 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -1803,7 +1803,7 @@ sub_8156F00: @ 8156F00 bl PlayerPartnerBufferExecCompleted b _08156F76 .align 2, 0 -_08156F3C: .4byte gUnknown_2023D44 +_08156F3C: .4byte gBattlerSpriteIds _08156F40: .4byte gActiveBattler _08156F44: .4byte gSprites _08156F48: .4byte gUnknown_2024005 @@ -1853,7 +1853,7 @@ sub_8156F7C: @ 8156F7C ands r0, r1 cmp r0, 0 bne _08156FD0 - ldr r5, _08156FE0 @ =gUnknown_2023D44 + ldr r5, _08156FE0 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -1883,7 +1883,7 @@ _08156FD0: .align 2, 0 _08156FD8: .4byte gUnknown_2024018 _08156FDC: .4byte gActiveBattler -_08156FE0: .4byte gUnknown_2023D44 +_08156FE0: .4byte gBattlerSpriteIds _08156FE4: .4byte gSprites _08156FE8: .4byte gUnknown_3004FF0 thumb_func_end sub_8156F7C @@ -1892,7 +1892,7 @@ _08156FE8: .4byte gUnknown_3004FF0 sub_8156FEC: @ 8156FEC push {lr} ldr r2, _08157014 @ =gSprites - ldr r1, _08157018 @ =gUnknown_2023D44 + ldr r1, _08157018 @ =gBattlerSpriteIds ldr r0, _0815701C @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -1912,7 +1912,7 @@ _08157010: bx r0 .align 2, 0 _08157014: .4byte gSprites -_08157018: .4byte gUnknown_2023D44 +_08157018: .4byte gBattlerSpriteIds _0815701C: .4byte gActiveBattler _08157020: .4byte SpriteCallbackDummy thumb_func_end sub_8156FEC @@ -3932,7 +3932,7 @@ sub_81580E0: @ 81580E0 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _08158220 @ =gMultiuseSpriteTemplate mov r9, r0 ldrb r0, [r6] @@ -3950,7 +3950,7 @@ sub_81580E0: @ 81580E0 adds r1, r4, 0 adds r2, r5, 0 bl CreateSprite - ldr r4, _08158224 @ =gUnknown_2023D44 + ldr r4, _08158224 @ =gBattlerSpriteIds ldrb r1, [r6] adds r1, r4 strb r0, [r1] @@ -4038,7 +4038,7 @@ _08158214: .4byte gActiveBattler _08158218: .4byte gBattlerPartyIndexes _0815821C: .4byte gEnemyParty _08158220: .4byte gMultiuseSpriteTemplate -_08158224: .4byte gUnknown_2023D44 +_08158224: .4byte gBattlerSpriteIds _08158228: .4byte gSprites _0815822C: .4byte 0x0000ff10 _08158230: .4byte gBattleMonForms @@ -4135,7 +4135,7 @@ _081582F0: .4byte gActiveBattler _081582F4: .4byte gUnknown_3004FE0 _081582F8: .4byte sub_8156F7C _081582FC: - ldr r5, _08158338 @ =gUnknown_2023D44 + ldr r5, _08158338 @ =gBattlerSpriteIds adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 @@ -4163,7 +4163,7 @@ _08158332: pop {r0} bx r0 .align 2, 0 -_08158338: .4byte gUnknown_2023D44 +_08158338: .4byte gBattlerSpriteIds _0815833C: .4byte gSprites _08158340: .4byte gUnknown_3004FF0 thumb_func_end sub_81582C0 @@ -4202,7 +4202,7 @@ sub_8158344: @ 8158344 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r5, _081583E4 @ =gUnknown_2023D44 + ldr r5, _081583E4 @ =gBattlerSpriteIds ldrb r1, [r7] adds r1, r5 strb r0, [r1] @@ -4243,7 +4243,7 @@ sub_8158344: @ 8158344 _081583D8: .4byte gActiveBattler _081583DC: .4byte gMultiuseSpriteTemplate _081583E0: .4byte gUnknown_8239F8C -_081583E4: .4byte gUnknown_2023D44 +_081583E4: .4byte gBattlerSpriteIds _081583E8: .4byte gSprites _081583EC: .4byte 0x0000fffe _081583F0: @@ -4281,7 +4281,7 @@ _081583F0: movs r1, 0xB0 adds r2, r4, 0 bl CreateSprite - ldr r5, _08158518 @ =gUnknown_2023D44 + ldr r5, _08158518 @ =gBattlerSpriteIds ldrb r1, [r7] adds r1, r5 strb r0, [r1] @@ -4304,7 +4304,7 @@ _081583F0: adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] - ldr r0, _08158524 @ =gUnknown_8239A1C + ldr r0, _08158524 @ =gTrainerFrontPicPaletteTable mov r1, r8 lsls r6, r1, 3 adds r0, r6 @@ -4334,7 +4334,7 @@ _081583F0: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _08158528 @ =gUnknown_823957C + ldr r0, _08158528 @ =gTrainerFrontPicTable adds r0, r6 ldrh r0, [r0, 0x6] bl GetSpriteTileStartByTag @@ -4387,11 +4387,11 @@ _081584E2: .align 2, 0 _08158510: .4byte gMultiuseSpriteTemplate _08158514: .4byte gUnknown_823932C -_08158518: .4byte gUnknown_2023D44 +_08158518: .4byte gBattlerSpriteIds _0815851C: .4byte gSprites _08158520: .4byte 0x0000ff10 -_08158524: .4byte gUnknown_8239A1C -_08158528: .4byte gUnknown_823957C +_08158524: .4byte gTrainerFrontPicPaletteTable +_08158528: .4byte gTrainerFrontPicTable _0815852C: .4byte 0x000003ff _08158530: .4byte 0xfffffc00 _08158534: .4byte sub_8033EEC @@ -4427,7 +4427,7 @@ sub_8158544: @ 8158544 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _081585F8 @ =gUnknown_2023D44 + ldr r6, _081585F8 @ =gBattlerSpriteIds ldrb r1, [r4] adds r1, r6 strb r0, [r1] @@ -4486,7 +4486,7 @@ sub_8158544: @ 8158544 _081585EC: .4byte gActiveBattler _081585F0: .4byte gMultiuseSpriteTemplate _081585F4: .4byte gUnknown_8239F8C -_081585F8: .4byte gUnknown_2023D44 +_081585F8: .4byte gBattlerSpriteIds _081585FC: .4byte gSprites _08158600: .4byte 0x0000ffa0 _08158604: .4byte sub_8033EEC @@ -4574,7 +4574,7 @@ _08158670: movs r0, 0x10 bl PlaySE12WithPanning ldr r2, _081586F0 @ =gSprites - ldr r3, _081586F4 @ =gUnknown_2023D44 + ldr r3, _081586F4 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] @@ -4606,14 +4606,14 @@ _08158670: _081586E8: .4byte gBattlerPartyIndexes _081586EC: .4byte gPlayerParty _081586F0: .4byte gSprites -_081586F4: .4byte gUnknown_2023D44 +_081586F4: .4byte gBattlerSpriteIds _081586F8: .4byte sub_8012110 _081586FC: movs r0, 0x10 movs r1, 0x3F bl PlaySE12WithPanning ldr r2, _08158730 @ =gSprites - ldr r1, _08158734 @ =gUnknown_2023D44 + ldr r1, _08158734 @ =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] @@ -4638,7 +4638,7 @@ _0815872A: bx r0 .align 2, 0 _08158730: .4byte gSprites -_08158734: .4byte gUnknown_2023D44 +_08158734: .4byte gBattlerSpriteIds _08158738: .4byte sub_8011EA0 _0815873C: .4byte gUnknown_3004FE0 _08158740: .4byte gActiveBattler @@ -4762,7 +4762,7 @@ sub_8158814: @ 8158814 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 - ldr r5, _081588F0 @ =gUnknown_2037F16 + ldr r5, _081588F0 @ =gAnimMoveTurn mov r1, r12 adds r1, 0x3 adds r2, r1 @@ -4830,7 +4830,7 @@ sub_8158814: @ 8158814 lsls r1, 8 orrs r3, r1 strh r3, [r4] - ldr r3, _08158904 @ =gUnknown_2037EE4 + ldr r3, _08158904 @ =gAnimDisableStructPtr ldrb r2, [r6] lsls r2, 9 mov r1, r12 @@ -4854,12 +4854,12 @@ sub_8158814: @ 8158814 .align 2, 0 _081588E8: .4byte gUnknown_2022BC4 _081588EC: .4byte gActiveBattler -_081588F0: .4byte gUnknown_2037F16 +_081588F0: .4byte gAnimMoveTurn _081588F4: .4byte gUnknown_2037EEC _081588F8: .4byte gUnknown_2037EE8 _081588FC: .4byte gUnknown_2037EFE _08158900: .4byte gUnknown_2037F00 -_08158904: .4byte gUnknown_2037EE4 +_08158904: .4byte gAnimDisableStructPtr _08158908: .4byte gUnknown_2024008 _0815890C: ldr r0, _08158930 @ =gUnknown_2024018 @@ -5055,10 +5055,10 @@ _08158A7C: thumb_func_start sub_8158A88 sub_8158A88: @ 8158A88 push {r4,lr} - ldr r0, _08158ABC @ =gUnknown_2022974 + ldr r0, _08158ABC @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _08158AC0 @ =gUnknown_2022976 + ldr r0, _08158AC0 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _08158AC4 @ =gActiveBattler ldrb r4, [r0] @@ -5077,8 +5077,8 @@ sub_8158A88: @ 8158A88 bl sub_80D87BC b _08158AD8 .align 2, 0 -_08158ABC: .4byte gUnknown_2022974 -_08158AC0: .4byte gUnknown_2022976 +_08158ABC: .4byte gBattle_BG0_X +_08158AC0: .4byte gBattle_BG0_Y _08158AC4: .4byte gActiveBattler _08158AC8: .4byte gUnknown_2022BC6 _08158ACC: .4byte gDisplayedStringBattle @@ -5132,9 +5132,9 @@ sub_8158B20: @ 8158B20 lsrs r1, r0, 24 cmp r1, 0 bne _08158B46 - ldr r0, _08158B4C @ =gUnknown_2022974 + ldr r0, _08158B4C @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _08158B50 @ =gUnknown_2022976 + ldr r1, _08158B50 @ =gBattle_BG0_Y movs r0, 0xA0 strh r0, [r1] ldr r1, _08158B54 @ =gUnknown_3004FE0 @@ -5148,8 +5148,8 @@ _08158B46: pop {r0} bx r0 .align 2, 0 -_08158B4C: .4byte gUnknown_2022974 -_08158B50: .4byte gUnknown_2022976 +_08158B4C: .4byte gBattle_BG0_X +_08158B50: .4byte gBattle_BG0_Y _08158B54: .4byte gUnknown_3004FE0 _08158B58: .4byte gActiveBattler _08158B5C: .4byte sub_8156140 @@ -5238,9 +5238,9 @@ sub_8158C04: @ 8158C04 lsrs r1, r0, 24 cmp r1, 0 bne _08158C2E - ldr r0, _08158C34 @ =gUnknown_2022974 + ldr r0, _08158C34 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _08158C38 @ =gUnknown_2022976 + ldr r1, _08158C38 @ =gBattle_BG0_Y movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 @@ -5256,8 +5256,8 @@ _08158C2E: pop {r0} bx r0 .align 2, 0 -_08158C34: .4byte gUnknown_2022974 -_08158C38: .4byte gUnknown_2022976 +_08158C34: .4byte gBattle_BG0_X +_08158C38: .4byte gBattle_BG0_Y _08158C3C: .4byte gUnknown_3004FE0 _08158C40: .4byte gActiveBattler _08158C44: .4byte sub_81564E4 @@ -5936,7 +5936,7 @@ sub_8159184: @ 8159184 sub_8159190: @ 8159190 push {r4,lr} ldr r3, _081591B8 @ =gSprites - ldr r2, _081591BC @ =gUnknown_2023D44 + ldr r2, _081591BC @ =gBattlerSpriteIds ldr r4, _081591C0 @ =gActiveBattler ldrb r0, [r4] adds r0, r2 @@ -5954,7 +5954,7 @@ sub_8159190: @ 8159190 b _081591EE .align 2, 0 _081591B8: .4byte gSprites -_081591BC: .4byte gUnknown_2023D44 +_081591BC: .4byte gBattlerSpriteIds _081591C0: .4byte gActiveBattler _081591C4: ldr r1, _081591F4 @ =gUnknown_2024005 @@ -6119,7 +6119,7 @@ _08159300: .4byte gUnknown_2023F4C thumb_func_start sub_8159304 sub_8159304: @ 8159304 push {r4-r7,lr} - ldr r6, _0815943C @ =gUnknown_2023D44 + ldr r6, _0815943C @ =gBattlerSpriteIds ldr r7, _08159440 @ =gActiveBattler ldrb r0, [r7] adds r0, r6 @@ -6269,7 +6269,7 @@ _0815941C: pop {r0} bx r0 .align 2, 0 -_0815943C: .4byte gUnknown_2023D44 +_0815943C: .4byte gBattlerSpriteIds _08159440: .4byte gActiveBattler _08159444: .4byte gSprites _08159448: .4byte 0x0000ffd8 @@ -6336,7 +6336,7 @@ sub_8159478: @ 8159478 lsls r1, 24 lsrs r1, 24 mov r0, r8 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _081595D8 @ =gMultiuseSpriteTemplate mov r10, r0 adds r0, r6, 0 @@ -6359,7 +6359,7 @@ sub_8159478: @ 8159478 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite - ldr r4, _081595DC @ =gUnknown_2023D44 + ldr r4, _081595DC @ =gBattlerSpriteIds adds r4, r6, r4 strb r0, [r4] ldr r5, _081595E0 @ =gSprites @@ -6450,7 +6450,7 @@ _081595CC: .4byte gPlayerParty _081595D0: .4byte sub_8033E3C _081595D4: .4byte gUnknown_3004FFC _081595D8: .4byte gMultiuseSpriteTemplate -_081595DC: .4byte gUnknown_2023D44 +_081595DC: .4byte gBattlerSpriteIds _081595E0: .4byte gSprites _081595E4: .4byte gBattleMonForms _081595E8: .4byte SpriteCallbackDummy @@ -6700,7 +6700,7 @@ sub_81597B8: @ 81597B8 thumb_func_start sub_81597C4 sub_81597C4: @ 81597C4 push {r4,lr} - ldr r2, _08159808 @ =gUnknown_2023E8A + ldr r2, _08159808 @ =gBattleOutcome ldr r1, _0815980C @ =gUnknown_2022BC4 ldr r4, _08159810 @ =gActiveBattler ldrb r0, [r4] @@ -6731,7 +6731,7 @@ _08159800: pop {r0} bx r0 .align 2, 0 -_08159808: .4byte gUnknown_2023E8A +_08159808: .4byte gBattleOutcome _0815980C: .4byte gUnknown_2022BC4 _08159810: .4byte gActiveBattler _08159814: .4byte gBattleTypeFlags @@ -7250,7 +7250,7 @@ _08159C14: lsls r0, 2 adds r0, r5 ldr r1, [r0] - ldr r0, _08159C40 @ =gUnknown_2022976 + ldr r0, _08159C40 @ =gBattle_BG0_Y ldrh r0, [r0] strb r0, [r1, 0x4] bl sub_80EB30C @@ -7260,9 +7260,9 @@ _08159C14: b _08159C9E .align 2, 0 _08159C3C: .4byte gPaletteFade -_08159C40: .4byte gUnknown_2022976 +_08159C40: .4byte gBattle_BG0_Y _08159C44: - ldr r1, _08159C5C @ =gUnknown_2022976 + ldr r1, _08159C5C @ =gBattle_BG0_Y movs r0, 0 strh r0, [r1] bl sub_8159EF0 @@ -7272,7 +7272,7 @@ _08159C44: bl sub_80D87BC b _08159C94 .align 2, 0 -_08159C5C: .4byte gUnknown_2022976 +_08159C5C: .4byte gBattle_BG0_Y _08159C60: .4byte gDisplayedStringBattle _08159C64: movs r0, 0x18 @@ -7331,7 +7331,7 @@ _08159CB4: ldr r0, _08159CFC @ =0x00000137 bl PlayBGM _08159CD8: - ldr r1, _08159D00 @ =gUnknown_2022976 + ldr r1, _08159D00 @ =gBattle_BG0_Y ldrb r0, [r4] lsls r0, 2 adds r0, r5 @@ -7348,7 +7348,7 @@ _08159CEE: .align 2, 0 _08159CF8: .4byte gPaletteFade _08159CFC: .4byte 0x00000137 -_08159D00: .4byte gUnknown_2022976 +_08159D00: .4byte gBattle_BG0_Y thumb_func_end sub_8159BA8 thumb_func_start sub_8159D04 diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s index 405d4c45b..9e01ad2fd 100644 --- a/asm/battle_controller_safari.s +++ b/asm/battle_controller_safari.s @@ -259,7 +259,7 @@ _080DD724: .4byte gActiveBattler sub_80DD728: @ 80DD728 push {lr} ldr r2, _080DD750 @ =gSprites - ldr r1, _080DD754 @ =gUnknown_2023D44 + ldr r1, _080DD754 @ =gBattlerSpriteIds ldr r0, _080DD758 @ =gActiveBattler ldrb r0, [r0] adds r0, r1 @@ -279,7 +279,7 @@ _080DD74C: bx r0 .align 2, 0 _080DD750: .4byte gSprites -_080DD754: .4byte gUnknown_2023D44 +_080DD754: .4byte gBattlerSpriteIds _080DD758: .4byte gActiveBattler _080DD75C: .4byte SpriteCallbackDummy thumb_func_end sub_80DD728 @@ -646,7 +646,7 @@ SafariHandleDrawTrainerPic: @ 80DD9C4 movs r1, 0x50 movs r3, 0x1E bl CreateSprite - ldr r6, _080DDA8C @ =gUnknown_2023D44 + ldr r6, _080DDA8C @ =gBattlerSpriteIds ldrb r1, [r5] adds r1, r6 strb r0, [r1] @@ -706,7 +706,7 @@ _080DDA7C: .4byte gSaveBlock2Ptr _080DDA80: .4byte gActiveBattler _080DDA84: .4byte gMultiuseSpriteTemplate _080DDA88: .4byte gUnknown_8239F8C -_080DDA8C: .4byte gUnknown_2023D44 +_080DDA8C: .4byte gBattlerSpriteIds _080DDA90: .4byte gSprites _080DDA94: .4byte 0x0000fffe _080DDA98: .4byte sub_8033EEC @@ -849,10 +849,10 @@ sub_80DDB94: @ 80DDB94 thumb_func_start sub_80DDBA0 sub_80DDBA0: @ 80DDBA0 push {r4,lr} - ldr r0, _080DDBD4 @ =gUnknown_2022974 + ldr r0, _080DDBD4 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080DDBD8 @ =gUnknown_2022976 + ldr r0, _080DDBD8 @ =gBattle_BG0_Y strh r1, [r0] ldr r0, _080DDBDC @ =gActiveBattler ldrb r4, [r0] @@ -871,8 +871,8 @@ sub_80DDBA0: @ 80DDBA0 bl sub_80D87BC b _080DDBF0 .align 2, 0 -_080DDBD4: .4byte gUnknown_2022974 -_080DDBD8: .4byte gUnknown_2022976 +_080DDBD4: .4byte gBattle_BG0_X +_080DDBD8: .4byte gBattle_BG0_Y _080DDBDC: .4byte gActiveBattler _080DDBE0: .4byte gUnknown_2022BC6 _080DDBE4: .4byte gDisplayedStringBattle @@ -926,9 +926,9 @@ sub_80DDC38: @ 80DDC38 lsrs r1, r0, 24 cmp r1, 0 bne _080DDC5E - ldr r0, _080DDC64 @ =gUnknown_2022974 + ldr r0, _080DDC64 @ =gBattle_BG0_X strh r1, [r0] - ldr r1, _080DDC68 @ =gUnknown_2022976 + ldr r1, _080DDC68 @ =gBattle_BG0_Y movs r0, 0xA0 strh r0, [r1] ldr r1, _080DDC6C @ =gUnknown_3004FE0 @@ -942,8 +942,8 @@ _080DDC5E: pop {r0} bx r0 .align 2, 0 -_080DDC64: .4byte gUnknown_2022974 -_080DDC68: .4byte gUnknown_2022976 +_080DDC64: .4byte gBattle_BG0_X +_080DDC68: .4byte gBattle_BG0_Y _080DDC6C: .4byte gUnknown_3004FE0 _080DDC70: .4byte gActiveBattler _080DDC74: .4byte HandleInputChooseAction_0 @@ -1487,7 +1487,7 @@ sub_80DE048: @ 80DE048 thumb_func_start SafariHandleCmd55 SafariHandleCmd55: @ 80DE054 push {r4,lr} - ldr r2, _080DE098 @ =gUnknown_2023E8A + ldr r2, _080DE098 @ =gBattleOutcome ldr r1, _080DE09C @ =gUnknown_2022BC4 ldr r4, _080DE0A0 @ =gActiveBattler ldrb r0, [r4] @@ -1518,7 +1518,7 @@ _080DE090: pop {r0} bx r0 .align 2, 0 -_080DE098: .4byte gUnknown_2023E8A +_080DE098: .4byte gBattleOutcome _080DE09C: .4byte gUnknown_2022BC4 _080DE0A0: .4byte gActiveBattler _080DE0A4: .4byte gBattleTypeFlags diff --git a/asm/battle_controllers.s b/asm/battle_controllers.s index 5d0921323..5337929a1 100644 --- a/asm/battle_controllers.s +++ b/asm/battle_controllers.s @@ -2176,7 +2176,7 @@ EmitPrintString: @ 800E2D4 ldr r2, _0800E3B4 @ =gUnknown_2022874 movs r0, 0x10 strb r0, [r2] - ldr r0, _0800E3B8 @ =gUnknown_2023E8A + ldr r0, _0800E3B8 @ =gBattleOutcome ldrb r0, [r0] strb r0, [r2, 0x1] strb r1, [r2, 0x2] @@ -2277,7 +2277,7 @@ _0800E378: bx r0 .align 2, 0 _0800E3B4: .4byte gUnknown_2022874 -_0800E3B8: .4byte gUnknown_2023E8A +_0800E3B8: .4byte gBattleOutcome _0800E3BC: .4byte gCurrentMove _0800E3C0: .4byte gUnknown_2023D4C _0800E3C4: .4byte gUnknown_2023D68 diff --git a/asm/battle_dome_cards.s b/asm/battle_dome_cards.s deleted file mode 100644 index 3ff8f9318..000000000 --- a/asm/battle_dome_cards.s +++ /dev/null @@ -1,1102 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_91 -nullsub_91: @ 810BB88 - bx lr - thumb_func_end nullsub_91 - - thumb_func_start dp13_810BB8C -dp13_810BB8C: @ 810BB8C - push {r4-r7,lr} - ldr r4, _0810BBAC @ =gUnknown_8453178 - ldr r3, _0810BBB0 @ =gUnknown_203AD58 - movs r2, 0x7 -_0810BB94: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0xC - subs r2, 0x1 - cmp r2, 0 - bge _0810BB94 - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810BBAC: .4byte gUnknown_8453178 -_0810BBB0: .4byte gUnknown_203AD58 - thumb_func_end dp13_810BB8C - - thumb_func_start load_pokemon_image_TODO -load_pokemon_image_TODO: @ 810BBB4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r1, 0 - adds r5, r3, 0 - ldr r3, [sp, 0x18] - ldr r1, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, r4, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - cmp r3, 0 - bne _0810BC28 - cmp r2, 0 - beq _0810BBF4 - cmp r1, 0 - bne _0810BBE8 - lsls r0, r4, 3 - ldr r1, _0810BBE4 @ =gUnknown_82350AC - b _0810BBFC - .align 2, 0 -_0810BBE4: .4byte gUnknown_82350AC -_0810BBE8: - lsls r0, r4, 3 - ldr r1, _0810BBF0 @ =gUnknown_82350AC - b _0810BC14 - .align 2, 0 -_0810BBF0: .4byte gUnknown_82350AC -_0810BBF4: - cmp r0, 0 - bne _0810BC10 - lsls r0, r4, 3 - ldr r1, _0810BC0C @ =gUnknown_823654C -_0810BBFC: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl sub_800ECF0 - b _0810BC4E - .align 2, 0 -_0810BC0C: .4byte gUnknown_823654C -_0810BC10: - lsls r0, r4, 3 - ldr r1, _0810BC24 @ =gUnknown_823654C -_0810BC14: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl LoadSpecialPokePic_DontHandleDeoxys - b _0810BC4E - .align 2, 0 -_0810BC24: .4byte gUnknown_823654C -_0810BC28: - cmp r2, 0 - beq _0810BC40 - lsls r0, r4, 3 - ldr r1, _0810BC3C @ =gUnknown_823957C - adds r0, r1 - adds r1, r5, 0 - adds r2, r4, 0 - bl DecompressPicFromTable - b _0810BC4E - .align 2, 0 -_0810BC3C: .4byte gUnknown_823957C -_0810BC40: - lsls r0, r7, 3 - ldr r1, _0810BC58 @ =gUnknown_8239FA4 - adds r0, r1 - adds r1, r5, 0 - adds r2, r7, 0 - bl DecompressPicFromTable -_0810BC4E: - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810BC58: .4byte gUnknown_8239FA4 - thumb_func_end load_pokemon_image_TODO - - thumb_func_start sub_810BC5C -sub_810BC5C: @ 810BC5C - push {r4,lr} - sub sp, 0x8 - ldr r4, [sp, 0x10] - lsls r0, 16 - lsrs r0, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl load_pokemon_image_TODO - lsls r0, 16 - lsrs r0, 16 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810BC5C - - thumb_func_start sub_810BC84 -sub_810BC84: @ 810BC84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - mov r8, r2 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - lsls r3, 24 - lsrs r5, r3, 24 - mov r12, r5 - lsls r1, 16 - lsrs r3, r1, 16 - adds r1, r3, 0 - lsls r2, 24 - cmp r2, 0 - bne _0810BCE8 - ldr r0, _0810BCC8 @ =0x0000ffff - cmp r3, r0 - bne _0810BCD0 - ldr r2, _0810BCCC @ =gUnknown_203AD40 - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl GetFrontSpritePalFromSpeciesAndPersonality - lsls r1, r5, 20 - b _0810BD04 - .align 2, 0 -_0810BCC8: .4byte 0x0000ffff -_0810BCCC: .4byte gUnknown_203AD40 -_0810BCD0: - ldr r0, _0810BCE4 @ =gUnknown_203AD40 - strh r3, [r0, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl GetMonSpritePalStructFromOtIdPersonality - bl LoadCompressedObjectPalette - b _0810BD2E - .align 2, 0 -_0810BCE4: .4byte gUnknown_203AD40 -_0810BCE8: - ldr r0, _0810BD14 @ =0x0000ffff - cmp r3, r0 - bne _0810BD20 - ldr r2, _0810BD18 @ =gUnknown_203AD40 - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - ldr r1, _0810BD1C @ =gUnknown_8239A1C - lsls r0, r4, 3 - adds r0, r1 - ldr r0, [r0] - mov r2, r12 - lsls r1, r2, 20 -_0810BD04: - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - b _0810BD2E - .align 2, 0 -_0810BD14: .4byte 0x0000ffff -_0810BD18: .4byte gUnknown_203AD40 -_0810BD1C: .4byte gUnknown_8239A1C -_0810BD20: - ldr r0, _0810BD38 @ =gUnknown_203AD40 - strh r1, [r0, 0x2] - lsls r0, r6, 3 - ldr r1, _0810BD3C @ =gUnknown_8239A1C - adds r0, r1 - bl LoadCompressedObjectPalette -_0810BD2E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810BD38: .4byte gUnknown_203AD40 -_0810BD3C: .4byte gUnknown_8239A1C - thumb_func_end sub_810BC84 - - thumb_func_start sub_810BD40 -sub_810BD40: @ 810BD40 - push {r4,r5,lr} - adds r5, r1, 0 - ldr r1, [sp, 0xC] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r4, r3, 24 - lsls r1, 24 - cmp r1, 0 - bne _0810BD64 - adds r1, r5, 0 - bl GetFrontSpritePalFromSpeciesAndPersonality - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _0810BD74 -_0810BD64: - ldr r1, _0810BD7C @ =gUnknown_8239A1C - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_0810BD74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810BD7C: .4byte gUnknown_8239A1C - thumb_func_end sub_810BD40 - - thumb_func_start uns_builder_assign_animtable1 -uns_builder_assign_animtable1: @ 810BD80 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0810BD98 - ldr r1, _0810BD90 @ =gUnknown_203AD40 - ldr r0, _0810BD94 @ =gUnknown_82349BC - str r0, [r1, 0x8] - b _0810BDA0 - .align 2, 0 -_0810BD90: .4byte gUnknown_203AD40 -_0810BD94: .4byte gUnknown_82349BC -_0810BD98: - ldr r0, _0810BDA4 @ =gUnknown_203AD40 - ldr r1, _0810BDA8 @ =gTrainerFrontAnimsPtrTable - ldr r1, [r1] - str r1, [r0, 0x8] -_0810BDA0: - pop {r0} - bx r0 - .align 2, 0 -_0810BDA4: .4byte gUnknown_203AD40 -_0810BDA8: .4byte gTrainerFrontAnimsPtrTable - thumb_func_end uns_builder_assign_animtable1 - - thumb_func_start oamt_spawn_poke_or_trainer_picture -oamt_spawn_poke_or_trainer_picture: @ 810BDAC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - ldr r1, [sp, 0x50] - ldr r2, [sp, 0x54] - ldr r4, [sp, 0x58] - ldr r5, [sp, 0x5C] - ldr r6, [sp, 0x60] - ldr r7, [sp, 0x64] - mov r8, r7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x18] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 16 - lsrs r5, 16 - mov r10, r5 - lsls r6, 24 - lsrs r6, 24 - mov r9, r6 - mov r0, r8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r1, _0810BE44 @ =gUnknown_203AD58 - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _0810BE1C -_0810BE04: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bhi _0810BE1C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _0810BE04 -_0810BE1C: - cmp r4, 0x8 - beq _0810BE40 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r7, r0, 0 - cmp r7, 0 - beq _0810BE40 - movs r0, 0x20 - bl Alloc - mov r8, r0 - cmp r0, 0 - bne _0810BE4C - adds r0, r7, 0 - bl Free -_0810BE40: - ldr r0, _0810BE48 @ =0x0000ffff - b _0810BF16 - .align 2, 0 -_0810BE44: .4byte gUnknown_203AD58 -_0810BE48: .4byte 0x0000ffff -_0810BE4C: - mov r1, r9 - str r1, [sp] - str r5, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - ldr r2, [sp, 0x14] - adds r3, r7, 0 - bl load_pokemon_image_TODO - lsls r0, 16 - cmp r0, 0 - bne _0810BE40 - lsls r2, r4, 1 - str r2, [sp, 0x2C] - ldr r5, _0810BF28 @ =gUnknown_203AD40 - ldr r0, _0810BF2C @ =gUnknown_8453184 - mov r12, r0 - ldr r1, [sp, 0x18] - lsls r1, 16 - str r1, [sp, 0x24] - ldr r2, [sp, 0x1C] - lsls r2, 16 - str r2, [sp, 0x28] - movs r3, 0x80 - lsls r3, 4 - mov r0, r8 - adds r1, r7, 0 - adds r6, r3, 0 - movs r2, 0x3 -_0810BE86: - str r1, [r0] - strh r3, [r0, 0x4] - adds r0, 0x8 - adds r1, r6 - subs r2, 0x1 - cmp r2, 0 - bge _0810BE86 - ldr r0, _0810BF30 @ =0x0000ffff - strh r0, [r5] - mov r0, r12 - str r0, [r5, 0x4] - mov r0, r9 - bl uns_builder_assign_animtable1 - mov r1, r8 - str r1, [r5, 0xC] - ldr r0, _0810BF34 @ =gDummySpriteAffineAnimTable - str r0, [r5, 0x10] - ldr r0, _0810BF38 @ =nullsub_91 - str r0, [r5, 0x14] - mov r2, r10 - str r2, [sp] - mov r0, r9 - str r0, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x10] - ldr r3, [sp, 0x20] - bl sub_810BC84 - ldr r2, [sp, 0x24] - asrs r1, r2, 16 - ldr r0, [sp, 0x28] - asrs r2, r0, 16 - adds r0, r5, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - adds r6, r2, 0 - ldr r0, _0810BF30 @ =0x0000ffff - cmp r10, r0 - bne _0810BEF6 - ldr r0, _0810BF3C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r2, [sp, 0x20] - lsls r3, r2, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0810BEF6: - ldr r1, _0810BF40 @ =gUnknown_203AD58 - ldr r2, [sp, 0x2C] - adds r0, r2, r4 - lsls r0, 2 - adds r2, r0, r1 - str r7, [r2] - adds r1, 0x4 - adds r0, r1 - mov r7, r8 - str r7, [r0] - mov r0, r10 - strh r0, [r2, 0x8] - strb r6, [r2, 0xA] - movs r0, 0x1 - strb r0, [r2, 0xB] - adds r0, r6, 0 -_0810BF16: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810BF28: .4byte gUnknown_203AD40 -_0810BF2C: .4byte gUnknown_8453184 -_0810BF30: .4byte 0x0000ffff -_0810BF34: .4byte gDummySpriteAffineAnimTable -_0810BF38: .4byte nullsub_91 -_0810BF3C: .4byte gSprites -_0810BF40: .4byte gUnknown_203AD58 - thumb_func_end oamt_spawn_poke_or_trainer_picture - - thumb_func_start sub_810BF44 -sub_810BF44: @ 810BF44 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - str r7, [sp, 0x10] - movs r4, 0 - str r4, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810BF44 - - thumb_func_start sub_810BFA4 -sub_810BFA4: @ 810BFA4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - ldr r0, _0810BFDC @ =gUnknown_203AD58 - ldrb r1, [r0, 0xA] - adds r3, r0, 0 - cmp r1, r4 - beq _0810BFD4 - adds r1, r3, 0 -_0810BFBC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bhi _0810BFD4 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xA] - cmp r0, r4 - bne _0810BFBC -_0810BFD4: - cmp r2, 0x8 - bne _0810BFE4 - ldr r0, _0810BFE0 @ =0x0000ffff - b _0810C03A - .align 2, 0 -_0810BFDC: .4byte gUnknown_203AD58 -_0810BFE0: .4byte 0x0000ffff -_0810BFE4: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r3 - ldr r1, [r5] - mov r8, r1 - adds r1, r3, 0x4 - adds r0, r1 - ldr r7, [r0] - ldrh r1, [r5, 0x8] - ldr r0, _0810C044 @ =0x0000ffff - lsls r6, r4, 4 - cmp r1, r0 - beq _0810C018 - ldr r1, _0810C048 @ =gSprites - adds r0, r6, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag -_0810C018: - adds r0, r6, r4 - lsls r0, 2 - ldr r1, _0810C048 @ =gSprites - adds r0, r1 - bl DestroySprite - mov r0, r8 - bl Free - adds r0, r7, 0 - bl Free - adds r1, r5, 0 - ldr r0, _0810C04C @ =gUnknown_8453178 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0 -_0810C03A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810C044: .4byte 0x0000ffff -_0810C048: .4byte gSprites -_0810C04C: .4byte gUnknown_8453178 - thumb_func_end sub_810BFA4 - - thumb_func_start sub_810C050 -sub_810C050: @ 810C050 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r9, r1 - adds r7, r2, 0 - adds r4, r3, 0 - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x24] - ldr r3, [sp, 0x28] - lsls r0, 16 - lsrs r5, r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - adds r0, r2, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_810BC5C - lsls r0, 16 - cmp r0, 0 - bne _0810C0AC - str r6, [sp] - adds r0, r5, 0 - mov r1, r9 - adds r2, r7, 0 - mov r3, r8 - bl sub_810BD40 - movs r0, 0 - b _0810C0AE -_0810C0AC: - ldr r0, _0810C0BC @ =0x0000ffff -_0810C0AE: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810C0BC: .4byte 0x0000ffff - thumb_func_end sub_810C050 - - thumb_func_start sub_810C0C0 -sub_810C0C0: @ 810C0C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp, 0x18] - str r2, [sp, 0x1C] - ldr r1, [sp, 0x44] - ldr r2, [sp, 0x48] - ldr r4, [sp, 0x4C] - ldr r5, [sp, 0x50] - ldr r6, [sp, 0x54] - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - beq _0810C156 - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x1C] - adds r2, r7, 0 - adds r3, r4, 0 - bl sub_810BC5C - lsls r0, 16 - cmp r0, 0 - bne _0810C156 - movs r0, 0x40 - str r0, [sp] - str r0, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r0, [sp, 0x10] - str r0, [sp, 0x14] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - ldr r3, [sp, 0x20] - bl sub_810BD40 - adds r0, r4, 0 - bl Free - movs r0, 0 - b _0810C158 -_0810C156: - ldr r0, _0810C168 @ =0x0000ffff -_0810C158: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810C168: .4byte 0x0000ffff - thumb_func_end sub_810C0C0 - - thumb_func_start sub_810C16C -sub_810C16C: @ 810C16C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - str r7, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C16C - - thumb_func_start sub_810C1CC -sub_810C1CC: @ 810C1CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 16 - lsrs r7, 16 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_810C16C - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C1CC - - thumb_func_start sub_810C214 -sub_810C214: @ 810C214 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_810BFA4 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_810C214 - - thumb_func_start sub_810C228 -sub_810C228: @ 810C228 - push {r4-r6,lr} - sub sp, 0x14 - ldr r5, [sp, 0x24] - ldr r6, [sp, 0x28] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - str r4, [sp, 0x10] - bl sub_810C0C0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_810C228 - - thumb_func_start sub_810C25C -sub_810C25C: @ 810C25C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 24 - lsrs r7, 24 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_810C0C0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C25C - - thumb_func_start sub_810C2A4 -sub_810C2A4: @ 810C2A4 - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r2, 16 - asrs r2, 16 - str r2, [sp] - lsls r3, 16 - asrs r3, 16 - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_810BF44 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810C2A4 - - thumb_func_start sub_810C2E8 -sub_810C2E8: @ 810C2E8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_810BFA4 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_810C2E8 - - thumb_func_start sub_810C2FC -sub_810C2FC: @ 810C2FC - push {r4,lr} - sub sp, 0xC - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r2, [sp] - str r3, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0 - adds r3, r4, 0 - bl sub_810C050 - lsls r0, 16 - lsrs r0, 16 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810C2FC - - thumb_func_start sub_810C330 -sub_810C330: @ 810C330 - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r2, [sp] - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_810C0C0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810C330 - - thumb_func_start sub_810C374 -sub_810C374: @ 810C374 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - bne _0810C39A - cmp r0, 0 - beq _0810C394 - ldr r0, _0810C390 @ =gFacilityClassToPicIndex - adds r0, 0x87 - ldrb r0, [r0] - b _0810C39A - .align 2, 0 -_0810C390: .4byte gFacilityClassToPicIndex -_0810C394: - ldr r0, _0810C3A0 @ =gFacilityClassToPicIndex - adds r0, 0x86 - ldrb r0, [r0] -_0810C39A: - pop {r1} - bx r1 - .align 2, 0 -_0810C3A0: .4byte gFacilityClassToPicIndex - thumb_func_end sub_810C374 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s index 9ae7accdc..efbd89e9e 100644 --- a/asm/battle_gfx_sfx_util.s +++ b/asm/battle_gfx_sfx_util.s @@ -394,7 +394,7 @@ _08034094: cmp r5, 0x2 bne _080340E0 ldr r1, _080340D8 @ =gSprites - ldr r0, _080340DC @ =gUnknown_2023D44 + ldr r0, _080340DC @ =gBattlerSpriteIds adds r0, r6, r0 ldrb r2, [r0] lsls r0, r2, 4 @@ -415,12 +415,12 @@ _08034094: b _08034132 .align 2, 0 _080340D8: .4byte gSprites -_080340DC: .4byte gUnknown_2023D44 +_080340DC: .4byte gBattlerSpriteIds _080340E0: - ldr r0, _08034144 @ =gUnknown_2037F1A + ldr r0, _08034144 @ =gBattleAnimAttacker mov r2, r10 strb r2, [r0] - ldr r0, _08034148 @ =gUnknown_2037F1B + ldr r0, _08034148 @ =gBattleAnimTarget mov r1, sp ldrb r1, [r1] strb r1, [r0] @@ -466,8 +466,8 @@ _08034132: pop {r1} bx r1 .align 2, 0 -_08034144: .4byte gUnknown_2037F1A -_08034148: .4byte gUnknown_2037F1B +_08034144: .4byte gBattleAnimAttacker +_08034148: .4byte gBattleAnimTarget _0803414C: .4byte gUnknown_2024018 _08034150: .4byte gUnknown_81C6EA8 _08034154: .4byte Task_ClearBitWhenBattleTableAnimDone @@ -551,9 +551,9 @@ InitAndLaunchSpecialAnimation: @ 80341D8 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 - ldr r0, _08034230 @ =gUnknown_2037F1A + ldr r0, _08034230 @ =gBattleAnimAttacker strb r1, [r0] - ldr r0, _08034234 @ =gUnknown_2037F1B + ldr r0, _08034234 @ =gBattleAnimTarget strb r2, [r0] ldr r0, _08034238 @ =gUnknown_81C6F18 adds r1, r3, 0 @@ -587,8 +587,8 @@ InitAndLaunchSpecialAnimation: @ 80341D8 pop {r0} bx r0 .align 2, 0 -_08034230: .4byte gUnknown_2037F1A -_08034234: .4byte gUnknown_2037F1B +_08034230: .4byte gBattleAnimAttacker +_08034234: .4byte gBattleAnimTarget _08034238: .4byte gUnknown_81C6F18 _0803423C: .4byte Task_ClearBitWhenSpecialAnimDone _08034240: .4byte gTasks @@ -756,7 +756,7 @@ _0803436C: bl GetBattlerPosition lsls r0, 24 lsls r2, r5, 3 - ldr r1, _080343C4 @ =gUnknown_82350AC + ldr r1, _080343C4 @ =gMonFrontPicTable adds r2, r1 ldr r1, _080343C8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -788,7 +788,7 @@ _0803436C: b _080343DA .align 2, 0 _080343C0: .4byte gUnknown_2024008 -_080343C4: .4byte gUnknown_82350AC +_080343C4: .4byte gMonFrontPicTable _080343C8: .4byte gMonSpritesGfxPtr _080343CC: .4byte gUnknown_2024018 _080343D0: @@ -946,7 +946,7 @@ _080344E4: beq _08034548 _0803451C: lsls r0, r5, 3 - ldr r1, _08034540 @ =gUnknown_823654C + ldr r1, _08034540 @ =gMonBackPicTable adds r0, r1 ldr r1, _08034544 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -961,11 +961,11 @@ _0803451C: .align 2, 0 _08034538: .4byte gUnknown_2024008 _0803453C: .4byte gUnknown_2024018 -_08034540: .4byte gUnknown_823654C +_08034540: .4byte gMonBackPicTable _08034544: .4byte gMonSpritesGfxPtr _08034548: lsls r0, r5, 3 - ldr r1, _08034584 @ =gUnknown_823654C + ldr r1, _08034584 @ =gMonBackPicTable adds r0, r1 ldr r1, _08034588 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -994,7 +994,7 @@ _08034562: bl GetMonFrontSpritePal b _0803459A .align 2, 0 -_08034584: .4byte gUnknown_823654C +_08034584: .4byte gMonBackPicTable _08034588: .4byte gMonSpritesGfxPtr _0803458C: .4byte gUnknown_2024018 _08034590: @@ -1149,7 +1149,7 @@ sub_80346C4: @ 80346C4 adds r4, r0, 0 lsls r4, 24 lsls r5, 3 - ldr r6, _0803473C @ =gUnknown_823957C + ldr r6, _0803473C @ =gTrainerFrontPicTable adds r6, r5, r6 ldr r0, _08034740 @ =gMonSpritesGfxPtr mov r8, r0 @@ -1181,7 +1181,7 @@ sub_80346C4: @ 80346C4 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet - ldr r0, _0803474C @ =gUnknown_8239A1C + ldr r0, _0803474C @ =gTrainerFrontPicPaletteTable adds r5, r0 adds r0, r5, 0 bl sub_800F078 @@ -1192,11 +1192,11 @@ sub_80346C4: @ 80346C4 pop {r0} bx r0 .align 2, 0 -_0803473C: .4byte gUnknown_823957C +_0803473C: .4byte gTrainerFrontPicTable _08034740: .4byte gMonSpritesGfxPtr _08034744: .4byte 0xffff0000 _08034748: .4byte 0x0000ffff -_0803474C: .4byte gUnknown_8239A1C +_0803474C: .4byte gTrainerFrontPicPaletteTable thumb_func_end sub_80346C4 thumb_func_start sub_8034750 @@ -1231,12 +1231,12 @@ sub_803477C: @ 803477C push {r4,lr} adds r4, r0, 0 lsls r4, 16 - ldr r0, _080347A0 @ =gUnknown_8239A1C + ldr r0, _080347A0 @ =gTrainerFrontPicPaletteTable lsrs r4, 13 adds r0, r4, r0 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag - ldr r0, _080347A4 @ =gUnknown_823957C + ldr r0, _080347A4 @ =gTrainerFrontPicTable adds r4, r0 ldrh r0, [r4, 0x6] bl FreeSpriteTilesByTag @@ -1244,8 +1244,8 @@ sub_803477C: @ 803477C pop {r0} bx r0 .align 2, 0 -_080347A0: .4byte gUnknown_8239A1C -_080347A4: .4byte gUnknown_823957C +_080347A0: .4byte gTrainerFrontPicPaletteTable +_080347A4: .4byte gTrainerFrontPicTable thumb_func_end sub_803477C thumb_func_start sub_80347A8 @@ -1718,7 +1718,7 @@ CopyAllBattleSpritesInvisibilities: @ 8034B40 negs r0, r0 mov r8, r0 ldr r7, _08034BAC @ =gUnknown_2024018 - ldr r6, _08034BB0 @ =gUnknown_2023D44 + ldr r6, _08034BB0 @ =gBattlerSpriteIds _08034B64: ldr r0, [r7] ldr r0, [r0] @@ -1756,7 +1756,7 @@ _08034B96: _08034BA4: .4byte gBattlersCount _08034BA8: .4byte gSprites _08034BAC: .4byte gUnknown_2024018 -_08034BB0: .4byte gUnknown_2023D44 +_08034BB0: .4byte gBattlerSpriteIds thumb_func_end CopyAllBattleSpritesInvisibilities thumb_func_start CopyBattleSpriteInvisibility @@ -1769,7 +1769,7 @@ CopyBattleSpriteInvisibility: @ 8034BB4 lsls r3, r0, 2 adds r3, r1 ldr r2, _08034BEC @ =gSprites - ldr r1, _08034BF0 @ =gUnknown_2023D44 + ldr r1, _08034BF0 @ =gBattlerSpriteIds adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 @@ -1790,7 +1790,7 @@ CopyBattleSpriteInvisibility: @ 8034BB4 .align 2, 0 _08034BE8: .4byte gUnknown_2024018 _08034BEC: .4byte gSprites -_08034BF0: .4byte gUnknown_2023D44 +_08034BF0: .4byte gBattlerSpriteIds thumb_func_end CopyBattleSpriteInvisibility thumb_func_start sub_8034BF4 @@ -1852,7 +1852,7 @@ _08034C16: adds r7, r0, 0 mov r1, r8 lsls r0, r1, 3 - ldr r1, _08034D60 @ =gUnknown_82350AC + ldr r1, _08034D60 @ =gMonFrontPicTable adds r0, r1 ldr r4, _08034D64 @ =gMonSpritesGfxPtr ldr r1, [r4] @@ -1869,7 +1869,7 @@ _08034C16: adds r0, r5 ldr r2, [r0] ldr r5, _08034D68 @ =gSprites - ldr r4, _08034D6C @ =gUnknown_2023D44 + ldr r4, _08034D6C @ =gBattlerSpriteIds add r4, r9 ldrb r1, [r4] lsls r0, r1, 4 @@ -1961,10 +1961,10 @@ _08034C16: .align 2, 0 _08034D58: .4byte gBattlerPartyIndexes _08034D5C: .4byte gEnemyParty -_08034D60: .4byte gUnknown_82350AC +_08034D60: .4byte gMonFrontPicTable _08034D64: .4byte gMonSpritesGfxPtr _08034D68: .4byte gSprites -_08034D6C: .4byte gUnknown_2023D44 +_08034D6C: .4byte gBattlerSpriteIds _08034D70: .4byte 0x06010000 _08034D74: .4byte 0x040000d4 _08034D78: .4byte 0x84000200 @@ -1974,7 +1974,7 @@ _08034D84: .4byte gUnknown_3004FF0 _08034D88: cmp r2, 0 beq _08034E4C - ldr r0, _08034E28 @ =gUnknown_2023D44 + ldr r0, _08034E28 @ =gBattlerSpriteIds mov r3, r9 adds r5, r3, r0 ldrb r1, [r5] @@ -2048,7 +2048,7 @@ _08034E0E: strh r0, [r1, 0x22] b _08035062 .align 2, 0 -_08034E28: .4byte gUnknown_2023D44 +_08034E28: .4byte gBattlerSpriteIds _08034E2C: .4byte gSprites _08034E30: .4byte gUnknown_2024018 _08034E34: .4byte gBattleStruct @@ -2122,7 +2122,7 @@ _08034E90: adds r7, r0, 0 mov r2, r8 lsls r0, r2, 3 - ldr r1, _08034F04 @ =gUnknown_823654C + ldr r1, _08034F04 @ =gMonBackPicTable adds r0, r1 ldr r1, _08034F08 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -2142,7 +2142,7 @@ _08034E90: .align 2, 0 _08034EFC: .4byte gBattlerPartyIndexes _08034F00: .4byte gPlayerParty -_08034F04: .4byte gUnknown_823654C +_08034F04: .4byte gMonBackPicTable _08034F08: .4byte gMonSpritesGfxPtr _08034F0C: .4byte gUnknown_2024008 _08034F10: @@ -2166,7 +2166,7 @@ _08034F10: adds r7, r0, 0 mov r2, r8 lsls r0, r2, 3 - ldr r1, _0803507C @ =gUnknown_82350AC + ldr r1, _0803507C @ =gMonFrontPicTable adds r0, r1 ldr r1, _08035080 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -2189,7 +2189,7 @@ _08034F5E: adds r0, 0x4 adds r0, r5 ldr r2, [r0] - ldr r0, _08035088 @ =gUnknown_2023D44 + ldr r0, _08035088 @ =gBattlerSpriteIds add r0, r9 str r0, [sp, 0x10] ldrb r1, [r0] @@ -2315,10 +2315,10 @@ _08035062: .align 2, 0 _08035074: .4byte gBattlerPartyIndexes _08035078: .4byte gEnemyParty -_0803507C: .4byte gUnknown_82350AC +_0803507C: .4byte gMonFrontPicTable _08035080: .4byte gMonSpritesGfxPtr _08035084: .4byte gUnknown_2024008 -_08035088: .4byte gUnknown_2023D44 +_08035088: .4byte gBattlerSpriteIds _0803508C: .4byte gSprites _08035090: .4byte 0x06010000 _08035094: .4byte 0x040000d4 @@ -2820,7 +2820,7 @@ _0803547C: cmp r0, 0 beq _08035514 ldr r4, _080354E4 @ =gSprites - ldr r0, _080354E8 @ =gUnknown_2023D44 + ldr r0, _080354E8 @ =gBattlerSpriteIds adds r3, r5, r0 ldrb r1, [r3] lsls r0, r1, 4 @@ -2864,7 +2864,7 @@ _0803547C: .align 2, 0 _080354E0: .4byte gBattlersCount _080354E4: .4byte gSprites -_080354E8: .4byte gUnknown_2023D44 +_080354E8: .4byte gBattlerSpriteIds _080354EC: .4byte gUnknown_2024018 _080354F0: ldrb r0, [r3] @@ -3026,7 +3026,7 @@ SpriteCB_EnemyShadow: @ 8035624 ldrh r0, [r5, 0x2E] lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _08035668 @ =gUnknown_2023D44 + ldr r0, _08035668 @ =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -3051,7 +3051,7 @@ _08035660: str r0, [r5, 0x1C] b _080356EA .align 2, 0 -_08035668: .4byte gUnknown_2023D44 +_08035668: .4byte gBattlerSpriteIds _0803566C: .4byte gSprites _08035670: .4byte SpriteCB_SetInvisible _08035674: diff --git a/asm/battle_interface.s b/asm/battle_interface.s index 8e109b6d6..393eb4ee6 100644 --- a/asm/battle_interface.s +++ b/asm/battle_interface.s @@ -5559,7 +5559,7 @@ AddTextPrinterAndCreateWindowOnHealthbox: @ 804A648 movs r1, 0 adds r2, r6, 0 mov r3, r8 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 mov r0, r10 str r4, [r0] adds r0, r5, 0 diff --git a/asm/battle_message.s b/asm/battle_message.s index 029ff9ed0..9505d542b 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -1604,7 +1604,7 @@ _080D7F9C: ldrh r0, [r0] _080D7FA0: mov r1, sp - bl sub_8099E90 + bl CopyItemName mov r4, sp b _080D8382 .align 2, 0 @@ -2495,12 +2495,12 @@ _080D8698: .4byte gUnknown_83FD8A2 _080D869C: adds r0, r2, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName b _080D86AE _080D86A6: adds r0, r2, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName _080D86AE: adds r5, 0x3 _080D86B0: @@ -2863,7 +2863,7 @@ _080D894A: movs r3, 0x1 b _080D8960 _080D8958: - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r3, r0, 24 _080D8960: diff --git a/asm/battle_records.s b/asm/battle_records.s index 392161676..e48a0025e 100644 --- a/asm/battle_records.s +++ b/asm/battle_records.s @@ -471,10 +471,10 @@ _080CD604: .4byte 0x81000800 thumb_func_start sub_80CD608 sub_80CD608: @ 80CD608 push {lr} - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData - bl dp13_810BB8C + bl ResetAllPicSprites bl ResetPaletteFade bl FreeAllSpritePalettes pop {r0} @@ -925,7 +925,7 @@ _080CD94C: .4byte 0x0000270f sub_80CD950: @ 80CD950 push {r4,lr} adds r4, r0, 0 - ldr r0, _080CD964 @ =gUnknown_2023E8A + ldr r0, _080CD964 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _080CD968 @@ -933,7 +933,7 @@ sub_80CD950: @ 80CD950 beq _080CD976 b _080CD984 .align 2, 0 -_080CD964: .4byte gUnknown_2023E8A +_080CD964: .4byte gBattleOutcome _080CD968: eors r0, r4 bl sub_80CD8F8 @@ -978,7 +978,7 @@ sub_80CD98C: @ 80CD98C subs r3, 0x30 adds r2, r3 ldrh r2, [r2, 0xE] - ldr r3, _080CD9EC @ =gUnknown_2023E8A + ldr r3, _080CD9EC @ =gBattleOutcome ldrb r3, [r3] ldr r5, _080CD9F0 @ =gLinkPlayers lsls r4, r6, 3 @@ -998,7 +998,7 @@ _080CD9DC: .4byte gSaveBlock1Ptr _080CD9E0: .4byte gSaveBlock2Ptr _080CD9E4: .4byte 0x00000a98 _080CD9E8: .4byte gUnknown_2039654 -_080CD9EC: .4byte gUnknown_2023E8A +_080CD9EC: .4byte gBattleOutcome _080CD9F0: .4byte gLinkPlayers thumb_func_end sub_80CD98C @@ -1092,7 +1092,7 @@ _080CDA72: movs r1, 0x2 movs r2, 0xC movs r3, 0x18 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r4-r7} pop {r0} @@ -1138,7 +1138,7 @@ sub_80CDAD0: @ 80CDAD0 movs r1, 0x2 movs r2, 0 mov r3, r8 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 movs r6, 0 _080CDB0E: movs r4, 0x54 @@ -1161,7 +1161,7 @@ _080CDB1C: movs r0, 0 movs r1, 0x2 mov r3, r8 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -1230,7 +1230,7 @@ _080CDBA6: movs r0, 0 movs r1, 0x2 mov r3, r8 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -1291,7 +1291,7 @@ sub_80CDBE4: @ 80CDBE4 movs r0, 0 movs r1, 0x2 movs r3, 0x4 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r5, _080CDCA8 @ =gSaveBlock2Ptr ldr r0, [r5] ldr r1, _080CDCAC @ =0x00000a98 @@ -1309,7 +1309,7 @@ sub_80CDBE4: @ 80CDBE4 movs r1, 0x2 movs r2, 0x54 movs r3, 0x30 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r7, r5, 0 movs r5, 0xF4 lsls r5, 22 diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s index ed0e6cb50..60b06f8a6 100644 --- a/asm/battle_script_commands.s +++ b/asm/battle_script_commands.s @@ -12,7 +12,7 @@ atk00_attackcanceler: @ 801D760 mov r6, r8 push {r6,r7} sub sp, 0x4 - ldr r0, _0801D77C @ =gUnknown_2023E8A + ldr r0, _0801D77C @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0 beq _0801D784 @@ -21,7 +21,7 @@ atk00_attackcanceler: @ 801D760 strb r0, [r1] b _0801DAFC .align 2, 0 -_0801D77C: .4byte gUnknown_2023E8A +_0801D77C: .4byte gBattleOutcome _0801D780: .4byte gUnknown_2023BE3 _0801D784: ldr r2, _0801D7B4 @ =gBattleMons @@ -9519,7 +9519,7 @@ _0802243C: ble _0802240C cmp r6, 0 bne _08022450 - ldr r0, _0802253C @ =gUnknown_2023E8A + ldr r0, _0802253C @ =gBattleOutcome ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 @@ -9553,7 +9553,7 @@ _08022484: adds r5, 0x1 cmp r5, 0x5 ble _08022454 - ldr r2, _0802253C @ =gUnknown_2023E8A + ldr r2, _0802253C @ =gBattleOutcome cmp r6, 0 bne _08022498 ldrb r0, [r2] @@ -9647,7 +9647,7 @@ _0802251E: .align 2, 0 _08022534: .4byte gUnknown_2023BC8 _08022538: .4byte gPlayerParty -_0802253C: .4byte gUnknown_2023E8A +_0802253C: .4byte gBattleOutcome _08022540: .4byte gEnemyParty _08022544: .4byte gBattleTypeFlags _08022548: .4byte gBattlersCount @@ -15311,7 +15311,7 @@ atk57: @ 80251C4 bl GetBattlerAtPosition ldr r4, _080251F0 @ =gActiveBattler strb r0, [r4] - ldr r0, _080251F4 @ =gUnknown_2023E8A + ldr r0, _080251F4 @ =gBattleOutcome ldrb r1, [r0] movs r0, 0 bl EmitCmd55 @@ -15326,7 +15326,7 @@ atk57: @ 80251C4 bx r0 .align 2, 0 _080251F0: .4byte gActiveBattler -_080251F4: .4byte gUnknown_2023E8A +_080251F4: .4byte gBattleOutcome _080251F8: .4byte gUnknown_2023D74 thumb_func_end atk57 @@ -16141,7 +16141,7 @@ sub_80258AC: @ 80258AC push {r7} movs r6, 0 movs r5, 0 - ldr r0, _080258F0 @ =gUnknown_2023E8A + ldr r0, _080258F0 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _080258C0 @@ -16171,7 +16171,7 @@ _080258C0: mov r8, r0 b _080259E8 .align 2, 0 -_080258F0: .4byte gUnknown_2023E8A +_080258F0: .4byte gBattleOutcome _080258F4: .4byte gTrainerBattleOpponent_A _080258F8: .4byte gBattleResources _080258FC: .4byte gBattleStruct @@ -17358,7 +17358,7 @@ _08026244: .4byte _08026380 .4byte _080263C4 _0802626C: - ldr r1, _08026290 @ =gUnknown_202297E + ldr r1, _08026290 @ =gBattle_BG2_Y movs r0, 0x60 strh r0, [r1] movs r0, 0x2 @@ -17373,7 +17373,7 @@ _0802626C: strb r0, [r1, 0x1E] b _080263F6 .align 2, 0 -_08026290: .4byte gUnknown_202297E +_08026290: .4byte gBattle_BG2_Y _08026294: .4byte gBattleScripting _08026298: bl sub_80264D0 @@ -17389,10 +17389,10 @@ _080262A4: .align 2, 0 _080262AC: .4byte gBattleScripting _080262B0: - ldr r1, _080262F8 @ =gUnknown_2022978 + ldr r1, _080262F8 @ =gBattle_BG1_X movs r0, 0 strh r0, [r1] - ldr r1, _080262FC @ =gUnknown_202297A + ldr r1, _080262FC @ =gBattle_BG1_Y movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 @@ -17421,8 +17421,8 @@ _080262B0: strb r0, [r1, 0x1E] b _080263F6 .align 2, 0 -_080262F8: .4byte gUnknown_2022978 -_080262FC: .4byte gUnknown_202297A +_080262F8: .4byte gBattle_BG1_X +_080262FC: .4byte gBattle_BG1_Y _08026300: .4byte gBattleScripting _08026304: bl sub_8026404 @@ -17438,11 +17438,11 @@ _08026318: lsrs r1, r0, 24 cmp r1, 0 bne _080263F6 - ldr r0, _0802632C @ =gUnknown_202297A + ldr r0, _0802632C @ =gBattle_BG1_Y strh r1, [r0] b _0802636E .align 2, 0 -_0802632C: .4byte gUnknown_202297A +_0802632C: .4byte gBattle_BG1_Y _08026330: ldr r0, _0802634C @ =gMain ldrh r0, [r0, 0x2E] @@ -17601,10 +17601,10 @@ _0802647C: .4byte gPlayerParty thumb_func_start sub_8026480 sub_8026480: @ 8026480 push {lr} - ldr r1, _080264C0 @ =gUnknown_202297E + ldr r1, _080264C0 @ =gBattle_BG2_Y movs r0, 0 strh r0, [r1] - ldr r1, _080264C4 @ =gUnknown_202297C + ldr r1, _080264C4 @ =gBattle_BG2_X movs r2, 0xD0 lsls r2, 1 adds r0, r2, 0 @@ -17627,8 +17627,8 @@ sub_8026480: @ 8026480 pop {r0} bx r0 .align 2, 0 -_080264C0: .4byte gUnknown_202297E -_080264C4: .4byte gUnknown_202297C +_080264C0: .4byte gBattle_BG2_Y +_080264C4: .4byte gBattle_BG2_X _080264C8: .4byte gUnknown_82506D0 _080264CC: .4byte gUnknown_82506F0 thumb_func_end sub_8026480 @@ -17643,7 +17643,7 @@ sub_80264D0: @ 80264D0 movs r0, 0x1 b _0802651A _080264E0: - ldr r4, _080264F0 @ =gUnknown_202297C + ldr r4, _080264F0 @ =gBattle_BG2_X ldrh r1, [r4] movs r5, 0x80 lsls r5, 2 @@ -17652,7 +17652,7 @@ _080264E0: movs r0, 0 b _0802651A .align 2, 0 -_080264F0: .4byte gUnknown_202297C +_080264F0: .4byte gBattle_BG2_X _080264F4: movs r0, 0xD0 lsls r0, 1 @@ -17823,7 +17823,7 @@ _08026624: thumb_func_start sub_8026648 sub_8026648: @ 8026648 push {lr} - ldr r0, _0802665C @ =gUnknown_202297C + ldr r0, _0802665C @ =gBattle_BG2_X ldrh r1, [r0] movs r3, 0xD0 lsls r3, 1 @@ -17833,7 +17833,7 @@ sub_8026648: @ 8026648 movs r0, 0 b _08026684 .align 2, 0 -_0802665C: .4byte gUnknown_202297C +_0802665C: .4byte gBattle_BG2_X _08026660: ldrh r0, [r2] adds r1, r0, 0 @@ -17930,7 +17930,7 @@ PutMonIconOnLvlUpBox: @ 8026688 adds r1, r2 movs r0, 0 strh r0, [r1, 0x2E] - ldr r0, _08026750 @ =gUnknown_202297C + ldr r0, _08026750 @ =gBattle_BG2_X ldrh r0, [r0] strh r0, [r1, 0x30] add sp, 0x10 @@ -17948,14 +17948,14 @@ _08026740: .4byte 0xd75a0000 _08026744: .4byte 0x0000d75a _08026748: .4byte gUnknown_82507C8 _0802674C: .4byte gSprites -_08026750: .4byte gUnknown_202297C +_08026750: .4byte gBattle_BG2_X thumb_func_end PutMonIconOnLvlUpBox thumb_func_start SpriteCB_MonIconOnLvlUpBox SpriteCB_MonIconOnLvlUpBox: @ 8026754 push {r4,lr} adds r2, r0, 0 - ldr r0, _08026770 @ =gUnknown_202297C + ldr r0, _08026770 @ =gBattle_BG2_X ldrh r1, [r2, 0x30] ldrh r0, [r0] subs r1, r0 @@ -17967,7 +17967,7 @@ SpriteCB_MonIconOnLvlUpBox: @ 8026754 strh r0, [r2, 0x2E] b _08026790 .align 2, 0 -_08026770: .4byte gUnknown_202297C +_08026770: .4byte gBattle_BG2_X _08026774: movs r1, 0x2E ldrsh r0, [r2, r1] @@ -32507,14 +32507,14 @@ _0802DAC4: .4byte sub_80116F4 _0802DAC8: bl sub_800F34C bl LoadBattleTextboxAndBackground - ldr r1, _0802DADC @ =gUnknown_2022980 + ldr r1, _0802DADC @ =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] b _0802DB34 .align 2, 0 -_0802DADC: .4byte gUnknown_2022980 +_0802DADC: .4byte gBattle_BG3_X _0802DAE0: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 @@ -32536,7 +32536,7 @@ _0802DAE0: str r0, [sp, 0xC] adds r0, r5, 0 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys str r4, [sp, 0x14] add r0, sp, 0x14 ldr r1, _0802DB48 @ =gPlttBufferFaded diff --git a/asm/battle_setup.s b/asm/battle_setup.s index 499d565f0..146e4a3c9 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -42,7 +42,7 @@ _0807F65E: cmp r0, 0x1 bne _0807F686 bl sub_812B484 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0807F68C @ =sub_800FD9C bl SetMainCallback2 bl sub_806D7E8 @@ -104,7 +104,7 @@ sub_807F6CC: @ 807F6CC bhi _0807F6FC ldr r0, _0807F6F8 @ =0x00000167 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 bne _0807F6FC @@ -318,8 +318,8 @@ _0807F8BC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _0807F8C0: .4byte gBattleTypeFlags thumb_func_end sub_807F888 - thumb_func_start sub_807F8C4 -sub_807F8C4: @ 807F8C4 + thumb_func_start BattleSetup_StartScriptedWildBattle +BattleSetup_StartScriptedWildBattle: @ 807F8C4 push {lr} bl ScriptContext2_Enable ldr r1, _0807F8F8 @ =gMain @@ -344,7 +344,7 @@ sub_807F8C4: @ 807F8C4 _0807F8F8: .4byte gMain _0807F8FC: .4byte sub_807FBA0 _0807F900: .4byte gBattleTypeFlags - thumb_func_end sub_807F8C4 + thumb_func_end BattleSetup_StartScriptedWildBattle thumb_func_start sub_807F904 sub_807F904: @ 807F904 @@ -356,7 +356,7 @@ sub_807F904: @ 807F904 str r0, [r1, 0x8] ldr r0, _0807F94C @ =0x00000167 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 cmp r0, 0 beq _0807F958 @@ -623,7 +623,7 @@ sub_807FB40: @ 807FB40 movs r0, 0 movs r1, 0x80 bl ResetOamRange - ldr r0, _0807FB78 @ =gUnknown_2023E8A + ldr r0, _0807FB78 @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated cmp r0, 0x1 @@ -633,12 +633,12 @@ sub_807FB40: @ 807FB40 b _0807FB8C .align 2, 0 _0807FB74: .4byte 0x01000100 -_0807FB78: .4byte gUnknown_2023E8A +_0807FB78: .4byte gBattleOutcome _0807FB7C: .4byte c2_whiteout _0807FB80: - ldr r0, _0807FB94 @ =c2_exit_to_overworld_2_switch + ldr r0, _0807FB94 @ =CB2_ReturnToField bl SetMainCallback2 - ldr r1, _0807FB98 @ =gUnknown_3005020 + ldr r1, _0807FB98 @ =gFieldCallback ldr r0, _0807FB9C @ =sub_807E3EC str r0, [r1] _0807FB8C: @@ -646,8 +646,8 @@ _0807FB8C: pop {r0} bx r0 .align 2, 0 -_0807FB94: .4byte c2_exit_to_overworld_2_switch -_0807FB98: .4byte gUnknown_3005020 +_0807FB94: .4byte CB2_ReturnToField +_0807FB98: .4byte gFieldCallback _0807FB9C: .4byte sub_807E3EC thumb_func_end sub_807FB40 @@ -666,7 +666,7 @@ sub_807FBA0: @ 807FBA0 movs r0, 0 movs r1, 0x80 bl ResetOamRange - ldr r0, _0807FBD8 @ =gUnknown_2023E8A + ldr r0, _0807FBD8 @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated cmp r0, 0x1 @@ -676,7 +676,7 @@ sub_807FBA0: @ 807FBA0 b _0807FBE6 .align 2, 0 _0807FBD4: .4byte 0x01000100 -_0807FBD8: .4byte gUnknown_2023E8A +_0807FBD8: .4byte gBattleOutcome _0807FBDC: .4byte c2_whiteout _0807FBE0: ldr r0, _0807FBEC @ =c2_exit_to_overworld_1_continue_scripts_restart_music @@ -704,7 +704,7 @@ sub_807FBF0: @ 807FBF0 movs r0, 0 movs r1, 0x80 bl ResetOamRange - ldr r4, _0807FC28 @ =gUnknown_2023E8A + ldr r4, _0807FC28 @ =gBattleOutcome ldrb r0, [r4] bl IsPlayerDefeated adds r1, r0, 0 @@ -715,7 +715,7 @@ sub_807FBF0: @ 807FBF0 b _0807FC4C .align 2, 0 _0807FC24: .4byte 0x01000100 -_0807FC28: .4byte gUnknown_2023E8A +_0807FC28: .4byte gBattleOutcome _0807FC2C: .4byte c2_whiteout _0807FC30: ldrb r0, [r4] @@ -1512,7 +1512,7 @@ battle_80801F0: @ 80801F0 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl GetFieldObjectIdByLocalIdAndMap - ldr r1, _08080224 @ =gUnknown_3005074 + ldr r1, _08080224 @ =gSelectedEventObject strb r0, [r1] _08080212: pop {r0} @@ -1521,11 +1521,11 @@ _08080212: _08080218: .4byte gUnknown_20386B0 _0808021C: .4byte gSpecialVar_LastTalked _08080220: .4byte gSaveBlock1Ptr -_08080224: .4byte gUnknown_3005074 +_08080224: .4byte gSelectedEventObject thumb_func_end battle_80801F0 - thumb_func_start sub_8080228 -sub_8080228: @ 8080228 + thumb_func_start BattleSetup_ConfigureTrainerBattle +BattleSetup_ConfigureTrainerBattle: @ 8080228 push {r4,r5,lr} adds r5, r0, 0 bl sub_8080110 @@ -1640,14 +1640,14 @@ _08080326: .align 2, 0 _0808032C: .4byte gUnknown_83C6900 _08080330: .4byte gUnknown_81A4EC1 - thumb_func_end sub_8080228 + thumb_func_end BattleSetup_ConfigureTrainerBattle thumb_func_start TrainerWantsBattle TrainerWantsBattle: @ 8080334 push {r4,lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _08080368 @ =gUnknown_3005074 + ldr r2, _08080368 @ =gSelectedEventObject strb r0, [r2] ldr r4, _0808036C @ =gSpecialVar_LastTalked ldr r3, _08080370 @ =gMapObjects @@ -1659,7 +1659,7 @@ TrainerWantsBattle: @ 8080334 strh r0, [r4] adds r1, 0x1 adds r0, r1, 0 - bl sub_8080228 + bl BattleSetup_ConfigureTrainerBattle ldr r0, _08080374 @ =gUnknown_81A4EB4 bl ScriptContext1_SetupScript bl ScriptContext2_Enable @@ -1667,7 +1667,7 @@ TrainerWantsBattle: @ 8080334 pop {r0} bx r0 .align 2, 0 -_08080368: .4byte gUnknown_3005074 +_08080368: .4byte gSelectedEventObject _0808036C: .4byte gSpecialVar_LastTalked _08080370: .4byte gMapObjects _08080374: .4byte gUnknown_81A4EB4 @@ -1693,7 +1693,7 @@ GetTrainerFlagFromScriptPointer: @ 8080378 thumb_func_start sub_8080398 sub_8080398: @ 8080398 push {r4,lr} - ldr r0, _080803C4 @ =gUnknown_3005074 + ldr r0, _080803C4 @ =gSelectedEventObject ldrb r0, [r0] lsls r4, r0, 3 adds r4, r0 @@ -1713,7 +1713,7 @@ sub_8080398: @ 8080398 pop {r0} bx r0 .align 2, 0 -_080803C4: .4byte gUnknown_3005074 +_080803C4: .4byte gSelectedEventObject _080803C8: .4byte gMapObjects thumb_func_end sub_8080398 @@ -1785,8 +1785,8 @@ HasTrainerAlreadyBeenFought: @ 8080424 bx r1 thumb_func_end HasTrainerAlreadyBeenFought - thumb_func_start trainer_flag_set -trainer_flag_set: @ 808043C + thumb_func_start SetTrainerFlag +SetTrainerFlag: @ 808043C push {lr} lsls r0, 16 movs r1, 0xA0 @@ -1796,10 +1796,10 @@ trainer_flag_set: @ 808043C bl FlagSet pop {r0} bx r0 - thumb_func_end trainer_flag_set + thumb_func_end SetTrainerFlag - thumb_func_start trainer_flag_clear -trainer_flag_clear: @ 8080450 + thumb_func_start ClearTrainerFlag +ClearTrainerFlag: @ 8080450 push {lr} lsls r0, 16 movs r1, 0xA0 @@ -1809,10 +1809,10 @@ trainer_flag_clear: @ 8080450 bl FlagClear pop {r0} bx r0 - thumb_func_end trainer_flag_clear + thumb_func_end ClearTrainerFlag - thumb_func_start sub_8080464 -sub_8080464: @ 8080464 + thumb_func_start BattleSetup_StartTrainerBattle +BattleSetup_StartTrainerBattle: @ 8080464 push {r4,lr} ldr r4, _080804A0 @ =gBattleTypeFlags movs r0, 0x8 @@ -1844,7 +1844,7 @@ _0808048C: _080804A0: .4byte gBattleTypeFlags _080804A4: .4byte gMain _080804A8: .4byte sub_80804AC - thumb_func_end sub_8080464 + thumb_func_end BattleSetup_StartTrainerBattle thumb_func_start sub_80804AC sub_80804AC: @ 80804AC @@ -1853,7 +1853,7 @@ sub_80804AC: @ 80804AC ldrh r0, [r0] cmp r0, 0x9 bne _08080508 - ldr r0, _080804DC @ =gUnknown_2023E8A + ldr r0, _080804DC @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated adds r1, r0, 0 @@ -1870,7 +1870,7 @@ sub_80804AC: @ 80804AC b _080804EE .align 2, 0 _080804D8: .4byte gUnknown_20386AC -_080804DC: .4byte gUnknown_2023E8A +_080804DC: .4byte gBattleOutcome _080804E0: .4byte gSpecialVar_Result _080804E4: .4byte gUnknown_20386CC _080804E8: @@ -1900,7 +1900,7 @@ _08080508: _0808051C: .4byte gTrainerBattleOpponent_A _08080520: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _08080524: - ldr r0, _08080538 @ =gUnknown_2023E8A + ldr r0, _08080538 @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated cmp r0, 0x1 @@ -1910,7 +1910,7 @@ _08080530: bl SetMainCallback2 b _0808054E .align 2, 0 -_08080538: .4byte gUnknown_2023E8A +_08080538: .4byte gBattleOutcome _0808053C: .4byte c2_whiteout _08080540: ldr r0, _08080554 @ =c2_exit_to_overworld_1_continue_scripts_restart_music @@ -1940,7 +1940,7 @@ sub_8080558: @ 8080558 _08080570: .4byte gTrainerBattleOpponent_A _08080574: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _08080578: - ldr r0, _0808058C @ =gUnknown_2023E8A + ldr r0, _0808058C @ =gBattleOutcome ldrb r0, [r0] bl IsPlayerDefeated cmp r0, 0x1 @@ -1949,7 +1949,7 @@ _08080578: bl SetMainCallback2 b _080805A6 .align 2, 0 -_0808058C: .4byte gUnknown_2023E8A +_0808058C: .4byte gBattleOutcome _08080590: .4byte c2_whiteout _08080594: ldr r0, _080805AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music @@ -1992,8 +1992,8 @@ sub_80805D8: @ 80805D8 bx r0 thumb_func_end sub_80805D8 - thumb_func_start sub_80805E8 -sub_80805E8: @ 80805E8 + thumb_func_start BattleSetup_GetScriptAddrAfterBattle +BattleSetup_GetScriptAddrAfterBattle: @ 80805E8 push {lr} ldr r0, _080805F8 @ =gUnknown_20386C4 ldr r0, [r0] @@ -2006,10 +2006,10 @@ _080805F4: .align 2, 0 _080805F8: .4byte gUnknown_20386C4 _080805FC: .4byte gUnknown_81C555B - thumb_func_end sub_80805E8 + thumb_func_end BattleSetup_GetScriptAddrAfterBattle - thumb_func_start sub_8080600 -sub_8080600: @ 8080600 + thumb_func_start BattleSetup_GetTrainerPostBattleScript +BattleSetup_GetTrainerPostBattleScript: @ 8080600 push {lr} ldr r0, _08080610 @ =gUnknown_20386C8 ldr r0, [r0] @@ -2022,7 +2022,7 @@ _0808060C: .align 2, 0 _08080610: .4byte gUnknown_20386C8 _08080614: .4byte gUnknown_81C555B - thumb_func_end sub_8080600 + thumb_func_end BattleSetup_GetTrainerPostBattleScript thumb_func_start sub_8080618 sub_8080618: @ 8080618 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 82922b88f..503a6343e 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -2033,7 +2033,7 @@ sub_80E68C4: @ 80E68C4 ldr r0, _080E68F4 @ =gMain ldr r1, _080E68F8 @ =sub_80E6854 str r1, [r0, 0x8] - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _080E68FC @ =sub_800FD9C bl SetMainCallback2 adds r0, r4, 0 @@ -2894,7 +2894,7 @@ _080E6FF2: bl sub_80E712C ldr r4, _080E703C @ =gSaveBlock2Ptr ldr r0, [r4] - ldr r1, _080E704C @ =gUnknown_2023E8A + ldr r1, _080E704C @ =gBattleOutcome ldrb r1, [r1] ldr r2, _080E7050 @ =0x0000055d adds r0, r2 @@ -2930,7 +2930,7 @@ _080E703C: .4byte gSaveBlock2Ptr _080E7040: .4byte 0x0000055c _080E7044: .4byte gSpecialVar_0x8004 _080E7048: .4byte 0x00000564 -_080E704C: .4byte gUnknown_2023E8A +_080E704C: .4byte gBattleOutcome _080E7050: .4byte 0x0000055d _080E7054: .4byte 0x0000055e thumb_func_end sub_80E6FB8 @@ -3218,7 +3218,7 @@ sub_80E724C: @ 80E724C adds r1, r0 ldrh r0, [r1] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 @@ -3229,7 +3229,7 @@ sub_80E724C: @ 80E724C adds r0, r1 ldrh r0, [r0] ldr r1, _080E7290 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _080E7294 @ =gSpecialVar_Result strh r4, [r0] b _080E72AA @@ -3612,7 +3612,7 @@ _080E754C: .4byte gSaveBlock2Ptr thumb_func_start sub_80E7550 sub_80E7550: @ 80E7550 push {lr} - ldr r0, _080E7564 @ =gUnknown_2023E8A + ldr r0, _080E7564 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x3 bne _080E756C @@ -3621,7 +3621,7 @@ sub_80E7550: @ 80E7550 strb r0, [r1] b _080E7590 .align 2, 0 -_080E7564: .4byte gUnknown_2023E8A +_080E7564: .4byte gBattleOutcome _080E7568: .4byte gStringVar4 _080E756C: cmp r0, 0x1 diff --git a/asm/battle_transition.s b/asm/battle_transition.s index ae1c7fa08..cf761a220 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -463,7 +463,7 @@ sub_80D0C0C: @ 80D0C0C sub sp, 0x8 adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r0, 0x1 negs r0, r0 movs r4, 0 @@ -472,7 +472,7 @@ sub_80D0C0C: @ 80D0C0C movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r0, _080D0C68 @ =gUnknown_2038E80 + ldr r0, _080D0C68 @ =gScanlineEffectRegBuffers + 0x780 ldr r1, _080D0C6C @ =gUnknown_2039A2C ldr r1, [r1] movs r2, 0x14 @@ -498,7 +498,7 @@ sub_80D0C0C: @ 80D0C0C pop {r1} bx r1 .align 2, 0 -_080D0C68: .4byte gUnknown_2038E80 +_080D0C68: .4byte gScanlineEffectRegBuffers + 0x780 _080D0C6C: .4byte gUnknown_2039A2C _080D0C70: .4byte sub_80D0CF0 _080D0C74: .4byte sub_80D0D28 @@ -519,7 +519,7 @@ sub_80D0C78: @ 80D0C78 ldrh r1, [r0, 0xC] adds r1, 0x8 strh r1, [r0, 0xC] - ldr r3, _080D0CE4 @ =gUnknown_2038700 + ldr r3, _080D0CE4 @ =gScanlineEffectRegBuffers ldr r1, [r4] movs r2, 0x14 ldrsh r1, [r1, r2] @@ -557,7 +557,7 @@ _080D0CCA: bx r1 .align 2, 0 _080D0CE0: .4byte gUnknown_2039A2C -_080D0CE4: .4byte gUnknown_2038700 +_080D0CE4: .4byte gScanlineEffectRegBuffers _080D0CE8: .4byte gPaletteFade _080D0CEC: .4byte sub_80D0BD4 thumb_func_end sub_80D0C78 @@ -572,7 +572,7 @@ sub_80D0CF0: @ 80D0CF0 cmp r0, 0 beq _080D0D14 ldr r1, _080D0D1C @ =0x040000d4 - ldr r0, _080D0D20 @ =gUnknown_2038700 + ldr r0, _080D0D20 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -587,13 +587,13 @@ _080D0D14: .align 2, 0 _080D0D18: .4byte gUnknown_2039A2C _080D0D1C: .4byte 0x040000d4 -_080D0D20: .4byte gUnknown_2038700 +_080D0D20: .4byte gScanlineEffectRegBuffers _080D0D24: .4byte 0x800000a0 thumb_func_end sub_80D0CF0 thumb_func_start sub_80D0D28 sub_80D0D28: @ 80D0D28 - ldr r1, _080D0D48 @ =gUnknown_2038700 + ldr r1, _080D0D48 @ =gScanlineEffectRegBuffers ldr r0, _080D0D4C @ =0x04000006 ldrh r0, [r0] lsls r0, 1 @@ -610,7 +610,7 @@ sub_80D0D28: @ 80D0D28 strh r1, [r0] bx lr .align 2, 0 -_080D0D48: .4byte gUnknown_2038700 +_080D0D48: .4byte gScanlineEffectRegBuffers _080D0D4C: .4byte 0x04000006 _080D0D50: .4byte 0x04000014 thumb_func_end sub_80D0D28 @@ -651,7 +651,7 @@ sub_80D0D8C: @ 80D0D8C sub sp, 0x4 adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r0, 0x1 negs r0, r0 movs r1, 0 @@ -662,7 +662,7 @@ sub_80D0D8C: @ 80D0D8C bl BeginNormalPaletteFade ldr r0, _080D0DE0 @ =gUnknown_2039A2C ldr r1, [r0] - ldr r0, _080D0DE4 @ =gUnknown_2038E80 + ldr r0, _080D0DE4 @ =gScanlineEffectRegBuffers + 0x780 movs r2, 0x16 ldrsh r1, [r1, r2] movs r2, 0xA0 @@ -684,7 +684,7 @@ sub_80D0D8C: @ 80D0D8C bx r1 .align 2, 0 _080D0DE0: .4byte gUnknown_2039A2C -_080D0DE4: .4byte gUnknown_2038E80 +_080D0DE4: .4byte gScanlineEffectRegBuffers + 0x780 _080D0DE8: .4byte sub_80D0E80 _080D0DEC: .4byte sub_80D0EB8 thumb_func_end sub_80D0D8C @@ -715,7 +715,7 @@ _080D0E18: lsrs r0, r4, 8 asrs r1, r7, 16 bl Sin - ldr r1, _080D0E74 @ =gUnknown_2038700 + ldr r1, _080D0E74 @ =gScanlineEffectRegBuffers lsls r2, r5, 1 adds r2, r1 ldr r6, _080D0E70 @ =gUnknown_2039A2C @@ -756,7 +756,7 @@ _080D0E5E: bx r1 .align 2, 0 _080D0E70: .4byte gUnknown_2039A2C -_080D0E74: .4byte gUnknown_2038700 +_080D0E74: .4byte gScanlineEffectRegBuffers _080D0E78: .4byte gPaletteFade _080D0E7C: .4byte sub_80D0D54 thumb_func_end sub_80D0DF0 @@ -771,7 +771,7 @@ sub_80D0E80: @ 80D0E80 cmp r0, 0 beq _080D0EA4 ldr r1, _080D0EAC @ =0x040000d4 - ldr r0, _080D0EB0 @ =gUnknown_2038700 + ldr r0, _080D0EB0 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -786,13 +786,13 @@ _080D0EA4: .align 2, 0 _080D0EA8: .4byte gUnknown_2039A2C _080D0EAC: .4byte 0x040000d4 -_080D0EB0: .4byte gUnknown_2038700 +_080D0EB0: .4byte gScanlineEffectRegBuffers _080D0EB4: .4byte 0x800000a0 thumb_func_end sub_80D0E80 thumb_func_start sub_80D0EB8 sub_80D0EB8: @ 80D0EB8 - ldr r1, _080D0ED8 @ =gUnknown_2038700 + ldr r1, _080D0ED8 @ =gScanlineEffectRegBuffers ldr r0, _080D0EDC @ =0x04000006 ldrh r0, [r0] lsls r0, 1 @@ -809,7 +809,7 @@ sub_80D0EB8: @ 80D0EB8 strh r1, [r0] bx lr .align 2, 0 -_080D0ED8: .4byte gUnknown_2038700 +_080D0ED8: .4byte gScanlineEffectRegBuffers _080D0EDC: .4byte 0x04000006 _080D0EE0: .4byte 0x04000016 thumb_func_end sub_80D0EB8 @@ -850,7 +850,7 @@ sub_80D0F1C: @ 80D0F1C sub sp, 0xC adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r1, 0 movs r0, 0x10 strh r0, [r4, 0xA] @@ -878,7 +878,7 @@ sub_80D0F1C: @ 80D0F1C movs r1, 0 add r5, sp, 0x4 add r6, sp, 0x8 - ldr r3, _080D0FC0 @ =gUnknown_2038E80 + ldr r3, _080D0FC0 @ =gScanlineEffectRegBuffers + 0x780 movs r2, 0xF0 _080D0F64: lsls r0, r1, 1 @@ -921,7 +921,7 @@ _080D0F64: .align 2, 0 _080D0FB8: .4byte gUnknown_2039A2C _080D0FBC: .4byte 0x00003f41 -_080D0FC0: .4byte gUnknown_2038E80 +_080D0FC0: .4byte gScanlineEffectRegBuffers + 0x780 _080D0FC4: .4byte sub_80D1370 _080D0FC8: .4byte 0x01000400 _080D0FCC: .4byte gUnknown_83F87A0 @@ -943,7 +943,7 @@ sub_80D0FD4: @ 80D0FD4 movs r1, 0 ldr r0, [sp, 0x8] mov r9, r0 - ldr r6, _080D1060 @ =gUnknown_2038700 + ldr r6, _080D1060 @ =gScanlineEffectRegBuffers mov r8, r6 movs r0, 0xF0 lsls r0, 8 @@ -1000,7 +1000,7 @@ _080D1000: bx r1 .align 2, 0 _080D105C: .4byte gUnknown_83FA784 -_080D1060: .4byte gUnknown_2038700 +_080D1060: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D0FD4 thumb_func_start sub_80D1064 @@ -1053,7 +1053,7 @@ _080D10AE: ldrh r5, [r3, 0x12] adds r1, r5 strh r1, [r3, 0x12] - ldr r0, _080D10F4 @ =gUnknown_2038700 + ldr r0, _080D10F4 @ =gScanlineEffectRegBuffers movs r5, 0x10 ldrsh r2, [r3, r5] lsls r1, 16 @@ -1077,7 +1077,7 @@ _080D10AE: .align 2, 0 _080D10EC: .4byte gUnknown_2039A2C _080D10F0: .4byte 0xfffffe80 -_080D10F4: .4byte gUnknown_2038700 +_080D10F4: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D1064 thumb_func_start sub_80D10F8 @@ -1139,7 +1139,7 @@ _080D1160: movs r0, 0 _080D1162: strh r0, [r3, 0x12] - ldr r0, _080D1194 @ =gUnknown_2038700 + ldr r0, _080D1194 @ =gScanlineEffectRegBuffers movs r1, 0x10 ldrsh r2, [r3, r1] ldrh r1, [r3, 0x12] @@ -1163,7 +1163,7 @@ _080D1162: pop {r1} bx r1 .align 2, 0 -_080D1194: .4byte gUnknown_2038700 +_080D1194: .4byte gScanlineEffectRegBuffers _080D1198: .4byte gUnknown_2039A2C thumb_func_end sub_80D10F8 @@ -1195,7 +1195,7 @@ _080D11C8: .4byte 0xfffffe80 _080D11CC: strh r2, [r4, 0x12] _080D11CE: - ldr r0, _080D1218 @ =gUnknown_2038700 + ldr r0, _080D1218 @ =gScanlineEffectRegBuffers movs r3, 0x10 ldrsh r2, [r4, r3] ldrh r1, [r4, 0x12] @@ -1233,7 +1233,7 @@ _080D1202: pop {r1} bx r1 .align 2, 0 -_080D1218: .4byte gUnknown_2038700 +_080D1218: .4byte gScanlineEffectRegBuffers _080D121C: .4byte gUnknown_2039A2C thumb_func_end sub_80D119C @@ -1272,7 +1272,7 @@ _080D1242: bge _080D125E strh r3, [r4, 0xA] _080D125E: - ldr r0, _080D12CC @ =gUnknown_2038700 + ldr r0, _080D12CC @ =gScanlineEffectRegBuffers movs r1, 0xA ldrsh r3, [r4, r1] movs r1, 0x78 @@ -1322,7 +1322,7 @@ _080D12AE: .align 2, 0 _080D12C4: .4byte gUnknown_2039A2C _080D12C8: .4byte 0x000007ff -_080D12CC: .4byte gUnknown_2038700 +_080D12CC: .4byte gScanlineEffectRegBuffers _080D12D0: .4byte 0x040000b0 _080D12D4: .4byte 0x0000c5ff _080D12D8: .4byte 0x00007fff @@ -1350,7 +1350,7 @@ sub_80D12E4: @ 80D12E4 cmp r0, 0 beq _080D131C ldr r1, _080D1364 @ =0x040000d4 - ldr r0, _080D1368 @ =gUnknown_2038700 + ldr r0, _080D1368 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -1389,7 +1389,7 @@ _080D1358: .4byte 0x0000c5ff _080D135C: .4byte 0x00007fff _080D1360: .4byte gUnknown_2039A2C _080D1364: .4byte 0x040000d4 -_080D1368: .4byte gUnknown_2038700 +_080D1368: .4byte gScanlineEffectRegBuffers _080D136C: .4byte 0x800000a0 thumb_func_end sub_80D12E4 @@ -1398,7 +1398,7 @@ sub_80D1370: @ 80D1370 push {lr} bl sub_80D12E4 ldr r1, _080D138C @ =0x040000b0 - ldr r0, _080D1390 @ =gUnknown_2038E80 + ldr r0, _080D1390 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r1] ldr r0, _080D1394 @ =0x04000010 str r0, [r1, 0x4] @@ -1409,7 +1409,7 @@ sub_80D1370: @ 80D1370 bx r0 .align 2, 0 _080D138C: .4byte 0x040000b0 -_080D1390: .4byte gUnknown_2038E80 +_080D1390: .4byte gScanlineEffectRegBuffers + 0x780 _080D1394: .4byte 0x04000010 _080D1398: .4byte 0xa2400001 thumb_func_end sub_80D1370 @@ -1419,7 +1419,7 @@ sub_80D139C: @ 80D139C push {lr} bl sub_80D12E4 ldr r1, _080D13B8 @ =0x040000b0 - ldr r0, _080D13BC @ =gUnknown_2038E80 + ldr r0, _080D13BC @ =gScanlineEffectRegBuffers + 0x780 str r0, [r1] ldr r0, _080D13C0 @ =0x04000040 str r0, [r1, 0x4] @@ -1430,7 +1430,7 @@ sub_80D139C: @ 80D139C bx r0 .align 2, 0 _080D13B8: .4byte 0x040000b0 -_080D13BC: .4byte gUnknown_2038E80 +_080D13BC: .4byte gScanlineEffectRegBuffers + 0x780 _080D13C0: .4byte 0x04000040 _080D13C4: .4byte 0xa2400001 thumb_func_end sub_80D139C @@ -1782,7 +1782,7 @@ sub_80D1670: @ 80D1670 push {r4,lr} adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D16C4 @ =gUnknown_2039A2C ldr r1, [r0] movs r0, 0 @@ -1794,7 +1794,7 @@ sub_80D1670: @ 80D1670 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r3, _080D16CC @ =gUnknown_2038E80 + ldr r3, _080D16CC @ =gScanlineEffectRegBuffers + 0x780 ldr r2, _080D16D0 @ =0x0000f3f4 _080D1696: lsls r0, r1, 1 @@ -1821,7 +1821,7 @@ _080D1696: .align 2, 0 _080D16C4: .4byte gUnknown_2039A2C _080D16C8: .4byte 0x0000f0f1 -_080D16CC: .4byte gUnknown_2038E80 +_080D16CC: .4byte gScanlineEffectRegBuffers + 0x780 _080D16D0: .4byte 0x0000f3f4 _080D16D4: .4byte sub_80D1ABC thumb_func_end sub_80D1670 @@ -1850,7 +1850,7 @@ sub_80D16D8: @ 80D16D8 movs r1, 0x78 movs r2, 0x50 bl sub_80D4088 - ldr r5, _080D1764 @ =gUnknown_2038700 + ldr r5, _080D1764 @ =gScanlineEffectRegBuffers _080D1708: ldr r4, _080D1760 @ =gUnknown_2039A2C ldr r0, [r4] @@ -1898,7 +1898,7 @@ _080D174C: bx r1 .align 2, 0 _080D1760: .4byte gUnknown_2039A2C -_080D1764: .4byte gUnknown_2038700 +_080D1764: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D16D8 thumb_func_start sub_80D1768 @@ -1947,7 +1947,7 @@ _080D17A6: ldrh r1, [r3, 0x28] movs r4, 0xF0 _080D17BE: - ldr r6, _080D17F0 @ =gUnknown_2038700 + ldr r6, _080D17F0 @ =gScanlineEffectRegBuffers movs r0, 0x2A ldrsh r2, [r3, r0] lsls r2, 1 @@ -1970,7 +1970,7 @@ _080D17BE: b _080D17A6 .align 2, 0 _080D17EC: .4byte gUnknown_2039A2C -_080D17F0: .4byte gUnknown_2038700 +_080D17F0: .4byte gScanlineEffectRegBuffers _080D17F4: ldr r1, [r7] ldrh r0, [r1, 0x2E] @@ -2051,7 +2051,7 @@ sub_80D185C: @ 80D185C movs r1, 0x78 movs r2, 0x50 bl sub_80D4088 - ldr r5, _080D18E0 @ =gUnknown_2038700 + ldr r5, _080D18E0 @ =gScanlineEffectRegBuffers _080D188A: ldr r4, _080D18DC @ =gUnknown_2039A2C ldr r0, [r4] @@ -2096,7 +2096,7 @@ _080D18C8: bx r1 .align 2, 0 _080D18DC: .4byte gUnknown_2039A2C -_080D18E0: .4byte gUnknown_2038700 +_080D18E0: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D185C thumb_func_start sub_80D18E4 @@ -2129,7 +2129,7 @@ sub_80D18E4: @ 80D18E4 movs r2, 0x50 movs r3, 0 bl sub_80D4088 - ldr r7, _080D1970 @ =gUnknown_2038700 + ldr r7, _080D1970 @ =gScanlineEffectRegBuffers mov r10, r7 ldr r0, _080D196C @ =gUnknown_2039A2C mov r8, r0 @@ -2171,7 +2171,7 @@ _080D1948: b _080D1928 .align 2, 0 _080D196C: .4byte gUnknown_2039A2C -_080D1970: .4byte gUnknown_2038700 +_080D1970: .4byte gScanlineEffectRegBuffers _080D1974: mov r0, r8 ldr r2, [r0] @@ -2193,7 +2193,7 @@ _080D1992: ldrsh r0, [r2, r4] cmp r0, r3 ble _080D19BC - ldr r6, _080D19DC @ =gUnknown_2038700 + ldr r6, _080D19DC @ =gScanlineEffectRegBuffers adds r3, r1, 0 ldr r5, _080D19E0 @ =gUnknown_2039A2C _080D19A0: @@ -2228,7 +2228,7 @@ _080D19BC: pop {r1} bx r1 .align 2, 0 -_080D19DC: .4byte gUnknown_2038700 +_080D19DC: .4byte gScanlineEffectRegBuffers _080D19E0: .4byte gUnknown_2039A2C thumb_func_end sub_80D18E4 @@ -2254,7 +2254,7 @@ sub_80D19E4: @ 80D19E4 movs r1, 0x78 movs r2, 0x50 bl sub_80D4088 - ldr r6, _080D1A78 @ =gUnknown_2038700 + ldr r6, _080D1A78 @ =gScanlineEffectRegBuffers _080D1A10: movs r2, 0x78 ldr r5, _080D1A74 @ =gUnknown_2039A2C @@ -2308,7 +2308,7 @@ _080D1A5E: bx r1 .align 2, 0 _080D1A74: .4byte gUnknown_2039A2C -_080D1A78: .4byte gUnknown_2038700 +_080D1A78: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D19E4 thumb_func_start sub_80D1A7C @@ -2360,7 +2360,7 @@ sub_80D1ABC: @ 80D1ABC cmp r0, 0 beq _080D1AF4 ldr r1, _080D1B44 @ =0x040000d4 - ldr r0, _080D1B48 @ =gUnknown_2038700 + ldr r0, _080D1B48 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -2382,7 +2382,7 @@ _080D1AF4: ldrh r1, [r0, 0x8] movs r0, 0x44 bl SetGpuReg - ldr r4, _080D1B48 @ =gUnknown_2038700 + ldr r4, _080D1B48 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r4, r0 @@ -2404,7 +2404,7 @@ _080D1B38: .4byte 0x0000c5ff _080D1B3C: .4byte 0x00007fff _080D1B40: .4byte gUnknown_2039A2C _080D1B44: .4byte 0x040000d4 -_080D1B48: .4byte gUnknown_2038700 +_080D1B48: .4byte gScanlineEffectRegBuffers _080D1B4C: .4byte 0x800000a0 _080D1B50: .4byte 0x04000040 _080D1B54: .4byte 0xa2400001 @@ -2445,9 +2445,9 @@ sub_80D1B90: @ 80D1B90 push {r4,r5,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r2, 0 - ldr r4, _080D1BD8 @ =gUnknown_2038E80 + ldr r4, _080D1BD8 @ =gScanlineEffectRegBuffers + 0x780 ldr r3, _080D1BDC @ =gUnknown_2039A2C _080D1BA2: lsls r1, r2, 1 @@ -2474,7 +2474,7 @@ _080D1BA2: pop {r1} bx r1 .align 2, 0 -_080D1BD8: .4byte gUnknown_2038E80 +_080D1BD8: .4byte gScanlineEffectRegBuffers + 0x780 _080D1BDC: .4byte gUnknown_2039A2C _080D1BE0: .4byte sub_80D1CC8 _080D1BE4: .4byte sub_80D1D00 @@ -2519,7 +2519,7 @@ _080D1C28: lsrs r0, r4, 8 asrs r1, r7, 16 bl Sin - ldr r1, _080D1CBC @ =gUnknown_2038700 + ldr r1, _080D1CBC @ =gScanlineEffectRegBuffers lsls r2, r5, 1 adds r2, r1 ldr r1, _080D1CB4 @ =gUnknown_2039A2C @@ -2587,7 +2587,7 @@ _080D1C9A: .align 2, 0 _080D1CB4: .4byte gUnknown_2039A2C _080D1CB8: .4byte 0x1fff0000 -_080D1CBC: .4byte gUnknown_2038700 +_080D1CBC: .4byte gScanlineEffectRegBuffers _080D1CC0: .4byte gPaletteFade _080D1CC4: .4byte sub_80D1B58 thumb_func_end sub_80D1BE8 @@ -2602,7 +2602,7 @@ sub_80D1CC8: @ 80D1CC8 cmp r0, 0 beq _080D1CEC ldr r1, _080D1CF4 @ =0x040000d4 - ldr r0, _080D1CF8 @ =gUnknown_2038700 + ldr r0, _080D1CF8 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -2617,13 +2617,13 @@ _080D1CEC: .align 2, 0 _080D1CF0: .4byte gUnknown_2039A2C _080D1CF4: .4byte 0x040000d4 -_080D1CF8: .4byte gUnknown_2038700 +_080D1CF8: .4byte gScanlineEffectRegBuffers _080D1CFC: .4byte 0x800000a0 thumb_func_end sub_80D1CC8 thumb_func_start sub_80D1D00 sub_80D1D00: @ 80D1D00 - ldr r1, _080D1D20 @ =gUnknown_2038700 + ldr r1, _080D1D20 @ =gScanlineEffectRegBuffers ldr r0, _080D1D24 @ =0x04000006 ldrh r0, [r0] lsls r0, 1 @@ -2640,7 +2640,7 @@ sub_80D1D00: @ 80D1D00 strh r1, [r0] bx lr .align 2, 0 -_080D1D20: .4byte gUnknown_2038700 +_080D1D20: .4byte gScanlineEffectRegBuffers _080D1D24: .4byte 0x04000006 _080D1D28: .4byte 0x04000016 thumb_func_end sub_80D1D00 @@ -2680,7 +2680,7 @@ sub_80D1D64: @ 80D1D64 push {r4,lr} adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D1DB0 @ =gUnknown_2039A2C ldr r1, [r0] movs r2, 0 @@ -2692,7 +2692,7 @@ sub_80D1D64: @ 80D1D64 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r3, _080D1DB4 @ =gUnknown_2038E80 + ldr r3, _080D1DB4 @ =gScanlineEffectRegBuffers + 0x780 movs r2, 0xF2 _080D1D8A: lsls r0, r1, 1 @@ -2714,7 +2714,7 @@ _080D1D8A: bx r1 .align 2, 0 _080D1DB0: .4byte gUnknown_2039A2C -_080D1DB4: .4byte gUnknown_2038E80 +_080D1DB4: .4byte gScanlineEffectRegBuffers + 0x780 _080D1DB8: .4byte sub_80D1E98 thumb_func_end sub_80D1D64 @@ -2729,7 +2729,7 @@ sub_80D1DBC: @ 80D1DBC ldrb r0, [r1] movs r0, 0 strb r0, [r1] - ldr r7, _080D1E54 @ =gUnknown_2038700 + ldr r7, _080D1E54 @ =gScanlineEffectRegBuffers ldrh r0, [r4, 0xC] ldrb r5, [r4, 0xC] adds r0, 0x10 @@ -2799,7 +2799,7 @@ _080D1E36: bx r1 .align 2, 0 _080D1E50: .4byte gUnknown_2039A2C -_080D1E54: .4byte gUnknown_2038700 +_080D1E54: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D1DBC thumb_func_start sub_80D1E58 @@ -2851,7 +2851,7 @@ sub_80D1E98: @ 80D1E98 cmp r0, 0 beq _080D1ED0 ldr r1, _080D1F14 @ =0x040000d4 - ldr r0, _080D1F18 @ =gUnknown_2038700 + ldr r0, _080D1F18 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -2873,7 +2873,7 @@ _080D1ED0: ldrh r1, [r0, 0x8] movs r0, 0x44 bl SetGpuReg - ldr r0, _080D1F20 @ =gUnknown_2038E80 + ldr r0, _080D1F20 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r4] ldr r0, _080D1F24 @ =0x04000040 str r0, [r4, 0x4] @@ -2889,9 +2889,9 @@ _080D1F08: .4byte 0x0000c5ff _080D1F0C: .4byte 0x00007fff _080D1F10: .4byte gUnknown_2039A2C _080D1F14: .4byte 0x040000d4 -_080D1F18: .4byte gUnknown_2038700 +_080D1F18: .4byte gScanlineEffectRegBuffers _080D1F1C: .4byte 0x800000a0 -_080D1F20: .4byte gUnknown_2038E80 +_080D1F20: .4byte gScanlineEffectRegBuffers + 0x780 _080D1F24: .4byte 0x04000040 _080D1F28: .4byte 0xa2400001 thumb_func_end sub_80D1E98 @@ -2946,7 +2946,7 @@ sub_80D1F64: @ 80D1F64 mov r10, r0 movs r1, 0xA0 lsls r1, 17 - ldr r4, _080D1FD8 @ =gUnknown_2038E80 + ldr r4, _080D1FD8 @ =gScanlineEffectRegBuffers + 0x780 ldr r3, _080D1FDC @ =0x000003bf movs r2, 0x78 _080D1F8E: @@ -2988,7 +2988,7 @@ _080D1FAE: adds r0, r1, 0 b _080D1FE6 .align 2, 0 -_080D1FD8: .4byte gUnknown_2038E80 +_080D1FD8: .4byte gScanlineEffectRegBuffers + 0x780 _080D1FDC: .4byte 0x000003bf _080D1FE0: lsls r0, r3, 16 @@ -3104,7 +3104,7 @@ _080D2092: lsls r4, 1 adds r0, r2, r4 lsls r0, 1 - ldr r1, _080D20E8 @ =gUnknown_2038E80 + ldr r1, _080D20E8 @ =gScanlineEffectRegBuffers + 0x780 adds r0, r1 strh r7, [r0] lsls r0, r5, 16 @@ -3131,7 +3131,7 @@ _080D20C4: subs r0, r2, 0x1 b _080D20FC .align 2, 0 -_080D20E8: .4byte gUnknown_2038E80 +_080D20E8: .4byte gScanlineEffectRegBuffers + 0x780 _080D20EC: lsls r0, r3, 16 asrs r0, 16 @@ -3150,7 +3150,7 @@ _080D2100: cmp r1, 0 bge _080D212C asrs r2, r6, 16 - ldr r3, _080D2128 @ =gUnknown_2038E80 + ldr r3, _080D2128 @ =gScanlineEffectRegBuffers + 0x780 _080D210C: asrs r1, r0, 16 adds r0, r2, r1 @@ -3166,12 +3166,12 @@ _080D210C: blt _080D210C b _080D21F8 .align 2, 0 -_080D2128: .4byte gUnknown_2038E80 +_080D2128: .4byte gScanlineEffectRegBuffers + 0x780 _080D212C: cmp r1, 0 ble _080D21F8 asrs r2, r6, 16 - ldr r3, _080D2154 @ =gUnknown_2038E80 + ldr r3, _080D2154 @ =gScanlineEffectRegBuffers + 0x780 _080D2134: lsls r1, r5, 16 asrs r1, 16 @@ -3189,13 +3189,13 @@ _080D2134: bgt _080D2134 b _080D21F8 .align 2, 0 -_080D2154: .4byte gUnknown_2038E80 +_080D2154: .4byte gScanlineEffectRegBuffers + 0x780 _080D2158: movs r1, 0xF0 lsls r1, 1 adds r0, r2, r1 lsls r0, 1 - ldr r2, _080D2190 @ =gUnknown_2038E80 + ldr r2, _080D2190 @ =gScanlineEffectRegBuffers + 0x780 adds r0, r2 strh r7, [r0] lsls r0, r5, 16 @@ -3220,7 +3220,7 @@ _080D2158: subs r0, r2, 0x1 b _080D21A4 .align 2, 0 -_080D2190: .4byte gUnknown_2038E80 +_080D2190: .4byte gScanlineEffectRegBuffers + 0x780 _080D2194: lsls r0, r3, 16 asrs r0, 16 @@ -3239,7 +3239,7 @@ _080D21A8: cmp r1, 0 bge _080D21D4 asrs r2, r6, 16 - ldr r3, _080D21D0 @ =gUnknown_2038E80 + ldr r3, _080D21D0 @ =gScanlineEffectRegBuffers + 0x780 _080D21B4: asrs r1, r0, 16 adds r0, r2, r1 @@ -3255,12 +3255,12 @@ _080D21B4: blt _080D21B4 b _080D21F8 .align 2, 0 -_080D21D0: .4byte gUnknown_2038E80 +_080D21D0: .4byte gScanlineEffectRegBuffers + 0x780 _080D21D4: cmp r1, 0 ble _080D21F8 asrs r2, r6, 16 - ldr r3, _080D2270 @ =gUnknown_2038E80 + ldr r3, _080D2270 @ =gScanlineEffectRegBuffers + 0x780 _080D21DC: lsls r1, r5, 16 asrs r1, 16 @@ -3307,7 +3307,7 @@ _080D221A: _080D222C: movs r2, 0 mov r9, r2 - ldr r4, _080D2270 @ =gUnknown_2038E80 + ldr r4, _080D2270 @ =gScanlineEffectRegBuffers + 0x780 movs r5, 0xA0 lsls r5, 1 _080D2236: @@ -3341,7 +3341,7 @@ _080D2236: ble _080D2236 b _080D251C .align 2, 0 -_080D2270: .4byte gUnknown_2038E80 +_080D2270: .4byte gScanlineEffectRegBuffers + 0x780 _080D2274: ldr r1, [sp, 0xC] asrs r4, r1, 16 @@ -3396,7 +3396,7 @@ _080D22CA: adds r0, r5, r0 movs r3, 0 ldrsh r4, [r0, r3] - ldr r6, _080D2324 @ =gUnknown_2038E80 + ldr r6, _080D2324 @ =gScanlineEffectRegBuffers + 0x780 _080D22D4: ldr r0, _080D2328 @ =gUnknown_2039A2C ldr r5, [r0] @@ -3437,7 +3437,7 @@ _080D22D4: b _080D2334 .align 2, 0 _080D2320: .4byte gUnknown_83FA444 -_080D2324: .4byte gUnknown_2038E80 +_080D2324: .4byte gScanlineEffectRegBuffers + 0x780 _080D2328: .4byte gUnknown_2039A2C _080D232C: ldrh r0, [r3] @@ -3474,7 +3474,7 @@ _080D2360: adds r0, r5, r0 movs r3, 0 ldrsh r4, [r0, r3] - ldr r6, _080D23C0 @ =gUnknown_2038E80 + ldr r6, _080D23C0 @ =gScanlineEffectRegBuffers + 0x780 _080D236A: ldr r0, _080D23C4 @ =gUnknown_2039A2C ldr r3, [r0] @@ -3519,7 +3519,7 @@ _080D23A6: b _080D24DA .align 2, 0 _080D23BC: .4byte gUnknown_83FA444 -_080D23C0: .4byte gUnknown_2038E80 +_080D23C0: .4byte gScanlineEffectRegBuffers + 0x780 _080D23C4: .4byte gUnknown_2039A2C _080D23C8: .4byte 0xffff0000 _080D23CC: @@ -3539,7 +3539,7 @@ _080D23DA: adds r0, r5, r0 movs r6, 0 ldrsh r4, [r0, r6] - ldr r6, _080D2440 @ =gUnknown_2038E80 + ldr r6, _080D2440 @ =gScanlineEffectRegBuffers + 0x780 _080D23EC: ldr r0, _080D2444 @ =gUnknown_2039A2C ldr r5, [r0] @@ -3581,7 +3581,7 @@ _080D23EC: .align 2, 0 _080D2438: .4byte 0x0000ffb1 _080D243C: .4byte gUnknown_83FA444 -_080D2440: .4byte gUnknown_2038E80 +_080D2440: .4byte gScanlineEffectRegBuffers + 0x780 _080D2444: .4byte gUnknown_2039A2C _080D2448: ldrh r0, [r3] @@ -3619,7 +3619,7 @@ _080D2474: ldrsh r4, [r0, r3] ldr r6, _080D2534 @ =gUnknown_2039A2C mov r8, r6 - ldr r6, _080D2538 @ =gUnknown_2038E80 + ldr r6, _080D2538 @ =gScanlineEffectRegBuffers + 0x780 _080D248A: mov r0, r8 ldr r3, [r0] @@ -3665,7 +3665,7 @@ _080D24C6: _080D24DA: movs r4, 0 mov r9, r4 - ldr r4, _080D2538 @ =gUnknown_2038E80 + ldr r4, _080D2538 @ =gScanlineEffectRegBuffers + 0x780 movs r5, 0xA0 lsls r5, 1 _080D24E4: @@ -3710,7 +3710,7 @@ _080D251C: _080D252C: .4byte 0x0000ffb1 _080D2530: .4byte gUnknown_83FA444 _080D2534: .4byte gUnknown_2039A2C -_080D2538: .4byte gUnknown_2038E80 +_080D2538: .4byte gScanlineEffectRegBuffers + 0x780 thumb_func_end sub_80D1F64 thumb_func_start sub_80D253C @@ -3718,7 +3718,7 @@ sub_80D253C: @ 80D253C push {r4,r5,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D25A0 @ =gUnknown_2039A2C ldr r1, [r0] movs r4, 0 @@ -3741,7 +3741,7 @@ sub_80D253C: @ 80D253C movs r2, 0x1 bl sub_80D1F64 ldr r1, _080D25B0 @ =0x040000d4 - ldr r0, _080D25B4 @ =gUnknown_2038E80 + ldr r0, _080D25B4 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r1] ldr r2, _080D25B8 @ =0xfffff880 adds r0, r2 @@ -3766,7 +3766,7 @@ _080D25A4: .4byte 0x00007878 _080D25A8: .4byte 0x00003070 _080D25AC: .4byte 0x00001090 _080D25B0: .4byte 0x040000d4 -_080D25B4: .4byte gUnknown_2038E80 +_080D25B4: .4byte gScanlineEffectRegBuffers + 0x780 _080D25B8: .4byte 0xfffff880 _080D25BC: .4byte 0x80000140 _080D25C0: .4byte sub_80D2698 @@ -3919,7 +3919,7 @@ _080D26E4: cmp r0, 0 beq _080D2700 ldr r1, _080D274C @ =0x040000d4 - ldr r0, _080D2750 @ =gUnknown_2038E80 + ldr r0, _080D2750 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r1] ldr r6, _080D2754 @ =0xfffff880 adds r0, r6 @@ -3946,7 +3946,7 @@ _080D2700: ldrh r1, [r0, 0xC] movs r0, 0x46 bl SetGpuReg - ldr r4, _080D275C @ =gUnknown_2038700 + ldr r4, _080D275C @ =gScanlineEffectRegBuffers ldrh r1, [r4] movs r0, 0x40 bl SetGpuReg @@ -3965,10 +3965,10 @@ _080D2746: bx r0 .align 2, 0 _080D274C: .4byte 0x040000d4 -_080D2750: .4byte gUnknown_2038E80 +_080D2750: .4byte gScanlineEffectRegBuffers + 0x780 _080D2754: .4byte 0xfffff880 _080D2758: .4byte 0x80000140 -_080D275C: .4byte gUnknown_2038700 +_080D275C: .4byte gScanlineEffectRegBuffers _080D2760: .4byte 0x04000040 _080D2764: .4byte 0xa6400001 thumb_func_end sub_80D2698 @@ -4103,7 +4103,7 @@ Phase2_Mugshot_Func1: @ 80D2840 push {r4,lr} adds r4, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear adds r0, r4, 0 bl sub_80D2EA4 movs r0, 0 @@ -4121,7 +4121,7 @@ Phase2_Mugshot_Func1: @ 80D2840 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r3, _080D289C @ =gUnknown_2038E80 + ldr r3, _080D289C @ =gScanlineEffectRegBuffers + 0x780 ldr r2, _080D28A0 @ =0x0000f0f1 _080D2874: lsls r0, r1, 1 @@ -4143,7 +4143,7 @@ _080D2874: bx r1 .align 2, 0 _080D2898: .4byte gUnknown_2039A2C -_080D289C: .4byte gUnknown_2038E80 +_080D289C: .4byte gScanlineEffectRegBuffers + 0x780 _080D28A0: .4byte 0x0000f0f1 _080D28A4: .4byte sub_80D2D50 thumb_func_end Phase2_Mugshot_Func1 @@ -4248,7 +4248,7 @@ sub_80D2968: @ 80D2968 ldrb r0, [r1] movs r0, 0 strb r0, [r1] - ldr r7, _080D2A50 @ =gUnknown_2038700 + ldr r7, _080D2A50 @ =gScanlineEffectRegBuffers ldrh r0, [r4, 0xA] ldrb r5, [r4, 0xA] adds r0, 0x10 @@ -4364,7 +4364,7 @@ _080D2A2A: bx r1 .align 2, 0 _080D2A4C: .4byte gUnknown_2039A2C -_080D2A50: .4byte gUnknown_2038700 +_080D2A50: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D2968 thumb_func_start sub_80D2A54 @@ -4376,7 +4376,7 @@ sub_80D2A54: @ 80D2A54 ldrb r0, [r1] movs r0, 0 strb r0, [r1] - ldr r1, _080D2ACC @ =gUnknown_2038700 + ldr r1, _080D2ACC @ =gScanlineEffectRegBuffers adds r5, r2, 0 movs r2, 0xF0 _080D2A68: @@ -4425,7 +4425,7 @@ _080D2A68: bx r1 .align 2, 0 _080D2AC8: .4byte gUnknown_2039A2C -_080D2ACC: .4byte gUnknown_2038700 +_080D2ACC: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D2A54 thumb_func_start sub_80D2AD0 @@ -4499,7 +4499,7 @@ sub_80D2B0C: @ 80D2B0C ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] - ldr r4, _080D2BBC @ =gUnknown_2038700 + ldr r4, _080D2BBC @ =gScanlineEffectRegBuffers movs r5, 0xA0 lsls r5, 1 adds r0, r4, 0 @@ -4542,7 +4542,7 @@ _080D2BAC: .4byte gUnknown_2039A2C _080D2BB0: .4byte 0x040000b0 _080D2BB4: .4byte 0x0000c5ff _080D2BB8: .4byte 0x00007fff -_080D2BBC: .4byte gUnknown_2038700 +_080D2BBC: .4byte gScanlineEffectRegBuffers _080D2BC0: .4byte sub_80D2DEC thumb_func_end sub_80D2B0C @@ -4593,7 +4593,7 @@ _080D2BFE: cmp r0, 0 blt _080D2C60 movs r7, 0x50 - ldr r5, _080D2C88 @ =gUnknown_2038700 + ldr r5, _080D2C88 @ =gScanlineEffectRegBuffers _080D2C1C: lsls r0, r2, 16 asrs r3, r0, 16 @@ -4652,7 +4652,7 @@ _080D2C6E: bx r1 .align 2, 0 _080D2C84: .4byte gUnknown_2039A2C -_080D2C88: .4byte gUnknown_2038700 +_080D2C88: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D2BC4 thumb_func_start sub_80D2C8C @@ -4697,7 +4697,7 @@ sub_80D2CC4: @ 80D2CC4 ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] - ldr r0, _080D2D0C @ =gUnknown_2038700 + ldr r0, _080D2D0C @ =gScanlineEffectRegBuffers movs r2, 0xE ldrsh r1, [r4, r2] movs r2, 0xA0 @@ -4722,7 +4722,7 @@ _080D2CF4: bx r1 .align 2, 0 _080D2D08: .4byte gUnknown_2039A2C -_080D2D0C: .4byte gUnknown_2038700 +_080D2D0C: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D2CC4 thumb_func_start sub_80D2D10 @@ -4775,7 +4775,7 @@ sub_80D2D50: @ 80D2D50 cmp r0, 0 beq _080D2D88 ldr r1, _080D2DD4 @ =0x040000d4 - ldr r0, _080D2DD8 @ =gUnknown_2038700 + ldr r0, _080D2DD8 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -4801,7 +4801,7 @@ _080D2D88: ldrh r1, [r0, 0x8] movs r0, 0x44 bl SetGpuReg - ldr r0, _080D2DE0 @ =gUnknown_2038E80 + ldr r0, _080D2DE0 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r4] ldr r0, _080D2DE4 @ =0x04000040 str r0, [r4, 0x4] @@ -4817,9 +4817,9 @@ _080D2DC8: .4byte 0x0000c5ff _080D2DCC: .4byte 0x00007fff _080D2DD0: .4byte gUnknown_2039A2C _080D2DD4: .4byte 0x040000d4 -_080D2DD8: .4byte gUnknown_2038700 +_080D2DD8: .4byte gScanlineEffectRegBuffers _080D2DDC: .4byte 0x800000a0 -_080D2DE0: .4byte gUnknown_2038E80 +_080D2DE0: .4byte gScanlineEffectRegBuffers + 0x780 _080D2DE4: .4byte 0x04000040 _080D2DE8: .4byte 0xa2400001 thumb_func_end sub_80D2D50 @@ -4844,7 +4844,7 @@ sub_80D2DEC: @ 80D2DEC cmp r0, 0 beq _080D2E24 ldr r1, _080D2E54 @ =0x040000d4 - ldr r0, _080D2E58 @ =gUnknown_2038700 + ldr r0, _080D2E58 @ =gScanlineEffectRegBuffers str r0, [r1] movs r3, 0xF0 lsls r3, 3 @@ -4858,7 +4858,7 @@ _080D2E24: ldrh r1, [r0, 0xE] movs r0, 0x50 bl SetGpuReg - ldr r0, _080D2E60 @ =gUnknown_2038E80 + ldr r0, _080D2E60 @ =gScanlineEffectRegBuffers + 0x780 str r0, [r4] ldr r0, _080D2E64 @ =0x04000054 str r0, [r4, 0x4] @@ -4874,9 +4874,9 @@ _080D2E48: .4byte 0x0000c5ff _080D2E4C: .4byte 0x00007fff _080D2E50: .4byte gUnknown_2039A2C _080D2E54: .4byte 0x040000d4 -_080D2E58: .4byte gUnknown_2038700 +_080D2E58: .4byte gScanlineEffectRegBuffers _080D2E5C: .4byte 0x800000a0 -_080D2E60: .4byte gUnknown_2038E80 +_080D2E60: .4byte gScanlineEffectRegBuffers + 0x780 _080D2E64: .4byte 0x04000054 _080D2E68: .4byte 0xa2400001 thumb_func_end sub_80D2DEC @@ -4953,7 +4953,7 @@ sub_80D2EA4: @ 80D2EA4 ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 24 lsrs r0, 24 movs r1, 0x88 @@ -5321,7 +5321,7 @@ sub_80D31A4: @ 80D31A4 push {r4-r6,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r3, 0 movs r0, 0x80 lsls r0, 1 @@ -5335,7 +5335,7 @@ sub_80D31A4: @ 80D31A4 strh r3, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] - ldr r4, _080D3214 @ =gUnknown_2038E80 + ldr r4, _080D3214 @ =gScanlineEffectRegBuffers + 0x780 adds r6, r2, 0 movs r2, 0xF0 _080D31D0: @@ -5369,7 +5369,7 @@ _080D31D0: bx r1 .align 2, 0 _080D3210: .4byte gUnknown_2039A2C -_080D3214: .4byte gUnknown_2038E80 +_080D3214: .4byte gScanlineEffectRegBuffers + 0x780 _080D3218: .4byte sub_80D332C _080D321C: .4byte sub_80D33C0 thumb_func_end sub_80D31A4 @@ -5417,7 +5417,7 @@ _080D325E: strh r0, [r3, 0xE] _080D326A: movs r5, 0 - ldr r7, _080D32A4 @ =gUnknown_2038700 + ldr r7, _080D32A4 @ =gScanlineEffectRegBuffers movs r1, 0xA0 lsls r1, 1 adds r1, r7 @@ -5444,7 +5444,7 @@ _080D3278: .align 2, 0 _080D329C: .4byte gUnknown_2039A2C _080D32A0: .4byte 0x00000fff -_080D32A4: .4byte gUnknown_2038700 +_080D32A4: .4byte gScanlineEffectRegBuffers _080D32A8: ldr r0, [r6] ldrh r0, [r0, 0x14] @@ -5545,7 +5545,7 @@ sub_80D332C: @ 80D332C cmp r0, 0 beq _080D3382 ldr r1, _080D33A8 @ =0x040000d4 - ldr r0, _080D33AC @ =gUnknown_2038700 + ldr r0, _080D33AC @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -5555,7 +5555,7 @@ sub_80D332C: @ 80D332C str r0, [r1, 0x8] ldr r0, [r1, 0x8] _080D3382: - ldr r0, _080D33B4 @ =gUnknown_2038FC0 + ldr r0, _080D33B4 @ =gScanlineEffectRegBuffers + 0x8C0 str r0, [r5] ldr r0, _080D33B8 @ =0x04000040 str r0, [r5, 0x4] @@ -5571,16 +5571,16 @@ _080D339C: .4byte 0x0000c5ff _080D33A0: .4byte 0x00007fff _080D33A4: .4byte gUnknown_2039A2C _080D33A8: .4byte 0x040000d4 -_080D33AC: .4byte gUnknown_2038700 +_080D33AC: .4byte gScanlineEffectRegBuffers _080D33B0: .4byte 0x80000140 -_080D33B4: .4byte gUnknown_2038FC0 +_080D33B4: .4byte gScanlineEffectRegBuffers + 0x8C0 _080D33B8: .4byte 0x04000040 _080D33BC: .4byte 0xa2400001 thumb_func_end sub_80D332C thumb_func_start sub_80D33C0 sub_80D33C0: @ 80D33C0 - ldr r1, _080D33E0 @ =gUnknown_2038700 + ldr r1, _080D33E0 @ =gScanlineEffectRegBuffers ldr r0, _080D33E4 @ =0x04000006 ldrh r0, [r0] lsls r0, 1 @@ -5597,7 +5597,7 @@ sub_80D33C0: @ 80D33C0 strh r1, [r0] bx lr .align 2, 0 -_080D33E0: .4byte gUnknown_2038700 +_080D33E0: .4byte gScanlineEffectRegBuffers _080D33E4: .4byte 0x04000006 _080D33E8: .4byte 0x04000014 thumb_func_end sub_80D33C0 @@ -5637,7 +5637,7 @@ sub_80D3424: @ 80D3424 push {r4,r5,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D348C @ =gUnknown_2039A2C ldr r1, [r0] movs r2, 0 @@ -5651,7 +5651,7 @@ sub_80D3424: @ 80D3424 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r2, _080D3490 @ =gUnknown_2038E80 + ldr r2, _080D3490 @ =gScanlineEffectRegBuffers + 0x780 movs r4, 0 movs r3, 0xF0 _080D3450: @@ -5683,7 +5683,7 @@ _080D3450: bx r1 .align 2, 0 _080D348C: .4byte gUnknown_2039A2C -_080D3490: .4byte gUnknown_2038E80 +_080D3490: .4byte gScanlineEffectRegBuffers + 0x780 _080D3494: .4byte sub_80D36E0 _080D3498: .4byte sub_80D35F4 thumb_func_end sub_80D3424 @@ -5896,7 +5896,7 @@ sub_80D35F4: @ 80D35F4 cmp r0, 0 beq _080D3654 ldr r1, _080D3678 @ =0x040000d4 - ldr r0, _080D367C @ =gUnknown_2038700 + ldr r0, _080D367C @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -5906,7 +5906,7 @@ sub_80D35F4: @ 80D35F4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _080D3654: - ldr r0, _080D3684 @ =gUnknown_2038FC0 + ldr r0, _080D3684 @ =gScanlineEffectRegBuffers + 0x8C0 str r0, [r5] ldr r0, _080D3688 @ =0x04000040 str r0, [r5, 0x4] @@ -5922,9 +5922,9 @@ _080D366C: .4byte 0x0000c5ff _080D3670: .4byte 0x00007fff _080D3674: .4byte gUnknown_2039A2C _080D3678: .4byte 0x040000d4 -_080D367C: .4byte gUnknown_2038700 +_080D367C: .4byte gScanlineEffectRegBuffers _080D3680: .4byte 0x80000140 -_080D3684: .4byte gUnknown_2038FC0 +_080D3684: .4byte gScanlineEffectRegBuffers + 0x8C0 _080D3688: .4byte 0x04000040 _080D368C: .4byte 0xa2400001 thumb_func_end sub_80D35F4 @@ -5981,7 +5981,7 @@ sub_80D36E0: @ 80D36E0 strh r0, [r1] _080D36F8: ldr r2, _080D3718 @ =0x04000054 - ldr r1, _080D371C @ =gUnknown_2038700 + ldr r1, _080D371C @ =gScanlineEffectRegBuffers mov r0, sp ldrh r0, [r0] lsls r0, 1 @@ -5997,7 +5997,7 @@ _080D36F8: .align 2, 0 _080D3714: .4byte 0x04000006 _080D3718: .4byte 0x04000054 -_080D371C: .4byte gUnknown_2038700 +_080D371C: .4byte gScanlineEffectRegBuffers thumb_func_end sub_80D36E0 thumb_func_start sub_80D3720 @@ -6027,7 +6027,7 @@ _080D374C: movs r2, 0x22 ldrsh r0, [r3, r2] lsls r0, 1 - ldr r1, _080D3810 @ =gUnknown_2038700 + ldr r1, _080D3810 @ =gScanlineEffectRegBuffers adds r7, r0, r1 movs r2, 0xA0 lsls r2, 1 @@ -6131,7 +6131,7 @@ _080D380A: pop {r0} bx r0 .align 2, 0 -_080D3810: .4byte gUnknown_2038700 +_080D3810: .4byte gScanlineEffectRegBuffers _080D3814: .4byte gUnknown_2039A2C thumb_func_end sub_80D3720 @@ -6308,7 +6308,7 @@ sub_80D3960: @ 80D3960 push {r4,r5,lr} adds r5, r0, 0 bl sub_80D3DD0 - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldr r0, _080D39B8 @ =gUnknown_2039A2C ldr r1, [r0] movs r2, 0 @@ -6318,7 +6318,7 @@ sub_80D3960: @ 80D3960 movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 - ldr r2, _080D39BC @ =gUnknown_2038700 + ldr r2, _080D39BC @ =gScanlineEffectRegBuffers movs r3, 0xF0 adds r4, r2, 0 _080D3984: @@ -6347,7 +6347,7 @@ _080D3984: bx r1 .align 2, 0 _080D39B8: .4byte gUnknown_2039A2C -_080D39BC: .4byte gUnknown_2038700 +_080D39BC: .4byte gScanlineEffectRegBuffers _080D39C0: .4byte sub_80D3BA4 thumb_func_end sub_80D3960 @@ -6428,10 +6428,10 @@ sub_80D3A40: @ 80D3A40 strb r0, [r1] mov r8, r0 movs r7, 0 - ldr r0, _080D3A94 @ =gUnknown_2038700 + ldr r0, _080D3A94 @ =gScanlineEffectRegBuffers mov r9, r0 _080D3A5C: - ldr r1, _080D3A94 @ =gUnknown_2038700 + ldr r1, _080D3A94 @ =gScanlineEffectRegBuffers ldr r0, _080D3A90 @ =gUnknown_2039A2C ldr r2, [r0] movs r3, 0x2A @@ -6460,7 +6460,7 @@ _080D3A84: b _080D3AB0 .align 2, 0 _080D3A90: .4byte gUnknown_2039A2C -_080D3A94: .4byte gUnknown_2038700 +_080D3A94: .4byte gScanlineEffectRegBuffers _080D3A98: lsls r0, r5, 16 asrs r0, 16 @@ -6626,7 +6626,7 @@ sub_80D3BA4: @ 80D3BA4 cmp r0, 0 beq _080D3BDC ldr r1, _080D3C2C @ =0x040000d4 - ldr r0, _080D3C30 @ =gUnknown_2038700 + ldr r0, _080D3C30 @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -6648,7 +6648,7 @@ _080D3BDC: ldrh r1, [r0, 0x8] movs r0, 0x44 bl SetGpuReg - ldr r4, _080D3C30 @ =gUnknown_2038700 + ldr r4, _080D3C30 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r4, r0 @@ -6670,7 +6670,7 @@ _080D3C20: .4byte 0x0000c5ff _080D3C24: .4byte 0x00007fff _080D3C28: .4byte gUnknown_2039A2C _080D3C2C: .4byte 0x040000d4 -_080D3C30: .4byte gUnknown_2038700 +_080D3C30: .4byte gScanlineEffectRegBuffers _080D3C34: .4byte 0x800000a0 _080D3C38: .4byte 0x04000040 _080D3C3C: .4byte 0xa2400001 diff --git a/asm/berry.s b/asm/berry.s deleted file mode 100644 index 5537e3590..000000000 --- a/asm/berry.s +++ /dev/null @@ -1,311 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_809C718 -sub_809C718: @ 809C718 - push {r4,r5,lr} - ldr r2, _0809C778 @ =gSaveBlock1Ptr - ldr r1, [r2] - ldr r0, _0809C77C @ =gUnknown_83DF7E8 - ldr r3, _0809C780 @ =0x000030ec - adds r1, r3 - movs r4, 0x93 - lsls r4, 3 - adds r0, r4 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, [r0] - str r0, [r1] - movs r1, 0 - adds r4, r2, 0 - adds r5, r4, 0 - ldr r3, _0809C784 @ =0x00003108 - movs r2, 0 -_0809C740: - ldr r0, [r5] - adds r0, r3 - adds r0, r1 - strb r2, [r0] - adds r1, 0x1 - cmp r1, 0x11 - ble _0809C740 - ldr r0, [r4] - ldr r5, _0809C788 @ =0x0000311a - adds r0, r5 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - ldr r2, _0809C78C @ =0x0000311b - adds r0, r2 - strb r1, [r0] - ldr r0, [r4] - ldr r3, _0809C780 @ =0x000030ec - adds r0, r3 - bl GetEnigmaBerryChecksum - ldr r1, [r4] - ldr r4, _0809C790 @ =0x0000311c - adds r1, r4 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809C778: .4byte gSaveBlock1Ptr -_0809C77C: .4byte gUnknown_83DF7E8 -_0809C780: .4byte 0x000030ec -_0809C784: .4byte 0x00003108 -_0809C788: .4byte 0x0000311a -_0809C78C: .4byte 0x0000311b -_0809C790: .4byte 0x0000311c - thumb_func_end sub_809C718 - - thumb_func_start sub_809C794 -sub_809C794: @ 809C794 - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _0809C7B8 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, _0809C7BC @ =0x000030ec - adds r1, r0 - ldr r2, _0809C7C0 @ =0x0100001a - mov r0, sp - bl CpuSet - bl sub_809C718 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0809C7B8: .4byte gSaveBlock1Ptr -_0809C7BC: .4byte 0x000030ec -_0809C7C0: .4byte 0x0100001a - thumb_func_end sub_809C794 - - thumb_func_start SetEnigmaBerry -SetEnigmaBerry: @ 809C7C4 - push {r4-r7,lr} - adds r4, r0, 0 - bl sub_809C794 - adds r5, r4, 0 - ldr r0, _0809C824 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, _0809C828 @ =0x000030ec - adds r4, r2, r0 - adds r1, r4, 0 - adds r0, r5, 0 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldr r0, [r0] - str r0, [r1] - movs r3, 0 - ldr r0, _0809C82C @ =0x00003108 - adds r6, r2, r0 - ldr r1, _0809C830 @ =0x00000516 - adds r2, r5, r1 -_0809C7F0: - adds r0, r6, r3 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x11 - ble _0809C7F0 - movs r3, 0xA5 - lsls r3, 3 - adds r0, r5, r3 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x2E - strb r0, [r1] - ldr r6, _0809C834 @ =0x00000529 - adds r0, r5, r6 - ldrb r0, [r0] - adds r1, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl GetEnigmaBerryChecksum - str r0, [r4, 0x30] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809C824: .4byte gSaveBlock1Ptr -_0809C828: .4byte 0x000030ec -_0809C82C: .4byte 0x00003108 -_0809C830: .4byte 0x00000516 -_0809C834: .4byte 0x00000529 - thumb_func_end SetEnigmaBerry - - thumb_func_start GetEnigmaBerryChecksum -GetEnigmaBerryChecksum: @ 809C838 - push {lr} - adds r3, r0, 0 - movs r2, 0 - movs r1, 0 -_0809C840: - adds r0, r3, r1 - ldrb r0, [r0] - adds r2, r0 - adds r1, 0x1 - cmp r1, 0x2F - bls _0809C840 - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end GetEnigmaBerryChecksum - - thumb_func_start IsEnigmaBerryValid -IsEnigmaBerryValid: @ 809C854 - push {r4,lr} - ldr r4, _0809C888 @ =gSaveBlock1Ptr - ldr r1, [r4] - movs r2, 0xC4 - lsls r2, 6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C898 - ldr r2, _0809C88C @ =0x000030f6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C898 - ldr r2, _0809C890 @ =0x000030ec - adds r0, r1, r2 - bl GetEnigmaBerryChecksum - ldr r1, [r4] - ldr r2, _0809C894 @ =0x0000311c - adds r1, r2 - ldr r1, [r1] - cmp r0, r1 - bne _0809C898 - movs r0, 0x1 - b _0809C89A - .align 2, 0 -_0809C888: .4byte gSaveBlock1Ptr -_0809C88C: .4byte 0x000030f6 -_0809C890: .4byte 0x000030ec -_0809C894: .4byte 0x0000311c -_0809C898: - movs r0, 0 -_0809C89A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsEnigmaBerryValid - - thumb_func_start sub_809C8A0 -sub_809C8A0: @ 809C8A0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2B - bne _0809C8C4 - bl IsEnigmaBerryValid - cmp r0, 0 - beq _0809C8C4 - ldr r0, _0809C8BC @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _0809C8C0 @ =0x000030ec - b _0809C8D8 - .align 2, 0 -_0809C8BC: .4byte gSaveBlock1Ptr -_0809C8C0: .4byte 0x000030ec -_0809C8C4: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2A - bls _0809C8D0 - movs r4, 0x1 -_0809C8D0: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _0809C8E0 @ =gUnknown_83DF7CC -_0809C8D8: - adds r0, r1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809C8E0: .4byte gUnknown_83DF7CC - thumb_func_end sub_809C8A0 - - thumb_func_start ItemIdToBerryType -ItemIdToBerryType: @ 809C8E4 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _0809C900 @ =0xff7b0000 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0x2A - bhi _0809C904 - adds r0, r1, 0 - adds r0, 0x7C - lsls r0, 24 - lsrs r0, 24 - b _0809C906 - .align 2, 0 -_0809C900: .4byte 0xff7b0000 -_0809C904: - movs r0, 0x1 -_0809C906: - pop {r1} - bx r1 - thumb_func_end ItemIdToBerryType - - thumb_func_start BerryTypeToItemId -BerryTypeToItemId: @ 809C90C - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _0809C928 @ =0xffff0000 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0x2A - bhi _0809C92C - adds r0, r1, 0 - adds r0, 0x84 - lsls r0, 16 - lsrs r0, 16 - b _0809C92E - .align 2, 0 -_0809C928: .4byte 0xffff0000 -_0809C92C: - movs r0, 0x85 -_0809C92E: - pop {r1} - bx r1 - thumb_func_end BerryTypeToItemId - - thumb_func_start GetBerryNameByBerryType -GetBerryNameByBerryType: @ 809C934 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - bl sub_809C8A0 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x6 - bl memcpy - movs r0, 0xFF - strb r0, [r4, 0x6] - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetBerryNameByBerryType - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_814B6F0.s b/asm/berry_crush.s similarity index 98% rename from asm/unk_814B6F0.s rename to asm/berry_crush.s index 90882d61c..42de36a1f 100644 --- a/asm/unk_814B6F0.s +++ b/asm/berry_crush.s @@ -39,7 +39,7 @@ _0814B716: str r0, [r5] adds r0, r4, 0 bl SetMainCallback2 - ldr r0, _0814B748 @ =c2_exit_to_overworld_2_switch + ldr r0, _0814B748 @ =CB2_ReturnToField cmp r4, r0 bne _0814B73E ldr r0, _0814B74C @ =0x0000012f @@ -53,7 +53,7 @@ _0814B740: pop {r1} bx r1 .align 2, 0 -_0814B748: .4byte c2_exit_to_overworld_2_switch +_0814B748: .4byte CB2_ReturnToField _0814B74C: .4byte 0x0000012f _0814B750: .4byte sub_8056534 thumb_func_end sub_814B6FC @@ -204,7 +204,7 @@ _0814B878: .4byte gSpecialVar_ItemId _0814B87C: ldrh r0, [r1] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _0814B884: ldr r4, _0814B8E0 @ =gUnknown_203F3DC ldr r2, [r4] @@ -265,7 +265,7 @@ sub_814B8F0: @ 814B8F0 ldr r1, _0814B910 @ =sub_814B860 movs r0, 0x5 movs r2, 0 - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 .align 2, 0 diff --git a/asm/unk_814BB4C.s b/asm/berry_crush_2.s similarity index 98% rename from asm/unk_814BB4C.s rename to asm/berry_crush_2.s index 9c0e0503b..172724d0f 100644 --- a/asm/unk_814BB4C.s +++ b/asm/berry_crush_2.s @@ -201,7 +201,7 @@ _0814BC98: _0814BCA2: movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldrb r1, [r5, 0x1] movs r0, 0x2 mov r8, r0 @@ -229,7 +229,7 @@ _0814BCA2: movs r0, 0 movs r1, 0x2 adds r2, r4, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _0814BD12 .align 2, 0 _0814BCE8: .4byte gStringVar4 @@ -250,7 +250,7 @@ _0814BCF0: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 _0814BD12: movs r0, 0 movs r1, 0x3 @@ -287,7 +287,7 @@ _0814BD48: beq _0814BD5A movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame _0814BD5A: ldrb r0, [r7, 0xE] movs r1, 0x1 @@ -597,7 +597,7 @@ _0814BFA0: .4byte gUnknown_83DFC9C _0814BFA4: movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame movs r0, 0xA movs r1, 0x1 movs r2, 0 @@ -1046,7 +1046,7 @@ sub_814C2FC: @ 814C2FC mov r10, r3 _0814C320: lsls r0, r7, 4 - ldr r1, _0814C3C4 @ =gUnknown_3003ED0 + ldr r1, _0814C3C4 @ =gRecvCmds adds r2, r0, r1 ldrh r1, [r2] movs r0, 0xFF @@ -1127,7 +1127,7 @@ _0814C320: b _0814C3D6 .align 2, 0 _0814C3C0: .4byte gUnknown_846E2E0 -_0814C3C4: .4byte gUnknown_3003ED0 +_0814C3C4: .4byte gRecvCmds _0814C3C8: adds r0, r4, r6 adds r2, r0, 0 @@ -1671,7 +1671,7 @@ sub_814C7BC: @ 814C7BC push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 - ldr r3, _0814C808 @ =gUnknown_3003ED0 + ldr r3, _0814C808 @ =gRecvCmds ldrb r0, [r5, 0x9] cmp r4, r0 bcs _0814C7E0 @@ -1710,7 +1710,7 @@ _0814C7F8: strb r0, [r2] b _0814C84A .align 2, 0 -_0814C808: .4byte gUnknown_3003ED0 +_0814C808: .4byte gRecvCmds _0814C80C: adds r4, r5, 0 adds r4, 0x4E @@ -2758,7 +2758,7 @@ _0814D03C: movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0814D080 @ =gStringVar2 - bl sub_815EFA0 + bl GetBerryPowder adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 @@ -2855,7 +2855,7 @@ _0814D106: beq _0814D17E movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _0814D148 @ =gUnknown_8419F54 movs r0, 0 str r0, [sp] @@ -2868,7 +2868,7 @@ _0814D106: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -2949,7 +2949,7 @@ _0814D1CA: bl sub_80F7858 b _0814D230 _0814D1D0: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 @@ -2963,7 +2963,7 @@ _0814D1D0: bl memset cmp r4, 0 bne _0814D202 - bl sub_8099FAC + bl CheckHasAtLeastOneBerry lsls r0, 24 cmp r0, 0 beq _0814D1FE @@ -2979,7 +2979,7 @@ _0814D204: _0814D206: movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame movs r4, 0 str r4, [sp] adds r0, r6, 0 @@ -3159,7 +3159,7 @@ _0814D34A: _0814D356: movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame adds r0, r5, 0 bl sub_814DA04 movs r0, 0x1 @@ -3217,7 +3217,7 @@ _0814D3BA: _0814D3C0: movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldrh r1, [r5, 0x14] cmp r1, 0x3 bne _0814D3F0 @@ -3232,7 +3232,7 @@ _0814D3C0: str r1, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _0814D40C .align 2, 0 _0814D3EC: .4byte gUnknown_846E328 @@ -3249,7 +3249,7 @@ _0814D3F0: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 _0814D40C: movs r0, 0 movs r1, 0x3 diff --git a/asm/unk_814D5C8.s b/asm/berry_crush_3.s similarity index 98% rename from asm/unk_814D5C8.s rename to asm/berry_crush_3.s index 4c78d4459..f447c848f 100644 --- a/asm/unk_814D5C8.s +++ b/asm/berry_crush_3.s @@ -49,7 +49,7 @@ _0814D61C: movs r0, 0 movs r1, 0 bl SetGpuReg - bl remove_some_task + bl ScanlineEffect_Stop bl reset_temp_tile_data_buffers b _0814D878 _0814D63A: @@ -186,8 +186,8 @@ _0814D768: beq _0814D774 b _0814D87E _0814D774: - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 adds r0, r5, 0 bl sub_814EB38 adds r0, r5, 0 @@ -424,7 +424,7 @@ _0814D962: bl ClearGpuRegBits b _0814D9BA _0814D9A2: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite adds r0, r5, 0 bl sub_814EF10 bl sub_815C9F4 @@ -1212,7 +1212,7 @@ sub_814DF44: @ 814DF44 movs r1, 0x2 adds r2, r4, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3} mov r8, r3 @@ -1355,7 +1355,7 @@ _0814E048: movs r1, 0x2 adds r2, r7, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [sp, 0x2C] ldrb r0, [r1] adds r2, r7, 0 @@ -1370,7 +1370,7 @@ _0814E048: str r1, [sp, 0x8] movs r1, 0x2 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 mov r9, r6 _0814E0C8: ldr r6, [sp, 0x20] @@ -1509,7 +1509,7 @@ _0814E178: ldr r1, _0814E1F8 @ =gStringVar4 str r1, [sp, 0x8] movs r1, 0x2 - bl box_print + bl AddTextPrinterParameterized3 b _0814E27E .align 2, 0 _0814E1E4: .4byte gStringVar1 @@ -1537,7 +1537,7 @@ _0814E21A: lsls r1, r2, 3 subs r1, r2 lsls r1, 2 - ldr r0, _0814E294 @ =gUnknown_83DF7E8 + ldr r0, _0814E294 @ =sBerries adds r1, r0 ldr r0, _0814E298 @ =gStringVar1 bl StringCopy @@ -1573,7 +1573,7 @@ _0814E21A: ldr r1, _0814E2A0 @ =gStringVar4 str r1, [sp, 0x8] movs r1, 0x2 - bl box_print + bl AddTextPrinterParameterized3 mov r9, r4 mov r6, r8 adds r6, 0xA2 @@ -1591,7 +1591,7 @@ _0814E27E: bl StringCopy b _0814E2B8 .align 2, 0 -_0814E294: .4byte gUnknown_83DF7E8 +_0814E294: .4byte sBerries _0814E298: .4byte gStringVar1 _0814E29C: .4byte gUnknown_846F4B8 _0814E2A0: .4byte gStringVar4 @@ -1632,7 +1632,7 @@ _0814E2B8: str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0x4 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r10 lsls r0, r2, 24 lsrs r0, 24 @@ -1702,7 +1702,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 movs r2, 0x2 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, _0814E568 @ =gUnknown_841D088 movs r0, 0x2 adds r1, r4, 0 @@ -1722,7 +1722,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r6, 0 subs r0, 0x20 lsls r0, 24 @@ -1759,7 +1759,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, _0814E57C @ =gUnknown_841D078 movs r0, 0x2 adds r1, r4, 0 @@ -1779,7 +1779,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r6, 0 subs r0, 0x9 lsls r0, 24 @@ -1806,7 +1806,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r7, 0 adds r0, 0xE lsls r0, 24 @@ -1821,7 +1821,7 @@ sub_814E32C: @ 814E32C movs r1, 0x2 movs r2, 0x2 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, _0814E588 @ =gUnknown_841D098 movs r0, 0x2 adds r1, r4, 0 @@ -1842,7 +1842,7 @@ sub_814E32C: @ 814E32C movs r1, 0x3 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 mov r4, r8 ldrb r2, [r4, 0x16] ldrh r0, [r4, 0x16] @@ -1919,7 +1919,7 @@ _0814E4EA: movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 b _0814E5B6 .align 2, 0 _0814E560: .4byte gUnknown_846E3DC @@ -1949,7 +1949,7 @@ _0814E59C: movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 _0814E5B6: adds r0, r7, 0 adds r0, 0xE @@ -1970,7 +1970,7 @@ _0814E5B6: movs r1, 0x2 movs r2, 0x2 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0814E638 @ =gStringVar1 ldr r4, [sp, 0x10] ldrh r1, [r4, 0x8] @@ -1998,7 +1998,7 @@ _0814E5B6: movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x1C pop {r3-r5} mov r8, r3 @@ -2097,7 +2097,7 @@ _0814E6E0: ldr r4, _0814E700 @ =0x0000021d adds r1, r4, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldrb r0, [r5] movs r1, 0 adds r2, r4, 0 @@ -2246,7 +2246,7 @@ sub_814E80C: @ 814E80C adds r5, r4, r0 ldrb r0, [r5] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r5] bl RemoveWindow adds r0, r4, 0 @@ -2309,7 +2309,7 @@ _0814E876: ldr r4, _0814E8AC @ =0x0000021d adds r1, r4, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldrb r0, [r7, 0x2] movs r1, 0 adds r2, r4, 0 @@ -2341,7 +2341,7 @@ _0814E8B0: str r5, [sp, 0x8] movs r1, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r5, _0814EA04 @ =gUnknown_841D124 movs r0, 0x2 adds r1, r5, 0 @@ -2358,7 +2358,7 @@ _0814E8B0: str r5, [sp, 0x8] movs r1, 0x2 movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2A str r0, [sp, 0xC] ldr r1, _0814EA08 @ =gStringVar4 @@ -2383,7 +2383,7 @@ _0814E90E: movs r1, 0x2 movs r2, 0x4 ldr r3, [sp, 0xC] - bl box_print + bl AddTextPrinterParameterized3 movs r3, 0 mov r0, r9 lsls r4, r0, 1 @@ -2456,7 +2456,7 @@ _0814E96E: str r1, [sp, 0x8] movs r1, 0x3 ldr r3, [sp, 0xC] - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [sp, 0x10] lsls r0, r1, 24 lsrs r0, 24 @@ -2499,7 +2499,7 @@ _0814EA3C: .4byte gMain _0814EA40: ldrb r0, [r7, 0x2] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r7, 0x2] bl ClearWindowTilemap ldrb r0, [r7, 0x2] @@ -2723,7 +2723,7 @@ _0814EBC6: str r4, [sp, 0x10] movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 b _0814EC4C .align 2, 0 _0814EC10: .4byte 0x000001bb @@ -2752,7 +2752,7 @@ _0814EC18: str r4, [sp, 0x10] movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _0814EC4C: ldr r1, _0814EC7C @ =0x000001bb adds r0, r6, r1 diff --git a/asm/berry_fix_program.s b/asm/berry_fix_program.s deleted file mode 100644 index ec40e1d98..000000000 --- a/asm/berry_fix_program.s +++ /dev/null @@ -1,344 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815F6E0 -sub_815F6E0: @ 815F6E0 - push {r4-r6,lr} - movs r6, 0x80 - lsls r6, 19 - movs r2, 0 - strh r2, [r6] - ldr r1, _0815F73C @ =0x04000010 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - adds r1, 0x3E - strh r2, [r1] - ldr r5, _0815F740 @ =gUnknown_847A890 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - adds r0, r5, 0x4 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, _0815F744 @ =0x0600f800 - bl LZ77UnCompVram - adds r5, 0x8 - adds r4, r5 - ldr r0, [r4] - movs r1, 0xA0 - lsls r1, 19 - movs r4, 0x80 - lsls r4, 1 - adds r2, r4, 0 - bl CpuSet - ldr r1, _0815F748 @ =0x04000008 - movs r2, 0xF8 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - strh r4, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F73C: .4byte 0x04000010 -_0815F740: .4byte gUnknown_847A890 -_0815F744: .4byte 0x0600f800 -_0815F748: .4byte 0x04000008 - thumb_func_end sub_815F6E0 - - thumb_func_start sub_815F74C -sub_815F74C: @ 815F74C - push {r4,lr} - sub sp, 0x4 - ldr r0, _0815F7C4 @ =0x0000ffff - bl DisableInterrupts - movs r0, 0x1 - bl EnableInterrupts - bl m4aSoundVSyncOff - movs r0, 0 - bl SetVBlankCallback - movs r4, 0 - str r4, [sp] - ldr r0, _0815F7C8 @ =0x040000d4 - mov r1, sp - str r1, [r0] - movs r1, 0xC0 - lsls r1, 19 - str r1, [r0, 0x4] - ldr r1, _0815F7CC @ =0x85006000 - str r1, [r0, 0x8] - ldr r1, [r0, 0x8] - str r4, [sp] - mov r1, sp - str r1, [r0] - movs r1, 0xA0 - lsls r1, 19 - str r1, [r0, 0x4] - ldr r1, _0815F7D0 @ =0x85000100 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl ResetSpriteData - bl ResetTasks - bl remove_some_task - ldr r0, _0815F7D4 @ =gUnknown_3005ECC - strb r4, [r0] - ldr r0, _0815F7D8 @ =sub_815F7F0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0815F7DC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - ldr r0, _0815F7E0 @ =sub_815F7E4 - bl SetMainCallback2 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815F7C4: .4byte 0x0000ffff -_0815F7C8: .4byte 0x040000d4 -_0815F7CC: .4byte 0x85006000 -_0815F7D0: .4byte 0x85000100 -_0815F7D4: .4byte gUnknown_3005ECC -_0815F7D8: .4byte sub_815F7F0 -_0815F7DC: .4byte gTasks -_0815F7E0: .4byte sub_815F7E4 - thumb_func_end sub_815F74C - - thumb_func_start sub_815F7E4 -sub_815F7E4: @ 815F7E4 - push {lr} - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_815F7E4 - - thumb_func_start sub_815F7F0 -sub_815F7F0: @ 815F7F0 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _0815F818 @ =gTasks+0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0xA - bls _0815F80C - b _0815F9A6 -_0815F80C: - lsls r0, 2 - ldr r1, _0815F81C @ =_0815F820 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815F818: .4byte gTasks+0x8 -_0815F81C: .4byte _0815F820 - .align 2, 0 -_0815F820: - .4byte _0815F84C - .4byte _0815F856 - .4byte _0815F874 - .4byte _0815F9A6 - .4byte _0815F890 - .4byte _0815F8C8 - .4byte _0815F934 - .4byte _0815F96A - .4byte _0815F96E - .4byte _0815F98C - .4byte _0815F996 -_0815F84C: - movs r0, 0x5 - bl sub_815F6E0 - movs r0, 0x1 - b _0815F9A4 -_0815F856: - ldr r0, _0815F870 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0815F864 - b _0815F9A6 -_0815F864: - movs r0, 0 - bl sub_815F6E0 - movs r0, 0x2 - b _0815F9A4 - .align 2, 0 -_0815F870: .4byte gMain -_0815F874: - ldr r0, _0815F88C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0815F882 - b _0815F9A6 -_0815F882: - movs r0, 0x1 - bl sub_815F6E0 - movs r0, 0x4 - b _0815F9A4 - .align 2, 0 -_0815F88C: .4byte gMain -_0815F890: - ldr r0, _0815F8B4 @ =gUnknown_3005EF0 - ldr r1, _0815F8B8 @ =gMultiBootProgram_BerryGlitchFix_Start - str r1, [r0] - ldr r2, _0815F8BC @ =gUnknown_3005EF8 - ldr r0, _0815F8C0 @ =gMultiBootProgram_BerryGlitchFix_End - subs r0, r1 - str r0, [r2] - ldr r0, _0815F8C4 @ =gUnknown_3005F00 - str r1, [r0, 0x28] - adds r1, r0, 0 - adds r1, 0x4B - movs r4, 0 - strb r4, [r1] - bl MultiBootInit - strh r4, [r5, 0x2] - movs r0, 0x5 - b _0815F9A4 - .align 2, 0 -_0815F8B4: .4byte gUnknown_3005EF0 -_0815F8B8: .4byte gMultiBootProgram_BerryGlitchFix_Start -_0815F8BC: .4byte gUnknown_3005EF8 -_0815F8C0: .4byte gMultiBootProgram_BerryGlitchFix_End -_0815F8C4: .4byte gUnknown_3005F00 -_0815F8C8: - ldr r0, _0815F910 @ =gUnknown_3005F00 - ldrb r6, [r0, 0x18] - adds r4, r0, 0 - cmp r6, 0 - bne _0815F920 - ldr r0, [r4, 0x1C] - ldr r1, _0815F914 @ =0x00020200 - ands r0, r1 - cmp r0, r1 - bne _0815F920 - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB4 - ble _0815F924 - movs r0, 0x2 - bl sub_815F6E0 - ldr r0, _0815F918 @ =gUnknown_3005EF0 - ldr r1, [r0] - adds r1, 0xC0 - ldr r0, _0815F91C @ =gUnknown_3005EF8 - ldr r2, [r0] - subs r2, 0xC0 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x4 - bl MultiBootStartMaster - strh r6, [r5, 0x2] - movs r0, 0x6 - b _0815F9A4 - .align 2, 0 -_0815F910: .4byte gUnknown_3005F00 -_0815F914: .4byte 0x00020200 -_0815F918: .4byte gUnknown_3005EF0 -_0815F91C: .4byte gUnknown_3005EF8 -_0815F920: - movs r0, 0 - strh r0, [r5, 0x2] -_0815F924: - adds r0, r4, 0 - bl MultiBootMain - ldr r1, _0815F930 @ =gUnknown_3005EF4 - str r0, [r1] - b _0815F9A6 - .align 2, 0 -_0815F930: .4byte gUnknown_3005EF4 -_0815F934: - ldr r4, _0815F954 @ =gUnknown_3005F00 - adds r0, r4, 0 - bl MultiBootMain - ldr r1, _0815F958 @ =gUnknown_3005EF4 - str r0, [r1] - adds r0, r4, 0 - bl MultiBootCheckComplete - cmp r0, 0 - beq _0815F95C - movs r0, 0x3 - bl sub_815F6E0 - movs r0, 0x7 - b _0815F9A4 - .align 2, 0 -_0815F954: .4byte gUnknown_3005F00 -_0815F958: .4byte gUnknown_3005EF4 -_0815F95C: - ldrb r1, [r4, 0x1E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0815F9A6 - movs r0, 0x9 - b _0815F9A4 -_0815F96A: - movs r0, 0x8 - b _0815F9A4 -_0815F96E: - ldr r0, _0815F988 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0815F9A6 - adds r0, r2, 0 - bl DestroyTask - bl DoSoftReset - b _0815F9A6 - .align 2, 0 -_0815F988: .4byte gMain -_0815F98C: - movs r0, 0x4 - bl sub_815F6E0 - movs r0, 0xA - b _0815F9A4 -_0815F996: - ldr r0, _0815F9B0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0815F9A6 - movs r0, 0 -_0815F9A4: - strh r0, [r5] -_0815F9A6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F9B0: .4byte gMain - thumb_func_end sub_815F7F0 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index b58832931..ab157ab99 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_813CD50 -sub_813CD50: @ 813CD50 + thumb_func_start InitBerryPouch +InitBerryPouch: @ 813CD50 push {r4-r7,lr} mov r7, r8 push {r7} @@ -92,7 +92,7 @@ _0813CDF0: .4byte gTextFlags _0813CDF4: .4byte gSpecialVar_ItemId _0813CDF8: .4byte sub_813CE30 _0813CDFC: .4byte 0x0000080c - thumb_func_end sub_813CD50 + thumb_func_end InitBerryPouch thumb_func_start sub_813CE00 sub_813CE00: @ 813CE00 @@ -130,7 +130,7 @@ _0813CE32: lsrs r0, 24 cmp r0, 0x1 beq _0813CE56 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -183,11 +183,11 @@ _0813CE84: .4byte _0813CFB0 .4byte _0813CFBE _0813CED0: - bl sub_80BF768 + bl VblankHblankHandlerSetZero bl clear_scheduled_bg_copies_to_vram b _0813CFD2 _0813CEDA: - bl remove_some_task + bl ScanlineEffect_Stop b _0813CFD2 _0813CEE0: bl FreeAllSpritePalettes @@ -199,10 +199,10 @@ _0813CEEC: bl ResetSpriteData b _0813CFD2 _0813CEF2: - bl sub_80984D8 + bl ResetItemMenuIconState b _0813CFD2 _0813CEF8: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0813CFD2 @@ -255,7 +255,7 @@ _0813CF62: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _0813CF98 @ =gUnknown_3005E70 + ldr r0, _0813CF98 @ =gMultiuseListMenuTemplate ldr r2, _0813CF9C @ =gUnknown_203F370 ldrh r1, [r2, 0xA] ldrh r2, [r2, 0x8] @@ -273,7 +273,7 @@ _0813CF62: b _0813CFD2 .align 2, 0 _0813CF94: .4byte sub_813DA68 -_0813CF98: .4byte gUnknown_3005E70 +_0813CF98: .4byte gMultiuseListMenuTemplate _0813CF9C: .4byte gUnknown_203F370 _0813CFA0: .4byte gTasks _0813CFA4: @@ -386,7 +386,7 @@ _0813D078: .4byte gUnknown_203F370 thumb_func_start sub_813D07C sub_813D07C: @ 813D07C push {r4,lr} - bl sub_80BF7C8 + bl InitBgReg ldr r4, _0813D0DC @ =gUnknown_203F36C ldr r0, [r4] adds r0, 0xC @@ -573,7 +573,7 @@ sub_813D204: @ 813D204 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, _0813D280 @ =gUnknown_20398AC + ldr r0, _0813D280 @ =gBagPockets + 0x20 mov r8, r0 movs r6, 0 ldr r0, _0813D284 @ =gUnknown_203F36C @@ -615,10 +615,10 @@ _0813D254: ldr r2, [r0] lsls r0, r6, 3 adds r0, r2 - ldr r1, _0813D290 @ =gUnknown_84166DB + ldr r1, _0813D290 @ =gText_Close str r1, [r0] str r6, [r0, 0x4] - ldr r1, _0813D294 @ =gUnknown_3005E70 + ldr r1, _0813D294 @ =gMultiuseListMenuTemplate str r2, [r1] ldr r0, _0813D298 @ =gUnknown_203F370 ldrb r0, [r0, 0x4] @@ -633,12 +633,12 @@ _0813D254: adds r2, r1, 0 b _0813D2A6 .align 2, 0 -_0813D280: .4byte gUnknown_20398AC +_0813D280: .4byte gBagPockets + 0x20 _0813D284: .4byte gUnknown_203F36C _0813D288: .4byte gUnknown_203F380 _0813D28C: .4byte gUnknown_203F37C -_0813D290: .4byte gUnknown_84166DB -_0813D294: .4byte gUnknown_3005E70 +_0813D290: .4byte gText_Close +_0813D294: .4byte gMultiuseListMenuTemplate _0813D298: .4byte gUnknown_203F370 _0813D29C: ldr r0, _0813D310 @ =gUnknown_203F36C @@ -715,10 +715,10 @@ sub_813D31C: @ 813D31C lsls r5, r1, 16 lsrs r5, 16 ldr r4, _0813D384 @ =gStringVar4 - ldr r1, _0813D388 @ =gUnknown_84166FF + ldr r1, _0813D388 @ =gText_FontSize0 adds r0, r4, 0 bl StringCopy - ldr r1, _0813D38C @ =gUnknown_8416226 + ldr r1, _0813D38C @ =gOtherText_UnkF9_08_Clear_01 adds r0, r4, 0 bl StringAppend ldr r6, _0813D390 @ =gStringVar1 @@ -733,11 +733,11 @@ sub_813D31C: @ 813D31C bl StringAppend adds r0, r5, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _0813D394 @ =gUnknown_84643B4 adds r0, r4, 0 bl StringAppend - ldr r1, _0813D398 @ =gUnknown_8416703 + ldr r1, _0813D398 @ =gText_FontSize2 adds r0, r4, 0 bl StringAppend adds r0, r4, 0 @@ -753,11 +753,11 @@ sub_813D31C: @ 813D31C bx r0 .align 2, 0 _0813D384: .4byte gStringVar4 -_0813D388: .4byte gUnknown_84166FF -_0813D38C: .4byte gUnknown_8416226 +_0813D388: .4byte gText_FontSize0 +_0813D38C: .4byte gOtherText_UnkF9_08_Clear_01 _0813D390: .4byte gStringVar1 _0813D394: .4byte gUnknown_84643B4 -_0813D398: .4byte gUnknown_8416703 +_0813D398: .4byte gText_FontSize2 thumb_func_end sub_813D31C thumb_func_start sub_813D39C @@ -798,7 +798,7 @@ _0813D3D6: ldrb r1, [r0, 0x9] movs r0, 0x1 eors r0, r1 - bl sub_8098940 + bl DestroyItemMenuIcon ldr r1, [r4] ldrb r0, [r1, 0x7] cmp r0, r5 @@ -806,7 +806,7 @@ _0813D3D6: lsls r1, r5, 16 lsrs r1, 16 movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, [r4] @@ -857,10 +857,10 @@ sub_813D430: @ 813D430 lsrs r4, 16 movs r0, 0x5 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition movs r0, 0x5 adds r1, r4, 0 - bl sub_809A7B4 + bl BagGetQuantityByPocketPosition adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 @@ -869,7 +869,7 @@ sub_813D430: @ 813D430 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _0813D4A8 @ =gStringVar4 - ldr r1, _0813D4AC @ =gUnknown_84162B9 + ldr r1, _0813D4AC @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders str r5, [sp] @@ -894,7 +894,7 @@ _0813D498: _0813D4A0: .4byte gUnknown_203F36C _0813D4A4: .4byte gStringVar1 _0813D4A8: .4byte gStringVar4 -_0813D4AC: .4byte gUnknown_84162B9 +_0813D4AC: .4byte gText_TimesStrVar1 thumb_func_end sub_813D430 thumb_func_start sub_813D4B0 @@ -980,7 +980,7 @@ sub_813D538: @ 813D538 lsls r1, 16 lsrs r1, 16 movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl ItemId_GetDescription @@ -1028,7 +1028,7 @@ sub_813D594: @ 813D594 movs r1, 0 movs r2, 0x10 movs r3, 0x1E - bl sub_80F6B08 + bl SetBgRectPal movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 @@ -1072,7 +1072,7 @@ _0813D5EA: movs r1, 0xA0 movs r2, 0x8 movs r3, 0x78 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x6] add sp, 0x10 @@ -1102,7 +1102,7 @@ sub_813D614: @ 813D614 movs r1, 0xD4 movs r2, 0x78 movs r3, 0x98 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x6] add sp, 0x10 @@ -1132,7 +1132,7 @@ sub_813D64C: @ 813D64C movs r1, 0x98 movs r2, 0x48 movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x6] add sp, 0x10 @@ -1358,8 +1358,8 @@ _0813D800: .4byte gUnknown_203F37C _0813D804: .4byte gUnknown_203F380 thumb_func_end sub_813D7CC - thumb_func_start sub_813D808 -sub_813D808: @ 813D808 + thumb_func_start BerryPouch_StartFadeToExitCallback +BerryPouch_StartFadeToExitCallback: @ 813D808 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 @@ -1387,7 +1387,7 @@ sub_813D808: @ 813D808 .align 2, 0 _0813D83C: .4byte gTasks _0813D840: .4byte sub_813D844 - thumb_func_end sub_813D808 + thumb_func_end BerryPouch_StartFadeToExitCallback thumb_func_start sub_813D844 sub_813D844: @ 813D844 @@ -1409,7 +1409,7 @@ sub_813D844: @ 813D844 ldr r4, _0813D884 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl sub_810713C + bl DestroyListMenu ldr r0, _0813D888 @ =gUnknown_203F36C ldr r0, [r0] ldr r0, [r0] @@ -1441,9 +1441,9 @@ _0813D8A4: thumb_func_start sub_813D8AC sub_813D8AC: @ 813D8AC push {r4,lr} - ldr r4, _0813D904 @ =gUnknown_20398AC + ldr r4, _0813D904 @ =gBagPockets + 0x20 adds r0, r4, 0 - bl sub_809A720 + bl SortAndCompactBagPocket ldr r3, _0813D908 @ =gUnknown_203F36C ldr r1, [r3] movs r0, 0 @@ -1485,7 +1485,7 @@ _0813D8EE: adds r1, r0, 0 b _0813D916 .align 2, 0 -_0813D904: .4byte gUnknown_20398AC +_0813D904: .4byte gBagPockets + 0x20 _0813D908: .4byte gUnknown_203F36C _0813D90C: .4byte gUnknown_203F370 _0813D910: @@ -1510,15 +1510,15 @@ _0813D92C: bx r0 thumb_func_end sub_813D8AC - thumb_func_start sub_813D934 -sub_813D934: @ 813D934 + thumb_func_start BerryPouch_SetExitCallback +BerryPouch_SetExitCallback: @ 813D934 ldr r1, _0813D93C @ =gUnknown_203F36C ldr r1, [r1] str r0, [r1] bx lr .align 2, 0 _0813D93C: .4byte gUnknown_203F36C - thumb_func_end sub_813D934 + thumb_func_end BerryPouch_SetExitCallback thumb_func_start sub_813D940 sub_813D940: @ 813D940 @@ -1574,7 +1574,7 @@ sub_813D940: @ 813D940 movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN - ldr r1, _0813D9F4 @ =gUnknown_84162B9 + ldr r1, _0813D9F4 @ =gText_TimesStrVar1 mov r0, r9 bl StringExpandPlaceholders movs r0, 0xA @@ -1601,7 +1601,7 @@ sub_813D940: @ 813D940 _0813D9E8: .4byte gTasks+0x8 _0813D9EC: .4byte gStringVar1 _0813D9F0: .4byte gStringVar4 -_0813D9F4: .4byte gUnknown_84162B9 +_0813D9F4: .4byte gText_TimesStrVar1 thumb_func_end sub_813D940 thumb_func_start sub_813D9F8 @@ -1631,7 +1631,7 @@ sub_813D9F8: @ 813D9F8 adds r3, r5, 0 bl ConvertIntToDecimalStringN ldr r4, _0813DA60 @ =gStringVar4 - ldr r1, _0813DA64 @ =gUnknown_84162B9 + ldr r1, _0813DA64 @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0xA @@ -1654,7 +1654,7 @@ sub_813D9F8: @ 813D9F8 .align 2, 0 _0813DA5C: .4byte gStringVar1 _0813DA60: .4byte gStringVar4 -_0813DA64: .4byte gUnknown_84162B9 +_0813DA64: .4byte gText_TimesStrVar1 thumb_func_end sub_813D9F8 thumb_func_start sub_813DA68 @@ -1694,7 +1694,7 @@ _0813DA9E: ldr r4, _0813DAE0 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r0, _0813DAE4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x4 @@ -1748,7 +1748,7 @@ _0813DB10: lsls r1, r5, 16 lsrs r1, 16 movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition ldr r1, _0813DB34 @ =gSpecialVar_ItemId b _0813DB46 .align 2, 0 @@ -1767,7 +1767,7 @@ _0813DB46: strh r0, [r1] _0813DB48: adds r0, r6, 0 - bl sub_813D808 + bl BerryPouch_StartFadeToExitCallback b _0813DB9E .align 2, 0 _0813DB50: .4byte gUnknown_203F36C @@ -1784,11 +1784,11 @@ _0813DB58: lsrs r4, 16 movs r0, 0x5 adds r1, r4, 0 - bl sub_809A7B4 + bl BagGetQuantityByPocketPosition strh r0, [r7, 0x4] movs r0, 0x5 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition ldr r1, _0813DBA8 @ =gSpecialVar_ItemId strh r0, [r1] ldr r0, _0813DBAC @ =gTasks @@ -1869,7 +1869,7 @@ _0813DC18: .4byte gUnknown_203F384 _0813DC1C: .4byte gUnknown_84643B0 _0813DC20: .4byte gUnknown_203F388 _0813DC24: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1974,7 +1974,7 @@ _0813DC86: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x6 bl sub_813EA08 adds r4, r0, 0 @@ -1985,7 +1985,7 @@ _0813DC86: ldr r1, _0813DD68 @ =gStringVar1 bl sub_813D39C ldr r5, _0813DD6C @ =gStringVar4 - ldr r1, _0813DD70 @ =gUnknown_84162FF + ldr r1, _0813DD70 @ =gOtherText_StrVar1 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x2 @@ -2014,7 +2014,7 @@ _0813DD60: .4byte gUnknown_203F388 _0813DD64: .4byte gUnknown_846437C _0813DD68: .4byte gStringVar1 _0813DD6C: .4byte gStringVar4 -_0813DD70: .4byte gUnknown_84162FF +_0813DD70: .4byte gOtherText_StrVar1 thumb_func_end sub_813DBE4 thumb_func_start sub_813DD74 @@ -2124,7 +2124,7 @@ sub_813DE0C: @ 813DE0C cmp r0, 0 bne _0813DE68 adds r0, r5, 0 - bl sub_80A2238 + bl FieldUseFunc_OakStopsYou b _0813DEB0 .align 2, 0 _0813DE5C: .4byte gUnknown_203F388 @@ -2497,18 +2497,18 @@ _0813E18A: ldr r0, _0813E1F4 @ =gSpecialVar_ItemId ldrh r0, [r0] ldrh r1, [r5, 0x10] - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0x9 bl sub_813EA98 ldrb r0, [r5] ldr r4, _0813E1F8 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl sub_810713C + bl DestroyListMenu bl sub_813D8AC bl sub_813D6F4 bl sub_813D204 - ldr r0, _0813E1FC @ =gUnknown_3005E70 + ldr r0, _0813E1FC @ =gMultiuseListMenuTemplate subs r4, 0xA ldrh r1, [r4, 0xA] ldrh r2, [r4, 0x8] @@ -2534,7 +2534,7 @@ _0813E1EC: .4byte gTasks+0x8 _0813E1F0: .4byte gMain _0813E1F4: .4byte gSpecialVar_ItemId _0813E1F8: .4byte gUnknown_203F37A -_0813E1FC: .4byte gUnknown_3005E70 +_0813E1FC: .4byte gMultiuseListMenuTemplate thumb_func_end sub_813E164 thumb_func_start sub_813E200 @@ -2577,7 +2577,7 @@ _0813E248: adds r0, r4 lsls r0, 3 adds r0, r1 - ldr r1, _0813E270 @ =sub_813D808 + ldr r1, _0813E270 @ =BerryPouch_StartFadeToExitCallback str r1, [r0] _0813E25E: pop {r4} @@ -2587,7 +2587,7 @@ _0813E25E: _0813E264: .4byte gUnknown_203F36C _0813E268: .4byte sub_8126EDC _0813E26C: .4byte gTasks -_0813E270: .4byte sub_813D808 +_0813E270: .4byte BerryPouch_StartFadeToExitCallback thumb_func_end sub_813E200 thumb_func_start sub_813E274 @@ -2595,14 +2595,14 @@ sub_813E274: @ 813E274 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _0813E288 @ =gUnknown_841632A + ldr r2, _0813E288 @ =gText_ThereIsNoPokemon ldr r3, _0813E28C @ =sub_813E290 movs r1, 0x2 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch pop {r0} bx r0 .align 2, 0 -_0813E288: .4byte gUnknown_841632A +_0813E288: .4byte gText_ThereIsNoPokemon _0813E28C: .4byte sub_813E290 thumb_func_end sub_813E274 @@ -2646,11 +2646,11 @@ sub_813E2B8: @ 813E2B8 ldr r4, _0813E318 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl sub_810713C + bl DestroyListMenu bl sub_813D8AC bl sub_813D6F4 bl sub_813D204 - ldr r0, _0813E31C @ =gUnknown_3005E70 + ldr r0, _0813E31C @ =gMultiuseListMenuTemplate subs r4, 0xA ldrh r1, [r4, 0xA] ldrh r2, [r4, 0x8] @@ -2671,7 +2671,7 @@ sub_813E2B8: @ 813E2B8 .align 2, 0 _0813E314: .4byte gTasks+0x8 _0813E318: .4byte gUnknown_203F37A -_0813E31C: .4byte gUnknown_3005E70 +_0813E31C: .4byte gMultiuseListMenuTemplate thumb_func_end sub_813E2B8 thumb_func_start sub_813E320 @@ -2726,7 +2726,7 @@ sub_813E37C: @ 813E37C adds r0, r6, r7 ldrh r1, [r0, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 @@ -2736,7 +2736,7 @@ sub_813E37C: @ 813E37C bne _0813E3D8 ldr r1, _0813E3C8 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E3CC @ =gStringVar4 ldr r1, _0813E3D0 @ =gUnknown_8416374 adds r0, r4, 0 @@ -2745,7 +2745,7 @@ sub_813E37C: @ 813E37C adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch b _0813E3EA .align 2, 0 _0813E3C4: .4byte gTasks+0x8 @@ -2761,7 +2761,7 @@ _0813E3D8: adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 - ldr r1, _0813E3F8 @ =sub_813D808 + ldr r1, _0813E3F8 @ =BerryPouch_StartFadeToExitCallback str r1, [r0] _0813E3EA: pop {r4-r7} @@ -2770,7 +2770,7 @@ _0813E3EA: .align 2, 0 _0813E3F0: .4byte gUnknown_203F36C _0813E3F4: .4byte c2_8123744 -_0813E3F8: .4byte sub_813D808 +_0813E3F8: .4byte BerryPouch_StartFadeToExitCallback thumb_func_end sub_813E37C thumb_func_start sub_813E3FC @@ -2786,14 +2786,14 @@ sub_813E3FC: @ 813E3FC adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r0, _0813E424 @ =sub_813D808 + ldr r0, _0813E424 @ =BerryPouch_StartFadeToExitCallback str r0, [r1] bx lr .align 2, 0 _0813E418: .4byte gUnknown_203F36C _0813E41C: .4byte sub_808CE60 _0813E420: .4byte gTasks -_0813E424: .4byte sub_813D808 +_0813E424: .4byte BerryPouch_StartFadeToExitCallback thumb_func_end sub_813E3FC thumb_func_start sub_813E428 @@ -2815,9 +2815,9 @@ sub_813E428: @ 813E428 bne _0813E488 ldrh r0, [r6] ldr r1, _0813E478 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E47C @ =gStringVar4 - ldr r1, _0813E480 @ =gUnknown_84168F1 + ldr r1, _0813E480 @ =gText_OhNoICantBuyThat adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -2827,14 +2827,14 @@ sub_813E428: @ 813E428 ldr r3, _0813E484 @ =sub_813E2B8 adds r0, r5, 0 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch b _0813E4CE .align 2, 0 _0813E470: .4byte gTasks+0x8 _0813E474: .4byte gSpecialVar_ItemId _0813E478: .4byte gStringVar1 _0813E47C: .4byte gStringVar4 -_0813E480: .4byte gUnknown_84168F1 +_0813E480: .4byte gText_OhNoICantBuyThat _0813E484: .4byte sub_813E2B8 _0813E488: movs r0, 0x1 @@ -2855,9 +2855,9 @@ _0813E4A0: _0813E4A8: ldrh r0, [r6] ldr r1, _0813E4D4 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0813E4D8 @ =gStringVar4 - ldr r1, _0813E4DC @ =gUnknown_8416911 + ldr r1, _0813E4DC @ =gText_HowManyWouldYouLikeToSell adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -2867,7 +2867,7 @@ _0813E4A8: ldr r3, _0813E4E0 @ =sub_813E5B8 adds r0, r7, 0 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch _0813E4CE: pop {r4-r7} pop {r0} @@ -2875,7 +2875,7 @@ _0813E4CE: .align 2, 0 _0813E4D4: .4byte gStringVar1 _0813E4D8: .4byte gStringVar4 -_0813E4DC: .4byte gUnknown_8416911 +_0813E4DC: .4byte gText_HowManyWouldYouLikeToSell _0813E4E0: .4byte sub_813E5B8 thumb_func_end sub_813E428 @@ -2893,7 +2893,7 @@ sub_813E4E4: @ 813E4E4 ldr r6, _0813E544 @ =gStringVar3 ldrh r1, [r4, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -2907,7 +2907,7 @@ sub_813E4E4: @ 813E4E4 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0813E548 @ =gStringVar4 - ldr r1, _0813E54C @ =gUnknown_8416936 + ldr r1, _0813E54C @ =gText_ICanPayThisMuch_WouldThatBeOkay adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -2917,7 +2917,7 @@ sub_813E4E4: @ 813E4E4 ldr r3, _0813E550 @ =sub_813E554 adds r0, r5, 0 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch pop {r4-r6} pop {r0} bx r0 @@ -2925,7 +2925,7 @@ sub_813E4E4: @ 813E4E4 _0813E540: .4byte gTasks+0x8 _0813E544: .4byte gStringVar3 _0813E548: .4byte gStringVar4 -_0813E54C: .4byte gUnknown_8416936 +_0813E54C: .4byte gText_ICanPayThisMuch_WouldThatBeOkay _0813E550: .4byte sub_813E554 thumb_func_end sub_813E4E4 @@ -3004,7 +3004,7 @@ sub_813E5B8: @ 813E5B8 bl ConvertIntToDecimalStringN ldr r2, _0813E65C @ =gStringVar4 mov r8, r2 - ldr r1, _0813E660 @ =gUnknown_84162B9 + ldr r1, _0813E660 @ =gText_TimesStrVar1 mov r0, r8 bl StringExpandPlaceholders movs r0, 0xA @@ -3024,7 +3024,7 @@ sub_813E5B8: @ 813E5B8 mov r3, r9 ldrh r1, [r3, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -3052,7 +3052,7 @@ sub_813E5B8: @ 813E5B8 _0813E654: .4byte gTasks+0x8 _0813E658: .4byte gStringVar1 _0813E65C: .4byte gStringVar4 -_0813E660: .4byte gUnknown_84162B9 +_0813E660: .4byte gText_TimesStrVar1 _0813E664: .4byte sub_813E690 thumb_func_end sub_813E5B8 @@ -3103,7 +3103,7 @@ sub_813E690: @ 813E690 bl sub_813D9F8 ldrh r1, [r5, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -3188,11 +3188,11 @@ sub_813E768: @ 813E768 ldr r0, _0813E7D8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0813E7DC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0813E7E0 @ =gStringVar3 ldrh r1, [r4, 0x2] movs r0, 0x5 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -3206,14 +3206,14 @@ sub_813E768: @ 813E768 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0813E7E4 @ =gStringVar4 - ldr r1, _0813E7E8 @ =gUnknown_8416959 + ldr r1, _0813E7E8 @ =gText_TurnedOverItemsWorthYen adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, _0813E7EC @ =sub_813E7F0 adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 - bl sub_813EB20 + bl DisplayItemMessageInBerryPouch pop {r4-r6} pop {r0} bx r0 @@ -3223,7 +3223,7 @@ _0813E7D8: .4byte gSpecialVar_ItemId _0813E7DC: .4byte gStringVar1 _0813E7E0: .4byte gStringVar3 _0813E7E4: .4byte gStringVar4 -_0813E7E8: .4byte gUnknown_8416959 +_0813E7E8: .4byte gText_TurnedOverItemsWorthYen _0813E7EC: .4byte sub_813E7F0 thumb_func_end sub_813E768 @@ -3250,7 +3250,7 @@ sub_813E7F0: @ 813E7F0 ldrh r0, [r5] mov r2, r8 ldrh r1, [r2, 0x10] - bl sub_809A1D8 + bl RemoveBagItem ldr r7, _0813E8C4 @ =gSaveBlock1Ptr ldr r4, [r7] movs r3, 0xA4 @@ -3277,11 +3277,11 @@ sub_813E7F0: @ 813E7F0 ldr r4, _0813E8C8 @ =gUnknown_203F37A subs r2, r4, 0x2 adds r1, r4, 0 - bl sub_810713C + bl DestroyListMenu bl sub_813D8AC bl sub_813D6F4 bl sub_813D204 - ldr r0, _0813E8CC @ =gUnknown_3005E70 + ldr r0, _0813E8CC @ =gMultiuseListMenuTemplate subs r4, 0xA ldrh r1, [r4, 0xA] ldrh r2, [r4, 0x8] @@ -3322,7 +3322,7 @@ _0813E8BC: .4byte gTasks+0x8 _0813E8C0: .4byte gSpecialVar_ItemId _0813E8C4: .4byte gSaveBlock1Ptr _0813E8C8: .4byte gUnknown_203F37A -_0813E8CC: .4byte gUnknown_3005E70 +_0813E8CC: .4byte gMultiuseListMenuTemplate _0813E8D0: .4byte sub_813E8D4 thumb_func_end sub_813E7F0 @@ -3367,16 +3367,16 @@ sub_813E910: @ 813E910 movs r0, 0 movs r1, 0x1 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x13 movs r2, 0xD0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 movs r0, 0 movs r1, 0xA movs r2, 0xC0 - bl sub_814FF2C - ldr r0, _0813E998 @ =gUnknown_841F408 + bl TextWindow_SetStdFrame0_WithPal + ldr r0, _0813E998 @ =gTMCaseMainWindowPalette movs r1, 0xF0 movs r2, 0x20 bl LoadPalette @@ -3418,7 +3418,7 @@ _0813E97C: bx r0 .align 2, 0 _0813E994: .4byte gUnknown_84643B8 -_0813E998: .4byte gUnknown_841F408 +_0813E998: .4byte gTMCaseMainWindowPalette _0813E99C: .4byte gUnknown_203F38C thumb_func_end sub_813E910 @@ -3465,7 +3465,7 @@ sub_813E9A0: @ 813E9A0 str r4, [sp, 0xC] str r2, [sp, 0x10] mov r2, r9 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r3,r4} mov r8, r3 @@ -3562,7 +3562,7 @@ sub_813EA98: @ 813EA98 adds r4, r0 ldrb r0, [r4] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] @@ -3589,7 +3589,7 @@ sub_813EACC: @ 813EACC cmp r0, 0xFF beq _0813EB04 movs r1, 0 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] @@ -3622,8 +3622,8 @@ sub_813EB10: @ 813EB10 _0813EB1C: .4byte gUnknown_203F38C thumb_func_end sub_813EB10 - thumb_func_start sub_813EB20 -sub_813EB20: @ 813EB20 + thumb_func_start DisplayItemMessageInBerryPouch +DisplayItemMessageInBerryPouch: @ 813EB20 push {r4-r7,lr} mov r7, r8 push {r7} @@ -3642,7 +3642,7 @@ sub_813EB20: @ 813EB20 bl AddWindow strb r0, [r4, 0x5] _0813EB44: - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x5] @@ -3666,7 +3666,7 @@ _0813EB44: .align 2, 0 _0813EB74: .4byte gUnknown_203F38C _0813EB78: .4byte gUnknown_8464400 - thumb_func_end sub_813EB20 + thumb_func_end DisplayItemMessageInBerryPouch thumb_func_start sub_813EB7C sub_813EB7C: @ 813EB7C @@ -3685,7 +3685,7 @@ sub_813EB7C: @ 813EB7C str r3, [sp, 0xC] movs r2, 0x2 movs r3, 0 - bl sub_80BF5D0 + bl CreateYesNoMenuWithCallbacks add sp, 0x10 pop {r0} bx r0 @@ -3710,7 +3710,7 @@ sub_813EBA8: @ 813EBA8 str r3, [sp, 0xC] movs r2, 0x2 movs r3, 0 - bl sub_80BF5D0 + bl CreateYesNoMenuWithCallbacks add sp, 0x10 pop {r0} bx r0 diff --git a/asm/bike.s b/asm/bike.s index 915c4bf8f..b731e51c0 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -713,8 +713,8 @@ _080BD5C2: bx r1 thumb_func_end player_should_look_direction_be_enforced_upon_movement - thumb_func_start sub_80BD5C8 -sub_80BD5C8: @ 80BD5C8 + thumb_func_start StartTransitionToFlipBikeState +StartTransitionToFlipBikeState: @ 80BD5C8 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 @@ -738,21 +738,21 @@ _080BD5F4: .4byte gPlayerAvatar _080BD5F8: adds r0, r2, 0 bl SetPlayerAvatarTransitionFlags - movs r4, 0x8D - lsls r4, 1 + movs r4, 0x8D @ BGM_FRLG_BICYCLE + lsls r4, 1 @ BGM_FRLG_BICYCLE adds r0, r4, 0 bl sub_8056124 cmp r0, 0 beq _080BD618 adds r0, r4, 0 - bl sub_8055E78 + bl Overworld_SetSavedMusic adds r0, r4, 0 - bl sub_8055F48 + bl Overworld_ChangeMusicTo _080BD618: pop {r4} pop {r0} bx r0 - thumb_func_end sub_80BD5C8 + thumb_func_end StartTransitionToFlipBikeState thumb_func_start sub_80BD620 sub_80BD620: @ 80BD620 diff --git a/asm/blend_palette.s b/asm/blend_palette.s deleted file mode 100644 index 7c95f18e9..000000000 --- a/asm/blend_palette.s +++ /dev/null @@ -1,186 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start BlendPalette -BlendPalette: @ 8045274 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - mov r12, r1 - lsls r2, 24 - lsrs r7, r2, 24 - mov r0, sp - strh r3, [r0] - movs r6, 0 - cmp r6, r12 - bcs _080452FA - ldr r0, _0804530C @ =gPlttBufferUnfaded - mov r10, r0 - ldr r1, _08045310 @ =gPlttBufferFaded - mov r9, r1 -_080452A2: - mov r0, r8 - adds r5, r6, r0 - lsls r5, 16 - lsrs r5, 15 - mov r1, r10 - adds r0, r5, r1 - ldr r3, [r0] - lsls r4, r3, 27 - lsls r2, r3, 22 - lsls r3, 17 - add r5, r9 - lsrs r4, 27 - ldr r1, [sp] - lsls r0, r1, 27 - lsrs r0, 27 - subs r0, r4 - muls r0, r7 - asrs r0, 4 - adds r4, r0 - lsrs r2, 27 - lsls r0, r1, 22 - lsrs r0, 27 - subs r0, r2 - muls r0, r7 - asrs r0, 4 - adds r2, r0 - lsls r2, 5 - orrs r4, r2 - lsrs r3, 27 - lsls r1, 17 - lsrs r1, 27 - subs r1, r3 - adds r0, r1, 0 - muls r0, r7 - asrs r0, 4 - adds r3, r0 - lsls r3, 10 - orrs r4, r3 - strh r4, [r5] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r12 - bcc _080452A2 -_080452FA: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804530C: .4byte gPlttBufferUnfaded -_08045310: .4byte gPlttBufferFaded - thumb_func_end BlendPalette - - thumb_func_start sub_8045314 -sub_8045314: @ 8045314 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - adds r6, r2, 0 - adds r4, r3, 0 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r6, 0x10 - bne _08045342 - subs r4, 0x1 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _080453B2 -_08045336: - strh r2, [r5] - adds r5, 0x2 - subs r4, 0x1 - cmp r4, r0 - bne _08045336 - b _080453B2 -_08045342: - movs r0, 0x1F - movs r3, 0x1F - mov r9, r3 - mov r7, r9 - ands r7, r2 - mov r9, r7 - lsrs r2, r1, 21 - ands r2, r0 - mov r12, r2 - lsrs r1, 26 - mov r10, r1 - mov r3, r10 - ands r3, r0 - mov r10, r3 - subs r4, 0x1 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _080453B2 - movs r7, 0x1F - mov r8, r7 -_0804536C: - ldrh r2, [r5] - movs r3, 0x1F - ands r3, r2 - lsls r2, 16 - lsrs r1, r2, 21 - mov r0, r8 - ands r1, r0 - lsrs r2, 26 - ands r2, r0 - mov r7, r9 - subs r0, r7, r3 - muls r0, r6 - lsrs r0, 4 - adds r3, r0 - mov r7, r12 - subs r0, r7, r1 - muls r0, r6 - lsrs r0, 4 - adds r1, r0 - lsls r1, 5 - orrs r3, r1 - mov r1, r10 - subs r0, r1, r2 - muls r0, r6 - lsrs r0, 4 - adds r2, r0 - lsls r2, 10 - orrs r3, r2 - strh r3, [r5] - adds r5, 0x2 - subs r4, 0x1 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _0804536C -_080453B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8045314 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/blit.s b/asm/blit.s deleted file mode 100644 index 84b56fd67..000000000 --- a/asm/blit.s +++ /dev/null @@ -1,813 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start BlitBitmapRect4BitWithoutColorKey -BlitBitmapRect4BitWithoutColorKey: @ 8004A60 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r7, 16 - lsrs r7, 16 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0xFF - str r4, [sp, 0x10] - bl BlitBitmapRect4Bit - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end BlitBitmapRect4BitWithoutColorKey - - thumb_func_start BlitBitmapRect4Bit -BlitBitmapRect4Bit: @ 8004AA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [sp, 0x4C] - ldr r1, [sp, 0x50] - ldr r4, [sp, 0x54] - ldr r5, [sp, 0x58] - ldr r6, [sp, 0x5C] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r7, r3, 16 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - str r6, [sp, 0x10] - ldr r0, [sp, 0x4] - ldrh r3, [r0, 0x4] - ldr r1, [sp, 0xC] - subs r0, r3, r1 - adds r2, r4 - mov r8, r2 - cmp r0, r4 - bge _08004AF8 - ldr r2, [sp, 0x8] - adds r0, r2 - mov r8, r0 -_08004AF8: - ldr r4, [sp, 0x4] - ldrh r0, [r4, 0x6] - mov r1, r9 - subs r0, r1 - adds r2, r5, r7 - str r2, [sp, 0x14] - cmp r0, r5 - bge _08004B0C - adds r0, r7 - str r0, [sp, 0x14] -_08004B0C: - ldr r4, [sp] - ldrh r1, [r4, 0x4] - movs r2, 0x7 - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x18] - adds r0, r3, 0 - ands r0, r2 - adds r0, r3, r0 - asrs r0, 3 - str r0, [sp, 0x1C] - ldr r0, [sp, 0x10] - cmp r0, 0xFF - bne _08004BCA - adds r3, r7, 0 - mov r1, r9 - ldr r2, [sp, 0x14] - cmp r3, r2 - blt _08004B38 - b _08004C72 -_08004B38: - ldr r5, [sp, 0x8] - ldr r6, [sp, 0xC] - adds r4, r3, 0x1 - str r4, [sp, 0x24] - adds r0, r1, 0x1 - str r0, [sp, 0x28] - cmp r5, r8 - bge _08004BBE - movs r7, 0x3 - asrs r0, r3, 3 - ldr r2, [sp, 0x18] - muls r0, r2 - lsls r0, 5 - mov r10, r0 - lsls r0, r3, 29 - lsrs r0, 27 - mov r9, r0 - asrs r0, r1, 3 - ldr r4, [sp, 0x1C] - muls r0, r4 - lsls r0, 5 - mov r12, r0 - lsls r0, r1, 29 - lsrs r3, r0, 27 -_08004B68: - asrs r0, r5, 1 - ands r0, r7 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r0 - asrs r0, r5, 3 - lsls r0, 5 - adds r1, r0 - add r1, r10 - mov r4, r9 - adds r2, r1, r4 - asrs r0, r6, 1 - ands r0, r7 - ldr r4, [sp, 0x4] - ldr r1, [r4] - adds r1, r0 - asrs r0, r6, 3 - lsls r0, 5 - adds r1, r0 - add r1, r12 - adds r4, r1, r3 - ldrb r2, [r2] - adds r0, r5, 0 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - adds r0, r6, 0 - ands r0, r1 - lsls r1, r0, 2 - lsls r2, r1 - movs r0, 0xF0 - asrs r0, r1 - ldrb r1, [r4] - ands r0, r1 - orrs r2, r0 - strb r2, [r4] - adds r5, 0x1 - adds r6, 0x1 - cmp r5, r8 - blt _08004B68 -_08004BBE: - ldr r3, [sp, 0x24] - ldr r1, [sp, 0x28] - ldr r2, [sp, 0x14] - cmp r3, r2 - blt _08004B38 - b _08004C72 -_08004BCA: - adds r3, r7, 0 - mov r1, r9 - ldr r4, [sp, 0x14] - cmp r3, r4 - bge _08004C72 -_08004BD4: - ldr r5, [sp, 0x8] - ldr r6, [sp, 0xC] - adds r0, r3, 0x1 - str r0, [sp, 0x24] - adds r2, r1, 0x1 - str r2, [sp, 0x28] - cmp r5, r8 - bge _08004C68 - movs r4, 0x3 - mov r9, r4 - asrs r0, r3, 3 - ldr r2, [sp, 0x18] - muls r0, r2 - lsls r0, 5 - str r0, [sp, 0x20] - lsls r0, r3, 29 - lsrs r0, 27 - mov r10, r0 - movs r3, 0x1 - asrs r0, r1, 3 - ldr r4, [sp, 0x1C] - muls r0, r4 - lsls r0, 5 - mov r12, r0 - lsls r0, r1, 29 - lsrs r7, r0, 27 -_08004C08: - asrs r0, r5, 1 - mov r1, r9 - ands r0, r1 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r0 - asrs r0, r5, 3 - lsls r0, 5 - adds r1, r0 - ldr r4, [sp, 0x20] - adds r1, r4 - mov r0, r10 - adds r2, r1, r0 - asrs r0, r6, 1 - mov r1, r9 - ands r0, r1 - ldr r4, [sp, 0x4] - ldr r1, [r4] - adds r1, r0 - asrs r0, r6, 3 - lsls r0, 5 - adds r1, r0 - add r1, r12 - adds r4, r1, r7 - ldrb r2, [r2] - adds r0, r5, 0 - ands r0, r3 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - ldr r0, [sp, 0x10] - cmp r2, r0 - beq _08004C60 - adds r0, r6, 0 - ands r0, r3 - lsls r1, r0, 2 - lsls r2, r1 - movs r0, 0xF0 - asrs r0, r1 - ldrb r1, [r4] - ands r0, r1 - orrs r2, r0 - strb r2, [r4] -_08004C60: - adds r5, 0x1 - adds r6, 0x1 - cmp r5, r8 - blt _08004C08 -_08004C68: - ldr r3, [sp, 0x24] - ldr r1, [sp, 0x28] - ldr r2, [sp, 0x14] - cmp r3, r2 - blt _08004BD4 -_08004C72: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end BlitBitmapRect4Bit - - thumb_func_start FillBitmapRect4Bit -FillBitmapRect4Bit: @ 8004C84 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r0 - ldr r0, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - adds r5, r2, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r7, r4, 24 - adds r4, r1, r3 - mov r3, r9 - ldrh r1, [r3, 0x4] - cmp r4, r1 - ble _08004CBA - adds r4, r1, 0 -_08004CBA: - adds r2, r0 - mov r12, r2 - mov r2, r9 - ldrh r0, [r2, 0x6] - cmp r12, r0 - ble _08004CC8 - mov r12, r0 -_08004CC8: - movs r0, 0x7 - ands r0, r1 - adds r0, r1, r0 - asrs r0, 3 - str r0, [sp] - adds r1, r5, 0 - cmp r1, r12 - bge _08004D30 -_08004CD8: - mov r3, r10 - adds r0, r1, 0x1 - mov r8, r0 - cmp r3, r4 - bge _08004D2A - asrs r0, r1, 3 - ldr r2, [sp] - muls r0, r2 - lsls r6, r0, 5 - lsls r0, r1, 29 - lsrs r5, r0, 27 -_08004CEE: - asrs r2, r3, 1 - movs r0, 0x3 - ands r2, r0 - mov r0, r9 - ldr r1, [r0] - adds r1, r2 - asrs r0, r3, 3 - lsls r0, 5 - adds r1, r0 - adds r1, r6 - adds r2, r1, r5 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08004D1A - ldrb r0, [r2] - movs r1, 0xF - ands r1, r0 - lsls r0, r7, 4 - orrs r1, r0 - strb r1, [r2] - b _08004D24 -_08004D1A: - ldrb r1, [r2] - movs r0, 0xF0 - ands r0, r1 - orrs r0, r7 - strb r0, [r2] -_08004D24: - adds r3, 0x1 - cmp r3, r4 - blt _08004CEE -_08004D2A: - mov r1, r8 - cmp r1, r12 - blt _08004CD8 -_08004D30: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end FillBitmapRect4Bit - - thumb_func_start BlitBitmapRect4BitTo8Bit -BlitBitmapRect4BitTo8Bit: @ 8004D40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [sp, 0x5C] - ldr r1, [sp, 0x60] - ldr r5, [sp, 0x64] - ldr r4, [sp, 0x68] - ldr r6, [sp, 0x6C] - ldr r7, [sp, 0x70] - mov r8, r7 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - lsls r1, 16 - lsrs r7, r1, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 24 - lsrs r6, 24 - str r6, [sp, 0x10] - mov r0, r8 - lsls r0, 28 - lsrs r0, 24 - str r0, [sp, 0x14] - lsls r0, r6, 28 - lsrs r0, 24 - str r0, [sp, 0x28] - ldr r1, [sp, 0x4] - ldrh r0, [r1, 0x4] - ldr r2, [sp, 0xC] - subs r0, r2 - ldr r1, [sp, 0x8] - adds r1, r5, r1 - str r1, [sp, 0x18] - cmp r0, r5 - bge _08004DA6 - ldr r2, [sp, 0x8] - adds r0, r2 - str r0, [sp, 0x18] -_08004DA6: - ldr r5, [sp, 0x4] - ldrh r1, [r5, 0x6] - subs r0, r1, r7 - cmp r0, r4 - bge _08004DB8 - adds r0, r3, r1 - subs r0, r7 - str r0, [sp, 0x1C] - b _08004DBC -_08004DB8: - adds r4, r3, r4 - str r4, [sp, 0x1C] -_08004DBC: - ldr r0, [sp] - ldrh r1, [r0, 0x4] - movs r2, 0x7 - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x20] - ldr r5, [sp, 0x4] - ldrh r1, [r5, 0x4] - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x24] - ldr r0, [sp, 0x10] - cmp r0, 0xFF - bne _08004E9C - adds r2, r3, 0 - adds r5, r7, 0 - ldr r1, [sp, 0x1C] - cmp r2, r1 - blt _08004DEC - b _08004F7E -_08004DEC: - ldr r3, [sp, 0x8] - lsrs r3, 1 - str r3, [sp, 0x2C] - movs r0, 0x3 - ands r3, r0 - str r3, [sp, 0x2C] - ldr r7, [sp, 0x8] - lsrs r0, r7, 3 - lsls r0, 5 - str r0, [sp, 0x30] -_08004E00: - ldr r0, [sp] - ldr r1, [r0] - ldr r3, [sp, 0x2C] - adds r1, r3 - ldr r7, [sp, 0x30] - adds r1, r7 - asrs r0, r2, 3 - ldr r3, [sp, 0x20] - muls r0, r3 - lsls r0, 5 - mov r8, r0 - add r1, r8 - lsls r0, r2, 29 - lsrs r7, r0, 27 - adds r6, r1, r7 - ldr r3, [sp, 0x8] - ldr r4, [sp, 0xC] - adds r2, 0x1 - mov r10, r2 - adds r0, r5, 0x1 - str r0, [sp, 0x38] - ldr r1, [sp, 0x18] - cmp r3, r1 - bge _08004E90 - asrs r0, r5, 3 - ldr r2, [sp, 0x24] - muls r0, r2 - lsls r0, 6 - mov r12, r0 - lsls r0, r5, 29 - lsrs r0, 26 - mov r9, r0 -_08004E40: - movs r0, 0x7 - ands r0, r4 - ldr r5, [sp, 0x4] - ldr r1, [r5] - adds r1, r0 - asrs r0, r4, 3 - lsls r0, 6 - adds r1, r0 - add r1, r12 - mov r0, r9 - adds r5, r1, r0 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08004E64 - ldrb r0, [r6] - lsrs r0, 4 - b _08004E80 -_08004E64: - asrs r2, r3, 1 - movs r0, 0x3 - ands r2, r0 - ldr r0, [sp] - ldr r1, [r0] - adds r1, r2 - asrs r0, r3, 3 - lsls r0, 5 - adds r1, r0 - add r1, r8 - adds r6, r1, r7 - ldrb r1, [r6] - movs r0, 0xF - ands r0, r1 -_08004E80: - ldr r1, [sp, 0x14] - adds r0, r1, r0 - strb r0, [r5] - adds r3, 0x1 - adds r4, 0x1 - ldr r2, [sp, 0x18] - cmp r3, r2 - blt _08004E40 -_08004E90: - mov r2, r10 - ldr r5, [sp, 0x38] - ldr r3, [sp, 0x1C] - cmp r2, r3 - blt _08004E00 - b _08004F7E -_08004E9C: - adds r2, r3, 0 - adds r5, r7, 0 - ldr r7, [sp, 0x1C] - cmp r2, r7 - bge _08004F7E - ldr r0, [sp, 0x8] - lsrs r0, 1 - str r0, [sp, 0x34] - movs r0, 0x3 - ldr r1, [sp, 0x34] - ands r1, r0 - str r1, [sp, 0x34] -_08004EB4: - ldr r3, [sp] - ldr r1, [r3] - ldr r7, [sp, 0x34] - adds r1, r7 - ldr r3, [sp, 0x8] - lsrs r0, r3, 3 - lsls r0, 5 - adds r1, r0 - asrs r0, r2, 3 - ldr r7, [sp, 0x20] - muls r0, r7 - lsls r0, 5 - mov r8, r0 - add r1, r8 - lsls r0, r2, 29 - lsrs r7, r0, 27 - adds r6, r1, r7 - ldr r4, [sp, 0xC] - adds r2, 0x1 - mov r10, r2 - adds r0, r5, 0x1 - str r0, [sp, 0x38] - ldr r1, [sp, 0x18] - cmp r3, r1 - bge _08004F74 - asrs r0, r5, 3 - ldr r2, [sp, 0x24] - muls r0, r2 - lsls r0, 6 - mov r9, r0 - lsls r0, r5, 29 - lsrs r0, 26 - mov r12, r0 -_08004EF6: - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08004F2A - ldrb r2, [r6] - movs r0, 0xF0 - ands r0, r2 - ldr r5, [sp, 0x28] - cmp r0, r5 - beq _08004F6A - adds r0, r4, 0 - movs r1, 0x7 - ands r0, r1 - ldr r5, [sp, 0x4] - ldr r1, [r5] - adds r1, r0 - asrs r0, r4, 3 - lsls r0, 6 - adds r1, r0 - add r1, r9 - mov r0, r12 - adds r5, r1, r0 - lsrs r0, r2, 4 - ldr r1, [sp, 0x14] - adds r0, r1, r0 - b _08004F68 -_08004F2A: - asrs r2, r3, 1 - movs r0, 0x3 - ands r2, r0 - ldr r5, [sp] - ldr r1, [r5] - adds r1, r2 - asrs r0, r3, 3 - lsls r0, 5 - adds r1, r0 - add r1, r8 - adds r6, r1, r7 - ldrb r0, [r6] - movs r2, 0xF - ands r2, r0 - ldr r0, [sp, 0x10] - cmp r2, r0 - beq _08004F6A - adds r0, r4, 0 - movs r1, 0x7 - ands r0, r1 - ldr r5, [sp, 0x4] - ldr r1, [r5] - adds r1, r0 - asrs r0, r4, 3 - lsls r0, 6 - adds r1, r0 - add r1, r9 - mov r0, r12 - adds r5, r1, r0 - ldr r1, [sp, 0x14] - adds r0, r1, r2 -_08004F68: - strb r0, [r5] -_08004F6A: - adds r3, 0x1 - adds r4, 0x1 - ldr r2, [sp, 0x18] - cmp r3, r2 - blt _08004EF6 -_08004F74: - mov r2, r10 - ldr r5, [sp, 0x38] - ldr r3, [sp, 0x1C] - cmp r2, r3 - blt _08004EB4 -_08004F7E: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end BlitBitmapRect4BitTo8Bit - - thumb_func_start FillBitmapRect8Bit -FillBitmapRect8Bit: @ 8004F90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r8, r0 - ldr r0, [sp, 0x28] - ldr r4, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - adds r6, r2, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - adds r5, r1, r3 - mov r3, r8 - ldrh r1, [r3, 0x4] - cmp r5, r1 - ble _08004FC8 - adds r5, r1, 0 -_08004FC8: - adds r7, r2, r0 - mov r2, r8 - ldrh r0, [r2, 0x6] - cmp r7, r0 - ble _08004FD4 - adds r7, r0, 0 -_08004FD4: - movs r0, 0x7 - ands r0, r1 - adds r0, r1, r0 - asrs r0, 3 - str r0, [sp] - adds r1, r6, 0 - cmp r1, r7 - bge _08005024 -_08004FE4: - mov r3, r10 - adds r6, r1, 0x1 - str r6, [sp, 0x4] - cmp r3, r5 - bge _0800501E - movs r0, 0x7 - mov r12, r0 - asrs r0, r1, 3 - ldr r2, [sp] - muls r0, r2 - lsls r4, r0, 6 - lsls r0, r1, 29 - lsrs r2, r0, 26 -_08004FFE: - adds r0, r3, 0 - mov r6, r12 - ands r0, r6 - mov r6, r8 - ldr r1, [r6] - adds r1, r0 - asrs r0, r3, 3 - lsls r0, 6 - adds r1, r0 - adds r1, r4 - adds r1, r2 - mov r0, r9 - strb r0, [r1] - adds r3, 0x1 - cmp r3, r5 - blt _08004FFE -_0800501E: - ldr r1, [sp, 0x4] - cmp r1, r7 - blt _08004FE4 -_08005024: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end FillBitmapRect8Bit - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/braille_text.s b/asm/braille_text.s index 8297df7e7..2428f2984 100644 --- a/asm/braille_text.s +++ b/asm/braille_text.s @@ -5,591 +5,4 @@ .text - thumb_func_start Font6Func -Font6Func: @ 814F884 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r6, 0 - adds r4, 0x14 - ldrb r0, [r6, 0x1C] - cmp r0, 0x6 - bls _0814F894 - b _0814FC94 -_0814F894: - lsls r0, 2 - ldr r1, _0814F8A0 @ =_0814F8A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F8A0: .4byte _0814F8A4 - .align 2, 0 -_0814F8A4: - .4byte _0814F8C0 - .4byte _0814FB88 - .4byte _0814FB9A - .4byte _0814FBC4 - .4byte _0814FBFC - .4byte _0814FC70 - .4byte _0814FC82 -_0814F8C0: - ldr r2, _0814F914 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0814F8DA - ldrb r1, [r4] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0814F8DA - movs r0, 0 - strb r0, [r6, 0x1E] -_0814F8DA: - ldrb r1, [r6, 0x1E] - cmp r1, 0 - beq _0814F91C - ldrb r0, [r6, 0x1D] - cmp r0, 0 - beq _0814F91C - subs r0, r1, 0x1 - strb r0, [r6, 0x1E] - ldr r0, _0814F918 @ =gTextFlags - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0814F8F8 - b _0814FB42 -_0814F8F8: - ldrh r1, [r2, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0814F904 - b _0814FB42 -_0814F904: - ldrb r0, [r4] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4] - movs r0, 0 - strb r0, [r6, 0x1E] - b _0814FB42 - .align 2, 0 -_0814F914: .4byte gMain -_0814F918: .4byte gTextFlags -_0814F91C: - ldr r2, _0814F92C @ =gTextFlags - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0814F930 - movs r0, 0x1 - b _0814F932 - .align 2, 0 -_0814F92C: .4byte gTextFlags -_0814F930: - ldrb r0, [r6, 0x1D] -_0814F932: - strb r0, [r6, 0x1E] - ldr r0, [r6] - ldrb r3, [r0] - adds r0, 0x1 - str r0, [r6] - adds r0, r3, 0 - subs r0, 0xF8 - cmp r0, 0x7 - bls _0814F946 - b _0814FB62 -_0814F946: - lsls r0, 2 - ldr r1, _0814F950 @ =_0814F954 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F950: .4byte _0814F954 - .align 2, 0 -_0814F954: - .4byte _0814FB58 - .4byte _0814FB46 - .4byte _0814FB38 - .4byte _0814FB34 - .4byte _0814F9A2 - .4byte _0814F99C - .4byte _0814F974 - .4byte _0814FC94 -_0814F974: - ldrb r0, [r6, 0x6] - strb r0, [r6, 0x8] - ldrb r1, [r6, 0x5] - ldr r0, _0814F998 @ =gFonts - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r6, 0xB] - ldrb r0, [r0, 0x5] - adds r1, r0 - ldrb r0, [r6, 0x9] - adds r0, r1 - strb r0, [r6, 0x9] -_0814F992: - movs r0, 0x2 - b _0814FC96 - .align 2, 0 -_0814F998: .4byte gFonts -_0814F99C: - ldr r0, [r6] - adds r0, 0x1 - b _0814FAF8 -_0814F9A2: - ldr r0, [r6] - ldrb r3, [r0] - adds r0, 0x1 - str r0, [r6] - subs r0, r3, 0x1 - cmp r0, 0xF - bls _0814F9B2 - b _0814FB62 -_0814F9B2: - lsls r0, 2 - ldr r1, _0814F9BC @ =_0814F9C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F9BC: .4byte _0814F9C0 - .align 2, 0 -_0814F9C0: - .4byte _0814FA00 - .4byte _0814FA22 - .4byte _0814FA46 - .4byte _0814FA60 - .4byte _0814FAAC - .4byte _0814FAB2 - .4byte _0814F992 - .4byte _0814FACC - .4byte _0814FADC - .4byte _0814FAF0 - .4byte _0814FAF4 - .4byte _0814FAFC - .4byte _0814FB06 - .4byte _0814FB12 - .4byte _0814FB22 - .4byte _0814FAF4 -_0814FA00: - ldr r2, [r6] - ldrb r1, [r2] - lsls r1, 4 - ldrb r3, [r6, 0xC] - movs r0, 0xF - ands r0, r3 - orrs r0, r1 - strb r0, [r6, 0xC] - adds r2, 0x1 - str r2, [r6] - lsls r0, 24 - lsrs r0, 28 - ldrb r2, [r6, 0xD] - lsls r1, r2, 28 - lsrs r1, 28 - lsrs r2, 4 - b _0814FAA6 -_0814FA22: - ldr r1, [r6] - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - ldrb r3, [r6, 0xD] - movs r2, 0x10 - negs r2, r2 - ands r2, r3 - orrs r2, r0 - strb r2, [r6, 0xD] - adds r1, 0x1 - str r1, [r6] - ldrb r0, [r6, 0xC] - lsrs r0, 4 - lsls r1, r2, 28 - lsrs r1, 28 - lsrs r2, 4 - b _0814FAA6 -_0814FA46: - ldr r1, [r6] - ldrb r0, [r1] - lsls r0, 4 - ldrb r3, [r6, 0xD] - movs r2, 0xF - ands r2, r3 - orrs r2, r0 - strb r2, [r6, 0xD] - adds r1, 0x1 - str r1, [r6] - ldrb r0, [r6, 0xC] - lsrs r0, 4 - b _0814FA9E -_0814FA60: - ldr r3, [r6] - ldrb r1, [r3] - lsls r1, 4 - ldrb r4, [r6, 0xC] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r4 - orrs r0, r1 - strb r0, [r6, 0xC] - adds r5, r3, 0x1 - str r5, [r6] - ldrb r3, [r3, 0x1] - adds r1, r2, 0 - ands r1, r3 - ldrb r4, [r6, 0xD] - movs r3, 0x10 - negs r3, r3 - ands r3, r4 - orrs r3, r1 - strb r3, [r6, 0xD] - adds r4, r5, 0x1 - str r4, [r6] - ldrb r1, [r5, 0x1] - lsls r1, 4 - ands r2, r3 - orrs r2, r1 - strb r2, [r6, 0xD] - adds r4, 0x1 - str r4, [r6] - lsls r0, 24 - lsrs r0, 28 -_0814FA9E: - lsls r1, r2, 28 - lsrs r1, 28 - lsls r2, 24 - lsrs r2, 28 -_0814FAA6: - bl GenerateFontHalfRowLookupTable - b _0814F992 -_0814FAAC: - ldr r0, [r6] - adds r0, 0x1 - b _0814FAF8 -_0814FAB2: - ldr r0, [r6] - ldrb r0, [r0] - movs r1, 0xF - ands r1, r0 - ldrb r2, [r4] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldr r0, [r6] - adds r0, 0x1 - b _0814FAF8 -_0814FACC: - ldr r0, [r6] - ldrb r1, [r0] - strb r1, [r6, 0x1E] - adds r0, 0x1 - str r0, [r6] - movs r0, 0x6 - strb r0, [r6, 0x1C] - b _0814F992 -_0814FADC: - movs r0, 0x1 - strb r0, [r6, 0x1C] - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0814FB42 - movs r0, 0 - strb r0, [r4, 0x2] - b _0814FB42 -_0814FAF0: - movs r0, 0x5 - b _0814FC7E -_0814FAF4: - ldr r0, [r6] - adds r0, 0x2 -_0814FAF8: - str r0, [r6] - b _0814F992 -_0814FAFC: - ldr r1, [r6] - adds r0, r1, 0x1 - str r0, [r6] - ldrb r3, [r1, 0x1] - b _0814FB62 -_0814FB06: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, 0x6] - adds r0, r2 - strb r0, [r6, 0x8] - b _0814FB1C -_0814FB12: - ldr r1, [r6] - ldrb r0, [r1] - ldrb r2, [r6, 0x7] - adds r0, r2 - strb r0, [r6, 0x9] -_0814FB1C: - adds r1, 0x1 - str r1, [r6] - b _0814F992 -_0814FB22: - ldrb r0, [r6, 0x4] - ldrb r2, [r6, 0xD] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - b _0814F992 -_0814FB34: - movs r0, 0x2 - b _0814FB3A -_0814FB38: - movs r0, 0x3 -_0814FB3A: - strb r0, [r6, 0x1C] - adds r0, r6, 0 - bl TextPrinterInitDownArrowCounters -_0814FB42: - movs r0, 0x3 - b _0814FC96 -_0814FB46: - ldr r0, [r6] - ldrb r3, [r0] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - orrs r3, r1 - adds r0, 0x1 - str r0, [r6] - b _0814FB62 -_0814FB58: - ldr r0, [r6] - adds r0, 0x1 - str r0, [r6] - movs r0, 0 - b _0814FC96 -_0814FB62: - adds r0, r3, 0 - bl DecompressGlyphFont6 - adds r0, r6, 0 - bl CopyGlyphToWindow - ldr r0, _0814FB84 @ =gGlyphInfo - adds r0, 0x80 - ldrb r1, [r6, 0xA] - ldrb r0, [r0] - adds r1, r0 - ldrb r0, [r6, 0x8] - adds r0, r1 - strb r0, [r6, 0x8] - movs r0, 0 - b _0814FC96 - .align 2, 0 -_0814FB84: .4byte gGlyphInfo -_0814FB88: - adds r0, r6, 0 - bl TextPrinterWait - lsls r0, 16 - cmp r0, 0 - beq _0814FB42 - movs r0, 0 - strb r0, [r6, 0x1C] - b _0814FB42 -_0814FB9A: - adds r0, r6, 0 - bl TextPrinterWaitWithDownArrow - lsls r0, 16 - cmp r0, 0 - beq _0814FB42 - ldrb r0, [r6, 0x4] - ldrb r2, [r6, 0xD] - lsls r2, 28 - lsrs r1, r2, 4 - orrs r1, r2 - lsrs r1, 24 - bl FillWindowPixelBuffer - ldrb r0, [r6, 0x6] - movs r1, 0 - strb r0, [r6, 0x8] - ldrb r0, [r6, 0x7] - strb r0, [r6, 0x9] - strb r1, [r6, 0x1C] - b _0814FB42 -_0814FBC4: - adds r0, r6, 0 - bl TextPrinterWaitWithDownArrow - lsls r0, 16 - cmp r0, 0 - beq _0814FB42 - adds r0, r6, 0 - bl TextPrinterClearDownArrow - ldrb r1, [r6, 0x5] - ldr r0, _0814FBF8 @ =gFonts - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r6, 0xB] - ldrb r0, [r0, 0x5] - adds r1, r0 - strb r1, [r6, 0x1F] - ldrb r0, [r6, 0x6] - strb r0, [r6, 0x8] - movs r0, 0x4 - strb r0, [r6, 0x1C] - b _0814FB42 - .align 2, 0 -_0814FBF8: .4byte gFonts -_0814FBFC: - ldrb r2, [r6, 0x1F] - cmp r2, 0 - beq _0814FC6C - ldr r4, _0814FC30 @ =gUnknown_846FB08 - ldr r5, _0814FC34 @ =gSaveBlock2Ptr - ldr r0, [r5] - ldrb r0, [r0, 0x14] - lsls r1, r0, 29 - lsrs r0, r1, 29 - adds r0, r4 - ldrb r0, [r0] - cmp r2, r0 - bcs _0814FC38 - ldrb r0, [r6, 0x4] - ldrb r1, [r6, 0xD] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - movs r0, 0 - strb r0, [r6, 0x1F] - b _0814FC62 - .align 2, 0 -_0814FC30: .4byte gUnknown_846FB08 -_0814FC34: .4byte gSaveBlock2Ptr -_0814FC38: - ldrb r0, [r6, 0x4] - lsrs r1, 29 - adds r1, r4 - ldrb r2, [r1] - ldrb r1, [r6, 0xD] - lsls r1, 28 - lsrs r3, r1, 4 - orrs r3, r1 - lsrs r3, 24 - movs r1, 0 - bl ScrollWindow - ldr r0, [r5] - ldrb r0, [r0, 0x14] - lsls r0, 29 - lsrs r0, 29 - adds r0, r4 - ldrb r1, [r6, 0x1F] - ldrb r0, [r0] - subs r1, r0 - strb r1, [r6, 0x1F] -_0814FC62: - ldrb r0, [r6, 0x4] - movs r1, 0x2 - bl CopyWindowToVram - b _0814FB42 -_0814FC6C: - strb r2, [r6, 0x1C] - b _0814FB42 -_0814FC70: - bl IsSEPlaying - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0814FC7E - b _0814FB42 -_0814FC7E: - strb r0, [r6, 0x1C] - b _0814FB42 -_0814FC82: - ldrb r0, [r6, 0x1E] - adds r1, r0, 0 - cmp r1, 0 - beq _0814FC90 - subs r0, 0x1 - strb r0, [r6, 0x1E] - b _0814FB42 -_0814FC90: - strb r1, [r6, 0x1C] - b _0814FB42 -_0814FC94: - movs r0, 0x1 -_0814FC96: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end Font6Func - - thumb_func_start DecompressGlyphFont6 -DecompressGlyphFont6: @ 814FC9C - push {r4,r5,lr} - lsls r0, 16 - lsrs r2, r0, 19 - lsls r2, 9 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 11 - ldr r0, _0814FCF8 @ =gUnknown_846FB0C - adds r1, r0 - adds r5, r2, r1 - ldr r4, _0814FCFC @ =gGlyphInfo - adds r0, r5, 0 - adds r1, r4, 0 - bl DecompressGlyphTile - adds r0, r5, 0 - adds r0, 0x10 - adds r1, r4, 0 - adds r1, 0x20 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x40 - bl DecompressGlyphTile - movs r1, 0x88 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x60 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x80 - movs r1, 0x10 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FCF8: .4byte gUnknown_846FB0C -_0814FCFC: .4byte gGlyphInfo - thumb_func_end DecompressGlyphFont6 - - thumb_func_start GetGlyphWidthFont6 -GetGlyphWidthFont6: @ 814FD00 - movs r0, 0x10 - bx lr - thumb_func_end GetGlyphWidthFont6 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/bug.s b/asm/bug.s new file mode 100644 index 000000000..6970411d1 --- /dev/null +++ b/asm/bug.s @@ -0,0 +1,829 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B3FAC +sub_80B3FAC: @ 80B3FAC + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B3FD8 + adds r0, r6, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080B3FD4 @ =gBattleAnimArgs + ldrh r1, [r0, 0x4] + negs r1, r1 + strh r1, [r0, 0x4] + ldrh r1, [r0] + negs r1, r1 + strh r1, [r0] + b _080B4008 + .align 2, 0 +_080B3FD4: .4byte gBattleAnimArgs +_080B3FD8: + ldr r0, _080B406C @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B4008 + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080B4070 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080B4008: + ldr r5, _080B406C @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074844 + lsls r0, 24 + ldr r4, _080B4070 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074844 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + ldr r0, _080B4074 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080B4078 @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B406C: .4byte gBattleAnimTarget +_080B4070: .4byte gBattleAnimArgs +_080B4074: .4byte sub_8075590 +_080B4078: .4byte DestroyAnimSprite + thumb_func_end sub_80B3FAC + + thumb_func_start sub_80B407C +sub_80B407C: @ 80B407C + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B40A0 + ldr r1, _080B409C @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] + adds r0, r6, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + b _080B40BC + .align 2, 0 +_080B409C: .4byte gBattleAnimArgs +_080B40A0: + ldr r0, _080B4118 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B40BC + ldr r0, _080B411C @ =gBattleAnimArgs + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0] + negs r1, r1 + strh r1, [r0] +_080B40BC: + ldr r5, _080B4118 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074844 + lsls r0, 24 + ldr r4, _080B411C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074844 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x2E] + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x36] + ldr r0, _080B4120 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080B4124 @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B4118: .4byte gBattleAnimTarget +_080B411C: .4byte gBattleAnimArgs +_080B4120: .4byte sub_8075590 +_080B4124: .4byte DestroyAnimSprite + thumb_func_end sub_80B407C + + thumb_func_start sub_80B4128 +sub_80B4128: @ 80B4128 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B4144 + ldr r0, _080B4184 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + strh r1, [r0, 0x4] +_080B4144: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080B4184 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080B418C + ldr r4, _080B4188 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080B419E + .align 2, 0 +_080B4184: .4byte gBattleAnimArgs +_080B4188: .4byte gBattleAnimTarget +_080B418C: + ldr r0, _080B41B4 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C +_080B419E: + adds r0, r5, 0 + bl sub_8075678 + ldr r0, _080B41B8 @ =gBattleAnimArgs + ldrh r0, [r0, 0x6] + strh r0, [r5, 0x38] + ldr r0, _080B41BC @ =sub_80B41C0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B41B4: .4byte gBattleAnimTarget +_080B41B8: .4byte gBattleAnimArgs +_080B41BC: .4byte sub_80B41C0 + thumb_func_end sub_80B4128 + + thumb_func_start sub_80B41C0 +sub_80B41C0: @ 80B41C0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080B41D6 + adds r0, r4, 0 + bl DestroyAnimSprite + b _080B41F2 +_080B41D6: + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3A] + adds r0, 0xD + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] +_080B41F2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B41C0 + + thumb_func_start sub_80B41F8 +sub_80B41F8: @ 80B41F8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B4228 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldr r0, _080B422C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B4234 + ldr r0, _080B4230 @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080B4240 + .align 2, 0 +_080B4228: .4byte gBattleAnimTarget +_080B422C: .4byte gBattleAnimAttacker +_080B4230: .4byte gBattleAnimArgs +_080B4234: + ldr r1, _080B4268 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_080B4240: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080B426C @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B425C + ldrh r0, [r4, 0x22] + adds r0, 0x8 + strh r0, [r4, 0x22] +_080B425C: + ldr r0, _080B4270 @ =sub_80B4274 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4268: .4byte gBattleAnimArgs +_080B426C: .4byte gBattleAnimTarget +_080B4270: .4byte sub_80B4274 + thumb_func_end sub_80B41F8 + + thumb_func_start sub_80B4274 +sub_80B4274: @ 80B4274 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B42A8 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080B42A8: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080B42BC + adds r0, r3, 0 + bl DestroyAnimSprite +_080B42BC: + pop {r0} + bx r0 + thumb_func_end sub_80B4274 + + thumb_func_start sub_80B42C0 +sub_80B42C0: @ 80B42C0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldr r0, _080B42E4 @ =sub_80B42E8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B42E4: .4byte sub_80B42E8 + thumb_func_end sub_80B42C0 + + thumb_func_start sub_80B42E8 +sub_80B42E8: @ 80B42E8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x13 + bgt _080B42FC + adds r0, r1, 0x1 + strh r0, [r4, 0x32] + b _080B433A +_080B42FC: + ldrh r1, [r4, 0x30] + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B433A + ldrh r1, [r4, 0x2E] + subs r1, 0x1 + strh r1, [r4, 0x2E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B433A + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B4340 @ =sub_80B4344 + str r0, [r4, 0x1C] +_080B433A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4340: .4byte sub_80B4344 + thumb_func_end sub_80B42E8 + + thumb_func_start sub_80B4344 +sub_80B4344: @ 80B4344 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B4344 + + thumb_func_start sub_80B4364 +sub_80B4364: @ 80B4364 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B4384 + ldr r1, _080B4380 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + b _080B43A6 + .align 2, 0 +_080B4380: .4byte gBattleAnimArgs +_080B4384: + ldr r0, _080B4480 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B43A6 + ldr r1, _080B4484 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080B43A6: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B43F6 + ldr r0, _080B4480 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + adds r4, r0, 0 + ldr r5, _080B4488 @ =gBattleAnimTarget + ldrb r0, [r5] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080B43F6 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + beq _080B43E4 + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B43F6 +_080B43E4: + ldr r0, _080B4484 @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r1, [r0, r2] + negs r1, r1 + strh r1, [r0, 0x4] + movs r2, 0 + ldrsh r1, [r0, r2] + negs r1, r1 + strh r1, [r0] +_080B43F6: + adds r0, r7, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080B4488 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + lsls r4, 24 + ldr r6, _080B4484 @ =gBattleAnimArgs + lsrs r4, 24 + ldrh r0, [r6, 0x4] + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r6, 0x6] + adds r1, r2 + lsls r1, 16 + ldrh r2, [r7, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + subs r0, r2 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r7, 0x22] + lsrs r5, r1, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + ldrh r0, [r6, 0x8] + strh r0, [r7, 0x2E] + strh r4, [r7, 0x32] + strh r5, [r7, 0x36] + ldr r0, _080B448C @ =sub_8075590 + str r0, [r7, 0x1C] + ldr r1, _080B4490 @ =DestroyAnimSprite + adds r0, r7, 0 + bl StoreSpriteCallbackInData6 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B4480: .4byte gBattleAnimAttacker +_080B4484: .4byte gBattleAnimArgs +_080B4488: .4byte gBattleAnimTarget +_080B448C: .4byte sub_8075590 +_080B4490: .4byte DestroyAnimSprite + thumb_func_end sub_80B4364 + + thumb_func_start sub_80B4494 +sub_80B4494: @ 80B4494 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B4500 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B44B4 + ldr r1, _080B4504 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080B44B4: + ldr r4, _080B4504 @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080B4508 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_8075068 + ldr r0, _080B450C @ =sub_80B4510 + str r0, [r6, 0x1C] + adds r2, r6, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B4500: .4byte gBattleAnimAttacker +_080B4504: .4byte gBattleAnimArgs +_080B4508: .4byte gBattleAnimTarget +_080B450C: .4byte sub_80B4510 + thumb_func_end sub_80B4494 + + thumb_func_start sub_80B4510 +sub_80B4510: @ 80B4510 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B453C + adds r0, r4, 0 + bl DestroyAnimSprite + b _080B45CC +_080B453C: + movs r0, 0x2E + adds r0, r4 + mov r8, r0 + ldrh r7, [r4, 0x20] + ldrh r5, [r4, 0x24] + ldrh r1, [r4, 0x22] + mov r12, r1 + ldrh r6, [r4, 0x26] + mov r2, r8 + add r1, sp, 0x4 + movs r3, 0x7 +_080B4552: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080B4552 + adds r0, r7, r5 + lsls r0, 16 + lsrs r5, r0, 16 + mov r2, r12 + adds r0, r2, r6 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r4, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + bne _080B45CC + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + lsls r1, r5, 16 + asrs r1, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r1, r2 + lsls r2, r6, 16 + asrs r2, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8075A1C + add r2, sp, 0x4 + mov r1, r8 + movs r3, 0x7 +_080B45BE: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080B45BE +_080B45CC: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B4510 + + thumb_func_start sub_80B45D8 +sub_80B45D8: @ 80B45D8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B45EC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B45F4 + ldr r4, _080B45F0 @ =gBattleAnimAttacker + b _080B45F6 + .align 2, 0 +_080B45EC: .4byte gBattleAnimArgs +_080B45F0: .4byte gBattleAnimAttacker +_080B45F4: + ldr r4, _080B4628 @ =gBattleAnimTarget +_080B45F6: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x12 + strh r0, [r5, 0x22] + ldr r1, _080B462C @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B4630 @ =sub_8074F50 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4628: .4byte gBattleAnimTarget +_080B462C: .4byte move_anim_8074EE0 +_080B4630: .4byte sub_8074F50 + thumb_func_end sub_80B45D8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s index 734e648b3..ed18eb711 100644 --- a/asm/buy_menu_helpers.s +++ b/asm/buy_menu_helpers.s @@ -24,15 +24,15 @@ _0813F686: movs r0, 0 movs r1, 0x1 movs r2, 0xD0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x13 movs r2, 0xE0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 movs r0, 0 movs r1, 0xA movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0 bl PutWindowTilemap movs r0, 0x4 @@ -114,7 +114,7 @@ sub_813F6F4: @ 813F6F4 str r4, [sp, 0xC] str r2, [sp, 0x10] mov r2, r9 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r3,r4} mov r8, r3 @@ -141,7 +141,7 @@ sub_813F75C: @ 813F75C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 str r4, [sp] @@ -209,7 +209,7 @@ sub_813F7D8: @ 813F7D8 str r3, [sp, 0xC] movs r2, 0x2 movs r3, 0 - bl sub_80BF5D0 + bl CreateYesNoMenuWithCallbacks add sp, 0x10 pop {r0} bx r0 diff --git a/asm/cable_club.s b/asm/cable_club.s index 45967283c..b9b3a595c 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -91,7 +91,7 @@ sub_80807E8: @ 80807E8 lsrs r4, 24 adds r0, r4, 0 movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram @@ -765,7 +765,7 @@ _08080D3C: cmp r2, 0x9 bne _08080D54 _08080D44: - bl sub_80098B8 + bl CloseLink bl HideFieldMessageBox ldr r0, _08080D50 @ =sub_8080F78 b _08080D72 @@ -860,7 +860,7 @@ _08080DF6: cmp r0, 0x9 bne _08080E20 _08080DFE: - bl sub_80098B8 + bl CloseLink _08080E02: bl HideFieldMessageBox ldr r0, _08080E18 @ =gTasks @@ -1631,7 +1631,7 @@ _08081410: _08081418: str r0, [r1] _0808141A: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r1, _08081444 @ =gTrainerBattleOpponent_A movs r2, 0x80 lsls r2, 4 @@ -1854,7 +1854,7 @@ _080815E0: _080815E8: str r0, [r1] _080815EA: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r1, _08081614 @ =gTrainerBattleOpponent_A movs r3, 0x80 lsls r3, 4 @@ -1905,14 +1905,14 @@ _0808164C: lsls r0, 24 cmp r0, 0 beq _0808165C - ldr r0, _08081664 @ =c2_exit_to_overworld_2_switch + ldr r0, _08081664 @ =CB2_ReturnToField bl SetMainCallback2 _0808165C: pop {r4} pop {r0} bx r0 .align 2, 0 -_08081664: .4byte c2_exit_to_overworld_2_switch +_08081664: .4byte CB2_ReturnToField thumb_func_end sub_8081624 thumb_func_start sub_8081668 @@ -1940,7 +1940,7 @@ sub_8081668: @ 8081668 ldrb r0, [r0] cmp r0, 0 beq _0808170A - ldr r0, _080816C4 @ =gUnknown_2023E8A + ldr r0, _080816C4 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x1 beq _080816C8 @@ -1953,7 +1953,7 @@ _080816B4: .4byte 0x0000ffdf _080816B8: .4byte gSpecialVar_0x8004 _080816BC: .4byte gUnknown_300502C _080816C0: .4byte gWirelessCommType -_080816C4: .4byte gUnknown_2023E8A +_080816C4: .4byte gBattleOutcome _080816C8: ldr r4, _080816E8 @ =gLinkPlayers bl GetMultiplayerId @@ -2459,7 +2459,7 @@ sub_8081A90: @ 8081A90 lsls r0, 17 cmp r1, r0 ble _08081AC2 - bl sub_80098B8 + bl CloseLink ldr r0, _08081ADC @ =c2_800ACD4 bl SetMainCallback2 adds r0, r4, 0 diff --git a/asm/cereader_tool.s b/asm/cereader_tool.s deleted file mode 100644 index 749cb5303..000000000 --- a/asm/cereader_tool.s +++ /dev/null @@ -1,196 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815D654 -sub_815D654: @ 815D654 - push {lr} - ldr r0, _0815D674 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _0815D678 @ =0x00003d41 - adds r0, r1 - ldrb r1, [r0] - adds r2, r1, 0x1 - adds r0, r2, 0 - asrs r0, 8 - lsls r0, 8 - subs r0, r2, r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0815D674: .4byte gSaveBlock1Ptr -_0815D678: .4byte 0x00003d41 - thumb_func_end sub_815D654 - - thumb_func_start sub_815D67C -sub_815D67C: @ 815D67C - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r0, [r5, 0x1] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - bhi _0815D6AA - ldrb r0, [r5, 0x2] - cmp r0, 0x2 - bhi _0815D6AA - movs r4, 0xF7 - lsls r4, 2 - adds r0, r5, 0 - adds r1, r4, 0 - bl CalcByteArraySum - adds r4, r5, r4 - ldr r1, [r4] - cmp r0, r1 - bne _0815D6AA - movs r0, 0x1 - b _0815D6AC -_0815D6AA: - movs r0, 0 -_0815D6AC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815D67C - - thumb_func_start sub_815D6B4 -sub_815D6B4: @ 815D6B4 - push {r4-r7,lr} - adds r7, r0, 0 - ldrb r6, [r7] - subs r0, r6, 0x1 - cmp r0, 0x7 - bhi _0815D6F8 - movs r5, 0 - cmp r5, r6 - bcs _0815D6E0 - adds r4, r7, 0 - adds r4, 0x8 -_0815D6CA: - adds r0, r4, 0 - bl sub_815D67C - cmp r0, 0 - beq _0815D6F8 - movs r0, 0xF8 - lsls r0, 2 - adds r4, r0 - adds r5, 0x1 - cmp r5, r6 - bcc _0815D6CA -_0815D6E0: - adds r0, r7, 0 - adds r0, 0x8 - lsls r1, r6, 5 - subs r1, r6 - lsls r1, 5 - bl CalcByteArraySum - ldr r1, [r7, 0x4] - cmp r0, r1 - bne _0815D6F8 - movs r0, 0x1 - b _0815D6FA -_0815D6F8: - movs r0, 0 -_0815D6FA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_815D6B4 - - thumb_func_start sub_815D700 -sub_815D700: @ 815D700 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldrh r0, [r5, 0x2] - cmp r0, 0 - beq _0815D718 - ldr r0, _0815D77C @ =gUnknown_8479CD8 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c" - ldr r2, _0815D780 @ =gUnknown_8479D10 "ttdata->dummy == 0" - movs r1, 0xC6 - movs r3, 0x1 - bl AGBAssert -_0815D718: - ldrb r0, [r5, 0x1] - cmp r0, 0 - beq _0815D72A - ldr r0, _0815D77C @ =gUnknown_8479CD8 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c" - ldr r2, _0815D784 @ =gUnknown_8479D24 "ttdata->id == 0" - movs r1, 0xC7 - movs r3, 0x1 - bl AGBAssert -_0815D72A: - movs r6, 0x80 - lsls r6, 5 - adds r0, r4, 0 - movs r1, 0 - adds r2, r6, 0 - bl memset - ldr r2, _0815D788 @ =0x00000f88 - adds r0, r4, 0 - adds r1, r5, 0 - bl memcpy - bl sub_815D654 - strb r0, [r4, 0x1] - movs r0, 0x1E - adds r1, r4, 0 - bl sub_80DA5E0 - cmp r0, 0x1 - bne _0815D78C - adds r0, r4, 0 - movs r1, 0 - adds r2, r6, 0 - bl memset - ldr r0, _0815D788 @ =0x00000f88 - adds r1, r5, r0 - movs r2, 0xF8 - lsls r2, 4 - adds r0, r4, 0 - bl memcpy - movs r0, 0x1F - adds r1, r4, 0 - bl sub_80DA5E0 - cmp r0, 0x1 - bne _0815D78C - movs r0, 0x1 - b _0815D78E - .align 2, 0 -_0815D77C: .4byte gUnknown_8479CD8 -_0815D780: .4byte gUnknown_8479D10 -_0815D784: .4byte gUnknown_8479D24 -_0815D788: .4byte 0x00000f88 -_0815D78C: - movs r0, 0 -_0815D78E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_815D700 - - thumb_func_start sub_815D794 -sub_815D794: @ 815D794 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x80 - lsls r0, 5 - bl AllocZeroed - adds r5, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_815D700 - adds r4, r0, 0 - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815D794 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s index 84dd082f6..ccae18c34 100644 --- a/asm/clear_save_data_screen.s +++ b/asm/clear_save_data_screen.s @@ -109,11 +109,11 @@ _080F564A: movs r0, 0 movs r1, 0x1 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x1 movs r1, 0x1 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal b _080F56E2 _080F5660: movs r0, 0x1 @@ -134,7 +134,7 @@ _080F5660: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram @@ -152,7 +152,7 @@ _080F569C: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu movs r0, 0 bl CopyBgTilemapBufferToVram b _080F56E2 @@ -204,7 +204,7 @@ sub_80F5708: @ 80F5708 ldrb r0, [r0] cmp r0, 0 bne _080F578C - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r4, r0, 24 movs r0, 0x1 @@ -241,7 +241,7 @@ _080F5744: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/coord_event_weather.s b/asm/coord_event_weather.s deleted file mode 100644 index 8c987c6e2..000000000 --- a/asm/coord_event_weather.s +++ /dev/null @@ -1,105 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_27 -nullsub_27: @ 806E7A8 - bx lr - thumb_func_end nullsub_27 - - thumb_func_start nullsub_28 -nullsub_28: @ 806E7AC - bx lr - thumb_func_end nullsub_28 - - thumb_func_start nullsub_29 -nullsub_29: @ 806E7B0 - bx lr - thumb_func_end nullsub_29 - - thumb_func_start nullsub_30 -nullsub_30: @ 806E7B4 - bx lr - thumb_func_end nullsub_30 - - thumb_func_start nullsub_31 -nullsub_31: @ 806E7B8 - bx lr - thumb_func_end nullsub_31 - - thumb_func_start nullsub_32 -nullsub_32: @ 806E7BC - bx lr - thumb_func_end nullsub_32 - - thumb_func_start nullsub_33 -nullsub_33: @ 806E7C0 - bx lr - thumb_func_end nullsub_33 - - thumb_func_start nullsub_34 -nullsub_34: @ 806E7C4 - bx lr - thumb_func_end nullsub_34 - - thumb_func_start nullsub_35 -nullsub_35: @ 806E7C8 - bx lr - thumb_func_end nullsub_35 - - thumb_func_start nullsub_36 -nullsub_36: @ 806E7CC - bx lr - thumb_func_end nullsub_36 - - thumb_func_start nullsub_37 -nullsub_37: @ 806E7D0 - bx lr - thumb_func_end nullsub_37 - - thumb_func_start nullsub_38 -nullsub_38: @ 806E7D4 - bx lr - thumb_func_end nullsub_38 - - thumb_func_start nullsub_39 -nullsub_39: @ 806E7D8 - bx lr - thumb_func_end nullsub_39 - - thumb_func_start trigger_activate_weather -trigger_activate_weather: @ 806E7DC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r2, 0 - ldr r3, _0806E7FC @ =gUnknown_83A72A8 -_0806E7E6: - lsls r1, r2, 3 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r4 - bne _0806E800 - adds r0, r3, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - bl _call_via_r0 - b _0806E80A - .align 2, 0 -_0806E7FC: .4byte gUnknown_83A72A8 -_0806E800: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xC - bls _0806E7E6 -_0806E80A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end trigger_activate_weather - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/credits.s b/asm/credits.s index bf8c5eeac..6317b95f7 100644 --- a/asm/credits.s +++ b/asm/credits.s @@ -177,7 +177,7 @@ sub_80F3B04: @ 80F3B04 beq _080F3B20 ldrb r0, [r1, 0xA] bl RemoveWindow - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r1, [r4] movs r0, 0 strb r0, [r1, 0xB] @@ -241,7 +241,7 @@ _080F3B5E: bl sub_80F3A74 bl sub_80F3AA4 movs r0, 0xF0 - bl sub_80F77CC + bl Menu_LoadStdPalAt ldr r0, _080F3BC8 @ =gPlttBufferUnfaded movs r2, 0xFF lsls r2, 1 @@ -325,7 +325,7 @@ _080F3C64: bl sub_80F3AA4 bl sub_80F3AC4 movs r0, 0xF0 - bl sub_80F77CC + bl Menu_LoadStdPalAt ldr r0, _080F3C8C @ =gPlttBufferUnfaded movs r2, 0xFF lsls r2, 1 @@ -422,7 +422,7 @@ _080F3D0A: movs r1, 0x1 movs r2, 0x8 movs r3, 0x29 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r1, [r7] movs r0, 0x5 b _080F413C @@ -649,7 +649,7 @@ _080F3EB4: movs r1, 0x1 movs r2, 0x2 movs r3, 0x6 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r1, [r7] movs r0, 0x8 b _080F3FB8 @@ -696,7 +696,7 @@ _080F3F24: movs r1, 0x2 movs r2, 0x8 movs r3, 0x6 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r1, [r7] movs r0, 0x9 b _080F3FB8 @@ -1279,13 +1279,13 @@ _080F4374: movs r0, 0x1 adds r2, r5, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080F44B4 @ =gUnknown_840C650 str r4, [sp] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080F44B8 @ =gUnknown_8EAB30C movs r2, 0xA0 lsls r2, 3 @@ -1293,14 +1293,14 @@ _080F4374: str r4, [sp] movs r0, 0x1 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080F44BC @ =gUnknown_840CA54 movs r2, 0x80 lsls r2, 3 str r4, [sp] movs r0, 0x2 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, [r6] ldrb r0, [r0, 0x9] lsls r0, 5 @@ -1620,7 +1620,7 @@ _080F46A0: str r5, [sp] movs r0, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, [r6] ldrb r1, [r0, 0x9] lsls r0, r1, 1 @@ -1635,7 +1635,7 @@ _080F46A0: str r0, [sp] movs r0, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, [r6] ldrb r1, [r0, 0x9] lsls r0, r1, 1 diff --git a/asm/dark.s b/asm/dark.s new file mode 100644 index 000000000..a232c19ad --- /dev/null +++ b/asm/dark.s @@ -0,0 +1,2323 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B78E0 +sub_80B78E0: @ 80B78E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B791C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B7920 @ =gBattleAnimArgs + ldrh r1, [r1] + strh r1, [r0, 0x8] + ldr r1, _080B7924 @ =gBattleAnimAttacker + ldrb r4, [r1] + movs r1, 0x10 + strh r1, [r0, 0xA] + movs r0, 0x52 + bl SetGpuReg + adds r0, r4, 0 + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B792C + ldr r1, _080B7928 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + b _080B7934 + .align 2, 0 +_080B791C: .4byte gTasks +_080B7920: .4byte gBattleAnimArgs +_080B7924: .4byte gBattleAnimAttacker +_080B7928: .4byte 0x00003f42 +_080B792C: + ldr r1, _080B7948 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg +_080B7934: + ldr r0, _080B794C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080B7950 @ =sub_80B7954 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7948: .4byte 0x00003f44 +_080B794C: .4byte gTasks +_080B7950: .4byte sub_80B7954 + thumb_func_end sub_80B78E0 + + thumb_func_start sub_80B7954 +sub_80B7954: @ 80B7954 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080B79C0 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r6, r0, r1 + ldrh r0, [r6, 0xA] + lsrs r4, r0, 8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xC + ldrsh r0, [r6, r2] + ldrb r2, [r6, 0x8] + cmp r0, r2 + bne _080B79D0 + adds r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 8 + orrs r1, r0 + movs r5, 0 + strh r1, [r6, 0xA] + ldrh r1, [r6, 0xA] + movs r0, 0x52 + bl SetGpuReg + strh r5, [r6, 0xC] + cmp r4, 0x10 + bne _080B79D6 + ldr r2, _080B79C4 @ =gSprites + ldr r1, _080B79C8 @ =gBattlerSpriteIds + ldr r0, _080B79CC @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r7, 0 + bl DestroyAnimVisualTask + b _080B79D6 + .align 2, 0 +_080B79C0: .4byte gTasks +_080B79C4: .4byte gSprites +_080B79C8: .4byte gBattlerSpriteIds +_080B79CC: .4byte gBattleAnimAttacker +_080B79D0: + ldrh r0, [r6, 0xC] + adds r0, 0x1 + strh r0, [r6, 0xC] +_080B79D6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B7954 + + thumb_func_start sub_80B79DC +sub_80B79DC: @ 80B79DC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B7A08 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r1 + ldr r0, _080B7A0C @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r2, 0x8] + movs r1, 0x80 + lsls r1, 5 + strh r1, [r2, 0xA] + ldr r0, _080B7A10 @ =sub_80B7A14 + str r0, [r2] + movs r0, 0x52 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_080B7A08: .4byte gTasks +_080B7A0C: .4byte gBattleAnimArgs +_080B7A10: .4byte sub_80B7A14 + thumb_func_end sub_80B79DC + + thumb_func_start sub_80B7A14 +sub_80B7A14: @ 80B7A14 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080B7A70 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r6, r0, r1 + ldrh r0, [r6, 0xA] + lsrs r4, r0, 8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xC + ldrsh r0, [r6, r2] + ldrb r2, [r6, 0x8] + cmp r0, r2 + bne _080B7A74 + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 8 + orrs r1, r0 + movs r5, 0 + strh r1, [r6, 0xA] + ldrh r1, [r6, 0xA] + movs r0, 0x52 + bl SetGpuReg + strh r5, [r6, 0xC] + cmp r4, 0 + bne _080B7A7A + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r7, 0 + bl DestroyAnimVisualTask + b _080B7A7A + .align 2, 0 +_080B7A70: .4byte gTasks +_080B7A74: + ldrh r0, [r6, 0xC] + adds r0, 0x1 + strh r0, [r6, 0xC] +_080B7A7A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B7A14 + + thumb_func_start sub_80B7A80 +sub_80B7A80: @ 80B7A80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080B7AAC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B7AB4 + ldr r1, _080B7AB0 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + b _080B7ABC + .align 2, 0 +_080B7AAC: .4byte gBattleAnimAttacker +_080B7AB0: .4byte 0x00003f42 +_080B7AB4: + ldr r1, _080B7AC8 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg +_080B7ABC: + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7AC8: .4byte 0x00003f44 + thumb_func_end sub_80B7A80 + + thumb_func_start sub_80B7ACC +sub_80B7ACC: @ 80B7ACC + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080B7B38 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x30] + ldr r5, _080B7B3C @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + movs r0, 0x7E + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_80754B8 + ldrh r0, [r4, 0x30] + negs r0, r0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + negs r0, r0 + strh r0, [r4, 0x36] + ldr r0, _080B7B40 @ =0x0000ffd8 + strh r0, [r4, 0x3A] + ldr r1, _080B7B44 @ =sub_80B7B48 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7B38: .4byte gBattleAnimTarget +_080B7B3C: .4byte gBattleAnimAttacker +_080B7B40: .4byte 0x0000ffd8 +_080B7B44: .4byte sub_80B7B48 + thumb_func_end sub_80B7ACC + + thumb_func_start sub_80B7B48 +sub_80B7B48: @ 80B7B48 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r5, [r4, 0x30] + ldrh r0, [r4, 0x34] + adds r2, r5, r0 + strh r2, [r4, 0x34] + ldrh r3, [r4, 0x32] + ldrh r6, [r4, 0x36] + adds r1, r3, r6 + strh r1, [r4, 0x36] + lsls r0, r2, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + movs r6, 0x3C + ldrsh r0, [r4, r6] + cmp r0, 0 + bne _080B7B8A + adds r0, r2, r5 + strh r0, [r4, 0x34] + adds r1, r3 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] +_080B7B8A: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + ldrh r6, [r4, 0x26] + adds r0, r6 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + cmp r0, 0x7F + ble _080B7BBA + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3A] + adds r0, 0x14 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] +_080B7BBA: + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080B7BCC + adds r0, r4, 0 + bl DestroyAnimSprite +_080B7BCC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B7B48 + + thumb_func_start sub_80B7BD4 +sub_80B7BD4: @ 80B7BD4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B7C08 @ =gBattleAnimArgs + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrb r1, [r5, 0x4] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x32] + ldr r0, _080B7C0C @ =sub_80B7C10 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7C08: .4byte gBattleAnimArgs +_080B7C0C: .4byte sub_80B7C10 + thumb_func_end sub_80B7BD4 + + thumb_func_start sub_80B7C10 +sub_80B7C10: @ 80B7C10 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x30] + ldrh r3, [r2, 0x38] + adds r1, r3 + strh r1, [r2, 0x38] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + bne _080B7C46 + ldr r0, _080B7C4C @ =sub_80B7C50 + str r0, [r2, 0x1C] +_080B7C46: + pop {r0} + bx r0 + .align 2, 0 +_080B7C4C: .4byte sub_80B7C50 + thumb_func_end sub_80B7C10 + + thumb_func_start sub_80B7C50 +sub_80B7C50: @ 80B7C50 + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x36] + ldrh r0, [r3, 0x2E] + subs r1, r0 + strh r1, [r3, 0x36] + ldrh r0, [r3, 0x38] + ldrh r2, [r3, 0x30] + subs r0, r2 + strh r0, [r3, 0x38] + lsls r1, 16 + asrs r1, 24 + strh r1, [r3, 0x24] + lsls r0, 16 + asrs r0, 24 + strh r0, [r3, 0x26] + ldrh r0, [r3, 0x34] + subs r0, 0x1 + strh r0, [r3, 0x34] + lsls r0, 16 + cmp r0, 0 + bne _080B7C82 + adds r0, r3, 0 + bl move_anim_8074EE0 +_080B7C82: + pop {r0} + bx r0 + thumb_func_end sub_80B7C50 + + thumb_func_start sub_80B7C88 +sub_80B7C88: @ 80B7C88 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080B7C9C @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080B7CA4 + ldr r0, _080B7CA0 @ =gBattleAnimAttacker + b _080B7CA6 + .align 2, 0 +_080B7C9C: .4byte gBattleAnimArgs +_080B7CA0: .4byte gBattleAnimAttacker +_080B7CA4: + ldr r0, _080B7CD4 @ =gBattleAnimTarget +_080B7CA6: + ldrb r5, [r0] + movs r6, 0x14 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x4 + ldr r7, _080B7CD8 @ =0x000003ff + adds r0, r7, 0 + ands r1, r0 + ldr r0, _080B7CDC @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + movs r1, 0x2 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _080B7D04 + cmp r0, 0x1 + bgt _080B7CE0 + cmp r0, 0 + beq _080B7CEA + b _080B7D58 + .align 2, 0 +_080B7CD4: .4byte gBattleAnimTarget +_080B7CD8: .4byte 0x000003ff +_080B7CDC: .4byte 0xfffffc00 +_080B7CE0: + cmp r0, 0x2 + beq _080B7D1E + cmp r0, 0x3 + beq _080B7D36 + b _080B7D58 +_080B7CEA: + adds r0, r5, 0 + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r4, 0x22] + b _080B7D58 +_080B7D04: + adds r0, r5, 0 + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0xE + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x10 + strh r0, [r4, 0x22] + b _080B7D58 +_080B7D1E: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + b _080B7D4C +_080B7D36: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0xE + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x10 +_080B7D4C: + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r6, 0xEC +_080B7D58: + movs r0, 0x20 + strh r0, [r4, 0x2E] + lsls r0, r6, 24 + asrs r0, 24 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + adds r0, 0xC + strh r0, [r4, 0x36] + ldr r0, _080B7D80 @ =0x0000fff4 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldr r0, _080B7D84 @ =sub_80B7D88 + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7D80: .4byte 0x0000fff4 +_080B7D84: .4byte sub_80B7D88 + thumb_func_end sub_80B7C88 + + thumb_func_start sub_80B7D88 +sub_80B7D88: @ 80B7D88 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B7D9C + adds r0, r4, 0 + bl move_anim_8074EE0 +_080B7D9C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7D88 + + thumb_func_start sub_80B7DA4 +sub_80B7DA4: @ 80B7DA4 + push {r4-r7,lr} + sub sp, 0x1C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B7E08 @ =gTasks + adds r5, r1, r0 + ldr r4, _080B7E0C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + movs r6, 0 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + subs r0, 0x7 + strh r0, [r5, 0x14] + ldrh r1, [r5, 0x16] + strh r1, [r5, 0x12] + strh r0, [r5, 0x10] + subs r1, r0 + lsls r1, 8 + strh r1, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r5, 0x24] + adds r0, 0x20 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B7E14 + ldr r0, _080B7E10 @ =0x0000fff4 + b _080B7E16 + .align 2, 0 +_080B7E08: .4byte gTasks +_080B7E0C: .4byte gBattleAnimAttacker +_080B7E10: .4byte 0x0000fff4 +_080B7E14: + ldr r0, _080B7E60 @ =0x0000ffc0 +_080B7E16: + strh r0, [r5, 0x18] + ldr r0, _080B7E64 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + cmp r0, 0x1 + bne _080B7E78 + add r4, sp, 0xC + adds r0, r4, 0 + bl sub_80752A0 + ldr r0, _080B7E68 @ =gBattle_BG1_Y + ldrh r0, [r0] + strh r0, [r5, 0x1C] + ldr r1, _080B7E6C @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + ldrb r1, [r4, 0x8] + lsls r1, 4 + movs r0, 0 + movs r2, 0x20 + bl FillPalette + ldr r0, _080B7E70 @ =0x04000016 + str r0, [sp] + movs r7, 0x2 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B7EA8 + ldr r1, _080B7E74 @ =gBattle_BG2_X + b _080B7EA2 + .align 2, 0 +_080B7E60: .4byte 0x0000ffc0 +_080B7E64: .4byte gBattleAnimAttacker +_080B7E68: .4byte gBattle_BG1_Y +_080B7E6C: .4byte 0x00003f42 +_080B7E70: .4byte 0x04000016 +_080B7E74: .4byte gBattle_BG2_X +_080B7E78: + ldr r0, _080B7F30 @ =gBattle_BG2_Y + ldrh r0, [r0] + strh r0, [r5, 0x1C] + ldr r1, _080B7F34 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette + ldr r0, _080B7F38 @ =0x0400001a + str r0, [sp] + movs r7, 0x4 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B7EA8 + ldr r1, _080B7F3C @ =gBattle_BG1_X +_080B7EA2: + ldrh r0, [r1] + adds r0, 0xF0 + strh r0, [r1] +_080B7EA8: + ldr r0, _080B7F40 @ =0xa2600001 + str r0, [sp, 0x4] + mov r2, sp + movs r1, 0 + movs r0, 0x1 + strb r0, [r2, 0x8] + mov r0, sp + strb r1, [r0, 0x9] + strh r1, [r5, 0x1E] + movs r0, 0x10 + strh r0, [r5, 0x20] + strh r1, [r5, 0x8] + strh r1, [r5, 0xA] + strh r1, [r5, 0xC] + movs r0, 0x3 + bl sub_80B856C + movs r3, 0 + ldr r4, _080B7F44 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r4, r0 +_080B7ED4: + lsls r1, r3, 1 + adds r2, r1, r4 + ldrh r0, [r5, 0x1C] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r5, 0x1C] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6F + bls _080B7ED4 + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + movs r0, 0x3F + eors r7, r0 + movs r1, 0xFC + lsls r1, 6 + adds r0, r1, 0 + orrs r7, r0 + movs r0, 0x4A + adds r1, r7, 0 + bl SetGpuReg + ldr r1, _080B7F48 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r2, _080B7F4C @ =gUnknown_2022984 + ldrh r0, [r5, 0x24] + lsls r0, 8 + ldrh r1, [r5, 0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _080B7F50 @ =gUnknown_2022986 + movs r0, 0xA0 + strh r0, [r1] + ldr r0, _080B7F54 @ =sub_80B7F58 + str r0, [r5] + add sp, 0x1C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7F30: .4byte gBattle_BG2_Y +_080B7F34: .4byte 0x00003f44 +_080B7F38: .4byte 0x0400001a +_080B7F3C: .4byte gBattle_BG1_X +_080B7F40: .4byte 0xa2600001 +_080B7F44: .4byte gScanlineEffectRegBuffers +_080B7F48: .4byte 0x00003f3f +_080B7F4C: .4byte gUnknown_2022984 +_080B7F50: .4byte gUnknown_2022986 +_080B7F54: .4byte sub_80B7F58 + thumb_func_end sub_80B7DA4 + + thumb_func_start sub_80B7F58 +sub_80B7F58: @ 80B7F58 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B7F7C @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080B7F72 + b _080B806A +_080B7F72: + lsls r0, 2 + ldr r1, _080B7F80 @ =_080B7F84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B7F7C: .4byte gTasks +_080B7F80: .4byte _080B7F84 + .align 2, 0 +_080B7F84: + .4byte _080B7F98 + .4byte _080B7FFA + .4byte _080B8014 + .4byte _080B8050 + .4byte _080B8064 +_080B7F98: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B806A + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B7FC8 + ldrh r1, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + cmp r0, 0xC + beq _080B7FD6 + adds r0, r1, 0x1 + strh r0, [r4, 0x1E] + b _080B7FD6 +_080B7FC8: + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + beq _080B7FD6 + subs r0, r1, 0x1 + strh r0, [r4, 0x20] +_080B7FD6: + ldrh r1, [r4, 0x20] + lsls r1, 8 + ldrh r0, [r4, 0x1E] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0xC + bne _080B806A + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + bne _080B806A + b _080B8056 +_080B7FFA: + ldrh r0, [r4, 0x10] + subs r0, 0x8 + strh r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80B843C + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r1, r0 + bge _080B806A + b _080B8056 +_080B8014: + ldrh r0, [r4, 0x10] + subs r0, 0x8 + strh r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80B843C + ldrh r1, [r4, 0x24] + adds r1, 0x4 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x26] + subs r2, r0, 0x4 + strh r2, [r4, 0x26] + lsls r1, 16 + lsls r0, r2, 16 + cmp r1, r0 + blt _080B8036 + strh r2, [r4, 0x24] +_080B8036: + ldr r3, _080B804C @ =gUnknown_2022984 + ldrh r2, [r4, 0x24] + lsls r0, r2, 8 + ldrh r1, [r4, 0x26] + orrs r0, r1 + strh r0, [r3] + lsls r2, 16 + lsls r1, 16 + cmp r2, r1 + bne _080B806A + b _080B8056 + .align 2, 0 +_080B804C: .4byte gUnknown_2022984 +_080B8050: + ldr r1, _080B8060 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B8056: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B806A + .align 2, 0 +_080B8060: .4byte gScanlineEffect +_080B8064: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B806A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7F58 + + thumb_func_start sub_80B8070 +sub_80B8070: @ 80B8070 + push {r4-r7,lr} + sub sp, 0x1C + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080B8098 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080B808C + b _080B829E +_080B808C: + lsls r0, 2 + ldr r1, _080B809C @ =_080B80A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B8098: .4byte gTasks +_080B809C: .4byte _080B80A0 + .align 2, 0 +_080B80A0: + .4byte _080B80B4 + .4byte _080B8138 + .4byte _080B817C + .4byte _080B81E8 + .4byte _080B8250 +_080B80B4: + bl sub_8073788 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B80F0 + ldr r0, _080B80E4 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080B80E8 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080B80EC @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + adds r0, r6, 0 + bl DestroyAnimVisualTask + b _080B829E + .align 2, 0 +_080B80E4: .4byte gUnknown_2022984 +_080B80E8: .4byte gUnknown_2022986 +_080B80EC: .4byte 0x00003f3f +_080B80F0: + ldr r0, _080B8110 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + cmp r0, 0x1 + bne _080B811C + ldr r1, _080B8114 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + ldr r1, _080B8118 @ =gBattle_BG2_X + b _080B8126 + .align 2, 0 +_080B8110: .4byte gBattleAnimTarget +_080B8114: .4byte 0x00003f42 +_080B8118: .4byte gBattle_BG2_X +_080B811C: + ldr r1, _080B8130 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + ldr r1, _080B8134 @ =gBattle_BG1_X +_080B8126: + ldrh r0, [r1] + adds r0, 0xF0 + strh r0, [r1] + b _080B823C + .align 2, 0 +_080B8130: .4byte 0x00003f44 +_080B8134: .4byte gBattle_BG1_X +_080B8138: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080B8160 + mov r0, sp + bl sub_80752A0 + ldr r0, _080B815C @ =gBattle_BG1_Y + ldrh r0, [r0] + strh r0, [r5, 0x1C] + mov r0, sp + ldrb r1, [r0, 0x8] + lsls r1, 4 + movs r0, 0 + movs r2, 0x20 + bl FillPalette + b _080B8170 + .align 2, 0 +_080B815C: .4byte gBattle_BG1_Y +_080B8160: + ldr r0, _080B8178 @ =gBattle_BG2_Y + ldrh r0, [r0] + strh r0, [r5, 0x1C] + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette +_080B8170: + movs r0, 0x3 + bl sub_80B856C + b _080B823C + .align 2, 0 +_080B8178: .4byte gBattle_BG2_Y +_080B817C: + ldr r4, _080B81C8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + movs r6, 0 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + subs r0, 0x7 + strh r0, [r5, 0x14] + ldrh r1, [r5, 0x16] + subs r1, r0 + lsls r1, 8 + strh r1, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + subs r1, r0, 0x4 + strh r1, [r5, 0x24] + adds r0, 0x4 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B81D0 + ldr r0, _080B81CC @ =0x0000fff4 + b _080B81D2 + .align 2, 0 +_080B81C8: .4byte gBattleAnimTarget +_080B81CC: .4byte 0x0000fff4 +_080B81D0: + ldr r0, _080B81E4 @ =0x0000ffc0 +_080B81D2: + strh r0, [r5, 0x18] + ldrh r0, [r5, 0x18] + strh r0, [r5, 0x10] + strh r0, [r5, 0x12] + movs r0, 0xC + strh r0, [r5, 0x1E] + movs r0, 0x8 + strh r0, [r5, 0x20] + b _080B823C + .align 2, 0 +_080B81E4: .4byte 0x0000ffc0 +_080B81E8: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080B81F8 + ldr r0, _080B81F4 @ =0x04000016 + b _080B81FA + .align 2, 0 +_080B81F4: .4byte 0x04000016 +_080B81F8: + ldr r0, _080B8244 @ =0x0400001a +_080B81FA: + str r0, [sp, 0x10] + movs r3, 0 + add r4, sp, 0x10 + ldr r6, _080B8248 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r7, r6, r0 +_080B8208: + lsls r1, r3, 1 + adds r2, r1, r6 + ldrh r0, [r5, 0x1C] + adds r0, 0x9F + subs r0, r3 + strh r0, [r2] + adds r1, r7 + ldrh r0, [r5, 0x1C] + adds r0, 0x9F + subs r0, r3 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6F + bls _080B8208 + ldr r1, _080B824C @ =0xa2600001 + str r1, [r4, 0x4] + movs r2, 0 + movs r0, 0x1 + strb r0, [r4, 0x8] + strb r2, [r4, 0x9] + ldr r0, [sp, 0x10] + ldr r2, [r4, 0x8] + bl ScanlineEffect_SetParams +_080B823C: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080B829E + .align 2, 0 +_080B8244: .4byte 0x0400001a +_080B8248: .4byte gScanlineEffectRegBuffers +_080B824C: .4byte 0xa2600001 +_080B8250: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080B8268 + ldr r1, _080B8264 @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + b _080B8270 + .align 2, 0 +_080B8264: .4byte 0x00003f3d +_080B8268: + ldr r1, _080B82A8 @ =0x00003f3b + movs r0, 0x4A + bl SetGpuReg +_080B8270: + ldr r1, _080B82AC @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r2, _080B82B0 @ =gUnknown_2022984 + ldrh r0, [r5, 0x24] + lsls r0, 8 + ldrh r1, [r5, 0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _080B82B4 @ =gUnknown_2022986 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0 + strh r0, [r5, 0x8] + strh r0, [r5, 0xA] + strh r0, [r5, 0xC] + ldr r1, _080B82B8 @ =0x0000080c + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080B82BC @ =sub_80B82C0 + str r0, [r5] +_080B829E: + add sp, 0x1C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B82A8: .4byte 0x00003f3b +_080B82AC: .4byte 0x00003f3f +_080B82B0: .4byte gUnknown_2022984 +_080B82B4: .4byte gUnknown_2022986 +_080B82B8: .4byte 0x0000080c +_080B82BC: .4byte sub_80B82C0 + thumb_func_end sub_80B8070 + + thumb_func_start sub_80B82C0 +sub_80B82C0: @ 80B82C0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B82E4 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080B82DA + b _080B842A +_080B82DA: + lsls r0, 2 + ldr r1, _080B82E8 @ =_080B82EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B82E4: .4byte gTasks +_080B82E8: .4byte _080B82EC + .align 2, 0 +_080B82EC: + .4byte _080B8300 + .4byte _080B832C + .4byte _080B8394 + .4byte _080B83F6 + .4byte _080B8408 +_080B8300: + ldrh r0, [r4, 0x12] + adds r0, 0x8 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r4, 0x16] + movs r3, 0x16 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080B8316 + strh r2, [r4, 0x12] +_080B8316: + adds r0, r4, 0 + bl sub_80B843C + movs r0, 0x12 + ldrsh r1, [r4, r0] + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080B832A + b _080B842A +_080B832A: + b _080B83FC +_080B832C: + movs r3, 0x26 + ldrsh r0, [r4, r3] + movs r2, 0x24 + ldrsh r1, [r4, r2] + subs r0, r1 + cmp r0, 0x3F + bgt _080B8348 + ldrh r0, [r4, 0x24] + subs r0, 0x4 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + adds r0, 0x4 + strh r0, [r4, 0x26] + b _080B834C +_080B8348: + movs r0, 0x1 + strh r0, [r4, 0xA] +_080B834C: + ldr r2, _080B8390 @ =gUnknown_2022984 + ldrh r0, [r4, 0x24] + lsls r0, 8 + ldrh r1, [r4, 0x26] + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, 0x10] + adds r0, 0x8 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r4, 0x14] + movs r3, 0x14 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080B836E + strh r2, [r4, 0x10] +_080B836E: + adds r0, r4, 0 + bl sub_80B843C + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080B842A + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080B842A + movs r0, 0 + strh r0, [r4, 0xA] + b _080B83FC + .align 2, 0 +_080B8390: .4byte gUnknown_2022984 +_080B8394: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B842A + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B83C4 + ldrh r1, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B83D2 + subs r0, r1, 0x1 + strh r0, [r4, 0x1E] + b _080B83D2 +_080B83C4: + ldrh r1, [r4, 0x20] + movs r3, 0x20 + ldrsh r0, [r4, r3] + cmp r0, 0xF + bgt _080B83D2 + adds r0, r1, 0x1 + strh r0, [r4, 0x20] +_080B83D2: + ldrh r1, [r4, 0x20] + lsls r1, 8 + ldrh r0, [r4, 0x1E] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B842A + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bne _080B842A + b _080B83FC +_080B83F6: + ldr r1, _080B8404 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B83FC: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B842A + .align 2, 0 +_080B8404: .4byte gScanlineEffect +_080B8408: + ldr r0, _080B8430 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080B8434 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080B8438 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B842A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8430: .4byte gUnknown_2022984 +_080B8434: .4byte gUnknown_2022986 +_080B8438: .4byte 0x00003f3f + thumb_func_end sub_80B82C0 + + thumb_func_start sub_80B843C +sub_80B843C: @ 80B843C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldrh r0, [r6, 0x12] + ldrh r4, [r6, 0x10] + subs r0, r4 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + beq _080B8530 + movs r2, 0x22 + ldrsh r0, [r6, r2] + bl __divsi3 + mov r8, r0 + movs r3, 0x14 + ldrsh r0, [r6, r3] + lsls r5, r0, 8 + lsls r0, r4, 16 + movs r4, 0 + cmp r0, 0 + ble _080B849C + ldr r0, _080B8528 @ =gScanlineEffectRegBuffers + mov r12, r0 + ldr r7, _080B852C @ =gScanlineEffect +_080B8470: + lsls r2, r4, 16 + asrs r2, 16 + lsls r3, r2, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r3, r0 + add r3, r12 + adds r1, r2, 0 + subs r1, 0x9F + ldrh r0, [r6, 0x1C] + subs r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r4, r2, 16 + asrs r2, 16 + movs r1, 0x10 + ldrsh r0, [r6, r1] + cmp r2, r0 + blt _080B8470 +_080B849C: + ldrh r4, [r6, 0x10] + lsls r3, r4, 16 + asrs r1, r3, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + bgt _080B84E6 + ldr r0, _080B8528 @ =gScanlineEffectRegBuffers + mov r12, r0 + ldr r7, _080B852C @ =gScanlineEffect +_080B84B0: + asrs r4, r3, 16 + cmp r4, 0 + blt _080B84D2 + asrs r1, r5, 8 + subs r1, r4 + lsls r3, r4, 1 + ldrb r2, [r7, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + add r3, r12 + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r6, 0x1C] + adds r1, r2 + strh r1, [r3] +_080B84D2: + add r5, r8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r3, r4, 16 + asrs r1, r3, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080B84B0 +_080B84E6: + movs r3, 0x1C + ldrsh r0, [r6, r3] + adds r0, 0x9F + lsls r2, r4, 16 + asrs r1, r2, 16 + subs r5, r0, r1 + movs r3, 0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + bge _080B855E + ldr r7, _080B8528 @ =gScanlineEffectRegBuffers + ldr r4, _080B852C @ =gScanlineEffect +_080B84FE: + asrs r3, r2, 16 + cmp r3, 0 + blt _080B8516 + lsls r2, r3, 1 + ldrb r1, [r4, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + strh r5, [r2] + subs r5, 0x1 +_080B8516: + adds r0, r3, 0x1 + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r3, 0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + blt _080B84FE + b _080B855E + .align 2, 0 +_080B8528: .4byte gScanlineEffectRegBuffers +_080B852C: .4byte gScanlineEffect +_080B8530: + movs r1, 0x1C + ldrsh r0, [r6, r1] + adds r5, r0, 0 + adds r5, 0x9F + movs r4, 0 + ldr r3, _080B8568 @ =gScanlineEffectRegBuffers + movs r2, 0xF0 + lsls r2, 3 + adds r6, r3, r2 +_080B8542: + lsls r0, r4, 16 + asrs r0, 16 + lsls r2, r0, 1 + adds r1, r2, r3 + strh r5, [r1] + adds r2, r6 + strh r5, [r2] + subs r5, 0x1 + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _080B8542 +_080B855E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8568: .4byte gScanlineEffectRegBuffers + thumb_func_end sub_80B843C + + thumb_func_start sub_80B856C +sub_80B856C: @ 80B856C + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + ldr r7, _080B85B4 @ =gSprites + movs r1, 0x3 + ands r0, r1 + lsls r5, r0, 2 + movs r0, 0xD + negs r0, r0 + adds r6, r0, 0 +_080B8582: + lsls r0, r4, 24 + lsrs r0, 24 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080B85A2 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r0, [r1, 0x5] + ands r0, r6 + orrs r0, r5 + strb r0, [r1, 0x5] +_080B85A2: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080B8582 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B85B4: .4byte gSprites + thumb_func_end sub_80B856C + + thumb_func_start sub_80B85B8 +sub_80B85B8: @ 80B85B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r6, _080B8658 @ =gBattleAnimAttacker + ldrb r0, [r6] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r4, r1, 31 + ldrb r0, [r6] + adds r1, r4, 0 + bl sub_8072E48 + ldr r0, _080B865C @ =gSprites + mov r9, r0 + ldr r0, _080B8660 @ =gBattlerSpriteIds + mov r8, r0 + ldrb r0, [r6] + add r0, r8 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + adds r1, 0x3E + ldrb r2, [r1] + movs r7, 0x5 + negs r7, r7 + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B8642 + ldrb r0, [r6] + eors r0, r5 + movs r1, 0x1 + eors r4, r1 + adds r1, r4, 0 + bl sub_8072E48 + ldrb r0, [r6] + eors r0, r5 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r7, 0 + ands r1, r2 + strb r1, [r0] +_080B8642: + mov r0, r10 + bl DestroyAnimVisualTask + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8658: .4byte gBattleAnimAttacker +_080B865C: .4byte gSprites +_080B8660: .4byte gBattlerSpriteIds + thumb_func_end sub_80B85B8 + + thumb_func_start sub_80B8664 +sub_80B8664: @ 80B8664 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _080B86AC @ =gBattleAnimAttacker + ldrb r0, [r4] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r5, 0 + bl sub_8073128 + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B86A0 + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8073128 +_080B86A0: + adds r0, r6, 0 + bl DestroyAnimVisualTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B86AC: .4byte gBattleAnimAttacker + thumb_func_end sub_80B8664 + + thumb_func_start sub_80B86B0 +sub_80B86B0: @ 80B86B0 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080B86E0 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrb r1, [r1, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080B86E4 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080B86E8 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B86E0: .4byte gBattleAnimArgs +_080B86E4: .4byte sub_8074F6C +_080B86E8: .4byte DestroyAnimSprite + thumb_func_end sub_80B86B0 + + thumb_func_start sub_80B86EC +sub_80B86EC: @ 80B86EC + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r0, _080B87EC @ =gUnknown_2022984 + strh r6, [r0] + ldr r0, _080B87F0 @ =gUnknown_2022986 + strh r6, [r0] + ldr r1, _080B87F4 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080B87F8 @ =0x00003f3d + movs r0, 0x4A + bl SetGpuReg + movs r1, 0x80 + lsls r1, 8 + movs r0, 0 + bl SetGpuRegBits + ldr r1, _080B87FC @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + ldr r1, _080B8800 @ =0x00000c08 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B8750 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080B8750: + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080B87CA + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B87CA + ldr r4, _080B8804 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080B8780 + ldrb r0, [r4] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + bne _080B87CA +_080B8780: + ldrb r0, [r4] + movs r5, 0x2 + eors r0, r5 + bl sub_8072DF0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B87CA + ldr r3, _080B8808 @ =gSprites + ldr r1, _080B880C @ =gBattlerSpriteIds + ldrb r0, [r4] + eors r0, r5 + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r6, 0x1 +_080B87CA: + ldr r4, _080B8804 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B8818 + ldr r1, _080B8810 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080B8814 @ =gEnemyParty + b _080B8828 + .align 2, 0 +_080B87EC: .4byte gUnknown_2022984 +_080B87F0: .4byte gUnknown_2022986 +_080B87F4: .4byte 0x00003f3f +_080B87F8: .4byte 0x00003f3d +_080B87FC: .4byte 0x00003f42 +_080B8800: .4byte 0x00000c08 +_080B8804: .4byte gBattleAnimAttacker +_080B8808: .4byte gSprites +_080B880C: .4byte gBattlerSpriteIds +_080B8810: .4byte gBattlerPartyIndexes +_080B8814: .4byte gEnemyParty +_080B8818: + ldr r1, _080B88B8 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080B88BC @ =gPlayerParty +_080B8828: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B88C0 @ =gBattleAnimAttacker + ldrb r0, [r0] + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8076E34 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080B88C4 @ =gFile_graphics_battle_anims_masks_metal_shine_tilemap + bl sub_807543C + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080B88C8 @ =gFile_graphics_battle_anims_masks_metal_shine_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080B88CC @ =gFile_graphics_battle_anims_masks_metal_shine_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r2, _080B88D0 @ =gBattle_BG1_X + ldr r0, _080B88D4 @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x20] + negs r0, r0 + adds r0, 0x60 + strh r0, [r2] + ldr r2, _080B88D8 @ =gBattle_BG1_Y + ldrh r0, [r1, 0x22] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldrb r0, [r1, 0x5] + lsrs r0, 4 + adds r0, 0x10 + adds r1, r0, 0 + ldr r2, _080B88DC @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080B88E0 + adds r0, r1, 0 + movs r1, 0 + bl sub_8075B48 + b _080B88EC + .align 2, 0 +_080B88B8: .4byte gBattlerPartyIndexes +_080B88BC: .4byte gPlayerParty +_080B88C0: .4byte gBattleAnimAttacker +_080B88C4: .4byte gFile_graphics_battle_anims_masks_metal_shine_tilemap +_080B88C8: .4byte gFile_graphics_battle_anims_masks_metal_shine_sheet +_080B88CC: .4byte gFile_graphics_battle_anims_masks_metal_shine_palette +_080B88D0: .4byte gBattle_BG1_X +_080B88D4: .4byte gSprites +_080B88D8: .4byte gBattle_BG1_Y +_080B88DC: .4byte gBattleAnimArgs +_080B88E0: + lsls r0, r1, 4 + ldrh r3, [r2, 0x4] + movs r1, 0x10 + movs r2, 0xB + bl BlendPalette +_080B88EC: + ldr r1, _080B8914 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + ldr r2, _080B8918 @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0xA] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xC] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0xE] + strh r6, [r0, 0x14] + ldr r1, _080B891C @ =sub_80B8920 + str r1, [r0] + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8914: .4byte gTasks +_080B8918: .4byte gBattleAnimArgs +_080B891C: .4byte sub_80B8920 + thumb_func_end sub_80B86EC + + thumb_func_start sub_80B8920 +sub_80B8920: @ 80B8920 + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080B89E8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r0, 0x4 + movs r5, 0 + strh r0, [r4, 0x1C] + ldr r2, _080B89EC @ =gBattle_BG1_X + ldrh r3, [r2] + subs r1, r3, 0x4 + strh r1, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x80 + beq _080B894E + b _080B8A5E +_080B894E: + strh r5, [r4, 0x1C] + adds r0, r3, 0 + adds r0, 0x7C + strh r0, [r2] + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080B89FC + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080B89F0 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x5] + lsrs r0, 4 + adds r0, 0x10 + adds r1, r0, 0 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B8990 + adds r0, r1, 0 + movs r1, 0x1 + bl sub_8075B48 +_080B8990: + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + bl sub_8075358 + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080B8A5E + ldr r2, _080B89F4 @ =gBattlerSpriteIds + ldr r0, _080B89F8 @ =gBattleAnimAttacker + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + b _080B8A5E + .align 2, 0 +_080B89E8: .4byte gTasks +_080B89EC: .4byte gBattle_BG1_X +_080B89F0: .4byte gSprites +_080B89F4: .4byte gBattlerSpriteIds +_080B89F8: .4byte gBattleAnimAttacker +_080B89FC: + cmp r0, 0x3 + bne _080B8A5E + ldr r0, _080B8A68 @ =gUnknown_2022984 + strh r5, [r0] + ldr r0, _080B8A6C @ =gUnknown_2022986 + strh r5, [r0] + ldr r4, _080B8A70 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B8A2E + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080B8A2E: + movs r0, 0 + bl GetGpuReg + adds r1, r0, 0 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + eors r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080B8A5E: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B8A68: .4byte gUnknown_2022984 +_080B8A6C: .4byte gUnknown_2022986 +_080B8A70: .4byte 0x00003f3f + thumb_func_end sub_80B8920 + + thumb_func_start sub_80B8A74 +sub_80B8A74: @ 80B8A74 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080B8A94 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r2, r0, 0 + cmp r1, 0x7 + bhi _080B8AD8 + lsls r0, r1, 2 + ldr r1, _080B8A98 @ =_080B8A9C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B8A94: .4byte gBattleAnimArgs +_080B8A98: .4byte _080B8A9C + .align 2, 0 +_080B8A9C: + .4byte _080B8ABC + .4byte _080B8ABC + .4byte _080B8ABC + .4byte _080B8ABC + .4byte _080B8AC8 + .4byte _080B8ACC + .4byte _080B8AD0 + .4byte _080B8AD4 +_080B8ABC: + ldrb r0, [r2] + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r2, r0, 24 + b _080B8ADA +_080B8AC8: + movs r4, 0 + b _080B8AE0 +_080B8ACC: + movs r4, 0x2 + b _080B8AE0 +_080B8AD0: + movs r4, 0x1 + b _080B8AE0 +_080B8AD4: + movs r4, 0x3 + b _080B8AE0 +_080B8AD8: + movs r2, 0xFF +_080B8ADA: + movs r0, 0 + cmp r0, 0 + beq _080B8B06 +_080B8AE0: + adds r0, r4, 0 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B8B04 + ldr r0, _080B8B00 @ =gBattlerSpriteIds + adds r0, r4, r0 + ldrb r2, [r0] + b _080B8B06 + .align 2, 0 +_080B8B00: .4byte gBattlerSpriteIds +_080B8B04: + movs r2, 0xFF +_080B8B06: + cmp r2, 0xFF + beq _080B8B22 + ldr r1, _080B8B30 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + ldr r1, _080B8B34 @ =gBattleAnimArgs + ldrb r1, [r1, 0x2] + bl sub_8075B48 +_080B8B22: + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8B30: .4byte gSprites +_080B8B34: .4byte gBattleAnimArgs + thumb_func_end sub_80B8A74 + + thumb_func_start sub_80B8B38 +sub_80B8B38: @ 80B8B38 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080B8B64 @ =gAnimMoveTurn + ldrb r0, [r2] + cmp r0, 0x1 + bhi _080B8B4C + ldr r1, _080B8B68 @ =gBattleAnimArgs + movs r0, 0 + strh r0, [r1, 0xE] +_080B8B4C: + ldrb r0, [r2] + cmp r0, 0x2 + bne _080B8B58 + ldr r1, _080B8B68 @ =gBattleAnimArgs + movs r0, 0x1 + strh r0, [r1, 0xE] +_080B8B58: + adds r0, r3, 0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080B8B64: .4byte gAnimMoveTurn +_080B8B68: .4byte gBattleAnimArgs + thumb_func_end sub_80B8B38 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/daycare.s b/asm/daycare.s deleted file mode 100644 index 3b7d7ffe0..000000000 --- a/asm/daycare.s +++ /dev/null @@ -1,3216 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GetMonNick -GetMonNick: @ 80453C0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMonNick - - thumb_func_start GetBoxMonNick -GetBoxMonNick: @ 80453E0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl GetBoxMonData - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetBoxMonNick - - thumb_func_start CountPokemonInDaycare -CountPokemonInDaycare: @ 8045400 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r4, 0 -_08045408: - movs r0, 0x8C - muls r0, r4 - adds r0, r6, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _0804541E - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0804541E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _08045408 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CountPokemonInDaycare - - thumb_func_start InitDaycareMailRecordMixing -InitDaycareMailRecordMixing: @ 8045430 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - mov r10, r1 - movs r7, 0 - movs r5, 0 - mov r6, r10 - adds r6, 0x74 - movs r0, 0x1 - mov r8, r0 -_0804544A: - movs r0, 0x8C - muls r0, r5 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08045478 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0xC - bl GetBoxMonData - adds r1, r0, 0 - cmp r1, 0 - bne _08045478 - lsls r0, r5, 1 - adds r0, r6, r0 - b _0804547E -_08045478: - lsls r0, r5, 1 - adds r0, r6, r0 - mov r1, r8 -_0804547E: - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0804544A - mov r0, r10 - str r7, [r0, 0x70] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end InitDaycareMailRecordMixing - - thumb_func_start Daycare_FindEmptySpot -Daycare_FindEmptySpot: @ 804549C - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_080454A2: - movs r0, 0x8C - muls r0, r4 - adds r0, r5, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _080454B8 - lsls r0, r4, 24 - asrs r0, 24 - b _080454C6 -_080454B8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _080454A2 - movs r0, 0x1 - negs r0, r0 -_080454C6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end Daycare_FindEmptySpot - - thumb_func_start StorePokemonInDaycare -StorePokemonInDaycare: @ 80454CC - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl MonHasMail - lsls r0, 24 - cmp r0, 0 - beq _08045524 - adds r0, r4, 0 - adds r0, 0x74 - ldr r1, _08045550 @ =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r1, r4, 0 - adds r1, 0x7C - adds r0, r5, 0 - bl GetMonNick - adds r0, r5, 0 - movs r1, 0x40 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08045554 @ =gSaveBlock1Ptr - ldr r1, [r1] - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r1, r2 - adds r0, r4, 0 - adds r0, 0x50 - ldr r2, _08045558 @ =0x00002cd0 - adds r1, r2 - ldm r1!, {r2,r3,r6} - stm r0!, {r2,r3,r6} - ldm r1!, {r2,r3,r6} - stm r0!, {r2,r3,r6} - ldm r1!, {r2,r3,r6} - stm r0!, {r2,r3,r6} - adds r0, r5, 0 - bl TakeMailFromMon -_08045524: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - bl BoxMonRestorePP - adds r1, r4, 0 - adds r1, 0x88 - movs r0, 0 - str r0, [r1] - adds r0, r5, 0 - bl ZeroMonData - bl CompactPartySlots - bl CalculatePlayerPartyCount - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08045550: .4byte gSaveBlock2Ptr -_08045554: .4byte gSaveBlock1Ptr -_08045558: .4byte 0x00002cd0 - thumb_func_end StorePokemonInDaycare - - thumb_func_start StorePokemonInEmptyDaycareSlot -StorePokemonInEmptyDaycareSlot: @ 804555C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - bl Daycare_FindEmptySpot - lsls r0, 24 - asrs r0, 24 - movs r1, 0x8C - muls r0, r1 - adds r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl StorePokemonInDaycare - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end StorePokemonInEmptyDaycareSlot - - thumb_func_start StoreSelectedPokemonInDaycare -StoreSelectedPokemonInDaycare: @ 8045580 - push {lr} - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080455A4 @ =gPlayerParty - adds r0, r1 - ldr r1, _080455A8 @ =gSaveBlock1Ptr - ldr r1, [r1] - movs r2, 0xBE - lsls r2, 6 - adds r1, r2 - bl StorePokemonInEmptyDaycareSlot - pop {r0} - bx r0 - .align 2, 0 -_080455A4: .4byte gPlayerParty -_080455A8: .4byte gSaveBlock1Ptr - thumb_func_end StoreSelectedPokemonInDaycare - - thumb_func_start ShiftDaycareSlots -ShiftDaycareSlots: @ 80455AC - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x8C - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08045602 - adds r0, r5, 0 - movs r1, 0xB - bl GetBoxMonData - adds r6, r0, 0 - cmp r6, 0 - bne _08045602 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - bl ZeroBoxMonData - adds r4, 0x50 - adds r0, r5, 0 - adds r0, 0x50 - adds r1, r4, 0 - movs r2, 0x38 - bl memcpy - adds r2, r5, 0 - adds r2, 0x88 - movs r0, 0x8A - lsls r0, 1 - adds r1, r5, r0 - ldr r0, [r1] - str r0, [r2] - str r6, [r1] - adds r0, r4, 0 - bl ClearDaycareMonMisc -_08045602: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ShiftDaycareSlots - - thumb_func_start ApplyDaycareExperience -ApplyDaycareExperience: @ 8045608 - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 - ldr r7, _08045624 @ =0x0000ffff -_08045610: - adds r0, r4, 0 - bl sub_8043B90 - lsls r0, 24 - cmp r0, 0 - beq _0804564C - movs r6, 0x1 - adds r5, 0x1 - b _08045638 - .align 2, 0 -_08045624: .4byte 0x0000ffff -_08045628: - movs r6, 0 - cmp r0, r7 - bne _08045638 - ldr r0, _08045658 @ =gMoveToLearn - ldrh r1, [r0] - adds r0, r4, 0 - bl DeleteFirstMoveAndGiveMoveToMon -_08045638: - adds r0, r4, 0 - adds r1, r6, 0 - bl MonTryLearningNewMove - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _08045628 - cmp r5, 0x63 - ble _08045610 -_0804564C: - adds r0, r4, 0 - bl CalculateMonStats - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045658: .4byte gMoveToLearn - thumb_func_end ApplyDaycareExperience - - thumb_func_start TakeSelectedPokemonFromDaycare -TakeSelectedPokemonFromDaycare: @ 804565C - push {r4-r7,lr} - sub sp, 0x68 - adds r5, r0, 0 - ldr r1, _080456F8 @ =gStringVar1 - bl GetBoxMonNick - adds r0, r5, 0 - movs r1, 0xB - bl GetBoxMonData - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r5, 0 - mov r1, sp - bl BoxMonToMon - mov r0, sp - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - beq _080456AA - mov r0, sp - movs r1, 0x19 - bl GetMonData - adds r1, r5, 0 - adds r1, 0x88 - ldr r1, [r1] - adds r0, r1 - str r0, [sp, 0x64] - add r2, sp, 0x64 - mov r0, sp - movs r1, 0x19 - bl SetMonData - mov r0, sp - bl ApplyDaycareExperience -_080456AA: - ldr r0, _080456FC @ =gPlayerParty - movs r1, 0xFA - lsls r1, 1 - adds r6, r0, r1 - adds r0, r6, 0 - mov r1, sp - movs r2, 0x64 - bl memcpy - adds r0, r5, 0 - adds r0, 0x70 - ldrh r0, [r0] - cmp r0, 0 - beq _080456D8 - adds r4, r5, 0 - adds r4, 0x50 - adds r0, r6, 0 - adds r1, r4, 0 - bl GiveMailToMon2 - adds r0, r4, 0 - bl ClearDaycareMonMisc -_080456D8: - adds r0, r5, 0 - bl ZeroBoxMonData - adds r1, r5, 0 - adds r1, 0x88 - movs r0, 0 - str r0, [r1] - bl CompactPartySlots - bl CalculatePlayerPartyCount - adds r0, r7, 0 - add sp, 0x68 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080456F8: .4byte gStringVar1 -_080456FC: .4byte gPlayerParty - thumb_func_end TakeSelectedPokemonFromDaycare - - thumb_func_start TakeSelectedPokemonMonFromDaycareShiftSlots -TakeSelectedPokemonMonFromDaycareShiftSlots: @ 8045700 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x8C - muls r0, r1 - adds r0, r5, r0 - bl TakeSelectedPokemonFromDaycare - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ShiftDaycareSlots - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end TakeSelectedPokemonMonFromDaycareShiftSlots - - thumb_func_start TakePokemonFromDaycare -TakePokemonFromDaycare: @ 8045728 - push {lr} - ldr r0, _08045744 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - ldr r1, _08045748 @ =gSpecialVar_0x8004 - ldrb r1, [r1] - bl TakeSelectedPokemonMonFromDaycareShiftSlots - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_08045744: .4byte gSaveBlock1Ptr -_08045748: .4byte gSpecialVar_0x8004 - thumb_func_end TakePokemonFromDaycare - - thumb_func_start GetLevelAfterDaycareSteps -GetLevelAfterDaycareSteps: @ 804574C - push {r4,r5,lr} - sub sp, 0x54 - adds r4, r0, 0 - adds r5, r1, 0 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - movs r1, 0x19 - bl GetBoxMonData - adds r0, r5 - str r0, [sp, 0x50] - add r2, sp, 0x50 - mov r0, sp - movs r1, 0x19 - bl SetBoxMonData - mov r0, sp - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r0, 24 - add sp, 0x54 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetLevelAfterDaycareSteps - - thumb_func_start GetNumLevelsGainedFromSteps -GetNumLevelsGainedFromSteps: @ 8045788 - push {r4,r5,lr} - adds r5, r0, 0 - bl GetLevelFromBoxMonExp - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r0, 0x88 - ldr r1, [r0] - adds r0, r5, 0 - bl GetLevelAfterDaycareSteps - lsls r0, 24 - lsrs r0, 24 - subs r0, r4 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetNumLevelsGainedFromSteps - - thumb_func_start GetNumLevelsGainedForDaycareMon -GetNumLevelsGainedForDaycareMon: @ 80457B4 - push {r4,r5,lr} - adds r5, r0, 0 - bl GetNumLevelsGainedFromSteps - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080457E0 @ =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, _080457E4 @ =gStringVar1 - adds r0, r5, 0 - bl GetBoxMonNick - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080457E0: .4byte gStringVar2 -_080457E4: .4byte gStringVar1 - thumb_func_end GetNumLevelsGainedForDaycareMon - - thumb_func_start GetDaycareCostForSelectedMon -GetDaycareCostForSelectedMon: @ 80457E8 - push {r4,r5,lr} - adds r5, r0, 0 - bl GetNumLevelsGainedFromSteps - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _08045818 @ =gStringVar1 - adds r0, r5, 0 - bl GetBoxMonNick - movs r0, 0x64 - muls r4, r0 - adds r4, 0x64 - ldr r0, _0804581C @ =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08045818: .4byte gStringVar1 -_0804581C: .4byte gStringVar2 - thumb_func_end GetDaycareCostForSelectedMon - - thumb_func_start GetDaycareCostForMon -GetDaycareCostForMon: @ 8045820 - push {lr} - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x8C - muls r1, r2 - adds r0, r1 - bl GetDaycareCostForSelectedMon - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end GetDaycareCostForMon - - thumb_func_start GetDaycareCost -GetDaycareCost: @ 8045838 - push {lr} - ldr r0, _08045854 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - ldr r1, _08045858 @ =gSpecialVar_0x8004 - ldrb r1, [r1] - bl GetDaycareCostForMon - ldr r1, _0804585C @ =gSpecialVar_0x8005 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08045854: .4byte gSaveBlock1Ptr -_08045858: .4byte gSpecialVar_0x8004 -_0804585C: .4byte gSpecialVar_0x8005 - thumb_func_end GetDaycareCost - - thumb_func_start sub_8045860 -sub_8045860: @ 8045860 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08045888 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldr r1, _0804588C @ =0x00003008 - adds r3, r2, r1 - ldr r1, [r3] - adds r1, r0 - str r1, [r3] - ldr r1, _08045890 @ =0x00003094 - adds r3, r2, r1 - ldr r1, [r3] - adds r1, r0 - str r1, [r3] - ldr r1, _08045894 @ =0x00003d20 - adds r2, r1 - ldr r1, [r2] - adds r1, r0 - str r1, [r2] - bx lr - .align 2, 0 -_08045888: .4byte gSaveBlock1Ptr -_0804588C: .4byte 0x00003008 -_08045890: .4byte 0x00003094 -_08045894: .4byte 0x00003d20 - thumb_func_end sub_8045860 - - thumb_func_start GetNumLevelsGainedFromDaycare -GetNumLevelsGainedFromDaycare: @ 8045898 - push {r4-r6,lr} - ldr r6, _080458C0 @ =gSaveBlock1Ptr - ldr r5, _080458C4 @ =gSpecialVar_0x8004 - ldrh r0, [r5] - movs r4, 0x8C - adds r1, r0, 0 - muls r1, r4 - movs r0, 0xBE - lsls r0, 6 - adds r1, r0 - ldr r0, [r6] - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _080458C8 - movs r0, 0 - b _080458E0 - .align 2, 0 -_080458C0: .4byte gSaveBlock1Ptr -_080458C4: .4byte gSpecialVar_0x8004 -_080458C8: - ldrh r0, [r5] - adds r1, r0, 0 - muls r1, r4 - movs r0, 0xBE - lsls r0, 6 - adds r1, r0 - ldr r0, [r6] - adds r0, r1 - bl GetNumLevelsGainedForDaycareMon - lsls r0, 24 - lsrs r0, 24 -_080458E0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetNumLevelsGainedFromDaycare - - thumb_func_start ClearDaycareMonMisc -ClearDaycareMonMisc: @ 80458E8 - push {lr} - movs r3, 0 - movs r2, 0x7 - adds r1, r0, 0 - adds r1, 0x2B -_080458F2: - strb r3, [r1] - subs r1, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _080458F2 - adds r2, r0, 0 - adds r2, 0x2C - movs r3, 0 - adds r1, r0, 0 - adds r1, 0x36 -_08045906: - strb r3, [r1] - subs r1, 0x1 - cmp r1, r2 - bge _08045906 - bl ClearMailStruct - pop {r0} - bx r0 - thumb_func_end ClearDaycareMonMisc - - thumb_func_start ClearDaycareMon -ClearDaycareMon: @ 8045918 - push {r4,lr} - adds r4, r0, 0 - bl ZeroBoxMonData - adds r1, r4, 0 - adds r1, 0x88 - movs r0, 0 - str r0, [r1] - adds r4, 0x50 - adds r0, r4, 0 - bl ClearDaycareMonMisc - pop {r4} - pop {r0} - bx r0 - thumb_func_end ClearDaycareMon - - thumb_func_start ClearAllDaycareData -ClearAllDaycareData: @ 8045938 - push {r4-r6,lr} - adds r5, r0, 0 - movs r4, 0 - movs r6, 0x8C -_08045940: - adds r0, r4, 0 - muls r0, r6 - adds r0, r5, r0 - bl ClearDaycareMon - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _08045940 - movs r1, 0x8C - lsls r1, 1 - adds r0, r5, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0] - movs r1, 0x8D - lsls r1, 1 - adds r0, r5, r1 - strb r2, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ClearAllDaycareData - - thumb_func_start sub_8045970 -sub_8045970: @ 8045970 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0 - mov r8, r0 - ldr r0, _0804599C @ =gEvolutionTable - mov r12, r0 -_08045982: - movs r7, 0 - movs r6, 0x1 - movs r4, 0x80 - lsls r4, 9 - movs r5, 0x28 - mov r3, r12 - adds r3, 0x28 -_08045990: - movs r1, 0 - ldrh r0, [r3, 0x4] - cmp r0, r2 - bne _080459A0 - lsrs r2, r4, 16 - b _080459CC - .align 2, 0 -_0804599C: .4byte gEvolutionTable -_080459A0: - adds r1, 0x1 - cmp r1, 0x4 - bgt _080459B6 - lsls r0, r1, 3 - adds r0, r5 - add r0, r12 - ldrh r0, [r0, 0x4] - cmp r0, r2 - bne _080459A0 - lsrs r2, r4, 16 - movs r7, 0x1 -_080459B6: - cmp r7, 0 - bne _080459CC - movs r0, 0x80 - lsls r0, 9 - adds r4, r0 - adds r5, 0x28 - adds r3, 0x28 - adds r6, 0x1 - ldr r0, _080459EC @ =0x0000019b - cmp r6, r0 - ble _08045990 -_080459CC: - movs r0, 0xCE - lsls r0, 1 - cmp r6, r0 - beq _080459DE - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x4 - ble _08045982 -_080459DE: - adds r0, r2, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080459EC: .4byte 0x0000019b - thumb_func_end sub_8045970 - - thumb_func_start sub_80459F0 -sub_80459F0: @ 80459F0 - push {r4,lr} - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08045A18 @ =0x0000fffe - bl __umodsi3 - adds r0, 0x1 - movs r1, 0x8C - lsls r1, 1 - adds r4, r1 - strh r0, [r4] - ldr r0, _08045A1C @ =0x00000266 - bl FlagSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08045A18: .4byte 0x0000fffe -_08045A1C: .4byte 0x00000266 - thumb_func_end sub_80459F0 - - thumb_func_start sub_8045A20 -sub_8045A20: @ 8045A20 - push {r4,lr} - adds r4, r0, 0 - bl Random - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - movs r2, 0x8C - lsls r2, 1 - adds r4, r2 - orrs r1, r0 - strh r1, [r4] - ldr r0, _08045A44 @ =0x00000266 - bl FlagSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08045A44: .4byte 0x00000266 - thumb_func_end sub_8045A20 - - thumb_func_start sub_8045A48 -sub_8045A48: @ 8045A48 - push {lr} - ldr r0, _08045A5C @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_80459F0 - pop {r0} - bx r0 - .align 2, 0 -_08045A5C: .4byte gSaveBlock1Ptr - thumb_func_end sub_8045A48 - - thumb_func_start sub_8045A60 -sub_8045A60: @ 8045A60 - push {lr} - ldr r0, _08045A74 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_8045A20 - pop {r0} - bx r0 - .align 2, 0 -_08045A74: .4byte gSaveBlock1Ptr - thumb_func_end sub_8045A60 - - thumb_func_start RemoveIVIndexFromList -RemoveIVIndexFromList: @ 8045A78 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r1, r4, r1 - movs r0, 0xFF - strb r0, [r1] - movs r2, 0 -_08045A8A: - mov r1, sp - adds r0, r1, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x5 - ble _08045A8A - movs r3, 0 - movs r2, 0 -_08045A9E: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - adds r0, r1, 0 - cmp r0, 0xFF - beq _08045AB0 - adds r0, r4, r3 - strb r1, [r0] - adds r3, 0x1 -_08045AB0: - adds r2, 0x1 - cmp r2, 0x5 - ble _08045A9E - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end RemoveIVIndexFromList - - thumb_func_start InheritIVs -InheritIVs: @ 8045AC0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r0 - mov r8, r1 - movs r5, 0 - add r1, sp, 0x4 - add r7, sp, 0xC - adds r2, r1, 0 -_08045AD6: - adds r0, r2, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08045AD6 - movs r5, 0 - adds r6, r1, 0 -_08045AE8: - bl Random - mov r1, sp - adds r4, r1, r5 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - subs r1, r5 - bl __modsi3 - adds r0, r6, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r4] - adds r0, r6, 0 - bl RemoveIVIndexFromList - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08045AE8 - movs r5, 0 - movs r4, 0x1 -_08045B18: - bl Random - adds r1, r7, r5 - lsls r0, 16 - lsrs r0, 16 - ands r0, r4 - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08045B18 - movs r5, 0 -_08045B32: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08045C0E - lsls r0, 2 - ldr r1, _08045B48 @ =_08045B4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08045B48: .4byte _08045B4C - .align 2, 0 -_08045B4C: - .4byte _08045B64 - .4byte _08045B82 - .4byte _08045B9C - .4byte _08045BB6 - .4byte _08045BD0 - .4byte _08045BF0 -_08045B64: - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x27 - bl GetBoxMonData - add r2, sp, 0x10 - strb r0, [r2] - mov r0, r9 - movs r1, 0x27 - bl SetMonData - b _08045C0E -_08045B82: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x28 - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x28 - b _08045BE8 -_08045B9C: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x29 - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x29 - b _08045BE8 -_08045BB6: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x2A - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x2A - b _08045BE8 -_08045BD0: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x2B - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x2B -_08045BE8: - adds r2, r4, 0 - bl SetMonData - b _08045C0E -_08045BF0: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - movs r1, 0x2C - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x2C - adds r2, r4, 0 - bl SetMonData -_08045C0E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08045B32 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end InheritIVs - - thumb_func_start GetEggMoves -GetEggMoves: @ 8045C28 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - movs r6, 0 - movs r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r5, _08045C50 @ =gUnknown_825EF0C - ldrh r1, [r5] - ldr r7, _08045C54 @ =0x00004e20 - adds r0, r3, r7 - cmp r1, r0 - bne _08045C58 - movs r4, 0x1 - b _08045C7A - .align 2, 0 -_08045C50: .4byte gUnknown_825EF0C -_08045C54: .4byte 0x00004e20 -_08045C58: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _08045CC4 @ =0x00000471 - ldr r5, _08045CC8 @ =gUnknown_825EF0C - cmp r2, r0 - bhi _08045C7A - lsls r0, r2, 1 - adds r0, r5 - ldrh r1, [r0] - ldr r7, _08045CCC @ =0x00004e20 - adds r0, r3, r7 - cmp r1, r0 - bne _08045C58 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08045C7A: - movs r2, 0 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r1, _08045CCC @ =0x00004e20 - cmp r0, r1 - bhi _08045CB6 - adds r7, r5, 0 - adds r3, r1, 0 -_08045C8C: - lsls r1, r2, 1 - add r1, r8 - adds r0, r4, r2 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x9 - bhi _08045CB6 - adds r0, r4, r2 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r3 - bls _08045C8C -_08045CB6: - lsls r0, r6, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08045CC4: .4byte 0x00000471 -_08045CC8: .4byte gUnknown_825EF0C -_08045CCC: .4byte 0x00004e20 - thumb_func_end GetEggMoves - - thumb_func_start BuildEggMoveset -BuildEggMoveset: @ 8045CD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r7, r0, 0 - mov r10, r1 - mov r9, r2 - movs r0, 0 - str r0, [sp] - movs r6, 0 - ldr r5, _08045DD4 @ =gUnknown_2024580 - movs r2, 0 - ldr r4, _08045DD8 @ =gUnknown_202455C - ldr r3, _08045DDC @ =gUnknown_2024564 -_08045CF0: - lsls r1, r6, 1 - adds r0, r1, r5 - strh r2, [r0] - adds r0, r1, r4 - strh r2, [r0] - adds r1, r3 - strh r2, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08045CF0 - movs r6, 0 - ldr r2, _08045DE0 @ =gUnknown_202456C - movs r1, 0 -_08045D0E: - lsls r0, r6, 1 - adds r0, r2 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x9 - bls _08045D0E - movs r6, 0 - ldr r2, _08045DE4 @ =gUnknown_20244F8 - movs r1, 0 -_08045D24: - lsls r0, r6, 1 - adds r0, r2 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x31 - bls _08045D24 - adds r0, r7, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08045DE4 @ =gUnknown_20244F8 - bl GetLevelUpMovesBySpecies - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r6, 0 - ldr r1, _08045DD8 @ =gUnknown_202455C - mov r8, r1 -_08045D52: - adds r5, r6, 0 - adds r5, 0xD - mov r0, r10 - adds r1, r5, 0 - bl GetBoxMonData - lsls r4, r6, 1 - mov r2, r8 - adds r1, r4, r2 - strh r0, [r1] - mov r0, r9 - adds r1, r5, 0 - bl GetBoxMonData - ldr r1, _08045DD4 @ =gUnknown_2024580 - adds r4, r1 - strh r0, [r4] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08045D52 - ldr r1, _08045DE0 @ =gUnknown_202456C - adds r0, r7, 0 - bl GetEggMoves - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 -_08045D8E: - ldr r0, _08045DD8 @ =gUnknown_202455C - lsls r1, r6, 1 - adds r2, r1, r0 - ldrh r1, [r2] - mov r9, r0 - cmp r1, 0 - beq _08045E04 - movs r5, 0 - cmp r5, r8 - bcs _08045DF6 - adds r4, r2, 0 - ldr r2, _08045DE8 @ =0x0000ffff -_08045DA6: - ldr r0, _08045DE0 @ =gUnknown_202456C - lsls r1, r5, 1 - adds r1, r0 - ldrh r0, [r4] - ldrh r1, [r1] - cmp r0, r1 - bne _08045DEC - adds r1, r0, 0 - adds r0, r7, 0 - str r2, [sp, 0x8] - bl GiveMoveToMon - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08045DF6 - ldrh r1, [r4] - adds r0, r7, 0 - bl DeleteFirstMoveAndGiveMoveToMon - b _08045DF6 - .align 2, 0 -_08045DD4: .4byte gUnknown_2024580 -_08045DD8: .4byte gUnknown_202455C -_08045DDC: .4byte gUnknown_2024564 -_08045DE0: .4byte gUnknown_202456C -_08045DE4: .4byte gUnknown_20244F8 -_08045DE8: .4byte 0x0000ffff -_08045DEC: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _08045DA6 -_08045DF6: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, _08045F20 @ =gUnknown_202455C - mov r9, r3 - cmp r6, 0x3 - bls _08045D8E -_08045E04: - movs r6, 0 -_08045E06: - lsls r0, r6, 1 - mov r2, r9 - adds r1, r0, r2 - ldrh r1, [r1] - adds r2, r0, 0 - adds r6, 0x1 - mov r8, r6 - cmp r1, 0 - beq _08045E68 - movs r5, 0 - ldr r0, _08045F20 @ =gUnknown_202455C - adds r4, r2, r0 - ldr r6, _08045F24 @ =0x0000ffff - mov r9, r0 -_08045E22: - ldr r3, _08045F28 @ =0x00000121 - adds r0, r5, r3 - lsls r0, 16 - lsrs r0, 16 - bl ItemIdToBattleMoveId - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bne _08045E5E - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r7, 0 - bl CanMonLearnTMHM - cmp r0, 0 - beq _08045E5E - ldrh r1, [r4] - adds r0, r7, 0 - bl GiveMoveToMon - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bne _08045E5E - ldrh r1, [r4] - adds r0, r7, 0 - bl DeleteFirstMoveAndGiveMoveToMon -_08045E5E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x39 - bls _08045E22 -_08045E68: - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08045E06 - movs r6, 0 - mov r2, r9 - ldrh r0, [r2] - ldr r3, _08045F2C @ =gUnknown_2024564 - mov r10, r3 - cmp r0, 0 - beq _08045ED2 - mov r4, r9 - ldr r0, _08045F30 @ =gUnknown_2024580 - mov r9, r0 - mov r12, r10 -_08045E88: - movs r5, 0 - lsls r2, r6, 1 - adds r6, 0x1 - mov r8, r6 - adds r3, r2, r4 -_08045E92: - lsls r0, r5, 1 - add r0, r9 - ldrh r2, [r3] - adds r1, r2, 0 - ldrh r0, [r0] - cmp r1, r0 - bne _08045EB4 - cmp r1, 0 - beq _08045EB4 - ldr r1, [sp] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 1 - add r1, r12 - strh r2, [r1] -_08045EB4: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _08045E92 - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bhi _08045ED2 - lsls r0, r6, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - bne _08045E88 -_08045ED2: - movs r6, 0 - mov r2, r10 - ldrh r0, [r2] - cmp r0, 0 - beq _08045F5C -_08045EDC: - movs r5, 0 - adds r3, r6, 0x1 - mov r8, r3 - ldr r0, [sp, 0x4] - cmp r5, r0 - bcs _08045F44 - ldr r2, _08045F24 @ =0x0000ffff -_08045EEA: - ldr r1, _08045F34 @ =gUnknown_20244F8 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - beq _08045F38 - lsls r0, r6, 1 - mov r3, r10 - adds r4, r0, r3 - ldrh r0, [r4] - cmp r0, r1 - bne _08045F38 - adds r1, r0, 0 - adds r0, r7, 0 - str r2, [sp, 0x8] - bl GiveMoveToMon - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08045F44 - ldrh r1, [r4] - adds r0, r7, 0 - bl DeleteFirstMoveAndGiveMoveToMon - b _08045F44 - .align 2, 0 -_08045F20: .4byte gUnknown_202455C -_08045F24: .4byte 0x0000ffff -_08045F28: .4byte 0x00000121 -_08045F2C: .4byte gUnknown_2024564 -_08045F30: .4byte gUnknown_2024580 -_08045F34: .4byte gUnknown_20244F8 -_08045F38: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [sp, 0x4] - cmp r5, r0 - bcc _08045EEA -_08045F44: - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bhi _08045F5C - ldr r0, _08045F6C @ =gUnknown_2024564 - lsls r1, r6, 1 - adds r1, r0 - ldrh r1, [r1] - mov r10, r0 - cmp r1, 0 - bne _08045EDC -_08045F5C: - 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 -_08045F6C: .4byte gUnknown_2024564 - thumb_func_end BuildEggMoveset - - thumb_func_start RemoveEggFromDayCare -RemoveEggFromDayCare: @ 8045F70 - adds r3, r0, 0 - movs r1, 0x8C - lsls r1, 1 - adds r0, r3, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0] - movs r1, 0x8D - lsls r1, 1 - adds r0, r3, r1 - strb r2, [r0] - bx lr - thumb_func_end RemoveEggFromDayCare - - thumb_func_start RejectEggFromDayCare -RejectEggFromDayCare: @ 8045F88 - push {lr} - ldr r0, _08045F9C @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl RemoveEggFromDayCare - pop {r0} - bx r0 - .align 2, 0 -_08045F9C: .4byte gSaveBlock1Ptr - thumb_func_end RejectEggFromDayCare - - thumb_func_start sub_8045FA0 -sub_8045FA0: @ 8045FA0 - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrh r1, [r4] - movs r7, 0xB4 - lsls r7, 1 - cmp r1, r7 - beq _08045FB8 - movs r0, 0xAF - lsls r0, 1 - cmp r1, r0 - bne _08045FFA -_08045FB8: - adds r0, r5, 0 - movs r1, 0xC - bl GetBoxMonData - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - adds r0, 0x8C - movs r1, 0xC - bl GetBoxMonData - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r4] - cmp r0, r7 - bne _08045FE4 - cmp r6, 0xDD - beq _08045FE4 - cmp r2, 0xDD - beq _08045FE4 - movs r0, 0xCA - strh r0, [r4] -_08045FE4: - ldrh r1, [r4] - movs r0, 0xAF - lsls r0, 1 - cmp r1, r0 - bne _08045FFA - cmp r6, 0xDC - beq _08045FFA - cmp r2, 0xDC - beq _08045FFA - movs r0, 0xB7 - strh r0, [r4] -_08045FFA: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8045FA0 - - thumb_func_start sub_8046000 -sub_8046000: @ 8046000 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r6, r1, 0 - movs r4, 0 - movs r7, 0x1 -_08046010: - movs r0, 0x8C - muls r0, r4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetBoxMonData - lsls r1, r4, 1 - add r1, sp - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x84 - bne _08046038 - adds r0, r4, 0 - eors r0, r7 - strb r0, [r6] - strb r4, [r6, 0x1] - b _0804604E -_08046038: - adds r0, r5, 0 - bl GetBoxMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFE - bne _0804604E - strb r4, [r6] - adds r0, r4, 0 - eors r0, r7 - strb r0, [r6, 0x1] -_0804604E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08046010 - ldrb r0, [r6] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - bl sub_8045970 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bne _08046080 - movs r0, 0x8C - lsls r0, 1 - add r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08046080 - movs r4, 0x20 -_08046080: - ldr r0, _080460D0 @ =0x00000183 - cmp r4, r0 - bne _0804609A - subs r0, 0x6B - add r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _0804609A - movs r4, 0xC1 - lsls r4, 1 -_0804609A: - ldrb r0, [r6, 0x1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - cmp r0, 0x84 - bne _080460C2 - ldrb r1, [r6] - movs r0, 0x8C - muls r0, r1 - add r0, r8 - bl GetBoxMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFE - beq _080460C2 - ldrb r1, [r6, 0x1] - ldrb r0, [r6] - strb r0, [r6, 0x1] - strb r1, [r6] -_080460C2: - adds r0, r4, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080460D0: .4byte 0x00000183 - thumb_func_end sub_8046000 - - thumb_func_start sub_80460D4 -sub_80460D4: @ 80460D4 - push {r4-r6,lr} - sub sp, 0x6C - adds r5, r0, 0 - add r6, sp, 0x64 - adds r1, r6, 0 - bl sub_8046000 - add r4, sp, 0x68 - strh r0, [r4] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8045FA0 - ldrh r1, [r4] - mov r0, sp - adds r2, r5, 0 - bl SetInitialEggData - mov r0, sp - adds r1, r5, 0 - bl InheritIVs - ldrb r0, [r6, 0x1] - movs r2, 0x8C - adds r1, r0, 0 - muls r1, r2 - adds r1, r5, r1 - ldrb r0, [r6] - muls r2, r0 - adds r2, r5, r2 - mov r0, sp - bl BuildEggMoveset - mov r2, sp - adds r2, 0x6A - movs r0, 0x1 - strb r0, [r2] - mov r0, sp - movs r1, 0x2D - bl SetMonData - ldr r0, _0804614C @ =gPlayerParty - movs r1, 0xFA - lsls r1, 1 - adds r0, r1 - mov r1, sp - movs r2, 0x64 - bl memcpy - bl CompactPartySlots - bl CalculatePlayerPartyCount - adds r0, r5, 0 - bl RemoveEggFromDayCare - add sp, 0x6C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804614C: .4byte gPlayerParty - thumb_func_end sub_80460D4 - - thumb_func_start CreateEgg -CreateEgg: @ 8046150 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - adds r7, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r1, r5, 0 - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r0, 0x12 - add r0, sp - mov r8, r0 - strb r4, [r0] - movs r1, 0x4 - add r0, sp, 0x10 - strh r1, [r0] - mov r4, sp - adds r4, 0x13 - movs r0, 0x1 - mov r9, r0 - mov r0, r9 - strb r0, [r4] - adds r0, r7, 0 - movs r1, 0x26 - add r2, sp, 0x10 - bl SetMonData - ldr r2, _08046200 @ =gUnknown_825F83E - adds r0, r7, 0 - movs r1, 0x2 - bl SetMonData - lsls r2, r5, 3 - subs r2, r5 - lsls r2, 2 - ldr r0, _08046204 @ =gUnknown_8254795 - adds r2, r0 - adds r0, r7, 0 - movs r1, 0x20 - bl SetMonData - adds r0, r7, 0 - movs r1, 0x24 - mov r2, r8 - bl SetMonData - adds r0, r7, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl SetMonData - cmp r6, 0 - beq _080461E2 - add r2, sp, 0x14 - movs r0, 0xFD - strb r0, [r2] - adds r0, r7, 0 - movs r1, 0x23 - bl SetMonData -_080461E2: - mov r2, sp - adds r2, 0x15 - mov r0, r9 - strb r0, [r2] - adds r0, r7, 0 - movs r1, 0x2D - bl SetMonData - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046200: .4byte gUnknown_825F83E -_08046204: .4byte gUnknown_8254795 - thumb_func_end CreateEgg - - thumb_func_start SetInitialEggData -SetInitialEggData: @ 8046208 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - bl Random - movs r1, 0x8C - lsls r1, 1 - adds r4, r1 - ldrh r1, [r4] - lsls r0, 16 - orrs r1, r0 - movs r0, 0x1 - mov r8, r0 - str r0, [sp] - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r1, 0x12 - add r1, sp - mov r9, r1 - strb r4, [r1] - movs r1, 0x4 - add r0, sp, 0x10 - strh r1, [r0] - mov r4, sp - adds r4, 0x13 - mov r0, r8 - strb r0, [r4] - adds r0, r6, 0 - movs r1, 0x26 - add r2, sp, 0x10 - bl SetMonData - ldr r2, _080462A4 @ =gUnknown_825F83E - adds r0, r6, 0 - movs r1, 0x2 - bl SetMonData - lsls r2, r5, 3 - subs r2, r5 - lsls r2, 2 - ldr r0, _080462A8 @ =gUnknown_8254795 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x20 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x24 - mov r2, r9 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl SetMonData - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080462A4: .4byte gUnknown_825F83E -_080462A8: .4byte gUnknown_8254795 - thumb_func_end SetInitialEggData - - thumb_func_start GiveEggFromDaycare -GiveEggFromDaycare: @ 80462AC - push {lr} - ldr r0, _080462C0 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_80460D4 - pop {r0} - bx r0 - .align 2, 0 -_080462C0: .4byte gSaveBlock1Ptr - thumb_func_end GiveEggFromDaycare - - thumb_func_start sub_80462C4 -sub_80462C4: @ 80462C4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - movs r7, 0 - movs r5, 0 -_080462CE: - movs r0, 0x8C - adds r4, r5, 0 - muls r4, r0 - adds r0, r6, r4 - movs r1, 0x5 - bl GetBoxMonData - cmp r0, 0 - beq _080462EE - adds r1, r6, 0 - adds r1, 0x88 - adds r1, r4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - adds r7, 0x1 -_080462EE: - adds r5, 0x1 - cmp r5, 0x1 - bls _080462CE - movs r1, 0x8C - lsls r1, 1 - adds r0, r6, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08046334 - cmp r7, 0x2 - bne _08046334 - subs r1, 0x4 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08046334 - adds r0, r6, 0 - bl GetDaycareCompatibilityScore - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0804634C @ =0x0000ffff - bl __udivsi3 - cmp r4, r0 - bls _08046334 - bl sub_8045A48 -_08046334: - movs r0, 0x8D - lsls r0, 1 - adds r1, r6, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080463A8 - movs r5, 0 - b _080463A0 - .align 2, 0 -_0804634C: .4byte 0x0000ffff -_08046350: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08046388 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _0804639E - adds r0, r4, 0 - movs r1, 0x4 - bl GetMonData - cmp r0, 0 - bne _0804639E - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - str r0, [sp] - cmp r0, 0 - bne _08046390 - ldr r0, _0804638C @ =gSpecialVar_0x8004 - strh r5, [r0] - movs r0, 0x1 - b _080463AA - .align 2, 0 -_08046388: .4byte gPlayerParty -_0804638C: .4byte gSpecialVar_0x8004 -_08046390: - subs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x20 - mov r2, sp - bl SetMonData -_0804639E: - adds r5, 0x1 -_080463A0: - ldr r0, _080463B4 @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r5, r0 - bcc _08046350 -_080463A8: - movs r0, 0 -_080463AA: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080463B4: .4byte gPlayerPartyCount - thumb_func_end sub_80462C4 - - thumb_func_start sub_80463B8 -sub_80463B8: @ 80463B8 - push {r4,lr} - ldr r4, _080463F0 @ =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, _080463F4 @ =0x00003c98 - adds r0, r1 - movs r1, 0x5 - bl GetBoxMonData - cmp r0, 0 - beq _080463D8 - ldr r1, [r4] - ldr r0, _080463F8 @ =0x00003d20 - adds r1, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080463D8: - ldr r0, [r4] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_80462C4 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080463F0: .4byte gSaveBlock1Ptr -_080463F4: .4byte 0x00003c98 -_080463F8: .4byte 0x00003d20 - thumb_func_end sub_80463B8 - - thumb_func_start sub_80463FC -sub_80463FC: @ 80463FC - movs r1, 0x8C - lsls r1, 1 - adds r0, r1 - ldrh r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - thumb_func_end sub_80463FC - - thumb_func_start _GetDaycareMonNicknames -_GetDaycareMonNicknames: @ 804640C - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08046436 - ldr r1, _08046454 @ =gStringVar1 - adds r0, r4, 0 - bl GetBoxMonNick - adds r0, r4, 0 - movs r1, 0x7 - mov r2, sp - bl GetBoxMonData - ldr r0, _08046458 @ =gStringVar3 - mov r1, sp - bl StringCopy -_08046436: - adds r4, 0x8C - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _0804644C - ldr r1, _0804645C @ =gStringVar2 - adds r0, r4, 0 - bl GetBoxMonNick -_0804644C: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08046454: .4byte gStringVar1 -_08046458: .4byte gStringVar3 -_0804645C: .4byte gStringVar2 - thumb_func_end _GetDaycareMonNicknames - - thumb_func_start GetSelectedMonNickAndSpecies -GetSelectedMonNickAndSpecies: @ 8046460 - push {r4,r5,lr} - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r5, 0x64 - muls r0, r5 - ldr r4, _08046494 @ =gPlayerParty - adds r0, r4 - ldr r1, _08046498 @ =gStringVar1 - bl GetBoxMonNick - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - muls r0, r5 - adds r0, r4 - movs r1, 0xB - bl GetBoxMonData - lsls r0, 16 - lsrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08046494: .4byte gPlayerParty -_08046498: .4byte gStringVar1 - thumb_func_end GetSelectedMonNickAndSpecies - - thumb_func_start GetDaycareMonNicknames -GetDaycareMonNicknames: @ 804649C - push {lr} - ldr r0, _080464B0 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl _GetDaycareMonNicknames - pop {r0} - bx r0 - .align 2, 0 -_080464B0: .4byte gSaveBlock1Ptr - thumb_func_end GetDaycareMonNicknames - - thumb_func_start sub_80464B4 -sub_80464B4: @ 80464B4 - push {r4,lr} - ldr r4, _080464D0 @ =gSaveBlock1Ptr - ldr r0, [r4] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl sub_80463FC - lsls r0, 24 - cmp r0, 0 - beq _080464D4 - movs r0, 0x1 - b _080464F2 - .align 2, 0 -_080464D0: .4byte gSaveBlock1Ptr -_080464D4: - ldr r0, [r4] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl CountPokemonInDaycare - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080464EC - movs r0, 0 - b _080464F2 -_080464EC: - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 -_080464F2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80464B4 - - thumb_func_start GetDaycarePokemonCount -GetDaycarePokemonCount: @ 80464F8 - push {lr} - ldr r0, _08046518 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl CountPokemonInDaycare - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08046512 - movs r0, 0 -_08046512: - pop {r1} - bx r1 - .align 2, 0 -_08046518: .4byte gSaveBlock1Ptr - thumb_func_end GetDaycarePokemonCount - - thumb_func_start EggGroupsOverlap -EggGroupsOverlap: @ 804651C - push {r4-r6,lr} - adds r5, r1, 0 - movs r4, 0 - adds r1, r0, 0 -_08046524: - movs r3, 0 - ldrh r0, [r1] - adds r2, r5, 0 -_0804652A: - ldrh r6, [r2] - cmp r0, r6 - bne _08046534 - movs r0, 0x1 - b _08046546 -_08046534: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x1 - ble _0804652A - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x1 - ble _08046524 - movs r0, 0 -_08046546: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end EggGroupsOverlap - - thumb_func_start GetDaycareCompatibilityScore -GetDaycareCompatibilityScore: @ 804654C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - str r0, [sp, 0x1C] - movs r7, 0 - mov r0, sp - adds r0, 0x8 - str r0, [sp, 0x20] - add r1, sp, 0xC - mov r9, r1 - mov r2, sp - adds r2, 0x14 - str r2, [sp, 0x24] - subs r0, 0x6 - ldr r1, _08046600 @ =gBaseStats - mov r10, r1 - ldr r5, [sp, 0x20] - mov r8, r0 - mov r6, sp - str r2, [sp, 0x28] - mov r2, r9 - str r2, [sp, 0x2C] -_0804657E: - movs r0, 0x8C - adds r4, r7, 0 - muls r4, r0 - ldr r0, [sp, 0x1C] - adds r4, r0, r4 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x1 - bl GetBoxMonData - ldr r1, [sp, 0x2C] - stm r1!, {r0} - str r1, [sp, 0x2C] - adds r0, r4, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - ldrh r0, [r5] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x28] - stm r2!, {r0} - str r2, [sp, 0x28] - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r10 - ldrb r0, [r0, 0x14] - strh r0, [r6] - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r10 - ldrb r0, [r0, 0x15] - mov r1, r8 - strh r0, [r1] - adds r5, 0x2 - movs r2, 0x4 - add r8, r2 - adds r6, 0x4 - adds r7, 0x1 - cmp r7, 0x1 - bls _0804657E - mov r0, sp - ldrh r1, [r0] - cmp r1, 0xF - beq _080465FC - ldrh r0, [r0, 0x4] - cmp r0, 0xF - beq _080465FC - cmp r1, 0xD - bne _08046604 - cmp r0, 0xD - bne _08046608 -_080465FC: - movs r0, 0 - b _0804665C - .align 2, 0 -_08046600: .4byte gBaseStats -_08046604: - cmp r0, 0xD - bne _08046614 -_08046608: - ldr r1, [sp, 0xC] - mov r2, r9 - ldr r0, [r2, 0x4] - cmp r1, r0 - beq _08046656 - b _0804665A -_08046614: - ldr r0, [sp, 0x14] - ldr r2, [sp, 0x24] - ldr r1, [r2, 0x4] - cmp r0, r1 - beq _080465FC - cmp r0, 0xFF - beq _080465FC - cmp r1, 0xFF - beq _080465FC - add r1, sp, 0x4 - mov r0, sp - bl EggGroupsOverlap - lsls r0, 24 - cmp r0, 0 - beq _080465FC - ldr r0, [sp, 0x20] - ldrh r1, [r0, 0x2] - ldrh r0, [r0] - cmp r0, r1 - bne _0804664C - ldr r1, [sp, 0xC] - mov r2, r9 - ldr r0, [r2, 0x4] - cmp r1, r0 - beq _0804665A - movs r0, 0x46 - b _0804665C -_0804664C: - ldr r1, [sp, 0xC] - mov r2, r9 - ldr r0, [r2, 0x4] - cmp r1, r0 - bne _0804665A -_08046656: - movs r0, 0x14 - b _0804665C -_0804665A: - movs r0, 0x32 -_0804665C: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetDaycareCompatibilityScore - - thumb_func_start GetDaycareCompatibilityScoreFromSave -GetDaycareCompatibilityScoreFromSave: @ 804666C - push {lr} - ldr r0, _08046684 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - bl GetDaycareCompatibilityScore - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08046684: .4byte gSaveBlock1Ptr - thumb_func_end GetDaycareCompatibilityScoreFromSave - - thumb_func_start SetDaycareCompatibilityString -SetDaycareCompatibilityString: @ 8046688 - push {lr} - bl GetDaycareCompatibilityScoreFromSave - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - movs r1, 0 - cmp r0, 0 - bne _0804669C - movs r1, 0x3 -_0804669C: - cmp r0, 0x14 - bne _080466A2 - movs r1, 0x2 -_080466A2: - cmp r0, 0x32 - bne _080466A8 - movs r1, 0x1 -_080466A8: - cmp r2, 0x46 - bne _080466AE - movs r1, 0 -_080466AE: - ldr r0, _080466C0 @ =gStringVar4 - ldr r2, _080466C4 @ =gUnknown_825F82C - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080466C0: .4byte gStringVar4 -_080466C4: .4byte gUnknown_825F82C - thumb_func_end SetDaycareCompatibilityString - - thumb_func_start NameHasGenderSymbol -NameHasGenderSymbol: @ 80466C8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - mov r2, sp - mov r1, sp - movs r0, 0 - strb r0, [r1, 0x1] - strb r0, [r2] - movs r3, 0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _0804670C -_080466E4: - adds r1, r4, r3 - ldrb r0, [r1] - cmp r0, 0xB5 - bne _080466F2 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] -_080466F2: - ldrb r0, [r1] - cmp r0, 0xB6 - bne _080466FE - ldrb r0, [r2, 0x1] - adds r0, 0x1 - strb r0, [r2, 0x1] -_080466FE: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080466E4 -_0804670C: - cmp r5, 0 - bne _08046720 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - beq _08046720 - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08046734 -_08046720: - cmp r5, 0xFE - bne _08046738 - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08046738 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _08046738 -_08046734: - movs r0, 0x1 - b _0804673A -_08046738: - movs r0, 0 -_0804673A: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end NameHasGenderSymbol - - thumb_func_start AppendGenderSymbol -AppendGenderSymbol: @ 8046744 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _08046764 - movs r1, 0 - bl NameHasGenderSymbol - lsls r0, 24 - cmp r0, 0 - bne _08046780 - ldr r1, _08046760 @ =gUnknown_8261EC1 - b _08046782 - .align 2, 0 -_08046760: .4byte gUnknown_8261EC1 -_08046764: - cmp r1, 0xFE - bne _08046780 - adds r0, r4, 0 - movs r1, 0xFE - bl NameHasGenderSymbol - lsls r0, 24 - cmp r0, 0 - bne _08046780 - ldr r1, _0804677C @ =gUnknown_8261EC3 - b _08046782 - .align 2, 0 -_0804677C: .4byte gUnknown_8261EC3 -_08046780: - ldr r1, _08046790 @ =gUnknown_8261EC5 -_08046782: - adds r0, r4, 0 - bl StringAppend - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08046790: .4byte gUnknown_8261EC5 - thumb_func_end AppendGenderSymbol - - thumb_func_start AppendMonGenderSymbol -AppendMonGenderSymbol: @ 8046794 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - bl GetBoxMonGender - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl AppendGenderSymbol - pop {r4} - pop {r1} - bx r1 - thumb_func_end AppendMonGenderSymbol - - thumb_func_start GetDaycareLevelMenuText -GetDaycareLevelMenuText: @ 80467B0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x28 - mov r8, r0 - adds r7, r1, 0 - movs r0, 0xFF - strb r0, [r7] - movs r6, 0 - add r0, sp, 0x14 - mov r9, r0 -_080467C8: - movs r0, 0x8C - adds r4, r6, 0 - muls r4, r0 - add r4, r8 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 2 - mov r1, sp - adds r5, r1, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl GetBoxMonNick - adds r0, r5, 0 - adds r1, r4, 0 - bl AppendMonGenderSymbol - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bls _080467C8 - adds r0, r7, 0 - mov r1, sp - bl StringCopy - ldr r4, _0804682C @ =gUnknown_825F83C - adds r0, r7, 0 - adds r1, r4, 0 - bl StringAppend - adds r0, r7, 0 - mov r1, r9 - bl StringAppend - adds r0, r7, 0 - adds r1, r4, 0 - bl StringAppend - ldr r1, _08046830 @ =gUnknown_84161C8 - adds r0, r7, 0 - bl StringAppend - add sp, 0x28 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804682C: .4byte gUnknown_825F83C -_08046830: .4byte gUnknown_84161C8 - thumb_func_end GetDaycareLevelMenuText - - thumb_func_start GetDaycareLevelMenuLevelText -GetDaycareLevelMenuLevelText: @ 8046834 - push {r4-r6,lr} - sub sp, 0x14 - adds r6, r0, 0 - adds r4, r1, 0 - movs r0, 0xFF - strb r0, [r4] - movs r5, 0 -_08046842: - adds r0, r4, 0 - ldr r1, _08046890 @ =gUnknown_8416223 - bl StringAppend - movs r0, 0x8C - adds r2, r5, 0 - muls r2, r0 - adds r0, r6, r2 - adds r1, r6, 0 - adds r1, 0x88 - adds r1, r2 - ldr r1, [r1] - bl GetLevelAfterDaycareSteps - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - mov r1, sp - bl StringAppend - adds r0, r4, 0 - ldr r1, _08046894 @ =gUnknown_825F83C - bl StringAppend - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _08046842 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08046890: .4byte gUnknown_8416223 -_08046894: .4byte gUnknown_825F83C - thumb_func_end GetDaycareLevelMenuLevelText - - thumb_func_start DaycareAddTextPrinter -DaycareAddTextPrinter: @ 8046898 - push {r4,r5,lr} - sub sp, 0x10 - str r1, [sp] - mov r1, sp - strb r0, [r1, 0x4] - movs r0, 0x3 - strb r0, [r1, 0x5] - mov r0, sp - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - strb r2, [r0, 0x8] - strb r3, [r0, 0x9] - mov r3, sp - ldrb r1, [r3, 0xC] - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - strb r0, [r3, 0xC] - ldr r3, _08046908 @ =gTextFlags - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - mov r0, sp - movs r5, 0x1 - movs r1, 0x1 - strb r1, [r0, 0xA] - strb r1, [r0, 0xB] - mov r3, sp - ldrb r1, [r3, 0xC] - movs r4, 0xF - adds r0, r4, 0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r3, 0xC] - mov r1, sp - ldrb r0, [r1, 0xD] - ands r2, r0 - orrs r2, r5 - strb r2, [r1, 0xD] - ands r2, r4 - movs r0, 0x30 - orrs r2, r0 - strb r2, [r1, 0xD] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046908: .4byte gTextFlags - thumb_func_end DaycareAddTextPrinter - - thumb_func_start DaycarePrintMonNick -DaycarePrintMonNick: @ 804690C - push {r4-r6,lr} - sub sp, 0x14 - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r3, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x8C - muls r0, r2 - adds r5, r0 - adds r0, r5, 0 - mov r1, sp - bl GetBoxMonNick - mov r0, sp - adds r1, r5, 0 - bl AppendMonGenderSymbol - adds r0, r4, 0 - mov r1, sp - movs r2, 0x8 - adds r3, r6, 0 - bl DaycareAddTextPrinter - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end DaycarePrintMonNick - - thumb_func_start DaycarePrintMonLvl -DaycarePrintMonLvl: @ 8046944 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080469B0 @ =gUnknown_8416223 - mov r0, sp - bl strcpy - movs r0, 0x8C - adds r1, r6, 0 - muls r1, r0 - adds r0, r4, r1 - adds r4, 0x88 - adds r4, r1 - ldr r1, [r4] - bl GetLevelAfterDaycareSteps - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - add r4, sp, 0xC - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r0, sp - adds r1, r4, 0 - bl StringAppend - movs r0, 0x3 - mov r1, sp - movs r2, 0 - bl GetStringWidth - movs r2, 0x84 - subs r2, r0 - adds r0, r5, 0 - mov r1, sp - mov r3, r8 - bl DaycareAddTextPrinter - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080469B0: .4byte gUnknown_8416223 - thumb_func_end DaycarePrintMonLvl - - thumb_func_start DaycarePrintMonInfo -DaycarePrintMonInfo: @ 80469B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, 24 - lsrs r5, r2, 24 - cmp r6, 0x1 - bhi _080469EE - ldr r0, _080469F8 @ =gSaveBlock1Ptr - mov r8, r0 - ldr r0, [r0] - movs r4, 0xBE - lsls r4, 6 - adds r0, r4 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl DaycarePrintMonNick - mov r1, r8 - ldr r0, [r1] - adds r0, r4 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl DaycarePrintMonLvl -_080469EE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080469F8: .4byte gSaveBlock1Ptr - thumb_func_end DaycarePrintMonInfo - - thumb_func_start Task_HandleDaycareLevelMenuInput -Task_HandleDaycareLevelMenuInput: @ 80469FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _08046A2C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrb r0, [r4, 0x8] - bl ListMenuHandleInput - adds r1, r0, 0 - ldr r0, _08046A30 @ =gMain - ldrh r2, [r0, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _08046A7C - cmp r1, 0x1 - bls _08046A34 - cmp r1, 0x5 - beq _08046A40 - b _08046A46 - .align 2, 0 -_08046A2C: .4byte gTasks -_08046A30: .4byte gMain -_08046A34: - ldr r0, _08046A3C @ =gSpecialVar_Result - strh r1, [r0] - b _08046A46 - .align 2, 0 -_08046A3C: .4byte gSpecialVar_Result -_08046A40: - ldr r1, _08046A74 @ =gSpecialVar_Result - movs r0, 0x2 - strh r0, [r1] -_08046A46: - ldr r0, _08046A78 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - movs r1, 0 - movs r2, 0 - bl sub_810713C - ldrb r0, [r4, 0xA] - movs r1, 0x1 - bl sub_80F6F9C - ldrb r0, [r4, 0xA] - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts - b _08046AAC - .align 2, 0 -_08046A74: .4byte gSpecialVar_Result -_08046A78: .4byte gTasks -_08046A7C: - movs r1, 0x2 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _08046AAC - ldr r0, _08046AB4 @ =gSpecialVar_Result - strh r1, [r0] - ldrb r0, [r4, 0x8] - movs r1, 0 - movs r2, 0 - bl sub_810713C - ldrb r0, [r4, 0xA] - movs r1, 0x1 - bl sub_80F6F9C - ldrb r0, [r4, 0xA] - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts -_08046AAC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046AB4: .4byte gSpecialVar_Result - thumb_func_end Task_HandleDaycareLevelMenuInput - - thumb_func_start ShowDaycareLevelMenu -ShowDaycareLevelMenu: @ 8046AB8 - push {r4,r5,lr} - sub sp, 0x18 - ldr r0, _08046B18 @ =gUnknown_825F7F4 - bl AddWindow - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl sub_80F6F1C - mov r1, sp - ldr r0, _08046B1C @ =gUnknown_825F814 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - strb r4, [r0, 0x10] - movs r1, 0 - movs r2, 0 - bl ListMenuInit - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _08046B20 @ =Task_HandleDaycareLevelMenuInput - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08046B24 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - strh r4, [r1, 0xA] - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046B18: .4byte gUnknown_825F7F4 -_08046B1C: .4byte gUnknown_825F814 -_08046B20: .4byte Task_HandleDaycareLevelMenuInput -_08046B24: .4byte gTasks - thumb_func_end ShowDaycareLevelMenu - - thumb_func_start ChooseSendDaycareMon -ChooseSendDaycareMon: @ 8046B28 - push {lr} - bl sub_8128370 - ldr r1, _08046B38 @ =gMain - ldr r0, _08046B3C @ =c2_exit_to_overworld_2_switch - str r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_08046B38: .4byte gMain -_08046B3C: .4byte c2_exit_to_overworld_2_switch - thumb_func_end ChooseSendDaycareMon - - thumb_func_start sub_8046B40 -sub_8046B40: @ 8046B40 - push {lr} - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _08046B64 @ =gPlayerParty - adds r0, r1 - ldr r1, _08046B68 @ =gSaveBlock1Ptr - ldr r1, [r1] - ldr r2, _08046B6C @ =0x00003c98 - adds r1, r2 - bl StorePokemonInDaycare - pop {r0} - bx r0 - .align 2, 0 -_08046B64: .4byte gPlayerParty -_08046B68: .4byte gSaveBlock1Ptr -_08046B6C: .4byte 0x00003c98 - thumb_func_end sub_8046B40 - - thumb_func_start sub_8046B70 -sub_8046B70: @ 8046B70 - push {lr} - ldr r0, _08046B88 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08046B8C @ =0x00003c98 - adds r0, r1 - bl GetDaycareCostForSelectedMon - ldr r1, _08046B90 @ =gSpecialVar_0x8005 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08046B88: .4byte gSaveBlock1Ptr -_08046B8C: .4byte 0x00003c98 -_08046B90: .4byte gSpecialVar_0x8005 - thumb_func_end sub_8046B70 - - thumb_func_start sub_8046B94 -sub_8046B94: @ 8046B94 - push {lr} - ldr r0, _08046BAC @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08046BB0 @ =0x00003c98 - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08046BB4 - movs r0, 0 - b _08046BB6 - .align 2, 0 -_08046BAC: .4byte gSaveBlock1Ptr -_08046BB0: .4byte 0x00003c98 -_08046BB4: - movs r0, 0x1 -_08046BB6: - pop {r1} - bx r1 - thumb_func_end sub_8046B94 - - thumb_func_start sub_8046BBC -sub_8046BBC: @ 8046BBC - push {lr} - ldr r0, _08046BD4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08046BD8 @ =0x00003c98 - adds r0, r1 - bl GetNumLevelsGainedForDaycareMon - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08046BD4: .4byte gSaveBlock1Ptr -_08046BD8: .4byte 0x00003c98 - thumb_func_end sub_8046BBC - - thumb_func_start sub_8046BDC -sub_8046BDC: @ 8046BDC - push {lr} - ldr r0, _08046BF4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08046BF8 @ =0x00003c98 - adds r0, r1 - bl TakeSelectedPokemonFromDaycare - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_08046BF4: .4byte gSaveBlock1Ptr -_08046BF8: .4byte 0x00003c98 - thumb_func_end sub_8046BDC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/decompress.s b/asm/decompress.s index 8c213a8d1..cc38e0df5 100644 --- a/asm/decompress.s +++ b/asm/decompress.s @@ -132,12 +132,12 @@ DecompressPicFromTable: @ 800EC8C lsls r0, 1 cmp r5, r0 ble _0800ECAC - ldr r0, _0800ECA8 @ =gUnknown_82350AC + ldr r0, _0800ECA8 @ =gMonFrontPicTable ldr r0, [r0] bl LZ77UnCompWram b _0800ECB4 .align 2, 0 -_0800ECA8: .4byte gUnknown_82350AC +_0800ECA8: .4byte gMonFrontPicTable _0800ECAC: ldr r0, [r3] adds r1, r4, 0 @@ -158,7 +158,7 @@ sub_800ECC4: @ 800ECC4 adds r4, r0, 0 adds r5, r1, 0 lsls r0, r2, 3 - ldr r1, _0800ECEC @ =gUnknown_82350AC + ldr r1, _0800ECEC @ =gMonFrontPicTable adds r0, r1 movs r1, 0 cmp r4, r0 @@ -168,17 +168,17 @@ _0800ECDA: str r1, [sp] adds r0, r4, 0 adds r1, r5, 0 - bl sub_800ECF0 + bl LoadSpecialPokePic add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0800ECEC: .4byte gUnknown_82350AC +_0800ECEC: .4byte gMonFrontPicTable thumb_func_end sub_800ECC4 - thumb_func_start sub_800ECF0 -sub_800ECF0: @ 800ECF0 + thumb_func_start LoadSpecialPokePic +LoadSpecialPokePic: @ 800ECF0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -227,34 +227,34 @@ _0800ED48: mov r0, r8 cmp r0, 0 bne _0800ED5C - ldr r0, _0800ED58 @ =gUnknown_823654C + ldr r0, _0800ED58 @ =gMonBackPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800ED78 .align 2, 0 -_0800ED58: .4byte gUnknown_823654C +_0800ED58: .4byte gMonBackPicTable _0800ED5C: - ldr r0, _0800ED68 @ =gUnknown_82350AC + ldr r0, _0800ED68 @ =gMonFrontPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800ED78 .align 2, 0 -_0800ED68: .4byte gUnknown_82350AC +_0800ED68: .4byte gMonFrontPicTable _0800ED6C: movs r0, 0xCE lsls r0, 1 cmp r7, r0 ble _0800ED84 - ldr r0, _0800ED80 @ =gUnknown_82350AC + ldr r0, _0800ED80 @ =gMonFrontPicTable ldr r0, [r0] _0800ED78: adds r1, r4, 0 bl LZ77UnCompWram b _0800ED8C .align 2, 0 -_0800ED80: .4byte gUnknown_82350AC +_0800ED80: .4byte gMonFrontPicTable _0800ED84: ldr r0, [r6] adds r1, r4, 0 @@ -274,7 +274,7 @@ _0800ED8C: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_800ECF0 + thumb_func_end LoadSpecialPokePic thumb_func_start sub_800EDAC sub_800EDAC: @ 800EDAC @@ -722,8 +722,8 @@ _0800F0BA: bx r1 thumb_func_end sub_800F078 - thumb_func_start sub_800F0C4 -sub_800F0C4: @ 800F0C4 + thumb_func_start GetDecompressedDataSize +GetDecompressedDataSize: @ 800F0C4 sub sp, 0x4 mov r3, sp ldrb r2, [r0, 0x1] @@ -738,7 +738,7 @@ sub_800F0C4: @ 800F0C4 ldr r0, [sp] add sp, 0x4 bx lr - thumb_func_end sub_800F0C4 + thumb_func_end GetDecompressedDataSize thumb_func_start DecompressPicFromTable_DontHandleDeoxys DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0 @@ -748,12 +748,12 @@ DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0 lsls r0, 1 cmp r2, r0 ble _0800F0FC - ldr r0, _0800F0F8 @ =gUnknown_82350AC + ldr r0, _0800F0F8 @ =gMonFrontPicTable ldr r0, [r0] bl LZ77UnCompWram b _0800F102 .align 2, 0 -_0800F0F8: .4byte gUnknown_82350AC +_0800F0F8: .4byte gMonFrontPicTable _0800F0FC: ldr r0, [r3] bl LZ77UnCompWram @@ -769,7 +769,7 @@ HandleLoadSpecialPokePic_DontHandleDeoxys: @ 800F108 adds r4, r0, 0 adds r5, r1, 0 lsls r0, r2, 3 - ldr r1, _0800F130 @ =gUnknown_82350AC + ldr r1, _0800F130 @ =gMonFrontPicTable adds r0, r1 movs r1, 0 cmp r4, r0 @@ -785,7 +785,7 @@ _0800F11E: pop {r0} bx r0 .align 2, 0 -_0800F130: .4byte gUnknown_82350AC +_0800F130: .4byte gMonFrontPicTable thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys thumb_func_start LoadSpecialPokePic_DontHandleDeoxys @@ -838,34 +838,34 @@ _0800F18C: mov r0, r8 cmp r0, 0 bne _0800F1A0 - ldr r0, _0800F19C @ =gUnknown_823654C + ldr r0, _0800F19C @ =gMonBackPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800F1BC .align 2, 0 -_0800F19C: .4byte gUnknown_823654C +_0800F19C: .4byte gMonBackPicTable _0800F1A0: - ldr r0, _0800F1AC @ =gUnknown_82350AC + ldr r0, _0800F1AC @ =gMonFrontPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800F1BC .align 2, 0 -_0800F1AC: .4byte gUnknown_82350AC +_0800F1AC: .4byte gMonFrontPicTable _0800F1B0: movs r0, 0xCE lsls r0, 1 cmp r7, r0 ble _0800F1C8 - ldr r0, _0800F1C4 @ =gUnknown_82350AC + ldr r0, _0800F1C4 @ =gMonFrontPicTable ldr r0, [r0] _0800F1BC: adds r1, r5, 0 bl LZ77UnCompWram b _0800F1D0 .align 2, 0 -_0800F1C4: .4byte gUnknown_82350AC +_0800F1C4: .4byte gMonFrontPicTable _0800F1C8: ldr r0, [r6] adds r1, r5, 0 diff --git a/asm/diploma.s b/asm/diploma.s index d0b652619..cfc70d694 100644 --- a/asm/diploma.s +++ b/asm/diploma.s @@ -279,7 +279,7 @@ sub_80F4E24: @ 80F4E24 bl ResetPaletteFade bl FreeAllSpritePalettes bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_80F4E24 @@ -559,7 +559,7 @@ _080F5050: movs r0, 0 movs r1, 0x2 movs r3, 0x4 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, _080F50EC @ =gUnknown_841B619 add r0, sp, 0xC bl UnkTextUtil_StringExpandPlaceholders @@ -579,7 +579,7 @@ _080F5050: movs r1, 0x2 adds r2, r4, 0 movs r3, 0x1E - bl box_print + bl AddTextPrinterParameterized3 str r6, [sp] movs r0, 0 str r0, [sp, 0x4] @@ -589,7 +589,7 @@ _080F5050: movs r1, 0x2 movs r2, 0x78 movs r3, 0x69 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 bl PutWindowTilemap add sp, 0xAC diff --git a/asm/unk_81507FC.s b/asm/dodrio_berry_picking.s similarity index 99% rename from asm/unk_81507FC.s rename to asm/dodrio_berry_picking.s index 0118eff4b..160208493 100644 --- a/asm/unk_81507FC.s +++ b/asm/dodrio_berry_picking.s @@ -6240,7 +6240,7 @@ _08153754: .4byte gUnknown_203F3E0 _08153758: adds r0, r5, 0 movs r1, 0x1 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _0815376A @@ -6249,10 +6249,10 @@ _08153758: _0815376A: adds r0, r6, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem adds r0, r6, 0 movs r1, 0x1 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _08153784 @@ -6474,11 +6474,11 @@ sub_81538D0: @ 81538D0 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter adds r0, r7, 0 movs r1, 0x11 bl FillWindowPixelBuffer @@ -8351,7 +8351,7 @@ sub_8154720: @ 8154720 movs r0, 0 movs r1, 0xA movs r2, 0xB0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal pop {r0} bx r0 thumb_func_end sub_8154720 @@ -9014,7 +9014,7 @@ _08154C4E: str r4, [sp, 0x8] movs r1, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r10 ldr r0, [r2] add r0, r9 @@ -9319,7 +9319,7 @@ _08154EC8: movs r1, 0 movs r2, 0x1C adds r3, r6, 0 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC mov r1, r9 movs r2, 0x1 @@ -9563,7 +9563,7 @@ _081550EA: str r6, [sp, 0x8] movs r1, 0 movs r2, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r7, 0 mov r0, r9 adds r0, 0x1 @@ -9624,7 +9624,7 @@ _0815512E: add r1, sp, 0xC str r1, [sp, 0x8] movs r1, 0 - bl box_print + bl AddTextPrinterParameterized3 b _081551FA .align 2, 0 _081551A8: .4byte gUnknown_203F440 @@ -9989,7 +9989,7 @@ _08155480: lsrs r0, 16 add r5, sp, 0x70 adds r1, r5, 0 - bl sub_8099E90 + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl UnkTextUtil_SetPtrI @@ -10021,7 +10021,7 @@ _08155480: lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 - bl sub_8099E90 + bl CopyItemName movs r0, 0 adds r1, r5, 0 bl UnkTextUtil_SetPtrI @@ -10657,7 +10657,7 @@ _08155A9C: _08155AA6: movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _08155ACC @ =gUnknown_8419F54 str r4, [sp] movs r0, 0x2 @@ -10669,7 +10669,7 @@ _08155AA6: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _08155B08 .align 2, 0 _08155ACC: .4byte gUnknown_8419F54 @@ -11276,8 +11276,8 @@ _08155EC6: movs r1, 0 movs r2, 0 bl ChangeBgY - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 movs r1, 0x82 lsls r1, 5 movs r0, 0 diff --git a/asm/dodrio_berry_picking_2.s b/asm/dodrio_berry_picking_2.s new file mode 100644 index 000000000..792dc4b0f --- /dev/null +++ b/asm/dodrio_berry_picking_2.s @@ -0,0 +1,734 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_815A61C +sub_815A61C: @ 815A61C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r4, [sp, 0x48] + lsls r4, 24 + str r4, [sp, 0x1C] + movs r4, 0x14 + adds r4, r0 + mov r9, r4 + mov r5, sp + movs r4, 0x2 + strb r4, [r5] + mov r10, sp + mov r5, r9 + ldrb r4, [r5, 0xB] + movs r7, 0xF + adds r5, r7, 0 + ands r5, r4 + mov r6, r10 + ldrb r6, [r6, 0x1] + mov r8, r6 + movs r4, 0x10 + negs r4, r4 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, r10 + strb r4, [r5, 0x1] + mov r8, sp + mov r6, r9 + ldrb r5, [r6, 0xC] + lsls r5, 4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, 0x1] + ldrb r5, [r6, 0xD] + movs r6, 0xF + ands r5, r6 + mov r4, r10 + ldrb r4, [r4, 0x2] + mov r8, r4 + movs r4, 0x10 + negs r4, r4 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, r10 + strb r4, [r5, 0x2] + mov r8, sp + mov r6, r9 + ldrb r5, [r6, 0xE] + lsls r5, 4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, 0x2] + ldrb r5, [r6, 0xF] + movs r6, 0xF + ands r5, r6 + mov r4, r10 + ldrb r4, [r4, 0x3] + mov r8, r4 + movs r4, 0x10 + negs r4, r4 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, r10 + strb r4, [r5, 0x3] + mov r8, sp + mov r6, r9 + ldrb r5, [r6, 0x10] + lsls r5, 4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, 0x3] + ldrb r5, [r6, 0x11] + movs r6, 0xF + ands r5, r6 + mov r4, r10 + ldrb r4, [r4, 0x4] + mov r8, r4 + movs r4, 0x10 + negs r4, r4 + mov r6, r8 + ands r4, r6 + orrs r4, r5 + mov r5, r10 + strb r4, [r5, 0x4] + mov r8, sp + mov r6, r9 + ldrb r5, [r6, 0x12] + lsls r5, 4 + ands r4, r7 + orrs r4, r5 + mov r5, r8 + strb r4, [r5, 0x4] + ldrb r4, [r6, 0x13] + movs r6, 0xF + ands r4, r6 + mov r6, r8 + ldrb r5, [r6, 0x5] + movs r6, 0x10 + negs r6, r6 + ands r6, r5 + orrs r6, r4 + str r6, [sp, 0xC] + mov r4, r8 + strb r6, [r4, 0x5] + mov r5, sp + mov r6, r9 + ldrb r4, [r6, 0x14] + lsls r4, 4 + ldr r6, [sp, 0xC] + ands r6, r7 + orrs r6, r4 + strb r6, [r5, 0x5] + mov r7, sp + movs r4, 0x3 + mov r8, r4 + ldrb r0, [r0, 0x14] + mov r5, r8 + ands r0, r5 + ldrb r5, [r7, 0x6] + movs r6, 0x4 + negs r6, r6 + mov r10, r6 + mov r4, r10 + ands r4, r5 + orrs r4, r0 + strb r4, [r7, 0x6] + mov r5, r9 + ldrb r0, [r5, 0x1] + mov r6, r8 + ands r0, r6 + lsls r0, 2 + movs r5, 0xD + negs r5, r5 + ands r5, r4 + orrs r5, r0 + strb r5, [r7, 0x6] + mov r0, r9 + ldrb r4, [r0, 0x2] + ands r4, r6 + lsls r4, 4 + movs r0, 0x31 + negs r0, r0 + ands r0, r5 + orrs r0, r4 + strb r0, [r7, 0x6] + mov r5, sp + mov r6, r9 + ldrb r4, [r6, 0x3] + lsls r4, 6 + movs r6, 0x3F + ands r0, r6 + orrs r0, r4 + strb r0, [r5, 0x6] + mov r4, r9 + ldrb r0, [r4, 0x4] + mov r5, r8 + ands r0, r5 + ldrb r5, [r7, 0x7] + mov r4, r10 + ands r4, r5 + orrs r4, r0 + strb r4, [r7, 0x7] + mov r6, r9 + ldrb r0, [r6, 0x5] + mov r5, r8 + ands r0, r5 + lsls r0, 2 + movs r5, 0xD + negs r5, r5 + ands r5, r4 + orrs r5, r0 + strb r5, [r7, 0x7] + ldrb r4, [r6, 0x6] + mov r6, r8 + ands r4, r6 + lsls r4, 4 + movs r0, 0x31 + negs r0, r0 + ands r0, r5 + orrs r0, r4 + strb r0, [r7, 0x7] + mov r5, sp + mov r6, r9 + ldrb r4, [r6, 0x7] + lsls r4, 6 + movs r6, 0x3F + ands r0, r6 + orrs r0, r4 + strb r0, [r5, 0x7] + mov r8, sp + mov r0, r9 + ldrb r4, [r0, 0x8] + movs r7, 0x3 + adds r0, r7, 0 + ands r0, r4 + mov r4, r8 + ldrb r5, [r4, 0x8] + mov r4, r10 + ands r4, r5 + orrs r4, r0 + mov r5, r8 + strb r4, [r5, 0x8] + mov r6, r9 + ldrb r5, [r6, 0x9] + adds r0, r7, 0 + ands r0, r5 + lsls r0, 2 + movs r5, 0xD + negs r5, r5 + ands r5, r4 + orrs r5, r0 + mov r0, r8 + strb r5, [r0, 0x8] + ldrb r0, [r1] + adds r4, r7, 0 + ands r4, r0 + lsls r4, 4 + movs r0, 0x31 + negs r0, r0 + ands r0, r5 + orrs r0, r4 + mov r4, r8 + strb r0, [r4, 0x8] + mov r5, sp + ldrb r4, [r2] + lsls r4, 6 + movs r6, 0x3F + ands r0, r6 + orrs r0, r4 + strb r0, [r5, 0x8] + ldrb r4, [r3] + adds r0, r7, 0 + ands r0, r4 + ldrb r4, [r5, 0x9] + mov r6, r10 + ands r6, r4 + orrs r6, r0 + mov r10, r6 + strb r6, [r5, 0x9] + ldr r0, [sp, 0x40] + ldrb r4, [r0] + adds r0, r7, 0 + ands r0, r4 + lsls r0, 2 + movs r4, 0xD + negs r4, r4 + ands r6, r4 + orrs r6, r0 + str r6, [sp, 0x10] + strb r6, [r5, 0x9] + mov r4, sp + ldr r5, [sp, 0x44] + ldrb r0, [r5] + adds r6, r7, 0 + ands r6, r0 + lsls r0, r6, 4 + subs r7, 0x34 + ldr r5, [sp, 0x10] + ands r7, r5 + orrs r7, r0 + strb r7, [r4, 0x9] + mov r5, sp + ldrb r0, [r1, 0x4] + movs r6, 0x1 + mov r12, r6 + mov r4, r12 + ands r4, r0 + lsls r4, 6 + movs r0, 0x41 + negs r0, r0 + mov r10, r0 + ands r0, r7 + orrs r0, r4 + strb r0, [r5, 0x9] + ldrb r4, [r2, 0x4] + lsls r4, 7 + movs r5, 0x7F + ands r0, r5 + orrs r0, r4 + mov r4, r8 + strb r0, [r4, 0x9] + ldrb r4, [r3, 0x4] + mov r0, r12 + ands r0, r4 + mov r5, r8 + ldrb r4, [r5, 0xA] + movs r7, 0x2 + negs r7, r7 + adds r5, r7, 0 + ands r5, r4 + orrs r5, r0 + mov r6, r8 + strb r5, [r6, 0xA] + mov r9, sp + ldr r4, [sp, 0x40] + ldrb r0, [r4, 0x4] + mov r4, r12 + ands r4, r0 + lsls r4, 1 + movs r6, 0x3 + negs r6, r6 + mov r8, r6 + mov r0, r8 + ands r0, r5 + orrs r0, r4 + mov r4, r9 + strb r0, [r4, 0xA] + ldr r6, [sp, 0x44] + ldrb r5, [r6, 0x4] + mov r4, r12 + ands r4, r5 + lsls r4, 2 + movs r5, 0x5 + negs r5, r5 + ands r0, r5 + orrs r0, r4 + mov r4, r9 + strb r0, [r4, 0xA] + mov r4, sp + ldrb r1, [r1, 0x8] + mov r0, r12 + ands r0, r1 + lsls r0, 2 + ldrb r1, [r4, 0xB] + ands r5, r1 + orrs r5, r0 + strb r5, [r4, 0xB] + ldrb r1, [r2, 0x8] + mov r0, r12 + ands r0, r1 + lsls r0, 3 + movs r1, 0x9 + negs r1, r1 + ands r1, r5 + orrs r1, r0 + strb r1, [r4, 0xB] + ldrb r2, [r3, 0x8] + mov r0, r12 + ands r0, r2 + lsls r0, 4 + movs r2, 0x11 + negs r2, r2 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, 0xB] + mov r3, sp + ldr r5, [sp, 0x40] + ldrb r0, [r5, 0x8] + mov r1, r12 + ands r1, r0 + lsls r1, 5 + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0xB] + mov r2, sp + ldrb r1, [r6, 0x8] + mov r6, r12 + ands r6, r1 + lsls r1, r6, 6 + mov r3, r10 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0xB] + ldr r4, [sp, 0x1C] + lsrs r3, r4, 21 + ldrb r1, [r2, 0xA] + movs r0, 0x7 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0xA] + mov r1, sp + ldr r5, [sp, 0x4C] + movs r6, 0x1 + ands r5, r6 + lsls r2, r5, 1 + ldrb r0, [r1, 0xB] + mov r3, r8 + ands r3, r0 + orrs r3, r2 + mov r8, r3 + strb r3, [r1, 0xB] + mov r0, sp + ldr r4, [sp, 0x50] + ands r4, r6 + mov r5, r8 + ands r5, r7 + orrs r5, r4 + strb r5, [r0, 0xB] + bl sub_80F9E2C + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_815A61C + + thumb_func_start sub_815A950 +sub_815A950: @ 815A950 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r0, [sp, 0x1C] + mov r12, r0 + ldr r1, [sp, 0x20] + mov r8, r1 + ldr r0, [sp, 0x24] + mov r9, r0 + adds r2, r7, 0 + adds r2, 0x14 + ldr r4, _0815A98C @ =gRecvCmds + ldrh r0, [r4] + movs r1, 0xFF + lsls r1, 8 + ands r1, r0 + movs r0, 0xBC + lsls r0, 6 + cmp r1, r0 + bne _0815A988 + adds r3, r4, 0x2 + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _0815A990 +_0815A988: + movs r0, 0 + b _0815AACA + .align 2, 0 +_0815A98C: .4byte gRecvCmds +_0815A990: + ldrb r0, [r3, 0x1] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0xB] + ldrb r0, [r3, 0x1] + lsrs r0, 4 + strb r0, [r2, 0xC] + ldrb r0, [r3, 0x2] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0xD] + ldrb r0, [r3, 0x2] + lsrs r0, 4 + strb r0, [r2, 0xE] + ldrb r0, [r3, 0x3] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0xF] + ldrb r0, [r3, 0x3] + lsrs r0, 4 + strb r0, [r2, 0x10] + ldrb r0, [r3, 0x4] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0x11] + ldrb r0, [r3, 0x4] + lsrs r0, 4 + strb r0, [r2, 0x12] + ldrb r0, [r3, 0x5] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0x13] + ldrb r0, [r3, 0x5] + lsrs r0, 4 + strb r0, [r2, 0x14] + ldrb r0, [r3, 0x1] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r2, 0x15] + ldrb r0, [r3, 0x6] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r7, 0x14] + ldrb r0, [r3, 0x6] + lsls r0, 28 + lsrs r0, 30 + strb r0, [r2, 0x1] + ldrb r0, [r3, 0x6] + lsls r0, 26 + lsrs r0, 30 + strb r0, [r2, 0x2] + ldrb r0, [r3, 0x6] + lsrs r0, 6 + strb r0, [r2, 0x3] + ldrb r0, [r3, 0x7] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r2, 0x4] + ldrb r0, [r3, 0x7] + lsls r0, 28 + lsrs r0, 30 + strb r0, [r2, 0x5] + ldrb r0, [r3, 0x7] + lsls r0, 26 + lsrs r0, 30 + strb r0, [r2, 0x6] + ldrb r0, [r3, 0x7] + lsrs r0, 6 + strb r0, [r2, 0x7] + ldrb r0, [r3, 0x8] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r2, 0x8] + ldrb r0, [r3, 0x8] + lsls r0, 28 + lsrs r0, 30 + strb r0, [r2, 0x9] + ldrb r0, [r3, 0x6] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r2, 0xA] + ldrb r0, [r3, 0x8] + lsls r0, 26 + lsrs r0, 30 + strb r0, [r5] + ldrb r0, [r3, 0x9] + lsls r0, 25 + lsrs r0, 31 + strb r0, [r5, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 29 + lsrs r0, 31 + strb r0, [r5, 0x8] + ldrb r0, [r3, 0x8] + lsrs r0, 6 + strb r0, [r6] + ldrb r0, [r3, 0x9] + lsrs r0, 7 + strb r0, [r6, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 28 + lsrs r0, 31 + strb r0, [r6, 0x8] + ldrb r0, [r3, 0x9] + lsls r0, 30 + lsrs r0, 30 + mov r1, r12 + strb r0, [r1] + ldrb r0, [r3, 0xA] + lsls r0, 31 + lsrs r0, 31 + strb r0, [r1, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 27 + lsrs r0, 31 + strb r0, [r1, 0x8] + ldrb r0, [r3, 0x9] + lsls r0, 28 + lsrs r0, 30 + mov r1, r8 + strb r0, [r1] + ldrb r0, [r3, 0xA] + lsls r0, 30 + lsrs r0, 31 + strb r0, [r1, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 26 + lsrs r0, 31 + strb r0, [r1, 0x8] + ldrb r0, [r3, 0x9] + lsls r0, 26 + lsrs r0, 30 + mov r1, r9 + strb r0, [r1] + ldrb r0, [r3, 0xA] + lsls r0, 29 + lsrs r0, 31 + strb r0, [r1, 0x4] + ldrb r0, [r3, 0xB] + lsls r0, 25 + lsrs r0, 31 + strb r0, [r1, 0x8] + ldrb r0, [r3, 0xA] + lsrs r0, 3 + ldr r1, [sp, 0x28] + strb r0, [r1] + ldrb r0, [r3, 0xB] + lsls r0, 30 + lsrs r0, 31 + ldr r1, [sp, 0x2C] + str r0, [r1] + ldrb r0, [r3, 0xB] + lsls r0, 31 + lsrs r0, 31 + ldr r1, [sp, 0x30] + str r0, [r1] + movs r0, 0x1 +_0815AACA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_815A950 + + thumb_func_start sub_815AAD8 +sub_815AAD8: @ 815AAD8 + push {lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0815AB00 @ =0xffffff00 + ldr r1, [sp] + ands r1, r3 + movs r2, 0x3 + orrs r1, r2 + str r1, [sp] + ldr r1, [sp, 0x4] + ands r1, r3 + orrs r1, r0 + str r1, [sp, 0x4] + mov r0, sp + bl sub_80F9E2C + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_0815AB00: .4byte 0xffffff00 + thumb_func_end sub_815AAD8 + + thumb_func_start sub_815AB04 +sub_815AB04: @ 815AB04 + push {r4,lr} + adds r2, r0, 0 + adds r4, r1, 0 + ldr r3, _0815AB2C @ =gRecvCmds + ldrh r0, [r3] + movs r1, 0xFF + lsls r1, 8 + ands r1, r0 + movs r0, 0xBC + lsls r0, 6 + cmp r1, r0 + bne _0815AB28 + lsls r0, r2, 4 + adds r1, r3, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0x3 + beq _0815AB30 +_0815AB28: + movs r0, 0 + b _0815AB36 + .align 2, 0 +_0815AB2C: .4byte gRecvCmds +_0815AB30: + ldrb r0, [r1, 0x4] + strb r0, [r4] + movs r0, 0x1 +_0815AB36: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_815AB04 + + thumb_func_start sub_815AB3C +sub_815AB3C: @ 815AB3C + push {lr} + sub sp, 0x8 + ldr r2, _0815AB5C @ =0xffffff00 + ldr r1, [sp] + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + str r1, [sp] + str r0, [sp, 0x4] + mov r0, sp + bl sub_80F9E2C + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_0815AB5C: .4byte 0xffffff00 + thumb_func_end sub_815AB3C + + thumb_func_start sub_815AB60 +sub_815AB60: @ 815AB60 + push {lr} + adds r2, r0, 0 + ldr r3, _0815AB88 @ =gRecvCmds + ldrh r0, [r3] + movs r1, 0xFF + lsls r1, 8 + ands r1, r0 + movs r0, 0xBC + lsls r0, 6 + cmp r1, r0 + bne _0815AB82 + lsls r0, r2, 4 + adds r1, r3, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0x4 + beq _0815AB8C +_0815AB82: + movs r0, 0 + b _0815AB8E + .align 2, 0 +_0815AB88: .4byte gRecvCmds +_0815AB8C: + ldr r0, [r1, 0x4] +_0815AB8E: + pop {r1} + bx r1 + thumb_func_end sub_815AB60 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/dragon.s b/asm/dragon.s new file mode 100644 index 000000000..66e76017a --- /dev/null +++ b/asm/dragon.s @@ -0,0 +1,835 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B725C +sub_80B725C: @ 80B725C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B72A4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B72AC + ldr r2, _080B72A8 @ =gBattleAnimArgs + ldrh r0, [r5, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r2, 0x6] + negs r0, r0 + strh r0, [r2, 0x6] + ldrh r0, [r2, 0x8] + negs r0, r0 + strh r0, [r2, 0x8] + adds r1, r2, 0 + b _080B72B6 + .align 2, 0 +_080B72A4: .4byte gBattleAnimAttacker +_080B72A8: .4byte gBattleAnimArgs +_080B72AC: + ldr r1, _080B72EC @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] +_080B72B6: + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x38] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080B72F0 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B72F4 @ =sub_8074E70 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B72EC: .4byte gBattleAnimArgs +_080B72F0: .4byte move_anim_8074EE0 +_080B72F4: .4byte sub_8074E70 + thumb_func_end sub_80B725C + + thumb_func_start sub_80B72F8 +sub_80B72F8: @ 80B72F8 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8074FCC + ldr r4, _080B7350 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080B7354 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B735C + ldr r2, _080B7358 @ =gBattleAnimArgs + ldrh r0, [r5, 0x20] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r1, r0 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x32] + ldrh r1, [r2, 0x4] + subs r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r2, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + b _080B7386 + .align 2, 0 +_080B7350: .4byte gBattleAnimTarget +_080B7354: .4byte gBattleAnimAttacker +_080B7358: .4byte gBattleAnimArgs +_080B735C: + ldr r1, _080B73A0 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080B7386: + ldr r0, _080B73A0 @ =gBattleAnimArgs + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080B73A4 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080B73A8 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B73A0: .4byte gBattleAnimArgs +_080B73A4: .4byte sub_8075590 +_080B73A8: .4byte move_anim_8074EE0 + thumb_func_end sub_80B72F8 + + thumb_func_start sub_80B73AC +sub_80B73AC: @ 80B73AC + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B73C0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B73C8 + ldr r4, _080B73C4 @ =gBattleAnimAttacker + b _080B73CA + .align 2, 0 +_080B73C0: .4byte gBattleAnimArgs +_080B73C4: .4byte gBattleAnimAttacker +_080B73C8: + ldr r4, _080B740C @ =gBattleAnimTarget +_080B73CA: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080B7410 @ =gBattleAnimArgs + movs r0, 0x2 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_8074FF8 + ldrh r0, [r4, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + ldr r0, _080B7414 @ =sub_8074F6C + str r0, [r5, 0x1C] + ldr r1, _080B7418 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B740C: .4byte gBattleAnimTarget +_080B7410: .4byte gBattleAnimArgs +_080B7414: .4byte sub_8074F6C +_080B7418: .4byte move_anim_8074EE0 + thumb_func_end sub_80B73AC + + thumb_func_start sub_80B741C +sub_80B741C: @ 80B741C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B7444 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B7436 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080B7436: + adds r0, r4, 0 + bl sub_80B72F8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7444: .4byte gBattleAnimAttacker + thumb_func_end sub_80B741C + + thumb_func_start sub_80B7448 +sub_80B7448: @ 80B7448 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r4, _080B749C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r6, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x22] + strh r5, [r6, 0x36] + movs r0, 0x1 + strh r0, [r6, 0x38] + ldr r0, _080B74A0 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r6, 0x3A] + ldr r4, _080B74A4 @ =sBattler_AI + ldrb r0, [r4] + movs r1, 0 + bl sub_8076B2C + lsls r7, r0, 16 + lsrs r5, r7, 16 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8076B2C + lsls r1, r0, 16 + lsrs r0, r1, 16 + cmp r5, r0 + bls _080B74A8 + lsrs r0, r7, 17 + b _080B74AA + .align 2, 0 +_080B749C: .4byte gBattleAnimAttacker +_080B74A0: .4byte gBattleAnimArgs +_080B74A4: .4byte sBattler_AI +_080B74A8: + lsrs r0, r1, 17 +_080B74AA: + strh r0, [r6, 0x3C] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x3C + ldrsh r1, [r6, r2] + bl Cos + strh r0, [r6, 0x24] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x3C + ldrsh r1, [r6, r2] + bl Sin + strh r0, [r6, 0x26] + ldr r0, _080B74D4 @ =sub_80B74D8 + str r0, [r6, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B74D4: .4byte sub_80B74D8 + thumb_func_end sub_80B7448 + + thumb_func_start sub_80B74D8 +sub_80B74D8: @ 80B74D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080B74EA + cmp r5, 0x1 + beq _080B7556 + b _080B75DA +_080B74EA: + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x38] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080B753C + strh r5, [r4, 0x36] + ldrh r1, [r4, 0x38] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B753C + adds r0, r1, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080B753C + movs r0, 0x10 + strh r0, [r4, 0x38] +_080B753C: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B75DA + movs r0, 0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B75DA +_080B7556: + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x38] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x95 + bgt _080B757E + adds r0, r1, 0 + adds r0, 0x8 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x95 + ble _080B757E + movs r0, 0x96 + strh r0, [r4, 0x3C] +_080B757E: + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080B75C6 + movs r0, 0 + strh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B75C6 + adds r0, r1, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080B75C6 + movs r0, 0x10 + strh r0, [r4, 0x38] +_080B75C6: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B75DA + adds r0, r4, 0 + bl DestroyAnimSprite +_080B75DA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B74D8 + + thumb_func_start sub_80B75E0 +sub_80B75E0: @ 80B75E0 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B760C @ =gTasks + adds r4, r1, r0 + ldr r0, _080B7610 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B761C + ldr r0, _080B7614 @ =0x04000014 + str r0, [sp] + ldr r0, _080B7618 @ =gBattle_BG1_X + b _080B7622 + .align 2, 0 +_080B760C: .4byte gTasks +_080B7610: .4byte gBattleAnimAttacker +_080B7614: .4byte 0x04000014 +_080B7618: .4byte gBattle_BG1_X +_080B761C: + ldr r0, _080B7698 @ =0x04000018 + str r0, [sp] + ldr r0, _080B769C @ =gBattle_BG2_X +_080B7622: + ldrh r0, [r0] + strh r0, [r4, 0xC] + ldr r0, _080B76A0 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r5, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r5, [r0, 0x9] + ldr r0, _080B76A4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0xE] + adds r0, 0x20 + strh r0, [r4, 0x10] + cmp r1, 0 + bge _080B7652 + strh r5, [r4, 0xE] +_080B7652: + ldrh r3, [r4, 0xE] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bgt _080B7680 + ldr r5, _080B76A8 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080B7664: + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r4, 0xC] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + ble _080B7664 +_080B7680: + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + ldr r0, _080B76AC @ =sub_80B76B0 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7698: .4byte 0x04000018 +_080B769C: .4byte gBattle_BG2_X +_080B76A0: .4byte 0xa2600001 +_080B76A4: .4byte gBattleAnimAttacker +_080B76A8: .4byte gScanlineEffectRegBuffers +_080B76AC: .4byte sub_80B76B0 + thumb_func_end sub_80B75E0 + + thumb_func_start sub_80B76B0 +sub_80B76B0: @ 80B76B0 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080B76D4 @ =gTasks + adds r2, r0, r1 + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bhi _080B7766 + lsls r0, 2 + ldr r1, _080B76D8 @ =_080B76DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B76D4: .4byte gTasks +_080B76D8: .4byte _080B76DC + .align 2, 0 +_080B76DC: + .4byte _080B76F0 + .4byte _080B7712 + .4byte _080B7722 + .4byte _080B774E + .4byte _080B7760 +_080B76F0: + ldrh r0, [r2, 0x16] + adds r0, 0x1 + strh r0, [r2, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B7746 + movs r0, 0 + strh r0, [r2, 0x16] + ldrh r0, [r2, 0x14] + adds r0, 0x1 + strh r0, [r2, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B7746 + b _080B7740 +_080B7712: + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B7746 + b _080B7740 +_080B7722: + ldrh r0, [r2, 0x16] + adds r0, 0x1 + strh r0, [r2, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B7746 + movs r0, 0 + strh r0, [r2, 0x16] + ldrh r0, [r2, 0x14] + subs r0, 0x1 + strh r0, [r2, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _080B7746 +_080B7740: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_080B7746: + adds r0, r2, 0 + bl sub_80B776C + b _080B7766 +_080B774E: + ldr r1, _080B775C @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080B7766 + .align 2, 0 +_080B775C: .4byte gScanlineEffect +_080B7760: + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080B7766: + pop {r0} + bx r0 + thumb_func_end sub_80B76B0 + + thumb_func_start sub_80B776C +sub_80B776C: @ 80B776C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldrh r3, [r5, 0x12] + ldrh r4, [r5, 0xE] + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r4, r0 + bgt _080B77C2 + ldr r7, _080B77D8 @ =gScanlineEffectRegBuffers + mov r12, r7 + ldr r0, _080B77DC @ =gSineTable + mov r8, r0 + ldr r6, _080B77E0 @ =gScanlineEffect +_080B778A: + lsls r2, r4, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + lsls r0, r3, 1 + add r0, r8 + movs r7, 0 + ldrsh r1, [r0, r7] + movs r7, 0x14 + ldrsh r0, [r5, r7] + muls r0, r1 + asrs r0, 7 + ldrh r1, [r5, 0xC] + adds r0, r1 + strh r0, [r2] + adds r3, 0x8 + movs r0, 0xFF + ands r3, r0 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + movs r7, 0x10 + ldrsh r0, [r5, r7] + cmp r4, r0 + ble _080B778A +_080B77C2: + ldrh r0, [r5, 0x12] + adds r0, 0x9 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x12] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B77D8: .4byte gScanlineEffectRegBuffers +_080B77DC: .4byte gSineTable +_080B77E0: .4byte gScanlineEffect + thumb_func_end sub_80B776C + + thumb_func_start sub_80B77E4 +sub_80B77E4: @ 80B77E4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + ldr r5, _080B7884 @ =gBattleAnimArgs + movs r0, 0x4 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + movs r1, 0x5 + bl __divsi3 + adds r6, r0, 0 + ldr r1, _080B7888 @ =gBattleAnimAttacker + mov r8, r1 + ldrb r0, [r1] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + mov r2, r8 + ldrb r0, [r2] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r5, 0x8] + adds r0, r3 + strh r0, [r4, 0x22] + movs r1, 0x2 + ldrsh r0, [r5, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Cos + strh r0, [r4, 0x30] + movs r3, 0x2 + ldrsh r0, [r5, r3] + lsls r6, 16 + asrs r6, 16 + adds r1, r6, 0 + bl Sin + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x30] + ldrh r2, [r5] + adds r3, r2, 0 + muls r3, r1 + adds r1, r3, 0 + ldrh r3, [r4, 0x20] + adds r1, r3 + strh r1, [r4, 0x20] + adds r1, r2, 0 + muls r1, r0 + adds r0, r1, 0 + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x34] + ldr r0, _080B788C @ =sub_80B7894 + str r0, [r4, 0x1C] + adds r4, 0x2E + ldr r2, _080B7890 @ =gUnknown_20399A4 + movs r1, 0x6 +_080B786C: + ldrh r0, [r4] + strh r0, [r2] + adds r4, 0x2 + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080B786C + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7884: .4byte gBattleAnimArgs +_080B7888: .4byte gBattleAnimAttacker +_080B788C: .4byte sub_80B7894 +_080B7890: .4byte gUnknown_20399A4 + thumb_func_end sub_80B77E4 + + thumb_func_start sub_80B7894 +sub_80B7894: @ 80B7894 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080B78D8 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B78D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7894 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s index eef234a71..2428f2984 100644 --- a/asm/egg_hatch.s +++ b/asm/egg_hatch.s @@ -5,1816 +5,4 @@ .text - thumb_func_start sub_8046BFC -sub_8046BFC: @ 8046BFC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x50 - adds r6, r0, 0 - adds r5, r1, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x3C] - movs r4, 0 - add r7, sp, 0x18 - movs r0, 0x31 - add r0, sp - mov r10, r0 - mov r1, sp - adds r1, 0x32 - str r1, [sp, 0x40] - mov r0, sp - adds r0, 0x34 - str r0, [sp, 0x48] - add r1, sp, 0x30 - mov r9, r1 - subs r0, 0x1 - str r0, [sp, 0x44] - mov r1, sp - adds r1, 0x38 - str r1, [sp, 0x4C] -_08046C3C: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - bl GetMonData - lsls r1, r4, 1 - add r1, sp - adds r1, 0x10 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08046C3C - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - mov r8, r0 - movs r4, 0 -_08046C64: - adds r1, r4, 0 - adds r1, 0x27 - adds r0, r6, 0 - bl GetMonData - lsls r1, r4, 2 - adds r1, r7, r1 - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08046C64 - adds r0, r6, 0 - movs r1, 0x25 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x8 - bl GetMonData - ldr r1, [sp, 0x40] - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x22 - bl GetMonData - str r0, [sp, 0x38] - adds r0, r6, 0 - movs r1, 0x50 - bl GetMonData - ldr r1, [sp, 0x48] - strb r0, [r1] - movs r0, 0x1 - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r5, 0 - ldr r1, [sp, 0x3C] - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r4, 0 -_08046CC8: - adds r1, r4, 0 - adds r1, 0xD - lsls r0, r4, 1 - mov r2, sp - adds r2, r0 - adds r2, 0x10 - adds r0, r5, 0 - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08046CC8 - movs r4, 0 -_08046CE6: - adds r1, r4, 0 - adds r1, 0x27 - lsls r2, r4, 2 - adds r2, r7, r2 - adds r0, r5, 0 - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08046CE6 - movs r0, 0x2 - mov r1, r9 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x3 - mov r2, r9 - bl SetMonData - adds r0, r5, 0 - movs r1, 0x25 - mov r2, r10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0x8 - ldr r2, [sp, 0x40] - bl SetMonData - movs r0, 0x78 - ldr r1, [sp, 0x44] - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x20 - ldr r2, [sp, 0x44] - bl SetMonData - adds r0, r5, 0 - movs r1, 0x22 - ldr r2, [sp, 0x4C] - bl SetMonData - adds r0, r5, 0 - movs r1, 0x50 - ldr r2, [sp, 0x48] - bl SetMonData - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - add sp, 0x50 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8046BFC - - thumb_func_start AddHatchedMonToParty -AddHatchedMonToParty: @ 8046D60 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - add r4, sp, 0xC - movs r1, 0x46 - strb r1, [r4] - movs r1, 0x64 - adds r5, r0, 0 - muls r5, r1 - ldr r0, _08046E14 @ =gPlayerParty - adds r5, r0 - ldr r1, _08046E18 @ =gEnemyParty - adds r0, r5, 0 - bl sub_8046BFC - adds r0, r5, 0 - movs r1, 0x2D - adds r2, r4, 0 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, sp - adds r1, r4, 0 - bl GetSpeciesName - adds r0, r5, 0 - movs r1, 0x2 - mov r2, sp - bl SetMonData - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x2 - bl GetSetPokedexFlag - adds r0, r4, 0 - movs r1, 0x3 - bl GetSetPokedexFlag - ldr r1, _08046E1C @ =gStringVar1 - adds r0, r5, 0 - bl GetMonNick - mov r2, sp - adds r2, 0xE - movs r0, 0x4 - strh r0, [r2] - adds r0, r5, 0 - movs r1, 0x26 - bl SetMonData - add r2, sp, 0x10 - movs r0, 0 - strh r0, [r2] - adds r0, r5, 0 - movs r1, 0x24 - bl SetMonData - bl sav1_map_get_name - mov r2, sp - adds r2, 0x12 - strb r0, [r2] - adds r0, r5, 0 - movs r1, 0x23 - bl SetMonData - adds r0, r5, 0 - bl MonRestorePP - adds r0, r5, 0 - bl CalculateMonStats - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08046E14: .4byte gPlayerParty -_08046E18: .4byte gEnemyParty -_08046E1C: .4byte gStringVar1 - thumb_func_end AddHatchedMonToParty - - thumb_func_start ScriptHatchMon -ScriptHatchMon: @ 8046E20 - push {lr} - ldr r0, _08046E30 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl AddHatchedMonToParty - pop {r0} - bx r0 - .align 2, 0 -_08046E30: .4byte gSpecialVar_0x8004 - thumb_func_end ScriptHatchMon - - thumb_func_start sub_8046E34 -sub_8046E34: @ 8046E34 - push {r4,r5,lr} - sub sp, 0x20 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x8C - muls r1, r2 - adds r4, r0, r1 - adds r0, r4, 0 - mov r1, sp - bl GetBoxMonNick - adds r0, r4, 0 - adds r0, 0x70 - ldrh r0, [r0] - cmp r0, 0 - beq _08046EA0 - adds r5, r4, 0 - adds r5, 0x7C - mov r0, sp - adds r1, r5, 0 - bl StringCompare - adds r4, 0x74 - cmp r0, 0 - bne _08046E74 - ldr r0, _08046E90 @ =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, r4, 0 - bl StringCompare - cmp r0, 0 - beq _08046EA0 -_08046E74: - ldr r0, _08046E94 @ =gStringVar1 - mov r1, sp - bl StringCopy - ldr r0, _08046E98 @ =gStringVar2 - adds r1, r4, 0 - bl StringCopy - ldr r0, _08046E9C @ =gStringVar3 - adds r1, r5, 0 - bl StringCopy - movs r0, 0x1 - b _08046EA2 - .align 2, 0 -_08046E90: .4byte gSaveBlock2Ptr -_08046E94: .4byte gStringVar1 -_08046E98: .4byte gStringVar2 -_08046E9C: .4byte gStringVar3 -_08046EA0: - movs r0, 0 -_08046EA2: - add sp, 0x20 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8046E34 - - thumb_func_start sub_8046EAC -sub_8046EAC: @ 8046EAC - push {lr} - ldr r0, _08046EC8 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xBE - lsls r1, 6 - adds r0, r1 - ldr r1, _08046ECC @ =gSpecialVar_0x8004 - ldrb r1, [r1] - bl sub_8046E34 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08046EC8: .4byte gSaveBlock1Ptr -_08046ECC: .4byte gSpecialVar_0x8004 - thumb_func_end sub_8046EAC - - thumb_func_start sub_8046ED0 -sub_8046ED0: @ 8046ED0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r3 - lsls r0, 24 - lsrs r3, r0, 24 - mov r8, r3 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r1, r2, 24 - adds r2, r1, 0 - movs r4, 0 - movs r7, 0 - movs r5, 0 - cmp r3, 0 - bne _08046EFE - movs r0, 0x64 - muls r1, r0 - ldr r0, _08046F18 @ =gPlayerParty - adds r5, r1, r0 - movs r4, 0x1 -_08046EFE: - cmp r3, 0x1 - bne _08046F0E - movs r0, 0x64 - adds r1, r2, 0 - muls r1, r0 - ldr r0, _08046F18 @ =gPlayerParty - adds r5, r1, r0 - movs r4, 0x3 -_08046F0E: - cmp r6, 0 - beq _08046F1C - cmp r6, 0x1 - beq _08046F6C - b _08046FA6 - .align 2, 0 -_08046F18: .4byte gPlayerParty -_08046F1C: - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - adds r3, r0, 0 - lsls r0, r4, 3 - ldr r1, _08046F64 @ =gUnknown_82350AC - adds r0, r1 - ldr r1, _08046F68 @ =gMonSpritesGfxPtr - ldr r2, [r1] - mov r6, r8 - lsls r1, r6, 1 - adds r1, 0x1 - lsls r1, 2 - adds r2, 0x4 - adds r2, r1 - ldr r1, [r2] - adds r2, r4, 0 - bl sub_800ECC4 - adds r0, r5, 0 - bl GetMonSpritePalStruct - bl LoadCompressedObjectPalette - mov r0, r9 - strh r4, [r0] - b _08046FA6 - .align 2, 0 -_08046F64: .4byte gUnknown_82350AC -_08046F68: .4byte gMonSpritesGfxPtr -_08046F6C: - adds r0, r5, 0 - bl GetMonSpritePalStruct - ldrh r0, [r0, 0x4] - adds r1, r4, 0 - bl sub_803F7D4 - ldr r0, _08046FB4 @ =gMultiuseSpriteTemplate - movs r1, 0x78 - movs r2, 0x46 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, _08046FB8 @ =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r2, r1, r4 - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r2] - adds r4, 0x1C - adds r1, r4 - ldr r0, _08046FBC @ =SpriteCallbackDummy - str r0, [r1] -_08046FA6: - adds r0, r7, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08046FB4: .4byte gMultiuseSpriteTemplate -_08046FB8: .4byte gSprites -_08046FBC: .4byte SpriteCallbackDummy - thumb_func_end sub_8046ED0 - - thumb_func_start sub_8046FC0 -sub_8046FC0: @ 8046FC0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8046FC0 - - thumb_func_start sub_8046FD4 -sub_8046FD4: @ 8046FD4 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _08047000 @ =sub_8047004 - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl sub_812B478 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08047000: .4byte sub_8047004 - thumb_func_end sub_8046FD4 - - thumb_func_start sub_8047004 -sub_8047004: @ 8047004 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08047034 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0804702C - bl sub_80563F0 - ldr r0, _08047038 @ =CB2_EggHatch_0 - bl SetMainCallback2 - ldr r1, _0804703C @ =gUnknown_3005020 - ldr r0, _08047040 @ =sub_807DD24 - str r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0804702C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08047034: .4byte gPaletteFade -_08047038: .4byte CB2_EggHatch_0 -_0804703C: .4byte gUnknown_3005020 -_08047040: .4byte sub_807DD24 - thumb_func_end sub_8047004 - - thumb_func_start CB2_EggHatch_0 -CB2_EggHatch_0: @ 8047044 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08047064 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bls _08047058 - b _0804727A -_08047058: - lsls r0, 2 - ldr r1, _08047068 @ =_0804706C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08047064: .4byte gMain -_08047068: .4byte _0804706C - .align 2, 0 -_0804706C: - .4byte _08047090 - .4byte _0804715C - .4byte _08047174 - .4byte _080471A8 - .4byte _080471C8 - .4byte _080471E0 - .4byte _080471F8 - .4byte _08047214 - .4byte _0804726C -_08047090: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r4, _08047148 @ =gUnknown_3000E74 - movs r0, 0x14 - bl Alloc - str r0, [r4] - bl AllocateMonSpritesGfx - ldr r2, [r4] - ldr r0, _0804714C @ =gSpecialVar_0x8004 - ldrh r0, [r0] - movs r1, 0 - strb r0, [r2, 0x4] - ldr r0, [r4] - strb r1, [r0, 0x7] - ldr r0, _08047150 @ =sub_8046FC0 - bl SetVBlankCallback - bl GetCurrentMapMusic - ldr r1, _08047154 @ =gSpecialVar_0x8005 - strh r0, [r1] - bl reset_temp_tile_data_buffers - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08047158 @ =gUnknown_826019C - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - 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, 0x7 - movs r2, 0x2 - bl SetBgAttribute - movs r0, 0x80 - lsls r0, 5 - bl Alloc - adds r1, r0, 0 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r1, r0, 0 - movs r0, 0 - bl SetBgTilemapBuffer - bl DeactivateAllTextPrinters - bl ResetPaletteFade - bl FreeAllSpritePalettes - bl ResetSpriteData - bl ResetTasks - bl remove_some_task - bl m4aSoundVSyncOn - b _0804724A - .align 2, 0 -_08047148: .4byte gUnknown_3000E74 -_0804714C: .4byte gSpecialVar_0x8004 -_08047150: .4byte sub_8046FC0 -_08047154: .4byte gSpecialVar_0x8005 -_08047158: .4byte gUnknown_826019C -_0804715C: - ldr r0, _0804716C @ =gUnknown_82601A4 - bl InitWindows - ldr r0, _08047170 @ =gUnknown_3000E74 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x8] - b _0804724A - .align 2, 0 -_0804716C: .4byte gUnknown_82601A4 -_08047170: .4byte gUnknown_3000E74 -_08047174: - ldr r1, _0804719C @ =gUnknown_8D00000 - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl sub_80F696C - ldr r1, _080471A0 @ =gFile_graphics_interface_menu_map_tilemap - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, _080471A4 @ =gUnknown_8D004D8 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _0804724A - .align 2, 0 -_0804719C: .4byte gUnknown_8D00000 -_080471A0: .4byte gFile_graphics_interface_menu_map_tilemap -_080471A4: .4byte gUnknown_8D004D8 -_080471A8: - ldr r0, _080471BC @ =gUnknown_826011C - bl LoadSpriteSheet - ldr r0, _080471C0 @ =gUnknown_8260124 - bl LoadSpriteSheet - ldr r0, _080471C4 @ =gUnknown_826012C - bl LoadSpritePalette - b _0804724A - .align 2, 0 -_080471BC: .4byte gUnknown_826011C -_080471C0: .4byte gUnknown_8260124 -_080471C4: .4byte gUnknown_826012C -_080471C8: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, _080471DC @ =gUnknown_3000E74 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - bl AddHatchedMonToParty - b _0804724A - .align 2, 0 -_080471DC: .4byte gUnknown_3000E74 -_080471E0: - ldr r0, _080471F4 @ =gUnknown_3000E74 - ldr r3, [r0] - ldrb r2, [r3, 0x4] - adds r3, 0xC - movs r0, 0 - movs r1, 0 - bl sub_8046ED0 - b _0804724A - .align 2, 0 -_080471F4: .4byte gUnknown_3000E74 -_080471F8: - ldr r4, _08047210 @ =gUnknown_3000E74 - ldr r3, [r4] - ldrb r2, [r3, 0x4] - adds r3, 0xC - movs r0, 0 - movs r1, 0x1 - bl sub_8046ED0 - ldr r1, [r4] - strb r0, [r1, 0x1] - b _0804724A - .align 2, 0 -_08047210: .4byte gUnknown_3000E74 -_08047214: - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - ldr r0, _0804725C @ =gUnknown_8EAEA20 - movs r1, 0x10 - movs r2, 0xA0 - bl LoadPalette - ldr r1, _08047260 @ =gUnknown_8EAEA80 - movs r2, 0xA1 - lsls r2, 5 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - ldr r1, _08047264 @ =gUnknown_826601C - movs r2, 0x80 - lsls r2, 5 - movs r0, 0x1 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_0804724A: - ldr r1, _08047268 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0804727A - .align 2, 0 -_0804725C: .4byte gUnknown_8EAEA20 -_08047260: .4byte gUnknown_8EAEA80 -_08047264: .4byte gUnknown_826601C -_08047268: .4byte gMain -_0804726C: - ldr r0, _08047298 @ =sub_8047338 - bl SetMainCallback2 - ldr r0, _0804729C @ =gUnknown_3000E74 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x2] -_0804727A: - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08047298: .4byte sub_8047338 -_0804729C: .4byte gUnknown_3000E74 - thumb_func_end CB2_EggHatch_0 - - thumb_func_start EggHatchSetMonNickname -EggHatchSetMonNickname: @ 80472A0 - push {lr} - ldr r0, _080472D0 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080472D4 @ =gPlayerParty - adds r0, r1 - ldr r2, _080472D8 @ =gStringVar3 - movs r1, 0x2 - bl SetMonData - bl FreeMonSpritesGfx - ldr r0, _080472DC @ =gUnknown_3000E74 - ldr r0, [r0] - bl Free - bl sub_812B484 - ldr r0, _080472E0 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080472D0: .4byte gSpecialVar_0x8004 -_080472D4: .4byte gPlayerParty -_080472D8: .4byte gStringVar3 -_080472DC: .4byte gUnknown_3000E74 -_080472E0: .4byte c2_exit_to_overworld_2_switch - thumb_func_end EggHatchSetMonNickname - - thumb_func_start sub_80472E4 -sub_80472E4: @ 80472E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08047330 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08047300 - bl StopMapMusic -_08047300: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _0804730E - ldr r0, _08047334 @ =0x00000107 - bl PlayBGM -_0804730E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x3C - ble _08047324 - movs r0, 0x84 - lsls r0, 1 - bl PlayBGM - adds r0, r5, 0 - bl DestroyTask -_08047324: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08047330: .4byte gTasks -_08047334: .4byte 0x00000107 - thumb_func_end sub_80472E4 - - thumb_func_start sub_8047338 -sub_8047338: @ 8047338 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0xC - ldr r1, _0804735C @ =gUnknown_3000E74 - ldr r0, [r1] - ldrb r0, [r0, 0x2] - adds r5, r1, 0 - cmp r0, 0xC - bls _08047352 - b _08047684 -_08047352: - lsls r0, 2 - ldr r1, _08047360 @ =_08047364 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804735C: .4byte gUnknown_3000E74 -_08047360: .4byte _08047364 - .align 2, 0 -_08047364: - .4byte _08047398 - .4byte _080473E4 - .4byte _0804740C - .4byte _08047444 - .4byte _08047474 - .4byte _08047482 - .4byte _080474E8 - .4byte _080474F6 - .4byte _08047504 - .4byte _08047548 - .4byte _08047588 - .4byte _08047634 - .4byte _08047654 -_08047398: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080473D8 @ =gUnknown_8260134 - movs r1, 0x78 - movs r2, 0x4B - movs r3, 0x5 - bl CreateSprite - ldr r4, _080473DC @ =gUnknown_3000E74 - ldr r1, [r4] - strb r0, [r1] - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - ldr r1, [r4] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r0, _080473E0 @ =sub_80472E4 - movs r1, 0x5 - bl CreateTask - b _08047684 - .align 2, 0 -_080473D8: .4byte gUnknown_8260134 -_080473DC: .4byte gUnknown_3000E74 -_080473E0: .4byte sub_80472E4 -_080473E4: - ldr r0, _08047408 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080473F6 - b _08047684 -_080473F6: - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r5] - strb r4, [r0, 0x3] - ldr r1, [r5] - b _08047648 - .align 2, 0 -_08047408: .4byte gPaletteFade -_0804740C: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bhi _0804741E - b _08047684 -_0804741E: - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r2, _0804743C @ =gSprites - ldr r0, [r5] - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08047440 @ =SpriteCB_Egg_0 - str r1, [r0] - b _08047684 - .align 2, 0 -_0804743C: .4byte gSprites -_08047440: .4byte SpriteCB_Egg_0 -_08047444: - ldr r2, _0804746C @ =gSprites - ldr r3, [r5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08047470 @ =SpriteCallbackDummy - cmp r1, r0 - beq _0804745E - b _08047684 -_0804745E: - ldrh r0, [r3, 0xC] - movs r1, 0 - bl PlayCry1 - ldr r1, [r5] - b _08047648 - .align 2, 0 -_0804746C: .4byte gSprites -_08047470: .4byte SpriteCallbackDummy -_08047474: - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - bne _08047480 - b _08047684 -_08047480: - b _08047644 -_08047482: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080474D4 @ =gPlayerParty - adds r0, r1 - ldr r1, _080474D8 @ =gStringVar1 - bl GetMonNick - ldr r4, _080474DC @ =gStringVar4 - ldr r1, _080474E0 @ =gUnknown_841B6FD - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0xFF - str r1, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl EggHatchPrintMessage - ldr r0, _080474E4 @ =0x00000103 - bl PlayFanfare - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r0, [r5] - ldrb r0, [r0, 0x8] - bl PutWindowTilemap - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - b _08047684 - .align 2, 0 -_080474D4: .4byte gPlayerParty -_080474D8: .4byte gStringVar1 -_080474DC: .4byte gStringVar4 -_080474E0: .4byte gUnknown_841B6FD -_080474E4: .4byte 0x00000103 -_080474E8: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - bne _080474F4 - b _08047684 -_080474F4: - b _08047644 -_080474F6: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - bne _08047502 - b _08047684 -_08047502: - b _08047644 -_08047504: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08047538 @ =gPlayerParty - adds r0, r1 - ldr r1, _0804753C @ =gStringVar1 - bl GetMonNick - ldr r4, _08047540 @ =gStringVar4 - ldr r1, _08047544 @ =gUnknown_841B716 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0x1 - str r1, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl EggHatchPrintMessage - ldr r1, [r5] - b _08047648 - .align 2, 0 -_08047538: .4byte gPlayerParty -_0804753C: .4byte gStringVar1 -_08047540: .4byte gStringVar4 -_08047544: .4byte gUnknown_841B716 -_08047548: - ldr r0, [r5] - ldrb r0, [r0, 0x8] - bl IsTextPrinterActive - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _0804755A - b _08047684 -_0804755A: - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r4, 0xA0 - lsls r4, 1 - adds r1, r4, 0 - movs r2, 0xE0 - bl sub_814FE40 - ldr r0, _08047584 @ =gUnknown_82601B4 - str r4, [sp] - movs r1, 0xE - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x3 - movs r2, 0 - movs r3, 0x2 - bl sub_810FF60 - ldr r1, [r5] - b _08047648 - .align 2, 0 -_08047584: .4byte gUnknown_82601B4 -_08047588: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080475A8 - cmp r1, 0 - bgt _080475A2 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08047644 - b _08047684 -_080475A2: - cmp r1, 0x1 - beq _08047644 - b _08047684 -_080475A8: - ldr r0, _08047624 @ =gUnknown_3000E74 - mov r9, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, _08047628 @ =gPlayerParty - adds r0, r6 - ldr r1, _0804762C @ =gStringVar3 - mov r10, r1 - bl GetMonNick - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - bl GetMonGender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r0, _08047630 @ =EggHatchSetMonNickname - str r0, [sp, 0x4] - movs r0, 0x3 - mov r1, r10 - adds r2, r5, 0 - adds r3, r4, 0 - bl DoNamingScreen - b _08047684 - .align 2, 0 -_08047624: .4byte gUnknown_3000E74 -_08047628: .4byte gPlayerParty -_0804762C: .4byte gStringVar3 -_08047630: .4byte EggHatchSetMonNickname -_08047634: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08047644: - ldr r0, _08047650 @ =gUnknown_3000E74 - ldr r1, [r0] -_08047648: - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _08047684 - .align 2, 0 -_08047650: .4byte gUnknown_3000E74 -_08047654: - ldr r0, _080476A8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08047684 - ldr r0, [r5] - ldrb r0, [r0, 0x8] - bl RemoveWindow - movs r0, 0 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl UnsetBgTilemapBuffer - ldr r0, [r5] - bl Free - ldr r0, _080476AC @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - bl sub_812B484 -_08047684: - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080476A8: .4byte gPaletteFade -_080476AC: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_8047338 - - thumb_func_start SpriteCB_Egg_0 -SpriteCB_Egg_0: @ 80476B0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080476D0 - ldr r0, _080476CC @ =SpriteCB_Egg_1 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x2E] - b _08047700 - .align 2, 0 -_080476CC: .4byte SpriteCB_Egg_1 -_080476D0: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x1 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08047700 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - bl CreateRandomEggShardSprite -_08047700: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_0 - - thumb_func_start SpriteCB_Egg_1 -SpriteCB_Egg_1: @ 8047708 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _08047764 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _08047738 - ldr r0, _08047734 @ =SpriteCB_Egg_2 - str r0, [r4, 0x1C] - strh r1, [r4, 0x2E] - strh r1, [r4, 0x32] - b _08047764 - .align 2, 0 -_08047734: .4byte SpriteCB_Egg_2 -_08047738: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08047764 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_08047764: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_1 - - thumb_func_start SpriteCB_Egg_2 -SpriteCB_Egg_2: @ 804776C - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r6, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _08047826 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x26 - ble _080477E4 - ldr r0, _080477D0 @ =SpriteCB_Egg_3 - str r0, [r4, 0x1C] - strh r6, [r4, 0x2E] - ldr r5, _080477D4 @ =gUnknown_3000E74 - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080477D8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - ldr r4, _080477DC @ =gSprites - ldr r3, [r5] - ldrb r2, [r3, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r6, [r1, 0x24] - ldrb r2, [r3, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldr r2, _080477E0 @ =gUnknown_82349CC - lsrs r0, 14 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r1, 0x26] - b _08047826 - .align 2, 0 -_080477D0: .4byte SpriteCB_Egg_3 -_080477D4: .4byte gUnknown_3000E74 -_080477D8: .4byte gPlayerParty -_080477DC: .4byte gSprites -_080477E0: .4byte gUnknown_82349CC -_080477E4: - ldrh r0, [r4, 0x30] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08047818 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - bl CreateRandomEggShardSprite - bl CreateRandomEggShardSprite -_08047818: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1E - bne _08047826 - movs r0, 0x17 - bl PlaySE -_08047826: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_2 - - thumb_func_start SpriteCB_Egg_3 -SpriteCB_Egg_3: @ 804782C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - ble _08047846 - ldr r0, _0804784C @ =SpriteCB_Egg_4 - str r0, [r1, 0x1C] - movs r0, 0 - strh r0, [r1, 0x2E] -_08047846: - pop {r0} - bx r0 - .align 2, 0 -_0804784C: .4byte SpriteCB_Egg_4 - thumb_func_end SpriteCB_Egg_3 - - thumb_func_start SpriteCB_Egg_4 -SpriteCB_Egg_4: @ 8047850 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08047870 - movs r1, 0x1 - negs r1, r1 - ldr r0, _080478C4 @ =0x0000ffff - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08047870: - ldrh r0, [r5, 0x2E] - cmp r0, 0x3 - bhi _0804788C - movs r4, 0 -_08047878: - bl CreateRandomEggShardSprite - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08047878 -_0804788C: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - ldr r0, _080478C8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080478BA - movs r0, 0x6A - bl PlaySE - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080478CC @ =SpriteCB_Egg_5 - str r0, [r5, 0x1C] - strh r4, [r5, 0x2E] -_080478BA: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080478C4: .4byte 0x0000ffff -_080478C8: .4byte gPaletteFade -_080478CC: .4byte SpriteCB_Egg_5 - thumb_func_end SpriteCB_Egg_4 - - thumb_func_start SpriteCB_Egg_5 -SpriteCB_Egg_5: @ 80478D0 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0804790C - ldr r4, _08047960 @ =gSprites - ldr r3, _08047964 @ =gUnknown_3000E74 - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim -_0804790C: - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x8 - bne _08047926 - movs r1, 0x1 - negs r1, r1 - ldr r0, _08047968 @ =0x0000ffff - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_08047926: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x9 - bgt _08047944 - ldr r2, _08047960 @ =gSprites - ldr r0, _08047964 @ =gUnknown_3000E74 - ldr r0, [r0] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_08047944: - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x28 - ble _08047952 - ldr r0, _0804796C @ =SpriteCallbackDummy - str r0, [r5, 0x1C] -_08047952: - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08047960: .4byte gSprites -_08047964: .4byte gUnknown_3000E74 -_08047968: .4byte 0x0000ffff -_0804796C: .4byte SpriteCallbackDummy - thumb_func_end SpriteCB_Egg_5 - - thumb_func_start SpriteCB_EggShard -SpriteCB_EggShard: @ 8047970 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x32] - ldrh r3, [r2, 0x38] - adds r0, r1, r3 - strh r0, [r2, 0x38] - movs r4, 0x36 - ldrsh r0, [r2, r4] - cmp r0, 0 - bge _0804798E - adds r0, 0xFF -_0804798E: - asrs r0, 8 - strh r0, [r2, 0x24] - movs r3, 0x38 - ldrsh r0, [r2, r3] - cmp r0, 0 - bge _0804799C - adds r0, 0xFF -_0804799C: - asrs r0, 8 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r3, r1, r0 - strh r3, [r2, 0x32] - movs r4, 0x22 - ldrsh r1, [r2, r4] - movs r4, 0x26 - ldrsh r0, [r2, r4] - adds r0, r1, r0 - adds r1, 0x14 - cmp r0, r1 - ble _080479C2 - lsls r0, r3, 16 - cmp r0, 0 - ble _080479C2 - adds r0, r2, 0 - bl DestroySprite -_080479C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_EggShard - - thumb_func_start CreateRandomEggShardSprite -CreateRandomEggShardSprite: @ 80479C8 - push {r4-r6,lr} - sub sp, 0x8 - ldr r2, _08047A14 @ =gUnknown_82601BC - ldr r0, _08047A18 @ =gUnknown_3000E74 - ldr r6, [r0] - ldrb r3, [r6, 0x7] - lsls r0, r3, 2 - adds r1, r0, r2 - ldrh r5, [r1] - adds r2, 0x2 - adds r0, r2 - ldrh r4, [r0] - adds r3, 0x1 - strb r3, [r6, 0x7] - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x64 - str r0, [sp] - lsrs r1, 16 - str r1, [sp, 0x4] - movs r0, 0x78 - movs r1, 0x3C - adds r2, r5, 0 - adds r3, r4, 0 - bl CreateEggShardSprite - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047A14: .4byte gUnknown_82601BC -_08047A18: .4byte gUnknown_3000E74 - thumb_func_end CreateRandomEggShardSprite - - thumb_func_start CreateEggShardSprite -CreateEggShardSprite: @ 8047A1C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r8, r3 - ldr r0, [sp, 0x1C] - mov r9, r0 - ldr r1, [sp, 0x20] - mov r10, r1 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r1, r9 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _08047A94 @ =gUnknown_8260184 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08047A98 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x30] - mov r1, r8 - strh r1, [r0, 0x32] - mov r1, r9 - strh r1, [r0, 0x34] - mov r1, r10 - bl StartSpriteAnim - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047A94: .4byte gUnknown_8260184 -_08047A98: .4byte gSprites - thumb_func_end CreateEggShardSprite - - thumb_func_start EggHatchPrintMessage -EggHatchPrintMessage: @ 8047A9C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - adds r5, r0, 0 - mov r8, r1 - adds r6, r2, 0 - ldr r4, [sp, 0x2C] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0xFF - str r3, [sp, 0x14] - bl FillWindowPixelBuffer - ldr r2, _08047B08 @ =gUnknown_3000E74 - ldr r1, [r2] - movs r0, 0 - strb r0, [r1, 0xE] - ldr r1, [r2] - movs r0, 0x5 - strb r0, [r1, 0xF] - ldr r1, [r2] - movs r0, 0x6 - strb r0, [r1, 0x10] - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - ldr r0, [r2] - adds r0, 0xE - str r0, [sp, 0x8] - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - mov r0, r8 - str r0, [sp, 0x10] - adds r0, r5, 0 - movs r1, 0x3 - adds r2, r6, 0 - ldr r3, [sp, 0x14] - bl AddTextPrinterParametrized2 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047B08: .4byte gUnknown_3000E74 - thumb_func_end EggHatchPrintMessage - .align 2, 0 @ Don't pad with nop. diff --git a/asm/electric.s b/asm/electric.s new file mode 100644 index 000000000..187e30b6d --- /dev/null +++ b/asm/electric.s @@ -0,0 +1,2675 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80ADBEC +sub_80ADBEC: @ 80ADBEC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080ADC0C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ADC14 + ldr r0, _080ADC10 @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080ADC20 + .align 2, 0 +_080ADC0C: .4byte gBattleAnimAttacker +_080ADC10: .4byte gBattleAnimArgs +_080ADC14: + ldr r1, _080ADC34 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_080ADC20: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080ADC38 @ =sub_80ADC3C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADC34: .4byte gBattleAnimArgs +_080ADC38: .4byte sub_80ADC3C + thumb_func_end sub_80ADBEC + + thumb_func_start sub_80ADC3C +sub_80ADC3C: @ 80ADC3C + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080ADC52 + adds r0, r2, 0 + bl DestroyAnimSprite +_080ADC52: + pop {r0} + bx r0 + thumb_func_end sub_80ADC3C + + thumb_func_start sub_80ADC58 +sub_80ADC58: @ 80ADC58 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080ADC78 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ADC80 + ldr r0, _080ADC7C @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r4, 0x20] + b _080ADC8A + .align 2, 0 +_080ADC78: .4byte gBattleAnimAttacker +_080ADC7C: .4byte gBattleAnimArgs +_080ADC80: + ldr r0, _080ADC94 @ =gBattleAnimArgs + ldrh r0, [r0] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] +_080ADC8A: + ldr r0, _080ADC98 @ =sub_80ADC9C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADC94: .4byte gBattleAnimArgs +_080ADC98: .4byte sub_80ADC9C + thumb_func_end sub_80ADC58 + + thumb_func_start sub_80ADC9C +sub_80ADC9C: @ 80ADC9C + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080ADCB2 + adds r0, r2, 0 + bl move_anim_8074EE0 +_080ADCB2: + pop {r0} + bx r0 + thumb_func_end sub_80ADC9C + + thumb_func_start sub_80ADCB8 +sub_80ADCB8: @ 80ADCB8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080ADCFC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080ADD00 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ADD08 + ldr r2, _080ADD04 @ =gBattleAnimArgs + ldrh r0, [r5, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r5, 0x22] + b _080ADD1C + .align 2, 0 +_080ADCFC: .4byte gBattleAnimTarget +_080ADD00: .4byte gBattleAnimAttacker +_080ADD04: .4byte gBattleAnimArgs +_080ADD08: + ldr r0, _080ADD40 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x20] + ldrh r1, [r0, 0x2] + ldrh r2, [r5, 0x22] + adds r1, r2 + strh r1, [r5, 0x22] + adds r2, r0, 0 +_080ADD1C: + movs r0, 0 + strh r0, [r5, 0x2E] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x30] + ldrh r0, [r2, 0x6] + strh r0, [r5, 0x32] + ldrh r0, [r2, 0x8] + strh r0, [r5, 0x34] + ldr r1, _080ADD44 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080ADD48 @ =sub_8074A80 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADD40: .4byte gBattleAnimArgs +_080ADD44: .4byte move_anim_8074EE0 +_080ADD48: .4byte sub_8074A80 + thumb_func_end sub_80ADCB8 + + thumb_func_start sub_80ADD4C +sub_80ADD4C: @ 80ADD4C + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080ADD64 @ =gBattleAnimArgs + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080ADDC4 + cmp r0, 0x1 + bgt _080ADD68 + cmp r0, 0 + beq _080ADD72 + b _080ADDC4 + .align 2, 0 +_080ADD64: .4byte gBattleAnimArgs +_080ADD68: + cmp r0, 0x2 + beq _080ADD7C + cmp r0, 0x3 + beq _080ADDA0 + b _080ADDC4 +_080ADD72: + ldr r0, _080ADD78 @ =gBattleAnimAttacker + b _080ADDC6 + .align 2, 0 +_080ADD78: .4byte gBattleAnimAttacker +_080ADD7C: + ldr r4, _080ADD94 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r6, 0x2 + eors r0, r6 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + bne _080ADD98 + ldrb r4, [r4] + b _080ADDC8 + .align 2, 0 +_080ADD94: .4byte gBattleAnimAttacker +_080ADD98: + ldrb r0, [r4] + adds r4, r6, 0 + eors r4, r0 + b _080ADDC8 +_080ADDA0: + ldr r0, _080ADDBC @ =gBattleAnimAttacker + ldrb r0, [r0] + movs r4, 0x2 + eors r0, r4 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080ADDC4 + ldr r0, _080ADDC0 @ =gBattleAnimTarget + ldrb r0, [r0] + eors r4, r0 + b _080ADDC8 + .align 2, 0 +_080ADDBC: .4byte gBattleAnimAttacker +_080ADDC0: .4byte gBattleAnimTarget +_080ADDC4: + ldr r0, _080ADDE8 @ =gBattleAnimTarget +_080ADDC6: + ldrb r4, [r0] +_080ADDC8: + ldr r0, _080ADDEC @ =gBattleAnimArgs + movs r2, 0xA + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080ADDF0 + adds r0, r4, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r4, 0 + movs r1, 0x1 + b _080ADE02 + .align 2, 0 +_080ADDE8: .4byte gBattleAnimTarget +_080ADDEC: .4byte gBattleAnimArgs +_080ADDF0: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r4, 0 + movs r1, 0x3 +_080ADE02: + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r7, _080ADEA0 @ =gSineTable + ldr r6, _080ADEA4 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + lsls r0, 1 + adds r0, r7 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x2 + ldrsh r0, [r6, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x24] + movs r1, 0 + ldrsh r0, [r6, r1] + adds r0, 0x40 + lsls r0, 1 + adds r0, r7 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x2 + ldrsh r0, [r6, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x26] + ldrh r1, [r6, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ADE66 + adds r0, r4, 0 + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] +_080ADE66: + ldrb r2, [r5, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r0, 0x4 + ldrsh r1, [r6, r0] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + ldr r3, _080ADEA8 @ =gOamMatrices + lsls r2, 3 + adds r2, r3 + adds r1, 0x40 + lsls r1, 1 + adds r1, r7 + ldrh r1, [r1] + strh r1, [r2, 0x6] + strh r1, [r2] + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldrh r0, [r6, 0x6] + strh r0, [r5, 0x2E] + ldr r0, _080ADEAC @ =sub_80B1D3C + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ADEA0: .4byte gSineTable +_080ADEA4: .4byte gBattleAnimArgs +_080ADEA8: .4byte gOamMatrices +_080ADEAC: .4byte sub_80B1D3C + thumb_func_end sub_80ADD4C + + thumb_func_start sub_80ADEB0 +sub_80ADEB0: @ 80ADEB0 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080ADF24 @ =gBattleAnimArgs + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r6, _080ADF28 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x38] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x3A] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x3C] + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0xC + ldrsh r0, [r5, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080ADF2C @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080ADF30 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r1, _080ADF34 @ =sub_80ADF38 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADF24: .4byte gBattleAnimArgs +_080ADF28: .4byte gBattleAnimTarget +_080ADF2C: .4byte 0x000003ff +_080ADF30: .4byte 0xfffffc00 +_080ADF34: .4byte sub_80ADF38 + thumb_func_end sub_80ADEB0 + + thumb_func_start sub_80ADF38 +sub_80ADF38: @ 80ADF38 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080ADFA2 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080ADFA8 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080ADFA8 +_080ADFA2: + adds r0, r4, 0 + bl DestroyAnimSprite +_080ADFA8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ADF38 + + thumb_func_start sub_80ADFB0 +sub_80ADFB0: @ 80ADFB0 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x38] + subs r0, 0x1 + strh r0, [r3, 0x38] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080ADFE8 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x36] + strh r0, [r3, 0x38] +_080ADFE8: + ldrh r0, [r3, 0x34] + subs r1, r0, 0x1 + strh r1, [r3, 0x34] + lsls r0, 16 + cmp r0, 0 + bgt _080ADFFA + adds r0, r3, 0 + bl DestroyAnimSprite +_080ADFFA: + pop {r0} + bx r0 + thumb_func_end sub_80ADFB0 + + thumb_func_start sub_80AE000 +sub_80AE000: @ 80AE000 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AE01C + ldr r0, _080AE060 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AE024 +_080AE01C: + ldr r1, _080AE064 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080AE024: + ldr r5, _080AE060 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080AE064 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4] + strh r0, [r6, 0x34] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x36] + strh r0, [r6, 0x38] + ldr r0, _080AE068 @ =sub_80ADFB0 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE060: .4byte gBattleAnimTarget +_080AE064: .4byte gBattleAnimArgs +_080AE068: .4byte sub_80ADFB0 + thumb_func_end sub_80AE000 + + thumb_func_start sub_80AE06C +sub_80AE06C: @ 80AE06C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r1, _080AE088 @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x2E] + movs r2, 0xE + ldrsh r0, [r1, r2] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080AE090 + ldr r0, _080AE08C @ =gBattleAnimTarget + b _080AE092 + .align 2, 0 +_080AE088: .4byte gBattleAnimArgs +_080AE08C: .4byte gBattleAnimTarget +_080AE090: + ldr r0, _080AE118 @ =gBattleAnimAttacker +_080AE092: + ldrb r6, [r0] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AE0AA + adds r0, r6, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AE0B2 +_080AE0AA: + ldr r1, _080AE11C @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080AE0B2: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080AE11C @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r3, [r4] + adds r0, r3 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r1, [r4, 0xE] + ldr r0, _080AE120 @ =0x00007fff + ands r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x38] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0x3A] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x3C] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080AE124 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080AE128 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r1, _080AE12C @ =sub_80AE130 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE118: .4byte gBattleAnimAttacker +_080AE11C: .4byte gBattleAnimArgs +_080AE120: .4byte 0x00007fff +_080AE124: .4byte 0x000003ff +_080AE128: .4byte 0xfffffc00 +_080AE12C: .4byte sub_80AE130 + thumb_func_end sub_80AE06C + + thumb_func_start sub_80AE130 +sub_80AE130: @ 80AE130 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _080AE186 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080AE186: + ldrh r0, [r4, 0x2E] + subs r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080AE198 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AE198: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AE130 + + thumb_func_start sub_80AE1A0 +sub_80AE1A0: @ 80AE1A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075114 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldr r3, _080AE1DC @ =gBattleAnimArgs + movs r5, 0x6 + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r1, r0 + ldr r5, _080AE1E0 @ =0x000003ff + adds r0, r5, 0 + ands r1, r0 + ldr r0, _080AE1E4 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + movs r1, 0x6 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + bne _080AE1E8 + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + b _080AE1F6 + .align 2, 0 +_080AE1DC: .4byte gBattleAnimArgs +_080AE1E0: .4byte 0x000003ff +_080AE1E4: .4byte 0xfffffc00 +_080AE1E8: + cmp r0, 0x2 + bne _080AE1FA + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x20 +_080AE1F6: + orrs r1, r0 + strb r1, [r4, 0x3] +_080AE1FA: + ldr r0, _080AE214 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080AE218 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080AE21C @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE214: .4byte gBattleAnimArgs +_080AE218: .4byte sub_8074C44 +_080AE21C: .4byte DestroyAnimSprite + thumb_func_end sub_80AE1A0 + + thumb_func_start sub_80AE220 +sub_80AE220: @ 80AE220 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, _080AE268 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + ldr r1, _080AE26C @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r1 + lsls r0, 24 + ldr r5, _080AE270 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r4, 0x8] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0xC] + ldr r0, _080AE274 @ =sub_80AE278 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE268: .4byte gBattleAnimTarget +_080AE26C: .4byte gTasks +_080AE270: .4byte gBattleAnimArgs +_080AE274: .4byte sub_80AE278 + thumb_func_end sub_80AE220 + + thumb_func_start sub_80AE278 +sub_80AE278: @ 80AE278 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r5, 0 + movs r7, 0 + ldr r1, _080AE2B8 @ =gTasks + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldrb r2, [r0, 0xC] + str r2, [sp] + ldrh r4, [r0, 0x8] + ldrh r6, [r0, 0xA] + movs r3, 0xC + ldrsh r0, [r0, r3] + mov r10, r1 + cmp r0, 0 + bne _080AE2BC + movs r0, 0 + mov r8, r0 + movs r2, 0x1 + movs r1, 0x10 + mov r12, r1 + b _080AE2C6 + .align 2, 0 +_080AE2B8: .4byte gTasks +_080AE2BC: + movs r2, 0x10 + mov r12, r2 + movs r3, 0x8 + mov r8, r3 + movs r2, 0x4 +_080AE2C6: + mov r0, r9 + lsls r1, r0, 2 + adds r0, r1, r0 + lsls r0, 3 + add r0, r10 + movs r3, 0x1C + ldrsh r0, [r0, r3] + mov r10, r1 + cmp r0, 0xA + bhi _080AE3BC + lsls r0, 2 + ldr r1, _080AE2E4 @ =_080AE2E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AE2E4: .4byte _080AE2E8 + .align 2, 0 +_080AE2E8: + .4byte _080AE314 + .4byte _080AE3BC + .4byte _080AE328 + .4byte _080AE3BC + .4byte _080AE348 + .4byte _080AE3BC + .4byte _080AE35E + .4byte _080AE3BC + .4byte _080AE380 + .4byte _080AE3BC + .4byte _080AE3B4 +_080AE314: + ldr r0, _080AE324 @ =gUnknown_83E60A0 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + mov r4, r12 + lsls r3, r4, 16 + b _080AE396 + .align 2, 0 +_080AE324: .4byte gUnknown_83E60A0 +_080AE328: + mov r0, r12 + lsls r3, r0, 17 + mov r1, r8 + adds r0, r1, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _080AE344 @ =gUnknown_83E60A0 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + b _080AE396 + .align 2, 0 +_080AE344: .4byte gUnknown_83E60A0 +_080AE348: + mov r3, r12 + lsls r0, r3, 16 + asrs r0, 16 + lsls r3, r0, 1 + adds r3, r0 + lsls r0, r2, 1 + add r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + b _080AE38A +_080AE35E: + mov r0, r12 + lsls r3, r0, 18 + lsls r0, r2, 1 + adds r0, r2 + add r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _080AE37C @ =gUnknown_83E60A0 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + b _080AE396 + .align 2, 0 +_080AE37C: .4byte gUnknown_83E60A0 +_080AE380: + mov r1, r12 + lsls r0, r1, 16 + asrs r0, 16 + lsls r3, r0, 2 + adds r3, r0 +_080AE38A: + ldr r0, _080AE3B0 @ =gUnknown_83E60A0 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + lsls r3, 16 +_080AE396: + asrs r3, 16 + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + b _080AE3BC + .align 2, 0 +_080AE3B0: .4byte gUnknown_83E60A0 +_080AE3B4: + mov r0, r9 + bl DestroyAnimVisualTask + b _080AE400 +_080AE3BC: + cmp r7, 0 + beq _080AE3F0 + ldr r4, _080AE410 @ =gSprites + lsls r3, r5, 4 + adds r3, r5 + lsls r3, 2 + adds r0, r3, r4 + ldrh r5, [r0, 0x4] + lsls r2, r5, 22 + lsrs r2, 22 + add r2, r8 + ldr r6, _080AE414 @ =0x000003ff + adds r1, r6, 0 + ands r2, r1 + ldr r1, _080AE418 @ =0xfffffc00 + ands r1, r5 + orrs r1, r2 + strh r1, [r0, 0x4] + mov r1, sp + ldrh r1, [r1] + strh r1, [r0, 0x2E] + adds r4, 0x1C + adds r3, r4 + ldr r1, [r3] + bl _call_via_r1 +_080AE3F0: + ldr r0, _080AE41C @ =gTasks + mov r1, r10 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] +_080AE400: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE410: .4byte gSprites +_080AE414: .4byte 0x000003ff +_080AE418: .4byte 0xfffffc00 +_080AE41C: .4byte gTasks + thumb_func_end sub_80AE278 + + thumb_func_start sub_80AE420 +sub_80AE420: @ 80AE420 + push {lr} + adds r3, r0, 0 + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080AE442 + ldrb r1, [r3, 0x1] + movs r2, 0x3F + adds r0, r2, 0 + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] + ldrb r0, [r3, 0x3] + ands r2, r0 + strb r2, [r3, 0x3] + b _080AE456 +_080AE442: + ldrb r2, [r3, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0x1] + ldrb r0, [r3, 0x3] + ands r1, r0 + movs r0, 0x40 + orrs r1, r0 + strb r1, [r3, 0x3] +_080AE456: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bne _080AE46A + adds r0, r3, 0 + bl DestroySprite +_080AE46A: + pop {r0} + bx r0 + thumb_func_end sub_80AE420 + + thumb_func_start sub_80AE470 +sub_80AE470: @ 80AE470 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080AE4D8 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r3, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + ldr r0, _080AE4DC @ =gUnknown_83E60B8 + adds r1, 0x20 + lsls r1, 16 + asrs r1, 16 + movs r7, 0x22 + ldrsh r2, [r4, r7] + adds r3, r4, 0 + adds r3, 0x43 + ldrb r3, [r3] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080AE4E0 @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r6, r2, r3 + ldrh r5, [r6, 0x4] + lsls r1, r5, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r7, _080AE4E4 @ =0x000003ff + adds r0, r7, 0 + ands r1, r0 + ldr r0, _080AE4E8 @ =0xfffffc00 + ands r0, r5 + orrs r0, r1 + strh r0, [r6, 0x4] + ldr r1, _080AE4EC @ =gUnknown_2037EE2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r3, 0x1C + adds r2, r3 + ldr r0, _080AE4F0 @ =sub_80AE4F4 + str r0, [r2] + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE4D8: .4byte gBattleAnimArgs +_080AE4DC: .4byte gUnknown_83E60B8 +_080AE4E0: .4byte gSprites +_080AE4E4: .4byte 0x000003ff +_080AE4E8: .4byte 0xfffffc00 +_080AE4EC: .4byte gUnknown_2037EE2 +_080AE4F0: .4byte sub_80AE4F4 + thumb_func_end sub_80AE470 + + thumb_func_start sub_80AE4F4 +sub_80AE4F4: @ 80AE4F4 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080AE528 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080AE528: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080AE53C + adds r0, r3, 0 + bl DestroyAnimSprite +_080AE53C: + pop {r0} + bx r0 + thumb_func_end sub_80AE4F4 + + thumb_func_start sub_80AE540 +sub_80AE540: @ 80AE540 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080AE560 @ =gTasks + adds r5, r1, r0 + ldr r0, _080AE564 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AE56C + ldr r4, _080AE568 @ =gBattleAnimAttacker + b _080AE56E + .align 2, 0 +_080AE560: .4byte gTasks +_080AE564: .4byte gBattleAnimArgs +_080AE568: .4byte gBattleAnimAttacker +_080AE56C: + ldr r4, _080AE5B0 @ =gBattleAnimTarget +_080AE56E: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x26] + ldr r2, _080AE5B4 @ =gBattleAnimArgs + ldrh r0, [r2, 0x2] + movs r1, 0 + strh r0, [r5, 0x14] + strh r1, [r5, 0x16] + strh r1, [r5, 0x18] + strh r1, [r5, 0x1A] + strh r1, [r5, 0x1C] + ldrh r0, [r2, 0x6] + strh r0, [r5, 0x1E] + strh r1, [r5, 0x20] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x22] + ldr r0, _080AE5B8 @ =sub_80AE5BC + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE5B0: .4byte gBattleAnimTarget +_080AE5B4: .4byte gBattleAnimArgs +_080AE5B8: .4byte sub_80AE5BC + thumb_func_end sub_80AE540 + + thumb_func_start sub_80AE5BC +sub_80AE5BC: @ 80AE5BC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r2, r6, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080AE6A4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080AE6BC + ldrh r0, [r5, 0x20] + adds r0, 0x1 + movs r7, 0 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x22 + ldrsh r1, [r5, r2] + cmp r0, r1 + ble _080AE6CA + strh r7, [r5, 0x20] + ldr r0, _080AE6A8 @ =gUnknown_83E6120 + movs r3, 0x24 + ldrsh r1, [r5, r3] + movs r3, 0x26 + ldrsh r2, [r5, r3] + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080AE6CA + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080AE6AC @ =gSprites + adds r4, r0 + ldr r1, _080AE6B0 @ =gUnknown_83E60D0 + movs r2, 0x1A + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + movs r3, 0 + ldrsb r3, [r0, r3] + ldrh r0, [r4, 0x20] + adds r3, r0 + strh r3, [r4, 0x20] + movs r2, 0x1A + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + ldrh r0, [r4, 0x22] + adds r2, r0 + strh r2, [r4, 0x22] + movs r1, 0x18 + ldrsh r0, [r5, r1] + lsls r1, r0, 2 + adds r1, r0 + movs r0, 0x28 + subs r0, r1 + strh r0, [r4, 0x2E] + strh r3, [r4, 0x30] + ldrh r0, [r5, 0x24] + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + ldrh r0, [r5, 0x26] + strh r0, [r4, 0x36] + strh r6, [r4, 0x38] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080AE6B4 @ =sub_80AE704 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AE6B8 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldrh r0, [r5, 0x1A] + adds r0, 0x1 + strh r0, [r5, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080AE674 + strh r7, [r5, 0x1A] +_080AE674: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1E + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _080AE696 + strh r7, [r5, 0x1C] + ldrh r1, [r5, 0x18] + movs r3, 0x18 + ldrsh r0, [r5, r3] + cmp r0, 0x5 + bgt _080AE696 + adds r0, r1, 0x1 + strh r0, [r5, 0x18] +_080AE696: + ldrh r0, [r5, 0x16] + adds r0, 0x1 + strh r0, [r5, 0x16] + ldrh r0, [r5, 0x14] + subs r0, 0x1 + strh r0, [r5, 0x14] + b _080AE6CA + .align 2, 0 +_080AE6A4: .4byte gTasks +_080AE6A8: .4byte gUnknown_83E6120 +_080AE6AC: .4byte gSprites +_080AE6B0: .4byte gUnknown_83E60D0 +_080AE6B4: .4byte sub_80AE704 +_080AE6B8: .4byte sub_8074F6C +_080AE6BC: + movs r1, 0x16 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AE6CA + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080AE6CA: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AE5BC + + thumb_func_start sub_80AE6D0 +sub_80AE6D0: @ 80AE6D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080AE6F8 + ldr r2, _080AE700 @ =gTasks + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x16] + subs r1, 0x1 + strh r1, [r0, 0x16] + adds r0, r4, 0 + bl DestroySprite +_080AE6F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE700: .4byte gTasks + thumb_func_end sub_80AE6D0 + + thumb_func_start sub_80AE704 +sub_80AE704: @ 80AE704 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _080AE718 @ =sub_80AE6D0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE718: .4byte sub_80AE6D0 + thumb_func_end sub_80AE704 + + thumb_func_start sub_80AE71C +sub_80AE71C: @ 80AE71C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080AE730 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AE738 + ldr r4, _080AE734 @ =gBattleAnimAttacker + b _080AE73A + .align 2, 0 +_080AE730: .4byte gBattleAnimArgs +_080AE734: .4byte gBattleAnimAttacker +_080AE738: + ldr r4, _080AE768 @ =gBattleAnimTarget +_080AE73A: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080AE76C @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AE770 @ =sub_8074F50 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE768: .4byte gBattleAnimTarget +_080AE76C: .4byte move_anim_8074EE0 +_080AE770: .4byte sub_8074F50 + thumb_func_end sub_80AE71C + + thumb_func_start sub_80AE774 +sub_80AE774: @ 80AE774 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080AE788 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AE790 + ldr r4, _080AE78C @ =gBattleAnimAttacker + b _080AE792 + .align 2, 0 +_080AE788: .4byte gBattleAnimArgs +_080AE78C: .4byte gBattleAnimAttacker +_080AE790: + ldr r4, _080AE7CC @ =gBattleAnimTarget +_080AE792: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080AE7D0 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x24] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x26] + ldr r1, _080AE7D4 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AE7D8 @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE7CC: .4byte gBattleAnimTarget +_080AE7D0: .4byte gBattleAnimArgs +_080AE7D4: .4byte DestroyAnimSprite +_080AE7D8: .4byte sub_8074F6C + thumb_func_end sub_80AE774 + + thumb_func_start sub_80AE7DC +sub_80AE7DC: @ 80AE7DC + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r4, _080AE834 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + movs r0, 0x10 + strh r0, [r5, 0x3C] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080AE82A + movs r1, 0x3C + ldrsh r0, [r5, r1] + negs r0, r0 + strh r0, [r5, 0x3C] +_080AE82A: + ldr r0, _080AE838 @ =sub_80AE83C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AE834: .4byte gBattleAnimAttacker +_080AE838: .4byte sub_80AE83C + thumb_func_end sub_80AE7DC + + thumb_func_start sub_80AE83C +sub_80AE83C: @ 80AE83C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AE84E + cmp r0, 0x1 + beq _080AE864 + b _080AE894 +_080AE84E: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080AE894 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080AE894 +_080AE864: + ldrh r2, [r4, 0x3C] + ldrh r1, [r4, 0x20] + adds r0, r2, r1 + strh r0, [r4, 0x20] + ldr r3, _080AE89C @ =gSprites + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x24] + adds r2, r1 + strh r2, [r0, 0x24] + ldrh r0, [r4, 0x20] + adds r0, 0x50 + lsls r0, 16 + movs r1, 0xC8 + lsls r1, 17 + cmp r0, r1 + bls _080AE894 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080AE894: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AE89C: .4byte gSprites + thumb_func_end sub_80AE83C + + thumb_func_start sub_80AE8A0 +sub_80AE8A0: @ 80AE8A0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080AE8C4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080AE934 + cmp r0, 0x1 + bgt _080AE8C8 + cmp r0, 0 + beq _080AE8D4 + b _080AEA04 + .align 2, 0 +_080AE8C4: .4byte gTasks +_080AE8C8: + cmp r0, 0x2 + beq _080AE990 + cmp r0, 0x3 + bne _080AE8D2 + b _080AE9E4 +_080AE8D2: + b _080AEA04 +_080AE8D4: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0x26] + ldr r4, _080AE908 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AE910 + ldr r0, _080AE90C @ =0x0000ffe0 + strh r0, [r5, 0x24] + movs r0, 0x2 + b _080AE916 + .align 2, 0 +_080AE908: .4byte gBattleAnimAttacker +_080AE90C: .4byte 0x0000ffe0 +_080AE910: + movs r0, 0x20 + strh r0, [r5, 0x24] + ldr r0, _080AE92C @ =0x0000fffe +_080AE916: + strh r0, [r5, 0x22] + ldr r2, _080AE930 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r5, 0x24] + strh r1, [r0, 0x24] + b _080AE9D6 + .align 2, 0 +_080AE92C: .4byte 0x0000fffe +_080AE930: .4byte gSprites +_080AE934: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AEA04 + movs r0, 0 + strh r0, [r5, 0xA] + ldr r4, _080AE98C @ =gSprites + movs r1, 0x26 + ldrsh r0, [r5, r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r1, [r5, 0x24] + movs r2, 0x24 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080AE9D6 + ldrh r2, [r5, 0x22] + adds r2, r1, r2 + strh r2, [r5, 0x24] + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x24] + b _080AEA04 + .align 2, 0 +_080AE98C: .4byte gSprites +_080AE990: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AEA04 + movs r0, 0 + strh r0, [r5, 0xA] + ldr r1, _080AE9E0 @ =gSprites + movs r2, 0x26 + ldrsh r0, [r5, r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bne _080AEA04 +_080AE9D6: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080AEA04 + .align 2, 0 +_080AE9E0: .4byte gSprites +_080AE9E4: + ldr r2, _080AEA0C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080AEA04: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AEA0C: .4byte gSprites + thumb_func_end sub_80AE8A0 + + thumb_func_start sub_80AEA10 +sub_80AEA10: @ 80AEA10 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080AEA34 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080AEA2A + b _080AEB50 +_080AEA2A: + cmp r0, 0x1 + bgt _080AEA38 + cmp r0, 0 + beq _080AEA40 + b _080AEB92 + .align 2, 0 +_080AEA34: .4byte gTasks +_080AEA38: + cmp r0, 0x2 + bne _080AEA3E + b _080AEB84 +_080AEA3E: + b _080AEB92 +_080AEA40: + ldr r4, _080AEA80 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080AEA56 + movs r1, 0x1 +_080AEA56: + movs r6, 0 + strh r1, [r5, 0xA] + ldr r0, _080AEA84 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r2, [r0, r1] + adds r3, r0, 0 + cmp r2, 0 + beq _080AEA8C + cmp r2, 0x4 + beq _080AEAB4 + ldrh r1, [r3] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AEAEC + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0xE] + ldr r0, _080AEA88 @ =0x0000fff0 + b _080AEAF4 + .align 2, 0 +_080AEA80: .4byte gBattleAnimAttacker +_080AEA84: .4byte gBattleAnimArgs +_080AEA88: .4byte 0x0000fff0 +_080AEA8C: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + movs r2, 0xA + ldrsh r0, [r5, r2] + lsls r0, 7 + adds r0, 0x78 + strh r0, [r5, 0x10] + b _080AEB2A +_080AEAB4: + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r1, 7 + movs r0, 0x78 + subs r0, r1 + strh r0, [r5, 0xE] + ldr r4, _080AEAE8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r2, 0xA + ldrsh r1, [r5, r2] + lsls r1, 5 + subs r0, r1 + strh r0, [r5, 0x10] + b _080AEB2A + .align 2, 0 +_080AEAE8: .4byte gBattleAnimTarget +_080AEAEC: + ldr r0, _080AEB10 @ =0x0000fff0 + strh r0, [r5, 0xE] + movs r0, 0x80 + lsls r0, 1 +_080AEAF4: + strh r0, [r5, 0x10] + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080AEB14 + movs r2, 0 + ldrsh r0, [r3, r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + movs r0, 0x50 + subs r0, r1 + strh r0, [r5, 0x12] + b _080AEB2A + .align 2, 0 +_080AEB10: .4byte 0x0000fff0 +_080AEB14: + movs r0, 0 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + adds r0, 0x28 + strh r0, [r5, 0x12] + ldrh r1, [r5, 0xE] + ldrh r0, [r5, 0x10] + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] +_080AEB2A: + movs r2, 0xE + ldrsh r1, [r5, r2] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + bge _080AEB40 + movs r1, 0 + movs r0, 0x1 + strh r0, [r5, 0xA] + strh r1, [r5, 0x14] + b _080AEB7C +_080AEB40: + ldr r0, _080AEB4C @ =0x0000ffff + strh r0, [r5, 0xA] + movs r0, 0x3 + strh r0, [r5, 0x14] + b _080AEB7C + .align 2, 0 +_080AEB4C: .4byte 0x0000ffff +_080AEB50: + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + ble _080AEB92 + movs r0, 0 + strh r0, [r5, 0xC] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80AEB98 + lsls r0, 24 + cmp r0, 0 + bne _080AEB7C + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80AEB98 + lsls r0, 24 + cmp r0, 0 + beq _080AEB92 +_080AEB7C: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080AEB92 +_080AEB84: + movs r1, 0x16 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AEB92 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AEB92: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80AEA10 + + thumb_func_start sub_80AEB98 +sub_80AEB98: @ 80AEB98 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080AEC24 @ =gUnknown_83E6278 + movs r2, 0xE + ldrsh r1, [r4, r2] + movs r3, 0x12 + ldrsh r2, [r4, r3] + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080AEBCE + ldr r1, _080AEC28 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strh r5, [r0, 0x3A] + movs r1, 0x7 + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] +_080AEBCE: + ldrh r1, [r4, 0xA] + ldrh r5, [r4, 0x14] + adds r0, r1, r5 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bge _080AEBE0 + movs r0, 0x3 + strh r0, [r4, 0x14] +_080AEBE0: + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + ble _080AEBEC + movs r0, 0 + strh r0, [r4, 0x14] +_080AEBEC: + movs r3, 0xA + ldrsh r0, [r4, r3] + lsls r0, 4 + ldrh r5, [r4, 0xE] + adds r2, r0, r5 + strh r2, [r4, 0xE] + lsls r0, r1, 16 + asrs r3, r0, 16 + cmp r3, 0x1 + bne _080AEC0C + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0x10 + ldrsh r1, [r4, r5] + cmp r0, r1 + bge _080AEC20 +_080AEC0C: + movs r0, 0x1 + negs r0, r0 + cmp r3, r0 + bne _080AEC2C + lsls r0, r2, 16 + asrs r0, 16 + movs r2, 0x10 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _080AEC2C +_080AEC20: + movs r0, 0x1 + b _080AEC2E + .align 2, 0 +_080AEC24: .4byte gUnknown_83E6278 +_080AEC28: .4byte gSprites +_080AEC2C: + movs r0, 0 +_080AEC2E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80AEB98 + + thumb_func_start sub_80AEC34 +sub_80AEC34: @ 80AEC34 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080AEC74 + ldr r3, _080AEC7C @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080AEC74: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AEC7C: .4byte gTasks + thumb_func_end sub_80AEC34 + + thumb_func_start sub_80AEC80 +sub_80AEC80: @ 80AEC80 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080AEC92 + cmp r0, 0x1 + beq _080AECC4 + b _080AECD8 +_080AEC92: + ldr r4, _080AECC0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080AECD8 + .align 2, 0 +_080AECC0: .4byte gBattleAnimAttacker +_080AECC4: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080AECD8 + adds r0, r5, 0 + bl move_anim_8074EE0 +_080AECD8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AEC80 + + thumb_func_start sub_80AECE0 +sub_80AECE0: @ 80AECE0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080AED04 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080AECFA + b _080AEE6C +_080AECFA: + lsls r0, 2 + ldr r1, _080AED08 @ =_080AED0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AED04: .4byte gTasks +_080AED08: .4byte _080AED0C + .align 2, 0 +_080AED0C: + .4byte _080AED20 + .4byte _080AEDB0 + .4byte _080AEDEC + .4byte _080AEE48 + .4byte _080AEE58 +_080AED20: + ldr r4, _080AEDA4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x16] + movs r0, 0x4 + strh r0, [r5, 0x18] + ldr r0, _080AEDA8 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + movs r2, 0x1C + ldrsh r0, [r5, r2] + movs r2, 0x14 + ldrsh r1, [r5, r2] + subs r0, r1 + movs r1, 0x5 + bl __divsi3 + strh r0, [r5, 0x1A] + movs r0, 0x7 + strh r0, [r5, 0x10] + ldr r0, _080AEDAC @ =0x0000ffff + strh r0, [r5, 0x12] + movs r0, 0xC + strh r0, [r5, 0x1E] + subs r0, 0x4C + bl sub_8073A44 + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0x20] + movs r0, 0x3F + bl sub_8073A44 + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0x22] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x24] + movs r1, 0x22 + ldrsh r0, [r5, r1] + movs r2, 0x20 + ldrsh r1, [r5, r2] + subs r0, r1 + movs r1, 0x3 + bl __divsi3 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + b _080AEE6A + .align 2, 0 +_080AEDA4: .4byte gBattleAnimAttacker +_080AEDA8: .4byte gBattleAnimTarget +_080AEDAC: .4byte 0x0000ffff +_080AEDB0: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + cmp r0, 0 + ble _080AEDE0 + movs r0, 0 + strh r0, [r5, 0xA] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80AEE74 + lsls r0, 24 + cmp r0, 0 + beq _080AEDE0 + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bne _080AEDDA + movs r0, 0x3 + b _080AEDDE +_080AEDDA: + ldrh r0, [r5, 0x8] + adds r0, 0x1 +_080AEDDE: + strh r0, [r5, 0x8] +_080AEDE0: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080AEE6C + b _080AEE62 +_080AEDEC: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080AEDFA + subs r0, r1, 0x1 + strh r0, [r5, 0x1E] +_080AEDFA: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + movs r3, 0 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080AEE6C + strh r3, [r5, 0xA] + ldrh r1, [r5, 0xC] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080AEE26 + movs r0, 0x4 + strh r0, [r5, 0x16] + movs r0, 0x44 + strh r0, [r5, 0x18] + strh r3, [r5, 0x10] + strh r2, [r5, 0x12] + b _080AEE36 +_080AEE26: + movs r0, 0x44 + strh r0, [r5, 0x16] + movs r0, 0x4 + strh r0, [r5, 0x18] + movs r0, 0x7 + strh r0, [r5, 0x10] + ldr r0, _080AEE44 @ =0x0000ffff + strh r0, [r5, 0x12] +_080AEE36: + movs r1, 0x1E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080AEE68 + movs r0, 0x4 + b _080AEE6A + .align 2, 0 +_080AEE44: .4byte 0x0000ffff +_080AEE48: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AEE6C + adds r0, r2, 0 + bl DestroyAnimVisualTask + b _080AEE6C +_080AEE58: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080AEE68 +_080AEE62: + subs r0, r1, 0x1 + strh r0, [r5, 0x1E] + b _080AEE6C +_080AEE68: + movs r0, 0x1 +_080AEE6A: + strh r0, [r5, 0x8] +_080AEE6C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AECE0 + + thumb_func_start sub_80AEE74 +sub_80AEE74: @ 80AEE74 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080AEF3C @ =gUnknown_83E62A8 + movs r2, 0x14 + ldrsh r1, [r4, r2] + movs r3, 0x16 + ldrsh r2, [r4, r3] + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080AEEE0 + ldr r1, _080AEF40 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldrh r6, [r4, 0x10] + adds r1, r6 + ldr r6, _080AEF44 @ =0x000003ff + adds r0, r6, 0 + ands r1, r0 + ldr r0, _080AEF48 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _080AEEC8 + movs r0, 0x7 + strh r0, [r4, 0x10] +_080AEEC8: + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0x7 + ble _080AEED4 + movs r0, 0 + strh r0, [r4, 0x10] +_080AEED4: + strh r5, [r3, 0x3A] + movs r0, 0x3 + strh r0, [r3, 0x3C] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] +_080AEEE0: + movs r3, 0x10 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080AEF02 + movs r5, 0x12 + ldrsh r0, [r4, r5] + cmp r0, 0 + ble _080AEF02 + ldrh r1, [r4, 0x26] + ldrh r6, [r4, 0x24] + adds r1, r6 + strh r1, [r4, 0x24] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x6F + bl PlaySE12WithPanning +_080AEF02: + movs r0, 0x12 + ldrsh r3, [r4, r0] + ldrh r2, [r4, 0x16] + cmp r3, 0 + bge _080AEF18 + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0x18 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080AEF28 +_080AEF18: + cmp r3, 0 + ble _080AEF4C + lsls r0, r2, 16 + asrs r0, 16 + movs r6, 0x18 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080AEF4C +_080AEF28: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x1A] + ldrh r1, [r4, 0x14] + adds r0, r1 + strh r0, [r4, 0x14] + movs r0, 0x1 + b _080AEF58 + .align 2, 0 +_080AEF3C: .4byte gUnknown_83E62A8 +_080AEF40: .4byte gSprites +_080AEF44: .4byte 0x000003ff +_080AEF48: .4byte 0xfffffc00 +_080AEF4C: + movs r3, 0x12 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r0, r2, r0 + strh r0, [r4, 0x16] + movs r0, 0 +_080AEF58: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80AEE74 + + thumb_func_start sub_80AEF60 +sub_80AEF60: @ 80AEF60 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080AEF96 + ldr r3, _080AEF9C @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080AEF96: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AEF9C: .4byte gTasks + thumb_func_end sub_80AEF60 + + thumb_func_start sub_80AEFA0 +sub_80AEFA0: @ 80AEFA0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080AEFC4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080AF01C + cmp r0, 0x1 + bgt _080AEFC8 + cmp r0, 0 + beq _080AEFCE + b _080AF052 + .align 2, 0 +_080AEFC4: .4byte gTasks +_080AEFC8: + cmp r0, 0x2 + beq _080AF044 + b _080AF052 +_080AEFCE: + ldr r0, _080AF018 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r5, 0x26] + strh r0, [r5, 0x24] + cmp r0, 0x10 + ble _080AEFF8 + adds r2, r0, 0 +_080AEFE8: + adds r1, r2, 0 + subs r1, 0x20 + adds r2, r1, 0 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x10 + bgt _080AEFE8 + strh r1, [r5, 0x24] +_080AEFF8: + ldr r4, _080AF018 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x2 + strh r0, [r5, 0x20] + b _080AF03C + .align 2, 0 +_080AF018: .4byte gBattleAnimTarget +_080AF01C: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AF052 + movs r0, 0 + strh r0, [r5, 0xA] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80AF058 + lsls r0, 24 + cmp r0, 0 + beq _080AF052 +_080AF03C: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080AF052 +_080AF044: + movs r1, 0x1C + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AF052 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080AF052: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AEFA0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index d343c68d4..08aa16703 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -171,25 +171,25 @@ EvolutionScene: @ 80CDDF4 movs r1, 0 bl SetGpuReg bl ResetPaletteFade - ldr r0, _080CE080 @ =gUnknown_2022974 + ldr r0, _080CE080 @ =gBattle_BG0_X movs r2, 0 strh r2, [r0] - ldr r0, _080CE084 @ =gUnknown_2022976 + ldr r0, _080CE084 @ =gBattle_BG0_Y strh r2, [r0] - ldr r0, _080CE088 @ =gUnknown_2022978 + ldr r0, _080CE088 @ =gBattle_BG1_X strh r2, [r0] - ldr r0, _080CE08C @ =gUnknown_202297A + ldr r0, _080CE08C @ =gBattle_BG1_Y strh r2, [r0] - ldr r0, _080CE090 @ =gUnknown_202297C + ldr r0, _080CE090 @ =gBattle_BG2_X strh r2, [r0] - ldr r0, _080CE094 @ =gUnknown_202297E + ldr r0, _080CE094 @ =gBattle_BG2_Y strh r2, [r0] - ldr r1, _080CE098 @ =gUnknown_2022980 + ldr r1, _080CE098 @ =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r0, _080CE09C @ =gUnknown_2022982 + ldr r0, _080CE09C @ =gBattle_BG3_Y movs r1, 0 strh r1, [r0] ldr r1, _080CE0A0 @ =gUnknown_2022B50 @@ -198,7 +198,7 @@ EvolutionScene: @ 80CDDF4 bl sub_800F34C bl LoadBattleTextboxAndBackground bl ResetSpriteData - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl FreeAllSpritePalettes ldr r0, _080CE0A4 @ =gReservedSpritePaletteCount @@ -239,7 +239,7 @@ EvolutionScene: @ 80CDDF4 bl GetMonData mov r9, r0 lsls r0, r5, 3 - ldr r1, _080CE0B8 @ =gUnknown_82350AC + ldr r1, _080CE0B8 @ =gMonFrontPicTable adds r0, r1 ldr r2, _080CE0BC @ =gMonSpritesGfxPtr ldr r1, [r2] @@ -257,7 +257,7 @@ EvolutionScene: @ 80CDDF4 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0x1 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE0C0 @ =gMultiuseSpriteTemplate mov r8, r0 ldr r1, _080CE0C4 @ =gDummySpriteAffineAnimTable @@ -295,7 +295,7 @@ EvolutionScene: @ 80CDDF4 strb r0, [r1] mov r1, r10 lsls r0, r1, 3 - ldr r2, _080CE0B8 @ =gUnknown_82350AC + ldr r2, _080CE0B8 @ =gMonFrontPicTable adds r0, r2 ldr r2, _080CE0BC @ =gMonSpritesGfxPtr ldr r1, [r2] @@ -313,7 +313,7 @@ EvolutionScene: @ 80CDDF4 bl LoadCompressedPalette mov r0, r10 movs r1, 0x3 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE0C4 @ =gDummySpriteAffineAnimTable mov r1, r8 str r0, [r1, 0x10] @@ -401,21 +401,21 @@ EvolutionScene: @ 80CDDF4 bx r0 .align 2, 0 _080CE07C: .4byte 0x05006000 -_080CE080: .4byte gUnknown_2022974 -_080CE084: .4byte gUnknown_2022976 -_080CE088: .4byte gUnknown_2022978 -_080CE08C: .4byte gUnknown_202297A -_080CE090: .4byte gUnknown_202297C -_080CE094: .4byte gUnknown_202297E -_080CE098: .4byte gUnknown_2022980 -_080CE09C: .4byte gUnknown_2022982 +_080CE080: .4byte gBattle_BG0_X +_080CE084: .4byte gBattle_BG0_Y +_080CE088: .4byte gBattle_BG1_X +_080CE08C: .4byte gBattle_BG1_Y +_080CE090: .4byte gBattle_BG2_X +_080CE094: .4byte gBattle_BG2_Y +_080CE098: .4byte gBattle_BG3_X +_080CE09C: .4byte gBattle_BG3_Y _080CE0A0: .4byte gUnknown_2022B50 _080CE0A4: .4byte gReservedSpritePaletteCount _080CE0A8: .4byte gUnknown_2039A20 _080CE0AC: .4byte gStringVar1 _080CE0B0: .4byte gStringVar2 _080CE0B4: .4byte gSpeciesNames -_080CE0B8: .4byte gUnknown_82350AC +_080CE0B8: .4byte gMonFrontPicTable _080CE0BC: .4byte gMonSpritesGfxPtr _080CE0C0: .4byte gMultiuseSpriteTemplate _080CE0C4: .4byte gDummySpriteAffineAnimTable @@ -494,24 +494,24 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8 movs r1, 0 bl SetGpuReg bl ResetPaletteFade - ldr r0, _080CE290 @ =gUnknown_2022974 + ldr r0, _080CE290 @ =gBattle_BG0_X strh r4, [r0] - ldr r0, _080CE294 @ =gUnknown_2022976 + ldr r0, _080CE294 @ =gBattle_BG0_Y strh r4, [r0] - ldr r0, _080CE298 @ =gUnknown_2022978 + ldr r0, _080CE298 @ =gBattle_BG1_X strh r4, [r0] - ldr r0, _080CE29C @ =gUnknown_202297A + ldr r0, _080CE29C @ =gBattle_BG1_Y strh r4, [r0] - ldr r0, _080CE2A0 @ =gUnknown_202297C + ldr r0, _080CE2A0 @ =gBattle_BG2_X strh r4, [r0] - ldr r0, _080CE2A4 @ =gUnknown_202297E + ldr r0, _080CE2A4 @ =gBattle_BG2_Y strh r4, [r0] - ldr r1, _080CE2A8 @ =gUnknown_2022980 + ldr r1, _080CE2A8 @ =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r0, _080CE2AC @ =gUnknown_2022982 + ldr r0, _080CE2AC @ =gBattle_BG3_Y strh r4, [r0] ldr r1, _080CE2B0 @ =gUnknown_2022B50 movs r0, 0x9 @@ -524,7 +524,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8 movs r0, 0x4 strb r0, [r1] lsls r0, r5, 3 - ldr r1, _080CE2B8 @ =gUnknown_82350AC + ldr r1, _080CE2B8 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080CE2BC @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -542,7 +542,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0x3 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE2C0 @ =gMultiuseSpriteTemplate ldr r1, _080CE2C4 @ =gDummySpriteAffineAnimTable str r1, [r0, 0x10] @@ -608,17 +608,17 @@ _080CE280: .4byte gTasks _080CE284: .4byte gUnknown_2039A20 _080CE288: .4byte gPlayerParty _080CE28C: .4byte 0x05006000 -_080CE290: .4byte gUnknown_2022974 -_080CE294: .4byte gUnknown_2022976 -_080CE298: .4byte gUnknown_2022978 -_080CE29C: .4byte gUnknown_202297A -_080CE2A0: .4byte gUnknown_202297C -_080CE2A4: .4byte gUnknown_202297E -_080CE2A8: .4byte gUnknown_2022980 -_080CE2AC: .4byte gUnknown_2022982 +_080CE290: .4byte gBattle_BG0_X +_080CE294: .4byte gBattle_BG0_Y +_080CE298: .4byte gBattle_BG1_X +_080CE29C: .4byte gBattle_BG1_Y +_080CE2A0: .4byte gBattle_BG2_X +_080CE2A4: .4byte gBattle_BG2_Y +_080CE2A8: .4byte gBattle_BG3_X +_080CE2AC: .4byte gBattle_BG3_Y _080CE2B0: .4byte gUnknown_2022B50 _080CE2B4: .4byte gReservedSpritePaletteCount -_080CE2B8: .4byte gUnknown_82350AC +_080CE2B8: .4byte gMonFrontPicTable _080CE2BC: .4byte gMonSpritesGfxPtr _080CE2C0: .4byte gMultiuseSpriteTemplate _080CE2C4: .4byte gDummySpriteAffineAnimTable @@ -691,37 +691,37 @@ _080CE34C: ldr r1, _080CE398 @ =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] - ldr r0, _080CE39C @ =gUnknown_2022974 + ldr r0, _080CE39C @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080CE3A0 @ =gUnknown_2022976 + ldr r0, _080CE3A0 @ =gBattle_BG0_Y strh r1, [r0] - ldr r0, _080CE3A4 @ =gUnknown_2022978 + ldr r0, _080CE3A4 @ =gBattle_BG1_X strh r1, [r0] - ldr r0, _080CE3A8 @ =gUnknown_202297A + ldr r0, _080CE3A8 @ =gBattle_BG1_Y strh r1, [r0] - ldr r0, _080CE3AC @ =gUnknown_202297C + ldr r0, _080CE3AC @ =gBattle_BG2_X strh r1, [r0] - ldr r0, _080CE3B0 @ =gUnknown_202297E + ldr r0, _080CE3B0 @ =gBattle_BG2_Y strh r1, [r0] - ldr r2, _080CE3B4 @ =gUnknown_2022980 + ldr r2, _080CE3B4 @ =gBattle_BG3_X movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 strh r0, [r2] - ldr r0, _080CE3B8 @ =gUnknown_2022982 + ldr r0, _080CE3B8 @ =gBattle_BG3_Y strh r1, [r0] b _080CE4EC .align 2, 0 _080CE398: .4byte gReservedSpritePaletteCount -_080CE39C: .4byte gUnknown_2022974 -_080CE3A0: .4byte gUnknown_2022976 -_080CE3A4: .4byte gUnknown_2022978 -_080CE3A8: .4byte gUnknown_202297A -_080CE3AC: .4byte gUnknown_202297C -_080CE3B0: .4byte gUnknown_202297E -_080CE3B4: .4byte gUnknown_2022980 -_080CE3B8: .4byte gUnknown_2022982 +_080CE39C: .4byte gBattle_BG0_X +_080CE3A0: .4byte gBattle_BG0_Y +_080CE3A4: .4byte gBattle_BG1_X +_080CE3A8: .4byte gBattle_BG1_Y +_080CE3AC: .4byte gBattle_BG2_X +_080CE3B0: .4byte gBattle_BG2_Y +_080CE3B4: .4byte gBattle_BG3_X +_080CE3B8: .4byte gBattle_BG3_Y _080CE3BC: bl ResetPaletteFade ldr r0, _080CE3D8 @ =nullsub_76 @@ -770,7 +770,7 @@ _080CE414: bl GetMonData adds r4, r0, 0 lsls r0, r6, 3 - ldr r1, _080CE454 @ =gUnknown_82350AC + ldr r1, _080CE454 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080CE458 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -788,12 +788,12 @@ _080CE414: bl LoadCompressedPalette b _080CE4EC .align 2, 0 -_080CE454: .4byte gUnknown_82350AC +_080CE454: .4byte gMonFrontPicTable _080CE458: .4byte gMonSpritesGfxPtr _080CE45C: adds r0, r6, 0 movs r1, 0x1 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE4B4 @ =gMultiuseSpriteTemplate ldr r1, _080CE4B8 @ =gDummySpriteAffineAnimTable str r1, [r0, 0x10] @@ -951,7 +951,7 @@ TradeEvolutionScene: @ 80CE540 movs r4, 0 strb r6, [r0] lsls r0, r5, 3 - ldr r1, _080CE6C4 @ =gUnknown_82350AC + ldr r1, _080CE6C4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080CE6C8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -969,7 +969,7 @@ TradeEvolutionScene: @ 80CE540 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0x1 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _080CE6CC @ =gMultiuseSpriteTemplate ldr r1, _080CE6D0 @ =gDummySpriteAffineAnimTable str r1, [r0, 0x10] @@ -1027,24 +1027,24 @@ TradeEvolutionScene: @ 80CE540 mov r1, sp ldrh r1, [r1, 0x14] strh r1, [r0, 0x1C] - ldr r0, _080CE6E4 @ =gUnknown_2022974 + ldr r0, _080CE6E4 @ =gBattle_BG0_X strh r4, [r0] - ldr r0, _080CE6E8 @ =gUnknown_2022976 + ldr r0, _080CE6E8 @ =gBattle_BG0_Y strh r4, [r0] - ldr r0, _080CE6EC @ =gUnknown_2022978 + ldr r0, _080CE6EC @ =gBattle_BG1_X strh r4, [r0] - ldr r0, _080CE6F0 @ =gUnknown_202297A + ldr r0, _080CE6F0 @ =gBattle_BG1_Y strh r4, [r0] - ldr r0, _080CE6F4 @ =gUnknown_202297C + ldr r0, _080CE6F4 @ =gBattle_BG2_X strh r4, [r0] - ldr r0, _080CE6F8 @ =gUnknown_202297E + ldr r0, _080CE6F8 @ =gBattle_BG2_Y strh r4, [r0] - ldr r1, _080CE6FC @ =gUnknown_2022980 + ldr r1, _080CE6FC @ =gBattle_BG3_X movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r0, _080CE700 @ =gUnknown_2022982 + ldr r0, _080CE700 @ =gBattle_BG3_Y strh r4, [r0] ldr r2, _080CE704 @ =gTextFlags ldrb r0, [r2] @@ -1069,7 +1069,7 @@ _080CE6B4: .4byte gStringVar2 _080CE6B8: .4byte gSpeciesNames _080CE6BC: .4byte gAffineAnimsDisabled _080CE6C0: .4byte gUnknown_2039A20 -_080CE6C4: .4byte gUnknown_82350AC +_080CE6C4: .4byte gMonFrontPicTable _080CE6C8: .4byte gMonSpritesGfxPtr _080CE6CC: .4byte gMultiuseSpriteTemplate _080CE6D0: .4byte gDummySpriteAffineAnimTable @@ -1077,14 +1077,14 @@ _080CE6D4: .4byte gSprites _080CE6D8: .4byte nullsub_10 _080CE6DC: .4byte sub_80CF53C _080CE6E0: .4byte gTasks -_080CE6E4: .4byte gUnknown_2022974 -_080CE6E8: .4byte gUnknown_2022976 -_080CE6EC: .4byte gUnknown_2022978 -_080CE6F0: .4byte gUnknown_202297A -_080CE6F4: .4byte gUnknown_202297C -_080CE6F8: .4byte gUnknown_202297E -_080CE6FC: .4byte gUnknown_2022980 -_080CE700: .4byte gUnknown_2022982 +_080CE6E4: .4byte gBattle_BG0_X +_080CE6E8: .4byte gBattle_BG0_Y +_080CE6EC: .4byte gBattle_BG1_X +_080CE6F0: .4byte gBattle_BG1_Y +_080CE6F4: .4byte gBattle_BG2_X +_080CE6F8: .4byte gBattle_BG2_Y +_080CE6FC: .4byte gBattle_BG3_X +_080CE700: .4byte gBattle_BG3_Y _080CE704: .4byte gTextFlags _080CE708: .4byte sub_80D00D8 _080CE70C: .4byte sub_80CE72C @@ -3567,7 +3567,7 @@ _080CFCAE: movs r0, 0 movs r1, 0xA8 movs r2, 0xE0 - bl sub_814FE40 + bl LoadUserWindowBorderGfx ldr r0, _080CFCF4 @ =gUnknown_826D1CC movs r1, 0xA8 str r1, [sp] @@ -3577,7 +3577,7 @@ _080CFCAE: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r3, _080CFCF8 @ =gUnknown_2023E82 strb r4, [r3, 0x1] ldr r0, _080CFCF0 @ =gTasks @@ -3597,7 +3597,7 @@ _080CFCF0: .4byte gTasks _080CFCF4: .4byte gUnknown_826D1CC _080CFCF8: .4byte gUnknown_2023E82 _080CFCFC: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r4, r0, 24 cmp r4, 0 @@ -3691,7 +3691,7 @@ _080CFDBA: ldrb r0, [r0] cmp r0, 0 beq _080CFDC6 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite _080CFDC6: movs r0, 0x3 bl GetBgTilemapBuffer @@ -3981,105 +3981,105 @@ nullsub_76: @ 80D004C thumb_func_start sub_80D0050 sub_80D0050: @ 80D0050 push {lr} - ldr r0, _080D00B8 @ =gUnknown_2022974 + ldr r0, _080D00B8 @ =gBattle_BG0_X ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg - ldr r0, _080D00BC @ =gUnknown_2022976 + ldr r0, _080D00BC @ =gBattle_BG0_Y ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, _080D00C0 @ =gUnknown_2022978 + ldr r0, _080D00C0 @ =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, _080D00C4 @ =gUnknown_202297A + ldr r0, _080D00C4 @ =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, _080D00C8 @ =gUnknown_202297C + ldr r0, _080D00C8 @ =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, _080D00CC @ =gUnknown_202297E + ldr r0, _080D00CC @ =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, _080D00D0 @ =gUnknown_2022980 + ldr r0, _080D00D0 @ =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg - ldr r0, _080D00D4 @ =gUnknown_2022982 + ldr r0, _080D00D4 @ =gBattle_BG3_Y ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .align 2, 0 -_080D00B8: .4byte gUnknown_2022974 -_080D00BC: .4byte gUnknown_2022976 -_080D00C0: .4byte gUnknown_2022978 -_080D00C4: .4byte gUnknown_202297A -_080D00C8: .4byte gUnknown_202297C -_080D00CC: .4byte gUnknown_202297E -_080D00D0: .4byte gUnknown_2022980 -_080D00D4: .4byte gUnknown_2022982 +_080D00B8: .4byte gBattle_BG0_X +_080D00BC: .4byte gBattle_BG0_Y +_080D00C0: .4byte gBattle_BG1_X +_080D00C4: .4byte gBattle_BG1_Y +_080D00C8: .4byte gBattle_BG2_X +_080D00CC: .4byte gBattle_BG2_Y +_080D00D0: .4byte gBattle_BG3_X +_080D00D4: .4byte gBattle_BG3_Y thumb_func_end sub_80D0050 thumb_func_start sub_80D00D8 sub_80D00D8: @ 80D00D8 push {lr} - ldr r0, _080D0140 @ =gUnknown_2022974 + ldr r0, _080D0140 @ =gBattle_BG0_X ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg - ldr r0, _080D0144 @ =gUnknown_2022976 + ldr r0, _080D0144 @ =gBattle_BG0_Y ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg - ldr r0, _080D0148 @ =gUnknown_2022978 + ldr r0, _080D0148 @ =gBattle_BG1_X ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg - ldr r0, _080D014C @ =gUnknown_202297A + ldr r0, _080D014C @ =gBattle_BG1_Y ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg - ldr r0, _080D0150 @ =gUnknown_202297C + ldr r0, _080D0150 @ =gBattle_BG2_X ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg - ldr r0, _080D0154 @ =gUnknown_202297E + ldr r0, _080D0154 @ =gBattle_BG2_Y ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg - ldr r0, _080D0158 @ =gUnknown_2022980 + ldr r0, _080D0158 @ =gBattle_BG3_X ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg - ldr r0, _080D015C @ =gUnknown_2022982 + ldr r0, _080D015C @ =gBattle_BG3_Y ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .align 2, 0 -_080D0140: .4byte gUnknown_2022974 -_080D0144: .4byte gUnknown_2022976 -_080D0148: .4byte gUnknown_2022978 -_080D014C: .4byte gUnknown_202297A -_080D0150: .4byte gUnknown_202297C -_080D0154: .4byte gUnknown_202297E -_080D0158: .4byte gUnknown_2022980 -_080D015C: .4byte gUnknown_2022982 +_080D0140: .4byte gBattle_BG0_X +_080D0144: .4byte gBattle_BG0_Y +_080D0148: .4byte gBattle_BG1_X +_080D014C: .4byte gBattle_BG1_Y +_080D0150: .4byte gBattle_BG2_X +_080D0154: .4byte gBattle_BG2_Y +_080D0158: .4byte gBattle_BG3_X +_080D015C: .4byte gBattle_BG3_Y thumb_func_end sub_80D00D8 thumb_func_start sub_80D0160 @@ -4225,9 +4225,9 @@ sub_80D025C: @ 80D025C push {r6,r7} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _080D0288 @ =gUnknown_2022978 + ldr r0, _080D0288 @ =gBattle_BG1_X mov r8, r0 - ldr r1, _080D028C @ =gUnknown_202297A + ldr r1, _080D028C @ =gBattle_BG1_Y mov r9, r1 ldr r1, _080D0290 @ =gTasks lsls r0, r5, 2 @@ -4238,18 +4238,18 @@ sub_80D025C: @ 80D025C ldrsh r0, [r0, r2] cmp r0, 0 bne _080D029C - ldr r7, _080D0294 @ =gUnknown_202297C - ldr r6, _080D0298 @ =gUnknown_202297E + ldr r7, _080D0294 @ =gBattle_BG2_X + ldr r6, _080D0298 @ =gBattle_BG2_Y b _080D02A0 .align 2, 0 -_080D0288: .4byte gUnknown_2022978 -_080D028C: .4byte gUnknown_202297A +_080D0288: .4byte gBattle_BG1_X +_080D028C: .4byte gBattle_BG1_Y _080D0290: .4byte gTasks -_080D0294: .4byte gUnknown_202297C -_080D0298: .4byte gUnknown_202297E +_080D0294: .4byte gBattle_BG2_X +_080D0298: .4byte gBattle_BG2_Y _080D029C: - ldr r7, _080D0328 @ =gUnknown_2022980 - ldr r6, _080D032C @ =gUnknown_2022982 + ldr r7, _080D0328 @ =gBattle_BG3_X + ldr r6, _080D032C @ =gBattle_BG3_Y _080D02A0: lsls r4, r5, 2 adds r4, r5 @@ -4314,8 +4314,8 @@ _080D031A: pop {r0} bx r0 .align 2, 0 -_080D0328: .4byte gUnknown_2022980 -_080D032C: .4byte gUnknown_2022982 +_080D0328: .4byte gBattle_BG3_X +_080D032C: .4byte gBattle_BG3_Y _080D0330: .4byte sub_80D0160 thumb_func_end sub_80D025C @@ -4388,7 +4388,7 @@ _080D03A0: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080D0428 @ =gUnknown_83F73A8 movs r0, 0x1 movs r2, 0 @@ -4527,12 +4527,12 @@ sub_80D04E8: @ 80D04E8 movs r0, 0x50 movs r1, 0 bl SetGpuReg - ldr r0, _080D0544 @ =gUnknown_2022978 + ldr r0, _080D0544 @ =gBattle_BG1_X movs r1, 0 strh r1, [r0] - ldr r0, _080D0548 @ =gUnknown_202297A + ldr r0, _080D0548 @ =gBattle_BG1_Y strh r1, [r0] - ldr r0, _080D054C @ =gUnknown_202297C + ldr r0, _080D054C @ =gBattle_BG2_X strh r1, [r0] movs r0, 0x1 movs r1, 0x5 @@ -4562,9 +4562,9 @@ sub_80D04E8: @ 80D04E8 pop {r0} bx r0 .align 2, 0 -_080D0544: .4byte gUnknown_2022978 -_080D0548: .4byte gUnknown_202297A -_080D054C: .4byte gUnknown_202297C +_080D0544: .4byte gBattle_BG1_X +_080D0548: .4byte gBattle_BG1_Y +_080D054C: .4byte gBattle_BG2_X _080D0550: .4byte gUnknown_2039A24 thumb_func_end sub_80D04E8 diff --git a/asm/field_camera.s b/asm/field_camera.s index 3d4ca0025..5541c6472 100644 --- a/asm/field_camera.s +++ b/asm/field_camera.s @@ -528,7 +528,7 @@ sub_805A948: @ 805A948 mov r8, r1 adds r0, r6, 0 adds r1, r7, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x80 @@ -557,7 +557,7 @@ _0805A98C: asrs r0, 16 lsls r1, r7, 16 asrs r1, 16 - bl sub_8058F8C + bl MapGridGetMetatileLayerTypeAt lsls r0, 24 lsrs r0, 24 lsls r1, r4, 4 diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 9748301f7..67e7e7d5a 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -884,7 +884,7 @@ sub_806CF38: @ 806CF38 ldrh r1, [r4, 0x2] b _0806CF7E _0806CF60: - ldr r1, _0806CFA4 @ =gUnknown_826D2D8 + ldr r1, _0806CFA4 @ =gDirectionToVectors lsls r2, r6, 3 adds r0, r2, r1 ldr r3, [r0] @@ -919,7 +919,7 @@ _0806CF9E: movs r0, 0 b _0806CFDE .align 2, 0 -_0806CFA4: .4byte gUnknown_826D2D8 +_0806CFA4: .4byte gDirectionToVectors _0806CFA8: .4byte gMapObjects _0806CFAC: movs r4, 0 @@ -936,7 +936,7 @@ _0806CFBC: adds r4, 0x1 cmp r4, 0x3 ble _0806CFB0 - ldr r0, _0806CFE8 @ =gUnknown_3005074 + ldr r0, _0806CFE8 @ =gSelectedEventObject strb r3, [r0] ldr r1, _0806CFEC @ =gSpecialVar_LastTalked adds r0, r2, r3 @@ -954,7 +954,7 @@ _0806CFDE: bx r1 .align 2, 0 _0806CFE4: .4byte gUnknown_2031DEC -_0806CFE8: .4byte gUnknown_3005074 +_0806CFE8: .4byte gSelectedEventObject _0806CFEC: .4byte gSpecialVar_LastTalked _0806CFF0: .4byte gSpecialVar_Facing thumb_func_end sub_806CF38 @@ -994,7 +994,7 @@ _0806D02A: lsrs r0, 24 cmp r0, 0x1 bne _0806D092 - ldr r1, _0806D09C @ =gUnknown_826D2D8 + ldr r1, _0806D09C @ =gDirectionToVectors mov r0, r8 lsls r2, r0, 3 adds r0, r2, r1 @@ -1042,9 +1042,9 @@ _0806D092: b _0806D0C8 .align 2, 0 _0806D098: .4byte gMapObjects -_0806D09C: .4byte gUnknown_826D2D8 +_0806D09C: .4byte gDirectionToVectors _0806D0A0: - ldr r0, _0806D0D4 @ =gUnknown_3005074 + ldr r0, _0806D0D4 @ =gSelectedEventObject strb r5, [r0] ldr r4, _0806D0D8 @ =gSpecialVar_LastTalked ldr r1, _0806D0DC @ =gMapObjects @@ -1069,7 +1069,7 @@ _0806D0C8: pop {r1} bx r1 .align 2, 0 -_0806D0D4: .4byte gUnknown_3005074 +_0806D0D4: .4byte gSelectedEventObject _0806D0D8: .4byte gSpecialVar_LastTalked _0806D0DC: .4byte gMapObjects _0806D0E0: .4byte gSpecialVar_Facing @@ -1828,7 +1828,7 @@ _0806D6EC: .align 2, 0 _0806D700: .4byte gUnknown_81A8DFD _0806D704: - bl sub_80463B8 + bl ShouldEggHatch lsls r0, 24 cmp r0, 0 beq _0806D720 @@ -2195,7 +2195,7 @@ mapheader_run_first_tag2_script_list_match_conditionally: @ 806D964 adds r1, r5, 0 adds r2, r7, 0 bl sub_806DC54 - bl sub_807E438 + bl DoWarp movs r0, 0x1 b _0806DA02 .align 2, 0 @@ -2331,7 +2331,7 @@ _0806DAC4: lsrs r0, 24 cmp r0, 0x1 bne _0806DAE4 - bl sub_80559E4 + bl ResetInitialPlayerAvatarState ldr r0, _0806DAE0 @ =gUnknown_81C1361 bl ScriptContext1_SetupScript movs r0, 0x1 @@ -2339,7 +2339,7 @@ _0806DAC4: .align 2, 0 _0806DAE0: .4byte gUnknown_81C1361 _0806DAE4: - bl sub_807E438 + bl DoWarp movs r0, 0x1 b _0806DAEE _0806DAEC: @@ -2638,7 +2638,7 @@ map_warp_consider_2_to_inside: @ 806DCD0 adds r1, r4, 0 adds r2, r6, 0 bl sub_806DC54 - bl sub_807E4DC + bl DoDoorWarp movs r0, 0x1 b _0806DD32 .align 2, 0 @@ -2990,7 +2990,7 @@ _0806DF98: cmp r0, 0 beq _0806DFB0 bl sub_8055A08 - bl sp13E_warp_to_last_warp + bl DoDiveWarp movs r0, 0xE2 bl PlaySE movs r0, 0x1 diff --git a/asm/field_door.s b/asm/field_door.s index 9c7e5eb10..bcb8a6082 100644 --- a/asm/field_door.s +++ b/asm/field_door.s @@ -337,7 +337,7 @@ sub_805B158: @ 805B158 adds r6, r2, 0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 @@ -392,7 +392,7 @@ sub_805B1B8: @ 805B1B8 adds r6, r2, 0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 @@ -439,7 +439,7 @@ sub_805B210: @ 805B210 adds r6, r2, 0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 @@ -478,8 +478,8 @@ _0805B25C: _0805B264: .4byte gUnknown_835B4B0 thumb_func_end sub_805B210 - thumb_func_start sub_805B268 -sub_805B268: @ 805B268 + thumb_func_start FieldSetDoorOpened +FieldSetDoorOpened: @ 805B268 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -504,10 +504,10 @@ _0805B292: bx r0 .align 2, 0 _0805B298: .4byte gUnknown_835B5D8 - thumb_func_end sub_805B268 + thumb_func_end FieldSetDoorOpened - thumb_func_start sub_805B29C -sub_805B29C: @ 805B29C + thumb_func_start FieldSetDoorClosed +FieldSetDoorClosed: @ 805B29C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -532,10 +532,10 @@ _0805B2C6: bx r0 .align 2, 0 _0805B2CC: .4byte gUnknown_835B5D8 - thumb_func_end sub_805B29C + thumb_func_end FieldSetDoorClosed - thumb_func_start sub_805B2D0 -sub_805B2D0: @ 805B2D0 + thumb_func_start FieldAnimateDoorClose +FieldAnimateDoorClose: @ 805B2D0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -566,10 +566,10 @@ _0805B308: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_805B2D0 + thumb_func_end FieldAnimateDoorClose - thumb_func_start sub_805B310 -sub_805B310: @ 805B310 + thumb_func_start FieldAnimateDoorOpen +FieldAnimateDoorOpen: @ 805B310 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -600,10 +600,10 @@ _0805B348: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_805B310 + thumb_func_end FieldAnimateDoorOpen - thumb_func_start sub_805B350 -sub_805B350: @ 805B350 + thumb_func_start FieldIsDoorAnimationRunning +FieldIsDoorAnimationRunning: @ 805B350 push {lr} ldr r0, _0805B360 @ =sub_805B028 bl FuncIsActiveTask @@ -613,10 +613,10 @@ sub_805B350: @ 805B350 bx r1 .align 2, 0 _0805B360: .4byte sub_805B028 - thumb_func_end sub_805B350 + thumb_func_end FieldIsDoorAnimationRunning - thumb_func_start sub_805B364 -sub_805B364: @ 805B364 + thumb_func_start GetDoorSoundEffect +GetDoorSoundEffect: @ 805B364 push {lr} adds r3, r0, 0 adds r2, r1, 0 @@ -635,7 +635,7 @@ _0805B380: _0805B382: pop {r1} bx r1 - thumb_func_end sub_805B364 + thumb_func_end GetDoorSoundEffect thumb_func_start sub_805B388 sub_805B388: @ 805B388 @@ -643,7 +643,7 @@ sub_805B388: @ 805B388 adds r4, r0, 0 adds r0, r1, 0 adds r1, r2, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 diff --git a/asm/field_effect.s b/asm/field_effect.s index 1cbdc8214..0fa36ce46 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -603,13 +603,13 @@ CreateTrainerSprite: @ 8083858 lsrs r0, 24 mov r9, r0 lsrs r4, 21 - ldr r3, _080838E0 @ =gUnknown_8239A1C + ldr r3, _080838E0 @ =gTrainerFrontPicPaletteTable mov r8, r3 add r8, r4 mov r0, r8 adds r1, r7, 0 bl LoadCompressedObjectPaletteOverrideBuffer - ldr r0, _080838E4 @ =gUnknown_823957C + ldr r0, _080838E4 @ =gTrainerFrontPicTable adds r4, r0 adds r0, r4, 0 adds r1, r7, 0 @@ -649,8 +649,8 @@ CreateTrainerSprite: @ 8083858 pop {r1} bx r1 .align 2, 0 -_080838E0: .4byte gUnknown_8239A1C -_080838E4: .4byte gUnknown_823957C +_080838E0: .4byte gTrainerFrontPicPaletteTable +_080838E4: .4byte gTrainerFrontPicTable _080838E8: .4byte gUnknown_83CBE50 _080838EC: .4byte gDummySpriteAnimTable _080838F0: .4byte gDummySpriteAffineAnimTable @@ -666,12 +666,12 @@ LoadTrainerGfx_TrainerCard: @ 80838F8 lsls r4, 24 lsls r5, 16 lsrs r5, 16 - ldr r0, _08083928 @ =gUnknown_823957C + ldr r0, _08083928 @ =gTrainerFrontPicTable lsrs r4, 21 adds r0, r4, r0 ldr r0, [r0] bl LZDecompressVram - ldr r0, _0808392C @ =gUnknown_8239A1C + ldr r0, _0808392C @ =gTrainerFrontPicPaletteTable adds r4, r0 ldr r0, [r4] adds r1, r5, 0 @@ -681,8 +681,8 @@ LoadTrainerGfx_TrainerCard: @ 80838F8 pop {r0} bx r0 .align 2, 0 -_08083928: .4byte gUnknown_823957C -_0808392C: .4byte gUnknown_8239A1C +_08083928: .4byte gTrainerFrontPicTable +_0808392C: .4byte gTrainerFrontPicPaletteTable thumb_func_end LoadTrainerGfx_TrainerCard thumb_func_start AddNewGameBirchObject @@ -742,7 +742,7 @@ sub_8083970: @ 8083970 movs r1, 0 adds r2, r3, 0 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x4] @@ -806,7 +806,7 @@ sub_80839D4: @ 80839D4 mov r1, r9 mov r2, r10 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r4, r0, 16 mov r1, r8 @@ -854,7 +854,7 @@ sub_8083A5C: @ 8083A5C bl FreeOamMatrix _08083A7A: adds r0, r5, 0 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite pop {r4,r5} pop {r0} bx r0 @@ -1968,16 +1968,16 @@ _080842C2: thumb_func_start sub_80842C8 sub_80842C8: @ 80842C8 push {lr} - ldr r0, _080842DC @ =c2_exit_to_overworld_2_switch + ldr r0, _080842DC @ =CB2_ReturnToField bl SetMainCallback2 - ldr r1, _080842E0 @ =gUnknown_3005020 + ldr r1, _080842E0 @ =gFieldCallback ldr r0, _080842E4 @ =mapldr_080842E8 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_080842DC: .4byte c2_exit_to_overworld_2_switch -_080842E0: .4byte gUnknown_3005020 +_080842DC: .4byte CB2_ReturnToField +_080842E0: .4byte gFieldCallback _080842E4: .4byte mapldr_080842E8 thumb_func_end sub_80842C8 @@ -1990,14 +1990,14 @@ mapldr_080842E8: @ 80842E8 bl CreateTask bl ScriptContext2_Enable bl player_bitmagic - ldr r1, _0808430C @ =gUnknown_3005020 + ldr r1, _0808430C @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08084308: .4byte task00_8084310 -_0808430C: .4byte gUnknown_3005020 +_0808430C: .4byte gFieldCallback thumb_func_end mapldr_080842E8 thumb_func_start task00_8084310 @@ -2042,7 +2042,7 @@ _08084350: bl warp_in ldr r0, _08084384 @ =sub_805671C bl SetMainCallback2 - ldr r1, _08084388 @ =gUnknown_3005020 + ldr r1, _08084388 @ =gFieldCallback ldr r0, _0808438C @ =mapldr_08084390 str r0, [r1] adds r0, r5, 0 @@ -2055,7 +2055,7 @@ _08084376: _0808437C: .4byte gTasks _08084380: .4byte gFieldEffectArguments _08084384: .4byte sub_805671C -_08084388: .4byte gUnknown_3005020 +_08084388: .4byte gFieldCallback _0808438C: .4byte mapldr_08084390 thumb_func_end task00_8084310 @@ -2093,7 +2093,7 @@ mapldr_08084390: @ 8084390 _080843D2: bl ScriptContext2_Enable bl player_bitmagic - ldr r1, _080843F4 @ =gUnknown_3005020 + ldr r1, _080843F4 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r4} @@ -2103,7 +2103,7 @@ _080843D2: _080843E8: .4byte c3_080843F8 _080843EC: .4byte gMapObjects _080843F0: .4byte gPlayerAvatar -_080843F4: .4byte gUnknown_3005020 +_080843F4: .4byte gFieldCallback thumb_func_end mapldr_08084390 thumb_func_start c3_080843F8 @@ -2162,14 +2162,14 @@ sub_8084454: @ 8084454 ldr r0, _0808447C @ =sub_8084484 movs r1, 0 bl CreateTask - ldr r1, _08084480 @ =gUnknown_3005020 + ldr r1, _08084480 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0808447C: .4byte sub_8084484 -_08084480: .4byte gUnknown_3005020 +_08084480: .4byte gFieldCallback thumb_func_end sub_8084454 thumb_func_start sub_8084484 @@ -2542,7 +2542,7 @@ sub_8084708: @ 8084708 movs r0, 0x8 bl SetPlayerAvatarTransitionFlags movs r0, 0x16 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _08084760: ldr r0, _08084780 @ =sub_8084484 bl FindTaskIdByFunc @@ -2861,7 +2861,7 @@ sub_80849A0: @ 80849A0 bne _080849DC bl sub_809C460 bl warp_in - ldr r1, _080849E4 @ =gUnknown_3005020 + ldr r1, _080849E4 @ =gFieldCallback ldr r0, _080849E8 @ =sub_80849F4 str r0, [r1] ldr r0, _080849EC @ =sub_805671C @@ -2876,7 +2876,7 @@ _080849DC: bx r0 .align 2, 0 _080849E0: .4byte gPaletteFade -_080849E4: .4byte gUnknown_3005020 +_080849E4: .4byte gFieldCallback _080849E8: .4byte sub_80849F4 _080849EC: .4byte sub_805671C _080849F0: .4byte sub_80847C0 @@ -2893,14 +2893,14 @@ sub_80849F4: @ 80849F4 ldr r0, _08084A1C @ =sub_8084A24 movs r1, 0 bl CreateTask - ldr r1, _08084A20 @ =gUnknown_3005020 + ldr r1, _08084A20 @ =gFieldCallback movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08084A1C: .4byte sub_8084A24 -_08084A20: .4byte gUnknown_3005020 +_08084A20: .4byte gFieldCallback thumb_func_end sub_80849F4 thumb_func_start sub_8084A24 @@ -3884,7 +3884,7 @@ sub_8085168: @ 8085168 cmp r0, 0x1 bne _080851A0 bl warp_in - ldr r1, _080851AC @ =gUnknown_3005020 + ldr r1, _080851AC @ =gFieldCallback ldr r0, _080851B0 @ =mapldr_080851BC str r0, [r1] ldr r0, _080851B4 @ =sub_805671C @@ -3900,7 +3900,7 @@ _080851A0: bx r1 .align 2, 0 _080851A8: .4byte gPaletteFade -_080851AC: .4byte gUnknown_3005020 +_080851AC: .4byte gFieldCallback _080851B0: .4byte mapldr_080851BC _080851B4: .4byte sub_805671C _080851B8: .4byte sub_8084F44 @@ -3913,7 +3913,7 @@ mapldr_080851BC: @ 80851BC bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable - ldr r0, _080851E0 @ =gUnknown_3005020 + ldr r0, _080851E0 @ =gFieldCallback movs r1, 0 str r1, [r0] ldr r0, _080851E4 @ =sub_80851E8 @@ -3921,7 +3921,7 @@ mapldr_080851BC: @ 80851BC pop {r0} bx r0 .align 2, 0 -_080851E0: .4byte gUnknown_3005020 +_080851E0: .4byte gFieldCallback _080851E4: .4byte sub_80851E8 thumb_func_end mapldr_080851BC @@ -4389,7 +4389,7 @@ sub_808554C: @ 808554C cmp r0, 0x1 bne _08085584 bl warp_in - ldr r1, _08085590 @ =gUnknown_3005020 + ldr r1, _08085590 @ =gFieldCallback ldr r0, _08085594 @ =sub_8084454 str r0, [r1] ldr r0, _08085598 @ =sub_805671C @@ -4405,7 +4405,7 @@ _08085584: bx r1 .align 2, 0 _0808558C: .4byte gPaletteFade -_08085590: .4byte gUnknown_3005020 +_08085590: .4byte gFieldCallback _08085594: .4byte sub_8084454 _08085598: .4byte sub_805671C _0808559C: .4byte sub_80853E4 @@ -4613,7 +4613,7 @@ _08085702: bl FieldObjectSetDirection bl sub_80555E0 bl warp_in - ldr r1, _0808575C @ =gUnknown_3005020 + ldr r1, _0808575C @ =gFieldCallback ldr r0, _08085760 @ =sub_80859D4 str r0, [r1] ldr r0, _08085764 @ =sub_805671C @@ -4629,7 +4629,7 @@ _08085750: bx r0 .align 2, 0 _08085758: .4byte gPaletteFade -_0808575C: .4byte gUnknown_3005020 +_0808575C: .4byte gFieldCallback _08085760: .4byte sub_80859D4 _08085764: .4byte sub_805671C _08085768: .4byte sub_808563C @@ -4970,7 +4970,7 @@ sub_80859D4: @ 80859D4 bl sub_8111CF0 bl ScriptContext2_Enable bl player_bitmagic - ldr r1, _08085A14 @ =gUnknown_3005020 + ldr r1, _08085A14 @ =gFieldCallback movs r0, 0 str r0, [r1] ldr r2, _08085A18 @ =gMapObjects @@ -4990,7 +4990,7 @@ sub_80859D4: @ 80859D4 pop {r0} bx r0 .align 2, 0 -_08085A14: .4byte gUnknown_3005020 +_08085A14: .4byte gFieldCallback _08085A18: .4byte gMapObjects _08085A1C: .4byte gPlayerAvatar _08085A20: .4byte sub_8085A24 @@ -5156,8 +5156,8 @@ _08085B58: _08085B60: .4byte sub_8085A24 thumb_func_end sub_8085A80 - thumb_func_start sub_8085B64 -sub_8085B64: @ 8085B64 + thumb_func_start CreateTeleportFieldEffectTask +CreateTeleportFieldEffectTask: @ 8085B64 push {lr} ldr r0, _08085B74 @ =sub_8085B78 movs r1, 0 @@ -5166,7 +5166,7 @@ sub_8085B64: @ 8085B64 bx r0 .align 2, 0 _08085B74: .4byte sub_8085B78 - thumb_func_end sub_8085B64 + thumb_func_end CreateTeleportFieldEffectTask thumb_func_start sub_8085B78 sub_8085B78: @ 8085B78 @@ -5409,7 +5409,7 @@ sub_8085D34: @ 8085D34 bl warp_in ldr r0, _08085D78 @ =sub_805671C bl SetMainCallback2 - ldr r1, _08085D7C @ =gUnknown_3005020 + ldr r1, _08085D7C @ =gFieldCallback ldr r0, _08085D80 @ =mapldr_08085D88 str r0, [r1] ldr r0, _08085D84 @ =sub_8085B78 @@ -5423,7 +5423,7 @@ _08085D70: .align 2, 0 _08085D74: .4byte gPaletteFade _08085D78: .4byte sub_805671C -_08085D7C: .4byte gUnknown_3005020 +_08085D7C: .4byte gFieldCallback _08085D80: .4byte mapldr_08085D88 _08085D84: .4byte sub_8085B78 thumb_func_end sub_8085D34 @@ -5436,7 +5436,7 @@ mapldr_08085D88: @ 8085D88 bl sub_8111CF0 bl ScriptContext2_Enable bl player_bitmagic - ldr r1, _08085DCC @ =gUnknown_3005020 + ldr r1, _08085DCC @ =gFieldCallback movs r0, 0 str r0, [r1] ldr r2, _08085DD0 @ =gMapObjects @@ -5457,7 +5457,7 @@ mapldr_08085D88: @ 8085D88 pop {r0} bx r0 .align 2, 0 -_08085DCC: .4byte gUnknown_3005020 +_08085DCC: .4byte gFieldCallback _08085DD0: .4byte gMapObjects _08085DD4: .4byte gPlayerAvatar _08085DD8: .4byte sub_8085DDC @@ -6955,7 +6955,7 @@ sub_8086944: @ 8086944 cmp r0, 0 beq _08086978 adds r0, r4, 0 - bl sub_8055F48 + bl Overworld_ChangeMusicTo _08086978: movs r0, 0 pop {r4} @@ -7213,7 +7213,7 @@ sub_8086B30: @ 8086B30 lsrs r0, 24 bl DestroyTask movs r0, 0x16 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _08086B96: pop {r4,r5} pop {r0} diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index ed746de25..be79c3b21 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -845,7 +845,7 @@ unc_grass_normal: @ 80DB3EC lsrs r4, r0, 8 lsls r0, 24 lsrs r7, r0, 24 - ldr r3, _080DB498 @ =gUnknown_2036E18 + ldr r3, _080DB498 @ =gCamera ldrb r1, [r3] movs r0, 0x1 ands r0, r1 @@ -921,7 +921,7 @@ _080DB48C: bl FieldEffectStop b _080DB4E4 .align 2, 0 -_080DB498: .4byte gUnknown_2036E18 +_080DB498: .4byte gCamera _080DB49C: .4byte gSaveBlock1Ptr _080DB4A0: mov r0, sp @@ -1196,7 +1196,7 @@ unc_grass_tall: @ 80DB69C lsrs r7, r0, 8 lsls r0, 24 lsrs r6, r0, 24 - ldr r3, _080DB748 @ =gUnknown_2036E18 + ldr r3, _080DB748 @ =gCamera ldrb r1, [r3] movs r0, 0x1 ands r0, r1 @@ -1272,7 +1272,7 @@ _080DB73C: bl FieldEffectStop b _080DB786 .align 2, 0 -_080DB748: .4byte gUnknown_2036E18 +_080DB748: .4byte gCamera _080DB74C: .4byte gSaveBlock1Ptr _080DB750: mov r0, sp diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s index 8ccc347e9..ceaaaf7a6 100644 --- a/asm/field_fadetransition.s +++ b/asm/field_fadetransition.s @@ -273,8 +273,8 @@ _0807DD1C: bx r0 thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running - thumb_func_start sub_807DD24 -sub_807DD24: @ 807DD24 + thumb_func_start FieldCallback_ReturnToEventScript2 +FieldCallback_ReturnToEventScript2: @ 807DD24 push {lr} bl ScriptContext2_Enable bl sub_8055DC4 @@ -286,7 +286,7 @@ sub_807DD24: @ 807DD24 bx r0 .align 2, 0 _0807DD40: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running - thumb_func_end sub_807DD24 + thumb_func_end FieldCallback_ReturnToEventScript2 thumb_func_start sub_807DD44 sub_807DD44: @ 807DD44 @@ -661,7 +661,7 @@ _0807E028: ldrsh r0, [r6, r2] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B268 + bl FieldSetDoorOpened movs r0, 0x1 strh r0, [r4, 0x8] b _0807E206 @@ -691,7 +691,7 @@ _0807E074: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B364 + bl GetDoorSoundEffect lsls r0, 16 lsrs r0, 16 bl PlaySE @@ -699,12 +699,12 @@ _0807E074: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B310 + bl FieldAnimateDoorOpen movs r0, 0x7 strh r0, [r4, 0x8] b _0807E206 _0807E0A2: - bl sub_805B350 + bl FieldIsDoorAnimationRunning lsls r0, 24 cmp r0, 0 beq _0807E0AE @@ -750,7 +750,7 @@ _0807E0FC: ldrsh r0, [r4, r1] movs r2, 0x22 ldrsh r1, [r4, r2] - bl sub_805B2D0 + bl FieldAnimateDoorClose movs r0, 0x9 strh r0, [r4, 0x8] b _0807E206 @@ -762,7 +762,7 @@ _0807E10E: lsls r0, 24 cmp r0, 0 beq _0807E206 - bl sub_805B350 + bl FieldIsDoorAnimationRunning lsls r0, 24 cmp r0, 0 bne _0807E206 @@ -822,7 +822,7 @@ _0807E198: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_805B2D0 + bl FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r4, 0xA] @@ -1153,16 +1153,16 @@ _0807E434: bx r1 thumb_func_end sub_807E418 - thumb_func_start sub_807E438 -sub_807E438: @ 807E438 + thumb_func_start DoWarp +DoWarp: @ 807E438 push {lr} bl ScriptContext2_Enable bl sub_8055F88 bl sub_807DC18 - bl play_some_sound + bl PlayRainStoppingSoundEffect movs r0, 0x9 bl PlaySE - ldr r0, _0807E464 @ =gUnknown_3005020 + ldr r0, _0807E464 @ =gFieldCallback ldr r1, _0807E468 @ =sub_807DF64 str r1, [r0] ldr r0, _0807E46C @ =sub_807E718 @@ -1171,19 +1171,19 @@ sub_807E438: @ 807E438 pop {r0} bx r0 .align 2, 0 -_0807E464: .4byte gUnknown_3005020 +_0807E464: .4byte gFieldCallback _0807E468: .4byte sub_807DF64 _0807E46C: .4byte sub_807E718 - thumb_func_end sub_807E438 + thumb_func_end DoWarp - thumb_func_start sp13E_warp_to_last_warp -sp13E_warp_to_last_warp: @ 807E470 + thumb_func_start DoDiveWarp +DoDiveWarp: @ 807E470 push {lr} bl ScriptContext2_Enable bl sub_8055F88 bl sub_807DC18 - bl play_some_sound - ldr r0, _0807E494 @ =gUnknown_3005020 + bl PlayRainStoppingSoundEffect + ldr r0, _0807E494 @ =gFieldCallback ldr r1, _0807E498 @ =sub_807DF64 str r1, [r0] ldr r0, _0807E49C @ =sub_807E718 @@ -1192,10 +1192,10 @@ sp13E_warp_to_last_warp: @ 807E470 pop {r0} bx r0 .align 2, 0 -_0807E494: .4byte gUnknown_3005020 +_0807E494: .4byte gFieldCallback _0807E498: .4byte sub_807DF64 _0807E49C: .4byte sub_807E718 - thumb_func_end sp13E_warp_to_last_warp + thumb_func_end DoDiveWarp thumb_func_start sub_807E4A0 sub_807E4A0: @ 807E4A0 @@ -1228,11 +1228,11 @@ _0807E4D4: .4byte sub_807E980 _0807E4D8: .4byte gTasks thumb_func_end sub_807E4A0 - thumb_func_start sub_807E4DC -sub_807E4DC: @ 807E4DC + thumb_func_start DoDoorWarp +DoDoorWarp: @ 807E4DC push {lr} bl ScriptContext2_Enable - ldr r0, _0807E4F4 @ =gUnknown_3005020 + ldr r0, _0807E4F4 @ =gFieldCallback ldr r1, _0807E4F8 @ =sub_807DF64 str r1, [r0] ldr r0, _0807E4FC @ =sub_807E80C @@ -1241,10 +1241,10 @@ sub_807E4DC: @ 807E4DC pop {r0} bx r0 .align 2, 0 -_0807E4F4: .4byte gUnknown_3005020 +_0807E4F4: .4byte gFieldCallback _0807E4F8: .4byte sub_807DF64 _0807E4FC: .4byte sub_807E80C - thumb_func_end sub_807E4DC + thumb_func_end DoDoorWarp thumb_func_start sub_807E500 sub_807E500: @ 807E500 @@ -1253,14 +1253,14 @@ sub_807E500: @ 807E500 ldr r0, _0807E518 @ =sub_807E718 movs r1, 0xA bl CreateTask - ldr r1, _0807E51C @ =gUnknown_3005020 + ldr r1, _0807E51C @ =gFieldCallback ldr r0, _0807E520 @ =sub_807DF94 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0807E518: .4byte sub_807E718 -_0807E51C: .4byte gUnknown_3005020 +_0807E51C: .4byte gFieldCallback _0807E520: .4byte sub_807DF94 thumb_func_end sub_807E500 @@ -1268,7 +1268,7 @@ _0807E520: .4byte sub_807DF94 sub_807E524: @ 807E524 push {lr} bl ScriptContext2_Enable - ldr r0, _0807E53C @ =gUnknown_3005020 + ldr r0, _0807E53C @ =gFieldCallback ldr r1, _0807E540 @ =sub_807DF64 str r1, [r0] ldr r0, _0807E544 @ =sub_807E784 @@ -1277,24 +1277,24 @@ sub_807E524: @ 807E524 pop {r0} bx r0 .align 2, 0 -_0807E53C: .4byte gUnknown_3005020 +_0807E53C: .4byte gFieldCallback _0807E540: .4byte sub_807DF64 _0807E544: .4byte sub_807E784 thumb_func_end sub_807E524 - thumb_func_start sp13F_fall_to_last_warp -sp13F_fall_to_last_warp: @ 807E548 + thumb_func_start DoFallWarp +DoFallWarp: @ 807E548 push {lr} - bl sp13E_warp_to_last_warp - ldr r1, _0807E558 @ =gUnknown_3005020 + bl DoDiveWarp + ldr r1, _0807E558 @ =gFieldCallback ldr r0, _0807E55C @ =sub_8084454 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_0807E558: .4byte gUnknown_3005020 +_0807E558: .4byte gFieldCallback _0807E55C: .4byte sub_8084454 - thumb_func_end sp13F_fall_to_last_warp + thumb_func_end DoFallWarp thumb_func_start sub_807E560 sub_807E560: @ 807E560 @@ -1339,14 +1339,14 @@ sub_807E59C: @ 807E59C ldr r0, _0807E5B8 @ =sub_807E784 movs r1, 0xA bl CreateTask - ldr r1, _0807E5BC @ =gUnknown_3005020 + ldr r1, _0807E5BC @ =gFieldCallback ldr r0, _0807E5C0 @ =sub_807DF94 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0807E5B8: .4byte sub_807E784 -_0807E5BC: .4byte gUnknown_3005020 +_0807E5BC: .4byte gFieldCallback _0807E5C0: .4byte sub_807DF94 thumb_func_end sub_807E59C @@ -1358,14 +1358,14 @@ sub_807E5C4: @ 807E5C4 ldr r0, _0807E5E0 @ =sub_807E718 movs r1, 0xA bl CreateTask - ldr r1, _0807E5E4 @ =gUnknown_3005020 + ldr r1, _0807E5E4 @ =gFieldCallback ldr r0, _0807E5E8 @ =nullsub_60 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0807E5E0: .4byte sub_807E718 -_0807E5E4: .4byte gUnknown_3005020 +_0807E5E4: .4byte gFieldCallback _0807E5E8: .4byte nullsub_60 thumb_func_end sub_807E5C4 @@ -1690,7 +1690,7 @@ _0807E85C: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_805B364 + bl GetDoorSoundEffect lsls r0, 16 lsrs r0, 16 bl PlaySE @@ -1699,7 +1699,7 @@ _0807E85C: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_805B310 + bl FieldAnimateDoorOpen lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] @@ -1760,7 +1760,7 @@ _0807E8F4: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_805B2D0 + bl FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] @@ -1807,7 +1807,7 @@ _0807E95C: _0807E966: bl sub_8055F88 _0807E96A: - bl play_some_sound + bl PlayRainStoppingSoundEffect movs r0, 0 strh r0, [r5, 0x8] ldr r0, _0807E97C @ =sub_807E718 @@ -1891,7 +1891,7 @@ _0807EA00: b _0807EAB0 _0807EA10: bl sub_8055F88 - bl play_some_sound + bl PlayRainStoppingSoundEffect ldrb r1, [r7, 0x5] movs r0, 0xD negs r0, r0 @@ -1954,7 +1954,7 @@ _0807EA92: strh r0, [r5] b _0807EAB0 _0807EA9A: - ldr r0, _0807EAB8 @ =gUnknown_3005020 + ldr r0, _0807EAB8 @ =gFieldCallback ldr r1, _0807EABC @ =sub_807DF64 str r1, [r0] bl warp_in @@ -1968,7 +1968,7 @@ _0807EAB0: pop {r0} bx r0 .align 2, 0 -_0807EAB8: .4byte gUnknown_3005020 +_0807EAB8: .4byte gFieldCallback _0807EABC: .4byte sub_807DF64 _0807EAC0: .4byte sub_805671C thumb_func_end sub_807E980 diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 308421098..1275f7471 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -673,7 +673,7 @@ sub_805E2E8: @ 805E2E8 lsls r0, 24 cmp r0, 0 beq _0805E37C - ldr r1, _0805E374 @ =gUnknown_3005040 + ldr r1, _0805E374 @ =VMap ldr r0, [r1] adds r3, r0, 0 subs r3, 0x10 @@ -736,7 +736,7 @@ _0805E36A: movs r0, 0 b _0805E37E .align 2, 0 -_0805E374: .4byte gUnknown_3005040 +_0805E374: .4byte VMap _0805E378: .4byte gSaveBlock1Ptr _0805E37C: movs r0, 0x1 @@ -1373,8 +1373,8 @@ SpawnSpecialFieldObject: @ 805E7F4 _0805E82C: .4byte gSaveBlock1Ptr thumb_func_end SpawnSpecialFieldObject - thumb_func_start SpawnSpecialFieldObjectParametrized -SpawnSpecialFieldObjectParametrized: @ 805E830 + thumb_func_start SpawnSpecialFieldObjectParameterized +SpawnSpecialFieldObjectParameterized: @ 805E830 push {r4-r6,lr} mov r6, r8 push {r6} @@ -1425,7 +1425,7 @@ SpawnSpecialFieldObjectParametrized: @ 805E830 bx r1 .align 2, 0 _0805E894: .4byte 0xfff90000 - thumb_func_end SpawnSpecialFieldObjectParametrized + thumb_func_end SpawnSpecialFieldObjectParameterized thumb_func_start show_sprite show_sprite: @ 805E898 @@ -1550,8 +1550,8 @@ MakeObjectTemplateFromFieldObjectTemplate: @ 805E960 bx r0 thumb_func_end MakeObjectTemplateFromFieldObjectTemplate - thumb_func_start AddPseudoFieldObject -AddPseudoFieldObject: @ 805E978 + thumb_func_start AddPseudoEventObject +AddPseudoEventObject: @ 805E978 push {r4-r6,lr} sub sp, 0x1C ldr r4, [sp, 0x2C] @@ -1612,10 +1612,10 @@ _0805E9E4: .align 2, 0 _0805E9F0: .4byte 0x0000ffff _0805E9F4: .4byte gSprites - thumb_func_end AddPseudoFieldObject + thumb_func_end AddPseudoEventObject - thumb_func_start sub_805E9F8 -sub_805E9F8: @ 805E9F8 + thumb_func_start sprite_new +sprite_new: @ 805E9F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1772,7 +1772,7 @@ _0805EB24: _0805EB38: .4byte sub_8068FA8 _0805EB3C: .4byte 0x0000ffff _0805EB40: .4byte gSprites - thumb_func_end sub_805E9F8 + thumb_func_end sprite_new thumb_func_start sub_805EB44 sub_805EB44: @ 805EB44 @@ -3516,7 +3516,7 @@ npc_coords_shift_still: @ 805F818 thumb_func_start UpdateFieldObjectCoordsForCameraUpdate UpdateFieldObjectCoordsForCameraUpdate: @ 805F82C push {r4,r5,lr} - ldr r2, _0805F88C @ =gUnknown_2036E18 + ldr r2, _0805F88C @ =gCamera ldrb r1, [r2] movs r0, 0x1 ands r0, r1 @@ -3566,7 +3566,7 @@ _0805F884: pop {r0} bx r0 .align 2, 0 -_0805F88C: .4byte gUnknown_2036E18 +_0805F88C: .4byte gCamera _0805F890: .4byte gMapObjects thumb_func_end UpdateFieldObjectCoordsForCameraUpdate @@ -12332,13 +12332,13 @@ npc_block_way: @ 80636AC _080636E2: adds r0, r5, 0 adds r1, r4, 0 - bl sub_8058DC4 + bl MapGridIsImpassableAt lsls r0, 24 cmp r0, 0 bne _08063724 adds r0, r5, 0 adds r1, r4, 0 - bl sub_8059334 + bl GetMapBorderIdAt movs r1, 0x1 negs r1, r1 cmp r0, r1 @@ -12432,13 +12432,13 @@ sub_8063770: @ 8063770 lsrs r4, r1, 31 adds r0, r6, 0 adds r1, r5, 0 - bl sub_8058DC4 + bl MapGridIsImpassableAt lsls r0, 24 cmp r0, 0 bne _080637E8 adds r0, r6, 0 adds r1, r5, 0 - bl sub_8059334 + bl GetMapBorderIdAt movs r1, 0x1 negs r1, r1 cmp r0, r1 @@ -21605,7 +21605,7 @@ _080677EA: ands r0, r1 strb r0, [r5, 0x1] _08067822: - ldr r1, _08067850 @ =gUnknown_825E074 + ldr r1, _08067850 @ =gSineTable movs r2, 0x3A ldrsh r0, [r4, r2] lsls r0, 1 @@ -21629,7 +21629,7 @@ _08067822: strb r0, [r5] b _080678B6 .align 2, 0 -_08067850: .4byte gUnknown_825E074 +_08067850: .4byte gSineTable _08067854: ldrh r0, [r4, 0x36] adds r0, 0x1 @@ -21697,7 +21697,7 @@ sub_80678C0: @ 80678C0 movs r0, 0xFF ands r2, r0 strh r2, [r1, 0x3C] - ldr r3, _080678EC @ =gUnknown_825E074 + ldr r3, _080678EC @ =gSineTable movs r4, 0x3C ldrsh r0, [r1, r4] lsls r0, 1 @@ -21715,7 +21715,7 @@ _080678E6: pop {r1} bx r1 .align 2, 0 -_080678EC: .4byte gUnknown_825E074 +_080678EC: .4byte gSineTable thumb_func_end sub_80678C0 thumb_func_start sub_80678F0 diff --git a/asm/field_message_box.s b/asm/field_message_box.s index 78a5f8c8c..46f4c3f8e 100644 --- a/asm/field_message_box.s +++ b/asm/field_message_box.s @@ -83,7 +83,7 @@ _080693D4: _080693DA: movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame _080693E2: ldrh r0, [r5, 0x8] adds r0, 0x1 @@ -250,7 +250,7 @@ HideFieldMessageBox: @ 80694F4 bl task_del_textbox movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame ldr r1, _0806950C @ =gUnknown_203709C movs r0, 0 strb r0, [r1] @@ -293,7 +293,7 @@ sub_8069538: @ 8069538 bl task_del_textbox movs r0, 0 movs r1, 0x1 - bl sub_80F6F1C + bl DrawStdWindowFrame ldr r1, _08069550 @ =gUnknown_203709C movs r0, 0 strb r0, [r1] diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index aa68c6ef2..5fb0f3dad 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -2818,7 +2818,7 @@ PartyHasMonWithSurf: @ 805C83C _0805C84E: adds r0, r4, 0 movs r1, 0x39 - bl pokemon_has_move + bl MonKnowsMove lsls r0, 24 cmp r0, 0 beq _0805C860 @@ -4676,7 +4676,7 @@ sub_805D66C: @ 805D66C movs r0, 0 movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -4769,7 +4769,7 @@ _0805D748: strh r6, [r0, 0x26] movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] @@ -4851,7 +4851,7 @@ sub_805D7C0: @ 805D7C0 movs r0, 0 movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0xD strh r0, [r6, 0x8] movs r0, 0x1 @@ -4904,7 +4904,7 @@ sub_805D838: @ 805D838 movs r0, 0 movs r1, 0x2 movs r3, 0x1 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] @@ -5043,7 +5043,7 @@ sub_805D980: @ 805D980 bl UnfreezeMapObjects movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame ldr r0, _0805D9C0 @ =sub_805D304 bl FindTaskIdByFunc lsls r0, 24 diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s index a8477a33f..079abee2c 100644 --- a/asm/field_screen_effect.s +++ b/asm/field_screen_effect.s @@ -135,12 +135,12 @@ _0807EEE0: beq _0807EF6C b _0807EF76 _0807EEE6: - ldr r0, _0807EF0C @ =gUnknown_2039600 + ldr r0, _0807EF0C @ =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 - ldr r1, _0807EF10 @ =gUnknown_2038700 + ldr r1, _0807EF10 @ =gScanlineEffectRegBuffers adds r0, r1 movs r2, 0x2 ldrsh r1, [r4, r2] @@ -153,15 +153,15 @@ _0807EEE6: strh r0, [r4] b _0807EF76 .align 2, 0 -_0807EF0C: .4byte gUnknown_2039600 -_0807EF10: .4byte gUnknown_2038700 +_0807EF0C: .4byte gScanlineEffect +_0807EF10: .4byte gScanlineEffectRegBuffers _0807EF14: - ldr r0, _0807EF5C @ =gUnknown_2039600 + ldr r0, _0807EF5C @ =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 - ldr r1, _0807EF60 @ =gUnknown_2038700 + ldr r1, _0807EF60 @ =gScanlineEffectRegBuffers adds r0, r1 movs r6, 0x2 ldrsh r1, [r4, r6] @@ -186,19 +186,19 @@ _0807EF14: ldrsh r0, [r4, r3] cmp r0, 0x1 bne _0807EF64 - bl remove_some_task + bl ScanlineEffect_Stop movs r0, 0x2 strh r0, [r4] b _0807EF76 .align 2, 0 -_0807EF5C: .4byte gUnknown_2039600 -_0807EF60: .4byte gUnknown_2038700 +_0807EF5C: .4byte gScanlineEffect +_0807EF60: .4byte gScanlineEffectRegBuffers _0807EF64: adds r0, r5, 0 bl DestroyTask b _0807EF76 _0807EF6C: - bl dp12_8087EA4 + bl ScanlineEffect_Clear adds r0, r5, 0 bl DestroyTask _0807EF76: @@ -344,7 +344,7 @@ sub_807F074: @ 807F074 lsrs r0, 24 cmp r0, 0 beq _0807F0A2 - ldr r4, _0807F0A8 @ =gUnknown_2038700 + ldr r4, _0807F0A8 @ =gScanlineEffectRegBuffers ldr r1, _0807F0AC @ =gUnknown_83C68D4 lsls r0, 1 adds r0, r1 @@ -365,7 +365,7 @@ _0807F0A2: pop {r0} bx r0 .align 2, 0 -_0807F0A8: .4byte gUnknown_2038700 +_0807F0A8: .4byte gScanlineEffectRegBuffers _0807F0AC: .4byte gUnknown_83C68D4 thumb_func_end sub_807F074 @@ -785,7 +785,7 @@ _0807F3E0: movs r1, 0x2 mov r2, r10 mov r3, r9 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r2, _0807F42C @ =gTextFlags ldrb r1, [r2] movs r0, 0x2 @@ -869,7 +869,7 @@ _0807F4A8: adds r7, r0, r1 strh r5, [r7, 0xA] movs r0, 0xF0 - bl sub_80F77CC + bl Menu_LoadStdPalAt adds r0, r5, 0 movs r1, 0 bl FillWindowPixelBuffer diff --git a/asm/field_specials.s b/asm/field_specials.s index a4f3e6dc7..fcec338e7 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -33,9 +33,9 @@ _080CA644: movs r4, 0x8D lsls r4, 1 adds r0, r4, 0 - bl sub_8055E78 + bl Overworld_SetSavedMusic adds r0, r4, 0 - bl sub_8055F48 + bl Overworld_ChangeMusicTo pop {r4} pop {r0} bx r0 @@ -178,11 +178,11 @@ _080CA748: .4byte gUnknown_8417FCC thumb_func_start sub_80CA74C sub_80CA74C: @ 80CA74C - ldr r0, _080CA754 @ =gUnknown_2023E8A + ldr r0, _080CA754 @ =gBattleOutcome ldrb r0, [r0] bx lr .align 2, 0 -_080CA754: .4byte gUnknown_2023E8A +_080CA754: .4byte gBattleOutcome thumb_func_end sub_80CA74C thumb_func_start sub_80CA758 @@ -601,7 +601,7 @@ SpawnScriptFieldObject: @ 80CAA34 movs r0, 0x12 movs r1, 0x8 movs r2, 0x7F - bl SpawnSpecialFieldObjectParametrized + bl SpawnSpecialFieldObjectParameterized lsls r0, 24 lsrs r0, 24 ldr r2, _080CAA84 @ =gMapObjects @@ -756,7 +756,7 @@ sub_80CAB78: @ 80CAB78 bl VarGet lsls r0, 16 lsrs r0, 16 - bl sub_80CBD94 + bl GetStarterPokemon lsls r0, 16 lsrs r6, r0, 16 bl CalculatePlayerPartyCount @@ -2071,7 +2071,7 @@ sub_80CB580: @ 80CB580 ldr r5, _080CB62C @ =0x0000021d adds r1, r5, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldrb r0, [r4] movs r1, 0 adds r2, r5, 0 @@ -2141,7 +2141,7 @@ sub_80CB63C: @ 80CB63C ldr r4, _080CB654 @ =gUnknown_2039A0C ldrb r0, [r4] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl RemoveWindow pop {r4} @@ -2753,7 +2753,7 @@ sub_80CBADC: @ 80CBADC ldr r4, _080CBB20 @ =gUnknown_3005378 adds r1, r4, 0 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r1, _080CBB24 @ =gUnknown_2039A18 ldrh r0, [r4] strh r0, [r1] @@ -2854,7 +2854,7 @@ sub_80CBBAC: @ 80CBBAC lsrs r0, 24 movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldr r0, _080CBC28 @ =gUnknown_2039A14 ldr r0, [r0] bl Free @@ -2862,7 +2862,7 @@ sub_80CBBAC: @ 80CBBAC lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrh r0, [r4, 0x22] lsls r0, 24 lsrs r0, 24 @@ -3078,15 +3078,15 @@ _080CBD7C: .4byte gTasks sub_80CBD80: @ 80CBD80 push {lr} movs r0, 0x16 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 movs r0, 0x8 bl SetPlayerAvatarTransitionFlags pop {r0} bx r0 thumb_func_end sub_80CBD80 - thumb_func_start sub_80CBD94 -sub_80CBD94: @ 80CBD94 + thumb_func_start GetStarterPokemon +GetStarterPokemon: @ 80CBD94 push {lr} lsls r0, 16 lsrs r1, r0, 16 @@ -3094,31 +3094,31 @@ sub_80CBD94: @ 80CBD94 bls _080CBDA0 movs r1, 0 _080CBDA0: - ldr r0, _080CBDAC @ =gUnknown_83F5D2C + ldr r0, _080CBDAC @ =sStarterMon lsls r1, 1 adds r1, r0 ldrh r0, [r1] pop {r1} bx r1 .align 2, 0 -_080CBDAC: .4byte gUnknown_83F5D2C - thumb_func_end sub_80CBD94 +_080CBDAC: .4byte sStarterMon + thumb_func_end GetStarterPokemon - thumb_func_start sub_80CBDB0 -sub_80CBDB0: @ 80CBDB0 + thumb_func_start ScrSpecial_GetStarter +ScrSpecial_GetStarter: @ 80CBDB0 push {lr} ldr r0, _080CBDC8 @ =0x00004031 bl VarGet lsls r0, 16 lsrs r0, 16 - bl sub_80CBD94 + bl GetStarterPokemon lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _080CBDC8: .4byte 0x00004031 - thumb_func_end sub_80CBDB0 + thumb_func_end ScrSpecial_GetStarter thumb_func_start sub_80CBDCC sub_80CBDCC: @ 80CBDCC @@ -3138,7 +3138,7 @@ _080CBDE4: .4byte gSpecialVar_0x8004 thumb_func_start sub_80CBDE8 sub_80CBDE8: @ 80CBDE8 - ldr r1, _080CBDF8 @ =gUnknown_3005074 + ldr r1, _080CBDF8 @ =gSelectedEventObject movs r0, 0 strb r0, [r1] ldr r1, _080CBDFC @ =gUnknown_20370DA @@ -3146,7 +3146,7 @@ sub_80CBDE8: @ 80CBDE8 strh r0, [r1] bx lr .align 2, 0 -_080CBDF8: .4byte gUnknown_3005074 +_080CBDF8: .4byte gSelectedEventObject _080CBDFC: .4byte gUnknown_20370DA thumb_func_end sub_80CBDE8 @@ -3157,7 +3157,7 @@ sub_80CBE00: @ 80CBE00 ldrh r0, [r0] cmp r0, 0xFF bne _080CBE44 - ldr r1, _080CBE1C @ =gUnknown_3005074 + ldr r1, _080CBE1C @ =gSelectedEventObject ldrb r0, [r1] cmp r0, 0 bne _080CBE20 @@ -3165,7 +3165,7 @@ sub_80CBE00: @ 80CBE00 b _080CBE48 .align 2, 0 _080CBE18: .4byte gUnknown_20370DA -_080CBE1C: .4byte gUnknown_3005074 +_080CBE1C: .4byte gSelectedEventObject _080CBE20: ldr r2, _080CBE4C @ =gMapObjects ldrb r1, [r1] @@ -3267,7 +3267,7 @@ TV_PrintIntToStringVar: @ 80CBED4 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 - bl sub_80CBF04 + bl CountDigits adds r3, r0, 0 ldr r0, _080CBF00 @ =gUnknown_83F5AF8 lsls r4, 2 @@ -3285,8 +3285,8 @@ TV_PrintIntToStringVar: @ 80CBED4 _080CBF00: .4byte gUnknown_83F5AF8 thumb_func_end TV_PrintIntToStringVar - thumb_func_start sub_80CBF04 -sub_80CBF04: @ 80CBF04 + thumb_func_start CountDigits +CountDigits: @ 80CBF04 push {r4,lr} adds r4, r0, 0 movs r1, 0xA @@ -3366,7 +3366,7 @@ _080CBF9A: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80CBF04 + thumb_func_end CountDigits thumb_func_start sub_80CBFA0 sub_80CBFA0: @ 80CBFA0 @@ -5542,7 +5542,7 @@ sub_80CD098: @ 80CD098 str r3, [sp] movs r0, 0 movs r3, 0 - bl sub_8006300 + bl CreateTextCursorSpriteForOakSpeech ldr r1, _080CD0DC @ =gUnknown_2039A1B strb r0, [r1] b _080CD0E8 diff --git a/asm/field_tasks.s b/asm/field_tasks.s index 306b52940..b4106c021 100644 --- a/asm/field_tasks.s +++ b/asm/field_tasks.s @@ -490,7 +490,7 @@ _0806EB8E: ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r4, r2] - bl sub_8058E48 + bl MapGridGetMetatileIdAt ldr r1, _0806EBDC @ =0x0000020a cmp r0, r1 bne _0806EBE4 @@ -534,7 +534,7 @@ sub_806EC04: @ 806EC04 asrs r4, r1, 16 adds r0, r5, 0 adds r1, r4, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt ldr r1, _0806EC38 @ =0x0000022f ldr r2, _0806EC3C @ =0x00000237 cmp r0, r1 diff --git a/asm/field_weather.s b/asm/field_weather.s index 77a138ad2..e8d3ba7ee 100644 --- a/asm/field_weather.s +++ b/asm/field_weather.s @@ -122,7 +122,7 @@ weather_set: @ 8079CF4 beq _08079D0A cmp r4, 0xD beq _08079D0A - bl play_some_sound + bl PlayRainStoppingSoundEffect _08079D0A: ldr r1, _08079D4C @ =gUnknown_2037F34 ldr r2, _08079D50 @ =0x000006d1 @@ -170,7 +170,7 @@ sub_8079D60: @ 8079D60 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl play_some_sound + bl PlayRainStoppingSoundEffect ldr r0, _08079D84 @ =gUnknown_2037F34 movs r2, 0xDA lsls r2, 3 @@ -193,7 +193,7 @@ sub_8079D8C: @ 8079D8C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl play_some_sound + bl PlayRainStoppingSoundEffect ldr r1, _08079DB8 @ =gUnknown_2037F34 movs r2, 0xDA lsls r2, 3 @@ -2250,7 +2250,7 @@ _0807AD14: movs r1, 0x7F ands r0, r1 strh r0, [r2] - ldr r1, _0807AD5C @ =gUnknown_825E074 + ldr r1, _0807AD5C @ =gSineTable movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 1 @@ -2278,7 +2278,7 @@ _0807AD54: strh r0, [r4] b _0807ADA0 .align 2, 0 -_0807AD5C: .4byte gUnknown_825E074 +_0807AD5C: .4byte gSineTable _0807AD60: .4byte 0x0000073c _0807AD64: .4byte 0x0000073e _0807AD68: @@ -2625,8 +2625,8 @@ _0807AFFA: _0807B000: .4byte 0x000006dd thumb_func_end SetRainStrengthFromSoundEffect - thumb_func_start play_some_sound -play_some_sound: @ 807B004 + thumb_func_start PlayRainStoppingSoundEffect +PlayRainStoppingSoundEffect: @ 807B004 push {lr} bl IsSpecialSEPlaying lsls r0, 24 @@ -2658,7 +2658,7 @@ _0807B03C: _0807B042: pop {r0} bx r0 - thumb_func_end play_some_sound + thumb_func_end PlayRainStoppingSoundEffect thumb_func_start sub_807B048 sub_807B048: @ 807B048 @@ -2804,8 +2804,8 @@ sav1_get_weather_probably: @ 807B130 _0807B13C: .4byte gSaveBlock1Ptr thumb_func_end sav1_get_weather_probably - thumb_func_start sub_807B140 -sub_807B140: @ 807B140 + thumb_func_start SetSav1WeatherFromCurrMapHeader +SetSav1WeatherFromCurrMapHeader: @ 807B140 push {r4,r5,lr} ldr r4, _0807B16C @ =gSaveBlock1Ptr ldr r0, [r4] @@ -2828,7 +2828,7 @@ sub_807B140: @ 807B140 .align 2, 0 _0807B16C: .4byte gSaveBlock1Ptr _0807B170: .4byte gMapHeader - thumb_func_end sub_807B140 + thumb_func_end SetSav1WeatherFromCurrMapHeader thumb_func_start SetWeather SetWeather: @ 807B174 diff --git a/asm/field_weather_effects.s b/asm/field_weather_effects.s index fd9b2361a..0330bcbaf 100644 --- a/asm/field_weather_effects.s +++ b/asm/field_weather_effects.s @@ -1972,7 +1972,7 @@ sub_807C1AC: @ 807C1AC movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] - ldr r1, _0807C224 @ =gUnknown_825E074 + ldr r1, _0807C224 @ =gSineTable movs r3, 0x34 ldrsh r0, [r4, r3] lsls r0, 1 @@ -2020,7 +2020,7 @@ _0807C210: subs r0, r1 b _0807C23C .align 2, 0 -_0807C224: .4byte gUnknown_825E074 +_0807C224: .4byte gSineTable _0807C228: .4byte gSpriteCoordOffsetX _0807C22C: .4byte 0x000001ff _0807C230: .4byte 0xffffff00 @@ -4417,7 +4417,7 @@ sub_807D4C4: @ 807D4C4 ldr r2, [r0] ldr r0, _0807D52C @ =0x00000704 adds r4, r2, r0 - ldr r6, _0807D530 @ =gUnknown_825E074 + ldr r6, _0807D530 @ =gSineTable ldr r1, _0807D534 @ =0x00000712 adds r5, r2, r1 ldrh r0, [r5] @@ -4465,7 +4465,7 @@ sub_807D4C4: @ 807D4C4 .align 2, 0 _0807D528: .4byte gUnknown_83C2BBC _0807D52C: .4byte 0x00000704 -_0807D530: .4byte gUnknown_825E074 +_0807D530: .4byte gSineTable _0807D534: .4byte 0x00000712 _0807D538: .4byte gSpriteCoordOffsetX _0807D53C: .4byte 0x0000070e @@ -4856,7 +4856,7 @@ SandstormSpriteCallback3: @ 807D81C _0807D83A: movs r0, 0x2E ldrsh r4, [r5, r0] - ldr r3, _0807D88C @ =gUnknown_825E074 + ldr r3, _0807D88C @ =gSineTable movs r2, 0x30 ldrsh r1, [r5, r2] lsls r0, r1, 1 @@ -4897,7 +4897,7 @@ _0807D886: pop {r0} bx r0 .align 2, 0 -_0807D88C: .4byte gUnknown_825E074 +_0807D88C: .4byte gSineTable thumb_func_end SandstormSpriteCallback3 thumb_func_start Weather11_InitVars diff --git a/asm/fieldmap.s b/asm/fieldmap.s deleted file mode 100644 index a8b2d36ee..000000000 --- a/asm/fieldmap.s +++ /dev/null @@ -1,2400 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start mapconnection_get_mapheader -mapconnection_get_mapheader: @ 80589C4 - push {lr} - ldrb r2, [r0, 0x8] - ldrb r1, [r0, 0x9] - adds r0, r2, 0 - bl get_mapheader_by_bank_and_number - pop {r1} - bx r1 - thumb_func_end mapconnection_get_mapheader - - thumb_func_start not_trainer_hill_battle_pyramid -not_trainer_hill_battle_pyramid: @ 80589D4 - push {lr} - ldr r0, _080589E4 @ =gMapHeader - bl sub_8058A00 - bl mapheader_run_script_with_tag_x1 - pop {r0} - bx r0 - .align 2, 0 -_080589E4: .4byte gMapHeader - thumb_func_end not_trainer_hill_battle_pyramid - - thumb_func_start sub_80589E8 -sub_80589E8: @ 80589E8 - push {lr} - ldr r0, _080589FC @ =gMapHeader - bl sub_8058A00 - bl sub_80591C4 - bl mapheader_run_script_with_tag_x1 - pop {r0} - bx r0 - .align 2, 0 -_080589FC: .4byte gMapHeader - thumb_func_end sub_80589E8 - - thumb_func_start sub_8058A00 -sub_8058A00: @ 8058A00 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r5, [r6] - ldr r0, _08058A58 @ =0x03ff03ff - str r0, [sp] - ldr r4, _08058A5C @ =gUnknown_2031DFC - ldr r2, _08058A60 @ =0x01001400 - mov r0, sp - adds r1, r4, 0 - bl CpuFastSet - ldr r2, _08058A64 @ =gUnknown_3005040 - str r4, [r2, 0x8] - ldr r1, [r5] - adds r1, 0xF - str r1, [r2] - ldr r0, [r5, 0x4] - adds r0, 0xE - str r0, [r2, 0x4] - muls r1, r0 - movs r0, 0xA0 - lsls r0, 6 - cmp r1, r0 - ble _08058A3E - ldr r0, _08058A68 @ =gUnknown_8352F18 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c" - ldr r2, _08058A6C @ =gUnknown_8352F4C "VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE" - movs r1, 0x9E - movs r3, 0x1 - bl AGBAssert -_08058A3E: - ldr r0, [r5, 0xC] - ldrh r1, [r5] - ldrh r2, [r5, 0x4] - bl map_copy_with_padding - adds r0, r6, 0 - bl mapheader_copy_mapdata_of_adjacent_maps - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08058A58: .4byte 0x03ff03ff -_08058A5C: .4byte gUnknown_2031DFC -_08058A60: .4byte 0x01001400 -_08058A64: .4byte gUnknown_3005040 -_08058A68: .4byte gUnknown_8352F18 -_08058A6C: .4byte gUnknown_8352F4C - thumb_func_end sub_8058A00 - - thumb_func_start map_copy_with_padding -map_copy_with_padding: @ 8058A70 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 16 - lsrs r2, 16 - ldr r0, _08058AC4 @ =gUnknown_3005040 - ldr r4, [r0, 0x8] - ldr r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, 0xE - adds r4, r0 - cmp r2, 0 - beq _08058AB8 - mov r0, r8 - lsls r6, r0, 1 - adds r5, r2, 0 - movs r0, 0x1E - adds r0, r6 - mov r9, r0 -_08058AA4: - adds r0, r7, 0 - adds r1, r4, 0 - mov r2, r8 - bl CpuSet - add r4, r9 - adds r7, r6 - subs r5, 0x1 - cmp r5, 0 - bne _08058AA4 -_08058AB8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058AC4: .4byte gUnknown_3005040 - thumb_func_end map_copy_with_padding - - thumb_func_start mapheader_copy_mapdata_of_adjacent_maps -mapheader_copy_mapdata_of_adjacent_maps: @ 8058AC8 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r2, _08058B00 @ =gUnknown_2036E24 - ldr r0, _08058B04 @ =gUnknown_8352EEC - ldr r0, [r0] - str r0, [r2] - ldr r0, [r6, 0xC] - cmp r0, 0 - beq _08058B4C - ldr r1, [r0] - ldr r5, [r0, 0x4] - cmp r1, 0 - ble _08058B4C - adds r4, r2, 0 - adds r7, r1, 0 -_08058AE6: - adds r0, r5, 0 - bl mapconnection_get_mapheader - adds r1, r0, 0 - ldr r2, [r5, 0x4] - ldrb r0, [r5] - cmp r0, 0x2 - beq _08058B1E - cmp r0, 0x2 - bgt _08058B08 - cmp r0, 0x1 - beq _08058B12 - b _08058B44 - .align 2, 0 -_08058B00: .4byte gUnknown_2036E24 -_08058B04: .4byte gUnknown_8352EEC -_08058B08: - cmp r0, 0x3 - beq _08058B2A - cmp r0, 0x4 - beq _08058B36 - b _08058B44 -_08058B12: - adds r0, r6, 0 - bl fillSouthConnection - ldrb r0, [r4] - movs r1, 0x1 - b _08058B40 -_08058B1E: - adds r0, r6, 0 - bl fillNorthConnection - ldrb r0, [r4] - movs r1, 0x2 - b _08058B40 -_08058B2A: - adds r0, r6, 0 - bl fillWestConnection - ldrb r0, [r4] - movs r1, 0x4 - b _08058B40 -_08058B36: - adds r0, r6, 0 - bl fillEastConnection - ldrb r0, [r4] - movs r1, 0x8 -_08058B40: - orrs r0, r1 - strb r0, [r4] -_08058B44: - subs r7, 0x1 - adds r5, 0xC - cmp r7, 0 - bne _08058AE6 -_08058B4C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end mapheader_copy_mapdata_of_adjacent_maps - - thumb_func_start sub_8058B54 -sub_8058B54: @ 8058B54 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, [sp, 0x18] - ldr r4, [r2] - ldr r7, [r4] - adds r2, r7, 0 - muls r2, r5 - adds r2, r3 - lsls r2, 1 - ldr r3, [r4, 0xC] - adds r6, r3, r2 - ldr r3, _08058BB0 @ =gUnknown_3005040 - ldr r2, [r3] - muls r1, r2 - adds r1, r0 - lsls r1, 1 - ldr r0, [r3, 0x8] - adds r5, r0, r1 - ldr r0, [sp, 0x20] - cmp r0, 0 - ble _08058BA6 - adds r4, r0, 0 - ldr r3, _08058BB4 @ =0x001fffff - mov r8, r3 -_08058B86: - adds r0, r6, 0 - adds r1, r5, 0 - ldr r2, [sp, 0x1C] - mov r3, r8 - ands r2, r3 - bl CpuSet - ldr r0, _08058BB0 @ =gUnknown_3005040 - ldr r0, [r0] - lsls r0, 1 - adds r5, r0 - lsls r0, r7, 1 - adds r6, r0 - subs r4, 0x1 - cmp r4, 0 - bne _08058B86 -_08058BA6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058BB0: .4byte gUnknown_3005040 -_08058BB4: .4byte 0x001fffff - thumb_func_end sub_8058B54 - - thumb_func_start fillSouthConnection -fillSouthConnection: @ 8058BB8 - push {r4-r7,lr} - sub sp, 0xC - adds r3, r0, 0 - adds r5, r1, 0 - cmp r5, 0 - beq _08058C12 - ldr r0, [r5] - ldr r4, [r0] - adds r2, 0x7 - ldr r0, [r3] - ldr r0, [r0, 0x4] - adds r7, r0, 0x7 - cmp r2, 0 - bge _08058BEC - negs r6, r2 - adds r2, r4 - ldr r0, _08058BE8 @ =gUnknown_3005040 - ldr r3, [r0] - cmp r2, r3 - bge _08058BE2 - adds r3, r2, 0 -_08058BE2: - movs r2, 0 - b _08058BFC - .align 2, 0 -_08058BE8: .4byte gUnknown_3005040 -_08058BEC: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _08058C1C @ =gUnknown_3005040 - ldr r1, [r1] - subs r3, r1, r2 - cmp r0, r1 - bge _08058BFC - adds r3, r4, 0 -_08058BFC: - movs r0, 0 - str r0, [sp] - str r3, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - adds r0, r2, 0 - adds r1, r7, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8058B54 -_08058C12: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058C1C: .4byte gUnknown_3005040 - thumb_func_end fillSouthConnection - - thumb_func_start fillNorthConnection -fillNorthConnection: @ 8058C20 - push {r4-r7,lr} - sub sp, 0xC - adds r5, r1, 0 - cmp r5, 0 - beq _08058C74 - ldr r0, [r5] - ldr r4, [r0] - ldr r0, [r0, 0x4] - adds r2, 0x7 - subs r7, r0, 0x7 - cmp r2, 0 - bge _08058C50 - negs r6, r2 - adds r2, r4 - ldr r0, _08058C4C @ =gUnknown_3005040 - ldr r3, [r0] - cmp r2, r3 - bge _08058C46 - adds r3, r2, 0 -_08058C46: - movs r2, 0 - b _08058C60 - .align 2, 0 -_08058C4C: .4byte gUnknown_3005040 -_08058C50: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _08058C7C @ =gUnknown_3005040 - ldr r1, [r1] - subs r3, r1, r2 - cmp r0, r1 - bge _08058C60 - adds r3, r4, 0 -_08058C60: - str r7, [sp] - str r3, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - adds r0, r2, 0 - movs r1, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8058B54 -_08058C74: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058C7C: .4byte gUnknown_3005040 - thumb_func_end fillNorthConnection - - thumb_func_start fillWestConnection -fillWestConnection: @ 8058C80 - push {r4-r7,lr} - sub sp, 0xC - adds r5, r1, 0 - cmp r5, 0 - beq _08058CD4 - ldr r0, [r5] - ldr r1, [r0] - ldr r4, [r0, 0x4] - adds r2, 0x7 - subs r7, r1, 0x7 - cmp r2, 0 - bge _08058CB0 - negs r6, r2 - adds r1, r2, r4 - ldr r0, _08058CAC @ =gUnknown_3005040 - ldr r3, [r0, 0x4] - cmp r1, r3 - bge _08058CA6 - adds r3, r1, 0 -_08058CA6: - movs r2, 0 - b _08058CC0 - .align 2, 0 -_08058CAC: .4byte gUnknown_3005040 -_08058CB0: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _08058CDC @ =gUnknown_3005040 - ldr r1, [r1, 0x4] - subs r3, r1, r2 - cmp r0, r1 - bge _08058CC0 - adds r3, r4, 0 -_08058CC0: - str r6, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - str r3, [sp, 0x8] - movs r0, 0 - adds r1, r2, 0 - adds r2, r5, 0 - adds r3, r7, 0 - bl sub_8058B54 -_08058CD4: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058CDC: .4byte gUnknown_3005040 - thumb_func_end fillWestConnection - - thumb_func_start fillEastConnection -fillEastConnection: @ 8058CE0 - push {r4-r7,lr} - sub sp, 0xC - adds r3, r0, 0 - adds r5, r1, 0 - cmp r5, 0 - beq _08058D38 - ldr r0, [r5] - ldr r4, [r0, 0x4] - ldr r0, [r3] - ldr r0, [r0] - adds r7, r0, 0x7 - adds r2, 0x7 - cmp r2, 0 - bge _08058D14 - negs r6, r2 - adds r1, r2, r4 - ldr r0, _08058D10 @ =gUnknown_3005040 - ldr r3, [r0, 0x4] - cmp r1, r3 - bge _08058D0A - adds r3, r1, 0 -_08058D0A: - movs r2, 0 - b _08058D24 - .align 2, 0 -_08058D10: .4byte gUnknown_3005040 -_08058D14: - movs r6, 0 - adds r0, r2, r4 - ldr r1, _08058D40 @ =gUnknown_3005040 - ldr r1, [r1, 0x4] - subs r3, r1, r2 - cmp r0, r1 - bge _08058D24 - adds r3, r4, 0 -_08058D24: - str r6, [sp] - movs r0, 0x8 - str r0, [sp, 0x4] - str r3, [sp, 0x8] - adds r0, r7, 0 - adds r1, r2, 0 - adds r2, r5, 0 - movs r3, 0 - bl sub_8058B54 -_08058D38: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08058D40: .4byte gUnknown_3005040 - thumb_func_end fillEastConnection - - thumb_func_start MapGridGetZCoordAt -MapGridGetZCoordAt: @ 8058D44 - push {r4-r7,lr} - adds r2, r0, 0 - adds r7, r1, 0 - cmp r2, 0 - blt _08058D74 - ldr r1, _08058D70 @ =gUnknown_3005040 - ldr r3, [r1] - cmp r2, r3 - bge _08058D74 - cmp r7, 0 - blt _08058D74 - ldr r0, [r1, 0x4] - cmp r7, r0 - bge _08058D74 - adds r0, r3, 0 - muls r0, r7 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _08058DA8 - .align 2, 0 -_08058D70: .4byte gUnknown_3005040 -_08058D74: - ldr r0, _08058DB4 @ =gMapHeader - ldr r6, [r0] - subs r0, r2, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - subs r0, r7, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - orrs r1, r0 -_08058DA8: - ldr r0, _08058DB8 @ =0x000003ff - cmp r1, r0 - beq _08058DBC - lsrs r0, r1, 12 - b _08058DBE - .align 2, 0 -_08058DB4: .4byte gMapHeader -_08058DB8: .4byte 0x000003ff -_08058DBC: - movs r0, 0 -_08058DBE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end MapGridGetZCoordAt - - thumb_func_start sub_8058DC4 -sub_8058DC4: @ 8058DC4 - push {r4-r7,lr} - adds r2, r0, 0 - adds r7, r1, 0 - cmp r2, 0 - blt _08058DF4 - ldr r1, _08058DF0 @ =gUnknown_3005040 - ldr r3, [r1] - cmp r2, r3 - bge _08058DF4 - cmp r7, 0 - blt _08058DF4 - ldr r0, [r1, 0x4] - cmp r7, r0 - bge _08058DF4 - adds r0, r3, 0 - muls r0, r7 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _08058E28 - .align 2, 0 -_08058DF0: .4byte gUnknown_3005040 -_08058DF4: - ldr r0, _08058E38 @ =gMapHeader - ldr r6, [r0] - subs r0, r2, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - subs r0, r7, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - orrs r1, r0 -_08058E28: - ldr r0, _08058E3C @ =0x000003ff - cmp r1, r0 - beq _08058E40 - movs r0, 0xC0 - lsls r0, 4 - ands r1, r0 - lsrs r0, r1, 10 - b _08058E42 - .align 2, 0 -_08058E38: .4byte gMapHeader -_08058E3C: .4byte 0x000003ff -_08058E40: - movs r0, 0x1 -_08058E42: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8058DC4 - - thumb_func_start sub_8058E48 -sub_8058E48: @ 8058E48 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - mov r9, r1 - cmp r0, 0 - blt _08058E80 - ldr r1, _08058E7C @ =gUnknown_3005040 - ldr r2, [r1] - cmp r8, r2 - bge _08058E80 - mov r0, r9 - cmp r0, 0 - blt _08058E80 - ldr r0, [r1, 0x4] - cmp r9, r0 - bge _08058E80 - mov r0, r9 - muls r0, r2 - add r0, r8 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - b _08058EBA - .align 2, 0 -_08058E7C: .4byte gUnknown_3005040 -_08058E80: - ldr r0, _08058EC8 @ =gMapHeader - ldr r6, [r0] - mov r0, r8 - subs r0, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - mov r0, r9 - subs r0, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - adds r7, r0, 0 - orrs r7, r1 -_08058EBA: - ldr r0, _08058ECC @ =0x000003ff - cmp r7, r0 - beq _08058ED0 - ands r7, r0 - adds r0, r7, 0 - b _08058F0A - .align 2, 0 -_08058EC8: .4byte gMapHeader -_08058ECC: .4byte 0x000003ff -_08058ED0: - ldr r0, _08058F18 @ =gMapHeader - ldr r6, [r0] - mov r0, r8 - subs r0, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - mov r0, r9 - subs r0, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r0, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r1, r2, 0 - orrs r0, r1 - ands r0, r7 -_08058F0A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08058F18: .4byte gMapHeader - thumb_func_end sub_8058E48 - - thumb_func_start sub_8058F1C -sub_8058F1C: @ 8058F1C - push {lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r3, r1, 24 - cmp r3, 0x7 - bhi _08058F3A - ldr r1, _08058F40 @ =gUnknown_8352EF0 - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - ldr r0, _08058F44 @ =gUnknown_8352F10 - adds r0, r3, r0 - ldrb r0, [r0] - lsrs r2, r0 -_08058F3A: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_08058F40: .4byte gUnknown_8352EF0 -_08058F44: .4byte gUnknown_8352F10 - thumb_func_end sub_8058F1C - - thumb_func_start sub_8058F48 -sub_8058F48: @ 8058F48 - push {r4,lr} - adds r4, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl sub_8058E48 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _08058F74 @ =gMapHeader - ldr r0, [r0] - adds r2, r4, 0 - bl sub_8059080 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08058F74: .4byte gMapHeader - thumb_func_end sub_8058F48 - - thumb_func_start MapGridGetMetatileBehaviorAt -MapGridGetMetatileBehaviorAt: @ 8058F78 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - movs r2, 0 - bl sub_8058F48 - pop {r1} - bx r1 - thumb_func_end MapGridGetMetatileBehaviorAt - - thumb_func_start sub_8058F8C -sub_8058F8C: @ 8058F8C - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x6 - bl sub_8058F48 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8058F8C - - thumb_func_start MapGridSetMetatileIdAt -MapGridSetMetatileIdAt: @ 8058FA4 - push {r4,r5,lr} - adds r3, r0, 0 - lsls r2, 16 - lsrs r5, r2, 16 - cmp r3, 0 - blt _08058FDC - ldr r2, _08058FE4 @ =gUnknown_3005040 - ldr r4, [r2] - cmp r3, r4 - bge _08058FDC - cmp r1, 0 - blt _08058FDC - ldr r0, [r2, 0x4] - cmp r1, r0 - bge _08058FDC - muls r1, r4 - adds r1, r3, r1 - ldr r0, [r2, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - movs r2, 0xF0 - lsls r2, 8 - ands r2, r0 - ldr r0, _08058FE8 @ =0x00000fff - ands r0, r5 - orrs r2, r0 - strh r2, [r1] -_08058FDC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08058FE4: .4byte gUnknown_3005040 -_08058FE8: .4byte 0x00000fff - thumb_func_end MapGridSetMetatileIdAt - - thumb_func_start MapGridSetMetatileEntryAt -MapGridSetMetatileEntryAt: @ 8058FEC - push {r4,r5,lr} - adds r3, r0, 0 - lsls r2, 16 - lsrs r5, r2, 16 - cmp r3, 0 - blt _08059018 - ldr r2, _08059020 @ =gUnknown_3005040 - ldr r4, [r2] - cmp r3, r4 - bge _08059018 - cmp r1, 0 - blt _08059018 - ldr r0, [r2, 0x4] - cmp r1, r0 - bge _08059018 - adds r0, r4, 0 - muls r0, r1 - adds r0, r3, r0 - ldr r1, [r2, 0x8] - lsls r0, 1 - adds r0, r1 - strh r5, [r0] -_08059018: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08059020: .4byte gUnknown_3005040 - thumb_func_end MapGridSetMetatileEntryAt - - thumb_func_start sub_8059024 -sub_8059024: @ 8059024 - push {r4,r5,lr} - adds r4, r0, 0 - adds r3, r1, 0 - adds r5, r2, 0 - cmp r4, 0 - blt _08059076 - ldr r2, _08059060 @ =gUnknown_3005040 - ldr r1, [r2] - cmp r4, r1 - bge _08059076 - cmp r3, 0 - blt _08059076 - ldr r0, [r2, 0x4] - cmp r3, r0 - bge _08059076 - cmp r5, 0 - beq _08059064 - adds r0, r1, 0 - muls r0, r3 - adds r0, r4, r0 - ldr r1, [r2, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r3, 0xC0 - lsls r3, 4 - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - b _08059076 - .align 2, 0 -_08059060: .4byte gUnknown_3005040 -_08059064: - muls r1, r3 - adds r1, r4, r1 - ldr r0, [r2, 0x8] - lsls r1, 1 - adds r1, r0 - ldrh r2, [r1] - ldr r0, _0805907C @ =0x0000f3ff - ands r0, r2 - strh r0, [r1] -_08059076: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805907C: .4byte 0x0000f3ff - thumb_func_end sub_8059024 - - thumb_func_start sub_8059080 -sub_8059080: @ 8059080 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r3, r1, 16 - adds r5, r3, 0 - lsls r2, 24 - lsrs r2, 24 - adds r6, r2, 0 - ldr r0, _080590A4 @ =0x0000027f - cmp r3, r0 - bhi _080590A8 - ldr r0, [r4, 0x10] - ldr r1, [r0, 0x14] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - adds r1, r2, 0 - b _080590C8 - .align 2, 0 -_080590A4: .4byte 0x0000027f -_080590A8: - ldr r0, _080590B4 @ =0x000003ff - cmp r3, r0 - bls _080590B8 - movs r0, 0xFF - b _080590CC - .align 2, 0 -_080590B4: .4byte 0x000003ff -_080590B8: - ldr r0, [r4, 0x14] - ldr r1, [r0, 0x14] - lsls r0, r5, 2 - adds r0, r1 - ldr r1, _080590D4 @ =0xfffff600 - adds r0, r1 - ldr r0, [r0] - adds r1, r6, 0 -_080590C8: - bl sub_8058F1C -_080590CC: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080590D4: .4byte 0xfffff600 - thumb_func_end sub_8059080 - - thumb_func_start sub_80590D8 -sub_80590D8: @ 80590D8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _08059144 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _08059148 @ =0x00000898 - adds r4, r0, r1 - ldr r0, _0805914C @ =gUnknown_3005040 - ldr r0, [r0] - mov r8, r0 - ldr r0, _08059150 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r2, 0 - ldrsh r6, [r0, r2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - adds r1, r0, 0 - adds r1, 0xE - cmp r0, r1 - bge _08059138 - mov r12, r1 - ldr r2, _08059154 @ =gUnknown_2031DFC - mov r9, r2 - lsls r7, r6, 1 -_0805910A: - adds r1, r6, 0 - adds r3, r1, 0 - adds r3, 0xF - adds r5, r0, 0x1 - cmp r1, r3 - bge _08059132 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - lsls r0, 1 - add r0, r9 - adds r2, r7, r0 - subs r1, r3, r1 -_08059124: - ldrh r0, [r2] - strh r0, [r4] - adds r4, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _08059124 -_08059132: - adds r0, r5, 0 - cmp r0, r12 - blt _0805910A -_08059138: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08059144: .4byte gSaveBlock2Ptr -_08059148: .4byte 0x00000898 -_0805914C: .4byte gUnknown_3005040 -_08059150: .4byte gSaveBlock1Ptr -_08059154: .4byte gUnknown_2031DFC - thumb_func_end sub_80590D8 - - thumb_func_start sub_8059158 -sub_8059158: @ 8059158 - push {r4,lr} - movs r2, 0 - movs r1, 0 - ldr r0, _08059184 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r4, _08059188 @ =0x00000898 - adds r3, r0, r4 - ldr r4, _0805918C @ =0x000001ff -_08059168: - lsls r0, r1, 1 - adds r0, r3, r0 - ldrh r0, [r0] - orrs r2, r0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bls _08059168 - cmp r2, 0 - beq _08059190 - movs r0, 0 - b _08059192 - .align 2, 0 -_08059184: .4byte gSaveBlock2Ptr -_08059188: .4byte 0x00000898 -_0805918C: .4byte 0x000001ff -_08059190: - movs r0, 0x1 -_08059192: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8059158 - - thumb_func_start sub_8059198 -sub_8059198: @ 8059198 - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _080591B8 @ =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, _080591BC @ =0x00000898 - adds r1, r0 - ldr r2, _080591C0 @ =0x01000100 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080591B8: .4byte gSaveBlock2Ptr -_080591BC: .4byte 0x00000898 -_080591C0: .4byte 0x01000100 - thumb_func_end sub_8059198 - - thumb_func_start sub_80591C4 -sub_80591C4: @ 80591C4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0805923C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _08059240 @ =0x00000898 - adds r4, r0, r1 - bl sub_8059158 - cmp r0, 0 - bne _08059230 - ldr r0, _08059244 @ =gUnknown_3005040 - ldr r0, [r0] - mov r8, r0 - ldr r0, _08059248 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r2, 0 - ldrsh r6, [r0, r2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - adds r1, r0, 0 - adds r1, 0xE - cmp r0, r1 - bge _0805922C - mov r12, r1 - ldr r2, _0805924C @ =gUnknown_2031DFC - mov r9, r2 - lsls r7, r6, 1 -_080591FE: - adds r1, r6, 0 - adds r3, r1, 0 - adds r3, 0xF - adds r5, r0, 0x1 - cmp r1, r3 - bge _08059226 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - lsls r0, 1 - add r0, r9 - adds r2, r7, r0 - subs r1, r3, r1 -_08059218: - ldrh r0, [r4] - strh r0, [r2] - adds r4, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _08059218 -_08059226: - adds r0, r5, 0 - cmp r0, r12 - blt _080591FE -_0805922C: - bl sub_8059198 -_08059230: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805923C: .4byte gSaveBlock2Ptr -_08059240: .4byte 0x00000898 -_08059244: .4byte gUnknown_3005040 -_08059248: .4byte gSaveBlock1Ptr -_0805924C: .4byte gUnknown_2031DFC - thumb_func_end sub_80591C4 - - thumb_func_start sub_8059250 -sub_8059250: @ 8059250 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - ldr r0, _0805929C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r3, _080592A0 @ =0x00000898 - adds r3, r0, r3 - str r3, [sp, 0x4] - ldr r0, _080592A4 @ =gUnknown_3005040 - ldr r0, [r0] - str r0, [sp] - movs r4, 0 - mov r9, r4 - mov r8, r4 - ldr r0, _080592A8 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r3, 0 - ldrsh r6, [r0, r3] - str r6, [sp, 0x8] - movs r4, 0x2 - ldrsh r5, [r0, r4] - movs r7, 0xF - movs r6, 0xE - mov r12, r6 - cmp r1, 0x2 - beq _080592B6 - cmp r1, 0x2 - bgt _080592AC - cmp r1, 0x1 - beq _080592BE - b _080592D6 - .align 2, 0 -_0805929C: .4byte gSaveBlock2Ptr -_080592A0: .4byte 0x00000898 -_080592A4: .4byte gUnknown_3005040 -_080592A8: .4byte gSaveBlock1Ptr -_080592AC: - cmp r2, 0x3 - beq _080592C8 - cmp r2, 0x4 - beq _080592D0 - b _080592D6 -_080592B6: - adds r5, 0x1 - movs r0, 0xD - mov r12, r0 - b _080592D6 -_080592BE: - movs r1, 0x1 - mov r8, r1 - movs r3, 0xD - mov r12, r3 - b _080592D6 -_080592C8: - ldr r4, [sp, 0x8] - adds r4, 0x1 - str r4, [sp, 0x8] - b _080592D4 -_080592D0: - movs r6, 0x1 - mov r9, r6 -_080592D4: - movs r7, 0xE -_080592D6: - movs r1, 0 - cmp r1, r12 - bge _0805931A - ldr r0, _08059330 @ =gUnknown_2031DFC - mov r10, r0 -_080592E0: - adds r4, r1, 0x1 - cmp r7, 0 - beq _08059314 - adds r0, r1, r5 - ldr r3, [sp] - adds r2, r3, 0 - muls r2, r0 - add r1, r8 - lsls r0, r1, 4 - subs r0, r1 - add r0, r9 - ldr r6, [sp, 0x8] - adds r2, r6, r2 - adds r3, r7, 0 - lsls r2, 1 - add r2, r10 - lsls r0, 1 - ldr r6, [sp, 0x4] - adds r1, r0, r6 -_08059306: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _08059306 -_08059314: - adds r1, r4, 0 - cmp r1, r12 - blt _080592E0 -_0805931A: - bl sub_8059198 - 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 -_08059330: .4byte gUnknown_2031DFC - thumb_func_end sub_8059250 - - thumb_func_start sub_8059334 -sub_8059334: @ 8059334 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - mov r8, r1 - cmp r7, 0 - blt _08059374 - ldr r1, _0805936C @ =gUnknown_3005040 - ldr r2, [r1] - cmp r7, r2 - bge _08059374 - mov r0, r8 - cmp r0, 0 - blt _08059374 - ldr r0, [r1, 0x4] - cmp r8, r0 - bge _08059374 - mov r0, r8 - muls r0, r2 - adds r0, r7, r0 - ldr r1, [r1, 0x8] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _08059370 @ =0x000003ff - cmp r1, r0 - beq _08059422 - b _080593B0 - .align 2, 0 -_0805936C: .4byte gUnknown_3005040 -_08059370: .4byte 0x000003ff -_08059374: - ldr r0, _080593CC @ =gMapHeader - ldr r6, [r0] - subs r0, r7, 0x7 - ldrb r5, [r6, 0x18] - lsls r1, r5, 3 - adds r0, r1 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - mov r0, r8 - subs r0, 0x7 - ldrb r1, [r6, 0x19] - lsls r2, r1, 3 - adds r0, r2 - bl __modsi3 - muls r0, r5 - adds r4, r0 - ldr r0, [r6, 0x8] - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2, 0 - orrs r0, r1 - ldr r1, _080593D0 @ =0x000003ff - cmp r0, r1 - beq _08059422 -_080593B0: - ldr r1, _080593D4 @ =gUnknown_3005040 - ldr r0, [r1] - subs r0, 0x8 - cmp r7, r0 - blt _080593DC - ldr r0, _080593D8 @ =gUnknown_2036E24 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08059422 - movs r0, 0x4 - b _08059432 - .align 2, 0 -_080593CC: .4byte gMapHeader -_080593D0: .4byte 0x000003ff -_080593D4: .4byte gUnknown_3005040 -_080593D8: .4byte gUnknown_2036E24 -_080593DC: - cmp r7, 0x6 - bgt _080593F4 - ldr r0, _080593F0 @ =gUnknown_2036E24 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08059422 - movs r0, 0x3 - b _08059432 - .align 2, 0 -_080593F0: .4byte gUnknown_2036E24 -_080593F4: - ldr r0, [r1, 0x4] - subs r0, 0x7 - cmp r8, r0 - blt _08059410 - ldr r0, _0805940C @ =gUnknown_2036E24 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08059422 - movs r0, 0x1 - b _08059432 - .align 2, 0 -_0805940C: .4byte gUnknown_2036E24 -_08059410: - mov r0, r8 - cmp r0, 0x6 - bgt _08059430 - ldr r0, _08059428 @ =gUnknown_2036E24 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0805942C -_08059422: - movs r0, 0x1 - negs r0, r0 - b _08059432 - .align 2, 0 -_08059428: .4byte gUnknown_2036E24 -_0805942C: - movs r0, 0x2 - b _08059432 -_08059430: - movs r0, 0 -_08059432: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8059334 - - thumb_func_start GetPostCameraMoveMapBorderId -GetPostCameraMoveMapBorderId: @ 805943C - push {r4,lr} - adds r3, r1, 0 - ldr r1, _08059460 @ =gSaveBlock1Ptr - ldr r1, [r1] - movs r4, 0 - ldrsh r2, [r1, r4] - adds r0, 0x7 - adds r2, r0 - movs r0, 0x2 - ldrsh r1, [r1, r0] - adds r3, 0x7 - adds r1, r3 - adds r0, r2, 0 - bl sub_8059334 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08059460: .4byte gSaveBlock1Ptr - thumb_func_end GetPostCameraMoveMapBorderId - - thumb_func_start CanCameraMoveInDirection -CanCameraMoveInDirection: @ 8059464 - push {r4,r5,lr} - ldr r1, _0805949C @ =gSaveBlock1Ptr - ldr r4, [r1] - movs r1, 0 - ldrsh r3, [r4, r1] - ldr r2, _080594A0 @ =gUnknown_826D2D8 - lsls r0, 3 - adds r1, r0, r2 - ldr r1, [r1] - adds r1, 0x7 - adds r3, r1 - movs r5, 0x2 - ldrsh r1, [r4, r5] - adds r2, 0x4 - adds r0, r2 - ldr r0, [r0] - adds r0, 0x7 - adds r1, r0 - adds r0, r3, 0 - bl sub_8059334 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080594A4 - movs r0, 0x1 - b _080594A6 - .align 2, 0 -_0805949C: .4byte gSaveBlock1Ptr -_080594A0: .4byte gUnknown_826D2D8 -_080594A4: - movs r0, 0 -_080594A6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CanCameraMoveInDirection - - thumb_func_start sub_80594AC -sub_80594AC: @ 80594AC - push {r4-r7,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - adds r7, r3, 0 - bl mapconnection_get_mapheader - adds r3, r0, 0 - cmp r4, 0x2 - beq _08059514 - cmp r4, 0x2 - bgt _080594CA - cmp r4, 0x1 - beq _08059500 - b _08059526 -_080594CA: - cmp r4, 0x3 - beq _080594E8 - cmp r4, 0x4 - bne _08059526 - ldr r0, _080594E4 @ =gSaveBlock1Ptr - ldr r1, [r0] - negs r0, r6 - strh r0, [r1] - ldr r2, [r5, 0x4] - ldrh r0, [r1, 0x2] - subs r0, r2 - b _08059524 - .align 2, 0 -_080594E4: .4byte gSaveBlock1Ptr -_080594E8: - ldr r0, _080594FC @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, [r3] - ldr r0, [r0] - strh r0, [r1] - ldr r2, [r5, 0x4] - ldrh r0, [r1, 0x2] - subs r0, r2 - b _08059524 - .align 2, 0 -_080594FC: .4byte gSaveBlock1Ptr -_08059500: - ldr r0, _08059510 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, [r5, 0x4] - ldrh r0, [r1] - subs r0, r2 - strh r0, [r1] - negs r0, r7 - b _08059524 - .align 2, 0 -_08059510: .4byte gSaveBlock1Ptr -_08059514: - ldr r0, _0805952C @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, [r5, 0x4] - ldrh r0, [r1] - subs r0, r2 - strh r0, [r1] - ldr r0, [r3] - ldr r0, [r0, 0x4] -_08059524: - strh r0, [r1, 0x2] -_08059526: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805952C: .4byte gSaveBlock1Ptr - thumb_func_end sub_80594AC - - thumb_func_start CameraMove -CameraMove: @ 8059530 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - mov r9, r1 - ldr r1, _08059570 @ =gUnknown_2036E18 - ldrb r0, [r1] - movs r1, 0x2 - negs r1, r1 - ands r1, r0 - ldr r2, _08059570 @ =gUnknown_2036E18 - strb r1, [r2] - mov r0, r10 - mov r1, r9 - bl GetPostCameraMoveMapBorderId - adds r7, r0, 0 - adds r0, r7, 0x1 - cmp r0, 0x1 - bhi _08059578 - ldr r0, _08059574 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldrh r0, [r1] - add r0, r10 - strh r0, [r1] - ldrh r0, [r1, 0x2] - add r0, r9 - strh r0, [r1, 0x2] - b _080595E2 - .align 2, 0 -_08059570: .4byte gUnknown_2036E18 -_08059574: .4byte gSaveBlock1Ptr -_08059578: - bl sub_80590D8 - ldr r1, _080595F8 @ =gSaveBlock1Ptr - ldr r0, [r1] - movs r2, 0 - ldrsh r5, [r0, r2] - movs r1, 0x2 - ldrsh r6, [r0, r1] - lsls r2, r7, 24 - lsrs r2, 24 - mov r8, r2 - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8059600 - adds r4, r0, 0 - adds r1, r7, 0 - mov r2, r10 - mov r3, r9 - bl sub_80594AC - ldrb r0, [r4, 0x8] - ldrb r1, [r4, 0x9] - bl sub_8055864 - ldr r1, _080595FC @ =gUnknown_2036E18 - ldrb r0, [r1] - movs r1, 0x1 - orrs r0, r1 - ldr r2, _080595FC @ =gUnknown_2036E18 - strb r0, [r2] - ldr r0, _080595F8 @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r2, 0 - ldrsh r0, [r1, r2] - subs r5, r0 - ldr r0, _080595FC @ =gUnknown_2036E18 - str r5, [r0, 0x4] - movs r2, 0x2 - ldrsh r0, [r1, r2] - subs r6, r0 - ldr r0, _080595FC @ =gUnknown_2036E18 - str r6, [r0, 0x8] - ldrh r0, [r1] - add r0, r10 - strh r0, [r1] - ldrh r0, [r1, 0x2] - add r0, r9 - strh r0, [r1, 0x2] - mov r0, r8 - bl sub_8059250 -_080595E2: - ldr r0, _080595FC @ =gUnknown_2036E18 - ldrb r0, [r0] - lsls r0, 31 - lsrs r0, 31 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080595F8: .4byte gSaveBlock1Ptr -_080595FC: .4byte gUnknown_2036E18 - thumb_func_end CameraMove - - thumb_func_start sub_8059600 -sub_8059600: @ 8059600 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r1 - mov r8, r2 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0805963C @ =gMapHeader - ldr r0, [r0, 0xC] - ldr r7, [r0] - ldr r4, [r0, 0x4] - movs r5, 0 - cmp r5, r7 - bge _08059648 -_0805961E: - ldrb r0, [r4] - cmp r0, r6 - bne _08059640 - adds r0, r6, 0 - mov r1, r9 - mov r2, r8 - adds r3, r4, 0 - bl sub_8059658 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08059640 - adds r0, r4, 0 - b _0805964A - .align 2, 0 -_0805963C: .4byte gMapHeader -_08059640: - adds r5, 0x1 - adds r4, 0xC - cmp r5, r7 - blt _0805961E -_08059648: - movs r0, 0 -_0805964A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8059600 - - thumb_func_start sub_8059658 -sub_8059658: @ 8059658 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - mov r8, r2 - adds r5, r3, 0 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - adds r0, r5, 0 - bl mapconnection_get_mapheader - adds r2, r0, 0 - cmp r4, 0x1 - blt _080596B0 - cmp r4, 0x2 - bgt _08059690 - ldr r0, _0805968C @ =gMapHeader - ldr r0, [r0] - ldr r1, [r0] - ldr r0, [r2] - ldr r2, [r0] - ldr r3, [r5, 0x4] - adds r0, r7, 0 - b _080596A2 - .align 2, 0 -_0805968C: .4byte gMapHeader -_08059690: - cmp r6, 0x4 - bgt _080596B0 - ldr r0, _080596AC @ =gMapHeader - ldr r0, [r0] - ldr r1, [r0, 0x4] - ldr r0, [r2] - ldr r2, [r0, 0x4] - ldr r3, [r5, 0x4] - mov r0, r8 -_080596A2: - bl sub_80596BC - lsls r0, 24 - lsrs r0, 24 - b _080596B2 - .align 2, 0 -_080596AC: .4byte gMapHeader -_080596B0: - movs r0, 0 -_080596B2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8059658 - - thumb_func_start sub_80596BC -sub_80596BC: @ 80596BC - push {r4,lr} - adds r4, r0, 0 - adds r0, r2, 0 - adds r2, r3, 0 - cmp r3, 0 - bge _080596CA - movs r3, 0 -_080596CA: - adds r2, r0, r2 - cmp r2, r1 - bge _080596D2 - adds r1, r2, 0 -_080596D2: - cmp r3, r4 - bgt _080596DE - cmp r4, r1 - bgt _080596DE - movs r0, 0x1 - b _080596E0 -_080596DE: - movs r0, 0 -_080596E0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80596BC - - thumb_func_start sub_80596E8 -sub_80596E8: @ 80596E8 - push {lr} - cmp r0, 0 - blt _080596F6 - cmp r0, r1 - bge _080596F6 - movs r0, 0x1 - b _080596F8 -_080596F6: - movs r0, 0 -_080596F8: - pop {r1} - bx r1 - thumb_func_end sub_80596E8 - - thumb_func_start sub_80596FC -sub_80596FC: @ 80596FC - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl mapconnection_get_mapheader - adds r1, r0, 0 - ldrb r0, [r4] - cmp r0, 0x1 - blt _08059734 - cmp r0, 0x2 - bgt _08059722 - ldr r0, [r4, 0x4] - subs r0, r5, r0 - ldr r1, [r1] - ldr r1, [r1] - bl sub_80596E8 - b _08059736 -_08059722: - cmp r0, 0x4 - bgt _08059734 - ldr r0, [r4, 0x4] - subs r0, r6, r0 - ldr r1, [r1] - ldr r1, [r1, 0x4] - bl sub_80596E8 - b _08059736 -_08059734: - movs r0, 0 -_08059736: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80596FC - - thumb_func_start sub_805973C -sub_805973C: @ 805973C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _0805975C @ =gMapHeader - ldr r0, [r2, 0xC] - cmp r0, 0 - bne _08059764 - b _080597DA - .align 2, 0 -_0805975C: .4byte gMapHeader -_08059760: - adds r0, r4, 0 - b _080597DC -_08059764: - ldr r7, [r0] - ldr r4, [r0, 0x4] - movs r6, 0 - cmp r6, r7 - bge _080597DA - lsls r0, r1, 16 - asrs r5, r0, 16 - mov r9, r2 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - mov r10, r0 -_0805977C: - ldrb r1, [r4] - adds r3, r1, 0 - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080597D2 - cmp r1, 0x2 - bne _08059792 - cmp r5, 0x6 - bgt _080597D2 -_08059792: - cmp r1, 0x1 - bne _080597A2 - mov r2, r9 - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r0, 0x7 - cmp r5, r0 - blt _080597D2 -_080597A2: - mov r0, r8 - lsls r2, r0, 16 - cmp r1, 0x3 - bne _080597B0 - mov r1, r10 - cmp r1, 0x6 - bgt _080597D2 -_080597B0: - cmp r3, 0x4 - bne _080597C2 - asrs r1, r2, 16 - mov r3, r9 - ldr r0, [r3] - ldr r0, [r0] - adds r0, 0x7 - cmp r1, r0 - blt _080597D2 -_080597C2: - asrs r1, r2, 16 - subs r1, 0x7 - adds r0, r4, 0 - subs r2, r5, 0x7 - bl sub_80596FC - cmp r0, 0x1 - beq _08059760 -_080597D2: - adds r6, 0x1 - adds r4, 0xC - cmp r6, r7 - blt _0805977C -_080597DA: - movs r0, 0 -_080597DC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805973C - - thumb_func_start sub_80597EC -sub_80597EC: @ 80597EC - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _08059804 @ =gSaveBlock1Ptr - ldr r2, [r2] - subs r0, 0x7 - strh r0, [r2] - subs r1, 0x7 - strh r1, [r2, 0x2] - bx lr - .align 2, 0 -_08059804: .4byte gSaveBlock1Ptr - thumb_func_end sub_80597EC - - thumb_func_start sav1_camera_get_focus_coords -sav1_camera_get_focus_coords: @ 8059808 - ldr r2, _0805981C @ =gSaveBlock1Ptr - ldr r3, [r2] - ldrh r2, [r3] - adds r2, 0x7 - strh r2, [r0] - ldrh r0, [r3, 0x2] - adds r0, 0x7 - strh r0, [r1] - bx lr - .align 2, 0 -_0805981C: .4byte gSaveBlock1Ptr - thumb_func_end sav1_camera_get_focus_coords - - thumb_func_start SetCameraCoords -SetCameraCoords: @ 8059820 - ldr r2, _0805982C @ =gSaveBlock1Ptr - ldr r2, [r2] - strh r0, [r2] - strh r1, [r2, 0x2] - bx lr - .align 2, 0 -_0805982C: .4byte gSaveBlock1Ptr - thumb_func_end SetCameraCoords - - thumb_func_start GetCameraCoords -GetCameraCoords: @ 8059830 - ldr r2, _08059840 @ =gSaveBlock1Ptr - ldr r3, [r2] - ldrh r2, [r3] - strh r2, [r0] - ldrh r0, [r3, 0x2] - strh r0, [r1] - bx lr - .align 2, 0 -_08059840: .4byte gSaveBlock1Ptr - thumb_func_end GetCameraCoords - - thumb_func_start copy_tileset_patterns_to_vram -copy_tileset_patterns_to_vram: @ 8059844 - push {r4-r7,lr} - sub sp, 0x4 - adds r3, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - lsls r2, 16 - lsrs r5, r2, 16 - adds r7, r5, 0 - cmp r3, 0 - beq _08059880 - ldrb r0, [r3] - cmp r0, 0 - bne _08059870 - ldr r1, [r3, 0x4] - lsls r2, r4, 21 - lsrs r2, 16 - movs r0, 0x2 - adds r3, r5, 0 - bl LoadBgTiles - b _08059880 -_08059870: - ldr r1, [r3, 0x4] - lsls r2, r6, 5 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - adds r3, r7, 0 - bl sub_80F68F0 -_08059880: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end copy_tileset_patterns_to_vram - - thumb_func_start copy_tileset_patterns_to_vram2 -copy_tileset_patterns_to_vram2: @ 8059888 - push {r4-r7,lr} - sub sp, 0x4 - adds r3, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - lsls r2, 16 - lsrs r5, r2, 16 - adds r7, r5, 0 - cmp r3, 0 - beq _080598C4 - ldrb r0, [r3] - cmp r0, 0 - bne _080598B4 - ldr r1, [r3, 0x4] - lsls r2, r4, 21 - lsrs r2, 16 - movs r0, 0x2 - adds r3, r5, 0 - bl LoadBgTiles - b _080598C4 -_080598B4: - ldr r1, [r3, 0x4] - lsls r2, r6, 5 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - adds r3, r7, 0 - bl sub_80F69E8 -_080598C4: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end copy_tileset_patterns_to_vram2 - - thumb_func_start sub_80598CC -sub_80598CC: @ 80598CC - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r0, _080598EC @ =gUnknown_2036E28 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080598F0 - cmp r0, 0x1 - ble _0805993A - cmp r0, 0x2 - beq _08059904 - cmp r0, 0x3 - beq _08059918 - b _0805993A - .align 2, 0 -_080598EC: .4byte gUnknown_2036E28 -_080598F0: - lsls r4, 1 - ldr r0, _08059900 @ =gPlttBufferUnfaded - adds r0, r4, r0 - adds r1, r5, 0 - bl TintPalette_GrayScale - b _0805992C - .align 2, 0 -_08059900: .4byte gPlttBufferUnfaded -_08059904: - lsls r4, 1 - ldr r0, _08059914 @ =gPlttBufferUnfaded - adds r0, r4, r0 - adds r1, r5, 0 - bl TintPalette_SepiaTone - b _0805992C - .align 2, 0 -_08059914: .4byte gPlttBufferUnfaded -_08059918: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8111F38 - lsls r4, 1 - ldr r0, _08059940 @ =gPlttBufferUnfaded - adds r0, r4, r0 - adds r1, r5, 0 - bl TintPalette_GrayScale -_0805992C: - ldr r0, _08059940 @ =gPlttBufferUnfaded - adds r0, r4, r0 - ldr r1, _08059944 @ =gPlttBufferFaded - adds r1, r4, r1 - adds r2, r5, 0 - bl CpuSet -_0805993A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08059940: .4byte gPlttBufferUnfaded -_08059944: .4byte gPlttBufferFaded - thumb_func_end sub_80598CC - - thumb_func_start sub_8059948 -sub_8059948: @ 8059948 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, _08059968 @ =gUnknown_2036E28 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0805996C - cmp r0, 0x1 - ble _080599B8 - cmp r0, 0x2 - beq _08059980 - cmp r0, 0x3 - beq _08059994 - b _080599B8 - .align 2, 0 -_08059968: .4byte gUnknown_2036E28 -_0805996C: - lsls r4, 5 - ldr r0, _0805997C @ =gPlttBufferUnfaded - adds r0, r4, r0 - lsls r1, r6, 4 - bl TintPalette_GrayScale - b _080599AA - .align 2, 0 -_0805997C: .4byte gPlttBufferUnfaded -_08059980: - lsls r4, 5 - ldr r0, _08059990 @ =gPlttBufferUnfaded - adds r0, r4, r0 - lsls r1, r6, 4 - bl TintPalette_SepiaTone - b _080599AA - .align 2, 0 -_08059990: .4byte gPlttBufferUnfaded -_08059994: - lsls r0, r4, 4 - lsls r5, r6, 4 - adds r1, r5, 0 - bl sub_8111F38 - lsls r4, 5 - ldr r0, _080599C0 @ =gPlttBufferUnfaded - adds r0, r4, r0 - adds r1, r5, 0 - bl TintPalette_GrayScale -_080599AA: - ldr r0, _080599C0 @ =gPlttBufferUnfaded - adds r0, r4, r0 - ldr r1, _080599C4 @ =gPlttBufferFaded - adds r1, r4, r1 - lsls r2, r6, 3 - bl CpuFastSet -_080599B8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080599C0: .4byte gPlttBufferUnfaded -_080599C4: .4byte gPlttBufferFaded - thumb_func_end sub_8059948 - - thumb_func_start apply_map_tileset_palette -apply_map_tileset_palette: @ 80599C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - mov r8, r5 - lsls r6, r2, 16 - lsrs r7, r6, 16 - adds r2, r7, 0 - movs r1, 0 - mov r0, sp - strh r1, [r0] - cmp r4, 0 - beq _08059A46 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08059A1C - mov r0, sp - adds r1, r5, 0 - movs r2, 0x2 - bl LoadPalette - ldr r0, [r4, 0x8] - adds r0, 0x2 - adds r5, 0x1 - lsls r5, 16 - lsrs r5, 16 - subs r4, r7, 0x2 - lsls r2, r4, 16 - lsrs r2, 16 - adds r1, r5, 0 - bl LoadPalette - lsls r4, 15 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80598CC - b _08059A46 -_08059A1C: - cmp r0, 0x1 - bne _08059A36 - ldr r0, [r4, 0x8] - adds r0, 0xE0 - adds r1, r5, 0 - adds r2, r7, 0 - bl LoadPalette - lsrs r1, r6, 17 - adds r0, r5, 0 - bl sub_80598CC - b _08059A46 -_08059A36: - ldr r0, [r4, 0x8] - mov r1, r8 - bl LoadCompressedPalette - lsrs r1, r6, 17 - mov r0, r8 - bl sub_80598CC -_08059A46: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end apply_map_tileset_palette - - thumb_func_start sub_8059A54 -sub_8059A54: @ 8059A54 - push {lr} - ldr r0, [r0, 0x10] - movs r1, 0xA0 - lsls r1, 2 - movs r2, 0 - bl copy_tileset_patterns_to_vram - pop {r0} - bx r0 - thumb_func_end sub_8059A54 - - thumb_func_start sub_8059A68 -sub_8059A68: @ 8059A68 - push {lr} - ldr r0, [r0, 0x14] - movs r1, 0xC0 - lsls r1, 1 - movs r2, 0xA0 - lsls r2, 2 - bl copy_tileset_patterns_to_vram - pop {r0} - bx r0 - thumb_func_end sub_8059A68 - - thumb_func_start copy_map_tileset2_to_vram_2 -copy_map_tileset2_to_vram_2: @ 8059A7C - push {lr} - ldr r0, [r0, 0x14] - movs r1, 0xC0 - lsls r1, 1 - movs r2, 0xA0 - lsls r2, 2 - bl copy_tileset_patterns_to_vram2 - pop {r0} - bx r0 - thumb_func_end copy_map_tileset2_to_vram_2 - - thumb_func_start sub_8059A90 -sub_8059A90: @ 8059A90 - push {lr} - ldr r0, [r0, 0x10] - movs r1, 0 - movs r2, 0xE0 - bl apply_map_tileset_palette - pop {r0} - bx r0 - thumb_func_end sub_8059A90 - - thumb_func_start sub_8059AA0 -sub_8059AA0: @ 8059AA0 - push {lr} - ldr r0, [r0, 0x14] - movs r1, 0x70 - movs r2, 0xC0 - bl apply_map_tileset_palette - pop {r0} - bx r0 - thumb_func_end sub_8059AA0 - - thumb_func_start copy_map_tileset1_tileset2_to_vram -copy_map_tileset1_tileset2_to_vram: @ 8059AB0 - push {r4,r5,lr} - adds r5, r0, 0 - cmp r5, 0 - beq _08059AD2 - ldr r0, [r5, 0x10] - movs r4, 0xA0 - lsls r4, 2 - adds r1, r4, 0 - movs r2, 0 - bl copy_tileset_patterns_to_vram2 - ldr r0, [r5, 0x14] - movs r1, 0xC0 - lsls r1, 1 - adds r2, r4, 0 - bl copy_tileset_patterns_to_vram2 -_08059AD2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end copy_map_tileset1_tileset2_to_vram - - thumb_func_start apply_map_tileset1_tileset2_palette -apply_map_tileset1_tileset2_palette: @ 8059AD8 - push {r4,lr} - adds r4, r0, 0 - cmp r4, 0 - beq _08059AEA - bl sub_8059A90 - adds r0, r4, 0 - bl sub_8059AA0 -_08059AEA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end apply_map_tileset1_tileset2_palette - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fighting.s b/asm/fighting.s new file mode 100644 index 000000000..518927a3c --- /dev/null +++ b/asm/fighting.s @@ -0,0 +1,1746 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start unc_080B08A0 +unc_080B08A0: @ 80B08A0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B08D0 @ =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_8074FF8 + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0xF + strh r0, [r4, 0x2E] + ldr r0, _080B08D4 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080B08D8 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B08D0: .4byte gBattleAnimArgs +_080B08D4: .4byte sub_8074C44 +_080B08D8: .4byte DestroyAnimSprite + thumb_func_end unc_080B08A0 + + thumb_func_start sub_80B08DC +sub_80B08DC: @ 80B08DC + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B0920 @ =gBattleAnimArgs + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080B0904 + ldr r0, _080B0924 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B0904 + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] + ldrh r0, [r4, 0x6] + negs r0, r0 + strh r0, [r4, 0x6] +_080B0904: + ldr r4, _080B0920 @ =gBattleAnimArgs + ldrb r1, [r4, 0xC] + adds r0, r5, 0 + bl StartSpriteAnim + movs r0, 0 + strh r0, [r4, 0xC] + adds r0, r5, 0 + bl sub_8075F0C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0920: .4byte gBattleAnimArgs +_080B0924: .4byte gBattleAnimAttacker + thumb_func_end sub_80B08DC + + thumb_func_start sub_80B0928 +sub_80B0928: @ 80B0928 + push {r4,lr} + adds r4, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B0944 + ldr r0, _080B0950 @ =gBattleAnimArgs + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0x6] + negs r1, r1 + strh r1, [r0, 0x6] +_080B0944: + adds r0, r4, 0 + bl sub_80B08DC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0950: .4byte gBattleAnimArgs + thumb_func_end sub_80B0928 + + thumb_func_start sub_80B0954 +sub_80B0954: @ 80B0954 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B0974 @ =gBattleAnimArgs + ldrb r1, [r4, 0x8] + bl StartSpriteAnim + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B0978 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + b _080B0980 + .align 2, 0 +_080B0974: .4byte gBattleAnimArgs +_080B0978: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075114 +_080B0980: + ldr r0, _080B0998 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080B099C @ =sub_8074C44 + str r0, [r5, 0x1C] + ldr r1, _080B09A0 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0998: .4byte gBattleAnimArgs +_080B099C: .4byte sub_8074C44 +_080B09A0: .4byte DestroyAnimSprite + thumb_func_end sub_80B0954 + + thumb_func_start sub_80B09A4 +sub_80B09A4: @ 80B09A4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + ldr r0, _080B09C0 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + mov r9, r0 + cmp r1, 0 + bne _080B09C8 + ldr r0, _080B09C4 @ =gBattleAnimAttacker + b _080B09CA + .align 2, 0 +_080B09C0: .4byte gBattleAnimArgs +_080B09C4: .4byte gBattleAnimAttacker +_080B09C8: + ldr r0, _080B0B10 @ =gBattleAnimTarget +_080B09CA: + ldrb r0, [r0] + mov r8, r0 + mov r4, r9 + movs r3, 0x4 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080B09E8 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + strh r0, [r4, 0x4] +_080B09E8: + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAnim + mov r0, r8 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + mov r0, r8 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + mov r0, r8 + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + lsls r1, 15 + lsrs r6, r1, 16 + mov r0, r8 + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080B0A32 + adds r0, 0x3 +_080B0A32: + lsls r4, r0, 14 + lsrs r4, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r1, r6, 16 + asrs r1, 16 + bl __modsi3 + lsls r0, 16 + lsrs r6, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + asrs r4, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r4, r0, 16 + bl Random + movs r7, 0x1 + adds r1, r7, 0 + ands r1, r0 + cmp r1, 0 + beq _080B0A74 + lsls r0, r6, 16 + negs r0, r0 + lsrs r6, r0, 16 +_080B0A74: + bl Random + adds r1, r7, 0 + ands r1, r0 + cmp r1, 0 + beq _080B0A86 + lsls r0, r4, 16 + negs r0, r0 + lsrs r4, r0, 16 +_080B0A86: + ldr r0, _080B0B14 @ =gUnknown_2023BD6 + add r0, r8 + ldrb r1, [r0] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + bne _080B0A9C + lsls r0, r4, 16 + ldr r1, _080B0B18 @ =0xfff00000 + adds r0, r1 + lsrs r4, r0, 16 +_080B0A9C: + lsls r0, r6, 16 + asrs r0, 16 + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r3, [r5, 0x22] + adds r0, r3 + strh r0, [r5, 0x22] + mov r1, r9 + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x2E] + ldr r0, _080B0B1C @ =gUnknown_83E7C08 + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r3, 0x22 + ldrsh r2, [r5, r3] + adds r3, r5, 0 + adds r3, 0x43 + ldrb r3, [r3] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3C] + cmp r0, 0x40 + beq _080B0B00 + movs r0, 0x3C + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080B0B20 @ =gSprites + adds r0, r4 + movs r1, 0 + bl StartSpriteAffineAnim + movs r2, 0x3C + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080B0B24 @ =SpriteCallbackDummy + str r1, [r0] +_080B0B00: + ldr r0, _080B0B28 @ =sub_80B0B2C + str r0, [r5, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0B10: .4byte gBattleAnimTarget +_080B0B14: .4byte gUnknown_2023BD6 +_080B0B18: .4byte 0xfff00000 +_080B0B1C: .4byte gUnknown_83E7C08 +_080B0B20: .4byte gSprites +_080B0B24: .4byte SpriteCallbackDummy +_080B0B28: .4byte sub_80B0B2C + thumb_func_end sub_80B09A4 + + thumb_func_start sub_80B0B2C +sub_80B0B2C: @ 80B0B2C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080B0B74 + movs r1, 0x3C + ldrsh r0, [r5, r1] + cmp r0, 0x40 + beq _080B0B68 + ldr r4, _080B0B70 @ =gSprites + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + movs r0, 0x3C + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite +_080B0B68: + adds r0, r5, 0 + bl DestroyAnimSprite + b _080B0B78 + .align 2, 0 +_080B0B70: .4byte gSprites +_080B0B74: + subs r0, r1, 0x1 + strh r0, [r5, 0x2E] +_080B0B78: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B0B2C + + thumb_func_start sub_80B0B80 +sub_80B0B80: @ 80B0B80 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + movs r0, 0x1E + strh r0, [r4, 0x2E] + ldr r0, _080B0BA0 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B0BA4 + ldrh r0, [r4, 0x20] + subs r0, 0x14 + strh r0, [r4, 0x32] + b _080B0BB6 + .align 2, 0 +_080B0BA0: .4byte gBattleAnimArgs +_080B0BA4: + ldrh r0, [r4, 0x20] + adds r0, 0x14 + strh r0, [r4, 0x32] + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080B0BB6: + ldrh r0, [r4, 0x22] + subs r0, 0x14 + strh r0, [r4, 0x36] + ldr r0, _080B0BD0 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080B0BD4 @ =sub_80B0BD8 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0BD0: .4byte sub_8075590 +_080B0BD4: .4byte sub_80B0BD8 + thumb_func_end sub_80B0B80 + + thumb_func_start sub_80B0BD8 +sub_80B0BD8: @ 80B0BD8 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x38] + adds r0, 0x1 + movs r6, 0 + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _080B0C18 + ldrh r2, [r5, 0x20] + ldrh r4, [r5, 0x24] + subs r0, r2, r4 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x22] + ldrh r3, [r5, 0x26] + subs r0, r1, r3 + strh r0, [r5, 0x36] + movs r0, 0x8 + strh r0, [r5, 0x2E] + adds r2, r4 + strh r2, [r5, 0x20] + adds r1, r3 + strh r1, [r5, 0x22] + strh r6, [r5, 0x26] + strh r6, [r5, 0x24] + ldr r0, _080B0C20 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080B0C24 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080B0C18: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B0C20: .4byte sub_8075590 +_080B0C24: .4byte DestroyAnimSprite + thumb_func_end sub_80B0BD8 + + thumb_func_start sub_80B0C28 +sub_80B0C28: @ 80B0C28 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080B0CA4 @ =gBattleAnimAttacker + ldrb r1, [r0] + movs r0, 0x2 + ldr r2, _080B0CA8 @ =gBattleAnimTarget + eors r0, r1 + ldrb r1, [r2] + cmp r0, r1 + bne _080B0C54 + ldrb r0, [r2] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080B0C54 + ldr r1, _080B0CAC @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] +_080B0C54: + adds r0, r6, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080B0CA4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B0C72 + ldr r1, _080B0CAC @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080B0C72: + ldr r4, _080B0CAC @ =gBattleAnimArgs + ldrh r0, [r4, 0x6] + movs r5, 0 + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x3A] + strh r5, [r6, 0x3C] + ldr r0, _080B0CB0 @ =sub_80B0CB4 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B0CA4: .4byte gBattleAnimAttacker +_080B0CA8: .4byte gBattleAnimTarget +_080B0CAC: .4byte gBattleAnimArgs +_080B0CB0: .4byte sub_80B0CB4 + thumb_func_end sub_80B0C28 + + thumb_func_start sub_80B0CB4 +sub_80B0CB4: @ 80B0CB4 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080B0CE0 + ldrh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + strh r0, [r4, 0x3C] + b _080B0CE6 +_080B0CE0: + adds r0, r4, 0 + bl DestroyAnimSprite +_080B0CE6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B0CB4 + + thumb_func_start sub_80B0CEC +sub_80B0CEC: @ 80B0CEC + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r5, _080B0D18 @ =gBattleAnimArgs + ldrb r1, [r5, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldr r0, _080B0D1C @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080B0D20 @ =sub_80B0D24 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0D18: .4byte gBattleAnimArgs +_080B0D1C: .4byte sub_8074C44 +_080B0D20: .4byte sub_80B0D24 + thumb_func_end sub_80B0CEC + + thumb_func_start sub_80B0D24 +sub_80B0D24: @ 80B0D24 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl StartSpriteAffineAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r0, _080B0D50 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080B0D54 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0D50: .4byte sub_8074C44 +_080B0D54: .4byte DestroyAnimSprite + thumb_func_end sub_80B0D24 + + thumb_func_start sub_80B0D58 +sub_80B0D58: @ 80B0D58 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080B0D74 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080B0D78 @ =sub_80B0D7C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0D74: .4byte gBattleAnimArgs +_080B0D78: .4byte sub_80B0D7C + thumb_func_end sub_80B0D58 + + thumb_func_start sub_80B0D7C +sub_80B0D7C: @ 80B0D7C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + subs r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B0DC0 + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080B0DC8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080B0DCC @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080B0DD0 @ =sub_80B0DD4 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 +_080B0DC0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0DC8: .4byte gBattleAnimTarget +_080B0DCC: .4byte sub_8075590 +_080B0DD0: .4byte sub_80B0DD4 + thumb_func_end sub_80B0D7C + + thumb_func_start sub_80B0DD4 +sub_80B0DD4: @ 80B0DD4 + push {lr} + movs r1, 0xF + strh r1, [r0, 0x2E] + ldr r1, _080B0DE8 @ =sub_8074C44 + str r1, [r0, 0x1C] + ldr r1, _080B0DEC @ =DestroyAnimSprite + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080B0DE8: .4byte sub_8074C44 +_080B0DEC: .4byte DestroyAnimSprite + thumb_func_end sub_80B0DD4 + + thumb_func_start sub_80B0DF0 +sub_80B0DF0: @ 80B0DF0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B0E1C + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r1, _080B0E18 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B0E78 + .align 2, 0 +_080B0E18: .4byte gBattleAnimArgs +_080B0E1C: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x64 + ble _080B0E6A + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080B0E6A: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x78 + ble _080B0E78 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B0E78: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B0DF0 + + thumb_func_start sub_80B0E80 +sub_80B0E80: @ 80B0E80 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B0E94 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B0E9C + ldr r4, _080B0E98 @ =gBattleAnimAttacker + b _080B0E9E + .align 2, 0 +_080B0E94: .4byte gBattleAnimArgs +_080B0E98: .4byte gBattleAnimAttacker +_080B0E9C: + ldr r4, _080B0EE4 @ =gBattleAnimTarget +_080B0E9E: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080B0EE8 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x20] + adds r0, r2 + movs r2, 0 + strh r0, [r5, 0x20] + ldrh r0, [r1, 0x4] + ldrh r3, [r5, 0x22] + adds r0, r3 + strh r0, [r5, 0x22] + strh r2, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x32] + strh r2, [r5, 0x34] + ldr r0, _080B0EEC @ =sub_80B0EF0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0EE4: .4byte gBattleAnimTarget +_080B0EE8: .4byte gBattleAnimArgs +_080B0EEC: .4byte sub_80B0EF0 + thumb_func_end sub_80B0E80 + + thumb_func_start sub_80B0EF0 +sub_80B0EF0: @ 80B0EF0 + push {lr} + adds r1, r0, 0 + movs r0, 0x2E + ldrsh r2, [r1, r0] + cmp r2, 0 + beq _080B0F02 + cmp r2, 0x1 + beq _080B0F26 + b _080B0F60 +_080B0F02: + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B0F60 + movs r2, 0x32 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080B0F1E + adds r0, r1, 0 + bl DestroyAnimSprite + b _080B0F60 +_080B0F1E: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _080B0F60 +_080B0F26: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B0F4E + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r0, [r1, 0x34] + adds r0, 0x1 + strh r0, [r1, 0x34] + ands r0, r2 + lsls r0, 16 + cmp r0, 0 + beq _080B0F4A + movs r0, 0x2 + b _080B0F4C +_080B0F4A: + ldr r0, _080B0F64 @ =0x0000fffe +_080B0F4C: + strh r0, [r1, 0x24] +_080B0F4E: + ldrh r0, [r1, 0x32] + subs r0, 0x1 + strh r0, [r1, 0x32] + lsls r0, 16 + cmp r0, 0 + bne _080B0F60 + adds r0, r1, 0 + bl DestroyAnimSprite +_080B0F60: + pop {r0} + bx r0 + .align 2, 0 +_080B0F64: .4byte 0x0000fffe + thumb_func_end sub_80B0EF0 + + thumb_func_start sub_80B0F68 +sub_80B0F68: @ 80B0F68 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080B0F8C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080B0F94 + ldr r4, _080B0F90 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x4] + adds r0, r2 + b _080B0FA6 + .align 2, 0 +_080B0F8C: .4byte gBattleAnimArgs +_080B0F90: .4byte gBattleAnimAttacker +_080B0F94: + ldr r4, _080B0FF0 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 +_080B0FA6: + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x22] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldr r3, _080B0FF4 @ =gBattleAnimArgs + movs r4, 0x2 + ldrsh r0, [r3, r4] + lsls r0, 4 + adds r1, r0 + ldr r4, _080B0FF8 @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080B0FFC @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + movs r1, 0 + movs r0, 0 + strh r0, [r5, 0x2E] + movs r2, 0x2 + ldrsh r0, [r3, r2] + cmp r0, 0x1 + beq _080B1014 + cmp r0, 0x1 + bgt _080B1000 + cmp r0, 0 + beq _080B100A + b _080B103A + .align 2, 0 +_080B0FF0: .4byte gBattleAnimTarget +_080B0FF4: .4byte gBattleAnimArgs +_080B0FF8: .4byte 0x000003ff +_080B0FFC: .4byte 0xfffffc00 +_080B1000: + cmp r0, 0x2 + beq _080B1024 + cmp r0, 0x3 + beq _080B1034 + b _080B103A +_080B100A: + ldr r0, _080B1010 @ =0x0000fffd + b _080B1034 + .align 2, 0 +_080B1010: .4byte 0x0000fffd +_080B1014: + movs r0, 0x3 + strh r0, [r5, 0x3A] + ldr r0, _080B1020 @ =0x0000fffd + strh r0, [r5, 0x3C] + b _080B1042 + .align 2, 0 +_080B1020: .4byte 0x0000fffd +_080B1024: + ldr r0, _080B1030 @ =0x0000fffd + strh r0, [r5, 0x3A] + movs r0, 0x3 + strh r0, [r5, 0x3C] + b _080B1042 + .align 2, 0 +_080B1030: .4byte 0x0000fffd +_080B1034: + strh r0, [r5, 0x3A] + strh r0, [r5, 0x3C] + b _080B1042 +_080B103A: + adds r0, r5, 0 + bl DestroyAnimSprite + b _080B1046 +_080B1042: + ldr r0, _080B104C @ =sub_80B1050 + str r0, [r5, 0x1C] +_080B1046: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B104C: .4byte sub_80B1050 + thumb_func_end sub_80B0F68 + + thumb_func_start sub_80B1050 +sub_80B1050: @ 80B1050 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x3A] + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x3C] + ldrh r2, [r1, 0x22] + adds r0, r2 + strh r0, [r1, 0x22] + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080B1078 + adds r0, r1, 0 + bl DestroyAnimSprite +_080B1078: + pop {r0} + bx r0 + thumb_func_end sub_80B1050 + + thumb_func_start sub_80B107C +sub_80B107C: @ 80B107C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B10C8 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B10D8 + ldr r4, _080B10CC @ =sBattler_AI + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080B10D0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + ldr r0, _080B10D4 @ =gBattleAnimTarget + b _080B10F4 + .align 2, 0 +_080B10C8: .4byte gBattleAnimArgs +_080B10CC: .4byte sBattler_AI +_080B10D0: .4byte gBattleAnimAttacker +_080B10D4: .4byte gBattleAnimTarget +_080B10D8: + ldr r0, _080B1110 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + ldr r0, _080B1114 @ =gBattleAnimAttacker +_080B10F4: + ldrb r0, [r0] + strh r0, [r5, 0x3C] + movs r0, 0 + strh r0, [r5, 0x2E] + movs r0, 0xC + strh r0, [r5, 0x30] + movs r0, 0x8 + strh r0, [r5, 0x32] + ldr r0, _080B1118 @ =sub_80B111C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1110: .4byte gBattleAnimTarget +_080B1114: .4byte gBattleAnimAttacker +_080B1118: .4byte sub_80B111C + thumb_func_end sub_80B107C + + thumb_func_start sub_80B111C +sub_80B111C: @ 80B111C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB4 + bne _080B1178 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080B1180 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B1184 @ =sub_807563C + str r0, [r4, 0x1C] +_080B1178: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1180: .4byte move_anim_8074EE0 +_080B1184: .4byte sub_807563C + thumb_func_end sub_80B111C + + thumb_func_start sub_80B1188 +sub_80B1188: @ 80B1188 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B11D4 @ =gBattleAnimArgs + ldrh r0, [r4] + strh r0, [r5, 0x20] + movs r2, 0x78 + strh r2, [r5, 0x22] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x2E] + adds r0, r5, 0 + adds r0, 0x36 + adds r1, r5, 0 + adds r1, 0x38 + lsls r2, 8 + bl sub_80765C0 + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x3A] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x4 + ldrsh r0, [r4, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080B11D8 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B11DC @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r0, _080B11E0 @ =sub_80B11E4 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B11D4: .4byte gBattleAnimArgs +_080B11D8: .4byte 0x000003ff +_080B11DC: .4byte 0xfffffc00 +_080B11E0: .4byte sub_80B11E4 + thumb_func_end sub_80B1188 + + thumb_func_start sub_80B11E4 +sub_80B11E4: @ 80B11E4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r1, 0x2E + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _080B1236 + movs r2, 0x36 + ldrsh r0, [r7, r2] + movs r2, 0x38 + ldrsh r1, [r7, r2] + bl sub_80765C8 + adds r4, r0, 0 + movs r1, 0x3A + ldrsh r0, [r7, r1] + subs r4, r0 + adds r0, r7, 0 + adds r0, 0x36 + adds r1, r7, 0 + adds r1, 0x38 + adds r2, r4, 0 + bl sub_80765C0 + asrs r4, 8 + strh r4, [r7, 0x22] + lsls r4, 16 + asrs r4, 16 + movs r0, 0x8 + negs r0, r0 + cmp r4, r0 + bge _080B122E + adds r0, r7, 0 + bl DestroyAnimSprite + b _080B128C +_080B122E: + ldrh r0, [r7, 0x2E] + subs r0, 0x1 + strh r0, [r7, 0x2E] + b _080B128C +_080B1236: + ldr r4, _080B1298 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r2, _080B129C @ =gBattleAnimTarget + mov r8, r2 + ldrb r0, [r2] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + subs r4, r6 + strh r4, [r7, 0x2E] + lsrs r0, 24 + subs r0, r5 + strh r0, [r7, 0x30] + ldrh r0, [r7, 0x20] + lsls r0, 4 + strh r0, [r7, 0x32] + ldrh r0, [r7, 0x22] + lsls r0, 4 + strh r0, [r7, 0x34] + ldr r0, _080B12A0 @ =sub_80B12A4 + str r0, [r7, 0x1C] +_080B128C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1298: .4byte gBattleAnimAttacker +_080B129C: .4byte gBattleAnimTarget +_080B12A0: .4byte sub_80B12A4 + thumb_func_end sub_80B11E4 + + thumb_func_start sub_80B12A4 +sub_80B12A4: @ 80B12A4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r2, 0x30] + ldrh r3, [r2, 0x34] + adds r1, r3 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r3, r1, 20 + strh r3, [r2, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080B12DE + adds r1, r3, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080B12DE + cmp r1, 0x78 + ble _080B12E4 +_080B12DE: + adds r0, r2, 0 + bl DestroyAnimSprite +_080B12E4: + pop {r0} + bx r0 + thumb_func_end sub_80B12A4 + + thumb_func_start sub_80B12E8 +sub_80B12E8: @ 80B12E8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B131C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B132C + ldr r4, _080B1320 @ =sBattler_AI + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080B1324 @ =gBattleAnimTarget + ldrb r4, [r0] + ldr r0, _080B1328 @ =gBattleAnimAttacker + b _080B1332 + .align 2, 0 +_080B131C: .4byte gBattleAnimArgs +_080B1320: .4byte sBattler_AI +_080B1324: .4byte gBattleAnimTarget +_080B1328: .4byte gBattleAnimAttacker +_080B132C: + ldr r0, _080B1364 @ =gBattleAnimAttacker + ldrb r4, [r0] + ldr r0, _080B1368 @ =gBattleAnimTarget +_080B1332: + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B136C + ldrb r2, [r5, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x8 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x47 + b _080B1386 + .align 2, 0 +_080B1364: .4byte gBattleAnimAttacker +_080B1368: .4byte gBattleAnimTarget +_080B136C: + adds r0, r4, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B138C + ldrb r2, [r5, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x18 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x57 +_080B1386: + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x3] +_080B138C: + movs r0, 0x10 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + adds r0, r4, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080B13CC @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B13D0 @ =sub_807563C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B13CC: .4byte DestroyAnimSprite +_080B13D0: .4byte sub_807563C + thumb_func_end sub_80B12E8 + + thumb_func_start sub_80B13D4 +sub_80B13D4: @ 80B13D4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080B13EA + adds r0, r4, 0 + bl DestroyAnimSprite +_080B13EA: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B13D4 + + thumb_func_start sub_80B13F8 +sub_80B13F8: @ 80B13F8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080B1474 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080B1478 @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1] + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x34] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x36] + ldr r0, _080B147C @ =gAnimMoveTurn + ldrb r6, [r0] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B1442 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080B1442: + movs r0, 0x1 + ands r6, r0 + cmp r6, 0 + beq _080B1456 + ldrh r0, [r5, 0x32] + negs r0, r0 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] +_080B1456: + ldrh r1, [r5, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x32] + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x34] + strh r0, [r5, 0x26] + ldr r0, _080B1480 @ =sub_80B13D4 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1474: .4byte gBattleAnimTarget +_080B1478: .4byte gBattleAnimArgs +_080B147C: .4byte gAnimMoveTurn +_080B1480: .4byte sub_80B13D4 + thumb_func_end sub_80B13F8 + + thumb_func_start sub_80B1484 +sub_80B1484: @ 80B1484 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B149C @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B14A0 + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 + b _080B14A8 + .align 2, 0 +_080B149C: .4byte gBattleAnimArgs +_080B14A0: + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 +_080B14A8: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B14BC + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + b _080B14D2 +_080B14BC: + ldr r0, _080B14E4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B14D2 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080B14D2: + ldr r0, _080B14E8 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080B14EC @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B14E4: .4byte gBattleAnimAttacker +_080B14E8: .4byte sub_8074F6C +_080B14EC: .4byte DestroyAnimSprite + thumb_func_end sub_80B1484 + + thumb_func_start sub_80B14F0 +sub_80B14F0: @ 80B14F0 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B152A + ldrh r0, [r4, 0x30] + adds r0, 0x28 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x2 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080B152A + adds r0, r4, 0 + bl DestroyAnimSprite +_080B152A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B14F0 + + thumb_func_start sub_80B1530 +sub_80B1530: @ 80B1530 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080B1560 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B1568 + cmp r0, 0x1 + bgt _080B1582 + cmp r0, 0 + bne _080B1582 + movs r0, 0 + bl sub_8075458 + ldr r0, _080B1564 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x18] + b _080B157A + .align 2, 0 +_080B1560: .4byte gTasks +_080B1564: .4byte gBattleAnimArgs +_080B1568: + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B158E +_080B157A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B158E +_080B1582: + movs r2, 0xA0 + lsls r2, 3 + adds r0, r2, 0 + ldrh r1, [r4, 0x1A] + adds r0, r1 + strh r0, [r4, 0x1A] +_080B158E: + movs r2, 0xB0 + lsls r2, 4 + adds r0, r2, 0 + ldrh r1, [r4, 0x1C] + adds r0, r1 + strh r0, [r4, 0x1C] + ldr r0, _080B15BC @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B15C4 + ldr r1, _080B15C0 @ =gBattle_BG3_X + ldrh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 24 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + adds r7, r1, 0 + b _080B15D4 + .align 2, 0 +_080B15BC: .4byte gBattleAnimTarget +_080B15C0: .4byte gBattle_BG3_X +_080B15C4: + ldr r2, _080B1614 @ =gBattle_BG3_X + ldrh r1, [r4, 0x1A] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + adds r7, r2, 0 +_080B15D4: + ldr r3, _080B1618 @ =gBattle_BG3_Y + ldrh r2, [r4, 0x1C] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r3] + adds r0, r1 + strh r0, [r3] + movs r0, 0xFF + ldrb r1, [r4, 0x1A] + movs r5, 0 + strh r1, [r4, 0x1A] + ands r0, r2 + strh r0, [r4, 0x1C] + ldr r0, _080B161C @ =gBattleAnimArgs + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080B160C + strh r5, [r7] + strh r5, [r3] + movs r0, 0x1 + bl sub_8075458 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080B160C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1614: .4byte gBattle_BG3_X +_080B1618: .4byte gBattle_BG3_Y +_080B161C: .4byte gBattleAnimArgs + thumb_func_end sub_80B1530 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fire.s b/asm/fire.s new file mode 100644 index 000000000..f4b89300a --- /dev/null +++ b/asm/fire.s @@ -0,0 +1,2500 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80AC90C +sub_80AC90C: @ 80AC90C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AC940 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x2E] + movs r0, 0x3C + strh r0, [r4, 0x30] + movs r0, 0x9 + strh r0, [r4, 0x32] + movs r0, 0x1E + strh r0, [r4, 0x34] + movs r0, 0xFE + lsls r0, 8 + strh r0, [r4, 0x36] + ldr r1, _080AC944 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080AC948 @ =sub_8074AE0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC940: .4byte gBattleAnimArgs +_080AC944: .4byte DestroyAnimSprite +_080AC948: .4byte sub_8074AE0 + thumb_func_end sub_80AC90C + + thumb_func_start sub_80AC94C +sub_80AC94C: @ 80AC94C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080AC984 @ =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_8074FF8 + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x32] + ldr r0, _080AC988 @ =sub_8074D00 + str r0, [r4, 0x1C] + ldr r1, _080AC98C @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC984: .4byte gBattleAnimArgs +_080AC988: .4byte sub_8074D00 +_080AC98C: .4byte DestroyAnimSprite + thumb_func_end sub_80AC94C + + thumb_func_start sub_80AC990 +sub_80AC990: @ 80AC990 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080AC9C4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AC9CC + ldr r2, _080AC9C8 @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x8] + negs r0, r0 + strh r0, [r4, 0x32] + adds r1, r2, 0 + b _080AC9E2 + .align 2, 0 +_080AC9C4: .4byte gBattleAnimAttacker +_080AC9C8: .4byte gBattleAnimArgs +_080AC9CC: + ldr r1, _080AC9F8 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] +_080AC9E2: + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080AC9FC @ =sub_80ACA6C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC9F8: .4byte gBattleAnimArgs +_080AC9FC: .4byte sub_80ACA6C + thumb_func_end sub_80AC990 + + thumb_func_start sub_80ACA00 +sub_80ACA00: @ 80ACA00 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080ACA2C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ACA34 + ldr r2, _080ACA30 @ =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x8] + strh r0, [r4, 0x32] + adds r1, r2, 0 + b _080ACA4C + .align 2, 0 +_080ACA2C: .4byte gBattleAnimAttacker +_080ACA30: .4byte gBattleAnimArgs +_080ACA34: + ldr r1, _080ACA64 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x8] + negs r0, r0 + strh r0, [r4, 0x32] +_080ACA4C: + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080ACA68 @ =sub_80ACA6C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACA64: .4byte gBattleAnimArgs +_080ACA68: .4byte sub_80ACA6C + thumb_func_end sub_80ACA00 + + thumb_func_start sub_80ACA6C +sub_80ACA6C: @ 80ACA6C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x36 + ldrsh r1, [r2, r3] + cmp r0, r1 + bge _080ACA92 + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x34] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] +_080ACA92: + movs r0, 0x2E + ldrsh r1, [r2, r0] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r1, r0 + bne _080ACAA4 + adds r0, r2, 0 + bl move_anim_8074EE0 +_080ACAA4: + pop {r0} + bx r0 + thumb_func_end sub_80ACA6C + + thumb_func_start sub_80ACAA8 +sub_80ACAA8: @ 80ACAA8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074FCC + ldr r0, _080ACACC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080ACAD4 + ldr r0, _080ACAD0 @ =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080ACAE6 + .align 2, 0 +_080ACACC: .4byte gBattleAnimAttacker +_080ACAD0: .4byte gBattleAnimArgs +_080ACAD4: + ldr r0, _080ACB14 @ =gBattleAnimArgs + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + adds r2, r4, 0 + adds r2, 0x43 + movs r1, 0x8 + strb r1, [r2] +_080ACAE6: + adds r2, r0, 0 + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r2, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r2, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r2, 0xA] + strh r0, [r4, 0x34] + ldrh r0, [r2, 0xC] + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + ldr r0, _080ACB18 @ =sub_80ACB1C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACB14: .4byte gBattleAnimArgs +_080ACB18: .4byte sub_80ACB1C + thumb_func_end sub_80ACAA8 + + thumb_func_start sub_80ACB1C +sub_80ACB1C: @ 80ACB1C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080ACBA4 + movs r2, 0x38 + ldrsh r1, [r4, r2] + ldr r0, _080ACB88 @ =0x00002710 + cmp r1, r0 + ble _080ACB3A + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1 + strb r0, [r1] +_080ACB3A: + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080ACB90 + ldr r2, _080ACB8C @ =0xffffff00 + b _080ACB98 + .align 2, 0 +_080ACB88: .4byte 0x00002710 +_080ACB8C: .4byte 0xffffff00 +_080ACB90: + cmp r0, 0 + bge _080ACB9C + movs r2, 0x80 + lsls r2, 1 +_080ACB98: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080ACB9C: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080ACBAA +_080ACBA4: + adds r0, r4, 0 + bl move_anim_8074EE0 +_080ACBAA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ACB1C + + thumb_func_start sub_80ACBB0 +sub_80ACBB0: @ 80ACBB0 + push {lr} + movs r1, 0 + strh r1, [r0, 0x20] + strh r1, [r0, 0x22] + movs r1, 0x3C + strh r1, [r0, 0x2E] + movs r1, 0x8C + strh r1, [r0, 0x32] + movs r1, 0x50 + strh r1, [r0, 0x36] + ldr r1, _080ACBD4 @ =sub_8075590 + str r1, [r0, 0x1C] + ldr r1, _080ACBD8 @ =DestroyAnimSprite + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080ACBD4: .4byte sub_8075590 +_080ACBD8: .4byte DestroyAnimSprite + thumb_func_end sub_80ACBB0 + + thumb_func_start sub_80ACBDC +sub_80ACBDC: @ 80ACBDC + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, _080ACC34 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + adds r4, r0, 0 + ldr r0, _080ACC38 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080ACC22 + movs r0, 0x2 + bl GetBattlerAtPosition + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + beq _080ACC1A + movs r0, 0x3 + bl GetBattlerAtPosition + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _080ACC22 +_080ACC1A: + ldr r1, _080ACC3C @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080ACC22: + ldr r1, _080ACC40 @ =sub_8075F0C + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ACC34: .4byte gBattleAnimAttacker +_080ACC38: .4byte gBattleAnimTarget +_080ACC3C: .4byte gBattleAnimArgs +_080ACC40: .4byte sub_8075F0C + thumb_func_end sub_80ACBDC + + thumb_func_start sub_80ACC44 +sub_80ACC44: @ 80ACC44 + ldr r2, _080ACC58 @ =gBattleAnimArgs + ldrh r1, [r2] + negs r1, r1 + strh r1, [r2] + ldrh r1, [r2, 0x4] + negs r1, r1 + strh r1, [r2, 0x4] + ldr r1, _080ACC5C @ =sub_8075F0C + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080ACC58: .4byte gBattleAnimArgs +_080ACC5C: .4byte sub_8075F0C + thumb_func_end sub_80ACC44 + + thumb_func_start sub_80ACC60 +sub_80ACC60: @ 80ACC60 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080ACC80 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + movs r1, 0 + strh r0, [r4, 0x3C] + strh r1, [r4, 0x2E] + ldr r0, _080ACC84 @ =sub_80ACC88 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACC80: .4byte gBattleAnimArgs +_080ACC84: .4byte sub_80ACC88 + thumb_func_end sub_80ACC60 + + thumb_func_start sub_80ACC88 +sub_80ACC88: @ 80ACC88 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_80ACD7C + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x12 + bne _080ACCD2 + movs r0, 0x19 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080ACCD8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080ACCDC @ =sub_80ACCE0 + str r0, [r5, 0x1C] +_080ACCD2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ACCD8: .4byte gBattleAnimTarget +_080ACCDC: .4byte sub_80ACCE0 + thumb_func_end sub_80ACC88 + + thumb_func_start sub_80ACCE0 +sub_80ACCE0: @ 80ACCE0 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080ACD28 + movs r4, 0 + strh r4, [r6, 0x2E] + ldr r5, _080ACD20 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x22] + strh r4, [r6, 0x26] + strh r4, [r6, 0x24] + ldr r1, _080ACD24 @ =sub_80ACD58 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + b _080ACD52 + .align 2, 0 +_080ACD20: .4byte gBattleAnimTarget +_080ACD24: .4byte sub_80ACD58 +_080ACD28: + movs r1, 0x3C + ldrsh r0, [r6, r1] + movs r1, 0x1C + bl Sin + ldrh r1, [r6, 0x24] + adds r0, r1 + strh r0, [r6, 0x24] + movs r1, 0x3C + ldrsh r0, [r6, r1] + movs r1, 0x1C + bl Cos + ldrh r1, [r6, 0x26] + adds r0, r1 + strh r0, [r6, 0x26] + ldrh r0, [r6, 0x3C] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r6, 0x3C] +_080ACD52: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80ACCE0 + + thumb_func_start sub_80ACD58 +sub_80ACD58: @ 80ACD58 + push {r4,lr} + adds r4, r0, 0 + bl sub_80ACD7C + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080ACD74 + adds r0, r4, 0 + bl DestroyAnimSprite +_080ACD74: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ACD58 + + thumb_func_start sub_80ACD7C +sub_80ACD7C: @ 80ACD7C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x1C + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x1C + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ACD7C + + thumb_func_start sub_80ACDA8 +sub_80ACDA8: @ 80ACDA8 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080ACDDC @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] + ldr r1, _080ACDE0 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080ACDE4 @ =sub_8074CD0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACDDC: .4byte gBattleAnimArgs +_080ACDE0: .4byte DestroyAnimSprite +_080ACDE4: .4byte sub_8074CD0 + thumb_func_end sub_80ACDA8 + + thumb_func_start sub_80ACDE8 +sub_80ACDE8: @ 80ACDE8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080ACE1C @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x2E] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080ACE20 @ =sub_8074C44 + str r0, [r4, 0x1C] + ldr r1, _080ACE24 @ =sub_80ACE28 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ACE1C: .4byte gBattleAnimArgs +_080ACE20: .4byte sub_8074C44 +_080ACE24: .4byte sub_80ACE28 + thumb_func_end sub_80ACDE8 + + thumb_func_start sub_80ACE28 +sub_80ACE28: @ 80ACE28 + push {lr} + adds r3, r0, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r3] + ldrh r1, [r0, 0x30] + movs r2, 0 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + ldr r1, _080ACE4C @ =sub_80ACE50 + str r1, [r0, 0x1C] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080ACE4C: .4byte sub_80ACE50 + thumb_func_end sub_80ACE28 + + thumb_func_start sub_80ACE50 +sub_80ACE50: @ 80ACE50 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + adds r0, 0xD0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080ACE9C + adds r0, r4, 0 + bl DestroyAnimSprite +_080ACE9C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ACE50 + + thumb_func_start sub_80ACEA4 +sub_80ACEA4: @ 80ACEA4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080ACF04 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x26] + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + ldr r2, _080ACF08 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x10] + ldr r0, _080ACF0C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + strh r5, [r4, 0x14] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80758E0 + ldr r0, _080ACF10 @ =sub_80ACF14 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ACF04: .4byte gTasks +_080ACF08: .4byte gSprites +_080ACF0C: .4byte gBattleAnimAttacker +_080ACF10: .4byte sub_80ACF14 + thumb_func_end sub_80ACEA4 + + thumb_func_start sub_80ACF14 +sub_80ACF14: @ 80ACF14 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080ACF3C @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bls _080ACF30 + b _080AD1EE +_080ACF30: + lsls r0, 2 + ldr r1, _080ACF40 @ =_080ACF44 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ACF3C: .4byte gTasks +_080ACF40: .4byte _080ACF44 + .align 2, 0 +_080ACF44: + .4byte _080ACF60 + .4byte _080ACF86 + .4byte _080AD038 + .4byte _080AD098 + .4byte _080AD0B6 + .4byte _080AD18C + .4byte _080AD1E0 +_080ACF60: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0xE0 + str r0, [sp] + movs r0, 0x80 + lsls r0, 2 + str r0, [sp, 0x4] + movs r0, 0x20 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r2, r3, 0 + bl sub_80765D4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080ACF86: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080ACFCE + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ACFBC + ldr r2, _080ACFB8 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + b _080ACFCC + .align 2, 0 +_080ACFB8: .4byte gSprites +_080ACFBC: + ldr r2, _080AD030 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080AD034 @ =0x0000fffd +_080ACFCC: + strh r1, [r0, 0x24] +_080ACFCE: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080ACFFC + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080ACFFC + movs r0, 0 + strh r0, [r4, 0xE] + ldr r2, _080AD030 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x1 + strh r1, [r0, 0x22] +_080ACFFC: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080AD00C + b _080AD1EE +_080AD00C: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8076440 + ldr r2, _080AD030 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x24] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + b _080AD1D4 + .align 2, 0 +_080AD030: .4byte gSprites +_080AD034: .4byte 0x0000fffd +_080AD038: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080AD048 + b _080AD1EE +_080AD048: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AD072 + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xF0 + str r0, [sp, 0x4] + movs r0, 0x6 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_80765D4 + b _080AD092 +_080AD072: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xC0 + str r0, [sp, 0x4] + movs r0, 0x6 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_80765D4 +_080AD092: + movs r0, 0 + strh r0, [r4, 0xA] + b _080AD1D4 +_080AD098: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + cmp r0, 0 + beq _080AD0A6 + b _080AD1EE +_080AD0A6: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + movs r2, 0x6 + bl sub_80AD1F8 + b _080AD1D4 +_080AD0B6: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AD104 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD0F0 + ldr r2, _080AD0EC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + b _080AD102 + .align 2, 0 +_080AD0EC: .4byte gSprites +_080AD0F0: + ldr r2, _080AD13C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x3 +_080AD102: + strh r1, [r0, 0x26] +_080AD104: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + ble _080AD1EE + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AD140 + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xF0 + bl sub_80765D4 + b _080AD15E + .align 2, 0 +_080AD13C: .4byte gSprites +_080AD140: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xC0 + bl sub_80765D4 +_080AD15E: + ldrh r1, [r4, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD17C + ldr r2, _080AD188 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x3 + strh r1, [r0, 0x26] +_080AD17C: + movs r0, 0 + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + b _080AD1D4 + .align 2, 0 +_080AD188: .4byte gSprites +_080AD18C: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AD1A8 + ldr r2, _080AD1DC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] +_080AD1A8: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080AD1EE + ldr r2, _080AD1DC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + strh r1, [r0, 0x22] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8075980 + strh r5, [r4, 0xC] +_080AD1D4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AD1EE + .align 2, 0 +_080AD1DC: .4byte gSprites +_080AD1E0: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AD1EE + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080AD1EE: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80ACF14 + + thumb_func_start sub_80AD1F8 +sub_80AD1F8: @ 80AD1F8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + adds r0, r4, 0 + bl sub_80AD374 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r1, _080AD248 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r4, [r0, 0x20] + ldr r0, _080AD24C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AD250 + adds r0, r4, 0 + subs r0, 0xC + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x1 + b _080AD25A + .align 2, 0 +_080AD248: .4byte gSprites +_080AD24C: .4byte gBattleAnimAttacker +_080AD250: + adds r0, r4, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0xFF +_080AD25A: + movs r6, 0 + movs r5, 0 + lsls r4, 16 + str r4, [sp, 0x8] + mov r1, r9 + lsls r1, 16 + str r1, [sp, 0x4] + ldr r2, _080AD314 @ =gUnknown_83E5E44 + mov r9, r2 + lsls r0, 24 + asrs r0, 24 + str r0, [sp] + mov r3, r8 + lsls r3, 1 + mov r10, r3 +_080AD278: + ldr r0, _080AD318 @ =gUnknown_83E5E2C + ldr r2, [sp, 0x8] + asrs r1, r2, 16 + ldr r3, [sp, 0x4] + asrs r2, r3, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080AD2FA + ldr r1, _080AD31C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + lsls r0, r5, 2 + adds r0, 0x40 + adds r1, r0 + ldr r3, _080AD320 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r3, _080AD324 @ =0xfffffc00 + adds r0, r3, 0 + ands r2, r0 + orrs r2, r1 + strh r2, [r4, 0x4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _080AD2C2 + movs r5, 0 +_080AD2C2: + lsls r2, r6, 2 + mov r1, r9 + adds r0, r2, r1 + ldrh r0, [r0] + ldr r3, [sp] + adds r1, r0, 0 + muls r1, r3 + lsls r1, 16 + asrs r1, 16 + ldr r0, _080AD328 @ =gUnknown_83E5E46 + adds r2, r0 + movs r3, 0 + ldrsh r2, [r2, r3] + adds r0, r4, 0 + bl sub_80AD3C8 + strh r7, [r4, 0x3A] + mov r0, r8 + strh r0, [r4, 0x3C] + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + add r0, r10 + ldr r1, _080AD32C @ =gTasks+0x8 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] +_080AD2FA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x6 + bls _080AD278 + 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 +_080AD314: .4byte gUnknown_83E5E44 +_080AD318: .4byte gUnknown_83E5E2C +_080AD31C: .4byte gSprites +_080AD320: .4byte 0x000003ff +_080AD324: .4byte 0xfffffc00 +_080AD328: .4byte gUnknown_83E5E46 +_080AD32C: .4byte gTasks+0x8 + thumb_func_end sub_80AD1F8 + + thumb_func_start sub_80AD330 +sub_80AD330: @ 80AD330 + push {r4,lr} + adds r4, r0, 0 + bl sub_80AD3E4 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AD36A + ldr r3, _080AD370 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080AD36A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AD370: .4byte gTasks + thumb_func_end sub_80AD330 + + thumb_func_start sub_80AD374 +sub_80AD374: @ 80AD374 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AD3AC @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x26] + ldrh r0, [r1, 0x22] + adds r2, r0 + adds r1, 0x29 + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080AD3B0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AD3B4 + lsls r0, r4, 16 + movs r1, 0x94 + lsls r1, 15 + b _080AD3BA + .align 2, 0 +_080AD3AC: .4byte gSprites +_080AD3B0: .4byte gBattleAnimAttacker +_080AD3B4: + lsls r0, r4, 16 + movs r1, 0xB0 + lsls r1, 14 +_080AD3BA: + adds r0, r1 + lsrs r4, r0, 16 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AD374 + + thumb_func_start sub_80AD3C8 +sub_80AD3C8: @ 80AD3C8 + movs r3, 0 + strh r3, [r0, 0x2E] + strh r3, [r0, 0x30] + ldrh r3, [r0, 0x20] + lsls r3, 3 + strh r3, [r0, 0x32] + ldrh r3, [r0, 0x22] + lsls r3, 3 + strh r3, [r0, 0x34] + lsls r1, 3 + strh r1, [r0, 0x36] + lsls r2, 3 + strh r2, [r0, 0x38] + bx lr + thumb_func_end sub_80AD3C8 + + thumb_func_start sub_80AD3E4 +sub_80AD3E4: @ 80AD3E4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080AD40E + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x30] + adds r1, r0, 0 + muls r1, r0 + adds r0, r1, 0 + ldrh r3, [r2, 0x34] + adds r0, r3 + strh r0, [r2, 0x34] +_080AD40E: + ldrh r0, [r2, 0x36] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 19 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x34] + adds r1, r3 + strh r1, [r2, 0x34] + lsls r1, 16 + asrs r3, r1, 19 + strh r3, [r2, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080AD444 + adds r1, r3, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080AD444 + cmp r1, 0x78 + ble _080AD450 +_080AD444: + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080AD450: + pop {r0} + bx r0 + thumb_func_end sub_80AD3E4 + + thumb_func_start sub_80AD454 +sub_80AD454: @ 80AD454 + push {r4,r5,lr} + ldr r3, _080AD498 @ =gBattleAnimArgs + ldrh r1, [r3] + movs r2, 0 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x2] + strh r1, [r0, 0x22] + strh r2, [r0, 0x2E] + strh r2, [r0, 0x30] + strh r2, [r0, 0x32] + ldrh r1, [r3, 0x4] + strh r1, [r0, 0x3A] + ldrh r1, [r3, 0x6] + strh r1, [r0, 0x3C] + ldrh r4, [r0, 0x4] + lsls r2, r4, 22 + lsrs r2, 22 + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r1, 4 + adds r2, r1 + ldr r3, _080AD49C @ =0x000003ff + adds r1, r3, 0 + ands r2, r1 + ldr r1, _080AD4A0 @ =0xfffffc00 + ands r1, r4 + orrs r1, r2 + strh r1, [r0, 0x4] + ldr r1, _080AD4A4 @ =sub_80AD4A8 + str r1, [r0, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AD498: .4byte gBattleAnimArgs +_080AD49C: .4byte 0x000003ff +_080AD4A0: .4byte 0xfffffc00 +_080AD4A4: .4byte sub_80AD4A8 + thumb_func_end sub_80AD454 + + thumb_func_start sub_80AD4A8 +sub_80AD4A8: @ 80AD4A8 + push {r4,lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _080AD4DA + cmp r0, 0x1 + bgt _080AD4BE + cmp r0, 0 + beq _080AD4C4 + b _080AD538 +_080AD4BE: + cmp r0, 0x2 + beq _080AD4F8 + b _080AD538 +_080AD4C4: + ldrh r1, [r2, 0x3A] + movs r3, 0x3A + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080AD4D4 + subs r0, r1, 0x1 + strh r0, [r2, 0x3A] + b _080AD538 +_080AD4D4: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] +_080AD4DA: + ldrh r0, [r2, 0x22] + adds r0, 0x8 + strh r0, [r2, 0x22] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r2, 0x3C] + movs r4, 0x3C + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080AD538 + strh r3, [r2, 0x22] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + b _080AD538 +_080AD4F8: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AD524 + movs r0, 0 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x32] + adds r0, 0x1 + strh r0, [r2, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD520 + ldr r0, _080AD51C @ =0x0000fffd + b _080AD522 + .align 2, 0 +_080AD51C: .4byte 0x0000fffd +_080AD520: + movs r0, 0x3 +_080AD522: + strh r0, [r2, 0x26] +_080AD524: + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080AD538 + adds r0, r2, 0 + bl DestroyAnimSprite +_080AD538: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AD4A8 + + thumb_func_start sub_80AD540 +sub_80AD540: @ 80AD540 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080AD5B4 + cmp r0, 0x1 + bgt _080AD556 + cmp r0, 0 + beq _080AD55C + b _080AD682 +_080AD556: + cmp r0, 0x2 + beq _080AD612 + b _080AD682 +_080AD55C: + adds r0, r5, 0 + movs r1, 0 + bl sub_8075160 + ldr r4, _080AD584 @ =gBattleAnimArgs + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x3C] + ldr r0, _080AD588 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AD58C + movs r0, 0x4 + b _080AD58E + .align 2, 0 +_080AD584: .4byte gBattleAnimArgs +_080AD588: .4byte gBattleAnimAttacker +_080AD58C: + ldr r0, _080AD5AC @ =0x0000fffc +_080AD58E: + strh r0, [r5, 0x36] + ldr r0, _080AD5B0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080AD60A + .align 2, 0 +_080AD5AC: .4byte 0x0000fffc +_080AD5B0: .4byte gBattleAnimTarget +_080AD5B4: + ldrh r0, [r5, 0x30] + adds r0, 0xC0 + strh r0, [r5, 0x30] + ldr r0, _080AD5D4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AD5D8 + ldrh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + b _080AD5DE + .align 2, 0 +_080AD5D4: .4byte gBattleAnimAttacker +_080AD5D8: + ldrh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 +_080AD5DE: + strh r0, [r5, 0x26] + movs r2, 0x32 + ldrsh r0, [r5, r2] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080AD682 + movs r0, 0 + strh r0, [r5, 0x34] +_080AD60A: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080AD682 +_080AD612: + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + adds r2, r0, 0 + movs r3, 0 + strh r2, [r5, 0x24] + ldrh r0, [r5, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080AD682 + ldrh r0, [r5, 0x20] + adds r1, r2, r0 + strh r1, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r3, [r5, 0x26] + strh r3, [r5, 0x24] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + ldr r4, _080AD688 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8075678 + ldr r0, _080AD68C @ =sub_80AD690 + str r0, [r5, 0x1C] +_080AD682: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AD688: .4byte gBattleAnimTarget +_080AD68C: .4byte sub_80AD690 + thumb_func_end sub_80AD540 + + thumb_func_start sub_80AD690 +sub_80AD690: @ 80AD690 + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080AD6E8 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080AD6C6 + cmp r2, 0xC4 + ble _080AD6EE +_080AD6C6: + lsls r0, 16 + cmp r0, 0 + ble _080AD6EE + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AD6EE + ldr r0, _080AD6E4 @ =gUnknown_2037F24 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x89 + bl PlaySE12WithPanning + b _080AD6EE + .align 2, 0 +_080AD6E4: .4byte gUnknown_2037F24 +_080AD6E8: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AD6EE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AD690 + + thumb_func_start sub_80AD6F4 +sub_80AD6F4: @ 80AD6F4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080AD70C + ldr r0, _080AD778 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x30] + adds r0, r1, 0x1 + strh r0, [r4, 0x2E] +_080AD70C: + movs r0, 0xC0 + lsls r0, 1 + adds r1, r0, 0 + ldrh r2, [r4, 0x34] + adds r1, r2 + strh r1, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0xA0 + strh r0, [r4, 0x36] + movs r2, 0x30 + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x36] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x7 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AD7A8 + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x83 + bls _080AD780 + ldr r0, _080AD77C @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080AD7C4 + .align 2, 0 +_080AD778: .4byte gBattleAnimArgs +_080AD77C: .4byte gBattleAnimTarget +_080AD780: + ldr r0, _080AD7A4 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080AD7C4 + .align 2, 0 +_080AD7A4: .4byte gBattleAnimTarget +_080AD7A8: + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x83 + bls _080AD7BC + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D + b _080AD7C2 +_080AD7BC: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F +_080AD7C2: + strb r0, [r1] +_080AD7C4: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080AD7EC + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080AD7EC: + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x1E + bne _080AD7FA + adds r0, r4, 0 + bl DestroyAnimSprite +_080AD7FA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AD6F4 + + thumb_func_start sub_80AD800 +sub_80AD800: @ 80AD800 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080AD860 @ =gTasks + adds r4, r1, r0 + ldr r0, _080AD864 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080AD826 + movs r1, 0x1 +_080AD826: + strh r1, [r4, 0x20] + ldr r0, _080AD868 @ =gBattleAnimTarget + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + bl sub_8072DF0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + movs r0, 0x3 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080AD86C @ =sub_80AD870 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AD860: .4byte gTasks +_080AD864: .4byte gBattleAnimAttacker +_080AD868: .4byte gBattleAnimTarget +_080AD86C: .4byte sub_80AD870 + thumb_func_end sub_80AD800 + + thumb_func_start sub_80AD870 +sub_80AD870: @ 80AD870 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080AD894 @ =gTasks + adds r2, r0, r1 + movs r0, 0x8 + ldrsh r3, [r2, r0] + cmp r3, 0x1 + beq _080AD938 + cmp r3, 0x1 + bgt _080AD898 + cmp r3, 0 + beq _080AD8A6 + b _080ADA98 + .align 2, 0 +_080AD894: .4byte gTasks +_080AD898: + cmp r3, 0x2 + bne _080AD89E + b _080AD9C0 +_080AD89E: + cmp r3, 0x3 + bne _080AD8A4 + b _080ADA54 +_080AD8A4: + b _080ADA98 +_080AD8A6: + movs r1, 0x20 + ldrsh r0, [r2, r1] + lsls r0, 1 + ldrh r5, [r2, 0x1C] + adds r0, r5 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AD8D8 + strh r3, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD8D4 + movs r0, 0x2 + b _080AD8D6 +_080AD8D4: + ldr r0, _080AD930 @ =0x0000fffe +_080AD8D6: + strh r0, [r2, 0x1E] +_080AD8D8: + movs r1, 0 + strh r1, [r2, 0xE] + movs r7, 0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080AD91A + ldr r4, _080AD934 @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 +_080AD8EA: + movs r1, 0xE + ldrsh r0, [r2, r1] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r7, [r2, 0x1C] + adds r0, r7 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r5, 0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _080AD8EA +_080AD91A: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + beq _080AD92A + b _080ADA98 +_080AD92A: + movs r0, 0 + strh r0, [r2, 0x1A] + b _080ADA44 + .align 2, 0 +_080AD930: .4byte 0x0000fffe +_080AD934: .4byte gSprites +_080AD938: + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080AD960 + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + ands r0, r3 + lsls r0, 16 + cmp r0, 0 + beq _080AD95C + movs r0, 0x2 + b _080AD95E +_080AD95C: + ldr r0, _080AD9B8 @ =0x0000fffe +_080AD95E: + strh r0, [r2, 0x1E] +_080AD960: + movs r1, 0 + strh r1, [r2, 0xE] + movs r7, 0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080AD9A2 + ldr r4, _080AD9BC @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 +_080AD972: + movs r1, 0xE + ldrsh r0, [r2, r1] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r7, [r2, 0x1C] + adds r0, r7 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r5, 0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _080AD972 +_080AD9A2: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x60 + bne _080ADA98 + movs r0, 0 + strh r0, [r2, 0x1A] + b _080ADA44 + .align 2, 0 +_080AD9B8: .4byte 0x0000fffe +_080AD9BC: .4byte gSprites +_080AD9C0: + movs r7, 0x20 + ldrsh r1, [r2, r7] + lsls r1, 1 + ldrh r0, [r2, 0x1C] + subs r0, r1 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AD9F4 + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD9F0 + strh r3, [r2, 0x1E] + b _080AD9F4 +_080AD9F0: + ldr r0, _080ADA4C @ =0x0000fffe + strh r0, [r2, 0x1E] +_080AD9F4: + movs r1, 0 + strh r1, [r2, 0xE] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080ADA36 + ldr r4, _080ADA50 @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 +_080ADA06: + movs r5, 0xE + ldrsh r0, [r2, r5] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r7, 0 + ldrsh r0, [r0, r7] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r5, [r2, 0x1C] + adds r0, r5 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r7, 0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _080ADA06 +_080ADA36: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080ADA98 +_080ADA44: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080ADA98 + .align 2, 0 +_080ADA4C: .4byte 0x0000fffe +_080ADA50: .4byte gSprites +_080ADA54: + movs r1, 0 + strh r1, [r2, 0xE] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080ADA92 + ldr r6, _080ADAA0 @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 + movs r5, 0 +_080ADA68: + movs r7, 0xE + ldrsh r0, [r2, r7] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r5, [r0, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r7, 0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _080ADA68 +_080ADA92: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080ADA98: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ADAA0: .4byte gSprites + thumb_func_end sub_80AD870 + + thumb_func_start sub_80ADAA4 +sub_80ADAA4: @ 80ADAA4 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 4 + ldr r1, _080ADAD4 @ =gBattleAnimArgs + ldrb r2, [r1] + ldrh r3, [r1, 0x2] + movs r1, 0x10 + bl BlendPalette + adds r0, r4, 0 + bl DestroyAnimVisualTask + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADAD4: .4byte gBattleAnimArgs + thumb_func_end sub_80ADAA4 + + thumb_func_start sub_80ADAD8 +sub_80ADAD8: @ 80ADAD8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080ADB30 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + mov r9, r1 + ldr r4, _080ADB34 @ =gBattleAnimArgs + mov r8, r4 + cmp r0, 0 + bne _080ADB0E + ldrh r0, [r4] + strh r0, [r2, 0xA] + ldrh r0, [r4, 0x2] + strh r0, [r2, 0xC] + ldrh r0, [r4, 0x4] + strh r0, [r2, 0xE] + ldrh r0, [r4, 0x6] + strh r0, [r2, 0x10] +_080ADB0E: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + ldr r1, _080ADB38 @ =gBattlerSpriteIds + ldr r0, _080ADB3C @ =gBattleAnimTarget + ldrb r0, [r0] + adds r0, r1 + ldrb r6, [r0] + movs r5, 0x10 + ldrsh r0, [r2, r5] + cmp r0, 0 + bne _080ADB44 + ldr r4, _080ADB40 @ =gUnknown_83E5EFC + movs r1, 0x8 + ldrsh r0, [r2, r1] + b _080ADB4A + .align 2, 0 +_080ADB30: .4byte gTasks +_080ADB34: .4byte gBattleAnimArgs +_080ADB38: .4byte gBattlerSpriteIds +_080ADB3C: .4byte gBattleAnimTarget +_080ADB40: .4byte gUnknown_83E5EFC +_080ADB44: + ldr r4, _080ADB90 @ =gUnknown_83E5F0C + movs r3, 0x8 + ldrsh r0, [r2, r3] +_080ADB4A: + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + adds r0, r4 + ldrb r5, [r0] + lsls r0, r7, 2 + adds r1, r0, r7 + lsls r1, 3 + add r1, r9 + movs r4, 0xE + ldrsh r1, [r1, r4] + mov r12, r0 + cmp r1, 0x1 + bne _080ADB98 + ldr r2, _080ADB94 @ =gSprites + lsls r3, r6, 4 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + mov r10, r0 + mov r0, r8 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r5, 24 + asrs r0, 24 + muls r0, r1 + cmp r0, 0 + bge _080ADB88 + negs r0, r0 +_080ADB88: + mov r5, r10 + strh r0, [r5, 0x26] + b _080ADBB2 + .align 2, 0 +_080ADB90: .4byte gUnknown_83E5F0C +_080ADB94: .4byte gSprites +_080ADB98: + ldr r3, _080ADBE8 @ =gSprites + lsls r4, r6, 4 + adds r2, r4, r6 + lsls r2, 2 + adds r2, r3 + lsls r0, r5, 24 + asrs r0, 24 + mov r5, r8 + ldrh r1, [r5, 0x2] + muls r0, r1 + strh r0, [r2, 0x24] + adds r2, r3, 0 + adds r3, r4, 0 +_080ADBB2: + mov r1, r12 + adds r0, r1, r7 + lsls r0, 3 + add r0, r9 + movs r4, 0x8 + ldrsh r1, [r0, r4] + movs r5, 0xA + ldrsh r0, [r0, r5] + cmp r1, r0 + bne _080ADBD8 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x24] + strh r1, [r0, 0x26] + adds r0, r7, 0 + bl DestroyAnimVisualTask +_080ADBD8: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ADBE8: .4byte gSprites + thumb_func_end sub_80ADAD8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_berrytree.s b/asm/fldeff_berrytree.s deleted file mode 100644 index 83c9c8be8..000000000 --- a/asm/fldeff_berrytree.s +++ /dev/null @@ -1,13 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_56 -nullsub_56: @ 80A0E74 - bx lr - thumb_func_end nullsub_56 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s index 2497c695d..c98cda3b7 100644 --- a/asm/fldeff_cut.s +++ b/asm/fldeff_cut.s @@ -44,34 +44,34 @@ sub_8097898: @ 8097898 lsrs r0, 24 cmp r0, 0x1 bne _08097904 - ldr r1, _080978D0 @ =gUnknown_3005024 - ldr r0, _080978D4 @ =hm_add_c3_launch_phase_2 + ldr r1, _080978D0 @ =gFieldCallback2 + ldr r0, _080978D4 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080978D8 @ =gUnknown_203B0C4 + ldr r1, _080978D8 @ =gPostMenuFieldCallback ldr r0, _080978DC @ =sub_80979D0 b _080978EC .align 2, 0 _080978CC: .4byte gUnknown_2039874 -_080978D0: .4byte gUnknown_3005024 -_080978D4: .4byte hm_add_c3_launch_phase_2 -_080978D8: .4byte gUnknown_203B0C4 +_080978D0: .4byte gFieldCallback2 +_080978D4: .4byte FieldCallback_PrepareFadeInFromMenu +_080978D8: .4byte gPostMenuFieldCallback _080978DC: .4byte sub_80979D0 _080978E0: strb r0, [r4] _080978E2: - ldr r1, _080978F4 @ =gUnknown_3005024 - ldr r0, _080978F8 @ =hm_add_c3_launch_phase_2 + ldr r1, _080978F4 @ =gFieldCallback2 + ldr r0, _080978F8 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080978FC @ =gUnknown_203B0C4 + ldr r1, _080978FC @ =gPostMenuFieldCallback ldr r0, _08097900 @ =sub_8097984 _080978EC: str r0, [r1] movs r0, 0x1 b _08097970 .align 2, 0 -_080978F4: .4byte gUnknown_3005024 -_080978F8: .4byte hm_add_c3_launch_phase_2 -_080978FC: .4byte gUnknown_203B0C4 +_080978F4: .4byte gFieldCallback2 +_080978F8: .4byte FieldCallback_PrepareFadeInFromMenu +_080978FC: .4byte gPostMenuFieldCallback _08097900: .4byte sub_8097984 _08097904: ldr r4, _0809797C @ =gUnknown_2039A04 @@ -380,7 +380,7 @@ sub_8097B50: @ 8097B50 asrs r0, 16 lsrs r7, r1, 16 asrs r1, 16 - bl sub_8058E48 + bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r2, r0, 16 ldr r1, _08097B84 @ =gUnknown_83D4100 diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s index 6466c706e..c25978eb1 100644 --- a/asm/fldeff_flash.s +++ b/asm/fldeff_flash.s @@ -17,10 +17,10 @@ sub_80C9B2C: @ 80C9B2C lsls r0, 24 cmp r0, 0 bne _080C9B6C - ldr r1, _080C9B5C @ =gUnknown_3005024 - ldr r0, _080C9B60 @ =hm_add_c3_launch_phase_2 + ldr r1, _080C9B5C @ =gFieldCallback2 + ldr r0, _080C9B60 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080C9B64 @ =gUnknown_203B0C4 + ldr r1, _080C9B64 @ =gPostMenuFieldCallback ldr r0, _080C9B68 @ =sub_80C9B74 str r0, [r1] movs r0, 0x1 @@ -28,9 +28,9 @@ sub_80C9B2C: @ 80C9B2C .align 2, 0 _080C9B54: .4byte gMapHeader _080C9B58: .4byte 0x00000806 -_080C9B5C: .4byte gUnknown_3005024 -_080C9B60: .4byte hm_add_c3_launch_phase_2 -_080C9B64: .4byte gUnknown_203B0C4 +_080C9B5C: .4byte gFieldCallback2 +_080C9B60: .4byte FieldCallback_PrepareFadeInFromMenu +_080C9B64: .4byte gPostMenuFieldCallback _080C9B68: .4byte sub_80C9B74 _080C9B6C: movs r0, 0 diff --git a/asm/fldeff_softboiled.s b/asm/fldeff_softboiled.s deleted file mode 100644 index 857686ab3..000000000 --- a/asm/fldeff_softboiled.s +++ /dev/null @@ -1,366 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start hm_prepare_dive_probably -hm_prepare_dive_probably: @ 80E5684 - push {r4-r6,lr} - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x64 - muls r0, r6 - ldr r4, _080E56D0 @ =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - muls r0, r6 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x5 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - bhi _080E56D4 - movs r0, 0 - b _080E56D6 - .align 2, 0 -_080E56D0: .4byte gPlayerParty -_080E56D4: - movs r0, 0x1 -_080E56D6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end hm_prepare_dive_probably - - thumb_func_start sub_80E56DC -sub_80E56DC: @ 80E56DC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E5718 @ =gUnknown_203B0A0 - movs r1, 0xA - strb r1, [r0, 0xB] - ldrb r1, [r0, 0x9] - strb r1, [r0, 0xA] - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_811F818 - movs r0, 0x5 - bl sub_8121D0C - ldr r1, _080E571C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E5720 @ =sub_811FB28 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5718: .4byte gUnknown_203B0A0 -_080E571C: .4byte gTasks -_080E5720: .4byte sub_811FB28 - thumb_func_end sub_80E56DC - - thumb_func_start sub_80E5724 -sub_80E5724: @ 80E5724 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - str r4, [sp, 0x4] - ldr r1, _080E575C @ =gUnknown_203B0A0 - ldrb r7, [r1, 0x9] - mov r8, r7 - ldrb r0, [r1, 0xA] - adds r5, r0, 0 - cmp r5, 0x6 - bls _080E5768 - movs r0, 0 - strb r0, [r1, 0xB] - bl sub_8121D0C - ldr r1, _080E5760 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E5764 @ =sub_811FB28 - str r1, [r0] - b _080E57D4 - .align 2, 0 -_080E575C: .4byte gUnknown_203B0A0 -_080E5760: .4byte gTasks -_080E5764: .4byte sub_811FB28 -_080E5768: - movs r0, 0x64 - mov r10, r0 - mov r0, r10 - muls r0, r5 - ldr r1, _080E57A0 @ =gPlayerParty - mov r9, r1 - adds r6, r0, r1 - adds r0, r6, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080E5796 - cmp r7, r5 - beq _080E5796 - adds r0, r6, 0 - movs r1, 0x3A - bl GetMonData - cmp r0, r4 - bne _080E57A4 -_080E5796: - ldr r0, [sp, 0x4] - bl sub_80E5934 - b _080E57D4 - .align 2, 0 -_080E57A0: .4byte gPlayerParty -_080E57A4: - movs r0, 0x1 - bl PlaySE - mov r1, r10 - mov r0, r8 - muls r0, r1 - add r0, r9 - movs r1, 0x3A - bl GetMonData - movs r1, 0x5 - bl __udivsi3 - adds r3, r0, 0 - lsls r3, 16 - asrs r3, 16 - movs r2, 0x1 - negs r2, r2 - ldr r0, _080E57E4 @ =sub_80E57E8 - str r0, [sp] - ldr r0, [sp, 0x4] - mov r1, r8 - bl sub_8120760 -_080E57D4: - 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 -_080E57E4: .4byte sub_80E57E8 - thumb_func_end sub_80E5724 - - thumb_func_start sub_80E57E8 -sub_80E57E8: @ 80E57E8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl PlaySE - ldr r5, _080E5830 @ =gUnknown_203B0A0 - movs r1, 0x9 - ldrsb r1, [r5, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E5834 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - movs r1, 0x5 - bl __udivsi3 - adds r3, r0, 0 - lsls r3, 16 - asrs r3, 16 - ldrb r1, [r5, 0xA] - ldr r0, _080E5838 @ =sub_80E583C - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x1 - bl sub_8120760 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E5830: .4byte gUnknown_203B0A0 -_080E5834: .4byte gPlayerParty -_080E5838: .4byte sub_80E583C - thumb_func_end sub_80E57E8 - - thumb_func_start sub_80E583C -sub_80E583C: @ 80E583C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080E5884 @ =gUnknown_203B0A0 - movs r1, 0xA - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E5888 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E588C @ =gStringVar1 - bl GetMonNickname - ldr r4, _080E5890 @ =gStringVar4 - ldr r1, _080E5894 @ =gUnknown_8416F27 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_81202F8 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _080E5898 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E589C @ =sub_80E58A0 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E5884: .4byte gUnknown_203B0A0 -_080E5888: .4byte gPlayerParty -_080E588C: .4byte gStringVar1 -_080E5890: .4byte gStringVar4 -_080E5894: .4byte gUnknown_8416F27 -_080E5898: .4byte gTasks -_080E589C: .4byte sub_80E58A0 - thumb_func_end sub_80E583C - - thumb_func_start sub_80E58A0 -sub_80E58A0: @ 80E58A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8120370 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080E58EE - ldr r4, _080E58F4 @ =gUnknown_203B0A0 - movs r0, 0 - strb r0, [r4, 0xB] - ldrb r0, [r4, 0x9] - movs r1, 0 - bl sub_811F818 - ldrb r0, [r4, 0xA] - strb r0, [r4, 0x9] - ldrb r0, [r4, 0xA] - movs r1, 0x1 - bl sub_811F818 - movs r0, 0x6 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - bl ClearWindowTilemap - movs r0, 0 - bl sub_8121D0C - ldr r1, _080E58F8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E58FC @ =sub_811FB28 - str r1, [r0] -_080E58EE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E58F4: .4byte gUnknown_203B0A0 -_080E58F8: .4byte gTasks -_080E58FC: .4byte sub_811FB28 - thumb_func_end sub_80E58A0 - - thumb_func_start sub_80E5900 -sub_80E5900: @ 80E5900 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8120370 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080E5926 - movs r0, 0x5 - bl sub_8121D0C - ldr r0, _080E592C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080E5930 @ =sub_811FB28 - str r0, [r1] -_080E5926: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E592C: .4byte gTasks -_080E5930: .4byte sub_811FB28 - thumb_func_end sub_80E5900 - - thumb_func_start sub_80E5934 -sub_80E5934: @ 80E5934 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - ldr r0, _080E5964 @ =gUnknown_84169F8 - movs r1, 0 - bl sub_81202F8 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - ldr r1, _080E5968 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E596C @ =sub_80E5900 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5964: .4byte gUnknown_84169F8 -_080E5968: .4byte gTasks -_080E596C: .4byte sub_80E5900 - thumb_func_end sub_80E5934 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s index 778f2c916..ace765f55 100644 --- a/asm/fldeff_strength.s +++ b/asm/fldeff_strength.s @@ -28,10 +28,10 @@ _080D080C: lsls r0, 24 lsrs r0, 24 strh r0, [r4] - ldr r1, _080D0830 @ =gUnknown_3005024 - ldr r0, _080D0834 @ =hm_add_c3_launch_phase_2 + ldr r1, _080D0830 @ =gFieldCallback2 + ldr r0, _080D0834 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080D0838 @ =gUnknown_203B0C4 + ldr r1, _080D0838 @ =gPostMenuFieldCallback ldr r0, _080D083C @ =sub_80D0840 str r0, [r1] movs r0, 0x1 @@ -41,9 +41,9 @@ _080D0826: bx r1 .align 2, 0 _080D082C: .4byte gSpecialVar_Result -_080D0830: .4byte gUnknown_3005024 -_080D0834: .4byte hm_add_c3_launch_phase_2 -_080D0838: .4byte gUnknown_203B0C4 +_080D0830: .4byte gFieldCallback2 +_080D0834: .4byte FieldCallback_PrepareFadeInFromMenu +_080D0838: .4byte gPostMenuFieldCallback _080D083C: .4byte sub_80D0840 thumb_func_end sub_80D07EC diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s index 47b9ef390..aead537d4 100644 --- a/asm/fldeff_sweetscent.s +++ b/asm/fldeff_sweetscent.s @@ -20,18 +20,18 @@ _080DE0C4: .4byte gUnknown_203B0A0 thumb_func_start sub_80DE0C8 sub_80DE0C8: @ 80DE0C8 - ldr r1, _080DE0D8 @ =gUnknown_3005024 - ldr r0, _080DE0DC @ =hm_add_c3_launch_phase_2 + ldr r1, _080DE0D8 @ =gFieldCallback2 + ldr r0, _080DE0DC @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080DE0E0 @ =gUnknown_203B0C4 + ldr r1, _080DE0E0 @ =gPostMenuFieldCallback ldr r0, _080DE0E4 @ =hm2_sweet_scent str r0, [r1] movs r0, 0x1 bx lr .align 2, 0 -_080DE0D8: .4byte gUnknown_3005024 -_080DE0DC: .4byte hm_add_c3_launch_phase_2 -_080DE0E0: .4byte gUnknown_203B0C4 +_080DE0D8: .4byte gFieldCallback2 +_080DE0DC: .4byte FieldCallback_PrepareFadeInFromMenu +_080DE0E0: .4byte gPostMenuFieldCallback _080DE0E4: .4byte hm2_sweet_scent thumb_func_end sub_80DE0C8 diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s deleted file mode 100644 index 698ad4c23..000000000 --- a/asm/fldeff_teleport.s +++ /dev/null @@ -1,92 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start SetUpFieldMove_Teleport -SetUpFieldMove_Teleport: @ 80F66F0 - push {lr} - ldr r0, _080F6708 @ =gMapHeader - ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080F670C - movs r0, 0 - b _080F671A - .align 2, 0 -_080F6708: .4byte gMapHeader -_080F670C: - ldr r1, _080F6720 @ =gUnknown_3005024 - ldr r0, _080F6724 @ =hm_add_c3_launch_phase_2 - str r0, [r1] - ldr r1, _080F6728 @ =gUnknown_203B0C4 - ldr r0, _080F672C @ =hm_teleport_run_dp02scr - str r0, [r1] - movs r0, 0x1 -_080F671A: - pop {r1} - bx r1 - .align 2, 0 -_080F6720: .4byte gUnknown_3005024 -_080F6724: .4byte hm_add_c3_launch_phase_2 -_080F6728: .4byte gUnknown_203B0C4 -_080F672C: .4byte hm_teleport_run_dp02scr - thumb_func_end SetUpFieldMove_Teleport - - thumb_func_start hm_teleport_run_dp02scr -hm_teleport_run_dp02scr: @ 80F6730 - push {lr} - bl sub_8054D08 - movs r0, 0x3F - bl FieldEffectStart - bl GetCursorSelectionMonId - ldr r1, _080F674C @ =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F674C: .4byte gFieldEffectArguments - thumb_func_end hm_teleport_run_dp02scr - - thumb_func_start FldEff_UseTeleport -FldEff_UseTeleport: @ 80F6750 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F6778 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080F677C @ =sub_80F6780 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080F6778: .4byte gTasks -_080F677C: .4byte sub_80F6780 - thumb_func_end FldEff_UseTeleport - - thumb_func_start sub_80F6780 -sub_80F6780: @ 80F6780 - push {lr} - movs r0, 0x3F - bl FieldEffectActiveListRemove - bl sub_8085B64 - pop {r0} - bx r0 - thumb_func_end sub_80F6780 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/flying.s b/asm/flying.s new file mode 100644 index 000000000..ada0296c8 --- /dev/null +++ b/asm/flying.s @@ -0,0 +1,2945 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B18A0 +sub_80B18A0: @ 80B18A0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x30 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B18DC + adds r0, r4, 0 + bl DestroyAnimSprite +_080B18DC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B18A0 + + thumb_func_start sub_80B18E4 +sub_80B18E4: @ 80B18E4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8075114 + ldrh r0, [r4, 0x22] + adds r0, 0x14 + strh r0, [r4, 0x22] + movs r0, 0xBF + strh r0, [r4, 0x30] + ldr r1, _080B1908 @ =sub_80B190C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1908: .4byte sub_80B190C + thumb_func_end sub_80B18E4 + + thumb_func_start sub_80B190C +sub_80B190C: @ 80B190C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x47 + bne _080B1946 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B1946: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B190C + + thumb_func_start sub_80B194C +sub_80B194C: @ 80B194C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B197C @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r1, _080B1980 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x8] + ldrh r0, [r1] + strh r0, [r4, 0xA] + ldr r0, _080B1984 @ =0x00002719 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xC] + ldr r0, _080B1988 @ =sub_80B198C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B197C: .4byte gTasks +_080B1980: .4byte gBattleAnimArgs +_080B1984: .4byte 0x00002719 +_080B1988: .4byte sub_80B198C + thumb_func_end sub_80B194C + + thumb_func_start sub_80B198C +sub_80B198C: @ 80B198C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080B1A0C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r4, 0xA + ldrsh r1, [r3, r4] + adds r7, r2, 0 + cmp r0, r1 + bne _080B19EA + movs r0, 0 + strh r0, [r3, 0x1C] + ldrb r0, [r3, 0xC] + ldr r2, _080B1A10 @ =gPlttBufferFaded + lsls r0, 4 + movs r3, 0x84 + lsls r3, 1 + adds r1, r0, r3 + lsls r1, 1 + adds r1, r2 + ldrh r6, [r1] + movs r4, 0x7 + mov r12, r0 + ldr r0, _080B1A14 @ =0x00000107 + add r0, r12 + lsls r0, 1 + adds r3, r0, r2 +_080B19D2: + ldrh r0, [r3] + strh r0, [r1] + subs r3, 0x2 + subs r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bgt _080B19D2 + ldr r0, _080B1A18 @ =0x00000101 + add r0, r12 + lsls r0, 1 + adds r0, r2 + strh r6, [r0] +_080B19EA: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r7 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bne _080B1A04 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B1A04: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1A0C: .4byte gTasks +_080B1A10: .4byte gPlttBufferFaded +_080B1A14: .4byte 0x00000107 +_080B1A18: .4byte 0x00000101 + thumb_func_end sub_80B198C + + thumb_func_start sub_80B1A1C +sub_80B1A1C: @ 80B1A1C + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B1A88 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B1A3C + ldr r1, _080B1A8C @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080B1A3C: + ldr r4, _080B1A8C @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldr r5, _080B1A90 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080B1A94 @ =sub_8074F50 + str r0, [r6, 0x1C] + ldr r1, _080B1A98 @ =sub_80B1A9C + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1A88: .4byte gBattleAnimAttacker +_080B1A8C: .4byte gBattleAnimArgs +_080B1A90: .4byte gBattleAnimTarget +_080B1A94: .4byte sub_8074F50 +_080B1A98: .4byte sub_80B1A9C + thumb_func_end sub_80B1A1C + + thumb_func_start sub_80B1A9C +sub_80B1A9C: @ 80B1A9C + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080B1AB0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B1AB0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B1A9C + + thumb_func_start sub_80B1AB8 +sub_80B1AB8: @ 80B1AB8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B1B54 @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B1AE4 + ldr r1, _080B1B58 @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080B1AE4: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B1AFC + ldr r0, _080B1B58 @ =gBattleAnimArgs + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0x6] + negs r1, r1 + strh r1, [r0, 0x6] +_080B1AFC: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + ldr r2, _080B1B58 @ =gBattleAnimArgs + ldrh r1, [r2] + ldrh r3, [r5, 0x20] + adds r1, r3 + strh r1, [r5, 0x20] + lsrs r0, 24 + ldrh r1, [r2, 0x2] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r0, [r2, 0x8] + strh r0, [r5, 0x2E] + movs r3, 0xC + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080B1B60 + ldr r4, _080B1B5C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080B1B72 + .align 2, 0 +_080B1B54: .4byte gBattleAnimAttacker +_080B1B58: .4byte gBattleAnimArgs +_080B1B5C: .4byte gBattleAnimTarget +_080B1B60: + ldr r0, _080B1BA0 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C +_080B1B72: + ldr r4, _080B1BA4 @ =gBattleAnimArgs + ldrh r0, [r4, 0x4] + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x6] + ldrh r3, [r5, 0x36] + adds r0, r3 + strh r0, [r5, 0x36] + ldr r0, _080B1BA8 @ =sub_8075590 + str r0, [r5, 0x1C] + ldr r1, _080B1BAC @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldrb r1, [r4, 0xA] + adds r0, r5, 0 + bl SeekSpriteAnim + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1BA0: .4byte gBattleAnimTarget +_080B1BA4: .4byte gBattleAnimArgs +_080B1BA8: .4byte sub_8075590 +_080B1BAC: .4byte DestroyAnimSprite + thumb_func_end sub_80B1AB8 + + thumb_func_start sub_80B1BB0 +sub_80B1BB0: @ 80B1BB0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080B1BEC @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080B1BF0 @ =sub_80B1BF8 + str r0, [r4, 0x1C] + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B1BF4 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1BEC: .4byte gBattleAnimArgs +_080B1BF0: .4byte sub_80B1BF8 +_080B1BF4: .4byte gSprites + thumb_func_end sub_80B1BB0 + + thumb_func_start sub_80B1BF8 +sub_80B1BF8: @ 80B1BF8 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080B1C0C + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + b _080B1C1E +_080B1C0C: + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + subs r1, r0 + strh r1, [r2, 0x26] +_080B1C1E: + movs r3, 0x22 + ldrsh r0, [r2, r3] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080B1C36 + adds r0, r2, 0 + bl DestroyAnimSprite +_080B1C36: + pop {r0} + bx r0 + thumb_func_end sub_80B1BF8 + + thumb_func_start sub_80B1C3C +sub_80B1C3C: @ 80B1C3C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B1C64 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B1C6C + movs r0, 0x88 + lsls r0, 1 + strh r0, [r5, 0x20] + ldr r0, _080B1C68 @ =0x0000ffe0 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080B1C72 + .align 2, 0 +_080B1C64: .4byte gBattleAnimAttacker +_080B1C68: .4byte 0x0000ffe0 +_080B1C6C: + ldr r0, _080B1CB0 @ =0x0000ffe0 + strh r0, [r5, 0x20] + strh r0, [r5, 0x22] +_080B1C72: + ldr r0, _080B1CB4 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080B1CB8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080B1CBC @ =sub_80B1CC0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1CB0: .4byte 0x0000ffe0 +_080B1CB4: .4byte gBattleAnimArgs +_080B1CB8: .4byte gBattleAnimTarget +_080B1CBC: .4byte sub_80B1CC0 + thumb_func_end sub_80B1C3C + + thumb_func_start sub_80B1CC0 +sub_80B1CC0: @ 80B1CC0 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_80755E0 + ldrh r1, [r4, 0x34] + lsrs r0, r1, 8 + cmp r0, 0xC8 + bls _080B1CE8 + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] +_080B1CE8: + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x20 + movs r1, 0x98 + lsls r1, 1 + cmp r0, r1 + bhi _080B1D0A + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + cmp r0, 0xA0 + ble _080B1D30 +_080B1D0A: + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B1D38 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyAnimSprite +_080B1D30: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1D38: .4byte gSprites + thumb_func_end sub_80B1CC0 + + thumb_func_start sub_80B1D3C +sub_80B1D3C: @ 80B1D3C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080B1D7C + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B1D6E + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] +_080B1D6E: + adds r0, r4, 0 + bl DestroySprite + ldr r1, _080B1D84 @ =gUnknown_2037EE2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080B1D7C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1D84: .4byte gUnknown_2037EE2 + thumb_func_end sub_80B1D3C + + thumb_func_start sub_80B1D88 +sub_80B1D88: @ 80B1D88 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + adds r5, r7, 0 + adds r5, 0x2E + ldr r0, _080B1DA8 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080B1DB0 + ldr r0, _080B1DAC @ =gBattleAnimAttacker + b _080B1DB2 + .align 2, 0 +_080B1DA8: .4byte gBattleAnimArgs +_080B1DAC: .4byte gBattleAnimAttacker +_080B1DB0: + ldr r0, _080B1E5C @ =gBattleAnimTarget +_080B1DB2: + ldrb r6, [r0] + adds r0, r6, 0 + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B1DC8 + ldr r1, _080B1E60 @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080B1DC8: + adds r0, r6, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080B1E60 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r7, 0x20] + adds r0, r6, 0 + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + ldrh r1, [r4, 0x2] + lsrs r0, 24 + adds r1, r0, r1 + strh r1, [r7, 0x22] + lsls r1, 8 + strh r1, [r5, 0x8] + ldrh r1, [r4, 0xC] + adds r0, r1 + lsls r0, 1 + ldrh r2, [r5, 0xE] + movs r1, 0x1 + ands r1, r2 + orrs r1, r0 + strh r1, [r5, 0xE] + ldrb r0, [r5] + movs r2, 0x4 + mov r8, r2 + mov r1, r8 + orrs r0, r1 + strb r0, [r5] + ldrh r0, [r4, 0x4] + ldrb r1, [r4, 0x4] + strh r1, [r5, 0x2] + lsls r0, 16 + lsrs r0, 24 + strh r0, [r5, 0xA] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x4] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x6] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0xC] + subs r1, 0x40 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x7F + bhi _080B1EBE + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B1E64 + adds r0, r6, 0 + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r7, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r7, 0x5] + b _080B1E7C + .align 2, 0 +_080B1E5C: .4byte gBattleAnimTarget +_080B1E60: .4byte gBattleAnimArgs +_080B1E64: + adds r0, r6, 0 + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, 0x5] +_080B1E7C: + ldrb r1, [r5, 0xE] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r1 + strb r0, [r5, 0xE] + movs r2, 0x4 + ldrsh r0, [r5, r2] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + bne _080B1F1E + adds r3, r7, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r0, r2, 31 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r7, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + b _080B1F16 +_080B1EBE: + adds r0, r6, 0 + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, 0x5] + ldrb r0, [r5, 0xE] + movs r4, 0x1 + orrs r0, r4 + strb r0, [r5, 0xE] + movs r1, 0x4 + ldrsh r0, [r5, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080B1F1E + adds r3, r7, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + ands r1, r4 + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r7, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + mov r2, r8 + orrs r0, r2 +_080B1F16: + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] +_080B1F1E: + ldrh r1, [r5, 0x2] + lsrs r1, 6 + lsls r1, 4 + ldrb r2, [r5] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r3, _080B1F88 @ =gSineTable + ldrh r0, [r5, 0x2] + lsls r0, 1 + adds r0, r3 + movs r2, 0 + ldrsh r1, [r0, r2] + ldrb r0, [r5, 0xC] + muls r0, r1 + asrs r0, 8 + strh r0, [r7, 0x24] + ldrb r2, [r7, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r1, 0x24 + ldrsh r0, [r7, r1] + negs r0, r0 + asrs r0, 1 + ldrb r5, [r5, 0xA] + adds r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r3 + ldrh r4, [r1] + ldr r1, _080B1F8C @ =gOamMatrices + lsls r2, 3 + adds r2, r1 + adds r0, 0x40 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x6] + strh r0, [r2] + strh r4, [r2, 0x2] + lsls r0, r4, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldr r0, _080B1F90 @ =sub_80B1F94 + str r0, [r7, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1F88: .4byte gSineTable +_080B1F8C: .4byte gOamMatrices +_080B1F90: .4byte sub_80B1F94 + thumb_func_end sub_80B1D88 + + thumb_func_start sub_80B1F94 +sub_80B1F94: @ 80B1F94 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r6, 0 + adds r4, r5, 0 + adds r4, 0x2E + ldrb r2, [r4] + movs r7, 0x1 + movs r0, 0x1 + mov r9, r0 + ands r0, r2 + cmp r0, 0 + beq _080B1FCE + ldrb r0, [r4, 0x1] + adds r1, r0, 0 + adds r1, 0xFF + strb r1, [r4, 0x1] + lsls r0, 24 + cmp r0, 0 + beq _080B1FC2 + b _080B24AA +_080B1FC2: + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080B24AA +_080B1FCE: + ldrh r0, [r4, 0x2] + lsrs r1, r0, 6 + mov r12, r0 + cmp r1, 0x1 + bne _080B1FDA + b _080B20FE +_080B1FDA: + cmp r1, 0x1 + bgt _080B1FE4 + cmp r1, 0 + beq _080B1FF2 + b _080B23F0 +_080B1FE4: + cmp r1, 0x2 + bne _080B1FEA + b _080B21F2 +_080B1FEA: + cmp r1, 0x3 + bne _080B1FF0 + b _080B22E6 +_080B1FF0: + b _080B23F0 +_080B1FF2: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x1 + bne _080B2006 + movs r0, 0x8 + orrs r0, r2 + orrs r0, r7 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080B20F4 +_080B2006: + lsrs r0, r1, 28 + cmp r0, 0x3 + bne _080B2028 + lsls r0, r2, 30 + lsrs r0, 31 + movs r1, 0x1 + eors r0, r1 + ands r0, r7 + lsls r0, 1 + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + strb r1, [r4] + strb r6, [r4, 0x1] + b _080B20F4 +_080B2028: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080B20F4 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B20E6 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B20B6 + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B209C + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B20D4 +_080B209C: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B20D4 +_080B20B6: + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B20CA + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + b _080B20D2 +_080B20CA: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC +_080B20D2: + strb r0, [r1] +_080B20D4: + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080B20E6: + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, 0x2] + mov r12, r1 +_080B20F4: + ldrb r1, [r4] + movs r0, 0xF + ands r0, r1 + strb r0, [r4] + b _080B23F0 +_080B20FE: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0 + bne _080B210C + movs r0, 0x8 + orrs r0, r2 + b _080B2114 +_080B210C: + lsrs r0, r1, 28 + cmp r0, 0x2 + bne _080B211C + adds r0, r2, 0 +_080B2114: + orrs r0, r7 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080B21E8 +_080B211C: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080B21E8 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B21DA + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B21AA + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B2190 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B21C8 +_080B2190: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B21C8 +_080B21AA: + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B21BE + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + b _080B21C6 +_080B21BE: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC +_080B21C6: + strb r0, [r1] +_080B21C8: + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080B21DA: + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, 0x2] + mov r12, r1 +_080B21E8: + ldrb r0, [r4] + movs r1, 0xF + ands r1, r0 + movs r0, 0x10 + b _080B23EC +_080B21F2: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x3 + bne _080B2200 + movs r0, 0x8 + orrs r0, r2 + b _080B2208 +_080B2200: + lsrs r0, r1, 28 + cmp r0, 0x1 + bne _080B2210 + adds r0, r2, 0 +_080B2208: + orrs r0, r7 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080B22DC +_080B2210: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080B22DC + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B22CE + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B229E + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B2284 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B22BC +_080B2284: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B22BC +_080B229E: + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B22B2 + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + b _080B22BA +_080B22B2: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC +_080B22BA: + strb r0, [r1] +_080B22BC: + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080B22CE: + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, 0x2] + mov r12, r1 +_080B22DC: + ldrb r0, [r4] + movs r1, 0xF + ands r1, r0 + movs r0, 0x20 + b _080B23EC +_080B22E6: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x2 + bne _080B22F6 + movs r0, 0x8 + orrs r0, r2 + strb r0, [r4] + b _080B23E4 +_080B22F6: + lsrs r0, r1, 28 + cmp r0, 0 + bne _080B2318 + lsls r0, r2, 30 + lsrs r0, 31 + movs r1, 0x1 + eors r0, r1 + ands r0, r7 + lsls r0, 1 + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + strb r1, [r4] + strb r6, [r4, 0x1] + b _080B23E4 +_080B2318: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080B23E4 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldrb r1, [r4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B23D6 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B23A6 + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B238C + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B23C4 +_080B238C: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080B23C4 +_080B23A6: + ldrb r1, [r4, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080B23BA + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + b _080B23C2 +_080B23BA: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC +_080B23C2: + strb r0, [r1] +_080B23C4: + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080B23D6: + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r1, [r4, 0x2] + mov r12, r1 +_080B23E4: + ldrb r0, [r4] + movs r1, 0xF + ands r1, r0 + movs r0, 0x30 +_080B23EC: + orrs r1, r0 + strb r1, [r4] +_080B23F0: + ldrb r1, [r4] + lsls r1, 30 + lsrs r1, 31 + adds r0, r4, 0 + adds r0, 0xC + adds r0, r1 + ldrb r1, [r0] + ldr r3, _080B2478 @ =gSineTable + mov r2, r12 + lsls r0, r2, 1 + adds r0, r3 + movs r2, 0 + ldrsh r0, [r0, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x24] + ldrb r2, [r5, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r1, 0x24 + ldrsh r0, [r5, r1] + negs r0, r0 + asrs r0, 1 + ldrb r1, [r4, 0xA] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r3 + ldrh r6, [r1] + ldr r1, _080B247C @ =gOamMatrices + lsls r2, 3 + adds r2, r1 + adds r0, 0x40 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x6] + strh r0, [r2] + strh r6, [r2, 0x2] + lsls r0, r6, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldrh r0, [r4, 0x6] + ldrh r2, [r4, 0x8] + adds r0, r2 + strh r0, [r4, 0x8] + lsls r0, 16 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080B2480 + ldrh r0, [r4, 0x4] + subs r1, 0x1 + ands r1, r0 + ldrh r0, [r4, 0x2] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2] + b _080B2490 + .align 2, 0 +_080B2478: .4byte gSineTable +_080B247C: .4byte gOamMatrices +_080B2480: + ldrh r0, [r4, 0x4] + ldr r1, _080B24B8 @ =0x00007fff + ands r1, r0 + ldrh r2, [r4, 0x2] + adds r1, r2 + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0x2] +_080B2490: + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + ldrh r0, [r4, 0xE] + lsrs r0, 1 + cmp r1, r0 + blt _080B24AA + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080B24BC @ =sub_80B1D3C + str r0, [r5, 0x1C] +_080B24AA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B24B8: .4byte 0x00007fff +_080B24BC: .4byte sub_80B1D3C + thumb_func_end sub_80B1F94 + + thumb_func_start sub_80B24C0 +sub_80B24C0: @ 80B24C0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, _080B2508 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + ldr r5, _080B250C @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _080B2510 @ =sub_8075DF4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2508: .4byte gBattleAnimTarget +_080B250C: .4byte gBattleAnimAttacker +_080B2510: .4byte sub_8075DF4 + thumb_func_end sub_80B24C0 + + thumb_func_start sub_80B2514 +sub_80B2514: @ 80B2514 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r5, _080B2554 @ =gBattleAnimArgs + ldrh r0, [r5] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x34] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B25C4 + ldr r0, _080B2558 @ =gUnknown_2023BD6 + ldr r1, _080B255C @ =gBattleAnimTarget + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B2560 + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + b _080B256E + .align 2, 0 +_080B2554: .4byte gBattleAnimArgs +_080B2558: .4byte gUnknown_2023BD6 +_080B255C: .4byte gBattleAnimTarget +_080B2560: + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x28 +_080B256E: + strh r0, [r4, 0x3C] + ldr r0, _080B259C @ =gBattleAnimArgs + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080B25A4 + ldr r0, _080B25A0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080B25D8 + .align 2, 0 +_080B259C: .4byte gBattleAnimArgs +_080B25A0: .4byte gBattleAnimTarget +_080B25A4: + ldr r0, _080B25C0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080B25D8 + .align 2, 0 +_080B25C0: .4byte gBattleAnimTarget +_080B25C4: + ldr r0, _080B267C @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r4, 0x3C] +_080B25D8: + ldr r5, _080B2680 @ =gSineTable + ldrh r3, [r4, 0x30] + movs r1, 0xFF + ands r1, r3 + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + movs r2, 0 + strh r0, [r4, 0x36] + adds r1, 0x40 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r4, 0x38] + strh r2, [r4, 0x3A] + strh r2, [r4, 0x26] + strh r2, [r4, 0x24] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r6, r0, 27 + lsls r3, 16 + lsrs r3, 24 + strh r3, [r4, 0x30] + bl Random + lsls r0, 16 + asrs r7, r0, 16 + movs r0, 0x80 + lsls r0, 8 + ands r0, r7 + cmp r0, 0 + beq _080B2622 + ldrh r1, [r4, 0x30] + movs r0, 0xFF + subs r0, r1 + strh r0, [r4, 0x30] +_080B2622: + movs r0, 0x30 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + ldr r3, _080B2684 @ =gOamMatrices + lsls r2, r6, 3 + adds r2, r3 + adds r1, 0x40 + lsls r1, 1 + adds r1, r5 + ldrh r1, [r1] + strh r1, [r2, 0x6] + strh r1, [r2] + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + adds r3, r4, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + movs r0, 0x1 + ands r0, r7 + cmp r0, 0 + beq _080B2672 + adds r2, r4, 0 + adds r2, 0x2A + movs r1, 0x1 + movs r0, 0x1 + strb r0, [r2] + ldrb r0, [r3] + orrs r0, r1 + strb r0, [r3] +_080B2672: + ldr r0, _080B2688 @ =sub_80B268C + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B267C: .4byte gBattleAnimTarget +_080B2680: .4byte gSineTable +_080B2684: .4byte gOamMatrices +_080B2688: .4byte sub_80B268C + thumb_func_end sub_80B2514 + + thumb_func_start sub_80B268C +sub_80B268C: @ 80B268C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r4, 0 + adds r5, 0x2E + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r1, 0 + mov r8, r1 + movs r7, 0 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080B2770 + movs r2, 0x36 + ldrsh r1, [r4, r2] + movs r2, 0x3A + ldrsh r0, [r4, r2] + muls r0, r1 + asrs r6, r0, 8 + strh r6, [r4, 0x24] + movs r0, 0x38 + ldrsh r1, [r4, r0] + movs r2, 0x3A + ldrsh r0, [r4, r2] + muls r0, r1 + asrs r3, r0, 8 + strh r3, [r4, 0x26] + ldrh r2, [r4, 0x34] + movs r1, 0xFF + adds r0, r1, 0 + ands r0, r2 + ldrh r2, [r4, 0x3A] + adds r0, r2 + strh r0, [r4, 0x3A] + ldrh r2, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + ands r1, r2 + cmp r0, r1 + blt _080B2770 + ldrh r0, [r4, 0x20] + adds r0, r6 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + strh r7, [r4, 0x24] + strh r7, [r4, 0x26] + mov r0, sp + adds r1, r5, 0 + movs r2, 0x10 + bl memcpy + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x10 + bl memset + ldrh r0, [r4, 0x22] + lsls r0, 8 + strh r0, [r5, 0x8] + mov r0, sp + ldrh r0, [r0, 0x6] + lsrs r1, r0, 8 + strh r1, [r5, 0x6] + strh r7, [r5, 0x2] + mov r0, sp + ldrh r0, [r0, 0x2] + strh r0, [r5, 0xA] + adds r0, r4, 0 + adds r0, 0x2A + ldrb r0, [r0] + cmp r0, 0 + beq _080B2740 + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _080B2738 + ldr r0, _080B2734 @ =0x00008001 + b _080B274E + .align 2, 0 +_080B2734: .4byte 0x00008001 +_080B2738: + ldr r0, _080B273C @ =0x00008002 + b _080B274E + .align 2, 0 +_080B273C: .4byte 0x00008002 +_080B2740: + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _080B274C + movs r0, 0x1 + b _080B274E +_080B274C: + movs r0, 0x2 +_080B274E: + strh r0, [r5, 0x4] + mov r0, sp + ldrh r0, [r0, 0x4] + lsrs r0, 8 + strb r0, [r5, 0xC] + subs r0, 0x2 + strb r0, [r5, 0xD] + mov r0, sp + ldrh r1, [r0, 0xE] + lsls r1, 1 + ldrh r2, [r5, 0xE] + movs r0, 0x1 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0xE] + ldr r0, _080B277C @ =sub_80B1F94 + str r0, [r4, 0x1C] +_080B2770: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B277C: .4byte sub_80B1F94 + thumb_func_end sub_80B268C + + thumb_func_start sub_80B2780 +sub_80B2780: @ 80B2780 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080B2798 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B279C + adds r0, r5, 0 + movs r1, 0 + bl sub_8075160 + b _080B27A4 + .align 2, 0 +_080B2798: .4byte gBattleAnimArgs +_080B279C: + adds r0, r5, 0 + movs r1, 0 + bl sub_8075114 +_080B27A4: + ldr r4, _080B280C @ =gBattleAnimArgs + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B27BC + ldr r0, _080B2810 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B27D2 +_080B27BC: + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080B27D8 + ldr r0, _080B2814 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B27D8 +_080B27D2: + ldrh r0, [r5, 0x20] + adds r0, 0x8 + strh r0, [r5, 0x20] +_080B27D8: + ldr r4, _080B280C @ =gBattleAnimArgs + ldrb r1, [r4, 0x8] + adds r0, r5, 0 + bl SeekSpriteAnim + ldrh r0, [r5, 0x20] + subs r0, 0x20 + strh r0, [r5, 0x20] + ldr r0, _080B2818 @ =0x00000ccc + strh r0, [r5, 0x30] + ldrh r1, [r4, 0x8] + movs r0, 0xC + adds r2, r0, 0 + muls r2, r1 + adds r0, r2, 0 + ldrh r2, [r5, 0x24] + adds r0, r2 + strh r0, [r5, 0x24] + strh r1, [r5, 0x2E] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x3C] + ldr r0, _080B281C @ =sub_80B2820 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B280C: .4byte gBattleAnimArgs +_080B2810: .4byte gBattleAnimAttacker +_080B2814: .4byte gBattleAnimTarget +_080B2818: .4byte 0x00000ccc +_080B281C: .4byte sub_80B2820 + thumb_func_end sub_80B2780 + + thumb_func_start sub_80B2820 +sub_80B2820: @ 80B2820 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x24] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080B284A + strh r1, [r4, 0x2E] + strh r1, [r4, 0x24] + adds r0, r4, 0 + bl StartSpriteAnim +_080B284A: + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B2862 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B2862: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B2820 + + thumb_func_start sub_80B2868 +sub_80B2868: @ 80B2868 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080B2900 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + ldrh r0, [r7, 0x8] + movs r1, 0x1F + ands r0, r1 + cmp r0, 0 + bne _080B28E2 + ldr r1, _080B2904 @ =gUnknown_2037EE2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r1, 0x8 + ldrsh r0, [r7, r1] + movs r5, 0xD + negs r5, r5 + adds r1, r5, 0 + bl Sin + ldr r4, _080B2908 @ =gBattleAnimArgs + strh r0, [r4] + movs r1, 0x8 + ldrsh r0, [r7, r1] + adds r1, r5, 0 + bl Cos + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r4, 0x4] + movs r0, 0x3 + strh r0, [r4, 0x6] + ldr r0, _080B290C @ =gUnknown_83E7C98 + mov r8, r0 + ldr r5, _080B2910 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + mov r0, r8 + adds r1, r4, 0 + movs r3, 0x3 + bl CreateSpriteAndAnimate +_080B28E2: + ldrh r0, [r7, 0x8] + adds r0, 0x8 + strh r0, [r7, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080B28F6 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080B28F6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2900: .4byte gTasks +_080B2904: .4byte gUnknown_2037EE2 +_080B2908: .4byte gBattleAnimArgs +_080B290C: .4byte gUnknown_83E7C98 +_080B2910: .4byte gBattleAnimTarget + thumb_func_end sub_80B2868 + + thumb_func_start sub_80B2914 +sub_80B2914: @ 80B2914 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B2926 + cmp r0, 0x1 + beq _080B2958 + b _080B296C +_080B2926: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075160 + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B2954 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B296C + .align 2, 0 +_080B2954: .4byte gSprites +_080B2958: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B296C + adds r0, r4, 0 + bl DestroyAnimSprite +_080B296C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B2914 + + thumb_func_start sub_80B2974 +sub_80B2974: @ 80B2974 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B29AC + cmp r0, 0x1 + bgt _080B298A + cmp r0, 0 + beq _080B2990 + b _080B29FE +_080B298A: + cmp r0, 0x2 + beq _080B29C0 + b _080B29FE +_080B2990: + ldr r0, _080B29A8 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + negs r0, r0 + subs r0, 0x20 + strh r0, [r4, 0x26] + b _080B29B8 + .align 2, 0 +_080B29A8: .4byte gBattleAnimTarget +_080B29AC: + ldrh r0, [r4, 0x26] + adds r0, 0xA + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _080B29FE +_080B29B8: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B29FE +_080B29C0: + ldrh r0, [r4, 0x26] + subs r0, 0xA + strh r0, [r4, 0x26] + movs r2, 0x22 + ldrsh r0, [r4, r2] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080B29FE + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B2A04 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyAnimSprite +_080B29FE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2A04: .4byte gSprites + thumb_func_end sub_80B2974 + + thumb_func_start sub_80B2A08 +sub_80B2A08: @ 80B2A08 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080B2A44 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080B2A48 @ =sub_80B2A50 + str r0, [r4, 0x1C] + movs r0, 0 + bl GetAnimBankSpriteId + ldr r2, _080B2A4C @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2A44: .4byte gBattleAnimArgs +_080B2A48: .4byte sub_80B2A50 +_080B2A4C: .4byte gSprites + thumb_func_end sub_80B2A08 + + thumb_func_start sub_80B2A50 +sub_80B2A50: @ 80B2A50 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080B2A64 + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + b _080B2AA8 +_080B2A64: + movs r1, 0x22 + ldrsh r0, [r2, r1] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + ble _080B2A8A + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + subs r1, r0 + strh r1, [r2, 0x26] + b _080B2AA8 +_080B2A8A: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, 0x34] + adds r1, r0, 0x1 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B2AA8 + ldr r0, _080B2AAC @ =sub_80B2AB0 + str r0, [r2, 0x1C] +_080B2AA8: + pop {r0} + bx r0 + .align 2, 0 +_080B2AAC: .4byte sub_80B2AB0 + thumb_func_end sub_80B2A50 + + thumb_func_start sub_80B2AB0 +sub_80B2AB0: @ 80B2AB0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + adds r0, r1 + strh r0, [r2, 0x26] + movs r3, 0x22 + ldrsh r0, [r2, r3] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + ble _080B2AE0 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_080B2AE0: + movs r1, 0x26 + ldrsh r0, [r2, r1] + cmp r0, 0 + ble _080B2AEE + adds r0, r2, 0 + bl DestroyAnimSprite +_080B2AEE: + pop {r0} + bx r0 + thumb_func_end sub_80B2AB0 + + thumb_func_start sub_80B2AF4 +sub_80B2AF4: @ 80B2AF4 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080B2B08 + cmp r0, 0x1 + beq _080B2B60 + b _080B2BCC +_080B2B08: + ldr r0, _080B2B18 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080B2B20 + ldr r4, _080B2B1C @ =gBattleAnimAttacker + b _080B2B22 + .align 2, 0 +_080B2B18: .4byte gBattleAnimArgs +_080B2B1C: .4byte gBattleAnimAttacker +_080B2B20: + ldr r4, _080B2B5C @ =gBattleAnimTarget +_080B2B22: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0 + movs r3, 0x80 + lsls r3, 2 + strh r3, [r5, 0x30] + movs r2, 0x80 + lsls r2, 1 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl sub_8075A1C + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080B2BCC + .align 2, 0 +_080B2B5C: .4byte gBattleAnimTarget +_080B2B60: + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0xB + bgt _080B2B6E + ldrh r0, [r5, 0x30] + subs r0, 0x28 + b _080B2B72 +_080B2B6E: + ldrh r0, [r5, 0x30] + adds r0, 0x28 +_080B2B72: + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0x32] + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x30 + ldrsh r3, [r5, r0] + str r1, [sp] + adds r0, r5, 0 + bl sub_8075A1C + ldrb r1, [r5, 0x3] + lsls r1, 26 + lsrs r1, 27 + movs r0, 0xF4 + lsls r0, 6 + ldr r2, _080B2BD4 @ =gOamMatrices + lsls r1, 3 + adds r1, r2 + movs r2, 0x6 + ldrsh r1, [r1, r2] + bl __divsi3 + adds r1, r0, 0x1 + cmp r1, 0x80 + ble _080B2BAC + movs r1, 0x80 +_080B2BAC: + movs r0, 0x40 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r1, r0, 1 + strh r1, [r5, 0x26] + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0x18 + bne _080B2BCC + adds r0, r5, 0 + bl sub_8075AD8 + adds r0, r5, 0 + bl DestroyAnimSprite +_080B2BCC: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2BD4: .4byte gOamMatrices + thumb_func_end sub_80B2AF4 + + thumb_func_start sub_80B2BD8 +sub_80B2BD8: @ 80B2BD8 + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + ldr r4, _080B2BFC @ =0x000001ff + ands r4, r0 + bl Random + movs r1, 0x7F + ands r1, r0 + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080B2C00 + movs r2, 0xB8 + lsls r2, 2 + adds r0, r4, r2 + b _080B2C08 + .align 2, 0 +_080B2BFC: .4byte 0x000001ff +_080B2C00: + movs r2, 0xB8 + lsls r2, 2 + adds r0, r2, 0 + subs r0, r4 +_080B2C08: + strh r0, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B2C1C + movs r2, 0xE0 + lsls r2, 2 + adds r0, r2, 0 + adds r0, r1, r0 + b _080B2C24 +_080B2C1C: + movs r2, 0xE0 + lsls r2, 2 + adds r0, r2, 0 + subs r0, r1 +_080B2C24: + strh r0, [r5, 0x30] + ldr r2, _080B2C4C @ =gBattleAnimArgs + ldrh r0, [r2] + strh r0, [r5, 0x32] + lsls r0, 16 + cmp r0, 0 + beq _080B2C40 + ldrb r0, [r5, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r5, 0x3] +_080B2C40: + movs r1, 0x2 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080B2C54 + ldr r4, _080B2C50 @ =gBattleAnimAttacker + b _080B2C56 + .align 2, 0 +_080B2C4C: .4byte gBattleAnimArgs +_080B2C50: .4byte gBattleAnimAttacker +_080B2C54: + ldr r4, _080B2C80 @ =gBattleAnimTarget +_080B2C56: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r5, 0x22] + ldr r0, _080B2C84 @ =sub_80B2C88 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B2C80: .4byte gBattleAnimTarget +_080B2C84: .4byte sub_80B2C88 + thumb_func_end sub_80B2BD8 + + thumb_func_start sub_80B2C88 +sub_80B2C88: @ 80B2C88 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B2CA0 + ldrh r3, [r4, 0x2E] + lsls r0, r3, 16 + asrs r0, 24 + ldrh r1, [r4, 0x24] + adds r0, r1 + b _080B2CAA +_080B2CA0: + ldrh r3, [r4, 0x2E] + lsls r1, r3, 16 + asrs r1, 24 + ldrh r0, [r4, 0x24] + subs r0, r1 +_080B2CAA: + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x30] + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r4, 0x26] + subs r0, r1 + strh r0, [r4, 0x26] + strh r3, [r4, 0x2E] + adds r0, r2, 0 + subs r0, 0x20 + strh r0, [r4, 0x30] + lsls r0, r3, 16 + cmp r0, 0 + bge _080B2CCA + movs r0, 0 + strh r0, [r4, 0x2E] +_080B2CCA: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080B2CDE + adds r0, r4, 0 + bl DestroyAnimSprite +_080B2CDE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B2C88 + + thumb_func_start sub_80B2CE4 +sub_80B2CE4: @ 80B2CE4 + movs r1, 0 + strh r1, [r0, 0x3A] + movs r1, 0x40 + strh r1, [r0, 0x3C] + ldr r1, _080B2CF4 @ =sub_80B2CF8 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080B2CF4: .4byte sub_80B2CF8 + thumb_func_end sub_80B2CE4 + + thumb_func_start sub_80B2CF8 +sub_80B2CF8: @ 80B2CF8 + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _080B2D0A + cmp r1, 0x1 + beq _080B2D58 + b _080B2D5E +_080B2D0A: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080B2D5E + strh r1, [r3, 0x30] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r2, [r1] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080B2D5E + ldrb r1, [r1] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B2D5E + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080B2D5E +_080B2D58: + adds r0, r3, 0 + bl DestroyAnimSprite +_080B2D5E: + pop {r0} + bx r0 + thumb_func_end sub_80B2CF8 + + thumb_func_start sub_80B2D64 +sub_80B2D64: @ 80B2D64 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r8, r0 + ldrh r4, [r0, 0x20] + ldrh r5, [r0, 0x22] + ldr r6, _080B2E18 @ =gBattleAnimAttacker + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + mov r2, r8 + strh r6, [r2, 0x22] + ldrh r0, [r2, 0x20] + mov r9, r0 + mov r1, r9 + lsls r0, r1, 4 + strh r0, [r2, 0x36] + lsls r0, r6, 4 + strh r0, [r2, 0x38] + lsls r4, 16 + asrs r4, 16 + movs r1, 0x20 + ldrsh r0, [r2, r1] + subs r0, r4, r0 + lsls r0, 4 + movs r1, 0xC + bl __divsi3 + mov r2, r8 + strh r0, [r2, 0x3A] + lsls r5, 16 + asrs r5, 16 + movs r1, 0x22 + ldrsh r0, [r2, r1] + subs r0, r5, r0 + lsls r0, 4 + movs r1, 0xC + bl __divsi3 + mov r2, r8 + strh r0, [r2, 0x3C] + mov r0, r9 + subs r4, r0 + lsls r4, 16 + asrs r4, 16 + subs r5, r6 + lsls r5, 16 + asrs r5, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8075B30 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + mov r0, r8 + movs r1, 0x1 + adds r2, r3, 0 + bl sub_8075A1C + ldr r0, _080B2E1C @ =sub_80B2E20 + mov r2, r8 + str r0, [r2, 0x1C] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B2E18: .4byte gBattleAnimAttacker +_080B2E1C: .4byte sub_80B2E20 + thumb_func_end sub_80B2D64 + + thumb_func_start sub_80B2E20 +sub_80B2E20: @ 80B2E20 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x3C] + ldrh r3, [r2, 0x38] + adds r1, r3 + strh r1, [r2, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r3, r1, 20 + strh r3, [r2, 0x22] + adds r0, 0x2D + lsls r0, 16 + movs r1, 0xA5 + lsls r1, 17 + cmp r0, r1 + bhi _080B2E5A + adds r1, r3, 0 + cmp r1, 0x9D + bgt _080B2E5A + movs r0, 0x2D + negs r0, r0 + cmp r1, r0 + bge _080B2E60 +_080B2E5A: + adds r0, r2, 0 + bl move_anim_8074EE0 +_080B2E60: + pop {r0} + bx r0 + thumb_func_end sub_80B2E20 + + thumb_func_start sub_80B2E64 +sub_80B2E64: @ 80B2E64 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080B2E94 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B2E9C + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B2E98 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + b _080B2EBA + .align 2, 0 +_080B2E94: .4byte gBattleAnimArgs +_080B2E98: .4byte gSprites +_080B2E9C: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B2EC8 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 +_080B2EBA: + strb r0, [r1] + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B2EC8: .4byte gSprites + thumb_func_end sub_80B2E64 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/ghost.s b/asm/ghost.s new file mode 100644 index 000000000..e3665a210 --- /dev/null +++ b/asm/ghost.s @@ -0,0 +1,4055 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B5268 +sub_80B5268: @ 80B5268 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B52C4 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080B52C8 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_8075678 + ldr r0, _080B52CC @ =sub_80B52D0 + str r0, [r4, 0x1C] + movs r0, 0x10 + strh r0, [r4, 0x3A] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r4, 0x3A] + movs r0, 0x52 + bl SetGpuReg + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B52C4: .4byte gBattleAnimArgs +_080B52C8: .4byte gBattleAnimTarget +_080B52CC: .4byte sub_80B52D0 + thumb_func_end sub_80B5268 + + thumb_func_start sub_80B52D0 +sub_80B52D0: @ 80B52D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80B53C0 + adds r0, r4, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080B52F0 + ldr r0, _080B52EC @ =sub_80B5344 + str r0, [r4, 0x1C] + b _080B533A + .align 2, 0 +_080B52EC: .4byte sub_80B5344 +_080B52F0: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080B5328 + cmp r2, 0xC4 + ble _080B533A +_080B5328: + lsls r0, 16 + cmp r0, 0 + ble _080B533A + ldr r0, _080B5340 @ =gUnknown_2037F24 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xBD + bl PlaySE12WithPanning +_080B533A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5340: .4byte gUnknown_2037F24 + thumb_func_end sub_80B52D0 + + thumb_func_start sub_80B5344 +sub_80B5344: @ 80B5344 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_80755E0 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080B538A + cmp r2, 0xC4 + ble _080B5396 +_080B538A: + lsls r0, 16 + cmp r0, 0 + ble _080B5396 + movs r0, 0xBD + bl PlaySE +_080B5396: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B53B4 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B53B0 @ =sub_8074F88 + str r0, [r4, 0x1C] + b _080B53BA + .align 2, 0 +_080B53B0: .4byte sub_8074F88 +_080B53B4: + adds r0, r4, 0 + bl sub_80B53C0 +_080B53BA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B5344 + + thumb_func_start sub_80B53C0 +sub_80B53C0: @ 80B53C0 + push {r4,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x3A] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0xFF + ble _080B53E4 + adds r0, r2, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + ldr r1, _080B53E0 @ =0x010d0000 + cmp r0, r1 + bne _080B544A + movs r0, 0 + b _080B5448 + .align 2, 0 +_080B53E0: .4byte 0x010d0000 +_080B53E4: + ldrh r1, [r4, 0x3C] + adds r3, r1, 0x1 + strh r3, [r4, 0x3C] + movs r0, 0xFF + ands r0, r1 + cmp r0, 0 + bne _080B544A + ldr r1, _080B5408 @ =0xffffff00 + ands r1, r3 + strh r1, [r4, 0x3C] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080B540C + adds r0, r2, 0x1 + b _080B540E + .align 2, 0 +_080B5408: .4byte 0xffffff00 +_080B540C: + subs r0, r2, 0x1 +_080B540E: + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3A] + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B5430 + cmp r0, 0x10 + bne _080B543C +_080B5430: + ldrh r0, [r4, 0x3C] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + eors r0, r1 + strh r0, [r4, 0x3C] +_080B543C: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B544A + movs r0, 0x80 + lsls r0, 1 +_080B5448: + strh r0, [r4, 0x3A] +_080B544A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B53C0 + + thumb_func_start sub_80B5450 +sub_80B5450: @ 80B5450 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r1, _080B546C @ =sub_80B5470 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B546C: .4byte sub_80B5470 + thumb_func_end sub_80B5450 + + thumb_func_start sub_80B5470 +sub_80B5470: @ 80B5470 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x82 + bhi _080B54A4 + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x8 + b _080B54AE +_080B54A4: + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 +_080B54AE: + orrs r1, r0 + strb r1, [r4, 0x5] + ldrh r0, [r4, 0x2E] + adds r0, 0x13 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x50 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3D + bne _080B54E0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B54E0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B5470 + + thumb_func_start sub_80B54E8 +sub_80B54E8: @ 80B54E8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0 + bl GetAnimBankSpriteId + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80758E0 + adds r0, r4, 0 + movs r1, 0x80 + movs r2, 0x80 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, _080B5560 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r1, _080B5564 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0x80 + strh r1, [r0, 0x8] + ldr r1, _080B5568 @ =gBattleAnimArgs + ldrh r1, [r1] + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + movs r1, 0x10 + strh r1, [r0, 0xE] + ldr r1, _080B556C @ =sub_80B5570 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B5560: .4byte gSprites +_080B5564: .4byte gTasks +_080B5568: .4byte gBattleAnimArgs +_080B556C: .4byte sub_80B5570 + thumb_func_end sub_80B54E8 + + thumb_func_start sub_80B5570 +sub_80B5570: @ 80B5570 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B55C0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B55B8 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0xC] + adds r1, 0x1 + strh r1, [r4, 0xC] + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x9 + bne _080B55B8 + ldr r0, _080B55C4 @ =sub_80B55C8 + str r0, [r4] +_080B55B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B55C0: .4byte gTasks +_080B55C4: .4byte sub_80B55C8 + thumb_func_end sub_80B5570 + + thumb_func_start sub_80B55C8 +sub_80B55C8: @ 80B55C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080B55EC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B55F0 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + b _080B5634 + .align 2, 0 +_080B55EC: .4byte gTasks +_080B55F0: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r1, r0, 24 + ldrh r0, [r4, 0x8] + adds r0, 0x8 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + bgt _080B5618 + movs r0, 0x8 + ldrsh r2, [r4, r0] + adds r0, r1, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + b _080B5634 +_080B5618: + adds r0, r1, 0 + bl sub_8075980 + adds r0, r5, 0 + bl DestroyAnimVisualTask + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg +_080B5634: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B55C8 + + thumb_func_start sub_80B563C +sub_80B563C: @ 80B563C + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r5, [r4, 0x20] + ldrh r6, [r4, 0x22] + ldr r0, _080B56D8 @ =gBattleAnimAttacker + mov r8, r0 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + mov r9, r1 + strh r0, [r4, 0x20] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + mov r1, r9 + strh r1, [r4, 0x2E] + ldr r2, _080B56DC @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r4, 0x30] + ldrh r1, [r2, 0x2] + strh r1, [r4, 0x32] + ldrh r1, [r2, 0x4] + strh r1, [r4, 0x34] + ldrh r1, [r4, 0x20] + lsls r1, 4 + strh r1, [r4, 0x36] + lsls r0, 4 + strh r0, [r4, 0x38] + lsls r5, 16 + asrs r5, 16 + movs r1, 0x20 + ldrsh r0, [r4, r1] + subs r5, r0 + lsls r5, 4 + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r1, 1 + adds r0, r5, 0 + str r2, [sp] + bl __divsi3 + strh r0, [r4, 0x3A] + lsls r6, 16 + asrs r6, 16 + movs r1, 0x22 + ldrsh r0, [r4, r1] + subs r6, r0 + lsls r6, 4 + ldr r2, [sp] + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r1, 1 + adds r0, r6, 0 + bl __divsi3 + strh r0, [r4, 0x3C] + ldr r0, _080B56E0 @ =sub_80B56E4 + str r0, [r4, 0x1C] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B56D8: .4byte gBattleAnimAttacker +_080B56DC: .4byte gBattleAnimArgs +_080B56E0: .4byte sub_80B56E4 + thumb_func_end sub_80B563C + + thumb_func_start sub_80B56E4 +sub_80B56E4: @ 80B56E4 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080B572E + cmp r0, 0x1 + bgt _080B56FA + cmp r0, 0 + beq _080B5704 + b _080B57F2 +_080B56FA: + cmp r0, 0x2 + beq _080B5798 + cmp r0, 0x3 + beq _080B57EC + b _080B57F2 +_080B5704: + ldrh r0, [r5, 0x3A] + ldrh r2, [r5, 0x36] + adds r0, r2 + strh r0, [r5, 0x36] + ldrh r1, [r5, 0x3C] + ldrh r2, [r5, 0x38] + adds r1, r2 + strh r1, [r5, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r5, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x30] + subs r0, 0x1 + strh r0, [r5, 0x30] + lsls r0, 16 + cmp r0, 0 + bgt _080B57F2 + b _080B57DE +_080B572E: + ldrh r0, [r5, 0x32] + subs r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + cmp r0, 0 + bgt _080B57F2 + ldr r4, _080B5794 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x30] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x20] + lsls r0, 4 + strh r0, [r5, 0x36] + ldrh r0, [r5, 0x22] + lsls r0, 4 + strh r0, [r5, 0x38] + movs r1, 0x30 + ldrsh r0, [r5, r1] + movs r2, 0x20 + ldrsh r1, [r5, r2] + subs r0, r1 + lsls r0, 4 + movs r2, 0x34 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0x3A] + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r2, 0x22 + ldrsh r1, [r5, r2] + subs r0, r1 + lsls r0, 4 + movs r2, 0x34 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0x3C] + b _080B57DE + .align 2, 0 +_080B5794: .4byte gBattleAnimTarget +_080B5798: + ldrh r0, [r5, 0x3A] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r1, [r5, 0x3C] + ldrh r2, [r5, 0x38] + adds r1, r2 + strh r1, [r5, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r5, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x34] + subs r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + cmp r0, 0 + bgt _080B57F2 + ldr r4, _080B57E8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_080B57DE: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080B57F2 + .align 2, 0 +_080B57E8: .4byte gBattleAnimTarget +_080B57EC: + adds r0, r5, 0 + bl move_anim_8074EE0 +_080B57F2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B56E4 + + thumb_func_start sub_80B57F8 +sub_80B57F8: @ 80B57F8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080B580C @ =sub_80B5810 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B580C: .4byte sub_80B5810 + thumb_func_end sub_80B57F8 + + thumb_func_start sub_80B5810 +sub_80B5810: @ 80B5810 + push {r4-r6,lr} + adds r3, r0, 0 + movs r5, 0 + movs r6, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B58A6 + adds r1, r3, 0 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x4 + ands r0, r2 + adds r4, r1, 0 + cmp r0, 0 + bne _080B583A + movs r0, 0x4 + orrs r0, r2 + strb r0, [r4] +_080B583A: + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080B584A + cmp r0, 0x1 + beq _080B5854 + movs r6, 0x1 + b _080B585E +_080B584A: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0x2 + bne _080B585E + b _080B5862 +_080B5854: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0x4 + bne _080B585E + movs r5, 0x1 +_080B585E: + cmp r5, 0 + beq _080B5894 +_080B5862: + ldrb r2, [r4] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r3, 0x32] + strh r1, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080B58A6 + strh r1, [r3, 0x32] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080B58A6 +_080B5894: + cmp r6, 0 + beq _080B58A0 + adds r0, r3, 0 + bl DestroyAnimSprite + b _080B58A6 +_080B58A0: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] +_080B58A6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B5810 + + thumb_func_start sub_80B58AC +sub_80B58AC: @ 80B58AC + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080B58D8 @ =gTasks + adds r5, r0, r1 + movs r0, 0x1 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + movs r6, 0 + movs r1, 0 + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bge _080B58DC + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080B59B8 + .align 2, 0 +_080B58D8: .4byte gTasks +_080B58DC: + strh r1, [r5, 0xA] + movs r0, 0xF + strh r0, [r5, 0xC] + movs r0, 0x2 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r5, 0xE] + lsls r1, 8 + ldrh r0, [r5, 0xC] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r4, _080B5944 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x50 + strh r1, [r0, 0x2E] + ldr r0, _080B5948 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B5950 + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080B594C @ =0x0000ff70 + strh r1, [r0, 0x30] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x70 + b _080B596E + .align 2, 0 +_080B5944: .4byte gSprites +_080B5948: .4byte gBattleAnimTarget +_080B594C: .4byte 0x0000ff70 +_080B5950: + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x90 + strh r1, [r0, 0x30] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080B59C0 @ =0x0000ff90 +_080B596E: + strh r1, [r0, 0x32] + ldr r4, _080B59C4 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r2, 0 + strh r2, [r0, 0x34] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x36] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080B59C8 @ =SpriteCallbackDummy + bl StoreSpriteCallbackInData6 + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080B59CC @ =sub_8074D00 + str r1, [r0] + ldr r0, _080B59D0 @ =sub_80B59D4 + str r0, [r5] +_080B59B8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B59C0: .4byte 0x0000ff90 +_080B59C4: .4byte gSprites +_080B59C8: .4byte SpriteCallbackDummy +_080B59CC: .4byte sub_8074D00 +_080B59D0: .4byte sub_80B59D4 + thumb_func_end sub_80B58AC + + thumb_func_start sub_80B59D4 +sub_80B59D4: @ 80B59D4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B59F8 @ =gTasks + adds r4, r0, r1 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B5A78 + cmp r0, 0x1 + bgt _080B59FC + cmp r0, 0 + beq _080B5A02 + b _080B5AA4 + .align 2, 0 +_080B59F8: .4byte gTasks +_080B59FC: + cmp r0, 0x2 + beq _080B5A9E + b _080B5AA4 +_080B5A02: + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x3 + ands r0, r1 + strh r0, [r4, 0x12] + cmp r0, 0x1 + bne _080B5A20 + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B5A20 + subs r0, r1, 0x1 + strh r0, [r4, 0xC] +_080B5A20: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + bne _080B5A36 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B5A36 + adds r0, r1, 0x1 + strh r0, [r4, 0xE] +_080B5A36: + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0xC] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r1, [r4, 0xC] + movs r0, 0x80 + lsls r0, 13 + cmp r1, r0 + bne _080B5AA4 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _080B5AA4 + movs r2, 0x8 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B5A74 @ =gSprites + adds r0, r1 + bl obj_delete_but_dont_free_vram + movs r0, 0x1 + strh r0, [r4, 0x10] + b _080B5AA4 + .align 2, 0 +_080B5A74: .4byte gSprites +_080B5A78: + ldrh r0, [r4, 0x14] + adds r0, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B5AA4 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + b _080B5AA4 +_080B5A9E: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B5AA4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B59D4 + + thumb_func_start sub_80B5AAC +sub_80B5AAC: @ 80B5AAC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r2, _080B5ACC @ =gTasks + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x26] + ldr r2, _080B5AD0 @ =sub_80B5AD4 + str r2, [r1] + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080B5ACC: .4byte gTasks +_080B5AD0: .4byte sub_80B5AD4 + thumb_func_end sub_80B5AAC + + thumb_func_start sub_80B5AD4 +sub_80B5AD4: @ 80B5AD4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080B5B0C @ =gTasks + adds r5, r0, r1 + ldr r0, _080B5B10 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080B5B00 + b _080B5D22 +_080B5B00: + lsls r0, 2 + ldr r1, _080B5B14 @ =_080B5B18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B5B0C: .4byte gTasks +_080B5B10: .4byte gBattleAnimTarget +_080B5B14: .4byte _080B5B18 + .align 2, 0 +_080B5B18: + .4byte _080B5B2C + .4byte _080B5C2C + .4byte _080B5C70 + .4byte _080B5CD8 + .4byte _080B5D04 +_080B5B2C: + ldr r7, _080B5B64 @ =0x00002771 + adds r0, r7, 0 + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + mov r8, r2 + strh r0, [r5, 0x24] + cmp r0, 0xFF + beq _080B5B5A + cmp r0, 0xF + beq _080B5B5A + movs r0, 0x1 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bge _080B5B68 + adds r0, r7, 0 + bl FreeSpritePaletteByTag +_080B5B5A: + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080B5D28 + .align 2, 0 +_080B5B64: .4byte 0x00002771 +_080B5B68: + ldr r4, _080B5C14 @ =gSprites + movs r1, 0x8 + ldrsh r0, [r5, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r2, [r5, 0x24] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r2, 0x8 + ldrsh r0, [r5, r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r1, 0x8 + ldrsh r0, [r5, r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldr r0, _080B5C18 @ =gUnknown_2024018 + ldr r1, [r0] + ldr r0, _080B5C1C @ =gBattleAnimTarget + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 31 + adds r2, 0x3E + lsrs r1, 31 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + mov r2, r8 + strh r2, [r5, 0xA] + strh r2, [r5, 0xC] + movs r0, 0x10 + strh r0, [r5, 0xE] + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r0, 4 + strh r0, [r5, 0x10] + cmp r6, 0x1 + bne _080B5C20 + movs r1, 0x80 + lsls r1, 2 + b _080B5C24 + .align 2, 0 +_080B5C14: .4byte gSprites +_080B5C18: .4byte gUnknown_2024018 +_080B5C1C: .4byte gBattleAnimTarget +_080B5C20: + movs r1, 0x80 + lsls r1, 3 +_080B5C24: + movs r0, 0 + bl ClearGpuRegBits + b _080B5D22 +_080B5C2C: + movs r1, 0x24 + ldrsh r0, [r5, r1] + adds r0, 0x10 + lsls r0, 4 + strh r0, [r5, 0x24] + movs r2, 0x10 + ldrsh r0, [r5, r2] + lsls r0, 1 + ldr r1, _080B5C60 @ =gPlttBufferUnfaded + adds r0, r1 + movs r2, 0x24 + ldrsh r1, [r5, r2] + lsls r1, 1 + ldr r2, _080B5C64 @ =gPlttBufferFaded + adds r1, r2 + ldr r2, _080B5C68 @ =0x04000008 + bl CpuSet + ldrh r0, [r5, 0x10] + ldr r3, _080B5C6C @ =0x00003c0d + movs r1, 0x10 + movs r2, 0xA + bl BlendPalette + b _080B5D22 + .align 2, 0 +_080B5C60: .4byte gPlttBufferUnfaded +_080B5C64: .4byte gPlttBufferFaded +_080B5C68: .4byte 0x04000008 +_080B5C6C: .4byte 0x00003c0d +_080B5C70: + ldr r2, _080B5CAC @ =gSprites + movs r0, 0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + subs r1, 0x20 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r1, 0 + bge _080B5C90 + movs r2, 0 +_080B5C90: + cmp r6, 0x1 + bne _080B5CB0 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x4 + str r2, [sp, 0x4] + str r6, [sp, 0x8] + b _080B5CC8 + .align 2, 0 +_080B5CAC: .4byte gSprites +_080B5CB0: + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x8 + str r2, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] +_080B5CC8: + movs r2, 0x2 + movs r3, 0x6 + bl ScanlineEffect_InitWave + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + b _080B5D22 +_080B5CD8: + cmp r6, 0x1 + bne _080B5CEC + ldr r1, _080B5CE8 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + b _080B5CF4 + .align 2, 0 +_080B5CE8: .4byte 0x00003f42 +_080B5CEC: + ldr r1, _080B5D00 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg +_080B5CF4: + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + b _080B5D22 + .align 2, 0 +_080B5D00: .4byte 0x00003f44 +_080B5D04: + cmp r6, 0x1 + bne _080B5D14 + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl SetGpuRegBits + b _080B5D1E +_080B5D14: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl SetGpuRegBits +_080B5D1E: + ldr r0, _080B5D34 @ =sub_80B5D38 + str r0, [r5] +_080B5D22: + ldrh r0, [r5, 0x26] + adds r0, 0x1 + strh r0, [r5, 0x26] +_080B5D28: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5D34: .4byte sub_80B5D38 + thumb_func_end sub_80B5AD4 + + thumb_func_start sub_80B5D38 +sub_80B5D38: @ 80B5D38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B5DC0 @ =gTasks + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x1 + ands r0, r1 + strh r0, [r4, 0x12] + cmp r0, 0 + bne _080B5D70 + ldr r1, _080B5DC4 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + strh r0, [r4, 0xC] +_080B5D70: + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bne _080B5D92 + ldr r1, _080B5DC4 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + movs r1, 0x10 + subs r1, r0 + strh r1, [r4, 0xE] +_080B5D92: + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0xC] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x80 + bne _080B5DBA + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080B5DC8 @ =sub_80B5DCC + str r1, [r4] + adds r0, r5, 0 + bl _call_via_r1 +_080B5DBA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B5DC0: .4byte gTasks +_080B5DC4: .4byte gSineTable +_080B5DC8: .4byte sub_80B5DCC + thumb_func_end sub_80B5D38 + + thumb_func_start sub_80B5DCC +sub_80B5DCC: @ 80B5DCC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B5DFC @ =gTasks + adds r4, r0, r1 + ldr r0, _080B5E00 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B5E38 + cmp r0, 0x1 + bgt _080B5E04 + cmp r0, 0 + beq _080B5E0A + b _080B5EB4 + .align 2, 0 +_080B5DFC: .4byte gTasks +_080B5E00: .4byte gBattleAnimTarget +_080B5E04: + cmp r0, 0x2 + beq _080B5E4C + b _080B5EB4 +_080B5E0A: + ldr r1, _080B5E28 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] + movs r0, 0x1 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + cmp r6, 0x1 + bne _080B5E2C + movs r1, 0x80 + lsls r1, 2 + b _080B5E30 + .align 2, 0 +_080B5E28: .4byte gScanlineEffect +_080B5E2C: + movs r1, 0x80 + lsls r1, 3 +_080B5E30: + movs r0, 0 + bl ClearGpuRegBits + b _080B5EB4 +_080B5E38: + ldrh r0, [r4, 0x10] + ldr r3, _080B5E48 @ =0x00003c0d + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + b _080B5EB4 + .align 2, 0 +_080B5E48: .4byte 0x00003c0d +_080B5E4C: + ldr r3, _080B5E9C @ =gSprites + movs r0, 0x24 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + bl obj_delete_but_dont_free_vram + ldr r0, _080B5EA0 @ =0x00002771 + bl FreeSpritePaletteByTag + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + cmp r6, 0x1 + bne _080B5EA4 + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl SetGpuRegBits + b _080B5EAE + .align 2, 0 +_080B5E9C: .4byte gSprites +_080B5EA0: .4byte 0x00002771 +_080B5EA4: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl SetGpuRegBits +_080B5EAE: + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B5EB4: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B5DCC + + thumb_func_start sub_80B5EC0 +sub_80B5EC0: @ 80B5EC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r7, r0, 0 + ldr r0, _080B5EFC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B5F08 + ldr r4, _080B5F00 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xE0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + ldr r4, _080B5F04 @ =gBattleAnimTarget + b _080B5F2C + .align 2, 0 +_080B5EFC: .4byte gBattleAnimArgs +_080B5F00: .4byte gBattleAnimAttacker +_080B5F04: .4byte gBattleAnimTarget +_080B5F08: + ldr r4, _080B5FD0 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xE0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + ldr r4, _080B5FD4 @ =gBattleAnimAttacker +_080B5F2C: + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r1, 0xE0 + lsls r1, 13 + adds r0, r1 + lsrs r0, 16 + mov r9, r0 + mov r8, r5 + mov r2, r9 + subs r4, r2, r5 + lsls r4, 16 + lsrs r4, 16 + lsls r0, r6, 4 + strh r0, [r7, 0x2E] + lsls r0, r5, 4 + strh r0, [r7, 0x30] + mov r1, r10 + subs r0, r1, r6 + lsls r0, 4 + ldr r5, _080B5FD8 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r7, 0x32] + lsls r4, 16 + asrs r4, 12 + movs r0, 0x2 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl __divsi3 + strh r0, [r7, 0x34] + ldrh r0, [r5, 0x2] + strh r0, [r7, 0x36] + mov r1, r10 + strh r1, [r7, 0x38] + mov r2, r9 + strh r2, [r7, 0x3A] + movs r1, 0x36 + ldrsh r0, [r7, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r7, 0x3C] + ldrb r1, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r7, 0x5] + strh r6, [r7, 0x20] + mov r2, r8 + strh r2, [r7, 0x22] + ldr r0, _080B5FDC @ =sub_80B5FE0 + str r0, [r7, 0x1C] + adds r2, r7, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5FD0: .4byte gBattleAnimTarget +_080B5FD4: .4byte gBattleAnimAttacker +_080B5FD8: .4byte gBattleAnimArgs +_080B5FDC: .4byte sub_80B5FE0 + thumb_func_end sub_80B5EC0 + + thumb_func_start sub_80B5FE0 +sub_80B5FE0: @ 80B5FE0 + push {r4,lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x36] + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080B6018 + ldrh r0, [r2, 0x32] + ldrh r4, [r2, 0x2E] + adds r0, r4 + strh r0, [r2, 0x2E] + ldrh r1, [r2, 0x34] + ldrh r4, [r2, 0x30] + adds r1, r4 + strh r1, [r2, 0x30] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r2, 0x22] + subs r0, r3, 0x1 + strh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080B6018 + strh r0, [r2, 0x2E] +_080B6018: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B5FE0 + + thumb_func_start sub_80B6020 +sub_80B6020: @ 80B6020 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B6170 @ =gTasks + adds r1, r0 + str r1, [sp] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0 + ldr r1, [sp] + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + strh r0, [r1, 0x16] + strh r0, [r1, 0x18] + movs r0, 0x10 + strh r0, [r1, 0x1A] + ldr r2, _080B6174 @ =gBattleAnimArgs + ldrh r0, [r2] + strh r0, [r1, 0x1C] + ldr r4, _080B6178 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8076B2C + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B6090 + b _080B618C +_080B6090: + movs r4, 0 +_080B6092: + lsls r1, r4, 16 + asrs r3, r1, 16 + ldr r0, _080B6178 @ =gBattleAnimAttacker + ldrb r2, [r0] + str r1, [sp, 0x10] + cmp r3, r2 + beq _080B615E + movs r0, 0x2 + eors r2, r0 + cmp r3, r2 + beq _080B615E + lsls r0, r4, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B615E + ldr r6, [sp, 0x4] + ldr r3, [sp, 0x8] + lsls r0, r3, 16 + asrs r7, r0, 16 + ldr r0, _080B617C @ =gUnknown_83E7668 + adds r1, r6, 0 + adds r2, r7, 0 + movs r3, 0x37 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x40 + beq _080B615E + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_8076B2C + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + mov r0, r8 + lsls r5, r0, 4 + add r5, r8 + lsls r5, 2 + ldr r1, _080B6180 @ =gSprites + adds r4, r5, r1 + lsls r0, r6, 4 + strh r0, [r4, 0x2E] + lsls r0, r7, 4 + strh r0, [r4, 0x30] + mov r2, r10 + subs r0, r2, r6 + lsls r0, 4 + ldr r3, _080B6174 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, 0x32] + mov r3, r9 + lsls r0, r3, 16 + asrs r0, 16 + subs r0, r7 + lsls r0, 4 + ldr r2, _080B6174 @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, 0x34] + ldr r1, _080B6174 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x36] + mov r2, r10 + strh r2, [r4, 0x38] + mov r3, r9 + strh r3, [r4, 0x3A] + ldr r0, _080B6184 @ =gSprites + 0x1C + adds r5, r0 + ldr r0, _080B6188 @ =sub_80B5FE0 + str r0, [r5] + ldr r2, [sp] + movs r3, 0x20 + ldrsh r1, [r2, r3] + adds r1, 0xD + lsls r1, 1 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1 + mov r1, r8 + strh r1, [r0] + ldrh r0, [r2, 0x20] + adds r0, 0x1 + strh r0, [r2, 0x20] +_080B615E: + ldr r2, [sp, 0x10] + movs r3, 0x80 + lsls r3, 9 + adds r0, r2, r3 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080B6092 + b _080B6210 + .align 2, 0 +_080B6170: .4byte gTasks +_080B6174: .4byte gBattleAnimArgs +_080B6178: .4byte gBattleAnimAttacker +_080B617C: .4byte gUnknown_83E7668 +_080B6180: .4byte gSprites +_080B6184: .4byte gSprites + 0x1C +_080B6188: .4byte sub_80B5FE0 +_080B618C: + ldr r0, _080B6228 @ =gUnknown_83E7668 + ldr r7, [sp, 0x4] + ldr r2, [sp, 0x8] + lsls r1, r2, 16 + asrs r1, 16 + str r1, [sp, 0xC] + adds r1, r7, 0 + ldr r2, [sp, 0xC] + movs r3, 0x37 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x40 + beq _080B6210 + movs r3, 0x30 + mov r10, r3 + movs r0, 0x28 + mov r9, r0 + ldr r6, _080B622C @ =gSprites + mov r1, r8 + lsls r5, r1, 4 + add r5, r8 + lsls r5, 2 + adds r4, r5, r6 + lsls r0, r7, 4 + strh r0, [r4, 0x2E] + ldr r2, [sp, 0xC] + lsls r0, r2, 4 + strh r0, [r4, 0x30] + subs r0, r3, r7 + lsls r0, 4 + ldr r3, _080B6230 @ =gBattleAnimArgs + movs r2, 0x2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, 0x32] + mov r3, r9 + ldr r1, [sp, 0xC] + subs r0, r3, r1 + lsls r0, 4 + ldr r2, _080B6230 @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, 0x34] + ldr r1, _080B6230 @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x36] + mov r2, r10 + strh r2, [r4, 0x38] + mov r3, r9 + strh r3, [r4, 0x3A] + adds r6, 0x1C + adds r5, r6 + ldr r0, _080B6234 @ =sub_80B5FE0 + str r0, [r5] + mov r1, r8 + ldr r0, [sp] + strh r1, [r0, 0x22] + movs r0, 0x1 + ldr r2, [sp] + strh r0, [r2, 0x20] +_080B6210: + ldr r0, _080B6238 @ =sub_80B623C + ldr r3, [sp] + str r0, [r3] + 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 +_080B6228: .4byte gUnknown_83E7668 +_080B622C: .4byte gSprites +_080B6230: .4byte gBattleAnimArgs +_080B6234: .4byte sub_80B5FE0 +_080B6238: .4byte sub_80B623C + thumb_func_end sub_80B6020 + + thumb_func_start sub_80B623C +sub_80B623C: @ 80B623C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B6260 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080B62F2 + cmp r1, 0x1 + bgt _080B6264 + cmp r1, 0 + beq _080B6272 + b _080B63AE + .align 2, 0 +_080B6260: .4byte gTasks +_080B6264: + cmp r1, 0x2 + bne _080B626A + b _080B6384 +_080B626A: + cmp r1, 0x3 + bne _080B6270 + b _080B6398 +_080B6270: + b _080B63AE +_080B6272: + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B62D8 + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B62D8 + strh r1, [r4, 0x12] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B62A8 + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B62B6 + adds r0, r1, 0x1 + strh r0, [r4, 0x18] + b _080B62B6 +_080B62A8: + ldrh r1, [r4, 0x1A] + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B62B6 + subs r0, r1, 0x1 + strh r0, [r4, 0x1A] +_080B62B6: + ldrh r1, [r4, 0x1A] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0x17 + ble _080B62D8 + movs r0, 0 + strh r0, [r4, 0x16] + movs r0, 0x1 + strh r0, [r4, 0x14] +_080B62D8: + ldrh r1, [r4, 0x1C] + movs r2, 0x1C + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B62E8 + subs r0, r1, 0x1 + strh r0, [r4, 0x1C] + b _080B63AE +_080B62E8: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B63AE + b _080B6390 +_080B62F2: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B63AE + movs r0, 0 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + ands r0, r1 + lsls r0, 16 + cmp r0, 0 + beq _080B6322 + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B6330 + subs r0, r1, 0x1 + strh r0, [r4, 0x18] + b _080B6330 +_080B6322: + ldrh r1, [r4, 0x1A] + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B6330 + adds r0, r1, 0x1 + strh r0, [r4, 0x1A] +_080B6330: + ldrh r1, [r4, 0x1A] + lsls r1, 8 + ldrh r0, [r4, 0x18] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r1, [r4, 0x18] + movs r0, 0x80 + lsls r0, 13 + cmp r1, r0 + bne _080B63AE + movs r5, 0 + b _080B6374 +_080B6350: + adds r1, r5, 0 + adds r1, 0xD + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x8 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B6380 @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080B6374: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r5, r0 + blt _080B6350 + b _080B6390 + .align 2, 0 +_080B6380: .4byte gSprites +_080B6384: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + cmp r0, 0 + ble _080B63AE +_080B6390: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B63AE +_080B6398: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B63AE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B623C + + thumb_func_start sub_80B63B4 +sub_80B63B4: @ 80B63B4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080B6400 @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080B6404 @ =gUnknown_2022986 + strh r1, [r0] + ldr r1, _080B6408 @ =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, _080B640C @ =0x00003f1f + movs r0, 0x4A + bl SetGpuReg + movs r0, 0x50 + movs r1, 0xC8 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0x10 + bl SetGpuReg + ldr r0, _080B6410 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B63FC + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B6414 +_080B63FC: + movs r6, 0x28 + b _080B6416 + .align 2, 0 +_080B6400: .4byte gUnknown_2022984 +_080B6404: .4byte gUnknown_2022986 +_080B6408: .4byte 0x00003f3f +_080B640C: .4byte 0x00003f1f +_080B6410: .4byte gBattleAnimAttacker +_080B6414: + movs r6, 0xC8 +_080B6416: + ldr r1, _080B6454 @ =gUnknown_2022984 + lsls r3, r6, 16 + asrs r2, r3, 16 + lsls r0, r2, 8 + orrs r0, r2 + strh r0, [r1] + ldr r1, _080B6458 @ =gUnknown_2022986 + movs r5, 0x28 + ldr r0, _080B645C @ =0x00002828 + strh r0, [r1] + lsrs r3, 16 + movs r1, 0xF0 + subs r1, r2 + movs r4, 0x48 + ldr r2, _080B6460 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + strh r3, [r0, 0xA] + strh r1, [r0, 0xC] + strh r5, [r0, 0xE] + strh r4, [r0, 0x10] + strh r6, [r0, 0x12] + strh r5, [r0, 0x14] + ldr r1, _080B6464 @ =sub_80B6468 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B6454: .4byte gUnknown_2022984 +_080B6458: .4byte gUnknown_2022986 +_080B645C: .4byte 0x00002828 +_080B6460: .4byte gTasks +_080B6464: .4byte sub_80B6468 + thumb_func_end sub_80B63B4 + + thumb_func_start sub_80B6468 +sub_80B6468: @ 80B6468 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B6588 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0x8] + adds r0, r1, 0x1 + strh r0, [r4, 0x8] + ldrh r5, [r4, 0xA] + ldrh r7, [r4, 0xC] + ldrh r0, [r4, 0xE] + mov r10, r0 + ldrh r2, [r4, 0x10] + str r2, [sp, 0xC] + ldrh r0, [r4, 0x12] + ldrh r2, [r4, 0x14] + mov r8, r2 + lsls r1, 16 + asrs r6, r1, 16 + cmp r6, 0xF + ble _080B64A4 + b _080B6594 +_080B64A4: + lsls r0, 16 + asrs r0, 16 + bl __floatsidf + str r0, [sp, 0x10] + str r1, [sp, 0x14] + lsls r0, r5, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080B658C @ =0x3fb00000 + ldr r3, _080B6590 @ =0x00000000 + bl __muldf3 + adds r5, r1, 0 + adds r4, r0, 0 + adds r0, r6, 0 + bl __floatsidf + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + adds r1, r5, 0 + adds r0, r4, 0 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + bl __subdf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r0, r7, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080B658C @ =0x3fb00000 + ldr r3, _080B6590 @ =0x00000000 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + bl __adddf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r7, r0, 16 + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + bl __floatsidf + adds r5, r1, 0 + adds r4, r0, 0 + mov r2, r10 + lsls r0, r2, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080B658C @ =0x3fb00000 + ldr r3, _080B6590 @ =0x00000000 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + adds r1, r5, 0 + adds r0, r4, 0 + bl __subdf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, [sp, 0xC] + lsls r0, r1, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080B658C @ =0x3fb00000 + ldr r3, _080B6590 @ =0x00000000 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + adds r1, r5, 0 + adds r0, r4, 0 + bl __adddf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r5, r0, 16 + b _080B65C2 + .align 2, 0 +_080B6588: .4byte gTasks +_080B658C: .4byte 0x3fb00000 +_080B6590: .4byte 0x00000000 +_080B6594: + movs r2, 0 + mov r9, r2 + movs r7, 0xF0 + movs r6, 0 + movs r5, 0x70 + str r6, [sp] + str r6, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r3, 0 + bl sub_8075BE8 + lsls r0, 16 + lsrs r0, 16 + str r6, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080B65E4 @ =sub_80B65F0 + str r0, [r4] +_080B65C2: + ldr r1, _080B65E8 @ =gUnknown_2022984 + mov r2, r9 + lsls r0, r2, 8 + orrs r7, r0 + strh r7, [r1] + ldr r1, _080B65EC @ =gUnknown_2022986 + lsls r0, r6, 8 + orrs r5, r0 + strh r5, [r1] + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B65E4: .4byte sub_80B65F0 +_080B65E8: .4byte gUnknown_2022984 +_080B65EC: .4byte gUnknown_2022986 + thumb_func_end sub_80B6468 + + thumb_func_start sub_80B65F0 +sub_80B65F0: @ 80B65F0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080B663C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080B6636 + ldr r0, _080B6640 @ =gUnknown_2022984 + strh r1, [r0] + ldr r0, _080B6644 @ =gUnknown_2022986 + strh r1, [r0] + ldr r4, _080B6648 @ =0x00003f3f + movs r0, 0x48 + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x4A + adds r1, r4, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B6636: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B663C: .4byte gPaletteFade +_080B6640: .4byte gUnknown_2022984 +_080B6644: .4byte gUnknown_2022986 +_080B6648: .4byte 0x00003f3f + thumb_func_end sub_80B65F0 + + thumb_func_start sub_80B664C +sub_80B664C: @ 80B664C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B6678 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B6680 + movs r2, 0x18 + ldr r3, _080B667C @ =0x0000fffe + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r4, 0x3] + b _080B6684 + .align 2, 0 +_080B6678: .4byte gBattleAnimAttacker +_080B667C: .4byte 0x0000fffe +_080B6680: + ldr r2, _080B66A0 @ =0x0000ffe8 + movs r3, 0x2 +_080B6684: + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r3, [r4, 0x30] + movs r0, 0x3C + strh r0, [r4, 0x2E] + ldr r0, _080B66A4 @ =sub_80B66A8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B66A0: .4byte 0x0000ffe8 +_080B66A4: .4byte sub_80B66A8 + thumb_func_end sub_80B664C + + thumb_func_start sub_80B66A8 +sub_80B66A8: @ 80B66A8 + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080B66BA + subs r0, r1, 0x1 + b _080B671E +_080B66BA: + ldrh r0, [r3, 0x30] + ldrh r4, [r3, 0x24] + adds r1, r0, r4 + strh r1, [r3, 0x24] + adds r0, r1, 0x7 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xE + bls _080B6720 + ldrh r0, [r3, 0x20] + adds r0, r1 + strh r0, [r3, 0x20] + movs r0, 0 + strh r0, [r3, 0x24] + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r4, _080B670C @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080B6710 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B671C + movs r0, 0x1E + strh r0, [r3, 0x2E] + ldr r0, _080B6714 @ =sub_8074C44 + str r0, [r3, 0x1C] + ldr r1, _080B6718 @ =sub_80B6728 + adds r0, r3, 0 + bl StoreSpriteCallbackInData6 + b _080B6720 + .align 2, 0 +_080B670C: .4byte 0x000003ff +_080B6710: .4byte 0xfffffc00 +_080B6714: .4byte sub_8074C44 +_080B6718: .4byte sub_80B6728 +_080B671C: + movs r0, 0x28 +_080B671E: + strh r0, [r3, 0x2E] +_080B6720: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B66A8 + + thumb_func_start sub_80B6728 +sub_80B6728: @ 80B6728 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _080B6752 + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + b _080B6796 +_080B6752: + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bgt _080B6762 + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + b _080B6796 +_080B6762: + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + movs r1, 0x10 + subs r1, r0 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080B6796 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B679C @ =sub_80B67A0 + str r0, [r4, 0x1C] +_080B6796: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B679C: .4byte sub_80B67A0 + thumb_func_end sub_80B6728 + + thumb_func_start sub_80B67A0 +sub_80B67A0: @ 80B67A0 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + ldr r0, _080B67CC @ =gUnknown_2022984 + movs r1, 0 + strh r1, [r0] + ldr r0, _080B67D0 @ =gUnknown_2022986 + strh r1, [r0] + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B67CC: .4byte gUnknown_2022984 +_080B67D0: .4byte gUnknown_2022986 + thumb_func_end sub_80B67A0 + + thumb_func_start sub_80B67D4 +sub_80B67D4: @ 80B67D4 + push {r4-r7,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + movs r1, 0xC + bl Sin + strh r0, [r5, 0x24] + ldr r0, _080B683C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B67F8 + ldrh r0, [r5, 0x24] + negs r0, r0 + strh r0, [r5, 0x24] +_080B67F8: + ldrh r0, [r5, 0x2E] + adds r0, 0x6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x2E] + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r5, 0x30] + adds r0, r1 + strh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x3C] + adds r0, 0x1 + strh r0, [r5, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080B6844 + ldr r0, _080B6840 @ =0x0000050b + strh r0, [r5, 0x3A] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r5, 0x3A] + movs r0, 0x52 + bl SetGpuReg + b _080B689C + .align 2, 0 +_080B683C: .4byte gBattleAnimAttacker +_080B6840: .4byte 0x0000050b +_080B6844: + cmp r0, 0x1E + ble _080B689C + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x3A] + lsls r0, r1, 16 + asrs r0, 24 + lsls r0, 16 + movs r6, 0xFF + ands r6, r1 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r7, r0, 16 + cmp r7, 0x10 + bls _080B6868 + movs r7, 0x10 +_080B6868: + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r0, 0 + bge _080B6874 + movs r6, 0 +_080B6874: + lsls r4, r7, 8 + orrs r4, r6 + lsls r1, r4, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + strh r4, [r5, 0x3A] + cmp r7, 0x10 + bne _080B689C + cmp r6, 0 + bne _080B689C + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B68A4 @ =sub_80B68A8 + str r0, [r5, 0x1C] +_080B689C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B68A4: .4byte sub_80B68A8 + thumb_func_end sub_80B67D4 + + thumb_func_start sub_80B68A8 +sub_80B68A8: @ 80B68A8 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B68A8 + + thumb_func_start sub_80B68C8 +sub_80B68C8: @ 80B68C8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080B6960 @ =gTasks + adds r4, r0 + movs r6, 0 + strh r6, [r4, 0x8] + movs r0, 0x10 + mov r8, r0 + mov r0, r8 + strh r0, [r4, 0xA] + ldr r5, _080B6964 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + ldrb r0, [r5] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + asrs r1, 1 + adds r1, 0x8 + strh r1, [r4, 0x1E] + strh r6, [r4, 0x16] + ldrb r0, [r5] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + ldrb r0, [r5] + bl sub_807685C + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x2 + strh r0, [r4, 0x14] + strh r6, [r4, 0xE] + mov r0, r8 + strh r0, [r4, 0x10] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + strh r6, [r4, 0x18] + ldr r0, _080B6968 @ =sub_80B696C + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B6960: .4byte gTasks +_080B6964: .4byte gBattleAnimAttacker +_080B6968: .4byte sub_80B696C + thumb_func_end sub_80B68C8 + + thumb_func_start sub_80B696C +sub_80B696C: @ 80B696C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080B6990 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080B6986 + b _080B6AF2 +_080B6986: + lsls r0, 2 + ldr r1, _080B6994 @ =_080B6998 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B6990: .4byte gTasks +_080B6994: .4byte _080B6998 + .align 2, 0 +_080B6998: + .4byte _080B69B0 + .4byte _080B6A20 + .4byte _080B6A62 + .4byte _080B6A76 + .4byte _080B6ACC + .4byte _080B6ADC +_080B69B0: + movs r6, 0 +_080B69B2: + movs r2, 0x1A + ldrsh r1, [r4, r2] + movs r0, 0x1C + ldrsh r2, [r4, r0] + ldrb r3, [r4, 0x14] + ldr r0, _080B6A14 @ =gUnknown_83E76E0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080B6A06 + ldr r1, _080B6A18 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r1 + strh r7, [r5, 0x2E] + ldr r0, _080B6A1C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _080B69E8 + movs r1, 0x1 +_080B69E8: + strh r1, [r5, 0x30] + movs r0, 0x2A + muls r0, r6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x1E] + strh r0, [r5, 0x34] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 1 + strh r0, [r5, 0x38] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] +_080B6A06: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080B69B2 + b _080B6AD4 + .align 2, 0 +_080B6A14: .4byte gUnknown_83E76E0 +_080B6A18: .4byte gSprites +_080B6A1C: .4byte gBattleAnimAttacker +_080B6A20: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B6A3E + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0xD + bgt _080B6A4C + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080B6A4C +_080B6A3E: + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0x4 + ble _080B6A4C + subs r0, r1, 0x1 + strh r0, [r4, 0x10] +_080B6A4C: + movs r1, 0xE + ldrsh r0, [r4, r1] + ldrh r2, [r4, 0xE] + ldrh r1, [r4, 0x10] + cmp r0, 0xE + bne _080B6ABC + cmp r1, 0x4 + bne _080B6ABC + movs r0, 0 + strh r0, [r4, 0xA] + b _080B6AB6 +_080B6A62: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080B6AF2 + movs r0, 0 + strh r0, [r4, 0xA] + b _080B6AD4 +_080B6A76: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B6A94 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B6AA2 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080B6AA2 +_080B6A94: + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080B6AA2 + adds r0, r1, 0x1 + strh r0, [r4, 0x10] +_080B6AA2: + movs r1, 0xE + ldrsh r0, [r4, r1] + ldrh r2, [r4, 0xE] + ldrh r1, [r4, 0x10] + cmp r0, 0 + bne _080B6ABC + cmp r1, 0x10 + bne _080B6ABC + movs r0, 0x1 + strh r0, [r4, 0x18] +_080B6AB6: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6ABC: + lsls r1, 8 + orrs r1, r2 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + b _080B6AF2 +_080B6ACC: + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B6AF2 +_080B6AD4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B6AF2 +_080B6ADC: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r7, 0 + bl DestroyAnimVisualTask +_080B6AF2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B696C + + thumb_func_start sub_80B6AF8 +sub_80B6AF8: @ 80B6AF8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B6B0A + ldrh r0, [r4, 0x32] + adds r0, 0x2 + b _080B6B0E +_080B6B0A: + ldrh r0, [r4, 0x32] + subs r0, 0x2 +_080B6B0E: + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x32] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7E + bhi _080B6B50 + ldr r2, _080B6B4C @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x12] + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + b _080B6B64 + .align 2, 0 +_080B6B4C: .4byte gTasks +_080B6B50: + ldr r2, _080B6BB8 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x3 + ldrb r1, [r0, 0x12] + ands r1, r2 +_080B6B64: + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsls r0, 3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + movs r1, 0x7 + bl Sin + strh r0, [r4, 0x26] + ldr r2, _080B6BB8 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r0, r2 + movs r2, 0x18 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080B6BB2 + ldrh r0, [r1, 0x16] + subs r0, 0x1 + strh r0, [r1, 0x16] + adds r0, r4, 0 + bl DestroySprite +_080B6BB2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B6BB8: .4byte gTasks + thumb_func_end sub_80B6AF8 + + thumb_func_start sub_80B6BBC +sub_80B6BBC: @ 80B6BBC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r2, _080B6BDC @ =gTasks + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x26] + ldr r2, _080B6BE0 @ =sub_80B6BE4 + str r2, [r1] + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080B6BDC: .4byte gTasks +_080B6BE0: .4byte sub_80B6BE4 + thumb_func_end sub_80B6BBC + + thumb_func_start sub_80B6BE4 +sub_80B6BE4: @ 80B6BE4 + push {r4-r6,lr} + sub sp, 0x1C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B6C18 @ =gTasks + adds r6, r1, r0 + ldr r0, _080B6C1C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r4, r0, 24 + movs r1, 0x26 + ldrsh r0, [r6, r1] + cmp r0, 0x7 + bls _080B6C0C + b _080B6F1E +_080B6C0C: + lsls r0, 2 + ldr r1, _080B6C20 @ =_080B6C24 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B6C18: .4byte gTasks +_080B6C1C: .4byte gBattleAnimAttacker +_080B6C20: .4byte _080B6C24 + .align 2, 0 +_080B6C24: + .4byte _080B6C44 + .4byte _080B6CCC + .4byte _080B6D28 + .4byte _080B6D8C + .4byte _080B6E04 + .4byte _080B6E6C + .4byte _080B6E82 + .4byte _080B6EEC +_080B6C44: + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x2 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0 + strh r0, [r6, 0xA] + strh r0, [r6, 0xC] + movs r0, 0x10 + strh r0, [r6, 0xE] + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x10] + ldr r3, _080B6CC8 @ =gSprites + movs r2, 0x10 + ldrsh r1, [r6, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x5] + lsls r0, 28 + lsrs r0, 30 + strh r0, [r6, 0x12] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r0, 4 + strh r0, [r6, 0x14] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r0, 0x10 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r0, 0x80 + strh r0, [r6, 0x16] + b _080B6F1E + .align 2, 0 +_080B6CC8: .4byte gSprites +_080B6CCC: + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] + movs r5, 0x1 + ands r5, r0 + cmp r5, 0 + beq _080B6CDC + b _080B6F24 +_080B6CDC: + ldrh r0, [r6, 0x14] + ldrb r2, [r6, 0xC] + ldr r4, _080B6D08 @ =0x000066e0 + movs r1, 0x10 + adds r3, r4, 0 + bl BlendPalette + ldrh r0, [r6, 0x16] + ldrb r2, [r6, 0xC] + movs r1, 0x10 + adds r3, r4, 0 + bl BlendPalette + ldrh r1, [r6, 0xC] + movs r2, 0xC + ldrsh r0, [r6, r2] + cmp r0, 0xB + bgt _080B6D0C + adds r0, r1, 0x1 + strh r0, [r6, 0xC] + b _080B6F24 + .align 2, 0 +_080B6D08: .4byte 0x000066e0 +_080B6D0C: + strh r5, [r6, 0xA] + strh r5, [r6, 0xC] + ldr r1, _080B6D24 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + b _080B6F1E + .align 2, 0 +_080B6D24: .4byte 0x00003f44 +_080B6D28: + movs r0, 0x2 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + ldr r0, _080B6D7C @ =gBattle_BG2_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080B6D80 @ =gBattle_BG2_Y + strh r1, [r4] + movs r0, 0x18 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x1A + bl SetGpuReg + add r0, sp, 0xC + movs r1, 0x2 + bl sub_80752C8 + add r0, sp, 0xC + ldrb r0, [r0, 0x9] + ldr r1, _080B6D84 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet + add r2, sp, 0xC + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080B6D88 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette + add r1, sp, 0xC + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080B6F1E + .align 2, 0 +_080B6D7C: .4byte gBattle_BG2_X +_080B6D80: .4byte gBattle_BG2_Y +_080B6D84: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet +_080B6D88: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette +_080B6D8C: + add r0, sp, 0xC + movs r1, 0x2 + bl sub_80752C8 + movs r0, 0x80 + lsls r0, 6 + bl AllocZeroed + adds r1, r0, 0 + ldr r5, _080B6DFC @ =gMonSpritesGfxPtr + ldr r0, [r5] + movs r4, 0xBE + lsls r4, 1 + adds r0, r4 + str r1, [r0] + ldr r0, _080B6E00 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap + bl LZDecompressWram + add r0, sp, 0xC + ldrb r0, [r0, 0x8] + ldr r1, [r5] + adds r1, r4 + ldr r1, [r1] + movs r2, 0x80 + lsls r2, 1 + movs r3, 0 + bl sub_80730C0 + add r0, sp, 0xC + ldrb r0, [r0, 0x9] + ldr r1, [r5] + adds r1, r4 + ldr r1, [r1] + movs r2, 0x20 + str r2, [sp] + str r2, [sp, 0x4] + movs r2, 0x11 + str r2, [sp, 0x8] + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBufferRect_ChangePalette + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + ldr r0, [r5] + adds r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r5] + adds r0, r4 + movs r1, 0 + str r1, [r0] + b _080B6F1E + .align 2, 0 +_080B6DFC: .4byte gMonSpritesGfxPtr +_080B6E00: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap +_080B6E04: + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B6E14 + b _080B6F24 +_080B6E14: + ldrh r1, [r6, 0xC] + adds r1, 0x1 + strh r1, [r6, 0xC] + ldrh r0, [r6, 0xE] + subs r0, 0x1 + strh r0, [r6, 0xE] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0xE + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080B6F24 + strh r0, [r6, 0xA] + strh r0, [r6, 0xC] + movs r0, 0x10 + strh r0, [r6, 0xE] + ldr r1, _080B6E68 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x2 + bl SetAnimBgAttribute + b _080B6F1E + .align 2, 0 +_080B6E68: .4byte 0x00003f42 +_080B6E6C: + cmp r4, 0x1 + bne _080B6E76 + movs r1, 0x80 + lsls r1, 2 + b _080B6E7A +_080B6E76: + movs r1, 0x80 + lsls r1, 3 +_080B6E7A: + movs r0, 0 + bl ClearGpuRegBits + b _080B6F1E +_080B6E82: + ldr r2, _080B6EC0 @ =gSprites + movs r0, 0x10 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + subs r1, 0x20 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r1, 0 + bge _080B6EA2 + movs r2, 0 +_080B6EA2: + cmp r4, 0x1 + bne _080B6EC4 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x4 + str r2, [sp, 0x4] + str r4, [sp, 0x8] + b _080B6EDE + .align 2, 0 +_080B6EC0: .4byte gSprites +_080B6EC4: + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x8 + str r2, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] + movs r2, 0x4 +_080B6EDE: + movs r3, 0x8 + bl ScanlineEffect_InitWave + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x1C] + b _080B6F1E +_080B6EEC: + ldrh r0, [r6, 0x16] + ldr r3, _080B6F08 @ =0x000077ff + movs r1, 0x10 + movs r2, 0xC + bl BlendPalette + cmp r4, 0x1 + bne _080B6F0C + movs r1, 0x80 + lsls r1, 2 + movs r0, 0 + bl SetGpuRegBits + b _080B6F16 + .align 2, 0 +_080B6F08: .4byte 0x000077ff +_080B6F0C: + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + bl SetGpuRegBits +_080B6F16: + ldr r0, _080B6F2C @ =sub_80B6F30 + str r0, [r6] + movs r0, 0 + strh r0, [r6, 0x26] +_080B6F1E: + ldrh r0, [r6, 0x26] + adds r0, 0x1 + strh r0, [r6, 0x26] +_080B6F24: + add sp, 0x1C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B6F2C: .4byte sub_80B6F30 + thumb_func_end sub_80B6BE4 + + thumb_func_start sub_80B6F30 +sub_80B6F30: @ 80B6F30 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B6FB8 @ =gTasks + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x1 + ands r0, r1 + strh r0, [r4, 0x18] + cmp r0, 0 + bne _080B6F68 + ldr r1, _080B6FBC @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + strh r0, [r4, 0xC] +_080B6F68: + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bne _080B6F8A + ldr r1, _080B6FBC @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + movs r1, 0x10 + subs r1, r0 + strh r1, [r4, 0xE] +_080B6F8A: + ldrh r1, [r4, 0xE] + lsls r1, 8 + ldrh r0, [r4, 0xC] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x80 + bne _080B6FB2 + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080B6FC0 @ =sub_80B6FC4 + str r1, [r4] + adds r0, r5, 0 + bl _call_via_r1 +_080B6FB2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6FB8: .4byte gTasks +_080B6FBC: .4byte gSineTable +_080B6FC0: .4byte sub_80B6FC4 + thumb_func_end sub_80B6F30 + + thumb_func_start sub_80B6FC4 +sub_80B6FC4: @ 80B6FC4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080B6FE8 @ =gTasks + adds r6, r0, r1 + movs r1, 0x26 + ldrsh r0, [r6, r1] + cmp r0, 0x5 + bls _080B6FDE + b _080B7148 +_080B6FDE: + lsls r0, 2 + ldr r1, _080B6FEC @ =_080B6FF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B6FE8: .4byte gTasks +_080B6FEC: .4byte _080B6FF0 + .align 2, 0 +_080B6FF0: + .4byte _080B7008 + .4byte _080B7024 + .4byte _080B7044 + .4byte _080B707C + .4byte _080B709C + .4byte _080B70E8 +_080B7008: + ldr r1, _080B701C @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] + ldrh r0, [r6, 0x16] + ldr r3, _080B7020 @ =0x000066e0 + movs r1, 0x10 + movs r2, 0xC + bl BlendPalette + b _080B7148 + .align 2, 0 +_080B701C: .4byte gScanlineEffect +_080B7020: .4byte 0x000066e0 +_080B7024: + ldr r1, _080B7040 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + movs r1, 0 + movs r0, 0x10 + strh r0, [r6, 0xC] + strh r1, [r6, 0xE] + b _080B7148 + .align 2, 0 +_080B7040: .4byte 0x00003f44 +_080B7044: + ldrh r1, [r6, 0xC] + subs r1, 0x1 + strh r1, [r6, 0xC] + ldrh r0, [r6, 0xE] + adds r0, 0x1 + strh r0, [r6, 0xE] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0xE + ldrsh r0, [r6, r2] + cmp r0, 0xF + ble _080B714E + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x2 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x2 + bl SetAnimBgAttribute + b _080B7148 +_080B707C: + movs r0, 0x2 + bl sub_8075358 + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette + movs r0, 0x2 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute + movs r0, 0xC + strh r0, [r6, 0xA] + b _080B7148 +_080B709C: + ldrh r0, [r6, 0x14] + ldrb r2, [r6, 0xA] + ldr r4, _080B70C8 @ =0x000066e0 + movs r1, 0x10 + adds r3, r4, 0 + bl BlendPalette + ldrh r0, [r6, 0x16] + ldrb r2, [r6, 0xA] + movs r1, 0x10 + adds r3, r4, 0 + bl BlendPalette + ldrh r0, [r6, 0xA] + movs r2, 0xA + ldrsh r1, [r6, r2] + cmp r1, 0 + beq _080B70CC + subs r0, 0x1 + strh r0, [r6, 0xA] + b _080B714E + .align 2, 0 +_080B70C8: .4byte 0x000066e0 +_080B70CC: + strh r1, [r6, 0xA] + ldr r1, _080B70E4 @ =0x00003f44 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + b _080B7148 + .align 2, 0 +_080B70E4: .4byte 0x00003f44 +_080B70E8: + ldr r5, _080B7154 @ =gSprites + movs r1, 0x10 + ldrsh r0, [r6, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + movs r0, 0x3 + ldrb r2, [r6, 0x12] + ands r2, r0 + lsls r2, 2 + ldrb r4, [r1, 0x5] + movs r3, 0xD + negs r3, r3 + adds r0, r3, 0 + ands r0, r4 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r2, 0x10 + ldrsh r1, [r6, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + ands r3, r1 + strb r3, [r0, 0x1] + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r7, 0 + bl DestroyAnimVisualTask +_080B7148: + ldrh r0, [r6, 0x26] + adds r0, 0x1 + strh r0, [r6, 0x26] +_080B714E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7154: .4byte gSprites + thumb_func_end sub_80B6FC4 + + thumb_func_start sub_80B7158 +sub_80B7158: @ 80B7158 + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r3] + ldr r2, _080B719C @ =gBattlerSpriteIds + ldr r1, _080B71A0 @ =gBattleAnimAttacker + ldrb r1, [r1] + adds r1, r2 + ldrb r1, [r1] + strh r1, [r0, 0x38] + movs r1, 0x80 + strh r1, [r0, 0x2E] + movs r1, 0xA + strh r1, [r0, 0x30] + ldr r2, _080B71A4 @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x32] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x34] + ldr r1, _080B71A8 @ =sub_80B71B0 + str r1, [r0, 0x1C] + ldr r2, _080B71AC @ =gSprites + movs r3, 0x38 + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080B719C: .4byte gBattlerSpriteIds +_080B71A0: .4byte gBattleAnimAttacker +_080B71A4: .4byte gBattleAnimArgs +_080B71A8: .4byte sub_80B71B0 +_080B71AC: .4byte gSprites + thumb_func_end sub_80B7158 + + thumb_func_start sub_80B71B0 +sub_80B71B0: @ 80B71B0 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + movs r1, 0x34 + ldrsh r3, [r5, r1] + cmp r3, 0 + beq _080B7218 + subs r0, 0x1 + strh r0, [r5, 0x34] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Sin + ldr r4, _080B7210 @ =gSprites + movs r1, 0x38 + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x24] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Cos + movs r1, 0x38 + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x26] + ldrh r0, [r5, 0x32] + ldrh r2, [r5, 0x2E] + adds r1, r0, r2 + strh r1, [r5, 0x2E] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080B724C + ldr r2, _080B7214 @ =0xffffff00 + adds r0, r1, r2 + strh r0, [r5, 0x2E] + b _080B724C + .align 2, 0 +_080B7210: .4byte gSprites +_080B7214: .4byte 0xffffff00 +_080B7218: + ldr r2, _080B7254 @ =gSprites + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x8 + strh r1, [r0, 0x22] + ldr r0, _080B7258 @ =move_anim_8074EE0 + str r0, [r5, 0x1C] +_080B724C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7254: .4byte gSprites +_080B7258: .4byte move_anim_8074EE0 + thumb_func_end sub_80B71B0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/ground.s b/asm/ground.s new file mode 100644 index 000000000..4009c7056 --- /dev/null +++ b/asm/ground.s @@ -0,0 +1,1787 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B8B6C +sub_80B8B6C: @ 80B8B6C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B8BC4 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r5, _080B8BC8 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080B8BCC @ =0x0000ffd8 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldr r0, _080B8BD0 @ =sub_80B8BD4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8BC4: .4byte gBattleAnimAttacker +_080B8BC8: .4byte gBattleAnimTarget +_080B8BCC: .4byte 0x0000ffd8 +_080B8BD0: .4byte sub_80B8BD4 + thumb_func_end sub_80B8B6C + + thumb_func_start sub_80B8BD4 +sub_80B8BD4: @ 80B8BD4 + push {r4,r5,lr} + adds r5, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B8C28 + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + movs r0, 0x14 + strh r0, [r5, 0x2E] + ldr r4, _080B8C30 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + movs r0, 0x28 + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080B8C34 @ =sub_80B8C38 + str r0, [r5, 0x1C] +_080B8C28: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B8C30: .4byte gBattleAnimAttacker +_080B8C34: .4byte sub_80B8C38 + thumb_func_end sub_80B8BD4 + + thumb_func_start sub_80B8C38 +sub_80B8C38: @ 80B8C38 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B8C4C + adds r0, r4, 0 + bl DestroyAnimSprite +_080B8C4C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B8C38 + + thumb_func_start sub_80B8C54 +sub_80B8C54: @ 80B8C54 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080B8CB4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B8C74 + ldr r1, _080B8CB8 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080B8C74: + ldr r4, _080B8CB8 @ =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080B8CBC @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + ldr r0, _080B8CC0 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080B8CC4 @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B8CB4: .4byte gBattleAnimAttacker +_080B8CB8: .4byte gBattleAnimArgs +_080B8CBC: .4byte gBattleAnimTarget +_080B8CC0: .4byte sub_8075590 +_080B8CC4: .4byte DestroyAnimSprite + thumb_func_end sub_80B8C54 + + thumb_func_start sub_80B8CC8 +sub_80B8CC8: @ 80B8CC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r4, _080B8D48 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074844 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074844 + lsls r0, 24 + lsrs r7, r0, 24 + bl Random + movs r4, 0x1F + adds r5, r4, 0 + ands r5, r0 + bl Random + ands r4, r0 + adds r1, r5, 0 + cmp r1, 0x10 + ble _080B8D10 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 +_080B8D10: + lsls r0, r4, 16 + asrs r1, r0, 16 + cmp r1, 0x10 + ble _080B8D20 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_080B8D20: + ldr r0, _080B8D4C @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r6, 0x2E] + mov r1, r8 + adds r0, r1, r5 + strh r0, [r6, 0x32] + adds r0, r7, r4 + strh r0, [r6, 0x36] + ldr r0, _080B8D50 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080B8D54 @ =move_anim_8074EE0 + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8D48: .4byte gBattleAnimTarget +_080B8D4C: .4byte gBattleAnimArgs +_080B8D50: .4byte sub_8075590 +_080B8D54: .4byte move_anim_8074EE0 + thumb_func_end sub_80B8CC8 + + thumb_func_start sub_80B8D58 +sub_80B8D58: @ 80B8D58 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x1 + ldr r3, _080B8DB8 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B8DBC @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r6, _080B8DC0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080B8DCC + ldr r4, _080B8DC4 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x2] + adds r0, r2 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r6, 0x4] + adds r0, r3 + strh r0, [r5, 0x22] + movs r1, 0x2 + ldrsh r0, [r6, r1] + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + ble _080B8DB2 + movs r1, 0x1 +_080B8DB2: + strh r1, [r5, 0x2E] + ldr r0, _080B8DC8 @ =sub_80B8DE8 + b _080B8DDA + .align 2, 0 +_080B8DB8: .4byte 0x000003ff +_080B8DBC: .4byte 0xfffffc00 +_080B8DC0: .4byte gBattleAnimArgs +_080B8DC4: .4byte gBattleAnimAttacker +_080B8DC8: .4byte sub_80B8DE8 +_080B8DCC: + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x20] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x22] + negs r0, r0 + strh r0, [r5, 0x26] + ldr r0, _080B8DE4 @ =sub_80B8E24 +_080B8DDA: + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B8DE4: .4byte sub_80B8E24 + thumb_func_end sub_80B8D58 + + thumb_func_start sub_80B8DE8 +sub_80B8DE8: @ 80B8DE8 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B8E06 + movs r0, 0 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] +_080B8E06: + ldrh r0, [r2, 0x22] + subs r0, 0x4 + strh r0, [r2, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + negs r1, r1 + cmp r0, r1 + bge _080B8E1E + adds r0, r2, 0 + bl DestroyAnimSprite +_080B8E1E: + pop {r0} + bx r0 + thumb_func_end sub_80B8DE8 + + thumb_func_start sub_80B8E24 +sub_80B8E24: @ 80B8E24 + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _080B8E36 + cmp r1, 0x1 + beq _080B8E4C + b _080B8E8E +_080B8E36: + ldrh r0, [r3, 0x26] + adds r0, 0x4 + strh r0, [r3, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _080B8E8E + strh r1, [r3, 0x26] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080B8E8E +_080B8E4C: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + cmp r0, 0 + ble _080B8E8E + movs r0, 0 + strh r0, [r3, 0x30] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r2, [r1] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080B8E8E + adds r0, r3, 0 + bl DestroyAnimSprite +_080B8E8E: + pop {r0} + bx r0 + thumb_func_end sub_80B8E24 + + thumb_func_start sub_80B8E94 +sub_80B8E94: @ 80B8E94 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B8EB4 @ =gTasks + adds r1, r0, r1 + ldr r0, _080B8EB8 @ =gBattleAnimArgs + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080B8EC0 + ldr r0, _080B8EBC @ =sub_80B8ED4 + b _080B8EC2 + .align 2, 0 +_080B8EB4: .4byte gTasks +_080B8EB8: .4byte gBattleAnimArgs +_080B8EBC: .4byte sub_80B8ED4 +_080B8EC0: + ldr r0, _080B8ED0 @ =sub_80B908C +_080B8EC2: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B8ED0: .4byte sub_80B908C + thumb_func_end sub_80B8E94 + + thumb_func_start sub_80B8ED4 +sub_80B8ED4: @ 80B8ED4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B8EF8 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080B8EEE + b _080B9082 +_080B8EEE: + lsls r0, 2 + ldr r1, _080B8EFC @ =_080B8F00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B8EF8: .4byte gTasks +_080B8EFC: .4byte _080B8F00 + .align 2, 0 +_080B8F00: + .4byte _080B8F14 + .4byte _080B8F9C + .4byte _080B8FAC + .4byte _080B9050 + .4byte _080B9064 +_080B8F14: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, _080B8F3C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _080B8F48 + ldr r0, _080B8F40 @ =gBattle_BG1_X + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080B8F44 @ =gBattle_BG1_Y + b _080B8F50 + .align 2, 0 +_080B8F3C: .4byte gBattleAnimAttacker +_080B8F40: .4byte gBattle_BG1_X +_080B8F44: .4byte gBattle_BG1_Y +_080B8F48: + ldr r0, _080B8F8C @ =gBattle_BG2_X + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080B8F90 @ =gBattle_BG2_Y +_080B8F50: + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, _080B8F94 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + cmp r1, 0 + bge _080B8F72 + movs r0, 0 + strh r0, [r4, 0x24] +_080B8F72: + ldr r2, _080B8F98 @ =gSprites + movs r3, 0x1C + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _080B9056 + .align 2, 0 +_080B8F8C: .4byte gBattle_BG2_X +_080B8F90: .4byte gBattle_BG2_Y +_080B8F94: .4byte gBattleAnimAttacker +_080B8F98: .4byte gSprites +_080B8F9C: + ldrb r0, [r4, 0x1E] + movs r2, 0x24 + ldrsh r1, [r4, r2] + movs r3, 0x26 + ldrsh r2, [r4, r3] + bl sub_80B92B8 + b _080B9056 +_080B8FAC: + ldrh r0, [r4, 0xC] + adds r0, 0x6 + movs r1, 0x7F + ands r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B8FCE + movs r0, 0 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] +_080B8FCE: + ldr r1, _080B8FF0 @ =gSineTable + movs r2, 0xC + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + ldrh r3, [r4, 0xE] + adds r2, r0, r3 + strh r2, [r4, 0x12] + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080B8FF8 + ldr r1, _080B8FF4 @ =gBattle_BG1_Y + b _080B8FFA + .align 2, 0 +_080B8FF0: .4byte gSineTable +_080B8FF4: .4byte gBattle_BG1_Y +_080B8FF8: + ldr r1, _080B901C @ =gBattle_BG2_Y +_080B8FFA: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x3F + ble _080B9082 + ldrh r0, [r4, 0x24] + movs r1, 0x78 + subs r2, r1, r0 + strh r2, [r4, 0x12] + movs r3, 0x1E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080B9024 + ldr r1, _080B9020 @ =gBattle_BG1_Y + b _080B9026 + .align 2, 0 +_080B901C: .4byte gBattle_BG2_Y +_080B9020: .4byte gBattle_BG1_Y +_080B9024: + ldr r1, _080B9048 @ =gBattle_BG2_Y +_080B9026: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + ldr r2, _080B904C @ =gSprites + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x20] + movs r3, 0x88 + lsls r3, 1 + adds r0, r3, 0 + subs r0, r2 + strh r0, [r1, 0x24] + b _080B9056 + .align 2, 0 +_080B9048: .4byte gBattle_BG2_Y +_080B904C: .4byte gSprites +_080B9050: + ldr r1, _080B9060 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B9056: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B9082 + .align 2, 0 +_080B9060: .4byte gScanlineEffect +_080B9064: + adds r0, r2, 0 + bl DestroyAnimVisualTask + ldr r2, _080B9088 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080B9082: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9088: .4byte gSprites + thumb_func_end sub_80B8ED4 + + thumb_func_start sub_80B908C +sub_80B908C: @ 80B908C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B90CC @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r3] + movs r4, 0 + strh r4, [r1, 0x24] + strh r4, [r1, 0x26] + ldr r0, _080B90D0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B90D8 + ldr r0, _080B90D4 @ =gBattle_BG1_Y + b _080B90DA + .align 2, 0 +_080B90CC: .4byte gSprites +_080B90D0: .4byte gBattleAnimAttacker +_080B90D4: .4byte gBattle_BG1_Y +_080B90D8: + ldr r0, _080B90E8 @ =gBattle_BG2_Y +_080B90DA: + strh r4, [r0] + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B90E8: .4byte gBattle_BG2_Y + thumb_func_end sub_80B908C + + thumb_func_start sub_80B90EC +sub_80B90EC: @ 80B90EC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B910C @ =gTasks + adds r1, r0, r1 + ldr r0, _080B9110 @ =gBattleAnimArgs + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080B9118 + ldr r0, _080B9114 @ =sub_80B912C + b _080B911A + .align 2, 0 +_080B910C: .4byte gTasks +_080B9110: .4byte gBattleAnimArgs +_080B9114: .4byte sub_80B912C +_080B9118: + ldr r0, _080B9128 @ =sub_80B91B0 +_080B911A: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B9128: .4byte sub_80B91B0 + thumb_func_end sub_80B90EC + + thumb_func_start sub_80B912C +sub_80B912C: @ 80B912C + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B914C @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080B9150 + cmp r5, 0x1 + beq _080B91A4 + b _080B91AA + .align 2, 0 +_080B914C: .4byte gTasks +_080B9150: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r3, _080B91A0 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r5, [r0, 0x24] + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x22] + movs r0, 0xA0 + subs r0, r2 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B91AA + .align 2, 0 +_080B91A0: .4byte gSprites +_080B91A4: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B91AA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B912C + + thumb_func_start sub_80B91B0 +sub_80B91B0: @ 80B91B0 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B91D4 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _080B92B2 + lsls r0, 2 + ldr r1, _080B91D8 @ =_080B91DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B91D4: .4byte gTasks +_080B91D8: .4byte _080B91DC + .align 2, 0 +_080B91DC: + .4byte _080B91F0 + .4byte _080B9244 + .4byte _080B9252 + .4byte _080B926C + .4byte _080B92AC +_080B91F0: + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, _080B9214 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _080B921C + ldr r0, _080B9218 @ =gBattle_BG1_X + b _080B921E + .align 2, 0 +_080B9214: .4byte gBattleAnimAttacker +_080B9218: .4byte gBattle_BG1_X +_080B921C: + ldr r0, _080B923C @ =gBattle_BG2_X +_080B921E: + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080B9240 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + b _080B929A + .align 2, 0 +_080B923C: .4byte gBattle_BG2_X +_080B9240: .4byte gBattleAnimAttacker +_080B9244: + ldrb r0, [r4, 0x1E] + movs r1, 0x26 + ldrsh r2, [r4, r1] + movs r1, 0 + bl sub_80B92B8 + b _080B929A +_080B9252: + ldr r2, _080B9268 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x60 + strh r1, [r0, 0x26] + b _080B929A + .align 2, 0 +_080B9268: .4byte gSprites +_080B926C: + ldr r2, _080B92A4 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x8 + strh r1, [r0, 0x26] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x26 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B92B2 + ldr r1, _080B92A8 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B929A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B92B2 + .align 2, 0 +_080B92A4: .4byte gSprites +_080B92A8: .4byte gScanlineEffect +_080B92AC: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B92B2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B91B0 + + thumb_func_start sub_80B92B8 +sub_80B92B8: @ 80B92B8 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + cmp r0, 0x1 + bne _080B92DC + ldr r0, _080B92D4 @ =gBattle_BG1_X + ldrh r3, [r0] + ldr r0, _080B92D8 @ =0x04000014 + b _080B92E2 + .align 2, 0 +_080B92D4: .4byte gBattle_BG1_X +_080B92D8: .4byte 0x04000014 +_080B92DC: + ldr r0, _080B9368 @ =gBattle_BG2_X + ldrh r3, [r0] + ldr r0, _080B936C @ =0x04000018 +_080B92E2: + str r0, [sp] + lsls r0, r1, 16 + cmp r0, 0 + bge _080B92EC + movs r1, 0 +_080B92EC: + lsls r2, r1, 16 + lsls r0, r4, 16 + asrs r4, r0, 16 + cmp r2, r0 + bge _080B9318 + ldr r5, _080B9370 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080B92FE: + asrs r2, 16 + lsls r1, r2, 1 + adds r0, r1, r5 + strh r3, [r0] + adds r1, r6 + strh r3, [r1] + adds r2, 0x1 + lsls r2, 16 + lsrs r1, r2, 16 + lsls r2, r1, 16 + asrs r0, r2, 16 + cmp r0, r4 + blt _080B92FE +_080B9318: + lsls r1, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080B9346 + ldr r4, _080B9370 @ =gScanlineEffectRegBuffers + lsls r0, r3, 16 + asrs r0, 16 + adds r3, r0, 0 + adds r3, 0xF0 + movs r0, 0xF0 + lsls r0, 3 + adds r5, r4, r0 +_080B9330: + asrs r2, r1, 16 + lsls r1, r2, 1 + adds r0, r1, r4 + strh r3, [r0] + adds r1, r5 + strh r3, [r1] + adds r2, 0x1 + lsls r1, r2, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080B9330 +_080B9346: + ldr r0, _080B9374 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9368: .4byte gBattle_BG2_X +_080B936C: .4byte 0x04000018 +_080B9370: .4byte gScanlineEffectRegBuffers +_080B9374: .4byte 0xa2600001 + thumb_func_end sub_80B92B8 + + thumb_func_start sub_80B9378 +sub_80B9378: @ 80B9378 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080B938C @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r7, r0, 0 + cmp r1, 0 + bne _080B9394 + ldr r0, _080B9390 @ =gBattleAnimAttacker + b _080B9396 + .align 2, 0 +_080B938C: .4byte gBattleAnimArgs +_080B9390: .4byte gBattleAnimAttacker +_080B9394: + ldr r0, _080B93F8 @ =gBattleAnimTarget +_080B9396: + ldrb r4, [r0] + movs r6, 0x18 + adds r1, r7, 0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _080B93B2 + negs r0, r6 + lsls r0, 16 + lsrs r6, r0, 16 + movs r2, 0x4 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x4] +_080B93B2: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x20] + adds r0, r4, 0 + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1E + strh r0, [r5, 0x22] + ldrh r1, [r7, 0xA] + strh r1, [r5, 0x2E] + ldrh r1, [r7, 0x4] + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x32] + ldrh r1, [r7, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r7, 0x8] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080B93FC @ =sub_80B9400 + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B93F8: .4byte gBattleAnimTarget +_080B93FC: .4byte sub_80B9400 + thumb_func_end sub_80B9378 + + thumb_func_start sub_80B9400 +sub_80B9400: @ 80B9400 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B9414 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B9414: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B9400 + + thumb_func_start sub_80B941C +sub_80B941C: @ 80B941C + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080B9430 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B9438 + ldr r0, _080B9434 @ =gBattleAnimAttacker + b _080B943A + .align 2, 0 +_080B9430: .4byte gBattleAnimArgs +_080B9434: .4byte gBattleAnimAttacker +_080B9438: + ldr r0, _080B9498 @ =gBattleAnimTarget +_080B943A: + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B949C @ =0x0000fff0 + adds r0, r2 + ldr r4, _080B94A0 @ =gBattleAnimArgs + movs r3, 0x2 + ldrsh r1, [r4, r3] + lsls r1, 5 + adds r0, r1 + strh r0, [r6, 0x20] + adds r0, r5, 0 + bl sub_807492C + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r6, 0x22] + ldrh r2, [r6, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x2 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r1, r0 + ldr r3, _080B94A4 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B94A8 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r6, 0x4] + ldr r1, _080B94AC @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x2E] + ldr r0, _080B94B0 @ =sub_8074C44 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9498: .4byte gBattleAnimTarget +_080B949C: .4byte 0x0000fff0 +_080B94A0: .4byte gBattleAnimArgs +_080B94A4: .4byte 0x000003ff +_080B94A8: .4byte 0xfffffc00 +_080B94AC: .4byte DestroyAnimSprite +_080B94B0: .4byte sub_8074C44 + thumb_func_end sub_80B941C + + thumb_func_start sub_80B94B4 +sub_80B94B4: @ 80B94B4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B94D8 @ =gTasks + adds r4, r0, r1 + ldr r0, _080B94DC @ =gBattleAnimArgs + ldrh r2, [r0, 0x2] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r6, r0, 0 + cmp r1, 0 + beq _080B94E0 + adds r0, r2, 0x3 + b _080B94EC + .align 2, 0 +_080B94D8: .4byte gTasks +_080B94DC: .4byte gBattleAnimArgs +_080B94E0: + ldr r0, _080B950C @ =gUnknown_2037EEC + ldrh r0, [r0] + movs r1, 0xA + bl __udivsi3 + adds r0, 0x3 +_080B94EC: + strh r0, [r4, 0x26] + strh r0, [r4, 0x24] + adds r1, r6, 0 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0xE] + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + beq _080B9518 + cmp r0, 0x5 + bne _080B9558 + ldr r0, _080B9510 @ =gBattle_BG3_X + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, _080B9514 @ =sub_80B9584 + b _080B9576 + .align 2, 0 +_080B950C: .4byte gUnknown_2037EEC +_080B9510: .4byte gBattle_BG3_X +_080B9514: .4byte sub_80B9584 +_080B9518: + movs r0, 0 + strh r0, [r4, 0x22] + movs r5, 0 +_080B951E: + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B9548 + movs r3, 0x22 + ldrsh r0, [r4, r3] + adds r0, 0x9 + lsls r0, 1 + adds r1, r4, 0 + adds r1, 0x8 + adds r1, r0 + ldr r0, _080B9554 @ =gBattlerSpriteIds + adds r0, r5, r0 + ldrb r0, [r0] + strh r0, [r1] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_080B9548: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080B951E + b _080B9574 + .align 2, 0 +_080B9554: .4byte gBattlerSpriteIds +_080B9558: + ldrb r0, [r6] + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + cmp r0, 0xFF + bne _080B9570 + adds r0, r5, 0 + bl DestroyAnimVisualTask + b _080B9578 +_080B9570: + movs r0, 0x1 + strh r0, [r4, 0x22] +_080B9574: + ldr r0, _080B9580 @ =sub_80B967C +_080B9576: + str r0, [r4] +_080B9578: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9580: .4byte sub_80B967C + thumb_func_end sub_80B94B4 + + thumb_func_start sub_80B9584 +sub_80B9584: @ 80B9584 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B95A8 @ =gTasks + adds r3, r0, r1 + movs r0, 0x8 + ldrsh r1, [r3, r0] + cmp r1, 0x1 + beq _080B9608 + cmp r1, 0x1 + bgt _080B95AC + cmp r1, 0 + beq _080B95B2 + b _080B9674 + .align 2, 0 +_080B95A8: .4byte gTasks +_080B95AC: + cmp r1, 0x2 + beq _080B9668 + b _080B9674 +_080B95B2: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B9674 + strh r1, [r3, 0xA] + ldrh r1, [r3, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080B95DC + ldr r1, _080B95D8 @ =gBattle_BG3_X + ldrh r0, [r3, 0x26] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _080B95E6 + .align 2, 0 +_080B95D8: .4byte gBattle_BG3_X +_080B95DC: + ldr r0, _080B9604 @ =gBattle_BG3_X + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x26] + subs r1, r2 + strh r1, [r0] +_080B95E6: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r3, r2] + cmp r0, r1 + bne _080B9674 + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + b _080B965C + .align 2, 0 +_080B9604: .4byte gBattle_BG3_X +_080B9608: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B9674 + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r0, [r3, 0xC] + ands r1, r0 + cmp r1, 0 + bne _080B9634 + ldr r1, _080B9630 @ =gBattle_BG3_X + ldrh r0, [r3, 0x24] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _080B963E + .align 2, 0 +_080B9630: .4byte gBattle_BG3_X +_080B9634: + ldr r0, _080B9664 @ =gBattle_BG3_X + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x24] + subs r1, r2 + strh r1, [r0] +_080B963E: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080B9674 + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080B9674 +_080B965C: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080B9674 + .align 2, 0 +_080B9664: .4byte gBattle_BG3_X +_080B9668: + ldr r1, _080B9678 @ =gBattle_BG3_X + ldrh r0, [r3, 0x22] + strh r0, [r1] + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B9674: + pop {r0} + bx r0 + .align 2, 0 +_080B9678: .4byte gBattle_BG3_X + thumb_func_end sub_80B9584 + + thumb_func_start sub_80B967C +sub_80B967C: @ 80B967C + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080B96A0 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080B96DC + cmp r5, 0x1 + bgt _080B96A4 + cmp r5, 0 + beq _080B96AA + b _080B9756 + .align 2, 0 +_080B96A0: .4byte gTasks +_080B96A4: + cmp r5, 0x2 + beq _080B9718 + b _080B9756 +_080B96AA: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B9756 + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_80B9760 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080B9756 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + b _080B9710 +_080B96DC: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B9756 + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_80B9760 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080B9756 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080B9756 +_080B9710: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B9756 +_080B9718: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r4, r7] + cmp r2, r0 + bge _080B9750 + ldr r0, _080B975C @ =gSprites + mov r12, r0 + adds r5, r4, 0 + adds r5, 0x8 + movs r6, 0 +_080B972C: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r12 + strh r6, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _080B972C +_080B9750: + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080B9756: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B975C: .4byte gSprites + thumb_func_end sub_80B967C + + thumb_func_start sub_80B9760 +sub_80B9760: @ 80B9760 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0xC] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080B9788 + movs r0, 0x24 + ldrsh r1, [r3, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r2, [r3, 0x24] + adds r0, r4, 0 + ands r0, r2 + adds r1, r0 + lsls r1, 16 + lsrs r4, r1, 16 + b _080B9798 +_080B9788: + movs r1, 0x24 + ldrsh r0, [r3, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 +_080B9798: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r3, r7] + cmp r2, r0 + bge _080B97CC + ldr r6, _080B97D4 @ =gSprites + adds r5, r3, 0 + adds r5, 0x8 +_080B97A8: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r4, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r3, r1] + cmp r2, r0 + blt _080B97A8 +_080B97CC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B97D4: .4byte gSprites + thumb_func_end sub_80B9760 + + thumb_func_start sub_80B97D8 +sub_80B97D8: @ 80B97D8 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, _080B97F8 @ =gBattleAnimArgs + movs r2, 0 + ldr r0, _080B97FC @ =gUnknown_2037EEC + ldrh r0, [r0] + cmp r0, 0x63 + bls _080B97EC + movs r2, 0x1 +_080B97EC: + strh r2, [r3, 0x1E] + adds r0, r1, 0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080B97F8: .4byte gBattleAnimArgs +_080B97FC: .4byte gUnknown_2037EEC + thumb_func_end sub_80B97D8 + + thumb_func_start sub_80B9800 +sub_80B9800: @ 80B9800 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _080B9818 @ =gBattleAnimArgs + ldrh r1, [r2] + movs r0, 0x1 + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + beq _080B9820 + ldr r0, _080B981C @ =gBattleAnimTarget + b _080B9822 + .align 2, 0 +_080B9818: .4byte gBattleAnimArgs +_080B981C: .4byte gBattleAnimTarget +_080B9820: + ldr r0, _080B9890 @ =gBattleAnimAttacker +_080B9822: + ldrb r0, [r0] + adds r5, r0, 0 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + ble _080B9832 + movs r0, 0x2 + eors r5, r0 +_080B9832: + ldr r0, _080B9894 @ =sub_80B98A8 + ldrb r1, [r6, 0x2] + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080B9898 @ =gTasks + adds r4, r0 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x20 + subs r1, r0 + ldr r2, _080B989C @ =0x000001ff + adds r0, r2, 0 + ands r1, r0 + strh r1, [r4, 0xA] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x40 + subs r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0xC] + ldr r2, _080B98A0 @ =gBattle_BG3_X + ldrh r0, [r4, 0xA] + strh r0, [r2] + ldr r0, _080B98A4 @ =gBattle_BG3_Y + strh r1, [r0] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0xE] + adds r0, r7, 0 + bl DestroyAnimVisualTask + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9890: .4byte gBattleAnimAttacker +_080B9894: .4byte sub_80B98A8 +_080B9898: .4byte gTasks +_080B989C: .4byte 0x000001ff +_080B98A0: .4byte gBattle_BG3_X +_080B98A4: .4byte gBattle_BG3_Y + thumb_func_end sub_80B9800 + + thumb_func_start sub_80B98A8 +sub_80B98A8: @ 80B98A8 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080B98D8 @ =gTasks + adds r2, r0, r1 + ldr r0, _080B98DC @ =gBattleAnimArgs + movs r4, 0xE + ldrsh r1, [r0, r4] + movs r4, 0xE + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _080B98E8 + ldr r0, _080B98E0 @ =gBattle_BG3_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080B98E4 @ =gBattle_BG3_Y + strh r1, [r0] + adds r0, r3, 0 + bl DestroyTask + b _080B98F4 + .align 2, 0 +_080B98D8: .4byte gTasks +_080B98DC: .4byte gBattleAnimArgs +_080B98E0: .4byte gBattle_BG3_X +_080B98E4: .4byte gBattle_BG3_Y +_080B98E8: + ldr r1, _080B98FC @ =gBattle_BG3_X + ldrh r0, [r2, 0xA] + strh r0, [r1] + ldr r1, _080B9900 @ =gBattle_BG3_Y + ldrh r0, [r2, 0xC] + strh r0, [r1] +_080B98F4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B98FC: .4byte gBattle_BG3_X +_080B9900: .4byte gBattle_BG3_Y + thumb_func_end sub_80B98A8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index 147bc65c0..97bf9ef64 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -508,7 +508,7 @@ _080F21B2: bl memcpy movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _080F2214 @ =gUnknown_8419F54 movs r0, 0 str r0, [sp] @@ -521,7 +521,7 @@ _080F21B2: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -692,7 +692,7 @@ _080F22F2: ldr r3, _080F238C @ =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 24 lsrs r0, 24 ldr r3, _080F2390 @ =gSprites @@ -723,7 +723,7 @@ _080F22F2: strh r0, [r1] movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame adds r4, r5 ldr r0, _080F239C @ =sub_80F23A0 str r0, [r4] @@ -1172,7 +1172,7 @@ sub_80F26D4: @ 80F26D4 ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 movs r1, 0x6 @@ -1182,7 +1182,7 @@ sub_80F26D4: @ 80F26D4 movs r1, 0x1 movs r2, 0x78 movs r3, 0x48 - bl sub_810C2A4 + bl CreateTrainerPicSprite ldr r1, _080F2750 @ =gTasks lsls r4, r5, 2 adds r4, r5 @@ -1194,7 +1194,7 @@ sub_80F26D4: @ 80F26D4 ldr r1, _080F2758 @ =0x0000021d movs r0, 0x1 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x78 strh r0, [r4, 0xE] ldr r0, _080F275C @ =Task_Hof_WaitAndPrintPlayerInfo @@ -1265,7 +1265,7 @@ _080F27AC: bl sub_80F33DC movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _080F27FC @ =gUnknown_84160C8 str r5, [sp] movs r0, 0x2 @@ -1277,7 +1277,7 @@ _080F27AC: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -1383,7 +1383,7 @@ _080F28AC: ldrb r0, [r4] cmp r0, 0xFF beq _080F28B6 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite _080F28B6: adds r4, 0x2 subs r5, 0x1 @@ -1394,7 +1394,7 @@ _080F28B6: lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x10] - bl sub_810C2E8 + bl FreeAndDestroyTrainerPicSprite movs r0, 0 bl HideBg movs r0, 0x1 @@ -1459,8 +1459,8 @@ sub_80F2934: @ 80F2934 movs r1, 0x9 movs r3, 0xB bl Overworld_SetWarpDestination - bl sub_807E438 - bl sub_80559E4 + bl DoWarp + bl ResetInitialPlayerAvatarState add sp, 0x4 pop {r0} bx r0 @@ -1607,7 +1607,7 @@ sub_80F2AA4: @ 80F2AA4 movs r1, 0x1E movs r2, 0 movs r3, 0xC - bl sub_810F558 + bl CreateWindow_SnapRight_StdPal movs r0, 0x3 bl Save_LoadGameData lsls r0, 24 @@ -1825,7 +1825,7 @@ _080F2C4C: ldr r3, _080F2CA0 @ =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r0, 16 ldr r2, _080F2CA4 @ =gSprites @@ -1888,13 +1888,13 @@ _080F2CB4: ldrsh r0, [r4, r1] cmp r0, 0 bgt _080F2D24 - ldr r1, _080F2D20 @ =gUnknown_8415D78 + ldr r1, _080F2D20 @ =gText_UPDOWNPick_ABUTTONBBUTTONCancel movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0 movs r3, 0 - bl sub_810F650 + bl Menu_PrintHelpSystemUIHeader b _080F2D34 .align 2, 0 _080F2D08: .4byte 0xffff0000 @@ -1903,15 +1903,15 @@ _080F2D10: .4byte gStringVar1 _080F2D14: .4byte gTasks _080F2D18: .4byte gStringVar4 _080F2D1C: .4byte gUnknown_84160B4 -_080F2D20: .4byte gUnknown_8415D78 +_080F2D20: .4byte gText_UPDOWNPick_ABUTTONBBUTTONCancel _080F2D24: - ldr r1, _080F2D54 @ =gUnknown_8415D60 + ldr r1, _080F2D54 @ =gText_UPDOWNPick_ABUTTONNext_BBUTTONBack movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0 movs r3, 0 - bl sub_810F650 + bl Menu_PrintHelpSystemUIHeader _080F2D34: ldr r0, _080F2D58 @ =gTasks ldr r1, [sp, 0x14] @@ -1929,7 +1929,7 @@ _080F2D34: pop {r0} bx r0 .align 2, 0 -_080F2D54: .4byte gUnknown_8415D60 +_080F2D54: .4byte gText_UPDOWNPick_ABUTTONNext_BBUTTONBack _080F2D58: .4byte gTasks _080F2D5C: .4byte Task_HofPC_PrintMonInfo thumb_func_end sub_80F2B6C @@ -2118,7 +2118,7 @@ _080F2EC4: ldrb r0, [r0] cmp r0, 0xFF beq _080F2ED6 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite _080F2ED6: adds r0, r4, 0x1 lsls r0, 16 @@ -2339,13 +2339,13 @@ sub_80F30A4: @ 80F30A4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _080F30FC @ =gUnknown_8415D8C + ldr r0, _080F30FC @ =gText_ABUTTONExit movs r1, 0x8 movs r2, 0x1 - bl sub_810F5E8 + bl PrintTextOnRightSnappedWindow movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _080F3100 @ =gUnknown_8416090 movs r0, 0 str r0, [sp] @@ -2358,7 +2358,7 @@ sub_80F30A4: @ 80F30A4 movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -2374,7 +2374,7 @@ sub_80F30A4: @ 80F30A4 pop {r0} bx r0 .align 2, 0 -_080F30FC: .4byte gUnknown_8415D8C +_080F30FC: .4byte gText_ABUTTONExit _080F3100: .4byte gUnknown_8416090 _080F3104: .4byte gTasks _080F3108: .4byte Task_HofPC_ExitOnButtonPress @@ -2436,7 +2436,7 @@ HallOfFame_PrintWelcomeText: @ 80F313C movs r1, 0x2 adds r2, r4, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -2535,7 +2535,7 @@ _080F322E: movs r1, 0x2 movs r2, 0x10 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _080F3252: movs r2, 0 ldrb r0, [r7, 0xA] @@ -2606,7 +2606,7 @@ _080F32C4: movs r0, 0 movs r1, 0x2 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldrh r2, [r7, 0x8] ldr r4, _080F3320 @ =0x000001ff adds r0, r4, 0 @@ -2676,7 +2676,7 @@ _080F3348: movs r1, 0x2 movs r2, 0x80 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, _080F33D4 @ =gUnknown_84160F4 add r0, sp, 0xC bl StringCopy @@ -2694,7 +2694,7 @@ _080F3348: movs r1, 0x2 movs r2, 0x20 movs r3, 0x11 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, _080F33D8 @ =gUnknown_8416104 add r0, sp, 0xC bl StringCopy @@ -2711,7 +2711,7 @@ _080F3348: movs r1, 0x2 movs r2, 0x60 movs r3, 0x11 - bl box_print + bl AddTextPrinterParameterized3 _080F33BA: movs r0, 0 movs r1, 0x3 @@ -2764,7 +2764,7 @@ sub_80F33DC: @ 80F33DC movs r1, 0x2 movs r2, 0x4 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r0, _080F35FC @ =gSaveBlock2Ptr mov r10, r0 ldr r1, [r0] @@ -2785,7 +2785,7 @@ sub_80F33DC: @ 80F33DC movs r0, 0x1 movs r1, 0x2 movs r3, 0x3 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r10 ldr r0, [r1] ldrb r4, [r0, 0xA] @@ -2801,7 +2801,7 @@ sub_80F33DC: @ 80F33DC movs r1, 0x2 movs r2, 0x4 movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 add r1, sp, 0x14 mov r8, r1 ldr r1, _080F3604 @ =0x000186a0 @@ -2869,7 +2869,7 @@ sub_80F33DC: @ 80F33DC movs r1, 0x2 adds r2, r6, 0 movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r9 str r1, [sp] str r7, [sp, 0x4] @@ -2879,7 +2879,7 @@ sub_80F33DC: @ 80F33DC movs r1, 0x2 movs r2, 0x4 movs r3, 0x20 - bl box_print + bl AddTextPrinterParameterized3 add r5, sp, 0x14 mov r0, r10 ldr r4, [r0] @@ -2957,7 +2957,7 @@ _080F3582: movs r0, 0x1 movs r1, 0x2 movs r3, 0x20 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram @@ -3070,11 +3070,11 @@ _080F36B8: .4byte gUnknown_840C39C thumb_func_start sub_80F36BC sub_80F36BC: @ 80F36BC push {lr} - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData bl reset_temp_tile_data_buffers - bl dp13_810BB8C + bl ResetAllPicSprites bl FreeAllSpritePalettes ldr r1, _080F36EC @ =gReservedSpritePaletteCount movs r0, 0x8 @@ -3223,8 +3223,8 @@ _080F37C8: bl CopyBgTilemapBufferToVram b _080F3854 _080F381E: - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 b _080F3854 _080F3828: movs r1, 0x82 @@ -3353,7 +3353,7 @@ _080F38EE: movs r1, 0x3 ands r0, r1 adds r0, 0x8 - ldr r1, _080F392C @ =gUnknown_825E074 + ldr r1, _080F392C @ =gSineTable lsls r4, 1 adds r4, r1 movs r2, 0 @@ -3373,7 +3373,7 @@ _080F3926: pop {r0} bx r0 .align 2, 0 -_080F392C: .4byte gUnknown_825E074 +_080F392C: .4byte gSineTable thumb_func_end sub_80F38D8 thumb_func_start sub_80F3930 diff --git a/asm/heal_location.s b/asm/heal_location.s deleted file mode 100644 index 34eb1461b..000000000 --- a/asm/heal_location.s +++ /dev/null @@ -1,254 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GetHealLocationIndexFromMapGroupAndNum -GetHealLocationIndexFromMapGroupAndNum: @ 80BFC50 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0 - ldr r2, _080BFC74 @ =gUnknown_83EEBF8 -_080BFC5E: - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, r4 - bne _080BFC78 - movs r0, 0x1 - ldrsb r0, [r2, r0] - cmp r0, r1 - bne _080BFC78 - adds r0, r3, 0x1 - b _080BFC82 - .align 2, 0 -_080BFC74: .4byte gUnknown_83EEBF8 -_080BFC78: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, 0x13 - bls _080BFC5E - movs r0, 0 -_080BFC82: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetHealLocationIndexFromMapGroupAndNum - - thumb_func_start GetHealLocationPointerFromMapGroupAndNum -GetHealLocationPointerFromMapGroupAndNum: @ 80BFC88 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - bl GetHealLocationIndexFromMapGroupAndNum - cmp r0, 0 - beq _080BFCA8 - lsls r0, 3 - ldr r1, _080BFCA4 @ =gUnknown_83EEBF0 - adds r0, r1 - b _080BFCAA - .align 2, 0 -_080BFCA4: .4byte gUnknown_83EEBF0 -_080BFCA8: - movs r0, 0 -_080BFCAA: - pop {r1} - bx r1 - thumb_func_end GetHealLocationPointerFromMapGroupAndNum - - thumb_func_start GetHealLocationPointer -GetHealLocationPointer: @ 80BFCB0 - push {lr} - cmp r0, 0 - beq _080BFCC8 - cmp r0, 0x14 - bhi _080BFCC8 - lsls r0, 3 - ldr r1, _080BFCC4 @ =gUnknown_83EEBF0 - adds r0, r1 - b _080BFCCA - .align 2, 0 -_080BFCC4: .4byte gUnknown_83EEBF0 -_080BFCC8: - movs r0, 0 -_080BFCCA: - pop {r1} - bx r1 - thumb_func_end GetHealLocationPointer - - thumb_func_start sub_80BFCD0 -sub_80BFCD0: @ 80BFCD0 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080BFD24 @ =0x00004082 - adds r0, r6, 0 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bne _080BFD38 - ldr r0, _080BFD28 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _080BFD2C @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _080BFD30 @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - blt _080BFD0A - adds r0, r6, 0 - movs r1, 0 - bl VarSet -_080BFD0A: - ldr r0, _080BFD34 @ =gSpecialVar_LastTalked - strh r5, [r0] - movs r0, 0x4 - strh r0, [r4, 0x4] - movs r0, 0xB - strh r0, [r4, 0x6] - movs r0, 0x2 - strb r0, [r4] - movs r0, 0xA - strb r0, [r4, 0x1] - movs r0, 0xFF - strb r0, [r4, 0x2] - b _080BFDFA - .align 2, 0 -_080BFD24: .4byte 0x00004082 -_080BFD28: .4byte gSaveBlock1Ptr -_080BFD2C: .4byte 0x00003d34 -_080BFD30: .4byte 0x00003d42 -_080BFD34: .4byte gSpecialVar_LastTalked -_080BFD38: - ldr r0, _080BFD7C @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x1C - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x1D] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl GetHealLocationIndexFromMapGroupAndNum - adds r6, r0, 0 - ldr r2, _080BFD80 @ =gUnknown_83EEC98 - subs r0, r6, 0x1 - lsls r0, 2 - adds r1, r0, r2 - ldrh r1, [r1] - strb r1, [r4] - adds r2, 0x2 - adds r0, r2 - ldrh r2, [r0] - strb r2, [r4, 0x1] - movs r0, 0xFF - strb r0, [r4, 0x2] - cmp r1, 0x4 - bne _080BFD84 - cmp r2, 0 - bne _080BFD84 - movs r0, 0x8 - strh r0, [r4, 0x4] - movs r0, 0x5 - b _080BFDF2 - .align 2, 0 -_080BFD7C: .4byte gSaveBlock1Ptr -_080BFD80: .4byte gUnknown_83EEC98 -_080BFD84: - ldr r0, _080BFDA4 @ =gUnknown_83EEC98 - subs r2, r6, 0x1 - lsls r3, r2, 2 - adds r1, r3, r0 - ldrh r1, [r1] - adds r5, r0, 0 - cmp r1, 0xD - bne _080BFDA8 - adds r0, r5, 0x2 - adds r0, r3, r0 - ldrh r0, [r0] - cmp r0, 0 - bne _080BFDA8 - strh r1, [r4, 0x4] - movs r0, 0xC - b _080BFDF2 - .align 2, 0 -_080BFDA4: .4byte gUnknown_83EEC98 -_080BFDA8: - lsls r1, r2, 2 - adds r0, r1, r5 - ldrh r0, [r0] - cmp r0, 0x20 - bne _080BFDC0 - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrh r0, [r0] - cmp r0, 0 - bne _080BFDC0 - movs r0, 0x5 - b _080BFDEE -_080BFDC0: - lsls r2, 2 - adds r0, r2, r5 - ldrh r0, [r0] - cmp r0, 0x2 - bne _080BFDEC - adds r0, r5, 0x2 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, 0xA - bne _080BFDEC - movs r0, 0x4 - strh r0, [r4, 0x4] - movs r0, 0xB - strh r0, [r4, 0x6] - ldr r0, _080BFDE8 @ =0x00004082 - movs r1, 0 - bl VarSet - b _080BFDF4 - .align 2, 0 -_080BFDE8: .4byte 0x00004082 -_080BFDEC: - movs r0, 0x7 -_080BFDEE: - strh r0, [r4, 0x4] - movs r0, 0x4 -_080BFDF2: - strh r0, [r4, 0x6] -_080BFDF4: - adds r0, r6, 0 - bl sub_80BFE00 -_080BFDFA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BFCD0 - - thumb_func_start sub_80BFE00 -sub_80BFE00: @ 80BFE00 - ldr r2, _080BFE10 @ =gSpecialVar_LastTalked - ldr r1, _080BFE14 @ =gUnknown_83EECE8 - subs r0, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_080BFE10: .4byte gSpecialVar_LastTalked -_080BFE14: .4byte gUnknown_83EECE8 - thumb_func_end sub_80BFE00 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/help_system.s b/asm/help_system.s deleted file mode 100644 index 7026c65d5..000000000 --- a/asm/help_system.s +++ /dev/null @@ -1,2254 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_813B870 -sub_813B870: @ 813B870 - push {r4,r5,lr} - ldr r0, _0813B888 @ =gUnknown_203F178 - ldrb r0, [r0, 0x15] - cmp r0, 0x8 - bls _0813B87C - b _0813BB24 -_0813B87C: - lsls r0, 2 - ldr r1, _0813B88C @ =_0813B890 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813B888: .4byte gUnknown_203F178 -_0813B88C: .4byte _0813B890 - .align 2, 0 -_0813B890: - .4byte _0813B8B4 - .4byte _0813B968 - .4byte _0813B994 - .4byte _0813B9D8 - .4byte _0813BA40 - .4byte _0813BA78 - .4byte _0813BAA0 - .4byte _0813BAE0 - .4byte _0813BB14 -_0813B8B4: - ldr r1, _0813B904 @ =gUnknown_203F177 - movs r0, 0 - strb r0, [r1] - ldr r0, _0813B908 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0 - bne _0813B900 - ldr r2, _0813B90C @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0813B8DA - ldr r0, _0813B910 @ =gUnknown_203F175 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0813B900 -_0813B8DA: - ldrh r1, [r2, 0x2E] - movs r0, 0xC0 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _0813B8E8 - b _0813BB24 -_0813B8E8: - bl sub_812B45C - lsls r0, 24 - cmp r0, 0 - beq _0813B8FA - ldr r0, _0813B914 @ =gUnknown_3005ECC - ldrb r0, [r0] - cmp r0, 0 - bne _0813B918 -_0813B8FA: - movs r0, 0xFC - bl PlaySE -_0813B900: - movs r0, 0 - b _0813BB28 - .align 2, 0 -_0813B904: .4byte gUnknown_203F177 -_0813B908: .4byte gSaveBlock2Ptr -_0813B90C: .4byte gMain -_0813B910: .4byte gUnknown_203F175 -_0813B914: .4byte gUnknown_3005ECC -_0813B918: - ldr r0, _0813B94C @ =gMPlayInfo_SE1 - bl m4aMPlayStop - ldr r0, _0813B950 @ =gMPlayInfo_SE2 - bl m4aMPlayStop - movs r0, 0xFA - bl PlaySE - ldr r0, _0813B954 @ =gUnknown_203F174 - ldrb r0, [r0] - cmp r0, 0 - bne _0813B93C - ldr r0, _0813B958 @ =gMPlayInfo_BGM - ldr r1, _0813B95C @ =0x0000ffff - movs r2, 0x80 - bl m4aMPlayVolumeControl -_0813B93C: - bl sub_813BB38 - ldr r1, _0813B960 @ =gUnknown_203F177 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _0813B964 @ =gUnknown_203F178 - movs r0, 0x1 - b _0813BB22 - .align 2, 0 -_0813B94C: .4byte gMPlayInfo_SE1 -_0813B950: .4byte gMPlayInfo_SE2 -_0813B954: .4byte gUnknown_203F174 -_0813B958: .4byte gMPlayInfo_BGM -_0813B95C: .4byte 0x0000ffff -_0813B960: .4byte gUnknown_203F177 -_0813B964: .4byte gUnknown_203F178 -_0813B968: - bl sub_813BBAC - bl sub_813BB74 - bl sub_813BBC8 - movs r1, 0xA0 - lsls r1, 19 - ldr r0, _0813B98C @ =gUnknown_8464128 - ldrh r0, [r0, 0x1E] - strh r0, [r1] - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r1, _0813B990 @ =gUnknown_203F178 - movs r0, 0x2 - b _0813BB22 - .align 2, 0 -_0813B98C: .4byte gUnknown_8464128 -_0813B990: .4byte gUnknown_203F178 -_0813B994: - ldr r1, _0813B9C4 @ =0x0600c000 - movs r2, 0x80 - lsls r2, 7 - movs r0, 0 - movs r3, 0 - bl RequestDma3Fill - ldr r0, _0813B9C8 @ =gUnknown_8464128 - movs r1, 0xA0 - lsls r1, 19 - movs r2, 0x20 - movs r3, 0 - bl RequestDma3Copy - ldr r0, _0813B9CC @ =gUnknown_8464008 - ldr r1, _0813B9D0 @ =gUnknown_201FEE0 - movs r2, 0x90 - lsls r2, 1 - movs r3, 0 - bl RequestDma3Copy - ldr r1, _0813B9D4 @ =gUnknown_203F178 - movs r0, 0x3 - b _0813BB22 - .align 2, 0 -_0813B9C4: .4byte 0x0600c000 -_0813B9C8: .4byte gUnknown_8464128 -_0813B9CC: .4byte gUnknown_8464008 -_0813B9D0: .4byte gUnknown_201FEE0 -_0813B9D4: .4byte gUnknown_203F178 -_0813B9D8: - bl sub_813BCF4 - bl sub_813C5D4 - bl sub_813C5FC - ldr r0, _0813BA08 @ =gUnknown_841CB49 - bl sub_813C454 - movs r0, 0x1 - bl sub_813BD14 - bl sub_812B40C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813BA14 - ldr r0, _0813BA0C @ =gUnknown_203F190 - ldr r1, _0813BA10 @ =gUnknown_203F1AC - bl sub_812BC54 - b _0813BA1C - .align 2, 0 -_0813BA08: .4byte gUnknown_841CB49 -_0813BA0C: .4byte gUnknown_203F190 -_0813BA10: .4byte gUnknown_203F1AC -_0813BA14: - ldr r0, _0813BA34 @ =gUnknown_203F190 - ldr r1, _0813BA38 @ =gUnknown_203F1AC - bl sub_812BCA8 -_0813BA1C: - movs r0, 0x1 - bl sub_813BE78 - movs r0, 0x1 - bl sub_813BF50 - bl sub_813BC5C - ldr r1, _0813BA3C @ =gUnknown_203F178 - movs r0, 0x4 - b _0813BB22 - .align 2, 0 -_0813BA34: .4byte gUnknown_203F190 -_0813BA38: .4byte gUnknown_203F1AC -_0813BA3C: .4byte gUnknown_203F178 -_0813BA40: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - ldr r1, _0813BA70 @ =0x00001f0c - movs r0, 0x8 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 1 - movs r0, 0 - bl SetGpuReg - ldr r1, _0813BA74 @ =gUnknown_203F178 - movs r0, 0x5 - b _0813BB22 - .align 2, 0 -_0813BA70: .4byte 0x00001f0c -_0813BA74: .4byte gUnknown_203F178 -_0813BA78: - ldr r0, _0813BA94 @ =gUnknown_203F190 - ldr r1, _0813BA98 @ =gUnknown_203F1AC - bl sub_812BB9C - lsls r0, 24 - cmp r0, 0 - bne _0813BB24 - movs r0, 0xFB - bl PlaySE - ldr r1, _0813BA9C @ =gUnknown_203F178 - movs r0, 0x6 - b _0813BB22 - .align 2, 0 -_0813BA94: .4byte gUnknown_203F190 -_0813BA98: .4byte gUnknown_203F1AC -_0813BA9C: .4byte gUnknown_203F178 -_0813BAA0: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - bl sub_813BC2C - movs r1, 0 - ldr r5, _0813BAD0 @ =0x000001ff - movs r4, 0xA0 - lsls r4, 19 - ldr r0, _0813BAD4 @ =gUnknown_8464128 - ldrh r2, [r0, 0x1E] - ldr r3, _0813BAD8 @ =0x05000200 -_0813BABA: - adds r0, r1, r4 - strh r2, [r0] - adds r0, r1, r3 - strh r2, [r0] - adds r1, 0x2 - cmp r1, r5 - ble _0813BABA - ldr r1, _0813BADC @ =gUnknown_203F178 - movs r0, 0x7 - b _0813BB22 - .align 2, 0 -_0813BAD0: .4byte 0x000001ff -_0813BAD4: .4byte gUnknown_8464128 -_0813BAD8: .4byte 0x05000200 -_0813BADC: .4byte gUnknown_203F178 -_0813BAE0: - ldr r0, _0813BB04 @ =gUnknown_203F174 - ldrb r0, [r0] - cmp r0, 0 - bne _0813BAF4 - ldr r0, _0813BB08 @ =gMPlayInfo_BGM - ldr r1, _0813BB0C @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_0813BAF4: - bl sub_813BC48 - bl sub_813BBF4 - ldr r1, _0813BB10 @ =gUnknown_203F178 - movs r0, 0x8 - b _0813BB22 - .align 2, 0 -_0813BB04: .4byte gUnknown_203F174 -_0813BB08: .4byte gMPlayInfo_BGM -_0813BB0C: .4byte 0x0000ffff -_0813BB10: .4byte gUnknown_203F178 -_0813BB14: - bl sub_813BBDC - ldr r1, _0813BB30 @ =gUnknown_203F177 - movs r0, 0 - strb r0, [r1] - ldr r1, _0813BB34 @ =gUnknown_203F178 - movs r0, 0 -_0813BB22: - strb r0, [r1, 0x15] -_0813BB24: - ldr r0, _0813BB34 @ =gUnknown_203F178 - ldrb r0, [r0, 0x15] -_0813BB28: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0813BB30: .4byte gUnknown_203F177 -_0813BB34: .4byte gUnknown_203F178 - thumb_func_end sub_813B870 - - thumb_func_start sub_813BB38 -sub_813BB38: @ 813BB38 - ldr r2, _0813BB60 @ =gUnknown_203F178 - ldr r1, _0813BB64 @ =gMain - ldr r0, [r1, 0xC] - str r0, [r2] - ldr r0, [r1, 0x10] - str r0, [r2, 0x4] - movs r0, 0 - str r0, [r1, 0xC] - str r0, [r1, 0x10] - ldr r1, _0813BB68 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0813BB6C @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0813BB70 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - bx lr - .align 2, 0 -_0813BB60: .4byte gUnknown_203F178 -_0813BB64: .4byte gMain -_0813BB68: .4byte 0x040000b0 -_0813BB6C: .4byte 0x0000c5ff -_0813BB70: .4byte 0x00007fff - thumb_func_end sub_813BB38 - - thumb_func_start sub_813BB74 -sub_813BB74: @ 813BB74 - push {r4,lr} - movs r0, 0 - bl GetGpuReg - ldr r4, _0813BBA8 @ =gUnknown_203F178 - strh r0, [r4, 0x8] - movs r0, 0x8 - bl GetGpuReg - strh r0, [r4, 0xA] - movs r0, 0x10 - bl GetGpuReg - strh r0, [r4, 0xC] - movs r0, 0x12 - bl GetGpuReg - strh r0, [r4, 0xE] - movs r0, 0x50 - bl GetGpuReg - strh r0, [r4, 0x10] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BBA8: .4byte gUnknown_203F178 - thumb_func_end sub_813BB74 - - thumb_func_start sub_813BBAC -sub_813BBAC: @ 813BBAC - push {lr} - ldr r0, _0813BBC0 @ =0x0600c000 - ldr r1, _0813BBC4 @ =gUnknown_203B174 - movs r2, 0x80 - lsls r2, 7 - movs r3, 0 - bl RequestDma3Copy - pop {r0} - bx r0 - .align 2, 0 -_0813BBC0: .4byte 0x0600c000 -_0813BBC4: .4byte gUnknown_203B174 - thumb_func_end sub_813BBAC - - thumb_func_start sub_813BBC8 -sub_813BBC8: @ 813BBC8 - push {lr} - ldr r0, _0813BBD8 @ =gUnknown_203F18A - adds r1, r0, 0x1 - adds r2, r0, 0x2 - bl SaveTextColors - pop {r0} - bx r0 - .align 2, 0 -_0813BBD8: .4byte gUnknown_203F18A - thumb_func_end sub_813BBC8 - - thumb_func_start sub_813BBDC -sub_813BBDC: @ 813BBDC - ldr r2, _0813BBEC @ =gMain - ldr r1, _0813BBF0 @ =gUnknown_203F178 - ldr r0, [r1] - str r0, [r2, 0xC] - ldr r0, [r1, 0x4] - str r0, [r2, 0x10] - bx lr - .align 2, 0 -_0813BBEC: .4byte gMain -_0813BBF0: .4byte gUnknown_203F178 - thumb_func_end sub_813BBDC - - thumb_func_start sub_813BBF4 -sub_813BBF4: @ 813BBF4 - push {r4,lr} - ldr r4, _0813BC28 @ =gUnknown_203F178 - ldrh r1, [r4, 0x10] - movs r0, 0x50 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x10 - bl SetGpuReg - ldrh r1, [r4, 0xE] - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0xA] - movs r0, 0x8 - bl SetGpuReg - ldrh r1, [r4, 0x8] - movs r0, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BC28: .4byte gUnknown_203F178 - thumb_func_end sub_813BBF4 - - thumb_func_start sub_813BC2C -sub_813BC2C: @ 813BC2C - push {lr} - ldr r0, _0813BC40 @ =gUnknown_203B174 - ldr r1, _0813BC44 @ =0x0600c000 - movs r2, 0x80 - lsls r2, 7 - movs r3, 0 - bl RequestDma3Copy - pop {r0} - bx r0 - .align 2, 0 -_0813BC40: .4byte gUnknown_203B174 -_0813BC44: .4byte 0x0600c000 - thumb_func_end sub_813BC2C - - thumb_func_start sub_813BC48 -sub_813BC48: @ 813BC48 - push {lr} - ldr r0, _0813BC58 @ =gUnknown_203F18A - adds r1, r0, 0x1 - adds r2, r0, 0x2 - bl RestoreTextColors - pop {r0} - bx r0 - .align 2, 0 -_0813BC58: .4byte gUnknown_203F18A - thumb_func_end sub_813BC48 - - thumb_func_start sub_813BC5C -sub_813BC5C: @ 813BC5C - push {lr} - ldr r0, _0813BC70 @ =gDecompressionBuffer - ldr r1, _0813BC74 @ =0x0600c000 - movs r2, 0x80 - lsls r2, 7 - movs r3, 0 - bl RequestDma3Copy - pop {r0} - bx r0 - .align 2, 0 -_0813BC70: .4byte gDecompressionBuffer -_0813BC74: .4byte 0x0600c000 - thumb_func_end sub_813BC5C - - thumb_func_start sub_813BC78 -sub_813BC78: @ 813BC78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x24] - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r7, r5, 16 - lsrs r0, r2, 24 - adds r2, r0, r4 - cmp r0, r2 - bge _0813BCDE - mov r12, r2 - ldr r1, _0813BCF0 @ =gUnknown_201F800 - mov r10, r1 -_0813BCAE: - mov r4, r9 - mov r2, r8 - adds r1, r4, r2 - adds r3, r0, 0x1 - cmp r4, r1 - bge _0813BCD6 - lsls r2, r0, 6 - mov r5, r10 -_0813BCBE: - lsls r0, r4, 1 - adds r0, r2, r0 - adds r0, r5 - strh r6, [r0] - adds r0, r6, r7 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - blt _0813BCBE -_0813BCD6: - lsls r0, r3, 16 - lsrs r0, 16 - cmp r0, r12 - blt _0813BCAE -_0813BCDE: - bl sub_813BC5C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813BCF0: .4byte gUnknown_201F800 - thumb_func_end sub_813BC78 - - thumb_func_start sub_813BCF4 -sub_813BCF4: @ 813BCF4 - push {lr} - sub sp, 0x8 - ldr r0, _0813BD10 @ =0x000001ff - movs r1, 0x14 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r2, 0 - movs r3, 0x1E - bl sub_813BC78 - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0813BD10: .4byte 0x000001ff - thumb_func_end sub_813BCF4 - - thumb_func_start sub_813BD14 -sub_813BD14: @ 813BD14 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BD26 - cmp r2, 0x1 - beq _0813BD40 - b _0813BD54 -_0813BD26: - ldr r0, _0813BD3C @ =0x000001ff - movs r1, 0x2 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x7 - bl sub_813BC78 - b _0813BD54 - .align 2, 0 -_0813BD3C: .4byte 0x000001ff -_0813BD40: - movs r0, 0xF4 - lsls r0, 1 - movs r1, 0x2 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x7 - bl sub_813BC78 -_0813BD54: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BD14 - - thumb_func_start sub_813BD5C -sub_813BD5C: @ 813BD5C - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BD6E - cmp r2, 0x1 - beq _0813BD88 - b _0813BD9C -_0813BD6E: - ldr r0, _0813BD84 @ =0x000001ff - movs r1, 0x2 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0xD - movs r2, 0 - movs r3, 0x10 - bl sub_813BC78 - b _0813BD9C - .align 2, 0 -_0813BD84: .4byte 0x000001ff -_0813BD88: - movs r0, 0xD0 - lsls r0, 1 - movs r1, 0x2 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0xD - movs r2, 0 - movs r3, 0x10 - bl sub_813BC78 -_0813BD9C: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BD5C - - thumb_func_start sub_813BDA4 -sub_813BDA4: @ 813BDA4 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BDB6 - cmp r2, 0x1 - beq _0813BDD0 - b _0813BDE2 -_0813BDB6: - ldr r0, _0813BDCC @ =0x000001ff - movs r1, 0x10 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0x1A - bl sub_813BC78 - b _0813BDE2 - .align 2, 0 -_0813BDCC: .4byte 0x000001ff -_0813BDD0: - movs r0, 0x10 - str r0, [sp] - str r2, [sp, 0x4] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0x1A - bl sub_813BC78 -_0813BDE2: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BDA4 - - thumb_func_start sub_813BDE8 -sub_813BDE8: @ 813BDE8 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BDFA - cmp r2, 0x1 - beq _0813BE14 - b _0813BE2A -_0813BDFA: - ldr r0, _0813BE10 @ =0x000001ff - movs r1, 0x10 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x1C - bl sub_813BC78 - b _0813BE2A - .align 2, 0 -_0813BE10: .4byte 0x000001ff -_0813BE14: - movs r0, 0xFD - lsls r0, 1 - movs r1, 0x11 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x1C - bl sub_813BC78 -_0813BE2A: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BDE8 - - thumb_func_start sub_813BE30 -sub_813BE30: @ 813BE30 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BE42 - cmp r2, 0x1 - beq _0813BE5C - b _0813BE70 -_0813BE42: - ldr r0, _0813BE58 @ =0x000001ff - movs r1, 0x5 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x2 - movs r2, 0xE - movs r3, 0x1A - bl sub_813BC78 - b _0813BE70 - .align 2, 0 -_0813BE58: .4byte 0x000001ff -_0813BE5C: - movs r0, 0x8F - lsls r0, 1 - movs r1, 0x5 - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x2 - movs r2, 0xE - movs r3, 0x1A - bl sub_813BC78 -_0813BE70: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BE30 - - thumb_func_start sub_813BE78 -sub_813BE78: @ 813BE78 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0813BE8A - cmp r6, 0x1 - beq _0813BEB4 - b _0813BED8 -_0813BE8A: - ldr r5, _0813BEB0 @ =0x000001ff - movs r4, 0x1 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x1C - bl sub_813BC78 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x13 - movs r3, 0x1C - bl sub_813BC78 - b _0813BED8 - .align 2, 0 -_0813BEB0: .4byte 0x000001ff -_0813BEB4: - ldr r0, _0813BEE0 @ =0x000001f7 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x1C - bl sub_813BC78 - movs r0, 0xFC - lsls r0, 1 - str r6, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x13 - movs r3, 0x1C - bl sub_813BC78 -_0813BED8: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BEE0: .4byte 0x000001f7 - thumb_func_end sub_813BE78 - - thumb_func_start sub_813BEE4 -sub_813BEE4: @ 813BEE4 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0813BEF6 - cmp r6, 0x1 - beq _0813BF20 - b _0813BF44 -_0813BEF6: - ldr r5, _0813BF1C @ =0x000001ff - movs r4, 0x1 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x1C - bl sub_813BC78 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x13 - movs r3, 0x1C - bl sub_813BC78 - b _0813BF44 - .align 2, 0 -_0813BF1C: .4byte 0x000001ff -_0813BF20: - ldr r0, _0813BF4C @ =0x000001fb - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x1C - bl sub_813BC78 - movs r0, 0xFE - lsls r0, 1 - str r6, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x13 - movs r3, 0x1C - bl sub_813BC78 -_0813BF44: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BF4C: .4byte 0x000001fb - thumb_func_end sub_813BEE4 - - thumb_func_start sub_813BF50 -sub_813BF50: @ 813BF50 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0813BF62 - cmp r6, 0x1 - beq _0813BF8C - b _0813BFB2 -_0813BF62: - ldr r5, _0813BF88 @ =0x000001ff - movs r4, 0x14 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_813BC78 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1D - movs r2, 0 - movs r3, 0x1 - bl sub_813BC78 - b _0813BFB2 - .align 2, 0 -_0813BF88: .4byte 0x000001ff -_0813BF8C: - ldr r6, _0813BFBC @ =0x000001f9 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_813BC78 - str r5, [sp] - str r4, [sp, 0x4] - adds r0, r6, 0 - movs r1, 0x1D - movs r2, 0 - movs r3, 0x1 - bl sub_813BC78 -_0813BFB2: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BFBC: .4byte 0x000001f9 - thumb_func_end sub_813BF50 - - thumb_func_start sub_813BFC0 -sub_813BFC0: @ 813BFC0 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0813BFD2 - cmp r2, 0x1 - beq _0813BFE8 - b _0813BFFC -_0813BFD2: - ldr r0, _0813BFE4 @ =0x000001ff - movs r1, 0x1 - str r1, [sp] - str r2, [sp, 0x4] - movs r2, 0x5 - movs r3, 0x1C - bl sub_813BC78 - b _0813BFFC - .align 2, 0 -_0813BFE4: .4byte 0x000001ff -_0813BFE8: - movs r0, 0xFE - lsls r0, 1 - str r2, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x5 - movs r3, 0x1C - bl sub_813BC78 -_0813BFFC: - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_813BFC0 - - thumb_func_start sub_813C004 -sub_813C004: @ 813C004 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0 - beq _0813C01A - cmp r6, 0x1 - beq _0813C040 - b _0813C06A -_0813C01A: - ldr r5, _0813C03C @ =0x000001ff - movs r4, 0x1 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1C - movs r2, 0x3 - movs r3, 0x1 - bl sub_813BC78 - str r4, [sp] - str r6, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x1C - movs r2, 0x12 - b _0813C050 - .align 2, 0 -_0813C03C: .4byte 0x000001ff -_0813C040: - cmp r2, 0 - bne _0813C058 - movs r0, 0xFF - lsls r0, 1 - str r6, [sp] - str r2, [sp, 0x4] - movs r1, 0x1C - movs r2, 0x3 -_0813C050: - movs r3, 0x1 - bl sub_813BC78 - b _0813C06A -_0813C058: - ldr r0, _0813C074 @ =0x000001fd - str r6, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x1C - movs r2, 0x12 - movs r3, 0x1 - bl sub_813BC78 -_0813C06A: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813C074: .4byte 0x000001fd - thumb_func_end sub_813C004 - - thumb_func_start sub_813C078 -sub_813C078: @ 813C078 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - str r1, [sp, 0x28] - mov r9, r2 - ldr r1, [sp, 0x58] - ldr r2, [sp, 0x5C] - ldr r4, [sp, 0x60] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x2C] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x30] - str r7, [sp, 0x34] -_0813C0AC: - mov r0, r9 - ldrb r1, [r0] - movs r2, 0x1 - add r9, r2 - adds r0, r1, 0 - subs r0, 0xF8 - cmp r0, 0x7 - bls _0813C0BE - b _0813C358 -_0813C0BE: - lsls r0, 2 - ldr r1, _0813C0C8 @ =_0813C0CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813C0C8: .4byte _0813C0CC - .align 2, 0 -_0813C0CC: - .4byte _0813C2D4 - .4byte _0813C348 - .4byte _0813C1E4 - .4byte _0813C1E4 - .4byte _0813C200 - .4byte _0813C0EC - .4byte _0813C1E4 - .4byte _0813C39C -_0813C0EC: - mov r0, r9 - ldrb r1, [r0] - movs r2, 0x1 - add r9, r2 - cmp r1, 0x1 - bne _0813C154 - movs r4, 0 - ldr r0, _0813C14C @ =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r1, [r1] - cmp r1, 0xFF - beq _0813C0AC - ldr r5, _0813C150 @ =gGlyphInfo + 0x80 -_0813C106: - ldr r0, [r0] - adds r0, r4 - ldrb r1, [r0] - ldr r0, [sp, 0x28] - str r0, [sp] - str r7, [sp, 0x4] - mov r2, r10 - str r2, [sp, 0x8] - ldr r0, [sp, 0x2C] - str r0, [sp, 0xC] - ldr r2, [sp, 0x30] - str r2, [sp, 0x10] - ldr r0, [sp, 0x24] - add r2, sp, 0x14 - add r3, sp, 0x1C - bl sub_813C3AC - ldr r0, [sp, 0x24] - ldrb r0, [r5] - adds r0, r7, r0 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bhi _0813C0AC - ldr r0, _0813C14C @ =gSaveBlock2Ptr - ldr r1, [r0] - adds r1, r4 - ldrb r1, [r1] - cmp r1, 0xFF - bne _0813C106 - b _0813C0AC - .align 2, 0 -_0813C14C: .4byte gSaveBlock2Ptr -_0813C150: .4byte gGlyphInfo + 0x80 -_0813C154: - cmp r1, 0x2 - bne _0813C0AC - movs r4, 0 - ldr r5, _0813C160 @ =gGlyphInfo + 0x80 - b _0813C1BC - .align 2, 0 -_0813C160: .4byte gGlyphInfo + 0x80 -_0813C164: - ldrb r1, [r1] - ldr r2, [sp, 0x28] - str r2, [sp] - str r7, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - ldr r2, [sp, 0x2C] - str r2, [sp, 0xC] - ldr r0, [sp, 0x30] - str r0, [sp, 0x10] - ldr r0, [sp, 0x24] - add r2, sp, 0x14 - add r3, sp, 0x1C - bl sub_813C3AC - b _0813C1AC -_0813C184: - ldr r0, _0813C1D8 @ =gUnknown_841CB41 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0813C0AC - adds r1, r0, 0 - ldr r2, [sp, 0x28] - str r2, [sp] - str r7, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - ldr r2, [sp, 0x2C] - str r2, [sp, 0xC] - ldr r0, [sp, 0x30] - str r0, [sp, 0x10] - ldr r0, [sp, 0x24] - add r2, sp, 0x14 - add r3, sp, 0x1C - bl sub_813C3AC -_0813C1AC: - ldr r1, [sp, 0x24] - ldrb r0, [r5] - adds r0, r7, r0 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0813C1BC: - ldr r0, _0813C1DC @ =0x00000834 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813C184 - ldr r0, _0813C1E0 @ =gUnknown_841CB3C - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0813C164 - b _0813C0AC - .align 2, 0 -_0813C1D8: .4byte gUnknown_841CB41 -_0813C1DC: .4byte 0x00000834 -_0813C1E0: .4byte gUnknown_841CB3C -_0813C1E4: - ldr r7, [sp, 0x34] - ldr r1, _0813C1FC @ =gGlyphInfo - adds r1, 0x81 - mov r0, r10 - adds r0, 0x1 - ldrb r1, [r1] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - b _0813C0AC - .align 2, 0 -_0813C1FC: .4byte gGlyphInfo -_0813C200: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x1 - add r9, r0 - subs r0, r1, 0x1 - cmp r0, 0x15 - bls _0813C210 - b _0813C0AC -_0813C210: - lsls r0, 2 - ldr r1, _0813C21C @ =_0813C220 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813C21C: .4byte _0813C220 - .align 2, 0 -_0813C220: - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C278 - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C0AC - .4byte _0813C2C8 - .4byte _0813C0AC - .4byte _0813C0AC - .4byte _0813C27C - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C2C8 - .4byte _0813C0AC - .4byte _0813C27C - .4byte _0813C2CE - .4byte _0813C2CE - .4byte _0813C282 - .4byte _0813C2CE - .4byte _0813C0AC - .4byte _0813C0AC -_0813C278: - movs r1, 0x1 - add r9, r1 -_0813C27C: - movs r2, 0x1 - add r9, r2 - b _0813C2C8 -_0813C282: - mov r2, r9 - ldrb r0, [r2] - ldr r1, [sp, 0x34] - adds r0, r1 - subs r6, r0, r7 - cmp r6, 0 - ble _0813C2C8 - ldr r2, [sp, 0x28] - str r2, [sp, 0x1C] - ldr r1, [sp, 0x2C] - lsls r0, r1, 3 - add r4, sp, 0x1C - movs r5, 0 - strh r0, [r4, 0x4] - ldr r2, [sp, 0x30] - lsls r0, r2, 3 - strh r0, [r4, 0x6] - ldr r0, [sp, 0x24] - movs r1, 0x1 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - lsls r3, r6, 16 - lsrs r3, 16 - str r0, [sp] - str r5, [sp, 0x4] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r10 - bl FillBitmapRect4Bit - adds r0, r7, r6 - lsls r0, 24 - lsrs r7, r0, 24 -_0813C2C8: - movs r0, 0x1 - add r9, r0 - b _0813C0AC -_0813C2CE: - movs r1, 0x1 - add r9, r1 - b _0813C0AC -_0813C2D4: - mov r2, r9 - ldrb r1, [r2] - movs r0, 0x1 - add r9, r0 - adds r6, r1, 0 - adds r0, r6, 0 - bl GetKeypadIconTileOffset - lsls r0, 24 - lsrs r0, 19 - ldr r1, _0813C344 @ =gKeypadIconTiles - adds r0, r1 - str r0, [sp, 0x14] - add r1, sp, 0x14 - movs r2, 0 - mov r8, r2 - movs r0, 0x80 - strh r0, [r1, 0x4] - strh r0, [r1, 0x6] - ldr r0, [sp, 0x28] - str r0, [sp, 0x1C] - ldr r1, [sp, 0x2C] - lsls r0, r1, 3 - add r5, sp, 0x1C - strh r0, [r5, 0x4] - ldr r2, [sp, 0x30] - lsls r0, r2, 3 - strh r0, [r5, 0x6] - adds r0, r6, 0 - bl GetKeypadIconWidth - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl GetKeypadIconHeight - lsls r0, 24 - lsrs r0, 24 - str r7, [sp] - mov r1, r10 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r0, [sp, 0xC] - mov r2, r8 - str r2, [sp, 0x10] - add r0, sp, 0x14 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRect4Bit - adds r0, r6, 0 - bl GetKeypadIconWidth - b _0813C38E - .align 2, 0 -_0813C344: .4byte gKeypadIconTiles -_0813C348: - mov r0, r9 - ldrb r1, [r0] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - orrs r1, r0 - movs r0, 0x1 - add r9, r0 -_0813C358: - cmp r1, 0 - bne _0813C36A - ldr r1, [sp, 0x24] - cmp r1, 0 - bne _0813C366 - adds r0, r7, 0x5 - b _0813C390 -_0813C366: - adds r0, r7, 0x4 - b _0813C390 -_0813C36A: - add r3, sp, 0x1C - ldr r2, [sp, 0x28] - str r2, [sp] - str r7, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - ldr r2, [sp, 0x2C] - str r2, [sp, 0xC] - ldr r0, [sp, 0x30] - str r0, [sp, 0x10] - ldr r0, [sp, 0x24] - add r2, sp, 0x14 - bl sub_813C3AC - ldr r1, [sp, 0x24] - ldr r0, _0813C398 @ =gGlyphInfo - adds r0, 0x80 - ldrb r0, [r0] -_0813C38E: - adds r0, r7, r0 -_0813C390: - lsls r0, 24 - lsrs r7, r0, 24 - b _0813C0AC - .align 2, 0 -_0813C398: .4byte gGlyphInfo -_0813C39C: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_813C078 - - thumb_func_start sub_813C3AC -sub_813C3AC: @ 813C3AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r7, r2, 0 - mov r8, r3 - ldr r2, [sp, 0x38] - ldr r3, [sp, 0x3C] - ldr r4, [sp, 0x40] - ldr r5, [sp, 0x44] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r0, r1, 16 - adds r1, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - cmp r6, 0 - bne _0813C3EE - movs r1, 0 - bl DecompressGlyphFont0 - b _0813C402 -_0813C3EE: - cmp r6, 0x5 - bne _0813C3FA - movs r1, 0 - bl DecompressGlyphFont5 - b _0813C402 -_0813C3FA: - adds r0, r1, 0 - movs r1, 0 - bl DecompressGlyphFont2 -_0813C402: - ldr r1, _0813C450 @ =gGlyphInfo - str r1, [r7] - movs r2, 0 - movs r0, 0x10 - strh r0, [r7, 0x4] - strh r0, [r7, 0x6] - ldr r0, [sp, 0x34] - mov r3, r8 - str r0, [r3] - lsls r0, r4, 3 - strh r0, [r3, 0x4] - lsls r0, r5, 3 - strh r0, [r3, 0x6] - mov r0, r10 - str r0, [sp] - mov r3, r9 - str r3, [sp, 0x4] - adds r0, r1, 0 - adds r0, 0x80 - ldrb r0, [r0] - str r0, [sp, 0x8] - adds r1, 0x81 - ldrb r0, [r1] - str r0, [sp, 0xC] - str r2, [sp, 0x10] - adds r0, r7, 0 - mov r1, r8 - movs r3, 0 - bl BlitBitmapRect4Bit - 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 -_0813C450: .4byte gGlyphInfo - thumb_func_end sub_813C3AC - - thumb_func_start sub_813C454 -sub_813C454: @ 813C454 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0x1 - movs r1, 0xF - movs r2, 0x2 - bl GenerateFontHalfRowLookupTable - ldr r1, _0813C484 @ =gUnknown_201FD00 - movs r2, 0x2 - str r2, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0x5 - adds r2, r4, 0 - movs r3, 0x6 - bl sub_813C078 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C484: .4byte gUnknown_201FD00 - thumb_func_end sub_813C454 - - thumb_func_start sub_813C488 -sub_813C488: @ 813C488 - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - movs r4, 0x7C - subs r4, r0 - movs r0, 0x1 - movs r1, 0xF - movs r2, 0x2 - bl GenerateFontHalfRowLookupTable - ldr r1, _0813C4C8 @ =gUnknown_201F400 - lsls r4, 24 - lsrs r4, 24 - movs r2, 0x2 - str r2, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_813C078 - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C4C8: .4byte gUnknown_201F400 - thumb_func_end sub_813C488 - - thumb_func_start sub_813C4CC -sub_813C4CC: @ 813C4CC - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0xF - movs r2, 0x2 - bl GenerateFontHalfRowLookupTable - ldr r1, _0813C508 @ =gDecompressionBuffer - str r4, [sp] - movs r0, 0x1A - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_813C078 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813C508: .4byte gDecompressionBuffer - thumb_func_end sub_813C4CC - - thumb_func_start sub_813C50C -sub_813C50C: @ 813C50C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - mov r8, r0 - mov r9, r1 - add r1, sp, 0xC - ldr r2, _0813C578 @ =0x0000eeee - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _0813C57C @ =gDecompressionBuffer - ldr r2, _0813C580 @ =0x01001a00 - adds r0, r1, 0 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x1 - movs r1, 0xE - movs r2, 0x2 - bl GenerateFontHalfRowLookupTable - movs r6, 0 - str r6, [sp] - movs r5, 0x1A - str r5, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - adds r1, r4, 0 - mov r2, r8 - movs r3, 0 - bl sub_813C078 - movs r0, 0x9C - lsls r0, 4 - adds r4, r0 - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0xD - str r0, [sp, 0x8] - movs r0, 0x2 - adds r1, r4, 0 - mov r2, r9 - movs r3, 0 - bl sub_813C078 - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813C578: .4byte 0x0000eeee -_0813C57C: .4byte gDecompressionBuffer -_0813C580: .4byte 0x01001a00 - thumb_func_end sub_813C50C - - thumb_func_start sub_813C584 -sub_813C584: @ 813C584 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - add r1, sp, 0xC - ldr r2, _0813C5C8 @ =0x00001111 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _0813C5CC @ =gUnknown_201E3C0 - ldr r2, _0813C5D0 @ =0x01000820 - adds r0, r1, 0 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x3 - bl GenerateFontHalfRowLookupTable - movs r0, 0x6 - str r0, [sp] - movs r0, 0x1A - str r0, [sp, 0x4] - movs r0, 0x5 - str r0, [sp, 0x8] - movs r0, 0x2 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl sub_813C078 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C5C8: .4byte 0x00001111 -_0813C5CC: .4byte gUnknown_201E3C0 -_0813C5D0: .4byte 0x01000820 - thumb_func_end sub_813C584 - - thumb_func_start sub_813C5D4 -sub_813C5D4: @ 813C5D4 - push {lr} - sub sp, 0x4 - mov r1, sp - ldr r2, _0813C5F0 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0813C5F4 @ =gUnknown_201FD00 - ldr r2, _0813C5F8 @ =0x010000e0 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0813C5F0: .4byte 0x0000ffff -_0813C5F4: .4byte gUnknown_201FD00 -_0813C5F8: .4byte 0x010000e0 - thumb_func_end sub_813C5D4 - - thumb_func_start sub_813C5FC -sub_813C5FC: @ 813C5FC - push {lr} - sub sp, 0x4 - mov r1, sp - ldr r2, _0813C618 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0813C61C @ =gUnknown_201F400 - ldr r2, _0813C620 @ =0x01000200 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0813C618: .4byte 0x0000ffff -_0813C61C: .4byte gUnknown_201F400 -_0813C620: .4byte 0x01000200 - thumb_func_end sub_813C5FC - - thumb_func_start sub_813C624 -sub_813C624: @ 813C624 - push {lr} - sub sp, 0x4 - mov r1, sp - ldr r2, _0813C640 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0813C644 @ =gDecompressionBuffer - ldr r2, _0813C648 @ =0x01001a00 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0813C640: .4byte 0x0000ffff -_0813C644: .4byte gDecompressionBuffer -_0813C648: .4byte 0x01001a00 - thumb_func_end sub_813C624 - - thumb_func_start sub_813C64C -sub_813C64C: @ 813C64C - push {r4-r7,lr} - ldr r4, _0813C680 @ =gUnknown_203F190 - adds r3, r4, 0 - ldm r0!, {r5-r7} - stm r3!, {r5-r7} - movs r0, 0 - strb r1, [r4, 0xC] - strb r2, [r4, 0xD] - strb r0, [r4, 0xE] - ldrh r0, [r4, 0x4] - ldrh r1, [r4, 0x6] - cmp r0, r1 - bcs _0813C668 - strh r0, [r4, 0x6] -_0813C668: - movs r0, 0 - bl sub_813BDA4 - bl sub_813C624 - bl sub_813C7CC - bl sub_813C828 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C680: .4byte gUnknown_203F190 - thumb_func_end sub_813C64C - - thumb_func_start sub_813C684 -sub_813C684: @ 813C684 - ldr r1, _0813C68C @ =gUnknown_203F176 - strb r0, [r1] - bx lr - .align 2, 0 -_0813C68C: .4byte gUnknown_203F176 - thumb_func_end sub_813C684 - - thumb_func_start sub_813C690 -sub_813C690: @ 813C690 - push {lr} - ldr r1, _0813C6A0 @ =gUnknown_203F176 - ldrb r0, [r1] - cmp r0, 0 - beq _0813C6A4 - subs r0, 0x1 - strb r0, [r1] - b _0813C752 - .align 2, 0 -_0813C6A0: .4byte gUnknown_203F176 -_0813C6A4: - ldr r2, _0813C6C8 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813C6D0 - movs r0, 0x5 - bl PlaySE - ldr r1, _0813C6CC @ =gUnknown_203F190 - ldrb r0, [r1, 0xC] - ldrb r2, [r1, 0xD] - adds r0, r2 - ldr r1, [r1] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - b _0813C756 - .align 2, 0 -_0813C6C8: .4byte gMain -_0813C6CC: .4byte gUnknown_203F190 -_0813C6D0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0813C6E4 - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - negs r0, r0 - b _0813C756 -_0813C6E4: - movs r0, 0xC0 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0813C6F4 - movs r0, 0x6 - negs r0, r0 - b _0813C756 -_0813C6F4: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0813C702 - movs r0, 0x1 - b _0813C718 -_0813C702: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0813C70E - movs r0, 0x1 - b _0813C73A -_0813C70E: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0813C730 - movs r0, 0x7 -_0813C718: - movs r1, 0 - bl sub_813C944 - lsls r0, 24 - cmp r0, 0 - bne _0813C72A - movs r0, 0x5 - bl PlaySE -_0813C72A: - movs r0, 0x4 - negs r0, r0 - b _0813C756 -_0813C730: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0813C752 - movs r0, 0x7 -_0813C73A: - movs r1, 0x1 - bl sub_813C944 - lsls r0, 24 - cmp r0, 0 - bne _0813C74C - movs r0, 0x5 - bl PlaySE -_0813C74C: - movs r0, 0x5 - negs r0, r0 - b _0813C756 -_0813C752: - movs r0, 0x1 - negs r0, r0 -_0813C756: - pop {r1} - bx r1 - thumb_func_end sub_813C690 - - thumb_func_start sub_813C75C -sub_813C75C: @ 813C75C - push {r4-r6,lr} - ldr r5, _0813C784 @ =gUnknown_203F190 - ldrh r1, [r5, 0x4] - subs r0, r1, 0x7 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r1, 0x7 - bls _0813C7C4 - ldrb r4, [r5, 0xC] - ldrb r0, [r5, 0xD] - adds r4, r0 - movs r0, 0 - movs r1, 0 - bl sub_813C004 - cmp r4, 0 - bne _0813C788 - movs r0, 0x1 - b _0813C7A2 - .align 2, 0 -_0813C784: .4byte gUnknown_203F190 -_0813C788: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _0813C798 - ldrb r0, [r5, 0xD] - cmp r0, 0 - beq _0813C798 - movs r0, 0x1 - b _0813C7A2 -_0813C798: - ldr r0, _0813C7AC @ =gUnknown_203F190 - ldrb r0, [r0, 0xC] - cmp r0, r6 - bne _0813C7B0 - movs r0, 0 -_0813C7A2: - movs r1, 0x1 - bl sub_813C004 - b _0813C7C4 - .align 2, 0 -_0813C7AC: .4byte gUnknown_203F190 -_0813C7B0: - cmp r0, 0 - beq _0813C7C4 - movs r0, 0 - movs r1, 0x1 - bl sub_813C004 - movs r0, 0x1 - movs r1, 0x1 - bl sub_813C004 -_0813C7C4: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813C75C - - thumb_func_start sub_813C7CC -sub_813C7CC: @ 813C7CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r3, _0813C824 @ =gUnknown_203F190 - ldrb r5, [r3, 0xC] - movs r6, 0 - ldrh r0, [r3, 0x6] - cmp r6, r0 - bge _0813C81A - adds r4, r3, 0 - movs r7, 0 -_0813C7F2: - ldrb r1, [r4, 0x8] - adds r1, 0x8 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r4, 0x9] - adds r2, r7 - lsls r2, 24 - lsrs r2, 24 - ldr r3, [r4] - lsls r0, r5, 3 - adds r0, r3 - ldr r0, [r0] - bl sub_813C4CC - adds r5, 0x1 - add r7, r8 - adds r6, 0x1 - ldrh r0, [r4, 0x6] - cmp r6, r0 - blt _0813C7F2 -_0813C81A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C824: .4byte gUnknown_203F190 - thumb_func_end sub_813C7CC - - thumb_func_start sub_813C828 -sub_813C828: @ 813C828 - push {r4,lr} - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0813C858 @ =gUnknown_203F190 - ldrb r1, [r3, 0x8] - ldrb r2, [r3, 0xD] - adds r4, r2, 0 - muls r4, r0 - adds r2, r4, 0 - ldrb r3, [r3, 0x9] - adds r2, r3 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0813C85C @ =gFameCheckerText_ListMenuCursor - bl sub_813C4CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C858: .4byte gUnknown_203F190 -_0813C85C: .4byte gFameCheckerText_ListMenuCursor - thumb_func_end sub_813C828 - - thumb_func_start sub_813C860 -sub_813C860: @ 813C860 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0813C894 @ =gUnknown_203F190 - ldrb r1, [r3, 0x8] - adds r2, r4, 0 - muls r2, r0 - ldrb r3, [r3, 0x9] - adds r2, r3 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0813C898 @ =gUnknown_841CB4E - bl sub_813C4CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C894: .4byte gUnknown_203F190 -_0813C898: .4byte gUnknown_841CB4E - thumb_func_end sub_813C860 - - thumb_func_start sub_813C89C -sub_813C89C: @ 813C89C - push {r4,r5,lr} - lsls r0, 24 - cmp r0, 0 - bne _0813C8EC - ldr r0, _0813C8B4 @ =gUnknown_203F190 - ldrh r1, [r0, 0x6] - adds r5, r0, 0 - cmp r1, 0x1 - bne _0813C8B8 - movs r4, 0 - b _0813C8CA - .align 2, 0 -_0813C8B4: .4byte gUnknown_203F190 -_0813C8B8: - ldrh r0, [r5, 0x6] - lsrs r2, r0, 1 - movs r1, 0x1 - ands r1, r0 - adds r2, r1 - subs r0, r2 - subs r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_0813C8CA: - ldrb r1, [r5, 0xC] - cmp r1, 0 - bne _0813C8DA - ldrb r0, [r5, 0xD] - cmp r0, 0 - beq _0813C926 - subs r0, 0x1 - b _0813C93A -_0813C8DA: - ldrb r0, [r5, 0xD] - cmp r0, r4 - bls _0813C8E4 - subs r0, 0x1 - b _0813C93A -_0813C8E4: - subs r0, r1, 0x1 - strb r0, [r5, 0xC] - movs r0, 0x2 - b _0813C93E -_0813C8EC: - ldr r0, _0813C8FC @ =gUnknown_203F190 - ldrh r1, [r0, 0x6] - adds r5, r0, 0 - cmp r1, 0x1 - bne _0813C900 - movs r4, 0 - b _0813C90A - .align 2, 0 -_0813C8FC: .4byte gUnknown_203F190 -_0813C900: - ldrh r0, [r5, 0x6] - lsrs r2, r0, 1 - movs r1, 0x1 - ands r0, r1 - adds r4, r2, r0 -_0813C90A: - adds r1, r5, 0 - ldrb r2, [r1, 0xC] - ldrh r0, [r1, 0x4] - ldrh r3, [r1, 0x6] - subs r0, r3 - cmp r2, r0 - bne _0813C92A - ldrb r2, [r1, 0xD] - subs r0, r3, 0x1 - cmp r2, r0 - bge _0813C926 - adds r0, r2, 0x1 - strb r0, [r1, 0xD] - b _0813C93C -_0813C926: - movs r0, 0 - b _0813C93E -_0813C92A: - ldrb r0, [r1, 0xD] - cmp r0, r4 - bcc _0813C938 - adds r0, r2, 0x1 - strb r0, [r1, 0xC] - movs r0, 0x2 - b _0813C93E -_0813C938: - adds r0, 0x1 -_0813C93A: - strb r0, [r5, 0xD] -_0813C93C: - movs r0, 0x1 -_0813C93E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_813C89C - - thumb_func_start sub_813C944 -sub_813C944: @ 813C944 - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, _0813C97C @ =gUnknown_203F190 - ldrb r7, [r0, 0xD] - movs r5, 0 - cmp r5, r2 - bge _0813C96C - adds r4, r2, 0 -_0813C95A: - adds r0, r6, 0 - bl sub_813C89C - orrs r5, r0 - lsls r0, r5, 24 - lsrs r5, r0, 24 - subs r4, 0x1 - cmp r4, 0 - bne _0813C95A -_0813C96C: - cmp r5, 0x1 - beq _0813C980 - cmp r5, 0x1 - ble _0813C978 - cmp r5, 0x3 - ble _0813C990 -_0813C978: - movs r0, 0x1 - b _0813C9D6 - .align 2, 0 -_0813C97C: .4byte gUnknown_203F190 -_0813C980: - adds r0, r7, 0 - bl sub_813C860 - bl sub_813C828 - bl sub_813BC5C - b _0813C9D4 -_0813C990: - bl sub_812BF88 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813C9B8 - movs r0, 0x2 - bl sub_813C684 - bl sub_813C624 - bl sub_813C7CC - bl sub_813C828 - bl sub_812BDEC - bl sub_813C75C - b _0813C9D0 -_0813C9B8: - movs r0, 0 - bl sub_813BDA4 - bl sub_813C624 - bl sub_813C7CC - bl sub_813C828 - movs r0, 0x1 - bl sub_813BDA4 -_0813C9D0: - bl sub_813BC5C -_0813C9D4: - movs r0, 0 -_0813C9D6: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_813C944 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s deleted file mode 100644 index f9fb50cf7..000000000 --- a/asm/help_system_812B1E0.s +++ /dev/null @@ -1,1761 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_812B1E0 -sub_812B1E0: @ 812B1E0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812B1EC @ =gUnknown_203B0EC - strh r0, [r1] - bx lr - .align 2, 0 -_0812B1EC: .4byte gUnknown_203B0EC - thumb_func_end sub_812B1E0 - - thumb_func_start sub_812B1F0 -sub_812B1F0: @ 812B1F0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0812B21C @ =gUnknown_203B0EC - ldrh r2, [r0] - cmp r2, 0x1A - bgt _0812B216 - cmp r2, 0x17 - blt _0812B216 - cmp r1, 0x9 - beq _0812B218 - cmp r1, 0x5 - beq _0812B218 - cmp r1, 0x6 - beq _0812B218 - cmp r1, 0x7 - beq _0812B218 - cmp r1, 0x8 - beq _0812B218 -_0812B216: - strh r1, [r0] -_0812B218: - pop {r0} - bx r0 - .align 2, 0 -_0812B21C: .4byte gUnknown_203B0EC - thumb_func_end sub_812B1F0 - - thumb_func_start sub_812B220 -sub_812B220: @ 812B220 - ldr r0, _0812B22C @ =gUnknown_203B0EC - ldr r1, _0812B230 @ =gSpecialVar_0x8004 - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0812B22C: .4byte gUnknown_203B0EC -_0812B230: .4byte gSpecialVar_0x8004 - thumb_func_end sub_812B220 - - thumb_func_start sub_812B234 -sub_812B234: @ 812B234 - ldr r0, _0812B240 @ =gUnknown_3005EA0 - ldr r1, _0812B244 @ =gUnknown_203B0EC - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0812B240: .4byte gUnknown_3005EA0 -_0812B244: .4byte gUnknown_203B0EC - thumb_func_end sub_812B234 - - thumb_func_start sub_812B248 -sub_812B248: @ 812B248 - ldr r0, _0812B254 @ =gUnknown_203B0EC - ldr r1, _0812B258 @ =gUnknown_3005EA0 - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0812B254: .4byte gUnknown_203B0EC -_0812B258: .4byte gUnknown_3005EA0 - thumb_func_end sub_812B248 - - thumb_func_start sub_812B25C -sub_812B25C: @ 812B25C - push {lr} - ldr r0, _0812B268 @ =gUnknown_845C594 - bl sub_812B27C - pop {r1} - bx r1 - .align 2, 0 -_0812B268: .4byte gUnknown_845C594 - thumb_func_end sub_812B25C - - thumb_func_start sub_812B26C -sub_812B26C: @ 812B26C - push {lr} - ldr r0, _0812B278 @ =gUnknown_845C5BC - bl sub_812B27C - pop {r1} - bx r1 - .align 2, 0 -_0812B278: .4byte gUnknown_845C5BC - thumb_func_end sub_812B26C - - thumb_func_start sub_812B27C -sub_812B27C: @ 812B27C - push {r4,lr} - adds r2, r0, 0 - ldr r0, _0812B2AC @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x5] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r0, [r2] - ldr r1, _0812B2B0 @ =0x0000ffff - cmp r0, r1 - beq _0812B2BC - adds r4, r1, 0 - adds r1, r2, 0 -_0812B2A2: - ldrh r0, [r1] - cmp r0, r3 - bne _0812B2B4 - movs r0, 0x1 - b _0812B2BE - .align 2, 0 -_0812B2AC: .4byte gSaveBlock1Ptr -_0812B2B0: .4byte 0x0000ffff -_0812B2B4: - adds r1, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _0812B2A2 -_0812B2BC: - movs r0, 0 -_0812B2BE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812B27C - - thumb_func_start sub_812B2C4 -sub_812B2C4: @ 812B2C4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r5, 0 - ldr r0, _0812B2E8 @ =gUnknown_845C5CE - mov r9, r0 - movs r0, 0x2 - add r0, r9 - mov r8, r0 -_0812B2D8: - movs r6, 0 - mov r4, r9 - lsls r1, r5, 1 - adds r0, r1, r5 - add r0, r8 - adds r7, r1, 0 - b _0812B33A - .align 2, 0 -_0812B2E8: .4byte gUnknown_845C5CE -_0812B2EC: - adds r3, r1, r5 - adds r0, r3, r4 - ldrb r1, [r0] - ldr r0, _0812B324 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _0812B32C - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r0, r6 - movs r1, 0x5 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _0812B32C - cmp r5, 0xF - bne _0812B320 - ldr r0, _0812B328 @ =0x00000849 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812B32C -_0812B320: - movs r0, 0x1 - b _0812B34C - .align 2, 0 -_0812B324: .4byte gSaveBlock1Ptr -_0812B328: .4byte 0x00000849 -_0812B32C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _0812B358 @ =gUnknown_845C5CE - adds r1, r7, 0 - adds r0, r1, r5 - add r0, r8 -_0812B33A: - ldrb r0, [r0] - cmp r6, r0 - bcc _0812B2EC - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _0812B2D8 - movs r0, 0 -_0812B34C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0812B358: .4byte gUnknown_845C5CE - thumb_func_end sub_812B2C4 - - thumb_func_start sub_812B35C -sub_812B35C: @ 812B35C - push {lr} - bl sub_812B4B8 - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0812B376 - movs r0, 0x16 - bl sub_812B1F0 - b _0812B406 -_0812B376: - bl sub_812B2C4 - lsls r0, 24 - cmp r0, 0 - beq _0812B388 - movs r0, 0x15 - bl sub_812B1F0 - b _0812B406 -_0812B388: - ldr r0, _0812B3B0 @ =gMapHeader - ldrb r0, [r0, 0x17] - bl is_light_level_8_or_9 - lsls r0, 24 - cmp r0, 0 - beq _0812B400 - ldr r0, _0812B3B4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - cmp r1, 0x4 - beq _0812B3A8 - movs r0, 0x82 - lsls r0, 1 - cmp r1, r0 - bne _0812B3B8 -_0812B3A8: - movs r0, 0xE - bl sub_812B1F0 - b _0812B406 - .align 2, 0 -_0812B3B0: .4byte gMapHeader -_0812B3B4: .4byte gSaveBlock1Ptr -_0812B3B8: - movs r0, 0xC1 - lsls r0, 2 - cmp r1, r0 - bne _0812B3C8 - movs r0, 0xF - bl sub_812B1F0 - b _0812B406 -_0812B3C8: - bl IsCurMapPokeCenter - cmp r0, 0x1 - bne _0812B3D8 - movs r0, 0x10 - bl sub_812B1F0 - b _0812B406 -_0812B3D8: - bl sub_812B25C - cmp r0, 0x1 - bne _0812B3E8 - movs r0, 0x11 - bl sub_812B1F0 - b _0812B406 -_0812B3E8: - bl sub_812B26C - cmp r0, 0x1 - bne _0812B3F8 - movs r0, 0x12 - bl sub_812B1F0 - b _0812B406 -_0812B3F8: - movs r0, 0x13 - bl sub_812B1F0 - b _0812B406 -_0812B400: - movs r0, 0x14 - bl sub_812B1F0 -_0812B406: - pop {r0} - bx r0 - thumb_func_end sub_812B35C - - thumb_func_start sub_812B40C -sub_812B40C: @ 812B40C - push {lr} - ldr r0, _0812B434 @ =gUnknown_203B0EE - ldrb r0, [r0] - cmp r0, 0x1 - beq _0812B42E - ldr r0, _0812B438 @ =gSaveFileStatus - ldrh r0, [r0] - cmp r0, 0 - beq _0812B440 - cmp r0, 0x2 - beq _0812B440 - ldr r0, _0812B43C @ =0x0000083c - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0812B440 -_0812B42E: - movs r0, 0 - b _0812B44E - .align 2, 0 -_0812B434: .4byte gUnknown_203B0EE -_0812B438: .4byte gSaveFileStatus -_0812B43C: .4byte 0x0000083c -_0812B440: - ldr r0, _0812B454 @ =0x0000083c - bl FlagSet - ldr r1, _0812B458 @ =gUnknown_203B0EE - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 -_0812B44E: - pop {r1} - bx r1 - .align 2, 0 -_0812B454: .4byte 0x0000083c -_0812B458: .4byte gUnknown_203B0EE - thumb_func_end sub_812B40C - - thumb_func_start sub_812B45C -sub_812B45C: @ 812B45C - push {lr} - ldr r0, _0812B46C @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - beq _0812B470 - movs r0, 0x1 - b _0812B472 - .align 2, 0 -_0812B46C: .4byte gReceivedRemoteLinkPlayers -_0812B470: - movs r0, 0 -_0812B472: - pop {r1} - bx r1 - thumb_func_end sub_812B45C - - thumb_func_start sub_812B478 -sub_812B478: @ 812B478 - ldr r1, _0812B480 @ =gUnknown_3005ECC - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0812B480: .4byte gUnknown_3005ECC - thumb_func_end sub_812B478 - - thumb_func_start sub_812B484 -sub_812B484: @ 812B484 - push {lr} - ldr r0, _0812B4A4 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0812B49E - ldr r1, _0812B4A8 @ =gUnknown_3005ECC - movs r0, 0x1 - strb r0, [r1] - bl sub_812B4B8 -_0812B49E: - pop {r0} - bx r0 - .align 2, 0 -_0812B4A4: .4byte gUnknown_203ADFA -_0812B4A8: .4byte gUnknown_3005ECC - thumb_func_end sub_812B484 - - thumb_func_start sub_812B4AC -sub_812B4AC: @ 812B4AC - ldr r1, _0812B4B4 @ =gUnknown_203F175 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_0812B4B4: .4byte gUnknown_203F175 - thumb_func_end sub_812B4AC - - thumb_func_start sub_812B4B8 -sub_812B4B8: @ 812B4B8 - ldr r1, _0812B4C0 @ =gUnknown_203F175 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0812B4C0: .4byte gUnknown_203F175 - thumb_func_end sub_812B4B8 - - thumb_func_start sub_812B4C4 -sub_812B4C4: @ 812B4C4 - str r1, [r0] - movs r2, 0x1 - movs r1, 0x1 - strh r1, [r0, 0x4] - strh r1, [r0, 0x6] - strb r2, [r0, 0x8] - movs r1, 0x4 - strb r1, [r0, 0x9] - bx lr - thumb_func_end sub_812B4C4 - - thumb_func_start sub_812B4D8 -sub_812B4D8: @ 812B4D8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_812B4C4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B520 - ldr r0, _0812B518 @ =gUnknown_841DFAC - bl sub_812BF74 - ldr r0, _0812B51C @ =gUnknown_3005E9C - ldrb r2, [r0, 0x2] - adds r0, r4, 0 - movs r1, 0 - bl sub_813C64C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812BF9C - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B518: .4byte gUnknown_841DFAC -_0812B51C: .4byte gUnknown_3005E9C - thumb_func_end sub_812B4D8 - - thumb_func_start sub_812B520 -sub_812B520: @ 812B520 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 - movs r3, 0 - ldr r0, _0812B598 @ =gUnknown_845C4B0 - mov r9, r0 - ldr r1, _0812B59C @ =gUnknown_203B0EC - mov r8, r1 - ldr r0, _0812B5A0 @ =gUnknown_845C4B6 - mov r12, r0 - ldr r7, _0812B5A4 @ =gUnknown_845B080 -_0812B53E: - mov r1, r9 - adds r0, r3, r1 - ldrb r2, [r0] - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - adds r0, r2, r0 - add r0, r12 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0812B56C - lsls r1, r4, 3 - adds r1, r5 - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - str r0, [r1] - str r2, [r1, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0812B56C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _0812B53E - lsls r0, r4, 3 - adds r0, r5 - subs r0, 0x8 - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - movs r0, 0 - strh r4, [r6, 0x4] - strh r4, [r6, 0x6] - strb r0, [r6, 0x8] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B598: .4byte gUnknown_845C4B0 -_0812B59C: .4byte gUnknown_203B0EC -_0812B5A0: .4byte gUnknown_845C4B6 -_0812B5A4: .4byte gUnknown_845B080 - thumb_func_end sub_812B520 - - thumb_func_start sub_812B5A8 -sub_812B5A8: @ 812B5A8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - bl sub_813BDE8 - movs r0, 0 - bl sub_813BFC0 - movs r0, 0x1 - bl sub_813BE78 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B4C4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B614 - ldr r0, _0812B608 @ =gUnknown_841DFC9 - bl sub_812BF74 - ldrb r1, [r4, 0xC] - ldrb r2, [r4, 0xD] - adds r0, r4, 0 - bl sub_813C64C - ldr r1, _0812B60C @ =gUnknown_845B080 - ldr r0, _0812B610 @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_813C4CC - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B608: .4byte gUnknown_841DFC9 -_0812B60C: .4byte gUnknown_845B080 -_0812B610: .4byte gUnknown_3005E9C - thumb_func_end sub_812B5A8 - - thumb_func_start sub_812B614 -sub_812B614: @ 812B614 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - movs r6, 0 - ldr r3, _0812B664 @ =gUnknown_845B9E0 - ldr r0, _0812B668 @ =gUnknown_203B0EC - ldrh r1, [r0] - lsls r0, r1, 2 - ldr r2, _0812B66C @ =gUnknown_3005E9C - adds r0, r1 - ldrb r2, [r2, 0x1] - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldr r3, [r0] - movs r7, 0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _0812B6D0 -_0812B640: - adds r4, r3, r7 - ldrb r0, [r4] - str r3, [sp] - bl sub_812B780 - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp] - cmp r0, 0x1 - bne _0812B6C2 - ldr r0, _0812B66C @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0812B674 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B670 @ =gUnknown_845B0B0 - b _0812B6AA - .align 2, 0 -_0812B664: .4byte gUnknown_845B9E0 -_0812B668: .4byte gUnknown_203B0EC -_0812B66C: .4byte gUnknown_3005E9C -_0812B670: .4byte gUnknown_845B0B0 -_0812B674: - cmp r0, 0x1 - bne _0812B684 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B680 @ =gUnknown_845B218 - b _0812B6AA - .align 2, 0 -_0812B680: .4byte gUnknown_845B218 -_0812B684: - cmp r0, 0x2 - bne _0812B694 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B690 @ =gUnknown_845B3A0 - b _0812B6AA - .align 2, 0 -_0812B690: .4byte gUnknown_845B3A0 -_0812B694: - cmp r0, 0x3 - bne _0812B6A4 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B6A0 @ =gUnknown_845B500 - b _0812B6AA - .align 2, 0 -_0812B6A0: .4byte gUnknown_845B500 -_0812B6A4: - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B744 @ =gUnknown_845B540 -_0812B6AA: - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] - lsls r0, r6, 3 - adds r0, r5 - ldrb r1, [r4] - str r1, [r0, 0x4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0812B6C2: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812B640 -_0812B6D0: - bl sub_812B754 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812B710 - movs r7, 0 - ldr r3, _0812B748 @ =gUnknown_845B9BE - ldrb r0, [r3] - cmp r0, 0xFF - beq _0812B710 - ldr r4, _0812B74C @ =gUnknown_845B3A0 -_0812B6E8: - lsls r1, r6, 3 - adds r1, r5 - adds r2, r3, r7 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r2] - str r0, [r1, 0x4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812B6E8 -_0812B710: - lsls r0, r6, 3 - adds r0, r5 - ldr r1, _0812B750 @ =gUnknown_81B2E6F - str r1, [r0] - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0 - mov r0, r8 - strh r6, [r0, 0x4] - movs r0, 0x7 - mov r2, r8 - strh r0, [r2, 0x6] - strb r1, [r2, 0x8] - movs r0, 0x15 - strb r0, [r2, 0x9] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B744: .4byte gUnknown_845B540 -_0812B748: .4byte gUnknown_845B9BE -_0812B74C: .4byte gUnknown_845B3A0 -_0812B750: .4byte gUnknown_81B2E6F - thumb_func_end sub_812B614 - - thumb_func_start sub_812B754 -sub_812B754: @ 812B754 - push {lr} - movs r0, 0x96 - lsls r0, 3 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812B778 - ldr r0, _0812B774 @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0812B778 - movs r0, 0x1 - b _0812B77A - .align 2, 0 -_0812B774: .4byte gUnknown_3005E9C -_0812B778: - movs r0, 0 -_0812B77A: - pop {r1} - bx r1 - thumb_func_end sub_812B754 - - thumb_func_start sub_812B780 -sub_812B780: @ 812B780 - push {r4,r5,lr} - lsls r0, 24 - lsrs r1, r0, 24 - adds r5, r1, 0 - movs r4, 0 - ldr r0, _0812B7A8 @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0812B794 - b _0812B8AC -_0812B794: - subs r0, r1, 0x1 - cmp r0, 0x2B - bls _0812B79C - b _0812BB04 -_0812B79C: - lsls r0, 2 - ldr r1, _0812B7AC @ =_0812B7B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812B7A8: .4byte gUnknown_3005E9C -_0812B7AC: .4byte _0812B7B0 - .align 2, 0 -_0812B7B0: - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B860 - .4byte _0812BB08 - .4byte _0812B868 - .4byte _0812B870 - .4byte _0812BB08 - .4byte _0812B880 - .4byte _0812B868 - .4byte _0812B878 - .4byte _0812B890 - .4byte _0812B880 - .4byte _0812B880 - .4byte _0812B880 - .4byte _0812B868 - .4byte _0812B880 - .4byte _0812B880 - .4byte _0812B868 - .4byte _0812B880 - .4byte _0812B888 - .4byte _0812B868 - .4byte _0812B888 - .4byte _0812B878 - .4byte _0812B890 - .4byte _0812B880 - .4byte _0812B890 - .4byte _0812B896 - .4byte _0812B880 - .4byte _0812B890 - .4byte _0812B880 - .4byte _0812B890 - .4byte _0812B890 - .4byte _0812BB08 - .4byte _0812B868 - .4byte _0812B868 - .4byte _0812B880 - .4byte _0812BB08 - .4byte _0812B89C - .4byte _0812B896 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B8A4 -_0812B860: - ldr r0, _0812B864 @ =0x000002cf - b _0812BAF2 - .align 2, 0 -_0812B864: .4byte 0x000002cf -_0812B868: - ldr r0, _0812B86C @ =0x00000891 - b _0812BAF2 - .align 2, 0 -_0812B86C: .4byte 0x00000891 -_0812B870: - ldr r0, _0812B874 @ =0x00000895 - b _0812BAF2 - .align 2, 0 -_0812B874: .4byte 0x00000895 -_0812B878: - ldr r0, _0812B87C @ =0x000008a4 - b _0812BAF2 - .align 2, 0 -_0812B87C: .4byte 0x000008a4 -_0812B880: - ldr r0, _0812B884 @ =0x00000828 - b _0812BAF2 - .align 2, 0 -_0812B884: .4byte 0x00000828 -_0812B888: - ldr r0, _0812B88C @ =0x00000829 - b _0812BAF2 - .align 2, 0 -_0812B88C: .4byte 0x00000829 -_0812B890: - movs r0, 0x82 - lsls r0, 4 - b _0812BAF2 -_0812B896: - bl sub_812BB10 - b _0812BAF6 -_0812B89C: - ldr r0, _0812B8A0 @ =0x0000029b - b _0812BAF2 - .align 2, 0 -_0812B8A0: .4byte 0x0000029b -_0812B8A4: - ldr r0, _0812B8A8 @ =0x00000892 - b _0812BAF2 - .align 2, 0 -_0812B8A8: .4byte 0x00000892 -_0812B8AC: - cmp r0, 0x1 - beq _0812B8B2 - b _0812B9D8 -_0812B8B2: - subs r0, r1, 0x1 - cmp r0, 0x2F - bls _0812B8BA - b _0812BB04 -_0812B8BA: - lsls r0, 2 - ldr r1, _0812B8C4 @ =_0812B8C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812B8C4: .4byte _0812B8C8 - .align 2, 0 -_0812B8C8: - .4byte _0812B988 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812B9A8 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B990 - .4byte _0812B9BA - .4byte _0812B9C0 - .4byte _0812B9C0 - .4byte _0812B9C6 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B988 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812B9A8 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812B988 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B9D0 -_0812B988: - ldr r0, _0812B98C @ =0x00000829 - b _0812BAF2 - .align 2, 0 -_0812B98C: .4byte 0x00000829 -_0812B990: - ldr r0, _0812B99C @ =0x00000169 - movs r1, 0x1 - bl sub_8099F40 - b _0812BAF6 - .align 2, 0 -_0812B99C: .4byte 0x00000169 -_0812B9A0: - ldr r0, _0812B9A4 @ =0x00000828 - b _0812BAF2 - .align 2, 0 -_0812B9A4: .4byte 0x00000828 -_0812B9A8: - movs r0, 0x1 - bl sub_8088EDC - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _0812B9B8 - b _0812BB08 -_0812B9B8: - b _0812BB04 -_0812B9BA: - movs r0, 0x82 - lsls r0, 4 - b _0812BAF2 -_0812B9C0: - bl sub_812BB10 - b _0812BAF6 -_0812B9C6: - ldr r0, _0812B9CC @ =0x00000271 - b _0812BAF2 - .align 2, 0 -_0812B9CC: .4byte 0x00000271 -_0812B9D0: - ldr r0, _0812B9D4 @ =0x0000082c - b _0812BAF2 - .align 2, 0 -_0812B9D4: .4byte 0x0000082c -_0812B9D8: - cmp r0, 0x2 - beq _0812B9DE - b _0812BADC -_0812B9DE: - bl sub_812B754 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812BA0E - ldr r0, _0812BA20 @ =gUnknown_845B9BE - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0xFF - beq _0812BA0E - adds r1, r2, 0 -_0812B9F6: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, r5 - bne _0812BA00 - b _0812BB04 -_0812BA00: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812B9F6 -_0812BA0E: - subs r0, r5, 0x1 - cmp r0, 0x26 - bls _0812BA16 - b _0812BB08 -_0812BA16: - lsls r0, 2 - ldr r1, _0812BA24 @ =_0812BA28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BA20: .4byte gUnknown_845B9BE -_0812BA24: .4byte _0812BA28 - .align 2, 0 -_0812BA28: - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAD2 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BB08 - .4byte _0812BAD2 - .4byte _0812BAC4 - .4byte _0812BB08 - .4byte _0812BAD2 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BACC - .4byte _0812BACC - .4byte _0812BB08 - .4byte _0812BAD2 -_0812BAC4: - ldr r0, _0812BAC8 @ =0x00000828 - b _0812BAF2 - .align 2, 0 -_0812BAC8: .4byte 0x00000828 -_0812BACC: - bl sub_812BB10 - b _0812BAF6 -_0812BAD2: - ldr r0, _0812BAD8 @ =0x000008a4 - b _0812BAF2 - .align 2, 0 -_0812BAD8: .4byte 0x000008a4 -_0812BADC: - cmp r0, 0x3 - bne _0812BB00 - cmp r5, 0x5 - beq _0812BAEA - cmp r5, 0x6 - beq _0812BAF0 - b _0812BB08 -_0812BAEA: - movs r0, 0x82 - lsls r0, 4 - b _0812BAF2 -_0812BAF0: - ldr r0, _0812BAFC @ =0x00000821 -_0812BAF2: - bl FlagGet -_0812BAF6: - lsls r0, 24 - lsrs r0, 24 - b _0812BB0A - .align 2, 0 -_0812BAFC: .4byte 0x00000821 -_0812BB00: - cmp r0, 0x4 - beq _0812BB08 -_0812BB04: - movs r0, 0 - b _0812BB0A -_0812BB08: - movs r0, 0x1 -_0812BB0A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_812B780 - - thumb_func_start sub_812BB10 -sub_812BB10: @ 812BB10 - push {lr} - ldr r0, _0812BB7C @ =0x00000237 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - movs r0, 0x8E - lsls r0, 2 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB80 @ =0x00000239 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB84 @ =0x0000023a - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB88 @ =0x0000023b - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB8C @ =0x000002ef - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB90 @ =0x000001f1 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - movs r0, 0 - b _0812BB96 - .align 2, 0 -_0812BB7C: .4byte 0x00000237 -_0812BB80: .4byte 0x00000239 -_0812BB84: .4byte 0x0000023a -_0812BB88: .4byte 0x0000023b -_0812BB8C: .4byte 0x000002ef -_0812BB90: .4byte 0x000001f1 -_0812BB94: - movs r0, 0x1 -_0812BB96: - pop {r1} - bx r1 - thumb_func_end sub_812BB10 - - thumb_func_start sub_812BB9C -sub_812BB9C: @ 812BB9C - push {lr} - adds r2, r0, 0 - adds r3, r1, 0 - ldrb r0, [r2, 0xE] - cmp r0, 0xA - bhi _0812BC4C - lsls r0, 2 - ldr r1, _0812BBB4 @ =_0812BBB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BBB4: .4byte _0812BBB8 - .align 2, 0 -_0812BBB8: - .4byte _0812BC02 - .4byte _0812BC0C - .4byte _0812BC16 - .4byte _0812BC20 - .4byte _0812BC2A - .4byte _0812BC34 - .4byte _0812BC3E - .4byte _0812BC4C - .4byte _0812BBE4 - .4byte _0812BBEE - .4byte _0812BBF8 -_0812BBE4: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BC54 - b _0812BC46 -_0812BBEE: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BC80 - b _0812BC46 -_0812BBF8: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BCA8 - b _0812BC46 -_0812BC02: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BCD0 - b _0812BC46 -_0812BC0C: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BD2C - b _0812BC46 -_0812BC16: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BD64 - b _0812BC46 -_0812BC20: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BD98 - b _0812BC46 -_0812BC2A: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BE10 - b _0812BC46 -_0812BC34: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BEEC - b _0812BC46 -_0812BC3E: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BF18 -_0812BC46: - lsls r0, 24 - lsrs r0, 24 - b _0812BC4E -_0812BC4C: - movs r0, 0 -_0812BC4E: - pop {r1} - bx r1 - thumb_func_end sub_812BB9C - - thumb_func_start sub_812BC54 -sub_812BC54: @ 812BC54 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0812BC7C @ =gUnknown_841DFA5 - bl sub_812BF74 - bl sub_812BF5C - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - movs r0, 0x9 - strb r0, [r4, 0xE] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BC7C: .4byte gUnknown_841DFA5 - thumb_func_end sub_812BC54 - - thumb_func_start sub_812BC80 -sub_812BC80: @ 812BC80 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0812BCA4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812BC9A - movs r0, 0x5 - bl PlaySE - movs r0, 0xA - strb r0, [r4, 0xE] -_0812BC9A: - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BCA4: .4byte gMain - thumb_func_end sub_812BC80 - - thumb_func_start sub_812BCA8 -sub_812BCA8: @ 812BCA8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - ldr r0, _0812BCCC @ =gUnknown_3005E9C - movs r5, 0 - strb r5, [r0, 0x2] - adds r0, r4, 0 - bl sub_812BF94 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_812B4D8 - strb r5, [r4, 0xE] - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0812BCCC: .4byte gUnknown_3005E9C - thumb_func_end sub_812BCA8 - - thumb_func_start sub_812BCD0 -sub_812BCD0: @ 812BCD0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_813C690 - adds r1, r0, 0 - adds r0, r1, 0x6 - cmp r0, 0x5 - bhi _0812BD16 - lsls r0, 2 - ldr r1, _0812BCEC @ =_0812BCF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BCEC: .4byte _0812BCF0 - .align 2, 0 -_0812BCF0: - .4byte _0812BD08 - .4byte _0812BD0C - .4byte _0812BD0C - .4byte _0812BD1E - .4byte _0812BD08 - .4byte _0812BD1E -_0812BD08: - movs r0, 0 - b _0812BD20 -_0812BD0C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812BF9C - b _0812BD1E -_0812BD16: - ldr r0, _0812BD28 @ =gUnknown_3005E9C - strb r1, [r0, 0x1] - movs r0, 0x1 - strb r0, [r4, 0xE] -_0812BD1E: - movs r0, 0x1 -_0812BD20: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BD28: .4byte gUnknown_3005E9C - thumb_func_end sub_812BCD0 - - thumb_func_start sub_812BD2C -sub_812BD2C: @ 812BD2C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, _0812BD60 @ =gUnknown_3005E9C - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4, 0xD] - strb r0, [r1, 0x2] - adds r0, r4, 0 - bl sub_812BF94 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B5A8 - bl sub_813C75C - movs r0, 0x2 - bl sub_813C684 - movs r0, 0x3 - strb r0, [r4, 0xE] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BD60: .4byte gUnknown_3005E9C - thumb_func_end sub_812BD2C - - thumb_func_start sub_812BD64 -sub_812BD64: @ 812BD64 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0 - movs r1, 0 - bl sub_813C004 - movs r0, 0x1 - movs r1, 0 - bl sub_813C004 - ldr r0, _0812BD94 @ =gUnknown_3005E9C - movs r4, 0 - strb r4, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_812B4D8 - strb r4, [r5, 0xE] - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0812BD94: .4byte gUnknown_3005E9C - thumb_func_end sub_812BD64 - - thumb_func_start sub_812BD98 -sub_812BD98: @ 812BD98 - push {r4,lr} - adds r4, r0, 0 - bl sub_813C690 - adds r1, r0, 0 - adds r0, r1, 0x6 - cmp r0, 0x5 - bhi _0812BDD8 - lsls r0, 2 - ldr r1, _0812BDB4 @ =_0812BDB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BDB4: .4byte _0812BDB8 - .align 2, 0 -_0812BDB8: - .4byte _0812BDD0 - .4byte _0812BDE0 - .4byte _0812BDE0 - .4byte _0812BDE0 - .4byte _0812BDD4 - .4byte _0812BDE0 -_0812BDD0: - movs r0, 0 - b _0812BDE2 -_0812BDD4: - movs r0, 0x2 - b _0812BDDE -_0812BDD8: - ldr r0, _0812BDE8 @ =gUnknown_3005E9C - strb r1, [r0, 0x3] - movs r0, 0x4 -_0812BDDE: - strb r0, [r4, 0xE] -_0812BDE0: - movs r0, 0x1 -_0812BDE2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BDE8: .4byte gUnknown_3005E9C - thumb_func_end sub_812BD98 - - thumb_func_start sub_812BDEC -sub_812BDEC: @ 812BDEC - push {lr} - ldr r1, _0812BE08 @ =gUnknown_845B080 - ldr r0, _0812BE0C @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_813C4CC - pop {r0} - bx r0 - .align 2, 0 -_0812BE08: .4byte gUnknown_845B080 -_0812BE0C: .4byte gUnknown_3005E9C - thumb_func_end sub_812BDEC - - thumb_func_start sub_812BE10 -sub_812BE10: @ 812BE10 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _0812BE4C @ =gUnknown_3005E9C - movs r0, 0x2 - strb r0, [r4] - movs r0, 0 - bl sub_813BDA4 - bl sub_813C624 - ldr r0, _0812BE50 @ =gUnknown_841DFBE - bl sub_812BF74 - movs r0, 0x1 - bl sub_813BDE8 - movs r0, 0x1 - bl sub_813BEE4 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0812BE5C - ldr r0, _0812BE54 @ =gUnknown_845B0B0 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BE58 @ =gUnknown_845B164 - b _0812BEA4 - .align 2, 0 -_0812BE4C: .4byte gUnknown_3005E9C -_0812BE50: .4byte gUnknown_841DFBE -_0812BE54: .4byte gUnknown_845B0B0 -_0812BE58: .4byte gUnknown_845B164 -_0812BE5C: - cmp r0, 0x1 - bne _0812BE78 - ldr r0, _0812BE70 @ =gUnknown_845B218 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BE74 @ =gUnknown_845B2DC - b _0812BEA4 - .align 2, 0 -_0812BE70: .4byte gUnknown_845B218 -_0812BE74: .4byte gUnknown_845B2DC -_0812BE78: - cmp r0, 0x2 - bne _0812BE94 - ldr r0, _0812BE8C @ =gUnknown_845B3A0 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BE90 @ =gUnknown_845B450 - b _0812BEA4 - .align 2, 0 -_0812BE8C: .4byte gUnknown_845B3A0 -_0812BE90: .4byte gUnknown_845B450 -_0812BE94: - cmp r0, 0x3 - bne _0812BEB8 - ldr r0, _0812BEB0 @ =gUnknown_845B500 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BEB4 @ =gUnknown_845B520 -_0812BEA4: - adds r1, r2 - ldr r1, [r1] - bl sub_813C50C - b _0812BECC - .align 2, 0 -_0812BEB0: .4byte gUnknown_845B500 -_0812BEB4: .4byte gUnknown_845B520 -_0812BEB8: - ldr r0, _0812BEE4 @ =gUnknown_845B540 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BEE8 @ =gUnknown_845B5D0 - adds r1, r2 - ldr r1, [r1] - bl sub_813C50C -_0812BECC: - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - movs r0, 0x6 - strb r0, [r5, 0xE] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BEE4: .4byte gUnknown_845B540 -_0812BEE8: .4byte gUnknown_845B5D0 - thumb_func_end sub_812BE10 - - thumb_func_start sub_812BEEC -sub_812BEEC: @ 812BEEC - push {r4,lr} - adds r4, r0, 0 - ldr r2, _0812BF14 @ =gUnknown_3005E9C - movs r0, 0x1 - strb r0, [r2] - adds r0, r4, 0 - bl sub_812B5A8 - bl sub_813C75C - movs r0, 0x2 - bl sub_813C684 - movs r0, 0x3 - strb r0, [r4, 0xE] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BF14: .4byte gUnknown_3005E9C - thumb_func_end sub_812BEEC - - thumb_func_start sub_812BF18 -sub_812BF18: @ 812BF18 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0812BF40 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0812BF30 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812BF44 -_0812BF30: - movs r0, 0x5 - bl PlaySE - movs r0, 0x5 - strb r0, [r4, 0xE] - movs r0, 0x1 - b _0812BF54 - .align 2, 0 -_0812BF40: .4byte gMain -_0812BF44: - movs r0, 0xC0 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _0812BF52 - movs r0, 0x1 - b _0812BF54 -_0812BF52: - movs r0, 0 -_0812BF54: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812BF18 - - thumb_func_start sub_812BF5C -sub_812BF5C: @ 812BF5C - push {lr} - bl sub_813C624 - ldr r0, _0812BF70 @ =gUnknown_81B2FC9 - movs r1, 0 - movs r2, 0 - bl sub_813C4CC - pop {r0} - bx r0 - .align 2, 0 -_0812BF70: .4byte gUnknown_81B2FC9 - thumb_func_end sub_812BF5C - - thumb_func_start sub_812BF74 -sub_812BF74: @ 812BF74 - push {r4,lr} - adds r4, r0, 0 - bl sub_813C5FC - adds r0, r4, 0 - bl sub_813C488 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812BF74 - - thumb_func_start sub_812BF88 -sub_812BF88: @ 812BF88 - ldr r0, _0812BF90 @ =gUnknown_3005E9C - ldrb r0, [r0] - bx lr - .align 2, 0 -_0812BF90: .4byte gUnknown_3005E9C - thumb_func_end sub_812BF88 - - thumb_func_start sub_812BF94 -sub_812BF94: @ 812BF94 - movs r1, 0 - strb r1, [r0, 0xC] - strb r1, [r0, 0xD] - bx lr - thumb_func_end sub_812BF94 - - thumb_func_start sub_812BF9C -sub_812BF9C: @ 812BF9C - push {lr} - ldrb r2, [r0, 0xC] - ldrb r0, [r0, 0xD] - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldr r1, [r2, 0x4] - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _0812BFC0 - ldr r0, _0812BFBC @ =gUnknown_845B098 - ldr r0, [r0, 0x14] - bl sub_813C584 - b _0812BFCC - .align 2, 0 -_0812BFBC: .4byte gUnknown_845B098 -_0812BFC0: - ldr r0, _0812BFD8 @ =gUnknown_845B098 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl sub_813C584 -_0812BFCC: - movs r0, 0x1 - bl sub_813BE30 - pop {r0} - bx r0 - .align 2, 0 -_0812BFD8: .4byte gUnknown_845B098 - thumb_func_end sub_812BF9C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/hof_pc.s b/asm/hof_pc.s index b5a437662..80f7fc3f9 100644 --- a/asm/hof_pc.s +++ b/asm/hof_pc.s @@ -57,16 +57,16 @@ _080CA59C: .4byte sub_80CA53C thumb_func_start sub_80CA5A0 sub_80CA5A0: @ 80CA5A0 push {lr} - ldr r0, _080CA5B4 @ =c2_exit_to_overworld_2_switch + ldr r0, _080CA5B4 @ =CB2_ReturnToField bl SetMainCallback2 - ldr r1, _080CA5B8 @ =gUnknown_3005020 + ldr r1, _080CA5B8 @ =gFieldCallback ldr r0, _080CA5BC @ =sub_80CA5C0 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_080CA5B4: .4byte c2_exit_to_overworld_2_switch -_080CA5B8: .4byte gUnknown_3005020 +_080CA5B4: .4byte CB2_ReturnToField +_080CA5B8: .4byte gFieldCallback _080CA5BC: .4byte sub_80CA5C0 thumb_func_end sub_80CA5A0 diff --git a/asm/ice.s b/asm/ice.s new file mode 100644 index 000000000..c04715b95 --- /dev/null +++ b/asm/ice.s @@ -0,0 +1,3099 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80AF058 +sub_80AF058: @ 80AF058 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080AF0B4 @ =gUnknown_83E5F38 + movs r2, 0x22 + ldrsh r1, [r4, r2] + movs r3, 0x24 + ldrsh r2, [r4, r3] + ldrh r3, [r4, 0x20] + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080AF09C + ldr r3, _080AF0B8 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _080AF0BC @ =sub_80AF0C8 + str r2, [r1] + adds r0, r3 + strh r5, [r0, 0x3A] + movs r1, 0xA + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] +_080AF09C: + ldrh r2, [r4, 0x24] + movs r0, 0x24 + ldrsh r1, [r4, r0] + movs r3, 0x26 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080AF0C0 + adds r0, r2, 0 + adds r0, 0x20 + strh r0, [r4, 0x24] + movs r0, 0 + b _080AF0C2 + .align 2, 0 +_080AF0B4: .4byte gUnknown_83E5F38 +_080AF0B8: .4byte gSprites +_080AF0BC: .4byte sub_80AF0C8 +_080AF0C0: + movs r0, 0x1 +_080AF0C2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80AF058 + + thumb_func_start sub_80AF0C8 +sub_80AF0C8: @ 80AF0C8 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AF0FC + ldr r3, _080AF104 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080AF0FC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF104: .4byte gTasks + thumb_func_end sub_80AF0C8 + + thumb_func_start sub_80AF108 +sub_80AF108: @ 80AF108 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x7 + ldr r3, _080AF210 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080AF214 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r4, _080AF218 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _080AF21C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + str r3, [sp] + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080AF220 @ =gBattleAnimArgs + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r1] + ldr r3, [sp] + adds r0, r3 + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x4] + mov r4, r9 + adds r0, r4, r0 + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x2] + adds r0, r6 + strh r0, [r5, 0x34] + ldrh r0, [r1, 0x6] + mov r7, r8 + adds r0, r7, r0 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8074C80 + adds r4, 0x20 + movs r0, 0x98 + lsls r0, 1 + mov r12, r0 + ldr r3, [sp] + cmp r4, r12 + bhi _080AF1E2 + adds r0, r7, 0 + adds r0, 0x20 + ldrh r1, [r5, 0x30] + ldrh r2, [r5, 0x32] + cmp r0, 0xE0 + bhi _080AF1E2 + adds r4, r1, 0 + mov r10, r12 +_080AF1AE: + mov r7, r9 + lsls r1, r7, 16 + asrs r1, 16 + adds r1, r4 + lsls r1, 16 + mov r7, r8 + lsls r0, r7, 16 + asrs r0, 16 + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsrs r0, r1, 16 + mov r9, r0 + movs r7, 0x80 + lsls r7, 14 + adds r1, r7 + lsrs r1, 16 + cmp r1, r10 + bhi _080AF1E2 + mov r1, r8 + lsls r0, r1, 16 + adds r0, r7 + lsrs r0, 16 + cmp r0, 0xE0 + bls _080AF1AE +_080AF1E2: + ldrh r0, [r5, 0x30] + negs r7, r0 + strh r7, [r5, 0x30] + ldrh r0, [r5, 0x32] + negs r4, r0 + strh r4, [r5, 0x32] + lsls r0, r3, 16 + movs r1, 0x80 + lsls r1, 14 + adds r0, r1 + lsrs r0, 16 + movs r2, 0x98 + lsls r2, 1 + mov r12, r2 + ldr r1, _080AF220 @ =gBattleAnimArgs + mov r10, r1 + cmp r0, r12 + bhi _080AF24E + lsls r1, r6, 16 + movs r2, 0x80 + lsls r2, 14 + adds r0, r1, r2 + b _080AF246 + .align 2, 0 +_080AF210: .4byte 0x000003ff +_080AF214: .4byte 0xfffffc00 +_080AF218: .4byte gBattleAnimTarget +_080AF21C: .4byte gBattleAnimAttacker +_080AF220: .4byte gBattleAnimArgs +_080AF224: + lsls r1, r3, 16 + asrs r1, 16 + adds r1, r7 + lsls r1, 16 + asrs r0, r2, 16 + adds r0, r4 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r3, r1, 16 + movs r0, 0x80 + lsls r0, 14 + adds r1, r0 + lsrs r1, 16 + cmp r1, r12 + bhi _080AF24E + lsls r1, r6, 16 + adds r0, r1, r0 +_080AF246: + lsrs r0, 16 + adds r2, r1, 0 + cmp r0, 0xE0 + bls _080AF224 +_080AF24E: + strh r3, [r5, 0x20] + strh r6, [r5, 0x22] + mov r1, r10 + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + strh r3, [r5, 0x30] + mov r2, r9 + strh r2, [r5, 0x32] + strh r6, [r5, 0x34] + mov r3, r8 + strh r3, [r5, 0x36] + adds r0, r5, 0 + bl sub_8074C80 + mov r7, r10 + ldrh r0, [r7, 0xA] + strh r0, [r5, 0x34] + ldrh r0, [r7, 0xC] + strh r0, [r5, 0x36] + ldr r0, _080AF288 @ =sub_80AF28C + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF288: .4byte sub_80AF28C + thumb_func_end sub_80AF108 + + thumb_func_start sub_80AF28C +sub_80AF28C: @ 80AF28C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AF2E4 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x3A] + adds r0, r2 + strh r0, [r4, 0x3A] + strh r1, [r4, 0x24] + strh r0, [r4, 0x26] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + b _080AF2EA +_080AF2E4: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AF2EA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF28C + + thumb_func_start sub_80AF2F0 +sub_80AF2F0: @ 80AF2F0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AF324 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x2E] + movs r0, 0x3C + strh r0, [r4, 0x30] + movs r0, 0x9 + strh r0, [r4, 0x32] + movs r0, 0x1E + strh r0, [r4, 0x34] + movs r0, 0xFE + lsls r0, 8 + strh r0, [r4, 0x36] + ldr r1, _080AF328 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080AF32C @ =sub_8074AE0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF324: .4byte gBattleAnimArgs +_080AF328: .4byte DestroyAnimSprite +_080AF32C: .4byte sub_8074AE0 + thumb_func_end sub_80AF2F0 + + thumb_func_start sub_80AF330 +sub_80AF330: @ 80AF330 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080AF364 @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldr r0, _080AF368 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF370 + ldr r0, _080AF36C @ =gBattleAnimArgs + ldrh r1, [r4, 0x32] + ldrh r0, [r0, 0x4] + subs r1, r0 + strh r1, [r4, 0x32] + b _080AF37A + .align 2, 0 +_080AF364: .4byte gBattleAnimTarget +_080AF368: .4byte gBattleAnimAttacker +_080AF36C: .4byte gBattleAnimArgs +_080AF370: + ldr r0, _080AF3A8 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] +_080AF37A: + ldr r0, _080AF3AC @ =gBattleAnimTarget + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + ldr r1, _080AF3A8 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r2, [r1, 0x6] + adds r0, r2 + strh r0, [r4, 0x36] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x2E] + ldr r1, _080AF3B0 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AF3B4 @ =sub_8075590 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF3A8: .4byte gBattleAnimArgs +_080AF3AC: .4byte gBattleAnimTarget +_080AF3B0: .4byte DestroyAnimSprite +_080AF3B4: .4byte sub_8075590 + thumb_func_end sub_80AF330 + + thumb_func_start sub_80AF3B8 +sub_80AF3B8: @ 80AF3B8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080AF3D0 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AF3D4 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + b _080AF40A + .align 2, 0 +_080AF3D0: .4byte gBattleAnimArgs +_080AF3D4: + ldr r0, _080AF41C @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_8076D9C + ldr r0, _080AF420 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF3FA + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080AF3FA: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080AF40A: + ldr r1, _080AF424 @ =sub_80AF42C + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080AF428 @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF41C: .4byte gBattleAnimTarget +_080AF420: .4byte gBattleAnimAttacker +_080AF424: .4byte sub_80AF42C +_080AF428: .4byte sub_8074F50 + thumb_func_end sub_80AF3B8 + + thumb_func_start sub_80AF42C +sub_80AF42C: @ 80AF42C + push {lr} + adds r3, r0, 0 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080AF462 + adds r0, r3, 0 + bl move_anim_8074EE0 +_080AF462: + pop {r0} + bx r0 + thumb_func_end sub_80AF42C + + thumb_func_start sub_80AF468 +sub_80AF468: @ 80AF468 + push {r4-r7,lr} + sub sp, 0x10 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r6, _080AF4B0 @ =gBattleAnimArgs + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AF4B8 + ldr r4, _080AF4B4 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x36] + b _080AF4CA + .align 2, 0 +_080AF4B0: .4byte gBattleAnimArgs +_080AF4B4: .4byte gBattleAnimTarget +_080AF4B8: + ldr r0, _080AF4E4 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C +_080AF4CA: + ldr r0, _080AF4E8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF4F0 + ldr r0, _080AF4EC @ =gBattleAnimArgs + ldrh r1, [r5, 0x32] + ldrh r0, [r0, 0x4] + subs r1, r0 + strh r1, [r5, 0x32] + b _080AF4FA + .align 2, 0 +_080AF4E4: .4byte gBattleAnimTarget +_080AF4E8: .4byte gBattleAnimAttacker +_080AF4EC: .4byte gBattleAnimArgs +_080AF4F0: + ldr r0, _080AF598 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] +_080AF4FA: + adds r7, r5, 0 + adds r7, 0x2E + adds r2, r7, 0 + mov r1, sp + movs r4, 0x7 +_080AF504: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080AF504 + adds r0, r5, 0 + bl sub_8075804 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + eors r0, r1 + strh r0, [r5, 0x32] +_080AF526: + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_807578C + movs r0, 0x20 + ldrsh r1, [r5, r0] + movs r2, 0x24 + ldrsh r0, [r5, r2] + adds r1, r0 + adds r1, 0x10 + movs r0, 0x88 + lsls r0, 1 + cmp r1, r0 + bhi _080AF55A + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080AF55A + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AF526 +_080AF55A: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldr r6, _080AF59C @ =sub_8075830 + ldr r1, _080AF5A0 @ =sub_80AF5A4 + mov r3, sp + adds r2, r7, 0 + movs r4, 0x7 +_080AF57A: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080AF57A + str r6, [r5, 0x1C] + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF598: .4byte gBattleAnimArgs +_080AF59C: .4byte sub_8075830 +_080AF5A0: .4byte sub_80AF5A4 + thumb_func_end sub_80AF468 + + thumb_func_start sub_80AF5A4 +sub_80AF5A4: @ 80AF5A4 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r5, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r5, [r4, 0x26] + strh r5, [r4, 0x24] + movs r0, 0x80 + strh r0, [r4, 0x2E] + ldr r0, _080AF600 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + ldr r1, _080AF604 @ =0x0000ffec + cmp r0, 0 + beq _080AF5D4 + movs r1, 0x14 +_080AF5D4: + movs r2, 0x2E + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x34] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + strh r0, [r4, 0x36] + strh r5, [r4, 0x38] + ldr r1, _080AF608 @ =sub_80AF60C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF600: .4byte gBattleAnimAttacker +_080AF604: .4byte 0x0000ffec +_080AF608: .4byte sub_80AF60C + thumb_func_end sub_80AF5A4 + + thumb_func_start sub_80AF60C +sub_80AF60C: @ 80AF60C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AF660 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + ldr r1, _080AF664 @ =0x0000ffec + cmp r0, 0 + beq _080AF622 + movs r1, 0x14 +_080AF622: + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0x1F + bgt _080AF668 + movs r2, 0x2E + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 16 + bl Sin + ldrh r1, [r4, 0x34] + subs r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x36] + subs r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x10 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + b _080AF686 + .align 2, 0 +_080AF660: .4byte gBattleAnimAttacker +_080AF664: .4byte 0x0000ffec +_080AF668: + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + strh r1, [r4, 0x36] + strh r1, [r4, 0x34] + ldr r0, _080AF68C @ =sub_80AF690 + str r0, [r4, 0x1C] +_080AF686: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF68C: .4byte sub_80AF690 + thumb_func_end sub_80AF60C + + thumb_func_start sub_80AF690 +sub_80AF690: @ 80AF690 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_807578C + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080AF6CC + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r1, r0, r1 + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bgt _080AF6CC + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AF6D2 +_080AF6CC: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AF6D2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF690 + + thumb_func_start sub_80AF6D8 +sub_80AF6D8: @ 80AF6D8 + push {r4-r7,lr} + sub sp, 0x10 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r1, _080AF71C @ =gBattleAnimArgs + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080AF724 + ldr r4, _080AF720 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080AF736 + .align 2, 0 +_080AF71C: .4byte gBattleAnimArgs +_080AF720: .4byte gBattleAnimTarget +_080AF724: + ldr r0, _080AF754 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_8076D9C +_080AF736: + ldr r0, _080AF758 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF760 + ldr r0, _080AF75C @ =gBattleAnimArgs + ldrh r1, [r5, 0x32] + ldrh r2, [r0, 0x4] + subs r1, r2 + strh r1, [r5, 0x32] + adds r1, r0, 0 + b _080AF76A + .align 2, 0 +_080AF754: .4byte gBattleAnimTarget +_080AF758: .4byte gBattleAnimAttacker +_080AF75C: .4byte gBattleAnimArgs +_080AF760: + ldr r1, _080AF814 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] +_080AF76A: + ldrh r0, [r1, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8075804 + adds r7, r5, 0 + adds r7, 0x2E + adds r2, r7, 0 + mov r1, sp + movs r4, 0x7 +_080AF782: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080AF782 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + eors r0, r1 + strh r0, [r5, 0x32] +_080AF79E: + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_807578C + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r2, 0x24 + ldrsh r0, [r5, r2] + adds r1, r0 + adds r1, 0x10 + movs r0, 0x88 + lsls r0, 1 + cmp r1, r0 + bhi _080AF7D2 + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080AF7D2 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AF79E +_080AF7D2: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldr r1, _080AF814 @ =gBattleAnimArgs + ldr r6, _080AF818 @ =sub_80AF81C + mov r3, sp + adds r2, r7, 0 + movs r4, 0x7 +_080AF7F2: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080AF7F2 + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x38] + ldrh r0, [r1, 0xC] + strh r0, [r5, 0x3A] + str r6, [r5, 0x1C] + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF814: .4byte gBattleAnimArgs +_080AF818: .4byte sub_80AF81C + thumb_func_end sub_80AF6D8 + + thumb_func_start sub_80AF81C +sub_80AF81C: @ 80AF81C + push {r4,lr} + adds r4, r0, 0 + bl sub_807578C + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AF830 + movs r0, 0x1 + strh r0, [r4, 0x2E] +_080AF830: + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080AF886 + movs r2, 0x20 + ldrsh r0, [r4, r2] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080AF880 + movs r0, 0x22 + ldrsh r1, [r4, r0] + movs r2, 0x26 + ldrsh r0, [r4, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080AF880 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080AF886 +_080AF880: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AF886: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF81C + + thumb_func_start sub_80AF88C +sub_80AF88C: @ 80AF88C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AF8F8 + ldr r5, _080AF8AC @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AF8B0 + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 + b _080AF8E6 + .align 2, 0 +_080AF8AC: .4byte gBattleAnimArgs +_080AF8B0: + ldr r0, _080AF8F0 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldr r0, _080AF8F4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF8D6 + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080AF8D6: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080AF8E6: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080AF90C + .align 2, 0 +_080AF8F0: .4byte gBattleAnimTarget +_080AF8F4: .4byte gBattleAnimAttacker +_080AF8F8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AF90C + adds r0, r4, 0 + bl DestroyAnimSprite +_080AF90C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AF88C + + thumb_func_start sub_80AF914 +sub_80AF914: @ 80AF914 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080AF934 @ =gBattleAnimArgs + movs r1, 0x8 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AF984 + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AF938 + adds r0, r5, 0 + movs r1, 0 + bl sub_8075160 + b _080AF976 + .align 2, 0 +_080AF934: .4byte gBattleAnimArgs +_080AF938: + ldr r4, _080AF960 @ =gBattleAnimAttacker + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF964 + ldrh r0, [r5, 0x20] + ldrh r1, [r6] + subs r0, r1 + b _080AF96A + .align 2, 0 +_080AF960: .4byte gBattleAnimAttacker +_080AF964: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080AF96A: + strh r0, [r5, 0x20] + ldr r0, _080AF97C @ =gBattleAnimArgs + ldrh r0, [r0, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] +_080AF976: + ldr r0, _080AF980 @ =gBattleAnimAttacker + b _080AF9D4 + .align 2, 0 +_080AF97C: .4byte gBattleAnimArgs +_080AF980: .4byte gBattleAnimAttacker +_080AF984: + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080AF996 + adds r0, r5, 0 + movs r1, 0 + bl sub_8075114 + b _080AF9D2 +_080AF996: + ldr r4, _080AF9BC @ =gBattleAnimTarget + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AF9C0 + ldrh r0, [r5, 0x20] + ldrh r1, [r6] + subs r0, r1 + b _080AF9C6 + .align 2, 0 +_080AF9BC: .4byte gBattleAnimTarget +_080AF9C0: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080AF9C6: + strh r0, [r5, 0x20] + ldr r0, _080AF9F0 @ =gBattleAnimArgs + ldrh r0, [r0, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] +_080AF9D2: + ldr r0, _080AF9F4 @ =gBattleAnimTarget +_080AF9D4: + ldrb r0, [r0] + strh r0, [r5, 0x3C] + ldr r0, _080AF9F0 @ =gBattleAnimArgs + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080AF9EC + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _080AF9F8 +_080AF9EC: + movs r0, 0x20 + b _080AF9FA + .align 2, 0 +_080AF9F0: .4byte gBattleAnimArgs +_080AF9F4: .4byte gBattleAnimTarget +_080AF9F8: + movs r0, 0x40 +_080AF9FA: + strh r0, [r5, 0x3A] + ldr r0, _080AFA40 @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AFA10 + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] +_080AFA10: + ldr r1, _080AFA44 @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrh r1, [r1, 0x4] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r5, 0x38] + ldr r1, _080AFA48 @ =sub_80AFA4C + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AFA40: .4byte gBattleAnimTarget +_080AFA44: .4byte gBattleAnimArgs +_080AFA48: .4byte sub_80AFA4C + thumb_func_end sub_80AF914 + + thumb_func_start sub_80AFA4C +sub_80AFA4C: @ 80AFA4C + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + bne _080AFAD6 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r1, 0x6 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080AFAA8 + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bl sub_8076884 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080AFACA +_080AFAA8: + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bl sub_8076884 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_080AFACA: + ldrh r0, [r4, 0x38] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080AFADC +_080AFAD6: + adds r0, r4, 0 + bl DestroyAnimSprite +_080AFADC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AFA4C + + thumb_func_start sub_80AFAE4 +sub_80AFAE4: @ 80AFAE4 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080AFBA0 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AFB26 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080AFB26: + ldr r0, _080AFBA4 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080AFBA8 @ =gBattle_BG1_Y + strh r1, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AFBAC @ =gUnknown_83C3540 + movs r2, 0x80 + lsls r2, 4 + mov r3, sp + ldrh r3, [r3, 0xA] + bl LoadBgTiles + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AFBB0 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap + bl sub_807543C + ldr r0, _080AFBB4 @ =gUnknown_83C2CE0 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080AFB88 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080AFB88: + ldr r0, _080AFBB8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AFBBC @ =sub_80AFBC0 + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFBA0: .4byte 0x00003f42 +_080AFBA4: .4byte gBattle_BG1_X +_080AFBA8: .4byte gBattle_BG1_Y +_080AFBAC: .4byte gUnknown_83C3540 +_080AFBB0: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap +_080AFBB4: .4byte gUnknown_83C2CE0 +_080AFBB8: .4byte gTasks +_080AFBBC: .4byte sub_80AFBC0 + thumb_func_end sub_80AFAE4 + + thumb_func_start sub_80AFBC0 +sub_80AFBC0: @ 80AFBC0 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AFBF4 @ =gBattle_BG1_X + ldr r2, _080AFBF8 @ =0x0000ffff + adds r0, r2, 0 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + ldr r1, _080AFBFC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080AFBEA + b _080AFD36 +_080AFBEA: + lsls r0, 2 + ldr r1, _080AFC00 @ =_080AFC04 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AFBF4: .4byte gBattle_BG1_X +_080AFBF8: .4byte 0x0000ffff +_080AFBFC: .4byte gTasks +_080AFC00: .4byte _080AFC04 + .align 2, 0 +_080AFC04: + .4byte _080AFC18 + .4byte _080AFC70 + .4byte _080AFC92 + .4byte _080AFCD6 + .4byte _080AFCF8 +_080AFC18: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + beq _080AFC32 + b _080AFD36 +_080AFC32: + strh r5, [r4, 0x1C] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + ldr r1, _080AFC6C @ =gUnknown_83E64D4 + movs r2, 0x1A + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r1, [r0] + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x9 + bne _080AFD36 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x1E] + b _080AFD36 + .align 2, 0 +_080AFC6C: .4byte gUnknown_83E64D4 +_080AFC70: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x51 + bne _080AFD36 + movs r0, 0x9 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080AFD36 +_080AFC92: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080AFD36 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080AFD36 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080AFD36 +_080AFCD6: + mov r0, sp + bl sub_80752A0 + movs r0, 0x1 + bl sub_8075358 + movs r0, 0x2 + bl sub_8075358 + ldr r0, _080AFD40 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080AFCF8: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AFD0C + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080AFD0C: + ldr r0, _080AFD44 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080AFD48 @ =gBattle_BG1_Y + strh r1, [r0] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AFD36: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFD40: .4byte gTasks +_080AFD44: .4byte gBattle_BG1_X +_080AFD48: .4byte gBattle_BG1_Y + thumb_func_end sub_80AFBC0 + + thumb_func_start sub_80AFD4C +sub_80AFD4C: @ 80AFD4C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080AFD78 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _080AFD7C @ =sub_8075DF4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFD78: .4byte gBattleAnimAttacker +_080AFD7C: .4byte sub_8075DF4 + thumb_func_end sub_80AFD4C + + thumb_func_start sub_80AFD80 +sub_80AFD80: @ 80AFD80 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080AFE40 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AFDC2 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080AFDC2: + ldr r0, _080AFE44 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r4, _080AFE48 @ =gBattle_BG1_Y + strh r1, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AFE4C @ =gUnknown_83C3540 + movs r2, 0x80 + lsls r2, 4 + mov r3, sp + ldrh r3, [r3, 0xA] + bl LoadBgTiles + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AFE50 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap + bl sub_807543C + ldr r0, _080AFE54 @ =gUnknown_83C2CE0 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080AFE24 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080AFE24: + ldr r1, _080AFE58 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080AFE5C @ =0x0000ffff + strh r1, [r0, 0x26] + ldr r1, _080AFE60 @ =sub_80AFE64 + str r1, [r0] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFE40: .4byte 0x00003f42 +_080AFE44: .4byte gBattle_BG1_X +_080AFE48: .4byte gBattle_BG1_Y +_080AFE4C: .4byte gUnknown_83C3540 +_080AFE50: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap +_080AFE54: .4byte gUnknown_83C2CE0 +_080AFE58: .4byte gTasks +_080AFE5C: .4byte 0x0000ffff +_080AFE60: .4byte sub_80AFE64 + thumb_func_end sub_80AFD80 + + thumb_func_start sub_80AFE64 +sub_80AFE64: @ 80AFE64 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _080AFE94 @ =gBattle_BG1_X + ldr r3, _080AFE98 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r3 + ldrh r0, [r1, 0x26] + ldrh r5, [r2] + adds r0, r5 + strh r0, [r2] + movs r2, 0x20 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + bls _080AFE8A + b _080AFFBE +_080AFE8A: + lsls r0, 2 + ldr r1, _080AFE9C @ =_080AFEA0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AFE94: .4byte gBattle_BG1_X +_080AFE98: .4byte gTasks +_080AFE9C: .4byte _080AFEA0 + .align 2, 0 +_080AFEA0: + .4byte _080AFEB4 + .4byte _080AFEF8 + .4byte _080AFF1A + .4byte _080AFF5E + .4byte _080AFF80 +_080AFEB4: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r3 + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + ldr r1, _080AFEF4 @ =gUnknown_83E6500 + movs r5, 0x1A + ldrsh r0, [r4, r5] + adds r0, r1 + ldrb r1, [r0] + strh r1, [r4, 0x1E] + movs r0, 0x11 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bne _080AFFBE + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0x1E] + b _080AFFBE + .align 2, 0 +_080AFEF4: .4byte gUnknown_83E6500 +_080AFEF8: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r3 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x51 + bne _080AFFBE + movs r0, 0x5 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080AFFBE +_080AFF1A: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r3 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080AFFBE + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080AFFBE + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080AFFBE +_080AFF5E: + mov r0, sp + bl sub_80752A0 + movs r0, 0x1 + bl sub_8075358 + movs r0, 0x2 + bl sub_8075358 + ldr r0, _080AFFC8 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080AFF80: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AFF94 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080AFF94: + ldr r0, _080AFFCC @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080AFFD0 @ =gBattle_BG1_Y + strh r1, [r0] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AFFBE: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFFC8: .4byte gTasks +_080AFFCC: .4byte gBattle_BG1_X +_080AFFD0: .4byte gBattle_BG1_Y + thumb_func_end sub_80AFE64 + + thumb_func_start sub_80AFFD4 +sub_80AFFD4: @ 80AFFD4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldr r6, _080B00BC @ =gBattleAnimArgs + ldrh r0, [r6] + strh r0, [r5, 0x2E] + ldr r0, _080B00C0 @ =gBattleAnimAttacker + mov r8, r0 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8074480 + adds r4, r0, 0 + ldr r7, _080B00C4 @ =gBattleAnimTarget + ldrb r0, [r7] + movs r1, 0x2 + bl sub_8074480 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bcs _080B0008 + movs r0, 0x80 + lsls r0, 8 + strh r0, [r5, 0x3C] +_080B0008: + ldr r3, _080B00C8 @ =gUnknown_2023BD6 + ldrb r0, [r7] + adds r0, r3 + ldrb r1, [r0] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080B0068 + ldrh r0, [r6, 0x2] + negs r0, r0 + strh r0, [r6, 0x2] + ldrh r0, [r6, 0x6] + negs r0, r0 + strh r0, [r6, 0x6] + movs r1, 0x3C + ldrsh r0, [r5, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080B0064 + mov r1, r8 + ldrb r0, [r1] + adds r0, r3 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080B0064 + movs r0, 0x1 + bl GetAnimBankSpriteId + ldr r2, _080B00CC @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0x1 + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] +_080B0064: + movs r0, 0x1 + strh r0, [r5, 0x3A] +_080B0068: + ldr r4, _080B00C0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r6, _080B00BC @ =gBattleAnimArgs + movs r1, 0xE + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080B00D0 + ldrh r0, [r6, 0x2] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x30] + ldr r4, _080B00C4 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + b _080B00F8 + .align 2, 0 +_080B00BC: .4byte gBattleAnimArgs +_080B00C0: .4byte gBattleAnimAttacker +_080B00C4: .4byte gBattleAnimTarget +_080B00C8: .4byte gUnknown_2023BD6 +_080B00CC: .4byte gSprites +_080B00D0: + ldrh r0, [r6, 0x2] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x30] + ldr r4, _080B0140 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x1 +_080B00F8: + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x8] + adds r0, r6 + strh r0, [r5, 0x36] + ldrb r0, [r4] + bl sub_8076884 + lsls r0, 24 + lsrs r0, 16 + ldrh r1, [r5, 0x3C] + orrs r0, r1 + strh r0, [r5, 0x3C] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B012C + movs r0, 0x1 + strh r0, [r5, 0x3A] + adds r1, r5, 0 + adds r1, 0x43 + movs r0, 0x80 + strb r0, [r1] +_080B012C: + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080B0144 @ =sub_80B0148 + str r0, [r5, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0140: .4byte gBattleAnimTarget +_080B0144: .4byte sub_80B0148 + thumb_func_end sub_80AFFD4 + + thumb_func_start sub_80B0148 +sub_80B0148: @ 80B0148 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3C] + movs r5, 0xFF + movs r1, 0xFF + ands r1, r0 + cmp r1, 0x1 + beq _080B0230 + cmp r1, 0x1 + bgt _080B0162 + cmp r1, 0 + beq _080B016A + b _080B0380 +_080B0162: + cmp r1, 0x2 + bne _080B0168 + b _080B0344 +_080B0168: + b _080B0380 +_080B016A: + adds r0, r4, 0 + bl sub_80755E0 + ldr r1, _080B0194 @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r0, 4 + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B0198 + ldrh r0, [r4, 0x38] + subs r0, 0x8 + b _080B019C + .align 2, 0 +_080B0194: .4byte gSineTable +_080B0198: + ldrh r0, [r4, 0x38] + adds r0, 0x8 +_080B019C: + ands r0, r5 + strh r0, [r4, 0x38] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B01AA + b _080B0380 +_080B01AA: + movs r5, 0x50 + strh r5, [r4, 0x2E] + ldr r6, _080B01F8 @ =gBattleAnimTarget + ldrb r0, [r6] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, 0x1D + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B0200 + ldr r1, _080B01FC @ =gUnknown_2023BD6 + ldrb r0, [r6] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B0200 + movs r0, 0xCC + strh r0, [r4, 0x38] + b _080B0202 + .align 2, 0 +_080B01F8: .4byte gBattleAnimTarget +_080B01FC: .4byte gUnknown_2023BD6 +_080B0200: + strh r5, [r4, 0x38] +_080B0202: + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080B022C @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r0, 3 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + b _080B0380 + .align 2, 0 +_080B022C: .4byte gSineTable +_080B0230: + adds r0, r4, 0 + bl sub_80755E0 + ldr r1, _080B028C @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + asrs r0, 3 + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + adds r0, 0x40 + lsls r0, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 1 + adds r0, r1 + negs r0, r0 + asrs r0, 8 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B02AE + ldrh r1, [r4, 0x38] + adds r0, r1, 0 + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + adds r3, r1, 0 + cmp r0, 0x7F + bhi _080B0290 + ldrh r1, [r4, 0x3C] + lsls r1, 16 + asrs r1, 24 + b _080B0298 + .align 2, 0 +_080B028C: .4byte gSineTable +_080B0290: + ldrh r1, [r4, 0x3C] + lsls r1, 16 + asrs r1, 24 + adds r1, 0x1 +_080B0298: + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + adds r0, r3, 0x4 + b _080B02CE +_080B02AE: + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080B02C2 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x80 + b _080B02C8 +_080B02C2: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x8C +_080B02C8: + strb r0, [r1] + ldrh r0, [r4, 0x38] + subs r0, 0x4 +_080B02CE: + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bgt _080B0380 + movs r5, 0 + movs r0, 0xC0 + lsls r0, 2 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, 0x4 + strh r0, [r4, 0x36] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B0328 + ldr r1, _080B0320 @ =gUnknown_2023BD6 + ldr r0, _080B0324 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B0328 + movs r0, 0x80 + lsls r0, 1 + b _080B032A + .align 2, 0 +_080B0320: .4byte gUnknown_2023BD6 +_080B0324: .4byte gBattleAnimTarget +_080B0328: + ldr r0, _080B0340 @ =0x0000fff0 +_080B032A: + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x3C] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + adds r0, r4, 0 + bl sub_8075678 + b _080B0380 + .align 2, 0 +_080B0340: .4byte 0x0000fff0 +_080B0344: + adds r0, r4, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080B0380 + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B0372 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] +_080B0372: + adds r0, r4, 0 + bl DestroySprite + ldr r1, _080B0388 @ =gUnknown_2037EE2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080B0380: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B0388: .4byte gUnknown_2037EE2 + thumb_func_end sub_80B0148 + + thumb_func_start sub_80B038C +sub_80B038C: @ 80B038C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B03A0 @ =gTasks + adds r1, r0 + ldr r0, _080B03A4 @ =sub_80B03A8 + str r0, [r1] + bx lr + .align 2, 0 +_080B03A0: .4byte gTasks +_080B03A4: .4byte sub_80B03A8 + thumb_func_end sub_80B038C + + thumb_func_start sub_80B03A8 +sub_80B03A8: @ 80B03A8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B03CC @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080B03EC + cmp r5, 0x1 + bgt _080B03D0 + cmp r5, 0 + beq _080B03D6 + b _080B0450 + .align 2, 0 +_080B03CC: .4byte gTasks +_080B03D0: + cmp r5, 0x2 + beq _080B0442 + b _080B0450 +_080B03D6: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B0450 + strh r5, [r4, 0x10] + strh r5, [r4, 0x12] + strh r5, [r4, 0xC] + b _080B0428 +_080B03EC: + ldrh r1, [r4, 0x12] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080B043C + ldrb r0, [r4, 0xE] + ldrb r1, [r4, 0xC] + movs r3, 0x1 + bl sub_80B0458 + lsls r0, 24 + cmp r0, 0 + beq _080B040C + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] +_080B040C: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080B0438 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080B0430 +_080B0428: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B0450 +_080B0430: + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] + b _080B0450 +_080B0438: + strh r5, [r4, 0x12] + b _080B0450 +_080B043C: + subs r0, r1, 0x1 + strh r0, [r4, 0x12] + b _080B0450 +_080B0442: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B0450 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B0450: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B03A8 + + thumb_func_start sub_80B0458 +sub_80B0458: @ 80B0458 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + movs r1, 0 + str r1, [sp, 0x4] + ldr r1, _080B04D0 @ =gUnknown_83E652C + lsrs r0, 22 + adds r4, r0, r1 + ldrb r0, [r4, 0x3] + lsls r0, 24 + asrs r0, 28 + mov r8, r0 + cmp r0, 0x2 + beq _080B0544 + ldrh r0, [r4, 0x2] + lsls r0, 20 + lsrs r0, 24 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B0544 + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + mov r1, r8 + cmp r1, 0 + beq _080B04D4 + cmp r1, 0x1 + beq _080B050A + b _080B0556 + .align 2, 0 +_080B04D0: .4byte gUnknown_83E652C +_080B04D4: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r5, 0 + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r6, 16 + asrs r1, 16 + subs r1, r0 + b _080B053E +_080B050A: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r7, 16 + asrs r1, 16 + adds r1, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r5, 0 + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r6, 16 + asrs r1, 16 + adds r1, r0 +_080B053E: + lsls r1, 16 + lsrs r6, r1, 16 + b _080B0556 +_080B0544: + ldrh r0, [r4] + lsls r0, 22 + asrs r0, 6 + lsrs r7, r0, 16 + ldr r0, [r4] + lsls r0, 12 + asrs r0, 22 + lsls r0, 16 + lsrs r6, r0, 16 +_080B0556: + lsls r0, r6, 16 + asrs r0, 16 + adds r0, 0x8 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r0 + ldr r0, _080B05B0 @ =gUnknown_83E65A4 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x8 + negs r2, r2 + movs r3, 0x12 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080B05B8 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r0, _080B05B4 @ =gSprites + adds r4, r0 + adds r0, r4, 0 + mov r1, r9 + bl StartSpriteAffineAnim + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + strh r7, [r4, 0x34] + strh r6, [r4, 0x36] + mov r1, r9 + strh r1, [r4, 0x38] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x3A] + mov r1, r10 + strh r1, [r4, 0x3C] + movs r0, 0x1 + b _080B05BA + .align 2, 0 +_080B05B0: .4byte gUnknown_83E65A4 +_080B05B4: .4byte gSprites +_080B05B8: + movs r0, 0 +_080B05BA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B0458 + + thumb_func_start sub_80B05CC +sub_80B05CC: @ 80B05CC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x22] + adds r2, r1, 0 + adds r2, 0x8 + strh r2, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _080B05F6 + lsls r0, r2, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080B06A6 +_080B05F6: + movs r3, 0x2E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080B0678 + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B0678 + ldr r0, _080B066C @ =gUnknown_83E63E0 + movs r2, 0x34 + ldrsh r1, [r4, r2] + movs r3, 0x36 + ldrsh r2, [r4, r3] + adds r3, r4, 0 + adds r3, 0x43 + ldrb r3, [r3] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + cmp r0, 0x40 + beq _080B065A + ldr r2, _080B0670 @ =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080B0674 @ =sub_80B06B0 + str r1, [r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x3A] + strh r1, [r0, 0x3A] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x3C] + strh r1, [r0, 0x3C] +_080B065A: + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite + b _080B06A6 + .align 2, 0 +_080B066C: .4byte gUnknown_83E63E0 +_080B0670: .4byte gSprites +_080B0674: .4byte sub_80B06B0 +_080B0678: + ldr r3, _080B06AC @ =gTasks + movs r2, 0x3C + ldrsh r1, [r4, r2] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080B06A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B06AC: .4byte gTasks + thumb_func_end sub_80B05CC + + thumb_func_start sub_80B06B0 +sub_80B06B0: @ 80B06B0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080B06F0 + ldr r3, _080B06F8 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080B06F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B06F8: .4byte gTasks + thumb_func_end sub_80B06B0 + + thumb_func_start unc_080B06FC +unc_080B06FC: @ 80B06FC + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080B077C @ =gAnimDisableStructPtr + ldr r0, [r0] + ldrb r1, [r0, 0x11] + lsrs r0, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r0, r1 + subs r0, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080B071A + movs r1, 0x4 +_080B071A: + adds r0, r5, 0 + bl StartSpriteAffineAnim + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r6, _080B0780 @ =gBattleAnimArgs + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080B0784 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B0742 + ldrh r0, [r6, 0x4] + negs r0, r0 + strh r0, [r6, 0x4] +_080B0742: + ldr r4, _080B0788 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r6, 0xA] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080B078C @ =sub_80B0790 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B077C: .4byte gAnimDisableStructPtr +_080B0780: .4byte gBattleAnimArgs +_080B0784: .4byte gBattleAnimAttacker +_080B0788: .4byte gBattleAnimTarget +_080B078C: .4byte sub_80B0790 + thumb_func_end unc_080B06FC + + thumb_func_start sub_80B0790 +sub_80B0790: @ 80B0790 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B07B2 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _080B07B8 @ =sub_8074F6C + str r0, [r4, 0x1C] + ldr r1, _080B07BC @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 +_080B07B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B07B8: .4byte sub_8074F6C +_080B07BC: .4byte DestroyAnimSprite + thumb_func_end sub_80B0790 + + thumb_func_start sub_80B07C0 +sub_80B07C0: @ 80B07C0 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r3, _080B0814 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B0818 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + bl Random + movs r5, 0xFF + ands r5, r0 + movs r0, 0x80 + lsls r0, 1 + adds r6, r0, 0 + orrs r5, r6 + bl Random + ldr r1, _080B081C @ =0x000001ff + ands r1, r0 + adds r0, r1, 0 + cmp r0, 0xFF + ble _080B0806 + subs r0, r6, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080B0806: + strh r5, [r4, 0x30] + strh r1, [r4, 0x32] + ldr r0, _080B0820 @ =sub_80B0824 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B0814: .4byte 0x000003ff +_080B0818: .4byte 0xfffffc00 +_080B081C: .4byte 0x000001ff +_080B0820: .4byte sub_80B0824 + thumb_func_end sub_80B07C0 + + thumb_func_start sub_80B0824 +sub_80B0824: @ 80B0824 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r3, r0, r1 + strh r3, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r4, [r2, 0x36] + adds r1, r4 + strh r1, [r2, 0x36] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080B0848 + lsls r0, r3, 16 + asrs r0, 24 + negs r0, r0 + b _080B084C +_080B0848: + lsls r0, r3, 16 + asrs r0, 24 +_080B084C: + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080B086A + adds r0, r2, 0 + bl DestroyAnimSprite +_080B086A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B0824 + + thumb_func_start sub_80B0870 +sub_80B0870: @ 80B0870 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B0898 @ =gBattleAnimArgs + ldrb r3, [r1] + lsls r3, 1 + adds r3, r1 + ldr r1, _080B089C @ =gAnimDisableStructPtr + ldr r1, [r1] + ldrb r1, [r1, 0x11] + lsrs r2, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r2, r1 + subs r2, 0x1 + strh r2, [r3] + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080B0898: .4byte gBattleAnimArgs +_080B089C: .4byte gAnimDisableStructPtr + thumb_func_end sub_80B0870 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/intro.s b/asm/intro.s index af5104da3..909fee72e 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -166,7 +166,7 @@ _080EC65E: movs r0, 0 movs r2, 0 bl load_copyright_graphics - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes @@ -898,7 +898,7 @@ _080ECCF6: movs r1, 0x10 movs r2, 0x10 movs r3, 0 - bl sub_812E944 + bl StartBlendTask b _080ECD36 .align 2, 0 _080ECD14: .4byte 0x00003f44 @@ -907,7 +907,7 @@ _080ECD18: bl ShowBg b _080ECD36 _080ECD20: - bl sub_812E9E4 + bl IsBlendTaskActive lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 @@ -980,7 +980,7 @@ _080ECD9C: movs r1, 0x10 movs r2, 0x10 movs r3, 0 - bl sub_812E944 + bl StartBlendTask strh r4, [r6, 0x8] strh r5, [r6, 0xA] strh r4, [r6, 0x12] @@ -992,7 +992,7 @@ _080ECDC4: str r0, [r6, 0x14] b _080ECE70 _080ECDCC: - bl sub_812E9E4 + bl IsBlendTaskActive lsls r0, 24 cmp r0, 0 bne _080ECE96 @@ -1051,10 +1051,10 @@ _080ECE26: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl sub_812E944 + bl StartBlendTask b _080ECE70 _080ECE52: - bl sub_812E9E4 + bl IsBlendTaskActive lsls r0, 24 cmp r0, 0 bne _080ECE96 @@ -2742,14 +2742,14 @@ _080EDC0C: bl DisableInterrupts movs r0, 0 bl SetHBlankCallback - ldr r0, _080EDC3C @ =sub_8078914 + ldr r0, _080EDC3C @ =CB2_InitTitleScreen bl SetMainCallback2 _080EDC34: pop {r4} pop {r0} bx r0 .align 2, 0 -_080EDC3C: .4byte sub_8078914 +_080EDC3C: .4byte CB2_InitTitleScreen thumb_func_end sub_80EDBE8 thumb_func_start sub_80EDC40 @@ -3369,7 +3369,7 @@ _080EE114: _080EE11C: movs r4, 0x6 ldrsh r3, [r5, r4] - ldr r4, _080EE15C @ =gUnknown_825E074 + ldr r4, _080EE15C @ =gSineTable adds r0, r3, 0 adds r0, 0x40 lsls r0, 1 @@ -3400,7 +3400,7 @@ _080EE156: pop {r0} bx r0 .align 2, 0 -_080EE15C: .4byte gUnknown_825E074 +_080EE15C: .4byte gSineTable thumb_func_end sub_80EE024 thumb_func_start sub_80EE160 @@ -3587,7 +3587,7 @@ sub_80EE29C: @ 80EE29C lsls r1, 16 asrs r1, 20 strh r1, [r5, 0x22] - ldr r1, _080EE340 @ =gUnknown_825E074 + ldr r1, _080EE340 @ =gSineTable lsls r0, 16 asrs r0, 20 adds r0, 0x40 @@ -3646,7 +3646,7 @@ _080EE336: pop {r0} bx r0 .align 2, 0 -_080EE340: .4byte gUnknown_825E074 +_080EE340: .4byte gSineTable _080EE344: .4byte gUnknown_203AB16 _080EE348: .4byte 0x41c64e6d _080EE34C: .4byte 0x00006073 @@ -4208,7 +4208,7 @@ _080EE740: lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x24] - ldr r1, _080EE7B0 @ =gUnknown_825E074 + ldr r1, _080EE7B0 @ =gSineTable movs r3, 0x34 ldrsh r0, [r4, r3] lsls r0, 1 @@ -4253,7 +4253,7 @@ _080EE78C: strh r0, [r4, 0x3C] b _080EE818 .align 2, 0 -_080EE7B0: .4byte gUnknown_825E074 +_080EE7B0: .4byte gSineTable _080EE7B4: .4byte gUnknown_203AB04 _080EE7B8: .4byte gUnknown_203AB08 _080EE7BC: .4byte gUnknown_203AB06 @@ -4585,7 +4585,7 @@ _080EEA08: lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x24] - ldr r1, _080EEA48 @ =gUnknown_825E074 + ldr r1, _080EEA48 @ =gSineTable lsls r0, 16 asrs r0, 20 lsls r0, 1 @@ -4599,7 +4599,7 @@ _080EEA08: strh r0, [r4, 0x26] b _080EEA88 .align 2, 0 -_080EEA48: .4byte gUnknown_825E074 +_080EEA48: .4byte gSineTable _080EEA4C: ldrh r0, [r4, 0x32] lsrs r0, 4 @@ -4775,7 +4775,7 @@ _080EEB84: asrs r0, 20 negs r1, r0 strh r1, [r4, 0x24] - ldr r1, _080EEBD4 @ =gUnknown_825E074 + ldr r1, _080EEBD4 @ =gSineTable lsls r0, 1 adds r0, r1 movs r3, 0 @@ -4810,7 +4810,7 @@ _080EEBCE: pop {r0} bx r0 .align 2, 0 -_080EEBD4: .4byte gUnknown_825E074 +_080EEBD4: .4byte gSineTable _080EEBD8: .4byte gUnknown_203AB04 _080EEBDC: .4byte gUnknown_203AB08 _080EEBE0: .4byte SpriteCallbackDummy diff --git a/asm/item.s b/asm/item.s deleted file mode 100644 index aa64e54fa..000000000 --- a/asm/item.s +++ /dev/null @@ -1,1853 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GetBagItemQuantity -GetBagItemQuantity: @ 8099DA0 - adds r1, r0, 0 - ldr r0, _08099DB8 @ =gSaveBlock2Ptr - ldr r0, [r0] - movs r2, 0xF2 - lsls r2, 4 - adds r0, r2 - ldr r0, [r0] - ldrh r1, [r1] - eors r0, r1 - lsls r0, 16 - lsrs r0, 16 - bx lr - .align 2, 0 -_08099DB8: .4byte gSaveBlock2Ptr - thumb_func_end GetBagItemQuantity - - thumb_func_start sub_8099DBC -sub_8099DBC: @ 8099DBC - lsls r1, 16 - lsrs r1, 16 - ldr r2, _08099DD4 @ =gSaveBlock2Ptr - ldr r2, [r2] - movs r3, 0xF2 - lsls r3, 4 - adds r2, r3 - ldr r2, [r2] - eors r1, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_08099DD4: .4byte gSaveBlock2Ptr - thumb_func_end sub_8099DBC - - thumb_func_start GetBagItemId -GetBagItemId: @ 8099DD8 - ldrh r0, [r0] - bx lr - thumb_func_end GetBagItemId - - thumb_func_start sub_8099DDC -sub_8099DDC: @ 8099DDC - strh r1, [r0] - bx lr - thumb_func_end sub_8099DDC - - thumb_func_start ApplyNewEncryptionKeyToBagItems -ApplyNewEncryptionKeyToBagItems: @ 8099DE0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r0 - movs r1, 0 - ldr r0, _08099E34 @ =gUnknown_203988C - mov r9, r0 -_08099DF2: - movs r6, 0 - lsls r5, r1, 3 - mov r2, r9 - adds r0, r5, r2 - adds r7, r1, 0x1 - ldrb r0, [r0, 0x4] - cmp r6, r0 - bcs _08099E20 - ldr r2, _08099E34 @ =gUnknown_203988C -_08099E04: - adds r4, r5, r2 - lsls r1, r6, 2 - ldr r0, [r4] - adds r0, r1 - adds r0, 0x2 - mov r1, r8 - str r2, [sp] - bl ApplyNewEncryptionKeyToHword - adds r6, 0x1 - ldr r2, [sp] - ldrb r4, [r4, 0x4] - cmp r6, r4 - bcc _08099E04 -_08099E20: - adds r1, r7, 0 - cmp r1, 0x4 - bls _08099DF2 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099E34: .4byte gUnknown_203988C - thumb_func_end ApplyNewEncryptionKeyToBagItems - - thumb_func_start ApplyNewEncryptionKeyToBagItems_ -ApplyNewEncryptionKeyToBagItems_: @ 8099E38 - push {lr} - bl ApplyNewEncryptionKeyToBagItems - pop {r0} - bx r0 - thumb_func_end ApplyNewEncryptionKeyToBagItems_ - - thumb_func_start sub_8099E44 -sub_8099E44: @ 8099E44 - ldr r1, _08099E84 @ =gUnknown_203988C - ldr r0, _08099E88 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r3, 0xC4 - lsls r3, 2 - adds r0, r2, r3 - str r0, [r1] - movs r0, 0x2A - strb r0, [r1, 0x4] - adds r3, 0xA8 - adds r0, r2, r3 - str r0, [r1, 0x8] - movs r0, 0x1E - strb r0, [r1, 0xC] - adds r3, 0x78 - adds r0, r2, r3 - str r0, [r1, 0x10] - movs r0, 0xD - strb r0, [r1, 0x14] - adds r3, 0x34 - adds r0, r2, r3 - str r0, [r1, 0x18] - movs r0, 0x3A - strb r0, [r1, 0x1C] - ldr r0, _08099E8C @ =0x0000054c - adds r2, r0 - str r2, [r1, 0x20] - adds r1, 0x24 - movs r0, 0x2B - strb r0, [r1] - bx lr - .align 2, 0 -_08099E84: .4byte gUnknown_203988C -_08099E88: .4byte gSaveBlock1Ptr -_08099E8C: .4byte 0x0000054c - thumb_func_end sub_8099E44 - - thumb_func_start sub_8099E90 -sub_8099E90: @ 8099E90 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _08099EB8 - movs r0, 0x2B - bl sub_809C8A0 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, _08099EB4 @ =gUnknown_84162BD - adds r0, r4, 0 - bl StringAppend - b _08099EC4 - .align 2, 0 -_08099EB4: .4byte gUnknown_84162BD -_08099EB8: - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy -_08099EC4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8099E90 - - thumb_func_start sub_8099ECC -sub_8099ECC: @ 8099ECC - push {lr} - lsls r0, 24 - movs r2, 0 - ldr r1, _08099EF0 @ =gUnknown_203988C - lsrs r0, 21 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _08099EFE - ldr r3, [r0] -_08099EE0: - lsls r0, r2, 2 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _08099EF4 - lsls r0, r2, 24 - asrs r0, 24 - b _08099F02 - .align 2, 0 -_08099EF0: .4byte gUnknown_203988C -_08099EF4: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r1 - bcc _08099EE0 -_08099EFE: - movs r0, 0x1 - negs r0, r0 -_08099F02: - pop {r1} - bx r1 - thumb_func_end sub_8099ECC - - thumb_func_start sub_8099F08 -sub_8099F08: @ 8099F08 - push {lr} - lsls r0, 24 - movs r2, 0 - ldr r1, _08099F2C @ =gUnknown_203988C - lsrs r0, 21 - subs r0, 0x8 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _08099F3A - ldr r3, [r0] -_08099F1E: - lsls r0, r2, 2 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _08099F30 - movs r0, 0x1 - b _08099F3C - .align 2, 0 -_08099F2C: .4byte gUnknown_203988C -_08099F30: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _08099F1E -_08099F3A: - movs r0, 0 -_08099F3C: - pop {r1} - bx r1 - thumb_func_end sub_8099F08 - - thumb_func_start sub_8099F40 -sub_8099F40: @ 8099F40 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - cmp r0, 0 - bne _08099F5C - b _08099FA4 -_08099F58: - movs r0, 0x1 - b _08099FA6 -_08099F5C: - adds r0, r4, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - movs r2, 0 - ldr r1, _08099F94 @ =gUnknown_203988C - lsrs r0, 21 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _08099FA4 - adds r3, r0, 0 -_08099F76: - ldr r0, [r3] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, r4 - bne _08099F98 - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - bcs _08099F58 - b _08099FA4 - .align 2, 0 -_08099F94: .4byte gUnknown_203988C -_08099F98: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x4] - cmp r2, r0 - bcc _08099F76 -_08099FA4: - movs r0, 0 -_08099FA6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8099F40 - - thumb_func_start sub_8099FAC -sub_8099FAC: @ 8099FAC - push {r4,lr} - ldr r0, _08099FC0 @ =0x0000016d - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08099FD4 - b _08099FF0 - .align 2, 0 -_08099FC0: .4byte 0x0000016d -_08099FC4: - ldr r1, _08099FD0 @ =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x1 - b _08099FF6 - .align 2, 0 -_08099FD0: .4byte gSpecialVar_Result -_08099FD4: - movs r4, 0x85 -_08099FD6: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08099FC4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xAF - bls _08099FD6 -_08099FF0: - ldr r0, _08099FFC @ =gSpecialVar_Result - strh r1, [r0] - movs r0, 0 -_08099FF6: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08099FFC: .4byte gSpecialVar_Result - thumb_func_end sub_8099FAC - - thumb_func_start sub_809A000 -sub_809A000: @ 809A000 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - cmp r0, 0 - beq _0809A050 - adds r0, r4, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0 - ldr r1, _0809A054 @ =gUnknown_203988C - lsls r0, r5, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _0809A068 - adds r3, r0, 0 -_0809A032: - ldr r0, [r3] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, r4 - bne _0809A05C - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - adds r0, r6 - ldr r1, _0809A058 @ =0x000003e7 - cmp r0, r1 - ble _0809A07A -_0809A050: - movs r0, 0 - b _0809A07C - .align 2, 0 -_0809A054: .4byte gUnknown_203988C -_0809A058: .4byte 0x000003e7 -_0809A05C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x4] - cmp r2, r0 - bcc _0809A032 -_0809A068: - adds r0, r5, 0 - bl sub_8099ECC - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _0809A050 -_0809A07A: - movs r0, 0x1 -_0809A07C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809A000 - - thumb_func_start sub_809A084 -sub_809A084: @ 809A084 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - adds r0, r6, 0 - bl ItemId_GetPocket - lsls r0, 24 - cmp r0, 0 - bne _0809A0A2 - b _0809A1CA -_0809A0A2: - adds r0, r6, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - movs r2, 0 - ldr r1, _0809A0E0 @ =gUnknown_203988C - lsls r0, r7, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _0809A0F4 - adds r5, r0, 0 -_0809A0BE: - ldr r0, [r5] - lsls r4, r2, 2 - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, r6 - bne _0809A0E8 - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - mov r2, r8 - adds r1, r0, r2 - ldr r0, _0809A0E4 @ =0x000003e7 - cmp r1, r0 - ble _0809A1B8 - b _0809A1CA - .align 2, 0 -_0809A0E0: .4byte gUnknown_203988C -_0809A0E4: .4byte 0x000003e7 -_0809A0E8: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r5, 0x4] - cmp r2, r0 - bcc _0809A0BE -_0809A0F4: - cmp r7, 0x3 - bne _0809A132 - movs r4, 0xB6 - lsls r4, 1 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - cmp r0, 0 - bne _0809A132 - movs r0, 0x1 - bl sub_8099ECC - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809A1CA - ldr r2, _0809A1AC @ =gUnknown_203988C - ldr r0, [r2, 0x8] - lsls r1, 2 - adds r0, r1, r0 - strh r4, [r0] - ldr r0, [r2, 0x8] - adds r0, r1 - adds r0, 0x2 - movs r1, 0x1 - bl sub_8099DBC -_0809A132: - cmp r7, 0x4 - bne _0809A174 - ldr r4, _0809A1B0 @ =0x0000016d - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - cmp r0, 0 - bne _0809A174 - movs r0, 0x1 - bl sub_8099ECC - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809A1CA - ldr r2, _0809A1AC @ =gUnknown_203988C - ldr r0, [r2, 0x8] - lsls r1, 2 - adds r0, r1, r0 - strh r4, [r0] - ldr r0, [r2, 0x8] - adds r0, r1 - adds r0, 0x2 - movs r1, 0x1 - bl sub_8099DBC - ldr r0, _0809A1B4 @ =0x00000847 - bl FlagSet -_0809A174: - ldr r0, _0809A1B0 @ =0x0000016d - cmp r6, r0 - bne _0809A180 - ldr r0, _0809A1B4 @ =0x00000847 - bl FlagSet -_0809A180: - adds r0, r7, 0 - bl sub_8099ECC - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _0809A1CA - ldr r0, _0809A1AC @ =gUnknown_203988C - lsls r1, r7, 3 - adds r1, r0 - ldr r0, [r1] - lsls r2, 2 - adds r0, r2, r0 - strh r6, [r0] - ldr r0, [r1] - adds r0, r2 - adds r0, 0x2 - mov r1, r8 - b _0809A1C2 - .align 2, 0 -_0809A1AC: .4byte gUnknown_203988C -_0809A1B0: .4byte 0x0000016d -_0809A1B4: .4byte 0x00000847 -_0809A1B8: - lsls r1, 16 - lsrs r1, 16 - ldr r0, [r5] - adds r0, r4 - adds r0, 0x2 -_0809A1C2: - bl sub_8099DBC - movs r0, 0x1 - b _0809A1CC -_0809A1CA: - movs r0, 0 -_0809A1CC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A084 - - thumb_func_start sub_809A1D8 -sub_809A1D8: @ 809A1D8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - cmp r0, 0 - beq _0809A258 - cmp r4, 0 - beq _0809A258 - adds r0, r4, 0 - bl ItemId_GetPocket - subs r0, 0x1 - lsls r0, 24 - movs r2, 0 - ldr r1, _0809A248 @ =gUnknown_203988C - lsrs r0, 21 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _0809A258 - adds r6, r0, 0 -_0809A20C: - ldr r0, [r6] - lsls r5, r2, 2 - adds r1, r5, r0 - ldrh r0, [r1] - cmp r0, r4 - bne _0809A24C - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - cmp r0, r7 - bcc _0809A258 - subs r0, r7 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r6] - adds r0, r5 - adds r0, 0x2 - adds r1, r4, 0 - bl sub_8099DBC - cmp r4, 0 - bne _0809A242 - ldr r0, [r6] - adds r0, r5, r0 - strh r4, [r0] -_0809A242: - movs r0, 0x1 - b _0809A25A - .align 2, 0 -_0809A248: .4byte gUnknown_203988C -_0809A24C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r6, 0x4] - cmp r2, r0 - bcc _0809A20C -_0809A258: - movs r0, 0 -_0809A25A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A1D8 - - thumb_func_start GetPocketByItemId -GetPocketByItemId: @ 809A260 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetPocketByItemId - - thumb_func_start ClearItemSlots -ClearItemSlots: @ 809A274 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 24 - movs r4, 0 - lsrs r1, 24 - cmp r4, r1 - bcs _0809A29E - adds r5, r1, 0 - movs r7, 0 -_0809A286: - lsls r0, r4, 2 - adds r0, r6 - strh r7, [r0] - adds r0, 0x2 - movs r1, 0 - bl sub_8099DBC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcc _0809A286 -_0809A29E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ClearItemSlots - - thumb_func_start sub_809A2A4 -sub_809A2A4: @ 809A2A4 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0xA6 - lsls r5, 2 -_0809A2AC: - ldr r0, _0809A2D8 @ =gSaveBlock1Ptr - ldr r0, [r0] - lsls r3, r4, 2 - adds r1, r0, r3 - adds r1, r5 - movs r2, 0 - strh r2, [r1] - adds r3, r5 - adds r0, r3 - adds r0, 0x2 - movs r1, 0 - bl sub_8099DDC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _0809A2AC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A2D8: .4byte gSaveBlock1Ptr - thumb_func_end sub_809A2A4 - - thumb_func_start sub_809A2DC -sub_809A2DC: @ 809A2DC - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0809A300 @ =gUnknown_203988C -_0809A2E2: - lsls r1, r4, 3 - adds r1, r5 - ldr r0, [r1] - ldrb r1, [r1, 0x4] - bl ClearItemSlots - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _0809A2E2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A300: .4byte gUnknown_203988C - thumb_func_end sub_809A2DC - - thumb_func_start sub_809A304 -sub_809A304: @ 809A304 - push {lr} - movs r1, 0 - ldr r0, _0809A324 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r3, 0xA6 - lsls r3, 2 -_0809A310: - lsls r0, r1, 24 - asrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r2, r0 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _0809A328 - adds r0, r1, 0 - b _0809A338 - .align 2, 0 -_0809A324: .4byte gSaveBlock1Ptr -_0809A328: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x1D - ble _0809A310 - movs r0, 0x1 - negs r0, r0 -_0809A338: - pop {r1} - bx r1 - thumb_func_end sub_809A304 - - thumb_func_start sub_809A33C -sub_809A33C: @ 809A33C - push {r4,lr} - movs r2, 0 - movs r1, 0 - ldr r0, _0809A370 @ =gSaveBlock1Ptr - ldr r3, [r0] - movs r4, 0xA6 - lsls r4, 2 -_0809A34A: - lsls r0, r1, 2 - adds r0, r3, r0 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - beq _0809A35C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_0809A35C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1D - bls _0809A34A - adds r0, r2, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A370: .4byte gSaveBlock1Ptr - thumb_func_end sub_809A33C - - thumb_func_start sub_809A374 -sub_809A374: @ 809A374 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 -_0809A380: - ldr r0, _0809A3AC @ =gSaveBlock1Ptr - ldr r2, [r0] - lsls r1, r4, 2 - adds r0, r2, r1 - movs r3, 0xA6 - lsls r3, 2 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r6 - bne _0809A3B4 - adds r0, r1, r2 - ldr r1, _0809A3B0 @ =0x0000029a - adds r0, r1 - bl GetBagItemId - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - bcc _0809A3B4 - movs r0, 0x1 - b _0809A3C0 - .align 2, 0 -_0809A3AC: .4byte gSaveBlock1Ptr -_0809A3B0: .4byte 0x0000029a -_0809A3B4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1D - bls _0809A380 - movs r0, 0 -_0809A3C0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809A374 - - thumb_func_start sub_809A3C8 -sub_809A3C8: @ 809A3C8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - movs r3, 0 - ldr r6, _0809A404 @ =gSaveBlock1Ptr -_0809A3D6: - ldr r2, [r6] - lsls r1, r3, 2 - adds r0, r2, r1 - movs r7, 0xA6 - lsls r7, 2 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r4 - bne _0809A40C - adds r0, r7, 0 - adds r4, r1, r0 - adds r0, r2, r4 - adds r0, 0x2 - bl GetBagItemId - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, r5 - ldr r0, _0809A408 @ =0x000003e7 - cmp r1, r0 - ble _0809A444 - b _0809A456 - .align 2, 0 -_0809A404: .4byte gSaveBlock1Ptr -_0809A408: .4byte 0x000003e7 -_0809A40C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1D - bls _0809A3D6 - bl sub_809A304 - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _0809A456 - ldr r0, _0809A440 @ =gSaveBlock1Ptr - ldr r0, [r0] - lsls r2, 2 - adds r1, r0, r2 - movs r3, 0xA6 - lsls r3, 2 - adds r1, r3 - strh r4, [r1] - adds r2, r3 - adds r0, r2 - adds r0, 0x2 - adds r1, r5, 0 - b _0809A44E - .align 2, 0 -_0809A440: .4byte gSaveBlock1Ptr -_0809A444: - lsls r1, 16 - lsrs r1, 16 - ldr r0, [r6] - adds r0, r4 - adds r0, 0x2 -_0809A44E: - bl sub_8099DDC - movs r0, 0x1 - b _0809A458 -_0809A456: - movs r0, 0 -_0809A458: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A3C8 - - thumb_func_start sub_809A460 -sub_809A460: @ 809A460 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - cmp r2, 0 - beq _0809A4D8 - movs r4, 0 - ldr r0, _0809A4E4 @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r3, 0xA6 - lsls r3, 2 - adds r1, r3 - ldrh r1, [r1] - adds r7, r0, 0 - cmp r1, r2 - beq _0809A49E - adds r5, r7, 0 -_0809A48A: - adds r4, 0x1 - cmp r4, 0x1D - bhi _0809A49E - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, r1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0809A48A -_0809A49E: - cmp r4, 0x1E - beq _0809A4D8 - lsls r6, r4, 2 - movs r0, 0xA6 - lsls r0, 2 - adds r4, r6, r0 - ldr r0, [r7] - adds r0, r4 - adds r0, 0x2 - bl GetBagItemId - mov r1, r8 - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [r7] - adds r0, r4 - adds r0, 0x2 - adds r1, r5, 0 - bl sub_8099DDC - cmp r5, 0 - bne _0809A4D8 - ldr r0, [r7] - adds r0, r6 - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - strh r5, [r0] -_0809A4D8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A4E4: .4byte gSaveBlock1Ptr - thumb_func_end sub_809A460 - - thumb_func_start sub_809A4E8 -sub_809A4E8: @ 809A4E8 - push {r4-r7,lr} - movs r2, 0 -_0809A4EC: - adds r1, r2, 0x1 - lsls r0, r1, 16 - lsrs r4, r0, 16 - adds r6, r1, 0 - cmp r4, 0x1D - bhi _0809A52E - ldr r0, _0809A53C @ =gSaveBlock1Ptr - mov r12, r0 - lsls r5, r2, 2 - movs r7, 0xA6 - lsls r7, 2 -_0809A502: - mov r0, r12 - ldr r1, [r0] - adds r0, r1, r5 - adds r0, r7 - ldrh r0, [r0] - cmp r0, 0 - bne _0809A524 - movs r0, 0xA6 - lsls r0, 2 - adds r1, r0 - adds r2, r1, r5 - ldr r3, [r2] - lsls r0, r4, 2 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - str r3, [r1] -_0809A524: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _0809A502 -_0809A52E: - lsls r0, r6, 16 - lsrs r2, r0, 16 - cmp r2, 0x1C - bls _0809A4EC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A53C: .4byte gSaveBlock1Ptr - thumb_func_end sub_809A4E8 - - thumb_func_start sub_809A540 -sub_809A540: @ 809A540 - push {lr} - ldr r0, _0809A55C @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, _0809A560 @ =0x00000296 - adds r1, r0, r2 - ldrh r2, [r1] - ldr r3, _0809A564 @ =0x00000103 - cmp r2, r3 - beq _0809A568 - movs r0, 0x88 - lsls r0, 1 - cmp r2, r0 - beq _0809A570 - b _0809A572 - .align 2, 0 -_0809A55C: .4byte gSaveBlock1Ptr -_0809A560: .4byte 0x00000296 -_0809A564: .4byte 0x00000103 -_0809A568: - movs r0, 0x88 - lsls r0, 1 - strh r0, [r1] - b _0809A572 -_0809A570: - strh r3, [r1] -_0809A572: - pop {r0} - bx r0 - thumb_func_end sub_809A540 - - thumb_func_start sub_809A578 -sub_809A578: @ 809A578 - ldr r3, [r0] - ldr r2, [r1] - str r2, [r0] - str r3, [r1] - bx lr - thumb_func_end sub_809A578 - - thumb_func_start sub_809A584 -sub_809A584: @ 809A584 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - subs r0, r1, 0x1 - cmp r2, r0 - bge _0809A5D8 - adds r6, r1, 0 - mov r9, r0 -_0809A59E: - adds r1, r2, 0x1 - lsls r0, r1, 16 - lsrs r4, r0, 16 - adds r7, r1, 0 - cmp r4, r6 - bcs _0809A5D0 - lsls r0, r2, 2 - mov r1, r8 - adds r5, r1, r0 -_0809A5B0: - adds r0, r5, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - cmp r0, 0 - bne _0809A5C6 - lsls r1, r4, 2 - add r1, r8 - adds r0, r5, 0 - bl sub_809A578 -_0809A5C6: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r6 - bcc _0809A5B0 -_0809A5D0: - lsls r0, r7, 16 - lsrs r2, r0, 16 - cmp r2, r9 - blt _0809A59E -_0809A5D8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809A584 - - thumb_func_start sub_809A5E4 -sub_809A5E4: @ 809A5E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - movs r4, 0 - bl sub_809A720 - movs r3, 0 - ldrb r0, [r5, 0x4] - cmp r3, r0 - bcs _0809A676 - movs r6, 0xA9 - lsls r6, 1 -_0809A604: - ldr r0, [r5] - lsls r1, r3, 2 - adds r2, r1, r0 - ldrh r0, [r2] - adds r7, r1, 0 - cmp r0, 0 - bne _0809A622 - adds r0, r2, 0x2 - str r3, [sp] - bl GetBagItemQuantity - lsls r0, 16 - ldr r3, [sp] - cmp r0, 0 - beq _0809A70A -_0809A622: - ldr r0, [r5] - adds r1, r7, r0 - ldrh r0, [r1] - cmp r0, r6 - bls _0809A66A - adds r0, r1, 0x2 - str r3, [sp] - bl GetBagItemQuantity - lsls r0, 16 - ldr r3, [sp] - cmp r0, 0 - beq _0809A66A - adds r0, r3, 0x1 - b _0809A642 -_0809A640: - adds r0, r4, 0x1 -_0809A642: - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r1, [r5, 0x4] - cmp r4, r1 - bcs _0809A676 - ldr r0, [r5] - lsls r1, r4, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0809A640 - adds r0, r1, 0x2 - str r3, [sp] - bl GetBagItemQuantity - lsls r0, 16 - ldr r3, [sp] - cmp r0, 0 - bne _0809A640 - b _0809A676 -_0809A66A: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrb r2, [r5, 0x4] - cmp r3, r2 - bcc _0809A604 -_0809A676: - movs r6, 0 - lsls r7, r3, 2 - subs r4, r3 - mov r10, r4 - lsls r3, 1 - mov r9, r3 - ldrb r0, [r5, 0x4] - cmp r6, r0 - bcs _0809A6A6 -_0809A688: - lsls r4, r6, 2 - ldr r0, [r5] - adds r0, r4 - adds r0, 0x2 - bl GetBagItemQuantity - ldr r1, [r5] - adds r4, r1 - strh r0, [r4, 0x2] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r1, [r5, 0x4] - cmp r6, r1 - bcc _0809A688 -_0809A6A6: - ldrb r0, [r5, 0x4] - lsls r0, 2 - bl AllocZeroed - mov r8, r0 - ldr r0, [r5] - adds r0, r7 - mov r1, r10 - lsls r2, r1, 1 - ldr r4, _0809A71C @ =0x001fffff - ands r2, r4 - mov r1, r8 - bl CpuSet - ldr r0, [r5] - mov r2, r10 - lsls r1, r2, 2 - add r1, r8 - mov r2, r9 - ands r2, r4 - mov r9, r2 - bl CpuSet - ldr r1, [r5] - ldrb r2, [r5, 0x4] - lsls r2, 1 - ands r2, r4 - mov r0, r8 - bl CpuSet - movs r6, 0 - ldrb r0, [r5, 0x4] - cmp r6, r0 - bcs _0809A704 -_0809A6EA: - lsls r0, r6, 2 - ldr r1, [r5] - adds r1, r0 - adds r0, r1, 0x2 - ldrh r1, [r1, 0x2] - bl sub_8099DBC - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r1, [r5, 0x4] - cmp r6, r1 - bcc _0809A6EA -_0809A704: - mov r0, r8 - bl Free -_0809A70A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A71C: .4byte 0x001fffff - thumb_func_end sub_809A5E4 - - thumb_func_start sub_809A720 -sub_809A720: @ 809A720 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - movs r3, 0 - b _0809A786 -_0809A72C: - adds r1, r3, 0x1 - lsls r0, r1, 16 - lsrs r5, r0, 16 - mov r8, r1 - cmp r5, r2 - bcs _0809A780 - lsls r7, r3, 2 -_0809A73A: - ldr r0, [r6] - adds r0, r7 - adds r0, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsls r4, r5, 2 - cmp r0, 0 - beq _0809A76A - ldr r0, [r6] - adds r0, r4 - adds r0, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - cmp r0, 0 - beq _0809A774 - ldr r0, [r6] - adds r1, r7, r0 - adds r0, r4, r0 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - bls _0809A774 -_0809A76A: - ldr r1, [r6] - adds r0, r1, r7 - adds r1, r4 - bl sub_809A578 -_0809A774: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r0, [r6, 0x4] - cmp r5, r0 - bcc _0809A73A -_0809A780: - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 -_0809A786: - ldrb r2, [r6, 0x4] - cmp r3, r2 - bcc _0809A72C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809A720 - - thumb_func_start sub_809A798 -sub_809A798: @ 809A798 - lsls r0, 24 - lsls r1, 16 - ldr r2, _0809A7B0 @ =gUnknown_203988C - lsrs r0, 21 - subs r0, 0x8 - adds r0, r2 - ldr r0, [r0] - lsrs r1, 14 - adds r1, r0 - ldrh r0, [r1] - bx lr - .align 2, 0 -_0809A7B0: .4byte gUnknown_203988C - thumb_func_end sub_809A798 - - thumb_func_start sub_809A7B4 -sub_809A7B4: @ 809A7B4 - push {lr} - lsls r0, 24 - lsls r1, 16 - ldr r2, _0809A7D8 @ =gUnknown_203988C - lsrs r0, 21 - subs r0, 0x8 - adds r0, r2 - lsrs r1, 14 - ldr r0, [r0] - adds r0, r1 - adds r0, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0809A7D8: .4byte gUnknown_203988C - thumb_func_end sub_809A7B4 - - thumb_func_start sub_809A7DC -sub_809A7DC: @ 809A7DC - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 21 - ldr r1, _0809A7F4 @ =gUnknown_2039884 - adds r3, r0, r1 - movs r2, 0 - b _0809A816 - .align 2, 0 -_0809A7F4: .4byte gUnknown_2039884 -_0809A7F8: - ldr r0, [r3] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, r4 - bne _0809A810 - adds r0, r1, 0x2 - bl GetBagItemQuantity - lsls r0, 16 - lsrs r0, 16 - b _0809A81E -_0809A810: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_0809A816: - ldrb r0, [r3, 0x4] - cmp r2, r0 - bcc _0809A7F8 - movs r0, 0 -_0809A81E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809A7DC - - thumb_func_start sub_809A824 -sub_809A824: @ 809A824 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _0809A894 @ =0xfea30000 - adds r0, r1 - lsrs r0, 16 - cmp r0, 0xD - bls _0809A85A - movs r0, 0xB7 - lsls r0, 1 - cmp r5, r0 - beq _0809A85A - adds r0, 0x2 - cmp r5, r0 - beq _0809A85A - adds r0, 0x1 - cmp r5, r0 - beq _0809A85A - adds r0, 0x3 - cmp r5, r0 - beq _0809A85A - adds r0, 0x1 - cmp r5, r0 - beq _0809A85A - adds r0, 0x1 - cmp r5, r0 - bne _0809A88C -_0809A85A: - ldr r0, _0809A898 @ =0x00000169 - cmp r5, r0 - bne _0809A86E - ldr r0, _0809A89C @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0x81 - lsls r0, 2 - cmp r1, r0 - bne _0809A88C -_0809A86E: - movs r0, 0x4 - bl Alloc - adds r4, r0, 0 - strh r5, [r4] - ldr r0, _0809A8A0 @ =gMapHeader - ldrb r0, [r0, 0x14] - strb r0, [r4, 0x2] - movs r0, 0x28 - adds r1, r4, 0 - bl sub_8113550 - adds r0, r4, 0 - bl Free -_0809A88C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A894: .4byte 0xfea30000 -_0809A898: .4byte 0x00000169 -_0809A89C: .4byte gSaveBlock1Ptr -_0809A8A0: .4byte gMapHeader - thumb_func_end sub_809A824 - - thumb_func_start SanitizeItemId -SanitizeItemId: @ 809A8A4 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0xBB - lsls r0, 1 - cmp r1, r0 - bhi _0809A8B6 - adds r0, r1, 0 - b _0809A8B8 -_0809A8B6: - movs r0, 0 -_0809A8B8: - pop {r1} - bx r1 - thumb_func_end SanitizeItemId - - thumb_func_start ItemId_GetItem -ItemId_GetItem: @ 809A8BC - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - ldr r1, _0809A8D8 @ =gUnknown_83DB028 - adds r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_0809A8D8: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetItem - - thumb_func_start itemid_get_number -itemid_get_number: @ 809A8DC - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A8FC @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrh r0, [r0, 0xE] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A8FC: .4byte gUnknown_83DB028 - thumb_func_end itemid_get_number - - thumb_func_start itemid_get_market_price -itemid_get_market_price: @ 809A900 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A920 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrh r0, [r0, 0x10] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A920: .4byte gUnknown_83DB028 - thumb_func_end itemid_get_market_price - - thumb_func_start ItemId_GetHoldEffect -ItemId_GetHoldEffect: @ 809A924 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A944 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x12] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A944: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetHoldEffect - - thumb_func_start ItemId_GetHoldEffectParam -ItemId_GetHoldEffectParam: @ 809A948 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A968 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x13] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A968: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetHoldEffectParam - - thumb_func_start ItemId_GetDescription -ItemId_GetDescription: @ 809A96C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A98C @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x14 - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A98C: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetDescription - - thumb_func_start itemid_is_unique -itemid_is_unique: @ 809A990 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A9B0 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x18] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A9B0: .4byte gUnknown_83DB028 - thumb_func_end itemid_is_unique - - thumb_func_start itemid_get_x19 -itemid_get_x19: @ 809A9B4 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A9D4 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x19] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A9D4: .4byte gUnknown_83DB028 - thumb_func_end itemid_get_x19 - - thumb_func_start ItemId_GetPocket -ItemId_GetPocket: @ 809A9D8 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809A9F8 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x1A] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809A9F8: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetPocket - - thumb_func_start ItemId_GetType -ItemId_GetType: @ 809A9FC - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AA1C @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x1B] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA1C: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetType - - thumb_func_start ItemId_GetFieldFunc -ItemId_GetFieldFunc: @ 809AA20 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AA40 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x1C - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA40: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetFieldFunc - - thumb_func_start ItemId_GetBattleUsage -ItemId_GetBattleUsage: @ 809AA44 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AA64 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA64: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetBattleUsage - - thumb_func_start ItemId_GetBattleFunc -ItemId_GetBattleFunc: @ 809AA68 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AA88 @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r4, 0x24 - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AA88: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetBattleFunc - - thumb_func_start ItemId_GetSecondaryId -ItemId_GetSecondaryId: @ 809AA8C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0809AAAC @ =gUnknown_83DB028 - bl SanitizeItemId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2C - muls r0, r1 - adds r0, r4 - adds r0, 0x28 - ldrb r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809AAAC: .4byte gUnknown_83DB028 - thumb_func_end ItemId_GetSecondaryId - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_menu.s b/asm/item_menu.s index 58b74acf3..bdefc393f 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -138,8 +138,8 @@ _08107EB0: .4byte gUnknown_203AD10 _08107EB4: .4byte gUnknown_203ACFC thumb_func_end sub_8107DB4 - thumb_func_start UseFameCheckerFromMenu -UseFameCheckerFromMenu: @ 8107EB8 + thumb_func_start ReturnToBagFromKeyItem +ReturnToBagFromKeyItem: @ 8107EB8 push {lr} ldr r2, _08107EC8 @ =sub_80568A8 movs r0, 0 @@ -149,7 +149,7 @@ UseFameCheckerFromMenu: @ 8107EB8 bx r0 .align 2, 0 _08107EC8: .4byte sub_80568A8 - thumb_func_end UseFameCheckerFromMenu + thumb_func_end ReturnToBagFromKeyItem thumb_func_start sub_8107ECC sub_8107ECC: @ 8107ECC @@ -200,7 +200,7 @@ _08107F12: lsrs r0, 24 cmp r0, 0x1 beq _08107F36 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -253,11 +253,11 @@ _08107F60: .4byte _081080D8 .4byte _081080DE _08107FB0: - bl sub_80BF768 + bl VblankHblankHandlerSetZero bl clear_scheduled_bg_copies_to_vram b _08108104 _08107FBA: - bl remove_some_task + bl ScanlineEffect_Stop b _08108104 _08107FC0: bl FreeAllSpritePalettes @@ -275,10 +275,10 @@ _08107FD8: bl ResetSpriteData b _08108104 _08107FDE: - bl sub_80984D8 + bl ResetItemMenuIconState b _08108104 _08107FE4: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 beq _08107FF0 @@ -350,7 +350,7 @@ _0810806E: adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r0, _081080B0 @ =gUnknown_3005E70 + ldr r0, _081080B0 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r1, r4, 0 @@ -375,7 +375,7 @@ _0810806E: b _08108104 .align 2, 0 _081080AC: .4byte gUnknown_203ACFC -_081080B0: .4byte gUnknown_3005E70 +_081080B0: .4byte gMultiuseListMenuTemplate _081080B4: .4byte gTasks _081080B8: ldr r0, _081080C4 @ =gUnknown_203ACFC @@ -400,13 +400,13 @@ _081080DE: cmp r0, 0x3 bne _081080F4 movs r0, 0x1D - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _081080FA .align 2, 0 _081080F0: .4byte gUnknown_203ACFC _081080F4: movs r0, 0x9 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _081080FA: ldr r2, _08108114 @ =gPaletteFade ldrb r1, [r2, 0x8] @@ -520,7 +520,7 @@ _081081CC: .4byte gUnknown_203AD1C thumb_func_start sub_81081D0 sub_81081D0: @ 81081D0 push {r4,r5,lr} - bl sub_80BF7C8 + bl InitBgReg ldr r5, _08108230 @ =gUnknown_203AD14 movs r4, 0x80 lsls r4, 4 @@ -687,7 +687,7 @@ _08108340: .align 2, 0 _08108348: .4byte gUnknown_83D41F4 _0810834C: - ldr r0, _08108360 @ =gUnknown_83D4240 + ldr r0, _08108360 @ =gBagSwapSpriteSheet _0810834E: bl LoadCompressedObjectPic _08108352: @@ -698,10 +698,10 @@ _08108352: strb r0, [r1, 0x10] b _0810837C .align 2, 0 -_08108360: .4byte gUnknown_83D4240 +_08108360: .4byte gBagSwapSpriteSheet _08108364: .4byte gUnknown_203AD10 _08108368: - ldr r0, _08108378 @ =gUnknown_83D4248 + ldr r0, _08108378 @ =gBagSwapSpritePalette bl LoadCompressedObjectPalette ldr r1, [r4] movs r0, 0 @@ -709,7 +709,7 @@ _08108368: movs r0, 0x1 b _0810837E .align 2, 0 -_08108378: .4byte gUnknown_83D4248 +_08108378: .4byte gBagSwapSpritePalette _0810837C: movs r0, 0 _0810837E: @@ -817,7 +817,7 @@ sub_810842C: @ 810842C lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 3 - ldr r0, _0810853C @ =gUnknown_203988C + ldr r0, _0810853C @ =gBagPockets adds r1, r0 mov r8, r1 movs r6, 0 @@ -881,7 +881,7 @@ _0810848C: adds r0, r4 str r0, [r1] str r6, [r1, 0x4] - ldr r3, _08108554 @ =gUnknown_3005E70 + ldr r3, _08108554 @ =gMultiuseListMenuTemplate str r2, [r3] ldr r0, _08108540 @ =gUnknown_203AD10 ldr r2, [r0] @@ -946,13 +946,13 @@ _0810848C: pop {r0} bx r0 .align 2, 0 -_0810853C: .4byte gUnknown_203988C +_0810853C: .4byte gBagPockets _08108540: .4byte gUnknown_203AD10 _08108544: .4byte gUnknown_203AD1C _08108548: .4byte gUnknown_203AD18 _0810854C: .4byte gUnknown_8452F60 _08108550: .4byte gFameCheckerText_Cancel -_08108554: .4byte gUnknown_3005E70 +_08108554: .4byte gMultiuseListMenuTemplate _08108558: .4byte sub_81085A4 _0810855C: .4byte sub_8108654 thumb_func_end sub_810842C @@ -981,7 +981,7 @@ _08108584: bl StringCopy _0810858C: adds r0, r5, 0 - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 adds r0, r4, 0 bl StringAppend @@ -1014,7 +1014,7 @@ _081085BA: lsrs r1, 30 movs r0, 0x1 eors r0, r1 - bl sub_8098940 + bl DestroyItemMenuIcon ldr r2, [r4] ldr r0, _08108608 @ =gUnknown_203ACFC ldrh r1, [r0, 0x6] @@ -1029,14 +1029,14 @@ _081085BA: lsrs r0, 24 lsls r1, r5, 16 lsrs r1, 16 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, [r4] ldrb r1, [r1, 0x5] lsls r1, 26 lsrs r1, 30 - bl sub_80988E8 + bl CreateItemMenuIcon b _08108618 .align 2, 0 _08108604: .4byte gUnknown_203AD10 @@ -1046,7 +1046,7 @@ _0810860C: ldrb r1, [r2, 0x5] lsls r1, 26 lsrs r1, 30 - bl sub_80988E8 + bl CreateItemMenuIcon _08108618: ldr r4, _08108650 @ =gUnknown_203AD10 ldr r3, [r4] @@ -1129,7 +1129,7 @@ _08108690: lsls r4, 16 lsrs r4, 16 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r7, r0, 16 ldrb r0, [r5, 0x6] @@ -1137,7 +1137,7 @@ _08108690: lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 - bl sub_809A7B4 + bl BagGetQuantityByPocketPosition lsls r0, 16 lsrs r4, r0, 16 ldrh r0, [r5, 0x6] @@ -1155,7 +1155,7 @@ _08108690: movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _08108724 @ =gStringVar4 - ldr r1, _08108728 @ =gUnknown_84162B9 + ldr r1, _08108728 @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders str r6, [sp] @@ -1176,7 +1176,7 @@ _08108718: .4byte gUnknown_203AD10 _0810871C: .4byte gUnknown_203ACFC _08108720: .4byte gStringVar1 _08108724: .4byte gStringVar4 -_08108728: .4byte gUnknown_84162B9 +_08108728: .4byte gText_TimesStrVar1 _0810872C: ldr r0, _08108760 @ =gSaveBlock1Ptr ldr r0, [r0] @@ -1317,7 +1317,7 @@ sub_8108818: @ 8108818 lsrs r0, 24 lsls r1, r2, 16 lsrs r1, 16 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl ItemId_GetDescription @@ -1383,7 +1383,7 @@ sub_8108888: @ 8108888 movs r1, 0xA0 movs r2, 0x8 movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 @@ -1439,7 +1439,7 @@ sub_8108908: @ 8108908 movs r1, 0x98 movs r2, 0x48 movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 @@ -1469,7 +1469,7 @@ sub_8108940: @ 8108940 movs r1, 0xD4 movs r2, 0x78 movs r3, 0x98 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 @@ -1739,8 +1739,8 @@ _08108B48: .4byte gUnknown_203AD18 _08108B4C: .4byte gUnknown_203AD1C thumb_func_end sub_8108B04 - thumb_func_start sub_8108B50 -sub_8108B50: @ 8108B50 + thumb_func_start ItemMenu_StartFadeToExitCallback +ItemMenu_StartFadeToExitCallback: @ 8108B50 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 @@ -1768,7 +1768,7 @@ sub_8108B50: @ 8108B50 .align 2, 0 _08108B84: .4byte gTasks _08108B88: .4byte sub_8108B8C - thumb_func_end sub_8108B50 + thumb_func_end ItemMenu_StartFadeToExitCallback thumb_func_start sub_8108B8C sub_8108B8C: @ 8108B8C @@ -1802,7 +1802,7 @@ sub_8108B8C: @ 8108B8C adds r3, r4, 0 adds r3, 0x8 adds r2, r3 - bl sub_810713C + bl DestroyListMenu ldr r0, _08108BF0 @ =gUnknown_203AD10 ldr r0, [r0] ldr r0, [r0] @@ -1999,8 +1999,8 @@ _08108D5A: bx r0 thumb_func_end sub_8108CFC - thumb_func_start sub_8108D60 -sub_8108D60: @ 8108D60 + thumb_func_start ItemMenu_MoveItemSlotToNewPositionInArray +ItemMenu_MoveItemSlotToNewPositionInArray: @ 8108D60 push {r4-r6,lr} adds r4, r0, 0 adds r3, r2, 0 @@ -2057,7 +2057,7 @@ _08108DC0: pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8108D60 + thumb_func_end ItemMenu_MoveItemSlotToNewPositionInArray thumb_func_start sub_8108DC8 sub_8108DC8: @ 8108DC8 @@ -2065,11 +2065,11 @@ sub_8108DC8: @ 8108DC8 lsls r0, 24 lsrs r5, r0, 24 lsls r1, r5, 3 - ldr r0, _08108E3C @ =gUnknown_203988C + ldr r0, _08108E3C @ =gBagPockets adds r4, r1, r0 ldr r0, [r4] ldrb r1, [r4, 0x4] - bl sub_809A584 + bl BagPocketCompaction ldr r3, _08108E40 @ =gUnknown_203AD10 ldr r0, [r3] adds r0, 0xA @@ -2120,7 +2120,7 @@ _08108E1C: strb r1, [r0] b _08108E4C .align 2, 0 -_08108E3C: .4byte gUnknown_203988C +_08108E3C: .4byte gBagPockets _08108E40: .4byte gUnknown_203AD10 _08108E44: adds r0, r1, 0 @@ -2150,8 +2150,8 @@ _08108E58: bx r0 thumb_func_end sub_8108E54 - thumb_func_start sub_8108E70 -sub_8108E70: @ 8108E70 + thumb_func_start DisplayItemMessageInBag +DisplayItemMessageInBag: @ 8108E70 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2177,7 +2177,7 @@ sub_8108E70: @ 8108E70 strh r0, [r4, 0x14] movs r1, 0x11 bl FillWindowPixelBuffer - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x14] @@ -2202,17 +2202,17 @@ sub_8108E70: @ 8108E70 bx r0 .align 2, 0 _08108EDC: .4byte gTasks+0x8 - thumb_func_end sub_8108E70 + thumb_func_end DisplayItemMessageInBag - thumb_func_start sub_8108EE0 -sub_8108EE0: @ 8108EE0 + thumb_func_start ItemMenu_SetExitCallback +ItemMenu_SetExitCallback: @ 8108EE0 ldr r1, _08108EE8 @ =gUnknown_203AD10 ldr r1, [r1] str r0, [r1] bx lr .align 2, 0 _08108EE8: .4byte gUnknown_203AD10 - thumb_func_end sub_8108EE0 + thumb_func_end ItemMenu_SetExitCallback thumb_func_start sub_8108EEC sub_8108EEC: @ 8108EEC @@ -2313,7 +2313,7 @@ _08108FA0: adds r4, 0x2 mov r1, sp adds r2, r4, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r0, sp ldrh r1, [r0] ldrh r0, [r4] @@ -2353,7 +2353,7 @@ _08108FE4: adds r3, r5, 0 adds r3, 0x8 adds r2, r3 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow movs r0, 0x2 negs r0, r0 cmp r4, r0 @@ -2376,12 +2376,12 @@ _08109018: adds r0, r6 lsls r0, 3 adds r0, r1 - ldr r1, _08109040 @ =sub_8108B50 + ldr r1, _08109040 @ =ItemMenu_StartFadeToExitCallback b _081090C4 .align 2, 0 _08109038: .4byte gSpecialVar_ItemId _0810903C: .4byte gTasks -_08109040: .4byte sub_8108B50 +_08109040: .4byte ItemMenu_StartFadeToExitCallback _08109044: movs r0, 0x5 bl PlaySE @@ -2402,13 +2402,13 @@ _08109044: adds r0, r6 lsls r0, 3 adds r0, r1 - ldr r1, _08109080 @ =sub_8108B50 + ldr r1, _08109080 @ =ItemMenu_StartFadeToExitCallback b _081090C4 .align 2, 0 _08109074: .4byte gUnknown_203AD10 _08109078: .4byte gSpecialVar_ItemId _0810907C: .4byte gTasks -_08109080: .4byte sub_8108B50 +_08109080: .4byte ItemMenu_StartFadeToExitCallback _08109084: bl sub_8108978 ldrb r0, [r7] @@ -2422,14 +2422,14 @@ _08109084: lsls r4, 16 lsrs r4, 16 adds r1, r4, 0 - bl sub_809A7B4 + bl BagGetQuantityByPocketPosition strh r0, [r7, 0x4] ldrb r0, [r5, 0x6] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition ldr r1, _081090D0 @ =gSpecialVar_ItemId strh r0, [r1] ldr r1, _081090D4 @ =gTasks @@ -2514,7 +2514,7 @@ sub_8109140: @ 8109140 movs r1, 0 movs r2, 0xE movs r3, 0x1E - bl sub_80F6B08 + bl SetBgRectPal movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 @@ -2617,7 +2617,7 @@ sub_81091D0: @ 81091D0 adds r1, r2, r1 adds r3, 0x8 adds r2, r3 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r0, _08109290 @ =gUnknown_203AD10 @@ -2627,7 +2627,7 @@ sub_81091D0: @ 81091D0 lsrs r1, 30 movs r0, 0x1 eors r0, r1 - bl sub_8098940 + bl DestroyItemMenuIcon bl sub_8108978 _08109242: movs r0, 0x12 @@ -2677,7 +2677,7 @@ sub_8109298: @ 8109298 lsls r0, 3 ldr r1, _081092DC @ =gTasks+0x8 adds r5, r0, r1 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _08109314 @@ -2773,7 +2773,7 @@ _08109358: bl sub_81087EC ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _081093B4 @ =gUnknown_3005E70 + ldr r0, _081093B4 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r1, r4, 0 @@ -2803,7 +2803,7 @@ _081093AA: bx r0 .align 2, 0 _081093B0: .4byte gUnknown_203ACFC -_081093B4: .4byte gUnknown_3005E70 +_081093B4: .4byte gMultiuseListMenuTemplate thumb_func_end sub_8109298 thumb_func_start sub_81093B8 @@ -2830,7 +2830,7 @@ sub_81093B8: @ 81093B8 mov r2, sp adds r2, 0x16 add r1, sp, 0x14 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r2, r8 ldrb r0, [r2] movs r1, 0x10 @@ -2850,15 +2850,15 @@ sub_81093B8: @ 81093B8 lsrs r0, 24 mov r2, r8 ldrh r1, [r2, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r4, _081094A4 @ =gStringVar4 - ldr r1, _081094A8 @ =gUnknown_841633F + ldr r1, _081094A8 @ =gOtherText_WhereShouldTheStrVar1BePlaced adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 @@ -2910,7 +2910,7 @@ _08109498: .4byte gUnknown_203AD10 _0810949C: .4byte gStringVar1 _081094A0: .4byte gUnknown_203ACFC _081094A4: .4byte gStringVar4 -_081094A8: .4byte gUnknown_841633F +_081094A8: .4byte gOtherText_WhereShouldTheStrVar1BePlaced _081094AC: .4byte sub_81094B0 thumb_func_end sub_81093B8 @@ -2942,7 +2942,7 @@ sub_81094B0: @ 81094B0 adds r1, r2, r1 adds r3, 0x8 adds r2, r3 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldrb r0, [r4] bl ListMenuGetYCoordForPrintingArrowCursor adds r1, r0, 0 @@ -2967,7 +2967,7 @@ sub_81094B0: @ 81094B0 adds r4, 0x2 mov r1, sp adds r2, r4, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r0, sp ldrh r1, [r0] ldrh r0, [r4] @@ -3001,7 +3001,7 @@ _08109558: adds r4, 0x2 mov r1, sp adds r2, r4, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r0, sp ldrh r1, [r0] ldrh r0, [r4] @@ -3063,7 +3063,7 @@ _081095DA: .align 2, 0 _081095E4: .4byte gTasks+0x8 _081095E8: - ldr r1, _0810966C @ =gUnknown_203988C + ldr r1, _0810966C @ =gBagPockets ldr r4, _08109670 @ =gUnknown_203ACFC ldrh r0, [r4, 0x6] lsls r0, 3 @@ -3071,7 +3071,7 @@ _081095E8: ldr r0, [r0] adds r1, r2, 0 adds r2, r5, 0 - bl sub_8108D60 + bl ItemMenu_MoveItemSlotToNewPositionInArray ldrb r0, [r6] ldrh r2, [r4, 0x6] lsls r2, 1 @@ -3082,7 +3082,7 @@ _081095E8: adds r7, r4, 0 adds r7, 0x8 adds r2, r7 - bl sub_810713C + bl DestroyListMenu movs r3, 0x2 ldrsh r0, [r6, r3] cmp r0, r5 @@ -3096,7 +3096,7 @@ _081095E8: _08109628: ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _08109674 @ =gUnknown_3005E70 + ldr r0, _08109674 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 mov r3, r8 @@ -3125,9 +3125,9 @@ _0810965C: pop {r0} bx r0 .align 2, 0 -_0810966C: .4byte gUnknown_203988C +_0810966C: .4byte gBagPockets _08109670: .4byte gUnknown_203ACFC -_08109674: .4byte gUnknown_3005E70 +_08109674: .4byte gMultiuseListMenuTemplate _08109678: .4byte sub_8108F0C thumb_func_end sub_81095AC @@ -3160,7 +3160,7 @@ sub_810967C: @ 810967C adds r7, r5, 0 adds r7, 0x8 adds r2, r7 - bl sub_810713C + bl DestroyListMenu movs r3, 0x2 ldrsh r0, [r6, r3] cmp r0, r4 @@ -3174,7 +3174,7 @@ sub_810967C: @ 810967C _081096CA: ldrb r0, [r5, 0x6] bl sub_810842C - ldr r0, _08109714 @ =gUnknown_3005E70 + ldr r0, _08109714 @ =gMultiuseListMenuTemplate ldrh r2, [r5, 0x6] lsls r2, 1 mov r3, r9 @@ -3204,7 +3204,7 @@ _081096CA: .align 2, 0 _0810970C: .4byte gTasks+0x8 _08109710: .4byte gUnknown_203ACFC -_08109714: .4byte gUnknown_3005E70 +_08109714: .4byte gMultiuseListMenuTemplate _08109718: .4byte sub_8108F0C thumb_func_end sub_810967C @@ -3232,12 +3232,12 @@ sub_810971C: @ 810971C lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, _081097D8 @ =gStringVar1 mov r10, r1 - bl sub_8099E90 + bl CopyItemName ldr r0, _081097DC @ =gStringVar4 mov r9, r0 adds r1, r6, 0 @@ -3267,7 +3267,7 @@ sub_810971C: @ 810971C movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN - ldr r1, _081097E0 @ =gUnknown_84162B9 + ldr r1, _081097E0 @ =gText_TimesStrVar1 mov r0, r9 bl StringExpandPlaceholders movs r0, 0xA @@ -3295,7 +3295,7 @@ sub_810971C: @ 810971C _081097D4: .4byte gUnknown_203ACFC _081097D8: .4byte gStringVar1 _081097DC: .4byte gStringVar4 -_081097E0: .4byte gUnknown_84162B9 +_081097E0: .4byte gText_TimesStrVar1 thumb_func_end sub_810971C thumb_func_start sub_81097E4 @@ -3324,7 +3324,7 @@ sub_81097E4: @ 81097E4 adds r3, r5, 0 bl ConvertIntToDecimalStringN ldr r4, _0810984C @ =gStringVar4 - ldr r1, _08109850 @ =gUnknown_84162B9 + ldr r1, _08109850 @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0xA @@ -3347,7 +3347,7 @@ sub_81097E4: @ 81097E4 .align 2, 0 _08109848: .4byte gStringVar1 _0810984C: .4byte gStringVar4 -_08109850: .4byte gUnknown_84162B9 +_08109850: .4byte gText_TimesStrVar1 thumb_func_end sub_81097E4 thumb_func_start sub_8109854 @@ -3464,7 +3464,7 @@ _08109930: .4byte gUnknown_203AD24 _08109934: .4byte gUnknown_8452F30 _08109938: .4byte gUnknown_203AD28 _0810993C: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3715,7 +3715,7 @@ _08109AD4: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x6 movs r1, 0 bl sub_810B9DC @@ -3725,9 +3725,9 @@ _08109AD4: ldr r0, _08109BA8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _08109BAC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _08109BB0 @ =gStringVar4 - ldr r1, _08109BB4 @ =gUnknown_84162FF + ldr r1, _08109BB4 @ =gOtherText_StrVar1 adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0x2 @@ -3754,7 +3754,7 @@ _08109BA4: .4byte gUnknown_8452EB8 _08109BA8: .4byte gSpecialVar_ItemId _08109BAC: .4byte gStringVar1 _08109BB0: .4byte gStringVar4 -_08109BB4: .4byte gUnknown_84162FF +_08109BB4: .4byte gOtherText_StrVar1 thumb_func_end sub_8109890 thumb_func_start sub_8109BB8 @@ -4121,11 +4121,11 @@ sub_8109EA8: @ 8109EA8 lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, _08109F30 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _08109F34 @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r6, r2] @@ -4200,7 +4200,7 @@ _08109F6E: ldr r0, _08109FF4 @ =gSpecialVar_ItemId ldrh r0, [r0] ldrh r1, [r7, 0x10] - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0x6 bl sub_810BA3C ldrb r0, [r7] @@ -4213,14 +4213,14 @@ _08109F6E: adds r6, r4, 0 adds r6, 0x8 adds r2, r6 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] bl sub_81089F4 ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _08109FFC @ =gUnknown_3005E70 + ldr r0, _08109FFC @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 @@ -4251,7 +4251,7 @@ _08109FEC: .4byte gTasks+0x8 _08109FF0: .4byte gMain _08109FF4: .4byte gSpecialVar_ItemId _08109FF8: .4byte gUnknown_203ACFC -_08109FFC: .4byte gUnknown_3005E70 +_08109FFC: .4byte gMultiuseListMenuTemplate thumb_func_end sub_8109F44 thumb_func_start sub_810A000 @@ -4273,7 +4273,7 @@ sub_810A000: @ 810A000 lsls r0, 24 lsrs r0, 24 ldrh r1, [r7, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r2, r0, 16 ldr r0, _0810A048 @ =gSaveBlock1Ptr @@ -4304,10 +4304,10 @@ _0810A052: adds r6, r4, 0 adds r6, 0x8 adds r2, r6 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _0810A0A4 @ =gUnknown_3005E70 + ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 @@ -4330,7 +4330,7 @@ _0810A052: bx r0 .align 2, 0 _0810A0A0: .4byte gUnknown_203ACFC -_0810A0A4: .4byte gUnknown_3005E70 +_0810A0A4: .4byte gMultiuseListMenuTemplate thumb_func_end sub_810A000 thumb_func_start sub_810A0A8 @@ -4353,7 +4353,7 @@ sub_810A0A8: @ 810A0A8 lsls r0, 24 lsrs r0, 24 ldrh r1, [r1, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r5, r0, 16 movs r0, 0xA @@ -4376,7 +4376,7 @@ sub_810A0A8: @ 810A0A8 ldr r3, _0810A11C @ =sub_810A1D0 adds r0, r4, 0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag b _0810A166 .align 2, 0 _0810A110: .4byte gTasks+0x8 @@ -4404,13 +4404,13 @@ _0810A13E: mov r0, r8 subs r0, 0x8 adds r0, r6, r0 - ldr r1, _0810A15C @ =sub_8108B50 + ldr r1, _0810A15C @ =ItemMenu_StartFadeToExitCallback str r1, [r0] b _0810A166 .align 2, 0 _0810A154: .4byte gUnknown_203AD10 _0810A158: .4byte sub_8126EDC -_0810A15C: .4byte sub_8108B50 +_0810A15C: .4byte ItemMenu_StartFadeToExitCallback _0810A160: adds r0, r7, 0 bl sub_810A18C @@ -4427,14 +4427,14 @@ sub_810A170: @ 810A170 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _0810A184 @ =gUnknown_841632A + ldr r2, _0810A184 @ =gText_ThereIsNoPokemon ldr r3, _0810A188 @ =sub_810A1D0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag pop {r0} bx r0 .align 2, 0 -_0810A184: .4byte gUnknown_841632A +_0810A184: .4byte gText_ThereIsNoPokemon _0810A188: .4byte sub_810A1D0 thumb_func_end sub_810A170 @@ -4447,16 +4447,16 @@ sub_810A18C: @ 810A18C ldr r0, _0810A1BC @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A1C0 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r5, _0810A1C4 @ =gStringVar4 - ldr r1, _0810A1C8 @ =gUnknown_841635E + ldr r1, _0810A1C8 @ =gText_ItemCantBeHeld adds r0, r5, 0 bl StringExpandPlaceholders ldr r3, _0810A1CC @ =sub_810A1D0 adds r0, r4, 0 movs r1, 0x2 adds r2, r5, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag pop {r4,r5} pop {r0} bx r0 @@ -4464,7 +4464,7 @@ sub_810A18C: @ 810A18C _0810A1BC: .4byte gSpecialVar_ItemId _0810A1C0: .4byte gStringVar1 _0810A1C4: .4byte gStringVar4 -_0810A1C8: .4byte gUnknown_841635E +_0810A1C8: .4byte gText_ItemCantBeHeld _0810A1CC: .4byte sub_810A1D0 thumb_func_end sub_810A18C @@ -4519,14 +4519,14 @@ sub_810A1F8: @ 810A1F8 adds r3, r4 mov r9, r3 add r2, r9 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] bl sub_81089F4 ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _0810A284 @ =gUnknown_3005E70 + ldr r0, _0810A284 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r6, r2, r6 @@ -4553,7 +4553,7 @@ sub_810A1F8: @ 810A1F8 .align 2, 0 _0810A27C: .4byte gTasks+0x8 _0810A280: .4byte gUnknown_203ACFC -_0810A284: .4byte gUnknown_3005E70 +_0810A284: .4byte gMultiuseListMenuTemplate thumb_func_end sub_810A1F8 thumb_func_start sub_810A288 @@ -4573,7 +4573,7 @@ sub_810A288: @ 810A288 adds r6, 0x2 mov r1, sp adds r2, r6, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow mov r0, sp ldrh r0, [r0] ldrh r1, [r6] @@ -4684,7 +4684,7 @@ sub_810A370: @ 810A370 lsls r0, 24 lsrs r0, 24 ldrh r1, [r1, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 @@ -4697,7 +4697,7 @@ sub_810A370: @ 810A370 ldr r3, _0810A3C8 @ =sub_810A1D0 adds r0, r5, 0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag b _0810A426 .align 2, 0 _0810A3BC: .4byte gTasks+0x8 @@ -4719,9 +4719,9 @@ _0810A3DC: bne _0810A3F8 ldr r0, _0810A3F4 @ =sub_810A448 _0810A3E4: - bl sub_8108EE0 + bl ItemMenu_SetExitCallback adds r0, r5, 0 - bl sub_8108B50 + bl ItemMenu_StartFadeToExitCallback b _0810A426 .align 2, 0 _0810A3F0: .4byte 0x0000016d @@ -4740,11 +4740,11 @@ _0810A3F8: mov r0, r9 subs r0, 0x8 adds r0, r7, r0 - ldr r1, _0810A41C @ =sub_8108B50 + ldr r1, _0810A41C @ =ItemMenu_StartFadeToExitCallback str r1, [r0] b _0810A426 .align 2, 0 -_0810A41C: .4byte sub_8108B50 +_0810A41C: .4byte ItemMenu_StartFadeToExitCallback _0810A420: adds r0, r5, 0 bl sub_810A18C @@ -4763,7 +4763,7 @@ sub_810A434: @ 810A434 ldr r1, _0810A444 @ =sub_810A45C movs r0, 0x1 movs r2, 0 - bl sub_81317F8 + bl InitTMCase pop {r0} bx r0 .align 2, 0 @@ -4776,7 +4776,7 @@ sub_810A448: @ 810A448 ldr r1, _0810A458 @ =sub_810A45C movs r0, 0x1 movs r2, 0 - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 .align 2, 0 @@ -4812,7 +4812,7 @@ sub_810A468: @ 810A468 lsls r0, 24 lsrs r0, 24 ldrh r1, [r1, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 @@ -4826,7 +4826,7 @@ sub_810A468: @ 810A468 ldr r3, _0810A4C0 @ =sub_810A1D0 adds r0, r5, 0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag b _0810A51E .align 2, 0 _0810A4B4: .4byte gTasks+0x8 @@ -4835,7 +4835,7 @@ _0810A4BC: .4byte gUnknown_841630F _0810A4C0: .4byte sub_810A1D0 _0810A4C4: movs r0, 0xB6 - lsls r0, 1 + lsls r0, 1 @ ITEM_TM_CASE cmp r4, r0 bne _0810A4D4 ldr r0, _0810A4D0 @ =sub_810A52C @@ -4843,14 +4843,14 @@ _0810A4C4: .align 2, 0 _0810A4D0: .4byte sub_810A52C _0810A4D4: - ldr r0, _0810A4E8 @ =0x0000016d + ldr r0, _0810A4E8 @ =0x0000016d @ ITEM_BERRY_POUCH cmp r4, r0 bne _0810A4F0 ldr r0, _0810A4EC @ =sub_810A540 _0810A4DC: - bl sub_8108EE0 + bl ItemMenu_SetExitCallback adds r0, r5, 0 - bl sub_8108B50 + bl ItemMenu_StartFadeToExitCallback b _0810A51E .align 2, 0 _0810A4E8: .4byte 0x0000016d @@ -4869,11 +4869,11 @@ _0810A4F0: mov r0, r9 subs r0, 0x8 adds r0, r7, r0 - ldr r1, _0810A514 @ =sub_8108B50 + ldr r1, _0810A514 @ =ItemMenu_StartFadeToExitCallback str r1, [r0] b _0810A51E .align 2, 0 -_0810A514: .4byte sub_8108B50 +_0810A514: .4byte ItemMenu_StartFadeToExitCallback _0810A518: adds r0, r5, 0 bl sub_810A18C @@ -4892,7 +4892,7 @@ sub_810A52C: @ 810A52C ldr r1, _0810A53C @ =sub_810A554 movs r0, 0x3 movs r2, 0 - bl sub_81317F8 + bl InitTMCase pop {r0} bx r0 .align 2, 0 @@ -4905,7 +4905,7 @@ sub_810A540: @ 810A540 ldr r1, _0810A550 @ =sub_810A554 movs r0, 0x3 movs r2, 0 - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 .align 2, 0 @@ -4954,9 +4954,9 @@ _0810A598: bne _0810A5B4 ldr r0, _0810A5B0 @ =sub_810A668 _0810A5A0: - bl sub_8108EE0 + bl ItemMenu_SetExitCallback adds r0, r5, 0 - bl sub_8108B50 + bl ItemMenu_StartFadeToExitCallback b _0810A63E .align 2, 0 _0810A5AC: .4byte 0x0000016d @@ -4969,9 +4969,9 @@ _0810A5B4: bne _0810A5F8 ldrh r0, [r6] ldr r1, _0810A5E8 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0810A5EC @ =gStringVar4 - ldr r1, _0810A5F0 @ =gUnknown_84168F1 + ldr r1, _0810A5F0 @ =gText_OhNoICantBuyThat adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -4981,12 +4981,12 @@ _0810A5B4: ldr r3, _0810A5F4 @ =sub_810A1F8 adds r0, r5, 0 adds r2, r4, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag b _0810A63E .align 2, 0 _0810A5E8: .4byte gStringVar1 _0810A5EC: .4byte gStringVar4 -_0810A5F0: .4byte gUnknown_84168F1 +_0810A5F0: .4byte gText_OhNoICantBuyThat _0810A5F4: .4byte sub_810A1F8 _0810A5F8: movs r0, 0x1 @@ -5007,9 +5007,9 @@ _0810A610: _0810A618: ldrh r0, [r6] ldr r1, _0810A644 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r4, _0810A648 @ =gStringVar4 - ldr r1, _0810A64C @ =gUnknown_8416911 + ldr r1, _0810A64C @ =gText_HowManyWouldYouLikeToSell adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -5019,7 +5019,7 @@ _0810A618: ldr r3, _0810A650 @ =sub_810A770 adds r0, r7, 0 adds r2, r4, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag _0810A63E: pop {r4-r7} pop {r0} @@ -5027,7 +5027,7 @@ _0810A63E: .align 2, 0 _0810A644: .4byte gStringVar1 _0810A648: .4byte gStringVar4 -_0810A64C: .4byte gUnknown_8416911 +_0810A64C: .4byte gText_HowManyWouldYouLikeToSell _0810A650: .4byte sub_810A770 thumb_func_end sub_810A568 @@ -5037,7 +5037,7 @@ sub_810A654: @ 810A654 ldr r1, _0810A664 @ =sub_810A67C movs r0, 0x2 movs r2, 0 - bl sub_81317F8 + bl InitTMCase pop {r0} bx r0 .align 2, 0 @@ -5050,7 +5050,7 @@ sub_810A668: @ 810A668 ldr r1, _0810A678 @ =sub_810A67C movs r0, 0x2 movs r2, 0 - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 .align 2, 0 @@ -5060,14 +5060,14 @@ _0810A678: .4byte sub_810A67C thumb_func_start sub_810A67C sub_810A67C: @ 810A67C push {lr} - ldr r2, _0810A68C @ =c2_exit_to_overworld_2_switch + ldr r2, _0810A68C @ =CB2_ReturnToField movs r0, 0x2 movs r1, 0x3 bl sub_8107DB4 pop {r0} bx r0 .align 2, 0 -_0810A68C: .4byte c2_exit_to_overworld_2_switch +_0810A68C: .4byte CB2_ReturnToField thumb_func_end sub_810A67C thumb_func_start sub_810A690 @@ -5088,7 +5088,7 @@ sub_810A690: @ 810A690 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -5102,7 +5102,7 @@ sub_810A690: @ 810A690 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0810A700 @ =gStringVar4 - ldr r1, _0810A704 @ =gUnknown_8416936 + ldr r1, _0810A704 @ =gText_ICanPayThisMuch_WouldThatBeOkay adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80BF8E4 @@ -5112,7 +5112,7 @@ sub_810A690: @ 810A690 ldr r3, _0810A708 @ =sub_810A70C adds r0, r5, 0 adds r2, r4, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag pop {r4-r6} pop {r0} bx r0 @@ -5121,7 +5121,7 @@ _0810A6F4: .4byte gTasks+0x8 _0810A6F8: .4byte gStringVar3 _0810A6FC: .4byte gUnknown_203ACFC _0810A700: .4byte gStringVar4 -_0810A704: .4byte gUnknown_8416936 +_0810A704: .4byte gText_ICanPayThisMuch_WouldThatBeOkay _0810A708: .4byte sub_810A70C thumb_func_end sub_810A690 @@ -5202,7 +5202,7 @@ sub_810A770: @ 810A770 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r6, _0810A824 @ =gStringVar4 - ldr r1, _0810A828 @ =gUnknown_84162B9 + ldr r1, _0810A828 @ =gText_TimesStrVar1 adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0xA @@ -5226,7 +5226,7 @@ sub_810A770: @ 810A770 lsrs r0, 24 mov r3, r9 ldrh r1, [r3, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -5256,7 +5256,7 @@ sub_810A770: @ 810A770 _0810A81C: .4byte gTasks+0x8 _0810A820: .4byte gStringVar1 _0810A824: .4byte gStringVar4 -_0810A828: .4byte gUnknown_84162B9 +_0810A828: .4byte gText_TimesStrVar1 _0810A82C: .4byte gUnknown_203ACFC _0810A830: .4byte sub_810A85C thumb_func_end sub_810A770 @@ -5311,7 +5311,7 @@ sub_810A85C: @ 810A85C lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -5397,7 +5397,7 @@ sub_810A940: @ 810A940 ldr r0, _0810A9B8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A9BC @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r6, _0810A9C0 @ =gStringVar3 ldr r0, _0810A9C4 @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] @@ -5405,7 +5405,7 @@ sub_810A940: @ 810A940 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] - bl sub_809A798 + bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl itemid_get_market_price @@ -5419,14 +5419,14 @@ sub_810A940: @ 810A940 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _0810A9C8 @ =gStringVar4 - ldr r1, _0810A9CC @ =gUnknown_8416959 + ldr r1, _0810A9CC @ =gText_TurnedOverItemsWorthYen adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, _0810A9D0 @ =sub_810A9D4 adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 - bl sub_8108E70 + bl DisplayItemMessageInBag pop {r4-r6} pop {r0} bx r0 @@ -5437,7 +5437,7 @@ _0810A9BC: .4byte gStringVar1 _0810A9C0: .4byte gStringVar3 _0810A9C4: .4byte gUnknown_203ACFC _0810A9C8: .4byte gStringVar4 -_0810A9CC: .4byte gUnknown_8416959 +_0810A9CC: .4byte gText_TurnedOverItemsWorthYen _0810A9D0: .4byte sub_810A9D4 thumb_func_end sub_810A940 @@ -5464,7 +5464,7 @@ sub_810A9D4: @ 810A9D4 ldrh r0, [r5] mov r2, r8 ldrh r1, [r2, 0x10] - bl sub_809A1D8 + bl RemoveBagItem ldr r3, _0810AAE0 @ =gSaveBlock1Ptr ldr r4, [r3] movs r7, 0xA4 @@ -5497,7 +5497,7 @@ sub_810A9D4: @ 810A9D4 adds r3, r4 mov r9, r3 add r2, r9 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_8108DC8 ldrb r0, [r4, 0x6] @@ -5512,7 +5512,7 @@ sub_810A9D4: @ 810A9D4 strb r0, [r2, 0x5] ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _0810AAEC @ =gUnknown_3005E70 + ldr r0, _0810AAEC @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 @@ -5563,7 +5563,7 @@ _0810AADC: .4byte gSpecialVar_ItemId _0810AAE0: .4byte gSaveBlock1Ptr _0810AAE4: .4byte gUnknown_203ACFC _0810AAE8: .4byte gUnknown_203AD10 -_0810AAEC: .4byte gUnknown_3005E70 +_0810AAEC: .4byte gMultiuseListMenuTemplate _0810AAF0: .4byte sub_810AAF4 thumb_func_end sub_810A9D4 @@ -5744,7 +5744,7 @@ sub_810AC40: @ 810AC40 ldr r5, _0810ACD0 @ =gSpecialVar_ItemId ldrh r0, [r5] ldrh r1, [r7, 0x10] - bl sub_809A3C8 + bl AddPCItem lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 @@ -5753,10 +5753,10 @@ sub_810AC40: @ 810AC40 ldr r3, _0810ACD4 @ =0x0000ffff movs r0, 0x1C movs r1, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldrh r0, [r5] ldr r1, _0810ACD8 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _0810ACDC @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r7, r2] @@ -5803,7 +5803,7 @@ _0810ACEC: ldr r3, _0810AD0C @ =sub_810A1D0 adds r0, r4, 0 movs r1, 0x2 - bl sub_8108E70 + bl DisplayItemMessageInBag _0810ACF8: add sp, 0x14 pop {r3,r4} @@ -5839,7 +5839,7 @@ _0810AD1E: cmp r0, 0 beq _0810AD98 movs r1, 0x1 - bl sub_8099F40 + bl CheckBagHasItem lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 @@ -6120,10 +6120,10 @@ sub_810AF74: @ 810AF74 bl sub_810ADD8 movs r0, 0xD movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0x4 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldr r2, _0810AF98 @ =sub_8030AEC movs r0, 0x6 movs r1, 0 @@ -6212,7 +6212,7 @@ _0810B01C: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC bl sub_8108CB4 adds r0, r7, 0 @@ -6317,36 +6317,36 @@ sub_810B108: @ 810B108 bl sub_810ADD8 movs r0, 0xD movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0xE movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0xB7 lsls r0, 1 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0xB6 lsls r0, 1 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0x4 movs r1, 0x5 - bl sub_809A084 + bl AddBagItem movs r0, 0x3 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem movs r0, 0x8 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem cmp r4, 0x7 beq _0810B160 cmp r4, 0x8 beq _0810B16C - ldr r2, _0810B15C @ =sub_815ABFC + ldr r2, _0810B15C @ =CB2_ReturnToTeachyTV adds r0, r4, 0 b _0810B170 .align 2, 0 -_0810B15C: .4byte sub_815ABFC +_0810B15C: .4byte CB2_ReturnToTeachyTV _0810B160: ldr r2, _0810B168 @ =sub_8030AEC movs r0, 0x7 @@ -6383,10 +6383,10 @@ sub_810B180: @ 810B180 _0810B198: .4byte gMain _0810B19C: bl sub_810AECC - bl sub_815AC20 + bl SetTeachyTvControllerModeToResume ldr r0, _0810B1C4 @ =gUnknown_203AD10 ldr r1, [r0] - ldr r0, _0810B1C8 @ =sub_815ABFC + ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV str r0, [r1] ldr r1, _0810B1CC @ =gTasks lsls r0, r4, 2 @@ -6402,7 +6402,7 @@ _0810B1BC: bx r1 .align 2, 0 _0810B1C4: .4byte gUnknown_203AD10 -_0810B1C8: .4byte sub_815ABFC +_0810B1C8: .4byte CB2_ReturnToTeachyTV _0810B1CC: .4byte gTasks _0810B1D0: .4byte sub_810B070 thumb_func_end sub_810B180 @@ -6537,10 +6537,10 @@ _0810B29E: adds r6, r4, 0 adds r6, 0x8 adds r2, r6 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x6] bl sub_810842C - ldr r0, _0810B328 @ =gUnknown_3005E70 + ldr r0, _0810B328 @ =gMultiuseListMenuTemplate ldrh r2, [r4, 0x6] lsls r2, 1 adds r5, r2, r5 @@ -6565,7 +6565,7 @@ _0810B318: .4byte gSaveBlock1Ptr _0810B31C: .4byte gSpecialVar_ItemId _0810B320: .4byte 0x00000296 _0810B324: .4byte gUnknown_203ACFC -_0810B328: .4byte gUnknown_3005E70 +_0810B328: .4byte gMultiuseListMenuTemplate _0810B32C: ldr r1, _0810B340 @ =gMain movs r0, 0 @@ -6583,7 +6583,7 @@ _0810B344: ldrb r0, [r7] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC bl sub_8108CB4 adds r0, r6, 0 @@ -6738,7 +6738,7 @@ _0810B468: ldrb r0, [r4] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC bl sub_8108CB4 adds r0, r7, 0 @@ -6854,13 +6854,13 @@ _0810B564: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC ldr r1, _0810B5B0 @ =gUnknown_3005E98 ldr r0, _0810B5B4 @ =ItemUseCB_Medicine str r0, [r1] ldr r0, _0810B5B8 @ =sub_81279A4 - bl sub_8108EE0 + bl ItemMenu_SetExitCallback mov r0, r9 subs r0, 0x8 add r0, r8 @@ -6989,11 +6989,11 @@ _0810B68C: ldrb r0, [r6] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_810AECC ldr r0, _0810B6D4 @ =gUnknown_203AD10 ldr r1, [r0] - ldr r0, _0810B6D8 @ =sub_8132E64 + ldr r0, _0810B6D8 @ =PokeDude_InitTMCase str r0, [r1] mov r0, r9 subs r0, 0x8 @@ -7003,7 +7003,7 @@ _0810B68C: b _0810B6E6 .align 2, 0 _0810B6D4: .4byte gUnknown_203AD10 -_0810B6D8: .4byte sub_8132E64 +_0810B6D8: .4byte PokeDude_InitTMCase _0810B6DC: .4byte sub_810B070 _0810B6E0: ldrh r0, [r6, 0x10] diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s deleted file mode 100644 index 118591dc2..000000000 --- a/asm/item_menu_icons.s +++ /dev/null @@ -1,680 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80984D8 -sub_80984D8: @ 80984D8 - push {r4,lr} - movs r2, 0 - ldr r4, _080984F8 @ =gUnknown_2039878 - movs r3, 0xFF -_080984E0: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xB - bls _080984E0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080984F8: .4byte gUnknown_2039878 - thumb_func_end sub_80984D8 - - thumb_func_start sub_80984FC -sub_80984FC: @ 80984FC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08098520 @ =gUnknown_83D41FC - movs r1, 0x28 - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - ldr r1, _08098524 @ =gUnknown_2039878 - strb r0, [r1] - adds r0, r4, 0 - bl sub_8098528 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08098520: .4byte gUnknown_83D41FC -_08098524: .4byte gUnknown_2039878 - thumb_func_end sub_80984FC - - thumb_func_start sub_8098528 -sub_8098528: @ 8098528 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08098550 @ =gUnknown_2039878 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r2, _08098554 @ =gSprites - adds r0, r2 - ldr r2, _08098558 @ =0x0000fffb - strh r2, [r0, 0x26] - ldr r2, _0809855C @ =sub_8098560 - str r2, [r0, 0x1C] - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_08098550: .4byte gUnknown_2039878 -_08098554: .4byte gSprites -_08098558: .4byte 0x0000fffb -_0809855C: .4byte sub_8098560 - thumb_func_end sub_8098528 - - thumb_func_start sub_8098560 -sub_8098560: @ 8098560 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x26] - movs r3, 0x26 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08098574 - adds r0, r2, 0x1 - strh r0, [r1, 0x26] - b _08098578 -_08098574: - ldr r0, _0809857C @ =SpriteCallbackDummy - str r0, [r1, 0x1C] -_08098578: - pop {r0} - bx r0 - .align 2, 0 -_0809857C: .4byte SpriteCallbackDummy - thumb_func_end sub_8098560 - - thumb_func_start sub_8098580 -sub_8098580: @ 8098580 - push {r4,lr} - ldr r0, _080985B0 @ =gUnknown_2039878 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080985B4 @ =gSprites - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080985AA - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _080985B8 @ =sub_80985BC - str r0, [r4, 0x1C] -_080985AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080985B0: .4byte gUnknown_2039878 -_080985B4: .4byte gSprites -_080985B8: .4byte sub_80985BC - thumb_func_end sub_8098580 - - thumb_func_start sub_80985BC -sub_80985BC: @ 80985BC - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080985D8 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - ldr r0, _080985E0 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_080985D8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080985E0: .4byte SpriteCallbackDummy - thumb_func_end sub_80985BC - - thumb_func_start sub_80985E4 -sub_80985E4: @ 80985E4 - push {r4-r7,lr} - ldr r7, _08098620 @ =gUnknown_2039879 - movs r5, 0 - ldr r6, _08098624 @ =gSprites -_080985EC: - lsls r1, r5, 20 - movs r0, 0xC0 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - ldr r0, _08098628 @ =gUnknown_83D4250 - movs r2, 0x7 - movs r3, 0 - bl CreateSprite - adds r1, r7, r5 - strb r0, [r1] - adds r4, r1, 0 - cmp r5, 0 - beq _0809863C - cmp r5, 0x8 - bne _0809862C - ldrb r1, [r7, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - bl StartSpriteAnim - b _0809863C - .align 2, 0 -_08098620: .4byte gUnknown_2039879 -_08098624: .4byte gSprites -_08098628: .4byte gUnknown_83D4250 -_0809862C: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartSpriteAnim -_0809863C: - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x8 - bls _080985EC - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80985E4 - - thumb_func_start sub_8098660 -sub_8098660: @ 8098660 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r7, _080986A0 @ =gUnknown_2039879 - movs r3, 0 - ldr r6, _080986A4 @ =gSprites - movs r1, 0x1 - ands r0, r1 - lsls r4, r0, 2 - movs r5, 0x5 - negs r5, r5 -_08098676: - adds r0, r7, r3 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - 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 _08098676 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080986A0: .4byte gUnknown_2039879 -_080986A4: .4byte gSprites - thumb_func_end sub_8098660 - - thumb_func_start sub_80986A8 -sub_80986A8: @ 80986A8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r7, _080986E4 @ =gUnknown_2039879 - movs r3, 0 - ldr r4, _080986E8 @ =gSprites - adds r5, r1, 0x7 -_080986BA: - adds r2, r7, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r6, [r0, 0x24] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r5, [r0, 0x22] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _080986BA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080986E4: .4byte gUnknown_2039879 -_080986E8: .4byte gSprites - thumb_func_end sub_80986A8 - - thumb_func_start sub_80986EC -sub_80986EC: @ 80986EC - push {r4,r5,lr} - ldr r5, _08098714 @ =gUnknown_2039884 - movs r0, 0x90 - lsls r0, 1 - bl Alloc - str r0, [r5] - cmp r0, 0 - beq _08098722 - ldr r4, _08098718 @ =gUnknown_2039888 - movs r0, 0x80 - lsls r0, 2 - bl AllocZeroed - str r0, [r4] - cmp r0, 0 - beq _0809871C - movs r0, 0x1 - b _08098724 - .align 2, 0 -_08098714: .4byte gUnknown_2039884 -_08098718: .4byte gUnknown_2039888 -_0809871C: - ldr r0, [r5] - bl Free -_08098722: - movs r0, 0 -_08098724: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80986EC - - thumb_func_start CopyItemIconPicTo4x4Buffer -CopyItemIconPicTo4x4Buffer: @ 809872C - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 -_08098734: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 5 - adds r0, r6, r0 - lsls r1, r4, 7 - adds r1, r5, r1 - movs r2, 0x30 - bl CpuSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08098734 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end CopyItemIconPicTo4x4Buffer - - thumb_func_start AddItemIconObject -AddItemIconObject: @ 8098758 - push {r4-r7,lr} - sub sp, 0x28 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 16 - lsrs r7, r2, 16 - bl sub_80986EC - lsls r0, 24 - cmp r0, 0 - beq _08098810 - adds r0, r7, 0 - movs r1, 0 - bl sub_8098974 - ldr r2, _080987FC @ =gUnknown_2039884 - ldr r1, [r2] - bl LZDecompressWram - ldr r1, _080987FC @ =gUnknown_2039884 - ldr r0, [r1] - ldr r2, _08098800 @ =gUnknown_2039888 - ldr r1, [r2] - bl CopyItemIconPicTo4x4Buffer - ldr r1, _08098800 @ =gUnknown_2039888 - ldr r0, [r1] - str r0, [sp, 0x18] - ldr r4, _08098804 @ =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r4 - movs r2, 0x80 - lsls r2, 2 - orrs r1, r2 - lsls r3, r6, 16 - ldr r2, _08098808 @ =0x0000ffff - ands r1, r2 - orrs r1, r3 - str r1, [r0, 0x4] - bl LoadSpriteSheet - adds r0, r7, 0 - movs r1, 0x1 - bl sub_8098974 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r5 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette - ldr r0, _0809880C @ =gUnknown_83D427C - mov r1, sp - movs r2, 0xC - bl CpuSet - mov r0, sp - strh r6, [r0] - strh r5, [r0, 0x2] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080987FC @ =gUnknown_2039884 - ldr r0, [r2] - bl Free - ldr r1, _08098800 @ =gUnknown_2039888 - ldr r0, [r1] - bl Free - adds r0, r4, 0 - b _08098812 - .align 2, 0 -_080987FC: .4byte gUnknown_2039884 -_08098800: .4byte gUnknown_2039888 -_08098804: .4byte 0xffff0000 -_08098808: .4byte 0x0000ffff -_0809880C: .4byte gUnknown_83D427C -_08098810: - movs r0, 0x40 -_08098812: - add sp, 0x28 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddItemIconObject - - thumb_func_start AddItemIconObjectWithCustomObjectTemplate -AddItemIconObjectWithCustomObjectTemplate: @ 809881C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - mov r8, r0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - lsls r3, 16 - lsrs r7, r3, 16 - bl sub_80986EC - lsls r0, 24 - cmp r0, 0 - beq _080988D8 - adds r0, r7, 0 - movs r1, 0 - bl sub_8098974 - ldr r2, _080988C8 @ =gUnknown_2039884 - ldr r1, [r2] - bl LZDecompressWram - ldr r1, _080988C8 @ =gUnknown_2039884 - ldr r0, [r1] - ldr r2, _080988CC @ =gUnknown_2039888 - ldr r1, [r2] - bl CopyItemIconPicTo4x4Buffer - ldr r1, _080988CC @ =gUnknown_2039888 - ldr r0, [r1] - str r0, [sp, 0x18] - ldr r4, _080988D0 @ =0xffff0000 - add r0, sp, 0x18 - ldr r1, [r0, 0x4] - ands r1, r4 - movs r2, 0x80 - lsls r2, 2 - orrs r1, r2 - lsls r3, r6, 16 - ldr r2, _080988D4 @ =0x0000ffff - ands r1, r2 - orrs r1, r3 - str r1, [r0, 0x4] - bl LoadSpriteSheet - adds r0, r7, 0 - movs r1, 0x1 - bl sub_8098974 - str r0, [sp, 0x20] - add r0, sp, 0x20 - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r5 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette - mov r0, r8 - mov r1, sp - movs r2, 0xC - bl CpuSet - mov r0, sp - strh r6, [r0] - strh r5, [r0, 0x2] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080988C8 @ =gUnknown_2039884 - ldr r0, [r2] - bl Free - ldr r1, _080988CC @ =gUnknown_2039888 - ldr r0, [r1] - bl Free - adds r0, r4, 0 - b _080988DA - .align 2, 0 -_080988C8: .4byte gUnknown_2039884 -_080988CC: .4byte gUnknown_2039888 -_080988D0: .4byte 0xffff0000 -_080988D4: .4byte 0x0000ffff -_080988D8: - movs r0, 0x40 -_080988DA: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddItemIconObjectWithCustomObjectTemplate - - thumb_func_start sub_80988E8 -sub_80988E8: @ 80988E8 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08098938 @ =gUnknown_2039882 - adds r5, r1, r0 - ldrb r0, [r5] - cmp r0, 0xFF - bne _08098932 - adds r4, r1, 0 - adds r4, 0x66 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl AddItemIconObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _08098932 - strb r2, [r5] - ldr r1, _0809893C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x18 - strh r1, [r0, 0x24] - movs r1, 0x8C - strh r1, [r0, 0x26] -_08098932: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098938: .4byte gUnknown_2039882 -_0809893C: .4byte gSprites - thumb_func_end sub_80988E8 - - thumb_func_start sub_8098940 -sub_8098940: @ 8098940 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809896C @ =gUnknown_2039882 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - beq _08098964 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08098970 @ =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - movs r0, 0xFF - strb r0, [r4] -_08098964: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809896C: .4byte gUnknown_2039882 -_08098970: .4byte gSprites - thumb_func_end sub_8098940 - - thumb_func_start sub_8098974 -sub_8098974: @ 8098974 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08098998 @ =0x00000177 - cmp r3, r0 - bls _08098986 - movs r3, 0 -_08098986: - ldr r2, _0809899C @ =gUnknown_83D4294 - lsls r0, r1, 2 - lsls r1, r3, 3 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_08098998: .4byte 0x00000177 -_0809899C: .4byte gUnknown_83D4294 - thumb_func_end sub_8098974 - - thumb_func_start sub_80989A0 -sub_80989A0: @ 80989A0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080989F0 @ =gUnknown_2039882 - adds r5, r1, r0 - ldrb r0, [r5] - cmp r0, 0xFF - bne _080989EA - adds r4, r1, 0 - adds r4, 0x66 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl AddItemIconObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080989EA - strb r2, [r5] - ldr r1, _080989F4 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x18 - strh r1, [r0, 0x24] - movs r1, 0x93 - strh r1, [r0, 0x26] -_080989EA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080989F0: .4byte gUnknown_2039882 -_080989F4: .4byte gSprites - thumb_func_end sub_80989A0 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_pc.s b/asm/item_pc.s deleted file mode 100644 index b222b9ca2..000000000 --- a/asm/item_pc.s +++ /dev/null @@ -1,2909 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_810D3F4 -sub_810D3F4: @ 810D3F4 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - cmp r5, 0x1 - bhi _0810D410 - ldr r6, _0810D418 @ =gUnknown_203ADBC - movs r0, 0x14 - bl Alloc - str r0, [r6] - cmp r0, 0 - bne _0810D41C -_0810D410: - adds r0, r4, 0 - bl SetMainCallback2 - b _0810D462 - .align 2, 0 -_0810D418: .4byte gUnknown_203ADBC -_0810D41C: - cmp r5, 0x1 - beq _0810D42A - ldr r0, _0810D468 @ =gUnknown_203ADCC - str r4, [r0] - movs r1, 0 - strh r1, [r0, 0x6] - strh r1, [r0, 0x4] -_0810D42A: - ldr r1, [r6] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r6] - movs r2, 0 - strb r2, [r0, 0x5] - ldr r1, [r6] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x8] - ldr r0, [r6] - str r2, [r0] - ldr r5, _0810D46C @ =sub_810D4A0 - adds r4, r6, 0 - movs r3, 0 -_0810D448: - ldr r0, [r4] - lsls r1, r2, 1 - adds r0, 0xC - adds r0, r1 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _0810D448 - adds r0, r5, 0 - bl SetMainCallback2 -_0810D462: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810D468: .4byte gUnknown_203ADCC -_0810D46C: .4byte sub_810D4A0 - thumb_func_end sub_810D3F4 - - thumb_func_start sub_810D470 -sub_810D470: @ 810D470 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_810D470 - - thumb_func_start sub_810D48C -sub_810D48C: @ 810D48C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_810D48C - - thumb_func_start sub_810D4A0 -sub_810D4A0: @ 810D4A0 - push {lr} -_0810D4A2: - bl sub_810D4C0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810D4BA - bl sub_80BF708 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810D4A2 -_0810D4BA: - pop {r0} - bx r0 - thumb_func_end sub_810D4A0 - - thumb_func_start sub_810D4C0 -sub_810D4C0: @ 810D4C0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0810D4E0 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x14 - bls _0810D4D4 - b _0810D688 -_0810D4D4: - lsls r0, 2 - ldr r1, _0810D4E4 @ =_0810D4E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810D4E0: .4byte gMain -_0810D4E4: .4byte _0810D4E8 - .align 2, 0 -_0810D4E8: - .4byte _0810D53C - .4byte _0810D546 - .4byte _0810D54C - .4byte _0810D552 - .4byte _0810D558 - .4byte _0810D55E - .4byte _0810D564 - .4byte _0810D56A - .4byte _0810D584 - .4byte _0810D594 - .4byte _0810D59A - .4byte _0810D5A8 - .4byte _0810D5BA - .4byte _0810D5C0 - .4byte _0810D5C6 - .4byte _0810D5CC - .4byte _0810D608 - .4byte _0810D60E - .4byte _0810D616 - .4byte _0810D630 - .4byte _0810D668 -_0810D53C: - bl sub_80BF768 - bl clear_scheduled_bg_copies_to_vram - b _0810D674 -_0810D546: - bl remove_some_task - b _0810D674 -_0810D54C: - bl FreeAllSpritePalettes - b _0810D674 -_0810D552: - bl ResetPaletteFade - b _0810D674 -_0810D558: - bl ResetSpriteData - b _0810D674 -_0810D55E: - bl sub_80984D8 - b _0810D674 -_0810D564: - bl ResetTasks - b _0810D674 -_0810D56A: - bl sub_810D71C - lsls r0, 24 - cmp r0, 0 - beq _0810D5B2 - ldr r0, _0810D580 @ =gUnknown_203ADBC - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0xC] - b _0810D674 - .align 2, 0 -_0810D580: .4byte gUnknown_203ADBC -_0810D584: - bl sub_810D78C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810D592 - b _0810D6A0 -_0810D592: - b _0810D674 -_0810D594: - bl sub_810E8F0 - b _0810D674 -_0810D59A: - bl sub_810DDA4 - bl sub_810DBF0 - bl sub_810DE08 - b _0810D674 -_0810D5A8: - bl sub_810D83C - lsls r0, 24 - cmp r0, 0 - bne _0810D674 -_0810D5B2: - bl sub_810D6AC - movs r0, 0x1 - b _0810D6A2 -_0810D5BA: - bl sub_810D878 - b _0810D674 -_0810D5C0: - bl sub_810DB34 - b _0810D674 -_0810D5C6: - bl sub_80985E4 - b _0810D674 -_0810D5CC: - ldr r0, _0810D5F8 @ =sub_810DEA0 - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810D5FC @ =gUnknown_3005E70 - ldr r2, _0810D600 @ =gUnknown_203ADCC - ldrh r1, [r2, 0x4] - ldrh r2, [r2, 0x6] - bl ListMenuInit - ldr r2, _0810D604 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x8] - b _0810D674 - .align 2, 0 -_0810D5F8: .4byte sub_810DEA0 -_0810D5FC: .4byte gUnknown_3005E70 -_0810D600: .4byte gUnknown_203ADCC -_0810D604: .4byte gTasks -_0810D608: - bl sub_810DB5C - b _0810D674 -_0810D60E: - movs r0, 0x1D - bl sub_812B1F0 - b _0810D674 -_0810D616: - ldr r0, _0810D62C @ =gUnknown_203ADCC - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _0810D674 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _0810D674 - .align 2, 0 -_0810D62C: .4byte gUnknown_203ADCC -_0810D630: - ldr r0, _0810D64C @ =gUnknown_203ADCC - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _0810D650 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _0810D674 - .align 2, 0 -_0810D64C: .4byte gUnknown_203ADCC -_0810D650: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_80A0A48 - movs r0, 0x1 - bl sub_810DE94 - movs r0, 0x2 - bl PlaySE - b _0810D674 -_0810D668: - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810D6A0 -_0810D674: - ldr r1, _0810D684 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0810D6A0 - .align 2, 0 -_0810D684: .4byte gMain -_0810D688: - ldr r0, _0810D698 @ =sub_810D48C - bl SetVBlankCallback - ldr r0, _0810D69C @ =sub_810D470 - bl SetMainCallback2 - movs r0, 0x1 - b _0810D6A2 - .align 2, 0 -_0810D698: .4byte sub_810D48C -_0810D69C: .4byte sub_810D470 -_0810D6A0: - movs r0, 0 -_0810D6A2: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810D4C0 - - thumb_func_start sub_810D6AC -sub_810D6AC: @ 810D6AC - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0810D6DC @ =sub_810D6E8 - movs r1, 0 - bl CreateTask - ldr r0, _0810D6E0 @ =sub_810D48C - bl SetVBlankCallback - ldr r0, _0810D6E4 @ =sub_810D470 - bl SetMainCallback2 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0810D6DC: .4byte sub_810D6E8 -_0810D6E0: .4byte sub_810D48C -_0810D6E4: .4byte sub_810D470 - thumb_func_end sub_810D6AC - - thumb_func_start sub_810D6E8 -sub_810D6E8: @ 810D6E8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810D714 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810D70C - ldr r0, _0810D718 @ =gUnknown_203ADCC - ldr r0, [r0] - bl SetMainCallback2 - bl sub_810DC40 - adds r0, r4, 0 - bl DestroyTask -_0810D70C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D714: .4byte gPaletteFade -_0810D718: .4byte gUnknown_203ADCC - thumb_func_end sub_810D6E8 - - thumb_func_start sub_810D71C -sub_810D71C: @ 810D71C - push {r4,r5,lr} - bl sub_80BF7C8 - ldr r5, _0810D77C @ =gUnknown_203ADC0 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - cmp r0, 0 - beq _0810D784 - movs r1, 0 - adds r2, r4, 0 - bl memset - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0810D780 @ =gUnknown_8453F6C - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - ldr r1, [r5] - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x1 - b _0810D786 - .align 2, 0 -_0810D77C: .4byte gUnknown_203ADC0 -_0810D780: .4byte gUnknown_8453F6C -_0810D784: - movs r0, 0 -_0810D786: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810D71C - - thumb_func_start sub_810D78C -sub_810D78C: @ 810D78C - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0810D7A8 @ =gUnknown_203ADBC - ldr r0, [r5] - movs r1, 0xC - ldrsh r4, [r0, r1] - cmp r4, 0x1 - beq _0810D7D0 - cmp r4, 0x1 - bgt _0810D7AC - cmp r4, 0 - beq _0810D7B6 - b _0810D814 - .align 2, 0 -_0810D7A8: .4byte gUnknown_203ADBC -_0810D7AC: - cmp r4, 0x2 - beq _0810D7F0 - cmp r4, 0x3 - beq _0810D800 - b _0810D814 -_0810D7B6: - bl reset_temp_tile_data_buffers - ldr r1, _0810D7CC @ =gUnknown_8E85090 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _0810D806 - .align 2, 0 -_0810D7CC: .4byte gUnknown_8E85090 -_0810D7D0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810D830 - ldr r0, _0810D7E8 @ =gUnknown_8E85458 - ldr r1, _0810D7EC @ =gUnknown_203ADC0 - ldr r1, [r1] - bl LZDecompressWram - b _0810D806 - .align 2, 0 -_0810D7E8: .4byte gUnknown_8E85458 -_0810D7EC: .4byte gUnknown_203ADC0 -_0810D7F0: - ldr r0, _0810D7FC @ =gUnknown_8E85408 - movs r1, 0 - movs r2, 0x60 - bl LoadCompressedPalette - b _0810D806 - .align 2, 0 -_0810D7FC: .4byte gUnknown_8E85408 -_0810D800: - ldr r0, _0810D810 @ =gUnknown_83D4240 - bl LoadCompressedObjectPic -_0810D806: - ldr r1, [r5] - ldrh r0, [r1, 0xC] - adds r0, 0x1 - strh r0, [r1, 0xC] - b _0810D830 - .align 2, 0 -_0810D810: .4byte gUnknown_83D4240 -_0810D814: - ldr r0, _0810D828 @ =gUnknown_83D4248 - bl LoadCompressedObjectPalette - ldr r0, _0810D82C @ =gUnknown_203ADBC - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0xC] - movs r0, 0x1 - b _0810D832 - .align 2, 0 -_0810D828: .4byte gUnknown_83D4248 -_0810D82C: .4byte gUnknown_203ADBC -_0810D830: - movs r0, 0 -_0810D832: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810D78C - - thumb_func_start sub_810D83C -sub_810D83C: @ 810D83C - push {r4,lr} - ldr r4, _0810D860 @ =gUnknown_203ADC4 - movs r0, 0xF8 - bl Alloc - str r0, [r4] - cmp r0, 0 - beq _0810D868 - ldr r4, _0810D864 @ =gUnknown_203ADC8 - movs r0, 0xD9 - lsls r0, 1 - bl Alloc - str r0, [r4] - cmp r0, 0 - beq _0810D868 - movs r0, 0x1 - b _0810D872 - .align 2, 0 -_0810D860: .4byte gUnknown_203ADC4 -_0810D864: .4byte gUnknown_203ADC8 -_0810D868: - bl sub_810DC40 - bl sub_810D6AC - movs r0, 0 -_0810D872: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810D83C - - thumb_func_start sub_810D878 -sub_810D878: @ 810D878 - push {r4,r5,lr} - movs r4, 0 - b _0810D8A4 -_0810D87E: - ldr r0, _0810D938 @ =gSaveBlock1Ptr - ldr r0, [r0] - lsls r1, r4, 2 - adds r0, r1 - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - bl ItemId_GetItem - ldr r1, _0810D93C @ =gUnknown_203ADC4 - ldr r2, [r1] - lsls r1, r4, 3 - adds r1, r2 - str r0, [r1] - str r4, [r1, 0x4] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_0810D8A4: - ldr r0, _0810D940 @ =gUnknown_203ADBC - ldr r0, [r0] - ldrb r0, [r0, 0x7] - cmp r4, r0 - bcc _0810D87E - ldr r0, _0810D93C @ =gUnknown_203ADC4 - ldr r3, [r0] - lsls r0, r4, 3 - adds r0, r3 - ldr r1, _0810D944 @ =gFameCheckerText_Cancel - str r1, [r0] - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - ldr r2, _0810D948 @ =gUnknown_3005E70 - str r3, [r2] - ldr r0, _0810D940 @ =gUnknown_203ADBC - ldr r3, [r0] - ldrb r0, [r3, 0x7] - adds r0, 0x1 - movs r1, 0 - strh r0, [r2, 0xC] - strb r1, [r2, 0x10] - strb r1, [r2, 0x11] - movs r0, 0x9 - strb r0, [r2, 0x12] - movs r1, 0x1 - movs r0, 0x1 - strb r0, [r2, 0x13] - ldrb r0, [r2, 0x16] - movs r4, 0x8 - negs r4, r4 - ands r4, r0 - orrs r4, r1 - movs r0, 0x39 - negs r0, r0 - ands r4, r0 - movs r0, 0x10 - orrs r4, r0 - strb r4, [r2, 0x16] - ldrb r1, [r2, 0x14] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r5, 0x2 - orrs r0, r5 - strb r0, [r2, 0x14] - ldrb r1, [r3, 0x6] - strh r1, [r2, 0xE] - ldrb r1, [r2, 0x17] - movs r3, 0x40 - negs r3, r3 - ands r3, r1 - orrs r3, r5 - movs r1, 0xF - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x14] - movs r0, 0x30 - strb r0, [r2, 0x15] - ldr r0, _0810D94C @ =sub_810D954 - str r0, [r2, 0x4] - ldr r0, _0810D950 @ =sub_810DA20 - str r0, [r2, 0x8] - movs r0, 0x3F - ands r4, r0 - strb r4, [r2, 0x16] - ands r3, r0 - strb r3, [r2, 0x17] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810D938: .4byte gSaveBlock1Ptr -_0810D93C: .4byte gUnknown_203ADC4 -_0810D940: .4byte gUnknown_203ADBC -_0810D944: .4byte gFameCheckerText_Cancel -_0810D948: .4byte gUnknown_3005E70 -_0810D94C: .4byte sub_810D954 -_0810D950: .4byte sub_810DA20 - thumb_func_end sub_810D878 - - thumb_func_start sub_810D954 -sub_810D954: @ 810D954 - push {r4,r5,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _0810D968 - movs r0, 0x5 - bl PlaySE -_0810D968: - ldr r5, _0810D9BC @ =gUnknown_203ADBC - ldr r1, [r5] - ldrb r0, [r1, 0x4] - cmp r0, 0xFF - bne _0810DA0A - ldrb r1, [r1, 0x5] - movs r0, 0x1 - eors r0, r1 - bl sub_8098940 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0810D9CE - lsls r0, r4, 16 - lsrs r0, 16 - bl sub_810DD68 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r5] - ldrb r1, [r0, 0x5] - adds r0, r4, 0 - bl sub_80988E8 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0810D9C4 - adds r0, r4, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, _0810D9C0 @ =gMoveNames - adds r5, r1, r0 - b _0810D9DA - .align 2, 0 -_0810D9BC: .4byte gUnknown_203ADBC -_0810D9C0: .4byte gMoveNames -_0810D9C4: - adds r0, r4, 0 - bl ItemId_GetDescription - adds r5, r0, 0 - b _0810D9DA -_0810D9CE: - ldr r0, _0810DA14 @ =0x00000177 - ldr r1, [r5] - ldrb r1, [r1, 0x5] - bl sub_80988E8 - ldr r5, _0810DA18 @ =gUnknown_84178BE -_0810D9DA: - ldr r0, _0810DA1C @ =gUnknown_203ADBC - ldr r2, [r0] - ldrb r0, [r2, 0x5] - movs r1, 0x1 - eors r0, r1 - movs r4, 0 - strb r0, [r2, 0x5] - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0x3 - str r1, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r1, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl sub_810EA34 -_0810DA0A: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DA14: .4byte 0x00000177 -_0810DA18: .4byte gUnknown_84178BE -_0810DA1C: .4byte gUnknown_203ADBC - thumb_func_end sub_810D954 - - thumb_func_start sub_810DA20 -sub_810DA20: @ 810DA20 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r0, _0810DA4C @ =gUnknown_203ADBC - ldr r0, [r0] - ldrb r1, [r0, 0x4] - cmp r1, 0xFF - beq _0810DA58 - lsls r0, r4, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0810DA50 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_810DAD4 - b _0810DA58 - .align 2, 0 -_0810DA4C: .4byte gUnknown_203ADBC -_0810DA50: - adds r0, r5, 0 - movs r1, 0xFF - bl sub_810DAD4 -_0810DA58: - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0810DA9E - lsls r0, r4, 16 - lsrs r0, 16 - bl sub_810DD80 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _0810DAA8 @ =gStringVar1 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _0810DAAC @ =gStringVar4 - ldr r1, _0810DAB0 @ =gUnknown_84162B9 - adds r0, r4, 0 - bl StringExpandPlaceholders - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - adds r0, r6, 0 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0x6E - bl sub_810EA34 -_0810DA9E: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DAA8: .4byte gStringVar1 -_0810DAAC: .4byte gStringVar4 -_0810DAB0: .4byte gUnknown_84162B9 - thumb_func_end sub_810DA20 - - thumb_func_start sub_810DAB4 -sub_810DAB4: @ 810DAB4 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_810DAD4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810DAB4 - - thumb_func_start sub_810DAD4 -sub_810DAD4: @ 810DAD4 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xFF - bne _0810DB10 - movs r0, 0x2 - movs r1, 0 - bl GetFontAttribute - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl FillWindowPixelRect - b _0810DB26 -_0810DB10: - ldr r2, _0810DB30 @ =gFameCheckerText_ListMenuCursor - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0 - bl sub_810EA34 -_0810DB26: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DB30: .4byte gFameCheckerText_ListMenuCursor - thumb_func_end sub_810DAD4 - - thumb_func_start sub_810DB34 -sub_810DB34: @ 810DB34 - push {lr} - sub sp, 0x14 - ldr r2, _0810DB58 @ =gUnknown_84178A7 - movs r1, 0x1 - str r1, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x2 - movs r1, 0 - movs r3, 0 - bl sub_810EA34 - add sp, 0x14 - pop {r0} - bx r0 - .align 2, 0 -_0810DB58: .4byte gUnknown_84178A7 - thumb_func_end sub_810DB34 - - thumb_func_start sub_810DB5C -sub_810DB5C: @ 810DB5C - push {r4,lr} - sub sp, 0x10 - ldr r4, _0810DB90 @ =gUnknown_203ADBC - ldr r1, [r4] - ldrb r0, [r1, 0x7] - ldrb r1, [r1, 0x6] - subs r0, r1 - adds r0, 0x1 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldr r0, _0810DB94 @ =gUnknown_203ADD0 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x80 - movs r2, 0x8 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DB90: .4byte gUnknown_203ADBC -_0810DB94: .4byte gUnknown_203ADD0 - thumb_func_end sub_810DB5C - - thumb_func_start sub_810DB98 -sub_810DB98: @ 810DB98 - push {r4,lr} - sub sp, 0x10 - ldr r4, _0810DBCC @ =gUnknown_203ADBC - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0xA - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xD4 - movs r2, 0x78 - movs r3, 0x98 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DBCC: .4byte gUnknown_203ADBC - thumb_func_end sub_810DB98 - - thumb_func_start sub_810DBD0 -sub_810DBD0: @ 810DBD0 - push {r4,lr} - ldr r4, _0810DBEC @ =gUnknown_203ADBC - ldr r1, [r4] - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _0810DBE6 - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x8] -_0810DBE6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DBEC: .4byte gUnknown_203ADBC - thumb_func_end sub_810DBD0 - - thumb_func_start sub_810DBF0 -sub_810DBF0: @ 810DBF0 - push {r4,r5,lr} - ldr r0, _0810DC30 @ =gUnknown_203ADCC - ldrh r1, [r0, 0x4] - adds r4, r0, 0 - ldr r5, _0810DC34 @ =gUnknown_203ADBC - cmp r1, 0 - beq _0810DC14 - ldrh r0, [r4, 0x4] - ldr r1, [r5] - ldrb r3, [r1, 0x6] - adds r0, r3 - ldrb r2, [r1, 0x7] - adds r1, r2, 0x1 - cmp r0, r1 - ble _0810DC14 - subs r0, r3, 0x1 - subs r0, r2, r0 - strh r0, [r4, 0x4] -_0810DC14: - adds r3, r4, 0 - ldrh r0, [r3, 0x4] - ldrh r1, [r3, 0x6] - adds r0, r1 - ldr r1, [r5] - ldrb r1, [r1, 0x7] - adds r2, r1, 0x1 - cmp r0, r2 - blt _0810DC3A - cmp r2, 0x1 - bgt _0810DC38 - movs r0, 0 - strh r0, [r3, 0x6] - b _0810DC3A - .align 2, 0 -_0810DC30: .4byte gUnknown_203ADCC -_0810DC34: .4byte gUnknown_203ADBC -_0810DC38: - strh r1, [r4, 0x6] -_0810DC3A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810DBF0 - - thumb_func_start sub_810DC40 -sub_810DC40: @ 810DC40 - push {lr} - ldr r0, _0810DC7C @ =gUnknown_203ADBC - ldr r0, [r0] - cmp r0, 0 - beq _0810DC4E - bl Free -_0810DC4E: - ldr r0, _0810DC80 @ =gUnknown_203ADC0 - ldr r0, [r0] - cmp r0, 0 - beq _0810DC5A - bl Free -_0810DC5A: - ldr r0, _0810DC84 @ =gUnknown_203ADC4 - ldr r0, [r0] - cmp r0, 0 - beq _0810DC66 - bl Free -_0810DC66: - ldr r0, _0810DC88 @ =gUnknown_203ADC8 - ldr r0, [r0] - cmp r0, 0 - beq _0810DC72 - bl Free -_0810DC72: - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 -_0810DC7C: .4byte gUnknown_203ADBC -_0810DC80: .4byte gUnknown_203ADC0 -_0810DC84: .4byte gUnknown_203ADC4 -_0810DC88: .4byte gUnknown_203ADC8 - thumb_func_end sub_810DC40 - - thumb_func_start sub_810DC8C -sub_810DC8C: @ 810DC8C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810DCB0 @ =gUnknown_203ADCC - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _0810DCB4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0810DCC4 - .align 2, 0 -_0810DCB0: .4byte gUnknown_203ADCC -_0810DCB4: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_80A0A70 - movs r0, 0x3 - bl PlaySE -_0810DCC4: - ldr r0, _0810DCDC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0810DCE0 @ =sub_810DCE4 - str r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DCDC: .4byte gTasks -_0810DCE0: .4byte sub_810DCE4 - thumb_func_end sub_810DC8C - - thumb_func_start sub_810DCE4 -sub_810DCE4: @ 810DCE4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810DD28 @ =gTasks+0x8 - adds r4, r0, r1 - ldr r0, _0810DD2C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810DD4E - bl sub_80A0AAC - lsls r0, 24 - cmp r0, 0 - bne _0810DD4E - ldrb r0, [r4] - ldr r4, _0810DD30 @ =gUnknown_203ADD0 - adds r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - ldr r0, _0810DD34 @ =gUnknown_203ADBC - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _0810DD38 - bl SetMainCallback2 - b _0810DD40 - .align 2, 0 -_0810DD28: .4byte gTasks+0x8 -_0810DD2C: .4byte gPaletteFade -_0810DD30: .4byte gUnknown_203ADD0 -_0810DD34: .4byte gUnknown_203ADBC -_0810DD38: - subs r0, r4, 0x4 - ldr r0, [r0] - bl SetMainCallback2 -_0810DD40: - bl sub_810DBD0 - bl sub_810DC40 - adds r0, r5, 0 - bl DestroyTask -_0810DD4E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810DCE4 - - thumb_func_start sub_810DD54 -sub_810DD54: @ 810DD54 - ldr r1, _0810DD64 @ =gUnknown_203ADCC - ldrb r0, [r1, 0x6] - ldrb r1, [r1, 0x4] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_0810DD64: .4byte gUnknown_203ADCC - thumb_func_end sub_810DD54 - - thumb_func_start sub_810DD68 -sub_810DD68: @ 810DD68 - lsls r0, 16 - ldr r1, _0810DD7C @ =gSaveBlock1Ptr - ldr r1, [r1] - lsrs r0, 14 - adds r1, r0 - movs r0, 0xA6 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - bx lr - .align 2, 0 -_0810DD7C: .4byte gSaveBlock1Ptr - thumb_func_end sub_810DD68 - - thumb_func_start sub_810DD80 -sub_810DD80: @ 810DD80 - push {lr} - lsls r0, 16 - ldr r1, _0810DD9C @ =gSaveBlock1Ptr - lsrs r0, 14 - ldr r1, [r1] - adds r0, r1 - ldr r1, _0810DDA0 @ =0x0000029a - adds r0, r1 - bl GetBagItemId - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0810DD9C: .4byte gSaveBlock1Ptr -_0810DDA0: .4byte 0x0000029a - thumb_func_end sub_810DD80 - - thumb_func_start sub_810DDA4 -sub_810DDA4: @ 810DDA4 - push {r4,r5,lr} - bl sub_809A4E8 - ldr r4, _0810DE00 @ =gUnknown_203ADBC - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x7] - movs r2, 0 - ldr r3, _0810DE04 @ =gSaveBlock1Ptr - ldr r0, [r3] - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0810DDEA - adds r5, r4, 0 - adds r4, r3, 0 - adds r3, r1, 0 -_0810DDCA: - ldr r0, [r5] - ldrb r1, [r0, 0x7] - adds r1, 0x1 - strb r1, [r0, 0x7] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bhi _0810DDEA - ldr r0, [r4] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _0810DDCA -_0810DDEA: - ldr r0, _0810DE00 @ =gUnknown_203ADBC - ldr r1, [r0] - ldrb r0, [r1, 0x7] - adds r0, 0x1 - cmp r0, 0x6 - ble _0810DDF8 - movs r0, 0x6 -_0810DDF8: - strb r0, [r1, 0x6] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DE00: .4byte gUnknown_203ADBC -_0810DE04: .4byte gSaveBlock1Ptr - thumb_func_end sub_810DDA4 - - thumb_func_start sub_810DE08 -sub_810DE08: @ 810DE08 - push {r4-r6,lr} - ldr r0, _0810DE64 @ =gUnknown_203ADCC - ldrh r1, [r0, 0x6] - adds r6, r0, 0 - cmp r1, 0x3 - bls _0810DE5C - movs r4, 0 - ldrh r0, [r6, 0x6] - subs r0, 0x3 - cmp r4, r0 - bgt _0810DE5C - ldrh r1, [r6, 0x4] - ldr r5, _0810DE68 @ =gUnknown_203ADBC - ldr r2, [r5] - ldrb r0, [r2, 0x6] - adds r1, r0 - ldrb r0, [r2, 0x7] - adds r0, 0x1 - cmp r1, r0 - beq _0810DE5C - adds r3, r6, 0 -_0810DE32: - ldrh r0, [r3, 0x6] - subs r0, 0x1 - strh r0, [r3, 0x6] - ldrh r0, [r3, 0x4] - adds r0, 0x1 - strh r0, [r3, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r0, [r3, 0x6] - subs r0, 0x3 - cmp r4, r0 - bgt _0810DE5C - ldrh r1, [r6, 0x4] - ldr r2, [r5] - ldrb r0, [r2, 0x6] - adds r1, r0 - ldrb r0, [r2, 0x7] - adds r0, 0x1 - cmp r1, r0 - bne _0810DE32 -_0810DE5C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DE64: .4byte gUnknown_203ADCC -_0810DE68: .4byte gUnknown_203ADBC - thumb_func_end sub_810DE08 - - thumb_func_start sub_810DE6C -sub_810DE6C: @ 810DE6C - push {lr} - sub sp, 0x8 - movs r1, 0x6 - str r1, [sp] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0xE - movs r3, 0x1E - bl sub_80F6B08 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_810DE6C - - thumb_func_start sub_810DE94 -sub_810DE94: @ 810DE94 - ldr r1, _0810DE9C @ =gUnknown_203ADCC - strb r0, [r1, 0x8] - bx lr - .align 2, 0 -_0810DE9C: .4byte gUnknown_203ADCC - thumb_func_end sub_810DE94 - - thumb_func_start sub_810DEA0 -sub_810DEA0: @ 810DEA0 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810DF10 @ =gTasks+0x8 - adds r6, r0, r1 - ldr r0, _0810DF14 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810DF9E - bl sub_80A0A98 - lsls r0, 24 - cmp r0, 0 - bne _0810DF9E - ldr r0, _0810DF18 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0810DF20 - ldrb r0, [r6] - mov r4, sp - adds r4, 0x2 - mov r1, sp - adds r2, r4, 0 - bl get_coro_args_x18_x1A - mov r0, sp - ldrh r1, [r0] - ldrh r0, [r4] - adds r1, r0 - ldr r0, _0810DF1C @ =gUnknown_203ADBC - ldr r0, [r0] - ldrb r0, [r0, 0x7] - cmp r1, r0 - beq _0810DF20 - movs r0, 0x5 - bl PlaySE - mov r0, sp - ldrh r1, [r4] - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_810DFE0 - b _0810DF9E - .align 2, 0 -_0810DF10: .4byte gTasks+0x8 -_0810DF14: .4byte gPaletteFade -_0810DF18: .4byte gMain -_0810DF1C: .4byte gUnknown_203ADBC -_0810DF20: - ldrb r0, [r6] - bl ListMenuHandleInput - adds r4, r0, 0 - ldrb r0, [r6] - ldr r1, _0810DF44 @ =gUnknown_203ADD0 - adds r2, r1, 0x2 - bl get_coro_args_x18_x1A - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0810DF48 - adds r0, 0x1 - cmp r4, r0 - bne _0810DF6C - b _0810DF9E - .align 2, 0 -_0810DF44: .4byte gUnknown_203ADD0 -_0810DF48: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_810DE94 - ldr r0, _0810DF64 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0810DF68 @ =sub_810DC8C - str r0, [r1] - b _0810DF9E - .align 2, 0 -_0810DF64: .4byte gTasks -_0810DF68: .4byte sub_810DC8C -_0810DF6C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_810DE6C - bl sub_810DBD0 - strh r4, [r6, 0x2] - lsls r0, r4, 16 - lsrs r0, 16 - bl sub_810DD80 - strh r0, [r6, 0x4] - ldrb r0, [r6] - movs r1, 0x2 - bl sub_810DAB4 - ldr r1, _0810DFA8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810DFAC @ =sub_810E274 - str r1, [r0] -_0810DF9E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DFA8: .4byte gTasks -_0810DFAC: .4byte sub_810E274 - thumb_func_end sub_810DEA0 - - thumb_func_start sub_810DFB0 -sub_810DFB0: @ 810DFB0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_810DE6C - bl sub_810DB5C - ldr r1, _0810DFD8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810DFDC @ =sub_810DEA0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810DFD8: .4byte gTasks -_0810DFDC: .4byte sub_810DEA0 - thumb_func_end sub_810DFB0 - - thumb_func_start sub_810DFE0 -sub_810DFE0: @ 810DFE0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 3 - ldr r0, _0810E09C @ =gTasks+0x8 - mov r8, r0 - adds r6, r5, r0 - ldrb r0, [r6] - movs r1, 0x10 - movs r2, 0x1 - bl sub_8107BD0 - strh r4, [r6, 0x2] - ldr r0, _0810E0A0 @ =gUnknown_203ADBC - ldr r0, [r0] - movs r1, 0 - mov r9, r1 - strb r4, [r0, 0x4] - ldr r4, _0810E0A4 @ =gStringVar1 - ldrh r0, [r6, 0x2] - bl sub_810DD68 - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r4, _0810E0A8 @ =gStringVar4 - ldr r1, _0810E0AC @ =gUnknown_841633F - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r1, 0x3 - str r1, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - mov r0, r9 - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl sub_810EA34 - movs r4, 0x20 - negs r4, r4 - ldrb r0, [r6] - bl ListMenuGetYCoordForPrintingArrowCursor - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_80986A8 - movs r0, 0 - bl sub_8098660 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_810DAB4 - movs r1, 0x8 - negs r1, r1 - add r8, r1 - add r5, r8 - ldr r0, _0810E0B0 @ =sub_810E0B4 - str r0, [r5] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E09C: .4byte gTasks+0x8 -_0810E0A0: .4byte gUnknown_203ADBC -_0810E0A4: .4byte gStringVar1 -_0810E0A8: .4byte gStringVar4 -_0810E0AC: .4byte gUnknown_841633F -_0810E0B0: .4byte sub_810E0B4 - thumb_func_end sub_810DFE0 - - thumb_func_start sub_810E0B4 -sub_810E0B4: @ 810E0B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - mov r8, r6 - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - ldr r0, _0810E11C @ =gTasks+0x8 - adds r4, r0 - ldrb r0, [r4] - bl ListMenuHandleInput - ldrb r0, [r4] - ldr r7, _0810E120 @ =gUnknown_203ADD0 - adds r2, r7, 0x2 - adds r1, r7, 0 - bl get_coro_args_x18_x1A - movs r5, 0x20 - negs r5, r5 - ldrb r0, [r4] - bl ListMenuGetYCoordForPrintingArrowCursor - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_80986A8 - ldr r0, _0810E124 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x5 - ands r0, r1 - cmp r0, 0 - beq _0810E12C - movs r0, 0x5 - bl PlaySE - ldr r0, _0810E128 @ =gUnknown_203ADBC - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1, 0x4] - subs r0, r7, 0x4 - ldrh r1, [r0, 0x4] - ldrh r0, [r0, 0x6] - adds r1, r0 - adds r0, r6, 0 - bl sub_810E160 - b _0810E150 - .align 2, 0 -_0810E11C: .4byte gTasks+0x8 -_0810E120: .4byte gUnknown_203ADD0 -_0810E124: .4byte gMain -_0810E128: .4byte gUnknown_203ADBC -_0810E12C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810E150 - movs r0, 0x5 - bl PlaySE - ldr r0, _0810E15C @ =gUnknown_203ADBC - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1, 0x4] - subs r0, r7, 0x4 - ldrh r1, [r0, 0x4] - ldrh r0, [r0, 0x6] - adds r1, r0 - mov r0, r8 - bl sub_810E200 -_0810E150: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E15C: .4byte gUnknown_203ADBC - thumb_func_end sub_810E0B4 - - thumb_func_start sub_810E160 -sub_810E160: @ 810E160 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r1, 0 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r7, r0, 3 - ldr r0, _0810E190 @ =gTasks+0x8 - mov r8, r0 - adds r6, r7, r0 - movs r0, 0x2 - ldrsh r1, [r6, r0] - cmp r1, r4 - beq _0810E186 - subs r0, r4, 0x1 - cmp r1, r0 - bne _0810E194 -_0810E186: - adds r0, r2, 0 - adds r1, r4, 0 - bl sub_810E200 - b _0810E1E6 - .align 2, 0 -_0810E190: .4byte gTasks+0x8 -_0810E194: - ldr r0, _0810E1F0 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r2, 0xA6 - lsls r2, 2 - adds r0, r2 - adds r2, r4, 0 - bl sub_8108D60 - ldrb r0, [r6] - ldr r5, _0810E1F4 @ =gUnknown_203ADD0 - adds r2, r5, 0x2 - adds r1, r5, 0 - bl sub_810713C - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, r4 - bcs _0810E1C0 - subs r1, r5, 0x4 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - strh r0, [r1, 0x6] -_0810E1C0: - bl sub_810D878 - ldr r0, _0810E1F8 @ =gUnknown_3005E70 - subs r2, r5, 0x4 - ldrh r1, [r2, 0x4] - ldrh r2, [r2, 0x6] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6] - movs r0, 0x1 - bl sub_8098660 - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0810E1FC @ =sub_810DEA0 - str r1, [r0] -_0810E1E6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E1F0: .4byte gSaveBlock1Ptr -_0810E1F4: .4byte gUnknown_203ADD0 -_0810E1F8: .4byte gUnknown_3005E70 -_0810E1FC: .4byte sub_810DEA0 - thumb_func_end sub_810E160 - - thumb_func_start sub_810E200 -sub_810E200: @ 810E200 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r7, r1, 3 - ldr r0, _0810E264 @ =gTasks+0x8 - mov r8, r0 - adds r6, r7, r0 - ldrb r0, [r6] - ldr r5, _0810E268 @ =gUnknown_203ADD0 - adds r2, r5, 0x2 - adds r1, r5, 0 - bl sub_810713C - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, r4 - bcs _0810E234 - subs r1, r5, 0x4 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - strh r0, [r1, 0x6] -_0810E234: - bl sub_810D878 - ldr r0, _0810E26C @ =gUnknown_3005E70 - subs r2, r5, 0x4 - ldrh r1, [r2, 0x4] - ldrh r2, [r2, 0x6] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6] - movs r0, 0x1 - bl sub_8098660 - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0810E270 @ =sub_810DEA0 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E264: .4byte gTasks+0x8 -_0810E268: .4byte gUnknown_203ADD0 -_0810E26C: .4byte gUnknown_3005E70 -_0810E270: .4byte sub_810DEA0 - thumb_func_end sub_810E200 - - thumb_func_start sub_810E274 -sub_810E274: @ 810E274 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0810E340 @ =gTasks+0x8 - mov r9, r0 - adds r6, r4, r0 - movs r0, 0x4 - bl sub_810EA9C - movs r0, 0 - bl sub_810EAB4 - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r5, 0x3 - str r5, [sp, 0x4] - ldr r0, _0810E344 @ =gUnknown_8453F74 - str r0, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x2 - movs r2, 0x8 - movs r3, 0x2 - bl PrintTextArray - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - str r5, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl sub_810F7D8 - ldrh r0, [r6, 0x2] - bl sub_810DD68 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0810E348 @ =gStringVar1 - bl sub_8099E90 - ldr r6, _0810E34C @ =gStringVar4 - ldr r1, _0810E350 @ =gUnknown_84162FF - adds r0, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r5, [sp, 0xC] - str r0, [sp, 0x10] - mov r0, r8 - movs r1, 0x2 - adds r2, r6, 0 - movs r3, 0 - bl sub_810EA34 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x8 - negs r0, r0 - add r9, r0 - add r4, r9 - ldr r0, _0810E354 @ =sub_810E358 - str r0, [r4] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E340: .4byte gTasks+0x8 -_0810E344: .4byte gUnknown_8453F74 -_0810E348: .4byte gStringVar1 -_0810E34C: .4byte gStringVar4 -_0810E350: .4byte gUnknown_84162FF -_0810E354: .4byte sub_810E358 - thumb_func_end sub_810E274 - - thumb_func_start sub_810E358 -sub_810E358: @ 810E358 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0810E39A - adds r0, 0x1 - cmp r4, r0 - bne _0810E384 - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_810E8A0 - b _0810E39A -_0810E384: - movs r0, 0x5 - bl PlaySE - ldr r0, _0810E3A0 @ =gUnknown_8453F74 - lsls r1, r4, 3 - adds r0, 0x4 - adds r1, r0 - ldr r1, [r1] - adds r0, r6, 0 - bl _call_via_r1 -_0810E39A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E3A0: .4byte gUnknown_8453F74 - thumb_func_end sub_810E358 - - thumb_func_start sub_810E3A4 -sub_810E3A4: @ 810E3A4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _0810E3F0 @ =gTasks+0x8 - adds r4, r6, r7 - movs r0, 0x4 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0 - bl sub_810EAF0 - movs r0, 0x4 - bl ClearWindowTilemap - movs r0, 0x1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x2] - bl sub_810DD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0810E3F4 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_810E418 - b _0810E40E - .align 2, 0 -_0810E3F0: .4byte gTasks+0x8 -_0810E3F4: - movs r0, 0 - bl PutWindowTilemap - ldrh r0, [r4, 0x2] - bl sub_810E5E0 - bl sub_810DB98 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0810E414 @ =sub_810E6D8 - str r1, [r0] -_0810E40E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E414: .4byte sub_810E6D8 - thumb_func_end sub_810E3A4 - - thumb_func_start sub_810E418 -sub_810E418: @ 810E418 - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0810E49C @ =gTasks+0x8 - adds r5, r6, r7 - ldrh r0, [r5, 0x2] - bl sub_810DD68 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r1, [r5, 0x10] - adds r0, r4, 0 - bl sub_809A084 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810E4B8 - ldr r3, _0810E4A0 @ =0x0000ffff - movs r0, 0x1D - movs r1, 0 - adds r2, r4, 0 - bl sub_80A2294 - ldr r1, _0810E4A4 @ =gStringVar1 - adds r0, r4, 0 - bl sub_8099E90 - ldr r0, _0810E4A8 @ =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r5, r2] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _0810E4AC @ =gStringVar4 - ldr r1, _0810E4B0 @ =gUnknown_84177C5 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x2 - bl sub_810EAB4 - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl AddTextPrinterParameterized - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0810E4B4 @ =sub_810E4F4 - b _0810E4E0 - .align 2, 0 -_0810E49C: .4byte gTasks+0x8 -_0810E4A0: .4byte 0x0000ffff -_0810E4A4: .4byte gStringVar1 -_0810E4A8: .4byte gStringVar2 -_0810E4AC: .4byte gStringVar4 -_0810E4B0: .4byte gUnknown_84177C5 -_0810E4B4: .4byte sub_810E4F4 -_0810E4B8: - movs r0, 0x2 - bl sub_810EAB4 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, _0810E4EC @ =gUnknown_841778A - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0810E4F0 @ =sub_810E548 -_0810E4E0: - str r1, [r0] - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E4EC: .4byte gUnknown_841778A -_0810E4F0: .4byte sub_810E548 - thumb_func_end sub_810E418 - - thumb_func_start sub_810E4F4 -sub_810E4F4: @ 810E4F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0810E540 @ =gTasks+0x8 - adds r5, r0, r1 - ldr r0, _0810E544 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810E51A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810E53A -_0810E51A: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r5, 0x2] - bl sub_810DD68 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r5, 0x10] - bl sub_809A460 - bl sub_809A4E8 - adds r0, r4, 0 - bl sub_810E578 -_0810E53A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E540: .4byte gTasks+0x8 -_0810E544: .4byte gMain - thumb_func_end sub_810E4F4 - - thumb_func_start sub_810E548 -sub_810E548: @ 810E548 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810E574 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810E562 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810E56E -_0810E562: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_810E578 -_0810E56E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E574: .4byte gMain - thumb_func_end sub_810E548 - - thumb_func_start sub_810E578 -sub_810E578: @ 810E578 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - ldr r0, _0810E5D4 @ =gTasks+0x8 - adds r5, r0 - movs r0, 0x2 - bl sub_810EAF0 - movs r0, 0x1 - bl PutWindowTilemap - ldrb r0, [r5] - ldr r4, _0810E5D8 @ =gUnknown_203ADD0 - adds r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - bl sub_810DDA4 - bl sub_810DBF0 - bl sub_810D878 - ldr r0, _0810E5DC @ =gUnknown_3005E70 - subs r4, 0x4 - ldrh r1, [r4, 0x4] - ldrh r2, [r4, 0x6] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl sub_810DFB0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E5D4: .4byte gTasks+0x8 -_0810E5D8: .4byte gUnknown_203ADD0 -_0810E5DC: .4byte gUnknown_3005E70 - thumb_func_end sub_810E578 - - thumb_func_start sub_810E5E0 -sub_810E5E0: @ 810E5E0 - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 16 - lsrs r0, 16 - bl sub_810DD68 - lsls r0, 16 - lsrs r0, 16 - ldr r6, _0810E660 @ =gStringVar1 - adds r1, r6, 0 - bl sub_8099E90 - ldr r5, _0810E664 @ =gStringVar4 - ldr r1, _0810E668 @ =gUnknown_84177AC - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - bl sub_810EAB4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r2, r5, 0 - movs r3, 0 - bl AddTextPrinterParameterized - adds r0, r6, 0 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r1, _0810E66C @ =gUnknown_84162B9 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0x3 - bl sub_810EA9C - movs r0, 0xA - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x3 - movs r1, 0 - adds r2, r5, 0 - movs r3, 0x8 - bl sub_810EA34 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E660: .4byte gStringVar1 -_0810E664: .4byte gStringVar4 -_0810E668: .4byte gUnknown_84177AC -_0810E66C: .4byte gUnknown_84162B9 - thumb_func_end sub_810E5E0 - - thumb_func_start sub_810E670 -sub_810E670: @ 810E670 - push {r4,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x1C - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0x3 - movs r1, 0x11 - movs r2, 0xA - movs r3, 0xA - bl FillWindowPixelRect - ldr r0, _0810E6CC @ =gStringVar1 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _0810E6D0 @ =gStringVar4 - ldr r1, _0810E6D4 @ =gUnknown_84162B9 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r0, 0x3 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0x8 - bl sub_810EA34 - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E6CC: .4byte gStringVar1 -_0810E6D0: .4byte gStringVar4 -_0810E6D4: .4byte gUnknown_84162B9 - thumb_func_end sub_810E670 - - thumb_func_start sub_810E6D8 -sub_810E6D8: @ 810E6D8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810E708 @ =gTasks+0x8 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x10 - ldrh r1, [r4, 0x4] - bl sub_80BF848 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810E70C - movs r1, 0x10 - ldrsh r0, [r4, r1] - bl sub_810E670 - b _0810E796 - .align 2, 0 -_0810E708: .4byte gTasks+0x8 -_0810E70C: - ldr r0, _0810E74C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810E750 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_810EAF0 - movs r0, 0x3 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_810DAB4 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - bl sub_810DBD0 - adds r0, r5, 0 - bl sub_810E418 - b _0810E796 - .align 2, 0 -_0810E74C: .4byte gMain -_0810E750: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810E796 - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x1 - bl sub_810EAF0 - movs r0, 0x3 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_810DAB4 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - bl sub_810DBD0 - adds r0, r6, 0 - bl sub_810DFB0 -_0810E796: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810E6D8 - - thumb_func_start sub_810E79C -sub_810E79C: @ 810E79C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _0810E7DC - movs r0, 0x4 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0 - bl sub_810EAF0 - movs r0, 0x4 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - ldr r1, _0810E7D4 @ =gUnknown_841632A - ldr r2, _0810E7D8 @ =sub_810E848 - adds r0, r4, 0 - bl sub_810EB30 - b _0810E7EA - .align 2, 0 -_0810E7D4: .4byte gUnknown_841632A -_0810E7D8: .4byte sub_810E848 -_0810E7DC: - ldr r0, _0810E7F0 @ =gUnknown_203ADBC - ldr r1, [r0] - ldr r0, _0810E7F4 @ =sub_810E7F8 - str r0, [r1] - adds r0, r4, 0 - bl sub_810DC8C -_0810E7EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E7F0: .4byte gUnknown_203ADBC -_0810E7F4: .4byte sub_810E7F8 - thumb_func_end sub_810E79C - - thumb_func_start sub_810E7F8 -sub_810E7F8: @ 810E7F8 - push {lr} - sub sp, 0xC - movs r0, 0x6 - str r0, [sp] - ldr r0, _0810E82C @ =sub_811FB28 - str r0, [sp, 0x4] - ldr r0, _0810E830 @ =sub_810E838 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x6 - movs r3, 0 - bl sub_811EA44 - bl sub_810DD54 - lsls r0, 24 - lsrs r0, 24 - bl sub_810DD68 - ldr r1, _0810E834 @ =gUnknown_203B0A0 - strh r0, [r1, 0xC] - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_0810E82C: .4byte sub_811FB28 -_0810E830: .4byte sub_810E838 -_0810E834: .4byte gUnknown_203B0A0 - thumb_func_end sub_810E7F8 - - thumb_func_start sub_810E838 -sub_810E838: @ 810E838 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl sub_810D3F4 - pop {r0} - bx r0 - thumb_func_end sub_810E838 - - thumb_func_start sub_810E848 -sub_810E848: @ 810E848 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0810E898 @ =gTasks+0x8 - adds r5, r0, r1 - ldr r0, _0810E89C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810E892 - movs r0, 0x5 - bl PlaySE - movs r0, 0x5 - movs r1, 0 - bl sub_810F260 - movs r0, 0x5 - bl ClearWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - ldrb r0, [r5] - movs r1, 0x1 - bl sub_810DAB4 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, 0 - bl sub_810DFB0 -_0810E892: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E898: .4byte gTasks+0x8 -_0810E89C: .4byte gMain - thumb_func_end sub_810E848 - - thumb_func_start sub_810E8A0 -sub_810E8A0: @ 810E8A0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _0810E8EC @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x4 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0 - bl sub_810EAF0 - movs r0, 0x4 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_810DAB4 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_810DFB0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E8EC: .4byte gTasks+0x8 - thumb_func_end sub_810E8A0 - - thumb_func_start sub_810E8F0 -sub_810E8F0: @ 810E8F0 - push {r4,lr} - ldr r0, _0810E974 @ =gUnknown_8453F98 - bl InitWindows - bl DeactivateAllTextPrinters - movs r1, 0xF0 - lsls r1, 2 - movs r0, 0 - movs r2, 0xE0 - bl sub_815001C - ldr r1, _0810E978 @ =0x000003a3 - movs r0, 0 - movs r2, 0xC0 - bl sub_814FF2C - movs r1, 0xEB - lsls r1, 2 - movs r0, 0 - movs r2, 0xB0 - bl sub_814FEAC - movs r0, 0x2 - bl stdpal_get - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810E97C @ =gUnknown_841F408 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_0810E938: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0810E938 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r4, 0 - ldr r3, _0810E980 @ =gUnknown_203ADD8 - movs r2, 0xFF -_0810E95C: - adds r0, r4, r3 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0810E95C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E974: .4byte gUnknown_8453F98 -_0810E978: .4byte 0x000003a3 -_0810E97C: .4byte gUnknown_841F408 -_0810E980: .4byte gUnknown_203ADD8 - thumb_func_end sub_810E8F0 - - thumb_func_start sub_810E984 -sub_810E984: @ 810E984 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - ldr r6, [sp, 0x28] - ldr r4, [sp, 0x2C] - mov r8, r4 - ldr r4, [sp, 0x30] - mov r9, r4 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r4, r8 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - mov r4, r9 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - str r1, [sp] - mov r1, sp - strb r0, [r1, 0x4] - movs r0, 0x3 - strb r0, [r1, 0x5] - mov r0, sp - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - strb r2, [r0, 0x8] - strb r3, [r0, 0x9] - mov r2, sp - ldrb r1, [r2, 0xC] - movs r5, 0xF - adds r0, r5, 0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0xC] - ldrb r1, [r2, 0xD] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - strb r0, [r2, 0xD] - mov r1, sp - movs r0, 0x30 - strb r0, [r1, 0xD] - movs r0, 0x3 - movs r1, 0x4 - bl GetFontAttribute - mov r1, sp - ands r5, r0 - ldrb r0, [r1, 0xC] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, 0xC] - movs r0, 0x3 - movs r1, 0x2 - bl GetFontAttribute - mov r1, sp - adds r6, r0 - strb r6, [r1, 0xA] - movs r0, 0x3 - movs r1, 0x3 - bl GetFontAttribute - mov r1, sp - add r8, r0 - mov r0, r8 - strb r0, [r1, 0xB] - mov r0, sp - mov r1, r9 - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810E984 - - thumb_func_start sub_810EA34 -sub_810EA34: @ 810EA34 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r3 - ldr r3, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r6, [sp, 0x38] - ldr r5, [sp, 0x3C] - mov r8, r5 - ldr r5, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - mov r9, r7 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, _0810EA98 @ =gUnknown_8453F8C - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r2, [sp, 0x10] - mov r2, r9 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810EA98: .4byte gUnknown_8453F8C - thumb_func_end sub_810EA34 - - thumb_func_start sub_810EA9C -sub_810EA9C: @ 810EA9C - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xF0 - lsls r2, 2 - movs r1, 0 - movs r3, 0xE - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end sub_810EA9C - - thumb_func_start sub_810EAB4 -sub_810EAB4: @ 810EAB4 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0810EAE4 @ =gUnknown_203ADD8 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - bne _0810EADC - lsls r0, r1, 3 - ldr r1, _0810EAE8 @ =gUnknown_8453FD0 - adds r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - ldr r2, _0810EAEC @ =0x000003a3 - movs r1, 0x1 - movs r3, 0xC - bl SetWindowBorderStyle -_0810EADC: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810EAE4: .4byte gUnknown_203ADD8 -_0810EAE8: .4byte gUnknown_8453FD0 -_0810EAEC: .4byte 0x000003a3 - thumb_func_end sub_810EAB4 - - thumb_func_start sub_810EAF0 -sub_810EAF0: @ 810EAF0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810EB1C @ =gUnknown_203ADD8 - adds r4, r0 - ldrb r0, [r4] - movs r1, 0 - bl sub_810F4D8 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810EB1C: .4byte gUnknown_203ADD8 - thumb_func_end sub_810EAF0 - - thumb_func_start sub_810EB20 -sub_810EB20: @ 810EB20 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810EB2C @ =gUnknown_203ADD8 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0810EB2C: .4byte gUnknown_203ADD8 - thumb_func_end sub_810EB20 - - thumb_func_start sub_810EB30 -sub_810EB30: @ 810EB30 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F78A8 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xEB - lsls r2, 2 - movs r1, 0x2 - str r1, [sp] - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0x5 - movs r3, 0xB - bl DisplayMessageAndContinueTask - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810EB30 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_use.s b/asm/item_use.s deleted file mode 100644 index 558e175f2..000000000 --- a/asm/item_use.s +++ /dev/null @@ -1,2410 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A0FBC -sub_80A0FBC: @ 80A0FBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A0FD8 @ =gSpecialVar_ItemId - ldrh r0, [r1] - cmp r0, 0xAF - bne _080A0FE0 - ldr r0, _080A0FDC @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x10] - b _080A0FE6 - .align 2, 0 -_080A0FD8: .4byte gSpecialVar_ItemId -_080A0FDC: .4byte gTasks -_080A0FE0: - ldrh r0, [r1] - bl ItemId_GetType -_080A0FE6: - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1010 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080A1018 - ldr r0, _080A1014 @ =gUnknown_83E2954 - lsls r1, r4, 2 - adds r1, r0 - ldr r0, [r1] - bl sub_813D934 - adds r0, r5, 0 - bl sub_813D808 - b _080A1032 - .align 2, 0 -_080A1010: .4byte gSpecialVar_ItemId -_080A1014: .4byte gUnknown_83E2954 -_080A1018: - ldr r0, _080A1038 @ =gUnknown_83E2954 - lsls r1, r4, 2 - adds r1, r0 - ldr r0, [r1] - bl sub_8108EE0 - cmp r4, 0x1 - bne _080A102C - bl sub_8108CB4 -_080A102C: - adds r0, r5, 0 - bl sub_8108B50 -_080A1032: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1038: .4byte gUnknown_83E2954 - thumb_func_end sub_80A0FBC - - thumb_func_start sub_80A103C -sub_80A103C: @ 80A103C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080A1064 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080A1070 - ldr r1, _080A1068 @ =gUnknown_3005020 - ldr r0, _080A106C @ =sub_80A1084 - str r0, [r1] - adds r0, r2, 0 - bl sub_80A0FBC - b _080A107A - .align 2, 0 -_080A1064: .4byte gTasks -_080A1068: .4byte gUnknown_3005020 -_080A106C: .4byte sub_80A1084 -_080A1070: - ldr r0, _080A1080 @ =gUnknown_2039998 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 -_080A107A: - pop {r0} - bx r0 - .align 2, 0 -_080A1080: .4byte gUnknown_2039998 - thumb_func_end sub_80A103C - - thumb_func_start sub_80A1084 -sub_80A1084: @ 80A1084 - push {lr} - bl sub_807DC00 - ldr r0, _080A1098 @ =sub_80A109C - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080A1098: .4byte sub_80A109C - thumb_func_end sub_80A1084 - - thumb_func_start sub_80A109C -sub_80A109C: @ 80A109C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807AA70 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A10B8 - ldr r0, _080A10C0 @ =gUnknown_2039998 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080A10B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A10C0: .4byte gUnknown_2039998 - thumb_func_end sub_80A109C - - thumb_func_start sub_80A10C4 -sub_80A10C4: @ 80A10C4 - push {r4-r7,lr} - adds r4, r1, 0 - adds r1, r3, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r5, _080A10F0 @ =gStringVar4 - adds r0, r5, 0 - bl StringExpandPlaceholders - cmp r4, 0 - bne _080A10F8 - ldr r3, _080A10F4 @ =sub_810A1F8 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_8108E70 - b _080A1104 - .align 2, 0 -_080A10F0: .4byte gStringVar4 -_080A10F4: .4byte sub_810A1F8 -_080A10F8: - ldr r3, _080A110C @ =sub_80A112C - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl DisplayItemMessageOnField -_080A1104: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A110C: .4byte sub_80A112C - thumb_func_end sub_80A10C4 - - thumb_func_start sub_80A1110 -sub_80A1110: @ 80A1110 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080A1128 @ =gUnknown_8416425 - movs r2, 0x4 - bl sub_80A10C4 - pop {r0} - bx r0 - .align 2, 0 -_080A1128: .4byte gUnknown_8416425 - thumb_func_end sub_80A1110 - - thumb_func_start sub_80A112C -sub_80A112C: @ 80A112C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - adds r0, r4, 0 - bl DestroyTask - bl sub_80696C0 - bl ScriptContext2_Disable - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A112C - - thumb_func_start sub_80A1150 -sub_80A1150: @ 80A1150 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080A1168 - movs r0, 0x1 - b _080A117E -_080A1168: - adds r0, r4, 0 - bl ItemId_GetFieldFunc - ldr r1, _080A1178 @ =sub_80A1750 - cmp r0, r1 - beq _080A117C - movs r0, 0 - b _080A117E - .align 2, 0 -_080A1178: .4byte sub_80A1750 -_080A117C: - movs r0, 0x2 -_080A117E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A1150 - - thumb_func_start sub_80A1184 -sub_80A1184: @ 80A1184 - ldr r1, _080A118C @ =gUnknown_3005024 - ldr r0, _080A1190 @ =sub_80A1194 - str r0, [r1] - bx lr - .align 2, 0 -_080A118C: .4byte gUnknown_3005024 -_080A1190: .4byte sub_80A1194 - thumb_func_end sub_80A1184 - - thumb_func_start sub_80A1194 -sub_80A1194: @ 80A1194 - push {lr} - bl player_bitmagic - bl ScriptContext2_Enable - bl sub_807DC00 - ldr r0, _080A11B8 @ =sub_80A11C0 - movs r1, 0xA - bl CreateTask - ldr r1, _080A11BC @ =gUnknown_2031DE0 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_080A11B8: .4byte sub_80A11C0 -_080A11BC: .4byte gUnknown_2031DE0 - thumb_func_end sub_80A1194 - - thumb_func_start sub_80A11C0 -sub_80A11C0: @ 80A11C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807AA70 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A11E0 - bl UnfreezeMapObjects - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask -_080A11E0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A11C0 - - thumb_func_start sub_80A11E8 -sub_80A11E8: @ 80A11E8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A1204 @ =sub_80A1208 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1204: .4byte sub_80A1208 - thumb_func_end sub_80A11E8 - - thumb_func_start sub_80A1208 -sub_80A1208: @ 80A1208 - push {lr} - sub sp, 0x24 - mov r1, sp - ldr r0, _080A1224 @ =gSpecialVar_ItemId - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, _080A1228 @ =UseFameCheckerFromMenu - mov r0, sp - movs r2, 0 - bl sub_80BEBEC - add sp, 0x24 - pop {r0} - bx r0 - .align 2, 0 -_080A1224: .4byte gSpecialVar_ItemId -_080A1228: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A1208 - - thumb_func_start sub_80A122C -sub_80A122C: @ 80A122C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x83 - lsls r0, 4 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A129A - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_17 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A129A - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_18 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A129A - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_15 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A129A - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_16 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A12BC -_080A129A: - ldr r1, _080A12B4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0xE] - ldr r3, _080A12B8 @ =gUnknown_8416451 - adds r0, r5, 0 - movs r2, 0x2 - bl sub_80A10C4 - b _080A12F6 - .align 2, 0 -_080A12B4: .4byte gTasks -_080A12B8: .4byte gUnknown_8416451 -_080A12BC: - bl sub_8055C9C - cmp r0, 0x1 - bne _080A12E4 - bl sub_80BD540 - lsls r0, 24 - cmp r0, 0 - bne _080A12E4 - ldr r1, _080A12DC @ =gUnknown_2039998 - ldr r0, _080A12E0 @ =sub_80A1304 - str r0, [r1] - adds r0, r5, 0 - bl sub_80A103C - b _080A12F6 - .align 2, 0 -_080A12DC: .4byte gUnknown_2039998 -_080A12E0: .4byte sub_80A1304 -_080A12E4: - ldr r0, _080A1300 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r5, 0 - bl sub_80A1110 -_080A12F6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1300: .4byte gTasks - thumb_func_end sub_80A122C - - thumb_func_start sub_80A1304 -sub_80A1304: @ 80A1304 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x6 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080A131C - movs r0, 0xB - bl PlaySE -_080A131C: - movs r0, 0x6 - bl sub_80BD5C8 - bl sub_80696C0 - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A1304 - - thumb_func_start sub_80A1338 -sub_80A1338: @ 80A1338 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80A137C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A1360 - ldr r1, _080A1358 @ =gUnknown_2039998 - ldr r0, _080A135C @ =ItemUseOnFieldCB_Rod - str r0, [r1] - adds r0, r4, 0 - bl sub_80A103C - b _080A1372 - .align 2, 0 -_080A1358: .4byte gUnknown_2039998 -_080A135C: .4byte ItemUseOnFieldCB_Rod -_080A1360: - ldr r0, _080A1378 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r4, 0 - bl sub_80A1110 -_080A1372: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1378: .4byte gTasks - thumb_func_end sub_80A1338 - - thumb_func_start sub_80A137C -sub_80A137C: @ 80A137C - push {r4-r6,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - cmp r0, 0 - bne _080A1404 - movs r0, 0x10 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080A1404 - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080A13D4 - bl IsPlayerFacingSurfableFishableWater - lsls r0, 24 - cmp r0, 0 - beq _080A1404 -_080A13D0: - movs r0, 0x1 - b _080A1406 -_080A13D4: - adds r0, r5, 0 - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - beq _080A13F4 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl sub_8058DC4 - lsls r0, 24 - cmp r0, 0 - beq _080A13D0 -_080A13F4: - lsls r0, r6, 24 - lsrs r0, 24 - bl MetatileBehavior_ReturnFalse_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A13D0 -_080A1404: - movs r0, 0 -_080A1406: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A137C - - thumb_func_start ItemUseOnFieldCB_Rod -ItemUseOnFieldCB_Rod: @ 80A1410 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A1434 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemId_GetSecondaryId - lsls r0, 24 - lsrs r0, 24 - bl sub_805D2C0 - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1434: .4byte gSpecialVar_ItemId - thumb_func_end ItemUseOnFieldCB_Rod - - thumb_func_start ItemUseOutOfBattle_Itemfinder -ItemUseOutOfBattle_Itemfinder: @ 80A1438 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x27 - bl IncrementGameStat - ldr r1, _080A1458 @ =gUnknown_2039998 - ldr r0, _080A145C @ =sub_813EC8C - str r0, [r1] - adds r0, r4, 0 - bl sub_80A103C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1458: .4byte gUnknown_2039998 -_080A145C: .4byte sub_813EC8C - thumb_func_end ItemUseOutOfBattle_Itemfinder - - thumb_func_start sub_80A1460 -sub_80A1460: @ 80A1460 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A14B4 @ =gStringVar1 - bl GetCoins - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, _080A14B8 @ =gStringVar4 - ldr r1, _080A14BC @ =gUnknown_8416537 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080A14C0 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A14C4 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A14C8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A14D0 - ldr r3, _080A14CC @ =sub_810A1F8 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_8108E70 - b _080A14DC - .align 2, 0 -_080A14B4: .4byte gStringVar1 -_080A14B8: .4byte gStringVar4 -_080A14BC: .4byte gUnknown_8416537 -_080A14C0: .4byte gSpecialVar_ItemId -_080A14C4: .4byte 0x0000ffff -_080A14C8: .4byte gTasks -_080A14CC: .4byte sub_810A1F8 -_080A14D0: - ldr r3, _080A14E4 @ =sub_80A112C - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl DisplayItemMessageOnField -_080A14DC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A14E4: .4byte sub_80A112C - thumb_func_end sub_80A1460 - - thumb_func_start sub_80A14E8 -sub_80A14E8: @ 80A14E8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A1538 @ =gStringVar1 - bl sub_815EFA0 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - ldr r4, _080A153C @ =gStringVar4 - ldr r1, _080A1540 @ =gUnknown_8416644 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080A1544 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A1548 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A154C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A1554 - ldr r3, _080A1550 @ =sub_810A1F8 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_8108E70 - b _080A1560 - .align 2, 0 -_080A1538: .4byte gStringVar1 -_080A153C: .4byte gStringVar4 -_080A1540: .4byte gUnknown_8416644 -_080A1544: .4byte gSpecialVar_ItemId -_080A1548: .4byte 0x0000ffff -_080A154C: .4byte gTasks -_080A1550: .4byte sub_810A1F8 -_080A1554: - ldr r3, _080A1568 @ =sub_80A112C - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl DisplayItemMessageOnField -_080A1560: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1568: .4byte sub_80A112C - thumb_func_end sub_80A14E8 - - thumb_func_start sub_80A156C -sub_80A156C: @ 80A156C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - movs r4, 0 - b _080A1598 -_080A1578: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080A15D0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x11 - adds r2, r4, 0 - movs r3, 0 - bl ExecuteTableBasedItemEffect - lsls r0, 24 - cmp r0, 0 - bne _080A1592 - movs r6, 0x1 -_080A1592: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080A1598: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _080A1578 - cmp r6, 0 - beq _080A1600 - ldr r0, _080A15D4 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A15D8 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A15DC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A15E8 - ldr r2, _080A15E0 @ =gUnknown_8416690 - ldr r3, _080A15E4 @ =sub_80A1648 - b _080A1616 - .align 2, 0 -_080A15D0: .4byte gPlayerParty -_080A15D4: .4byte gSpecialVar_ItemId -_080A15D8: .4byte 0x0000ffff -_080A15DC: .4byte gTasks -_080A15E0: .4byte gUnknown_8416690 -_080A15E4: .4byte sub_80A1648 -_080A15E8: - ldr r2, _080A15F8 @ =gUnknown_8416690 - ldr r3, _080A15FC @ =sub_80A1648 - adds r0, r5, 0 - movs r1, 0x2 - bl DisplayItemMessageOnField - b _080A1638 - .align 2, 0 -_080A15F8: .4byte gUnknown_8416690 -_080A15FC: .4byte sub_80A1648 -_080A1600: - ldr r0, _080A1620 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A162C - ldr r2, _080A1624 @ =gUnknown_841665C - ldr r3, _080A1628 @ =sub_810A1F8 -_080A1616: - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8108E70 - b _080A1638 - .align 2, 0 -_080A1620: .4byte gTasks -_080A1624: .4byte gUnknown_841665C -_080A1628: .4byte sub_810A1F8 -_080A162C: - ldr r2, _080A1640 @ =gUnknown_841665C - ldr r3, _080A1644 @ =sub_80A112C - adds r0, r5, 0 - movs r1, 0x2 - bl DisplayItemMessageOnField -_080A1638: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1640: .4byte gUnknown_841665C -_080A1644: .4byte sub_80A112C - thumb_func_end sub_80A156C - - thumb_func_start sub_80A1648 -sub_80A1648: @ 80A1648 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl PlayFanfareByFanfareNum - ldr r1, _080A166C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A1670 @ =sub_80A1674 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A166C: .4byte gTasks -_080A1670: .4byte sub_80A1674 - thumb_func_end sub_80A1648 - - thumb_func_start sub_80A1674 -sub_80A1674: @ 80A1674 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r0, 0 - bl WaitFanfare - lsls r0, 24 - cmp r0, 0 - beq _080A16C0 - ldr r0, _080A16A8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A16B4 - ldr r2, _080A16AC @ =gUnknown_84166A7 - ldr r3, _080A16B0 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 - b _080A16C0 - .align 2, 0 -_080A16A8: .4byte gTasks -_080A16AC: .4byte gUnknown_84166A7 -_080A16B0: .4byte sub_810A1F8 -_080A16B4: - ldr r2, _080A16C8 @ =gUnknown_84166A7 - ldr r3, _080A16CC @ =sub_80A112C - adds r0, r5, 0 - movs r1, 0x2 - bl DisplayItemMessageOnField -_080A16C0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A16C8: .4byte gUnknown_84166A7 -_080A16CC: .4byte sub_80A112C - thumb_func_end sub_80A1674 - - thumb_func_start sub_80A16D0 -sub_80A16D0: @ 80A16D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80A0FBC - pop {r0} - bx r0 - thumb_func_end sub_80A16D0 - - thumb_func_start sub_80A16E0 -sub_80A16E0: @ 80A16E0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A16F4 @ =gUnknown_3005E98 - ldr r1, _080A16F8 @ =sub_81252D0 - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A16F4: .4byte gUnknown_3005E98 -_080A16F8: .4byte sub_81252D0 - thumb_func_end sub_80A16E0 - - thumb_func_start sub_80A16FC -sub_80A16FC: @ 80A16FC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1710 @ =gUnknown_3005E98 - ldr r1, _080A1714 @ =sub_81256F8 - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A1710: .4byte gUnknown_3005E98 -_080A1714: .4byte sub_81256F8 - thumb_func_end sub_80A16FC - - thumb_func_start sub_80A1718 -sub_80A1718: @ 80A1718 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A172C @ =gUnknown_3005E98 - ldr r1, _080A1730 @ =dp05_pp_up - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A172C: .4byte gUnknown_3005E98 -_080A1730: .4byte dp05_pp_up - thumb_func_end sub_80A1718 - - thumb_func_start sub_80A1734 -sub_80A1734: @ 80A1734 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1748 @ =gUnknown_3005E98 - ldr r1, _080A174C @ =dp05_rare_candy - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A1748: .4byte gUnknown_3005E98 -_080A174C: .4byte dp05_rare_candy - thumb_func_end sub_80A1734 - - thumb_func_start sub_80A1750 -sub_80A1750: @ 80A1750 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1764 @ =gUnknown_3005E98 - ldr r1, _080A1768 @ =sub_8126B60 - str r1, [r2] - bl sub_80A16D0 - pop {r0} - bx r0 - .align 2, 0 -_080A1764: .4byte gUnknown_3005E98 -_080A1768: .4byte sub_8126B60 - thumb_func_end sub_80A1750 - - thumb_func_start sub_80A176C -sub_80A176C: @ 80A176C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1780 @ =gUnknown_3005E98 - ldr r1, _080A1784 @ =sub_8126894 - str r1, [r2] - bl sub_80A0FBC - pop {r0} - bx r0 - .align 2, 0 -_080A1780: .4byte gUnknown_3005E98 -_080A1784: .4byte sub_8126894 - thumb_func_end sub_80A176C - - thumb_func_start sub_80A1788 -sub_80A1788: @ 80A1788 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A17B0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A17B8 - ldr r0, _080A17B4 @ =sub_80A17D4 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A17C8 - .align 2, 0 -_080A17B0: .4byte gTasks -_080A17B4: .4byte sub_80A17D4 -_080A17B8: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A17D0 @ =sub_80A17E8 - str r0, [r5] -_080A17C8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A17D0: .4byte sub_80A17E8 - thumb_func_end sub_80A1788 - - thumb_func_start sub_80A17D4 -sub_80A17D4: @ 80A17D4 - push {lr} - ldr r1, _080A17E4 @ =UseFameCheckerFromMenu - movs r0, 0 - movs r2, 0 - bl sub_81317F8 - pop {r0} - bx r0 - .align 2, 0 -_080A17E4: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A17D4 - - thumb_func_start sub_80A17E8 -sub_80A17E8: @ 80A17E8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1818 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A1812 - bl sub_80563F0 - bl sub_80A1184 - ldr r1, _080A181C @ =c2_exit_to_overworld_2_switch - movs r0, 0 - movs r2, 0x1 - bl sub_81317F8 - adds r0, r4, 0 - bl DestroyTask -_080A1812: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1818: .4byte gPaletteFade -_080A181C: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A17E8 - - thumb_func_start sub_80A1820 -sub_80A1820: @ 80A1820 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A1848 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A1850 - ldr r0, _080A184C @ =sub_80A186C - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1860 - .align 2, 0 -_080A1848: .4byte gTasks -_080A184C: .4byte sub_80A186C -_080A1850: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A1868 @ =sub_80A1880 - str r0, [r5] -_080A1860: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1868: .4byte sub_80A1880 - thumb_func_end sub_80A1820 - - thumb_func_start sub_80A186C -sub_80A186C: @ 80A186C - push {lr} - ldr r1, _080A187C @ =UseFameCheckerFromMenu - movs r0, 0 - movs r2, 0 - bl sub_813CD50 - pop {r0} - bx r0 - .align 2, 0 -_080A187C: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A186C - - thumb_func_start sub_80A1880 -sub_80A1880: @ 80A1880 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A18B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A18AA - bl sub_80563F0 - bl sub_80A1184 - ldr r1, _080A18B4 @ =c2_exit_to_overworld_2_switch - movs r0, 0 - movs r2, 0x1 - bl sub_813CD50 - adds r0, r4, 0 - bl DestroyTask -_080A18AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A18B0: .4byte gPaletteFade -_080A18B4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A1880 - - thumb_func_start sub_80A18B8 -sub_80A18B8: @ 80A18B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A18D4 @ =sub_80A18D8 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A18D4: .4byte sub_80A18D8 - thumb_func_end sub_80A18B8 - - thumb_func_start sub_80A18D8 -sub_80A18D8: @ 80A18D8 - push {lr} - ldr r1, _080A18E8 @ =sub_8107ECC - movs r0, 0x4 - movs r2, 0 - bl sub_813CD50 - pop {r0} - bx r0 - .align 2, 0 -_080A18E8: .4byte sub_8107ECC - thumb_func_end sub_80A18D8 - - thumb_func_start sub_80A18EC -sub_80A18EC: @ 80A18EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1920 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A1924 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A1928 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A1930 - ldr r0, _080A192C @ =sub_80A194C - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1940 - .align 2, 0 -_080A1920: .4byte gSpecialVar_ItemId -_080A1924: .4byte 0x0000ffff -_080A1928: .4byte gTasks -_080A192C: .4byte sub_80A194C -_080A1930: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A1948 @ =sub_80A1960 - str r0, [r5] -_080A1940: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1948: .4byte sub_80A1960 - thumb_func_end sub_80A18EC - - thumb_func_start sub_80A194C -sub_80A194C: @ 80A194C - push {lr} - ldr r1, _080A195C @ =UseFameCheckerFromMenu - movs r0, 0 - bl sub_815ABC4 - pop {r0} - bx r0 - .align 2, 0 -_080A195C: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A194C - - thumb_func_start sub_80A1960 -sub_80A1960: @ 80A1960 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1990 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A1988 - bl sub_80563F0 - bl sub_80A1184 - ldr r1, _080A1994 @ =c2_exit_to_overworld_2_switch - movs r0, 0 - bl sub_815ABC4 - adds r0, r4, 0 - bl DestroyTask -_080A1988: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1990: .4byte gPaletteFade -_080A1994: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A1960 - - thumb_func_start sub_80A1998 -sub_80A1998: @ 80A1998 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A19C0 @ =0x00004020 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080A19CC - movs r0, 0x29 - bl PlaySE - ldr r0, _080A19C4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A19C8 @ =sub_80A19E8 - str r0, [r1] - b _080A19D8 - .align 2, 0 -_080A19C0: .4byte 0x00004020 -_080A19C4: .4byte gTasks -_080A19C8: .4byte sub_80A19E8 -_080A19CC: - ldr r2, _080A19E0 @ =gUnknown_841659E - ldr r3, _080A19E4 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A19D8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A19E0: .4byte gUnknown_841659E -_080A19E4: .4byte sub_810A1F8 - thumb_func_end sub_80A1998 - - thumb_func_start sub_80A19E8 -sub_80A19E8: @ 80A19E8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _080A1A2A - ldr r4, _080A1A30 @ =gSpecialVar_ItemId - ldrh r2, [r4] - ldr r3, _080A1A34 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r5, _080A1A38 @ =0x00004020 - ldrh r0, [r4] - bl ItemId_GetHoldEffectParam - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl VarSet - bl sub_80A1A44 - ldr r2, _080A1A3C @ =gStringVar4 - ldr r3, _080A1A40 @ =sub_810A1F8 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A1A2A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1A30: .4byte gSpecialVar_ItemId -_080A1A34: .4byte 0x0000ffff -_080A1A38: .4byte 0x00004020 -_080A1A3C: .4byte gStringVar4 -_080A1A40: .4byte sub_810A1F8 - thumb_func_end sub_80A19E8 - - thumb_func_start sub_80A1A44 -sub_80A1A44: @ 80A1A44 - push {r4,lr} - ldr r4, _080A1A84 @ =gSpecialVar_ItemId - ldrh r0, [r4] - movs r1, 0x1 - bl sub_809A1D8 - ldrh r0, [r4] - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - bl sub_8108DC8 - ldrh r0, [r4] - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - bl sub_81089F4 - ldrh r0, [r4] - ldr r1, _080A1A88 @ =gStringVar2 - bl sub_8099E90 - ldr r0, _080A1A8C @ =gStringVar4 - ldr r1, _080A1A90 @ =gUnknown_841658C - bl StringExpandPlaceholders - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1A84: .4byte gSpecialVar_ItemId -_080A1A88: .4byte gStringVar2 -_080A1A8C: .4byte gStringVar4 -_080A1A90: .4byte gUnknown_841658C - thumb_func_end sub_80A1A44 - - thumb_func_start sub_80A1A94 -sub_80A1A94: @ 80A1A94 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, _080A1AD4 @ =gSpecialVar_ItemId - ldrh r2, [r5] - ldr r3, _080A1AD8 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldrh r0, [r5] - cmp r0, 0x2B - bne _080A1AF4 - ldr r0, _080A1ADC @ =0x00000803 - bl FlagSet - ldr r0, _080A1AE0 @ =0x00000804 - bl FlagClear - ldrh r0, [r5] - ldr r1, _080A1AE4 @ =gStringVar2 - bl sub_8099E90 - ldr r0, _080A1AE8 @ =gStringVar4 - ldr r1, _080A1AEC @ =gUnknown_84165D2 - bl StringExpandPlaceholders - ldr r1, _080A1AF0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - b _080A1B1A - .align 2, 0 -_080A1AD4: .4byte gSpecialVar_ItemId -_080A1AD8: .4byte 0x0000ffff -_080A1ADC: .4byte 0x00000803 -_080A1AE0: .4byte 0x00000804 -_080A1AE4: .4byte gStringVar2 -_080A1AE8: .4byte gStringVar4 -_080A1AEC: .4byte gUnknown_84165D2 -_080A1AF0: .4byte gTasks -_080A1AF4: - cmp r0, 0x2A - bne _080A1B26 - ldr r0, _080A1B2C @ =0x00000804 - bl FlagSet - ldr r0, _080A1B30 @ =0x00000803 - bl FlagClear - ldrh r0, [r5] - ldr r1, _080A1B34 @ =gStringVar2 - bl sub_8099E90 - ldr r0, _080A1B38 @ =gStringVar4 - ldr r1, _080A1B3C @ =gUnknown_8416600 - bl StringExpandPlaceholders - ldr r1, _080A1B40 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 -_080A1B1A: - lsls r0, 3 - adds r0, r1 - ldr r1, _080A1B44 @ =sub_80A1B48 - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x18] -_080A1B26: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A1B2C: .4byte 0x00000804 -_080A1B30: .4byte 0x00000803 -_080A1B34: .4byte gStringVar2 -_080A1B38: .4byte gStringVar4 -_080A1B3C: .4byte gUnknown_8416600 -_080A1B40: .4byte gTasks -_080A1B44: .4byte sub_80A1B48 - thumb_func_end sub_80A1A94 - - thumb_func_start sub_80A1B48 -sub_80A1B48: @ 80A1B48 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1B80 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - strh r0, [r1, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080A1B78 - movs r0, 0x6E - bl PlaySE - ldr r2, _080A1B84 @ =gStringVar4 - ldr r3, _080A1B88 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A1B78: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1B80: .4byte gTasks -_080A1B84: .4byte gStringVar4 -_080A1B88: .4byte sub_810A1F8 - thumb_func_end sub_80A1B48 - - thumb_func_start sub_80A1B8C -sub_80A1B8C: @ 80A1B8C - push {lr} - ldr r0, _080A1BA0 @ =gMapHeader - ldrb r1, [r0, 0x19] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A1BA4 - movs r0, 0 - b _080A1BA6 - .align 2, 0 -_080A1BA0: .4byte gMapHeader -_080A1BA4: - movs r0, 0x1 -_080A1BA6: - pop {r1} - bx r1 - thumb_func_end sub_80A1B8C - - thumb_func_start ItemUseOutOfBattle_EscapeRope -ItemUseOutOfBattle_EscapeRope: @ 80A1BAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80A1B8C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A1BEC - ldr r0, _080A1BDC @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r0, _080A1BE0 @ =gMapHeader - ldrb r3, [r0, 0x14] - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A1BE4 @ =gUnknown_2039998 - ldr r0, _080A1BE8 @ =sub_80A1C08 - str r0, [r1] - adds r0, r4, 0 - bl sub_80A103C - b _080A1BFE - .align 2, 0 -_080A1BDC: .4byte gSpecialVar_ItemId -_080A1BE0: .4byte gMapHeader -_080A1BE4: .4byte gUnknown_2039998 -_080A1BE8: .4byte sub_80A1C08 -_080A1BEC: - ldr r0, _080A1C04 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r4, 0 - bl sub_80A1110 -_080A1BFE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1C04: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_EscapeRope - - thumb_func_start sub_80A1C08 -sub_80A1C08: @ 80A1C08 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8054D70 - bl sub_80A1A44 - ldr r1, _080A1C38 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r2, _080A1C3C @ =gStringVar4 - ldr r3, _080A1C40 @ =sub_80A1C44 - adds r0, r4, 0 - movs r1, 0x2 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1C38: .4byte gTasks -_080A1C3C: .4byte gStringVar4 -_080A1C40: .4byte sub_80A1C44 - thumb_func_end sub_80A1C08 - - thumb_func_start sub_80A1C44 -sub_80A1C44: @ 80A1C44 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80559E4 - bl sub_8085620 - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A1C44 - - thumb_func_start sub_80A1C60 -sub_80A1C60: @ 80A1C60 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A1C88 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A1C90 - ldr r0, _080A1C8C @ =sub_80A1CAC - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1CA0 - .align 2, 0 -_080A1C88: .4byte gTasks -_080A1C8C: .4byte sub_80A1CAC -_080A1C90: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A1CA8 @ =sub_80A1CC0 - str r0, [r5] -_080A1CA0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1CA8: .4byte sub_80A1CC0 - thumb_func_end sub_80A1C60 - - thumb_func_start sub_80A1CAC -sub_80A1CAC: @ 80A1CAC - push {lr} - ldr r1, _080A1CBC @ =UseFameCheckerFromMenu - movs r0, 0 - bl sub_80BFF50 - pop {r0} - bx r0 - .align 2, 0 -_080A1CBC: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A1CAC - - thumb_func_start sub_80A1CC0 -sub_80A1CC0: @ 80A1CC0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1CF0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A1CE8 - bl sub_80563F0 - bl sub_80A1184 - ldr r1, _080A1CF4 @ =c2_exit_to_overworld_2_switch - movs r0, 0 - bl sub_80BFF50 - adds r0, r4, 0 - bl DestroyTask -_080A1CE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1CF0: .4byte gPaletteFade -_080A1CF4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A1CC0 - - thumb_func_start sub_80A1CF8 -sub_80A1CF8: @ 80A1CF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1D2C @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A1D30 @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r1, _080A1D34 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A1D3C - ldr r0, _080A1D38 @ =sub_80A1D58 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1D4C - .align 2, 0 -_080A1D2C: .4byte gSpecialVar_ItemId -_080A1D30: .4byte 0x0000ffff -_080A1D34: .4byte gTasks -_080A1D38: .4byte sub_80A1D58 -_080A1D3C: - bl sub_80CCB68 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080A1D54 @ =sub_80A1D68 - str r0, [r5] -_080A1D4C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1D54: .4byte sub_80A1D68 - thumb_func_end sub_80A1CF8 - - thumb_func_start sub_80A1D58 -sub_80A1D58: @ 80A1D58 - push {lr} - ldr r0, _080A1D64 @ =UseFameCheckerFromMenu - bl UseFameChecker - pop {r0} - bx r0 - .align 2, 0 -_080A1D64: .4byte UseFameCheckerFromMenu - thumb_func_end sub_80A1D58 - - thumb_func_start sub_80A1D68 -sub_80A1D68: @ 80A1D68 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1D94 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A1D8E - bl sub_80563F0 - bl sub_80A1184 - ldr r0, _080A1D98 @ =c2_exit_to_overworld_2_switch - bl UseFameChecker - adds r0, r4, 0 - bl DestroyTask -_080A1D8E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1D94: .4byte gPaletteFade -_080A1D98: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A1D68 - - thumb_func_start sub_80A1D9C -sub_80A1D9C: @ 80A1D9C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080A1DE8 @ =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x3 - beq _080A1DB2 - cmp r0, 0x1 - beq _080A1DB2 - cmp r0, 0x2 - bne _080A1DD2 -_080A1DB2: - ldr r0, _080A1DEC @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - bne _080A1DF4 - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0 - beq _080A1DD2 - cmp r0, 0x61 - beq _080A1DD2 - cmp r0, 0x6D - beq _080A1DD2 - cmp r0, 0x79 - bne _080A1DF4 -_080A1DD2: - ldr r0, _080A1DF0 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r2, 0 - bl sub_80A1110 - b _080A1E00 - .align 2, 0 -_080A1DE8: .4byte gMapHeader -_080A1DEC: .4byte gSaveBlock1Ptr -_080A1DF0: .4byte gTasks -_080A1DF4: - ldr r1, _080A1E04 @ =gUnknown_2039998 - ldr r0, _080A1E08 @ =Task_VsSeeker_0 - str r0, [r1] - adds r0, r2, 0 - bl sub_80A103C -_080A1E00: - pop {r0} - bx r0 - .align 2, 0 -_080A1E04: .4byte gUnknown_2039998 -_080A1E08: .4byte Task_VsSeeker_0 - thumb_func_end sub_80A1D9C - - thumb_func_start sub_80A1E0C -sub_80A1E0C: @ 80A1E0C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80A112C - pop {r0} - bx r0 - thumb_func_end sub_80A1E0C - - thumb_func_start sub_80A1E1C -sub_80A1E1C: @ 80A1E1C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsPlayerPartyAndPokemonStorageFull - lsls r0, 24 - cmp r0, 0 - bne _080A1E48 - ldr r0, _080A1E44 @ =gSpecialVar_ItemId - ldrh r0, [r0] - movs r1, 0x1 - bl sub_809A1D8 - bl sub_8108CB4 - adds r0, r4, 0 - bl sub_8108B50 - b _080A1E54 - .align 2, 0 -_080A1E44: .4byte gSpecialVar_ItemId -_080A1E48: - ldr r2, _080A1E5C @ =gUnknown_8416631 - ldr r3, _080A1E60 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A1E54: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1E5C: .4byte gUnknown_8416631 -_080A1E60: .4byte sub_810A1F8 - thumb_func_end sub_80A1E1C - - thumb_func_start sub_80A1E64 -sub_80A1E64: @ 80A1E64 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8108CB4 - adds r0, r4, 0 - bl sub_8108B50 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A1E64 - - thumb_func_start sub_80A1E7C -sub_80A1E7C: @ 80A1E7C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A1EBC @ =gBattlerPartyIndexes - ldr r0, _080A1EC0 @ =gBattlerInMenuId - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r1, _080A1EC4 @ =gPlayerParty - adds r0, r1 - ldr r1, _080A1EC8 @ =gSpecialVar_ItemId - ldrh r1, [r1] - lsls r2, 24 - lsrs r2, 24 - movs r3, 0 - bl ExecuteTableBasedItemEffect - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080A1ED4 - ldr r2, _080A1ECC @ =gUnknown_84169DC - ldr r3, _080A1ED0 @ =sub_810A1F8 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 - b _080A1EE4 - .align 2, 0 -_080A1EBC: .4byte gBattlerPartyIndexes -_080A1EC0: .4byte gBattlerInMenuId -_080A1EC4: .4byte gPlayerParty -_080A1EC8: .4byte gSpecialVar_ItemId -_080A1ECC: .4byte gUnknown_84169DC -_080A1ED0: .4byte sub_810A1F8 -_080A1ED4: - ldr r0, _080A1EEC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x18] - ldr r0, _080A1EF0 @ =sub_80A1EF4 - str r0, [r1] -_080A1EE4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1EEC: .4byte gTasks -_080A1EF0: .4byte sub_80A1EF4 - thumb_func_end sub_80A1E7C - - thumb_func_start sub_80A1EF4 -sub_80A1EF4: @ 80A1EF4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - ldr r0, _080A1F3C @ =gTasks+0x8 - adds r1, r0 - ldrh r0, [r1, 0x10] - adds r0, 0x1 - strh r0, [r1, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080A1F36 - ldr r0, _080A1F40 @ =gSpecialVar_ItemId - ldrh r4, [r0] - movs r0, 0x1 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809A1D8 - adds r0, r4, 0 - bl sub_8042DA4 - adds r2, r0, 0 - ldr r3, _080A1F44 @ =sub_80A1F48 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8108E70 -_080A1F36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A1F3C: .4byte gTasks+0x8 -_080A1F40: .4byte gSpecialVar_ItemId -_080A1F44: .4byte sub_80A1F48 - thumb_func_end sub_80A1EF4 - - thumb_func_start sub_80A1F48 -sub_80A1F48: @ 80A1F48 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1F74 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A1F62 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A1F6C -_080A1F62: - bl sub_8108CB4 - adds r0, r4, 0 - bl sub_8108B50 -_080A1F6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1F74: .4byte gMain - thumb_func_end sub_80A1F48 - - thumb_func_start sub_80A1F78 -sub_80A1F78: @ 80A1F78 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A1F9C @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080A1FA4 - ldr r0, _080A1FA0 @ =sub_81279E0 - bl sub_813D934 - adds r0, r4, 0 - bl sub_813D808 - b _080A1FB0 - .align 2, 0 -_080A1F9C: .4byte gSpecialVar_ItemId -_080A1FA0: .4byte sub_81279E0 -_080A1FA4: - ldr r0, _080A1FB8 @ =sub_81279E0 - bl sub_8108EE0 - adds r0, r4, 0 - bl sub_8108B50 -_080A1FB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A1FB8: .4byte sub_81279E0 - thumb_func_end sub_80A1F78 - - thumb_func_start sub_80A1FBC -sub_80A1FBC: @ 80A1FBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1FD0 @ =gUnknown_3005E98 - ldr r1, _080A1FD4 @ =ItemUseCB_Medicine - str r1, [r2] - bl sub_80A1F78 - pop {r0} - bx r0 - .align 2, 0 -_080A1FD0: .4byte gUnknown_3005E98 -_080A1FD4: .4byte ItemUseCB_Medicine - thumb_func_end sub_80A1FBC - - thumb_func_start sub_80A1FD8 -sub_80A1FD8: @ 80A1FD8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A1FEC @ =gUnknown_3005E98 - ldr r1, _080A1FF0 @ =sub_8126894 - str r1, [r2] - bl sub_80A1F78 - pop {r0} - bx r0 - .align 2, 0 -_080A1FEC: .4byte gUnknown_3005E98 -_080A1FF0: .4byte sub_8126894 - thumb_func_end sub_80A1FD8 - - thumb_func_start sub_80A1FF4 -sub_80A1FF4: @ 80A1FF4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A2008 @ =gUnknown_3005E98 - ldr r1, _080A200C @ =sub_81256F8 - str r1, [r2] - bl sub_80A1F78 - pop {r0} - bx r0 - .align 2, 0 -_080A2008: .4byte gUnknown_3005E98 -_080A200C: .4byte sub_81256F8 - thumb_func_end sub_80A1FF4 - - thumb_func_start sub_80A2010 -sub_80A2010: @ 80A2010 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A2044 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080A2058 - bl sub_80A1A44 - ldr r0, _080A2048 @ =gSpecialVar_ItemId - ldrh r2, [r0] - ldr r3, _080A204C @ =0x0000ffff - movs r0, 0x4 - movs r1, 0 - bl sub_80A2294 - ldr r2, _080A2050 @ =gStringVar4 - ldr r3, _080A2054 @ =sub_8108B50 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8108E70 - b _080A2060 - .align 2, 0 -_080A2044: .4byte gBattleTypeFlags -_080A2048: .4byte gSpecialVar_ItemId -_080A204C: .4byte 0x0000ffff -_080A2050: .4byte gStringVar4 -_080A2054: .4byte sub_8108B50 -_080A2058: - adds r0, r4, 0 - movs r1, 0 - bl sub_80A1110 -_080A2060: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A2010 - - thumb_func_start ItemUseOutOfBattle_EnigmaBerry -ItemUseOutOfBattle_EnigmaBerry: @ 80A2068 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A208C @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x14 - bls _080A2082 - b _080A2174 -_080A2082: - lsls r0, 2 - ldr r1, _080A2090 @ =_080A2094 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A208C: .4byte gSpecialVar_ItemId -_080A2090: .4byte _080A2094 - .align 2, 0 -_080A2094: - .4byte _080A2120 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A2174 - .4byte _080A2174 - .4byte _080A2104 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A20E8 - .4byte _080A2174 - .4byte _080A213C - .4byte _080A213C - .4byte _080A2158 -_080A20E8: - ldr r0, _080A2100 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A16E0 - b _080A2188 - .align 2, 0 -_080A2100: .4byte gTasks -_080A2104: - ldr r0, _080A211C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A176C - b _080A2188 - .align 2, 0 -_080A211C: .4byte gTasks -_080A2120: - ldr r0, _080A2138 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A1734 - b _080A2188 - .align 2, 0 -_080A2138: .4byte gTasks -_080A213C: - ldr r0, _080A2154 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A1718 - b _080A2188 - .align 2, 0 -_080A2154: .4byte gTasks -_080A2158: - ldr r0, _080A2170 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A16FC - b _080A2188 - .align 2, 0 -_080A2170: .4byte gTasks -_080A2174: - ldr r0, _080A2190 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x4 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl sub_80A2238 -_080A2188: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A2190: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_EnigmaBerry - - thumb_func_start ItemUseInBattle_EnigmaBerry -ItemUseInBattle_EnigmaBerry: @ 80A2194 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A21B4 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x15 - bhi _080A222C - lsls r0, 2 - ldr r1, _080A21B8 @ =_080A21BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A21B4: .4byte gSpecialVar_ItemId -_080A21B8: .4byte _080A21BC - .align 2, 0 -_080A21BC: - .4byte _080A2214 - .4byte _080A222C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A221C - .4byte _080A222C - .4byte _080A221C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A222C - .4byte _080A2224 -_080A2214: - adds r0, r4, 0 - bl sub_80A1E7C - b _080A2232 -_080A221C: - adds r0, r4, 0 - bl sub_80A1FBC - b _080A2232 -_080A2224: - adds r0, r4, 0 - bl sub_80A1FF4 - b _080A2232 -_080A222C: - adds r0, r4, 0 - bl sub_80A2238 -_080A2232: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ItemUseInBattle_EnigmaBerry - - thumb_func_start sub_80A2238 -sub_80A2238: @ 80A2238 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080A2268 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080A2278 - ldr r4, _080A226C @ =gStringVar4 - ldr r1, _080A2270 @ =gUnknown_8416425 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, _080A2274 @ =sub_813E2B8 - adds r0, r5, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl sub_813EB20 - b _080A228A - .align 2, 0 -_080A2268: .4byte gSpecialVar_ItemId -_080A226C: .4byte gStringVar4 -_080A2270: .4byte gUnknown_8416425 -_080A2274: .4byte sub_813E2B8 -_080A2278: - ldr r0, _080A2290 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r5, 0 - bl sub_80A1110 -_080A228A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A2290: .4byte gTasks - thumb_func_end sub_80A2238 - - thumb_func_start sub_80A2294 -sub_80A2294: @ 80A2294 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - adds r4, r2, 0 - adds r5, r3, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0x8 - bl Alloc - adds r6, r0, 0 - strh r4, [r6] - strh r5, [r6, 0x6] - cmp r7, 0 - beq _080A22C8 - adds r0, r7, 0 - movs r1, 0x41 - bl GetMonData - b _080A22CA -_080A22C8: - ldr r0, _080A22E4 @ =0x0000ffff -_080A22CA: - strh r0, [r6, 0x4] - mov r0, r8 - adds r1, r6, 0 - bl sub_8113550 - adds r0, r6, 0 - bl Free - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A22E4: .4byte 0x0000ffff - thumb_func_end sub_80A2294 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/itemfinder.s b/asm/itemfinder.s index bf3e78ebc..e510252ab 100644 --- a/asm/itemfinder.s +++ b/asm/itemfinder.s @@ -81,7 +81,7 @@ sub_813ED18: @ 813ED18 lsrs r4, 24 movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame bl sub_80696C0 bl ScriptContext2_Disable adds r0, r4, 0 @@ -970,7 +970,7 @@ sub_813F380: @ 813F380 bl sub_813F3FC movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame bl sub_80696C0 bl ScriptContext2_Disable adds r0, r4, 0 diff --git a/asm/learn_move.s b/asm/learn_move.s index 5068e6d16..4a37c7eae 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -50,8 +50,8 @@ sub_80E4660: @ 80E4660 bne _080E4684 ldr r0, _080E4690 @ =sub_80E478C bl SetMainCallback2 - ldr r1, _080E4694 @ =gUnknown_3005020 - ldr r0, _080E4698 @ =sub_807DD24 + ldr r1, _080E4694 @ =gFieldCallback + ldr r0, _080E4698 @ =FieldCallback_ReturnToEventScript2 str r0, [r1] adds r0, r4, 0 bl DestroyTask @@ -62,8 +62,8 @@ _080E4684: .align 2, 0 _080E468C: .4byte gPaletteFade _080E4690: .4byte sub_80E478C -_080E4694: .4byte gUnknown_3005020 -_080E4698: .4byte sub_807DD24 +_080E4694: .4byte gFieldCallback +_080E4698: .4byte FieldCallback_ReturnToEventScript2 thumb_func_end sub_80E4660 thumb_func_start sub_80E469C @@ -119,7 +119,7 @@ _080E46C6: movs r0, 0 movs r1, 0x1 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0xD0 movs r1, 0x1 bl sub_8107D38 @@ -133,7 +133,7 @@ _080E46C6: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _080E4788 @ =gUnknown_8E97EC4 movs r0, 0x1 movs r2, 0 @@ -296,7 +296,7 @@ sub_80E48C0: @ 80E48C0 ldr r4, _080E48F0 @ =gStringVar4 adds r0, r4, 0 bl StringExpandPlaceholders - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 str r0, [sp] @@ -454,7 +454,7 @@ _080E4A3E: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080E4A64 @ =gUnknown_203AAB4 ldr r1, [r0] ldrb r0, [r1] @@ -540,7 +540,7 @@ _080E4AF4: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080E4B1C @ =gUnknown_203AAB4 ldr r1, [r0] ldrb r0, [r1] @@ -601,7 +601,7 @@ _080E4B70: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080E4B94 @ =gUnknown_203AAB4 ldr r1, [r0] movs r0, 0x12 @@ -665,7 +665,7 @@ _080E4BF4: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080E4C18 @ =gUnknown_203AAB4 ldr r1, [r0] movs r0, 0x1A @@ -736,7 +736,7 @@ _080E4C7E: adds r1, r2, r3 ldr r6, _080E4CD4 @ =0x00000a6a adds r2, r6 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow bl FreeAllWindowBuffers ldr r0, _080E4CD8 @ =gPlayerParty ldr r5, [r7] @@ -810,13 +810,13 @@ _080E4D26: ldr r0, _080E4D40 @ =gUnknown_203AAB4 ldr r0, [r0] bl Free - ldr r0, _080E4D44 @ =c2_exit_to_overworld_2_switch + ldr r0, _080E4D44 @ =CB2_ReturnToField bl SetMainCallback2 b _080E4EDA .align 2, 0 _080E4D3C: .4byte gPaletteFade _080E4D40: .4byte gUnknown_203AAB4 -_080E4D44: .4byte c2_exit_to_overworld_2_switch +_080E4D44: .4byte CB2_ReturnToField _080E4D48: movs r0, 0x1 negs r0, r0 @@ -1016,7 +1016,7 @@ _080E4EF4: lsrs r0, 24 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter adds r4, 0x1 cmp r4, 0x7 ble _080E4EF4 @@ -1373,7 +1373,7 @@ _080E51AA: adds r2, r3 movs r0, 0xFE str r0, [r2] - ldr r2, _080E51FC @ =gUnknown_3005E70 + ldr r2, _080E51FC @ =gMultiuseListMenuTemplate adds r1, r2, 0 ldr r0, _080E5200 @ =gUnknown_83FFA94 ldm r0!, {r3,r5,r6} @@ -1397,7 +1397,7 @@ _080E51EC: .4byte gPlayerParty _080E51F0: .4byte gMoveNames _080E51F4: .4byte gStringVar1 _080E51F8: .4byte gFameCheckerText_Cancel -_080E51FC: .4byte gUnknown_3005E70 +_080E51FC: .4byte gMultiuseListMenuTemplate _080E5200: .4byte gUnknown_83FFA94 thumb_func_end sub_80E50CC @@ -1523,7 +1523,7 @@ _080E52FA: thumb_func_start sub_80E5300 sub_80E5300: @ 80E5300 push {r4,lr} - ldr r0, _080E5330 @ =gUnknown_3005E70 + ldr r0, _080E5330 @ =gMultiuseListMenuTemplate ldr r4, _080E5334 @ =gUnknown_203AAB4 ldr r2, [r4] ldr r3, _080E5338 @ =0x00000a68 @@ -1544,7 +1544,7 @@ sub_80E5300: @ 80E5300 pop {r0} bx r0 .align 2, 0 -_080E5330: .4byte gUnknown_3005E70 +_080E5330: .4byte gMultiuseListMenuTemplate _080E5334: .4byte gUnknown_203AAB4 _080E5338: .4byte 0x00000a68 _080E533C: .4byte 0x00000263 @@ -1568,11 +1568,11 @@ sub_80E5340: @ 80E5340 movs r0, 0x2 movs r2, 0x1 movs r3, 0x4 - bl sub_8107D68 + bl blit_move_info_icon ldrb r0, [r4, 0x1] cmp r0, 0x1 bhi _080E5388 - ldr r1, _080E5384 @ =gUnknown_8416213 + ldr r1, _080E5384 @ =gText_ThreeHyphens movs r0, 0 str r0, [sp] str r0, [sp, 0x4] @@ -1583,7 +1583,7 @@ sub_80E5340: @ 80E5340 b _080E53A6 .align 2, 0 _080E5380: .4byte gBattleMoves -_080E5384: .4byte gUnknown_8416213 +_080E5384: .4byte gText_ThreeHyphens _080E5388: ldrb r1, [r4, 0x1] add r0, sp, 0x8 @@ -1608,7 +1608,7 @@ _080E53A6: adds r4, r1, 0 cmp r2, 0 bne _080E53D4 - ldr r1, _080E53D0 @ =gUnknown_8416213 + ldr r1, _080E53D0 @ =gText_ThreeHyphens str r2, [sp] movs r0, 0x1 str r0, [sp, 0x4] @@ -1619,7 +1619,7 @@ _080E53A6: b _080E53F4 .align 2, 0 _080E53CC: .4byte gBattleMoves -_080E53D0: .4byte gUnknown_8416213 +_080E53D0: .4byte gText_ThreeHyphens _080E53D4: ldrb r1, [r0, 0x3] add r0, sp, 0x8 @@ -1680,27 +1680,27 @@ sub_80E5444: @ 80E5444 movs r1, 0x13 movs r2, 0x1 movs r3, 0x4 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0x1 movs r1, 0x14 movs r2, 0 movs r3, 0x4 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0x1 movs r1, 0x15 movs r2, 0 movs r3, 0x13 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0 movs r1, 0x16 movs r2, 0x1 movs r3, 0x13 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0 movs r1, 0x17 movs r2, 0x1 movs r3, 0x22 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0 bl PutWindowTilemap movs r0, 0x1 @@ -1814,7 +1814,7 @@ _080E5570: .4byte 0x00000a67 thumb_func_start sub_80E5574 sub_80E5574: @ 80E5574 push {r4,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 @@ -1936,7 +1936,7 @@ _080E563E: movs r1, 0x3 adds r2, r7, 0 adds r3, r6, 0 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r3-r5} mov r8, r3 diff --git a/asm/link.s b/asm/link.s index a0ba7f9cb..28dc18656 100644 --- a/asm/link.s +++ b/asm/link.s @@ -29,7 +29,7 @@ _08009498: cmp r0, r1 beq _080094C4 bl sub_800B210 - bl sub_80098B8 + bl CloseLink bl RestoreSerialTimer3IntrHandlers movs r0, 0 b _080094CE @@ -507,8 +507,8 @@ _080098B0: .4byte gUnknown_3003F30 _080098B4: .4byte gUnknown_3003F2C thumb_func_end sub_8009804 - thumb_func_start sub_80098B8 -sub_80098B8: @ 80098B8 + thumb_func_start CloseLink +CloseLink: @ 80098B8 push {r4,lr} ldr r0, _080098DC @ =gReceivedRemoteLinkPlayers movs r4, 0 @@ -529,7 +529,7 @@ _080098CC: _080098DC: .4byte gReceivedRemoteLinkPlayers _080098E0: .4byte gWirelessCommType _080098E4: .4byte gLinkOpen - thumb_func_end sub_80098B8 + thumb_func_end CloseLink thumb_func_start TestBlockTransfer TestBlockTransfer: @ 80098E8 @@ -870,7 +870,7 @@ _08009B7E: movs r0, 0 strh r0, [r3] lsls r4, r6, 4 - ldr r5, _08009BCC @ =gUnknown_3003ED0 + ldr r5, _08009BCC @ =gRecvCmds adds r2, r4, r5 ldrh r0, [r2] mov r12, r1 @@ -906,7 +906,7 @@ _08009BC4: b _08009E3E .align 2, 0 _08009BC8: .4byte gUnknown_3003E60 -_08009BCC: .4byte gUnknown_3003ED0 +_08009BCC: .4byte gRecvCmds _08009BD0: .4byte 0x00005fff _08009BD4: .4byte 0x00004444 _08009BD8: .4byte 0x00002222 @@ -1006,12 +1006,12 @@ _08009C94: adds r1, r0 movs r2, 0 strh r2, [r1] - ldr r0, _08009CBC @ =gUnknown_3003ED0 + ldr r0, _08009CBC @ =gRecvCmds adds r0, 0x2 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1, 0x2] - ldr r0, _08009CBC @ =gUnknown_3003ED0 + ldr r0, _08009CBC @ =gRecvCmds adds r0, 0x4 adds r0, r4, r0 ldrh r0, [r0] @@ -1019,7 +1019,7 @@ _08009C94: b _08009E3E .align 2, 0 _08009CB8: .4byte gUnknown_3000E18 -_08009CBC: .4byte gUnknown_3003ED0 +_08009CBC: .4byte gRecvCmds _08009CC0: mov r3, r12 adds r0, r3, r6 @@ -1037,7 +1037,7 @@ _08009CC0: mov r8, r0 movs r2, 0 adds r5, r3, 0 - ldr r7, _08009D0C @ =gUnknown_3003ED0 + ldr r7, _08009D0C @ =gRecvCmds adds r3, r4, 0 _08009CE4: ldrh r1, [r5] @@ -1059,13 +1059,13 @@ _08009CE4: .align 2, 0 _08009D04: .4byte gUnknown_3000E18 _08009D08: .4byte gDecompressionBuffer -_08009D0C: .4byte gUnknown_3003ED0 +_08009D0C: .4byte gRecvCmds _08009D10: movs r2, 0 ldr r1, _08009DC4 @ =gBlockRecvBuffer mov r9, r1 adds r7, r3, 0 - ldr r3, _08009DC8 @ =gUnknown_3003ED0 + ldr r3, _08009DC8 @ =gRecvCmds mov r8, r3 lsls r5, r6, 8 adds r3, r4, 0 @@ -1153,7 +1153,7 @@ _08009DBC: b _08009E3E .align 2, 0 _08009DC4: .4byte gBlockRecvBuffer -_08009DC8: .4byte gUnknown_3003ED0 +_08009DC8: .4byte gRecvCmds _08009DCC: .4byte gUnknown_3003EB8 _08009DD0: .4byte gLinkPlayers _08009DD4: .4byte gUnknown_82345C0 @@ -1187,7 +1187,7 @@ _08009E08: b _08009E3E _08009E0E: ldr r3, _08009E2C @ =gUnknown_8234598 - ldr r0, _08009E30 @ =gUnknown_3003ED0 + ldr r0, _08009E30 @ =gRecvCmds adds r0, 0x2 adds r0, r4, r0 ldrh r2, [r0] @@ -1202,9 +1202,9 @@ _08009E0E: b _08009E3E .align 2, 0 _08009E2C: .4byte gUnknown_8234598 -_08009E30: .4byte gUnknown_3003ED0 +_08009E30: .4byte gRecvCmds _08009E34: - ldr r0, _08009E5C @ =gUnknown_3003ED0 + ldr r0, _08009E5C @ =gRecvCmds adds r0, 0x2 adds r0, r4, r0 ldrh r0, [r0] @@ -1226,7 +1226,7 @@ _08009E4A: pop {r0} bx r0 .align 2, 0 -_08009E5C: .4byte gUnknown_3003ED0 +_08009E5C: .4byte gRecvCmds thumb_func_end sub_8009B70 thumb_func_start sub_8009E60 @@ -1596,7 +1596,7 @@ _0800A100: bne _0800A112 ldr r0, _0800A11C @ =gUnknown_3003EAC strb r4, [r0] - bl sub_80098B8 + bl CloseLink _0800A112: movs r6, 0 ldr r4, _0800A120 @ =gLinkPlayers @@ -2122,7 +2122,7 @@ sub_800A4BC: @ 800A4BC ldrb r0, [r0] cmp r0, 0x1 bne _0800A4D4 - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 lsrs r0, 24 b _0800A4E2 @@ -2833,7 +2833,7 @@ _0800A9E6: ldr r1, _0800AA1C @ =gUnknown_3003EAC movs r0, 0x1 strb r0, [r1] - bl sub_80098B8 + bl CloseLink ldr r0, _0800AA20 @ =c2_800ACD4 bl SetMainCallback2 _0800A9F6: @@ -3045,7 +3045,7 @@ _0800AB5C: ldr r0, _0800AB90 @ =gLinkVSyncDisabled movs r4, 0x1 strb r4, [r0] - bl sub_80098B8 + bl CloseLink ldr r1, _0800AB94 @ =gUnknown_3003F80 movs r0, 0 str r0, [r1] @@ -3198,7 +3198,7 @@ _0800AC8E: ldr r1, _0800ACB8 @ =gUnknown_3003EAC movs r0, 0x1 strb r0, [r1] - bl sub_80098B8 + bl CloseLink _0800AC98: pop {r0} bx r0 @@ -3252,7 +3252,7 @@ c2_800ACD4: @ 800ACD4 movs r2, 0x2 bl FillPalette bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop ldr r1, _0800ADF0 @ =gWirelessCommType ldrb r0, [r1] cmp r0, 0 @@ -3308,7 +3308,7 @@ _0800AD30: lsls r1, 8 movs r0, 0 bl ClearGpuRegBits - ldr r0, _0800AE08 @ =gUnknown_841F408 + ldr r0, _0800AE08 @ =gTMCaseMainWindowPalette movs r1, 0xF0 movs r2, 0x20 bl LoadPalette @@ -3343,7 +3343,7 @@ _0800ADF8: .4byte sub_800978C _0800ADFC: .4byte gUnknown_82345E8 _0800AE00: .4byte gUnknown_2022860 _0800AE04: .4byte gUnknown_82345F0 -_0800AE08: .4byte gUnknown_841F408 +_0800AE08: .4byte gTMCaseMainWindowPalette _0800AE0C: .4byte gSoftResetDisabled _0800AE10: .4byte sub_80094D4 _0800AE14: .4byte gMain @@ -3360,7 +3360,7 @@ sub_800AE1C: @ 800AE1C movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _0800AEBC @ =gWirelessLinkDisplayBin movs r0, 0x1 movs r2, 0 @@ -3387,7 +3387,7 @@ sub_800AE1C: @ 800AE1C movs r1, 0x3 movs r2, 0x2 movs r3, 0x5 - bl box_print + bl AddTextPrinterParameterized3 str r4, [sp] str r5, [sp, 0x4] ldr r0, _0800AECC @ =gUnknown_841DF05 @@ -3396,7 +3396,7 @@ sub_800AE1C: @ 800AE1C movs r1, 0x3 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 bl PutWindowTilemap movs r0, 0x2 @@ -3444,7 +3444,7 @@ sub_800AED0: @ 800AED0 movs r1, 0x3 movs r2, 0x2 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 @@ -3522,7 +3522,7 @@ _0800AF7A: movs r1, 0x3 movs r2, 0x2 movs r3, 0x14 - bl box_print + bl AddTextPrinterParameterized3 b _0800AFC4 .align 2, 0 _0800AF9C: .4byte gWirelessCommType @@ -3541,7 +3541,7 @@ _0800AFA8: movs r1, 0x3 movs r2, 0x2 movs r3, 0x14 - bl box_print + bl AddTextPrinterParameterized3 _0800AFC4: ldr r0, _0800B004 @ =gMain movs r2, 0x87 @@ -3779,7 +3779,7 @@ HandleLinkConnection: @ 800B178 bne _0800B1C8 ldr r0, _0800B1B4 @ =gUnknown_3003F84 ldr r1, _0800B1B8 @ =gUnknown_3003F50 - ldr r2, _0800B1BC @ =gUnknown_3003ED0 + ldr r2, _0800B1BC @ =gRecvCmds bl LinkMain1 ldr r4, _0800B1C0 @ =gUnknown_3003F20 str r0, [r4] @@ -3801,7 +3801,7 @@ _0800B1AA: _0800B1B0: .4byte gWirelessCommType _0800B1B4: .4byte gUnknown_3003F84 _0800B1B8: .4byte gUnknown_3003F50 -_0800B1BC: .4byte gUnknown_3003ED0 +_0800B1BC: .4byte gRecvCmds _0800B1C0: .4byte gUnknown_3003F20 _0800B1C4: .4byte gMain + 0x2C _0800B1C8: @@ -4686,7 +4686,7 @@ _0800B85C: _0800B860: adds r0, r2, 0 strh r0, [r1] - ldr r2, _0800B8BC @ =gUnknown_3003FB4 + ldr r2, _0800B8BC @ =gSioMlt_Recv ldr r3, _0800B8C0 @ =0x04000120 ldr r0, [r3] ldr r1, [r3, 0x4] @@ -4731,7 +4731,7 @@ _0800B8A0: .align 2, 0 _0800B8B4: .4byte 0x0400012a _0800B8B8: .4byte 0x0000b9a0 -_0800B8BC: .4byte gUnknown_3003FB4 +_0800B8BC: .4byte gSioMlt_Recv _0800B8C0: .4byte 0x04000120 _0800B8C4: .4byte gUnknown_3000E6B _0800B8C8: .4byte 0x00008fff diff --git a/asm/link_rfu.s b/asm/link_rfu.s index 08f81f729..a1d543dd6 100644 --- a/asm/link_rfu.s +++ b/asm/link_rfu.s @@ -3259,7 +3259,7 @@ sub_80FEC54: @ 80FEC54 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _080FEC70 _080FEC62: @@ -4359,7 +4359,7 @@ _080FF4A2: thumb_func_start sub_80FF4A8 sub_80FF4A8: @ 80FF4A8 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4400,7 +4400,7 @@ _080FF4EA: thumb_func_start sub_80FF4F0 sub_80FF4F0: @ 80FF4F0 push {r4,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4446,7 +4446,7 @@ _080FF53E: thumb_func_start sub_80FF544 sub_80FF544: @ 80FF544 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -6079,7 +6079,7 @@ _08100038: movs r0, 0x3 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r1, _08100068 @ =gUnknown_8E99E74 movs r0, 0x3 movs r2, 0 @@ -6106,7 +6106,7 @@ _0810006C: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap movs r0, 0x1 bl CopyBgTilemapBufferToVram b _08100104 @@ -7823,7 +7823,7 @@ _08100E0A: str r0, [sp, 0x8] mov r0, r12 adds r2, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x10 pop {r3,r4} mov r8, r3 @@ -7851,11 +7851,11 @@ sub_8100E34: @ 8100E34 movs r0, 0x1 movs r1, 0x1 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0x1 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl sub_8100E7C movs r0, 0x1 @@ -7964,7 +7964,7 @@ sub_8100F18: @ 8100F18 movs r1, 0x1 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s index d36eeca20..feb7c886f 100644 --- a/asm/link_rfu_2.s +++ b/asm/link_rfu_2.s @@ -77,7 +77,7 @@ _080F863E: bl CpuSet mov r0, r8 strh r5, [r0] - ldr r1, _080F86B4 @ =gUnknown_3003ED0 + ldr r1, _080F86B4 @ =gRecvCmds ldr r2, _080F86B8 @ =0x01000028 bl CpuSet mov r0, r9 @@ -99,7 +99,7 @@ _080F86A4: .4byte gUnknown_30054BC _080F86A8: .4byte 0x00000634 _080F86AC: .4byte gUnknown_3003F50 _080F86B0: .4byte 0x01000008 -_080F86B4: .4byte gUnknown_3003ED0 +_080F86B4: .4byte gRecvCmds _080F86B8: .4byte 0x01000028 _080F86BC: .4byte gLinkPlayers _080F86C0: .4byte 0x01000046 @@ -1228,7 +1228,7 @@ sub_80F8FD4: @ 80F8FD4 push {r4-r7,lr} sub sp, 0x4 movs r2, 0 - ldr r7, _080F9028 @ =gUnknown_3003ED0 + ldr r7, _080F9028 @ =gRecvCmds ldr r0, _080F902C @ =gUnknown_3005450 adds r6, r7, 0 ldr r1, _080F9030 @ =0x0000093f @@ -1268,7 +1268,7 @@ _080F8FF4: pop {r0} bx r0 .align 2, 0 -_080F9028: .4byte gUnknown_3003ED0 +_080F9028: .4byte gRecvCmds _080F902C: .4byte gUnknown_3005450 _080F9030: .4byte 0x0000093f _080F9034: .4byte 0x01000028 @@ -1278,7 +1278,7 @@ _080F9034: .4byte 0x01000028 sub_80F9038: @ 80F9038 push {lr} ldr r3, _080F9064 @ =gUnknown_3003F50 - ldr r2, _080F9068 @ =gUnknown_3003ED0 + ldr r2, _080F9068 @ =gRecvCmds movs r1, 0x6 _080F9040: ldrh r0, [r3] @@ -1301,7 +1301,7 @@ _080F9056: bx r0 .align 2, 0 _080F9064: .4byte gUnknown_3003F50 -_080F9068: .4byte gUnknown_3003ED0 +_080F9068: .4byte gRecvCmds thumb_func_end sub_80F9038 thumb_func_start sub_80F906C @@ -1375,7 +1375,7 @@ _080F90E8: _080F90EC: .4byte gUnknown_3007460 _080F90F0: movs r3, 0 - ldr r4, _080F9118 @ =gUnknown_3003ED0 + ldr r4, _080F9118 @ =gRecvCmds _080F90F4: movs r2, 0 lsls r0, r3, 4 @@ -1397,7 +1397,7 @@ _080F9110: pop {r1} bx r1 .align 2, 0 -_080F9118: .4byte gUnknown_3003ED0 +_080F9118: .4byte gRecvCmds thumb_func_end sub_80F90DC thumb_func_start sub_80F911C @@ -1664,7 +1664,7 @@ _080F9304: str r2, [sp, 0x4] adds r5, 0x1 str r5, [sp] - ldr r1, _080F9450 @ =gUnknown_3003ED0 + ldr r1, _080F9450 @ =gRecvCmds mov r9, r1 adds r5, r3, 0 adds r7, r4, 0 @@ -1791,7 +1791,7 @@ _080F93FA: _080F9444: .4byte gUnknown_3005450 _080F9448: .4byte 0x000009a6 _080F944C: .4byte gUnknown_3005DE6 -_080F9450: .4byte gUnknown_3003ED0 +_080F9450: .4byte gRecvCmds _080F9454: .4byte 0x0000099d _080F9458: .4byte 0x00000991 _080F945C: .4byte gUnknown_203AC08 @@ -1904,7 +1904,7 @@ sub_80F9514: @ 80F9514 mov r1, sp bl sub_80FC6E8 movs r1, 0 - ldr r0, _080F963C @ =gUnknown_3003ED0 + ldr r0, _080F963C @ =gRecvCmds mov r12, r0 _080F952A: movs r4, 0 @@ -2038,7 +2038,7 @@ _080F9628: bx r1 .align 2, 0 _080F9638: .4byte gUnknown_3005574 -_080F963C: .4byte gUnknown_3003ED0 +_080F963C: .4byte gRecvCmds _080F9640: .4byte gUnknown_3005E10 _080F9644: .4byte gUnknown_3005450 _080F9648: .4byte 0x0000099c @@ -2348,7 +2348,7 @@ sub_80F9868: @ 80F9868 _080F9876: mov r1, r8 lsls r5, r1, 4 - ldr r2, _080F98B4 @ =gUnknown_3003ED0 + ldr r2, _080F98B4 @ =gRecvCmds adds r0, r5, r2 ldrh r7, [r0] movs r3, 0xFF @@ -2379,7 +2379,7 @@ _080F98A2: _080F98B0: b _080F9BF4 .align 2, 0 -_080F98B4: .4byte gUnknown_3003ED0 +_080F98B4: .4byte gRecvCmds _080F98B8: movs r0, 0xEE lsls r0, 7 @@ -2562,7 +2562,7 @@ _080F99FE: adds r2, r4, 0x1 lsls r0, r2, 1 adds r0, r3 - ldr r4, _080F9A90 @ =gUnknown_3003ED0 + ldr r4, _080F9A90 @ =gRecvCmds adds r0, r4 ldrh r0, [r0] strh r0, [r1] @@ -2623,7 +2623,7 @@ _080F9A80: .align 2, 0 _080F9A88: .4byte gUnknown_3005450 _080F9A8C: .4byte gBlockRecvBuffer -_080F9A90: .4byte gUnknown_3003ED0 +_080F9A90: .4byte gRecvCmds _080F9A94: .4byte gUnknown_843EBD4 _080F9A98: .4byte gReceivedRemoteLinkPlayers _080F9A9C: @@ -2703,7 +2703,7 @@ _080F9B00: adds r0, r7, r2 strb r1, [r0] _080F9B38: - ldr r0, _080F9B64 @ =gUnknown_3003ED0 + ldr r0, _080F9B64 @ =gRecvCmds adds r0, 0x6 adds r0, r5, r0 ldrh r0, [r0] @@ -2718,7 +2718,7 @@ _080F9B54: .4byte gUnknown_3003ED2 _080F9B58: .4byte gUnknown_3007460 _080F9B5C: .4byte gUnknown_3003ED4 _080F9B60: .4byte 0x0000099c -_080F9B64: .4byte gUnknown_3003ED0 +_080F9B64: .4byte gRecvCmds _080F9B68: movs r0, 0xEE lsls r0, 8 @@ -2732,7 +2732,7 @@ _080F9B68: adds r0, r5, r4 ldrh r0, [r0] strh r0, [r1, 0x4] - ldr r0, _080F9B9C @ =gUnknown_3003ED0 + ldr r0, _080F9B9C @ =gRecvCmds adds r0, 0x6 adds r0, r5, r0 ldrh r0, [r0] @@ -2742,7 +2742,7 @@ _080F9B68: _080F9B90: .4byte gUnknown_3003F50 _080F9B94: .4byte gUnknown_3003ED2 _080F9B98: .4byte gUnknown_3003ED4 -_080F9B9C: .4byte gUnknown_3003ED0 +_080F9B9C: .4byte gRecvCmds _080F9BA0: ldr r4, _080F9BD0 @ =gUnknown_3005450 ldrb r0, [r4, 0xC] @@ -3267,7 +3267,7 @@ _080F9F74: .4byte gUnknown_3003F50 _080F9F78: .4byte gUnknown_3005450 _080F9F7C: bl GetMultiplayerId - ldr r1, _080F9FA0 @ =gUnknown_3003ED0 + ldr r1, _080F9FA0 @ =gRecvCmds lsls r0, 24 lsrs r0, 20 adds r0, r1 @@ -3285,7 +3285,7 @@ _080F9F98: pop {r0} bx r0 .align 2, 0 -_080F9FA0: .4byte gUnknown_3003ED0 +_080F9FA0: .4byte gRecvCmds _080F9FA4: .4byte sub_80F9FA8 thumb_func_end rfufunc_80F9F44 @@ -3378,7 +3378,7 @@ rfufunc_80FA020: @ 80FA020 strh r0, [r3] movs r4, 0 mov r9, r5 - ldr r0, _080FA0D4 @ =gUnknown_3003ED0 + ldr r0, _080FA0D4 @ =gRecvCmds mov r12, r0 lsls r5, r6, 4 adds r7, r2, 0 @@ -3441,7 +3441,7 @@ _080FA05C: _080FA0C8: .4byte gUnknown_3005450 _080FA0CC: .4byte gUnknown_3003F50 _080FA0D0: .4byte 0xffff8900 -_080FA0D4: .4byte gUnknown_3003ED0 +_080FA0D4: .4byte gRecvCmds _080FA0D8: .4byte gUnknown_843EBD4 _080FA0DC: .4byte gUnknown_203AC08 _080FA0E0: @@ -4012,8 +4012,8 @@ sub_80FA4EC: @ 80FA4EC _080FA4F4: .4byte gUnknown_3005450 thumb_func_end sub_80FA4EC - thumb_func_start sub_80FA4F8 -sub_80FA4F8: @ 80FA4F8 + thumb_func_start IsNoOneConnected +IsNoOneConnected: @ 80FA4F8 push {lr} movs r1, 0 ldr r0, _080FA50C @ =gUnknown_3005450 @@ -4027,7 +4027,7 @@ _080FA506: bx r1 .align 2, 0 _080FA50C: .4byte gUnknown_3005450 - thumb_func_end sub_80FA4F8 + thumb_func_end IsNoOneConnected thumb_func_start sub_80FA510 sub_80FA510: @ 80FA510 @@ -5152,7 +5152,7 @@ sub_80FAD98: @ 80FAD98 bne _080FAE30 ldr r6, _080FAE18 @ =gMain ldr r1, [r6, 0x4] - ldr r0, _080FAE1C @ =sub_814208C + ldr r0, _080FAE1C @ =c2_mystery_gift_e_reader_run cmp r1, r0 bne _080FADC0 ldr r1, _080FAE20 @ =gWirelessCommType @@ -5193,13 +5193,13 @@ _080FADF8: ldrb r0, [r7] movs r0, 0x2 strb r0, [r7] - bl sub_80098B8 + bl CloseLink b _080FAE62 .align 2, 0 _080FAE10: .4byte gUnknown_3005450 _080FAE14: .4byte gUnknown_3005E10 _080FAE18: .4byte gMain -_080FAE1C: .4byte sub_814208C +_080FAE1C: .4byte c2_mystery_gift_e_reader_run _080FAE20: .4byte gWirelessCommType _080FAE24: .4byte c2_800ACD4 _080FAE28: .4byte 0x0000069e @@ -6835,7 +6835,7 @@ sub_80FBA44: @ 80FBA44 sub sp, 0x4 movs r0, 0 str r0, [sp] - ldr r1, _080FBA5C @ =gUnknown_3003ED0 + ldr r1, _080FBA5C @ =gRecvCmds ldr r2, _080FBA60 @ =0x05000014 mov r0, sp bl CpuSet @@ -6843,7 +6843,7 @@ sub_80FBA44: @ 80FBA44 pop {r0} bx r0 .align 2, 0 -_080FBA5C: .4byte gUnknown_3003ED0 +_080FBA5C: .4byte gRecvCmds _080FBA60: .4byte 0x05000014 thumb_func_end sub_80FBA44 @@ -9466,8 +9466,8 @@ _080FCE3C: .4byte 0x00001234 _080FCE40: .4byte gUnknown_843F274 thumb_func_end sub_80FCD74 - thumb_func_start sub_80FCE44 -sub_80FCE44: @ 80FCE44 + thumb_func_start DestroyWirelessStatusIndicatorSprite +DestroyWirelessStatusIndicatorSprite: @ 80FCE44 push {r4,lr} ldr r4, _080FCE90 @ =gSprites ldr r3, _080FCE94 @ =gUnknown_203ACE4 @@ -9512,7 +9512,7 @@ _080FCE98: .4byte 0x00001234 _080FCE9C: .4byte gMain _080FCEA0: .4byte gDummyOamData _080FCEA4: .4byte 0x070003e8 - thumb_func_end sub_80FCE44 + thumb_func_end DestroyWirelessStatusIndicatorSprite thumb_func_start sub_80FCEA8 sub_80FCEA8: @ 80FCEA8 @@ -9830,7 +9830,7 @@ _080FD072: lsrs r0, 24 cmp r0, 0x1 bne _080FD106 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite _080FD106: pop {r3} mov r8, r3 diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index c5947ebc0..50121e847 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -401,8 +401,8 @@ _08115B5C: bl CopyWindowToVram ldrb r0, [r5, 0xF] movs r1, 0 - bl sub_80F6F1C - ldr r0, _08115C58 @ =gUnknown_3005E70 + bl DrawStdWindowFrame + ldr r0, _08115C58 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _08115C5C @ =gUnknown_8456D34 ldm r1!, {r3,r6,r7} @@ -417,7 +417,7 @@ _08115B5C: strb r0, [r5, 0x12] ldrb r0, [r5, 0x11] movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame ldrb r0, [r5, 0x11] bl PutWindowTilemap ldrb r0, [r5, 0x11] @@ -434,7 +434,7 @@ _08115C48: .4byte gUnknown_8456CD0 _08115C4C: .4byte gUnknown_8456CFC _08115C50: .4byte gUnknown_8456D04 _08115C54: .4byte gUnknown_845747C -_08115C58: .4byte gUnknown_3005E70 +_08115C58: .4byte gMultiuseListMenuTemplate _08115C5C: .4byte gUnknown_8456D34 _08115C60: ldr r0, _08115C98 @ =gStringVar1 @@ -1071,7 +1071,7 @@ _0811615C: .align 2, 0 _08116164: .4byte gUnknown_8457610 _08116168: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite bl sub_80F8DC0 adds r0, r5, 0 bl sub_81161E4 @@ -1135,16 +1135,16 @@ sub_81161E4: @ 81161E4 bl ClearWindowTilemap ldrb r0, [r4, 0x11] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r4, 0x12] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4, 0x10] bl ClearWindowTilemap ldrb r0, [r4, 0xF] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r4, 0x11] @@ -1919,8 +1919,8 @@ _08116838: bl CopyWindowToVram ldrb r0, [r6, 0xB] movs r1, 0 - bl sub_80F6F1C - ldr r0, _081168FC @ =gUnknown_3005E70 + bl DrawStdWindowFrame + ldr r0, _081168FC @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _08116900 @ =gUnknown_8456DDC ldm r1!, {r3,r5,r7} @@ -1935,7 +1935,7 @@ _08116838: strb r0, [r6, 0xE] ldrb r0, [r6, 0xD] movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame ldrb r0, [r6, 0xD] bl PutWindowTilemap ldrb r0, [r6, 0xD] @@ -1955,7 +1955,7 @@ _081168EC: .4byte gUnknown_8456CD0 _081168F0: .4byte gUnknown_8456D4C _081168F4: .4byte gUnknown_8456D54 _081168F8: .4byte gUnknown_8458FC8 -_081168FC: .4byte gUnknown_3005E70 +_081168FC: .4byte gMultiuseListMenuTemplate _08116900: .4byte gUnknown_8456DDC _08116904: bl sub_8116FE4 @@ -2318,16 +2318,16 @@ _08116C10: bl ClearWindowTilemap ldrb r0, [r6, 0xD] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r6, 0xE] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r6, 0xC] bl ClearWindowTilemap ldrb r0, [r6, 0xB] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r6, 0xD] @@ -2347,7 +2347,7 @@ _08116C10: strb r0, [r6, 0x8] b _08116D06 _08116C68: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite adds r5, r6, 0 adds r5, 0x9 ldr r4, _08116C90 @ =gUnknown_8457754 @@ -2368,14 +2368,14 @@ _08116C68: _08116C90: .4byte gUnknown_8457754 _08116C94: .4byte gSpecialVar_Result _08116C98: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite ldr r0, _08116CA4 @ =gSpecialVar_Result movs r1, 0x5 b _08116CDC .align 2, 0 _08116CA4: .4byte gSpecialVar_Result _08116CA8: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite adds r5, r6, 0 adds r5, 0x9 ldr r4, _08116CC4 @ =gUnknown_8457754 @@ -3088,7 +3088,7 @@ _08117210: movs r0, 0x6 strb r0, [r1, 0x1] ldr r1, _08117274 @ =gMain - ldr r0, _08117278 @ =c2_exit_to_overworld_2_switch + ldr r0, _08117278 @ =CB2_ReturnToField str r0, [r1, 0x8] ldr r0, _0811727C @ =sub_8050138 bl SetMainCallback2 @@ -3107,7 +3107,7 @@ _08117268: .4byte gUnknown_2031CCC _0811726C: .4byte gBlockRecvBuffer _08117270: .4byte gUnknown_2031DA4 _08117274: .4byte gMain -_08117278: .4byte c2_exit_to_overworld_2_switch +_08117278: .4byte CB2_ReturnToField _0811727C: .4byte sub_8050138 thumb_func_end sub_8117130 @@ -3251,7 +3251,7 @@ _08117384: eors r0, r1 lsls r0, 24 lsrs r0, 24 - ldr r1, _081173BC @ =c2_exit_to_overworld_2_switch + ldr r1, _081173BC @ =CB2_ReturnToField bl sub_808B700 _081173A2: bl RunTasks @@ -3263,7 +3263,7 @@ _081173A2: bx r0 .align 2, 0 _081173B8: .4byte sub_8117280 -_081173BC: .4byte c2_exit_to_overworld_2_switch +_081173BC: .4byte CB2_ReturnToField thumb_func_end sub_8117354 thumb_func_start sub_81173C0 @@ -3366,7 +3366,7 @@ sub_8117440: @ 8117440 str r5, [sp, 0x4] movs r0, 0 mov r3, r8 - bl saved_warp2_set_2 + bl SetDynamicWarpWithCoords bl warp_in add sp, 0x8 pop {r3} @@ -3645,7 +3645,7 @@ _08117640: .4byte _081178E0 .4byte _08117784 _08117784: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r1, _08117798 @ =gMain ldr r0, _0811779C @ =sub_811C1C8 str r0, [r1, 0x8] @@ -3656,7 +3656,7 @@ _08117784: _08117798: .4byte gMain _0811779C: .4byte sub_811C1C8 _081177A0: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _081177C4 @ =gBlockSendBuffer movs r1, 0x1 bl sub_8117594 @@ -3672,7 +3672,7 @@ _081177A0: .align 2, 0 _081177C4: .4byte gBlockSendBuffer _081177C8: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps bl sp000_heal_pokemon bl SavePlayerParty bl LoadPlayerBag @@ -3688,7 +3688,7 @@ _081177C8: .align 2, 0 _081177EC: .4byte gBlockSendBuffer _081177F0: - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps bl sp000_heal_pokemon bl SavePlayerParty bl LoadPlayerBag @@ -3706,7 +3706,7 @@ _08117818: ldr r0, _0811783C @ =gBlockSendBuffer movs r1, 0x1 bl sub_8117594 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps movs r0, 0x3 str r0, [sp] movs r0, 0 @@ -3911,8 +3911,8 @@ _081179C4: .4byte sub_81175BC _081179C8: .4byte gTasks thumb_func_end sub_81179A4 - thumb_func_start sub_81179CC -sub_81179CC: @ 81179CC + thumb_func_start MEvent_CreateTask_Leader +MEvent_CreateTask_Leader: @ 81179CC push {r4,lr} adds r4, r0, 0 ldr r0, _081179FC @ =sub_8117A0C @@ -3941,7 +3941,7 @@ _081179FC: .4byte sub_8117A0C _08117A00: .4byte gUnknown_203B05C _08117A04: .4byte gTasks+0x8 _08117A08: .4byte gSpecialVar_Result - thumb_func_end sub_81179CC + thumb_func_end MEvent_CreateTask_Leader thumb_func_start sub_8117A0C sub_8117A0C: @ 8117A0C @@ -4056,7 +4056,7 @@ _08117AB8: ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] - bl sub_81435D4 + bl GetMysteryGiftBaseBlock lsls r0, 16 ldr r2, _08117B70 @ =0x0000ffff ldr r1, [sp, 0x4] @@ -4067,8 +4067,8 @@ _08117AB8: bl AddWindow strb r0, [r5, 0xF] ldrb r0, [r5, 0xF] - bl sub_814240C - ldr r0, _08117B74 @ =gUnknown_3005E70 + bl MG_DrawTextBorder + ldr r0, _08117B74 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _08117B78 @ =gUnknown_8456D34 ldm r1!, {r3,r4,r6} @@ -4089,7 +4089,7 @@ _08117AB8: .align 2, 0 _08117B6C: .4byte gUnknown_8456CFC _08117B70: .4byte 0x0000ffff -_08117B74: .4byte gUnknown_3005E70 +_08117B74: .4byte gMultiuseListMenuTemplate _08117B78: .4byte gUnknown_8456D34 _08117B7C: ldr r0, _08117B9C @ =gStringVar1 @@ -4113,7 +4113,7 @@ _08117BA4: .4byte gUnknown_203B058 _08117BA8: .4byte gStringVar4 _08117BAC: ldr r0, _08117BB8 @ =gStringVar4 - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0x4 strb r0, [r5, 0xC] b _08117ECA @@ -4134,7 +4134,7 @@ _08117BBC: _08117BD4: movs r0, 0xD strb r0, [r5, 0xC] - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite b _08117ECA .align 2, 0 _08117BE0: .4byte gMain @@ -4142,7 +4142,7 @@ _08117BE4: adds r0, r5, 0 adds r0, 0xD ldr r1, _08117C08 @ =gUnknown_84577F8 - bl mevent_0814257C + bl MG_PrintTextOnWindow1AndWaitButton cmp r0, 0 bne _08117BF4 b _08117ECA @@ -4169,7 +4169,7 @@ _08117C12: adds r1, 0x14 ldr r3, _08117C38 @ =gStringVar4 movs r2, 0 - bl sub_81427A0 + bl mevent_message_print_and_prompt_yes_no lsls r0, 24 asrs r4, r0, 24 cmp r4, 0 @@ -4346,7 +4346,7 @@ _08117D88: b _08117ECA _08117D94: ldr r0, _08117DA0 @ =gStringVar4 - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0xA strb r0, [r5, 0xC] b _08117ECA @@ -4393,12 +4393,12 @@ _08117DE8: strb r0, [r5, 0xC] b _08117ECA _08117DEE: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite bl sub_80F8DC0 ldrb r0, [r5, 0x12] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xF] @@ -4416,7 +4416,7 @@ _08117E26: adds r0, r5, 0 adds r0, 0xD ldr r1, _08117E44 @ =gUnknown_84571B8 - bl mevent_0814257C + bl MG_PrintTextOnWindow1AndWaitButton cmp r0, 0 beq _08117ECA adds r0, r4, 0 @@ -4457,7 +4457,7 @@ _08117E80: ldrb r0, [r5, 0x12] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xF] @@ -4490,8 +4490,8 @@ _08117ECA: bx r0 thumb_func_end sub_8117A0C - thumb_func_start sub_8117ED4 -sub_8117ED4: @ 8117ED4 + thumb_func_start MEvent_CreateTask_CardOrNewsWithFriend +MEvent_CreateTask_CardOrNewsWithFriend: @ 8117ED4 push {r4,lr} adds r4, r0, 0 ldr r0, _08117F0C @ =sub_8117F20 @@ -4524,7 +4524,7 @@ _08117F10: .4byte gUnknown_203B05C _08117F14: .4byte gTasks+0x8 _08117F18: .4byte gUnknown_3002028 _08117F1C: .4byte gSpecialVar_Result - thumb_func_end sub_8117ED4 + thumb_func_end MEvent_CreateTask_CardOrNewsWithFriend thumb_func_start sub_8117F20 sub_8117F20: @ 8117F20 @@ -4585,7 +4585,7 @@ _08117F7C: b _08118288 _08117FB0: ldr r0, _08117FBC @ =gUnknown_8458FE4 - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0x2 strb r0, [r5, 0x8] b _08118288 @@ -4609,7 +4609,7 @@ _08117FC0: ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] - bl sub_81435D4 + bl GetMysteryGiftBaseBlock lsls r0, 16 ldr r2, _08118060 @ =0x0000ffff ldr r1, [sp, 0x4] @@ -4623,8 +4623,8 @@ _08117FC0: bl AddWindow strb r0, [r5, 0xD] ldrb r0, [r5, 0xB] - bl sub_814240C - ldr r0, _08118068 @ =gUnknown_3005E70 + bl MG_DrawTextBorder + ldr r0, _08118068 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _0811806C @ =gUnknown_8456DDC ldm r1!, {r3,r6,r7} @@ -4638,7 +4638,7 @@ _08117FC0: bl ListMenuInit strb r0, [r5, 0xE] ldrb r0, [r5, 0xD] - bl sub_814240C + bl MG_DrawTextBorder ldrb r0, [r5, 0xD] movs r1, 0x11 bl FillWindowPixelBuffer @@ -4659,7 +4659,7 @@ _08117FC0: _0811805C: .4byte gUnknown_8456D4C _08118060: .4byte 0x0000ffff _08118064: .4byte gUnknown_8456D54 -_08118068: .4byte gUnknown_3005E70 +_08118068: .4byte gMultiuseListMenuTemplate _0811806C: .4byte gUnknown_8456DDC _08118070: bl sub_8116FE4 @@ -4766,7 +4766,7 @@ _08118146: _0811814C: .4byte gMain _08118150: ldr r0, _08118184 @ =gUnknown_8459238 - bl sub_8142504 + bl AddTextPrinterToWindow1 ldr r4, _08118188 @ =gStringVar1 ldrb r0, [r5, 0xF] lsls r0, 5 @@ -4831,7 +4831,7 @@ _081181D0: b _08118288 _081181D6: ldr r0, _081181E8 @ =gUnknown_84576AC - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0 movs r1, 0 bl sub_80FB9E4 @@ -4842,7 +4842,7 @@ _081181EC: ldrb r0, [r5, 0xE] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xD] @@ -4868,17 +4868,17 @@ _08118222: adds r0, r4 ldr r1, [r0] adds r0, r5, 0 - bl mevent_0814257C + bl MG_PrintTextOnWindow1AndWaitButton cmp r0, 0 beq _08118288 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite b _08118252 .align 2, 0 _08118244: .4byte gUnknown_8457838 _08118248: - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite ldr r0, _08118264 @ =gUnknown_84571B8 - bl sub_8142504 + bl AddTextPrinterToWindow1 _08118252: adds r0, r6, 0 bl DestroyTask @@ -4910,8 +4910,8 @@ _08118288: bx r0 thumb_func_end sub_8117F20 - thumb_func_start sub_8118290 -sub_8118290: @ 8118290 + thumb_func_start MEvent_CreateTask_CardOrNewsOverWireless +MEvent_CreateTask_CardOrNewsOverWireless: @ 8118290 push {r4,lr} adds r4, r0, 0 ldr r0, _081182C8 @ =sub_81182DC @@ -4944,7 +4944,7 @@ _081182CC: .4byte gUnknown_203B05C _081182D0: .4byte gTasks+0x8 _081182D4: .4byte gUnknown_3002028 _081182D8: .4byte gSpecialVar_Result - thumb_func_end sub_8118290 + thumb_func_end MEvent_CreateTask_CardOrNewsOverWireless thumb_func_start sub_81182DC sub_81182DC: @ 81182DC @@ -5004,7 +5004,7 @@ _08118340: b _08118604 _0811836E: ldr r0, _0811837C @ =gUnknown_84591DC - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0x2 strb r0, [r5, 0x8] b _08118604 @@ -5030,7 +5030,7 @@ _08118380: ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] - bl sub_81435D4 + bl GetMysteryGiftBaseBlock lsls r0, 16 ldr r2, _081183FC @ =0x0000ffff ldr r1, [sp, 0x4] @@ -5041,8 +5041,8 @@ _08118380: bl AddWindow strb r0, [r5, 0xB] ldrb r0, [r5, 0xB] - bl sub_814240C - ldr r0, _08118400 @ =gUnknown_3005E70 + bl MG_DrawTextBorder + ldr r0, _08118400 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, _08118404 @ =gUnknown_8456DDC ldm r1!, {r3,r4,r6} @@ -5066,7 +5066,7 @@ _081183EC: .align 2, 0 _081183F8: .4byte gUnknown_8456D4C _081183FC: .4byte 0x0000ffff -_08118400: .4byte gUnknown_3005E70 +_08118400: .4byte gMultiuseListMenuTemplate _08118404: .4byte gUnknown_8456DDC _08118408: bl sub_8116FE4 @@ -5163,7 +5163,7 @@ _081184BC: _081184C4: .4byte gMain _081184C8: ldr r0, _081184FC @ =gUnknown_845928C - bl sub_8142504 + bl AddTextPrinterToWindow1 ldr r4, _08118500 @ =gStringVar1 ldrb r0, [r5, 0xF] lsls r0, 5 @@ -5228,7 +5228,7 @@ _08118548: b _08118604 _0811854E: ldr r0, _08118560 @ =gUnknown_845777C - bl sub_8142504 + bl AddTextPrinterToWindow1 movs r0, 0 movs r1, 0 bl sub_80FB9E4 @@ -5242,7 +5242,7 @@ _08118564: ldrb r0, [r5, 0xE] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xB] @@ -5281,10 +5281,10 @@ _081185B4: adds r1, r2 ldr r1, [r1] _081185C2: - bl mevent_0814257C + bl MG_PrintTextOnWindow1AndWaitButton cmp r0, 0 beq _08118604 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite adds r0, r4, 0 bl DestroyTask bl sub_80F8DC0 @@ -5404,7 +5404,7 @@ _081186AC: .4byte gStringVar4 thumb_func_start sub_81186B0 sub_81186B0: @ 81186B0 push {lr} - ldr r3, _081186C4 @ =gUnknown_201FF00 + ldr r3, _081186C4 @ =gDecompressionBuffer + 0x3F00 ldr r1, [r0] movs r2, 0x80 lsls r2, 1 @@ -5413,21 +5413,21 @@ sub_81186B0: @ 81186B0 pop {r0} bx r0 .align 2, 0 -_081186C4: .4byte gUnknown_201FF00 +_081186C4: .4byte gDecompressionBuffer + 0x3F00 thumb_func_end sub_81186B0 thumb_func_start sub_81186C8 sub_81186C8: @ 81186C8 push {lr} ldr r0, [r0] - ldr r1, _081186DC @ =gUnknown_201FF00 + ldr r1, _081186DC @ =gDecompressionBuffer + 0x3F00 movs r2, 0x80 lsls r2, 1 bl memcpy pop {r0} bx r0 .align 2, 0 -_081186DC: .4byte gUnknown_201FF00 +_081186DC: .4byte gDecompressionBuffer + 0x3F00 thumb_func_end sub_81186C8 thumb_func_start sub_81186E0 @@ -7001,19 +7001,19 @@ _08119512: ldr r1, _0811952C @ =gUnknown_203B06C movs r0, 0x1 strh r0, [r1] - ldr r1, _08119530 @ =gUnknown_3005020 + ldr r1, _08119530 @ =gFieldCallback ldr r0, _08119534 @ =sub_807DCE4 str r0, [r1] - ldr r1, _08119538 @ =c2_exit_to_overworld_2_switch + ldr r1, _08119538 @ =CB2_ReturnToField movs r0, 0x8 bl sub_81277F4 b _081198DC .align 2, 0 _08119528: .4byte gPaletteFade _0811952C: .4byte gUnknown_203B06C -_08119530: .4byte gUnknown_3005020 +_08119530: .4byte gFieldCallback _08119534: .4byte sub_807DCE4 -_08119538: .4byte c2_exit_to_overworld_2_switch +_08119538: .4byte CB2_ReturnToField _0811953C: adds r0, r6, 0 adds r0, 0x16 @@ -7354,10 +7354,10 @@ _081197CA: lsls r0, 22 lsrs r0, 22 strh r0, [r2] - ldr r1, _08119834 @ =gUnknown_3005020 + ldr r1, _08119834 @ =gFieldCallback ldr r0, _08119838 @ =sub_807DCE4 str r0, [r1] - ldr r1, _0811983C @ =c2_exit_to_overworld_2_switch + ldr r1, _0811983C @ =CB2_ReturnToField movs r0, 0x9 bl sub_81277F4 adds r0, r6, 0 @@ -7371,9 +7371,9 @@ _08119824: .4byte gUnknown_203B06C _08119828: .4byte gUnknown_203B064 _0811982C: .4byte gUnknown_203B06A _08119830: .4byte gUnknown_203B068 -_08119834: .4byte gUnknown_3005020 +_08119834: .4byte gFieldCallback _08119838: .4byte sub_807DCE4 -_0811983C: .4byte c2_exit_to_overworld_2_switch +_0811983C: .4byte CB2_ReturnToField _08119840: ldr r1, _08119890 @ =gUnknown_203B058 movs r0, 0x44 @@ -7477,7 +7477,7 @@ _08119900: .4byte gSpecialVar_Result sub_8119904: @ 8119904 push {r4,r5,lr} adds r2, r0, 0 - ldr r3, _08119940 @ =gUnknown_3003ED0 + ldr r3, _08119940 @ =gRecvCmds ldrh r5, [r3, 0x12] adds r4, r5, 0 cmp r4, 0 @@ -7506,7 +7506,7 @@ _08119938: pop {r0} bx r0 .align 2, 0 -_08119940: .4byte gUnknown_3003ED0 +_08119940: .4byte gRecvCmds thumb_func_end sub_8119904 thumb_func_start sub_8119944 @@ -8485,7 +8485,7 @@ sub_811A0B4: @ 811A0B4 bl sub_80F6E9C movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r0, _0811A0DC @ =gStringVar4 adds r1, r4, 0 bl StringExpandPlaceholders @@ -8531,7 +8531,7 @@ _0811A10A: bl sub_80F6E9C movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r0, _0811A12C @ =gStringVar4 adds r1, r5, 0 bl StringExpandPlaceholders @@ -8593,7 +8593,7 @@ _0811A174: negs r0, r0 b _0811A1A4 _0811A186: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 movs r2, 0x80 @@ -8624,7 +8624,7 @@ sub_811A1AC: @ 811A1AC lsrs r4, 24 adds r0, r4, 0 movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame adds r0, r4, 0 movs r1, 0xFF bl FillWindowPixelBuffer @@ -8659,7 +8659,7 @@ sub_811A1FC: @ 811A1FC lsrs r4, 24 adds r0, r4, 0 movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame adds r0, r4, 0 bl RemoveWindow pop {r4} @@ -8688,8 +8688,8 @@ _0811A234: strb r0, [r5] ldrb r0, [r5] movs r1, 0 - bl sub_80F6F1C - ldr r0, _0811A270 @ =gUnknown_3005E70 + bl DrawStdWindowFrame + ldr r0, _0811A270 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, [sp, 0x1C] ldm r1!, {r3,r4,r6} @@ -8711,7 +8711,7 @@ _0811A234: strb r0, [r7] b _0811A2DA .align 2, 0 -_0811A270: .4byte gUnknown_3005E70 +_0811A270: .4byte gMultiuseListMenuTemplate _0811A274: mov r3, r9 ldrb r0, [r3] @@ -8726,10 +8726,10 @@ _0811A274: ldrb r0, [r4] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r5] movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r5] bl RemoveWindow movs r0, 0 @@ -8747,10 +8747,10 @@ _0811A2B0: ldrb r0, [r6] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r5] movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r5] bl RemoveWindow strb r4, [r7] @@ -8794,8 +8794,8 @@ _0811A308: strb r0, [r4] ldrb r0, [r4] movs r1, 0 - bl sub_80F6F1C - ldr r0, _0811A354 @ =gUnknown_3005E70 + bl DrawStdWindowFrame + ldr r0, _0811A354 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, [sp, 0x20] ldm r1!, {r3,r6,r7} @@ -8818,7 +8818,7 @@ _0811A308: b _0811A3E6 .align 2, 0 _0811A350: .4byte gUnknown_8456F1C -_0811A354: .4byte gUnknown_3005E70 +_0811A354: .4byte gMultiuseListMenuTemplate _0811A358: ldrb r0, [r5] bl ListMenuHandleInput @@ -8842,10 +8842,10 @@ _0811A37E: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4] movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r4] bl RemoveWindow ldrb r0, [r7] @@ -8867,10 +8867,10 @@ _0811A3AC: ldrb r0, [r5] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r4] movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r4] bl RemoveWindow ldrb r0, [r7] @@ -9999,7 +9999,7 @@ _0811AC3C: adds r0, r6, 0 movs r2, 0x44 adds r3, r5, 0 - bl sub_8107D68 + bl blit_move_info_icon movs r0, 0xB mov r2, r8 muls r2, r0 @@ -10578,7 +10578,7 @@ _0811B0A0: .4byte gUnknown_8457E0C sub_811B0A4: @ 811B0A4 push {lr} adds r2, r0, 0 - ldr r0, _0811B0C4 @ =gUnknown_3003ED0 + ldr r0, _0811B0C4 @ =gRecvCmds ldrh r1, [r0, 0x2] cmp r1, 0 beq _0811B0C8 @@ -10593,7 +10593,7 @@ _0811B0B8: movs r0, 0x1 b _0811B0CA .align 2, 0 -_0811B0C4: .4byte gUnknown_3003ED0 +_0811B0C4: .4byte gRecvCmds _0811B0C8: movs r0, 0 _0811B0CA: @@ -11969,7 +11969,7 @@ _0811BADA: str r0, [sp, 0x4] movs r0, 0x19 adds r1, r4, 0 - bl sub_805E9F8 + bl sprite_new ldr r1, [sp, 0x8] adds r5, r1, r5 strb r0, [r5] @@ -12766,7 +12766,7 @@ sub_811C0E0: @ 811C0E0 movs r1, 0x3 adds r2, r6, 0 ldr r3, [sp, 0x14] - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x18 pop {r3-r5} mov r8, r3 @@ -12797,7 +12797,7 @@ _0811C168: movs r0, 0 movs r1, 0x1 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter str r5, [sp] movs r0, 0 adds r1, r6, 0 @@ -12966,7 +12966,7 @@ _0811C300: movs r0, 0 movs r1, 0x1 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal bl sub_80F77B8 ldr r0, _0811C35C @ =sub_811C1B4 bl SetVBlankCallback @@ -13151,13 +13151,13 @@ _0811C4C0: bl sub_811C150 cmp r0, 0 beq _0811C516 - ldr r0, _0811C4E0 @ =c2_exit_to_overworld_2_switch + ldr r0, _0811C4E0 @ =CB2_ReturnToField bl SetMainCallback2 b _0811C516 .align 2, 0 _0811C4D8: .4byte gUnknown_203B08C _0811C4DC: .4byte gUnknown_841E58D -_0811C4E0: .4byte c2_exit_to_overworld_2_switch +_0811C4E0: .4byte CB2_ReturnToField _0811C4E4: ldr r0, _0811C4FC @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] @@ -13181,7 +13181,7 @@ _0811C500: bl sub_811C150 cmp r0, 0 beq _0811C516 - ldr r0, _0811C53C @ =c2_exit_to_overworld_2_switch + ldr r0, _0811C53C @ =CB2_ReturnToField bl SetMainCallback2 _0811C516: bl RunTasks @@ -13197,7 +13197,7 @@ _0811C52A: .align 2, 0 _0811C534: .4byte gUnknown_203B08C _0811C538: .4byte gUnknown_841E572 -_0811C53C: .4byte c2_exit_to_overworld_2_switch +_0811C53C: .4byte CB2_ReturnToField thumb_func_end sub_811C1C8 .align 2, 0 @ Don't pad with nop. diff --git a/asm/link_rfu_4.s b/asm/link_rfu_4.s deleted file mode 100644 index dd9c498a4..000000000 --- a/asm/link_rfu_4.s +++ /dev/null @@ -1,2316 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814240C -sub_814240C: @ 814240C - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - pop {r0} - bx r0 - thumb_func_end sub_814240C - - thumb_func_start sub_8142420 -sub_8142420: @ 8142420 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r8, r0 - movs r0, 0x20 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x3 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - movs r4, 0x1 - movs r1, 0x11 - mov r10, r1 -_0814244E: - movs r7, 0 - mov r0, r8 - adds r0, 0x2 - movs r1, 0x1 - add r1, r8 - mov r9, r1 - lsls r5, r0, 24 - movs r6, 0 -_0814245E: - mov r1, r8 - ands r1, r4 - adds r0, r7, 0 - ands r0, r4 - cmp r1, r0 - beq _08142480 - lsrs r2, r6, 24 - str r4, [sp] - str r4, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - lsrs r3, r5, 24 - bl FillBgTilemapBufferRect - b _08142494 -_08142480: - lsrs r2, r6, 24 - str r4, [sp] - str r4, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x2 - lsrs r3, r5, 24 - bl FillBgTilemapBufferRect -_08142494: - movs r0, 0x80 - lsls r0, 17 - adds r6, r0 - adds r7, 0x1 - cmp r7, 0x1F - ble _0814245E - mov r8, r9 - mov r1, r8 - cmp r1, 0x11 - ble _0814244E - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8142420 - - thumb_func_start sub_81424B8 -sub_81424B8: @ 81424B8 - push {lr} - sub sp, 0xC - cmp r0, 0 - beq _081424C6 - cmp r0, 0x1 - beq _081424DE - b _081424F6 -_081424C6: - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - b _081424F6 -_081424DE: - movs r0, 0x20 - str r0, [sp] - movs r0, 0x1E - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect -_081424F6: - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_81424B8 - - thumb_func_start sub_8142504 -sub_8142504: @ 8142504 - push {r4,lr} - sub sp, 0x14 - adds r1, r0, 0 - ldr r4, _08142558 @ =gStringVar4 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r1, 0 - str r1, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - ldr r0, _0814255C @ =gUnknown_8466EF0 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142558: .4byte gStringVar4 -_0814255C: .4byte gUnknown_8466EF0 - thumb_func_end sub_8142504 - - thumb_func_start sub_8142560 -sub_8142560: @ 8142560 - push {lr} - movs r0, 0x1 - bl rbox_fill_rectangle - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0x1 - movs r1, 0x1 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_8142560 - - thumb_func_start mevent_0814257C -mevent_0814257C: @ 814257C - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r0, r1, 0 - ldrb r2, [r4] - cmp r2, 0x1 - beq _081425A4 - cmp r2, 0x1 - bgt _08142594 - cmp r2, 0 - beq _0814259E - b _08142604 -_08142594: - cmp r2, 0x2 - beq _081425D8 - cmp r2, 0xFF - beq _08142600 - b _08142604 -_0814259E: - bl sub_8142504 - b _081425C8 -_081425A4: - movs r0, 0 - str r0, [sp] - ldr r0, _081425D0 @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - ldr r0, _081425D4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08142604 -_081425C8: - ldrb r0, [r4] - adds r0, 0x1 - b _08142602 - .align 2, 0 -_081425D0: .4byte gUnknown_203F3B0 -_081425D4: .4byte gMain -_081425D8: - movs r0, 0x1 - str r0, [sp] - ldr r0, _081425FC @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - movs r0, 0 - strb r0, [r4] - bl sub_8142560 - movs r0, 0x1 - b _08142606 - .align 2, 0 -_081425FC: .4byte gUnknown_203F3B0 -_08142600: - movs r0, 0x2 -_08142602: - strb r0, [r4] -_08142604: - movs r0, 0 -_08142606: - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end mevent_0814257C - - thumb_func_start sub_8142610 -sub_8142610: @ 8142610 - push {lr} - sub sp, 0xC - movs r0, 0 - str r0, [sp] - ldr r0, _08142634 @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08142634: .4byte gUnknown_203F3B0 - thumb_func_end sub_8142610 - - thumb_func_start sub_8142638 -sub_8142638: @ 8142638 - push {lr} - sub sp, 0xC - movs r0, 0x1 - str r0, [sp] - ldr r0, _0814265C @ =gUnknown_203F3B0 - str r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0xD0 - movs r2, 0x14 - movs r3, 0x1 - bl DrawDownArrow - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_0814265C: .4byte gUnknown_203F3B0 - thumb_func_end sub_8142638 - - thumb_func_start sub_8142660 -sub_8142660: @ 8142660 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _08142670 - cmp r0, 0x1 - beq _0814268C - b _08142698 -_08142670: - bl sub_8142610 - ldr r0, _08142688 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08142698 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08142698 - .align 2, 0 -_08142688: .4byte gMain -_0814268C: - bl sub_8142638 - movs r0, 0 - strb r0, [r4] - movs r0, 0x1 - b _0814269A -_08142698: - movs r0, 0 -_0814269A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8142660 - - thumb_func_start sub_81426A0 -sub_81426A0: @ 81426A0 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0 - bne _081426B0 - adds r0, r1, 0 - bl sub_8142504 -_081426B0: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x78 - bhi _081426C2 - movs r0, 0 - b _081426CC -_081426C2: - movs r0, 0 - strb r0, [r4] - bl sub_8142560 - movs r0, 0x1 -_081426CC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81426A0 - - thumb_func_start sub_81426D4 -sub_81426D4: @ 81426D4 - push {r4-r7,lr} - sub sp, 0x24 - lsls r2, 24 - add r1, sp, 0x4 - ldr r0, _081426F8 @ =gUnknown_8466E00 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, _081426FC @ =gUnknown_8466DA8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x1C] - str r1, [sp, 0x20] - cmp r2, 0 - bne _08142704 - ldr r0, _08142700 @ =gUnknown_8466DD0 - b _08142706 - .align 2, 0 -_081426F8: .4byte gUnknown_8466E00 -_081426FC: .4byte gUnknown_8466DA8 -_08142700: .4byte gUnknown_8466DD0 -_08142704: - ldr r0, _08142794 @ =gUnknown_8466DE8 -_08142706: - str r0, [sp, 0x4] - movs r6, 0 - movs r4, 0 - add r0, sp, 0x4 - add r7, sp, 0x1C - ldrh r0, [r0, 0xC] - cmp r6, r0 - bcs _0814273A - add r5, sp, 0x4 -_08142718: - ldr r1, [sp, 0x4] - lsls r0, r4, 3 - adds r0, r1 - ldr r1, [r0] - ldrb r2, [r5, 0x16] - lsls r2, 29 - lsrs r2, 29 - movs r0, 0x2 - bl GetStringWidth - cmp r0, r6 - bls _08142732 - adds r6, r0, 0 -_08142732: - adds r4, 0x1 - ldrh r0, [r5, 0xC] - cmp r4, r0 - bcc _08142718 -_0814273A: - adds r2, r6, 0 - adds r2, 0x9 - lsrs r2, 3 - adds r2, 0x2 - movs r0, 0x2 - negs r0, r0 - ands r2, r0 - lsls r3, r2, 24 - ldr r0, _08142798 @ =0x00ffffff - ldr r1, [sp, 0x1C] - ands r1, r0 - orrs r1, r3 - movs r0, 0x1E - subs r0, r2 - lsls r0, 23 - lsrs r0, 16 - ldr r2, _0814279C @ =0xffff00ff - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x1C] - movs r0, 0xE0 - str r0, [sp] - adds r0, r7, 0 - add r1, sp, 0x4 - movs r2, 0x1 - movs r3, 0xA - bl DoMysteryGiftListMenu - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _0814278A - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x2 - movs r1, 0x1 - bl CopyWindowToVram -_0814278A: - adds r0, r4, 0 - add sp, 0x24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08142794: .4byte gUnknown_8466DE8 -_08142798: .4byte 0x00ffffff -_0814279C: .4byte 0xffff00ff - thumb_func_end sub_81426D4 - - thumb_func_start sub_81427A0 -sub_81427A0: @ 81427A0 - push {r4-r6,lr} - sub sp, 0x1C - adds r5, r0, 0 - adds r4, r1, 0 - adds r1, r3, 0 - lsls r2, 24 - lsrs r6, r2, 24 - ldrb r0, [r5] - cmp r0, 0x1 - beq _08142834 - cmp r0, 0x1 - bgt _081427BE - cmp r0, 0 - beq _081427CA - b _081428E6 -_081427BE: - cmp r0, 0x2 - beq _0814288C - cmp r0, 0xFF - bne _081427C8 - b _081428C2 -_081427C8: - b _081428E6 -_081427CA: - ldr r0, _081427D8 @ =gStringVar4 - bl StringExpandPlaceholders - cmp r6, 0 - bne _081427E0 - ldr r0, _081427DC @ =gUnknown_8466D90 - b _081427E2 - .align 2, 0 -_081427D8: .4byte gStringVar4 -_081427DC: .4byte gUnknown_8466D90 -_081427E0: - ldr r0, _08142828 @ =gUnknown_8466D98 -_081427E2: - bl AddWindow - strh r0, [r4] - ldrb r0, [r4] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4] - movs r2, 0 - str r2, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - ldr r1, _0814282C @ =gUnknown_8466EF0 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r1, _08142830 @ =gStringVar4 - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - ldrb r0, [r4] - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - ldrb r0, [r4] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r4] - bl PutWindowTilemap - b _0814287E - .align 2, 0 -_08142828: .4byte gUnknown_8466D98 -_0814282C: .4byte gUnknown_8466EF0 -_08142830: .4byte gStringVar4 -_08142834: - ldr r0, _08142850 @ =gUnknown_8466DB0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x14] - str r1, [sp, 0x18] - cmp r6, 0 - bne _08142858 - ldr r0, _08142854 @ =0xff00ffff - ldr r1, [sp, 0x14] - ands r1, r0 - movs r0, 0x90 - lsls r0, 12 - b _08142862 - .align 2, 0 -_08142850: .4byte gUnknown_8466DB0 -_08142854: .4byte 0xff00ffff -_08142858: - ldr r0, _08142888 @ =0xff00ffff - ldr r1, [sp, 0x14] - ands r1, r0 - movs r0, 0xF0 - lsls r0, 12 -_08142862: - orrs r1, r0 - str r1, [sp, 0x14] - movs r0, 0xA - str r0, [sp] - movs r0, 0xE - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - add r0, sp, 0x14 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl sub_810FF60 -_0814287E: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _081428E6 - .align 2, 0 -_08142888: .4byte 0xff00ffff -_0814288C: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r6, r0, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x2 - bhi _081428E6 - movs r0, 0 - strb r0, [r5] - ldrb r0, [r4] - bl rbox_fill_rectangle - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - adds r0, r6, 0 - b _081428EA -_081428C2: - movs r0, 0 - strb r0, [r5] - ldrb r0, [r4] - bl rbox_fill_rectangle - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0x1 - negs r0, r0 - b _081428EA -_081428E6: - movs r0, 0x2 - negs r0, r0 -_081428EA: - add sp, 0x1C - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81427A0 - - thumb_func_start sub_81428F4 -sub_81428F4: @ 81428F4 - push {r4-r6,lr} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08142994 - cmp r0, 0x1 - bgt _0814290C - cmp r0, 0 - beq _08142914 - b _08142A38 -_0814290C: - cmp r0, 0xFF - bne _08142912 - b _08142A14 -_08142912: - b _08142A38 -_08142914: - cmp r2, 0 - bne _0814292C - ldr r0, _08142924 @ =gStringVar4 - ldr r1, _08142928 @ =gUnknown_841EA86 - bl StringExpandPlaceholders - b _08142934 - .align 2, 0 -_08142924: .4byte gStringVar4 -_08142928: .4byte gUnknown_841EA86 -_0814292C: - ldr r0, _08142984 @ =gStringVar4 - ldr r1, _08142988 @ =gUnknown_841EAB7 - bl StringExpandPlaceholders -_08142934: - ldr r0, _0814298C @ =gUnknown_8466DA0 - bl AddWindow - strh r0, [r5] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5] - movs r2, 0 - str r2, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - ldr r1, _08142990 @ =gUnknown_8466EF0 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r1, _08142984 @ =gStringVar4 - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - ldrb r0, [r5] - movs r1, 0x1 - movs r2, 0xF - bl sub_8150048 - ldrb r0, [r5] - movs r1, 0x2 - bl CopyWindowToVram - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _08142A38 - .align 2, 0 -_08142984: .4byte gStringVar4 -_08142988: .4byte gUnknown_841EAB7 -_0814298C: .4byte gUnknown_8466DA0 -_08142990: .4byte gUnknown_8466EF0 -_08142994: - cmp r3, 0 - beq _081429BC - cmp r2, 0 - bne _081429AC - ldr r0, _081429A4 @ =gUnknown_8466DC0 - ldr r1, _081429A8 @ =gUnknown_8466E90 - b _081429D4 - .align 2, 0 -_081429A4: .4byte gUnknown_8466DC0 -_081429A8: .4byte gUnknown_8466E90 -_081429AC: - ldr r0, _081429B4 @ =gUnknown_8466DC8 - ldr r1, _081429B8 @ =gUnknown_8466EC0 - b _081429D4 - .align 2, 0 -_081429B4: .4byte gUnknown_8466DC8 -_081429B8: .4byte gUnknown_8466EC0 -_081429BC: - cmp r2, 0 - bne _081429D0 - ldr r0, _081429C8 @ =gUnknown_8466DB8 - ldr r1, _081429CC @ =gUnknown_8466E78 - b _081429D4 - .align 2, 0 -_081429C8: .4byte gUnknown_8466DB8 -_081429CC: .4byte gUnknown_8466E78 -_081429D0: - ldr r0, _08142A0C @ =gUnknown_8466DC0 - ldr r1, _08142A10 @ =gUnknown_8466EA8 -_081429D4: - movs r2, 0xE0 - str r2, [sp] - movs r2, 0x1 - movs r3, 0xA - bl DoMysteryGiftListMenu - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _08142A38 - movs r0, 0 - strb r0, [r6] - ldrb r0, [r5] - bl rbox_fill_rectangle - ldrb r0, [r5] - bl ClearWindowTilemap - ldrb r0, [r5] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r5] - bl RemoveWindow - adds r0, r4, 0 - b _08142A3C - .align 2, 0 -_08142A0C: .4byte gUnknown_8466DC0 -_08142A10: .4byte gUnknown_8466EA8 -_08142A14: - movs r0, 0 - strb r0, [r6] - ldrb r0, [r5] - bl rbox_fill_rectangle - ldrb r0, [r5] - bl ClearWindowTilemap - ldrb r0, [r5] - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r5] - bl RemoveWindow - movs r0, 0x2 - negs r0, r0 - b _08142A3C -_08142A38: - movs r0, 0x1 - negs r0, r0 -_08142A3C: - add sp, 0x14 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81428F4 - - thumb_func_start sub_8142A44 -sub_8142A44: @ 8142A44 - push {lr} - cmp r0, 0 - beq _08142A50 - bl sub_8143E1C - b _08142A54 -_08142A50: - bl sub_8143FC8 -_08142A54: - pop {r1} - bx r1 - thumb_func_end sub_8142A44 - - thumb_func_start sub_8142A58 -sub_8142A58: @ 8142A58 - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r0, [r5] - cmp r0, 0 - beq _08142A68 - cmp r0, 0x1 - beq _08142A90 - b _08142AAC -_08142A68: - cmp r1, 0 - bne _08142A80 - bl sav1_get_mevent_buffer_1 - adds r4, r0, 0 - bl sav1_get_mevent_buffer_2 - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_8145654 - b _08142A88 -_08142A80: - bl sub_8143D58 - bl sub_8146288 -_08142A88: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _08142AAC -_08142A90: - cmp r1, 0 - bne _08142A9E - bl sub_814571C -_08142A98: - cmp r0, 0 - bne _08142AA4 - b _08142AAC -_08142A9E: - bl sub_8146318 - b _08142A98 -_08142AA4: - movs r0, 0 - strb r0, [r5] - movs r0, 0x1 - b _08142AAE -_08142AAC: - movs r0, 0 -_08142AAE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8142A58 - - thumb_func_start sub_8142AB4 -sub_8142AB4: @ 8142AB4 - push {lr} - cmp r0, 0 - bne _08142AC0 - bl sub_8143F38 - b _08142AC4 -_08142AC0: - bl sub_8143DBC -_08142AC4: - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8142AB4 - - thumb_func_start sub_8142ACC -sub_8142ACC: @ 8142ACC - push {lr} - cmp r0, 0 - bne _08142AE2 - adds r0, r1, 0 - bl sub_814593C - cmp r0, 0 - beq _08142AEC - bl sub_81456F0 - b _08142AF4 -_08142AE2: - adds r0, r1, 0 - bl sub_8146604 - cmp r0, 0 - bne _08142AF0 -_08142AEC: - movs r0, 0 - b _08142AF6 -_08142AF0: - bl sub_81462EC -_08142AF4: - movs r0, 0x1 -_08142AF6: - pop {r1} - bx r1 - thumb_func_end sub_8142ACC - - thumb_func_start sub_8142AFC -sub_8142AFC: @ 8142AFC - push {lr} - cmp r2, 0 - beq _08142B0C - ldr r3, _08142B08 @ =gUnknown_841ECD3 - b _08142B0E - .align 2, 0 -_08142B08: .4byte gUnknown_841ECD3 -_08142B0C: - ldr r3, _08142B1C @ =gUnknown_841EC99 -_08142B0E: - movs r2, 0x1 - bl sub_81427A0 - lsls r0, 24 - asrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08142B1C: .4byte gUnknown_841EC99 - thumb_func_end sub_8142AFC - - thumb_func_start mevent_message_was_thrown_away -mevent_message_was_thrown_away: @ 8142B20 - push {lr} - cmp r1, 0 - beq _08142B30 - ldr r1, _08142B2C @ =gUnknown_841ED9C - b _08142B32 - .align 2, 0 -_08142B2C: .4byte gUnknown_841ED9C -_08142B30: - ldr r1, _08142B3C @ =gUnknown_841ED7B -_08142B32: - bl mevent_0814257C - pop {r1} - bx r1 - .align 2, 0 -_08142B3C: .4byte gUnknown_841ED7B - thumb_func_end mevent_message_was_thrown_away - - thumb_func_start mevent_save_game -mevent_save_game: @ 8142B40 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0x4 - bhi _08142BB0 - lsls r0, 2 - ldr r1, _08142B54 @ =_08142B58 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142B54: .4byte _08142B58 - .align 2, 0 -_08142B58: - .4byte _08142B6C - .4byte _08142B78 - .4byte _08142B80 - .4byte _08142B8C - .4byte _08142BA4 -_08142B6C: - ldr r0, _08142B74 @ =gUnknown_841ED2F - bl sub_8142504 - b _08142B98 - .align 2, 0 -_08142B74: .4byte gUnknown_841ED2F -_08142B78: - movs r0, 0 - bl TrySavingData - b _08142B98 -_08142B80: - ldr r0, _08142B88 @ =gUnknown_841ED50 - bl sub_8142504 - b _08142B98 - .align 2, 0 -_08142B88: .4byte gUnknown_841ED50 -_08142B8C: - ldr r0, _08142BA0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08142BB0 -_08142B98: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08142BB0 - .align 2, 0 -_08142BA0: .4byte gMain -_08142BA4: - movs r0, 0 - strb r0, [r4] - bl sub_8142560 - movs r0, 0x1 - b _08142BB2 -_08142BB0: - movs r0, 0 -_08142BB2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end mevent_save_game - - thumb_func_start mevent_message -mevent_message: @ 8142BB8 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r2, 0 - str r2, [r4] - cmp r3, 0xE - bls _08142BCE - b _08142CE0 -_08142BCE: - lsls r0, r3, 2 - ldr r1, _08142BD8 @ =_08142BDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142BD8: .4byte _08142BDC - .align 2, 0 -_08142BDC: - .4byte _08142C18 - .4byte _08142C24 - .4byte _08142C30 - .4byte _08142C48 - .4byte _08142C60 - .4byte _08142C6C - .4byte _08142C78 - .4byte _08142C84 - .4byte _08142C90 - .4byte _08142C9C - .4byte _08142CA8 - .4byte _08142CC0 - .4byte _08142CCC - .4byte _08142CD8 - .4byte _08142CDC -_08142C18: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C20 @ =gUnknown_841EA6F - b _08142CE0 - .align 2, 0 -_08142C20: .4byte gUnknown_841EA6F -_08142C24: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C2C @ =gUnknown_841E9D3 - b _08142CE0 - .align 2, 0 -_08142C2C: .4byte gUnknown_841E9D3 -_08142C30: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142C40 @ =gUnknown_841E866 - cmp r5, 0 - bne _08142CE0 - ldr r2, _08142C44 @ =gUnknown_841E8BD - b _08142CE0 - .align 2, 0 -_08142C40: .4byte gUnknown_841E866 -_08142C44: .4byte gUnknown_841E8BD -_08142C48: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142C58 @ =gUnknown_841E88F - cmp r5, 0 - bne _08142CE0 - ldr r2, _08142C5C @ =gUnknown_841E8E2 - b _08142CE0 - .align 2, 0 -_08142C58: .4byte gUnknown_841E88F -_08142C5C: .4byte gUnknown_841E8E2 -_08142C60: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142C68 @ =gUnknown_841E90C - b _08142CE0 - .align 2, 0 -_08142C68: .4byte gUnknown_841E90C -_08142C6C: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C74 @ =gUnknown_841E946 - b _08142CE0 - .align 2, 0 -_08142C74: .4byte gUnknown_841E946 -_08142C78: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C80 @ =gUnknown_841E98F - b _08142CE0 - .align 2, 0 -_08142C80: .4byte gUnknown_841E98F -_08142C84: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C8C @ =gUnknown_841E968 - b _08142CE0 - .align 2, 0 -_08142C8C: .4byte gUnknown_841E968 -_08142C90: - movs r0, 0 - str r0, [r4] - ldr r2, _08142C98 @ =gUnknown_841E9AB - b _08142CE0 - .align 2, 0 -_08142C98: .4byte gUnknown_841E9AB -_08142C9C: - movs r0, 0 - str r0, [r4] - ldr r2, _08142CA4 @ =gUnknown_841E7D1 - b _08142CE0 - .align 2, 0 -_08142CA4: .4byte gUnknown_841E7D1 -_08142CA8: - movs r0, 0 - str r0, [r4] - ldr r2, _08142CB8 @ =gUnknown_841EA3F - cmp r6, 0 - bne _08142CE0 - ldr r2, _08142CBC @ =gUnknown_841EA0D - b _08142CE0 - .align 2, 0 -_08142CB8: .4byte gUnknown_841EA3F -_08142CBC: .4byte gUnknown_841EA0D -_08142CC0: - movs r0, 0 - str r0, [r4] - ldr r2, _08142CC8 @ =gUnknown_841E7BC - b _08142CE0 - .align 2, 0 -_08142CC8: .4byte gUnknown_841E7BC -_08142CCC: - movs r0, 0x1 - str r0, [r4] - ldr r2, _08142CD4 @ =gUnknown_841E92B - b _08142CE0 - .align 2, 0 -_08142CD4: .4byte gUnknown_841E92B -_08142CD8: - movs r0, 0x1 - b _08142CDE -_08142CDC: - movs r0, 0 -_08142CDE: - str r0, [r4] -_08142CE0: - adds r0, r2, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end mevent_message - - thumb_func_start mevent_08142CE8 -mevent_08142CE8: @ 8142CE8 - push {r4-r6,lr} - adds r6, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - ldrb r4, [r6] - cmp r4, 0x1 - beq _08142D1A - cmp r4, 0x1 - bgt _08142D00 - cmp r4, 0 - beq _08142D06 - b _08142D46 -_08142D00: - cmp r4, 0x2 - beq _08142D30 - b _08142D46 -_08142D06: - cmp r0, 0 - beq _08142D0E - bl sub_8142504 -_08142D0E: - movs r0, 0x81 - lsls r0, 1 - bl PlayFanfare - strh r4, [r5] - b _08142D28 -_08142D1A: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF0 - bls _08142D46 -_08142D28: - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _08142D46 -_08142D30: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08142D46 - movs r0, 0 - strb r0, [r6] - bl sub_8142560 - movs r0, 0x1 - b _08142D48 -_08142D46: - movs r0, 0 -_08142D48: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end mevent_08142CE8 - - thumb_func_start mevent_message_stamp_card_etc_send_status -mevent_message_stamp_card_etc_send_status: @ 8142D50 - push {r4,lr} - adds r3, r0, 0 - ldr r1, _08142D6C @ =gUnknown_841E7BC - movs r0, 0 - str r0, [r3] - adds r4, r1, 0 - cmp r2, 0xE - bhi _08142E12 - lsls r0, r2, 2 - ldr r1, _08142D70 @ =_08142D74 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142D6C: .4byte gUnknown_841E7BC -_08142D70: .4byte _08142D74 - .align 2, 0 -_08142D74: - .4byte _08142DB0 - .4byte _08142DB8 - .4byte _08142DC0 - .4byte _08142DC8 - .4byte _08142DD4 - .4byte _08142DDC - .4byte _08142DE4 - .4byte _08142DEC - .4byte _08142DF4 - .4byte _08142DFC - .4byte _08142E10 - .4byte _08142E04 - .4byte _08142E08 - .4byte _08142E08 - .4byte _08142E10 -_08142DB0: - ldr r1, _08142DB4 @ =gUnknown_841EA6F - b _08142E12 - .align 2, 0 -_08142DB4: .4byte gUnknown_841EA6F -_08142DB8: - ldr r1, _08142DBC @ =gUnknown_841E9D3 - b _08142E12 - .align 2, 0 -_08142DBC: .4byte gUnknown_841E9D3 -_08142DC0: - ldr r1, _08142DC4 @ =gUnknown_841EB20 - b _08142DCA - .align 2, 0 -_08142DC4: .4byte gUnknown_841EB20 -_08142DC8: - ldr r1, _08142DD0 @ =gUnknown_841EB46 -_08142DCA: - movs r0, 0x1 - str r0, [r3] - b _08142E12 - .align 2, 0 -_08142DD0: .4byte gUnknown_841EB46 -_08142DD4: - ldr r1, _08142DD8 @ =gUnknown_841EB71 - b _08142E12 - .align 2, 0 -_08142DD8: .4byte gUnknown_841EB71 -_08142DDC: - ldr r1, _08142DE0 @ =gUnknown_841EBAA - b _08142E12 - .align 2, 0 -_08142DE0: .4byte gUnknown_841EBAA -_08142DE4: - ldr r1, _08142DE8 @ =gUnknown_841EC12 - b _08142E12 - .align 2, 0 -_08142DE8: .4byte gUnknown_841EC12 -_08142DEC: - ldr r1, _08142DF0 @ =gUnknown_841EBDE - b _08142E12 - .align 2, 0 -_08142DF0: .4byte gUnknown_841EBDE -_08142DF4: - ldr r1, _08142DF8 @ =gUnknown_841E9AB - b _08142E12 - .align 2, 0 -_08142DF8: .4byte gUnknown_841E9AB -_08142DFC: - ldr r1, _08142E00 @ =gUnknown_841EC40 - b _08142E12 - .align 2, 0 -_08142E00: .4byte gUnknown_841EC40 -_08142E04: - adds r1, r4, 0 - b _08142E12 -_08142E08: - ldr r1, _08142E0C @ =gUnknown_841EB8E - b _08142E12 - .align 2, 0 -_08142E0C: .4byte gUnknown_841EB8E -_08142E10: - ldr r1, _08142E1C @ =gUnknown_841EC6A -_08142E12: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08142E1C: .4byte gUnknown_841EC6A - thumb_func_end mevent_message_stamp_card_etc_send_status - - thumb_func_start sub_8142E20 -sub_8142E20: @ 8142E20 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - bl mevent_message_stamp_card_etc_send_status - adds r1, r0, 0 - ldr r0, [sp] - cmp r0, 0 - bne _08142E46 - adds r0, r4, 0 - bl mevent_0814257C - b _08142E4E -_08142E46: - adds r0, r4, 0 - adds r2, r5, 0 - bl mevent_08142CE8 -_08142E4E: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8142E20 - - thumb_func_start task_add_00_mystery_gift -task_add_00_mystery_gift: @ 8142E58 - push {r4,lr} - ldr r0, _08142E98 @ =sub_8142EA0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08142E9C @ =gTasks+0x8 - adds r4, r0 - movs r0, 0 - strb r0, [r4, 0x8] - strb r0, [r4, 0x9] - strb r0, [r4, 0xA] - strb r0, [r4, 0xB] - strb r0, [r4, 0xC] - strb r0, [r4, 0xD] - movs r1, 0 - strh r0, [r4] - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - strh r0, [r4, 0x6] - strb r1, [r4, 0xE] - movs r0, 0x40 - bl AllocZeroed - str r0, [r4, 0x10] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142E98: .4byte sub_8142EA0 -_08142E9C: .4byte gTasks+0x8 - thumb_func_end task_add_00_mystery_gift - - thumb_func_start sub_8142EA0 -sub_8142EA0: @ 8142EA0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08142EC4 @ =gTasks+0x8 - adds r5, r0, r1 - ldrb r0, [r5, 0x8] - cmp r0, 0x25 - bls _08142EBA - b _081435C6 -_08142EBA: - lsls r0, 2 - ldr r1, _08142EC8 @ =_08142ECC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08142EC4: .4byte gTasks+0x8 -_08142EC8: .4byte _08142ECC - .align 2, 0 -_08142ECC: - .4byte _08142F64 - .4byte _08142F6A - .4byte _08142FAC - .4byte _08142FE4 - .4byte _08143008 - .4byte _08143058 - .4byte _081430B8 - .4byte _081430EC - .4byte _081430FC - .4byte _08143174 - .4byte _08143198 - .4byte _081431B0 - .4byte _081431E0 - .4byte _0814321C - .4byte _08143232 - .4byte _08143264 - .4byte _0814358C - .4byte _081432C2 - .4byte _081432CC - .4byte _081435C6 - .4byte _081432DE - .4byte _0814332C - .4byte _081433A2 - .4byte _081433D2 - .4byte _08143408 - .4byte _08143422 - .4byte _08143436 - .4byte _08143442 - .4byte _08143456 - .4byte _0814346A - .4byte _0814349C - .4byte _081434D0 - .4byte _08143514 - .4byte _08143528 - .4byte _08143544 - .4byte _08143558 - .4byte _0814358C - .4byte _081435AC -_08142F64: - movs r0, 0x1 - strb r0, [r5, 0x8] - b _081435C6 -_08142F6A: - adds r0, r5, 0 - adds r0, 0x9 - adds r1, r5, 0 - movs r2, 0 - bl sub_81426D4 - adds r1, r0, 0 - cmp r1, 0x1 - beq _08142F94 - cmp r1, 0x1 - bcc _08142F8A - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08142FA6 - b _081435C6 -_08142F8A: - movs r0, 0 - strb r0, [r5, 0xC] - bl sub_8143FC8 - b _08142F9A -_08142F94: - strb r1, [r5, 0xC] - bl sub_8143E1C -_08142F9A: - cmp r0, 0x1 - bne _08142FA0 - b _081434C4 -_08142FA0: - movs r0, 0x2 - strb r0, [r5, 0x8] - b _081435C6 -_08142FA6: - movs r0, 0x25 - strb r0, [r5, 0x8] - b _081435C6 -_08142FAC: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08142FC0 - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _08142FBC @ =gUnknown_841E6A1 - b _08142FC6 - .align 2, 0 -_08142FBC: .4byte gUnknown_841E6A1 -_08142FC0: - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _08142FE0 @ =gUnknown_841E6DC -_08142FC6: - bl mevent_0814257C - cmp r0, 0 - bne _08142FD0 - b _081435C6 -_08142FD0: - movs r0, 0x3 - strb r0, [r5, 0x8] - movs r0, 0 - movs r1, 0x1 - bl sub_8142344 - b _081435C6 - .align 2, 0 -_08142FE0: .4byte gUnknown_841E6DC -_08142FE4: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08142FF8 - ldr r0, _08142FF4 @ =gUnknown_841E717 - bl sub_8142504 - b _08142FFE - .align 2, 0 -_08142FF4: .4byte gUnknown_841E717 -_08142FF8: - ldr r0, _08143004 @ =gUnknown_841E741 - bl sub_8142504 -_08142FFE: - movs r0, 0x4 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143004: .4byte gUnknown_841E741 -_08143008: - adds r0, r5, 0 - adds r0, 0x9 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_81426D4 - adds r4, r0, 0 - cmp r4, 0x1 - beq _08143036 - cmp r4, 0x1 - bcc _08143028 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _08143042 - b _081435C6 -_08143028: - bl sub_8142560 - movs r1, 0 - movs r0, 0x5 - strb r0, [r5, 0x8] - strb r1, [r5, 0xD] - b _081435C6 -_08143036: - bl sub_8142560 - movs r0, 0x5 - strb r0, [r5, 0x8] - strb r4, [r5, 0xD] - b _081435C6 -_08143042: - bl sub_8142560 - ldrb r0, [r5, 0xC] - bl sub_8142A44 - cmp r0, 0 - beq _08143052 - b _081434C4 -_08143052: - strb r0, [r5, 0x8] - movs r0, 0 - b _0814359E -_08143058: - ldr r0, _08143074 @ =gStringVar1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _08143078 @ =gStringVar2 - strb r1, [r0] - ldr r0, _0814307C @ =gStringVar3 - strb r1, [r0] - ldrb r0, [r5, 0xC] - cmp r0, 0 - beq _08143080 - cmp r0, 0x1 - beq _0814309A - b _081430B2 - .align 2, 0 -_08143074: .4byte gStringVar1 -_08143078: .4byte gStringVar2 -_0814307C: .4byte gStringVar3 -_08143080: - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _0814308E - movs r0, 0x15 - bl sub_8117ED4 - b _081430B2 -_0814308E: - cmp r0, 0 - bne _081430B2 - movs r0, 0x15 - bl sub_8118290 - b _081430B2 -_0814309A: - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _081430A8 - movs r0, 0x16 - bl sub_8117ED4 - b _081430B2 -_081430A8: - cmp r0, 0 - bne _081430B2 - movs r0, 0x16 - bl sub_8118290 -_081430B2: - movs r0, 0x6 - strb r0, [r5, 0x8] - b _081435C6 -_081430B8: - ldr r0, _081430D0 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _081430D4 - movs r0, 0x1 - bl sub_81424B8 - movs r0, 0x7 - strb r0, [r5, 0x8] - bl mevent_srv_ish_do_init - b _081435C6 - .align 2, 0 -_081430D0: .4byte gReceivedRemoteLinkPlayers -_081430D4: - ldr r0, _081430E8 @ =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x5 - beq _081430DE - b _081435C6 -_081430DE: - movs r0, 0x1 - bl sub_81424B8 - b _08143464 - .align 2, 0 -_081430E8: .4byte gSpecialVar_Result -_081430EC: - ldr r0, _081430F8 @ =gUnknown_841E794 - bl sub_8142504 - movs r0, 0x8 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081430F8: .4byte gUnknown_841E794 -_081430FC: - adds r0, r5, 0 - bl mevent_srv_ish_do_exec - subs r0, 0x2 - cmp r0, 0x4 - bls _0814310A - b _081435C6 -_0814310A: - lsls r0, 2 - ldr r1, _08143114 @ =_08143118 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08143114: .4byte _08143118 - .align 2, 0 -_08143118: - .4byte _08143156 - .4byte _08143150 - .4byte _0814315C - .4byte _0814313A - .4byte _0814312C -_0814312C: - bl task_add_05_task_del_08FA224_when_no_RfuFunc - ldrh r0, [r5] - strb r0, [r5, 0xE] - movs r0, 0xD - strb r0, [r5, 0x8] - b _081435C6 -_0814313A: - ldr r4, [r5, 0x10] - bl mevent_srv_ish_get_buffer - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x40 - bl memcpy - bl mevent_srv_ish_inc_flag - b _081435C6 -_08143150: - movs r0, 0xA - strb r0, [r5, 0x8] - b _081435C6 -_08143156: - movs r0, 0x9 - strb r0, [r5, 0x8] - b _081435C6 -_0814315C: - movs r0, 0xB - strb r0, [r5, 0x8] - ldr r0, _0814316C @ =gStringVar1 - ldr r1, _08143170 @ =gLinkPlayers + 8 - bl StringCopy - b _081435C6 - .align 2, 0 -_0814316C: .4byte gStringVar1 -_08143170: .4byte gLinkPlayers + 8 -_08143174: - adds r4, r5, 0 - adds r4, 0x9 - bl mevent_srv_ish_get_buffer - adds r3, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _0814320C - cmp r1, 0x1 - bcs _081431FA - movs r0, 0 - b _0814320E -_08143198: - adds r4, r5, 0 - adds r4, 0x9 - bl mevent_srv_ish_get_buffer - adds r1, r0, 0 - adds r0, r4, 0 - bl mevent_0814257C - cmp r0, 0 - bne _081431AE - b _081435C6 -_081431AE: - b _08143212 -_081431B0: - adds r0, r5, 0 - adds r0, 0x9 - ldr r3, _081431D8 @ =gUnknown_841E7F2 - adds r1, r5, 0 - movs r2, 0 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _0814320C - cmp r1, 0x1 - bcs _081431FA - bl sub_8144144 - cmp r0, 0x1 - bne _081431DC - movs r0, 0xC - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081431D8: .4byte gUnknown_841E7F2 -_081431DC: - movs r0, 0 - b _0814320E -_081431E0: - adds r0, r5, 0 - adds r0, 0x9 - ldr r3, _08143204 @ =gUnknown_841E823 - adds r1, r5, 0 - movs r2, 0 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _0814320C - cmp r1, 0x1 - bcc _08143208 -_081431FA: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0814320C - b _081435C6 - .align 2, 0 -_08143204: .4byte gUnknown_841E823 -_08143208: - movs r0, 0 - b _0814320E -_0814320C: - movs r0, 0x1 -_0814320E: - bl mevent_srv_ish_set_param -_08143212: - bl mevent_srv_ish_inc_flag - movs r0, 0x7 - strb r0, [r5, 0x8] - b _081435C6 -_0814321C: - bl sub_80FA4F8 - lsls r0, 24 - cmp r0, 0 - bne _08143228 - b _081435C6 -_08143228: - bl sub_80FCE44 - movs r0, 0xE - strb r0, [r5, 0x8] - b _081435C6 -_08143232: - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _08143258 @ =gUnknown_841E7A3 - bl sub_81426A0 - cmp r0, 0 - bne _08143242 - b _081435C6 -_08143242: - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _08143250 - ldr r0, _0814325C @ =gStringVar1 - ldr r1, _08143260 @ =gLinkPlayers + 8 - bl StringCopy -_08143250: - movs r0, 0xF - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143258: .4byte gUnknown_841E7A3 -_0814325C: .4byte gStringVar1 -_08143260: .4byte gLinkPlayers + 8 -_08143264: - ldrb r1, [r5, 0xC] - ldrb r2, [r5, 0xD] - ldrb r3, [r5, 0xE] - mov r0, sp - bl mevent_message - adds r1, r0, 0 - cmp r1, 0 - bne _08143278 - ldr r1, [r5, 0x10] -_08143278: - ldr r0, [sp] - cmp r0, 0 - beq _0814328A - adds r0, r5, 0 - adds r0, 0x9 - adds r2, r5, 0 - bl mevent_08142CE8 - b _08143292 -_0814328A: - adds r0, r5, 0 - adds r0, 0x9 - bl mevent_0814257C -_08143292: - adds r1, r0, 0 - cmp r1, 0 - bne _0814329A - b _081435C6 -_0814329A: - ldrb r0, [r5, 0xE] - cmp r0, 0x3 - bne _081432B4 - ldrb r0, [r5, 0xD] - cmp r0, 0x1 - bne _081432AE - movs r0, 0x1 - bl sub_8146C30 - b _081432B4 -_081432AE: - movs r0, 0x2 - bl sub_8146C30 -_081432B4: - ldr r0, [sp] - cmp r0, 0 - beq _081432BC - b _0814357C -_081432BC: - strb r0, [r5, 0x8] - movs r0, 0 - b _0814359E -_081432C2: - adds r0, r5, 0 - adds r0, 0x9 - bl mevent_save_game - b _08143596 -_081432CC: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r1, [r5, 0xC] - bl sub_8142A58 - cmp r0, 0 - bne _081432DC - b _081435C6 -_081432DC: - b _0814339C -_081432DE: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08143308 - ldr r2, _08143304 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081432F4 - movs r0, 0x15 - strb r0, [r5, 0x8] -_081432F4: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08143300 - b _081435C6 -_08143300: - b _08143326 - .align 2, 0 -_08143304: .4byte gMain -_08143308: - ldr r0, _0814331C @ =gMain - ldrh r0, [r0, 0x2E] - bl sub_8146884 - cmp r0, 0 - beq _08143320 - cmp r0, 0x1 - beq _08143326 - b _081435C6 - .align 2, 0 -_0814331C: .4byte gMain -_08143320: - bl sub_81467EC - b _08143402 -_08143326: - movs r0, 0x1B - strb r0, [r5, 0x8] - b _081435C6 -_0814332C: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08143346 - bl sub_8144054 - cmp r0, 0 - beq _0814335A - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - movs r3, 0 - b _08143364 -_08143346: - bl sub_8143E78 - cmp r0, 0 - beq _0814335A - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - movs r3, 0 - b _08143364 -_0814335A: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - movs r3, 0x1 -_08143364: - bl sub_81428F4 - adds r1, r0, 0 - cmp r1, 0x1 - beq _08143386 - cmp r1, 0x1 - bcc _08143380 - cmp r1, 0x2 - beq _0814338C - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08143392 - b _081435C6 -_08143380: - movs r0, 0x1C - strb r0, [r5, 0x8] - b _081435C6 -_08143386: - movs r0, 0x1D - strb r0, [r5, 0x8] - b _081435C6 -_0814338C: - movs r0, 0x16 - strb r0, [r5, 0x8] - b _081435C6 -_08143392: - ldrb r0, [r5, 0xC] - cmp r0, 0x1 - bne _0814339C - bl sub_8146834 -_0814339C: - movs r0, 0x14 - strb r0, [r5, 0x8] - b _081435C6 -_081433A2: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xC] - adds r1, r5, 0 - bl sub_8142AFC - adds r1, r0, 0 - cmp r1, 0 - beq _081433BE - cmp r1, 0 - ble _081433EC - cmp r1, 0x1 - beq _08143402 - b _081435C6 -_081433BE: - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _081433FC - bl sub_8144144 - cmp r0, 0x1 - bne _081433FC - movs r0, 0x17 - strb r0, [r5, 0x8] - b _081435C6 -_081433D2: - adds r0, r5, 0 - adds r0, 0x9 - ldr r3, _081433F8 @ =gUnknown_841ECF9 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_81427A0 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0x1 - beq _08143402 - cmp r1, 0x1 - bcc _081433FC -_081433EC: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08143402 - b _081435C6 - .align 2, 0 -_081433F8: .4byte gUnknown_841ECF9 -_081433FC: - movs r0, 0x18 - strb r0, [r5, 0x8] - b _081435C6 -_08143402: - movs r0, 0x15 - strb r0, [r5, 0x8] - b _081435C6 -_08143408: - ldrb r0, [r5, 0xC] - movs r1, 0x1 - bl sub_8142ACC - cmp r0, 0 - bne _08143416 - b _081435C6 -_08143416: - ldrb r0, [r5, 0xC] - bl sub_8142AB4 - movs r0, 0x19 - strb r0, [r5, 0x8] - b _081435C6 -_08143422: - adds r0, r5, 0 - adds r0, 0x9 - bl mevent_save_game - cmp r0, 0 - bne _08143430 - b _081435C6 -_08143430: - movs r0, 0x1A - strb r0, [r5, 0x8] - b _081435C6 -_08143436: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r1, [r5, 0xC] - bl mevent_message_was_thrown_away - b _08143596 -_08143442: - ldrb r0, [r5, 0xC] - movs r1, 0 - bl sub_8142ACC - cmp r0, 0 - bne _08143450 - b _081435C6 -_08143450: - movs r0, 0 - strb r0, [r5, 0x8] - b _081435C6 -_08143456: - ldrb r0, [r5, 0xC] - movs r1, 0x1 - bl sub_8142ACC - cmp r0, 0 - bne _08143464 - b _081435C6 -_08143464: - movs r0, 0x3 - strb r0, [r5, 0x8] - b _081435C6 -_0814346A: - ldrb r0, [r5, 0xC] - movs r1, 0x1 - bl sub_8142ACC - cmp r0, 0 - bne _08143478 - b _081435C6 -_08143478: - ldrb r0, [r5, 0xC] - cmp r0, 0 - beq _08143484 - cmp r0, 0x1 - beq _0814348C - b _08143492 -_08143484: - movs r0, 0x15 - bl sub_81179CC - b _08143492 -_0814348C: - movs r0, 0x16 - bl sub_81179CC -_08143492: - movs r0, 0x1 - strb r0, [r5, 0xD] - movs r0, 0x1E - strb r0, [r5, 0x8] - b _081435C6 -_0814349C: - ldr r0, _081434B0 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _081434B4 - movs r0, 0x1 - bl sub_81424B8 - movs r0, 0x1F - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081434B0: .4byte gReceivedRemoteLinkPlayers -_081434B4: - ldr r0, _081434CC @ =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x5 - beq _081434BE - b _081435C6 -_081434BE: - movs r0, 0x1 - bl sub_81424B8 -_081434C4: - movs r0, 0x12 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_081434CC: .4byte gSpecialVar_Result -_081434D0: - ldr r0, _081434F0 @ =gStringVar1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _081434F4 @ =gStringVar2 - strb r1, [r0] - ldr r0, _081434F8 @ =gStringVar3 - strb r1, [r0] - ldrb r0, [r5, 0xC] - cmp r0, 0 - bne _08143500 - ldr r0, _081434FC @ =gUnknown_841EAE7 - bl sub_8142504 - bl mevent_srv_common_do_init_2 - b _0814350A - .align 2, 0 -_081434F0: .4byte gStringVar1 -_081434F4: .4byte gStringVar2 -_081434F8: .4byte gStringVar3 -_081434FC: .4byte gUnknown_841EAE7 -_08143500: - ldr r0, _08143510 @ =gUnknown_841EB01 - bl sub_8142504 - bl mevent_srv_common_do_init_1 -_0814350A: - movs r0, 0x20 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143510: .4byte gUnknown_841EB01 -_08143514: - adds r0, r5, 0 - bl mevent_srv_init_do_exec - cmp r0, 0x3 - bne _081435C6 - ldrh r0, [r5] - strb r0, [r5, 0xE] - movs r0, 0x21 - strb r0, [r5, 0x8] - b _081435C6 -_08143528: - bl task_add_05_task_del_08FA224_when_no_RfuFunc - ldr r0, _0814353C @ =gStringVar1 - ldr r1, _08143540 @ =gLinkPlayers + 0x24 - bl StringCopy - movs r0, 0x22 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_0814353C: .4byte gStringVar1 -_08143540: .4byte gLinkPlayers + 0x24 -_08143544: - bl sub_80FA4F8 - lsls r0, 24 - cmp r0, 0 - beq _081435C6 - bl sub_80FCE44 - movs r0, 0x23 - strb r0, [r5, 0x8] - b _081435C6 -_08143558: - adds r0, r5, 0 - adds r0, 0x9 - ldrb r2, [r5, 0xD] - ldrb r3, [r5, 0xE] - adds r1, r5, 0 - bl sub_8142E20 - cmp r0, 0 - beq _081435C6 - ldr r0, [r5, 0xC] - ldr r1, _08143584 @ =0x00ffff00 - ands r0, r1 - ldr r1, _08143588 @ =0x00030100 - cmp r0, r1 - bne _0814359A - movs r0, 0x3 - bl sub_8146C30 -_0814357C: - movs r0, 0x11 - strb r0, [r5, 0x8] - b _081435C6 - .align 2, 0 -_08143584: .4byte 0x00ffff00 -_08143588: .4byte 0x00030100 -_0814358C: - adds r0, r5, 0 - adds r0, 0x9 - ldr r1, _081435A8 @ =gUnknown_841E7BC - bl mevent_0814257C -_08143596: - cmp r0, 0 - beq _081435C6 -_0814359A: - movs r0, 0 - strb r0, [r5, 0x8] -_0814359E: - movs r1, 0 - bl sub_8142344 - b _081435C6 - .align 2, 0 -_081435A8: .4byte gUnknown_841E7BC -_081435AC: - bl sub_80098B8 - bl sub_812B484 - ldr r0, [r5, 0x10] - bl Free - adds r0, r4, 0 - bl DestroyTask - ldr r0, _081435D0 @ =sub_81422FC - bl SetMainCallback2 -_081435C6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081435D0: .4byte sub_81422FC - thumb_func_end sub_8142EA0 - - thumb_func_start sub_81435D4 -sub_81435D4: @ 81435D4 - ldr r0, _081435D8 @ =0x0000019b - bx lr - .align 2, 0 -_081435D8: .4byte 0x0000019b - thumb_func_end sub_81435D4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/list_menu.s b/asm/list_menu.s index 3475b0914..e6e316fb7 100644 --- a/asm/list_menu.s +++ b/asm/list_menu.s @@ -52,7 +52,7 @@ _08106F06: lsls r2, r1, 24 lsrs r2, 24 adds r1, r7, 0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame _08106F24: ldrb r0, [r5, 0x5] mov r3, r8 @@ -60,9 +60,9 @@ _08106F24: lsls r2, 24 lsrs r2, 24 ldr r1, [sp, 0x4] - bl sub_8150048 + bl DrawTextBorderOuter _08106F34: - ldr r0, _08106F64 @ =gUnknown_3005E70 + ldr r0, _08106F64 @ =gMultiuseListMenuTemplate adds r2, r0, 0 ldr r1, [sp] ldm r1!, {r3-r5} @@ -84,7 +84,7 @@ _08106F34: b _08106FE4 .align 2, 0 _08106F60: .4byte gUnknown_203ACF4 -_08106F64: .4byte gUnknown_3005E70 +_08106F64: .4byte gMultiuseListMenuTemplate _08106F68: ldrb r0, [r5, 0x6] bl ListMenuHandleInput @@ -126,7 +126,7 @@ _08106FA8: bgt _08106FBA ldrb r0, [r5, 0x5] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame _08106FBA: ldr r0, _08106FC8 @ =gUnknown_203ACF4 ldrb r0, [r0, 0x5] @@ -139,7 +139,7 @@ _08106FCC: ldrb r0, [r5, 0x6] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu ldrb r0, [r5, 0x5] bl RemoveWindow movs r0, 0 @@ -340,8 +340,8 @@ _08107136: bx r1 thumb_func_end ListMenuHandleInput - thumb_func_start sub_810713C -sub_810713C: @ 810713C + thumb_func_start DestroyListMenu +DestroyListMenu: @ 810713C push {r4,lr} adds r3, r1, 0 lsls r0, 24 @@ -377,7 +377,7 @@ _08107170: bx r0 .align 2, 0 _0810717C: .4byte gTasks+0x8 - thumb_func_end sub_810713C + thumb_func_end DestroyListMenu thumb_func_start sub_8107180 sub_8107180: @ 8107180 @@ -563,8 +563,8 @@ _081072CA: _081072D0: .4byte gTasks+0x8 thumb_func_end sub_81072AC - thumb_func_start get_coro_args_x18_x1A -get_coro_args_x18_x1A: @ 81072D4 + thumb_func_start ListMenuGetScrollAndRow +ListMenuGetScrollAndRow: @ 81072D4 push {lr} adds r3, r1, 0 lsls r0, 24 @@ -588,7 +588,7 @@ _081072F6: bx r0 .align 2, 0 _081072FC: .4byte gTasks+0x8 - thumb_func_end get_coro_args_x18_x1A + thumb_func_end ListMenuGetScrollAndRow thumb_func_start ListMenuGetYCoordForPrintingArrowCursor ListMenuGetYCoordForPrintingArrowCursor: @ 8107300 @@ -782,7 +782,7 @@ ListMenuPrint: @ 8107428 str r6, [sp, 0x10] adds r2, r7, 0 mov r3, r12 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldrb r1, [r5, 0x3] movs r0, 0x7F ands r0, r1 @@ -820,7 +820,7 @@ _08107494: str r6, [sp, 0x10] adds r2, r7, 0 mov r3, r12 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _081074D2: add sp, 0x18 pop {r4-r7} @@ -1635,8 +1635,8 @@ sub_8107A9C: @ 8107A9C _08107AE8: .4byte gUnknown_3005E60 thumb_func_end sub_8107A9C - thumb_func_start sub_8107AEC -sub_8107AEC: @ 8107AEC + thumb_func_start ListMenuDefaultCursorMoveFunc +ListMenuDefaultCursorMoveFunc: @ 8107AEC push {lr} lsls r1, 24 cmp r1, 0 @@ -1646,7 +1646,7 @@ sub_8107AEC: @ 8107AEC _08107AFA: pop {r0} bx r0 - thumb_func_end sub_8107AEC + thumb_func_end ListMenuDefaultCursorMoveFunc thumb_func_start sub_8107B00 sub_8107B00: @ 8107B00 @@ -1976,8 +1976,8 @@ _08107D56: _08107D64: .4byte gUnknown_8E95DBC thumb_func_end sub_8107D38 - thumb_func_start sub_8107D68 -sub_8107D68: @ 8107D68 + thumb_func_start blit_move_info_icon +blit_move_info_icon: @ 8107D68 push {r4,r5,lr} sub sp, 0x18 lsls r0, 24 @@ -2014,6 +2014,6 @@ sub_8107D68: @ 8107D68 .align 2, 0 _08107DAC: .4byte gUnknown_8452C94 _08107DB0: .4byte gUnknown_8E95DDC - thumb_func_end sub_8107D68 + thumb_func_end blit_move_info_icon .align 2, 0 @ Don't pad with nop. diff --git a/asm/m4a_1.s b/asm/m4a_1.s index e78c3e69b..db8476382 100644 --- a/asm/m4a_1.s +++ b/asm/m4a_1.s @@ -4,8 +4,6 @@ .syntax unified - .lcomm gUnknown_030007B8, 0x770 - .text thumb_func_start umul3232H32 @@ -1909,3 +1907,28 @@ _081DDD90: thumb_func_end ply_mod .align 2, 0 @ Don't pad with nop. + + .bss +gUnknown_030007B8: + .space 0x40 + .size gUnknown_030007B8, .-gUnknown_030007B8 + + .global gMPlayTrack_BGM +gMPlayTrack_BGM: + .space 0x320 + .size gMPlayTrack_BGM, .-gMPlayTrack_BGM + + .global gMPlayTrack_SE1 +gMPlayTrack_SE1: + .space 0xF0 + .size gMPlayTrack_SE1, .-gMPlayTrack_SE1 + + .global gMPlayTrack_SE2 +gMPlayTrack_SE2: + .space 0x2D0 + .size gMPlayTrack_SE2, .-gMPlayTrack_SE2 + + .global gMPlayTrack_SE3 +gMPlayTrack_SE3: + .space 0x50 + .size gMPlayTrack_SE3, .-gMPlayTrack_SE3 diff --git a/asm/m4a_3.s b/asm/m4a_3.s deleted file mode 100644 index a842ae925..000000000 --- a/asm/m4a_3.s +++ /dev/null @@ -1,574 +0,0 @@ - .include "asm/macros.inc" - .include "constants/gba_constants.inc" - .include "constants/m4a_constants.inc" - - .syntax unified - - .text - - thumb_func_start CgbSound -CgbSound: @ 81DEA70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, =SOUND_INFO_PTR - ldr r0, [r0] - str r0, [sp, 0x4] - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _081DEA94 - subs r0, 0x1 - ldr r1, [sp, 0x4] - strb r0, [r1, 0xA] - b _081DEA9A - .pool -_081DEA94: - movs r0, 0xE - ldr r2, [sp, 0x4] - strb r0, [r2, 0xA] -_081DEA9A: - movs r6, 0x1 - ldr r0, [sp, 0x4] - ldr r4, [r0, 0x1C] -_081DEAA0: - ldrb r1, [r4] - movs r0, 0xC7 - ands r0, r1 - adds r2, r6, 0x1 - mov r10, r2 - movs r2, 0x40 - adds r2, r4 - mov r9, r2 - cmp r0, 0 - bne _081DEAB6 - b _081DEEA0 -_081DEAB6: - cmp r6, 0x2 - beq _081DEAE8 - cmp r6, 0x2 - bgt _081DEAC4 - cmp r6, 0x1 - beq _081DEACA - b _081DEB20 -_081DEAC4: - cmp r6, 0x3 - beq _081DEB00 - b _081DEB20 -_081DEACA: - ldr r0, =REG_NR10 - str r0, [sp, 0x8] - ldr r7, =REG_NR11 - ldr r2, =REG_NR12 - str r2, [sp, 0xC] - adds r0, 0x4 - str r0, [sp, 0x10] - adds r2, 0x2 - b _081DEB30 - .pool -_081DEAE8: - ldr r0, =REG_NR10 + 1 - str r0, [sp, 0x8] - ldr r7, =REG_NR21 - ldr r2, =REG_NR22 - b _081DEB28 - .pool -_081DEB00: - ldr r0, =REG_NR30 - str r0, [sp, 0x8] - ldr r7, =REG_NR31 - ldr r2, =REG_NR32 - str r2, [sp, 0xC] - adds r0, 0x4 - str r0, [sp, 0x10] - adds r2, 0x2 - b _081DEB30 - .pool -_081DEB20: - ldr r0, =REG_NR30 + 1 - str r0, [sp, 0x8] - ldr r7, =REG_NR41 - ldr r2, =REG_NR42 -_081DEB28: - str r2, [sp, 0xC] - adds r0, 0xB - str r0, [sp, 0x10] - adds r2, 0x4 -_081DEB30: - str r2, [sp, 0x14] - ldr r0, [sp, 0x4] - ldrb r0, [r0, 0xA] - str r0, [sp] - ldr r2, [sp, 0xC] - ldrb r0, [r2] - mov r8, r0 - adds r2, r1, 0 - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _081DEC26 - movs r3, 0x40 - adds r0, r3, 0 - ands r0, r2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0x1 - mov r10, r0 - movs r1, 0x40 - adds r1, r4 - mov r9, r1 - cmp r5, 0 - bne _081DEC4A - movs r0, 0x3 - strb r0, [r4] - strb r0, [r4, 0x1D] - adds r0, r4, 0 - str r3, [sp, 0x18] - bl CgbModVol - ldr r3, [sp, 0x18] - cmp r6, 0x2 - beq _081DEB98 - cmp r6, 0x2 - bgt _081DEB8C - cmp r6, 0x1 - beq _081DEB92 - b _081DEBEC - .pool -_081DEB8C: - cmp r6, 0x3 - beq _081DEBA4 - b _081DEBEC -_081DEB92: - ldrb r0, [r4, 0x1F] - ldr r2, [sp, 0x8] - strb r0, [r2] -_081DEB98: - ldr r0, [r4, 0x24] - lsls r0, 6 - ldrb r1, [r4, 0x1E] - adds r0, r1, r0 - strb r0, [r7] - b _081DEBF8 -_081DEBA4: - ldr r1, [r4, 0x24] - ldr r0, [r4, 0x28] - cmp r1, r0 - beq _081DEBCC - ldr r2, [sp, 0x8] - strb r3, [r2] - ldr r1, =REG_WAVE_RAM - ldr r2, [r4, 0x24] - ldr r0, [r2] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r2, 0x4] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r2, 0x8] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r2, 0xC] - str r0, [r1] - str r2, [r4, 0x28] -_081DEBCC: - ldr r0, [sp, 0x8] - strb r5, [r0] - ldrb r0, [r4, 0x1E] - strb r0, [r7] - ldrb r0, [r4, 0x1E] - cmp r0, 0 - beq _081DEBE4 - movs r0, 0xC0 - b _081DEC06 - .pool -_081DEBE4: - movs r1, 0x80 - negs r1, r1 - strb r1, [r4, 0x1A] - b _081DEC08 -_081DEBEC: - ldrb r0, [r4, 0x1E] - strb r0, [r7] - ldr r0, [r4, 0x24] - lsls r0, 3 - ldr r2, [sp, 0x10] - strb r0, [r2] -_081DEBF8: - ldrb r0, [r4, 0x4] - adds r0, 0x8 - mov r8, r0 - ldrb r0, [r4, 0x1E] - cmp r0, 0 - beq _081DEC06 - movs r0, 0x40 -_081DEC06: - strb r0, [r4, 0x1A] -_081DEC08: - ldrb r1, [r4, 0x4] - movs r2, 0 - strb r1, [r4, 0xB] - movs r0, 0xFF - ands r0, r1 - adds r1, r6, 0x1 - mov r10, r1 - movs r1, 0x40 - adds r1, r4 - mov r9, r1 - cmp r0, 0 - bne _081DEC22 - b _081DED5E -_081DEC22: - strb r2, [r4, 0x9] - b _081DED8C -_081DEC26: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _081DEC58 - ldrb r0, [r4, 0xD] - subs r0, 0x1 - strb r0, [r4, 0xD] - movs r2, 0xFF - ands r0, r2 - lsls r0, 24 - adds r1, r6, 0x1 - mov r10, r1 - movs r2, 0x40 - adds r2, r4 - mov r9, r2 - cmp r0, 0 - ble _081DEC4A - b _081DED9E -_081DEC4A: - lsls r0, r6, 24 - lsrs r0, 24 - bl CgbOscOff - movs r0, 0 - strb r0, [r4] - b _081DEE9C -_081DEC58: - movs r0, 0x40 - ands r0, r1 - adds r2, r6, 0x1 - mov r10, r2 - movs r2, 0x40 - adds r2, r4 - mov r9, r2 - cmp r0, 0 - beq _081DEC98 - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081DEC98 - movs r0, 0xFC - ands r0, r1 - movs r2, 0 - strb r0, [r4] - ldrb r1, [r4, 0x7] - strb r1, [r4, 0xB] - movs r0, 0xFF - ands r0, r1 - cmp r0, 0 - beq _081DECCA - movs r0, 0x1 - ldrb r1, [r4, 0x1D] - orrs r0, r1 - strb r0, [r4, 0x1D] - cmp r6, 0x3 - beq _081DED8C - ldrb r2, [r4, 0x7] - mov r8, r2 - b _081DED8C -_081DEC98: - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _081DED8C - cmp r6, 0x3 - bne _081DECAA - movs r0, 0x1 - ldrb r1, [r4, 0x1D] - orrs r0, r1 - strb r0, [r4, 0x1D] -_081DECAA: - adds r0, r4, 0 - bl CgbModVol - movs r0, 0x3 - ldrb r2, [r4] - ands r0, r2 - cmp r0, 0 - bne _081DECFE - ldrb r0, [r4, 0x9] - subs r0, 0x1 - strb r0, [r4, 0x9] - movs r1, 0xFF - ands r0, r1 - lsls r0, 24 - cmp r0, 0 - bgt _081DECFA -_081DECCA: - ldrb r2, [r4, 0xC] - ldrb r1, [r4, 0xA] - adds r0, r2, 0 - muls r0, r1 - adds r0, 0xFF - asrs r0, 8 - movs r1, 0 - strb r0, [r4, 0x9] - lsls r0, 24 - cmp r0, 0 - beq _081DEC4A - movs r0, 0x4 - ldrb r2, [r4] - orrs r0, r2 - strb r0, [r4] - movs r0, 0x1 - ldrb r1, [r4, 0x1D] - orrs r0, r1 - strb r0, [r4, 0x1D] - cmp r6, 0x3 - beq _081DED9E - movs r2, 0x8 - mov r8, r2 - b _081DED9E -_081DECFA: - ldrb r0, [r4, 0x7] - b _081DED8A -_081DECFE: - cmp r0, 0x1 - bne _081DED0A -_081DED02: - ldrb r0, [r4, 0x19] - strb r0, [r4, 0x9] - movs r0, 0x7 - b _081DED8A -_081DED0A: - cmp r0, 0x2 - bne _081DED4E - ldrb r0, [r4, 0x9] - subs r0, 0x1 - strb r0, [r4, 0x9] - movs r1, 0xFF - ands r0, r1 - lsls r0, 24 - ldrb r2, [r4, 0x19] - lsls r1, r2, 24 - cmp r0, r1 - bgt _081DED4A -_081DED22: - ldrb r0, [r4, 0x6] - cmp r0, 0 - bne _081DED32 - movs r0, 0xFC - ldrb r1, [r4] - ands r0, r1 - strb r0, [r4] - b _081DECCA -_081DED32: - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - movs r0, 0x1 - ldrb r2, [r4, 0x1D] - orrs r0, r2 - strb r0, [r4, 0x1D] - cmp r6, 0x3 - beq _081DED02 - movs r0, 0x8 - mov r8, r0 - b _081DED02 -_081DED4A: - ldrb r0, [r4, 0x5] - b _081DED8A -_081DED4E: - ldrb r0, [r4, 0x9] - adds r0, 0x1 - strb r0, [r4, 0x9] - movs r1, 0xFF - ands r0, r1 - ldrb r2, [r4, 0xA] - cmp r0, r2 - bcc _081DED88 -_081DED5E: - ldrb r0, [r4] - subs r0, 0x1 - movs r2, 0 - strb r0, [r4] - ldrb r1, [r4, 0x5] - strb r1, [r4, 0xB] - movs r0, 0xFF - ands r0, r1 - cmp r0, 0 - beq _081DED22 - movs r0, 0x1 - ldrb r1, [r4, 0x1D] - orrs r0, r1 - strb r0, [r4, 0x1D] - ldrb r0, [r4, 0xA] - strb r0, [r4, 0x9] - cmp r6, 0x3 - beq _081DED8C - ldrb r2, [r4, 0x5] - mov r8, r2 - b _081DED8C -_081DED88: - ldrb r0, [r4, 0x4] -_081DED8A: - strb r0, [r4, 0xB] -_081DED8C: - ldrb r0, [r4, 0xB] - subs r0, 0x1 - strb r0, [r4, 0xB] - ldr r0, [sp] - cmp r0, 0 - bne _081DED9E - subs r0, 0x1 - str r0, [sp] - b _081DEC98 -_081DED9E: - movs r0, 0x2 - ldrb r1, [r4, 0x1D] - ands r0, r1 - cmp r0, 0 - beq _081DEE16 - cmp r6, 0x3 - bgt _081DEDDE - movs r0, 0x8 - ldrb r2, [r4, 0x1] - ands r0, r2 - cmp r0, 0 - beq _081DEDDE - ldr r0, =REG_SOUNDBIAS + 1 - ldrb r0, [r0] - cmp r0, 0x3F - bgt _081DEDD0 - ldr r0, [r4, 0x20] - adds r0, 0x2 - ldr r1, =0x000007fc - b _081DEDDA - .pool -_081DEDD0: - cmp r0, 0x7F - bgt _081DEDDE - ldr r0, [r4, 0x20] - adds r0, 0x1 - ldr r1, =0x000007fe -_081DEDDA: - ands r0, r1 - str r0, [r4, 0x20] -_081DEDDE: - cmp r6, 0x4 - beq _081DEDF0 - ldr r0, [r4, 0x20] - ldr r1, [sp, 0x10] - strb r0, [r1] - b _081DEDFE - .pool -_081DEDF0: - ldr r2, [sp, 0x10] - ldrb r0, [r2] - movs r1, 0x8 - ands r1, r0 - ldr r0, [r4, 0x20] - orrs r0, r1 - strb r0, [r2] -_081DEDFE: - movs r0, 0xC0 - ldrb r1, [r4, 0x1A] - ands r0, r1 - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - adds r0, r1, r0 - strb r0, [r4, 0x1A] - movs r2, 0xFF - ands r0, r2 - ldr r1, [sp, 0x14] - strb r0, [r1] -_081DEE16: - movs r0, 0x1 - ldrb r2, [r4, 0x1D] - ands r0, r2 - cmp r0, 0 - beq _081DEE9C - ldr r1, =REG_NR51 - ldrb r0, [r1] - ldrb r2, [r4, 0x1C] - bics r0, r2 - ldrb r2, [r4, 0x1B] - orrs r0, r2 - strb r0, [r1] - cmp r6, 0x3 - bne _081DEE68 - ldr r0, =gCgb3Vol - ldrb r1, [r4, 0x9] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, [sp, 0xC] - strb r0, [r2] - movs r1, 0x80 - adds r0, r1, 0 - ldrb r2, [r4, 0x1A] - ands r0, r2 - cmp r0, 0 - beq _081DEE9C - ldr r0, [sp, 0x8] - strb r1, [r0] - ldrb r0, [r4, 0x1A] - ldr r1, [sp, 0x14] - strb r0, [r1] - movs r0, 0x7F - ldrb r2, [r4, 0x1A] - ands r0, r2 - strb r0, [r4, 0x1A] - b _081DEE9C - .pool -_081DEE68: - movs r0, 0xF - mov r1, r8 - ands r1, r0 - mov r8, r1 - ldrb r2, [r4, 0x9] - lsls r0, r2, 4 - add r0, r8 - ldr r1, [sp, 0xC] - strb r0, [r1] - movs r2, 0x80 - ldrb r0, [r4, 0x1A] - orrs r0, r2 - ldr r1, [sp, 0x14] - strb r0, [r1] - cmp r6, 0x1 - bne _081DEE9C - ldr r0, [sp, 0x8] - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _081DEE9C - ldrb r0, [r4, 0x1A] - orrs r0, r2 - ldr r1, [sp, 0x14] - strb r0, [r1] -_081DEE9C: - movs r0, 0 - strb r0, [r4, 0x1D] -_081DEEA0: - mov r6, r10 - mov r4, r9 - cmp r6, 0x4 - bgt _081DEEAA - b _081DEAA0 -_081DEEAA: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CgbSound - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/macros.inc b/asm/macros.inc index 6d8657892..e6813d319 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -4,6 +4,7 @@ .include "asm/macros/pokemon_data.inc" .include "asm/macros/ec.inc" .include "asm/macros/map.inc" + .include "asm/macros/m4a.inc" .macro region_map_location x, y, width, height, name .byte \x @@ -147,3 +148,8 @@ .2byte MAP_\map_name .space 2 .endm + + .macro window_template bg, top, left, height, width, palno, baseBlock + .byte \bg, \top, \left, \height, \width, \palno + .2byte \baseBlock + .endm diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 960b300b7..7ce50a5e1 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -295,8 +295,6 @@ @ In FireRed, this command is a nop. .macro initclock hour minute .byte 0x2c - .byte \hour - .byte \minute .endm @ In FireRed, this command is a nop. @@ -304,7 +302,7 @@ .byte 0x2d .endm - @ Resets the values of variables 0x8000, 0x8001, and 0x8002. Related to RTC in RSE? + @ Resets the values of variables 0x8000, 0x8001, and 0x8002. .macro gettime .byte 0x2e .endm @@ -492,7 +490,7 @@ .endm @ Adds a quantity amount of item index to the player's PC. Both arguments can be variables. - .macro addpcitem index, quantity + .macro givepcitem index, quantity .byte 0x49 .2byte \index .2byte \quantity @@ -506,27 +504,27 @@ .endm @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro adddecor a + .macro adddecor decoration .byte 0x4b - .2byte \a + .2byte \decoration .endm @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro removedecor a + .macro removedecor decoration .byte 0x4c - .2byte \a + .2byte \decoration .endm @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro hasdecor a + .macro hasdecor decoration .byte 0x4d - .2byte \a + .2byte \decoration .endm @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro checkdecor a + .macro checkdecor decoration .byte 0x4e - .2byte \a + .2byte \decoration .endm @ Applies the movement data at movements to the specified (index) Person event. Also closes any standard message boxes that are still open. @@ -584,36 +582,35 @@ .endif .endm - .macro setobjectxy word1, word2, word3 - .byte 0x57 - .2byte \word1 - .2byte \word2 - .2byte \word3 + @ Sets the specified (index) Object's position on the current map. + .macro setobjectxy index, x, y + .byte 0x57 + .2byte \index + .2byte \x + .2byte \y .endm - .macro showobject word, byte1, byte2 - .byte 0x58 - .2byte \word - .byte \byte1 - .byte \byte2 + .macro showobject index, map + .byte 0x58 + .2byte \index + map \map .endm - .macro hideobject word, byte1, byte2 - .byte 0x59 - .2byte \word - .byte \byte1 - .byte \byte2 + .macro hideobject index, map + .byte 0x59 + .2byte \index + map \map .endm - @ If the script was called by a Person event, then that Person will turn to face toward the tile that the player is stepping off of. + @ If the script was called by an Object, then that Object will turn to face toward the metatile that the player is standing on. .macro faceplayer - .byte 0x5a + .byte 0x5a .endm - .macro turnobject word, byte - .byte 0x5b - .2byte \word - .byte \byte + .macro turnobject index, direction + .byte 0x5b + .2byte \index + .byte \direction .endm @ If the Trainer flag for Trainer index is not set, this command does absolutely nothing. @@ -656,6 +653,9 @@ .4byte \pointer2 @ text .4byte \pointer3 @ text .4byte \pointer4 @ event script + .elseif \type == 9 + .4byte \pointer1 @ text + .4byte \pointer2 @ text .endif .endm @@ -691,16 +691,16 @@ .2byte \trainer .endm - .macro setobjectxyperm word1, word2, word3 + .macro setobjectxyperm index, x, y .byte 0x63 - .2byte \word1 - .2byte \word2 - .2byte \word3 + .2byte \index + .2byte \x + .2byte \y .endm - .macro moveobjectoffscreen word + .macro moveobjectoffscreen index .byte 0x64 - .2byte \word + .2byte \index .endm .macro setobjectmovementtype word, byte @@ -725,73 +725,69 @@ .byte 0x68 .endm - @ Ceases movement for all OWs on-screen. + @ Ceases movement for all Objects on-screen. .macro lockall .byte 0x69 .endm - @ If the script was called by a Person event, then that Person's movement will cease. + @ If the script was called by an Object, then that Object's movement will cease. .macro lock .byte 0x6a .endm - @ Resumes normal movement for all OWs on-screen, and closes any standard message boxes that are still open. + @ Resumes normal movement for all Objects on-screen, and closes any standard message boxes that are still open. .macro releaseall .byte 0x6b .endm - @ If the script was called by a Person event, then that Person's movement will resume. This command also closes any standard message boxes that are still open. + @ If the script was called by an Object, then that Object's movement will resume. This command also closes any standard message boxes that are still open. .macro release .byte 0x6c .endm @ Blocks script execution until the player presses any key. - .macro waitbutton + .macro waitbuttonpress .byte 0x6d .endm @ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. Their selection is stored in variable 0x800D (LASTRESULT); 0x0000 for "NO" or if the user pressed B, and 0x0001 for "YES". - .macro yesnobox X, Y + .macro yesnobox x, y .byte 0x6e - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If B is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. - .macro multichoice X, Y, list, B + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + .macro multichoice x, y, list, b .byte 0x6f - .byte \X - .byte \Y + .byte \x + .byte \y .byte \list - .byte \B + .byte \b .endm - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If B is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. - .macro multichoicedefault X, Y, list, default, B + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + .macro multichoicedefault x, y, list, default, b .byte 0x70 - .byte \X - .byte \Y + .byte \x + .byte \y .byte \list .byte \default - .byte \B + .byte \b .endm @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box. - .macro multichoicegrid X, Y, list, per_row, B + .macro multichoicegrid x, y, list, per_row, B .byte 0x71 - .byte \X - .byte \Y + .byte \x + .byte \y .byte \list .byte \per_row .byte \B .endm - .macro drawbox byte1, byte2, byte3, byte4 + .macro drawbox .byte 0x72 - .byte \byte1 - .byte \byte2 - .byte \byte3 - .byte \byte4 .endm .macro erasebox byte1, byte2, byte3, byte4 @@ -802,28 +798,24 @@ .byte \byte4 .endm - .macro drawboxtext byte1, byte2, byte3, byte4 + .macro drawboxtext .byte 0x74 - .byte \byte1 - .byte \byte2 - .byte \byte3 - .byte \byte4 .endm - @ Displays a box containing the front sprite for the specified (species) Pokmon species. - .macro drawpokepic species, X, Y + @ Displays a box containing the front sprite for the specified (species) Pokemon species. + .macro drawmonpic species, x, y .byte 0x75 .2byte \species - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Hides all boxes displayed with showpokepic. - .macro erasepokepic + @ Hides all boxes displayed with drawmonpic. + .macro erasemonpic .byte 0x76 .endm - @ In FireRed, this command is a nop. (The argument is discarded.) + @ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.) .macro drawcontestwinner a .byte 0x77 .byte \a @@ -835,8 +827,9 @@ .4byte \text .endm + @ RENAMED! @ Gives the player one of the specified (species) Pokmon at level level holding item. The unknown arguments should all be zeroes. - .macro givepoke species, level, item, unknown1, unknown2, unknown3 + .macro givemon species, level, item, unknown1, unknown2, unknown3 .byte 0x79 .2byte \species .byte \level @@ -846,39 +839,42 @@ .byte \unknown3 .endm - .macro giveegg word + .macro giveegg species .byte 0x7a - .2byte \word + .2byte \species .endm - .macro setpokemove byte1, byte2, word + @ RENAMED! + .macro setmonmove byte1, byte2, word .byte 0x7b .byte \byte1 .byte \byte2 .2byte \word .endm - @ Checks if at least one Pokmon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the Pokmon that knows the move. If not, LASTRESULT is set to 0x0006. - .macro checkpokemove index + @ Checks if at least one Pokémon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the first Pokémon that knows the move. If not, LASTRESULT is set to 0x0006. Variable 0x8004 is also set to this Pokémon's species. + .macro checkpartymove index .byte 0x7c .2byte \index .endm - @ Writes the name of the Pokmon at index species to the specified buffer. + @ Writes the name of the Pokemon at index species to the specified buffer. .macro getspeciesname out, species .byte 0x7d .byte \out .2byte \species .endm - @ Writes the name of the first Pokmon in the player's party to the specified buffer. - .macro getfirstpartypokename out + @ RENAMED! + @ Writes the name of the species of the first Pokémon in the player's party to the specified buffer. + .macro getfirstpartymonname out .byte 0x7e .byte \out .endm - @ Writes the name of the Pokmon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer. - .macro getpartypokename out, slot + @ RENAMED! + @ Writes the nickname of the Pokemon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer. + .macro getpartymonname out, slot .byte 0x7f .byte \out .2byte \slot @@ -891,18 +887,18 @@ .2byte \item .endm - @ In FireRed, this command is a nop. (The first argument is discarded immediately. The second argument is read, but not used for anything.) - .macro getdecorname a, b + @ Writes the name of the decoration at index decoration to the specified buffer. In FireRed, this command is a nop. + .macro getdecorname out, decoration .byte 0x81 - .byte \a - .2byte \b + .byte \out + .2byte \decoration .endm - @ Writes the name of the attack at index attack to the specified buffer. - .macro getmovename out, attack + @ Writes the name of the move at index move to the specified buffer. + .macro getmovename out, move .byte 0x82 .byte \out - .2byte \attack + .2byte \move .endm @ Converts the value of input to a decimal string, and writes that string to the specified buffer. @@ -912,7 +908,7 @@ .2byte \input .endm - @ Writes the standard string identified by index to the specified buffer. Specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption (I've observed destruction of the stored player name and crashes when entering/exiting certain menu screens). + @ Writes the standard string identified by index to the specified buffer. This command has no protections in place at all, so specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption. .macro getstdstring out, index .byte 0x84 .byte \out @@ -944,15 +940,15 @@ .4byte \products .endm + @ Starts up the slot machine minigame. .macro playslotmachine word .byte 0x89 .2byte \word .endm @ In FireRed, this command is a nop. - .macro plantberrytree byte1, byte2, byte3 + .macro plantberrytree .byte 0x8a - .byte \byte1, \byte2, \byte3 .endm @ In FireRed, this command sets the byte at 0x03000EA8 to 0x01. I do not know what that means. @@ -1003,30 +999,29 @@ .endm @ Spawns a secondary box showing how much money the player has. - .macro showmoneybox X, Y + .macro showmoneybox x, y, check .byte 0x93 - .byte \X - .byte \Y + .byte \x + .byte \y + .byte \check .endm @ Hides the secondary box spawned by showmoney. - .macro hidemoneybox X, Y + .macro hidemoneybox .byte 0x94 - .byte \X - .byte \Y .endm - @ Updates the secondary box spawned by showmoney. (What does it do with its arguments?) - .macro updatemoneybox X, Y + @ Updates the secondary box spawned by showmoney. Consumes but does not use arguments. + .macro updatemoneybox x, y, check .byte 0x95 - .byte \X - .byte \Y + .byte \x + .byte \y + .byte \check .endm @ In FireRed, this command is a nop. - .macro getpricereduction word + .macro getpricereduction .byte 0x96 - .2byte \word .endm @ Fades the screen to black or back, using the specified effect. Effect 0x00 fades in, and effect 0x01 fades out. I don't know if other effects exist. @@ -1035,18 +1030,19 @@ .byte \effect .endm - .macro fadescreendelay byte1, byte2 + @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. Other modes may exist. + .macro fadescreenspeed effect, speed .byte 0x98 - .byte \byte1 - .byte \byte2 + .byte \effect + .byte \speed .endm - .macro setdarklevel word + .macro setflashradius word .byte 0x99 .2byte \word .endm - .macro animdarklevel byte + .macro animateflash byte .byte 0x9a .byte \byte .endm @@ -1062,11 +1058,11 @@ .2byte \animation .endm - @ Tells the game which party Pokmon to use for the next field move animation. - .macro setfieldeffect animation, slot + @ Sets up the field effect argument argument with the value value. + .macro setfieldeffectarg argument, param .byte 0x9d - .byte \animation - .2byte \slot + .byte \argument + .2byte \param .endm @ Blocks script execution until all playing field move animations complete. @@ -1075,8 +1071,8 @@ .2byte \animation .endm - @ Sets which healing place the player will return to if all of the Pokmon in their party faint. A list of available healing places can be found on PokeCommunity. - .macro sethealplace flightspot + @ Sets which healing place the player will return to if all of the Pokemon in their party faint. + .macro setrespawn flightspot .byte 0x9f .2byte \flightspot .endm @@ -1086,19 +1082,19 @@ .byte 0xa0 .endm - @ Plays the specified (species) Pokmon's cry. You can use waitcry to block script execution until the sound finishes. - .macro playpokecry species, effect + @ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes. + .macro playmoncry species, effect .byte 0xa1 .2byte \species .2byte \effect .endm - @ Changes the tile at (X, Y) on the current map. - .macro setmaptile X, Y, tile_number, tile_attrib + @ Changes the metatile at (x, y) on the current map. + .macro setmetatile x, y, metatile_number, tile_attrib .byte 0xa2 - .2byte \X - .2byte \Y - .2byte \tile_number + .2byte \x + .2byte \y + .2byte \metatile_number .2byte \tile_attrib .endm @@ -1119,98 +1115,96 @@ .endm @ This command manages cases in which maps have tiles that change state when stepped on (specifically, cracked/breakable floors). - .macro tileeffect subroutine + .macro setstepcallback subroutine .byte 0xa6 .byte \subroutine .endm - .macro setmaplayoutindex word + .macro setmaplayoutindex index .byte 0xa7 - .2byte \word + .2byte \index .endm - .macro setobjectpriority word, byte1, byte2, byte3 + .macro setobjectpriority index, map, priority .byte 0xa8 - .2byte \word - .byte \byte1 - .byte \byte2 - .byte \byte3 + .2byte \index + map \map + .byte \priority .endm - .macro resetobjectpriority word, byte1, byte2 + .macro resetobjectpriority index, map .byte 0xa9 - .2byte \word - .byte \byte1 - .byte \byte2 + .2byte \index + map \map .endm - .macro createvobject byte1, byte2, word1, word2, byte3, byte4 + .macro createvobject sprite, byte2, x, y, elevation, direction .byte 0xaa - .byte \byte1 + .byte \sprite .byte \byte2 - .2byte \word1 - .2byte \word2 - .byte \byte3 - .byte \byte4 + .2byte \x + .2byte \y + .byte \elevation + .byte \direction .endm - .macro turnvobject byte1, byte2 + .macro turnvobject index, direction .byte 0xab - .byte \byte1 - .byte \byte2 + .byte \index + .byte \direction .endm - @ Queues the opening of the door tile at (X, Y) with an animation. - .macro opendoor X, Y + @ Opens the door metatile at (X, Y) with an animation. + .macro opendoor x, y .byte 0xac - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ Queues the closing of the door tile at (X, Y) with an animation. - .macro closedoor X, Y + @ Closes the door metatile at (X, Y) with an animation. + .macro closedoor x, y .byte 0xad - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ Executes the state changes queued with setdooropened, setdoorclosed, setdooropened2, and setdoorclosed2. + @ Waits for the door animation started with opendoor or closedoor to finish. .macro waitdooranim .byte 0xae .endm - @ Queues the opening of the door tile at (X, Y) without an animation. - .macro setdooropen X, Y + @ Sets the door tile at (x, y) to be open without an animation. + .macro setdooropen x, y .byte 0xaf - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ Queues the closing of the door tile at (X, Y) without an animation. - .macro setdoorclosed X, Y + @ Sets the door tile at (x, y) to be closed without an animation. + .macro setdoorclosed2 x, y .byte 0xb0 - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ In FireRed, this command is a nop. + @ In Emerald, this command consumes its parameters and does nothing. In FireRed, this command is a nop. .macro addelevmenuitem .byte 0xb1 .endm - @ In FireRed, this command is a nop. + @ In FireRed and Emerald, this command is a nop. .macro showelevmenu .byte 0xb2 .endm - .macro checkcoins word + .macro checkcoins out .byte 0xb3 - .2byte \word + .2byte \out .endm - .macro givecoins word + .macro givecoins count .byte 0xb4 - .2byte \word + .2byte \count .endm .macro takecoins word @@ -1226,7 +1220,7 @@ .2byte \item .endm - @ Starts a wild battle against the Pokmon generated by setwildbattle. Blocks script execution until the battle finishes. + @ Starts a wild battle against the Pokemon generated by setwildbattle. Blocks script execution until the battle finishes. .macro dowildbattle .byte 0xb7 .endm @@ -1264,55 +1258,55 @@ .4byte \pointer .endm - .macro vloadword pointer + .macro vloadptr pointer .byte 0xbe .4byte \pointer .endm - .macro vgetstring byte, pointer + .macro vbufferstring byte, pointer .byte 0xbf .byte \byte .4byte \pointer .endm @ Spawns a secondary box showing how many Coins the player has. - .macro showcoinsbox X, Y + .macro showcoinsbox x, y .byte 0xc0 - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Hides the secondary box spawned by showcoins. It doesn't appear to use its arguments, but they are still required. - .macro hidecoinsbox X, Y + @ Hides the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. + .macro hidecoinsbox x, y .byte 0xc1 - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Updates the secondary box spawned by showcoins. (What does it do with its arguments?) - .macro updatecoinsbox X, Y + @ Updates the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. + .macro updatecoinsbox x, y .byte 0xc2 - .byte \X - .byte \Y + .byte \x + .byte \y .endm - @ Increases the value of the specified hidden variable by 1. The hidden variable's value will not be allowed to exceed 0x00FFFFFF. - .macro incrementgamestat a + @ Increases the value of the specified game stat by 1. The stat's value will not be allowed to exceed 0x00FFFFFF. + .macro incrementgamestat stat .byte 0xc3 - .byte \a + .byte \stat .endm - @ Clone of warp... Except that it doesn't appear to have any effect when used in some of FireRed's default level scripts. (If it did, Berry Forest would be impossible to enter...) - .macro setescapewarp map, warp, X, Y + @ Sets the destination that using an Escape Rope or Dig will take the player to. + .macro setescapewarp map, warp, x, y .byte 0xc4 map \map .byte \warp - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm @ Blocks script execution until cry finishes. - .macro waitpokecry + .macro waitmoncry .byte 0xc5 .endm @@ -1357,128 +1351,52 @@ .4byte \value .endm - @ Makes the Pokmon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle. - .macro setobedience slot + @ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle. + .macro setmonobedient slot .byte 0xcd .2byte \slot .endm - @ Checks if the Pokmon in the specified slot of the player's party is obedient. If the Pokmon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokmon is obedient (or if the specified slot is empty or invalid), 0x0000 is written. - .macro checkobedience slot + @ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokemon is obedient (or if the specified slot is empty or invalid), 0x0000 is written. + .macro checkmonobedience slot .byte 0xce .2byte \slot .endm - @ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the offset specified by the pointer at 0x020370A4. + @ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the offset specified by the pointer at 0x020375C0. .macro execram .byte 0xcf .endm @ Sets worldmapflag to 1. This allows the player to Fly to the corresponding map, if that map has a flightspot. - .macro setworldflag worldmapflag + .macro setworldmapflag worldmapflag .byte 0xd0 .2byte \worldmapflag .endm @ Clone of warpteleport? It is apparently only used in FR/LG, and only with specials.[source] - .macro warpteleport2 map, warp, X, Y + .macro warpteleport2 map, warp, x, y .byte 0xd1 map \map .byte \warp - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm - @ Changes the location where the player caught the Pokmon in the specified slot of their party. A list of valid catch locations can be found on PokeCommunity. - .macro setcatchlocale slot, location + @ Changes the location where the player caught the Pokemon in the specified slot of their party. + .macro setmonmetlocation slot, location .byte 0xd2 .2byte \slot .byte \location .endm - .macro event_d3 unknown + .macro getbraillestringwidth pointer .byte 0xd3 - .2byte \unknown + .4byte \pointer .endm - .macro event_d4 + .macro bufferitemnameplural out, item, quantity .byte 0xd4 - .endm - - @ In FireRed, this command is a nop. - .macro event_d5 var - .byte 0xd5 - .2byte \var - .endm - - .macro event_d6 - .byte 0xd6 - .endm - - .macro warp7 map, byte, word1, word2 - .byte 0xd7 - map \map - .byte \byte - .2byte \word1 - .2byte \word2 - .endm - - .macro event_d8 - .byte 0xd8 - .endm - - .macro event_d9 - .byte 0xd9 - .endm - - .macro hidebox2 - .byte 0xda - .endm - - .macro message3 pointer - .byte 0xdb - .4byte \pointer - .endm - - .macro fadescreen3 byte - .byte 0xdc - .byte \byte - .endm - - .macro buffertrainerclass byte, word - .byte 0xdd - .byte \byte - .2byte \word - .endm - - .macro buffertrainername byte, word - .byte 0xde - .byte \byte - .2byte \word - .endm - - .macro pokenavcall pointer - .byte 0xdf - .4byte \pointer - .endm - - .macro warp8 map, byte, word1, word2 - .byte 0xe0 - map \map - .byte \byte - .2byte \word1 - .2byte \word2 - .endm - - .macro buffercontesttype byte, word - .byte 0xe1 - .byte \byte - .2byte \word - .endm - - @ Writes the name of the specified (item) item to the specified buffer. If the specified item is a Berry (0x85 - 0xAE) or Poke Ball (0x4) and if the quantity is 2 or more, the buffered string will be pluralized ("IES" or "S" appended). If the specified item is the Enigma Berry, I have no idea what this command does (but testing showed no pluralization). If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead. - .macro storeitems out, item, quantity - .byte 0xe2 .byte \out .2byte \item .2byte \quantity @@ -1517,7 +1435,10 @@ callstd \function .endm - .macro givedecoration decoration - setorcopyvar 0x8000, \decoration - callstd 7 + .macro giveitemfanfaremsg msg, item, amount=1, fanfare=MUS_FANFA1 + loadword 0, \msg + setorcopyvar 0x8000, \item + setorcopyvar 0x8001, \amount + setorcopyvar 0x8002, \fanfare + callstd 9 .endm diff --git a/asm/macros/map.inc b/asm/macros/map.inc index 9c68e8414..075993fd3 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -14,13 +14,15 @@ .4byte \address .endm - .macro object_event byte1, word1, byte2, byte3, byte4, byte5, byte6, byte7, byte8, byte9, byte10, byte11, byte12, byte13, byte14, script, word2, byte15, byte16 - .byte \byte1 - .2byte \word1 - .byte \byte2, \byte3, \byte4, \byte5, \byte6, \byte7, \byte8, \byte9, \byte10, \byte11, \byte12, \byte13, \byte14 + .macro object_event index:req, gfx:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req + .byte \index + .2byte \gfx + .byte 0 + .2byte \x, \y + .byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0 + .2byte \trainer_type, \sight_radius_tree_etc .4byte \script - .2byte \word2 - .byte \byte15, \byte16 + .2byte \event_flag, 0 inc _num_npcs .endm @@ -53,6 +55,10 @@ inc _num_signs .endm + .macro bg_hidden_item_event x, y, height, item, flag, unknown + bg_event \x, \y, \height, 7, 0, \item, \flag, \unknown + .endm + .macro map_events npcs, warps, traps, signs .byte _num_npcs, _num_warps, _num_traps, _num_signs .4byte \npcs, \warps, \traps, \signs diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc index 909b24916..f077a8f5a 100644 --- a/asm/macros/movement.inc +++ b/asm/macros/movement.inc @@ -5,7 +5,7 @@ .endm .endm - enum_start + enum_start 0 create_movement step_00 create_movement step_01 create_movement step_02 @@ -108,6 +108,8 @@ create_movement step_63 create_movement step_64 create_movement step_65 + create_movement step_66 + create_movement step_67 enum_start 0x91 create_movement step_91 diff --git a/asm/mail.s b/asm/mail.s index 1ecaf17cc..77f8864ed 100644 --- a/asm/mail.s +++ b/asm/mail.s @@ -200,7 +200,7 @@ _080BED40: _080BED8C: movs r0, 0 bl SetVBlankCallback - bl remove_some_task + bl ScanlineEffect_Stop movs r0, 0 movs r1, 0 bl SetGpuReg @@ -209,13 +209,13 @@ _080BED8C: cmp r0, 0 bne _080BEDB4 movs r0, 0x22 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080BF0F4 .align 2, 0 _080BEDB0: .4byte gUnknown_203AAC4 _080BEDB4: movs r0, 0x1E - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080BF0F4 _080BEDBC: add r1, sp, 0x8 @@ -623,7 +623,7 @@ _080BF112: .align 2, 0 _080BF128: .4byte sub_80BF368 _080BF12C: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -811,7 +811,7 @@ _080BF260: str r0, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r8 ldr r0, [r1] adds r0, 0xF8 @@ -856,7 +856,7 @@ _080BF2CE: str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r5] adds r0, r1, 0 adds r0, 0xE9 @@ -875,7 +875,7 @@ _080BF2CE: str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s index d2cc06070..aecca0735 100644 --- a/asm/mailbox_pc.s +++ b/asm/mailbox_pc.s @@ -81,7 +81,7 @@ sub_810EBE0: @ 810EBE0 adds r4, r0 ldrb r0, [r4] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] @@ -154,7 +154,7 @@ _0810EC62: movs r1, 0x2 movs r2, 0x8 adds r3, r5, 0 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _0810EC82: add sp, 0x34 pop {r4,r5} @@ -176,7 +176,7 @@ sub_810EC98: @ 810EC98 ldr r7, _0810ED50 @ =gUnknown_203ADE0 ldr r0, _0810ED54 @ =gFameCheckerText_Cancel mov r12, r0 - ldr r5, _0810ED58 @ =gUnknown_3005E70 + ldr r5, _0810ED58 @ =gMultiuseListMenuTemplate ldr r1, _0810ED5C @ =gUnknown_203ADDC mov r8, r1 ldrb r0, [r6, 0x5] @@ -263,7 +263,7 @@ _0810ECCE: .align 2, 0 _0810ED50: .4byte gUnknown_203ADE0 _0810ED54: .4byte gFameCheckerText_Cancel -_0810ED58: .4byte gUnknown_3005E70 +_0810ED58: .4byte gMultiuseListMenuTemplate _0810ED5C: .4byte gUnknown_203ADDC _0810ED60: .4byte gUnknown_8454003 _0810ED64: .4byte sub_810ED6C @@ -303,7 +303,7 @@ sub_810ED80: @ 810ED80 movs r1, 0xC2 movs r2, 0xC movs r3, 0x94 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized strb r0, [r4, 0xA] add sp, 0x10 pop {r4} diff --git a/asm/main_menu.s b/asm/main_menu.s index ae0a4c69b..f88fea21a 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -113,7 +113,7 @@ sub_800C318: @ 800C318 ldr r0, _0800C4B0 @ =0x810001ff str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl remove_some_task + bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes @@ -639,7 +639,7 @@ _0800C828: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0800C86C @ =gUnknown_8234618 bl sub_800D0B4 movs r0, 0 @@ -670,7 +670,7 @@ _0800C870: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C8E8 @ =gUnknown_8415A6E @@ -679,7 +679,7 @@ _0800C870: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 bl sub_800CE58 ldr r4, _0800C8EC @ =gUnknown_8234620 adds r0, r4, 0 @@ -725,7 +725,7 @@ _0800C8F0: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C9B8 @ =gUnknown_8415A6E @@ -734,7 +734,7 @@ _0800C8F0: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 strh r0, [r6, 0x1C] str r5, [sp] @@ -745,7 +745,7 @@ _0800C8F0: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 bl sub_800CE58 ldr r4, _0800C9C0 @ =gUnknown_8234620 adds r0, r4, 0 @@ -983,7 +983,7 @@ _0800CB2E: bl FreeAllWindowBuffers adds r0, r6, 0 bl DestroyTask - bl sub_812EB2C + bl StartNewGameScene b _0800CB84 .align 2, 0 _0800CB44: .4byte gUnknown_2031DE0 @@ -1005,7 +1005,7 @@ _0800CB64: .4byte gPlttBufferUnfaded _0800CB68: .4byte gPlttBufferFaded _0800CB6C: .4byte gUnknown_2031DE0 _0800CB70: - ldr r0, _0800CB8C @ =sub_81422AC + ldr r0, _0800CB8C @ =c2_mystery_gift bl SetMainCallback2 bl sub_812B478 bl FreeAllWindowBuffers @@ -1017,7 +1017,7 @@ _0800CB84: pop {r0} bx r0 .align 2, 0 -_0800CB8C: .4byte sub_81422AC +_0800CB8C: .4byte c2_mystery_gift thumb_func_end sub_800CA94 thumb_func_start sub_800CB90 @@ -1141,7 +1141,7 @@ sub_800CC68: @ 800CC68 ands r0, r1 cmp r0, 0 bne _0800CC86 - ldr r0, _0800CC90 @ =sub_8078914 + ldr r0, _0800CC90 @ =CB2_InitTitleScreen bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -1151,7 +1151,7 @@ _0800CC86: bx r0 .align 2, 0 _0800CC8C: .4byte gPaletteFade -_0800CC90: .4byte sub_8078914 +_0800CC90: .4byte CB2_InitTitleScreen thumb_func_end sub_800CC68 thumb_func_start sub_800CC94 @@ -1355,7 +1355,7 @@ sub_800CDF8: @ 800CDF8 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x4 bl PutWindowTilemap movs r0, 0x4 @@ -1404,7 +1404,7 @@ sub_800CE70: @ 800CE70 movs r1, 0x2 movs r2, 0x2 movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 add r1, sp, 0xC movs r2, 0 ldr r0, _0800CED0 @ =gSaveBlock2Ptr @@ -1430,7 +1430,7 @@ _0800CE96: movs r1, 0x2 movs r2, 0x3E movs r3, 0x12 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x14 pop {r0} bx r0 @@ -1455,7 +1455,7 @@ sub_800CED4: @ 800CED4 movs r1, 0x2 movs r2, 0x2 movs r3, 0x22 - bl box_print + bl AddTextPrinterParameterized3 ldr r4, _0800CF38 @ =gSaveBlock2Ptr ldr r0, [r4] ldrh r1, [r0, 0xE] @@ -1479,7 +1479,7 @@ sub_800CED4: @ 800CED4 movs r1, 0x2 movs r2, 0x3E movs r3, 0x22 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x2C pop {r4-r6} pop {r0} @@ -1525,7 +1525,7 @@ _0800CF6A: movs r1, 0x2 movs r2, 0x2 movs r3, 0x32 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC adds r1, r6, 0 movs r2, 0 @@ -1541,7 +1541,7 @@ _0800CF6A: movs r1, 0x2 movs r2, 0x3E movs r3, 0x32 - bl box_print + bl AddTextPrinterParameterized3 _0800CFAE: add sp, 0x2C pop {r4-r6} @@ -1586,7 +1586,7 @@ _0800CFE2: movs r1, 0x2 movs r2, 0x2 movs r3, 0x42 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC adds r1, r6, 0 movs r2, 0x2 @@ -1602,7 +1602,7 @@ _0800CFE2: movs r1, 0x2 movs r2, 0x3E movs r3, 0x42 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x2C pop {r4-r6} pop {r0} @@ -1656,7 +1656,7 @@ sub_800D094: @ 800D094 ldr r1, _0800D0AC @ =0x000001b1 movs r0, 0 movs r2, 0x20 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldr r0, _0800D0B0 @ =gUnknown_8234638 bl sub_800D1E8 pop {r0} diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s index b7e20c4bf..8df50601a 100644 --- a/asm/map_name_popup.s +++ b/asm/map_name_popup.s @@ -360,7 +360,7 @@ _080983C6: adds r0, r4, 0 adds r1, r6, 0 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter adds r0, r4, 0 bl PutWindowTilemap adds r0, r5, 0 diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s deleted file mode 100644 index 1b406a74d..000000000 --- a/asm/map_obj_lock.s +++ /dev/null @@ -1,302 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start walkrun_is_standing_still -walkrun_is_standing_still: @ 8069554 - push {lr} - ldr r0, _08069564 @ =gPlayerAvatar - ldrb r0, [r0, 0x3] - cmp r0, 0x1 - beq _08069568 - movs r0, 0x1 - b _0806956A - .align 2, 0 -_08069564: .4byte gPlayerAvatar -_08069568: - movs r0, 0 -_0806956A: - pop {r1} - bx r1 - thumb_func_end walkrun_is_standing_still - - thumb_func_start sub_8069570 -sub_8069570: @ 8069570 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl walkrun_is_standing_still - lsls r0, 24 - cmp r0, 0 - beq _0806958A - bl sub_805C270 - adds r0, r4, 0 - bl DestroyTask -_0806958A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8069570 - - thumb_func_start sub_8069590 -sub_8069590: @ 8069590 - push {lr} - ldr r0, _080695A8 @ =sub_8069570 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _080695AC - bl sub_805C780 - movs r0, 0x1 - b _080695AE - .align 2, 0 -_080695A8: .4byte sub_8069570 -_080695AC: - movs r0, 0 -_080695AE: - pop {r1} - bx r1 - thumb_func_end sub_8069590 - - thumb_func_start ScriptFreezeMapObjects -ScriptFreezeMapObjects: @ 80695B4 - push {lr} - bl player_bitmagic - ldr r0, _080695C8 @ =sub_8069570 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080695C8: .4byte sub_8069570 - thumb_func_end ScriptFreezeMapObjects - - thumb_func_start sub_80695CC -sub_80695CC: @ 80695CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0806963C @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080695F6 - bl walkrun_is_standing_still - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _080695F6 - bl sub_805C270 - strh r4, [r5, 0x8] -_080695F6: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0806961E - ldr r2, _08069640 @ =gMapObjects - ldr r0, _08069644 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _0806961E - adds r0, r1, 0 - bl FreezeMapObject - movs r0, 0x1 - strh r0, [r5, 0xA] -_0806961E: - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08069634 - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08069634 - adds r0, r6, 0 - bl DestroyTask -_08069634: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0806963C: .4byte gTasks -_08069640: .4byte gMapObjects -_08069644: .4byte gUnknown_3005074 - thumb_func_end sub_80695CC - - thumb_func_start sub_8069648 -sub_8069648: @ 8069648 - push {lr} - ldr r0, _08069660 @ =sub_80695CC - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _08069664 - bl sub_805C780 - movs r0, 0x1 - b _08069666 - .align 2, 0 -_08069660: .4byte sub_80695CC -_08069664: - movs r0, 0 -_08069666: - pop {r1} - bx r1 - thumb_func_end sub_8069648 - - thumb_func_start LockSelectedMapObject -LockSelectedMapObject: @ 806966C - push {r4,r5,lr} - ldr r4, _080696B0 @ =gUnknown_3005074 - ldrb r0, [r4] - bl FreezeMapObjectsExceptOne - ldr r0, _080696B4 @ =sub_80695CC - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080696B8 @ =gMapObjects - ldrb r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _080696AA - adds r0, r1, 0 - bl FreezeMapObject - ldr r0, _080696BC @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0xA] -_080696AA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080696B0: .4byte gUnknown_3005074 -_080696B4: .4byte sub_80695CC -_080696B8: .4byte gMapObjects -_080696BC: .4byte gTasks - thumb_func_end LockSelectedMapObject - - thumb_func_start sub_80696C0 -sub_80696C0: @ 80696C0 - push {lr} - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080696EC @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - pop {r0} - bx r0 - .align 2, 0 -_080696EC: .4byte gMapObjects - thumb_func_end sub_80696C0 - - thumb_func_start sub_80696F0 -sub_80696F0: @ 80696F0 - push {r4,lr} - ldr r4, _08069738 @ =gMapObjects - ldr r0, _0806973C @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0806970E - adds r0, r1, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished -_0806970E: - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08069738: .4byte gMapObjects -_0806973C: .4byte gUnknown_3005074 - thumb_func_end sub_80696F0 - - thumb_func_start sub_8069740 -sub_8069740: @ 8069740 - push {lr} - ldr r0, _0806975C @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08069760 @ =gMapObjects - adds r0, r1 - ldr r1, _08069764 @ =gSpecialVar_Facing - ldrb r1, [r1] - bl FieldObjectFaceOppositeDirection - pop {r0} - bx r0 - .align 2, 0 -_0806975C: .4byte gUnknown_3005074 -_08069760: .4byte gMapObjects -_08069764: .4byte gSpecialVar_Facing - thumb_func_end sub_8069740 - - thumb_func_start sub_8069768 -sub_8069768: @ 8069768 - push {lr} - ldr r0, _08069780 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08069784 @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimActive - pop {r0} - bx r0 - .align 2, 0 -_08069780: .4byte gUnknown_3005074 -_08069784: .4byte gMapObjects - thumb_func_end sub_8069768 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/map_preview_screen.s b/asm/map_preview_screen.s index c8f063d5a..be9f5e3c5 100644 --- a/asm/map_preview_screen.s +++ b/asm/map_preview_screen.s @@ -345,7 +345,7 @@ sub_80F8318: @ 80F8318 adds r0, r6, 0 movs r1, 0x2 movs r3, 0x2 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 mov r0, r8 add sp, 0x14 pop {r3,r4} diff --git a/asm/menu.s b/asm/menu.s index e593eef1c..2229f41d8 100644 --- a/asm/menu.s +++ b/asm/menu.s @@ -556,8 +556,8 @@ _0810F258: .4byte 0x00000803 _0810F25C: .4byte 0x00000804 thumb_func_end sub_810EE5C - thumb_func_start sub_810F260 -sub_810F260: @ 810F260 + thumb_func_start ClearMenuWindow_BorderThickness2 +ClearMenuWindow_BorderThickness2: @ 810F260 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -583,7 +583,7 @@ _0810F28E: bx r0 .align 2, 0 _0810F294: .4byte sub_810F298 - thumb_func_end sub_810F260 + thumb_func_end ClearMenuWindow_BorderThickness2 thumb_func_start sub_810F298 sub_810F298: @ 810F298 @@ -866,8 +866,8 @@ _0810F4D0: .4byte gUnknown_203ADF0 _0810F4D4: .4byte gUnknown_203ADF2 thumb_func_end DrawWindowBorder - thumb_func_start sub_810F4D8 -sub_810F4D8: @ 810F4D8 + thumb_func_start ClearMenuWindow +ClearMenuWindow: @ 810F4D8 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -893,7 +893,7 @@ _0810F506: bx r0 .align 2, 0 _0810F50C: .4byte sub_810F510 - thumb_func_end sub_810F4D8 + thumb_func_end ClearMenuWindow thumb_func_start sub_810F510 sub_810F510: @ 810F510 @@ -933,8 +933,8 @@ sub_810F510: @ 810F510 bx r0 thumb_func_end sub_810F510 - thumb_func_start sub_810F558 -sub_810F558: @ 810F558 + thumb_func_start CreateWindow_SnapRight_StdPal +CreateWindow_SnapRight_StdPal: @ 810F558 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1005,10 +1005,10 @@ _0810F5C4: bx r1 .align 2, 0 _0810F5E4: .4byte gUnknown_203ADF4 - thumb_func_end sub_810F558 + thumb_func_end CreateWindow_SnapRight_StdPal - thumb_func_start sub_810F5E8 -sub_810F5E8: @ 810F5E8 + thumb_func_start PrintTextOnRightSnappedWindow +PrintTextOnRightSnappedWindow: @ 810F5E8 push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 @@ -1041,7 +1041,7 @@ sub_810F5E8: @ 810F5E8 adds r0, r1, 0 movs r1, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 cmp r6, 0 beq _0810F63E ldrb r0, [r4] @@ -1055,10 +1055,10 @@ _0810F63E: .align 2, 0 _0810F648: .4byte gUnknown_203ADF4 _0810F64C: .4byte gUnknown_8456618 - thumb_func_end sub_810F5E8 + thumb_func_end PrintTextOnRightSnappedWindow - thumb_func_start sub_810F650 -sub_810F650: @ 810F650 + thumb_func_start Menu_PrintHelpSystemUIHeader +Menu_PrintHelpSystemUIHeader: @ 810F650 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1118,7 +1118,7 @@ _0810F684: adds r0, r1, 0 movs r1, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _0810F6CE: ldrb r0, [r6] movs r1, 0 @@ -1132,7 +1132,7 @@ _0810F6CE: movs r1, 0x1 movs r2, 0x4 movs r3, 0x1 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 cmp r7, 0 beq _0810F6F6 ldrb r0, [r6] @@ -1145,7 +1145,7 @@ _0810F6F6: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_810F650 + thumb_func_end Menu_PrintHelpSystemUIHeader thumb_func_start sub_810F704 sub_810F704: @ 810F704 @@ -1264,8 +1264,8 @@ _0810F7BE: _0810F7D4: .4byte gUnknown_203ADE4 thumb_func_end sub_810F774 - thumb_func_start sub_810F7D8 -sub_810F7D8: @ 810F7D8 + thumb_func_start ProgramAndPlaceMenuCursorOnWindow +ProgramAndPlaceMenuCursorOnWindow: @ 810F7D8 push {r4-r6,lr} sub sp, 0x10 ldr r4, [sp, 0x20] @@ -1297,7 +1297,7 @@ sub_810F7D8: @ 810F7D8 pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_810F7D8 + thumb_func_end ProgramAndPlaceMenuCursorOnWindow thumb_func_start sub_810F818 sub_810F818: @ 810F818 @@ -1336,7 +1336,7 @@ sub_810F818: @ 810F818 adds r1, r6, 0 ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow lsls r0, 24 lsrs r0, 24 add sp, 0x14 @@ -1883,7 +1883,7 @@ _0810FC30: adds r0, r7, 0 ldr r1, [sp, 0x14] ldr r3, [sp, 0x18] - bl sub_812E62C + bl AddTextPrinterParameterized5 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -2272,8 +2272,8 @@ sub_810FF04: @ 810FF04 bx r1 thumb_func_end sub_810FF04 - thumb_func_start sub_810FF60 -sub_810FF60: @ 810FF60 + thumb_func_start CreateYesNoMenu +CreateYesNoMenu: @ 810FF60 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -2410,7 +2410,7 @@ sub_810FF60: @ 810FF60 adds r1, r6, 0 mov r2, r8 mov r3, r9 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow add sp, 0x1C pop {r3-r5} mov r8, r3 @@ -2422,7 +2422,7 @@ sub_810FF60: @ 810FF60 .align 2, 0 _0811009C: .4byte gUnknown_203ADF3 _081100A0: .4byte gUnknown_841623D - thumb_func_end sub_810FF60 + thumb_func_end CreateYesNoMenu thumb_func_start sub_81100A4 sub_81100A4: @ 81100A4 @@ -2439,14 +2439,14 @@ sub_81100A4: @ 81100A4 movs r2, 0 str r2, [sp, 0x8] movs r3, 0 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 thumb_func_end sub_81100A4 - thumb_func_start ProcessMenuInputNoWrap_ -ProcessMenuInputNoWrap_: @ 81100C8 + thumb_func_start Menu_ProcessInputNoWrapClearOnChoose +Menu_ProcessInputNoWrapClearOnChoose: @ 81100C8 push {r4,lr} bl ProcessMenuInputNoWrapAround lsls r0, 24 @@ -2461,7 +2461,7 @@ _081100DE: pop {r4} pop {r1} bx r1 - thumb_func_end ProcessMenuInputNoWrap_ + thumb_func_end Menu_ProcessInputNoWrapClearOnChoose thumb_func_start sub_81100E8 sub_81100E8: @ 81100E8 @@ -2469,7 +2469,7 @@ sub_81100E8: @ 81100E8 ldr r4, _08110100 @ =gUnknown_203ADF3 ldrb r0, [r4] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl RemoveWindow pop {r4} diff --git a/asm/menu2.s b/asm/menu2.s deleted file mode 100644 index c196f77b4..000000000 --- a/asm/menu2.s +++ /dev/null @@ -1,563 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start box_print -box_print: @ 812E51C - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r1, 0 - ldr r6, [sp, 0x20] - ldr r5, [sp, 0x24] - ldr r1, [sp, 0x28] - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - str r1, [sp] - mov r1, sp - strb r0, [r1, 0x4] - mov r0, sp - strb r4, [r0, 0x5] - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x8] - mov r0, sp - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - adds r0, r4, 0 - movs r1, 0x2 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x3 - bl GetFontAttribute - mov r1, sp - strb r0, [r1, 0xB] - mov r3, sp - ldrb r2, [r3, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0xC] - mov r2, sp - ldrb r0, [r6, 0x1] - lsls r0, 4 - movs r4, 0xF - strb r0, [r2, 0xC] - ldrb r2, [r6] - adds r0, r4, 0 - ands r0, r2 - ldrb r2, [r3, 0xD] - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xD] - mov r2, sp - ldrb r0, [r6, 0x2] - lsls r0, 4 - ands r1, r4 - orrs r1, r0 - strb r1, [r2, 0xD] - mov r0, sp - adds r1, r5, 0 - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end box_print - - thumb_func_start AddTextPrinterParametrized2 -AddTextPrinterParametrized2: @ 812E5A4 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - adds r5, r1, 0 - ldr r1, [sp, 0x28] - mov r8, r1 - ldr r1, [sp, 0x2C] - mov r9, r1 - ldr r6, [sp, 0x30] - ldr r1, [sp, 0x34] - ldr r4, [sp, 0x38] - str r4, [sp] - mov r4, sp - strb r0, [r4, 0x4] - mov r0, sp - strb r5, [r0, 0x5] - strb r2, [r0, 0x6] - strb r3, [r0, 0x7] - mov r2, sp - ldrb r0, [r0, 0x6] - strb r0, [r2, 0x8] - mov r0, sp - ldrb r0, [r0, 0x7] - strb r0, [r2, 0x9] - mov r0, sp - mov r2, r8 - strb r2, [r0, 0xA] - mov r2, r9 - strb r2, [r0, 0xB] - ldrb r3, [r4, 0xC] - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r4, 0xC] - mov r3, sp - ldrb r0, [r6, 0x1] - lsls r0, 4 - movs r5, 0xF - strb r0, [r3, 0xC] - ldrb r3, [r6] - adds r0, r5, 0 - ands r0, r3 - ldrb r3, [r4, 0xD] - ands r2, r3 - orrs r2, r0 - strb r2, [r4, 0xD] - mov r3, sp - ldrb r0, [r6, 0x2] - lsls r0, 4 - ands r2, r5 - orrs r2, r0 - strb r2, [r3, 0xD] - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - movs r2, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end AddTextPrinterParametrized2 - - thumb_func_start sub_812E62C -sub_812E62C: @ 812E62C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - adds r6, r1, 0 - ldr r4, [sp, 0x2C] - ldr r1, [sp, 0x30] - mov r8, r1 - ldr r7, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r1, [sp, 0x3C] - mov r9, r1 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - str r2, [sp] - mov r1, sp - strb r0, [r1, 0x4] - mov r0, sp - strb r6, [r0, 0x5] - strb r3, [r0, 0x6] - strb r4, [r0, 0x7] - strb r3, [r0, 0x8] - strb r4, [r0, 0x9] - strb r5, [r0, 0xA] - mov r1, r9 - strb r1, [r0, 0xB] - mov r2, sp - ldrb r1, [r2, 0xC] - movs r5, 0x10 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2, 0xC] - adds r0, r6, 0 - movs r1, 0x5 - bl GetFontAttribute - mov r3, sp - lsls r0, 4 - ldrb r2, [r3, 0xC] - movs r4, 0xF - adds r1, r4, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xC] - adds r0, r6, 0 - movs r1, 0x6 - bl GetFontAttribute - mov r2, sp - adds r1, r4, 0 - ands r1, r0 - ldrb r0, [r2, 0xD] - ands r5, r0 - orrs r5, r1 - strb r5, [r2, 0xD] - adds r0, r6, 0 - movs r1, 0x7 - bl GetFontAttribute - mov r2, sp - lsls r0, 4 - ldrb r1, [r2, 0xD] - ands r4, r1 - orrs r4, r0 - strb r4, [r2, 0xD] - mov r0, sp - mov r1, r8 - adds r2, r7, 0 - bl AddTextPrinter - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812E62C - - thumb_func_start sub_812E6DC -sub_812E6DC: @ 812E6DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r2, 16 - lsrs r5, r2, 16 - lsls r3, 16 - lsrs r6, r3, 16 - movs r4, 0 - ldr r0, _0812E734 @ =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r0, [r2] - ldr r7, _0812E738 @ =gStringVar4 - cmp r0, 0xFF - beq _0812E70A -_0812E700: - adds r4, 0x1 - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812E700 -_0812E70A: - adds r0, r7, 0 - bl StringExpandPlaceholders - cmp r4, 0x5 - beq _0812E73C - lsls r3, r5, 24 - lsrs r3, 24 - lsls r0, r6, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r0, r8 - movs r1, 0x2 - adds r2, r7, 0 - bl AddTextPrinterParameterized - b _0812E75C - .align 2, 0 -_0812E734: .4byte gSaveBlock2Ptr -_0812E738: .4byte gStringVar4 -_0812E73C: - lsls r3, r5, 24 - lsrs r3, 24 - lsls r0, r6, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - mov r0, r8 - movs r1, 0x2 - adds r2, r7, 0 - bl sub_812E62C -_0812E75C: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812E6DC - - thumb_func_start sub_812E768 -sub_812E768: @ 812E768 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [sp, 0x48] - ldr r4, [sp, 0x4C] - ldr r1, [sp, 0x50] - ldr r5, [sp, 0x54] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - lsls r4, 16 - lsrs r4, 16 - lsls r1, 16 - lsrs r1, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r2, [sp, 0x4] - ldrh r0, [r2, 0x4] - ldr r2, [sp, 0xC] - subs r0, r2 - ldr r2, [sp, 0x8] - adds r2, r1, r2 - str r2, [sp, 0x10] - cmp r0, r1 - bge _0812E7B4 - ldr r1, [sp, 0x8] - adds r0, r1 - str r0, [sp, 0x10] -_0812E7B4: - ldr r2, [sp, 0x4] - ldrh r1, [r2, 0x6] - subs r0, r1, r4 - cmp r0, r5 - bge _0812E7C6 - adds r0, r3, r1 - subs r0, r4 - str r0, [sp, 0x14] - b _0812E7CA -_0812E7C6: - adds r5, r3, r5 - str r5, [sp, 0x14] -_0812E7CA: - ldr r0, [sp] - ldrh r1, [r0, 0x4] - movs r2, 0x7 - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x18] - ldr r0, [sp, 0x4] - ldrh r1, [r0, 0x4] - adds r0, r1, 0 - ands r0, r2 - adds r1, r0 - asrs r1, 3 - str r1, [sp, 0x1C] - mov r12, r3 - mov r8, r4 - ldr r1, [sp, 0x14] - cmp r12, r1 - blt _0812E7F4 - b _0812E932 -_0812E7F4: - ldr r5, [sp, 0x8] - ldr r6, [sp, 0xC] - mov r2, r12 - adds r2, 0x1 - str r2, [sp, 0x20] - mov r0, r8 - adds r0, 0x1 - str r0, [sp, 0x24] - ldr r1, [sp, 0x10] - cmp r5, r1 - blt _0812E80C - b _0812E922 -_0812E80C: - movs r7, 0x1 - movs r2, 0xF0 - mov r10, r2 - movs r0, 0xF - mov r9, r0 -_0812E816: - asrs r0, r5, 1 - movs r1, 0x3 - ands r0, r1 - ldr r2, [sp] - ldr r1, [r2] - adds r1, r0 - asrs r0, r5, 3 - lsls r0, 5 - adds r1, r0 - mov r2, r12 - asrs r0, r2, 3 - ldr r2, [sp, 0x18] - muls r0, r2 - lsls r0, 5 - adds r1, r0 - mov r2, r12 - lsls r0, r2, 29 - lsrs r0, 27 - adds r3, r1, r0 - asrs r0, r6, 1 - movs r1, 0x3 - ands r0, r1 - ldr r2, [sp, 0x4] - ldr r1, [r2] - adds r1, r0 - asrs r0, r6, 3 - lsls r0, 5 - adds r1, r0 - mov r2, r8 - asrs r0, r2, 3 - ldr r2, [sp, 0x1C] - muls r0, r2 - lsls r0, 5 - adds r1, r0 - mov r2, r8 - lsls r0, r2, 29 - lsrs r0, 27 - adds r4, r1, r0 - adds r0, r4, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E8C2 - subs r4, 0x1 - adds r0, r6, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E89A - ldrh r0, [r4] - ldr r2, _0812E88C @ =0x00000fff - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E890 - ldrb r1, [r3] - mov r0, r10 - ands r0, r1 - lsls r0, 8 - b _0812E912 - .align 2, 0 -_0812E88C: .4byte 0x00000fff -_0812E890: - ldrb r1, [r3] - mov r0, r9 - ands r0, r1 - lsls r0, 12 - b _0812E912 -_0812E89A: - ldrh r0, [r4] - ldr r2, _0812E8B4 @ =0x0000f0ff - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E8B8 - ldrb r1, [r3] - mov r0, r10 - ands r0, r1 - lsls r0, 4 - b _0812E912 - .align 2, 0 -_0812E8B4: .4byte 0x0000f0ff -_0812E8B8: - ldrb r1, [r3] - mov r0, r9 - ands r0, r1 - lsls r0, 8 - b _0812E912 -_0812E8C2: - adds r0, r6, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E8EE - ldrh r0, [r4] - ldr r2, _0812E8E0 @ =0x0000ff0f - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E8E4 - ldrb r1, [r3] - mov r0, r10 - b _0812E910 - .align 2, 0 -_0812E8E0: .4byte 0x0000ff0f -_0812E8E4: - ldrb r1, [r3] - mov r0, r9 - ands r0, r1 - lsls r0, 4 - b _0812E912 -_0812E8EE: - ldrh r0, [r4] - ldr r2, _0812E908 @ =0x0000fff0 - ands r2, r0 - adds r0, r5, 0 - ands r0, r7 - cmp r0, 0 - beq _0812E90C - ldrb r1, [r3] - mov r0, r10 - ands r0, r1 - lsrs r0, 4 - b _0812E912 - .align 2, 0 -_0812E908: .4byte 0x0000fff0 -_0812E90C: - ldrb r1, [r3] - mov r0, r9 -_0812E910: - ands r0, r1 -_0812E912: - orrs r2, r0 - strh r2, [r4] - adds r5, 0x1 - adds r6, 0x1 - ldr r0, [sp, 0x10] - cmp r5, r0 - bge _0812E922 - b _0812E816 -_0812E922: - ldr r1, [sp, 0x20] - mov r12, r1 - ldr r2, [sp, 0x24] - mov r8, r2 - ldr r0, [sp, 0x14] - cmp r12, r0 - bge _0812E932 - b _0812E7F4 -_0812E932: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812E768 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s index 3a0f709da..e68c428cd 100644 --- a/asm/menu_helpers.s +++ b/asm/menu_helpers.s @@ -57,7 +57,7 @@ _080BF4B8: adds r1, r7, 0 adds r2, r4, 0 adds r3, r5, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 ldr r1, _080BF50C @ =gUnknown_20399CC ldr r0, [sp, 0x34] str r0, [r1] @@ -129,7 +129,7 @@ sub_80BF560: @ 80BF560 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -182,8 +182,8 @@ _080BF5C8: .4byte gTasks _080BF5CC: .4byte gUnknown_20399C8 thumb_func_end sub_80BF560 - thumb_func_start sub_80BF5D0 -sub_80BF5D0: @ 80BF5D0 + thumb_func_start CreateYesNoMenuWithCallbacks +CreateYesNoMenuWithCallbacks: @ 80BF5D0 push {r4-r7,lr} sub sp, 0xC adds r6, r0, 0 @@ -210,7 +210,7 @@ sub_80BF5D0: @ 80BF5D0 str r5, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, _080BF624 @ =gUnknown_20399C8 str r7, [r0] ldr r1, _080BF628 @ =gTasks @@ -228,7 +228,7 @@ sub_80BF5D0: @ 80BF5D0 _080BF624: .4byte gUnknown_20399C8 _080BF628: .4byte gTasks _080BF62C: .4byte sub_80BF560 - thumb_func_end sub_80BF5D0 + thumb_func_end CreateYesNoMenuWithCallbacks thumb_func_start GetLRKeysState GetLRKeysState: @ 80BF630 @@ -334,7 +334,7 @@ itemid_80BF6D8_mail_related: @ 80BF6D8 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 beq _080BF6EE bl InUnionRoom @@ -357,10 +357,10 @@ _080BF702: bx r1 thumb_func_end itemid_80BF6D8_mail_related - thumb_func_start sub_80BF708 -sub_80BF708: @ 80BF708 + thumb_func_start MenuHelpers_LinkSomething +MenuHelpers_LinkSomething: @ 80BF708 push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 beq _080BF71A ldr r0, _080BF720 @ =gReceivedRemoteLinkPlayers @@ -377,12 +377,12 @@ _080BF724: _080BF726: pop {r1} bx r1 - thumb_func_end sub_80BF708 + thumb_func_end MenuHelpers_LinkSomething thumb_func_start sub_80BF72C sub_80BF72C: @ 80BF72C push {lr} - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 beq _080BF742 @@ -418,8 +418,8 @@ _080BF764: bx r1 thumb_func_end sub_80BF748 - thumb_func_start sub_80BF768 -sub_80BF768: @ 80BF768 + thumb_func_start VblankHblankHandlerSetZero +VblankHblankHandlerSetZero: @ 80BF768 push {lr} movs r0, 0 bl SetVBlankCallback @@ -427,13 +427,13 @@ sub_80BF768: @ 80BF768 bl SetHBlankCallback pop {r0} bx r0 - thumb_func_end sub_80BF768 + thumb_func_end VblankHblankHandlerSetZero thumb_func_start sub_80BF77C sub_80BF77C: @ 80BF77C push {r4,lr} sub sp, 0xC - bl sub_80BF7C8 + bl InitBgReg mov r1, sp movs r0, 0 strh r0, [r1] @@ -465,8 +465,8 @@ _080BF7C0: .4byte 0x05000100 _080BF7C4: .4byte 0x01000200 thumb_func_end sub_80BF77C - thumb_func_start sub_80BF7C8 -sub_80BF7C8: @ 80BF7C8 + thumb_func_start InitBgReg +InitBgReg: @ 80BF7C8 push {lr} movs r0, 0 movs r1, 0 @@ -517,7 +517,7 @@ sub_80BF7C8: @ 80BF7C8 bl ChangeBgY pop {r0} bx r0 - thumb_func_end sub_80BF7C8 + thumb_func_end InitBgReg thumb_func_start sub_80BF848 sub_80BF848: @ 80BF848 diff --git a/asm/menu_indicators.s b/asm/menu_indicators.s index 0dad7d3c1..28e783731 100644 --- a/asm/menu_indicators.s +++ b/asm/menu_indicators.s @@ -38,7 +38,7 @@ _0813392A: _0813393A: movs r0, 0x34 ldrsh r3, [r4, r0] - ldr r1, _0813395C @ =gUnknown_825E074 + ldr r1, _0813395C @ =gSineTable ldrh r2, [r4, 0x38] lsls r0, r2, 24 lsrs r0, 23 @@ -54,11 +54,11 @@ _08133954: strh r0, [r4, 0x24] b _0813397E .align 2, 0 -_0813395C: .4byte gUnknown_825E074 +_0813395C: .4byte gSineTable _08133960: movs r0, 0x34 ldrsh r3, [r4, r0] - ldr r1, _0813398C @ =gUnknown_825E074 + ldr r1, _0813398C @ =gSineTable ldrh r2, [r4, 0x38] lsls r0, r2, 24 lsrs r0, 23 @@ -81,7 +81,7 @@ _08133984: pop {r0} bx r0 .align 2, 0 -_0813398C: .4byte gUnknown_825E074 +_0813398C: .4byte gSineTable thumb_func_end sub_8133904 thumb_func_start AddScrollIndicatorArrowObject @@ -294,8 +294,8 @@ _08133B38: .4byte 0x0000ffff _08133B3C: .4byte gSprites thumb_func_end AddScrollIndicatorArrowPair - thumb_func_start AddScrollIndicatorArrowPairParametrized -AddScrollIndicatorArrowPairParametrized: @ 8133B40 + thumb_func_start AddScrollIndicatorArrowPairParameterized +AddScrollIndicatorArrowPairParameterized: @ 8133B40 push {r4,lr} adds r4, r1, 0 subs r0, 0x2 @@ -345,7 +345,7 @@ _08133B76: bx r1 .align 2, 0 _08133BA0: .4byte gUnknown_203B130 - thumb_func_end AddScrollIndicatorArrowPairParametrized + thumb_func_end AddScrollIndicatorArrowPairParameterized thumb_func_start sub_8133BA4 sub_8133BA4: @ 8133BA4 @@ -959,7 +959,7 @@ _0813403C: .4byte gSprites ObjectCB_RedArrowCursor: @ 8134040 push {lr} adds r2, r0, 0 - ldr r1, _08134068 @ =gUnknown_825E074 + ldr r1, _08134068 @ =gSineTable ldrh r3, [r2, 0x2E] lsls r0, r3, 24 lsrs r0, 23 @@ -978,7 +978,7 @@ _08134058: pop {r0} bx r0 .align 2, 0 -_08134068: .4byte gUnknown_825E074 +_08134068: .4byte gSineTable thumb_func_end ObjectCB_RedArrowCursor thumb_func_start nullsub_95 diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s deleted file mode 100644 index 790c3c0b2..000000000 --- a/asm/mystery_gift_menu.s +++ /dev/null @@ -1,410 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8142078 -sub_8142078: @ 8142078 - push {lr} - bl ProcessSpriteCopyRequests - bl LoadOam - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8142078 - - thumb_func_start sub_814208C -sub_814208C: @ 814208C - push {lr} - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - thumb_func_end sub_814208C - - thumb_func_start sub_81420A4 -sub_81420A4: @ 81420A4 - push {r4-r7,lr} - sub sp, 0xC - adds r7, r0, 0 - ldr r0, _081420C4 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r6, r0, r1 - ldrb r5, [r6] - cmp r5, 0x1 - bne _081420BA - b _081421EC -_081420BA: - cmp r5, 0x1 - bgt _081420C8 - cmp r5, 0 - beq _081420D6 - b _081422A0 - .align 2, 0 -_081420C4: .4byte gMain -_081420C8: - cmp r5, 0x2 - bne _081420CE - b _08142254 -_081420CE: - cmp r5, 0x3 - bne _081420D4 - b _08142274 -_081420D4: - b _081422A0 -_081420D6: - movs r0, 0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - bl remove_some_task - movs r0, 0x1 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _081421E0 @ =gUnknown_8466D60 - 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 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0x3 - bl SetBgTilemapBuffer - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0x2 - bl SetBgTilemapBuffer - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0x1 - bl SetBgTilemapBuffer - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0 - movs r1, 0xA - movs r2, 0xE0 - bl sub_814FE40 - movs r0, 0 - movs r1, 0x1 - movs r2, 0xF0 - bl sub_814FDA0 - ldr r1, _081421E4 @ =gUnknown_8466D30 - movs r2, 0x80 - lsls r2, 1 - str r5, [sp] - movs r0, 0x3 - movs r3, 0 - bl sub_80F696C - ldr r0, _081421E8 @ =gUnknown_8466D70 - bl InitWindows - bl DeactivateAllTextPrinters - movs r1, 0xC0 - lsls r1, 7 - movs r0, 0 - bl ClearGpuRegBits - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - b _0814226C - .align 2, 0 -_081421E0: .4byte gUnknown_8466D60 -_081421E4: .4byte gUnknown_8466D30 -_081421E8: .4byte gUnknown_8466D70 -_081421EC: - ldr r0, _08142250 @ =gUnknown_8466D10 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x2 - bl stdpal_get - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0x20 - str r4, [sp] - str r4, [sp, 0x4] - movs r5, 0x11 - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - bl sub_8142420 - lsls r0, r7, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8142344 - b _0814226C - .align 2, 0 -_08142250: .4byte gUnknown_8466D10 -_08142254: - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0 - bl CopyBgTilemapBufferToVram -_0814226C: - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _081422A0 -_08142274: - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg - ldr r0, _08142298 @ =0x00000149 - bl PlayBGM - ldr r0, _0814229C @ =sub_8142078 - bl SetVBlankCallback - movs r0, 0xC5 - bl EnableInterrupts - movs r0, 0x1 - b _081422A2 - .align 2, 0 -_08142298: .4byte 0x00000149 -_0814229C: .4byte sub_8142078 -_081422A0: - movs r0, 0 -_081422A2: - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81420A4 - - thumb_func_start sub_81422AC -sub_81422AC: @ 81422AC - push {lr} - movs r0, 0 - bl sub_81420A4 - cmp r0, 0 - beq _081422C8 - ldr r0, _081422CC @ =sub_814208C - bl SetMainCallback2 - ldr r1, _081422D0 @ =gUnknown_203F3B8 - movs r0, 0 - strb r0, [r1] - bl task_add_00_mystery_gift -_081422C8: - pop {r0} - bx r0 - .align 2, 0 -_081422CC: .4byte sub_814208C -_081422D0: .4byte gUnknown_203F3B8 - thumb_func_end sub_81422AC - - thumb_func_start sub_81422D4 -sub_81422D4: @ 81422D4 - push {lr} - movs r0, 0x1 - bl sub_81420A4 - cmp r0, 0 - beq _081422F0 - ldr r0, _081422F4 @ =sub_814208C - bl SetMainCallback2 - ldr r1, _081422F8 @ =gUnknown_203F3B8 - movs r0, 0x1 - strb r0, [r1] - bl sub_81438A0 -_081422F0: - pop {r0} - bx r0 - .align 2, 0 -_081422F4: .4byte sub_814208C -_081422F8: .4byte gUnknown_203F3B8 - thumb_func_end sub_81422D4 - - thumb_func_start sub_81422FC -sub_81422FC: @ 81422FC - push {lr} - ldr r1, _0814233C @ =gUnknown_203F3B8 - movs r0, 0 - strb r0, [r1] - bl FreeAllWindowBuffers - movs r0, 0 - bl GetBgTilemapBuffer - bl Free - movs r0, 0x1 - bl GetBgTilemapBuffer - bl Free - movs r0, 0x2 - bl GetBgTilemapBuffer - bl Free - movs r0, 0x3 - bl GetBgTilemapBuffer - bl Free - ldr r0, _08142340 @ =sub_8078914 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0814233C: .4byte gUnknown_203F3B8 -_08142340: .4byte sub_8078914 - thumb_func_end sub_81422FC - - thumb_func_start sub_8142344 -sub_8142344: @ 8142344 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - cmp r5, 0 - bne _081423B4 - ldr r6, _081423A4 @ =gUnknown_841EDCA - cmp r4, 0x1 - bne _08142362 - ldr r6, _081423A8 @ =gUnknown_8415F51 -_08142362: - str r5, [sp] - str r5, [sp, 0x4] - ldr r4, _081423AC @ =gUnknown_8466EE8 - str r4, [sp, 0x8] - str r5, [sp, 0xC] - ldr r0, _081423B0 @ =gUnknown_841EDBD - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - movs r0, 0 - adds r1, r6, 0 - movs r2, 0 - bl GetStringWidth - movs r2, 0xDE - subs r2, r0 - lsls r2, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r6, [sp, 0x10] - movs r0, 0 - movs r1, 0 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - b _081423E8 - .align 2, 0 -_081423A4: .4byte gUnknown_841EDCA -_081423A8: .4byte gUnknown_8415F51 -_081423AC: .4byte gUnknown_8466EE8 -_081423B0: .4byte gUnknown_841EDBD -_081423B4: - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - ldr r5, _08142400 @ =gUnknown_8466EE8 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - ldr r0, _08142404 @ =gUnknown_841DE50 - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParametrized2 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r4, [sp, 0xC] - ldr r0, _08142408 @ =gUnknown_841DE51 - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0 - movs r2, 0x78 - movs r3, 0x2 - bl AddTextPrinterParametrized2 -_081423E8: - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl PutWindowTilemap - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08142400: .4byte gUnknown_8466EE8 -_08142404: .4byte gUnknown_841DE50 -_08142408: .4byte gUnknown_841DE51 - thumb_func_end sub_8142344 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/naming_screen.s b/asm/naming_screen.s index b3c9d1f73..ef692b052 100644 --- a/asm/naming_screen.s +++ b/asm/naming_screen.s @@ -401,8 +401,8 @@ _0809DBD6: movs r1, 0 movs r2, 0 bl ChangeBgY - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 _0809DCA4: lsls r0, r4, 3 ldr r1, _0809DD50 @ =gUnknown_83E22A0 @@ -493,7 +493,7 @@ sub_809DD60: @ 809DD60 bl SetMainCallback2 bl sub_812B234 movs r0, 0x3 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 pop {r0} bx r0 .align 2, 0 @@ -959,13 +959,13 @@ _0809E156: bl StringExpandPlaceholders movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _0809E1D0 @ =gTextFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -980,7 +980,7 @@ _0809E156: movs r0, 0 movs r1, 0x2 adds r2, r4, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -2789,7 +2789,7 @@ sub_809EF54: @ 809EF54 str r2, [sp] movs r2, 0x38 movs r3, 0x25 - bl AddPseudoFieldObject + bl AddPseudoEventObject adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -3657,7 +3657,7 @@ _0809F5EE: movs r1, 0x2 movs r2, 0x68 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _0809F614: add sp, 0x10 pop {r4,r5} @@ -4196,7 +4196,7 @@ _0809FA12: adds r0, r6, 0 movs r1, 0x1 movs r2, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -4317,7 +4317,7 @@ sub_809FAE4: @ 809FAE4 str r1, [sp, 0x8] movs r1, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] diff --git a/asm/new_game.s b/asm/new_game.s index cec2b2c9a..234fefcd7 100644 --- a/asm/new_game.s +++ b/asm/new_game.s @@ -183,7 +183,7 @@ sub_8054A28: @ 8054A28 bl ZeroPlayerPartyMons bl ZeroEnemyPartyMons bl sub_81089BC - bl sub_81320AC + bl ResetTMCaseCursorPos bl sub_813D6E4 bl sub_811089C bl Random @@ -257,12 +257,12 @@ sub_8054A60: @ 8054A60 strb r5, [r0] bl ZeroPlayerPartyMons bl sub_808C7E0 - bl sub_8141C54 + bl ClearRoamerData ldr r0, [r6] ldr r1, _08054B68 @ =0x00000296 adds r0, r1 strh r5, [r0] - bl sub_809A2DC + bl ClearItemSlotsInAllBagPockets bl sub_80EB658 bl sub_809C794 bl sub_80BDD34 diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s index b3844a165..9efda4372 100644 --- a/asm/new_menu_helpers.s +++ b/asm/new_menu_helpers.s @@ -272,8 +272,8 @@ _080F695E: bx r1 thumb_func_end sub_80F68F0 - thumb_func_start sub_80F696C -sub_80F696C: @ 80F696C + thumb_func_start DecompressAndLoadBgGfxUsingHeap +DecompressAndLoadBgGfxUsingHeap: @ 80F696C push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -333,7 +333,7 @@ _080F69D2: .align 2, 0 _080F69E0: .4byte task_free_buf_after_copying_tile_data_to_vram _080F69E4: .4byte gTasks - thumb_func_end sub_80F696C + thumb_func_end DecompressAndLoadBgGfxUsingHeap thumb_func_start sub_80F69E8 sub_80F69E8: @ 80F69E8 @@ -486,8 +486,8 @@ _080F6AFC: bx r1 thumb_func_end sub_80F6AD0 - thumb_func_start sub_80F6B08 -sub_80F6B08: @ 80F6B08 + thumb_func_start SetBgRectPal +SetBgRectPal: @ 80F6B08 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -561,7 +561,7 @@ _080F6B80: bx r0 .align 2, 0 _080F6B90: .4byte 0x00000fff - thumb_func_end sub_80F6B08 + thumb_func_end SetBgRectPal thumb_func_start sub_80F6B94 sub_80F6B94: @ 80F6B94 @@ -672,8 +672,8 @@ sub_80F6C14: @ 80F6C14 bx r0 thumb_func_end sub_80F6C14 - thumb_func_start sub_80F6C6C -sub_80F6C6C: @ 80F6C6C + thumb_func_start InitStandardTextBoxWindows +InitStandardTextBoxWindows: @ 80F6C6C push {lr} ldr r0, _080F6C84 @ =gUnknown_841F42C bl InitWindows @@ -686,7 +686,7 @@ sub_80F6C6C: @ 80F6C6C .align 2, 0 _080F6C84: .4byte gUnknown_841F42C _080F6C88: .4byte gUnknown_203ABE0 - thumb_func_end sub_80F6C6C + thumb_func_end InitStandardTextBoxWindows thumb_func_start sub_80F6C8C sub_80F6C8C: @ 80F6C8C @@ -696,8 +696,8 @@ sub_80F6C8C: @ 80F6C8C bx r0 thumb_func_end sub_80F6C8C - thumb_func_start sub_80F6C98 -sub_80F6C98: @ 80F6C98 + thumb_func_start ResetBg0 +ResetBg0: @ 80F6C98 push {lr} movs r0, 0 movs r1, 0 @@ -711,7 +711,7 @@ sub_80F6C98: @ 80F6C98 bl sub_80F6E9C pop {r0} bx r0 - thumb_func_end sub_80F6C98 + thumb_func_end ResetBg0 thumb_func_start sub_80F6CBC sub_80F6CBC: @ 80F6CBC @@ -725,8 +725,8 @@ sub_80F6CBC: @ 80F6CBC bx r1 thumb_func_end sub_80F6CBC - thumb_func_start AddTextPrinterParametrized -AddTextPrinterParametrized: @ 80F6CD0 + thumb_func_start AddTextPrinterParameterized2 +AddTextPrinterParameterized2: @ 80F6CD0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -796,7 +796,7 @@ AddTextPrinterParametrized: @ 80F6CD0 bx r1 .align 2, 0 _080F6D58: .4byte gTextFlags - thumb_func_end AddTextPrinterParametrized + thumb_func_end AddTextPrinterParameterized2 thumb_func_start sub_80F6D5C sub_80F6D5C: @ 80F6D5C @@ -819,7 +819,7 @@ sub_80F6D5C: @ 80F6D5C lsrs r0, 24 cmp r0, 0 bne _080F6DB0 - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -832,7 +832,7 @@ sub_80F6D5C: @ 80F6D5C str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _080F6DFC .align 2, 0 _080F6DA8: .4byte gTextFlags @@ -840,7 +840,7 @@ _080F6DAC: .4byte gStringVar4 _080F6DB0: cmp r0, 0x1 bne _080F6DDC - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -853,12 +853,12 @@ _080F6DB0: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x5 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _080F6DFC .align 2, 0 _080F6DD8: .4byte gStringVar4 _080F6DDC: - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -871,7 +871,7 @@ _080F6DDC: str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 _080F6DFC: add sp, 0x10 pop {r4,r5} @@ -896,7 +896,7 @@ sub_80F6E08: @ 80F6E08 ands r1, r2 orrs r1, r0 strb r1, [r3] - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -910,7 +910,7 @@ sub_80F6E08: @ 80F6E08 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4} pop {r0} @@ -948,7 +948,7 @@ sub_80F6E54: @ 80F6E54 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4,r5} pop {r0} @@ -984,19 +984,19 @@ _080F6EC4: lsls r1, 2 movs r0, 0 movs r2, 0xF0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 _080F6ED4: movs r1, 0x85 lsls r1, 2 movs r0, 0 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame pop {r0} bx r0 thumb_func_end sub_80F6E9C - thumb_func_start sub_80F6EE4 -sub_80F6EE4: @ 80F6EE4 + thumb_func_start DrawDialogueFrame +DrawDialogueFrame: @ 80F6EE4 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -1022,10 +1022,10 @@ _080F6F12: bx r0 .align 2, 0 _080F6F18: .4byte sub_80F7124 - thumb_func_end sub_80F6EE4 + thumb_func_end DrawDialogueFrame - thumb_func_start sub_80F6F1C -sub_80F6F1C: @ 80F6F1C + thumb_func_start DrawStdWindowFrame +DrawStdWindowFrame: @ 80F6F1C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -1051,10 +1051,10 @@ _080F6F4A: bx r0 .align 2, 0 _080F6F50: .4byte sub_80F6FD4 - thumb_func_end sub_80F6F1C + thumb_func_end DrawStdWindowFrame - thumb_func_start sub_80F6F54 -sub_80F6F54: @ 80F6F54 + thumb_func_start ClearDialogWindowAndFrame +ClearDialogWindowAndFrame: @ 80F6F54 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -1087,10 +1087,10 @@ _080F6F8E: .align 2, 0 _080F6F94: .4byte sub_80F76CC _080F6F98: .4byte gUnknown_203ADFA - thumb_func_end sub_80F6F54 + thumb_func_end ClearDialogWindowAndFrame - thumb_func_start sub_80F6F9C -sub_80F6F9C: @ 80F6F9C + thumb_func_start ClearStdWindowAndFrame +ClearStdWindowAndFrame: @ 80F6F9C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 @@ -1116,7 +1116,7 @@ _080F6FCA: bx r0 .align 2, 0 _080F6FD0: .4byte sub_80F7684 - thumb_func_end sub_80F6F9C + thumb_func_end ClearStdWindowAndFrame thumb_func_start sub_80F6FD4 sub_80F6FD4: @ 80F6FD4 @@ -2033,7 +2033,7 @@ _080F7798: lsls r1, 2 adds r0, r4, 0 movs r2, 0xF0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 _080F77A4: movs r2, 0x80 lsls r2, 2 @@ -2049,37 +2049,37 @@ _080F77A4: thumb_func_start sub_80F77B8 sub_80F77B8: @ 80F77B8 push {lr} - ldr r0, _080F77C8 @ =gUnknown_841F408 + ldr r0, _080F77C8 @ =gTMCaseMainWindowPalette movs r1, 0xE0 movs r2, 0x14 bl LoadPalette pop {r0} bx r0 .align 2, 0 -_080F77C8: .4byte gUnknown_841F408 +_080F77C8: .4byte gTMCaseMainWindowPalette thumb_func_end sub_80F77B8 - thumb_func_start sub_80F77CC -sub_80F77CC: @ 80F77CC + thumb_func_start Menu_LoadStdPalAt +Menu_LoadStdPalAt: @ 80F77CC push {lr} adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r0, _080F77E0 @ =gUnknown_841F408 + ldr r0, _080F77E0 @ =gTMCaseMainWindowPalette movs r2, 0x14 bl LoadPalette pop {r0} bx r0 .align 2, 0 -_080F77E0: .4byte gUnknown_841F408 - thumb_func_end sub_80F77CC +_080F77E0: .4byte gTMCaseMainWindowPalette + thumb_func_end Menu_LoadStdPalAt thumb_func_start sub_80F77E4 sub_80F77E4: @ 80F77E4 - ldr r0, _080F77E8 @ =gUnknown_841F408 + ldr r0, _080F77E8 @ =gTMCaseMainWindowPalette bx lr .align 2, 0 -_080F77E8: .4byte gUnknown_841F408 +_080F77E8: .4byte gTMCaseMainWindowPalette thumb_func_end sub_80F77E4 thumb_func_start sub_80F77EC @@ -2091,14 +2091,14 @@ sub_80F77EC: @ 80F77EC bls _080F77F8 movs r1, 0 _080F77F8: - ldr r0, _080F7804 @ =gUnknown_841F408 + ldr r0, _080F7804 @ =gTMCaseMainWindowPalette lsls r1, 1 adds r1, r0 ldrh r0, [r1] pop {r1} bx r1 .align 2, 0 -_080F7804: .4byte gUnknown_841F408 +_080F7804: .4byte gTMCaseMainWindowPalette thumb_func_end sub_80F77EC thumb_func_start DisplayItemMessageOnField @@ -2116,7 +2116,7 @@ DisplayItemMessageOnField: @ 80F7808 lsls r4, 24 lsrs r4, 24 bl sub_80F6E9C - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 movs r2, 0x80 @@ -2156,7 +2156,7 @@ sub_80F7858: @ 80F7858 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 @@ -2179,7 +2179,7 @@ sub_80F7880: @ 80F7880 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 @@ -2187,8 +2187,8 @@ sub_80F7880: @ 80F7880 _080F78A4: .4byte gUnknown_841F43C thumb_func_end sub_80F7880 - thumb_func_start sub_80F78A8 -sub_80F78A8: @ 80F78A8 + thumb_func_start GetTextSpeedSetting +GetTextSpeedSetting: @ 80F78A8 push {lr} ldr r3, _080F78D8 @ =gSaveBlock2Ptr ldr r2, [r3] @@ -2216,7 +2216,7 @@ _080F78C4: .align 2, 0 _080F78D8: .4byte gSaveBlock2Ptr _080F78DC: .4byte gUnknown_841F428 - thumb_func_end sub_80F78A8 + thumb_func_end GetTextSpeedSetting thumb_func_start sub_80F78E0 sub_80F78E0: @ 80F78E0 @@ -2347,7 +2347,7 @@ sub_80F79A4: @ 80F79A4 lsls r1, 2 movs r0, 0 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame pop {r0} bx r0 thumb_func_end sub_80F79A4 diff --git a/asm/normal.s b/asm/normal.s new file mode 100644 index 000000000..165fa150f --- /dev/null +++ b/asm/normal.s @@ -0,0 +1,1978 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B9904 +sub_80B9904: @ 80B9904 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B993C @ =gBattleAnimArgs + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080B9940 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080B9944 + ldrh r0, [r5, 0x6] + negs r0, r0 + strh r0, [r4, 0x30] + movs r0, 0x1 + strh r0, [r4, 0x36] + b _080B9952 + .align 2, 0 +_080B993C: .4byte gBattleAnimArgs +_080B9940: .4byte gBattleAnimAttacker +_080B9944: + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + strh r1, [r4, 0x36] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080B9952: + ldr r0, _080B9968 @ =gBattleAnimArgs + ldrh r0, [r0, 0x8] + strh r0, [r4, 0x34] + ldr r1, _080B996C @ =sub_80B9970 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9968: .4byte gBattleAnimArgs +_080B996C: .4byte sub_80B9970 + thumb_func_end sub_80B9904 + + thumb_func_start sub_80B9970 +sub_80B9970: @ 80B9970 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x1E + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r1, 0xA + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + cmp r0, 0x7F + bhi _080B99A2 + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080B99AA +_080B99A2: + ldrb r0, [r4, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r4, 0x5] +_080B99AA: + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080B99CE + adds r0, r4, 0 + bl DestroyAnimSprite +_080B99CE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B9970 + + thumb_func_start sub_80B99D4 +sub_80B99D4: @ 80B99D4 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldr r4, _080B9A0C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_80B9A14 + movs r1, 0x2 + ldrsb r1, [r4, r1] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + ldrh r4, [r4, 0x8] + str r4, [sp] + bl BeginNormalPaletteFade + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B9A10 @ =sub_80B9A5C + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9A0C: .4byte gBattleAnimArgs +_080B9A10: .4byte sub_80B9A5C + thumb_func_end sub_80B99D4 + + thumb_func_start sub_80B9A14 +sub_80B9A14: @ 80B9A14 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + lsls r0, 16 + lsrs r0, 16 + movs r4, 0x1 + mov r8, r0 + mov r1, r8 + ands r1, r4 + mov r8, r1 + lsls r0, 16 + asrs r1, r0, 17 + ands r1, r4 + asrs r2, r0, 18 + ands r2, r4 + asrs r3, r0, 19 + ands r3, r4 + asrs r6, r0, 20 + ands r6, r4 + asrs r5, r0, 21 + ands r5, r4 + asrs r0, 22 + ands r0, r4 + str r6, [sp] + str r5, [sp, 0x4] + str r0, [sp, 0x8] + mov r0, r8 + bl sub_8075BE8 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80B9A14 + + thumb_func_start sub_80B9A5C +sub_80B9A5C: @ 80B9A5C + push {lr} + adds r2, r0, 0 + ldr r0, _080B9A78 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9A72 + adds r0, r2, 0 + bl DestroyAnimSprite +_080B9A72: + pop {r0} + bx r0 + .align 2, 0 +_080B9A78: .4byte gPaletteFade + thumb_func_end sub_80B9A5C + + thumb_func_start sub_80B9A7C +sub_80B9A7C: @ 80B9A7C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B9AC8 @ =gBattleAnimArgs + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x2E] + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x34] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0x38] + ldrh r0, [r4, 0xC] + strh r0, [r5, 0x3A] + ldrh r0, [r4] + strh r0, [r5, 0x3C] + movs r1, 0x3C + ldrsh r0, [r5, r1] + bl sub_80B9A14 + ldrb r1, [r4, 0x8] + ldrh r2, [r4, 0x6] + bl BlendPalettes + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B9ACC @ =sub_80B9AD0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9AC8: .4byte gBattleAnimArgs +_080B9ACC: .4byte sub_80B9AD0 + thumb_func_end sub_80B9A7C + + thumb_func_start sub_80B9AD0 +sub_80B9AD0: @ 80B9AD0 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080B9AE4 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080B9B54 +_080B9AE4: + ldr r0, _080B9B00 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9B54 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B9B08 + ldr r0, _080B9B04 @ =sub_80B9B5C + str r0, [r4, 0x1C] + b _080B9B54 + .align 2, 0 +_080B9B00: .4byte gPaletteFade +_080B9B04: .4byte sub_80B9B5C +_080B9B08: + movs r2, 0x3C + ldrsh r0, [r4, r2] + bl sub_80B9A14 + adds r3, r0, 0 + ldrh r1, [r4, 0x30] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080B9B2E + ldrh r1, [r4, 0x36] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x34] + adds r0, r3, 0 + bl BlendPalettes + b _080B9B3C +_080B9B2E: + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x38] + adds r0, r3, 0 + bl BlendPalettes +_080B9B3C: + ldrh r0, [r4, 0x30] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + eors r0, r1 + strh r0, [r4, 0x30] + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + subs r0, 0x1 + strh r0, [r4, 0x32] +_080B9B54: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B9AD0 + + thumb_func_start sub_80B9B5C +sub_80B9B5C: @ 80B9B5C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B9B88 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9B82 + movs r1, 0x3C + ldrsh r0, [r4, r1] + bl sub_80B9A14 + movs r1, 0 + movs r2, 0 + bl BlendPalettes + adds r0, r4, 0 + bl DestroyAnimSprite +_080B9B82: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9B88: .4byte gPaletteFade + thumb_func_end sub_80B9B5C + + thumb_func_start sub_80B9B8C +sub_80B9B8C: @ 80B9B8C + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080B9BD0 @ =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + movs r2, 0 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r2, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x30] + movs r0, 0x8 + strh r0, [r4, 0x32] + movs r0, 0x28 + strh r0, [r4, 0x34] + movs r0, 0x70 + strh r0, [r4, 0x36] + strh r2, [r4, 0x38] + ldr r1, _080B9BD4 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080B9BD8 @ =sub_8074AE0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9BD0: .4byte gBattleAnimArgs +_080B9BD4: .4byte move_anim_8074EE0 +_080B9BD8: .4byte sub_8074AE0 + thumb_func_end sub_80B9B8C + + thumb_func_start sub_80B9BDC +sub_80B9BDC: @ 80B9BDC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B9C20 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r3, _080B9C24 @ =gBattleAnimArgs + ldrh r1, [r3] + movs r5, 0 + strh r1, [r4, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r4, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r4, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r4, 0xE] + ldrh r2, [r3, 0x8] + strh r2, [r4, 0x10] + ldrh r1, [r3, 0xA] + strh r1, [r4, 0x12] + strh r5, [r4, 0x18] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + bl sub_80B9C2C + ldr r0, _080B9C28 @ =sub_80B9C7C + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9C20: .4byte gTasks +_080B9C24: .4byte gBattleAnimArgs +_080B9C28: .4byte sub_80B9C7C + thumb_func_end sub_80B9BDC + + thumb_func_start sub_80B9C2C +sub_80B9C2C: @ 80B9C2C + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080B9C78 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + bl sub_80B9A14 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r2, [r4, 0x12] + str r2, [sp] + adds r2, r5, 0 + adds r3, r6, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9C78: .4byte gTasks + thumb_func_end sub_80B9C2C + + thumb_func_start sub_80B9C7C +sub_80B9C7C: @ 80B9C7C + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080B9CB4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9CDE + ldr r1, _080B9CB8 @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080B9CD8 + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080B9CBC + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080B9CC0 + .align 2, 0 +_080B9CB4: .4byte gPaletteFade +_080B9CB8: .4byte gTasks +_080B9CBC: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080B9CC0: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080B9CD0 + movs r2, 0 +_080B9CD0: + adds r0, r4, 0 + bl sub_80B9C2C + b _080B9CDE +_080B9CD8: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080B9CDE: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B9C7C + + thumb_func_start sub_80B9CE4 +sub_80B9CE4: @ 80B9CE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r3, _080B9D88 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r3 + ldr r2, _080B9D8C @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x8] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xA] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0xC] + ldrh r1, [r2, 0x6] + strh r1, [r0, 0xE] + ldrh r1, [r2, 0x8] + strh r1, [r0, 0x10] + ldrh r1, [r2, 0xA] + strh r1, [r0, 0x12] + strh r5, [r0, 0x18] + movs r4, 0 + ldr r0, _080B9D90 @ =gBattlersCount + ldrb r1, [r0] + mov r9, r3 + mov r8, r2 + cmp r5, r1 + bge _080B9D4C + ldr r0, _080B9D94 @ =gBattleAnimAttacker + ldrb r3, [r0] + ldr r7, _080B9D98 @ =gBattleAnimTarget + movs r0, 0x1 + mov r12, r0 + adds r2, r1, 0 +_080B9D32: + cmp r4, r3 + beq _080B9D46 + ldrb r1, [r7] + cmp r4, r1 + beq _080B9D46 + adds r1, r4, 0 + adds r1, 0x10 + mov r0, r12 + lsls r0, r1 + orrs r5, r0 +_080B9D46: + adds r4, 0x1 + cmp r4, r2 + blt _080B9D32 +_080B9D4C: + mov r2, r8 + movs r1, 0 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080B9D5A + movs r0, 0xE + orrs r5, r0 +_080B9D5A: + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 3 + add r4, r9 + lsrs r0, r5, 16 + strh r0, [r4, 0x1A] + movs r0, 0xFF + ands r5, r0 + strh r5, [r4, 0x1C] + ldrb r2, [r4, 0x10] + adds r0, r6, 0 + movs r1, 0 + bl sub_80B9DA0 + ldr r0, _080B9D9C @ =sub_80B9DF0 + str r0, [r4] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9D88: .4byte gTasks +_080B9D8C: .4byte gBattleAnimArgs +_080B9D90: .4byte gBattlersCount +_080B9D94: .4byte gBattleAnimAttacker +_080B9D98: .4byte gBattleAnimTarget +_080B9D9C: .4byte sub_80B9DF0 + thumb_func_end sub_80B9CE4 + + thumb_func_start sub_80B9DA0 +sub_80B9DA0: @ 80B9DA0 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r3, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r1, _080B9DEC @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrh r0, [r4, 0x1A] + lsls r0, 16 + ldrh r1, [r4, 0x1C] + orrs r0, r1 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r2, [r4, 0x12] + str r2, [sp] + adds r2, r5, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9DEC: .4byte gTasks + thumb_func_end sub_80B9DA0 + + thumb_func_start sub_80B9DF0 +sub_80B9DF0: @ 80B9DF0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080B9E28 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9E52 + ldr r1, _080B9E2C @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080B9E4C + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080B9E30 + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080B9E34 + .align 2, 0 +_080B9E28: .4byte gPaletteFade +_080B9E2C: .4byte gTasks +_080B9E30: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080B9E34: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080B9E44 + movs r2, 0 +_080B9E44: + adds r0, r4, 0 + bl sub_80B9DA0 + b _080B9E52 +_080B9E4C: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080B9E52: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B9DF0 + + thumb_func_start sub_80B9E58 +sub_80B9E58: @ 80B9E58 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B9E9C @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r3, _080B9EA0 @ =gBattleAnimArgs + ldrh r1, [r3] + movs r5, 0 + strh r1, [r4, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r4, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r4, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r4, 0xE] + ldrh r2, [r3, 0x8] + strh r2, [r4, 0x10] + ldrh r1, [r3, 0xA] + strh r1, [r4, 0x12] + strh r5, [r4, 0x18] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + bl sub_80B9EA8 + ldr r0, _080B9EA4 @ =sub_80B9F04 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9E9C: .4byte gTasks +_080B9EA0: .4byte gBattleAnimArgs +_080B9EA4: .4byte sub_80B9F04 + thumb_func_end sub_80B9E58 + + thumb_func_start sub_80B9EA8 +sub_80B9EA8: @ 80B9EA8 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080B9F00 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrh r0, [r4, 0x8] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r2, 0x1 + lsls r2, r0 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r0, [r4, 0x12] + str r0, [sp] + adds r0, r2, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9F00: .4byte gTasks + thumb_func_end sub_80B9EA8 + + thumb_func_start sub_80B9F04 +sub_80B9F04: @ 80B9F04 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080B9F3C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9F66 + ldr r1, _080B9F40 @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080B9F60 + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080B9F44 + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080B9F48 + .align 2, 0 +_080B9F3C: .4byte gPaletteFade +_080B9F40: .4byte gTasks +_080B9F44: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080B9F48: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080B9F58 + movs r2, 0 +_080B9F58: + adds r0, r4, 0 + bl sub_80B9EA8 + b _080B9F66 +_080B9F60: + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080B9F66: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B9F04 + + thumb_func_start sub_80B9F6C +sub_80B9F6C: @ 80B9F6C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B9FCC @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r5, _080B9FD0 @ =gBattleAnimArgs + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x8] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0xC] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0xE] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x10] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x12] + ldrh r0, [r5, 0xC] + strh r0, [r4, 0x14] + ldrh r0, [r5] + strh r0, [r4, 0x16] + ldrh r0, [r5] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + ldrb r3, [r5, 0x8] + ldrh r0, [r5, 0x6] + str r0, [sp] + adds r0, r1, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080B9FD4 @ =sub_80B9FD8 + str r0, [r4] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B9FCC: .4byte gTasks +_080B9FD0: .4byte gBattleAnimArgs +_080B9FD4: .4byte sub_80B9FD8 + thumb_func_end sub_80B9F6C + + thumb_func_start sub_80B9FD8 +sub_80B9FD8: @ 80B9FD8 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B9FFC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x8] + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080BA000 + subs r0, r1, 0x1 + strh r0, [r4, 0x8] + b _080BA084 + .align 2, 0 +_080B9FFC: .4byte gTasks +_080BA000: + ldr r0, _080BA01C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BA084 + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080BA024 + ldr r0, _080BA020 @ =sub_80BA090 + str r0, [r4] + b _080BA084 + .align 2, 0 +_080BA01C: .4byte gPaletteFade +_080BA020: .4byte sub_80BA090 +_080BA024: + ldrh r0, [r4, 0x16] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r2, 0x1 + lsls r2, r0 + ldrh r1, [r4, 0xA] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BA052 + ldrb r3, [r4, 0x10] + ldrh r0, [r4, 0xE] + str r0, [sp] + adds r0, r2, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade + b _080BA062 +_080BA052: + ldrb r3, [r4, 0x14] + ldrh r0, [r4, 0x12] + str r0, [sp] + adds r0, r2, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade +_080BA062: + ldr r0, _080BA08C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + movs r3, 0x80 + lsls r3, 1 + adds r2, r3, 0 + eors r0, r2 + strh r0, [r1, 0xA] + movs r2, 0xFF + ands r0, r2 + strh r0, [r1, 0x8] + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] +_080BA084: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA08C: .4byte gTasks + thumb_func_end sub_80B9FD8 + + thumb_func_start sub_80BA090 +sub_80BA090: @ 80BA090 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BA0E0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080BA0D6 + ldr r1, _080BA0E4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x16] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + str r5, [sp] + adds r0, r1, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl BeginNormalPaletteFade + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080BA0D6: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA0E0: .4byte gPaletteFade +_080BA0E4: .4byte gTasks + thumb_func_end sub_80BA090 + + thumb_func_start sub_80BA0E8 +sub_80BA0E8: @ 80BA0E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r2, 0 + ldr r0, _080BA160 @ =gBattleAnimAttacker + ldrb r6, [r0] + ldr r0, _080BA164 @ =gBattleAnimTarget + ldrb r7, [r0] + ldr r4, _080BA168 @ =gBattleAnimArgs + ldrh r1, [r4] + movs r5, 0x80 + lsls r5, 1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA122 + str r2, [sp] + str r2, [sp, 0x4] + str r2, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r3, 0 + bl sub_8075BE8 + adds r2, r0, 0 +_080BA122: + ldrh r1, [r4, 0x2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA134 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r6 + orrs r2, r0 +_080BA134: + ldrh r1, [r4, 0x4] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA146 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r7 + orrs r2, r0 +_080BA146: + adds r0, r2, 0 + bl InvertPlttBuffer + mov r0, r8 + bl DestroyAnimVisualTask + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA160: .4byte gBattleAnimAttacker +_080BA164: .4byte gBattleAnimTarget +_080BA168: .4byte gBattleAnimArgs + thumb_func_end sub_80BA0E8 + + thumb_func_start sub_80BA16C +sub_80BA16C: @ 80BA16C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r1, _080BA260 @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BA1AE + ldr r1, _080BA264 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r4, 0xC] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0xE] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x10] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0xA] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x12] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x14] + ldrh r0, [r1, 0xC] + strh r0, [r4, 0x16] +_080BA1AE: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080BA268 @ =gBattleAnimAttacker + ldrb r0, [r0] + mov r9, r0 + ldr r0, _080BA26C @ =gBattleAnimTarget + ldrb r0, [r0] + mov r10, r0 + ldrh r1, [r4, 0xC] + movs r7, 0x80 + lsls r7, 1 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA1D0 + ldr r5, _080BA270 @ =0x0000ffff +_080BA1D0: + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA200 + ldr r2, _080BA274 @ =gSprites + ldr r0, _080BA278 @ =gUnknown_3004FF0 + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x14 + adds r0, r2 + ldr r0, [r0] + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r1, r6, 0 + lsls r1, r0 + lsls r1, 16 + orrs r5, r1 +_080BA200: + ldrh r1, [r4, 0xE] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA214 + adds r0, r6, 0 + mov r2, r9 + lsls r0, r2 + lsls r0, 16 + orrs r5, r0 +_080BA214: + ldrh r1, [r4, 0x10] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080BA228 + adds r0, r6, 0 + mov r1, r10 + lsls r0, r1 + lsls r0, 16 + orrs r5, r0 +_080BA228: + movs r1, 0x12 + ldrsb r1, [r4, r1] + movs r2, 0x14 + ldrsb r2, [r4, r2] + movs r3, 0x16 + ldrsb r3, [r4, r3] + adds r0, r5, 0 + bl TintPlttBuffer + movs r2, 0x8 + ldrsh r1, [r4, r2] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080BA252 + adds r0, r5, 0 + bl UnfadePlttBuffer + mov r0, r8 + bl DestroyAnimVisualTask +_080BA252: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA260: .4byte gTasks +_080BA264: .4byte gBattleAnimArgs +_080BA268: .4byte gBattleAnimAttacker +_080BA26C: .4byte gBattleAnimTarget +_080BA270: .4byte 0x0000ffff +_080BA274: .4byte gSprites +_080BA278: .4byte gUnknown_3004FF0 + thumb_func_end sub_80BA16C + + thumb_func_start sub_80BA27C +sub_80BA27C: @ 80BA27C + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080BA2B0 @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x34] + movs r2, 0x6 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080BA2C4 + cmp r0, 0x1 + bgt _080BA2B4 + cmp r0, 0 + beq _080BA2BA + b _080BA2DC + .align 2, 0 +_080BA2B0: .4byte gBattleAnimArgs +_080BA2B4: + cmp r0, 0x2 + beq _080BA2CC + b _080BA2DC +_080BA2BA: + ldr r1, _080BA2C0 @ =gBattle_BG3_X + b _080BA2CE + .align 2, 0 +_080BA2C0: .4byte gBattle_BG3_X +_080BA2C4: + ldr r1, _080BA2C8 @ =gBattle_BG3_Y + b _080BA2CE + .align 2, 0 +_080BA2C8: .4byte gBattle_BG3_Y +_080BA2CC: + ldr r1, _080BA2D8 @ =gSpriteCoordOffsetX +_080BA2CE: + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + b _080BA2E4 + .align 2, 0 +_080BA2D8: .4byte gSpriteCoordOffsetX +_080BA2DC: + ldr r1, _080BA314 @ =gSpriteCoordOffsetY + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 +_080BA2E4: + movs r0, 0x3A + ldrsh r1, [r4, r0] + movs r2, 0x3C + ldrsh r0, [r4, r2] + lsls r0, 16 + orrs r1, r0 + ldrh r0, [r1] + strh r0, [r4, 0x36] + ldr r0, _080BA318 @ =gBattleAnimArgs + ldrh r0, [r0, 0x6] + strh r0, [r4, 0x38] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BA308 + bl sub_80BA3CC +_080BA308: + ldr r0, _080BA31C @ =sub_80BA320 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA314: .4byte gSpriteCoordOffsetY +_080BA318: .4byte gBattleAnimArgs +_080BA31C: .4byte sub_80BA320 + thumb_func_end sub_80BA27C + + thumb_func_start sub_80BA320 +sub_80BA320: @ 80BA320 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x34] + movs r2, 0x34 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080BA362 + subs r0, r1, 0x1 + strh r0, [r3, 0x34] + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080BA342 + subs r0, r1, 0x1 + strh r0, [r3, 0x30] + b _080BA3BA +_080BA342: + ldrh r0, [r3, 0x32] + strh r0, [r3, 0x30] + movs r0, 0x3A + ldrsh r1, [r3, r0] + movs r2, 0x3C + ldrsh r0, [r3, r2] + lsls r0, 16 + orrs r1, r0 + ldrh r0, [r3, 0x2E] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + ldrh r0, [r3, 0x2E] + negs r0, r0 + strh r0, [r3, 0x2E] + b _080BA3BA +_080BA362: + movs r0, 0x3A + ldrsh r1, [r3, r0] + movs r2, 0x3C + ldrsh r0, [r3, r2] + lsls r0, 16 + orrs r1, r0 + ldrh r0, [r3, 0x36] + strh r0, [r1] + ldrh r0, [r3, 0x38] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BA3B4 + movs r4, 0 + ldr r5, _080BA3C0 @ =gBattlersCount + ldrb r0, [r5] + cmp r4, r0 + bcs _080BA3B4 + ldr r2, _080BA3C4 @ =gSprites + mov r12, r2 + ldr r6, _080BA3C8 @ =gBattlerSpriteIds + movs r7, 0x3 + negs r7, r7 +_080BA392: + adds r0, r4, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5] + cmp r4, r0 + bcc _080BA392 +_080BA3B4: + adds r0, r3, 0 + bl DestroyAnimSprite +_080BA3BA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA3C0: .4byte gBattlersCount +_080BA3C4: .4byte gSprites +_080BA3C8: .4byte gBattlerSpriteIds + thumb_func_end sub_80BA320 + + thumb_func_start sub_80BA3CC +sub_80BA3CC: @ 80BA3CC + push {r4-r6,lr} + ldr r6, _080BA440 @ =gSprites + ldr r4, _080BA444 @ =gBattlerSpriteIds + ldr r5, _080BA448 @ =gBattleAnimAttacker + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x3 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r3, _080BA44C @ =gBattleAnimTarget + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + ldr r0, _080BA450 @ =gBattleAnimArgs + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x2 + bne _080BA454 + ldrb r0, [r5] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + b _080BA470 + .align 2, 0 +_080BA440: .4byte gSprites +_080BA444: .4byte gBattlerSpriteIds +_080BA448: .4byte gBattleAnimAttacker +_080BA44C: .4byte gBattleAnimTarget +_080BA450: .4byte gBattleAnimArgs +_080BA454: + cmp r0, 0 + bne _080BA45C + ldrb r0, [r5] + b _080BA45E +_080BA45C: + ldrb r0, [r3] +_080BA45E: + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 +_080BA470: + orrs r1, r2 + strb r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BA3CC + + thumb_func_start sub_80BA47C +sub_80BA47C: @ 80BA47C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080BA4BC @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r1 + ldr r3, _080BA4C0 @ =gBattleAnimArgs + ldrh r1, [r3] + strh r1, [r2, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r2, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0xE] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0x18] + ldr r4, _080BA4C4 @ =gBattle_BG3_X + ldrh r1, [r3] + strh r1, [r4] + ldr r4, _080BA4C8 @ =gBattle_BG3_Y + ldrh r1, [r3, 0x2] + strh r1, [r4] + ldr r1, _080BA4CC @ =sub_80BA4D0 + str r1, [r2] + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA4BC: .4byte gTasks +_080BA4C0: .4byte gBattleAnimArgs +_080BA4C4: .4byte gBattle_BG3_X +_080BA4C8: .4byte gBattle_BG3_Y +_080BA4CC: .4byte sub_80BA4D0 + thumb_func_end sub_80BA47C + + thumb_func_start sub_80BA4D0 +sub_80BA4D0: @ 80BA4D0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080BA500 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r1 + ldrh r2, [r3, 0xE] + movs r4, 0xE + ldrsh r0, [r3, r4] + mov r12, r1 + cmp r0, 0 + bne _080BA556 + ldr r0, _080BA504 @ =gBattle_BG3_X + ldrh r2, [r0] + movs r7, 0x8 + ldrsh r1, [r3, r7] + adds r6, r0, 0 + cmp r2, r1 + bne _080BA508 + ldrh r0, [r3, 0x8] + negs r0, r0 + b _080BA50A + .align 2, 0 +_080BA500: .4byte gTasks +_080BA504: .4byte gBattle_BG3_X +_080BA508: + ldrh r0, [r3, 0x8] +_080BA50A: + strh r0, [r6] + ldr r2, _080BA528 @ =gBattle_BG3_Y + ldrh r3, [r2] + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + mov r7, r12 + adds r4, r0, r7 + movs r7, 0xA + ldrsh r0, [r4, r7] + cmn r3, r0 + bne _080BA52C + movs r0, 0 + b _080BA530 + .align 2, 0 +_080BA528: .4byte gBattle_BG3_Y +_080BA52C: + ldrh r0, [r4, 0xA] + negs r0, r0 +_080BA530: + strh r0, [r2] + adds r0, r1, r5 + lsls r0, 3 + add r0, r12 + ldrh r1, [r0, 0x18] + strh r1, [r0, 0xE] + ldrh r1, [r0, 0xC] + subs r1, 0x1 + strh r1, [r0, 0xC] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0 + bne _080BA55A + strh r1, [r6] + strh r1, [r2] + adds r0, r5, 0 + bl DestroyAnimVisualTask + b _080BA55A +_080BA556: + subs r0, r2, 0x1 + strh r0, [r3, 0xE] +_080BA55A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BA4D0 + + thumb_func_start sub_80BA560 +sub_80BA560: @ 80BA560 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080BA580 @ =gBattleAnimArgs + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BA584 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + b _080BA58C + .align 2, 0 +_080BA580: .4byte gBattleAnimArgs +_080BA584: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075114 +_080BA58C: + ldr r0, _080BA5A0 @ =sub_8074F50 + str r0, [r5, 0x1C] + ldr r1, _080BA5A4 @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA5A0: .4byte sub_8074F50 +_080BA5A4: .4byte DestroyAnimSprite + thumb_func_end sub_80BA560 + + thumb_func_start sub_80BA5A8 +sub_80BA5A8: @ 80BA5A8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080BA5C8 @ =gBattleAnimArgs + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BA5CC + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + b _080BA5D4 + .align 2, 0 +_080BA5C8: .4byte gBattleAnimArgs +_080BA5CC: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075114 +_080BA5D4: + ldr r0, _080BA5EC @ =gBattleAnimArgs + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080BA5F0 @ =sub_8074F50 + str r0, [r5, 0x1C] + ldr r1, _080BA5F4 @ =sub_80B1D3C + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA5EC: .4byte gBattleAnimArgs +_080BA5F0: .4byte sub_8074F50 +_080BA5F4: .4byte sub_80B1D3C + thumb_func_end sub_80BA5A8 + + thumb_func_start sub_80BA5F8 +sub_80BA5F8: @ 80BA5F8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080BA628 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080BA61C + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080BA61C + ldr r1, _080BA62C @ =gBattleAnimArgs + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080BA61C: + adds r0, r4, 0 + bl sub_80BA560 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA628: .4byte gBattleAnimAttacker +_080BA62C: .4byte gBattleAnimArgs + thumb_func_end sub_80BA5F8 + + thumb_func_start sub_80BA630 +sub_80BA630: @ 80BA630 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080BA668 @ =gBattleAnimArgs + movs r0, 0x2 + ldrsh r1, [r5, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080BA64C + bl Random + movs r1, 0x3 + ands r1, r0 + strh r1, [r5, 0x2] +_080BA64C: + ldrb r1, [r5, 0x2] + adds r0, r4, 0 + bl StartSpriteAffineAnim + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080BA66C + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 + b _080BA674 + .align 2, 0 +_080BA668: .4byte gBattleAnimArgs +_080BA66C: + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 +_080BA674: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x30 + bl __umodsi3 + ldr r1, _080BA6B8 @ =0x0000ffe8 + adds r0, r1 + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x18 + bl __umodsi3 + ldr r1, _080BA6BC @ =0x0000fff4 + adds r0, r1 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldr r1, _080BA6C0 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080BA6C4 @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA6B8: .4byte 0x0000ffe8 +_080BA6BC: .4byte 0x0000fff4 +_080BA6C0: .4byte move_anim_8074EE0 +_080BA6C4: .4byte sub_8074F50 + thumb_func_end sub_80BA630 + + thumb_func_start sub_80BA6C8 +sub_80BA6C8: @ 80BA6C8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080BA728 @ =gBattleAnimArgs + ldrb r0, [r5] + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, _080BA72C @ =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + ldrh r0, [r0, 0x20] + adds r1, r0 + strh r1, [r4, 0x20] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + strh r1, [r4, 0x22] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x26] + ldrb r1, [r5, 0x6] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldr r1, _080BA730 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080BA734 @ =sub_8074F50 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA728: .4byte gBattleAnimArgs +_080BA72C: .4byte gSprites +_080BA730: .4byte move_anim_8074EE0 +_080BA734: .4byte sub_8074F50 + thumb_func_end sub_80BA6C8 + + thumb_func_start sub_80BA738 +sub_80BA738: @ 80BA738 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080BA750 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BA754 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075160 + b _080BA75C + .align 2, 0 +_080BA750: .4byte gBattleAnimArgs +_080BA754: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 +_080BA75C: + ldr r0, _080BA774 @ =gBattleAnimArgs + ldrh r0, [r0, 0x6] + strh r0, [r4, 0x2E] + ldr r1, _080BA778 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080BA77C @ =sub_8074C44 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA774: .4byte gBattleAnimArgs +_080BA778: .4byte DestroyAnimSprite +_080BA77C: .4byte sub_8074C44 + thumb_func_end sub_80BA738 + + thumb_func_start sub_80BA780 +sub_80BA780: @ 80BA780 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080BA7A0 @ =gBattleAnimArgs + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BA7A4 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + b _080BA7AC + .align 2, 0 +_080BA7A0: .4byte gBattleAnimArgs +_080BA7A4: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075114 +_080BA7AC: + ldr r0, _080BA7B8 @ =sub_80BA7BC + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BA7B8: .4byte sub_80BA7BC + thumb_func_end sub_80BA780 + + thumb_func_start sub_80BA7BC +sub_80BA7BC: @ 80BA7BC + push {lr} + adds r3, r0, 0 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x2E] + adds r1, r0, 0x1 + strh r1, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080BA7F2 + adds r0, r3, 0 + bl DestroyAnimSprite +_080BA7F2: + pop {r0} + bx r0 + thumb_func_end sub_80BA7BC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/oak_speech.s b/asm/oak_speech.s deleted file mode 100644 index 5f2326487..000000000 --- a/asm/oak_speech.s +++ /dev/null @@ -1,5728 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_812E944 -sub_812E944: @ 812E944 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - adds r0, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r1, [sp, 0x20] - mov r8, r1 - ldr r1, [sp, 0x24] - mov r2, r10 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0812E9DC @ =sub_812E9F8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812E9E0 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - mov r1, r10 - lsls r0, r1, 8 - strh r0, [r4, 0x8] - lsls r2, r7, 8 - mov r9, r2 - strh r2, [r4, 0xA] - strh r5, [r4, 0xC] - strh r6, [r4, 0xE] - subs r5, r1 - lsls r5, 8 - adds r0, r5, 0 - mov r1, r8 - bl __divsi3 - strh r0, [r4, 0x10] - subs r6, r7 - lsls r6, 8 - adds r0, r6, 0 - mov r1, r8 - bl __divsi3 - strh r0, [r4, 0x12] - mov r0, r8 - strh r0, [r4, 0x18] - mov r1, r9 - mov r2, r10 - orrs r1, r2 - mov r9, r1 - movs r0, 0x52 - bl SetGpuReg - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812E9DC: .4byte sub_812E9F8 -_0812E9E0: .4byte gTasks - thumb_func_end sub_812E944 - - thumb_func_start sub_812E9E4 -sub_812E9E4: @ 812E9E4 - push {lr} - ldr r0, _0812E9F4 @ =sub_812E9F8 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0812E9F4: .4byte sub_812E9F8 - thumb_func_end sub_812E9E4 - - thumb_func_start sub_812E9F8 -sub_812E9F8: @ 812E9F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0812EA28 @ =gTasks+0x8 - adds r4, r0, r1 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0812EA6E - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0812EA2C - ldrh r0, [r4, 0x8] - ldrh r1, [r4] - adds r0, r1 - strh r0, [r4] - movs r0, 0x1 - b _0812EA4C - .align 2, 0 -_0812EA28: .4byte gTasks+0x8 -_0812EA2C: - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - beq _0812EA3E - ldrh r0, [r4, 0xA] - ldrh r2, [r4, 0x2] - adds r0, r2 - b _0812EA48 -_0812EA3E: - ldrh r0, [r4, 0x4] - lsls r0, 8 - strh r0, [r4] - ldrh r0, [r4, 0x6] - lsls r0, 8 -_0812EA48: - strh r0, [r4, 0x2] - movs r0, 0 -_0812EA4C: - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x2] - ldr r1, _0812EA74 @ =0xffffff00 - ands r1, r0 - ldrh r0, [r4] - lsrs r0, 8 - orrs r1, r0 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0812EA6E - adds r0, r5, 0 - bl DestroyTask -_0812EA6E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812EA74: .4byte 0xffffff00 - thumb_func_end sub_812E9F8 - - thumb_func_start sub_812EA78 -sub_812EA78: @ 812EA78 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r2, 24 - lsrs r5, r2, 24 - cmp r4, 0xC9 - bne _0812EAB8 - adds r0, r1, 0 - bl sub_8082AB8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1A - beq _0812EAA4 - cmp r0, 0x1A - bgt _0812EA9E - cmp r0, 0 - beq _0812EAB8 - b _0812EAB4 -_0812EA9E: - cmp r0, 0x1B - beq _0812EAAA - b _0812EAB4 -_0812EAA4: - movs r4, 0xCE - lsls r4, 1 - b _0812EABC -_0812EAAA: - ldr r4, _0812EAB0 @ =0x0000019d - b _0812EABC - .align 2, 0 -_0812EAB0: .4byte 0x0000019d -_0812EAB4: - adds r4, r0, 0 - adds r4, 0xFB -_0812EAB8: - cmp r4, 0 - beq _0812EAD6 -_0812EABC: - cmp r5, 0x4 - bhi _0812EAD6 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _0812EAE0 @ =gUnknown_845FD54 - lsls r0, r4, 2 - adds r0, r4 - adds r0, r5, r0 - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _0812EAD8 -_0812EAD6: - movs r0, 0x20 -_0812EAD8: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812EAE0: .4byte gUnknown_845FD54 - thumb_func_end sub_812EA78 - - thumb_func_start sub_812EAE4 -sub_812EAE4: @ 812EAE4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r2, 24 - lsrs r2, 24 - bl sub_812EA78 - subs r0, 0x20 - lsls r0, 24 - asrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_812EAE4 - - thumb_func_start sub_812EAFC -sub_812EAFC: @ 812EAFC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_812EAFC - - thumb_func_start sub_812EB10 -sub_812EB10: @ 812EB10 - push {lr} - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_812EB10 - - thumb_func_start sub_812EB2C -sub_812EB2C: @ 812EB2C - push {lr} - ldr r0, _0812EB48 @ =gPlttBufferUnfaded - movs r1, 0 - strh r1, [r0] - ldr r0, _0812EB4C @ =gPlttBufferFaded - strh r1, [r0] - ldr r0, _0812EB50 @ =sub_812EB58 - bl CreateTask - ldr r0, _0812EB54 @ =sub_812EB10 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0812EB48: .4byte gPlttBufferUnfaded -_0812EB4C: .4byte gPlttBufferFaded -_0812EB50: .4byte sub_812EB58 -_0812EB54: .4byte sub_812EB10 - thumb_func_end sub_812EB2C - - thumb_func_start sub_812EB58 -sub_812EB58: @ 812EB58 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0812EB7C @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _0812EB70 - b _0812EE94 -_0812EB70: - lsls r0, 2 - ldr r1, _0812EB80 @ =_0812EB84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812EB7C: .4byte gMain -_0812EB80: .4byte _0812EB84 - .align 2, 0 -_0812EB84: - .4byte _0812EBB0 - .4byte _0812EC28 - .4byte _0812EC44 - .4byte _0812EC8E - .4byte _0812ED00 - .4byte _0812ED3C - .4byte _0812ED6C - .4byte _0812ED9A - .4byte _0812EE94 - .4byte _0812EE94 - .4byte _0812EE30 -_0812EBB0: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - add r1, sp, 0x8 - movs r0, 0 - strh r0, [r1] - ldr r1, _0812EC14 @ =0x040000d4 - add r0, sp, 0x8 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0812EC18 @ =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0xC] - add r0, sp, 0xC - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0812EC1C @ =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x8 - strh r2, [r0] - str r0, [r1] - ldr r0, _0812EC20 @ =0x05000002 - str r0, [r1, 0x4] - ldr r0, _0812EC24 @ =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - bl remove_some_task - bl ResetSpriteData - bl FreeAllSpritePalettes - bl reset_temp_tile_data_buffers - movs r0, 0x2 - bl sub_812B1F0 - b _0812EE94 - .align 2, 0 -_0812EC14: .4byte 0x040000d4 -_0812EC18: .4byte 0x8100c000 -_0812EC1C: .4byte 0x85000100 -_0812EC20: .4byte 0x05000002 -_0812EC24: .4byte 0x810001ff -_0812EC28: - ldr r4, _0812EC3C @ =gUnknown_203B108 - ldr r0, _0812EC40 @ =0x00002420 - bl AllocZeroed - str r0, [r4] - movs r0, 0x1 - movs r1, 0x1 - bl sub_8044AF0 - b _0812EE94 - .align 2, 0 -_0812EC3C: .4byte gUnknown_203B108 -_0812EC40: .4byte 0x00002420 -_0812EC44: - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - b _0812EE94 -_0812EC8E: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0812ECF0 @ =gUnknown_8462E58 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, _0812ECF4 @ =gUnknown_203B108 - ldr r1, [r4] - movs r0, 0xE1 - lsls r0, 5 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0xC1 - lsls r0, 5 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - 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 - ldr r0, _0812ECF8 @ =gSpriteCoordOffsetX - movs r1, 0 - strh r1, [r0] - ldr r0, _0812ECFC @ =gSpriteCoordOffsetY - strh r1, [r0] - b _0812EE94 - .align 2, 0 -_0812ECF0: .4byte gUnknown_8462E58 -_0812ECF4: .4byte gUnknown_203B108 -_0812ECF8: .4byte gSpriteCoordOffsetX -_0812ECFC: .4byte gSpriteCoordOffsetY -_0812ED00: - ldr r2, _0812ED34 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - bl sub_80F6C6C - bl sub_80F6C98 - movs r0, 0xD0 - bl sub_80F77CC - ldr r0, _0812ED38 @ =gUnknown_8460568 - movs r1, 0 - movs r2, 0x80 - bl LoadPalette - movs r0, 0x2 - bl stdpal_get - adds r0, 0x1E - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - b _0812EE94 - .align 2, 0 -_0812ED34: .4byte gPaletteFade -_0812ED38: .4byte gUnknown_8460568 -_0812ED3C: - bl sub_80F78A8 - ldr r1, _0812ED60 @ =gUnknown_203B108 - ldr r1, [r1] - movs r3, 0 - strb r0, [r1, 0x1F] - ldr r2, _0812ED64 @ =gTextFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0812ED68 @ =gUnknown_84605E8 - str r3, [sp] - movs r0, 0x1 - movs r2, 0 - bl decompress_and_copy_tile_data_to_vram - b _0812EE94 - .align 2, 0 -_0812ED60: .4byte gUnknown_203B108 -_0812ED64: .4byte gTextFlags -_0812ED68: .4byte gUnknown_84605E8 -_0812ED6C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _0812ED78 - b _0812EEA2 -_0812ED78: - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _0812EE94 -_0812ED9A: - movs r0, 0xE2 - lsls r0, 1 - str r0, [sp] - movs r0, 0 - movs r1, 0x1E - movs r2, 0 - movs r3, 0xD - bl sub_810F558 - ldr r1, _0812EE1C @ =0x0000d00f - movs r4, 0x1E - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r1, _0812EE20 @ =0x0000d002 - str r4, [sp] - movs r5, 0x1 - str r5, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - ldr r1, _0812EE24 @ =0x0000d00e - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0x13 - bl FillBgTilemapBufferRect_Palette0 - bl sub_812EEB0 - ldr r2, _0812EE28 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - movs r0, 0 - str r0, [sp] - movs r1, 0xE6 - movs r2, 0x95 - movs r3, 0 - bl sub_8006300 - ldr r2, _0812EE2C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x12] - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _0812EE94 - .align 2, 0 -_0812EE1C: .4byte 0x0000d00f -_0812EE20: .4byte 0x0000d002 -_0812EE24: .4byte 0x0000d00e -_0812EE28: .4byte gPaletteFade -_0812EE2C: .4byte gTasks -_0812EE30: - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - ldr r0, _0812EE80 @ =sub_812EAFC - bl SetVBlankCallback - ldr r0, _0812EE84 @ =0x00000143 - bl PlayBGM - ldr r1, _0812EE88 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0812EE8C @ =sub_812F0B0 - str r1, [r0] - ldr r0, _0812EE90 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - strb r4, [r0] - b _0812EEA2 - .align 2, 0 -_0812EE80: .4byte sub_812EAFC -_0812EE84: .4byte 0x00000143 -_0812EE88: .4byte gTasks -_0812EE8C: .4byte sub_812F0B0 -_0812EE90: .4byte gMain -_0812EE94: - ldr r1, _0812EEAC @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0812EEA2: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812EEAC: .4byte gMain - thumb_func_end sub_812EB58 - - thumb_func_start sub_812EEB0 -sub_812EEB0: @ 812EEB0 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _0812EF38 @ =gUnknown_8415D2C - ldr r1, _0812EF3C @ =gUnknown_8415D48 - movs r5, 0x1 - str r5, [sp] - movs r2, 0 - movs r3, 0 - bl sub_810F650 - ldr r1, _0812EF40 @ =gUnknown_8462EB4 - ldr r4, _0812EF44 @ =gUnknown_203B108 - ldr r0, [r4] - ldrh r0, [r0, 0x12] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl AddWindow - ldr r1, [r4] - movs r6, 0 - strh r0, [r1, 0x14] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldr r0, [r4] - ldrb r0, [r0, 0x14] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldrb r0, [r0, 0x14] - str r5, [sp] - str r5, [sp, 0x4] - ldr r1, _0812EF48 @ =gUnknown_8462EE8 - str r1, [sp, 0x8] - str r6, [sp, 0xC] - ldr r1, _0812EF4C @ =gUnknown_81C582D - str r1, [sp, 0x10] - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0 - bl AddTextPrinterParametrized2 - ldr r0, [r4] - ldrb r0, [r0, 0x14] - movs r1, 0x3 - bl CopyWindowToVram - movs r1, 0xC0 - lsls r1, 6 - movs r0, 0x5 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x1 - movs r3, 0x3 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812EF38: .4byte gUnknown_8415D2C -_0812EF3C: .4byte gUnknown_8415D48 -_0812EF40: .4byte gUnknown_8462EB4 -_0812EF44: .4byte gUnknown_203B108 -_0812EF48: .4byte gUnknown_8462EE8 -_0812EF4C: .4byte gUnknown_81C582D - thumb_func_end sub_812EEB0 - - thumb_func_start sub_812EF50 -sub_812EF50: @ 812EF50 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 - ldr r4, _0812EF80 @ =gUnknown_203B108 - ldr r0, [r4] - ldrh r1, [r0, 0x12] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r1, 0 - bne _0812EF84 - bl sub_812EEB0 - mov r0, r8 - lsls r0, 2 - mov r10, r0 - b _0812F06A - .align 2, 0 -_0812EF80: .4byte gUnknown_203B108 -_0812EF84: - ldr r0, _0812F038 @ =gUnknown_8415D50 - movs r1, 0 - movs r2, 0x1 - bl sub_810F5E8 - lsls r1, r7, 1 - mov r9, r1 - mov r3, r8 - lsls r3, 2 - mov r10, r3 - adds r5, r4, 0 -_0812EF9A: - ldr r1, _0812F03C @ =gUnknown_8462EB4 - ldr r0, [r5] - ldrh r0, [r0, 0x12] - lsls r0, 2 - adds r0, r1 - lsls r1, r6, 3 - ldr r0, [r0] - adds r0, r1 - bl AddWindow - ldr r1, [r5] - lsls r4, r6, 1 - adds r1, 0x14 - adds r1, r4 - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x1 - str r1, [sp] - str r1, [sp, 0x4] - ldr r1, _0812F040 @ =gUnknown_8462EE8 - str r1, [sp, 0x8] - movs r1, 0 - str r1, [sp, 0xC] - ldr r2, _0812F044 @ =gUnknown_8463074 - mov r3, r9 - adds r1, r3, r7 - adds r1, r6, r1 - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r2, 0x6 - movs r3, 0 - bl AddTextPrinterParametrized2 - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _0812EF9A - ldr r0, _0812F048 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x12] - cmp r0, 0x1 - bne _0812F050 - ldr r1, _0812F04C @ =gUnknown_8460D94 - movs r0, 0x5 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x1 - movs r3, 0x3 - bl CopyToBgTilemapBufferRect - b _0812F064 - .align 2, 0 -_0812F038: .4byte gUnknown_8415D50 -_0812F03C: .4byte gUnknown_8462EB4 -_0812F040: .4byte gUnknown_8462EE8 -_0812F044: .4byte gUnknown_8463074 -_0812F048: .4byte gUnknown_203B108 -_0812F04C: .4byte gUnknown_8460D94 -_0812F050: - ldr r1, _0812F0A0 @ =gUnknown_8460E34 - movs r0, 0x5 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x1 - movs r3, 0x3 - bl CopyToBgTilemapBufferRect -_0812F064: - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_0812F06A: - movs r0, 0x2 - bl stdpal_get - ldrh r2, [r0, 0x1E] - ldr r0, _0812F0A4 @ =0xffffdfff - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _0812F0A8 @ =gTasks - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _0812F0AC @ =sub_812F0B0 - str r1, [r0] - 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 -_0812F0A0: .4byte gUnknown_8460E34 -_0812F0A4: .4byte 0xffffdfff -_0812F0A8: .4byte gTasks -_0812F0AC: .4byte sub_812F0B0 - thumb_func_end sub_812EF50 - - thumb_func_start sub_812F0B0 -sub_812F0B0: @ 812F0B0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0812F10C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812F162 - ldr r0, _0812F110 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0812F162 - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0812F120 - ldr r1, _0812F114 @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x26] - ldr r0, _0812F118 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x12] - adds r4, r2, 0 - cmp r0, 0x1 - bhi _0812F150 - movs r0, 0x2 - bl stdpal_get - ldrh r2, [r0, 0x1E] - ldr r0, _0812F11C @ =0xffffdfff - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0812F150 - .align 2, 0 -_0812F10C: .4byte gPaletteFade -_0812F110: .4byte gMain -_0812F114: .4byte gTasks -_0812F118: .4byte gUnknown_203B108 -_0812F11C: .4byte 0xffffdfff -_0812F120: - ldr r0, _0812F16C @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x12] - cmp r0, 0 - beq _0812F162 - ldr r1, _0812F170 @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0812F174 @ =0x0000ffff - strh r1, [r0, 0x26] - movs r0, 0x2 - bl stdpal_get - ldrh r2, [r0, 0x1E] - ldr r0, _0812F178 @ =0xffffdfff - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0812F150: - movs r0, 0x5 - bl PlaySE - ldr r0, _0812F170 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812F17C @ =sub_812F180 - str r0, [r1] -_0812F162: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812F16C: .4byte gUnknown_203B108 -_0812F170: .4byte gTasks -_0812F174: .4byte 0x0000ffff -_0812F178: .4byte 0xffffdfff -_0812F17C: .4byte sub_812F180 - thumb_func_end sub_812F0B0 - - thumb_func_start sub_812F180 -sub_812F180: @ 812F180 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r8, r0 - ldr r0, _0812F1B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812F260 - ldr r1, _0812F1B4 @ =gUnknown_203B108 - ldr r0, [r1] - ldrh r0, [r0, 0x12] - adds r5, r1, 0 - cmp r0, 0 - bne _0812F1B8 - movs r1, 0x1 - mov r8, r1 - b _0812F1C4 - .align 2, 0 -_0812F1B0: .4byte gPaletteFade -_0812F1B4: .4byte gUnknown_203B108 -_0812F1B8: - cmp r0, 0 - blt _0812F1C4 - cmp r0, 0x2 - bgt _0812F1C4 - movs r2, 0x3 - mov r8, r2 -_0812F1C4: - ldr r2, [r5] - ldr r1, _0812F244 @ =gTasks - lsls r3, r7, 2 - adds r0, r3, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x26] - ldrh r1, [r2, 0x12] - adds r0, r1 - movs r1, 0 - strh r0, [r2, 0x12] - lsls r0, 16 - lsrs r0, 16 - mov r9, r3 - cmp r0, 0x2 - bhi _0812F24C - movs r6, 0 - cmp r1, r8 - bcs _0812F234 -_0812F1EA: - ldr r0, [r5] - lsls r4, r6, 1 - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - movs r1, 0 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r8 - bcc _0812F1EA -_0812F234: - ldr r0, _0812F244 @ =gTasks - mov r2, r9 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812F248 @ =sub_812EF50 - str r0, [r1] - b _0812F260 - .align 2, 0 -_0812F244: .4byte gTasks -_0812F248: .4byte sub_812EF50 -_0812F24C: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0812F270 @ =sub_812F274 - str r0, [r4] -_0812F260: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F270: .4byte sub_812F274 - thumb_func_end sub_812F180 - - thumb_func_start sub_812F274 -sub_812F274: @ 812F274 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 - ldr r0, _0812F32C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812F320 - ldr r5, _0812F330 @ =gUnknown_203B108 -_0812F292: - ldr r0, [r5] - lsls r4, r6, 1 - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r5] - adds r0, 0x14 - adds r0, r4 - movs r7, 0 - strh r7, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _0812F292 - movs r0, 0x1E - str r0, [sp] - movs r0, 0x12 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, _0812F334 @ =gTasks - mov r1, r8 - lsls r4, r1, 2 - add r4, r8 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x12] - bl sub_8006398 - ldr r0, _0812F330 @ =gUnknown_203B108 - ldr r0, [r0] - strh r7, [r0, 0x14] - adds r0, 0x14 - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - movs r0, 0x20 - strh r0, [r4, 0xE] - ldr r0, _0812F338 @ =sub_812F33C - str r0, [r4] -_0812F320: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F32C: .4byte gPaletteFade -_0812F330: .4byte gUnknown_203B108 -_0812F334: .4byte gTasks -_0812F338: .4byte sub_812F33C - thumb_func_end sub_812F274 - - thumb_func_start sub_812F33C -sub_812F33C: @ 812F33C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - mov r8, r0 - ldr r0, _0812F370 @ =gTasks+0x8 - mov r9, r0 - mov r5, r8 - add r5, r9 - movs r0, 0 - str r0, [sp, 0x14] - ldrh r0, [r5, 0x6] - movs r1, 0x6 - ldrsh r6, [r5, r1] - cmp r6, 0 - beq _0812F374 - subs r0, 0x1 - strh r0, [r5, 0x6] - b _0812F476 - .align 2, 0 -_0812F370: .4byte gTasks+0x8 -_0812F374: - movs r0, 0xA2 - lsls r0, 1 - bl PlayBGM - bl sub_810F71C - ldr r0, _0812F484 @ =gUnknown_8415D48 - movs r1, 0 - movs r2, 0x1 - bl sub_810F5E8 - ldr r0, _0812F488 @ =gUnknown_8460BA8 - add r1, sp, 0x14 - bl malloc_and_decompress - adds r1, r0, 0 - ldr r4, _0812F48C @ =gUnknown_203B108 - ldr r0, [r4] - str r1, [r0, 0x8] - movs r0, 0x1E - str r0, [sp] - movs r0, 0x13 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0x2 - bl CopyToBgTilemapBufferRect - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, [r4] - ldr r0, [r0, 0x8] - bl Free - ldr r0, [r4] - str r6, [r0, 0x8] - ldr r0, _0812F490 @ =gUnknown_8462EC0 - bl AddWindow - strh r0, [r5, 0x1C] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r5, 0x1C] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x1C] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, [r4] - movs r1, 0 - strh r6, [r0, 0x12] - ldr r0, _0812F494 @ =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r2 - strb r1, [r0] - movs r0, 0x10 - strh r0, [r5, 0x1E] - ldrb r0, [r5, 0x1C] - movs r1, 0x1 - str r1, [sp] - str r6, [sp, 0x4] - ldr r1, _0812F498 @ =gUnknown_8462EEC - str r1, [sp, 0x8] - str r6, [sp, 0xC] - ldr r1, _0812F49C @ =gUnknown_8462EF0 - ldr r1, [r1] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0x5 - bl AddTextPrinterParametrized2 - str r6, [sp] - movs r0, 0 - movs r1, 0xE2 - movs r2, 0x91 - movs r3, 0 - bl sub_8006300 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - ldr r4, _0812F4A0 @ =gSprites - movs r1, 0xA - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x1] - movs r2, 0xA - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - ands r3, r1 - strb r3, [r0, 0x5] - adds r0, r7, 0 - movs r1, 0 - bl sub_8130FD4 - movs r0, 0x1 - negs r0, r0 - str r6, [sp] - movs r1, 0x2 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, _0812F4A4 @ =sub_812F4A8 - str r1, [r0] -_0812F476: - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F484: .4byte gUnknown_8415D48 -_0812F488: .4byte gUnknown_8460BA8 -_0812F48C: .4byte gUnknown_203B108 -_0812F490: .4byte gUnknown_8462EC0 -_0812F494: .4byte gMain -_0812F498: .4byte gUnknown_8462EEC -_0812F49C: .4byte gUnknown_8462EF0 -_0812F4A0: .4byte gSprites -_0812F4A4: .4byte sub_812F4A8 - thumb_func_end sub_812F33C - - thumb_func_start sub_812F4A8 -sub_812F4A8: @ 812F4A8 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r6, r0, 3 - ldr r7, _0812F4D8 @ =gTasks+0x8 - adds r5, r6, r7 - ldr r0, _0812F4DC @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r3, r0, r1 - ldrb r1, [r3] - adds r4, r0, 0 - cmp r1, 0x4 - bls _0812F4CC - b _0812F6C0 -_0812F4CC: - lsls r0, r1, 2 - ldr r1, _0812F4E0 @ =_0812F4E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812F4D8: .4byte gTasks+0x8 -_0812F4DC: .4byte gMain -_0812F4E0: .4byte _0812F4E4 - .align 2, 0 -_0812F4E4: - .4byte _0812F4F8 - .4byte _0812F538 - .4byte _0812F5B4 - .4byte _0812F644 - .4byte _0812F688 -_0812F4F8: - ldr r0, _0812F534 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812F506 - b _0812F71C -_0812F506: - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - movs r1, 0x85 - lsls r1, 5 - movs r0, 0x44 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x1F - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - b _0812F676 - .align 2, 0 -_0812F534: .4byte gPaletteFade -_0812F538: - ldrh r1, [r4, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0812F544 - b _0812F71C -_0812F544: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812F55C - ldr r0, _0812F558 @ =gUnknown_203B108 - ldr r1, [r0] - ldrh r0, [r1, 0x12] - adds r0, 0x1 - b _0812F56A - .align 2, 0 -_0812F558: .4byte gUnknown_203B108 -_0812F55C: - ldr r0, _0812F58C @ =gUnknown_203B108 - ldr r1, [r0] - ldrh r0, [r1, 0x12] - cmp r0, 0 - bne _0812F568 - b _0812F71C -_0812F568: - subs r0, 0x1 -_0812F56A: - strh r0, [r1, 0x12] - movs r0, 0x5 - bl PlaySE - ldr r0, _0812F58C @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x12] - cmp r0, 0x3 - bne _0812F594 - ldr r0, _0812F590 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x4 - strb r1, [r0] - b _0812F71C - .align 2, 0 -_0812F58C: .4byte gUnknown_203B108 -_0812F590: .4byte gMain -_0812F594: - ldr r1, _0812F5B0 @ =0x00000241 - movs r0, 0x50 - bl SetGpuReg - ldrh r0, [r5, 0x1E] - movs r1, 0x10 - subs r1, r0 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - b _0812F6A2 - .align 2, 0 -_0812F5B0: .4byte 0x00000241 -_0812F5B4: - ldrh r1, [r5, 0x1E] - subs r1, 0x2 - strh r1, [r5, 0x1E] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0 - ble _0812F5D6 - b _0812F71C -_0812F5D6: - ldrb r0, [r5, 0x1C] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x1C] - movs r1, 0x1 - str r1, [sp] - movs r2, 0 - str r2, [sp, 0x4] - ldr r1, _0812F620 @ =gUnknown_8462EEC - str r1, [sp, 0x8] - str r2, [sp, 0xC] - ldr r2, _0812F624 @ =gUnknown_8462EF0 - ldr r4, _0812F628 @ =gUnknown_203B108 - ldr r1, [r4] - ldrh r1, [r1, 0x12] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0x5 - bl AddTextPrinterParametrized2 - ldr r0, [r4] - ldrh r0, [r0, 0x12] - cmp r0, 0 - bne _0812F630 - bl sub_810F71C - ldr r0, _0812F62C @ =gUnknown_8415D48 - movs r1, 0 - movs r2, 0x1 - bl sub_810F5E8 - b _0812F6A2 - .align 2, 0 -_0812F620: .4byte gUnknown_8462EEC -_0812F624: .4byte gUnknown_8462EF0 -_0812F628: .4byte gUnknown_203B108 -_0812F62C: .4byte gUnknown_8415D48 -_0812F630: - bl sub_810F71C - ldr r0, _0812F640 @ =gUnknown_8415D50 - movs r1, 0 - movs r2, 0x1 - bl sub_810F5E8 - b _0812F6A2 - .align 2, 0 -_0812F640: .4byte gUnknown_8415D50 -_0812F644: - ldrh r1, [r5, 0x1E] - adds r1, 0x2 - strh r1, [r5, 0x1E] - movs r4, 0x10 - subs r0, r4, r1 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0xF - ble _0812F71C - strh r4, [r5, 0x1E] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg -_0812F676: - ldr r0, _0812F684 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _0812F71C - .align 2, 0 -_0812F684: .4byte gMain -_0812F688: - ldr r1, _0812F6B4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x12] - bl sub_8006398 - ldr r0, _0812F6B8 @ =0x00000145 - bl PlayBGM - movs r0, 0x18 - strh r0, [r5, 0x1E] -_0812F6A2: - ldr r1, _0812F6BC @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0812F71C - .align 2, 0 -_0812F6B4: .4byte gTasks -_0812F6B8: .4byte 0x00000145 -_0812F6BC: .4byte gMain -_0812F6C0: - ldrh r0, [r5, 0x1E] - movs r1, 0x1E - ldrsh r4, [r5, r1] - cmp r4, 0 - beq _0812F6D0 - subs r0, 0x1 - strh r0, [r5, 0x1E] - b _0812F71C -_0812F6D0: - strb r4, [r3] - ldr r0, _0812F724 @ =gUnknown_203B108 - ldr r0, [r0] - strh r4, [r0, 0x12] - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0812F728 @ =sub_812F72C - str r1, [r0] -_0812F71C: - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F724: .4byte gUnknown_203B108 -_0812F728: .4byte sub_812F72C - thumb_func_end sub_812F4A8 - - thumb_func_start sub_812F72C -sub_812F72C: @ 812F72C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r7, r0, 3 - ldr r0, _0812F7B4 @ =gTasks+0x8 - mov r8, r0 - adds r4, r7, r0 - ldr r0, _0812F7B8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _0812F7A6 - bl sub_810F740 - ldrb r0, [r4, 0x1C] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x1C] - bl ClearWindowTilemap - ldrb r0, [r4, 0x1C] - movs r1, 0x3 - bl CopyWindowToVram - ldrb r0, [r4, 0x1C] - bl RemoveWindow - strh r6, [r4, 0x1C] - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - adds r0, r5, 0 - movs r1, 0 - bl sub_8131168 - movs r0, 0x50 - strh r0, [r4, 0x6] - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0812F7BC @ =sub_812F7C0 - str r1, [r0] -_0812F7A6: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F7B4: .4byte gTasks+0x8 -_0812F7B8: .4byte gPaletteFade -_0812F7BC: .4byte sub_812F7C0 - thumb_func_end sub_812F72C - - thumb_func_start sub_812F7C0 -sub_812F7C0: @ 812F7C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r7, r0, 3 - ldr r0, _0812F7EC @ =gTasks+0x8 - mov r8, r0 - adds r5, r7, r0 - movs r0, 0 - str r0, [sp, 0x4] - ldrh r0, [r5, 0x6] - movs r1, 0x6 - ldrsh r6, [r5, r1] - cmp r6, 0 - beq _0812F7F0 - subs r0, 0x1 - strh r0, [r5, 0x6] - b _0812F862 - .align 2, 0 -_0812F7EC: .4byte gTasks+0x8 -_0812F7F0: - ldr r0, _0812F870 @ =gUnknown_8460CA4 - add r1, sp, 0x4 - bl malloc_and_decompress - adds r1, r0, 0 - ldr r0, _0812F874 @ =gUnknown_203B108 - ldr r0, [r0] - str r1, [r0] - ldr r2, [sp, 0x4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r3, 0 - bl LoadBgTiles - ldr r1, _0812F878 @ =gUnknown_8460CE8 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - adds r0, r4, 0 - bl sub_8130F2C - movs r0, 0x3 - movs r1, 0 - bl sub_81311F4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8130FD4 - movs r0, 0x92 - lsls r0, 1 - bl PlayBGM - movs r0, 0x1 - negs r0, r0 - str r6, [sp] - movs r1, 0x5 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x50 - strh r0, [r5, 0x6] - movs r0, 0x2 - bl ShowBg - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0812F87C @ =sub_812F880 - str r1, [r0] -_0812F862: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812F870: .4byte gUnknown_8460CA4 -_0812F874: .4byte gUnknown_203B108 -_0812F878: .4byte gUnknown_8460CE8 -_0812F87C: .4byte sub_812F880 - thumb_func_end sub_812F7C0 - - thumb_func_start sub_812F880 -sub_812F880: @ 812F880 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0812F8B0 @ =gTasks+0x8 - adds r2, r0, r1 - ldr r0, _0812F8B4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812F92E - ldrh r0, [r2, 0x6] - movs r1, 0x6 - ldrsh r4, [r2, r1] - cmp r4, 0 - beq _0812F8B8 - subs r0, 0x1 - strh r0, [r2, 0x6] - b _0812F92E - .align 2, 0 -_0812F8B0: .4byte gTasks+0x8 -_0812F8B4: .4byte gPaletteFade -_0812F8B8: - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812F8F0 @ =gUnknown_81C5C78 - ldr r5, _0812F8F4 @ =gStringVar4 - cmp r2, r5 - beq _0812F8FC - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812F8F8 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812F918 - .align 2, 0 -_0812F8F0: .4byte gUnknown_81C5C78 -_0812F8F4: .4byte gStringVar4 -_0812F8F8: .4byte gUnknown_203B108 -_0812F8FC: - ldr r0, _0812F938 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812F918: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812F93C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812F940 @ =sub_812F944 - str r0, [r1] -_0812F92E: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812F938: .4byte gUnknown_203B108 -_0812F93C: .4byte gTasks -_0812F940: .4byte sub_812F944 - thumb_func_end sub_812F880 - - thumb_func_start sub_812F944 -sub_812F944: @ 812F944 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _0812F9D6 - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812F994 @ =gUnknown_81C5D06 - ldr r5, _0812F998 @ =gStringVar4 - cmp r2, r5 - beq _0812F9A0 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812F99C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812F9BC - .align 2, 0 -_0812F994: .4byte gUnknown_81C5D06 -_0812F998: .4byte gStringVar4 -_0812F99C: .4byte gUnknown_203B108 -_0812F9A0: - ldr r0, _0812F9E0 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812F9BC: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r1, _0812F9E4 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1E - strh r1, [r0, 0xE] - ldr r1, _0812F9E8 @ =sub_812F9EC - str r1, [r0] -_0812F9D6: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812F9E0: .4byte gUnknown_203B108 -_0812F9E4: .4byte gTasks -_0812F9E8: .4byte sub_812F9EC - thumb_func_end sub_812F944 - - thumb_func_start sub_812F9EC -sub_812F9EC: @ 812F9EC - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0812FA68 @ =gTasks+0x8 - adds r4, r6, r7 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _0812FA5E - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0812FA1A - subs r0, r1, 0x1 - strh r0, [r4, 0x6] -_0812FA1A: - adds r4, r7, 0 - subs r4, 0x8 - adds r4, r6, r4 - ldrb r0, [r4, 0x10] - ldr r1, _0812FA6C @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r3, 0x3E - adds r3, r2 - mov r12, r3 - ldrb r3, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - mov r3, r12 - strb r1, [r3] - strh r5, [r2, 0x2E] - ldrb r1, [r2, 0x5] - lsrs r1, 4 - str r5, [sp] - str r5, [sp, 0x4] - movs r2, 0x20 - str r2, [sp, 0x8] - ldr r2, _0812FA70 @ =0xffff1fff - str r2, [sp, 0xC] - movs r2, 0x64 - movs r3, 0x42 - bl CreatePokeballSpriteToReleaseMon - ldr r0, _0812FA74 @ =sub_812FA78 - str r0, [r4] - strh r5, [r4, 0xE] -_0812FA5E: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812FA68: .4byte gTasks+0x8 -_0812FA6C: .4byte gSprites -_0812FA70: .4byte 0xffff1fff -_0812FA74: .4byte sub_812FA78 - thumb_func_end sub_812F9EC - - thumb_func_start sub_812FA78 -sub_812FA78: @ 812FA78 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - beq _0812FAA0 - ldr r0, _0812FAFC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0x5F - ble _0812FAA0 - ldr r0, _0812FB00 @ =sub_812FB4C - str r0, [r1] -_0812FAA0: - ldr r1, _0812FAFC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r3, [r2, 0xE] - movs r0, 0xE - ldrsh r1, [r2, r0] - ldr r0, _0812FB04 @ =0x00003fff - cmp r1, r0 - bgt _0812FB40 - adds r0, r3, 0x1 - movs r5, 0 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - bne _0812FB40 - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812FB08 @ =gUnknown_81C5D12 - ldr r4, _0812FB0C @ =gStringVar4 - cmp r2, r4 - beq _0812FB14 - adds r0, r4, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812FB10 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r5, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - b _0812FB30 - .align 2, 0 -_0812FAFC: .4byte gTasks -_0812FB00: .4byte sub_812FB4C -_0812FB04: .4byte 0x00003fff -_0812FB08: .4byte gUnknown_81C5D12 -_0812FB0C: .4byte gStringVar4 -_0812FB10: .4byte gUnknown_203B108 -_0812FB14: - ldr r0, _0812FB48 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r5, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812FB30: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1D - movs r1, 0 - bl PlayCry1 -_0812FB40: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812FB48: .4byte gUnknown_203B108 - thumb_func_end sub_812FA78 - - thumb_func_start sub_812FB4C -sub_812FB4C: @ 812FB4C - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _0812FBDA - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812FB9C @ =gUnknown_81C5D4B - ldr r5, _0812FBA0 @ =gStringVar4 - cmp r2, r5 - beq _0812FBA8 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812FBA4 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812FBC4 - .align 2, 0 -_0812FB9C: .4byte gUnknown_81C5D4B -_0812FBA0: .4byte gStringVar4 -_0812FBA4: .4byte gUnknown_203B108 -_0812FBA8: - ldr r0, _0812FBE4 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812FBC4: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812FBE8 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812FBEC @ =sub_812FBF0 - str r0, [r1] -_0812FBDA: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FBE4: .4byte gUnknown_203B108 -_0812FBE8: .4byte gTasks -_0812FBEC: .4byte sub_812FBF0 - thumb_func_end sub_812FB4C - - thumb_func_start sub_812FBF0 -sub_812FBF0: @ 812FBF0 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _0812FC4E - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - ldr r0, _0812FC58 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x10] - ldr r2, _0812FC5C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x5] - lsrs r1, 4 - str r5, [sp] - str r5, [sp, 0x4] - movs r2, 0x20 - str r2, [sp, 0x8] - ldr r2, _0812FC60 @ =0xffff1f3f - str r2, [sp, 0xC] - movs r2, 0x64 - movs r3, 0x42 - bl sub_804BB98 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - movs r0, 0x30 - strh r0, [r4, 0xE] - movs r0, 0x40 - strh r0, [r4, 0x8] - ldr r0, _0812FC64 @ =sub_812FC68 - str r0, [r4] -_0812FC4E: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FC58: .4byte gTasks -_0812FC5C: .4byte gSprites -_0812FC60: .4byte 0xffff1f3f -_0812FC64: .4byte sub_812FC68 - thumb_func_end sub_812FBF0 - - thumb_func_start sub_812FC68 -sub_812FC68: @ 812FC68 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0812FCA4 @ =gTasks+0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0812FCAC - cmp r0, 0x17 - bgt _0812FC9A - ldr r2, _0812FCA8 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_0812FC9A: - ldrh r0, [r5] - subs r0, 0x1 - strh r0, [r5] - b _0812FD62 - .align 2, 0 -_0812FCA4: .4byte gTasks+0x8 -_0812FCA8: .4byte gSprites -_0812FCAC: - movs r1, 0x6 - ldrsh r0, [r5, r1] - cmp r0, 0x30 - bne _0812FCD6 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0812FCE8 @ =gSprites - adds r0, r4 - bl DestroySprite - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_0812FCD6: - ldrh r0, [r5, 0x6] - movs r1, 0x6 - ldrsh r4, [r5, r1] - cmp r4, 0 - beq _0812FCEC - subs r0, 0x1 - strh r0, [r5, 0x6] - b _0812FD62 - .align 2, 0 -_0812FCE8: .4byte gSprites -_0812FCEC: - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812FD24 @ =gUnknown_81C5DBD - ldr r5, _0812FD28 @ =gStringVar4 - cmp r2, r5 - beq _0812FD30 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812FD2C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812FD4C - .align 2, 0 -_0812FD24: .4byte gUnknown_81C5DBD -_0812FD28: .4byte gStringVar4 -_0812FD2C: .4byte gUnknown_203B108 -_0812FD30: - ldr r0, _0812FD6C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812FD4C: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812FD70 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812FD74 @ =sub_812FD78 - str r0, [r1] -_0812FD62: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FD6C: .4byte gUnknown_203B108 -_0812FD70: .4byte gTasks -_0812FD74: .4byte sub_812FD78 - thumb_func_end sub_812FC68 - - thumb_func_start sub_812FD78 -sub_812FD78: @ 812FD78 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r5, r0, 3 - ldr r7, _0812FDB8 @ =gTasks+0x8 - adds r6, r5, r7 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0812FDB2 - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_813144C - movs r0, 0x30 - strh r0, [r6, 0x6] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _0812FDBC @ =sub_812FDC0 - str r1, [r0] -_0812FDB2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812FDB8: .4byte gTasks+0x8 -_0812FDBC: .4byte sub_812FDC0 - thumb_func_end sub_812FD78 - - thumb_func_start sub_812FDC0 -sub_812FDC0: @ 812FDC0 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0812FDEC @ =gTasks+0x8 - adds r1, r0, r1 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0812FE72 - ldrh r0, [r1, 0x6] - movs r2, 0x6 - ldrsh r4, [r1, r2] - cmp r4, 0 - beq _0812FDF0 - subs r0, 0x1 - strh r0, [r1, 0x6] - b _0812FE72 - .align 2, 0 -_0812FDEC: .4byte gTasks+0x8 -_0812FDF0: - movs r2, 0x3C - negs r2, r2 - adds r0, r2, 0 - strh r0, [r1, 0x2] - bl sub_8131310 - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0812FE34 @ =gUnknown_81C59D5 - ldr r5, _0812FE38 @ =gStringVar4 - cmp r2, r5 - beq _0812FE40 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0812FE3C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _0812FE5C - .align 2, 0 -_0812FE34: .4byte gUnknown_81C59D5 -_0812FE38: .4byte gStringVar4 -_0812FE3C: .4byte gUnknown_203B108 -_0812FE40: - ldr r0, _0812FE7C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0812FE5C: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812FE80 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812FE84 @ =sub_812FE88 - str r0, [r1] -_0812FE72: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812FE7C: .4byte gUnknown_203B108 -_0812FE80: .4byte gTasks -_0812FE84: .4byte sub_812FE88 - thumb_func_end sub_812FDC0 - - thumb_func_start sub_812FE88 -sub_812FE88: @ 812FE88 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0 - bne _0812FF7E - ldr r0, _0812FF8C @ =gUnknown_8462EC8 - bl AddWindow - ldr r1, _0812FF90 @ =gTasks - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r1 - strh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrh r4, [r5, 0x22] - lsls r4, 24 - lsrs r4, 24 - bl sub_80F796C - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r4, 0 - movs r1, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - ldrh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r4, _0812FF94 @ =gUnknown_203B108 - ldr r0, [r4] - movs r1, 0x1 - mov r9, r1 - mov r1, r9 - strb r1, [r0, 0x1C] - ldr r0, [r4] - movs r6, 0x2 - strb r6, [r0, 0x1D] - ldr r0, [r4] - movs r1, 0x3 - mov r8, r1 - mov r1, r8 - strb r1, [r0, 0x1E] - ldrh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x1C - str r1, [sp] - str r7, [sp, 0x4] - ldr r1, _0812FF98 @ =gUnknown_8415D93 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x8 - movs r3, 0x1 - bl box_print - ldr r0, [r4] - mov r1, r9 - strb r1, [r0, 0x1C] - ldr r0, [r4] - strb r6, [r0, 0x1D] - ldr r0, [r4] - mov r1, r8 - strb r1, [r0, 0x1E] - ldrh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, 0x1C - str r1, [sp] - str r7, [sp, 0x4] - ldr r1, _0812FF9C @ =gUnknown_8415D97 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x8 - movs r3, 0x11 - bl box_print - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x22] - lsls r1, 24 - lsrs r1, 24 - str r0, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x1 - bl sub_810F7D8 - ldrh r0, [r5, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0812FFA0 @ =sub_812FFA4 - str r0, [r5] -_0812FF7E: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812FF8C: .4byte gUnknown_8462EC8 -_0812FF90: .4byte gTasks -_0812FF94: .4byte gUnknown_203B108 -_0812FF98: .4byte gUnknown_8415D93 -_0812FF9C: .4byte gUnknown_8415D97 -_0812FFA0: .4byte sub_812FFA4 - thumb_func_end sub_812FE88 - - thumb_func_start sub_812FFA4 -sub_812FFA4: @ 812FFA4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0812FFC8 - cmp r1, 0 - bgt _0812FFC4 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - blt _0812FFCE - b _0812FFDC -_0812FFC4: - cmp r1, 0x1 - bne _0812FFCE -_0812FFC8: - ldr r0, _0812FFE4 @ =gSaveBlock2Ptr - ldr r0, [r0] - strb r1, [r0, 0x8] -_0812FFCE: - ldr r0, _0812FFE8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812FFEC @ =sub_812FFF0 - str r0, [r1] -_0812FFDC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812FFE4: .4byte gSaveBlock2Ptr -_0812FFE8: .4byte gTasks -_0812FFEC: .4byte sub_812FFF0 - thumb_func_end sub_812FFA4 - - thumb_func_start sub_812FFF0 -sub_812FFF0: @ 812FFF0 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 3 - ldr r6, _08130048 @ =gTasks+0x8 - adds r4, r5, r6 - ldrb r0, [r4, 0x1A] - movs r1, 0x1 - bl sub_810F4D8 - ldrb r0, [r4, 0x1A] - bl RemoveWindow - movs r0, 0 - strh r0, [r4, 0x1A] - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - 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 - subs r6, 0x8 - adds r5, r6 - ldr r0, _0813004C @ =sub_8130050 - str r0, [r5] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130048: .4byte gTasks+0x8 -_0813004C: .4byte sub_8130050 - thumb_func_end sub_812FFF0 - - thumb_func_start sub_8130050 -sub_8130050: @ 8130050 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813006C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08130070 - movs r0, 0 - movs r1, 0 - bl sub_81311F4 - b _08130078 - .align 2, 0 -_0813006C: .4byte gSaveBlock2Ptr -_08130070: - movs r0, 0x1 - movs r1, 0 - bl sub_81311F4 -_08130078: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_81315CC - ldr r1, _08130098 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x20 - strh r1, [r0, 0xE] - ldr r1, _0813009C @ =sub_81300A0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08130098: .4byte gTasks -_0813009C: .4byte sub_81300A0 - thumb_func_end sub_8130050 - - thumb_func_start sub_81300A0 -sub_81300A0: @ 81300A0 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _081300CC @ =gTasks+0x8 - adds r1, r0, r1 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0813014A - ldrh r0, [r1, 0x6] - movs r2, 0x6 - ldrsh r4, [r1, r2] - cmp r4, 0 - beq _081300D0 - subs r0, 0x1 - strh r0, [r1, 0x6] - b _0813014A - .align 2, 0 -_081300CC: .4byte gTasks+0x8 -_081300D0: - strh r4, [r1, 0x2] - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0813010C @ =gUnknown_81C5DEA - ldr r5, _08130110 @ =gStringVar4 - cmp r2, r5 - beq _08130118 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _08130114 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - bl AddTextPrinterParametrized - b _08130134 - .align 2, 0 -_0813010C: .4byte gUnknown_81C5DEA -_08130110: .4byte gStringVar4 -_08130114: .4byte gUnknown_203B108 -_08130118: - ldr r0, _08130154 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_08130134: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _08130158 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813015C @ =sub_8130160 - str r0, [r1] -_0813014A: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130154: .4byte gUnknown_203B108 -_08130158: .4byte gTasks -_0813015C: .4byte sub_8130160 - thumb_func_end sub_81300A0 - - thumb_func_start sub_8130160 -sub_8130160: @ 8130160 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _0813019A - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _081301A4 @ =gUnknown_203B108 - ldr r0, [r0] - strh r4, [r0, 0x10] - ldr r1, _081301A8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _081301AC @ =sub_81303B4 - str r1, [r0] -_0813019A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081301A4: .4byte gUnknown_203B108 -_081301A8: .4byte gTasks -_081301AC: .4byte sub_81303B4 - thumb_func_end sub_8130160 - - thumb_func_start sub_81301B0 -sub_81301B0: @ 81301B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _081301F8 @ =gTasks+0x8 - adds r4, r6, r7 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _08130218 - ldrh r2, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r1, 0x3C - negs r1, r1 - cmp r0, r1 - ble _08130200 - subs r0, r2, 0x2 - strh r0, [r4, 0x2] - ldr r1, _081301FC @ =gSpriteCoordOffsetX - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] - movs r1, 0x80 - lsls r1, 2 - movs r0, 0x2 - movs r2, 0x2 - bl ChangeBgX - b _08130218 - .align 2, 0 -_081301F8: .4byte gTasks+0x8 -_081301FC: .4byte gSpriteCoordOffsetX -_08130200: - strh r1, [r4, 0x2] - ldr r0, _08130220 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r1, [r0, 0x10] - adds r0, r5, 0 - bl sub_8131660 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _08130224 @ =sub_8130324 - str r1, [r0] -_08130218: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08130220: .4byte gUnknown_203B108 -_08130224: .4byte sub_8130324 - thumb_func_end sub_81301B0 - - thumb_func_start sub_8130228 -sub_8130228: @ 8130228 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _08130278 @ =gUnknown_203B108 - ldr r0, [r4] - ldrb r1, [r0, 0x10] - adds r0, r6, 0 - bl sub_8131660 - ldr r0, [r4] - ldrh r4, [r0, 0x10] - cmp r4, 0 - bne _081302A6 - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _0813027C @ =gUnknown_81C5DEA - ldr r5, _08130280 @ =gStringVar4 - cmp r2, r5 - beq _08130284 - adds r0, r5, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r5, 0 - movs r3, 0 - bl AddTextPrinterParametrized - b _0813029C - .align 2, 0 -_08130278: .4byte gUnknown_203B108 -_0813027C: .4byte gUnknown_81C5DEA -_08130280: .4byte gStringVar4 -_08130284: - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - movs r3, 0 - bl AddTextPrinterParametrized -_0813029C: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - b _08130306 -_081302A6: - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _081302DC @ =gUnknown_81C5E91 - ldr r4, _081302E0 @ =gStringVar4 - cmp r2, r4 - beq _081302E4 - adds r0, r4, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - movs r3, 0 - bl AddTextPrinterParametrized - b _081302FE - .align 2, 0 -_081302DC: .4byte gUnknown_81C5E91 -_081302E0: .4byte gStringVar4 -_081302E4: - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - movs r3, 0 - bl AddTextPrinterParametrized -_081302FE: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram -_08130306: - ldr r0, _0813031C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _08130320 @ =sub_8130324 - str r0, [r1] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813031C: .4byte gTasks -_08130320: .4byte sub_8130324 - thumb_func_end sub_8130228 - - thumb_func_start sub_8130324 -sub_8130324: @ 8130324 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0813037C @ =gTasks+0x8 - adds r5, r6, r7 - bl ProcessMenuInput - lsls r0, 24 - asrs r4, r0, 24 - cmp r4, 0 - beq _08130388 - cmp r4, 0 - ble _081303A8 - cmp r4, 0x4 - bgt _081303A8 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r5, 0x1A] - movs r1, 0x1 - bl sub_810F4D8 - ldrb r0, [r5, 0x1A] - bl RemoveWindow - ldr r0, _08130380 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - subs r1, r4, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl sub_8131754 - movs r0, 0x1 - strh r0, [r5, 0x1E] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _08130384 @ =sub_8130464 - b _081303A6 - .align 2, 0 -_0813037C: .4byte gTasks+0x8 -_08130380: .4byte gUnknown_203B108 -_08130384: .4byte sub_8130464 -_08130388: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _081303B0 @ =sub_81303B4 -_081303A6: - str r1, [r0] -_081303A8: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081303B0: .4byte sub_81303B4 - thumb_func_end sub_8130324 - - thumb_func_start sub_81303B4 -sub_81303B4: @ 81303B4 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _081303F8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0813044C - ldr r4, _081303FC @ =gUnknown_203B108 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - movs r1, 0 - bl sub_8131754 - ldr r0, [r4] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _08130408 - ldr r0, _08130400 @ =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r2, [r1, 0x8] - str r5, [sp] - ldr r0, _08130404 @ =sub_8130C64 - str r0, [sp, 0x4] - movs r0, 0 - movs r3, 0 - bl DoNamingScreen - b _08130440 - .align 2, 0 -_081303F8: .4byte gPaletteFade -_081303FC: .4byte gUnknown_203B108 -_08130400: .4byte gSaveBlock2Ptr -_08130404: .4byte sub_8130C64 -_08130408: - ldr r0, _08130454 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_810F4D8 - ldrh r0, [r4, 0x22] - lsls r0, 24 - lsrs r0, 24 - bl RemoveWindow - ldr r0, _08130458 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, _0813045C @ =0x00003a4c - adds r1, r0 - str r5, [sp] - ldr r0, _08130460 @ =sub_8130C64 - str r0, [sp, 0x4] - movs r0, 0x4 - movs r2, 0 - movs r3, 0 - bl DoNamingScreen -_08130440: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8131168 - bl FreeAllWindowBuffers -_0813044C: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130454: .4byte gTasks -_08130458: .4byte gSaveBlock1Ptr -_0813045C: .4byte 0x00003a4c -_08130460: .4byte sub_8130C64 - thumb_func_end sub_81303B4 - - thumb_func_start sub_8130464 -sub_8130464: @ 8130464 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _081304A0 @ =gTasks+0x8 - adds r5, r6, r7 - ldr r0, _081304A4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08130544 - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _08130500 - ldr r0, _081304A8 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _081304B4 - ldr r0, _081304AC @ =gStringVar4 - ldr r1, _081304B0 @ =gUnknown_81C5E13 - bl StringExpandPlaceholders - b _081304BC - .align 2, 0 -_081304A0: .4byte gTasks+0x8 -_081304A4: .4byte gPaletteFade -_081304A8: .4byte gUnknown_203B108 -_081304AC: .4byte gStringVar4 -_081304B0: .4byte gUnknown_81C5E13 -_081304B4: - ldr r0, _081304F4 @ =gStringVar4 - ldr r1, _081304F8 @ =gUnknown_81C5EB5 - bl StringExpandPlaceholders -_081304BC: - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _081304F4 @ =gStringVar4 - ldr r0, _081304FC @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - movs r4, 0 - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - strh r4, [r5, 0x1E] - movs r0, 0x19 - strh r0, [r5, 0x6] - b _08130544 - .align 2, 0 -_081304F4: .4byte gStringVar4 -_081304F8: .4byte gUnknown_81C5EB5 -_081304FC: .4byte gUnknown_203B108 -_08130500: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _08130544 - ldrh r0, [r5, 0x6] - movs r1, 0x6 - ldrsh r4, [r5, r1] - cmp r4, 0 - beq _0813051C - subs r0, 0x1 - strh r0, [r5, 0x6] - b _08130544 -_0813051C: - bl sub_80F796C - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0813054C @ =gUnknown_8462ED0 - str r0, [sp] - movs r0, 0xE - str r0, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r1, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl sub_810FF60 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _08130550 @ =sub_8130554 - str r1, [r0] -_08130544: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813054C: .4byte gUnknown_8462ED0 -_08130550: .4byte sub_8130554 - thumb_func_end sub_8130464 - - thumb_func_start sub_8130554 -sub_8130554: @ 8130554 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r5, r0, 24 - cmp r5, 0 - beq _0813057C - cmp r5, 0 - bgt _08130576 - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - beq _08130604 - b _0813063E -_08130576: - cmp r5, 0x1 - beq _08130604 - b _0813063E -_0813057C: - movs r0, 0x5 - bl PlaySE - ldr r1, _081305B0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r6, r0, r1 - movs r0, 0x28 - strh r0, [r6, 0xE] - ldr r7, _081305B4 @ =gUnknown_203B108 - ldr r0, [r7] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _081305BC - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_813144C - ldr r0, _081305B8 @ =sub_8130650 - str r0, [r6] - b _0813063E - .align 2, 0 -_081305B0: .4byte gTasks -_081305B4: .4byte gUnknown_203B108 -_081305B8: .4byte sub_8130650 -_081305BC: - ldr r4, _081305F8 @ =gStringVar4 - ldr r1, _081305FC @ =gUnknown_81C5EC5 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r0, [r7] - ldrb r3, [r0, 0x1F] - str r5, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _08130600 @ =sub_8130694 - str r0, [r6] - b _0813063E - .align 2, 0 -_081305F8: .4byte gStringVar4 -_081305FC: .4byte gUnknown_81C5EC5 -_08130600: .4byte sub_8130694 -_08130604: - movs r0, 0x5 - bl PlaySE - ldr r0, _08130624 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _08130630 - ldr r0, _08130628 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813062C @ =sub_8130160 - b _0813063C - .align 2, 0 -_08130624: .4byte gUnknown_203B108 -_08130628: .4byte gTasks -_0813062C: .4byte sub_8130160 -_08130630: - ldr r0, _08130648 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813064C @ =sub_8130228 -_0813063C: - str r0, [r1] -_0813063E: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08130648: .4byte gTasks -_0813064C: .4byte sub_8130228 - thumb_func_end sub_8130554 - - thumb_func_start sub_8130650 -sub_8130650: @ 8130650 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r5, r1, 3 - ldr r6, _0813067C @ =gTasks+0x8 - adds r4, r5, r6 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813068A - bl sub_8131310 - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130680 - subs r0, r1, 0x1 - strh r0, [r4, 0x6] - b _0813068A - .align 2, 0 -_0813067C: .4byte gTasks+0x8 -_08130680: - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _08130690 @ =sub_81306D4 - str r1, [r0] -_0813068A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130690: .4byte sub_81306D4 - thumb_func_end sub_8130650 - - thumb_func_start sub_8130694 -sub_8130694: @ 8130694 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _081306C4 - movs r0, 0 - movs r1, 0x1 - bl sub_80F6F54 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_813144C - ldr r0, _081306CC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _081306D0 @ =sub_81307D0 - str r0, [r1] -_081306C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081306CC: .4byte gTasks -_081306D0: .4byte sub_81307D0 - thumb_func_end sub_8130694 - - thumb_func_start sub_81306D4 -sub_81306D4: @ 81306D4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - ldr r0, _08130710 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r1, 0 - strh r1, [r4, 0xA] - ldr r0, _08130714 @ =gSpriteCoordOffsetX - strh r1, [r0] - movs r0, 0x2 - bl sub_81311F4 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_81315CC - ldr r0, _08130718 @ =sub_813071C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08130710: .4byte gTasks -_08130714: .4byte gSpriteCoordOffsetX -_08130718: .4byte sub_813071C - thumb_func_end sub_81306D4 - - thumb_func_start sub_813071C -sub_813071C: @ 813071C - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08130770 @ =gTasks+0x8 - adds r0, r1 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _081307BC - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r2, _08130774 @ =gUnknown_81C5E2E - ldr r4, _08130778 @ =gStringVar4 - cmp r2, r4 - beq _08130780 - adds r0, r4, 0 - adds r1, r2, 0 - bl StringExpandPlaceholders - ldr r0, _0813077C @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - b _0813079E - .align 2, 0 -_08130770: .4byte gTasks+0x8 -_08130774: .4byte gUnknown_81C5E2E -_08130778: .4byte gStringVar4 -_0813077C: .4byte gUnknown_203B108 -_08130780: - ldr r0, _081307C4 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParametrized -_0813079E: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _081307C4 @ =gUnknown_203B108 - ldr r1, [r0] - movs r0, 0x1 - strh r0, [r1, 0x10] - ldr r1, _081307C8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _081307CC @ =sub_81301B0 - str r1, [r0] -_081307BC: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081307C4: .4byte gUnknown_203B108 -_081307C8: .4byte gTasks -_081307CC: .4byte sub_81301B0 - thumb_func_end sub_813071C - - thumb_func_start sub_81307D0 -sub_81307D0: @ 81307D0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081307FC @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08130846 - bl sub_8131310 - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130800 - subs r0, r1, 0x1 - strh r0, [r4, 0x6] - b _08130846 - .align 2, 0 -_081307FC: .4byte gTasks+0x8 -_08130800: - ldr r0, _08130814 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08130818 - movs r0, 0 - movs r1, 0 - bl sub_81311F4 - b _08130820 - .align 2, 0 -_08130814: .4byte gSaveBlock2Ptr -_08130818: - movs r0, 0x1 - movs r1, 0 - bl sub_81311F4 -_08130820: - ldr r0, _0813084C @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r1, 0 - strh r1, [r4, 0xA] - ldr r0, _08130850 @ =gSpriteCoordOffsetX - strh r1, [r0] - movs r0, 0x2 - movs r2, 0 - bl ChangeBgX - adds r0, r5, 0 - movs r1, 0x2 - bl sub_81315CC - ldr r0, _08130854 @ =sub_8130858 - str r0, [r4] -_08130846: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813084C: .4byte gTasks -_08130850: .4byte gSpriteCoordOffsetX -_08130854: .4byte sub_8130858 - thumb_func_end sub_81307D0 - - thumb_func_start sub_8130858 -sub_8130858: @ 8130858 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081308BC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081308B4 - ldr r4, _081308C0 @ =gStringVar4 - ldr r1, _081308C4 @ =gUnknown_81C5EF4 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0 - bl sub_80F6EE4 - ldr r0, _081308C8 @ =gUnknown_203B108 - ldr r0, [r0] - ldrb r3, [r0, 0x1F] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1E - strh r0, [r5, 0xE] - ldr r0, _081308CC @ =sub_81308D0 - str r0, [r5] -_081308B4: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081308BC: .4byte gTasks -_081308C0: .4byte gStringVar4 -_081308C4: .4byte gUnknown_81C5EF4 -_081308C8: .4byte gUnknown_203B108 -_081308CC: .4byte sub_81308D0 - thumb_func_end sub_8130858 - - thumb_func_start sub_81308D0 -sub_81308D0: @ 81308D0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0813090A - ldr r0, _081308FC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r4, r1, r0 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130900 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _0813090A - .align 2, 0 -_081308FC: .4byte gTasks -_08130900: - movs r0, 0x4 - bl FadeOutBGM - ldr r0, _08130910 @ =sub_8130914 - str r0, [r4] -_0813090A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08130910: .4byte sub_8130914 - thumb_func_end sub_81308D0 - - thumb_func_start sub_8130914 -sub_8130914: @ 8130914 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813093C @ =gUnknown_203B108 - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0x12] - adds r0, r4, 0 - bl sub_8130A38 - adds r0, r4, 0 - bl sub_8130ADC - adds r0, r4, 0 - bl sub_8130940 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813093C: .4byte gUnknown_203B108 - thumb_func_end sub_8130914 - - thumb_func_start sub_8130940 -sub_8130940: @ 8130940 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, _08130978 @ =gTasks+0x8 - adds r5, r4, r6 - movs r0, 0x2 - movs r1, 0x6 - movs r2, 0x1 - bl SetBgAttribute - movs r1, 0 - strh r1, [r5] - strh r1, [r5, 0x2] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r5, 0x4] - strh r1, [r5, 0x1E] - subs r6, 0x8 - adds r4, r6 - ldr r0, _0813097C @ =sub_8130980 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08130978: .4byte gTasks+0x8 -_0813097C: .4byte sub_8130980 - thumb_func_end sub_8130940 - - thumb_func_start sub_8130980 -sub_8130980: @ 8130980 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r7, r1, 3 - ldr r0, _08130A2C @ =gTasks+0x8 - mov r8, r0 - adds r5, r7, r0 - ldr r0, _08130A30 @ =gUnknown_203B108 - ldr r1, [r0] - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - ldrh r4, [r1, 0x12] - adds r0, r4, 0 - movs r1, 0x14 - bl __umodsi3 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - bne _08130A1E - cmp r4, 0x28 - bne _081309BE - movs r0, 0x27 - bl PlaySE -_081309BE: - ldrh r0, [r5, 0x4] - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r5, 0x4] - subs r0, 0x8 - lsls r0, 16 - asrs r0, 16 - bl sub_80D8B90 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r0, [r5, 0x4] - subs r0, 0x10 - lsls r0, 16 - asrs r0, 16 - bl sub_80D8B90 - movs r1, 0xF0 - lsls r1, 7 - movs r2, 0xA8 - lsls r2, 7 - movs r3, 0x54 - str r3, [sp] - lsls r4, 16 - asrs r4, 16 - str r4, [sp, 0x4] - lsls r0, 16 - asrs r0, 16 - str r0, [sp, 0x8] - str r6, [sp, 0xC] - movs r0, 0x2 - movs r3, 0x78 - bl SetBgAffine - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0x60 - bgt _08130A1E - movs r0, 0x1 - strh r0, [r5, 0x1E] - movs r0, 0x24 - strh r0, [r5] - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _08130A34 @ =sub_8130BA8 - str r1, [r0] -_08130A1E: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08130A2C: .4byte gTasks+0x8 -_08130A30: .4byte gUnknown_203B108 -_08130A34: .4byte sub_8130BA8 - thumb_func_end sub_8130980 - - thumb_func_start sub_8130A38 -sub_8130A38: @ 8130A38 - push {lr} - sub sp, 0x4 - ldr r0, _08130A74 @ =sub_8130A80 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08130A78 @ =gTasks+0x8 - adds r1, r0 - movs r0, 0 - strh r0, [r1] - strh r0, [r1, 0x2] - strh r0, [r1, 0x4] - strh r0, [r1, 0x1E] - ldr r0, _08130A7C @ =0xffff0fcf - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08130A74: .4byte sub_8130A80 -_08130A78: .4byte gTasks+0x8 -_08130A7C: .4byte 0xffff0fcf - thumb_func_end sub_8130A38 - - thumb_func_start sub_8130A80 -sub_8130A80: @ 8130A80 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08130AB8 @ =gTasks+0x8 - adds r2, r0, r1 - ldr r0, _08130ABC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08130AD4 - ldrh r0, [r2, 0x2] - movs r3, 0x2 - ldrsh r1, [r2, r3] - cmp r1, 0 - beq _08130AC0 - adds r0, r4, 0 - bl DestroyTask - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8131168 - b _08130AD4 - .align 2, 0 -_08130AB8: .4byte gTasks+0x8 -_08130ABC: .4byte gPaletteFade -_08130AC0: - adds r0, 0x1 - strh r0, [r2, 0x2] - movs r0, 0xF0 - lsls r0, 8 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08130AD4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8130A80 - - thumb_func_start sub_8130ADC -sub_8130ADC: @ 8130ADC - push {lr} - ldr r0, _08130B08 @ =sub_8130B10 - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08130B0C @ =gTasks+0x8 - adds r1, r0 - movs r2, 0x8 - strh r2, [r1] - movs r0, 0 - strh r0, [r1, 0x2] - strh r2, [r1, 0x4] - strh r0, [r1, 0x1C] - strh r0, [r1, 0x1E] - pop {r0} - bx r0 - .align 2, 0 -_08130B08: .4byte sub_8130B10 -_08130B0C: .4byte gTasks+0x8 - thumb_func_end sub_8130ADC - - thumb_func_start sub_8130B10 -sub_8130B10: @ 8130B10 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08130B30 @ =gTasks+0x8 - adds r4, r0, r1 - ldrh r1, [r4] - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130B34 - subs r0, r1, 0x1 - strh r0, [r4] - b _08130B96 - .align 2, 0 -_08130B30: .4byte gTasks+0x8 -_08130B34: - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - bgt _08130B4A - ldrh r1, [r4, 0x4] - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08130B4A - subs r0, r1, 0x1 - strh r0, [r4, 0x4] -_08130B4A: - ldrb r2, [r4, 0x1C] - ldr r7, _08130B9C @ =0x00007fff - movs r0, 0x40 - movs r1, 0x20 - adds r3, r7, 0 - bl BlendPalette - ldrh r1, [r4, 0x1C] - adds r1, 0x1 - strh r1, [r4, 0x1C] - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - strh r0, [r4] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0xE - ble _08130B96 - movs r2, 0 - ldr r6, _08130BA0 @ =gPlttBufferFaded - adds r3, r7, 0 - ldr r4, _08130BA4 @ =gPlttBufferUnfaded -_08130B78: - adds r0, r2, 0 - adds r0, 0x40 - lsls r0, 1 - adds r1, r0, r6 - strh r3, [r1] - adds r0, r4 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _08130B78 - adds r0, r5, 0 - bl DestroyTask -_08130B96: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08130B9C: .4byte 0x00007fff -_08130BA0: .4byte gPlttBufferFaded -_08130BA4: .4byte gPlttBufferUnfaded - thumb_func_end sub_8130B10 - - thumb_func_start sub_8130BA8 -sub_8130BA8: @ 8130BA8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08130BCC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - movs r2, 0x8 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _08130BD0 - subs r0, 0x1 - strh r0, [r4, 0x8] - b _08130BE2 - .align 2, 0 -_08130BCC: .4byte gTasks -_08130BD0: - str r1, [sp] - movs r0, 0x30 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08130BEC @ =sub_8130BF0 - str r0, [r4] -_08130BE2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08130BEC: .4byte sub_8130BF0 - thumb_func_end sub_8130BA8 - - thumb_func_start sub_8130BF0 -sub_8130BF0: @ 8130BF0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08130C14 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08130C10 - ldr r0, _08130C18 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _08130C1C @ =sub_8130C20 - str r0, [r1] -_08130C10: - pop {r0} - bx r0 - .align 2, 0 -_08130C14: .4byte gPaletteFade -_08130C18: .4byte gTasks -_08130C1C: .4byte sub_8130C20 - thumb_func_end sub_8130BF0 - - thumb_func_start sub_8130C20 -sub_8130C20: @ 8130C20 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl FreeAllWindowBuffers - bl sub_8044D80 - ldr r5, _08130C58 @ =gUnknown_203B108 - ldr r0, [r5] - bl Free - movs r0, 0 - str r0, [r5] - ldr r2, _08130C5C @ =gTextFlags - ldrb r1, [r2] - subs r0, 0x2 - ands r0, r1 - strb r0, [r2] - ldr r0, _08130C60 @ =CB2_NewGame - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08130C58: .4byte gUnknown_203B108 -_08130C5C: .4byte gTextFlags -_08130C60: .4byte CB2_NewGame - thumb_func_end sub_8130C20 - - thumb_func_start sub_8130C64 -sub_8130C64: @ 8130C64 - push {r4,r5,lr} - sub sp, 0x10 - ldr r0, _08130C84 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08130C78 - b _08130F10 -_08130C78: - lsls r0, 2 - ldr r1, _08130C88 @ =_08130C8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08130C84: .4byte gMain -_08130C88: .4byte _08130C8C - .align 2, 0 -_08130C8C: - .4byte _08130CAC - .4byte _08130D18 - .4byte _08130D78 - .4byte _08130DB2 - .4byte _08130DD0 - .4byte _08130DE8 - .4byte _08130E38 - .4byte _08130EB8 -_08130CAC: - movs r0, 0 - bl SetVBlankCallback - add r1, sp, 0x8 - movs r0, 0 - strh r0, [r1] - ldr r1, _08130D04 @ =0x040000d4 - add r0, sp, 0x8 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _08130D08 @ =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0xC] - add r0, sp, 0xC - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _08130D0C @ =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x8 - strh r2, [r0] - str r0, [r1] - ldr r0, _08130D10 @ =0x05000002 - str r0, [r1, 0x4] - ldr r0, _08130D14 @ =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - bl remove_some_task - bl ResetSpriteData - bl FreeAllSpritePalettes - bl reset_temp_tile_data_buffers - b _08130F10 - .align 2, 0 -_08130D04: .4byte 0x040000d4 -_08130D08: .4byte 0x8100c000 -_08130D0C: .4byte 0x85000100 -_08130D10: .4byte 0x05000002 -_08130D14: .4byte 0x810001ff -_08130D18: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08130D70 @ =gUnknown_8462E58 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, _08130D74 @ =gUnknown_203B108 - ldr r1, [r4] - movs r0, 0xE1 - lsls r0, 5 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0xC1 - lsls r0, 5 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - 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 - b _08130F10 - .align 2, 0 -_08130D70: .4byte gUnknown_8462E58 -_08130D74: .4byte gUnknown_203B108 -_08130D78: - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - b _08130F10 -_08130DB2: - bl FreeAllWindowBuffers - bl sub_80F6C6C - bl sub_80F6C98 - ldr r0, _08130DCC @ =gUnknown_8460568 - movs r1, 0 - movs r2, 0xE0 - bl LoadPalette - b _08130F10 - .align 2, 0 -_08130DCC: .4byte gUnknown_8460568 -_08130DD0: - ldr r1, _08130DE4 @ =gUnknown_8460CA4 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _08130F10 - .align 2, 0 -_08130DE4: .4byte gUnknown_8460CA4 -_08130DE8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _08130DF4 - b _08130F1E -_08130DF4: - movs r5, 0x1E - str r5, [sp] - movs r4, 0x14 - str r4, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r1, _08130E34 @ =gUnknown_8460CE8 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - b _08130F10 - .align 2, 0 -_08130E34: .4byte gUnknown_8460CE8 -_08130E38: - ldr r0, _08130E5C @ =sub_8130464 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08130E60 @ =gUnknown_203B108 - ldr r0, [r0] - ldrh r0, [r0, 0x10] - cmp r0, 0 - bne _08130E72 - ldr r0, _08130E64 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08130E68 - movs r0, 0 - b _08130E6A - .align 2, 0 -_08130E5C: .4byte sub_8130464 -_08130E60: .4byte gUnknown_203B108 -_08130E64: .4byte gSaveBlock2Ptr -_08130E68: - movs r0, 0x1 -_08130E6A: - movs r1, 0 - bl sub_81311F4 - b _08130E7A -_08130E72: - movs r0, 0x2 - movs r1, 0 - bl sub_81311F4 -_08130E7A: - ldr r0, _08130EA8 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldr r0, _08130EAC @ =0x0000ffc4 - strh r0, [r4, 0xA] - ldr r1, _08130EB0 @ =gSpriteCoordOffsetX - ldrh r0, [r1] - adds r0, 0x3C - strh r0, [r1] - ldr r1, _08130EB4 @ =0xffffc400 - movs r0, 0x2 - movs r2, 0 - bl ChangeBgX - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8130FD4 - movs r0, 0x1 - strh r0, [r4, 0x26] - b _08130F10 - .align 2, 0 -_08130EA8: .4byte gTasks -_08130EAC: .4byte 0x0000ffc4 -_08130EB0: .4byte gSpriteCoordOffsetX -_08130EB4: .4byte 0xffffc400 -_08130EB8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x1 - bl EnableInterrupts - ldr r0, _08130F04 @ =sub_812EAFC - bl SetVBlankCallback - ldr r2, _08130F08 @ =gTextFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08130F0C @ =sub_812EB10 - bl SetMainCallback2 - b _08130F1E - .align 2, 0 -_08130F04: .4byte sub_812EAFC -_08130F08: .4byte gTextFlags -_08130F0C: .4byte sub_812EB10 -_08130F10: - ldr r1, _08130F28 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08130F1E: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08130F28: .4byte gMain - thumb_func_end sub_8130C64 - - thumb_func_start sub_8130F2C -sub_8130F2C: @ 8130F2C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _08130FA0 @ =gUnknown_8235194 - movs r0, 0 - bl sub_8044E00 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1D - bl DecompressPicFromTable - ldr r0, _08130FA4 @ =gUnknown_82373F4 - bl sub_800F078 - movs r0, 0x1D - movs r1, 0 - bl sub_803F7D4 - ldr r0, _08130FA8 @ =gMultiuseSpriteTemplate - movs r1, 0x60 - movs r2, 0x60 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08130FAC @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r1, r2, r1 - ldr r3, _08130FB0 @ =SpriteCallbackDummy - str r3, [r1] - adds r2, r4 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - orrs r1, r3 - strb r1, [r2] - ldr r2, _08130FB4 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x10] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08130FA0: .4byte gUnknown_8235194 -_08130FA4: .4byte gUnknown_82373F4 -_08130FA8: .4byte gMultiuseSpriteTemplate -_08130FAC: .4byte gSprites -_08130FB0: .4byte SpriteCallbackDummy -_08130FB4: .4byte gTasks - thumb_func_end sub_8130F2C - - thumb_func_start sub_8130FB8 -sub_8130FB8: @ 8130FB8 - ldr r3, _08130FD0 @ =gSprites - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - adds r1, 0x2B - ldrb r1, [r1] - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_08130FD0: .4byte gSprites - thumb_func_end sub_8130FB8 - - thumb_func_start sub_8130FD4 -sub_8130FD4: @ 8130FD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - movs r4, 0 - cmp r1, 0 - beq _08130FF4 - cmp r1, 0x1 - beq _081310C8 - b _08131146 -_08130FF4: - ldr r4, _081310B0 @ =gUnknown_8462EFC - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r0, r4, 0 - adds r0, 0x8 - bl LoadCompressedObjectPic - adds r4, 0x10 - adds r0, r4, 0 - bl LoadCompressedObjectPic - ldr r0, _081310B4 @ =gUnknown_8462F1C - bl LoadSpritePalette - ldr r0, _081310B8 @ =gUnknown_846302C - mov r8, r0 - movs r1, 0x10 - movs r2, 0x11 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, _081310BC @ =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1, 0x5] - ldr r0, _081310C0 @ =gTasks - mov r1, r9 - lsls r4, r1, 2 - add r4, r9 - lsls r4, 3 - adds r4, r0 - strh r7, [r4, 0x16] - mov r0, r8 - adds r0, 0x18 - movs r1, 0x10 - movs r2, 0x9 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r2, r1, r6 - ldrb r3, [r2, 0x5] - adds r0, r5, 0 - ands r0, r3 - strb r0, [r2, 0x5] - ldrh r0, [r4, 0x16] - strh r0, [r2, 0x2E] - movs r2, 0x1C - adds r2, r6 - mov r10, r2 - add r1, r10 - ldr r3, _081310C4 @ =sub_8130FB8 - mov r9, r3 - str r3, [r1] - strh r7, [r4, 0x18] - movs r0, 0x30 - add r8, r0 - mov r0, r8 - movs r1, 0x18 - movs r2, 0xD - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r6, r0, r6 - ldrb r1, [r6, 0x5] - ands r5, r1 - strb r5, [r6, 0x5] - ldrh r1, [r4, 0x16] - strh r1, [r6, 0x2E] - add r0, r10 - mov r1, r9 - str r1, [r0] - strh r7, [r4, 0x1A] - b _08131146 - .align 2, 0 -_081310B0: .4byte gUnknown_8462EFC -_081310B4: .4byte gUnknown_8462F1C -_081310B8: .4byte gUnknown_846302C -_081310BC: .4byte gSprites -_081310C0: .4byte gTasks -_081310C4: .4byte sub_8130FB8 -_081310C8: - ldr r0, _08131154 @ =gUnknown_8462F14 - bl LoadCompressedObjectPic - ldr r0, _08131158 @ =gUnknown_8462F24 - bl LoadSpritePalette - mov r2, r9 - lsls r5, r2, 2 - ldr r3, _0813115C @ =gTasks+0x8 - mov r8, r3 - ldr r6, _08131160 @ =gSprites -_081310DE: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _08131164 @ =gUnknown_8462F50 - adds r0, r1 - lsls r1, r4, 21 - movs r2, 0xB0 - lsls r2, 15 - adds r1, r2 - asrs r1, 16 - movs r2, 0x70 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, r7, 4 - adds r2, r7 - lsls r2, 2 - adds r2, r6 - ldrb r1, [r2, 0x5] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x8 - orrs r1, r0 - strb r1, [r2, 0x5] - adds r3, r2, 0 - adds r3, 0x2C - ldrb r0, [r3] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, 0x7 - lsls r1, 1 - mov r2, r9 - adds r0, r5, r2 - lsls r0, 3 - adds r1, r0 - add r1, r8 - strh r7, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081310DE -_08131146: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131154: .4byte gUnknown_8462F14 -_08131158: .4byte gUnknown_8462F24 -_0813115C: .4byte gTasks+0x8 -_08131160: .4byte gSprites -_08131164: .4byte gUnknown_8462F50 - thumb_func_end sub_8130FD4 - - thumb_func_start sub_8131168 -sub_8131168: @ 8131168 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - movs r4, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r5, r1, 3 - ldr r7, _081311AC @ =gTasks+0x8 -_0813117C: - adds r0, r4, 0x7 - lsls r0, 1 - adds r0, r5 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081311B0 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0813117C - cmp r6, 0 - beq _081311B4 - cmp r6, 0x1 - beq _081311DC - b _081311EC - .align 2, 0 -_081311AC: .4byte gTasks+0x8 -_081311B0: .4byte gSprites -_081311B4: - ldr r0, _081311D0 @ =0x00001003 - bl FreeSpriteTilesByTag - ldr r0, _081311D4 @ =0x00001002 - bl FreeSpriteTilesByTag - ldr r4, _081311D8 @ =0x00001001 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - b _081311EC - .align 2, 0 -_081311D0: .4byte 0x00001003 -_081311D4: .4byte 0x00001002 -_081311D8: .4byte 0x00001001 -_081311DC: - movs r4, 0x80 - lsls r4, 5 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag -_081311EC: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8131168 - - thumb_func_start sub_81311F4 -sub_81311F4: @ 81311F4 - push {r4-r6,lr} - sub sp, 0x24 - lsls r0, 16 - lsrs r0, 16 - adds r2, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - cmp r0, 0x1 - beq _08131230 - cmp r0, 0x1 - bgt _08131210 - cmp r0, 0 - beq _0813121A - b _081312F6 -_08131210: - cmp r2, 0x2 - beq _08131248 - cmp r2, 0x3 - beq _0813126C - b _081312F6 -_0813121A: - ldr r0, _08131228 @ =gUnknown_84615FC - movs r1, 0x40 - movs r2, 0x40 - bl LoadPalette - ldr r0, _0813122C @ =gUnknown_846163C - b _08131254 - .align 2, 0 -_08131228: .4byte gUnknown_84615FC -_0813122C: .4byte gUnknown_846163C -_08131230: - ldr r0, _08131240 @ =gUnknown_8460ED4 - movs r1, 0x40 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08131244 @ =gUnknown_8460F14 - b _08131254 - .align 2, 0 -_08131240: .4byte gUnknown_8460ED4 -_08131244: .4byte gUnknown_8460F14 -_08131248: - ldr r0, _08131260 @ =gUnknown_84623AC - movs r1, 0x60 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08131264 @ =gUnknown_84623EC -_08131254: - ldr r2, _08131268 @ =0x06000600 - adds r1, r4, r2 - bl LZ77UnCompVram - b _08131280 - .align 2, 0 -_08131260: .4byte gUnknown_84623AC -_08131264: .4byte gUnknown_84623EC -_08131268: .4byte 0x06000600 -_0813126C: - ldr r0, _08131300 @ =gUnknown_8461CD4 - movs r1, 0x60 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08131304 @ =gUnknown_8461D14 - ldr r2, _08131308 @ =0x06000600 - adds r1, r4, r2 - bl LZ77UnCompVram -_08131280: - movs r0, 0x60 - bl AllocZeroed - ldr r2, _0813130C @ =gUnknown_203B108 - ldr r1, [r2] - str r0, [r1, 0x4] - movs r1, 0 - lsrs r6, r4, 6 -_08131290: - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r0, r1 - strb r1, [r0] - adds r1, 0x1 - cmp r1, 0x5F - bls _08131290 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r5, 0x10 - str r5, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - ldr r4, _0813130C @ =gUnknown_203B108 - ldr r0, [r4] - ldr r1, [r0, 0x4] - movs r3, 0x8 - str r3, [sp] - movs r2, 0xC - str r2, [sp, 0x4] - movs r0, 0xB - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - str r3, [sp, 0x10] - str r2, [sp, 0x14] - str r5, [sp, 0x18] - adds r0, r6, 0 - adds r0, 0x18 - str r0, [sp, 0x1C] - movs r5, 0 - str r5, [sp, 0x20] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyRectToBgTilemapBufferRect - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, [r4] - ldr r0, [r0, 0x4] - bl Free - ldr r0, [r4] - str r5, [r0, 0x4] -_081312F6: - add sp, 0x24 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08131300: .4byte gUnknown_8461CD4 -_08131304: .4byte gUnknown_8461D14 -_08131308: .4byte 0x06000600 -_0813130C: .4byte gUnknown_203B108 - thumb_func_end sub_81311F4 - - thumb_func_start sub_8131310 -sub_8131310: @ 8131310 - push {lr} - sub sp, 0xC - movs r0, 0x8 - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r2, 0xB - movs r3, 0x1 - bl FillBgTilemapBufferRect - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_8131310 - - thumb_func_start sub_8131338 -sub_8131338: @ 8131338 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r1, _081313A8 @ =gTasks - lsls r0, r6, 2 - mov r9, r0 - adds r0, r6 - lsls r5, r0, 3 - adds r2, r5, r1 - ldrh r3, [r2, 0xA] - movs r7, 0xA - ldrsh r0, [r2, r7] - mov r8, r1 - cmp r0, 0 - bne _081313B0 - movs r1, 0x8 - ldrsh r0, [r2, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - add r1, r8 - movs r0, 0x1 - strh r0, [r1, 0xC] - adds r0, r6, 0 - bl DestroyTask - ldr r6, _081313AC @ =gSprites - adds r2, r5, 0 - mov r5, r8 - adds r5, 0x8 - movs r3, 0x4 -_08131380: - adds r0, r4, 0x7 - lsls r0, 1 - adds r0, r2 - adds r0, r5 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08131380 - b _0813143A - .align 2, 0 -_081313A8: .4byte gTasks -_081313AC: .4byte gSprites -_081313B0: - ldrh r1, [r2, 0x10] - movs r7, 0x10 - ldrsh r0, [r2, r7] - cmp r0, 0 - beq _081313C0 - subs r0, r1, 0x1 - strh r0, [r2, 0x10] - b _0813143A -_081313C0: - ldrh r0, [r2, 0xE] - strh r0, [r2, 0x10] - subs r1, r3, 0x1 - strh r1, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - lsls r1, 16 - asrs r1, 16 - mov r12, r9 - cmp r1, 0x8 - bne _0813141E - adds r7, r5, 0 - movs r0, 0x8 - add r0, r8 - mov r10, r0 - movs r5, 0x1 - movs r1, 0x5 - negs r1, r1 - mov r9, r1 -_081313E8: - adds r0, r4, 0x7 - lsls r0, 1 - adds r0, r7 - add r0, r10 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08131448 @ =gSprites - adds r2, r0 - adds r2, 0x3E - ldrb r3, [r2] - lsls r1, r3, 29 - lsrs r1, 31 - eors r1, r5 - ands r1, r5 - lsls r1, 2 - mov r0, r9 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081313E8 -_0813141E: - mov r1, r12 - adds r0, r1, r6 - lsls r0, 3 - add r0, r8 - movs r2, 0xC - ldrsh r1, [r0, r2] - lsls r1, 8 - ldrh r0, [r0, 0xA] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_0813143A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131448: .4byte gSprites - thumb_func_end sub_8131338 - - thumb_func_start sub_813144C -sub_813144C: @ 813144C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - movs r7, 0 - ldr r1, _081314D0 @ =0x00001244 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r0, _081314D4 @ =gTasks - mov r8, r0 - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r0, r5, r0 - strh r7, [r0, 0xC] - ldr r0, _081314D8 @ =sub_8131338 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - mov r1, r8 - adds r0, r2, r1 - strh r4, [r0, 0x8] - movs r1, 0x10 - strh r1, [r0, 0xA] - strh r7, [r0, 0xC] - strh r6, [r0, 0xE] - strh r6, [r0, 0x10] - mov r3, r8 - adds r3, 0x8 -_081314AC: - adds r0, r7, 0x7 - lsls r0, 1 - adds r1, r0, r2 - adds r1, r3 - adds r0, r5 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _081314AC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081314D0: .4byte 0x00001244 -_081314D4: .4byte gTasks -_081314D8: .4byte sub_8131338 - thumb_func_end sub_813144C - - thumb_func_start sub_81314DC -sub_81314DC: @ 81314DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r1, _08131528 @ =gTasks - lsls r5, r6, 2 - adds r0, r5, r6 - lsls r0, 3 - mov r9, r0 - adds r2, r0, r1 - ldrh r3, [r2, 0xA] - movs r7, 0xA - ldrsh r0, [r2, r7] - mov r12, r1 - cmp r0, 0x10 - bne _08131530 - ldr r0, _0813152C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081315BA - movs r1, 0x8 - ldrsh r0, [r2, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - add r1, r12 - movs r0, 0x1 - strh r0, [r1, 0xC] - adds r0, r6, 0 - bl DestroyTask - b _081315BA - .align 2, 0 -_08131528: .4byte gTasks -_0813152C: .4byte gPaletteFade -_08131530: - ldrh r1, [r2, 0x10] - movs r7, 0x10 - ldrsh r0, [r2, r7] - cmp r0, 0 - beq _08131540 - subs r0, r1, 0x1 - strh r0, [r2, 0x10] - b _081315BA -_08131540: - ldrh r0, [r2, 0xE] - strh r0, [r2, 0x10] - adds r1, r3, 0x2 - strh r1, [r2, 0xA] - ldrh r0, [r2, 0xC] - subs r0, 0x2 - strh r0, [r2, 0xC] - lsls r1, 16 - asrs r1, 16 - mov r8, r5 - cmp r1, 0x8 - bne _0813159E - mov r7, r9 - movs r0, 0x8 - add r0, r12 - mov r10, r0 - movs r5, 0x1 - movs r1, 0x5 - negs r1, r1 - mov r9, r1 -_08131568: - adds r0, r4, 0x7 - lsls r0, 1 - adds r0, r7 - add r0, r10 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _081315C8 @ =gSprites - adds r2, r0 - adds r2, 0x3E - ldrb r3, [r2] - lsls r1, r3, 29 - lsrs r1, 31 - eors r1, r5 - ands r1, r5 - lsls r1, 2 - mov r0, r9 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08131568 -_0813159E: - mov r1, r8 - adds r0, r1, r6 - lsls r0, 3 - add r0, r12 - movs r2, 0xC - ldrsh r1, [r0, r2] - lsls r1, 8 - ldrh r0, [r0, 0xA] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_081315BA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081315C8: .4byte gSprites - thumb_func_end sub_81314DC - - thumb_func_start sub_81315CC -sub_81315CC: @ 81315CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - movs r7, 0 - ldr r1, _08131654 @ =0x00001244 - movs r0, 0x50 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r0, _08131658 @ =gTasks - mov r8, r0 - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r0, r5, r0 - strh r7, [r0, 0xC] - ldr r0, _0813165C @ =sub_81314DC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - mov r1, r8 - adds r0, r2, r1 - strh r4, [r0, 0x8] - strh r7, [r0, 0xA] - movs r1, 0x10 - strh r1, [r0, 0xC] - strh r6, [r0, 0xE] - strh r6, [r0, 0x10] - mov r3, r8 - adds r3, 0x8 -_0813162E: - adds r0, r7, 0x7 - lsls r0, 1 - adds r1, r0, r2 - adds r1, r3 - adds r0, r5 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _0813162E - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131654: .4byte 0x00001244 -_08131658: .4byte gTasks -_0813165C: .4byte sub_81314DC - thumb_func_end sub_81315CC - - thumb_func_start sub_8131660 -sub_8131660: @ 8131660 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - mov r8, r1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, _081316DC @ =gTasks+0x8 - adds r7, r4, r5 - ldr r0, _081316E0 @ =gUnknown_8462ED8 - bl AddWindow - strh r0, [r7, 0x1A] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r6, [r7, 0x1A] - bl sub_80F796C - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - movs r1, 0x1 - movs r3, 0xE - bl SetWindowBorderStyle - adds r5, r4 - ldrb r0, [r5, 0x1A] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r7, 0x1A] - ldr r2, _081316E4 @ =gUnknown_81C574F - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x8 - bl AddTextPrinterParameterized - mov r0, r8 - cmp r0, 0 - bne _081316F4 - ldr r0, _081316E8 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - ldr r6, _081316EC @ =gUnknown_84630D8 - cmp r0, 0 - bne _081316F6 - ldr r6, _081316F0 @ =gUnknown_846308C - b _081316F6 - .align 2, 0 -_081316DC: .4byte gTasks+0x8 -_081316E0: .4byte gUnknown_8462ED8 -_081316E4: .4byte gUnknown_81C574F -_081316E8: .4byte gSaveBlock2Ptr -_081316EC: .4byte gUnknown_84630D8 -_081316F0: .4byte gUnknown_846308C -_081316F4: - ldr r6, _08131750 @ =gUnknown_8463124 -_081316F6: - movs r4, 0 - movs r5, 0 -_081316FA: - ldrb r0, [r7, 0x1A] - lsls r1, r4, 2 - adds r1, r6 - ldr r2, [r1] - adds r4, 0x1 - lsls r1, r4, 4 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x8 - bl AddTextPrinterParameterized - lsls r4, 24 - lsrs r4, 24 - cmp r4, 0x3 - bls _081316FA - ldrb r0, [r7, 0x1A] - movs r1, 0x10 - str r1, [sp] - movs r1, 0x5 - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x1 - bl sub_810F7D8 - ldrb r0, [r7, 0x1A] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131750: .4byte gUnknown_8463124 - thumb_func_end sub_8131660 - - thumb_func_start sub_8131754 -sub_8131754: @ 8131754 - push {r4,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r0, 0 - bne _081317A0 - ldr r0, _08131770 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08131778 - ldr r4, _08131774 @ =gUnknown_846308C - b _0813177A - .align 2, 0 -_08131770: .4byte gSaveBlock2Ptr -_08131774: .4byte gUnknown_846308C -_08131778: - ldr r4, _08131798 @ =gUnknown_84630D8 -_0813177A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x13 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 14 - adds r0, r4 - ldr r3, [r0] - ldr r0, _0813179C @ =gSaveBlock2Ptr - ldr r4, [r0] - b _081317B0 - .align 2, 0 -_08131798: .4byte gUnknown_84630D8 -_0813179C: .4byte gSaveBlock2Ptr -_081317A0: - ldr r1, _081317EC @ =gUnknown_8463124 - lsls r0, r2, 2 - adds r0, r1 - ldr r3, [r0] - ldr r0, _081317F0 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _081317F4 @ =0x00003a4c - adds r4, r0, r1 -_081317B0: - movs r2, 0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _081317D2 -_081317B8: - adds r1, r4, r2 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x6 - bhi _081317D2 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081317B8 -_081317D2: - cmp r2, 0x7 - bhi _081317E6 - movs r1, 0xFF -_081317D8: - adds r0, r4, r2 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _081317D8 -_081317E6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081317EC: .4byte gUnknown_8463124 -_081317F0: .4byte gSaveBlock1Ptr -_081317F4: .4byte 0x00003a4c - thumb_func_end sub_8131754 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/option_menu.s b/asm/option_menu.s index 7ee737053..bf626caba 100644 --- a/asm/option_menu.s +++ b/asm/option_menu.s @@ -93,7 +93,7 @@ _080883FA: cmp r3, 0x5 bls _080883E6 movs r0, 0xD - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, _0808842C @ =sub_8088454 bl SetMainCallback2 pop {r4-r6} @@ -409,7 +409,7 @@ sub_8088680: @ 8088680 movs r1, 0 adds r2, r4, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2 bl PutWindowTilemap movs r0, 0x2 @@ -431,7 +431,7 @@ sub_80886D4: @ 80886D4 bl ResetPaletteFade bl FreeAllSpritePalettes bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_80886D4 @@ -906,7 +906,7 @@ _08088A72: movs r1, 0x2 mov r2, r8 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 b _08088ADE .align 2, 0 _08088A94: .4byte gUnknown_83CC354 @@ -940,7 +940,7 @@ _08088A9C: movs r1, 0x2 mov r2, r8 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 _08088ADE: movs r0, 0x1 bl PutWindowTilemap @@ -967,7 +967,7 @@ sub_8088B00: @ 8088B00 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r1, _08088BBC @ =gUnknown_3005020 + ldr r1, _08088BBC @ =gFieldCallback ldr r0, _08088BC0 @ =sub_807DF64 str r0, [r1] ldr r0, _08088BC4 @ =gMain @@ -1050,7 +1050,7 @@ sub_8088B00: @ 8088B00 pop {r0} bx r0 .align 2, 0 -_08088BBC: .4byte gUnknown_3005020 +_08088BBC: .4byte gFieldCallback _08088BC0: .4byte sub_807DF64 _08088BC4: .4byte gMain _08088BC8: .4byte gSaveBlock2Ptr diff --git a/asm/overworld.s b/asm/overworld.s index 2b3ca139d..ee0e8aa6d 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -72,7 +72,7 @@ sub_8054C48: @ 8054C48 bl sub_8054C04 adds r4, r0, 0 ldr r5, _08054C6C @ =gStringVar1 - bl sub_80CBF04 + bl CountDigits adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -118,7 +118,7 @@ _08054C9C: .4byte gUnknown_826D29E thumb_func_start sub_8054CA0 sub_8054CA0: @ 8054CA0 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -154,10 +154,10 @@ _08054D00: .4byte 0x00000808 _08054D04: .4byte 0x0000404d thumb_func_end sub_8054CA0 - thumb_func_start sub_8054D08 -sub_8054D08: @ 8054D08 + thumb_func_start Overworld_ResetStateAfterTeleport +Overworld_ResetStateAfterTeleport: @ 8054D08 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -191,12 +191,12 @@ _08054D60: .4byte 0x00000805 _08054D64: .4byte 0x00000806 _08054D68: .4byte 0x00000808 _08054D6C: .4byte 0x0000404d - thumb_func_end sub_8054D08 + thumb_func_end Overworld_ResetStateAfterTeleport thumb_func_start sub_8054D70 sub_8054D70: @ 8054D70 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -235,7 +235,7 @@ _08054DD4: .4byte 0x0000404d thumb_func_start sub_8054DD8 sub_8054DD8: @ 8054DD8 push {lr} - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0x83 lsls r0, 4 bl FlagClear @@ -722,7 +722,7 @@ get_mapdata_header: @ 8055170 .align 2, 0 _08055180: .4byte gSaveBlock1Ptr _08055184: - ldr r0, _08055194 @ =gUnknown_834EB8C + ldr r0, _08055194 @ =gMapLayouts subs r1, 0x1 lsls r1, 2 adds r1, r0 @@ -731,7 +731,7 @@ _0805518E: pop {r1} bx r1 .align 2, 0 -_08055194: .4byte gUnknown_834EB8C +_08055194: .4byte gMapLayouts thumb_func_end get_mapdata_header thumb_func_start warp_shift @@ -825,7 +825,7 @@ _08055232: get_mapheader_by_bank_and_number: @ 8055238 lsls r0, 16 lsls r1, 16 - ldr r2, _0805524C @ =gUnknown_83526A8 + ldr r2, _0805524C @ =gMapGroups lsrs r0, 14 adds r0, r2 ldr r0, [r0] @@ -834,7 +834,7 @@ get_mapheader_by_bank_and_number: @ 8055238 ldr r0, [r1] bx lr .align 2, 0 -_0805524C: .4byte gUnknown_83526A8 +_0805524C: .4byte gMapGroups thumb_func_end get_mapheader_by_bank_and_number thumb_func_start warp1_get_mapheader @@ -1084,8 +1084,8 @@ saved_warp2_set: @ 80553E8 _08055418: .4byte gSaveBlock1Ptr thumb_func_end saved_warp2_set - thumb_func_start saved_warp2_set_2 -saved_warp2_set_2: @ 805541C + thumb_func_start SetDynamicWarpWithCoords +SetDynamicWarpWithCoords: @ 805541C push {r4,r5,lr} sub sp, 0x8 ldr r4, [sp, 0x14] @@ -1112,7 +1112,7 @@ saved_warp2_set_2: @ 805541C bx r0 .align 2, 0 _08055450: .4byte gSaveBlock1Ptr - thumb_func_end saved_warp2_set_2 + thumb_func_end SetDynamicWarpWithCoords thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1 copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8055454 @@ -1178,15 +1178,15 @@ _080554B8: .4byte gSaveBlock1Ptr sub_80554BC: @ 80554BC push {lr} ldr r0, _080554C8 @ =gUnknown_2031DBC - bl sub_80BFCD0 + bl SetBlackoutRespawnWarpAndHealerNpc pop {r0} bx r0 .align 2, 0 _080554C8: .4byte gUnknown_2031DBC thumb_func_end sub_80554BC - thumb_func_start sub_80554CC -sub_80554CC: @ 80554CC + thumb_func_start SetLastHealLocationWarp +SetLastHealLocationWarp: @ 80554CC push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 @@ -1218,7 +1218,7 @@ _08055500: bx r0 .align 2, 0 _08055508: .4byte gSaveBlock1Ptr - thumb_func_end sub_80554CC + thumb_func_end SetLastHealLocationWarp thumb_func_start sub_805550C sub_805550C: @ 805550C @@ -1281,7 +1281,7 @@ sub_805550C: @ 805550C lsls r4, 24 asrs r4, 24 str r4, [sp] - bl sub_80555A0 + bl SetEscapeWarp _08055590: add sp, 0x4 pop {r4-r7} @@ -1292,8 +1292,8 @@ _08055598: .4byte gUnknown_2031DBC _0805559C: .4byte gSaveBlock1Ptr thumb_func_end sub_805550C - thumb_func_start sub_80555A0 -sub_80555A0: @ 80555A0 + thumb_func_start SetEscapeWarp +SetEscapeWarp: @ 80555A0 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -1325,7 +1325,7 @@ sub_80555A0: @ 80555A0 bx r0 .align 2, 0 _080555DC: .4byte gSaveBlock1Ptr - thumb_func_end sub_80555A0 + thumb_func_end SetEscapeWarp thumb_func_start sub_80555E0 sub_80555E0: @ 80555E0 @@ -1342,8 +1342,8 @@ _080555F0: .4byte gUnknown_2031DBC _080555F4: .4byte gSaveBlock1Ptr thumb_func_end sub_80555E0 - thumb_func_start sub_80555F8 -sub_80555F8: @ 80555F8 + thumb_func_start SetFixedDiveWarp +SetFixedDiveWarp: @ 80555F8 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -1373,7 +1373,7 @@ sub_80555F8: @ 80555F8 bx r0 .align 2, 0 _08055630: .4byte gUnknown_2031DC4 - thumb_func_end sub_80555F8 + thumb_func_end SetFixedDiveWarp thumb_func_start warp1_set_to_warp2 warp1_set_to_warp2: @ 8055634 @@ -1389,8 +1389,8 @@ _08055644: .4byte gUnknown_2031DBC _08055648: .4byte gUnknown_2031DC4 thumb_func_end warp1_set_to_warp2 - thumb_func_start sub_805564C -sub_805564C: @ 805564C + thumb_func_start SetFixedHoleWarp +SetFixedHoleWarp: @ 805564C push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -1420,10 +1420,10 @@ sub_805564C: @ 805564C bx r0 .align 2, 0 _08055684: .4byte gUnknown_2031DCC - thumb_func_end sub_805564C + thumb_func_end SetFixedHoleWarp - thumb_func_start sub_8055688 -sub_8055688: @ 8055688 + thumb_func_start SetWarpDestinationToFixedHoleWarp +SetWarpDestinationToFixedHoleWarp: @ 8055688 push {r4-r6,lr} sub sp, 0x4 lsls r0, 16 @@ -1464,7 +1464,7 @@ _080556D6: pop {r4-r6} pop {r0} bx r0 - thumb_func_end sub_8055688 + thumb_func_end SetWarpDestinationToFixedHoleWarp thumb_func_start warp1_set_to_sav1w warp1_set_to_sav1w: @ 80556E0 @@ -1712,7 +1712,7 @@ sub_8055864: @ 8055864 adds r0, r5, 0 adds r1, r4, 0 bl sub_810C578 - bl sub_807B140 + bl SetSav1WeatherFromCurrMapHeader bl sub_805610C bl sub_8055CB8 bl sav1_reset_battle_music_maybe @@ -1723,7 +1723,7 @@ sub_8055864: @ 8055864 ldr r0, [r4] bl copy_map_tileset2_to_vram_2 ldr r0, [r4] - bl sub_8059AA0 + bl apply_map_tileset2_palette movs r4, 0x7 _080558D4: lsls r0, r4, 24 @@ -1784,7 +1784,7 @@ sub_8055920: @ 8055920 lsls r1, 16 lsrs r1, 16 bl sub_810C578 - bl sub_807B140 + bl SetSav1WeatherFromCurrMapHeader bl sub_805610C cmp r4, 0 beq _08055974 @@ -1817,7 +1817,7 @@ sub_80559A8: @ 80559A8 ldrb r0, [r0, 0x17] bl is_light_level_1_2_3_5_or_6 bl TrySetMapSaveWarpStatus - bl sub_807B140 + bl SetSav1WeatherFromCurrMapHeader bl sub_805610C bl sub_8055CB8 bl sub_8110920 @@ -1830,8 +1830,8 @@ sub_80559A8: @ 80559A8 _080559E0: .4byte gMapHeader thumb_func_end sub_80559A8 - thumb_func_start sub_80559E4 -sub_80559E4: @ 80559E4 + thumb_func_start ResetInitialPlayerAvatarState +ResetInitialPlayerAvatarState: @ 80559E4 ldr r0, _080559F4 @ =gUnknown_2031DD4 movs r2, 0 movs r1, 0x1 @@ -1841,7 +1841,7 @@ sub_80559E4: @ 80559E4 bx lr .align 2, 0 _080559F4: .4byte gUnknown_2031DD4 - thumb_func_end sub_80559E4 + thumb_func_end ResetInitialPlayerAvatarState thumb_func_start sub_80559F8 sub_80559F8: @ 80559F8 @@ -2295,8 +2295,8 @@ sav1_get_flash_used_on_map: @ 8055D30 _08055D3C: .4byte gSaveBlock1Ptr thumb_func_end sav1_get_flash_used_on_map - thumb_func_start sub_8055D40 -sub_8055D40: @ 8055D40 + thumb_func_start SetCurrentMapLayout +SetCurrentMapLayout: @ 8055D40 push {lr} ldr r1, _08055D54 @ =gSaveBlock1Ptr ldr r1, [r1] @@ -2309,7 +2309,7 @@ sub_8055D40: @ 8055D40 .align 2, 0 _08055D54: .4byte gSaveBlock1Ptr _08055D58: .4byte gMapHeader - thumb_func_end sub_8055D40 + thumb_func_end SetCurrentMapLayout thumb_func_start sub_8055D5C sub_8055D5C: @ 8055D5C @@ -2411,7 +2411,7 @@ _08055DDC: bgt _08055E24 ldr r0, _08055E1C @ =gMPlayInfo_BGM ldr r1, [r0] - ldr r0, _08055E20 @ =gUnknown_86E6B0C + ldr r0, _08055E20 @ =gSong_86E6B0C cmp r1, r0 bne _08055E24 movs r0, 0x4 @@ -2421,7 +2421,7 @@ _08055DDC: _08055E14: .4byte gSaveBlock1Ptr _08055E18: .4byte 0x00004f01 _08055E1C: .4byte gMPlayInfo_BGM -_08055E20: .4byte gUnknown_86E6B0C +_08055E20: .4byte gSong_86E6B0C _08055E24: bl sub_8055D8C lsls r0, 16 @@ -2441,7 +2441,7 @@ _08055E40: lsls r0, 24 cmp r0, 0 beq _08055E5A - ldr r5, _08055E74 @ =0x00000131 + ldr r5, _08055E74 @ =0x00000131 @ BGM_FRLG_SURF adds r0, r5, 0 bl sub_8056124 cmp r0, 0 @@ -2464,15 +2464,15 @@ _08055E6C: _08055E74: .4byte 0x00000131 thumb_func_end sub_8055DC4 - thumb_func_start sub_8055E78 -sub_8055E78: @ 8055E78 + thumb_func_start Overworld_SetSavedMusic +Overworld_SetSavedMusic: @ 8055E78 ldr r1, _08055E80 @ =gSaveBlock1Ptr ldr r1, [r1] strh r0, [r1, 0x2C] bx lr .align 2, 0 _08055E80: .4byte gSaveBlock1Ptr - thumb_func_end sub_8055E78 + thumb_func_end Overworld_SetSavedMusic thumb_func_start sav1_reset_battle_music_maybe sav1_reset_battle_music_maybe: @ 8055E84 @@ -2511,7 +2511,7 @@ _08055EA8: bl GetCurrentMapMusic lsls r0, 16 lsrs r6, r0, 16 - ldr r5, _08055F08 @ =0x00000131 + ldr r5, _08055F08 @ =0x00000131 @ BGM_FRLG_SURF cmp r6, r5 beq _08055F14 movs r0, 0x8 @@ -2573,8 +2573,8 @@ _08055F42: bx r0 thumb_func_end Overworld_ChangeMusicToDefault - thumb_func_start sub_8055F48 -sub_8055F48: @ 8055F48 + thumb_func_start Overworld_ChangeMusicTo +Overworld_ChangeMusicTo: @ 8055F48 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -2590,7 +2590,7 @@ _08055F62: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8055F48 + thumb_func_end Overworld_ChangeMusicTo thumb_func_start GetMapMusicFadeoutSpeed GetMapMusicFadeoutSpeed: @ 8055F68 @@ -2958,8 +2958,8 @@ _080561F8: bx r1 thumb_func_end is_light_level_1_2_3_5_or_6 - thumb_func_start is_light_level_1_2_3_or_6 -is_light_level_1_2_3_or_6: @ 80561FC + thumb_func_start Overworld_MapTypeAllowsTeleportAndFly +Overworld_MapTypeAllowsTeleportAndFly: @ 80561FC push {lr} lsls r0, 24 lsrs r0, 24 @@ -2979,7 +2979,7 @@ _08056216: _08056218: pop {r1} bx r1 - thumb_func_end is_light_level_1_2_3_or_6 + thumb_func_end Overworld_MapTypeAllowsTeleportAndFly thumb_func_start is_light_level_8_or_9 is_light_level_8_or_9: @ 805621C @@ -3022,8 +3022,8 @@ sav1_saved_warp2_map_get_name: @ 8056238 _0805625C: .4byte gSaveBlock1Ptr thumb_func_end sav1_saved_warp2_map_get_name - thumb_func_start sav1_map_get_name -sav1_map_get_name: @ 8056260 + thumb_func_start GetCurrentRegionMapSectionId +GetCurrentRegionMapSectionId: @ 8056260 push {lr} ldr r0, _08056284 @ =gSaveBlock1Ptr ldr r1, [r0] @@ -3042,7 +3042,7 @@ sav1_map_get_name: @ 8056260 bx r1 .align 2, 0 _08056284: .4byte gSaveBlock1Ptr - thumb_func_end sav1_map_get_name + thumb_func_end GetCurrentRegionMapSectionId thumb_func_start sav1_map_get_battletype sav1_map_get_battletype: @ 8056288 @@ -3117,8 +3117,8 @@ sub_80562B0: @ 80562B0 ldr r1, [r5] movs r0, 0x3 bl SetBgTilemapBuffer - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 bl sub_8069348 pop {r3} mov r8, r3 @@ -3181,8 +3181,8 @@ sub_8056354: @ 8056354 ldr r1, [r5] movs r0, 0x3 bl SetBgTilemapBuffer - bl sub_80F6C6C - bl sub_80F6C98 + bl InitStandardTextBoxWindows + bl ResetBg0 bl sub_8069348 pop {r3} mov r8, r3 @@ -3196,8 +3196,8 @@ _080563E8: .4byte gUnknown_3005014 _080563EC: .4byte gUnknown_300501C thumb_func_end sub_8056354 - thumb_func_start sub_80563F0 -sub_80563F0: @ 80563F0 + thumb_func_start CleanupOverworldWindowsAndTilemaps +CleanupOverworldWindowsAndTilemaps: @ 80563F0 push {lr} bl sub_80F6C8C ldr r0, _08056414 @ =gUnknown_300501C @@ -3215,7 +3215,7 @@ sub_80563F0: @ 80563F0 _08056414: .4byte gUnknown_300501C _08056418: .4byte gUnknown_3005014 _0805641C: .4byte gUnknown_3005018 - thumb_func_end sub_80563F0 + thumb_func_end CleanupOverworldWindowsAndTilemaps thumb_func_start sub_8056420 sub_8056420: @ 8056420 @@ -3225,8 +3225,8 @@ sub_8056420: @ 8056420 bx r0 thumb_func_end sub_8056420 - thumb_func_start sub_805642C -sub_805642C: @ 805642C + thumb_func_start is_c1_link_related_active +is_c1_link_related_active: @ 805642C push {lr} ldr r0, _0805643C @ =gMain ldr r1, [r0] @@ -3243,7 +3243,7 @@ _08056444: _08056446: pop {r1} bx r1 - thumb_func_end sub_805642C + thumb_func_end is_c1_link_related_active thumb_func_start sub_805644C sub_805644C: @ 805644C @@ -3442,7 +3442,7 @@ _080565E8: .4byte gMain thumb_func_start map_post_load_hook_exec map_post_load_hook_exec: @ 80565EC push {r4,lr} - ldr r4, _08056604 @ =gUnknown_3005024 + ldr r4, _08056604 @ =gFieldCallback2 ldr r0, [r4] cmp r0, 0 beq _08056618 @@ -3453,28 +3453,28 @@ map_post_load_hook_exec: @ 80565EC movs r0, 0 b _08056638 .align 2, 0 -_08056604: .4byte gUnknown_3005024 +_08056604: .4byte gFieldCallback2 _08056608: movs r1, 0 str r1, [r4] - ldr r0, _08056614 @ =gUnknown_3005020 + ldr r0, _08056614 @ =gFieldCallback str r1, [r0] b _08056636 .align 2, 0 -_08056614: .4byte gUnknown_3005020 +_08056614: .4byte gFieldCallback _08056618: - ldr r0, _08056628 @ =gUnknown_3005020 + ldr r0, _08056628 @ =gFieldCallback ldr r0, [r0] cmp r0, 0 beq _0805662C bl _call_via_r0 b _08056630 .align 2, 0 -_08056628: .4byte gUnknown_3005020 +_08056628: .4byte gFieldCallback _0805662C: bl sub_807DF64 _08056630: - ldr r1, _08056640 @ =gUnknown_3005020 + ldr r1, _08056640 @ =gFieldCallback movs r0, 0 str r0, [r1] _08056636: @@ -3484,7 +3484,7 @@ _08056638: pop {r1} bx r1 .align 2, 0 -_08056640: .4byte gUnknown_3005020 +_08056640: .4byte gFieldCallback thumb_func_end map_post_load_hook_exec thumb_func_start CB2_NewGame @@ -3494,14 +3494,14 @@ CB2_NewGame: @ 8056644 bl StopMapMusic bl sub_8056420 bl sub_8054A60 - bl sub_80559E4 + bl ResetInitialPlayerAvatarState bl PlayTimeCounter_Start bl ScriptContext1_Init bl ScriptContext2_Disable - ldr r1, _0805668C @ =gUnknown_3005020 + ldr r1, _0805668C @ =gFieldCallback ldr r0, _08056690 @ =sub_807DF7C str r0, [r1] - ldr r1, _08056694 @ =gUnknown_3005024 + ldr r1, _08056694 @ =gFieldCallback2 movs r0, 0 str r0, [r1] ldr r0, _08056698 @ =gMain + 0x438 @@ -3514,9 +3514,9 @@ CB2_NewGame: @ 8056644 pop {r0} bx r0 .align 2, 0 -_0805668C: .4byte gUnknown_3005020 +_0805668C: .4byte gFieldCallback _08056690: .4byte sub_807DF7C -_08056694: .4byte gUnknown_3005024 +_08056694: .4byte gFieldCallback2 _08056698: .4byte gMain + 0x438 _0805669C: .4byte sub_8056534 _080566A0: .4byte sub_80565B4 @@ -3545,7 +3545,7 @@ c2_whiteout: @ 80566A4 bl sub_80559F8 bl ScriptContext1_Init bl ScriptContext2_Disable - ldr r1, _0805670C @ =gUnknown_3005020 + ldr r1, _0805670C @ =gFieldCallback ldr r0, _08056710 @ =sub_807F5F0 str r0, [r1] mov r1, sp @@ -3565,7 +3565,7 @@ _08056702: bx r0 .align 2, 0 _08056708: .4byte gMain -_0805670C: .4byte gUnknown_3005020 +_0805670C: .4byte gFieldCallback _08056710: .4byte sub_807F5F0 _08056714: .4byte sub_8056534 _08056718: .4byte sub_80565B4 @@ -3624,7 +3624,7 @@ _08056784: .4byte sub_80565B4 sub_8056788: @ 8056788 push {lr} bl sub_80569BC - ldr r0, _080567A0 @ =gUnknown_3005020 + ldr r0, _080567A0 @ =gFieldCallback ldr r1, _080567A4 @ =sub_807DE58 str r1, [r0] ldr r0, _080567A8 @ =c2_80567AC @@ -3632,7 +3632,7 @@ sub_8056788: @ 8056788 pop {r0} bx r0 .align 2, 0 -_080567A0: .4byte gUnknown_3005020 +_080567A0: .4byte gFieldCallback _080567A4: .4byte sub_807DE58 _080567A8: .4byte c2_80567AC thumb_func_end sub_8056788 @@ -3659,10 +3659,10 @@ _080567D4: .4byte c1_link_related _080567D8: .4byte sub_80565B4 thumb_func_end c2_80567AC - thumb_func_start c2_exit_to_overworld_2_switch -c2_exit_to_overworld_2_switch: @ 80567DC + thumb_func_start CB2_ReturnToField +CB2_ReturnToField: @ 80567DC push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _080567F4 ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link @@ -3679,7 +3679,7 @@ _080567FE: bx r0 .align 2, 0 _08056804: .4byte c2_exit_to_overworld_2_local - thumb_func_end c2_exit_to_overworld_2_switch + thumb_func_end CB2_ReturnToField thumb_func_start c2_exit_to_overworld_2_local c2_exit_to_overworld_2_local: @ 8056808 @@ -3731,26 +3731,26 @@ c2_8056854: @ 8056854 ldrb r0, [r0] cmp r0, 0 beq _08056888 - ldr r1, _08056880 @ =gUnknown_3005020 + ldr r1, _08056880 @ =gFieldCallback ldr r0, _08056884 @ =sub_807DE58 b _0805688C .align 2, 0 _08056878: .4byte c1_link_related _0805687C: .4byte gWirelessCommType -_08056880: .4byte gUnknown_3005020 +_08056880: .4byte gFieldCallback _08056884: .4byte sub_807DE58 _08056888: - ldr r1, _080568A0 @ =gUnknown_3005020 + ldr r1, _080568A0 @ =gFieldCallback ldr r0, _080568A4 @ =sub_807DDD0 _0805688C: str r0, [r1] bl ScriptContext1_Init bl ScriptContext2_Disable - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_080568A0: .4byte gUnknown_3005020 +_080568A0: .4byte gFieldCallback _080568A4: .4byte sub_807DDD0 thumb_func_end c2_8056854 @@ -3758,14 +3758,14 @@ _080568A4: .4byte sub_807DDD0 sub_80568A8: @ 80568A8 push {lr} bl sub_80569BC - ldr r1, _080568BC @ =gUnknown_3005024 + ldr r1, _080568BC @ =gFieldCallback2 ldr r0, _080568C0 @ =sub_807E3BC str r0, [r1] - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_080568BC: .4byte gUnknown_3005024 +_080568BC: .4byte gFieldCallback2 _080568C0: .4byte sub_807E3BC thumb_func_end sub_80568A8 @@ -3773,14 +3773,14 @@ _080568C0: .4byte sub_807E3BC sub_80568C4: @ 80568C4 push {lr} bl sub_80569BC - ldr r1, _080568D8 @ =gUnknown_3005020 + ldr r1, _080568D8 @ =gFieldCallback ldr r0, _080568DC @ =sub_807DD44 str r0, [r1] - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_080568D8: .4byte gUnknown_3005020 +_080568D8: .4byte gFieldCallback _080568DC: .4byte sub_807DD44 thumb_func_end sub_80568C4 @@ -3788,29 +3788,29 @@ _080568DC: .4byte sub_807DD44 c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80568E0 push {lr} bl sub_80569BC - ldr r1, _080568F4 @ =gUnknown_3005020 - ldr r0, _080568F8 @ =sub_807DD24 + ldr r1, _080568F4 @ =gFieldCallback + ldr r0, _080568F8 @ =FieldCallback_ReturnToEventScript2 str r0, [r1] - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_080568F4: .4byte gUnknown_3005020 -_080568F8: .4byte sub_807DD24 +_080568F4: .4byte gFieldCallback +_080568F8: .4byte FieldCallback_ReturnToEventScript2 thumb_func_end c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_start sub_80568FC sub_80568FC: @ 80568FC push {lr} bl sub_80569BC - ldr r1, _08056910 @ =gUnknown_3005020 + ldr r1, _08056910 @ =gFieldCallback ldr r0, _08056914 @ =sub_807DF7C str r0, [r1] - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField pop {r0} bx r0 .align 2, 0 -_08056910: .4byte gUnknown_3005020 +_08056910: .4byte gFieldCallback _08056914: .4byte sub_807DF7C thumb_func_end sub_80568FC @@ -3847,7 +3847,7 @@ sub_8056938: @ 8056938 bl PlayTimeCounter_Start bl ScriptContext1_Init bl ScriptContext2_Disable - ldr r1, _08056990 @ =gUnknown_3005024 + ldr r1, _08056990 @ =gFieldCallback2 movs r0, 0 str r0, [r1] ldr r1, _08056994 @ =gUnknown_2031DE0 @@ -3863,21 +3863,21 @@ sub_8056938: @ 8056938 bl SetMainCallback2 b _080569AC .align 2, 0 -_08056990: .4byte gUnknown_3005024 +_08056990: .4byte gFieldCallback2 _08056994: .4byte gUnknown_2031DE0 _08056998: .4byte sub_805671C _0805699C: - ldr r0, _080569B0 @ =gUnknown_3005020 + ldr r0, _080569B0 @ =gFieldCallback ldr r1, _080569B4 @ =sub_8056918 str r1, [r0] ldr r0, _080569B8 @ =sub_8056534 bl sub_80565E0 - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField _080569AC: pop {r0} bx r0 .align 2, 0 -_080569B0: .4byte gUnknown_3005020 +_080569B0: .4byte gFieldCallback _080569B4: .4byte sub_8056918 _080569B8: .4byte sub_8056534 thumb_func_end sub_8056938 @@ -3890,7 +3890,7 @@ sub_80569BC: @ 80569BC lsrs r0, 24 cmp r0, 0x1 bne _080569CE - bl sub_80098B8 + bl CloseLink _080569CE: ldr r0, _080569E4 @ =gWirelessCommType ldrb r0, [r0] @@ -3933,7 +3933,7 @@ VBlankCB_Field: @ 8056A14 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer bl FieldUpdateBgTilemapScroll bl TransferPlttBuffer bl TransferTilesetAnimsBuffer @@ -3954,7 +3954,7 @@ sub_8056A34: @ 8056A34 ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams _08056A52: pop {r0} bx r0 @@ -4024,14 +4024,14 @@ _08056AEE: _08056AF4: ldr r0, _08056B00 @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _08056B62 .align 2, 0 _08056B00: .4byte gMapHeader _08056B04: ldr r0, _08056B10 @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _08056B62 .align 2, 0 _08056B10: .4byte gMapHeader @@ -4166,14 +4166,14 @@ _08056C2A: _08056C30: ldr r0, _08056C3C @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _08056CCA .align 2, 0 _08056C3C: .4byte gMapHeader _08056C40: ldr r0, _08056C4C @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _08056CCA .align 2, 0 _08056C4C: .4byte gMapHeader @@ -4355,14 +4355,14 @@ _08056DCA: _08056DD0: ldr r0, _08056DDC @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _08056E3E .align 2, 0 _08056DDC: .4byte gMapHeader _08056DE0: ldr r0, _08056DEC @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _08056E3E .align 2, 0 _08056DEC: .4byte gMapHeader @@ -4451,7 +4451,7 @@ sub_8056E80: @ 8056E80 movs r0, 0 movs r1, 0 bl SetGpuReg - bl remove_some_task + bl ScanlineEffect_Stop ldr r2, _08056EF8 @ =0x05000002 mov r1, sp movs r0, 0 @@ -4630,8 +4630,8 @@ sub_8057024: @ 8057024 bl ResetTasks bl ResetSpriteData bl ResetPaletteFade - bl dp12_8087EA4 - bl dp13_810BB8C + bl ScanlineEffect_Clear + bl ResetAllPicSprites bl ResetCameraUpdateInfo bl InstallCameraPanAheadCallback cmp r4, 0 @@ -4690,7 +4690,7 @@ mli4_mapscripts_and_other: @ 805709C adds r4, 0x2 mov r0, sp adds r1, r4, 0 - bl sav1_camera_get_focus_coords + bl GetCameraFocusCoords bl sub_8055A6C adds r5, r0, 0 mov r0, sp @@ -4705,7 +4705,7 @@ mli4_mapscripts_and_other: @ 805709C bl InitPlayerAvatar ldrb r0, [r5] bl SetPlayerAvatarTransitionFlags - bl sub_80559E4 + bl ResetInitialPlayerAvatarState movs r0, 0 movs r1, 0 bl sub_805EC30 @@ -4792,7 +4792,7 @@ sub_8057178: @ 8057178 adds r4, 0x2 mov r0, sp adds r1, r4, 0 - bl sav1_camera_get_focus_coords + bl GetCameraFocusCoords mov r2, sp ldr r0, _080571A4 @ =gUnknown_300502C ldrb r1, [r0] @@ -4801,7 +4801,7 @@ sub_8057178: @ 8057178 lsls r0, 16 lsrs r0, 16 ldrh r1, [r4] - bl sub_80597EC + bl SetCameraFocusCoords add sp, 0x4 pop {r4} pop {r0} @@ -4820,7 +4820,7 @@ sub_80571A8: @ 80571A8 adds r4, 0x2 mov r0, sp adds r1, r4, 0 - bl sav1_camera_get_focus_coords + bl GetCameraFocusCoords mov r3, sp mov r2, sp ldr r0, _08057224 @ =gUnknown_300502C @@ -5066,14 +5066,14 @@ _080573C2: _080573C8: ldr r0, _080573D4 @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _08057412 .align 2, 0 _080573D4: .4byte gMapHeader _080573D8: ldr r0, _080573E4 @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _08057412 .align 2, 0 _080573E4: .4byte gMapHeader @@ -5150,7 +5150,7 @@ _0805748C: .4byte sub_805671C _08057490: ldr r0, _080574A0 @ =sub_8056534 bl sub_80565E0 - bl c2_exit_to_overworld_2_switch + bl CB2_ReturnToField _0805749A: pop {r0} bx r0 @@ -5314,7 +5314,7 @@ _08057560: bl ScriptContext2_Disable movs r0, 0 bl sub_80565E0 - ldr r1, _08057614 @ =gUnknown_3005024 + ldr r1, _08057614 @ =gFieldCallback2 ldr r0, _08057618 @ =sub_80574EC str r0, [r1] ldr r0, _0805761C @ =gMain @@ -5334,7 +5334,7 @@ _08057604: .4byte 0x0000ffff _08057608: .4byte gUnknown_2031DBC _0805760C: .4byte gUnknown_2031DE8 _08057610: .4byte gPaletteFade -_08057614: .4byte gUnknown_3005024 +_08057614: .4byte gFieldCallback2 _08057618: .4byte sub_80574EC _0805761C: .4byte gMain _08057620: @@ -5395,8 +5395,8 @@ _08057690: bl sub_8055920 b _0805772A _0805769C: - bl dp12_8087EA4 - bl dp13_810BB8C + bl ScanlineEffect_Clear + bl ResetAllPicSprites bl ResetCameraUpdateInfo bl InstallCameraPanAheadCallback bl FieldEffectActiveListClear @@ -5415,14 +5415,14 @@ _080576CC: _080576D2: ldr r0, _080576DC @ =gMapHeader ldr r0, [r0] - bl sub_8059A54 + bl copy_map_tileset1_to_vram b _0805772A .align 2, 0 _080576DC: .4byte gMapHeader _080576E0: ldr r0, _080576EC @ =gMapHeader ldr r0, [r0] - bl sub_8059A68 + bl copy_map_tileset2_to_vram b _0805772A .align 2, 0 _080576EC: .4byte gMapHeader @@ -5619,7 +5619,7 @@ sub_8057854: @ 8057854 ands r0, r1 cmp r0, 0 bne _08057876 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _08057880 @ =sub_805671C bl SetMainCallback2 adds r0, r4, 0 @@ -6144,7 +6144,7 @@ _08057C72: bl sub_805833C cmp r0, 0x1 bls _08057CA8 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _08057CA8 bl sub_800A00C @@ -6748,7 +6748,7 @@ _08058074: ldr r1, [r4, 0x8] str r0, [sp] str r1, [sp, 0x4] - ldr r3, _080580E4 @ =gUnknown_826D2D8 + ldr r3, _080580E4 @ =gDirectionToVectors ldrb r0, [r4, 0x3] lsls r0, 3 adds r0, r3 @@ -6801,7 +6801,7 @@ _080580E0: ldr r0, _080580F8 @ =gUnknown_81BB9A3 b _08058122 .align 2, 0 -_080580E4: .4byte gUnknown_826D2D8 +_080580E4: .4byte gDirectionToVectors _080580E8: .4byte 0xffff0000 _080580EC: .4byte 0x0000ffff _080580F0: .4byte 0xffffff00 @@ -6976,7 +6976,7 @@ _08058240: .4byte gUnknown_81BB9F0 thumb_func_start sub_8058244 sub_8058244: @ 8058244 push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _08058252 movs r0, 0 @@ -7009,7 +7009,7 @@ sub_8058274: @ 8058274 bl sub_800B248 cmp r0, 0x1 bls _080582D8 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _080582D8 bl sub_800A00C @@ -7062,7 +7062,7 @@ sub_80582E0: @ 80582E0 bl sub_805833C cmp r0, 0x1 bls _08058304 - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _08058304 bl sub_800A00C @@ -7829,7 +7829,7 @@ _08058854: bls _08058810 asrs r0, r3, 16 asrs r1, r5, 16 - bl sub_8058DC4 + bl MapGridIsImpassableAt lsls r0, 24 lsrs r0, 24 _0805886A: @@ -7888,7 +7888,7 @@ _080588C6: movs r2, 0 str r2, [sp] movs r3, 0 - bl AddPseudoFieldObject + bl AddPseudoEventObject strb r0, [r4, 0x4] ldrb r1, [r4, 0x4] lsls r0, r1, 4 diff --git a/asm/party_menu.s b/asm/party_menu.s index c4980f984..2c3623442 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_811EA44 -sub_811EA44: @ 811EA44 + thumb_func_start PartyMenuInit +PartyMenuInit: @ 811EA44 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -181,7 +181,7 @@ _0811EB90: .4byte gUnknown_203B09C _0811EB94: .4byte gPlayerParty _0811EB98: .4byte gTextFlags _0811EB9C: .4byte sub_811EBD0 - thumb_func_end sub_811EA44 + thumb_func_end PartyMenuInit thumb_func_start sub_811EBA0 sub_811EBA0: @ 811EBA0 @@ -219,7 +219,7 @@ _0811EBD2: lsrs r0, 24 cmp r0, 0x1 beq _0811EBF6 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -276,12 +276,12 @@ _0811EC24: .4byte _0811EDD0 .4byte _0811EDDE _0811EC80: - bl sub_80BF768 + bl VblankHblankHandlerSetZero bl sub_80BF77C bl clear_scheduled_bg_copies_to_vram b _0811EDFC _0811EC8E: - bl remove_some_task + bl ScanlineEffect_Stop b _0811EDFC _0811EC94: bl ResetPaletteFade @@ -299,7 +299,7 @@ _0811ECAE: bl FreeAllSpritePalettes b _0811EDFC _0811ECB4: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 beq _0811ECC0 @@ -420,7 +420,7 @@ _0811ED96: _0811EDA8: .4byte gUnknown_203B09C _0811EDAC: movs r0, 0x5 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _0811EDFC _0811EDB4: ldr r4, _0811EDCC @ =gUnknown_203B09C @@ -565,7 +565,7 @@ _0811EEC8: .4byte gUnknown_203B0B8 thumb_func_start sub_811EECC sub_811EECC: @ 811EECC push {r4,r5,lr} - bl sub_80BF7C8 + bl InitBgReg ldr r5, _0811EF34 @ =gUnknown_203B0BC movs r4, 0x80 lsls r4, 4 @@ -1274,7 +1274,7 @@ _0811F47C: cmp r0, 0x3 bne _0811F492 adds r0, r4, 0 - bl sub_80A1150 + bl GetItemCompatibilityRule lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1799,7 +1799,7 @@ _0811F884: movs r1, 0x17 movs r2, 0x10 movs r3, 0x7 - bl sub_80F6B08 + bl SetBgRectPal b _0811F8B0 _0811F89E: movs r0, 0x2 @@ -1809,7 +1809,7 @@ _0811F89E: movs r1, 0x17 movs r2, 0x10 movs r3, 0x7 - bl sub_80F6B08 + bl SetBgRectPal _0811F8B0: ldr r0, _0811F8BC @ =gUnknown_203B09C ldr r0, [r0] @@ -1857,7 +1857,7 @@ _0811F8F2: movs r2, 0x12 _0811F904: movs r3, 0x7 - bl sub_80F6B08 + bl SetBgRectPal b _0811F91E _0811F90C: movs r0, 0x2 @@ -1867,7 +1867,7 @@ _0811F90C: movs r1, 0x17 movs r2, 0x12 movs r3, 0x7 - bl sub_80F6B08 + bl SetBgRectPal _0811F91E: ldr r0, _0811F940 @ =gUnknown_203B09C ldr r0, [r0] @@ -2494,7 +2494,7 @@ _0811FDD6: .align 2, 0 _0811FDF0: .4byte gUnknown_203B0A0 _0811FDF4: - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0811FE04 @@ -2585,7 +2585,7 @@ sub_811FEA4: @ 811FEA4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -3234,7 +3234,7 @@ sub_8120328: @ 8120328 bne _0812035E movs r0, 0x6 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x6 bl ClearWindowTilemap _0812035E: @@ -3302,10 +3302,10 @@ sub_81203B8: @ 81203B8 beq _08120410 movs r0, 0x6 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x6 bl ClearWindowTilemap - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3366,7 +3366,7 @@ _0812043C: _08120448: adds r1, r5, 0 adds r2, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent b _08120468 .align 2, 0 _08120454: .4byte gUnknown_203B0A0 @@ -3376,14 +3376,14 @@ _0812045C: movs r0, 0x6 adds r1, r5, 0 adds r2, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent _08120468: ldr r1, _0812049C @ =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r1, _081204A0 @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _081204A4 @ =gStringVar4 ldr r1, _081204A8 @ =gUnknown_8416C2A adds r0, r4, 0 @@ -3418,13 +3418,13 @@ sub_81204AC: @ 81204AC movs r0, 0x8 adds r1, r6, 0 adds r2, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldr r1, _081204FC @ =gStringVar1 adds r0, r6, 0 bl GetMonNickname ldr r1, _08120500 @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _08120504 @ =gStringVar4 ldr r1, _08120508 @ =gUnknown_8416CAC adds r0, r4, 0 @@ -3458,7 +3458,7 @@ sub_812050C: @ 812050C bl GetMonNickname ldr r1, _0812054C @ =gStringVar2 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _08120550 @ =gStringVar4 ldr r1, _08120554 @ =gUnknown_8416C49 adds r0, r4, 0 @@ -3502,10 +3502,10 @@ sub_8120558: @ 8120558 bl sub_8124B60 ldr r1, _081205B8 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _081205BC @ =gStringVar2 adds r0, r5, 0 - bl sub_8099E90 + bl CopyItemName ldr r4, _081205C0 @ =gStringVar4 ldr r1, _081205C4 @ =gUnknown_8416CEA adds r0, r4, 0 @@ -3582,7 +3582,7 @@ sub_8120610: @ 8120610 b _0812064E _0812062C: movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 beq _0812064C @@ -3627,7 +3627,7 @@ _08120678: _0812067E: ldr r0, _08120698 @ =0x0000016d _08120680: - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 _08120686: ldr r0, _0812069C @ =gStringVar1 @@ -4198,7 +4198,7 @@ sub_8120AC4: @ 8120AC4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4298,7 +4298,7 @@ _08120B86: lsls r0, 16 lsrs r1, r0, 16 adds r0, r5, 0 - bl pokemon_has_move + bl MonKnowsMove lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4709,11 +4709,11 @@ sub_8120E58: @ 8120E58 movs r0, 0 movs r1, 0x4F movs r2, 0xD0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x58 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldr r0, _08120E94 @ =gUnknown_203B0A0 ldrb r0, [r0, 0xB] cmp r0, 0x3 @@ -4878,13 +4878,13 @@ sub_8120FB0: @ 8120FB0 push {lr} bl FreeRestoreBattleData bl LoadPlayerParty - bl sub_815AC20 - ldr r0, _08120FC8 @ =sub_815ABFC + bl SetTeachyTvControllerModeToResume + ldr r0, _08120FC8 @ =CB2_ReturnToTeachyTV bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 -_08120FC8: .4byte sub_815ABFC +_08120FC8: .4byte CB2_ReturnToTeachyTV thumb_func_end sub_8120FB0 thumb_func_start sub_8120FCC @@ -5016,11 +5016,11 @@ _081210AC: movs r0, 0 movs r1, 0x4F movs r2, 0xD0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x58 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x2 bl stdpal_get movs r1, 0xC0 @@ -5084,7 +5084,7 @@ _0812110E: adds r0, r4, 0 movs r1, 0 movs r3, 0x1 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 @@ -5141,7 +5141,7 @@ _08121194: movs r1, 0 adds r2, r5, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 b _08121224 .align 2, 0 _081211E0: .4byte gUnknown_845A108 @@ -5149,7 +5149,7 @@ _081211E4: .4byte gUnknown_203B0A0 _081211E8: .4byte gFameCheckerText_Cancel _081211EC: .4byte gUnknown_8459FFC _081211F0: - ldr r4, _08121240 @ =gUnknown_84161C8 + ldr r4, _08121240 @ =gOtherText_Exit movs r0, 0 adds r1, r4, 0 movs r2, 0 @@ -5172,7 +5172,7 @@ _081211F0: movs r1, 0 adds r2, r5, 0 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _08121224: adds r0, r6, 0 bl PutWindowTilemap @@ -5187,7 +5187,7 @@ _08121238: pop {r0} bx r0 .align 2, 0 -_08121240: .4byte gUnknown_84161C8 +_08121240: .4byte gOtherText_Exit _08121244: .4byte gUnknown_8459FFC thumb_func_end sub_81210F8 @@ -5778,7 +5778,7 @@ sub_8121704: @ 8121704 str r1, [sp, 0x8] movs r1, 0 adds r2, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r4,r5} pop {r0} @@ -5909,7 +5909,7 @@ sub_8121808: @ 8121808 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _0812184C @ =gStringVar1 - ldr r1, _08121850 @ =gUnknown_8416223 + ldr r1, _08121850 @ =gText_Lv adds r0, r4, 0 bl StringCopy adds r0, r4, 0 @@ -5927,7 +5927,7 @@ sub_8121808: @ 8121808 .align 2, 0 _08121848: .4byte gStringVar2 _0812184C: .4byte gStringVar1 -_08121850: .4byte gUnknown_8416223 +_08121850: .4byte gText_Lv thumb_func_end sub_8121808 thumb_func_start sub_8121854 @@ -6486,7 +6486,7 @@ _08121CAA: ldr r1, [r1] str r1, [sp, 0x8] movs r1, 0x1 - bl box_print + bl AddTextPrinterParameterized3 _08121CD0: add sp, 0xC pop {r3} @@ -6507,7 +6507,7 @@ sub_8121CE4: @ 8121CE4 cmp r0, 0xFF beq _08121D04 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl RemoveWindow movs r0, 0xFF @@ -6831,7 +6831,7 @@ _08121F3C: str r1, [sp, 0x10] movs r1, 0x2 mov r2, r9 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -6888,7 +6888,7 @@ sub_8121FC0: @ 8121FC0 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -6903,7 +6903,7 @@ sub_8121FC0: @ 8121FC0 movs r0, 0x6 movs r1, 0x2 adds r2, r4, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4} pop {r0} @@ -6926,7 +6926,7 @@ sub_812200C: @ 812200C movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0xC pop {r0} bx r0 @@ -6990,7 +6990,7 @@ sub_8122084: @ 8122084 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sub_80F78A8 + bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -7005,7 +7005,7 @@ sub_8122084: @ 8122084 adds r0, r4, 0 movs r1, 0x4 adds r2, r5, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r4,r5} pop {r0} @@ -7026,7 +7026,7 @@ sub_81220D4: @ 81220D4 adds r0, r4, 0 movs r1, 0x4F movs r2, 0xE0 - bl sub_814FEAC + bl TextWindow_SetBubbleFrame_841F1C8 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x4F @@ -7054,7 +7054,7 @@ sub_8122110: @ 8122110 bl ClearWindowTilemap adds r0, r4, 0 movs r1, 0 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 adds r0, r4, 0 bl RemoveWindow movs r0, 0x2 @@ -7121,7 +7121,7 @@ _0812217A: movs r1, 0x2 movs r2, 0x3 movs r3, 0x6 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldrb r0, [r4, 0xE] bl PutWindowTilemap movs r0, 0x2 @@ -8717,7 +8717,7 @@ sub_8122DBC: @ 8122DBC str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -9928,7 +9928,7 @@ _081237AE: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit b _08123814 .align 2, 0 _081237BC: .4byte gUnknown_203B0D8 @@ -9943,7 +9943,7 @@ _081237CC: beq _081237F8 ldrh r0, [r6] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0x9 ldrsb r0, [r5, r0] mov r1, r8 @@ -9967,7 +9967,7 @@ _081237F8: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit _08123814: add sp, 0xC pop {r3} @@ -10016,7 +10016,7 @@ sub_8123824: @ 8123824 bl sub_81205C8 adds r0, r4, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldr r1, _0812389C @ =gTasks lsls r0, r7, 2 adds r0, r7 @@ -10113,7 +10113,7 @@ sub_8123930: @ 8123930 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -10133,17 +10133,17 @@ _08123956: ldr r5, _08123998 @ =gSpecialVar_ItemId ldrh r0, [r5] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldr r6, _0812399C @ =gUnknown_203B0D8 ldrh r0, [r6] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081239AC ldrh r0, [r5] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldrh r0, [r6] bl sub_8120658 ldr r0, _081239A0 @ =gStringVar4 @@ -10330,10 +10330,10 @@ sub_8123ACC: @ 8123ACC bl SetMonData ldrh r0, [r4] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem mov r0, r8 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem ldrb r0, [r6, 0x8] lsls r0, 28 lsrs r0, 28 @@ -10345,7 +10345,7 @@ sub_8123ACC: @ 8123ACC str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit b _08123B68 .align 2, 0 _08123B38: .4byte gUnknown_203B0A0 @@ -10366,7 +10366,7 @@ _08123B4C: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit _08123B68: add sp, 0xC pop {r3} @@ -10675,7 +10675,7 @@ sub_8123DCC: @ 8123DCC str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -10752,7 +10752,7 @@ sub_8123E8C: @ 8123E8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -10871,7 +10871,7 @@ sub_8123F80: @ 8123F80 push {r7} lsls r0, 24 lsrs r5, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -10903,7 +10903,7 @@ _08123FAA: lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11627,7 +11627,7 @@ _081245D6: ldr r0, [r5] adds r0, 0xD bl sub_8121CE4 - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11790,7 +11790,7 @@ _08124754: .4byte gUnknown_203B0A0 _08124758: .4byte sub_80C4EF8 _0812475C: ldr r1, _08124780 @ =gUnknown_203B0A0 - ldr r0, _08124784 @ =c2_exit_to_overworld_2_switch + ldr r0, _08124784 @ =CB2_ReturnToField str r0, [r1] bl GetCursorSelectionMonId lsls r0, 24 @@ -11807,7 +11807,7 @@ _08124778: b _081247B4 .align 2, 0 _08124780: .4byte gUnknown_203B0A0 -_08124784: .4byte c2_exit_to_overworld_2_switch +_08124784: .4byte CB2_ReturnToField _08124788: .4byte gPlayerParty _0812478C: cmp r4, 0 @@ -11897,7 +11897,7 @@ sub_8124828: @ 8124828 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -11915,7 +11915,7 @@ _08124848: b _081248A2 _0812484E: ldr r1, _0812487C @ =gUnknown_203B0A0 - ldr r0, _08124880 @ =c2_exit_to_overworld_2_switch + ldr r0, _08124880 @ =CB2_ReturnToField str r0, [r1] bl GetCursorSelectionMonId lsls r0, 24 @@ -11936,17 +11936,17 @@ _0812484E: b _081248A2 .align 2, 0 _0812487C: .4byte gUnknown_203B0A0 -_08124880: .4byte c2_exit_to_overworld_2_switch +_08124880: .4byte CB2_ReturnToField _08124884: .4byte gPlayerParty _08124888: .4byte gUnknown_203B09C _0812488C: movs r0, 0x5 bl PlaySE _08124892: - ldr r0, _081248A8 @ =gUnknown_3005024 + ldr r0, _081248A8 @ =gFieldCallback2 movs r1, 0 str r1, [r0] - ldr r0, _081248AC @ =gUnknown_203B0C4 + ldr r0, _081248AC @ =gPostMenuFieldCallback str r1, [r0] adds r0, r4, 0 bl sub_81203B8 @@ -11955,12 +11955,12 @@ _081248A2: pop {r0} bx r0 .align 2, 0 -_081248A8: .4byte gUnknown_3005024 -_081248AC: .4byte gUnknown_203B0C4 +_081248A8: .4byte gFieldCallback2 +_081248AC: .4byte gPostMenuFieldCallback thumb_func_end sub_8124828 - thumb_func_start hm_add_c3_launch_phase_2 -hm_add_c3_launch_phase_2: @ 81248B0 + thumb_func_start FieldCallback_PrepareFadeInFromMenu +FieldCallback_PrepareFadeInFromMenu: @ 81248B0 push {lr} bl sub_807DC00 ldr r0, _081248C4 @ =task_launch_hm_phase_2 @@ -11971,7 +11971,7 @@ hm_add_c3_launch_phase_2: @ 81248B0 bx r1 .align 2, 0 _081248C4: .4byte task_launch_hm_phase_2 - thumb_func_end hm_add_c3_launch_phase_2 + thumb_func_end FieldCallback_PrepareFadeInFromMenu thumb_func_start task_launch_hm_phase_2 task_launch_hm_phase_2: @ 81248C8 @@ -11988,7 +11988,7 @@ task_launch_hm_phase_2: @ 81248C8 lsls r0, 16 lsrs r0, 16 str r0, [r1] - ldr r0, _08124900 @ =gUnknown_203B0C4 + ldr r0, _08124900 @ =gPostMenuFieldCallback ldr r0, [r0] bl _call_via_r0 adds r0, r4, 0 @@ -11999,7 +11999,7 @@ _081248F4: bx r0 .align 2, 0 _081248FC: .4byte gFieldEffectArguments -_08124900: .4byte gUnknown_203B0C4 +_08124900: .4byte gPostMenuFieldCallback thumb_func_end task_launch_hm_phase_2 thumb_func_start brm_get_selected_species @@ -12118,18 +12118,18 @@ sub_8124998: @ 8124998 lsrs r0, 24 cmp r0, 0x1 bne _08124A00 - ldr r1, _081249F0 @ =gUnknown_3005024 - ldr r0, _081249F4 @ =hm_add_c3_launch_phase_2 + ldr r1, _081249F0 @ =gFieldCallback2 + ldr r0, _081249F4 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _081249F8 @ =gUnknown_203B0C4 + ldr r1, _081249F8 @ =gPostMenuFieldCallback ldr r0, _081249FC @ =hm_surf_run_dp02scr str r0, [r1] movs r0, 0x1 b _08124A02 .align 2, 0 -_081249F0: .4byte gUnknown_3005024 -_081249F4: .4byte hm_add_c3_launch_phase_2 -_081249F8: .4byte gUnknown_203B0C4 +_081249F0: .4byte gFieldCallback2 +_081249F4: .4byte FieldCallback_PrepareFadeInFromMenu +_081249F8: .4byte gPostMenuFieldCallback _081249FC: .4byte hm_surf_run_dp02scr _08124A00: movs r0, 0 @@ -12207,7 +12207,7 @@ sub_8124A8C: @ 8124A8C push {lr} ldr r0, _08124AA4 @ =gMapHeader ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 + bl Overworld_MapTypeAllowsTeleportAndFly lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12237,7 +12237,7 @@ sub_8124AB0: @ 8124AB0 movs r1, 0 movs r2, 0 movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -12289,18 +12289,18 @@ hm_prepare_waterfall: @ 8124AF8 lsrs r0, 24 cmp r0, 0x1 bne _08124B54 - ldr r1, _08124B44 @ =gUnknown_3005024 - ldr r0, _08124B48 @ =hm_add_c3_launch_phase_2 + ldr r1, _08124B44 @ =gFieldCallback2 + ldr r0, _08124B48 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _08124B4C @ =gUnknown_203B0C4 + ldr r1, _08124B4C @ =gPostMenuFieldCallback ldr r0, _08124B50 @ =hm2_waterfall str r0, [r1] movs r0, 0x1 b _08124B56 .align 2, 0 -_08124B44: .4byte gUnknown_3005024 -_08124B48: .4byte hm_add_c3_launch_phase_2 -_08124B4C: .4byte gUnknown_203B0C4 +_08124B44: .4byte gFieldCallback2 +_08124B48: .4byte FieldCallback_PrepareFadeInFromMenu +_08124B4C: .4byte gPostMenuFieldCallback _08124B50: .4byte hm2_waterfall _08124B54: movs r0, 0 @@ -12577,7 +12577,7 @@ _08124D6A: adds r1, r7, 0 movs r2, 0x3 movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r3} mov r8, r3 @@ -12606,7 +12606,7 @@ sub_8124DA0: @ 8124DA0 movs r0, 0x5 movs r1, 0 movs r2, 0xFF - bl sub_81317F8 + bl InitTMCase pop {r0} bx r0 thumb_func_end sub_8124DA0 @@ -12617,7 +12617,7 @@ sub_8124DB0: @ 8124DB0 movs r0, 0x6 movs r1, 0 movs r2, 0xFF - bl sub_813CD50 + bl InitBerryPouch pop {r0} bx r0 thumb_func_end sub_8124DB0 @@ -12644,7 +12644,7 @@ sub_8124DE0: @ 8124DE0 push {r4,lr} ldr r4, _08124E0C @ =gSpecialVar_ItemId ldrh r0, [r4] - bl sub_80A1150 + bl GetItemCompatibilityRule lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -12735,7 +12735,7 @@ sub_8124E48: @ 8124E48 bhi _08124EB0 adds r0, r1, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08124EB0: mov r1, r8 ldr r0, [r1] @@ -12759,7 +12759,7 @@ _08124EC8: str r1, [sp, 0x8] movs r1, 0xFF movs r2, 0 - bl sub_811EA44 + bl PartyMenuInit _08124EE6: add sp, 0xC pop {r3} @@ -12820,7 +12820,7 @@ sub_8124EFC: @ 8124EFC movs r0, 0x4 adds r1, r5, 0 adds r3, r6, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldrh r1, [r7] movs r0, 0xA9 lsls r0, 1 @@ -12828,7 +12828,7 @@ sub_8124EFC: @ 8124EFC bhi _08124F7C adds r0, r1, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08124F7C: mov r1, r8 ldr r0, [r1] @@ -12852,7 +12852,7 @@ _08124F94: ldr r1, [r4] str r1, [sp, 0x8] movs r1, 0xFF - bl sub_811EA44 + bl PartyMenuInit _08124FB2: add sp, 0xC pop {r3} @@ -13312,7 +13312,7 @@ _08125380: movs r0, 0x4 adds r1, r5, 0 adds r2, r6, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent adds r0, r7, 0 bl sub_8124DC0 ldr r1, _081253A8 @ =gUnknown_3005E98 @@ -13418,7 +13418,7 @@ _0812544C: beq _0812547E adds r0, r6, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem b _0812547E .align 2, 0 _08125474: .4byte gUnknown_203B0C0 @@ -13684,7 +13684,7 @@ _08125680: mov r1, r8 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add sp, 0x10 @@ -13730,8 +13730,8 @@ _081256F2: bx r0 thumb_func_end sub_81256C0 - thumb_func_start sub_81256F8 -sub_81256F8: @ 81256F8 + thumb_func_start ItemUseCB_PpRestore +ItemUseCB_PpRestore: @ 81256F8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -13802,7 +13802,7 @@ _0812577E: _08125784: .4byte gUnknown_203B0A0 _08125788: .4byte gTasks _0812578C: .4byte sub_81256C0 - thumb_func_end sub_81256F8 + thumb_func_end ItemUseCB_PpRestore thumb_func_start sub_8125790 sub_8125790: @ 8125790 @@ -13958,12 +13958,12 @@ sub_8125898: @ 8125898 ldr r3, _08125940 @ =0x0000ffff movs r0, 0x4 adds r1, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent movs r0, 0x1 bl PlaySE ldrh r0, [r6] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem movs r2, 0xE ldrsh r1, [r5, r2] adds r1, 0xD @@ -14060,12 +14060,12 @@ _081259A0: movs r0, 0x4 adds r1, r4, 0 adds r2, r5, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent movs r0, 0x1 bl PlaySE adds r0, r5, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem movs r0, 0 ldrsh r1, [r7, r0] adds r1, 0xD @@ -14185,8 +14185,8 @@ _08125ABC: bx r1 thumb_func_end sub_8125A90 - thumb_func_start pokemon_has_move -pokemon_has_move: @ 8125AC0 + thumb_func_start MonKnowsMove +MonKnowsMove: @ 8125AC0 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 @@ -14212,7 +14212,7 @@ _08125AE8: pop {r4-r6} pop {r1} bx r1 - thumb_func_end pokemon_has_move + thumb_func_end MonKnowsMove thumb_func_start sub_8125AF0 sub_8125AF0: @ 8125AF0 @@ -14315,7 +14315,7 @@ sub_8125B40: @ 8125B40 movs r0, 0x4 adds r1, r4, 0 adds r2, r5, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent adds r0, r6, 0 bl sub_8124DC0 ldr r1, _08125BEC @ =gUnknown_3005E98 @@ -14406,7 +14406,7 @@ sub_8125C48: @ 8125C48 bhi _08125C84 adds r0, r4, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08125C84: ldr r1, _08125CD8 @ =gStringVar1 adds r0, r5, 0 @@ -14561,7 +14561,7 @@ sub_8125DBC: @ 8125DBC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -14712,7 +14712,7 @@ _08125EE8: movs r1, 0 movs r2, 0 movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit _08125F02: add sp, 0xC pop {r4,r5} @@ -14799,7 +14799,7 @@ sub_8125F5C: @ 8125F5C movs r0, 0x4 adds r1, r6, 0 adds r3, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldr r1, _08125FF0 @ =gStringVar1 adds r0, r6, 0 bl GetMonNickname @@ -15016,7 +15016,7 @@ sub_8126170: @ 8126170 muls r1, r0 ldr r0, _081261A4 @ =gPlayerParty adds r4, r1, r0 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 @@ -15268,7 +15268,7 @@ sub_8126350: @ 8126350 ldr r3, _08126424 @ =0x0000ffff movs r0, 0x4 adds r1, r4, 0 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent movs r0, 0 bl PlayFanfareByFanfareNum ldrb r0, [r6, 0x9] @@ -15276,7 +15276,7 @@ sub_8126350: @ 8126350 bl sub_8126440 ldrh r0, [r5] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem ldr r1, _08126428 @ =gStringVar1 adds r0, r4, 0 bl GetMonNickname @@ -16112,12 +16112,12 @@ _08126A94: ldrh r2, [r0] ldr r3, _08126AE0 @ =0x0000ffff movs r0, 0x4 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent _08126AB4: ldr r0, _08126ADC @ =gSpecialVar_ItemId ldrh r0, [r0] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _08126ABE: ldr r1, _08126AE4 @ =gTasks lsls r0, r4, 2 @@ -16266,10 +16266,10 @@ sub_8126BD4: @ 8126BD4 ldrh r2, [r5] ldr r3, _08126C20 @ =0x0000ffff movs r0, 0x4 - bl sub_80A2294 + bl ItemUse_SetQuestLogEvent ldrh r0, [r5] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem pop {r4,r5} pop {r0} bx r0 @@ -16640,7 +16640,7 @@ CB2_PartyMenuFromStartMenu: @ 8126EB0 movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -16684,7 +16684,7 @@ _08126F0A: movs r1, 0 movs r2, 0x5 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit ldr r1, _08126F38 @ =gUnknown_203B0A0 ldr r0, _08126F3C @ =gSpecialVar_ItemId ldrh r0, [r0] @@ -16971,7 +16971,7 @@ sub_812713C: @ 812713C bl SetMonData ldrh r0, [r4] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem adds r0, r7, 0 bl sub_81273AC ldr r0, [r6] @@ -16995,7 +16995,7 @@ _0812719C: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 - bl sub_811EA44 + bl PartyMenuInit _081271B8: add sp, 0xC pop {r4-r7} @@ -17093,7 +17093,7 @@ sub_8127268: @ 8127268 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -17117,7 +17117,7 @@ _0812728E: ldr r6, _081272C4 @ =gUnknown_203B0D8 ldrh r0, [r6] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081272CC @@ -17233,14 +17233,14 @@ sub_8127384: @ 8127384 bne _081273A0 adds r0, r1, 0 movs r1, 0x1 - bl sub_809A460 + bl RemoveItemFromPC b _081273A8 .align 2, 0 _0812739C: .4byte gUnknown_203B0A0 _081273A0: adds r0, r1, 0 movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _081273A8: pop {r0} bx r0 @@ -17257,14 +17257,14 @@ sub_81273AC: @ 81273AC beq _081273C8 adds r0, r1, 0 movs r1, 0x1 - bl sub_809A3C8 + bl AddPCItem b _081273D0 .align 2, 0 _081273C4: .4byte gUnknown_203B0A0 _081273C8: adds r0, r1, 0 movs r1, 0x1 - bl sub_809A084 + bl AddBagItem _081273D0: lsls r0, 24 lsrs r0, 24 @@ -17286,7 +17286,7 @@ sub_81273D8: @ 81273D8 movs r1, 0 movs r2, 0x7 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -17387,7 +17387,7 @@ sub_81274A8: @ 81274A8 movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit ldr r1, _081274F4 @ =gUnknown_203B0A0 lsls r4, 6 ldrb r2, [r1, 0x8] @@ -17824,7 +17824,7 @@ sub_81277F4: @ 81277F4 movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -17850,7 +17850,7 @@ sub_812781C: @ 812781C movs r1, 0 movs r2, 0xC movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit b _08127870 .align 2, 0 _08127844: .4byte gSpecialVar_0x8005 @@ -17867,7 +17867,7 @@ _08127850: movs r1, 0 movs r2, 0xC movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit ldr r1, _08127880 @ =gUnknown_203B0A0 ldr r0, _08127884 @ =gSpecialVar_0x8007 ldrh r0, [r0] @@ -17897,7 +17897,7 @@ sub_8127888: @ 8127888 movs r1, 0 movs r2, 0xD movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -17960,7 +17960,7 @@ sub_81278DC: @ 81278DC movs r0, 0x1 adds r2, r4, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit movs r0, 0x8 bl sub_80EB2F4 b _08127950 @@ -17982,7 +17982,7 @@ _08127930: movs r0, 0x1 adds r2, r4, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit _08127950: bl nullsub_44 bl pokemon_change_order @@ -18012,7 +18012,7 @@ sub_8127968: @ 8127968 movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit bl nullsub_44 bl pokemon_change_order add sp, 0xC @@ -18040,7 +18040,7 @@ sub_81279A4: @ 81279A4 movs r0, 0x1 movs r2, 0xE movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit bl nullsub_44 bl pokemon_change_order add sp, 0xC @@ -18079,7 +18079,7 @@ sub_81279E0: @ 81279E0 movs r0, 0x1 movs r2, 0x3 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit movs r0, 0x8 bl sub_80EB2F4 b _08127A62 @@ -18110,7 +18110,7 @@ _08127A44: movs r0, 0x1 movs r2, 0x3 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit _08127A62: bl nullsub_44 bl pokemon_change_order @@ -19069,7 +19069,7 @@ sub_8128198: @ 8128198 movs r1, 0x3 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 @@ -19301,28 +19301,28 @@ _0812836C: .4byte gUnknown_2022B58 sub_8128370: @ 8128370 push {lr} sub sp, 0xC - ldr r1, _08128398 @ =gUnknown_3005024 + ldr r1, _08128398 @ =gFieldCallback2 ldr r0, _0812839C @ =hm_add_c3_without_phase_2 str r0, [r1] movs r0, 0xF str r0, [sp] ldr r0, _081283A0 @ =sub_811FB28 str r0, [sp, 0x4] - ldr r0, _081283A4 @ =c2_exit_to_overworld_2_switch + ldr r0, _081283A4 @ =CB2_ReturnToField str r0, [sp, 0x8] movs r0, 0x6 movs r1, 0 movs r2, 0 movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 .align 2, 0 -_08128398: .4byte gUnknown_3005024 +_08128398: .4byte gFieldCallback2 _0812839C: .4byte hm_add_c3_without_phase_2 _081283A0: .4byte sub_811FB28 -_081283A4: .4byte c2_exit_to_overworld_2_switch +_081283A4: .4byte CB2_ReturnToField thumb_func_end sub_8128370 thumb_func_start sub_81283A8 @@ -19331,27 +19331,27 @@ sub_81283A8: @ 81283A8 sub sp, 0xC lsls r0, 24 lsrs r0, 24 - ldr r2, _081283D4 @ =gUnknown_3005024 + ldr r2, _081283D4 @ =gFieldCallback2 ldr r1, _081283D8 @ =hm_add_c3_without_phase_2 str r1, [r2] movs r1, 0 str r1, [sp] ldr r1, _081283DC @ =sub_811FB28 str r1, [sp, 0x4] - ldr r1, _081283E0 @ =c2_exit_to_overworld_2_switch + ldr r1, _081283E0 @ =CB2_ReturnToField str r1, [sp, 0x8] movs r1, 0 movs r2, 0xB movs r3, 0 - bl sub_811EA44 + bl PartyMenuInit add sp, 0xC pop {r0} bx r0 .align 2, 0 -_081283D4: .4byte gUnknown_3005024 +_081283D4: .4byte gFieldCallback2 _081283D8: .4byte hm_add_c3_without_phase_2 _081283DC: .4byte sub_811FB28 -_081283E0: .4byte c2_exit_to_overworld_2_switch +_081283E0: .4byte CB2_ReturnToField thumb_func_end sub_81283A8 thumb_func_start hm_add_c3_without_phase_2 diff --git a/asm/player_pc.s b/asm/player_pc.s index c4eab0f30..f9d781513 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -9,7 +9,7 @@ sub_80EB658: @ 80EB658 push {r4-r6,lr} movs r4, 0 - bl sub_809A2A4 + bl ClearPCItemSlots ldr r1, _080EB6A8 @ =gUnknown_8402220 ldrh r0, [r1] cmp r0, 0 @@ -25,7 +25,7 @@ _080EB672: ldrh r0, [r0] adds r1, r6 ldrh r1, [r1] - bl sub_809A3C8 + bl AddPCItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -187,7 +187,7 @@ _080EB77E: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, _080EB814 @ =gTasks @@ -237,7 +237,7 @@ sub_80EB81C: @ 80EB81C bl PlaySE ldrb r0, [r4, 0x14] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4, 0x14] bl ClearWindowTilemap ldrb r0, [r4, 0x14] @@ -256,7 +256,7 @@ _080EB874: .4byte sub_80EB9B8 _080EB878: ldrb r0, [r4, 0x14] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4, 0x14] bl ClearWindowTilemap ldrb r0, [r4, 0x14] @@ -361,11 +361,11 @@ _080EB940: cmp r0, 0 bne _080EB95C movs r0, 0x22 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080EB962 _080EB95C: movs r0, 0x1E - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080EB962: ldr r0, _080EB990 @ =gUnknown_203AAC4 ldrb r0, [r0, 0x5] @@ -376,7 +376,7 @@ _080EB962: bne _080EB99C movs r0, 0 movs r1, 0 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame adds r0, r5, 0 bl sub_80EBEB0 ldr r0, _080EB994 @ =gTasks @@ -449,14 +449,14 @@ sub_80EB9E8: @ 80EB9E8 cmp r0, 0 bne _080EBA18 movs r0, 0x21 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080EBA1E .align 2, 0 _080EBA10: .4byte gTasks+0x8 _080EBA14: .4byte gUnknown_203AAC4 _080EBA18: movs r0, 0x1D - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080EBA1E: ldr r0, _080EBA80 @ =gUnknown_8402258 bl AddWindow @@ -488,7 +488,7 @@ _080EBA1E: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, _080EBA88 @ =gUnknown_84021DC @@ -513,7 +513,7 @@ sub_80EBA8C: @ 80EBA8C adds r4, r0, 0 movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame movs r0, 0x1 str r0, [sp] movs r0, 0 @@ -627,12 +627,12 @@ sub_80EBB70: @ 80EBB70 ands r0, r1 cmp r0, 0 bne _080EBB9C - bl sub_80563F0 - ldr r2, _080EBBA8 @ =c2_exit_to_overworld_2_switch + bl CleanupOverworldWindowsAndTilemaps + ldr r2, _080EBBA8 @ =CB2_ReturnToField movs r0, 0x3 movs r1, 0 bl sub_8107DB4 - ldr r1, _080EBBAC @ =gUnknown_3005020 + ldr r1, _080EBBAC @ =gFieldCallback ldr r0, _080EBBB0 @ =sub_80EBC0C str r0, [r1] adds r0, r4, 0 @@ -643,8 +643,8 @@ _080EBB9C: bx r0 .align 2, 0 _080EBBA4: .4byte gPaletteFade -_080EBBA8: .4byte c2_exit_to_overworld_2_switch -_080EBBAC: .4byte gUnknown_3005020 +_080EBBA8: .4byte CB2_ReturnToField +_080EBBAC: .4byte gFieldCallback _080EBBB0: .4byte sub_80EBC0C thumb_func_end sub_80EBB70 @@ -702,7 +702,7 @@ sub_80EBC0C: @ 80EBC0C bl sub_80F6E9C movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r0, _080EBC34 @ =sub_80EBBDC movs r1, 0 bl CreateTask @@ -727,7 +727,7 @@ sub_80EBC38: @ 80EBC38 lsls r6, r0, 3 ldr r7, _080EBC6C @ =gTasks+0x8 adds r4, r6, r7 - bl sub_809A33C + bl CountItemsInPC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] @@ -740,19 +740,19 @@ sub_80EBC38: @ 80EBC38 adds r0, r6, r0 ldr r1, _080EBC70 @ =sub_80EBD18 str r1, [r0] - ldr r1, _080EBC74 @ =gUnknown_3005020 + ldr r1, _080EBC74 @ =gFieldCallback ldr r0, _080EBC78 @ =sub_80EBCAC str r0, [r1] b _080EBC9C .align 2, 0 _080EBC6C: .4byte gTasks+0x8 _080EBC70: .4byte sub_80EBD18 -_080EBC74: .4byte gUnknown_3005020 +_080EBC74: .4byte gFieldCallback _080EBC78: .4byte sub_80EBCAC _080EBC7C: ldrb r0, [r4, 0x14] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4, 0x14] bl ClearWindowTilemap ldrb r0, [r4, 0x14] @@ -777,7 +777,7 @@ sub_80EBCAC: @ 80EBCAC bl sub_80F6E9C movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r0, _080EBCD4 @ =sub_80EBBDC movs r1, 0 bl CreateTask @@ -808,10 +808,10 @@ sub_80EBCD8: @ 80EBCD8 ands r0, r1 cmp r0, 0 bne _080EBD06 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldrb r0, [r5, 0xC] - ldr r1, _080EBD14 @ =c2_exit_to_overworld_2_switch - bl sub_810D3F4 + ldr r1, _080EBD14 @ =CB2_ReturnToField + bl ItemPc_Init adds r0, r4, 0 bl DestroyTask _080EBD06: @@ -821,7 +821,7 @@ _080EBD06: .align 2, 0 _080EBD0C: .4byte gTasks+0x8 _080EBD10: .4byte gPaletteFade -_080EBD14: .4byte c2_exit_to_overworld_2_switch +_080EBD14: .4byte CB2_ReturnToField thumb_func_end sub_80EBCD8 thumb_func_start sub_80EBD18 @@ -837,7 +837,7 @@ sub_80EBD18: @ 80EBD18 ldr r0, _080EBD44 @ =sub_80EBCD8 str r0, [r1] movs r0, 0 - bl sub_810DE94 + bl ItemPc_SetInitializedFlag movs r0, 0x1 movs r1, 0 bl fade_screen @@ -861,7 +861,7 @@ sub_80EBD48: @ 80EBD48 adds r4, r0 ldrb r0, [r4, 0x14] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4, 0x14] bl ClearWindowTilemap ldrb r0, [r4, 0x14] @@ -1142,7 +1142,7 @@ sub_80EBF40: @ 80EBF40 mov r8, r1 adds r1, r7, 0 mov r2, r8 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow movs r0, 0x2 negs r0, r0 cmp r6, r0 @@ -1174,7 +1174,7 @@ _080EBFB6: ldrb r0, [r4, 0x16] adds r1, r7, 0 mov r2, r8 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl schedule_bg_copy_tilemap_to_vram mov r1, r8 @@ -1288,7 +1288,7 @@ sub_80EC094: @ 80EC094 ldrb r0, [r4, 0x16] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl sub_810EDB0 @@ -1341,7 +1341,7 @@ sub_80EC0D8: @ 80EC0D8 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, _080EC154 @ =gTasks @@ -1438,7 +1438,7 @@ sub_80EC1D4: @ 80EC1D4 cmp r0, 0 bne _080EC216 bl sub_810EDB0 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r2, _080EC220 @ =gSaveBlock1Ptr ldr r1, _080EC224 @ =gUnknown_203AAC4 ldrh r0, [r1] @@ -1503,13 +1503,13 @@ sub_80EC260: @ 80EC260 cmp r0, 0 bne _080EC278 movs r0, 0x22 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080EC27E .align 2, 0 _080EC274: .4byte gUnknown_203AAC4 _080EC278: movs r0, 0x1E - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080EC27E: bl sub_80F6E9C ldr r0, _080EC2A8 @ =sub_80EC230 @@ -1543,17 +1543,17 @@ _080EC2B6: thumb_func_start sub_80EC2C0 sub_80EC2C0: @ 80EC2C0 push {lr} - ldr r0, _080EC2D4 @ =gUnknown_3005020 + ldr r0, _080EC2D4 @ =gFieldCallback ldr r1, _080EC2D8 @ =sub_80EC260 str r1, [r0] - ldr r0, _080EC2DC @ =c2_exit_to_overworld_2_switch + ldr r0, _080EC2DC @ =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 -_080EC2D4: .4byte gUnknown_3005020 +_080EC2D4: .4byte gFieldCallback _080EC2D8: .4byte sub_80EC260 -_080EC2DC: .4byte c2_exit_to_overworld_2_switch +_080EC2DC: .4byte CB2_ReturnToField thumb_func_end sub_80EC2C0 thumb_func_start sub_80EC2E0 @@ -1599,7 +1599,7 @@ sub_80EC324: @ 80EC324 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r0, 24 movs r1, 0x1 @@ -1649,7 +1649,7 @@ sub_80EC364: @ 80EC364 adds r5, r1, r0 ldrh r0, [r5, 0x20] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _080EC3B4 @@ -1753,7 +1753,7 @@ sub_80EC444: @ 80EC444 cmp r0, 0 bne _080EC468 bl sub_810EDB0 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps bl sub_81273D8 adds r0, r4, 0 bl DestroyTask @@ -1773,13 +1773,13 @@ sub_80EC474: @ 80EC474 cmp r0, 0 bne _080EC48C movs r0, 0x22 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080EC492 .align 2, 0 _080EC488: .4byte gUnknown_203AAC4 _080EC48C: movs r0, 0x1E - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080EC492: ldr r0, _080EC4E8 @ =sub_80EC230 movs r1, 0 @@ -1834,17 +1834,17 @@ _080EC4F6: thumb_func_start sub_80EC500 sub_80EC500: @ 80EC500 push {lr} - ldr r0, _080EC514 @ =gUnknown_3005020 + ldr r0, _080EC514 @ =gFieldCallback ldr r1, _080EC518 @ =sub_80EC474 str r1, [r0] - ldr r0, _080EC51C @ =c2_exit_to_overworld_2_switch + ldr r0, _080EC51C @ =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 -_080EC514: .4byte gUnknown_3005020 +_080EC514: .4byte gFieldCallback _080EC518: .4byte sub_80EC474 -_080EC51C: .4byte c2_exit_to_overworld_2_switch +_080EC51C: .4byte CB2_ReturnToField thumb_func_end sub_80EC500 thumb_func_start sub_80EC520 @@ -1852,14 +1852,14 @@ sub_80EC520: @ 80EC520 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, _080EC534 @ =gUnknown_841632A + ldr r2, _080EC534 @ =gText_ThereIsNoPokemon ldr r3, _080EC538 @ =sub_80EC574 movs r1, 0x2 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 -_080EC534: .4byte gUnknown_841632A +_080EC534: .4byte gText_ThereIsNoPokemon _080EC538: .4byte sub_80EC574 thumb_func_end sub_80EC520 @@ -1871,7 +1871,7 @@ sub_80EC53C: @ 80EC53C lsrs r4, 24 movs r0, 0 movs r1, 0 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame adds r0, r4, 0 bl sub_80EBEB0 movs r0, 0 diff --git a/asm/poison.s b/asm/poison.s new file mode 100644 index 000000000..adaa51dbd --- /dev/null +++ b/asm/poison.s @@ -0,0 +1,326 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B1620 +sub_80B1620: @ 80B1620 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B1674 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B1636 + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080B1636: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8075160 + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x2E] + ldr r4, _080B1678 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080B167C @ =0x0000ffe2 + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_8075068 + ldr r0, _080B1680 @ =sub_80B1684 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1674: .4byte gBattleAnimArgs +_080B1678: .4byte gBattleAnimTarget +_080B167C: .4byte 0x0000ffe2 +_080B1680: .4byte sub_80B1684 + thumb_func_end sub_80B1620 + + thumb_func_start sub_80B1684 +sub_80B1684: @ 80B1684 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B1698 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B1698: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B1684 + + thumb_func_start sub_80B16A0 +sub_80B16A0: @ 80B16A0 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r5, _080B1714 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B16B8 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080B16B8: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080B1718 @ =gBattleAnimTarget + ldrb r0, [r0] + mov r6, sp + adds r6, 0x2 + movs r1, 0x1 + mov r2, sp + adds r3, r6, 0 + bl sub_8076D9C + ldr r0, _080B171C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B16E6 + ldrh r0, [r5, 0x8] + negs r0, r0 + strh r0, [r5, 0x8] +_080B16E6: + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + mov r1, sp + ldrh r0, [r5, 0x8] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + ldrh r6, [r6] + adds r0, r6 + strh r0, [r4, 0x36] + ldr r0, _080B1720 @ =0x0000ffe2 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldr r0, _080B1724 @ =sub_80B1728 + str r0, [r4, 0x1C] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1714: .4byte gBattleAnimArgs +_080B1718: .4byte gBattleAnimTarget +_080B171C: .4byte gBattleAnimAttacker +_080B1720: .4byte 0x0000ffe2 +_080B1724: .4byte sub_80B1728 + thumb_func_end sub_80B16A0 + + thumb_func_start sub_80B1728 +sub_80B1728: @ 80B1728 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B173C + adds r0, r4, 0 + bl DestroyAnimSprite +_080B173C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B1728 + + thumb_func_start sub_80B1744 +sub_80B1744: @ 80B1744 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B1790 @ =gBattleAnimArgs + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r1, [r5] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80754B8 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0x38] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0x3A] + ldr r0, _080B1794 @ =sub_80B1798 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1790: .4byte gBattleAnimArgs +_080B1794: .4byte sub_80B1798 + thumb_func_end sub_80B1744 + + thumb_func_start sub_80B1798 +sub_80B1798: @ 80B1798 + push {r4,lr} + adds r4, r0, 0 + bl sub_8074D00 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x38] + subs r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x3A] + subs r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B17BE + adds r0, r4, 0 + bl DestroyAnimSprite +_080B17BE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B1798 + + thumb_func_start sub_80B17C4 +sub_80B17C4: @ 80B17C4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B1824 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_8076D9C + ldr r0, _080B1828 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B17F0 + ldr r1, _080B182C @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080B17F0: + ldr r0, _080B182C @ =gBattleAnimArgs + ldrh r2, [r0] + ldrh r1, [r4, 0x20] + adds r2, r1 + strh r2, [r4, 0x20] + ldrh r1, [r0, 0x2] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + ldrh r3, [r0, 0x8] + strh r3, [r4, 0x2E] + ldrh r0, [r0, 0x4] + adds r2, r0 + strh r2, [r4, 0x32] + adds r1, r3 + strh r1, [r4, 0x36] + ldr r0, _080B1830 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080B1834 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1824: .4byte gBattleAnimTarget +_080B1828: .4byte gBattleAnimAttacker +_080B182C: .4byte gBattleAnimArgs +_080B1830: .4byte sub_8075590 +_080B1834: .4byte DestroyAnimSprite + thumb_func_end sub_80B17C4 + + thumb_func_start sub_80B1838 +sub_80B1838: @ 80B1838 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B1850 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B1854 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + b _080B188A + .align 2, 0 +_080B1850: .4byte gBattleAnimArgs +_080B1854: + ldr r0, _080B1894 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_8076D9C + ldr r0, _080B1898 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B187A + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080B187A: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080B188A: + ldr r0, _080B189C @ =sub_80B18A0 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1894: .4byte gBattleAnimTarget +_080B1898: .4byte gBattleAnimAttacker +_080B189C: .4byte sub_80B18A0 + thumb_func_end sub_80B1838 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokeball.s b/asm/pokeball.s index 11572c80f..eace88832 100644 --- a/asm/pokeball.s +++ b/asm/pokeball.s @@ -432,7 +432,7 @@ sub_804AC94: @ 804AC94 strh r7, [r6, 0x38] ldr r0, _0804ACF4 @ =sub_804AD00 str r0, [r6, 0x1C] - ldr r5, _0804ACF8 @ =gUnknown_2023D44 + ldr r5, _0804ACF8 @ =gBattlerSpriteIds movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r5 @@ -468,7 +468,7 @@ _0804ACEE: bx r0 .align 2, 0 _0804ACF4: .4byte sub_804AD00 -_0804ACF8: .4byte gUnknown_2023D44 +_0804ACF8: .4byte gBattlerSpriteIds _0804ACFC: .4byte gSprites thumb_func_end sub_804AC94 @@ -487,7 +487,7 @@ sub_804AD00: @ 804AD00 bl PlaySE _0804AD18: ldr r6, _0804AD64 @ =gSprites - ldr r5, _0804AD68 @ =gUnknown_2023D44 + ldr r5, _0804AD68 @ =gBattlerSpriteIds movs r1, 0x3A ldrsh r0, [r4, r1] adds r0, r5 @@ -525,7 +525,7 @@ _0804AD18: b _0804AD90 .align 2, 0 _0804AD64: .4byte gSprites -_0804AD68: .4byte gUnknown_2023D44 +_0804AD68: .4byte gBattlerSpriteIds _0804AD6C: .4byte sub_804AD98 _0804AD70: ldrh r0, [r1, 0x30] @@ -1363,7 +1363,7 @@ _0804B3F2: strh r7, [r1, 0x10] strh r2, [r1, 0x26] _0804B420: - ldr r5, _0804B47C @ =gUnknown_2023D44 + ldr r5, _0804B47C @ =gBattlerSpriteIds movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r5 @@ -1405,7 +1405,7 @@ _0804B420: .align 2, 0 _0804B474: .4byte Task_PlayCryWhenReleasedFromBall _0804B478: .4byte gTasks -_0804B47C: .4byte gUnknown_2023D44 +_0804B47C: .4byte gBattlerSpriteIds _0804B480: .4byte gSprites thumb_func_end sub_804B268 @@ -1437,7 +1437,7 @@ HandleBallAnimEnd: @ 804B4A4 lsls r0, 24 lsrs r6, r0, 24 ldr r4, _0804B508 @ =gSprites - ldr r0, _0804B50C @ =gUnknown_2023D44 + ldr r0, _0804B50C @ =gBattlerSpriteIds adds r3, r6, r0 ldrb r1, [r3] lsls r0, r1, 4 @@ -1482,7 +1482,7 @@ _0804B4E6: b _0804B52C .align 2, 0 _0804B508: .4byte gSprites -_0804B50C: .4byte gUnknown_2023D44 +_0804B50C: .4byte gBattlerSpriteIds _0804B510: ldr r2, _0804B5B4 @ =0xfffffee0 adds r0, r2, 0 @@ -1509,7 +1509,7 @@ _0804B52C: cmp r7, 0 beq _0804B5AE ldr r2, _0804B5B8 @ =gSprites - ldr r0, _0804B5BC @ =gUnknown_2023D44 + ldr r0, _0804B5BC @ =gBattlerSpriteIds adds r0, r6, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -1571,7 +1571,7 @@ _0804B5AE: .align 2, 0 _0804B5B4: .4byte 0xfffffee0 _0804B5B8: .4byte gSprites -_0804B5BC: .4byte gUnknown_2023D44 +_0804B5BC: .4byte gBattlerSpriteIds _0804B5C0: .4byte gUnknown_2024005 _0804B5C4: .4byte gUnknown_2024018 thumb_func_end HandleBallAnimEnd @@ -1607,7 +1607,7 @@ _0804B600: cmp r1, r0 bne _0804B666 ldr r5, _0804B670 @ =gSprites - ldr r4, _0804B674 @ =gUnknown_2023D44 + ldr r4, _0804B674 @ =gBattlerSpriteIds movs r1, 0x3A ldrsh r0, [r6, r1] adds r0, r4 @@ -1658,7 +1658,7 @@ _0804B666: .align 2, 0 _0804B66C: .4byte 0x0000013b _0804B670: .4byte gSprites -_0804B674: .4byte gUnknown_2023D44 +_0804B674: .4byte gBattlerSpriteIds _0804B678: .4byte gMain _0804B67C: .4byte 0x00000439 _0804B680: .4byte gUnknown_2024018 @@ -2276,7 +2276,7 @@ _0804BB22: ldrsh r0, [r4, r7] cmp r0, 0x7F bgt _0804BB64 - ldr r1, _0804BB60 @ =gUnknown_825E074 + ldr r1, _0804BB60 @ =gSineTable lsls r0, r2, 24 lsrs r0, 23 adds r0, r1 @@ -2297,7 +2297,7 @@ _0804BB48: b _0804BB72 .align 2, 0 _0804BB5C: .4byte gSprites -_0804BB60: .4byte gUnknown_825E074 +_0804BB60: .4byte gSineTable _0804BB64: ldrh r0, [r4, 0x38] strh r0, [r5, 0x20] diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index 3d3ca02ea..80cc1ab5d 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -58,7 +58,7 @@ sub_810250C: @ 810250C bl ResetPaletteFade bl ResetSpriteData bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop movs r0, 0x1 bl ResetBgsAndClearDma3BusyFlags ldr r1, _08102598 @ =gUnknown_8451EBC @@ -95,7 +95,7 @@ sub_810250C: @ 810250C movs r0, 0x3 adds r2, r4, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap b _081025AE .align 2, 0 _08102598: .4byte gUnknown_8451EBC @@ -106,7 +106,7 @@ _081025A0: movs r0, 0x3 adds r2, r4, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap _081025AE: ldr r0, _081026A8 @ =gUnknown_8451ECC bl InitWindows @@ -309,7 +309,7 @@ sub_810275C: @ 810275C ldr r0, _08102794 @ =sub_81024D4 bl SetMainCallback2 movs r0, 0x4 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 pop {r0} bx r0 .align 2, 0 @@ -593,7 +593,7 @@ _081029D0: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow bl sub_806E25C cmp r0, 0 beq _081029F4 @@ -627,7 +627,7 @@ _08102A14: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r0, _08102A4C @ =gMain ldrh r1, [r0, 0x2E] movs r3, 0x1 @@ -754,7 +754,7 @@ _08102B24: adds r1, r2, 0 adds r1, 0x12 adds r2, 0x10 - bl sub_810713C + bl DestroyListMenu movs r0, 0x20 str r0, [sp] movs r0, 0x14 @@ -804,7 +804,7 @@ _08102B94: adds r1, r2, 0 adds r1, 0x12 adds r2, 0x10 - bl sub_810713C + bl DestroyListMenu movs r0, 0x1 bl HideBg ldr r0, [r4] @@ -832,7 +832,7 @@ _08102BD8: adds r1, r2, 0 adds r1, 0x12 adds r2, 0x10 - bl sub_810713C + bl DestroyListMenu movs r0, 0x1 bl HideBg ldr r0, [r4] @@ -1367,7 +1367,7 @@ _0810307C: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow bl sub_81039F0 ldr r1, [r4] adds r1, 0x60 @@ -1385,7 +1385,7 @@ _08103098: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r0, _081030F0 @ =gMain ldrh r1, [r0, 0x2E] movs r3, 0x1 @@ -1545,7 +1545,7 @@ sub_810317C: @ 810317C movs r0, 0x1 movs r1, 0xFF bl FillWindowPixelBuffer - ldr r0, _08103234 @ =gUnknown_8415F51 + ldr r0, _08103234 @ =gText_PickOKExit bl sub_8104C2C movs r0, 0 movs r1, 0x2 @@ -1562,7 +1562,7 @@ _08103224: .4byte gUnknown_845216C _08103228: .4byte gUnknown_203ACF0 _0810322C: .4byte gUnknown_8452174 _08103230: .4byte gUnknown_8415F3D -_08103234: .4byte gUnknown_8415F51 +_08103234: .4byte gText_PickOKExit thumb_func_end sub_810317C thumb_func_start sub_8103238 @@ -1687,7 +1687,7 @@ _08103344: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow bl sub_81039F0 ldr r1, [r4] adds r1, 0x60 @@ -1706,7 +1706,7 @@ _08103362: ldrb r0, [r1, 0x17] adds r1, 0x62 movs r2, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow ldr r0, _081033C4 @ =gMain ldrh r1, [r0, 0x2E] movs r2, 0x1 @@ -1874,7 +1874,7 @@ sub_810345C: @ 810345C movs r0, 0x1 movs r1, 0xFF bl FillWindowPixelBuffer - ldr r0, _08103514 @ =gUnknown_8415F51 + ldr r0, _08103514 @ =gText_PickOKExit bl sub_8104C2C movs r0, 0 movs r1, 0x2 @@ -1891,7 +1891,7 @@ _08103504: .4byte gUnknown_845216C _08103508: .4byte gUnknown_203ACF0 _0810350C: .4byte gUnknown_8452174 _08103510: .4byte gUnknown_8415F4A -_08103514: .4byte gUnknown_8415F51 +_08103514: .4byte gText_PickOKExit thumb_func_end sub_810345C thumb_func_start sub_8103518 @@ -2467,7 +2467,7 @@ _0810399C: adds r1, r2, 0 adds r1, 0x36 adds r2, 0x34 - bl sub_810713C + bl DestroyListMenu b _081039E8 .align 2, 0 _081039B4: .4byte gUnknown_203ACF0 @@ -2480,7 +2480,7 @@ _081039B8: adds r1, r2, 0 adds r1, 0x3A adds r2, 0x38 - bl sub_810713C + bl DestroyListMenu b _081039E8 .align 2, 0 _081039D0: .4byte gUnknown_203ACF0 @@ -2493,7 +2493,7 @@ _081039D4: adds r1, r2, 0 adds r1, 0x3E adds r2, 0x3C - bl sub_810713C + bl DestroyListMenu _081039E8: pop {r0} bx r0 @@ -2572,7 +2572,7 @@ sub_8103A40: @ 8103A40 movs r1, 0 movs r2, 0x28 adds r3, r6, 0 - bl sub_8107D68 + bl blit_move_info_icon ldr r0, _08103AC4 @ =gBaseStats lsls r4, r5, 3 subs r4, r5 @@ -2587,7 +2587,7 @@ sub_8103A40: @ 8103A40 lsrs r1, 24 movs r2, 0x78 adds r3, r6, 0 - bl sub_8107D68 + bl blit_move_info_icon ldrb r1, [r4, 0x7] cmp r5, r1 beq _08103AB6 @@ -2599,7 +2599,7 @@ sub_8103A40: @ 8103A40 lsrs r1, 24 movs r2, 0x98 adds r3, r6, 0 - bl sub_8107D68 + bl blit_move_info_icon _08103AB6: add sp, 0x4 pop {r4-r7} @@ -4266,7 +4266,7 @@ _08104852: adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x18 pop {r4-r7} pop {r0} @@ -7753,7 +7753,7 @@ _08106478: lsrs r1, 24 movs r2, 0 movs r3, 0x1 - bl sub_8107D68 + bl blit_move_info_icon ldrb r1, [r4, 0x7] cmp r5, r1 beq _08106504 @@ -7765,7 +7765,7 @@ _08106478: lsrs r1, 24 movs r2, 0x20 movs r3, 0x1 - bl sub_8107D68 + bl blit_move_info_icon _08106504: ldr r7, _081066B8 @ =gUnknown_203ACF0 ldr r0, [r7] @@ -7777,7 +7777,7 @@ _08106504: ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram - bl dp13_810BB8C + bl ResetAllPicSprites ldr r0, _081066BC @ =gUnknown_8452368 movs r1, 0x90 lsls r1, 1 @@ -7802,7 +7802,7 @@ _08106534: ldr r0, [sp, 0x1C] movs r1, 0x8 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys ldr r1, [r7] adds r1, 0x58 strb r0, [r1] @@ -7892,7 +7892,7 @@ _08106534: ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 movs r3, 0 @@ -7902,7 +7902,7 @@ _08106534: movs r1, 0x1 movs r2, 0x50 movs r3, 0x68 - bl sub_810C2A4 + bl CreateTrainerPicSprite ldr r1, [r7] adds r1, 0x59 strb r0, [r1] @@ -8114,7 +8114,7 @@ _081067CE: ldrb r0, [r1] cmp r0, 0xFF beq _081067F2 - bl sub_810C2E8 + bl FreeAndDestroyTrainerPicSprite _081067F2: ldr r0, [r4] adds r1, r0, 0 @@ -8122,7 +8122,7 @@ _081067F2: ldrb r0, [r1] cmp r0, 0xFF beq _08106802 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite _08106802: movs r0, 0 pop {r4,r5} diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s index 0d4ee1bcb..416c996bb 100644 --- a/asm/pokemon_3.s +++ b/asm/pokemon_3.s @@ -785,8 +785,8 @@ _08044AE8: .4byte gUnknown_825E05C _08044AEC: .4byte gUnknown_82349BC thumb_func_end sub_8044A40 - thumb_func_start sub_8044AF0 -sub_8044AF0: @ 8044AF0 + thumb_func_start SetUpMonSpriteManagerMaybe +SetUpMonSpriteManagerMaybe: @ 8044AF0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1124,7 +1124,7 @@ _08044D70: bx r1 .align 2, 0 _08044D7C: .4byte gUnknown_20244F4 - thumb_func_end sub_8044AF0 + thumb_func_end SetUpMonSpriteManagerMaybe thumb_func_start sub_8044D80 sub_8044D80: @ 8044D80 diff --git a/asm/unk_8147500.s b/asm/pokemon_jump.s similarity index 85% rename from asm/unk_8147500.s rename to asm/pokemon_jump.s index 53fc6a8a0..c00c08f20 100644 --- a/asm/unk_8147500.s +++ b/asm/pokemon_jump.s @@ -5,118 +5,6 @@ .text - thumb_func_start sub_8147500 -sub_8147500: @ 8147500 - push {lr} - ldr r0, _08147518 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - ldr r0, _0814751C @ =gSpecialVar_0x8006 - ldrh r2, [r0] - cmp r1, 0x8 - beq _08147512 - cmp r2, 0x8 - bne _08147520 -_08147512: - movs r0, 0x1 - b _0814758E - .align 2, 0 -_08147518: .4byte gSpecialVar_0x8004 -_0814751C: .4byte gSpecialVar_0x8006 -_08147520: - cmp r1, 0 - beq _08147528 - cmp r2, 0 - bne _0814752C -_08147528: - movs r0, 0x7 - b _0814758E -_0814752C: - cmp r1, 0x9 - beq _08147534 - cmp r2, 0x9 - bne _08147538 -_08147534: - movs r0, 0xA - b _0814758E -_08147538: - cmp r1, 0xA - beq _08147540 - cmp r2, 0xA - bne _08147544 -_08147540: - movs r0, 0xC - b _0814758E -_08147544: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _0814755C - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _0814755C - movs r0, 0x2 - b _0814758E -_0814755C: - subs r0, r1, 0x4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _08147574 - subs r0, r2, 0x4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _08147574 - movs r0, 0x3 - b _0814758E -_08147574: - subs r0, r1, 0x6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0814758C - subs r0, r2, 0x6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0814758C - movs r0, 0x5 - b _0814758E -_0814758C: - movs r0, 0x6 -_0814758E: - pop {r1} - bx r1 - thumb_func_end sub_8147500 - - thumb_func_start sub_8147594 -sub_8147594: @ 8147594 - push {lr} - ldr r0, _081475B0 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldrh r1, [r2, 0x4] - ldr r0, _081475B4 @ =0x00000503 - cmp r1, r0 - bne _081475B8 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x17 - bgt _081475B8 - movs r0, 0x1 - b _081475BA - .align 2, 0 -_081475B0: .4byte gSaveBlock1Ptr -_081475B4: .4byte 0x00000503 -_081475B8: - movs r0, 0 -_081475BA: - pop {r1} - bx r1 - thumb_func_end sub_8147594 - thumb_func_start sub_81475C0 sub_81475C0: @ 81475C0 push {r4,r5,lr} @@ -708,7 +596,7 @@ sub_8147A34: @ 8147A34 ldrb r0, [r0] cmp r0, 0 beq _08147A98 - ldr r1, _08147A90 @ =gUnknown_3003ED0 + ldr r1, _08147A90 @ =gRecvCmds ldrh r0, [r1, 0x2] ldr r5, _08147A94 @ =0x00007fff cmp r0, r5 @@ -738,7 +626,7 @@ _08147A5C: .align 2, 0 _08147A88: .4byte gTasks+0x8 _08147A8C: .4byte gReceivedRemoteLinkPlayers -_08147A90: .4byte gUnknown_3003ED0 +_08147A90: .4byte gRecvCmds _08147A94: .4byte 0x00007fff _08147A98: ldrh r0, [r4, 0x16] diff --git a/asm/unk_8147AA8.s b/asm/pokemon_jump_2.s similarity index 99% rename from asm/unk_8147AA8.s rename to asm/pokemon_jump_2.s index a7761148d..a8595db7f 100644 --- a/asm/unk_8147AA8.s +++ b/asm/pokemon_jump_2.s @@ -2300,14 +2300,14 @@ _08148BFC: beq _08148C54 ldrh r0, [r1, 0x3E] ldrh r1, [r2] - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 beq _08148C54 ldr r0, [r4] ldrh r0, [r0, 0x3E] movs r1, 0x1 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _08148C4C @@ -4162,7 +4162,7 @@ _0814998A: beq _0814999C adds r0, r5, 0 adds r1, r4, 0 - bl sub_809A000 + bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _08149984 @@ -4313,7 +4313,7 @@ sub_8149A90: @ 8149A90 push {r4,lr} sub sp, 0xC adds r4, r1, 0 - ldr r3, _08149AC4 @ =gUnknown_3003ED0 + ldr r3, _08149AC4 @ =gRecvCmds lsls r2, r0, 4 adds r0, r2, r3 ldrh r1, [r0] @@ -4337,7 +4337,7 @@ _08149AC0: movs r0, 0 b _08149AD8 .align 2, 0 -_08149AC4: .4byte gUnknown_3003ED0 +_08149AC4: .4byte gRecvCmds _08149AC8: mov r0, sp ldrh r0, [r0, 0x2] @@ -4443,7 +4443,7 @@ sub_8149B7C: @ 8149B7C sub sp, 0xC adds r5, r0, 0 adds r4, r1, 0 - ldr r2, _08149BE4 @ =gUnknown_3003ED0 + ldr r2, _08149BE4 @ =gRecvCmds ldrh r0, [r2] movs r1, 0xFF lsls r1, 8 @@ -4491,7 +4491,7 @@ sub_8149B7C: @ 8149B7C movs r0, 0x1 b _08149BEA .align 2, 0 -_08149BE4: .4byte gUnknown_3003ED0 +_08149BE4: .4byte gRecvCmds _08149BE8: movs r0, 0 _08149BEA: @@ -4534,7 +4534,7 @@ sub_8149C24: @ 8149C24 adds r4, r0, 0 adds r5, r2, 0 adds r6, r3, 0 - ldr r3, _08149C80 @ =gUnknown_3003ED0 + ldr r3, _08149C80 @ =gRecvCmds lsls r2, r1, 4 adds r0, r2, r3 ldrh r1, [r0] @@ -4575,7 +4575,7 @@ sub_8149C24: @ 8149C24 movs r0, 0x1 b _08149C86 .align 2, 0 -_08149C80: .4byte gUnknown_3003ED0 +_08149C80: .4byte gRecvCmds _08149C84: movs r0, 0 _08149C86: @@ -4590,7 +4590,7 @@ sub_8149C90: @ 8149C90 push {r4,lr} sub sp, 0xC adds r4, r0, 0 - ldr r3, _08149CDC @ =gUnknown_3003ED0 + ldr r3, _08149CDC @ =gRecvCmds lsls r2, r1, 4 adds r0, r2, r3 ldrh r1, [r0] @@ -4625,7 +4625,7 @@ sub_8149C90: @ 8149C90 movs r0, 0x1 b _08149CE2 .align 2, 0 -_08149CDC: .4byte gUnknown_3003ED0 +_08149CDC: .4byte gRecvCmds _08149CE0: movs r0, 0 _08149CE2: @@ -4875,7 +4875,7 @@ _08149DF0: movs r0, 0 movs r1, 0xA movs r2, 0xD0 - bl sub_814FE40 + bl LoadUserWindowBorderGfx movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x2 @@ -5179,7 +5179,7 @@ _0814A124: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0x17 movs r1, 0x7 movs r2, 0 @@ -5265,7 +5265,7 @@ _0814A1D0: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl CopyBgTilemapBufferToVram _0814A1F4: @@ -5386,7 +5386,7 @@ _0814A2C0: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl CopyBgTilemapBufferToVram _0814A2E4: @@ -5468,7 +5468,7 @@ _0814A364: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl CopyBgTilemapBufferToVram _0814A388: @@ -5613,7 +5613,7 @@ sub_814A468: @ 814A468 ldr r1, [r5] adds r1, 0x26 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r0, [r5] adds r0, 0x66 adds r1, r6, 0 @@ -5705,7 +5705,7 @@ sub_814A53C: @ 814A53C ldr r4, _0814A5AC @ =gUnknown_203F3D8 ldr r1, [r4] adds r1, 0x26 - bl sub_8099E90 + bl CopyItemName bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 @@ -5760,7 +5760,7 @@ sub_814A5B4: @ 814A5B4 ldr r4, _0814A624 @ =gUnknown_203F3D8 ldr r1, [r4] adds r1, 0x26 - bl sub_8099E90 + bl CopyItemName bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 @@ -5839,7 +5839,7 @@ _0814A652: ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r4] @@ -5961,7 +5961,7 @@ _0814A73C: thumb_func_start sub_814A744 sub_814A744: @ 814A744 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r0, 24 pop {r1} @@ -6075,7 +6075,7 @@ sub_814A7D0: @ 814A7D0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu add sp, 0x14 pop {r4,r5} pop {r0} @@ -6116,7 +6116,7 @@ sub_814A84C: @ 814A84C movs r1, 0 movs r2, 0 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC str r0, [sp] str r4, [sp, 0x4] @@ -6126,7 +6126,7 @@ sub_814A84C: @ 814A84C movs r1, 0 movs r2, 0 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x10 pop {r4} pop {r0} @@ -6582,7 +6582,7 @@ sub_814AB98: @ 814AB98 movs r1, 0 adds r2, r4, 0 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r6] adds r0, 0x1C add r0, r8 @@ -6877,7 +6877,7 @@ _0814AE2A: beq _0814AEEC ldrh r2, [r7] lsls r0, r2, 3 - ldr r1, _0814AED8 @ =gUnknown_82350AC + ldr r1, _0814AED8 @ =gMonFrontPicTable adds r0, r1 ldr r3, [r7, 0x8] mov r1, r8 @@ -6948,7 +6948,7 @@ _0814AE2A: strb r1, [r0] b _0814AEF8 .align 2, 0 -_0814AED8: .4byte gUnknown_82350AC +_0814AED8: .4byte gMonFrontPicTable _0814AEDC: .4byte 0xffff0000 _0814AEE0: .4byte 0x000081a8 _0814AEE4: .4byte gSprites @@ -7393,7 +7393,7 @@ _0814B1EC: movs r0, 0 strh r0, [r5, 0x30] _0814B1FE: - ldr r1, _0814B22C @ =gUnknown_825E074 + ldr r1, _0814B22C @ =gSineTable movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 1 @@ -7417,7 +7417,7 @@ _0814B1FE: strh r1, [r5, 0x2E] b _0814B234 .align 2, 0 -_0814B22C: .4byte gUnknown_825E074 +_0814B22C: .4byte gSineTable _0814B230: ldr r0, _0814B23C @ =SpriteCallbackDummy str r0, [r5, 0x1C] @@ -7930,11 +7930,11 @@ sub_814B5C4: @ 814B5C4 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter adds r0, r4, 0 movs r1, 0x11 bl FillWindowPixelBuffer @@ -7950,7 +7950,7 @@ sub_814B5C4: @ 814B5C4 adds r0, r4, 0 movs r1, 0x2 movs r3, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 movs r7, 0 mov r8, r4 movs r1, 0xFF @@ -7980,7 +7980,7 @@ _0814B63E: mov r0, r8 movs r1, 0x2 movs r3, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 ldr r0, [sp, 0x2C] ldm r0!, {r1} str r0, [sp, 0x2C] @@ -8007,7 +8007,7 @@ _0814B63E: mov r0, r8 movs r1, 0x2 adds r2, r5, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 movs r0, 0xE0 lsls r0, 20 add r9, r0 diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s index fa72d3c8e..94d451a73 100644 --- a/asm/pokemon_special_anim.s +++ b/asm/pokemon_special_anim.s @@ -558,7 +558,7 @@ _0811C9AA: adds r0, r4, 0 adds r0, 0x96 ldrh r0, [r0] - bl sub_80A1150 + bl GetItemCompatibilityRule lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -1617,7 +1617,7 @@ sub_811D184: @ 811D184 movs r0, 0 movs r1, 0 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -1688,7 +1688,7 @@ sub_811D2A8: @ 811D2A8 movs r0, 0 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -1703,7 +1703,7 @@ sub_811D2D0: @ 811D2D0 bl ClearWindowTilemap movs r0, 0 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0 movs r1, 0x1 bl CopyWindowToVram @@ -1727,7 +1727,7 @@ sub_811D2EC: @ 811D2EC lsrs r7, r0, 16 movs r0, 0 mov r8, r0 - bl sub_80F78A8 + bl GetTextSpeedSetting lsls r0, 24 lsrs r0, 24 mov r9, r0 @@ -1759,7 +1759,7 @@ _0811D330: _0811D358: adds r4, 0x14 adds r0, r7, 0 - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 adds r0, r4, 0 bl StringCopy @@ -1918,7 +1918,7 @@ _0811D4A2: movs r0, 0 movs r1, 0x2 adds r2, r4, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 _0811D4C2: add sp, 0x14 pop {r3,r4} @@ -2285,7 +2285,7 @@ sub_811D764: @ 811D764 movs r0, 0x1 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0x2 str r0, [sp] movs r0, 0x3 @@ -2441,7 +2441,7 @@ _0811D884: cmp r4, 0 beq _0811D916 lsls r0, r7, 3 - ldr r1, _0811D900 @ =gUnknown_82350AC + ldr r1, _0811D900 @ =gMonFrontPicTable adds r0, r1 adds r1, r6, 0 adds r2, r7, 0 @@ -2474,7 +2474,7 @@ _0811D884: bl sub_811DB14 b _0811D910 .align 2, 0 -_0811D900: .4byte gUnknown_82350AC +_0811D900: .4byte gMonFrontPicTable _0811D904: .4byte gUnknown_8459A30 _0811D908: .4byte gSprites _0811D90C: @@ -3400,7 +3400,7 @@ sub_811DFC0: @ 811DFC0 strh r0, [r3, 0x4] movs r5, 0x4 ldrsh r1, [r3, r5] - ldr r2, _0811E018 @ =gUnknown_825E074 + ldr r2, _0811E018 @ =gSineTable movs r5, 0x2 ldrsh r0, [r3, r5] adds r0, 0x40 @@ -3424,7 +3424,7 @@ sub_811DFC0: @ 811DFC0 strh r0, [r4, 0x26] b _0811E036 .align 2, 0 -_0811E018: .4byte gUnknown_825E074 +_0811E018: .4byte gSineTable _0811E01C: ldr r2, _0811E03C @ =gTasks movs r5, 0xE @@ -3958,7 +3958,7 @@ _0811E3E0: lsls r0, 16 lsrs r0, 16 adds r0, 0x46 - ldr r3, _0811E4BC @ =gUnknown_825E074 + ldr r3, _0811E4BC @ =gSineTable movs r4, 0xA ldrsh r2, [r5, r4] adds r1, r2, 0 @@ -4035,7 +4035,7 @@ _0811E4A4: strh r0, [r5] b _0811E4DC .align 2, 0 -_0811E4BC: .4byte gUnknown_825E074 +_0811E4BC: .4byte gSineTable _0811E4C0: .4byte gUnknown_8459B30 _0811E4C4: .4byte gSprites _0811E4C8: @@ -4548,7 +4548,7 @@ _0811E880: movs r1, 0x2 movs r2, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 lsls r0, r7, 1 mov r4, sp adds r4, r0 @@ -4571,7 +4571,7 @@ _0811E8BA: movs r1, 0x2 movs r2, 0x38 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 strb r0, [r6] movs r0, 0 @@ -4604,7 +4604,7 @@ _0811E8F4: mov r0, r8 movs r1, 0x2 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 @@ -4725,7 +4725,7 @@ _0811E9C0: movs r1, 0x2 movs r2, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r4, 0x38 lsls r4, 24 lsrs r4, 24 @@ -4739,7 +4739,7 @@ _0811E9C0: movs r1, 0x2 adds r2, r4, 0 adds r3, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 37f9e9762..4c851f4cb 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -807,7 +807,7 @@ _0808BF3C: str r1, [sp, 0x10] movs r1, 0x1 movs r3, 0x2 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r0, [sp, 0x50] mov r10, r4 cmp r0, 0x6 @@ -960,7 +960,7 @@ sub_808BFE0: @ 808BFE0 movs r1, 0x1 movs r2, 0 movs r3, 0x2 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 lsrs r5, 1 adds r0, r7, 0 ldr r1, [sp, 0x24] @@ -1412,7 +1412,7 @@ _0808C3CC: .4byte _0808C680 _0808C3E0: movs r0, 0x1C - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldrb r0, [r5, 0xA] adds r1, r5, 0 adds r1, 0x26 @@ -1420,7 +1420,7 @@ _0808C3E0: bl sub_80F6E9C movs r0, 0 movs r1, 0 - bl sub_80F6EE4 + bl DrawDialogueFrame movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer @@ -1442,7 +1442,7 @@ _0808C3E0: movs r0, 0 movs r1, 0x2 movs r3, 0xFF - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram @@ -1549,7 +1549,7 @@ _0808C4CE: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _0808C69C .align 2, 0 _0808C504: .4byte gMain @@ -1557,12 +1557,12 @@ _0808C508: .4byte gUnknown_83CDA20 _0808C50C: movs r0, 0 movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrh r0, [r5, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame bl ScriptContext2_Disable bl EnableBothScriptContexts adds r0, r4, 0 @@ -1725,7 +1725,7 @@ _0808C66E: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 strh r4, [r5, 0x8] b _0808C69C .align 2, 0 @@ -1737,7 +1737,7 @@ _0808C680: ands r0, r1 cmp r0, 0 bne _0808C69C - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldrb r0, [r5, 0xC] bl sub_808CDE4 adds r0, r4, 0 @@ -1833,7 +1833,7 @@ sub_808C72C: @ 808C72C lsrs r4, 24 adds r0, r4, 0 movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame movs r0, 0x2 movs r1, 0 bl GetMenuCursorDimensionByFont @@ -1861,7 +1861,7 @@ sub_808C72C: @ 808C72C movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow mov r0, r10 strh r5, [r0] add sp, 0xC @@ -1883,18 +1883,18 @@ sub_808C7B4: @ 808C7B4 bl sub_808FDF0 ldr r1, _0808C7D0 @ =gUnknown_20397A8 strb r0, [r1] - ldr r1, _0808C7D4 @ =gUnknown_3005020 + ldr r1, _0808C7D4 @ =gFieldCallback ldr r0, _0808C7D8 @ =mapldr_0808C6D8 str r0, [r1] - ldr r0, _0808C7DC @ =c2_exit_to_overworld_2_switch + ldr r0, _0808C7DC @ =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0808C7D0: .4byte gUnknown_20397A8 -_0808C7D4: .4byte gUnknown_3005020 +_0808C7D4: .4byte gFieldCallback _0808C7D8: .4byte mapldr_0808C6D8 -_0808C7DC: .4byte c2_exit_to_overworld_2_switch +_0808C7DC: .4byte CB2_ReturnToField thumb_func_end sub_808C7B4 thumb_func_start sub_808C7E0 @@ -2716,7 +2716,7 @@ _0808CE18: ldr r1, [r4] strb r0, [r1, 0x4] movs r0, 0x1C - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl StorageGetCurrentBox ldr r1, _0808CE58 @ =gUnknown_20397B8 strb r0, [r1] @@ -2767,7 +2767,7 @@ _0808CE8C: ldr r1, [r4] strb r0, [r1, 0x4] movs r0, 0x1C - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, _0808CEC4 @ =c2_Box bl SetMainCallback2 _0808CEB6: @@ -3035,7 +3035,7 @@ _0808D0D6: movs r0, 0x1 movs r1, 0xB movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame b _0808D20C .align 2, 0 _0808D100: .4byte 0x05000080 @@ -4700,7 +4700,7 @@ _0808DF24: adds r0, 0x1 strb r0, [r1] _0808DF3A: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -5151,7 +5151,7 @@ _0808E2E8: adds r0, r1 ldrh r0, [r0] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 cmp r0, 0 bne _0808E314 @@ -5479,7 +5479,7 @@ _0808E59C: .align 2, 0 _0808E5B8: .4byte gUnknown_20397B0 _0808E5BC: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -5504,7 +5504,7 @@ _0808E5E0: adds r0, r1 ldrh r0, [r0] movs r1, 0x1 - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6284,7 +6284,7 @@ _0808EC40: .align 2, 0 _0808EC50: .4byte gMain _0808EC54: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -6426,7 +6426,7 @@ _0808ED74: .align 2, 0 _0808ED84: .4byte gMain _0808ED88: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -6643,7 +6643,7 @@ _0808EF56: mov r0, sp ldrh r0, [r0] movs r1, 0x1 - bl sub_809A1D8 + bl RemoveBagItem _0808EF60: add sp, 0x4 pop {r0} @@ -6681,7 +6681,7 @@ sub_808EF8C: @ 808EF8C movs r0, 0x3 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, _0808EFC0 @ =gUnknown_83CE4D0 ldr r1, _0808EFC4 @ =0x0600f800 bl LZ77UnCompVram @@ -6724,7 +6724,7 @@ sub_808EFE4: @ 808EFE4 movs r0, 0x1 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, _0808F038 @ =gUnknown_83CE5FC ldr r5, _0808F03C @ =gUnknown_20397B0 ldr r1, [r5] @@ -7229,7 +7229,7 @@ sub_808F3F8: @ 808F3F8 cmp r2, 0 beq _0808F48C lsls r0, r2, 3 - ldr r1, _0808F470 @ =gUnknown_82350AC + ldr r1, _0808F470 @ =gMonFrontPicTable adds r0, r1 ldr r5, _0808F474 @ =0x000022bc adds r1, r4, r5 @@ -7270,7 +7270,7 @@ sub_808F3F8: @ 808F3F8 .align 2, 0 _0808F468: .4byte gUnknown_20397B0 _0808F46C: .4byte 0x00002238 -_0808F470: .4byte gUnknown_82350AC +_0808F470: .4byte gMonFrontPicTable _0808F474: .4byte 0x000022bc _0808F478: .4byte 0x00000cd8 _0808F47C: .4byte 0x0000223c @@ -8165,7 +8165,7 @@ sub_808FB68: @ 808FB68 movs r0, 0x1 movs r1, 0x2 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x20 str r0, [sp] movs r0, 0x14 @@ -8311,7 +8311,7 @@ _0808FC7C: movs r0, 0x1 movs r1, 0x2 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 @@ -8345,7 +8345,7 @@ sub_808FCE8: @ 808FCE8 str r1, [sp, 0x8] movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu lsls r4, 24 asrs r4, 24 adds r0, r4, 0 @@ -8363,7 +8363,7 @@ sub_808FD20: @ 808FD20 push {lr} movs r0, 0x1 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram pop {r0} @@ -10686,7 +10686,7 @@ _08090EC6: ldr r0, [r4] ldr r0, [r0] mov r8, r0 - ldr r5, _08090FB8 @ =gUnknown_825E074 + ldr r5, _08090FB8 @ =gSineTable mov r0, r9 adds r1, r3, r0 ldrb r0, [r1] @@ -10803,7 +10803,7 @@ _08090FA0: _08090FAC: .4byte 0x00000c59 _08090FB0: .4byte 0x00000afc _08090FB4: .4byte 0x00000a68 -_08090FB8: .4byte gUnknown_825E074 +_08090FB8: .4byte gSineTable _08090FBC: .4byte sub_80911B0 _08090FC0: .4byte SpriteCallbackDummy thumb_func_end sub_8090E74 @@ -12046,7 +12046,7 @@ _08091938: str r0, [sp] movs r0, 0x2 movs r2, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap movs r0, 0x2 bl CopyBgTilemapBufferToVram add sp, 0x4 @@ -16876,7 +16876,7 @@ _08093EF2: beq _08093F78 ldr r3, _08093F74 @ =0x00000d61 adds r4, r3 - bl ItemId_GetItem + bl ItemId_GetName adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 @@ -18961,7 +18961,7 @@ sub_8094E88: @ 8094E88 movs r1, 0x1 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r0, [r5] @@ -19077,7 +19077,7 @@ sub_8095024: @ 8095024 adds r0, r4 ldrb r0, [r0] movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -21364,7 +21364,7 @@ sub_80961A8: @ 80961A8 ldr r1, _080961C0 @ =0x00002224 adds r0, r1 ldrh r0, [r0] - bl ItemId_GetItem + bl ItemId_GetName pop {r1} bx r1 .align 2, 0 @@ -22054,7 +22054,7 @@ _080966BA: movs r1, 0x2 adds r2, r4, 0 movs r3, 0x2 - bl sub_812E62C + bl AddTextPrinterParameterized5 add sp, 0x14 pop {r4} pop {r0} @@ -22569,7 +22569,7 @@ _08096AA2: lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x22] - ldr r1, _08096B08 @ =gUnknown_825E074 + ldr r1, _08096B08 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 @@ -22605,7 +22605,7 @@ _08096B00: pop {r0} bx r0 .align 2, 0 -_08096B08: .4byte gUnknown_825E074 +_08096B08: .4byte gSineTable _08096B0C: .4byte sub_80969BC thumb_func_end sub_8096A74 @@ -22650,7 +22650,7 @@ _08096B3E: lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x22] - ldr r1, _08096BA4 @ =gUnknown_825E074 + ldr r1, _08096BA4 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 @@ -22687,7 +22687,7 @@ _08096B9E: pop {r0} bx r0 .align 2, 0 -_08096BA4: .4byte gUnknown_825E074 +_08096BA4: .4byte gSineTable _08096BA8: .4byte SpriteCallbackDummy thumb_func_end sub_8096B10 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 8db247b2b..60062910c 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -107,7 +107,7 @@ _081345D0: beq _08134604 _081345D4: movs r0, 0x6 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r2, _081345F8 @ =gUnknown_203B140 ldr r0, [r2] ldr r3, _081345FC @ =0x00003214 @@ -128,7 +128,7 @@ _081345FC: .4byte 0x00003214 _08134600: .4byte 0x00003234 _08134604: movs r0, 0x6 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, [r4] ldr r3, _08134628 @ =0x00003214 adds r0, r3 @@ -149,7 +149,7 @@ _0813462C: .4byte 0x0000321c _08134630: .4byte 0x00003234 _08134634: movs r0, 0x8 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, [r4] ldr r3, _08134710 @ =0x00003214 adds r0, r3 @@ -3549,7 +3549,7 @@ _08136264: ldr r0, [r6] ldr r4, _08136328 @ =0x00003088 adds r0, r4 - ldr r1, _0813632C @ =gUnknown_8416223 + ldr r1, _0813632C @ =gText_Lv bl StringCopy ldr r0, [r6] adds r0, r4 @@ -3580,14 +3580,14 @@ _0813631C: .4byte 0x00003290 _08136320: .4byte 0x0000ffff _08136324: .4byte 0x0000306c _08136328: .4byte 0x00003088 -_0813632C: .4byte gUnknown_8416223 +_0813632C: .4byte gText_Lv _08136330: .4byte 0x00003074 _08136334: .4byte gUnknown_84161EF _08136338: ldr r1, [r6] ldr r2, _0813634C @ =0x00003074 adds r1, r2 - bl sub_8099E90 + bl CopyItemName _08136342: add sp, 0x14 pop {r4-r7} @@ -4180,7 +4180,7 @@ _08136812: adds r1, r4, r3 ldr r0, [r6] adds r0, r1 - ldr r5, _081368A4 @ =gUnknown_8416213 + ldr r5, _081368A4 @ =gText_ThreeHyphens adds r1, r5, 0 bl StringCopy ldr r0, _081368A8 @ =0x00003188 @@ -4209,7 +4209,7 @@ _08136894: .4byte gUnknown_841620E _08136898: .4byte 0x000030b8 _0813689C: .4byte gUnknown_8416210 _081368A0: .4byte 0x0000316c -_081368A4: .4byte gUnknown_8416213 +_081368A4: .4byte gText_ThreeHyphens _081368A8: .4byte 0x00003188 _081368AC: .4byte gUnknown_203B144 _081368B0: @@ -4399,7 +4399,7 @@ _081369D0: ldr r1, _08136A68 @ =0x0000316c adds r0, r1 adds r0, r6, r0 - ldr r1, _08136A6C @ =gUnknown_8416213 + ldr r1, _08136A6C @ =gText_ThreeHyphens bl StringCopy b _08136A84 .align 2, 0 @@ -4411,7 +4411,7 @@ _08136A5C: .4byte 0x00003258 _08136A60: .4byte gUnknown_203B144 _08136A64: .4byte gBattleMoves _08136A68: .4byte 0x0000316c -_08136A6C: .4byte gUnknown_8416213 +_08136A6C: .4byte gText_ThreeHyphens _08136A70: lsls r4, r7, 2 adds r0, r4, r7 @@ -4441,7 +4441,7 @@ _08136A84: ldr r2, _08136AC0 @ =0x00003188 adds r0, r2 adds r0, r3, r0 - ldr r1, _08136AC4 @ =gUnknown_8416213 + ldr r1, _08136AC4 @ =gText_ThreeHyphens bl StringCopy b _08136ADA .align 2, 0 @@ -4450,7 +4450,7 @@ _08136AB4: .4byte gBattleMoves _08136AB8: .4byte gUnknown_203B140 _08136ABC: .4byte 0x00003258 _08136AC0: .4byte 0x00003188 -_08136AC4: .4byte gUnknown_8416213 +_08136AC4: .4byte gText_ThreeHyphens _08136AC8: adds r0, r4, r7 ldr r4, _08136AE8 @ =0x00003188 @@ -4567,7 +4567,7 @@ sub_8136BAC: @ 8136BAC bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes - bl remove_some_task + bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_8136BAC @@ -4808,7 +4808,7 @@ sub_8136DA4: @ 8136DA4 movs r1, 0x2 movs r2, 0x4 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -4853,7 +4853,7 @@ sub_8136DF0: @ 8136DF0 adds r0, r1, 0 movs r1, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -4904,7 +4904,7 @@ sub_8136E50: @ 8136E50 movs r1, 0x2 movs r2, 0x4 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 _08136E9A: ldr r2, [r6] adds r0, r2, r7 @@ -4920,7 +4920,7 @@ _08136E9A: movs r1, 0x2 movs r2, 0x28 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, [r6] ldr r3, _08136F04 @ =0x00003290 adds r0, r3 @@ -4941,7 +4941,7 @@ _08136E9A: movs r1, 0x2 movs r2, 0x69 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 b _08136F28 .align 2, 0 _08136EEC: .4byte gUnknown_203B140 @@ -4965,7 +4965,7 @@ _08136F0C: movs r1, 0x2 movs r2, 0x69 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 _08136F28: ldr r0, _08136F44 @ =gUnknown_203B140 ldr r0, [r0] @@ -5053,7 +5053,7 @@ sub_8136FB0: @ 8136FB0 movs r1, 0x2 movs r2, 0x2F movs r3, 0x13 - bl box_print + bl AddTextPrinterParameterized3 ldr r3, [r6] movs r1, 0xC8 lsls r1, 6 @@ -5077,7 +5077,7 @@ sub_8136FB0: @ 8136FB0 str r1, [sp, 0x8] movs r1, 0x2 movs r3, 0x5 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r6] ldr r2, _08137064 @ =0x00003003 adds r0, r1, r2 @@ -5090,7 +5090,7 @@ sub_8136FB0: @ 8136FB0 movs r1, 0x2 movs r2, 0x2F movs r3, 0x31 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r6] ldr r2, _08137064 @ =0x00003003 adds r0, r1, r2 @@ -5103,7 +5103,7 @@ sub_8136FB0: @ 8136FB0 movs r1, 0x2 movs r2, 0x2F movs r3, 0x40 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r6] ldr r2, _08137064 @ =0x00003003 adds r0, r1, r2 @@ -5116,7 +5116,7 @@ sub_8136FB0: @ 8136FB0 movs r1, 0x2 movs r2, 0x2F movs r3, 0x4F - bl box_print + bl AddTextPrinterParameterized3 b _081370CA .align 2, 0 _08137060: .4byte gUnknown_203B140 @@ -5167,7 +5167,7 @@ _081370A6: movs r1, 0x2 movs r2, 0x7 movs r3, 0x2D - bl box_print + bl AddTextPrinterParameterized3 _081370CA: add sp, 0xC pop {r4-r7} @@ -5212,7 +5212,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x4 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5230,7 +5230,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x16 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5248,7 +5248,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x23 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5266,7 +5266,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x30 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5284,7 +5284,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x3D - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5302,7 +5302,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x4A - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r0, r3, r4 @@ -5320,7 +5320,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x57 - bl box_print + bl AddTextPrinterParameterized3 mov r2, r9 ldr r3, [r2] adds r4, r3, r4 @@ -5338,7 +5338,7 @@ sub_81370EC: @ 81370EC str r3, [sp, 0x8] movs r1, 0x2 movs r3, 0x64 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3,r4} mov r8, r3 @@ -5406,7 +5406,7 @@ _081372B0: movs r1, 0x2 movs r2, 0x3 movs r3, 0x75 - bl box_print + bl AddTextPrinterParameterized3 _081372CE: add sp, 0xC pop {r4} @@ -5490,7 +5490,7 @@ _0813733E: movs r1, 0x2 movs r2, 0x3 mov r3, r12 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r10 ldr r0, [r1] ldr r2, _081373A4 @ =0x00003258 @@ -5577,7 +5577,7 @@ _081373EA: movs r1, 0x2 movs r2, 0x24 mov r3, r8 - bl box_print + bl AddTextPrinterParameterized3 mov r0, r10 ldr r3, [r0] adds r4, r3, r4 @@ -5603,7 +5603,7 @@ _081373EA: str r3, [sp, 0x8] movs r1, 0x2 mov r3, r8 - bl box_print + bl AddTextPrinterParameterized3 mov r0, r10 ldr r1, [r0] ldr r2, _081374DC @ =0x00003258 @@ -5623,7 +5623,7 @@ _081373EA: movs r1, 0x2 movs r2, 0x3A mov r3, r8 - bl box_print + bl AddTextPrinterParameterized3 mov r0, r10 ldr r3, [r0] ldr r1, _081374C8 @ =0x00003003 @@ -5645,7 +5645,7 @@ _081373EA: str r3, [sp, 0x8] movs r1, 0x2 mov r3, r8 - bl box_print + bl AddTextPrinterParameterized3 _081374B4: add sp, 0x10 pop {r3-r5} @@ -5928,7 +5928,7 @@ _081376E6: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0xD4 pop {r4-r7} pop {r0} @@ -6052,7 +6052,7 @@ _081377F6: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 b _0813792C .align 2, 0 _08137820: .4byte gUnknown_8419782 @@ -6176,7 +6176,7 @@ _08137906: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _0813792C: add sp, 0xD4 pop {r4-r6} @@ -6341,7 +6341,7 @@ _08137A46: movs r1, 0x2 movs r2, 0 movs r3, 0x3 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 add sp, 0x14 pop {r4-r7} pop {r0} @@ -6377,7 +6377,7 @@ sub_8137A90: @ 8137A90 movs r1, 0x2 movs r2, 0x1A movs r3, 0x7 - bl box_print + bl AddTextPrinterParameterized3 mov r1, r8 ldr r0, [r1] adds r0, r6 @@ -6389,7 +6389,7 @@ sub_8137A90: @ 8137A90 movs r1, 0x2 movs r2, 0x1A movs r3, 0x14 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3} mov r8, r3 @@ -6444,7 +6444,7 @@ _08137B1C: movs r1, 0x2 movs r2, 0x39 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r3, [r7] adds r0, r3, r4 ldrb r0, [r0] @@ -6461,7 +6461,7 @@ _08137B1C: movs r1, 0x2 movs r2, 0x39 movs r3, 0xF - bl box_print + bl AddTextPrinterParameterized3 ldr r2, [r7] adds r4, r2, r4 ldrb r0, [r4] @@ -6486,7 +6486,7 @@ _08137B1C: movs r1, 0x2 movs r2, 0x7 movs r3, 0x2A - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 _08137B9E: add sp, 0x14 pop {r3} @@ -6569,7 +6569,7 @@ sub_8137C18: @ 8137C18 movs r1, 0x2 movs r2, 0x42 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r5] adds r4, r1, r4 ldrb r0, [r4] @@ -6582,7 +6582,7 @@ sub_8137C18: @ 8137C18 movs r1, 0x2 movs r2, 0x2 movs r3, 0xF - bl box_print + bl AddTextPrinterParameterized3 add sp, 0xC pop {r3} mov r8, r3 @@ -6636,7 +6636,7 @@ _08137CA4: adds r3, r2 lsrs r3, 16 movs r2, 0x3 - bl sub_8107D68 + bl blit_move_info_icon _08137CDE: adds r0, r4, 0x1 lsls r0, 24 @@ -6660,7 +6660,7 @@ _08137CDE: lsrs r1, 24 movs r2, 0x3 movs r3, 0x75 - bl sub_8107D68 + bl blit_move_info_icon _08137D0E: pop {r4,r5} pop {r0} @@ -7608,7 +7608,7 @@ _0813846C: _08138470: movs r0, 0x7 _08138472: - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _08138476: pop {r0} bx r0 @@ -8325,7 +8325,7 @@ _08138A62: lsrs r1, 24 movs r2, 0x2F movs r3, 0x23 - bl sub_8107D68 + bl blit_move_info_icon ldr r1, [r6] adds r4, r1, r4 ldr r3, _08138AB8 @ =0x00003221 @@ -8342,7 +8342,7 @@ _08138A62: lsrs r1, 24 movs r2, 0x53 movs r3, 0x23 - bl sub_8107D68 + bl blit_move_info_icon b _08138B0E .align 2, 0 _08138AB0: .4byte 0x00003003 @@ -8365,7 +8365,7 @@ _08138ABC: lsrs r1, 24 movs r2, 0 movs r3, 0x3 - bl sub_8107D68 + bl blit_move_info_icon ldr r2, [r6] adds r4, r2, r4 ldr r1, _08138B1C @ =0x00003221 @@ -8381,7 +8381,7 @@ _08138ABC: lsrs r1, 24 movs r2, 0x24 movs r3, 0x3 - bl sub_8107D68 + bl blit_move_info_icon _08138B04: ldr r0, [r6] adds r0, r5 @@ -8431,7 +8431,7 @@ _08138B48: .4byte 0x00003208 thumb_func_start sub_8138B4C sub_8138B4C: @ 8138B4C push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _08138B84 bl sub_811FA20 @@ -9875,7 +9875,7 @@ _081396A8: movs r1, 0x2 movs r2, 0x7 movs r3, 0x2A - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -10258,7 +10258,7 @@ sub_813995C: @ 813995C adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_810C16C + bl CreateMonPicSprite b _08139A40 .align 2, 0 _081399CC: .4byte gUnknown_203B170 @@ -10290,7 +10290,7 @@ _081399E8: adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_810C16C + bl CreateMonPicSprite b _08139A40 .align 2, 0 _08139A1C: .4byte gUnknown_203B16C @@ -10308,7 +10308,7 @@ _08139A24: adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys _08139A40: lsls r0, 16 lsrs r5, r0, 16 @@ -10593,7 +10593,7 @@ sub_8139C80: @ 8139C80 ldr r1, _08139CA8 @ =0x00003010 adds r0, r1 ldrb r0, [r0] - bl sub_810C214 + bl FreeAndDestroyMonPicSprite ldr r4, _08139CAC @ =gUnknown_203B170 ldr r0, [r4] bl Free @@ -13239,7 +13239,7 @@ _0813B16C: _0813B190: .4byte 0x000032f4 _0813B194: .4byte 0x00003210 _0813B198: - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _0813B1C4 ldr r0, _0813B1C0 @ =gReceivedRemoteLinkPlayers @@ -14088,7 +14088,7 @@ _0813B84E: sub_813B854: @ 813B854 push {lr} sub sp, 0x4 - ldr r3, _0813B86C @ =c2_exit_to_overworld_2_switch + ldr r3, _0813B86C @ =CB2_ReturnToField movs r0, 0 str r0, [sp] movs r1, 0 @@ -14098,7 +14098,7 @@ sub_813B854: @ 813B854 pop {r0} bx r0 .align 2, 0 -_0813B86C: .4byte c2_exit_to_overworld_2_switch +_0813B86C: .4byte CB2_ReturnToField thumb_func_end sub_813B854 .align 2, 0 @ Don't pad with nop. diff --git a/asm/prof_pc.s b/asm/prof_pc.s deleted file mode 100644 index 9c9dfa79c..000000000 --- a/asm/prof_pc.s +++ /dev/null @@ -1,204 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80CA3D8 -sub_80CA3D8: @ 80CA3D8 - push {lr} - ldr r0, _080CA3F4 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _080CA3FC - movs r0, 0 - bl sub_8088EDC - ldr r1, _080CA3F8 @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl sub_8088EDC - b _080CA40C - .align 2, 0 -_080CA3F4: .4byte gSpecialVar_0x8004 -_080CA3F8: .4byte gSpecialVar_0x8005 -_080CA3FC: - movs r0, 0 - bl pokedex_count - ldr r1, _080CA41C @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl pokedex_count -_080CA40C: - ldr r1, _080CA420 @ =gSpecialVar_0x8006 - strh r0, [r1] - bl sub_806E25C - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_080CA41C: .4byte gSpecialVar_0x8005 -_080CA420: .4byte gSpecialVar_0x8006 - thumb_func_end sub_80CA3D8 - - thumb_func_start sub_80CA424 -sub_80CA424: @ 80CA424 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _080CA440 @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] - cmp r2, 0x9 - bhi _080CA436 - b _080CA50C -_080CA436: - cmp r2, 0x13 - bhi _080CA448 - ldr r0, _080CA444 @ =gUnknown_81A6D6D - b _080CA51A - .align 2, 0 -_080CA440: .4byte gSpecialVar_Result -_080CA444: .4byte gUnknown_81A6D6D -_080CA448: - cmp r2, 0x1D - bhi _080CA454 - ldr r0, _080CA450 @ =gUnknown_81A6DDF - b _080CA51A - .align 2, 0 -_080CA450: .4byte gUnknown_81A6DDF -_080CA454: - cmp r2, 0x27 - bhi _080CA460 - ldr r0, _080CA45C @ =gUnknown_81A6E36 - b _080CA51A - .align 2, 0 -_080CA45C: .4byte gUnknown_81A6E36 -_080CA460: - cmp r2, 0x31 - bhi _080CA46C - ldr r0, _080CA468 @ =gUnknown_81A6EA4 - b _080CA51A - .align 2, 0 -_080CA468: .4byte gUnknown_81A6EA4 -_080CA46C: - cmp r2, 0x3B - bhi _080CA478 - ldr r0, _080CA474 @ =gUnknown_81A6F0B - b _080CA51A - .align 2, 0 -_080CA474: .4byte gUnknown_81A6F0B -_080CA478: - cmp r2, 0x45 - bhi _080CA484 - ldr r0, _080CA480 @ =gUnknown_81A6F71 - b _080CA51A - .align 2, 0 -_080CA480: .4byte gUnknown_81A6F71 -_080CA484: - cmp r2, 0x4F - bhi _080CA490 - ldr r0, _080CA48C @ =gUnknown_81A6FAB - b _080CA51A - .align 2, 0 -_080CA48C: .4byte gUnknown_81A6FAB -_080CA490: - cmp r2, 0x59 - bhi _080CA49C - ldr r0, _080CA498 @ =gUnknown_81A6FF1 - b _080CA51A - .align 2, 0 -_080CA498: .4byte gUnknown_81A6FF1 -_080CA49C: - cmp r2, 0x63 - bhi _080CA4A8 - ldr r0, _080CA4A4 @ =gUnknown_81A7031 - b _080CA51A - .align 2, 0 -_080CA4A4: .4byte gUnknown_81A7031 -_080CA4A8: - cmp r2, 0x6D - bhi _080CA4B4 - ldr r0, _080CA4B0 @ =gUnknown_81A7063 - b _080CA51A - .align 2, 0 -_080CA4B0: .4byte gUnknown_81A7063 -_080CA4B4: - cmp r2, 0x77 - bhi _080CA4C0 - ldr r0, _080CA4BC @ =gUnknown_81A70A5 - b _080CA51A - .align 2, 0 -_080CA4BC: .4byte gUnknown_81A70A5 -_080CA4C0: - cmp r2, 0x81 - bhi _080CA4CC - ldr r0, _080CA4C8 @ =gUnknown_81A70D8 - b _080CA51A - .align 2, 0 -_080CA4C8: .4byte gUnknown_81A70D8 -_080CA4CC: - cmp r2, 0x8B - bhi _080CA4D8 - ldr r0, _080CA4D4 @ =gUnknown_81A7108 - b _080CA51A - .align 2, 0 -_080CA4D4: .4byte gUnknown_81A7108 -_080CA4D8: - cmp r2, 0x95 - bls _080CA4F6 - cmp r2, 0x96 - bne _080CA508 - movs r0, 0x97 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetSetPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _080CA500 -_080CA4F6: - ldr r0, _080CA4FC @ =gUnknown_81A7137 - b _080CA51A - .align 2, 0 -_080CA4FC: .4byte gUnknown_81A7137 -_080CA500: - ldr r1, _080CA504 @ =gSpecialVar_Result - b _080CA514 - .align 2, 0 -_080CA504: .4byte gSpecialVar_Result -_080CA508: - cmp r2, 0x97 - beq _080CA514 -_080CA50C: - ldr r0, _080CA510 @ =gUnknown_81A6D17 - b _080CA51A - .align 2, 0 -_080CA510: .4byte gUnknown_81A6D17 -_080CA514: - movs r0, 0x1 - strh r0, [r1] - ldr r0, _080CA520 @ =gUnknown_81A7175 -_080CA51A: - pop {r1} - bx r1 - .align 2, 0 -_080CA520: .4byte gUnknown_81A7175 - thumb_func_end sub_80CA424 - - thumb_func_start sub_80CA524 -sub_80CA524: @ 80CA524 - push {lr} - ldr r0, _080CA538 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - bl sub_80CA424 - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_080CA538: .4byte gSpecialVar_0x8004 - thumb_func_end sub_80CA524 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/psychic.s b/asm/psychic.s new file mode 100644 index 000000000..ef0fc1385 --- /dev/null +++ b/asm/psychic.s @@ -0,0 +1,2180 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B2ECC +sub_80B2ECC: @ 80B2ECC + push {r4-r7,lr} + adds r6, r0, 0 + ldr r0, _080B2F84 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B2EE8 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B2EFE +_080B2EE8: + ldrb r1, [r6, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r6, 0x5] + adds r1, r6, 0 + adds r1, 0x43 + movs r0, 0xC8 + strb r0, [r1] +_080B2EFE: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B2F5A + movs r0, 0x1 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + adds r0, r4, 0 + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B2F3C + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8072E48 +_080B2F3C: + movs r0, 0x2 + adds r4, r0, 0 + eors r4, r7 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B2F5A + movs r0, 0x1 + eors r5, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8072E48 +_080B2F5A: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B2F90 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080B2F90 + ldr r0, _080B2F84 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B2F88 + movs r0, 0x48 + strh r0, [r6, 0x20] + movs r0, 0x50 + b _080B2FCA + .align 2, 0 +_080B2F84: .4byte gBattleAnimAttacker +_080B2F88: + movs r0, 0xB0 + strh r0, [r6, 0x20] + movs r0, 0x28 + b _080B2FCA +_080B2F90: + ldr r5, _080B3000 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B2FA6 + ldr r1, _080B3004 @ =gBattleAnimArgs + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080B2FA6: + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080B3004 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 +_080B2FCA: + strh r0, [r6, 0x22] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B2FDC + ldrh r0, [r6, 0x22] + adds r0, 0x9 + strh r0, [r6, 0x22] +_080B2FDC: + ldr r0, _080B3004 @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x2E] + ldr r1, _080B3008 @ =sub_80B300C + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B3000: .4byte gBattleAnimAttacker +_080B3004: .4byte gBattleAnimArgs +_080B3008: .4byte sub_80B300C + thumb_func_end sub_80B2ECC + + thumb_func_start sub_80B300C +sub_80B300C: @ 80B300C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0xD + bne _080B3038 + ldr r0, _080B3034 @ =sub_80B3044 + str r0, [r4, 0x1C] + b _080B303C + .align 2, 0 +_080B3034: .4byte sub_80B3044 +_080B3038: + adds r0, r1, 0x1 + strh r0, [r4, 0x34] +_080B303C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B300C + + thumb_func_start sub_80B3044 +sub_80B3044: @ 80B3044 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080B30A2 + movs r0, 0 + strh r0, [r3, 0x30] + ldrh r4, [r3, 0x2E] + ldr r1, _080B30A8 @ =gPlttBufferFaded + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 1 + adds r0, r1 + ldrh r7, [r0] + movs r5, 0x8 + adds r6, r1, 0 + adds r1, r4, 0x7 + lsls r0, r4, 1 + adds r0, r6 + adds r2, r0, 0 + adds r2, 0x10 + lsls r1, 1 + adds r1, r6 +_080B307A: + ldrh r0, [r1] + strh r0, [r2] + subs r1, 0x2 + subs r2, 0x2 + subs r5, 0x1 + cmp r5, 0 + bgt _080B307A + adds r0, r4, 0x1 + lsls r0, 1 + adds r0, r6 + strh r7, [r0] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080B30A2 + ldr r0, _080B30AC @ =sub_80B30B0 + str r0, [r3, 0x1C] +_080B30A2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B30A8: .4byte gPlttBufferFaded +_080B30AC: .4byte sub_80B30B0 + thumb_func_end sub_80B3044 + + thumb_func_start sub_80B30B0 +sub_80B30B0: @ 80B30B0 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldrh r0, [r5, 0x34] + subs r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B3156 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B3146 + movs r0, 0x1 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B3118 + ldr r2, _080B315C @ =gSprites + ldr r0, _080B3160 @ =gBattlerSpriteIds + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080B3118: + movs r0, 0x2 + adds r4, r0, 0 + eors r4, r6 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B3146 + ldr r2, _080B315C @ =gSprites + ldr r0, _080B3160 @ =gBattlerSpriteIds + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080B3146: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B3164 @ =sub_80B3168 + str r0, [r5, 0x1C] +_080B3156: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B315C: .4byte gSprites +_080B3160: .4byte gBattlerSpriteIds +_080B3164: .4byte sub_80B3168 + thumb_func_end sub_80B30B0 + + thumb_func_start sub_80B3168 +sub_80B3168: @ 80B3168 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B31C0 + movs r0, 0x1 + bl GetBattlerAtPosition + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B31A6 + adds r0, r5, 0 + bl sub_8073128 +_080B31A6: + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl sub_8072DF0 + lsls r0, 24 + cmp r0, 0 + beq _080B31C0 + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8073128 +_080B31C0: + ldr r0, _080B31CC @ =DestroyAnimSprite + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B31CC: .4byte DestroyAnimSprite + thumb_func_end sub_80B3168 + + thumb_func_start sub_80B31D0 +sub_80B31D0: @ 80B31D0 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B325C + ldr r5, _080B321C @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r5, r1] + movs r6, 0 + cmp r0, 0 + bne _080B31EA + movs r6, 0x1 +_080B31EA: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B3232 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080B3232 + ldr r0, _080B3220 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080B3224 + ldrh r0, [r5] + movs r1, 0x48 + subs r1, r0 + strh r1, [r4, 0x20] + ldrh r0, [r5, 0x2] + adds r0, 0x50 + strh r0, [r4, 0x22] + b _080B3254 + .align 2, 0 +_080B321C: .4byte gBattleAnimArgs +_080B3220: .4byte gBattleAnimAttacker +_080B3224: + ldrh r0, [r5] + adds r0, 0xB0 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + adds r0, 0x28 + strh r0, [r4, 0x22] + b _080B3254 +_080B3232: + ldr r0, _080B3248 @ =gBattleAnimArgs + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B324C + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8075160 + b _080B3254 + .align 2, 0 +_080B3248: .4byte gBattleAnimArgs +_080B324C: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8075114 +_080B3254: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B3270 +_080B325C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + beq _080B3270 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080B3270: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B31D0 + + thumb_func_start sub_80B3278 +sub_80B3278: @ 80B3278 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B32C0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B32C8 + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r5, 0x20] + subs r0, 0x28 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r0, 0xA + strh r0, [r5, 0x22] + ldr r0, _080B32C4 @ =0x0000ffff + b _080B32D6 + .align 2, 0 +_080B32C0: .4byte gBattleAnimAttacker +_080B32C4: .4byte 0x0000ffff +_080B32C8: + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + subs r0, 0xA + strh r0, [r5, 0x22] + movs r0, 0x1 +_080B32D6: + strh r0, [r5, 0x30] + ldr r1, _080B32EC @ =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B32F0 @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B32EC: .4byte DestroyAnimSprite +_080B32F0: .4byte sub_8074F6C + thumb_func_end sub_80B3278 + + thumb_func_start sub_80B32F4 +sub_80B32F4: @ 80B32F4 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r6, _080B3378 @ =gBattleAnimAttacker + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + lsls r1, 15 + lsrs r4, r1, 16 + ldrb r0, [r6] + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + asrs r1, 1 + negs r1, r1 + lsls r1, 16 + lsrs r7, r1, 16 + ldrb r0, [r6] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B333A + lsls r0, r4, 16 + negs r0, r0 + lsrs r4, r0, 16 +_080B333A: + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + strh r0, [r5, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bgt _080B3366 + movs r0, 0x10 + strh r0, [r5, 0x22] +_080B3366: + ldr r1, _080B337C @ =sub_80B3384 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r0, _080B3380 @ =sub_8074F6C + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B3378: .4byte gBattleAnimAttacker +_080B337C: .4byte sub_80B3384 +_080B3380: .4byte sub_8074F6C + thumb_func_end sub_80B32F4 + + thumb_func_start sub_80B3384 +sub_80B3384: @ 80B3384 + push {r4,lr} + adds r4, r0, 0 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080B33B0 @ =gUnknown_83E6FF0 + str r0, [r4, 0x10] + movs r0, 0 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl InitSpriteAffineAnim + ldr r0, _080B33B4 @ =sub_80B33B8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B33B0: .4byte gUnknown_83E6FF0 +_080B33B4: .4byte sub_80B33B8 + thumb_func_end sub_80B3384 + + thumb_func_start sub_80B33B8 +sub_80B33B8: @ 80B33B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B33CA + cmp r0, 0x1 + beq _080B33F8 + b _080B3410 +_080B33CA: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B3410 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x12 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080B3410 +_080B33F8: + ldrh r0, [r4, 0x30] + subs r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B3410 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B3410: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B33B8 + + thumb_func_start sub_80B3418 +sub_80B3418: @ 80B3418 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080B3448 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + strh r1, [r4, 0x8] + ldr r2, _080B344C @ =gUnknown_83E700C + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080B3450 @ =sub_80B3454 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B3448: .4byte gTasks +_080B344C: .4byte gUnknown_83E700C +_080B3450: .4byte sub_80B3454 + thumb_func_end sub_80B3418 + + thumb_func_start sub_80B3454 +sub_80B3454: @ 80B3454 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080B347C @ =gTasks + adds r0, r1 + bl sub_8076308 + lsls r0, 24 + cmp r0, 0 + bne _080B3474 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080B3474: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B347C: .4byte gTasks + thumb_func_end sub_80B3454 + + thumb_func_start sub_80B3480 +sub_80B3480: @ 80B3480 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B34CC @ =gTasks + adds r4, r1, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + strh r1, [r4, 0xC] + ldr r0, _080B34D0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + movs r1, 0x8 + cmp r0, 0 + beq _080B34B4 + movs r1, 0x4 +_080B34B4: + strh r1, [r4, 0xE] + ldrb r1, [r4, 0x8] + ldr r2, _080B34D4 @ =gUnknown_83E702C + adds r0, r4, 0 + bl sub_80762D0 + ldr r0, _080B34D8 @ =sub_80B34DC + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B34CC: .4byte gTasks +_080B34D0: .4byte gBattleAnimAttacker +_080B34D4: .4byte gUnknown_83E702C +_080B34D8: .4byte sub_80B34DC + thumb_func_end sub_80B3480 + + thumb_func_start sub_80B34DC +sub_80B34DC: @ 80B34DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B34FC @ =gTasks + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B3500 + cmp r0, 0x1 + beq _080B351C + b _080B357A + .align 2, 0 +_080B34FC: .4byte gTasks +_080B3500: + adds r0, r4, 0 + bl sub_8076308 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080B357A + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080B357A +_080B351C: + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B3544 + ldr r2, _080B3540 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x8 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080B357A + .align 2, 0 +_080B3540: .4byte gSprites +_080B3544: + ldr r3, _080B3580 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + ldrb r0, [r4, 0x8] + bl sub_8075980 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B357A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3580: .4byte gSprites + thumb_func_end sub_80B34DC + + thumb_func_start sub_80B3584 +sub_80B3584: @ 80B3584 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B360C @ =gTasks + adds r5, r1, r0 + movs r1, 0 + movs r0, 0x10 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + ldr r4, _080B3610 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldrb r0, [r4] + movs r1, 0 + bl sub_8076B2C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + adds r1, r0, 0 + cmp r0, r6 + bcs _080B35EE + adds r1, r6, 0 +_080B35EE: + strh r1, [r5, 0x20] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + ldr r0, _080B3614 @ =sub_80B3618 + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B360C: .4byte gTasks +_080B3610: .4byte gBattleAnimAttacker +_080B3614: .4byte sub_80B3618 + thumb_func_end sub_80B3584 + + thumb_func_start sub_80B3618 +sub_80B3618: @ 80B3618 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B363C @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080B3718 + cmp r1, 0x1 + bgt _080B3640 + cmp r1, 0 + beq _080B364E + b _080B379E + .align 2, 0 +_080B363C: .4byte gTasks +_080B3640: + cmp r1, 0x2 + bne _080B3646 + b _080B377A +_080B3646: + cmp r1, 0x3 + bne _080B364C + b _080B3788 +_080B364C: + b _080B379E +_080B364E: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bgt _080B365E + b _080B379E +_080B365E: + strh r1, [r4, 0xA] + ldr r0, _080B369C @ =gUnknown_83E7044 + movs r2, 0x22 + ldrsh r1, [r4, r2] + movs r3, 0x24 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0xC + ldrsh r1, [r4, r0] + adds r1, 0x8 + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x8 + adds r0, r1 + strh r2, [r0] + cmp r2, 0x40 + beq _080B3702 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B36BC + cmp r0, 0x1 + bgt _080B36A0 + cmp r0, 0 + beq _080B36AA + b _080B3702 + .align 2, 0 +_080B369C: .4byte gUnknown_83E7044 +_080B36A0: + cmp r0, 0x2 + beq _080B36D4 + cmp r0, 0x3 + beq _080B36EC + b _080B3702 +_080B36AA: + ldr r0, _080B36B8 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + b _080B36FA + .align 2, 0 +_080B36B8: .4byte gSprites +_080B36BC: + ldr r0, _080B36D0 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + negs r0, r0 + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x20] + b _080B3700 + .align 2, 0 +_080B36D0: .4byte gSprites +_080B36D4: + ldr r1, _080B36E8 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r4, 0x20] + strh r1, [r0, 0x24] + ldrh r1, [r4, 0x20] + strh r1, [r0, 0x26] + b _080B3702 + .align 2, 0 +_080B36E8: .4byte gSprites +_080B36EC: + ldr r0, _080B3714 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + negs r0, r0 +_080B36FA: + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x20] + negs r0, r0 +_080B3700: + strh r0, [r1, 0x26] +_080B3702: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080B379E + b _080B377A + .align 2, 0 +_080B3714: .4byte gSprites +_080B3718: + ldrh r0, [r4, 0xA] + ands r1, r0 + cmp r1, 0 + beq _080B3728 + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080B372E +_080B3728: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] +_080B372E: + ldrh r1, [r4, 0x10] + lsls r1, 8 + ldrh r0, [r4, 0xE] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + bne _080B379E + movs r5, 0x8 + adds r6, r4, 0 + adds r6, 0x8 +_080B3754: + lsls r0, r5, 1 + adds r1, r6, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x40 + beq _080B3770 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B3784 @ =gSprites + adds r0, r1 + bl DestroySprite +_080B3770: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xC + bls _080B3754 +_080B377A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B379E + .align 2, 0 +_080B3784: .4byte gSprites +_080B3788: + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B379E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B3618 + + thumb_func_start sub_80B37A4 +sub_80B37A4: @ 80B37A4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + subs r0, 0xA + cmp r1, r0 + ble _080B37CE + ldrh r0, [r4, 0x30] + movs r1, 0x1 + ands r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080B37CE: + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080B37E0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B37E0: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B37A4 + + thumb_func_start sub_80B37EC +sub_80B37EC: @ 80B37EC + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080B3828 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080B3818 + ldr r4, _080B382C @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_080B3818: + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x2E] + ldr r0, _080B3830 @ =sub_80B37A4 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3828: .4byte gBattleAnimArgs +_080B382C: .4byte gBattleAnimAttacker +_080B3830: .4byte sub_80B37A4 + thumb_func_end sub_80B37EC + + thumb_func_start sub_80B3834 +sub_80B3834: @ 80B3834 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B3890 @ =gTasks + adds r5, r1, r0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B38D8 + ldr r0, _080B3894 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080B38A4 + ldr r0, _080B3898 @ =0x0000fff6 + strh r0, [r5, 0x1C] + ldr r4, _080B389C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080B38A0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + b _080B3962 + .align 2, 0 +_080B3890: .4byte gTasks +_080B3894: .4byte gBattleAnimArgs +_080B3898: .4byte 0x0000fff6 +_080B389C: .4byte gBattleAnimTarget +_080B38A0: .4byte gBattleAnimAttacker +_080B38A4: + movs r0, 0xA + strh r0, [r5, 0x1C] + ldr r4, _080B38D0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080B38D4 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + b _080B3956 + .align 2, 0 +_080B38D0: .4byte gBattleAnimAttacker +_080B38D4: .4byte gBattleAnimTarget +_080B38D8: + ldr r0, _080B391C @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080B392C + ldr r0, _080B3920 @ =0x0000fff6 + strh r0, [r5, 0x1C] + ldr r4, _080B3924 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080B3928 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x4 + bl sub_8076B2C + adds r0, 0x8 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8076B2C + adds r0, 0x8 + b _080B3962 + .align 2, 0 +_080B391C: .4byte gBattleAnimArgs +_080B3920: .4byte 0x0000fff6 +_080B3924: .4byte gBattleAnimTarget +_080B3928: .4byte gBattleAnimAttacker +_080B392C: + movs r0, 0xA + strh r0, [r5, 0x1C] + ldr r4, _080B3974 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8076B2C + subs r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080B3978 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x5 + bl sub_8076B2C + subs r0, 0x8 +_080B3956: + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8076B2C + subs r0, 0x8 +_080B3962: + strh r0, [r5, 0x24] + movs r0, 0x6 + strh r0, [r5, 0xA] + ldr r0, _080B397C @ =sub_80B3980 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B3974: .4byte gBattleAnimAttacker +_080B3978: .4byte gBattleAnimTarget +_080B397C: .4byte sub_80B3980 + thumb_func_end sub_80B3834 + + thumb_func_start sub_80B3980 +sub_80B3980: @ 80B3980 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B39A0 @ =gTasks + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0 + beq _080B39A4 + cmp r1, 0x1 + beq _080B3A18 + b _080B3A2C + .align 2, 0 +_080B39A0: .4byte gTasks +_080B39A4: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080B3A2C + strh r1, [r5, 0xA] + ldr r0, _080B3A10 @ =gUnknown_83E7114 + movs r2, 0x1E + ldrsh r1, [r5, r2] + movs r3, 0x20 + ldrsh r2, [r5, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080B39F8 + ldr r0, _080B3A14 @ =gSprites + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x22] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x24] + strh r0, [r4, 0x36] + ldrh r0, [r5, 0x1C] + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_8075068 + ldrb r0, [r5, 0xC] + movs r1, 0x3 + ands r1, r0 + adds r0, r4, 0 + bl StartSpriteAffineAnim +_080B39F8: + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _080B3A2C + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080B3A2C + .align 2, 0 +_080B3A10: .4byte gUnknown_83E7114 +_080B3A14: .4byte gSprites +_080B3A18: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + ble _080B3A2C + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B3A2C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B3980 + + thumb_func_start sub_80B3A34 +sub_80B3A34: @ 80B3A34 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B3A52 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080B3A52: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B3A34 + + thumb_func_start sub_80B3A58 +sub_80B3A58: @ 80B3A58 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B3A90 @ =gTasks + adds r4, r1, r0 + ldr r0, _080B3A94 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_807492C + lsls r0, 24 + lsrs r1, r0, 24 + adds r0, r1, 0 + subs r0, 0x20 + strh r0, [r4, 0x24] + ldr r0, _080B3A98 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0x1 + beq _080B3AAE + cmp r0, 0x1 + bgt _080B3A9C + cmp r0, 0 + beq _080B3AA2 + b _080B3ACA + .align 2, 0 +_080B3A90: .4byte gTasks +_080B3A94: .4byte gBattleAnimTarget +_080B3A98: .4byte gBattleAnimArgs +_080B3A9C: + cmp r0, 0x2 + beq _080B3ABA + b _080B3ACA +_080B3AA2: + movs r0, 0x2 + strh r0, [r4, 0x1E] + movs r0, 0x5 + strh r0, [r4, 0x20] + movs r0, 0x40 + b _080B3AC2 +_080B3AAE: + movs r0, 0x2 + strh r0, [r4, 0x1E] + movs r0, 0x5 + strh r0, [r4, 0x20] + movs r0, 0xC0 + b _080B3AC2 +_080B3ABA: + movs r0, 0x4 + strh r0, [r4, 0x1E] + strh r0, [r4, 0x20] + movs r0, 0 +_080B3AC2: + strh r0, [r4, 0x22] + adds r0, r1, 0 + adds r0, 0x20 + strh r0, [r4, 0x26] +_080B3ACA: + movs r1, 0x24 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080B3AD6 + movs r0, 0 + strh r0, [r4, 0x24] +_080B3AD6: + ldr r0, _080B3AF0 @ =gBattleAnimTarget + ldrb r0, [r0] + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B3AFC + ldr r0, _080B3AF4 @ =gBattle_BG1_X + ldrh r0, [r0] + strh r0, [r4, 0x1C] + ldr r0, _080B3AF8 @ =0x04000014 + b _080B3B04 + .align 2, 0 +_080B3AF0: .4byte gBattleAnimTarget +_080B3AF4: .4byte gBattle_BG1_X +_080B3AF8: .4byte 0x04000014 +_080B3AFC: + ldr r0, _080B3B64 @ =gBattle_BG2_X + ldrh r0, [r0] + strh r0, [r4, 0x1C] + ldr r0, _080B3B68 @ =0x04000018 +_080B3B04: + str r0, [sp] + ldrh r1, [r4, 0x24] + lsls r3, r1, 16 + asrs r1, r3, 16 + movs r2, 0x24 + ldrsh r0, [r4, r2] + adds r0, 0x40 + cmp r1, r0 + bgt _080B3B3E + ldr r5, _080B3B6C @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080B3B1E: + asrs r3, 16 + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r4, 0x1C] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r4, 0x1C] + strh r0, [r1] + adds r3, 0x1 + lsls r3, 16 + asrs r1, r3, 16 + movs r2, 0x24 + ldrsh r0, [r4, r2] + adds r0, 0x40 + cmp r1, r0 + ble _080B3B1E +_080B3B3E: + ldr r0, _080B3B70 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + ldr r0, _080B3B74 @ =sub_80B3B78 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B3B64: .4byte gBattle_BG2_X +_080B3B68: .4byte 0x04000018 +_080B3B6C: .4byte gScanlineEffectRegBuffers +_080B3B70: .4byte 0xa2600001 +_080B3B74: .4byte sub_80B3B78 + thumb_func_end sub_80B3A58 + + thumb_func_start sub_80B3B78 +sub_80B3B78: @ 80B3B78 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B3BA0 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080B3C52 + cmp r0, 0x1 + bgt _080B3BA4 + cmp r0, 0 + beq _080B3BAA + b _080B3C6A + .align 2, 0 +_080B3BA0: .4byte gTasks +_080B3BA4: + cmp r0, 0x2 + beq _080B3C64 + b _080B3C6A +_080B3BAA: + ldrh r3, [r5, 0x22] + ldrh r4, [r5, 0x24] + movs r2, 0x24 + ldrsh r1, [r5, r2] + movs r2, 0x26 + ldrsh r0, [r5, r2] + cmp r1, r0 + bgt _080B3C42 + ldr r0, _080B3BF4 @ =gSineTable + mov r9, r0 + movs r7, 0x3 + ldr r1, _080B3BF8 @ =gScanlineEffectRegBuffers + mov r12, r1 + movs r2, 0xF0 + lsls r2, 3 + add r2, r12 + mov r8, r2 +_080B3BCC: + lsls r2, r3, 16 + asrs r0, r2, 15 + add r0, r9 + movs r3, 0 + ldrsh r0, [r0, r3] + movs r3, 0x20 + ldrsh r1, [r5, r3] + asrs r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r3, r0, 16 + adds r6, r2, 0 + cmp r3, 0 + ble _080B3BFC + ldrh r1, [r5, 0xA] + adds r0, r7, 0 + ands r0, r1 + adds r0, r3, r0 + b _080B3C08 + .align 2, 0 +_080B3BF4: .4byte gSineTable +_080B3BF8: .4byte gScanlineEffectRegBuffers +_080B3BFC: + cmp r3, 0 + bge _080B3C0C + ldrh r1, [r5, 0xA] + adds r0, r7, 0 + ands r0, r1 + subs r0, r3, r0 +_080B3C08: + lsls r0, 16 + lsrs r1, r0, 16 +_080B3C0C: + lsls r2, r4, 16 + asrs r2, 16 + lsls r3, r2, 1 + mov r0, r12 + adds r4, r3, r0 + ldrh r0, [r5, 0x1C] + lsls r1, 16 + asrs r1, 16 + adds r0, r1, r0 + strh r0, [r4] + add r3, r8 + ldrh r0, [r5, 0x1C] + adds r1, r0 + strh r1, [r3] + asrs r0, r6, 16 + ldrh r1, [r5, 0x1E] + adds r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r2, 0x1 + lsls r2, 16 + lsrs r4, r2, 16 + asrs r2, 16 + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r2, r0 + ble _080B3BCC +_080B3C42: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x17 + ble _080B3C6A + b _080B3C58 +_080B3C52: + ldr r1, _080B3C60 @ =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_080B3C58: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080B3C6A + .align 2, 0 +_080B3C60: .4byte gScanlineEffect +_080B3C64: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B3C6A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B3B78 + + thumb_func_start sub_80B3C78 +sub_80B3C78: @ 80B3C78 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + mov r8, r4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080B3CAC @ =gTasks + adds r7, r0, r1 + bl AllocOamMatrix + lsls r0, 24 + lsrs r5, r0, 24 + mov r10, r5 + adds r6, r5, 0 + cmp r6, 0xFF + bne _080B3CB0 + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080B3D5A + .align 2, 0 +_080B3CAC: .4byte gTasks +_080B3CB0: + ldr r1, _080B3CD4 @ =gBattleAnimArgs + ldrb r0, [r1] + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r1, r0, 16 + mov r9, r1 + asrs r0, 16 + cmp r0, 0 + bge _080B3CD8 + adds r0, r5, 0 + bl FreeOamMatrix + mov r0, r8 + bl DestroyAnimVisualTask + b _080B3D5A + .align 2, 0 +_080B3CD4: .4byte gBattleAnimArgs +_080B3CD8: + ldr r2, _080B3D68 @ =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r2, 0 + adds r0, 0x1C + adds r0, r4, r0 + ldr r1, _080B3D6C @ =SpriteCallbackDummy + str r1, [r0] + adds r4, r2 + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x1F + ands r6, r0 + lsls r2, r6, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec + ldr r1, _080B3D70 @ =gBattleAnimArgs + ldrb r0, [r1] + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x22] + mov r0, r10 + strh r0, [r7, 0x24] + mov r1, r9 + strh r1, [r7, 0x26] + ldr r0, _080B3D74 @ =sub_80B3D78 + str r0, [r7] +_080B3D5A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B3D68: .4byte gSprites +_080B3D6C: .4byte SpriteCallbackDummy +_080B3D70: .4byte gBattleAnimArgs +_080B3D74: .4byte sub_80B3D78 + thumb_func_end sub_80B3C78 + + thumb_func_start sub_80B3D78 +sub_80B3D78: @ 80B3D78 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B3D9C @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B3DFC + cmp r0, 0x1 + bgt _080B3DA0 + cmp r0, 0 + beq _080B3DAA + b _080B3E7C + .align 2, 0 +_080B3D9C: .4byte gTasks +_080B3DA0: + cmp r0, 0x2 + beq _080B3E4C + cmp r0, 0x3 + beq _080B3E6C + b _080B3E7C +_080B3DAA: + ldrh r0, [r4, 0xA] + adds r0, 0x4 + strh r0, [r4, 0xA] + ldr r1, _080B3DF8 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + lsls r1, 24 + lsrs r1, 24 + bl sub_8076494 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x30 + bne _080B3E7C + b _080B3E5E + .align 2, 0 +_080B3DF8: .4byte gSineTable +_080B3DFC: + ldrh r0, [r4, 0xA] + subs r0, 0x4 + strh r0, [r4, 0xA] + ldr r1, _080B3E48 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + lsls r1, 24 + lsrs r1, 24 + bl sub_8076494 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B3E7C + b _080B3E5E + .align 2, 0 +_080B3E48: .4byte gSineTable +_080B3E4C: + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B3E68 @ =gSprites + adds r0, r1 + bl obj_delete_but_dont_free_vram +_080B3E5E: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B3E7C + .align 2, 0 +_080B3E68: .4byte gSprites +_080B3E6C: + ldrh r0, [r4, 0x24] + lsls r0, 24 + lsrs r0, 24 + bl FreeOamMatrix + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B3E7C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B3D78 + + thumb_func_start sub_80B3E84 +sub_80B3E84: @ 80B3E84 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080B3EFC + cmp r0, 0x1 + bgt _080B3E9A + cmp r0, 0 + beq _080B3EA4 + b _080B3FA4 +_080B3E9A: + cmp r0, 0x2 + beq _080B3F2E + cmp r0, 0x3 + beq _080B3F8E + b _080B3FA4 +_080B3EA4: + ldr r4, _080B3EF8 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B3ED2 + ldrh r0, [r5, 0x22] + adds r0, 0xC + strh r0, [r5, 0x22] +_080B3ED2: + movs r0, 0x8 + strh r0, [r5, 0x30] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldrh r0, [r5, 0x30] + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + b _080B3F26 + .align 2, 0 +_080B3EF8: .4byte gBattleAnimAttacker +_080B3EFC: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B3FA4 + movs r0, 0x40 + negs r0, r0 + bl sub_8073A44 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xC4 + bl PlaySE12WithPanning + adds r0, r5, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim +_080B3F26: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080B3FA4 +_080B3F2E: + ldrh r0, [r5, 0x32] + adds r1, r0, 0x1 + strh r1, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B3F72 + movs r0, 0 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x30] + subs r1, 0x1 + strh r1, [r5, 0x30] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B3F72 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080B3F72: + movs r0, 0xE0 + lsls r0, 2 + adds r2, r0, 0 + ldrh r1, [r5, 0x34] + adds r2, r1 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r5, 0x26] + subs r0, r1 + strh r0, [r5, 0x26] + movs r0, 0xFF + ands r2, r0 + strh r2, [r5, 0x34] + b _080B3FA4 +_080B3F8E: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyAnimSprite +_080B3FA4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B3E84 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/region_map.s b/asm/region_map.s index 168ca47c3..519b766c1 100644 --- a/asm/region_map.s +++ b/asm/region_map.s @@ -118,13 +118,13 @@ sub_80BFEDC: @ 80BFEDC str r2, [r4] cmp r2, 0 bne _080BFF08 - ldr r0, _080BFF04 @ =c2_exit_to_overworld_2_switch + ldr r0, _080BFF04 @ =CB2_ReturnToField bl SetMainCallback2 b _080BFF38 .align 2, 0 _080BFEFC: .4byte gUnknown_20399D4 _080BFF00: .4byte 0x000047c0 -_080BFF04: .4byte c2_exit_to_overworld_2_switch +_080BFF04: .4byte CB2_ReturnToField _080BFF08: ldr r1, _080BFF40 @ =gUnknown_2031DE0 movs r0, 0x1 @@ -172,13 +172,13 @@ sub_80BFF50: @ 80BFF50 str r2, [r4] cmp r2, 0 bne _080BFF7C - ldr r0, _080BFF78 @ =c2_exit_to_overworld_2_switch + ldr r0, _080BFF78 @ =CB2_ReturnToField bl SetMainCallback2 b _080BFFB4 .align 2, 0 _080BFF70: .4byte gUnknown_20399D4 _080BFF74: .4byte 0x000047c0 -_080BFF78: .4byte c2_exit_to_overworld_2_switch +_080BFF78: .4byte CB2_ReturnToField _080BFF7C: ldr r1, _080BFFBC @ =gUnknown_2031DE0 movs r0, 0x1 @@ -1487,7 +1487,7 @@ sub_80C0A6C: @ 80C0A6C bl ResetPaletteFade bl FreeAllSpritePalettes bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_80C0A6C @@ -1600,7 +1600,7 @@ _080C0B44: movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 bl PutWindowTilemap movs r0, 0 @@ -1718,7 +1718,7 @@ sub_80C0BB0: @ 80C0BB0 movs r1, 0x2 movs r2, 0xC movs r3, 0x2 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 @@ -3737,7 +3737,7 @@ _080C1CA8: movs r1, 0x2 movs r2, 0x4 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 bl sub_80C3580 lsls r0, 16 lsrs r0, 16 @@ -3750,7 +3750,7 @@ _080C1CA8: movs r1, 0x2 movs r2, 0x2 movs r3, 0xE - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram @@ -6451,7 +6451,7 @@ _080C3300: ldr r1, _080C3338 @ =0x000047bc adds r0, r1 ldr r1, [r0] - ldr r0, _080C333C @ =c2_exit_to_overworld_2_switch + ldr r0, _080C333C @ =CB2_ReturnToField cmp r1, r0 bne _080C331A _080C3318: @@ -6474,7 +6474,7 @@ _080C332C: .align 2, 0 _080C3334: .4byte gUnknown_20399D4 _080C3338: .4byte 0x000047bc -_080C333C: .4byte c2_exit_to_overworld_2_switch +_080C333C: .4byte CB2_ReturnToField _080C3340: .4byte gUnknown_20399E4 _080C3344: .4byte sub_80C3348 thumb_func_end sub_80C31C0 @@ -9815,7 +9815,7 @@ _080C4E48: movs r1, 0 movs r2, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x3 movs r1, 0x2 bl CopyWindowToVram @@ -9860,7 +9860,7 @@ _080C4EA4: movs r1, 0 movs r2, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x4 movs r1, 0x3 bl CopyWindowToVram @@ -10276,12 +10276,12 @@ _080C5220: ldrb r0, [r0, 0x2] cmp r0, 0x1 bne _080C5258 - ldr r0, _080C5254 @ =c2_exit_to_overworld_2_switch + ldr r0, _080C5254 @ =CB2_ReturnToField bl SetMainCallback2 b _080C525E .align 2, 0 _080C5250: .4byte gUnknown_20399FC -_080C5254: .4byte c2_exit_to_overworld_2_switch +_080C5254: .4byte CB2_ReturnToField _080C5258: ldr r0, _080C5274 @ =sub_8124AB0 bl SetMainCallback2 diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s index 6fb09f439..9ec3e3580 100644 --- a/asm/reshow_battle_screen.s +++ b/asm/reshow_battle_screen.s @@ -45,7 +45,7 @@ sub_8077764: @ 8077764 cmp r1, 0 beq _080777BC movs r0, 0x19 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080777DA .align 2, 0 _080777B0: .4byte gPaletteFade @@ -53,7 +53,7 @@ _080777B4: .4byte gBattleScripting _080777B8: .4byte gBattleTypeFlags _080777BC: movs r0, 0x18 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080777DA _080777C4: movs r0, 0x80 @@ -61,11 +61,11 @@ _080777C4: cmp r1, 0 beq _080777D4 movs r0, 0x1A - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 b _080777DA _080777D4: movs r0, 0x17 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 _080777DA: ldr r0, _080777E4 @ =sub_80777E8 bl SetMainCallback2 @@ -123,7 +123,7 @@ _08077860: _08077866: movs r0, 0 bl SetVBlankCallback - bl dp12_8087EA4 + bl ScanlineEffect_Clear bl sub_800F324 movs r0, 0x1 movs r1, 0x1 @@ -142,33 +142,33 @@ _08077866: movs r0, 0x3 bl ShowBg bl ResetPaletteFade - ldr r0, _080778C8 @ =gUnknown_2022974 + ldr r0, _080778C8 @ =gBattle_BG0_X movs r1, 0 strh r1, [r0] - ldr r0, _080778CC @ =gUnknown_2022976 + ldr r0, _080778CC @ =gBattle_BG0_Y strh r1, [r0] - ldr r0, _080778D0 @ =gUnknown_2022978 + ldr r0, _080778D0 @ =gBattle_BG1_X strh r1, [r0] - ldr r0, _080778D4 @ =gUnknown_202297A + ldr r0, _080778D4 @ =gBattle_BG1_Y strh r1, [r0] - ldr r0, _080778D8 @ =gUnknown_202297C + ldr r0, _080778D8 @ =gBattle_BG2_X strh r1, [r0] - ldr r0, _080778DC @ =gUnknown_202297E + ldr r0, _080778DC @ =gBattle_BG2_Y strh r1, [r0] - ldr r0, _080778E0 @ =gUnknown_2022980 + ldr r0, _080778E0 @ =gBattle_BG3_X strh r1, [r0] - ldr r0, _080778E4 @ =gUnknown_2022982 + ldr r0, _080778E4 @ =gBattle_BG3_Y strh r1, [r0] b _08077A8A .align 2, 0 -_080778C8: .4byte gUnknown_2022974 -_080778CC: .4byte gUnknown_2022976 -_080778D0: .4byte gUnknown_2022978 -_080778D4: .4byte gUnknown_202297A -_080778D8: .4byte gUnknown_202297C -_080778DC: .4byte gUnknown_202297E -_080778E0: .4byte gUnknown_2022980 -_080778E4: .4byte gUnknown_2022982 +_080778C8: .4byte gBattle_BG0_X +_080778CC: .4byte gBattle_BG0_Y +_080778D0: .4byte gBattle_BG1_X +_080778D4: .4byte gBattle_BG1_Y +_080778D8: .4byte gBattle_BG2_X +_080778DC: .4byte gBattle_BG2_Y +_080778E0: .4byte gBattle_BG3_X +_080778E4: .4byte gBattle_BG3_Y _080778E8: movs r0, 0 str r0, [sp, 0x4] @@ -661,7 +661,7 @@ _08077CD2: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r5, _08077D98 @ =gMultiuseSpriteTemplate adds r0, r7, 0 movs r1, 0x2 @@ -678,7 +678,7 @@ _08077CD2: adds r1, r4, 0 mov r2, r8 bl CreateSprite - ldr r4, _08077D9C @ =gUnknown_2023D44 + ldr r4, _08077D9C @ =gBattlerSpriteIds adds r4, r7, r4 strb r0, [r4] ldr r5, _08077DA0 @ =gSprites @@ -735,7 +735,7 @@ _08077CD2: _08077D90: .4byte gBattlerPartyIndexes _08077D94: .4byte gEnemyParty _08077D98: .4byte gMultiuseSpriteTemplate -_08077D9C: .4byte gUnknown_2023D44 +_08077D9C: .4byte gBattlerSpriteIds _08077DA0: .4byte gSprites _08077DA4: .4byte SpriteCallbackDummy _08077DA8: .4byte gBattleMonForms @@ -820,7 +820,7 @@ _08077E54: movs r1, 0x50 adds r2, r4, 0 bl CreateSprite - ldr r3, _08077E9C @ =gUnknown_2023D44 + ldr r3, _08077E9C @ =gBattlerSpriteIds strb r0, [r3] ldr r4, _08077EA0 @ =gSprites ldrb r0, [r3] @@ -851,7 +851,7 @@ _08077E54: .align 2, 0 _08077E94: .4byte gMultiuseSpriteTemplate _08077E98: .4byte gUnknown_8239F8C -_08077E9C: .4byte gUnknown_2023D44 +_08077E9C: .4byte gBattlerSpriteIds _08077EA0: .4byte gSprites _08077EA4: .4byte SpriteCallbackDummy _08077EA8: @@ -887,7 +887,7 @@ _08077EA8: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r5, _08077FCC @ =gMultiuseSpriteTemplate adds r0, r7, 0 movs r1, 0x2 @@ -904,7 +904,7 @@ _08077EA8: adds r1, r4, 0 mov r2, r8 bl CreateSprite - ldr r4, _08077FD0 @ =gUnknown_2023D44 + ldr r4, _08077FD0 @ =gBattlerSpriteIds adds r4, r7, r4 strb r0, [r4] ldr r5, _08077FD4 @ =gSprites @@ -958,7 +958,7 @@ _08077EA8: bl StartSpriteAnim _08077F84: ldr r1, _08077FD4 @ =gSprites - ldr r0, _08077FD0 @ =gUnknown_2023D44 + ldr r0, _08077FD0 @ =gBattlerSpriteIds adds r0, r7, r0 ldrb r0, [r0] lsls r2, r0, 4 @@ -993,7 +993,7 @@ _08077FB4: _08077FC4: .4byte gBattlerPartyIndexes _08077FC8: .4byte gPlayerParty _08077FCC: .4byte gMultiuseSpriteTemplate -_08077FD0: .4byte gUnknown_2023D44 +_08077FD0: .4byte gBattlerSpriteIds _08077FD4: .4byte gSprites _08077FD8: .4byte SpriteCallbackDummy _08077FDC: .4byte gBattleMonForms diff --git a/asm/roamer.s b/asm/roamer.s deleted file mode 100644 index d42b34293..000000000 --- a/asm/roamer.s +++ /dev/null @@ -1,531 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8141C54 -sub_8141C54: @ 8141C54 - push {lr} - ldr r0, _08141C84 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08141C88 @ =0x000030d0 - adds r0, r1 - movs r1, 0 - movs r2, 0x1C - bl memset - ldr r1, _08141C8C @ =gUnknown_203F3AE - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] - movs r1, 0 - movs r2, 0 - ldr r0, _08141C90 @ =gUnknown_203F3A8 -_08141C74: - strb r2, [r0] - strb r2, [r0, 0x1] - adds r0, 0x2 - adds r1, 0x1 - cmp r1, 0x2 - bls _08141C74 - pop {r0} - bx r0 - .align 2, 0 -_08141C84: .4byte gSaveBlock1Ptr -_08141C88: .4byte 0x000030d0 -_08141C8C: .4byte gUnknown_203F3AE -_08141C90: .4byte gUnknown_203F3A8 - thumb_func_end sub_8141C54 - - thumb_func_start sub_8141C94 -sub_8141C94: @ 8141C94 - push {r4-r7,lr} - sub sp, 0x10 - ldr r7, _08141CB0 @ =gEnemyParty - bl sub_80CBDB0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _08141CB4 - cmp r0, 0x4 - beq _08141CB8 - movs r6, 0xF3 - b _08141CBA - .align 2, 0 -_08141CB0: .4byte gEnemyParty -_08141CB4: - movs r6, 0xF4 - b _08141CBA -_08141CB8: - movs r6, 0xF5 -_08141CBA: - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0x32 - movs r3, 0x20 - bl CreateMon - ldr r5, _08141D8C @ =gSaveBlock1Ptr - ldr r1, [r5] - ldr r4, _08141D90 @ =0x000030d0 - adds r1, r4 - movs r2, 0 - strh r6, [r1, 0x8] - movs r0, 0x32 - strb r0, [r1, 0xC] - ldr r0, [r5] - adds r0, r4 - strb r2, [r0, 0xD] - ldr r0, [r5] - adds r0, r4 - movs r1, 0x1 - strb r1, [r0, 0x13] - adds r0, r7, 0 - movs r1, 0x42 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - str r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - str r0, [r1, 0x4] - adds r0, r7, 0 - movs r1, 0x3A - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strh r0, [r1, 0xA] - adds r0, r7, 0 - movs r1, 0x16 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0xE] - adds r0, r7, 0 - movs r1, 0x17 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0xF] - adds r0, r7, 0 - movs r1, 0x18 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0x10] - adds r0, r7, 0 - movs r1, 0x21 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0x11] - adds r0, r7, 0 - movs r1, 0x2F - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0x12] - ldr r5, _08141D94 @ =gUnknown_203F3AE - movs r0, 0x3 - strb r0, [r5] - bl Random - ldr r4, _08141D98 @ =gUnknown_8466C58 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - subs r1, r0 - adds r1, r4 - ldrb r0, [r1] - strb r0, [r5, 0x1] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08141D8C: .4byte gSaveBlock1Ptr -_08141D90: .4byte 0x000030d0 -_08141D94: .4byte gUnknown_203F3AE -_08141D98: .4byte gUnknown_8466C58 - thumb_func_end sub_8141C94 - - thumb_func_start sub_8141D9C -sub_8141D9C: @ 8141D9C - push {lr} - bl sub_8141C54 - bl sub_8141C94 - pop {r0} - bx r0 - thumb_func_end sub_8141D9C - - thumb_func_start UpdateLocationHistoryForRoamer -UpdateLocationHistoryForRoamer: @ 8141DAC - ldr r0, _08141DCC @ =gUnknown_203F3A8 - ldrb r1, [r0, 0x2] - strb r1, [r0, 0x4] - ldrb r1, [r0, 0x3] - strb r1, [r0, 0x5] - ldrb r1, [r0] - strb r1, [r0, 0x2] - ldrb r1, [r0, 0x1] - strb r1, [r0, 0x3] - ldr r1, _08141DD0 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x4] - strb r1, [r0] - ldrb r1, [r2, 0x5] - strb r1, [r0, 0x1] - bx lr - .align 2, 0 -_08141DCC: .4byte gUnknown_203F3A8 -_08141DD0: .4byte gSaveBlock1Ptr - thumb_func_end UpdateLocationHistoryForRoamer - - thumb_func_start RoamerMoveToOtherLocationSet -RoamerMoveToOtherLocationSet: @ 8141DD4 - push {r4,r5,lr} - ldr r0, _08141E18 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08141E1C @ =0x000030d0 - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08141E10 - ldr r1, _08141E20 @ =gUnknown_203F3AE - movs r0, 0x3 - strb r0, [r1] - ldr r5, _08141E24 @ =gUnknown_8466C58 - adds r4, r1, 0 -_08141DEE: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - subs r1, r0 - adds r1, r5 - ldrb r1, [r1] - ldrb r0, [r4, 0x1] - cmp r0, r1 - beq _08141DEE - strb r1, [r4, 0x1] -_08141E10: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141E18: .4byte gSaveBlock1Ptr -_08141E1C: .4byte 0x000030d0 -_08141E20: .4byte gUnknown_203F3AE -_08141E24: .4byte gUnknown_8466C58 - thumb_func_end RoamerMoveToOtherLocationSet - - thumb_func_start RoamerMove -RoamerMove: @ 8141E28 - push {r4-r7,lr} - movs r4, 0 - bl Random - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 12 - ands r1, r0 - cmp r1, 0 - bne _08141E42 - bl RoamerMoveToOtherLocationSet - b _08141EB2 -_08141E42: - ldr r0, _08141E94 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08141E98 @ =0x000030d0 - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08141EB2 - ldr r7, _08141E9C @ =gUnknown_203F3AE -_08141E52: - ldr r3, _08141EA0 @ =gUnknown_8466C58 - lsls r0, r4, 3 - subs r2, r0, r4 - adds r1, r2, r3 - ldrb r0, [r7, 0x1] - ldrb r1, [r1] - cmp r0, r1 - bne _08141EA8 - adds r6, r3, 0 - adds r5, r2, 0x1 - ldr r4, _08141EA4 @ =gUnknown_203F3A8 -_08141E68: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, r5 - adds r0, r6 - ldrb r1, [r0] - ldrb r0, [r4, 0x4] - cmp r0, 0x3 - bne _08141E8C - ldrb r0, [r4, 0x5] - cmp r0, r1 - beq _08141E68 -_08141E8C: - cmp r1, 0xFF - beq _08141E68 - strb r1, [r7, 0x1] - b _08141EB2 - .align 2, 0 -_08141E94: .4byte gSaveBlock1Ptr -_08141E98: .4byte 0x000030d0 -_08141E9C: .4byte gUnknown_203F3AE -_08141EA0: .4byte gUnknown_8466C58 -_08141EA4: .4byte gUnknown_203F3A8 -_08141EA8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x18 - bls _08141E52 -_08141EB2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end RoamerMove - - thumb_func_start IsRoamerAt -IsRoamerAt: @ 8141EB8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08141EE4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, _08141EE8 @ =0x000030d0 - adds r0, r3 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08141EF0 - ldr r0, _08141EEC @ =gUnknown_203F3AE - ldrb r3, [r0] - cmp r2, r3 - bne _08141EF0 - ldrb r0, [r0, 0x1] - cmp r1, r0 - bne _08141EF0 - movs r0, 0x1 - b _08141EF2 - .align 2, 0 -_08141EE4: .4byte gSaveBlock1Ptr -_08141EE8: .4byte 0x000030d0 -_08141EEC: .4byte gUnknown_203F3AE -_08141EF0: - movs r0, 0 -_08141EF2: - pop {r1} - bx r1 - thumb_func_end IsRoamerAt - - thumb_func_start CreateRoamerMonInstance -CreateRoamerMonInstance: @ 8141EF8 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _08141F84 @ =gEnemyParty - bl ZeroEnemyPartyMons - ldr r4, _08141F88 @ =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, _08141F8C @ =0x000030d0 - adds r0, r1 - ldrh r1, [r0, 0x8] - ldrb r2, [r0, 0xC] - ldr r3, [r0] - ldr r0, [r0, 0x4] - str r0, [sp] - adds r0, r5, 0 - bl CreateMonWithIVsPersonality - ldr r2, [r4] - ldr r0, _08141F90 @ =0x000030dd - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x37 - bl SetMonData - ldr r2, [r4] - ldr r1, _08141F94 @ =0x000030da - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x39 - bl SetMonData - ldr r2, [r4] - ldr r0, _08141F98 @ =0x000030de - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x16 - bl SetMonData - ldr r2, [r4] - ldr r1, _08141F9C @ =0x000030df - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x17 - bl SetMonData - ldr r2, [r4] - ldr r0, _08141FA0 @ =0x000030e0 - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x18 - bl SetMonData - ldr r2, [r4] - ldr r1, _08141FA4 @ =0x000030e1 - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x21 - bl SetMonData - ldr r2, [r4] - ldr r0, _08141FA8 @ =0x000030e2 - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x2F - bl SetMonData - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141F84: .4byte gEnemyParty -_08141F88: .4byte gSaveBlock1Ptr -_08141F8C: .4byte 0x000030d0 -_08141F90: .4byte 0x000030dd -_08141F94: .4byte 0x000030da -_08141F98: .4byte 0x000030de -_08141F9C: .4byte 0x000030df -_08141FA0: .4byte 0x000030e0 -_08141FA4: .4byte 0x000030e1 -_08141FA8: .4byte 0x000030e2 - thumb_func_end CreateRoamerMonInstance - - thumb_func_start TryStartRoamerEncounter -TryStartRoamerEncounter: @ 8141FAC - push {lr} - ldr r0, _08141FDC @ =gSaveBlock1Ptr - ldr r1, [r0] - ldrb r0, [r1, 0x4] - ldrb r1, [r1, 0x5] - bl IsRoamerAt - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08141FE0 - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - bne _08141FE0 - bl CreateRoamerMonInstance - movs r0, 0x1 - b _08141FE2 - .align 2, 0 -_08141FDC: .4byte gSaveBlock1Ptr -_08141FE0: - movs r0, 0 -_08141FE2: - pop {r1} - bx r1 - thumb_func_end TryStartRoamerEncounter - - thumb_func_start UpdateRoamerHPStatus -UpdateRoamerHPStatus: @ 8141FE8 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x39 - bl GetMonData - ldr r5, _08142014 @ =gSaveBlock1Ptr - ldr r1, [r5] - ldr r4, _08142018 @ =0x000030d0 - adds r1, r4 - strh r0, [r1, 0xA] - adds r0, r6, 0 - movs r1, 0x37 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0xD] - bl RoamerMoveToOtherLocationSet - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08142014: .4byte gSaveBlock1Ptr -_08142018: .4byte 0x000030d0 - thumb_func_end UpdateRoamerHPStatus - - thumb_func_start SetRoamerInactive -SetRoamerInactive: @ 814201C - ldr r0, _0814202C @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08142030 @ =0x000030d0 - adds r0, r1 - movs r1, 0 - strb r1, [r0, 0x13] - bx lr - .align 2, 0 -_0814202C: .4byte gSaveBlock1Ptr -_08142030: .4byte 0x000030d0 - thumb_func_end SetRoamerInactive - - thumb_func_start GetRoamerLocation -GetRoamerLocation: @ 8142034 - ldr r3, _08142040 @ =gUnknown_203F3AE - ldrb r2, [r3] - strb r2, [r0] - ldrb r0, [r3, 0x1] - strb r0, [r1] - bx lr - .align 2, 0 -_08142040: .4byte gUnknown_203F3AE - thumb_func_end GetRoamerLocation - - thumb_func_start sub_8142044 -sub_8142044: @ 8142044 - push {lr} - ldr r0, _08142064 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08142068 @ =0x000030d0 - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08142070 - ldr r1, _0814206C @ =gUnknown_203F3AE - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl get_mapheader_by_bank_and_number - ldrb r0, [r0, 0x14] - b _08142072 - .align 2, 0 -_08142064: .4byte gSaveBlock1Ptr -_08142068: .4byte 0x000030d0 -_0814206C: .4byte gUnknown_203F3AE -_08142070: - movs r0, 0xC5 -_08142072: - pop {r1} - bx r1 - thumb_func_end sub_8142044 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rock.s b/asm/rock.s new file mode 100644 index 000000000..50687a86e --- /dev/null +++ b/asm/rock.s @@ -0,0 +1,1558 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80B4634 +sub_80B4634: @ 80B4634 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080B46A0 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080B4654 + ldr r0, _080B46A4 @ =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_8076D9C +_080B4654: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r4, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r0, 0xE + strh r0, [r5, 0x22] + ldrb r1, [r6, 0x2] + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + strh r4, [r5, 0x2E] + strh r4, [r5, 0x30] + movs r0, 0x4 + strh r0, [r5, 0x32] + movs r0, 0x10 + strh r0, [r5, 0x34] + ldr r0, _080B46A8 @ =0x0000ffba + strh r0, [r5, 0x36] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x38] + ldr r1, _080B46AC @ =sub_80B46B4 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080B46B0 @ =sub_8074BE4 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B46A0: .4byte gBattleAnimArgs +_080B46A4: .4byte gBattleAnimTarget +_080B46A8: .4byte 0x0000ffba +_080B46AC: .4byte sub_80B46B4 +_080B46B0: .4byte sub_8074BE4 + thumb_func_end sub_80B4634 + + thumb_func_start sub_80B46B4 +sub_80B46B4: @ 80B46B4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x38] + ldrh r2, [r4, 0x20] + adds r0, r1, r2 + strh r0, [r4, 0x20] + movs r0, 0xC0 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r0, 0x4 + strh r0, [r4, 0x32] + movs r0, 0x20 + strh r0, [r4, 0x34] + ldr r0, _080B46EC @ =0x0000ffe8 + strh r0, [r4, 0x36] + ldr r1, _080B46F0 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, _080B46F4 @ =sub_8074BE4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B46EC: .4byte 0x0000ffe8 +_080B46F0: .4byte move_anim_8074EE0 +_080B46F4: .4byte sub_8074BE4 + thumb_func_end sub_80B46B4 + + thumb_func_start sub_80B46F8 +sub_80B46F8: @ 80B46F8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080B4720 @ =gBattleAnimArgs + ldrb r1, [r4, 0xA] + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + ldr r0, _080B4724 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B4728 + ldrh r0, [r5, 0x20] + ldrh r1, [r4] + subs r0, r1 + b _080B472E + .align 2, 0 +_080B4720: .4byte gBattleAnimArgs +_080B4724: .4byte gBattleAnimAttacker +_080B4728: + ldrh r0, [r4] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080B472E: + strh r0, [r5, 0x20] + ldr r3, _080B4770 @ =gBattleAnimArgs + ldrh r2, [r3, 0x2] + ldrh r0, [r5, 0x22] + adds r2, r0 + movs r4, 0 + strh r2, [r5, 0x22] + ldrh r0, [r3, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r1, [r3, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + strh r2, [r5, 0x34] + ldrh r0, [r3, 0x6] + adds r2, r0 + strh r2, [r5, 0x36] + adds r0, r5, 0 + bl sub_80754B8 + strh r4, [r5, 0x34] + strh r4, [r5, 0x36] + ldr r0, _080B4774 @ =sub_8074D00 + str r0, [r5, 0x1C] + ldr r1, _080B4778 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4770: .4byte gBattleAnimArgs +_080B4774: .4byte sub_8074D00 +_080B4778: .4byte move_anim_8074EE0 + thumb_func_end sub_80B46F8 + + thumb_func_start sub_80B477C +sub_80B477C: @ 80B477C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B4794 @ =gBattleAnimArgs + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080B4798 + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 + b _080B47A0 + .align 2, 0 +_080B4794: .4byte gBattleAnimArgs +_080B4798: + adds r0, r4, 0 + movs r1, 0 + bl sub_8075114 +_080B47A0: + ldr r1, _080B47BC @ =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080B47C0 @ =sub_80B47C4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B47BC: .4byte gBattleAnimArgs +_080B47C0: .4byte sub_80B47C4 + thumb_func_end sub_80B477C + + thumb_func_start sub_80B47C4 +sub_80B47C4: @ 80B47C4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x38] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080B480A + adds r0, r4, 0 + bl DestroyAnimSprite +_080B480A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B47C4 + + thumb_func_start do_boulder_dust +do_boulder_dust: @ 80B4810 + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r1, _080B48E4 @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B4854 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_080B4854: + ldr r0, _080B48E8 @ =gBattle_BG1_X + strh r5, [r0] + ldr r4, _080B48EC @ =gBattle_BG1_Y + strh r5, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080B48F0 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap + bl sub_807543C + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080B48F4 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080B48F8 @ =gFile_graphics_battle_anims_sprites_261_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080B48B0 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80730C0 +_080B48B0: + ldr r0, _080B48FC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080B48CA + ldr r0, _080B4900 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B48CA + movs r5, 0x1 +_080B48CA: + ldr r0, _080B4904 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + strh r5, [r1, 0x8] + ldr r0, _080B4908 @ =sub_80B490C + str r0, [r1] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B48E4: .4byte 0x00003f42 +_080B48E8: .4byte gBattle_BG1_X +_080B48EC: .4byte gBattle_BG1_Y +_080B48F0: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap +_080B48F4: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet +_080B48F8: .4byte gFile_graphics_battle_anims_sprites_261_palette +_080B48FC: .4byte gBattleAnimArgs +_080B4900: .4byte gBattleAnimAttacker +_080B4904: .4byte gTasks +_080B4908: .4byte sub_80B490C + thumb_func_end do_boulder_dust + + thumb_func_start sub_80B490C +sub_80B490C: @ 80B490C + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B4934 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0 + bne _080B4940 + ldr r1, _080B4938 @ =gBattle_BG1_X + ldr r3, _080B493C @ =0x0000fffa + adds r0, r3, 0 + ldrh r3, [r1] + adds r0, r3 + b _080B4946 + .align 2, 0 +_080B4934: .4byte gTasks +_080B4938: .4byte gBattle_BG1_X +_080B493C: .4byte 0x0000fffa +_080B4940: + ldr r1, _080B4974 @ =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x6 +_080B4946: + strh r0, [r1] + ldr r1, _080B4978 @ =gBattle_BG1_Y + ldr r3, _080B497C @ =0x0000ffff + adds r0, r3, 0 + ldrh r3, [r1] + adds r0, r3 + strh r0, [r1] + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + movs r3, 0x20 + ldrsh r0, [r0, r3] + adds r4, r1, 0 + cmp r0, 0x4 + bls _080B4968 + b _080B4A96 +_080B4968: + lsls r0, 2 + ldr r1, _080B4980 @ =_080B4984 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B4974: .4byte gBattle_BG1_X +_080B4978: .4byte gBattle_BG1_Y +_080B497C: .4byte 0x0000ffff +_080B4980: .4byte _080B4984 + .align 2, 0 +_080B4984: + .4byte _080B4998 + .4byte _080B49DA + .4byte _080B49F4 + .4byte _080B4A36 + .4byte _080B4A58 +_080B4998: + adds r0, r4, r5 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080B4A96 + strh r5, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + adds r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bne _080B4A96 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x1E] + b _080B4A96 +_080B49DA: + adds r0, r4, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x65 + bne _080B4A96 + movs r0, 0x7 + strh r0, [r1, 0x1E] + b _080B4A4C +_080B49F4: + adds r0, r4, r5 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080B4A96 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080B4A96 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080B4A96 +_080B4A36: + mov r0, sp + bl sub_80752A0 + mov r0, sp + ldrb r0, [r0, 0x9] + bl sub_8075358 + ldr r0, _080B4A54 @ =gTasks + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 +_080B4A4C: + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080B4A96 + .align 2, 0 +_080B4A54: .4byte gTasks +_080B4A58: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080B4A6C + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080B4A6C: + ldr r0, _080B4AA0 @ =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, _080B4AA4 @ =gBattle_BG1_Y + strh r1, [r0] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B4A96: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4AA0: .4byte gBattle_BG1_X +_080B4AA4: .4byte gBattle_BG1_Y + thumb_func_end sub_80B490C + + thumb_func_start sub_80B4AA8 +sub_80B4AA8: @ 80B4AA8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B4B24 + ldr r4, _080B4AEC @ =gBattleAnimArgs + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B4AF4 + ldr r0, _080B4AF0 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080B4AF4 + movs r0, 0x98 + lsls r0, 1 + strh r0, [r5, 0x20] + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r5, 0x38] + ldrb r1, [r5, 0x3] + subs r0, 0x40 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x3] + b _080B4AF8 + .align 2, 0 +_080B4AEC: .4byte gBattleAnimArgs +_080B4AF0: .4byte gBattleAnimAttacker +_080B4AF4: + ldr r0, _080B4B18 @ =0x0000ffc0 + strh r0, [r5, 0x20] +_080B4AF8: + ldr r4, _080B4B1C @ =gBattleAnimArgs + ldrh r0, [r4] + strh r0, [r5, 0x22] + ldr r1, _080B4B20 @ =gUnknown_83E7470 + adds r0, r5, 0 + bl SetSubspriteTables + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080B4B80 + .align 2, 0 +_080B4B18: .4byte 0x0000ffc0 +_080B4B1C: .4byte gBattleAnimArgs +_080B4B20: .4byte gUnknown_83E7470 +_080B4B24: + ldrh r1, [r5, 0x30] + ldrh r3, [r5, 0x34] + adds r1, r3 + ldrh r2, [r5, 0x32] + ldrh r0, [r5, 0x36] + adds r2, r0 + lsls r0, r1, 16 + asrs r0, 24 + ldrh r3, [r5, 0x24] + adds r0, r3 + strh r0, [r5, 0x24] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r3, [r5, 0x26] + adds r0, r3 + strh r0, [r5, 0x26] + movs r0, 0xFF + ands r1, r0 + strh r1, [r5, 0x34] + ands r2, r0 + strh r2, [r5, 0x36] + movs r1, 0x38 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B4B6A + movs r2, 0x20 + ldrsh r0, [r5, r2] + movs r3, 0x24 + ldrsh r1, [r5, r3] + adds r0, r1 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + ble _080B4B80 + b _080B4B7C +_080B4B6A: + movs r1, 0x20 + ldrsh r0, [r5, r1] + movs r2, 0x24 + ldrsh r1, [r5, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080B4B80 +_080B4B7C: + ldr r0, _080B4B88 @ =DestroyAnimSprite + str r0, [r5, 0x1C] +_080B4B80: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4B88: .4byte DestroyAnimSprite + thumb_func_end sub_80B4AA8 + + thumb_func_start sub_80B4B8C +sub_80B4B8C: @ 80B4B8C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B4BC4 @ =gBattleAnimArgs + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + adds r0, r4, 0 + movs r1, 0 + bl sub_8075160 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x4] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x36] + ldr r0, _080B4BC8 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080B4BCC @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B4BC4: .4byte gBattleAnimArgs +_080B4BC8: .4byte sub_8075590 +_080B4BCC: .4byte DestroyAnimSprite + thumb_func_end sub_80B4B8C + + thumb_func_start sub_80B4BD0 +sub_80B4BD0: @ 80B4BD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B4C50 @ =gTasks + adds r6, r1, r0 + ldr r5, _080B4C54 @ =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r1, 0xC0 + lsls r1, 13 + adds r0, r1 + lsrs r7, r0, 16 + ldr r4, _080B4C58 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xC0 + lsls r2, 13 + adds r0, r2 + lsrs r0, 16 + mov r8, r0 + ldrb r1, [r5] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080B4C40 + mov r8, r7 +_080B4C40: + bl sub_80B4FB8 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _080B4C5C + movs r0, 0x20 + b _080B4C62 + .align 2, 0 +_080B4C50: .4byte gTasks +_080B4C54: .4byte gBattleAnimAttacker +_080B4C58: .4byte gBattleAnimTarget +_080B4C5C: + lsls r1, r5, 3 + movs r0, 0x30 + subs r0, r1 +_080B4C62: + strh r0, [r6, 0x18] + movs r4, 0 + strh r4, [r6, 0x8] + strh r4, [r6, 0x1E] + strh r4, [r6, 0x1A] + movs r0, 0x1 + strh r0, [r6, 0x20] + movs r1, 0x18 + ldrsh r0, [r6, r1] + cmp r0, 0 + bge _080B4C7A + adds r0, 0x7 +_080B4C7A: + asrs r0, 3 + subs r0, 0x1 + strh r0, [r6, 0x1C] + mov r2, r9 + lsls r0, r2, 3 + strh r0, [r6, 0xC] + lsls r0, r7, 3 + strh r0, [r6, 0xE] + mov r1, r10 + subs r0, r1, r2 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x10] + mov r1, r8 + subs r0, r1, r7 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x12] + strh r4, [r6, 0x14] + strh r4, [r6, 0x16] + movs r0, 0x40 + negs r0, r0 + bl sub_8073A44 + adds r4, r0, 0 + lsls r4, 24 + asrs r4, 8 + lsrs r4, 16 + movs r0, 0x3F + bl sub_8073A44 + lsls r0, 24 + strh r4, [r6, 0x22] + asrs r0, 24 + lsls r4, 16 + asrs r4, 16 + subs r0, r4 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x24] + strh r5, [r6, 0xA] + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x26] + ldr r0, _080B4CFC @ =sub_80B4D00 + str r0, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B4CFC: .4byte sub_80B4D00 + thumb_func_end sub_80B4BD0 + + thumb_func_start sub_80B4D00 +sub_80B4D00: @ 80B4D00 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080B4D24 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080B4D1A + b _080B4E68 +_080B4D1A: + lsls r0, 2 + ldr r1, _080B4D28 @ =_080B4D2C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B4D24: .4byte gTasks +_080B4D28: .4byte _080B4D2C + .align 2, 0 +_080B4D2C: + .4byte _080B4D40 + .4byte _080B4DA4 + .4byte _080B4DAC + .4byte _080B4E08 + .4byte _080B4E5A +_080B4D40: + ldrh r2, [r4, 0x14] + ldrh r0, [r4, 0x10] + subs r2, r0 + strh r2, [r4, 0x14] + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x16] + ldr r3, _080B4DA0 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + lsls r2, 16 + asrs r2, 19 + strh r2, [r0, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080B4D90 + movs r0, 0x14 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B4D90: + ldrh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x9B + bl PlaySE12WithPanning + b _080B4E68 + .align 2, 0 +_080B4DA0: .4byte gSprites +_080B4DA4: + ldrh r0, [r4, 0x1E] + subs r0, 0x1 + strh r0, [r4, 0x1E] + b _080B4E4C +_080B4DAC: + ldrh r0, [r4, 0x1A] + subs r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _080B4DCC + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0x14] + adds r0, r2 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x16] + adds r0, r1 + strh r0, [r4, 0x16] + b _080B4DD6 +_080B4DCC: + strh r0, [r4, 0x14] + strh r0, [r4, 0x16] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B4DD6: + ldr r2, _080B4E04 @ =gSprites + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + b _080B4E68 + .align 2, 0 +_080B4E04: .4byte gSprites +_080B4E08: + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0xC] + adds r0, r2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0xE] + adds r0, r1 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1C + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080B4E46 + movs r0, 0 + strh r0, [r4, 0x1A] + adds r0, r4, 0 + bl sub_80B4E70 + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x22] + adds r1, r0 + strh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xA8 + bl PlaySE12WithPanning +_080B4E46: + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] +_080B4E4C: + lsls r0, 16 + cmp r0, 0 + bne _080B4E68 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B4E68 +_080B4E5A: + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B4E68 + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080B4E68: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B4D00 + + thumb_func_start sub_80B4E70 +sub_80B4E70: @ 80B4E70 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bhi _080B4F60 + lsls r0, 2 + ldr r1, _080B4E8C @ =_080B4E90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B4E8C: .4byte _080B4E90 + .align 2, 0 +_080B4E90: + .4byte _080B4EA4 + .4byte _080B4EB0 + .4byte _080B4EB0 + .4byte _080B4EBC + .4byte _080B4EC8 +_080B4EA4: + ldr r3, _080B4EAC @ =gUnknown_83E74D8 + movs r5, 0 + b _080B4ECC + .align 2, 0 +_080B4EAC: .4byte gUnknown_83E74D8 +_080B4EB0: + ldr r3, _080B4EB8 @ =gUnknown_83E74F0 + movs r5, 0x50 + b _080B4ECC + .align 2, 0 +_080B4EB8: .4byte gUnknown_83E74F0 +_080B4EBC: + ldr r3, _080B4EC4 @ =gUnknown_83E74F0 + movs r5, 0x40 + b _080B4ECC + .align 2, 0 +_080B4EC4: .4byte gUnknown_83E74F0 +_080B4EC8: + ldr r3, _080B4F68 @ =gUnknown_83E74F0 + movs r5, 0x30 +_080B4ECC: + ldrh r1, [r4, 0xC] + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r1, 16 + ldrh r2, [r4, 0xE] + lsls r2, 16 + asrs r2, 19 + lsls r2, 16 + movs r6, 0x20 + ldrsh r0, [r4, r6] + lsls r0, 2 + adds r1, r0 + lsls r1, 16 + lsrs r6, r1, 16 + asrs r1, 16 + lsrs r7, r2, 16 + asrs r2, 16 + adds r0, r3, 0 + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080B4F58 + ldr r1, _080B4F6C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x12 + strh r1, [r0, 0x2E] + movs r2, 0x20 + ldrsh r1, [r4, r2] + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 2 + adds r2, r6, r2 + movs r6, 0xA + ldrsh r3, [r4, r6] + lsls r1, r3, 1 + adds r1, r3 + adds r2, r1 + strh r2, [r0, 0x32] + strh r7, [r0, 0x36] + movs r1, 0xA + ldrsh r2, [r4, r1] + lsls r2, 1 + movs r3, 0x10 + negs r3, r3 + adds r1, r3, 0 + subs r1, r2 + strh r1, [r0, 0x38] + ldrh r3, [r0, 0x4] + lsls r2, r3, 22 + lsrs r2, 22 + adds r2, r5 + ldr r5, _080B4F70 @ =0x000003ff + adds r1, r5, 0 + ands r2, r1 + ldr r1, _080B4F74 @ =0xfffffc00 + ands r1, r3 + orrs r1, r2 + strh r1, [r0, 0x4] + bl sub_8075068 + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] +_080B4F58: + movs r6, 0x20 + ldrsh r0, [r4, r6] + negs r0, r0 + strh r0, [r4, 0x20] +_080B4F60: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B4F68: .4byte gUnknown_83E74F0 +_080B4F6C: .4byte gSprites +_080B4F70: .4byte 0x000003ff +_080B4F74: .4byte 0xfffffc00 + thumb_func_end sub_80B4E70 + + thumb_func_start sub_80B4F78 +sub_80B4F78: @ 80B4F78 + push {r4,lr} + adds r4, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080B4FAA + ldr r0, _080B4FB0 @ =sub_80B4D00 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080B4FA4 + ldr r0, _080B4FB4 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1E] + subs r0, 0x1 + strh r0, [r1, 0x1E] +_080B4FA4: + adds r0, r4, 0 + bl DestroySprite +_080B4FAA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4FB0: .4byte sub_80B4D00 +_080B4FB4: .4byte gTasks + thumb_func_end sub_80B4F78 + + thumb_func_start sub_80B4FB8 +sub_80B4FB8: @ 80B4FB8 + push {lr} + ldr r0, _080B4FE0 @ =gAnimDisableStructPtr + ldr r0, [r0] + ldrb r1, [r0, 0x11] + lsrs r0, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B4FDA + movs r1, 0x1 +_080B4FDA: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B4FE0: .4byte gAnimDisableStructPtr + thumb_func_end sub_80B4FB8 + + thumb_func_start sub_80B4FE4 +sub_80B4FE4: @ 80B4FE4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B501C @ =gBattleAnimArgs + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + ldrh r0, [r5] + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + ldrh r1, [r5, 0x4] + subs r0, r1 + strh r0, [r4, 0x34] + movs r0, 0x3 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080B5020 @ =sub_80B5024 + str r0, [r4, 0x1C] + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B501C: .4byte gBattleAnimArgs +_080B5020: .4byte sub_80B5024 + thumb_func_end sub_80B4FE4 + + thumb_func_start sub_80B5024 +sub_80B5024: @ 80B5024 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldrh r1, [r2, 0x34] + movs r3, 0x34 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080B505C + ldrh r3, [r2, 0x32] + adds r0, r1, r3 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r1, r0 + strh r1, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r1, 16 + cmp r1, 0 + ble _080B506E + movs r0, 0 + strh r0, [r2, 0x34] + b _080B506E +_080B505C: + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B506E + adds r0, r2, 0 + bl DestroyAnimSprite +_080B506E: + pop {r0} + bx r0 + thumb_func_end sub_80B5024 + + thumb_func_start sub_80B5074 +sub_80B5074: @ 80B5074 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080B509C @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B5090 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080B5090: + adds r0, r4, 0 + bl sub_8075DF4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B509C: .4byte gBattleAnimAttacker + thumb_func_end sub_80B5074 + + thumb_func_start sub_80B50A0 +sub_80B50A0: @ 80B50A0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B50EC @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B50F0 @ =gBattleAnimArgs + ldrh r3, [r2] + ldrh r5, [r4, 0x20] + adds r1, r3, r5 + strh r1, [r4, 0x20] + ldrh r1, [r2, 0x2] + adds r0, r1 + strh r0, [r4, 0x22] + strh r3, [r4, 0x30] + strh r1, [r4, 0x32] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x38] + ldrb r1, [r2, 0x6] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080B50F4 @ =sub_80B50F8 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B50EC: .4byte gBattleAnimTarget +_080B50F0: .4byte gBattleAnimArgs +_080B50F4: .4byte sub_80B50F8 + thumb_func_end sub_80B50A0 + + thumb_func_start sub_80B50F8 +sub_80B50F8: @ 80B50F8 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x8 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl __divsi3 + ldrh r1, [r4, 0x24] + adds r1, r0 + strh r1, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + subs r1, r0 + strh r1, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x8C + ble _080B5142 + adds r0, r4, 0 + bl DestroyAnimSprite +_080B5142: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B50F8 + + thumb_func_start sub_80B5148 +sub_80B5148: @ 80B5148 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080B5180 @ =gUnknown_2037EE8 + ldr r0, [r2] + cmp r0, 0x20 + bgt _080B515C + ldr r1, _080B5184 @ =gBattleAnimArgs + movs r0, 0 + strh r0, [r1, 0xE] +_080B515C: + ldr r2, [r2] + adds r0, r2, 0 + subs r0, 0x21 + cmp r0, 0x20 + bhi _080B516C + ldr r1, _080B5184 @ =gBattleAnimArgs + movs r0, 0x1 + strh r0, [r1, 0xE] +_080B516C: + cmp r2, 0x41 + ble _080B5176 + ldr r1, _080B5184 @ =gBattleAnimArgs + movs r0, 0x2 + strh r0, [r1, 0xE] +_080B5176: + adds r0, r3, 0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .align 2, 0 +_080B5180: .4byte gUnknown_2037EE8 +_080B5184: .4byte gBattleAnimArgs + thumb_func_end sub_80B5148 + + thumb_func_start sub_80B5188 +sub_80B5188: @ 80B5188 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080B51E4 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080B51AA + movs r0, 0 + bl sub_8075458 + movs r0, 0xC8 + strh r0, [r5, 0xA] +_080B51AA: + ldr r4, _080B51E8 @ =gBattle_BG3_Y + movs r1, 0xA + ldrsh r0, [r5, r1] + movs r1, 0xA + bl __divsi3 + ldrh r1, [r4] + adds r1, r0 + strh r1, [r4] + ldrh r0, [r5, 0xA] + subs r0, 0x3 + strh r0, [r5, 0xA] + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x78 + bne _080B51D6 + movs r0, 0x1 + bl sub_8075458 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080B51D6: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B51E4: .4byte gTasks +_080B51E8: .4byte gBattle_BG3_Y + thumb_func_end sub_80B5188 + + thumb_func_start sub_80B51EC +sub_80B51EC: @ 80B51EC + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080B5258 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B5218 + movs r0, 0 + bl sub_8075458 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080B525C @ =gBattle_BG3_Y + ldrh r0, [r0] + strh r0, [r4, 0xC] +_080B5218: + ldrh r0, [r4, 0xA] + adds r0, 0x50 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0xA] + ldr r6, _080B525C @ =gBattle_BG3_Y + movs r2, 0xA + ldrsh r1, [r4, r2] + movs r0, 0x4 + bl Cos + ldrh r4, [r4, 0xC] + adds r0, r4 + strh r0, [r6] + ldr r0, _080B5260 @ =gBattleAnimArgs + movs r2, 0xE + ldrsh r1, [r0, r2] + ldr r0, _080B5264 @ =0x00000fff + cmp r1, r0 + bne _080B5250 + movs r0, 0 + strh r0, [r6] + movs r0, 0x1 + bl sub_8075458 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080B5250: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B5258: .4byte gTasks +_080B525C: .4byte gBattle_BG3_Y +_080B5260: .4byte gBattleAnimArgs +_080B5264: .4byte 0x00000fff + thumb_func_end sub_80B51EC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom6.s b/asm/rom6.s index 06c2d30a2..2ac2cc0a4 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -291,10 +291,10 @@ SetUpFieldMove_RockSmash: @ 80C99D8 movs r0, 0 b _080C99FA _080C99EC: - ldr r1, _080C9A00 @ =gUnknown_3005024 - ldr r0, _080C9A04 @ =hm_add_c3_launch_phase_2 + ldr r1, _080C9A00 @ =gFieldCallback2 + ldr r0, _080C9A04 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080C9A08 @ =gUnknown_203B0C4 + ldr r1, _080C9A08 @ =gPostMenuFieldCallback ldr r0, _080C9A0C @ =sub_80C9A10 str r0, [r1] movs r0, 0x1 @@ -302,9 +302,9 @@ _080C99FA: pop {r1} bx r1 .align 2, 0 -_080C9A00: .4byte gUnknown_3005024 -_080C9A04: .4byte hm_add_c3_launch_phase_2 -_080C9A08: .4byte gUnknown_203B0C4 +_080C9A00: .4byte gFieldCallback2 +_080C9A04: .4byte FieldCallback_PrepareFadeInFromMenu +_080C9A08: .4byte gPostMenuFieldCallback _080C9A0C: .4byte sub_80C9A10 thumb_func_end SetUpFieldMove_RockSmash @@ -373,10 +373,10 @@ SetUpFieldMove_Dig: @ 80C9A78 movs r0, 0 b _080C9A98 _080C9A8A: - ldr r1, _080C9A9C @ =gUnknown_3005024 - ldr r0, _080C9AA0 @ =hm_add_c3_launch_phase_2 + ldr r1, _080C9A9C @ =gFieldCallback2 + ldr r0, _080C9AA0 @ =FieldCallback_PrepareFadeInFromMenu str r0, [r1] - ldr r1, _080C9AA4 @ =gUnknown_203B0C4 + ldr r1, _080C9AA4 @ =gPostMenuFieldCallback ldr r0, _080C9AA8 @ =hm2_dig str r0, [r1] movs r0, 0x1 @@ -384,9 +384,9 @@ _080C9A98: pop {r1} bx r1 .align 2, 0 -_080C9A9C: .4byte gUnknown_3005024 -_080C9AA0: .4byte hm_add_c3_launch_phase_2 -_080C9AA4: .4byte gUnknown_203B0C4 +_080C9A9C: .4byte gFieldCallback2 +_080C9AA0: .4byte FieldCallback_PrepareFadeInFromMenu +_080C9AA4: .4byte gPostMenuFieldCallback _080C9AA8: .4byte hm2_dig thumb_func_end SetUpFieldMove_Dig diff --git a/asm/roulette_util.s b/asm/roulette_util.s deleted file mode 100644 index 532bf4684..000000000 --- a/asm/roulette_util.s +++ /dev/null @@ -1,1447 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80D8BE4 -sub_80D8BE4: @ 80D8BE4 - push {lr} - movs r1, 0 - strb r1, [r0] - strh r1, [r0, 0x2] - adds r0, 0x4 - movs r2, 0xC0 - bl memset - pop {r0} - bx r0 - thumb_func_end sub_80D8BE4 - - thumb_func_start sub_80D8BF8 -sub_80D8BF8: @ 80D8BF8 - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0xF - bhi _080D8C14 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r5, r3, r0 - ldrb r7, [r5, 0x4] - lsrs r0, r7, 7 - cmp r0, 0 - beq _080D8C18 -_080D8C14: - movs r0, 0xFF - b _080D8C76 -_080D8C18: - ldrh r0, [r2] - movs r4, 0 - strh r0, [r5, 0x8] - ldrh r0, [r2, 0x2] - strh r0, [r5, 0xA] - ldrb r0, [r2, 0x4] - strb r0, [r5, 0xC] - ldrb r0, [r2, 0x5] - strb r0, [r5, 0xD] - ldrb r0, [r2, 0x6] - strb r0, [r5, 0xE] - ldrb r3, [r2, 0x7] - lsls r0, r3, 27 - lsrs r0, 27 - ldrb r2, [r5, 0xF] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - movs r0, 0x60 - ands r0, r3 - movs r2, 0x61 - negs r2, r2 - ands r1, r2 - orrs r1, r0 - lsls r3, 24 - asrs r3, 31 - lsls r3, 7 - movs r0, 0x7F - ands r1, r0 - orrs r1, r3 - strb r1, [r5, 0xF] - subs r0, 0xFF - ands r0, r7 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r5, 0x4] - strb r4, [r5, 0x6] - strb r4, [r5, 0x5] - lsls r1, 24 - cmp r1, 0 - bge _080D8C70 - movs r0, 0xFF - b _080D8C72 -_080D8C70: - movs r0, 0x1 -_080D8C72: - strb r0, [r5, 0x7] - adds r0, r6, 0 -_080D8C76: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D8BF8 - - thumb_func_start sub_80D8C7C -sub_80D8C7C: @ 80D8C7C - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r4, r1, 0 - cmp r4, 0xF - bhi _080D8CA8 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r1, r2, r0 - ldrb r0, [r1, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _080D8CA8 - adds r0, r1, 0x4 - movs r1, 0 - movs r2, 0xC - bl memset - adds r0, r4, 0 - b _080D8CAA -_080D8CA8: - movs r0, 0xFF -_080D8CAA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80D8C7C - - thumb_func_start sub_80D8CB0 -sub_80D8CB0: @ 80D8CB0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - movs r0, 0 - mov r12, r0 - ldrb r1, [r5, 0x8] - cmp r12, r1 - bcc _080D8CC8 - b _080D8E60 -_080D8CC8: - movs r7, 0x1F - ldr r0, _080D8CF8 @ =0xfffffc1f - mov r10, r0 - movs r1, 0x7D - negs r1, r1 - mov r9, r1 - movs r0, 0x1F - mov r8, r0 -_080D8CD8: - ldrh r0, [r5, 0x6] - add r0, r12 - lsls r0, 1 - ldr r1, _080D8CFC @ =gPlttBufferFaded - adds r3, r0, r1 - ldr r1, _080D8D00 @ =gPlttBufferUnfaded - adds r6, r0, r1 - ldrb r0, [r5] - lsls r0, 25 - lsrs r0, 25 - cmp r0, 0x1 - beq _080D8D04 - cmp r0, 0x2 - beq _080D8D62 - b _080D8E4E - .align 2, 0 -_080D8CF8: .4byte 0xfffffc1f -_080D8CFC: .4byte gPlttBufferFaded -_080D8D00: .4byte gPlttBufferUnfaded -_080D8D04: - ldr r0, [r3] - lsls r2, r0, 27 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bhi _080D8D26 - lsrs r0, r2, 27 - adds r0, r1 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_080D8D26: - ldr r0, [r3] - lsls r2, r0, 22 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bhi _080D8D4A - lsrs r0, r2, 27 - adds r0, r1 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_080D8D4A: - ldr r0, [r3] - lsls r2, r0, 17 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bls _080D8D5C - b _080D8E4E -_080D8D5C: - lsrs r0, r2, 27 - adds r0, r1 - b _080D8E40 -_080D8D62: - movs r0, 0x3 - ldrsb r0, [r5, r0] - cmp r0, 0 - bge _080D8DD4 - ldr r0, [r3] - lsls r4, r0, 27 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - blt _080D8D92 - lsrs r0, r4, 27 - adds r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_080D8D92: - ldr r0, [r3] - lsls r4, r0, 22 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 22 - lsrs r0, 27 - cmp r1, r0 - blt _080D8DBC - lsrs r0, r4, 27 - adds r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_080D8DBC: - ldr r0, [r3] - lsls r4, r0, 17 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 17 - lsrs r0, 27 - cmp r1, r0 - blt _080D8E4E - b _080D8E3C -_080D8DD4: - ldr r0, [r3] - lsls r4, r0, 27 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - bgt _080D8DFC - lsrs r0, r4, 27 - adds r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_080D8DFC: - ldr r0, [r3] - lsls r4, r0, 22 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 22 - lsrs r0, 27 - cmp r1, r0 - bgt _080D8E26 - lsrs r0, r4, 27 - adds r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_080D8E26: - ldr r0, [r3] - lsls r4, r0, 17 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 17 - lsrs r0, 27 - cmp r1, r0 - bgt _080D8E4E -_080D8E3C: - lsrs r0, r4, 27 - adds r0, r2 -_080D8E40: - ands r0, r7 - lsls r0, 2 - ldrb r2, [r3, 0x1] - mov r1, r9 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] -_080D8E4E: - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - ldrb r0, [r5, 0x8] - cmp r12, r0 - bcs _080D8E60 - b _080D8CD8 -_080D8E60: - ldrb r1, [r5, 0x2] - adds r0, r1, 0x1 - strb r0, [r5, 0x2] - ldrb r0, [r5, 0xB] - lsls r0, 27 - lsls r1, 24 - asrs r0, 3 - cmp r1, r0 - beq _080D8E76 - movs r0, 0 - b _080D8EAA -_080D8E76: - movs r0, 0 - strb r0, [r5, 0x2] - movs r0, 0x3 - ldrsb r0, [r5, r0] - negs r0, r0 - strb r0, [r5, 0x3] - ldrb r2, [r5] - movs r1, 0x7F - movs r0, 0x7F - ands r0, r2 - cmp r0, 0x1 - bne _080D8E96 - lsls r0, r2, 25 - lsrs r0, 25 - adds r0, 0x1 - b _080D8E9C -_080D8E96: - lsls r0, r2, 25 - lsrs r0, 25 - subs r0, 0x1 -_080D8E9C: - ands r0, r1 - movs r1, 0x80 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - movs r0, 0x1 -_080D8EAA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D8CB0 - - thumb_func_start sub_80D8EB8 -sub_80D8EB8: @ 80D8EB8 - push {r4,r5,lr} - adds r3, r0, 0 - movs r2, 0 - ldrb r0, [r3] - lsls r0, 25 - lsrs r0, 25 - cmp r0, 0x1 - beq _080D8ECE - cmp r0, 0x2 - beq _080D8EFC - b _080D8F36 -_080D8ECE: - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcs _080D8EEE - ldr r4, _080D8EF8 @ =gPlttBufferFaded -_080D8ED6: - ldrh r0, [r3, 0x6] - adds r0, r2 - lsls r0, 1 - adds r0, r4 - ldrh r1, [r3, 0x4] - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcc _080D8ED6 -_080D8EEE: - ldrb r2, [r3] - lsls r1, r2, 25 - lsrs r1, 25 - adds r1, 0x1 - b _080D8F28 - .align 2, 0 -_080D8EF8: .4byte gPlttBufferFaded -_080D8EFC: - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcs _080D8F20 - ldr r5, _080D8F40 @ =gPlttBufferFaded - ldr r4, _080D8F44 @ =gPlttBufferUnfaded -_080D8F06: - ldrh r0, [r3, 0x6] - adds r0, r2 - lsls r0, 1 - adds r1, r0, r5 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcc _080D8F06 -_080D8F20: - ldrb r2, [r3] - lsls r1, r2, 25 - lsrs r1, 25 - subs r1, 0x1 -_080D8F28: - movs r0, 0x7F - ands r1, r0 - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D8F36: - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080D8F40: .4byte gPlttBufferFaded -_080D8F44: .4byte gPlttBufferUnfaded - thumb_func_end sub_80D8EB8 - - thumb_func_start task_tutorial_controls_fadein -task_tutorial_controls_fadein: @ 80D8F48 - push {r4-r6,lr} - adds r4, r0, 0 - movs r5, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _080D8FAC -_080D8F54: - ldrh r0, [r4, 0x2] - asrs r0, r5 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8FA2 - lsls r1, r5, 1 - adds r0, r1, r5 - lsls r3, r0, 2 - adds r2, r4, r3 - ldrb r0, [r2, 0x5] - subs r0, 0x1 - strb r0, [r2, 0x5] - lsls r0, 24 - lsrs r0, 24 - adds r6, r1, 0 - cmp r0, 0xFF - bne _080D8FA2 - ldrh r0, [r2, 0x8] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080D8F90 - adds r0, r3, 0x4 - adds r0, r4, r0 - bl sub_80D8CB0 - b _080D8F98 -_080D8F90: - adds r0, r3, 0x4 - adds r0, r4, r0 - bl sub_80D8EB8 -_080D8F98: - adds r0, r6, r5 - lsls r0, 2 - adds r0, r4, r0 - ldrb r1, [r0, 0xD] - strb r1, [r0, 0x5] -_080D8FA2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080D8F54 -_080D8FAC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end task_tutorial_controls_fadein - - thumb_func_start sub_80D8FB4 -sub_80D8FB4: @ 80D8FB4 - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - movs r4, 0 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r5, 0x1 - movs r7, 0x80 - negs r7, r7 -_080D8FCA: - adds r0, r6, 0 - asrs r0, r4 - ands r0, r5 - cmp r0, 0 - beq _080D8FF8 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r2, r3, r0 - ldrb r0, [r2, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _080D8FF8 - adds r0, r5, 0 - lsls r0, r4 - ldrh r1, [r3, 0x2] - orrs r0, r1 - strh r0, [r3, 0x2] - ldrb r1, [r2, 0x4] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r5 - strb r0, [r2, 0x4] -_080D8FF8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080D8FCA - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D8FB4 - - thumb_func_start sub_80D9008 -sub_80D9008: @ 80D9008 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - movs r5, 0 - movs r3, 0x1 -_080D9016: - ldrh r0, [r6, 0x2] - asrs r0, r5 - ands r0, r3 - cmp r0, 0 - beq _080D907E - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r4, r6, r0 - ldrb r0, [r4, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _080D907E - adds r0, r7, 0 - asrs r0, r5 - ands r0, r3 - cmp r0, 0 - beq _080D907E - ldrh r1, [r4, 0xA] - lsls r1, 1 - ldr r0, _080D9074 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _080D9078 @ =gPlttBufferUnfaded - adds r1, r2 - ldrb r2, [r4, 0xC] - lsls r2, 1 - str r3, [sp] - bl memcpy - ldrb r0, [r4, 0x4] - movs r2, 0x80 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r4, 0x4] - movs r0, 0 - strb r0, [r4, 0x6] - strb r0, [r4, 0x5] - ldrb r0, [r4, 0xF] - lsls r0, 24 - ldr r3, [sp] - cmp r0, 0 - bge _080D907C - movs r0, 0xFF - strb r0, [r4, 0x7] - b _080D907E - .align 2, 0 -_080D9074: .4byte gPlttBufferFaded -_080D9078: .4byte gPlttBufferUnfaded -_080D907C: - strb r3, [r4, 0x7] -_080D907E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080D9016 - ldr r0, _080D9094 @ =0x0000ffff - cmp r7, r0 - bne _080D9098 - movs r0, 0 - strb r0, [r6] - b _080D909C - .align 2, 0 -_080D9094: .4byte 0x0000ffff -_080D9098: - ldrh r0, [r6, 0x2] - bics r0, r7 -_080D909C: - strh r0, [r6, 0x2] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D9008 - - thumb_func_start sub_80D90A8 -sub_80D90A8: @ 80D90A8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 - strh r4, [r5] - adds r0, r5, 0x4 - movs r1, 0 - movs r2, 0xC0 - bl memset -_080D90BA: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r5, r0 - strb r4, [r0, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080D90BA - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D90A8 - - thumb_func_start sub_80D90D4 -sub_80D90D4: @ 80D90D4 - push {r4,r5,lr} - adds r2, r0, 0 - adds r5, r1, 0 - movs r3, 0 - movs r4, 0 - ldrb r0, [r2, 0x5] - lsrs r0, 7 - cmp r0, 0 - bne _080D90EA - adds r4, r2, 0x4 - b _080D9108 -_080D90EA: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bhi _080D9108 - lsls r0, r3, 1 - adds r0, r3 - lsls r1, r0, 2 - adds r0, r2, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 7 - cmp r0, 0 - bne _080D90EA - adds r0, r1, 0x4 - adds r4, r2, r0 -_080D9108: - cmp r4, 0 - beq _080D9136 - ldrb r1, [r4, 0x1] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0 - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - adds r1, r4, 0x4 - adds r0, r5, 0 - ldm r0!, {r2,r4} - stm r1!, {r2,r4} - adds r0, r3, 0 - b _080D9138 -_080D9136: - movs r0, 0xFF -_080D9138: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80D90D4 - - thumb_func_start sub_80D9140 -sub_80D9140: @ 80D9140 - push {r4,r5,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0x1] - movs r2, 0x40 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080D9182 - ldrb r1, [r4, 0xB] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080D9182 - ldrh r2, [r4, 0x6] - ldrb r0, [r4, 0x8] - adds r0, r2, r0 - cmp r2, r0 - bge _080D9182 - ldr r5, _080D91B4 @ =gPlttBufferFaded - ldr r3, _080D91B8 @ =gPlttBufferUnfaded -_080D9168: - lsls r0, r2, 1 - adds r1, r0, r5 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r4, 0x6] - ldrb r1, [r4, 0x8] - adds r0, r1 - cmp r2, r0 - blt _080D9168 -_080D9182: - adds r0, r4, 0x4 - movs r1, 0 - movs r2, 0x8 - bl memset - ldrb r1, [r4, 0x1] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - subs r1, 0x10 - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - movs r1, 0x7F - ands r0, r1 - strb r0, [r4, 0x1] - movs r0, 0 - strb r0, [r4, 0x3] - strb r0, [r4, 0x2] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D91B4: .4byte gPlttBufferFaded -_080D91B8: .4byte gPlttBufferUnfaded - thumb_func_end sub_80D9140 - - thumb_func_start sub_80D91BC -sub_80D91BC: @ 80D91BC - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - movs r5, 0 - cmp r2, 0 - bne _080D91E0 - movs r1, 0xF - ands r1, r4 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, 0x4 - adds r0, r6, r0 - bl sub_80D9140 - b _080D920C -_080D91E0: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080D9200 - lsls r0, r5, 1 - adds r0, r5 - lsls r1, r0, 2 - adds r0, r6, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 7 - cmp r0, 0 - beq _080D9200 - adds r0, r1, 0x4 - adds r0, r6, r0 - bl sub_80D9140 -_080D9200: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080D91E0 -_080D920C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D91BC - - thumb_func_start sub_80D9214 -sub_80D9214: @ 80D9214 - push {r4-r7,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - movs r3, 0 - cmp r2, 0 - bne _080D9248 - movs r0, 0xF - adds r3, r0, 0 - ands r3, r4 - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r5, r1 - ldrb r2, [r1, 0x5] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x1 - lsls r0, r3 - ldrh r1, [r5] - orrs r0, r1 - strh r0, [r5] - b _080D928C -_080D9248: - movs r6, 0x1 - movs r7, 0x41 - negs r7, r7 -_080D924E: - adds r0, r4, 0 - ands r0, r6 - cmp r0, 0 - beq _080D926C - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r2, r5, r0 - ldrb r1, [r2, 0x5] - lsrs r0, r1, 7 - cmp r0, 0 - beq _080D926C - lsls r0, r1, 25 - cmp r0, 0 - blt _080D9272 -_080D926C: - lsls r0, r4, 17 - lsrs r4, r0, 16 - b _080D9282 -_080D9272: - adds r0, r7, 0 - ands r0, r1 - strb r0, [r2, 0x5] - adds r0, r6, 0 - lsls r0, r3 - ldrh r1, [r5] - orrs r0, r1 - strh r0, [r5] -_080D9282: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _080D924E -_080D928C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D9214 - - thumb_func_start sub_80D9294 -sub_80D9294: @ 80D9294 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - movs r0, 0 - mov r12, r0 - cmp r2, 0 - bne _080D931C - movs r1, 0xF - ands r1, r7 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, 0x4 - mov r1, r8 - adds r3, r1, r0 - ldrb r1, [r3, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - bne _080D93A6 - ldrb r1, [r3, 0xB] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080D92FA - ldrh r2, [r3, 0x6] - ldrb r0, [r3, 0x8] - adds r0, r2, r0 - cmp r2, r0 - bge _080D92FA - ldr r5, _080D9314 @ =gPlttBufferFaded - ldr r4, _080D9318 @ =gPlttBufferUnfaded -_080D92E0: - lsls r0, r2, 1 - adds r1, r0, r5 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r3, 0x6] - ldrb r1, [r3, 0x8] - adds r0, r1 - cmp r2, r0 - blt _080D92E0 -_080D92FA: - ldrb r0, [r3, 0x1] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3, 0x1] - movs r1, 0x1 - mov r2, r12 - lsls r1, r2 - mov r2, r8 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] - b _080D93A6 - .align 2, 0 -_080D9314: .4byte gPlttBufferFaded -_080D9318: .4byte gPlttBufferUnfaded -_080D931C: - movs r0, 0x1 - mov r9, r0 - movs r1, 0x40 - mov r10, r1 -_080D9324: - mov r2, r12 - lsls r0, r2, 1 - add r0, r12 - lsls r0, 2 - adds r0, 0x4 - mov r1, r8 - adds r3, r1, r0 - adds r0, r7, 0 - mov r2, r9 - ands r0, r2 - cmp r0, 0 - beq _080D9346 - ldrb r1, [r3, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - beq _080D9350 -_080D9346: - lsls r0, r7, 17 - lsrs r7, r0, 16 - mov r5, r12 - adds r5, 0x1 - b _080D939C -_080D9350: - ldrb r1, [r3, 0xB] - mov r0, r10 - ands r0, r1 - mov r5, r12 - adds r5, 0x1 - cmp r0, 0 - beq _080D9386 - ldrh r2, [r3, 0x6] - ldrb r0, [r3, 0x8] - adds r0, r2, r0 - cmp r2, r0 - bge _080D9386 - ldr r6, _080D93B4 @ =gPlttBufferFaded - ldr r4, _080D93B8 @ =gPlttBufferUnfaded -_080D936C: - lsls r0, r2, 1 - adds r1, r0, r6 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r3, 0x6] - ldrb r1, [r3, 0x8] - adds r0, r1 - cmp r2, r0 - blt _080D936C -_080D9386: - ldrb r1, [r3, 0x1] - mov r0, r10 - orrs r0, r1 - strb r0, [r3, 0x1] - mov r1, r9 - mov r0, r12 - lsls r1, r0 - mov r2, r8 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] -_080D939C: - lsls r0, r5, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0xF - bls _080D9324 -_080D93A6: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D93B4: .4byte gPlttBufferFaded -_080D93B8: .4byte gPlttBufferUnfaded - thumb_func_end sub_80D9294 - - thumb_func_start sub_80D93BC -sub_80D93BC: @ 80D93BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r0, [sp] - movs r0, 0 - mov r10, r0 - ldr r1, [sp] - ldrh r0, [r1] - cmp r0, 0 - bne _080D93D8 - b _080D9562 -_080D93D8: - movs r2, 0xF - mov r9, r2 - movs r3, 0x10 - negs r3, r3 - mov r8, r3 - movs r7, 0x1 -_080D93E4: - mov r5, r10 - lsls r0, r5, 1 - add r0, r10 - lsls r0, 2 - adds r0, 0x4 - ldr r1, [sp] - adds r4, r1, r0 - ldrb r2, [r4, 0x1] - movs r3, 0xC0 - ands r3, r2 - cmp r3, 0x80 - beq _080D93FE - b _080D9552 -_080D93FE: - ldr r0, _080D944C @ =gPaletteFade - ldrb r1, [r0, 0x7] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080D9414 - ldrb r0, [r4, 0xB] - ands r3, r0 - cmp r3, 0 - beq _080D9414 - b _080D9552 -_080D9414: - ldrb r0, [r4, 0x2] - subs r0, 0x1 - strb r0, [r4, 0x2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080D9424 - b _080D9552 -_080D9424: - ldrb r0, [r4, 0x9] - strb r0, [r4, 0x2] - ldrh r0, [r4, 0x6] - ldrb r1, [r4, 0x8] - lsls r2, 28 - lsrs r2, 28 - ldrh r3, [r4, 0x4] - bl BlendPalette - ldrb r5, [r4, 0xB] - lsls r0, r5, 26 - asrs r0, 30 - cmp r0, 0x1 - beq _080D9482 - cmp r0, 0x1 - bgt _080D9450 - cmp r0, 0 - beq _080D9456 - b _080D953C - .align 2, 0 -_080D944C: .4byte gPaletteFade -_080D9450: - cmp r0, 0x2 - beq _080D94FE - b _080D953C -_080D9456: - ldrb r2, [r4, 0x1] - lsls r1, r2, 28 - lsrs r0, r1, 28 - adds r0, 0x1 - mov r3, r9 - ands r0, r3 - mov r6, r8 - adds r3, r6, 0 - ands r3, r2 - orrs r3, r0 - strb r3, [r4, 0x1] - lsrs r1, 28 - lsls r0, r5, 28 - asrs r0, 28 - cmp r1, r0 - bne _080D953C - ldrb r0, [r4, 0x3] - adds r0, 0x1 - strb r0, [r4, 0x3] - ands r3, r6 - strb r3, [r4, 0x1] - b _080D953C -_080D9482: - ldrb r3, [r4, 0x1] - movs r0, 0x10 - ands r0, r3 - cmp r0, 0 - beq _080D94C0 - lsls r0, r3, 28 - lsrs r0, 28 - subs r0, 0x1 - mov r5, r9 - ands r0, r5 - mov r2, r8 - ands r2, r3 - orrs r2, r0 - strb r2, [r4, 0x1] - cmp r0, 0 - bne _080D953C - ldrb r0, [r4, 0x3] - adds r0, 0x1 - strb r0, [r4, 0x3] - lsls r0, r2, 27 - lsrs r0, 31 - eors r0, r7 - ands r0, r7 - lsls r0, 4 - movs r3, 0x11 - negs r3, r3 - adds r1, r3, 0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0x1] - b _080D953C -_080D94C0: - lsls r0, r5, 28 - asrs r0, 28 - subs r0, 0x1 - mov r5, r9 - ands r0, r5 - lsls r2, r3, 28 - lsrs r1, r2, 28 - adds r1, 0x1 - ands r1, r5 - mov r5, r8 - ands r3, r5 - orrs r3, r1 - strb r3, [r4, 0x1] - lsrs r2, 28 - cmp r2, r0 - bne _080D953C - ldrb r0, [r4, 0x3] - adds r0, 0x1 - strb r0, [r4, 0x3] - lsls r0, r3, 27 - lsrs r0, 31 - eors r0, r7 - ands r0, r7 - lsls r0, 4 - movs r2, 0x11 - negs r2, r2 - adds r1, r2, 0 - ands r3, r1 - orrs r3, r0 - strb r3, [r4, 0x1] - b _080D953C -_080D94FE: - ldrb r2, [r4, 0x1] - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080D950E - mov r0, r8 - ands r0, r2 - b _080D951C -_080D950E: - lsls r1, r5, 28 - asrs r1, 28 - mov r3, r9 - ands r1, r3 - mov r0, r8 - ands r0, r2 - orrs r0, r1 -_080D951C: - strb r0, [r4, 0x1] - ldrb r2, [r4, 0x1] - lsls r0, r2, 27 - lsrs r0, 31 - eors r0, r7 - ands r0, r7 - lsls r0, 4 - movs r5, 0x11 - negs r5, r5 - adds r1, r5, 0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0x1] - ldrb r0, [r4, 0x3] - adds r0, 0x1 - strb r0, [r4, 0x3] -_080D953C: - ldrb r1, [r4, 0xA] - cmp r1, 0xFF - beq _080D9552 - ldrb r0, [r4, 0x3] - cmp r0, r1 - bne _080D9552 - ldrb r1, [r4] - ldr r0, [sp] - movs r2, 0 - bl sub_80D9294 -_080D9552: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0xF - bhi _080D9562 - b _080D93E4 -_080D9562: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D93BC - - thumb_func_start sub_80D9574 -sub_80D9574: @ 80D9574 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - lsrs r3, 19 - adds r3, r2 - lsls r3, 1 - adds r6, r3 - cmp r1, r4 - bcs _080D95BE -_080D959C: - lsls r0, r1, 6 - adds r2, r6, r0 - movs r0, 0 - adds r3, r1, 0x1 - cmp r0, r5 - bcs _080D95B6 -_080D95A8: - strh r7, [r2] - adds r2, 0x2 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - bcc _080D95A8 -_080D95B6: - lsls r0, r3, 24 - lsrs r1, r0, 24 - cmp r1, r4 - bcc _080D959C -_080D95BE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D9574 - - thumb_func_start sub_80D95C4 -sub_80D95C4: @ 80D95C4 - push {r4-r7,lr} - adds r7, r0, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r6, r4, 24 - movs r4, 0 - lsrs r3, 19 - adds r3, r2 - lsls r3, 1 - adds r7, r3 - cmp r4, r6 - bcs _080D960E -_080D95E8: - lsls r0, r4, 6 - adds r2, r7, r0 - movs r3, 0 - adds r4, 0x1 - cmp r3, r5 - bcs _080D9606 -_080D95F4: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcc _080D95F4 -_080D9606: - lsls r0, r4, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _080D95E8 -_080D960E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D95C4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/safari_zone.s b/asm/safari_zone.s index b29c36739..4bc9d6eb7 100644 --- a/asm/safari_zone.s +++ b/asm/safari_zone.s @@ -122,30 +122,30 @@ sub_80A0F4C: @ 80A0F4C ldrb r0, [r0] cmp r0, 0 beq _080A0F68 - ldr r0, _080A0F64 @ =c2_exit_to_overworld_2_switch + ldr r0, _080A0F64 @ =CB2_ReturnToField bl SetMainCallback2 b _080A0FB0 .align 2, 0 _080A0F60: .4byte gUnknown_2039994 -_080A0F64: .4byte c2_exit_to_overworld_2_switch +_080A0F64: .4byte CB2_ReturnToField _080A0F68: - ldr r0, _080A0F88 @ =gUnknown_2023E8A + ldr r0, _080A0F88 @ =gBattleOutcome ldrb r0, [r0] cmp r0, 0x8 bne _080A0F9C ldr r0, _080A0F8C @ =gUnknown_81BFB87 bl ScriptContext2_RunNewScript bl warp_in - ldr r1, _080A0F90 @ =gUnknown_3005020 + ldr r1, _080A0F90 @ =gFieldCallback ldr r0, _080A0F94 @ =sub_807E3EC str r0, [r1] ldr r0, _080A0F98 @ =sub_805671C bl SetMainCallback2 b _080A0FB0 .align 2, 0 -_080A0F88: .4byte gUnknown_2023E8A +_080A0F88: .4byte gBattleOutcome _080A0F8C: .4byte gUnknown_81BFB87 -_080A0F90: .4byte gUnknown_3005020 +_080A0F90: .4byte gFieldCallback _080A0F94: .4byte sub_807E3EC _080A0F98: .4byte sub_805671C _080A0F9C: diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s index cbb07e4c7..09503af6a 100644 --- a/asm/save_failed_screen.s +++ b/asm/save_failed_screen.s @@ -73,7 +73,7 @@ _080F516C: ldr r1, _080F5188 @ =0x0000ffff movs r2, 0x80 bl m4aMPlayVolumeControl - bl sub_813BB38 + bl SaveCallbacks ldr r1, _080F518C @ =gUnknown_203AB50 movs r0, 0x1 strb r0, [r1] @@ -83,9 +83,9 @@ _080F5184: .4byte gMPlayInfo_BGM _080F5188: .4byte 0x0000ffff _080F518C: .4byte gUnknown_203AB50 _080F5190: - bl sub_813BBAC - bl sub_813BB74 - bl sub_813BBC8 + bl SaveMapTiles + bl SaveMapGPURegs + bl SaveMapTextColors bl sub_80F52EC movs r0, 0 movs r1, 0 @@ -197,7 +197,7 @@ _080F5298: movs r0, 0 movs r1, 0 bl SetGpuReg - bl sub_813BC2C + bl RestoreMapTiles bl sub_80F52EC ldr r1, _080F52B0 @ =gUnknown_203AB50 movs r0, 0x8 @@ -211,9 +211,9 @@ _080F52B4: movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl - bl sub_813BC48 - bl sub_813BBF4 - bl sub_813BBDC + bl RestoreMapTextColors + bl RestoreGPURegs + bl RestoreCallbacks ldr r0, _080F52E4 @ =gUnknown_3005430 movs r1, 0 str r1, [r0] @@ -259,7 +259,7 @@ _080F5314: .4byte 0x05000200 thumb_func_start sub_80F5318 sub_80F5318: @ 80F5318 push {lr} - ldr r0, _080F532C @ =gUnknown_201F800 + ldr r0, _080F532C @ =gDecompressionBuffer + 0x3800 ldr r1, _080F5330 @ =0x0600f800 movs r2, 0xA0 lsls r2, 3 @@ -268,14 +268,14 @@ sub_80F5318: @ 80F5318 pop {r0} bx r0 .align 2, 0 -_080F532C: .4byte gUnknown_201F800 +_080F532C: .4byte gDecompressionBuffer + 0x3800 _080F5330: .4byte 0x0600f800 thumb_func_end sub_80F5318 thumb_func_start sub_80F5334 sub_80F5334: @ 80F5334 push {lr} - ldr r0, _080F5348 @ =gUnknown_201C020 + ldr r0, _080F5348 @ =gDecompressionBuffer + 0x020 ldr r1, _080F534C @ =0x0600c020 movs r2, 0x8C lsls r2, 6 @@ -284,7 +284,7 @@ sub_80F5334: @ 80F5334 pop {r0} bx r0 .align 2, 0 -_080F5348: .4byte gUnknown_201C020 +_080F5348: .4byte gDecompressionBuffer + 0x020 _080F534C: .4byte 0x0600c020 thumb_func_end sub_80F5334 @@ -315,7 +315,7 @@ sub_80F5350: @ 80F5350 cmp r0, r2 bge _080F53B6 mov r12, r2 - ldr r1, _080F53C8 @ =gUnknown_201F800 + ldr r1, _080F53C8 @ =gDecompressionBuffer + 0x3800 mov r10, r1 _080F5386: mov r4, r9 @@ -354,7 +354,7 @@ _080F53B6: pop {r0} bx r0 .align 2, 0 -_080F53C8: .4byte gUnknown_201F800 +_080F53C8: .4byte gDecompressionBuffer + 0x3800 thumb_func_end sub_80F5350 thumb_func_start sub_80F53CC @@ -404,7 +404,7 @@ sub_80F5404: @ 80F5404 ldr r2, _080F544C @ =0x00001111 adds r0, r2, 0 strh r0, [r1] - ldr r4, _080F5450 @ =gUnknown_201C020 + ldr r4, _080F5450 @ =gDecompressionBuffer + 0x020 ldr r2, _080F5454 @ =0x01001180 adds r0, r1, 0 adds r1, r4, 0 @@ -419,7 +419,7 @@ sub_80F5404: @ 80F5404 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x2 - bl sub_813C078 + bl HelpSystemRenderText bl sub_80F5334 add sp, 0x10 pop {r4,r5} @@ -427,7 +427,7 @@ sub_80F5404: @ 80F5404 bx r0 .align 2, 0 _080F544C: .4byte 0x00001111 -_080F5450: .4byte gUnknown_201C020 +_080F5450: .4byte gDecompressionBuffer + 0x020 _080F5454: .4byte 0x01001180 thumb_func_end sub_80F5404 diff --git a/asm/scrcmd.s b/asm/scrcmd.s deleted file mode 100644 index e8ffcf3ab..000000000 --- a/asm/scrcmd.s +++ /dev/null @@ -1,5612 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8069ED0 -sub_8069ED0: @ 8069ED0 - movs r0, 0 - bx lr - thumb_func_end sub_8069ED0 - - thumb_func_start sub_8069ED4 -sub_8069ED4: @ 8069ED4 - movs r0, 0 - bx lr - thumb_func_end sub_8069ED4 - - thumb_func_start ScrCmd_end -ScrCmd_end: @ 8069ED8 - push {lr} - bl StopScript - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_end - - thumb_func_start ScrCmd_gotonative -ScrCmd_gotonative: @ 8069EE4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_gotonative - - thumb_func_start sub_8069EFC -sub_8069EFC: @ 8069EFC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 14 - ldr r1, _08069F18 @ =gSpecials - adds r1, r0, r1 - ldr r0, _08069F1C @ =gStdScripts - cmp r1, r0 - bcs _08069F20 - ldr r0, [r1] - bl _call_via_r0 - b _08069F2C - .align 2, 0 -_08069F18: .4byte gSpecials -_08069F1C: .4byte gStdScripts -_08069F20: - ldr r0, _08069F34 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c" - ldr r2, _08069F38 @ =gUnknown_83A7290 "0" - movs r1, 0xF1 - movs r3, 0x1 - bl AGBAssert -_08069F2C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08069F34: .4byte gUnknown_83A725C -_08069F38: .4byte gUnknown_83A7290 - thumb_func_end sub_8069EFC - - thumb_func_start sub_8069F3C -sub_8069F3C: @ 8069F3C - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 14 - ldr r1, _08069F6C @ =gSpecials - adds r1, r0, r1 - ldr r0, _08069F70 @ =gStdScripts - cmp r1, r0 - bcs _08069F74 - ldr r0, [r1] - bl _call_via_r0 - strh r0, [r5] - b _08069F80 - .align 2, 0 -_08069F6C: .4byte gSpecials -_08069F70: .4byte gStdScripts -_08069F74: - ldr r0, _08069F88 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c" - ldr r1, _08069F8C @ =0x00000107 - ldr r2, _08069F90 @ =gUnknown_83A7290 "0" - movs r3, 0x1 - bl AGBAssert -_08069F80: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08069F88: .4byte gUnknown_83A725C -_08069F8C: .4byte 0x00000107 -_08069F90: .4byte gUnknown_83A7290 - thumb_func_end sub_8069F3C - - thumb_func_start ScrCmd_callnative -ScrCmd_callnative: @ 8069F94 - push {lr} - bl ScriptReadWord - bl _call_via_r0 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_callnative - - thumb_func_start sub_8069FA4 -sub_8069FA4: @ 8069FA4 - push {lr} - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8069FA4 - - thumb_func_start ScrCmd_goto -ScrCmd_goto: @ 8069FB0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl ScriptJump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_goto - - thumb_func_start ScrCmd_return -ScrCmd_return: @ 8069FC8 - push {lr} - bl ScriptReturn - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_return - - thumb_func_start ScrCmd_call -ScrCmd_call: @ 8069FD4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl ScriptCall - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_call - - thumb_func_start ScrCmd_goto_if -ScrCmd_goto_if: @ 8069FEC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r1, _0806A024 @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A01A - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptJump -_0806A01A: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A024: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_goto_if - - thumb_func_start ScrCmd_call_if -ScrCmd_call_if: @ 806A028 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r1, _0806A060 @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A056 - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptCall -_0806A056: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A060: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_call_if - - thumb_func_start ScrCmd_setvaddress -ScrCmd_setvaddress: @ 806A064 - push {r4,lr} - ldr r4, [r0, 0x8] - subs r4, 0x1 - bl ScriptReadWord - ldr r1, _0806A07C @ =gUnknown_20370A8 - subs r0, r4 - str r0, [r1] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A07C: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_setvaddress - - thumb_func_start ScrCmd_vgoto -ScrCmd_vgoto: @ 806A080 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806A0A0 @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl ScriptJump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A0A0: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_vgoto - - thumb_func_start ScrCmd_vcall -ScrCmd_vcall: @ 806A0A4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806A0C4 @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl ScriptCall - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A0C4: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_vcall - - thumb_func_start ScrCmd_vgoto_if -ScrCmd_vgoto_if: @ 806A0C8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - ldr r1, _0806A104 @ =gUnknown_20370A8 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _0806A108 @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A0FA - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptJump -_0806A0FA: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A104: .4byte gUnknown_20370A8 -_0806A108: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_vgoto_if - - thumb_func_start ScrCmd_vcall_if -ScrCmd_vcall_if: @ 806A10C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - ldr r1, _0806A148 @ =gUnknown_20370A8 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _0806A14C @ =gUnknown_83A7248 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A13E - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptCall -_0806A13E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A148: .4byte gUnknown_20370A8 -_0806A14C: .4byte gUnknown_83A7248 - thumb_func_end ScrCmd_vcall_if - - thumb_func_start ScrCmd_gotostd -ScrCmd_gotostd: @ 806A150 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, _0806A178 @ =gStdScripts - adds r1, r0 - ldr r0, _0806A17C @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A170 - ldr r1, [r1] - adds r0, r2, 0 - bl ScriptJump -_0806A170: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806A178: .4byte gStdScripts -_0806A17C: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_gotostd - - thumb_func_start ScrCmd_callstd -ScrCmd_callstd: @ 806A180 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, _0806A1A8 @ =gStdScripts - adds r1, r0 - ldr r0, _0806A1AC @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A1A0 - ldr r1, [r1] - adds r0, r2, 0 - bl ScriptCall -_0806A1A0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806A1A8: .4byte gStdScripts -_0806A1AC: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_callstd - - thumb_func_start ScrCmd_gotostd_if -ScrCmd_gotostd_if: @ 806A1B0 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _0806A1F0 @ =gUnknown_83A7248 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A1E8 - lsls r0, r4, 2 - ldr r1, _0806A1F4 @ =gStdScripts - adds r1, r0, r1 - ldr r0, _0806A1F8 @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A1E8 - ldr r1, [r1] - adds r0, r3, 0 - bl ScriptJump -_0806A1E8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A1F0: .4byte gUnknown_83A7248 -_0806A1F4: .4byte gStdScripts -_0806A1F8: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_gotostd_if - - thumb_func_start ScrCmd_callstd_if -ScrCmd_callstd_if: @ 806A1FC - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _0806A23C @ =gUnknown_83A7248 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806A234 - lsls r0, r4, 2 - ldr r1, _0806A240 @ =gStdScripts - adds r1, r0, r1 - ldr r0, _0806A244 @ =gUnknown_8160478 - cmp r1, r0 - bcs _0806A234 - ldr r1, [r1] - adds r0, r3, 0 - bl ScriptCall -_0806A234: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A23C: .4byte gUnknown_83A7248 -_0806A240: .4byte gStdScripts -_0806A244: .4byte gUnknown_8160478 - thumb_func_end ScrCmd_callstd_if - - thumb_func_start ScrCmd_gotoram -ScrCmd_gotoram: @ 806A248 - push {lr} - ldr r1, _0806A258 @ =gUnknown_20370A4 - ldr r1, [r1] - bl ScriptJump - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806A258: .4byte gUnknown_20370A4 - thumb_func_end ScrCmd_gotoram - - thumb_func_start ScrCmd_killscript -ScrCmd_killscript: @ 806A25C - push {r4,lr} - adds r4, r0, 0 - bl ClearRamScript - adds r0, r4, 0 - bl StopScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_killscript - - thumb_func_start ScrCmd_setmysteryeventstatus -ScrCmd_setmysteryeventstatus: @ 806A274 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl SetMysteryEventScriptStatus - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmysteryeventstatus - - thumb_func_start sub_806A28C -sub_806A28C: @ 806A28C - push {r4,lr} - adds r4, r0, 0 - bl sub_8069E48 - adds r2, r0, 0 - cmp r2, 0 - beq _0806A2A8 - ldr r1, _0806A2B0 @ =gUnknown_20370A4 - ldr r0, [r4, 0x8] - str r0, [r1] - adds r0, r4, 0 - adds r1, r2, 0 - bl ScriptJump -_0806A2A8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A2B0: .4byte gUnknown_20370A4 - thumb_func_end sub_806A28C - - thumb_func_start ScrCmd_loadword -ScrCmd_loadword: @ 806A2B4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_loadword - - thumb_func_start ScrCmd_loadbytefromaddr -ScrCmd_loadbytefromaddr: @ 806A2D8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldrb r0, [r0] - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_loadbytefromaddr - - thumb_func_start ScrCmd_writebytetoaddr -ScrCmd_writebytetoaddr: @ 806A2FC - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - strb r4, [r0] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_writebytetoaddr - - thumb_func_start ScrCmd_loadbyte -ScrCmd_loadbyte: @ 806A314 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r2, r0, 0 - adds r2, 0x64 - adds r2, r3 - ldrb r3, [r1] - str r3, [r2] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end ScrCmd_loadbyte - - thumb_func_start ScrCmd_setptrbyte -ScrCmd_setptrbyte: @ 806A330 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldr r1, [r4] - strb r1, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setptrbyte - - thumb_func_start ScrCmd_copylocal -ScrCmd_copylocal: @ 806A354 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r0, 0x64 - adds r3, r0, r3 - lsls r2, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - movs r0, 0 - bx lr - thumb_func_end ScrCmd_copylocal - - thumb_func_start ScrCmd_copybyte -ScrCmd_copybyte: @ 806A374 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadWord - ldrb r0, [r0] - strb r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_copybyte - - thumb_func_start ScrCmd_setvar -ScrCmd_setvar: @ 806A390 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl ScriptReadHalfword - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setvar - - thumb_func_start ScrCmd_copyvar -ScrCmd_copyvar: @ 806A3B4 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r0, [r0] - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_copyvar - - thumb_func_start ScrCmd_setorcopyvar -ScrCmd_setorcopyvar: @ 806A3E0 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setorcopyvar - - thumb_func_start compare_012 -compare_012: @ 806A40C - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r0, r1 - bcs _0806A41E - movs r0, 0 - b _0806A428 -_0806A41E: - cmp r0, r1 - beq _0806A426 - movs r0, 0x2 - b _0806A428 -_0806A426: - movs r0, 0x1 -_0806A428: - pop {r1} - bx r1 - thumb_func_end compare_012 - - thumb_func_start ScrCmd_compare_local_to_local -ScrCmd_compare_local_to_local: @ 806A42C - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r0, [r2] - lsls r0, 2 - adds r3, r4, 0 - adds r3, 0x64 - adds r0, r3, r0 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r3, r1 - ldrb r1, [r3] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_local - - thumb_func_start ScrCmd_compare_local_to_value -ScrCmd_compare_local_to_value: @ 806A45C - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_value - - thumb_func_start ScrCmd_compare_local_to_addr -ScrCmd_compare_local_to_addr: @ 806A484 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r5, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_local_to_addr - - thumb_func_start ScrCmd_compare_addr_to_local -ScrCmd_compare_addr_to_local: @ 806A4B0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r3, [r4, 0x8] - ldrb r2, [r3] - lsls r2, 2 - adds r1, r4, 0 - adds r1, 0x64 - adds r1, r2 - ldrb r1, [r1] - adds r3, 0x1 - str r3, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_local - - thumb_func_start ScrCmd_compare_addr_to_value -ScrCmd_compare_addr_to_value: @ 806A4DC - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_value - - thumb_func_start ScrCmd_compare_addr_to_addr -ScrCmd_compare_addr_to_addr: @ 806A4FC - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r5, [r0] - adds r0, r4, 0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_addr_to_addr - - thumb_func_start ScrCmd_compare_var_to_value -ScrCmd_compare_var_to_value: @ 806A520 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r5, [r0] - adds r0, r4, 0 - bl ScriptReadHalfword - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_var_to_value - - thumb_func_start ScrCmd_compare_var_to_var -ScrCmd_compare_var_to_var: @ 806A550 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r2, [r5] - ldrh r1, [r0] - adds r0, r2, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_compare_var_to_var - - thumb_func_start ScrCmd_addvar -ScrCmd_addvar: @ 806A584 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl ScriptReadHalfword - ldrh r1, [r4] - adds r0, r1 - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_addvar - - thumb_func_start ScrCmd_subvar -ScrCmd_subvar: @ 806A5AC - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldrh r1, [r5] - subs r1, r0 - strh r1, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_subvar - - thumb_func_start ScrCmd_random -ScrCmd_random: @ 806A5DC - push {r4,r5,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r5, _0806A60C @ =gSpecialVar_Result - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __umodsi3 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A60C: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_random - - thumb_func_start sub_806A610 -sub_806A610: @ 806A610 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A658 @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809A084 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - adds r0, r4, 0 - bl sub_809A824 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A658: .4byte gSpecialVar_Result - thumb_func_end sub_806A610 - - thumb_func_start ScrCmd_takeitem -ScrCmd_takeitem: @ 806A65C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A69C @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809A1D8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A69C: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_takeitem - - thumb_func_start sub_806A6A0 -sub_806A6A0: @ 806A6A0 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A6E0 @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809A000 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A6E0: .4byte gSpecialVar_Result - thumb_func_end sub_806A6A0 - - thumb_func_start sub_806A6E4 -sub_806A6E4: @ 806A6E4 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, _0806A724 @ =gSpecialVar_Result - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8099F40 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A724: .4byte gSpecialVar_Result - thumb_func_end sub_806A6E4 - - thumb_func_start ScrCmd_checkitemtype -ScrCmd_checkitemtype: @ 806A728 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0806A750 @ =gSpecialVar_Result - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A750: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_checkitemtype - - thumb_func_start ScrCmd_givepcitem -ScrCmd_givepcitem: @ 806A754 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r5, _0806A794 @ =gSpecialVar_Result - adds r0, r4, 0 - bl sub_809A3C8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A794: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_givepcitem - - thumb_func_start ScrCmd_checkpcitem -ScrCmd_checkpcitem: @ 806A798 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r5, _0806A7D8 @ =gSpecialVar_Result - adds r0, r4, 0 - bl sub_809A374 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806A7D8: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_checkpcitem - - thumb_func_start sub_806A7DC -sub_806A7DC: @ 806A7DC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A7DC - - thumb_func_start sub_806A7F0 -sub_806A7F0: @ 806A7F0 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A7F0 - - thumb_func_start sub_806A804 -sub_806A804: @ 806A804 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A804 - - thumb_func_start sub_806A818 -sub_806A818: @ 806A818 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806A818 - - thumb_func_start ScrCmd_setflag -ScrCmd_setflag: @ 806A82C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setflag - - thumb_func_start ScrCmd_clearflag -ScrCmd_clearflag: @ 806A840 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagClear - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_clearflag - - thumb_func_start ScrCmd_checkflag -ScrCmd_checkflag: @ 806A854 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_checkflag - - thumb_func_start ScrCmd_incrementgamestat -ScrCmd_incrementgamestat: @ 806A870 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl IncrementGameStat - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_incrementgamestat - - thumb_func_start sub_806A888 -sub_806A888: @ 806A888 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r6, r0, 0 - adds r0, r4, 0 - bl GetGameStat - cmp r0, r6 - bcs _0806A8AA - movs r0, 0 - b _0806A8B4 -_0806A8AA: - cmp r0, r6 - bne _0806A8B2 - movs r0, 0x1 - b _0806A8B4 -_0806A8B2: - movs r0, 0x2 -_0806A8B4: - strb r0, [r5, 0x2] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806A888 - - thumb_func_start sub_806A8C0 -sub_806A8C0: @ 806A8C0 - push {r4,lr} - bl ScriptReadHalfword - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_8115748 - adds r0, r4, 0 - bl sub_80F85BC - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806A8C0 - - thumb_func_start ScrCmd_animateflash -ScrCmd_animateflash: @ 806A8E0 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl sub_807F028 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end ScrCmd_animateflash - - thumb_func_start ScrCmd_setflashradius -ScrCmd_setflashradius: @ 806A8FC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl Overworld_SetFlashLevel - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setflashradius - - thumb_func_start sub_806A918 -sub_806A918: @ 806A918 - push {lr} - ldr r0, _0806A92C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806A930 - movs r0, 0 - b _0806A932 - .align 2, 0 -_0806A92C: .4byte gPaletteFade -_0806A930: - movs r0, 0x1 -_0806A932: - pop {r1} - bx r1 - thumb_func_end sub_806A918 - - thumb_func_start ScrCmd_fadescreen -ScrCmd_fadescreen: @ 806A938 - push {r4,lr} - adds r4, r0, 0 - ldr r1, [r4, 0x8] - ldrb r0, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - movs r1, 0 - bl fade_screen - ldr r1, _0806A95C @ =sub_806A918 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A95C: .4byte sub_806A918 - thumb_func_end ScrCmd_fadescreen - - thumb_func_start ScrCmd_fadescreenspeed -ScrCmd_fadescreenspeed: @ 806A960 - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r0, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - lsls r1, 24 - asrs r1, 24 - bl fade_screen - ldr r1, _0806A98C @ =sub_806A918 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A98C: .4byte sub_806A918 - thumb_func_end ScrCmd_fadescreenspeed - - thumb_func_start RunPauseTimer -RunPauseTimer: @ 806A990 - push {lr} - ldr r1, _0806A9A4 @ =gUnknown_20370AE - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0806A9A8 - movs r0, 0 - b _0806A9AA - .align 2, 0 -_0806A9A4: .4byte gUnknown_20370AE -_0806A9A8: - movs r0, 0x1 -_0806A9AA: - pop {r1} - bx r1 - thumb_func_end RunPauseTimer - - thumb_func_start ScrCmd_delay -ScrCmd_delay: @ 806A9B0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - ldr r1, _0806A9CC @ =gUnknown_20370AE - strh r0, [r1] - ldr r1, _0806A9D0 @ =RunPauseTimer - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806A9CC: .4byte gUnknown_20370AE -_0806A9D0: .4byte RunPauseTimer - thumb_func_end ScrCmd_delay - - thumb_func_start sub_806A9D4 -sub_806A9D4: @ 806A9D4 - movs r0, 0 - bx lr - thumb_func_end sub_806A9D4 - - thumb_func_start sub_806A9D8 -sub_806A9D8: @ 806A9D8 - movs r0, 0 - bx lr - thumb_func_end sub_806A9D8 - - thumb_func_start sub_806A9DC -sub_806A9DC: @ 806A9DC - ldr r0, _0806A9F0 @ =gSpecialVar_0x8000 - movs r1, 0 - strh r1, [r0] - ldr r0, _0806A9F4 @ =gSpecialVar_0x8001 - strh r1, [r0] - ldr r0, _0806A9F8 @ =gSpecialVar_0x8002 - strh r1, [r0] - movs r0, 0 - bx lr - .align 2, 0 -_0806A9F0: .4byte gSpecialVar_0x8000 -_0806A9F4: .4byte gSpecialVar_0x8001 -_0806A9F8: .4byte gSpecialVar_0x8002 - thumb_func_end sub_806A9DC - - thumb_func_start ScrCmd_setweather -ScrCmd_setweather: @ 806A9FC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl SetSav1Weather - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setweather - - thumb_func_start ScrCmd_resetweather -ScrCmd_resetweather: @ 806AA18 - push {lr} - bl sub_807B140 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_resetweather - - thumb_func_start ScrCmd_doweather -ScrCmd_doweather: @ 806AA24 - push {lr} - bl DoCurrentWeather - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_doweather - - thumb_func_start ScrCmd_setstepcallback -ScrCmd_setstepcallback: @ 806AA30 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl ActivatePerStepCallback - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setstepcallback - - thumb_func_start ScrCmd_setmaplayoutindex -ScrCmd_setmaplayoutindex: @ 806AA48 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl sub_8055D40 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmaplayoutindex - - thumb_func_start ScrCmd_warp -ScrCmd_warp: @ 806AA64 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sub_807E438 - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warp - - thumb_func_start ScrCmd_warpsilent -ScrCmd_warpsilent: @ 806AAEC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sp13E_warp_to_last_warp - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warpsilent - - thumb_func_start ScrCmd_warpdoor -ScrCmd_warpdoor: @ 806AB74 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sub_807E4DC - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warpdoor - - thumb_func_start ScrCmd_warphole -ScrCmd_warphole: @ 806ABFC - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, [r0, 0x8] - ldrb r6, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - mov r4, sp - adds r4, 0x6 - add r0, sp, 0x4 - adds r1, r4, 0 - bl PlayerGetDestCoords - cmp r6, 0xFF - bne _0806AC3A - cmp r5, 0xFF - bne _0806AC3A - add r0, sp, 0x4 - ldrh r0, [r0] - subs r0, 0x7 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4] - subs r1, 0x7 - lsls r1, 16 - asrs r1, 16 - bl sub_8055688 - b _0806AC5E -_0806AC3A: - lsls r0, r6, 24 - asrs r0, 24 - lsls r1, r5, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - add r3, sp, 0x4 - ldrb r3, [r3] - subs r3, 0x7 - lsls r3, 24 - asrs r3, 24 - ldrb r4, [r4] - subs r4, 0x7 - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl Overworld_SetWarpDestination -_0806AC5E: - bl sp13F_fall_to_last_warp - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_warphole - - thumb_func_start sub_806AC70 -sub_806AC70: @ 806AC70 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl sub_807E59C - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806AC70 - - thumb_func_start sub_806ACF8 -sub_806ACF8: @ 806ACF8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_805DAE4 - bl sub_807E500 - bl sub_80559E4 - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806ACF8 - - thumb_func_start ScrCmd_setwarp -ScrCmd_setwarp: @ 806AD8C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl Overworld_SetWarpDestination - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setwarp - - thumb_func_start ScrCmd_setdynamicwarp -ScrCmd_setdynamicwarp: @ 806AE0C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - lsls r0, 24 - asrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - mov r1, r9 - mov r2, r8 - adds r3, r6, 0 - bl saved_warp2_set_2 - movs r0, 0 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdynamicwarp - - thumb_func_start sub_806AE90 -sub_806AE90: @ 806AE90 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_80555F8 - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806AE90 - - thumb_func_start sub_806AF10 -sub_806AF10: @ 806AF10 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_805564C - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806AF10 - - thumb_func_start ScrCmd_setescapewarp -ScrCmd_setescapewarp: @ 806AF90 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_80555A0 - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setescapewarp - - thumb_func_start ScrCmd_getplayerxy -ScrCmd_getplayerxy: @ 806B010 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldr r2, _0806B048 @ =gSaveBlock1Ptr - ldr r1, [r2] - ldrh r1, [r1] - strh r1, [r5] - ldr r1, [r2] - ldrh r1, [r1, 0x2] - strh r1, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B048: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_getplayerxy - - thumb_func_start ScrCmd_getpartysize -ScrCmd_getpartysize: @ 806B04C - push {r4,lr} - ldr r4, _0806B064 @ =gSpecialVar_Result - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B064: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_getpartysize - - thumb_func_start ScrCmd_playse -ScrCmd_playse: @ 806B068 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl PlaySE - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_playse - - thumb_func_start WaitForSoundEffectFinish -WaitForSoundEffectFinish: @ 806B07C - push {lr} - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _0806B08C - movs r0, 0 - b _0806B08E -_0806B08C: - movs r0, 0x1 -_0806B08E: - pop {r1} - bx r1 - thumb_func_end WaitForSoundEffectFinish - - thumb_func_start sub_806B094 -sub_806B094: @ 806B094 - push {lr} - ldr r1, _0806B0A4 @ =WaitForSoundEffectFinish - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806B0A4: .4byte WaitForSoundEffectFinish - thumb_func_end sub_806B094 - - thumb_func_start ScrCmd_playfanfare -ScrCmd_playfanfare: @ 806B0A8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl PlayFanfare - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_playfanfare - - thumb_func_start WaitForFanfareFinish -WaitForFanfareFinish: @ 806B0BC - push {lr} - bl IsFanfareTaskInactive - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end WaitForFanfareFinish - - thumb_func_start sub_806B0CC -sub_806B0CC: @ 806B0CC - push {lr} - ldr r1, _0806B0DC @ =WaitForFanfareFinish - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806B0DC: .4byte WaitForFanfareFinish - thumb_func_end sub_806B0CC - - thumb_func_start sub_806B0E0 -sub_806B0E0: @ 806B0E0 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r1, r0, 16 - adds r5, r1, 0 - ldr r0, [r4, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, _0806B11C @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B114 - cmp r2, 0x1 - bne _0806B10E - adds r0, r1, 0 - bl sub_8055E78 -_0806B10E: - adds r0, r5, 0 - bl PlayNewMapMusic -_0806B114: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B11C: .4byte gUnknown_203ADFA - thumb_func_end sub_806B0E0 - - thumb_func_start sub_806B120 -sub_806B120: @ 806B120 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl sub_8055E78 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B120 - - thumb_func_start sub_806B134 -sub_806B134: @ 806B134 - push {lr} - ldr r0, _0806B150 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B148 - bl Overworld_ChangeMusicToDefault -_0806B148: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B150: .4byte gUnknown_203ADFA - thumb_func_end sub_806B134 - - thumb_func_start sub_806B154 -sub_806B154: @ 806B154 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _0806B178 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B172 - adds r0, r1, 0 - bl sub_8055F48 -_0806B172: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B178: .4byte gUnknown_203ADFA - thumb_func_end sub_806B154 - - thumb_func_start sub_806B17C -sub_806B17C: @ 806B17C - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, _0806B19C @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0806B1A0 - movs r0, 0 - b _0806B1BE - .align 2, 0 -_0806B19C: .4byte gUnknown_203ADFA -_0806B1A0: - cmp r1, 0 - beq _0806B1AE - lsls r0, r1, 26 - lsrs r0, 24 - bl FadeOutBGMTemporarily - b _0806B1B4 -_0806B1AE: - movs r0, 0x4 - bl FadeOutBGMTemporarily -_0806B1B4: - ldr r1, _0806B1C4 @ =IsBGMPausedOrStopped - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 -_0806B1BE: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B1C4: .4byte IsBGMPausedOrStopped - thumb_func_end sub_806B17C - - thumb_func_start sub_806B1C8 -sub_806B1C8: @ 806B1C8 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806B1F0 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B1FA - cmp r2, 0 - beq _0806B1F4 - lsls r0, r2, 26 - lsrs r0, 24 - bl FadeInBGM - b _0806B1FA - .align 2, 0 -_0806B1F0: .4byte gUnknown_203ADFA -_0806B1F4: - movs r0, 0x4 - bl FadeInBGM -_0806B1FA: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B1C8 - - thumb_func_start ScrCmd_applymovement -ScrCmd_applymovement: @ 806B200 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadWord - adds r3, r0, 0 - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, _0806B23C @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl ScriptMovement_StartObjectMovementScript - ldr r0, _0806B240 @ =gUnknown_20370B0 - strh r4, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B23C: .4byte gSaveBlock1Ptr -_0806B240: .4byte gUnknown_20370B0 - thumb_func_end ScrCmd_applymovement - - thumb_func_start ScrCmd_applymovement_at -ScrCmd_applymovement_at: @ 806B244 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadWord - adds r3, r0, 0 - ldr r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - lsls r0, r4, 24 - lsrs r0, 24 - bl ScriptMovement_StartObjectMovementScript - ldr r0, _0806B284 @ =gUnknown_20370B0 - strh r4, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806B284: .4byte gUnknown_20370B0 - thumb_func_end ScrCmd_applymovement_at - - thumb_func_start WaitForMovementFinish -WaitForMovementFinish: @ 806B288 - push {lr} - ldr r0, _0806B2A4 @ =gUnknown_20370B0 - ldrb r0, [r0] - ldr r1, _0806B2A8 @ =gUnknown_20370B4 - ldrb r1, [r1] - ldr r2, _0806B2AC @ =gUnknown_20370B2 - ldrb r2, [r2] - bl ScriptMovement_IsObjectMovementFinished - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0806B2A4: .4byte gUnknown_20370B0 -_0806B2A8: .4byte gUnknown_20370B4 -_0806B2AC: .4byte gUnknown_20370B2 - thumb_func_end WaitForMovementFinish - - thumb_func_start ScrCmd_waitmovement -ScrCmd_waitmovement: @ 806B2B0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0806B2CC - ldr r0, _0806B2F0 @ =gUnknown_20370B0 - strh r1, [r0] -_0806B2CC: - ldr r1, _0806B2F4 @ =gUnknown_20370B2 - ldr r0, _0806B2F8 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x4 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, _0806B2FC @ =gUnknown_20370B4 - movs r0, 0x5 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, _0806B300 @ =WaitForMovementFinish - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B2F0: .4byte gUnknown_20370B0 -_0806B2F4: .4byte gUnknown_20370B2 -_0806B2F8: .4byte gSaveBlock1Ptr -_0806B2FC: .4byte gUnknown_20370B4 -_0806B300: .4byte WaitForMovementFinish - thumb_func_end ScrCmd_waitmovement - - thumb_func_start ScrCmd_waitmovement_at -ScrCmd_waitmovement_at: @ 806B304 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0806B320 - ldr r0, _0806B348 @ =gUnknown_20370B0 - strh r1, [r0] -_0806B320: - ldr r0, [r4, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, _0806B34C @ =gUnknown_20370B2 - strh r2, [r0] - ldr r0, _0806B350 @ =gUnknown_20370B4 - strh r1, [r0] - ldr r1, _0806B354 @ =WaitForMovementFinish - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B348: .4byte gUnknown_20370B0 -_0806B34C: .4byte gUnknown_20370B2 -_0806B350: .4byte gUnknown_20370B4 -_0806B354: .4byte WaitForMovementFinish - thumb_func_end ScrCmd_waitmovement_at - - thumb_func_start ScrCmd_removeobject -ScrCmd_removeobject: @ 806B358 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B37C @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl RemoveFieldObjectByLocalIdAndMap - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B37C: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_removeobject - - thumb_func_start ScrCmd_removeobject_at -ScrCmd_removeobject_at: @ 806B380 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl RemoveFieldObjectByLocalIdAndMap - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_removeobject_at - - thumb_func_start ScrCmd_addobject -ScrCmd_addobject: @ 806B3B0 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B3D4 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl show_sprite - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B3D4: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_addobject - - thumb_func_start ScrCmd_addobject_at -ScrCmd_addobject_at: @ 806B3D8 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl show_sprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_addobject_at - - thumb_func_start ScrCmd_setobjectxy -ScrCmd_setobjectxy: @ 806B408 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r5, 24 - lsrs r5, 24 - ldr r1, _0806B46C @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - lsls r4, 16 - asrs r4, 16 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - adds r0, r5, 0 - adds r3, r4, 0 - bl sub_805F7C4 - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806B46C: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_setobjectxy - - thumb_func_start ScrCmd_setobjectxyperm -ScrCmd_setobjectxyperm: @ 806B470 - push {r4-r6,lr} - adds r6, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r2, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 16 - asrs r4, 16 - lsls r2, 16 - asrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl Overworld_SetMapObjTemplateCoords - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectxyperm - - thumb_func_start ScrCmd_moveobjectoffscreen -ScrCmd_moveobjectoffscreen: @ 806B4C8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B4EC @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl sub_805FE94 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B4EC: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_moveobjectoffscreen - - thumb_func_start ScrCmd_showobject_at -ScrCmd_showobject_at: @ 806B4F0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_showobject_at - - thumb_func_start ScrCmd_hideobject_at -ScrCmd_hideobject_at: @ 806B520 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x1 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_hideobject_at - - thumb_func_start ScrCmd_setobjectpriority -ScrCmd_setobjectpriority: @ 806B550 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r5, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r5, 0x8] - ldrb r1, [r3] - adds r4, r3, 0x1 - str r4, [r5, 0x8] - ldrb r3, [r3, 0x1] - adds r4, 0x1 - str r4, [r5, 0x8] - lsls r0, 24 - lsrs r0, 24 - adds r3, 0x53 - lsls r3, 24 - lsrs r3, 24 - bl sub_805F3A8 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectpriority - - thumb_func_start ScrCmd_resetobjectpriority -ScrCmd_resetobjectpriority: @ 806B58C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl sub_805F400 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_resetobjectpriority - - thumb_func_start ScrCmd_faceplayer -ScrCmd_faceplayer: @ 806B5BC - push {r4,lr} - ldr r2, _0806B5EC @ =gMapObjects - ldr r0, _0806B5F0 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - ldrb r0, [r4] - lsls r0, 31 - cmp r0, 0 - beq _0806B5E4 - bl player_get_direction_lower_nybble - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectFaceOppositeDirection -_0806B5E4: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B5EC: .4byte gMapObjects -_0806B5F0: .4byte gUnknown_3005074 - thumb_func_end ScrCmd_faceplayer - - thumb_func_start ScrCmd_turnobject -ScrCmd_turnobject: @ 806B5F4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, [r4, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806B624 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl FieldObjectTurnByLocalIdAndMap - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B624: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_turnobject - - thumb_func_start ScrCmd_setobjectmovementtype -ScrCmd_setobjectmovementtype: @ 806B628 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl Overworld_SetMapObjTemplateMovementType - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setobjectmovementtype - - thumb_func_start ScrCmd_createvobject -ScrCmd_createvobject: @ 806B650 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r3, r0, 0 - ldr r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - lsls r4, 16 - asrs r4, 16 - lsls r3, 16 - asrs r3, 16 - str r2, [sp] - str r1, [sp, 0x4] - mov r0, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_805E9F8 - movs r0, 0 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_createvobject - - thumb_func_start ScrCmd_turnvobject -ScrCmd_turnvobject: @ 806B6C0 - push {lr} - ldr r2, [r0, 0x8] - ldrb r3, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - adds r0, r3, 0 - bl sub_8069058 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_turnvobject - - thumb_func_start ScrCmd_lockall -ScrCmd_lockall: @ 806B6DC - push {r4,lr} - adds r4, r0, 0 - bl sub_805642C - cmp r0, 0 - bne _0806B6FC - bl ScriptFreezeMapObjects - ldr r1, _0806B6F8 @ =sub_8069590 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - b _0806B6FE - .align 2, 0 -_0806B6F8: .4byte sub_8069590 -_0806B6FC: - movs r0, 0 -_0806B6FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_lockall - - thumb_func_start ScrCmd_lock -ScrCmd_lock: @ 806B704 - push {r4,lr} - adds r4, r0, 0 - bl sub_805642C - cmp r0, 0 - beq _0806B714 - movs r0, 0 - b _0806B752 -_0806B714: - ldr r2, _0806B738 @ =gMapObjects - ldr r0, _0806B73C @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0806B744 - bl LockSelectedMapObject - ldr r1, _0806B740 @ =sub_8069648 - adds r0, r4, 0 - bl SetupNativeScript - b _0806B750 - .align 2, 0 -_0806B738: .4byte gMapObjects -_0806B73C: .4byte gUnknown_3005074 -_0806B740: .4byte sub_8069648 -_0806B744: - bl ScriptFreezeMapObjects - ldr r1, _0806B758 @ =sub_8069590 - adds r0, r4, 0 - bl SetupNativeScript -_0806B750: - movs r0, 0x1 -_0806B752: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B758: .4byte sub_8069590 - thumb_func_end ScrCmd_lock - - thumb_func_start ScrCmd_releaseall -ScrCmd_releaseall: @ 806B75C - push {lr} - bl HideFieldMessageBox - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0806B790 @ =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806B790: .4byte gMapObjects - thumb_func_end ScrCmd_releaseall - - thumb_func_start ScrCmd_release -ScrCmd_release: @ 806B794 - push {r4,lr} - bl HideFieldMessageBox - ldr r4, _0806B7E4 @ =gMapObjects - ldr r0, _0806B7E8 @ =gUnknown_3005074 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0806B7B6 - adds r0, r1, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished -_0806B7B6: - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80974D8 - bl UnfreezeMapObjects - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806B7E4: .4byte gMapObjects -_0806B7E8: .4byte gUnknown_3005074 - thumb_func_end ScrCmd_release - - thumb_func_start sub_806B7EC -sub_806B7EC: @ 806B7EC - ldr r2, _0806B804 @ =gUnknown_20370DC - ldr r3, _0806B808 @ =gUnknown_20370DA - ldrh r1, [r3] - strh r1, [r2] - ldr r1, [r0, 0x8] - ldrb r2, [r1] - strh r2, [r3] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - .align 2, 0 -_0806B804: .4byte gUnknown_20370DC -_0806B808: .4byte gUnknown_20370DA - thumb_func_end sub_806B7EC - - thumb_func_start sub_806B80C -sub_806B80C: @ 806B80C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0806B81A - ldr r0, [r4, 0x64] -_0806B81A: - bl ShowFieldMessage - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B80C - - thumb_func_start sub_806B828 -sub_806B828: @ 806B828 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0806B836 - ldr r0, [r4, 0x64] -_0806B836: - bl sub_80F7974 - bl GetStartMenuWindowId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B828 - - thumb_func_start sub_806B850 -sub_806B850: @ 806B850 - push {lr} - bl sub_80F7998 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B850 - - thumb_func_start sub_806B85C -sub_806B85C: @ 806B85C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0806B86A - ldr r0, [r4, 0x64] -_0806B86A: - bl ShowFieldAutoScrollMessage - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B85C - - thumb_func_start sub_806B878 -sub_806B878: @ 806B878 - push {lr} - ldr r1, _0806B888 @ =IsFieldMessageBoxHidden - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806B888: .4byte IsFieldMessageBoxHidden - thumb_func_end sub_806B878 - - thumb_func_start sub_806B88C -sub_806B88C: @ 806B88C - push {lr} - bl HideFieldMessageBox - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806B88C - - thumb_func_start sub_806B898 -sub_806B898: @ 806B898 - push {r4,lr} - ldr r0, _0806B8F0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0806B922 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0806B922 - ldr r4, _0806B8F4 @ =gUnknown_3005070 - ldr r0, [r4] - bl sub_806B93C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806B906 - ldr r0, [r4] - bl sub_806B96C - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8069998 - cmp r4, 0 - beq _0806B906 - ldr r0, _0806B8F8 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - beq _0806B906 - bl sub_80699F8 - adds r0, r4, 0 - subs r0, 0x9 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0806B8FC - bl sub_8069964 - b _0806B922 - .align 2, 0 -_0806B8F0: .4byte gMain -_0806B8F4: .4byte gUnknown_3005070 -_0806B8F8: .4byte gUnknown_203ADFA -_0806B8FC: - bl sub_80699A4 - bl sub_8069970 - b _0806B922 -_0806B906: - bl sub_8112CAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806B91A - ldr r0, _0806B928 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _0806B934 -_0806B91A: - ldr r1, _0806B92C @ =gUnknown_20370AC - ldrb r0, [r1] - cmp r0, 0x78 - bne _0806B930 -_0806B922: - movs r0, 0x1 - b _0806B936 - .align 2, 0 -_0806B928: .4byte gUnknown_203ADFA -_0806B92C: .4byte gUnknown_20370AC -_0806B930: - adds r0, 0x1 - strb r0, [r1] -_0806B934: - movs r0, 0 -_0806B936: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806B898 - - thumb_func_start sub_806B93C -sub_806B93C: @ 806B93C - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r0, [r0] - cmp r0, 0x3 - bne _0806B958 - ldrb r1, [r2] - subs r1, 0x1 - lsls r1, 2 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1 - ldr r0, [r0] - ldrb r0, [r0] -_0806B958: - subs r0, 0x6B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0806B966 - movs r0, 0x1 - b _0806B968 -_0806B966: - movs r0, 0 -_0806B968: - pop {r1} - bx r1 - thumb_func_end sub_806B93C - - thumb_func_start sub_806B96C -sub_806B96C: @ 806B96C - push {lr} - ldr r2, _0806B988 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0806B990 - ldr r0, _0806B98C @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x2 - beq _0806B990 - movs r0, 0x1 - b _0806BA36 - .align 2, 0 -_0806B988: .4byte gMain -_0806B98C: .4byte gSpecialVar_Facing -_0806B990: - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0806B9AC - ldr r0, _0806B9A8 @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x1 - beq _0806B9AC - movs r0, 0x2 - b _0806BA36 - .align 2, 0 -_0806B9A8: .4byte gSpecialVar_Facing -_0806B9AC: - ldrh r1, [r2, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0806B9C8 - ldr r0, _0806B9C4 @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x3 - beq _0806B9C8 - movs r0, 0x3 - b _0806BA36 - .align 2, 0 -_0806B9C4: .4byte gSpecialVar_Facing -_0806B9C8: - ldrh r1, [r2, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0806B9E4 - ldr r0, _0806B9E0 @ =gSpecialVar_Facing - ldrh r0, [r0] - cmp r0, 0x4 - beq _0806B9E4 - movs r0, 0x4 - b _0806BA36 - .align 2, 0 -_0806B9E0: .4byte gSpecialVar_Facing -_0806B9E4: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0806B9F4 - movs r0, 0x5 - b _0806BA36 -_0806B9F4: - ldrh r2, [r2, 0x2C] - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0806BA04 - movs r0, 0x6 - b _0806BA36 -_0806BA04: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _0806BA10 - movs r0, 0x7 - b _0806BA36 -_0806BA10: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _0806BA1C - movs r0, 0x8 - b _0806BA36 -_0806BA1C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806BA28 - movs r0, 0x9 - b _0806BA36 -_0806BA28: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0806BA34 - movs r0, 0 - b _0806BA36 -_0806BA34: - movs r0, 0xA -_0806BA36: - pop {r1} - bx r1 - thumb_func_end sub_806B96C - - thumb_func_start sub_806BA3C -sub_806BA3C: @ 806BA3C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0806BA70 @ =gUnknown_3005070 - str r4, [r0] - bl sub_8112CAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BA58 - ldr r0, _0806BA74 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _0806BA5E -_0806BA58: - ldr r1, _0806BA78 @ =gUnknown_20370AC - movs r0, 0 - strb r0, [r1] -_0806BA5E: - ldr r1, _0806BA7C @ =sub_806B898 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BA70: .4byte gUnknown_3005070 -_0806BA74: .4byte gUnknown_203ADFA -_0806BA78: .4byte gUnknown_20370AC -_0806BA7C: .4byte sub_806B898 - thumb_func_end sub_806BA3C - - thumb_func_start ScrCmd_yesnobox -ScrCmd_yesnobox: @ 806BA80 - push {lr} - ldr r2, [r0, 0x8] - ldrb r3, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - adds r0, r3, 0 - bl sub_809CDEC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BAA2 - movs r0, 0 - b _0806BAA8 -_0806BAA2: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BAA8: - pop {r1} - bx r1 - thumb_func_end ScrCmd_yesnobox - - thumb_func_start ScrCmd_multichoice -ScrCmd_multichoice: @ 806BAAC - push {r4,r5,lr} - ldr r2, [r0, 0x8] - ldrb r5, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r4, r3, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r3, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - adds r0, r5, 0 - bl ScriptMenu_Multichoice - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BADA - movs r0, 0 - b _0806BAE0 -_0806BADA: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BAE0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoice - - thumb_func_start ScrCmd_multichoicedefault -ScrCmd_multichoicedefault: @ 806BAE8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r2, [r0, 0x8] - ldrb r1, [r2] - mov r8, r1 - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r5, r3, 0x1 - str r5, [r0, 0x8] - ldrb r6, [r3, 0x1] - adds r4, r5, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r5, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - str r6, [sp] - mov r0, r8 - bl ScriptMenu_MultichoiceWithDefault - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BB26 - movs r0, 0 - b _0806BB2C -_0806BB26: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BB2C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoicedefault - - thumb_func_start sub_806BB38 -sub_806BB38: @ 806BB38 - movs r0, 0 - bx lr - thumb_func_end sub_806BB38 - - thumb_func_start ScrCmd_multichoicegrid -ScrCmd_multichoicegrid: @ 806BB3C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r2, [r0, 0x8] - ldrb r1, [r2] - mov r8, r1 - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r5, r3, 0x1 - str r5, [r0, 0x8] - ldrb r6, [r3, 0x1] - adds r4, r5, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r5, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - str r6, [sp] - mov r0, r8 - bl sub_809CEC8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806BB7A - movs r0, 0 - b _0806BB80 -_0806BB7A: - bl ScriptContext1_Stop - movs r0, 0x1 -_0806BB80: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_multichoicegrid - - thumb_func_start sub_806BB8C -sub_806BB8C: @ 806BB8C - ldr r1, [r0, 0x8] - adds r1, 0x4 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end sub_806BB8C - - thumb_func_start sub_806BB98 -sub_806BB98: @ 806BB98 - movs r0, 0 - bx lr - thumb_func_end sub_806BB98 - - thumb_func_start sub_806BB9C -sub_806BB9C: @ 806BB9C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r4, 0 - bl sub_809D2F0 - adds r0, r4, 0 - movs r1, 0 - bl PlayCry7 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806BB9C - - thumb_func_start sub_806BBD8 -sub_806BBD8: @ 806BBD8 - push {r4,lr} - adds r4, r0, 0 - bl sub_809D3CC - adds r1, r0, 0 - cmp r1, 0 - beq _0806BBF0 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - b _0806BBF2 -_0806BBF0: - movs r0, 0 -_0806BBF2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806BBD8 - - thumb_func_start sub_806BBF8 -sub_806BBF8: @ 806BBF8 - ldr r1, [r0, 0x8] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end sub_806BBF8 - - thumb_func_start sub_806BC04 -sub_806BC04: @ 806BC04 - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - bl ScriptReadWord - adds r4, r0, 0 - cmp r4, 0 - bne _0806BC16 - ldr r4, [r5, 0x64] -_0806BC16: - bl sub_80F6E9C - movs r0, 0 - movs r1, 0x1 - bl sub_80F6EE4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x6 - adds r2, r4, 0 - movs r3, 0 - bl AddTextPrinterParameterized - movs r0, 0 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806BC04 - - thumb_func_start sub_806BC40 -sub_806BC40: @ 806BC40 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - cmp r1, 0 - bne _0806BC50 - ldr r1, [r4, 0x64] -_0806BC50: - ldr r4, _0806BC68 @ =gSpecialVar_0x8004 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x6 - bl GetStringWidth - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BC68: .4byte gSpecialVar_0x8004 - thumb_func_end sub_806BC40 - - thumb_func_start ScrCmd_vmessage -ScrCmd_vmessage: @ 806BC6C - push {lr} - bl ScriptReadWord - ldr r1, _0806BC84 @ =gUnknown_20370A8 - ldr r1, [r1] - subs r0, r1 - bl ShowFieldMessage - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806BC84: .4byte gUnknown_20370A8 - thumb_func_end ScrCmd_vmessage - - thumb_func_start ScrCmd_bufferspeciesname -ScrCmd_bufferspeciesname: @ 806BC88 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BCC0 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xB - muls r1, r0 - ldr r0, _0806BCC4 @ =gSpeciesNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BCC0: .4byte gUnknown_83A7294 -_0806BCC4: .4byte gSpeciesNames - thumb_func_end ScrCmd_bufferspeciesname - - thumb_func_start ScrCmd_bufferleadmonspeciesname -ScrCmd_bufferleadmonspeciesname: @ 806BCC8 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806BD08 @ =gUnknown_83A7294 - lsls r2, 2 - adds r2, r0 - ldr r4, [r2] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806BD0C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, _0806BD10 @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD08: .4byte gUnknown_83A7294 -_0806BD0C: .4byte gPlayerParty -_0806BD10: .4byte gSpeciesNames - thumb_func_end ScrCmd_bufferleadmonspeciesname - - thumb_func_start ScrCmd_bufferpartymonnick -ScrCmd_bufferpartymonnick: @ 806BD14 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806BD54 @ =gPlayerParty - adds r0, r1 - ldr r1, _0806BD58 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD54: .4byte gPlayerParty -_0806BD58: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferpartymonnick - - thumb_func_start ScrCmd_bufferitemname -ScrCmd_bufferitemname: @ 806BD5C - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BD8C @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r1, [r4] - bl sub_8099E90 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BD8C: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferitemname - - thumb_func_start sub_806BD90 -sub_806BD90: @ 806BD90 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r7, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _0806BDE4 @ =gUnknown_83A7294 - lsls r0, r7, 2 - adds r0, r1 - ldr r4, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8099E90 - cmp r5, 0x4 - bne _0806BDEC - cmp r6, 0x1 - bls _0806BDEC - ldr r1, _0806BDE8 @ =gUnknown_83A72A0 - adds r0, r4, 0 - bl StringAppend - b _0806BE22 - .align 2, 0 -_0806BDE4: .4byte gUnknown_83A7294 -_0806BDE8: .4byte gUnknown_83A72A0 -_0806BDEC: - adds r0, r5, 0 - subs r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x29 - bhi _0806BE22 - cmp r6, 0x1 - bls _0806BE22 - ldr r0, _0806BE2C @ =gUnknown_83A7294 - lsls r1, r7, 2 - adds r1, r0 - ldr r4, [r1] - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _0806BE22 - adds r0, r4, r0 - subs r0, 0x1 - movs r1, 0xFF - strb r1, [r0] - ldr r1, _0806BE30 @ =gUnknown_83A72A2 - adds r0, r4, 0 - bl StringAppend -_0806BE22: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806BE2C: .4byte gUnknown_83A7294 -_0806BE30: .4byte gUnknown_83A72A2 - thumb_func_end sub_806BD90 - - thumb_func_start sub_806BE34 -sub_806BE34: @ 806BE34 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806BE34 - - thumb_func_start ScrCmd_buffermovename -ScrCmd_buffermovename: @ 806BE50 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806BE88 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xD - muls r1, r0 - ldr r0, _0806BE8C @ =gMoveNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BE88: .4byte gUnknown_83A7294 -_0806BE8C: .4byte gMoveNames - thumb_func_end ScrCmd_buffermovename - - thumb_func_start ScrCmd_buffernumberstring -ScrCmd_buffernumberstring: @ 806BE90 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80CBF04 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _0806BED0 @ =gUnknown_83A7294 - lsls r5, 2 - adds r5, r0 - ldr r0, [r5] - adds r1, r4, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806BED0: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_buffernumberstring - - thumb_func_start ScrCmd_bufferstdstring -ScrCmd_bufferstdstring: @ 806BED4 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - ldr r1, _0806BF0C @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - ldr r1, _0806BF10 @ =gUnknown_83E06B8 - lsrs r0, 14 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF0C: .4byte gUnknown_83A7294 -_0806BF10: .4byte gUnknown_83E06B8 - thumb_func_end ScrCmd_bufferstdstring - - thumb_func_start ScrCmd_bufferstring -ScrCmd_bufferstring: @ 806BF14 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF38 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF38: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferstring - - thumb_func_start ScrCmd_vloadword -ScrCmd_vloadword: @ 806BF3C - push {lr} - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF58 @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - ldr r0, _0806BF5C @ =gStringVar4 - bl StringExpandPlaceholders - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806BF58: .4byte gUnknown_20370A8 -_0806BF5C: .4byte gStringVar4 - thumb_func_end ScrCmd_vloadword - - thumb_func_start ScrCmd_vbufferstring -ScrCmd_vbufferstring: @ 806BF60 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, _0806BF8C @ =gUnknown_20370A8 - ldr r0, [r0] - subs r1, r0 - ldr r0, _0806BF90 @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BF8C: .4byte gUnknown_20370A8 -_0806BF90: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_vbufferstring - - thumb_func_start ScrCmd_bufferboxname -ScrCmd_bufferboxname: @ 806BF94 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, _0806BFCC @ =gUnknown_83A7294 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - lsls r0, 24 - lsrs r0, 24 - bl GetBoxNamePtr - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806BFCC: .4byte gUnknown_83A7294 - thumb_func_end ScrCmd_bufferboxname - - thumb_func_start ScrCmd_givemon -ScrCmd_givemon: @ 806BFD0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl ScriptReadWord - mov r8, r0 - adds r0, r4, 0 - bl ScriptReadWord - ldr r1, [r4, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - ldr r4, _0806C04C @ =gSpecialVar_Result - str r0, [sp] - str r2, [sp, 0x4] - adds r0, r6, 0 - mov r1, r9 - adds r2, r5, 0 - mov r3, r8 - bl ScriptGiveMon - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806C04C: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_givemon - - thumb_func_start ScrCmd_giveegg -ScrCmd_giveegg: @ 806C050 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0806C078 @ =gSpecialVar_Result - bl sub_80A01AC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C078: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_giveegg - - thumb_func_start ScrCmd_setmonmove -ScrCmd_setmonmove: @ 806C07C - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - adds r2, r4, 0 - bl ScriptSetMonMoveSlot - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmonmove - - thumb_func_start ScrCmd_checkpartymove -ScrCmd_checkpartymove: @ 806C0A8 - push {r4-r7,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r7, r0, 16 - ldr r1, _0806C0BC @ =gSpecialVar_Result - movs r0, 0x6 - strh r0, [r1] - movs r6, 0 - b _0806C0F6 - .align 2, 0 -_0806C0BC: .4byte gSpecialVar_Result -_0806C0C0: - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0806C0F0 - adds r0, r4, 0 - adds r1, r7, 0 - bl pokemon_has_move - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806C0F0 - ldr r0, _0806C0E8 @ =gSpecialVar_Result - strh r6, [r0] - ldr r0, _0806C0EC @ =gSpecialVar_0x8004 - strh r5, [r0] - b _0806C116 - .align 2, 0 -_0806C0E8: .4byte gSpecialVar_Result -_0806C0EC: .4byte gSpecialVar_0x8004 -_0806C0F0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0806C0F6: - cmp r6, 0x5 - bhi _0806C116 - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _0806C120 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _0806C0C0 -_0806C116: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806C120: .4byte gPlayerParty - thumb_func_end ScrCmd_checkpartymove - - thumb_func_start ScrCmd_givemoney -ScrCmd_givemoney: @ 806C124 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0806C14A - ldr r0, _0806C154 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - bl AddMoney -_0806C14A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C154: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_givemoney - - thumb_func_start ScrCmd_takemoney -ScrCmd_takemoney: @ 806C158 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0806C17E - ldr r0, _0806C188 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - bl RemoveMoney -_0806C17E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C188: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_takemoney - - thumb_func_start ScrCmd_checkmoney -ScrCmd_checkmoney: @ 806C18C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0806C1BA - ldr r4, _0806C1C4 @ =gSpecialVar_Result - ldr r0, _0806C1C8 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - bl IsEnoughMoney - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_0806C1BA: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C1C4: .4byte gSpecialVar_Result -_0806C1C8: .4byte gSaveBlock1Ptr - thumb_func_end ScrCmd_checkmoney - - thumb_func_start sub_806C1CC -sub_806C1CC: @ 806C1CC - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r2, r1, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r1, 0x1] - adds r2, 0x1 - str r2, [r0, 0x8] - cmp r1, 0 - bne _0806C20A - ldr r0, _0806C214 @ =sub_809D6D4 - bl sub_81119D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806C20A - ldr r0, _0806C218 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - adds r1, r5, 0 - adds r2, r4, 0 - bl DrawMoneyBox -_0806C20A: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806C214: .4byte sub_809D6D4 -_0806C218: .4byte gSaveBlock1Ptr - thumb_func_end sub_806C1CC - - thumb_func_start sub_806C21C -sub_806C21C: @ 806C21C - push {lr} - bl HideMoneyBox - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806C21C - - thumb_func_start sub_806C228 -sub_806C228: @ 806C228 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x1 - adds r2, r1, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r1, 0x1] - adds r2, 0x1 - str r2, [r0, 0x8] - cmp r1, 0 - bne _0806C24E - ldr r0, _0806C254 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - bl ChangeAmountInMoneyBox -_0806C24E: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C254: .4byte gSaveBlock1Ptr - thumb_func_end sub_806C228 - - thumb_func_start sub_806C258 -sub_806C258: @ 806C258 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, _0806C290 @ =sub_809D6D4 - bl sub_81119D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0806C286 - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - adds r2, r4, 0 - bl ShowCoinsWindow -_0806C286: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806C290: .4byte sub_809D6D4 - thumb_func_end sub_806C258 - - thumb_func_start ScrCmd_hidecoinsbox -ScrCmd_hidecoinsbox: @ 806C294 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x2 - str r1, [r0, 0x8] - bl HideCoinsWindow - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_hidecoinsbox - - thumb_func_start ScrCmd_updatecoinsbox -ScrCmd_updatecoinsbox: @ 806C2A8 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x2 - str r1, [r0, 0x8] - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - bl PrintCoinsString - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_updatecoinsbox - - thumb_func_start ScrCmd_trainerbattle -ScrCmd_trainerbattle: @ 806C2C4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - bl sub_8080228 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_trainerbattle - - thumb_func_start sub_806C2D8 -sub_806C2D8: @ 806C2D8 - push {lr} - bl sub_8080464 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C2D8 - - thumb_func_start ScrCmd_ontrainerbattleend -ScrCmd_ontrainerbattleend: @ 806C2E4 - push {r4,lr} - adds r4, r0, 0 - bl sub_80805E8 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_ontrainerbattleend - - thumb_func_start ScrCmd_ontrainerbattleendgoto -ScrCmd_ontrainerbattleendgoto: @ 806C2F8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8080600 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_ontrainerbattleendgoto - - thumb_func_start ScrCmd_checktrainerflag -ScrCmd_checktrainerflag: @ 806C30C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl HasTrainerAlreadyBeenFought - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_checktrainerflag - - thumb_func_start ScrCmd_settrainerflag -ScrCmd_settrainerflag: @ 806C330 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl trainer_flag_set - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_settrainerflag - - thumb_func_start ScrCmd_cleartrainerflag -ScrCmd_cleartrainerflag: @ 806C34C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl trainer_flag_clear - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_cleartrainerflag - - thumb_func_start ScrCmd_setwildbattle -ScrCmd_setwildbattle: @ 806C368 - push {r4-r6,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r0, [r4, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r6, 0 - bl CreateScriptedWildMon - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setwildbattle - - thumb_func_start sub_806C39C -sub_806C39C: @ 806C39C - push {lr} - bl sub_807F8C4 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C39C - - thumb_func_start sub_806C3AC -sub_806C3AC: @ 806C3AC - push {lr} - bl ScriptReadWord - bl sub_809C164 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C3AC - - thumb_func_start sub_806C3C0 -sub_806C3C0: @ 806C3C0 - push {lr} - bl ScriptReadWord - bl sub_809C1A0 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C3C0 - - thumb_func_start sub_806C3D4 -sub_806C3D4: @ 806C3D4 - push {lr} - bl ScriptReadWord - bl sub_809C1BC - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C3D4 - - thumb_func_start ScrCmd_playslotmachine -ScrCmd_playslotmachine: @ 806C3E8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0806C40C @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl sub_813F804 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806C40C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end ScrCmd_playslotmachine - - thumb_func_start sub_806C410 -sub_806C410: @ 806C410 - movs r0, 0 - bx lr - thumb_func_end sub_806C410 - - thumb_func_start sub_806C414 -sub_806C414: @ 806C414 - movs r0, 0 - bx lr - thumb_func_end sub_806C414 - - thumb_func_start sub_806C418 -sub_806C418: @ 806C418 - push {lr} - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_806C418 - - thumb_func_start sub_806C424 -sub_806C424: @ 806C424 - movs r0, 0 - bx lr - thumb_func_end sub_806C424 - - thumb_func_start sub_806C428 -sub_806C428: @ 806C428 - movs r0, 0 - bx lr - thumb_func_end sub_806C428 - - thumb_func_start sub_806C42C -sub_806C42C: @ 806C42C - movs r0, 0 - bx lr - thumb_func_end sub_806C42C - - thumb_func_start ScrCmd_dofieldeffect -ScrCmd_dofieldeffect: @ 806C430 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0806C454 @ =gUnknown_20370B6 - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl FieldEffectStart - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C454: .4byte gUnknown_20370B6 - thumb_func_end ScrCmd_dofieldeffect - - thumb_func_start ScrCmd_setfieldeffectarg -ScrCmd_setfieldeffectarg: @ 806C458 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, _0806C484 @ =gFieldEffectArguments - lsls r4, 2 - adds r4, r1 - lsls r0, 16 - asrs r0, 16 - str r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C484: .4byte gFieldEffectArguments - thumb_func_end ScrCmd_setfieldeffectarg - - thumb_func_start WaitForFieldEffectFinish -WaitForFieldEffectFinish: @ 806C488 - push {lr} - ldr r0, _0806C49C @ =gUnknown_20370B6 - ldrb r0, [r0] - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - beq _0806C4A0 - movs r0, 0 - b _0806C4A2 - .align 2, 0 -_0806C49C: .4byte gUnknown_20370B6 -_0806C4A0: - movs r0, 0x1 -_0806C4A2: - pop {r1} - bx r1 - thumb_func_end WaitForFieldEffectFinish - - thumb_func_start ScrCmd_waitfieldeffect -ScrCmd_waitfieldeffect: @ 806C4A8 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, _0806C4CC @ =gUnknown_20370B6 - strh r0, [r1] - ldr r1, _0806C4D0 @ =WaitForFieldEffectFinish - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C4CC: .4byte gUnknown_20370B6 -_0806C4D0: .4byte WaitForFieldEffectFinish - thumb_func_end ScrCmd_waitfieldeffect - - thumb_func_start ScrCmd_setrespawn -ScrCmd_setrespawn: @ 806C4D4 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sub_80554CC - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_setrespawn - - thumb_func_start ScrCmd_checkplayergender -ScrCmd_checkplayergender: @ 806C4F0 - ldr r1, _0806C500 @ =gSpecialVar_Result - ldr r0, _0806C504 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - strh r0, [r1] - movs r0, 0 - bx lr - .align 2, 0 -_0806C500: .4byte gSpecialVar_Result -_0806C504: .4byte gSaveBlock2Ptr - thumb_func_end ScrCmd_checkplayergender - - thumb_func_start ScrCmd_playmoncry -ScrCmd_playmoncry: @ 806C508 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl PlayCry7 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_playmoncry - - thumb_func_start sub_806C540 -sub_806C540: @ 806C540 - push {lr} - ldr r1, _0806C550 @ =IsCryFinished - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806C550: .4byte IsCryFinished - thumb_func_end sub_806C540 - - thumb_func_start ScrCmd_setmetatile -ScrCmd_setmetatile: @ 806C554 - push {r4-r7,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - adds r1, r6, 0x7 - lsls r1, 16 - lsrs r6, r1, 16 - adds r1, r5, 0x7 - lsls r1, 16 - lsrs r5, r1, 16 - cmp r0, 0 - bne _0806C5B8 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r7, 0 - bl MapGridSetMetatileIdAt - b _0806C5CA -_0806C5B8: - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - adds r2, r7, 0 - orrs r2, r0 - adds r0, r6, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0806C5CA: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setmetatile - - thumb_func_start ScrCmd_opendoor -ScrCmd_opendoor: @ 806C5D4 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - adds r5, 0x7 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r4, r0 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_805B364 - lsls r0, 16 - lsrs r0, 16 - bl PlaySE - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_805B310 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_opendoor - - thumb_func_start ScrCmd_closedoor -ScrCmd_closedoor: @ 806C62C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805B2D0 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_closedoor - - thumb_func_start sub_806C670 -sub_806C670: @ 806C670 - push {lr} - bl sub_805B350 - lsls r0, 24 - cmp r0, 0 - beq _0806C680 - movs r0, 0 - b _0806C682 -_0806C680: - movs r0, 0x1 -_0806C682: - pop {r1} - bx r1 - thumb_func_end sub_806C670 - - thumb_func_start sub_806C688 -sub_806C688: @ 806C688 - push {lr} - ldr r1, _0806C698 @ =sub_806C670 - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0806C698: .4byte sub_806C670 - thumb_func_end sub_806C688 - - thumb_func_start ScrCmd_setdooropen -ScrCmd_setdooropen: @ 806C69C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805B268 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdooropen - - thumb_func_start ScrCmd_setdoorclosed -ScrCmd_setdoorclosed: @ 806C6E0 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805B29C - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ScrCmd_setdoorclosed - - thumb_func_start sub_806C724 -sub_806C724: @ 806C724 - movs r0, 0 - bx lr - thumb_func_end sub_806C724 - - thumb_func_start sub_806C728 -sub_806C728: @ 806C728 - movs r0, 0 - bx lr - thumb_func_end sub_806C728 - - thumb_func_start ScrCmd_checkcoins -ScrCmd_checkcoins: @ 806C72C - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - bl GetCoins - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ScrCmd_checkcoins - - thumb_func_start ScrCmd_givecoins -ScrCmd_givecoins: @ 806C74C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GiveCoins - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806C774 - ldr r1, _0806C770 @ =gSpecialVar_Result - movs r0, 0 - b _0806C778 - .align 2, 0 -_0806C770: .4byte gSpecialVar_Result -_0806C774: - ldr r1, _0806C780 @ =gSpecialVar_Result - movs r0, 0x1 -_0806C778: - strh r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C780: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_givecoins - - thumb_func_start ScrCmd_takecoins -ScrCmd_takecoins: @ 806C784 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl TakeCoins - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806C7AC - ldr r1, _0806C7A8 @ =gSpecialVar_Result - movs r0, 0 - b _0806C7B0 - .align 2, 0 -_0806C7A8: .4byte gSpecialVar_Result -_0806C7AC: - ldr r1, _0806C7B8 @ =gSpecialVar_Result - movs r0, 0x1 -_0806C7B0: - strh r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0806C7B8: .4byte gSpecialVar_Result - thumb_func_end ScrCmd_takecoins - - thumb_func_start sub_806C7BC -sub_806C7BC: @ 806C7BC - push {lr} - bl sub_8069A20 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806C7BC - - thumb_func_start sub_806C7C8 -sub_806C7C8: @ 806C7C8 - push {lr} - bl sub_8069A2C - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_806C7C8 - - thumb_func_start ScrCmd_setmonobedient -ScrCmd_setmonobedient: @ 806C7D4 - push {lr} - sub sp, 0x4 - movs r2, 0x1 - mov r1, sp - strb r2, [r1] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806C808 @ =gPlayerParty - adds r0, r1 - movs r1, 0x50 - mov r2, sp - bl SetMonData - movs r0, 0 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_0806C808: .4byte gPlayerParty - thumb_func_end ScrCmd_setmonobedient - - thumb_func_start ScrCmd_checkmonobedience -ScrCmd_checkmonobedience: @ 806C80C - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, _0806C83C @ =gSpecialVar_Result - movs r1, 0x64 - muls r0, r1 - ldr r1, _0806C840 @ =gPlayerParty - adds r0, r1 - movs r1, 0x50 - movs r2, 0 - bl GetMonData - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C83C: .4byte gSpecialVar_Result -_0806C840: .4byte gPlayerParty - thumb_func_end ScrCmd_checkmonobedience - - thumb_func_start sub_806C844 -sub_806C844: @ 806C844 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, [r4, 0x8] - ldrb r2, [r0] - mov r1, sp - strb r2, [r1] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r3, 0x5 - bhi _0806C87A - movs r0, 0x64 - muls r0, r3 - ldr r1, _0806C884 @ =gPlayerParty - adds r0, r1 - movs r1, 0x23 - mov r2, sp - bl SetMonData -_0806C87A: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0806C884: .4byte gPlayerParty - thumb_func_end sub_806C844 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_menu.s b/asm/script_menu.s index f1127591d..69e487bcc 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -301,7 +301,7 @@ _0809CB7A: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow ldr r0, [sp, 0x18] adds r1, r7, 0 adds r2, r5, 0 @@ -578,7 +578,7 @@ _0809CD82: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 b _0809CDE0 .align 2, 0 _0809CDAC: .4byte gUnknown_83E0738 @@ -603,7 +603,7 @@ _0809CDB0: movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 _0809CDE0: add sp, 0x10 pop {r4} @@ -613,8 +613,8 @@ _0809CDE0: _0809CDE8: .4byte gUnknown_83E0748 thumb_func_end sub_809CD48 - thumb_func_start sub_809CDEC -sub_809CDEC: @ 809CDEC + thumb_func_start ScriptMenu_YesNo +ScriptMenu_YesNo: @ 809CDEC push {r4,lr} ldr r4, _0809CE04 @ =task_yes_no_maybe adds r0, r4, 0 @@ -649,7 +649,7 @@ _0809CE28: .align 2, 0 _0809CE30: .4byte gSpecialVar_Result _0809CE34: .4byte sub_809D6D4 - thumb_func_end sub_809CDEC + thumb_func_end ScriptMenu_YesNo thumb_func_start sub_809CE38 sub_809CE38: @ 809CE38 @@ -690,7 +690,7 @@ task_yes_no_maybe: @ 809CE54 .align 2, 0 _0809CE74: .4byte gTasks _0809CE78: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 @@ -733,8 +733,8 @@ _0809CEBC: _0809CEC4: .4byte gSpecialVar_Result thumb_func_end task_yes_no_maybe - thumb_func_start sub_809CEC8 -sub_809CEC8: @ 809CEC8 + thumb_func_start ScriptMenu_MultichoiceGrid +ScriptMenu_MultichoiceGrid: @ 809CEC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -862,7 +862,7 @@ _0809CFCC: .4byte gSpecialVar_Result _0809CFD0: .4byte sub_809D6D4 _0809CFD4: .4byte gUnknown_83E04B0 _0809CFD8: .4byte gTasks - thumb_func_end sub_809CEC8 + thumb_func_end ScriptMenu_MultichoiceGrid thumb_func_start sub_809CFDC sub_809CFDC: @ 809CFDC @@ -1138,7 +1138,7 @@ _0809D1FA: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 mov r1, r9 adds r2, r6, 0 @@ -1178,7 +1178,7 @@ sub_809D254: @ 809D254 movs r0, 0 movs r1, 0x2 movs r3, 0 - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 add sp, 0x10 pop {r0} bx r0 @@ -1241,8 +1241,8 @@ _0809D2E8: bx r0 thumb_func_end sub_809D288 - thumb_func_start sub_809D2F0 -sub_809D2F0: @ 809D2F0 + thumb_func_start ScriptMenu_ShowPokemonPic +ScriptMenu_ShowPokemonPic: @ 809D2F0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1344,10 +1344,10 @@ _0809D3C2: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_809D2F0 + thumb_func_end ScriptMenu_ShowPokemonPic - thumb_func_start sub_809D3CC -sub_809D3CC: @ 809D3CC + thumb_func_start ScriptMenu_GetPicboxWaitFunc +ScriptMenu_GetPicboxWaitFunc: @ 809D3CC push {lr} ldr r0, _0809D3F0 @ =sub_809D288 bl FindTaskIdByFunc @@ -1374,7 +1374,7 @@ _0809D3FC: _0809D3FE: pop {r1} bx r1 - thumb_func_end sub_809D3CC + thumb_func_end ScriptMenu_GetPicboxWaitFunc thumb_func_start sub_809D404 sub_809D404: @ 809D404 @@ -1721,7 +1721,7 @@ sub_809D6B0: @ 809D6B0 bl ClearWindowTilemap adds r0, r4, 0 movs r1, 0x1 - bl sub_810F4D8 + bl ClearMenuWindow adds r0, r4, 0 bl RemoveWindow pop {r4} @@ -1732,7 +1732,7 @@ sub_809D6B0: @ 809D6B0 thumb_func_start sub_809D6D4 sub_809D6D4: @ 809D6D4 push {lr} - ldr r0, _0809D74C @ =gUnknown_81A7AE0 + ldr r0, _0809D74C @ =EventScript_1A7AE0 bl ScriptContext1_SetupScript ldr r0, _0809D750 @ =sub_809D288 bl FindTaskIdByFunc @@ -1788,7 +1788,7 @@ _0809D748: pop {r0} bx r0 .align 2, 0 -_0809D74C: .4byte gUnknown_81A7AE0 +_0809D74C: .4byte EventScript_1A7AE0 _0809D750: .4byte sub_809D288 _0809D754: .4byte gTasks+0x8 _0809D758: .4byte gSprites @@ -1925,7 +1925,7 @@ _0809D844: bl AddTextPrinterParameterized adds r0, r6, 0x1 lsls r0, 24 - ldr r2, _0809D8BC @ =gUnknown_84161C8 + ldr r2, _0809D8BC @ =gOtherText_Exit lsrs r0, 20 adds r0, 0x2 lsls r0, 24 @@ -1946,7 +1946,7 @@ _0809D844: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 mov r1, r9 adds r2, r7, 0 @@ -1964,7 +1964,7 @@ _0809D8A8: bx r0 .align 2, 0 _0809D8B8: .4byte gUnknown_8417DED -_0809D8BC: .4byte gUnknown_84161C8 +_0809D8BC: .4byte gOtherText_Exit thumb_func_end sub_809D764 thumb_func_start sub_809D8C0 diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s index 191457abe..60f416b48 100644 --- a/asm/script_pokemon_util_80A0058.s +++ b/asm/script_pokemon_util_80A0058.s @@ -170,8 +170,8 @@ _080A0196: bx r1 thumb_func_end ScriptGiveMon - thumb_func_start sub_80A01AC -sub_80A01AC: @ 80A01AC + thumb_func_start ScriptGiveEgg +ScriptGiveEgg: @ 80A01AC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 @@ -202,7 +202,7 @@ sub_80A01AC: @ 80A01AC pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80A01AC + thumb_func_end ScriptGiveEgg thumb_func_start CheckForAlivePartyMons CheckForAlivePartyMons: @ 80A01F4 diff --git a/asm/script_pokemon_util_80BF8FC.s b/asm/script_pokemon_util_80BF8FC.s index eec41cf11..26c113dfd 100644 --- a/asm/script_pokemon_util_80BF8FC.s +++ b/asm/script_pokemon_util_80BF8FC.s @@ -112,14 +112,14 @@ sub_80BF9BC: @ 80BF9BC subs r2, 0x1 lsls r2, 24 lsrs r2, 24 - ldr r3, _080BF9FC @ =c2_exit_to_overworld_2_switch + ldr r3, _080BF9FC @ =CB2_ReturnToField movs r4, 0 str r4, [sp] bl sub_8134738 movs r0, 0x3 bl sub_8138B38 - ldr r1, _080BFA00 @ =gUnknown_3005020 - ldr r0, _080BFA04 @ =sub_807DD24 + ldr r1, _080BFA00 @ =gFieldCallback + ldr r0, _080BFA04 @ =FieldCallback_ReturnToEventScript2 str r0, [r1] add sp, 0x4 pop {r4} @@ -129,9 +129,9 @@ sub_80BF9BC: @ 80BF9BC _080BF9F0: .4byte gPlayerParty _080BF9F4: .4byte gSpecialVar_0x8004 _080BF9F8: .4byte gPlayerPartyCount -_080BF9FC: .4byte c2_exit_to_overworld_2_switch -_080BFA00: .4byte gUnknown_3005020 -_080BFA04: .4byte sub_807DD24 +_080BF9FC: .4byte CB2_ReturnToField +_080BFA00: .4byte gFieldCallback +_080BFA04: .4byte FieldCallback_ReturnToEventScript2 thumb_func_end sub_80BF9BC thumb_func_start ScrSpecial_CountPokemonMoves diff --git a/asm/seagallop.s b/asm/seagallop.s deleted file mode 100644 index 89f8c2867..000000000 --- a/asm/seagallop.s +++ /dev/null @@ -1,795 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8146E78 -sub_8146E78: @ 8146E78 - push {lr} - movs r0, 0 - bl SetVBlankCallback - bl sub_812B478 - ldr r0, _08146E90 @ =sub_8146E94 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08146E90: .4byte sub_8146E94 - thumb_func_end sub_8146E78 - - thumb_func_start sub_8146E94 -sub_8146E94: @ 8146E94 - push {r4,lr} - sub sp, 0x8 - ldr r0, _08146EB4 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08146EA8 - b _0814703C -_08146EA8: - lsls r0, 2 - ldr r1, _08146EB8 @ =_08146EBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08146EB4: .4byte gMain -_08146EB8: .4byte _08146EBC - .align 2, 0 -_08146EBC: - .4byte _08146EDC - .4byte _08146EE8 - .4byte _08146EEE - .4byte _08146F20 - .4byte _08146F8C - .4byte _08146FAC - .4byte _08146FBE - .4byte _08146FE4 -_08146EDC: - movs r0, 0 - bl SetVBlankCallback - bl sub_81471C4 - b _08146FCE -_08146EE8: - bl sub_81472FC - b _08146FCE -_08146EEE: - ldr r4, _08146F18 @ =gUnknown_203F3D0 - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - str r0, [r4] - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08146F1C @ =gUnknown_846AEF8 - movs r0, 0 - movs r2, 0x1 - bl InitBgsFromTemplates - ldr r1, [r4] - movs r0, 0x3 - bl SetBgTilemapBuffer - bl sub_814732C - b _08146FCE - .align 2, 0 -_08146F18: .4byte gUnknown_203F3D0 -_08146F1C: .4byte gUnknown_846AEF8 -_08146F20: - ldr r1, _08146F50 @ =gUnknown_8468C98 - movs r2, 0xA4 - lsls r2, 3 - movs r0, 0x3 - movs r3, 0 - bl LoadBgTiles - bl sub_81474CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08146F58 - ldr r1, _08146F54 @ =gUnknown_84699D8 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect - b _08146F6A - .align 2, 0 -_08146F50: .4byte gUnknown_8468C98 -_08146F54: .4byte gUnknown_84699D8 -_08146F58: - ldr r1, _08146F84 @ =gUnknown_84691D8 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect -_08146F6A: - ldr r0, _08146F88 @ =gUnknown_84691B8 - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x2 - bl stdpal_get - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - b _08146FCE - .align 2, 0 -_08146F84: .4byte gUnknown_84691D8 -_08146F88: .4byte gUnknown_84691B8 -_08146F8C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0814703C - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _08146FCE -_08146FAC: - bl sub_8147384 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _08146FCE -_08146FBE: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_08146FCE: - ldr r1, _08146FE0 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0814703C - .align 2, 0 -_08146FE0: .4byte gMain -_08146FE4: - bl sub_814731C - ldr r0, _08147044 @ =sub_8147058 - bl SetVBlankCallback - movs r0, 0x13 - bl PlaySE - bl sub_81473C4 - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - ldr r1, _08147048 @ =0x00001888 - movs r0, 0x44 - bl SetGpuReg - ldr r0, _0814704C @ =sub_8147084 - movs r1, 0x8 - bl CreateTask - ldr r0, _08147050 @ =sub_814706C - bl SetMainCallback2 - ldr r0, _08147054 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0814703C: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147044: .4byte sub_8147058 -_08147048: .4byte 0x00001888 -_0814704C: .4byte sub_8147084 -_08147050: .4byte sub_814706C -_08147054: .4byte gMain - thumb_func_end sub_8146E94 - - thumb_func_start sub_8147058 -sub_8147058: @ 8147058 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8147058 - - thumb_func_start sub_814706C -sub_814706C: @ 814706C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_814706C - - thumb_func_start sub_8147084 -sub_8147084: @ 8147084 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147098 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0814709C @ =sub_81470CC - str r0, [r1] - bx lr - .align 2, 0 -_08147098: .4byte gTasks -_0814709C: .4byte sub_81470CC - thumb_func_end sub_8147084 - - thumb_func_start sub_81470A0 -sub_81470A0: @ 81470A0 - push {lr} - bl sub_81474CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081470BC - movs r1, 0xC0 - lsls r1, 3 - movs r0, 0x3 - movs r2, 0x1 - bl ChangeBgX - b _081470C8 -_081470BC: - movs r1, 0xC0 - lsls r1, 3 - movs r0, 0x3 - movs r2, 0x2 - bl ChangeBgX -_081470C8: - pop {r0} - bx r0 - thumb_func_end sub_81470A0 - - thumb_func_start sub_81470CC -sub_81470CC: @ 81470CC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08147100 @ =gTasks - adds r4, r1, r0 - bl sub_81470A0 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8C - bne _081470FA - bl Overworld_FadeOutMapMusic - bl sub_807DC18 - ldr r0, _08147104 @ =sub_8147108 - str r0, [r4] -_081470FA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147100: .4byte gTasks -_08147104: .4byte sub_8147108 - thumb_func_end sub_81470CC - - thumb_func_start sub_8147108 -sub_8147108: @ 8147108 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81470A0 - bl sub_8055FC4 - lsls r0, 24 - cmp r0, 0 - beq _08147136 - ldr r0, _0814713C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08147136 - bl sub_8147140 - bl sub_812B484 - adds r0, r4, 0 - bl DestroyTask -_08147136: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814713C: .4byte gPaletteFade - thumb_func_end sub_8147108 - - thumb_func_start sub_8147140 -sub_8147140: @ 8147140 - push {r4,lr} - sub sp, 0x4 - ldr r1, _081471AC @ =gSpecialVar_0x8006 - ldrh r0, [r1] - cmp r0, 0xA - bls _08147150 - movs r0, 0 - strh r0, [r1] -_08147150: - ldrh r4, [r1] - lsls r4, 2 - ldr r0, _081471B0 @ =gUnknown_846AEFC - adds r4, r0 - movs r0, 0 - ldrsb r0, [r4, r0] - movs r1, 0x1 - ldrsb r1, [r4, r1] - movs r2, 0x1 - negs r2, r2 - movs r3, 0x2 - ldrsb r3, [r4, r3] - ldrb r4, [r4, 0x3] - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl Overworld_SetWarpDestination - bl play_some_sound - movs r0, 0x9 - bl PlaySE - ldr r1, _081471B4 @ =gUnknown_3005020 - ldr r0, _081471B8 @ =sub_807DF64 - str r0, [r1] - bl warp_in - ldr r0, _081471BC @ =sub_805671C - bl SetMainCallback2 - bl sub_80559E4 - bl sub_81473A0 - ldr r0, _081471C0 @ =gUnknown_203F3D0 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081471AC: .4byte gSpecialVar_0x8006 -_081471B0: .4byte gUnknown_846AEFC -_081471B4: .4byte gUnknown_3005020 -_081471B8: .4byte sub_807DF64 -_081471BC: .4byte sub_805671C -_081471C0: .4byte gUnknown_203F3D0 - thumb_func_end sub_8147140 - - thumb_func_start sub_81471C4 -sub_81471C4: @ 81471C4 - 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, _081472F4 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _081472F8 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_081471EA: - 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 _081471EA - 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, _081472F4 @ =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, 0x8 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0xC - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0xE - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081472F4: .4byte 0x040000d4 -_081472F8: .4byte 0x81000800 - thumb_func_end sub_81471C4 - - thumb_func_start sub_81472FC -sub_81472FC: @ 81472FC - push {lr} - bl remove_some_task - bl ResetTasks - bl ResetSpriteData - bl dp13_810BB8C - bl ResetPaletteFade - bl FreeAllSpritePalettes - pop {r0} - bx r0 - thumb_func_end sub_81472FC - - thumb_func_start sub_814731C -sub_814731C: @ 814731C - push {lr} - movs r1, 0xCA - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_814731C - - thumb_func_start sub_814732C -sub_814732C: @ 814732C - push {lr} - 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 - pop {r0} - bx r0 - thumb_func_end sub_814732C - - thumb_func_start sub_8147384 -sub_8147384: @ 8147384 - push {lr} - ldr r0, _08147398 @ =gUnknown_846AF78 - bl LoadSpriteSheets - ldr r0, _0814739C @ =gUnknown_846AF90 - bl LoadSpritePalettes - pop {r0} - bx r0 - .align 2, 0 -_08147398: .4byte gUnknown_846AF78 -_0814739C: .4byte gUnknown_846AF90 - thumb_func_end sub_8147384 - - thumb_func_start sub_81473A0 -sub_81473A0: @ 81473A0 - push {r4,lr} - ldr r4, _081473C0 @ =0x00000bb8 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - movs r0, 0xFA - lsls r0, 4 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081473C0: .4byte 0x00000bb8 - thumb_func_end sub_81473A0 - - thumb_func_start sub_81473C4 -sub_81473C4: @ 81473C4 - push {r4,lr} - ldr r0, _081473FC @ =gUnknown_846AF60 - movs r1, 0 - movs r2, 0x5C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147400 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r4, r1, r2 - movs r0, 0x30 - strh r0, [r4, 0x2E] - bl sub_81474CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08147404 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - b _08147410 - .align 2, 0 -_081473FC: .4byte gUnknown_846AF60 -_08147400: .4byte gSprites -_08147404: - movs r0, 0xF0 - strh r0, [r4, 0x20] - movs r1, 0x2E - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x2E] -_08147410: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81473C4 - - thumb_func_start sub_8147418 -sub_8147418: @ 8147418 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r5, r0, 20 - strh r5, [r4, 0x24] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _08147446 - ldrh r0, [r4, 0x20] - adds r0, r5 - lsls r0, 16 - asrs r0, 16 - bl sub_814746C -_08147446: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - movs r1, 0x96 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r4, 0x24] - adds r0, r1 - lsls r0, 16 - movs r1, 0x96 - lsls r1, 18 - cmp r0, r1 - bls _08147466 - adds r0, r4, 0 - bl DestroySprite -_08147466: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8147418 - - thumb_func_start sub_814746C -sub_814746C: @ 814746C - push {r4,lr} - adds r1, r0, 0 - ldr r0, _081474A8 @ =gUnknown_846AFD0 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x5C - movs r3, 0x8 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _081474A2 - bl sub_81474CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081474A2 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _081474AC @ =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim -_081474A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081474A8: .4byte gUnknown_846AFD0 -_081474AC: .4byte gSprites - thumb_func_end sub_814746C - - thumb_func_start sub_81474B0 -sub_81474B0: @ 81474B0 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081474C6 - adds r0, r2, 0 - bl DestroySprite -_081474C6: - pop {r0} - bx r0 - thumb_func_end sub_81474B0 - - thumb_func_start sub_81474CC -sub_81474CC: @ 81474CC - push {lr} - ldr r2, _081474EC @ =gSpecialVar_0x8004 - ldrh r0, [r2] - cmp r0, 0xA - bhi _081474F8 - ldr r1, _081474F0 @ =gUnknown_846AF28 - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldr r1, _081474F4 @ =gSpecialVar_0x8006 - ldrh r1, [r1] - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - b _081474FA - .align 2, 0 -_081474EC: .4byte gSpecialVar_0x8004 -_081474F0: .4byte gUnknown_846AF28 -_081474F4: .4byte gSpecialVar_0x8006 -_081474F8: - movs r0, 0x1 -_081474FA: - pop {r1} - bx r1 - thumb_func_end sub_81474CC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/shop.s b/asm/shop.s index 60b92410d..c59fb15df 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -74,7 +74,7 @@ _0809AAF8: movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] @@ -288,18 +288,18 @@ _0809ACD0: .4byte sub_809AD40 thumb_func_start sub_809ACD4 sub_809ACD4: @ 809ACD4 push {lr} - ldr r2, _0809ACEC @ =c2_exit_to_overworld_2_switch + ldr r2, _0809ACEC @ =CB2_ReturnToField movs r0, 0x2 movs r1, 0x3 bl sub_8107DB4 - ldr r1, _0809ACF0 @ =gUnknown_3005020 + ldr r1, _0809ACF0 @ =gFieldCallback ldr r0, _0809ACF4 @ =sub_809AD74 str r0, [r1] pop {r0} bx r0 .align 2, 0 -_0809ACEC: .4byte c2_exit_to_overworld_2_switch -_0809ACF0: .4byte gUnknown_3005020 +_0809ACEC: .4byte CB2_ReturnToField +_0809ACF0: .4byte gFieldCallback _0809ACF4: .4byte sub_809AD74 thumb_func_end sub_809ACD4 @@ -332,7 +332,7 @@ sub_809AD24: @ 809AD24 ldr r4, _0809AD3C @ =gUnknown_2039950 ldrb r0, [r4] movs r1, 0x2 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] bl RemoveWindow pop {r4} @@ -477,7 +477,7 @@ _0809AE2C: adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _0809AE9C @ =gUnknown_3005E70 + ldr r0, _0809AE9C @ =gMultiuseListMenuTemplate movs r1, 0 movs r2, 0 bl ListMenuInit @@ -510,26 +510,26 @@ _0809AE2C: _0809AE90: .4byte gMain _0809AE94: .4byte gUnknown_2039934 _0809AE98: .4byte sub_809BBC0 -_0809AE9C: .4byte gUnknown_3005E70 +_0809AE9C: .4byte gMultiuseListMenuTemplate _0809AEA0: .4byte gTasks _0809AEA4: .4byte sub_809AE00 _0809AEA8: .4byte sub_809ADE4 _0809AEAC: - bl sub_80BF768 + bl VblankHblankHandlerSetZero str r4, [sp, 0x8] movs r1, 0xE0 lsls r1, 19 ldr r2, _0809AF4C @ =0x01000100 add r0, sp, 0x8 bl CpuFastSet - bl remove_some_task + bl ScanlineEffect_Stop bl reset_temp_tile_data_buffers bl FreeAllSpritePalettes bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl clear_scheduled_bg_copies_to_vram - bl sub_80984D8 + bl ResetItemMenuIconState bl sub_809AF6C lsls r0, 24 cmp r0, 0 @@ -793,7 +793,7 @@ _0809B118: movs r1, 0 movs r2, 0xE movs r3, 0x1E - bl sub_80F6B08 + bl SetBgRectPal b _0809B14E .align 2, 0 _0809B138: .4byte gUnknown_2039934 @@ -805,7 +805,7 @@ _0809B13C: movs r1, 0 movs r2, 0xC movs r3, 0x1E - bl sub_80F6B08 + bl SetBgRectPal _0809B14E: movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram @@ -904,7 +904,7 @@ _0809B1F2: movs r0, 0x2 negs r0, r0 str r0, [r1, 0x4] - ldr r5, _0809B2D4 @ =gUnknown_3005E70 + ldr r5, _0809B2D4 @ =gMultiuseListMenuTemplate str r2, [r5] ldr r6, _0809B2D8 @ =gUnknown_2039934 ldrh r0, [r6, 0x10] @@ -992,7 +992,7 @@ _0809B2BC: _0809B2C8: .4byte gUnknown_2039968 _0809B2CC: .4byte gFameCheckerText_Cancel _0809B2D0: .4byte gUnknown_2039964 -_0809B2D4: .4byte gUnknown_3005E70 +_0809B2D4: .4byte gMultiuseListMenuTemplate _0809B2D8: .4byte gUnknown_2039934 _0809B2DC: .4byte sub_809B320 _0809B2E0: .4byte sub_809B408 @@ -1000,7 +1000,7 @@ _0809B2E4: strh r0, [r5, 0xE] _0809B2E6: ldr r0, _0809B2F8 @ =gUnknown_2039934 - ldr r1, _0809B2FC @ =gUnknown_3005E70 + ldr r1, _0809B2FC @ =gMultiuseListMenuTemplate ldrh r1, [r1, 0xE] strh r1, [r0, 0x12] movs r0, 0x1 @@ -1010,7 +1010,7 @@ _0809B2F0: bx r1 .align 2, 0 _0809B2F8: .4byte gUnknown_2039934 -_0809B2FC: .4byte gUnknown_3005E70 +_0809B2FC: .4byte gMultiuseListMenuTemplate thumb_func_end sub_809B188 thumb_func_start sub_809B300 @@ -1023,7 +1023,7 @@ sub_809B300: @ 809B300 lsrs r5, 16 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8099E90 + bl CopyItemName str r6, [r4] str r5, [r4, 0x4] pop {r4-r6} @@ -1069,7 +1069,7 @@ _0809B34A: lsrs r1, 30 movs r0, 0x1 eors r0, r1 - bl sub_8098940 + bl DestroyItemMenuIcon movs r0, 0x2 negs r0, r0 cmp r5, r0 @@ -1079,7 +1079,7 @@ _0809B34A: ldrb r1, [r6, 0x17] lsls r1, 29 lsrs r1, 30 - bl sub_80988E8 + bl CreateItemMenuIcon b _0809B398 .align 2, 0 _0809B384: .4byte gUnknown_8416757 @@ -1089,7 +1089,7 @@ _0809B38C: ldrb r1, [r6, 0x17] lsls r1, 29 lsrs r1, 30 - bl sub_80988E8 + bl CreateItemMenuIcon _0809B398: ldr r3, _0809B3D4 @ =gUnknown_2039934 ldrb r2, [r3, 0x17] @@ -1233,7 +1233,7 @@ sub_809B494: @ 809B494 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r5, _0809B51C @ =gStringVar4 - ldr r1, _0809B520 @ =gUnknown_8416226 + ldr r1, _0809B520 @ =gOtherText_UnkF9_08_Clear_01 adds r0, r5, 0 bl StringCopy adds r0, r5, 0 @@ -1279,10 +1279,10 @@ sub_809B494: @ 809B494 _0809B514: .4byte gStringVar1 _0809B518: .4byte 0xfffffee0 _0809B51C: .4byte gStringVar4 -_0809B520: .4byte gUnknown_8416226 +_0809B520: .4byte gOtherText_UnkF9_08_Clear_01 _0809B524: .4byte gMoveNames _0809B528: - ldr r2, _0809B564 @ =gUnknown_8416213 + ldr r2, _0809B564 @ =gText_ThreeHyphens movs r4, 0 str r4, [sp] str r4, [sp, 0x4] @@ -1312,7 +1312,7 @@ _0809B55C: pop {r0} bx r0 .align 2, 0 -_0809B564: .4byte gUnknown_8416213 +_0809B564: .4byte gText_ThreeHyphens _0809B568: .4byte gUnknown_8416217 thumb_func_end sub_809B494 @@ -1452,17 +1452,17 @@ _0809B66C: .4byte gUnknown_2039968 thumb_func_start sub_809B670 sub_809B670: @ 809B670 push {lr} - ldr r0, _0809B684 @ =gUnknown_3005020 + ldr r0, _0809B684 @ =gFieldCallback ldr r1, _0809B688 @ =sub_809AD74 str r1, [r0] - ldr r0, _0809B68C @ =c2_exit_to_overworld_2_switch + ldr r0, _0809B68C @ =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 -_0809B684: .4byte gUnknown_3005020 +_0809B684: .4byte gFieldCallback _0809B688: .4byte sub_809AD74 -_0809B68C: .4byte c2_exit_to_overworld_2_switch +_0809B68C: .4byte CB2_ReturnToField thumb_func_end sub_809B670 thumb_func_start sub_809B690 @@ -1510,7 +1510,7 @@ _0809B6C4: movs r2, 0x8 movs r3, 0x58 _0809B6E2: - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized lsls r0, 3 ldrb r2, [r4, 0x17] movs r1, 0x7 @@ -1542,7 +1542,7 @@ sub_809B6FC: @ 809B6FC movs r1, 0x98 movs r2, 0x48 movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized + bl AddScrollIndicatorArrowPairParameterized lsls r0, 3 ldrb r2, [r4, 0x17] movs r1, 0x7 @@ -1632,7 +1632,7 @@ _0809B7B2: movs r3, 0 ldrsh r1, [r2, r3] adds r1, r7 - bl sub_8058E48 + bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r5, r0, 16 mov r0, sp @@ -1645,7 +1645,7 @@ _0809B7B2: adds r1, r7, r1 lsls r1, 16 asrs r1, 16 - bl sub_8058F8C + bl MapGridGetMetatileLayerTypeAt lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0809B808 @ =0x0000027f @@ -2017,7 +2017,7 @@ _0809BA56: str r0, [sp] adds r0, r4, 0 ldr r1, _0809BAF4 @ =SpriteCallbackDummy - bl AddPseudoFieldObject + bl AddPseudoEventObject lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 @@ -2119,7 +2119,7 @@ sub_809BB44: @ 809BB44 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, _0809BBB8 @ =gStringVar4 - ldr r1, _0809BBBC @ =gUnknown_84162B9 + ldr r1, _0809BBBC @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0xA @@ -2144,7 +2144,7 @@ _0809BBAC: .4byte gTasks+0x8 _0809BBB0: .4byte gUnknown_2039934 _0809BBB4: .4byte gStringVar1 _0809BBB8: .4byte gStringVar4 -_0809BBBC: .4byte gUnknown_84162B9 +_0809BBBC: .4byte gText_TimesStrVar1 thumb_func_end sub_809BB44 thumb_func_start sub_809BBC0 @@ -2170,7 +2170,7 @@ sub_809BBC0: @ 809BBC0 ldr r7, _0809BC08 @ =gUnknown_2039942 subs r2, r7, 0x2 adds r1, r7, 0 - bl get_coro_args_x18_x1A + bl ListMenuGetScrollAndRow movs r0, 0x2 negs r0, r0 cmp r4, r0 @@ -2232,7 +2232,7 @@ _0809BC78: .4byte sub_809BF98 _0809BC7C: ldr r1, _0809BC94 @ =gStringVar1 adds r0, r4, 0 - bl sub_8099E90 + bl CopyItemName ldr r1, _0809BC98 @ =gUnknown_8416766 ldr r2, _0809BC9C @ =sub_809BCA0 adds r0, r6, 0 @@ -2259,7 +2259,7 @@ sub_809BCA0: @ 809BCA0 ldr r0, _0809BD40 @ =gTasks+0x8 adds r5, r0 ldrh r0, [r5, 0xA] - bl sub_809A7DC + bl BagGetQuantityByItemId adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 @@ -2396,10 +2396,10 @@ _0809BDD4: bl sub_809B73C movs r0, 0x3 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x1 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x3 bl ClearWindowTilemap movs r0, 0x1 @@ -2408,7 +2408,7 @@ _0809BDD4: bl PutWindowTilemap ldrh r0, [r4, 0xA] ldr r1, _0809BE40 @ =gStringVar1 - bl sub_8099E90 + bl CopyItemName ldr r0, _0809BE44 @ =gStringVar2 movs r2, 0x2 ldrsh r1, [r4, r2] @@ -2442,10 +2442,10 @@ _0809BE54: bl sub_809B73C movs r0, 0x3 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x1 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x3 bl ClearWindowTilemap movs r0, 0x1 @@ -2485,7 +2485,7 @@ sub_809BEA4: @ 809BEA4 bl PutWindowTilemap ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x2] - bl sub_809A084 + bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2601,7 +2601,7 @@ sub_809BF98: @ 809BF98 adds r4, r5, r6 movs r0, 0x2 movs r1, 0 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 ldrb r0, [r4, 0xE] movs r1, 0x1 bl sub_809B57C @@ -2644,7 +2644,7 @@ sub_809C004: @ 809C004 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, _0809C03C @ =gUnknown_3005020 + ldr r1, _0809C03C @ =gFieldCallback ldr r0, _0809C040 @ =sub_809AD74 str r0, [r1] movs r0, 0x1 @@ -2666,7 +2666,7 @@ sub_809C004: @ 809C004 pop {r0} bx r0 .align 2, 0 -_0809C03C: .4byte gUnknown_3005020 +_0809C03C: .4byte gFieldCallback _0809C040: .4byte sub_809AD74 _0809C044: .4byte gTasks _0809C048: .4byte sub_809C04C @@ -2691,9 +2691,9 @@ sub_809C04C: @ 809C04C ldrb r0, [r2, 0xE] movs r1, 0 movs r2, 0 - bl sub_810713C + bl DestroyListMenu bl sub_809B604 - ldr r0, _0809C090 @ =c2_exit_to_overworld_2_switch + ldr r0, _0809C090 @ =CB2_ReturnToField bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -2704,7 +2704,7 @@ _0809C082: .align 2, 0 _0809C088: .4byte gTasks+0x8 _0809C08C: .4byte gPaletteFade -_0809C090: .4byte c2_exit_to_overworld_2_switch +_0809C090: .4byte CB2_ReturnToField thumb_func_end sub_809C04C thumb_func_start nullsub_52 @@ -2826,8 +2826,8 @@ _0809C15A: _0809C160: .4byte gUnknown_203996C thumb_func_end sub_809C138 - thumb_func_start sub_809C164 -sub_809C164: @ 809C164 + thumb_func_start CreatePokemartMenu +CreatePokemartMenu: @ 809C164 push {r4,lr} bl sub_809ABD8 movs r0, 0 @@ -2851,10 +2851,10 @@ sub_809C164: @ 809C164 _0809C194: .4byte EnableBothScriptContexts _0809C198: .4byte gUnknown_203996C _0809C19C: .4byte gMapHeader - thumb_func_end sub_809C164 + thumb_func_end CreatePokemartMenu - thumb_func_start sub_809C1A0 -sub_809C1A0: @ 809C1A0 + thumb_func_start CreateDecorationShop1Menu +CreateDecorationShop1Menu: @ 809C1A0 push {lr} bl sub_809ABD8 movs r0, 0x2 @@ -2865,10 +2865,10 @@ sub_809C1A0: @ 809C1A0 bx r0 .align 2, 0 _0809C1B8: .4byte EnableBothScriptContexts - thumb_func_end sub_809C1A0 + thumb_func_end CreateDecorationShop1Menu - thumb_func_start sub_809C1BC -sub_809C1BC: @ 809C1BC + thumb_func_start CreateDecorationShop2Menu +CreateDecorationShop2Menu: @ 809C1BC push {lr} bl sub_809ABD8 movs r0, 0x3 @@ -2879,7 +2879,7 @@ sub_809C1BC: @ 809C1BC bx r0 .align 2, 0 _0809C1D4: .4byte EnableBothScriptContexts - thumb_func_end sub_809C1BC + thumb_func_end CreateDecorationShop2Menu thumb_func_start sub_809C1D8 sub_809C1D8: @ 809C1D8 @@ -2940,7 +2940,7 @@ _0809C238: adds r5, r1, r0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt movs r2, 0 ldrsh r1, [r7, r2] lsls r0, 16 @@ -3006,7 +3006,7 @@ _0809C2B8: adds r5, r1, r0 adds r0, r5, 0 adds r1, r6, 0 - bl sub_8058E48 + bl MapGridGetMetatileIdAt movs r1, 0x2 subs r1, r7 lsls r1, 1 diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 2d1be0535..680004d4a 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_813F804 -sub_813F804: @ 813F804 + thumb_func_start PlaySlotMachine +PlaySlotMachine: @ 813F804 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 16 @@ -39,7 +39,7 @@ _0813F840: bx r0 .align 2, 0 _0813F848: .4byte sub_813F898 - thumb_func_end sub_813F804 + thumb_func_end PlaySlotMachine thumb_func_start sub_813F84C sub_813F84C: @ 813F84C @@ -629,7 +629,7 @@ _0813FD00: strh r0, [r4] b _0813FD78 _0813FD08: - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -3541,7 +3541,7 @@ _081411D0: movs r0, 0 movs r1, 0xA movs r2, 0xD0 - bl sub_814FE40 + bl LoadUserWindowBorderGfx movs r0, 0 movs r1, 0x1 movs r2, 0xF0 @@ -3603,7 +3603,7 @@ _081411D0: movs r0, 0x1 movs r1, 0 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 bl CopyBgTilemapBufferToVram movs r1, 0x83 @@ -4215,7 +4215,7 @@ sub_81417E4: @ 81417E4 movs r0, 0 movs r1, 0x1 movs r2, 0xF - bl sub_8150048 + bl DrawTextBorderOuter movs r1, 0x2 str r1, [sp] movs r0, 0xFF @@ -4228,7 +4228,7 @@ sub_81417E4: @ 81417E4 movs r0, 0 adds r2, r4, 0 movs r3, 0x1 - bl sub_812E62C + bl AddTextPrinterParameterized5 add sp, 0x14 pop {r4} pop {r0} @@ -4424,7 +4424,7 @@ _08141984: ldrsh r0, [r5, r2] cmp r0, 0 bne _081419C4 - ldr r1, _081419BC @ =gUnknown_825E074 + ldr r1, _081419BC @ =gSineTable movs r2, 0x4 ldrsh r0, [r5, r2] lsls r0, 1 @@ -4447,7 +4447,7 @@ _08141984: movs r0, 0x8 b _081419C6 .align 2, 0 -_081419BC: .4byte gUnknown_825E074 +_081419BC: .4byte gSineTable _081419C0: .4byte gUnknown_84664DC _081419C4: subs r0, r1, 0x1 @@ -4462,7 +4462,7 @@ _081419C6: movs r1, 0x7F ands r0, r1 strh r0, [r5, 0x8] - ldr r1, _081419FC @ =gUnknown_825E074 + ldr r1, _081419FC @ =gSineTable movs r2, 0x8 ldrsh r0, [r5, r2] lsls r0, 1 @@ -4478,7 +4478,7 @@ _081419C6: bl BlendPalettes b _08141A2C .align 2, 0 -_081419FC: .4byte gUnknown_825E074 +_081419FC: .4byte gSineTable _08141A00: ldrh r0, [r5, 0x8] adds r0, 0x1 @@ -4603,7 +4603,7 @@ sub_8141AD8: @ 8141AD8 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu lsls r4, 24 asrs r4, 24 adds r0, r4, 0 diff --git a/asm/ss_anne.s b/asm/ss_anne.s deleted file mode 100644 index 429645f3e..000000000 --- a/asm/ss_anne.s +++ /dev/null @@ -1,408 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815D334 -sub_815D334: @ 815D334 - push {lr} - movs r0, 0xF9 - bl PlaySE - ldr r0, _0815D35C @ =sub_815D364 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0815D360 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x32 - strh r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0815D35C: .4byte sub_815D364 -_0815D360: .4byte gTasks - thumb_func_end sub_815D334 - - thumb_func_start sub_815D364 -sub_815D364: @ 815D364 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r5, _0815D39C @ =gTasks+0x8 - adds r1, r4, r5 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _0815D394 - ldr r0, _0815D3A0 @ =gUnknown_8479C58 - bl LoadSpriteSheets - bl sub_815D498 - adds r0, r5, 0 - subs r0, 0x8 - adds r0, r4, r0 - ldr r1, _0815D3A4 @ =sub_815D3A8 - str r1, [r0] -_0815D394: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815D39C: .4byte gTasks+0x8 -_0815D3A0: .4byte gUnknown_8479C58 -_0815D3A4: .4byte sub_815D3A8 - thumb_func_end sub_815D364 - - thumb_func_start sub_815D3A8 -sub_815D3A8: @ 815D3A8 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0815D424 @ =gTasks+0x8 - adds r5, r6, r7 - ldrh r1, [r5, 0x2] - adds r1, 0x1 - strh r1, [r5, 0x2] - ldrh r0, [r5, 0x4] - adds r0, 0x1 - strh r0, [r5, 0x4] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x46 - bne _0815D3D6 - movs r0, 0 - strh r0, [r5, 0x2] - bl sub_815D5A4 -_0815D3D6: - ldr r0, _0815D428 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815D42C @ =gMapObjects - adds r0, r1 - ldr r2, _0815D430 @ =gSprites - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x78 - negs r1, r1 - cmp r0, r1 - bge _0815D438 - movs r0, 0xF9 - bl PlaySE - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0815D434 @ =sub_815D454 - str r1, [r0] - b _0815D44A - .align 2, 0 -_0815D424: .4byte gTasks+0x8 -_0815D428: .4byte gSaveBlock1Ptr -_0815D42C: .4byte gMapObjects -_0815D430: .4byte gSprites -_0815D434: .4byte sub_815D454 -_0815D438: - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r1, 0x5 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r4, 0x24] -_0815D44A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815D3A8 - - thumb_func_start sub_815D454 -sub_815D454: @ 815D454 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - ldr r0, _0815D490 @ =gTasks+0x8 - adds r1, r0 - ldrh r0, [r1, 0x6] - adds r0, 0x1 - strh r0, [r1, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - bne _0815D48A - movs r0, 0xFA - lsls r0, 4 - bl FreeSpriteTilesByTag - ldr r0, _0815D494 @ =0x00000fa1 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts -_0815D48A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D490: .4byte gTasks+0x8 -_0815D494: .4byte 0x00000fa1 - thumb_func_end sub_815D454 - - thumb_func_start sub_815D498 -sub_815D498: @ 815D498 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0815D508 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815D50C @ =gMapObjects - adds r0, r1 - ldr r4, _0815D510 @ =gSprites - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - adds r1, 0x50 - ldr r0, _0815D514 @ =gUnknown_8479C88 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x6D - movs r3, 0xFF - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - 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 - movs r2, 0x8 - orrs r0, r2 - movs r2, 0xF - ands r0, r2 - movs r2, 0xA0 - orrs r0, r2 - strb r0, [r1, 0x5] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D508: .4byte gSaveBlock1Ptr -_0815D50C: .4byte gMapObjects -_0815D510: .4byte gSprites -_0815D514: .4byte gUnknown_8479C88 - thumb_func_end sub_815D498 - - thumb_func_start sub_815D518 -sub_815D518: @ 815D518 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, _0815D598 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815D59C @ =gMapObjects - adds r0, r1 - ldr r2, _0815D5A0 @ =gSprites - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - adds r1, 0x50 - strh r1, [r4, 0x20] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x6 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bgt _0815D56A - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0815D56A: - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0x6 - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x12 - negs r1, r1 - cmp r0, r1 - bge _0815D58E - adds r0, r4, 0 - bl DestroySprite -_0815D58E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D598: .4byte gSaveBlock1Ptr -_0815D59C: .4byte gMapObjects -_0815D5A0: .4byte gSprites - thumb_func_end sub_815D518 - - thumb_func_start sub_815D5A4 -sub_815D5A4: @ 815D5A4 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0815D614 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x1 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815D618 @ =gMapObjects - adds r0, r1 - ldr r4, _0815D61C @ =gSprites - ldrb r0, [r0, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x24] - ldrh r1, [r1, 0x20] - adds r0, r1 - adds r0, 0x31 - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - blt _0815D60C - ldr r0, _0815D620 @ =gUnknown_8479CC0 - movs r2, 0x4E - movs r3, 0x8 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0815D60C - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x5] - movs r1, 0xF - ands r1, r2 - movs r2, 0xA0 - orrs r1, r2 - strb r1, [r0, 0x5] -_0815D60C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815D614: .4byte gSaveBlock1Ptr -_0815D618: .4byte gMapObjects -_0815D61C: .4byte gSprites -_0815D620: .4byte gUnknown_8479CC0 - thumb_func_end sub_815D5A4 - - thumb_func_start sub_815D624 -sub_815D624: @ 815D624 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bge _0815D638 - adds r0, 0x3 -_0815D638: - asrs r0, 2 - strh r0, [r2, 0x24] - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0815D650 - adds r0, r2, 0 - bl DestroySprite -_0815D650: - pop {r0} - bx r0 - thumb_func_end sub_815D624 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/start_menu.s b/asm/start_menu.s index 1d81d0392..9dc9fbab6 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -11,7 +11,7 @@ sub_806ED54: @ 806ED54 ldr r0, _0806ED6C @ =gUnknown_20370F5 movs r1, 0 strb r1, [r0] - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0x1 bne _0806ED70 bl sub_806EE34 @@ -158,7 +158,7 @@ sub_806EE7C: @ 806EE7C bl PutWindowTilemap ldrb r0, [r4] movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame ldr r0, _0806EEFC @ =gStringVar1 ldr r1, _0806EF00 @ =gUnknown_2039996 ldrh r1, [r1] @@ -220,7 +220,7 @@ sub_806EF18: @ 806EF18 ldr r4, _0806EF40 @ =gUnknown_2037101 ldrb r0, [r4] movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldrb r0, [r4] movs r1, 0x2 bl CopyWindowToVram @@ -390,7 +390,7 @@ _0806F06C: lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_80F6F1C + bl DrawStdWindowFrame ldr r1, _0806F08C @ =gUnknown_20370FF b _0806F0B8 .align 2, 0 @@ -438,9 +438,9 @@ _0806F0C4: movs r1, 0x2 movs r2, 0 movs r3, 0 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow strb r0, [r4] - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0806F118 @@ -568,13 +568,13 @@ sub_806F1D4: @ 806F1D4 movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] - ldr r1, _0806F1E8 @ =gUnknown_3005024 + ldr r1, _0806F1E8 @ =gFieldCallback2 ldr r0, _0806F1EC @ =sub_806F1B8 str r0, [r1] bx lr .align 2, 0 _0806F1E4: .4byte gUnknown_20370FF -_0806F1E8: .4byte gUnknown_3005024 +_0806F1E8: .4byte gFieldCallback2 _0806F1EC: .4byte sub_806F1B8 thumb_func_end sub_806F1D4 @@ -634,7 +634,7 @@ _0806F254: .4byte gUnknown_20370F0 thumb_func_start ShowStartMenu ShowStartMenu: @ 806F258 push {lr} - bl sub_805642C + bl is_c1_link_related_active cmp r0, 0 bne _0806F26E bl player_bitmagic @@ -666,7 +666,7 @@ sub_806F280: @ 806F280 bl MoveMenuCursor ldr r4, _0806F360 @ =gUnknown_20370F4 strb r0, [r4] - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0806F2D2 @@ -701,7 +701,7 @@ _0806F2D2: bl MoveMenuCursor ldr r4, _0806F360 @ =gUnknown_20370F4 strb r0, [r4] - bl sub_80BF708 + bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0806F320 @@ -854,9 +854,9 @@ _0806F424: .4byte gPaletteFade _0806F428: movs r0, 0x29 bl IncrementGameStat - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F448 @ =sub_810275C bl SetMainCallback2 movs r0, 0x1 @@ -881,9 +881,9 @@ sub_806F44C: @ 806F44C .align 2, 0 _0806F460: .4byte gPaletteFade _0806F464: - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F47C @ =CB2_PartyMenuFromStartMenu bl SetMainCallback2 movs r0, 0x1 @@ -908,17 +908,17 @@ sub_806F480: @ 806F480 .align 2, 0 _0806F494: .4byte gPaletteFade _0806F498: - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 - ldr r0, _0806F4B0 @ =UseFameCheckerFromMenu + bl CleanupOverworldWindowsAndTilemaps + ldr r0, _0806F4B0 @ =ReturnToBagFromKeyItem bl SetMainCallback2 movs r0, 0x1 _0806F4AC: pop {r1} bx r1 .align 2, 0 -_0806F4B0: .4byte UseFameCheckerFromMenu +_0806F4B0: .4byte ReturnToBagFromKeyItem thumb_func_end sub_806F480 thumb_func_start sub_806F4B4 @@ -935,9 +935,9 @@ sub_806F4B4: @ 806F4B4 .align 2, 0 _0806F4C8: .4byte gPaletteFade _0806F4CC: - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F4E4 @ =sub_80568A8 bl sub_808B698 movs r0, 0x1 @@ -974,9 +974,9 @@ sub_806F4FC: @ 806F4FC .align 2, 0 _0806F510: .4byte gPaletteFade _0806F514: - bl play_some_sound + bl PlayRainStoppingSoundEffect bl sub_806EF18 - bl sub_80563F0 + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F534 @ =sub_8088388 bl SetMainCallback2 ldr r1, _0806F538 @ =gMain @@ -1029,8 +1029,8 @@ sub_806F56C: @ 806F56C .align 2, 0 _0806F580: .4byte gPaletteFade _0806F584: - bl play_some_sound - bl sub_80563F0 + bl PlayRainStoppingSoundEffect + bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F59C @ =gUnknown_300502C ldrb r0, [r0] ldr r1, _0806F5A0 @ =sub_80568A8 @@ -1049,7 +1049,7 @@ sub_806F5A4: @ 806F5A4 push {lr} bl sub_812B234 movs r0, 0xC - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl sub_806F624 ldr r1, _0806F5C0 @ =gUnknown_20370F0 ldr r0, _0806F5C4 @ =sub_806F5C8 @@ -1080,7 +1080,7 @@ sub_806F5C8: @ 806F5C8 _0806F5E4: movs r0, 0 movs r1, 0 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 bl sub_806F14C bl sub_812B248 ldr r1, _0806F5FC @ =gUnknown_20370F0 @@ -1093,7 +1093,7 @@ _0806F600: .4byte sub_806F280 _0806F604: movs r0, 0 movs r1, 0x1 - bl sub_810F260 + bl ClearMenuWindow_BorderThickness2 bl sub_80696C0 bl ScriptContext2_Disable bl sub_812B248 @@ -1109,7 +1109,7 @@ _0806F61E: thumb_func_start sub_806F624 sub_806F624: @ 806F624 push {lr} - bl sub_80590D8 + bl save_serialize_map ldr r1, _0806F63C @ =gUnknown_3000FA4 ldr r0, _0806F640 @ =sub_806F7A8 str r0, [r1] @@ -1156,7 +1156,7 @@ sub_806F67C: @ 806F67C push {lr} bl sub_812B234 movs r0, 0xC - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl sub_806F624 ldr r0, _0806F698 @ =task50_save_game movs r1, 0x50 @@ -1239,7 +1239,7 @@ sub_806F71C: @ 806F71C push {lr} movs r0, 0 movs r1, 0x1 - bl sub_80F6F54 + bl ClearDialogWindowAndFrame pop {r0} bx r0 thumb_func_end sub_806F71C @@ -1328,7 +1328,7 @@ sub_806F7A8: @ 806F7A8 lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame bl remove_start_menu_window_maybe movs r0, 0 bl sub_8112EDC @@ -1362,7 +1362,7 @@ _0806F7F4: .4byte sub_806F7F8 thumb_func_start sub_806F7F8 sub_806F7F8: @ 806F7F8 push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1481,7 +1481,7 @@ _0806F8D8: .4byte sub_806F8DC thumb_func_start sub_806F8DC sub_806F8DC: @ 806F8DC push {lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1713,7 +1713,7 @@ _0806FA88: bl SetGpuReg movs r0, 0 bl SetVBlankCallback - bl remove_some_task + bl ScanlineEffect_Stop movs r2, 0xA0 lsls r2, 19 mov r1, sp @@ -1767,7 +1767,7 @@ _0806FB00: bl ResetSpriteData bl ResetTasks bl ResetPaletteFade - bl dp12_8087EA4 + bl ScanlineEffect_Clear b _0806FB64 _0806FB12: movs r0, 0 @@ -1781,7 +1781,7 @@ _0806FB12: movs r0, 0 movs r1, 0x8 movs r2, 0xF0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal b _0806FB64 .align 2, 0 _0806FB34: .4byte gUnknown_83A73B8 @@ -1908,11 +1908,11 @@ _0806FC14: movs r0, 0 movs r1, 0x2 movs r3, 0xFF - bl AddTextPrinterParametrized + bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x8 movs r2, 0xF - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl PutWindowTilemap movs r0, 0 @@ -2014,7 +2014,7 @@ sub_806FCF4: @ 806FCF4 ldr r4, _0806FE5C @ =0x0000021d adds r1, r4, 0 movs r2, 0xD0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal ldrb r0, [r5] movs r1, 0 adds r2, r4, 0 @@ -2043,7 +2043,7 @@ sub_806FCF4: @ 806FCF4 str r4, [sp, 0x8] movs r1, 0x2 movs r3, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2 adds r1, r4, 0 adds r2, r6, 0 @@ -2058,7 +2058,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x2 movs r3, 0xE - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0 adds r1, r4, 0 movs r2, 0x2 @@ -2077,7 +2077,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x2 movs r3, 0x1C - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x4 adds r1, r4, 0 movs r2, 0x2 @@ -2091,7 +2091,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x3C movs r3, 0x1C - bl box_print + bl AddTextPrinterParameterized3 movs r7, 0x2A ldr r0, _0806FE78 @ =0x00000829 bl FlagGet @@ -2108,7 +2108,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x2 movs r3, 0x2A - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x2 @@ -2121,7 +2121,7 @@ sub_806FCF4: @ 806FCF4 movs r1, 0 movs r2, 0x3C movs r3, 0x2A - bl box_print + bl AddTextPrinterParameterized3 movs r7, 0x38 _0806FE0A: ldrb r0, [r5] @@ -2133,7 +2133,7 @@ _0806FE0A: movs r1, 0 movs r2, 0x2 adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 movs r0, 0x2 adds r1, r4, 0 movs r2, 0x2 @@ -2146,7 +2146,7 @@ _0806FE0A: movs r1, 0 movs r2, 0x3C adds r3, r7, 0 - bl box_print + bl AddTextPrinterParameterized3 ldrb r0, [r5] movs r1, 0x2 bl CopyWindowToVram @@ -2178,7 +2178,7 @@ sub_806FE84: @ 806FE84 ldr r4, _0806FE9C @ =gUnknown_2037104 ldrb r0, [r4] movs r1, 0 - bl sub_80F6F9C + bl ClearStdWindowAndFrame ldrb r0, [r4] bl RemoveWindow pop {r4} @@ -2197,7 +2197,7 @@ sub_806FEA0: @ 806FEA0 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl sub_80F6F9C + bl ClearStdWindowAndFrame bl remove_start_menu_window_maybe bl sub_80696C0 bl ScriptContext2_Disable diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s deleted file mode 100644 index bdd06dfff..000000000 --- a/asm/teachy_tv.s +++ /dev/null @@ -1,2912 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815AB94 -sub_815AB94: @ 815AB94 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_815AB94 - - thumb_func_start sub_815ABB0 -sub_815ABB0: @ 815ABB0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_815ABB0 - - thumb_func_start sub_815ABC4 -sub_815ABC4: @ 815ABC4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - ldr r3, _0815ABF4 @ =gUnknown_203F444 - movs r4, 0 - strb r2, [r3, 0x4] - str r1, [r3] - cmp r2, 0 - bne _0815ABE0 - movs r0, 0 - strh r4, [r3, 0x6] - strh r4, [r3, 0x8] - strb r0, [r3, 0x5] -_0815ABE0: - cmp r2, 0x1 - bne _0815ABE6 - strb r4, [r3, 0x4] -_0815ABE6: - ldr r0, _0815ABF8 @ =sub_815AC2C - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815ABF4: .4byte gUnknown_203F444 -_0815ABF8: .4byte sub_815AC2C - thumb_func_end sub_815ABC4 - - thumb_func_start sub_815ABFC -sub_815ABFC: @ 815ABFC - push {lr} - ldr r1, _0815AC10 @ =gUnknown_203F444 - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - bne _0815AC14 - ldr r1, [r1] - movs r0, 0x1 - bl sub_815ABC4 - b _0815AC1C - .align 2, 0 -_0815AC10: .4byte gUnknown_203F444 -_0815AC14: - ldr r1, [r1] - movs r0, 0x2 - bl sub_815ABC4 -_0815AC1C: - pop {r0} - bx r0 - thumb_func_end sub_815ABFC - - thumb_func_start sub_815AC20 -sub_815AC20: @ 815AC20 - ldr r1, _0815AC28 @ =gUnknown_203F444 - movs r0, 0x1 - strb r0, [r1, 0x4] - bx lr - .align 2, 0 -_0815AC28: .4byte gUnknown_203F444 - thumb_func_end sub_815AC20 - - thumb_func_start sub_815AC2C -sub_815AC2C: @ 815AC2C - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _0815AC44 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r6, r0, r1 - ldrb r5, [r6] - cmp r5, 0 - beq _0815AC48 - cmp r5, 0x1 - beq _0815AC9C - b _0815AD6E - .align 2, 0 -_0815AC44: .4byte gMain -_0815AC48: - ldr r4, _0815AC90 @ =gUnknown_203F450 - ldr r0, _0815AC94 @ =0x00004008 - bl AllocZeroed - str r0, [r4] - str r5, [r0] - ldr r1, _0815AC98 @ =0x00004006 - adds r0, r1 - strb r5, [r0] - ldr r0, [r4] - adds r1, 0x1 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - bl sub_80BF768 - bl clear_scheduled_bg_copies_to_vram - bl remove_some_task - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl sub_815AD88 - bl sub_815AE38 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _0815AD6E - .align 2, 0 -_0815AC90: .4byte gUnknown_203F450 -_0815AC94: .4byte 0x00004008 -_0815AC98: .4byte 0x00004006 -_0815AC9C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0815AD6E - bl sub_815AEB8 - bl sub_815AFEC - ldr r0, _0815ACE0 @ =gUnknown_203F444 - ldrb r0, [r0, 0x4] - cmp r0, 0x2 - bne _0815ACEC - ldr r0, _0815ACE4 @ =sub_815BA54 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_815B014 - ldr r2, _0815ACE8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xA] - adds r0, r5, 0 - bl sub_815B118 - b _0815AD26 - .align 2, 0 -_0815ACE0: .4byte gUnknown_203F444 -_0815ACE4: .4byte sub_815BA54 -_0815ACE8: .4byte gTasks -_0815ACEC: - ldr r0, _0815AD78 @ =sub_815B2C0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_815AEE8 - ldr r1, _0815AD7C @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - bl sub_815B014 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - bl sub_815AF5C - movs r0, 0xAD - lsls r0, 1 - bl PlayNewMapMusic - bl sub_815B094 -_0815AD26: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x9 - bl sub_812B1E0 - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _0815AD80 @ =sub_815ABB0 - bl SetVBlankCallback - ldr r0, _0815AD84 @ =sub_815AB94 - bl SetMainCallback2 -_0815AD6E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815AD78: .4byte sub_815B2C0 -_0815AD7C: .4byte gTasks -_0815AD80: .4byte sub_815ABB0 -_0815AD84: .4byte sub_815AB94 - thumb_func_end sub_815AC2C - - thumb_func_start sub_815AD88 -sub_815AD88: @ 815AD88 - push {r4,lr} - bl sub_80BF7C8 - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0815AE20 @ =gUnknown_84792E0 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, _0815AE24 @ =gUnknown_203F450 - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _0815AE28 @ =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, _0815AE2C @ =0x00002004 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - movs r1, 0xC1 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x3 - movs r2, 0x2 - bl ChangeBgX - movs r1, 0xA0 - lsls r1, 6 - movs r0, 0x3 - movs r2, 0x1 - bl ChangeBgY - ldr r0, [r4] - ldr r1, _0815AE30 @ =0x00004004 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _0815AE34 @ =0x00004005 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815AE20: .4byte gUnknown_84792E0 -_0815AE24: .4byte gUnknown_203F450 -_0815AE28: .4byte 0x00001004 -_0815AE2C: .4byte 0x00002004 -_0815AE30: .4byte 0x00004004 -_0815AE34: .4byte 0x00004005 - thumb_func_end sub_815AD88 - - thumb_func_start sub_815AE38 -sub_815AE38: @ 815AE38 - push {r4,lr} - sub sp, 0x8 - movs r4, 0 - add r0, sp, 0x4 - strh r4, [r0] - bl reset_temp_tile_data_buffers - ldr r1, _0815AE98 @ =gUnknown_8E86240 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, _0815AE9C @ =gUnknown_8E86BE8 - ldr r4, _0815AEA0 @ =gUnknown_203F450 - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, _0815AEA4 @ =gUnknown_8E86D6C - ldr r1, [r4] - ldr r2, _0815AEA8 @ =0x00003004 - adds r1, r2 - bl LZDecompressWram - ldr r0, _0815AEAC @ =gUnknown_8E86F98 - movs r1, 0 - movs r2, 0x80 - bl LoadCompressedPalette - add r0, sp, 0x4 - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - ldr r0, _0815AEB0 @ =gUnknown_83A5348 - bl LoadSpritePalette - ldr r0, [r4] - ldr r1, _0815AEB4 @ =0x00002004 - adds r0, r1 - bl sub_815BD80 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815AE98: .4byte gUnknown_8E86240 -_0815AE9C: .4byte gUnknown_8E86BE8 -_0815AEA0: .4byte gUnknown_203F450 -_0815AEA4: .4byte gUnknown_8E86D6C -_0815AEA8: .4byte 0x00003004 -_0815AEAC: .4byte gUnknown_8E86F98 -_0815AEB0: .4byte gUnknown_83A5348 -_0815AEB4: .4byte 0x00002004 - thumb_func_end sub_815AE38 - - thumb_func_start sub_815AEB8 -sub_815AEB8: @ 815AEB8 - push {lr} - ldr r0, _0815AEE4 @ =gUnknown_84792F0 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0xCC - bl FillWindowPixelBuffer - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - .align 2, 0 -_0815AEE4: .4byte gUnknown_84792F0 - thumb_func_end sub_815AEB8 - - thumb_func_start sub_815AEE8 -sub_815AEE8: @ 815AEE8 - push {r4,r5,lr} - ldr r4, _0815AF48 @ =gUnknown_3005E70 - adds r1, r4, 0 - ldr r0, _0815AF4C @ =gUnknown_8479368 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - movs r0, 0x1 - strb r0, [r4, 0x10] - ldr r0, _0815AF50 @ =sub_815AFD8 - str r0, [r4, 0x4] - movs r0, 0xB6 - lsls r0, 1 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - cmp r0, 0 - bne _0815AF30 - ldr r0, _0815AF54 @ =gUnknown_8479340 - str r0, [r4] - movs r0, 0x5 - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - ldrb r2, [r4, 0x14] - lsls r1, r2, 28 - lsrs r1, 28 - adds r1, 0x8 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x14] -_0815AF30: - ldr r0, _0815AF58 @ =gUnknown_203F444 - ldrh r1, [r0, 0x6] - ldrh r2, [r0, 0x8] - adds r0, r4, 0 - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0815AF48: .4byte gUnknown_3005E70 -_0815AF4C: .4byte gUnknown_8479368 -_0815AF50: .4byte sub_815AFD8 -_0815AF54: .4byte gUnknown_8479340 -_0815AF58: .4byte gUnknown_203F444 - thumb_func_end sub_815AEE8 - - thumb_func_start sub_815AF5C -sub_815AF5C: @ 815AF5C - push {lr} - movs r0, 0xB6 - lsls r0, 1 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - cmp r0, 0 - bne _0815AF84 - ldr r0, _0815AF7C @ =gUnknown_203F450 - ldr r0, [r0] - ldr r1, _0815AF80 @ =0x00004007 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - b _0815AF96 - .align 2, 0 -_0815AF7C: .4byte gUnknown_203F450 -_0815AF80: .4byte 0x00004007 -_0815AF84: - ldr r0, _0815AF9C @ =gUnknown_8479380 - ldr r1, _0815AFA0 @ =gUnknown_203F44A - bl AddScrollIndicatorArrowPair - ldr r1, _0815AFA4 @ =gUnknown_203F450 - ldr r1, [r1] - ldr r2, _0815AFA8 @ =0x00004007 - adds r1, r2 - strb r0, [r1] -_0815AF96: - pop {r0} - bx r0 - .align 2, 0 -_0815AF9C: .4byte gUnknown_8479380 -_0815AFA0: .4byte gUnknown_203F44A -_0815AFA4: .4byte gUnknown_203F450 -_0815AFA8: .4byte 0x00004007 - thumb_func_end sub_815AF5C - - thumb_func_start sub_815AFAC -sub_815AFAC: @ 815AFAC - push {r4,lr} - ldr r4, _0815AFD0 @ =gUnknown_203F450 - ldr r0, [r4] - ldr r2, _0815AFD4 @ =0x00004007 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0815AFCA - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, _0815AFD4 @ =0x00004007 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] -_0815AFCA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815AFD0: .4byte gUnknown_203F450 -_0815AFD4: .4byte 0x00004007 - thumb_func_end sub_815AFAC - - thumb_func_start sub_815AFD8 -sub_815AFD8: @ 815AFD8 - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _0815AFE8 - movs r0, 0x5 - bl PlaySE -_0815AFE8: - pop {r0} - bx r0 - thumb_func_end sub_815AFD8 - - thumb_func_start sub_815AFEC -sub_815AFEC: @ 815AFEC - push {lr} - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x1F - bl SetGpuReg - movs r0, 0x50 - movs r1, 0xCC - bl SetGpuReg - movs r0, 0x54 - movs r1, 0x5 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_815AFEC - - thumb_func_start sub_815B014 -sub_815B014: @ 815B014 - push {lr} - sub sp, 0x4 - ldr r1, _0815B054 @ =SpriteCallbackDummy - movs r0, 0x8 - str r0, [sp] - movs r0, 0x5A - movs r2, 0 - movs r3, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0815B058 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x8 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2] - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_0815B054: .4byte SpriteCallbackDummy -_0815B058: .4byte gSprites - thumb_func_end sub_815B014 - - thumb_func_start sub_815B05C -sub_815B05C: @ 815B05C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r5, _0815B090 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - strh r1, [r0, 0x24] - strh r2, [r0, 0x26] - adds r4, r0, 0 - adds r4, 0x3E - ldrb r2, [r4] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r4] - adds r1, r3, 0 - bl StartSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815B090: .4byte gSprites - thumb_func_end sub_815B05C - - thumb_func_start sub_815B094 -sub_815B094: @ 815B094 - push {lr} - ldr r1, _0815B0AC @ =0x00000c64 - movs r0, 0x44 - bl SetGpuReg - ldr r1, _0815B0B0 @ =0x00001cd4 - movs r0, 0x40 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0815B0AC: .4byte 0x00000c64 -_0815B0B0: .4byte 0x00001cd4 - thumb_func_end sub_815B094 - - thumb_func_start sub_815B0B4 -sub_815B0B4: @ 815B0B4 - push {lr} - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_815B0B4 - - thumb_func_start sub_815B0CC -sub_815B0CC: @ 815B0CC - push {r4-r7,lr} - movs r0, 0x2 - bl GetBgTilemapBuffer - adds r7, r0, 0 - movs r0, 0x1 -_0815B0D8: - movs r4, 0x2 - lsls r5, r0, 5 - adds r6, r0, 0x1 -_0815B0DE: - bl Random - adds r2, r5, r4 - lsls r2, 1 - adds r2, r7 - movs r1, 0x3 - ands r1, r0 - lsls r1, 10 - ldr r3, _0815B114 @ =0x0000301f - adds r0, r3, 0 - adds r1, r0 - strh r1, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1B - bls _0815B0DE - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, 0xC - bls _0815B0D8 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815B114: .4byte 0x0000301f - thumb_func_end sub_815B0CC - - thumb_func_start sub_815B118 -sub_815B118: @ 815B118 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0815B190 @ =gTasks+0x8 - adds r5, r0, r1 - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B194 @ =gSprites - adds r7, r0, r1 - movs r0, 0x1 - bl ClearWindowTilemap - bl sub_815B0B4 - ldr r0, _0815B198 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - cmp r0, 0 - blt _0815B1B8 - cmp r0, 0x3 - bgt _0815B1A8 - ldrb r0, [r5, 0x2] - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl sub_815B05C - movs r4, 0xC0 - lsls r4, 6 - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0x1 - bl ChangeBgX - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0x2 - bl ChangeBgY - ldr r2, _0815B19C @ =gUnknown_203F450 - ldr r1, [r2] - ldr r0, _0815B1A0 @ =0x00004004 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x3 - strb r0, [r1] - ldr r1, [r2] - ldr r0, _0815B1A4 @ =0x00004005 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x3 - strb r0, [r1] - b _0815B1B8 - .align 2, 0 -_0815B190: .4byte gTasks+0x8 -_0815B194: .4byte gSprites -_0815B198: .4byte gUnknown_203F444 -_0815B19C: .4byte gUnknown_203F450 -_0815B1A0: .4byte 0x00004004 -_0815B1A4: .4byte 0x00004005 -_0815B1A8: - cmp r0, 0x5 - bgt _0815B1B8 - ldrb r0, [r5, 0x2] - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl sub_815B05C -_0815B1B8: - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - movs r0, 0x24 - ldrsh r1, [r7, r0] - movs r0, 0x26 - ldrsh r2, [r7, r0] - movs r0, 0x1 - str r0, [sp] - adds r0, r6, 0 - movs r3, 0 - bl sub_815BAA0 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815B118 - - thumb_func_start sub_815B1DC -sub_815B1DC: @ 815B1DC - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r2, _0815B21C @ =gTextFlags - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl sub_80F78A8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - adds r2, r4, 0 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B21C: .4byte gTextFlags - thumb_func_end sub_815B1DC - - thumb_func_start sub_815B220 -sub_815B220: @ 815B220 - push {r4,lr} - ldr r4, _0815B238 @ =gUnknown_203F450 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - bl FreeAllWindowBuffers - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B238: .4byte gUnknown_203F450 - thumb_func_end sub_815B220 - - thumb_func_start sub_815B23C -sub_815B23C: @ 815B23C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0815B26C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0815B270 @ =sub_815B274 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B26C: .4byte gTasks -_0815B270: .4byte sub_815B274 - thumb_func_end sub_815B23C - - thumb_func_start sub_815B274 -sub_815B274: @ 815B274 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0815B298 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0815B2B6 - ldr r0, _0815B29C @ =gUnknown_203F450 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _0815B2A0 - bl SetMainCallback2 - b _0815B2AC - .align 2, 0 -_0815B298: .4byte gPaletteFade -_0815B29C: .4byte gUnknown_203F450 -_0815B2A0: - bl sub_8055DC4 - ldr r0, _0815B2BC @ =gUnknown_203F444 - ldr r0, [r0] - bl SetMainCallback2 -_0815B2AC: - bl sub_815B220 - adds r0, r4, 0 - bl DestroyTask -_0815B2B6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B2BC: .4byte gUnknown_203F444 - thumb_func_end sub_815B274 - - thumb_func_start sub_815B2C0 -sub_815B2C0: @ 815B2C0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _0815B31C @ =gTasks+0x8 - adds r6, r0, r1 - bl sub_815B0CC - ldr r0, _0815B320 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0815B37A - ldrb r0, [r6] - bl ListMenuHandleInput - adds r5, r0, 0 - ldrb r0, [r6] - ldr r4, _0815B324 @ =gUnknown_203F44A - adds r2, r4, 0x2 - adds r1, r4, 0 - bl get_coro_args_x18_x1A - ldr r0, _0815B328 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0815B30A - subs r0, r4, 0x6 - ldr r1, [r0] - ldr r0, _0815B32C @ =UseFameCheckerFromMenu - cmp r1, r0 - bne _0815B330 -_0815B30A: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _0815B330 - adds r0, 0x1 - cmp r5, r0 - bne _0815B33E - b _0815B37A - .align 2, 0 -_0815B31C: .4byte gTasks+0x8 -_0815B320: .4byte gPaletteFade -_0815B324: .4byte gUnknown_203F44A -_0815B328: .4byte gMain -_0815B32C: .4byte UseFameCheckerFromMenu -_0815B330: - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl sub_815B23C - b _0815B37A -_0815B33E: - movs r0, 0x5 - bl PlaySE - ldr r2, _0815B380 @ =gUnknown_203F444 - movs r4, 0 - strb r5, [r2, 0x5] - ldrb r0, [r6] - adds r1, r2, 0x6 - adds r2, 0x8 - bl sub_810713C - bl sub_815B0B4 - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - bl sub_815AFAC - strh r4, [r6, 0x6] - strh r4, [r6, 0x4] - ldr r1, _0815B384 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _0815B388 @ =sub_815B4EC - str r1, [r0] -_0815B37A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815B380: .4byte gUnknown_203F444 -_0815B384: .4byte gTasks -_0815B388: .4byte sub_815B4EC - thumb_func_end sub_815B2C0 - - thumb_func_start sub_815B38C -sub_815B38C: @ 815B38C - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B3F8 @ =gTasks+0x8 - adds r4, r1, r0 - bl sub_815B0CC - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _0815B3F0 - ldr r0, _0815B3FC @ =gUnknown_203F450 - ldr r1, [r0] - ldr r0, _0815B400 @ =0x00003004 - adds r1, r0 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - ldrb r0, [r4, 0x2] - movs r1, 0x8 - movs r2, 0x38 - movs r3, 0x7 - bl sub_815B05C - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - movs r0, 0x88 - lsls r0, 1 - bl PlayNewMapMusic -_0815B3F0: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B3F8: .4byte gTasks+0x8 -_0815B3FC: .4byte gUnknown_203F450 -_0815B400: .4byte 0x00003004 - thumb_func_end sub_815B38C - - thumb_func_start sub_815B404 -sub_815B404: @ 815B404 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B450 @ =gTasks+0x8 - adds r4, r1, r0 - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x86 - bne _0815B448 - movs r0, 0x1A - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B448: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B450: .4byte gTasks+0x8 - thumb_func_end sub_815B404 - - thumb_func_start sub_815B454 -sub_815B454: @ 815B454 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B484 @ =gTasks+0x8 - adds r4, r1, r0 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B488 @ =gSprites - adds r1, r0, r1 - ldrh r2, [r4, 0x4] - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r0, 0x23 - beq _0815B48C - adds r0, r2, 0x1 - strh r0, [r4, 0x4] - b _0815B4B8 - .align 2, 0 -_0815B484: .4byte gTasks+0x8 -_0815B488: .4byte gSprites -_0815B48C: - ldrh r2, [r1, 0x24] - movs r3, 0x24 - ldrsh r0, [r1, r3] - cmp r0, 0x78 - bne _0815B4B4 - adds r0, r1, 0 - movs r1, 0 - bl StartSpriteAnim - ldr r0, _0815B4B0 @ =gUnknown_841B83D - bl sub_815B1DC - movs r0, 0 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - b _0815B4B8 - .align 2, 0 -_0815B4B0: .4byte gUnknown_841B83D -_0815B4B4: - adds r0, r2, 0x1 - strh r0, [r1, 0x24] -_0815B4B8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_815B454 - - thumb_func_start sub_815B4C0 -sub_815B4C0: @ 815B4C0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B4E8 @ =gTasks+0x8 - adds r4, r1, r0 - movs r0, 0 - bl sub_80BF518 - lsls r0, 16 - cmp r0, 0 - bne _0815B4E2 - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B4E2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B4E8: .4byte gTasks+0x8 - thumb_func_end sub_815B4C0 - - thumb_func_start sub_815B4EC -sub_815B4EC: @ 815B4EC - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r6, r0, 3 - ldr r7, _0815B548 @ =gTasks+0x8 - adds r5, r6, r7 - ldr r0, _0815B54C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0815B55C - ldr r0, _0815B550 @ =gUnknown_203F450 - ldr r0, [r0] - ldr r1, _0815B554 @ =0x00004006 - adds r0, r1 - movs r4, 0 - movs r1, 0x1 - strb r1, [r0] - ldrb r0, [r5, 0x2] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_815B05C - movs r0, 0 - movs r1, 0xCC - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - bl sub_815B908 - strh r4, [r5, 0x4] - strh r4, [r5, 0x6] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0815B558 @ =sub_815B92C - str r1, [r0] - b _0815B578 - .align 2, 0 -_0815B548: .4byte gTasks+0x8 -_0815B54C: .4byte gMain -_0815B550: .4byte gUnknown_203F450 -_0815B554: .4byte 0x00004006 -_0815B558: .4byte sub_815B92C -_0815B55C: - ldr r1, _0815B580 @ =gUnknown_8479548 - ldr r0, _0815B584 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r3, 0x6 - ldrsh r0, [r5, r3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 -_0815B578: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815B580: .4byte gUnknown_8479548 -_0815B584: .4byte gUnknown_203F444 - thumb_func_end sub_815B4EC - - thumb_func_start sub_815B588 -sub_815B588: @ 815B588 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0815B5B4 @ =gTasks+0x8 - adds r4, r0 - ldr r1, _0815B5B8 @ =gUnknown_8479560 - ldr r0, _0815B5BC @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl sub_815B1DC - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B5B4: .4byte gTasks+0x8 -_0815B5B8: .4byte gUnknown_8479560 -_0815B5BC: .4byte gUnknown_203F444 - thumb_func_end sub_815B588 - - thumb_func_start sub_815B5C0 -sub_815B5C0: @ 815B5C0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0815B5EC @ =gTasks+0x8 - adds r4, r0 - ldr r1, _0815B5F0 @ =gUnknown_8479578 - ldr r0, _0815B5F4 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl sub_815B1DC - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B5EC: .4byte gTasks+0x8 -_0815B5F0: .4byte gUnknown_8479578 -_0815B5F4: .4byte gUnknown_203F444 - thumb_func_end sub_815B5C0 - - thumb_func_start sub_815B5F8 -sub_815B5F8: @ 815B5F8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B620 @ =gTasks+0x8 - adds r4, r1, r0 - movs r0, 0 - bl sub_80BF518 - lsls r0, 16 - cmp r0, 0 - bne _0815B61A - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B61A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B620: .4byte gTasks+0x8 - thumb_func_end sub_815B5F8 - - thumb_func_start sub_815B624 -sub_815B624: @ 815B624 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B65C @ =gTasks+0x8 - adds r4, r1, r0 - ldr r0, _0815B660 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0815B656 - movs r0, 0 - movs r1, 0xCC - bl FillWindowPixelBuffer - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B656: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B65C: .4byte gTasks+0x8 -_0815B660: .4byte gMain - thumb_func_end sub_815B624 - - thumb_func_start sub_815B664 -sub_815B664: @ 815B664 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0815B6A0 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B6A4 @ =gSprites - adds r0, r1 - movs r1, 0x5 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r4, 0x4] - strh r0, [r4, 0x8] - movs r0, 0x1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B6A0: .4byte gTasks+0x8 -_0815B6A4: .4byte gSprites - thumb_func_end sub_815B664 - - thumb_func_start sub_815B6A8 -sub_815B6A8: @ 815B6A8 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0815B730 @ =gTasks+0x8 - adds r4, r0, r1 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B734 @ =gSprites - adds r6, r0, r1 - movs r1, 0x80 - lsls r1, 1 - movs r0, 0x3 - movs r2, 0x2 - bl ChangeBgY - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - movs r3, 0xF - ands r3, r0 - cmp r3, 0 - bne _0815B702 - ldr r0, _0815B738 @ =gUnknown_203F450 - ldr r1, [r0] - ldr r2, _0815B73C @ =0x00004005 - adds r1, r2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - movs r0, 0x24 - ldrsh r1, [r6, r0] - movs r0, 0x26 - ldrsh r2, [r6, r0] - str r3, [sp] - adds r0, r5, 0 - movs r3, 0 - bl sub_815BAA0 -_0815B702: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x30 - bne _0815B726 - movs r1, 0 - strh r1, [r4, 0x4] - movs r2, 0x1 - negs r2, r2 - adds r0, r2, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - adds r0, r6, 0 - movs r1, 0x7 - bl StartSpriteAnim - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B726: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815B730: .4byte gTasks+0x8 -_0815B734: .4byte gSprites -_0815B738: .4byte gUnknown_203F450 -_0815B73C: .4byte 0x00004005 - thumb_func_end sub_815B6A8 - - thumb_func_start sub_815B740 -sub_815B740: @ 815B740 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0815B7D4 @ =gTasks+0x8 - adds r4, r0, r1 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B7D8 @ =gSprites - adds r6, r0, r1 - movs r1, 0x80 - lsls r1, 1 - movs r0, 0x3 - movs r2, 0x1 - bl ChangeBgX - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - movs r2, 0xF - ands r0, r2 - cmp r0, 0 - bne _0815B78A - ldr r0, _0815B7DC @ =gUnknown_203F450 - ldr r1, [r0] - ldr r3, _0815B7E0 @ =0x00004004 - adds r1, r3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0815B78A: - movs r1, 0x4 - ldrsh r0, [r4, r1] - adds r0, 0x8 - ands r0, r2 - cmp r0, 0 - bne _0815B7AC - ldrh r1, [r6, 0x24] - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - movs r3, 0x26 - ldrsh r2, [r6, r3] - str r0, [sp] - adds r0, r5, 0 - movs r3, 0 - bl sub_815BAA0 -_0815B7AC: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x30 - bne _0815B7CA - movs r0, 0 - strh r0, [r4, 0x4] - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - adds r0, r6, 0 - movs r1, 0x3 - bl StartSpriteAnim - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B7CA: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815B7D4: .4byte gTasks+0x8 -_0815B7D8: .4byte gSprites -_0815B7DC: .4byte gUnknown_203F450 -_0815B7E0: .4byte 0x00004004 - thumb_func_end sub_815B740 - - thumb_func_start sub_815B7E4 -sub_815B7E4: @ 815B7E4 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - ldr r0, _0815B838 @ =gTasks+0x8 - adds r5, r0 - movs r1, 0x2 - ldrsh r0, [r5, r1] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0815B83C @ =gSprites - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x6 - bl StartSpriteAnim - ldrh r0, [r5, 0x6] - adds r0, 0x1 - strh r0, [r5, 0x6] - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - movs r0, 0x24 - ldrsh r1, [r4, r0] - movs r0, 0x26 - ldrsh r2, [r4, r0] - movs r0, 0 - str r0, [sp] - adds r0, r6, 0 - movs r3, 0 - bl sub_815BAA0 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815B838: .4byte gTasks+0x8 -_0815B83C: .4byte gSprites - thumb_func_end sub_815B7E4 - - thumb_func_start sub_815B840 -sub_815B840: @ 815B840 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _0815B890 @ =gTasks+0x8 - adds r5, r0, r1 - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B894 @ =gSprites - adds r4, r0, r1 - ldrh r1, [r4, 0x24] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _0815B87E - subs r1, 0x8 - lsls r1, 16 - asrs r1, 16 - movs r6, 0x26 - ldrsh r2, [r4, r6] - str r0, [sp] - adds r0, r3, 0 - movs r3, 0 - bl sub_815BAA0 -_0815B87E: - ldrh r1, [r4, 0x24] - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _0815B898 - ldrh r0, [r5, 0x6] - adds r0, 0x1 - strh r0, [r5, 0x6] - b _0815B89C - .align 2, 0 -_0815B890: .4byte gTasks+0x8 -_0815B894: .4byte gSprites -_0815B898: - subs r0, r1, 0x1 - strh r0, [r4, 0x24] -_0815B89C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_815B840 - - thumb_func_start sub_815B8A4 -sub_815B8A4: @ 815B8A4 - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B900 @ =gTasks+0x8 - adds r4, r1, r0 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0815B8DC - ldr r1, _0815B904 @ =gUnknown_8479590 - movs r0, 0x8 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x14 - movs r3, 0xA - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram -_0815B8DC: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _0815B8F8 - bl sub_815B908 - movs r0, 0 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B8F8: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B900: .4byte gTasks+0x8 -_0815B904: .4byte gUnknown_8479590 - thumb_func_end sub_815B8A4 - - thumb_func_start sub_815B908 -sub_815B908: @ 815B908 - push {lr} - sub sp, 0x8 - movs r0, 0x8 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x14 - movs r3, 0xA - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_815B908 - - thumb_func_start sub_815B92C -sub_815B92C: @ 815B92C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, _0815B9DC @ =gTasks+0x8 - adds r5, r6, r7 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0815B94C - movs r0, 0xAD - lsls r0, 1 - bl PlayNewMapMusic -_0815B94C: - bl sub_815B0CC - ldrh r0, [r5, 0x4] - adds r0, 0x1 - strh r0, [r5, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _0815B9D4 - movs r4, 0 - strh r4, [r5, 0x4] - strh r4, [r5, 0x6] - bl sub_815AEE8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0815B9E0 @ =sub_815B2C0 - str r1, [r0] - movs r0, 0 - bl PutWindowTilemap - bl sub_815AF5C - bl sub_815B094 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x3 - movs r2, 0x2 - bl ChangeBgX - movs r1, 0xA0 - lsls r1, 6 - movs r0, 0x3 - movs r2, 0x1 - bl ChangeBgY - ldr r2, _0815B9E4 @ =gUnknown_203F450 - ldr r0, [r2] - ldr r1, _0815B9E8 @ =0x00004004 - adds r0, r1 - strb r4, [r0] - ldr r0, [r2] - adds r1, 0x1 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _0815B9EC @ =0x00004006 - adds r0, r1 - strb r4, [r0] -_0815B9D4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815B9DC: .4byte gTasks+0x8 -_0815B9E0: .4byte sub_815B2C0 -_0815B9E4: .4byte gUnknown_203F450 -_0815B9E8: .4byte 0x00004004 -_0815B9EC: .4byte 0x00004006 - thumb_func_end sub_815B92C - - thumb_func_start sub_815B9F0 -sub_815B9F0: @ 815B9F0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - ldr r0, _0815BA0C @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - cmp r0, 0 - blt _0815BA22 - cmp r0, 0x3 - bgt _0815BA10 - adds r0, r1, 0 - bl sub_815BC90 - b _0815BA22 - .align 2, 0 -_0815BA0C: .4byte gUnknown_203F444 -_0815BA10: - cmp r0, 0x5 - bgt _0815BA22 - ldr r0, _0815BA28 @ =gUnknown_203F450 - ldr r1, [r0] - ldr r0, _0815BA2C @ =sub_815BA30 - str r0, [r1] - adds r0, r2, 0 - bl sub_815B23C -_0815BA22: - pop {r0} - bx r0 - .align 2, 0 -_0815BA28: .4byte gUnknown_203F450 -_0815BA2C: .4byte sub_815BA30 - thumb_func_end sub_815B9F0 - - thumb_func_start sub_815BA30 -sub_815BA30: @ 815BA30 - push {lr} - ldr r0, _0815BA44 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - cmp r0, 0x4 - bne _0815BA48 - movs r0, 0xA - bl sub_810B108 - b _0815BA4E - .align 2, 0 -_0815BA44: .4byte gUnknown_203F444 -_0815BA48: - movs r0, 0x9 - bl sub_810B108 -_0815BA4E: - pop {r0} - bx r0 - thumb_func_end sub_815BA30 - - thumb_func_start sub_815BA54 -sub_815BA54: @ 815BA54 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r2, r1, 3 - ldr r4, _0815BA8C @ =gTasks+0x8 - adds r3, r2, r4 - ldr r0, _0815BA90 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0815BA86 - ldr r1, _0815BA94 @ =gUnknown_8479390 - ldr r0, _0815BA98 @ =gUnknown_203F444 - ldrb r0, [r0, 0x5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r3, 0x6] - adds r0, r4, 0 - subs r0, 0x8 - adds r0, r2, r0 - ldr r1, _0815BA9C @ =sub_815B4EC - str r1, [r0] -_0815BA86: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815BA8C: .4byte gTasks+0x8 -_0815BA90: .4byte gPaletteFade -_0815BA94: .4byte gUnknown_8479390 -_0815BA98: .4byte gUnknown_203F444 -_0815BA9C: .4byte sub_815B4EC - thumb_func_end sub_815BA54 - - thumb_func_start sub_815BAA0 -sub_815BAA0: @ 815BAA0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r1, r2, 16 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - ldr r0, _0815BB34 @ =gUnknown_203F450 - ldr r0, [r0] - ldr r2, _0815BB38 @ =0x00004006 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0815BB5C - lsls r0, r6, 16 - ldr r2, _0815BB3C @ =0xfff00000 - adds r0, r2 - asrs r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - adds r1, r5, 0 - bl sub_815BC40 - lsls r0, 24 - cmp r0, 0 - beq _0815BB5C - ldr r0, _0815BB40 @ =gUnknown_83A0010 - ldr r0, [r0, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r7, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0815BB44 @ =gSprites - adds r4, r1, r0 - strh r6, [r4, 0x24] - adds r0, r5, 0 - adds r0, 0x8 - strh r0, [r4, 0x26] - ldr r0, _0815BB48 @ =sub_815BB6C - str r0, [r4, 0x1C] - mov r0, r9 - strh r0, [r4, 0x2E] - mov r2, r8 - cmp r2, 0x1 - bne _0815BB4C - adds r0, r4, 0 - movs r1, 0x4 - bl SeekSpriteAnim - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x8 - orrs r1, r0 - strb r1, [r4, 0x5] - b _0815BB5C - .align 2, 0 -_0815BB34: .4byte gUnknown_203F450 -_0815BB38: .4byte 0x00004006 -_0815BB3C: .4byte 0xfff00000 -_0815BB40: .4byte gUnknown_83A0010 -_0815BB44: .4byte gSprites -_0815BB48: .4byte sub_815BB6C -_0815BB4C: - ldr r1, _0815BB68 @ =gUnknown_84795B8 - adds r0, r4, 0 - bl SetSubspriteTables - adds r1, r4, 0 - adds r1, 0x42 - movs r0, 0x40 - strb r0, [r1] -_0815BB5C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815BB68: .4byte gUnknown_84795B8 - thumb_func_end sub_815BAA0 - - thumb_func_start sub_815BB6C -sub_815BB6C: @ 815BB6C - push {r4,r5,lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _0815BBA4 @ =gTasks+0x8 - adds r4, r0, r1 - movs r2, 0x2 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815BBA8 @ =gSprites - adds r5, r0, r1 - ldr r0, _0815BBAC @ =gUnknown_203F450 - ldr r0, [r0] - ldr r1, _0815BBB0 @ =0x00004006 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0815BBB4 - adds r0, r3, 0 - bl DestroySprite - b _0815BC3A - .align 2, 0 -_0815BBA4: .4byte gTasks+0x8 -_0815BBA8: .4byte gSprites -_0815BBAC: .4byte gUnknown_203F450 -_0815BBB0: .4byte 0x00004006 -_0815BBB4: - adds r0, r3, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - bne _0815BBD2 - adds r2, r3, 0 - adds r2, 0x42 - ldrb r0, [r2] - movs r1, 0x40 - negs r1, r1 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strb r1, [r2] - b _0815BBE0 -_0815BBD2: - adds r2, r3, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x40 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0815BBE0: - ldrh r0, [r4, 0x8] - ldrh r2, [r3, 0x24] - adds r0, r2 - strh r0, [r3, 0x24] - ldrh r0, [r4, 0xA] - ldrh r1, [r3, 0x26] - adds r0, r1 - strh r0, [r3, 0x26] - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0815BC3A - adds r1, r3, 0 - adds r1, 0x43 - movs r0, 0 - strb r0, [r1] - ldrh r1, [r3, 0x24] - ldrh r0, [r5, 0x24] - subs r1, r0 - ldrh r0, [r3, 0x26] - ldrh r2, [r5, 0x26] - subs r0, r2 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - movs r2, 0xF0 - lsls r2, 12 - adds r1, r2 - lsrs r1, 16 - cmp r1, 0x1E - bhi _0815BC34 - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - ble _0815BC34 - cmp r1, 0x17 - ble _0815BC3A -_0815BC34: - adds r0, r3, 0 - bl DestroySprite -_0815BC3A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_815BB6C - - thumb_func_start sub_815BC40 -sub_815BC40: @ 815BC40 - push {r4,r5,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r4, r0, 16 - cmp r4, 0 - blt _0815BC52 - lsls r1, 16 - cmp r1, 0 - bge _0815BC56 -_0815BC52: - movs r0, 0 - b _0815BC78 -_0815BC56: - ldr r3, _0815BC80 @ =gUnknown_84795C8 - ldr r0, _0815BC84 @ =gUnknown_203F450 - ldr r2, [r0] - ldr r5, _0815BC88 @ =0x00004005 - adds r0, r2, r5 - asrs r1, 20 - ldrb r0, [r0] - adds r1, r0 - lsls r1, 4 - ldr r0, _0815BC8C @ =0x00004004 - adds r2, r0 - asrs r0, r4, 20 - ldrb r2, [r2] - adds r0, r2 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] -_0815BC78: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0815BC80: .4byte gUnknown_84795C8 -_0815BC84: .4byte gUnknown_203F450 -_0815BC88: .4byte 0x00004005 -_0815BC8C: .4byte 0x00004004 - thumb_func_end sub_815BC40 - - thumb_func_start sub_815BC90 -sub_815BC90: @ 815BC90 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0815BCCC @ =gTasks+0x8 - adds r5, r0, r1 - bl sub_815B220 - ldr r1, _0815BCD0 @ =gSpecialVar_0x8004 - ldr r4, _0815BCD4 @ =gUnknown_203F444 - ldrb r0, [r4, 0x5] - strh r0, [r1] - ldr r1, _0815BCD8 @ =gMain - ldr r0, _0815BCDC @ =sub_815BD58 - str r0, [r1, 0x8] - bl SavePlayerParty - bl sub_8159F40 - movs r0, 0 - bl PlayMapChosenOrBattleBGM - ldrb r0, [r4, 0x5] - cmp r0, 0 - bne _0815BCE0 - movs r0, 0x9 - b _0815BCE2 - .align 2, 0 -_0815BCCC: .4byte gTasks+0x8 -_0815BCD0: .4byte gSpecialVar_0x8004 -_0815BCD4: .4byte gUnknown_203F444 -_0815BCD8: .4byte gMain -_0815BCDC: .4byte sub_815BD58 -_0815BCE0: - movs r0, 0x8 -_0815BCE2: - strh r0, [r5, 0xC] - movs r0, 0 - strh r0, [r5, 0xE] - ldr r1, _0815BCFC @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0815BD00 @ =sub_815BD04 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815BCFC: .4byte gTasks -_0815BD00: .4byte sub_815BD04 - thumb_func_end sub_815BC90 - - thumb_func_start sub_815BD04 -sub_815BD04: @ 815BD04 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0815BD24 @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0815BD28 - cmp r0, 0x1 - beq _0815BD36 - b _0815BD4C - .align 2, 0 -_0815BD24: .4byte gTasks+0x8 -_0815BD28: - ldrb r0, [r4, 0xC] - bl sub_80D08B8 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - b _0815BD4C -_0815BD36: - bl sub_80D08F8 - lsls r0, 24 - cmp r0, 0 - beq _0815BD4C - ldr r0, _0815BD54 @ =sub_800FD9C - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0815BD4C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815BD54: .4byte sub_800FD9C - thumb_func_end sub_815BD04 - - thumb_func_start sub_815BD58 -sub_815BD58: @ 815BD58 - push {lr} - bl LoadPlayerParty - ldr r0, _0815BD6C @ =gUnknown_2023E8A - ldrb r0, [r0] - cmp r0, 0x3 - bne _0815BD70 - bl sub_815AC20 - b _0815BD78 - .align 2, 0 -_0815BD6C: .4byte gUnknown_2023E8A -_0815BD70: - movs r0, 0x88 - lsls r0, 1 - bl PlayNewMapMusic -_0815BD78: - bl sub_815ABFC - pop {r0} - bx r0 - thumb_func_end sub_815BD58 - - thumb_func_start sub_815BD80 -sub_815BD80: @ 815BD80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x10] - ldr r1, _0815BE1C @ =gUnknown_82E55CC - mov r8, r1 - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - adds r6, r0, 0 - movs r0, 0x80 - lsls r0, 8 - bl AllocZeroed - str r0, [sp, 0x8] - movs r0, 0x10 - bl Alloc - str r0, [sp, 0xC] - movs r1, 0xFF - movs r2, 0x10 - bl memset - mov r2, r8 - ldr r0, [r2, 0x10] - movs r2, 0xA0 - lsls r2, 2 - ldr r1, [sp, 0x8] - bl sub_815BF48 - mov r3, r8 - ldr r0, [r3, 0x14] - ldr r2, [sp, 0x8] - movs r3, 0xA0 - lsls r3, 7 - adds r1, r2, r3 - movs r2, 0xC0 - lsls r2, 1 - bl sub_815BF48 - movs r4, 0 -_0815BDDE: - movs r2, 0 - adds r0, r4, 0x6 - str r0, [sp, 0x18] - lsls r1, r4, 4 - mov r10, r1 - lsls r3, r4, 6 - mov r9, r3 - adds r4, 0x1 - str r4, [sp, 0x14] -_0815BDF0: - mov r1, r8 - ldr r0, [r1] - ldr r3, [sp, 0x18] - muls r0, r3 - ldr r1, [r1, 0xC] - adds r0, r2, r0 - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0, 0x10] - ldr r3, _0815BE20 @ =0x000003ff - adds r0, r3, 0 - adds r4, r0, 0 - ands r4, r1 - movs r3, 0 - mov r0, r10 - adds r1, r0, r2 - lsls r5, r2, 1 - adds r7, r2, 0x1 - cmp r3, r1 - bge _0815BE3C - ldrh r0, [r6] - b _0815BE34 - .align 2, 0 -_0815BE1C: .4byte gUnknown_82E55CC -_0815BE20: .4byte 0x000003ff -_0815BE24: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bge _0815BE3C - lsls r0, r3, 1 - adds r0, r6 - ldrh r0, [r0] -_0815BE34: - cmp r0, 0 - beq _0815BE46 - cmp r0, r4 - bne _0815BE24 -_0815BE3C: - lsls r0, r3, 1 - adds r0, r6 - ldrh r0, [r0] - cmp r0, 0 - bne _0815BE56 -_0815BE46: - lsls r0, r3, 1 - adds r0, r6 - strh r4, [r0] - ldr r0, [sp, 0x10] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] -_0815BE56: - mov r2, r9 - adds r1, r2, r5 - lsls r1, 1 - ldr r0, [sp, 0x4] - adds r1, r0, r1 - str r3, [sp] - mov r0, r8 - ldr r2, [sp, 0xC] - adds r3, r4, 0 - bl sub_815BF70 - lsls r0, r7, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _0815BDF0 - ldr r1, [sp, 0x14] - lsls r0, r1, 16 - lsrs r4, r0, 16 - cmp r4, 0x8 - bls _0815BDDE - ldr r2, [sp, 0x10] - lsls r0, r2, 7 - bl Alloc - adds r7, r0, 0 - movs r0, 0x80 - bl Alloc - adds r5, r0, 0 - movs r4, 0 - ldr r3, [sp, 0x10] - lsls r3, 23 - mov r9, r3 - ldr r0, [sp, 0x10] - cmp r4, r0 - bcs _0815BF00 - ldr r1, _0815BECC @ =0x0000027f - mov r10, r1 -_0815BEA2: - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x80 - bl memset - lsls r0, r4, 1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r10 - bhi _0815BED0 - mov r2, r8 - ldr r0, [r2, 0x10] - ldrh r1, [r1] - lsls r1, 4 - ldr r0, [r0, 0xC] - adds r0, r1 - adds r1, r5, 0 - ldr r2, [sp, 0x8] - bl sub_815BFF0 - b _0815BEE8 - .align 2, 0 -_0815BECC: .4byte 0x0000027f -_0815BED0: - mov r3, r8 - ldr r0, [r3, 0x14] - ldrh r1, [r1] - ldr r2, _0815BF44 @ =0xfffffd80 - adds r1, r2 - lsls r1, 4 - ldr r0, [r0, 0xC] - adds r0, r1 - adds r1, r5, 0 - ldr r2, [sp, 0x8] - bl sub_815BFF0 -_0815BEE8: - lsls r1, r4, 7 - adds r1, r7, r1 - adds r0, r5, 0 - movs r2, 0x20 - bl CpuFastSet - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r3, [sp, 0x10] - cmp r4, r3 - bcc _0815BEA2 -_0815BF00: - mov r0, r9 - lsrs r2, r0, 16 - movs r0, 0x3 - adds r1, r7, 0 - movs r3, 0 - bl LoadBgTiles - mov r0, r8 - ldr r1, [sp, 0xC] - bl sub_815C230 - adds r0, r5, 0 - bl Free - adds r0, r7, 0 - bl Free - ldr r0, [sp, 0xC] - bl Free - ldr r0, [sp, 0x8] - bl Free - adds r0, r6, 0 - bl Free - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815BF44: .4byte 0xfffffd80 - thumb_func_end sub_815BD80 - - thumb_func_start sub_815BF48 -sub_815BF48: @ 815BF48 - push {lr} - adds r3, r0, 0 - lsls r2, 16 - lsrs r2, 16 - cmp r3, 0 - beq _0815BF6A - ldrb r0, [r3] - cmp r0, 0 - bne _0815BF64 - ldr r0, [r3, 0x4] - lsls r2, 3 - bl CpuFastSet - b _0815BF6A -_0815BF64: - ldr r0, [r3, 0x4] - bl LZDecompressWram -_0815BF6A: - pop {r0} - bx r0 - thumb_func_end sub_815BF48 - - thumb_func_start sub_815BF70 -sub_815BF70: @ 815BF70 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - adds r6, r2, 0 - ldr r0, [sp, 0x14] - lsls r3, 16 - lsrs r1, r3, 16 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _0815BF8C @ =0x0000027f - cmp r1, r0 - bhi _0815BF90 - ldr r0, [r5, 0x10] - b _0815BF96 - .align 2, 0 -_0815BF8C: .4byte 0x0000027f -_0815BF90: - ldr r0, [r5, 0x14] - ldr r2, _0815BFEC @ =0xfffffd80 - adds r1, r2 -_0815BF96: - lsls r1, 4 - ldr r0, [r0, 0xC] - adds r5, r0, r1 - ldrh r1, [r5] - adds r0, r6, 0 - bl sub_815C1F0 - lsls r0, 12 - lsls r4, 2 - adds r0, r4 - strh r0, [r7] - ldrh r1, [r5, 0x2] - adds r0, r6, 0 - bl sub_815C1F0 - lsls r0, 12 - adds r0, r4 - adds r0, 0x1 - strh r0, [r7, 0x2] - ldrh r1, [r5, 0x4] - adds r0, r6, 0 - bl sub_815C1F0 - adds r1, r7, 0 - adds r1, 0x40 - lsls r0, 12 - adds r0, r4 - adds r0, 0x2 - strh r0, [r1] - ldrh r1, [r5, 0x6] - adds r0, r6, 0 - bl sub_815C1F0 - adds r1, r7, 0 - adds r1, 0x42 - lsls r0, 12 - adds r0, r4 - adds r0, 0x3 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815BFEC: .4byte 0xfffffd80 - thumb_func_end sub_815BF70 - - thumb_func_start sub_815BFF0 -sub_815BFF0: @ 815BFF0 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - mov r8, r0 - mov r9, r1 - adds r5, r2, 0 - ldrh r2, [r0] - ldr r4, _0815C0D0 @ =0x000003ff - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - movs r6, 0x3 - ands r2, r6 - mov r0, r9 - bl sub_815C0D4 - mov r0, r8 - ldrh r2, [r0, 0x8] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r9 - bl sub_815C0D4 - movs r0, 0x20 - add r0, r9 - mov r10, r0 - mov r0, r8 - ldrh r2, [r0, 0x2] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r10 - bl sub_815C0D4 - mov r0, r8 - ldrh r2, [r0, 0xA] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r10 - bl sub_815C0D4 - movs r0, 0x40 - add r0, r9 - mov r10, r0 - mov r0, r8 - ldrh r2, [r0, 0x4] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r10 - bl sub_815C0D4 - mov r0, r8 - ldrh r2, [r0, 0xC] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r10 - bl sub_815C0D4 - movs r0, 0x60 - add r9, r0 - mov r0, r8 - ldrh r2, [r0, 0x6] - adds r1, r4, 0 - ands r1, r2 - lsls r1, 5 - adds r1, r5, r1 - lsrs r2, 10 - ands r2, r6 - mov r0, r9 - bl sub_815C0D4 - mov r0, r8 - ldrh r2, [r0, 0xE] - ands r4, r2 - lsls r4, 5 - adds r5, r4 - lsrs r2, 10 - ands r2, r6 - mov r0, r9 - adds r1, r5, 0 - bl sub_815C0D4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815C0D0: .4byte 0x000003ff - thumb_func_end sub_815BFF0 - - thumb_func_start sub_815C0D4 -sub_815C0D4: @ 815C0D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r0 - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - movs r0, 0x20 - bl AllocZeroed - adds r6, r0, 0 - movs r0, 0x20 - bl AllocZeroed - str r0, [sp] - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x8 - bl CpuFastSet - movs r0, 0x1 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - beq _0815C15A - movs r5, 0 - movs r7, 0xF - mov r12, r7 - movs r0, 0xF0 - mov r8, r0 -_0815C118: - movs r3, 0 - lsls r4, r5, 2 -_0815C11C: - subs r0, r3, 0x3 - subs r0, r4, r0 - adds r0, r6, r0 - ldrb r1, [r0] - adds r2, r4, r3 - ldr r7, [sp] - adds r2, r7, r2 - adds r0, r1, 0 - mov r7, r12 - ands r0, r7 - lsls r0, 4 - mov r7, r8 - ands r1, r7 - lsrs r1, 4 - adds r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0815C11C - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0815C118 - ldr r0, [sp] - adds r1, r6, 0 - movs r2, 0x8 - bl CpuFastSet -_0815C15A: - movs r0, 0x2 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - beq _0815C18E - movs r5, 0 -_0815C166: - lsls r0, r5, 2 - ldr r7, [sp] - adds r0, r7 - movs r1, 0x7 - subs r1, r5 - lsls r1, 2 - adds r1, r6 - movs r2, 0x4 - bl memcpy - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0815C166 - ldr r0, [sp] - adds r1, r6, 0 - movs r2, 0x8 - bl CpuFastSet -_0815C18E: - movs r5, 0 - movs r0, 0xF0 - mov r8, r0 - movs r1, 0xF - mov r12, r1 -_0815C198: - adds r4, r6, r5 - ldrb r0, [r4] - mov r3, r8 - ands r3, r0 - cmp r3, 0 - beq _0815C1B2 - mov r7, r9 - adds r2, r7, r5 - ldrb r1, [r2] - mov r0, r12 - ands r0, r1 - adds r0, r3 - strb r0, [r2] -_0815C1B2: - ldrb r0, [r4] - mov r3, r12 - ands r3, r0 - cmp r3, 0 - beq _0815C1CA - mov r0, r9 - adds r2, r0, r5 - ldrb r1, [r2] - mov r0, r8 - ands r0, r1 - adds r0, r3 - strb r0, [r2] -_0815C1CA: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1F - bls _0815C198 - ldr r0, [sp] - bl Free - adds r0, r6, 0 - bl Free - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815C0D4 - - thumb_func_start sub_815C1F0 -sub_815C1F0: @ 815C1F0 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 28 - movs r3, 0 - ldrb r0, [r4] - cmp r0, r1 - beq _0815C220 - cmp r0, 0xFF - bne _0815C208 - strb r1, [r4] - b _0815C220 -_0815C208: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bhi _0815C220 - adds r2, r4, r3 - ldrb r0, [r2] - cmp r0, r1 - beq _0815C220 - cmp r0, 0xFF - bne _0815C208 - strb r1, [r2] -_0815C220: - movs r0, 0xF - subs r0, r3 - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_815C1F0 - - thumb_func_start sub_815C230 -sub_815C230: @ 815C230 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 - ldrb r0, [r5] - cmp r0, 0xFF - beq _0815C274 -_0815C23E: - adds r1, r5, r4 - ldrb r0, [r1] - cmp r0, 0x6 - bls _0815C24A - ldr r0, [r6, 0x14] - b _0815C24C -_0815C24A: - ldr r0, [r6, 0x10] -_0815C24C: - ldrb r1, [r1] - lsls r1, 5 - ldr r0, [r0, 0x8] - adds r0, r1 - movs r1, 0xF - subs r1, r4 - lsls r1, 20 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bhi _0815C274 - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0815C23E -_0815C274: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_815C230 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/text_window.s b/asm/text_window.s deleted file mode 100644 index df5c80739..000000000 --- a/asm/text_window.s +++ /dev/null @@ -1,948 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814FD04 -sub_814FD04: @ 814FD04 - push {r4,lr} - adds r3, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0814FD34 @ =gUnknown_84566A8 - movs r2, 0xA0 - lsls r2, 2 - bl LoadBgTiles - movs r0, 0x2 - bl stdpal_get - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FD34: .4byte gUnknown_84566A8 - thumb_func_end sub_814FD04 - - thumb_func_start sub_814FD38 -sub_814FD38: @ 814FD38 - push {r4,lr} - adds r3, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0814FD68 @ =gUnknown_841F1C8 - movs r2, 0xA0 - lsls r2, 2 - bl LoadBgTiles - movs r0, 0 - bl stdpal_get - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FD68: .4byte gUnknown_841F1C8 - thumb_func_end sub_814FD38 - - thumb_func_start sub_814FD6C -sub_814FD6C: @ 814FD6C - push {r4,lr} - adds r3, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0814FD9C @ =gUnknown_8470B0C - movs r2, 0x98 - lsls r2, 2 - bl LoadBgTiles - movs r0, 0x1 - bl stdpal_get - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FD9C: .4byte gUnknown_8470B0C - thumb_func_end sub_814FD6C - - thumb_func_start sub_814FDA0 -sub_814FDA0: @ 814FDA0 - push {r4,lr} - adds r3, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0814FDD0 @ =gUnknown_8471A4C - movs r2, 0x90 - lsls r2, 1 - bl LoadBgTiles - movs r0, 0x3 - bl stdpal_get - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FDD0: .4byte gUnknown_8471A4C - thumb_func_end sub_814FDA0 - - thumb_func_start sub_814FDD4 -sub_814FDD4: @ 814FDD4 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 16 - lsrs r3, 16 - ldr r1, _0814FDF0 @ =gUnknown_8471B6C - movs r2, 0xA0 - lsls r2, 2 - bl LoadBgTiles - pop {r0} - bx r0 - .align 2, 0 -_0814FDF0: .4byte gUnknown_8471B6C - thumb_func_end sub_814FDD4 - - thumb_func_start sub_814FDF4 -sub_814FDF4: @ 814FDF4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsls r6, 16 - lsrs r6, 16 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r5, _0814FE3C @ =gUnknown_8471E8C - lsrs r4, 21 - adds r1, r4, r5 - ldr r1, [r1] - movs r2, 0x90 - lsls r2, 1 - adds r3, r6, 0 - bl LoadBgTiles - adds r5, 0x4 - adds r4, r5 - ldr r0, [r4] - mov r1, r8 - movs r2, 0x20 - bl LoadPalette - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814FE3C: .4byte gUnknown_8471E8C - thumb_func_end sub_814FDF4 - - thumb_func_start sub_814FE40 -sub_814FE40: @ 814FE40 - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _0814FE68 @ =gSaveBlock2Ptr - ldr r1, [r1] - ldrb r1, [r1, 0x14] - lsrs r1, 3 - adds r2, r4, 0 - bl sub_814FFC4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FE68: .4byte gSaveBlock2Ptr - thumb_func_end sub_814FE40 - - thumb_func_start sub_814FE6C -sub_814FE6C: @ 814FE6C - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FEA8 @ =gUnknown_84566A8 - movs r2, 0xA0 - lsls r2, 2 - adds r3, r4, 0 - bl LoadBgTiles - movs r0, 0x2 - bl stdpal_get - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FEA8: .4byte gUnknown_84566A8 - thumb_func_end sub_814FE6C - - thumb_func_start sub_814FEAC -sub_814FEAC: @ 814FEAC - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FEE8 @ =gUnknown_841F1C8 - movs r2, 0xA0 - lsls r2, 2 - adds r3, r4, 0 - bl LoadBgTiles - movs r0, 0 - bl stdpal_get - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FEE8: .4byte gUnknown_841F1C8 - thumb_func_end sub_814FEAC - - thumb_func_start sub_814FEEC -sub_814FEEC: @ 814FEEC - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FF28 @ =gUnknown_8470B0C - movs r2, 0x98 - lsls r2, 2 - adds r3, r4, 0 - bl LoadBgTiles - movs r0, 0x1 - bl stdpal_get - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FF28: .4byte gUnknown_8470B0C - thumb_func_end sub_814FEEC - - thumb_func_start sub_814FF2C -sub_814FF2C: @ 814FF2C - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FF68 @ =gUnknown_8471A4C - movs r2, 0x90 - lsls r2, 1 - adds r3, r4, 0 - bl LoadBgTiles - movs r0, 0x3 - bl stdpal_get - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814FF68: .4byte gUnknown_8471A4C - thumb_func_end sub_814FF2C - - thumb_func_start sub_814FF6C -sub_814FF6C: @ 814FF6C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FF94 @ =gUnknown_8471A4C - movs r2, 0x90 - lsls r2, 1 - adds r3, r4, 0 - bl LoadBgTiles - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FF94: .4byte gUnknown_8471A4C - thumb_func_end sub_814FF6C - - thumb_func_start sub_814FF98 -sub_814FF98: @ 814FF98 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814FFC0 @ =gUnknown_8471B6C - movs r2, 0xA0 - lsls r2, 2 - adds r3, r4, 0 - bl LoadBgTiles - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814FFC0: .4byte gUnknown_8471B6C - thumb_func_end sub_814FF98 - - thumb_func_start sub_814FFC4 -sub_814FFC4: @ 814FFC4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 16 - lsrs r6, 16 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08150018 @ =gUnknown_8471E8C - lsls r4, 3 - adds r1, r4, r5 - ldr r1, [r1] - movs r2, 0x90 - lsls r2, 1 - adds r3, r6, 0 - bl LoadBgTiles - adds r5, 0x4 - adds r4, r5 - ldr r0, [r4] - mov r1, r8 - movs r2, 0x20 - bl LoadPalette - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08150018: .4byte gUnknown_8471E8C - thumb_func_end sub_814FFC4 - - thumb_func_start sub_815001C -sub_815001C: @ 815001C - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _08150044 @ =gSaveBlock2Ptr - ldr r1, [r1] - ldrb r1, [r1, 0x14] - lsrs r1, 3 - adds r2, r4, 0 - bl sub_814FFC4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08150044: .4byte gSaveBlock2Ptr - thumb_func_end sub_815001C - - thumb_func_start sub_8150048 -sub_8150048: @ 8150048 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl GetWindowAttribute - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl GetWindowAttribute - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - adds r0, r4, 0 - movs r1, 0x3 - bl GetWindowAttribute - mov r9, r0 - mov r2, r9 - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - adds r0, r4, 0 - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - mov r0, r8 - subs r0, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - subs r4, r6, 0x1 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - mov r10, r0 - str r0, [sp] - str r0, [sp, 0x4] - ldr r2, [sp, 0xC] - str r2, [sp, 0x8] - adds r0, r7, 0 - adds r1, r5, 0 - ldr r2, [sp, 0x14] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r0, r8 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x18] - mov r2, r9 - lsls r0, r2, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - str r0, [sp] - mov r0, r10 - str r0, [sp, 0x4] - ldr r2, [sp, 0xC] - str r2, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x2 - lsls r1, 16 - lsrs r1, 16 - add r8, r9 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r2, r10 - str r2, [sp] - str r2, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x3 - lsls r1, 16 - lsrs r1, 16 - lsls r2, r6, 24 - lsrs r2, 24 - mov r9, r2 - mov r0, r10 - str r0, [sp] - ldr r2, [sp, 0x10] - lsls r4, r2, 24 - lsrs r4, 24 - str r4, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x14] - mov r3, r9 - bl FillBgTilemapBufferRect - adds r1, r5, 0x5 - lsls r1, 16 - lsrs r1, 16 - mov r2, r10 - str r2, [sp] - str r4, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - mov r3, r9 - bl FillBgTilemapBufferRect - adds r1, r5, 0x6 - lsls r1, 16 - lsrs r1, 16 - ldr r2, [sp, 0x10] - adds r6, r2 - lsls r6, 24 - lsrs r6, 24 - mov r0, r10 - str r0, [sp] - str r0, [sp, 0x4] - ldr r2, [sp, 0xC] - str r2, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x14] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - adds r1, r5, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x1C] - str r0, [sp] - mov r2, r10 - str r2, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - adds r5, 0x8 - lsls r5, 16 - lsrs r5, 16 - mov r2, r10 - str r2, [sp] - str r2, [sp, 0x4] - ldr r0, [sp, 0xC] - str r0, [sp, 0x8] - adds r0, r7, 0 - adds r1, r5, 0 - mov r2, r8 - adds r3, r6, 0 - bl FillBgTilemapBufferRect - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8150048 - - thumb_func_start sub_81501D0 -sub_81501D0: @ 81501D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r4, r0, 0 - mov r9, r1 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - adds r0, r4, 0 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl GetWindowAttribute - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl GetWindowAttribute - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - adds r0, r4, 0 - movs r1, 0x3 - bl GetWindowAttribute - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - mov r0, r8 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - lsls r4, r6, 24 - lsrs r4, 24 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r1, r9 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r0, r8 - adds r0, 0x1 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - subs r0, r5, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x2 - lsls r1, 16 - lsrs r1, 16 - add r8, r5 - movs r0, 0x1 - negs r0, r0 - add r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x3 - lsls r1, 16 - lsrs r1, 16 - adds r5, r6, 0x1 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - str r0, [sp] - ldr r4, [sp, 0xC] - subs r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x10] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x5 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1 - str r0, [sp] - str r4, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x6 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0xC] - adds r6, r0 - subs r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x10] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - mov r1, r9 - adds r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x18] - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x14] - adds r3, r6, 0 - bl FillBgTilemapBufferRect - movs r0, 0x8 - add r9, r0 - mov r0, r9 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - mov r0, r10 - str r0, [sp, 0x8] - adds r0, r7, 0 - mov r1, r9 - mov r2, r8 - adds r3, r6, 0 - bl FillBgTilemapBufferRect - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81501D0 - - thumb_func_start rbox_fill_rectangle -rbox_fill_rectangle: @ 815036C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r0, r6, 0 - movs r1, 0 - bl GetWindowAttribute - mov r9, r0 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r6, 0 - movs r1, 0x1 - bl GetWindowAttribute - mov r8, r0 - mov r1, r8 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - adds r0, r6, 0 - movs r1, 0x2 - bl GetWindowAttribute - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x3 - bl GetWindowAttribute - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - movs r1, 0x4 - bl GetWindowAttribute - movs r1, 0x1 - negs r1, r1 - add r8, r1 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - subs r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - adds r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - lsls r0, 24 - movs r1, 0x80 - lsls r1, 18 - adds r0, r1 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - mov r0, r9 - movs r1, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end rbox_fill_rectangle - - thumb_func_start stdpal_get -stdpal_get: @ 8150408 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08150444 - lsls r0, 2 - ldr r1, _0815041C @ =_08150420 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815041C: .4byte _08150420 - .align 2, 0 -_08150420: - .4byte _08150434 - .4byte _08150438 - .4byte _0815043C - .4byte _08150440 - .4byte _08150444 -_08150434: - movs r0, 0 - b _08150446 -_08150438: - movs r0, 0x10 - b _08150446 -_0815043C: - movs r0, 0x20 - b _08150446 -_08150440: - movs r0, 0x30 - b _08150446 -_08150444: - movs r0, 0x40 -_08150446: - lsls r0, 1 - ldr r1, _08150450 @ =gUnknown_8471DEC - adds r0, r1 - pop {r1} - bx r1 - .align 2, 0 -_08150450: .4byte gUnknown_8471DEC - thumb_func_end stdpal_get - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/text_window_graphics.s b/asm/text_window_graphics.s deleted file mode 100644 index 6c725a553..000000000 --- a/asm/text_window_graphics.s +++ /dev/null @@ -1,30 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8069788 -sub_8069788: @ 8069788 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080697A0 - lsls r0, 3 - ldr r1, _0806979C @ =gUnknown_8471E8C - adds r0, r1 - b _080697A2 - .align 2, 0 -_0806979C: .4byte gUnknown_8471E8C -_080697A0: - ldr r0, _080697A8 @ =gUnknown_8471E8C -_080697A2: - pop {r1} - bx r1 - .align 2, 0 -_080697A8: .4byte gUnknown_8471E8C - thumb_func_end sub_8069788 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/tileset_anims.s b/asm/tileset_anims.s index 37280ab70..693962d39 100644 --- a/asm/tileset_anims.s +++ b/asm/tileset_anims.s @@ -132,11 +132,11 @@ sub_806FFB0: @ 806FFB0 sub_806FFBC: @ 806FFBC push {r4,lr} bl ResetTilesetAnimBuffer - ldr r2, _08070014 @ =gUnknown_3000FAE + ldr r2, _08070014 @ =sPrimaryTilesetCBCounter ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] - ldr r1, _08070018 @ =gUnknown_3000FB0 + ldr r1, _08070018 @ =sPrimaryTilesetCBBufferSize lsls r0, 16 lsrs r0, 16 ldrh r1, [r1] @@ -145,11 +145,11 @@ sub_806FFBC: @ 806FFBC movs r0, 0 strh r0, [r2] _0806FFDA: - ldr r4, _0807001C @ =gUnknown_3000FB2 + ldr r4, _0807001C @ =sSecondaryTilesetCBCounter ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] - ldr r1, _08070020 @ =gUnknown_3000FB4 + ldr r1, _08070020 @ =sSecondaryTilesetCBBufferSize lsls r0, 16 lsrs r0, 16 ldrh r1, [r1] @@ -158,14 +158,14 @@ _0806FFDA: movs r0, 0 strh r0, [r4] _0806FFF2: - ldr r0, _08070024 @ =gUnknown_3000FB8 + ldr r0, _08070024 @ =sPrimaryTilesetCB ldr r1, [r0] cmp r1, 0 beq _08070000 ldrh r0, [r2] bl _call_via_r1 _08070000: - ldr r0, _08070028 @ =gUnknown_3000FBC + ldr r0, _08070028 @ =sSecondaryTilesetCB ldr r1, [r0] cmp r1, 0 beq _0807000E @@ -176,23 +176,23 @@ _0807000E: pop {r0} bx r0 .align 2, 0 -_08070014: .4byte gUnknown_3000FAE -_08070018: .4byte gUnknown_3000FB0 -_0807001C: .4byte gUnknown_3000FB2 -_08070020: .4byte gUnknown_3000FB4 -_08070024: .4byte gUnknown_3000FB8 -_08070028: .4byte gUnknown_3000FBC +_08070014: .4byte sPrimaryTilesetCBCounter +_08070018: .4byte sPrimaryTilesetCBBufferSize +_0807001C: .4byte sSecondaryTilesetCBCounter +_08070020: .4byte sSecondaryTilesetCBBufferSize +_08070024: .4byte sPrimaryTilesetCB +_08070028: .4byte sSecondaryTilesetCB thumb_func_end sub_806FFBC thumb_func_start cur_mapheader_run_tileset1_func cur_mapheader_run_tileset1_func: @ 807002C push {lr} - ldr r0, _08070058 @ =gUnknown_3000FAE + ldr r0, _08070058 @ =sPrimaryTilesetCBCounter movs r1, 0 strh r1, [r0] - ldr r0, _0807005C @ =gUnknown_3000FB0 + ldr r0, _0807005C @ =sPrimaryTilesetCBBufferSize strh r1, [r0] - ldr r1, _08070060 @ =gUnknown_3000FB8 + ldr r1, _08070060 @ =sPrimaryTilesetCB movs r0, 0 str r0, [r1] ldr r0, _08070064 @ =gMapHeader @@ -208,21 +208,21 @@ _08070052: pop {r0} bx r0 .align 2, 0 -_08070058: .4byte gUnknown_3000FAE -_0807005C: .4byte gUnknown_3000FB0 -_08070060: .4byte gUnknown_3000FB8 +_08070058: .4byte sPrimaryTilesetCBCounter +_0807005C: .4byte sPrimaryTilesetCBBufferSize +_08070060: .4byte sPrimaryTilesetCB _08070064: .4byte gMapHeader thumb_func_end cur_mapheader_run_tileset1_func thumb_func_start cur_mapheader_run_tileset2_func cur_mapheader_run_tileset2_func: @ 8070068 push {lr} - ldr r0, _08070094 @ =gUnknown_3000FB2 + ldr r0, _08070094 @ =sSecondaryTilesetCBCounter movs r1, 0 strh r1, [r0] - ldr r0, _08070098 @ =gUnknown_3000FB4 + ldr r0, _08070098 @ =sSecondaryTilesetCBBufferSize strh r1, [r0] - ldr r1, _0807009C @ =gUnknown_3000FBC + ldr r1, _0807009C @ =sSecondaryTilesetCB movs r0, 0 str r0, [r1] ldr r0, _080700A0 @ =gMapHeader @@ -238,9 +238,9 @@ _0807008E: pop {r0} bx r0 .align 2, 0 -_08070094: .4byte gUnknown_3000FB2 -_08070098: .4byte gUnknown_3000FB4 -_0807009C: .4byte gUnknown_3000FBC +_08070094: .4byte sSecondaryTilesetCBCounter +_08070098: .4byte sSecondaryTilesetCBBufferSize +_0807009C: .4byte sSecondaryTilesetCB _080700A0: .4byte gMapHeader thumb_func_end cur_mapheader_run_tileset2_func @@ -342,22 +342,22 @@ _0807014C: thumb_func_start sub_8070154 sub_8070154: @ 8070154 - ldr r1, _0807016C @ =gUnknown_3000FAE + ldr r1, _0807016C @ =sPrimaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _08070170 @ =gUnknown_3000FB0 + ldr r1, _08070170 @ =sPrimaryTilesetCBBufferSize movs r2, 0xA0 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] - ldr r1, _08070174 @ =gUnknown_3000FB8 + ldr r1, _08070174 @ =sPrimaryTilesetCB ldr r0, _08070178 @ =sub_8070120 str r0, [r1] bx lr .align 2, 0 -_0807016C: .4byte gUnknown_3000FAE -_08070170: .4byte gUnknown_3000FB0 -_08070174: .4byte gUnknown_3000FB8 +_0807016C: .4byte sPrimaryTilesetCBCounter +_08070170: .4byte sPrimaryTilesetCBBufferSize +_08070174: .4byte sPrimaryTilesetCB _08070178: .4byte sub_8070120 thumb_func_end sub_8070154 @@ -410,20 +410,20 @@ _080701D0: thumb_func_start sub_80701D8 sub_80701D8: @ 80701D8 - ldr r1, _080701EC @ =gUnknown_3000FB2 + ldr r1, _080701EC @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _080701F0 @ =gUnknown_3000FB4 + ldr r1, _080701F0 @ =sSecondaryTilesetCBBufferSize movs r0, 0x78 strh r0, [r1] - ldr r1, _080701F4 @ =gUnknown_3000FBC + ldr r1, _080701F4 @ =sSecondaryTilesetCB ldr r0, _080701F8 @ =sub_80701AC str r0, [r1] bx lr .align 2, 0 -_080701EC: .4byte gUnknown_3000FB2 -_080701F0: .4byte gUnknown_3000FB4 -_080701F4: .4byte gUnknown_3000FBC +_080701EC: .4byte sSecondaryTilesetCBCounter +_080701F0: .4byte sSecondaryTilesetCBBufferSize +_080701F4: .4byte sSecondaryTilesetCB _080701F8: .4byte sub_80701AC thumb_func_end sub_80701D8 @@ -474,20 +474,20 @@ _08070248: thumb_func_start sub_8070250 sub_8070250: @ 8070250 - ldr r1, _08070264 @ =gUnknown_3000FB2 + ldr r1, _08070264 @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _08070268 @ =gUnknown_3000FB4 + ldr r1, _08070268 @ =sSecondaryTilesetCBBufferSize movs r0, 0xA0 strh r0, [r1] - ldr r1, _0807026C @ =gUnknown_3000FBC + ldr r1, _0807026C @ =sSecondaryTilesetCB ldr r0, _08070270 @ =sub_8070224 str r0, [r1] bx lr .align 2, 0 -_08070264: .4byte gUnknown_3000FB2 -_08070268: .4byte gUnknown_3000FB4 -_0807026C: .4byte gUnknown_3000FBC +_08070264: .4byte sSecondaryTilesetCBCounter +_08070268: .4byte sSecondaryTilesetCBBufferSize +_0807026C: .4byte sSecondaryTilesetCB _08070270: .4byte sub_8070224 thumb_func_end sub_8070250 @@ -531,22 +531,22 @@ _080702B0: thumb_func_start sub_80702B4 sub_80702B4: @ 80702B4 - ldr r1, _080702CC @ =gUnknown_3000FB2 + ldr r1, _080702CC @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _080702D0 @ =gUnknown_3000FB4 + ldr r1, _080702D0 @ =sSecondaryTilesetCBBufferSize movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r1, _080702D4 @ =gUnknown_3000FBC + ldr r1, _080702D4 @ =sSecondaryTilesetCB ldr r0, _080702D8 @ =sub_807029C str r0, [r1] bx lr .align 2, 0 -_080702CC: .4byte gUnknown_3000FB2 -_080702D0: .4byte gUnknown_3000FB4 -_080702D4: .4byte gUnknown_3000FBC +_080702CC: .4byte sSecondaryTilesetCBCounter +_080702D0: .4byte sSecondaryTilesetCBBufferSize +_080702D4: .4byte sSecondaryTilesetCB _080702D8: .4byte sub_807029C thumb_func_end sub_80702B4 @@ -589,20 +589,20 @@ _08070318: thumb_func_start sub_807031C sub_807031C: @ 807031C - ldr r1, _08070330 @ =gUnknown_3000FB2 + ldr r1, _08070330 @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _08070334 @ =gUnknown_3000FB4 + ldr r1, _08070334 @ =sSecondaryTilesetCBBufferSize movs r0, 0xF0 strh r0, [r1] - ldr r1, _08070338 @ =gUnknown_3000FBC + ldr r1, _08070338 @ =sSecondaryTilesetCB ldr r0, _0807033C @ =sub_8070304 str r0, [r1] bx lr .align 2, 0 -_08070330: .4byte gUnknown_3000FB2 -_08070334: .4byte gUnknown_3000FB4 -_08070338: .4byte gUnknown_3000FBC +_08070330: .4byte sSecondaryTilesetCBCounter +_08070334: .4byte sSecondaryTilesetCBBufferSize +_08070338: .4byte sSecondaryTilesetCB _0807033C: .4byte sub_8070304 thumb_func_end sub_807031C @@ -645,22 +645,22 @@ _0807037C: thumb_func_start sub_8070380 sub_8070380: @ 8070380 - ldr r1, _08070398 @ =gUnknown_3000FB2 + ldr r1, _08070398 @ =sSecondaryTilesetCBCounter movs r0, 0 strh r0, [r1] - ldr r1, _0807039C @ =gUnknown_3000FB4 + ldr r1, _0807039C @ =sSecondaryTilesetCBBufferSize movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] - ldr r1, _080703A0 @ =gUnknown_3000FBC + ldr r1, _080703A0 @ =sSecondaryTilesetCB ldr r0, _080703A4 @ =sub_8070368 str r0, [r1] bx lr .align 2, 0 -_08070398: .4byte gUnknown_3000FB2 -_0807039C: .4byte gUnknown_3000FB4 -_080703A0: .4byte gUnknown_3000FBC +_08070398: .4byte sSecondaryTilesetCBCounter +_0807039C: .4byte sSecondaryTilesetCBBufferSize +_080703A0: .4byte sSecondaryTilesetCB _080703A4: .4byte sub_8070368 thumb_func_end sub_8070380 diff --git a/asm/title_screen.s b/asm/title_screen.s index c07978623..07a861c86 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_8078914 -sub_8078914: @ 8078914 + thumb_func_start CB2_InitTitleScreen +CB2_InitTitleScreen: @ 8078914 push {r4-r6,lr} sub sp, 0xC ldr r0, _08078930 @ =gMain @@ -230,7 +230,7 @@ _08078B26: bx r0 .align 2, 0 _08078B30: .4byte gMain - thumb_func_end sub_8078914 + thumb_func_end CB2_InitTitleScreen thumb_func_start sub_8078B34 sub_8078B34: @ 8078B34 @@ -292,7 +292,7 @@ sub_8078BB4: @ 8078BB4 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer ldr r1, _08078BE4 @ =gUnknown_2037F30 ldrb r0, [r1] cmp r0, 0xFF @@ -433,7 +433,7 @@ sub_8078C9C: @ 8078C9C strb r5, [r0, 0x9] add r0, sp, 0xC strh r5, [r0] - ldr r4, _08078D1C @ =gUnknown_2038700 + ldr r4, _08078D1C @ =gScanlineEffectRegBuffers ldr r6, _08078D20 @ =0x010000a0 adds r1, r4, 0 adds r2, r6, 0 @@ -450,7 +450,7 @@ sub_8078C9C: @ 8078C9C ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams mov r0, r8 movs r1, 0x1 bl sub_8078C90 @@ -463,7 +463,7 @@ sub_8078C9C: @ 8078C9C .align 2, 0 _08078D14: .4byte 0x04000054 _08078D18: .4byte 0xa2600001 -_08078D1C: .4byte gUnknown_2038700 +_08078D1C: .4byte gScanlineEffectRegBuffers _08078D20: .4byte 0x010000a0 thumb_func_end sub_8078C9C @@ -507,7 +507,7 @@ _08078D5C: ldrsh r0, [r4, r1] cmp r0, 0 bge _08078D9C - ldr r1, _08078D80 @ =gUnknown_2039600 + ldr r1, _08078D80 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _08078D78: @@ -516,7 +516,7 @@ _08078D78: strh r0, [r4, 0x2] b _08078D9C .align 2, 0 -_08078D80: .4byte gUnknown_2039600 +_08078D80: .4byte gScanlineEffect _08078D84: movs r0, 0x50 movs r1, 0 @@ -809,7 +809,7 @@ sub_8078FC4: @ 8078FC4 b _08079094 _08078FD6: movs r0, 0x1 - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 ldr r0, _0807902C @ =sub_807941C movs r1, 0 bl CreateTask @@ -1481,9 +1481,9 @@ sub_8079550: @ 8079550 asrs r4, r5, 16 cmp r4, 0 blt _08079574 - ldr r3, _08079618 @ =gUnknown_2038700 + ldr r3, _08079618 @ =gScanlineEffectRegBuffers lsls r2, r4, 1 - ldr r0, _0807961C @ =gUnknown_2039600 + ldr r0, _0807961C @ =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 @@ -1496,9 +1496,9 @@ _08079574: movs r3, 0 mov r8, r5 adds r6, r4, 0 - ldr r0, _08079618 @ =gUnknown_2038700 + ldr r0, _08079618 @ =gScanlineEffectRegBuffers mov r12, r0 - ldr r7, _0807961C @ =gUnknown_2039600 + ldr r7, _0807961C @ =gScanlineEffect movs r5, 0xF lsls r2, r6, 1 adds r4, r2, 0 @@ -1537,8 +1537,8 @@ _080795AE: adds r3, 0x10 cmp r3, 0x9F bgt _080795E6 - ldr r6, _08079618 @ =gUnknown_2038700 - ldr r5, _0807961C @ =gUnknown_2039600 + ldr r6, _08079618 @ =gScanlineEffectRegBuffers + ldr r5, _0807961C @ =gScanlineEffect movs r4, 0 _080795CC: cmp r3, 0 @@ -1562,8 +1562,8 @@ _080795E6: subs r3, 0x10 cmp r3, 0 blt _0807960E - ldr r6, _08079618 @ =gUnknown_2038700 - ldr r5, _0807961C @ =gUnknown_2039600 + ldr r6, _08079618 @ =gScanlineEffectRegBuffers + ldr r5, _0807961C @ =gScanlineEffect movs r4, 0 _080795F8: lsls r2, r3, 1 @@ -1584,14 +1584,14 @@ _0807960E: pop {r0} bx r0 .align 2, 0 -_08079618: .4byte gUnknown_2038700 -_0807961C: .4byte gUnknown_2039600 +_08079618: .4byte gScanlineEffectRegBuffers +_0807961C: .4byte gScanlineEffect thumb_func_end sub_8079550 thumb_func_start sub_8079620 sub_8079620: @ 8079620 push {lr} - ldr r1, _08079644 @ =gUnknown_2039600 + ldr r1, _08079644 @ =gScanlineEffect ldrb r0, [r1, 0x15] cmp r0, 0 beq _0807962E @@ -1607,7 +1607,7 @@ _0807962E: pop {r0} bx r0 .align 2, 0 -_08079644: .4byte gUnknown_2039600 +_08079644: .4byte gScanlineEffect thumb_func_end sub_8079620 thumb_func_start sub_8079648 @@ -1688,13 +1688,13 @@ sub_80796E8: @ 80796E8 cmp r0, 0 bne _080796FE bl m4aMPlayAllStop - ldr r0, _08079704 @ =sub_815F74C + ldr r0, _08079704 @ =mb_berry_fix_serve bl SetMainCallback2 _080796FE: pop {r0} bx r0 .align 2, 0 -_08079704: .4byte sub_815F74C +_08079704: .4byte mb_berry_fix_serve thumb_func_end sub_80796E8 thumb_func_start sub_8079708 diff --git a/asm/tm_case.s b/asm/tm_case.s deleted file mode 100644 index 1539343e8..000000000 --- a/asm/tm_case.s +++ /dev/null @@ -1,3999 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81317F8 -sub_81317F8: @ 81317F8 - push {r4-r7,lr} - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r2, 24 - lsrs r6, r2, 24 - bl sub_8131A8C - ldr r4, _08131854 @ =gUnknown_203B118 - movs r0, 0x1C - bl Alloc - str r0, [r4] - movs r1, 0 - str r1, [r0] - movs r1, 0xFF - strb r1, [r0, 0x8] - ldr r1, [r4] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x7] - cmp r5, 0x5 - beq _0813182A - ldr r0, _08131858 @ =gUnknown_203B10C - strb r5, [r0, 0x4] -_0813182A: - cmp r7, 0 - beq _08131832 - ldr r0, _08131858 @ =gUnknown_203B10C - str r7, [r0] -_08131832: - cmp r6, 0xFF - beq _0813183A - ldr r0, _08131858 @ =gUnknown_203B10C - strb r6, [r0, 0x5] -_0813183A: - ldr r2, _0813185C @ =gTextFlags - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08131860 @ =sub_8131894 - bl SetMainCallback2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131854: .4byte gUnknown_203B118 -_08131858: .4byte gUnknown_203B10C -_0813185C: .4byte gTextFlags -_08131860: .4byte sub_8131894 - thumb_func_end sub_81317F8 - - thumb_func_start sub_8131864 -sub_8131864: @ 8131864 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8131864 - - thumb_func_start sub_8131880 -sub_8131880: @ 8131880 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8131880 - - thumb_func_start sub_8131894 -sub_8131894: @ 8131894 - push {lr} -_08131896: - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081318BA - bl sub_81318C0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081318BA - bl sub_80BF708 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08131896 -_081318BA: - pop {r0} - bx r0 - thumb_func_end sub_8131894 - - thumb_func_start sub_81318C0 -sub_81318C0: @ 81318C0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _081318E0 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x12 - bls _081318D4 - b _08131A68 -_081318D4: - lsls r0, 2 - ldr r1, _081318E4 @ =_081318E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081318E0: .4byte gMain -_081318E4: .4byte _081318E8 - .align 2, 0 -_081318E8: - .4byte _08131934 - .4byte _0813193E - .4byte _08131944 - .4byte _0813194A - .4byte _08131950 - .4byte _08131956 - .4byte _0813195C - .4byte _08131970 - .4byte _08131976 - .4byte _08131984 - .4byte _08131990 - .4byte _0813199E - .4byte _081319A4 - .4byte _081319AE - .4byte _081319B4 - .4byte _08131A04 - .4byte _08131A0A - .4byte _08131A34 - .4byte _08131A42 -_08131934: - bl sub_80BF768 - bl clear_scheduled_bg_copies_to_vram - b _08131A52 -_0813193E: - bl remove_some_task - b _08131A52 -_08131944: - bl FreeAllSpritePalettes - b _08131A52 -_0813194A: - bl ResetPaletteFade - b _08131A52 -_08131950: - bl ResetSpriteData - b _08131A52 -_08131956: - bl ResetTasks - b _08131A52 -_0813195C: - bl sub_8131AB8 - ldr r0, _0813196C @ =gUnknown_203B118 - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0x12] - b _08131A52 - .align 2, 0 -_0813196C: .4byte gUnknown_203B118 -_08131970: - bl sub_8133244 - b _08131A52 -_08131976: - bl sub_8131B20 - lsls r0, 24 - cmp r0, 0 - bne _08131982 - b _08131A80 -_08131982: - b _08131A52 -_08131984: - ldr r0, _0813198C @ =gUnknown_20398A4 - bl sub_809A5E4 - b _08131A52 - .align 2, 0 -_0813198C: .4byte gUnknown_20398A4 -_08131990: - bl sub_81320BC - bl sub_8132120 - bl sub_8132170 - b _08131A52 -_0813199E: - bl sub_8133404 - b _08131A52 -_081319A4: - bl sub_8131C10 - bl sub_8131C50 - b _08131A52 -_081319AE: - bl sub_81333C4 - b _08131A52 -_081319B4: - ldr r0, _081319C0 @ =gUnknown_203B10C - ldrb r0, [r0, 0x4] - cmp r0, 0x4 - bne _081319C8 - ldr r0, _081319C4 @ =sub_8132F20 - b _081319CA - .align 2, 0 -_081319C0: .4byte gUnknown_203B10C -_081319C4: .4byte sub_8132F20 -_081319C8: - ldr r0, _081319F4 @ =sub_81322D4 -_081319CA: - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081319F8 @ =gUnknown_3005E70 - ldr r2, _081319FC @ =gUnknown_203B10C - ldrh r1, [r2, 0xA] - ldrh r2, [r2, 0x8] - bl ListMenuInit - ldr r2, _08131A00 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x8] - b _08131A52 - .align 2, 0 -_081319F4: .4byte sub_81322D4 -_081319F8: .4byte gUnknown_3005E70 -_081319FC: .4byte gUnknown_203B10C -_08131A00: .4byte gTasks -_08131A04: - bl sub_8132018 - b _08131A52 -_08131A0A: - ldr r0, _08131A2C @ =gUnknown_203B10C - ldrh r1, [r0, 0x8] - ldrh r0, [r0, 0xA] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl sub_813368C - ldr r1, _08131A30 @ =gUnknown_203B118 - ldr r1, [r1] - strb r0, [r1, 0x4] - b _08131A52 - .align 2, 0 -_08131A2C: .4byte gUnknown_203B10C -_08131A30: .4byte gUnknown_203B118 -_08131A34: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _08131A52 -_08131A42: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_08131A52: - ldr r1, _08131A64 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08131A80 - .align 2, 0 -_08131A64: .4byte gMain -_08131A68: - ldr r0, _08131A78 @ =sub_8131880 - bl SetVBlankCallback - ldr r0, _08131A7C @ =sub_8131864 - bl SetMainCallback2 - movs r0, 0x1 - b _08131A82 - .align 2, 0 -_08131A78: .4byte sub_8131880 -_08131A7C: .4byte sub_8131864 -_08131A80: - movs r0, 0 -_08131A82: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81318C0 - - thumb_func_start sub_8131A8C -sub_8131A8C: @ 8131A8C - ldr r0, _08131AA4 @ =gUnknown_203B118 - movs r1, 0 - str r1, [r0] - ldr r0, _08131AA8 @ =gUnknown_203B120 - str r1, [r0] - ldr r0, _08131AAC @ =gUnknown_203B124 - str r1, [r0] - ldr r0, _08131AB0 @ =gUnknown_203B128 - str r1, [r0] - ldr r0, _08131AB4 @ =gUnknown_203B12C - str r1, [r0] - bx lr - .align 2, 0 -_08131AA4: .4byte gUnknown_203B118 -_08131AA8: .4byte gUnknown_203B120 -_08131AAC: .4byte gUnknown_203B124 -_08131AB0: .4byte gUnknown_203B128 -_08131AB4: .4byte gUnknown_203B12C - thumb_func_end sub_8131A8C - - thumb_func_start sub_8131AB8 -sub_8131AB8: @ 8131AB8 - push {r4,lr} - bl sub_80BF7C8 - ldr r4, _08131B18 @ =gUnknown_203B120 - movs r0, 0x80 - lsls r0, 4 - bl AllocZeroed - str r0, [r4] - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08131B1C @ =gUnknown_8463134 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r1, [r4] - movs r0, 0x2 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131B18: .4byte gUnknown_203B120 -_08131B1C: .4byte gUnknown_8463134 - thumb_func_end sub_8131AB8 - - thumb_func_start sub_8131B20 -sub_8131B20: @ 8131B20 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08131B3C @ =gUnknown_203B118 - ldr r0, [r4] - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bhi _08131BF8 - lsls r0, 2 - ldr r1, _08131B40 @ =_08131B44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08131B3C: .4byte gUnknown_203B118 -_08131B40: .4byte _08131B44 - .align 2, 0 -_08131B44: - .4byte _08131B58 - .4byte _08131B74 - .4byte _08131B94 - .4byte _08131BAC - .4byte _08131BDC -_08131B58: - bl reset_temp_tile_data_buffers - ldr r1, _08131B70 @ =gUnknown_8E845D8 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _08131BE2 - .align 2, 0 -_08131B70: .4byte gUnknown_8E845D8 -_08131B74: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08131C06 - ldr r0, _08131B8C @ =gUnknown_8E84A24 - ldr r1, _08131B90 @ =gUnknown_203B120 - ldr r1, [r1] - bl LZDecompressWram - b _08131BE2 - .align 2, 0 -_08131B8C: .4byte gUnknown_8E84A24 -_08131B90: .4byte gUnknown_203B120 -_08131B94: - ldr r4, _08131BA8 @ =gUnknown_8E84B70 - movs r0, 0x1 - bl GetBgTilemapBuffer - adds r1, r0, 0 - adds r0, r4, 0 - bl LZDecompressWram - b _08131BE2 - .align 2, 0 -_08131BA8: .4byte gUnknown_8E84B70 -_08131BAC: - ldr r0, _08131BC4 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08131BCC - ldr r0, _08131BC8 @ =gUnknown_8E84CB0 - movs r1, 0 - movs r2, 0x80 - bl LoadCompressedPalette - b _08131BE2 - .align 2, 0 -_08131BC4: .4byte gSaveBlock2Ptr -_08131BC8: .4byte gUnknown_8E84CB0 -_08131BCC: - ldr r0, _08131BD8 @ =gUnknown_8E84D20 - movs r1, 0 - movs r2, 0x80 - bl LoadCompressedPalette - b _08131BE2 - .align 2, 0 -_08131BD8: .4byte gUnknown_8E84D20 -_08131BDC: - ldr r0, _08131BF0 @ =gUnknown_8463218 - bl LoadCompressedObjectPic -_08131BE2: - ldr r0, _08131BF4 @ =gUnknown_203B118 - ldr r1, [r0] - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - b _08131C06 - .align 2, 0 -_08131BF0: .4byte gUnknown_8463218 -_08131BF4: .4byte gUnknown_203B118 -_08131BF8: - bl sub_81338A8 - ldr r1, [r4] - movs r0, 0 - strh r0, [r1, 0x12] - movs r0, 0x1 - b _08131C08 -_08131C06: - movs r0, 0 -_08131C08: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8131B20 - - thumb_func_start sub_8131C10 -sub_8131C10: @ 8131C10 - push {r4,lr} - ldr r0, _08131C40 @ =gUnknown_20398A4 - ldr r4, _08131C44 @ =gUnknown_203B124 - ldrb r0, [r0, 0x4] - adds r0, 0x1 - lsls r0, 3 - bl Alloc - str r0, [r4] - ldr r4, _08131C48 @ =gUnknown_203B128 - ldr r0, _08131C4C @ =gUnknown_203B118 - ldr r0, [r0] - ldrb r1, [r0, 0x6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - bl Alloc - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131C40: .4byte gUnknown_20398A4 -_08131C44: .4byte gUnknown_203B124 -_08131C48: .4byte gUnknown_203B128 -_08131C4C: .4byte gUnknown_203B118 - thumb_func_end sub_8131C10 - - thumb_func_start sub_8131C50 -sub_8131C50: @ 8131C50 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08131D28 @ =gUnknown_20398A4 - mov r8, r0 - movs r6, 0 - ldr r0, _08131D2C @ =gUnknown_203B118 - ldr r0, [r0] - ldrb r0, [r0, 0x6] - cmp r6, r0 - bcs _08131CA0 - ldr r7, _08131D30 @ =gUnknown_203B128 -_08131C68: - lsls r5, r6, 3 - subs r4, r5, r6 - lsls r4, 2 - adds r4, r6 - ldr r0, [r7] - adds r0, r4 - mov r1, r8 - ldr r2, [r1] - lsls r1, r6, 2 - adds r1, r2 - ldrh r1, [r1] - bl sub_8131D48 - ldr r0, _08131D34 @ =gUnknown_203B124 - ldr r0, [r0] - adds r5, r0 - ldr r0, [r7] - adds r0, r4 - str r0, [r5] - str r6, [r5, 0x4] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _08131D2C @ =gUnknown_203B118 - ldr r0, [r0] - ldrb r0, [r0, 0x6] - cmp r6, r0 - bcc _08131C68 -_08131CA0: - ldr r0, _08131D34 @ =gUnknown_203B124 - ldr r3, [r0] - lsls r0, r6, 3 - adds r0, r3 - ldr r1, _08131D38 @ =gUnknown_84166DB - str r1, [r0] - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - ldr r2, _08131D3C @ =gUnknown_3005E70 - str r3, [r2] - ldr r0, _08131D2C @ =gUnknown_203B118 - ldr r3, [r0] - ldrb r0, [r3, 0x6] - adds r0, 0x1 - movs r1, 0 - strh r0, [r2, 0xC] - strb r1, [r2, 0x10] - strb r1, [r2, 0x11] - movs r0, 0x8 - strb r0, [r2, 0x12] - strb r1, [r2, 0x13] - ldrb r0, [r2, 0x16] - movs r4, 0x8 - negs r4, r4 - ands r4, r0 - movs r0, 0x39 - negs r0, r0 - ands r4, r0 - movs r0, 0x10 - orrs r4, r0 - strb r4, [r2, 0x16] - ldrb r1, [r2, 0x14] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r5, 0x2 - orrs r0, r5 - strb r0, [r2, 0x14] - ldrb r1, [r3, 0x5] - strh r1, [r2, 0xE] - ldrb r1, [r2, 0x17] - movs r3, 0x40 - negs r3, r3 - ands r3, r1 - orrs r3, r5 - movs r1, 0xF - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x14] - movs r0, 0x30 - strb r0, [r2, 0x15] - ldr r0, _08131D40 @ =sub_8131E18 - str r0, [r2, 0x4] - ldr r0, _08131D44 @ =sub_8131E68 - str r0, [r2, 0x8] - movs r0, 0x3F - ands r3, r0 - strb r3, [r2, 0x17] - ands r4, r0 - strb r4, [r2, 0x16] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131D28: .4byte gUnknown_20398A4 -_08131D2C: .4byte gUnknown_203B118 -_08131D30: .4byte gUnknown_203B128 -_08131D34: .4byte gUnknown_203B124 -_08131D38: .4byte gUnknown_84166DB -_08131D3C: .4byte gUnknown_3005E70 -_08131D40: .4byte sub_8131E18 -_08131D44: .4byte sub_8131E68 - thumb_func_end sub_8131C50 - - thumb_func_start sub_8131D48 -sub_8131D48: @ 8131D48 - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r5, _08131D8C @ =gStringVar4 - ldr r1, _08131D90 @ =gUnknown_84166FF - adds r0, r5, 0 - bl StringCopy - movs r0, 0xA9 - lsls r0, 1 - cmp r6, r0 - bls _08131DA4 - ldr r1, _08131D94 @ =gUnknown_8463178 - adds r0, r5, 0 - bl StringAppend - ldr r1, _08131D98 @ =gUnknown_8416226 - adds r0, r5, 0 - bl StringAppend - ldr r4, _08131D9C @ =gStringVar1 - ldr r0, _08131DA0 @ =0xfffffeae - adds r1, r6, r0 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - adds r0, r5, 0 - adds r1, r4, 0 - bl StringAppend - b _08131DC4 - .align 2, 0 -_08131D8C: .4byte gStringVar4 -_08131D90: .4byte gUnknown_84166FF -_08131D94: .4byte gUnknown_8463178 -_08131D98: .4byte gUnknown_8416226 -_08131D9C: .4byte gStringVar1 -_08131DA0: .4byte 0xfffffeae -_08131DA4: - ldr r1, _08131DFC @ =gUnknown_8416226 - adds r0, r5, 0 - bl StringAppend - ldr r4, _08131E00 @ =gStringVar1 - ldr r0, _08131E04 @ =0xfffffee0 - adds r1, r6, r0 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r5, 0 - adds r1, r4, 0 - bl StringAppend -_08131DC4: - ldr r4, _08131E08 @ =gStringVar4 - ldr r1, _08131E0C @ =gUnknown_846317C - adds r0, r4, 0 - bl StringAppend - ldr r1, _08131E10 @ =gUnknown_8416703 - adds r0, r4, 0 - bl StringAppend - adds r0, r6, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, _08131E14 @ =gMoveNames - adds r1, r0 - adds r0, r4, 0 - bl StringAppend - adds r0, r7, 0 - adds r1, r4, 0 - bl StringCopy - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08131DFC: .4byte gUnknown_8416226 -_08131E00: .4byte gStringVar1 -_08131E04: .4byte 0xfffffee0 -_08131E08: .4byte gStringVar4 -_08131E0C: .4byte gUnknown_846317C -_08131E10: .4byte gUnknown_8416703 -_08131E14: .4byte gMoveNames - thumb_func_end sub_8131D48 - - thumb_func_start sub_8131E18 -sub_8131E18: @ 8131E18 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - bne _08131E2C - movs r5, 0 - b _08131E3A -_08131E2C: - lsls r1, r4, 16 - lsrs r1, 16 - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r5, r0, 16 -_08131E3A: - cmp r6, 0x1 - beq _08131E50 - movs r0, 0x5 - bl PlaySE - ldr r0, _08131E64 @ =gUnknown_203B118 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - adds r1, r5, 0 - bl sub_81337E4 -_08131E50: - adds r0, r4, 0 - bl sub_8131F0C - adds r0, r5, 0 - bl sub_8133444 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08131E64: .4byte gUnknown_203B118 - thumb_func_end sub_8131E18 - - thumb_func_start sub_8131E68 -sub_8131E68: @ 8131E68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r7, r9 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - mov r4, r8 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08131EFE - lsls r0, r1, 16 - lsrs r6, r0, 16 - movs r0, 0x4 - adds r1, r6, 0 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_unique - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08131EF4 - ldr r4, _08131EE8 @ =gStringVar1 - movs r0, 0x4 - adds r1, r6, 0 - bl sub_809A7B4 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _08131EEC @ =gStringVar4 - ldr r1, _08131EF0 @ =gUnknown_84162B9 - adds r0, r4, 0 - bl StringExpandPlaceholders - mov r0, r8 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - mov r0, r9 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0x7E - bl sub_81332EC - b _08131EFE - .align 2, 0 -_08131EE8: .4byte gStringVar1 -_08131EEC: .4byte gStringVar4 -_08131EF0: .4byte gUnknown_84162B9 -_08131EF4: - adds r0, r7, 0 - movs r1, 0x8 - adds r2, r4, 0 - bl sub_81335B0 -_08131EFE: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8131E68 - - thumb_func_start sub_8131F0C -sub_8131F0C: @ 8131F0C - push {r4,lr} - sub sp, 0x14 - adds r1, r0, 0 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08131F30 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetDescription - adds r4, r0, 0 - b _08131F32 -_08131F30: - ldr r4, _08131F60 @ =gUnknown_84166E1 -_08131F32: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0x2 - bl sub_81332EC - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131F60: .4byte gUnknown_84166E1 - thumb_func_end sub_8131F0C - - thumb_func_start sub_8131F64 -sub_8131F64: @ 8131F64 - push {lr} - sub sp, 0x8 - movs r1, 0x8 - str r1, [sp] - lsls r0, 1 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0xC - movs r3, 0x1E - bl sub_80F6B08 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_8131F64 - - thumb_func_start sub_8131F90 -sub_8131F90: @ 8131F90 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_8131FB0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8131F90 - - thumb_func_start sub_8131FB0 -sub_8131FB0: @ 8131FB0 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xFF - bne _08131FF4 - movs r0, 0x2 - movs r1, 0 - bl GetFontAttribute - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl FillWindowPixelRect - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - b _0813200A -_08131FF4: - ldr r2, _08132014 @ =gFameCheckerText_ListMenuCursor - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0 - bl sub_81332EC -_0813200A: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132014: .4byte gFameCheckerText_ListMenuCursor - thumb_func_end sub_8131FB0 - - thumb_func_start sub_8132018 -sub_8132018: @ 8132018 - push {r4,lr} - sub sp, 0x10 - ldr r4, _0813204C @ =gUnknown_203B118 - ldr r1, [r4] - ldrb r0, [r1, 0x6] - ldrb r1, [r1, 0x5] - subs r0, r1 - adds r0, 0x1 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldr r0, _08132050 @ =gUnknown_203B116 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xA0 - movs r2, 0x8 - movs r3, 0x58 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813204C: .4byte gUnknown_203B118 -_08132050: .4byte gUnknown_203B116 - thumb_func_end sub_8132018 - - thumb_func_start sub_8132054 -sub_8132054: @ 8132054 - push {r4,lr} - sub sp, 0x10 - ldr r4, _08132088 @ =gUnknown_203B118 - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0xA - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x98 - movs r2, 0x48 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132088: .4byte gUnknown_203B118 - thumb_func_end sub_8132054 - - thumb_func_start sub_813208C -sub_813208C: @ 813208C - push {r4,lr} - ldr r4, _081320A8 @ =gUnknown_203B118 - ldr r1, [r4] - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _081320A2 - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x8] -_081320A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081320A8: .4byte gUnknown_203B118 - thumb_func_end sub_813208C - - thumb_func_start sub_81320AC -sub_81320AC: @ 81320AC - ldr r1, _081320B8 @ =gUnknown_203B10C - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bx lr - .align 2, 0 -_081320B8: .4byte gUnknown_203B10C - thumb_func_end sub_81320AC - - thumb_func_start sub_81320BC -sub_81320BC: @ 81320BC - push {r4,lr} - ldr r4, _08132118 @ =gUnknown_20398A4 - ldr r0, [r4] - ldrb r1, [r4, 0x4] - bl sub_809A584 - ldr r3, _0813211C @ =gUnknown_203B118 - ldr r1, [r3] - movs r0, 0 - strb r0, [r1, 0x6] - movs r2, 0 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _08132100 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _08132100 -_081320E0: - ldr r0, [r3] - ldrb r1, [r0, 0x6] - adds r1, 0x1 - strb r1, [r0, 0x6] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _08132100 - ldr r0, [r4] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _081320E0 -_08132100: - ldr r0, _0813211C @ =gUnknown_203B118 - ldr r1, [r0] - ldrb r0, [r1, 0x6] - adds r0, 0x1 - cmp r0, 0x5 - ble _0813210E - movs r0, 0x5 -_0813210E: - strb r0, [r1, 0x5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132118: .4byte gUnknown_20398A4 -_0813211C: .4byte gUnknown_203B118 - thumb_func_end sub_81320BC - - thumb_func_start sub_8132120 -sub_8132120: @ 8132120 - push {r4,r5,lr} - ldr r0, _08132160 @ =gUnknown_203B10C - ldrh r1, [r0, 0xA] - adds r4, r0, 0 - ldr r5, _08132164 @ =gUnknown_203B118 - cmp r1, 0 - beq _08132144 - ldrh r0, [r4, 0xA] - ldr r1, [r5] - ldrb r3, [r1, 0x5] - adds r0, r3 - ldrb r2, [r1, 0x6] - adds r1, r2, 0x1 - cmp r0, r1 - ble _08132144 - subs r0, r3, 0x1 - subs r0, r2, r0 - strh r0, [r4, 0xA] -_08132144: - adds r3, r4, 0 - ldrh r0, [r3, 0xA] - ldrh r1, [r3, 0x8] - adds r0, r1 - ldr r1, [r5] - ldrb r1, [r1, 0x6] - adds r2, r1, 0x1 - cmp r0, r2 - blt _0813216A - cmp r2, 0x1 - bgt _08132168 - movs r0, 0 - strh r0, [r3, 0x8] - b _0813216A - .align 2, 0 -_08132160: .4byte gUnknown_203B10C -_08132164: .4byte gUnknown_203B118 -_08132168: - strh r1, [r4, 0x8] -_0813216A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8132120 - - thumb_func_start sub_8132170 -sub_8132170: @ 8132170 - push {r4-r6,lr} - ldr r0, _081321CC @ =gUnknown_203B10C - ldrh r1, [r0, 0x8] - adds r6, r0, 0 - cmp r1, 0x3 - bls _081321C4 - movs r4, 0 - ldrh r0, [r6, 0x8] - subs r0, 0x3 - cmp r4, r0 - bgt _081321C4 - ldrh r1, [r6, 0xA] - ldr r5, _081321D0 @ =gUnknown_203B118 - ldr r2, [r5] - ldrb r0, [r2, 0x5] - adds r1, r0 - ldrb r0, [r2, 0x6] - adds r0, 0x1 - cmp r1, r0 - beq _081321C4 - adds r3, r6, 0 -_0813219A: - ldrh r0, [r3, 0x8] - subs r0, 0x1 - strh r0, [r3, 0x8] - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r0, [r3, 0x8] - subs r0, 0x3 - cmp r4, r0 - bgt _081321C4 - ldrh r1, [r6, 0xA] - ldr r2, [r5] - ldrb r0, [r2, 0x5] - adds r1, r0 - ldrb r0, [r2, 0x6] - adds r0, 0x1 - cmp r1, r0 - bne _0813219A -_081321C4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081321CC: .4byte gUnknown_203B10C -_081321D0: .4byte gUnknown_203B118 - thumb_func_end sub_8132170 - - thumb_func_start sub_81321D4 -sub_81321D4: @ 81321D4 - push {lr} - ldr r0, _0813221C @ =gUnknown_203B118 - ldr r0, [r0] - cmp r0, 0 - beq _081321E2 - bl Free -_081321E2: - ldr r0, _08132220 @ =gUnknown_203B120 - ldr r0, [r0] - cmp r0, 0 - beq _081321EE - bl Free -_081321EE: - ldr r0, _08132224 @ =gUnknown_203B124 - ldr r0, [r0] - cmp r0, 0 - beq _081321FA - bl Free -_081321FA: - ldr r0, _08132228 @ =gUnknown_203B128 - ldr r0, [r0] - cmp r0, 0 - beq _08132206 - bl Free -_08132206: - ldr r0, _0813222C @ =gUnknown_203B12C - ldr r0, [r0] - cmp r0, 0 - beq _08132212 - bl Free -_08132212: - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 -_0813221C: .4byte gUnknown_203B118 -_08132220: .4byte gUnknown_203B120 -_08132224: .4byte gUnknown_203B124 -_08132228: .4byte gUnknown_203B128 -_0813222C: .4byte gUnknown_203B12C - thumb_func_end sub_81321D4 - - thumb_func_start sub_8132230 -sub_8132230: @ 8132230 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08132264 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08132268 @ =sub_813226C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132264: .4byte gTasks -_08132268: .4byte sub_813226C - thumb_func_end sub_8132230 - - thumb_func_start sub_813226C -sub_813226C: @ 813226C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081322A4 @ =gTasks+0x8 - adds r2, r0, r1 - ldr r0, _081322A8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081322CC - ldrb r0, [r2] - ldr r4, _081322AC @ =gUnknown_203B116 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - ldr r0, _081322B0 @ =gUnknown_203B118 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _081322B4 - bl SetMainCallback2 - b _081322BE - .align 2, 0 -_081322A4: .4byte gTasks+0x8 -_081322A8: .4byte gPaletteFade -_081322AC: .4byte gUnknown_203B116 -_081322B0: .4byte gUnknown_203B118 -_081322B4: - adds r0, r4, 0 - subs r0, 0xA - ldr r0, [r0] - bl SetMainCallback2 -_081322BE: - bl sub_813208C - bl sub_81321D4 - adds r0, r5, 0 - bl DestroyTask -_081322CC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_813226C - - thumb_func_start sub_81322D4 -sub_81322D4: @ 81322D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08132340 @ =gTasks+0x8 - adds r6, r0, r1 - ldr r0, _08132344 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0 - bne _081323C8 - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081323C8 - ldrb r0, [r6] - bl ListMenuHandleInput - adds r5, r0, 0 - ldrb r0, [r6] - ldr r4, _08132348 @ =gUnknown_203B116 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl get_coro_args_x18_x1A - ldr r0, _0813234C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08132354 - adds r0, r4, 0 - subs r0, 0xA - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _08132354 - movs r0, 0x5 - bl PlaySE - ldr r0, _08132350 @ =gSpecialVar_ItemId - mov r1, r8 - strh r1, [r0] - b _08132370 - .align 2, 0 -_08132340: .4byte gTasks+0x8 -_08132344: .4byte gPaletteFade -_08132348: .4byte gUnknown_203B116 -_0813234C: .4byte gMain -_08132350: .4byte gSpecialVar_ItemId -_08132354: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _08132364 - adds r0, 0x1 - cmp r5, r0 - bne _0813237C - b _081323C8 -_08132364: - movs r0, 0x5 - bl PlaySE - ldr r1, _08132378 @ =gSpecialVar_ItemId - movs r0, 0 - strh r0, [r1] -_08132370: - adds r0, r7, 0 - bl sub_8132230 - b _081323C8 - .align 2, 0 -_08132378: .4byte gSpecialVar_ItemId -_0813237C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_8131F64 - bl sub_813208C - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8131F90 - strh r5, [r6, 0x2] - lsls r4, r5, 16 - lsrs r4, 16 - movs r0, 0x4 - adds r1, r4, 0 - bl sub_809A7B4 - strh r0, [r6, 0x4] - movs r0, 0x4 - adds r1, r4, 0 - bl sub_809A798 - ldr r1, _081323D4 @ =gSpecialVar_ItemId - strh r0, [r1] - ldr r0, _081323D8 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r2, _081323DC @ =gUnknown_8463140 - ldr r0, _081323E0 @ =gUnknown_203B10C - ldrb r0, [r0, 0x4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] -_081323C8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081323D4: .4byte gSpecialVar_ItemId -_081323D8: .4byte gTasks -_081323DC: .4byte gUnknown_8463140 -_081323E0: .4byte gUnknown_203B10C - thumb_func_end sub_81322D4 - - thumb_func_start sub_81323E4 -sub_81323E4: @ 81323E4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_8131F64 - bl sub_8132018 - ldr r1, _0813240C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08132410 @ =sub_81322D4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813240C: .4byte gTasks -_08132410: .4byte sub_81322D4 - thumb_func_end sub_81323E4 - - thumb_func_start sub_8132414 -sub_8132414: @ 8132414 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x2 - bl sub_8133368 - bl sub_80BF708 - lsls r0, 24 - cmp r0, 0 - bne _08132454 - bl InUnionRoom - cmp r0, 0x1 - beq _08132454 - ldr r4, _0813244C @ =gUnknown_203B118 - ldr r0, [r4] - adds r0, 0x7 - movs r1, 0 - bl sub_8133630 - ldr r1, [r4] - ldr r0, _08132450 @ =gUnknown_8463168 - str r0, [r1, 0xC] - movs r0, 0x3 - b _08132468 - .align 2, 0 -_0813244C: .4byte gUnknown_203B118 -_08132450: .4byte gUnknown_8463168 -_08132454: - ldr r4, _0813254C @ =gUnknown_203B118 - ldr r0, [r4] - adds r0, 0x7 - movs r1, 0x1 - bl sub_8133630 - ldr r1, [r4] - ldr r0, _08132550 @ =gUnknown_846316B - str r0, [r1, 0xC] - movs r0, 0x2 -_08132468: - strb r0, [r1, 0x10] - movs r0, 0x2 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldr r6, _0813254C @ =gUnknown_203B118 - ldr r1, [r6] - ldrb r2, [r1, 0x7] - movs r5, 0 - str r5, [sp] - str r0, [sp, 0x4] - ldrb r0, [r1, 0x10] - str r0, [sp, 0x8] - ldr r0, _08132554 @ =gUnknown_8463150 - str r0, [sp, 0xC] - ldr r0, [r1, 0xC] - str r0, [sp, 0x10] - adds r0, r2, 0 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0x2 - bl AddItemMenuActionTextPrinters - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r6] - ldrb r2, [r1, 0x7] - str r0, [sp] - ldrb r0, [r1, 0x10] - str r0, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r2, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl sub_810F7D8 - movs r0, 0x80 - lsls r0, 1 - bl Alloc - adds r4, r0, 0 - ldr r6, _08132558 @ =gSpecialVar_ItemId - ldrh r1, [r6] - bl sub_8131D48 - ldr r1, _0813255C @ =gUnknown_8416301 - adds r0, r4, 0 - bl StringAppend - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r5, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x2 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl sub_81332EC - adds r0, r4, 0 - bl Free - ldrh r0, [r6] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - beq _08132528 - movs r0, 0x2 - movs r1, 0 - movs r2, 0x2 - bl sub_81335B0 - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram -_08132528: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _08132560 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _08132564 @ =sub_8132568 - str r0, [r1] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813254C: .4byte gUnknown_203B118 -_08132550: .4byte gUnknown_846316B -_08132554: .4byte gUnknown_8463150 -_08132558: .4byte gSpecialVar_ItemId -_0813255C: .4byte gUnknown_8416301 -_08132560: .4byte gTasks -_08132564: .4byte sub_8132568 - thumb_func_end sub_8132414 - - thumb_func_start sub_8132568 -sub_8132568: @ 8132568 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081325E0 - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081325E0 - adds r0, 0x1 - cmp r4, r0 - bne _081325C0 - movs r0, 0x5 - bl PlaySE - ldr r2, _081325B8 @ =gUnknown_8463150 - ldr r0, _081325BC @ =gUnknown_203B118 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - ldr r1, [r1, 0xC] - adds r0, r1 - subs r0, 0x1 - ldrb r0, [r0] - lsls r0, 3 - adds r2, 0x4 - adds r0, r2 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _081325E0 - .align 2, 0 -_081325B8: .4byte gUnknown_8463150 -_081325BC: .4byte gUnknown_203B118 -_081325C0: - movs r0, 0x5 - bl PlaySE - ldr r1, _081325E8 @ =gUnknown_8463150 - ldr r0, _081325EC @ =gUnknown_203B118 - ldr r0, [r0] - ldr r0, [r0, 0xC] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 -_081325E0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081325E8: .4byte gUnknown_8463150 -_081325EC: .4byte gUnknown_203B118 - thumb_func_end sub_8132568 - - thumb_func_start sub_81325F0 -sub_81325F0: @ 81325F0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _08132634 @ =gUnknown_203B118 - ldr r0, [r5] - adds r0, 0x7 - bl sub_8133664 - movs r0, 0x2 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _08132638 - adds r0, r4, 0 - bl sub_81326F8 - b _0813264A - .align 2, 0 -_08132634: .4byte gUnknown_203B118 -_08132638: - ldr r1, _08132650 @ =gUnknown_3005E98 - ldr r0, _08132654 @ =sub_8125B40 - str r0, [r1] - ldr r1, [r5] - ldr r0, _08132658 @ =sub_8124C8C - str r0, [r1] - adds r0, r4, 0 - bl sub_8132230 -_0813264A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132650: .4byte gUnknown_3005E98 -_08132654: .4byte sub_8125B40 -_08132658: .4byte sub_8124C8C - thumb_func_end sub_81325F0 - - thumb_func_start sub_813265C -sub_813265C: @ 813265C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081326D0 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0, 0x2] - movs r0, 0x4 - bl sub_809A798 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r6, _081326D4 @ =gUnknown_203B118 - ldr r0, [r6] - adds r0, 0x7 - bl sub_8133664 - movs r0, 0x2 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, 0 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081326EC - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _081326D8 - adds r0, r5, 0 - bl sub_81326F8 - b _081326F2 - .align 2, 0 -_081326D0: .4byte gTasks+0x8 -_081326D4: .4byte gUnknown_203B118 -_081326D8: - ldr r1, [r6] - ldr r0, _081326E8 @ =sub_8126EDC - str r0, [r1] - adds r0, r5, 0 - bl sub_8132230 - b _081326F2 - .align 2, 0 -_081326E8: .4byte sub_8126EDC -_081326EC: - adds r0, r5, 0 - bl sub_8132714 -_081326F2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813265C - - thumb_func_start sub_81326F8 -sub_81326F8: @ 81326F8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813270C @ =gUnknown_841632A - ldr r3, _08132710 @ =sub_8132758 - movs r1, 0x2 - bl sub_813337C - pop {r0} - bx r0 - .align 2, 0 -_0813270C: .4byte gUnknown_841632A -_08132710: .4byte sub_8132758 - thumb_func_end sub_81326F8 - - thumb_func_start sub_8132714 -sub_8132714: @ 8132714 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08132744 @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _08132748 @ =gStringVar1 - bl sub_8099E90 - ldr r5, _0813274C @ =gStringVar4 - ldr r1, _08132750 @ =gUnknown_841635E - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r3, _08132754 @ =sub_8132758 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl sub_813337C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132744: .4byte gSpecialVar_ItemId -_08132748: .4byte gStringVar1 -_0813274C: .4byte gStringVar4 -_08132750: .4byte gUnknown_841635E -_08132754: .4byte sub_8132758 - thumb_func_end sub_8132714 - - thumb_func_start sub_8132758 -sub_8132758: @ 8132758 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813277C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08132776 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_8132780 -_08132776: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813277C: .4byte gMain - thumb_func_end sub_8132758 - - thumb_func_start sub_8132780 -sub_8132780: @ 8132780 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - ldr r0, _081327F0 @ =gTasks+0x8 - adds r5, r0 - ldrb r0, [r5] - ldr r4, _081327F4 @ =gUnknown_203B116 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - ldr r0, _081327F8 @ =gUnknown_3005E70 - subs r4, 0xA - ldrh r1, [r4, 0xA] - ldrh r2, [r4, 0x8] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r1, 0x1 - bl sub_8131F90 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x6 - bl ClearWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl sub_81323E4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081327F0: .4byte gTasks+0x8 -_081327F4: .4byte gUnknown_203B116 -_081327F8: .4byte gUnknown_3005E70 - thumb_func_end sub_8132780 - - thumb_func_start sub_81327FC -sub_81327FC: @ 81327FC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08132860 @ =gTasks+0x8 - adds r4, r0 - ldr r0, _08132864 @ =gUnknown_203B118 - ldr r0, [r0] - adds r0, 0x7 - bl sub_8133664 - movs r0, 0x2 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8131F90 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_81323E4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132860: .4byte gTasks+0x8 -_08132864: .4byte gUnknown_203B118 - thumb_func_end sub_81327FC - - thumb_func_start sub_8132868 -sub_8132868: @ 8132868 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _081328A0 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081328AC - ldr r0, _081328A4 @ =gUnknown_203B118 - ldr r1, [r0] - ldr r0, _081328A8 @ =c2_8123744 - str r0, [r1] - adds r0, r4, 0 - bl sub_8132230 - b _081328B2 - .align 2, 0 -_081328A0: .4byte gTasks+0x8 -_081328A4: .4byte gUnknown_203B118 -_081328A8: .4byte c2_8123744 -_081328AC: - adds r0, r4, 0 - bl sub_8132714 -_081328B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8132868 - - thumb_func_start sub_81328B8 -sub_81328B8: @ 81328B8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _081328F0 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081328FC - ldr r0, _081328F4 @ =gUnknown_203B118 - ldr r1, [r0] - ldr r0, _081328F8 @ =sub_808CE60 - str r0, [r1] - adds r0, r4, 0 - bl sub_8132230 - b _08132902 - .align 2, 0 -_081328F0: .4byte gTasks+0x8 -_081328F4: .4byte gUnknown_203B118 -_081328F8: .4byte sub_808CE60 -_081328FC: - adds r0, r4, 0 - bl sub_8132714 -_08132902: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81328B8 - - thumb_func_start sub_8132908 -sub_8132908: @ 8132908 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08132950 @ =gTasks+0x8 - adds r4, r0, r1 - ldr r6, _08132954 @ =gSpecialVar_ItemId - ldrh r0, [r6] - bl itemid_get_market_price - lsls r0, 16 - cmp r0, 0 - bne _08132968 - ldrh r0, [r6] - ldr r1, _08132958 @ =gStringVar1 - bl sub_8099E90 - ldr r4, _0813295C @ =gStringVar4 - ldr r1, _08132960 @ =gUnknown_84168F1 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08132964 @ =sub_8132780 - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_813337C - b _081329AE - .align 2, 0 -_08132950: .4byte gTasks+0x8 -_08132954: .4byte gSpecialVar_ItemId -_08132958: .4byte gStringVar1 -_0813295C: .4byte gStringVar4 -_08132960: .4byte gUnknown_84168F1 -_08132964: .4byte sub_8132780 -_08132968: - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08132980 - bl sub_81335E0 - adds r0, r5, 0 - bl sub_81329C4 - b _081329AE -_08132980: - cmp r0, 0x63 - ble _08132988 - movs r0, 0x63 - strh r0, [r4, 0x4] -_08132988: - ldrh r0, [r6] - ldr r1, _081329B4 @ =gStringVar1 - bl sub_8099E90 - ldr r4, _081329B8 @ =gStringVar4 - ldr r1, _081329BC @ =gUnknown_8416911 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _081329C0 @ =sub_8132AAC - adds r0, r7, 0 - adds r2, r4, 0 - bl sub_813337C -_081329AE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081329B4: .4byte gStringVar1 -_081329B8: .4byte gStringVar4 -_081329BC: .4byte gUnknown_8416911 -_081329C0: .4byte sub_8132AAC - thumb_func_end sub_8132908 - - thumb_func_start sub_81329C4 -sub_81329C4: @ 81329C4 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08132A20 @ =gTasks+0x8 - adds r4, r0 - ldr r6, _08132A24 @ =gStringVar3 - ldrh r1, [r4, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r4, r2] - muls r1, r0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, _08132A28 @ =gStringVar4 - ldr r1, _08132A2C @ =gUnknown_8416936 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08132A30 @ =sub_8132A34 - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_813337C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132A20: .4byte gTasks+0x8 -_08132A24: .4byte gStringVar3 -_08132A28: .4byte gStringVar4 -_08132A2C: .4byte gUnknown_8416936 -_08132A30: .4byte sub_8132A34 - thumb_func_end sub_81329C4 - - thumb_func_start sub_8132A34 -sub_8132A34: @ 8132A34 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08132A44 @ =gUnknown_8463170 - bl sub_8133604 - pop {r0} - bx r0 - .align 2, 0 -_08132A44: .4byte gUnknown_8463170 - thumb_func_end sub_8132A34 - - thumb_func_start sub_8132A48 -sub_8132A48: @ 8132A48 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08132AA8 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x8 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8131F90 - adds r0, r5, 0 - bl sub_81323E4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132AA8: .4byte gTasks+0x8 - thumb_func_end sub_8132A48 - - thumb_func_start sub_8132AAC -sub_8132AAC: @ 8132AAC - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, _08132B48 @ =gTasks+0x8 - adds r0, r4, r6 - mov r8, r0 - movs r0, 0x7 - bl sub_8133354 - ldr r0, _08132B4C @ =gStringVar1 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _08132B50 @ =gStringVar4 - ldr r1, _08132B54 @ =gUnknown_84162B9 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r0, 0x7 - movs r1, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl sub_81332EC - mov r2, r8 - ldrh r1, [r2, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - mov r3, r8 - movs r2, 0x10 - ldrsh r1, [r3, r2] - muls r1, r0 - movs r0, 0x1 - bl sub_8132B5C - bl sub_81335E0 - bl sub_8132054 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - subs r6, 0x8 - adds r4, r6 - ldr r0, _08132B58 @ =sub_8132BC8 - str r0, [r4] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132B48: .4byte gTasks+0x8 -_08132B4C: .4byte gStringVar1 -_08132B50: .4byte gStringVar4 -_08132B54: .4byte gUnknown_84162B9 -_08132B58: .4byte sub_8132BC8 - thumb_func_end sub_8132AAC - - thumb_func_start sub_8132B5C -sub_8132B5C: @ 8132B5C - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x7 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, _08132BBC @ =gStringVar1 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _08132BC0 @ =gStringVar4 - ldr r1, _08132BC4 @ =gUnknown_84162B9 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x7 - movs r1, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl sub_81332EC - str r4, [sp] - movs r0, 0x7 - movs r1, 0x38 - movs r2, 0xA - adds r3, r6, 0 - bl PrintMoneyAmount - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132BBC: .4byte gStringVar1 -_08132BC0: .4byte gStringVar4 -_08132BC4: .4byte gUnknown_84162B9 - thumb_func_end sub_8132B5C - - thumb_func_start sub_8132BC8 -sub_8132BC8: @ 8132BC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08132C14 @ =gTasks+0x8 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x10 - ldrh r1, [r5, 0x4] - bl sub_80BF848 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08132C18 - movs r0, 0x10 - ldrsh r4, [r5, r0] - ldrh r1, [r5, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r5, r2] - muls r1, r0 - adds r0, r4, 0 - bl sub_8132B5C - b _08132CA6 - .align 2, 0 -_08132C14: .4byte gTasks+0x8 -_08132C18: - ldr r0, _08132C4C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08132C50 - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl sub_813208C - adds r0, r4, 0 - bl sub_81329C4 - b _08132CA6 - .align 2, 0 -_08132C4C: .4byte gMain -_08132C50: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08132CA6 - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x8 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl sub_813208C - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8131F90 - adds r0, r6, 0 - bl sub_81323E4 -_08132CA6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8132BC8 - - thumb_func_start sub_8132CAC -sub_8132CAC: @ 8132CAC - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08132D18 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _08132D1C @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _08132D20 @ =gStringVar1 - bl sub_8099E90 - ldr r6, _08132D24 @ =gStringVar3 - ldrh r1, [r4, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r4, r2] - muls r1, r0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, _08132D28 @ =gStringVar4 - ldr r1, _08132D2C @ =gUnknown_8416959 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, _08132D30 @ =sub_8132D34 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_813337C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132D18: .4byte gTasks+0x8 -_08132D1C: .4byte gSpecialVar_ItemId -_08132D20: .4byte gStringVar1 -_08132D24: .4byte gStringVar3 -_08132D28: .4byte gStringVar4 -_08132D2C: .4byte gUnknown_8416959 -_08132D30: .4byte sub_8132D34 - thumb_func_end sub_8132CAC - - thumb_func_start sub_8132D34 -sub_8132D34: @ 8132D34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r6, r0, 2 - adds r6, r0 - lsls r6, 3 - ldr r0, _08132DF4 @ =gTasks+0x8 - mov r9, r0 - adds r1, r6, 0 - add r1, r9 - mov r8, r1 - movs r0, 0xF8 - bl PlaySE - ldr r5, _08132DF8 @ =gSpecialVar_ItemId - ldrh r0, [r5] - mov r2, r8 - ldrh r1, [r2, 0x10] - bl sub_809A1D8 - ldr r7, _08132DFC @ =gSaveBlock1Ptr - ldr r4, [r7] - movs r3, 0xA4 - lsls r3, 2 - mov r10, r3 - add r4, r10 - ldrh r0, [r5] - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - mov r2, r8 - movs r3, 0x10 - ldrsh r1, [r2, r3] - muls r1, r0 - adds r0, r4, 0 - bl AddMoney - ldrh r0, [r5] - mov r2, r8 - ldrh r1, [r2, 0x10] - movs r2, 0x2 - bl sub_809C09C - mov r3, r8 - ldrb r0, [r3] - ldr r4, _08132E00 @ =gUnknown_203B116 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - bl sub_81320BC - bl sub_8132120 - bl sub_8131C50 - ldr r0, _08132E04 @ =gUnknown_3005E70 - subs r4, 0xA - ldrh r1, [r4, 0xA] - ldrh r2, [r4, 0x8] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1] - movs r1, 0x2 - bl sub_8131F90 - ldr r0, [r7] - add r0, r10 - bl GetMoney - adds r1, r0, 0 - movs r0, 0x8 - movs r2, 0 - bl PrintMoneyAmountInMoneyBox - movs r2, 0x8 - negs r2, r2 - add r9, r2 - add r6, r9 - ldr r0, _08132E08 @ =sub_8132E0C - str r0, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08132DF4: .4byte gTasks+0x8 -_08132DF8: .4byte gSpecialVar_ItemId -_08132DFC: .4byte gSaveBlock1Ptr -_08132E00: .4byte gUnknown_203B116 -_08132E04: .4byte gUnknown_3005E70 -_08132E08: .4byte sub_8132E0C - thumb_func_end sub_8132D34 - - thumb_func_start sub_8132E0C -sub_8132E0C: @ 8132E0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08132E60 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08132E26 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08132E5A -_08132E26: - movs r0, 0x5 - bl PlaySE - movs r0, 0x8 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_8132780 -_08132E5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132E60: .4byte gMain - thumb_func_end sub_8132E0C - - thumb_func_start sub_8132E64 -sub_8132E64: @ 8132E64 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _08132EFC @ =gUnknown_203B11C - movs r0, 0xB2 - lsls r0, 1 - bl AllocZeroed - str r0, [r4] - ldr r5, _08132F00 @ =gSaveBlock1Ptr - ldr r1, [r5] - ldr r2, _08132F04 @ =0x00000464 - mov r8, r2 - add r1, r8 - movs r2, 0xE8 - bl memcpy - ldr r0, [r4] - adds r0, 0xE8 - ldr r1, [r5] - movs r6, 0xEE - lsls r6, 2 - adds r1, r6 - movs r2, 0x78 - bl memcpy - ldr r3, [r4] - ldr r2, _08132F08 @ =gUnknown_203B10C - ldrh r1, [r2, 0x8] - movs r4, 0xB0 - lsls r4, 1 - adds r0, r3, r4 - strh r1, [r0] - ldrh r0, [r2, 0xA] - movs r2, 0xB1 - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - ldr r0, [r5] - add r0, r8 - movs r1, 0x3A - bl ClearItemSlots - ldr r0, [r5] - adds r0, r6 - movs r1, 0x1E - bl ClearItemSlots - bl sub_81320AC - ldr r0, _08132F0C @ =0x00000121 - movs r1, 0x1 - bl sub_809A084 - ldr r0, _08132F10 @ =0x00000123 - movs r1, 0x1 - bl sub_809A084 - ldr r0, _08132F14 @ =0x00000129 - movs r1, 0x1 - bl sub_809A084 - ldr r0, _08132F18 @ =0x00000143 - movs r1, 0x1 - bl sub_809A084 - ldr r1, _08132F1C @ =sub_815ABFC - movs r0, 0x4 - movs r2, 0 - bl sub_81317F8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132EFC: .4byte gUnknown_203B11C -_08132F00: .4byte gSaveBlock1Ptr -_08132F04: .4byte 0x00000464 -_08132F08: .4byte gUnknown_203B10C -_08132F0C: .4byte 0x00000121 -_08132F10: .4byte 0x00000123 -_08132F14: .4byte 0x00000129 -_08132F18: .4byte 0x00000143 -_08132F1C: .4byte sub_815ABFC - thumb_func_end sub_8132E64 - - thumb_func_start sub_8132F20 -sub_8132F20: @ 8132F20 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r3, r1, 3 - ldr r4, _08132F54 @ =gTasks+0x8 - adds r2, r3, r4 - ldr r0, _08132F58 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08132F4E - strh r0, [r2, 0x10] - strh r0, [r2, 0x12] - adds r0, r4, 0 - subs r0, 0x8 - adds r0, r3, r0 - ldr r1, _08132F5C @ =sub_8132F60 - str r1, [r0] -_08132F4E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132F54: .4byte gTasks+0x8 -_08132F58: .4byte gPaletteFade -_08132F5C: .4byte sub_8132F60 - thumb_func_end sub_8132F20 - - thumb_func_start sub_8132F60 -sub_8132F60: @ 8132F60 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08132FA4 @ =gTasks+0x8 - adds r6, r0, r1 - ldr r0, _08132FA8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08132F8E - movs r1, 0x10 - ldrsh r0, [r6, r1] - cmp r0, 0x14 - bgt _08132F8E - movs r0, 0x15 - strh r0, [r6, 0x10] - bl sub_815AC20 -_08132F8E: - movs r3, 0x10 - ldrsh r0, [r6, r3] - cmp r0, 0x15 - bls _08132F98 - b _08133210 -_08132F98: - lsls r0, 2 - ldr r1, _08132FAC @ =_08132FB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08132FA4: .4byte gTasks+0x8 -_08132FA8: .4byte gMain -_08132FAC: .4byte _08132FB0 - .align 2, 0 -_08132FB0: - .4byte _08133008 - .4byte _08133024 - .4byte _08133050 - .4byte _08133050 - .4byte _08133050 - .4byte _08133080 - .4byte _08133080 - .4byte _08133080 - .4byte _081330B0 - .4byte _081330E0 - .4byte _081330F4 - .4byte _08133024 - .4byte _08133050 - .4byte _08133050 - .4byte _08133050 - .4byte _08133080 - .4byte _08133080 - .4byte _08133080 - .4byte _0813312C - .4byte _081330E0 - .4byte _0813315C - .4byte _08133170 -_08133008: - ldr r0, _08133020 @ =0xffff8405 - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x6 - bl BeginNormalPaletteFade - movs r0, 0x1 - bl sub_8131F64 - b _081331EA - .align 2, 0 -_08133020: .4byte 0xffff8405 -_08133024: - ldr r0, _0813304C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08133036 - b _08133232 -_08133036: - ldrh r0, [r6, 0x12] - adds r0, 0x1 - strh r0, [r6, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bgt _08133046 - b _08133232 -_08133046: - strh r1, [r6, 0x12] - b _081331EA - .align 2, 0 -_0813304C: .4byte gPaletteFade -_08133050: - movs r0, 0x12 - ldrsh r1, [r6, r0] - cmp r1, 0 - bne _08133066 - ldr r0, _0813307C @ =gMain - strh r1, [r0, 0x2E] - movs r1, 0x80 - strh r1, [r0, 0x30] - ldrb r0, [r6] - bl ListMenuHandleInput -_08133066: - ldrh r0, [r6, 0x12] - adds r0, 0x1 - strh r0, [r6, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bgt _08133076 - b _08133232 -_08133076: - movs r0, 0 - strh r0, [r6, 0x12] - b _081331EA - .align 2, 0 -_0813307C: .4byte gMain -_08133080: - movs r3, 0x12 - ldrsh r1, [r6, r3] - cmp r1, 0 - bne _08133096 - ldr r0, _081330AC @ =gMain - strh r1, [r0, 0x2E] - movs r1, 0x40 - strh r1, [r0, 0x30] - ldrb r0, [r6] - bl ListMenuHandleInput -_08133096: - ldrh r0, [r6, 0x12] - adds r0, 0x1 - strh r0, [r6, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bgt _081330A6 - b _08133232 -_081330A6: - movs r0, 0 - strh r0, [r6, 0x12] - b _081331EA - .align 2, 0 -_081330AC: .4byte gMain -_081330B0: - movs r0, 0x1 - bl sub_8131F64 - ldr r2, _081330D4 @ =gUnknown_841C587 - adds r0, r4, 0 - movs r1, 0x4 - movs r3, 0 - bl sub_813337C - ldr r1, _081330D8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081330DC @ =sub_8132F60 - str r1, [r0] - b _081331EA - .align 2, 0 -_081330D4: .4byte gUnknown_841C587 -_081330D8: .4byte gTasks -_081330DC: .4byte sub_8132F60 -_081330E0: - bl RunTextPrinters - movs r0, 0x6 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - beq _081330F2 - b _08133232 -_081330F2: - b _081331EA -_081330F4: - ldr r0, _08133128 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08133102 - b _08133232 -_08133102: - movs r0, 0 - bl sub_8131F64 - movs r0, 0x80 - lsls r0, 3 - movs r1, 0 - str r1, [sp] - movs r2, 0x6 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - b _081331EA - .align 2, 0 -_08133128: .4byte gMain -_0813312C: - movs r0, 0x1 - bl sub_8131F64 - ldr r2, _08133150 @ =gUnknown_841C693 - adds r0, r4, 0 - movs r1, 0x4 - movs r3, 0 - bl sub_813337C - ldr r1, _08133154 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08133158 @ =sub_8132F60 - str r1, [r0] - b _081331EA - .align 2, 0 -_08133150: .4byte gUnknown_841C693 -_08133154: .4byte gTasks -_08133158: .4byte sub_8132F60 -_0813315C: - ldr r0, _0813316C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08133232 - b _081331EA - .align 2, 0 -_0813316C: .4byte gMain -_08133170: - ldr r0, _081331F4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _08133232 - ldr r5, _081331F8 @ =gSaveBlock1Ptr - ldr r0, [r5] - ldr r1, _081331FC @ =0x00000464 - adds r0, r1 - ldr r4, _08133200 @ =gUnknown_203B11C - ldr r1, [r4] - movs r2, 0xE8 - bl memcpy - ldr r0, [r5] - movs r3, 0xEE - lsls r3, 2 - adds r0, r3 - ldr r1, [r4] - adds r1, 0xE8 - movs r2, 0x78 - bl memcpy - ldrb r0, [r6] - movs r1, 0 - movs r2, 0 - bl sub_810713C - ldr r2, _08133204 @ =gUnknown_203B10C - ldr r0, [r4] - movs r3, 0xB0 - lsls r3, 1 - adds r1, r0, r3 - ldrh r1, [r1] - strh r1, [r2, 0x8] - adds r3, 0x2 - adds r1, r0, r3 - ldrh r1, [r1] - strh r1, [r2, 0xA] - bl Free - ldr r0, _08133208 @ =gPlttBufferFaded - ldr r1, _0813320C @ =gPlttBufferUnfaded - movs r2, 0x80 - lsls r2, 1 - bl CpuFastSet - bl sub_8108CF0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - str r7, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_081331EA: - ldrh r0, [r6, 0x10] - adds r0, 0x1 - strh r0, [r6, 0x10] - b _08133232 - .align 2, 0 -_081331F4: .4byte gPaletteFade -_081331F8: .4byte gSaveBlock1Ptr -_081331FC: .4byte 0x00000464 -_08133200: .4byte gUnknown_203B11C -_08133204: .4byte gUnknown_203B10C -_08133208: .4byte gPlttBufferFaded -_0813320C: .4byte gPlttBufferUnfaded -_08133210: - ldr r0, _0813323C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08133232 - ldr r0, _08133240 @ =gUnknown_203B10C - ldr r0, [r0] - bl SetMainCallback2 - bl sub_813208C - bl sub_81321D4 - adds r0, r4, 0 - bl DestroyTask -_08133232: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813323C: .4byte gPaletteFade -_08133240: .4byte gUnknown_203B10C - thumb_func_end sub_8132F60 - - thumb_func_start sub_8133244 -sub_8133244: @ 8133244 - push {r4,lr} - ldr r0, _081332E0 @ =gUnknown_8463190 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x5B - movs r2, 0xE0 - bl sub_815001C - movs r0, 0 - movs r1, 0x64 - movs r2, 0xB0 - bl sub_814FEAC - movs r0, 0 - movs r1, 0x78 - movs r2, 0xD0 - bl sub_814FF2C - ldr r4, _081332E4 @ =gUnknown_841F408 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xA0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _081332E8 @ =gUnknown_8463180 - adds r0, r4, 0 - movs r1, 0xF6 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xD6 - movs r2, 0x4 - bl LoadPalette - movs r0, 0xC0 - movs r1, 0x1 - bl sub_8107D38 - movs r4, 0 -_081332A4: - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _081332A4 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081332E0: .4byte gUnknown_8463190 -_081332E4: .4byte gUnknown_841F408 -_081332E8: .4byte gUnknown_8463180 - thumb_func_end sub_8133244 - - thumb_func_start sub_81332EC -sub_81332EC: @ 81332EC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r3 - ldr r3, [sp, 0x30] - ldr r4, [sp, 0x34] - ldr r6, [sp, 0x38] - ldr r5, [sp, 0x3C] - mov r8, r5 - ldr r5, [sp, 0x40] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - mov r9, r7 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r6, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, _08133350 @ =gUnknown_8463184 - adds r4, r5 - str r4, [sp, 0x8] - mov r4, r8 - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - str r2, [sp, 0x10] - mov r2, r9 - bl AddTextPrinterParametrized2 - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08133350: .4byte gUnknown_8463184 - thumb_func_end sub_81332EC - - thumb_func_start sub_8133354 -sub_8133354: @ 8133354 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0x5B - movs r3, 0xE - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end sub_8133354 - - thumb_func_start sub_8133368 -sub_8133368: @ 8133368 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - movs r2, 0x78 - movs r3, 0xD - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end sub_8133368 - - thumb_func_start sub_813337C -sub_813337C: @ 813337C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F78A8 - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - mov r0, r8 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x6 - movs r2, 0x64 - movs r3, 0xB - bl DisplayMessageAndContinueTask - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813337C - - thumb_func_start sub_81333C4 -sub_81333C4: @ 81333C4 - push {r4,lr} - sub sp, 0xC - ldr r4, _081333FC @ =gUnknown_84166D3 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r2, 0x48 - subs r2, r0 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _08133400 @ =gUnknown_8463184 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r3, 0x1 - bl box_print - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081333FC: .4byte gUnknown_84166D3 -_08133400: .4byte gUnknown_8463184 - thumb_func_end sub_81333C4 - - thumb_func_start sub_8133404 -sub_8133404: @ 8133404 - push {lr} - movs r0, 0x4 - movs r1, 0x13 - movs r2, 0 - movs r3, 0 - bl sub_8107D68 - movs r0, 0x4 - movs r1, 0x14 - movs r2, 0 - movs r3, 0xC - bl sub_8107D68 - movs r0, 0x4 - movs r1, 0x15 - movs r2, 0 - movs r3, 0x18 - bl sub_8107D68 - movs r0, 0x4 - movs r1, 0x16 - movs r2, 0 - movs r3, 0x24 - bl sub_8107D68 - movs r0, 0x4 - movs r1, 0x2 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_8133404 - - thumb_func_start sub_8133444 -sub_8133444: @ 8133444 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x28 - str r0, [sp] - movs r0, 0x30 - str r0, [sp, 0x4] - movs r0, 0x5 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - cmp r4, 0 - bne _081334A8 - movs r4, 0 - movs r5, 0 -_0813346E: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 26 - lsrs r0, 24 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x3 - str r0, [sp, 0x10] - movs r0, 0x5 - movs r1, 0x3 - ldr r2, _081334A4 @ =gUnknown_8416213 - movs r3, 0x7 - bl sub_81332EC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0813346E - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - b _0813359A - .align 2, 0 -_081334A4: .4byte gUnknown_8416213 -_081334A8: - adds r0, r4, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r7, r0, 16 - ldr r1, _081334D8 @ =gBattleMoves - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - adds r5, r0, r1 - ldrb r1, [r5, 0x2] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x5 - movs r2, 0 - movs r3, 0 - bl sub_8107D68 - ldrb r0, [r5, 0x1] - cmp r0, 0x1 - bhi _081334E0 - ldr r2, _081334DC @ =gUnknown_8416213 - b _081334F0 - .align 2, 0 -_081334D8: .4byte gBattleMoves -_081334DC: .4byte gUnknown_8416213 -_081334E0: - ldr r4, _08133524 @ =gStringVar1 - ldrb r1, [r5, 0x1] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r2, r4, 0 -_081334F0: - movs r0, 0xC - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x3 - str r0, [sp, 0x10] - movs r0, 0x5 - movs r1, 0x3 - movs r3, 0x7 - bl sub_81332EC - ldr r2, _08133528 @ =gBattleMoves - lsls r1, r7, 1 - adds r0, r1, r7 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x3] - adds r6, r1, 0 - cmp r0, 0 - bne _08133530 - ldr r2, _0813352C @ =gUnknown_8416213 - b _08133540 - .align 2, 0 -_08133524: .4byte gStringVar1 -_08133528: .4byte gBattleMoves -_0813352C: .4byte gUnknown_8416213 -_08133530: - ldr r4, _081335A8 @ =gStringVar1 - ldrb r1, [r2, 0x3] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r2, r4, 0 -_08133540: - movs r0, 0x18 - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0xFF - mov r8, r0 - str r0, [sp, 0xC] - movs r0, 0x3 - mov r9, r0 - str r0, [sp, 0x10] - movs r0, 0x5 - movs r1, 0x3 - movs r3, 0x7 - bl sub_81332EC - ldr r5, _081335A8 @ =gStringVar1 - ldr r1, _081335AC @ =gBattleMoves - adds r0, r6, r7 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x4] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x24 - str r0, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r0, r8 - str r0, [sp, 0xC] - mov r0, r9 - str r0, [sp, 0x10] - movs r0, 0x5 - movs r1, 0x3 - adds r2, r5, 0 - movs r3, 0x7 - bl sub_81332EC - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram -_0813359A: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081335A8: .4byte gStringVar1 -_081335AC: .4byte gBattleMoves - thumb_func_end sub_8133444 - - thumb_func_start sub_81335B0 -sub_81335B0: @ 81335B0 - push {r4,lr} - sub sp, 0x8 - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _081335DC @ =gUnknown_8E99118 - movs r2, 0x10 - str r2, [sp] - movs r2, 0xC - str r2, [sp, 0x4] - adds r2, r4, 0 - bl BlitBitmapToWindow - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081335DC: .4byte gUnknown_8E99118 - thumb_func_end sub_81335B0 - - thumb_func_start sub_81335E0 -sub_81335E0: @ 81335E0 - push {lr} - ldr r0, _08133600 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xA4 - lsls r1, 2 - adds r0, r1 - bl GetMoney - adds r3, r0, 0 - movs r0, 0x8 - movs r1, 0x78 - movs r2, 0xD - bl PrintMoneyAmountInMoneyBoxWithBorder - pop {r0} - bx r0 - .align 2, 0 -_08133600: .4byte gSaveBlock1Ptr - thumb_func_end sub_81335E0 - - thumb_func_start sub_8133604 -sub_8133604: @ 8133604 - push {lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813362C @ =gUnknown_84631E0 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x5B - str r2, [sp, 0x4] - movs r2, 0xE - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0x2 - movs r3, 0 - bl sub_80BF5D0 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_0813362C: .4byte gUnknown_84631E0 - thumb_func_end sub_8133604 - - thumb_func_start sub_8133630 -sub_8133630: @ 8133630 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - cmp r0, 0xFF - bne _08133656 - lsls r0, r1, 3 - ldr r1, _08133660 @ =gUnknown_84631E8 - adds r0, r1 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - bl sub_8133354 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram -_08133656: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08133660: .4byte gUnknown_84631E8 - thumb_func_end sub_8133630 - - thumb_func_start sub_8133664 -sub_8133664: @ 8133664 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - movs r1, 0 - bl sub_810F4D8 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - bl RemoveWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0xFF - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8133664 - - thumb_func_start sub_813368C -sub_813368C: @ 813368C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _081336E8 @ =gUnknown_8463220 - movs r1, 0x29 - movs r2, 0x2E - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - cmp r6, 0 - beq _081336F4 - adds r5, r6, 0 - subs r5, 0x21 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - ldr r0, _081336EC @ =gSprites - adds r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8133714 - ldr r0, _081336F0 @ =gBattleMoves - mov r8, r0 - adds r0, r6, 0 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r0, [r1, 0x2] - bl sub_8133730 - adds r0, r4, 0 - adds r1, r5, 0 - b _08133700 - .align 2, 0 -_081336E8: .4byte gUnknown_8463220 -_081336EC: .4byte gSprites -_081336F0: .4byte gBattleMoves -_081336F4: - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _08133710 @ =gSprites - adds r0, r1 - movs r1, 0xFF -_08133700: - bl sub_8133790 - adds r0, r7, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08133710: .4byte gSprites - thumb_func_end sub_813368C - - thumb_func_start sub_8133714 -sub_8133714: @ 8133714 - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x31 - bls _08133726 - movs r1, 0x1 - bl StartSpriteAnim - b _0813372C -_08133726: - movs r1, 0 - bl StartSpriteAnim -_0813372C: - pop {r0} - bx r0 - thumb_func_end sub_8133714 - - thumb_func_start sub_8133730 -sub_8133730: @ 8133730 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xC8 - lsls r0, 1 - bl IndexOfSpritePaletteTag - lsls r0, 28 - lsrs r5, r0, 24 - ldr r2, _08133784 @ =gUnknown_203B12C - ldr r0, _08133788 @ =gUnknown_8463238 - lsls r4, 1 - adds r4, r0 - ldrh r1, [r4] - lsls r1, 1 - ldr r0, [r2] - adds r0, r1 - movs r1, 0x80 - lsls r1, 1 - adds r2, r1, 0 - adds r1, r5, 0 - orrs r1, r2 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0813378C @ =gUnknown_203B10C - ldrb r0, [r0, 0x4] - cmp r0, 0x4 - bne _0813377C - adds r1, r5, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - movs r1, 0x4 - movs r2, 0 - bl BlendPalettes -_0813377C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08133784: .4byte gUnknown_203B12C -_08133788: .4byte gUnknown_8463238 -_0813378C: .4byte gUnknown_203B10C - thumb_func_end sub_8133730 - - thumb_func_start sub_8133790 -sub_8133790: @ 8133790 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r4, 0xFF - bne _081337A6 - movs r6, 0x1B - movs r1, 0x36 - movs r0, 0x14 - strh r0, [r5, 0x26] - b _081337D8 -_081337A6: - cmp r4, 0x31 - bls _081337B0 - adds r0, r4, 0 - subs r0, 0x32 - b _081337B4 -_081337B0: - adds r0, r4, 0 - adds r0, 0x8 -_081337B4: - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 9 - movs r1, 0x3A - bl __divsi3 - asrs r0, 8 - movs r1, 0x29 - subs r6, r1, r0 - lsls r0, r4, 11 - movs r1, 0x3A - bl __divsi3 - asrs r0, 8 - adds r1, r0, 0 - adds r1, 0x2E -_081337D8: - strh r6, [r5, 0x20] - strh r1, [r5, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8133790 - - thumb_func_start sub_81337E4 -sub_81337E4: @ 81337E4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08133808 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r0, r2, r3 - movs r4, 0 - strh r1, [r0, 0x2E] - strh r4, [r0, 0x30] - adds r3, 0x1C - adds r2, r3 - ldr r0, _0813380C @ =sub_8133810 - str r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08133808: .4byte gSprites -_0813380C: .4byte sub_8133810 - thumb_func_end sub_81337E4 - - thumb_func_start sub_8133810 -sub_8133810: @ 8133810 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08133822 - cmp r0, 0x1 - beq _08133886 - b _081338A2 -_08133822: - ldrh r1, [r5, 0x26] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r0, 0x13 - ble _08133880 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08133890 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - ldr r4, _08133878 @ =gBattleMoves - ldrh r0, [r5, 0x2E] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1, 0x2] - bl sub_8133730 - ldr r2, _0813387C @ =0xfffffedf - adds r1, r2, 0 - ldrh r0, [r5, 0x2E] - adds r1, r0 - strh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_8133714 - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_8133790 - b _081338A2 - .align 2, 0 -_08133878: .4byte gBattleMoves -_0813387C: .4byte 0xfffffedf -_08133880: - adds r0, r1, 0 - adds r0, 0xA - b _081338A0 -_08133886: - ldrh r1, [r5, 0x26] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r0, 0 - bgt _0813389C -_08133890: - ldr r0, _08133898 @ =SpriteCallbackDummy - str r0, [r5, 0x1C] - b _081338A2 - .align 2, 0 -_08133898: .4byte SpriteCallbackDummy -_0813389C: - adds r0, r1, 0 - subs r0, 0xA -_081338A0: - strh r0, [r5, 0x26] -_081338A2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8133810 - - thumb_func_start sub_81338A8 -sub_81338A8: @ 81338A8 - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _081338F4 @ =gUnknown_203B12C - movs r5, 0x88 - lsls r5, 2 - adds r0, r5, 0 - bl Alloc - adds r1, r0, 0 - str r1, [r4] - ldr r0, _081338F8 @ =gUnknown_8E84F20 - bl LZDecompressWram - ldr r0, _081338FC @ =gUnknown_8E85068 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 2 - adds r1, r2 - bl LZDecompressWram - ldr r0, [r4] - adds r0, r5 - str r0, [sp] - ldr r1, _08133900 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC8 - lsls r1, 1 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081338F4: .4byte gUnknown_203B12C -_081338F8: .4byte gUnknown_8E84F20 -_081338FC: .4byte gUnknown_8E85068 -_08133900: .4byte 0xffff0000 - thumb_func_end sub_81338A8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/trade.s b/asm/trade.s index e9fcddf2d..eac1fdea5 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -20,7 +20,7 @@ sub_804C600: @ 804C600 strb r0, [r2, 0x8] ldr r0, _0804C6FC @ =sub_804D4F8 bl SetVBlankCallback - ldr r4, _0804C700 @ =gUnknown_841F408 + ldr r4, _0804C700 @ =gTMCaseMainWindowPalette adds r0, r4, 0 movs r1, 0xF0 movs r2, 0x14 @@ -78,11 +78,11 @@ _0804C674: movs r0, 0 movs r1, 0x14 movs r2, 0xC0 - bl sub_814FF2C + bl TextWindow_SetStdFrame0_WithPal movs r0, 0x2 movs r1, 0x1 movs r2, 0xE0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame bl sub_809707C ldr r2, _0804C708 @ =gUnknown_2031DA8 ldr r0, [r2] @@ -118,7 +118,7 @@ _0804C6F0: .align 2, 0 _0804C6F8: .4byte gPaletteFade _0804C6FC: .4byte sub_804D4F8 -_0804C700: .4byte gUnknown_841F408 +_0804C700: .4byte gTMCaseMainWindowPalette _0804C704: .4byte gUnknown_8261F1C _0804C708: .4byte gUnknown_2031DA8 _0804C70C: .4byte gUnknown_8261F2C @@ -422,7 +422,7 @@ _0804C9B0: ldrb r0, [r0] cmp r0, 0 beq _0804C9E8 - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 cmp r0, 0 bne _0804C9C4 @@ -1832,7 +1832,7 @@ sub_804D5A4: @ 804D5A4 ldrb r0, [r0] cmp r0, 0 beq _0804D5FC - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 cmp r0, 0 beq _0804D620 @@ -1845,7 +1845,7 @@ sub_804D5A4: @ 804D5A4 bl Free movs r0, 0 str r0, [r5] - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite ldr r0, _0804D5F8 @ =sub_8050138 bl SetMainCallback2 b _0804D620 @@ -2487,7 +2487,7 @@ _0804DB1A: bne _0804DB5A adds r0, r4, 0 movs r1, 0x2 - ldr r2, _0804DB74 @ =gUnknown_8246BE5 + ldr r2, _0804DB74 @ = gSpeciesNames + 0xD05 bl SetMonData _0804DB5A: adds r4, 0x64 @@ -2500,7 +2500,7 @@ _0804DB5A: _0804DB68: .4byte gEnemyParty _0804DB6C: .4byte 0x0000012f _0804DB70: .4byte gUnknown_8262034 -_0804DB74: .4byte gUnknown_8246BE5 +_0804DB74: .4byte gSpeciesNames+0xD05 _0804DB78: ldr r2, _0804DBA8 @ =gUnknown_2031DA8 ldr r1, [r2] @@ -3369,7 +3369,7 @@ _0804E208: movs r0, 0x1 movs r1, 0x1 movs r2, 0xE - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer @@ -3390,7 +3390,7 @@ _0804E208: movs r1, 0x3 movs r2, 0 movs r3, 0 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 @@ -3432,7 +3432,7 @@ _0804E2A6: movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, [r4] adds r0, 0x6F movs r1, 0x4 @@ -3912,7 +3912,7 @@ _0804E670: .4byte 0x0000bbcc thumb_func_start sub_804E674 sub_804E674: @ 804E674 push {r4,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4019,7 +4019,7 @@ _0804E740: .4byte gUnknown_2031DA8 thumb_func_start sub_804E744 sub_804E744: @ 804E744 push {r4,r5,lr} - bl ProcessMenuInputNoWrap_ + bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 @@ -4162,7 +4162,7 @@ sub_804E830: @ 804E830 movs r1, 0x3 movs r2, 0 movs r3, 0x2 - bl sub_810FF60 + bl CreateYesNoMenu ldr r0, [r4] adds r0, 0xA8 strb r5, [r0] @@ -4296,7 +4296,7 @@ sub_804E944: @ 804E944 ldr r0, [r0] bl Free bl FreeAllWindowBuffers - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite ldr r0, _0804E984 @ =c2_8056854 bl SetMainCallback2 b _0804E9AA @@ -4827,7 +4827,7 @@ _0804ECEC: str r0, [sp, 0x8] adds r0, r5, 0 movs r3, 0x4 - bl box_print + bl AddTextPrinterParameterized3 add r6, sp, 0x28 adds r0, r6, 0 ldr r1, [sp, 0x60] @@ -4847,7 +4847,7 @@ _0804ECEC: movs r1, 0x1 movs r2, 0 movs r3, 0 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0 bl PutWindowTilemap adds r0, r5, 0 @@ -5110,7 +5110,7 @@ sub_804EFB4: @ 804EFB4 adds r0, r4, 0 movs r1, 0 movs r3, 0x4 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 @@ -5876,7 +5876,7 @@ sub_804F5BC: @ 804F5BC movs r0, 0 movs r1, 0x14 movs r2, 0xC - bl sub_8150048 + bl DrawTextBorderOuter movs r0, 0 bl PutWindowTilemap movs r0, 0 @@ -7178,7 +7178,7 @@ _0804FF7A: lsls r0, 1 cmp r1, r0 bls _0804FFAC - bl sub_80098B8 + bl CloseLink ldr r0, _0804FFC0 @ =c2_800ACD4 bl SetMainCallback2 ldr r1, [r4] @@ -7285,7 +7285,7 @@ _08050040: cmp r6, 0 bne _0805007C lsls r0, r5, 3 - ldr r1, _08050074 @ =gUnknown_82350AC + ldr r1, _08050074 @ =gMonFrontPicTable adds r0, r1 ldr r1, _08050078 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -7296,11 +7296,11 @@ _08050040: movs r4, 0 b _0805009A .align 2, 0 -_08050074: .4byte gUnknown_82350AC +_08050074: .4byte gMonFrontPicTable _08050078: .4byte gMonSpritesGfxPtr _0805007C: lsls r0, r5, 3 - ldr r1, _080500BC @ =gUnknown_82350AC + ldr r1, _080500BC @ =gMonFrontPicTable adds r0, r1 ldr r1, _080500C0 @ =gMonSpritesGfxPtr ldr r2, [r1] @@ -7329,7 +7329,7 @@ _0805009A: str r7, [r1] b _0805011E .align 2, 0 -_080500BC: .4byte gUnknown_82350AC +_080500BC: .4byte gMonFrontPicTable _080500C0: .4byte gMonSpritesGfxPtr _080500C4: .4byte gUnknown_2031DAC _080500C8: @@ -7337,7 +7337,7 @@ _080500C8: bl GetMonSpritePalStruct ldrh r0, [r0, 0x4] adds r1, r4, 0 - bl sub_803F7D4 + bl SetMultiuseSpriteTemplateToPokemon ldr r0, _08050128 @ =gMultiuseSpriteTemplate movs r1, 0x78 movs r2, 0x3C @@ -7432,7 +7432,7 @@ _08050194: ldr r2, _08050230 @ =0x00001144 adds r0, r2, 0 strh r0, [r1] - bl sub_80098B8 + bl CloseLink _080501A8: ldr r4, _08050234 @ =gUnknown_2031DAC movs r0, 0x88 @@ -7841,7 +7841,7 @@ sub_80504CC: @ 80504CC movs r0, 0x3 bl SetBgTilemapBuffer bl DeactivateAllTextPrinters - ldr r0, _080505B8 @ =gUnknown_8D00000 + ldr r0, _080505B8 @ =gBattleTextboxTiles mov r10, r0 movs r0, 0 mov r9, r0 @@ -7849,7 +7849,7 @@ sub_80504CC: @ 80504CC mov r1, r10 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap ldr r0, _080505BC @ =gFile_graphics_interface_menu_map_tilemap mov r8, r0 ldr r4, _080505C0 @ =gDecompressionBuffer @@ -7860,7 +7860,7 @@ sub_80504CC: @ 80504CC adds r2, r5, 0 movs r3, 0 bl CopyToBgTilemapBuffer - ldr r6, _080505C4 @ =gUnknown_8D004D8 + ldr r6, _080505C4 @ =gBattleTextboxPalette adds r0, r6, 0 movs r1, 0 movs r2, 0x20 @@ -7873,7 +7873,7 @@ sub_80504CC: @ 80504CC mov r1, r10 movs r2, 0 movs r3, 0 - bl sub_80F696C + bl DecompressAndLoadBgGfxUsingHeap mov r0, r8 adds r1, r4, 0 bl LZDecompressWram @@ -7896,10 +7896,10 @@ sub_80504CC: @ 80504CC bx r0 .align 2, 0 _080505B4: .4byte gUnknown_826D1D4 -_080505B8: .4byte gUnknown_8D00000 +_080505B8: .4byte gBattleTextboxTiles _080505BC: .4byte gFile_graphics_interface_menu_map_tilemap _080505C0: .4byte gDecompressionBuffer -_080505C4: .4byte gUnknown_8D004D8 +_080505C4: .4byte gBattleTextboxPalette _080505C8: .4byte gUnknown_826D1BC thumb_func_end sub_80504CC @@ -8360,11 +8360,11 @@ _080509A4: ldr r1, _08050A00 @ =0x00005206 movs r0, 0xC bl SetGpuReg - ldr r0, _08050A04 @ =gUnknown_8EAEA20 + ldr r0, _08050A04 @ =gTradeGba2_Pal movs r1, 0x10 movs r2, 0x60 bl LoadPalette - ldr r3, _08050A08 @ =gUnknown_8EAEA80 + ldr r3, _08050A08 @ =gTradeGba_Gfx ldr r4, _08050A0C @ =0x06004000 movs r5, 0xA1 lsls r5, 5 @@ -8388,8 +8388,8 @@ _080509E6: .align 2, 0 _080509FC: .4byte gUnknown_2031DAC _08050A00: .4byte 0x00005206 -_08050A04: .4byte gUnknown_8EAEA20 -_08050A08: .4byte gUnknown_8EAEA80 +_08050A04: .4byte gTradeGba2_Pal +_08050A08: .4byte gTradeGba_Gfx _08050A0C: .4byte 0x06004000 _08050A10: .4byte 0x040000d4 _08050A14: .4byte 0x80000800 @@ -8436,7 +8436,7 @@ _08050A66: ldr r1, _08050ABC @ =0x80000800 str r1, [r0, 0x8] ldr r0, [r0, 0x8] - ldr r3, _08050AC0 @ =gUnknown_8EAEA80 + ldr r3, _08050AC0 @ =gTradeGba_Gfx movs r4, 0xC0 lsls r4, 19 movs r5, 0xA1 @@ -8471,7 +8471,7 @@ _08050AB0: .4byte gUnknown_8269A5C _08050AB4: .4byte 0x06002800 _08050AB8: .4byte 0x040000d4 _08050ABC: .4byte 0x80000800 -_08050AC0: .4byte gUnknown_8EAEA80 +_08050AC0: .4byte gTradeGba_Gfx _08050AC4: ldr r0, _08050AF4 @ =gUnknown_2031DAC ldr r2, [r0] @@ -8769,11 +8769,11 @@ _08050D48: ldr r1, _08050DC0 @ =0x00005206 movs r0, 0xC bl SetGpuReg - ldr r0, _08050DC4 @ =gUnknown_8EAEA20 + ldr r0, _08050DC4 @ =gTradeGba2_Pal movs r1, 0x10 movs r2, 0x60 bl LoadPalette - ldr r3, _08050DC8 @ =gUnknown_8EAEA80 + ldr r3, _08050DC8 @ =gTradeGba_Gfx ldr r4, _08050DCC @ =0x06004000 movs r5, 0xA1 lsls r5, 5 @@ -8800,7 +8800,7 @@ _08050D98: orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] - ldr r1, _08050DD8 @ =gUnknown_826601C + ldr r1, _08050DD8 @ =gUnknown_08331F60 ldr r2, _08050DDC @ =0x06009000 ldr r0, _08050DD0 @ =0x040000d4 str r1, [r0] @@ -8816,12 +8816,12 @@ _08050DB4: .align 2, 0 _08050DBC: .4byte gUnknown_2031DAC _08050DC0: .4byte 0x00005206 -_08050DC4: .4byte gUnknown_8EAEA20 -_08050DC8: .4byte gUnknown_8EAEA80 +_08050DC4: .4byte gTradeGba2_Pal +_08050DC8: .4byte gTradeGba_Gfx _08050DCC: .4byte 0x06004000 _08050DD0: .4byte 0x040000d4 _08050DD4: .4byte 0x80000800 -_08050DD8: .4byte gUnknown_826601C +_08050DD8: .4byte gUnknown_08331F60 _08050DDC: .4byte 0x06009000 thumb_func_end sub_8050968 @@ -10807,7 +10807,7 @@ _08052042: adds r0, 0xF2 ldrh r2, [r0] lsls r0, r2, 3 - ldr r1, _08052068 @ =gUnknown_82350AC + ldr r1, _08052068 @ =gMonFrontPicTable adds r0, r1 ldr r1, _0805206C @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -10819,7 +10819,7 @@ _08052042: .align 2, 0 _08052060: .4byte gSprites _08052064: .4byte SpriteCallbackDummy -_08052068: .4byte gUnknown_82350AC +_08052068: .4byte gMonFrontPicTable _0805206C: .4byte gMonSpritesGfxPtr _08052070: ldr r4, _0805211C @ =gSprites @@ -11137,7 +11137,7 @@ _080522BC: bl Free str r4, [r7] _0805230A: - ldr r0, _08052328 @ =c2_exit_to_overworld_2_switch + ldr r0, _08052328 @ =CB2_ReturnToField bl SetMainCallback2 bl sub_8053AE4 bl sub_812B484 @@ -11150,7 +11150,7 @@ _0805231A: bx r1 .align 2, 0 _08052324: .4byte gPaletteFade -_08052328: .4byte c2_exit_to_overworld_2_switch +_08052328: .4byte CB2_ReturnToField thumb_func_end sub_8050F3C thumb_func_start sub_805232C @@ -13032,7 +13032,7 @@ _0805349E: adds r0, 0xF2 ldrh r2, [r0] lsls r0, r2, 3 - ldr r1, _080534C4 @ =gUnknown_82350AC + ldr r1, _080534C4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080534C8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -13044,7 +13044,7 @@ _0805349E: .align 2, 0 _080534BC: .4byte gSprites _080534C0: .4byte SpriteCallbackDummy -_080534C4: .4byte gUnknown_82350AC +_080534C4: .4byte gMonFrontPicTable _080534C8: .4byte gMonSpritesGfxPtr _080534CC: ldr r4, _08053578 @ =gSprites @@ -13362,7 +13362,7 @@ _08053718: bl Free str r4, [r7] _08053766: - ldr r0, _08053784 @ =c2_exit_to_overworld_2_switch + ldr r0, _08053784 @ =CB2_ReturnToField bl SetMainCallback2 bl sub_8053AE4 bl sub_812B484 @@ -13375,7 +13375,7 @@ _08053776: bx r1 .align 2, 0 _08053780: .4byte gPaletteFade -_08053784: .4byte c2_exit_to_overworld_2_switch +_08053784: .4byte CB2_ReturnToField thumb_func_end sub_805232C thumb_func_start sub_8053788 @@ -14745,7 +14745,7 @@ _0805434C: ldr r0, _08054378 @ =sub_804C718 cmp r1, r0 bne _08054384 - bl sub_80FA4F8 + bl IsNoOneConnected lsls r0, 24 cmp r0, 0 beq _08054396 @@ -14819,7 +14819,7 @@ sub_80543C4: @ 80543C4 ldrb r0, [r0] cmp r0, 0 beq _08054412 - bl sub_80FCE44 + bl DestroyWirelessStatusIndicatorSprite _08054412: ldr r0, _0805443C @ =gMain ldr r0, [r0, 0x8] @@ -14875,8 +14875,8 @@ sub_8054470: @ 8054470 bne _08054494 ldr r0, _080544A0 @ =sub_80505CC bl SetMainCallback2 - ldr r1, _080544A4 @ =gUnknown_3005020 - ldr r0, _080544A8 @ =sub_807DD24 + ldr r1, _080544A4 @ =gFieldCallback + ldr r0, _080544A8 @ =FieldCallback_ReturnToEventScript2 str r0, [r1] adds r0, r4, 0 bl DestroyTask @@ -14887,8 +14887,8 @@ _08054494: .align 2, 0 _0805449C: .4byte gPaletteFade _080544A0: .4byte sub_80505CC -_080544A4: .4byte gUnknown_3005020 -_080544A8: .4byte sub_807DD24 +_080544A4: .4byte gFieldCallback +_080544A8: .4byte FieldCallback_ReturnToEventScript2 thumb_func_end sub_8054470 thumb_func_start sub_80544AC @@ -14989,7 +14989,7 @@ sub_8054508: @ 8054508 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl AddTextPrinterParametrized2 + bl AddTextPrinterParameterized4 adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram diff --git a/asm/trainer_card.s b/asm/trainer_card.s index e44503915..502d47c89 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -18,7 +18,7 @@ sub_8088FF0: @ 8088FF0 cmp r0, 0 beq _08089020 ldr r1, _08089028 @ =0x040000d4 - ldr r0, _0808902C @ =gUnknown_2038700 + ldr r0, _0808902C @ =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -33,7 +33,7 @@ _08089020: .align 2, 0 _08089024: .4byte gUnknown_20397A4 _08089028: .4byte 0x040000d4 -_0808902C: .4byte gUnknown_2038700 +_0808902C: .4byte gScanlineEffectRegBuffers _08089030: .4byte 0x800000a0 thumb_func_end sub_8088FF0 @@ -44,7 +44,7 @@ sub_8089034: @ 8089034 ldrh r3, [r4] movs r0, 0 strh r0, [r4] - ldr r1, _08089064 @ =gUnknown_2038700 + ldr r1, _08089064 @ =gScanlineEffectRegBuffers ldr r0, _08089068 @ =0x04000006 ldrh r2, [r0] movs r0, 0xFF @@ -63,7 +63,7 @@ sub_8089034: @ 8089034 bx r0 .align 2, 0 _08089060: .4byte 0x04000208 -_08089064: .4byte gUnknown_2038700 +_08089064: .4byte gScanlineEffectRegBuffers _08089068: .4byte 0x04000006 _0808906C: .4byte 0x04000012 thumb_func_end sub_8089034 @@ -291,7 +291,7 @@ _0808924A: cmp r0, 0 beq _08089280 movs r0, 0xB - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl sub_808B1D4 movs r0, 0xF2 bl PlaySE @@ -387,7 +387,7 @@ _0808931C: .4byte gMain _08089320: .4byte gReceivedRemoteLinkPlayers _08089324: movs r0, 0xA - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 bl sub_808B1D4 ldr r0, _08089340 @ =gUnknown_20397A4 ldr r1, [r0] @@ -431,7 +431,7 @@ _0808937A: bl sub_800AAC0 movs r0, 0 movs r1, 0x1 - bl sub_80F6EE4 + bl DrawDialogueFrame ldr r2, _080893B0 @ =gUnknown_8419D89 movs r0, 0x1 str r0, [sp] @@ -1647,7 +1647,7 @@ sub_8089D8C: @ 8089D8C ldr r0, _08089DA0 @ =sub_8089070 bl SetMainCallback2 movs r0, 0xA - bl sub_812B1F0 + bl HelpSystem_SetSomeVariable2 pop {r0} bx r0 .align 2, 0 @@ -1658,7 +1658,7 @@ _08089DA0: .4byte sub_8089070 sub_8089DA4: @ 8089DA4 push {lr} bl ResetTasks - bl remove_some_task + bl ScanlineEffect_Stop ldr r0, _08089DC4 @ =sub_80890C0 movs r1, 0 bl CreateTask @@ -1856,7 +1856,7 @@ sub_8089EEC: @ 8089EEC add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x4C pop {r4,r5} pop {r0} @@ -1908,7 +1908,7 @@ sub_8089F78: @ 8089F78 add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x2C pop {r4} pop {r0} @@ -1972,7 +1972,7 @@ sub_8089FEC: @ 8089FEC adds r1, r6, 0 movs r2, 0x14 movs r3, 0x38 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC @@ -1981,7 +1981,7 @@ sub_8089FEC: @ 8089FEC adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x38 - bl box_print + bl AddTextPrinterParameterized3 b _0808A0CA .align 2, 0 _0808A068: .4byte gUnknown_8419CED @@ -2015,7 +2015,7 @@ _0808A080: adds r1, r6, 0 movs r2, 0x10 movs r3, 0x39 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] add r1, sp, 0xC @@ -2024,7 +2024,7 @@ _0808A080: adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x39 - bl box_print + bl AddTextPrinterParameterized3 _0808A0CA: add sp, 0x18 pop {r4-r7} @@ -2108,7 +2108,7 @@ _0808A112: adds r1, r6, 0 movs r2, 0x14 movs r3, 0x48 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC @@ -2117,7 +2117,7 @@ _0808A112: adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x48 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, _0808A1B0 @ =gUnknown_8419CF7 @@ -2126,7 +2126,7 @@ _0808A112: adds r1, r6, 0 movs r2, 0x8A movs r3, 0x48 - bl box_print + bl AddTextPrinterParameterized3 b _0808A212 .align 2, 0 _0808A198: .4byte 0x00000829 @@ -2161,7 +2161,7 @@ _0808A1B4: adds r1, r6, 0 movs r2, 0x10 movs r3, 0x49 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] add r1, sp, 0xC @@ -2170,7 +2170,7 @@ _0808A1B4: adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x49 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, _0808A228 @ =gUnknown_8419CF7 @@ -2179,7 +2179,7 @@ _0808A1B4: adds r1, r6, 0 movs r2, 0x8A movs r3, 0x49 - bl box_print + bl AddTextPrinterParameterized3 _0808A212: add sp, 0x18 pop {r4-r7} @@ -2258,7 +2258,7 @@ _0808A264: movs r0, 0x1 movs r2, 0x14 movs r3, 0x58 - bl box_print + bl AddTextPrinterParameterized3 b _0808A2F4 .align 2, 0 _0808A2B0: .4byte gSaveBlock2Ptr @@ -2284,7 +2284,7 @@ _0808A2D8: movs r0, 0x1 movs r2, 0x10 movs r3, 0x59 - bl box_print + bl AddTextPrinterParameterized3 _0808A2F4: add r0, sp, 0xC adds r1, r5, 0 @@ -2316,7 +2316,7 @@ _0808A2F4: str r1, [sp, 0x8] movs r0, 0x1 mov r1, r10 - bl box_print + bl AddTextPrinterParameterized3 ldr r1, _0808A3C0 @ =gUnknown_83CD932 mov r2, r9 ldr r4, [r2] @@ -2338,7 +2338,7 @@ _0808A2F4: str r0, [sp, 0x8] movs r0, 0x1 mov r1, r10 - bl box_print + bl AddTextPrinterParameterized3 add r0, sp, 0xC adds r1, r7, 0 movs r2, 0x2 @@ -2360,7 +2360,7 @@ _0808A2F4: str r1, [sp, 0x8] movs r0, 0x1 mov r1, r10 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x14 pop {r3-r5} mov r8, r3 @@ -2412,7 +2412,7 @@ sub_808A3D0: @ 808A3D0 movs r0, 0x1 movs r1, 0x2 movs r2, 0xA - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r7] adds r1, 0x19 movs r0, 0x2 @@ -2433,7 +2433,7 @@ sub_808A3D0: @ 808A3D0 str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808A4A4 @ =gUnknown_83CD93A mov r8, r0 ldr r1, [r7] @@ -2448,7 +2448,7 @@ sub_808A3D0: @ 808A3D0 movs r0, 0x1 movs r1, 0x2 movs r2, 0xA - bl box_print + bl AddTextPrinterParameterized3 ldr r1, [r7] adds r1, 0x33 movs r0, 0x2 @@ -2469,7 +2469,7 @@ sub_808A3D0: @ 808A3D0 str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 - bl box_print + bl AddTextPrinterParameterized3 _0808A486: add sp, 0xC pop {r3} @@ -2553,7 +2553,7 @@ sub_808A4FC: @ 808A4FC adds r0, 0x4D str r0, [sp, 0x8] movs r0, 0x1 - bl box_print + bl AddTextPrinterParameterized3 b _0808A59C .align 2, 0 _0808A538: .4byte gUnknown_20397A4 @@ -2597,7 +2597,7 @@ _0808A550: str r4, [sp, 0x8] movs r0, 0x1 adds r1, r5, 0 - bl box_print + bl AddTextPrinterParameterized3 _0808A59C: add sp, 0xC pop {r4-r6} @@ -2708,7 +2708,7 @@ sub_808A654: @ 808A654 movs r0, 0x1 adds r1, r5, 0 movs r3, 0x23 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808A6C4 @ =gUnknown_83CD8E3 str r0, [sp] str r4, [sp, 0x4] @@ -2719,7 +2719,7 @@ sub_808A654: @ 808A654 adds r1, r5, 0 movs r2, 0xA4 movs r3, 0x23 - bl box_print + bl AddTextPrinterParameterized3 _0808A6A2: add sp, 0xC pop {r4-r6} @@ -2830,7 +2830,7 @@ sub_808A760: @ 808A760 movs r0, 0x1 adds r1, r6, 0 movs r3, 0x33 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, [r7] @@ -2841,7 +2841,7 @@ sub_808A760: @ 808A760 adds r1, r6, 0 movs r2, 0x82 movs r3, 0x33 - bl box_print + bl AddTextPrinterParameterized3 ldr r5, _0808A804 @ =gUnknown_83CD8E3 str r5, [sp] str r4, [sp, 0x4] @@ -2853,7 +2853,7 @@ sub_808A760: @ 808A760 adds r1, r6, 0 movs r2, 0x90 movs r3, 0x33 - bl box_print + bl AddTextPrinterParameterized3 str r5, [sp] str r4, [sp, 0x4] ldr r0, [r7] @@ -2864,7 +2864,7 @@ sub_808A760: @ 808A760 adds r1, r6, 0 movs r2, 0xC0 movs r3, 0x33 - bl box_print + bl AddTextPrinterParameterized3 _0808A7E2: add sp, 0xC pop {r4-r7} @@ -2943,7 +2943,7 @@ sub_808A854: @ 808A854 movs r0, 0x1 adds r1, r5, 0 movs r3, 0x43 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808A8C8 @ =gUnknown_83CD8E3 str r0, [sp] str r4, [sp, 0x4] @@ -2955,7 +2955,7 @@ sub_808A854: @ 808A854 adds r1, r5, 0 movs r2, 0xBA movs r3, 0x43 - bl box_print + bl AddTextPrinterParameterized3 _0808A8A6: add sp, 0xC pop {r4-r6} @@ -3042,7 +3042,7 @@ sub_808A91C: @ 808A91C movs r0, 0x1 adds r1, r5, 0 movs r3, 0x63 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808A99C @ =gUnknown_83CD8E3 str r0, [sp] str r4, [sp, 0x4] @@ -3054,7 +3054,7 @@ sub_808A91C: @ 808A91C adds r1, r5, 0 movs r2, 0xBA movs r3, 0x63 - bl box_print + bl AddTextPrinterParameterized3 _0808A97A: add sp, 0xC pop {r4-r6} @@ -3140,7 +3140,7 @@ sub_808A9F0: @ 808A9F0 movs r0, 0x1 adds r1, r5, 0 movs r3, 0x53 - bl box_print + bl AddTextPrinterParameterized3 ldr r0, _0808AA70 @ =gUnknown_83CD8E3 str r0, [sp] str r4, [sp, 0x4] @@ -3152,7 +3152,7 @@ sub_808A9F0: @ 808A9F0 adds r1, r5, 0 movs r2, 0xBA movs r3, 0x53 - bl box_print + bl AddTextPrinterParameterized3 _0808AA4C: add sp, 0xC pop {r4-r6} @@ -4179,10 +4179,10 @@ sub_808B254: @ 808B254 bl HideBg movs r0, 0x3 bl HideBg - bl remove_some_task - bl dp12_8087EA4 + bl ScanlineEffect_Stop + bl ScanlineEffect_Clear movs r1, 0 - ldr r0, _0808B290 @ =gUnknown_2038700 + ldr r0, _0808B290 @ =gScanlineEffectRegBuffers movs r2, 0 movs r3, 0xF0 lsls r3, 3 @@ -4201,7 +4201,7 @@ _0808B278: pop {r1} bx r1 .align 2, 0 -_0808B290: .4byte gUnknown_2038700 +_0808B290: .4byte gScanlineEffectRegBuffers thumb_func_end sub_808B254 thumb_func_start sub_808B294 @@ -4271,7 +4271,7 @@ _0808B2CA: movs r2, 0 cmp r2, r7 bcs _0808B334 - ldr r3, _0808B3C0 @ =gUnknown_2038700 + ldr r3, _0808B3C0 @ =gScanlineEffectRegBuffers _0808B31C: lsls r0, r2, 16 asrs r0, 16 @@ -4296,7 +4296,7 @@ _0808B334: lsrs r7, r4, 16 cmp r1, r0 bge _0808B36C - ldr r0, _0808B3C0 @ =gUnknown_2038700 + ldr r0, _0808B3C0 @ =gScanlineEffectRegBuffers mov r12, r0 adds r4, r3, 0 _0808B34E: @@ -4321,7 +4321,7 @@ _0808B36C: asrs r0, r1, 16 cmp r0, 0x9F bgt _0808B38A - ldr r2, _0808B3C0 @ =gUnknown_2038700 + ldr r2, _0808B3C0 @ =gScanlineEffectRegBuffers _0808B378: asrs r0, r1, 16 lsls r1, r0, 1 @@ -4359,7 +4359,7 @@ _0808B3A2: _0808B3B4: .4byte gUnknown_20397A4 _0808B3B8: .4byte 0x00007bcc _0808B3BC: .4byte 0xffff0000 -_0808B3C0: .4byte gUnknown_2038700 +_0808B3C0: .4byte gScanlineEffectRegBuffers thumb_func_end sub_808B294 thumb_func_start sub_808B3C4 @@ -4612,7 +4612,7 @@ _0808B572: movs r2, 0 cmp r2, r7 bcs _0808B5DC - ldr r3, _0808B668 @ =gUnknown_2038700 + ldr r3, _0808B668 @ =gScanlineEffectRegBuffers _0808B5C4: lsls r0, r2, 16 asrs r0, 16 @@ -4637,7 +4637,7 @@ _0808B5DC: lsrs r7, r4, 16 cmp r1, r0 bge _0808B612 - ldr r0, _0808B668 @ =gUnknown_2038700 + ldr r0, _0808B668 @ =gScanlineEffectRegBuffers mov r12, r0 adds r4, r3, 0 _0808B5F6: @@ -4661,7 +4661,7 @@ _0808B612: asrs r0, r1, 16 cmp r0, 0x9F bgt _0808B630 - ldr r2, _0808B668 @ =gUnknown_2038700 + ldr r2, _0808B668 @ =gScanlineEffectRegBuffers _0808B61E: asrs r0, r1, 16 lsls r1, r0, 1 @@ -4699,7 +4699,7 @@ _0808B648: _0808B65C: .4byte gUnknown_20397A4 _0808B660: .4byte 0x00007bcc _0808B664: .4byte 0xffff0000 -_0808B668: .4byte gUnknown_2038700 +_0808B668: .4byte gScanlineEffectRegBuffers thumb_func_end sub_808B540 thumb_func_start sub_808B66C @@ -5019,7 +5019,7 @@ _0808B8FC: adds r0, r1, r4 ldrb r0, [r0] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 ldr r5, _0808B944 @ =gUnknown_83CD8EC diff --git a/asm/trainer_see.s b/asm/trainer_see.s index 6cc322609..a07c918f8 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -1024,7 +1024,7 @@ sub_808226C: @ 808226C movs r0, 0x12 movs r1, 0x7 movs r2, 0x7F - bl SpawnSpecialFieldObjectParametrized + bl SpawnSpecialFieldObjectParameterized ldr r2, _080822C8 @ =gMapObjects lsls r1, r0, 3 adds r1, r0 diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s deleted file mode 100644 index c1da74a98..000000000 --- a/asm/trainer_tower.s +++ /dev/null @@ -1,1679 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815E068 -sub_815E068: @ 815E068 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - movs r5, 0 - cmp r0, 0x1 - beq _0815E0B4 - cmp r0, 0x1 - bgt _0815E084 - cmp r0, 0 - beq _0815E088 - b _0815E0F8 -_0815E084: - cmp r3, 0x2 - bne _0815E0F8 -_0815E088: - movs r4, 0 - ldr r0, _0815E0B0 @ =gUnknown_8479ED8 - ldrb r1, [r0, 0x1] - adds r3, r0, 0 - cmp r1, r2 - beq _0815E0A4 - adds r1, r3, 0 -_0815E096: - adds r1, 0x4 - adds r4, 0x1 - cmp r4, 0x52 - bhi _0815E0A4 - ldrb r0, [r1, 0x1] - cmp r0, r2 - bne _0815E096 -_0815E0A4: - cmp r4, 0x53 - beq _0815E0F8 - lsls r0, r4, 2 - adds r0, r3 - ldrb r5, [r0, 0x2] - b _0815E0F8 - .align 2, 0 -_0815E0B0: .4byte gUnknown_8479ED8 -_0815E0B4: - movs r4, 0 - ldr r1, _0815E0BC @ =gUnknown_847A024 - b _0815E0C8 - .align 2, 0 -_0815E0BC: .4byte gUnknown_847A024 -_0815E0C0: - adds r1, 0x8 - adds r4, 0x1 - cmp r4, 0x9 - bhi _0815E0CE -_0815E0C8: - ldrb r0, [r1, 0x2] - cmp r0, r2 - bne _0815E0C0 -_0815E0CE: - cmp r4, 0xA - beq _0815E0F8 - ldr r0, _0815E0E8 @ =0x00004003 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _0815E0F0 - ldr r1, _0815E0EC @ =gUnknown_847A024 - lsls r0, r4, 3 - adds r0, r1 - ldrb r5, [r0, 0x4] - b _0815E0F8 - .align 2, 0 -_0815E0E8: .4byte 0x00004003 -_0815E0EC: .4byte gUnknown_847A024 -_0815E0F0: - ldr r1, _0815E108 @ =gUnknown_847A024 - lsls r0, r4, 3 - adds r0, r1 - ldrb r5, [r0, 0x3] -_0815E0F8: - ldr r2, _0815E10C @ =gUnknown_20370DC - ldr r1, _0815E110 @ =gUnknown_20370DA - ldrh r0, [r1] - strh r0, [r2] - strh r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815E108: .4byte gUnknown_847A024 -_0815E10C: .4byte gUnknown_20370DC -_0815E110: .4byte gUnknown_20370DA - thumb_func_end sub_815E068 - - thumb_func_start sub_815E114 -sub_815E114: @ 815E114 - push {lr} - ldr r0, _0815E120 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0815E120: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_815E114 - - thumb_func_start sub_815E124 -sub_815E124: @ 815E124 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80D08F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0815E14C - ldr r0, _0815E154 @ =gMain - ldr r1, _0815E158 @ =sub_815E114 - str r1, [r0, 0x8] - bl sub_80563F0 - ldr r0, _0815E15C @ =sub_800FD9C - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0815E14C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E154: .4byte gMain -_0815E158: .4byte sub_815E114 -_0815E15C: .4byte sub_800FD9C - thumb_func_end sub_815E124 - - thumb_func_start sub_815E160 -sub_815E160: @ 815E160 - push {r4,lr} - ldr r4, _0815E1AC @ =gBattleTypeFlags - ldr r3, _0815E1B0 @ =0x00080008 - str r3, [r4] - ldr r0, _0815E1B4 @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xE] - cmp r0, 0x1 - bne _0815E180 - orrs r0, r3 - str r0, [r4] -_0815E180: - ldr r1, _0815E1B8 @ =gTrainerBattleOpponent_A - movs r0, 0 - strh r0, [r1] - bl sub_815E9FC - ldr r0, _0815E1BC @ =sub_815E124 - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayMapChosenOrBattleBGM - bl sub_8080060 - lsls r0, 24 - lsrs r0, 24 - bl sub_80D08B8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E1AC: .4byte gBattleTypeFlags -_0815E1B0: .4byte 0x00080008 -_0815E1B4: .4byte gUnknown_203F458 -_0815E1B8: .4byte gTrainerBattleOpponent_A -_0815E1BC: .4byte sub_815E124 - thumb_func_end sub_815E160 - - thumb_func_start sub_815E1C0 -sub_815E1C0: @ 815E1C0 - push {lr} - ldr r0, _0815E1E4 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - bne _0815E1DE - ldr r3, _0815E1E8 @ =gSpecialVar_Result - ldr r0, _0815E1EC @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r0, [r1, 0xE] - strh r0, [r3] -_0815E1DE: - pop {r0} - bx r0 - .align 2, 0 -_0815E1E4: .4byte gSpecialVar_0x8005 -_0815E1E8: .4byte gSpecialVar_Result -_0815E1EC: .4byte gUnknown_203F458 - thumb_func_end sub_815E1C0 - - thumb_func_start sub_815E1F0 -sub_815E1F0: @ 815E1F0 - ldr r0, _0815E210 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E214 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_0815E210: .4byte gSaveBlock1Ptr -_0815E214: .4byte 0x00003d34 - thumb_func_end sub_815E1F0 - - thumb_func_start sub_815E218 -sub_815E218: @ 815E218 - push {lr} - ldr r0, _0815E260 @ =gMapHeader - ldrh r0, [r0, 0x12] - mov r12, r0 - ldr r3, _0815E264 @ =0xfffffed6 - add r3, r12 - ldr r0, _0815E268 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E26C @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r1, [r1] - cmp r3, r1 - bne _0815E27C - ldr r3, _0815E270 @ =0xfffffed7 - add r3, r12 - ldr r0, _0815E274 @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - ldrb r1, [r1, 0xD] - cmp r3, r1 - bgt _0815E27C - ldr r1, _0815E278 @ =gSpecialVar_Result - movs r0, 0 - b _0815E280 - .align 2, 0 -_0815E260: .4byte gMapHeader -_0815E264: .4byte 0xfffffed6 -_0815E268: .4byte gSaveBlock1Ptr -_0815E26C: .4byte 0x00003d34 -_0815E270: .4byte 0xfffffed7 -_0815E274: .4byte gUnknown_203F458 -_0815E278: .4byte gSpecialVar_Result -_0815E27C: - ldr r1, _0815E288 @ =gSpecialVar_Result - movs r0, 0x1 -_0815E280: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E288: .4byte gSpecialVar_Result - thumb_func_end sub_815E218 - - thumb_func_start sub_815E28C -sub_815E28C: @ 815E28C - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _0815E2D0 @ =gSaveBlock1Ptr - ldr r0, [r4] - ldr r5, _0815E2D4 @ =0x00003d34 - adds r1, r0, r5 - ldr r0, _0815E2D8 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - str r0, [r1] - cmp r0, 0x3 - bls _0815E2A8 - movs r0, 0 - str r0, [r1] -_0815E2A8: - bl sub_815EC0C - bl sub_815D834 - cmp r0, 0 - bne _0815E2E0 - ldr r1, [r4] - adds r0, r1, r5 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E2DC @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x20 - orrs r0, r2 - b _0815E2FA - .align 2, 0 -_0815E2D0: .4byte gSaveBlock1Ptr -_0815E2D4: .4byte 0x00003d34 -_0815E2D8: .4byte gSpecialVar_0x8005 -_0815E2DC: .4byte 0x00003d42 -_0815E2E0: - ldr r1, [r4] - adds r0, r1, r5 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E384 @ =0x00003d42 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 -_0815E2FA: - strb r0, [r1] - ldr r6, _0815E388 @ =gSaveBlock1Ptr - ldr r2, [r6] - ldr r5, _0815E38C @ =0x00003d34 - adds r0, r2, r5 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r2, r0 - movs r0, 0 - mov r8, r0 - mov r0, r8 - strb r0, [r2] - ldr r0, [r6] - adds r1, r0, r5 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - ldr r4, _0815E390 @ =0x00003d38 - adds r1, r4 - adds r0, r1 - bl SetVBlankCounter1Ptr - ldr r2, [r6] - adds r3, r2, r5 - ldr r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r4, r2, r4 - adds r4, r0 - mov r0, r8 - str r0, [r4] - ldr r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r3, _0815E384 @ =0x00003d42 - adds r2, r3 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r6] - adds r5, r1, r5 - ldr r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, r3 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E384: .4byte 0x00003d42 -_0815E388: .4byte gSaveBlock1Ptr -_0815E38C: .4byte 0x00003d34 -_0815E390: .4byte 0x00003d38 - thumb_func_end sub_815E28C - - thumb_func_start sub_815E394 -sub_815E394: @ 815E394 - push {lr} - bl DisableVBlankCounter1 - ldr r3, _0815E3F8 @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r3] - ldr r0, _0815E3FC @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, _0815E400 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, _0815E404 @ =0x00003d42 - adds r2, r0 - ldrb r0, [r2] - lsls r0, 29 - cmp r0, 0 - bge _0815E3C2 - movs r0, 0x1 - strh r0, [r3] -_0815E3C2: - ldrb r2, [r2] - lsls r0, r2, 31 - cmp r0, 0 - beq _0815E3D6 - lsls r0, r2, 30 - cmp r0, 0 - bge _0815E3D6 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_0815E3D6: - ldr r0, _0815E3FC @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E400 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E404 @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E3F8: .4byte gSpecialVar_Result -_0815E3FC: .4byte gSaveBlock1Ptr -_0815E400: .4byte 0x00003d34 -_0815E404: .4byte 0x00003d42 - thumb_func_end sub_815E394 - - thumb_func_start sub_815E408 -sub_815E408: @ 815E408 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _0815E444 @ =gUnknown_847A2B4 - ldr r0, _0815E448 @ =gUnknown_203F458 - ldr r0, [r0] - ldrb r0, [r0, 0xF] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - ldr r0, _0815E44C @ =gSaveBlock1Ptr - mov r8, r0 - ldr r2, [r0] - ldr r7, _0815E450 @ =0x00003d34 - adds r0, r2, r7 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r6, _0815E454 @ =0x00003d42 - adds r2, r6 - ldrb r0, [r2] - lsls r0, 31 - lsrs r5, r0, 31 - cmp r5, 0 - beq _0815E45C - ldr r1, _0815E458 @ =gSpecialVar_Result - movs r0, 0x2 - b _0815E4A0 - .align 2, 0 -_0815E444: .4byte gUnknown_847A2B4 -_0815E448: .4byte gUnknown_203F458 -_0815E44C: .4byte gSaveBlock1Ptr -_0815E450: .4byte 0x00003d34 -_0815E454: .4byte 0x00003d42 -_0815E458: .4byte gSpecialVar_Result -_0815E45C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_809A084 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0815E49C - ldr r1, _0815E494 @ =gStringVar2 - adds r0, r4, 0 - bl sub_8099E90 - mov r0, r8 - ldr r1, [r0] - adds r0, r1, r7 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, r6 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _0815E498 @ =gSpecialVar_Result - strh r5, [r0] - b _0815E4A2 - .align 2, 0 -_0815E494: .4byte gStringVar2 -_0815E498: .4byte gSpecialVar_Result -_0815E49C: - ldr r1, _0815E4AC @ =gSpecialVar_Result - movs r0, 0x1 -_0815E4A0: - strh r0, [r1] -_0815E4A2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815E4AC: .4byte gSpecialVar_Result - thumb_func_end sub_815E408 - - thumb_func_start sub_815E4B0 -sub_815E4B0: @ 815E4B0 - push {r4-r6,lr} - ldr r6, _0815E4D8 @ =gSaveBlock1Ptr - ldr r2, [r6] - ldr r1, _0815E4DC @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, r1 - ldr r3, _0815E4E0 @ =0x00003d42 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 31 - cmp r5, 0 - beq _0815E4E8 - ldr r1, _0815E4E4 @ =gSpecialVar_Result - movs r0, 0x2 - b _0815E534 - .align 2, 0 -_0815E4D8: .4byte gSaveBlock1Ptr -_0815E4DC: .4byte 0x00003d34 -_0815E4E0: .4byte 0x00003d42 -_0815E4E4: .4byte gSpecialVar_Result -_0815E4E8: - ldr r4, _0815E520 @ =0x00003d38 - adds r0, r1, r4 - adds r0, r2, r0 - adds r0, 0x4 - bl sub_815EDDC - ldr r3, [r6] - ldr r2, _0815E524 @ =0x00003d34 - adds r1, r3, r2 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r4, r3, r4 - adds r4, r1 - ldr r4, [r4] - cmp r0, r4 - bls _0815E530 - adds r0, r1, r3 - ldr r3, _0815E528 @ =0x00003d3c - adds r0, r3 - adds r1, r4, 0 - bl sub_815EDF4 - ldr r0, _0815E52C @ =gSpecialVar_Result - strh r5, [r0] - b _0815E536 - .align 2, 0 -_0815E520: .4byte 0x00003d38 -_0815E524: .4byte 0x00003d34 -_0815E528: .4byte 0x00003d3c -_0815E52C: .4byte gSpecialVar_Result -_0815E530: - ldr r1, _0815E55C @ =gSpecialVar_Result - movs r0, 0x1 -_0815E534: - strh r0, [r1] -_0815E536: - ldr r0, _0815E560 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E564 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r3, _0815E568 @ =0x00003d42 - adds r1, r3 - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E55C: .4byte gSpecialVar_Result -_0815E560: .4byte gSaveBlock1Ptr -_0815E564: .4byte 0x00003d34 -_0815E568: .4byte 0x00003d42 - thumb_func_end sub_815E4B0 - - thumb_func_start sub_815E56C -sub_815E56C: @ 815E56C - push {r4,lr} - ldr r0, _0815E5A0 @ =gSaveBlock1Ptr - ldr r4, [r0] - ldr r1, _0815E5A4 @ =0x00003d34 - adds r0, r4, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, r3 - ldr r1, _0815E5A8 @ =0x00003d42 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _0815E5BA - subs r1, 0xA - adds r0, r4, r1 - adds r2, r0, r3 - ldr r1, [r2] - ldr r0, _0815E5AC @ =0x00034bbe - cmp r1, r0 - bls _0815E5B0 - adds r0, 0x1 - str r0, [r2] - b _0815E5BA - .align 2, 0 -_0815E5A0: .4byte gSaveBlock1Ptr -_0815E5A4: .4byte 0x00003d34 -_0815E5A8: .4byte 0x00003d42 -_0815E5AC: .4byte 0x00034bbe -_0815E5B0: - ldr r1, _0815E5C0 @ =0x00003d38 - adds r0, r3, r1 - adds r0, r4, r0 - bl SetVBlankCounter1Ptr -_0815E5BA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E5C0: .4byte 0x00003d38 - thumb_func_end sub_815E56C - - thumb_func_start sub_815E5C4 -sub_815E5C4: @ 815E5C4 - ldr r0, _0815E5E4 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E5E8 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E5EC @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0815E5E4: .4byte gSaveBlock1Ptr -_0815E5E8: .4byte 0x00003d34 -_0815E5EC: .4byte 0x00003d42 - thumb_func_end sub_815E5C4 - - thumb_func_start sub_815E5F0 -sub_815E5F0: @ 815E5F0 - push {lr} - ldr r0, _0815E620 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, _0815E624 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, _0815E628 @ =0x00003d42 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 28 - cmp r0, 0 - bge _0815E630 - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, _0815E62C @ =gSpecialVar_Result - movs r0, 0 - b _0815E64C - .align 2, 0 -_0815E620: .4byte gSaveBlock1Ptr -_0815E624: .4byte 0x00003d34 -_0815E628: .4byte 0x00003d42 -_0815E62C: .4byte gSpecialVar_Result -_0815E630: - lsls r0, r1, 27 - cmp r0, 0 - bge _0815E648 - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, _0815E644 @ =gSpecialVar_Result - movs r0, 0x1 - b _0815E64C - .align 2, 0 -_0815E644: .4byte gSpecialVar_Result -_0815E648: - ldr r1, _0815E654 @ =gSpecialVar_Result - movs r0, 0x2 -_0815E64C: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E654: .4byte gSpecialVar_Result - thumb_func_end sub_815E5F0 - - thumb_func_start sub_815E658 -sub_815E658: @ 815E658 - push {r4-r6,lr} - ldr r4, _0815E700 @ =gSaveBlock1Ptr - ldr r2, [r4] - ldr r6, _0815E704 @ =0x00003d34 - adds r0, r2, r6 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r5, _0815E708 @ =0x00003d38 - adds r2, r5 - adds r2, r0 - ldr r1, [r2] - ldr r0, _0815E70C @ =0x00034bbe - cmp r1, r0 - bls _0815E690 - bl DisableVBlankCounter1 - ldr r1, [r4] - adds r0, r1, r6 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r5 - adds r1, r0 - ldr r0, _0815E710 @ =0x00034bbf - str r0, [r1] -_0815E690: - ldr r1, [r4] - adds r0, r1, r6 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r5 - adds r1, r0 - ldr r4, [r1] - movs r5, 0xE1 - lsls r5, 4 - adds r0, r4, 0 - adds r1, r5, 0 - bl __divsi3 - adds r6, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - movs r1, 0x3C - bl __divsi3 - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0x3C - bl __modsi3 - movs r1, 0xA8 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - ldr r0, _0815E714 @ =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E718 @ =gStringVar2 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E71C @ =gStringVar3 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815E700: .4byte gSaveBlock1Ptr -_0815E704: .4byte 0x00003d34 -_0815E708: .4byte 0x00003d38 -_0815E70C: .4byte 0x00034bbe -_0815E710: .4byte 0x00034bbf -_0815E714: .4byte gStringVar1 -_0815E718: .4byte gStringVar2 -_0815E71C: .4byte gStringVar3 - thumb_func_end sub_815E658 - - thumb_func_start sub_815E720 -sub_815E720: @ 815E720 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - bl sub_815EC0C - ldr r0, _0815E85C @ =gUnknown_847A218 - bl AddWindow - lsls r0, 24 - lsrs r7, r0, 24 - bl sub_80F6E9C - adds r0, r7, 0 - movs r1, 0 - bl sub_80F6F1C - ldr r2, _0815E860 @ =gUnknown_83FE982 - movs r1, 0 - str r1, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - str r1, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x2 - movs r3, 0x4A - bl AddTextPrinterParameterized - movs r0, 0 - mov r8, r0 - movs r1, 0xB8 - lsls r1, 22 - mov r10, r1 - movs r0, 0x90 - lsls r0, 22 - mov r9, r0 -_0815E76C: - ldr r0, _0815E864 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r1, _0815E868 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _0815E86C @ =0x00003d3c - adds r0, r1 - bl sub_815EDDC - adds r4, r0, 0 - movs r5, 0xE1 - lsls r5, 4 - adds r1, r5, 0 - bl __divsi3 - adds r6, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - movs r1, 0x3C - bl __divsi3 - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0x3C - bl __modsi3 - movs r1, 0xA8 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - ldr r0, _0815E870 @ =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E874 @ =gStringVar2 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E878 @ =gStringVar3 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815E87C @ =gStringVar4 - ldr r1, _0815E880 @ =gUnknown_83FE998 - bl StringExpandPlaceholders - ldr r1, _0815E884 @ =gUnknown_83FE9C4 - mov r0, r8 - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - mov r1, r9 - lsrs r0, r1, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x2 - movs r3, 0x18 - bl AddTextPrinterParameterized - mov r1, r10 - lsrs r0, r1, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x2 - ldr r2, _0815E87C @ =gStringVar4 - movs r3, 0x60 - bl AddTextPrinterParameterized - movs r0, 0xA0 - lsls r0, 21 - add r10, r0 - add r9, r0 - movs r1, 0x1 - add r8, r1 - mov r0, r8 - cmp r0, 0x3 - ble _0815E76C - adds r0, r7, 0 - bl PutWindowTilemap - adds r0, r7, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0815E888 @ =0x00004001 - adds r1, r7, 0 - bl VarSet - 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 -_0815E85C: .4byte gUnknown_847A218 -_0815E860: .4byte gUnknown_83FE982 -_0815E864: .4byte gSaveBlock1Ptr -_0815E868: .4byte 0x00003d34 -_0815E86C: .4byte 0x00003d3c -_0815E870: .4byte gStringVar1 -_0815E874: .4byte gStringVar2 -_0815E878: .4byte gStringVar3 -_0815E87C: .4byte gStringVar4 -_0815E880: .4byte gUnknown_83FE998 -_0815E884: .4byte gUnknown_83FE9C4 -_0815E888: .4byte 0x00004001 - thumb_func_end sub_815E720 - - thumb_func_start sub_815E88C -sub_815E88C: @ 815E88C - push {r4,lr} - ldr r0, _0815E8B0 @ =0x00004001 - bl VarGet - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_810F4D8 - adds r0, r4, 0 - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E8B0: .4byte 0x00004001 - thumb_func_end sub_815E88C - - thumb_func_start sub_815E8B4 -sub_815E8B4: @ 815E8B4 - push {r4,lr} - ldr r4, _0815E8C8 @ =gSpecialVar_Result - bl GetMonsStateToDoubles - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E8C8: .4byte gSpecialVar_Result - thumb_func_end sub_815E8B4 - - thumb_func_start sub_815E8CC -sub_815E8CC: @ 815E8CC - push {lr} - ldr r0, _0815E8EC @ =gUnknown_203F458 - ldr r1, [r0] - ldrb r0, [r1, 0x4] - ldrb r2, [r1, 0xD] - cmp r0, r2 - beq _0815E8F8 - ldr r0, _0815E8F0 @ =gStringVar1 - ldrb r1, [r1, 0x4] - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r1, _0815E8F4 @ =gSpecialVar_Result - movs r0, 0x1 - b _0815E8FC - .align 2, 0 -_0815E8EC: .4byte gUnknown_203F458 -_0815E8F0: .4byte gStringVar1 -_0815E8F4: .4byte gSpecialVar_Result -_0815E8F8: - ldr r1, _0815E904 @ =gSpecialVar_Result - movs r0, 0 -_0815E8FC: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0815E904: .4byte gSpecialVar_Result - thumb_func_end sub_815E8CC - - thumb_func_start sub_815E908 -sub_815E908: @ 815E908 - push {lr} - ldr r0, _0815E928 @ =gMapHeader - ldrh r1, [r0, 0x12] - ldr r0, _0815E92C @ =0x00000129 - cmp r1, r0 - bne _0815E938 - ldr r0, _0815E930 @ =0x00004082 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _0815E938 - ldr r0, _0815E934 @ =gSpecialVar_Result - strh r1, [r0] - b _0815E93E - .align 2, 0 -_0815E928: .4byte gMapHeader -_0815E92C: .4byte 0x00000129 -_0815E930: .4byte 0x00004082 -_0815E934: .4byte gSpecialVar_Result -_0815E938: - ldr r1, _0815E944 @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] -_0815E93E: - pop {r0} - bx r0 - .align 2, 0 -_0815E944: .4byte gSpecialVar_Result - thumb_func_end sub_815E908 - - thumb_func_start sub_815E948 -sub_815E948: @ 815E948 - push {r4,lr} - ldr r0, _0815E97C @ =0x00004001 - bl VarGet - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _0815E980 @ =gUnknown_203F458 - ldr r3, [r0] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r2 - lsls r1, 3 - ldrb r2, [r3] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - adds r3, r1 - ldrb r1, [r3, 0x1B] - movs r3, 0 - ldr r2, _0815E984 @ =gUnknown_847A074 - ldr r0, _0815E988 @ =gFacilityClassToTrainerClass - adds r1, r0 - b _0815E994 - .align 2, 0 -_0815E97C: .4byte 0x00004001 -_0815E980: .4byte gUnknown_203F458 -_0815E984: .4byte gUnknown_847A074 -_0815E988: .4byte gFacilityClassToTrainerClass -_0815E98C: - adds r2, 0x4 - adds r3, 0x1 - cmp r3, 0x68 - bhi _0815E99C -_0815E994: - ldrb r0, [r2] - ldrb r4, [r1] - cmp r0, r4 - bne _0815E98C -_0815E99C: - cmp r3, 0x69 - beq _0815E9B0 - ldr r1, _0815E9AC @ =gUnknown_847A074 - lsls r0, r3, 2 - adds r0, r1 - ldrb r2, [r0, 0x1] - b _0815E9B2 - .align 2, 0 -_0815E9AC: .4byte gUnknown_847A074 -_0815E9B0: - movs r2, 0 -_0815E9B2: - ldr r0, _0815E9C4 @ =gUnknown_847A2D2 - lsls r1, r2, 1 - adds r1, r0 - ldrh r0, [r1] - bl PlayNewMapMusic - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815E9C4: .4byte gUnknown_847A2D2 - thumb_func_end sub_815E948 - - thumb_func_start sub_815E9C8 -sub_815E9C8: @ 815E9C8 - ldr r3, _0815E9EC @ =gSpecialVar_Result - ldr r0, _0815E9F0 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815E9F4 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815E9F8 @ =0x00003d42 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - lsrs r0, 31 - strh r0, [r3] - bx lr - .align 2, 0 -_0815E9EC: .4byte gSpecialVar_Result -_0815E9F0: .4byte gSaveBlock1Ptr -_0815E9F4: .4byte 0x00003d34 -_0815E9F8: .4byte 0x00003d42 - thumb_func_end sub_815E9C8 - - thumb_func_start sub_815E9FC -sub_815E9FC: @ 815E9FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _0815EABC @ =0x00004001 - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - bl sub_815EBB8 - mov r9, r0 - ldr r0, _0815EAC0 @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, _0815EAC4 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0xF5 - lsls r0, 6 - adds r1, r0 - ldrb r5, [r1] - bl ZeroEnemyPartyMons - ldr r1, _0815EAC8 @ =gUnknown_203F458 - mov r10, r1 - ldr r6, [r1] - ldrb r1, [r6] - lsls r0, r1, 5 - subs r0, r1 - lsls r7, r0, 5 - adds r0, r6, r7 - ldrb r0, [r0, 0xE] - cmp r0, 0x1 - beq _0815EAD4 - cmp r0, 0x1 - ble _0815EA56 - cmp r0, 0x2 - bne _0815EA56 - b _0815EB58 -_0815EA56: - movs r6, 0 - lsls r5, 1 - str r5, [sp] - lsls r0, r4, 2 - mov r5, r10 - adds r0, r4 - lsls r0, 3 - adds r0, r4 - lsls r7, r0, 3 - adds r2, r7, 0x4 - mov r8, r2 -_0815EA6C: - ldr r1, _0815EACC @ =gUnknown_847A2EE - ldr r2, [sp] - adds r0, r6, r2 - adds r0, r1 - ldrb r2, [r0] - ldr r3, [r5] - movs r0, 0x2C - adds r4, r2, 0 - muls r4, r0 - adds r2, r4, r7 - ldrb r1, [r3] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 5 - adds r2, r0 - adds r3, r2 - adds r3, 0x5C - mov r0, r9 - strb r0, [r3] - movs r0, 0x64 - muls r0, r6 - ldr r1, _0815EAD0 @ =gEnemyParty - adds r0, r1 - ldr r1, [r5] - ldrb r3, [r1] - lsls r2, r3, 5 - subs r2, r3 - lsls r2, 5 - adds r2, 0xC - adds r1, r2 - add r1, r8 - adds r4, 0x40 - adds r1, r4 - bl sub_803E0A4 - adds r6, 0x1 - cmp r6, 0x1 - ble _0815EA6C - b _0815EB9E - .align 2, 0 -_0815EABC: .4byte 0x00004001 -_0815EAC0: .4byte gSaveBlock1Ptr -_0815EAC4: .4byte 0x00003d34 -_0815EAC8: .4byte gUnknown_203F458 -_0815EACC: .4byte gUnknown_847A2EE -_0815EAD0: .4byte gEnemyParty -_0815EAD4: - ldr r4, _0815EB50 @ =gUnknown_847A2FE - lsls r5, 1 - adds r0, r5, r4 - ldrb r2, [r0] - movs r1, 0x2C - mov r8, r1 - mov r3, r8 - muls r3, r2 - adds r0, r3, r7 - adds r0, r6, r0 - adds r0, 0x5C - mov r2, r9 - strb r2, [r0] - ldr r6, _0815EB54 @ =gEnemyParty - mov r0, r10 - ldr r1, [r0] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r0, 0xC - adds r1, r0 - adds r3, 0x44 - adds r1, r3 - adds r0, r6, 0 - bl sub_803E0A4 - adds r4, 0x1 - adds r5, r4 - ldrb r2, [r5] - mov r0, r10 - ldr r1, [r0] - mov r3, r8 - muls r3, r2 - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r0, r3, r0 - adds r1, r0 - movs r2, 0xD2 - lsls r2, 1 - adds r1, r2 - mov r0, r9 - strb r0, [r1] - adds r6, 0x64 - mov r2, r10 - ldr r1, [r2] - ldrb r2, [r1] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 5 - adds r0, 0xC - adds r1, r0 - movs r0, 0xC6 - lsls r0, 1 - adds r3, r0 - adds r1, r3 - adds r0, r6, 0 - bl sub_803E0A4 - b _0815EB9E - .align 2, 0 -_0815EB50: .4byte gUnknown_847A2FE -_0815EB54: .4byte gEnemyParty -_0815EB58: - ldr r1, _0815EBB0 @ =gUnknown_847A30E - lsls r0, r5, 1 - adds r0, r5 - adds r0, r4, r0 - adds r0, r1 - ldrb r2, [r0] - movs r0, 0x2C - adds r5, r2, 0 - muls r5, r0 - lsls r3, r4, 2 - adds r3, r4 - lsls r3, 3 - adds r3, r4 - lsls r3, 3 - adds r0, r5, r3 - adds r0, r7 - adds r0, r6, r0 - adds r0, 0x5C - mov r1, r9 - strb r1, [r0] - ldr r0, _0815EBB4 @ =gEnemyParty - mov r2, r10 - ldr r1, [r2] - ldrb r4, [r1] - lsls r2, r4, 5 - subs r2, r4 - lsls r2, 5 - adds r2, 0xC - adds r1, r2 - adds r3, 0x4 - adds r1, r3 - adds r5, 0x40 - adds r1, r5 - bl sub_803E0A4 -_0815EB9E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815EBB0: .4byte gUnknown_847A30E -_0815EBB4: .4byte gEnemyParty - thumb_func_end sub_815E9FC - - thumb_func_start sub_815EBB8 -sub_815EBB8: @ 815EBB8 - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_0815EBBE: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0815EC08 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _0815EBF8 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _0815EBF8 - adds r0, r4, 0 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - cmp r0, r6 - ble _0815EBF8 - adds r6, r0, 0 -_0815EBF8: - adds r5, 0x1 - cmp r5, 0x5 - ble _0815EBBE - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0815EC08: .4byte gPlayerParty - thumb_func_end sub_815EBB8 - - thumb_func_start sub_815EC0C -sub_815EC0C: @ 815EC0C - push {r4,lr} - ldr r4, _0815EC70 @ =gSaveBlock1Ptr - ldr r2, [r4] - ldr r1, _0815EC74 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, _0815EC78 @ =0x00003d41 - adds r2, r0 - ldr r0, _0815EC7C @ =gUnknown_203F458 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r0, [r2] - cmp r0, r1 - beq _0815EC6A - strb r1, [r2] - ldr r2, [r4] - ldr r1, _0815EC74 @ =0x00003d34 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r2, _0815EC80 @ =0x00003d3c - adds r0, r2 - ldr r1, _0815EC84 @ =0x00034bbf - bl sub_815EDF4 - ldr r1, [r4] - ldr r2, _0815EC74 @ =0x00003d34 - adds r0, r1, r2 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _0815EC88 @ =0x00003d42 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0815EC6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815EC70: .4byte gSaveBlock1Ptr -_0815EC74: .4byte 0x00003d34 -_0815EC78: .4byte 0x00003d41 -_0815EC7C: .4byte gUnknown_203F458 -_0815EC80: .4byte 0x00003d3c -_0815EC84: .4byte 0x00034bbf -_0815EC88: .4byte 0x00003d42 - thumb_func_end sub_815EC0C - - thumb_func_start sub_815EC8C -sub_815EC8C: @ 815EC8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r8, r0 - bl sub_815DC8C - movs r0, 0xD8 - str r0, [sp] - movs r0, 0x90 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - bl sub_815EC0C - ldr r4, _0815EDB4 @ =gUnknown_847A22C - str r4, [sp] - mov r0, r8 - str r0, [sp, 0x4] - ldr r0, _0815EDB8 @ =gUnknown_83FE982 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x4A - movs r3, 0 - bl box_print - movs r7, 0 - movs r0, 0x90 - lsls r0, 22 - mov r10, r0 - ldr r0, _0815EDBC @ =0x00003d38 - mov r9, r0 -_0815ECDC: - ldr r0, _0815EDC0 @ =gSaveBlock1Ptr - ldr r0, [r0] - add r0, r9 - adds r0, 0x4 - bl sub_815EDDC - adds r4, r0, 0 - movs r5, 0xE1 - lsls r5, 4 - adds r1, r5, 0 - bl __divsi3 - adds r6, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - bl __modsi3 - adds r4, r0, 0 - movs r1, 0x3C - bl __divsi3 - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0x3C - bl __modsi3 - movs r1, 0xA8 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - ldr r0, _0815EDC4 @ =gStringVar1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815EDC8 @ =gStringVar2 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815EDCC @ =gStringVar3 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0815EDD0 @ =gStringVar4 - ldr r1, _0815EDD4 @ =gUnknown_83FE998 - bl StringExpandPlaceholders - lsls r1, r7, 2 - mov r0, r10 - lsrs r4, r0, 24 - ldr r0, _0815EDB4 @ =gUnknown_847A22C - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldr r0, _0815EDD8 @ =gUnknown_83FE9C4 - adds r1, r0 - ldr r0, [r1] - str r0, [sp, 0x8] - mov r0, r8 - movs r1, 0x2 - movs r2, 0x18 - adds r3, r4, 0 - bl box_print - ldr r0, _0815EDB4 @ =gUnknown_847A22C - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldr r0, _0815EDD0 @ =gStringVar4 - str r0, [sp, 0x8] - mov r0, r8 - movs r1, 0x2 - movs r2, 0x60 - adds r3, r4, 0 - bl box_print - movs r0, 0xA0 - lsls r0, 21 - add r10, r0 - movs r0, 0xC - add r9, r0 - adds r7, 0x1 - cmp r7, 0x3 - ble _0815ECDC - mov r0, r8 - bl PutWindowTilemap - mov r0, r8 - movs r1, 0x3 - bl CopyWindowToVram - bl sub_815DD2C - 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 -_0815EDB4: .4byte gUnknown_847A22C -_0815EDB8: .4byte gUnknown_83FE982 -_0815EDBC: .4byte 0x00003d38 -_0815EDC0: .4byte gSaveBlock1Ptr -_0815EDC4: .4byte gStringVar1 -_0815EDC8: .4byte gStringVar2 -_0815EDCC: .4byte gStringVar3 -_0815EDD0: .4byte gStringVar4 -_0815EDD4: .4byte gUnknown_83FE998 -_0815EDD8: .4byte gUnknown_83FE9C4 - thumb_func_end sub_815EC8C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/trig.s b/asm/trig.s deleted file mode 100644 index ca1993b60..000000000 --- a/asm/trig.s +++ /dev/null @@ -1,97 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Sin -Sin: @ 8044E30 - lsls r1, 16 - asrs r1, 16 - ldr r2, _08044E48 @ =gUnknown_825E074 - lsls r0, 16 - asrs r0, 15 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - lsls r0, 8 - asrs r0, 16 - bx lr - .align 2, 0 -_08044E48: .4byte gUnknown_825E074 - thumb_func_end Sin - - thumb_func_start Cos -Cos: @ 8044E4C - lsls r1, 16 - asrs r1, 16 - ldr r2, _08044E68 @ =gUnknown_825E074 - lsls r0, 16 - asrs r0, 15 - adds r0, 0x80 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - lsls r0, 8 - asrs r0, 16 - bx lr - .align 2, 0 -_08044E68: .4byte gUnknown_825E074 - thumb_func_end Cos - - thumb_func_start Sin2 -Sin2: @ 8044E6C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r5, 0 - movs r1, 0xB4 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0xB4 - bl __udivsi3 - movs r1, 0x1 - ands r0, r1 - ldr r1, _08044EA0 @ =gUnknown_825E2F4 - lsls r4, 1 - adds r4, r1 - ldrh r1, [r4] - cmp r0, 0 - bne _08044EA4 - lsls r0, r1, 16 - b _08044EA8 - .align 2, 0 -_08044EA0: .4byte gUnknown_825E2F4 -_08044EA4: - lsls r0, r1, 16 - negs r0, r0 -_08044EA8: - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end Sin2 - - thumb_func_start Cos2 -Cos2: @ 8044EB0 - push {lr} - lsls r0, 16 - movs r1, 0xB4 - lsls r1, 15 - adds r0, r1 - lsrs r0, 16 - bl Sin2 - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end Cos2 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s index c61c9a3d8..6c917be27 100644 --- a/asm/union_room_chat.s +++ b/asm/union_room_chat.s @@ -200,7 +200,7 @@ sub_81285B4: @ 81285B4 bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests - bl sub_8087F54 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 thumb_func_end sub_81285B4 @@ -1720,7 +1720,7 @@ _081291E8: bl sub_812B4B8 bl sub_8129B88 bl sub_81284BC - ldr r0, _08129214 @ =c2_exit_to_overworld_2_switch + ldr r0, _08129214 @ =CB2_ReturnToField bl SetMainCallback2 _08129206: add sp, 0x4 @@ -1729,7 +1729,7 @@ _08129206: bx r0 .align 2, 0 _08129210: .4byte gPaletteFade -_08129214: .4byte c2_exit_to_overworld_2_switch +_08129214: .4byte CB2_ReturnToField thumb_func_end sub_8128FB8 thumb_func_start sub_8129218 @@ -3046,7 +3046,7 @@ sub_8129B88: @ 8129B88 str r0, [r4] _08129B9E: bl FreeAllWindowBuffers - ldr r1, _08129BB4 @ =gUnknown_2039600 + ldr r1, _08129BB4 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] pop {r4} @@ -3054,7 +3054,7 @@ _08129B9E: bx r0 .align 2, 0 _08129BB0: .4byte gUnknown_203B0E4 -_08129BB4: .4byte gUnknown_2039600 +_08129BB4: .4byte gScanlineEffect thumb_func_end sub_8129B88 thumb_func_start sub_8129BB8 @@ -4288,7 +4288,7 @@ sub_812A424: @ 812A424 ldrb r0, [r0, 0x18] movs r1, 0x1 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter ldr r0, [r6] ldrb r0, [r0, 0x18] movs r1, 0xE @@ -4299,7 +4299,7 @@ sub_812A424: @ 812A424 movs r1, 0x2 movs r2, 0 movs r3, 0x2 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow _0812A4F0: add sp, 0x14 pop {r3} @@ -4329,7 +4329,7 @@ sub_812A51C: @ 812A51C lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldr r0, [r4] ldrb r0, [r0, 0x18] bl ClearWindowTilemap @@ -4495,7 +4495,7 @@ _0812A642: adds r0, r5, 0 movs r1, 0xA movs r2, 0x2 - bl sub_81501D0 + bl DrawTextBorderInner ldrb r3, [r4, 0x5] adds r3, 0x8 lsls r3, 24 @@ -4516,7 +4516,7 @@ _0812A642: adds r0, r5, 0 movs r1, 0x2 adds r2, r6, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 b _0812A6DA .align 2, 0 _0812A6AC: .4byte gUnknown_845AB64 @@ -4524,7 +4524,7 @@ _0812A6B0: adds r0, r5, 0 movs r1, 0xA movs r2, 0x2 - bl sub_8150048 + bl DrawTextBorderOuter ldrb r3, [r4, 0x5] ldrb r0, [r4, 0x6] str r0, [sp] @@ -4539,7 +4539,7 @@ _0812A6B0: adds r0, r5, 0 movs r1, 0x2 adds r2, r6, 0 - bl sub_812E62C + bl AddTextPrinterParameterized5 _0812A6DA: ldr r0, _0812A6F0 @ =gUnknown_203B0E4 ldr r0, [r0] @@ -4568,7 +4568,7 @@ sub_812A6F4: @ 812A6F4 lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow ldr r0, [r4] ldrb r0, [r0, 0x1E] bl ClearWindowTilemap @@ -4689,7 +4689,7 @@ _0812A7B4: movs r0, 0x1 movs r1, 0x2 movs r3, 0x1 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x34 pop {r3-r5} mov r8, r3 @@ -4767,7 +4767,7 @@ _0812A866: movs r0, 0x2 movs r1, 0 lsrs r2, r5, 24 - bl box_print + bl AddTextPrinterParameterized3 adds r4, 0x4 adds r7, 0x1 adds r0, r6, 0 @@ -4807,7 +4807,7 @@ _0812A8A8: movs r4, 0x80 lsls r4, 19 lsrs r2, r4, 24 - bl box_print + bl AddTextPrinterParameterized3 adds r0, r7, 0x1 str r0, [sp, 0x48] adds r6, 0xC @@ -4858,7 +4858,7 @@ _0812A90C: movs r0, 0x2 movs r1, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 adds r2, r7, 0 add r0, sp, 0xC str r0, [sp] @@ -4870,7 +4870,7 @@ _0812A90C: movs r0, 0x2 movs r1, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 _0812A960: ldr r7, [sp, 0x48] mov r4, r10 @@ -4980,7 +4980,7 @@ sub_812AA10: @ 812AA10 movs r0, 0x3 movs r1, 0x1 movs r2, 0xD - bl sub_8150048 + bl DrawTextBorderOuter ldr r0, _0812AA60 @ =gUnknown_845ABEC str r0, [sp] movs r0, 0x3 @@ -5000,7 +5000,7 @@ sub_812AA10: @ 812AA10 movs r1, 0x2 movs r2, 0 movs r3, 0 - bl sub_810F7D8 + bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x3 bl PutWindowTilemap add sp, 0xC @@ -5015,7 +5015,7 @@ sub_812AA64: @ 812AA64 push {lr} movs r0, 0x3 movs r1, 0 - bl sub_810F4D8 + bl ClearMenuWindow movs r0, 0x3 bl ClearWindowTilemap pop {r0} @@ -5063,7 +5063,7 @@ sub_812AA78: @ 812AA78 movs r1, 0x2 movs r2, 0 adds r3, r4, 0 - bl box_print + bl AddTextPrinterParameterized3 add sp, 0x10 pop {r4,r5} pop {r0} @@ -5350,19 +5350,19 @@ sub_812AD20: @ 812AD20 movs r0, 0x3 movs r1, 0x1 movs r2, 0xD0 - bl sub_815001C + bl TextWindow_SetUserSelectedFrame movs r0, 0x3 movs r1, 0xA movs r2, 0x20 - bl sub_814FF2C - ldr r0, _0812AD4C @ =gUnknown_841F408 + bl TextWindow_SetStdFrame0_WithPal + ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette movs r1, 0xE0 movs r2, 0x20 bl LoadPalette pop {r0} bx r0 .align 2, 0 -_0812AD4C: .4byte gUnknown_841F408 +_0812AD4C: .4byte gTMCaseMainWindowPalette thumb_func_end sub_812AD20 thumb_func_start sub_812AD50 @@ -5384,13 +5384,13 @@ sub_812AD50: @ 812AD50 strh r1, [r0, 0x20] str r1, [sp, 0xC] add r0, sp, 0xC - ldr r1, _0812AD98 @ =gUnknown_2038700 + ldr r1, _0812AD98 @ =gScanlineEffectRegBuffers ldr r2, _0812AD9C @ =0x010003c0 bl CpuFastSet ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_8087EE4 + bl ScanlineEffect_SetParams add sp, 0x10 pop {r0} bx r0 @@ -5398,7 +5398,7 @@ sub_812AD50: @ 812AD50 _0812AD8C: .4byte 0xa2600001 _0812AD90: .4byte 0x04000014 _0812AD94: .4byte gUnknown_203B0E4 -_0812AD98: .4byte gUnknown_2038700 +_0812AD98: .4byte gScanlineEffectRegBuffers _0812AD9C: .4byte 0x010003c0 thumb_func_end sub_812AD50 @@ -5410,12 +5410,12 @@ sub_812ADA0: @ 812ADA0 lsrs r0, 16 mov r1, sp strh r0, [r1] - ldr r5, _0812ADE8 @ =gUnknown_2039600 + ldr r5, _0812ADE8 @ =gScanlineEffect ldrb r0, [r5, 0x14] lsls r1, r0, 4 subs r1, r0 lsls r1, 7 - ldr r4, _0812ADEC @ =gUnknown_2038700 + ldr r4, _0812ADEC @ =gScanlineEffectRegBuffers adds r1, r4 ldr r2, _0812ADF0 @ =0x01000090 mov r0, sp @@ -5439,8 +5439,8 @@ sub_812ADA0: @ 812ADA0 pop {r0} bx r0 .align 2, 0 -_0812ADE8: .4byte gUnknown_2039600 -_0812ADEC: .4byte gUnknown_2038700 +_0812ADE8: .4byte gScanlineEffect +_0812ADEC: .4byte gScanlineEffectRegBuffers _0812ADF0: .4byte 0x01000090 _0812ADF4: .4byte 0x01000010 thumb_func_end sub_812ADA0 @@ -5457,7 +5457,7 @@ sub_812ADF8: @ 812ADF8 lsrs r4, 16 mov r0, sp strh r4, [r0] - ldr r5, _0812AE64 @ =gUnknown_2038700 + ldr r5, _0812AE64 @ =gScanlineEffectRegBuffers ldr r0, _0812AE68 @ =0x01000090 mov r9, r0 mov r0, sp @@ -5498,7 +5498,7 @@ sub_812ADF8: @ 812ADF8 pop {r0} bx r0 .align 2, 0 -_0812AE64: .4byte gUnknown_2038700 +_0812AE64: .4byte gScanlineEffectRegBuffers _0812AE68: .4byte 0x01000090 _0812AE6C: .4byte 0x01000010 thumb_func_end sub_812ADF8 diff --git a/asm/unk_810C3A4.s b/asm/unk_810C3A4.s deleted file mode 100644 index e7e825483..000000000 --- a/asm/unk_810C3A4.s +++ /dev/null @@ -1,389 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_810C3A4 -sub_810C3A4: @ 810C3A4 - push {lr} - ldr r0, _0810C3B4 @ =sub_810C3B8 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810C3B4: .4byte sub_810C3B8 - thumb_func_end sub_810C3A4 - - thumb_func_start sub_810C3B8 -sub_810C3B8: @ 810C3B8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0810C43C @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0810C3E2 - bl walkrun_is_standing_still - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0810C3E2 - bl sub_805C270 - strh r4, [r5, 0x8] -_0810C3E2: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0810C41C - movs r4, 0 - ldr r7, _0810C440 @ =gMapObjects -_0810C3EE: - adds r0, r4, 0 - bl sub_810CF04 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810C412 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r7 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _0810C436 - adds r0, r1, 0 - bl FreezeMapObject -_0810C412: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0810C3EE -_0810C41C: - movs r0, 0x1 - strh r0, [r5, 0xA] - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0810C436 - adds r0, r6, 0 - bl DestroyTask - bl sub_805C780 - bl EnableBothScriptContexts -_0810C436: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C43C: .4byte gTasks -_0810C440: .4byte gMapObjects - thumb_func_end sub_810C3B8 - - thumb_func_start sub_810C444 -sub_810C444: @ 810C444 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r0, _0810C4E0 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 4 - adds r1, r0 - mov r8, r1 - movs r7, 0 - ldr r0, _0810C4E4 @ =gMapHeader - ldr r1, [r0, 0x4] - adds r2, r0, 0 - ldrb r1, [r1] - cmp r7, r1 - bcs _0810C4D2 -_0810C466: - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 3 - mov r1, r8 - adds r5, r0, r1 - ldrh r0, [r5, 0xC] - cmp r0, 0x1 - beq _0810C47A - cmp r0, 0x3 - bne _0810C4C4 -_0810C47A: - ldrb r0, [r5, 0x9] - subs r0, 0x4D - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _0810C4C4 - bl sub_810CF54 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r5] - ldr r1, _0810C4E0 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - mov r0, sp - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r2, _0810C4E8 @ =gMapObjects - adds r4, r1, r2 - bl sub_810CF04 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810C4C0 - adds r0, r4, 0 - adds r1, r6, 0 - bl npc_set_running_behaviour_etc -_0810C4C0: - strb r6, [r5, 0x9] - ldr r2, _0810C4E4 @ =gMapHeader -_0810C4C4: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, [r2, 0x4] - ldrb r0, [r0] - cmp r7, r0 - bcc _0810C466 -_0810C4D2: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C4E0: .4byte gSaveBlock1Ptr -_0810C4E4: .4byte gMapHeader -_0810C4E8: .4byte gMapObjects - thumb_func_end sub_810C444 - - thumb_func_start sub_810C4EC -sub_810C4EC: @ 810C4EC - push {r4-r7,lr} - movs r0, 0xB5 - lsls r0, 1 - movs r1, 0x1 - bl sub_8099F40 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810C516 - ldr r0, _0810C568 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r2, 0xC7 - lsls r2, 3 - adds r1, r0, r2 - ldrh r2, [r1] - ldrb r0, [r1] - cmp r0, 0x63 - bhi _0810C516 - adds r0, r2, 0x1 - strh r0, [r1] -_0810C516: - ldr r7, _0810C56C @ =0x00000801 - adds r0, r7, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810C570 - ldr r6, _0810C568 @ =gSaveBlock1Ptr - ldr r0, [r6] - movs r5, 0xC7 - lsls r5, 3 - adds r3, r0, r5 - ldrh r2, [r3] - lsrs r1, r2, 8 - movs r4, 0xFF - cmp r1, 0x63 - bhi _0810C548 - adds r1, 0x1 - lsls r1, 24 - movs r0, 0xFF - ands r0, r2 - lsrs r1, 16 - orrs r0, r1 - strh r0, [r3] -_0810C548: - ldr r0, [r6] - adds r0, r5 - ldrh r0, [r0] - lsrs r0, 8 - ands r0, r4 - cmp r0, 0x64 - bne _0810C570 - adds r0, r7, 0 - bl FlagClear - bl sub_810C640 - bl sub_810D0D0 - movs r0, 0x1 - b _0810C572 - .align 2, 0 -_0810C568: .4byte gSaveBlock1Ptr -_0810C56C: .4byte 0x00000801 -_0810C570: - movs r0, 0 -_0810C572: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C4EC - - thumb_func_start sub_810C578 -sub_810C578: @ 810C578 - push {lr} - ldr r0, _0810C590 @ =0x00000801 - bl FlagClear - bl sub_810C640 - bl sub_810D0D0 - bl sub_810C594 - pop {r0} - bx r0 - .align 2, 0 -_0810C590: .4byte 0x00000801 - thumb_func_end sub_810C578 - - thumb_func_start sub_810C594 -sub_810C594: @ 810C594 - push {r4-r7,lr} - movs r5, 0 - movs r6, 0 -_0810C59A: - lsls r0, r5, 3 - adds r0, r5 - lsls r0, 2 - ldr r1, _0810C5FC @ =gMapObjects - adds r4, r0, r1 - ldrb r0, [r4, 0x6] - subs r0, 0x4D - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _0810C5EA - bl sub_810CF54 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r4] - lsls r0, 31 - cmp r0, 0 - beq _0810C5EA - ldr r2, _0810C600 @ =gSprites - ldrb r0, [r4, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r7, 0x2E - ldrsh r0, [r1, r7] - cmp r0, r5 - bne _0810C5EA - strh r6, [r1, 0x24] - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x26] - adds r0, r4, 0 - adds r1, r3, 0 - bl npc_set_running_behaviour_etc -_0810C5EA: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _0810C59A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C5FC: .4byte gMapObjects -_0810C600: .4byte gSprites - thumb_func_end sub_810C594 - - thumb_func_start sub_810C604 -sub_810C604: @ 810C604 - ldr r0, _0810C61C @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0xC7 - lsls r0, 3 - adds r1, r0 - ldrh r2, [r1] - movs r0, 0xFF - lsls r0, 8 - ands r0, r2 - strh r0, [r1] - bx lr - .align 2, 0 -_0810C61C: .4byte gSaveBlock1Ptr - thumb_func_end sub_810C604 - - thumb_func_start sub_810C620 -sub_810C620: @ 810C620 - ldr r0, _0810C63C @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0xC7 - lsls r0, 3 - adds r2, r0 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - movs r1, 0x64 - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_0810C63C: .4byte gSaveBlock1Ptr - thumb_func_end sub_810C620 - - thumb_func_start sub_810C640 -sub_810C640: @ 810C640 - ldr r0, _0810C650 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 3 - adds r0, r1 - ldrb r1, [r0] - strh r1, [r0] - bx lr - .align 2, 0 -_0810C650: .4byte gSaveBlock1Ptr - thumb_func_end sub_810C640 - - thumb_func_start sub_810C654 -sub_810C654: @ 810C654 - ldr r0, _0810C66C @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0xC7 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - movs r3, 0xC8 - lsls r3, 7 - adds r2, r3, 0 - orrs r0, r2 - strh r0, [r1] - bx lr - .align 2, 0 -_0810C66C: .4byte gSaveBlock1Ptr - thumb_func_end sub_810C654 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_8159F40.s b/asm/unk_8159F40.s deleted file mode 100644 index aefa4ecff..000000000 --- a/asm/unk_8159F40.s +++ /dev/null @@ -1,1623 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8159F40 -sub_8159F40: @ 8159F40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r10, r0 - mov r9, r0 - ldr r1, _08159F90 @ =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 9 - str r0, [r1] - bl ZeroPlayerPartyMons - bl ZeroEnemyPartyMons - ldr r1, _08159F94 @ =gUnknown_84792D0 - ldr r0, _08159F98 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - mov r8, r0 - movs r7, 0 -_08159F72: - lsls r0, r7, 4 - mov r2, r8 - adds r1, r0, r2 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0 - bne _08159FA0 - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - ldr r0, _08159F9C @ =gPlayerParty - adds r6, r1, r0 - movs r0, 0x1 - add r10, r0 - b _08159FAE - .align 2, 0 -_08159F90: .4byte gBattleTypeFlags -_08159F94: .4byte gUnknown_84792D0 -_08159F98: .4byte gSpecialVar_0x8004 -_08159F9C: .4byte gPlayerParty -_08159FA0: - movs r0, 0x64 - mov r1, r9 - muls r1, r0 - ldr r0, _0815A004 @ =gEnemyParty - adds r6, r1, r0 - movs r2, 0x1 - add r9, r2 -_08159FAE: - mov r0, r8 - adds r3, r4, r0 - ldrh r1, [r3, 0x2] - ldrb r2, [r3, 0x1] - ldrb r0, [r3, 0xD] - str r0, [sp] - ldrb r0, [r3, 0xC] - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r6, 0 - movs r3, 0 - bl CreateMonWithGenderNatureLetter - movs r5, 0 - adds r7, 0x1 - mov r0, r8 - adds r0, 0x4 - adds r4, r0 -_08159FD4: - ldrh r1, [r4] - lsls r2, r5, 24 - lsrs r2, 24 - adds r0, r6, 0 - bl SetMonMoveSlot - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _08159FD4 - lsls r0, r7, 4 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08159F72 - 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 -_0815A004: .4byte gEnemyParty - thumb_func_end sub_8159F40 - - thumb_func_start sub_815A008 -sub_815A008: @ 815A008 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r1, 0 - mov r8, r1 - movs r6, 0x1 - movs r2, 0x2 - negs r2, r2 - mov r12, r2 - adds r5, r0, 0 - adds r5, 0x8 - movs r7, 0 - movs r0, 0x41 - negs r0, r0 - mov r10, r0 - movs r1, 0x7F - mov r9, r1 -_0815A02E: - ldr r2, _0815A1F4 @ =gMapObjects - adds r3, r7, r2 - ldrb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - ands r0, r6 - ldrb r2, [r5] - mov r1, r12 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3] - lsls r0, 28 - lsrs r0, 31 - ands r0, r6 - lsls r0, 1 - movs r2, 0x3 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5] - ldrb r0, [r3] - lsls r0, 27 - lsrs r0, 31 - ands r0, r6 - lsls r0, 2 - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3] - lsls r0, 26 - lsrs r0, 31 - ands r0, r6 - lsls r0, 3 - movs r2, 0x9 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 31 - lsrs r0, 31 - ands r0, r6 - lsls r0, 4 - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 30 - lsrs r0, 31 - ands r0, r6 - lsls r0, 5 - movs r2, 0x21 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 29 - lsrs r0, 31 - ands r0, r6 - lsls r0, 6 - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 28 - lsrs r0, 31 - lsls r0, 7 - mov r2, r9 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, 0x1] - lsls r0, 27 - lsrs r0, 31 - ands r0, r6 - ldrb r2, [r5, 0x1] - mov r1, r12 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 26 - lsrs r0, 31 - ands r0, r6 - lsls r0, 1 - movs r2, 0x3 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 25 - lsrs r0, 31 - ands r0, r6 - lsls r0, 2 - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x1] - lsrs r0, 7 - ands r0, r6 - lsls r0, 3 - movs r2, 0x9 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 31 - lsrs r0, 31 - ands r0, r6 - lsls r0, 4 - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x2] - lsrs r0, 7 - ands r0, r6 - lsls r0, 5 - movs r2, 0x21 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r3, 0x3] - lsls r0, 31 - lsrs r0, 31 - ands r0, r6 - lsls r0, 6 - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x3] - lsls r0, 30 - lsrs r0, 31 - lsls r0, 7 - mov r2, r9 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r3, 0x3] - lsls r0, 29 - lsrs r0, 31 - ands r0, r6 - ldrb r2, [r5, 0x2] - mov r1, r12 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x2] - ldrb r2, [r3, 0x18] - lsls r2, 28 - lsrs r2, 27 - movs r0, 0x1F - negs r0, r0 - ands r1, r0 - orrs r1, r2 - strb r1, [r5, 0x2] - ldrb r1, [r3, 0xB] - lsls r1, 28 - movs r4, 0xF - lsrs r1, 28 - ldrb r2, [r5, 0x3] - adds r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrb r1, [r3, 0xB] - lsrs r1, 4 - lsls r1, 4 - ands r0, r4 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrb r0, [r3, 0x5] - strb r0, [r5, 0x4] - ldrb r0, [r3, 0x6] - strb r0, [r5, 0x5] - ldrb r0, [r3, 0x7] - strb r0, [r5, 0x6] - ldrb r0, [r3, 0x8] - strb r0, [r5, 0x7] - ldrb r0, [r3, 0x9] - strb r0, [r5, 0x8] - ldrb r0, [r3, 0xA] - strb r0, [r5, 0x9] - ldrh r0, [r3, 0x10] - strh r0, [r5, 0xA] - ldrh r0, [r3, 0x12] - strh r0, [r5, 0xC] - ldrb r0, [r3, 0x1D] - strb r0, [r5, 0xE] - ldrb r0, [r3, 0x1F] - strb r0, [r5, 0xF] - adds r0, r3, 0 - adds r0, 0x21 - ldrb r0, [r0] - strb r0, [r5, 0x10] - adds r3, 0x22 - ldrb r0, [r3] - strb r0, [r5, 0x11] - adds r5, 0x14 - adds r7, 0x24 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0xF - bhi _0815A1E4 - b _0815A02E -_0815A1E4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815A1F4: .4byte gMapObjects - thumb_func_end sub_815A008 - - thumb_func_start sub_815A1F8 -sub_815A1F8: @ 815A1F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r1, [sp, 0x4] - adds r0, 0x8 - str r0, [sp, 0x8] - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r4, _0815A480 @ =gMapObjects - ldr r2, _0815A484 @ =0x01000120 - mov r0, sp - adds r1, r4, 0 - bl CpuSet - movs r0, 0 - mov r12, r0 - movs r1, 0x1 - mov r10, r1 -_0815A224: - mov r2, r12 - lsls r7, r2, 3 - adds r5, r7, r2 - lsls r5, 2 - ldr r0, _0815A480 @ =gMapObjects - adds r5, r0 - lsls r6, r2, 2 - add r6, r12 - lsls r6, 2 - ldr r1, [sp, 0x8] - adds r6, r1 - ldrb r0, [r6] - lsls r0, 31 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - ldrb r2, [r5] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r6] - lsls r0, 30 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - lsls r0, 3 - movs r2, 0x9 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5] - ldrb r0, [r6] - lsls r0, 29 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - lsls r0, 4 - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r6] - lsls r0, 28 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - lsls r0, 5 - movs r4, 0x21 - negs r4, r4 - ands r1, r4 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r6] - lsls r0, 27 - lsrs r0, 31 - ands r0, r2 - ldrb r1, [r5, 0x1] - movs r2, 0x2 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r6] - lsls r0, 26 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - mov r8, r1 - mov r3, r8 - ands r3, r2 - orrs r3, r0 - strb r3, [r5, 0x1] - ldrb r0, [r6] - lsls r0, 25 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - lsls r0, 2 - subs r1, 0x2 - mov r9, r1 - ands r1, r3 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r6] - lsrs r0, 7 - ands r0, r2 - lsls r0, 3 - movs r2, 0x9 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 31 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - lsls r0, 4 - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 30 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - lsls r0, 5 - ands r4, r1 - orrs r4, r0 - strb r4, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 29 - lsrs r0, 31 - ands r0, r2 - lsls r0, 6 - movs r2, 0x41 - negs r2, r2 - adds r1, r2, 0 - ands r4, r1 - orrs r4, r0 - strb r4, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 28 - lsrs r0, 31 - lsls r0, 7 - movs r3, 0x7F - ands r4, r3 - orrs r4, r0 - strb r4, [r5, 0x1] - ldrb r0, [r6, 0x1] - lsls r0, 27 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - ldrb r2, [r5, 0x2] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x2] - ldrb r0, [r6, 0x1] - lsls r0, 26 - lsrs r0, 31 - lsls r0, 7 - ands r1, r3 - orrs r1, r0 - strb r1, [r5, 0x2] - ldrb r0, [r6, 0x1] - lsls r0, 25 - lsrs r0, 31 - mov r2, r10 - ands r0, r2 - ldrb r2, [r5, 0x3] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x3] - ldrb r0, [r6, 0x1] - lsrs r0, 7 - mov r2, r10 - ands r0, r2 - lsls r0, 1 - mov r2, r8 - ands r2, r1 - orrs r2, r0 - mov r8, r2 - strb r2, [r5, 0x3] - ldrb r0, [r6, 0x2] - lsls r0, 31 - lsrs r0, 31 - mov r1, r10 - ands r0, r1 - lsls r0, 2 - mov r1, r9 - ands r2, r1 - orrs r2, r0 - strb r2, [r5, 0x3] - ldrb r1, [r6, 0x2] - lsls r1, 27 - lsrs r1, 28 - ldrb r2, [r5, 0x18] - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x18] - ldrb r1, [r6, 0x3] - lsls r1, 28 - movs r3, 0xF - lsrs r1, 28 - ldrb r2, [r5, 0xB] - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0xB] - ldrb r1, [r6, 0x3] - lsrs r1, 4 - lsls r1, 4 - ands r0, r3 - orrs r0, r1 - strb r0, [r5, 0xB] - ldrb r0, [r6, 0x4] - strb r0, [r5, 0x5] - ldrb r0, [r6, 0x5] - strb r0, [r5, 0x6] - ldrb r0, [r6, 0x6] - strb r0, [r5, 0x7] - ldrb r0, [r6, 0x7] - strb r0, [r5, 0x8] - ldrb r0, [r6, 0x8] - strb r0, [r5, 0x9] - ldrb r0, [r6, 0x9] - strb r0, [r5, 0xA] - ldrh r0, [r6, 0xA] - strh r0, [r5, 0x10] - ldrh r0, [r6, 0xC] - strh r0, [r5, 0x12] - ldrb r0, [r6, 0xE] - strb r0, [r5, 0x1D] - ldrb r0, [r6, 0xF] - strb r0, [r5, 0x1F] - ldrb r0, [r6, 0x10] - adds r1, r5, 0 - adds r1, 0x21 - strb r0, [r1] - ldrb r0, [r6, 0x11] - adds r1, 0x1 - strb r0, [r1] - movs r6, 0 - mov r8, r7 - mov r2, r12 - adds r2, 0x1 - str r2, [sp, 0xC] - ldrb r7, [r5, 0x8] - ldr r3, [sp, 0x4] - movs r0, 0xF - mov r9, r0 -_0815A412: - ldrb r1, [r3] - cmp r7, r1 - bne _0815A444 - ldrh r0, [r3, 0x4] - adds r0, 0x7 - strh r0, [r5, 0xC] - ldrh r0, [r3, 0x6] - adds r0, 0x7 - strh r0, [r5, 0xE] - ldrb r1, [r3, 0xA] - lsls r1, 28 - lsrs r1, 28 - mov r2, r9 - ands r1, r2 - ldrb r0, [r5, 0x19] - ands r0, r4 - orrs r0, r1 - strb r0, [r5, 0x19] - ldrb r1, [r3, 0xA] - lsrs r1, 4 - lsls r1, 4 - movs r2, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x19] -_0815A444: - adds r3, 0x18 - adds r6, 0x1 - cmp r6, 0x3F - bls _0815A412 - mov r0, r8 - add r0, r12 - lsls r0, 2 - ldr r1, _0815A480 @ =gMapObjects - adds r6, r0, r1 - movs r2, 0x10 - ldrsh r0, [r6, r2] - movs r2, 0x12 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - strb r0, [r6, 0x1E] - ldrb r4, [r6, 0x1F] - movs r1, 0x10 - ldrsh r0, [r6, r1] - movs r2, 0x12 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A488 - ldrh r0, [r6, 0x10] - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - b _0815A506 - .align 2, 0 -_0815A480: .4byte gMapObjects -_0815A484: .4byte 0x01000120 -_0815A488: - ldrb r4, [r6, 0x1F] - ldrh r0, [r6, 0x10] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A4A8 - ldrh r0, [r6, 0x10] - subs r0, 0x1 - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - b _0815A506 -_0815A4A8: - ldrb r4, [r6, 0x1F] - ldrh r0, [r6, 0x10] - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r6, r2] - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A4C8 - ldrh r0, [r6, 0x10] - adds r0, 0x1 - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - b _0815A506 -_0815A4C8: - ldrb r4, [r6, 0x1F] - movs r1, 0x10 - ldrsh r0, [r6, r1] - ldrh r1, [r6, 0x12] - subs r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A4E8 - ldrh r0, [r6, 0x10] - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - subs r0, 0x1 - b _0815A506 -_0815A4E8: - ldrb r4, [r6, 0x1F] - movs r2, 0x10 - ldrsh r0, [r6, r2] - ldrh r1, [r6, 0x12] - adds r1, 0x1 - lsls r1, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - cmp r4, r0 - bne _0815A508 - ldrh r0, [r6, 0x10] - strh r0, [r6, 0x14] - ldrh r0, [r6, 0x12] - adds r0, 0x1 -_0815A506: - strh r0, [r6, 0x16] -_0815A508: - ldr r0, [sp, 0xC] - mov r12, r0 - cmp r0, 0xF - bhi _0815A512 - b _0815A224 -_0815A512: - ldr r0, _0815A538 @ =gMapObjects - ldr r1, _0815A53C @ =gSaveBlock1Ptr - ldr r1, [r1] - movs r2, 0xD4 - lsls r2, 3 - adds r1, r2 - movs r2, 0x90 - lsls r2, 1 - bl CpuSet - 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 -_0815A538: .4byte gMapObjects -_0815A53C: .4byte gSaveBlock1Ptr - thumb_func_end sub_815A1F8 - - thumb_func_start sub_815A540 -sub_815A540: @ 815A540 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0815A5AC @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _0815A5A4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - bne _0815A5A4 - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0815A5A4 - ldr r0, _0815A5B0 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _0815A5B4 @ =gMapObjects - adds r4, r0 - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - ldrb r1, [r4, 0x1A] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815A5B8 @ =gSprites - adds r0, r1 - bl DestroySprite -_0815A5A4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815A5AC: .4byte gUnknown_203ADFA -_0815A5B0: .4byte gPlayerAvatar -_0815A5B4: .4byte gMapObjects -_0815A5B8: .4byte gSprites - thumb_func_end sub_815A540 - - thumb_func_start sub_815A5BC -sub_815A5BC: @ 815A5BC - push {lr} - sub sp, 0x8 - ldr r3, _0815A5E4 @ =0xffffff00 - ldr r1, [sp] - ands r1, r3 - movs r2, 0x1 - orrs r1, r2 - str r1, [sp] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp, 0x4] - ands r1, r3 - orrs r1, r0 - str r1, [sp, 0x4] - mov r0, sp - bl sub_80F9E2C - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0815A5E4: .4byte 0xffffff00 - thumb_func_end sub_815A5BC - - thumb_func_start sub_815A5E8 -sub_815A5E8: @ 815A5E8 - push {lr} - adds r2, r0, 0 - ldr r3, _0815A610 @ =gUnknown_3003ED0 - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0815A60A - lsls r0, r2, 4 - adds r1, r3, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x1 - beq _0815A614 -_0815A60A: - movs r0, 0 - b _0815A616 - .align 2, 0 -_0815A610: .4byte gUnknown_3003ED0 -_0815A614: - ldrb r0, [r1, 0x4] -_0815A616: - pop {r1} - bx r1 - thumb_func_end sub_815A5E8 - - thumb_func_start sub_815A61C -sub_815A61C: @ 815A61C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r4, [sp, 0x48] - lsls r4, 24 - str r4, [sp, 0x1C] - movs r4, 0x14 - adds r4, r0 - mov r9, r4 - mov r5, sp - movs r4, 0x2 - strb r4, [r5] - mov r10, sp - mov r5, r9 - ldrb r4, [r5, 0xB] - movs r7, 0xF - adds r5, r7, 0 - ands r5, r4 - mov r6, r10 - ldrb r6, [r6, 0x1] - mov r8, r6 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x1] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0xC] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x1] - ldrb r5, [r6, 0xD] - movs r6, 0xF - ands r5, r6 - mov r4, r10 - ldrb r4, [r4, 0x2] - mov r8, r4 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x2] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0xE] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x2] - ldrb r5, [r6, 0xF] - movs r6, 0xF - ands r5, r6 - mov r4, r10 - ldrb r4, [r4, 0x3] - mov r8, r4 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x3] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0x10] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x3] - ldrb r5, [r6, 0x11] - movs r6, 0xF - ands r5, r6 - mov r4, r10 - ldrb r4, [r4, 0x4] - mov r8, r4 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x4] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0x12] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x4] - ldrb r4, [r6, 0x13] - movs r6, 0xF - ands r4, r6 - mov r6, r8 - ldrb r5, [r6, 0x5] - movs r6, 0x10 - negs r6, r6 - ands r6, r5 - orrs r6, r4 - str r6, [sp, 0xC] - mov r4, r8 - strb r6, [r4, 0x5] - mov r5, sp - mov r6, r9 - ldrb r4, [r6, 0x14] - lsls r4, 4 - ldr r6, [sp, 0xC] - ands r6, r7 - orrs r6, r4 - strb r6, [r5, 0x5] - mov r7, sp - movs r4, 0x3 - mov r8, r4 - ldrb r0, [r0, 0x14] - mov r5, r8 - ands r0, r5 - ldrb r5, [r7, 0x6] - movs r6, 0x4 - negs r6, r6 - mov r10, r6 - mov r4, r10 - ands r4, r5 - orrs r4, r0 - strb r4, [r7, 0x6] - mov r5, r9 - ldrb r0, [r5, 0x1] - mov r6, r8 - ands r0, r6 - lsls r0, 2 - movs r5, 0xD - negs r5, r5 - ands r5, r4 - orrs r5, r0 - strb r5, [r7, 0x6] - mov r0, r9 - ldrb r4, [r0, 0x2] - ands r4, r6 - lsls r4, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r5 - orrs r0, r4 - strb r0, [r7, 0x6] - mov r5, sp - mov r6, r9 - ldrb r4, [r6, 0x3] - lsls r4, 6 - movs r6, 0x3F - ands r0, r6 - orrs r0, r4 - strb r0, [r5, 0x6] - mov r4, r9 - ldrb r0, [r4, 0x4] - mov r5, r8 - ands r0, r5 - ldrb r5, [r7, 0x7] - mov r4, r10 - ands r4, r5 - orrs r4, r0 - strb r4, [r7, 0x7] - mov r6, r9 - ldrb r0, [r6, 0x5] - mov r5, r8 - ands r0, r5 - lsls r0, 2 - movs r5, 0xD - negs r5, r5 - ands r5, r4 - orrs r5, r0 - strb r5, [r7, 0x7] - ldrb r4, [r6, 0x6] - mov r6, r8 - ands r4, r6 - lsls r4, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r5 - orrs r0, r4 - strb r0, [r7, 0x7] - mov r5, sp - mov r6, r9 - ldrb r4, [r6, 0x7] - lsls r4, 6 - movs r6, 0x3F - ands r0, r6 - orrs r0, r4 - strb r0, [r5, 0x7] - mov r8, sp - mov r0, r9 - ldrb r4, [r0, 0x8] - movs r7, 0x3 - adds r0, r7, 0 - ands r0, r4 - mov r4, r8 - ldrb r5, [r4, 0x8] - mov r4, r10 - ands r4, r5 - orrs r4, r0 - mov r5, r8 - strb r4, [r5, 0x8] - mov r6, r9 - ldrb r5, [r6, 0x9] - adds r0, r7, 0 - ands r0, r5 - lsls r0, 2 - movs r5, 0xD - negs r5, r5 - ands r5, r4 - orrs r5, r0 - mov r0, r8 - strb r5, [r0, 0x8] - ldrb r0, [r1] - adds r4, r7, 0 - ands r4, r0 - lsls r4, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r5 - orrs r0, r4 - mov r4, r8 - strb r0, [r4, 0x8] - mov r5, sp - ldrb r4, [r2] - lsls r4, 6 - movs r6, 0x3F - ands r0, r6 - orrs r0, r4 - strb r0, [r5, 0x8] - ldrb r4, [r3] - adds r0, r7, 0 - ands r0, r4 - ldrb r4, [r5, 0x9] - mov r6, r10 - ands r6, r4 - orrs r6, r0 - mov r10, r6 - strb r6, [r5, 0x9] - ldr r0, [sp, 0x40] - ldrb r4, [r0] - adds r0, r7, 0 - ands r0, r4 - lsls r0, 2 - movs r4, 0xD - negs r4, r4 - ands r6, r4 - orrs r6, r0 - str r6, [sp, 0x10] - strb r6, [r5, 0x9] - mov r4, sp - ldr r5, [sp, 0x44] - ldrb r0, [r5] - adds r6, r7, 0 - ands r6, r0 - lsls r0, r6, 4 - subs r7, 0x34 - ldr r5, [sp, 0x10] - ands r7, r5 - orrs r7, r0 - strb r7, [r4, 0x9] - mov r5, sp - ldrb r0, [r1, 0x4] - movs r6, 0x1 - mov r12, r6 - mov r4, r12 - ands r4, r0 - lsls r4, 6 - movs r0, 0x41 - negs r0, r0 - mov r10, r0 - ands r0, r7 - orrs r0, r4 - strb r0, [r5, 0x9] - ldrb r4, [r2, 0x4] - lsls r4, 7 - movs r5, 0x7F - ands r0, r5 - orrs r0, r4 - mov r4, r8 - strb r0, [r4, 0x9] - ldrb r4, [r3, 0x4] - mov r0, r12 - ands r0, r4 - mov r5, r8 - ldrb r4, [r5, 0xA] - movs r7, 0x2 - negs r7, r7 - adds r5, r7, 0 - ands r5, r4 - orrs r5, r0 - mov r6, r8 - strb r5, [r6, 0xA] - mov r9, sp - ldr r4, [sp, 0x40] - ldrb r0, [r4, 0x4] - mov r4, r12 - ands r4, r0 - lsls r4, 1 - movs r6, 0x3 - negs r6, r6 - mov r8, r6 - mov r0, r8 - ands r0, r5 - orrs r0, r4 - mov r4, r9 - strb r0, [r4, 0xA] - ldr r6, [sp, 0x44] - ldrb r5, [r6, 0x4] - mov r4, r12 - ands r4, r5 - lsls r4, 2 - movs r5, 0x5 - negs r5, r5 - ands r0, r5 - orrs r0, r4 - mov r4, r9 - strb r0, [r4, 0xA] - mov r4, sp - ldrb r1, [r1, 0x8] - mov r0, r12 - ands r0, r1 - lsls r0, 2 - ldrb r1, [r4, 0xB] - ands r5, r1 - orrs r5, r0 - strb r5, [r4, 0xB] - ldrb r1, [r2, 0x8] - mov r0, r12 - ands r0, r1 - lsls r0, 3 - movs r1, 0x9 - negs r1, r1 - ands r1, r5 - orrs r1, r0 - strb r1, [r4, 0xB] - ldrb r2, [r3, 0x8] - mov r0, r12 - ands r0, r2 - lsls r0, 4 - movs r2, 0x11 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0xB] - mov r3, sp - ldr r5, [sp, 0x40] - ldrb r0, [r5, 0x8] - mov r1, r12 - ands r1, r0 - lsls r1, 5 - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0xB] - mov r2, sp - ldrb r1, [r6, 0x8] - mov r6, r12 - ands r6, r1 - lsls r1, r6, 6 - mov r3, r10 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0xB] - ldr r4, [sp, 0x1C] - lsrs r3, r4, 21 - ldrb r1, [r2, 0xA] - movs r0, 0x7 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0xA] - mov r1, sp - ldr r5, [sp, 0x4C] - movs r6, 0x1 - ands r5, r6 - lsls r2, r5, 1 - ldrb r0, [r1, 0xB] - mov r3, r8 - ands r3, r0 - orrs r3, r2 - mov r8, r3 - strb r3, [r1, 0xB] - mov r0, sp - ldr r4, [sp, 0x50] - ands r4, r6 - mov r5, r8 - ands r5, r7 - orrs r5, r4 - strb r5, [r0, 0xB] - bl sub_80F9E2C - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815A61C - - thumb_func_start sub_815A950 -sub_815A950: @ 815A950 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r0, [sp, 0x1C] - mov r12, r0 - ldr r1, [sp, 0x20] - mov r8, r1 - ldr r0, [sp, 0x24] - mov r9, r0 - adds r2, r7, 0 - adds r2, 0x14 - ldr r4, _0815A98C @ =gUnknown_3003ED0 - ldrh r0, [r4] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0815A988 - adds r3, r4, 0x2 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _0815A990 -_0815A988: - movs r0, 0 - b _0815AACA - .align 2, 0 -_0815A98C: .4byte gUnknown_3003ED0 -_0815A990: - ldrb r0, [r3, 0x1] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0xB] - ldrb r0, [r3, 0x1] - lsrs r0, 4 - strb r0, [r2, 0xC] - ldrb r0, [r3, 0x2] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0xD] - ldrb r0, [r3, 0x2] - lsrs r0, 4 - strb r0, [r2, 0xE] - ldrb r0, [r3, 0x3] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0xF] - ldrb r0, [r3, 0x3] - lsrs r0, 4 - strb r0, [r2, 0x10] - ldrb r0, [r3, 0x4] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0x11] - ldrb r0, [r3, 0x4] - lsrs r0, 4 - strb r0, [r2, 0x12] - ldrb r0, [r3, 0x5] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0x13] - ldrb r0, [r3, 0x5] - lsrs r0, 4 - strb r0, [r2, 0x14] - ldrb r0, [r3, 0x1] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0x15] - ldrb r0, [r3, 0x6] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r7, 0x14] - ldrb r0, [r3, 0x6] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r2, 0x1] - ldrb r0, [r3, 0x6] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r2, 0x2] - ldrb r0, [r3, 0x6] - lsrs r0, 6 - strb r0, [r2, 0x3] - ldrb r0, [r3, 0x7] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r2, 0x4] - ldrb r0, [r3, 0x7] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r2, 0x5] - ldrb r0, [r3, 0x7] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r2, 0x6] - ldrb r0, [r3, 0x7] - lsrs r0, 6 - strb r0, [r2, 0x7] - ldrb r0, [r3, 0x8] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r2, 0x8] - ldrb r0, [r3, 0x8] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r2, 0x9] - ldrb r0, [r3, 0x6] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r2, 0xA] - ldrb r0, [r3, 0x8] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r5] - ldrb r0, [r3, 0x9] - lsls r0, 25 - lsrs r0, 31 - strb r0, [r5, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 29 - lsrs r0, 31 - strb r0, [r5, 0x8] - ldrb r0, [r3, 0x8] - lsrs r0, 6 - strb r0, [r6] - ldrb r0, [r3, 0x9] - lsrs r0, 7 - strb r0, [r6, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 28 - lsrs r0, 31 - strb r0, [r6, 0x8] - ldrb r0, [r3, 0x9] - lsls r0, 30 - lsrs r0, 30 - mov r1, r12 - strb r0, [r1] - ldrb r0, [r3, 0xA] - lsls r0, 31 - lsrs r0, 31 - strb r0, [r1, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 27 - lsrs r0, 31 - strb r0, [r1, 0x8] - ldrb r0, [r3, 0x9] - lsls r0, 28 - lsrs r0, 30 - mov r1, r8 - strb r0, [r1] - ldrb r0, [r3, 0xA] - lsls r0, 30 - lsrs r0, 31 - strb r0, [r1, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 26 - lsrs r0, 31 - strb r0, [r1, 0x8] - ldrb r0, [r3, 0x9] - lsls r0, 26 - lsrs r0, 30 - mov r1, r9 - strb r0, [r1] - ldrb r0, [r3, 0xA] - lsls r0, 29 - lsrs r0, 31 - strb r0, [r1, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 25 - lsrs r0, 31 - strb r0, [r1, 0x8] - ldrb r0, [r3, 0xA] - lsrs r0, 3 - ldr r1, [sp, 0x28] - strb r0, [r1] - ldrb r0, [r3, 0xB] - lsls r0, 30 - lsrs r0, 31 - ldr r1, [sp, 0x2C] - str r0, [r1] - ldrb r0, [r3, 0xB] - lsls r0, 31 - lsrs r0, 31 - ldr r1, [sp, 0x30] - str r0, [r1] - movs r0, 0x1 -_0815AACA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_815A950 - - thumb_func_start sub_815AAD8 -sub_815AAD8: @ 815AAD8 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0815AB00 @ =0xffffff00 - ldr r1, [sp] - ands r1, r3 - movs r2, 0x3 - orrs r1, r2 - str r1, [sp] - ldr r1, [sp, 0x4] - ands r1, r3 - orrs r1, r0 - str r1, [sp, 0x4] - mov r0, sp - bl sub_80F9E2C - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0815AB00: .4byte 0xffffff00 - thumb_func_end sub_815AAD8 - - thumb_func_start sub_815AB04 -sub_815AB04: @ 815AB04 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldr r3, _0815AB2C @ =gUnknown_3003ED0 - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0815AB28 - lsls r0, r2, 4 - adds r1, r3, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x3 - beq _0815AB30 -_0815AB28: - movs r0, 0 - b _0815AB36 - .align 2, 0 -_0815AB2C: .4byte gUnknown_3003ED0 -_0815AB30: - ldrb r0, [r1, 0x4] - strb r0, [r4] - movs r0, 0x1 -_0815AB36: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_815AB04 - - thumb_func_start sub_815AB3C -sub_815AB3C: @ 815AB3C - push {lr} - sub sp, 0x8 - ldr r2, _0815AB5C @ =0xffffff00 - ldr r1, [sp] - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - str r1, [sp] - str r0, [sp, 0x4] - mov r0, sp - bl sub_80F9E2C - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0815AB5C: .4byte 0xffffff00 - thumb_func_end sub_815AB3C - - thumb_func_start sub_815AB60 -sub_815AB60: @ 815AB60 - push {lr} - adds r2, r0, 0 - ldr r3, _0815AB88 @ =gUnknown_3003ED0 - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0815AB82 - lsls r0, r2, 4 - adds r1, r3, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x4 - beq _0815AB8C -_0815AB82: - movs r0, 0 - b _0815AB8E - .align 2, 0 -_0815AB88: .4byte gUnknown_3003ED0 -_0815AB8C: - ldr r0, [r1, 0x4] -_0815AB8E: - pop {r1} - bx r1 - thumb_func_end sub_815AB60 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_815C27C.s b/asm/unk_815C27C.s deleted file mode 100644 index 067ab8659..000000000 --- a/asm/unk_815C27C.s +++ /dev/null @@ -1,920 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815C27C -sub_815C27C: @ 815C27C - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - bl sub_815C8C8 - movs r7, 0x2 - ldr r4, _0815C2BC @ =gUnknown_3003F84 -_0815C28C: - bl sub_815C898 - ldr r0, _0815C2C0 @ =gUnknown_3002062 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0815C29E - strb r7, [r4] -_0815C29E: - movs r0, 0x1 - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0 - bl sub_815C498 - adds r1, r0, 0 - ldr r0, _0815C2C4 @ =gUnknown_3002064 - strh r1, [r0] - movs r0, 0x13 - ands r0, r1 - cmp r0, 0x10 - bne _0815C2C8 - movs r4, 0 - b _0815C2EA - .align 2, 0 -_0815C2BC: .4byte gUnknown_3003F84 -_0815C2C0: .4byte gUnknown_3002062 -_0815C2C4: .4byte gUnknown_3002064 -_0815C2C8: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0815C2D4 - movs r4, 0x1 - b _0815C2EA -_0815C2D4: - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0815C2E8 - strb r0, [r4] - bl VBlankIntrWait - b _0815C28C -_0815C2E8: - movs r4, 0x2 -_0815C2EA: - movs r0, 0 - str r0, [sp] - ldr r1, _0815C308 @ =gUnknown_3002048 - ldr r2, _0815C30C @ =0x05000006 - mov r0, sp - bl CpuSet - bl sub_815C91C - adds r0, r4, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0815C308: .4byte gUnknown_3002048 -_0815C30C: .4byte 0x05000006 - thumb_func_end sub_815C27C - - thumb_func_start sub_815C310 -sub_815C310: @ 815C310 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_815C8C8 - movs r6, 0x2 - ldr r4, _0815C350 @ =gUnknown_3003F84 -_0815C31E: - bl sub_815C898 - ldr r0, _0815C354 @ =gUnknown_3002062 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0815C330 - strb r6, [r4] -_0815C330: - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_815C498 - adds r1, r0, 0 - ldr r0, _0815C358 @ =gUnknown_3002064 - strh r1, [r0] - movs r0, 0x13 - ands r0, r1 - cmp r0, 0x10 - bne _0815C35C - movs r4, 0 - b _0815C37E - .align 2, 0 -_0815C350: .4byte gUnknown_3003F84 -_0815C354: .4byte gUnknown_3002062 -_0815C358: .4byte gUnknown_3002064 -_0815C35C: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0815C368 - movs r4, 0x1 - b _0815C37E -_0815C368: - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0815C37C - strb r0, [r4] - bl VBlankIntrWait - b _0815C31E -_0815C37C: - movs r4, 0x2 -_0815C37E: - movs r0, 0 - str r0, [sp] - ldr r1, _0815C39C @ =gUnknown_3002048 - ldr r2, _0815C3A0 @ =0x05000006 - mov r0, sp - bl CpuSet - bl sub_815C91C - adds r0, r4, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0815C39C: .4byte gUnknown_3002048 -_0815C3A0: .4byte 0x05000006 - thumb_func_end sub_815C310 - - thumb_func_start sub_815C3A4 -sub_815C3A4: @ 815C3A4 - push {r4,lr} - ldr r4, _0815C3D0 @ =0x04000208 - movs r3, 0 - strh r3, [r4] - ldr r2, _0815C3D4 @ =0x04000200 - ldrh r1, [r2] - ldr r0, _0815C3D8 @ =0x0000ff3f - ands r0, r1 - strh r0, [r2] - movs r0, 0x1 - strh r0, [r4] - ldr r0, _0815C3DC @ =0x04000128 - strh r3, [r0] - subs r0, 0x1A - strh r3, [r0] - ldr r1, _0815C3E0 @ =0x04000202 - movs r0, 0xC0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815C3D0: .4byte 0x04000208 -_0815C3D4: .4byte 0x04000200 -_0815C3D8: .4byte 0x0000ff3f -_0815C3DC: .4byte 0x04000128 -_0815C3E0: .4byte 0x04000202 - thumb_func_end sub_815C3A4 - - thumb_func_start sub_815C3E4 -sub_815C3E4: @ 815C3E4 - push {r4-r7,lr} - sub sp, 0x4 - ldr r5, _0815C43C @ =0x04000208 - movs r4, 0 - strh r4, [r5] - ldr r3, _0815C440 @ =0x04000200 - ldrh r1, [r3] - ldr r0, _0815C444 @ =0x0000ff3f - ands r0, r1 - strh r0, [r3] - movs r6, 0x1 - strh r6, [r5] - ldr r0, _0815C448 @ =0x04000134 - strh r4, [r0] - ldr r2, _0815C44C @ =0x04000128 - movs r1, 0x80 - lsls r1, 6 - adds r0, r1, 0 - strh r0, [r2] - ldrh r0, [r2] - ldr r7, _0815C450 @ =0x00004003 - adds r1, r7, 0 - orrs r0, r1 - strh r0, [r2] - strh r4, [r5] - ldrh r0, [r3] - movs r1, 0x80 - orrs r0, r1 - strh r0, [r3] - strh r6, [r5] - ldr r1, _0815C454 @ =gUnknown_3002048 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0815C432 - str r0, [sp] - ldr r2, _0815C458 @ =0x05000006 - mov r0, sp - bl CpuSet -_0815C432: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815C43C: .4byte 0x04000208 -_0815C440: .4byte 0x04000200 -_0815C444: .4byte 0x0000ff3f -_0815C448: .4byte 0x04000134 -_0815C44C: .4byte 0x04000128 -_0815C450: .4byte 0x00004003 -_0815C454: .4byte gUnknown_3002048 -_0815C458: .4byte 0x05000006 - thumb_func_end sub_815C3E4 - - thumb_func_start sub_815C45C -sub_815C45C: @ 815C45C - ldr r0, _0815C484 @ =0x04000134 - movs r3, 0 - strh r3, [r0] - ldr r2, _0815C488 @ =0x04000128 - movs r1, 0xA0 - lsls r1, 7 - adds r0, r1, 0 - strh r0, [r2] - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0815C48C @ =gUnknown_3003F84 - strb r3, [r0] - ldr r0, _0815C490 @ =gUnknown_3002066 - strh r3, [r0] - ldr r1, _0815C494 @ =gUnknown_3002068 - movs r0, 0 - str r0, [r1] - bx lr - .align 2, 0 -_0815C484: .4byte 0x04000134 -_0815C488: .4byte 0x04000128 -_0815C48C: .4byte gUnknown_3003F84 -_0815C490: .4byte gUnknown_3002066 -_0815C494: .4byte gUnknown_3002068 - thumb_func_end sub_815C45C - - thumb_func_start sub_815C498 -sub_815C498: @ 815C498 - push {r4-r6,lr} - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0815C4B8 @ =gUnknown_3002048 - ldrb r0, [r0, 0x1] - cmp r0, 0x6 - bls _0815C4AE - b _0815C5F4 -_0815C4AE: - lsls r0, 2 - ldr r1, _0815C4BC @ =_0815C4C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815C4B8: .4byte gUnknown_3002048 -_0815C4BC: .4byte _0815C4C0 - .align 2, 0 -_0815C4C0: - .4byte _0815C4DC - .4byte _0815C4F0 - .4byte _0815C510 - .4byte _0815C524 - .4byte _0815C59C - .4byte _0815C5AC - .4byte _0815C5E4 -_0815C4DC: - bl sub_815C3E4 - ldr r1, _0815C4EC @ =gUnknown_3002048 - movs r0, 0x1 - strb r0, [r1, 0x2] - strb r0, [r1, 0x1] - b _0815C5F4 - .align 2, 0 -_0815C4EC: .4byte gUnknown_3002048 -_0815C4F0: - adds r0, r2, 0 - bl sub_815C610 - lsls r0, 16 - cmp r0, 0 - beq _0815C500 - bl sub_815C864 -_0815C500: - ldr r0, _0815C50C @ =gUnknown_3003F84 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0815C50A - b _0815C5F4 -_0815C50A: - b _0815C52C - .align 2, 0 -_0815C50C: .4byte gUnknown_3003F84 -_0815C510: - bl sub_815C45C - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_815C644 - ldr r1, _0815C538 @ =gUnknown_3002048 - movs r0, 0x3 - strb r0, [r1, 0x1] -_0815C524: - ldr r0, _0815C53C @ =gUnknown_3003F84 - ldrb r0, [r0] - cmp r0, 0x2 - bne _0815C540 -_0815C52C: - ldr r1, _0815C538 @ =gUnknown_3002048 - strb r0, [r1, 0x4] - movs r0, 0x6 - strb r0, [r1, 0x1] - b _0815C5F4 - .align 2, 0 -_0815C538: .4byte gUnknown_3002048 -_0815C53C: .4byte gUnknown_3003F84 -_0815C540: - ldr r2, _0815C580 @ =gUnknown_3002066 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldr r1, _0815C584 @ =gUnknown_3002068 - ldr r0, [r1] - adds r3, r0, 0x1 - str r3, [r1] - ldr r1, _0815C588 @ =gUnknown_3002048 - ldrb r0, [r1] - cmp r0, 0 - bne _0815C564 - cmp r3, 0x3C - bls _0815C564 - movs r0, 0x1 - strb r0, [r1, 0x4] - movs r0, 0x6 - strb r0, [r1, 0x1] -_0815C564: - ldr r4, _0815C588 @ =gUnknown_3002048 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _0815C5F4 - ldrb r0, [r4] - cmp r0, 0 - beq _0815C58C - ldrh r0, [r2] - cmp r0, 0x2 - bls _0815C58C - bl sub_815C864 - movs r0, 0x2 - b _0815C5F2 - .align 2, 0 -_0815C580: .4byte gUnknown_3002066 -_0815C584: .4byte gUnknown_3002068 -_0815C588: .4byte gUnknown_3002048 -_0815C58C: - bl sub_815C864 - ldr r1, _0815C598 @ =gUnknown_3002048 - movs r0, 0x2 - strb r0, [r1, 0x2] - b _0815C5F4 - .align 2, 0 -_0815C598: .4byte gUnknown_3002048 -_0815C59C: - bl sub_815C3E4 - ldr r1, _0815C5A8 @ =gUnknown_3002048 - movs r0, 0x5 - strb r0, [r1, 0x1] - b _0815C5F4 - .align 2, 0 -_0815C5A8: .4byte gUnknown_3002048 -_0815C5AC: - ldr r0, _0815C5DC @ =gUnknown_3002048 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0815C5C0 - ldr r0, _0815C5E0 @ =gUnknown_3002066 - ldrh r0, [r0] - cmp r0, 0x2 - bls _0815C5C0 - bl sub_815C864 -_0815C5C0: - ldr r1, _0815C5E0 @ =gUnknown_3002066 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3C - bls _0815C5F4 - ldr r0, _0815C5DC @ =gUnknown_3002048 - movs r1, 0x1 - strb r1, [r0, 0x4] - movs r1, 0x6 - strb r1, [r0, 0x1] - b _0815C5F4 - .align 2, 0 -_0815C5DC: .4byte gUnknown_3002048 -_0815C5E0: .4byte gUnknown_3002066 -_0815C5E4: - ldr r4, _0815C60C @ =gUnknown_3002048 - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _0815C5F4 - bl sub_815C3A4 - movs r0, 0 -_0815C5F2: - strb r0, [r4, 0x2] -_0815C5F4: - ldr r2, _0815C60C @ =gUnknown_3002048 - ldrb r0, [r2, 0x2] - ldrb r1, [r2, 0x4] - lsls r1, 2 - orrs r0, r1 - ldrb r1, [r2, 0x3] - lsls r1, 4 - orrs r0, r1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0815C60C: .4byte gUnknown_3002048 - thumb_func_end sub_815C498 - - thumb_func_start sub_815C610 -sub_815C610: @ 815C610 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0815C62C @ =0x04000128 - ldr r0, [r0] - movs r1, 0xC - ands r0, r1 - cmp r0, 0x8 - bne _0815C634 - cmp r2, 0 - beq _0815C634 - ldr r1, _0815C630 @ =gUnknown_3002048 - movs r0, 0x1 - b _0815C638 - .align 2, 0 -_0815C62C: .4byte 0x04000128 -_0815C630: .4byte gUnknown_3002048 -_0815C634: - ldr r1, _0815C640 @ =gUnknown_3002048 - movs r0, 0 -_0815C638: - strb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0815C640: .4byte gUnknown_3002048 - thumb_func_end sub_815C610 - - thumb_func_start sub_815C644 -sub_815C644: @ 815C644 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r3, _0815C670 @ =gUnknown_3002048 - ldrb r0, [r3] - cmp r0, 0 - beq _0815C67C - ldr r2, _0815C674 @ =0x04000128 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - str r5, [r3, 0x8] - ldr r0, _0815C678 @ =0x04000120 - str r4, [r0] - lsrs r0, r4, 2 - adds r0, 0x1 - str r0, [r3, 0x10] - bl sub_815C690 - b _0815C684 - .align 2, 0 -_0815C670: .4byte gUnknown_3002048 -_0815C674: .4byte 0x04000128 -_0815C678: .4byte 0x04000120 -_0815C67C: - ldr r1, _0815C68C @ =0x04000128 - ldrh r0, [r1] - strh r0, [r1] - str r2, [r3, 0x8] -_0815C684: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815C68C: .4byte 0x04000128 - thumb_func_end sub_815C644 - - thumb_func_start sub_815C690 -sub_815C690: @ 815C690 - ldr r1, _0815C6B4 @ =0x0400010c - ldr r2, _0815C6B8 @ =0x0000fda7 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0815C6BC @ =0x0400010e - movs r2, 0x40 - strh r2, [r0] - ldr r3, _0815C6C0 @ =0x04000208 - movs r0, 0 - strh r0, [r3] - adds r1, 0xF4 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - movs r0, 0x1 - strh r0, [r3] - bx lr - .align 2, 0 -_0815C6B4: .4byte 0x0400010c -_0815C6B8: .4byte 0x0000fda7 -_0815C6BC: .4byte 0x0400010e -_0815C6C0: .4byte 0x04000208 - thumb_func_end sub_815C690 - - thumb_func_start sub_815C6C4 -sub_815C6C4: @ 815C6C4 - push {lr} - bl sub_815C874 - bl sub_815C864 - pop {r0} - bx r0 - thumb_func_end sub_815C6C4 - - thumb_func_start sub_815C6D4 -sub_815C6D4: @ 815C6D4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r2, _0815C6EC @ =gUnknown_3002048 - ldrb r0, [r2, 0x1] - adds r3, r2, 0 - cmp r0, 0x3 - beq _0815C75C - cmp r0, 0x3 - bgt _0815C6F0 - cmp r0, 0x1 - beq _0815C6F8 - b _0815C852 - .align 2, 0 -_0815C6EC: .4byte gUnknown_3002048 -_0815C6F0: - cmp r0, 0x5 - bne _0815C6F6 - b _0815C824 -_0815C6F6: - b _0815C852 -_0815C6F8: - ldr r1, _0815C728 @ =0x0400012a - ldr r2, _0815C72C @ =0x0000ccd0 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0815C730 @ =0x04000120 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r4, 0 - ldr r6, _0815C72C @ =0x0000ccd0 - ldr r5, _0815C734 @ =0x0000ffff -_0815C714: - lsls r0, r1, 1 - add r0, sp - ldrh r0, [r0] - cmp r0, r6 - bne _0815C738 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - b _0815C742 - .align 2, 0 -_0815C728: .4byte 0x0400012a -_0815C72C: .4byte 0x0000ccd0 -_0815C730: .4byte 0x04000120 -_0815C734: .4byte 0x0000ffff -_0815C738: - cmp r0, r5 - beq _0815C742 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_0815C742: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _0815C714 - cmp r2, 0x2 - beq _0815C752 - b _0815C852 -_0815C752: - cmp r4, 0 - beq _0815C758 - b _0815C852 -_0815C758: - strb r2, [r3, 0x1] - b _0815C852 -_0815C75C: - ldr r0, _0815C798 @ =0x04000120 - ldr r4, [r0] - ldr r0, [r2, 0xC] - cmp r0, 0 - bne _0815C772 - ldrb r0, [r2] - cmp r0, 0 - bne _0815C772 - lsrs r0, r4, 2 - adds r0, 0x1 - str r0, [r2, 0x10] -_0815C772: - ldrb r0, [r3] - cmp r0, 0x1 - bne _0815C7A8 - ldr r1, [r3, 0xC] - ldr r0, [r3, 0x10] - cmp r1, r0 - bge _0815C79C - ldr r2, _0815C798 @ =0x04000120 - ldr r0, [r3, 0x8] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - ldr r0, [r3, 0x14] - ldr r1, [r1] - adds r0, r1 - str r0, [r3, 0x14] - b _0815C7E2 - .align 2, 0 -_0815C798: .4byte 0x04000120 -_0815C79C: - ldr r1, _0815C7A4 @ =0x04000120 - ldr r0, [r3, 0x14] - b _0815C7E0 - .align 2, 0 -_0815C7A4: .4byte 0x04000120 -_0815C7A8: - ldr r1, [r3, 0xC] - cmp r1, 0 - ble _0815C7C8 - ldr r0, [r3, 0x10] - adds r0, 0x1 - cmp r1, r0 - bge _0815C7C8 - ldr r0, [r3, 0x8] - lsls r1, 2 - adds r1, r0 - subs r1, 0x4 - str r4, [r1] - ldr r0, [r3, 0x14] - adds r0, r4 - str r0, [r3, 0x14] - b _0815C7DC -_0815C7C8: - ldr r0, [r3, 0xC] - cmp r0, 0 - beq _0815C7DC - ldr r0, [r3, 0x14] - cmp r0, r4 - bne _0815C7D8 - movs r0, 0x1 - b _0815C7DA -_0815C7D8: - movs r0, 0x2 -_0815C7DA: - strb r0, [r3, 0x3] -_0815C7DC: - ldr r1, _0815C804 @ =gUnknown_3002068 - movs r0, 0 -_0815C7E0: - str r0, [r1] -_0815C7E2: - ldr r1, [r3, 0xC] - adds r1, 0x1 - str r1, [r3, 0xC] - ldr r0, [r3, 0x10] - adds r0, 0x2 - cmp r1, r0 - bge _0815C812 - ldrb r0, [r3] - cmp r0, 0 - beq _0815C80C - ldr r0, _0815C808 @ =0x0400010e - ldrh r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strh r1, [r0] - b _0815C852 - .align 2, 0 -_0815C804: .4byte gUnknown_3002068 -_0815C808: .4byte 0x0400010e -_0815C80C: - bl sub_815C864 - b _0815C852 -_0815C812: - movs r0, 0 - movs r1, 0x4 - strb r1, [r3, 0x1] - ldr r1, _0815C820 @ =gUnknown_3002066 - strh r0, [r1] - b _0815C852 - .align 2, 0 -_0815C820: .4byte gUnknown_3002066 -_0815C824: - ldrb r3, [r2] - cmp r3, 0 - bne _0815C830 - ldr r1, _0815C85C @ =0x0400012a - ldrb r0, [r2, 0x3] - strh r0, [r1] -_0815C830: - ldr r0, _0815C860 @ =0x04000120 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - ldrh r1, [r0, 0x2] - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0815C852 - cmp r3, 0x1 - bne _0815C84E - strb r1, [r2, 0x3] -_0815C84E: - movs r0, 0x6 - strb r0, [r2, 0x1] -_0815C852: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815C85C: .4byte 0x0400012a -_0815C860: .4byte 0x04000120 - thumb_func_end sub_815C6D4 - - thumb_func_start sub_815C864 -sub_815C864: @ 815C864 - ldr r0, _0815C870 @ =0x04000128 - ldrh r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_0815C870: .4byte 0x04000128 - thumb_func_end sub_815C864 - - thumb_func_start sub_815C874 -sub_815C874: @ 815C874 - ldr r2, _0815C888 @ =0x0400010e - ldrh r1, [r2] - ldr r0, _0815C88C @ =0x0000ff7f - ands r0, r1 - strh r0, [r2] - ldr r1, _0815C890 @ =0x0400010c - ldr r2, _0815C894 @ =0x0000fda7 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_0815C888: .4byte 0x0400010e -_0815C88C: .4byte 0x0000ff7f -_0815C890: .4byte 0x0400010c -_0815C894: .4byte 0x0000fda7 - thumb_func_end sub_815C874 - - thumb_func_start sub_815C898 -sub_815C898: @ 815C898 - push {r4,lr} - ldr r0, _0815C8B8 @ =0x04000130 - ldrh r0, [r0] - ldr r2, _0815C8BC @ =0x000003ff - adds r1, r2, 0 - eors r1, r0 - ldr r4, _0815C8C0 @ =gUnknown_3002062 - ldr r3, _0815C8C4 @ =gUnknown_3002060 - ldrh r2, [r3] - adds r0, r1, 0 - bics r0, r2 - strh r0, [r4] - strh r1, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815C8B8: .4byte 0x04000130 -_0815C8BC: .4byte 0x000003ff -_0815C8C0: .4byte gUnknown_3002062 -_0815C8C4: .4byte gUnknown_3002060 - thumb_func_end sub_815C898 - - thumb_func_start sub_815C8C8 -sub_815C8C8: @ 815C8C8 - ldr r1, _0815C8F4 @ =gUnknown_300206C - ldr r0, _0815C8F8 @ =0x04000208 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0815C8FC @ =gUnknown_300206E - ldr r0, _0815C900 @ =0x04000200 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0815C904 @ =gUnknown_3002070 - ldr r0, _0815C908 @ =0x0400010e - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0815C90C @ =gUnknown_3002072 - ldr r0, _0815C910 @ =0x04000128 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0815C914 @ =gUnknown_3002074 - ldr r0, _0815C918 @ =0x04000134 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_0815C8F4: .4byte gUnknown_300206C -_0815C8F8: .4byte 0x04000208 -_0815C8FC: .4byte gUnknown_300206E -_0815C900: .4byte 0x04000200 -_0815C904: .4byte gUnknown_3002070 -_0815C908: .4byte 0x0400010e -_0815C90C: .4byte gUnknown_3002072 -_0815C910: .4byte 0x04000128 -_0815C914: .4byte gUnknown_3002074 -_0815C918: .4byte 0x04000134 - thumb_func_end sub_815C8C8 - - thumb_func_start sub_815C91C -sub_815C91C: @ 815C91C - ldr r1, _0815C948 @ =0x04000208 - ldr r0, _0815C94C @ =gUnknown_300206C - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x8 - ldr r0, _0815C950 @ =gUnknown_300206E - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0xF2 - ldr r0, _0815C954 @ =gUnknown_3002070 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x1A - ldr r0, _0815C958 @ =gUnknown_3002072 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0xC - ldr r0, _0815C95C @ =gUnknown_3002074 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_0815C948: .4byte 0x04000208 -_0815C94C: .4byte gUnknown_300206C -_0815C950: .4byte gUnknown_300206E -_0815C954: .4byte gUnknown_3002070 -_0815C958: .4byte gUnknown_3002072 -_0815C95C: .4byte gUnknown_3002074 - thumb_func_end sub_815C91C - - thumb_func_start sub_815C960 -sub_815C960: @ 815C960 - push {lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r1, _0815C978 @ =gUnknown_3002048 - ldr r2, _0815C97C @ =0x05000006 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0815C978: .4byte gUnknown_3002048 -_0815C97C: .4byte 0x05000006 - thumb_func_end sub_815C960 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_815C980.s b/asm/unk_815C980.s deleted file mode 100644 index a348558f3..000000000 --- a/asm/unk_815C980.s +++ /dev/null @@ -1,1314 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815C980 -sub_815C980: @ 815C980 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, _0815C9A0 @ =gUnknown_203F454 - ldr r0, [r5] - cmp r0, 0 - beq _0815C990 - bl sub_815C9F4 -_0815C990: - movs r0, 0x8 - bl Alloc - str r0, [r5] - cmp r0, 0 - bne _0815C9A4 - movs r0, 0 - b _0815C9EC - .align 2, 0 -_0815C9A0: .4byte gUnknown_203F454 -_0815C9A4: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - bl Alloc - ldr r1, [r5] - str r0, [r1, 0x4] - cmp r0, 0 - bne _0815C9C0 - adds r0, r1, 0 - bl Free - movs r0, 0 - b _0815C9EC -_0815C9C0: - str r4, [r1] - movs r3, 0 - cmp r3, r4 - bcs _0815C9EA - movs r7, 0 - movs r6, 0xFF - movs r2, 0 -_0815C9CE: - ldr r0, [r5] - ldr r0, [r0, 0x4] - adds r0, r2, r0 - strb r7, [r0] - ldr r0, [r5] - ldr r1, [r0, 0x4] - adds r1, r2, r1 - ldrb r0, [r1, 0x1] - orrs r0, r6 - strb r0, [r1, 0x1] - adds r2, 0x1C - adds r3, 0x1 - cmp r3, r4 - bcc _0815C9CE -_0815C9EA: - movs r0, 0x1 -_0815C9EC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_815C980 - - thumb_func_start sub_815C9F4 -sub_815C9F4: @ 815C9F4 - push {r4,r5,lr} - ldr r2, _0815CA3C @ =gUnknown_203F454 - ldr r1, [r2] - cmp r1, 0 - beq _0815CA34 - ldr r0, [r1, 0x4] - cmp r0, 0 - beq _0815CA28 - movs r4, 0 - ldr r0, [r1] - cmp r4, r0 - bcs _0815CA1E - adds r5, r2, 0 -_0815CA0E: - adds r0, r4, 0 - bl sub_815D108 - adds r4, 0x1 - ldr r0, [r5] - ldr r0, [r0] - cmp r4, r0 - bcc _0815CA0E -_0815CA1E: - ldr r0, _0815CA3C @ =gUnknown_203F454 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl Free -_0815CA28: - ldr r4, _0815CA3C @ =gUnknown_203F454 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] -_0815CA34: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815CA3C: .4byte gUnknown_203F454 - thumb_func_end sub_815C9F4 - - thumb_func_start sub_815CA40 -sub_815CA40: @ 815CA40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r8, r0 - mov r10, r1 - adds r5, r2, 0 - ldr r6, _0815CAB8 @ =gUnknown_203F454 - ldr r0, [r6] - cmp r0, 0 - beq _0815CB00 - ldr r1, [r0, 0x4] - mov r0, r8 - lsls r2, r0, 3 - subs r0, r2, r0 - lsls r4, r0, 2 - adds r1, r4, r1 - ldrb r0, [r1] - mov r9, r2 - cmp r0, 0 - bne _0815CB00 - ldrb r0, [r5, 0x1] - bl sub_815D244 - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strb r0, [r1, 0x1] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - ldrb r0, [r0, 0x1] - cmp r0, 0xFF - beq _0815CB00 - ldr r0, [r5, 0x8] - ldrh r0, [r0, 0x6] - bl GetSpriteTileStartByTag - ldr r2, [r6] - ldr r1, [r2, 0x4] - adds r1, r4, r1 - strh r0, [r1, 0xA] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldrh r1, [r0, 0xA] - ldr r7, _0815CABC @ =0xffff0000 - lsrs r0, r7, 16 - cmp r1, r0 - bne _0815CB0C - ldr r2, [r5, 0x8] - ldrh r0, [r2, 0x4] - adds r1, r2, 0 - cmp r0, 0 - beq _0815CAC0 - adds r0, r1, 0 - bl LoadSpriteSheet - b _0815CAE0 - .align 2, 0 -_0815CAB8: .4byte gUnknown_203F454 -_0815CABC: .4byte 0xffff0000 -_0815CAC0: - ldr r0, [r2] - ldr r1, [r2, 0x4] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [r2] - bl sub_800F0C4 - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp, 0x4] - ands r1, r7 - orrs r1, r0 - str r1, [sp, 0x4] - mov r0, sp - bl LoadCompressedObjectPic -_0815CAE0: - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strh r0, [r1, 0xA] - ldr r0, _0815CB04 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r1, [r0, 0x4] - mov r2, r9 - mov r3, r8 - subs r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0xA] - ldr r0, _0815CB08 @ =0x0000ffff - cmp r1, r0 - bne _0815CB0C -_0815CB00: - movs r0, 0 - b _0815CC14 - .align 2, 0 -_0815CB04: .4byte gUnknown_203F454 -_0815CB08: .4byte 0x0000ffff -_0815CB0C: - ldr r0, [r5, 0xC] - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - ldr r6, _0815CC24 @ =gUnknown_203F454 - ldr r1, [r6] - ldr r1, [r1, 0x4] - mov r4, r9 - mov r3, r8 - subs r2, r4, r3 - lsls r4, r2, 2 - adds r1, r4, r1 - strb r0, [r1, 0x4] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - ldrb r0, [r0, 0x4] - cmp r0, 0xFF - bne _0815CB40 - ldr r0, [r5, 0xC] - bl LoadSpritePalette - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strb r0, [r1, 0x4] -_0815CB40: - ldr r0, [r6] - ldr r1, [r0, 0x4] - adds r1, r4, r1 - ldrb r0, [r5] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r1, 0x2] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - ldrb r1, [r5, 0x1] - strb r1, [r0, 0x3] - ldr r2, [r6] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldrh r1, [r5, 0x4] - strh r1, [r0, 0xC] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldrh r1, [r5, 0x6] - strh r1, [r0, 0xE] - ldr r1, [r2, 0x4] - adds r1, r4, r1 - ldrb r0, [r5] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r1, 0x6] - ldr r0, [r6] - ldr r1, [r0, 0x4] - adds r1, r4, r1 - ldrb r0, [r5] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r1, 0x5] - ldr r0, [r6] - ldr r1, [r0, 0x4] - adds r1, r4, r1 - ldrb r0, [r5] - lsrs r0, 6 - strb r0, [r1, 0x7] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - ldrb r1, [r5, 0x2] - strb r1, [r0, 0x8] - ldrb r1, [r5] - lsls r0, r1, 28 - lsrs r0, 30 - lsls r1, 26 - lsrs r1, 30 - bl sub_815D324 - ldr r1, [r6] - ldr r1, [r1, 0x4] - adds r1, r4, r1 - strb r0, [r1, 0x9] - ldr r2, [r6] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldr r1, [r5, 0x8] - ldrh r1, [r1, 0x6] - strh r1, [r0, 0x10] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - ldr r1, [r5, 0xC] - ldrh r1, [r1, 0x4] - strh r1, [r0, 0x12] - ldr r0, [r2, 0x4] - adds r0, r4, r0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r6] - ldr r0, [r0, 0x4] - adds r0, r4, r0 - str r1, [r0, 0x14] - movs r3, 0x1 - ldrb r0, [r5, 0x1] - cmp r3, r0 - bcs _0815CBF6 -_0815CBDE: - ldr r0, [r6] - ldr r2, [r0, 0x4] - adds r2, r4, r2 - ldr r1, [r2, 0x14] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - str r0, [r2, 0x14] - adds r3, 0x1 - ldrb r2, [r5, 0x1] - cmp r3, r2 - bcc _0815CBDE -_0815CBF6: - ldr r0, _0815CC24 @ =gUnknown_203F454 - ldr r0, [r0] - mov r3, r9 - mov r4, r8 - subs r1, r3, r4 - lsls r1, 2 - ldr r0, [r0, 0x4] - adds r0, r1 - bl sub_815CC28 - mov r0, r8 - mov r1, r10 - bl sub_815CD70 - movs r0, 0x1 -_0815CC14: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0815CC24: .4byte gUnknown_203F454 - thumb_func_end sub_815CA40 - - thumb_func_start sub_815CC28 -sub_815CC28: @ 815CC28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - ldrb r5, [r4, 0x1] - movs r0, 0xC - ldrsh r7, [r4, r0] - ldrb r0, [r4, 0x3] - adds r0, 0x1 - mov r8, r0 - mov r1, sp - movs r0, 0 - strh r0, [r1] - lsls r1, r5, 3 - ldr r2, _0815CD58 @ =gMain + 0x38 - mov r9, r2 - add r1, r9 - mov r0, r8 - lsls r2, r0, 2 - movs r0, 0x80 - lsls r0, 17 - orrs r2, r0 - mov r0, sp - bl CpuSet - movs r6, 0 - ldrb r5, [r4, 0x1] - cmp r6, r8 - bcs _0815CCFA - movs r1, 0x3F - mov r10, r1 - movs r2, 0xD - negs r2, r2 - mov r9, r2 -_0815CC72: - lsls r0, r5, 3 - ldr r1, _0815CD5C @ =gMain - adds r3, r0, r1 - ldrh r1, [r4, 0xE] - adds r0, r3, 0 - adds r0, 0x38 - strb r1, [r0] - ldr r2, _0815CD60 @ =0x000001ff - adds r0, r2, 0 - adds r1, r7, 0 - ands r1, r0 - ldrh r2, [r3, 0x3A] - ldr r0, _0815CD64 @ =0xfffffe00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x3A] - ldrb r1, [r4, 0x6] - movs r0, 0x39 - adds r0, r3 - mov r12, r0 - lsls r1, 6 - ldrb r2, [r0] - mov r0, r10 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrb r1, [r4, 0x5] - movs r2, 0x3B - adds r2, r3 - mov r12, r2 - lsls r1, 6 - ldrb r2, [r2] - mov r0, r10 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r4, 0xA] - ldr r1, _0815CD68 @ =0x000003ff - ands r1, r0 - ldrh r2, [r3, 0x3C] - ldr r0, _0815CD6C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x3C] - adds r3, 0x3D - movs r0, 0x3 - ldrb r1, [r4, 0x7] - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r2, [r4, 0x4] - lsls r2, 4 - movs r1, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldrb r0, [r4, 0x8] - adds r7, r0 - adds r6, 0x1 - adds r5, 0x1 - cmp r6, r8 - bcc _0815CC72 -_0815CCFA: - subs r5, 0x1 - ldr r0, _0815CD5C @ =gMain - lsls r3, r5, 3 - adds r3, r0 - movs r2, 0xC - ldrsh r1, [r4, r2] - ldrb r0, [r4, 0x8] - subs r1, r0 - ldr r2, _0815CD60 @ =0x000001ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x3A] - ldr r0, _0815CD64 @ =0xfffffe00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x3A] - adds r2, r3, 0 - adds r2, 0x39 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, 0x9] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - ldrh r4, [r4, 0xA] - adds r1, r4 - ldr r2, _0815CD68 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x3C] - ldr r0, _0815CD6C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x3C] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815CD58: .4byte gMain + 0x38 -_0815CD5C: .4byte gMain -_0815CD60: .4byte 0x000001ff -_0815CD64: .4byte 0xfffffe00 -_0815CD68: .4byte 0x000003ff -_0815CD6C: .4byte 0xfffffc00 - thumb_func_end sub_815CC28 - - thumb_func_start sub_815CD70 -sub_815CD70: @ 815CD70 - push {r4-r6,lr} - adds r3, r0, 0 - adds r4, r1, 0 - ldr r0, _0815CDA0 @ =gUnknown_203F454 - ldr r1, [r0] - adds r6, r0, 0 - cmp r1, 0 - beq _0815CDD4 - ldr r2, [r1, 0x4] - lsls r1, r3, 3 - subs r0, r1, r3 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2] - adds r5, r1, 0 - cmp r0, 0 - beq _0815CDD4 - str r4, [r2, 0x18] - cmp r4, 0 - bge _0815CDA4 - movs r2, 0x1 - negs r4, r4 - b _0815CDA6 - .align 2, 0 -_0815CDA0: .4byte gUnknown_203F454 -_0815CDA4: - movs r2, 0 -_0815CDA6: - ldr r0, [r6] - ldr r1, [r0, 0x4] - subs r0, r5, r3 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x2] - cmp r3, 0x1 - beq _0815CDC6 - cmp r3, 0x1 - ble _0815CDBE - cmp r3, 0x2 - beq _0815CDCE -_0815CDBE: - adds r1, r4, 0 - bl sub_815CDDC - b _0815CDD4 -_0815CDC6: - adds r1, r4, 0 - bl sub_815CE90 - b _0815CDD4 -_0815CDCE: - adds r1, r4, 0 - bl sub_815CFEC -_0815CDD4: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_815CD70 - - thumb_func_start sub_815CDDC -sub_815CDDC: @ 815CDDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - mov r9, r1 - str r2, [sp] - ldr r5, [r0, 0x14] - ldrb r7, [r0, 0x1] - ldr r0, _0815CE60 @ =gMain - mov r10, r0 - cmp r5, 0 - beq _0815CE46 - lsls r0, r7, 3 - adds r0, 0x3C - mov r1, r10 - adds r6, r0, r1 -_0815CE02: - mov r0, r9 - adds r1, r5, 0 - bl __udivsi3 - adds r4, r0, 0 - adds r0, r4, 0 - muls r0, r5 - mov r2, r9 - subs r2, r0 - mov r9, r2 - adds r0, r5, 0 - movs r1, 0xA - bl __udivsi3 - adds r5, r0, 0 - mov r1, r8 - ldrb r0, [r1, 0x9] - adds r1, r4, 0 - muls r1, r0 - mov r2, r8 - ldrh r2, [r2, 0xA] - adds r1, r2 - ldr r2, _0815CE64 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r0, [r6] - ldr r2, _0815CE68 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r6] - adds r6, 0x8 - adds r7, 0x1 - cmp r5, 0 - bne _0815CE02 -_0815CE46: - ldr r0, [sp] - cmp r0, 0 - beq _0815CE6C - lsls r0, r7, 3 - add r0, r10 - adds r0, 0x39 - ldrb r2, [r0] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _0815CE80 - .align 2, 0 -_0815CE60: .4byte gMain -_0815CE64: .4byte 0x000003ff -_0815CE68: .4byte 0xfffffc00 -_0815CE6C: - lsls r2, r7, 3 - add r2, r10 - adds r2, 0x39 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] -_0815CE80: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815CDDC - - thumb_func_start sub_815CE90 -sub_815CE90: @ 815CE90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - mov r8, r1 - str r2, [sp] - ldr r5, [r6, 0x14] - ldr r3, _0815CF38 @ =gUnknown_3002078 - ldrb r0, [r6, 0x1] - str r0, [r3] - ldr r2, _0815CF3C @ =gUnknown_300207C - movs r0, 0 - str r0, [r2] - ldr r1, _0815CF40 @ =gUnknown_3002080 - subs r0, 0x1 - str r0, [r1] - adds r7, r3, 0 - mov r10, r1 - ldr r0, _0815CF44 @ =gMain - mov r9, r0 - cmp r5, 0 - beq _0815CF78 -_0815CEC2: - mov r0, r8 - adds r1, r5, 0 - bl __udivsi3 - adds r4, r0, 0 - adds r0, r4, 0 - muls r0, r5 - mov r1, r8 - subs r1, r0 - mov r8, r1 - adds r0, r5, 0 - movs r1, 0xA - bl __udivsi3 - adds r5, r0, 0 - cmp r4, 0 - bne _0815CEF4 - mov r2, r10 - ldr r1, [r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0815CEF4 - cmp r5, 0 - bne _0815CF50 -_0815CEF4: - ldr r2, [r7] - lsls r2, 3 - add r2, r9 - ldrb r0, [r6, 0x9] - adds r3, r4, 0 - muls r3, r0 - ldrh r4, [r6, 0xA] - adds r3, r4 - ldr r1, _0815CF48 @ =0x000003ff - adds r0, r1, 0 - ands r3, r0 - ldrh r0, [r2, 0x3C] - ldr r4, _0815CF4C @ =0xfffffc00 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r3 - strh r0, [r2, 0x3C] - adds r2, 0x39 - ldrb r0, [r2] - movs r1, 0x4 - negs r1, r1 - ands r0, r1 - strb r0, [r2] - mov r2, r10 - ldr r1, [r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _0815CF66 - ldr r4, _0815CF3C @ =gUnknown_300207C - ldr r0, [r4] - str r0, [r2] - b _0815CF66 - .align 2, 0 -_0815CF38: .4byte gUnknown_3002078 -_0815CF3C: .4byte gUnknown_300207C -_0815CF40: .4byte gUnknown_3002080 -_0815CF44: .4byte gMain -_0815CF48: .4byte 0x000003ff -_0815CF4C: .4byte 0xfffffc00 -_0815CF50: - ldr r0, [r7] - lsls r0, 3 - add r0, r9 - adds r0, 0x39 - ldrb r1, [r0] - movs r2, 0x4 - negs r2, r2 - ands r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_0815CF66: - ldr r0, [r7] - adds r0, 0x1 - str r0, [r7] - ldr r4, _0815CFB8 @ =gUnknown_300207C - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - cmp r5, 0 - bne _0815CEC2 -_0815CF78: - ldr r0, [sp] - cmp r0, 0 - beq _0815CFC4 - ldr r1, [r7] - lsls r1, 3 - add r1, r9 - adds r1, 0x39 - ldrb r2, [r1] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r3, [r7] - lsls r3, 3 - add r3, r9 - movs r1, 0xC - ldrsh r2, [r6, r1] - mov r4, r10 - ldr r0, [r4] - subs r0, 0x1 - ldrb r1, [r6, 0x8] - muls r0, r1 - adds r2, r0 - ldr r1, _0815CFBC @ =0x000001ff - adds r0, r1, 0 - ands r2, r0 - ldrh r1, [r3, 0x3A] - ldr r0, _0815CFC0 @ =0xfffffe00 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x3A] - b _0815CFDA - .align 2, 0 -_0815CFB8: .4byte gUnknown_300207C -_0815CFBC: .4byte 0x000001ff -_0815CFC0: .4byte 0xfffffe00 -_0815CFC4: - ldr r0, [r7] - lsls r0, 3 - add r0, r9 - adds r0, 0x39 - ldrb r2, [r0] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_0815CFDA: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815CE90 - - thumb_func_start sub_815CFEC -sub_815CFEC: @ 815CFEC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - mov r10, r1 - str r2, [sp] - ldr r5, [r0, 0x14] - ldrb r3, [r0, 0x1] - movs r0, 0 - str r0, [sp, 0x4] - mov r9, r0 - cmp r5, 0 - beq _0815D086 -_0815D00C: - lsls r0, r3, 3 - adds r1, r0, 0 - adds r1, 0x39 - ldr r2, _0815D0D0 @ =gMain - adds r7, r1, r2 - adds r0, 0x3C - adds r6, r0, r2 -_0815D01A: - mov r0, r10 - adds r1, r5, 0 - str r3, [sp, 0x8] - bl __udivsi3 - adds r4, r0, 0 - adds r0, r4, 0 - muls r0, r5 - mov r1, r10 - subs r1, r0 - mov r10, r1 - adds r0, r5, 0 - movs r1, 0xA - bl __udivsi3 - adds r5, r0, 0 - ldr r3, [sp, 0x8] - cmp r4, 0 - bne _0815D04A - ldr r2, [sp, 0x4] - cmp r2, 0 - bne _0815D04A - cmp r5, 0 - bne _0815D00C -_0815D04A: - movs r0, 0x1 - str r0, [sp, 0x4] - mov r1, r8 - ldrb r0, [r1, 0x9] - adds r2, r4, 0 - muls r2, r0 - ldrh r4, [r1, 0xA] - adds r2, r4 - ldr r1, _0815D0D4 @ =0x000003ff - adds r0, r1, 0 - ands r2, r0 - ldrh r0, [r6] - ldr r4, _0815D0D8 @ =0xfffffc00 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r6] - ldrb r0, [r7] - movs r2, 0x4 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r7] - adds r7, 0x8 - adds r6, 0x8 - adds r3, 0x1 - movs r4, 0x1 - add r9, r4 - cmp r5, 0 - bne _0815D01A -_0815D086: - mov r0, r8 - ldrb r0, [r0, 0x3] - cmp r9, r0 - bge _0815D0B6 - ldr r1, _0815D0D0 @ =gMain - movs r5, 0x4 - negs r5, r5 - movs r4, 0x2 - lsls r0, r3, 3 - adds r0, 0x39 - adds r2, r0, r1 -_0815D09C: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - adds r2, 0x8 - adds r3, 0x1 - movs r1, 0x1 - add r9, r1 - mov r0, r8 - ldrb r0, [r0, 0x3] - cmp r9, r0 - blt _0815D09C -_0815D0B6: - ldr r1, [sp] - cmp r1, 0 - beq _0815D0DC - lsls r0, r3, 3 - ldr r2, _0815D0D0 @ =gMain - adds r0, r2 - adds r0, 0x39 - ldrb r2, [r0] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _0815D0F2 - .align 2, 0 -_0815D0D0: .4byte gMain -_0815D0D4: .4byte 0x000003ff -_0815D0D8: .4byte 0xfffffc00 -_0815D0DC: - lsls r2, r3, 3 - ldr r4, _0815D104 @ =gMain - adds r2, r4 - adds r2, 0x39 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] -_0815D0F2: - 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 -_0815D104: .4byte gMain - thumb_func_end sub_815CFEC - - thumb_func_start sub_815D108 -sub_815D108: @ 815D108 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _0815D1A0 @ =gUnknown_203F454 - ldr r0, [r0] - cmp r0, 0 - beq _0815D19A - ldr r2, [r0, 0x4] - lsls r1, r4, 3 - subs r0, r1, r4 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2] - adds r5, r1, 0 - cmp r0, 0 - beq _0815D19A - ldrb r3, [r2, 0x3] - adds r0, r3, 0x1 - ldrb r2, [r2, 0x1] - cmp r0, 0 - beq _0815D152 - ldr r1, _0815D1A4 @ =gMain - movs r7, 0x4 - negs r7, r7 - movs r6, 0x2 - adds r3, r0, 0 - lsls r0, r2, 3 - adds r0, 0x39 - adds r2, r0, r1 -_0815D140: - ldrb r1, [r2] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - subs r3, 0x1 - adds r2, 0x8 - cmp r3, 0 - bne _0815D140 -_0815D152: - adds r0, r4, 0 - bl sub_815D29C - cmp r0, 0 - bne _0815D16E - ldr r0, _0815D1A0 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r1, [r0, 0x4] - subs r0, r5, r4 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x10] - bl FreeSpriteTilesByTag -_0815D16E: - adds r0, r4, 0 - bl sub_815D2E0 - cmp r0, 0 - bne _0815D18A - ldr r0, _0815D1A0 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r1, [r0, 0x4] - subs r0, r5, r4 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x12] - bl FreeSpritePaletteByTag -_0815D18A: - ldr r0, _0815D1A0 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r1, [r0, 0x4] - subs r0, r5, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0815D19A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815D1A0: .4byte gUnknown_203F454 -_0815D1A4: .4byte gMain - thumb_func_end sub_815D108 - - thumb_func_start sub_815D1A8 -sub_815D1A8: @ 815D1A8 - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _0815D1FC @ =gUnknown_203F454 - ldr r1, [r0] - adds r7, r0, 0 - cmp r1, 0 - beq _0815D238 - ldr r2, [r1, 0x4] - lsls r1, r4, 3 - subs r0, r1, r4 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2] - adds r6, r1, 0 - cmp r0, 0 - beq _0815D238 - ldrb r3, [r2, 0x3] - adds r1, r3, 0x1 - ldrb r0, [r2, 0x1] - cmp r5, 0 - beq _0815D204 - cmp r1, 0 - beq _0815D238 - ldr r1, _0815D200 @ =gMain - movs r5, 0x4 - negs r5, r5 - movs r4, 0x2 - adds r3, 0x1 - lsls r0, 3 - adds r0, 0x39 - adds r2, r0, r1 -_0815D1E8: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - subs r3, 0x1 - adds r2, 0x8 - cmp r3, 0 - bne _0815D1E8 - b _0815D238 - .align 2, 0 -_0815D1FC: .4byte gUnknown_203F454 -_0815D200: .4byte gMain -_0815D204: - cmp r1, 0 - beq _0815D226 - ldr r1, _0815D240 @ =gMain - movs r5, 0x4 - negs r5, r5 - adds r3, 0x1 - lsls r0, 3 - adds r0, 0x39 - adds r2, r0, r1 -_0815D216: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2] - subs r3, 0x1 - adds r2, 0x8 - cmp r3, 0 - bne _0815D216 -_0815D226: - ldr r0, [r7] - ldr r1, [r0, 0x4] - subs r0, r6, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0, 0x18] - adds r0, r4, 0 - bl sub_815CD70 -_0815D238: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815D240: .4byte gMain - thumb_func_end sub_815D1A8 - - thumb_func_start sub_815D244 -sub_815D244: @ 815D244 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0x40 - movs r3, 0 - ldr r0, _0815D270 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r2, [r0] - cmp r3, r2 - bcs _0815D286 - ldr r1, [r0, 0x4] -_0815D25A: - ldrb r0, [r1] - cmp r0, 0 - bne _0815D274 - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _0815D27E - ldrb r0, [r1, 0x3] - cmp r0, r4 - bhi _0815D27E - ldrb r0, [r1, 0x1] - b _0815D296 - .align 2, 0 -_0815D270: .4byte gUnknown_203F454 -_0815D274: - adds r0, r5, 0x1 - ldrb r5, [r1, 0x3] - adds r0, r5 - lsls r0, 16 - lsrs r5, r0, 16 -_0815D27E: - adds r1, 0x1C - adds r3, 0x1 - cmp r3, r2 - bcc _0815D25A -_0815D286: - adds r0, r5, r4 - adds r0, 0x1 - cmp r0, 0x80 - bgt _0815D294 - lsls r0, r5, 24 - lsrs r0, 24 - b _0815D296 -_0815D294: - movs r0, 0xFF -_0815D296: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815D244 - - thumb_func_start sub_815D29C -sub_815D29C: @ 815D29C - push {r4-r6,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r0, _0815D2CC @ =gUnknown_203F454 - ldr r0, [r0] - ldr r4, [r0] - cmp r2, r4 - bcs _0815D2D8 - ldr r1, [r0, 0x4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r5, r0, r1 -_0815D2B6: - ldrb r0, [r1] - cmp r0, 0 - beq _0815D2D0 - cmp r2, r3 - beq _0815D2D0 - ldrh r0, [r1, 0x10] - ldrh r6, [r5, 0x10] - cmp r0, r6 - bne _0815D2D0 - movs r0, 0x1 - b _0815D2DA - .align 2, 0 -_0815D2CC: .4byte gUnknown_203F454 -_0815D2D0: - adds r1, 0x1C - adds r2, 0x1 - cmp r2, r4 - bcc _0815D2B6 -_0815D2D8: - movs r0, 0 -_0815D2DA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_815D29C - - thumb_func_start sub_815D2E0 -sub_815D2E0: @ 815D2E0 - push {r4-r6,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r0, _0815D310 @ =gUnknown_203F454 - ldr r0, [r0] - ldr r4, [r0] - cmp r2, r4 - bcs _0815D31C - ldr r1, [r0, 0x4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r5, r0, r1 -_0815D2FA: - ldrb r0, [r1] - cmp r0, 0 - beq _0815D314 - cmp r2, r3 - beq _0815D314 - ldrh r0, [r1, 0x12] - ldrh r6, [r5, 0x12] - cmp r0, r6 - bne _0815D314 - movs r0, 0x1 - b _0815D31E - .align 2, 0 -_0815D310: .4byte gUnknown_203F454 -_0815D314: - adds r1, 0x1C - adds r2, 0x1 - cmp r2, r4 - bcc _0815D2FA -_0815D31C: - movs r0, 0 -_0815D31E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_815D2E0 - - thumb_func_start sub_815D324 -sub_815D324: @ 815D324 - ldr r2, _0815D330 @ =gUnknown_8479658 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_0815D330: .4byte gUnknown_8479658 - thumb_func_end sub_815D324 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_815EDDC.s b/asm/unk_815EDDC.s deleted file mode 100644 index 116458940..000000000 --- a/asm/unk_815EDDC.s +++ /dev/null @@ -1,462 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815EDDC -sub_815EDDC: @ 815EDDC - ldr r1, _0815EDF0 @ =gSaveBlock2Ptr - ldr r1, [r1] - movs r2, 0xF2 - lsls r2, 4 - adds r1, r2 - ldr r0, [r0] - ldr r1, [r1] - eors r0, r1 - bx lr - .align 2, 0 -_0815EDF0: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EDDC - - thumb_func_start sub_815EDF4 -sub_815EDF4: @ 815EDF4 - ldr r2, _0815EE08 @ =gSaveBlock2Ptr - ldr r2, [r2] - movs r3, 0xF2 - lsls r3, 4 - adds r2, r3 - ldr r2, [r2] - eors r2, r1 - str r2, [r0] - bx lr - .align 2, 0 -_0815EE08: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EDF4 - - thumb_func_start sub_815EE0C -sub_815EE0C: @ 815EE0C - push {r4-r6,lr} - ldr r6, _0815EE30 @ =gSaveBlock1Ptr - ldr r5, _0815EE34 @ =0x00003d38 - movs r4, 0x3 -_0815EE14: - ldr r0, [r6] - adds r0, r5 - adds r0, 0x4 - ldr r1, _0815EE38 @ =0x00034bbf - bl sub_815EDF4 - adds r5, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _0815EE14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815EE30: .4byte gSaveBlock1Ptr -_0815EE34: .4byte 0x00003d38 -_0815EE38: .4byte 0x00034bbf - thumb_func_end sub_815EE0C - - thumb_func_start sub_815EE3C -sub_815EE3C: @ 815EE3C - ldr r1, _0815EE50 @ =gSaveBlock2Ptr - ldr r1, [r1] - movs r2, 0xF2 - lsls r2, 4 - adds r1, r2 - ldr r0, [r0] - ldr r1, [r1] - eors r0, r1 - bx lr - .align 2, 0 -_0815EE50: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EE3C - - thumb_func_start sub_815EE54 -sub_815EE54: @ 815EE54 - ldr r2, _0815EE68 @ =gSaveBlock2Ptr - ldr r2, [r2] - movs r3, 0xF2 - lsls r3, 4 - adds r2, r3 - ldr r2, [r2] - eors r2, r1 - str r2, [r0] - bx lr - .align 2, 0 -_0815EE68: .4byte gSaveBlock2Ptr - thumb_func_end sub_815EE54 - - thumb_func_start sub_815EE6C -sub_815EE6C: @ 815EE6C - push {lr} - adds r1, r0, 0 - ldr r0, _0815EE80 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, _0815EE84 @ =0x00000af8 - adds r0, r2 - bl ApplyNewEncryptionKeyToWord - pop {r0} - bx r0 - .align 2, 0 -_0815EE80: .4byte gSaveBlock2Ptr -_0815EE84: .4byte 0x00000af8 - thumb_func_end sub_815EE6C - - thumb_func_start sub_815EE88 -sub_815EE88: @ 815EE88 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0815EEA0 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EEA4 @ =0x00000af8 - adds r0, r1 - bl sub_815EE3C - cmp r0, r4 - bcc _0815EEA8 - movs r0, 0x1 - b _0815EEAA - .align 2, 0 -_0815EEA0: .4byte gSaveBlock2Ptr -_0815EEA4: .4byte 0x00000af8 -_0815EEA8: - movs r0, 0 -_0815EEAA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_815EE88 - - thumb_func_start sub_815EEB0 -sub_815EEB0: @ 815EEB0 - push {lr} - ldr r0, _0815EECC @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EED0 @ =0x00000af8 - adds r0, r1 - bl sub_815EE3C - ldr r1, _0815EED4 @ =gSpecialVar_0x8004 - ldrh r1, [r1] - cmp r0, r1 - bcc _0815EED8 - movs r0, 0x1 - b _0815EEDA - .align 2, 0 -_0815EECC: .4byte gSaveBlock2Ptr -_0815EED0: .4byte 0x00000af8 -_0815EED4: .4byte gSpecialVar_0x8004 -_0815EED8: - movs r0, 0 -_0815EEDA: - pop {r1} - bx r1 - thumb_func_end sub_815EEB0 - - thumb_func_start sub_815EEE0 -sub_815EEE0: @ 815EEE0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _0815EF04 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EF08 @ =0x00000af8 - adds r5, r0, r1 - adds r0, r5, 0 - bl sub_815EE3C - adds r1, r0, r4 - ldr r2, _0815EF0C @ =0x0001869f - cmp r1, r2 - bhi _0815EF10 - adds r0, r5, 0 - bl sub_815EE54 - movs r0, 0x1 - b _0815EF1A - .align 2, 0 -_0815EF04: .4byte gSaveBlock2Ptr -_0815EF08: .4byte 0x00000af8 -_0815EF0C: .4byte 0x0001869f -_0815EF10: - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_815EE54 - movs r0, 0 -_0815EF1A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815EEE0 - - thumb_func_start sub_815EF20 -sub_815EF20: @ 815EF20 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _0815EF4C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EF50 @ =0x00000af8 - adds r4, r0, r1 - adds r0, r5, 0 - bl sub_815EE88 - lsls r0, 24 - cmp r0, 0 - beq _0815EF54 - adds r0, r4, 0 - bl sub_815EE3C - adds r1, r0, 0 - subs r1, r5 - adds r0, r4, 0 - bl sub_815EE54 - movs r0, 0x1 - b _0815EF56 - .align 2, 0 -_0815EF4C: .4byte gSaveBlock2Ptr -_0815EF50: .4byte 0x00000af8 -_0815EF54: - movs r0, 0 -_0815EF56: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815EF20 - - thumb_func_start sub_815EF5C -sub_815EF5C: @ 815EF5C - push {r4,r5,lr} - ldr r0, _0815EF8C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EF90 @ =0x00000af8 - adds r4, r0, r1 - ldr r5, _0815EF94 @ =gSpecialVar_0x8004 - ldrh r0, [r5] - bl sub_815EE88 - lsls r0, 24 - cmp r0, 0 - beq _0815EF98 - adds r0, r4, 0 - bl sub_815EE3C - adds r1, r0, 0 - ldrh r0, [r5] - subs r1, r0 - adds r0, r4, 0 - bl sub_815EE54 - movs r0, 0x1 - b _0815EF9A - .align 2, 0 -_0815EF8C: .4byte gSaveBlock2Ptr -_0815EF90: .4byte 0x00000af8 -_0815EF94: .4byte gSpecialVar_0x8004 -_0815EF98: - movs r0, 0 -_0815EF9A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_815EF5C - - thumb_func_start sub_815EFA0 -sub_815EFA0: @ 815EFA0 - push {lr} - ldr r0, _0815EFB4 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, _0815EFB8 @ =0x00000af8 - adds r0, r1 - bl sub_815EE3C - pop {r1} - bx r1 - .align 2, 0 -_0815EFB4: .4byte gSaveBlock2Ptr -_0815EFB8: .4byte 0x00000af8 - thumb_func_end sub_815EFA0 - - thumb_func_start sub_815EFBC -sub_815EFBC: @ 815EFBC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - adds r6, r0, 0 - mov r8, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x24] - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0815F010 @ =gStringVar1 - mov r9, r0 - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0 - mov r2, r9 - mov r3, r8 - bl AddTextPrinterParameterized - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F010: .4byte gStringVar1 - thumb_func_end sub_815EFBC - - thumb_func_start sub_815F014 -sub_815F014: @ 815F014 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - adds r6, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - mov r8, r3 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - movs r1, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl SetWindowBorderStyle - ldr r2, _0815F06C @ =gUnknown_8416655 - movs r4, 0 - str r4, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0 - movs r3, 0 - bl AddTextPrinterParameterized - str r4, [sp] - adds r0, r6, 0 - mov r1, r8 - movs r2, 0x27 - movs r3, 0xC - bl sub_815EFBC - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F06C: .4byte gUnknown_8416655 - thumb_func_end sub_815F014 - - thumb_func_start sub_815F070 -sub_815F070: @ 815F070 - push {lr} - sub sp, 0x4 - bl sub_815EFA0 - adds r1, r0, 0 - ldr r0, _0815F090 @ =gUnknown_203F464 - ldrb r0, [r0] - movs r2, 0 - str r2, [sp] - movs r2, 0x27 - movs r3, 0xC - bl sub_815EFBC - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0815F090: .4byte gUnknown_203F464 - thumb_func_end sub_815F070 - - thumb_func_start sub_815F094 -sub_815F094: @ 815F094 - push {r4,r5,lr} - sub sp, 0x20 - ldr r0, _0815F108 @ =sub_809D6D4 - bl sub_81119D4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0815F100 - movs r0, 0x8 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x20 - str r0, [sp, 0xC] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x1 - movs r3, 0x1 - bl SetWindowTemplateFields - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r4, _0815F10C @ =gUnknown_203F464 - add r0, sp, 0x18 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - ldr r5, _0815F110 @ =0x0000021d - adds r1, r5, 0 - movs r2, 0xD0 - bl sub_814FF2C - ldrb r4, [r4] - bl sub_815EFA0 - adds r3, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xD - bl sub_815F014 -_0815F100: - add sp, 0x20 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815F108: .4byte sub_809D6D4 -_0815F10C: .4byte gUnknown_203F464 -_0815F110: .4byte 0x0000021d - thumb_func_end sub_815F094 - - thumb_func_start sub_815F114 -sub_815F114: @ 815F114 - push {r4,lr} - ldr r4, _0815F134 @ =gUnknown_203F464 - ldrb r0, [r4] - bl ClearWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_810F4D8 - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815F134: .4byte gUnknown_203F464 - thumb_func_end sub_815F114 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_815F138.s b/asm/unk_815F138.s deleted file mode 100644 index eaca7d2a4..000000000 --- a/asm/unk_815F138.s +++ /dev/null @@ -1,753 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_815F138 -sub_815F138: @ 815F138 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - ldr r0, [sp, 0x18] - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0815F190 @ =sub_815F1AC - movs r1, 0x50 - str r3, [sp] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0815F194 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xC] - strh r5, [r1, 0xE] - strh r6, [r1, 0x10] - ldr r3, [sp] - strh r3, [r1, 0x12] - mov r0, r8 - strh r0, [r1, 0x14] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F190: .4byte sub_815F1AC -_0815F194: .4byte gTasks - thumb_func_end sub_815F138 - - thumb_func_start sub_815F198 -sub_815F198: @ 815F198 - push {lr} - ldr r0, _0815F1A8 @ =sub_815F1AC - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0815F1A8: .4byte sub_815F1AC - thumb_func_end sub_815F198 - - thumb_func_start sub_815F1AC -sub_815F1AC: @ 815F1AC - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0815F1D0 @ =gTasks+0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0815F21C - cmp r0, 0x1 - bgt _0815F1D4 - cmp r0, 0 - beq _0815F1DA - b _0815F29E - .align 2, 0 -_0815F1D0: .4byte gTasks+0x8 -_0815F1D4: - cmp r0, 0x2 - beq _0815F260 - b _0815F29E -_0815F1DA: - ldrh r0, [r5, 0x4] - ldrh r1, [r5, 0x6] - bl sub_815F564 - ldrh r0, [r5, 0x4] - ldrh r1, [r5, 0x6] - movs r3, 0x8 - ldrsh r2, [r5, r3] - movs r4, 0xA - ldrsh r3, [r5, r4] - ldrb r4, [r5, 0xC] - str r4, [sp] - bl sub_815F5BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - ldrh r0, [r5, 0x4] - ldrh r1, [r5, 0x6] - movs r3, 0x8 - ldrsh r2, [r5, r3] - movs r4, 0xA - ldrsh r3, [r5, r4] - ldrb r4, [r5, 0xC] - str r4, [sp] - adds r4, r5, 0 - adds r4, 0x10 - str r4, [sp, 0x4] - adds r4, 0x2 - str r4, [sp, 0x8] - bl sub_815F610 - b _0815F252 -_0815F21C: - ldrb r0, [r5, 0xE] - bl sub_815F2AC - cmp r0, 0 - bne _0815F29E - ldrb r0, [r5, 0xE] - ldrb r1, [r5, 0x10] - ldrb r2, [r5, 0x12] - bl sub_815F3E0 - movs r0, 0xE - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0815F25C @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - movs r3, 0xE - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_0815F252: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _0815F29E - .align 2, 0 -_0815F25C: .4byte gSprites -_0815F260: - ldrb r0, [r5, 0x10] - bl sub_815F444 - cmp r0, 0 - bne _0815F29E - movs r4, 0x10 - ldrsh r1, [r5, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0815F2A8 @ =gSprites - adds r0, r4 - bl DestroySprite - movs r0, 0x12 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldrh r0, [r5, 0x4] - bl FreeSpriteTilesByTag - ldrh r0, [r5, 0x6] - bl FreeSpritePaletteByTag - adds r0, r6, 0 - bl DestroyTask -_0815F29E: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F2A8: .4byte gSprites - thumb_func_end sub_815F1AC - - thumb_func_start sub_815F2AC -sub_815F2AC: @ 815F2AC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0815F2D0 @ =gSprites - adds r4, r1, r0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bls _0815F2C6 - b _0815F3D8 -_0815F2C6: - lsls r0, 2 - ldr r1, _0815F2D4 @ =_0815F2D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815F2D0: .4byte gSprites -_0815F2D4: .4byte _0815F2D8 - .align 2, 0 -_0815F2D8: - .4byte _0815F2F8 - .4byte _0815F30A - .4byte _0815F330 - .4byte _0815F340 - .4byte _0815F362 - .4byte _0815F39A - .4byte _0815F3C0 - .4byte _0815F396 -_0815F2F8: - movs r1, 0x80 - lsls r1, 4 - adds r0, r4, 0 - movs r2, 0x1A - bl sub_8007FFC - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0815F30A: - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0815F318 - movs r0, 0x32 - bl PlaySE -_0815F318: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _0815F3D8 - movs r0, 0 - strh r0, [r4, 0x32] - adds r0, r4, 0 - movs r1, 0x1 - b _0815F3B6 -_0815F330: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0815F3D8 - b _0815F3BA -_0815F340: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0815F3D8 - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _0815F3D8 -_0815F362: - ldrh r0, [r4, 0x22] - subs r0, 0x4 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _0815F3D8 - ldrh r1, [r4, 0x36] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bgt _0815F392 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r4, 0x32] - b _0815F3BA -_0815F392: - movs r0, 0x7 - strh r0, [r4, 0x2E] -_0815F396: - movs r0, 0 - b _0815F3DA -_0815F39A: - ldrh r0, [r4, 0x22] - adds r0, 0x4 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _0815F3D8 - movs r0, 0 - strh r0, [r4, 0x32] - adds r0, r4, 0 - movs r1, 0x3 -_0815F3B6: - bl StartSpriteAffineAnim -_0815F3BA: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - b _0815F3D6 -_0815F3C0: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0815F3D8 - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r0, 0x1 -_0815F3D6: - strh r0, [r4, 0x2E] -_0815F3D8: - movs r0, 0x1 -_0815F3DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_815F2AC - - thumb_func_start sub_815F3E0 -sub_815F3E0: @ 815F3E0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0815F438 @ =gSprites - mov r8, r0 - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r5, r4, r0 - ldr r0, _0815F43C @ =0x0000ffd8 - strh r0, [r5, 0x26] - lsls r3, r2, 4 - adds r3, r2 - lsls r3, 2 - mov r1, r8 - adds r2, r3, r1 - strh r0, [r2, 0x26] - adds r5, 0x3E - ldrb r6, [r5] - movs r1, 0x5 - negs r1, r1 - adds r0, r1, 0 - ands r0, r6 - strb r0, [r5] - adds r2, 0x3E - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - movs r0, 0x1C - add r8, r0 - add r4, r8 - ldr r0, _0815F440 @ =sub_815F470 - str r0, [r4] - add r3, r8 - str r0, [r3] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815F438: .4byte gSprites -_0815F43C: .4byte 0x0000ffd8 -_0815F440: .4byte sub_815F470 - thumb_func_end sub_815F3E0 - - thumb_func_start sub_815F444 -sub_815F444: @ 815F444 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r2, _0815F468 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r2, 0x1C - adds r1, r2 - ldr r1, [r1] - ldr r0, _0815F46C @ =sub_815F470 - cmp r1, r0 - bne _0815F462 - movs r3, 0x1 -_0815F462: - adds r0, r3, 0 - pop {r1} - bx r1 - .align 2, 0 -_0815F468: .4byte gSprites -_0815F46C: .4byte sub_815F470 - thumb_func_end sub_815F444 - - thumb_func_start sub_815F470 -sub_815F470: @ 815F470 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x2E - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bhi _0815F55A - lsls r0, 2 - ldr r1, _0815F48C @ =_0815F490 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815F48C: .4byte _0815F490 - .align 2, 0 -_0815F490: - .4byte _0815F4A4 - .4byte _0815F4B4 - .4byte _0815F4DC - .4byte _0815F510 - .4byte _0815F548 -_0815F4A4: - movs r0, 0x40 - strh r0, [r4, 0x8] - ldrh r0, [r5, 0x26] - lsls r0, 4 - strh r0, [r4, 0xA] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_0815F4B4: - ldrh r1, [r4, 0x8] - ldrh r2, [r4, 0xA] - adds r0, r1, r2 - strh r0, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0x8] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x26] - cmp r0, 0 - blt _0815F55A - movs r0, 0x32 - bl PlaySE - movs r0, 0 - strh r0, [r5, 0x26] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _0815F55A -_0815F4DC: - ldrh r0, [r4, 0x2] - adds r0, 0xC - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7F - ble _0815F4FA - movs r0, 0x32 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_0815F4FA: - ldr r0, _0815F50C @ =gUnknown_825E074 - movs r2, 0x2 - ldrsh r1, [r4, r2] - lsls r1, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - asrs r0, 4 - b _0815F53E - .align 2, 0 -_0815F50C: .4byte gUnknown_825E074 -_0815F510: - ldrh r0, [r4, 0x2] - adds r0, 0x10 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7F - ble _0815F52E - movs r0, 0x32 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_0815F52E: - ldr r1, _0815F544 @ =gUnknown_825E074 - movs r2, 0x2 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 21 -_0815F53E: - negs r0, r0 - strh r0, [r5, 0x26] - b _0815F55A - .align 2, 0 -_0815F544: .4byte gUnknown_825E074 -_0815F548: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _0815F55A - ldr r0, _0815F560 @ =SpriteCallbackDummy - str r0, [r5, 0x1C] -_0815F55A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815F560: .4byte SpriteCallbackDummy - thumb_func_end sub_815F470 - - thumb_func_start sub_815F564 -sub_815F564: @ 815F564 - push {r4,lr} - sub sp, 0x10 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _0815F5AC @ =gUnknown_847A79C - ldr r3, [r2, 0x4] - ldr r2, [r2] - str r2, [sp] - str r3, [sp, 0x4] - ldr r2, _0815F5B0 @ =gUnknown_847A7A4 - ldr r3, [r2, 0x4] - ldr r2, [r2] - str r2, [sp, 0x8] - str r3, [sp, 0xC] - lsls r0, 16 - ldr r3, _0815F5B4 @ =0x0000ffff - ldr r2, [sp, 0x4] - ands r2, r3 - orrs r2, r0 - str r2, [sp, 0x4] - ldr r2, _0815F5B8 @ =0xffff0000 - add r4, sp, 0x8 - ldr r0, [r4, 0x4] - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - bl LoadCompressedObjectPic - adds r0, r4, 0 - bl LoadSpritePalette - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815F5AC: .4byte gUnknown_847A79C -_0815F5B0: .4byte gUnknown_847A7A4 -_0815F5B4: .4byte 0x0000ffff -_0815F5B8: .4byte 0xffff0000 - thumb_func_end sub_815F564 - - thumb_func_start sub_815F5BC -sub_815F5BC: @ 815F5BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - mov r12, r3 - ldr r3, [sp, 0x30] - lsls r1, 16 - lsrs r1, 16 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - mov r5, sp - ldr r4, _0815F60C @ =gUnknown_847A860 - ldm r4!, {r3,r6,r7} - stm r5!, {r3,r6,r7} - ldm r4!, {r3,r6,r7} - stm r5!, {r3,r6,r7} - mov r4, sp - strh r0, [r4] - mov r0, sp - strh r1, [r0, 0x2] - lsls r2, 16 - asrs r2, 16 - mov r0, r12 - lsls r6, r0, 16 - asrs r6, 16 - mov r0, sp - adds r1, r2, 0 - adds r2, r6, 0 - mov r3, r8 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0815F60C: .4byte gUnknown_847A860 - thumb_func_end sub_815F5BC - - thumb_func_start sub_815F610 -sub_815F610: @ 815F610 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r12, r3 - ldr r6, [sp, 0x38] - ldr r3, [sp, 0x3C] - mov r9, r3 - ldr r4, [sp, 0x40] - mov r8, r4 - lsls r1, 16 - lsrs r1, 16 - lsls r6, 24 - lsrs r6, 24 - mov r10, r6 - mov r4, sp - ldr r3, _0815F6D4 @ =gUnknown_847A878 - ldm r3!, {r5-r7} - stm r4!, {r5-r7} - ldm r3!, {r5-r7} - stm r4!, {r5-r7} - mov r3, sp - strh r0, [r3] - mov r0, sp - strh r1, [r0, 0x2] - lsls r2, 16 - asrs r4, r2, 16 - ldr r0, _0815F6D8 @ =0xffe00000 - adds r2, r0 - asrs r2, 16 - mov r1, r12 - lsls r5, r1, 16 - asrs r5, 16 - mov r0, sp - adds r1, r2, 0 - adds r2, r5, 0 - mov r3, r10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r3, r9 - strh r0, [r3] - adds r4, 0x20 - lsls r4, 16 - asrs r4, 16 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r4, r8 - strh r0, [r4] - ldr r2, _0815F6DC @ =gSprites - mov r5, r9 - movs r6, 0 - ldrsh r1, [r5, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r3, 0x4 - orrs r1, r3 - strb r1, [r0] - movs r7, 0 - ldrsh r1, [r4, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - bl StartSpriteAnim - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815F6D4: .4byte gUnknown_847A878 -_0815F6D8: .4byte 0xffe00000 -_0815F6DC: .4byte gSprites - thumb_func_end sub_815F610 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unknown_task.s b/asm/unknown_task.s deleted file mode 100644 index 6f417a4a1..000000000 --- a/asm/unknown_task.s +++ /dev/null @@ -1,644 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start remove_some_task -remove_some_task: @ 8087E64 - push {r4,lr} - ldr r4, _08087E94 @ =gUnknown_2039600 - movs r0, 0 - strb r0, [r4, 0x15] - ldr r1, _08087E98 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _08087E9C @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _08087EA0 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldrb r0, [r4, 0x18] - cmp r0, 0xFF - beq _08087E8E - bl DestroyTask - movs r0, 0xFF - strb r0, [r4, 0x18] -_08087E8E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087E94: .4byte gUnknown_2039600 -_08087E98: .4byte 0x040000b0 -_08087E9C: .4byte 0x0000c5ff -_08087EA0: .4byte 0x00007fff - thumb_func_end remove_some_task - - thumb_func_start dp12_8087EA4 -dp12_8087EA4: @ 8087EA4 - push {r4,lr} - sub sp, 0x4 - mov r0, sp - movs r4, 0 - strh r4, [r0] - ldr r1, _08087ED8 @ =gUnknown_2038700 - ldr r2, _08087EDC @ =0x01000780 - bl CpuSet - ldr r0, _08087EE0 @ =gUnknown_2039600 - movs r1, 0 - str r1, [r0] - str r1, [r0, 0x4] - str r1, [r0, 0x8] - str r1, [r0, 0xC] - strb r4, [r0, 0x14] - strb r4, [r0, 0x15] - strb r4, [r0, 0x16] - strb r4, [r0, 0x17] - movs r1, 0xFF - strb r1, [r0, 0x18] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087ED8: .4byte gUnknown_2038700 -_08087EDC: .4byte 0x01000780 -_08087EE0: .4byte gUnknown_2039600 - thumb_func_end dp12_8087EA4 - - thumb_func_start sub_8087EE4 -sub_8087EE4: @ 8087EE4 - push {lr} - sub sp, 0xC - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r0, _08087F08 @ =0xa2600001 - cmp r1, r0 - bne _08087F18 - ldr r0, _08087F0C @ =gUnknown_2039600 - ldr r1, _08087F10 @ =gUnknown_2038702 - str r1, [r0] - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - str r1, [r0, 0x4] - ldr r1, _08087F14 @ =sub_8087FE0 - b _08087F28 - .align 2, 0 -_08087F08: .4byte 0xa2600001 -_08087F0C: .4byte gUnknown_2039600 -_08087F10: .4byte gUnknown_2038702 -_08087F14: .4byte sub_8087FE0 -_08087F18: - ldr r0, _08087F48 @ =gUnknown_2039600 - ldr r1, _08087F4C @ =gUnknown_2038704 - str r1, [r0] - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - str r1, [r0, 0x4] - ldr r1, _08087F50 @ =sub_8088000 -_08087F28: - str r1, [r0, 0x10] - adds r1, r0, 0 - ldr r0, [sp, 0x4] - str r0, [r1, 0xC] - ldr r0, [sp] - str r0, [r1, 0x8] - mov r0, sp - ldrb r0, [r0, 0x8] - strb r0, [r1, 0x15] - mov r0, sp - ldrb r0, [r0, 0x9] - strb r0, [r1, 0x16] - strb r0, [r1, 0x17] - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_08087F48: .4byte gUnknown_2039600 -_08087F4C: .4byte gUnknown_2038704 -_08087F50: .4byte sub_8088000 - thumb_func_end sub_8087EE4 - - thumb_func_start sub_8087F54 -sub_8087F54: @ 8087F54 - push {r4,lr} - ldr r4, _08087F84 @ =gUnknown_2039600 - ldrb r0, [r4, 0x15] - cmp r0, 0 - beq _08087FCE - cmp r0, 0x3 - bne _08087F98 - movs r0, 0 - strb r0, [r4, 0x15] - ldr r1, _08087F88 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _08087F8C @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _08087F90 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldr r1, _08087F94 @ =gUnknown_203961C - movs r0, 0x1 - strb r0, [r1] - b _08087FCE - .align 2, 0 -_08087F84: .4byte gUnknown_2039600 -_08087F88: .4byte 0x040000b0 -_08087F8C: .4byte 0x0000c5ff -_08087F90: .4byte 0x00007fff -_08087F94: .4byte gUnknown_203961C -_08087F98: - ldr r1, _08087FD4 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _08087FD8 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _08087FDC @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldrb r0, [r4, 0x14] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - ldr r0, [r4, 0x8] - str r0, [r1, 0x4] - ldr r0, [r4, 0xC] - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r0, [r4, 0x10] - bl _call_via_r0 - ldrb r0, [r4, 0x14] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4, 0x14] -_08087FCE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087FD4: .4byte 0x040000b0 -_08087FD8: .4byte 0x0000c5ff -_08087FDC: .4byte 0x00007fff - thumb_func_end sub_8087F54 - - thumb_func_start sub_8087FE0 -sub_8087FE0: @ 8087FE0 - ldr r0, _08087FF8 @ =gUnknown_2039600 - ldr r2, [r0, 0x8] - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _08087FFC @ =gUnknown_2038700 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_08087FF8: .4byte gUnknown_2039600 -_08087FFC: .4byte gUnknown_2038700 - thumb_func_end sub_8087FE0 - - thumb_func_start sub_8088000 -sub_8088000: @ 8088000 - ldr r0, _08088018 @ =gUnknown_2039600 - ldr r2, [r0, 0x8] - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _0808801C @ =gUnknown_2038700 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - bx lr - .align 2, 0 -_08088018: .4byte gUnknown_2039600 -_0808801C: .4byte gUnknown_2038700 - thumb_func_end sub_8088000 - - thumb_func_start task00_for_dp12 -task00_for_dp12: @ 8088020 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r6, 0 - ldr r0, _08088048 @ =gUnknown_203961C - ldrb r0, [r0] - cmp r0, 0 - beq _08088050 - mov r0, r12 - bl DestroyTask - ldr r1, _0808804C @ =gUnknown_2039600 - movs r0, 0xFF - strb r0, [r1, 0x18] - b _080881D0 - .align 2, 0 -_08088048: .4byte gUnknown_203961C -_0808804C: .4byte gUnknown_2039600 -_08088050: - ldr r1, _0808807C @ =gTasks - mov r0, r12 - lsls r2, r0, 2 - adds r0, r2, r0 - lsls r0, 3 - adds r3, r0, r1 - movs r4, 0x16 - ldrsh r0, [r3, r4] - mov r10, r1 - mov r9, r2 - cmp r0, 0 - beq _080880FC - movs r1, 0x14 - ldrsh r0, [r3, r1] - cmp r0, 0xE - bhi _080880FC - lsls r0, 2 - ldr r1, _08088080 @ =_08088084 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808807C: .4byte gTasks -_08088080: .4byte _08088084 - .align 2, 0 -_08088084: - .4byte _080880C0 - .4byte _080880FC - .4byte _080880C8 - .4byte _080880FC - .4byte _080880D0 - .4byte _080880FC - .4byte _080880D8 - .4byte _080880FC - .4byte _080880E0 - .4byte _080880FC - .4byte _080880E8 - .4byte _080880FC - .4byte _080880F0 - .4byte _080880FC - .4byte _080880F8 -_080880C0: - ldr r0, _080880C4 @ =gUnknown_2022974 - b _080880FA - .align 2, 0 -_080880C4: .4byte gUnknown_2022974 -_080880C8: - ldr r0, _080880CC @ =gUnknown_2022976 - b _080880FA - .align 2, 0 -_080880CC: .4byte gUnknown_2022976 -_080880D0: - ldr r0, _080880D4 @ =gUnknown_2022978 - b _080880FA - .align 2, 0 -_080880D4: .4byte gUnknown_2022978 -_080880D8: - ldr r0, _080880DC @ =gUnknown_202297A - b _080880FA - .align 2, 0 -_080880DC: .4byte gUnknown_202297A -_080880E0: - ldr r0, _080880E4 @ =gUnknown_202297C - b _080880FA - .align 2, 0 -_080880E4: .4byte gUnknown_202297C -_080880E8: - ldr r0, _080880EC @ =gUnknown_202297E - b _080880FA - .align 2, 0 -_080880EC: .4byte gUnknown_202297E -_080880F0: - ldr r0, _080880F4 @ =gUnknown_2022980 - b _080880FA - .align 2, 0 -_080880F4: .4byte gUnknown_2022980 -_080880F8: - ldr r0, _0808815C @ =gUnknown_2022982 -_080880FA: - ldrh r6, [r0] -_080880FC: - mov r0, r9 - add r0, r12 - lsls r0, 3 - mov r2, r10 - adds r1, r0, r2 - ldrh r2, [r1, 0x10] - movs r3, 0x10 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08088168 - subs r0, r2, 0x1 - strh r0, [r1, 0x10] - movs r4, 0xE - ldrsh r0, [r1, r4] - movs r3, 0xA0 - lsls r3, 1 - adds r2, r0, r3 - movs r4, 0x8 - ldrsh r3, [r1, r4] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080881D0 - ldr r5, _08088160 @ =gUnknown_2038700 - ldr r0, _08088164 @ =gUnknown_2039600 - mov r8, r0 - adds r7, r1, 0 - lsls r0, r2, 1 - adds r4, r0, r5 -_08088136: - lsls r2, r3, 1 - mov r0, r8 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r5 - ldrh r0, [r4] - adds r0, r6 - strh r0, [r2] - adds r4, 0x2 - adds r3, 0x1 - movs r1, 0xA - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _08088136 - b _080881D0 - .align 2, 0 -_0808815C: .4byte gUnknown_2022982 -_08088160: .4byte gUnknown_2038700 -_08088164: .4byte gUnknown_2039600 -_08088168: - ldrh r0, [r1, 0x12] - strh r0, [r1, 0x10] - movs r2, 0xE - ldrsh r0, [r1, r2] - movs r3, 0xA0 - lsls r3, 1 - adds r2, r0, r3 - movs r4, 0x8 - ldrsh r3, [r1, r4] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080881B0 - ldr r5, _080881E0 @ =gUnknown_2038700 - adds r7, r1, 0 - lsls r0, r2, 1 - adds r4, r0, r5 - ldr r0, _080881E4 @ =gUnknown_2039600 - mov r8, r0 -_0808818E: - lsls r2, r3, 1 - mov r0, r8 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r5 - ldrh r0, [r4] - adds r0, r6 - strh r0, [r2] - adds r4, 0x2 - adds r3, 0x1 - movs r1, 0xA - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _0808818E -_080881B0: - mov r0, r9 - add r0, r12 - lsls r0, 3 - mov r3, r10 - adds r2, r0, r3 - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xC - ldrsh r1, [r2, r4] - cmp r0, r1 - bne _080881D0 - movs r0, 0 - strh r0, [r2, 0xE] -_080881D0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080881E0: .4byte gUnknown_2038700 -_080881E4: .4byte gUnknown_2039600 - thumb_func_end task00_for_dp12 - - thumb_func_start sub_80881E8 -sub_80881E8: @ 80881E8 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r1, 0 - movs r2, 0 - ldr r0, _0808822C @ =gUnknown_825E074 - mov r12, r0 -_080881FC: - lsls r0, r1, 1 - adds r3, r0, r6 - lsls r0, r2, 1 - add r0, r12 - movs r7, 0 - ldrsh r0, [r0, r7] - muls r0, r4 - cmp r0, 0 - bge _08088210 - adds r0, 0xFF -_08088210: - asrs r0, 8 - strh r0, [r3] - adds r0, r2, r5 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xFF - bls _080881FC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808822C: .4byte gUnknown_825E074 - thumb_func_end sub_80881E8 - - thumb_func_start sub_8088230 -sub_8088230: @ 8088230 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r5, r0, 0 - str r1, [sp, 0x10] - ldr r0, [sp, 0x40] - mov r8, r0 - ldr r1, [sp, 0x44] - mov r9, r1 - ldr r0, [sp, 0x48] - mov r10, r0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, [sp, 0x10] - lsls r1, 24 - str r1, [sp, 0x14] - lsrs r0, r1, 24 - str r0, [sp, 0xC] - lsls r1, r2, 24 - lsrs r1, 24 - str r1, [sp, 0x18] - lsls r2, r3, 24 - lsrs r2, 24 - str r2, [sp, 0x1C] - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r3, r9 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl dp12_8087EA4 - ldr r0, _0808833C @ =0x04000010 - add r0, r9 - str r0, [sp] - ldr r0, _08088340 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_8087EE4 - ldr r0, _08088344 @ =task00_for_dp12 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08088348 @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - strh r5, [r4, 0x8] - mov r3, sp - ldrh r3, [r3, 0xC] - strh r3, [r4, 0xA] - movs r0, 0x80 - lsls r0, 1 - ldr r1, [sp, 0x18] - bl __divsi3 - strh r0, [r4, 0xC] - movs r0, 0 - strh r0, [r4, 0xE] - mov r1, r8 - strh r1, [r4, 0x10] - strh r1, [r4, 0x12] - mov r3, r9 - strh r3, [r4, 0x14] - mov r0, r10 - strh r0, [r4, 0x16] - ldr r0, _0808834C @ =gUnknown_2039600 - strb r7, [r0, 0x18] - ldr r0, _08088350 @ =gUnknown_203961C - movs r1, 0 - strb r1, [r0] - ldr r4, _08088354 @ =gUnknown_2038980 - ldr r3, [sp, 0xC] - subs r6, r3, r5 - lsls r3, r6, 24 - lsrs r3, 24 - adds r0, r4, 0 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - bl sub_80881E8 - ldr r0, [sp, 0xC] - cmp r5, r0 - bge _0808832A - ldr r1, _08088358 @ =0xfffffd80 - adds r2, r4, r1 - lsls r1, r5, 1 - movs r3, 0xF0 - lsls r3, 3 - adds r0, r1, r3 - adds r3, r0, r2 - adds r1, r2 - adds r2, r4, 0 - adds r5, r6, 0 -_08088316: - ldrh r0, [r2] - strh r0, [r1] - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bne _08088316 -_0808832A: - adds r0, r7, 0 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0808833C: .4byte 0x04000010 -_08088340: .4byte 0xa2600001 -_08088344: .4byte task00_for_dp12 -_08088348: .4byte gTasks -_0808834C: .4byte gUnknown_2039600 -_08088350: .4byte gUnknown_203961C -_08088354: .4byte gUnknown_2038980 -_08088358: .4byte 0xfffffd80 - thumb_func_end sub_8088230 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/util.s b/asm/util.s deleted file mode 100644 index a3efaa8f2..000000000 --- a/asm/util.s +++ /dev/null @@ -1,500 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start CreateInvisibleSpriteWithCallback -CreateInvisibleSpriteWithCallback: @ 8044EF8 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _08044F2C @ =gUnknown_825E4DC - movs r1, 0xF8 - movs r2, 0xA8 - movs r3, 0xE - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08044F30 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r3, r2, r5 - adds r3, 0x3E - ldrb r1, [r3] - movs r4, 0x4 - orrs r1, r4 - strb r1, [r3] - adds r5, 0x1C - adds r2, r5 - str r6, [r2] - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08044F2C: .4byte gUnknown_825E4DC -_08044F30: .4byte gSprites - thumb_func_end CreateInvisibleSpriteWithCallback - - thumb_func_start StoreWordInTwoHalfwords -StoreWordInTwoHalfwords: @ 8044F34 - strh r1, [r0] - lsrs r1, 16 - strh r1, [r0, 0x2] - bx lr - thumb_func_end StoreWordInTwoHalfwords - - thumb_func_start LoadWordFromTwoHalfwords -LoadWordFromTwoHalfwords: @ 8044F3C - ldrh r2, [r0] - movs r3, 0x2 - ldrsh r0, [r0, r3] - lsls r0, 16 - orrs r2, r0 - str r2, [r1] - bx lr - thumb_func_end LoadWordFromTwoHalfwords - - thumb_func_start SetBgAffineStruct -SetBgAffineStruct: @ 8044F4C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, [sp, 0x18] - ldr r5, [sp, 0x1C] - ldr r6, [sp, 0x20] - ldr r7, [sp, 0x24] - mov r8, r7 - str r1, [r0] - str r2, [r0, 0x4] - strh r3, [r0, 0x8] - strh r4, [r0, 0xA] - strh r5, [r0, 0xC] - strh r6, [r0, 0xE] - mov r1, r8 - strh r1, [r0, 0x10] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SetBgAffineStruct - - thumb_func_start DoBgAffineSet -DoBgAffineSet: @ 8044F78 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x24 - mov r8, r0 - ldr r0, [sp, 0x38] - ldr r4, [sp, 0x3C] - ldr r5, [sp, 0x40] - ldr r6, [sp, 0x44] - lsls r6, 16 - lsrs r6, 16 - lsls r3, 16 - asrs r3, 16 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - lsls r4, 16 - asrs r4, 16 - str r4, [sp, 0x4] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x8] - str r6, [sp, 0xC] - add r0, sp, 0x10 - bl SetBgAffineStruct - add r0, sp, 0x10 - mov r1, r8 - movs r2, 0x1 - bl BgAffineSet - add sp, 0x24 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end DoBgAffineSet - - thumb_func_start CopySpriteTiles -CopySpriteTiles: @ 8044FC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - str r2, [sp, 0x20] - adds r4, r3, 0 - ldr r7, [sp, 0x5C] - lsls r0, 24 - lsls r1, 24 - ldr r2, _0804504C @ =gUnknown_825E4F4 - lsrs r1, 23 - lsrs r0, 21 - adds r1, r0 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - str r0, [sp, 0x24] - adds r1, r2 - ldrb r1, [r1] - str r1, [sp, 0x28] - movs r1, 0 - cmp r1, r0 - bcc _08044FF8 - b _0804517A -_08044FF8: - movs r0, 0x20 - ldr r2, [sp, 0x28] - subs r0, r2 - lsls r0, 1 - str r0, [sp, 0x2C] -_08045002: - movs r2, 0 - adds r1, 0x1 - str r1, [sp, 0x34] - ldr r3, [sp, 0x28] - cmp r2, r3 - bcc _08045010 - b _08045168 -_08045010: - ldr r0, _08045050 @ =0x040000d4 - mov r8, r0 -_08045014: - ldrh r1, [r4] - ldr r0, _08045054 @ =0x000003ff - ands r0, r1 - lsls r0, 5 - mov r12, r0 - movs r0, 0xC0 - lsls r0, 4 - ands r0, r1 - mov r3, sp - strh r1, [r3, 0x38] - cmp r0, 0 - bne _0804505C - ldr r0, [sp, 0x20] - add r0, r12 - mov r1, r8 - str r0, [r1] - str r7, [r1, 0x4] - ldr r3, _08045058 @ =0x84000008 - str r3, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r4, 0x2 - str r4, [sp, 0x30] - adds r7, 0x20 - mov r10, r7 - adds r2, 0x1 - mov r9, r2 - b _08045156 - .align 2, 0 -_0804504C: .4byte gUnknown_825E4F4 -_08045050: .4byte 0x040000d4 -_08045054: .4byte 0x000003ff -_08045058: .4byte 0x84000008 -_0804505C: - movs r1, 0x80 - lsls r1, 4 - cmp r0, r1 - bne _080450AC - movs r3, 0 - adds r4, 0x2 - str r4, [sp, 0x30] - movs r0, 0x20 - adds r0, r7 - mov r10, r0 - adds r2, 0x1 - mov r9, r2 - ldr r4, _080450A4 @ =0x040000d4 - ldr r6, _080450A8 @ =0x84000001 - movs r5, 0x7 -_0804507A: - lsls r2, r3, 24 - asrs r2, 24 - subs r0, r5, r2 - lsls r0, 2 - add r0, r12 - ldr r1, [sp, 0x20] - adds r0, r1, r0 - lsls r1, r2, 2 - adds r1, r7, r1 - str r0, [r4] - str r1, [r4, 0x4] - str r6, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, 0x1 - lsls r2, 24 - lsrs r3, r2, 24 - asrs r2, 24 - cmp r2, 0x7 - ble _0804507A - b _08045156 - .align 2, 0 -_080450A4: .4byte 0x040000d4 -_080450A8: .4byte 0x84000001 -_080450AC: - movs r3, 0 - adds r4, 0x2 - str r4, [sp, 0x30] - movs r0, 0x20 - adds r0, r7 - mov r10, r0 - adds r2, 0x1 - mov r9, r2 -_080450BC: - movs r2, 0 - lsls r4, r3, 24 - lsls r0, r4, 2 - lsrs r0, 24 - adds r6, r0, 0x3 - mov r1, r12 - adds r5, r1, r0 -_080450CA: - lsls r1, r2, 24 - asrs r1, 24 - subs r0, r6, r1 - mov r2, sp - adds r3, r2, r0 - adds r0, r5, r1 - ldr r2, [sp, 0x20] - adds r0, r2, r0 - ldrb r2, [r0] - movs r0, 0xF - ands r0, r2 - lsls r0, 4 - lsrs r2, 4 - orrs r0, r2 - strb r0, [r3] - adds r1, 0x1 - lsls r1, 24 - lsrs r2, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080450CA - movs r3, 0x80 - lsls r3, 17 - adds r0, r4, r3 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x7 - ble _080450BC - movs r0, 0x80 - lsls r0, 4 - mov r1, sp - ldrh r1, [r1, 0x38] - ands r0, r1 - cmp r0, 0 - beq _08045148 - movs r3, 0 - ldr r4, _08045140 @ =0x040000d4 - ldr r6, _08045144 @ =0x84000001 - movs r5, 0x7 -_08045118: - lsls r1, r3, 24 - asrs r1, 24 - subs r0, r5, r1 - lsls r0, 2 - mov r3, sp - adds r2, r3, r0 - lsls r0, r1, 2 - adds r0, r7, r0 - str r2, [r4] - str r0, [r4, 0x4] - str r6, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r1, 0x1 - lsls r1, 24 - lsrs r3, r1, 24 - asrs r1, 24 - cmp r1, 0x7 - ble _08045118 - b _08045156 - .align 2, 0 -_08045140: .4byte 0x040000d4 -_08045144: .4byte 0x84000001 -_08045148: - mov r0, sp - mov r1, r8 - str r0, [r1] - str r7, [r1, 0x4] - ldr r2, _0804518C @ =0x84000008 - str r2, [r1, 0x8] - ldr r0, [r1, 0x8] -_08045156: - ldr r4, [sp, 0x30] - mov r7, r10 - mov r3, r9 - lsls r0, r3, 24 - lsrs r2, r0, 24 - ldr r0, [sp, 0x28] - cmp r2, r0 - bcs _08045168 - b _08045014 -_08045168: - ldr r1, [sp, 0x2C] - adds r4, r1 - ldr r2, [sp, 0x34] - lsls r0, r2, 24 - lsrs r1, r0, 24 - ldr r3, [sp, 0x24] - cmp r1, r3 - bcs _0804517A - b _08045002 -_0804517A: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804518C: .4byte 0x84000008 - thumb_func_end CopySpriteTiles - - thumb_func_start CountTrailingZeroBits -CountTrailingZeroBits: @ 8045190 - push {lr} - adds r2, r0, 0 - movs r1, 0 - movs r3, 0x1 -_08045198: - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _080451A4 - adds r0, r1, 0 - b _080451B2 -_080451A4: - lsrs r2, 1 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1F - bls _08045198 - movs r0, 0 -_080451B2: - pop {r1} - bx r1 - thumb_func_end CountTrailingZeroBits - - thumb_func_start CalcCRC16 -CalcCRC16: @ 80451B8 - push {r4-r7,lr} - adds r7, r0, 0 - adds r4, r1, 0 - ldr r2, _080451E8 @ =0x00001121 - movs r3, 0 - cmp r3, r4 - bcs _08045204 - movs r6, 0x1 - ldr r0, _080451EC @ =0x00008408 - adds r5, r0, 0 -_080451CC: - adds r0, r7, r3 - ldrb r0, [r0] - eors r2, r0 - movs r1, 0 - adds r3, 0x1 -_080451D6: - adds r0, r2, 0 - ands r0, r6 - cmp r0, 0 - beq _080451F0 - lsrs r0, r2, 1 - eors r0, r5 - lsls r0, 16 - lsrs r2, r0, 16 - b _080451F2 - .align 2, 0 -_080451E8: .4byte 0x00001121 -_080451EC: .4byte 0x00008408 -_080451F0: - lsrs r2, 1 -_080451F2: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _080451D6 - lsls r0, r3, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _080451CC -_08045204: - mvns r0, r2 - lsls r0, 16 - lsrs r0, 16 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CalcCRC16 - - thumb_func_start CalcCRC16WithTable -CalcCRC16WithTable: @ 8045210 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r2, _0804524C @ =0x00001121 - movs r3, 0 - cmp r3, r4 - bcs _0804523E - ldr r6, _08045250 @ =gUnknown_825E50C -_08045220: - lsrs r1, r2, 8 - adds r0, r5, r3 - ldrb r0, [r0] - eors r2, r0 - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r6 - ldrh r0, [r0] - adds r2, r0, 0 - eors r2, r1 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _08045220 -_0804523E: - mvns r0, r2 - lsls r0, 16 - lsrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0804524C: .4byte 0x00001121 -_08045250: .4byte gUnknown_825E50C - thumb_func_end CalcCRC16WithTable - - thumb_func_start CalcByteArraySum -CalcByteArraySum: @ 8045254 - push {r4,lr} - adds r4, r0, 0 - movs r3, 0 - movs r2, 0 - cmp r3, r1 - bcs _0804526C -_08045260: - adds r0, r4, r2 - ldrb r0, [r0] - adds r3, r0 - adds r2, 0x1 - cmp r2, r1 - bcc _08045260 -_0804526C: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end CalcByteArraySum - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/water.s b/asm/water.s new file mode 100644 index 000000000..5518dd33e --- /dev/null +++ b/asm/water.s @@ -0,0 +1,3775 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80AABC0 +sub_80AABC0: @ 80AABC0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080AAC48 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AABE8 + ldr r1, _080AAC4C @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r5, 0xA] + ldrh r0, [r1, 0x2] + strh r0, [r5, 0xC] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0xE] +_080AABE8: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r2, 0x8 + ldrsh r0, [r5, r2] + movs r2, 0xC + ldrsh r1, [r5, r2] + bl __modsi3 + cmp r0, 0x1 + bne _080AAC30 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x50 + bl __umodsi3 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, _080AAC50 @ =gUnknown_83E5898 + adds r1, r4, 0 + movs r3, 0x4 + bl CreateSprite +_080AAC30: + movs r0, 0x8 + ldrsh r1, [r5, r0] + movs r2, 0xE + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _080AAC42 + adds r0, r6, 0 + bl DestroyAnimVisualTask +_080AAC42: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AAC48: .4byte gTasks +_080AAC4C: .4byte gBattleAnimArgs +_080AAC50: .4byte gUnknown_83E5898 + thumb_func_end sub_80AABC0 + + thumb_func_start sub_80AAC54 +sub_80AAC54: @ 80AAC54 + ldr r1, _080AAC5C @ =sub_80AAC60 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080AAC5C: .4byte sub_80AAC60 + thumb_func_end sub_80AAC54 + + thumb_func_start sub_80AAC60 +sub_80AAC60: @ 80AAC60 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD + bgt _080AAC7E + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x26] + adds r0, 0x4 + strh r0, [r2, 0x26] +_080AAC7E: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AAC92 + adds r0, r2, 0 + bl DestroySprite +_080AAC92: + pop {r0} + bx r0 + thumb_func_end sub_80AAC60 + + thumb_func_start sub_80AAC98 +sub_80AAC98: @ 80AAC98 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, _080AACC0 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AACC8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080AACC4 @ =gBattleAnimArgs + ldrh r1, [r4] + subs r0, r1 + b _080AACDA + .align 2, 0 +_080AACC0: .4byte gBattleAnimAttacker +_080AACC4: .4byte gBattleAnimArgs +_080AACC8: + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + ldr r4, _080AADA0 @ =gBattleAnimArgs + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 +_080AACDA: + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r6, 0x22] + adds r2, r6, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AADA4 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AAD10 + ldr r1, _080AADA0 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080AAD10: + ldr r5, _080AADA0 @ =gBattleAnimArgs + ldrh r0, [r5, 0xC] + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldr r4, _080AADA8 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080AADAC @ =SpriteCallbackDummy + bl CreateInvisibleSpriteWithCallback + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + strh r4, [r6, 0x38] + ldrb r0, [r5, 0x8] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Sin + ldrh r1, [r6, 0x20] + subs r1, r0 + strh r1, [r6, 0x20] + ldrb r0, [r5, 0x8] + movs r2, 0x6 + ldrsh r1, [r5, r2] + bl Cos + ldrh r1, [r6, 0x22] + subs r1, r0 + strh r1, [r6, 0x22] + ldr r0, _080AADB0 @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r5, 0x4] + strh r0, [r1, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r1, 0x30] + ldrh r0, [r5, 0xA] + strh r0, [r1, 0x32] + ldrb r0, [r5, 0x8] + lsls r0, 8 + strh r0, [r1, 0x34] + ldrh r0, [r5, 0xC] + strh r0, [r1, 0x36] + ldr r1, _080AADB4 @ =sub_80AADB8 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AADA0: .4byte gBattleAnimArgs +_080AADA4: .4byte gBattleAnimAttacker +_080AADA8: .4byte gBattleAnimTarget +_080AADAC: .4byte SpriteCallbackDummy +_080AADB0: .4byte gSprites +_080AADB4: .4byte sub_80AADB8 + thumb_func_end sub_80AAC98 + + thumb_func_start sub_80AADB8 +sub_80AADB8: @ 80AADB8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r1, [r5, 0x38] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080AAE20 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r7, r0, r2 + ldrh r4, [r7, 0x36] + lsls r4, 24 + lsrs r4, 24 + ldrh r0, [r7, 0x34] + mov r8, r0 + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_80755E0 + mov r1, r8 + lsrs r6, r1, 8 + movs r0, 0x2E + ldrsh r1, [r7, r0] + adds r0, r6, 0 + bl Sin + ldrh r1, [r5, 0x24] + adds r0, r1 + strh r0, [r5, 0x24] + movs r0, 0x30 + ldrsh r1, [r7, r0] + adds r0, r6, 0 + bl Cos + ldrh r1, [r5, 0x26] + adds r0, r1 + strh r0, [r5, 0x26] + ldrh r0, [r7, 0x32] + mov r1, r8 + adds r1, r0 + strh r1, [r7, 0x34] + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + cmp r4, 0 + beq _080AAE24 + strh r4, [r7, 0x36] + b _080AAE2E + .align 2, 0 +_080AAE20: .4byte gSprites +_080AAE24: + ldr r0, _080AAE3C @ =sub_80AAE40 + str r0, [r5, 0x1C] + adds r0, r7, 0 + bl DestroySprite +_080AAE2E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AAE3C: .4byte sub_80AAE40 + thumb_func_end sub_80AADB8 + + thumb_func_start sub_80AAE40 +sub_80AAE40: @ 80AAE40 + push {lr} + adds r3, r0, 0 + adds r3, 0x2C + ldrb r2, [r3] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + strb r1, [r3] + ldr r1, _080AAE60 @ =sub_8074F6C + str r1, [r0, 0x1C] + ldr r1, _080AAE64 @ =sub_80AAE68 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080AAE60: .4byte sub_8074F6C +_080AAE64: .4byte sub_80AAE68 + thumb_func_end sub_80AAE40 + + thumb_func_start sub_80AAE68 +sub_80AAE68: @ 80AAE68 + push {lr} + movs r1, 0xA + strh r1, [r0, 0x2E] + ldr r1, _080AAE7C @ =sub_8074C44 + str r1, [r0, 0x1C] + ldr r1, _080AAE80 @ =move_anim_8074EE0 + bl StoreSpriteCallbackInData6 + pop {r0} + bx r0 + .align 2, 0 +_080AAE7C: .4byte sub_8074C44 +_080AAE80: .4byte move_anim_8074EE0 + thumb_func_end sub_80AAE68 + + thumb_func_start sub_80AAE84 +sub_80AAE84: @ 80AAE84 + push {r4-r7,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r0, _080AAEAC @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AAEB4 + ldr r1, _080AAEB0 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + lsls r0, 16 + lsrs r6, r0, 16 + adds r7, r1, 0 + b _080AAEBA + .align 2, 0 +_080AAEAC: .4byte gBattleAnimAttacker +_080AAEB0: .4byte gBattleAnimArgs +_080AAEB4: + ldr r0, _080AAF10 @ =gBattleAnimArgs + ldrh r6, [r0, 0x4] + adds r7, r0, 0 +_080AAEBA: + ldrh r0, [r7, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080AAF14 @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r7, [r7, 0x6] + adds r0, r7 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080AAF18 @ =sub_80AAF1C + str r0, [r5, 0x1C] + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AAF10: .4byte gBattleAnimArgs +_080AAF14: .4byte gBattleAnimTarget +_080AAF18: .4byte sub_80AAF1C + thumb_func_end sub_80AAE84 + + thumb_func_start sub_80AAF1C +sub_80AAF1C: @ 80AAF1C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AAF58 @ =gBattleAnimArgs + ldrh r1, [r0, 0xE] + ldr r0, _080AAF5C @ =0x0000ffff + cmp r1, r0 + bne _080AAF3E + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] +_080AAF3E: + adds r0, r4, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080AAF50 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AAF50: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AAF58: .4byte gBattleAnimArgs +_080AAF5C: .4byte 0x0000ffff + thumb_func_end sub_80AAF1C + + thumb_func_start sub_80AAF60 +sub_80AAF60: @ 80AAF60 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080AAF94 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r0, _080AAF98 @ =gBattleAnimArgs + ldrh r0, [r0] + strh r0, [r4, 0x8] + ldr r0, _080AAF9C @ =0x0000279c + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4, 0xC] + ldr r0, _080AAFA0 @ =sub_80AAFA4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AAF94: .4byte gTasks +_080AAF98: .4byte gBattleAnimArgs +_080AAF9C: .4byte 0x0000279c +_080AAFA0: .4byte sub_80AAFA4 + thumb_func_end sub_80AAF60 + + thumb_func_start sub_80AAFA4 +sub_80AAFA4: @ 80AAFA4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AB01C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x1C] + adds r0, 0x1 + strh r0, [r2, 0x1C] + lsls r0, 16 + asrs r0, 16 + mov r12, r1 + cmp r0, 0x3 + bne _080AAFF6 + movs r0, 0 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080AB020 @ =gPlttBufferFaded + lsls r0, r5, 1 + adds r0, r1 + ldrh r6, [r0] + adds r7, r1, 0 + adds r3, r0, 0x2 + movs r1, 0x6 + adds r2, r0, 0 +_080AAFE0: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080AAFE0 + adds r0, r5, 0x7 + lsls r0, 1 + adds r0, r7 + strh r6, [r0] +_080AAFF6: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r12 + ldrh r1, [r0, 0x1E] + adds r1, 0x1 + strh r1, [r0, 0x1E] + lsls r1, 16 + asrs r1, 16 + movs r2, 0x8 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _080AB016 + adds r0, r4, 0 + bl DestroyAnimVisualTask +_080AB016: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB01C: .4byte gTasks +_080AB020: .4byte gPlttBufferFaded + thumb_func_end sub_80AAFA4 + + thumb_func_start sub_80AB024 +sub_80AB024: @ 80AB024 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_8075160 + movs r0, 0x1E + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080AB08C @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x2E + ldrsh r1, [r5, r0] + movs r0, 0xD2 + lsls r0, 8 + bl __divsi3 + strh r0, [r5, 0x38] + ldr r0, _080AB090 @ =gBattleAnimArgs + ldrh r2, [r0, 0x6] + strh r2, [r5, 0x3C] + ldrh r1, [r0, 0xE] + movs r3, 0xE + ldrsh r0, [r0, r3] + cmp r0, 0x7F + ble _080AB094 + adds r0, r1, 0 + subs r0, 0x7F + lsls r0, 8 + strh r0, [r5, 0x3A] + negs r0, r2 + strh r0, [r5, 0x3C] + b _080AB098 + .align 2, 0 +_080AB08C: .4byte gBattleAnimTarget +_080AB090: .4byte gBattleAnimArgs +_080AB094: + lsls r0, r1, 8 + strh r0, [r5, 0x3A] +_080AB098: + ldr r1, _080AB0A8 @ =sub_80AB0AC + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AB0A8: .4byte sub_80AB0AC + thumb_func_end sub_80AB024 + + thumb_func_start sub_80AB0AC +sub_80AB0AC: @ 80AB0AC + push {r4,lr} + adds r4, r0, 0 + bl sub_80755E0 + lsls r0, 24 + cmp r0, 0 + beq _080AB0C0 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AB0C0: + ldrh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r2, 0x3A + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + adds r0, r1 + asrs r0, 8 + cmp r0, 0x7F + ble _080AB0F0 + movs r0, 0 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + negs r0, r0 + strh r0, [r4, 0x3C] + b _080AB0F8 +_080AB0F0: + ldrh r0, [r4, 0x38] + ldrh r1, [r4, 0x3A] + adds r0, r1 + strh r0, [r4, 0x3A] +_080AB0F8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AB0AC + + thumb_func_start sub_80AB100 +sub_80AB100: @ 80AB100 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AB120 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080AB124 @ =gBattleAnimArgs + ldrh r0, [r3] + movs r2, 0 + strh r0, [r1, 0x8] + strh r2, [r3, 0xE] + ldr r0, _080AB128 @ =sub_80AB12C + str r0, [r1] + bx lr + .align 2, 0 +_080AB120: .4byte gTasks +_080AB124: .4byte gBattleAnimArgs +_080AB128: .4byte sub_80AB12C + thumb_func_end sub_80AB100 + + thumb_func_start sub_80AB12C +sub_80AB12C: @ 80AB12C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080AB160 @ =gBattleAnimArgs + ldrh r0, [r2, 0xE] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r2, 0xE] + ldr r1, _080AB164 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bne _080AB15A + adds r0, r3, 0 + bl DestroyAnimVisualTask +_080AB15A: + pop {r0} + bx r0 + .align 2, 0 +_080AB160: .4byte gBattleAnimArgs +_080AB164: .4byte gTasks + thumb_func_end sub_80AB12C + + thumb_func_start sub_80AB168 +sub_80AB168: @ 80AB168 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r7, _080AB1B4 @ =gBattleAnimAttacker + ldrb r0, [r7] + movs r1, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r7] + movs r1, 0x1 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r6, _080AB1B8 @ =0x0000fff6 + strh r6, [r4, 0x26] + ldrb r0, [r7] + bl sub_807685C + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AB1C2 + ldrb r0, [r7] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AB1BC + movs r0, 0xA + strh r0, [r4, 0x24] + b _080AB1C4 + .align 2, 0 +_080AB1B4: .4byte gBattleAnimAttacker +_080AB1B8: .4byte 0x0000fff6 +_080AB1BC: + strh r6, [r4, 0x24] + subs r0, r5, 0x2 + b _080AB1C6 +_080AB1C2: + strh r6, [r4, 0x24] +_080AB1C4: + adds r0, r5, 0x2 +_080AB1C6: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldr r0, _080AB1D8 @ =sub_80AB1DC + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB1D8: .4byte sub_80AB1DC + thumb_func_end sub_80AB168 + + thumb_func_start sub_80AB1DC +sub_80AB1DC: @ 80AB1DC + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080AB1F2 + adds r0, r2, 0 + bl DestroyAnimSprite +_080AB1F2: + pop {r0} + bx r0 + thumb_func_end sub_80AB1DC + + thumb_func_start sub_80AB1F8 +sub_80AB1F8: @ 80AB1F8 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r5, _080AB2B8 @ =gBattleAnimAttacker + ldrb r0, [r5] + bl GetBattlerSide + adds r4, r0, 0 + ldr r0, _080AB2BC @ =gBattleAnimTarget + ldrb r0, [r0] + bl GetBattlerSide + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080AB242 + ldr r4, _080AB2C0 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4] + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + cmp r0, 0 + beq _080AB23A + ldrb r0, [r5] + bl GetBattlerPosition + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080AB242 +_080AB23A: + movs r1, 0 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4] +_080AB242: + ldr r5, _080AB2C0 @ =gBattleAnimArgs + movs r1, 0xA + ldrsh r0, [r5, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0 + cmp r0, 0 + bne _080AB256 + movs r1, 0x1 +_080AB256: + ldrb r0, [r5, 0xA] + movs r7, 0x1 + cmp r0, 0 + bne _080AB260 + movs r7, 0x3 +_080AB260: + adds r0, r6, 0 + bl sub_8075160 + ldr r0, _080AB2B8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _080AB27A + ldrh r0, [r5, 0x4] + negs r0, r0 + strh r0, [r5, 0x4] +_080AB27A: + ldrh r0, [r5, 0x8] + strh r0, [r6, 0x2E] + ldr r4, _080AB2BC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r4] + adds r1, r7, 0 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r6, 0x36] + ldr r0, _080AB2C4 @ =sub_8075590 + str r0, [r6, 0x1C] + ldr r1, _080AB2C8 @ =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB2B8: .4byte gBattleAnimAttacker +_080AB2BC: .4byte gBattleAnimTarget +_080AB2C0: .4byte gBattleAnimArgs +_080AB2C4: .4byte sub_8075590 +_080AB2C8: .4byte DestroyAnimSprite + thumb_func_end sub_80AB1F8 + + thumb_func_start sub_80AB2CC +sub_80AB2CC: @ 80AB2CC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075114 + ldr r0, _080AB2FC @ =gBattleAnimArgs + ldrh r1, [r0, 0x8] + strh r1, [r4, 0x2E] + ldrh r0, [r0, 0x4] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + adds r1, r0 + strh r1, [r4, 0x36] + ldr r0, _080AB300 @ =sub_8075590 + str r0, [r4, 0x1C] + ldr r1, _080AB304 @ =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB2FC: .4byte gBattleAnimArgs +_080AB300: .4byte sub_8075590 +_080AB304: .4byte DestroyAnimSprite + thumb_func_end sub_80AB2CC + + thumb_func_start sub_80AB308 +sub_80AB308: @ 80AB308 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080AB320 @ =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080AB324 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + b _080AB32C + .align 2, 0 +_080AB320: .4byte gBattleAnimArgs +_080AB324: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075160 +_080AB32C: + ldr r0, _080AB33C @ =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x3C] + ldr r0, _080AB340 @ =sub_80AB344 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB33C: .4byte gBattleAnimArgs +_080AB340: .4byte sub_80AB344 + thumb_func_end sub_80AB308 + + thumb_func_start sub_80AB344 +sub_80AB344: @ 80AB344 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x30 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080AB384 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AB384: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AB344 + + thumb_func_start sub_80AB38C +sub_80AB38C: @ 80AB38C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r1, _080AB3FC @ =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + bl SetAnimBgAttribute + mov r0, sp + bl sub_80752A0 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AB418 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute + ldr r0, _080AB400 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080AB408 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap + bl sub_807543C + b _080AB42E + .align 2, 0 +_080AB3FC: .4byte 0x00003f42 +_080AB400: .4byte gBattleAnimAttacker +_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap +_080AB408: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap + bl sub_807543C + b _080AB42E + .align 2, 0 +_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap +_080AB418: + ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap + ldr r1, [sp, 0x4] + bl LZDecompressVram + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0x1 + bl sub_80730C0 +_080AB42E: + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80753B4 + ldr r0, _080AB460 @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080AB468 + ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080AB476 + .align 2, 0 +_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap +_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet +_080AB460: .4byte gBattleAnimArgs +_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette +_080AB468: + ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette +_080AB476: + ldr r0, _080AB4E4 @ =sub_80AB79C + ldr r4, _080AB4E8 @ =gTasks + mov r2, r10 + lsls r5, r2, 2 + adds r1, r5, r2 + lsls r1, 3 + adds r6, r1, r4 + ldrb r1, [r6, 0x7] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0 + mov r9, r0 + mov r1, r8 + strh r1, [r6, 0x26] + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r7, r0, r4 + mov r0, r9 + strh r0, [r7, 0x8] + movs r0, 0x80 + lsls r0, 5 + strh r0, [r7, 0xA] + strh r0, [r7, 0xC] + bl sub_8073788 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080AB4F8 + ldr r1, _080AB4EC @ =0x0000ffb0 + adds r0, r1, 0 + ldr r2, _080AB4F0 @ =gBattle_BG1_X + strh r0, [r2] + adds r1, 0x20 + adds r0, r1, 0 + ldr r2, _080AB4F4 @ =gBattle_BG1_Y + strh r0, [r2] + movs r0, 0x2 + strh r0, [r6, 0x8] + movs r0, 0x1 + strh r0, [r6, 0xA] + mov r0, r9 + strh r0, [r7, 0xE] + b _080AB552 + .align 2, 0 +_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette +_080AB4E4: .4byte sub_80AB79C +_080AB4E8: .4byte gTasks +_080AB4EC: .4byte 0x0000ffb0 +_080AB4F0: .4byte gBattle_BG1_X +_080AB4F4: .4byte gBattle_BG1_Y +_080AB4F8: + ldr r0, _080AB528 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _080AB53C + ldr r2, _080AB52C @ =0x0000ff20 + adds r0, r2, 0 + ldr r2, _080AB530 @ =gBattle_BG1_X + strh r0, [r2] + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ldr r2, _080AB534 @ =gBattle_BG1_Y + strh r0, [r2] + movs r0, 0x2 + strh r0, [r6, 0x8] + ldr r0, _080AB538 @ =0x0000ffff + strh r0, [r6, 0xA] + strh r1, [r7, 0xE] + b _080AB552 + .align 2, 0 +_080AB528: .4byte gBattleAnimAttacker +_080AB52C: .4byte 0x0000ff20 +_080AB530: .4byte gBattle_BG1_X +_080AB534: .4byte gBattle_BG1_Y +_080AB538: .4byte 0x0000ffff +_080AB53C: + ldr r0, _080AB584 @ =gBattle_BG1_X + strh r4, [r0] + ldr r1, _080AB588 @ =0x0000ffd0 + adds r0, r1, 0 + ldr r2, _080AB58C @ =gBattle_BG1_Y + strh r0, [r2] + ldr r0, _080AB590 @ =0x0000fffe + strh r0, [r6, 0x8] + movs r0, 0x1 + strh r0, [r6, 0xA] + strh r4, [r7, 0xE] +_080AB552: + ldr r0, _080AB584 @ =gBattle_BG1_X + ldrh r1, [r0] + movs r0, 0x14 + bl SetGpuReg + ldr r2, _080AB58C @ =gBattle_BG1_Y + ldrh r1, [r2] + movs r0, 0x16 + bl SetGpuReg + ldr r1, _080AB594 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080AB598 + movs r0, 0x30 + strh r0, [r1, 0x10] + movs r0, 0x70 + b _080AB59C + .align 2, 0 +_080AB584: .4byte gBattle_BG1_X +_080AB588: .4byte 0x0000ffd0 +_080AB58C: .4byte gBattle_BG1_Y +_080AB590: .4byte 0x0000fffe +_080AB594: .4byte gTasks +_080AB598: + movs r0, 0 + strh r0, [r1, 0x10] +_080AB59C: + strh r0, [r1, 0x12] + ldr r1, _080AB5C0 @ =gTasks + mov r2, r10 + adds r0, r5, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x14] + ldr r1, _080AB5C4 @ =sub_80AB5C8 + str r1, [r0] + 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 +_080AB5C0: .4byte gTasks +_080AB5C4: .4byte sub_80AB5C8 + thumb_func_end sub_80AB38C + + thumb_func_start sub_80AB5C8 +sub_80AB5C8: @ 80AB5C8 + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080AB6F4 @ =gBattle_BG1_X + ldr r2, _080AB6F8 @ =gBattle_BG1_Y + ldr r0, _080AB6FC @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0x8] + ldrh r3, [r1] + adds r0, r3 + strh r0, [r1] + ldrh r0, [r4, 0xA] + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + mov r0, sp + bl sub_80752A0 + ldrh r0, [r4, 0xA] + ldrh r3, [r4, 0xC] + adds r0, r3 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080AB65C + ldr r1, _080AB700 @ =gPlttBufferFaded + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 4 + adds r0, 0x7 + lsls r0, 1 + adds r0, r1 + ldrh r6, [r0] + movs r2, 0x6 + adds r7, r1, 0 + adds r3, r7, 0 + mov r4, sp +_080AB622: + ldrb r0, [r4, 0x8] + lsls r0, 4 + adds r1, r2, 0x1 + adds r0, r1 + lsls r1, r0, 1 + adds r1, r3 + subs r0, 0x1 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080AB622 + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 4 + adds r0, 0x1 + lsls r0, 1 + adds r0, r7 + strh r6, [r0] + ldr r1, _080AB6FC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x12] +_080AB65C: + ldr r1, _080AB6FC @ =gTasks + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0x14] + adds r0, 0x1 + strh r0, [r3, 0x14] + lsls r0, 16 + asrs r0, 16 + adds r4, r1, 0 + adds r6, r2, 0 + cmp r0, 0x1 + ble _080AB6CA + movs r0, 0 + strh r0, [r3, 0x14] + ldrh r0, [r3, 0xE] + adds r2, r0, 0x1 + strh r2, [r3, 0xE] + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0xD + bgt _080AB6A6 + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1, 0xA] + ldrh r0, [r3, 0x10] + adds r0, 0x1 + strh r0, [r3, 0x10] +_080AB6A6: + movs r1, 0xE + ldrsh r0, [r3, r1] + cmp r0, 0x36 + ble _080AB6CA + ldrh r2, [r3, 0x10] + subs r2, 0x1 + strh r2, [r3, 0x10] + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1, 0xA] +_080AB6CA: + adds r0, r6, r5 + lsls r0, 3 + adds r2, r0, r4 + movs r3, 0x26 + ldrsh r1, [r2, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldrh r0, [r0, 0xA] + movs r3, 0x1F + ands r3, r0 + cmp r3, 0 + bne _080AB6EC + strh r3, [r2, 0x8] + ldr r0, _080AB704 @ =sub_80AB708 + str r0, [r2] +_080AB6EC: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB6F4: .4byte gBattle_BG1_X +_080AB6F8: .4byte gBattle_BG1_Y +_080AB6FC: .4byte gTasks +_080AB700: .4byte gPlttBufferFaded +_080AB704: .4byte sub_80AB708 + thumb_func_end sub_80AB5C8 + + thumb_func_start sub_80AB708 +sub_80AB708: @ 80AB708 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r7, _080AB740 @ =gBattle_BG1_X + ldr r0, _080AB744 @ =gBattle_BG1_Y + mov r8, r0 + ldr r6, _080AB748 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r6 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AB74C + movs r0, 0x1 + bl sub_8075358 + movs r0, 0x2 + bl sub_8075358 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AB78E + .align 2, 0 +_080AB740: .4byte gBattle_BG1_X +_080AB744: .4byte gBattle_BG1_Y +_080AB748: .4byte gTasks +_080AB74C: + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + bne _080AB760 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_080AB760: + movs r0, 0 + strh r0, [r7] + mov r1, r8 + strh r0, [r1] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldr r1, _080AB798 @ =0x0000ffff + strh r1, [r0, 0x26] + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080AB78E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB798: .4byte 0x0000ffff + thumb_func_end sub_80AB708 + + thumb_func_start sub_80AB79C +sub_80AB79C: @ 80AB79C + push {r4-r7,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080AB7C4 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080AB7B8 + b _080AB8F0 +_080AB7B8: + cmp r0, 0x1 + bgt _080AB7C8 + cmp r0, 0 + beq _080AB7D0 + b _080ABA66 + .align 2, 0 +_080AB7C4: .4byte gTasks +_080AB7C8: + cmp r0, 0x2 + bne _080AB7CE + b _080AB9BC +_080AB7CE: + b _080ABA66 +_080AB7D0: + movs r3, 0 + movs r2, 0x10 + ldrsh r0, [r4, r2] + ldr r1, _080AB8A0 @ =gScanlineEffectRegBuffers + mov r12, r1 + cmp r3, r0 + bge _080AB80E + mov r7, r12 + movs r5, 0xF0 + lsls r5, 3 + add r5, r12 + ldr r6, _080AB8A4 @ =0x0000ffff +_080AB7E8: + lsls r2, r3, 16 + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r7 + adds r1, r5 + ldrh r0, [r4, 0xC] + strh r0, [r1] + ldrh r1, [r4, 0xC] + adds r0, r6, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + asrs r2, 16 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _080AB7E8 +_080AB80E: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080AB848 + ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 + ldr r7, _080AB8A4 @ =0x0000ffff +_080AB826: + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r5 + adds r1, r6 + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldrh r1, [r4, 0xA] + adds r0, r7, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080AB826 +_080AB848: + ldrh r3, [r4, 0x12] + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, 0x9F + bgt _080AB87E + ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 + ldr r7, _080AB8A4 @ =0x0000ffff +_080AB85C: + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r5 + adds r1, r6 + ldrh r0, [r4, 0xC] + strh r0, [r1] + ldrh r1, [r4, 0xC] + adds r0, r7, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, 0x9F + ble _080AB85C +_080AB87E: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AB8A8 + lsls r0, r3, 16 + asrs r0, 15 + mov r3, r12 + adds r2, r0, r3 + movs r1, 0xF0 + lsls r1, 3 + add r1, r12 + adds r0, r1 + ldrh r1, [r4, 0xA] + strh r1, [r0] + ldrh r0, [r4, 0xA] + b _080AB8BE + .align 2, 0 +_080AB8A0: .4byte gScanlineEffectRegBuffers +_080AB8A4: .4byte 0x0000ffff +_080AB8A8: + lsls r0, r3, 16 + asrs r0, 15 + mov r1, r12 + adds r2, r0, r1 + movs r1, 0xF0 + lsls r1, 3 + add r1, r12 + adds r0, r1 + ldrh r1, [r4, 0xC] + strh r1, [r0] + ldrh r0, [r4, 0xC] +_080AB8BE: + strh r0, [r2] + ldr r0, _080AB8E8 @ =0x04000052 + str r0, [sp] + ldr r0, _080AB8EC @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080ABA66 + .align 2, 0 +_080AB8E8: .4byte 0x04000052 +_080AB8EC: .4byte 0xa2600001 +_080AB8F0: + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080AB908 + ldrh r0, [r4, 0x10] + subs r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bgt _080AB91C + strh r1, [r4, 0x10] + b _080AB916 +_080AB908: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _080AB91C +_080AB916: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080AB91C: + movs r3, 0 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _080AB950 + ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers + ldr r5, _080AB9B8 @ =gScanlineEffect +_080AB92A: + lsls r1, r3, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldrb r2, [r5, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + adds r3, r6 + ldrh r0, [r4, 0xC] + strh r0, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080AB92A +_080AB950: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080AB984 + ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers + ldr r5, _080AB9B8 @ =gScanlineEffect +_080AB962: + asrs r3, r2, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xA] + strh r0, [r2] + adds r3, 0x1 + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080AB962 +_080AB984: + ldrh r3, [r4, 0x12] + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080ABA66 + ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers + ldr r5, _080AB9B8 @ =gScanlineEffect +_080AB992: + asrs r3, r1, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080AB992 + b _080ABA66 + .align 2, 0 +_080AB9B4: .4byte gScanlineEffectRegBuffers +_080AB9B8: .4byte gScanlineEffect +_080AB9BC: + movs r3, 0 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _080AB9F0 + ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers + ldr r5, _080ABA74 @ =gScanlineEffect +_080AB9CA: + lsls r1, r3, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldrb r2, [r5, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + adds r3, r6 + ldrh r0, [r4, 0xC] + strh r0, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080AB9CA +_080AB9F0: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080ABA24 + ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers + ldr r5, _080ABA74 @ =gScanlineEffect +_080ABA02: + asrs r3, r2, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xA] + strh r0, [r2] + adds r3, 0x1 + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080ABA02 +_080ABA24: + ldrh r3, [r4, 0x12] + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080ABA50 + ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers + ldr r5, _080ABA74 @ =gScanlineEffect +_080ABA32: + asrs r3, r1, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080ABA32 +_080ABA50: + movs r0, 0x26 + ldrsh r1, [r4, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080ABA66 + bl ScanlineEffect_Stop + adds r0, r7, 0 + bl DestroyTask +_080ABA66: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ABA70: .4byte gScanlineEffectRegBuffers +_080ABA74: .4byte gScanlineEffect + thumb_func_end sub_80AB79C + + thumb_func_start sub_80ABA78 +sub_80ABA78: @ 80ABA78 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r3, _080ABACC @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080ABAD0 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075114 + bl Random + movs r5, 0xFF + ands r5, r0 + movs r0, 0x80 + lsls r0, 1 + adds r6, r0, 0 + orrs r5, r6 + bl Random + ldr r1, _080ABAD4 @ =0x000001ff + ands r1, r0 + adds r0, r1, 0 + cmp r0, 0xFF + ble _080ABABE + subs r0, r6, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080ABABE: + strh r5, [r4, 0x30] + strh r1, [r4, 0x32] + ldr r0, _080ABAD8 @ =sub_80ABADC + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ABACC: .4byte 0x000003ff +_080ABAD0: .4byte 0xfffffc00 +_080ABAD4: .4byte 0x000001ff +_080ABAD8: .4byte sub_80ABADC + thumb_func_end sub_80ABA78 + + thumb_func_start sub_80ABADC +sub_80ABADC: @ 80ABADC + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r3, r0, r1 + strh r3, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r4, [r2, 0x36] + adds r1, r4 + strh r1, [r2, 0x36] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080ABB00 + lsls r0, r3, 16 + asrs r0, 24 + negs r0, r0 + b _080ABB04 +_080ABB00: + lsls r0, r3, 16 + asrs r0, 24 +_080ABB04: + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080ABB22 + adds r0, r2, 0 + bl DestroyAnimSprite +_080ABB22: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ABADC + + thumb_func_start sub_80ABB28 +sub_80ABB28: @ 80ABB28 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080ABB78 @ =gTasks + adds r4, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r2, _080ABB7C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x12] + bl sub_80ABDC8 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80758E0 + ldr r0, _080ABB80 @ =sub_80ABB84 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ABB78: .4byte gTasks +_080ABB7C: .4byte gSprites +_080ABB80: .4byte sub_80ABB84 + thumb_func_end sub_80ABB28 + + thumb_func_start sub_80ABB84 +sub_80ABB84: @ 80ABB84 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080ABBAC @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bls _080ABBA0 + b _080ABDBE +_080ABBA0: + lsls r0, 2 + ldr r1, _080ABBB0 @ =_080ABBB4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ABBAC: .4byte gTasks +_080ABBB0: .4byte _080ABBB4 + .align 2, 0 +_080ABBB4: + .4byte _080ABBD4 + .4byte _080ABBFA + .4byte _080ABC8C + .4byte _080ABCC2 + .4byte _080ABCD6 + .4byte _080ABCE4 + .4byte _080ABD64 + .4byte _080ABDB0 +_080ABBD4: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0xE0 + str r0, [sp] + movs r0, 0x80 + lsls r0, 2 + str r0, [sp, 0x4] + movs r0, 0x20 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r2, r3, 0 + bl sub_80765D4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080ABBFA: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080ABC56 + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ABC44 + ldr r2, _080ABC40 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strh r1, [r0, 0x24] + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x1 + strh r1, [r0, 0x22] + b _080ABC56 + .align 2, 0 +_080ABC40: .4byte gSprites +_080ABC44: + ldr r2, _080ABC84 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080ABC88 @ =0x0000fffd + strh r1, [r0, 0x24] +_080ABC56: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080ABC66 + b _080ABDBE +_080ABC66: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8076440 + ldr r2, _080ABC84 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x24] + strh r5, [r4, 0xE] + b _080ABDA0 + .align 2, 0 +_080ABC84: .4byte gSprites +_080ABC88: .4byte 0x0000fffd +_080ABC8C: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080ABC9C + b _080ABDBE +_080ABC9C: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xE0 + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_80765D4 + movs r0, 0 + strh r0, [r4, 0xE] + b _080ABDA2 +_080ABCC2: + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080ABDBE + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + b _080ABDA2 +_080ABCD6: + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80ABE4C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080ABCE4: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080ABDBE + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ABD1C + ldr r2, _080ABD18 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x2 + b _080ABD2E + .align 2, 0 +_080ABD18: .4byte gSprites +_080ABD1C: + ldr r2, _080ABD60 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x2 +_080ABD2E: + strh r1, [r0, 0x26] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080ABDBE + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xE0 + bl sub_80765D4 + movs r0, 0 + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + b _080ABDA2 + .align 2, 0 +_080ABD60: .4byte gSprites +_080ABD64: + ldr r6, _080ABDAC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] + adds r0, r4, 0 + bl sub_8076640 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080ABDBE + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8075980 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0x12] + strh r1, [r0, 0x22] +_080ABDA0: + strh r5, [r4, 0x10] +_080ABDA2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080ABDBE + .align 2, 0 +_080ABDAC: .4byte gSprites +_080ABDB0: + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080ABDBE + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080ABDBE: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80ABB84 + + thumb_func_start sub_80ABDC8 +sub_80ABDC8: @ 80ABDC8 + push {r4,r5,lr} + ldr r4, _080ABDEC @ =gBattleAnimAttacker + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080ABDFC + ldr r1, _080ABDF0 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080ABDF4 @ =gPlayerParty + b _080ABE0C + .align 2, 0 +_080ABDEC: .4byte gBattleAnimAttacker +_080ABDF0: .4byte gBattlerPartyIndexes +_080ABDF4: .4byte gPlayerParty +_080ABDF8: + adds r0, r2, 0 + b _080ABE3E +_080ABDFC: + ldr r1, _080ABE44 @ =gBattlerPartyIndexes + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080ABE48 @ =gEnemyParty +_080ABE0C: + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + lsrs r4, 18 + movs r2, 0 +_080ABE2A: + adds r1, r2, 0x1 + adds r0, r4, 0 + muls r0, r1 + cmp r3, r0 + blt _080ABDF8 + lsls r0, r1, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _080ABE2A + movs r0, 0x3 +_080ABE3E: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080ABE44: .4byte gBattlerPartyIndexes +_080ABE48: .4byte gEnemyParty + thumb_func_end sub_80ABDC8 + + thumb_func_start sub_80ABE4C +sub_80ABE4C: @ 80ABE4C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + ldr r4, _080ABF54 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0xAC + ldrb r0, [r4] + bl sub_807685C + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + ldrh r1, [r7, 0xA] + movs r0, 0x4 + subs r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r0, 0 + bgt _080ABE9C + movs r1, 0x1 +_080ABE9C: + movs r0, 0 + str r0, [sp, 0x4] + lsls r0, r1, 16 + mov r10, r8 + mov r9, r6 + mov r1, r10 + lsls r1, 4 + str r1, [sp, 0xC] + mov r1, r9 + lsls r1, 4 + str r1, [sp, 0x10] + asrs r0, 16 + mov r8, r0 +_080ABEB6: + ldr r0, _080ABF58 @ =gUnknown_83E5AE0 + mov r1, r10 + mov r2, r9 + ldr r3, [sp, 0x8] + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + lsls r6, r5, 16 + cmp r2, 0x40 + beq _080ABF1E + ldr r1, _080ABF5C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r1 + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x30] + mov r1, sp + ldrh r1, [r1, 0xC] + strh r1, [r5, 0x32] + mov r0, sp + ldrh r0, [r0, 0x10] + strh r0, [r5, 0x34] + asrs r4, r6, 16 + adds r0, r4, 0 + movs r1, 0x40 + bl Cos + strh r0, [r5, 0x36] + adds r0, r4, 0 + movs r1, 0x40 + bl Sin + strh r0, [r5, 0x38] + mov r1, sp + ldrh r1, [r1] + strh r1, [r5, 0x3A] + movs r0, 0x2 + strh r0, [r5, 0x3C] + ldrh r1, [r7, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ABF18 + adds r0, r5, 0 + bl sub_80ABF60 +_080ABF18: + ldrh r0, [r7, 0xC] + adds r0, 0x1 + strh r0, [r7, 0xC] +_080ABF1E: + mov r1, r8 + lsls r0, r1, 1 + asrs r1, r6, 16 + adds r1, r0 + lsls r1, 16 + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r5, r0, 16 + ldr r1, [sp, 0x4] + lsls r0, r1, 16 + asrs r0, 16 + add r0, r8 + lsls r0, 16 + lsrs r1, r0, 16 + str r1, [sp, 0x4] + asrs r0, 16 + cmp r0, 0x13 + ble _080ABEB6 + 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 +_080ABF54: .4byte gBattleAnimAttacker +_080ABF58: .4byte gUnknown_83E5AE0 +_080ABF5C: .4byte gSprites + thumb_func_end sub_80ABE4C + + thumb_func_start sub_80ABF60 +sub_80ABF60: @ 80ABF60 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080ABF72 + cmp r0, 0x1 + beq _080ABFA8 + b _080AC002 +_080ABF72: + movs r2, 0x30 + ldrsh r0, [r4, r2] + movs r1, 0x6 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + ldrh r0, [r4, 0x36] + adds r1, r0 + strh r1, [r4, 0x36] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080ABFA8: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x38] + ldrh r2, [r4, 0x34] + adds r1, r2 + strh r1, [r4, 0x34] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r2, r1, 20 + strh r2, [r4, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080ABFDE + adds r1, r2, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080ABFDE + cmp r1, 0x78 + ble _080AC002 +_080ABFDE: + ldr r3, _080AC008 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080AC002: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC008: .4byte gTasks + thumb_func_end sub_80ABF60 + + thumb_func_start sub_80AC00C +sub_80AC00C: @ 80AC00C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080AC03C @ =gTasks + adds r4, r1, r0 + bl sub_80ABDC8 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldr r0, _080AC040 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + bne _080AC044 + movs r0, 0x88 + strh r0, [r4, 0x10] + movs r0, 0x28 + b _080AC04A + .align 2, 0 +_080AC03C: .4byte gTasks +_080AC040: .4byte gBattleAnimAttacker +_080AC044: + movs r0, 0x10 + strh r0, [r4, 0x10] + movs r0, 0x50 +_080AC04A: + strh r0, [r4, 0x14] + movs r0, 0x62 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r0, 0x31 + strh r0, [r4, 0x16] + movs r0, 0xA + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x5 + strh r0, [r4, 0x20] + ldr r0, _080AC06C @ =sub_80AC070 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC06C: .4byte sub_80AC070 + thumb_func_end sub_80AC00C + + thumb_func_start sub_80AC070 +sub_80AC070: @ 80AC070 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r7, _080AC094 @ =gTasks + adds r4, r0, r7 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0 + beq _080AC098 + cmp r2, 0x1 + beq _080AC148 + b _080AC156 + .align 2, 0 +_080AC094: .4byte gTasks +_080AC098: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080AC0AE + strh r2, [r4, 0xC] + adds r0, r4, 0 + bl sub_80AC160 +_080AC0AE: + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AC128 + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080AC128 + ldr r5, _080AC13C @ =gBattleAnimArgs + movs r1, 0x1 + mov r8, r1 + mov r2, r8 + strh r2, [r5] + strh r0, [r5, 0x2] + movs r0, 0xC + strh r0, [r5, 0x4] + ldr r6, _080AC140 @ =sub_80B94B4 + adds r0, r6, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080AC0F8 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r7 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 + ldr r1, _080AC144 @ =gUnknown_2037EE2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080AC0F8: + movs r0, 0x3 + strh r0, [r5] + adds r0, r6, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080AC124 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r7 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 + ldr r1, _080AC144 @ =gUnknown_2037EE2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080AC124: + mov r0, r8 + strh r0, [r4, 0x22] +_080AC128: + movs r2, 0x1E + ldrsh r1, [r4, r2] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080AC156 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AC156 + .align 2, 0 +_080AC13C: .4byte gBattleAnimArgs +_080AC140: .4byte sub_80B94B4 +_080AC144: .4byte gUnknown_2037EE2 +_080AC148: + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080AC156 + adds r0, r1, 0 + bl DestroyAnimVisualTask +_080AC156: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AC070 + + thumb_func_start sub_80AC160 +sub_80AC160: @ 80AC160 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080AC1EC @ =gSineTable + movs r2, 0x18 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x3 + asrs r0, 4 + ldrh r2, [r4, 0x14] + adds r0, r2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080AC1F0 @ =gUnknown_83E5AE0 + movs r2, 0x16 + ldrsh r1, [r4, r2] + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080AC1BA + ldr r3, _080AC1F4 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _080AC1F8 @ =sub_80AC204 + str r2, [r1] + adds r0, r3 + strh r5, [r0, 0x38] + strh r6, [r0, 0x3A] + movs r1, 0x9 + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] +_080AC1BA: + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x18] + adds r0, 0x27 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x18] + movs r0, 0x16 + ldrsh r1, [r4, r0] + ldr r0, _080AC1FC @ =0x41c64e6d + muls r0, r1 + ldr r1, _080AC200 @ =0x00003039 + adds r0, r1 + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + ldrh r1, [r4, 0x10] + adds r1, r0 + strh r1, [r4, 0x16] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC1EC: .4byte gSineTable +_080AC1F0: .4byte gUnknown_83E5AE0 +_080AC1F4: .4byte gSprites +_080AC1F8: .4byte sub_80AC204 +_080AC1FC: .4byte 0x41c64e6d +_080AC200: .4byte 0x00003039 + thumb_func_end sub_80AC160 + + thumb_func_start sub_80AC204 +sub_80AC204: @ 80AC204 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080AC29A + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x38 + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _080AC29A + ldr r2, _080AC2A0 @ =gTasks + movs r3, 0x3A + ldrsh r1, [r5, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x1C] + ldr r0, _080AC2A4 @ =gUnknown_83E7C38 + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r3, 0x22 + ldrsh r2, [r5, r3] + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x30] + cmp r0, 0x40 + beq _080AC294 + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080AC2A8 @ =gSprites + adds r0, r4 + movs r1, 0x3 + bl StartSpriteAffineAnim + movs r2, 0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x3A] + strh r1, [r0, 0x3A] + movs r3, 0x30 + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x3C] + strh r1, [r0, 0x3C] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080AC2AC @ =sub_80AC2B0 + str r1, [r0] +_080AC294: + adds r0, r5, 0 + bl DestroySprite +_080AC29A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC2A0: .4byte gTasks +_080AC2A4: .4byte gUnknown_83E7C38 +_080AC2A8: .4byte gSprites +_080AC2AC: .4byte sub_80AC2B0 + thumb_func_end sub_80AC204 + + thumb_func_start sub_80AC2B0 +sub_80AC2B0: @ 80AC2B0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AC31C + movs r0, 0 + strh r0, [r4, 0x30] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _080AC31C + ldr r3, _080AC324 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080AC31C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC324: .4byte gTasks + thumb_func_end sub_80AC2B0 + + thumb_func_start sub_80AC328 +sub_80AC328: @ 80AC328 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080AC3AC @ =gTasks + adds r5, r1, r0 + ldr r4, _080AC3B0 @ =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0xE] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x10] + ldrb r0, [r4] + bl GetBattlerSide + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080AC36C + movs r1, 0x1 +_080AC36C: + strh r1, [r5, 0x16] + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _080AC380 + movs r1, 0x16 + ldrsh r0, [r5, r1] + negs r0, r0 + strh r0, [r5, 0x16] +_080AC380: + movs r2, 0x16 + ldrsh r0, [r5, r2] + lsls r0, 3 + ldrh r1, [r5, 0xE] + adds r0, r1 + strh r0, [r5, 0x12] + movs r2, 0x16 + ldrsh r1, [r5, r2] + lsls r1, 3 + ldrh r0, [r5, 0x10] + subs r0, r1 + strh r0, [r5, 0x14] + ldr r0, _080AC3B4 @ =0x0000ffe0 + strh r0, [r5, 0x1A] + strh r6, [r5, 0xA] + strh r6, [r5, 0x8] + ldr r0, _080AC3B8 @ =sub_80AC3BC + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC3AC: .4byte gTasks +_080AC3B0: .4byte gBattleAnimAttacker +_080AC3B4: .4byte 0x0000ffe0 +_080AC3B8: .4byte sub_80AC3BC + thumb_func_end sub_80AC328 + + thumb_func_start sub_80AC3BC +sub_80AC3BC: @ 80AC3BC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080AC3E0 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bls _080AC3D6 + b _080AC4F6 +_080AC3D6: + lsls r0, 2 + ldr r1, _080AC3E4 @ =_080AC3E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AC3E0: .4byte gTasks +_080AC3E4: .4byte _080AC3E8 + .align 2, 0 +_080AC3E8: + .4byte _080AC404 + .4byte _080AC414 + .4byte _080AC42E + .4byte _080AC470 + .4byte _080AC492 + .4byte _080AC4C0 + .4byte _080AC4E6 +_080AC404: + adds r0, r4, 0 + bl sub_80AC504 + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AC4FC + b _080AC4EE +_080AC414: + adds r0, r4, 0 + bl sub_80AC504 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080AC4FC + movs r0, 0 + strh r0, [r4, 0xA] + b _080AC4EE +_080AC42E: + adds r0, r4, 0 + bl sub_80AC504 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4, 0x12] + adds r1, r0 + movs r2, 0 + strh r1, [r4, 0x12] + adds r1, 0x10 + lsls r1, 16 + movs r0, 0x88 + lsls r0, 17 + cmp r1, r0 + bls _080AC4FC + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080AC46C + movs r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x6 + strh r0, [r4, 0x8] + strh r2, [r4, 0xA] + b _080AC4FC +_080AC46C: + strh r2, [r4, 0xA] + b _080AC4EE +_080AC470: + adds r0, r4, 0 + bl sub_80AC504 + movs r0, 0x16 + ldrsh r1, [r4, r0] + lsls r1, 1 + ldrh r0, [r4, 0x14] + subs r0, r1 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080AC4FC + b _080AC4EE +_080AC492: + adds r0, r4, 0 + bl sub_80AC504 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x12] + adds r0, 0x10 + lsls r0, 16 + movs r1, 0x88 + lsls r1, 17 + cmp r0, r1 + bls _080AC4FC + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0xA] + b _080AC4EE +_080AC4C0: + adds r0, r4, 0 + bl sub_80AC504 + movs r0, 0x16 + ldrsh r1, [r4, r0] + lsls r1, 1 + ldrh r0, [r4, 0x14] + subs r0, r1 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080AC4FC + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080AC4FC +_080AC4E6: + movs r1, 0x18 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AC4FC +_080AC4EE: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AC4FC +_080AC4F6: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_080AC4FC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AC3BC + + thumb_func_start sub_80AC504 +sub_80AC504: @ 80AC504 + push {r4-r6,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0xC] + adds r0, 0x1 + strh r0, [r6, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080AC55E + movs r0, 0 + strh r0, [r6, 0xC] + ldr r0, _080AC564 @ =gUnknown_83E5AE0 + movs r2, 0xE + ldrsh r1, [r6, r2] + movs r3, 0x10 + ldrsh r2, [r6, r3] + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080AC55E + ldr r5, _080AC568 @ =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r4, r5 + movs r1, 0x10 + strh r1, [r0, 0x2E] + ldrh r1, [r6, 0x12] + strh r1, [r0, 0x32] + ldrh r1, [r6, 0x14] + strh r1, [r0, 0x36] + ldrh r1, [r6, 0x1A] + strh r1, [r0, 0x38] + bl sub_8075068 + adds r5, 0x1C + adds r4, r5 + ldr r0, _080AC56C @ =sub_80AC570 + str r0, [r4] + ldrh r0, [r6, 0x18] + adds r0, 0x1 + strh r0, [r6, 0x18] +_080AC55E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC564: .4byte gUnknown_83E5AE0 +_080AC568: .4byte gSprites +_080AC56C: .4byte sub_80AC570 + thumb_func_end sub_80AC504 + + thumb_func_start sub_80AC570 +sub_80AC570: @ 80AC570 + push {r4-r6,lr} + adds r6, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080AC5CA + ldrh r0, [r6, 0x24] + ldrh r1, [r6, 0x20] + adds r0, r1 + strh r0, [r6, 0x20] + ldrh r0, [r6, 0x26] + ldrh r1, [r6, 0x22] + adds r0, r1 + strh r0, [r6, 0x22] + movs r0, 0x6 + strh r0, [r6, 0x2E] + bl Random + movs r4, 0x1F + adds r1, r4, 0 + ands r1, r0 + ldr r5, _080AC5D0 @ =0x0000fff0 + adds r1, r5 + ldrh r0, [r6, 0x20] + adds r1, r0 + strh r1, [r6, 0x32] + bl Random + ands r4, r0 + adds r4, r5 + ldrh r1, [r6, 0x22] + adds r4, r1 + strh r4, [r6, 0x36] + bl Random + movs r1, 0x7 + ands r1, r0 + mvns r1, r1 + strh r1, [r6, 0x38] + adds r0, r6, 0 + bl sub_8075068 + ldr r0, _080AC5D4 @ =sub_80AC5D8 + str r0, [r6, 0x1C] +_080AC5CA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC5D0: .4byte 0x0000fff0 +_080AC5D4: .4byte sub_80AC5D8 + thumb_func_end sub_80AC570 + + thumb_func_start sub_80AC5D8 +sub_80AC5D8: @ 80AC5D8 + push {r4-r6,lr} + adds r5, r0, 0 + bl AnimateBallThrow + lsls r0, 24 + cmp r0, 0 + beq _080AC614 + movs r4, 0 + ldr r6, _080AC61C @ =gTasks +_080AC5EA: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r6 + ldr r1, [r2] + ldr r0, _080AC620 @ =sub_80AC3BC + cmp r1, r0 + bne _080AC60A + movs r0, 0x1 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0x18] + subs r0, 0x1 + strh r0, [r2, 0x18] + adds r0, r5, 0 + bl DestroySprite +_080AC60A: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080AC5EA +_080AC614: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AC61C: .4byte gTasks +_080AC620: .4byte sub_80AC3BC + thumb_func_end sub_80AC5D8 + + thumb_func_start sub_80AC624 +sub_80AC624: @ 80AC624 + ldr r2, _080AC644 @ =gBattleAnimArgs + ldrh r1, [r2] + strh r1, [r0, 0x20] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x2E] + ldrh r1, [r2, 0x6] + strh r1, [r0, 0x30] + ldrh r1, [r2, 0x8] + strh r1, [r0, 0x32] + ldrh r1, [r2, 0xA] + strh r1, [r0, 0x34] + ldr r1, _080AC648 @ =sub_80AC64C + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080AC644: .4byte gBattleAnimArgs +_080AC648: .4byte sub_80AC64C + thumb_func_end sub_80AC624 + + thumb_func_start sub_80AC64C +sub_80AC64C: @ 80AC64C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x2E] + subs r0, r1 + strh r0, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x38] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + cmp r0, 0 + bne _080AC690 + adds r0, r4, 0 + bl DestroyAnimSprite +_080AC690: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AC64C + + thumb_func_start sub_80AC698 +sub_80AC698: @ 80AC698 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 23 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 23 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080AC6D0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080AC6D0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AC698 + + thumb_func_start sub_80AC6D8 +sub_80AC6D8: @ 80AC6D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8075160 + ldr r5, _080AC714 @ =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x30] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldr r1, _080AC718 @ =gBattleAnimArgs + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldr r0, _080AC71C @ =sub_80AC720 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC714: .4byte gBattleAnimTarget +_080AC718: .4byte gBattleAnimArgs +_080AC71C: .4byte sub_80AC720 + thumb_func_end sub_80AC6D8 + + thumb_func_start sub_80AC720 +sub_80AC720: @ 80AC720 + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x20 + ldrsh r0, [r4, r2] + subs r6, r1, r0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x22 + ldrsh r0, [r4, r2] + subs r5, r1, r0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + muls r0, r6 + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + muls r0, r5 + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080AC778 + movs r0, 0 + strh r0, [r4, 0x38] + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80AC798 +_080AC778: + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080AC78A + adds r0, r4, 0 + bl DestroyAnimSprite +_080AC78A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80AC720 + + thumb_func_start sub_80AC798 +sub_80AC798: @ 80AC798 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r4, r1, 0 + adds r5, r2, 0 + movs r2, 0x2E + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + lsls r1, 15 + lsrs r1, 16 + str r1, [sp] + ldrh r1, [r0, 0x24] + ldrh r3, [r0, 0x20] + adds r1, r3 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r0, r5, r0 + subs r0, 0x5 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + bl Random + negs r4, r4 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r4, r0 + subs r4, 0x5 + lsls r4, 16 + lsrs r7, r4, 16 + movs r6, 0 + mov r0, r8 + lsls r0, 16 + mov r8, r0 + mov r1, r10 + lsls r1, 16 + str r1, [sp, 0xC] + ldr r2, [sp] + lsls r2, 16 + str r2, [sp, 0x10] + asrs r1, 16 + lsls r0, r7, 16 + asrs r5, r0, 16 + str r0, [sp, 0x14] + negs r3, r5 + str r3, [sp, 0x4] + asrs r0, r2, 16 + adds r1, r0 + lsls r1, 16 + mov r10, r1 +_080AC826: + ldr r0, _080AC868 @ =gUnknown_83E5B88 + mov r2, r8 + asrs r1, r2, 16 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0x82 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080AC86C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + movs r0, 0x14 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + ldr r0, _080AC870 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + cmp r5, 0 + bge _080AC874 + mov r1, sp + ldrh r1, [r1, 0x4] + strh r1, [r4, 0x32] + b _080AC876 + .align 2, 0 +_080AC868: .4byte gUnknown_83E5B88 +_080AC86C: .4byte gSprites +_080AC870: .4byte gBattleAnimAttacker +_080AC874: + strh r7, [r4, 0x32] +_080AC876: + lsls r0, r6, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r6, r0, 16 + cmp r0, 0 + ble _080AC826 + movs r6, 0 + ldr r3, [sp, 0xC] + asrs r1, r3, 16 + ldr r0, [sp, 0x14] + asrs r5, r0, 16 + negs r2, r5 + str r2, [sp, 0x8] + ldr r3, [sp, 0x10] + asrs r0, r3, 16 + subs r1, r0 + lsls r1, 16 + mov r10, r1 +_080AC89C: + ldr r0, _080AC8E0 @ =gUnknown_83E5B88 + mov r2, r8 + asrs r1, r2, 16 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0x82 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080AC8E4 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + movs r0, 0x14 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + ldr r0, _080AC8E8 @ =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_807685C + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + cmp r5, 0 + ble _080AC8EC + mov r1, sp + ldrh r1, [r1, 0x8] + strh r1, [r4, 0x32] + b _080AC8EE + .align 2, 0 +_080AC8E0: .4byte gUnknown_83E5B88 +_080AC8E4: .4byte gSprites +_080AC8E8: .4byte gBattleAnimAttacker +_080AC8EC: + strh r7, [r4, 0x32] +_080AC8EE: + lsls r0, r6, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r6, r0, 16 + cmp r0, 0 + ble _080AC89C + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AC798 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s index 67c159abc..21b97c942 100644 --- a/asm/wild_encounter.s +++ b/asm/wild_encounter.s @@ -482,7 +482,7 @@ _08082A8E: lsrs r0, 16 orrs r4, r0 adds r0, r4, 0 - bl sub_8082AB8 + bl GetUnownLetterByPersonality lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -493,8 +493,8 @@ _08082A8E: bx r1 thumb_func_end sub_8082A88 - thumb_func_start sub_8082AB8 -sub_8082AB8: @ 8082AB8 + thumb_func_start GetUnownLetterByPersonality +GetUnownLetterByPersonality: @ 8082AB8 push {lr} adds r2, r0, 0 movs r0, 0xC0 @@ -520,7 +520,7 @@ sub_8082AB8: @ 8082AB8 lsrs r0, 24 pop {r1} bx r1 - thumb_func_end sub_8082AB8 + thumb_func_end GetUnownLetterByPersonality thumb_func_start sub_8082AEC sub_8082AEC: @ 8082AEC diff --git a/asm/wild_pokemon_area.s b/asm/wild_pokemon_area.s index 26c908a14..71d8ac8dc 100644 --- a/asm/wild_pokemon_area.s +++ b/asm/wild_pokemon_area.s @@ -221,13 +221,13 @@ sub_813CB5C: @ 813CB5C ldr r0, _0813CBBC @ =gUnknown_84642F4 lsls r4, 2 adds r4, r0 - bl sub_80CBDB0 + bl ScrSpecial_GetStarter ldrh r1, [r4, 0x2] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bne _0813CBC4 - bl sub_8142044 + bl GetRoamerLocationMapSectionId lsls r0, 16 lsrs r0, 16 movs r1, 0 diff --git a/asm/wireless_communication_status_screen.s b/asm/wireless_communication_status_screen.s deleted file mode 100644 index b4aecb9a5..000000000 --- a/asm/wireless_communication_status_screen.s +++ /dev/null @@ -1,868 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814F19C -sub_814F19C: @ 814F19C - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0814F1BC - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade -_0814F1BC: - pop {r0} - bx r0 - thumb_func_end sub_814F19C - - thumb_func_start sub_814F1C0 -sub_814F1C0: @ 814F1C0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_814F1C0 - - thumb_func_start sub_814F1D4 -sub_814F1D4: @ 814F1D4 - push {lr} - ldr r0, _0814F1E0 @ =sub_814F1E4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0814F1E0: .4byte sub_814F1E4 - thumb_func_end sub_814F1D4 - - thumb_func_start sub_814F1E4 -sub_814F1E4: @ 814F1E4 - push {r4,r5,lr} - sub sp, 0xC - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r5, _0814F308 @ =gUnknown_3002040 - movs r0, 0x6C - bl AllocZeroed - str r0, [r5] - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0814F30C @ =gUnknown_846FA74 - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0x1 - bl SetBgTilemapBuffer - adds r0, r4, 0 - bl Alloc - adds r1, r0, 0 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, _0814F310 @ =gUnknown_846F6D0 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl sub_80F696C - ldr r1, _0814F314 @ =gUnknown_846F8E0 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, _0814F318 @ =gUnknown_846FA7C - bl InitWindows - bl DeactivateAllTextPrinters - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl remove_some_task - bl m4aSoundVSyncOn - ldr r0, _0814F31C @ =sub_814F1C0 - bl SetVBlankCallback - ldr r0, _0814F320 @ =sub_814F46C - movs r1, 0 - bl CreateTask - ldr r1, [r5] - adds r1, 0x60 - strb r0, [r1] - bl sub_8116DE0 - ldr r1, [r5] - adds r1, 0x61 - strb r0, [r1] - ldr r1, [r5] - movs r0, 0x1 - str r0, [r1, 0x1C] - 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 - ldr r0, _0814F324 @ =gUnknown_846F4D0 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0xF0 - bl sub_80F77CC - bl UnkTextUtil_Reset - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, _0814F328 @ =sub_814F19C - bl SetMainCallback2 - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814F308: .4byte gUnknown_3002040 -_0814F30C: .4byte gUnknown_846FA74 -_0814F310: .4byte gUnknown_846F6D0 -_0814F314: .4byte gUnknown_846F8E0 -_0814F318: .4byte gUnknown_846FA7C -_0814F31C: .4byte sub_814F1C0 -_0814F320: .4byte sub_814F46C -_0814F324: .4byte gUnknown_846F4D0 -_0814F328: .4byte sub_814F19C - thumb_func_end sub_814F1E4 - - thumb_func_start sub_814F32C -sub_814F32C: @ 814F32C - push {r4,lr} - bl FreeAllWindowBuffers - movs r4, 0 -_0814F334: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBgTilemapBuffer - bl Free - adds r4, 0x1 - cmp r4, 0x1 - ble _0814F334 - ldr r0, _0814F35C @ =gUnknown_3002040 - ldr r0, [r0] - bl Free - ldr r0, _0814F360 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814F35C: .4byte gUnknown_3002040 -_0814F360: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_814F32C - - thumb_func_start sub_814F364 -sub_814F364: @ 814F364 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _0814F38C - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xE - bne _0814F388 - movs r0, 0 - strh r0, [r1] -_0814F388: - movs r0, 0 - strh r0, [r2] -_0814F38C: - movs r2, 0 - ldrsh r0, [r1, r2] - adds r0, 0x2 - lsls r0, 5 - ldr r1, _0814F3A4 @ =gUnknown_846F4D0 - adds r0, r1 - movs r1, 0 - movs r2, 0x10 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_0814F3A4: .4byte gUnknown_846F4D0 - thumb_func_end sub_814F364 - - thumb_func_start sub_814F3A8 -sub_814F3A8: @ 814F3A8 - push {r4,r5,lr} - sub sp, 0x8 - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r5, _0814F468 @ =gUnknown_846FAAC - ldr r4, [r5] - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r3, 0xC0 - subs r3, r0 - lsrs r3, 1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x6 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl sub_814F65C - movs r1, 0 -_0814F3F0: - adds r4, r1, 0x1 - lsls r0, r4, 2 - adds r0, r5 - ldr r2, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 25 - movs r1, 0xA0 - lsls r1, 20 - adds r0, r1 - lsrs r0, 24 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r1, 0x3 - movs r3, 0 - bl sub_814F65C - adds r1, r4, 0 - cmp r4, 0x2 - ble _0814F3F0 - ldr r1, _0814F468 @ =gUnknown_846FAAC - adds r0, r4, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r4, 4 - subs r0, r4 - lsls r0, 25 - movs r1, 0xA0 - lsls r1, 20 - adds r0, r1 - lsrs r0, 24 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0x3 - movs r3, 0 - bl sub_814F65C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814F468: .4byte gUnknown_846FAAC - thumb_func_end sub_814F3A8 - - thumb_func_start sub_814F46C -sub_814F46C: @ 814F46C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0814F498 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x5 - bls _0814F48E - b _0814F648 -_0814F48E: - lsls r0, 2 - ldr r1, _0814F49C @ =_0814F4A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F498: .4byte gTasks -_0814F49C: .4byte _0814F4A0 - .align 2, 0 -_0814F4A0: - .4byte _0814F4B8 - .4byte _0814F4D4 - .4byte _0814F4F8 - .4byte _0814F514 - .4byte _0814F608 - .4byte _0814F630 -_0814F4B8: - bl sub_814F3A8 - ldr r0, _0814F4D0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0814F648 - .align 2, 0 -_0814F4D0: .4byte gTasks -_0814F4D4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x1 - bl ShowBg - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0 - bl ShowBg - b _0814F618 -_0814F4F8: - ldr r0, _0814F510 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0814F506 - b _0814F648 -_0814F506: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - b _0814F622 - .align 2, 0 -_0814F510: .4byte gPaletteFade -_0814F514: - ldr r0, _0814F570 @ =gUnknown_3002040 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x10 - adds r2, r0, 0 - adds r2, 0x20 - adds r3, r0, 0 - adds r3, 0x61 - ldrb r3, [r3] - bl sub_814F7E4 - lsls r1, r5, 2 - mov r8, r1 - cmp r0, 0 - beq _0814F5A4 - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - movs r4, 0 - ldr r6, _0814F574 @ =gStringVar4 - movs r7, 0xA0 - lsls r7, 20 -_0814F542: - ldr r0, _0814F570 @ =gUnknown_3002040 - ldr r0, [r0] - lsls r1, r4, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - cmp r4, 0x3 - beq _0814F578 - lsrs r0, r7, 24 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x3 - adds r2, r6, 0 - movs r3, 0x4 - bl sub_814F65C - b _0814F58A - .align 2, 0 -_0814F570: .4byte gUnknown_3002040 -_0814F574: .4byte gStringVar4 -_0814F578: - movs r0, 0x64 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r1, 0x3 - adds r2, r6, 0 - movs r3, 0x4 - bl sub_814F65C -_0814F58A: - movs r2, 0xF0 - lsls r2, 21 - adds r7, r2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0814F542 - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0x2 - movs r1, 0x3 - bl CopyWindowToVram -_0814F5A4: - ldr r0, _0814F5F8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0814F5B8 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0814F5E2 -_0814F5B8: - movs r0, 0x5 - bl PlaySE - ldr r2, _0814F5FC @ =gTasks - ldr r0, _0814F600 @ =gUnknown_3002040 - ldr r0, [r0] - adds r0, 0x61 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0xFF - strh r1, [r0, 0x26] - mov r0, r8 - adds r1, r0, r5 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0814F5E2: - mov r2, r8 - adds r1, r2, r5 - lsls r1, 3 - ldr r0, _0814F604 @ =gTasks+0x8 - adds r1, r0 - adds r0, r1, 0 - adds r0, 0xE - adds r1, 0x10 - bl sub_814F364 - b _0814F648 - .align 2, 0 -_0814F5F8: .4byte gMain -_0814F5FC: .4byte gTasks -_0814F600: .4byte gUnknown_3002040 -_0814F604: .4byte gTasks+0x8 -_0814F608: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0814F618: - ldr r1, _0814F62C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 -_0814F622: - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _0814F648 - .align 2, 0 -_0814F62C: .4byte gTasks -_0814F630: - ldr r0, _0814F654 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0814F648 - ldr r0, _0814F658 @ =sub_814F32C - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0814F648: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814F654: .4byte gPaletteFade -_0814F658: .4byte sub_814F32C - thumb_func_end sub_814F46C - - thumb_func_start sub_814F65C -sub_814F65C: @ 814F65C - push {r4-r7,lr} - sub sp, 0x18 - mov r12, r2 - ldr r2, [sp, 0x2C] - ldr r4, [sp, 0x30] - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r2, 24 - lsrs r3, r2, 24 - lsls r4, 24 - lsrs r0, r4, 24 - cmp r0, 0x4 - bhi _0814F6E6 - lsls r0, 2 - ldr r1, _0814F688 @ =_0814F68C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814F688: .4byte _0814F68C - .align 2, 0 -_0814F68C: - .4byte _0814F6A0 - .4byte _0814F6AE - .4byte _0814F6BC - .4byte _0814F6CA - .4byte _0814F6D8 -_0814F6A0: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - movs r0, 0x3 - b _0814F6E4 -_0814F6AE: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x3 - b _0814F6E4 -_0814F6BC: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - movs r0, 0x5 - b _0814F6E4 -_0814F6CA: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - movs r0, 0x6 - b _0814F6E4 -_0814F6D8: - add r1, sp, 0x14 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x2 -_0814F6E4: - strb r0, [r1, 0x2] -_0814F6E6: - negs r0, r5 - orrs r0, r5 - lsrs r0, 31 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - add r0, sp, 0x14 - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - mov r0, r12 - str r0, [sp, 0x10] - adds r0, r7, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl AddTextPrinterParametrized2 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_814F65C - - thumb_func_start sub_814F714 -sub_814F714: @ 814F714 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r12, r0 - adds r7, r1, 0 - ldrb r0, [r0, 0xA] - lsls r0, 25 - lsrs r0, 25 - mov r8, r0 - movs r4, 0 - ldr r0, _0814F78C @ =gUnknown_846FAC0 - mov r9, r0 - movs r1, 0x1 - add r1, r9 - mov r10, r1 - mov r3, r12 - adds r3, 0x4 - str r3, [sp] -_0814F73E: - lsls r0, r4, 1 - adds r2, r0, r4 - mov r3, r9 - adds r1, r2, r3 - adds r5, r0, 0 - adds r6, r4, 0x1 - ldrb r1, [r1] - cmp r8, r1 - bne _0814F7A2 - mov r0, r12 - ldrb r1, [r0, 0x1A] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _0814F7A2 - mov r0, r9 - adds r0, 0x2 - adds r3, r2, r0 - ldrb r0, [r3] - cmp r0, 0 - bne _0814F790 - movs r2, 0 - movs r1, 0 - ldr r3, [sp] -_0814F76E: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0814F778 - adds r2, 0x1 -_0814F778: - adds r1, 0x1 - cmp r1, 0x3 - ble _0814F76E - adds r2, 0x1 - adds r0, r5, r4 - add r0, r10 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r7 - b _0814F79C - .align 2, 0 -_0814F78C: .4byte gUnknown_846FAC0 -_0814F790: - mov r1, r10 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r7 - ldrb r2, [r3] -_0814F79C: - ldr r0, [r1] - adds r0, r2 - str r0, [r1] -_0814F7A2: - adds r4, r6, 0 - cmp r4, 0x16 - bls _0814F73E - mov r0, r8 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814F714 - - thumb_func_start sub_814F7BC -sub_814F7BC: @ 814F7BC - push {r4,lr} - movs r4, 0 - adds r3, r1, 0 - adds r2, r0, 0 -_0814F7C4: - ldr r1, [r2] - ldr r0, [r3] - cmp r1, r0 - beq _0814F7D0 - movs r0, 0x1 - b _0814F7DC -_0814F7D0: - adds r3, 0x4 - adds r2, 0x4 - adds r4, 0x1 - cmp r4, 0x3 - ble _0814F7C4 - movs r0, 0 -_0814F7DC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814F7BC - - thumb_func_start sub_814F7E4 -sub_814F7E4: @ 814F7E4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - adds r6, r0, 0 - mov r9, r1 - adds r5, r2, 0 - lsls r4, r3, 24 - lsrs r4, 24 - movs r0, 0 - mov r8, r0 - mov r0, sp - movs r1, 0 - movs r2, 0x10 - bl memset - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0814F84C @ =gTasks+0x8 - adds r7, r0, r1 - movs r4, 0 -_0814F812: - lsls r1, r4, 5 - ldr r0, [r7] - adds r0, r1 - mov r1, sp - bl sub_814F714 - adds r1, r0, 0 - ldr r0, [r5] - cmp r1, r0 - beq _0814F82C - str r1, [r5] - movs r2, 0x1 - mov r8, r2 -_0814F82C: - adds r5, 0x4 - adds r4, 0x1 - cmp r4, 0xF - ble _0814F812 - mov r0, sp - mov r1, r9 - bl sub_814F7BC - cmp r0, 0 - bne _0814F850 - mov r3, r8 - cmp r3, 0x1 - beq _0814F874 - movs r0, 0 - b _0814F876 - .align 2, 0 -_0814F84C: .4byte gTasks+0x8 -_0814F850: - adds r1, r6, 0 - mov r0, sp - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r0] - str r0, [r1] - mov r1, r9 - mov r0, sp - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r0] - str r0, [r1] - ldr r0, [r6] - ldr r1, [r6, 0x4] - adds r0, r1 - ldr r1, [r6, 0x8] - adds r0, r1 - str r0, [r6, 0xC] -_0814F874: - movs r0, 0x1 -_0814F876: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814F7E4 - - .align 2, 0 @ Don't pad with nop. diff --git a/berry_fix/payload/Makefile b/berry_fix/payload/Makefile index b97556774..5cca8a157 100644 --- a/berry_fix/payload/Makefile +++ b/berry_fix/payload/Makefile @@ -16,7 +16,7 @@ CPPFLAGS := -I ../../tools/agbcc/include -I ../../tools/agbcc -iquote include -n ROM := payload.gba OBJ_DIR := build CC1 := ../../tools/agbcc/bin/agbcc$(EXE) -override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm +override CC1FLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm ELF = $(ROM:.gba=.elf) @@ -34,7 +34,7 @@ ASFLAGS := -mcpu=arm7tdmi LDFLAGS = -Map ../$(MAP) -LIB := -L ../../../tools/agbcc/lib -lagb_flash -lsiirtc -lagbsyscall -lgcc +LIB := -L ../../../tools/agbcc/lib -lgcc SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c GFX := ../../tools/gbagfx/gbagfx$(EXE) @@ -79,6 +79,12 @@ SUBDIRS := $(sort $(dir $(OBJS))) $(shell mkdir -p $(SUBDIRS)) +$(C_BUILDDIR)/siirtc.o: CC1FLAGS := -mthumb-interwork +$(C_BUILDDIR)/agb_flash.o: CC1FLAGS := -O1 -mthumb-interwork +$(C_BUILDDIR)/agb_flash_1m.o: CC1FLAGS := -O1 -mthumb-interwork +$(C_BUILDDIR)/agb_flash_mx.o: CC1FLAGS := -O1 -mthumb-interwork +$(C_BUILDDIR)/agb_flash_le.o: CC1FLAGS := -O1 -mthumb-interwork + rom: $(ROM) # For contributors to make sure a change didn't affect the contents of the ROM. @@ -116,7 +122,7 @@ endif $(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep) @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i - @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s + @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CC1FLAGS) -o $(C_BUILDDIR)/$*.s $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s ifeq ($(NODEP),1) diff --git a/berry_fix/payload/asm/libagbsyscall.s b/berry_fix/payload/asm/libagbsyscall.s new file mode 100644 index 000000000..0368c7e70 --- /dev/null +++ b/berry_fix/payload/asm/libagbsyscall.s @@ -0,0 +1,46 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start CpuSet +CpuSet: @ 81E3B64 + swi 0xB + bx lr + thumb_func_end CpuSet + + thumb_func_start Div +Div: @ 81E3B68 + swi 0x6 + bx lr + thumb_func_end Div + + thumb_func_start Mod +Mod: + swi 0x6 + adds r0, r1, 0 + bx lr + thumb_func_end Mod + + thumb_func_start LZ77UnCompVram +LZ77UnCompVram: @ 81E3B6C + swi 0x12 + bx lr + thumb_func_end LZ77UnCompVram + + thumb_func_start RegisterRamReset +RegisterRamReset: @ 81E3B80 + swi 0x1 + bx lr + thumb_func_end RegisterRamReset + + thumb_func_start VBlankIntrWait +VBlankIntrWait: @ 81E3BA0 + movs r2, 0 + swi 0x5 + bx lr + thumb_func_end VBlankIntrWait + + .align 2, 0 @ Don't pad with nop. diff --git a/berry_fix/payload/asm/macros.inc b/berry_fix/payload/asm/macros.inc new file mode 100644 index 000000000..e6813d319 --- /dev/null +++ b/berry_fix/payload/asm/macros.inc @@ -0,0 +1,155 @@ + .include "asm/macros/asm.inc" + .include "asm/macros/function.inc" + .include "asm/macros/movement.inc" + .include "asm/macros/pokemon_data.inc" + .include "asm/macros/ec.inc" + .include "asm/macros/map.inc" + .include "asm/macros/m4a.inc" + + .macro region_map_location x, y, width, height, name + .byte \x + .byte \y + .byte \width + .byte \height + .4byte gMapName_\name + .endm + + .macro obj_tiles address, uncompressed_size, tag + .4byte \address + .2byte \uncompressed_size + .2byte \tag + .endm + + .macro null_obj_tiles + obj_tiles 0, 0, 0 + .endm + + .macro obj_pal address, tag + .4byte \address + .2byte \tag + .2byte 0 @ padding + .endm + + .macro null_obj_pal + obj_pal 0, 0 + .endm + + .macro paired_pals tag, address + .2byte \tag + .2byte 0 @ padding + .4byte \address + .endm + +@ For object animation frames. + .macro obj_frame_tiles address, uncompressed_size + .4byte \address + .2byte \uncompressed_size + .2byte 0 @ padding + .endm + + .macro spr_template tile_tag, pal_tag, oam, anims, images, affine_anims, callback + .2byte \tile_tag + .2byte \pal_tag + .4byte \oam + .4byte \anims + .4byte \images + .4byte \affine_anims + .4byte \callback + .endm + +@ Berry trees have a table defining the palette slot used for each of their 5 +@ stages. However, the first 2 stages always use the same slots regardless of +@ the type of tree and the slots of the last 3 stages always equal each other. + .macro berry_tree_palette_slot_table slot + .byte 3, 4, \slot, \slot, \slot + .endm + + .macro subsprite x, y, priority, tile_num_offset, size + .2byte \x + .2byte \y + .2byte ((\priority) << 14) | ((\tile_num_offset) << 4) | SPRITE_SIZE_\size + .2byte 0 @ padding + .endm + + .macro obj_image_anim_frame pic_id, duration, flags = 0 + .2byte \pic_id + .byte (\flags) | (\duration) + .byte 0 @ padding + .endm + + .macro obj_image_anim_loop count + .2byte 0xfffd + .byte \count + .byte 0 @ padding + .endm + + .macro obj_image_anim_jump target_index + .2byte 0xfffe + .byte \target_index + .byte 0 @ padding + .endm + + .macro obj_image_anim_end + .2byte 0xffff + .2byte 0 @ padding + .endm + + .macro obj_rot_scal_anim_frame delta_x_scale, delta_y_scale, delta_angle, duration + .2byte \delta_x_scale + .2byte \delta_y_scale + .byte \delta_angle + .byte \duration + .2byte 0 @ padding + .endm + + .macro obj_rot_scal_anim_loop count + .2byte 0x7ffd + .2byte \count + .4byte 0 @ padding + .endm + + .macro obj_rot_scal_anim_jump target_index + .2byte 0x7ffe + .2byte \target_index + .4byte 0 @ padding + .endm + + .macro obj_rot_scal_anim_end unknown=0 + .2byte 0x7fff + .2byte \unknown + .fill 4 @ padding + .endm + + .macro credits_entry number, text + .4byte \number + .4byte \text + .endm + + .macro door_anim_frame unknown, offset + .byte \unknown + .byte 0 @ padding + .2byte \offset + .endm + + .macro door_anim_gfx metatile_num, unknown, tile_addr, palette_addr + .2byte \metatile_num + .2byte \unknown + .4byte \tile_addr + .4byte \palette_addr + .endm + + .macro trainer_eye_trainer opp_1, opp_2, opp_3, opp_4, opp_5, map_name + .2byte OPPONENT_\opp_1 + .2byte OPPONENT_\opp_2 + .2byte OPPONENT_\opp_3 + .2byte OPPONENT_\opp_4 + .2byte OPPONENT_\opp_5 + .2byte GROUP_\map_name + .2byte MAP_\map_name + .space 2 + .endm + + .macro window_template bg, top, left, height, width, palno, baseBlock + .byte \bg, \top, \left, \height, \width, \palno + .2byte \baseBlock + .endm diff --git a/berry_fix/payload/asm/macros/asm.inc b/berry_fix/payload/asm/macros/asm.inc new file mode 100644 index 000000000..26b2707ca --- /dev/null +++ b/berry_fix/payload/asm/macros/asm.inc @@ -0,0 +1,17 @@ + .ifndef GUARD_ASM_MACROS_ASM_INC + .set GUARD_ASM_MACROS_ASM_INC, 1 + + .macro inc x + .set \x, \x + 1 + .endm + + .macro enum_start x=0 + .set __enum__, \x + .endm + + .macro enum constant + .equiv \constant, __enum__ + inc __enum__ + .endm + + .endif @ GUARD_ASM_MACROS_ASM_INC diff --git a/berry_fix/payload/asm/macros/battle_ai_script.inc b/berry_fix/payload/asm/macros/battle_ai_script.inc new file mode 100644 index 000000000..679e30340 --- /dev/null +++ b/berry_fix/payload/asm/macros/battle_ai_script.inc @@ -0,0 +1,554 @@ + .macro if_random_less_than percent, address + .byte 0x00 + .byte \percent + .4byte \address + .endm + + @ unused + .macro if_random_greater_than percent, address + .byte 0x01 + .byte \percent + .4byte \address + .endm + + @ unused + .macro if_random_equal address + .byte 0x02 + .4byte \address + .endm + + @ unused + .macro if_random_not_equal address + .byte 0x03 + .4byte \address + .endm + + .macro score score + .byte 0x04 + .byte \score + .endm + + .macro if_hp_less_than target, percent, address + .byte 0x05 + .byte \target + .byte \percent + .4byte \address + .endm + + .macro if_hp_more_than target, percent, address + .byte 0x06 + .byte \target + .byte \percent + .4byte \address + .endm + + .macro if_hp_equal target, percent, address + .byte 0x07 + .byte \target + .byte \percent + .4byte \address + .endm + + .macro if_hp_not_equal target, percent, address + .byte 0x08 + .byte \target + .byte \percent + .4byte \address + .endm + + .macro if_status target, status, address + .byte 0x09 + .byte \target + .4byte \status + .4byte \address + .endm + + .macro if_not_status target, status, address + .byte 0x0a + .byte \target + .4byte \status + .4byte \address + .endm + + .macro if_status2 target, status, address + .byte 0x0b + .byte \target + .4byte \status + .4byte \address + .endm + + .macro if_not_status2 target, status, address + .byte 0x0c + .byte \target + .4byte \status + .4byte \address + .endm + + .macro if_status3 target, status, address + .byte 0x0d + .byte \target + .4byte \status + .4byte \address + .endm + + .macro if_not_status3 target, status, address + .byte 0x0e + .byte \target + .4byte \status + .4byte \address + .endm + + .macro if_status4 target, status, address + .byte 0x0f + .byte \target + .4byte \status + .4byte \address + .endm + + .macro if_not_status4 target, status, address + .byte 0x10 + .byte \target + .4byte \status + .4byte \address + .endm + + .macro if_less_than value, address + .byte 0x11 + .byte \value + .4byte \address + .endm + + .macro if_more_than value, address + .byte 0x12 + .byte \value + .4byte \address + .endm + + .macro if_equal value, address + .byte 0x13 + .byte \value + .4byte \address + .endm + + .macro if_not_equal value, address + .byte 0x14 + .byte \value + .4byte \address + .endm + + .macro if_less_than_32 value, address + .byte 0x15 + .4byte \value + .4byte \address + .endm + + .macro if_more_than_32 value, address + .byte 0x16 + .4byte \value + .4byte \address + .endm + + .macro if_equal_32 value, address + .byte 0x17 + .4byte \value + .4byte \address + .endm + + .macro if_not_equal_32 value, address + .byte 0x18 + .4byte \value + .4byte \address + .endm + + .macro if_move move, address + .byte 0x19 + .2byte \move + .4byte \address + .endm + + .macro if_not_move move, address + .byte 0x1a + .2byte \move + .4byte \address + .endm + + .macro if_in_bytes list, address + .byte 0x1b + .4byte \list + .4byte \address + .endm + + .macro if_not_in_bytes list, address + .byte 0x1c + .4byte \list + .4byte \address + .endm + + .macro if_in_words list, address + .byte 0x1d + .4byte \list + .4byte \address + .endm + + .macro if_not_in_words list, address + .byte 0x1e + .4byte \list + .4byte \address + .endm + + .macro if_user_can_damage address + .byte 0x1f + .4byte \address + .endm + + .macro if_user_cant_damage address + .byte 0x20 + .4byte \address + .endm + + .macro get_turn_count + .byte 0x21 + .endm + + .macro get_type byte + .byte 0x22 + .byte \byte + .endm + + @ unused + .macro get_move_power + .byte 0x23 + .endm + + .macro is_most_powerful_move + .byte 0x24 + .endm + + .macro get_move target + .byte 0x25 + .byte \target + .endm + + .macro if_arg_equal type, address + .byte 0x26 + .byte \type + .4byte \address + .endm + + @ unused + .macro if_arg_not_equal type, address + .byte 0x27 + .byte \type + .4byte \address + .endm + + .macro if_would_go_first target, address + .byte 0x28 + .byte \target + .4byte \address + .endm + + .macro if_would_not_go_first target, address + .byte 0x29 + .byte \target + .4byte \address + .endm + + @ nullsub + .macro ai_2a + .byte 0x2a + .endm + + @ nullsub + .macro ai_2b + .byte 0x2b + .endm + + .macro count_alive_pokemon target + .byte 0x2c + .byte \target + .endm + + @ unused + .macro get_considered_move + .byte 0x2d + .endm + + .macro get_effect + .byte 0x2e + .endm + + .macro get_ability target + .byte 0x2f + .byte \target + .endm + + @ unused + .macro get_highest_possible_damage + .byte 0x30 + .endm + + .macro if_damage_bonus value, address + .byte 0x31 + .byte \value + .4byte \address + .endm + + @ nullsub + .macro ai_32 + .byte 0x32 + .endm + + @ nullsub + .macro ai_33 + .byte 0x33 + .endm + + .macro if_status_in_party target, status, address + .byte 0x34 + .byte \target + .4byte \status + .4byte \address + .endm + + @ bugged + .macro if_status_not_in_party target, status, address + .byte 0x35 + .byte \target + .4byte \status + .4byte \address + .endm + + .macro get_weather + .byte 0x36 + .endm + + .macro if_effect byte, address + .byte 0x37 + .byte \byte + .4byte \address + .endm + + .macro if_not_effect byte, address + .byte 0x38 + .byte \byte + .4byte \address + .endm + + .macro if_stat_level_less_than target, stat, level, address + .byte 0x39 + .byte \target + .byte \stat + .byte \level + .4byte \address + .endm + + .macro if_stat_level_more_than target, stat, level, address + .byte 0x3a + .byte \target + .byte \stat + .byte \level + .4byte \address + .endm + + .macro if_stat_level_equal target, stat, level, address + .byte 0x3b + .byte \target + .byte \stat + .byte \level + .4byte \address + .endm + + .macro if_stat_level_not_equal target, stat, level, address + .byte 0x3c + .byte \target + .byte \stat + .byte \level + .4byte \address + .endm + + .macro if_can_faint address + .byte 0x3d + .4byte \address + .endm + + .macro if_cant_faint address + .byte 0x3e + .4byte \address + .endm + + @ unused + .macro if_has_move, target, move, address + .byte 0x3f + .byte \target + .2byte \move + .4byte \address + .endm + + @ unused + .macro if_dont_have_move, target, move, address + .byte 0x40 + .byte \target + .2byte \move + .4byte \address + .endm + + .macro if_move_effect target, effect, address + .byte 0x41 + .byte \target + .byte \effect + .4byte \address + .endm + + .macro if_not_move_effect target, effect, address + .byte 0x42 + .byte \target + .byte \effect + .4byte \address + .endm + + .macro if_last_move_did_damage target, byte, address + .byte 0x43 + .byte \target + .byte \byte + .4byte \address + .endm + + .macro if_encored target, address + .byte 0x44 + .byte \target + .4byte \address + .endm + + .macro flee + .byte 0x45 + .endm + + .macro if_random_100 address + .byte 0x46 + .4byte \address + .endm + + .macro watch + .byte 0x47 + .endm + + .macro get_hold_effect target + .byte 0x48 + .byte \target + .endm + + .macro get_gender target + .byte 0x49 + .byte \target + .endm + + .macro is_first_turn target + .byte 0x4a + .byte \target + .endm + + .macro get_stockpile_count target + .byte 0x4b + .byte \target + .endm + + .macro is_double_battle + .byte 0x4c + .endm + + .macro get_item target + .byte 0x4d + .byte \target + .endm + + .macro get_move_type_from_result + .byte 0x4e + .endm + + .macro get_move_power_from_result + .byte 0x4f + .endm + + .macro get_move_effect_from_result + .byte 0x50 + .endm + + .macro get_protect_count target + .byte 0x51 + .byte \target + .endm + + @ nullsub + .macro ai_52 + .byte 0x52 + .endm + + @ nullsub + .macro ai_53 + .byte 0x53 + .endm + + @ nullsub + .macro ai_54 + .byte 0x54 + .endm + + @ nullsub + .macro ai_55 + .byte 0x55 + .endm + + @ nullsub + .macro ai_56 + .byte 0x56 + .endm + + @ nullsub + .macro ai_57 + .byte 0x57 + .endm + + @ unused + .macro call address + .byte 0x58 + .4byte \address + .endm + + .macro jump address + .byte 0x59 + .4byte \address + .endm + + .macro end + .byte 0x5a + .endm + + .macro if_level_cond cond, address + .byte 0x5b + .byte \cond + .4byte \address + .endm + + .macro if_user_higher_level address + if_level_cond 0, \address + .endm + + .macro if_target_higher_level address + if_level_cond 1, \address + .endm + + .macro if_equal_levels address + if_level_cond 2, \address + .endm + + @ unused + .macro if_taunted address + .byte 0x5c + .4byte \address + .endm + + .macro if_not_taunted address + .byte 0x5d + .4byte \address + .endm diff --git a/berry_fix/payload/asm/macros/battle_anim.inc b/berry_fix/payload/asm/macros/battle_anim.inc new file mode 100644 index 000000000..4ff845032 --- /dev/null +++ b/berry_fix/payload/asm/macros/battle_anim.inc @@ -0,0 +1,266 @@ + .macro loadsprite id + .byte 0x00 + .2byte \id + .endm + + .macro unloadsprite id + .byte 0x01 + .2byte \id + .endm + + .macro sprite template, priority, argv:vararg + .byte 0x02 + .4byte \template + .byte \priority + .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2 +.Lsprite_\@_1: + .2byte \argv +.Lsprite_\@_2: + .endm + + .macro createtask addr, priority, argv:vararg + .byte 0x03 + .4byte \addr + .byte \priority + .byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2 +.Lcreatetask_\@_1: + .2byte \argv +.Lcreatetask_\@_2: + .endm + + .macro pause delay + .byte 0x04 + .byte \delay + .endm + + .macro wait + .byte 0x05 + .endm + + .macro hang1 + .byte 0x06 + .endm + + .macro hang2 + .byte 0x07 + .endm + + .macro end + .byte 0x08 + .endm + + .macro playse id + .byte 0x09 + .2byte \id + .endm + + .macro monbg which + .byte 0x0A + .byte \which + .endm + + .macro clearmonbg which + .byte 0x0B + .byte \which + .endm + + .macro setalpha eva, evb + .byte 0x0C + .2byte ((\evb) << 8) | (\eva) + .endm + + .macro blendoff + .byte 0x0D + .endm + + .macro call addr + .byte 0x0E + .4byte \addr + .endm + + .macro ret + .byte 0x0F + .endm + + .macro setvar var_num, value + .byte 0x10 + .byte \var_num + .2byte \value + .endm + + .macro ifelse addr1, addr2 + .byte 0x11 + .4byte \addr1 + .4byte \addr2 + .endm + + .macro jumpif cond, addr + .byte 0x12 + .byte \cond + .4byte \addr + .endm + + .macro jump addr + .byte 0x13 + .4byte \addr + .endm + + .macro fadetobg id + .byte 0x14 + .byte \id + .endm + + .macro restorebg + .byte 0x15 + .endm + + .macro waitbgfadeout + .byte 0x16 + .endm + + .macro waitbgfadein + .byte 0x17 + .endm + + .macro changebg id + .byte 0x18 + .byte \id + .endm + + .macro panse_19 id, pan + .byte 0x19 + .2byte \id + .byte \pan + .endm + + .macro setpan pan + .byte 0x1A + .byte \pan + .endm + + .macro panse_1B id, pan_start, pan_end, step, delay + .byte 0x1B + .2byte \id + .byte \pan_start + .byte \pan_end + .byte \step + .byte \delay + .endm + + .macro panse_1C id, pan, delay, count + .byte 0x1C + .2byte \id + .byte \pan + .byte \delay + .byte \count + .endm + + .macro panse_1D id, pan, count + .byte 0x1D + .2byte \id + .byte \pan + .byte \count + .endm + + .macro setbldcnt bldcnt + .byte 0x1E + .2byte \bldcnt + .endm + + .macro createtask_1F addr, argv:vararg + .byte 0x1F + .4byte \addr + .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2 +.Lcreatetask_1F_\@_1: + .2byte \argv +.Lcreatetask_1F_\@_2: + .endm + + .macro waitsound + .byte 0x20 + .endm + + .macro jumpvareq var_num, value, addr + .byte 0x21 + .byte \var_num + .2byte \value + .4byte \addr + .endm + + .macro monbg_22 unk + .byte 0x22 + .byte \unk + .endm + + .macro clearmonbg_23 unk + .byte 0x23 + .byte \unk + .endm + + .macro jumpunkcond addr + .byte 0x24 + .4byte \addr + .endm + + .macro fadetobg_25 a, b, c + .byte 0x25 + .byte \a + .byte \b + .byte \c + .endm + + .macro panse_26 id, pan_start, pan_end, step, delay + .byte 0x26 + .2byte \id + .byte \pan_start + .byte \pan_end + .byte \step + .byte \delay + .endm + + .macro panse_27 id, pan_start, pan_end, step, delay + .byte 0x27 + .2byte \id + .byte \pan_start + .byte \pan_end + .byte \step + .byte \delay + .endm + + .macro monbgprio_28 unk + .byte 0x28 + .byte \unk + .endm + + .macro monbgprio_29 + .byte 0x29 + .endm + + .macro monbgprio_2A unk + .byte 0x2A + .byte \unk + .endm + + .macro invisible side + .byte 0x2B + .byte \side + .endm + + .macro visible side + .byte 0x2C + .byte \side + .endm + + .macro doublebattle_2D unk + .byte 0x2D + .byte \unk + .endm + + .macro doublebattle_2E unk + .byte 0x2E + .byte \unk + .endm + + .macro stopsound + .byte 0x2F + .endm diff --git a/berry_fix/payload/asm/macros/battle_script.inc b/berry_fix/payload/asm/macros/battle_script.inc new file mode 100644 index 000000000..5dd1d5a1a --- /dev/null +++ b/berry_fix/payload/asm/macros/battle_script.inc @@ -0,0 +1,1228 @@ +@ 0 == +@ 1 != +@ 2 < +@ 3 > +@ 4 &= + + .macro calculatedamage + critical + atk5 + atk6 + atk7 + .endm + + + .macro attackcanceler + .byte 0x00 + .endm + + .macro accuracycheck address, param1 + .byte 0x01 + .4byte \address + .2byte \param1 + .endm + + .macro attackstring + .byte 0x02 + .endm + + .macro ppreduce + .byte 0x03 + .endm + + .macro critcalc + .byte 0x04 + .endm + + .macro atk5 + .byte 0x05 + .endm + + .macro atk6 + .byte 0x06 + .endm + + .macro atk7 + .byte 0x07 + .endm + + .macro atk8 + .byte 0x08 + .endm + + .macro attackanimation + .byte 0x09 + .endm + + .macro waitanimation + .byte 0x0a + .endm + + .macro graphicalhpupdate bank + .byte 0x0b + .byte \bank + .endm + + .macro datahpupdate bank + .byte 0x0c + .byte \bank + .endm + + .macro critmessage + .byte 0x0d + .endm + + .macro missmessage + .byte 0x0e + .endm + + .macro resultmessage + .byte 0x0f + .endm + + .macro printstring string + .byte 0x10 + .2byte \string + .endm + + .macro printstring2 string + .byte 0x11 + .2byte \string + .endm + + .macro waitmessage delay + .byte 0x12 + .2byte \delay + .endm + + .macro printfromtable table + .byte 0x13 + .4byte \table + .endm + + .macro printfromtable2 table + .byte 0x14 + .4byte \table + .endm + + .macro seteffectwithchancetarget + .byte 0x15 + .endm + + .macro seteffecttarget + .byte 0x16 + .endm + + .macro seteffectuser + .byte 0x17 + .endm + + .macro clearstatus bank + .byte 0x18 + .byte \bank + .endm + + .macro faintpokemon bank, param2, param3 + .byte 0x19 + .byte \bank + .byte \param2 + .4byte \param3 + .endm + + .macro atk1a param1 + .byte 0x1a + .byte \param1 + .endm + + .macro atk1b bank + .byte 0x1b + .byte \bank + .endm + + .macro jumpifstatus bank, status, address + .byte 0x1c + .byte \bank + .4byte \status + .4byte \address + .endm + + .macro jumpifsecondarytstatus bank, status, address + .byte 0x1d + .byte \bank + .4byte \status + .4byte \address + .endm + + .macro jumpifability bank, ability, address + .byte 0x1e + .byte \bank + .byte \ability + .4byte \address + .endm + + .macro jumpifhalverset bank, status, address + .byte 0x1f + .byte \bank + .2byte \status + .4byte \address + .endm + + .macro jumpifstat bank, flag, quantity, statid, address + .byte 0x20 + .byte \bank + .byte \flag + .byte \quantity + .byte \statid + .4byte \address + .endm + + .macro jumpifspecialstatusflag bank, mask, status, address + .byte 0x21 + .byte \bank + .4byte \mask + .byte \status + .4byte \address + .endm + + .macro jumpiftype bank, type, address + .byte 0x22 + .byte \bank + .byte \type + .4byte \address + .endm + + .macro atk23 bank + .byte 0x23 + .byte \bank + .endm + + .macro atk24 address + .byte 0x24 + .4byte \address + .endm + + .macro atk25 + .byte 0x25 + .endm + + .macro atk26 param1 + .byte 0x26 + .byte \param1 + .endm + + .macro atk27 address + .byte 0x27 + .4byte \address + .endm + + .macro jump address + .byte 0x28 + .4byte \address + .endm + + .macro jumpifbyte ifflag, checkaddr, compare, address + .byte 0x29 + .byte \ifflag + .4byte \checkaddr + .byte \compare + .4byte \address + .endm + + .macro jumpifhalfword ifflag, checkaddr, compare, address + .byte 0x2a + .byte \ifflag + .4byte \checkaddr + .2byte \compare + .4byte \address + .endm + + .macro jumpifword ifflag, checkaddr, compare, address + .byte 0x2b + .byte \ifflag + .4byte \checkaddr + .4byte \compare + .4byte \address + .endm + + .macro jumpifarrayequal mem1, mem2, size, address + .byte 0x2c + .4byte \mem1 + .4byte \mem2 + .byte \size + .4byte \address + .endm + + .macro jumpifarraynotequal mem1, mem2, size, address + .byte 0x2d + .4byte \mem1 + .4byte \mem2 + .byte \size + .4byte \address + .endm + + .macro setbyte pointer, value + .byte 0x2e + .4byte \pointer + .byte \value + .endm + + .macro addbyte pointer, value + .byte 0x2f + .4byte \pointer + .byte \value + .endm + + .macro subtractbyte pointer, value + .byte 0x30 + .4byte \pointer + .byte \value + .endm + + .macro copyarray destination, source, size + .byte 0x31 + .4byte \destination + .4byte \source + .byte \size + .endm + + .macro atk32 param1, param2, param3, byte + .byte 0x32 + .4byte \param1 + .4byte \param2 + .4byte \param3 + .byte \byte + .endm + + .macro orbyte pointer, value + .byte 0x33 + .4byte \pointer + .byte \value + .endm + + .macro orhalfword pointer, value + .byte 0x34 + .4byte \pointer + .2byte \value + .endm + + .macro orword pointer, value + .byte 0x35 + .4byte \pointer + .4byte \value + .endm + + .macro bicbyte pointer, value + .byte 0x36 + .4byte \pointer + .byte \value + .endm + + .macro bichalfword pointer, value + .byte 0x37 + .4byte \pointer + .2byte \value + .endm + + .macro bicword pointer, value + .byte 0x38 + .4byte \pointer + .4byte \value + .endm + + .macro pause pause_duration + .byte 0x39 + .2byte \pause_duration + .endm + + .macro waitstateatk + .byte 0x3a + .endm + + .macro somethinghealatk3b bank + .byte 0x3b + .byte \bank + .endm + + .macro return + .byte 0x3c + .endm + + .macro end + .byte 0x3d + .endm + + .macro end2 + .byte 0x3e + .endm + + .macro end3 + .byte 0x3f + .endm + + .macro atk40 address + .byte 0x40 + .4byte \address + .endm + + .macro callatk address + .byte 0x41 + .4byte \address + .endm + + .macro jumpiftype2 bank, type, address + .byte 0x42 + .byte \bank + .byte \type + .4byte \address + .endm + + .macro jumpifabilitypresent ability, address + .byte 0x43 + .byte \ability + .4byte \address + .endm + + .macro atk44 + .byte 0x44 + .endm + + .macro playanimation bank, animation, var_address + .byte 0x45 + .byte \bank + .byte \animation + .4byte \var_address + .endm + + .macro atk46 bank, address, int + .byte 0x46 + .byte \bank + .4byte \address + .4byte \int + .endm + + .macro atk47 + .byte 0x47 + .endm + + .macro playstatchangeanimation bank, color, byte + .byte 0x48 + .byte \bank + .byte \color + .byte \byte + .endm + + .macro atk49 byte1, byte2 + .byte 0x49 + .byte \byte1 + .byte \byte2 + .endm + + .macro damagecalc2 + .byte 0x4a + .endm + + .macro atk4b + .byte 0x4b + .endm + + .macro switch1 bank + .byte 0x4c + .byte \bank + .endm + + .macro switch2 bank + .byte 0x4d + .byte \bank + .endm + + .macro switch3 bank, byte + .byte 0x4e + .byte \bank + .byte \byte + .endm + + .macro jumpifcannotswitch bank, address + .byte 0x4f + .byte \bank + .4byte \address + .endm + + .macro openpartyscreen bank, address + .byte 0x50 + .byte \bank + .4byte \address + .endm + + .macro atk51 bank, param2 + .byte 0x51 + .byte \bank + .byte \param2 + .endm + + .macro atk52 bank + .byte 0x52 + .byte \bank + .endm + + .macro atk53 bank + .byte 0x53 + .byte \bank + .endm + + .macro atk54 word + .byte 0x54 + .2byte \word + .endm + + .macro atk55 int + .byte 0x55 + .4byte \int + .endm + + .macro atk56 bank_or_side + .byte 0x56 + .byte \bank_or_side + .endm + + .macro atk57 + .byte 0x57 + .endm + + .macro atk58 bank + .byte 0x58 + .byte \bank + .endm + + .macro checkiflearnmoveinbattle param1, param2, bank_maybe + .byte 0x59 + .4byte \param1 + .4byte \param2 + .byte \bank_maybe + .endm + + .macro atk5a address + .byte 0x5a + .4byte \address + .endm + + .macro atk5b address + .byte 0x5b + .4byte \address + .endm + + .macro atk5c bank + .byte 0x5c + .byte \bank + .endm + + .macro atk5d + .byte 0x5d + .endm + + .macro atk5e bank + .byte 0x5e + .byte \bank + .endm + + .macro atk5f + .byte 0x5f + .endm + + .macro atk60 byte + .byte 0x60 + .byte \byte + .endm + + .macro atk61 bank_or_side + .byte 0x61 + .byte \bank_or_side + .endm + + .macro atk62 bank_or_side + .byte 0x62 + .byte \bank_or_side + .endm + + .macro jumptoattack bank + .byte 0x63 + .byte \bank + .endm + + .macro statusanimation bank + .byte 0x64 + .byte \bank + .endm + + .macro atk65 bank_or_side, address + .byte 0x65 + .byte \bank_or_side + .4byte \address + .endm + + .macro atk66 bank_or_side, bank_or_side2, address + .byte 0x66 + .byte \bank_or_side + .byte \bank_or_side2 + .4byte \address + .endm + + .macro atk67 + .byte 0x67 + .endm + + .macro atk68 + .byte 0x68 + .endm + + .macro atk69 + .byte 0x69 + .endm + + .macro removeitem bank + .byte 0x6a + .byte \bank + .endm + + .macro atk6b + .byte 0x6b + .endm + + .macro atk6c + .byte 0x6c + .endm + + .macro atk6d + .byte 0x6d + .endm + + .macro atk6e + .byte 0x6e + .endm + + .macro atk6f bank + .byte 0x6f + .byte \bank + .endm + + .macro atk70 bank + .byte 0x70 + .byte \bank + .endm + + .macro atk71 + .byte 0x71 + .endm + + .macro atk72 address + .byte 0x72 + .4byte \address + .endm + + .macro atk73 bank + .byte 0x73 + .byte \bank + .endm + + .macro atk74 bank + .byte 0x74 + .byte \bank + .endm + + .macro atk75 + .byte 0x75 + .endm + + .macro atk76 bank, byte + .byte 0x76 + .byte \bank + .byte \byte + .endm + + .macro setprotect + .byte 0x77 + .endm + + .macro faintifabilitynotdamp + .byte 0x78 + .endm + + .macro setuserhptozero + .byte 0x79 + .endm + + .macro jumpwhiletargetvalid address + .byte 0x7a + .4byte \address + .endm + + .macro setdamageasrestorehalfmaxhp address, byte + .byte 0x7b + .4byte \address + .byte \byte + .endm + + .macro jumptolastusedattack + .byte 0x7c + .endm + + .macro setrain + .byte 0x7d + .endm + + .macro setreflect + .byte 0x7e + .endm + + .macro setleechseed + .byte 0x7f + .endm + + .macro manipulatedamage id + .byte 0x80 + .byte \id + .endm + + .macro setrest address + .byte 0x81 + .4byte \address + .endm + + .macro jumpifnotfirstturn address + .byte 0x82 + .4byte \address + .endm + + .macro nop3 + .byte 0x83 + .endm + + .macro jumpifcannotsleep address + .byte 0x84 + .4byte \address + .endm + + .macro stockpile + .byte 0x85 + .endm + + .macro stockpiletobasedamage address + .byte 0x86 + .4byte \address + .endm + + .macro stockpiletohprecovery address + .byte 0x87 + .4byte \address + .endm + + .macro negativedamage + .byte 0x88 + .endm + + .macro statbuffchange target, address + .byte 0x89 + .byte \target + .4byte \address + .endm + + .macro normalisebuffs + .byte 0x8a + .endm + + .macro setbide + .byte 0x8b + .endm + + .macro confuseifrepeatingattackends + .byte 0x8c + .endm + + .macro setloopcounter count + .byte 0x8d + .byte \count + .endm + + .macro atk8e + .byte 0x8e + .endm + + .macro forcerandomswitch address + .byte 0x8f + .4byte \address + .endm + + .macro changetypestoenemyattacktype address + .byte 0x90 + .4byte \address + .endm + + .macro givemoney + .byte 0x91 + .endm + + .macro setlightscreen + .byte 0x92 + .endm + + .macro koplussomethings address + .byte 0x93 + .4byte \address + .endm + + .macro gethalfcurrentenemyhp + .byte 0x94 + .endm + + .macro setsandstorm + .byte 0x95 + .endm + + .macro weatherdamage + .byte 0x96 + .endm + + .macro tryinfatuatetarget address + .byte 0x97 + .4byte \address + .endm + + .macro atk98 byte + .byte 0x98 + .byte \byte + .endm + + .macro setmisteffect + .byte 0x99 + .endm + + .macro setincreasedcriticalchance + .byte 0x9a + .endm + + .macro transformdataexecution + .byte 0x9b + .endm + + .macro setsubstituteeffect + .byte 0x9c + .endm + + .macro copyattack address + .byte 0x9d + .4byte \address + .endm + + .macro metronomeeffect + .byte 0x9e + .endm + + .macro nightshadedamageeffect + .byte 0x9f + .endm + + .macro psywavedamageeffect + .byte 0xa0 + .endm + + .macro counterdamagecalculator address + .byte 0xa1 + .4byte \address + .endm + + .macro mirrorcoatdamagecalculator address + .byte 0xa2 + .4byte \address + .endm + + .macro disablelastusedattack address + .byte 0xa3 + .4byte \address + .endm + + .macro setencore address + .byte 0xa4 + .4byte \address + .endm + + .macro painsplitdamagecalculator address + .byte 0xa5 + .4byte \address + .endm + + .macro settypetorandomresistance address + .byte 0xa6 + .4byte \address + .endm + + .macro setalwayshitflag + .byte 0xa7 + .endm + + .macro copymovepermanently address + .byte 0xa8 + .4byte \address + .endm + + .macro selectrandommovefromusermoves address + .byte 0xa9 + .4byte \address + .endm + + .macro destinybondeffect + .byte 0xaa + .endm + + .macro atkab + .byte 0xab + .endm + + .macro remaininghptopower + .byte 0xac + .endm + + .macro reducepprandom address + .byte 0xad + .4byte \address + .endm + + .macro clearstatusifnotsoundproofed + .byte 0xae + .endm + + .macro cursetarget address + .byte 0xaf + .4byte \address + .endm + + .macro setspikes address + .byte 0xb0 + .4byte \address + .endm + + .macro setforesight + .byte 0xb1 + .endm + + .macro setperishsong address + .byte 0xb2 + .4byte \address + .endm + + .macro rolloutdamagecalculation + .byte 0xb3 + .endm + + .macro jumpifconfusedandattackmaxed bank, address + .byte 0xb4 + .byte \bank + .4byte \address + .endm + + .macro furycutterdamagecalculation + .byte 0xb5 + .endm + + .macro happinesstodamagecalculation + .byte 0xb6 + .endm + + .macro presentdamagecalculation + .byte 0xb7 + .endm + + .macro setsafeguard + .byte 0xb8 + .endm + + .macro magnitudedamagecalculation + .byte 0xb9 + .endm + + .macro atkba address + .byte 0xba + .4byte \address + .endm + + .macro setsunny + .byte 0xbb + .endm + + .macro maxattackhalvehp address + .byte 0xbc + .4byte \address + .endm + + .macro copyfoestats address + .byte 0xbd + .4byte \address + .endm + + .macro breakfree + .byte 0xbe + .endm + + .macro setcurled + .byte 0xbf + .endm + + .macro recoverbasedonsunlight address + .byte 0xc0 + .4byte \address + .endm + + .macro hiddenpowerdamagecalculation + .byte 0xc1 + .endm + + .macro selectnexttarget + .byte 0xc2 + .endm + + .macro setfutureattack address + .byte 0xc3 + .4byte \address + .endm + + .macro beatupcalculation address1, address2 + .byte 0xc4 + .4byte \address1 + .4byte \address2 + .endm + + .macro hidepreattack + .byte 0xc5 + .endm + + .macro unhidepostattack + .byte 0xc6 + .endm + + .macro setminimize + .byte 0xc7 + .endm + + .macro sethail + .byte 0xc8 + .endm + + .macro jumpifattackandspecialattackcannotfall address + .byte 0xc9 + .4byte \address + .endm + + .macro setforcedtarget + .byte 0xca + .endm + + .macro setcharge + .byte 0xcb + .endm + + .macro callterrainattack + .byte 0xcc + .endm + + .macro cureifburnedparalysedorpoisoned address + .byte 0xcd + .4byte \address + .endm + + .macro settorment address + .byte 0xce + .4byte \address + .endm + + .macro jumpifnodamage address + .byte 0xcf + .4byte \address + .endm + + .macro settaunt address + .byte 0xd0 + .4byte \address + .endm + + .macro sethelpinghand address + .byte 0xd1 + .4byte \address + .endm + + .macro itemswap address + .byte 0xd2 + .4byte \address + .endm + + .macro copyability address + .byte 0xd3 + .4byte \address + .endm + + .macro atkd4 byte, address + .byte 0xd4 + .byte \byte + .4byte \address + .endm + + .macro setroots address + .byte 0xd5 + .4byte \address + .endm + + .macro doubledamagedealtifdamaged + .byte 0xd6 + .endm + + .macro setyawn address + .byte 0xd7 + .4byte \address + .endm + + .macro setdamagetohealthdifference address + .byte 0xd8 + .4byte \address + .endm + + .macro scaledamagebyhealthratio + .byte 0xd9 + .endm + + .macro abilityswap address + .byte 0xda + .4byte \address + .endm + + .macro imprisoneffect address + .byte 0xdb + .4byte \address + .endm + + .macro setgrudge address + .byte 0xdc + .4byte \address + .endm + + .macro weightdamagecalculation + .byte 0xdd + .endm + + .macro assistattackselect address + .byte 0xde + .4byte \address + .endm + + .macro setmagiccoat address + .byte 0xdf + .4byte \address + .endm + + .macro setstealstatchange address + .byte 0xe0 + .4byte \address + .endm + + .macro atke1 address + .byte 0xe1 + .4byte \address + .endm + + .macro atke2 bank + .byte 0xe2 + .byte \bank + .endm + + .macro jumpiffainted bank, address + .byte 0xe3 + .byte \bank + .4byte \address + .endm + + .macro naturepowereffect + .byte 0xe4 + .endm + + .macro pickupitemcalculation + .byte 0xe5 + .endm + + .macro actualcastformswitch + .byte 0xe6 + .endm + + .macro castformswitch + .byte 0xe7 + .endm + + .macro settypebasedhalvers address + .byte 0xe8 + .4byte \address + .endm + + .macro seteffectbyweather + .byte 0xe9 + .endm + + .macro recycleitem address + .byte 0xea + .4byte \address + .endm + + .macro settypetoterrain address + .byte 0xeb + .4byte \address + .endm + + .macro pursuitwhenswitched address + .byte 0xec + .4byte \address + .endm + + .macro snatchmove + .byte 0xed + .endm + + .macro removereflectlightscreen + .byte 0xee + .endm + + .macro pokemoncatchfunction + .byte 0xef + .endm + + .macro catchpoke + .byte 0xf0 + .endm + + .macro capturesomethingf1 address + .byte 0xf1 + .4byte \address + .endm + + .macro capturesomethingf2 + .byte 0xf2 + .endm + + .macro capturesomethingf3 address + .byte 0xf3 + .4byte \address + .endm + + .macro removehp + .byte 0xf4 + .endm + + .macro curestatusfirstword + .byte 0xf5 + .endm + + .macro atkf6 + .byte 0xf6 + .endm + + .macro activesidesomething + .byte 0xf7 + .endm + + .macro atkf8 bank + .byte 0xf8 + .byte \bank + .endm diff --git a/berry_fix/payload/asm/macros/contest_ai_script.inc b/berry_fix/payload/asm/macros/contest_ai_script.inc new file mode 100644 index 000000000..05d70e351 --- /dev/null +++ b/berry_fix/payload/asm/macros/contest_ai_script.inc @@ -0,0 +1,506 @@ +@ Add a positive/negative value to the score of the move being evaluated. + + .macro score score + .byte 0x00 + .byte \score + .endm + +@ turn (AKA "Appeal No.") + + .macro get_turn + .byte 0x01 + .endm + + .macro if_turn_less_than param, addr + .byte 0x02 + .byte \param + .4byte \addr + .endm + + .macro if_turn_more_than param, addr + .byte 0x03 + .byte \param + .4byte \addr + .endm + + .macro if_turn_eq param, addr + .byte 0x04 + .byte \param + .4byte \addr + .endm + + .macro if_turn_not_eq param, addr + .byte 0x05 + .byte \param + .4byte \addr + .endm + +@ audience excitement + + .macro get_excitement + .byte 0x06 + .endm + + .macro if_excitement_less_than param, addr + .byte 0x07 + .byte \param + .4byte \addr + .endm + + .macro if_excitement_more_than param, addr + .byte 0x08 + .byte \param + .4byte \addr + .endm + + .macro if_excitement_eq param, addr + .byte 0x09 + .byte \param + .4byte \addr + .endm + + .macro if_excitement_not_eq param, addr + .byte 0x0A + .byte \param + .4byte \addr + .endm + +@ the order that the user goes in the current turn + + .macro get_user_order + .byte 0x0B + .endm + + .macro if_user_order_less_than param addr + .byte 0x0C + .byte \param + .4byte \addr + .endm + + .macro if_user_order_more_than param addr + .byte 0x0D + .byte \param + .4byte \addr + .endm + + .macro if_user_order_eq param addr + .byte 0x0E + .byte \param + .4byte \addr + .endm + + .macro if_user_order_not_eq param addr + .byte 0x0F + .byte \param + .4byte \addr + .endm + +@ user condition + + .macro get_user_condition + .byte 0x10 + .endm + + .macro if_user_condition_less_than param, addr + .byte 0x11 + .byte \param + .4byte \addr + .endm + + .macro if_user_condition_more_than param, addr + .byte 0x12 + .byte \param + .4byte \addr + .endm + + .macro if_user_condition_eq param, addr + .byte 0x13 + .byte \param + .4byte \addr + .endm + + .macro if_user_condition_not_eq param, addr + .byte 0x14 + .byte \param + .4byte \addr + .endm + +@ 15 +@ 16 +@ 17 +@ 18 +@ 19 +@ 1A +@ 1B +@ 1C +@ 1D +@ 1E + +@ contest type + + .macro get_contest_type + .byte 0x1F + .endm + + .macro if_contest_type_eq param, addr + .byte 0x20 + .byte \param + .4byte \addr + .endm + + .macro if_contest_type_not_eq param, addr + .byte 0x21 + .byte \param + .4byte \addr + .endm + +@ move excitement (change in excitement due to move) + + .macro get_move_excitement + .byte 0x22 + .endm + + .macro if_move_excitement_less_than param, addr + .byte 0x23 + .byte \param + .4byte \addr + .endm + + .macro if_move_excitement_more_than param, addr + .byte 0x24 + .byte \param + .4byte \addr + .endm + + .macro if_move_excitement_eq param, addr + .byte 0x25 + .byte \param + .4byte \addr + .endm + + .macro if_move_excitement_not_eq param, addr + .byte 0x26 + .byte \param + .4byte \addr + .endm + +@ move effect + + .macro get_effect + .byte 0x27 + .endm + + .macro if_effect_eq param, addr + .byte 0x28 + .byte \param + .4byte \addr + .endm + + .macro if_effect_not_eq param, addr + .byte 0x29 + .byte \param + .4byte \addr + .endm + +@ move effect type + + .macro get_effect_type + .byte 0x2A + .endm + + .macro if_effect_type_eq param, addr + .byte 0x2B + .byte \param + .4byte \addr + .endm + + .macro if_effect_type_not_eq param, addr + .byte 0x2C + .byte \param + .4byte \addr + .endm + +@ whether the current move is the most appealing in the user's moveset + + .macro check_most_appealing_move + .byte 0x2D + .endm + + .macro if_most_appealing_move addr + .byte 0x2E + .4byte \addr + .endm + +@ 2F +@ 30 +@ 31 +@ 32 +@ 33 +@ 34 +@ 35 +@ 36 +@ 37 +@ 38 +@ 39 +@ 3A + +@ number of times current move has been used + + .macro get_move_used_count + .byte 0x3B + .endm + + .macro if_move_used_count_less_than param, addr + .byte 0x3C + .byte \param + .4byte \addr + .endm + + .macro if_move_used_count_more_than param, addr + .byte 0x3D + .byte \param + .4byte \addr + .endm + + .macro if_move_used_count_eq param, addr + .byte 0x3E + .byte \param + .4byte \addr + .endm + + .macro if_move_used_count_not_eq param, addr + .byte 0x3F + .byte \param + .4byte \addr + .endm + +@ whether the current move is a combo starter (with another move in the moveset) + + .macro check_combo_starter + .byte 0x40 + .endm + + .macro if_combo_starter addr + .byte 0x41 + .4byte \addr + .endm + + .macro if_not_combo_starter addr + .byte 0x42 + .4byte \addr + .endm + +@ whether the current move is a combo finisher (with another move in the moveset) + + .macro check_combo_finisher + .byte 0x43 + .endm + + .macro if_combo_finisher addr + .byte 0x44 + .4byte \addr + .endm + + .macro if_not_combo_finisher addr + .byte 0x45 + .4byte \addr + .endm + +@ whether the current move would finish a combo + + .macro check_would_finish_combo + .byte 0x46 + .endm + + .macro if_would_finish_combo addr + .byte 0x47 + .4byte \addr + .endm + + .macro if_would_not_finish_combo addr + .byte 0x48 + .4byte \addr + .endm + +@ condition of mon (indexed by order) + + .macro get_condition mon + .byte 0x49 + .byte \mon + .endm + + .macro if_condition_less_than mon, value, addr + .byte 0x4A + .byte \mon + .byte \value + .4byte \addr + .endm + + .macro if_condition_more_than mon, value, addr + .byte 0x4B + .byte \mon + .byte \value + .4byte \addr + .endm + + .macro if_condition_eq mon, value, addr + .byte 0x4C + .byte \mon + .byte \value + .4byte \addr + .endm + + .macro if_condition_not_eq mon, value, addr + .byte 0x4D + .byte \mon + .byte \value + .4byte \addr + .endm + +@ whether the mon used a combo starter move +@ Even though this value is always 1 or 0 (i.e. TRUE/FALSE), +@ there are less-than and greater-than comparison operations for some reason. + + .macro get_used_combo_starter mon + .byte 0x4E + .byte \mon + .endm + + .macro if_used_combo_starter_less_than mon, value, addr + .byte 0x4F + .byte \mon + .byte \value + .4byte \addr + .endm + + .macro if_used_combo_starter_more_than mon, value, addr + .byte 0x50 + .byte \mon + .byte \value + .4byte \addr + .endm + + + .macro if_used_combo_starter_eq mon, value, addr + .byte 0x51 + .byte \mon + .byte \value + .4byte \addr + .endm + + .macro if_used_combo_starter_not_eq mon, value, addr + .byte 0x52 + .byte \mon + .byte \value + .4byte \addr + .endm + +@ whether the mon can make an appeal + + .macro check_can_participate mon + .byte 0x53 + .byte \mon + .endm + + .macro if_can_participate mon, addr + .byte 0x54 + .byte \mon + .4byte \addr + .endm + + .macro if_cannot_participate mon, addr + .byte 0x55 + .byte \mon + .4byte \addr + .endm + +@ 56 +@ 57 + + .macro contest_58 param addr + .byte 0x58 + .byte \param + .4byte \addr + .endm + +@ 59 +@ 5A +@ 5B +@ 5C +@ 5D +@ 5E +@ 5F +@ 60 +@ 61 +@ 62 +@ 63 +@ 64 +@ 65 +@ 66 +@ 67 +@ 68 +@ 69 +@ 6A +@ 6B +@ 6C +@ 6D +@ 6E +@ 6F +@ 70 +@ 71 +@ 72 +@ 73 +@ 74 +@ 75 +@ 76 +@ 77 +@ 78 +@ 79 +@ 7A +@ 7B +@ 7C + + .macro if_random param addr + .byte 0x7D + .byte \param + .4byte \addr + .endm + +@ 7E + + .macro jump addr + .byte 0x7F + .4byte \addr + .endm + + .macro call addr + .byte 0x80 + .4byte \addr + .endm + + .macro end + .byte 0x81 + .endm + + .macro check_user_has_exciting_move + .byte 0x82 + .endm + + .macro if_user_has_exciting_move addr + .byte 0x83 + .4byte \addr + .endm + + .macro if_user_doesnt_have_exciting_move addr + .byte 0x84 + .4byte \addr + .endm + +@ 85 +@ 86 + + .macro if_effect_in_user_moveset param addr + .byte 0x87 + .2byte \param + .4byte \addr + .endm diff --git a/berry_fix/payload/asm/macros/ec.inc b/berry_fix/payload/asm/macros/ec.inc new file mode 100644 index 000000000..d3fd45c2f --- /dev/null +++ b/berry_fix/payload/asm/macros/ec.inc @@ -0,0 +1,8 @@ + + .macro ec_duplicates count + .2byte 0xff00 + \count + .endm + + .macro ec_words_by_letter label + .2byte (gEasyChatWordsByLetter_\label - gEasyChatWordsAlphabetized) / 2 + .endm diff --git a/berry_fix/payload/asm/macros/event.inc b/berry_fix/payload/asm/macros/event.inc new file mode 100644 index 000000000..d805aecb5 --- /dev/null +++ b/berry_fix/payload/asm/macros/event.inc @@ -0,0 +1,1433 @@ + @ Does nothing. + .macro nop + .byte 0x00 + .endm + + @ Does nothing. + .macro nop1 + .byte 0x01 + .endm + + @ Terminates script execution. + .macro end + .byte 0x02 + .endm + + @ Jumps back to after the last-executed call statement, and continues script execution from there. + .macro return + .byte 0x03 + .endm + + @ Jumps to destination and continues script execution from there. The location of the calling script is remembered and can be returned to later. + .macro call destination + .byte 0x04 + .4byte \destination + .endm + + @ Jumps to destination and continues script execution from there. + .macro goto destination + .byte 0x05 + .4byte \destination + .endm + + @ If the result of the last comparison matches condition (see Comparison operators), jumps to destination and continues script execution from there. + .macro goto_if condition, destination + .byte 0x06 + .byte \condition + .4byte \destination + .endm + + @ If the result of the last comparison matches condition (see Comparison operators), calls destination. + .macro call_if condition, destination + .byte 0x07 + .byte \condition + .4byte \destination + .endm + + @ Jumps to the standard function at index function. + .macro gotostd function + .byte 0x08 + .byte \function + .endm + + @ Calls the standard function at index function. + .macro callstd function + .byte 0x09 + .byte \function + .endm + + @ If the result of the last comparison matches condition (see Comparison operators), jumps to the standard function at index function. + .macro gotostd_if condition, function + .byte 0x0a + .byte \condition + .byte \function + .endm + + @ If the result of the last comparison matches condition (see Comparison operators), calls the standard function at index function. + .macro callstd_if condition, function + .byte 0x0b + .byte \condition + .byte \function + .endm + + @ Executes a script stored in a default RAM location. + .macro gotoram + .byte 0x0c + .endm + + @ Terminates script execution and "resets the script RAM". + .macro killscript + .byte 0x0d + .endm + + @ Sets mystery event status + .macro setmysteryeventstatus value + .byte 0x0e + .byte \value + .endm + + @ Sets the specified script bank to immediate value. + .macro loadword destination, value + .byte 0x0f + .byte \destination + .4byte \value + .endm + + @ Sets the specified script bank to immediate value. + .macro loadbyte destination, value + .byte 0x10 + .byte \destination + .byte \value + .endm + + @ Sets the byte at offset to value. + .macro writebytetoaddr value, offset + .byte 0x11 + .byte \value + .4byte \offset + .endm + + @ Copies the byte value at source into the specified script bank. + .macro loadbytefromaddr destination, source + .byte 0x12 + .byte \destination + .4byte \source + .endm + + @ Not sure. Judging from XSE's description I think it takes the least-significant byte in bank source and writes it to destination. + .macro setptrbyte source, destination + .byte 0x13 + .byte \source + .4byte \destination + .endm + + @ Copies the contents of bank source into bank destination. + .macro copylocal destination, source + .byte 0x14 + .byte \destination + .byte \source + .endm + + @ Copies the byte at source to destination, replacing whatever byte was previously there. + .macro copybyte destination, source + .byte 0x15 + .4byte \destination + .4byte \source + .endm + + @ Changes the value of destination to value. + .macro setvar destination, value + .byte 0x16 + .2byte \destination + .2byte \value + .endm + + @ Changes the value of destination by adding value to it. Overflow is not prevented (0xFFFF + 1 = 0x0000). + .macro addvar destination, value + .byte 0x17 + .2byte \destination + .2byte \value + .endm + + @ Changes the value of destination by subtracting value to it. Overflow is not prevented (0x0000 - 1 = 0xFFFF). + .macro subvar destination, value + .byte 0x18 + .2byte \destination + .2byte \value + .endm + + @ Copies the value of source into destination. + .macro copyvar destination, source + .byte 0x19 + .2byte \destination + .2byte \source + .endm + + @ If source is not a variable, then this function acts like setvar. Otherwise, it acts like copyvar. + .macro setorcopyvar destination, source + .byte 0x1a + .2byte \destination + .2byte \source + .endm + + @ Compares the values of script banks a and b, after forcing the values to bytes. + .macro compare_local_to_local byte1, byte2 + .byte 0x1b + .byte \byte1 + .byte \byte2 + .endm + + @ Compares the least-significant byte of the value of script bank a to a fixed byte value (b). + .macro compare_local_to_value a, b + .byte 0x1c + .byte \a + .byte \b + .endm + + @ Compares the least-significant byte of the value of script bank a to the byte located at offset b. + .macro compare_local_to_addr a, b + .byte 0x1d + .byte \a + .4byte \b + .endm + + @ Compares the byte located at offset a to the least-significant byte of the value of script bank b. + .macro compare_addr_to_local a, b + .byte 0x1e + .4byte \a + .byte \b + .endm + + @ Compares the byte located at offset a to a fixed byte value (b). + .macro compare_addr_to_value a, b + .byte 0x1f + .4byte \a + .byte \b + .endm + + @ Compares the byte located at offset a to the byte located at offset b. + .macro compare_addr_to_addr a, b + .byte 0x20 + .4byte \a + .4byte \b + .endm + + @ Compares the value of `var` to a fixed word value (b). + .macro compare_var_to_value var, value + .byte 0x21 + .2byte \var + .2byte \value + .endm + + @ Compares the value of `var` to the value of `var2`. + .macro compare_var_to_var var1, var2 + .byte 0x22 + .2byte \var1 + .2byte \var2 + .endm + + @ Generic compare macro which attempts to deduce argument types based on their values + @ Any values between 0x4000 to 0x4FFF and 0x8000 to 0x8FFF are considered event variable identifiers + .macro compare arg1, arg2 + .if ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && ((\arg2 >> 12) == 4 || (\arg2 >> 12) == 8) + compare_var_to_var \arg1, \arg2 + .elseif ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && (\arg2 >= 0 && \arg2 <= 0xFFFF) + compare_var_to_value \arg1, \arg2 + .else + .error "Invalid arguments for 'compare'" + .endif + .endm + + @ Calls the native C function stored at `func`. + .macro callnative func + .byte 0x23 + .4byte \func + .endm + + @ Replaces the script with the function stored at `func`. Execution returns to the bytecode script when func returns TRUE. + .macro gotonative func + .byte 0x24 + .4byte \func + .endm + + @ Calls a special function; that is, a piece of ASM code designed for use by scripts and listed in a table of pointers. + .macro special function + .byte 0x25 + .2byte SPECIAL_\function + .endm + + @ Calls a special function. That function's output (if any) will be written to the variable you specify. + .macro specialvar output, function + .byte 0x26 + .2byte \output + .2byte SPECIAL_\function + .endm + + @ Blocks script execution until a command or ASM code manually unblocks it. Generally used with specific commands and specials. If this command runs, and a subsequent command or piece of ASM does not unblock state, the script will remain blocked indefinitely (essentially a hang). + .macro waitstate + .byte 0x27 + .endm + + @ Blocks script execution for time (frames? milliseconds?). + .macro delay time + .byte 0x28 + .2byte \time + .endm + + @ Sets a to 1. + .macro setflag a + .byte 0x29 + .2byte \a + .endm + + @ Sets a to 0. + .macro clearflag a + .byte 0x2a + .2byte \a + .endm + + @ Compares a to 1. + .macro checkflag a + .byte 0x2b + .2byte \a + .endm + + @ In FireRed, this command is a nop. + .macro initclock hour minute + .byte 0x2c + .endm + + @ In FireRed, this command is a nop. + .macro dodailyevents + .byte 0x2d + .endm + + @ Resets the values of variables 0x8000, 0x8001, and 0x8002. + .macro gettime + .byte 0x2e + .endm + + @ Plays the specified (sound_number) sound. Only one sound may play at a time, with newer ones interrupting older ones. + .macro playse sound_number + .byte 0x2f + .2byte \sound_number + .endm + + @ Blocks script execution until the currently-playing sound (triggered by sound) finishes playing. + .macro waitse + .byte 0x30 + .endm + + @ Plays the specified (fanfare_number) fanfare. + .macro playfanfare fanfare_number + .byte 0x31 + .2byte \fanfare_number + .endm + + @ Blocks script execution until all currently-playing fanfares finish. + .macro waitfanfare + .byte 0x32 + .endm + + @ Plays the specified (song_number) song. The byte is apparently supposed to be 0x00. + .macro playbgm song_number, unknown + .byte 0x33 + .2byte \song_number + .byte \unknown + .endm + + @ Plays the specified (song_number) song. + .macro savebgm song_number + .byte 0x34 + .2byte \song_number + .endm + + @ Crossfades the currently-playing song into the map's default song. + .macro fadedefaultbgm + .byte 0x35 + .endm + + @ Crossfades the currently-playng song into the specified (song_number) song. + .macro fadenewbgm song_number + .byte 0x36 + .2byte \song_number + .endm + + @ Fades out the currently-playing song. + .macro fadeoutbgm speed + .byte 0x37 + .byte \speed + .endm + + @ Fades the currently-playing song back in. + .macro fadeinbgm speed + .byte 0x38 + .byte \speed + .endm + + @ Sends the player to Warp warp on Map bank.map. If the specified warp is 0xFF, then the player will instead be sent to (X, Y) on the map. + .macro warp map, warp, X, Y + .byte 0x39 + map \map + .byte \warp + .2byte \X + .2byte \Y + .endm + + @ Clone of warp that does not play a sound effect. + .macro warpsilent map, warp, X, Y + .byte 0x3a + map \map + .byte \warp + .2byte \X + .2byte \Y + .endm + + @ Clone of warp that uses "a walking effect". + .macro warpdoor map, warp, X, Y + .byte 0x3b + map \map + .byte \warp + .2byte \X + .2byte \Y + .endm + + @ Warps the player to another map using a hole animation. + .macro warphole map + .byte 0x3c + map \map + .endm + + @ Clone of warp that uses a teleport effect. It is apparently only used in R/S/E.[source] + .macro warpteleport map, warp, X, Y + .byte 0x3d + map \map + .byte \warp + .2byte \X + .2byte \Y + .endm + + @ Clone of warp. Used by an (unused?) Safari Zone script to return the player to the gatehouse and end the Safari Game. + .macro setwarp map, warp, X, Y + .byte 0x3e + map \map + .byte \warp + .2byte \X + .2byte \Y + .endm + + @ Sets a default warp place. If a warp tries to send the player to Warp 127 on Map 127.127, they will instead be sent here. Useful when a map has warps that need to go to script-controlled locations (i.e. elevators). + .macro setdynamicwarp map, warp, X, Y + .byte 0x3f + map \map + .byte \warp + .2byte \X + .2byte \Y + .endm + + @ Clone of warp3, except that this writes data to different offsets... + .macro setdivewarp map, warp, X, Y + .byte 0x40 + map \map + .byte \warp + .2byte \X + .2byte \Y + .endm + + @ Clone of warp3, except that this writes data to different offsets... + .macro setholewarp map, warp, X, Y + .byte 0x41 + map \map + .byte \warp + .2byte \X + .2byte \Y + .endm + + @ Retrieves the player's zero-indexed X- and Y-coordinates in the map, and stores them in the specified variables. + .macro getplayerxy X, Y + .byte 0x42 + .2byte \X + .2byte \Y + .endm + + @ Retrieves the number of Pokmon in the player's party, and stores that number in variable 0x800D (LASTRESULT). + .macro countpokemon + .byte 0x43 + .endm + + @ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and variable 0x800D (LASTRESULT) will be set to 0x0001; otherwise, LASTRESULT is set to 0x0000. + .macro additem index, quantity + .byte 0x44 + .2byte \index + .2byte \quantity + .endm + + @ Removes quantity of item index from the player's Bag. + .macro removeitem index, quantity + .byte 0x45 + .2byte \index + .2byte \quantity + .endm + + @ Checks if the player has enough space in their Bag to hold quantity more of item index. Sets variable 0x800D (LASTRESULT) to 0x0001 if there is room, or 0x0000 is there is no room. + .macro checkitemspace index, quantity + .byte 0x46 + .2byte \index + .2byte \quantity + .endm + + @ Checks if the player has quantity or more of item index in their Bag. Sets variable 0x800D (LASTRESULT) to 0x0001 if the player has enough of the item, or 0x0000 if they have fewer than quantity of the item. + .macro checkitem index, quantity + .byte 0x47 + .2byte \index + .2byte \quantity + .endm + + @ Checks which Bag pocket the specified (index) item belongs in, and writes the value to variable 0x800D (LASTRESULT). This script is used to show the name of the proper Bag pocket when the player receives an item via callstd (simplified to giveitem in XSE). + .macro checkitemtype index + .byte 0x48 + .2byte \index + .endm + + @ Adds a quantity amount of item index to the player's PC. Both arguments can be variables. + .macro givepcitem index, quantity + .byte 0x49 + .2byte \index + .2byte \quantity + .endm + + @ Checks for quantity amount of item index in the player's PC. Both arguments can be variables. + .macro checkpcitem index, quantity + .byte 0x4a + .2byte \index + .2byte \quantity + .endm + + @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) + .macro adddecor decoration + .byte 0x4b + .2byte \decoration + .endm + + @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) + .macro removedecor decoration + .byte 0x4c + .2byte \decoration + .endm + + @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) + .macro hasdecor decoration + .byte 0x4d + .2byte \decoration + .endm + + @ In FireRed, this command is a nop. (The argument is read, but not used for anything.) + .macro checkdecor decoration + .byte 0x4e + .2byte \decoration + .endm + + @ Applies the movement data at movements to the specified (index) Person event. Also closes any standard message boxes that are still open. + @ This command in fact uses variables to access the Person event ID. So, for example, if you setvar 0x8000 to 0x3, and then use applymovementpos 0x8000 @move1, Person event 3 will have the movements at @move1 applied to them. Thank you Shiny Quagsire for bringing this to my attention. + .macro applymovement index, movements, mapGroup, mapNum + .ifb \mapGroup + .byte 0x4f + .2byte \index + .4byte \movements + .else + .byte 0x50 + .2byte \index + .4byte \movements + .byte \mapGroup + .byte \mapNum + .endif + .endm + + @ Blocks script execution until the movements being applied to the specified (index) Person event finish. If the specified Person event is 0x0000, then the command will block script execution until all Person events affected by applymovement finish their movements. If the specified Person event is not currently being manipulated with applymovement, then this command does nothing. + .macro waitmovement index, mapBank, mapNum + .ifb \mapBank + .byte 0x51 + .2byte \index + .else + .byte 0x52 + .2byte \index + .byte \mapBank + .byte \mapNum + .endif + .endm + + @ Attempts to hide the specified (local_ID, a local ID) Person event on the specified map, by setting its visibility flag if it has a valid one. If the Person does not have a valid visibility flag, this command does nothing. + @ If no map is specified, then the current map is used + .macro removeobject localId, mapGroup, mapNum + .ifb \mapGroup + .byte 0x53 + .2byte \localId + .else + .byte 0x54 + .2byte \localId + .byte \mapGroup + .byte \mapNum + .endif + .endm + + .macro addobject localId, mapGroup, mapNum + .ifb \mapGroup + .byte 0x55 + .2byte \localId + .else + .byte 0x56 + .2byte \localId + .byte \mapGroup + .byte \mapNum + .endif + .endm + + @ Sets the specified (index) Object's position on the current map. + .macro setobjectxy index, x, y + .byte 0x57 + .2byte \index + .2byte \x + .2byte \y + .endm + + .macro showobject index, map + .byte 0x58 + .2byte \index + map \map + .endm + + .macro hideobject index, map + .byte 0x59 + .2byte \index + map \map + .endm + + @ If the script was called by an Object, then that Object will turn to face toward the metatile that the player is standing on. + .macro faceplayer + .byte 0x5a + .endm + + .macro turnobject index, direction + .byte 0x5b + .2byte \index + .byte \direction + .endm + + @ If the Trainer flag for Trainer index is not set, this command does absolutely nothing. + .macro trainerbattle type, trainer, word, pointer1, pointer2, pointer3, pointer4 + .byte 0x5c + .byte \type + .2byte \trainer + .2byte \word + .if \type == 0 + .4byte \pointer1 @ text + .4byte \pointer2 @ text + .elseif \type == 1 + .4byte \pointer1 @ text + .4byte \pointer2 @ text + .4byte \pointer3 @ event script + .elseif \type == 2 + .4byte \pointer1 @ text + .4byte \pointer2 @ text + .4byte \pointer3 @ event script + .elseif \type == 3 + .4byte \pointer1 @ text + .elseif \type == 4 + .4byte \pointer1 @ text + .4byte \pointer2 @ text + .4byte \pointer3 @ text + .elseif \type == 5 + .4byte \pointer1 @ text + .4byte \pointer2 @ text + .elseif \type == 6 + .4byte \pointer1 @ text + .4byte \pointer2 @ text + .4byte \pointer3 @ text + .4byte \pointer4 @ event script + .elseif \type == 7 + .4byte \pointer1 @ text + .4byte \pointer2 @ text + .4byte \pointer3 @ text + .elseif \type == 8 + .4byte \pointer1 @ text + .4byte \pointer2 @ text + .4byte \pointer3 @ text + .4byte \pointer4 @ event script + .endif + .endm + + + @ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this command behind-the-scenes), and blocks script execution until the battle finishes. + .macro battlebegin + .byte 0x5d + .endm + + .macro ontrainerbattleend + .byte 0x5e + .endm + + .macro ontrainerbattleendgoto + .byte 0x5f + .endm + + @ Compares Flag (trainer + 0x500) to 1. (If the flag is set, then the trainer has been defeated by the player.) + .macro checktrainerflag trainer + .byte 0x60 + .2byte \trainer + .endm + + @ Sets Flag (trainer + 0x500). (I didn't make a mistake. The command names actually are backwards.) + .macro settrainerflag trainer + .byte 0x61 + .2byte \trainer + .endm + + @ Clears Flag (trainer + 0x500). (I didn't make a mistake. The command names actually are backwards.) + .macro cleartrainerflag trainer + .byte 0x62 + .2byte \trainer + .endm + + .macro setobjectxyperm index, x, y + .byte 0x63 + .2byte \index + .2byte \x + .2byte \y + .endm + + .macro moveobjectoffscreen index + .byte 0x64 + .2byte \index + .endm + + .macro setobjectmovementtype word, byte + .byte 0x65 + .2byte \word + .byte \byte + .endm + + @ If a standard message box (or its text) is being drawn on-screen, this command blocks script execution until the box and its text have been fully drawn. + .macro waitmessage + .byte 0x66 + .endm + + @ Starts displaying a standard message box containing the specified text. If text is a pointer, then the string at that offset will be loaded and used. If text is script bank 0, then the value of script bank 0 will be treated as a pointer to the text. (You can use loadpointer to place a string pointer in a script bank.) + .macro message text + .byte 0x67 + .4byte \text + .endm + + @ Holds the current message box open until the player presses a key. The message box is then closed. + .macro closemessage + .byte 0x68 + .endm + + @ Ceases movement for all Objects on-screen. + .macro lockall + .byte 0x69 + .endm + + @ If the script was called by an Object, then that Object's movement will cease. + .macro lock + .byte 0x6a + .endm + + @ Resumes normal movement for all Objects on-screen, and closes any standard message boxes that are still open. + .macro releaseall + .byte 0x6b + .endm + + @ If the script was called by an Object, then that Object's movement will resume. This command also closes any standard message boxes that are still open. + .macro release + .byte 0x6c + .endm + + @ Blocks script execution until the player presses any key. + .macro waitbuttonpress + .byte 0x6d + .endm + + @ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. Their selection is stored in variable 0x800D (LASTRESULT); 0x0000 for "NO" or if the user pressed B, and 0x0001 for "YES". + .macro yesnobox x, y + .byte 0x6e + .byte \x + .byte \y + .endm + + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + .macro multichoice x, y, list, b + .byte 0x6f + .byte \x + .byte \y + .byte \list + .byte \b + .endm + + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + .macro multichoicedefault x, y, list, default, b + .byte 0x70 + .byte \x + .byte \y + .byte \list + .byte \default + .byte \b + .endm + + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box. + .macro multichoicegrid x, y, list, per_row, B + .byte 0x71 + .byte \x + .byte \y + .byte \list + .byte \per_row + .byte \B + .endm + + .macro drawbox + .byte 0x72 + .endm + + .macro erasebox byte1, byte2, byte3, byte4 + .byte 0x73 + .byte \byte1 + .byte \byte2 + .byte \byte3 + .byte \byte4 + .endm + + .macro drawboxtext + .byte 0x74 + .endm + + @ Displays a box containing the front sprite for the specified (species) Pokemon species. + .macro drawmonpic species, x, y + .byte 0x75 + .2byte \species + .byte \x + .byte \y + .endm + + @ Hides all boxes displayed with drawmonpic. + .macro erasemonpic + .byte 0x76 + .endm + + @ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.) + .macro drawcontestwinner a + .byte 0x77 + .byte \a + .endm + + @ Displays the string at pointer as braille text in a standard message box. The string must be formatted to use braille characters. + .macro braillemessage text + .byte 0x78 + .4byte \text + .endm + + @ Gives the player one of the specified (species) Pokmon at level level holding item. The unknown arguments should all be zeroes. + .macro givepoke species, level, item, unknown1, unknown2, unknown3 + .byte 0x79 + .2byte \species + .byte \level + .2byte \item + .4byte \unknown1 + .4byte \unknown2 + .byte \unknown3 + .endm + + .macro giveegg species + .byte 0x7a + .2byte \species + .endm + + .macro setpokemove byte1, byte2, word + .byte 0x7b + .byte \byte1 + .byte \byte2 + .2byte \word + .endm + + @ Checks if at least one Pokémon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the first Pokémon that knows the move. If not, LASTRESULT is set to 0x0006. Variable 0x8004 is also set to this Pokémon's species. + .macro checkpartymove index + .byte 0x7c + .2byte \index + .endm + + @ Writes the name of the Pokemon at index species to the specified buffer. + .macro getspeciesname out, species + .byte 0x7d + .byte \out + .2byte \species + .endm + + @ Writes the name of the species of the first Pokémon in the player's party to the specified buffer. + .macro getfirstpartypokename out + .byte 0x7e + .byte \out + .endm + + @ Writes the nickname of the Pokemon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer. + .macro getpartypokename out, slot + .byte 0x7f + .byte \out + .2byte \slot + .endm + + @ Writes the name of the item at index item to the specified buffer. If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead. + .macro getitemname out, item + .byte 0x80 + .byte \out + .2byte \item + .endm + + @ Writes the name of the decoration at index decoration to the specified buffer. In FireRed, this command is a nop. + .macro getdecorname out, decoration + .byte 0x81 + .byte \out + .2byte \decoration + .endm + + @ Writes the name of the move at index move to the specified buffer. + .macro getmovename out, move + .byte 0x82 + .byte \out + .2byte \move + .endm + + @ Converts the value of input to a decimal string, and writes that string to the specified buffer. + .macro getnumberstring out, input + .byte 0x83 + .byte \out + .2byte \input + .endm + + @ Writes the standard string identified by index to the specified buffer. This command has no protections in place at all, so specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption. + .macro getstdstring out, index + .byte 0x84 + .byte \out + .2byte \index + .endm + + @ Copies the string at offset to the specified buffer. + .macro getstring out, offset + .byte 0x85 + .byte \out + .4byte \offset + .endm + + @ Opens the Pokemart system, offering the specified products for sale. + .macro pokemart products + .byte 0x86 + .4byte \products + .endm + + @ Apparent clone of pokemart. + .macro pokemartdecor products + .byte 0x87 + .4byte \products + .endm + + @ Apparent clone of pokemart. + .macro pokemartbp products + .byte 0x88 + .4byte \products + .endm + + @ Starts up the slot machine minigame. + .macro playslotmachine word + .byte 0x89 + .2byte \word + .endm + + @ In FireRed, this command is a nop. + .macro plantberrytree + .byte 0x8a + .endm + + @ In FireRed, this command sets the byte at 0x03000EA8 to 0x01. I do not know what that means. + .macro choosecontestpkmn + .byte 0x8b + .endm + + @ In FireRed, this command is a nop. + .macro startcontest + .byte 0x8c + .endm + + @ In FireRed, this command is a nop. + .macro showcontestresults + .byte 0x8d + .endm + + @ In FireRed, this command is a nop. + .macro contestlinktransfer + .byte 0x8e + .endm + + @ Stores a random integer between 0 and limit in variable 0x800D (LASTRESULT). + .macro random limit + .byte 0x8f + .2byte \limit + .endm + + @ If check is 0x00, this command adds value to the player's money. + .macro givemoney value, check + .byte 0x90 + .4byte \value + .byte \check + .endm + + @ If check is 0x00, this command subtracts value from the player's money. + .macro takemoney value, check + .byte 0x91 + .4byte \value + .byte \check + .endm + + @ If check is 0x00, this command will check if the player has value or more money; script variable 0x800D (LASTRESULT) is set to 0x0001 if the player has enough money, or 0x0000 if the do not. + .macro checkmoney value, check + .byte 0x92 + .4byte \value + .byte \check + .endm + + @ Spawns a secondary box showing how much money the player has. + .macro showmoneybox x, y, check + .byte 0x93 + .byte \x + .byte \y + .byte \check + .endm + + @ Hides the secondary box spawned by showmoney. + .macro hidemoneybox + .byte 0x94 + .endm + + @ Updates the secondary box spawned by showmoney. Consumes but does not use arguments. + .macro updatemoneybox x, y, check + .byte 0x95 + .byte \x + .byte \y + .byte \check + .endm + + @ In FireRed, this command is a nop. + .macro getpricereduction + .byte 0x96 + .endm + + @ Fades the screen to black or back, using the specified effect. Effect 0x00 fades in, and effect 0x01 fades out. I don't know if other effects exist. + .macro fadescreen effect + .byte 0x97 + .byte \effect + .endm + + @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. Other modes may exist. + .macro fadescreenspeed effect, speed + .byte 0x98 + .byte \effect + .byte \speed + .endm + + .macro setflashradius word + .byte 0x99 + .2byte \word + .endm + + .macro animateflash byte + .byte 0x9a + .byte \byte + .endm + + .macro messageautoscroll pointer + .byte 0x9b + .4byte \pointer + .endm + + @ Executes the specified field move animation. + .macro dofieldeffect animation + .byte 0x9c + .2byte \animation + .endm + + @ Sets up the field effect argument argument with the value value. + .macro setfieldeffectarg argument, param + .byte 0x9d + .byte \argument + .2byte \param + .endm + + @ Blocks script execution until all playing field move animations complete. + .macro waitfieldeffect animation + .byte 0x9e + .2byte \animation + .endm + + @ Sets which healing place the player will return to if all of the Pokemon in their party faint. + .macro setrespawn flightspot + .byte 0x9f + .2byte \flightspot + .endm + + @ Checks the player's gender. If male, then 0x0000 is stored in variable 0x800D (LASTRESULT). If female, then 0x0001 is stored in LASTRESULT. + .macro checkplayergender + .byte 0xa0 + .endm + + @ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes. + .macro playmoncry species, effect + .byte 0xa1 + .2byte \species + .2byte \effect + .endm + + @ Changes the metatile at (x, y) on the current map. + .macro setmetatile x, y, metatile_number, tile_attrib + .byte 0xa2 + .2byte \x + .2byte \y + .2byte \metatile_number + .2byte \tile_attrib + .endm + + @ Queues a weather change to the default weather for the map. + .macro resetweather + .byte 0xa3 + .endm + + @ Queues a weather change to type weather. + .macro setweather type + .byte 0xa4 + .2byte \type + .endm + + @ Executes the weather change queued with resetweather or setweather. The current weather will smoothly fade into the queued weather. + .macro doweather + .byte 0xa5 + .endm + + @ This command manages cases in which maps have tiles that change state when stepped on (specifically, cracked/breakable floors). + .macro setstepcallback subroutine + .byte 0xa6 + .byte \subroutine + .endm + + .macro setmaplayoutindex index + .byte 0xa7 + .2byte \index + .endm + + .macro setobjectpriority index, map, priority + .byte 0xa8 + .2byte \index + map \map + .byte \priority + .endm + + .macro resetobjectpriority index, map + .byte 0xa9 + .2byte \index + map \map + .endm + + .macro createvobject sprite, byte2, x, y, elevation, direction + .byte 0xaa + .byte \sprite + .byte \byte2 + .2byte \x + .2byte \y + .byte \elevation + .byte \direction + .endm + + .macro turnvobject index, direction + .byte 0xab + .byte \index + .byte \direction + .endm + + @ Opens the door metatile at (X, Y) with an animation. + .macro opendoor x, y + .byte 0xac + .2byte \x + .2byte \y + .endm + + @ Closes the door metatile at (X, Y) with an animation. + .macro closedoor x, y + .byte 0xad + .2byte \x + .2byte \y + .endm + + @ Waits for the door animation started with opendoor or closedoor to finish. + .macro waitdooranim + .byte 0xae + .endm + + @ Sets the door tile at (x, y) to be open without an animation. + .macro setdooropen x, y + .byte 0xaf + .2byte \x + .2byte \y + .endm + + @ Sets the door tile at (x, y) to be closed without an animation. + .macro setdoorclosed2 x, y + .byte 0xb0 + .2byte \x + .2byte \y + .endm + + @ In Emerald, this command consumes its parameters and does nothing. In FireRed, this command is a nop. + .macro addelevmenuitem a, b, c, d + .byte 0xb1 + .byte \a + .2byte \b + .2byte \c + .2byte \d + .endm + + @ In FireRed and Emerald, this command is a nop. + .macro showelevmenu + .byte 0xb2 + .endm + + .macro checkcoins out + .byte 0xb3 + .2byte \out + .endm + + .macro givecoins count + .byte 0xb4 + .2byte \count + .endm + + .macro takecoins word + .byte 0xb5 + .2byte \word + .endm + + @ Prepares to start a wild battle against a species at Level level holding item. Running this command will not affect normal wild battles. You start the prepared battle with dowildbattle. + .macro setwildbattle species, level, item + .byte 0xb6 + .2byte \species + .byte \level + .2byte \item + .endm + + @ Starts a wild battle against the Pokemon generated by setwildbattle. Blocks script execution until the battle finishes. + .macro dowildbattle + .byte 0xb7 + .endm + + .macro setvaddress long, word + .byte 0xb8 + .4byte \long + .2byte \word + .endm + + .macro vgoto pointer + .byte 0xb9 + .4byte \pointer + .endm + + .macro vcall pointer + .byte 0xba + .4byte \pointer + .endm + + .macro vgoto_if byte, pointer + .byte 0xbb + .byte \byte + .4byte \pointer + .endm + + .macro vcall_if byte, pointer + .byte 0xbc + .byte \byte + .4byte \pointer + .endm + + .macro vmessage pointer + .byte 0xbd + .4byte \pointer + .endm + + .macro vloadptr pointer + .byte 0xbe + .4byte \pointer + .endm + + .macro vbufferstring byte, pointer + .byte 0xbf + .byte \byte + .4byte \pointer + .endm + + @ Spawns a secondary box showing how many Coins the player has. + .macro showcoinsbox x, y + .byte 0xc0 + .byte \x + .byte \y + .endm + + @ Hides the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. + .macro hidecoinsbox x, y + .byte 0xc1 + .byte \x + .byte \y + .endm + + @ Updates the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. + .macro updatecoinsbox x, y + .byte 0xc2 + .byte \x + .byte \y + .endm + + @ Increases the value of the specified game stat by 1. The stat's value will not be allowed to exceed 0x00FFFFFF. + .macro incrementgamestat stat + .byte 0xc3 + .byte \stat + .endm + + @ Sets the destination that using an Escape Rope or Dig will take the player to. + .macro setescapewarp map, warp, x, y + .byte 0xc4 + map \map + .byte \warp + .2byte \x + .2byte \y + .endm + + @ Blocks script execution until cry finishes. + .macro waitmoncry + .byte 0xc5 + .endm + + @ Writes the name of the specified (box) PC box to the specified buffer. + .macro bufferboxname out, box + .byte 0xc6 + .byte \out + .2byte \box + .endm + + @ Sets the color of the text in standard message boxes. 0x00 produces blue (male) text, 0x01 produces red (female) text, 0xFF resets the color to the default for the current OW's gender, and all other values produce black text. + .macro textcolor color + .byte 0xc7 + .byte \color + .endm + + @ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom of the screen when the Main Menu is opened. + .macro loadhelp pointer + .byte 0xc8 + .4byte \pointer + .endm + + @ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom of the screen when the Main Menu is opened. + .macro unloadhelp + .byte 0xc9 + .endm + + @ After using this command, all standard message boxes will use the signpost frame. + .macro signmsg + .byte 0xca + .endm + + @ Ends the effects of signmsg, returning message box frames to normal. + .macro normalmsg + .byte 0xcb + .endm + + @ Compares the value of a hidden variable to a dword. + .macro comparehiddenvar a, value + .byte 0xcc + .byte \a + .4byte \value + .endm + + @ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle. + .macro setmonobedient slot + .byte 0xcd + .2byte \slot + .endm + + @ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokemon is obedient (or if the specified slot is empty or invalid), 0x0000 is written. + .macro checkmonobedience slot + .byte 0xce + .2byte \slot + .endm + + @ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the offset specified by the pointer at 0x020375C0. + .macro execram + .byte 0xcf + .endm + + @ Sets worldmapflag to 1. This allows the player to Fly to the corresponding map, if that map has a flightspot. + .macro setworldmapflag worldmapflag + .byte 0xd0 + .2byte \worldmapflag + .endm + + @ Clone of warpteleport? It is apparently only used in FR/LG, and only with specials.[source] + .macro warpteleport2 map, warp, x, y + .byte 0xd1 + map \map + .byte \warp + .2byte \x + .2byte \y + .endm + + @ Changes the location where the player caught the Pokemon in the specified slot of their party. + .macro setmonmetlocation slot, location + .byte 0xd2 + .2byte \slot + .byte \location + .endm + + .macro getbraillestringwidth pointer + .byte 0xd3 + .4byte \pointer + .endm + + .macro bufferitemnameplural out, item, quantity + .byte 0xd4 + .byte \out + .2byte \item + .2byte \quantity + .endm + + +@ Supplementary + + .macro goto_if_eq dest + goto_if 1, \dest + .endm + + .macro switch var + copyvar 0x8000, \var + .endm + + .macro case condition, dest + compare_var_to_value 0x8000, \condition + goto_if_eq \dest + .endm + + .macro msgbox text, type=4 + loadword 0, \text + callstd \type + .endm + + @ Message box types + MSGBOX_YESNO = 5 + + YES = 1 + NO = 0 + + .macro giveitem item, amount=1, function=0 + setorcopyvar 0x8000, \item + setorcopyvar 0x8001, \amount + callstd \function + .endm diff --git a/berry_fix/payload/asm/macros/field_effect_script.inc b/berry_fix/payload/asm/macros/field_effect_script.inc new file mode 100644 index 000000000..d5895b0ef --- /dev/null +++ b/berry_fix/payload/asm/macros/field_effect_script.inc @@ -0,0 +1,42 @@ + .macro loadtiles address + .byte 0 + .4byte \address + .endm + + .macro loadfadedpal address + .byte 1 + .4byte \address + .endm + + .macro loadpal address + .byte 2 + .4byte \address + .endm + + .macro callnative address + .byte 3 + .4byte \address + .endm + + .macro end + .byte 4 + .endm + + .macro loadgfx_callnative tiles_address, palette_address, function_address + .byte 5 + .4byte \tiles_address + .4byte \palette_address + .4byte \function_address + .endm + + .macro loadtiles_callnative tiles_address, function_address + .byte 6 + .4byte \tiles_address + .4byte \function_address + .endm + + .macro loadfadedpal_callnative palette_address, function_address + .byte 7 + .4byte \palette_address + .4byte \function_address + .endm diff --git a/berry_fix/payload/asm/macros/function.inc b/berry_fix/payload/asm/macros/function.inc new file mode 100644 index 000000000..67fb373a8 --- /dev/null +++ b/berry_fix/payload/asm/macros/function.inc @@ -0,0 +1,29 @@ + .macro arm_func_start name + .align 2, 0 + .global \name + .arm + .type \name, function + .endm + + .macro arm_func_end name + .size \name, .-\name + .endm + + .macro thumb_func_start name + .align 2, 0 + .global \name + .thumb + .thumb_func + .type \name, function + .endm + + .macro non_word_aligned_thumb_func_start name + .global \name + .thumb + .thumb_func + .type \name, function + .endm + + .macro thumb_func_end name + .size \name, .-\name + .endm diff --git a/berry_fix/payload/asm/macros/m4a.inc b/berry_fix/payload/asm/macros/m4a.inc new file mode 100644 index 000000000..6c5abc09b --- /dev/null +++ b/berry_fix/payload/asm/macros/m4a.inc @@ -0,0 +1,13 @@ + .macro song label, music_player, unknown + .4byte \label + .2byte \music_player + .2byte \unknown + .endm + + .macro music_player info_struct, track_struct, unknown_1, unknown_2 + .4byte \info_struct + .4byte \track_struct + .byte \unknown_1 + .space 1 + .2byte \unknown_2 + .endm diff --git a/berry_fix/payload/asm/macros/map.inc b/berry_fix/payload/asm/macros/map.inc new file mode 100644 index 000000000..9c68e8414 --- /dev/null +++ b/berry_fix/payload/asm/macros/map.inc @@ -0,0 +1,84 @@ + .macro map map_id + .byte \map_id >> 8 @ map group + .byte \map_id & 0xFF @ map num + .endm + + .macro map_script type, address + .byte \type + .4byte \address + .endm + + .macro map_script_2 word1, word2, address + .2byte \word1 + .2byte \word2 + .4byte \address + .endm + + .macro object_event byte1, word1, byte2, byte3, byte4, byte5, byte6, byte7, byte8, byte9, byte10, byte11, byte12, byte13, byte14, script, word2, byte15, byte16 + .byte \byte1 + .2byte \word1 + .byte \byte2, \byte3, \byte4, \byte5, \byte6, \byte7, \byte8, \byte9, \byte10, \byte11, \byte12, \byte13, \byte14 + .4byte \script + .2byte \word2 + .byte \byte15, \byte16 + inc _num_npcs + .endm + + .macro warp_def x, y, byte, warp, map_id + .2byte \x, \y + .byte \byte, \warp + .byte \map_id & 0xFF @ map num + .byte \map_id >> 8 @ map group + inc _num_warps + .endm + + .macro coord_event x, y, byte1, byte2, word1, word2, word3, script + .2byte \x, \y + .byte \byte1, \byte2 + .2byte \word1, \word2, \word3 + .4byte \script + inc _num_traps + .endm + + .macro bg_event x, y, byte, kind, word, arg6, arg7, arg8 + .2byte \x, \y + .byte \byte, \kind + .2byte \word + .if \kind < 5 + .4byte \arg6 + .else + .2byte \arg6 + .byte \arg7, \arg8 + .endif + inc _num_signs + .endm + + .macro map_events npcs, warps, traps, signs + .byte _num_npcs, _num_warps, _num_traps, _num_signs + .4byte \npcs, \warps, \traps, \signs + reset_map_events + .endm + + .macro reset_map_events + .set _num_npcs, 0 + .set _num_warps, 0 + .set _num_traps, 0 + .set _num_signs, 0 + .endm + + reset_map_events + + + .equiv connection_down, 1 + .equiv connection_up, 2 + .equiv connection_left, 3 + .equiv connection_right, 4 + .equiv connection_dive, 5 + .equiv connection_emerge, 6 + + .macro connection direction, offset, map, filler + .4byte connection_\direction + .4byte \offset + map \map + .space 2 + .endm diff --git a/berry_fix/payload/asm/macros/movement.inc b/berry_fix/payload/asm/macros/movement.inc new file mode 100644 index 000000000..909b24916 --- /dev/null +++ b/berry_fix/payload/asm/macros/movement.inc @@ -0,0 +1,120 @@ + .macro create_movement name + enum _\name + .macro \name + .byte _\name + .endm + .endm + + enum_start + create_movement step_00 + create_movement step_01 + create_movement step_02 + create_movement step_03 + create_movement slow_step_down + create_movement slow_step_up + create_movement slow_step_left + create_movement slow_step_right + create_movement step_down + create_movement step_up + create_movement step_left + create_movement step_right + create_movement fast_step_down + create_movement fast_step_up + create_movement fast_step_left + create_movement fast_step_right + create_movement step_10 + create_movement step_11 + create_movement step_12 + create_movement step_13 + create_movement step_14 + create_movement step_15 + create_movement step_16 + create_movement step_17 + create_movement step_18 + create_movement step_19 + create_movement step_1a + create_movement step_1b + create_movement step_1c + create_movement step_1d + create_movement step_1e + create_movement step_1f + create_movement step_20 + create_movement step_21 + create_movement step_22 + create_movement step_23 + create_movement step_24 + create_movement step_25 + create_movement step_26 + create_movement step_27 + create_movement step_28 + create_movement step_29 + create_movement step_2a + create_movement step_2b + create_movement step_2c + create_movement step_2d + create_movement step_2e + create_movement step_2f + create_movement step_30 + create_movement step_31 + create_movement step_32 + create_movement step_33 + create_movement step_34 + create_movement step_35 + create_movement step_36 + create_movement step_37 + create_movement step_38 + create_movement step_39 + create_movement step_3a + create_movement step_3b + create_movement step_3c + create_movement step_3d + create_movement step_3e + create_movement step_3f + create_movement step_40 + create_movement step_41 + create_movement step_42 + create_movement step_43 + create_movement step_44 + create_movement step_45 + create_movement step_46 + create_movement step_47 + create_movement step_48 + create_movement step_49 + create_movement step_4a + create_movement step_4b + create_movement step_4c + create_movement step_4d + create_movement step_4e + create_movement step_4f + create_movement step_50 + create_movement step_51 + create_movement step_52 + create_movement step_53 + create_movement step_54 + create_movement step_55 + create_movement step_56 + create_movement step_57 + create_movement step_58 + create_movement step_59 + create_movement step_5a + create_movement step_5b + create_movement step_5c + create_movement step_5d + create_movement step_5e + create_movement step_5f + create_movement step_60 + create_movement step_61 + create_movement step_62 + create_movement step_63 + create_movement step_64 + create_movement step_65 + + enum_start 0x91 + create_movement step_91 + create_movement step_92 + + enum_start 0x96 + create_movement step_96 + + enum_start 0xfe + create_movement step_end diff --git a/berry_fix/payload/asm/macros/music_voice.inc b/berry_fix/payload/asm/macros/music_voice.inc new file mode 100644 index 000000000..b7a9e7f8d --- /dev/null +++ b/berry_fix/payload/asm/macros/music_voice.inc @@ -0,0 +1,125 @@ + .macro voice_directsound base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release + .byte 0 + _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release + .endm + + .macro voice_directsound_no_resample base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release + .byte 8 + _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release + .endm + + .macro voice_directsound_alt base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release + .byte 16 + _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release + .endm + + .macro _voice_directsound base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release + .byte \base_midi_key + .byte 0 + .if \pan != 0 + .byte (0x80 | \pan) + .else + .byte 0 + .endif + .4byte \sample_data_pointer + .byte \attack + .byte \decay + .byte \sustain + .byte \release + .endm + + .macro voice_square_1 sweep, duty_cycle, attack, decay, sustain, release + _voice_square_1 1, \sweep, \duty_cycle, \attack, \decay, \sustain, \release + .endm + + .macro voice_square_1_alt sweep, duty_cycle, attack, decay, sustain, release + _voice_square_1 9, \sweep, \duty_cycle, \attack, \decay, \sustain, \release + .endm + + .macro _voice_square_1 type, sweep, duty_cycle, attack, decay, sustain, release + .byte \type, 60, 0 + .byte \sweep + .byte (\duty_cycle & 0x3) + .byte 0, 0, 0 + .byte (\attack & 0x7) + .byte (\decay & 0x7) + .byte (\sustain & 0xF) + .byte (\release & 0x7) + .endm + + .macro voice_square_2 duty_cycle, attack, decay, sustain, release + _voice_square_2 2, \duty_cycle, \attack, \decay, \sustain, \release + .endm + + .macro voice_square_2_alt duty_cycle, attack, decay, sustain, release + _voice_square_2 10, \duty_cycle, \attack, \decay, \sustain, \release + .endm + + .macro _voice_square_2 type, duty_cycle, attack, decay, sustain, release + .byte \type, 60, 0, 0 + .byte (\duty_cycle & 0x3) + .byte 0, 0, 0 + .byte (\attack & 0x7) + .byte (\decay & 0x7) + .byte (\sustain & 0xF) + .byte (\release & 0x7) + .endm + + .macro voice_programmable_wave wave_samples_pointer, attack, decay, sustain, release + _voice_programmable_wave 3, \wave_samples_pointer, \attack, \decay, \sustain, \release + .endm + + .macro voice_programmable_wave_alt wave_samples_pointer, attack, decay, sustain, release + _voice_programmable_wave 11, \wave_samples_pointer, \attack, \decay, \sustain, \release + .endm + + .macro _voice_programmable_wave type, wave_samples_pointer, attack, decay, sustain, release + .byte \type, 60, 0, 0 + .4byte \wave_samples_pointer + .byte (\attack & 0x7) + .byte (\decay & 0x7) + .byte (\sustain & 0xF) + .byte (\release & 0x7) + .endm + + .macro voice_noise period, attack, decay, sustain, release + _voice_noise 4, \period, \attack, \decay, \sustain, \release + .endm + + .macro voice_noise_alt period, attack, decay, sustain, release + _voice_noise 12, \period, \attack, \decay, \sustain, \release + .endm + + .macro _voice_noise type, period, attack, decay, sustain, release + .byte \type, 60, 0, 0 + .byte (\period & 0x1) + .byte 0, 0, 0 + .byte (\attack & 0x7) + .byte (\decay & 0x7) + .byte (\sustain & 0xF) + .byte (\release & 0x7) + .endm + + .macro voice_keysplit voice_group_pointer, keysplit_table_pointer + .byte 0x40, 0, 0, 0 + .4byte \voice_group_pointer + .4byte \keysplit_table_pointer + .endm + + .macro voice_keysplit_all voice_group_pointer + .byte 0x80, 0, 0, 0 + .4byte \voice_group_pointer + .4byte 0 + .endm + + .macro cry sample + .byte 0x20, 60, 0, 0 + .4byte \sample + .byte 0xff, 0, 0xff, 0 + .endm + + .macro cry2 sample + .byte 0x30, 60, 0, 0 + .4byte \sample + .byte 0xff, 0, 0xff, 0 + .endm diff --git a/berry_fix/payload/asm/macros/pokemon_data.inc b/berry_fix/payload/asm/macros/pokemon_data.inc new file mode 100644 index 000000000..b0a5f22e3 --- /dev/null +++ b/berry_fix/payload/asm/macros/pokemon_data.inc @@ -0,0 +1,57 @@ + .macro pokedex_entry pokemon_name, height, weight, pokemon_scale, pokemon_offset, trainer_scale, trainer_offset + .2byte \height @ in decimeters + .2byte \weight @ in hectograms + .4byte DexDescription_\pokemon_name\()_1 + .4byte DexDescription_\pokemon_name\()_2 + .2byte 0 @ unused + .2byte \pokemon_scale + .2byte \pokemon_offset + .2byte \trainer_scale + .2byte \trainer_offset + .2byte 0 @ padding + .endm + + .macro base_stats hp, attack, defense, speed, sp_attack, sp_defense + .byte \hp + .byte \attack + .byte \defense + .byte \speed + .byte \sp_attack + .byte \sp_defense + .endm + + .macro ev_yield hp, attack, defense, speed, sp_attack, sp_defense + .2byte (\sp_defense << 10) | (\sp_attack << 8) | (\speed << 6) | (\defense << 4) | (\attack << 2) | \hp + .endm + + .macro level_up_move level, move + .2byte (\level << 9) | \move + .endm + + .macro evo_entry method, parameter, target_species + .2byte \method + .2byte \parameter + .2byte \target_species + .2byte 0 @ padding + .endm + + .macro empty_evo_entries count + .fill 8 * \count, 1, 0 + .endm + + .macro egg_moves_begin species + .2byte 20000 + \species + .endm + +@ If the min level equals the max level, only one level argument is needed. + .macro wild_mon species, min_level, max_level + .byte \min_level + + .ifb \max_level + .byte \min_level + .else + .byte \max_level + .endif + + .2byte SPECIES_\species + .endm diff --git a/berry_fix/payload/constants/gba_constants.inc b/berry_fix/payload/constants/gba_constants.inc new file mode 100644 index 000000000..9d59c8fcd --- /dev/null +++ b/berry_fix/payload/constants/gba_constants.inc @@ -0,0 +1,490 @@ + .set PSR_USR_MODE, 0x00000010 + .set PSR_FIQ_MODE, 0x00000011 + .set PSR_IRQ_MODE, 0x00000012 + .set PSR_SVC_MODE, 0x00000013 + .set PSR_ABT_MODE, 0x00000017 + .set PSR_UND_MODE, 0x0000001b + .set PSR_SYS_MODE, 0x0000001f + .set PSR_MODE_MASK, 0x0000001f + .set PSR_T_BIT, 0x00000020 + .set PSR_F_BIT, 0x00000040 + .set PSR_I_BIT, 0x00000080 + + .set EWRAM_START, 0x02000000 + .set EWRAM_END, EWRAM_START + 0x40000 + .set IWRAM_START, 0x03000000 + .set IWRAM_END, IWRAM_START + 0x8000 + + .set PLTT, 0x5000000 + .set BG_PLTT, PLTT + .set OBJ_PLTT, PLTT + 0x200 + + .set VRAM, 0x6000000 + .set BG_VRAM, VRAM + .set OBJ_VRAM0, VRAM + 0x10000 @ text-mode BG + .set OBJ_VRAM1, VRAM + 0x14000 @ bitmap-mode BG + + .set OAM, 0x7000000 + + .set SOUND_INFO_PTR, 0x3007FF0 + .set INTR_CHECK, 0x3007FF8 + .set INTR_VECTOR, 0x3007FFC + + .set INTR_FLAG_VBLANK, 1 << 0 + .set INTR_FLAG_HBLANK, 1 << 1 + .set INTR_FLAG_VCOUNT, 1 << 2 + .set INTR_FLAG_TIMER0, 1 << 3 + .set INTR_FLAG_TIMER1, 1 << 4 + .set INTR_FLAG_TIMER2, 1 << 5 + .set INTR_FLAG_TIMER3, 1 << 6 + .set INTR_FLAG_SERIAL, 1 << 7 + .set INTR_FLAG_DMA0, 1 << 8 + .set INTR_FLAG_DMA1, 1 << 9 + .set INTR_FLAG_DMA2, 1 << 10 + .set INTR_FLAG_DMA3, 1 << 11 + .set INTR_FLAG_KEYPAD, 1 << 12 + .set INTR_FLAG_GAMEPAK, 1 << 13 + + .set VCOUNT_VBLANK, 160 + .set TOTAL_SCANLINES, 228 + + .set REG_BASE, 0x4000000 @ I/O register base address + +@ I/O register offsets + .set OFFSET_REG_DISPCNT, 0x0 + .set OFFSET_REG_DISPSTAT, 0x4 + .set OFFSET_REG_VCOUNT, 0x6 + .set OFFSET_REG_BG0CNT, 0x8 + .set OFFSET_REG_BG1CNT, 0xa + .set OFFSET_REG_BG2CNT, 0xc + .set OFFSET_REG_BG3CNT, 0xe + .set OFFSET_REG_BG0HOFS, 0x10 + .set OFFSET_REG_BG0VOFS, 0x12 + .set OFFSET_REG_BG1HOFS, 0x14 + .set OFFSET_REG_BG1VOFS, 0x16 + .set OFFSET_REG_BG2HOFS, 0x18 + .set OFFSET_REG_BG2VOFS, 0x1a + .set OFFSET_REG_BG3HOFS, 0x1c + .set OFFSET_REG_BG3VOFS, 0x1e + .set OFFSET_REG_BG2PA, 0x20 + .set OFFSET_REG_BG2PB, 0x22 + .set OFFSET_REG_BG2PC, 0x24 + .set OFFSET_REG_BG2PD, 0x26 + .set OFFSET_REG_BG2X_L, 0x28 + .set OFFSET_REG_BG2X_H, 0x2a + .set OFFSET_REG_BG2Y_L, 0x2c + .set OFFSET_REG_BG2Y_H, 0x2e + .set OFFSET_REG_BG3PA, 0x30 + .set OFFSET_REG_BG3PB, 0x32 + .set OFFSET_REG_BG3PC, 0x34 + .set OFFSET_REG_BG3PD, 0x36 + .set OFFSET_REG_BG3X_L, 0x38 + .set OFFSET_REG_BG3X_H, 0x3a + .set OFFSET_REG_BG3Y_L, 0x3c + .set OFFSET_REG_BG3Y_H, 0x3e + .set OFFSET_REG_WIN0H, 0x40 + .set OFFSET_REG_WIN1H, 0x42 + .set OFFSET_REG_WIN0V, 0x44 + .set OFFSET_REG_WIN1V, 0x46 + .set OFFSET_REG_WININ, 0x48 + .set OFFSET_REG_WINOUT, 0x4a + .set OFFSET_REG_MOSAIC, 0x4c + .set OFFSET_REG_BLDCNT, 0x50 + .set OFFSET_REG_BLDALPHA, 0x52 + .set OFFSET_REG_BLDY, 0x54 + + .set OFFSET_REG_SOUND1CNT, 0x60 + .set OFFSET_REG_SOUND1CNT_L, 0x60 + .set OFFSET_REG_NR10, 0x60 + .set OFFSET_REG_SOUND1CNT_H, 0x62 + .set OFFSET_REG_NR11, 0x62 + .set OFFSET_REG_NR12, 0x63 + .set OFFSET_REG_SOUND1CNT_X, 0x64 + .set OFFSET_REG_NR13, 0x64 + .set OFFSET_REG_NR14, 0x65 + .set OFFSET_REG_SOUND2CNT, 0x68 + .set OFFSET_REG_SOUND2CNT_L, 0x68 + .set OFFSET_REG_NR21, 0x68 + .set OFFSET_REG_NR22, 0x69 + .set OFFSET_REG_SOUND2CNT_H, 0x6c + .set OFFSET_REG_NR23, 0x6c + .set OFFSET_REG_NR24, 0x6d + .set OFFSET_REG_SOUND3CNT, 0x70 + .set OFFSET_REG_SOUND3CNT_L, 0x70 + .set OFFSET_REG_NR30, 0x70 + .set OFFSET_REG_SOUND3CNT_H, 0x72 + .set OFFSET_REG_NR31, 0x72 + .set OFFSET_REG_NR32, 0x73 + .set OFFSET_REG_SOUND3CNT_X, 0x74 + .set OFFSET_REG_NR33, 0x74 + .set OFFSET_REG_NR34, 0x75 + .set OFFSET_REG_SOUND4CNT, 0x78 + .set OFFSET_REG_SOUND4CNT_L, 0x78 + .set OFFSET_REG_NR41, 0x78 + .set OFFSET_REG_NR42, 0x79 + .set OFFSET_REG_SOUND4CNT_H, 0x7c + .set OFFSET_REG_NR43, 0x7c + .set OFFSET_REG_NR44, 0x7d + .set OFFSET_REG_SOUNDCNT, 0x80 + .set OFFSET_REG_SOUNDCNT_L, 0x80 + .set OFFSET_REG_NR50, 0x80 + .set OFFSET_REG_NR51, 0x81 + .set OFFSET_REG_SOUNDCNT_H, 0x82 + .set OFFSET_REG_SOUNDCNT_X, 0x84 + .set OFFSET_REG_NR52, 0x84 + .set OFFSET_REG_SOUNDBIAS, 0x88 + .set OFFSET_REG_WAVE_RAM, 0x90 + .set OFFSET_REG_WAVE_RAM0, 0x90 + .set OFFSET_REG_WAVE_RAM0_L, 0x90 + .set OFFSET_REG_WAVE_RAM0_H, 0x92 + .set OFFSET_REG_WAVE_RAM1, 0x94 + .set OFFSET_REG_WAVE_RAM1_L, 0x94 + .set OFFSET_REG_WAVE_RAM1_H, 0x96 + .set OFFSET_REG_WAVE_RAM2, 0x98 + .set OFFSET_REG_WAVE_RAM2_L, 0x98 + .set OFFSET_REG_WAVE_RAM2_H, 0x9a + .set OFFSET_REG_WAVE_RAM3, 0x9c + .set OFFSET_REG_WAVE_RAM3_L, 0x9c + .set OFFSET_REG_WAVE_RAM3_H, 0x9e + .set OFFSET_REG_FIFO, 0xa0 + .set OFFSET_REG_FIFO_A, 0xa0 + .set OFFSET_REG_FIFO_A_L, 0xa0 + .set OFFSET_REG_FIFO_A_H, 0xa2 + .set OFFSET_REG_FIFO_B, 0xa4 + .set OFFSET_REG_FIFO_B_L, 0xa4 + .set OFFSET_REG_FIFO_B_H, 0xa6 + + .set OFFSET_REG_DMA0, 0xb0 + .set OFFSET_REG_DMA0SAD, 0xb0 + .set OFFSET_REG_DMA0SAD_L, 0xb0 + .set OFFSET_REG_DMA0SAD_H, 0xb2 + .set OFFSET_REG_DMA0DAD, 0xb4 + .set OFFSET_REG_DMA0DAD_L, 0xb4 + .set OFFSET_REG_DMA0DAD_H, 0xb6 + .set OFFSET_REG_DMA0CNT, 0xb8 + .set OFFSET_REG_DMA0CNT_L, 0xb8 + .set OFFSET_REG_DMA0CNT_H, 0xba + .set OFFSET_REG_DMA1, 0xbc + .set OFFSET_REG_DMA1SAD, 0xbc + .set OFFSET_REG_DMA1SAD_L, 0xbc + .set OFFSET_REG_DMA1SAD_H, 0xbe + .set OFFSET_REG_DMA1DAD, 0xc0 + .set OFFSET_REG_DMA1DAD_L, 0xc0 + .set OFFSET_REG_DMA1DAD_H, 0xc2 + .set OFFSET_REG_DMA1CNT, 0xc4 + .set OFFSET_REG_DMA1CNT_L, 0xc4 + .set OFFSET_REG_DMA1CNT_H, 0xc6 + .set OFFSET_REG_DMA2, 0xc8 + .set OFFSET_REG_DMA2SAD, 0xc8 + .set OFFSET_REG_DMA2SAD_L, 0xc8 + .set OFFSET_REG_DMA2SAD_H, 0xca + .set OFFSET_REG_DMA2DAD, 0xcc + .set OFFSET_REG_DMA2DAD_L, 0xcc + .set OFFSET_REG_DMA2DAD_H, 0xce + .set OFFSET_REG_DMA2CNT, 0xd0 + .set OFFSET_REG_DMA2CNT_L, 0xd0 + .set OFFSET_REG_DMA2CNT_H, 0xd2 + .set OFFSET_REG_DMA3, 0xd4 + .set OFFSET_REG_DMA3SAD, 0xd4 + .set OFFSET_REG_DMA3SAD_L, 0xd4 + .set OFFSET_REG_DMA3SAD_H, 0xd6 + .set OFFSET_REG_DMA3DAD, 0xd8 + .set OFFSET_REG_DMA3DAD_L, 0xd8 + .set OFFSET_REG_DMA3DAD_H, 0xda + .set OFFSET_REG_DMA3CNT, 0xdc + .set OFFSET_REG_DMA3CNT_L, 0xdc + .set OFFSET_REG_DMA3CNT_H, 0xde + + .set OFFSET_REG_TM0CNT, 0x100 + .set OFFSET_REG_TM0CNT_L, 0x100 + .set OFFSET_REG_TM0CNT_H, 0x102 + .set OFFSET_REG_TM1CNT, 0x104 + .set OFFSET_REG_TM1CNT_L, 0x104 + .set OFFSET_REG_TM1CNT_H, 0x106 + .set OFFSET_REG_TM2CNT, 0x108 + .set OFFSET_REG_TM2CNT_L, 0x108 + .set OFFSET_REG_TM2CNT_H, 0x10a + .set OFFSET_REG_TM3CNT, 0x10c + .set OFFSET_REG_TM3CNT_L, 0x10c + .set OFFSET_REG_TM3CNT_H, 0x10e + + .set OFFSET_REG_SIOCNT, 0x128 + .set OFFSET_REG_SIODATA8, 0x12a + .set OFFSET_REG_SIODATA32, 0x120 + .set OFFSET_REG_SIOMLT_SEND, 0x12a + .set OFFSET_REG_SIOMLT_RECV, 0x120 + .set OFFSET_REG_SIOMULTI0, 0x120 + .set OFFSET_REG_SIOMULTI1, 0x122 + .set OFFSET_REG_SIOMULTI2, 0x124 + .set OFFSET_REG_SIOMULTI3, 0x126 + + .set OFFSET_REG_KEYINPUT, 0x130 + .set OFFSET_REG_KEYCNT, 0x132 + + .set OFFSET_REG_RCNT, 0x134 + + .set OFFSET_REG_JOYCNT, 0x140 + .set OFFSET_REG_JOYSTAT, 0x158 + .set OFFSET_REG_JOY_RECV, 0x150 + .set OFFSET_REG_JOY_RECV_L, 0x150 + .set OFFSET_REG_JOY_RECV_H, 0x152 + .set OFFSET_REG_JOY_TRANS, 0x154 + .set OFFSET_REG_JOY_TRANS_L, 0x154 + .set OFFSET_REG_JOY_TRANS_H, 0x156 + + .set OFFSET_REG_IME, 0x208 + .set OFFSET_REG_IE, 0x200 + .set OFFSET_REG_IF, 0x202 + + .set OFFSET_REG_WAITCNT, 0x204 + +@ I/O register addresses + .set REG_DISPCNT, REG_BASE + OFFSET_REG_DISPCNT + .set REG_DISPSTAT, REG_BASE + OFFSET_REG_DISPSTAT + .set REG_VCOUNT, REG_BASE + OFFSET_REG_VCOUNT + .set REG_BG0CNT, REG_BASE + OFFSET_REG_BG0CNT + .set REG_BG1CNT, REG_BASE + OFFSET_REG_BG1CNT + .set REG_BG2CNT, REG_BASE + OFFSET_REG_BG2CNT + .set REG_BG3CNT, REG_BASE + OFFSET_REG_BG3CNT + .set REG_BG0HOFS, REG_BASE + OFFSET_REG_BG0HOFS + .set REG_BG0VOFS, REG_BASE + OFFSET_REG_BG0VOFS + .set REG_BG1HOFS, REG_BASE + OFFSET_REG_BG1HOFS + .set REG_BG1VOFS, REG_BASE + OFFSET_REG_BG1VOFS + .set REG_BG2HOFS, REG_BASE + OFFSET_REG_BG2HOFS + .set REG_BG2VOFS, REG_BASE + OFFSET_REG_BG2VOFS + .set REG_BG3HOFS, REG_BASE + OFFSET_REG_BG3HOFS + .set REG_BG3VOFS, REG_BASE + OFFSET_REG_BG3VOFS + .set REG_BG2PA, REG_BASE + OFFSET_REG_BG2PA + .set REG_BG2PB, REG_BASE + OFFSET_REG_BG2PB + .set REG_BG2PC, REG_BASE + OFFSET_REG_BG2PC + .set REG_BG2PD, REG_BASE + OFFSET_REG_BG2PD + .set REG_BG2X_L, REG_BASE + OFFSET_REG_BG2X_L + .set REG_BG2X_H, REG_BASE + OFFSET_REG_BG2X_H + .set REG_BG2Y_L, REG_BASE + OFFSET_REG_BG2Y_L + .set REG_BG2Y_H, REG_BASE + OFFSET_REG_BG2Y_H + .set REG_BG3PA, REG_BASE + OFFSET_REG_BG3PA + .set REG_BG3PB, REG_BASE + OFFSET_REG_BG3PB + .set REG_BG3PC, REG_BASE + OFFSET_REG_BG3PC + .set REG_BG3PD, REG_BASE + OFFSET_REG_BG3PD + .set REG_BG3X_L, REG_BASE + OFFSET_REG_BG3X_L + .set REG_BG3X_H, REG_BASE + OFFSET_REG_BG3X_H + .set REG_BG3Y_L, REG_BASE + OFFSET_REG_BG3Y_L + .set REG_BG3Y_H, REG_BASE + OFFSET_REG_BG3Y_H + .set REG_WIN0H, REG_BASE + OFFSET_REG_WIN0H + .set REG_WIN1H, REG_BASE + OFFSET_REG_WIN1H + .set REG_WIN0V, REG_BASE + OFFSET_REG_WIN0V + .set REG_WIN1V, REG_BASE + OFFSET_REG_WIN1V + .set REG_WININ, REG_BASE + OFFSET_REG_WININ + .set REG_WINOUT, REG_BASE + OFFSET_REG_WINOUT + .set REG_MOSAIC, REG_BASE + OFFSET_REG_MOSAIC + .set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT + .set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA + .set REG_BLDY, REG_BASE + OFFSET_REG_BLDY + + .set REG_SOUND1CNT, REG_BASE + OFFSET_REG_SOUND1CNT + .set REG_SOUND1CNT_L, REG_BASE + OFFSET_REG_SOUND1CNT_L + .set REG_NR10, REG_BASE + OFFSET_REG_NR10 + .set REG_SOUND1CNT_H, REG_BASE + OFFSET_REG_SOUND1CNT_H + .set REG_NR11, REG_BASE + OFFSET_REG_NR11 + .set REG_NR12, REG_BASE + OFFSET_REG_NR12 + .set REG_SOUND1CNT_X, REG_BASE + OFFSET_REG_SOUND1CNT_X + .set REG_NR13, REG_BASE + OFFSET_REG_NR13 + .set REG_NR14, REG_BASE + OFFSET_REG_NR14 + .set REG_SOUND2CNT, REG_BASE + OFFSET_REG_SOUND2CNT + .set REG_SOUND2CNT_L, REG_BASE + OFFSET_REG_SOUND2CNT_L + .set REG_NR21, REG_BASE + OFFSET_REG_NR21 + .set REG_NR22, REG_BASE + OFFSET_REG_NR22 + .set REG_SOUND2CNT_H, REG_BASE + OFFSET_REG_SOUND2CNT_H + .set REG_NR23, REG_BASE + OFFSET_REG_NR23 + .set REG_NR24, REG_BASE + OFFSET_REG_NR24 + .set REG_SOUND3CNT, REG_BASE + OFFSET_REG_SOUND3CNT + .set REG_SOUND3CNT_L, REG_BASE + OFFSET_REG_SOUND3CNT_L + .set REG_NR30, REG_BASE + OFFSET_REG_NR30 + .set REG_SOUND3CNT_H, REG_BASE + OFFSET_REG_SOUND3CNT_H + .set REG_NR31, REG_BASE + OFFSET_REG_NR31 + .set REG_NR32, REG_BASE + OFFSET_REG_NR32 + .set REG_SOUND3CNT_X, REG_BASE + OFFSET_REG_SOUND3CNT_X + .set REG_NR33, REG_BASE + OFFSET_REG_NR33 + .set REG_NR34, REG_BASE + OFFSET_REG_NR34 + .set REG_SOUND4CNT, REG_BASE + OFFSET_REG_SOUND4CNT + .set REG_SOUND4CNT_L, REG_BASE + OFFSET_REG_SOUND4CNT_L + .set REG_NR41, REG_BASE + OFFSET_REG_NR41 + .set REG_NR42, REG_BASE + OFFSET_REG_NR42 + .set REG_SOUND4CNT_H, REG_BASE + OFFSET_REG_SOUND4CNT_H + .set REG_NR43, REG_BASE + OFFSET_REG_NR43 + .set REG_NR44, REG_BASE + OFFSET_REG_NR44 + .set REG_SOUNDCNT, REG_BASE + OFFSET_REG_SOUNDCNT + .set REG_SOUNDCNT_L, REG_BASE + OFFSET_REG_SOUNDCNT_L + .set REG_NR50, REG_BASE + OFFSET_REG_NR50 + .set REG_NR51, REG_BASE + OFFSET_REG_NR51 + .set REG_SOUNDCNT_H, REG_BASE + OFFSET_REG_SOUNDCNT_H + .set REG_SOUNDCNT_X, REG_BASE + OFFSET_REG_SOUNDCNT_X + .set REG_NR52, REG_BASE + OFFSET_REG_NR52 + .set REG_SOUNDBIAS, REG_BASE + OFFSET_REG_SOUNDBIAS + .set REG_WAVE_RAM, REG_BASE + OFFSET_REG_WAVE_RAM + .set REG_WAVE_RAM0, REG_BASE + OFFSET_REG_WAVE_RAM0 + .set REG_WAVE_RAM0_L, REG_BASE + OFFSET_REG_WAVE_RAM0_L + .set REG_WAVE_RAM0_H, REG_BASE + OFFSET_REG_WAVE_RAM0_H + .set REG_WAVE_RAM1, REG_BASE + OFFSET_REG_WAVE_RAM1 + .set REG_WAVE_RAM1_L, REG_BASE + OFFSET_REG_WAVE_RAM1_L + .set REG_WAVE_RAM1_H, REG_BASE + OFFSET_REG_WAVE_RAM1_H + .set REG_WAVE_RAM2, REG_BASE + OFFSET_REG_WAVE_RAM2 + .set REG_WAVE_RAM2_L, REG_BASE + OFFSET_REG_WAVE_RAM2_L + .set REG_WAVE_RAM2_H, REG_BASE + OFFSET_REG_WAVE_RAM2_H + .set REG_WAVE_RAM3, REG_BASE + OFFSET_REG_WAVE_RAM3 + .set REG_WAVE_RAM3_L, REG_BASE + OFFSET_REG_WAVE_RAM3_L + .set REG_WAVE_RAM3_H, REG_BASE + OFFSET_REG_WAVE_RAM3_H + .set REG_FIFO, REG_BASE + OFFSET_REG_FIFO + .set REG_FIFO_A, REG_BASE + OFFSET_REG_FIFO_A + .set REG_FIFO_A_L, REG_BASE + OFFSET_REG_FIFO_A_L + .set REG_FIFO_A_H, REG_BASE + OFFSET_REG_FIFO_A_H + .set REG_FIFO_B, REG_BASE + OFFSET_REG_FIFO_B + .set REG_FIFO_B_L, REG_BASE + OFFSET_REG_FIFO_B_L + .set REG_FIFO_B_H, REG_BASE + OFFSET_REG_FIFO_B_H + + .set REG_DMA0, REG_BASE + OFFSET_REG_DMA0 + .set REG_DMA0SAD, REG_BASE + OFFSET_REG_DMA0SAD + .set REG_DMA0SAD_L, REG_BASE + OFFSET_REG_DMA0SAD_L + .set REG_DMA0SAD_H, REG_BASE + OFFSET_REG_DMA0SAD_H + .set REG_DMA0DAD, REG_BASE + OFFSET_REG_DMA0DAD + .set REG_DMA0DAD_L, REG_BASE + OFFSET_REG_DMA0DAD_L + .set REG_DMA0DAD_H, REG_BASE + OFFSET_REG_DMA0DAD_H + .set REG_DMA0CNT, REG_BASE + OFFSET_REG_DMA0CNT + .set REG_DMA0CNT_L, REG_BASE + OFFSET_REG_DMA0CNT_L + .set REG_DMA0CNT_H, REG_BASE + OFFSET_REG_DMA0CNT_H + .set REG_DMA1, REG_BASE + OFFSET_REG_DMA1 + .set REG_DMA1SAD, REG_BASE + OFFSET_REG_DMA1SAD + .set REG_DMA1SAD_L, REG_BASE + OFFSET_REG_DMA1SAD_L + .set REG_DMA1SAD_H, REG_BASE + OFFSET_REG_DMA1SAD_H + .set REG_DMA1DAD, REG_BASE + OFFSET_REG_DMA1DAD + .set REG_DMA1DAD_L, REG_BASE + OFFSET_REG_DMA1DAD_L + .set REG_DMA1DAD_H, REG_BASE + OFFSET_REG_DMA1DAD_H + .set REG_DMA1CNT, REG_BASE + OFFSET_REG_DMA1CNT + .set REG_DMA1CNT_L, REG_BASE + OFFSET_REG_DMA1CNT_L + .set REG_DMA1CNT_H, REG_BASE + OFFSET_REG_DMA1CNT_H + .set REG_DMA2, REG_BASE + OFFSET_REG_DMA2 + .set REG_DMA2SAD, REG_BASE + OFFSET_REG_DMA2SAD + .set REG_DMA2SAD_L, REG_BASE + OFFSET_REG_DMA2SAD_L + .set REG_DMA2SAD_H, REG_BASE + OFFSET_REG_DMA2SAD_H + .set REG_DMA2DAD, REG_BASE + OFFSET_REG_DMA2DAD + .set REG_DMA2DAD_L, REG_BASE + OFFSET_REG_DMA2DAD_L + .set REG_DMA2DAD_H, REG_BASE + OFFSET_REG_DMA2DAD_H + .set REG_DMA2CNT, REG_BASE + OFFSET_REG_DMA2CNT + .set REG_DMA2CNT_L, REG_BASE + OFFSET_REG_DMA2CNT_L + .set REG_DMA2CNT_H, REG_BASE + OFFSET_REG_DMA2CNT_H + .set REG_DMA3, REG_BASE + OFFSET_REG_DMA3 + .set REG_DMA3SAD, REG_BASE + OFFSET_REG_DMA3SAD + .set REG_DMA3SAD_L, REG_BASE + OFFSET_REG_DMA3SAD_L + .set REG_DMA3SAD_H, REG_BASE + OFFSET_REG_DMA3SAD_H + .set REG_DMA3DAD, REG_BASE + OFFSET_REG_DMA3DAD + .set REG_DMA3DAD_L, REG_BASE + OFFSET_REG_DMA3DAD_L + .set REG_DMA3DAD_H, REG_BASE + OFFSET_REG_DMA3DAD_H + .set REG_DMA3CNT, REG_BASE + OFFSET_REG_DMA3CNT + .set REG_DMA3CNT_L, REG_BASE + OFFSET_REG_DMA3CNT_L + .set REG_DMA3CNT_H, REG_BASE + OFFSET_REG_DMA3CNT_H + + .set REG_TM0CNT, REG_BASE + OFFSET_REG_TM0CNT + .set REG_TM0CNT_L, REG_BASE + OFFSET_REG_TM0CNT_L + .set REG_TM0CNT_H, REG_BASE + OFFSET_REG_TM0CNT_H + .set REG_TM1CNT, REG_BASE + OFFSET_REG_TM1CNT + .set REG_TM1CNT_L, REG_BASE + OFFSET_REG_TM1CNT_L + .set REG_TM1CNT_H, REG_BASE + OFFSET_REG_TM1CNT_H + .set REG_TM2CNT, REG_BASE + OFFSET_REG_TM2CNT + .set REG_TM2CNT_L, REG_BASE + OFFSET_REG_TM2CNT_L + .set REG_TM2CNT_H, REG_BASE + OFFSET_REG_TM2CNT_H + .set REG_TM3CNT, REG_BASE + OFFSET_REG_TM3CNT + .set REG_TM3CNT_L, REG_BASE + OFFSET_REG_TM3CNT_L + .set REG_TM3CNT_H, REG_BASE + OFFSET_REG_TM3CNT_H + + .set REG_SIOCNT, REG_BASE + OFFSET_REG_SIOCNT + .set REG_SIODATA8, REG_BASE + OFFSET_REG_SIODATA8 + .set REG_SIODATA32, REG_BASE + OFFSET_REG_SIODATA32 + .set REG_SIOMLT_SEND, REG_BASE + OFFSET_REG_SIOMLT_SEND + .set REG_SIOMLT_RECV, REG_BASE + OFFSET_REG_SIOMLT_RECV + .set REG_SIOMULTI0, REG_BASE + OFFSET_REG_SIOMULTI0 + .set REG_SIOMULTI1, REG_BASE + OFFSET_REG_SIOMULTI1 + .set REG_SIOMULTI2, REG_BASE + OFFSET_REG_SIOMULTI2 + .set REG_SIOMULTI3, REG_BASE + OFFSET_REG_SIOMULTI3 + + .set REG_KEYINPUT, REG_BASE + OFFSET_REG_KEYINPUT + .set REG_KEYCNT, REG_BASE + OFFSET_REG_KEYCNT + + .set REG_RCNT, REG_BASE + OFFSET_REG_RCNT + + .set REG_JOYCNT, REG_BASE + OFFSET_REG_JOYCNT + .set REG_JOYSTAT, REG_BASE + OFFSET_REG_JOYSTAT + .set REG_JOY_RECV, REG_BASE + OFFSET_REG_JOY_RECV + .set REG_JOY_RECV_L, REG_BASE + OFFSET_REG_JOY_RECV_L + .set REG_JOY_RECV_H, REG_BASE + OFFSET_REG_JOY_RECV_H + .set REG_JOY_TRANS, REG_BASE + OFFSET_REG_JOY_TRANS + .set REG_JOY_TRANS_L, REG_BASE + OFFSET_REG_JOY_TRANS_L + .set REG_JOY_TRANS_H, REG_BASE + OFFSET_REG_JOY_TRANS_H + + .set REG_IME, REG_BASE + OFFSET_REG_IME + .set REG_IE, REG_BASE + OFFSET_REG_IE + .set REG_IF, REG_BASE + OFFSET_REG_IF + + .set REG_WAITCNT, REG_BASE + OFFSET_REG_WAITCNT + +@ DMA register constants + + .set DMA_DEST_INC, 0x0000 + .set DMA_DEST_DEC, 0x0020 + .set DMA_DEST_FIXED, 0x0040 + .set DMA_DEST_RELOAD, 0x0060 + .set DMA_SRC_INC, 0x0000 + .set DMA_SRC_DEC, 0x0080 + .set DMA_SRC_FIXED, 0x0100 + .set DMA_REPEAT, 0x0200 + .set DMA_16BIT, 0x0000 + .set DMA_32BIT, 0x0400 + .set DMA_DREQ_ON, 0x0800 + .set DMA_START_NOW, 0x0000 + .set DMA_START_VBLANK, 0x1000 + .set DMA_START_HBLANK, 0x2000 + .set DMA_START_SPECIAL, 0x3000 + .set DMA_INTR_ENABLE, 0x4000 + .set DMA_ENABLE, 0x8000 + +@ OAM attribute constants + + .set OAM_OBJ_NORMAL, 0x00000000 + .set OAM_OBJ_BLEND, 0x00000400 + .set OAM_OBJ_WINDOW, 0x00000800 + + .set OAM_AFFINE_NONE, 0x00000000 + .set OAM_AFFINE_NORMAL_SIZE, 0x00000100 + .set OAM_OBJ_DISABLED, 0x00000200 + .set OAM_AFFINE_DOUBLE_SIZE, 0x00000300 + + .set OAM_MOSAIC_OFF, 0x00000000 + .set OAM_MOSAIC_ON, 0x00001000 + + .set OAM_4BPP, 0x00000000 + .set OAM_8BPP, 0x00002000 + + .set OAM_H_FLIP, 0x10000000 + .set OAM_V_FLIP, 0x20000000 + + .set OAM_SQUARE, 0x00000000 + .set OAM_H_RECTANGLE, 0x00004000 + .set OAM_V_RECTANGLE, 0x00008000 + .set OAM_SIZE_0, 0x00000000 + .set OAM_SIZE_1, 0x40000000 + .set OAM_SIZE_2, 0x80000000 + .set OAM_SIZE_3, 0xc0000000 + + .set OAM_SIZE_8x8, OAM_SIZE_0 | OAM_SQUARE + .set OAM_SIZE_16x16, OAM_SIZE_1 | OAM_SQUARE + .set OAM_SIZE_32x32, OAM_SIZE_2 | OAM_SQUARE + .set OAM_SIZE_64x64, OAM_SIZE_3 | OAM_SQUARE + + .set OAM_SIZE_16x8, OAM_SIZE_0 | OAM_H_RECTANGLE + .set OAM_SIZE_32x8, OAM_SIZE_1 | OAM_H_RECTANGLE + .set OAM_SIZE_32x16, OAM_SIZE_2 | OAM_H_RECTANGLE + .set OAM_SIZE_64x32, OAM_SIZE_3 | OAM_H_RECTANGLE + + .set OAM_SIZE_8x16, OAM_SIZE_0 | OAM_V_RECTANGLE + .set OAM_SIZE_8x32, OAM_SIZE_1 | OAM_V_RECTANGLE + .set OAM_SIZE_16x32, OAM_SIZE_2 | OAM_V_RECTANGLE + .set OAM_SIZE_32x64, OAM_SIZE_3 | OAM_V_RECTANGLE diff --git a/berry_fix/payload/include/constants/vars.h b/berry_fix/payload/include/constants/vars.h index 856aba069..4b40c1d8c 100644 --- a/berry_fix/payload/include/constants/vars.h +++ b/berry_fix/payload/include/constants/vars.h @@ -110,7 +110,7 @@ #define VAR_LINK_CONTEST_ROOM_STATE 0x4086 #define VAR_CABLE_CLUB_STATE 0x4087 #define VAR_CONTEST_LOCATION 0x4088 -#define VAR_0x4089 0x4089 // TODO: related to decorations +#define VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F 0x4089 // TODO: related to decorations #define VAR_CONTEST_PRIZE_PICKUP 0x408A #define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C // TODO: needs more investigation @@ -159,18 +159,18 @@ #define VAR_MT_PYRE_STATE 0x40B9 #define VAR_NEW_MAUVILLE_STATE 0x40BA -#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC -#define VAR_JAGGED_PASS_ASH_WEATHER 0x40BD -#define VAR_GLASS_WORKSHOP_STATE 0x40BE -#define VAR_METEOR_FALLS_STATE 0x40BF -#define VAR_GAME_CORNER_STATE 0x40C0 -#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1 -#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2 -#define VAR_VICTORY_ROAD_1F_STATE 0x40C3 -#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4 -#define VAR_WHICH_FOSSIL_REVIVED 0x40C5 -#define VAR_STEVENS_HOUSE_STATE 0x40C6 -#define VAR_OLDALE_STATE 0x40C7 +#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC +#define VAR_JAGGED_PASS_VOLCANIC_ASH_WEATHER 0x40BD +#define VAR_GLASS_WORKSHOP_STATE 0x40BE +#define VAR_METEOR_FALLS_STATE 0x40BF +#define VAR_GAME_CORNER_STATE 0x40C0 +#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1 +#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2 +#define VAR_VICTORY_ROAD_1F_STATE 0x40C3 +#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4 +#define VAR_WHICH_FOSSIL_REVIVED 0x40C5 +#define VAR_STEVENS_HOUSE_STATE 0x40C6 +#define VAR_OLDALE_STATE 0x40C7 // special vars // They are commonly used as parameters to commands, or return values from commands. diff --git a/berry_fix/payload/include/flash.h b/berry_fix/payload/include/flash.h index 26de88216..7fc35896d 100644 --- a/berry_fix/payload/include/flash.h +++ b/berry_fix/payload/include/flash.h @@ -1,7 +1,7 @@ #ifndef GUARD_FLASH_H #define GUARD_FLASH_H -#include +#include "gba/gba.h" enum { diff --git a/berry_fix/payload/include/gba/defines.h b/berry_fix/payload/include/gba/defines.h new file mode 100644 index 000000000..289518cf3 --- /dev/null +++ b/berry_fix/payload/include/gba/defines.h @@ -0,0 +1,87 @@ +#ifndef GUARD_GBA_DEFINES +#define GUARD_GBA_DEFINES + +#include + +#define TRUE 1 +#define FALSE 0 + +#define BSS_DATA __attribute__((section(".bss"))) +#define IWRAM_DATA __attribute__((section("iwram_data"))) +#define EWRAM_DATA __attribute__((section("ewram_data"))) +#define UNUSED __attribute__((unused)) +#define NAKED __attribute__((naked)) + +#define ALIGNED(n) __attribute__((aligned(n))) + +#define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0) +#define INTR_CHECK (*(u16 *)0x3007FF8) +#define INTR_VECTOR (*(void **)0x3007FFC) + +#define EWRAM_START 0x02000000 +#define EWRAM_END (EWRAM_START + 0x40000) +#define IWRAM_START 0x03000000 +#define IWRAM_END (IWRAM_START + 0x8000) + +#define PLTT 0x5000000 +#define PLTT_SIZE 0x400 + +#define BG_PLTT PLTT +#define BG_PLTT_SIZE 0x200 + +#define OBJ_PLTT (PLTT + 0x200) +#define OBJ_PLTT_SIZE 0x200 + +#define VRAM 0x6000000 +#define VRAM_SIZE 0x18000 + +#define BG_VRAM VRAM +#define BG_VRAM_SIZE 0x10000 +#define BG_CHAR_SIZE 0x4000 +#define BG_SCREEN_SIZE 0x800 +#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (0x4000 * (n))) +#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (0x800 * (n))) +#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n))) + +#define BG_TILE_H_FLIP(n) (0x400 + (n)) +#define BG_TILE_V_FLIP(n) (0x800 + (n)) + +// text-mode BG +#define OBJ_VRAM0 (void *)(VRAM + 0x10000) +#define OBJ_VRAM0_SIZE 0x8000 + +// bitmap-mode BG +#define OBJ_VRAM1 (void *)(VRAM + 0x14000) +#define OBJ_VRAM1_SIZE 0x4000 + +#define OAM 0x7000000 +#define OAM_SIZE 0x400 + +#define ROM_HEADER_SIZE 0xC0 + +#define DISPLAY_WIDTH 240 +#define DISPLAY_HEIGHT 160 + +#define TILE_SIZE_4BPP 32 +#define TILE_SIZE_8BPP 64 + +#define TILE_OFFSET_4BPP(n) ((n) * TILE_SIZE_4BPP) +#define TILE_OFFSET_8BPP(n) ((n) * TILE_SIZE_8BPP) + +#define TOTAL_OBJ_TILE_COUNT 1024 + +#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) +#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r)) +#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) + +#define RGB_BLACK RGB(0, 0, 0) +#define RGB_WHITE RGB(31, 31, 31) +#define RGB_RED RGB(31, 0, 0) +#define RGB_GREEN RGB(0, 31, 0) +#define RGB_BLUE RGB(0, 0, 31) +#define RGB_YELLOW RGB(31, 31, 0) +#define RGB_MAGENTA RGB(31, 0, 31) +#define RGB_CYAN RGB(0, 31, 31) +#define RGB_WHITEALPHA (RGB_WHITE | 0x8000) + +#endif // GUARD_GBA_DEFINES diff --git a/berry_fix/payload/include/gba/flash_internal.h b/berry_fix/payload/include/gba/flash_internal.h new file mode 100644 index 000000000..6fbec31f1 --- /dev/null +++ b/berry_fix/payload/include/gba/flash_internal.h @@ -0,0 +1,85 @@ +#ifndef GUARD_GBA_FLASH_INTERNAL_H +#define GUARD_GBA_FLASH_INTERNAL_H + +#include "gba/gba.h" + +#define FLASH_BASE ((u8 *)0xE000000) + +#define FLASH_WRITE(addr, data) ((*(vu8 *)(FLASH_BASE + (addr))) = (data)) + +#define FLASH_ROM_SIZE_1M 131072 // 1 megabit ROM + +#define SECTORS_PER_BANK 16 + +struct FlashSector +{ + u32 size; + u8 shift; + u16 count; + u16 top; +}; + +struct FlashType { + u32 romSize; + struct FlashSector sector; + u16 wait[2]; // game pak bus read/write wait + + // TODO: add support for anonymous unions/structs if possible + union { + struct { + u8 makerId; + u8 deviceId; + } separate; + u16 joined; + } ids; +}; + +struct FlashSetupInfo +{ + u16 (*programFlashByte)(u16, u32, u8); + u16 (*programFlashSector)(u16, void *); + u16 (*eraseFlashChip)(void); + u16 (*eraseFlashSector)(u16); + u16 (*WaitForFlashWrite)(u8, u8 *, u8); + const u16 *maxTime; + struct FlashType type; +}; + +extern u16 gFlashNumRemainingBytes; + +extern u16 (*ProgramFlashByte)(u16, u32, u8); +extern u16 (*ProgramFlashSector)(u16, void *); +extern u16 (*EraseFlashChip)(void); +extern u16 (*EraseFlashSector)(u16); +extern u16 (*WaitForFlashWrite)(u8, u8 *, u8); +extern const u16 *gFlashMaxTime; +extern const struct FlashType *gFlash; + +extern u8 (*PollFlashStatus)(u8 *); +extern u8 gFlashTimeoutFlag; + +extern const struct FlashSetupInfo MX29L010; +extern const struct FlashSetupInfo LE26FV10N1TS; +extern const struct FlashSetupInfo DefaultFlash; + +void SwitchFlashBank(u8 bankNum); +u16 ReadFlashId(void); +void StartFlashTimer(u8 phase); +void SetReadFlash1(u16 *dest); +void StopFlashTimer(void); +u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)); +u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src); +void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size); +u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *dataSrc, u32 n); + +u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData); + +u16 EraseFlashChip_MX(void); +u16 EraseFlashSector_MX(u16 sectorNum); +u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data); +u16 ProgramFlashSector_MX(u16 sectorNum, void *src); + +// agb_flash_1m +u32 IdentifyFlash(void); + +#endif // GUARD_GBA_FLASH_INTERNAL_H diff --git a/berry_fix/payload/include/gba/gba.h b/berry_fix/payload/include/gba/gba.h new file mode 100644 index 000000000..349344031 --- /dev/null +++ b/berry_fix/payload/include/gba/gba.h @@ -0,0 +1,12 @@ +#ifndef GUARD_GBA_GBA_H +#define GUARD_GBA_GBA_H + +#include "gba/defines.h" +#include "gba/io_reg.h" +#include "gba/types.h" +#include "gba/multiboot.h" +#include "gba/syscall.h" +#include "gba/macro.h" +#include "gba/isagbprint.h" + +#endif // GUARD_GBA_GBA_H diff --git a/berry_fix/payload/include/gba/io_reg.h b/berry_fix/payload/include/gba/io_reg.h new file mode 100644 index 000000000..df79b084d --- /dev/null +++ b/berry_fix/payload/include/gba/io_reg.h @@ -0,0 +1,770 @@ +#ifndef GUARD_GBA_IO_REG_H +#define GUARD_GBA_IO_REG_H + +#define REG_BASE 0x4000000 // I/O register base address + +// I/O register offsets + +#define REG_OFFSET_DISPCNT 0x0 +#define REG_OFFSET_DISPSTAT 0x4 +#define REG_OFFSET_VCOUNT 0x6 +#define REG_OFFSET_BG0CNT 0x8 +#define REG_OFFSET_BG1CNT 0xa +#define REG_OFFSET_BG2CNT 0xc +#define REG_OFFSET_BG3CNT 0xe +#define REG_OFFSET_BG0HOFS 0x10 +#define REG_OFFSET_BG0VOFS 0x12 +#define REG_OFFSET_BG1HOFS 0x14 +#define REG_OFFSET_BG1VOFS 0x16 +#define REG_OFFSET_BG2HOFS 0x18 +#define REG_OFFSET_BG2VOFS 0x1a +#define REG_OFFSET_BG3HOFS 0x1c +#define REG_OFFSET_BG3VOFS 0x1e +#define REG_OFFSET_BG2PA 0x20 +#define REG_OFFSET_BG2PB 0x22 +#define REG_OFFSET_BG2PC 0x24 +#define REG_OFFSET_BG2PD 0x26 +#define REG_OFFSET_BG2X 0x28 +#define REG_OFFSET_BG2X_L 0x28 +#define REG_OFFSET_BG2X_H 0x2a +#define REG_OFFSET_BG2Y 0x2c +#define REG_OFFSET_BG2Y_L 0x2c +#define REG_OFFSET_BG2Y_H 0x2e +#define REG_OFFSET_BG3PA 0x30 +#define REG_OFFSET_BG3PB 0x32 +#define REG_OFFSET_BG3PC 0x34 +#define REG_OFFSET_BG3PD 0x36 +#define REG_OFFSET_BG3X 0x38 +#define REG_OFFSET_BG3X_L 0x38 +#define REG_OFFSET_BG3X_H 0x3a +#define REG_OFFSET_BG3Y 0x3c +#define REG_OFFSET_BG3Y_L 0x3c +#define REG_OFFSET_BG3Y_H 0x3e +#define REG_OFFSET_WIN0H 0x40 +#define REG_OFFSET_WIN1H 0x42 +#define REG_OFFSET_WIN0V 0x44 +#define REG_OFFSET_WIN1V 0x46 +#define REG_OFFSET_WININ 0x48 +#define REG_OFFSET_WINOUT 0x4a +#define REG_OFFSET_MOSAIC 0x4c +#define REG_OFFSET_BLDCNT 0x50 +#define REG_OFFSET_BLDALPHA 0x52 +#define REG_OFFSET_BLDY 0x54 + +#define REG_OFFSET_SOUND1CNT_L 0x60 +#define REG_OFFSET_NR10 0x60 +#define REG_OFFSET_SOUND1CNT_H 0x62 +#define REG_OFFSET_NR11 0x62 +#define REG_OFFSET_NR12 0x63 +#define REG_OFFSET_SOUND1CNT_X 0x64 +#define REG_OFFSET_NR13 0x64 +#define REG_OFFSET_NR14 0x65 +#define REG_OFFSET_SOUND2CNT_L 0x68 +#define REG_OFFSET_NR21 0x68 +#define REG_OFFSET_NR22 0x69 +#define REG_OFFSET_SOUND2CNT_H 0x6c +#define REG_OFFSET_NR23 0x6c +#define REG_OFFSET_NR24 0x6d +#define REG_OFFSET_SOUND3CNT_L 0x70 +#define REG_OFFSET_NR30 0x70 +#define REG_OFFSET_SOUND3CNT_H 0x72 +#define REG_OFFSET_NR31 0x72 +#define REG_OFFSET_NR32 0x73 +#define REG_OFFSET_SOUND3CNT_X 0x74 +#define REG_OFFSET_NR33 0x74 +#define REG_OFFSET_NR34 0x75 +#define REG_OFFSET_SOUND4CNT_L 0x78 +#define REG_OFFSET_NR41 0x78 +#define REG_OFFSET_NR42 0x79 +#define REG_OFFSET_SOUND4CNT_H 0x7c +#define REG_OFFSET_NR43 0x7c +#define REG_OFFSET_NR44 0x7d +#define REG_OFFSET_SOUNDCNT_L 0x80 +#define REG_OFFSET_NR50 0x80 +#define REG_OFFSET_NR51 0x81 +#define REG_OFFSET_SOUNDCNT_H 0x82 +#define REG_OFFSET_SOUNDCNT_X 0x84 +#define REG_OFFSET_NR52 0x84 +#define REG_OFFSET_SOUNDBIAS 0x88 +#define REG_OFFSET_SOUNDBIAS_L 0x88 +#define REG_OFFSET_SOUNDBIAS_H 0x89 +#define REG_OFFSET_WAVE_RAM0 0x90 +#define REG_OFFSET_WAVE_RAM1 0x94 +#define REG_OFFSET_WAVE_RAM2 0x98 +#define REG_OFFSET_WAVE_RAM3 0x9c +#define REG_OFFSET_FIFO_A 0xa0 +#define REG_OFFSET_FIFO_B 0xa4 + +#define REG_OFFSET_DMA0 0xb0 +#define REG_OFFSET_DMA0SAD 0xb0 +#define REG_OFFSET_DMA0SAD_L 0xb0 +#define REG_OFFSET_DMA0SAD_H 0xb2 +#define REG_OFFSET_DMA0DAD 0xb4 +#define REG_OFFSET_DMA0DAD_L 0xb4 +#define REG_OFFSET_DMA0DAD_H 0xb6 +#define REG_OFFSET_DMA0CNT 0xb8 +#define REG_OFFSET_DMA0CNT_L 0xb8 +#define REG_OFFSET_DMA0CNT_H 0xba +#define REG_OFFSET_DMA1 0xbc +#define REG_OFFSET_DMA1SAD 0xbc +#define REG_OFFSET_DMA1SAD_L 0xbc +#define REG_OFFSET_DMA1SAD_H 0xbe +#define REG_OFFSET_DMA1DAD 0xc0 +#define REG_OFFSET_DMA1DAD_L 0xc0 +#define REG_OFFSET_DMA1DAD_H 0xc2 +#define REG_OFFSET_DMA1CNT 0xc4 +#define REG_OFFSET_DMA1CNT_L 0xc4 +#define REG_OFFSET_DMA1CNT_H 0xc6 +#define REG_OFFSET_DMA2 0xc8 +#define REG_OFFSET_DMA2SAD 0xc8 +#define REG_OFFSET_DMA2SAD_L 0xc8 +#define REG_OFFSET_DMA2SAD_H 0xca +#define REG_OFFSET_DMA2DAD 0xcc +#define REG_OFFSET_DMA2DAD_L 0xcc +#define REG_OFFSET_DMA2DAD_H 0xce +#define REG_OFFSET_DMA2CNT 0xd0 +#define REG_OFFSET_DMA2CNT_L 0xd0 +#define REG_OFFSET_DMA2CNT_H 0xd2 +#define REG_OFFSET_DMA3 0xd4 +#define REG_OFFSET_DMA3SAD 0xd4 +#define REG_OFFSET_DMA3SAD_L 0xd4 +#define REG_OFFSET_DMA3SAD_H 0xd6 +#define REG_OFFSET_DMA3DAD 0xd8 +#define REG_OFFSET_DMA3DAD_L 0xd8 +#define REG_OFFSET_DMA3DAD_H 0xda +#define REG_OFFSET_DMA3CNT 0xdc +#define REG_OFFSET_DMA3CNT_L 0xdc +#define REG_OFFSET_DMA3CNT_H 0xde + +#define REG_OFFSET_TMCNT 0x100 +#define REG_OFFSET_TMCNT_L 0x100 +#define REG_OFFSET_TMCNT_H 0x102 +#define REG_OFFSET_TM0CNT 0x100 +#define REG_OFFSET_TM0CNT_L 0x100 +#define REG_OFFSET_TM0CNT_H 0x102 +#define REG_OFFSET_TM1CNT 0x104 +#define REG_OFFSET_TM1CNT_L 0x104 +#define REG_OFFSET_TM1CNT_H 0x106 +#define REG_OFFSET_TM2CNT 0x108 +#define REG_OFFSET_TM2CNT_L 0x108 +#define REG_OFFSET_TM2CNT_H 0x10a +#define REG_OFFSET_TM3CNT 0x10c +#define REG_OFFSET_TM3CNT_L 0x10c +#define REG_OFFSET_TM3CNT_H 0x10e + +#define REG_OFFSET_SIOCNT 0x128 +#define REG_OFFSET_SIODATA8 0x12a +#define REG_OFFSET_SIODATA32 0x120 +#define REG_OFFSET_SIOMLT_SEND 0x12a +#define REG_OFFSET_SIOMLT_RECV 0x120 +#define REG_OFFSET_SIOMULTI0 0x120 +#define REG_OFFSET_SIOMULTI1 0x122 +#define REG_OFFSET_SIOMULTI2 0x124 +#define REG_OFFSET_SIOMULTI3 0x126 + +#define REG_OFFSET_KEYINPUT 0x130 +#define REG_OFFSET_KEYCNT 0x132 + +#define REG_OFFSET_RCNT 0x134 + +#define REG_OFFSET_JOYCNT 0x140 +#define REG_OFFSET_JOYSTAT 0x158 +#define REG_OFFSET_JOY_RECV 0x150 +#define REG_OFFSET_JOY_RECV_L 0x150 +#define REG_OFFSET_JOY_RECV_H 0x152 +#define REG_OFFSET_JOY_TRANS 0x154 +#define REG_OFFSET_JOY_TRANS_L 0x154 +#define REG_OFFSET_JOY_TRANS_H 0x156 + +#define REG_OFFSET_IME 0x208 +#define REG_OFFSET_IE 0x200 +#define REG_OFFSET_IF 0x202 + +#define REG_OFFSET_WAITCNT 0x204 + +// I/O register addresses + +#define REG_ADDR_DISPCNT (REG_BASE + REG_OFFSET_DISPCNT) +#define REG_ADDR_DISPSTAT (REG_BASE + REG_OFFSET_DISPSTAT) +#define REG_ADDR_VCOUNT (REG_BASE + REG_OFFSET_VCOUNT) +#define REG_ADDR_BG0CNT (REG_BASE + REG_OFFSET_BG0CNT) +#define REG_ADDR_BG1CNT (REG_BASE + REG_OFFSET_BG1CNT) +#define REG_ADDR_BG2CNT (REG_BASE + REG_OFFSET_BG2CNT) +#define REG_ADDR_BG3CNT (REG_BASE + REG_OFFSET_BG3CNT) +#define REG_ADDR_BG0HOFS (REG_BASE + REG_OFFSET_BG0HOFS) +#define REG_ADDR_BG0VOFS (REG_BASE + REG_OFFSET_BG0VOFS) +#define REG_ADDR_BG1HOFS (REG_BASE + REG_OFFSET_BG1HOFS) +#define REG_ADDR_BG1VOFS (REG_BASE + REG_OFFSET_BG1VOFS) +#define REG_ADDR_BG2HOFS (REG_BASE + REG_OFFSET_BG2HOFS) +#define REG_ADDR_BG2VOFS (REG_BASE + REG_OFFSET_BG2VOFS) +#define REG_ADDR_BG3HOFS (REG_BASE + REG_OFFSET_BG3HOFS) +#define REG_ADDR_BG3VOFS (REG_BASE + REG_OFFSET_BG3VOFS) +#define REG_ADDR_BG2PA (REG_BASE + REG_OFFSET_BG2PA) +#define REG_ADDR_BG2PB (REG_BASE + REG_OFFSET_BG2PB) +#define REG_ADDR_BG2PC (REG_BASE + REG_OFFSET_BG2PC) +#define REG_ADDR_BG2PD (REG_BASE + REG_OFFSET_BG2PD) +#define REG_ADDR_BG2X (REG_BASE + REG_OFFSET_BG2X) +#define REG_ADDR_BG2X_L (REG_BASE + REG_OFFSET_BG2X_L) +#define REG_ADDR_BG2X_H (REG_BASE + REG_OFFSET_BG2X_H) +#define REG_ADDR_BG2Y (REG_BASE + REG_OFFSET_BG2Y) +#define REG_ADDR_BG2Y_L (REG_BASE + REG_OFFSET_BG2Y_L) +#define REG_ADDR_BG2Y_H (REG_BASE + REG_OFFSET_BG2Y_H) +#define REG_ADDR_BG3PA (REG_BASE + REG_OFFSET_BG3PA) +#define REG_ADDR_BG3PB (REG_BASE + REG_OFFSET_BG3PB) +#define REG_ADDR_BG3PC (REG_BASE + REG_OFFSET_BG3PC) +#define REG_ADDR_BG3PD (REG_BASE + REG_OFFSET_BG3PD) +#define REG_ADDR_BG3X (REG_BASE + REG_OFFSET_BG3X) +#define REG_ADDR_BG3X_L (REG_BASE + REG_OFFSET_BG3X_L) +#define REG_ADDR_BG3X_H (REG_BASE + REG_OFFSET_BG3X_H) +#define REG_ADDR_BG3Y (REG_BASE + REG_OFFSET_BG3Y) +#define REG_ADDR_BG3Y_L (REG_BASE + REG_OFFSET_BG3Y_L) +#define REG_ADDR_BG3Y_H (REG_BASE + REG_OFFSET_BG3Y_H) +#define REG_ADDR_WIN0H (REG_BASE + REG_OFFSET_WIN0H) +#define REG_ADDR_WIN1H (REG_BASE + REG_OFFSET_WIN1H) +#define REG_ADDR_WIN0V (REG_BASE + REG_OFFSET_WIN0V) +#define REG_ADDR_WIN1V (REG_BASE + REG_OFFSET_WIN1V) +#define REG_ADDR_WININ (REG_BASE + REG_OFFSET_WININ) +#define REG_ADDR_WINOUT (REG_BASE + REG_OFFSET_WINOUT) +#define REG_ADDR_MOSAIC (REG_BASE + REG_OFFSET_MOSAIC) +#define REG_ADDR_BLDCNT (REG_BASE + REG_OFFSET_BLDCNT) +#define REG_ADDR_BLDALPHA (REG_BASE + REG_OFFSET_BLDALPHA) +#define REG_ADDR_BLDY (REG_BASE + REG_OFFSET_BLDY) + +#define REG_ADDR_SOUND1CNT_L (REG_BASE + REG_OFFSET_SOUND1CNT_L) +#define REG_ADDR_NR10 (REG_BASE + REG_OFFSET_NR10) +#define REG_ADDR_SOUND1CNT_H (REG_BASE + REG_OFFSET_SOUND1CNT_H) +#define REG_ADDR_NR11 (REG_BASE + REG_OFFSET_NR11) +#define REG_ADDR_NR12 (REG_BASE + REG_OFFSET_NR12) +#define REG_ADDR_SOUND1CNT_X (REG_BASE + REG_OFFSET_SOUND1CNT_X) +#define REG_ADDR_NR13 (REG_BASE + REG_OFFSET_NR13) +#define REG_ADDR_NR14 (REG_BASE + REG_OFFSET_NR14) +#define REG_ADDR_SOUND2CNT_L (REG_BASE + REG_OFFSET_SOUND2CNT_L) +#define REG_ADDR_NR21 (REG_BASE + REG_OFFSET_NR21) +#define REG_ADDR_NR22 (REG_BASE + REG_OFFSET_NR22) +#define REG_ADDR_SOUND2CNT_H (REG_BASE + REG_OFFSET_SOUND2CNT_H) +#define REG_ADDR_NR23 (REG_BASE + REG_OFFSET_NR23) +#define REG_ADDR_NR24 (REG_BASE + REG_OFFSET_NR24) +#define REG_ADDR_SOUND3CNT_L (REG_BASE + REG_OFFSET_SOUND3CNT_L) +#define REG_ADDR_NR30 (REG_BASE + REG_OFFSET_NR30) +#define REG_ADDR_SOUND3CNT_H (REG_BASE + REG_OFFSET_SOUND3CNT_H) +#define REG_ADDR_NR31 (REG_BASE + REG_OFFSET_NR31) +#define REG_ADDR_NR32 (REG_BASE + REG_OFFSET_NR32) +#define REG_ADDR_SOUND3CNT_X (REG_BASE + REG_OFFSET_SOUND3CNT_X) +#define REG_ADDR_NR33 (REG_BASE + REG_OFFSET_NR33) +#define REG_ADDR_NR34 (REG_BASE + REG_OFFSET_NR34) +#define REG_ADDR_SOUND4CNT_L (REG_BASE + REG_OFFSET_SOUND4CNT_L) +#define REG_ADDR_NR41 (REG_BASE + REG_OFFSET_NR41) +#define REG_ADDR_NR42 (REG_BASE + REG_OFFSET_NR42) +#define REG_ADDR_SOUND4CNT_H (REG_BASE + REG_OFFSET_SOUND4CNT_H) +#define REG_ADDR_NR43 (REG_BASE + REG_OFFSET_NR43) +#define REG_ADDR_NR44 (REG_BASE + REG_OFFSET_NR44) +#define REG_ADDR_SOUNDCNT_L (REG_BASE + REG_OFFSET_SOUNDCNT_L) +#define REG_ADDR_NR50 (REG_BASE + REG_OFFSET_NR50) +#define REG_ADDR_NR51 (REG_BASE + REG_OFFSET_NR51) +#define REG_ADDR_SOUNDCNT_H (REG_BASE + REG_OFFSET_SOUNDCNT_H) +#define REG_ADDR_SOUNDCNT_X (REG_BASE + REG_OFFSET_SOUNDCNT_X) +#define REG_ADDR_NR52 (REG_BASE + REG_OFFSET_NR52) +#define REG_ADDR_SOUNDBIAS (REG_BASE + REG_OFFSET_SOUNDBIAS) +#define REG_ADDR_SOUNDBIAS_L (REG_BASE + REG_OFFSET_SOUNDBIAS_L) +#define REG_ADDR_SOUNDBIAS_H (REG_BASE + REG_OFFSET_SOUNDBIAS_H) +#define REG_ADDR_WAVE_RAM0 (REG_BASE + REG_OFFSET_WAVE_RAM0) +#define REG_ADDR_WAVE_RAM1 (REG_BASE + REG_OFFSET_WAVE_RAM1) +#define REG_ADDR_WAVE_RAM2 (REG_BASE + REG_OFFSET_WAVE_RAM2) +#define REG_ADDR_WAVE_RAM3 (REG_BASE + REG_OFFSET_WAVE_RAM3) +#define REG_ADDR_FIFO_A (REG_BASE + REG_OFFSET_FIFO_A) +#define REG_ADDR_FIFO_B (REG_BASE + REG_OFFSET_FIFO_B) + +#define REG_ADDR_DMA0 (REG_BASE + REG_OFFSET_DMA0) +#define REG_ADDR_DMA0SAD (REG_BASE + REG_OFFSET_DMA0SAD) +#define REG_ADDR_DMA0DAD (REG_BASE + REG_OFFSET_DMA0DAD) +#define REG_ADDR_DMA0CNT (REG_BASE + REG_OFFSET_DMA0CNT) +#define REG_ADDR_DMA0CNT_L (REG_BASE + REG_OFFSET_DMA0CNT_L) +#define REG_ADDR_DMA0CNT_H (REG_BASE + REG_OFFSET_DMA0CNT_H) +#define REG_ADDR_DMA1 (REG_BASE + REG_OFFSET_DMA1) +#define REG_ADDR_DMA1SAD (REG_BASE + REG_OFFSET_DMA1SAD) +#define REG_ADDR_DMA1DAD (REG_BASE + REG_OFFSET_DMA1DAD) +#define REG_ADDR_DMA1CNT (REG_BASE + REG_OFFSET_DMA1CNT) +#define REG_ADDR_DMA1CNT_L (REG_BASE + REG_OFFSET_DMA1CNT_L) +#define REG_ADDR_DMA1CNT_H (REG_BASE + REG_OFFSET_DMA1CNT_H) +#define REG_ADDR_DMA2 (REG_BASE + REG_OFFSET_DMA2) +#define REG_ADDR_DMA2SAD (REG_BASE + REG_OFFSET_DMA2SAD) +#define REG_ADDR_DMA2DAD (REG_BASE + REG_OFFSET_DMA2DAD) +#define REG_ADDR_DMA2CNT (REG_BASE + REG_OFFSET_DMA2CNT) +#define REG_ADDR_DMA2CNT_L (REG_BASE + REG_OFFSET_DMA2CNT_L) +#define REG_ADDR_DMA2CNT_H (REG_BASE + REG_OFFSET_DMA2CNT_H) +#define REG_ADDR_DMA3 (REG_BASE + REG_OFFSET_DMA3) +#define REG_ADDR_DMA3SAD (REG_BASE + REG_OFFSET_DMA3SAD) +#define REG_ADDR_DMA3DAD (REG_BASE + REG_OFFSET_DMA3DAD) +#define REG_ADDR_DMA3CNT (REG_BASE + REG_OFFSET_DMA3CNT) +#define REG_ADDR_DMA3CNT_L (REG_BASE + REG_OFFSET_DMA3CNT_L) +#define REG_ADDR_DMA3CNT_H (REG_BASE + REG_OFFSET_DMA3CNT_H) + +#define REG_ADDR_TMCNT (REG_BASE + REG_OFFSET_TMCNT) +#define REG_ADDR_TMCNT_L (REG_BASE + REG_OFFSET_TMCNT_L) +#define REG_ADDR_TMCNT_H (REG_BASE + REG_OFFSET_TMCNT_H) +#define REG_ADDR_TM0CNT (REG_BASE + REG_OFFSET_TM0CNT) +#define REG_ADDR_TM0CNT_L (REG_BASE + REG_OFFSET_TM0CNT_L) +#define REG_ADDR_TM0CNT_H (REG_BASE + REG_OFFSET_TM0CNT_H) +#define REG_ADDR_TM1CNT (REG_BASE + REG_OFFSET_TM1CNT) +#define REG_ADDR_TM1CNT_L (REG_BASE + REG_OFFSET_TM1CNT_L) +#define REG_ADDR_TM1CNT_H (REG_BASE + REG_OFFSET_TM1CNT_H) +#define REG_ADDR_TM2CNT (REG_BASE + REG_OFFSET_TM2CNT) +#define REG_ADDR_TM2CNT_L (REG_BASE + REG_OFFSET_TM2CNT_L) +#define REG_ADDR_TM2CNT_H (REG_BASE + REG_OFFSET_TM2CNT_H) +#define REG_ADDR_TM3CNT (REG_BASE + REG_OFFSET_TM3CNT) +#define REG_ADDR_TM3CNT_L (REG_BASE + REG_OFFSET_TM3CNT_L) +#define REG_ADDR_TM3CNT_H (REG_BASE + REG_OFFSET_TM3CNT_H) + +#define REG_ADDR_SIOCNT (REG_BASE + REG_OFFSET_SIOCNT) +#define REG_ADDR_SIODATA8 (REG_BASE + REG_OFFSET_SIODATA8) +#define REG_ADDR_SIODATA32 (REG_BASE + REG_OFFSET_SIODATA32) +#define REG_ADDR_SIOMLT_SEND (REG_BASE + REG_OFFSET_SIOMLT_SEND) +#define REG_ADDR_SIOMLT_RECV (REG_BASE + REG_OFFSET_SIOMLT_RECV) +#define REG_ADDR_SIOMULTI0 (REG_BASE + REG_OFFSET_SIOMULTI0) +#define REG_ADDR_SIOMULTI1 (REG_BASE + REG_OFFSET_SIOMULTI1) +#define REG_ADDR_SIOMULTI2 (REG_BASE + REG_OFFSET_SIOMULTI2) +#define REG_ADDR_SIOMULTI3 (REG_BASE + REG_OFFSET_SIOMULTI3) + +#define REG_ADDR_KEYINPUT (REG_BASE + REG_OFFSET_KEYINPUT) +#define REG_ADDR_KEYCNT (REG_BASE + REG_OFFSET_KEYCNT) + +#define REG_ADDR_RCNT (REG_BASE + REG_OFFSET_RCNT) + +#define REG_ADDR_JOYCNT (REG_BASE + REG_OFFSET_JOYCNT) +#define REG_ADDR_JOYSTAT (REG_BASE + REG_OFFSET_JOYSTAT) +#define REG_ADDR_JOY_RECV (REG_BASE + REG_OFFSET_JOY_RECV) +#define REG_ADDR_JOY_RECV_L (REG_BASE + REG_OFFSET_JOY_RECV_L) +#define REG_ADDR_JOY_RECV_H (REG_BASE + REG_OFFSET_JOY_RECV_H) +#define REG_ADDR_JOY_TRANS (REG_BASE + REG_OFFSET_JOY_TRANS) +#define REG_ADDR_JOY_TRANS_L (REG_BASE + REG_OFFSET_JOY_TRANS_L) +#define REG_ADDR_JOY_TRANS_H (REG_BASE + REG_OFFSET_JOY_TRANS_H) + +#define REG_ADDR_IME (REG_BASE + REG_OFFSET_IME) +#define REG_ADDR_IE (REG_BASE + REG_OFFSET_IE) +#define REG_ADDR_IF (REG_BASE + REG_OFFSET_IF) + +#define REG_ADDR_WAITCNT (REG_BASE + REG_OFFSET_WAITCNT) + +// I/O registers + +#define REG_DISPCNT (*(vu16 *)REG_ADDR_DISPCNT) +#define REG_DISPSTAT (*(vu16 *)REG_ADDR_DISPSTAT) +#define REG_VCOUNT (*(vu16 *)REG_ADDR_VCOUNT) +#define REG_BG0CNT (*(vu16 *)REG_ADDR_BG0CNT) +#define REG_BG1CNT (*(vu16 *)REG_ADDR_BG1CNT) +#define REG_BG2CNT (*(vu16 *)REG_ADDR_BG2CNT) +#define REG_BG3CNT (*(vu16 *)REG_ADDR_BG3CNT) +#define REG_BG0HOFS (*(vu16 *)REG_ADDR_BG0HOFS) +#define REG_BG0VOFS (*(vu16 *)REG_ADDR_BG0VOFS) +#define REG_BG1HOFS (*(vu16 *)REG_ADDR_BG1HOFS) +#define REG_BG1VOFS (*(vu16 *)REG_ADDR_BG1VOFS) +#define REG_BG2HOFS (*(vu16 *)REG_ADDR_BG2HOFS) +#define REG_BG2VOFS (*(vu16 *)REG_ADDR_BG2VOFS) +#define REG_BG3HOFS (*(vu16 *)REG_ADDR_BG3HOFS) +#define REG_BG3VOFS (*(vu16 *)REG_ADDR_BG3VOFS) +#define REG_BG2PA (*(vu16 *)REG_ADDR_BG2PA) +#define REG_BG2PB (*(vu16 *)REG_ADDR_BG2PB) +#define REG_BG2PC (*(vu16 *)REG_ADDR_BG2PC) +#define REG_BG2PD (*(vu16 *)REG_ADDR_BG2PD) +#define REG_BG2X (*(vu32 *)REG_ADDR_BG2X) +#define REG_BG2X_L (*(vu16 *)REG_ADDR_BG2X_L) +#define REG_BG2X_H (*(vu16 *)REG_ADDR_BG2X_H) +#define REG_BG2Y (*(vu32 *)REG_ADDR_BG2Y) +#define REG_BG2Y_L (*(vu16 *)REG_ADDR_BG2Y_L) +#define REG_BG2Y_H (*(vu16 *)REG_ADDR_BG2Y_H) +#define REG_BG3PA (*(vu16 *)REG_ADDR_BG3PA) +#define REG_BG3PB (*(vu16 *)REG_ADDR_BG3PB) +#define REG_BG3PC (*(vu16 *)REG_ADDR_BG3PC) +#define REG_BG3PD (*(vu16 *)REG_ADDR_BG3PD) +#define REG_BG3X (*(vu32 *)REG_ADDR_BG3X) +#define REG_BG3X_L (*(vu16 *)REG_ADDR_BG3X_L) +#define REG_BG3X_H (*(vu16 *)REG_ADDR_BG3X_H) +#define REG_BG3Y (*(vu32 *)REG_ADDR_BG3Y) +#define REG_BG3Y_L (*(vu16 *)REG_ADDR_BG3Y_L) +#define REG_BG3Y_H (*(vu16 *)REG_ADDR_BG3Y_H) +#define REG_WIN0H (*(vu16 *)REG_ADDR_WIN0H) +#define REG_WIN1H (*(vu16 *)REG_ADDR_WIN1H) +#define REG_WIN0V (*(vu16 *)REG_ADDR_WIN0V) +#define REG_WIN1V (*(vu16 *)REG_ADDR_WIN1V) +#define REG_WININ (*(vu16 *)REG_ADDR_WININ) +#define REG_WINOUT (*(vu16 *)REG_ADDR_WINOUT) +#define REG_MOSAIC (*(vu16 *)REG_ADDR_MOSAIC) +#define REG_BLDCNT (*(vu16 *)REG_ADDR_BLDCNT) +#define REG_BLDALPHA (*(vu16 *)REG_ADDR_BLDALPHA) +#define REG_BLDY (*(vu16 *)REG_ADDR_BLDY) + +#define REG_SOUND1CNT_L (*(vu16 *)REG_ADDR_SOUND1CNT_L) +#define REG_NR10 (*(vu8 *)REG_ADDR_NR10) +#define REG_SOUND1CNT_H (*(vu16 *)REG_ADDR_SOUND1CNT_H) +#define REG_NR11 (*(vu8 *)REG_ADDR_NR11) +#define REG_NR12 (*(vu8 *)REG_ADDR_NR12) +#define REG_SOUND1CNT_X (*(vu16 *)REG_ADDR_SOUND1CNT_X) +#define REG_NR13 (*(vu8 *)REG_ADDR_NR13) +#define REG_NR14 (*(vu8 *)REG_ADDR_NR14) +#define REG_SOUND2CNT_L (*(vu16 *)REG_ADDR_SOUND2CNT_L) +#define REG_NR21 (*(vu8 *)REG_ADDR_NR21) +#define REG_NR22 (*(vu8 *)REG_ADDR_NR22) +#define REG_SOUND2CNT_H (*(vu16 *)REG_ADDR_SOUND2CNT_H) +#define REG_NR23 (*(vu8 *)REG_ADDR_NR23) +#define REG_NR24 (*(vu8 *)REG_ADDR_NR24) +#define REG_SOUND3CNT_L (*(vu16 *)REG_ADDR_SOUND3CNT_L) +#define REG_NR30 (*(vu8 *)REG_ADDR_NR30) +#define REG_SOUND3CNT_H (*(vu16 *)REG_ADDR_SOUND3CNT_H) +#define REG_NR31 (*(vu8 *)REG_ADDR_NR31) +#define REG_NR32 (*(vu8 *)REG_ADDR_NR32) +#define REG_SOUND3CNT_X (*(vu16 *)REG_ADDR_SOUND3CNT_X) +#define REG_NR33 (*(vu8 *)REG_ADDR_NR33) +#define REG_NR34 (*(vu8 *)REG_ADDR_NR34) +#define REG_SOUND4CNT_L (*(vu16 *)REG_ADDR_SOUND4CNT_L) +#define REG_NR41 (*(vu8 *)REG_ADDR_NR41) +#define REG_NR42 (*(vu8 *)REG_ADDR_NR42) +#define REG_SOUND4CNT_H (*(vu16 *)REG_ADDR_SOUND4CNT_H) +#define REG_NR43 (*(vu8 *)REG_ADDR_NR43) +#define REG_NR44 (*(vu8 *)REG_ADDR_NR44) +#define REG_SOUNDCNT_L (*(vu16 *)REG_ADDR_SOUNDCNT_L) +#define REG_NR50 (*(vu8 *)REG_ADDR_NR50) +#define REG_NR51 (*(vu8 *)REG_ADDR_NR51) +#define REG_SOUNDCNT_H (*(vu16 *)REG_ADDR_SOUNDCNT_H) +#define REG_SOUNDCNT_X (*(vu16 *)REG_ADDR_SOUNDCNT_X) +#define REG_NR52 (*(vu8 *)REG_ADDR_NR52) +#define REG_SOUNDBIAS (*(vu16 *)REG_ADDR_SOUNDBIAS) +#define REG_SOUNDBIAS_L (*(vu8 *)REG_ADDR_SOUNDBIAS_L) +#define REG_SOUNDBIAS_H (*(vu8 *)REG_ADDR_SOUNDBIAS_H) +#define REG_WAVE_RAM0 (*(vu32 *)REG_ADDR_WAVE_RAM0) +#define REG_WAVE_RAM1 (*(vu32 *)REG_ADDR_WAVE_RAM1) +#define REG_WAVE_RAM2 (*(vu32 *)REG_ADDR_WAVE_RAM2) +#define REG_WAVE_RAM3 (*(vu32 *)REG_ADDR_WAVE_RAM3) +#define REG_FIFO_A (*(vu32 *)REG_ADDR_FIFO_A) +#define REG_FIFO_B (*(vu32 *)REG_ADDR_FIFO_B) + +#define REG_DMA0SAD (*(vu32 *)REG_ADDR_DMA0SAD) +#define REG_DMA0DAD (*(vu32 *)REG_ADDR_DMA0DAD) +#define REG_DMA0CNT (*(vu32 *)REG_ADDR_DMA0CNT) +#define REG_DMA0CNT_L (*(vu16 *)REG_ADDR_DMA0CNT_L) +#define REG_DMA0CNT_H (*(vu16 *)REG_ADDR_DMA0CNT_H) + +#define REG_DMA1SAD (*(vu32 *)REG_ADDR_DMA1SAD) +#define REG_DMA1DAD (*(vu32 *)REG_ADDR_DMA1DAD) +#define REG_DMA1CNT (*(vu32 *)REG_ADDR_DMA1CNT) +#define REG_DMA1CNT_L (*(vu16 *)REG_ADDR_DMA1CNT_L) +#define REG_DMA1CNT_H (*(vu16 *)REG_ADDR_DMA1CNT_H) + +#define REG_DMA2SAD (*(vu32 *)REG_ADDR_DMA2SAD) +#define REG_DMA2DAD (*(vu32 *)REG_ADDR_DMA2DAD) +#define REG_DMA2CNT (*(vu32 *)REG_ADDR_DMA2CNT) +#define REG_DMA2CNT_L (*(vu16 *)REG_ADDR_DMA2CNT_L) +#define REG_DMA2CNT_H (*(vu16 *)REG_ADDR_DMA2CNT_H) + +#define REG_DMA3SAD (*(vu32 *)REG_ADDR_DMA3SAD) +#define REG_DMA3DAD (*(vu32 *)REG_ADDR_DMA3DAD) +#define REG_DMA3CNT (*(vu32 *)REG_ADDR_DMA3CNT) +#define REG_DMA3CNT_L (*(vu16 *)REG_ADDR_DMA3CNT_L) +#define REG_DMA3CNT_H (*(vu16 *)REG_ADDR_DMA3CNT_H) + +#define REG_TMCNT(n) (*(vu16 *)(REG_ADDR_TMCNT + ((n) * 4))) +#define REG_TMCNT_L(n) (*(vu16 *)(REG_ADDR_TMCNT_L + ((n) * 4))) +#define REG_TMCNT_H(n) (*(vu16 *)(REG_ADDR_TMCNT_H + ((n) * 4))) +#define REG_TM0CNT (*(vu32 *)REG_ADDR_TM0CNT) +#define REG_TM0CNT_L (*(vu16 *)REG_ADDR_TM0CNT_L) +#define REG_TM0CNT_H (*(vu16 *)REG_ADDR_TM0CNT_H) +#define REG_TM1CNT (*(vu32 *)REG_ADDR_TM1CNT) +#define REG_TM1CNT_L (*(vu16 *)REG_ADDR_TM1CNT_L) +#define REG_TM1CNT_H (*(vu16 *)REG_ADDR_TM1CNT_H) +#define REG_TM2CNT (*(vu32 *)REG_ADDR_TM2CNT) +#define REG_TM2CNT_L (*(vu16 *)REG_ADDR_TM2CNT_L) +#define REG_TM2CNT_H (*(vu16 *)REG_ADDR_TM2CNT_H) +#define REG_TM3CNT (*(vu32 *)REG_ADDR_TM3CNT) +#define REG_TM3CNT_L (*(vu16 *)REG_ADDR_TM3CNT_L) +#define REG_TM3CNT_H (*(vu16 *)REG_ADDR_TM3CNT_H) + +#define REG_SIOCNT (*(vu16 *)REG_ADDR_SIOCNT) +#define REG_SIODATA8 (*(vu16 *)REG_ADDR_SIODATA8) +#define REG_SIODATA32 (*(vu32 *)REG_ADDR_SIODATA32) +#define REG_SIOMLT_SEND (*(vu16 *)REG_ADDR_SIOMLT_SEND) +#define REG_SIOMLT_RECV (*(vu64 *)REG_ADDR_SIOMLT_RECV) +#define REG_SIOMULTI0 (*(vu16 *)REG_ADDR_SIOMULTI0) +#define REG_SIOMULTI1 (*(vu16 *)REG_ADDR_SIOMULTI1) +#define REG_SIOMULTI2 (*(vu16 *)REG_ADDR_SIOMULTI2) +#define REG_SIOMULTI3 (*(vu16 *)REG_ADDR_SIOMULTI3) + +#define REG_KEYINPUT (*(vu16 *)REG_ADDR_KEYINPUT) +#define REG_KEYCNT (*(vu16 *)REG_ADDR_KEYCNT) + +#define REG_RCNT (*(vu16 *)REG_ADDR_RCNT) + +#define REG_IME (*(vu16 *)REG_ADDR_IME) +#define REG_IE (*(vu16 *)REG_ADDR_IE) +#define REG_IF (*(vu16 *)REG_ADDR_IF) + +#define REG_WAITCNT (*(vu16 *)REG_ADDR_WAITCNT) + +// I/O register fields + +// DISPCNT +#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text +#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off +#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine +#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color +#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette +#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color +#define DISPCNT_HBLANK_INTERVAL 0x0020 // Allow access to OAM during H-Blank +#define DISPCNT_OBJ_1D_MAP 0x0040 +#define DISPCNT_FORCED_BLANK 0x0080 +#define DISPCNT_BG0_ON 0x0100 +#define DISPCNT_BG1_ON 0x0200 +#define DISPCNT_BG2_ON 0x0400 +#define DISPCNT_BG3_ON 0x0800 +#define DISPCNT_BG_ALL_ON 0x0F00 +#define DISPCNT_OBJ_ON 0x1000 +#define DISPCNT_WIN0_ON 0x2000 +#define DISPCNT_WIN1_ON 0x4000 +#define DISPCNT_OBJWIN_ON 0x8000 + +// DISPSTAT +#define DISPSTAT_VBLANK 0x0001 // in V-Blank +#define DISPSTAT_HBLANK 0x0002 // in H-Blank +#define DISPSTAT_VCOUNT 0x0004 // V-Count match +#define DISPSTAT_VBLANK_INTR 0x0008 // V-Blank interrupt enabled +#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled +#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled + +// BGCNT +#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs. +#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data. +#define BGCNT_MOSAIC 0x0040 +#define BGCNT_16COLOR 0x0000 // 4 bits per pixel +#define BGCNT_256COLOR 0x0080 // 8 bits per pixel +#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map. +#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default. +#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels. +#define BGCNT_TXT512x256 0x4000 +#define BGCNT_TXT256x512 0x8000 +#define BGCNT_TXT512x512 0xC000 +#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels. +#define BGCNT_AFF256x256 0x4000 +#define BGCNT_AFF512x512 0x8000 +#define BGCNT_AFF1024x1024 0xC000 + +// WININ/OUT +#define WININ_WIN0_BG0 (1 << 0) +#define WININ_WIN0_BG1 (1 << 1) +#define WININ_WIN0_BG2 (1 << 2) +#define WININ_WIN0_BG3 (1 << 3) +#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3) +#define WININ_WIN0_OBJ (1 << 4) +#define WININ_WIN0_CLR (1 << 5) +#define WININ_WIN1_BG0 (1 << 8) +#define WININ_WIN1_BG1 (1 << 9) +#define WININ_WIN1_BG2 (1 << 10) +#define WININ_WIN1_BG3 (1 << 11) +#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3) +#define WININ_WIN1_OBJ (1 << 12) +#define WININ_WIN1_CLR (1 << 13) + +#define WINOUT_WIN01_BG0 (1 << 0) +#define WINOUT_WIN01_BG1 (1 << 1) +#define WINOUT_WIN01_BG2 (1 << 2) +#define WINOUT_WIN01_BG3 (1 << 3) +#define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3) +#define WINOUT_WIN01_OBJ (1 << 4) +#define WINOUT_WIN01_CLR (1 << 5) +#define WINOUT_WINOBJ_BG0 (1 << 8) +#define WINOUT_WINOBJ_BG1 (1 << 9) +#define WINOUT_WINOBJ_BG2 (1 << 10) +#define WINOUT_WINOBJ_BG3 (1 << 11) +#define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3) +#define WINOUT_WINOBJ_OBJ (1 << 12) +#define WINOUT_WINOBJ_CLR (1 << 13) + +#define WIN_RANGE(a, b) (((a) << 8) | (b)) +#define WIN_RANGE2(a, b) ((b) | ((a) << 8)) + +// BLDCNT +// Bits 0-5 select layers for the 1st target +#define BLDCNT_TGT1_BG0 (1 << 0) +#define BLDCNT_TGT1_BG1 (1 << 1) +#define BLDCNT_TGT1_BG2 (1 << 2) +#define BLDCNT_TGT1_BG3 (1 << 3) +#define BLDCNT_TGT1_OBJ (1 << 4) +#define BLDCNT_TGT1_BD (1 << 5) +#define BLDCNT_TGT1_ALL (BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD) +// Bits 6-7 select the special effect +#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect +#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA) +#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY) +#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY) +// Bits 8-13 select layers for the 2nd target +#define BLDCNT_TGT2_BG0 (1 << 8) +#define BLDCNT_TGT2_BG1 (1 << 9) +#define BLDCNT_TGT2_BG2 (1 << 10) +#define BLDCNT_TGT2_BG3 (1 << 11) +#define BLDCNT_TGT2_OBJ (1 << 12) +#define BLDCNT_TGT2_BD (1 << 13) +#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD) + +// BLDALPHA +#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1)) + +// SOUNDCNT_H +#define SOUND_CGB_MIX_QUARTER 0x0000 +#define SOUND_CGB_MIX_HALF 0x0001 +#define SOUND_CGB_MIX_FULL 0x0002 +#define SOUND_A_MIX_HALF 0x0000 +#define SOUND_A_MIX_FULL 0x0004 +#define SOUND_B_MIX_HALF 0x0000 +#define SOUND_B_MIX_FULL 0x0008 +#define SOUND_ALL_MIX_FULL 0x000E +#define SOUND_A_RIGHT_OUTPUT 0x0100 +#define SOUND_A_LEFT_OUTPUT 0x0200 +#define SOUND_A_TIMER_0 0x0000 +#define SOUND_A_TIMER_1 0x0400 +#define SOUND_A_FIFO_RESET 0x0800 +#define SOUND_B_RIGHT_OUTPUT 0x1000 +#define SOUND_B_LEFT_OUTPUT 0x2000 +#define SOUND_B_TIMER_0 0x0000 +#define SOUND_B_TIMER_1 0x4000 +#define SOUND_B_FIFO_RESET 0x8000 + +// SOUNDCNT_X +#define SOUND_1_ON 0x0001 +#define SOUND_2_ON 0x0002 +#define SOUND_3_ON 0x0004 +#define SOUND_4_ON 0x0008 +#define SOUND_MASTER_ENABLE 0x0080 + +// DMA +#define DMA_DEST_INC 0x0000 +#define DMA_DEST_DEC 0x0020 +#define DMA_DEST_FIXED 0x0040 +#define DMA_DEST_RELOAD 0x0060 +#define DMA_SRC_INC 0x0000 +#define DMA_SRC_DEC 0x0080 +#define DMA_SRC_FIXED 0x0100 +#define DMA_REPEAT 0x0200 +#define DMA_16BIT 0x0000 +#define DMA_32BIT 0x0400 +#define DMA_DREQ_ON 0x0800 +#define DMA_START_NOW 0x0000 +#define DMA_START_VBLANK 0x1000 +#define DMA_START_HBLANK 0x2000 +#define DMA_START_SPECIAL 0x3000 +#define DMA_START_MASK 0x3000 +#define DMA_INTR_ENABLE 0x4000 +#define DMA_ENABLE 0x8000 + +// timer +#define TIMER_1CLK 0x00 +#define TIMER_64CLK 0x01 +#define TIMER_256CLK 0x02 +#define TIMER_1024CLK 0x03 +#define TIMER_INTR_ENABLE 0x40 +#define TIMER_ENABLE 0x80 + +// serial +#define SIO_ID 0x0030 // Communication ID + +#define SIO_8BIT_MODE 0x0000 // Normal 8-bit communication mode +#define SIO_32BIT_MODE 0x1000 // Normal 32-bit communication mode +#define SIO_MULTI_MODE 0x2000 // Multi-player communication mode +#define SIO_UART_MODE 0x3000 // UART communication mode + +#define SIO_9600_BPS 0x0000 // baud rate 9600 bps +#define SIO_38400_BPS 0x0001 // 38400 bps +#define SIO_57600_BPS 0x0002 // 57600 bps +#define SIO_115200_BPS 0x0003 // 115200 bps + +#define SIO_MULTI_SI 0x0004 // Multi-player communication SI terminal +#define SIO_MULTI_SD 0x0008 // SD terminal +#define SIO_MULTI_BUSY 0x0080 + +#define SIO_ERROR 0x0040 // Detect error +#define SIO_START 0x0080 // Start transfer +#define SIO_ENABLE 0x0080 // Enable SIO + +#define SIO_INTR_ENABLE 0x4000 + +#define SIO_MULTI_SI_SHIFT 2 +#define SIO_MULTI_SI_MASK 0x1 +#define SIO_MULTI_DI_SHIFT 3 +#define SIO_MULTI_DI_MASK 0x1 + +// keys +#define A_BUTTON 0x0001 +#define B_BUTTON 0x0002 +#define SELECT_BUTTON 0x0004 +#define START_BUTTON 0x0008 +#define DPAD_RIGHT 0x0010 +#define DPAD_LEFT 0x0020 +#define DPAD_UP 0x0040 +#define DPAD_DOWN 0x0080 +#define R_BUTTON 0x0100 +#define L_BUTTON 0x0200 +#define KEYS_MASK 0x03FF +#define KEY_INTR_ENABLE 0x0400 +#define KEY_OR_INTR 0x0000 +#define KEY_AND_INTR 0x8000 +#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) +#define JOY_EXCL_DPAD 0x030F + +// interrupt flags +#define INTR_FLAG_VBLANK (1 << 0) +#define INTR_FLAG_HBLANK (1 << 1) +#define INTR_FLAG_VCOUNT (1 << 2) +#define INTR_FLAG_TIMER0 (1 << 3) +#define INTR_FLAG_TIMER1 (1 << 4) +#define INTR_FLAG_TIMER2 (1 << 5) +#define INTR_FLAG_TIMER3 (1 << 6) +#define INTR_FLAG_SERIAL (1 << 7) +#define INTR_FLAG_DMA0 (1 << 8) +#define INTR_FLAG_DMA1 (1 << 9) +#define INTR_FLAG_DMA2 (1 << 10) +#define INTR_FLAG_DMA3 (1 << 11) +#define INTR_FLAG_KEYPAD (1 << 12) +#define INTR_FLAG_GAMEPAK (1 << 13) + +// WAITCNT +#define WAITCNT_SRAM_4 (0 << 0) +#define WAITCNT_SRAM_3 (1 << 0) +#define WAITCNT_SRAM_2 (2 << 0) +#define WAITCNT_SRAM_8 (3 << 0) +#define WAITCNT_SRAM_MASK (3 << 0) + +#define WAITCNT_WS0_N_4 (0 << 2) +#define WAITCNT_WS0_N_3 (1 << 2) +#define WAITCNT_WS0_N_2 (2 << 2) +#define WAITCNT_WS0_N_8 (3 << 2) +#define WAITCNT_WS0_N_MASK (3 << 2) + +#define WAITCNT_WS0_S_2 (0 << 4) +#define WAITCNT_WS0_S_1 (1 << 4) + +#define WAITCNT_WS1_N_4 (0 << 5) +#define WAITCNT_WS1_N_3 (1 << 5) +#define WAITCNT_WS1_N_2 (2 << 5) +#define WAITCNT_WS1_N_8 (3 << 5) +#define WAITCNT_WS1_N_MASK (3 << 5) + +#define WAITCNT_WS1_S_4 (0 << 7) +#define WAITCNT_WS1_S_1 (1 << 7) + +#define WAITCNT_WS2_N_4 (0 << 8) +#define WAITCNT_WS2_N_3 (1 << 8) +#define WAITCNT_WS2_N_2 (2 << 8) +#define WAITCNT_WS2_N_8 (3 << 8) +#define WAITCNT_WS2_N_MASK (3 << 8) + +#define WAITCNT_WS2_S_8 (0 << 10) +#define WAITCNT_WS2_S_1 (1 << 10) + +#define WAITCNT_PHI_OUT_NONE (0 << 11) +#define WAITCNT_PHI_OUT_4MHZ (1 << 11) +#define WAITCNT_PHI_OUT_8MHZ (2 << 11) +#define WAITCNT_PHI_OUT_16MHZ (3 << 11) +#define WAITCNT_PHI_OUT_MASK (3 << 11) + +#define WAITCNT_PREFETCH_ENABLE (1 << 14) + +#define WAITCNT_AGB (0 << 15) +#define WAITCNT_CGB (1 << 15) + +#endif // GUARD_GBA_IO_REG_H diff --git a/berry_fix/payload/include/gba/isagbprint.h b/berry_fix/payload/include/gba/isagbprint.h new file mode 100644 index 000000000..c5eb456c3 --- /dev/null +++ b/berry_fix/payload/include/gba/isagbprint.h @@ -0,0 +1,50 @@ +#ifndef GUARD_GBA_ISAGBPRINT_H +#define GUARD_GBA_ISAGBPRINT_H + +#ifdef NDEBUG +#define AGBPrintInit() +#define AGBPutc(cChr) +#define AGBPrint(pBuf) +#define AGBPrintf(pBuf, ...) +#define AGBPrintFlush1Block() +#define AGBPrintFlush() +#define AGBAssert(pFile, nLine, pExpression, nStopProgram) +#else +void AGBPrintInit(void); +void AGBPutc(const char cChr); +void AGBPrint(const char *pBuf); +void AGBPrintf(const char *pBuf, ...); +void AGBPrintFlush1Block(void); +void AGBPrintFlush(void); +void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram); +#endif + +#undef AGB_ASSERT +#ifdef NDEBUG +#define AGB_ASSERT(exp) +#else +#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1); +#endif + +#undef AGB_WARNING +#ifdef NDEBUG +#define AGB_WARNING(exp) +#else +#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0); +#endif + +// for matching purposes + +#ifdef NDEBUG +#define AGB_ASSERT_EX(exp, file, line) +#else +#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1); +#endif + +#ifdef NDEBUG +#define AGB_WARNING_EX(exp, file, line) +#else +#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0); +#endif + +#endif // GUARD_GBA_ISAGBPRINT_H diff --git a/berry_fix/payload/include/gba/m4a_internal.h b/berry_fix/payload/include/gba/m4a_internal.h new file mode 100644 index 000000000..339a0774e --- /dev/null +++ b/berry_fix/payload/include/gba/m4a_internal.h @@ -0,0 +1,467 @@ +#ifndef GUARD_GBA_M4A_INTERNAL_H +#define GUARD_GBA_M4A_INTERNAL_H + +#include "gba/gba.h" + +// ASCII encoding of 'Smsh' in reverse +// This is presumably short for SMASH, the developer of MKS4AGB. +#define ID_NUMBER 0x68736D53 + +#define C_V 0x40 // center value for PAN, BEND, and TUNE + +#define SOUND_MODE_REVERB_VAL 0x0000007F +#define SOUND_MODE_REVERB_SET 0x00000080 +#define SOUND_MODE_MAXCHN 0x00000F00 +#define SOUND_MODE_MAXCHN_SHIFT 8 +#define SOUND_MODE_MASVOL 0x0000F000 +#define SOUND_MODE_MASVOL_SHIFT 12 +#define SOUND_MODE_FREQ_05734 0x00010000 +#define SOUND_MODE_FREQ_07884 0x00020000 +#define SOUND_MODE_FREQ_10512 0x00030000 +#define SOUND_MODE_FREQ_13379 0x00040000 +#define SOUND_MODE_FREQ_15768 0x00050000 +#define SOUND_MODE_FREQ_18157 0x00060000 +#define SOUND_MODE_FREQ_21024 0x00070000 +#define SOUND_MODE_FREQ_26758 0x00080000 +#define SOUND_MODE_FREQ_31536 0x00090000 +#define SOUND_MODE_FREQ_36314 0x000A0000 +#define SOUND_MODE_FREQ_40137 0x000B0000 +#define SOUND_MODE_FREQ_42048 0x000C0000 +#define SOUND_MODE_FREQ 0x000F0000 +#define SOUND_MODE_FREQ_SHIFT 16 +#define SOUND_MODE_DA_BIT_9 0x00800000 +#define SOUND_MODE_DA_BIT_8 0x00900000 +#define SOUND_MODE_DA_BIT_7 0x00A00000 +#define SOUND_MODE_DA_BIT_6 0x00B00000 +#define SOUND_MODE_DA_BIT 0x00B00000 +#define SOUND_MODE_DA_BIT_SHIFT 20 + +struct WaveData +{ + u16 type; + u16 status; + u32 freq; + u32 loopStart; + u32 size; // number of samples + s8 data[1]; // samples +}; + +#define TONEDATA_TYPE_CGB 0x07 +#define TONEDATA_TYPE_FIX 0x08 +#define TONEDATA_TYPE_SPL 0x40 // key split +#define TONEDATA_TYPE_RHY 0x80 // rhythm + +#define TONEDATA_P_S_PAN 0xc0 +#define TONEDATA_P_S_PAM TONEDATA_P_S_PAN + +struct ToneData +{ + u8 type; + u8 key; + u8 length; // sound length (compatible sound) + u8 pan_sweep; // pan or sweep (compatible sound ch. 1) + struct WaveData *wav; + u8 attack; + u8 decay; + u8 sustain; + u8 release; +}; + +struct CgbChannel +{ + u8 sf; + u8 ty; + u8 rightVolume; + u8 leftVolume; + u8 at; + u8 de; + u8 su; + u8 re; + u8 ky; + u8 ev; + u8 eg; + u8 ec; + u8 echoVolume; + u8 echoLength; + u8 d1; + u8 d2; + u8 gt; + u8 mk; + u8 ve; + u8 pr; + u8 rp; + u8 d3[3]; + u8 d5; + u8 sg; + u8 n4; + u8 pan; + u8 panMask; + u8 mo; + u8 le; + u8 sw; + u32 fr; + u32 wp; + u32 cp; + u32 tp; + u32 pp; + u32 np; + u8 d4[8]; +}; + +struct MusicPlayerTrack; + +struct SoundChannel +{ + u8 status; + u8 type; + u8 rightVolume; + u8 leftVolume; + u8 attack; + u8 decay; + u8 sustain; + u8 release; + u8 ky; + u8 ev; + u8 er; + u8 el; + u8 echoVolume; + u8 echoLength; + u8 d1; + u8 d2; + u8 gt; + u8 mk; + u8 ve; + u8 pr; + u8 rp; + u8 d3[3]; + u32 ct; + u32 fw; + u32 freq; + struct WaveData *wav; + u32 cp; + struct MusicPlayerTrack *track; + u32 pp; + u32 np; + u32 d4; + u16 xpi; + u16 xpc; +}; + +#define MAX_DIRECTSOUND_CHANNELS 12 + +#define PCM_DMA_BUF_SIZE 1584 // size of Direct Sound buffer + +struct SoundInfo +{ + // This field is normally equal to ID_NUMBER but it is set to other + // values during sensitive operations for locking purposes. + // This field should be volatile but isn't. This could potentially cause + // race conditions. + u32 ident; + + vu8 pcmDmaCounter; + + // Direct Sound + u8 reverb; + u8 maxChans; + u8 masterVolume; + u8 freq; + + u8 mode; + u8 c15; + u8 pcmDmaPeriod; // number of V-blanks per PCM DMA + u8 maxLines; + u8 gap[3]; + s32 pcmSamplesPerVBlank; + s32 pcmFreq; + s32 divFreq; + struct CgbChannel *cgbChans; + u32 func; + u32 intp; + void (*CgbSound)(void); + void (*CgbOscOff)(u8); + u32 (*MidiKeyToCgbFreq)(u8, u8, u8); + u32 MPlayJumpTable; + u32 plynote; + u32 ExtVolPit; + u8 gap2[16]; + struct SoundChannel chans[MAX_DIRECTSOUND_CHANNELS]; + s8 pcmBuffer[PCM_DMA_BUF_SIZE * 2]; +}; + +struct SongHeader +{ + u8 trackCount; + u8 blockCount; + u8 priority; + u8 reverb; + struct ToneData *tone; + u8 *part[1]; +}; + +struct PokemonCrySong +{ + u8 trackCount; + u8 blockCount; + u8 priority; + u8 reverb; + struct ToneData *tone; + u8 *part[2]; + u8 gap; + u8 part0; // 0x11 + u8 tuneValue; // 0x12 + u8 gotoCmd; // 0x13 + u32 gotoTarget; // 0x14 + u8 part1; // 0x18 + u8 tuneValue2; // 0x19 + u8 cont[2]; // 0x1A + u8 volCmd; // 0x1C + u8 volumeValue; // 0x1D + u8 unkCmd0D[2]; // 0x1E + u32 unkCmd0DParam; // 0x20 + u8 xreleCmd[2]; // 0x24 + u8 releaseValue; // 0x26 + u8 panCmd; + u8 panValue; // 0x28 + u8 tieCmd; // 0x29 + u8 tieKeyValue; // 0x2A + u8 tieVelocityValue; // 0x2B + u8 unkCmd0C[2]; // 0x2C + u16 unkCmd0CParam; // 0x2E + u8 end[2]; // 0x30 +}; + +#define MPT_FLG_VOLSET 0x01 +#define MPT_FLG_VOLCHG 0x03 +#define MPT_FLG_PITSET 0x04 +#define MPT_FLG_PITCHG 0x0C +#define MPT_FLG_START 0x40 +#define MPT_FLG_EXIST 0x80 + +struct MusicPlayerTrack +{ + u8 flags; + u8 wait; + u8 patternLevel; + u8 repN; + u8 gateTime; + u8 key; + u8 velocity; + u8 runningStatus; + u8 keyM; + u8 pitM; + s8 keyShift; + s8 keyShiftX; + s8 tune; + u8 pitX; + s8 bend; + u8 bendRange; + u8 volMR; + u8 volML; + u8 vol; + u8 volX; + s8 pan; + s8 panX; + s8 modM; + u8 mod; + u8 modT; + u8 lfoSpeed; + u8 lfoSpeedC; + u8 lfoDelay; + u8 lfoDelayC; + u8 priority; + u8 echoVolume; + u8 echoLength; + struct SoundChannel *chan; + struct ToneData tone; + u8 gap[10]; + u16 unk_3A; + u32 unk_3C; + u8 *cmdPtr; + u8 *patternStack[3]; +}; + +#define MUSICPLAYER_STATUS_TRACK 0x0000ffff +#define MUSICPLAYER_STATUS_PAUSE 0x80000000 + +#define MAX_MUSICPLAYER_TRACKS 16 + +#define TEMPORARY_FADE 0x0001 +#define FADE_IN 0x0002 +#define FADE_VOL_MAX 64 +#define FADE_VOL_SHIFT 2 + +struct MusicPlayerInfo +{ + struct SongHeader *songHeader; + u32 status; + u8 trackCount; + u8 priority; + u8 cmd; + u8 unk_B; + u32 clock; + u8 gap[8]; + u8 *memAccArea; + u16 tempoD; + u16 tempoU; + u16 tempoI; + u16 tempoC; + u16 fadeOI; + u16 fadeOC; + u16 fadeOV; + struct MusicPlayerTrack *tracks; + struct ToneData *tone; + u32 ident; + u32 func; + u32 intp; +}; + +struct MusicPlayer +{ + struct MusicPlayerInfo *info; + struct MusicPlayerTrack *track; + u8 unk_8; + u16 unk_A; +}; + +struct Song +{ + struct SongHeader *header; + u16 ms; + u16 me; +}; + +extern const struct MusicPlayer gMPlayTable[]; +extern const struct Song gSongTable[]; + + + +extern u8 gMPlayMemAccArea[]; + +//u8 gPokemonCrySong[52]; +//u8 gPokemonCrySongs[52 * MAX_POKEMON_CRIES]; + +#define MAX_POKEMON_CRIES 2 + +extern struct PokemonCrySong gPokemonCrySong; +extern struct PokemonCrySong gPokemonCrySongs[]; + +extern struct MusicPlayerInfo gPokemonCryMusicPlayers[]; +extern struct MusicPlayerTrack gPokemonCryTracks[]; + +extern char SoundMainRAM[]; + +extern void *gMPlayJumpTable[]; + +typedef void (*XcmdFunc)(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +extern const XcmdFunc gXcmdTable[]; + +extern struct CgbChannel gCgbChans[]; + +extern const u8 gScaleTable[]; +extern const u32 gFreqTable[]; +extern const u16 gPcmSamplesPerVBlankTable[]; + +extern const u8 gCgbScaleTable[]; +extern const s16 gCgbFreqTable[]; +extern const u8 gNoiseTable[]; + +extern const struct PokemonCrySong gPokemonCrySongTemplate; + +extern const struct ToneData voicegroup000; + +extern char gNumMusicPlayers[]; +extern char gMaxLines[]; + +#define NUM_MUSIC_PLAYERS ((u16)gNumMusicPlayers) +#define MAX_LINES ((u32)gMaxLines) + +u32 umul3232H32(u32 multiplier, u32 multiplicand); +void SoundMain(void); +void SoundMainBTM(void); +void TrackStop(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track); +void MPlayMain(void); +void RealClearChain(void *x); + +void MPlayContinue(struct MusicPlayerInfo *mplayInfo); +void MPlayStart(struct MusicPlayerInfo *mplayInfo, struct SongHeader *songHeader); +void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo); +void FadeOutBody(struct MusicPlayerInfo *mplayInfo); +void TrkVolPitSet(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track); +void MPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed); +void ClearChain(void *x); +void Clear64byte(void *addr); +void SoundInit(struct SoundInfo *soundInfo); +void MPlayExtender(struct CgbChannel *cgbChans); +void m4aSoundMode(u32 mode); +void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track, u8 a3); +void CgbSound(void); +void CgbOscOff(u8); +u32 MidiKeyToCgbFreq(u8, u8, u8); +void DummyFunc(void); +void MPlayJumpTableCopy(void **mplayJumpTable); +void SampleFreqSet(u32 freq); +void m4aSoundVSyncOn(void); +void m4aSoundVSyncOff(void); + +void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo); +void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); +void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch); +void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan); +void ClearModM(struct MusicPlayerTrack *track); +void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth); +void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed); + +struct MusicPlayerInfo *SetPokemonCryTone(struct ToneData *tone); +void SetPokemonCryVolume(u8 val); +void SetPokemonCryPanpot(s8 val); +void SetPokemonCryPitch(s16 val); +void SetPokemonCryLength(u16 val); +void SetPokemonCryRelease(u8 val); +void SetPokemonCryProgress(u32 val); +int IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo); +void SetPokemonCryChorus(s8 val); +void SetPokemonCryStereo(u32 val); +void SetPokemonCryPriority(u8 val); + +// sound command handler functions +void ply_fine(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_goto(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_patt(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_pend(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_rept(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_memacc(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_prio(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_tempo(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_keysh(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_voice(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_vol(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_pan(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_bend(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_bendr(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_lfos(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_lfodl(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_mod(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_modt(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_tune(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_port(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xcmd(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_endtie(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_note(struct MusicPlayerInfo *, struct MusicPlayerTrack *); + +// extended sound command handler functions +void ply_xxx(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xwave(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xtype(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xatta(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xdeca(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xsust(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xrele(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xiecv(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xiecl(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xcmd_0C(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *); + +#endif // GUARD_GBA_M4A_INTERNAL_H diff --git a/berry_fix/payload/include/gba/macro.h b/berry_fix/payload/include/gba/macro.h new file mode 100644 index 000000000..6f9c55f2e --- /dev/null +++ b/berry_fix/payload/include/gba/macro.h @@ -0,0 +1,247 @@ +#ifndef GUARD_GBA_MACRO_H +#define GUARD_GBA_MACRO_H + +#define CPU_FILL(value, dest, size, bit) \ +{ \ + vu##bit tmp = (vu##bit)(value); \ + CpuSet((void *)&tmp, \ + dest, \ + CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size)/(bit/8) & 0x1FFFFF)); \ +} + +#define CpuFill16(value, dest, size) CPU_FILL(value, dest, size, 16) +#define CpuFill32(value, dest, size) CPU_FILL(value, dest, size, 32) + +#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size)/(bit/8) & 0x1FFFFF)) + +#define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16) +#define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32) + +#define CpuFastFill(value, dest, size) \ +{ \ + vu32 tmp = (vu32)(value); \ + CpuFastSet((void *)&tmp, \ + dest, \ + CPU_FAST_SET_SRC_FIXED | ((size)/(32/8) & 0x1FFFFF)); \ +} + +#define CpuFastFill16(value, dest, size) CpuFastFill(((value) << 16) | (value), (dest), (size)) + +#define CpuFastFill8(value, dest, size) CpuFastFill(((value) << 24) | ((value) << 16) | ((value) << 8) | (value), (dest), (size)) + +#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF)) + +#define DmaSet(dmaNum, src, dest, control) \ +{ \ + vu32 *dmaRegs = (vu32 *)REG_ADDR_DMA##dmaNum; \ + dmaRegs[0] = (vu32)(src); \ + dmaRegs[1] = (vu32)(dest); \ + dmaRegs[2] = (vu32)(control); \ + dmaRegs[2]; \ +} + +#define DMA_FILL(dmaNum, value, dest, size, bit) \ +{ \ + vu##bit tmp = (vu##bit)(value); \ + DmaSet(dmaNum, \ + &tmp, \ + dest, \ + (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_FIXED | DMA_DEST_INC) << 16 \ + | ((size)/(bit/8))); \ +} + +#define DmaFill16(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 16) +#define DmaFill32(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 32) + +// Note that the DMA clear macros cause the DMA control value to be calculated +// at runtime rather than compile time. The size is divided by the DMA transfer +// unit size (2 or 4 bytes) and then combined with the DMA control flags using a +// bitwise OR operation. + +#define DMA_CLEAR(dmaNum, dest, size, bit) \ +{ \ + vu##bit *_dest = (vu##bit *)(dest); \ + u32 _size = size; \ + DmaFill##bit(dmaNum, 0, _dest, _size); \ +} + +#define DmaClear16(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 16) +#define DmaClear32(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 32) + +#define DMA_COPY(dmaNum, src, dest, size, bit) \ + DmaSet(dmaNum, \ + src, \ + dest, \ + (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_INC | DMA_DEST_INC) << 16 \ + | ((size)/(bit/8))) + +#define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16) +#define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32) + +#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ +{ \ + const void *_src = src; \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, (block)); \ + _src += (block); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16) + +#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) + +#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \ +{ \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, value, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, value, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16) + +#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32) + +#define DmaClearLarge(dmaNum, dest, size, block, bit) \ +{ \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16) + +#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32) + +#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ +{ \ + const void *_src = src; \ + void *_dest = (void *)(dest); \ + u32 _size = size; \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ +} + +#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16) +#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32) + +#define DmaFillDefvars(dmaNum, value, dest, size, bit) \ +{ \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + DmaFill##bit(dmaNum, value, _dest, _size); \ +} + +#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16) +#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32) + +#define DmaClearDefvars(dmaNum, dest, size, bit) \ +{ \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + DmaClear##bit(dmaNum, _dest, _size); \ +} + +#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16) +#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32) + +#define DmaStop(dmaNum) \ +{ \ + vu16 *dmaRegs = (vu16 *)REG_ADDR_DMA##dmaNum; \ + dmaRegs[5] &= ~(DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT); \ + dmaRegs[5] &= ~DMA_ENABLE; \ + dmaRegs[5]; \ +} + +#define IntrEnable(flags) \ +{ \ + u16 imeTemp; \ + \ + imeTemp = REG_IME; \ + REG_IME = 0; \ + REG_IE |= flags; \ + REG_IME = imeTemp; \ +} \ +// from pokeemerald +// Maximum amount of data we will transfer in one operation +#define MAX_DMA_BLOCK_SIZE 0x1000 + +#define MAX_DMA_REQUESTS 128 + +#define DMA_REQUEST_COPY32 1 +#define DMA_REQUEST_FILL32 2 +#define DMA_REQUEST_COPY16 3 +#define DMA_REQUEST_FILL16 4 + +#define Dma3CopyLarge_(src, dest, size, bit) \ +{ \ + const void *_src = src; \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + while (1) \ + { \ + if (_size <= MAX_DMA_BLOCK_SIZE) \ + { \ + DmaCopy##bit(3, _src, _dest, _size); \ + break; \ + } \ + DmaCopy##bit(3, _src, _dest, MAX_DMA_BLOCK_SIZE); \ + _src += MAX_DMA_BLOCK_SIZE; \ + _dest += MAX_DMA_BLOCK_SIZE; \ + _size -= MAX_DMA_BLOCK_SIZE; \ + } \ +} + +#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16) +#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32) + +#define Dma3FillLarge_(value, dest, size, bit) \ +{ \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + while (1) \ + { \ + if (_size <= MAX_DMA_BLOCK_SIZE) \ + { \ + DmaFill##bit(3, value, _dest, _size); \ + break; \ + } \ + DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \ + _dest += MAX_DMA_BLOCK_SIZE; \ + _size -= MAX_DMA_BLOCK_SIZE; \ + } \ +} + +#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16) +#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32) + +#endif // GUARD_GBA_MACRO_H diff --git a/berry_fix/payload/include/gba/multiboot.h b/berry_fix/payload/include/gba/multiboot.h new file mode 100644 index 000000000..14b6594b2 --- /dev/null +++ b/berry_fix/payload/include/gba/multiboot.h @@ -0,0 +1,55 @@ +#ifndef GUARD_GBA_MULTIBOOT_H +#define GUARD_GBA_MULTIBOOT_H + +#define MULTIBOOT_NCHILD 3 // Maximum number of slaves +#define MULTIBOOT_HEADER_SIZE 0xc0 // Header size +#define MULTIBOOT_SEND_SIZE_MIN 0x100 // Minimum transmission size +#define MULTIBOOT_SEND_SIZE_MAX 0x40000 // Maximum transmission size + +struct MultiBootParam +{ + u32 system_work[5]; // 00 + u8 handshake_data; // 14 + u8 padding; // 15 + u16 handshake_timeout; // 16 + u8 probe_count; // 18 + u8 client_data[MULTIBOOT_NCHILD]; // 19 + u8 palette_data; // 1c + u8 response_bit; // 1d + u8 client_bit; // 1e + u8 reserved1; // 1f + const u8 *boot_srcp; // 20 + const u8 *boot_endp; // 24 + const u8 *masterp; + u8 *reserved2[MULTIBOOT_NCHILD]; + u32 system_work2[4]; + u8 sendflag; + u8 probe_target_bit; + u8 check_wait; + u8 server_type; +}; + +#define MULTIBOOT_ERROR_04 0x04 +#define MULTIBOOT_ERROR_08 0x08 +#define MULTIBOOT_ERROR_0c 0x0c +#define MULTIBOOT_ERROR_40 0x40 +#define MULTIBOOT_ERROR_44 0x44 +#define MULTIBOOT_ERROR_48 0x48 +#define MULTIBOOT_ERROR_4c 0x4c +#define MULTIBOOT_ERROR_80 0x80 +#define MULTIBOOT_ERROR_84 0x84 +#define MULTIBOOT_ERROR_88 0x88 +#define MULTIBOOT_ERROR_8c 0x8c +#define MULTIBOOT_ERROR_NO_PROBE_TARGET 0x50 +#define MULTIBOOT_ERROR_NO_DLREADY 0x60 +#define MULTIBOOT_ERROR_BOOT_FAILURE 0x70 +#define MULTIBOOT_ERROR_HANDSHAKE_FAILURE 0x71 + +#define MULTIBOOT_CONNECTION_CHECK_WAIT 15 + +#define MULTIBOOT_SERVER_TYPE_NORMAL 0 +#define MULTIBOOT_SERVER_TYPE_QUICK 1 + +#define MULTIBOOT_HANDSHAKE_TIMEOUT 400 + +#endif // GUARD_GBA_MULTIBOOT_H diff --git a/berry_fix/payload/include/gba/syscall.h b/berry_fix/payload/include/gba/syscall.h new file mode 100644 index 000000000..eb1bd4e20 --- /dev/null +++ b/berry_fix/payload/include/gba/syscall.h @@ -0,0 +1,57 @@ +#ifndef GUARD_GBA_SYSCALL_H +#define GUARD_GBA_SYSCALL_H + +#include "gba/types.h" + +#define RESET_EWRAM 0x01 +#define RESET_IWRAM 0x02 +#define RESET_PALETTE 0x04 +#define RESET_VRAM 0x08 +#define RESET_OAM 0x10 +#define RESET_SIO_REGS 0x20 +#define RESET_SOUND_REGS 0x40 +#define RESET_REGS 0x80 +#define RESET_ALL 0xFF + +void SoftReset(u32 resetFlags); + +void RegisterRamReset(u32 resetFlags); + +void VBlankIntrWait(void); + +u16 Sqrt(u32 num); + +u16 ArcTan2(s16 x, s16 y); + +#define CPU_SET_SRC_FIXED 0x01000000 +#define CPU_SET_16BIT 0x00000000 +#define CPU_SET_32BIT 0x04000000 + +void CpuSet(const void *src, void *dest, u32 control); + +#define CPU_FAST_SET_SRC_FIXED 0x01000000 + +void CpuFastSet(const void *src, void *dest, u32 control); + +void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32 count); + +void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset); + +void LZ77UnCompWram(const void *src, void *dest); + +void LZ77UnCompVram(const void *src, void *dest); + +void RLUnCompWram(const void *src, void *dest); + +void RLUnCompVram(const void *src, void *dest); + +int MultiBoot(struct MultiBootParam *mp); + +void SoundBiasReset(void); + +void SoundBiasSet(void); + +u32 Div(u32 divisor, u32 dividend); +u32 Mod(u32 divisor, u32 dividend); + +#endif // GUARD_GBA_SYSCALL_H diff --git a/berry_fix/payload/include/gba/types.h b/berry_fix/payload/include/gba/types.h new file mode 100644 index 000000000..e919abc22 --- /dev/null +++ b/berry_fix/payload/include/gba/types.h @@ -0,0 +1,146 @@ +#ifndef GUARD_GBA_TYPES_H +#define GUARD_GBA_TYPES_H + +#include + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; +typedef int8_t s8; +typedef int16_t s16; +typedef int32_t s32; +typedef int64_t s64; + +typedef volatile u8 vu8; +typedef volatile u16 vu16; +typedef volatile u32 vu32; +typedef volatile u64 vu64; +typedef volatile s8 vs8; +typedef volatile s16 vs16; +typedef volatile s32 vs32; +typedef volatile s64 vs64; + +typedef float f32; +typedef double f64; + +typedef u8 bool8; +typedef u16 bool16; +typedef u32 bool32; + +struct BgCnt +{ + u16 priority:2; + u16 charBaseBlock:2; + u16 dummy:2; + u16 mosaic:1; + u16 palettes:1; + u16 screenBaseBlock:5; + u16 areaOverflowMode:1; + u16 screenSize:2; +}; +typedef volatile struct BgCnt vBgCnt; + +struct PlttData +{ + u16 r:5; // red + u16 g:5; // green + u16 b:5; // blue + u16 unused_15:1; +}; + +struct OamData +{ + /*0x00*/ u32 y:8; + /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4 + u32 objMode:2; // 0x4, 0x8 -> 0xC + u32 mosaic:1; // 0x10 + u32 bpp:1; // 0x20 + u32 shape:2; // 0x40, 0x80 -> 0xC0 + + /*0x02*/ u32 x:9; + u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode + u32 size:2; + + /*0x04*/ u16 tileNum:10; // 0x3FF + u16 priority:2; // 0x400, 0x800 -> 0xC00 + u16 paletteNum:4; + /*0x06*/ u16 affineParam; +}; + +#define ST_OAM_OBJ_NORMAL 0 +#define ST_OAM_OBJ_BLEND 1 +#define ST_OAM_OBJ_WINDOW 2 + +#define ST_OAM_AFFINE_OFF 0 +#define ST_OAM_AFFINE_NORMAL 1 +#define ST_OAM_AFFINE_ERASE 2 +#define ST_OAM_AFFINE_DOUBLE 3 + +#define ST_OAM_AFFINE_ON_MASK 1 +#define ST_OAM_AFFINE_DOUBLE_MASK 2 + +#define ST_OAM_4BPP 0 +#define ST_OAM_8BPP 1 + +#define ST_OAM_SQUARE 0 +#define ST_OAM_H_RECTANGLE 1 +#define ST_OAM_V_RECTANGLE 2 + +struct BgAffineSrcData +{ + s32 texX; + s32 texY; + s16 scrX; + s16 scrY; + s16 sx; + s16 sy; + u16 alpha; +}; + +struct BgAffineDstData +{ + s16 pa; + s16 pb; + s16 pc; + s16 pd; + s32 dx; + s32 dy; +}; + +struct ObjAffineSrcData +{ + s16 xScale; + s16 yScale; + u16 rotation; +}; + +// Multi-player SIO Control Structure +struct SioMultiCnt +{ + u16 baudRate:2; // baud rate + u16 si:1; // SI terminal + u16 sd:1; // SD terminal + u16 id:2; // ID + u16 error:1; // error flag + u16 enable:1; // SIO enable + u16 unused_11_8:4; + u16 mode:2; // communication mode (should equal 2) + u16 intrEnable:1; // IRQ enable + u16 unused_15:1; + u16 data; // data +}; + +#define ST_SIO_MULTI_MODE 2 // Multi-player communication mode + +// baud rate +#define ST_SIO_9600_BPS 0 // 9600 bps +#define ST_SIO_38400_BPS 1 // 38400 bps +#define ST_SIO_57600_BPS 2 // 57600 bps +#define ST_SIO_115200_BPS 3 // 115200 bps + +typedef void (*MainCallback)(void); +typedef void (*IntrCallback)(void); +typedef void (*IntrFunc)(void); + +#endif // GUARD_GBA_TYPES_H diff --git a/berry_fix/payload/include/global.h b/berry_fix/payload/include/global.h index ad83b544c..c218b5f4e 100644 --- a/berry_fix/payload/include/global.h +++ b/berry_fix/payload/include/global.h @@ -1,7 +1,7 @@ #ifndef GUARD_GLOBAL_H #define GUARD_GLOBAL_H -#include +#include "gba/gba.h" // global.h from pokemon ruby diff --git a/berry_fix/payload/include/main.h b/berry_fix/payload/include/main.h index 8f7ef1a5a..cb58d5982 100644 --- a/berry_fix/payload/include/main.h +++ b/berry_fix/payload/include/main.h @@ -1,7 +1,7 @@ #ifndef GUARD_MAIN_H #define GUARD_MAIN_H -#include +#include "gba/gba.h" enum RomHeaderValidationResult { diff --git a/berry_fix/payload/include/rtc.h b/berry_fix/payload/include/rtc.h index 64a1f2295..35654d866 100644 --- a/berry_fix/payload/include/rtc.h +++ b/berry_fix/payload/include/rtc.h @@ -1,8 +1,8 @@ #ifndef GUARD_RTC_H #define GUARD_RTC_H -#include -#include +#include "gba/gba.h" +#include "siirtc.h" #include "global.h" extern struct Time gTimeSinceBerryUpdate; diff --git a/berry_fix/payload/include/siirtc.h b/berry_fix/payload/include/siirtc.h new file mode 100644 index 000000000..de4fd634d --- /dev/null +++ b/berry_fix/payload/include/siirtc.h @@ -0,0 +1,54 @@ +#ifndef GUARD_RTC_H +#define GUARD_RTC_H + +#include "gba/gba.h" + +#define SIIRTCINFO_INTFE 0x01 // frequency interrupt enable +#define SIIRTCINFO_INTME 0x02 // per-minute interrupt enable +#define SIIRTCINFO_INTAE 0x04 // alarm interrupt enable +#define SIIRTCINFO_24HOUR 0x40 // 0: 12-hour mode, 1: 24-hour mode +#define SIIRTCINFO_POWER 0x80 // power on or power failure occurred + +enum +{ + MONTH_JAN = 1, + MONTH_FEB, + MONTH_MAR, + MONTH_APR, + MONTH_MAY, + MONTH_JUN, + MONTH_JUL, + MONTH_AUG, + MONTH_SEP, + MONTH_OCT, + MONTH_NOV, + MONTH_DEC +}; + +struct SiiRtcInfo +{ + u8 year; + u8 month; + u8 day; + u8 dayOfWeek; + u8 hour; + u8 minute; + u8 second; + u8 status; + u8 alarmHour; + u8 alarmMinute; +}; + +void SiiRtcUnprotect(void); +void SiiRtcProtect(void); +u8 SiiRtcProbe(void); +bool8 SiiRtcReset(void); +bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc); +bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc); +bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc); +bool8 SiiRtcSetDateTime(struct SiiRtcInfo *rtc); +bool8 SiiRtcGetTime(struct SiiRtcInfo *rtc); +bool8 SiiRtcSetTime(struct SiiRtcInfo *rtc); +bool8 SiiRtcSetAlarm(struct SiiRtcInfo *rtc); + +#endif // GUARD_RTC_H diff --git a/berry_fix/payload/ld_script.txt b/berry_fix/payload/ld_script.txt index a70ecac09..d0a0af9ed 100644 --- a/berry_fix/payload/ld_script.txt +++ b/berry_fix/payload/ld_script.txt @@ -15,26 +15,11 @@ SECTIONS { lib_text : ALIGN(4) { - *libagb_flash.a:agb_flash.o(.text); - *libagb_flash.a:agb_flash_1m.o(.text); - *libagb_flash.a:agb_flash_mx.o(.text); - *libagbsyscall.a:ArcTan2.o(.text); - *libagbsyscall.a:BgAffineSet.o(.text); - *libagbsyscall.a:CpuFastSet.o(.text); - *libagbsyscall.a:CpuSet.o(.text); - *libagbsyscall.a:Div.o(.text); - *libagbsyscall.a:Mod.o(.text); - *libagbsyscall.a:LZ77UnCompVram.o(.text); - *libagbsyscall.a:LZ77UnCompWram.o(.text); - *libagbsyscall.a:MultiBoot.o(.text); - *libagbsyscall.a:ObjAffineSet.o(.text); - *libagbsyscall.a:RLUnCompVram.o(.text); - *libagbsyscall.a:RLUnCompWram.o(.text); - *libagbsyscall.a:RegisterRamReset.o(.text); - *libagbsyscall.a:SoftReset.o(.text); - *libagbsyscall.a:Sqrt.o(.text); - *libagbsyscall.a:VBlankIntrWait.o(.text); - *libsiirtc.a:siirtc.o(.text); + src/agb_flash.o(.text); + src/agb_flash_1m.o(.text); + src/agb_flash_mx.o(.text); + asm/libagbsyscall.o(.text); + src/siirtc.o(.text); *libgcc.a:_call_via_rX.o(.text); *libgcc.a:_modsi3.o(.text); *libgcc.a:_umodsi3.o(.text); @@ -52,11 +37,11 @@ SECTIONS { lib_rodata : ALIGN(4) { - *libagb_flash.a:agb_flash.o(.rodata); - *libagb_flash.a:agb_flash_1m.o(.rodata); - *libagb_flash.a:agb_flash_mx.o(.rodata); - *libagb_flash.a:agb_flash_le.o(.rodata); - *libsiirtc.a:siirtc.o(.rodata); + src/agb_flash.o(.rodata); + src/agb_flash_1m.o(.rodata); + src/agb_flash_mx.o(.rodata); + src/agb_flash_le.o(.rodata); + src/siirtc.o(.rodata); } . = 0x2020000; diff --git a/berry_fix/payload/src/agb_flash.c b/berry_fix/payload/src/agb_flash.c new file mode 100644 index 000000000..cda3b73f6 --- /dev/null +++ b/berry_fix/payload/src/agb_flash.c @@ -0,0 +1,296 @@ +#include +#include + +static u8 sTimerNum; +static u16 sTimerCount; +static vu16 *sTimerReg; +static u16 sSavedIme; + +u8 gFlashTimeoutFlag; +u8 (*PollFlashStatus)(u8 *); +const struct FlashType *gFlash; +u16 gFlashNumRemainingBytes; +const u16 *gFlashMaxTime; + +u16 (*ProgramFlashByte)(u16, u32, u8); +u16 (*ProgramFlashSector)(u16, void *); +u16 (*EraseFlashChip)(void); +u16 (*EraseFlashSector)(u16); +u16 (*WaitForFlashWrite)(u8, u8 *, u8); + +void SetReadFlash1(u16 *dest); + +void SwitchFlashBank(u8 bankNum) +{ + FLASH_WRITE(0x5555, 0xAA); + FLASH_WRITE(0x2AAA, 0x55); + FLASH_WRITE(0x5555, 0xB0); + FLASH_WRITE(0x0000, bankNum); +} + +#define DELAY() \ +do { \ + vu16 i; \ + for (i = 20000; i != 0; i--) \ + ; \ +} while (0) + +u16 ReadFlashId(void) +{ + u16 flashId; + u16 readFlash1Buffer[0x20]; + u8 (*readFlash1)(u8 *); + + SetReadFlash1(readFlash1Buffer); + readFlash1 = (u8 (*)(u8 *))((s32)readFlash1Buffer + 1); + + // Enter ID mode. + FLASH_WRITE(0x5555, 0xAA); + FLASH_WRITE(0x2AAA, 0x55); + FLASH_WRITE(0x5555, 0x90); + DELAY(); + + flashId = readFlash1(FLASH_BASE + 1) << 8; + flashId |= readFlash1(FLASH_BASE); + + // Leave ID mode. + FLASH_WRITE(0x5555, 0xAA); + FLASH_WRITE(0x2AAA, 0x55); + FLASH_WRITE(0x5555, 0xF0); + FLASH_WRITE(0x5555, 0xF0); + DELAY(); + + return flashId; +} + +void FlashTimerIntr(void) +{ + if (sTimerCount != 0 && --sTimerCount == 0) + gFlashTimeoutFlag = 1; +} + +u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)) +{ + if (timerNum >= 4) + return 1; + + sTimerNum = timerNum; + sTimerReg = ®_TMCNT(sTimerNum); + *intrFunc = FlashTimerIntr; + return 0; +} + +void StartFlashTimer(u8 phase) +{ + const u16 *maxTime = &gFlashMaxTime[phase * 3]; + sSavedIme = REG_IME; + REG_IME = 0; + sTimerReg[1] = 0; + REG_IE |= (INTR_FLAG_TIMER0 << sTimerNum); + gFlashTimeoutFlag = 0; + sTimerCount = *maxTime++; + *sTimerReg++ = *maxTime++; + *sTimerReg-- = *maxTime++; + REG_IF = (INTR_FLAG_TIMER0 << sTimerNum); + REG_IME = 1; +} + +void StopFlashTimer(void) +{ + REG_IME = 0; + *sTimerReg++ = 0; + *sTimerReg-- = 0; + REG_IE &= ~(INTR_FLAG_TIMER0 << sTimerNum); + REG_IME = sSavedIme; +} + +u8 ReadFlash1(u8 *addr) +{ + return *addr; +} + +void SetReadFlash1(u16 *dest) +{ + u16 *src; + u16 i; + + PollFlashStatus = (u8 (*)(u8 *))((s32)dest + 1); + + src = (u16 *)ReadFlash1; + src = (u16 *)((s32)src ^ 1); + + i = ((s32)SetReadFlash1 - (s32)ReadFlash1) >> 1; + + while (i != 0) + { + *dest++ = *src++; + i--; + } +} + +void ReadFlash_Core(u8 *src, u8 *dest, u32 size) +{ + while (size-- != 0) + { + *dest++ = *src++; + } +} + +void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size) +{ + u8 *src; + u16 i; + u16 readFlash_Core_Buffer[0x40]; + u16 *funcSrc; + u16 *funcDest; + void (*readFlash_Core)(u8 *, u8 *, u32); + + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; + + if (gFlash->romSize == FLASH_ROM_SIZE_1M) + { + SwitchFlashBank(sectorNum / SECTORS_PER_BANK); + sectorNum %= SECTORS_PER_BANK; + } + + funcSrc = (u16 *)ReadFlash_Core; + funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcDest = readFlash_Core_Buffer; + + i = ((s32)ReadFlash - (s32)ReadFlash_Core) >> 1; + + while (i != 0) + { + *funcDest++ = *funcSrc++; + i--; + } + + readFlash_Core = (void (*)(u8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1); + + src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset; + + readFlash_Core(src, dest, size); +} + +u32 VerifyFlashSector_Core(u8 *src, u8 *tgt, u32 size) +{ + while (size-- != 0) + { + if (*tgt++ != *src++) + return (u32)(tgt - 1); + } + + return 0; +} + +u32 VerifyFlashSector(u16 sectorNum, u8 *src) +{ + u16 i; + u16 verifyFlashSector_Core_Buffer[0x80]; + u16 *funcSrc; + u16 *funcDest; + u8 *tgt; + u16 size; + u32 (*verifyFlashSector_Core)(u8 *, u8 *, u32); + + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; + + if (gFlash->romSize == FLASH_ROM_SIZE_1M) + { + SwitchFlashBank(sectorNum / SECTORS_PER_BANK); + sectorNum %= SECTORS_PER_BANK; + } + + funcSrc = (u16 *)VerifyFlashSector_Core; + funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcDest = verifyFlashSector_Core_Buffer; + + i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; + + while (i != 0) + { + *funcDest++ = *funcSrc++; + i--; + } + + verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); + + tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); + size = gFlash->sector.size; + + return verifyFlashSector_Core(src, tgt, size); +} + +u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) +{ + u16 i; + u16 verifyFlashSector_Core_Buffer[0x80]; + u16 *funcSrc; + u16 *funcDest; + u8 *tgt; + u32 (*verifyFlashSector_Core)(u8 *, u8 *, u32); + + if (gFlash->romSize == FLASH_ROM_SIZE_1M) + { + SwitchFlashBank(sectorNum / SECTORS_PER_BANK); + sectorNum %= SECTORS_PER_BANK; + } + + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; + + funcSrc = (u16 *)VerifyFlashSector_Core; + funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcDest = verifyFlashSector_Core_Buffer; + + i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; + + while (i != 0) + { + *funcDest++ = *funcSrc++; + i--; + } + + verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); + + tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); + + return verifyFlashSector_Core(src, tgt, n); +} + +u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src) +{ + u8 i; + u32 result; + + for (i = 0; i < 3; i++) + { + result = ProgramFlashSector(sectorNum, src); + if (result != 0) + continue; + + result = VerifyFlashSector(sectorNum, src); + if (result == 0) + break; + } + + return result; +} + +u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *src, u32 n) +{ + u8 i; + u32 result; + + for (i = 0; i < 3; i++) + { + result = ProgramFlashSector(sectorNum, src); + if (result != 0) + continue; + + result = VerifyFlashSectorNBytes(sectorNum, src, n); + if (result == 0) + break; + } + + return result; +} diff --git a/berry_fix/payload/src/agb_flash_1m.c b/berry_fix/payload/src/agb_flash_1m.c new file mode 100644 index 000000000..7f8bdeb5f --- /dev/null +++ b/berry_fix/payload/src/agb_flash_1m.c @@ -0,0 +1,86 @@ +#include "gba/gba.h" +#include "gba/flash_internal.h" + +static const char AgbLibFlashVersion[] = "FLASH1M_V103"; + +const struct FlashSetupInfo * const sSetupInfos[] = +{ + &MX29L010, + &LE26FV10N1TS, + &DefaultFlash +}; + +u32 IdentifyFlash(void) +{ + u16 result; + u16 flashId; + const struct FlashSetupInfo * const *setupInfo; + + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; + + flashId = ReadFlashId(); + + setupInfo = sSetupInfos; + result = 1; + + for (;;) + { + if ((*setupInfo)->type.ids.separate.makerId == 0) + break; + + if (flashId == (*setupInfo)->type.ids.joined) + { + result = 0; + break; + } + + setupInfo++; + } + + ProgramFlashByte = (*setupInfo)->programFlashByte; + ProgramFlashSector = (*setupInfo)->programFlashSector; + EraseFlashChip = (*setupInfo)->eraseFlashChip; + EraseFlashSector = (*setupInfo)->eraseFlashSector; + WaitForFlashWrite = (*setupInfo)->WaitForFlashWrite; + gFlashMaxTime = (*setupInfo)->maxTime; + gFlash = &(*setupInfo)->type; + + return result; +} + +u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData) +{ + u16 result = 0; + u8 status; + + StartFlashTimer(phase); + + while ((status = PollFlashStatus(addr)) != lastData) + { + if (status & 0x20) + { + // The write operation exceeded the flash chip's time limit. + + if (PollFlashStatus(addr) == lastData) + break; + + FLASH_WRITE(0x5555, 0xF0); + result = phase | 0xA000u; + break; + } + + if (gFlashTimeoutFlag) + { + if (PollFlashStatus(addr) == lastData) + break; + + FLASH_WRITE(0x5555, 0xF0); + result = phase | 0xC000u; + break; + } + } + + StopFlashTimer(); + + return result; +} diff --git a/berry_fix/payload/src/agb_flash_le.c b/berry_fix/payload/src/agb_flash_le.c new file mode 100644 index 000000000..39d956e27 --- /dev/null +++ b/berry_fix/payload/src/agb_flash_le.c @@ -0,0 +1,31 @@ +#include "gba/gba.h" +#include "gba/flash_internal.h" + +const u16 leMaxTime[] = +{ + 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, + 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, + 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, + 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, +}; + +const struct FlashSetupInfo LE26FV10N1TS = +{ + ProgramFlashByte_MX, + ProgramFlashSector_MX, + EraseFlashChip_MX, + EraseFlashSector_MX, + WaitForFlashWrite_Common, + leMaxTime, + { + 131072, // ROM size + { + 4096, // sector size + 12, // bit shift to multiply by sector size (4096 == 1 << 12) + 32, // number of sectors + 0 // appears to be unused + }, + { 3, 1 }, // wait state setup data + { { 0x62, 0x13 } } // ID + } +}; diff --git a/berry_fix/payload/src/agb_flash_mx.c b/berry_fix/payload/src/agb_flash_mx.c new file mode 100644 index 000000000..68eb00cd8 --- /dev/null +++ b/berry_fix/payload/src/agb_flash_mx.c @@ -0,0 +1,193 @@ +#include "gba/gba.h" +#include "gba/flash_internal.h" + +const u16 mxMaxTime[] = +{ + 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, + 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, + 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, + 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, +}; + +const struct FlashSetupInfo MX29L010 = +{ + ProgramFlashByte_MX, + ProgramFlashSector_MX, + EraseFlashChip_MX, + EraseFlashSector_MX, + WaitForFlashWrite_Common, + mxMaxTime, + { + 131072, // ROM size + { + 4096, // sector size + 12, // bit shift to multiply by sector size (4096 == 1 << 12) + 32, // number of sectors + 0 // appears to be unused + }, + { 3, 1 }, // wait state setup data + { { 0xC2, 0x09 } } // ID + } +}; + +const struct FlashSetupInfo DefaultFlash = +{ + ProgramFlashByte_MX, + ProgramFlashSector_MX, + EraseFlashChip_MX, + EraseFlashSector_MX, + WaitForFlashWrite_Common, + mxMaxTime, + { + 131072, // ROM size + { + 4096, // sector size + 12, // bit shift to multiply by sector size (4096 == 1 << 12) + 32, // number of sectors + 0 // appears to be unused + }, + { 3, 1 }, // wait state setup data + { { 0x00, 0x00 } } // ID of 0 + } +}; + +u16 EraseFlashChip_MX(void) +{ + u16 result; + u16 readFlash1Buffer[0x20]; + + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0]; + + FLASH_WRITE(0x5555, 0xAA); + FLASH_WRITE(0x2AAA, 0x55); + FLASH_WRITE(0x5555, 0x80); + FLASH_WRITE(0x5555, 0xAA); + FLASH_WRITE(0x2AAA, 0x55); + FLASH_WRITE(0x5555, 0x10); + + SetReadFlash1(readFlash1Buffer); + + result = WaitForFlashWrite(3, FLASH_BASE, 0xFF); + + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; + + return result; +} + +u16 EraseFlashSector_MX(u16 sectorNum) +{ + u16 numTries; + u16 result; + u8 *addr; + u16 readFlash1Buffer[0x20]; + + if (sectorNum >= gFlash->sector.count) + return 0x80FF; + + SwitchFlashBank(sectorNum / SECTORS_PER_BANK); + sectorNum %= SECTORS_PER_BANK; + + numTries = 0; + +try_erase: + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0]; + + addr = FLASH_BASE + (sectorNum << gFlash->sector.shift); + + FLASH_WRITE(0x5555, 0xAA); + FLASH_WRITE(0x2AAA, 0x55); + FLASH_WRITE(0x5555, 0x80); + FLASH_WRITE(0x5555, 0xAA); + FLASH_WRITE(0x2AAA, 0x55); + *addr = 0x30; + + SetReadFlash1(readFlash1Buffer); + + result = WaitForFlashWrite(2, addr, 0xFF); + + if (!(result & 0xA000) || numTries > 3) + goto done; + + numTries++; + + goto try_erase; + +done: + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; + + return result; +} + +u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data) +{ + u8 *addr; + u16 readFlash1Buffer[0x20]; + + if (offset >= gFlash->sector.size) + return 0x8000; + + SwitchFlashBank(sectorNum / SECTORS_PER_BANK); + sectorNum %= SECTORS_PER_BANK; + + addr = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset; + + SetReadFlash1(readFlash1Buffer); + + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0]; + + FLASH_WRITE(0x5555, 0xAA); + FLASH_WRITE(0x2AAA, 0x55); + FLASH_WRITE(0x5555, 0xA0); + *addr = data; + + return WaitForFlashWrite(1, addr, data); +} + +static u16 ProgramByte(u8 *src, u8 *dest) +{ + FLASH_WRITE(0x5555, 0xAA); + FLASH_WRITE(0x2AAA, 0x55); + FLASH_WRITE(0x5555, 0xA0); + *dest = *src; + + return WaitForFlashWrite(1, dest, *src); +} + +u16 ProgramFlashSector_MX(u16 sectorNum, void *src) +{ + u16 result; + u8 *dest; + u16 readFlash1Buffer[0x20]; + + if (sectorNum >= gFlash->sector.count) + return 0x80FF; + + result = EraseFlashSector_MX(sectorNum); + + if (result != 0) + return result; + + SwitchFlashBank(sectorNum / SECTORS_PER_BANK); + sectorNum %= SECTORS_PER_BANK; + + SetReadFlash1(readFlash1Buffer); + + REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0]; + + gFlashNumRemainingBytes = gFlash->sector.size; + dest = FLASH_BASE + (sectorNum << gFlash->sector.shift); + + while (gFlashNumRemainingBytes > 0) + { + result = ProgramByte(src, dest); + + if (result != 0) + break; + + gFlashNumRemainingBytes--; + src++; + dest++; + } + + return result; +} diff --git a/berry_fix/payload/src/flash.c b/berry_fix/payload/src/flash.c index 3a0369dda..1f09d0b8f 100644 --- a/berry_fix/payload/src/flash.c +++ b/berry_fix/payload/src/flash.c @@ -1,5 +1,5 @@ -#include -#include +#include "gba/gba.h" +#include "gba/flash_internal.h" #include "constants/vars.h" #include "global.h" #include "main.h" diff --git a/berry_fix/payload/src/main.c b/berry_fix/payload/src/main.c index 249150665..325d3830e 100644 --- a/berry_fix/payload/src/main.c +++ b/berry_fix/payload/src/main.c @@ -1,4 +1,4 @@ -#include +#include "gba/gba.h" #include "global.h" #include "main.h" #include "rtc.h" diff --git a/berry_fix/payload/src/rtc.c b/berry_fix/payload/src/rtc.c index 97692e205..e73f522aa 100644 --- a/berry_fix/payload/src/rtc.c +++ b/berry_fix/payload/src/rtc.c @@ -1,5 +1,5 @@ -#include -#include +#include "gba/gba.h" +#include "siirtc.h" #include "global.h" #include "main.h" diff --git a/berry_fix/payload/src/siirtc.c b/berry_fix/payload/src/siirtc.c new file mode 100644 index 000000000..965a068f1 --- /dev/null +++ b/berry_fix/payload/src/siirtc.c @@ -0,0 +1,432 @@ +// Ruby/Sapphire/Emerald cartridges contain a Seiko Instruments Inc. (SII) +// S-3511A real-time clock (RTC). This library ("SIIRTC_V001") is for +// communicating with the RTC. + +#include "gba/gba.h" +#include "siirtc.h" + +#define STATUS_INTFE 0x02 // frequency interrupt enable +#define STATUS_INTME 0x08 // per-minute interrupt enable +#define STATUS_INTAE 0x20 // alarm interrupt enable +#define STATUS_24HOUR 0x40 // 0: 12-hour mode, 1: 24-hour mode +#define STATUS_POWER 0x80 // power on or power failure occurred + +#define TEST_MODE 0x80 // flag in the "second" byte + +#define ALARM_AM 0x00 +#define ALARM_PM 0x80 + +#define OFFSET_YEAR offsetof(struct SiiRtcInfo, year) +#define OFFSET_MONTH offsetof(struct SiiRtcInfo, month) +#define OFFSET_DAY offsetof(struct SiiRtcInfo, day) +#define OFFSET_DAY_OF_WEEK offsetof(struct SiiRtcInfo, dayOfWeek) +#define OFFSET_HOUR offsetof(struct SiiRtcInfo, hour) +#define OFFSET_MINUTE offsetof(struct SiiRtcInfo, minute) +#define OFFSET_SECOND offsetof(struct SiiRtcInfo, second) +#define OFFSET_STATUS offsetof(struct SiiRtcInfo, status) +#define OFFSET_ALARM_HOUR offsetof(struct SiiRtcInfo, alarmHour) +#define OFFSET_ALARM_MINUTE offsetof(struct SiiRtcInfo, alarmMinute) + +#define INFO_BUF(info, index) (*((u8 *)(info) + (index))) + +#define DATETIME_BUF(info, index) INFO_BUF(info, OFFSET_YEAR + index) +#define DATETIME_BUF_LEN (OFFSET_SECOND - OFFSET_YEAR + 1) + +#define TIME_BUF(info, index) INFO_BUF(info, OFFSET_HOUR + index) +#define TIME_BUF_LEN (OFFSET_SECOND - OFFSET_HOUR + 1) + +#define WR 0 // command for writing data +#define RD 1 // command for reading data + +#define CMD(n) (0x60 | (n << 1)) + +#define CMD_RESET CMD(0) +#define CMD_STATUS CMD(1) +#define CMD_DATETIME CMD(2) +#define CMD_TIME CMD(3) +#define CMD_ALARM CMD(4) + +#define GPIO_PORT_DATA (*(vu16 *)0x80000C4) +#define GPIO_PORT_DIRECTION (*(vu16 *)0x80000C6) +#define GPIO_PORT_READ_ENABLE (*(vu16 *)0x80000C8) + +extern vu16 GPIOPortDirection; + +static u16 sDummy; // unused variable +static bool8 sLocked; + +static int WriteCommand(u8 value); +static int WriteData(u8 value); +static u8 ReadData(); +static void EnableGpioPortRead(); +static void DisableGpioPortRead(); + +static const char AgbLibRtcVersion[] = "SIIRTC_V001"; + +void SiiRtcUnprotect() +{ + EnableGpioPortRead(); + sLocked = FALSE; +} + +void SiiRtcProtect() +{ + DisableGpioPortRead(); + sLocked = TRUE; +} + +u8 SiiRtcProbe() +{ + u8 errorCode; + struct SiiRtcInfo rtc; + + if (!SiiRtcGetStatus(&rtc)) + return 0; + + errorCode = 0; + + if ((rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == SIIRTCINFO_POWER + || (rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == 0) + { + // The RTC is in 12-hour mode. Reset it and switch to 24-hour mode. + + // Note that the conditions are redundant and equivalent to simply + // "(rtc.status & SIIRTCINFO_24HOUR) == 0". It's possible that this + // was also intended to handle resetting the clock after power failure + // but a mistake was made. + + if (!SiiRtcReset()) + return 0; + + errorCode++; + } + + SiiRtcGetTime(&rtc); + + if (rtc.second & TEST_MODE) + { + // The RTC is in test mode. Reset it to leave test mode. + + if (!SiiRtcReset()) + return (errorCode << 4) & 0xF0; + + errorCode++; + } + + return (errorCode << 4) | 1; +} + +bool8 SiiRtcReset() +{ + u8 result; + struct SiiRtcInfo rtc; + + if (sLocked == TRUE) + return FALSE; + + sLocked = TRUE; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 5; + + GPIO_PORT_DIRECTION = 7; + + WriteCommand(CMD_RESET | WR); + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 1; + + sLocked = FALSE; + + rtc.status = SIIRTCINFO_24HOUR; + + result = SiiRtcSetStatus(&rtc); + + return result; +} + +bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc) +{ + u8 statusData; + + if (sLocked == TRUE) + return FALSE; + + sLocked = TRUE; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 5; + + GPIO_PORT_DIRECTION = 7; + + WriteCommand(CMD_STATUS | RD); + + GPIO_PORT_DIRECTION = 5; + + statusData = ReadData(); + + rtc->status = (statusData & (STATUS_POWER | STATUS_24HOUR)) + | ((statusData & STATUS_INTAE) >> 3) + | ((statusData & STATUS_INTME) >> 2) + | ((statusData & STATUS_INTFE) >> 1); + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 1; + + sLocked = FALSE; + + return TRUE; +} + +bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc) +{ + u8 statusData; + + if (sLocked == TRUE) + return FALSE; + + sLocked = TRUE; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 5; + + statusData = STATUS_24HOUR + | ((rtc->status & SIIRTCINFO_INTAE) << 3) + | ((rtc->status & SIIRTCINFO_INTME) << 2) + | ((rtc->status & SIIRTCINFO_INTFE) << 1); + + GPIO_PORT_DIRECTION = 7; + + WriteCommand(CMD_STATUS | WR); + + WriteData(statusData); + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 1; + + sLocked = FALSE; + + return TRUE; +} + +bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc) +{ + u8 i; + + if (sLocked == TRUE) + return FALSE; + + sLocked = TRUE; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 5; + + GPIO_PORT_DIRECTION = 7; + + WriteCommand(CMD_DATETIME | RD); + + GPIO_PORT_DIRECTION = 5; + + for (i = 0; i < DATETIME_BUF_LEN; i++) + DATETIME_BUF(rtc, i) = ReadData(); + + INFO_BUF(rtc, OFFSET_HOUR) &= 0x7F; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 1; + + sLocked = FALSE; + + return TRUE; +} + +bool8 SiiRtcSetDateTime(struct SiiRtcInfo *rtc) +{ + u8 i; + + if (sLocked == TRUE) + return FALSE; + + sLocked = TRUE; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 5; + + GPIO_PORT_DIRECTION = 7; + + WriteCommand(CMD_DATETIME | WR); + + for (i = 0; i < DATETIME_BUF_LEN; i++) + WriteData(DATETIME_BUF(rtc, i)); + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 1; + + sLocked = FALSE; + + return TRUE; +} + +bool8 SiiRtcGetTime(struct SiiRtcInfo *rtc) +{ + u8 i; + + if (sLocked == TRUE) + return FALSE; + + sLocked = TRUE; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 5; + + GPIO_PORT_DIRECTION = 7; + + WriteCommand(CMD_TIME | RD); + + GPIO_PORT_DIRECTION = 5; + + for (i = 0; i < TIME_BUF_LEN; i++) + TIME_BUF(rtc, i) = ReadData(); + + INFO_BUF(rtc, OFFSET_HOUR) &= 0x7F; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 1; + + sLocked = FALSE; + + return TRUE; +} + +bool8 SiiRtcSetTime(struct SiiRtcInfo *rtc) +{ + u8 i; + + if (sLocked == TRUE) + return FALSE; + + sLocked = TRUE; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 5; + + GPIO_PORT_DIRECTION = 7; + + WriteCommand(CMD_TIME | WR); + + for (i = 0; i < TIME_BUF_LEN; i++) + WriteData(TIME_BUF(rtc, i)); + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 1; + + sLocked = FALSE; + + return TRUE; +} + +bool8 SiiRtcSetAlarm(struct SiiRtcInfo *rtc) +{ + u8 i; + u8 alarmData[2]; + + if (sLocked == TRUE) + return FALSE; + + sLocked = TRUE; + + // Decode BCD. + alarmData[0] = (rtc->alarmHour & 0xF) + 10 * ((rtc->alarmHour >> 4) & 0xF); + + // The AM/PM flag must be set correctly even in 24-hour mode. + + if (alarmData[0] < 12) + alarmData[0] = rtc->alarmHour | ALARM_AM; + else + alarmData[0] = rtc->alarmHour | ALARM_PM; + + alarmData[1] = rtc->alarmMinute; + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 5; + + GPIOPortDirection = 7; // Why is this the only instance that uses a symbol? + + WriteCommand(CMD_ALARM | WR); + + for (i = 0; i < 2; i++) + WriteData(alarmData[i]); + + GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = 1; + + sLocked = FALSE; + + return TRUE; +} + +static int WriteCommand(u8 value) +{ + u8 i; + u8 temp; + + for (i = 0; i < 8; i++) + { + temp = ((value >> (7 - i)) & 1); + GPIO_PORT_DATA = (temp << 1) | 4; + GPIO_PORT_DATA = (temp << 1) | 4; + GPIO_PORT_DATA = (temp << 1) | 4; + GPIO_PORT_DATA = (temp << 1) | 5; + } + + // control reaches end of non-void function +} + +static int WriteData(u8 value) +{ + u8 i; + u8 temp; + + for (i = 0; i < 8; i++) + { + temp = ((value >> i) & 1); + GPIO_PORT_DATA = (temp << 1) | 4; + GPIO_PORT_DATA = (temp << 1) | 4; + GPIO_PORT_DATA = (temp << 1) | 4; + GPIO_PORT_DATA = (temp << 1) | 5; + } + + // control reaches end of non-void function +} + +static u8 ReadData() +{ + u8 i; + u8 temp; + u8 value; + + for (i = 0; i < 8; i++) + { + GPIO_PORT_DATA = 4; + GPIO_PORT_DATA = 4; + GPIO_PORT_DATA = 4; + GPIO_PORT_DATA = 4; + GPIO_PORT_DATA = 4; + GPIO_PORT_DATA = 5; + + temp = ((GPIO_PORT_DATA & 2) >> 1); + value = (value >> 1) | (temp << 7); // UB: accessing uninitialized var + } + + return value; +} + +static void EnableGpioPortRead() +{ + GPIO_PORT_READ_ENABLE = 1; +} + +static void DisableGpioPortRead() +{ + GPIO_PORT_READ_ENABLE = 0; +} diff --git a/berry_fix/payload/sym_bss.txt b/berry_fix/payload/sym_bss.txt index 17bb7f204..3b1c62ae9 100644 --- a/berry_fix/payload/sym_bss.txt +++ b/berry_fix/payload/sym_bss.txt @@ -1,5 +1,5 @@ .include "src/main.o" .include "src/rtc.o" .include "src/flash.o" - .include "*libagb_flash.a:agb_flash.o" - .include "*libsiirtc.a:siirtc.o" + .include "src/agb_flash.o" + .include "src/siirtc.o" diff --git a/berry_fix/payload/sym_common.txt b/berry_fix/payload/sym_common.txt index e284737fc..28b47f52e 100644 --- a/berry_fix/payload/sym_common.txt +++ b/berry_fix/payload/sym_common.txt @@ -26,4 +26,4 @@ gCurSaveChunk: gFlashIdentIsValid: @ 0x0300123C .space 0x4 - .include "*libagb_flash.a:agb_flash.o" + .include "agb_flash.o" diff --git a/build_tools.sh b/build_tools.sh index f384c2d99..f64b01573 100755 --- a/build_tools.sh +++ b/build_tools.sh @@ -7,3 +7,5 @@ make -C tools/preproc CXX=${1:-g++} make -C tools/ramscrgen CXX=${1:-g++} make -C tools/rsfont CXX=${1:-g++} make -C tools/scaninc CXX=${1:-g++} +make -C tools/mapjson CXX=${1:-g++} +make -C tools/jsonproc CXX=${1:-g++} diff --git a/charmap.txt b/charmap.txt index ad4062731..fe0747616 100644 --- a/charmap.txt +++ b/charmap.txt @@ -77,7 +77,7 @@ RIGHT_ARROW = 7C '“' = B1 '”' = B2 '‘' = B3 -'’' = B4 +'\'' = B4 '♂' = B5 '♀' = B6 '¥' = B7 @@ -323,14 +323,47 @@ TALL_PLUS = FC 0C FB @ TODO: Identify and declare F7 control codes UNKNOWN_F7 = F7 -UNKNOWN_F8 = F8 -UNKNOWN_F9 = F9 +KEYGFX = F8 +EXTRA = F9 -KEYGFX_A_BUTTON = F8 00 -KEYGFX_B_BUTTON = F8 01 -KEYGFX_START_BUTTON = F8 04 -KEYGFX_DPAD_UP_DOWN = F8 0A -KEYGFX_DPAD_ANY = F8 0C +KEYGFX_A_BUTTON = F8 00 +KEYGFX_B_BUTTON = F8 01 +KEYGFX_L_BUTTON = F8 02 +KEYGFX_R_BUTTON = F8 03 +KEYGFX_START_BUTTON = F8 04 +KEYGFX_SELECT_BUTTON = F8 05 +KEYGFX_DPAD_UP = F8 06 +KEYGFX_DPAD_DOWN = F8 07 +KEYGFX_DPAD_LEFT = F8 08 +KEYGFX_DPAD_RIGHT = F8 09 +KEYGFX_DPAD_UP_DOWN = F8 0A +KEYGFX_DPAD_LEFT_RIGHT = F8 0B +KEYGFX_DPAD_ANY = F8 0C + +EXTRA_UPARROW = F9 00 +EXTRA_DOWNARROW = F9 01 +EXTRA_LEFTARROW = F9 02 +EXTRA_RIGHTARROW = F9 03 +EXTRA_PLUS = F9 04 +EXTRA_LV = F9 05 +EXTRA_PP = F9 06 +EXTRA_ID = F9 07 +EXTRA_NO = F9 08 +EXTRA_UNDERSCORE = F9 09 +EXTRA_CIRCLE_1 = F9 0A +EXTRA_CIRCLE_2 = F9 0B +EXTRA_CIRCLE_3 = F9 0C +EXTRA_CIRCLE_4 = F9 0D +EXTRA_CIRCLE_5 = F9 0E +EXTRA_CIRCLE_6 = F9 0F +EXTRA_CIRCLE_7 = F9 10 +EXTRA_CIRCLE_8 = F9 11 +EXTRA_CIRCLE_9 = F9 12 +EXTRA_LEFT_PAREN = F9 13 +EXTRA_RIGHT_PAREN = F9 14 +EXTRA_TARGET = F9 15 +EXTRA_TRIANGLE = F9 16 +EXTRA_X = F9 17 STRING = FD @@ -377,7 +410,7 @@ PAUSE_UNTIL_PRESS = FC 09 UNKNOWN_A = FC 0A PLAY_BGM = FC 0B ESCAPE = FC 0C -SHIFT_TEXT = FC 0D +SHIFT_TEXT = FC 0D UNKNOWN_E = FC 0E UNKNOWN_F = FC 0F PLAY_SE = FC 10 @@ -534,6 +567,98 @@ SE_TB_START = 72 00 SE_TB_KON = 73 00 SE_TB_KARA = 74 00 SE_BIDORO = 75 00 + +MUS_ME_ASA = 00 01 +MUS_FANFA1 = 01 01 +MUS_FANFA4 = 02 01 +MUS_FANFA5 = 03 01 +MUS_ME_BACHI = 04 01 +MUS_ME_WAZA = 05 01 +MUS_ME_KINOMI = 06 01 +MUS_ME_SHINKA = 07 01 +BGM_FRLG_SAFARI_ZONE = 08 01 +MUS_SHINKA = 08 01 +BGM_FRLG_CHANSEY_DANCE = 0B 01 +MUS_ME_B_BIG = 0C 01 +MUS_ME_B_SMALL = 0D 01 +MUS_ME_WASURE = 0E 01 +MUS_ME_ZANNEN = 0F 01 +BGM_FRLG_FOLLOW_ME = 10 01 +BGM_FRLG_GAMECORNER = 11 01 +BGM_FRLG_ROCKET_HIDEOUT = 12 01 +BGM_FRLG_GYM = 13 01 +BGM_FRLG_JIGGLYPUFF = 14 01 +BGM_FRLG_OPENING = 15 01 +BGM_FRLG_TITLE = 16 01 +BGM_FRLG_CINNABAR_ISLAND = 17 01 +BGM_FRLG_LAVENDER_TOWN = 18 01 +BGM_FRLG_HEALING_TEST = 19 01 +BGM_FRLG_BICYCLE = 1A 01 +BGM_FRLG_SUSPICIOUS_EYE = 1B 01 +BGM_FRLG_GIRL_EYE = 1C 01 +BGM_FRLG_BOY_EYE = 1D 01 +BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME = 1E 01 +BGM_FRLG_VIRIDIAN_FOREST = 1F 01 +BGM_FRLG_MT_MOON = 20 01 +BGM_FRLG_POKEMON_MANSION = 21 01 +BGM_FRLG_CREDITS = 22 01 +BGM_FRLG_ROUTE_1 = 23 01 +BGM_FRLG_ROUTE_24 = 24 01 +BGM_FRLG_ROUTE_3 = 25 01 +BGM_FRLG_ROUTE_11 = 26 01 +BGM_FRLG_INDIGO_PLATEAU = 27 01 +BGM_FRLG_BATTLE_LEADER = 28 01 +BGM_FRLG_BATTLE_TRAINER = 29 01 +BGM_FRLG_BATTLE_WILD_POKEMON = 2A 01 +BGM_FRLG_BATTLE_CHAMPION = 2B 01 +BGM_FRLG_PALLET_TOWN = 2C 01 +BGM_FRLG_OAK_LAB = 2D 01 +BGM_FRLG_PROF_OAK = 2E 01 +BGM_FRLG_POKEMON_CENTER = 2F 01 +BGM_FRLG_SS_ANNE = 30 01 +BGM_FRLG_SURF = 31 01 +BGM_FRLG_POKEMON_TOWER = 32 01 +BGM_FRLG_SILPH = 33 01 +BGM_FRLG_CERULEAN_CITY = 34 01 +BGM_FRLG_CELADON_CITY = 35 01 +BGM_FRLG_KACHI_TRAINER = 36 01 +BGM_FRLG_KACHI_WILD_POKEMON = 37 01 +BGM_FRLG_KACHI_LEADER = 38 01 +BGM_FRLG_VERMILION_CITY = 39 01 +BGM_FRLG_VIRIDIAN_CITY = 3A 01 +BGM_FRLG_RIVAL = 3B 01 +BGM_FRLG_RIVAL_POSTBATTLE = 3C 01 +BGM_FRLG_ME_POKEDEX_EVAL = 3D 01 +BGM_FRLG_ME_KEYITEM = 3E 01 +BGM_FRLG_FANFA_POKEMON_CAUGHT = 3F 01 +BGM_FRLG_FANFA_TRAINERCARD_PHOTO = 40 01 +BGM_FRLG_GAMEFREAK_LOGO = 41 01 +BGM_FRLG_CAUGHT_POKEMON = 42 01 +BGM_FRLG_GAME_EXPLANATION_START = 43 01 +BGM_FRLG_GAME_EXPLANATION_MIDDLE = 44 01 +BGM_FRLG_GAME_EXPLANATION_END = 45 01 +BGM_FRLG_POKEMON_JUMP = 46 01 +BGM_FRLG_UNION_ROOM = 47 01 +BGM_FRLG_POKEMON_NETWORK_CENTER = 48 01 +BGM_FRLG_MYSTERY_GIFT = 49 01 +BGM_FRLG_DODRIO_BERRY_PICK = 4A 01 +BGM_FRLG_MT_EMBER = 4B 01 +BGM_FRLG_TEACHY_TV_EPISODE = 4C 01 +BGM_FRLG_SEVII_ISLANDS = 4D 01 +BGM_FRLG_TANOBY_RUINS = 4E 01 +BGM_FRLG_ISLAND_ONE = 4F 01 +BGM_FRLG_ISLAND_FOUR = 50 01 +BGM_FRLG_ISLAND_SIX = 51 01 +BGM_FRLG_FLUTE = 52 01 +BGM_FRLG_BATTLE_DEOXYS = 53 01 +BGM_FRLG_BATTLE_MEWTWO = 54 01 +BGM_FRLG_BATTLE_LEGENDARY = 55 01 +BGM_FRLG_LEADER_EYE = 56 01 +BGM_FRLG_DEOXYS_EYE = 57 01 +BGM_FRLG_TRAINER_TOWER = 58 01 +BGM_FRLG_HALL_OF_FAME_PALLET_TOWN = 59 01 +BGM_FRLG_TEACHY_TV = 5A 01 + BGM_STOP = 5D 01 BGM_TETSUJI = 5E 01 BGM_FIELD13 = 5F 01 diff --git a/common_syms/berry_fix_program.txt b/common_syms/berry_fix_program.txt new file mode 100644 index 000000000..63b3de271 --- /dev/null +++ b/common_syms/berry_fix_program.txt @@ -0,0 +1,4 @@ +gUnknown_3005EF0 +gUnknown_3005EF4 +gUnknown_3005EF8 +gUnknown_3005F00 diff --git a/common_syms/fieldmap.txt b/common_syms/fieldmap.txt new file mode 100644 index 000000000..dedf055bd --- /dev/null +++ b/common_syms/fieldmap.txt @@ -0,0 +1 @@ +VMap diff --git a/common_syms/help_system_812B1E0.txt b/common_syms/help_system_812B1E0.txt new file mode 100644 index 000000000..7986bedb5 --- /dev/null +++ b/common_syms/help_system_812B1E0.txt @@ -0,0 +1,2 @@ +gUnknown_3005E9C +gUnknown_3005EA0 diff --git a/common_syms/m4a_2.txt b/common_syms/m4a.txt similarity index 100% rename from common_syms/m4a_2.txt rename to common_syms/m4a.txt diff --git a/constants/battle.inc b/constants/battle.inc index 94b7a6d48..744399469 100644 --- a/constants/battle.inc +++ b/constants/battle.inc @@ -40,10 +40,10 @@ .equiv TARGET, 0 .equiv USER, 1 -.equiv WEATHER_SUN, 0 -.equiv WEATHER_RAIN, 1 -.equiv WEATHER_SANDSTORM, 2 -.equiv WEATHER_HAIL, 3 +.equiv BATTLE_WEATHER_SUNNY, 0 +.equiv BATTLE_WEATHER_RAIN, 1 +.equiv BATTLE_WEATHER_SANDSTORM, 2 +.equiv BATTLE_WEATHER_HAIL, 3 enum_start 1 enum ATTACK diff --git a/constants/constants.inc b/constants/constants.inc index 1ec25462f..4365e90e1 100644 --- a/constants/constants.inc +++ b/constants/constants.inc @@ -2,7 +2,7 @@ .include "constants/misc_constants.inc" .include "constants/type_constants.inc" .include "constants/contest_constants.inc" - .include "constants/item_data_constants.inc" +@ .include "constants/item_data_constants.inc" .include "constants/battle_move_constants.inc" .include "constants/trainer_constants.inc" .include "constants/berry_constants.inc" diff --git a/data/bag/bag_window_pal.pal b/data/bag/bag_window_pal.pal new file mode 100644 index 000000000..426ea279e --- /dev/null +++ b/data/bag/bag_window_pal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +0 0 0 +0 0 0 +0 0 0 +255 156 148 +255 255 255 +189 90 82 diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index bb0c1883c..944275acc 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -1,4 +1,3126 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + .include "asm/macros/battle_ai_script.inc" + .section script_data, "aw", %progbits BattleAIs:: @ 81D9BF4 - .incbin "baserom.gba", 0x1D9BF4, 0x20FC + .4byte AI_CheckBadMove + .4byte AI_TryToFaint + .4byte AI_CheckViability + .4byte AI_SetupFirstTurn + .4byte AI_Risky + .4byte AI_PreferStrongestMove + .4byte AI_PreferBatonPass + .4byte AI_DoubleBattle + .4byte AI_HPAware + .4byte AI_Unknown + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Roaming + .4byte AI_Safari + .4byte AI_FirstBattle + +AI_CheckBadMove:: @ 81D9C74 + is_most_powerful_move + if_equal 0, AI_sub_81D9CE0 + if_damage_bonus 0, AI_sub_81DA433 + get_ability 0 + if_equal 10, AI_sub_81D9CA6 + if_equal 11, AI_sub_81D9CB3 + if_equal 18, AI_sub_81D9CC0 + if_equal 25, AI_sub_81D9CCD + if_equal 26, AI_sub_81D9CD8 + jump AI_sub_81D9CE0 + +AI_sub_81D9CA6:: @ 81D9CA6 + get_type 4 + if_arg_equal 13, AI_sub_81DA436 + jump AI_sub_81D9CE0 + +AI_sub_81D9CB3:: @ 81D9CB3 + get_type 4 + if_arg_equal 11, AI_sub_81DA436 + jump AI_sub_81D9CE0 + +AI_sub_81D9CC0:: @ 81D9CC0 + get_type 4 + if_arg_equal 10, AI_sub_81DA436 + jump AI_sub_81D9CE0 + +AI_sub_81D9CCD:: @ 81D9CCD + if_damage_bonus 80, AI_sub_81D9CE0 + jump AI_sub_81DA433 + +AI_sub_81D9CD8:: @ 81D9CD8 + get_type 4 + if_arg_equal 4, AI_sub_81DA433 + +AI_sub_81D9CE0:: @ 81D9CE0 + get_ability 0 + if_not_equal 43, AI_sub_81D9D27 + if_move 45, AI_sub_81DA433 + if_move 46, AI_sub_81DA433 + if_move 47, AI_sub_81DA433 + if_move 48, AI_sub_81DA433 + if_move 103, AI_sub_81DA433 + if_move 173, AI_sub_81DA433 + if_move 253, AI_sub_81DA433 + if_move 319, AI_sub_81DA433 + if_move 320, AI_sub_81DA433 + +AI_sub_81D9D27:: @ 81D9D27 + if_effect 1, AI_sub_81D9FB6 + if_effect 7, AI_sub_81D9FCF + if_effect 8, AI_sub_81DA008 + if_effect 10, AI_sub_81DA020 + if_effect 11, AI_sub_81DA029 + if_effect 12, AI_sub_81DA032 + if_effect 13, AI_sub_81DA03B + if_effect 14, AI_sub_81DA044 + if_effect 15, AI_sub_81DA04D + if_effect 16, AI_sub_81DA056 + if_effect 18, AI_sub_81DA05F + if_effect 19, AI_sub_81DA074 + if_effect 20, AI_sub_81DA081 + if_effect 21, AI_sub_81DA08E + if_effect 22, AI_sub_81DA09B + if_effect 23, AI_sub_81DA0A8 + if_effect 24, AI_sub_81DA0BD + if_effect 25, AI_sub_81DA0D4 + if_effect 26, AI_sub_81DA1B2 + if_effect 28, AI_sub_81DA14A + if_effect 33, AI_sub_81DA15B + if_effect 35, AI_sub_81DA18A + if_effect 38, AI_sub_81DA195 + if_effect 39, AI_sub_81DA1B2 + if_effect 40, AI_sub_81DA1B2 + if_effect 46, AI_sub_81DA1CC + if_effect 47, AI_sub_81DA1D7 + if_effect 49, AI_sub_81DA1E2 + if_effect 50, AI_sub_81DA020 + if_effect 51, AI_sub_81DA029 + if_effect 52, AI_sub_81DA032 + if_effect 53, AI_sub_81DA03B + if_effect 54, AI_sub_81DA044 + if_effect 55, AI_sub_81DA04D + if_effect 56, AI_sub_81DA056 + if_effect 58, AI_sub_81DA05F + if_effect 59, AI_sub_81DA074 + if_effect 60, AI_sub_81DA081 + if_effect 61, AI_sub_81DA08E + if_effect 62, AI_sub_81DA09B + if_effect 63, AI_sub_81DA0A8 + if_effect 64, AI_sub_81DA0BD + if_effect 65, AI_sub_81DA1F5 + if_effect 66, AI_sub_81DA15B + if_effect 67, AI_sub_81DA200 + if_effect 79, AI_sub_81DA219 + if_effect 80, AI_sub_81DA1B2 + if_effect 84, AI_sub_81DA22B + if_effect 86, AI_sub_81DA246 + if_effect 87, AI_sub_81DA1B2 + if_effect 88, AI_sub_81DA1B2 + if_effect 89, AI_sub_81DA1B2 + if_effect 90, AI_sub_81DA24E + if_effect 92, AI_sub_81DA256 + if_effect 97, AI_sub_81DA256 + if_effect 99, AI_sub_81DA1B2 + if_effect 106, AI_sub_81DA261 + if_effect 107, AI_sub_81D9FF3 + if_effect 108, AI_sub_81DA056 + if_effect 109, AI_sub_81DA26C + if_effect 112, AI_sub_81DA27D + if_effect 113, AI_sub_81DA288 + if_effect 114, AI_sub_81DA293 + if_effect 115, AI_sub_81DA29E + if_effect 118, AI_sub_81DA1E2 + if_effect 120, AI_sub_81DA2A6 + if_effect 121, AI_sub_81DA1B2 + if_effect 122, AI_sub_81DA1B2 + if_effect 123, AI_sub_81DA1B2 + if_effect 124, AI_sub_81DA2E6 + if_effect 126, AI_sub_81DA1AA + if_effect 127, AI_sub_81DA301 + if_effect -126, AI_sub_81DA1B2 + if_effect -120, AI_sub_81DA30A + if_effect -119, AI_sub_81DA312 + if_effect -114, AI_sub_81DA019 + if_effect -113, AI_sub_81DA0D4 + if_effect -112, AI_sub_81DA1B2 + if_effect -111, AI_sub_81DA1B2 + if_effect -108, AI_sub_81DA31A + if_effect -103, AI_sub_81DA433 + if_effect -100, AI_sub_81DA029 + if_effect -98, AI_sub_81DA325 + if_effect -96, AI_sub_81DA32E + if_effect -95, AI_sub_81DA337 + if_effect -94, AI_sub_81DA337 + if_effect -92, AI_sub_81DA346 + if_effect -91, AI_sub_81DA34E + if_effect -90, AI_sub_81DA1E2 + if_effect -89, AI_sub_81DA359 + if_effect -88, AI_sub_81DA2F1 + if_effect -86, AI_sub_81DA1B2 + if_effect -80, AI_sub_81DA37E + if_effect -79, AI_sub_81DA386 + if_effect -75, AI_sub_81DA38F + if_effect -74, AI_sub_81DA1B2 + if_effect -72, AI_sub_81DA39A + if_effect -68, AI_sub_81DA386 + if_effect -67, AI_sub_81DA1B2 + if_effect -64, AI_sub_81DA3A3 + if_effect -63, AI_sub_81DA3AE + if_effect -60, AI_sub_81DA1B2 + if_effect -55, AI_sub_81DA3B9 + if_effect -51, AI_sub_81DA3C4 + if_effect -50, AI_sub_81DA3D5 + if_effect -48, AI_sub_81DA3E6 + if_effect -46, AI_sub_81DA3F7 + if_effect -45, AI_sub_81DA402 + if_effect -44, AI_sub_81DA413 + end + +AI_sub_81D9FB6:: @ 81D9FB6 + get_ability 0 + if_equal 15, AI_sub_81DA433 + if_equal 72, AI_sub_81DA433 + if_status 0, 255, AI_sub_81DA433 + end + +AI_sub_81D9FCF:: @ 81D9FCF + if_damage_bonus 0, AI_sub_81DA433 + get_ability 0 + if_equal 6, AI_sub_81DA433 + count_alive_pokemon 1 + if_not_equal 0, AI_sub_81D9FF2 + count_alive_pokemon 0 + if_not_equal 0, AI_sub_81DA433 + jump AI_sub_81DA424 + +AI_sub_81D9FF2:: @ 81D9FF2 + end + +AI_sub_81D9FF3:: @ 81D9FF3 + if_status2 0, 0x8000000, AI_sub_81DA433 + if_not_status 0, 7, AI_sub_81DA430 + end + +AI_sub_81DA008:: @ 81DA008 + if_not_status 0, 7, AI_sub_81DA430 + if_damage_bonus 0, AI_sub_81DA433 + end + +AI_sub_81DA019:: @ 81DA019 + if_hp_less_than 1, 51, AI_sub_81DA433 + +AI_sub_81DA020:: @ 81DA020 + if_stat_level_equal 1, 1, 12, AI_sub_81DA433 + end + +AI_sub_81DA029:: @ 81DA029 + if_stat_level_equal 1, 2, 12, AI_sub_81DA433 + end + +AI_sub_81DA032:: @ 81DA032 + if_stat_level_equal 1, 3, 12, AI_sub_81DA433 + end + +AI_sub_81DA03B:: @ 81DA03B + if_stat_level_equal 1, 4, 12, AI_sub_81DA433 + end + +AI_sub_81DA044:: @ 81DA044 + if_stat_level_equal 1, 5, 12, AI_sub_81DA433 + end + +AI_sub_81DA04D:: @ 81DA04D + if_stat_level_equal 1, 6, 12, AI_sub_81DA433 + end + +AI_sub_81DA056:: @ 81DA056 + if_stat_level_equal 1, 7, 12, AI_sub_81DA433 + end + +AI_sub_81DA05F:: @ 81DA05F + if_stat_level_equal 0, 1, 0, AI_sub_81DA433 + get_ability 0 + if_equal 52, AI_sub_81DA433 + jump AI_sub_81DA0C5 + +AI_sub_81DA074:: @ 81DA074 + if_stat_level_equal 0, 2, 0, AI_sub_81DA433 + jump AI_sub_81DA0C5 + +AI_sub_81DA081:: @ 81DA081 + if_stat_level_equal 0, 3, 0, AI_sub_81DA433 + jump AI_sub_81DA0C5 + +AI_sub_81DA08E:: @ 81DA08E + if_stat_level_equal 0, 4, 0, AI_sub_81DA433 + jump AI_sub_81DA0C5 + +AI_sub_81DA09B:: @ 81DA09B + if_stat_level_equal 0, 5, 0, AI_sub_81DA433 + jump AI_sub_81DA0C5 + +AI_sub_81DA0A8:: @ 81DA0A8 + if_stat_level_equal 0, 6, 0, AI_sub_81DA433 + get_ability 0 + if_equal 51, AI_sub_81DA433 + jump AI_sub_81DA0C5 + +AI_sub_81DA0BD:: @ 81DA0BD + if_stat_level_equal 0, 7, 0, AI_sub_81DA433 + +AI_sub_81DA0C5:: @ 81DA0C5 + get_ability 0 + if_equal 29, AI_sub_81DA433 + if_equal 73, AI_sub_81DA433 + end + +AI_sub_81DA0D4:: @ 81DA0D4 + if_stat_level_less_than 1, 1, 6, AI_sub_81DA149 + if_stat_level_less_than 1, 2, 6, AI_sub_81DA149 + if_stat_level_less_than 1, 3, 6, AI_sub_81DA149 + if_stat_level_less_than 1, 4, 6, AI_sub_81DA149 + if_stat_level_less_than 1, 5, 6, AI_sub_81DA149 + if_stat_level_less_than 1, 6, 6, AI_sub_81DA149 + if_stat_level_less_than 1, 7, 6, AI_sub_81DA149 + if_stat_level_more_than 0, 1, 6, AI_sub_81DA149 + if_stat_level_more_than 0, 2, 6, AI_sub_81DA149 + if_stat_level_more_than 0, 3, 6, AI_sub_81DA149 + if_stat_level_more_than 0, 4, 6, AI_sub_81DA149 + if_stat_level_more_than 0, 5, 6, AI_sub_81DA149 + if_stat_level_more_than 0, 6, 6, AI_sub_81DA149 + if_stat_level_more_than 0, 7, 6, AI_sub_81DA149 + jump AI_sub_81DA433 + +AI_sub_81DA149:: @ 81DA149 + end + +AI_sub_81DA14A:: @ 81DA14A + count_alive_pokemon 0 + if_equal 0, AI_sub_81DA433 + get_ability 0 + if_equal 21, AI_sub_81DA433 + end + +AI_sub_81DA15B:: @ 81DA15B + get_type 0 + if_equal 8, AI_sub_81DA433 + if_equal 3, AI_sub_81DA433 + get_type 2 + if_equal 8, AI_sub_81DA433 + if_equal 3, AI_sub_81DA433 + get_ability 0 + if_equal 17, AI_sub_81DA433 + if_status 0, 255, AI_sub_81DA433 + end + +AI_sub_81DA18A:: @ 81DA18A + if_status4 1, 2, AI_sub_81DA430 + end + +AI_sub_81DA195:: @ 81DA195 + if_damage_bonus 0, AI_sub_81DA433 + get_ability 0 + if_equal 5, AI_sub_81DA433 + if_level_cond 1, AI_sub_81DA433 + end + +AI_sub_81DA1AA:: @ 81DA1AA + get_ability 0 + if_equal 26, AI_sub_81DA433 + +AI_sub_81DA1B2:: @ 81DA1B2 + if_damage_bonus 0, AI_sub_81DA433 + get_ability 0 + if_not_equal 25, AI_sub_81DA1CB + if_damage_bonus 80, AI_sub_81DA1CB + jump AI_sub_81DA433 + +AI_sub_81DA1CB:: @ 81DA1CB + end + +AI_sub_81DA1CC:: @ 81DA1CC + if_status4 1, 256, AI_sub_81DA430 + end + +AI_sub_81DA1D7:: @ 81DA1D7 + if_status2 1, 1048576, AI_sub_81DA433 + end + +AI_sub_81DA1E2:: @ 81DA1E2 + if_status2 0, 7, AI_sub_81DA42D + get_ability 0 + if_equal 20, AI_sub_81DA433 + end + +AI_sub_81DA1F5:: @ 81DA1F5 + if_status4 1, 1, AI_sub_81DA430 + end + +AI_sub_81DA200:: @ 81DA200 + if_damage_bonus 0, AI_sub_81DA433 + get_ability 0 + if_equal 7, AI_sub_81DA433 + if_status 0, 255, AI_sub_81DA433 + end + +AI_sub_81DA219:: @ 81DA219 + if_status2 1, 16777216, AI_sub_81DA430 + if_hp_less_than 1, 26, AI_sub_81DA433 + end + +AI_sub_81DA22B:: @ 81DA22B + if_status3 0, 4, AI_sub_81DA433 + get_type 0 + if_equal 12, AI_sub_81DA433 + get_type 2 + if_equal 12, AI_sub_81DA433 + end + +AI_sub_81DA246:: @ 81DA246 + if_last_move_did_damage 0, 0, AI_sub_81DA430 + end + +AI_sub_81DA24E:: @ 81DA24E + if_last_move_did_damage 0, 1, AI_sub_81DA430 + end + +AI_sub_81DA256:: @ 81DA256 + if_not_status 1, 7, AI_sub_81DA430 + end + +AI_sub_81DA261:: @ 81DA261 + if_status2 0, 67108864, AI_sub_81DA433 + end + +AI_sub_81DA26C:: @ 81DA26C + if_stat_level_equal 1, 1, 12, AI_sub_81DA433 + if_stat_level_equal 1, 2, 12, AI_sub_81DA430 + end + +AI_sub_81DA27D:: @ 81DA27D + if_status4 0, 16, AI_sub_81DA433 + end + +AI_sub_81DA288:: @ 81DA288 + if_status2 0, 536870912, AI_sub_81DA433 + end + +AI_sub_81DA293:: @ 81DA293 + if_status3 0, 32, AI_sub_81DA433 + end + +AI_sub_81DA29E:: @ 81DA29E + get_weather + if_equal 2, AI_sub_81DA430 + end + +AI_sub_81DA2A6:: @ 81DA2A6 + if_status2 0, 983040, AI_sub_81DA433 + get_ability 0 + if_equal 12, AI_sub_81DA433 + get_gender 1 + if_equal 0, AI_sub_81DA2CB + if_equal -2, AI_sub_81DA2D8 + jump AI_sub_81DA433 + +AI_sub_81DA2CB:: @ 81DA2CB + get_gender 0 + if_equal -2, AI_sub_81DA2E5 + jump AI_sub_81DA433 + +AI_sub_81DA2D8:: @ 81DA2D8 + get_gender 0 + if_equal 0, AI_sub_81DA2E5 + jump AI_sub_81DA433 + +AI_sub_81DA2E5:: @ 81DA2E5 + end + +AI_sub_81DA2E6:: @ 81DA2E6 + if_status4 1, 32, AI_sub_81DA430 + end + +AI_sub_81DA2F1:: @ 81DA2F1 + if_stat_level_equal 0, 1, 0, AI_sub_81DA433 + if_stat_level_equal 0, 4, 0, AI_sub_81DA430 + +AI_sub_81DA301:: @ 81DA301 + count_alive_pokemon 1 + if_equal 0, AI_sub_81DA433 + end + +AI_sub_81DA30A:: @ 81DA30A + get_weather + if_equal 1, AI_sub_81DA430 + end + +AI_sub_81DA312:: @ 81DA312 + get_weather + if_equal 0, AI_sub_81DA430 + end + +AI_sub_81DA31A:: @ 81DA31A + if_status4 0, 64, AI_sub_81DA433 + end + +AI_sub_81DA325:: @ 81DA325 + is_first_turn 1 + if_equal 0, AI_sub_81DA433 + end + +AI_sub_81DA32E:: @ 81DA32E + get_stockpile_count 1 + if_equal 3, AI_sub_81DA433 + end + +AI_sub_81DA337:: @ 81DA337 + if_damage_bonus 0, AI_sub_81DA433 + get_stockpile_count 1 + if_equal 0, AI_sub_81DA433 + end + +AI_sub_81DA346:: @ 81DA346 + get_weather + if_equal 3, AI_sub_81DA430 + end + +AI_sub_81DA34E:: @ 81DA34E + if_status2 0, -2147483648, AI_sub_81DA433 + end + +AI_sub_81DA359:: @ 81DA359 + get_ability 0 + if_equal 41, AI_sub_81DA433 + if_status 0, 255, AI_sub_81DA433 + if_damage_bonus 0, AI_sub_81DA433 + if_damage_bonus 20, AI_sub_81DA433 + if_damage_bonus 10, AI_sub_81DA433 + end + +AI_sub_81DA37E:: @ 81DA37E + is_double_battle + if_equal 0, AI_sub_81DA433 + end + +AI_sub_81DA386:: @ 81DA386 + get_ability 0 + if_equal 60, AI_sub_81DA433 + end + +AI_sub_81DA38F:: @ 81DA38F + if_status3 1, 1024, AI_sub_81DA433 + end + +AI_sub_81DA39A:: @ 81DA39A + get_item 1 + if_equal 0, AI_sub_81DA433 + end + +AI_sub_81DA3A3:: @ 81DA3A3 + if_status3 1, 8192, AI_sub_81DA433 + end + +AI_sub_81DA3AE:: @ 81DA3AE + if_not_status 1, 216, AI_sub_81DA433 + end + +AI_sub_81DA3B9:: @ 81DA3B9 + if_status3 1, 65536, AI_sub_81DA433 + end + +AI_sub_81DA3C4:: @ 81DA3C4 + if_stat_level_equal 0, 1, 0, AI_sub_81DA433 + if_stat_level_equal 0, 2, 0, AI_sub_81DA430 + end + +AI_sub_81DA3D5:: @ 81DA3D5 + if_stat_level_equal 1, 2, 12, AI_sub_81DA433 + if_stat_level_equal 1, 5, 12, AI_sub_81DA430 + end + +AI_sub_81DA3E6:: @ 81DA3E6 + if_stat_level_equal 1, 1, 12, AI_sub_81DA433 + if_stat_level_equal 1, 2, 12, AI_sub_81DA430 + end + +AI_sub_81DA3F7:: @ 81DA3F7 + if_status3 1, 131072, AI_sub_81DA433 + end + +AI_sub_81DA402:: @ 81DA402 + if_stat_level_equal 1, 4, 12, AI_sub_81DA433 + if_stat_level_equal 1, 5, 12, AI_sub_81DA430 + end + +AI_sub_81DA413:: @ 81DA413 + if_stat_level_equal 1, 1, 12, AI_sub_81DA433 + if_stat_level_equal 1, 3, 12, AI_sub_81DA430 + end + +AI_sub_81DA424:: @ 81DA424 + score -1 + end + +AI_sub_81DA427:: @ 81DA427 + score -2 + end + +AI_sub_81DA42A:: @ 81DA42A + score -3 + end + +AI_sub_81DA42D:: @ 81DA42D + score -5 + end + +AI_sub_81DA430:: @ 81DA430 + score -8 + end + +AI_sub_81DA433:: @ 81DA433 + score -10 + end + +AI_sub_81DA436:: @ 81DA436 + score -12 + end + score 1 + end + score 2 + end + score 3 + end + score 5 + end + +AI_TryToFaint:: @ 81DA445 + if_effect 1, AI_sub_81DA71C + if_effect 3, AI_sub_81DA738 + if_effect 7, AI_sub_81DA752 + if_effect 8, AI_sub_81DA7B0 + if_effect 9, AI_sub_81DA7C4 + if_effect 10, AI_sub_81DA848 + if_effect 11, AI_sub_81DA883 + if_effect 12, AI_sub_81DA8E9 + if_effect 13, AI_sub_81DA8FF + if_effect 14, AI_sub_81DA93A + if_effect 15, AI_sub_81DA9A0 + if_effect 16, AI_sub_81DA9BA + if_effect 17, AI_sub_81DAA54 + if_effect 18, AI_sub_81DAA84 + if_effect 19, AI_sub_81DAAD6 + if_effect 20, AI_sub_81DAB0D + if_effect 21, AI_sub_81DAB23 + if_effect 22, AI_sub_81DAB77 + if_effect 23, AI_sub_81DAB98 + if_effect 24, AI_sub_81DAC2C + if_effect 25, AI_sub_81DAC4D + if_effect 26, AI_sub_81DAD10 + if_effect 28, AI_sub_81DAD1A + if_effect 30, AI_sub_81DAD52 + if_effect 32, AI_sub_81DAD83 + if_effect 33, AI_sub_81DADDC + if_effect 35, AI_sub_81DAE1B + if_effect 37, AI_sub_81DAE4A + if_effect 38, AI_sub_81DAEAA + if_effect 39, AI_sub_81DB645 + if_effect 40, AI_sub_81DAEAB + if_effect 42, AI_sub_81DAEB5 + if_effect 43, AI_sub_81DAEEB + if_effect 49, AI_sub_81DAF1A + if_effect 50, AI_sub_81DA848 + if_effect 51, AI_sub_81DA883 + if_effect 52, AI_sub_81DA8E9 + if_effect 53, AI_sub_81DA8FF + if_effect 54, AI_sub_81DA93A + if_effect 55, AI_sub_81DA9A0 + if_effect 56, AI_sub_81DA9BA + if_effect 58, AI_sub_81DAA84 + if_effect 59, AI_sub_81DAAD6 + if_effect 60, AI_sub_81DAB0D + if_effect 61, AI_sub_81DAB23 + if_effect 62, AI_sub_81DAB77 + if_effect 63, AI_sub_81DAB98 + if_effect 64, AI_sub_81DAC2C + if_effect 65, AI_sub_81DAF3C + if_effect 66, AI_sub_81DAF6C + if_effect 67, AI_sub_81DAF7D + if_effect 70, AI_sub_81DAAF7 + if_effect 75, AI_sub_81DB645 + if_effect 78, AI_sub_81DAF9A + if_effect 79, AI_sub_81DAFBD + if_effect 80, AI_sub_81DB053 + if_effect 84, AI_sub_81DADDC + if_effect 86, AI_sub_81DB07B + if_effect 89, AI_sub_81DB09A + if_effect 90, AI_sub_81DB13B + if_effect 91, AI_sub_81DB1A3 + if_effect 92, AI_sub_81DB1CF + if_effect 94, AI_sub_81DB1D2 + if_effect 97, AI_sub_81DB1DB + if_effect 98, AI_sub_81DB1DE + if_effect 99, AI_sub_81DB214 + if_effect 102, AI_sub_81DB259 + if_effect 105, AI_sub_81DB270 + if_effect 106, AI_sub_81DAEB5 + if_effect 108, AI_sub_81DA9BA + if_effect 109, AI_sub_81DB293 + if_effect 111, AI_sub_81DB2E2 + if_effect 113, AI_sub_81DB3A3 + if_effect 116, AI_sub_81DB3D1 + if_effect 127, AI_sub_81DB3EF + if_effect -128, AI_sub_81DB48B + if_effect -124, AI_sub_81DAD69 + if_effect -123, AI_sub_81DAD69 + if_effect -122, AI_sub_81DAD69 + if_effect -120, AI_sub_81DB4C1 + if_effect -119, AI_sub_81DB500 + if_effect -114, AI_sub_81DB529 + if_effect -113, AI_sub_81DB538 + if_effect -112, AI_sub_81DB5A5 + if_effect -111, AI_sub_81DB645 + if_effect -105, AI_sub_81DB645 + if_effect -101, AI_sub_81DB669 + if_effect -99, AI_sub_81DAD83 + if_effect -98, AI_sub_81DB6F3 + if_effect -95, AI_sub_81DB6F6 + if_effect -94, AI_sub_81DAD83 + if_effect -92, AI_sub_81DB707 + if_effect -90, AI_sub_81DAF12 + if_effect -88, AI_sub_81DA752 + if_effect -87, AI_sub_81DB730 + if_effect -86, AI_sub_81DB73D + if_effect -85, AI_sub_81DB78C + if_effect -79, AI_sub_81DB79E + if_effect -78, AI_sub_81DB7E9 + if_effect -74, AI_sub_81DB820 + if_effect -73, AI_sub_81DB850 + if_effect -72, AI_sub_81DB883 + if_effect -71, AI_sub_81DB8A2 + if_effect -70, AI_sub_81DB8D0 + if_effect -68, AI_sub_81DB8E2 + if_effect -67, AI_sub_81DB8FA + if_effect -66, AI_sub_81DB926 + if_effect -65, AI_sub_81DB7E9 + if_effect -64, AI_sub_81DB94E + if_effect -63, AI_sub_81DB95F + if_effect -61, AI_sub_81DB96E + if_effect -56, AI_sub_81DAEEB + if_effect -55, AI_sub_81DB9D8 + if_effect -52, AI_sub_81DB9FE + if_effect -51, AI_sub_81DAAD6 + if_effect -50, AI_sub_81DA93A + if_effect -48, AI_sub_81DA883 + if_effect -47, AI_sub_81DAEEB + if_effect -46, AI_sub_81DBA26 + if_effect -45, AI_sub_81DA93A + if_effect -44, AI_sub_81DBA4C + end + +AI_sub_81DA71C:: @ 81DA71C + if_move_effect 0, 8, AI_sub_81DA72F + if_move_effect 0, 107, AI_sub_81DA72F + jump AI_sub_81DA737 + +AI_sub_81DA72F:: @ 81DA72F + if_random_less_than -128, AI_sub_81DA737 + score 1 + +AI_sub_81DA737:: @ 81DA737 + end + +AI_sub_81DA738:: @ 81DA738 + if_damage_bonus 20, AI_sub_81DA749 + if_damage_bonus 10, AI_sub_81DA749 + jump AI_sub_81DA751 + +AI_sub_81DA749:: @ 81DA749 + if_random_less_than 50, AI_sub_81DA751 + score -3 + +AI_sub_81DA751:: @ 81DA751 + end + +AI_sub_81DA752:: @ 81DA752 + if_stat_level_less_than 0, 7, 7, AI_sub_81DA76C + score -1 + if_stat_level_less_than 0, 7, 10, AI_sub_81DA76C + if_random_less_than -128, AI_sub_81DA76C + score -1 + +AI_sub_81DA76C:: @ 81DA76C + if_hp_less_than 1, 80, AI_sub_81DA784 + if_would_go_first 1, AI_sub_81DA784 + if_random_less_than 50, AI_sub_81DA7AF + jump AI_sub_81DA42A + +AI_sub_81DA784:: @ 81DA784 + if_hp_more_than 1, 50, AI_sub_81DA7A7 + if_random_less_than -128, AI_sub_81DA793 + score 1 + +AI_sub_81DA793:: @ 81DA793 + if_hp_more_than 1, 30, AI_sub_81DA7AF + if_random_less_than 50, AI_sub_81DA7AF + score 1 + jump AI_sub_81DA7AF + +AI_sub_81DA7A7:: @ 81DA7A7 + if_random_less_than 50, AI_sub_81DA7AF + score -1 + +AI_sub_81DA7AF:: @ 81DA7AF + end + +AI_sub_81DA7B0:: @ 81DA7B0 + if_damage_bonus 10, AI_sub_81DA7C1 + if_damage_bonus 20, AI_sub_81DA7C1 + jump AI_sub_81DA7C3 + +AI_sub_81DA7C1:: @ 81DA7C1 + score -1 + +AI_sub_81DA7C3:: @ 81DA7C3 + end + +AI_sub_81DA7C4:: @ 81DA7C4 + if_would_go_first 1, AI_sub_81DA7E2 + get_move 0 + if_not_in_words AI_words_81DA7F8, AI_sub_81DA7E2 + if_random_less_than -128, AI_sub_81DA7F5 + score 2 + jump AI_sub_81DA7F5 + +AI_sub_81DA7E2:: @ 81DA7E2 + get_move 0 + if_in_words AI_words_81DA7F8, AI_sub_81DA7F5 + if_random_less_than 80, AI_sub_81DA7F5 + score -1 + +AI_sub_81DA7F5:: @ 81DA7F5 + end + .space 2 + +AI_words_81DA7F8:: @ 81DA7F8 + .align 1 + .2byte 0x4F + .2byte 0x8E + .2byte 0x93 + .2byte 0x5F + .2byte 0x2F + .2byte 0x140 + .2byte 0x145 + .2byte 0x1C + .2byte 0x6C + .2byte 0x5C + .2byte 0xC + .2byte 0x20 + .2byte 0x5A + .2byte 0x149 + .2byte 0xEE + .2byte 0xB1 + .2byte 0x6D + .2byte 0xBA + .2byte 0x67 + .2byte 0xB2 + .2byte 0xB8 + .2byte 0x139 + .2byte 0x13F + .2byte 0x56 + .2byte 0x89 + .2byte 0x4D + .2byte 0xF7 + .2byte 0xDF + .2byte 0x3F + .2byte 0xF5 + .2byte 0xA8 + .2byte 0x157 + .2byte 0xD5 + .2byte 0xCF + .2byte 0x103 + .2byte 0x104 + .2byte 0x10F + .2byte 0x114 + .2byte 0x11D + .2byte 0xFFFF + +AI_sub_81DA848:: @ 81DA848 + if_stat_level_less_than 1, 1, 9, AI_sub_81DA85D + if_random_less_than 100, AI_sub_81DA86C + score -1 + jump AI_sub_81DA86C + +AI_sub_81DA85D:: @ 81DA85D + if_hp_not_equal 1, 100, AI_sub_81DA86C + if_random_less_than -128, AI_sub_81DA86C + score 2 + +AI_sub_81DA86C:: @ 81DA86C + if_hp_more_than 1, 70, AI_sub_81DA882 + if_hp_less_than 1, 40, AI_sub_81DA880 + if_random_less_than 40, AI_sub_81DA882 + +AI_sub_81DA880:: @ 81DA880 + score -2 + +AI_sub_81DA882:: @ 81DA882 + end + +AI_sub_81DA883:: @ 81DA883 + if_stat_level_less_than 1, 2, 9, AI_sub_81DA898 + if_random_less_than 100, AI_sub_81DA8A7 + score -1 + jump AI_sub_81DA8A7 + +AI_sub_81DA898:: @ 81DA898 + if_hp_not_equal 1, 100, AI_sub_81DA8A7 + if_random_less_than -128, AI_sub_81DA8A7 + score 2 + +AI_sub_81DA8A7:: @ 81DA8A7 + if_hp_less_than 1, 70, AI_sub_81DA8B4 + if_random_less_than -56, AI_sub_81DA8DE + +AI_sub_81DA8B4:: @ 81DA8B4 + if_hp_less_than 1, 40, AI_sub_81DA8DC + get_move 0 + get_move_power_from_result + if_equal 0, AI_sub_81DA8D6 + get_move 0 + get_move_type_from_result + if_not_in_bytes AI_bytes_81DA8DF, AI_sub_81DA8DC + if_random_less_than 60, AI_sub_81DA8DE + +AI_sub_81DA8D6:: @ 81DA8D6 + if_random_less_than 60, AI_sub_81DA8DE + +AI_sub_81DA8DC:: @ 81DA8DC + score -2 + +AI_sub_81DA8DE:: @ 81DA8DE + end + +AI_bytes_81DA8DF:: @ 81DA8DF + .byte 0 + .byte 1 + .byte 3 + .byte 4 + .byte 2 + .byte 5 + .byte 6 + .byte 7 + .byte 8 + .byte 0xFF + +AI_sub_81DA8E9:: @ 81DA8E9 + if_would_go_first 1, AI_sub_81DA8F6 + score -3 + jump AI_sub_81DA8FE + +AI_sub_81DA8F6:: @ 81DA8F6 + if_random_less_than 70, AI_sub_81DA8FE + score 3 + +AI_sub_81DA8FE:: @ 81DA8FE + end + +AI_sub_81DA8FF:: @ 81DA8FF + if_stat_level_less_than 1, 4, 9, AI_sub_81DA914 + if_random_less_than 100, AI_sub_81DA923 + score -1 + jump AI_sub_81DA923 + +AI_sub_81DA914:: @ 81DA914 + if_hp_not_equal 1, 100, AI_sub_81DA923 + if_random_less_than -128, AI_sub_81DA923 + score 2 + +AI_sub_81DA923:: @ 81DA923 + if_hp_more_than 1, 70, AI_sub_81DA939 + if_hp_less_than 1, 40, AI_sub_81DA937 + if_random_less_than 70, AI_sub_81DA939 + +AI_sub_81DA937:: @ 81DA937 + score -2 + +AI_sub_81DA939:: @ 81DA939 + end + +AI_sub_81DA93A:: @ 81DA93A + if_stat_level_less_than 1, 5, 9, AI_sub_81DA94F + if_random_less_than 100, AI_sub_81DA95E + score -1 + jump AI_sub_81DA95E + +AI_sub_81DA94F:: @ 81DA94F + if_hp_not_equal 1, 100, AI_sub_81DA95E + if_random_less_than -128, AI_sub_81DA95E + score 2 + +AI_sub_81DA95E:: @ 81DA95E + if_hp_less_than 1, 70, AI_sub_81DA96B + if_random_less_than -56, AI_sub_81DA995 + +AI_sub_81DA96B:: @ 81DA96B + if_hp_less_than 1, 40, AI_sub_81DA993 + get_move 0 + get_move_power_from_result + if_equal 0, AI_sub_81DA98D + get_move 0 + get_move_type_from_result + if_in_bytes AI_bytes_81DA996, AI_sub_81DA993 + if_random_less_than 60, AI_sub_81DA995 + +AI_sub_81DA98D:: @ 81DA98D + if_random_less_than 60, AI_sub_81DA995 + +AI_sub_81DA993:: @ 81DA993 + score -2 + +AI_sub_81DA995:: @ 81DA995 + end + +AI_bytes_81DA996:: @ 81DA996 + .byte 0 + .byte 1 + .byte 3 + .byte 4 + .byte 2 + .byte 5 + .byte 6 + .byte 7 + .byte 8 + .byte 0xFF + +AI_sub_81DA9A0:: @ 81DA9A0 + if_stat_level_less_than 1, 6, 9, AI_sub_81DA9B0 + if_random_less_than 50, AI_sub_81DA9B0 + score -2 + +AI_sub_81DA9B0:: @ 81DA9B0 + if_hp_more_than 1, 70, AI_sub_81DA9B9 + score -2 + +AI_sub_81DA9B9:: @ 81DA9B9 + end + +AI_sub_81DA9BA:: @ 81DA9BA + if_hp_less_than 1, 90, AI_sub_81DA9C9 + if_random_less_than 100, AI_sub_81DA9C9 + score 3 + +AI_sub_81DA9C9:: @ 81DA9C9 + if_stat_level_less_than 1, 7, 9, AI_sub_81DA9D9 + if_random_less_than -128, AI_sub_81DA9D9 + score -1 + +AI_sub_81DA9D9:: @ 81DA9D9 + if_not_status 0, 128, AI_sub_81DA9F8 + if_hp_more_than 1, 50, AI_sub_81DA9F0 + if_random_less_than 80, AI_sub_81DA9F8 + +AI_sub_81DA9F0:: @ 81DA9F0 + if_random_less_than 50, AI_sub_81DA9F8 + score 3 + +AI_sub_81DA9F8:: @ 81DA9F8 + if_not_status3 0, 4, AI_sub_81DAA0A + if_random_less_than 70, AI_sub_81DAA0A + score 3 + +AI_sub_81DAA0A:: @ 81DAA0A + if_not_status3 1, 1024, AI_sub_81DAA1C + if_random_less_than -128, AI_sub_81DAA1C + score 2 + +AI_sub_81DAA1C:: @ 81DAA1C + if_not_status2 0, 268435456, AI_sub_81DAA2E + if_random_less_than 70, AI_sub_81DAA2E + score 3 + +AI_sub_81DAA2E:: @ 81DAA2E + if_hp_more_than 1, 70, AI_sub_81DAA53 + if_stat_level_equal 1, 7, 6, AI_sub_81DAA53 + if_hp_less_than 1, 40, AI_sub_81DAA51 + if_hp_less_than 0, 40, AI_sub_81DAA51 + if_random_less_than 70, AI_sub_81DAA53 + +AI_sub_81DAA51:: @ 81DAA51 + score -2 + +AI_sub_81DAA53:: @ 81DAA53 + end + +AI_sub_81DAA54:: @ 81DAA54 + if_stat_level_more_than 0, 7, 10, AI_sub_81DAA79 + if_stat_level_less_than 1, 6, 2, AI_sub_81DAA79 + if_stat_level_more_than 0, 7, 8, AI_sub_81DAA7B + if_stat_level_less_than 1, 6, 4, AI_sub_81DAA7B + jump AI_sub_81DAA83 + +AI_sub_81DAA79:: @ 81DAA79 + score 1 + +AI_sub_81DAA7B:: @ 81DAA7B + if_random_less_than 100, AI_sub_81DAA83 + score 1 + +AI_sub_81DAA83:: @ 81DAA83 + end + +AI_sub_81DAA84:: @ 81DAA84 + if_stat_level_equal 0, 1, 6, AI_sub_81DAAA7 + score -1 + if_hp_more_than 1, 90, AI_sub_81DAA97 + score -1 + +AI_sub_81DAA97:: @ 81DAA97 + if_stat_level_more_than 0, 1, 3, AI_sub_81DAAA7 + if_random_less_than 50, AI_sub_81DAAA7 + score -2 + +AI_sub_81DAAA7:: @ 81DAAA7 + if_hp_more_than 0, 70, AI_sub_81DAAB0 + score -2 + +AI_sub_81DAAB0:: @ 81DAAB0 + get_type 0 + if_in_bytes AI_bytes_81DAACF, AI_sub_81DAACE + get_type 2 + if_in_bytes AI_bytes_81DAACF, AI_sub_81DAACE + if_random_less_than 50, AI_sub_81DAACE + score -2 + +AI_sub_81DAACE:: @ 81DAACE + end + +AI_bytes_81DAACF:: @ 81DAACF + .byte 0 + .byte 1 + .byte 4 + .byte 5 + .byte 6 + .byte 8 + .byte 0xFF + +AI_sub_81DAAD6:: @ 81DAAD6 + if_hp_less_than 1, 70, AI_sub_81DAAE5 + if_stat_level_more_than 0, 2, 3, AI_sub_81DAAED + +AI_sub_81DAAE5:: @ 81DAAE5 + if_random_less_than 50, AI_sub_81DAAED + score -2 + +AI_sub_81DAAED:: @ 81DAAED + if_hp_more_than 0, 70, AI_sub_81DAAF6 + score -2 + +AI_sub_81DAAF6:: @ 81DAAF6 + end + +AI_sub_81DAAF7:: @ 81DAAF7 + if_move 196, AI_sub_81DAB0D + if_move 317, AI_sub_81DAB0D + if_move 341, AI_sub_81DAB0D + end + +AI_sub_81DAB0D:: @ 81DAB0D + if_would_go_first 1, AI_sub_81DAB1A + score -3 + jump AI_sub_81DAB22 + +AI_sub_81DAB1A:: @ 81DAB1A + if_random_less_than 70, AI_sub_81DAB22 + score 2 + +AI_sub_81DAB22:: @ 81DAB22 + end + +AI_sub_81DAB23:: @ 81DAB23 + if_stat_level_equal 0, 1, 6, AI_sub_81DAB46 + score -1 + if_hp_more_than 1, 90, AI_sub_81DAB36 + score -1 + +AI_sub_81DAB36:: @ 81DAB36 + if_stat_level_more_than 0, 4, 3, AI_sub_81DAB46 + if_random_less_than 50, AI_sub_81DAB46 + score -2 + +AI_sub_81DAB46:: @ 81DAB46 + if_hp_more_than 0, 70, AI_sub_81DAB4F + score -2 + +AI_sub_81DAB4F:: @ 81DAB4F + get_type 0 + if_in_bytes AI_bytes_81DAB6E, AI_sub_81DAB6D + get_type 2 + if_in_bytes AI_bytes_81DAB6E, AI_sub_81DAB6D + if_random_less_than 50, AI_sub_81DAB6D + score -2 + +AI_sub_81DAB6D:: @ 81DAB6D + end + +AI_bytes_81DAB6E:: @ 81DAB6E + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 14 + .byte 15 + .byte 16 + .byte 17 + .byte 0xFF + +AI_sub_81DAB77:: @ 81DAB77 + if_hp_less_than 1, 70, AI_sub_81DAB86 + if_stat_level_more_than 0, 5, 3, AI_sub_81DAB8E + +AI_sub_81DAB86:: @ 81DAB86 + if_random_less_than 50, AI_sub_81DAB8E + score -2 + +AI_sub_81DAB8E:: @ 81DAB8E + if_hp_more_than 0, 70, AI_sub_81DAB97 + score -2 + +AI_sub_81DAB97:: @ 81DAB97 + end + +AI_sub_81DAB98:: @ 81DAB98 + if_hp_less_than 1, 70, AI_sub_81DABA6 + if_hp_more_than 0, 70, AI_sub_81DABAE + +AI_sub_81DABA6:: @ 81DABA6 + if_random_less_than 100, AI_sub_81DABAE + score -1 + +AI_sub_81DABAE:: @ 81DABAE + if_stat_level_more_than 1, 6, 4, AI_sub_81DABBE + if_random_less_than 80, AI_sub_81DABBE + score -2 + +AI_sub_81DABBE:: @ 81DABBE + if_not_status 0, 128, AI_sub_81DABD0 + if_random_less_than 70, AI_sub_81DABD0 + score 2 + +AI_sub_81DABD0:: @ 81DABD0 + if_not_status3 0, 4, AI_sub_81DABE2 + if_random_less_than 70, AI_sub_81DABE2 + score 2 + +AI_sub_81DABE2:: @ 81DABE2 + if_not_status3 1, 1024, AI_sub_81DABF4 + if_random_less_than -128, AI_sub_81DABF4 + score 1 + +AI_sub_81DABF4:: @ 81DABF4 + if_not_status2 0, 268435456, AI_sub_81DAC06 + if_random_less_than 70, AI_sub_81DAC06 + score 2 + +AI_sub_81DAC06:: @ 81DAC06 + if_hp_more_than 1, 70, AI_sub_81DAC2B + if_stat_level_equal 0, 6, 6, AI_sub_81DAC2B + if_hp_less_than 1, 40, AI_sub_81DAC29 + if_hp_less_than 0, 40, AI_sub_81DAC29 + if_random_less_than 70, AI_sub_81DAC2B + +AI_sub_81DAC29:: @ 81DAC29 + score -2 + +AI_sub_81DAC2B:: @ 81DAC2B + end + +AI_sub_81DAC2C:: @ 81DAC2C + if_hp_less_than 1, 70, AI_sub_81DAC3B + if_stat_level_more_than 0, 7, 3, AI_sub_81DAC43 + +AI_sub_81DAC3B:: @ 81DAC3B + if_random_less_than 50, AI_sub_81DAC43 + score -2 + +AI_sub_81DAC43:: @ 81DAC43 + if_hp_more_than 0, 70, AI_sub_81DAC4C + score -2 + +AI_sub_81DAC4C:: @ 81DAC4C + end + +AI_sub_81DAC4D:: @ 81DAC4D + if_stat_level_more_than 1, 1, 8, AI_sub_81DACA2 + if_stat_level_more_than 1, 2, 8, AI_sub_81DACA2 + if_stat_level_more_than 1, 4, 8, AI_sub_81DACA2 + if_stat_level_more_than 1, 5, 8, AI_sub_81DACA2 + if_stat_level_more_than 1, 7, 8, AI_sub_81DACA2 + if_stat_level_less_than 0, 1, 4, AI_sub_81DACA2 + if_stat_level_less_than 0, 2, 4, AI_sub_81DACA2 + if_stat_level_less_than 0, 4, 4, AI_sub_81DACA2 + if_stat_level_less_than 0, 5, 4, AI_sub_81DACA2 + if_stat_level_less_than 0, 6, 4, AI_sub_81DACA2 + jump AI_sub_81DACAA + +AI_sub_81DACA2:: @ 81DACA2 + if_random_less_than 50, AI_sub_81DACAA + score -3 + +AI_sub_81DACAA:: @ 81DACAA + if_stat_level_more_than 0, 1, 8, AI_sub_81DAD07 + if_stat_level_more_than 0, 2, 8, AI_sub_81DAD07 + if_stat_level_more_than 0, 4, 8, AI_sub_81DAD07 + if_stat_level_more_than 0, 5, 8, AI_sub_81DAD07 + if_stat_level_more_than 0, 7, 8, AI_sub_81DAD07 + if_stat_level_less_than 1, 1, 4, AI_sub_81DAD07 + if_stat_level_less_than 1, 2, 4, AI_sub_81DAD07 + if_stat_level_less_than 1, 4, 4, AI_sub_81DAD07 + if_stat_level_less_than 1, 5, 4, AI_sub_81DAD07 + if_stat_level_less_than 1, 6, 4, AI_sub_81DAD07 + if_random_less_than 50, AI_sub_81DAD0F + score -1 + jump AI_sub_81DAD0F + +AI_sub_81DAD07:: @ 81DAD07 + if_random_less_than 50, AI_sub_81DAD0F + score 3 + +AI_sub_81DAD0F:: @ 81DAD0F + end + +AI_sub_81DAD10:: @ 81DAD10 + if_hp_more_than 1, 90, AI_sub_81DAD19 + score -2 + +AI_sub_81DAD19:: @ 81DAD19 + end + +AI_sub_81DAD1A:: @ 81DAD1A + if_stat_level_more_than 0, 1, 8, AI_sub_81DAD49 + if_stat_level_more_than 0, 2, 8, AI_sub_81DAD49 + if_stat_level_more_than 0, 4, 8, AI_sub_81DAD49 + if_stat_level_more_than 0, 5, 8, AI_sub_81DAD49 + if_stat_level_more_than 0, 7, 8, AI_sub_81DAD49 + score -3 + jump AI_sub_81DAD51 + +AI_sub_81DAD49:: @ 81DAD49 + if_random_less_than -128, AI_sub_81DAD51 + score 2 + +AI_sub_81DAD51:: @ 81DAD51 + end + +AI_sub_81DAD52:: @ 81DAD52 + if_hp_more_than 1, 90, AI_sub_81DAD5B + score -2 + +AI_sub_81DAD5B:: @ 81DAD5B + get_turn_count + if_equal 0, AI_sub_81DAD68 + if_random_less_than -56, AI_sub_81DA427 + +AI_sub_81DAD68:: @ 81DAD68 + end + +AI_sub_81DAD69:: @ 81DAD69 + get_weather + if_equal 3, AI_sub_81DAD81 + if_equal 1, AI_sub_81DAD81 + if_equal 2, AI_sub_81DAD81 + jump AI_sub_81DAD83 + +AI_sub_81DAD81:: @ 81DAD81 + score -2 + +AI_sub_81DAD83:: @ 81DAD83 + if_hp_equal 1, 100, AI_sub_81DADAB + if_would_go_first 1, AI_sub_81DADB2 + score -8 + jump AI_sub_81DADDB + if_hp_less_than 1, 50, AI_sub_81DADC6 + if_hp_more_than 1, 80, AI_sub_81DADAB + if_random_less_than 70, AI_sub_81DADC6 + +AI_sub_81DADAB:: @ 81DADAB + score -3 + jump AI_sub_81DADDB + +AI_sub_81DADB2:: @ 81DADB2 + if_hp_less_than 1, 70, AI_sub_81DADC6 + if_random_less_than 30, AI_sub_81DADC6 + score -3 + jump AI_sub_81DADDB + +AI_sub_81DADC6:: @ 81DADC6 + if_not_move_effect 0, -61, AI_sub_81DADD3 + if_random_less_than 100, AI_sub_81DADDB + +AI_sub_81DADD3:: @ 81DADD3 + if_random_less_than 20, AI_sub_81DADDB + score 2 + +AI_sub_81DADDB:: @ 81DADDB + end + +AI_sub_81DADDC:: @ 81DADDC + if_user_cant_damage AI_sub_81DADFF + if_hp_more_than 1, 50, AI_sub_81DADF0 + if_random_less_than 50, AI_sub_81DADF0 + score -3 + +AI_sub_81DADF0:: @ 81DADF0 + if_hp_more_than 0, 50, AI_sub_81DADFF + if_random_less_than 50, AI_sub_81DADFF + score -3 + +AI_sub_81DADFF:: @ 81DADFF + if_move_effect 1, 14, AI_sub_81DAE12 + if_move_effect 1, 111, AI_sub_81DAE12 + jump AI_sub_81DAE1A + +AI_sub_81DAE12:: @ 81DAE12 + if_random_less_than 60, AI_sub_81DAE1A + score 2 + +AI_sub_81DAE1A:: @ 81DAE1A + end + +AI_sub_81DAE1B:: @ 81DAE1B + if_hp_less_than 1, 50, AI_sub_81DAE3E + get_type 0 + if_in_bytes AI_bytes_81DAE41, AI_sub_81DAE40 + get_type 2 + if_in_bytes AI_bytes_81DAE41, AI_sub_81DAE40 + if_random_less_than 50, AI_sub_81DAE40 + +AI_sub_81DAE3E:: @ 81DAE3E + score -2 + +AI_sub_81DAE40:: @ 81DAE40 + end + +AI_bytes_81DAE41:: @ 81DAE41 + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 14 + .byte 15 + .byte 16 + .byte 17 + .byte 0xFF + +AI_sub_81DAE4A:: @ 81DAE4A + if_would_go_first 1, AI_sub_81DAE79 + if_hp_not_equal 1, 100, AI_sub_81DAE5E + score -8 + jump AI_sub_81DAEA9 + +AI_sub_81DAE5E:: @ 81DAE5E + if_hp_less_than 1, 40, AI_sub_81DAE94 + if_hp_more_than 1, 50, AI_sub_81DAE72 + if_random_less_than 70, AI_sub_81DAE94 + +AI_sub_81DAE72:: @ 81DAE72 + score -3 + jump AI_sub_81DAEA9 + +AI_sub_81DAE79:: @ 81DAE79 + if_hp_less_than 1, 60, AI_sub_81DAE94 + if_hp_more_than 1, 70, AI_sub_81DAE8D + if_random_less_than 50, AI_sub_81DAE94 + +AI_sub_81DAE8D:: @ 81DAE8D + score -3 + jump AI_sub_81DAEA9 + +AI_sub_81DAE94:: @ 81DAE94 + if_not_move_effect 0, -61, AI_sub_81DAEA1 + if_random_less_than 50, AI_sub_81DAEA9 + +AI_sub_81DAEA1:: @ 81DAEA1 + if_random_less_than 10, AI_sub_81DAEA9 + score 3 + +AI_sub_81DAEA9:: @ 81DAEA9 + end + +AI_sub_81DAEAA:: @ 81DAEAA + end + +AI_sub_81DAEAB:: @ 81DAEAB + if_hp_more_than 0, 50, AI_sub_81DAEB4 + score -1 + +AI_sub_81DAEB4:: @ 81DAEB4 + end + +AI_sub_81DAEB5:: @ 81DAEB5 + if_status 0, 128, AI_sub_81DAEE2 + if_status2 0, 268435456, AI_sub_81DAEE2 + if_status3 0, 32, AI_sub_81DAEE2 + if_status2 0, 983040, AI_sub_81DAEE2 + jump AI_sub_81DAEEA + +AI_sub_81DAEE2:: @ 81DAEE2 + if_random_less_than -128, AI_sub_81DAEEA + score 1 + +AI_sub_81DAEEA:: @ 81DAEEA + end + +AI_sub_81DAEEB:: @ 81DAEEB + if_damage_bonus 10, AI_sub_81DAF11 + if_damage_bonus 20, AI_sub_81DAF11 + if_damage_bonus 80, AI_sub_81DAF09 + if_damage_bonus -96, AI_sub_81DAF09 + if_random_less_than -128, AI_sub_81DAF11 + +AI_sub_81DAF09:: @ 81DAF09 + if_random_less_than -128, AI_sub_81DAF11 + score 1 + +AI_sub_81DAF11:: @ 81DAF11 + end + +AI_sub_81DAF12:: @ 81DAF12 + if_random_less_than -128, AI_sub_81DAF1A + score 1 + +AI_sub_81DAF1A:: @ 81DAF1A + if_hp_more_than 0, 70, AI_sub_81DAF3B + if_random_less_than -128, AI_sub_81DAF29 + score -1 + +AI_sub_81DAF29:: @ 81DAF29 + if_hp_more_than 0, 50, AI_sub_81DAF3B + score -1 + if_hp_more_than 0, 30, AI_sub_81DAF3B + score -1 + +AI_sub_81DAF3B:: @ 81DAF3B + end + +AI_sub_81DAF3C:: @ 81DAF3C + if_hp_less_than 1, 50, AI_sub_81DAF5F + get_type 0 + if_in_bytes AI_bytes_81DAF62, AI_sub_81DAF61 + get_type 2 + if_in_bytes AI_bytes_81DAF62, AI_sub_81DAF61 + if_random_less_than 50, AI_sub_81DAF61 + +AI_sub_81DAF5F:: @ 81DAF5F + score -2 + +AI_sub_81DAF61:: @ 81DAF61 + end + +AI_bytes_81DAF62:: @ 81DAF62 + .byte 0 + .byte 1 + .byte 2 + .byte 3 + .byte 4 + .byte 5 + .byte 6 + .byte 7 + .byte 8 + .byte 0xFF + +AI_sub_81DAF6C:: @ 81DAF6C + if_hp_less_than 1, 50, AI_sub_81DAF7A + if_hp_more_than 0, 50, AI_sub_81DAF7C + +AI_sub_81DAF7A:: @ 81DAF7A + score -1 + +AI_sub_81DAF7C:: @ 81DAF7C + end + +AI_sub_81DAF7D:: @ 81DAF7D + if_would_go_first 1, AI_sub_81DAF91 + if_hp_more_than 1, 70, AI_sub_81DAF99 + score -1 + jump AI_sub_81DAF99 + +AI_sub_81DAF91:: @ 81DAF91 + if_random_less_than 20, AI_sub_81DAF99 + score 3 + +AI_sub_81DAF99:: @ 81DAF99 + end + +AI_sub_81DAF9A:: @ 81DAF9A + if_would_go_first 1, AI_sub_81DAFBC + if_hp_more_than 1, 60, AI_sub_81DAFBC + if_hp_less_than 1, 40, AI_sub_81DAFB4 + if_random_less_than -76, AI_sub_81DAFBC + +AI_sub_81DAFB4:: @ 81DAFB4 + if_random_less_than 50, AI_sub_81DAFBC + score -1 + +AI_sub_81DAFBC:: @ 81DAFBC + end + +AI_sub_81DAFBD:: @ 81DAFBD + if_hp_more_than 1, 90, AI_sub_81DAFEA + if_hp_more_than 1, 70, AI_sub_81DAFE2 + if_hp_more_than 1, 50, AI_sub_81DAFDA + if_random_less_than 100, AI_sub_81DAFDA + score -1 + +AI_sub_81DAFDA:: @ 81DAFDA + if_random_less_than 100, AI_sub_81DAFE2 + score -1 + +AI_sub_81DAFE2:: @ 81DAFE2 + if_random_less_than 100, AI_sub_81DAFEA + score -1 + +AI_sub_81DAFEA:: @ 81DAFEA + if_would_go_first 1, AI_sub_81DB052 + get_move 0 + get_move_effect_from_result + if_equal 1, AI_sub_81DB022 + if_equal 33, AI_sub_81DB022 + if_equal 66, AI_sub_81DB022 + if_equal 67, AI_sub_81DB022 + if_equal -89, AI_sub_81DB022 + if_equal 49, AI_sub_81DB031 + if_equal 84, AI_sub_81DB040 + jump AI_sub_81DB052 + +AI_sub_81DB022:: @ 81DB022 + if_not_status 0, 255, AI_sub_81DB04A + jump AI_sub_81DB052 + +AI_sub_81DB031:: @ 81DB031 + if_not_status2 0, 7, AI_sub_81DB04A + jump AI_sub_81DB052 + +AI_sub_81DB040:: @ 81DB040 + if_status3 0, 4, AI_sub_81DB052 + +AI_sub_81DB04A:: @ 81DB04A + if_random_less_than 100, AI_sub_81DB052 + score 1 + +AI_sub_81DB052:: @ 81DB052 + end + +AI_sub_81DB053:: @ 81DB053 + if_damage_bonus 10, AI_sub_81DB078 + if_damage_bonus 20, AI_sub_81DB078 + if_would_go_first 1, AI_sub_81DB071 + if_hp_more_than 1, 40, AI_sub_81DB078 + jump AI_sub_81DB07A + +AI_sub_81DB071:: @ 81DB071 + if_hp_less_than 1, 60, AI_sub_81DB07A + +AI_sub_81DB078:: @ 81DB078 + score -1 + +AI_sub_81DB07A:: @ 81DB07A + end + +AI_sub_81DB07B:: @ 81DB07B + if_would_go_first 1, AI_sub_81DB099 + get_move 0 + get_move_power_from_result + if_equal 0, AI_sub_81DB091 + score 1 + jump AI_sub_81DB099 + +AI_sub_81DB091:: @ 81DB091 + if_random_less_than 100, AI_sub_81DB099 + score -1 + +AI_sub_81DB099:: @ 81DB099 + end + +AI_sub_81DB09A:: @ 81DB09A + if_status 0, 7, AI_sub_81DB12E + if_status2 0, 983040, AI_sub_81DB12E + if_status2 0, 7, AI_sub_81DB12E + if_hp_more_than 1, 30, AI_sub_81DB0C7 + if_random_less_than 10, AI_sub_81DB0C7 + score -1 + +AI_sub_81DB0C7:: @ 81DB0C7 + if_hp_more_than 1, 50, AI_sub_81DB0D6 + if_random_less_than 100, AI_sub_81DB0D6 + score -1 + +AI_sub_81DB0D6:: @ 81DB0D6 + get_move 0 + get_move_power_from_result + if_equal 0, AI_sub_81DB105 + if_not_taunted AI_sub_81DB0EC + if_random_less_than 100, AI_sub_81DB0EC + score 1 + +AI_sub_81DB0EC:: @ 81DB0EC + get_move 0 + get_move_type_from_result + if_not_in_bytes AI_bytes_81DB131, AI_sub_81DB12E + if_random_less_than 100, AI_sub_81DB130 + score 1 + jump AI_sub_81DB130 + +AI_sub_81DB105:: @ 81DB105 + if_not_taunted AI_sub_81DB112 + if_random_less_than 100, AI_sub_81DB112 + score 1 + +AI_sub_81DB112:: @ 81DB112 + get_type 0 + if_in_bytes AI_bytes_81DB131, AI_sub_81DB130 + get_type 2 + if_in_bytes AI_bytes_81DB131, AI_sub_81DB130 + if_random_less_than 50, AI_sub_81DB130 + +AI_sub_81DB12E:: @ 81DB12E + score -1 + +AI_sub_81DB130:: @ 81DB130 + end + +AI_bytes_81DB131:: @ 81DB131 + .byte 0 + .byte 1 + .byte 2 + .byte 3 + .byte 4 + .byte 5 + .byte 6 + .byte 7 + .byte 8 + .byte 0xFF + +AI_sub_81DB13B:: @ 81DB13B + if_last_move_did_damage 0, 0, AI_sub_81DB154 + if_would_go_first 1, AI_sub_81DB161 + get_move 0 + get_move_effect_from_result + if_not_in_bytes AI_bytes_81DB164, AI_sub_81DB161 + +AI_sub_81DB154:: @ 81DB154 + if_random_less_than 30, AI_sub_81DB163 + score 3 + jump AI_sub_81DB163 + +AI_sub_81DB161:: @ 81DB161 + score -2 + +AI_sub_81DB163:: @ 81DB163 + end + +AI_bytes_81DB164:: @ 81DB164 + .byte 8 + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 25 + .byte 28 + .byte 30 + .byte 33 + .byte 35 + .byte 37 + .byte 40 + .byte 54 + .byte 49 + .byte 66 + .byte 67 + .byte 84 + .byte 85 + .byte 50 + .byte 90 + .byte 93 + .byte 94 + .byte 102 + .byte 106 + .byte 107 + .byte 111 + .byte 191 + .byte 113 + .byte 114 + .byte 115 + .byte 116 + .byte 118 + .byte 120 + .byte 124 + .byte 136 + .byte 137 + .byte 142 + .byte 143 + .byte 148 + .byte 158 + .byte 160 + .byte 161 + .byte 162 + .byte 164 + .byte 165 + .byte 167 + .byte 172 + .byte 174 + .byte 177 + .byte 178 + .byte 181 + .byte 184 + .byte 188 + .byte 191 + .byte 192 + .byte 193 + .byte 194 + .byte 199 + .byte 201 + .byte 210 + .byte 212 + .byte 213 + .byte 0xFF + +AI_sub_81DB1A3:: @ 81DB1A3 + if_hp_less_than 0, 80, AI_sub_81DB1CC + if_would_go_first 1, AI_sub_81DB1BE + if_hp_more_than 1, 40, AI_sub_81DB1CC + score 1 + jump AI_sub_81DB1CE + +AI_sub_81DB1BE:: @ 81DB1BE + if_hp_more_than 1, 60, AI_sub_81DB1CC + score 1 + jump AI_sub_81DB1CE + +AI_sub_81DB1CC:: @ 81DB1CC + score -1 + +AI_sub_81DB1CE:: @ 81DB1CE + end + +AI_sub_81DB1CF:: @ 81DB1CF + score 2 + end + +AI_sub_81DB1D2:: @ 81DB1D2 + if_random_less_than -128, AI_sub_81DB1DA + score 2 + +AI_sub_81DB1DA:: @ 81DB1DA + end + +AI_sub_81DB1DB:: @ 81DB1DB + score 2 + end + +AI_sub_81DB1DE:: @ 81DB1DE + score -1 + if_would_go_first 1, AI_sub_81DB213 + if_hp_more_than 1, 70, AI_sub_81DB213 + if_random_less_than -128, AI_sub_81DB1F5 + score 1 + +AI_sub_81DB1F5:: @ 81DB1F5 + if_hp_more_than 1, 50, AI_sub_81DB213 + if_random_less_than -128, AI_sub_81DB204 + score 1 + +AI_sub_81DB204:: @ 81DB204 + if_hp_more_than 1, 30, AI_sub_81DB213 + if_random_less_than 100, AI_sub_81DB213 + score 2 + +AI_sub_81DB213:: @ 81DB213 + end + +AI_sub_81DB214:: @ 81DB214 + if_would_go_first 1, AI_sub_81DB234 + if_hp_more_than 1, 33, AI_sub_81DB256 + if_hp_more_than 1, 20, AI_sub_81DB258 + if_hp_less_than 1, 8, AI_sub_81DB247 + jump AI_sub_81DB249 + +AI_sub_81DB234:: @ 81DB234 + if_hp_more_than 1, 60, AI_sub_81DB256 + if_hp_more_than 1, 40, AI_sub_81DB258 + jump AI_sub_81DB249 + +AI_sub_81DB247:: @ 81DB247 + score 1 + +AI_sub_81DB249:: @ 81DB249 + if_random_less_than 100, AI_sub_81DB258 + score 1 + jump AI_sub_81DB258 + +AI_sub_81DB256:: @ 81DB256 + score -1 + +AI_sub_81DB258:: @ 81DB258 + end + +AI_sub_81DB259:: @ 81DB259 + if_status 0, 255, AI_sub_81DB26F + if_status_in_party 0, 255, AI_sub_81DB26F + score -5 + +AI_sub_81DB26F:: @ 81DB26F + end + +AI_sub_81DB270:: @ 81DB270 + get_hold_effect 0 + if_not_in_bytes AI_bytes_81DB28B, AI_sub_81DB288 + if_random_less_than 50, AI_sub_81DB28A + score 1 + jump AI_sub_81DB28A + +AI_sub_81DB288:: @ 81DB288 + score -2 + +AI_sub_81DB28A:: @ 81DB28A + end + +AI_bytes_81DB28B:: @ 81DB28B + .byte 3 + .byte 9 + .byte 1 + .byte 22 + .byte 43 + .byte 45 + .byte 65 + .byte 0xFF + +AI_sub_81DB293:: @ 81DB293 + get_type 1 + if_equal 7, AI_sub_81DB2D8 + get_type 3 + if_equal 7, AI_sub_81DB2D8 + if_stat_level_more_than 1, 2, 9, AI_sub_81DB2E1 + if_random_less_than -128, AI_sub_81DB2B3 + score 1 + +AI_sub_81DB2B3:: @ 81DB2B3 + if_stat_level_more_than 1, 2, 7, AI_sub_81DB2E1 + if_random_less_than -128, AI_sub_81DB2C3 + score 1 + +AI_sub_81DB2C3:: @ 81DB2C3 + if_stat_level_more_than 1, 2, 6, AI_sub_81DB2E1 + if_random_less_than -128, AI_sub_81DB2E1 + score 1 + jump AI_sub_81DB2E1 + +AI_sub_81DB2D8:: @ 81DB2D8 + if_hp_more_than 1, 80, AI_sub_81DB2E1 + score -1 + +AI_sub_81DB2E1:: @ 81DB2E1 + end + +AI_sub_81DB2E2:: @ 81DB2E2 + get_protect_count 1 + if_more_than 1, AI_sub_81DB3A0 + if_status 1, 128, AI_sub_81DB397 + if_status2 1, 268435456, AI_sub_81DB397 + if_status3 1, 32, AI_sub_81DB397 + if_status2 1, 983040, AI_sub_81DB397 + if_status3 1, 4, AI_sub_81DB397 + if_status3 1, 6144, AI_sub_81DB397 + if_move_effect 0, 32, AI_sub_81DB397 + if_move_effect 0, -100, AI_sub_81DB397 + if_status 0, 128, AI_sub_81DB37E + if_status2 0, 268435456, AI_sub_81DB37E + if_status3 0, 32, AI_sub_81DB37E + if_status2 0, 983040, AI_sub_81DB37E + if_status3 0, 4, AI_sub_81DB37E + if_status3 0, 6144, AI_sub_81DB37E + get_move 0 + get_move_effect_from_result + if_not_equal 94, AI_sub_81DB37E + jump AI_sub_81DB380 + +AI_sub_81DB37E:: @ 81DB37E + score 2 + +AI_sub_81DB380:: @ 81DB380 + get_protect_count 1 + if_equal 0, AI_sub_81DB3A2 + score -1 + if_random_less_than -128, AI_sub_81DB3A2 + score -1 + jump AI_sub_81DB3A2 + +AI_sub_81DB397:: @ 81DB397 + get_move 0 + get_move_effect_from_result + if_not_equal 94, AI_sub_81DB3A2 + +AI_sub_81DB3A0:: @ 81DB3A0 + score -2 + +AI_sub_81DB3A2:: @ 81DB3A2 + end + +AI_sub_81DB3A3:: @ 81DB3A3 + get_type 1 + if_equal 7, AI_sub_81DB3C2 + get_type 3 + if_equal 7, AI_sub_81DB3C2 + if_stat_level_more_than 1, 7, 8, AI_sub_81DB3C8 + score -2 + jump AI_sub_81DB3D0 + +AI_sub_81DB3C2:: @ 81DB3C2 + if_random_less_than 80, AI_sub_81DB3D0 + +AI_sub_81DB3C8:: @ 81DB3C8 + if_random_less_than 80, AI_sub_81DB3D0 + score 2 + +AI_sub_81DB3D0:: @ 81DB3D0 + end + +AI_sub_81DB3D1:: @ 81DB3D1 + if_hp_less_than 1, 4, AI_sub_81DB3DF + if_hp_less_than 1, 35, AI_sub_81DB3E6 + +AI_sub_81DB3DF:: @ 81DB3DF + score -1 + jump AI_sub_81DB3EE + +AI_sub_81DB3E6:: @ 81DB3E6 + if_random_less_than 70, AI_sub_81DB3EE + score 1 + +AI_sub_81DB3EE:: @ 81DB3EE + end + +AI_sub_81DB3EF:: @ 81DB3EF + if_stat_level_more_than 1, 1, 8, AI_sub_81DB41C + if_stat_level_more_than 1, 2, 8, AI_sub_81DB41C + if_stat_level_more_than 1, 4, 8, AI_sub_81DB41C + if_stat_level_more_than 1, 5, 8, AI_sub_81DB41C + if_stat_level_more_than 1, 7, 8, AI_sub_81DB41C + jump AI_sub_81DB442 + +AI_sub_81DB41C:: @ 81DB41C + if_would_go_first 1, AI_sub_81DB42E + if_hp_more_than 1, 60, AI_sub_81DB48A + jump AI_sub_81DB435 + +AI_sub_81DB42E:: @ 81DB42E + if_hp_more_than 1, 70, AI_sub_81DB48A + +AI_sub_81DB435:: @ 81DB435 + if_random_less_than 80, AI_sub_81DB48A + score 2 + jump AI_sub_81DB48A + +AI_sub_81DB442:: @ 81DB442 + if_stat_level_more_than 1, 1, 7, AI_sub_81DB46F + if_stat_level_more_than 1, 2, 7, AI_sub_81DB46F + if_stat_level_more_than 1, 4, 7, AI_sub_81DB46F + if_stat_level_more_than 1, 5, 7, AI_sub_81DB46F + if_stat_level_more_than 1, 7, 7, AI_sub_81DB46F + jump AI_sub_81DB488 + +AI_sub_81DB46F:: @ 81DB46F + if_would_go_first 1, AI_sub_81DB481 + if_hp_more_than 1, 60, AI_sub_81DB488 + jump AI_sub_81DB48A + +AI_sub_81DB481:: @ 81DB481 + if_hp_less_than 1, 70, AI_sub_81DB48A + +AI_sub_81DB488:: @ 81DB488 + score -2 + +AI_sub_81DB48A:: @ 81DB48A + end + +AI_sub_81DB48B:: @ 81DB48B + is_first_turn 1 + if_not_equal 0, AI_sub_81DB4C0 + get_type 0 + if_equal 7, AI_sub_81DB4B8 + get_type 0 + if_equal 14, AI_sub_81DB4B8 + get_type 2 + if_equal 7, AI_sub_81DB4B8 + get_type 2 + if_equal 14, AI_sub_81DB4B8 + jump AI_sub_81DB4C0 + +AI_sub_81DB4B8:: @ 81DB4B8 + if_random_less_than -128, AI_sub_81DB4C0 + score 1 + +AI_sub_81DB4C0:: @ 81DB4C0 + end + +AI_sub_81DB4C1:: @ 81DB4C1 + if_would_go_first 0, AI_sub_81DB4CF + get_ability 1 + if_equal 33, AI_sub_81DB4F6 + +AI_sub_81DB4CF:: @ 81DB4CF + if_hp_less_than 1, 40, AI_sub_81DB4FD + get_weather + if_equal 3, AI_sub_81DB4F6 + if_equal 0, AI_sub_81DB4F6 + if_equal 2, AI_sub_81DB4F6 + get_ability 1 + if_equal 44, AI_sub_81DB4F6 + jump AI_sub_81DB4FF + +AI_sub_81DB4F6:: @ 81DB4F6 + score 1 + jump AI_sub_81DB4FF + +AI_sub_81DB4FD:: @ 81DB4FD + score -1 + +AI_sub_81DB4FF:: @ 81DB4FF + end + +AI_sub_81DB500:: @ 81DB500 + if_hp_less_than 1, 40, AI_sub_81DB526 + get_weather + if_equal 3, AI_sub_81DB51F + if_equal 1, AI_sub_81DB51F + if_equal 2, AI_sub_81DB51F + jump AI_sub_81DB528 + +AI_sub_81DB51F:: @ 81DB51F + score 1 + jump AI_sub_81DB528 + +AI_sub_81DB526:: @ 81DB526 + score -1 + +AI_sub_81DB528:: @ 81DB528 + end + +AI_sub_81DB529:: @ 81DB529 + if_hp_less_than 1, 90, AI_sub_81DB535 + jump AI_sub_81DB537 + +AI_sub_81DB535:: @ 81DB535 + score -2 + +AI_sub_81DB537:: @ 81DB537 + end + +AI_sub_81DB538:: @ 81DB538 + if_stat_level_more_than 0, 1, 8, AI_sub_81DB565 + if_stat_level_more_than 0, 2, 8, AI_sub_81DB565 + if_stat_level_more_than 0, 4, 8, AI_sub_81DB565 + if_stat_level_more_than 0, 5, 8, AI_sub_81DB565 + if_stat_level_more_than 0, 7, 8, AI_sub_81DB565 + jump AI_sub_81DB5A2 + +AI_sub_81DB565:: @ 81DB565 + if_stat_level_less_than 1, 1, 7, AI_sub_81DB59A + if_stat_level_less_than 1, 2, 7, AI_sub_81DB59A + if_stat_level_less_than 1, 4, 7, AI_sub_81DB59A + if_stat_level_less_than 1, 5, 7, AI_sub_81DB59A + if_stat_level_less_than 1, 7, 7, AI_sub_81DB598 + if_random_less_than 50, AI_sub_81DB5A4 + jump AI_sub_81DB5A2 + +AI_sub_81DB598:: @ 81DB598 + score 1 + +AI_sub_81DB59A:: @ 81DB59A + if_random_less_than -128, AI_sub_81DB5A4 + score 1 + +AI_sub_81DB5A2:: @ 81DB5A2 + score -2 + +AI_sub_81DB5A4:: @ 81DB5A4 + end + +AI_sub_81DB5A5:: @ 81DB5A5 + if_status 0, 7, AI_sub_81DB639 + if_status2 0, 983040, AI_sub_81DB639 + if_status2 0, 7, AI_sub_81DB639 + if_hp_more_than 1, 30, AI_sub_81DB5D2 + if_random_less_than 10, AI_sub_81DB5D2 + score -1 + +AI_sub_81DB5D2:: @ 81DB5D2 + if_hp_more_than 1, 50, AI_sub_81DB5E1 + if_random_less_than 100, AI_sub_81DB5E1 + score -1 + +AI_sub_81DB5E1:: @ 81DB5E1 + get_move 0 + get_move_power_from_result + if_equal 0, AI_sub_81DB610 + if_not_taunted AI_sub_81DB5F7 + if_random_less_than 100, AI_sub_81DB5F7 + score 1 + +AI_sub_81DB5F7:: @ 81DB5F7 + get_move 0 + get_move_type_from_result + if_not_in_bytes AI_bytes_81DB63C, AI_sub_81DB639 + if_random_less_than 100, AI_sub_81DB63B + score 1 + jump AI_sub_81DB63B + +AI_sub_81DB610:: @ 81DB610 + if_not_taunted AI_sub_81DB61D + if_random_less_than 100, AI_sub_81DB61D + score 1 + +AI_sub_81DB61D:: @ 81DB61D + get_type 0 + if_in_bytes AI_bytes_81DB63C, AI_sub_81DB63B + get_type 2 + if_in_bytes AI_bytes_81DB63C, AI_sub_81DB63B + if_random_less_than 50, AI_sub_81DB63B + +AI_sub_81DB639:: @ 81DB639 + score -1 + +AI_sub_81DB63B:: @ 81DB63B + end + +AI_bytes_81DB63C:: @ 81DB63C + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 14 + .byte 15 + .byte 16 + .byte 17 + .byte 0xFF + +AI_sub_81DB645:: @ 81DB645 + if_damage_bonus 10, AI_sub_81DB666 + if_damage_bonus 20, AI_sub_81DB666 + if_move_effect 0, 111, AI_sub_81DB666 + if_hp_more_than 1, 38, AI_sub_81DB668 + score -1 + jump AI_sub_81DB668 + +AI_sub_81DB666:: @ 81DB666 + score -2 + +AI_sub_81DB668:: @ 81DB668 + end + +AI_sub_81DB669:: @ 81DB669 + if_not_move_effect 0, 111, AI_sub_81DB677 + score -1 + jump AI_sub_81DB6EE + +AI_sub_81DB677:: @ 81DB677 + if_status 0, 128, AI_sub_81DB6E6 + if_status2 0, 268435456, AI_sub_81DB6E6 + if_status3 0, 4, AI_sub_81DB6E6 + get_weather + if_equal 3, AI_sub_81DB6A7 + if_equal 2, AI_sub_81DB6C2 + jump AI_sub_81DB6D2 + +AI_sub_81DB6A7:: @ 81DB6A7 + get_type 1 + if_in_bytes AI_bytes_81DB6EF, AI_sub_81DB6E6 + get_type 3 + if_in_bytes AI_bytes_81DB6EF, AI_sub_81DB6E6 + jump AI_sub_81DB6D2 + +AI_sub_81DB6C2:: @ 81DB6C2 + get_type 1 + if_equal 15, AI_sub_81DB6E6 + get_type 3 + if_equal 15, AI_sub_81DB6E6 + +AI_sub_81DB6D2:: @ 81DB6D2 + if_would_go_first 1, AI_sub_81DB6EE + get_move 0 + get_move_effect_from_result + if_not_equal 94, AI_sub_81DB6E6 + jump AI_sub_81DB6EE + +AI_sub_81DB6E6:: @ 81DB6E6 + if_random_less_than 80, AI_sub_81DB6EE + score 1 + +AI_sub_81DB6EE:: @ 81DB6EE + end + +AI_bytes_81DB6EF:: @ 81DB6EF + .byte 4 + .byte 5 + .byte 8 + .byte 0xFF + +AI_sub_81DB6F3:: @ 81DB6F3 + score 2 + end + +AI_sub_81DB6F6:: @ 81DB6F6 + get_stockpile_count 1 + if_less_than 2, AI_sub_81DB706 + if_random_less_than 80, AI_sub_81DB706 + score 2 + +AI_sub_81DB706:: @ 81DB706 + end + +AI_sub_81DB707:: @ 81DB707 + if_hp_less_than 1, 40, AI_sub_81DB72D + get_weather + if_equal 0, AI_sub_81DB726 + if_equal 1, AI_sub_81DB726 + if_equal 2, AI_sub_81DB726 + jump AI_sub_81DB72F + +AI_sub_81DB726:: @ 81DB726 + score 1 + jump AI_sub_81DB72F + +AI_sub_81DB72D:: @ 81DB72D + score -1 + +AI_sub_81DB72F:: @ 81DB72F + end + +AI_sub_81DB730:: @ 81DB730 + if_not_status 0, 216, AI_sub_81DB73C + score 1 + +AI_sub_81DB73C:: @ 81DB73C + end + +AI_sub_81DB73D:: @ 81DB73D + if_damage_bonus 10, AI_sub_81DB77C + if_damage_bonus 20, AI_sub_81DB77C + if_status 0, 7, AI_sub_81DB789 + if_status2 0, 983040, AI_sub_81DB783 + if_status2 0, 7, AI_sub_81DB783 + is_first_turn 1 + if_not_equal 0, AI_sub_81DB78B + if_random_less_than 100, AI_sub_81DB78B + score 1 + jump AI_sub_81DB78B + +AI_sub_81DB77C:: @ 81DB77C + score -1 + jump AI_sub_81DB78B + +AI_sub_81DB783:: @ 81DB783 + if_random_less_than 100, AI_sub_81DB78B + +AI_sub_81DB789:: @ 81DB789 + score 1 + +AI_sub_81DB78B:: @ 81DB78B + end + +AI_sub_81DB78C:: @ 81DB78C + if_status 0, 64, AI_sub_81DB79B + jump AI_sub_81DB79D + +AI_sub_81DB79B:: @ 81DB79B + score 1 + +AI_sub_81DB79D:: @ 81DB79D + end + +AI_sub_81DB79E:: @ 81DB79E + get_hold_effect 1 + if_in_bytes AI_bytes_81DB7E7, AI_sub_81DB7B9 + if_in_bytes AI_bytes_81DB7DF, AI_sub_81DB7CB + +AI_sub_81DB7B2:: @ 81DB7B2 + score -3 + jump AI_sub_81DB7DE + +AI_sub_81DB7B9:: @ 81DB7B9 + get_hold_effect 0 + if_in_bytes AI_bytes_81DB7E7, AI_sub_81DB7B2 + score 5 + jump AI_sub_81DB7DE + +AI_sub_81DB7CB:: @ 81DB7CB + get_hold_effect 0 + if_in_bytes AI_bytes_81DB7DF, AI_sub_81DB7B2 + if_random_less_than 50, AI_sub_81DB7DE + score 2 + +AI_sub_81DB7DE:: @ 81DB7DE + end + +AI_bytes_81DB7DF:: @ 81DB7DF + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 14 + .byte 24 + .byte 29 + .byte 0xFF + +AI_bytes_81DB7E7:: @ 81DB7E7 + .byte 29 + .byte 0xFF + +AI_sub_81DB7E9:: @ 81DB7E9 + get_ability 1 + if_in_bytes AI_bytes_81DB80F, AI_sub_81DB7FF + get_ability 0 + if_in_bytes AI_bytes_81DB80F, AI_sub_81DB806 + +AI_sub_81DB7FF:: @ 81DB7FF + score -1 + jump AI_sub_81DB80E + +AI_sub_81DB806:: @ 81DB806 + if_random_less_than 50, AI_sub_81DB80E + score 2 + +AI_sub_81DB80E:: @ 81DB80E + end + +AI_bytes_81DB80F:: @ 81DB80F + .byte 3 + .byte 4 + .byte 8 + .byte 9 + .byte 18 + .byte 25 + .byte 27 + .byte 33 + .byte 37 + .byte 44 + .byte 56 + .byte 61 + .byte 63 + .byte 74 + .byte 34 + .byte 19 + .byte 0xFF + +AI_sub_81DB820:: @ 81DB820 + if_damage_bonus 10, AI_sub_81DB84D + if_damage_bonus 20, AI_sub_81DB84D + if_stat_level_less_than 1, 1, 6, AI_sub_81DB84D + if_would_go_first 1, AI_sub_81DB846 + if_hp_more_than 1, 40, AI_sub_81DB84D + jump AI_sub_81DB84F + +AI_sub_81DB846:: @ 81DB846 + if_hp_less_than 1, 60, AI_sub_81DB84F + +AI_sub_81DB84D:: @ 81DB84D + score -1 + +AI_sub_81DB84F:: @ 81DB84F + end + +AI_sub_81DB850:: @ 81DB850 + if_hp_more_than 0, 30, AI_sub_81DB85F + if_random_less_than 100, AI_sub_81DB85F + score -1 + +AI_sub_81DB85F:: @ 81DB85F + is_first_turn 1 + if_equal 0, AI_sub_81DB87A + if_random_less_than -106, AI_sub_81DB882 + score 1 + jump AI_sub_81DB882 + if_random_less_than 50, AI_sub_81DB882 + +AI_sub_81DB87A:: @ 81DB87A + if_random_less_than 30, AI_sub_81DB882 + score -1 + +AI_sub_81DB882:: @ 81DB882 + end + +AI_sub_81DB883:: @ 81DB883 + get_item 1 + if_not_in_bytes AI_bytes_81DB89E, AI_sub_81DB89B + if_random_less_than 50, AI_sub_81DB89D + score 1 + jump AI_sub_81DB89D + +AI_sub_81DB89B:: @ 81DB89B + score -2 + +AI_sub_81DB89D:: @ 81DB89D + end + +AI_bytes_81DB89E:: @ 81DB89E + .byte 134 + .byte 141 + .byte 174 + .byte 0xFF + +AI_sub_81DB8A2:: @ 81DB8A2 + if_status 0, 7, AI_sub_81DB8CD + if_status2 0, 983040, AI_sub_81DB8CD + if_status2 0, 7, AI_sub_81DB8CD + if_random_less_than -76, AI_sub_81DB8CD + score 2 + jump AI_sub_81DB8CF + +AI_sub_81DB8CD:: @ 81DB8CD + score -2 + +AI_sub_81DB8CF:: @ 81DB8CF + end + +AI_sub_81DB8D0:: @ 81DB8D0 + if_status4 0, 1, AI_sub_81DB8DF + jump AI_sub_81DB8E1 + +AI_sub_81DB8DF:: @ 81DB8DF + score 1 + +AI_sub_81DB8E1:: @ 81DB8E1 + end + +AI_sub_81DB8E2:: @ 81DB8E2 + if_hp_less_than 0, 30, AI_sub_81DB8F9 + is_first_turn 1 + if_more_than 0, AI_sub_81DB8F9 + if_random_less_than -76, AI_sub_81DB8F9 + score 1 + +AI_sub_81DB8F9:: @ 81DB8F9 + end + +AI_sub_81DB8FA:: @ 81DB8FA + if_hp_less_than 0, 70, AI_sub_81DB923 + if_would_go_first 1, AI_sub_81DB915 + if_hp_more_than 1, 40, AI_sub_81DB923 + score 1 + jump AI_sub_81DB925 + +AI_sub_81DB915:: @ 81DB915 + if_hp_more_than 1, 50, AI_sub_81DB923 + score 1 + jump AI_sub_81DB925 + +AI_sub_81DB923:: @ 81DB923 + score -1 + +AI_sub_81DB925:: @ 81DB925 + end + +AI_sub_81DB926:: @ 81DB926 + if_damage_bonus 10, AI_sub_81DB94B + if_damage_bonus 20, AI_sub_81DB94B + if_would_go_first 1, AI_sub_81DB944 + if_hp_more_than 0, 50, AI_sub_81DB94D + jump AI_sub_81DB94B + +AI_sub_81DB944:: @ 81DB944 + if_hp_more_than 0, 70, AI_sub_81DB94D + +AI_sub_81DB94B:: @ 81DB94B + score -1 + +AI_sub_81DB94D:: @ 81DB94D + end + +AI_sub_81DB94E:: @ 81DB94E + is_first_turn 1 + if_more_than 0, AI_sub_81DB95E + if_random_less_than 100, AI_sub_81DB95E + score 2 + +AI_sub_81DB95E:: @ 81DB95E + end + +AI_sub_81DB95F:: @ 81DB95F + if_hp_less_than 0, 50, AI_sub_81DB96B + jump AI_sub_81DB96D + +AI_sub_81DB96B:: @ 81DB96B + score -1 + +AI_sub_81DB96D:: @ 81DB96D + end + +AI_sub_81DB96E:: @ 81DB96E + is_first_turn 1 + if_equal 1, AI_sub_81DB9B5 + if_random_less_than 30, AI_sub_81DB9D7 + if_would_go_first 1, AI_sub_81DB99B + if_hp_not_equal 1, 100, AI_sub_81DB9CF + if_hp_less_than 0, 70, AI_sub_81DB9CF + if_random_less_than 60, AI_sub_81DB9D7 + jump AI_sub_81DB9CF + +AI_sub_81DB99B:: @ 81DB99B + if_hp_more_than 0, 25, AI_sub_81DB9CF + if_move_effect 0, 32, AI_sub_81DB9B5 + if_move_effect 0, -100, AI_sub_81DB9B5 + jump AI_sub_81DB9C2 + +AI_sub_81DB9B5:: @ 81DB9B5 + if_random_less_than -106, AI_sub_81DB9D7 + score 2 + jump AI_sub_81DB9D7 + +AI_sub_81DB9C2:: @ 81DB9C2 + if_random_less_than -26, AI_sub_81DB9CF + score 1 + jump AI_sub_81DB9D7 + +AI_sub_81DB9CF:: @ 81DB9CF + if_random_less_than 30, AI_sub_81DB9D7 + score -2 + +AI_sub_81DB9D7:: @ 81DB9D7 + end + +AI_sub_81DB9D8:: @ 81DB9D8 + if_hp_less_than 1, 50, AI_sub_81DB9FB + get_type 0 + if_equal 13, AI_sub_81DB9F4 + get_type 2 + if_equal 13, AI_sub_81DB9F4 + jump AI_sub_81DB9FB + +AI_sub_81DB9F4:: @ 81DB9F4 + score 1 + jump AI_sub_81DB9FD + +AI_sub_81DB9FB:: @ 81DB9FB + score -1 + +AI_sub_81DB9FD:: @ 81DB9FD + end + +AI_sub_81DB9FE:: @ 81DB9FE + if_damage_bonus 10, AI_sub_81DBA23 + if_damage_bonus 20, AI_sub_81DBA23 + if_would_go_first 1, AI_sub_81DBA1C + if_hp_more_than 1, 60, AI_sub_81DBA25 + jump AI_sub_81DBA23 + +AI_sub_81DBA1C:: @ 81DBA1C + if_hp_more_than 1, 80, AI_sub_81DBA25 + +AI_sub_81DBA23:: @ 81DBA23 + score -1 + +AI_sub_81DBA25:: @ 81DBA25 + end + +AI_sub_81DBA26:: @ 81DBA26 + if_hp_less_than 1, 50, AI_sub_81DBA49 + get_type 0 + if_equal 10, AI_sub_81DBA42 + get_type 2 + if_equal 10, AI_sub_81DBA42 + jump AI_sub_81DBA49 + +AI_sub_81DBA42:: @ 81DBA42 + score 1 + jump AI_sub_81DBA4B + +AI_sub_81DBA49:: @ 81DBA49 + score -1 + +AI_sub_81DBA4B:: @ 81DBA4B + end + +AI_sub_81DBA4C:: @ 81DBA4C + if_would_go_first 1, AI_sub_81DBA66 + if_hp_more_than 1, 50, AI_sub_81DBA6E + if_random_less_than 70, AI_sub_81DBA6E + score -1 + jump AI_sub_81DBA6E + +AI_sub_81DBA66:: @ 81DBA66 + if_random_less_than -128, AI_sub_81DBA6E + score 1 + +AI_sub_81DBA6E:: @ 81DBA6E + end + +AI_CheckViability:: @ 81DBA6F + if_can_faint AI_sub_81DBA7C + is_most_powerful_move + if_equal 1, AI_sub_81DA424 + end + +AI_sub_81DBA7C:: @ 81DBA7C + if_effect 7, AI_sub_81DBA8C + if_not_effect 103, AI_sub_81DBA8A + score 2 + +AI_sub_81DBA8A:: @ 81DBA8A + score 4 + +AI_sub_81DBA8C:: @ 81DBA8C + end + +AI_SetupFirstTurn:: @ 81DBA8D + get_turn_count + if_not_equal 0, AI_sub_81DBAA6 + get_effect + if_not_in_bytes AI_bytes_81DBAA7, AI_sub_81DBAA6 + if_random_less_than 80, AI_sub_81DBAA6 + score 2 + +AI_sub_81DBAA6:: @ 81DBAA6 + end + +AI_bytes_81DBAA7:: @ 81DBAA7 + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 14 + .byte 15 + .byte 16 + .byte 18 + .byte 19 + .byte 20 + .byte 21 + .byte 22 + .byte 23 + .byte 24 + .byte 30 + .byte 35 + .byte 54 + .byte 47 + .byte 49 + .byte 50 + .byte 51 + .byte 52 + .byte 53 + .byte 54 + .byte 55 + .byte 56 + .byte 58 + .byte 59 + .byte 60 + .byte 61 + .byte 62 + .byte 63 + .byte 64 + .byte 65 + .byte 66 + .byte 67 + .byte 79 + .byte 84 + .byte 108 + .byte 109 + .byte 118 + .byte 213 + .byte 187 + .byte 156 + .byte 165 + .byte 166 + .byte 167 + .byte 181 + .byte 192 + .byte 199 + .byte 205 + .byte 206 + .byte 208 + .byte 211 + .byte 213 + .byte 0xFF + +AI_PreferStrongestMove:: @ 81DBADF + is_most_powerful_move + if_not_equal 0, AI_sub_81DBAEE + if_random_less_than 100, AI_sub_81DBAEE + score 2 + +AI_sub_81DBAEE:: @ 81DBAEE + end + +AI_Risky:: @ 81DBAEF + get_effect + if_not_in_bytes AI_bytes_81DBB02, AI_sub_81DBB01 + if_random_less_than -128, AI_sub_81DBB01 + score 2 + +AI_sub_81DBB01:: @ 81DBB01 + end + +AI_bytes_81DBB02:: @ 81DBB02 + .byte 1 + .byte 7 + .byte 9 + .byte 38 + .byte 43 + .byte 49 + .byte 83 + .byte 88 + .byte 89 + .byte 98 + .byte 118 + .byte 120 + .byte 122 + .byte 140 + .byte 142 + .byte 144 + .byte 170 + .byte 185 + .byte 199 + .byte 0xFF + +AI_PreferBatonPass:: @ 81DBB16 + count_alive_pokemon 1 + if_equal 0, AI_sub_81DBB3A + is_most_powerful_move + if_not_equal 0, AI_sub_81DBB3A + if_move_effect 1, 127, AI_sub_81DBB32 + if_random_less_than 80, AI_sub_81DBB01 + +AI_sub_81DBB32:: @ 81DBB32 + if_random_less_than 20, AI_sub_81DBB01 + score 3 + +AI_sub_81DBB3A:: @ 81DBB3A + end + +AI_DoubleBattle:: @ 81DBB3B + end + +AI_HPAware:: @ 81DBB3C + if_hp_more_than 1, 70, AI_sub_81DBB59 + if_hp_more_than 1, 30, AI_sub_81DBB68 + get_effect + if_in_bytes AI_bytes_81DBBFC, AI_sub_81DBB77 + jump AI_sub_81DBB7F + +AI_sub_81DBB59:: @ 81DBB59 + get_effect + if_in_bytes AI_bytes_81DBBC3, AI_sub_81DBB77 + jump AI_sub_81DBB7F + +AI_sub_81DBB68:: @ 81DBB68 + get_effect + if_in_bytes AI_bytes_81DBBD1, AI_sub_81DBB77 + jump AI_sub_81DBB7F + +AI_sub_81DBB77:: @ 81DBB77 + if_random_less_than 50, AI_sub_81DBB7F + score -2 + +AI_sub_81DBB7F:: @ 81DBB7F + if_hp_more_than 0, 70, AI_sub_81DBB9C + if_hp_more_than 0, 30, AI_sub_81DBBAB + get_effect + if_in_bytes AI_bytes_81DBC55, AI_sub_81DBBBA + jump AI_sub_81DBBC2 + +AI_sub_81DBB9C:: @ 81DBB9C + get_effect + if_in_bytes AI_bytes_81DBC2C, AI_sub_81DBBBA + jump AI_sub_81DBBC2 + +AI_sub_81DBBAB:: @ 81DBBAB + get_effect + if_in_bytes AI_bytes_81DBC2D, AI_sub_81DBBBA + jump AI_sub_81DBBC2 + +AI_sub_81DBBBA:: @ 81DBBBA + if_random_less_than 50, AI_sub_81DBBC2 + score -2 + +AI_sub_81DBBC2:: @ 81DBBC2 + end + +AI_bytes_81DBBC3:: @ 81DBBC3 + .byte 7 + .byte 32 + .byte 37 + .byte 98 + .byte 99 + .byte 116 + .byte 132 + .byte 133 + .byte 134 + .byte 157 + .byte 168 + .byte 194 + .byte 204 + .byte 0xFF + +AI_bytes_81DBBD1:: @ 81DBBD1 + .byte 7 + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 14 + .byte 15 + .byte 16 + .byte 18 + .byte 19 + .byte 20 + .byte 21 + .byte 22 + .byte 23 + .byte 24 + .byte 26 + .byte 30 + .byte 35 + .byte 46 + .byte 47 + .byte 50 + .byte 51 + .byte 52 + .byte 53 + .byte 54 + .byte 55 + .byte 56 + .byte 58 + .byte 59 + .byte 60 + .byte 61 + .byte 62 + .byte 63 + .byte 64 + .byte 93 + .byte 124 + .byte 142 + .byte 205 + .byte 206 + .byte 208 + .byte 211 + .byte 212 + .byte 0xFF + +AI_bytes_81DBBFC:: @ 81DBBFC + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 14 + .byte 15 + .byte 16 + .byte 18 + .byte 19 + .byte 20 + .byte 21 + .byte 22 + .byte 23 + .byte 24 + .byte 26 + .byte 30 + .byte 35 + .byte 46 + .byte 47 + .byte 50 + .byte 51 + .byte 52 + .byte 53 + .byte 54 + .byte 55 + .byte 56 + .byte 58 + .byte 59 + .byte 60 + .byte 61 + .byte 62 + .byte 63 + .byte 64 + .byte 81 + .byte 93 + .byte 94 + .byte 124 + .byte 142 + .byte 143 + .byte 144 + .byte 151 + .byte 190 + .byte 205 + .byte 206 + .byte 208 + .byte 211 + .byte 212 + .byte 0xFF + +AI_bytes_81DBC2C:: @ 81DBC2C + .byte 0xFF + +AI_bytes_81DBC2D:: @ 81DBC2D + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 14 + .byte 15 + .byte 16 + .byte 18 + .byte 19 + .byte 20 + .byte 21 + .byte 22 + .byte 23 + .byte 24 + .byte 46 + .byte 47 + .byte 50 + .byte 51 + .byte 52 + .byte 53 + .byte 54 + .byte 55 + .byte 56 + .byte 58 + .byte 59 + .byte 60 + .byte 61 + .byte 62 + .byte 63 + .byte 64 + .byte 66 + .byte 91 + .byte 114 + .byte 124 + .byte 205 + .byte 206 + .byte 208 + .byte 211 + .byte 212 + .byte 0xFF + +AI_bytes_81DBC55:: @ 81DBC55 + .byte 1 + .byte 7 + .byte 10 + .byte 11 + .byte 12 + .byte 13 + .byte 14 + .byte 15 + .byte 16 + .byte 18 + .byte 19 + .byte 20 + .byte 21 + .byte 22 + .byte 23 + .byte 24 + .byte 26 + .byte 30 + .byte 33 + .byte 35 + .byte 38 + .byte 40 + .byte 40 + .byte 46 + .byte 47 + .byte 49 + .byte 50 + .byte 51 + .byte 52 + .byte 53 + .byte 54 + .byte 55 + .byte 56 + .byte 58 + .byte 59 + .byte 60 + .byte 61 + .byte 62 + .byte 63 + .byte 64 + .byte 66 + .byte 67 + .byte 91 + .byte 93 + .byte 94 + .byte 100 + .byte 114 + .byte 118 + .byte 119 + .byte 120 + .byte 124 + .byte 143 + .byte 144 + .byte 167 + .byte 205 + .byte 206 + .byte 208 + .byte 211 + .byte 212 + .byte 0xFF + +AI_Unknown:: @ 81DBC91 + if_not_effect -119, AI_sub_81DBCA7 + if_equal 0, AI_sub_81DBCA7 + is_first_turn 1 + if_equal 0, AI_sub_81DBCA7 + score 5 + +AI_sub_81DBCA7:: @ 81DBCA7 + end + +AI_Roaming:: @ 81DBCA8 + if_status2 1, 57344, AI_sub_81DBCD5 + if_status2 1, 67108864, AI_sub_81DBCD5 + get_ability 0 + if_equal 23, AI_sub_81DBCD5 + get_ability 1 + if_equal 26, AI_sub_81DBCD4 + get_ability 0 + if_equal 71, AI_sub_81DBCD5 + +AI_sub_81DBCD4:: @ 81DBCD4 + flee + +AI_sub_81DBCD5:: @ 81DBCD5 + end + +AI_Safari:: @ 81DBCD6 + if_random_100 AI_sub_81DBCDC + watch + +AI_sub_81DBCDC:: @ 81DBCDC + flee + +AI_FirstBattle:: @ 81DBCDD + if_hp_equal 0, 20, AI_sub_81DBCEC + if_hp_less_than 0, 20, AI_sub_81DBCEC + end + +AI_sub_81DBCEC:: @ 81DBCEC + flee + +AI_Ret:: @ 81DBCED + end diff --git a/data/battle_anim.s b/data/battle_anim.s new file mode 100644 index 000000000..3fae69431 --- /dev/null +++ b/data/battle_anim.s @@ -0,0 +1,262 @@ + .section .rodata + .align 2 +gOamData_83AC9C8:: + .4byte 0x00000000, 0x00000800 + +gOamData_83AC9D0:: + .4byte 0x40000000, 0x00000800 + +gOamData_83AC9D8:: + .4byte 0x80000000, 0x00000800 + +gOamData_83AC9E0:: + .4byte 0xc0000000, 0x00000800 + +gOamData_83AC9E8:: + .4byte 0x00004000, 0x00000800 + +gOamData_83AC9F0:: + .4byte 0x40004000, 0x00000800 + +gOamData_83AC9F8:: + .4byte 0x80004000, 0x00000800 + +gOamData_83ACA00:: + .4byte 0xc0004000, 0x00000800 + +gOamData_83ACA08:: + .4byte 0x00008000, 0x00000800 + +gOamData_83ACA10:: + .4byte 0x40008000, 0x00000800 + +gOamData_83ACA18:: + .4byte 0x80008000, 0x00000800 + +gOamData_83ACA20:: + .4byte 0xc0008000, 0x00000800 + +gOamData_83ACA28:: + .4byte 0x00000100, 0x00000800 + +gOamData_83ACA30:: + .4byte 0x40000100, 0x00000800 + +gOamData_83ACA38:: + .4byte 0x80000100, 0x00000800 + +gOamData_83ACA40:: + .4byte 0xc0000100, 0x00000800 + +gOamData_83ACA48:: + .4byte 0x00004100, 0x00000800 + +gOamData_83ACA50:: + .4byte 0x40004100, 0x00000800 + +gOamData_83ACA58:: + .4byte 0x80004100, 0x00000800 + +gOamData_83ACA60:: + .4byte 0xc0004100, 0x00000800 + +gOamData_83ACA68:: + .4byte 0x00008100, 0x00000800 + +gOamData_83ACA70:: + .4byte 0x40008100, 0x00000800 + +gOamData_83ACA78:: + .4byte 0x80008100, 0x00000800 + +gOamData_83ACA80:: + .4byte 0xc0008100, 0x00000800 + +gOamData_83ACA88:: + .4byte 0x00000300, 0x00000800 + +gOamData_83ACA90:: + .4byte 0x40000300, 0x00000800 + +gOamData_83ACA98:: + .4byte 0x80000300, 0x00000800 + +gOamData_83ACAA0:: + .4byte 0xc0000300, 0x00000800 + +gOamData_83ACAA8:: + .4byte 0x00004300, 0x00000800 + +gOamData_83ACAB0:: + .4byte 0x40004300, 0x00000800 + +gOamData_83ACAB8:: + .4byte 0x80004300, 0x00000800 + +gOamData_83ACAC0:: + .4byte 0xc0004300, 0x00000800 + +gOamData_83ACAC8:: + .4byte 0x00008300, 0x00000800 + +gOamData_83ACAD0:: + .4byte 0x40008300, 0x00000800 + +gOamData_83ACAD8:: + .4byte 0x80008300, 0x00000800 + +gOamData_83ACAE0:: + .4byte 0xc0008300, 0x00000800 + +gOamData_83ACAE8:: + .4byte 0x00000400, 0x00000800 + +gOamData_83ACAF0:: + .4byte 0x40000400, 0x00000800 + +gOamData_83ACAF8:: + .4byte 0x80000400, 0x00000800 + +gOamData_83ACB00:: + .4byte 0xc0000400, 0x00000800 + +gOamData_83ACB08:: + .4byte 0x00004400, 0x00000800 + +gOamData_83ACB10:: + .4byte 0x40004400, 0x00000800 + +gOamData_83ACB18:: + .4byte 0x80004400, 0x00000800 + +gOamData_83ACB20:: + .4byte 0xc0004400, 0x00000800 + +gOamData_83ACB28:: + .4byte 0x00008400, 0x00000800 + +gOamData_83ACB30:: + .4byte 0x40008400, 0x00000800 + +gOamData_83ACB38:: + .4byte 0x80008400, 0x00000800 + +gOamData_83ACB40:: + .4byte 0xc0008400, 0x00000800 + +gOamData_83ACB48:: + .4byte 0x00000500, 0x00000800 + +gOamData_83ACB50:: + .4byte 0x40000500, 0x00000800 + +gOamData_83ACB58:: + .4byte 0x80000500, 0x00000800 + +gOamData_83ACB60:: + .4byte 0xc0000500, 0x00000800 + +gOamData_83ACB68:: + .4byte 0x00004500, 0x00000800 + +gOamData_83ACB70:: + .4byte 0x40004500, 0x00000800 + +gOamData_83ACB78:: + .4byte 0x80004500, 0x00000800 + +gOamData_83ACB80:: + .4byte 0xc0004500, 0x00000800 + +gOamData_83ACB88:: + .4byte 0x00008500, 0x00000800 + +gOamData_83ACB90:: + .4byte 0x40008500, 0x00000800 + +gOamData_83ACB98:: + .4byte 0x80008500, 0x00000800 + +gOamData_83ACBA0:: + .4byte 0xc0008500, 0x00000800 + +gOamData_83ACBA8:: + .4byte 0x00000700, 0x00000800 + +gOamData_83ACBB0:: + .4byte 0x40000700, 0x00000800 + +gOamData_83ACBB8:: + .4byte 0x80000700, 0x00000800 + +gOamData_83ACBC0:: + .4byte 0xc0000700, 0x00000800 + +gOamData_83ACBC8:: + .4byte 0x00004700, 0x00000800 + +gOamData_83ACBD0:: + .4byte 0x40004700, 0x00000800 + +gOamData_83ACBD8:: + .4byte 0x80004700, 0x00000800 + +gOamData_83ACBE0:: + .4byte 0xc0004700, 0x00000800 + +gOamData_83ACBE8:: + .4byte 0x00008700, 0x00000800 + +gOamData_83ACBF0:: + .4byte 0x40008700, 0x00000800 + +gOamData_83ACBF8:: + .4byte 0x80008700, 0x00000800 + +gOamData_83ACC00:: + .4byte 0xc0008700, 0x00000800 + +gUnknown_83ACC08:: @ 83ACC08 + .incbin "baserom.gba", 0x3ACC08, 0x440 + +gUnknown_83AD048:: @ 83AD048 + .incbin "baserom.gba", 0x3AD048, 0x308 + +gUnknown_83AD350:: @ 83AD350 + .incbin "baserom.gba", 0x3AD350, 0x120 + +gUnknown_83AD470:: @ 83AD470 + .incbin "baserom.gba", 0x3AD470, 0x4E0 + +gUnknown_83AD950:: @ 83AD950 + .incbin "baserom.gba", 0x3AD950, 0x308 + +gUnknown_83ADC58:: @ 83ADC58 + .incbin "baserom.gba", 0x3ADC58, 0x120 + +gUnknown_83ADD78:: @ 83ADD78 + .incbin "baserom.gba", 0x3ADD78, 0xA0 + +gUnknown_83ADE18:: @ 83ADE18 + .incbin "baserom.gba", 0x3ADE18, 0x144 + +gUnknown_83ADF5C:: @ 83ADF5C + .incbin "baserom.gba", 0x3ADF5C, 0xC0 + +gUnknown_83AE01C:: @ 83AE01C + .incbin "baserom.gba", 0x3AE01C, 0x20 + +gUnknown_83AE03C:: @ 83AE03C + .incbin "baserom.gba", 0x3AE03C, 0x10 + +gUnknown_83AE04C:: @ 83AE04C + .incbin "baserom.gba", 0x3AE04C, 0x4 + +gUnknown_83AE050:: @ 83AE050 + .incbin "baserom.gba", 0x3AE050, 0x4 + +gUnknown_83AE054:: @ 83AE054 + .incbin "baserom.gba", 0x3AE054, 0x30 + +gUnknown_83AE084:: @ 0x83AE084 + .incbin "baserom.gba", 0x3AE084, 0x10 diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 78267e5ea..3d1de8ac5 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1,4 +1,5 @@ .section script_data, "aw", %progbits + .align 2 gUnknown_81C68EC:: @ 81C68EC .incbin "baserom.gba", 0x1C68EC, 0x8 diff --git a/data/battle_anim_status_effects.s b/data/battle_anim_status_effects.s new file mode 100644 index 000000000..738553830 --- /dev/null +++ b/data/battle_anim_status_effects.s @@ -0,0 +1,14 @@ + .section .rodata + .align 2 + +gUnknown_83BF3E0:: @ 83BF3DC + .incbin "baserom.gba", 0x3BF3E0, 0x174 + +gUnknown_83BF554:: @ 83BF554 + .incbin "baserom.gba", 0x3BF554, 0x8 + +gUnknown_83BF55C:: @ 83BF55C + .incbin "baserom.gba", 0x3BF55C, 0x18 + +gUnknown_83BF574:: @ 83BF574 + .incbin "baserom.gba", 0x3BF574, 0x18 diff --git a/data/berry_pouch.s b/data/berry_pouch.s new file mode 100644 index 000000000..172443b5e --- /dev/null +++ b/data/berry_pouch.s @@ -0,0 +1,59 @@ + .section .rodata + .align 2 + +gUnknown_846434C:: @ 846434C + .incbin "baserom.gba", 0x46434C, 0xC + +gUnknown_8464358:: @ 8464358 + .incbin "baserom.gba", 0x464358, 0x14 + +gUnknown_846436C:: @ 846436C + .incbin "baserom.gba", 0x46436C, 0x8 + +gUnknown_8464374:: @ 8464374 + .incbin "baserom.gba", 0x464374, 0x8 + +gUnknown_846437C:: @ 846437C + .incbin "baserom.gba", 0x46437C, 0x28 + +gUnknown_84643A4:: @ 84643A4 + .incbin "baserom.gba", 0x4643A4, 0x4 + +gUnknown_84643A8:: @ 84643A8 + .incbin "baserom.gba", 0x4643A8, 0x4 + +gUnknown_84643AC:: @ 84643AC + .incbin "baserom.gba", 0x4643AC, 0x4 + +gUnknown_84643B0:: @ 84643B0 + .incbin "baserom.gba", 0x4643B0, 0x4 + +gUnknown_84643B4:: @ 84643B4 + .incbin "baserom.gba", 0x4643B4, 0x4 + +gUnknown_84643B8:: @ 84643B8 + .incbin "baserom.gba", 0x4643B8, 0x20 + +gUnknown_84643D8:: @ 84643D8 + .incbin "baserom.gba", 0x4643D8, 0x18 + +gUnknown_84643F0:: @ 84643F0 + .incbin "baserom.gba", 0x4643F0, 0x8 + +gUnknown_84643F8:: @ 84643F8 + .incbin "baserom.gba", 0x4643F8, 0x8 + +gUnknown_8464400:: @ 8464400 + .incbin "baserom.gba", 0x464400, 0x48 + +gUnknown_8464448:: @ 8464448 + .incbin "baserom.gba", 0x464448, 0x60 + +gUnknown_84644A8:: @ 84644A8 + .incbin "baserom.gba", 0x4644A8, 0x8 + +gUnknown_84644B0:: @ 84644B0 + .incbin "baserom.gba", 0x4644B0, 0x8 + +gUnknown_84644B8:: @ 84644B8 + .incbin "baserom.gba", 0x4644B8, 0x32C diff --git a/data/buy_menu_helpers.s b/data/buy_menu_helpers.s new file mode 100644 index 000000000..a59b8e069 --- /dev/null +++ b/data/buy_menu_helpers.s @@ -0,0 +1,14 @@ + .section .rodata + .align 2 + +gUnknown_8464804:: @ 8464804 + .incbin "baserom.gba", 0x464804, 0x38 + +gUnknown_846483C:: @ 846483C + .incbin "baserom.gba", 0x46483C, 0x40 + +gUnknown_846487C:: @ 846487C + .incbin "baserom.gba", 0x46487C, 0x8 + +gUnknown_8464884:: @ 8464884 + .incbin "baserom.gba", 0x464884, 0xC diff --git a/data/data.s b/data/data.s index 505dde2c1..499e3c9db 100644 --- a/data/data.s +++ b/data/data.s @@ -1,5 +1,8 @@ #include "constants/region_map.h" #include "constants/trainer_classes.h" +#include "constants/songs.h" +#include "constants/region_map.h" + .set NULL, 0 .section .rodata @@ -73,7 +76,7 @@ gUnknown_82349BC:: @ 82349BC gUnknown_82349CC:: @ 82349CC .incbin "baserom.gba", 0x2349CC, 0x6E0 -gUnknown_82350AC:: @ 82350AC +gMonFrontPicTable:: @ 82350AC .incbin "baserom.gba", 0x2350AC, 0xE8 gUnknown_8235194:: @ 8235194 @@ -82,7 +85,7 @@ gUnknown_8235194:: @ 8235194 gUnknown_8235E6C:: @ 8235E6C .incbin "baserom.gba", 0x235E6C, 0x6E0 -gUnknown_823654C:: @ 823654C +gMonBackPicTable:: @ 823654C .incbin "baserom.gba", 0x23654C, 0xDC0 gMonPaletteTable:: @ 823730C @@ -100,10 +103,10 @@ gTrainerFrontAnimsPtrTable:: @ 82390DC gUnknown_823932C:: @ 823932C .incbin "baserom.gba", 0x23932C, 0x250 -gUnknown_823957C:: @ 823957C +gTrainerFrontPicTable:: @ 823957C .incbin "baserom.gba", 0x23957C, 0x4A0 -gUnknown_8239A1C:: @ 8239A1C +gTrainerFrontPicPaletteTable:: @ 8239A1C .incbin "baserom.gba", 0x239A1C, 0x558 gTrainerBackAnimsPtrTable:: @ 8239F74 @@ -112,7 +115,7 @@ gTrainerBackAnimsPtrTable:: @ 8239F74 gUnknown_8239F8C:: @ 8239F8C .incbin "baserom.gba", 0x239F8C, 0x18 -gUnknown_8239FA4:: @ 8239FA4 +gTrainerBackPicTable:: @ 8239FA4 .incbin "baserom.gba", 0x239FA4, 0x30 gUnknown_8239FD4:: @ 8239FD4 @@ -129,10 +132,7 @@ gTrainers:: @ 823EAD8 .incbin "baserom.gba", 0x23EAC8, 0x7418 gSpeciesNames:: @ 8245EE0 - .incbin "baserom.gba", 0x245EE0, 0xD05 - -gUnknown_8246BE5:: @ 8246BE5 - .incbin "baserom.gba", 0x246BE5, 0x4AF + .include "data/text/species_names.inc" gMoveNames:: @ 8247094 .incbin "baserom.gba", 0x247094, 0xF97 @@ -547,69 +547,9 @@ gUnknown_825E032:: @ 825E032 gUnknown_825E05C:: @ 825E05C .incbin "baserom.gba", 0x25E05C, 0x18 -gUnknown_825E074:: @ 825E074 - .incbin "baserom.gba", 0x25E074, 0x280 - -gUnknown_825E2F4:: @ 825E2F4 - .incbin "baserom.gba", 0x25E2F4, 0x168 - -gBitTable:: @ 825E45C - .incbin "baserom.gba", 0x25E45C, 0x80 - -gUnknown_825E4DC:: @ 825E4DC - .incbin "baserom.gba", 0x25E4DC, 0x18 - -gUnknown_825E4F4:: @ 825E4F4 - .incbin "baserom.gba", 0x25E4F4, 0x18 - -gUnknown_825E50C:: @ 825E50C - .incbin "baserom.gba", 0x25E50C, 0xA00 - -gUnknown_825EF0C:: @ 825EF0C - .incbin "baserom.gba", 0x25EF0C, 0x8E8 - -gUnknown_825F7F4:: @ 825F7F4 - .incbin "baserom.gba", 0x25F7F4, 0x20 - -gUnknown_825F814:: @ 825F814 - .incbin "baserom.gba", 0x25F814, 0x18 - -gUnknown_825F82C:: @ 825F82C - .incbin "baserom.gba", 0x25F82C, 0x10 - -gUnknown_825F83C:: @ 825F83C - .incbin "baserom.gba", 0x25F83C, 0x2 - -gUnknown_825F83E:: @ 825F83E - .incbin "baserom.gba", 0x25F83E, 0x8DE - -gUnknown_826011C:: @ 826011C - .incbin "baserom.gba", 0x26011C, 0x8 - -gUnknown_8260124:: @ 8260124 - .incbin "baserom.gba", 0x260124, 0x8 - -gUnknown_826012C:: @ 826012C - .incbin "baserom.gba", 0x26012C, 0x8 - -gUnknown_8260134:: @ 8260134 - .incbin "baserom.gba", 0x260134, 0x50 - -gUnknown_8260184:: @ 8260184 - .incbin "baserom.gba", 0x260184, 0x18 - -gUnknown_826019C:: @ 826019C - .incbin "baserom.gba", 0x26019C, 0x8 - -gUnknown_82601A4:: @ 82601A4 - .incbin "baserom.gba", 0x2601A4, 0x10 - -gUnknown_82601B4:: @ 82601B4 - .incbin "baserom.gba", 0x2601B4, 0x8 - -gUnknown_82601BC:: @ 82601BC - .incbin "baserom.gba", 0x2601BC, 0x4C + .section .rodata.825EF0C + .align 2 gUnknown_8260208:: @ 8260208 .incbin "baserom.gba", 0x260208, 0x8 @@ -751,13 +691,13 @@ gUnknown_8261E8A:: @ 8261E8A gUnknown_8261EB6:: @ 8261EB6 .incbin "baserom.gba", 0x261EB6, 0xB -gUnknown_8261EC1:: @ 8261EC1 +gText_MaleSymbol4:: @ 8261EC1 .incbin "baserom.gba", 0x261EC1, 0x2 -gUnknown_8261EC3:: @ 8261EC3 +gText_FemaleSymbol4:: @ 8261EC3 .incbin "baserom.gba", 0x261EC3, 0x2 -gUnknown_8261EC5:: @ 8261EC5 +gText_GenderlessSymbol:: @ 8261EC5 .incbin "baserom.gba", 0x261EC5, 0x2 gUnknown_8261EC7:: @ 8261EC7 @@ -793,7 +733,7 @@ gUnknown_8262055:: @ 8262055 gUnknown_826407C:: @ 826407C .incbin "baserom.gba", 0x26407C, 0x1FA0 -gUnknown_826601C:: @ 826601C +gUnknown_08331F60:: @ 826601C .incbin "baserom.gba", 0x26601C, 0x1000 gUnknown_826701C:: @ 826701C @@ -908,8 +848,16 @@ gUnknown_826D29E:: @ 826D29E gUnknown_826D2B0:: @ 826D2B0 .incbin "baserom.gba", 0x26D2B0, 0x28 -gUnknown_826D2D8:: @ 826D2D8 - .incbin "baserom.gba", 0x26D2D8, 0x48 +gDirectionToVectors:: @ 826D2D8 + .4byte 0, 0 + .4byte 0, 1 + .4byte 0, -1 + .4byte -1, 0 + .4byte 1, 0 + .4byte -1, 1 + .4byte 1, 1 + .4byte -1, -1 + .4byte 1, -1 gUnknown_826D320:: @ 826D320 .incbin "baserom.gba", 0x26D320, 0x10 @@ -918,36 +866,24 @@ gUnknown_826D330:: @ 826D330 .incbin "baserom.gba", 0x26D330, 0xC gUnknown_826D33C:: @ 826D33C - .incbin "baserom.gba", 0x26D33C, 0xC + .4byte sub_8058684 + .4byte sub_80586A4 + .4byte sub_80586A8 gUnknown_826D348:: @ 826D348 - .incbin "baserom.gba", 0x26D348, 0x2C + .4byte sub_80586C8 + .4byte sub_80586CC + .4byte sub_80586CC + .4byte sub_80586CC + .4byte sub_80586CC + .4byte sub_80586C8 + .4byte sub_80586C8 + .4byte sub_8058734 + .4byte sub_8058734 + .4byte sub_8058734 + .4byte sub_8058734 gUnknown_826D374:: @ 826D374 - .incbin "baserom.gba", 0x26D374, 0x78258 + .4byte sub_805874C + .4byte sub_8058754 -gUnknown_82E55CC:: @ 82E55CC - .incbin "baserom.gba", 0x2E55CC, 0x695C0 - -gUnknown_834EB8C:: @ 834EB8C - .incbin "baserom.gba", 0x34EB8C, 0x3B1C - -gUnknown_83526A8:: @ 83526A8 - .incbin "baserom.gba", 0x3526A8, 0x844 - -gUnknown_8352EEC:: @ 8352EEC - .incbin "baserom.gba", 0x352EEC, 0x4 - -gUnknown_8352EF0:: @ 8352EF0 - .incbin "baserom.gba", 0x352EF0, 0x20 - -gUnknown_8352F10:: @ 8352F10 - .incbin "baserom.gba", 0x352F10, 0x8 - - .align 2 -gUnknown_8352F18:: @ 8352F18 - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c" - - .align 2 -gUnknown_8352F4C:: @ 8352F4C - .asciz "VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE" diff --git a/data/data_835B488.s b/data/data_835B488.s index 8d2183672..c106c46c4 100644 --- a/data/data_835B488.s +++ b/data/data_835B488.s @@ -1,949 +1,8 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + .section .rodata - .align 2 -gUnknown_835B488:: @ 835B488 - .incbin "baserom.gba", 0x35B488, 0x14 - -gUnknown_835B49C:: @ 835B49C - .incbin "baserom.gba", 0x35B49C, 0x14 - -gUnknown_835B4B0:: @ 835B4B0 - .incbin "baserom.gba", 0x35B4B0, 0x14 - -gUnknown_835B4C4:: @ 835B4C4 - .incbin "baserom.gba", 0x35B4C4, 0x114 - -gUnknown_835B5D8:: @ 835B5D8 - .incbin "baserom.gba", 0x35B5D8, 0x18C - -gUnknown_835B764:: @ 835B764 - .incbin "baserom.gba", 0x35B764, 0xB0 - -gUnknown_835B814:: @ 835B814 - .incbin "baserom.gba", 0x35B814, 0xC - -gUnknown_835B820:: @ 835B820 - .incbin "baserom.gba", 0x35B820, 0x8 - -gUnknown_835B828:: @ 835B828 - .incbin "baserom.gba", 0x35B828, 0x14 - -gUnknown_835B83C:: @ 835B83C - .incbin "baserom.gba", 0x35B83C, 0x8 - -gUnknown_835B844:: @ 835B844 - .incbin "baserom.gba", 0x35B844, 0x20 - -gUnknown_835B864:: @ 835B864 - .incbin "baserom.gba", 0x35B864, 0x10 - -gUnknown_835B874:: @ 835B874 - .incbin "baserom.gba", 0x35B874, 0xC - -gUnknown_835B880:: @ 835B880 - .incbin "baserom.gba", 0x35B880, 0x2 - -gUnknown_835B882:: @ 835B882 - .incbin "baserom.gba", 0x35B882, 0xC - -gUnknown_835B88E:: @ 835B88E - .incbin "baserom.gba", 0x35B88E, 0x2 - -gUnknown_835B890:: @ 835B890 - .incbin "baserom.gba", 0x35B890, 0x10 - -gUnknown_835B8A0:: @ 835B8A0 - .incbin "baserom.gba", 0x35B8A0, 0xC - -gUnknown_835B8AC:: @ 835B8AC - .incbin "baserom.gba", 0x35B8AC, 0x4 - -gUnknown_835B8B0:: @ 835B8B0 - .incbin "baserom.gba", 0x35B8B0, 0x10 - -gUnknown_835B8C0:: @ 835B8C0 - .incbin "baserom.gba", 0x35B8C0, 0x4 - -gUnknown_835B8C4:: @ 835B8C4 - .incbin "baserom.gba", 0x35B8C4, 0x8 - -gUnknown_835B8CC:: @ 835B8CC - .incbin "baserom.gba", 0x35B8CC, 0x40 - -gUnknown_835B90C:: @ 835B90C - .incbin "baserom.gba", 0x35B90C, 0x6 - -gUnknown_835B912:: @ 835B912 - .incbin "baserom.gba", 0x35B912, 0x6 - -gUnknown_835B918:: @ 835B918 - .incbin "baserom.gba", 0x35B918, 0x2 - -gUnknown_835B91A:: @ 835B91A - .incbin "baserom.gba", 0x35B91A, 0x6 - -gUnknown_835B920:: @ 835B920 - .incbin "baserom.gba", 0x35B920, 0xC - -gUnknown_835B92C:: @ 835B92C - .incbin "baserom.gba", 0x35B92C, 0x8 - -gUnknown_835B934:: @ 835B934 - .incbin "baserom.gba", 0x35B934, 0x10 - -gUnknown_835B944:: @ 835B944 - .incbin "baserom.gba", 0x35B944, 0x18 - -gUnknown_835B95C:: @ 835B95C - .incbin "baserom.gba", 0x35B95C, 0x3DA2C - -gUnknown_8399388:: @ 8399388 - .incbin "baserom.gba", 0x399388, 0x908 - -gUnknown_8399C90:: @ 8399C90 - .incbin "baserom.gba", 0x399C90, 0x5F38 - -gUnknown_839FBC8:: @ 839FBC8 - .incbin "baserom.gba", 0x39FBC8, 0x144 - -gUnknown_839FD0C:: @ 839FD0C - .incbin "baserom.gba", 0x39FD0C, 0x51 - -gUnknown_839FD5D:: @ 839FD5D - .incbin "baserom.gba", 0x39FD5D, 0x53 - -gUnknown_839FDB0:: @ 839FDB0 - .incbin "baserom.gba", 0x39FDB0, 0x260 - -gUnknown_83A0010:: @ 83A0010 - .incbin "baserom.gba", 0x3A0010, 0x3688 - -gUnknown_83A3698:: @ 83A3698 - .incbin "baserom.gba", 0x3A3698, 0x1AC0 - -gUnknown_83A5158:: @ 83A5158 - .incbin "baserom.gba", 0x3A5158, 0xB0 - -gUnknown_83A5208:: @ 83A5208 - .incbin "baserom.gba", 0x3A5208, 0x70 - -gUnknown_83A5278:: @ 83A5278 - .incbin "baserom.gba", 0x3A5278, 0xB8 - -gUnknown_83A5330:: @ 83A5330 - .incbin "baserom.gba", 0x3A5330, 0x18 - -gUnknown_83A5348:: @ 83A5348 - .incbin "baserom.gba", 0x3A5348, 0xCB8 - -gUnknown_83A6000:: @ 83A6000 - .incbin "baserom.gba", 0x3A6000, 0x10 - -gUnknown_83A6010:: @ 83A6010 - .incbin "baserom.gba", 0x3A6010, 0x8 - -gUnknown_83A6018:: @ 83A6018 - .incbin "baserom.gba", 0x3A6018, 0x1C - -gUnknown_83A6034:: @ 83A6034 - .incbin "baserom.gba", 0x3A6034, 0x1C - -gUnknown_83A6050:: @ 83A6050 - .incbin "baserom.gba", 0x3A6050, 0x4 - -gUnknown_83A6054:: @ 83A6054 - .incbin "baserom.gba", 0x3A6054, 0x2C - -gUnknown_83A6080:: @ 83A6080 - .incbin "baserom.gba", 0x3A6080, 0x14 - -gUnknown_83A6094:: @ 83A6094 - .incbin "baserom.gba", 0x3A6094, 0x1C - -gUnknown_83A60B0:: @ 83A60B0 - .incbin "baserom.gba", 0x3A60B0, 0x4 - -gUnknown_83A60B4:: @ 83A60B4 - .incbin "baserom.gba", 0x3A60B4, 0x1C - -gUnknown_83A60D0:: @ 83A60D0 - .incbin "baserom.gba", 0x3A60D0, 0x4 - -gUnknown_83A60D4:: @ 83A60D4 - .incbin "baserom.gba", 0x3A60D4, 0xC - -gUnknown_83A60E0:: @ 83A60E0 - .incbin "baserom.gba", 0x3A60E0, 0x14 - -gUnknown_83A60F4:: @ 83A60F4 - .incbin "baserom.gba", 0x3A60F4, 0x14 - -gUnknown_83A6108:: @ 83A6108 - .incbin "baserom.gba", 0x3A6108, 0x14 - -gUnknown_83A611C:: @ 83A611C - .incbin "baserom.gba", 0x3A611C, 0x4 - -gUnknown_83A6120:: @ 83A6120 - .incbin "baserom.gba", 0x3A6120, 0x14 - -gUnknown_83A6134:: @ 83A6134 - .incbin "baserom.gba", 0x3A6134, 0x4 - -gUnknown_83A6138:: @ 83A6138 - .incbin "baserom.gba", 0x3A6138, 0x14 - -gUnknown_83A614C:: @ 83A614C - .incbin "baserom.gba", 0x3A614C, 0x4 - -gUnknown_83A6150:: @ 83A6150 - .incbin "baserom.gba", 0x3A6150, 0x14 - -gUnknown_83A6164:: @ 83A6164 - .incbin "baserom.gba", 0x3A6164, 0x4 - -gUnknown_83A6168:: @ 83A6168 - .incbin "baserom.gba", 0x3A6168, 0x14 - -gUnknown_83A617C:: @ 83A617C - .incbin "baserom.gba", 0x3A617C, 0x4 - -gUnknown_83A6180:: @ 83A6180 - .incbin "baserom.gba", 0x3A6180, 0x14 - -gUnknown_83A6194:: @ 83A6194 - .incbin "baserom.gba", 0x3A6194, 0x4 - -gUnknown_83A6198:: @ 83A6198 - .incbin "baserom.gba", 0x3A6198, 0x14 - -gUnknown_83A61AC:: @ 83A61AC - .incbin "baserom.gba", 0x3A61AC, 0x4 - -gUnknown_83A61B0:: @ 83A61B0 - .incbin "baserom.gba", 0x3A61B0, 0x14 - -gUnknown_83A61C4:: @ 83A61C4 - .incbin "baserom.gba", 0x3A61C4, 0x4 - -gUnknown_83A61C8:: @ 83A61C8 - .incbin "baserom.gba", 0x3A61C8, 0x10 - -gUnknown_83A61D8:: @ 83A61D8 - .incbin "baserom.gba", 0x3A61D8, 0x8 - -gUnknown_83A61E0:: @ 83A61E0 - .incbin "baserom.gba", 0x3A61E0, 0x10 - -gUnknown_83A61F0:: @ 83A61F0 - .incbin "baserom.gba", 0x3A61F0, 0x8 - -gUnknown_83A61F8:: @ 83A61F8 - .incbin "baserom.gba", 0x3A61F8, 0x10 - -gUnknown_83A6208:: @ 83A6208 - .incbin "baserom.gba", 0x3A6208, 0xC - -gUnknown_83A6214:: @ 83A6214 - .incbin "baserom.gba", 0x3A6214, 0x4 - -gUnknown_83A6218:: @ 83A6218 - .incbin "baserom.gba", 0x3A6218, 0xC - -gUnknown_83A6224:: @ 83A6224 - .incbin "baserom.gba", 0x3A6224, 0x4 - -gUnknown_83A6228:: @ 83A6228 - .incbin "baserom.gba", 0x3A6228, 0xC - -gUnknown_83A6234:: @ 83A6234 - .incbin "baserom.gba", 0x3A6234, 0x4 - -gUnknown_83A6238:: @ 83A6238 - .incbin "baserom.gba", 0x3A6238, 0xC - -gUnknown_83A6244:: @ 83A6244 - .incbin "baserom.gba", 0x3A6244, 0x4 - -gUnknown_83A6248:: @ 83A6248 - .incbin "baserom.gba", 0x3A6248, 0xC - -gUnknown_83A6254:: @ 83A6254 - .incbin "baserom.gba", 0x3A6254, 0x4 - -gUnknown_83A6258:: @ 83A6258 - .incbin "baserom.gba", 0x3A6258, 0xC - -gUnknown_83A6264:: @ 83A6264 - .incbin "baserom.gba", 0x3A6264, 0x4 - -gUnknown_83A6268:: @ 83A6268 - .incbin "baserom.gba", 0x3A6268, 0xC - -gUnknown_83A6274:: @ 83A6274 - .incbin "baserom.gba", 0x3A6274, 0xC - -gUnknown_83A6280:: @ 83A6280 - .incbin "baserom.gba", 0x3A6280, 0x4 - -gUnknown_83A6284:: @ 83A6284 - .incbin "baserom.gba", 0x3A6284, 0xC - -gUnknown_83A6290:: @ 83A6290 - .incbin "baserom.gba", 0x3A6290, 0x4 - -gUnknown_83A6294:: @ 83A6294 - .incbin "baserom.gba", 0x3A6294, 0xC - -gUnknown_83A62A0:: @ 83A62A0 - .incbin "baserom.gba", 0x3A62A0, 0x4 - -gUnknown_83A62A4:: @ 83A62A4 - .incbin "baserom.gba", 0x3A62A4, 0xC - -gUnknown_83A62B0:: @ 83A62B0 - .incbin "baserom.gba", 0x3A62B0, 0x4 - -gUnknown_83A62B4:: @ 83A62B4 - .incbin "baserom.gba", 0x3A62B4, 0xC - -gUnknown_83A62C0:: @ 83A62C0 - .incbin "baserom.gba", 0x3A62C0, 0x4 - -gUnknown_83A62C4:: @ 83A62C4 - .incbin "baserom.gba", 0x3A62C4, 0xC - -gUnknown_83A62D0:: @ 83A62D0 - .incbin "baserom.gba", 0x3A62D0, 0x4 - -gUnknown_83A62D4:: @ 83A62D4 - .incbin "baserom.gba", 0x3A62D4, 0xC - -gUnknown_83A62E0:: @ 83A62E0 - .incbin "baserom.gba", 0x3A62E0, 0x4 - -gUnknown_83A62E4:: @ 83A62E4 - .incbin "baserom.gba", 0x3A62E4, 0xC - -gUnknown_83A62F0:: @ 83A62F0 - .incbin "baserom.gba", 0x3A62F0, 0x4 - -gUnknown_83A62F4:: @ 83A62F4 - .incbin "baserom.gba", 0x3A62F4, 0xC - -gUnknown_83A6300:: @ 83A6300 - .incbin "baserom.gba", 0x3A6300, 0x4 - -gUnknown_83A6304:: @ 83A6304 - .incbin "baserom.gba", 0x3A6304, 0xC - -gUnknown_83A6310:: @ 83A6310 - .incbin "baserom.gba", 0x3A6310, 0x4 - -gUnknown_83A6314:: @ 83A6314 - .incbin "baserom.gba", 0x3A6314, 0xC - -gUnknown_83A6320:: @ 83A6320 - .incbin "baserom.gba", 0x3A6320, 0x4 - -gUnknown_83A6324:: @ 83A6324 - .incbin "baserom.gba", 0x3A6324, 0xC - -gUnknown_83A6330:: @ 83A6330 - .incbin "baserom.gba", 0x3A6330, 0x4 - -gUnknown_83A6334:: @ 83A6334 - .incbin "baserom.gba", 0x3A6334, 0xC - -gUnknown_83A6340:: @ 83A6340 - .incbin "baserom.gba", 0x3A6340, 0x4 - -gUnknown_83A6344:: @ 83A6344 - .incbin "baserom.gba", 0x3A6344, 0xC - -gUnknown_83A6350:: @ 83A6350 - .incbin "baserom.gba", 0x3A6350, 0x4 - -gUnknown_83A6354:: @ 83A6354 - .incbin "baserom.gba", 0x3A6354, 0xC - -gUnknown_83A6360:: @ 83A6360 - .incbin "baserom.gba", 0x3A6360, 0x4 - -gUnknown_83A6364:: @ 83A6364 - .incbin "baserom.gba", 0x3A6364, 0xC - -gUnknown_83A6370:: @ 83A6370 - .incbin "baserom.gba", 0x3A6370, 0x4 - -gUnknown_83A6374:: @ 83A6374 - .incbin "baserom.gba", 0x3A6374, 0xC - -gUnknown_83A6380:: @ 83A6380 - .incbin "baserom.gba", 0x3A6380, 0x4 - -gUnknown_83A6384:: @ 83A6384 - .incbin "baserom.gba", 0x3A6384, 0xC - -gUnknown_83A6390:: @ 83A6390 - .incbin "baserom.gba", 0x3A6390, 0x2C - -gUnknown_83A63BC:: @ 83A63BC - .incbin "baserom.gba", 0x3A63BC, 0xC - -gUnknown_83A63C8:: @ 83A63C8 - .incbin "baserom.gba", 0x3A63C8, 0x4 - -gUnknown_83A63CC:: @ 83A63CC - .incbin "baserom.gba", 0x3A63CC, 0x8 - -gUnknown_83A63D4:: @ 83A63D4 - .incbin "baserom.gba", 0x3A63D4, 0x8 - -gUnknown_83A63DC:: @ 83A63DC - .incbin "baserom.gba", 0x3A63DC, 0x8 - -gUnknown_83A63E4:: @ 83A63E4 - .incbin "baserom.gba", 0x3A63E4, 0xC - -gUnknown_83A63F0:: @ 83A63F0 - .incbin "baserom.gba", 0x3A63F0, 0xC - -gUnknown_83A63FC:: @ 83A63FC - .incbin "baserom.gba", 0x3A63FC, 0x8 - -gUnknown_83A6404:: @ 83A6404 - .incbin "baserom.gba", 0x3A6404, 0x8 - -gUnknown_83A640C:: @ 83A640C - .incbin "baserom.gba", 0x3A640C, 0x9 - -gUnknown_83A6415:: @ 83A6415 - .incbin "baserom.gba", 0x3A6415, 0x9 - -gUnknown_83A641E:: @ 83A641E - .incbin "baserom.gba", 0x3A641E, 0x9 - -gUnknown_83A6427:: @ 83A6427 - .incbin "baserom.gba", 0x3A6427, 0x9 - -gUnknown_83A6430:: @ 83A6430 - .incbin "baserom.gba", 0x3A6430, 0x9 - -gUnknown_83A6439:: @ 83A6439 - .incbin "baserom.gba", 0x3A6439, 0x9 - -gUnknown_83A6442:: @ 83A6442 - .incbin "baserom.gba", 0x3A6442, 0x9 - -gUnknown_83A644B:: @ 83A644B - .incbin "baserom.gba", 0x3A644B, 0x9 - -gUnknown_83A6454:: @ 83A6454 - .incbin "baserom.gba", 0x3A6454, 0x9 - -gUnknown_83A645D:: @ 83A645D - .incbin "baserom.gba", 0x3A645D, 0x9 - -gUnknown_83A6466:: @ 83A6466 - .incbin "baserom.gba", 0x3A6466, 0x9 - -gUnknown_83A646F:: @ 83A646F - .incbin "baserom.gba", 0x3A646F, 0x9 - -gUnknown_83A6478:: @ 83A6478 - .incbin "baserom.gba", 0x3A6478, 0x9 - -gUnknown_83A6481:: @ 83A6481 - .incbin "baserom.gba", 0x3A6481, 0x9 - -gUnknown_83A648A:: @ 83A648A - .incbin "baserom.gba", 0x3A648A, 0x9 - -gUnknown_83A6493:: @ 83A6493 - .incbin "baserom.gba", 0x3A6493, 0x9 - -gUnknown_83A649C:: @ 83A649C - .incbin "baserom.gba", 0x3A649C, 0xC - -gUnknown_83A64A8:: @ 83A64A8 - .incbin "baserom.gba", 0x3A64A8, 0x10 - -gUnknown_83A64B8:: @ 83A64B8 - .incbin "baserom.gba", 0x3A64B8, 0x10 - -gUnknown_83A64C8:: @ 83A64C8 - .incbin "baserom.gba", 0x3A64C8, 0x24 - -gUnknown_83A64EC:: @ 83A64EC - .incbin "baserom.gba", 0x3A64EC, 0x5 - -gUnknown_83A64F1:: @ 83A64F1 - .incbin "baserom.gba", 0x3A64F1, 0x5 - -gUnknown_83A64F6:: @ 83A64F6 - .incbin "baserom.gba", 0x3A64F6, 0x5 - -gUnknown_83A64FB:: @ 83A64FB - .incbin "baserom.gba", 0x3A64FB, 0x5 - -gUnknown_83A6500:: @ 83A6500 - .incbin "baserom.gba", 0x3A6500, 0x5 - -gUnknown_83A6505:: @ 83A6505 - .incbin "baserom.gba", 0x3A6505, 0x5 - -gUnknown_83A650A:: @ 83A650A - .incbin "baserom.gba", 0x3A650A, 0x5 - -gUnknown_83A650F:: @ 83A650F - .incbin "baserom.gba", 0x3A650F, 0x5 - -gUnknown_83A6514:: @ 83A6514 - .incbin "baserom.gba", 0x3A6514, 0x5 - -gUnknown_83A6519:: @ 83A6519 - .incbin "baserom.gba", 0x3A6519, 0x5 - -gUnknown_83A651E:: @ 83A651E - .incbin "baserom.gba", 0x3A651E, 0x5 - -gUnknown_83A6523:: @ 83A6523 - .incbin "baserom.gba", 0x3A6523, 0x5 - -gUnknown_83A6528:: @ 83A6528 - .incbin "baserom.gba", 0x3A6528, 0x5 - -gUnknown_83A652D:: @ 83A652D - .incbin "baserom.gba", 0x3A652D, 0x5 - -gUnknown_83A6532:: @ 83A6532 - .incbin "baserom.gba", 0x3A6532, 0x5 - -gUnknown_83A6537:: @ 83A6537 - .incbin "baserom.gba", 0x3A6537, 0x5 - -gUnknown_83A653C:: @ 83A653C - .incbin "baserom.gba", 0x3A653C, 0x5 - -gUnknown_83A6541:: @ 83A6541 - .incbin "baserom.gba", 0x3A6541, 0x5 - -gUnknown_83A6546:: @ 83A6546 - .incbin "baserom.gba", 0x3A6546, 0x5 - -gUnknown_83A654B:: @ 83A654B - .incbin "baserom.gba", 0x3A654B, 0x5 - -gUnknown_83A6550:: @ 83A6550 - .incbin "baserom.gba", 0x3A6550, 0x5 - -gUnknown_83A6555:: @ 83A6555 - .incbin "baserom.gba", 0x3A6555, 0x5 - -gUnknown_83A655A:: @ 83A655A - .incbin "baserom.gba", 0x3A655A, 0x5 - -gUnknown_83A655F:: @ 83A655F - .incbin "baserom.gba", 0x3A655F, 0x5 - -gUnknown_83A6564:: @ 83A6564 - .incbin "baserom.gba", 0x3A6564, 0x5 - -gUnknown_83A6569:: @ 83A6569 - .incbin "baserom.gba", 0x3A6569, 0x5 - -gUnknown_83A656E:: @ 83A656E - .incbin "baserom.gba", 0x3A656E, 0x5 - -gUnknown_83A6573:: @ 83A6573 - .incbin "baserom.gba", 0x3A6573, 0x5 - -gUnknown_83A6578:: @ 83A6578 - .incbin "baserom.gba", 0x3A6578, 0x5 - -gUnknown_83A657D:: @ 83A657D - .incbin "baserom.gba", 0x3A657D, 0x5 - -gUnknown_83A6582:: @ 83A6582 - .incbin "baserom.gba", 0x3A6582, 0x5 - -gUnknown_83A6587:: @ 83A6587 - .incbin "baserom.gba", 0x3A6587, 0x5 - -gUnknown_83A658C:: @ 83A658C - .incbin "baserom.gba", 0x3A658C, 0x5 - -gUnknown_83A6591:: @ 83A6591 - .incbin "baserom.gba", 0x3A6591, 0x8 - -gUnknown_83A6599:: @ 83A6599 - .incbin "baserom.gba", 0x3A6599, 0x10 - -gUnknown_83A65A9:: @ 83A65A9 - .incbin "baserom.gba", 0x3A65A9, 0x13 - -gUnknown_83A65BC:: @ 83A65BC - .incbin "baserom.gba", 0x3A65BC, 0x2C8 - -gUnknown_83A6884:: @ 83A6884 - .incbin "baserom.gba", 0x3A6884, 0xD4 - -gUnknown_83A6958:: @ 83A6958 - .incbin "baserom.gba", 0x3A6958, 0x6 - -gUnknown_83A695E:: @ 83A695E - .incbin "baserom.gba", 0x3A695E, 0x6C6 - -gUnknown_83A7024:: @ 83A7024 - .incbin "baserom.gba", 0x3A7024, 0x8 - -gUnknown_83A702C:: @ 83A702C - .incbin "baserom.gba", 0x3A702C, 0x18 - -gUnknown_83A7044:: @ 83A7044 - .incbin "baserom.gba", 0x3A7044, 0x18 - -gUnknown_83A705C:: @ 83A705C - .incbin "baserom.gba", 0x3A705C, 0x10 - -gUnknown_83A706C:: @ 83A706C - .incbin "baserom.gba", 0x3A706C, 0x10 - -gUnknown_83A707C:: @ 83A707C - .incbin "baserom.gba", 0x3A707C, 0x10 - -gUnknown_83A708C:: @ 83A708C - .incbin "baserom.gba", 0x3A708C, 0x10 - -gUnknown_83A709C:: @ 83A709C - .incbin "baserom.gba", 0x3A709C, 0xC - -gUnknown_83A70A8:: @ 83A70A8 - .incbin "baserom.gba", 0x3A70A8, 0x4 - -gUnknown_83A70AC:: @ 83A70AC - .incbin "baserom.gba", 0x3A70AC, 0x10 - -gUnknown_83A70BC:: @ 83A70BC - .incbin "baserom.gba", 0x3A70BC, 0xE0 - -gUnknown_83A719C:: @ 83A719C - .incbin "baserom.gba", 0x3A719C, 0x14 - -gUnknown_83A71B0:: @ 83A71B0 - .incbin "baserom.gba", 0x3A71B0, 0x3C - -gUnknown_83A71EC:: @ 83A71EC - .incbin "baserom.gba", 0x3A71EC, 0xC - -gUnknown_83A71F8:: @ 83A71F8 - .incbin "baserom.gba", 0x3A71F8, 0x6 - -gUnknown_83A71FE:: @ 83A71FE - .incbin "baserom.gba", 0x3A71FE, 0x4 - -gUnknown_83A7202:: @ 83A7202 - .incbin "baserom.gba", 0x3A7202, 0x6 - -gUnknown_83A7208:: @ 83A7208 - .incbin "baserom.gba", 0x3A7208, 0x4 - - .align 2 -gUnknown_83A720C:: @ 83A720C - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/evobjmv.c" - - .align 2 -gUnknown_83A7240:: @ 83A7240 - .asciz "0" - - .align 2 -gNullScriptPtr:: @ 83A7244 - .incbin "baserom.gba", 0x3A7244, 0x4 - -gUnknown_83A7248:: @ 83A7248 - .incbin "baserom.gba", 0x3A7248, 0x14 - -gUnknown_83A725C:: @ 83A725C - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c" - - .align 2 -gUnknown_83A7290:: @ 83A7290 - .asciz "0" - - .align 2 -gUnknown_83A7294:: @ 83A7294 - .incbin "baserom.gba", 0x3A7294, 0xC - -gUnknown_83A72A0:: @ 83A72A0 - .incbin "baserom.gba", 0x3A72A0, 0x2 - -gUnknown_83A72A2:: @ 83A72A2 - .incbin "baserom.gba", 0x3A72A2, 0x6 - -gUnknown_83A72A8:: @ 83A72A8 - .incbin "baserom.gba", 0x3A72A8, 0x68 - -gUnknown_83A7310:: @ 83A7310 - .incbin "baserom.gba", 0x3A7310, 0x20 - -gUnknown_83A7330:: @ 83A7330 - .incbin "baserom.gba", 0x3A7330, 0x14 - -gUnknown_83A7344:: @ 83A7344 - .incbin "baserom.gba", 0x3A7344, 0x48 - -gUnknown_83A738C:: @ 83A738C - .incbin "baserom.gba", 0x3A738C, 0x8 - -gUnknown_83A7394:: @ 83A7394 - .incbin "baserom.gba", 0x3A7394, 0x24 - -gUnknown_83A73B8:: @ 83A73B8 - .incbin "baserom.gba", 0x3A73B8, 0x4 - -gUnknown_83A73BC:: @ 83A73BC - .incbin "baserom.gba", 0x3A73BC, 0x10 - -gUnknown_83A73CC:: @ 83A73CC - .incbin "baserom.gba", 0x3A73CC, 0x8 - -gUnknown_83A73D4:: @ 83A73D4 - .incbin "baserom.gba", 0x3A73D4, 0x4 - -gUnknown_83A73D8:: @ 83A73D8 - .incbin "baserom.gba", 0x3A73D8, 0x4 - -gUnknown_83A73DC:: @ 83A73DC - .incbin "baserom.gba", 0x3A73DC, 0x284 - -gUnknown_83A7660:: @ 83A7660 - .incbin "baserom.gba", 0x3A7660, 0x2FF4 - -gUnknown_83AA654:: @ 83AA654 - .incbin "baserom.gba", 0x3AA654, 0x1220 - -gUnknown_83AB874:: @ 83AB874 - .incbin "baserom.gba", 0x3AB874, 0x540 - -gUnknown_83ABDB4:: @ 83ABDB4 - .incbin "baserom.gba", 0x3ABDB4, 0x434 - -gUnknown_83AC1E8:: @ 83AC1E8 - .incbin "baserom.gba", 0x3AC1E8, 0x410 - -gUnknown_83AC5F8:: @ 83AC5F8 - .incbin "baserom.gba", 0x3AC5F8, 0x1D0 - -gUnknown_83AC7C8:: @ 83AC7C8 - .incbin "baserom.gba", 0x3AC7C8, 0x188 - -gUnknown_83AC950:: @ 83AC950 - .incbin "baserom.gba", 0x3AC950, 0x10 - -gUnknown_83AC960:: @ 83AC960 - .incbin "baserom.gba", 0x3AC960, 0x10 - -gUnknown_83AC970:: @ 83AC970 - .incbin "baserom.gba", 0x3AC970, 0x20 - -sFanfares:: @ 83AC990 - .incbin "baserom.gba", 0x3AC990, 0x40 - -gUnknown_83AC9D0:: @ 83AC9D0 - .incbin "baserom.gba", 0x3AC9D0, 0x28 - -gUnknown_83AC9F8:: - .incbin "baserom.gba", 0x3AC9F8, 0x8 - -gUnknown_83ACA00:: - .incbin "baserom.gba", 0x3ACA00, 0x208 - -gUnknown_83ACC08:: @ 83ACC08 - .incbin "baserom.gba", 0x3ACC08, 0x440 - -gUnknown_83AD048:: @ 83AD048 - .incbin "baserom.gba", 0x3AD048, 0x308 - -gUnknown_83AD350:: @ 83AD350 - .incbin "baserom.gba", 0x3AD350, 0x120 - -gUnknown_83AD470:: @ 83AD470 - .incbin "baserom.gba", 0x3AD470, 0x4E0 - -gUnknown_83AD950:: @ 83AD950 - .incbin "baserom.gba", 0x3AD950, 0x308 - -gUnknown_83ADC58:: @ 83ADC58 - .incbin "baserom.gba", 0x3ADC58, 0x120 - -gUnknown_83ADD78:: @ 83ADD78 - .incbin "baserom.gba", 0x3ADD78, 0xA0 - -gUnknown_83ADE18:: @ 83ADE18 - .incbin "baserom.gba", 0x3ADE18, 0x144 - -gUnknown_83ADF5C:: @ 83ADF5C - .incbin "baserom.gba", 0x3ADF5C, 0xC0 - -gUnknown_83AE01C:: @ 83AE01C - .incbin "baserom.gba", 0x3AE01C, 0x20 - -gUnknown_83AE03C:: @ 83AE03C - .incbin "baserom.gba", 0x3AE03C, 0x10 - -gUnknown_83AE04C:: @ 83AE04C - .incbin "baserom.gba", 0x3AE04C, 0x4 - -gUnknown_83AE050:: @ 83AE050 - .incbin "baserom.gba", 0x3AE050, 0x4 - -gUnknown_83AE054:: @ 83AE054 - .incbin "baserom.gba", 0x3AE054, 0x30 - -gUnknown_83AE084:: @ 83AE084 - .incbin "baserom.gba", 0x3AE084, 0x114D0 - -gUnknown_83BF554:: @ 83BF554 - .incbin "baserom.gba", 0x3BF554, 0x8 - -gUnknown_83BF55C:: @ 83BF55C - .incbin "baserom.gba", 0x3BF55C, 0x18 - -gUnknown_83BF574:: @ 83BF574 - .incbin "baserom.gba", 0x3BF574, 0x18 - -gUnknown_83BF58C:: @ 83BF58C - .incbin "baserom.gba", 0x3BF58C, 0x1C - -gUnknown_83BF5A8:: @ 83BF5A8 - .incbin "baserom.gba", 0x3BF5A8, 0x55C - -gUnknown_83BFB04:: @ 83BFB04 - .incbin "baserom.gba", 0x3BFB04, 0x18 - -gUnknown_83BFB1C:: @ 83BFB1C - .incbin "baserom.gba", 0x3BFB1C, 0x20 - -gUnknown_83BFB3C:: @ 83BFB3C - .incbin "baserom.gba", 0x3BFB3C, 0x20 - -gUnknown_83BFB5C:: @ 83BFB5C - .incbin "baserom.gba", 0x3BFB5C, 0x18 - -gUnknown_83BFB74:: @ 83BFB74 - .incbin "baserom.gba", 0x3BFB74, 0x10 - -gUnknown_83BFB84:: @ 83BFB84 - .incbin "baserom.gba", 0x3BFB84, 0x18 - -gUnknown_83BFB9C:: @ 83BFB9C - .incbin "baserom.gba", 0x3BFB9C, 0x20 - -gUnknown_83BFBBC:: @ 83BFBBC - .incbin "baserom.gba", 0x3BFBBC, 0x18 - -gUnknown_83BFBD4:: @ 83BFBD4 - .incbin "baserom.gba", 0x3BFBD4, 0x2FE8 - -gUnknown_83C2BBC:: @ 83C2BBC - .incbin "baserom.gba", 0x3C2BBC, 0x4 - -gUnknown_83C2BC0:: @ 83C2BC0 - .incbin "baserom.gba", 0x3C2BC0, 0xF0 - -gUnknown_83C2CB0:: @ 83C2CB0 - .incbin "baserom.gba", 0x3C2CB0, 0x10 - -gUnknown_83C2CC0:: @ 83C2CC0 - .incbin "baserom.gba", 0x3C2CC0, 0x20 - -gUnknown_83C2CE0:: @ 83C2CE0 - .incbin "baserom.gba", 0x3C2CE0, 0x20 - -gUnknown_83C2D00:: @ 83C2D00 - .incbin "baserom.gba", 0x3C2D00, 0x20 - -gUnknown_83C2D20:: @ 83C2D20 - .incbin "baserom.gba", 0x3C2D20, 0x820 - -gUnknown_83C3540:: @ 83C3540 - .incbin "baserom.gba", 0x3C3540, 0x3080 - -gUnknown_83C65C0:: @ 83C65C0 - .incbin "baserom.gba", 0x3C65C0, 0x4 - -gUnknown_83C65C4:: @ 83C65C4 - .incbin "baserom.gba", 0x3C65C4, 0x4 - -gUnknown_83C65C8:: @ 83C65C8 - .incbin "baserom.gba", 0x3C65C8, 0xC - -gUnknown_83C65D4:: @ 83C65D4 - .incbin "baserom.gba", 0x3C65D4, 0x1C - -gUnknown_83C65F0:: @ 83C65F0 - .incbin "baserom.gba", 0x3C65F0, 0x18 - -gUnknown_83C6608:: @ 83C6608 - .incbin "baserom.gba", 0x3C6608, 0x9C - -gUnknown_83C66A4:: @ 83C66A4 - .incbin "baserom.gba", 0x3C66A4, 0x18 - -gUnknown_83C66BC:: @ 83C66BC - .incbin "baserom.gba", 0x3C66BC, 0x8 - -gUnknown_83C66C4:: @ 83C66C4 - .incbin "baserom.gba", 0x3C66C4, 0x8 - -gUnknown_83C66CC:: @ 83C66CC - .incbin "baserom.gba", 0x3C66CC, 0x38 - -gUnknown_83C6704:: @ 83C6704 - .incbin "baserom.gba", 0x3C6704, 0x8C - -gUnknown_83C6790:: @ 83C6790 - .incbin "baserom.gba", 0x3C6790, 0x18 - -gUnknown_83C67A8:: @ 83C67A8 - .incbin "baserom.gba", 0x3C67A8, 0x8 - -gUnknown_83C67B0:: @ 83C67B0 - .incbin "baserom.gba", 0x3C67B0, 0x20 - -gUnknown_83C67D0:: @ 83C67D0 - .incbin "baserom.gba", 0x3C67D0, 0x18 - -gUnknown_83C67E8:: @ 83C67E8 - .incbin "baserom.gba", 0x3C67E8, 0x1C - -gUnknown_83C6804:: @ 83C6804 - .incbin "baserom.gba", 0x3C6804, 0x38 - -gUnknown_83C683C:: @ 83C683C - .incbin "baserom.gba", 0x3C683C, 0x18 - -gUnknown_83C6854:: @ 83C6854 - .incbin "baserom.gba", 0x3C6854, 0x8 - -gUnknown_83C685C:: @ 83C685C - .incbin "baserom.gba", 0x3C685C, 0xC - -gUnknown_83C6868:: @ 83C6868 - .incbin "baserom.gba", 0x3C6868, 0x8 - -gUnknown_83C6870:: @ 83C6870 - .incbin "baserom.gba", 0x3C6870, 0x8 - -gUnknown_83C6878:: @ 83C6878 - .incbin "baserom.gba", 0x3C6878, 0x44 - -gUnknown_83C68BC:: @ 83C68BC - .incbin "baserom.gba", 0x3C68BC, 0x18 - -gUnknown_83C68D4:: @ 83C68D4 - .incbin "baserom.gba", 0x3C68D4, 0xC gUnknown_83C68E0:: @ 83C68E0 .incbin "baserom.gba", 0x3C68E0, 0x4 @@ -1483,38 +542,9 @@ gUnknown_83D414C:: @ 83D414C .incbin "baserom.gba", 0x3D414C, 0x18 gUnknown_83D4164:: @ 83D4164 - .incbin "baserom.gba", 0x3D4164, 0x80 - -gUnknown_83D41E4:: @ 83D41E4 - .incbin "baserom.gba", 0x3D41E4, 0x8 - -gUnknown_83D41EC:: @ 83D41EC - .incbin "baserom.gba", 0x3D41EC, 0x8 - -gUnknown_83D41F4:: @ 83D41F4 - .incbin "baserom.gba", 0x3D41F4, 0x8 - -gUnknown_83D41FC:: @ 83D41FC - .incbin "baserom.gba", 0x3D41FC, 0x44 - -gUnknown_83D4240:: @ 83D4240 - .incbin "baserom.gba", 0x3D4240, 0x8 - -gUnknown_83D4248:: @ 83D4248 - .incbin "baserom.gba", 0x3D4248, 0x8 - -gUnknown_83D4250:: @ 83D4250 - .incbin "baserom.gba", 0x3D4250, 0x2C - -gUnknown_83D427C:: @ 83D427C - .incbin "baserom.gba", 0x3D427C, 0x18 - -gUnknown_83D4294:: @ 83D4294 - .incbin "baserom.gba", 0x3D4294, 0x6D94 - -gUnknown_83DB028:: @ 83DB028 - .incbin "baserom.gba", 0x3DB028, 0x4074 + .incbin "baserom.gba", 0x3D4164, 0x8 + .section .rodata.83DF09C gUnknown_83DF09C:: @ 83DF09C .incbin "baserom.gba", 0x3DF09C, 0x18 @@ -1546,12 +576,9 @@ gUnknown_83DF0F2:: @ 83DF0F2 .incbin "baserom.gba", 0x3DF0F2, 0x6 gUnknown_83DF0F8:: @ 83DF0F8 - .incbin "baserom.gba", 0x3DF0F8, 0x6D4 + .incbin "baserom.gba", 0x3DF0F8, 0x6F0 -gUnknown_83DF7CC:: @ 83DF7CC - .incbin "baserom.gba", 0x3DF7CC, 0x1C - -gUnknown_83DF7E8:: @ 83DF7E8 +sBerries:: @ 83DF7E8 .incbin "baserom.gba", 0x3DF7E8, 0x4B4 gUnknown_83DFC9C:: @ 83DFC9C @@ -1560,7 +587,7 @@ gUnknown_83DFC9C:: @ 83DFC9C gUnknown_83E04B0:: @ 83E04B0 .incbin "baserom.gba", 0x3E04B0, 0x208 -gUnknown_83E06B8:: @ 83E06B8 +gStdStringPtrs:: @ 83E06B8 .incbin "baserom.gba", 0x3E06B8, 0x74 gUnknown_83E072C:: @ 83E072C @@ -1747,7 +774,13 @@ gUnknown_83E27AC:: @ 83E27AC .incbin "baserom.gba", 0x3E27AC, 0x1A8 gUnknown_83E2954:: @ 83E2954 - .incbin "baserom.gba", 0x3E2954, 0x134 + .4byte sub_8124C8C + .4byte CB2_ReturnToField + .4byte NULL + .4byte NULL + +gUnknown_83E2964:: @ 83E2964 + .incbin "baserom.gba", 0x3E2964, 0x124 gUnknown_83E2A88:: @ 83E2A88 .incbin "baserom.gba", 0x3E2A88, 0x4F0 @@ -1990,19 +1023,9 @@ gUnknown_83EEAC4:: @ 83EEAC4 .incbin "baserom.gba", 0x3EEAC4, 0xA4 gUnknown_83EEB68:: @ 83EEB68 - .incbin "baserom.gba", 0x3EEB68, 0x88 + .incbin "baserom.gba", 0x3EEB68, 0x90 -gUnknown_83EEBF0:: @ 83EEBF0 - .incbin "baserom.gba", 0x3EEBF0, 0x8 - -gUnknown_83EEBF8:: @ 83EEBF8 - .incbin "baserom.gba", 0x3EEBF8, 0xA0 - -gUnknown_83EEC98:: @ 83EEC98 - .incbin "baserom.gba", 0x3EEC98, 0x50 - -gUnknown_83EECE8:: @ 83EECE8 - .incbin "baserom.gba", 0x3EECE8, 0x14 + .section .rodata.83EEC98 .include "data/text/map_section_names.inc" diff --git a/data/data_83F5738.s b/data/data_83F5738.s index e6f026d0e..c14edc5c8 100644 --- a/data/data_83F5738.s +++ b/data/data_83F5738.s @@ -55,7 +55,7 @@ gUnknown_83F5BCC:: @ 83F5BCC gUnknown_83F5D1C:: @ 83F5D1C .incbin "baserom.gba", 0x3F5D1C, 0x10 -gUnknown_83F5D2C:: @ 83F5D2C +sStarterMon:: @ 83F5D2C .incbin "baserom.gba", 0x3F5D2C, 0x6 gUnknown_83F5D32:: @ 83F5D32 diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 9c39a96d2..1a1ab6d0a 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -1,3 +1,5 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" .section .rodata .align 2 @@ -517,1777 +519,10 @@ gUnknown_8415A08:: @ 8415A08 gUnknown_8415A10:: @ 8415A10 .incbin "baserom.gba", 0x415A10, 0x10 -gExpandedPlaceholder_Empty:: @ 8415A20 - .incbin "baserom.gba", 0x415A20, 0x1 - -gExpandedPlaceholder_Kun:: @ 8415A21 - .incbin "baserom.gba", 0x415A21, 0x1 - -gExpandedPlaceholder_Chan:: @ 8415A22 - .incbin "baserom.gba", 0x415A22, 0xA - -gExpandedPlaceholder_Ruby:: @ 8415A2C - .incbin "baserom.gba", 0x415A2C, 0x5 - -gExpandedPlaceholder_Aqua:: @ 8415A31 - .incbin "baserom.gba", 0x415A31, 0x5 - -gExpandedPlaceholder_Magma:: @ 8415A36 - .incbin "baserom.gba", 0x415A36, 0x6 - -gExpandedPlaceholder_Archie:: @ 8415A3C - .incbin "baserom.gba", 0x415A3C, 0x7 - -gExpandedPlaceholder_Maxie:: @ 8415A43 - .incbin "baserom.gba", 0x415A43, 0x6 - -gExpandedPlaceholder_Kyogre:: @ 8415A49 - .incbin "baserom.gba", 0x415A49, 0x7 - -gExpandedPlaceholder_Groudon:: @ 8415A50 - .incbin "baserom.gba", 0x415A50, 0x8 - -gExpandedPlaceholder_Red:: @ 8415A58 - .incbin "baserom.gba", 0x415A58, 0x4 - -gExpandedPlaceholder_Green:: @ 8415A5C - .incbin "baserom.gba", 0x415A5C, 0x6 - -gText_EggNickname:: @ 8415A62 - .incbin "baserom.gba", 0x415A62, 0x4 - -gText_Pokemon:: @ 8415A66 - .incbin "baserom.gba", 0x415A66, 0x8 - -gUnknown_8415A6E:: @ 8415A6E - .incbin "baserom.gba", 0x415A6E, 0x9 - -gUnknown_8415A77:: @ 8415A77 - .incbin "baserom.gba", 0x415A77, 0x20 - -gUnknown_8415A97:: @ 8415A97 - .incbin "baserom.gba", 0x415A97, 0xD - -gUnknown_8415AA4:: @ 8415AA4 - .incbin "baserom.gba", 0x415AA4, 0x27 - -gUnknown_8415ACB:: @ 8415ACB - .incbin "baserom.gba", 0x415ACB, 0x134 - -gUnknown_8415BFF:: @ 8415BFF - .incbin "baserom.gba", 0x415BFF, 0x43 - -gUnknown_8415C42:: @ 8415C42 - .incbin "baserom.gba", 0x415C42, 0x22 - -gUnknown_8415C64:: @ 8415C64 - .incbin "baserom.gba", 0x415C64, 0x84 - -gUnknown_8415CE8:: @ 8415CE8 - .incbin "baserom.gba", 0x415CE8, 0x44 - -gUnknown_8415D2C:: @ 8415D2C - .incbin "baserom.gba", 0x415D2C, 0x1C - -gUnknown_8415D48:: @ 8415D48 - .incbin "baserom.gba", 0x415D48, 0x8 - -gUnknown_8415D50:: @ 8415D50 - .incbin "baserom.gba", 0x415D50, 0x10 - -gUnknown_8415D60:: @ 8415D60 - .incbin "baserom.gba", 0x415D60, 0x18 - -gUnknown_8415D78:: @ 8415D78 - .incbin "baserom.gba", 0x415D78, 0x14 - -gUnknown_8415D8C:: @ 8415D8C - .incbin "baserom.gba", 0x415D8C, 0x7 - -gUnknown_8415D93:: @ 8415D93 - .incbin "baserom.gba", 0x415D93, 0x4 - -gUnknown_8415D97:: @ 8415D97 - .incbin "baserom.gba", 0x415D97, 0x5 - -gUnknown_8415D9C:: @ 8415D9C - .incbin "baserom.gba", 0x415D9C, 0x1C - -gUnknown_8415DB8:: @ 8415DB8 - .incbin "baserom.gba", 0x415DB8, 0xC - -gUnknown_8415DC4:: @ 8415DC4 - .incbin "baserom.gba", 0x415DC4, 0x6 - -gUnknown_8415DCA:: @ 8415DCA - .incbin "baserom.gba", 0x415DCA, 0x7 - -gUnknown_8415DD1:: @ 8415DD1 - .incbin "baserom.gba", 0x415DD1, 0x6 - -gUnknown_8415DD7:: @ 8415DD7 - .incbin "baserom.gba", 0x415DD7, 0x166 - -gUnknown_8415F3D:: @ 8415F3D - .incbin "baserom.gba", 0x415F3D, 0xD - -gUnknown_8415F4A:: @ 8415F4A - .incbin "baserom.gba", 0x415F4A, 0x7 - -gUnknown_8415F51:: @ 8415F51 - .incbin "baserom.gba", 0x415F51, 0x15 - -gUnknown_8415F66:: @ 8415F66 - .incbin "baserom.gba", 0x415F66, 0x6 - -gUnknown_8415F6C:: @ 8415F6C - .incbin "baserom.gba", 0x415F6C, 0x23 - -gUnknown_8415F8F:: @ 8415F8F - .incbin "baserom.gba", 0x415F8F, 0x9 - -gUnknown_8415F98:: @ 8415F98 - .incbin "baserom.gba", 0x415F98, 0x3 - -gUnknown_8415F9B:: @ 8415F9B - .incbin "baserom.gba", 0x415F9B, 0x5 - -gUnknown_8415FA0:: @ 8415FA0 - .incbin "baserom.gba", 0x415FA0, 0xD - -gUnknown_8415FAD:: @ 8415FAD - .incbin "baserom.gba", 0x415FAD, 0x6 - -gUnknown_8415FB3:: @ 8415FB3 - .incbin "baserom.gba", 0x415FB3, 0x15 - -gUnknown_8415FC8:: @ 8415FC8 - .incbin "baserom.gba", 0x415FC8, 0x7 - -gUnknown_8415FCF:: @ 8415FCF - .incbin "baserom.gba", 0x415FCF, 0x19 - -gUnknown_8415FE8:: @ 8415FE8 - .incbin "baserom.gba", 0x415FE8, 0x5 - -gUnknown_8415FED:: @ 8415FED - .incbin "baserom.gba", 0x415FED, 0x5 - -gUnknown_8415FF2:: @ 8415FF2 - .incbin "baserom.gba", 0x415FF2, 0xD - -gUnknown_8415FFF:: @ 8415FFF - .incbin "baserom.gba", 0x415FFF, 0x3 - -gUnknown_8416002:: @ 8416002 - .incbin "baserom.gba", 0x416002, 0x6 - -gUnknown_8416008:: @ 8416008 - .incbin "baserom.gba", 0x416008, 0x88 - -gUnknown_8416090:: @ 8416090 - .incbin "baserom.gba", 0x416090, 0x24 - -gUnknown_84160B4:: @ 84160B4 - .incbin "baserom.gba", 0x4160B4, 0x14 - -gUnknown_84160C8:: @ 84160C8 - .incbin "baserom.gba", 0x4160C8, 0x24 - -gUnknown_84160EC:: @ 84160EC - .incbin "baserom.gba", 0x4160EC, 0x8 - -gUnknown_84160F4:: @ 84160F4 - .incbin "baserom.gba", 0x4160F4, 0x8 - -gUnknown_84160FC:: @ 84160FC - .incbin "baserom.gba", 0x4160FC, 0x8 - -gUnknown_8416104:: @ 8416104 - .incbin "baserom.gba", 0x416104, 0x47 - -gUnknown_841614B:: @ 841614B - .incbin "baserom.gba", 0x41614B, 0x2F - -gUnknown_841617A:: @ 841617A - .incbin "baserom.gba", 0x41617A, 0x7 - -gUnknown_8416181:: @ 8416181 - .incbin "baserom.gba", 0x416181, 0x7 - -gUnknown_8416188:: @ 8416188 - .incbin "baserom.gba", 0x416188, 0x8 - -gUnknown_8416190:: @ 8416190 - .incbin "baserom.gba", 0x416190, 0x31 - -gFameCheckerText_Cancel:: @ 84161C1 - .string "CANCEL$" - -gUnknown_84161C8:: @ 84161C8 - .incbin "baserom.gba", 0x4161C8, 0x5 - -gUnknown_84161CD:: @ 84161CD - .incbin "baserom.gba", 0x4161CD, 0x22 - -gUnknown_84161EF:: @ 84161EF - .incbin "baserom.gba", 0x4161EF, 0x13 - -gUnknown_8416202:: @ 8416202 - .incbin "baserom.gba", 0x416202, 0xA - -gUnknown_841620C:: @ 841620C - .incbin "baserom.gba", 0x41620C, 0x2 - -gUnknown_841620E:: @ 841620E - .incbin "baserom.gba", 0x41620E, 0x2 - -gUnknown_8416210:: @ 8416210 - .incbin "baserom.gba", 0x416210, 0x3 - -gUnknown_8416213:: @ 8416213 - .incbin "baserom.gba", 0x416213, 0x4 - -gUnknown_8416217:: @ 8416217 - .incbin "baserom.gba", 0x416217, 0x8 - -gUnknown_841621F:: @ 841621F - .incbin "baserom.gba", 0x41621F, 0x2 - -gUnknown_8416221:: @ 8416221 - .incbin "baserom.gba", 0x416221, 0x2 - -gUnknown_8416223:: @ 8416223 - .incbin "baserom.gba", 0x416223, 0x3 - -gUnknown_8416226:: @ 8416226 - .incbin "baserom.gba", 0x416226, 0x12 - -gUnknown_8416238:: @ 8416238 - .incbin "baserom.gba", 0x416238, 0x3 - -gFameCheckerText_ListMenuCursor:: @ 841623B - .string "▶$" - -gUnknown_841623D:: @ 841623D - .incbin "baserom.gba", 0x41623D, 0x25 - -gUnknown_8416262:: @ 8416262 - .incbin "baserom.gba", 0x416262, 0x23 - -gUnknown_8416285:: @ 8416285 - .incbin "baserom.gba", 0x416285, 0x24 - -gUnknown_84162A9:: @ 84162A9 - .incbin "baserom.gba", 0x4162A9, 0x10 - -gUnknown_84162B9:: @ 84162B9 - .incbin "baserom.gba", 0x4162B9, 0x4 - -gUnknown_84162BD:: @ 84162BD - .incbin "baserom.gba", 0x4162BD, 0x7 - -gText_Coins:: @ 84162C4 - .incbin "baserom.gba", 0x4162C4, 0x24 - -gUnknown_84162E8:: @ 84162E8 - .incbin "baserom.gba", 0x4162E8, 0xD - -gUnknown_84162F5:: @ 84162F5 - .incbin "baserom.gba", 0x4162F5, 0xA - -gUnknown_84162FF:: @ 84162FF - .incbin "baserom.gba", 0x4162FF, 0x2 - -gUnknown_8416301:: @ 8416301 - .incbin "baserom.gba", 0x416301, 0xE - -gUnknown_841630F:: @ 841630F - .incbin "baserom.gba", 0x41630F, 0x1B - -gUnknown_841632A:: @ 841632A - .incbin "baserom.gba", 0x41632A, 0x15 - -gUnknown_841633F:: @ 841633F - .incbin "baserom.gba", 0x41633F, 0x1F - -gUnknown_841635E:: @ 841635E - .incbin "baserom.gba", 0x41635E, 0x16 - -gUnknown_8416374:: @ 8416374 - .incbin "baserom.gba", 0x416374, 0x1B - -gUnknown_841638F:: @ 841638F - .incbin "baserom.gba", 0x41638F, 0x18 - -gUnknown_84163A7:: @ 84163A7 - .incbin "baserom.gba", 0x4163A7, 0x14 - -gUnknown_84163BB:: @ 84163BB - .incbin "baserom.gba", 0x4163BB, 0x20 - -gUnknown_84163DB:: @ 84163DB - .incbin "baserom.gba", 0x4163DB, 0x19 - -gUnknown_84163F4:: @ 84163F4 - .incbin "baserom.gba", 0x4163F4, 0x15 - -gUnknown_8416409:: @ 8416409 - .incbin "baserom.gba", 0x416409, 0x1C - -gUnknown_8416425:: @ 8416425 - .incbin "baserom.gba", 0x416425, 0x2C - -gUnknown_8416451:: @ 8416451 - .incbin "baserom.gba", 0x416451, 0x25 - -gUnknown_8416476:: @ 8416476 - .incbin "baserom.gba", 0x416476, 0x48 - -gUnknown_84164BE:: @ 84164BE - .incbin "baserom.gba", 0x4164BE, 0x55 - -gUnknown_8416513:: @ 8416513 - .incbin "baserom.gba", 0x416513, 0x24 - -gUnknown_8416537:: @ 8416537 - .incbin "baserom.gba", 0x416537, 0x55 - -gUnknown_841658C:: @ 841658C - .incbin "baserom.gba", 0x41658C, 0x12 - -gUnknown_841659E:: @ 841659E - .incbin "baserom.gba", 0x41659E, 0x34 - -gUnknown_84165D2:: @ 84165D2 - .incbin "baserom.gba", 0x4165D2, 0x2E - -gUnknown_8416600:: @ 8416600 - .incbin "baserom.gba", 0x416600, 0x31 - -gUnknown_8416631:: @ 8416631 - .incbin "baserom.gba", 0x416631, 0x13 - -gUnknown_8416644:: @ 8416644 - .incbin "baserom.gba", 0x416644, 0x11 - -gUnknown_8416655:: @ 8416655 - .incbin "baserom.gba", 0x416655, 0x7 - -gUnknown_841665C:: @ 841665C - .incbin "baserom.gba", 0x41665C, 0x34 - -gUnknown_8416690:: @ 8416690 - .incbin "baserom.gba", 0x416690, 0x17 - -gUnknown_84166A7:: @ 84166A7 - .incbin "baserom.gba", 0x4166A7, 0x2C - -gUnknown_84166D3:: @ 84166D3 - .incbin "baserom.gba", 0x4166D3, 0x8 - -gUnknown_84166DB:: @ 84166DB - .incbin "baserom.gba", 0x4166DB, 0x6 - -gUnknown_84166E1:: @ 84166E1 - .incbin "baserom.gba", 0x4166E1, 0x1E - -gUnknown_84166FF:: @ 84166FF - .incbin "baserom.gba", 0x4166FF, 0x4 - -gUnknown_8416703:: @ 8416703 - .incbin "baserom.gba", 0x416703, 0x7 - -gUnknown_841670A:: @ 841670A - .incbin "baserom.gba", 0x41670A, 0xC - -gUnknown_8416716:: @ 8416716 - .incbin "baserom.gba", 0x416716, 0x33 - -gUnknown_8416749:: @ 8416749 - .incbin "baserom.gba", 0x416749, 0xE - -gUnknown_8416757:: @ 8416757 - .incbin "baserom.gba", 0x416757, 0xF - -gUnknown_8416766:: @ 8416766 - .incbin "baserom.gba", 0x416766, 0x28 - -gUnknown_841678E:: @ 841678E - .incbin "baserom.gba", 0x41678E, 0x59 - -gUnknown_84167E7:: @ 84167E7 - .incbin "baserom.gba", 0x4167E7, 0x5B - -gUnknown_8416842:: @ 8416842 - .incbin "baserom.gba", 0x416842, 0x1F - -gUnknown_8416861:: @ 8416861 - .incbin "baserom.gba", 0x416861, 0x3D - -gUnknown_841689E:: @ 841689E - .incbin "baserom.gba", 0x41689E, 0x53 - -gUnknown_84168F1:: @ 84168F1 - .incbin "baserom.gba", 0x4168F1, 0x20 - -gUnknown_8416911:: @ 8416911 - .incbin "baserom.gba", 0x416911, 0x25 - -gUnknown_8416936:: @ 8416936 - .incbin "baserom.gba", 0x416936, 0x23 - -gUnknown_8416959:: @ 8416959 - .incbin "baserom.gba", 0x416959, 0x21 - -gText_PokedollarVar1:: @ 841697A - .incbin "baserom.gba", 0x41697A, 0x48 - -gUnknown_84169C2:: @ 84169C2 - .incbin "baserom.gba", 0x4169C2, 0x3 - -gUnknown_84169C5:: @ 84169C5 - .incbin "baserom.gba", 0x4169C5, 0x8 - -gUnknown_84169CD:: @ 84169CD - .incbin "baserom.gba", 0x4169CD, 0x8 - -gUnknown_84169D5:: @ 84169D5 - .incbin "baserom.gba", 0x4169D5, 0x4 - -gUnknown_84169D9:: @ 84169D9 - .incbin "baserom.gba", 0x4169D9, 0x3 - -gUnknown_84169DC:: @ 84169DC - .incbin "baserom.gba", 0x4169DC, 0x1C - -gUnknown_84169F8:: @ 84169F8 - .incbin "baserom.gba", 0x4169F8, 0x26 - -gUnknown_8416A1E:: @ 8416A1E - .incbin "baserom.gba", 0x416A1E, 0x1C - -gUnknown_8416A3A:: @ 8416A3A - .incbin "baserom.gba", 0x416A3A, 0x1B - -gUnknown_8416A55:: @ 8416A55 - .incbin "baserom.gba", 0x416A55, 0x20 - -gUnknown_8416A75:: @ 8416A75 - .incbin "baserom.gba", 0x416A75, 0x23 - -gUnknown_8416A98:: @ 8416A98 - .incbin "baserom.gba", 0x416A98, 0x33 - -gUnknown_8416ACB:: @ 8416ACB - .incbin "baserom.gba", 0x416ACB, 0x17 - -gUnknown_8416AE2:: @ 8416AE2 - .incbin "baserom.gba", 0x416AE2, 0x34 - -gUnknown_8416B16:: @ 8416B16 - .incbin "baserom.gba", 0x416B16, 0x28 - -gUnknown_8416B3E:: @ 8416B3E - .incbin "baserom.gba", 0x416B3E, 0x26 - -gUnknown_8416B64:: @ 8416B64 - .incbin "baserom.gba", 0x416B64, 0x22 - -gUnknown_8416B86:: @ 8416B86 - .incbin "baserom.gba", 0x416B86, 0x20 - -gUnknown_8416BA6:: @ 8416BA6 - .incbin "baserom.gba", 0x416BA6, 0x1D - -gUnknown_8416BC3:: @ 8416BC3 - .incbin "baserom.gba", 0x416BC3, 0x38 - -gUnknown_8416BFB:: @ 8416BFB - .incbin "baserom.gba", 0x416BFB, 0x2F - -gUnknown_8416C2A:: @ 8416C2A - .incbin "baserom.gba", 0x416C2A, 0x1F - -gUnknown_8416C49:: @ 8416C49 - .incbin "baserom.gba", 0x416C49, 0x46 - -gUnknown_8416C8F:: @ 8416C8F - .incbin "baserom.gba", 0x416C8F, 0x1D - -gUnknown_8416CAC:: @ 8416CAC - .incbin "baserom.gba", 0x416CAC, 0x1B - -gUnknown_8416CC7:: @ 8416CC7 - .incbin "baserom.gba", 0x416CC7, 0x23 - -gUnknown_8416CEA:: @ 8416CEA - .incbin "baserom.gba", 0x416CEA, 0x2D - -gUnknown_8416D17:: @ 8416D17 - .incbin "baserom.gba", 0x416D17, 0x38 - -gUnknown_8416D4F:: @ 8416D4F - .incbin "baserom.gba", 0x416D4F, 0x29 - -gUnknown_8416D78:: @ 8416D78 - .incbin "baserom.gba", 0x416D78, 0x3B - -gUnknown_8416DB3:: @ 8416DB3 - .incbin "baserom.gba", 0x416DB3, 0xF - -gUnknown_8416DC2:: @ 8416DC2 - .incbin "baserom.gba", 0x416DC2, 0x35 - -gUnknown_8416DF7:: @ 8416DF7 - .incbin "baserom.gba", 0x416DF7, 0x74 - -gUnknown_8416E6B:: @ 8416E6B - .incbin "baserom.gba", 0x416E6B, 0x19 - -gUnknown_8416E84:: @ 8416E84 - .incbin "baserom.gba", 0x416E84, 0x20 - -gUnknown_8416EA4:: @ 8416EA4 - .incbin "baserom.gba", 0x416EA4, 0x22 - -gUnknown_8416EC6:: @ 8416EC6 - .incbin "baserom.gba", 0x416EC6, 0x4A - -gUnknown_8416F10:: @ 8416F10 - .incbin "baserom.gba", 0x416F10, 0x17 - -gUnknown_8416F27:: @ 8416F27 - .incbin "baserom.gba", 0x416F27, 0x27 - -gUnknown_8416F4E:: @ 8416F4E - .incbin "baserom.gba", 0x416F4E, 0x21 - -gUnknown_8416F6F:: @ 8416F6F - .incbin "baserom.gba", 0x416F6F, 0x1D - -gUnknown_8416F8C:: @ 8416F8C - .incbin "baserom.gba", 0x416F8C, 0xE - -gUnknown_8416F9A:: @ 8416F9A - .incbin "baserom.gba", 0x416F9A, 0x18 - -gUnknown_8416FB2:: @ 8416FB2 - .incbin "baserom.gba", 0x416FB2, 0x15 - -gUnknown_8416FC7:: @ 8416FC7 - .incbin "baserom.gba", 0x416FC7, 0x26 - -gUnknown_8416FED:: @ 8416FED - .incbin "baserom.gba", 0x416FED, 0x15 - -gUnknown_8417002:: @ 8417002 - .incbin "baserom.gba", 0x417002, 0x15 - -gUnknown_8417017:: @ 8417017 - .incbin "baserom.gba", 0x417017, 0x1B - -gUnknown_8417032:: @ 8417032 - .incbin "baserom.gba", 0x417032, 0x20 - -gUnknown_8417052:: @ 8417052 - .incbin "baserom.gba", 0x417052, 0x23 - -gUnknown_8417075:: @ 8417075 - .incbin "baserom.gba", 0x417075, 0x47 - -gUnknown_84170BC:: @ 84170BC - .incbin "baserom.gba", 0x4170BC, 0x24 - -gUnknown_84170E0:: @ 84170E0 - .incbin "baserom.gba", 0x4170E0, 0x377 - -gUnknown_8417457:: @ 8417457 - .incbin "baserom.gba", 0x417457, 0x3D - -gUnknown_8417494:: @ 8417494 - .incbin "baserom.gba", 0x417494, 0x181 - -gUnknown_8417615:: @ 8417615 - .incbin "baserom.gba", 0x417615, 0x2B - -gUnknown_8417640:: @ 8417640 - .incbin "baserom.gba", 0x417640, 0x34 - -gUnknown_8417674:: @ 8417674 - .incbin "baserom.gba", 0x417674, 0x7 - -gUnknown_841767B:: @ 841767B - .incbin "baserom.gba", 0x41767B, 0x12 - -gUnknown_841768D:: @ 841768D - .incbin "baserom.gba", 0x41768D, 0x9 - -gUnknown_8417696:: @ 8417696 - .incbin "baserom.gba", 0x417696, 0x22 - -gUnknown_84176B8:: @ 84176B8 - .incbin "baserom.gba", 0x4176B8, 0x17 - -gUnknown_84176CF:: @ 84176CF - .incbin "baserom.gba", 0x4176CF, 0x2F - -gUnknown_84176FE:: @ 84176FE - .incbin "baserom.gba", 0x4176FE, 0x76 - -gUnknown_8417774:: @ 8417774 - .incbin "baserom.gba", 0x417774, 0x16 - -gUnknown_841778A:: @ 841778A - .incbin "baserom.gba", 0x41778A, 0x22 - -gUnknown_84177AC:: @ 84177AC - .incbin "baserom.gba", 0x4177AC, 0x19 - -gUnknown_84177C5:: @ 84177C5 - .incbin "baserom.gba", 0x4177C5, 0x29 - -gUnknown_84177EE:: @ 84177EE - .incbin "baserom.gba", 0x4177EE, 0x18 - -gUnknown_8417806:: @ 8417806 - .incbin "baserom.gba", 0x417806, 0x2A - -gUnknown_8417830:: @ 8417830 - .incbin "baserom.gba", 0x417830, 0x28 - -gUnknown_8417858:: @ 8417858 - .incbin "baserom.gba", 0x417858, 0x13 - -gUnknown_841786B:: @ 841786B - .incbin "baserom.gba", 0x41786B, 0x3C - -gUnknown_84178A7:: @ 84178A7 - .incbin "baserom.gba", 0x4178A7, 0x17 - -gUnknown_84178BE:: @ 84178BE - .incbin "baserom.gba", 0x4178BE, 0x12 - -gUnknown_84178D0:: @ 84178D0 - .incbin "baserom.gba", 0x4178D0, 0xA - -gUnknown_84178DA:: @ 84178DA - .incbin "baserom.gba", 0x4178DA, 0x5E - -gUnknown_8417938:: @ 8417938 - .incbin "baserom.gba", 0x417938, 0x4 - -gUnknown_841793C:: @ 841793C - .incbin "baserom.gba", 0x41793C, 0x263 - -gUnknown_8417B9F:: @ 8417B9F - .incbin "baserom.gba", 0x417B9F, 0xD - -gUnknown_8417BAC:: @ 8417BAC - .incbin "baserom.gba", 0x417BAC, 0xA - -gUnknown_8417BB6:: @ 8417BB6 - .incbin "baserom.gba", 0x417BB6, 0x8 - -gUnknown_8417BBE:: @ 8417BBE - .incbin "baserom.gba", 0x417BBE, 0xD - -gUnknown_8417BCB:: @ 8417BCB - .incbin "baserom.gba", 0x417BCB, 0x8 - -gUnknown_8417BD3:: @ 8417BD3 - .incbin "baserom.gba", 0x417BD3, 0x5A - -gUnknown_8417C2D:: @ 8417C2D - .incbin "baserom.gba", 0x417C2D, 0x1C0 - -gUnknown_8417DED:: @ 8417DED - .incbin "baserom.gba", 0x417DED, 0x1CC - -gUnknown_8417FB9:: @ 8417FB9 - .incbin "baserom.gba", 0x417FB9, 0x2 - -gUnknown_8417FBB:: @ 8417FBB - .incbin "baserom.gba", 0x417FBB, 0x8 - -gUnknown_8417FC3:: @ 8417FC3 - .incbin "baserom.gba", 0x417FC3, 0x9 - -gUnknown_8417FCC:: @ 8417FCC - .incbin "baserom.gba", 0x417FCC, 0x4 - -gUnknown_8417FD0:: @ 8417FD0 - .incbin "baserom.gba", 0x417FD0, 0xA5 - -gUnknown_8418075:: @ 8418075 - .incbin "baserom.gba", 0x418075, 0xFF - -gUnknown_8418174:: @ 8418174 - .incbin "baserom.gba", 0x418174, 0x14 - -gUnknown_8418188:: @ 8418188 - .incbin "baserom.gba", 0x418188, 0x1C - -gUnknown_84181A4:: @ 84181A4 - .incbin "baserom.gba", 0x4181A4, 0x12 - -gUnknown_84181B6:: @ 84181B6 - .incbin "baserom.gba", 0x4181B6, 0x8 - -gUnknown_84181BE:: @ 84181BE - .incbin "baserom.gba", 0x4181BE, 0x5 - -gFameCheckerText_FameCheckerWillBeClosed:: @ 84181C3 - .string "The FAME CHECKER will be closed.$" - -gFameCheckerText_ClearTextbox:: @ 84181E4 - .string "\n $" - -gUnknown_8418204:: @ 8418204 - .incbin "baserom.gba", 0x00418204, 0x48c - -gUnknown_8418690:: @ 8418690 - .incbin "baserom.gba", 0x418690, 0x20 - -gUnknown_84186B0:: @ 84186B0 - .incbin "baserom.gba", 0x4186B0, 0x1D - -gUnknown_84186CD:: @ 84186CD - .incbin "baserom.gba", 0x4186CD, 0x26A - -gUnknown_8418937:: @ 8418937 - .incbin "baserom.gba", 0x418937, 0x1F - -gUnknown_8418956:: @ 8418956 - .incbin "baserom.gba", 0x418956, 0x8A - -gUnknown_84189E0:: @ 84189E0 - .incbin "baserom.gba", 0x4189E0, 0xE - -gUnknown_84189EE:: @ 84189EE - .incbin "baserom.gba", 0x4189EE, 0x22D - -gUnknown_8418C1B:: @ 8418C1B - .string "POKéMON CENTER$" - -gUnknown_8418C2A:: @ 8418C2A - .incbin "baserom.gba", 0x418C2A, 0x59 - -gUnknown_8418C83:: @ 8418C83 - .incbin "baserom.gba", 0x418C83, 0x56 - -gUnknown_8418CD9:: @ 8418CD9 - .string "The backup memory is damaged or\n" - .string "the game’s battery has run dry.\n" - .string "The game can be played, but its\n" - .string "progress cannot be saved.\n" - .string "“Please press the A Button.”$" - -gUnknown_8418D70:: @ 8418D70 - .incbin "baserom.gba", 0x418D70, 0x99 - -gUnknown_8418E09:: @ 8418E09 - .incbin "baserom.gba", 0x418E09, 0x6E - -gUnknown_8418E77:: @ 8418E77 - .incbin "baserom.gba", 0x418E77, 0x13 - -gUnknown_8418E8A:: @ 8418E8A - .incbin "baserom.gba", 0x418E8A, 0x1 - -gUnknown_8418E8B:: @ 8418E8B - .incbin "baserom.gba", 0x418E8B, 0x2 - -gUnknown_8418E8D:: @ 8418E8D - .incbin "baserom.gba", 0x418E8D, 0x8 - -gUnknown_8418E95:: @ 8418E95 - .incbin "baserom.gba", 0x418E95, 0x9 - -gUnknown_8418E9E:: @ 8418E9E - .incbin "baserom.gba", 0x418E9E, 0x9 - -gUnknown_8418EA7:: @ 8418EA7 - .incbin "baserom.gba", 0x418EA7, 0x9 - -gUnknown_8418EB0:: @ 8418EB0 - .incbin "baserom.gba", 0x418EB0, 0x5 - -gUnknown_8418EB5:: @ 8418EB5 - .incbin "baserom.gba", 0x418EB5, 0x7 - -gUnknown_8418EBC:: @ 8418EBC - .incbin "baserom.gba", 0x418EBC, 0x7 - -gUnknown_8418EC3:: @ 8418EC3 - .string "No data$" - -gUnknown_8418ECB:: @ 8418ECB - @ Viridian Forest - .string "A deep and sprawling forest that\n" - .string "extends around VIRIDIAN CITY.\n" - .string "A natural maze, many people\n" - .string "become lost inside.$" - -gUnknown_8418F3A:: @ 8418F3A - @ Mt. Moon - .string "A mystical mountain that is known\n" - .string "for its frequent meteor falls.\n" - .string "The shards of stars that fall\n" - .string "here are known as MOON STONES.$" - -gUnknown_8418FB8:: @ 8418FB8 - @ Diglett's Cave - .string "A seemingly plain tunnel that was\n" - .string "dug by wild DIGLETT.\n" - .string "It is famous for connecting\n" - .string "ROUTES 2 and 11.$" - -gUnknown_841901C:: @ 841901C - @ Victory Road - .string "A tunnel situated on ROUTE 23.\n" - .string "It earned its name because it\n" - .string "must be traveled by all TRAINERS\n" - .string "aiming for the top.$" - -gUnknown_841908E:: @ 841908E - @ Pokémon Mansion - .string "A decrepit, burned-down mansion\n" - .string "on CINNABAR ISLAND.\n" - .string "It got its name because a famous\n" - .string "POKéMON researcher lived there.$" - -gUnknown_8419103:: @ 8419103 - @ Safari Zone - .string "An amusement park outside FUCHSIA\n" - .string "CITY where many rare POKéMON can\n" - .string "be observed in the wild.\n" - .string "Catch them in a popular game!$" - -gUnknown_841917D:: @ 841917D - @ Rock Tunnel - .string "A naturally formed underground\n" - .string "tunnel. Because it has not been\n" - .string "developed, it is inky dark inside.\n" - .string "A light is needed to get through.$" - -gUnknown_8419201:: @ 8419201 - @ Seafoam Islands - .string "A pair of islands that is situated\n" - .string "on ROUTE 20.\n" - .string "The two islands are shaped the\n" - .string "same, as if they were twins.$" - -gUnknown_841926D:: @ 841926D - @ Pokémon Tower - .string "A tower that houses the graves of\n" - .string "countless POKéMON.\n" - .string "Many people visit it daily to pay\n" - .string "their respects to the fallen.$" - -gUnknown_84192E2:: @ 84192E2 - @ Cerulean Cave - .string "A mysterious cave that is filled\n" - .string "with terribly tough POKéMON.\n" - .string "It is so dangerous, the POKéMON\n" - .string "LEAGUE is in charge of it.$" - -gUnknown_841935B:: @ 841935B - @ Power Plant - .string "A power plant that was abandoned\n" - .string "years ago, though some of the\n" - .string "machines still work. It is infested\n" - .string "with electric POKéMON.$" - -gUnknown_84193D5:: @ 84193D5 - @ Mt. Ember - .string "Supposedly an inactive volcano.\n" - .string "However, there are persistent\n" - .string "reports that the peak blazes\n" - .string "with fire at night.$" - -gUnknown_8419444:: @ 8419444 - @ Berry Forest - .string "A forest on a small islet off the\n" - .string "coast of THREE ISLAND. BERRIES\n" - .string "grow wildly in profusion, quickly\n" - .string "replenishing those that fall off.$" - -gUnknown_84194C9:: @ 84194C9 - @ Icefall Cave - .string "A cave which is covered by water\n" - .string "and ice on FOUR ISLAND.\n" - .string "It seems like the end of the cave\n" - .string "is connected to the ocean.$" - -gUnknown_841953F:: @ 841953F - @ Lost Cave - .string "A bewildering cave off the coast\n" - .string "of RESORT GORGEOUS.\n" - .string "Some curious thrill seekers have\n" - .string "never emerged from it.$" - -gUnknown_84195AC:: @ 84195AC - @ Tanoby Ruins - .string "An ancient ruin that is rumored to\n" - .string "be home to a peculiar POKéMON.\n" - .string "However, so far, the POKéMON\n" - .string "remains an unconfirmed rumor.$" - -gUnknown_8419629:: @ 8419629 - @ Altering Cave - .string "This island has been known by this\n" - .string "name since the distant past.\n" - .string "No one today knows where it got\n" - .string "this name, however.$" - -gUnknown_841969D:: @ 841969D - @ Pattern Bush - .string "A lush and bush-like area. \n" - .string "In it are patterns where no grass\n" - .string "grows. Some study it in the belief\n" - .string "that a secret is concealed.$" - -gUnknown_841971A:: @ 841971A - @ Dotted Hole - .string "A mysterious, just-discovered\n" - .string "ruin from an ancient time.\n" - .string "It got its name from the six dots\n" - .string "on its door.$" - -gUnknown_8419782:: @ 8419782 - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Met in a trade.$" - -gUnknown_841979D:: @ 841979D - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Met in a trade.$" - -gUnknown_84197B8:: @ 84197B8 - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Met in a fateful encounter when\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" - -gUnknown_84197ED:: @ 84197ED - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Met in a fateful encounter when\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" - -gUnknown_8419822:: @ 8419822 - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Met in {UNKNOWN_F7 0x02} at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" - -gUnknown_8419841:: @ 8419841 - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Met in {UNKNOWN_F7 0x02} at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" - -gUnknown_8419860:: @ 8419860 - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Apparently met in {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" - -gUnknown_841988A:: @ 841988A - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Apparently met in {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" - -gUnknown_84198B4:: @ 84198B4 - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Hatched: {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" - -gUnknown_84198D5:: @ 84198D5 - .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Hatched: {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" - -@ TODO: Replace this gibberish with the proper Hiragana -gUnknown_84198F6:: @ 84198F6 - .string "{UNKNOWN_F7 0x00}ßÓÁÉË {UNKNOWN_F9 0x05}{UNKNOWN_F7 0x01}çÑÊ\n" - .string "{UNKNOWN_F7 0x02}で ÉÇっŒ ùÂだ$" - -gUnknown_8419913:: @ 8419913 - .string "{UNKNOWN_F7 0x00}ÓÁÉË {UNKNOWN_F9 0x05}{UNKNOWN_F7 0x01}çÑÊ\n" - .string "{UNKNOWN_F7 0x02}で ÉÇっŒ ùÂだ$" - -gUnknown_841992F:: @ 841992F - .string "{UNKNOWN_F7 0x00} nature. Met in a fateful\n" - .string "encounter (hatched: {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}).$" - -gUnknown_841996D:: @ 841996D - .string "{UNKNOWN_F7 0x00} nature. Met in a fateful\n" - .string "encounter (hatched: {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}).$" - -gUnknown_84199AB:: @ 84199AB - .string "{UNKNOWN_F7 0x00} nature. Apparently met in\n" - .string "a fateful encounter (hatched:\n" - .string "{UNKNOWN_F7 0x02} at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}).$" - -gUnknown_84199F4:: @ 84199F4 - .incbin "baserom.gba", 0x4199F4, 0x217 - -gUnknown_8419C0B:: @ 8419C0B - .incbin "baserom.gba", 0x419C0B, 0x8 - -gUnknown_8419C13:: @ 8419C13 - .incbin "baserom.gba", 0x419C13, 0xA - -gUnknown_8419C1D:: @ 8419C1D - .incbin "baserom.gba", 0x419C1D, 0xD - -gUnknown_8419C2A:: @ 8419C2A - .incbin "baserom.gba", 0x419C2A, 0xF - -gUnknown_8419C39:: @ 8419C39 - .incbin "baserom.gba", 0x419C39, 0xC - -gUnknown_8419C45:: @ 8419C45 - .incbin "baserom.gba", 0x419C45, 0x8 - -gUnknown_8419C4D:: @ 8419C4D - .incbin "baserom.gba", 0x419C4D, 0xC - -gUnknown_8419C59:: @ 8419C59 - .incbin "baserom.gba", 0x419C59, 0x9 - -gUnknown_8419C62:: @ 8419C62 - .incbin "baserom.gba", 0x419C62, 0x10 - -gUnknown_8419C72:: @ 8419C72 - .incbin "baserom.gba", 0x419C72, 0x9 - -gUnknown_8419C7B:: @ 8419C7B - .incbin "baserom.gba", 0x419C7B, 0x7 - -gUnknown_8419C82:: @ 8419C82 - .incbin "baserom.gba", 0x419C82, 0x10 - -gUnknown_8419C92:: @ 8419C92 - .incbin "baserom.gba", 0x419C92, 0x10 - -gUnknown_8419CA2:: @ 8419CA2 - .incbin "baserom.gba", 0x419CA2, 0x7 - -gUnknown_8419CA9:: @ 8419CA9 - .incbin "baserom.gba", 0x419CA9, 0x10 - -gUnknown_8419CB9:: @ 8419CB9 - .incbin "baserom.gba", 0x419CB9, 0x21 - -gUnknown_8419CDA:: @ 8419CDA - .incbin "baserom.gba", 0x419CDA, 0x7 - -gUnknown_8419CE1:: @ 8419CE1 - .incbin "baserom.gba", 0x419CE1, 0x6 - -gUnknown_8419CE7:: @ 8419CE7 - .incbin "baserom.gba", 0x419CE7, 0x6 - -gUnknown_8419CED:: @ 8419CED - .incbin "baserom.gba", 0x419CED, 0x2 - -gUnknown_8419CEF:: @ 8419CEF - .incbin "baserom.gba", 0x419CEF, 0x8 - -gUnknown_8419CF7:: @ 8419CF7 - .incbin "baserom.gba", 0x419CF7, 0x1 - -gUnknown_8419CF8:: @ 8419CF8 - .incbin "baserom.gba", 0x419CF8, 0x5 - -gUnknown_8419CFD:: @ 8419CFD - .incbin "baserom.gba", 0x419CFD, 0xD - -gUnknown_8419D0A:: @ 8419D0A - .incbin "baserom.gba", 0x419D0A, 0x10 - -gUnknown_8419D1A:: @ 8419D1A - .incbin "baserom.gba", 0x419D1A, 0x35 - -gUnknown_8419D4F:: @ 8419D4F - .incbin "baserom.gba", 0x419D4F, 0x8 - -gUnknown_8419D57:: @ 8419D57 - .incbin "baserom.gba", 0x419D57, 0xF - -gUnknown_8419D66:: @ 8419D66 - .incbin "baserom.gba", 0x419D66, 0x17 - -gUnknown_8419D7D:: @ 8419D7D - .incbin "baserom.gba", 0x419D7D, 0xC - -gUnknown_8419D89:: @ 8419D89 - .incbin "baserom.gba", 0x419D89, 0x43 - -gUnknown_8419DCC:: @ 8419DCC - .incbin "baserom.gba", 0x419DCC, 0x86 - -gUnknown_8419E52:: @ 8419E52 - .incbin "baserom.gba", 0x419E52, 0x5 - -gUnknown_8419E57:: @ 8419E57 - .incbin "baserom.gba", 0x419E57, 0xFD - -gUnknown_8419F54:: @ 8419F54 - .string "SAVING…\n" - .string "DON’T TURN OFF THE POWER.$" - -// Start menu option descriptions -gUnknown_8419F76:: @ 8419F76 // Pokedex - .string "A device that records POKéMON secrets\n" - .string "upon meeting or catching them.$" - -gUnknown_8419FBB:: @ 8419FBB // Pokemon - .string "Check and organize POKéMON that are\n" - .string "traveling with you in your party.$" - -gUnknown_841A001:: @ 841A001 // Bag - .string "Equipped with pockets for storing items\n" - .string "you bought, received, or found.$" - -gUnknown_841A049:: @ 841A049 // {PLAYER} - .string "Check your money and other game data.$" - -gUnknown_841A06F:: @ 841A06F // Save - .string "Save your game with a complete record\n" - .string "of your progress to take a break.$" - -gUnknown_841A0B7:: @ 841A0B7 // Options - .string "Adjust various game settings such as text\n" - .string "speed, game rules, etc.$" - -gUnknown_841A0F9:: @ 841A0F9 // Quit - .string "Close this MENU window.$" - -gUnknown_841A111:: @ 841A111 // Retire - .string "Retire from the SAFARI GAME and return to\n" - .string "the registration counter.$" - - .include "data/text/quest_log.inc" - -gUnknown_841B285:: @ 841B285 - .incbin "baserom.gba", 0x41B285, 0xE - -gUnknown_841B293:: @ 841B293 - .incbin "baserom.gba", 0x41B293, 0x2 - -gUnknown_841B295:: @ 841B295 - .incbin "baserom.gba", 0x41B295, 0x12 - -gUnknown_841B2A7:: @ 841B2A7 - .incbin "baserom.gba", 0x41B2A7, 0x35 - -gUnknown_841B2DC:: @ 841B2DC - .incbin "baserom.gba", 0x41B2DC, 0x9 - -gUnknown_841B2E5:: @ 841B2E5 - .incbin "baserom.gba", 0x41B2E5, 0x8 - -gUnknown_841B2ED:: @ 841B2ED - .incbin "baserom.gba", 0x41B2ED, 0x4 - -gUnknown_841B2F1:: @ 841B2F1 - .incbin "baserom.gba", 0x41B2F1, 0x15 - -gUnknown_841B306:: @ 841B306 - .incbin "baserom.gba", 0x41B306, 0xF - -gUnknown_841B315:: @ 841B315 - .incbin "baserom.gba", 0x41B315, 0x6 - -gUnknown_841B31B:: @ 841B31B - .incbin "baserom.gba", 0x41B31B, 0xE - -gUnknown_841B329:: @ 841B329 - .incbin "baserom.gba", 0x41B329, 0x5 - -gUnknown_841B32E:: @ 841B32E - .incbin "baserom.gba", 0x41B32E, 0x7C - -gUnknown_841B3AA:: @ 841B3AA - .incbin "baserom.gba", 0x41B3AA, 0x14 - -gUnknown_841B3BE:: @ 841B3BE - .incbin "baserom.gba", 0x41B3BE, 0x152 - -gUnknown_841B510:: @ 841B510 - .incbin "baserom.gba", 0x41B510, 0x6 - -gUnknown_841B516:: @ 841B516 - .incbin "baserom.gba", 0x41B516, 0x8 - -gUnknown_841B51E:: @ 841B51E - .incbin "baserom.gba", 0x41B51E, 0x6 - -gUnknown_841B524:: @ 841B524 - .incbin "baserom.gba", 0x41B524, 0x7 - -gUnknown_841B52B:: @ 841B52B - .incbin "baserom.gba", 0x41B52B, 0x6 - -gUnknown_841B531:: @ 841B531 - .incbin "baserom.gba", 0x41B531, 0x4 - -gUnknown_841B535:: @ 841B535 - .incbin "baserom.gba", 0x41B535, 0x6 - -gUnknown_841B53B:: @ 841B53B - .incbin "baserom.gba", 0x41B53B, 0x6 - -gUnknown_841B541:: @ 841B541 - .incbin "baserom.gba", 0x41B541, 0xA - -gUnknown_841B54B:: @ 841B54B - .incbin "baserom.gba", 0x41B54B, 0x9 - -gUnknown_841B554:: @ 841B554 - .incbin "baserom.gba", 0x41B554, 0x62 - -gUnknown_841B5B6:: @ 841B5B6 - .incbin "baserom.gba", 0x41B5B6, 0x58 - -gUnknown_841B60E:: @ 841B60E - .incbin "baserom.gba", 0x41B60E, 0xB - -gUnknown_841B619:: @ 841B619 - .incbin "baserom.gba", 0x41B619, 0x6B - -gUnknown_841B684:: @ 841B684 - .incbin "baserom.gba", 0x41B684, 0xB - -gUnknown_841B68F:: @ 841B68F - .incbin "baserom.gba", 0x41B68F, 0x9 - -gUnknown_841B698:: @ 841B698 - .incbin "baserom.gba", 0x41B698, 0x6 - -gUnknown_841B69E:: @ 841B69E - .incbin "baserom.gba", 0x41B69E, 0x1B - -gUnknown_841B6B9:: @ 841B6B9 - .incbin "baserom.gba", 0x41B6B9, 0x1C - -gUnknown_841B6D5:: @ 841B6D5 - .incbin "baserom.gba", 0x41B6D5, 0x7 - -gUnknown_841B6DC:: @ 841B6DC - .incbin "baserom.gba", 0x41B6DC, 0x7 - -gUnknown_841B6E3:: @ 841B6E3 - .incbin "baserom.gba", 0x41B6E3, 0x8 - -gUnknown_841B6EB:: @ 841B6EB - .incbin "baserom.gba", 0x41B6EB, 0x1 - -gUnknown_841B6EC:: @ 841B6EC - .incbin "baserom.gba", 0x41B6EC, 0x7 - -gUnknown_841B6F3:: @ 841B6F3 - .incbin "baserom.gba", 0x41B6F3, 0xA - -gUnknown_841B6FD:: @ 841B6FD - .incbin "baserom.gba", 0x41B6FD, 0x19 - -gUnknown_841B716:: @ 841B716 - .incbin "baserom.gba", 0x41B716, 0x31 - -gUnknown_841B747:: @ 841B747 - .incbin "baserom.gba", 0x41B747, 0x24 - -gUnknown_841B76B:: @ 841B76B - .incbin "baserom.gba", 0x41B76B, 0xE - -gUnknown_841B779:: @ 841B779 - .incbin "baserom.gba", 0x41B779, 0xC4 - -gUnknown_841B83D:: @ 841B83D - .incbin "baserom.gba", 0x41B83D, 0xD4A - -gUnknown_841C587:: @ 841C587 - .incbin "baserom.gba", 0x41C587, 0x10C - -gUnknown_841C693:: @ 841C693 - .incbin "baserom.gba", 0x41C693, 0x4A9 - -gUnknown_841CB3C:: @ 841CB3C - .incbin "baserom.gba", 0x41CB3C, 0x5 - -gUnknown_841CB41:: @ 841CB41 - .incbin "baserom.gba", 0x41CB41, 0x8 - -gUnknown_841CB49:: @ 841CB49 - .incbin "baserom.gba", 0x41CB49, 0x5 - -gUnknown_841CB4E:: @ 841CB4E - .incbin "baserom.gba", 0x41CB4E, 0x4 - -gUnknown_841CB52:: @ 841CB52 - .incbin "baserom.gba", 0x41CB52, 0x8 - -gUnknown_841CB5A:: @ 841CB5A - .incbin "baserom.gba", 0x41CB5A, 0x9 - -gUnknown_841CB63:: @ 841CB63 - .incbin "baserom.gba", 0x41CB63, 0x46 - -gUnknown_841CBA9:: @ 841CBA9 - .incbin "baserom.gba", 0x41CBA9, 0x21 - -gUnknown_841CBCA:: @ 841CBCA - .incbin "baserom.gba", 0x41CBCA, 0x1A - -gUnknown_841CBE4:: @ 841CBE4 - .incbin "baserom.gba", 0x41CBE4, 0x19 - -gUnknown_841CBFD:: @ 841CBFD - .incbin "baserom.gba", 0x41CBFD, 0x14 - -gUnknown_841CC11:: @ 841CC11 - .incbin "baserom.gba", 0x41CC11, 0x31 - -gUnknown_841CC42:: @ 841CC42 - .incbin "baserom.gba", 0x41CC42, 0x22 - -gUnknown_841CC64:: @ 841CC64 - .incbin "baserom.gba", 0x41CC64, 0x9F - -gUnknown_841CD03:: @ 841CD03 - .incbin "baserom.gba", 0x41CD03, 0x22 - -gUnknown_841CD25:: @ 841CD25 - .incbin "baserom.gba", 0x41CD25, 0x1E - -gUnknown_841CD43:: @ 841CD43 - .incbin "baserom.gba", 0x41CD43, 0x15 - -gUnknown_841CD58:: @ 841CD58 - .incbin "baserom.gba", 0x41CD58, 0x22 - -gUnknown_841CD7A:: @ 841CD7A - .incbin "baserom.gba", 0x41CD7A, 0x25 - -gUnknown_841CD9F:: @ 841CD9F - .incbin "baserom.gba", 0x41CD9F, 0x1B - -gUnknown_841CDBA:: @ 841CDBA - .incbin "baserom.gba", 0x41CDBA, 0x1D - -gUnknown_841CDD7:: @ 841CDD7 - .incbin "baserom.gba", 0x41CDD7, 0x14 - -gUnknown_841CDEB:: @ 841CDEB - .incbin "baserom.gba", 0x41CDEB, 0x31 - -gUnknown_841CE1C:: @ 841CE1C - .incbin "baserom.gba", 0x41CE1C, 0x8 - -gUnknown_841CE24:: @ 841CE24 - .incbin "baserom.gba", 0x41CE24, 0x1FC - -gUnknown_841D020:: @ 841D020 - .incbin "baserom.gba", 0x41D020, 0xC - -gUnknown_841D02C:: @ 841D02C - .incbin "baserom.gba", 0x41D02C, 0x24 - -gUnknown_841D050:: @ 841D050 - .incbin "baserom.gba", 0x41D050, 0x8 - -gUnknown_841D058:: @ 841D058 - .incbin "baserom.gba", 0x41D058, 0x10 - -gUnknown_841D068:: @ 841D068 - .incbin "baserom.gba", 0x41D068, 0xC - -gUnknown_841D074:: @ 841D074 - .incbin "baserom.gba", 0x41D074, 0x4 - -gUnknown_841D078:: @ 841D078 - .incbin "baserom.gba", 0x41D078, 0x8 - -gUnknown_841D080:: @ 841D080 - .incbin "baserom.gba", 0x41D080, 0x8 - -gUnknown_841D088:: @ 841D088 - .incbin "baserom.gba", 0x41D088, 0x8 - -gUnknown_841D090:: @ 841D090 - .incbin "baserom.gba", 0x41D090, 0x8 - -gUnknown_841D098:: @ 841D098 - .incbin "baserom.gba", 0x41D098, 0xC - -gUnknown_841D0A4:: @ 841D0A4 - .incbin "baserom.gba", 0x41D0A4, 0x4 - -gUnknown_841D0A8:: @ 841D0A8 - .incbin "baserom.gba", 0x41D0A8, 0x18 - -gUnknown_841D0C0:: @ 841D0C0 - .incbin "baserom.gba", 0x41D0C0, 0x58 - -gUnknown_841D118:: @ 841D118 - .incbin "baserom.gba", 0x41D118, 0xC - -gUnknown_841D124:: @ 841D124 - .incbin "baserom.gba", 0x41D124, 0x18 - -gUnknown_841D13C:: @ 841D13C - .incbin "baserom.gba", 0x41D13C, 0xC - -gUnknown_841D148:: @ 841D148 - .incbin "baserom.gba", 0x41D148, 0x6 - -gUnknown_841D14E:: @ 841D14E - .incbin "baserom.gba", 0x41D14E, 0x1B - -gUnknown_841D169:: @ 841D169 - .incbin "baserom.gba", 0x41D169, 0x15 - -gUnknown_841D17E:: @ 841D17E - .incbin "baserom.gba", 0x41D17E, 0xF - -gUnknown_841D18D:: @ 841D18D - .incbin "baserom.gba", 0x41D18D, 0xB - -gUnknown_841D198:: @ 841D198 - .incbin "baserom.gba", 0x41D198, 0xCB8 - -gUnknown_841DE50:: @ 841DE50 - .string "$" - -gUnknown_841DE51:: @ 841DE51 - .string "$" - -gUnknown_841DE52:: @ 841DE52 - .string "$" - -gUnknown_841DE53:: @ 841DE53 - .string "$" - -gUnknown_841DE54:: @ 841DE54 - .string "$" - -gUnknown_841DE55:: @ 841DE55 - .incbin "baserom.gba", 0x41DE55, 0x27 @ japanese - -gUnknown_841DE7C:: @ 841DE7C - .string "$" - -gUnknown_841DE7D:: @ 841DE7D - .string "$" - -gUnknown_841DE7E:: @ 841DE7E - .incbin "baserom.gba", 0x0041de7e, 0x17 @ japanese - -gUnknown_841DE95:: @ 841DE95 - .string "$" - -gUnknown_841DE96:: @ 841DE96 - .string "$" - -gUnknown_841DE97:: @ 841DE97 - .string "$" - -gUnknown_841DE98:: @ 841DE98 - .string "$" - -gUnknown_841DE99:: @ 841DE99 - .string "$" - -gUnknown_841DE9A:: @ 841DE9A - .string "$" - -gUnknown_841DE9B:: @ 841DE9B - .string "$" - -gUnknown_841DE9C:: @ 841DE9C - .string "$" - -gUnknown_841DE9D:: @ 841DE9D - .string "Communication error…\n" - .string "Please check all connections,\n" - .string "then turn the power OFF and ON.$" - -gUnknown_841DEF0:: @ 841DEF0 - .string "Communication error…$" - -gUnknown_841DF05:: @ 841DF05 - .string "Move closer to your link partner(s).\n" - .string "Avoid obstacles between partners.$" - -gUnknown_841DF4C:: @ 841DF4C - .string "A Button: Registration Counter$" - -gUnknown_841DF6B:: @ 841DF6B - .string "A Button: Title Screen$" - -gUnknown_841DF82:: @ 841DF82 - .string "{STR_VAR_1}P LINK$" - -gUnknown_841DF8B:: @ 841DF8B - .string "BRONZE$" - -gUnknown_841DF92:: @ 841DF92 - .string "COPPER$" - -gUnknown_841DF99:: @ 841DF99 - .string "SILVER$" - -gUnknown_841DFA0:: @ 841DFA0 - .string "GOLD$" - -gUnknown_841DFA5:: @ 841DFA5 - .incbin "baserom.gba", 0x41DFA5, 0x7 - -gUnknown_841DFAC:: @ 841DFAC - .incbin "baserom.gba", 0x41DFAC, 0x12 - -gUnknown_841DFBE:: @ 841DFBE - .incbin "baserom.gba", 0x41DFBE, 0xB - -gUnknown_841DFC9:: @ 841DFC9 - .incbin "baserom.gba", 0x41DFC9, 0xCA - -gUnknown_841E093:: @ 841E093 - .incbin "baserom.gba", 0x41E093, 0xC - -gUnknown_841E09F:: @ 841E09F - .incbin "baserom.gba", 0x41E09F, 0x6 - -gUnknown_841E0A5:: @ 841E0A5 - .incbin "baserom.gba", 0x41E0A5, 0x144 - -gUnknown_841E1E9:: @ 841E1E9 - .incbin "baserom.gba", 0x41E1E9, 0x17 - -gUnknown_841E200:: @ 841E200 - .incbin "baserom.gba", 0x41E200, 0xD - -gUnknown_841E20D:: @ 841E20D - .incbin "baserom.gba", 0x41E20D, 0x11 - -gUnknown_841E21E:: @ 841E21E - .incbin "baserom.gba", 0x41E21E, 0x16 - -gUnknown_841E234:: @ 841E234 - .incbin "baserom.gba", 0x41E234, 0xF1 - -gUnknown_841E325:: @ 841E325 - .incbin "baserom.gba", 0x41E325, 0xBE - -gUnknown_841E3E3:: @ 841E3E3 - .incbin "baserom.gba", 0x41E3E3, 0x18 - -gUnknown_841E3FB:: @ 841E3FB - .incbin "baserom.gba", 0x41E3FB, 0xA - -gUnknown_841E405:: @ 841E405 - .incbin "baserom.gba", 0x41E405, 0xF - -gUnknown_841E414:: @ 841E414 - .incbin "baserom.gba", 0x41E414, 0x6D - -gUnknown_841E481:: @ 841E481 - .incbin "baserom.gba", 0x41E481, 0x12 - -gUnknown_841E493:: @ 841E493 - .incbin "baserom.gba", 0x41E493, 0x2D - -gUnknown_841E4C0:: @ 841E4C0 - .incbin "baserom.gba", 0x41E4C0, 0x22 - -gUnknown_841E4E2:: @ 841E4E2 - .incbin "baserom.gba", 0x41E4E2, 0x2A - -gUnknown_841E50C:: @ 841E50C - .incbin "baserom.gba", 0x41E50C, 0x2C - -gUnknown_841E538:: @ 841E538 - .incbin "baserom.gba", 0x41E538, 0x3A - -gUnknown_841E572:: @ 841E572 - .incbin "baserom.gba", 0x41E572, 0x1B - -gUnknown_841E58D:: @ 841E58D - .incbin "baserom.gba", 0x41E58D, 0x17 - -gFameCheckerText_MainScreenUI:: @ 841E5A4 - .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" - -gFameCheckerText_PickScreenUI:: @ 841E5B9 - .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" - -gFameCheckerText_FlavorTextUI:: @ 841E5D2 - .string "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" - -gFameCheckerOakName:: @ 841E5E9 - .string "OAK$" - -gFameCheckerDaisyName:: @ 841E5ED - .string "DAISY$" - -gFameCheckerBillName:: @ 841E5F3 - .string "BILL$" - -gFameCheckerMrFujiName:: @ 841E5F8 - .string "FUJI$" - -gUnknown_841E5FD:: @ 841E5FD - .string "A variety of events will be imported\nover Wireless Communication.$" - -gUnknown_841E63F:: @ 841E63F - .string "Read the WONDER CARDS in your\npossession.$" - -gUnknown_841E669:: @ 841E669 - .string "Read the NEWS that arrived.$" - -gUnknown_841E685:: @ 841E685 - .string "Return to the title screen.$" - -gUnknown_841E6A1:: @ 841E6A1 - .incbin "baserom.gba", 0x41E6A1, 0x3B - -gUnknown_841E6DC:: @ 841E6DC - .incbin "baserom.gba", 0x41E6DC, 0x3B - -gUnknown_841E717:: @ 841E717 - .incbin "baserom.gba", 0x41E717, 0x2A - -gUnknown_841E741:: @ 841E741 - .incbin "baserom.gba", 0x41E741, 0x53 - -gUnknown_841E794:: @ 841E794 - .incbin "baserom.gba", 0x41E794, 0xF - -gUnknown_841E7A3:: @ 841E7A3 - .incbin "baserom.gba", 0x41E7A3, 0x19 - -gUnknown_841E7BC:: @ 841E7BC - .incbin "baserom.gba", 0x41E7BC, 0x15 - -gUnknown_841E7D1:: @ 841E7D1 - .incbin "baserom.gba", 0x41E7D1, 0x21 - -gUnknown_841E7F2:: @ 841E7F2 - .incbin "baserom.gba", 0x41E7F2, 0x31 - -gUnknown_841E823:: @ 841E823 - .incbin "baserom.gba", 0x41E823, 0x43 - -gUnknown_841E866:: @ 841E866 - .incbin "baserom.gba", 0x41E866, 0x29 - -gUnknown_841E88F:: @ 841E88F - .incbin "baserom.gba", 0x41E88F, 0x2E - -gUnknown_841E8BD:: @ 841E8BD - .incbin "baserom.gba", 0x41E8BD, 0x25 - -gUnknown_841E8E2:: @ 841E8E2 - .incbin "baserom.gba", 0x41E8E2, 0x2A - -gUnknown_841E90C:: @ 841E90C - .incbin "baserom.gba", 0x41E90C, 0x1F - -gUnknown_841E92B:: @ 841E92B - .incbin "baserom.gba", 0x41E92B, 0x1B - -gUnknown_841E946:: @ 841E946 - .incbin "baserom.gba", 0x41E946, 0x22 - -gUnknown_841E968:: @ 841E968 - .incbin "baserom.gba", 0x41E968, 0x27 - -gUnknown_841E98F:: @ 841E98F - .incbin "baserom.gba", 0x41E98F, 0x1C - -gUnknown_841E9AB:: @ 841E9AB - .incbin "baserom.gba", 0x41E9AB, 0x28 - -gUnknown_841E9D3:: @ 841E9D3 - .incbin "baserom.gba", 0x41E9D3, 0x3A - -gUnknown_841EA0D:: @ 841EA0D - .incbin "baserom.gba", 0x41EA0D, 0x32 - -gUnknown_841EA3F:: @ 841EA3F - .incbin "baserom.gba", 0x41EA3F, 0x30 - -gUnknown_841EA6F:: @ 841EA6F - .incbin "baserom.gba", 0x41EA6F, 0x17 - -gUnknown_841EA86:: @ 841EA86 - .incbin "baserom.gba", 0x41EA86, 0x31 - -gUnknown_841EAB7:: @ 841EAB7 - .incbin "baserom.gba", 0x41EAB7, 0x30 - -gUnknown_841EAE7:: @ 841EAE7 - .incbin "baserom.gba", 0x41EAE7, 0x1A - -gUnknown_841EB01:: @ 841EB01 - .incbin "baserom.gba", 0x41EB01, 0x1F - -gUnknown_841EB20:: @ 841EB20 - .incbin "baserom.gba", 0x41EB20, 0x26 - -gUnknown_841EB46:: @ 841EB46 - .incbin "baserom.gba", 0x41EB46, 0x2B - -gUnknown_841EB71:: @ 841EB71 - .incbin "baserom.gba", 0x41EB71, 0x1D - -gUnknown_841EB8E:: @ 841EB8E - .incbin "baserom.gba", 0x41EB8E, 0x1C - -gUnknown_841EBAA:: @ 841EBAA - .incbin "baserom.gba", 0x41EBAA, 0x34 - -gUnknown_841EBDE:: @ 841EBDE - .incbin "baserom.gba", 0x41EBDE, 0x34 - -gUnknown_841EC12:: @ 841EC12 - .incbin "baserom.gba", 0x41EC12, 0x2E - -gUnknown_841EC40:: @ 841EC40 - .incbin "baserom.gba", 0x41EC40, 0x2A - -gUnknown_841EC6A:: @ 841EC6A - .incbin "baserom.gba", 0x41EC6A, 0x2F - -gUnknown_841EC99:: @ 841EC99 - .incbin "baserom.gba", 0x41EC99, 0x3A - -gUnknown_841ECD3:: @ 841ECD3 - .incbin "baserom.gba", 0x41ECD3, 0x26 - -gUnknown_841ECF9:: @ 841ECF9 - .incbin "baserom.gba", 0x41ECF9, 0x36 - -gUnknown_841ED2F:: @ 841ED2F - .incbin "baserom.gba", 0x41ED2F, 0x21 - -gUnknown_841ED50:: @ 841ED50 - .incbin "baserom.gba", 0x41ED50, 0x2B - -gUnknown_841ED7B:: @ 841ED7B - .incbin "baserom.gba", 0x41ED7B, 0x21 - -gUnknown_841ED9C:: @ 841ED9C - .incbin "baserom.gba", 0x41ED9C, 0x21 - -gUnknown_841EDBD:: @ 841EDBD - .incbin "baserom.gba", 0x41EDBD, 0xD - -gUnknown_841EDCA:: @ 841EDCA - .incbin "baserom.gba", 0x41EDCA, 0x61 - -gUnknown_841EE2B:: @ 841EE2B - .incbin "baserom.gba", 0x41EE2B, 0x19 + @ strings + .section .rodata.841EE44 + .align 2 gUnknown_841EE44:: @ 841EE44 .incbin "baserom.gba", 0x41EE44, 0x20 @@ -2313,10 +548,10 @@ gUnknown_841EF10:: @ 841EF10 .incbin "baserom.gba", 0x41EF10, 0x2B8 gUnknown_841F1C8:: @ 841F1C8 - .incbin "baserom.gba", 0x41F1C8, 0x240 + .incbin "graphics/text_window/unk_841F1C8.4bpp" -gUnknown_841F408:: @ 841F408 - .incbin "baserom.gba", 0x41F408, 0x20 +gTMCaseMainWindowPalette:: @ 841F408 + .incbin "graphics/tm_case/unk_841F408.gbapal" gUnknown_841F428:: @ 841F428 .incbin "baserom.gba", 0x41F428, 0x4 @@ -2369,6 +604,7 @@ gUnknown_843EC64:: @ 843EC64 gUnknown_843EC8C:: @ 843EC8C .incbin "baserom.gba", 0x43EC8C, 0xFC + .align 2 gUnknown_843ED88:: @ 843ED88 .incbin "baserom.gba", 0x43ED88, 0xC @@ -2495,7 +731,10 @@ gUnknown_843F8DB:: @ 843F8DB .incbin "baserom.gba", 0x43F8DB, 0x5 gUnknown_843F8E0:: @ 843F8E0 - .incbin "baserom.gba", 0x43F8E0, 0x10 + .4byte gUnknown_847A8D8 + .4byte gUnknown_847A8FA + .4byte gUnknown_847A913 + .4byte gUnknown_847A934 gUnknown_843F8F0:: @ 843F8F0 .incbin "baserom.gba", 0x43F8F0, 0x20 @@ -2752,51 +991,9 @@ gUnknown_8453092:: @ 8453092 gUnknown_8453094:: @ 8453094 .incbin "baserom.gba", 0x453094, 0x4 -gUnknown_8453098:: @ 8453098 - .incbin "baserom.gba", 0x453098, 0x20 - -gUnknown_84530B8:: @ 84530B8 - .incbin "baserom.gba", 0x4530B8, 0xC - -gUnknown_84530C4:: @ 84530C4 - .incbin "baserom.gba", 0x4530C4, 0x20 - -gUnknown_84530E4:: @ 84530E4 - .incbin "baserom.gba", 0x4530E4, 0x20 - -gUnknown_8453104:: @ 8453104 - .incbin "baserom.gba", 0x453104, 0x18 - -gUnknown_845311C:: @ 845311C - .incbin "baserom.gba", 0x45311C, 0x8 - -gUnknown_8453124:: @ 8453124 - .incbin "baserom.gba", 0x453124, 0x54 - -gUnknown_8453178:: @ 8453178 - .incbin "baserom.gba", 0x453178, 0xC - -gUnknown_8453184:: @ 8453184 - .incbin "baserom.gba", 0x453184, 0x8 - .section .rodata.8453F6C -// item_pc.o -gUnknown_8453F6C:: @ 8453F6C - .incbin "baserom.gba", 0x453F6C, 0x8 - -gUnknown_8453F74:: @ 8453F74 - .incbin "baserom.gba", 0x453F74, 0x18 - -gUnknown_8453F8C:: @ 8453F8C - .incbin "baserom.gba", 0x453F8C, 0xC - -gUnknown_8453F98:: @ 8453F98 - .incbin "baserom.gba", 0x453F98, 0x38 - -gUnknown_8453FD0:: @ 8453FD0 - .incbin "baserom.gba", 0x453FD0, 0x18 - +// mailbox_pc.o gUnknown_8453FE8:: @ 8453FE8 .incbin "baserom.gba", 0x453FE8, 0x18 @@ -3543,60 +1740,3 @@ gUnknown_845B050:: @ 845B050 gUnknown_845B068:: @ 845B068 .incbin "baserom.gba", 0x45B068, 0x18 - -gUnknown_845B080:: @ 845B080 - .incbin "baserom.gba", 0x45B080, 0x18 - -gUnknown_845B098:: @ 845B098 - .incbin "baserom.gba", 0x45B098, 0x18 - -gUnknown_845B0B0:: @ 845B0B0 - .incbin "baserom.gba", 0x45B0B0, 0xB4 - -gUnknown_845B164:: @ 845B164 - .incbin "baserom.gba", 0x45B164, 0xB4 - -gUnknown_845B218:: @ 845B218 - .incbin "baserom.gba", 0x45B218, 0xC4 - -gUnknown_845B2DC:: @ 845B2DC - .incbin "baserom.gba", 0x45B2DC, 0xC4 - -gUnknown_845B3A0:: @ 845B3A0 - .incbin "baserom.gba", 0x45B3A0, 0xB0 - -gUnknown_845B450:: @ 845B450 - .incbin "baserom.gba", 0x45B450, 0xB0 - -gUnknown_845B500:: @ 845B500 - .incbin "baserom.gba", 0x45B500, 0x20 - -gUnknown_845B520:: @ 845B520 - .incbin "baserom.gba", 0x45B520, 0x20 - -gUnknown_845B540:: @ 845B540 - .incbin "baserom.gba", 0x45B540, 0x90 - -gUnknown_845B5D0:: @ 845B5D0 - .incbin "baserom.gba", 0x45B5D0, 0x3EE - -gUnknown_845B9BE:: @ 845B9BE - .incbin "baserom.gba", 0x45B9BE, 0x22 - -gUnknown_845B9E0:: @ 845B9E0 - .incbin "baserom.gba", 0x45B9E0, 0xAD0 - -gUnknown_845C4B0:: @ 845C4B0 - .incbin "baserom.gba", 0x45C4B0, 0x6 - -gUnknown_845C4B6:: @ 845C4B6 - .incbin "baserom.gba", 0x45C4B6, 0xDE - -gUnknown_845C594:: @ 845C594 - .incbin "baserom.gba", 0x45C594, 0x28 - -gUnknown_845C5BC:: @ 845C5BC - .incbin "baserom.gba", 0x45C5BC, 0x12 - -gUnknown_845C5CE:: @ 845C5CE - .incbin "baserom.gba", 0x45C5CE, 0x32 diff --git a/data/data_845FD54.s b/data/data_845FD54.s deleted file mode 100644 index d05e14570..000000000 --- a/data/data_845FD54.s +++ /dev/null @@ -1,600 +0,0 @@ - .section .rodata - - .align 2 - // oak_speech -gUnknown_845FD54:: @ 845FD54 - .incbin "baserom.gba", 0x45FD54, 0x814 - -gUnknown_8460568:: @ 8460568 - .incbin "baserom.gba", 0x460568, 0x80 - -gUnknown_84605E8:: @ 84605E8 - .incbin "baserom.gba", 0x4605E8, 0x5C0 - -gUnknown_8460BA8:: @ 8460BA8 - .incbin "baserom.gba", 0x460BA8, 0xFC - -gUnknown_8460CA4:: @ 8460CA4 - .incbin "baserom.gba", 0x460CA4, 0x44 - -gUnknown_8460CE8:: @ 8460CE8 - .incbin "baserom.gba", 0x460CE8, 0xAC - -gUnknown_8460D94:: @ 8460D94 - .incbin "baserom.gba", 0x460D94, 0xA0 - -gUnknown_8460E34:: @ 8460E34 - .incbin "baserom.gba", 0x460E34, 0xA0 - -gUnknown_8460ED4:: @ 8460ED4 - .incbin "baserom.gba", 0x460ED4, 0x40 - -gUnknown_8460F14:: @ 8460F14 - .incbin "baserom.gba", 0x460F14, 0x6E8 - -gUnknown_84615FC:: @ 84615FC - .incbin "baserom.gba", 0x4615FC, 0x40 - -gUnknown_846163C:: @ 846163C - .incbin "baserom.gba", 0x46163C, 0x698 - -gUnknown_8461CD4:: @ 8461CD4 - .incbin "baserom.gba", 0x461CD4, 0x40 - -gUnknown_8461D14:: @ 8461D14 - .incbin "baserom.gba", 0x461D14, 0x698 - -gUnknown_84623AC:: @ 84623AC - .incbin "baserom.gba", 0x4623AC, 0x40 - -gUnknown_84623EC:: @ 84623EC - .incbin "baserom.gba", 0x4623EC, 0xA6C - -gUnknown_8462E58:: @ 8462E58 - .incbin "baserom.gba", 0x462E58, 0x5C - -gUnknown_8462EB4:: @ 8462EB4 - .incbin "baserom.gba", 0x462EB4, 0xC - -gUnknown_8462EC0:: @ 8462EC0 - .incbin "baserom.gba", 0x462EC0, 0x8 - -gUnknown_8462EC8:: @ 8462EC8 - .incbin "baserom.gba", 0x462EC8, 0x8 - -gUnknown_8462ED0:: @ 8462ED0 - .incbin "baserom.gba", 0x462ED0, 0x8 - -gUnknown_8462ED8:: @ 8462ED8 - .incbin "baserom.gba", 0x462ED8, 0x10 - -gUnknown_8462EE8:: @ 8462EE8 - .incbin "baserom.gba", 0x462EE8, 0x4 - -gUnknown_8462EEC:: @ 8462EEC - .incbin "baserom.gba", 0x462EEC, 0x4 - -gUnknown_8462EF0:: @ 8462EF0 - .incbin "baserom.gba", 0x462EF0, 0xC - -gUnknown_8462EFC:: @ 8462EFC - .incbin "baserom.gba", 0x462EFC, 0x18 - -gUnknown_8462F14:: @ 8462F14 - .incbin "baserom.gba", 0x462F14, 0x8 - -gUnknown_8462F1C:: @ 8462F1C - .incbin "baserom.gba", 0x462F1C, 0x8 - -gUnknown_8462F24:: @ 8462F24 - .incbin "baserom.gba", 0x462F24, 0x2C - -gUnknown_8462F50:: @ 8462F50 - .incbin "baserom.gba", 0x462F50, 0xDC - -gUnknown_846302C:: @ 846302C - .incbin "baserom.gba", 0x46302C, 0x48 - -gUnknown_8463074:: @ 8463074 - .incbin "baserom.gba", 0x463074, 0x18 - -gUnknown_846308C:: @ 846308C - .incbin "baserom.gba", 0x46308C, 0x4C - -gUnknown_84630D8:: @ 84630D8 - .incbin "baserom.gba", 0x4630D8, 0x4C - -gUnknown_8463124:: @ 8463124 - .incbin "baserom.gba", 0x463124, 0x10 - -gUnknown_8463134:: @ 8463134 - .incbin "baserom.gba", 0x463134, 0xC - -gUnknown_8463140:: @ 8463140 - .incbin "baserom.gba", 0x463140, 0x10 - -gUnknown_8463150:: @ 8463150 - .incbin "baserom.gba", 0x463150, 0x18 - -gUnknown_8463168:: @ 8463168 - .incbin "baserom.gba", 0x463168, 0x3 - -gUnknown_846316B:: @ 846316B - .incbin "baserom.gba", 0x46316B, 0x5 - -gUnknown_8463170:: @ 8463170 - .incbin "baserom.gba", 0x463170, 0x8 - -gUnknown_8463178:: @ 8463178 - .incbin "baserom.gba", 0x463178, 0x4 - -gUnknown_846317C:: @ 846317C - .incbin "baserom.gba", 0x46317C, 0x4 - -gUnknown_8463180:: @ 8463180 - .incbin "baserom.gba", 0x463180, 0x4 - -gUnknown_8463184:: @ 8463184 - .incbin "baserom.gba", 0x463184, 0xC - -gUnknown_8463190:: @ 8463190 - .incbin "baserom.gba", 0x463190, 0x50 - -gUnknown_84631E0:: @ 84631E0 - .incbin "baserom.gba", 0x4631E0, 0x8 - -gUnknown_84631E8:: @ 84631E8 - .incbin "baserom.gba", 0x4631E8, 0x30 - -gUnknown_8463218:: @ 8463218 - .incbin "baserom.gba", 0x463218, 0x8 - -gUnknown_8463220:: @ 8463220 - .incbin "baserom.gba", 0x463220, 0x18 - -gUnknown_8463238:: @ 8463238 - .incbin "baserom.gba", 0x463238, 0x24 - -gUnknown_846325C:: @ 846325C - .incbin "baserom.gba", 0x46325C, 0x48 - -gUnknown_84632A4:: @ 84632A4 - .incbin "baserom.gba", 0x4632A4, 0x18 - -gUnknown_84632BC:: @ 84632BC - .incbin "baserom.gba", 0x4632BC, 0x4 - -gUnknown_84632C0:: @ 84632C0 - .incbin "baserom.gba", 0x4632C0, 0x4 - -gUnknown_84632C4:: @ 84632C4 - .incbin "baserom.gba", 0x4632C4, 0x4 - -gUnknown_84632C8:: @ 84632C8 - .incbin "baserom.gba", 0x4632C8, 0x4 - -gUnknown_84632CC:: @ 84632CC - .incbin "baserom.gba", 0x4632CC, 0x4 - -gUnknown_84632D0:: @ 84632D0 - .incbin "baserom.gba", 0x4632D0, 0x4 - -gUnknown_84632D4:: @ 84632D4 - .incbin "baserom.gba", 0x4632D4, 0x4 - -gUnknown_84632D8:: @ 84632D8 - .incbin "baserom.gba", 0x4632D8, 0x18 - -gUnknown_84632F0:: @ 84632F0 - .incbin "baserom.gba", 0x4632F0, 0x18 - -gUnknown_8463308:: @ 8463308 - .incbin "baserom.gba", 0x463308, 0x20 - -gUnknown_8463328:: @ 8463328 - .incbin "baserom.gba", 0x463328, 0x70 - -gUnknown_8463398:: @ 8463398 - .incbin "baserom.gba", 0x463398, 0x40 - -gUnknown_84633D8:: @ 84633D8 - .incbin "baserom.gba", 0x4633D8, 0x44 - -gUnknown_846341C:: @ 846341C - .incbin "baserom.gba", 0x46341C, 0x20 - -gUnknown_846343C:: @ 846343C - .incbin "baserom.gba", 0x46343C, 0x128 - -gUnknown_8463564:: @ 8463564 - .incbin "baserom.gba", 0x463564, 0x1C - -gUnknown_8463580:: @ 8463580 - .incbin "baserom.gba", 0x463580, 0x140 - -gUnknown_84636C0:: @ 84636C0 - .incbin "baserom.gba", 0x4636C0, 0x20 - -gUnknown_84636E0:: @ 84636E0 - .incbin "baserom.gba", 0x4636E0, 0x20 - -gUnknown_8463700:: @ 8463700 - .incbin "baserom.gba", 0x463700, 0x20 - -gUnknown_8463720:: @ 8463720 - .incbin "baserom.gba", 0x463720, 0x20 - -gUnknown_8463740:: @ 8463740 - .incbin "baserom.gba", 0x463740, 0x12C - -gUnknown_846386C:: @ 846386C - .incbin "baserom.gba", 0x46386C, 0x120 - -gUnknown_846398C:: @ 846398C - .incbin "baserom.gba", 0x46398C, 0x18 - -gUnknown_84639A4:: @ 84639A4 - .incbin "baserom.gba", 0x4639A4, 0x8 - -gUnknown_84639AC:: @ 84639AC - .incbin "baserom.gba", 0x4639AC, 0x48 - -gUnknown_84639F4:: @ 84639F4 - .incbin "baserom.gba", 0x4639F4, 0x20 - -gUnknown_8463A14:: @ 8463A14 - .incbin "baserom.gba", 0x463A14, 0x68 - -gUnknown_8463A7C:: @ 8463A7C - .incbin "baserom.gba", 0x463A7C, 0x70 - -gUnknown_8463AEC:: @ 8463AEC - .incbin "baserom.gba", 0x463AEC, 0x10 - -gUnknown_8463AFC:: @ 8463AFC - .incbin "baserom.gba", 0x463AFC, 0x4 - -gUnknown_8463B00:: @ 8463B00 - .incbin "baserom.gba", 0x463B00, 0x20 - -gUnknown_8463B20:: @ 8463B20 - .incbin "baserom.gba", 0x463B20, 0x10 - -gUnknown_8463B30:: @ 8463B30 - .incbin "baserom.gba", 0x463B30, 0x10 - -gUnknown_8463B40:: @ 8463B40 - .incbin "baserom.gba", 0x463B40, 0x4 - -gUnknown_8463B44:: @ 8463B44 - .incbin "baserom.gba", 0x463B44, 0x20 - -gUnknown_8463B64:: @ 8463B64 - .incbin "baserom.gba", 0x463B64, 0x24 - -gUnknown_8463B88:: @ 8463B88 - .incbin "baserom.gba", 0x463B88, 0xF8 - -gUnknown_8463C80:: @ 8463C80 - .incbin "baserom.gba", 0x463C80, 0x1E0 - -gUnknown_8463E60:: @ 8463E60 - .incbin "baserom.gba", 0x463E60, 0x64 - -gUnknown_8463EC4:: @ 8463EC4 - .incbin "baserom.gba", 0x463EC4, 0x10 - -gUnknown_8463ED4:: @ 8463ED4 - .incbin "baserom.gba", 0x463ED4, 0x1C - -gUnknown_8463EF0:: @ 8463EF0 - .incbin "baserom.gba", 0x463EF0, 0xC - -gUnknown_8463EFC:: @ 8463EFC - .incbin "baserom.gba", 0x463EFC, 0x10 - -gUnknown_8463F0C:: @ 8463F0C - .incbin "baserom.gba", 0x463F0C, 0x18 - -gUnknown_8463F24:: @ 8463F24 - .incbin "baserom.gba", 0x463F24, 0x18 - -gUnknown_8463F3C:: @ 8463F3C - .incbin "baserom.gba", 0x463F3C, 0x20 - -gUnknown_8463F5C:: @ 8463F5C - .incbin "baserom.gba", 0x463F5C, 0x20 - -gUnknown_8463F7C:: @ 8463F7C - .incbin "baserom.gba", 0x463F7C, 0x20 - -gUnknown_8463F9C:: @ 8463F9C - .incbin "baserom.gba", 0x463F9C, 0x8 - -gUnknown_8463FA4:: @ 8463FA4 - .incbin "baserom.gba", 0x463FA4, 0x3 - -gUnknown_8463FA7:: @ 8463FA7 - .incbin "baserom.gba", 0x463FA7, 0x11 - -gUnknown_8463FB8:: @ 8463FB8 - .incbin "baserom.gba", 0x463FB8, 0x6 - -gUnknown_8463FBE:: @ 8463FBE - .incbin "baserom.gba", 0x463FBE, 0x3 - -gUnknown_8463FC1:: @ 8463FC1 - .incbin "baserom.gba", 0x463FC1, 0x5 - -gUnknown_8463FC6:: @ 8463FC6 - .incbin "baserom.gba", 0x463FC6, 0x7 - -gUnknown_8463FCD:: @ 8463FCD - .incbin "baserom.gba", 0x463FCD, 0x7 - -gUnknown_8463FD4:: @ 8463FD4 - .incbin "baserom.gba", 0x463FD4, 0xB - -gUnknown_8463FDF:: @ 8463FDF - .incbin "baserom.gba", 0x463FDF, 0xB - -gUnknown_8463FEA:: @ 8463FEA - .incbin "baserom.gba", 0x463FEA, 0x12 - -gUnknown_8463FFC:: @ 8463FFC - .incbin "baserom.gba", 0x463FFC, 0xC - -gUnknown_8464008:: @ 8464008 - .incbin "baserom.gba", 0x464008, 0x120 - -gUnknown_8464128:: @ 8464128 - .incbin "baserom.gba", 0x464128, 0x20 - -gUnknown_8464148:: @ 8464148 - .incbin "baserom.gba", 0x464148, 0x174 - -gUnknown_84642BC:: @ 84642BC - .incbin "baserom.gba", 0x4642BC, 0x4 - -gUnknown_84642C0:: @ 84642C0 - .incbin "baserom.gba", 0x4642C0, 0x34 - -gUnknown_84642F4:: @ 84642F4 - .incbin "baserom.gba", 0x4642F4, 0xC - -gUnknown_8464300:: @ 8464300 - .incbin "baserom.gba", 0x464300, 0x4C - -gUnknown_846434C:: @ 846434C - .incbin "baserom.gba", 0x46434C, 0xC - -gUnknown_8464358:: @ 8464358 - .incbin "baserom.gba", 0x464358, 0x14 - -gUnknown_846436C:: @ 846436C - .incbin "baserom.gba", 0x46436C, 0x8 - -gUnknown_8464374:: @ 8464374 - .incbin "baserom.gba", 0x464374, 0x8 - -gUnknown_846437C:: @ 846437C - .incbin "baserom.gba", 0x46437C, 0x28 - -gUnknown_84643A4:: @ 84643A4 - .incbin "baserom.gba", 0x4643A4, 0x4 - -gUnknown_84643A8:: @ 84643A8 - .incbin "baserom.gba", 0x4643A8, 0x4 - -gUnknown_84643AC:: @ 84643AC - .incbin "baserom.gba", 0x4643AC, 0x4 - -gUnknown_84643B0:: @ 84643B0 - .incbin "baserom.gba", 0x4643B0, 0x4 - -gUnknown_84643B4:: @ 84643B4 - .incbin "baserom.gba", 0x4643B4, 0x4 - -gUnknown_84643B8:: @ 84643B8 - .incbin "baserom.gba", 0x4643B8, 0x20 - -gUnknown_84643D8:: @ 84643D8 - .incbin "baserom.gba", 0x4643D8, 0x18 - -gUnknown_84643F0:: @ 84643F0 - .incbin "baserom.gba", 0x4643F0, 0x8 - -gUnknown_84643F8:: @ 84643F8 - .incbin "baserom.gba", 0x4643F8, 0x8 - -gUnknown_8464400:: @ 8464400 - .incbin "baserom.gba", 0x464400, 0x48 - -gUnknown_8464448:: @ 8464448 - .incbin "baserom.gba", 0x464448, 0x60 - -gUnknown_84644A8:: @ 84644A8 - .incbin "baserom.gba", 0x4644A8, 0x8 - -gUnknown_84644B0:: @ 84644B0 - .incbin "baserom.gba", 0x4644B0, 0x8 - -gUnknown_84644B8:: @ 84644B8 - .incbin "baserom.gba", 0x4644B8, 0x32C - -gUnknown_84647E4:: @ 84647E4 - .incbin "baserom.gba", 0x4647E4, 0x18 - -gUnknown_84647FC:: @ 84647FC - .incbin "baserom.gba", 0x4647FC, 0x8 - -gUnknown_8464804:: @ 8464804 - .incbin "baserom.gba", 0x464804, 0x38 - -gUnknown_846483C:: @ 846483C - .incbin "baserom.gba", 0x46483C, 0x40 - -gUnknown_846487C:: @ 846487C - .incbin "baserom.gba", 0x46487C, 0x8 - -gUnknown_8464884:: @ 8464884 - .incbin "baserom.gba", 0x464884, 0xC - -gUnknown_8464890:: @ 8464890 - .incbin "baserom.gba", 0x464890, 0x1E - -gUnknown_84648AE:: @ 84648AE - .incbin "baserom.gba", 0x4648AE, 0xF - -gUnknown_84648BD:: @ 84648BD - .incbin "baserom.gba", 0x4648BD, 0x15 - -gUnknown_84648D2:: @ 84648D2 - .incbin "baserom.gba", 0x4648D2, 0x54 - -gUnknown_8464926:: @ 8464926 - .incbin "baserom.gba", 0x464926, 0x40 - -gUnknown_8464966:: @ 8464966 - .incbin "baserom.gba", 0x464966, 0xC4A - -gUnknown_84655B0:: @ 84655B0 - .incbin "baserom.gba", 0x4655B0, 0x18 - -gUnknown_84655C8:: @ 84655C8 - .incbin "baserom.gba", 0x4655C8, 0x40 - -gUnknown_8465608:: @ 8465608 - .incbin "baserom.gba", 0x465608, 0xE - -gUnknown_8465616:: @ 8465616 - .incbin "baserom.gba", 0x465616, 0xC0 - -gUnknown_84656D6:: @ 84656D6 - .incbin "baserom.gba", 0x4656D6, 0x10E - -gUnknown_84657E4:: @ 84657E4 - .incbin "baserom.gba", 0x4657E4, 0x98 - -gUnknown_846587C:: @ 846587C - .incbin "baserom.gba", 0x46587C, 0x5C - -gUnknown_84658D8:: @ 84658D8 - .incbin "baserom.gba", 0x4658D8, 0x18 - -gUnknown_84658F0:: @ 84658F0 - .incbin "baserom.gba", 0x4658F0, 0x40 - -gUnknown_8465930:: @ 8465930 - .incbin "baserom.gba", 0x465930, 0x20 - -gUnknown_8465950:: @ 8465950 - .incbin "baserom.gba", 0x465950, 0x80 - -gUnknown_84659D0:: @ 84659D0 - .incbin "baserom.gba", 0x4659D0, 0x804 - -gUnknown_84661D4:: @ 84661D4 - .incbin "baserom.gba", 0x4661D4, 0x2E8 - -gUnknown_84664BC:: @ 84664BC - .incbin "baserom.gba", 0x4664BC, 0x20 - -gUnknown_84664DC:: @ 84664DC - .incbin "baserom.gba", 0x4664DC, 0x60 - -gUnknown_846653C:: @ 846653C - .incbin "baserom.gba", 0x46653C, 0x84 - -gUnknown_84665C0:: @ 84665C0 - .incbin "baserom.gba", 0x4665C0, 0x60 - -gUnknown_8466620:: @ 8466620 - .incbin "baserom.gba", 0x466620, 0x378 - -gUnknown_8466998:: @ 8466998 - .incbin "baserom.gba", 0x466998, 0x178 - -gUnknown_8466B10:: @ 8466B10 - .incbin "baserom.gba", 0x466B10, 0x10 - -gUnknown_8466B20:: @ 8466B20 - .incbin "baserom.gba", 0x466B20, 0xEC - -gUnknown_8466C0C:: @ 8466C0C - .incbin "baserom.gba", 0x466C0C, 0x28 - -gUnknown_8466C34:: @ 8466C34 - .incbin "baserom.gba", 0x466C34, 0x4 - -gUnknown_8466C38:: @ 8466C38 - .incbin "baserom.gba", 0x466C38, 0x8 - -gUnknown_8466C40:: @ 8466C40 - .incbin "baserom.gba", 0x466C40, 0x18 - -gUnknown_8466C58:: @ 8466C58 - .incbin "baserom.gba", 0x466C58, 0xB8 - -gUnknown_8466D10:: @ 8466D10 - .incbin "baserom.gba", 0x466D10, 0x20 - -gUnknown_8466D30:: @ 8466D30 - .incbin "baserom.gba", 0x466D30, 0x30 - -gUnknown_8466D60:: @ 8466D60 - .incbin "baserom.gba", 0x466D60, 0x10 - -gUnknown_8466D70:: @ 8466D70 - .incbin "baserom.gba", 0x466D70, 0x20 - -gUnknown_8466D90:: @ 8466D90 - .incbin "baserom.gba", 0x466D90, 0x8 - -gUnknown_8466D98:: @ 8466D98 - .incbin "baserom.gba", 0x466D98, 0x8 - -gUnknown_8466DA0:: @ 8466DA0 - .incbin "baserom.gba", 0x466DA0, 0x8 - -gUnknown_8466DA8:: @ 8466DA8 - .incbin "baserom.gba", 0x466DA8, 0x8 - -gUnknown_8466DB0:: @ 8466DB0 - .incbin "baserom.gba", 0x466DB0, 0x8 - -gUnknown_8466DB8:: @ 8466DB8 - .incbin "baserom.gba", 0x466DB8, 0x8 - -gUnknown_8466DC0:: @ 8466DC0 - .incbin "baserom.gba", 0x466DC0, 0x8 - -gUnknown_8466DC8:: @ 8466DC8 - .incbin "baserom.gba", 0x466DC8, 0x8 - -gUnknown_8466DD0:: @ 8466DD0 - .incbin "baserom.gba", 0x466DD0, 0x18 - -gUnknown_8466DE8:: @ 8466DE8 - .incbin "baserom.gba", 0x466DE8, 0x18 - -gUnknown_8466E00:: @ 8466E00 - .incbin "baserom.gba", 0x466E00, 0x78 - -gUnknown_8466E78:: @ 8466E78 - .incbin "baserom.gba", 0x466E78, 0x18 - -gUnknown_8466E90:: @ 8466E90 - .incbin "baserom.gba", 0x466E90, 0x18 - -gUnknown_8466EA8:: @ 8466EA8 - .incbin "baserom.gba", 0x466EA8, 0x18 - -gUnknown_8466EC0:: @ 8466EC0 - .incbin "baserom.gba", 0x466EC0, 0x28 - -gUnknown_8466EE8:: @ 8466EE8 - .incbin "baserom.gba", 0x466EE8, 0x8 - -gUnknown_8466EF0:: @ 8466EF0 - .incbin "baserom.gba", 0x466EF0, 0x10 diff --git a/data/data_8468C98.s b/data/data_8468C98.s index f850fe141..7ce7c3a02 100644 --- a/data/data_8468C98.s +++ b/data/data_8468C98.s @@ -1,50 +1,63 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + .section .rodata .align 2 -gUnknown_8468C98:: @ 8468C98 - .incbin "baserom.gba", 0x468C98, 0x520 +gUnknown_846AFE8:: @ 846AFE8 + .incbin "graphics/misc/unk_846B008.gbapal" -gUnknown_84691B8:: @ 84691B8 - .incbin "baserom.gba", 0x4691B8, 0x20 - -gUnknown_84691D8:: @ 84691D8 - .incbin "baserom.gba", 0x4691D8, 0x800 - -gUnknown_84699D8:: @ 84699D8 - .incbin "baserom.gba", 0x4699D8, 0x1520 - -gUnknown_846AEF8:: @ 846AEF8 - .incbin "baserom.gba", 0x46AEF8, 0x4 - -gUnknown_846AEFC:: @ 846AEFC - .incbin "baserom.gba", 0x46AEFC, 0x2C - -gUnknown_846AF28:: @ 846AF28 - .incbin "baserom.gba", 0x46AF28, 0x38 - -gUnknown_846AF60:: @ 846AF60 - .incbin "baserom.gba", 0x46AF60, 0x18 - -gUnknown_846AF78:: @ 846AF78 - .incbin "baserom.gba", 0x46AF78, 0x18 - -gUnknown_846AF90:: @ 846AF90 - .incbin "baserom.gba", 0x46AF90, 0x40 - -gUnknown_846AFD0:: @ 846AFD0 - .incbin "baserom.gba", 0x46AFD0, 0x45C +gUnknown_846B008:: @ 846B008 + .incbin "graphics/misc/unk_846B008.4bpp.lz" gUnknown_846B42C:: @ 846B42C - .incbin "baserom.gba", 0x46B42C, 0x10 + obj_tiles gUnknown_846B008, 0x0c00, 0x2000 + null_obj_tiles gUnknown_846B43C:: @ 846B43C - .incbin "baserom.gba", 0x46B43C, 0x58 + obj_pal gUnknown_846AFE8, 0x2000 + null_obj_pal + +gUnknown_846B44C:: @ 846B44C + obj_image_anim_frame 0x00, 0 + obj_image_anim_end + +gUnknown_846B454:: @ 846B454 + obj_image_anim_frame 0x10, 0 + obj_image_anim_end + +gUnknown_846B45C:: @ 846B45C + obj_image_anim_frame 0x20, 0 + obj_image_anim_end + +gUnknown_846B464:: @ 846B464 + obj_image_anim_frame 0x40, 0 + obj_image_anim_end + +gUnknown_846B46C:: @ 846B46C + obj_image_anim_frame 0x30, 0 + obj_image_anim_end + +gUnknown_846B474:: @ 846B474 + obj_image_anim_frame 0x50, 0 + obj_image_anim_end + +gUnknown_846B47C:: + .4byte gUnknown_846B44C + .4byte gUnknown_846B454 + .4byte gUnknown_846B45C + .4byte gUnknown_846B464 + .4byte gUnknown_846B46C + .4byte gUnknown_846B474 gUnknown_846B494:: @ 846B494 - .incbin "baserom.gba", 0x46B494, 0x18 + spr_template 0x2000, 0x2000, gOamData_83AC9D8, gUnknown_846B47C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_846B4AC:: @ 846B4AC - .incbin "baserom.gba", 0x46B4AC, 0x10 + @ This is a 2D array with one row. + @ Why this was done this way is beyond me. + @ The data that follow this row are not at all function pointers. + .4byte sub_81477C0, sub_814784C, sub_81479D4, sub_8147A34 gUnknown_846B4BC:: @ 846B4BC .incbin "baserom.gba", 0x46B4BC, 0x190 @@ -125,10 +138,14 @@ gUnknown_846D953:: @ 846D953 .incbin "baserom.gba", 0x46D953, 0xD gUnknown_846D960:: @ 846D960 - .incbin "baserom.gba", 0x46D960, 0x8 + obj_tiles gUnknown_8479688, 0, 800 gUnknown_846D968:: @ 846D968 - .incbin "baserom.gba", 0x46D968, 0x40 + obj_pal gUnknown_8479668, 800 + +gUnknown_846D970:: + .2byte 0x0006, 0x0008, 0x0010, 0x0008, 0x0006, 0x0008, 0x000b, 0x0006, 0x0010, 0x0008, 0x0002, 0x0006 + .2byte 0x0006, 0x0008, 0x0010, 0x0008, 0x0014, 0x0006, 0x0002, 0x0006, 0x0006, 0x0008, 0x000b, 0x0006, 0x0010, 0x0008, 0x0014, 0x0006 gUnknown_846D9A8:: @ 846D9A8 .incbin "baserom.gba", 0x46D9A8, 0x2C @@ -279,45 +296,3 @@ gUnknown_846F488:: @ 846F488 gUnknown_846F4B8:: @ 846F4B8 .incbin "baserom.gba", 0x46F4B8, 0x18 - -gUnknown_846F4D0:: @ 846F4D0 - .incbin "baserom.gba", 0x46F4D0, 0x200 - -gUnknown_846F6D0:: @ 846F6D0 - .incbin "baserom.gba", 0x46F6D0, 0x210 - -gUnknown_846F8E0:: @ 846F8E0 - .incbin "baserom.gba", 0x46F8E0, 0x194 - -gUnknown_846FA74:: @ 846FA74 - .incbin "baserom.gba", 0x46FA74, 0x8 - -gUnknown_846FA7C:: @ 846FA7C - .incbin "baserom.gba", 0x46FA7C, 0x30 - -gUnknown_846FAAC:: @ 846FAAC - .incbin "baserom.gba", 0x46FAAC, 0x14 - -gUnknown_846FAC0:: @ 846FAC0 - .incbin "baserom.gba", 0x46FAC0, 0x48 - -gUnknown_846FB08:: @ 846FB08 - .incbin "baserom.gba", 0x46FB08, 0x4 - -gUnknown_846FB0C:: @ 846FB0C - .incbin "baserom.gba", 0x46FB0C, 0x1000 - -gUnknown_8470B0C:: @ 8470B0C - .incbin "baserom.gba", 0x470B0C, 0xF40 - -gUnknown_8471A4C:: @ 8471A4C - .incbin "baserom.gba", 0x471A4C, 0x120 - -gUnknown_8471B6C:: @ 8471B6C - .incbin "baserom.gba", 0x471B6C, 0x280 - -gUnknown_8471DEC:: @ 8471DEC - .incbin "baserom.gba", 0x471DEC, 0xA0 - -gUnknown_8471E8C:: @ 8471E8C - .incbin "baserom.gba", 0x471E8C, 0x50 diff --git a/data/data_8471F00.s b/data/data_8471F00.s index 6733b3f4d..364b5458d 100644 --- a/data/data_8471F00.s +++ b/data/data_8471F00.s @@ -215,165 +215,88 @@ gUnknown_84791E8:: @ 84791E8 gUnknown_84792D0:: @ 84792D0 .incbin "baserom.gba", 0x4792D0, 0x10 -gUnknown_84792E0:: @ 84792E0 - .incbin "baserom.gba", 0x4792E0, 0x10 - -gUnknown_84792F0:: @ 84792F0 - .incbin "baserom.gba", 0x4792F0, 0x50 - -gUnknown_8479340:: @ 8479340 - .incbin "baserom.gba", 0x479340, 0x28 - -gUnknown_8479368:: @ 8479368 - .incbin "baserom.gba", 0x479368, 0x18 - -gUnknown_8479380:: @ 8479380 - .incbin "baserom.gba", 0x479380, 0x10 - -gUnknown_8479390:: @ 8479390 - .incbin "baserom.gba", 0x479390, 0x1B8 - -gUnknown_8479548:: @ 8479548 - .incbin "baserom.gba", 0x479548, 0x18 - -gUnknown_8479560:: @ 8479560 - .incbin "baserom.gba", 0x479560, 0x18 - -gUnknown_8479578:: @ 8479578 - .incbin "baserom.gba", 0x479578, 0x18 - -gUnknown_8479590:: @ 8479590 - .incbin "baserom.gba", 0x479590, 0x28 - -gUnknown_84795B8:: @ 84795B8 - .incbin "baserom.gba", 0x4795B8, 0x10 - -gUnknown_84795C8:: @ 84795C8 - .incbin "baserom.gba", 0x4795C8, 0x90 - -gUnknown_8479658:: @ 8479658 - .incbin "baserom.gba", 0x479658, 0x600 - -gUnknown_8479C58:: @ 8479C58 - .incbin "baserom.gba", 0x479C58, 0x30 - -gUnknown_8479C88:: @ 8479C88 - .incbin "baserom.gba", 0x479C88, 0x38 - -gUnknown_8479CC0:: @ 8479CC0 - .incbin "baserom.gba", 0x479CC0, 0x18 + .section .rodata.8479668 .align 2 -gUnknown_8479CD8:: @ 8479CD8 - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c" +gUnknown_8479668:: @ 8479668 + .incbin "graphics/misc/unk_8479688.gbapal" - .align 2 -gUnknown_8479D10:: @ 8479D10 - .asciz "ttdata->dummy == 0" +gUnknown_8479688:: + .incbin "graphics/misc/unk_8479688.4bpp.lz" - .align 2 -gUnknown_8479D24:: @ 8479D24 - .asciz "ttdata->id == 0" - - // trainer_tower +gUnknown_8479748:: + .incbin "graphics/misc/unk_8479748.4bpp.lz" .section .rodata.after_trainer_tower - // unk_815F138 - -gUnknown_847A328:: - .incbin "data/graphics/unk_847a348.gbapal" - -gUnknown_847A348:: - .incbin "data/graphics/unk_847a348.4bpp.lz" - -gUnknown_847A79C:: @ 847A79C - obj_tiles gUnknown_847A348, 0xE00, 0 - -gUnknown_847A7A4:: @ 847A7A4 - obj_pal gUnknown_847A328, 0 - -gOamData_847A7AC:: - .4byte 0x80000300, 0x00000000 - -gOamData_847A7B4:: - .4byte 0xc0004000, 0x00000000 - -gUnknown_847A7BC:: - obj_image_anim_frame 0, 1 - obj_image_anim_end - -gUnknown_847A7C4:: - obj_image_anim_frame 16, 1 - obj_image_anim_end - -gUnknown_847A7CC:: - obj_image_anim_frame 32, 1 - obj_image_anim_end - -gUnknown_847A7D4:: - .4byte gUnknown_847A7BC - .4byte gUnknown_847A7C4 - .4byte gUnknown_847A7CC - -gUnknown_847A7E0:: - obj_image_anim_frame 48, 1 - obj_image_anim_end - -gUnknown_847A7E8:: - obj_image_anim_frame 80, 1 - obj_image_anim_end - -gUnknown_847A7F0:: - .4byte gUnknown_847A7E0 - .4byte gUnknown_847A7E8 - -gUnknown_847A7F8:: - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - -gUnknown_847A808:: - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0x10, -0x10, 0, 8 - obj_rot_scal_anim_end - -gUnknown_847A820:: - obj_rot_scal_anim_frame -0x12, 0x12, 0, 8 - obj_rot_scal_anim_end - -gUnknown_847A830:: - obj_rot_scal_anim_frame 0x6, -0x6, 0, 8 - obj_rot_scal_anim_frame -0x4, 0x4, 0, 8 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - -gUnknown_847A850:: - .4byte gUnknown_847A7F8 - .4byte gUnknown_847A808 - .4byte gUnknown_847A820 - .4byte gUnknown_847A830 - -gUnknown_847A860:: @ 847A860 - spr_template 0, 0, gOamData_847A7AC, gUnknown_847A7D4, NULL, gUnknown_847A850, SpriteCallbackDummy - -gUnknown_847A878:: @ 847A878 - spr_template 0, 0, gOamData_847A7B4, gUnknown_847A7F0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - // berry_fix_program -gUnknown_847A890:: @ 847A890 - .4byte gUnknown_8EA467C, gUnknown_8EA52B8, gUnknown_8EA463C - .4byte gUnknown_8EA5664, gUnknown_8EA60C8, gUnknown_8EA5604 - .4byte gUnknown_8EA6408, gUnknown_8EA7028, gUnknown_8EA63C8 - .4byte gUnknown_8EA7320, gUnknown_8EA8118, gUnknown_8EA72E0 - .4byte gUnknown_8EA8408, gUnknown_8EA8CC8, gUnknown_8EA83C8 - .4byte gUnknown_8EA8F40, gUnknown_8EA9588, gUnknown_8EA8F00 +gUnknown_847A8D8:: + .string "{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 26}others$" - .incbin "baserom.gba", 0x47A8D8, 0x2D4 +gUnknown_847A8FA:: + .string "{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L$" + +gUnknown_847A913:: + .string "{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} $" + +gUnknown_847A934:: + .string "{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} $" + .string "{CLEAR 11}a{CLEAR 6}b{CLEAR 6}c{CLEAR 26}d{CLEAR 6}e{CLEAR 6}f{CLEAR 6} {CLEAR 26}.$" + .string "{CLEAR 11}g{CLEAR 6}h{CLEAR 7}i{CLEAR 27}j{CLEAR 6}k{CLEAR 6}l{CLEAR 7} {CLEAR 26},$" + .string "{CLEAR 11}m{CLEAR 6}n{CLEAR 7}o{CLEAR 26}p{CLEAR 6}q{CLEAR 7}r{CLEAR 6}s{CLEAR 27} $" + .string "{CLEAR 12}t{CLEAR 6}u{CLEAR 6}v{CLEAR 26}w{CLEAR 6}x{CLEAR 6}y{CLEAR 6}z{CLEAR 26} $" + .string "{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 6} {CLEAR 26}.$" + .string "{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L{CLEAR 6} {CLEAR 26},$" + .string "{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} $" + .string "{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} $" + .string "{CLEAR 11}0{CLEAR 16}1{CLEAR 16}2{CLEAR 16}3{CLEAR 16}4{CLEAR 16} $" + .string "{CLEAR 11}5{CLEAR 16}6{CLEAR 16}7{CLEAR 16}8{CLEAR 16}9{CLEAR 16} $" + .string "{CLEAR 11}!{CLEAR 16}?{CLEAR 16}♂{CLEAR 16}♀{CLEAR 16}/{CLEAR 16}-$" + .string "{CLEAR 11}…{CLEAR 16}“{CLEAR 16}”{CLEAR 18}‘{CLEAR 18}'{CLEAR 18} $" + .string "ABCDE$" + .string "FGHIJ$" + .string "KLMNO$" + .string "PQRST$" + .string "UVWXY$" + .string "Z $" + .string "01234$" + .string "56789$" + .string ".,!? $" + .string "-/&… $" + .string "abcde$" + .string "fghij$" + .string "klmno$" + .string "pqrst$" + .string "uvwxy$" + .string "z $" + .string "01234$" + .string "56789$" + .string ".,!? $" + .string "-/&… $" + .string "$" + .string "$" + .string "$" + .string "$" + .string "$" + .string "$" + .string "$" + .string "$" + .string "{EXTRA 245}{EXTRA 246}{EXTRA 247}{EXTRA 248}{EXTRA 254}$" + .string "{EXTRA 249}{EXTRA 250}{EXTRA 252}{EXTRA 251}{EXTRA 253}$" + .string "{EXTRA 236}{EXTRA 237}{EXTRA 238}{EXTRA 235}{EXTRA 234}$" + .string "♂♀{EXTRA 212}{EXTRA 213}{EXTRA 211}$" + .string "{EXTRA 216}{EXTRA 217}{EXTRA 242}{EXTRA 243}{EXTRA 244}$" + .string "{EXTRA 218}{EXTRA 241}{EXTRA 224}{EXTRA 226}{EXTRA 227}$" + .string "{EXTRA 240}{EXTRA 239}{EXTRA 225}{EXTRA 214}{EXTRA 215}$" + .string "{EXTRA 228}{EXTRA 229}{EXTRA 230}{EXTRA 231}{EXTRA 232}$" + .string "{EXTRA 233}{EXTRA 220}{EXTRA 221}{EXTRA 222}{EXTRA 209}$" + .string "{EXTRA 210}{EXTRA 208}ょ: $" // trainer_tower (again?) @ 847ABAC +.align 2 .include "data/trainer_tower/trainers.inc" .align 2 @@ -418,5 +341,359 @@ gUnknown_84827B4:: @ 84827B4 .include "data/text/move_descriptions.inc" + .align 2, 0 gUnknown_84886E8:: @ 84886E8 - .incbin "baserom.gba", 0x4886E8, 0x588 + .4byte gMoveDescription_Pound + .4byte gMoveDescription_KarateChop + .4byte gMoveDescription_DoubleSlap + .4byte gMoveDescription_CometPunch + .4byte gMoveDescription_MegaPunch + .4byte gMoveDescription_PayDay + .4byte gMoveDescription_FirePunch + .4byte gMoveDescription_IcePunch + .4byte gMoveDescription_ThunderPunch + .4byte gMoveDescription_Scratch + .4byte gMoveDescription_ViceGrip + .4byte gMoveDescription_Guillotine + .4byte gMoveDescription_RazorWind + .4byte gMoveDescription_SwordsDance + .4byte gMoveDescription_Cut + .4byte gMoveDescription_Gust + .4byte gMoveDescription_WingAttack + .4byte gMoveDescription_Whirlwind + .4byte gMoveDescription_Fly + .4byte gMoveDescription_Bind + .4byte gMoveDescription_Slam + .4byte gMoveDescription_VineWhip + .4byte gMoveDescription_Stomp + .4byte gMoveDescription_DoubleKick + .4byte gMoveDescription_MegaKick + .4byte gMoveDescription_JumpKick + .4byte gMoveDescription_RollingKick + .4byte gMoveDescription_SandAttack + .4byte gMoveDescription_Headbutt + .4byte gMoveDescription_HornAttack + .4byte gMoveDescription_FuryAttack + .4byte gMoveDescription_HornDrill + .4byte gMoveDescription_Tackle + .4byte gMoveDescription_BodySlam + .4byte gMoveDescription_Wrap + .4byte gMoveDescription_TakeDown + .4byte gMoveDescription_Thrash + .4byte gMoveDescription_DoubleEdge + .4byte gMoveDescription_TailWhip + .4byte gMoveDescription_PoisonSting + .4byte gMoveDescription_Twineedle + .4byte gMoveDescription_PinMissile + .4byte gMoveDescription_Leer + .4byte gMoveDescription_Bite + .4byte gMoveDescription_Growl + .4byte gMoveDescription_Roar + .4byte gMoveDescription_Sing + .4byte gMoveDescription_Supersonic + .4byte gMoveDescription_SonicBoom + .4byte gMoveDescription_Disable + .4byte gMoveDescription_Acid + .4byte gMoveDescription_Ember + .4byte gMoveDescription_Flamethrower + .4byte gMoveDescription_Mist + .4byte gMoveDescription_WaterGun + .4byte gMoveDescription_HydroPump + .4byte gMoveDescription_Surf + .4byte gMoveDescription_IceBeam + .4byte gMoveDescription_Blizzard + .4byte gMoveDescription_Psybeam + .4byte gMoveDescription_BubbleBeam + .4byte gMoveDescription_AuroraBeam + .4byte gMoveDescription_HyperBeam + .4byte gMoveDescription_Peck + .4byte gMoveDescription_DrillPeck + .4byte gMoveDescription_Submission + .4byte gMoveDescription_LowKick + .4byte gMoveDescription_Counter + .4byte gMoveDescription_SeismicToss + .4byte gMoveDescription_Strength + .4byte gMoveDescription_Absorb + .4byte gMoveDescription_MegaDrain + .4byte gMoveDescription_LeechSeed + .4byte gMoveDescription_Growth + .4byte gMoveDescription_RazorLeaf + .4byte gMoveDescription_SolarBeam + .4byte gMoveDescription_PoisonPowder + .4byte gMoveDescription_StunSpore + .4byte gMoveDescription_SleepPowder + .4byte gMoveDescription_PetalDance + .4byte gMoveDescription_StringShot + .4byte gMoveDescription_DragonRage + .4byte gMoveDescription_FireSpin + .4byte gMoveDescription_ThunderShock + .4byte gMoveDescription_Thunderbolt + .4byte gMoveDescription_ThunderWave + .4byte gMoveDescription_Thunder + .4byte gMoveDescription_RockThrow + .4byte gMoveDescription_Earthquake + .4byte gMoveDescription_Fissure + .4byte gMoveDescription_Dig + .4byte gMoveDescription_Toxic + .4byte gMoveDescription_Confusion + .4byte gMoveDescription_Psychic + .4byte gMoveDescription_Hypnosis + .4byte gMoveDescription_Meditate + .4byte gMoveDescription_Agility + .4byte gMoveDescription_QuickAttack + .4byte gMoveDescription_Rage + .4byte gMoveDescription_Teleport + .4byte gMoveDescription_NightShade + .4byte gMoveDescription_Mimic + .4byte gMoveDescription_Screech + .4byte gMoveDescription_DoubleTeam + .4byte gMoveDescription_Recover + .4byte gMoveDescription_Harden + .4byte gMoveDescription_Minimize + .4byte gMoveDescription_Smokescreen + .4byte gMoveDescription_ConfuseRay + .4byte gMoveDescription_Withdraw + .4byte gMoveDescription_DefenseCurl + .4byte gMoveDescription_Barrier + .4byte gMoveDescription_LightScreen + .4byte gMoveDescription_Haze + .4byte gMoveDescription_Reflect + .4byte gMoveDescription_FocusEnergy + .4byte gMoveDescription_Bide + .4byte gMoveDescription_Metronome + .4byte gMoveDescription_MirrorMove + .4byte gMoveDescription_SelfDestruct + .4byte gMoveDescription_EggBomb + .4byte gMoveDescription_Lick + .4byte gMoveDescription_Smog + .4byte gMoveDescription_Sludge + .4byte gMoveDescription_BoneClub + .4byte gMoveDescription_FireBlast + .4byte gMoveDescription_Waterfall + .4byte gMoveDescription_Clamp + .4byte gMoveDescription_Swift + .4byte gMoveDescription_SkullBash + .4byte gMoveDescription_SpikeCannon + .4byte gMoveDescription_Constrict + .4byte gMoveDescription_Amnesia + .4byte gMoveDescription_Kinesis + .4byte gMoveDescription_SoftBoiled + .4byte gMoveDescription_HiJumpKick + .4byte gMoveDescription_Glare + .4byte gMoveDescription_DreamEater + .4byte gMoveDescription_PoisonGas + .4byte gMoveDescription_Barrage + .4byte gMoveDescription_LeechLife + .4byte gMoveDescription_LovelyKiss + .4byte gMoveDescription_SkyAttack + .4byte gMoveDescription_Transform + .4byte gMoveDescription_Bubble + .4byte gMoveDescription_DizzyPunch + .4byte gMoveDescription_Spore + .4byte gMoveDescription_Flash + .4byte gMoveDescription_Psywave + .4byte gMoveDescription_Splash + .4byte gMoveDescription_AcidArmor + .4byte gMoveDescription_Crabhammer + .4byte gMoveDescription_Explosion + .4byte gMoveDescription_FurySwipes + .4byte gMoveDescription_Bonemerang + .4byte gMoveDescription_Rest + .4byte gMoveDescription_RockSlide + .4byte gMoveDescription_HyperFang + .4byte gMoveDescription_Sharpen + .4byte gMoveDescription_Conversion + .4byte gMoveDescription_TriAttack + .4byte gMoveDescription_SuperFang + .4byte gMoveDescription_Slash + .4byte gMoveDescription_Substitute + .4byte gMoveDescription_Struggle + .4byte gMoveDescription_Sketch + .4byte gMoveDescription_TripleKick + .4byte gMoveDescription_Thief + .4byte gMoveDescription_SpiderWeb + .4byte gMoveDescription_MindReader + .4byte gMoveDescription_Nightmare + .4byte gMoveDescription_FlameWheel + .4byte gMoveDescription_Snore + .4byte gMoveDescription_Curse + .4byte gMoveDescription_Flail + .4byte gMoveDescription_Conversion2 + .4byte gMoveDescription_Aeroblast + .4byte gMoveDescription_CottonSpore + .4byte gMoveDescription_Reversal + .4byte gMoveDescription_Spite + .4byte gMoveDescription_PowderSnow + .4byte gMoveDescription_Protect + .4byte gMoveDescription_MachPunch + .4byte gMoveDescription_ScaryFace + .4byte gMoveDescription_FaintAttack + .4byte gMoveDescription_SweetKiss + .4byte gMoveDescription_BellyDrum + .4byte gMoveDescription_SludgeBomb + .4byte gMoveDescription_MudSlap + .4byte gMoveDescription_Octazooka + .4byte gMoveDescription_Spikes + .4byte gMoveDescription_ZapCannon + .4byte gMoveDescription_Foresight + .4byte gMoveDescription_DestinyBond + .4byte gMoveDescription_PerishSong + .4byte gMoveDescription_IcyWind + .4byte gMoveDescription_Detect + .4byte gMoveDescription_BoneRush + .4byte gMoveDescription_LockOn + .4byte gMoveDescription_Outrage + .4byte gMoveDescription_Sandstorm + .4byte gMoveDescription_GigaDrain + .4byte gMoveDescription_Endure + .4byte gMoveDescription_Charm + .4byte gMoveDescription_Rollout + .4byte gMoveDescription_FalseSwipe + .4byte gMoveDescription_Swagger + .4byte gMoveDescription_MilkDrink + .4byte gMoveDescription_Spark + .4byte gMoveDescription_FuryCutter + .4byte gMoveDescription_SteelWing + .4byte gMoveDescription_MeanLook + .4byte gMoveDescription_Attract + .4byte gMoveDescription_SleepTalk + .4byte gMoveDescription_HealBell + .4byte gMoveDescription_Return + .4byte gMoveDescription_Present + .4byte gMoveDescription_Frustration + .4byte gMoveDescription_Safeguard + .4byte gMoveDescription_PainSplit + .4byte gMoveDescription_SacredFire + .4byte gMoveDescription_Magnitude + .4byte gMoveDescription_DynamicPunch + .4byte gMoveDescription_Megahorn + .4byte gMoveDescription_DragonBreath + .4byte gMoveDescription_BatonPass + .4byte gMoveDescription_Encore + .4byte gMoveDescription_Pursuit + .4byte gMoveDescription_RapidSpin + .4byte gMoveDescription_SweetScent + .4byte gMoveDescription_IronTail + .4byte gMoveDescription_MetalClaw + .4byte gMoveDescription_VitalThrow + .4byte gMoveDescription_MorningSun + .4byte gMoveDescription_Synthesis + .4byte gMoveDescription_Moonlight + .4byte gMoveDescription_HiddenPower + .4byte gMoveDescription_CrossChop + .4byte gMoveDescription_Twister + .4byte gMoveDescription_RainDance + .4byte gMoveDescription_SunnyDay + .4byte gMoveDescription_Crunch + .4byte gMoveDescription_MirrorCoat + .4byte gMoveDescription_PsychUp + .4byte gMoveDescription_ExtremeSpeed + .4byte gMoveDescription_AncientPower + .4byte gMoveDescription_ShadowBall + .4byte gMoveDescription_FutureSight + .4byte gMoveDescription_RockSmash + .4byte gMoveDescription_Whirlpool + .4byte gMoveDescription_BeatUp + .4byte gMoveDescription_FakeOut + .4byte gMoveDescription_Uproar + .4byte gMoveDescription_Stockpile + .4byte gMoveDescription_SpitUp + .4byte gMoveDescription_Swallow + .4byte gMoveDescription_HeatWave + .4byte gMoveDescription_Hail + .4byte gMoveDescription_Torment + .4byte gMoveDescription_Flatter + .4byte gMoveDescription_WillOWisp + .4byte gMoveDescription_Memento + .4byte gMoveDescription_Facade + .4byte gMoveDescription_FocusPunch + .4byte gMoveDescription_SmellingSalt + .4byte gMoveDescription_FollowMe + .4byte gMoveDescription_NaturePower + .4byte gMoveDescription_Charge + .4byte gMoveDescription_Taunt + .4byte gMoveDescription_HelpingHand + .4byte gMoveDescription_Trick + .4byte gMoveDescription_RolePlay + .4byte gMoveDescription_Wish + .4byte gMoveDescription_Assist + .4byte gMoveDescription_Ingrain + .4byte gMoveDescription_Superpower + .4byte gMoveDescription_MagicCoat + .4byte gMoveDescription_Recycle + .4byte gMoveDescription_Revenge + .4byte gMoveDescription_BrickBreak + .4byte gMoveDescription_Yawn + .4byte gMoveDescription_KnockOff + .4byte gMoveDescription_Endeavor + .4byte gMoveDescription_Eruption + .4byte gMoveDescription_SkillSwap + .4byte gMoveDescription_Imprison + .4byte gMoveDescription_Refresh + .4byte gMoveDescription_Grudge + .4byte gMoveDescription_Snatch + .4byte gMoveDescription_SecretPower + .4byte gMoveDescription_Dive + .4byte gMoveDescription_ArmThrust + .4byte gMoveDescription_Camouflage + .4byte gMoveDescription_TailGlow + .4byte gMoveDescription_LusterPurge + .4byte gMoveDescription_MistBall + .4byte gMoveDescription_FeatherDance + .4byte gMoveDescription_TeeterDance + .4byte gMoveDescription_BlazeKick + .4byte gMoveDescription_MudSport + .4byte gMoveDescription_IceBall + .4byte gMoveDescription_NeedleArm + .4byte gMoveDescription_SlackOff + .4byte gMoveDescription_HyperVoice + .4byte gMoveDescription_PoisonFang + .4byte gMoveDescription_CrushClaw + .4byte gMoveDescription_BlastBurn + .4byte gMoveDescription_HydroCannon + .4byte gMoveDescription_MeteorMash + .4byte gMoveDescription_Astonish + .4byte gMoveDescription_WeatherBall + .4byte gMoveDescription_Aromatherapy + .4byte gMoveDescription_FakeTears + .4byte gMoveDescription_AirCutter + .4byte gMoveDescription_Overheat + .4byte gMoveDescription_OdorSleuth + .4byte gMoveDescription_RockTomb + .4byte gMoveDescription_SilverWind + .4byte gMoveDescription_MetalSound + .4byte gMoveDescription_GrassWhistle + .4byte gMoveDescription_Tickle + .4byte gMoveDescription_CosmicPower + .4byte gMoveDescription_WaterSpout + .4byte gMoveDescription_SignalBeam + .4byte gMoveDescription_ShadowPunch + .4byte gMoveDescription_Extrasensory + .4byte gMoveDescription_SkyUppercut + .4byte gMoveDescription_SandTomb + .4byte gMoveDescription_SheerCold + .4byte gMoveDescription_MuddyWater + .4byte gMoveDescription_BulletSeed + .4byte gMoveDescription_AerialAce + .4byte gMoveDescription_IcicleSpear + .4byte gMoveDescription_IronDefense + .4byte gMoveDescription_Block + .4byte gMoveDescription_Howl + .4byte gMoveDescription_DragonClaw + .4byte gMoveDescription_FrenzyPlant + .4byte gMoveDescription_BulkUp + .4byte gMoveDescription_Bounce + .4byte gMoveDescription_MudShot + .4byte gMoveDescription_PoisonTail + .4byte gMoveDescription_Covet + .4byte gMoveDescription_VoltTackle + .4byte gMoveDescription_MagicalLeaf + .4byte gMoveDescription_WaterSport + .4byte gMoveDescription_CalmMind + .4byte gMoveDescription_LeafBlade + .4byte gMoveDescription_DragonDance + .4byte gMoveDescription_RockBlast + .4byte gMoveDescription_ShockWave + .4byte gMoveDescription_WaterPulse + .4byte gMoveDescription_DoomDesire + .4byte gMoveDescription_PsychoBoost diff --git a/data/event_scripts.s b/data/event_scripts.s index 9baa201e5..7f03adfc2 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1,3 +1,19 @@ +#include "constants/flags.h" +#include "constants/decorations.h" +#include "constants/items.h" +#include "constants/layouts.h" +#include "constants/maps.h" +#include "constants/moves.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "constants/trainer_classes.h" +#include "constants/vars.h" +#include "constants/battle.h" +#include "constants/spawn_points.h" + .include "asm/macros.inc" + .include "asm/macros/event.inc" +@ .include "constants/constants.inc" + .section script_data, "aw", %progbits .include "data/script_cmd_table.inc" @@ -30,448 +46,16 @@ gSpecialVars:: @ 815FD0C .align 2 gStdScripts:: @ 8160450 - .4byte gStdScript_81A667B - .4byte gStdScript_81A67B3 - .4byte gStdScript_81A4E3F - .4byte gStdScript_81A4E4A - .4byte gStdScript_81A4E54 - .4byte gStdScript_81A4E5C - .4byte gStdScript_81A501F - .4byte gStdScript_81A676C - .4byte gStdScript_81A8E58 - .4byte gStdScript_81A4E66 -gStdScripts_End:: - -gUnknown_8160478:: @ 8160478 - .incbin "baserom.gba", 0x160478, 0x886C - -gUnknown_8168CE4:: @ 8168CE4 - .incbin "baserom.gba", 0x168CE4, 0x33 - -gUnknown_8168D17:: @ 8168D17 - .incbin "baserom.gba", 0x168D17, 0x3C128 - -gStdScript_81A4E3F:: - .incbin "baserom.gba", 0x1A4E3F, 0xB - -gStdScript_81A4E4A:: - .incbin "baserom.gba", 0x1A4E4A, 0xA - -gStdScript_81A4E54:: - .incbin "baserom.gba", 0x1A4E54, 0x8 - -gStdScript_81A4E5C:: - .incbin "baserom.gba", 0x1A4E5C, 0xA - -gStdScript_81A4E66:: - .incbin "baserom.gba", 0x1A4E66, 0x4E - -gUnknown_81A4EB4:: @ 81A4EB4 - .incbin "baserom.gba", 0x1A4EB4, 0xD - -gUnknown_81A4EC1:: @ 81A4EC1 - .incbin "baserom.gba", 0x1A4EC1, 0x28 - -gUnknown_81A4EE9:: @ 81A4EE9 - .incbin "baserom.gba", 0x1A4EE9, 0x38 - -gUnknown_81A4F21:: @ 81A4F21 - .incbin "baserom.gba", 0x1A4F21, 0x1D - -gUnknown_81A4F3E:: @ 81A4F3E - .incbin "baserom.gba", 0x1A4F3E, 0x35 - -gUnknown_81A4F73:: @ 81A4F73 - .incbin "baserom.gba", 0x1A4F73, 0xAC - -gStdScript_81A501F:: - .incbin "baserom.gba", 0x1A501F, 0x6B - -gUnknown_81A508A:: @ 81A508A - .incbin "baserom.gba", 0x1A508A, 0x3EC - -gUnknown_81A5476:: @ 81A5476 - .incbin "baserom.gba", 0x1A5476, 0x100B - -gUnknown_81A6481:: @ 81A6481 - .incbin "baserom.gba", 0x1A6481, 0xCA - -gUnknown_81A654B:: @ 81A654B - .incbin "baserom.gba", 0x1A654B, 0x130 - -gStdScript_81A667B:: - .incbin "baserom.gba", 0x1A667B, 0xF1 - -gStdScript_81A676C:: - .incbin "baserom.gba", 0x1A676C, 0x47 - -gStdScript_81A67B3:: - .incbin "baserom.gba", 0x1A67B3, 0x90 - -gUnknown_81A6843:: @ 81A6843 - .incbin "baserom.gba", 0x1A6843, 0x112 - -gUnknown_81A6955:: @ 81A6955 - .incbin "baserom.gba", 0x1A6955, 0x173 - -gUnknown_81A6AC8:: @ 81A6AC8 - .incbin "baserom.gba", 0x1A6AC8, 0x45 - -gUnknown_81A6B0D:: @ 81A6B0D - .incbin "baserom.gba", 0x1A6B0D, 0x125 - -gUnknown_81A6C32:: @ 81A6C32 - .incbin "baserom.gba", 0x1A6C32, 0xE5 - -gUnknown_81A6D17:: @ 81A6D17 - .incbin "baserom.gba", 0x1A6D17, 0x56 - -gUnknown_81A6D6D:: @ 81A6D6D - .incbin "baserom.gba", 0x1A6D6D, 0x72 - -gUnknown_81A6DDF:: @ 81A6DDF - .incbin "baserom.gba", 0x1A6DDF, 0x57 - -gUnknown_81A6E36:: @ 81A6E36 - .incbin "baserom.gba", 0x1A6E36, 0x6E - -gUnknown_81A6EA4:: @ 81A6EA4 - .incbin "baserom.gba", 0x1A6EA4, 0x67 - -gUnknown_81A6F0B:: @ 81A6F0B - .incbin "baserom.gba", 0x1A6F0B, 0x66 - -gUnknown_81A6F71:: @ 81A6F71 - .incbin "baserom.gba", 0x1A6F71, 0x3A - -gUnknown_81A6FAB:: @ 81A6FAB - .incbin "baserom.gba", 0x1A6FAB, 0x46 - -gUnknown_81A6FF1:: @ 81A6FF1 - .incbin "baserom.gba", 0x1A6FF1, 0x40 - -gUnknown_81A7031:: @ 81A7031 - .incbin "baserom.gba", 0x1A7031, 0x32 - -gUnknown_81A7063:: @ 81A7063 - .incbin "baserom.gba", 0x1A7063, 0x42 - -gUnknown_81A70A5:: @ 81A70A5 - .incbin "baserom.gba", 0x1A70A5, 0x33 - -gUnknown_81A70D8:: @ 81A70D8 - .incbin "baserom.gba", 0x1A70D8, 0x30 - -gUnknown_81A7108:: @ 81A7108 - .incbin "baserom.gba", 0x1A7108, 0x2F - -gUnknown_81A7137:: @ 81A7137 - .incbin "baserom.gba", 0x1A7137, 0x3E - -gUnknown_81A7175:: @ 81A7175 - .incbin "baserom.gba", 0x1A7175, 0x491 - -gUnknown_81A7606:: @ 81A7606 - .incbin "baserom.gba", 0x1A7606, 0x9 - -gUnknown_81A760F:: @ 81A760F - .incbin "baserom.gba", 0x1A760F, 0x9 - -gUnknown_81A7618:: @ 81A7618 - .incbin "baserom.gba", 0x1A7618, 0x9 - -gUnknown_81A7621:: @ 81A7621 - .incbin "baserom.gba", 0x1A7621, 0x9 - -gUnknown_81A762A:: @ 81A762A - .incbin "baserom.gba", 0x1A762A, 0x9 - -gUnknown_81A7633:: @ 81A7633 - .incbin "baserom.gba", 0x1A7633, 0x9 - -gUnknown_81A763C:: @ 81A763C - .incbin "baserom.gba", 0x1A763C, 0x9 - -gUnknown_81A7645:: @ 81A7645 - .incbin "baserom.gba", 0x1A7645, 0x9 - -gUnknown_81A764E:: @ 81A764E - .incbin "baserom.gba", 0x1A764E, 0x9 - -gUnknown_81A7657:: @ 81A7657 - .incbin "baserom.gba", 0x1A7657, 0x9 - -gUnknown_81A7660:: @ 81A7660 - .incbin "baserom.gba", 0x1A7660, 0x9 - -gUnknown_81A7669:: @ 81A7669 - .incbin "baserom.gba", 0x1A7669, 0x9 - -gUnknown_81A7672:: @ 81A7672 - .incbin "baserom.gba", 0x1A7672, 0x9 - -gUnknown_81A767B:: @ 81A767B - .incbin "baserom.gba", 0x1A767B, 0x9 - -gUnknown_81A7684:: @ 81A7684 - .incbin "baserom.gba", 0x1A7684, 0x9 - -gUnknown_81A768D:: @ 81A768D - .incbin "baserom.gba", 0x1A768D, 0x9 - -gUnknown_81A7696:: @ 81A7696 - .incbin "baserom.gba", 0x1A7696, 0x9 - -gUnknown_81A769F:: @ 81A769F - .incbin "baserom.gba", 0x1A769F, 0x9 - -gUnknown_81A76A8:: @ 81A76A8 - .incbin "baserom.gba", 0x1A76A8, 0x9 - -gUnknown_81A76B1:: @ 81A76B1 - .incbin "baserom.gba", 0x1A76B1, 0x9 - -gUnknown_81A76BA:: @ 81A76BA - .incbin "baserom.gba", 0x1A76BA, 0x9 - -gUnknown_81A76C3:: @ 81A76C3 - .incbin "baserom.gba", 0x1A76C3, 0x9 - -gUnknown_81A76CC:: @ 81A76CC - .incbin "baserom.gba", 0x1A76CC, 0x9 - -gUnknown_81A76D5:: @ 81A76D5 - .incbin "baserom.gba", 0x1A76D5, 0x9 - -gUnknown_81A76DE:: @ 81A76DE - .incbin "baserom.gba", 0x1A76DE, 0x9 - -gUnknown_81A76E7:: @ 81A76E7 - .incbin "baserom.gba", 0x1A76E7, 0x9 - -gUnknown_81A76F0:: @ 81A76F0 - .incbin "baserom.gba", 0x1A76F0, 0x9 - -gUnknown_81A76F9:: @ 81A76F9 - .incbin "baserom.gba", 0x1A76F9, 0x9 - -gUnknown_81A7702:: @ 81A7702 - .incbin "baserom.gba", 0x1A7702, 0x9E - -gUnknown_81A77A0:: @ 81A77A0 - .incbin "baserom.gba", 0x1A77A0, 0x33B - -gUnknown_81A7ADB:: @ 81A7ADB - .incbin "baserom.gba", 0x1A7ADB, 0x5 - -gUnknown_81A7AE0:: @ 81A7AE0 - .incbin "baserom.gba", 0x1A7AE0, 0x120D - -gUnknown_81A8CED:: @ 81A8CED - .incbin "baserom.gba", 0x1A8CED, 0x5C - -gUnknown_81A8D49:: @ 81A8D49 - .incbin "baserom.gba", 0x1A8D49, 0x4E - -gUnknown_81A8D97:: @ 81A8D97 - .incbin "baserom.gba", 0x1A8D97, 0x41 - -gUnknown_81A8DD8:: @ 81A8DD8 - .incbin "baserom.gba", 0x1A8DD8, 0x25 - -gUnknown_81A8DFD:: @ 81A8DFD - .incbin "baserom.gba", 0x1A8DFD, 0x5B - -gStdScript_81A8E58:: - .incbin "baserom.gba", 0x1A8E58, 0x42AE - - .include "data/text/fame_checker.inc" - -gUnknown_81B2E6F:: @ 81B2E6F - .incbin "baserom.gba", 0x1B2E6F, 0x15A - -gUnknown_81B2FC9:: @ 81B2FC9 - .incbin "baserom.gba", 0x1B2FC9, 0x88DE - -gUnknown_81BB8A7:: @ 81BB8A7 - .incbin "baserom.gba", 0x1BB8A7, 0x1C - -gUnknown_81BB8C3:: @ 81BB8C3 - .incbin "baserom.gba", 0x1BB8C3, 0xC - -gUnknown_81BB8CF:: @ 81BB8CF - .incbin "baserom.gba", 0x1BB8CF, 0xC - -gUnknown_81BB8DB:: @ 81BB8DB - .incbin "baserom.gba", 0x1BB8DB, 0x1D - -gUnknown_81BB8F8:: @ 81BB8F8 - .incbin "baserom.gba", 0x1BB8F8, 0x1D - -gUnknown_81BB915:: @ 81BB915 - .incbin "baserom.gba", 0x1BB915, 0x1D - -gUnknown_81BB932:: @ 81BB932 - .incbin "baserom.gba", 0x1BB932, 0x1E - -gUnknown_81BB950:: @ 81BB950 - .incbin "baserom.gba", 0x1BB950, 0xC - -gUnknown_81BB95C:: @ 81BB95C - .incbin "baserom.gba", 0x1BB95C, 0x24 - -gUnknown_81BB980:: @ 81BB980 - .incbin "baserom.gba", 0x1BB980, 0x1 - -gUnknown_81BB981:: @ 81BB981 - .incbin "baserom.gba", 0x1BB981, 0x11 - -gUnknown_81BB992:: @ 81BB992 - .incbin "baserom.gba", 0x1BB992, 0x11 - -gUnknown_81BB9A3:: @ 81BB9A3 - .incbin "baserom.gba", 0x1BB9A3, 0x31 - -gUnknown_81BB9D4:: @ 81BB9D4 - .incbin "baserom.gba", 0x1BB9D4, 0x1C - -gUnknown_81BB9F0:: @ 81BB9F0 - .incbin "baserom.gba", 0x1BB9F0, 0xC - -gUnknown_81BB9FC:: @ 81BB9FC - .incbin "baserom.gba", 0x1BB9FC, 0x5DC - -gUnknown_81BBFD8:: @ 81BBFD8 - .incbin "baserom.gba", 0x1BBFD8, 0x4D4 - -gUnknown_81BC4AC:: @ 81BC4AC - .incbin "baserom.gba", 0x1BC4AC, 0x22 - -gUnknown_81BC4CE:: @ 81BC4CE - .incbin "baserom.gba", 0x1BC4CE, 0x3F - -gUnknown_81BC50D:: @ 81BC50D - .incbin "baserom.gba", 0x1BC50D, 0x3F - -gUnknown_81BC54C:: @ 81BC54C - .incbin "baserom.gba", 0x1BC54C, 0x1A1F - -gUnknown_81BDF6B:: @ 81BDF6B - .incbin "baserom.gba", 0x1BDF6B, 0xF9 - -gUnknown_81BE064:: @ 81BE064 - .incbin "baserom.gba", 0x1BE064, 0x10A - -gUnknown_81BE16E:: @ 81BE16E - .incbin "baserom.gba", 0x1BE16E, 0x149 - -gUnknown_81BE2B7:: @ 81BE2B7 - .incbin "baserom.gba", 0x1BE2B7, 0x48 - -gUnknown_81BE2FF:: @ 81BE2FF - .incbin "baserom.gba", 0x1BE2FF, 0x265 - -gUnknown_81BE564:: @ 81BE564 - .incbin "baserom.gba", 0x1BE564, 0xFE2 - -gUnknown_81BF546:: @ 81BF546 - .incbin "baserom.gba", 0x1BF546, 0x619 - -gUnknown_81BFB5F:: @ 81BFB5F - .incbin "baserom.gba", 0x1BFB5F, 0x6 - -gUnknown_81BFB65:: @ 81BFB65 - .incbin "baserom.gba", 0x1BFB65, 0x22 - -gUnknown_81BFB87:: @ 81BFB87 - .incbin "baserom.gba", 0x1BFB87, 0x23 - -gUnknown_81BFBAA:: @ 81BFBAA - .incbin "baserom.gba", 0x1BFBAA, 0x1B - -gUnknown_81BFBC5:: @ 81BFBC5 - .incbin "baserom.gba", 0x1BFBC5, 0x12 - -gUnknown_81BFBD7:: @ 81BFBD7 - .incbin "baserom.gba", 0x1BFBD7, 0x178A - -gUnknown_81C1361:: @ 81C1361 - .incbin "baserom.gba", 0x1C1361, 0x1B - -gUnknown_81C137C:: @ 81C137C - .incbin "baserom.gba", 0x1C137C, 0x5A - -gUnknown_81C13D6:: @ 81C13D6 - .incbin "baserom.gba", 0x1C13D6, 0x53 - -gUnknown_81C1429:: @ 81C1429 - .incbin "baserom.gba", 0x1C1429, 0x4073 - -gUnknown_81C549C:: @ 81C549C - .incbin "baserom.gba", 0x1C549C, 0xBF - -gUnknown_81C555B:: @ 81C555B - .incbin "baserom.gba", 0x1C555B, 0x6E - -gUnknown_81C55C9:: @ 81C55C9 - .incbin "baserom.gba", 0x1C55C9, 0x21 - -gUnknown_81C55EA:: @ 81C55EA - .incbin "baserom.gba", 0x1C55EA, 0x3B - -gUnknown_81C5625:: @ 81C5625 - .incbin "baserom.gba", 0x1C5625, 0x22 - -gUnknown_81C5647:: @ 81C5647 - .incbin "baserom.gba", 0x1C5647, 0x23 - -gUnknown_81C566A:: @ 81C566A - .incbin "baserom.gba", 0x1C566A, 0xE5 - -gUnknown_81C574F:: @ 81C574F - .incbin "baserom.gba", 0x1C574F, 0xDE - -gUnknown_81C582D:: @ 81C582D - .incbin "baserom.gba", 0x1C582D, 0x1A8 - -gUnknown_81C59D5:: @ 81C59D5 - .incbin "baserom.gba", 0x1C59D5, 0x2A3 - -gUnknown_81C5C78:: @ 81C5C78 - .incbin "baserom.gba", 0x1C5C78, 0x8E - -gUnknown_81C5D06:: @ 81C5D06 - .incbin "baserom.gba", 0x1C5D06, 0xC - -gUnknown_81C5D12:: @ 81C5D12 - .incbin "baserom.gba", 0x1C5D12, 0x39 - -gUnknown_81C5D4B:: @ 81C5D4B - .incbin "baserom.gba", 0x1C5D4B, 0x72 - -gUnknown_81C5DBD:: @ 81C5DBD - .incbin "baserom.gba", 0x1C5DBD, 0x2D - -gUnknown_81C5DEA:: @ 81C5DEA - .incbin "baserom.gba", 0x1C5DEA, 0x29 - -gUnknown_81C5E13:: @ 81C5E13 - .incbin "baserom.gba", 0x1C5E13, 0x1B - -gUnknown_81C5E2E:: @ 81C5E2E - .incbin "baserom.gba", 0x1C5E2E, 0x63 - -gUnknown_81C5E91:: @ 81C5E91 - .incbin "baserom.gba", 0x1C5E91, 0x24 - -gUnknown_81C5EB5:: @ 81C5EB5 - .incbin "baserom.gba", 0x1C5EB5, 0x10 - -gUnknown_81C5EC5:: @ 81C5EC5 - .incbin "baserom.gba", 0x1C5EC5, 0x2F - -gUnknown_81C5EF4:: @ 81C5EF4 - .incbin "baserom.gba", 0x1C5EF4, 0x75 - -@ pokedude data - .incbin "baserom.gba", 0x1C5F69, 0x983 + .4byte gStdScript_0 + .4byte gStdScript_1 + .4byte gStdScript_2 + .4byte gStdScript_3 + .4byte gStdScript_4 + .4byte gStdScript_5 + .4byte gStdScript_Message_WaitButton_AndRelease + .4byte gStdScript_7 + .4byte gStdScript_8 + .4byte gStdScript_ItemMessageAndFanfare +gStdScriptsEnd:: + + .include "data/map_event_scripts.inc" diff --git a/data/field_door.s b/data/field_door.s new file mode 100644 index 000000000..a29cf3e24 --- /dev/null +++ b/data/field_door.s @@ -0,0 +1,17 @@ + .section .rodata + + .align 2 +gUnknown_835B488:: @ 835B488 + .incbin "baserom.gba", 0x35B488, 0x14 + +gUnknown_835B49C:: @ 835B49C + .incbin "baserom.gba", 0x35B49C, 0x14 + +gUnknown_835B4B0:: @ 835B4B0 + .incbin "baserom.gba", 0x35B4B0, 0x14 + +gUnknown_835B4C4:: @ 835B4C4 + .incbin "baserom.gba", 0x35B4C4, 0x114 + +gUnknown_835B5D8:: @ 835B5D8 + .incbin "baserom.gba", 0x35B5D8, 0x18C diff --git a/data/field_ground_effect.s b/data/field_ground_effect.s new file mode 100644 index 000000000..7979c7522 --- /dev/null +++ b/data/field_ground_effect.s @@ -0,0 +1,34 @@ + .section .rodata + .align 2 +gUnknown_83A7024:: @ 83A7024 + .incbin "baserom.gba", 0x3A7024, 0x8 + +gUnknown_83A702C:: @ 83A702C + .incbin "baserom.gba", 0x3A702C, 0x18 + +gUnknown_83A7044:: @ 83A7044 + .incbin "baserom.gba", 0x3A7044, 0x18 + +gUnknown_83A705C:: @ 83A705C + .incbin "baserom.gba", 0x3A705C, 0x10 + +gUnknown_83A706C:: @ 83A706C + .incbin "baserom.gba", 0x3A706C, 0x10 + +gUnknown_83A707C:: @ 83A707C + .incbin "baserom.gba", 0x3A707C, 0x10 + +gUnknown_83A708C:: @ 83A708C + .incbin "baserom.gba", 0x3A708C, 0x10 + +gUnknown_83A709C:: @ 83A709C + .incbin "baserom.gba", 0x3A709C, 0xC + +gUnknown_83A70A8:: @ 83A70A8 + .incbin "baserom.gba", 0x3A70A8, 0x4 + +gUnknown_83A70AC:: @ 83A70AC + .incbin "baserom.gba", 0x3A70AC, 0x10 + +gUnknown_83A70BC:: @ 83A70BC + .incbin "baserom.gba", 0x3A70BC, 0xE0 diff --git a/data/field_map_obj.s b/data/field_map_obj.s new file mode 100644 index 000000000..d12de7aa9 --- /dev/null +++ b/data/field_map_obj.s @@ -0,0 +1,508 @@ + .section .rodata + .align 2 +gUnknown_835B934:: @ 835B934 + .incbin "baserom.gba", 0x35B934, 0x10 + +gUnknown_835B944:: @ 835B944 + .incbin "baserom.gba", 0x35B944, 0x18 + +gUnknown_835B95C:: @ 835B95C + .incbin "baserom.gba", 0x35B95C, 0x3DA2C + +gUnknown_8399388:: @ 8399388 + .incbin "baserom.gba", 0x399388, 0x908 + +gUnknown_8399C90:: @ 8399C90 + .incbin "baserom.gba", 0x399C90, 0x5F38 + +gUnknown_839FBC8:: @ 839FBC8 + .incbin "baserom.gba", 0x39FBC8, 0x144 + +gUnknown_839FD0C:: @ 839FD0C + .incbin "baserom.gba", 0x39FD0C, 0x51 + +gUnknown_839FD5D:: @ 839FD5D + .incbin "baserom.gba", 0x39FD5D, 0x53 + +gUnknown_839FDB0:: @ 839FDB0 + .incbin "baserom.gba", 0x39FDB0, 0x260 + +gUnknown_83A0010:: @ 83A0010 + .incbin "baserom.gba", 0x3A0010, 0x3688 + +gUnknown_83A3698:: @ 83A3698 + .incbin "baserom.gba", 0x3A3698, 0x1AC0 + +gUnknown_83A5158:: @ 83A5158 + .incbin "baserom.gba", 0x3A5158, 0xB0 + +gUnknown_83A5208:: @ 83A5208 + .incbin "baserom.gba", 0x3A5208, 0x70 + +gUnknown_83A5278:: @ 83A5278 + .incbin "baserom.gba", 0x3A5278, 0xB8 + +gUnknown_83A5330:: @ 83A5330 + .incbin "baserom.gba", 0x3A5330, 0x18 + +gUnknown_83A5348:: @ 83A5348 + .incbin "baserom.gba", 0x3A5348, 0xCB8 + +gUnknown_83A6000:: @ 83A6000 + .incbin "baserom.gba", 0x3A6000, 0x10 + +gUnknown_83A6010:: @ 83A6010 + .incbin "baserom.gba", 0x3A6010, 0x8 + +gUnknown_83A6018:: @ 83A6018 + .incbin "baserom.gba", 0x3A6018, 0x1C + +gUnknown_83A6034:: @ 83A6034 + .incbin "baserom.gba", 0x3A6034, 0x1C + +gUnknown_83A6050:: @ 83A6050 + .incbin "baserom.gba", 0x3A6050, 0x4 + +gUnknown_83A6054:: @ 83A6054 + .incbin "baserom.gba", 0x3A6054, 0x2C + +gUnknown_83A6080:: @ 83A6080 + .incbin "baserom.gba", 0x3A6080, 0x14 + +gUnknown_83A6094:: @ 83A6094 + .incbin "baserom.gba", 0x3A6094, 0x1C + +gUnknown_83A60B0:: @ 83A60B0 + .incbin "baserom.gba", 0x3A60B0, 0x4 + +gUnknown_83A60B4:: @ 83A60B4 + .incbin "baserom.gba", 0x3A60B4, 0x1C + +gUnknown_83A60D0:: @ 83A60D0 + .incbin "baserom.gba", 0x3A60D0, 0x4 + +gUnknown_83A60D4:: @ 83A60D4 + .incbin "baserom.gba", 0x3A60D4, 0xC + +gUnknown_83A60E0:: @ 83A60E0 + .incbin "baserom.gba", 0x3A60E0, 0x14 + +gUnknown_83A60F4:: @ 83A60F4 + .incbin "baserom.gba", 0x3A60F4, 0x14 + +gUnknown_83A6108:: @ 83A6108 + .incbin "baserom.gba", 0x3A6108, 0x14 + +gUnknown_83A611C:: @ 83A611C + .incbin "baserom.gba", 0x3A611C, 0x4 + +gUnknown_83A6120:: @ 83A6120 + .incbin "baserom.gba", 0x3A6120, 0x14 + +gUnknown_83A6134:: @ 83A6134 + .incbin "baserom.gba", 0x3A6134, 0x4 + +gUnknown_83A6138:: @ 83A6138 + .incbin "baserom.gba", 0x3A6138, 0x14 + +gUnknown_83A614C:: @ 83A614C + .incbin "baserom.gba", 0x3A614C, 0x4 + +gUnknown_83A6150:: @ 83A6150 + .incbin "baserom.gba", 0x3A6150, 0x14 + +gUnknown_83A6164:: @ 83A6164 + .incbin "baserom.gba", 0x3A6164, 0x4 + +gUnknown_83A6168:: @ 83A6168 + .incbin "baserom.gba", 0x3A6168, 0x14 + +gUnknown_83A617C:: @ 83A617C + .incbin "baserom.gba", 0x3A617C, 0x4 + +gUnknown_83A6180:: @ 83A6180 + .incbin "baserom.gba", 0x3A6180, 0x14 + +gUnknown_83A6194:: @ 83A6194 + .incbin "baserom.gba", 0x3A6194, 0x4 + +gUnknown_83A6198:: @ 83A6198 + .incbin "baserom.gba", 0x3A6198, 0x14 + +gUnknown_83A61AC:: @ 83A61AC + .incbin "baserom.gba", 0x3A61AC, 0x4 + +gUnknown_83A61B0:: @ 83A61B0 + .incbin "baserom.gba", 0x3A61B0, 0x14 + +gUnknown_83A61C4:: @ 83A61C4 + .incbin "baserom.gba", 0x3A61C4, 0x4 + +gUnknown_83A61C8:: @ 83A61C8 + .incbin "baserom.gba", 0x3A61C8, 0x10 + +gUnknown_83A61D8:: @ 83A61D8 + .incbin "baserom.gba", 0x3A61D8, 0x8 + +gUnknown_83A61E0:: @ 83A61E0 + .incbin "baserom.gba", 0x3A61E0, 0x10 + +gUnknown_83A61F0:: @ 83A61F0 + .incbin "baserom.gba", 0x3A61F0, 0x8 + +gUnknown_83A61F8:: @ 83A61F8 + .incbin "baserom.gba", 0x3A61F8, 0x10 + +gUnknown_83A6208:: @ 83A6208 + .incbin "baserom.gba", 0x3A6208, 0xC + +gUnknown_83A6214:: @ 83A6214 + .incbin "baserom.gba", 0x3A6214, 0x4 + +gUnknown_83A6218:: @ 83A6218 + .incbin "baserom.gba", 0x3A6218, 0xC + +gUnknown_83A6224:: @ 83A6224 + .incbin "baserom.gba", 0x3A6224, 0x4 + +gUnknown_83A6228:: @ 83A6228 + .incbin "baserom.gba", 0x3A6228, 0xC + +gUnknown_83A6234:: @ 83A6234 + .incbin "baserom.gba", 0x3A6234, 0x4 + +gUnknown_83A6238:: @ 83A6238 + .incbin "baserom.gba", 0x3A6238, 0xC + +gUnknown_83A6244:: @ 83A6244 + .incbin "baserom.gba", 0x3A6244, 0x4 + +gUnknown_83A6248:: @ 83A6248 + .incbin "baserom.gba", 0x3A6248, 0xC + +gUnknown_83A6254:: @ 83A6254 + .incbin "baserom.gba", 0x3A6254, 0x4 + +gUnknown_83A6258:: @ 83A6258 + .incbin "baserom.gba", 0x3A6258, 0xC + +gUnknown_83A6264:: @ 83A6264 + .incbin "baserom.gba", 0x3A6264, 0x4 + +gUnknown_83A6268:: @ 83A6268 + .incbin "baserom.gba", 0x3A6268, 0xC + +gUnknown_83A6274:: @ 83A6274 + .incbin "baserom.gba", 0x3A6274, 0xC + +gUnknown_83A6280:: @ 83A6280 + .incbin "baserom.gba", 0x3A6280, 0x4 + +gUnknown_83A6284:: @ 83A6284 + .incbin "baserom.gba", 0x3A6284, 0xC + +gUnknown_83A6290:: @ 83A6290 + .incbin "baserom.gba", 0x3A6290, 0x4 + +gUnknown_83A6294:: @ 83A6294 + .incbin "baserom.gba", 0x3A6294, 0xC + +gUnknown_83A62A0:: @ 83A62A0 + .incbin "baserom.gba", 0x3A62A0, 0x4 + +gUnknown_83A62A4:: @ 83A62A4 + .incbin "baserom.gba", 0x3A62A4, 0xC + +gUnknown_83A62B0:: @ 83A62B0 + .incbin "baserom.gba", 0x3A62B0, 0x4 + +gUnknown_83A62B4:: @ 83A62B4 + .incbin "baserom.gba", 0x3A62B4, 0xC + +gUnknown_83A62C0:: @ 83A62C0 + .incbin "baserom.gba", 0x3A62C0, 0x4 + +gUnknown_83A62C4:: @ 83A62C4 + .incbin "baserom.gba", 0x3A62C4, 0xC + +gUnknown_83A62D0:: @ 83A62D0 + .incbin "baserom.gba", 0x3A62D0, 0x4 + +gUnknown_83A62D4:: @ 83A62D4 + .incbin "baserom.gba", 0x3A62D4, 0xC + +gUnknown_83A62E0:: @ 83A62E0 + .incbin "baserom.gba", 0x3A62E0, 0x4 + +gUnknown_83A62E4:: @ 83A62E4 + .incbin "baserom.gba", 0x3A62E4, 0xC + +gUnknown_83A62F0:: @ 83A62F0 + .incbin "baserom.gba", 0x3A62F0, 0x4 + +gUnknown_83A62F4:: @ 83A62F4 + .incbin "baserom.gba", 0x3A62F4, 0xC + +gUnknown_83A6300:: @ 83A6300 + .incbin "baserom.gba", 0x3A6300, 0x4 + +gUnknown_83A6304:: @ 83A6304 + .incbin "baserom.gba", 0x3A6304, 0xC + +gUnknown_83A6310:: @ 83A6310 + .incbin "baserom.gba", 0x3A6310, 0x4 + +gUnknown_83A6314:: @ 83A6314 + .incbin "baserom.gba", 0x3A6314, 0xC + +gUnknown_83A6320:: @ 83A6320 + .incbin "baserom.gba", 0x3A6320, 0x4 + +gUnknown_83A6324:: @ 83A6324 + .incbin "baserom.gba", 0x3A6324, 0xC + +gUnknown_83A6330:: @ 83A6330 + .incbin "baserom.gba", 0x3A6330, 0x4 + +gUnknown_83A6334:: @ 83A6334 + .incbin "baserom.gba", 0x3A6334, 0xC + +gUnknown_83A6340:: @ 83A6340 + .incbin "baserom.gba", 0x3A6340, 0x4 + +gUnknown_83A6344:: @ 83A6344 + .incbin "baserom.gba", 0x3A6344, 0xC + +gUnknown_83A6350:: @ 83A6350 + .incbin "baserom.gba", 0x3A6350, 0x4 + +gUnknown_83A6354:: @ 83A6354 + .incbin "baserom.gba", 0x3A6354, 0xC + +gUnknown_83A6360:: @ 83A6360 + .incbin "baserom.gba", 0x3A6360, 0x4 + +gUnknown_83A6364:: @ 83A6364 + .incbin "baserom.gba", 0x3A6364, 0xC + +gUnknown_83A6370:: @ 83A6370 + .incbin "baserom.gba", 0x3A6370, 0x4 + +gUnknown_83A6374:: @ 83A6374 + .incbin "baserom.gba", 0x3A6374, 0xC + +gUnknown_83A6380:: @ 83A6380 + .incbin "baserom.gba", 0x3A6380, 0x4 + +gUnknown_83A6384:: @ 83A6384 + .incbin "baserom.gba", 0x3A6384, 0xC + +gUnknown_83A6390:: @ 83A6390 + .incbin "baserom.gba", 0x3A6390, 0x2C + +gUnknown_83A63BC:: @ 83A63BC + .incbin "baserom.gba", 0x3A63BC, 0xC + +gUnknown_83A63C8:: @ 83A63C8 + .incbin "baserom.gba", 0x3A63C8, 0x4 + +gUnknown_83A63CC:: @ 83A63CC + .incbin "baserom.gba", 0x3A63CC, 0x8 + +gUnknown_83A63D4:: @ 83A63D4 + .incbin "baserom.gba", 0x3A63D4, 0x8 + +gUnknown_83A63DC:: @ 83A63DC + .incbin "baserom.gba", 0x3A63DC, 0x8 + +gUnknown_83A63E4:: @ 83A63E4 + .incbin "baserom.gba", 0x3A63E4, 0xC + +gUnknown_83A63F0:: @ 83A63F0 + .incbin "baserom.gba", 0x3A63F0, 0xC + +gUnknown_83A63FC:: @ 83A63FC + .incbin "baserom.gba", 0x3A63FC, 0x8 + +gUnknown_83A6404:: @ 83A6404 + .incbin "baserom.gba", 0x3A6404, 0x8 + +gUnknown_83A640C:: @ 83A640C + .incbin "baserom.gba", 0x3A640C, 0x9 + +gUnknown_83A6415:: @ 83A6415 + .incbin "baserom.gba", 0x3A6415, 0x9 + +gUnknown_83A641E:: @ 83A641E + .incbin "baserom.gba", 0x3A641E, 0x9 + +gUnknown_83A6427:: @ 83A6427 + .incbin "baserom.gba", 0x3A6427, 0x9 + +gUnknown_83A6430:: @ 83A6430 + .incbin "baserom.gba", 0x3A6430, 0x9 + +gUnknown_83A6439:: @ 83A6439 + .incbin "baserom.gba", 0x3A6439, 0x9 + +gUnknown_83A6442:: @ 83A6442 + .incbin "baserom.gba", 0x3A6442, 0x9 + +gUnknown_83A644B:: @ 83A644B + .incbin "baserom.gba", 0x3A644B, 0x9 + +gUnknown_83A6454:: @ 83A6454 + .incbin "baserom.gba", 0x3A6454, 0x9 + +gUnknown_83A645D:: @ 83A645D + .incbin "baserom.gba", 0x3A645D, 0x9 + +gUnknown_83A6466:: @ 83A6466 + .incbin "baserom.gba", 0x3A6466, 0x9 + +gUnknown_83A646F:: @ 83A646F + .incbin "baserom.gba", 0x3A646F, 0x9 + +gUnknown_83A6478:: @ 83A6478 + .incbin "baserom.gba", 0x3A6478, 0x9 + +gUnknown_83A6481:: @ 83A6481 + .incbin "baserom.gba", 0x3A6481, 0x9 + +gUnknown_83A648A:: @ 83A648A + .incbin "baserom.gba", 0x3A648A, 0x9 + +gUnknown_83A6493:: @ 83A6493 + .incbin "baserom.gba", 0x3A6493, 0x9 + +gUnknown_83A649C:: @ 83A649C + .incbin "baserom.gba", 0x3A649C, 0xC + +gUnknown_83A64A8:: @ 83A64A8 + .incbin "baserom.gba", 0x3A64A8, 0x10 + +gUnknown_83A64B8:: @ 83A64B8 + .incbin "baserom.gba", 0x3A64B8, 0x10 + +gUnknown_83A64C8:: @ 83A64C8 + .incbin "baserom.gba", 0x3A64C8, 0x24 + +gUnknown_83A64EC:: @ 83A64EC + .incbin "baserom.gba", 0x3A64EC, 0x5 + +gUnknown_83A64F1:: @ 83A64F1 + .incbin "baserom.gba", 0x3A64F1, 0x5 + +gUnknown_83A64F6:: @ 83A64F6 + .incbin "baserom.gba", 0x3A64F6, 0x5 + +gUnknown_83A64FB:: @ 83A64FB + .incbin "baserom.gba", 0x3A64FB, 0x5 + +gUnknown_83A6500:: @ 83A6500 + .incbin "baserom.gba", 0x3A6500, 0x5 + +gUnknown_83A6505:: @ 83A6505 + .incbin "baserom.gba", 0x3A6505, 0x5 + +gUnknown_83A650A:: @ 83A650A + .incbin "baserom.gba", 0x3A650A, 0x5 + +gUnknown_83A650F:: @ 83A650F + .incbin "baserom.gba", 0x3A650F, 0x5 + +gUnknown_83A6514:: @ 83A6514 + .incbin "baserom.gba", 0x3A6514, 0x5 + +gUnknown_83A6519:: @ 83A6519 + .incbin "baserom.gba", 0x3A6519, 0x5 + +gUnknown_83A651E:: @ 83A651E + .incbin "baserom.gba", 0x3A651E, 0x5 + +gUnknown_83A6523:: @ 83A6523 + .incbin "baserom.gba", 0x3A6523, 0x5 + +gUnknown_83A6528:: @ 83A6528 + .incbin "baserom.gba", 0x3A6528, 0x5 + +gUnknown_83A652D:: @ 83A652D + .incbin "baserom.gba", 0x3A652D, 0x5 + +gUnknown_83A6532:: @ 83A6532 + .incbin "baserom.gba", 0x3A6532, 0x5 + +gUnknown_83A6537:: @ 83A6537 + .incbin "baserom.gba", 0x3A6537, 0x5 + +gUnknown_83A653C:: @ 83A653C + .incbin "baserom.gba", 0x3A653C, 0x5 + +gUnknown_83A6541:: @ 83A6541 + .incbin "baserom.gba", 0x3A6541, 0x5 + +gUnknown_83A6546:: @ 83A6546 + .incbin "baserom.gba", 0x3A6546, 0x5 + +gUnknown_83A654B:: @ 83A654B + .incbin "baserom.gba", 0x3A654B, 0x5 + +gUnknown_83A6550:: @ 83A6550 + .incbin "baserom.gba", 0x3A6550, 0x5 + +gUnknown_83A6555:: @ 83A6555 + .incbin "baserom.gba", 0x3A6555, 0x5 + +gUnknown_83A655A:: @ 83A655A + .incbin "baserom.gba", 0x3A655A, 0x5 + +gUnknown_83A655F:: @ 83A655F + .incbin "baserom.gba", 0x3A655F, 0x5 + +gUnknown_83A6564:: @ 83A6564 + .incbin "baserom.gba", 0x3A6564, 0x5 + +gUnknown_83A6569:: @ 83A6569 + .incbin "baserom.gba", 0x3A6569, 0x5 + +gUnknown_83A656E:: @ 83A656E + .incbin "baserom.gba", 0x3A656E, 0x5 + +gUnknown_83A6573:: @ 83A6573 + .incbin "baserom.gba", 0x3A6573, 0x5 + +gUnknown_83A6578:: @ 83A6578 + .incbin "baserom.gba", 0x3A6578, 0x5 + +gUnknown_83A657D:: @ 83A657D + .incbin "baserom.gba", 0x3A657D, 0x5 + +gUnknown_83A6582:: @ 83A6582 + .incbin "baserom.gba", 0x3A6582, 0x5 + +gUnknown_83A6587:: @ 83A6587 + .incbin "baserom.gba", 0x3A6587, 0x5 + +gUnknown_83A658C:: @ 83A658C + .incbin "baserom.gba", 0x3A658C, 0x5 + +gUnknown_83A6591:: @ 83A6591 + .incbin "baserom.gba", 0x3A6591, 0x8 + +gUnknown_83A6599:: @ 83A6599 + .incbin "baserom.gba", 0x3A6599, 0x10 + +gUnknown_83A65A9:: @ 83A65A9 + .incbin "baserom.gba", 0x3A65A9, 0x13 + +gUnknown_83A65BC:: @ 83A65BC + .incbin "baserom.gba", 0x3A65BC, 0x2C8 + +gUnknown_83A6884:: @ 83A6884 + .incbin "baserom.gba", 0x3A6884, 0xD4 + +gUnknown_83A6958:: @ 83A6958 + .incbin "baserom.gba", 0x3A6958, 0x6 + +gUnknown_83A695E:: @ 83A695E + .incbin "baserom.gba", 0x3A695E, 0x6C6 diff --git a/data/field_player_avatar.s b/data/field_player_avatar.s new file mode 100644 index 000000000..c11bc74b3 --- /dev/null +++ b/data/field_player_avatar.s @@ -0,0 +1,73 @@ + .section .rodata + .align 2 +gUnknown_835B764:: @ 835B764 + .incbin "baserom.gba", 0x35B764, 0xB0 + +gUnknown_835B814:: @ 835B814 + .incbin "baserom.gba", 0x35B814, 0xC + +gUnknown_835B820:: @ 835B820 + .incbin "baserom.gba", 0x35B820, 0x8 + +gUnknown_835B828:: @ 835B828 + .incbin "baserom.gba", 0x35B828, 0x14 + +gUnknown_835B83C:: @ 835B83C + .incbin "baserom.gba", 0x35B83C, 0x8 + +gUnknown_835B844:: @ 835B844 + .incbin "baserom.gba", 0x35B844, 0x20 + +gUnknown_835B864:: @ 835B864 + .incbin "baserom.gba", 0x35B864, 0x10 + +gUnknown_835B874:: @ 835B874 + .incbin "baserom.gba", 0x35B874, 0xC + +gUnknown_835B880:: @ 835B880 + .incbin "baserom.gba", 0x35B880, 0x2 + +gUnknown_835B882:: @ 835B882 + .incbin "baserom.gba", 0x35B882, 0xC + +gUnknown_835B88E:: @ 835B88E + .incbin "baserom.gba", 0x35B88E, 0x2 + +gUnknown_835B890:: @ 835B890 + .incbin "baserom.gba", 0x35B890, 0x10 + +gUnknown_835B8A0:: @ 835B8A0 + .incbin "baserom.gba", 0x35B8A0, 0xC + +gUnknown_835B8AC:: @ 835B8AC + .incbin "baserom.gba", 0x35B8AC, 0x4 + +gUnknown_835B8B0:: @ 835B8B0 + .incbin "baserom.gba", 0x35B8B0, 0x10 + +gUnknown_835B8C0:: @ 835B8C0 + .incbin "baserom.gba", 0x35B8C0, 0x4 + +gUnknown_835B8C4:: @ 835B8C4 + .incbin "baserom.gba", 0x35B8C4, 0x8 + +gUnknown_835B8CC:: @ 835B8CC + .incbin "baserom.gba", 0x35B8CC, 0x40 + +gUnknown_835B90C:: @ 835B90C + .incbin "baserom.gba", 0x35B90C, 0x6 + +gUnknown_835B912:: @ 835B912 + .incbin "baserom.gba", 0x35B912, 0x6 + +gUnknown_835B918:: @ 835B918 + .incbin "baserom.gba", 0x35B918, 0x2 + +gUnknown_835B91A:: @ 835B91A + .incbin "baserom.gba", 0x35B91A, 0x6 + +gUnknown_835B920:: @ 835B920 + .incbin "baserom.gba", 0x35B920, 0xC + +gUnknown_835B92C:: @ 835B92C + .incbin "baserom.gba", 0x35B92C, 0x8 diff --git a/data/field_tasks.s b/data/field_tasks.s new file mode 100644 index 000000000..a91e6cec9 --- /dev/null +++ b/data/field_tasks.s @@ -0,0 +1,7 @@ + .section .rodata + .align 2 +gUnknown_83A7310:: @ 83A7310 + .incbin "baserom.gba", 0x3A7310, 0x20 + +gUnknown_83A7330:: @ 83A7330 + .incbin "baserom.gba", 0x3A7330, 0x14 diff --git a/data/field_weather.s b/data/field_weather.s new file mode 100644 index 000000000..a25e44344 --- /dev/null +++ b/data/field_weather.s @@ -0,0 +1,101 @@ + .section .rodata + .align 2 + +gUnknown_83C2BBC:: @ 83C2BBC + .incbin "baserom.gba", 0x3C2BBC, 0x4 + +gUnknown_83C2BC0:: @ 83C2BC0 + .incbin "baserom.gba", 0x3C2BC0, 0xF0 + +gUnknown_83C2CB0:: @ 83C2CB0 + .incbin "baserom.gba", 0x3C2CB0, 0x10 + +gUnknown_83C2CC0:: @ 83C2CC0 + .incbin "baserom.gba", 0x3C2CC0, 0x20 + +gUnknown_83C2CE0:: @ 83C2CE0 + .incbin "baserom.gba", 0x3C2CE0, 0x20 + +gUnknown_83C2D00:: @ 83C2D00 + .incbin "baserom.gba", 0x3C2D00, 0x20 + +gUnknown_83C2D20:: @ 83C2D20 + .incbin "baserom.gba", 0x3C2D20, 0x820 + +gUnknown_83C3540:: @ 83C3540 + .incbin "baserom.gba", 0x3C3540, 0x3080 + +gUnknown_83C65C0:: @ 83C65C0 + .incbin "baserom.gba", 0x3C65C0, 0x4 + +gUnknown_83C65C4:: @ 83C65C4 + .incbin "baserom.gba", 0x3C65C4, 0x4 + +gUnknown_83C65C8:: @ 83C65C8 + .incbin "baserom.gba", 0x3C65C8, 0xC + +gUnknown_83C65D4:: @ 83C65D4 + .incbin "baserom.gba", 0x3C65D4, 0x1C + +gUnknown_83C65F0:: @ 83C65F0 + .incbin "baserom.gba", 0x3C65F0, 0x18 + +gUnknown_83C6608:: @ 83C6608 + .incbin "baserom.gba", 0x3C6608, 0x9C + +gUnknown_83C66A4:: @ 83C66A4 + .incbin "baserom.gba", 0x3C66A4, 0x18 + +gUnknown_83C66BC:: @ 83C66BC + .incbin "baserom.gba", 0x3C66BC, 0x8 + +gUnknown_83C66C4:: @ 83C66C4 + .incbin "baserom.gba", 0x3C66C4, 0x8 + +gUnknown_83C66CC:: @ 83C66CC + .incbin "baserom.gba", 0x3C66CC, 0x38 + +gUnknown_83C6704:: @ 83C6704 + .incbin "baserom.gba", 0x3C6704, 0x8C + +gUnknown_83C6790:: @ 83C6790 + .incbin "baserom.gba", 0x3C6790, 0x18 + +gUnknown_83C67A8:: @ 83C67A8 + .incbin "baserom.gba", 0x3C67A8, 0x8 + +gUnknown_83C67B0:: @ 83C67B0 + .incbin "baserom.gba", 0x3C67B0, 0x20 + +gUnknown_83C67D0:: @ 83C67D0 + .incbin "baserom.gba", 0x3C67D0, 0x18 + +gUnknown_83C67E8:: @ 83C67E8 + .incbin "baserom.gba", 0x3C67E8, 0x1C + +gUnknown_83C6804:: @ 83C6804 + .incbin "baserom.gba", 0x3C6804, 0x38 + +gUnknown_83C683C:: @ 83C683C + .incbin "baserom.gba", 0x3C683C, 0x18 + +gUnknown_83C6854:: @ 83C6854 + .incbin "baserom.gba", 0x3C6854, 0x8 + +gUnknown_83C685C:: @ 83C685C + .incbin "baserom.gba", 0x3C685C, 0xC + +gUnknown_83C6868:: @ 83C6868 + .incbin "baserom.gba", 0x3C6868, 0x8 + +gUnknown_83C6870:: @ 83C6870 + .incbin "baserom.gba", 0x3C6870, 0x8 + +gUnknown_83C6878:: @ 83C6878 + .incbin "baserom.gba", 0x3C6878, 0x44 + +gUnknown_83C68BC:: @ 83C68BC + .incbin "baserom.gba", 0x3C68BC, 0x18 + +gUnknown_83C68D4:: @ 83C68D4 + .incbin "baserom.gba", 0x3C68D4, 0xC diff --git a/data/graphics.s b/data/graphics.s index a1e421f2c..35d5873fa 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1,9 +1,9 @@ .section gfx_data, "aw", %progbits -gUnknown_8D00000:: @ 8D00000 +gBattleTextboxTiles:: @ 8D00000 .incbin "baserom.gba", 0xD00000, 0x4D8 -gUnknown_8D004D8:: @ 8D004D8 +gBattleTextboxPalette:: @ 8D004D8 .incbin "baserom.gba", 0xD004D8, 0x44 .align 2 @@ -19,11 +19,11 @@ gUnknown_8D0098C:: @ 8D0098C .align 2 gFile_graphics_pokemon_palettes_circled_question_mark_palette:: @ 8D00BD0 - .incbin "graphics/pokemon/palettes/circled_question_mark_palette.gbapal.lz" + .incbin "graphics/pokemon/question_mark/circled/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_palettes_circled_question_mark_shiny_palette:: @ 8D00BE8 - .incbin "graphics/pokemon/palettes/circled_question_mark_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/question_mark/circled/shiny.gbapal.lz" .align 2 gFile_graphics_unused_old_charmap_sheet:: @ 8D00C00 @@ -2590,9625 +2590,9625 @@ gUnknown_8D2FBB4:: @ 8D2FBB4 .align 2 gFile_graphics_pokemon_front_pics_bulbasaur_still_front_pic:: @ 8D2FBD4 - .incbin "graphics/pokemon/front_pics/bulbasaur_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/bulbasaur/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bulbasaur_palette:: @ 8D2FE78 - .incbin "graphics/pokemon/palettes/bulbasaur_palette.gbapal.lz" + .incbin "graphics/pokemon/bulbasaur/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_bulbasaur_back_pic:: @ 8D2FEA0 - .incbin "graphics/pokemon/back_pics/bulbasaur_back_pic.4bpp.lz" + .incbin "graphics/pokemon/bulbasaur/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bulbasaur_shiny_palette:: @ 8D30164 - .incbin "graphics/pokemon/palettes/bulbasaur_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/bulbasaur/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_bulbasaur_icon:: @ 8D3018C - .incbin "graphics/pokemon/icons/bulbasaur_icon.4bpp" + .incbin "graphics/pokemon/bulbasaur/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_bulbasaur_footprint:: @ 8D3058C - .incbin "graphics/pokemon/footprints/bulbasaur_footprint.1bpp" + .incbin "graphics/pokemon/bulbasaur/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ivysaur_still_front_pic:: @ 8D305AC - .incbin "graphics/pokemon/front_pics/ivysaur_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ivysaur/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ivysaur_palette:: @ 8D308E8 - .incbin "graphics/pokemon/palettes/ivysaur_palette.gbapal.lz" + .incbin "graphics/pokemon/ivysaur/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ivysaur_back_pic:: @ 8D30910 - .incbin "graphics/pokemon/back_pics/ivysaur_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ivysaur/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ivysaur_shiny_palette:: @ 8D30C64 - .incbin "graphics/pokemon/palettes/ivysaur_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ivysaur/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ivysaur_icon:: @ 8D30C8C - .incbin "graphics/pokemon/icons/ivysaur_icon.4bpp" + .incbin "graphics/pokemon/ivysaur/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ivysaur_footprint:: @ 8D3108C - .incbin "graphics/pokemon/footprints/ivysaur_footprint.1bpp" + .incbin "graphics/pokemon/ivysaur/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_venusaur_still_front_pic:: @ 8D310AC - .incbin "graphics/pokemon/front_pics/venusaur_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/venusaur/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_venusaur_palette:: @ 8D315EC - .incbin "graphics/pokemon/palettes/venusaur_palette.gbapal.lz" + .incbin "graphics/pokemon/venusaur/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_venusaur_back_pic:: @ 8D31614 - .incbin "graphics/pokemon/back_pics/venusaur_back_pic.4bpp.lz" + .incbin "graphics/pokemon/venusaur/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_venusaur_shiny_palette:: @ 8D31ADC - .incbin "graphics/pokemon/palettes/venusaur_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/venusaur/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_venusaur_icon:: @ 8D31B04 - .incbin "graphics/pokemon/icons/venusaur_icon.4bpp" + .incbin "graphics/pokemon/venusaur/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_venusaur_footprint:: @ 8D31F04 - .incbin "graphics/pokemon/footprints/venusaur_footprint.1bpp" + .incbin "graphics/pokemon/venusaur/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_charmander_still_front_pic:: @ 8D31F24 - .incbin "graphics/pokemon/front_pics/charmander_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/charmander/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_charmander_palette:: @ 8D321C4 - .incbin "graphics/pokemon/palettes/charmander_palette.gbapal.lz" + .incbin "graphics/pokemon/charmander/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_charmander_back_pic:: @ 8D321EC - .incbin "graphics/pokemon/back_pics/charmander_back_pic.4bpp.lz" + .incbin "graphics/pokemon/charmander/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_charmander_shiny_palette:: @ 8D32470 - .incbin "graphics/pokemon/palettes/charmander_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/charmander/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_charmander_icon:: @ 8D32498 - .incbin "graphics/pokemon/icons/charmander_icon.4bpp" + .incbin "graphics/pokemon/charmander/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_charmander_footprint:: @ 8D32898 - .incbin "graphics/pokemon/footprints/charmander_footprint.1bpp" + .incbin "graphics/pokemon/charmander/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_charmeleon_still_front_pic:: @ 8D328B8 - .incbin "graphics/pokemon/front_pics/charmeleon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/charmeleon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_charmeleon_palette:: @ 8D32C64 - .incbin "graphics/pokemon/palettes/charmeleon_palette.gbapal.lz" + .incbin "graphics/pokemon/charmeleon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_charmeleon_back_pic:: @ 8D32C8C - .incbin "graphics/pokemon/back_pics/charmeleon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/charmeleon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_charmeleon_shiny_palette:: @ 8D32F80 - .incbin "graphics/pokemon/palettes/charmeleon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/charmeleon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_charmeleon_icon:: @ 8D32FA8 - .incbin "graphics/pokemon/icons/charmeleon_icon.4bpp" + .incbin "graphics/pokemon/charmeleon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_charmeleon_footprint:: @ 8D333A8 - .incbin "graphics/pokemon/footprints/charmeleon_footprint.1bpp" + .incbin "graphics/pokemon/charmeleon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_charizard_still_front_pic:: @ 8D333C8 - .incbin "graphics/pokemon/front_pics/charizard_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/charizard/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_charizard_palette:: @ 8D338C4 - .incbin "graphics/pokemon/palettes/charizard_palette.gbapal.lz" + .incbin "graphics/pokemon/charizard/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_charizard_back_pic:: @ 8D338EC - .incbin "graphics/pokemon/back_pics/charizard_back_pic.4bpp.lz" + .incbin "graphics/pokemon/charizard/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_charizard_shiny_palette:: @ 8D33CF8 - .incbin "graphics/pokemon/palettes/charizard_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/charizard/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_charizard_icon:: @ 8D33D20 - .incbin "graphics/pokemon/icons/charizard_icon.4bpp" + .incbin "graphics/pokemon/charizard/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_charizard_footprint:: @ 8D34120 - .incbin "graphics/pokemon/footprints/charizard_footprint.1bpp" + .incbin "graphics/pokemon/charizard/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_squirtle_still_front_pic:: @ 8D34140 - .incbin "graphics/pokemon/front_pics/squirtle_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/squirtle/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_squirtle_palette:: @ 8D343DC - .incbin "graphics/pokemon/palettes/squirtle_palette.gbapal.lz" + .incbin "graphics/pokemon/squirtle/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_squirtle_back_pic:: @ 8D34404 - .incbin "graphics/pokemon/back_pics/squirtle_back_pic.4bpp.lz" + .incbin "graphics/pokemon/squirtle/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_squirtle_shiny_palette:: @ 8D3468C - .incbin "graphics/pokemon/palettes/squirtle_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/squirtle/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_squirtle_icon:: @ 8D346B4 - .incbin "graphics/pokemon/icons/squirtle_icon.4bpp" + .incbin "graphics/pokemon/squirtle/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_squirtle_footprint:: @ 8D34AB4 - .incbin "graphics/pokemon/footprints/squirtle_footprint.1bpp" + .incbin "graphics/pokemon/squirtle/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_wartortle_still_front_pic:: @ 8D34AD4 - .incbin "graphics/pokemon/front_pics/wartortle_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/wartortle/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wartortle_palette:: @ 8D34E80 - .incbin "graphics/pokemon/palettes/wartortle_palette.gbapal.lz" + .incbin "graphics/pokemon/wartortle/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_wartortle_back_pic:: @ 8D34EA8 - .incbin "graphics/pokemon/back_pics/wartortle_back_pic.4bpp.lz" + .incbin "graphics/pokemon/wartortle/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wartortle_shiny_palette:: @ 8D351F0 - .incbin "graphics/pokemon/palettes/wartortle_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/wartortle/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_wartortle_icon:: @ 8D35218 - .incbin "graphics/pokemon/icons/wartortle_icon.4bpp" + .incbin "graphics/pokemon/wartortle/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_wartortle_footprint:: @ 8D35618 - .incbin "graphics/pokemon/footprints/wartortle_footprint.1bpp" + .incbin "graphics/pokemon/wartortle/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_blastoise_still_front_pic:: @ 8D35638 - .incbin "graphics/pokemon/front_pics/blastoise_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/blastoise/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_blastoise_palette:: @ 8D35B3C - .incbin "graphics/pokemon/palettes/blastoise_palette.gbapal.lz" + .incbin "graphics/pokemon/blastoise/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_blastoise_back_pic:: @ 8D35B64 - .incbin "graphics/pokemon/back_pics/blastoise_back_pic.4bpp.lz" + .incbin "graphics/pokemon/blastoise/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_blastoise_shiny_palette:: @ 8D35F78 - .incbin "graphics/pokemon/palettes/blastoise_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/blastoise/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_blastoise_icon:: @ 8D35FA0 - .incbin "graphics/pokemon/icons/blastoise_icon.4bpp" + .incbin "graphics/pokemon/blastoise/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_blastoise_footprint:: @ 8D363A0 - .incbin "graphics/pokemon/footprints/blastoise_footprint.1bpp" + .incbin "graphics/pokemon/blastoise/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_caterpie_still_front_pic:: @ 8D363C0 - .incbin "graphics/pokemon/front_pics/caterpie_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/caterpie/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_caterpie_palette:: @ 8D36618 - .incbin "graphics/pokemon/palettes/caterpie_palette.gbapal.lz" + .incbin "graphics/pokemon/caterpie/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_caterpie_back_pic:: @ 8D36640 - .incbin "graphics/pokemon/back_pics/caterpie_back_pic.4bpp.lz" + .incbin "graphics/pokemon/caterpie/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_caterpie_shiny_palette:: @ 8D368C8 - .incbin "graphics/pokemon/palettes/caterpie_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/caterpie/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_caterpie_icon:: @ 8D368F0 - .incbin "graphics/pokemon/icons/caterpie_icon.4bpp" + .incbin "graphics/pokemon/caterpie/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_caterpie_footprint:: @ 8D36CF0 - .incbin "graphics/pokemon/footprints/caterpie_footprint.1bpp" + .incbin "graphics/pokemon/caterpie/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_metapod_still_front_pic:: @ 8D36D10 - .incbin "graphics/pokemon/front_pics/metapod_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/metapod/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_metapod_palette:: @ 8D36F2C - .incbin "graphics/pokemon/palettes/metapod_palette.gbapal.lz" + .incbin "graphics/pokemon/metapod/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_metapod_back_pic:: @ 8D36F4C - .incbin "graphics/pokemon/back_pics/metapod_back_pic.4bpp.lz" + .incbin "graphics/pokemon/metapod/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_metapod_shiny_palette:: @ 8D37168 - .incbin "graphics/pokemon/palettes/metapod_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/metapod/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_metapod_icon:: @ 8D37188 - .incbin "graphics/pokemon/icons/metapod_icon.4bpp" + .incbin "graphics/pokemon/metapod/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_metapod_footprint:: @ 8D37588 - .incbin "graphics/pokemon/footprints/metapod_footprint.1bpp" + .incbin "graphics/pokemon/metapod/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_butterfree_still_front_pic:: @ 8D375A8 - .incbin "graphics/pokemon/front_pics/butterfree_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/butterfree/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_butterfree_palette:: @ 8D37920 - .incbin "graphics/pokemon/palettes/butterfree_palette.gbapal.lz" + .incbin "graphics/pokemon/butterfree/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_butterfree_back_pic:: @ 8D37948 - .incbin "graphics/pokemon/back_pics/butterfree_back_pic.4bpp.lz" + .incbin "graphics/pokemon/butterfree/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_butterfree_shiny_palette:: @ 8D37D4C - .incbin "graphics/pokemon/palettes/butterfree_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/butterfree/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_butterfree_icon:: @ 8D37D74 - .incbin "graphics/pokemon/icons/butterfree_icon.4bpp" + .incbin "graphics/pokemon/butterfree/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_butterfree_footprint:: @ 8D38174 - .incbin "graphics/pokemon/footprints/butterfree_footprint.1bpp" + .incbin "graphics/pokemon/butterfree/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_weedle_still_front_pic:: @ 8D38194 - .incbin "graphics/pokemon/front_pics/weedle_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/weedle/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_weedle_palette:: @ 8D383D0 - .incbin "graphics/pokemon/palettes/weedle_palette.gbapal.lz" + .incbin "graphics/pokemon/weedle/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_weedle_back_pic:: @ 8D383F8 - .incbin "graphics/pokemon/back_pics/weedle_back_pic.4bpp.lz" + .incbin "graphics/pokemon/weedle/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_weedle_shiny_palette:: @ 8D38660 - .incbin "graphics/pokemon/palettes/weedle_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/weedle/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_weedle_icon:: @ 8D38688 - .incbin "graphics/pokemon/icons/weedle_icon.4bpp" + .incbin "graphics/pokemon/weedle/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_weedle_footprint:: @ 8D38A88 - .incbin "graphics/pokemon/footprints/weedle_footprint.1bpp" + .incbin "graphics/pokemon/weedle/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kakuna_still_front_pic:: @ 8D38AA8 - .incbin "graphics/pokemon/front_pics/kakuna_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kakuna/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kakuna_palette:: @ 8D38CE8 - .incbin "graphics/pokemon/palettes/kakuna_palette.gbapal.lz" + .incbin "graphics/pokemon/kakuna/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kakuna_back_pic:: @ 8D38D0C - .incbin "graphics/pokemon/back_pics/kakuna_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kakuna/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kakuna_shiny_palette:: @ 8D38F90 - .incbin "graphics/pokemon/palettes/kakuna_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kakuna/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kakuna_icon:: @ 8D38FB4 - .incbin "graphics/pokemon/icons/kakuna_icon.4bpp" + .incbin "graphics/pokemon/kakuna/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kakuna_footprint:: @ 8D393B4 - .incbin "graphics/pokemon/footprints/kakuna_footprint.1bpp" + .incbin "graphics/pokemon/kakuna/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_beedrill_still_front_pic:: @ 8D393D4 - .incbin "graphics/pokemon/front_pics/beedrill_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/beedrill/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_beedrill_palette:: @ 8D397F4 - .incbin "graphics/pokemon/palettes/beedrill_palette.gbapal.lz" + .incbin "graphics/pokemon/beedrill/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_beedrill_back_pic:: @ 8D3981C - .incbin "graphics/pokemon/back_pics/beedrill_back_pic.4bpp.lz" + .incbin "graphics/pokemon/beedrill/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_beedrill_shiny_palette:: @ 8D39B90 - .incbin "graphics/pokemon/palettes/beedrill_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/beedrill/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_beedrill_icon:: @ 8D39BB8 - .incbin "graphics/pokemon/icons/beedrill_icon.4bpp" + .incbin "graphics/pokemon/beedrill/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_beedrill_footprint:: @ 8D39FB8 - .incbin "graphics/pokemon/footprints/beedrill_footprint.1bpp" + .incbin "graphics/pokemon/beedrill/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_pidgey_still_front_pic:: @ 8D39FD8 - .incbin "graphics/pokemon/front_pics/pidgey_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/pidgey/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pidgey_palette:: @ 8D3A250 - .incbin "graphics/pokemon/palettes/pidgey_palette.gbapal.lz" + .incbin "graphics/pokemon/pidgey/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_pidgey_back_pic:: @ 8D3A278 - .incbin "graphics/pokemon/back_pics/pidgey_back_pic.4bpp.lz" + .incbin "graphics/pokemon/pidgey/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pidgey_shiny_palette:: @ 8D3A5CC - .incbin "graphics/pokemon/palettes/pidgey_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/pidgey/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_pidgey_icon:: @ 8D3A5F4 - .incbin "graphics/pokemon/icons/pidgey_icon.4bpp" + .incbin "graphics/pokemon/pidgey/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_pidgey_footprint:: @ 8D3A9F4 - .incbin "graphics/pokemon/footprints/pidgey_footprint.1bpp" + .incbin "graphics/pokemon/pidgey/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_pidgeotto_still_front_pic:: @ 8D3AA14 - .incbin "graphics/pokemon/front_pics/pidgeotto_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/pidgeotto/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pidgeotto_palette:: @ 8D3ADAC - .incbin "graphics/pokemon/palettes/pidgeotto_palette.gbapal.lz" + .incbin "graphics/pokemon/pidgeotto/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_pidgeotto_back_pic:: @ 8D3ADD4 - .incbin "graphics/pokemon/back_pics/pidgeotto_back_pic.4bpp.lz" + .incbin "graphics/pokemon/pidgeotto/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pidgeotto_shiny_palette:: @ 8D3B120 - .incbin "graphics/pokemon/palettes/pidgeotto_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/pidgeotto/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_pidgeotto_icon:: @ 8D3B148 - .incbin "graphics/pokemon/icons/pidgeotto_icon.4bpp" + .incbin "graphics/pokemon/pidgeotto/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_pidgeotto_footprint:: @ 8D3B548 - .incbin "graphics/pokemon/footprints/pidgeotto_footprint.1bpp" + .incbin "graphics/pokemon/pidgeotto/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_pidgeot_still_front_pic:: @ 8D3B568 - .incbin "graphics/pokemon/front_pics/pidgeot_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/pidgeot/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pidgeot_palette:: @ 8D3BA54 - .incbin "graphics/pokemon/palettes/pidgeot_palette.gbapal.lz" + .incbin "graphics/pokemon/pidgeot/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_pidgeot_back_pic:: @ 8D3BA7C - .incbin "graphics/pokemon/back_pics/pidgeot_back_pic.4bpp.lz" + .incbin "graphics/pokemon/pidgeot/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pidgeot_shiny_palette:: @ 8D3BE64 - .incbin "graphics/pokemon/palettes/pidgeot_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/pidgeot/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_pidgeot_icon:: @ 8D3BE8C - .incbin "graphics/pokemon/icons/pidgeot_icon.4bpp" + .incbin "graphics/pokemon/pidgeot/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_pidgeot_footprint:: @ 8D3C28C - .incbin "graphics/pokemon/footprints/pidgeot_footprint.1bpp" + .incbin "graphics/pokemon/pidgeot/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_rattata_still_front_pic:: @ 8D3C2AC - .incbin "graphics/pokemon/front_pics/rattata_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/rattata/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rattata_palette:: @ 8D3C504 - .incbin "graphics/pokemon/palettes/rattata_palette.gbapal.lz" + .incbin "graphics/pokemon/rattata/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_rattata_back_pic:: @ 8D3C52C - .incbin "graphics/pokemon/back_pics/rattata_back_pic.4bpp.lz" + .incbin "graphics/pokemon/rattata/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rattata_shiny_palette:: @ 8D3C7E4 - .incbin "graphics/pokemon/palettes/rattata_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/rattata/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_rattata_icon:: @ 8D3C80C - .incbin "graphics/pokemon/icons/rattata_icon.4bpp" + .incbin "graphics/pokemon/rattata/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_rattata_footprint:: @ 8D3CC0C - .incbin "graphics/pokemon/footprints/rattata_footprint.1bpp" + .incbin "graphics/pokemon/rattata/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_raticate_still_front_pic:: @ 8D3CC2C - .incbin "graphics/pokemon/front_pics/raticate_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/raticate/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_raticate_palette:: @ 8D3CFBC - .incbin "graphics/pokemon/palettes/raticate_palette.gbapal.lz" + .incbin "graphics/pokemon/raticate/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_raticate_back_pic:: @ 8D3CFE4 - .incbin "graphics/pokemon/back_pics/raticate_back_pic.4bpp.lz" + .incbin "graphics/pokemon/raticate/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_raticate_shiny_palette:: @ 8D3D2F4 - .incbin "graphics/pokemon/palettes/raticate_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/raticate/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_raticate_icon:: @ 8D3D31C - .incbin "graphics/pokemon/icons/raticate_icon.4bpp" + .incbin "graphics/pokemon/raticate/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_raticate_footprint:: @ 8D3D71C - .incbin "graphics/pokemon/footprints/raticate_footprint.1bpp" + .incbin "graphics/pokemon/raticate/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_spearow_still_front_pic:: @ 8D3D73C - .incbin "graphics/pokemon/front_pics/spearow_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/spearow/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spearow_palette:: @ 8D3D9FC - .incbin "graphics/pokemon/palettes/spearow_palette.gbapal.lz" + .incbin "graphics/pokemon/spearow/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_spearow_back_pic:: @ 8D3DA24 - .incbin "graphics/pokemon/back_pics/spearow_back_pic.4bpp.lz" + .incbin "graphics/pokemon/spearow/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spearow_shiny_palette:: @ 8D3DD00 - .incbin "graphics/pokemon/palettes/spearow_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/spearow/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_spearow_icon:: @ 8D3DD28 - .incbin "graphics/pokemon/icons/spearow_icon.4bpp" + .incbin "graphics/pokemon/spearow/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_spearow_footprint:: @ 8D3E128 - .incbin "graphics/pokemon/footprints/spearow_footprint.1bpp" + .incbin "graphics/pokemon/spearow/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_fearow_still_front_pic:: @ 8D3E148 - .incbin "graphics/pokemon/front_pics/fearow_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/fearow/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_fearow_palette:: @ 8D3E604 - .incbin "graphics/pokemon/palettes/fearow_palette.gbapal.lz" + .incbin "graphics/pokemon/fearow/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_fearow_back_pic:: @ 8D3E62C - .incbin "graphics/pokemon/back_pics/fearow_back_pic.4bpp.lz" + .incbin "graphics/pokemon/fearow/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_fearow_shiny_palette:: @ 8D3E924 - .incbin "graphics/pokemon/palettes/fearow_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/fearow/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_fearow_icon:: @ 8D3E94C - .incbin "graphics/pokemon/icons/fearow_icon.4bpp" + .incbin "graphics/pokemon/fearow/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_fearow_footprint:: @ 8D3ED4C - .incbin "graphics/pokemon/footprints/fearow_footprint.1bpp" + .incbin "graphics/pokemon/fearow/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ekans_still_front_pic:: @ 8D3ED6C - .incbin "graphics/pokemon/front_pics/ekans_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ekans/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ekans_palette:: @ 8D3F034 - .incbin "graphics/pokemon/palettes/ekans_palette.gbapal.lz" + .incbin "graphics/pokemon/ekans/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ekans_back_pic:: @ 8D3F05C - .incbin "graphics/pokemon/back_pics/ekans_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ekans/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ekans_shiny_palette:: @ 8D3F34C - .incbin "graphics/pokemon/palettes/ekans_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ekans/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ekans_icon:: @ 8D3F374 - .incbin "graphics/pokemon/icons/ekans_icon.4bpp" + .incbin "graphics/pokemon/ekans/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ekans_footprint:: @ 8D3F774 - .incbin "graphics/pokemon/footprints/ekans_footprint.1bpp" + .incbin "graphics/pokemon/ekans/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_arbok_still_front_pic:: @ 8D3F794 - .incbin "graphics/pokemon/front_pics/arbok_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/arbok/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_arbok_palette:: @ 8D3FC08 - .incbin "graphics/pokemon/palettes/arbok_palette.gbapal.lz" + .incbin "graphics/pokemon/arbok/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_arbok_back_pic:: @ 8D3FC30 - .incbin "graphics/pokemon/back_pics/arbok_back_pic.4bpp.lz" + .incbin "graphics/pokemon/arbok/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_arbok_shiny_palette:: @ 8D3FEB8 - .incbin "graphics/pokemon/palettes/arbok_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/arbok/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_arbok_icon:: @ 8D3FEE0 - .incbin "graphics/pokemon/icons/arbok_icon.4bpp" + .incbin "graphics/pokemon/arbok/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_arbok_footprint:: @ 8D402E0 - .incbin "graphics/pokemon/footprints/arbok_footprint.1bpp" + .incbin "graphics/pokemon/arbok/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_pikachu_still_front_pic:: @ 8D40300 - .incbin "graphics/pokemon/front_pics/pikachu_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/pikachu/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pikachu_palette:: @ 8D405D0 - .incbin "graphics/pokemon/palettes/pikachu_palette.gbapal.lz" + .incbin "graphics/pokemon/pikachu/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_pikachu_back_pic:: @ 8D405F8 - .incbin "graphics/pokemon/back_pics/pikachu_back_pic.4bpp.lz" + .incbin "graphics/pokemon/pikachu/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pikachu_shiny_palette:: @ 8D408D0 - .incbin "graphics/pokemon/palettes/pikachu_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/pikachu/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_pikachu_icon:: @ 8D408F8 - .incbin "graphics/pokemon/icons/pikachu_icon.4bpp" + .incbin "graphics/pokemon/pikachu/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_pikachu_footprint:: @ 8D40CF8 - .incbin "graphics/pokemon/footprints/pikachu_footprint.1bpp" + .incbin "graphics/pokemon/pikachu/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_raichu_still_front_pic:: @ 8D40D18 - .incbin "graphics/pokemon/front_pics/raichu_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/raichu/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_raichu_palette:: @ 8D41110 - .incbin "graphics/pokemon/palettes/raichu_palette.gbapal.lz" + .incbin "graphics/pokemon/raichu/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_raichu_back_pic:: @ 8D41138 - .incbin "graphics/pokemon/back_pics/raichu_back_pic.4bpp.lz" + .incbin "graphics/pokemon/raichu/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_raichu_shiny_palette:: @ 8D41458 - .incbin "graphics/pokemon/palettes/raichu_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/raichu/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_raichu_icon:: @ 8D41480 - .incbin "graphics/pokemon/icons/raichu_icon.4bpp" + .incbin "graphics/pokemon/raichu/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_raichu_footprint:: @ 8D41880 - .incbin "graphics/pokemon/footprints/raichu_footprint.1bpp" + .incbin "graphics/pokemon/raichu/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sandshrew_still_front_pic:: @ 8D418A0 - .incbin "graphics/pokemon/front_pics/sandshrew_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sandshrew/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sandshrew_palette:: @ 8D41B7C - .incbin "graphics/pokemon/palettes/sandshrew_palette.gbapal.lz" + .incbin "graphics/pokemon/sandshrew/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sandshrew_back_pic:: @ 8D41BA4 - .incbin "graphics/pokemon/back_pics/sandshrew_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sandshrew/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sandshrew_shiny_palette:: @ 8D41ECC - .incbin "graphics/pokemon/palettes/sandshrew_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sandshrew/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sandshrew_icon:: @ 8D41EF4 - .incbin "graphics/pokemon/icons/sandshrew_icon.4bpp" + .incbin "graphics/pokemon/sandshrew/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sandshrew_footprint:: @ 8D422F4 - .incbin "graphics/pokemon/footprints/sandshrew_footprint.1bpp" + .incbin "graphics/pokemon/sandshrew/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sandslash_still_front_pic:: @ 8D42314 - .incbin "graphics/pokemon/front_pics/sandslash_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sandslash/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sandslash_palette:: @ 8D4272C - .incbin "graphics/pokemon/palettes/sandslash_palette.gbapal.lz" + .incbin "graphics/pokemon/sandslash/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sandslash_back_pic:: @ 8D42754 - .incbin "graphics/pokemon/back_pics/sandslash_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sandslash/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sandslash_shiny_palette:: @ 8D42B70 - .incbin "graphics/pokemon/palettes/sandslash_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sandslash/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sandslash_icon:: @ 8D42B98 - .incbin "graphics/pokemon/icons/sandslash_icon.4bpp" + .incbin "graphics/pokemon/sandslash/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sandslash_footprint:: @ 8D42F98 - .incbin "graphics/pokemon/footprints/sandslash_footprint.1bpp" + .incbin "graphics/pokemon/sandslash/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_nidoran_f_still_front_pic:: @ 8D42FB8 - .incbin "graphics/pokemon/front_pics/nidoran_f_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/nidoran_f/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidoran_f_palette:: @ 8D4321C - .incbin "graphics/pokemon/palettes/nidoran_f_palette.gbapal.lz" + .incbin "graphics/pokemon/nidoran_f/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_nidoran_f_back_pic:: @ 8D43244 - .incbin "graphics/pokemon/back_pics/nidoran_f_back_pic.4bpp.lz" + .incbin "graphics/pokemon/nidoran_f/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidoran_f_shiny_palette:: @ 8D43524 - .incbin "graphics/pokemon/palettes/nidoran_f_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/nidoran_f/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_nidoran_f_icon:: @ 8D4354C - .incbin "graphics/pokemon/icons/nidoran_f_icon.4bpp" + .incbin "graphics/pokemon/nidoran_f/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_nidoran_f_footprint:: @ 8D4394C - .incbin "graphics/pokemon/footprints/nidoran_f_footprint.1bpp" + .incbin "graphics/pokemon/nidoran_f/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_nidorina_still_front_pic:: @ 8D4396C - .incbin "graphics/pokemon/front_pics/nidorina_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/nidorina/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidorina_palette:: @ 8D43C8C - .incbin "graphics/pokemon/palettes/nidorina_palette.gbapal.lz" + .incbin "graphics/pokemon/nidorina/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_nidorina_back_pic:: @ 8D43CB4 - .incbin "graphics/pokemon/back_pics/nidorina_back_pic.4bpp.lz" + .incbin "graphics/pokemon/nidorina/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidorina_shiny_palette:: @ 8D44048 - .incbin "graphics/pokemon/palettes/nidorina_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/nidorina/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_nidorina_icon:: @ 8D44070 - .incbin "graphics/pokemon/icons/nidorina_icon.4bpp" + .incbin "graphics/pokemon/nidorina/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_nidorina_footprint:: @ 8D44470 - .incbin "graphics/pokemon/footprints/nidorina_footprint.1bpp" + .incbin "graphics/pokemon/nidorina/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_nidoqueen_still_front_pic:: @ 8D44490 - .incbin "graphics/pokemon/front_pics/nidoqueen_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/nidoqueen/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidoqueen_palette:: @ 8D448BC - .incbin "graphics/pokemon/palettes/nidoqueen_palette.gbapal.lz" + .incbin "graphics/pokemon/nidoqueen/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_nidoqueen_back_pic:: @ 8D448E4 - .incbin "graphics/pokemon/back_pics/nidoqueen_back_pic.4bpp.lz" + .incbin "graphics/pokemon/nidoqueen/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidoqueen_shiny_palette:: @ 8D44CA8 - .incbin "graphics/pokemon/palettes/nidoqueen_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/nidoqueen/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_nidoqueen_icon:: @ 8D44CD0 - .incbin "graphics/pokemon/icons/nidoqueen_icon.4bpp" + .incbin "graphics/pokemon/nidoqueen/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_nidoqueen_footprint:: @ 8D450D0 - .incbin "graphics/pokemon/footprints/nidoqueen_footprint.1bpp" + .incbin "graphics/pokemon/nidoqueen/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_nidoran_m_still_front_pic:: @ 8D450F0 - .incbin "graphics/pokemon/front_pics/nidoran_m_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/nidoran_m/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidoran_m_palette:: @ 8D4537C - .incbin "graphics/pokemon/palettes/nidoran_m_palette.gbapal.lz" + .incbin "graphics/pokemon/nidoran_m/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_nidoran_m_back_pic:: @ 8D453A4 - .incbin "graphics/pokemon/back_pics/nidoran_m_back_pic.4bpp.lz" + .incbin "graphics/pokemon/nidoran_m/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidoran_m_shiny_palette:: @ 8D456D8 - .incbin "graphics/pokemon/palettes/nidoran_m_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/nidoran_m/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_nidoran_m_icon:: @ 8D45700 - .incbin "graphics/pokemon/icons/nidoran_m_icon.4bpp" + .incbin "graphics/pokemon/nidoran_m/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_nidoran_m_footprint:: @ 8D45B00 - .incbin "graphics/pokemon/footprints/nidoran_m_footprint.1bpp" + .incbin "graphics/pokemon/nidoran_m/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_nidorino_still_front_pic:: @ 8D45B20 - .incbin "graphics/pokemon/front_pics/nidorino_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/nidorino/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidorino_palette:: @ 8D45EA4 - .incbin "graphics/pokemon/palettes/nidorino_palette.gbapal.lz" + .incbin "graphics/pokemon/nidorino/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_nidorino_back_pic:: @ 8D45ECC - .incbin "graphics/pokemon/back_pics/nidorino_back_pic.4bpp.lz" + .incbin "graphics/pokemon/nidorino/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidorino_shiny_palette:: @ 8D46288 - .incbin "graphics/pokemon/palettes/nidorino_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/nidorino/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_nidorino_icon:: @ 8D462B0 - .incbin "graphics/pokemon/icons/nidorino_icon.4bpp" + .incbin "graphics/pokemon/nidorino/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_nidorino_footprint:: @ 8D466B0 - .incbin "graphics/pokemon/footprints/nidorino_footprint.1bpp" + .incbin "graphics/pokemon/nidorino/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_nidoking_still_front_pic:: @ 8D466D0 - .incbin "graphics/pokemon/front_pics/nidoking_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/nidoking/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidoking_palette:: @ 8D46C0C - .incbin "graphics/pokemon/palettes/nidoking_palette.gbapal.lz" + .incbin "graphics/pokemon/nidoking/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_nidoking_back_pic:: @ 8D46C34 - .incbin "graphics/pokemon/back_pics/nidoking_back_pic.4bpp.lz" + .incbin "graphics/pokemon/nidoking/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nidoking_shiny_palette:: @ 8D47070 - .incbin "graphics/pokemon/palettes/nidoking_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/nidoking/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_nidoking_icon:: @ 8D47098 - .incbin "graphics/pokemon/icons/nidoking_icon.4bpp" + .incbin "graphics/pokemon/nidoking/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_nidoking_footprint:: @ 8D47498 - .incbin "graphics/pokemon/footprints/nidoking_footprint.1bpp" + .incbin "graphics/pokemon/nidoking/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_clefairy_still_front_pic:: @ 8D474B8 - .incbin "graphics/pokemon/front_pics/clefairy_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/clefairy/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_clefairy_palette:: @ 8D47754 - .incbin "graphics/pokemon/palettes/clefairy_palette.gbapal.lz" + .incbin "graphics/pokemon/clefairy/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_clefairy_back_pic:: @ 8D4777C - .incbin "graphics/pokemon/back_pics/clefairy_back_pic.4bpp.lz" + .incbin "graphics/pokemon/clefairy/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_clefairy_shiny_palette:: @ 8D47A4C - .incbin "graphics/pokemon/palettes/clefairy_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/clefairy/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_clefairy_icon:: @ 8D47A74 - .incbin "graphics/pokemon/icons/clefairy_icon.4bpp" + .incbin "graphics/pokemon/clefairy/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_clefairy_footprint:: @ 8D47E74 - .incbin "graphics/pokemon/footprints/clefairy_footprint.1bpp" + .incbin "graphics/pokemon/clefairy/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_clefable_still_front_pic:: @ 8D47E94 - .incbin "graphics/pokemon/front_pics/clefable_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/clefable/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_clefable_palette:: @ 8D481D4 - .incbin "graphics/pokemon/palettes/clefable_palette.gbapal.lz" + .incbin "graphics/pokemon/clefable/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_clefable_back_pic:: @ 8D481FC - .incbin "graphics/pokemon/back_pics/clefable_back_pic.4bpp.lz" + .incbin "graphics/pokemon/clefable/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_clefable_shiny_palette:: @ 8D48534 - .incbin "graphics/pokemon/palettes/clefable_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/clefable/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_clefable_icon:: @ 8D4855C - .incbin "graphics/pokemon/icons/clefable_icon.4bpp" + .incbin "graphics/pokemon/clefable/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_clefable_footprint:: @ 8D4895C - .incbin "graphics/pokemon/footprints/clefable_footprint.1bpp" + .incbin "graphics/pokemon/clefable/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_vulpix_still_front_pic:: @ 8D4897C - .incbin "graphics/pokemon/front_pics/vulpix_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/vulpix/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vulpix_palette:: @ 8D48CA8 - .incbin "graphics/pokemon/palettes/vulpix_palette.gbapal.lz" + .incbin "graphics/pokemon/vulpix/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_vulpix_back_pic:: @ 8D48CD0 - .incbin "graphics/pokemon/back_pics/vulpix_back_pic.4bpp.lz" + .incbin "graphics/pokemon/vulpix/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vulpix_shiny_palette:: @ 8D48FD4 - .incbin "graphics/pokemon/palettes/vulpix_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/vulpix/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_vulpix_icon:: @ 8D48FFC - .incbin "graphics/pokemon/icons/vulpix_icon.4bpp" + .incbin "graphics/pokemon/vulpix/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_vulpix_footprint:: @ 8D493FC - .incbin "graphics/pokemon/footprints/vulpix_footprint.1bpp" + .incbin "graphics/pokemon/vulpix/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ninetales_still_front_pic:: @ 8D4941C - .incbin "graphics/pokemon/front_pics/ninetales_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ninetales/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ninetales_palette:: @ 8D49870 - .incbin "graphics/pokemon/palettes/ninetales_palette.gbapal.lz" + .incbin "graphics/pokemon/ninetales/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ninetales_back_pic:: @ 8D49894 - .incbin "graphics/pokemon/back_pics/ninetales_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ninetales/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ninetales_shiny_palette:: @ 8D49C84 - .incbin "graphics/pokemon/palettes/ninetales_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ninetales/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ninetales_icon:: @ 8D49CA8 - .incbin "graphics/pokemon/icons/ninetales_icon.4bpp" + .incbin "graphics/pokemon/ninetales/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ninetales_footprint:: @ 8D4A0A8 - .incbin "graphics/pokemon/footprints/ninetales_footprint.1bpp" + .incbin "graphics/pokemon/ninetales/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_jigglypuff_still_front_pic:: @ 8D4A0C8 - .incbin "graphics/pokemon/front_pics/jigglypuff_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/jigglypuff/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jigglypuff_palette:: @ 8D4A34C - .incbin "graphics/pokemon/palettes/jigglypuff_palette.gbapal.lz" + .incbin "graphics/pokemon/jigglypuff/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_jigglypuff_back_pic:: @ 8D4A374 - .incbin "graphics/pokemon/back_pics/jigglypuff_back_pic.4bpp.lz" + .incbin "graphics/pokemon/jigglypuff/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jigglypuff_shiny_palette:: @ 8D4A5D0 - .incbin "graphics/pokemon/palettes/jigglypuff_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/jigglypuff/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_jigglypuff_icon:: @ 8D4A5F8 - .incbin "graphics/pokemon/icons/jigglypuff_icon.4bpp" + .incbin "graphics/pokemon/jigglypuff/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_jigglypuff_footprint:: @ 8D4A9F8 - .incbin "graphics/pokemon/footprints/jigglypuff_footprint.1bpp" + .incbin "graphics/pokemon/jigglypuff/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_wigglytuff_still_front_pic:: @ 8D4AA18 - .incbin "graphics/pokemon/front_pics/wigglytuff_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/wigglytuff/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wigglytuff_palette:: @ 8D4AD8C - .incbin "graphics/pokemon/palettes/wigglytuff_palette.gbapal.lz" + .incbin "graphics/pokemon/wigglytuff/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_wigglytuff_back_pic:: @ 8D4ADB4 - .incbin "graphics/pokemon/back_pics/wigglytuff_back_pic.4bpp.lz" + .incbin "graphics/pokemon/wigglytuff/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wigglytuff_shiny_palette:: @ 8D4B04C - .incbin "graphics/pokemon/palettes/wigglytuff_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/wigglytuff/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_wigglytuff_icon:: @ 8D4B074 - .incbin "graphics/pokemon/icons/wigglytuff_icon.4bpp" + .incbin "graphics/pokemon/wigglytuff/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_wigglytuff_footprint:: @ 8D4B474 - .incbin "graphics/pokemon/footprints/wigglytuff_footprint.1bpp" + .incbin "graphics/pokemon/wigglytuff/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_zubat_still_front_pic:: @ 8D4B494 - .incbin "graphics/pokemon/front_pics/zubat_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/zubat/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_zubat_palette:: @ 8D4B750 - .incbin "graphics/pokemon/palettes/zubat_palette.gbapal.lz" + .incbin "graphics/pokemon/zubat/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_zubat_back_pic:: @ 8D4B778 - .incbin "graphics/pokemon/back_pics/zubat_back_pic.4bpp.lz" + .incbin "graphics/pokemon/zubat/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_zubat_shiny_palette:: @ 8D4BA34 - .incbin "graphics/pokemon/palettes/zubat_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/zubat/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_zubat_icon:: @ 8D4BA5C - .incbin "graphics/pokemon/icons/zubat_icon.4bpp" + .incbin "graphics/pokemon/zubat/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_zubat_footprint:: @ 8D4BE5C - .incbin "graphics/pokemon/footprints/zubat_footprint.1bpp" + .incbin "graphics/pokemon/zubat/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_golbat_still_front_pic:: @ 8D4BE7C - .incbin "graphics/pokemon/front_pics/golbat_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/golbat/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_golbat_palette:: @ 8D4C21C - .incbin "graphics/pokemon/palettes/golbat_palette.gbapal.lz" + .incbin "graphics/pokemon/golbat/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_golbat_back_pic:: @ 8D4C244 - .incbin "graphics/pokemon/back_pics/golbat_back_pic.4bpp.lz" + .incbin "graphics/pokemon/golbat/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_golbat_shiny_palette:: @ 8D4C500 - .incbin "graphics/pokemon/palettes/golbat_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/golbat/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_golbat_icon:: @ 8D4C528 - .incbin "graphics/pokemon/icons/golbat_icon.4bpp" + .incbin "graphics/pokemon/golbat/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_golbat_footprint:: @ 8D4C928 - .incbin "graphics/pokemon/footprints/golbat_footprint.1bpp" + .incbin "graphics/pokemon/golbat/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_oddish_still_front_pic:: @ 8D4C948 - .incbin "graphics/pokemon/front_pics/oddish_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/oddish/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_oddish_palette:: @ 8D4CB88 - .incbin "graphics/pokemon/palettes/oddish_palette.gbapal.lz" + .incbin "graphics/pokemon/oddish/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_oddish_back_pic:: @ 8D4CBB0 - .incbin "graphics/pokemon/back_pics/oddish_back_pic.4bpp.lz" + .incbin "graphics/pokemon/oddish/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_oddish_shiny_palette:: @ 8D4CE74 - .incbin "graphics/pokemon/palettes/oddish_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/oddish/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_oddish_icon:: @ 8D4CE9C - .incbin "graphics/pokemon/icons/oddish_icon.4bpp" + .incbin "graphics/pokemon/oddish/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_oddish_footprint:: @ 8D4D29C - .incbin "graphics/pokemon/footprints/oddish_footprint.1bpp" + .incbin "graphics/pokemon/oddish/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_gloom_still_front_pic:: @ 8D4D2BC - .incbin "graphics/pokemon/front_pics/gloom_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/gloom/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gloom_palette:: @ 8D4D624 - .incbin "graphics/pokemon/palettes/gloom_palette.gbapal.lz" + .incbin "graphics/pokemon/gloom/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_gloom_back_pic:: @ 8D4D64C - .incbin "graphics/pokemon/back_pics/gloom_back_pic.4bpp.lz" + .incbin "graphics/pokemon/gloom/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gloom_shiny_palette:: @ 8D4D9CC - .incbin "graphics/pokemon/palettes/gloom_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/gloom/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_gloom_icon:: @ 8D4D9F4 - .incbin "graphics/pokemon/icons/gloom_icon.4bpp" + .incbin "graphics/pokemon/gloom/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_gloom_footprint:: @ 8D4DDF4 - .incbin "graphics/pokemon/footprints/gloom_footprint.1bpp" + .incbin "graphics/pokemon/gloom/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_vileplume_still_front_pic:: @ 8D4DE14 - .incbin "graphics/pokemon/front_pics/vileplume_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/vileplume/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vileplume_palette:: @ 8D4E168 - .incbin "graphics/pokemon/palettes/vileplume_palette.gbapal.lz" + .incbin "graphics/pokemon/vileplume/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_vileplume_back_pic:: @ 8D4E190 - .incbin "graphics/pokemon/back_pics/vileplume_back_pic.4bpp.lz" + .incbin "graphics/pokemon/vileplume/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vileplume_shiny_palette:: @ 8D4E5DC - .incbin "graphics/pokemon/palettes/vileplume_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/vileplume/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_vileplume_icon:: @ 8D4E604 - .incbin "graphics/pokemon/icons/vileplume_icon.4bpp" + .incbin "graphics/pokemon/vileplume/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_vileplume_footprint:: @ 8D4EA04 - .incbin "graphics/pokemon/footprints/vileplume_footprint.1bpp" + .incbin "graphics/pokemon/vileplume/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_paras_still_front_pic:: @ 8D4EA24 - .incbin "graphics/pokemon/front_pics/paras_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/paras/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_paras_palette:: @ 8D4EC90 - .incbin "graphics/pokemon/palettes/paras_palette.gbapal.lz" + .incbin "graphics/pokemon/paras/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_paras_back_pic:: @ 8D4ECB8 - .incbin "graphics/pokemon/back_pics/paras_back_pic.4bpp.lz" + .incbin "graphics/pokemon/paras/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_paras_shiny_palette:: @ 8D4EF58 - .incbin "graphics/pokemon/palettes/paras_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/paras/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_paras_icon:: @ 8D4EF80 - .incbin "graphics/pokemon/icons/paras_icon.4bpp" + .incbin "graphics/pokemon/paras/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_paras_footprint:: @ 8D4F380 - .incbin "graphics/pokemon/footprints/paras_footprint.1bpp" + .incbin "graphics/pokemon/paras/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_parasect_still_front_pic:: @ 8D4F3A0 - .incbin "graphics/pokemon/front_pics/parasect_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/parasect/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_parasect_palette:: @ 8D4F730 - .incbin "graphics/pokemon/palettes/parasect_palette.gbapal.lz" + .incbin "graphics/pokemon/parasect/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_parasect_back_pic:: @ 8D4F758 - .incbin "graphics/pokemon/back_pics/parasect_back_pic.4bpp.lz" + .incbin "graphics/pokemon/parasect/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_parasect_shiny_palette:: @ 8D4FA54 - .incbin "graphics/pokemon/palettes/parasect_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/parasect/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_parasect_icon:: @ 8D4FA7C - .incbin "graphics/pokemon/icons/parasect_icon.4bpp" + .incbin "graphics/pokemon/parasect/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_parasect_footprint:: @ 8D4FE7C - .incbin "graphics/pokemon/footprints/parasect_footprint.1bpp" + .incbin "graphics/pokemon/parasect/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_venonat_still_front_pic:: @ 8D4FE9C - .incbin "graphics/pokemon/front_pics/venonat_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/venonat/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_venonat_palette:: @ 8D501BC - .incbin "graphics/pokemon/palettes/venonat_palette.gbapal.lz" + .incbin "graphics/pokemon/venonat/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_venonat_back_pic:: @ 8D501E4 - .incbin "graphics/pokemon/back_pics/venonat_back_pic.4bpp.lz" + .incbin "graphics/pokemon/venonat/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_venonat_shiny_palette:: @ 8D50514 - .incbin "graphics/pokemon/palettes/venonat_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/venonat/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_venonat_icon:: @ 8D5053C - .incbin "graphics/pokemon/icons/venonat_icon.4bpp" + .incbin "graphics/pokemon/venonat/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_venonat_footprint:: @ 8D5093C - .incbin "graphics/pokemon/footprints/venonat_footprint.1bpp" + .incbin "graphics/pokemon/venonat/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_venomoth_still_front_pic:: @ 8D5095C - .incbin "graphics/pokemon/front_pics/venomoth_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/venomoth/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_venomoth_palette:: @ 8D50D60 - .incbin "graphics/pokemon/palettes/venomoth_palette.gbapal.lz" + .incbin "graphics/pokemon/venomoth/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_venomoth_back_pic:: @ 8D50D88 - .incbin "graphics/pokemon/back_pics/venomoth_back_pic.4bpp.lz" + .incbin "graphics/pokemon/venomoth/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_venomoth_shiny_palette:: @ 8D5112C - .incbin "graphics/pokemon/palettes/venomoth_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/venomoth/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_venomoth_icon:: @ 8D51154 - .incbin "graphics/pokemon/icons/venomoth_icon.4bpp" + .incbin "graphics/pokemon/venomoth/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_venomoth_footprint:: @ 8D51554 - .incbin "graphics/pokemon/footprints/venomoth_footprint.1bpp" + .incbin "graphics/pokemon/venomoth/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_diglett_still_front_pic:: @ 8D51574 - .incbin "graphics/pokemon/front_pics/diglett_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/diglett/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_diglett_palette:: @ 8D51784 - .incbin "graphics/pokemon/palettes/diglett_palette.gbapal.lz" + .incbin "graphics/pokemon/diglett/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_diglett_back_pic:: @ 8D517AC - .incbin "graphics/pokemon/back_pics/diglett_back_pic.4bpp.lz" + .incbin "graphics/pokemon/diglett/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_diglett_shiny_palette:: @ 8D519B8 - .incbin "graphics/pokemon/palettes/diglett_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/diglett/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_diglett_icon:: @ 8D519E0 - .incbin "graphics/pokemon/icons/diglett_icon.4bpp" + .incbin "graphics/pokemon/diglett/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_diglett_footprint:: @ 8D51DE0 - .incbin "graphics/pokemon/footprints/diglett_footprint.1bpp" + .incbin "graphics/pokemon/diglett/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_dugtrio_still_front_pic:: @ 8D51E00 - .incbin "graphics/pokemon/front_pics/dugtrio_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/dugtrio/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dugtrio_palette:: @ 8D5212C - .incbin "graphics/pokemon/palettes/dugtrio_palette.gbapal.lz" + .incbin "graphics/pokemon/dugtrio/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_dugtrio_back_pic:: @ 8D52154 - .incbin "graphics/pokemon/back_pics/dugtrio_back_pic.4bpp.lz" + .incbin "graphics/pokemon/dugtrio/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dugtrio_shiny_palette:: @ 8D52400 - .incbin "graphics/pokemon/palettes/dugtrio_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/dugtrio/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_dugtrio_icon:: @ 8D52428 - .incbin "graphics/pokemon/icons/dugtrio_icon.4bpp" + .incbin "graphics/pokemon/dugtrio/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_dugtrio_footprint:: @ 8D52828 - .incbin "graphics/pokemon/footprints/dugtrio_footprint.1bpp" + .incbin "graphics/pokemon/dugtrio/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_meowth_still_front_pic:: @ 8D52848 - .incbin "graphics/pokemon/front_pics/meowth_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/meowth/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_meowth_palette:: @ 8D52B34 - .incbin "graphics/pokemon/palettes/meowth_palette.gbapal.lz" + .incbin "graphics/pokemon/meowth/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_meowth_back_pic:: @ 8D52B5C - .incbin "graphics/pokemon/back_pics/meowth_back_pic.4bpp.lz" + .incbin "graphics/pokemon/meowth/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_meowth_shiny_palette:: @ 8D52E40 - .incbin "graphics/pokemon/palettes/meowth_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/meowth/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_meowth_icon:: @ 8D52E68 - .incbin "graphics/pokemon/icons/meowth_icon.4bpp" + .incbin "graphics/pokemon/meowth/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_meowth_footprint:: @ 8D53268 - .incbin "graphics/pokemon/footprints/meowth_footprint.1bpp" + .incbin "graphics/pokemon/meowth/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_persian_still_front_pic:: @ 8D53288 - .incbin "graphics/pokemon/front_pics/persian_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/persian/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_persian_palette:: @ 8D53600 - .incbin "graphics/pokemon/palettes/persian_palette.gbapal.lz" + .incbin "graphics/pokemon/persian/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_persian_back_pic:: @ 8D53628 - .incbin "graphics/pokemon/back_pics/persian_back_pic.4bpp.lz" + .incbin "graphics/pokemon/persian/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_persian_shiny_palette:: @ 8D53968 - .incbin "graphics/pokemon/palettes/persian_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/persian/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_persian_icon:: @ 8D53990 - .incbin "graphics/pokemon/icons/persian_icon.4bpp" + .incbin "graphics/pokemon/persian/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_persian_footprint:: @ 8D53D90 - .incbin "graphics/pokemon/footprints/persian_footprint.1bpp" + .incbin "graphics/pokemon/persian/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_psyduck_still_front_pic:: @ 8D53DB0 - .incbin "graphics/pokemon/front_pics/psyduck_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/psyduck/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_psyduck_palette:: @ 8D54094 - .incbin "graphics/pokemon/palettes/psyduck_palette.gbapal.lz" + .incbin "graphics/pokemon/psyduck/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_psyduck_back_pic:: @ 8D540BC - .incbin "graphics/pokemon/back_pics/psyduck_back_pic.4bpp.lz" + .incbin "graphics/pokemon/psyduck/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_psyduck_shiny_palette:: @ 8D54358 - .incbin "graphics/pokemon/palettes/psyduck_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/psyduck/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_psyduck_icon:: @ 8D54380 - .incbin "graphics/pokemon/icons/psyduck_icon.4bpp" + .incbin "graphics/pokemon/psyduck/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_psyduck_footprint:: @ 8D54780 - .incbin "graphics/pokemon/footprints/psyduck_footprint.1bpp" + .incbin "graphics/pokemon/psyduck/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_golduck_still_front_pic:: @ 8D547A0 - .incbin "graphics/pokemon/front_pics/golduck_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/golduck/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_golduck_palette:: @ 8D54B58 - .incbin "graphics/pokemon/palettes/golduck_palette.gbapal.lz" + .incbin "graphics/pokemon/golduck/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_golduck_back_pic:: @ 8D54B80 - .incbin "graphics/pokemon/back_pics/golduck_back_pic.4bpp.lz" + .incbin "graphics/pokemon/golduck/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_golduck_shiny_palette:: @ 8D54EAC - .incbin "graphics/pokemon/palettes/golduck_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/golduck/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_golduck_icon:: @ 8D54ED4 - .incbin "graphics/pokemon/icons/golduck_icon.4bpp" + .incbin "graphics/pokemon/golduck/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_golduck_footprint:: @ 8D552D4 - .incbin "graphics/pokemon/footprints/golduck_footprint.1bpp" + .incbin "graphics/pokemon/golduck/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_mankey_still_front_pic:: @ 8D552F4 - .incbin "graphics/pokemon/front_pics/mankey_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/mankey/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mankey_palette:: @ 8D555EC - .incbin "graphics/pokemon/palettes/mankey_palette.gbapal.lz" + .incbin "graphics/pokemon/mankey/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_mankey_back_pic:: @ 8D55614 - .incbin "graphics/pokemon/back_pics/mankey_back_pic.4bpp.lz" + .incbin "graphics/pokemon/mankey/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mankey_shiny_palette:: @ 8D5597C - .incbin "graphics/pokemon/palettes/mankey_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/mankey/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_mankey_icon:: @ 8D559A4 - .incbin "graphics/pokemon/icons/mankey_icon.4bpp" + .incbin "graphics/pokemon/mankey/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_mankey_footprint:: @ 8D55DA4 - .incbin "graphics/pokemon/footprints/mankey_footprint.1bpp" + .incbin "graphics/pokemon/mankey/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_primeape_still_front_pic:: @ 8D55DC4 - .incbin "graphics/pokemon/front_pics/primeape_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/primeape/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_primeape_palette:: @ 8D56150 - .incbin "graphics/pokemon/palettes/primeape_palette.gbapal.lz" + .incbin "graphics/pokemon/primeape/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_primeape_back_pic:: @ 8D56178 - .incbin "graphics/pokemon/back_pics/primeape_back_pic.4bpp.lz" + .incbin "graphics/pokemon/primeape/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_primeape_shiny_palette:: @ 8D564E8 - .incbin "graphics/pokemon/palettes/primeape_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/primeape/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_primeape_icon:: @ 8D56510 - .incbin "graphics/pokemon/icons/primeape_icon.4bpp" + .incbin "graphics/pokemon/primeape/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_primeape_footprint:: @ 8D56910 - .incbin "graphics/pokemon/footprints/primeape_footprint.1bpp" + .incbin "graphics/pokemon/primeape/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_growlithe_still_front_pic:: @ 8D56930 - .incbin "graphics/pokemon/front_pics/growlithe_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/growlithe/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_growlithe_palette:: @ 8D56C58 - .incbin "graphics/pokemon/palettes/growlithe_palette.gbapal.lz" + .incbin "graphics/pokemon/growlithe/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_growlithe_back_pic:: @ 8D56C80 - .incbin "graphics/pokemon/back_pics/growlithe_back_pic.4bpp.lz" + .incbin "graphics/pokemon/growlithe/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_growlithe_shiny_palette:: @ 8D56FBC - .incbin "graphics/pokemon/palettes/growlithe_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/growlithe/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_growlithe_icon:: @ 8D56FE4 - .incbin "graphics/pokemon/icons/growlithe_icon.4bpp" + .incbin "graphics/pokemon/growlithe/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_growlithe_footprint:: @ 8D573E4 - .incbin "graphics/pokemon/footprints/growlithe_footprint.1bpp" + .incbin "graphics/pokemon/growlithe/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_arcanine_still_front_pic:: @ 8D57404 - .incbin "graphics/pokemon/front_pics/arcanine_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/arcanine/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_arcanine_palette:: @ 8D57900 - .incbin "graphics/pokemon/palettes/arcanine_palette.gbapal.lz" + .incbin "graphics/pokemon/arcanine/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_arcanine_back_pic:: @ 8D57928 - .incbin "graphics/pokemon/back_pics/arcanine_back_pic.4bpp.lz" + .incbin "graphics/pokemon/arcanine/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_arcanine_shiny_palette:: @ 8D57D08 - .incbin "graphics/pokemon/palettes/arcanine_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/arcanine/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_arcanine_icon:: @ 8D57D30 - .incbin "graphics/pokemon/icons/arcanine_icon.4bpp" + .incbin "graphics/pokemon/arcanine/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_arcanine_footprint:: @ 8D58130 - .incbin "graphics/pokemon/footprints/arcanine_footprint.1bpp" + .incbin "graphics/pokemon/arcanine/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_poliwag_still_front_pic:: @ 8D58150 - .incbin "graphics/pokemon/front_pics/poliwag_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/poliwag/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_poliwag_palette:: @ 8D583EC - .incbin "graphics/pokemon/palettes/poliwag_palette.gbapal.lz" + .incbin "graphics/pokemon/poliwag/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_poliwag_back_pic:: @ 8D58414 - .incbin "graphics/pokemon/back_pics/poliwag_back_pic.4bpp.lz" + .incbin "graphics/pokemon/poliwag/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_poliwag_shiny_palette:: @ 8D58678 - .incbin "graphics/pokemon/palettes/poliwag_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/poliwag/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_poliwag_icon:: @ 8D586A0 - .incbin "graphics/pokemon/icons/poliwag_icon.4bpp" + .incbin "graphics/pokemon/poliwag/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_poliwag_footprint:: @ 8D58AA0 - .incbin "graphics/pokemon/footprints/poliwag_footprint.1bpp" + .incbin "graphics/pokemon/poliwag/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_poliwhirl_still_front_pic:: @ 8D58AC0 - .incbin "graphics/pokemon/front_pics/poliwhirl_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/poliwhirl/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_poliwhirl_palette:: @ 8D58E40 - .incbin "graphics/pokemon/palettes/poliwhirl_palette.gbapal.lz" + .incbin "graphics/pokemon/poliwhirl/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_poliwhirl_back_pic:: @ 8D58E68 - .incbin "graphics/pokemon/back_pics/poliwhirl_back_pic.4bpp.lz" + .incbin "graphics/pokemon/poliwhirl/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_poliwhirl_shiny_palette:: @ 8D590E4 - .incbin "graphics/pokemon/palettes/poliwhirl_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/poliwhirl/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_poliwhirl_icon:: @ 8D5910C - .incbin "graphics/pokemon/icons/poliwhirl_icon.4bpp" + .incbin "graphics/pokemon/poliwhirl/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_poliwhirl_footprint:: @ 8D5950C - .incbin "graphics/pokemon/footprints/poliwhirl_footprint.1bpp" + .incbin "graphics/pokemon/poliwhirl/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_poliwrath_still_front_pic:: @ 8D5952C - .incbin "graphics/pokemon/front_pics/poliwrath_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/poliwrath/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_poliwrath_palette:: @ 8D598F0 - .incbin "graphics/pokemon/palettes/poliwrath_palette.gbapal.lz" + .incbin "graphics/pokemon/poliwrath/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_poliwrath_back_pic:: @ 8D59918 - .incbin "graphics/pokemon/back_pics/poliwrath_back_pic.4bpp.lz" + .incbin "graphics/pokemon/poliwrath/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_poliwrath_shiny_palette:: @ 8D59C0C - .incbin "graphics/pokemon/palettes/poliwrath_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/poliwrath/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_poliwrath_icon:: @ 8D59C34 - .incbin "graphics/pokemon/icons/poliwrath_icon.4bpp" + .incbin "graphics/pokemon/poliwrath/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_poliwrath_footprint:: @ 8D5A034 - .incbin "graphics/pokemon/footprints/poliwrath_footprint.1bpp" + .incbin "graphics/pokemon/poliwrath/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_abra_still_front_pic:: @ 8D5A054 - .incbin "graphics/pokemon/front_pics/abra_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/abra/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_abra_palette:: @ 8D5A328 - .incbin "graphics/pokemon/palettes/abra_palette.gbapal.lz" + .incbin "graphics/pokemon/abra/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_abra_back_pic:: @ 8D5A34C - .incbin "graphics/pokemon/back_pics/abra_back_pic.4bpp.lz" + .incbin "graphics/pokemon/abra/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_abra_shiny_palette:: @ 8D5A620 - .incbin "graphics/pokemon/palettes/abra_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/abra/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_abra_icon:: @ 8D5A644 - .incbin "graphics/pokemon/icons/abra_icon.4bpp" + .incbin "graphics/pokemon/abra/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_abra_footprint:: @ 8D5AA44 - .incbin "graphics/pokemon/footprints/abra_footprint.1bpp" + .incbin "graphics/pokemon/abra/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kadabra_still_front_pic:: @ 8D5AA64 - .incbin "graphics/pokemon/front_pics/kadabra_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kadabra/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kadabra_palette:: @ 8D5AF2C - .incbin "graphics/pokemon/palettes/kadabra_palette.gbapal.lz" + .incbin "graphics/pokemon/kadabra/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kadabra_back_pic:: @ 8D5AF54 - .incbin "graphics/pokemon/back_pics/kadabra_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kadabra/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kadabra_shiny_palette:: @ 8D5B300 - .incbin "graphics/pokemon/palettes/kadabra_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kadabra/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kadabra_icon:: @ 8D5B328 - .incbin "graphics/pokemon/icons/kadabra_icon.4bpp" + .incbin "graphics/pokemon/kadabra/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kadabra_footprint:: @ 8D5B728 - .incbin "graphics/pokemon/footprints/kadabra_footprint.1bpp" + .incbin "graphics/pokemon/kadabra/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_alakazam_still_front_pic:: @ 8D5B748 - .incbin "graphics/pokemon/front_pics/alakazam_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/alakazam/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_alakazam_palette:: @ 8D5BBE0 - .incbin "graphics/pokemon/palettes/alakazam_palette.gbapal.lz" + .incbin "graphics/pokemon/alakazam/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_alakazam_back_pic:: @ 8D5BC08 - .incbin "graphics/pokemon/back_pics/alakazam_back_pic.4bpp.lz" + .incbin "graphics/pokemon/alakazam/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_alakazam_shiny_palette:: @ 8D5BF88 - .incbin "graphics/pokemon/palettes/alakazam_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/alakazam/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_alakazam_icon:: @ 8D5BFB0 - .incbin "graphics/pokemon/icons/alakazam_icon.4bpp" + .incbin "graphics/pokemon/alakazam/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_alakazam_footprint:: @ 8D5C3B0 - .incbin "graphics/pokemon/footprints/alakazam_footprint.1bpp" + .incbin "graphics/pokemon/alakazam/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_machop_still_front_pic:: @ 8D5C3D0 - .incbin "graphics/pokemon/front_pics/machop_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/machop/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_machop_palette:: @ 8D5C65C - .incbin "graphics/pokemon/palettes/machop_palette.gbapal.lz" + .incbin "graphics/pokemon/machop/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_machop_back_pic:: @ 8D5C684 - .incbin "graphics/pokemon/back_pics/machop_back_pic.4bpp.lz" + .incbin "graphics/pokemon/machop/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_machop_shiny_palette:: @ 8D5C964 - .incbin "graphics/pokemon/palettes/machop_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/machop/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_machop_icon:: @ 8D5C98C - .incbin "graphics/pokemon/icons/machop_icon.4bpp" + .incbin "graphics/pokemon/machop/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_machop_footprint:: @ 8D5CD8C - .incbin "graphics/pokemon/footprints/machop_footprint.1bpp" + .incbin "graphics/pokemon/machop/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_machoke_still_front_pic:: @ 8D5CDAC - .incbin "graphics/pokemon/front_pics/machoke_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/machoke/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_machoke_palette:: @ 8D5D178 - .incbin "graphics/pokemon/palettes/machoke_palette.gbapal.lz" + .incbin "graphics/pokemon/machoke/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_machoke_back_pic:: @ 8D5D1A0 - .incbin "graphics/pokemon/back_pics/machoke_back_pic.4bpp.lz" + .incbin "graphics/pokemon/machoke/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_machoke_shiny_palette:: @ 8D5D4F0 - .incbin "graphics/pokemon/palettes/machoke_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/machoke/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_machoke_icon:: @ 8D5D518 - .incbin "graphics/pokemon/icons/machoke_icon.4bpp" + .incbin "graphics/pokemon/machoke/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_machoke_footprint:: @ 8D5D918 - .incbin "graphics/pokemon/footprints/machoke_footprint.1bpp" + .incbin "graphics/pokemon/machoke/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_machamp_still_front_pic:: @ 8D5D938 - .incbin "graphics/pokemon/front_pics/machamp_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/machamp/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_machamp_palette:: @ 8D5DE24 - .incbin "graphics/pokemon/palettes/machamp_palette.gbapal.lz" + .incbin "graphics/pokemon/machamp/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_machamp_back_pic:: @ 8D5DE4C - .incbin "graphics/pokemon/back_pics/machamp_back_pic.4bpp.lz" + .incbin "graphics/pokemon/machamp/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_machamp_shiny_palette:: @ 8D5E2A8 - .incbin "graphics/pokemon/palettes/machamp_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/machamp/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_machamp_icon:: @ 8D5E2D0 - .incbin "graphics/pokemon/icons/machamp_icon.4bpp" + .incbin "graphics/pokemon/machamp/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_machamp_footprint:: @ 8D5E6D0 - .incbin "graphics/pokemon/footprints/machamp_footprint.1bpp" + .incbin "graphics/pokemon/machamp/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_bellsprout_still_front_pic:: @ 8D5E6F0 - .incbin "graphics/pokemon/front_pics/bellsprout_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/bellsprout/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bellsprout_palette:: @ 8D5E97C - .incbin "graphics/pokemon/palettes/bellsprout_palette.gbapal.lz" + .incbin "graphics/pokemon/bellsprout/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_bellsprout_back_pic:: @ 8D5E9A4 - .incbin "graphics/pokemon/back_pics/bellsprout_back_pic.4bpp.lz" + .incbin "graphics/pokemon/bellsprout/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bellsprout_shiny_palette:: @ 8D5EC40 - .incbin "graphics/pokemon/palettes/bellsprout_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/bellsprout/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_bellsprout_icon:: @ 8D5EC68 - .incbin "graphics/pokemon/icons/bellsprout_icon.4bpp" + .incbin "graphics/pokemon/bellsprout/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_bellsprout_footprint:: @ 8D5F068 - .incbin "graphics/pokemon/footprints/bellsprout_footprint.1bpp" + .incbin "graphics/pokemon/bellsprout/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_weepinbell_still_front_pic:: @ 8D5F088 - .incbin "graphics/pokemon/front_pics/weepinbell_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/weepinbell/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_weepinbell_palette:: @ 8D5F3AC - .incbin "graphics/pokemon/palettes/weepinbell_palette.gbapal.lz" + .incbin "graphics/pokemon/weepinbell/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_weepinbell_back_pic:: @ 8D5F3D4 - .incbin "graphics/pokemon/back_pics/weepinbell_back_pic.4bpp.lz" + .incbin "graphics/pokemon/weepinbell/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_weepinbell_shiny_palette:: @ 8D5F6D0 - .incbin "graphics/pokemon/palettes/weepinbell_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/weepinbell/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_weepinbell_icon:: @ 8D5F6F8 - .incbin "graphics/pokemon/icons/weepinbell_icon.4bpp" + .incbin "graphics/pokemon/weepinbell/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_weepinbell_footprint:: @ 8D5FAF8 - .incbin "graphics/pokemon/footprints/weepinbell_footprint.1bpp" + .incbin "graphics/pokemon/weepinbell/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_victreebel_still_front_pic:: @ 8D5FB18 - .incbin "graphics/pokemon/front_pics/victreebel_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/victreebel/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_victreebel_palette:: @ 8D5FF44 - .incbin "graphics/pokemon/palettes/victreebel_palette.gbapal.lz" + .incbin "graphics/pokemon/victreebel/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_victreebel_back_pic:: @ 8D5FF6C - .incbin "graphics/pokemon/back_pics/victreebel_back_pic.4bpp.lz" + .incbin "graphics/pokemon/victreebel/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_victreebel_shiny_palette:: @ 8D60304 - .incbin "graphics/pokemon/palettes/victreebel_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/victreebel/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_victreebel_icon:: @ 8D6032C - .incbin "graphics/pokemon/icons/victreebel_icon.4bpp" + .incbin "graphics/pokemon/victreebel/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_victreebel_footprint:: @ 8D6072C - .incbin "graphics/pokemon/footprints/victreebel_footprint.1bpp" + .incbin "graphics/pokemon/victreebel/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_tentacool_still_front_pic:: @ 8D6074C - .incbin "graphics/pokemon/front_pics/tentacool_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/tentacool/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tentacool_palette:: @ 8D609F4 - .incbin "graphics/pokemon/palettes/tentacool_palette.gbapal.lz" + .incbin "graphics/pokemon/tentacool/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_tentacool_back_pic:: @ 8D60A1C - .incbin "graphics/pokemon/back_pics/tentacool_back_pic.4bpp.lz" + .incbin "graphics/pokemon/tentacool/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tentacool_shiny_palette:: @ 8D60CE8 - .incbin "graphics/pokemon/palettes/tentacool_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/tentacool/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_tentacool_icon:: @ 8D60D10 - .incbin "graphics/pokemon/icons/tentacool_icon.4bpp" + .incbin "graphics/pokemon/tentacool/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_tentacool_footprint:: @ 8D61110 - .incbin "graphics/pokemon/footprints/tentacool_footprint.1bpp" + .incbin "graphics/pokemon/tentacool/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_tentacruel_still_front_pic:: @ 8D61130 - .incbin "graphics/pokemon/front_pics/tentacruel_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/tentacruel/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tentacruel_palette:: @ 8D61624 - .incbin "graphics/pokemon/palettes/tentacruel_palette.gbapal.lz" + .incbin "graphics/pokemon/tentacruel/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_tentacruel_back_pic:: @ 8D6164C - .incbin "graphics/pokemon/back_pics/tentacruel_back_pic.4bpp.lz" + .incbin "graphics/pokemon/tentacruel/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tentacruel_shiny_palette:: @ 8D619E8 - .incbin "graphics/pokemon/palettes/tentacruel_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/tentacruel/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_tentacruel_icon:: @ 8D61A10 - .incbin "graphics/pokemon/icons/tentacruel_icon.4bpp" + .incbin "graphics/pokemon/tentacruel/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_tentacruel_footprint:: @ 8D61E10 - .incbin "graphics/pokemon/footprints/tentacruel_footprint.1bpp" + .incbin "graphics/pokemon/tentacruel/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_geodude_still_front_pic:: @ 8D61E30 - .incbin "graphics/pokemon/front_pics/geodude_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/geodude/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_geodude_palette:: @ 8D620C4 - .incbin "graphics/pokemon/palettes/geodude_palette.gbapal.lz" + .incbin "graphics/pokemon/geodude/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_geodude_back_pic:: @ 8D620E0 - .incbin "graphics/pokemon/back_pics/geodude_back_pic.4bpp.lz" + .incbin "graphics/pokemon/geodude/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_geodude_shiny_palette:: @ 8D62374 - .incbin "graphics/pokemon/palettes/geodude_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/geodude/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_geodude_icon:: @ 8D62390 - .incbin "graphics/pokemon/icons/geodude_icon.4bpp" + .incbin "graphics/pokemon/geodude/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_geodude_footprint:: @ 8D62790 - .incbin "graphics/pokemon/footprints/geodude_footprint.1bpp" + .incbin "graphics/pokemon/geodude/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_graveler_still_front_pic:: @ 8D627B0 - .incbin "graphics/pokemon/front_pics/graveler_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/graveler/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_graveler_palette:: @ 8D62BAC - .incbin "graphics/pokemon/palettes/graveler_palette.gbapal.lz" + .incbin "graphics/pokemon/graveler/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_graveler_back_pic:: @ 8D62BD0 - .incbin "graphics/pokemon/back_pics/graveler_back_pic.4bpp.lz" + .incbin "graphics/pokemon/graveler/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_graveler_shiny_palette:: @ 8D62E4C - .incbin "graphics/pokemon/palettes/graveler_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/graveler/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_graveler_icon:: @ 8D62E70 - .incbin "graphics/pokemon/icons/graveler_icon.4bpp" + .incbin "graphics/pokemon/graveler/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_graveler_footprint:: @ 8D63270 - .incbin "graphics/pokemon/footprints/graveler_footprint.1bpp" + .incbin "graphics/pokemon/graveler/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_golem_still_front_pic:: @ 8D63290 - .incbin "graphics/pokemon/front_pics/golem_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/golem/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_golem_palette:: @ 8D636C0 - .incbin "graphics/pokemon/palettes/golem_palette.gbapal.lz" + .incbin "graphics/pokemon/golem/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_golem_back_pic:: @ 8D636E8 - .incbin "graphics/pokemon/back_pics/golem_back_pic.4bpp.lz" + .incbin "graphics/pokemon/golem/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_golem_shiny_palette:: @ 8D639A8 - .incbin "graphics/pokemon/palettes/golem_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/golem/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_golem_icon:: @ 8D639D0 - .incbin "graphics/pokemon/icons/golem_icon.4bpp" + .incbin "graphics/pokemon/golem/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_golem_footprint:: @ 8D63DD0 - .incbin "graphics/pokemon/footprints/golem_footprint.1bpp" + .incbin "graphics/pokemon/golem/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ponyta_still_front_pic:: @ 8D63DF0 - .incbin "graphics/pokemon/front_pics/ponyta_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ponyta/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ponyta_palette:: @ 8D64180 - .incbin "graphics/pokemon/palettes/ponyta_palette.gbapal.lz" + .incbin "graphics/pokemon/ponyta/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ponyta_back_pic:: @ 8D641A8 - .incbin "graphics/pokemon/back_pics/ponyta_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ponyta/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ponyta_shiny_palette:: @ 8D644E4 - .incbin "graphics/pokemon/palettes/ponyta_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ponyta/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ponyta_icon:: @ 8D6450C - .incbin "graphics/pokemon/icons/ponyta_icon.4bpp" + .incbin "graphics/pokemon/ponyta/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ponyta_footprint:: @ 8D6490C - .incbin "graphics/pokemon/footprints/ponyta_footprint.1bpp" + .incbin "graphics/pokemon/ponyta/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_rapidash_still_front_pic:: @ 8D6492C - .incbin "graphics/pokemon/front_pics/rapidash_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/rapidash/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rapidash_palette:: @ 8D64DB4 - .incbin "graphics/pokemon/palettes/rapidash_palette.gbapal.lz" + .incbin "graphics/pokemon/rapidash/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_rapidash_back_pic:: @ 8D64DDC - .incbin "graphics/pokemon/back_pics/rapidash_back_pic.4bpp.lz" + .incbin "graphics/pokemon/rapidash/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rapidash_shiny_palette:: @ 8D651EC - .incbin "graphics/pokemon/palettes/rapidash_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/rapidash/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_rapidash_icon:: @ 8D65214 - .incbin "graphics/pokemon/icons/rapidash_icon.4bpp" + .incbin "graphics/pokemon/rapidash/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_rapidash_footprint:: @ 8D65614 - .incbin "graphics/pokemon/footprints/rapidash_footprint.1bpp" + .incbin "graphics/pokemon/rapidash/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_slowpoke_still_front_pic:: @ 8D65634 - .incbin "graphics/pokemon/front_pics/slowpoke_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/slowpoke/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slowpoke_palette:: @ 8D65908 - .incbin "graphics/pokemon/palettes/slowpoke_palette.gbapal.lz" + .incbin "graphics/pokemon/slowpoke/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_slowpoke_back_pic:: @ 8D65930 - .incbin "graphics/pokemon/back_pics/slowpoke_back_pic.4bpp.lz" + .incbin "graphics/pokemon/slowpoke/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slowpoke_shiny_palette:: @ 8D65B94 - .incbin "graphics/pokemon/palettes/slowpoke_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/slowpoke/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_slowpoke_icon:: @ 8D65BBC - .incbin "graphics/pokemon/icons/slowpoke_icon.4bpp" + .incbin "graphics/pokemon/slowpoke/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_slowpoke_footprint:: @ 8D65FBC - .incbin "graphics/pokemon/footprints/slowpoke_footprint.1bpp" + .incbin "graphics/pokemon/slowpoke/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_slowbro_still_front_pic:: @ 8D65FDC - .incbin "graphics/pokemon/front_pics/slowbro_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/slowbro/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slowbro_palette:: @ 8D6647C - .incbin "graphics/pokemon/palettes/slowbro_palette.gbapal.lz" + .incbin "graphics/pokemon/slowbro/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_slowbro_back_pic:: @ 8D664A4 - .incbin "graphics/pokemon/back_pics/slowbro_back_pic.4bpp.lz" + .incbin "graphics/pokemon/slowbro/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slowbro_shiny_palette:: @ 8D66840 - .incbin "graphics/pokemon/palettes/slowbro_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/slowbro/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_slowbro_icon:: @ 8D66868 - .incbin "graphics/pokemon/icons/slowbro_icon.4bpp" + .incbin "graphics/pokemon/slowbro/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_slowbro_footprint:: @ 8D66C68 - .incbin "graphics/pokemon/footprints/slowbro_footprint.1bpp" + .incbin "graphics/pokemon/slowbro/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_magnemite_still_front_pic:: @ 8D66C88 - .incbin "graphics/pokemon/front_pics/magnemite_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/magnemite/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magnemite_palette:: @ 8D66E60 - .incbin "graphics/pokemon/palettes/magnemite_palette.gbapal.lz" + .incbin "graphics/pokemon/magnemite/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_magnemite_back_pic:: @ 8D66E88 - .incbin "graphics/pokemon/back_pics/magnemite_back_pic.4bpp.lz" + .incbin "graphics/pokemon/magnemite/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magnemite_shiny_palette:: @ 8D67070 - .incbin "graphics/pokemon/palettes/magnemite_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/magnemite/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_magnemite_icon:: @ 8D67094 - .incbin "graphics/pokemon/icons/magnemite_icon.4bpp" + .incbin "graphics/pokemon/magnemite/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_magnemite_footprint:: @ 8D67494 - .incbin "graphics/pokemon/footprints/magnemite_footprint.1bpp" + .incbin "graphics/pokemon/magnemite/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_magneton_still_front_pic:: @ 8D674B4 - .incbin "graphics/pokemon/front_pics/magneton_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/magneton/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magneton_palette:: @ 8D677F0 - .incbin "graphics/pokemon/palettes/magneton_palette.gbapal.lz" + .incbin "graphics/pokemon/magneton/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_magneton_back_pic:: @ 8D67818 - .incbin "graphics/pokemon/back_pics/magneton_back_pic.4bpp.lz" + .incbin "graphics/pokemon/magneton/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magneton_shiny_palette:: @ 8D67B98 - .incbin "graphics/pokemon/palettes/magneton_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/magneton/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_magneton_icon:: @ 8D67BC0 - .incbin "graphics/pokemon/icons/magneton_icon.4bpp" + .incbin "graphics/pokemon/magneton/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_magneton_footprint:: @ 8D67FC0 - .incbin "graphics/pokemon/footprints/magneton_footprint.1bpp" + .incbin "graphics/pokemon/magneton/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_farfetch_d_still_front_pic:: @ 8D67FE0 - .incbin "graphics/pokemon/front_pics/farfetch_d_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/farfetch_d/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_farfetch_d_palette:: @ 8D68334 - .incbin "graphics/pokemon/palettes/farfetch_d_palette.gbapal.lz" + .incbin "graphics/pokemon/farfetch_d/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_farfetch_d_back_pic:: @ 8D6835C - .incbin "graphics/pokemon/back_pics/farfetch_d_back_pic.4bpp.lz" + .incbin "graphics/pokemon/farfetch_d/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_farfetch_d_shiny_palette:: @ 8D686C8 - .incbin "graphics/pokemon/palettes/farfetch_d_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/farfetch_d/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_farfetch_d_icon:: @ 8D686F0 - .incbin "graphics/pokemon/icons/farfetch_d_icon.4bpp" + .incbin "graphics/pokemon/farfetch_d/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_farfetch_d_footprint:: @ 8D68AF0 - .incbin "graphics/pokemon/footprints/farfetch_d_footprint.1bpp" + .incbin "graphics/pokemon/farfetch_d/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_doduo_still_front_pic:: @ 8D68B10 - .incbin "graphics/pokemon/front_pics/doduo_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/doduo/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_doduo_palette:: @ 8D68DFC - .incbin "graphics/pokemon/palettes/doduo_palette.gbapal.lz" + .incbin "graphics/pokemon/doduo/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_doduo_back_pic:: @ 8D68E20 - .incbin "graphics/pokemon/back_pics/doduo_back_pic.4bpp.lz" + .incbin "graphics/pokemon/doduo/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_doduo_shiny_palette:: @ 8D69138 - .incbin "graphics/pokemon/palettes/doduo_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/doduo/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_doduo_icon:: @ 8D6915C - .incbin "graphics/pokemon/icons/doduo_icon.4bpp" + .incbin "graphics/pokemon/doduo/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_doduo_footprint:: @ 8D6955C - .incbin "graphics/pokemon/footprints/doduo_footprint.1bpp" + .incbin "graphics/pokemon/doduo/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_dodrio_still_front_pic:: @ 8D6957C - .incbin "graphics/pokemon/front_pics/dodrio_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/dodrio/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dodrio_palette:: @ 8D699BC - .incbin "graphics/pokemon/palettes/dodrio_palette.gbapal.lz" + .incbin "graphics/pokemon/dodrio/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_dodrio_back_pic:: @ 8D699E4 - .incbin "graphics/pokemon/back_pics/dodrio_back_pic.4bpp.lz" + .incbin "graphics/pokemon/dodrio/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dodrio_shiny_palette:: @ 8D69E48 - .incbin "graphics/pokemon/palettes/dodrio_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/dodrio/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_dodrio_icon:: @ 8D69E70 - .incbin "graphics/pokemon/icons/dodrio_icon.4bpp" + .incbin "graphics/pokemon/dodrio/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_dodrio_footprint:: @ 8D6A270 - .incbin "graphics/pokemon/footprints/dodrio_footprint.1bpp" + .incbin "graphics/pokemon/dodrio/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_seel_still_front_pic:: @ 8D6A290 - .incbin "graphics/pokemon/front_pics/seel_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/seel/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seel_palette:: @ 8D6A5B4 - .incbin "graphics/pokemon/palettes/seel_palette.gbapal.lz" + .incbin "graphics/pokemon/seel/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_seel_back_pic:: @ 8D6A5DC - .incbin "graphics/pokemon/back_pics/seel_back_pic.4bpp.lz" + .incbin "graphics/pokemon/seel/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seel_shiny_palette:: @ 8D6A8C8 - .incbin "graphics/pokemon/palettes/seel_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/seel/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_seel_icon:: @ 8D6A8F0 - .incbin "graphics/pokemon/icons/seel_icon.4bpp" + .incbin "graphics/pokemon/seel/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_seel_footprint:: @ 8D6ACF0 - .incbin "graphics/pokemon/footprints/seel_footprint.1bpp" + .incbin "graphics/pokemon/seel/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_dewgong_still_front_pic:: @ 8D6AD10 - .incbin "graphics/pokemon/front_pics/dewgong_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/dewgong/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dewgong_palette:: @ 8D6B0E0 - .incbin "graphics/pokemon/palettes/dewgong_palette.gbapal.lz" + .incbin "graphics/pokemon/dewgong/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_dewgong_back_pic:: @ 8D6B104 - .incbin "graphics/pokemon/back_pics/dewgong_back_pic.4bpp.lz" + .incbin "graphics/pokemon/dewgong/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dewgong_shiny_palette:: @ 8D6B398 - .incbin "graphics/pokemon/palettes/dewgong_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/dewgong/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_dewgong_icon:: @ 8D6B3BC - .incbin "graphics/pokemon/icons/dewgong_icon.4bpp" + .incbin "graphics/pokemon/dewgong/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_dewgong_footprint:: @ 8D6B7BC - .incbin "graphics/pokemon/footprints/dewgong_footprint.1bpp" + .incbin "graphics/pokemon/dewgong/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_grimer_still_front_pic:: @ 8D6B7DC - .incbin "graphics/pokemon/front_pics/grimer_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/grimer/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_grimer_palette:: @ 8D6BB04 - .incbin "graphics/pokemon/palettes/grimer_palette.gbapal.lz" + .incbin "graphics/pokemon/grimer/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_grimer_back_pic:: @ 8D6BB28 - .incbin "graphics/pokemon/back_pics/grimer_back_pic.4bpp.lz" + .incbin "graphics/pokemon/grimer/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_grimer_shiny_palette:: @ 8D6BDEC - .incbin "graphics/pokemon/palettes/grimer_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/grimer/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_grimer_icon:: @ 8D6BE10 - .incbin "graphics/pokemon/icons/grimer_icon.4bpp" + .incbin "graphics/pokemon/grimer/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_grimer_footprint:: @ 8D6C210 - .incbin "graphics/pokemon/footprints/grimer_footprint.1bpp" + .incbin "graphics/pokemon/grimer/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_muk_still_front_pic:: @ 8D6C230 - .incbin "graphics/pokemon/front_pics/muk_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/muk/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_muk_palette:: @ 8D6C5C0 - .incbin "graphics/pokemon/palettes/muk_palette.gbapal.lz" + .incbin "graphics/pokemon/muk/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_muk_back_pic:: @ 8D6C5E4 - .incbin "graphics/pokemon/back_pics/muk_back_pic.4bpp.lz" + .incbin "graphics/pokemon/muk/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_muk_shiny_palette:: @ 8D6C8DC - .incbin "graphics/pokemon/palettes/muk_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/muk/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_muk_icon:: @ 8D6C900 - .incbin "graphics/pokemon/icons/muk_icon.4bpp" + .incbin "graphics/pokemon/muk/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_muk_footprint:: @ 8D6CD00 - .incbin "graphics/pokemon/footprints/muk_footprint.1bpp" + .incbin "graphics/pokemon/muk/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_shellder_still_front_pic:: @ 8D6CD20 - .incbin "graphics/pokemon/front_pics/shellder_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/shellder/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shellder_palette:: @ 8D6CF94 - .incbin "graphics/pokemon/palettes/shellder_palette.gbapal.lz" + .incbin "graphics/pokemon/shellder/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_shellder_back_pic:: @ 8D6CFB8 - .incbin "graphics/pokemon/back_pics/shellder_back_pic.4bpp.lz" + .incbin "graphics/pokemon/shellder/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shellder_shiny_palette:: @ 8D6D2CC - .incbin "graphics/pokemon/palettes/shellder_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/shellder/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_shellder_icon:: @ 8D6D2F0 - .incbin "graphics/pokemon/icons/shellder_icon.4bpp" + .incbin "graphics/pokemon/shellder/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_shellder_footprint:: @ 8D6D6F0 - .incbin "graphics/pokemon/footprints/shellder_footprint.1bpp" + .incbin "graphics/pokemon/shellder/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_cloyster_still_front_pic:: @ 8D6D710 - .incbin "graphics/pokemon/front_pics/cloyster_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/cloyster/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cloyster_palette:: @ 8D6DB4C - .incbin "graphics/pokemon/palettes/cloyster_palette.gbapal.lz" + .incbin "graphics/pokemon/cloyster/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_cloyster_back_pic:: @ 8D6DB70 - .incbin "graphics/pokemon/back_pics/cloyster_back_pic.4bpp.lz" + .incbin "graphics/pokemon/cloyster/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cloyster_shiny_palette:: @ 8D6DF7C - .incbin "graphics/pokemon/palettes/cloyster_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/cloyster/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_cloyster_icon:: @ 8D6DFA0 - .incbin "graphics/pokemon/icons/cloyster_icon.4bpp" + .incbin "graphics/pokemon/cloyster/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_cloyster_footprint:: @ 8D6E3A0 - .incbin "graphics/pokemon/footprints/cloyster_footprint.1bpp" + .incbin "graphics/pokemon/cloyster/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_gastly_still_front_pic:: @ 8D6E3C0 - .incbin "graphics/pokemon/front_pics/gastly_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/gastly/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gastly_palette:: @ 8D6E778 - .incbin "graphics/pokemon/palettes/gastly_palette.gbapal.lz" + .incbin "graphics/pokemon/gastly/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_gastly_back_pic:: @ 8D6E7A0 - .incbin "graphics/pokemon/back_pics/gastly_back_pic.4bpp.lz" + .incbin "graphics/pokemon/gastly/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gastly_shiny_palette:: @ 8D6EAC4 - .incbin "graphics/pokemon/palettes/gastly_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/gastly/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_gastly_icon:: @ 8D6EAEC - .incbin "graphics/pokemon/icons/gastly_icon.4bpp" + .incbin "graphics/pokemon/gastly/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_gastly_footprint:: @ 8D6EEEC - .incbin "graphics/pokemon/footprints/gastly_footprint.1bpp" + .incbin "graphics/pokemon/gastly/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_haunter_still_front_pic:: @ 8D6EF0C - .incbin "graphics/pokemon/front_pics/haunter_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/haunter/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_haunter_palette:: @ 8D6F2F4 - .incbin "graphics/pokemon/palettes/haunter_palette.gbapal.lz" + .incbin "graphics/pokemon/haunter/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_haunter_back_pic:: @ 8D6F318 - .incbin "graphics/pokemon/back_pics/haunter_back_pic.4bpp.lz" + .incbin "graphics/pokemon/haunter/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_haunter_shiny_palette:: @ 8D6F5FC - .incbin "graphics/pokemon/palettes/haunter_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/haunter/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_haunter_icon:: @ 8D6F620 - .incbin "graphics/pokemon/icons/haunter_icon.4bpp" + .incbin "graphics/pokemon/haunter/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_haunter_footprint:: @ 8D6FA20 - .incbin "graphics/pokemon/footprints/haunter_footprint.1bpp" + .incbin "graphics/pokemon/haunter/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_gengar_still_front_pic:: @ 8D6FA40 - .incbin "graphics/pokemon/front_pics/gengar_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/gengar/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gengar_palette:: @ 8D6FD9C - .incbin "graphics/pokemon/palettes/gengar_palette.gbapal.lz" + .incbin "graphics/pokemon/gengar/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_gengar_back_pic:: @ 8D6FDC0 - .incbin "graphics/pokemon/back_pics/gengar_back_pic.4bpp.lz" + .incbin "graphics/pokemon/gengar/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gengar_shiny_palette:: @ 8D70104 - .incbin "graphics/pokemon/palettes/gengar_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/gengar/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_gengar_icon:: @ 8D70128 - .incbin "graphics/pokemon/icons/gengar_icon.4bpp" + .incbin "graphics/pokemon/gengar/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_gengar_footprint:: @ 8D70528 - .incbin "graphics/pokemon/footprints/gengar_footprint.1bpp" + .incbin "graphics/pokemon/gengar/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_onix_still_front_pic:: @ 8D70548 - .incbin "graphics/pokemon/front_pics/onix_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/onix/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_onix_palette:: @ 8D70A18 - .incbin "graphics/pokemon/palettes/onix_palette.gbapal.lz" + .incbin "graphics/pokemon/onix/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_onix_back_pic:: @ 8D70A34 - .incbin "graphics/pokemon/back_pics/onix_back_pic.4bpp.lz" + .incbin "graphics/pokemon/onix/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_onix_shiny_palette:: @ 8D70DB0 - .incbin "graphics/pokemon/palettes/onix_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/onix/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_onix_icon:: @ 8D70DCC - .incbin "graphics/pokemon/icons/onix_icon.4bpp" + .incbin "graphics/pokemon/onix/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_onix_footprint:: @ 8D711CC - .incbin "graphics/pokemon/footprints/onix_footprint.1bpp" + .incbin "graphics/pokemon/onix/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_drowzee_still_front_pic:: @ 8D711EC - .incbin "graphics/pokemon/front_pics/drowzee_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/drowzee/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_drowzee_palette:: @ 8D7152C - .incbin "graphics/pokemon/palettes/drowzee_palette.gbapal.lz" + .incbin "graphics/pokemon/drowzee/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_drowzee_back_pic:: @ 8D71550 - .incbin "graphics/pokemon/back_pics/drowzee_back_pic.4bpp.lz" + .incbin "graphics/pokemon/drowzee/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_drowzee_shiny_palette:: @ 8D7178C - .incbin "graphics/pokemon/palettes/drowzee_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/drowzee/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_drowzee_icon:: @ 8D717B0 - .incbin "graphics/pokemon/icons/drowzee_icon.4bpp" + .incbin "graphics/pokemon/drowzee/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_drowzee_footprint:: @ 8D71BB0 - .incbin "graphics/pokemon/footprints/drowzee_footprint.1bpp" + .incbin "graphics/pokemon/drowzee/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_hypno_still_front_pic:: @ 8D71BD0 - .incbin "graphics/pokemon/front_pics/hypno_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/hypno/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hypno_palette:: @ 8D72008 - .incbin "graphics/pokemon/palettes/hypno_palette.gbapal.lz" + .incbin "graphics/pokemon/hypno/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_hypno_back_pic:: @ 8D7202C - .incbin "graphics/pokemon/back_pics/hypno_back_pic.4bpp.lz" + .incbin "graphics/pokemon/hypno/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hypno_shiny_palette:: @ 8D7235C - .incbin "graphics/pokemon/palettes/hypno_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/hypno/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_hypno_icon:: @ 8D72380 - .incbin "graphics/pokemon/icons/hypno_icon.4bpp" + .incbin "graphics/pokemon/hypno/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_hypno_footprint:: @ 8D72780 - .incbin "graphics/pokemon/footprints/hypno_footprint.1bpp" + .incbin "graphics/pokemon/hypno/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_krabby_still_front_pic:: @ 8D727A0 - .incbin "graphics/pokemon/front_pics/krabby_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/krabby/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_krabby_palette:: @ 8D72AC4 - .incbin "graphics/pokemon/palettes/krabby_palette.gbapal.lz" + .incbin "graphics/pokemon/krabby/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_krabby_back_pic:: @ 8D72AEC - .incbin "graphics/pokemon/back_pics/krabby_back_pic.4bpp.lz" + .incbin "graphics/pokemon/krabby/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_krabby_shiny_palette:: @ 8D72E78 - .incbin "graphics/pokemon/palettes/krabby_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/krabby/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_krabby_icon:: @ 8D72EA0 - .incbin "graphics/pokemon/icons/krabby_icon.4bpp" + .incbin "graphics/pokemon/krabby/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_krabby_footprint:: @ 8D732A0 - .incbin "graphics/pokemon/footprints/krabby_footprint.1bpp" + .incbin "graphics/pokemon/krabby/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kingler_still_front_pic:: @ 8D732C0 - .incbin "graphics/pokemon/front_pics/kingler_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kingler/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kingler_palette:: @ 8D73740 - .incbin "graphics/pokemon/palettes/kingler_palette.gbapal.lz" + .incbin "graphics/pokemon/kingler/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kingler_back_pic:: @ 8D73768 - .incbin "graphics/pokemon/back_pics/kingler_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kingler/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kingler_shiny_palette:: @ 8D73AEC - .incbin "graphics/pokemon/palettes/kingler_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kingler/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kingler_icon:: @ 8D73B14 - .incbin "graphics/pokemon/icons/kingler_icon.4bpp" + .incbin "graphics/pokemon/kingler/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kingler_footprint:: @ 8D73F14 - .incbin "graphics/pokemon/footprints/kingler_footprint.1bpp" + .incbin "graphics/pokemon/kingler/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_voltorb_still_front_pic:: @ 8D73F34 - .incbin "graphics/pokemon/front_pics/voltorb_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/voltorb/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_voltorb_palette:: @ 8D7413C - .incbin "graphics/pokemon/palettes/voltorb_palette.gbapal.lz" + .incbin "graphics/pokemon/voltorb/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_voltorb_back_pic:: @ 8D74160 - .incbin "graphics/pokemon/back_pics/voltorb_back_pic.4bpp.lz" + .incbin "graphics/pokemon/voltorb/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_voltorb_shiny_palette:: @ 8D743D4 - .incbin "graphics/pokemon/palettes/voltorb_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/voltorb/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_voltorb_icon:: @ 8D743F8 - .incbin "graphics/pokemon/icons/voltorb_icon.4bpp" + .incbin "graphics/pokemon/voltorb/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_voltorb_footprint:: @ 8D747F8 - .incbin "graphics/pokemon/footprints/voltorb_footprint.1bpp" + .incbin "graphics/pokemon/voltorb/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_electrode_still_front_pic:: @ 8D74818 - .incbin "graphics/pokemon/front_pics/electrode_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/electrode/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_electrode_palette:: @ 8D74A84 - .incbin "graphics/pokemon/palettes/electrode_palette.gbapal.lz" + .incbin "graphics/pokemon/electrode/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_electrode_back_pic:: @ 8D74AA8 - .incbin "graphics/pokemon/back_pics/electrode_back_pic.4bpp.lz" + .incbin "graphics/pokemon/electrode/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_electrode_shiny_palette:: @ 8D74D18 - .incbin "graphics/pokemon/palettes/electrode_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/electrode/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_electrode_icon:: @ 8D74D3C - .incbin "graphics/pokemon/icons/electrode_icon.4bpp" + .incbin "graphics/pokemon/electrode/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_electrode_footprint:: @ 8D7513C - .incbin "graphics/pokemon/footprints/electrode_footprint.1bpp" + .incbin "graphics/pokemon/electrode/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_exeggcute_still_front_pic:: @ 8D7515C - .incbin "graphics/pokemon/front_pics/exeggcute_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/exeggcute/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_exeggcute_palette:: @ 8D754EC - .incbin "graphics/pokemon/palettes/exeggcute_palette.gbapal.lz" + .incbin "graphics/pokemon/exeggcute/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_exeggcute_back_pic:: @ 8D75510 - .incbin "graphics/pokemon/back_pics/exeggcute_back_pic.4bpp.lz" + .incbin "graphics/pokemon/exeggcute/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_exeggcute_shiny_palette:: @ 8D75818 - .incbin "graphics/pokemon/palettes/exeggcute_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/exeggcute/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_exeggcute_icon:: @ 8D7583C - .incbin "graphics/pokemon/icons/exeggcute_icon.4bpp" + .incbin "graphics/pokemon/exeggcute/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_exeggcute_footprint:: @ 8D75C3C - .incbin "graphics/pokemon/footprints/exeggcute_footprint.1bpp" + .incbin "graphics/pokemon/exeggcute/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_exeggutor_still_front_pic:: @ 8D75C5C - .incbin "graphics/pokemon/front_pics/exeggutor_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/exeggutor/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_exeggutor_palette:: @ 8D760AC - .incbin "graphics/pokemon/palettes/exeggutor_palette.gbapal.lz" + .incbin "graphics/pokemon/exeggutor/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_exeggutor_back_pic:: @ 8D760D4 - .incbin "graphics/pokemon/back_pics/exeggutor_back_pic.4bpp.lz" + .incbin "graphics/pokemon/exeggutor/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_exeggutor_shiny_palette:: @ 8D764A0 - .incbin "graphics/pokemon/palettes/exeggutor_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/exeggutor/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_exeggutor_icon:: @ 8D764C8 - .incbin "graphics/pokemon/icons/exeggutor_icon.4bpp" + .incbin "graphics/pokemon/exeggutor/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_exeggutor_footprint:: @ 8D768C8 - .incbin "graphics/pokemon/footprints/exeggutor_footprint.1bpp" + .incbin "graphics/pokemon/exeggutor/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_cubone_still_front_pic:: @ 8D768E8 - .incbin "graphics/pokemon/front_pics/cubone_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/cubone/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cubone_palette:: @ 8D76BA4 - .incbin "graphics/pokemon/palettes/cubone_palette.gbapal.lz" + .incbin "graphics/pokemon/cubone/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_cubone_back_pic:: @ 8D76BCC - .incbin "graphics/pokemon/back_pics/cubone_back_pic.4bpp.lz" + .incbin "graphics/pokemon/cubone/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cubone_shiny_palette:: @ 8D76F0C - .incbin "graphics/pokemon/palettes/cubone_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/cubone/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_cubone_icon:: @ 8D76F34 - .incbin "graphics/pokemon/icons/cubone_icon.4bpp" + .incbin "graphics/pokemon/cubone/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_cubone_footprint:: @ 8D77334 - .incbin "graphics/pokemon/footprints/cubone_footprint.1bpp" + .incbin "graphics/pokemon/cubone/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_marowak_still_front_pic:: @ 8D77354 - .incbin "graphics/pokemon/front_pics/marowak_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/marowak/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_marowak_palette:: @ 8D776D4 - .incbin "graphics/pokemon/palettes/marowak_palette.gbapal.lz" + .incbin "graphics/pokemon/marowak/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_marowak_back_pic:: @ 8D776FC - .incbin "graphics/pokemon/back_pics/marowak_back_pic.4bpp.lz" + .incbin "graphics/pokemon/marowak/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_marowak_shiny_palette:: @ 8D77A10 - .incbin "graphics/pokemon/palettes/marowak_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/marowak/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_marowak_icon:: @ 8D77A38 - .incbin "graphics/pokemon/icons/marowak_icon.4bpp" + .incbin "graphics/pokemon/marowak/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_marowak_footprint:: @ 8D77E38 - .incbin "graphics/pokemon/footprints/marowak_footprint.1bpp" + .incbin "graphics/pokemon/marowak/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_hitmonlee_still_front_pic:: @ 8D77E58 - .incbin "graphics/pokemon/front_pics/hitmonlee_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/hitmonlee/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hitmonlee_palette:: @ 8D781CC - .incbin "graphics/pokemon/palettes/hitmonlee_palette.gbapal.lz" + .incbin "graphics/pokemon/hitmonlee/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_hitmonlee_back_pic:: @ 8D781F4 - .incbin "graphics/pokemon/back_pics/hitmonlee_back_pic.4bpp.lz" + .incbin "graphics/pokemon/hitmonlee/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hitmonlee_shiny_palette:: @ 8D78498 - .incbin "graphics/pokemon/palettes/hitmonlee_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/hitmonlee/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_hitmonlee_icon:: @ 8D784C0 - .incbin "graphics/pokemon/icons/hitmonlee_icon.4bpp" + .incbin "graphics/pokemon/hitmonlee/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_hitmonlee_footprint:: @ 8D788C0 - .incbin "graphics/pokemon/footprints/hitmonlee_footprint.1bpp" + .incbin "graphics/pokemon/hitmonlee/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_hitmonchan_still_front_pic:: @ 8D788E0 - .incbin "graphics/pokemon/front_pics/hitmonchan_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/hitmonchan/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hitmonchan_palette:: @ 8D78C20 - .incbin "graphics/pokemon/palettes/hitmonchan_palette.gbapal.lz" + .incbin "graphics/pokemon/hitmonchan/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_hitmonchan_back_pic:: @ 8D78C48 - .incbin "graphics/pokemon/back_pics/hitmonchan_back_pic.4bpp.lz" + .incbin "graphics/pokemon/hitmonchan/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hitmonchan_shiny_palette:: @ 8D78F8C - .incbin "graphics/pokemon/palettes/hitmonchan_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/hitmonchan/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_hitmonchan_icon:: @ 8D78FB4 - .incbin "graphics/pokemon/icons/hitmonchan_icon.4bpp" + .incbin "graphics/pokemon/hitmonchan/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_hitmonchan_footprint:: @ 8D793B4 - .incbin "graphics/pokemon/footprints/hitmonchan_footprint.1bpp" + .incbin "graphics/pokemon/hitmonchan/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_lickitung_still_front_pic:: @ 8D793D4 - .incbin "graphics/pokemon/front_pics/lickitung_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/lickitung/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lickitung_palette:: @ 8D797AC - .incbin "graphics/pokemon/palettes/lickitung_palette.gbapal.lz" + .incbin "graphics/pokemon/lickitung/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_lickitung_back_pic:: @ 8D797D4 - .incbin "graphics/pokemon/back_pics/lickitung_back_pic.4bpp.lz" + .incbin "graphics/pokemon/lickitung/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lickitung_shiny_palette:: @ 8D79A78 - .incbin "graphics/pokemon/palettes/lickitung_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/lickitung/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_lickitung_icon:: @ 8D79AA0 - .incbin "graphics/pokemon/icons/lickitung_icon.4bpp" + .incbin "graphics/pokemon/lickitung/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_lickitung_footprint:: @ 8D79EA0 - .incbin "graphics/pokemon/footprints/lickitung_footprint.1bpp" + .incbin "graphics/pokemon/lickitung/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_koffing_still_front_pic:: @ 8D79EC0 - .incbin "graphics/pokemon/front_pics/koffing_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/koffing/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_koffing_palette:: @ 8D7A1C0 - .incbin "graphics/pokemon/palettes/koffing_palette.gbapal.lz" + .incbin "graphics/pokemon/koffing/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_koffing_back_pic:: @ 8D7A1E8 - .incbin "graphics/pokemon/back_pics/koffing_back_pic.4bpp.lz" + .incbin "graphics/pokemon/koffing/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_koffing_shiny_palette:: @ 8D7A4E8 - .incbin "graphics/pokemon/palettes/koffing_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/koffing/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_koffing_icon:: @ 8D7A510 - .incbin "graphics/pokemon/icons/koffing_icon.4bpp" + .incbin "graphics/pokemon/koffing/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_koffing_footprint:: @ 8D7A910 - .incbin "graphics/pokemon/footprints/koffing_footprint.1bpp" + .incbin "graphics/pokemon/koffing/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_weezing_still_front_pic:: @ 8D7A930 - .incbin "graphics/pokemon/front_pics/weezing_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/weezing/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_weezing_palette:: @ 8D7ADEC - .incbin "graphics/pokemon/palettes/weezing_palette.gbapal.lz" + .incbin "graphics/pokemon/weezing/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_weezing_back_pic:: @ 8D7AE14 - .incbin "graphics/pokemon/back_pics/weezing_back_pic.4bpp.lz" + .incbin "graphics/pokemon/weezing/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_weezing_shiny_palette:: @ 8D7B198 - .incbin "graphics/pokemon/palettes/weezing_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/weezing/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_weezing_icon:: @ 8D7B1C0 - .incbin "graphics/pokemon/icons/weezing_icon.4bpp" + .incbin "graphics/pokemon/weezing/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_weezing_footprint:: @ 8D7B5C0 - .incbin "graphics/pokemon/footprints/weezing_footprint.1bpp" + .incbin "graphics/pokemon/weezing/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_rhyhorn_still_front_pic:: @ 8D7B5E0 - .incbin "graphics/pokemon/front_pics/rhyhorn_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/rhyhorn/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rhyhorn_palette:: @ 8D7B9DC - .incbin "graphics/pokemon/palettes/rhyhorn_palette.gbapal.lz" + .incbin "graphics/pokemon/rhyhorn/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_rhyhorn_back_pic:: @ 8D7B9FC - .incbin "graphics/pokemon/back_pics/rhyhorn_back_pic.4bpp.lz" + .incbin "graphics/pokemon/rhyhorn/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rhyhorn_shiny_palette:: @ 8D7BD44 - .incbin "graphics/pokemon/palettes/rhyhorn_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/rhyhorn/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_rhyhorn_icon:: @ 8D7BD64 - .incbin "graphics/pokemon/icons/rhyhorn_icon.4bpp" + .incbin "graphics/pokemon/rhyhorn/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_rhyhorn_footprint:: @ 8D7C164 - .incbin "graphics/pokemon/footprints/rhyhorn_footprint.1bpp" + .incbin "graphics/pokemon/rhyhorn/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_rhydon_still_front_pic:: @ 8D7C184 - .incbin "graphics/pokemon/front_pics/rhydon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/rhydon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rhydon_palette:: @ 8D7C678 - .incbin "graphics/pokemon/palettes/rhydon_palette.gbapal.lz" + .incbin "graphics/pokemon/rhydon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_rhydon_back_pic:: @ 8D7C6A0 - .incbin "graphics/pokemon/back_pics/rhydon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/rhydon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rhydon_shiny_palette:: @ 8D7CAF0 - .incbin "graphics/pokemon/palettes/rhydon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/rhydon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_rhydon_icon:: @ 8D7CB18 - .incbin "graphics/pokemon/icons/rhydon_icon.4bpp" + .incbin "graphics/pokemon/rhydon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_rhydon_footprint:: @ 8D7CF18 - .incbin "graphics/pokemon/footprints/rhydon_footprint.1bpp" + .incbin "graphics/pokemon/rhydon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_chansey_still_front_pic:: @ 8D7CF38 - .incbin "graphics/pokemon/front_pics/chansey_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/chansey/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_chansey_palette:: @ 8D7D274 - .incbin "graphics/pokemon/palettes/chansey_palette.gbapal.lz" + .incbin "graphics/pokemon/chansey/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_chansey_back_pic:: @ 8D7D298 - .incbin "graphics/pokemon/back_pics/chansey_back_pic.4bpp.lz" + .incbin "graphics/pokemon/chansey/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_chansey_shiny_palette:: @ 8D7D4E8 - .incbin "graphics/pokemon/palettes/chansey_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/chansey/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_chansey_icon:: @ 8D7D50C - .incbin "graphics/pokemon/icons/chansey_icon.4bpp" + .incbin "graphics/pokemon/chansey/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_chansey_footprint:: @ 8D7D90C - .incbin "graphics/pokemon/footprints/chansey_footprint.1bpp" + .incbin "graphics/pokemon/chansey/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_tangela_still_front_pic:: @ 8D7D92C - .incbin "graphics/pokemon/front_pics/tangela_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/tangela/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tangela_palette:: @ 8D7DD00 - .incbin "graphics/pokemon/palettes/tangela_palette.gbapal.lz" + .incbin "graphics/pokemon/tangela/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_tangela_back_pic:: @ 8D7DD24 - .incbin "graphics/pokemon/back_pics/tangela_back_pic.4bpp.lz" + .incbin "graphics/pokemon/tangela/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tangela_shiny_palette:: @ 8D7E0D0 - .incbin "graphics/pokemon/palettes/tangela_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/tangela/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_tangela_icon:: @ 8D7E0F4 - .incbin "graphics/pokemon/icons/tangela_icon.4bpp" + .incbin "graphics/pokemon/tangela/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_tangela_footprint:: @ 8D7E4F4 - .incbin "graphics/pokemon/footprints/tangela_footprint.1bpp" + .incbin "graphics/pokemon/tangela/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kangaskhan_still_front_pic:: @ 8D7E514 - .incbin "graphics/pokemon/front_pics/kangaskhan_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kangaskhan/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kangaskhan_palette:: @ 8D7E9BC - .incbin "graphics/pokemon/palettes/kangaskhan_palette.gbapal.lz" + .incbin "graphics/pokemon/kangaskhan/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kangaskhan_back_pic:: @ 8D7E9E4 - .incbin "graphics/pokemon/back_pics/kangaskhan_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kangaskhan/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kangaskhan_shiny_palette:: @ 8D7EE14 - .incbin "graphics/pokemon/palettes/kangaskhan_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kangaskhan/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kangaskhan_icon:: @ 8D7EE3C - .incbin "graphics/pokemon/icons/kangaskhan_icon.4bpp" + .incbin "graphics/pokemon/kangaskhan/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kangaskhan_footprint:: @ 8D7F23C - .incbin "graphics/pokemon/footprints/kangaskhan_footprint.1bpp" + .incbin "graphics/pokemon/kangaskhan/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_horsea_still_front_pic:: @ 8D7F25C - .incbin "graphics/pokemon/front_pics/horsea_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/horsea/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_horsea_palette:: @ 8D7F4C8 - .incbin "graphics/pokemon/palettes/horsea_palette.gbapal.lz" + .incbin "graphics/pokemon/horsea/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_horsea_back_pic:: @ 8D7F4F0 - .incbin "graphics/pokemon/back_pics/horsea_back_pic.4bpp.lz" + .incbin "graphics/pokemon/horsea/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_horsea_shiny_palette:: @ 8D7F7D0 - .incbin "graphics/pokemon/palettes/horsea_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/horsea/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_horsea_icon:: @ 8D7F7F8 - .incbin "graphics/pokemon/icons/horsea_icon.4bpp" + .incbin "graphics/pokemon/horsea/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_horsea_footprint:: @ 8D7FBF8 - .incbin "graphics/pokemon/footprints/horsea_footprint.1bpp" + .incbin "graphics/pokemon/horsea/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_seadra_still_front_pic:: @ 8D7FC18 - .incbin "graphics/pokemon/front_pics/seadra_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/seadra/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seadra_palette:: @ 8D7FFA0 - .incbin "graphics/pokemon/palettes/seadra_palette.gbapal.lz" + .incbin "graphics/pokemon/seadra/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_seadra_back_pic:: @ 8D7FFC8 - .incbin "graphics/pokemon/back_pics/seadra_back_pic.4bpp.lz" + .incbin "graphics/pokemon/seadra/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seadra_shiny_palette:: @ 8D80368 - .incbin "graphics/pokemon/palettes/seadra_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/seadra/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_seadra_icon:: @ 8D80390 - .incbin "graphics/pokemon/icons/seadra_icon.4bpp" + .incbin "graphics/pokemon/seadra/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_seadra_footprint:: @ 8D80790 - .incbin "graphics/pokemon/footprints/seadra_footprint.1bpp" + .incbin "graphics/pokemon/seadra/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_goldeen_still_front_pic:: @ 8D807B0 - .incbin "graphics/pokemon/front_pics/goldeen_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/goldeen/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_goldeen_palette:: @ 8D80B18 - .incbin "graphics/pokemon/palettes/goldeen_palette.gbapal.lz" + .incbin "graphics/pokemon/goldeen/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_goldeen_back_pic:: @ 8D80B40 - .incbin "graphics/pokemon/back_pics/goldeen_back_pic.4bpp.lz" + .incbin "graphics/pokemon/goldeen/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_goldeen_shiny_palette:: @ 8D80EB0 - .incbin "graphics/pokemon/palettes/goldeen_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/goldeen/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_goldeen_icon:: @ 8D80ED8 - .incbin "graphics/pokemon/icons/goldeen_icon.4bpp" + .incbin "graphics/pokemon/goldeen/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_goldeen_footprint:: @ 8D812D8 - .incbin "graphics/pokemon/footprints/goldeen_footprint.1bpp" + .incbin "graphics/pokemon/goldeen/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_seaking_still_front_pic:: @ 8D812F8 - .incbin "graphics/pokemon/front_pics/seaking_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/seaking/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seaking_palette:: @ 8D8176C - .incbin "graphics/pokemon/palettes/seaking_palette.gbapal.lz" + .incbin "graphics/pokemon/seaking/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_seaking_back_pic:: @ 8D81794 - .incbin "graphics/pokemon/back_pics/seaking_back_pic.4bpp.lz" + .incbin "graphics/pokemon/seaking/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seaking_shiny_palette:: @ 8D81AE4 - .incbin "graphics/pokemon/palettes/seaking_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/seaking/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_seaking_icon:: @ 8D81B0C - .incbin "graphics/pokemon/icons/seaking_icon.4bpp" + .incbin "graphics/pokemon/seaking/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_seaking_footprint:: @ 8D81F0C - .incbin "graphics/pokemon/footprints/seaking_footprint.1bpp" + .incbin "graphics/pokemon/seaking/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_staryu_still_front_pic:: @ 8D81F2C - .incbin "graphics/pokemon/front_pics/staryu_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/staryu/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_staryu_palette:: @ 8D821DC - .incbin "graphics/pokemon/palettes/staryu_palette.gbapal.lz" + .incbin "graphics/pokemon/staryu/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_staryu_back_pic:: @ 8D82204 - .incbin "graphics/pokemon/back_pics/staryu_back_pic.4bpp.lz" + .incbin "graphics/pokemon/staryu/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_staryu_shiny_palette:: @ 8D8246C - .incbin "graphics/pokemon/palettes/staryu_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/staryu/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_staryu_icon:: @ 8D82494 - .incbin "graphics/pokemon/icons/staryu_icon.4bpp" + .incbin "graphics/pokemon/staryu/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_staryu_footprint:: @ 8D82894 - .incbin "graphics/pokemon/footprints/staryu_footprint.1bpp" + .incbin "graphics/pokemon/staryu/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_starmie_still_front_pic:: @ 8D828B4 - .incbin "graphics/pokemon/front_pics/starmie_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/starmie/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_starmie_palette:: @ 8D82C54 - .incbin "graphics/pokemon/palettes/starmie_palette.gbapal.lz" + .incbin "graphics/pokemon/starmie/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_starmie_back_pic:: @ 8D82C7C - .incbin "graphics/pokemon/back_pics/starmie_back_pic.4bpp.lz" + .incbin "graphics/pokemon/starmie/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_starmie_shiny_palette:: @ 8D82F20 - .incbin "graphics/pokemon/palettes/starmie_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/starmie/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_starmie_icon:: @ 8D82F48 - .incbin "graphics/pokemon/icons/starmie_icon.4bpp" + .incbin "graphics/pokemon/starmie/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_starmie_footprint:: @ 8D83348 - .incbin "graphics/pokemon/footprints/starmie_footprint.1bpp" + .incbin "graphics/pokemon/starmie/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_mr_mime_still_front_pic:: @ 8D83368 - .incbin "graphics/pokemon/front_pics/mr_mime_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/mr_mime/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mr_mime_palette:: @ 8D83724 - .incbin "graphics/pokemon/palettes/mr_mime_palette.gbapal.lz" + .incbin "graphics/pokemon/mr_mime/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_mr_mime_back_pic:: @ 8D8374C - .incbin "graphics/pokemon/back_pics/mr_mime_back_pic.4bpp.lz" + .incbin "graphics/pokemon/mr_mime/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mr_mime_shiny_palette:: @ 8D83A80 - .incbin "graphics/pokemon/palettes/mr_mime_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/mr_mime/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_mr_mime_icon:: @ 8D83AA8 - .incbin "graphics/pokemon/icons/mr_mime_icon.4bpp" + .incbin "graphics/pokemon/mr_mime/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_mr_mime_footprint:: @ 8D83EA8 - .incbin "graphics/pokemon/footprints/mr_mime_footprint.1bpp" + .incbin "graphics/pokemon/mr_mime/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_scyther_still_front_pic:: @ 8D83EC8 - .incbin "graphics/pokemon/front_pics/scyther_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/scyther/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_scyther_palette:: @ 8D842F0 - .incbin "graphics/pokemon/palettes/scyther_palette.gbapal.lz" + .incbin "graphics/pokemon/scyther/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_scyther_back_pic:: @ 8D84318 - .incbin "graphics/pokemon/back_pics/scyther_back_pic.4bpp.lz" + .incbin "graphics/pokemon/scyther/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_scyther_shiny_palette:: @ 8D84730 - .incbin "graphics/pokemon/palettes/scyther_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/scyther/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_scyther_icon:: @ 8D84758 - .incbin "graphics/pokemon/icons/scyther_icon.4bpp" + .incbin "graphics/pokemon/scyther/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_scyther_footprint:: @ 8D84B58 - .incbin "graphics/pokemon/footprints/scyther_footprint.1bpp" + .incbin "graphics/pokemon/scyther/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_jynx_still_front_pic:: @ 8D84B78 - .incbin "graphics/pokemon/front_pics/jynx_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/jynx/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jynx_palette:: @ 8D84F44 - .incbin "graphics/pokemon/palettes/jynx_palette.gbapal.lz" + .incbin "graphics/pokemon/jynx/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_jynx_back_pic:: @ 8D84F6C - .incbin "graphics/pokemon/back_pics/jynx_back_pic.4bpp.lz" + .incbin "graphics/pokemon/jynx/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jynx_shiny_palette:: @ 8D85258 - .incbin "graphics/pokemon/palettes/jynx_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/jynx/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_jynx_icon:: @ 8D85280 - .incbin "graphics/pokemon/icons/jynx_icon.4bpp" + .incbin "graphics/pokemon/jynx/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_jynx_footprint:: @ 8D85680 - .incbin "graphics/pokemon/footprints/jynx_footprint.1bpp" + .incbin "graphics/pokemon/jynx/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_electabuzz_still_front_pic:: @ 8D856A0 - .incbin "graphics/pokemon/front_pics/electabuzz_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/electabuzz/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_electabuzz_palette:: @ 8D85AF8 - .incbin "graphics/pokemon/palettes/electabuzz_palette.gbapal.lz" + .incbin "graphics/pokemon/electabuzz/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_electabuzz_back_pic:: @ 8D85B20 - .incbin "graphics/pokemon/back_pics/electabuzz_back_pic.4bpp.lz" + .incbin "graphics/pokemon/electabuzz/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_electabuzz_shiny_palette:: @ 8D85E30 - .incbin "graphics/pokemon/palettes/electabuzz_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/electabuzz/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_electabuzz_icon:: @ 8D85E58 - .incbin "graphics/pokemon/icons/electabuzz_icon.4bpp" + .incbin "graphics/pokemon/electabuzz/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_electabuzz_footprint:: @ 8D86258 - .incbin "graphics/pokemon/footprints/electabuzz_footprint.1bpp" + .incbin "graphics/pokemon/electabuzz/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_magmar_still_front_pic:: @ 8D86278 - .incbin "graphics/pokemon/front_pics/magmar_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/magmar/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magmar_palette:: @ 8D866A8 - .incbin "graphics/pokemon/palettes/magmar_palette.gbapal.lz" + .incbin "graphics/pokemon/magmar/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_magmar_back_pic:: @ 8D866D0 - .incbin "graphics/pokemon/back_pics/magmar_back_pic.4bpp.lz" + .incbin "graphics/pokemon/magmar/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magmar_shiny_palette:: @ 8D86A08 - .incbin "graphics/pokemon/palettes/magmar_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/magmar/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_magmar_icon:: @ 8D86A30 - .incbin "graphics/pokemon/icons/magmar_icon.4bpp" + .incbin "graphics/pokemon/magmar/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_magmar_footprint:: @ 8D86E30 - .incbin "graphics/pokemon/footprints/magmar_footprint.1bpp" + .incbin "graphics/pokemon/magmar/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_pinsir_still_front_pic:: @ 8D86E50 - .incbin "graphics/pokemon/front_pics/pinsir_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/pinsir/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pinsir_palette:: @ 8D87280 - .incbin "graphics/pokemon/palettes/pinsir_palette.gbapal.lz" + .incbin "graphics/pokemon/pinsir/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_pinsir_back_pic:: @ 8D872A4 - .incbin "graphics/pokemon/back_pics/pinsir_back_pic.4bpp.lz" + .incbin "graphics/pokemon/pinsir/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pinsir_shiny_palette:: @ 8D875F8 - .incbin "graphics/pokemon/palettes/pinsir_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/pinsir/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_pinsir_icon:: @ 8D8761C - .incbin "graphics/pokemon/icons/pinsir_icon.4bpp" + .incbin "graphics/pokemon/pinsir/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_pinsir_footprint:: @ 8D87A1C - .incbin "graphics/pokemon/footprints/pinsir_footprint.1bpp" + .incbin "graphics/pokemon/pinsir/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_tauros_still_front_pic:: @ 8D87A3C - .incbin "graphics/pokemon/front_pics/tauros_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/tauros/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tauros_palette:: @ 8D87E9C - .incbin "graphics/pokemon/palettes/tauros_palette.gbapal.lz" + .incbin "graphics/pokemon/tauros/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_tauros_back_pic:: @ 8D87EC4 - .incbin "graphics/pokemon/back_pics/tauros_back_pic.4bpp.lz" + .incbin "graphics/pokemon/tauros/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tauros_shiny_palette:: @ 8D88178 - .incbin "graphics/pokemon/palettes/tauros_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/tauros/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_tauros_icon:: @ 8D881A0 - .incbin "graphics/pokemon/icons/tauros_icon.4bpp" + .incbin "graphics/pokemon/tauros/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_tauros_footprint:: @ 8D885A0 - .incbin "graphics/pokemon/footprints/tauros_footprint.1bpp" + .incbin "graphics/pokemon/tauros/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_magikarp_still_front_pic:: @ 8D885C0 - .incbin "graphics/pokemon/front_pics/magikarp_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/magikarp/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magikarp_palette:: @ 8D88908 - .incbin "graphics/pokemon/palettes/magikarp_palette.gbapal.lz" + .incbin "graphics/pokemon/magikarp/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_magikarp_back_pic:: @ 8D88930 - .incbin "graphics/pokemon/back_pics/magikarp_back_pic.4bpp.lz" + .incbin "graphics/pokemon/magikarp/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magikarp_shiny_palette:: @ 8D88C60 - .incbin "graphics/pokemon/palettes/magikarp_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/magikarp/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_magikarp_icon:: @ 8D88C88 - .incbin "graphics/pokemon/icons/magikarp_icon.4bpp" + .incbin "graphics/pokemon/magikarp/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_magikarp_footprint:: @ 8D89088 - .incbin "graphics/pokemon/footprints/magikarp_footprint.1bpp" + .incbin "graphics/pokemon/magikarp/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_gyarados_still_front_pic:: @ 8D890A8 - .incbin "graphics/pokemon/front_pics/gyarados_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/gyarados/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gyarados_palette:: @ 8D8964C - .incbin "graphics/pokemon/palettes/gyarados_palette.gbapal.lz" + .incbin "graphics/pokemon/gyarados/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_gyarados_back_pic:: @ 8D89674 - .incbin "graphics/pokemon/back_pics/gyarados_back_pic.4bpp.lz" + .incbin "graphics/pokemon/gyarados/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gyarados_shiny_palette:: @ 8D89B2C - .incbin "graphics/pokemon/palettes/gyarados_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/gyarados/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_gyarados_icon:: @ 8D89B54 - .incbin "graphics/pokemon/icons/gyarados_icon.4bpp" + .incbin "graphics/pokemon/gyarados/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_gyarados_footprint:: @ 8D89F54 - .incbin "graphics/pokemon/footprints/gyarados_footprint.1bpp" + .incbin "graphics/pokemon/gyarados/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_lapras_still_front_pic:: @ 8D89F74 - .incbin "graphics/pokemon/front_pics/lapras_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/lapras/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lapras_palette:: @ 8D8A354 - .incbin "graphics/pokemon/palettes/lapras_palette.gbapal.lz" + .incbin "graphics/pokemon/lapras/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_lapras_back_pic:: @ 8D8A37C - .incbin "graphics/pokemon/back_pics/lapras_back_pic.4bpp.lz" + .incbin "graphics/pokemon/lapras/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lapras_shiny_palette:: @ 8D8A6C0 - .incbin "graphics/pokemon/palettes/lapras_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/lapras/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_lapras_icon:: @ 8D8A6E8 - .incbin "graphics/pokemon/icons/lapras_icon.4bpp" + .incbin "graphics/pokemon/lapras/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_lapras_footprint:: @ 8D8AAE8 - .incbin "graphics/pokemon/footprints/lapras_footprint.1bpp" + .incbin "graphics/pokemon/lapras/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ditto_still_front_pic:: @ 8D8AB08 - .incbin "graphics/pokemon/front_pics/ditto_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ditto/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ditto_palette:: @ 8D8ACF8 - .incbin "graphics/pokemon/palettes/ditto_palette.gbapal.lz" + .incbin "graphics/pokemon/ditto/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ditto_back_pic:: @ 8D8AD18 - .incbin "graphics/pokemon/back_pics/ditto_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ditto/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ditto_shiny_palette:: @ 8D8AF18 - .incbin "graphics/pokemon/palettes/ditto_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ditto/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ditto_icon:: @ 8D8AF38 - .incbin "graphics/pokemon/icons/ditto_icon.4bpp" + .incbin "graphics/pokemon/ditto/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ditto_footprint:: @ 8D8B338 - .incbin "graphics/pokemon/footprints/ditto_footprint.1bpp" + .incbin "graphics/pokemon/ditto/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_eevee_still_front_pic:: @ 8D8B358 - .incbin "graphics/pokemon/front_pics/eevee_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/eevee/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_eevee_palette:: @ 8D8B644 - .incbin "graphics/pokemon/palettes/eevee_palette.gbapal.lz" + .incbin "graphics/pokemon/eevee/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_eevee_back_pic:: @ 8D8B66C - .incbin "graphics/pokemon/back_pics/eevee_back_pic.4bpp.lz" + .incbin "graphics/pokemon/eevee/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_eevee_shiny_palette:: @ 8D8B994 - .incbin "graphics/pokemon/palettes/eevee_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/eevee/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_eevee_icon:: @ 8D8B9BC - .incbin "graphics/pokemon/icons/eevee_icon.4bpp" + .incbin "graphics/pokemon/eevee/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_eevee_footprint:: @ 8D8BDBC - .incbin "graphics/pokemon/footprints/eevee_footprint.1bpp" + .incbin "graphics/pokemon/eevee/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_vaporeon_still_front_pic:: @ 8D8BDDC - .incbin "graphics/pokemon/front_pics/vaporeon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/vaporeon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vaporeon_palette:: @ 8D8C170 - .incbin "graphics/pokemon/palettes/vaporeon_palette.gbapal.lz" + .incbin "graphics/pokemon/vaporeon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_vaporeon_back_pic:: @ 8D8C198 - .incbin "graphics/pokemon/back_pics/vaporeon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/vaporeon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vaporeon_shiny_palette:: @ 8D8C460 - .incbin "graphics/pokemon/palettes/vaporeon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/vaporeon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_vaporeon_icon:: @ 8D8C488 - .incbin "graphics/pokemon/icons/vaporeon_icon.4bpp" + .incbin "graphics/pokemon/vaporeon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_vaporeon_footprint:: @ 8D8C888 - .incbin "graphics/pokemon/footprints/vaporeon_footprint.1bpp" + .incbin "graphics/pokemon/vaporeon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_jolteon_still_front_pic:: @ 8D8C8A8 - .incbin "graphics/pokemon/front_pics/jolteon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/jolteon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jolteon_palette:: @ 8D8CBF8 - .incbin "graphics/pokemon/palettes/jolteon_palette.gbapal.lz" + .incbin "graphics/pokemon/jolteon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_jolteon_back_pic:: @ 8D8CC20 - .incbin "graphics/pokemon/back_pics/jolteon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/jolteon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jolteon_shiny_palette:: @ 8D8CFCC - .incbin "graphics/pokemon/palettes/jolteon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/jolteon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_jolteon_icon:: @ 8D8CFF4 - .incbin "graphics/pokemon/icons/jolteon_icon.4bpp" + .incbin "graphics/pokemon/jolteon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_jolteon_footprint:: @ 8D8D3F4 - .incbin "graphics/pokemon/footprints/jolteon_footprint.1bpp" + .incbin "graphics/pokemon/jolteon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_flareon_still_front_pic:: @ 8D8D414 - .incbin "graphics/pokemon/front_pics/flareon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/flareon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_flareon_palette:: @ 8D8D798 - .incbin "graphics/pokemon/palettes/flareon_palette.gbapal.lz" + .incbin "graphics/pokemon/flareon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_flareon_back_pic:: @ 8D8D7C0 - .incbin "graphics/pokemon/back_pics/flareon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/flareon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_flareon_shiny_palette:: @ 8D8DB50 - .incbin "graphics/pokemon/palettes/flareon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/flareon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_flareon_icon:: @ 8D8DB78 - .incbin "graphics/pokemon/icons/flareon_icon.4bpp" + .incbin "graphics/pokemon/flareon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_flareon_footprint:: @ 8D8DF78 - .incbin "graphics/pokemon/footprints/flareon_footprint.1bpp" + .incbin "graphics/pokemon/flareon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_porygon_still_front_pic:: @ 8D8DF98 - .incbin "graphics/pokemon/front_pics/porygon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/porygon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_porygon_palette:: @ 8D8E250 - .incbin "graphics/pokemon/palettes/porygon_palette.gbapal.lz" + .incbin "graphics/pokemon/porygon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_porygon_back_pic:: @ 8D8E274 - .incbin "graphics/pokemon/back_pics/porygon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/porygon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_porygon_shiny_palette:: @ 8D8E52C - .incbin "graphics/pokemon/palettes/porygon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/porygon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_porygon_icon:: @ 8D8E550 - .incbin "graphics/pokemon/icons/porygon_icon.4bpp" + .incbin "graphics/pokemon/porygon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_porygon_footprint:: @ 8D8E950 - .incbin "graphics/pokemon/footprints/porygon_footprint.1bpp" + .incbin "graphics/pokemon/porygon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_omanyte_still_front_pic:: @ 8D8E970 - .incbin "graphics/pokemon/front_pics/omanyte_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/omanyte/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_omanyte_palette:: @ 8D8EC00 - .incbin "graphics/pokemon/palettes/omanyte_palette.gbapal.lz" + .incbin "graphics/pokemon/omanyte/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_omanyte_back_pic:: @ 8D8EC28 - .incbin "graphics/pokemon/back_pics/omanyte_back_pic.4bpp.lz" + .incbin "graphics/pokemon/omanyte/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_omanyte_shiny_palette:: @ 8D8EF74 - .incbin "graphics/pokemon/palettes/omanyte_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/omanyte/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_omanyte_icon:: @ 8D8EF9C - .incbin "graphics/pokemon/icons/omanyte_icon.4bpp" + .incbin "graphics/pokemon/omanyte/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_omanyte_footprint:: @ 8D8F39C - .incbin "graphics/pokemon/footprints/omanyte_footprint.1bpp" + .incbin "graphics/pokemon/omanyte/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_omastar_still_front_pic:: @ 8D8F3BC - .incbin "graphics/pokemon/front_pics/omastar_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/omastar/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_omastar_palette:: @ 8D8F77C - .incbin "graphics/pokemon/palettes/omastar_palette.gbapal.lz" + .incbin "graphics/pokemon/omastar/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_omastar_back_pic:: @ 8D8F7A4 - .incbin "graphics/pokemon/back_pics/omastar_back_pic.4bpp.lz" + .incbin "graphics/pokemon/omastar/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_omastar_shiny_palette:: @ 8D8FAE4 - .incbin "graphics/pokemon/palettes/omastar_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/omastar/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_omastar_icon:: @ 8D8FB0C - .incbin "graphics/pokemon/icons/omastar_icon.4bpp" + .incbin "graphics/pokemon/omastar/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_omastar_footprint:: @ 8D8FF0C - .incbin "graphics/pokemon/footprints/omastar_footprint.1bpp" + .incbin "graphics/pokemon/omastar/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kabuto_still_front_pic:: @ 8D8FF2C - .incbin "graphics/pokemon/front_pics/kabuto_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kabuto/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kabuto_palette:: @ 8D90154 - .incbin "graphics/pokemon/palettes/kabuto_palette.gbapal.lz" + .incbin "graphics/pokemon/kabuto/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kabuto_back_pic:: @ 8D9017C - .incbin "graphics/pokemon/back_pics/kabuto_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kabuto/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kabuto_shiny_palette:: @ 8D90414 - .incbin "graphics/pokemon/palettes/kabuto_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kabuto/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kabuto_icon:: @ 8D9043C - .incbin "graphics/pokemon/icons/kabuto_icon.4bpp" + .incbin "graphics/pokemon/kabuto/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kabuto_footprint:: @ 8D9083C - .incbin "graphics/pokemon/footprints/kabuto_footprint.1bpp" + .incbin "graphics/pokemon/kabuto/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kabutops_still_front_pic:: @ 8D9085C - .incbin "graphics/pokemon/front_pics/kabutops_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kabutops/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kabutops_palette:: @ 8D90C6C - .incbin "graphics/pokemon/palettes/kabutops_palette.gbapal.lz" + .incbin "graphics/pokemon/kabutops/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kabutops_back_pic:: @ 8D90C90 - .incbin "graphics/pokemon/back_pics/kabutops_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kabutops/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kabutops_shiny_palette:: @ 8D91034 - .incbin "graphics/pokemon/palettes/kabutops_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kabutops/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kabutops_icon:: @ 8D91058 - .incbin "graphics/pokemon/icons/kabutops_icon.4bpp" + .incbin "graphics/pokemon/kabutops/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kabutops_footprint:: @ 8D91458 - .incbin "graphics/pokemon/footprints/kabutops_footprint.1bpp" + .incbin "graphics/pokemon/kabutops/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_aerodactyl_still_front_pic:: @ 8D91478 - .incbin "graphics/pokemon/front_pics/aerodactyl_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/aerodactyl/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_aerodactyl_palette:: @ 8D918C8 - .incbin "graphics/pokemon/palettes/aerodactyl_palette.gbapal.lz" + .incbin "graphics/pokemon/aerodactyl/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_aerodactyl_back_pic:: @ 8D918F0 - .incbin "graphics/pokemon/back_pics/aerodactyl_back_pic.4bpp.lz" + .incbin "graphics/pokemon/aerodactyl/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_aerodactyl_shiny_palette:: @ 8D91BF4 - .incbin "graphics/pokemon/palettes/aerodactyl_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/aerodactyl/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_aerodactyl_icon:: @ 8D91C1C - .incbin "graphics/pokemon/icons/aerodactyl_icon.4bpp" + .incbin "graphics/pokemon/aerodactyl/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_aerodactyl_footprint:: @ 8D9201C - .incbin "graphics/pokemon/footprints/aerodactyl_footprint.1bpp" + .incbin "graphics/pokemon/aerodactyl/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_snorlax_still_front_pic:: @ 8D9203C - .incbin "graphics/pokemon/front_pics/snorlax_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/snorlax/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_snorlax_palette:: @ 8D92410 - .incbin "graphics/pokemon/palettes/snorlax_palette.gbapal.lz" + .incbin "graphics/pokemon/snorlax/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_snorlax_back_pic:: @ 8D92438 - .incbin "graphics/pokemon/back_pics/snorlax_back_pic.4bpp.lz" + .incbin "graphics/pokemon/snorlax/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_snorlax_shiny_palette:: @ 8D92654 - .incbin "graphics/pokemon/palettes/snorlax_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/snorlax/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_snorlax_icon:: @ 8D9267C - .incbin "graphics/pokemon/icons/snorlax_icon.4bpp" + .incbin "graphics/pokemon/snorlax/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_snorlax_footprint:: @ 8D92A7C - .incbin "graphics/pokemon/footprints/snorlax_footprint.1bpp" + .incbin "graphics/pokemon/snorlax/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_articuno_still_front_pic:: @ 8D92A9C - .incbin "graphics/pokemon/front_pics/articuno_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/articuno/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_articuno_palette:: @ 8D92F94 - .incbin "graphics/pokemon/palettes/articuno_palette.gbapal.lz" + .incbin "graphics/pokemon/articuno/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_articuno_back_pic:: @ 8D92FBC - .incbin "graphics/pokemon/back_pics/articuno_back_pic.4bpp.lz" + .incbin "graphics/pokemon/articuno/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_articuno_shiny_palette:: @ 8D93218 - .incbin "graphics/pokemon/palettes/articuno_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/articuno/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_articuno_icon:: @ 8D93240 - .incbin "graphics/pokemon/icons/articuno_icon.4bpp" + .incbin "graphics/pokemon/articuno/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_articuno_footprint:: @ 8D93640 - .incbin "graphics/pokemon/footprints/articuno_footprint.1bpp" + .incbin "graphics/pokemon/articuno/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_zapdos_still_front_pic:: @ 8D93660 - .incbin "graphics/pokemon/front_pics/zapdos_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/zapdos/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_zapdos_palette:: @ 8D93AB0 - .incbin "graphics/pokemon/palettes/zapdos_palette.gbapal.lz" + .incbin "graphics/pokemon/zapdos/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_zapdos_back_pic:: @ 8D93AD8 - .incbin "graphics/pokemon/back_pics/zapdos_back_pic.4bpp.lz" + .incbin "graphics/pokemon/zapdos/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_zapdos_shiny_palette:: @ 8D93E14 - .incbin "graphics/pokemon/palettes/zapdos_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/zapdos/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_zapdos_icon:: @ 8D93E3C - .incbin "graphics/pokemon/icons/zapdos_icon.4bpp" + .incbin "graphics/pokemon/zapdos/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_zapdos_footprint:: @ 8D9423C - .incbin "graphics/pokemon/footprints/zapdos_footprint.1bpp" + .incbin "graphics/pokemon/zapdos/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_moltres_still_front_pic:: @ 8D9425C - .incbin "graphics/pokemon/front_pics/moltres_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/moltres/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_moltres_palette:: @ 8D94728 - .incbin "graphics/pokemon/palettes/moltres_palette.gbapal.lz" + .incbin "graphics/pokemon/moltres/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_moltres_back_pic:: @ 8D94750 - .incbin "graphics/pokemon/back_pics/moltres_back_pic.4bpp.lz" + .incbin "graphics/pokemon/moltres/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_moltres_shiny_palette:: @ 8D94A8C - .incbin "graphics/pokemon/palettes/moltres_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/moltres/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_moltres_icon:: @ 8D94AB4 - .incbin "graphics/pokemon/icons/moltres_icon.4bpp" + .incbin "graphics/pokemon/moltres/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_moltres_footprint:: @ 8D94EB4 - .incbin "graphics/pokemon/footprints/moltres_footprint.1bpp" + .incbin "graphics/pokemon/moltres/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_dratini_still_front_pic:: @ 8D94ED4 - .incbin "graphics/pokemon/front_pics/dratini_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/dratini/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dratini_palette:: @ 8D95190 - .incbin "graphics/pokemon/palettes/dratini_palette.gbapal.lz" + .incbin "graphics/pokemon/dratini/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_dratini_back_pic:: @ 8D951B4 - .incbin "graphics/pokemon/back_pics/dratini_back_pic.4bpp.lz" + .incbin "graphics/pokemon/dratini/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dratini_shiny_palette:: @ 8D95444 - .incbin "graphics/pokemon/palettes/dratini_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/dratini/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_dratini_icon:: @ 8D95468 - .incbin "graphics/pokemon/icons/dratini_icon.4bpp" + .incbin "graphics/pokemon/dratini/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_dratini_footprint:: @ 8D95868 - .incbin "graphics/pokemon/footprints/dratini_footprint.1bpp" + .incbin "graphics/pokemon/dratini/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_dragonair_still_front_pic:: @ 8D95888 - .incbin "graphics/pokemon/front_pics/dragonair_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/dragonair/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dragonair_palette:: @ 8D95C20 - .incbin "graphics/pokemon/palettes/dragonair_palette.gbapal.lz" + .incbin "graphics/pokemon/dragonair/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_dragonair_back_pic:: @ 8D95C48 - .incbin "graphics/pokemon/back_pics/dragonair_back_pic.4bpp.lz" + .incbin "graphics/pokemon/dragonair/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dragonair_shiny_palette:: @ 8D95F58 - .incbin "graphics/pokemon/palettes/dragonair_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/dragonair/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_dragonair_icon:: @ 8D95F80 - .incbin "graphics/pokemon/icons/dragonair_icon.4bpp" + .incbin "graphics/pokemon/dragonair/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_dragonair_footprint:: @ 8D96380 - .incbin "graphics/pokemon/footprints/dragonair_footprint.1bpp" + .incbin "graphics/pokemon/dragonair/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_dragonite_still_front_pic:: @ 8D963A0 - .incbin "graphics/pokemon/front_pics/dragonite_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/dragonite/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dragonite_palette:: @ 8D968F0 - .incbin "graphics/pokemon/palettes/dragonite_palette.gbapal.lz" + .incbin "graphics/pokemon/dragonite/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_dragonite_back_pic:: @ 8D96918 - .incbin "graphics/pokemon/back_pics/dragonite_back_pic.4bpp.lz" + .incbin "graphics/pokemon/dragonite/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dragonite_shiny_palette:: @ 8D96C10 - .incbin "graphics/pokemon/palettes/dragonite_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/dragonite/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_dragonite_icon:: @ 8D96C38 - .incbin "graphics/pokemon/icons/dragonite_icon.4bpp" + .incbin "graphics/pokemon/dragonite/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_dragonite_footprint:: @ 8D97038 - .incbin "graphics/pokemon/footprints/dragonite_footprint.1bpp" + .incbin "graphics/pokemon/dragonite/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_mewtwo_still_front_pic:: @ 8D97058 - .incbin "graphics/pokemon/front_pics/mewtwo_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/mewtwo/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mewtwo_palette:: @ 8D97494 - .incbin "graphics/pokemon/palettes/mewtwo_palette.gbapal.lz" + .incbin "graphics/pokemon/mewtwo/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_mewtwo_back_pic:: @ 8D974B8 - .incbin "graphics/pokemon/back_pics/mewtwo_back_pic.4bpp.lz" + .incbin "graphics/pokemon/mewtwo/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mewtwo_shiny_palette:: @ 8D97884 - .incbin "graphics/pokemon/palettes/mewtwo_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/mewtwo/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_mewtwo_icon:: @ 8D978A8 - .incbin "graphics/pokemon/icons/mewtwo_icon.4bpp" + .incbin "graphics/pokemon/mewtwo/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_mewtwo_footprint:: @ 8D97CA8 - .incbin "graphics/pokemon/footprints/mewtwo_footprint.1bpp" + .incbin "graphics/pokemon/mewtwo/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_mew_still_front_pic:: @ 8D97CC8 - .incbin "graphics/pokemon/front_pics/mew_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/mew/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mew_palette:: @ 8D97F88 - .incbin "graphics/pokemon/palettes/mew_palette.gbapal.lz" + .incbin "graphics/pokemon/mew/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_mew_back_pic:: @ 8D97FAC - .incbin "graphics/pokemon/back_pics/mew_back_pic.4bpp.lz" + .incbin "graphics/pokemon/mew/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mew_shiny_palette:: @ 8D982FC - .incbin "graphics/pokemon/palettes/mew_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/mew/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_mew_icon:: @ 8D98320 - .incbin "graphics/pokemon/icons/mew_icon.4bpp" + .incbin "graphics/pokemon/mew/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_mew_footprint:: @ 8D98720 - .incbin "graphics/pokemon/footprints/mew_footprint.1bpp" + .incbin "graphics/pokemon/mew/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_chikorita_still_front_pic:: @ 8D98740 - .incbin "graphics/pokemon/front_pics/chikorita_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/chikorita/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_chikorita_palette:: @ 8D989A8 - .incbin "graphics/pokemon/palettes/chikorita_palette.gbapal.lz" + .incbin "graphics/pokemon/chikorita/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_chikorita_back_pic:: @ 8D989D0 - .incbin "graphics/pokemon/back_pics/chikorita_back_pic.4bpp.lz" + .incbin "graphics/pokemon/chikorita/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_chikorita_shiny_palette:: @ 8D98C94 - .incbin "graphics/pokemon/palettes/chikorita_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/chikorita/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_chikorita_icon:: @ 8D98CBC - .incbin "graphics/pokemon/icons/chikorita_icon.4bpp" + .incbin "graphics/pokemon/chikorita/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_chikorita_footprint:: @ 8D990BC - .incbin "graphics/pokemon/footprints/chikorita_footprint.1bpp" + .incbin "graphics/pokemon/chikorita/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_bayleef_still_front_pic:: @ 8D990DC - .incbin "graphics/pokemon/front_pics/bayleef_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/bayleef/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bayleef_palette:: @ 8D994B0 - .incbin "graphics/pokemon/palettes/bayleef_palette.gbapal.lz" + .incbin "graphics/pokemon/bayleef/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_bayleef_back_pic:: @ 8D994D8 - .incbin "graphics/pokemon/back_pics/bayleef_back_pic.4bpp.lz" + .incbin "graphics/pokemon/bayleef/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bayleef_shiny_palette:: @ 8D99868 - .incbin "graphics/pokemon/palettes/bayleef_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/bayleef/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_bayleef_icon:: @ 8D99890 - .incbin "graphics/pokemon/icons/bayleef_icon.4bpp" + .incbin "graphics/pokemon/bayleef/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_bayleef_footprint:: @ 8D99C90 - .incbin "graphics/pokemon/footprints/bayleef_footprint.1bpp" + .incbin "graphics/pokemon/bayleef/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_meganium_still_front_pic:: @ 8D99CB0 - .incbin "graphics/pokemon/front_pics/meganium_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/meganium/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_meganium_palette:: @ 8D9A20C - .incbin "graphics/pokemon/palettes/meganium_palette.gbapal.lz" + .incbin "graphics/pokemon/meganium/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_meganium_back_pic:: @ 8D9A234 - .incbin "graphics/pokemon/back_pics/meganium_back_pic.4bpp.lz" + .incbin "graphics/pokemon/meganium/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_meganium_shiny_palette:: @ 8D9A584 - .incbin "graphics/pokemon/palettes/meganium_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/meganium/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_meganium_icon:: @ 8D9A5AC - .incbin "graphics/pokemon/icons/meganium_icon.4bpp" + .incbin "graphics/pokemon/meganium/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_meganium_footprint:: @ 8D9A9AC - .incbin "graphics/pokemon/footprints/meganium_footprint.1bpp" + .incbin "graphics/pokemon/meganium/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_cyndaquil_still_front_pic:: @ 8D9A9CC - .incbin "graphics/pokemon/front_pics/cyndaquil_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/cyndaquil/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cyndaquil_palette:: @ 8D9AC58 - .incbin "graphics/pokemon/palettes/cyndaquil_palette.gbapal.lz" + .incbin "graphics/pokemon/cyndaquil/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_cyndaquil_back_pic:: @ 8D9AC80 - .incbin "graphics/pokemon/back_pics/cyndaquil_back_pic.4bpp.lz" + .incbin "graphics/pokemon/cyndaquil/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cyndaquil_shiny_palette:: @ 8D9AFAC - .incbin "graphics/pokemon/palettes/cyndaquil_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/cyndaquil/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_cyndaquil_icon:: @ 8D9AFD4 - .incbin "graphics/pokemon/icons/cyndaquil_icon.4bpp" + .incbin "graphics/pokemon/cyndaquil/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_cyndaquil_footprint:: @ 8D9B3D4 - .incbin "graphics/pokemon/footprints/cyndaquil_footprint.1bpp" + .incbin "graphics/pokemon/cyndaquil/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_quilava_still_front_pic:: @ 8D9B3F4 - .incbin "graphics/pokemon/front_pics/quilava_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/quilava/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_quilava_palette:: @ 8D9B710 - .incbin "graphics/pokemon/palettes/quilava_palette.gbapal.lz" + .incbin "graphics/pokemon/quilava/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_quilava_back_pic:: @ 8D9B738 - .incbin "graphics/pokemon/back_pics/quilava_back_pic.4bpp.lz" + .incbin "graphics/pokemon/quilava/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_quilava_shiny_palette:: @ 8D9BAAC - .incbin "graphics/pokemon/palettes/quilava_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/quilava/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_quilava_icon:: @ 8D9BAD4 - .incbin "graphics/pokemon/icons/quilava_icon.4bpp" + .incbin "graphics/pokemon/quilava/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_quilava_footprint:: @ 8D9BED4 - .incbin "graphics/pokemon/footprints/quilava_footprint.1bpp" + .incbin "graphics/pokemon/quilava/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_typhlosion_still_front_pic:: @ 8D9BEF4 - .incbin "graphics/pokemon/front_pics/typhlosion_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/typhlosion/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_typhlosion_palette:: @ 8D9C31C - .incbin "graphics/pokemon/palettes/typhlosion_palette.gbapal.lz" + .incbin "graphics/pokemon/typhlosion/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_typhlosion_back_pic:: @ 8D9C344 - .incbin "graphics/pokemon/back_pics/typhlosion_back_pic.4bpp.lz" + .incbin "graphics/pokemon/typhlosion/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_typhlosion_shiny_palette:: @ 8D9C748 - .incbin "graphics/pokemon/palettes/typhlosion_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/typhlosion/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_typhlosion_icon:: @ 8D9C770 - .incbin "graphics/pokemon/icons/typhlosion_icon.4bpp" + .incbin "graphics/pokemon/typhlosion/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_typhlosion_footprint:: @ 8D9CB70 - .incbin "graphics/pokemon/footprints/typhlosion_footprint.1bpp" + .incbin "graphics/pokemon/typhlosion/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_totodile_still_front_pic:: @ 8D9CB90 - .incbin "graphics/pokemon/front_pics/totodile_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/totodile/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_totodile_palette:: @ 8D9CE34 - .incbin "graphics/pokemon/palettes/totodile_palette.gbapal.lz" + .incbin "graphics/pokemon/totodile/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_totodile_back_pic:: @ 8D9CE5C - .incbin "graphics/pokemon/back_pics/totodile_back_pic.4bpp.lz" + .incbin "graphics/pokemon/totodile/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_totodile_shiny_palette:: @ 8D9D13C - .incbin "graphics/pokemon/palettes/totodile_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/totodile/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_totodile_icon:: @ 8D9D164 - .incbin "graphics/pokemon/icons/totodile_icon.4bpp" + .incbin "graphics/pokemon/totodile/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_totodile_footprint:: @ 8D9D564 - .incbin "graphics/pokemon/footprints/totodile_footprint.1bpp" + .incbin "graphics/pokemon/totodile/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_croconaw_still_front_pic:: @ 8D9D584 - .incbin "graphics/pokemon/front_pics/croconaw_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/croconaw/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_croconaw_palette:: @ 8D9D8EC - .incbin "graphics/pokemon/palettes/croconaw_palette.gbapal.lz" + .incbin "graphics/pokemon/croconaw/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_croconaw_back_pic:: @ 8D9D914 - .incbin "graphics/pokemon/back_pics/croconaw_back_pic.4bpp.lz" + .incbin "graphics/pokemon/croconaw/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_croconaw_shiny_palette:: @ 8D9DC64 - .incbin "graphics/pokemon/palettes/croconaw_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/croconaw/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_croconaw_icon:: @ 8D9DC8C - .incbin "graphics/pokemon/icons/croconaw_icon.4bpp" + .incbin "graphics/pokemon/croconaw/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_croconaw_footprint:: @ 8D9E08C - .incbin "graphics/pokemon/footprints/croconaw_footprint.1bpp" + .incbin "graphics/pokemon/croconaw/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_feraligatr_still_front_pic:: @ 8D9E0AC - .incbin "graphics/pokemon/front_pics/feraligatr_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/feraligatr/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_feraligatr_palette:: @ 8D9E618 - .incbin "graphics/pokemon/palettes/feraligatr_palette.gbapal.lz" + .incbin "graphics/pokemon/feraligatr/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_feraligatr_back_pic:: @ 8D9E640 - .incbin "graphics/pokemon/back_pics/feraligatr_back_pic.4bpp.lz" + .incbin "graphics/pokemon/feraligatr/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_feraligatr_shiny_palette:: @ 8D9EB0C - .incbin "graphics/pokemon/palettes/feraligatr_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/feraligatr/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_feraligatr_icon:: @ 8D9EB34 - .incbin "graphics/pokemon/icons/feraligatr_icon.4bpp" + .incbin "graphics/pokemon/feraligatr/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_feraligatr_footprint:: @ 8D9EF34 - .incbin "graphics/pokemon/footprints/feraligatr_footprint.1bpp" + .incbin "graphics/pokemon/feraligatr/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sentret_still_front_pic:: @ 8D9EF54 - .incbin "graphics/pokemon/front_pics/sentret_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sentret/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sentret_palette:: @ 8D9F230 - .incbin "graphics/pokemon/palettes/sentret_palette.gbapal.lz" + .incbin "graphics/pokemon/sentret/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sentret_back_pic:: @ 8D9F258 - .incbin "graphics/pokemon/back_pics/sentret_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sentret/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sentret_shiny_palette:: @ 8D9F4FC - .incbin "graphics/pokemon/palettes/sentret_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sentret/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sentret_icon:: @ 8D9F524 - .incbin "graphics/pokemon/icons/sentret_icon.4bpp" + .incbin "graphics/pokemon/sentret/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sentret_footprint:: @ 8D9F924 - .incbin "graphics/pokemon/footprints/sentret_footprint.1bpp" + .incbin "graphics/pokemon/sentret/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_furret_still_front_pic:: @ 8D9F944 - .incbin "graphics/pokemon/front_pics/furret_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/furret/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_furret_palette:: @ 8D9FC78 - .incbin "graphics/pokemon/palettes/furret_palette.gbapal.lz" + .incbin "graphics/pokemon/furret/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_furret_back_pic:: @ 8D9FCA0 - .incbin "graphics/pokemon/back_pics/furret_back_pic.4bpp.lz" + .incbin "graphics/pokemon/furret/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_furret_shiny_palette:: @ 8D9FFC8 - .incbin "graphics/pokemon/palettes/furret_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/furret/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_furret_icon:: @ 8D9FFF0 - .incbin "graphics/pokemon/icons/furret_icon.4bpp" + .incbin "graphics/pokemon/furret/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_furret_footprint:: @ 8DA03F0 - .incbin "graphics/pokemon/footprints/furret_footprint.1bpp" + .incbin "graphics/pokemon/furret/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_hoothoot_still_front_pic:: @ 8DA0410 - .incbin "graphics/pokemon/front_pics/hoothoot_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/hoothoot/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hoothoot_palette:: @ 8DA0694 - .incbin "graphics/pokemon/palettes/hoothoot_palette.gbapal.lz" + .incbin "graphics/pokemon/hoothoot/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_hoothoot_back_pic:: @ 8DA06BC - .incbin "graphics/pokemon/back_pics/hoothoot_back_pic.4bpp.lz" + .incbin "graphics/pokemon/hoothoot/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hoothoot_shiny_palette:: @ 8DA09C4 - .incbin "graphics/pokemon/palettes/hoothoot_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/hoothoot/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_hoothoot_icon:: @ 8DA09EC - .incbin "graphics/pokemon/icons/hoothoot_icon.4bpp" + .incbin "graphics/pokemon/hoothoot/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_hoothoot_footprint:: @ 8DA0DEC - .incbin "graphics/pokemon/footprints/hoothoot_footprint.1bpp" + .incbin "graphics/pokemon/hoothoot/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_noctowl_still_front_pic:: @ 8DA0E0C - .incbin "graphics/pokemon/front_pics/noctowl_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/noctowl/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_noctowl_palette:: @ 8DA1160 - .incbin "graphics/pokemon/palettes/noctowl_palette.gbapal.lz" + .incbin "graphics/pokemon/noctowl/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_noctowl_back_pic:: @ 8DA1188 - .incbin "graphics/pokemon/back_pics/noctowl_back_pic.4bpp.lz" + .incbin "graphics/pokemon/noctowl/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_noctowl_shiny_palette:: @ 8DA14E4 - .incbin "graphics/pokemon/palettes/noctowl_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/noctowl/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_noctowl_icon:: @ 8DA150C - .incbin "graphics/pokemon/icons/noctowl_icon.4bpp" + .incbin "graphics/pokemon/noctowl/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_noctowl_footprint:: @ 8DA190C - .incbin "graphics/pokemon/footprints/noctowl_footprint.1bpp" + .incbin "graphics/pokemon/noctowl/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ledyba_still_front_pic:: @ 8DA192C - .incbin "graphics/pokemon/front_pics/ledyba_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ledyba/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ledyba_palette:: @ 8DA1C20 - .incbin "graphics/pokemon/palettes/ledyba_palette.gbapal.lz" + .incbin "graphics/pokemon/ledyba/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ledyba_back_pic:: @ 8DA1C48 - .incbin "graphics/pokemon/back_pics/ledyba_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ledyba/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ledyba_shiny_palette:: @ 8DA1F78 - .incbin "graphics/pokemon/palettes/ledyba_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ledyba/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ledyba_icon:: @ 8DA1FA0 - .incbin "graphics/pokemon/icons/ledyba_icon.4bpp" + .incbin "graphics/pokemon/ledyba/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ledyba_footprint:: @ 8DA23A0 - .incbin "graphics/pokemon/footprints/ledyba_footprint.1bpp" + .incbin "graphics/pokemon/ledyba/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ledian_still_front_pic:: @ 8DA23C0 - .incbin "graphics/pokemon/front_pics/ledian_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ledian/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ledian_palette:: @ 8DA2748 - .incbin "graphics/pokemon/palettes/ledian_palette.gbapal.lz" + .incbin "graphics/pokemon/ledian/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ledian_back_pic:: @ 8DA2770 - .incbin "graphics/pokemon/back_pics/ledian_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ledian/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ledian_shiny_palette:: @ 8DA2AC8 - .incbin "graphics/pokemon/palettes/ledian_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ledian/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ledian_icon:: @ 8DA2AF0 - .incbin "graphics/pokemon/icons/ledian_icon.4bpp" + .incbin "graphics/pokemon/ledian/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ledian_footprint:: @ 8DA2EF0 - .incbin "graphics/pokemon/footprints/ledian_footprint.1bpp" + .incbin "graphics/pokemon/ledian/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_spinarak_still_front_pic:: @ 8DA2F10 - .incbin "graphics/pokemon/front_pics/spinarak_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/spinarak/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spinarak_palette:: @ 8DA3184 - .incbin "graphics/pokemon/palettes/spinarak_palette.gbapal.lz" + .incbin "graphics/pokemon/spinarak/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_spinarak_back_pic:: @ 8DA31AC - .incbin "graphics/pokemon/back_pics/spinarak_back_pic.4bpp.lz" + .incbin "graphics/pokemon/spinarak/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spinarak_shiny_palette:: @ 8DA3410 - .incbin "graphics/pokemon/palettes/spinarak_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/spinarak/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_spinarak_icon:: @ 8DA3438 - .incbin "graphics/pokemon/icons/spinarak_icon.4bpp" + .incbin "graphics/pokemon/spinarak/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_spinarak_footprint:: @ 8DA3838 - .incbin "graphics/pokemon/footprints/spinarak_footprint.1bpp" + .incbin "graphics/pokemon/spinarak/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ariados_still_front_pic:: @ 8DA3858 - .incbin "graphics/pokemon/front_pics/ariados_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ariados/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ariados_palette:: @ 8DA3C18 - .incbin "graphics/pokemon/palettes/ariados_palette.gbapal.lz" + .incbin "graphics/pokemon/ariados/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ariados_back_pic:: @ 8DA3C40 - .incbin "graphics/pokemon/back_pics/ariados_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ariados/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ariados_shiny_palette:: @ 8DA3FB8 - .incbin "graphics/pokemon/palettes/ariados_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ariados/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ariados_icon:: @ 8DA3FE0 - .incbin "graphics/pokemon/icons/ariados_icon.4bpp" + .incbin "graphics/pokemon/ariados/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ariados_footprint:: @ 8DA43E0 - .incbin "graphics/pokemon/footprints/ariados_footprint.1bpp" + .incbin "graphics/pokemon/ariados/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_crobat_still_front_pic:: @ 8DA4400 - .incbin "graphics/pokemon/front_pics/crobat_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/crobat/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_crobat_palette:: @ 8DA47B0 - .incbin "graphics/pokemon/palettes/crobat_palette.gbapal.lz" + .incbin "graphics/pokemon/crobat/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_crobat_back_pic:: @ 8DA47D8 - .incbin "graphics/pokemon/back_pics/crobat_back_pic.4bpp.lz" + .incbin "graphics/pokemon/crobat/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_crobat_shiny_palette:: @ 8DA4AE0 - .incbin "graphics/pokemon/palettes/crobat_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/crobat/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_crobat_icon:: @ 8DA4B08 - .incbin "graphics/pokemon/icons/crobat_icon.4bpp" + .incbin "graphics/pokemon/crobat/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_crobat_footprint:: @ 8DA4F08 - .incbin "graphics/pokemon/footprints/crobat_footprint.1bpp" + .incbin "graphics/pokemon/crobat/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_chinchou_still_front_pic:: @ 8DA4F28 - .incbin "graphics/pokemon/front_pics/chinchou_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/chinchou/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_chinchou_palette:: @ 8DA5200 - .incbin "graphics/pokemon/palettes/chinchou_palette.gbapal.lz" + .incbin "graphics/pokemon/chinchou/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_chinchou_back_pic:: @ 8DA5228 - .incbin "graphics/pokemon/back_pics/chinchou_back_pic.4bpp.lz" + .incbin "graphics/pokemon/chinchou/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_chinchou_shiny_palette:: @ 8DA5520 - .incbin "graphics/pokemon/palettes/chinchou_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/chinchou/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_chinchou_icon:: @ 8DA5548 - .incbin "graphics/pokemon/icons/chinchou_icon.4bpp" + .incbin "graphics/pokemon/chinchou/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_chinchou_footprint:: @ 8DA5948 - .incbin "graphics/pokemon/footprints/chinchou_footprint.1bpp" + .incbin "graphics/pokemon/chinchou/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_lanturn_still_front_pic:: @ 8DA5968 - .incbin "graphics/pokemon/front_pics/lanturn_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/lanturn/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lanturn_palette:: @ 8DA5CD8 - .incbin "graphics/pokemon/palettes/lanturn_palette.gbapal.lz" + .incbin "graphics/pokemon/lanturn/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_lanturn_back_pic:: @ 8DA5D00 - .incbin "graphics/pokemon/back_pics/lanturn_back_pic.4bpp.lz" + .incbin "graphics/pokemon/lanturn/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lanturn_shiny_palette:: @ 8DA6000 - .incbin "graphics/pokemon/palettes/lanturn_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/lanturn/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_lanturn_icon:: @ 8DA6028 - .incbin "graphics/pokemon/icons/lanturn_icon.4bpp" + .incbin "graphics/pokemon/lanturn/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_lanturn_footprint:: @ 8DA6428 - .incbin "graphics/pokemon/footprints/lanturn_footprint.1bpp" + .incbin "graphics/pokemon/lanturn/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_pichu_still_front_pic:: @ 8DA6448 - .incbin "graphics/pokemon/front_pics/pichu_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/pichu/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pichu_palette:: @ 8DA6664 - .incbin "graphics/pokemon/palettes/pichu_palette.gbapal.lz" + .incbin "graphics/pokemon/pichu/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_pichu_back_pic:: @ 8DA668C - .incbin "graphics/pokemon/back_pics/pichu_back_pic.4bpp.lz" + .incbin "graphics/pokemon/pichu/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pichu_shiny_palette:: @ 8DA68E8 - .incbin "graphics/pokemon/palettes/pichu_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/pichu/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_pichu_icon:: @ 8DA6910 - .incbin "graphics/pokemon/icons/pichu_icon.4bpp" + .incbin "graphics/pokemon/pichu/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_pichu_footprint:: @ 8DA6D10 - .incbin "graphics/pokemon/footprints/pichu_footprint.1bpp" + .incbin "graphics/pokemon/pichu/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_cleffa_still_front_pic:: @ 8DA6D30 - .incbin "graphics/pokemon/front_pics/cleffa_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/cleffa/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cleffa_palette:: @ 8DA6F10 - .incbin "graphics/pokemon/palettes/cleffa_palette.gbapal.lz" + .incbin "graphics/pokemon/cleffa/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_cleffa_back_pic:: @ 8DA6F38 - .incbin "graphics/pokemon/back_pics/cleffa_back_pic.4bpp.lz" + .incbin "graphics/pokemon/cleffa/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cleffa_shiny_palette:: @ 8DA7174 - .incbin "graphics/pokemon/palettes/cleffa_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/cleffa/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_cleffa_icon:: @ 8DA719C - .incbin "graphics/pokemon/icons/cleffa_icon.4bpp" + .incbin "graphics/pokemon/cleffa/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_cleffa_footprint:: @ 8DA759C - .incbin "graphics/pokemon/footprints/cleffa_footprint.1bpp" + .incbin "graphics/pokemon/cleffa/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_igglybuff_still_front_pic:: @ 8DA75BC - .incbin "graphics/pokemon/front_pics/igglybuff_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/igglybuff/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_igglybuff_palette:: @ 8DA77A4 - .incbin "graphics/pokemon/palettes/igglybuff_palette.gbapal.lz" + .incbin "graphics/pokemon/igglybuff/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_igglybuff_back_pic:: @ 8DA77CC - .incbin "graphics/pokemon/back_pics/igglybuff_back_pic.4bpp.lz" + .incbin "graphics/pokemon/igglybuff/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_igglybuff_shiny_palette:: @ 8DA7A08 - .incbin "graphics/pokemon/palettes/igglybuff_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/igglybuff/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_igglybuff_icon:: @ 8DA7A30 - .incbin "graphics/pokemon/icons/igglybuff_icon.4bpp" + .incbin "graphics/pokemon/igglybuff/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_igglybuff_footprint:: @ 8DA7E30 - .incbin "graphics/pokemon/footprints/igglybuff_footprint.1bpp" + .incbin "graphics/pokemon/igglybuff/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_togepi_still_front_pic:: @ 8DA7E50 - .incbin "graphics/pokemon/front_pics/togepi_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/togepi/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_togepi_palette:: @ 8DA8024 - .incbin "graphics/pokemon/palettes/togepi_palette.gbapal.lz" + .incbin "graphics/pokemon/togepi/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_togepi_back_pic:: @ 8DA804C - .incbin "graphics/pokemon/back_pics/togepi_back_pic.4bpp.lz" + .incbin "graphics/pokemon/togepi/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_togepi_shiny_palette:: @ 8DA82C0 - .incbin "graphics/pokemon/palettes/togepi_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/togepi/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_togepi_icon:: @ 8DA82E8 - .incbin "graphics/pokemon/icons/togepi_icon.4bpp" + .incbin "graphics/pokemon/togepi/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_togepi_footprint:: @ 8DA86E8 - .incbin "graphics/pokemon/footprints/togepi_footprint.1bpp" + .incbin "graphics/pokemon/togepi/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_togetic_still_front_pic:: @ 8DA8708 - .incbin "graphics/pokemon/front_pics/togetic_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/togetic/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_togetic_palette:: @ 8DA897C - .incbin "graphics/pokemon/palettes/togetic_palette.gbapal.lz" + .incbin "graphics/pokemon/togetic/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_togetic_back_pic:: @ 8DA89A4 - .incbin "graphics/pokemon/back_pics/togetic_back_pic.4bpp.lz" + .incbin "graphics/pokemon/togetic/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_togetic_shiny_palette:: @ 8DA8CD0 - .incbin "graphics/pokemon/palettes/togetic_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/togetic/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_togetic_icon:: @ 8DA8CF8 - .incbin "graphics/pokemon/icons/togetic_icon.4bpp" + .incbin "graphics/pokemon/togetic/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_togetic_footprint:: @ 8DA90F8 - .incbin "graphics/pokemon/footprints/togetic_footprint.1bpp" + .incbin "graphics/pokemon/togetic/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_natu_still_front_pic:: @ 8DA9118 - .incbin "graphics/pokemon/front_pics/natu_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/natu/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_natu_palette:: @ 8DA92E4 - .incbin "graphics/pokemon/palettes/natu_palette.gbapal.lz" + .incbin "graphics/pokemon/natu/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_natu_back_pic:: @ 8DA930C - .incbin "graphics/pokemon/back_pics/natu_back_pic.4bpp.lz" + .incbin "graphics/pokemon/natu/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_natu_shiny_palette:: @ 8DA9520 - .incbin "graphics/pokemon/palettes/natu_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/natu/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_natu_icon:: @ 8DA9548 - .incbin "graphics/pokemon/icons/natu_icon.4bpp" + .incbin "graphics/pokemon/natu/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_natu_footprint:: @ 8DA9948 - .incbin "graphics/pokemon/footprints/natu_footprint.1bpp" + .incbin "graphics/pokemon/natu/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_xatu_still_front_pic:: @ 8DA9968 - .incbin "graphics/pokemon/front_pics/xatu_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/xatu/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_xatu_palette:: @ 8DA9C44 - .incbin "graphics/pokemon/palettes/xatu_palette.gbapal.lz" + .incbin "graphics/pokemon/xatu/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_xatu_back_pic:: @ 8DA9C6C - .incbin "graphics/pokemon/back_pics/xatu_back_pic.4bpp.lz" + .incbin "graphics/pokemon/xatu/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_xatu_shiny_palette:: @ 8DA9FE4 - .incbin "graphics/pokemon/palettes/xatu_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/xatu/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_xatu_icon:: @ 8DAA00C - .incbin "graphics/pokemon/icons/xatu_icon.4bpp" + .incbin "graphics/pokemon/xatu/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_xatu_footprint:: @ 8DAA40C - .incbin "graphics/pokemon/footprints/xatu_footprint.1bpp" + .incbin "graphics/pokemon/xatu/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_mareep_still_front_pic:: @ 8DAA42C - .incbin "graphics/pokemon/front_pics/mareep_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/mareep/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mareep_palette:: @ 8DAA6E0 - .incbin "graphics/pokemon/palettes/mareep_palette.gbapal.lz" + .incbin "graphics/pokemon/mareep/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_mareep_back_pic:: @ 8DAA708 - .incbin "graphics/pokemon/back_pics/mareep_back_pic.4bpp.lz" + .incbin "graphics/pokemon/mareep/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mareep_shiny_palette:: @ 8DAA9FC - .incbin "graphics/pokemon/palettes/mareep_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/mareep/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_mareep_icon:: @ 8DAAA24 - .incbin "graphics/pokemon/icons/mareep_icon.4bpp" + .incbin "graphics/pokemon/mareep/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_mareep_footprint:: @ 8DAAE24 - .incbin "graphics/pokemon/footprints/mareep_footprint.1bpp" + .incbin "graphics/pokemon/mareep/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_flaaffy_still_front_pic:: @ 8DAAE44 - .incbin "graphics/pokemon/front_pics/flaaffy_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/flaaffy/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_flaaffy_palette:: @ 8DAB144 - .incbin "graphics/pokemon/palettes/flaaffy_palette.gbapal.lz" + .incbin "graphics/pokemon/flaaffy/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_flaaffy_back_pic:: @ 8DAB16C - .incbin "graphics/pokemon/back_pics/flaaffy_back_pic.4bpp.lz" + .incbin "graphics/pokemon/flaaffy/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_flaaffy_shiny_palette:: @ 8DAB488 - .incbin "graphics/pokemon/palettes/flaaffy_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/flaaffy/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_flaaffy_icon:: @ 8DAB4B0 - .incbin "graphics/pokemon/icons/flaaffy_icon.4bpp" + .incbin "graphics/pokemon/flaaffy/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_flaaffy_footprint:: @ 8DAB8B0 - .incbin "graphics/pokemon/footprints/flaaffy_footprint.1bpp" + .incbin "graphics/pokemon/flaaffy/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ampharos_still_front_pic:: @ 8DAB8D0 - .incbin "graphics/pokemon/front_pics/ampharos_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ampharos/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ampharos_palette:: @ 8DABC2C - .incbin "graphics/pokemon/palettes/ampharos_palette.gbapal.lz" + .incbin "graphics/pokemon/ampharos/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ampharos_back_pic:: @ 8DABC54 - .incbin "graphics/pokemon/back_pics/ampharos_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ampharos/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ampharos_shiny_palette:: @ 8DABFCC - .incbin "graphics/pokemon/palettes/ampharos_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ampharos/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ampharos_icon:: @ 8DABFF4 - .incbin "graphics/pokemon/icons/ampharos_icon.4bpp" + .incbin "graphics/pokemon/ampharos/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ampharos_footprint:: @ 8DAC3F4 - .incbin "graphics/pokemon/footprints/ampharos_footprint.1bpp" + .incbin "graphics/pokemon/ampharos/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_bellossom_still_front_pic:: @ 8DAC414 - .incbin "graphics/pokemon/front_pics/bellossom_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/bellossom/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bellossom_palette:: @ 8DAC684 - .incbin "graphics/pokemon/palettes/bellossom_palette.gbapal.lz" + .incbin "graphics/pokemon/bellossom/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_bellossom_back_pic:: @ 8DAC6AC - .incbin "graphics/pokemon/back_pics/bellossom_back_pic.4bpp.lz" + .incbin "graphics/pokemon/bellossom/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bellossom_shiny_palette:: @ 8DAC9D0 - .incbin "graphics/pokemon/palettes/bellossom_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/bellossom/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_bellossom_icon:: @ 8DAC9F8 - .incbin "graphics/pokemon/icons/bellossom_icon.4bpp" + .incbin "graphics/pokemon/bellossom/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_bellossom_footprint:: @ 8DACDF8 - .incbin "graphics/pokemon/footprints/bellossom_footprint.1bpp" + .incbin "graphics/pokemon/bellossom/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_marill_still_front_pic:: @ 8DACE18 - .incbin "graphics/pokemon/front_pics/marill_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/marill/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_marill_palette:: @ 8DAD0DC - .incbin "graphics/pokemon/palettes/marill_palette.gbapal.lz" + .incbin "graphics/pokemon/marill/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_marill_back_pic:: @ 8DAD104 - .incbin "graphics/pokemon/back_pics/marill_back_pic.4bpp.lz" + .incbin "graphics/pokemon/marill/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_marill_shiny_palette:: @ 8DAD3B0 - .incbin "graphics/pokemon/palettes/marill_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/marill/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_marill_icon:: @ 8DAD3D8 - .incbin "graphics/pokemon/icons/marill_icon.4bpp" + .incbin "graphics/pokemon/marill/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_marill_footprint:: @ 8DAD7D8 - .incbin "graphics/pokemon/footprints/marill_footprint.1bpp" + .incbin "graphics/pokemon/marill/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_azumarill_still_front_pic:: @ 8DAD7F8 - .incbin "graphics/pokemon/front_pics/azumarill_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/azumarill/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_azumarill_palette:: @ 8DADAF8 - .incbin "graphics/pokemon/palettes/azumarill_palette.gbapal.lz" + .incbin "graphics/pokemon/azumarill/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_azumarill_back_pic:: @ 8DADB20 - .incbin "graphics/pokemon/back_pics/azumarill_back_pic.4bpp.lz" + .incbin "graphics/pokemon/azumarill/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_azumarill_shiny_palette:: @ 8DADDDC - .incbin "graphics/pokemon/palettes/azumarill_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/azumarill/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_azumarill_icon:: @ 8DADE04 - .incbin "graphics/pokemon/icons/azumarill_icon.4bpp" + .incbin "graphics/pokemon/azumarill/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_azumarill_footprint:: @ 8DAE204 - .incbin "graphics/pokemon/footprints/azumarill_footprint.1bpp" + .incbin "graphics/pokemon/azumarill/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sudowoodo_still_front_pic:: @ 8DAE224 - .incbin "graphics/pokemon/front_pics/sudowoodo_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sudowoodo/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sudowoodo_palette:: @ 8DAE53C - .incbin "graphics/pokemon/palettes/sudowoodo_palette.gbapal.lz" + .incbin "graphics/pokemon/sudowoodo/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sudowoodo_back_pic:: @ 8DAE564 - .incbin "graphics/pokemon/back_pics/sudowoodo_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sudowoodo/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sudowoodo_shiny_palette:: @ 8DAE8C0 - .incbin "graphics/pokemon/palettes/sudowoodo_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sudowoodo/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sudowoodo_icon:: @ 8DAE8E8 - .incbin "graphics/pokemon/icons/sudowoodo_icon.4bpp" + .incbin "graphics/pokemon/sudowoodo/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sudowoodo_footprint:: @ 8DAECE8 - .incbin "graphics/pokemon/footprints/sudowoodo_footprint.1bpp" + .incbin "graphics/pokemon/sudowoodo/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_politoed_still_front_pic:: @ 8DAED08 - .incbin "graphics/pokemon/front_pics/politoed_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/politoed/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_politoed_palette:: @ 8DAF044 - .incbin "graphics/pokemon/palettes/politoed_palette.gbapal.lz" + .incbin "graphics/pokemon/politoed/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_politoed_back_pic:: @ 8DAF06C - .incbin "graphics/pokemon/back_pics/politoed_back_pic.4bpp.lz" + .incbin "graphics/pokemon/politoed/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_politoed_shiny_palette:: @ 8DAF328 - .incbin "graphics/pokemon/palettes/politoed_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/politoed/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_politoed_icon:: @ 8DAF350 - .incbin "graphics/pokemon/icons/politoed_icon.4bpp" + .incbin "graphics/pokemon/politoed/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_politoed_footprint:: @ 8DAF750 - .incbin "graphics/pokemon/footprints/politoed_footprint.1bpp" + .incbin "graphics/pokemon/politoed/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_hoppip_still_front_pic:: @ 8DAF770 - .incbin "graphics/pokemon/front_pics/hoppip_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/hoppip/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hoppip_palette:: @ 8DAFA24 - .incbin "graphics/pokemon/palettes/hoppip_palette.gbapal.lz" + .incbin "graphics/pokemon/hoppip/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_hoppip_back_pic:: @ 8DAFA4C - .incbin "graphics/pokemon/back_pics/hoppip_back_pic.4bpp.lz" + .incbin "graphics/pokemon/hoppip/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hoppip_shiny_palette:: @ 8DAFD2C - .incbin "graphics/pokemon/palettes/hoppip_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/hoppip/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_hoppip_icon:: @ 8DAFD54 - .incbin "graphics/pokemon/icons/hoppip_icon.4bpp" + .incbin "graphics/pokemon/hoppip/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_hoppip_footprint:: @ 8DB0154 - .incbin "graphics/pokemon/footprints/hoppip_footprint.1bpp" + .incbin "graphics/pokemon/hoppip/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_skiploom_still_front_pic:: @ 8DB0174 - .incbin "graphics/pokemon/front_pics/skiploom_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/skiploom/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_skiploom_palette:: @ 8DB03FC - .incbin "graphics/pokemon/palettes/skiploom_palette.gbapal.lz" + .incbin "graphics/pokemon/skiploom/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_skiploom_back_pic:: @ 8DB0424 - .incbin "graphics/pokemon/back_pics/skiploom_back_pic.4bpp.lz" + .incbin "graphics/pokemon/skiploom/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_skiploom_shiny_palette:: @ 8DB0704 - .incbin "graphics/pokemon/palettes/skiploom_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/skiploom/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_skiploom_icon:: @ 8DB072C - .incbin "graphics/pokemon/icons/skiploom_icon.4bpp" + .incbin "graphics/pokemon/skiploom/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_skiploom_footprint:: @ 8DB0B2C - .incbin "graphics/pokemon/footprints/skiploom_footprint.1bpp" + .incbin "graphics/pokemon/skiploom/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_jumpluff_still_front_pic:: @ 8DB0B4C - .incbin "graphics/pokemon/front_pics/jumpluff_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/jumpluff/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jumpluff_palette:: @ 8DB0EB8 - .incbin "graphics/pokemon/palettes/jumpluff_palette.gbapal.lz" + .incbin "graphics/pokemon/jumpluff/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_jumpluff_back_pic:: @ 8DB0EE0 - .incbin "graphics/pokemon/back_pics/jumpluff_back_pic.4bpp.lz" + .incbin "graphics/pokemon/jumpluff/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jumpluff_shiny_palette:: @ 8DB12D8 - .incbin "graphics/pokemon/palettes/jumpluff_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/jumpluff/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_jumpluff_icon:: @ 8DB1300 - .incbin "graphics/pokemon/icons/jumpluff_icon.4bpp" + .incbin "graphics/pokemon/jumpluff/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_jumpluff_footprint:: @ 8DB1700 - .incbin "graphics/pokemon/footprints/jumpluff_footprint.1bpp" + .incbin "graphics/pokemon/jumpluff/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_aipom_still_front_pic:: @ 8DB1720 - .incbin "graphics/pokemon/front_pics/aipom_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/aipom/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_aipom_palette:: @ 8DB1A1C - .incbin "graphics/pokemon/palettes/aipom_palette.gbapal.lz" + .incbin "graphics/pokemon/aipom/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_aipom_back_pic:: @ 8DB1A44 - .incbin "graphics/pokemon/back_pics/aipom_back_pic.4bpp.lz" + .incbin "graphics/pokemon/aipom/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_aipom_shiny_palette:: @ 8DB1D38 - .incbin "graphics/pokemon/palettes/aipom_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/aipom/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_aipom_icon:: @ 8DB1D60 - .incbin "graphics/pokemon/icons/aipom_icon.4bpp" + .incbin "graphics/pokemon/aipom/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_aipom_footprint:: @ 8DB2160 - .incbin "graphics/pokemon/footprints/aipom_footprint.1bpp" + .incbin "graphics/pokemon/aipom/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sunkern_still_front_pic:: @ 8DB2180 - .incbin "graphics/pokemon/front_pics/sunkern_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sunkern/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sunkern_palette:: @ 8DB23B8 - .incbin "graphics/pokemon/palettes/sunkern_palette.gbapal.lz" + .incbin "graphics/pokemon/sunkern/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sunkern_back_pic:: @ 8DB23E0 - .incbin "graphics/pokemon/back_pics/sunkern_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sunkern/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sunkern_shiny_palette:: @ 8DB26A4 - .incbin "graphics/pokemon/palettes/sunkern_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sunkern/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sunkern_icon:: @ 8DB26CC - .incbin "graphics/pokemon/icons/sunkern_icon.4bpp" + .incbin "graphics/pokemon/sunkern/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sunkern_footprint:: @ 8DB2ACC - .incbin "graphics/pokemon/footprints/sunkern_footprint.1bpp" + .incbin "graphics/pokemon/sunkern/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sunflora_still_front_pic:: @ 8DB2AEC - .incbin "graphics/pokemon/front_pics/sunflora_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sunflora/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sunflora_palette:: @ 8DB2E44 - .incbin "graphics/pokemon/palettes/sunflora_palette.gbapal.lz" + .incbin "graphics/pokemon/sunflora/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sunflora_back_pic:: @ 8DB2E6C - .incbin "graphics/pokemon/back_pics/sunflora_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sunflora/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sunflora_shiny_palette:: @ 8DB320C - .incbin "graphics/pokemon/palettes/sunflora_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sunflora/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sunflora_icon:: @ 8DB3234 - .incbin "graphics/pokemon/icons/sunflora_icon.4bpp" + .incbin "graphics/pokemon/sunflora/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sunflora_footprint:: @ 8DB3634 - .incbin "graphics/pokemon/footprints/sunflora_footprint.1bpp" + .incbin "graphics/pokemon/sunflora/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_yanma_still_front_pic:: @ 8DB3654 - .incbin "graphics/pokemon/front_pics/yanma_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/yanma/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_yanma_palette:: @ 8DB39D8 - .incbin "graphics/pokemon/palettes/yanma_palette.gbapal.lz" + .incbin "graphics/pokemon/yanma/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_yanma_back_pic:: @ 8DB3A00 - .incbin "graphics/pokemon/back_pics/yanma_back_pic.4bpp.lz" + .incbin "graphics/pokemon/yanma/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_yanma_shiny_palette:: @ 8DB3DB4 - .incbin "graphics/pokemon/palettes/yanma_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/yanma/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_yanma_icon:: @ 8DB3DDC - .incbin "graphics/pokemon/icons/yanma_icon.4bpp" + .incbin "graphics/pokemon/yanma/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_yanma_footprint:: @ 8DB41DC - .incbin "graphics/pokemon/footprints/yanma_footprint.1bpp" + .incbin "graphics/pokemon/yanma/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_wooper_still_front_pic:: @ 8DB41FC - .incbin "graphics/pokemon/front_pics/wooper_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/wooper/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wooper_palette:: @ 8DB443C - .incbin "graphics/pokemon/palettes/wooper_palette.gbapal.lz" + .incbin "graphics/pokemon/wooper/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_wooper_back_pic:: @ 8DB4464 - .incbin "graphics/pokemon/back_pics/wooper_back_pic.4bpp.lz" + .incbin "graphics/pokemon/wooper/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wooper_shiny_palette:: @ 8DB46F0 - .incbin "graphics/pokemon/palettes/wooper_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/wooper/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_wooper_icon:: @ 8DB4718 - .incbin "graphics/pokemon/icons/wooper_icon.4bpp" + .incbin "graphics/pokemon/wooper/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_wooper_footprint:: @ 8DB4B18 - .incbin "graphics/pokemon/footprints/wooper_footprint.1bpp" + .incbin "graphics/pokemon/wooper/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_quagsire_still_front_pic:: @ 8DB4B38 - .incbin "graphics/pokemon/front_pics/quagsire_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/quagsire/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_quagsire_palette:: @ 8DB4EAC - .incbin "graphics/pokemon/palettes/quagsire_palette.gbapal.lz" + .incbin "graphics/pokemon/quagsire/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_quagsire_back_pic:: @ 8DB4ED4 - .incbin "graphics/pokemon/back_pics/quagsire_back_pic.4bpp.lz" + .incbin "graphics/pokemon/quagsire/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_quagsire_shiny_palette:: @ 8DB51D0 - .incbin "graphics/pokemon/palettes/quagsire_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/quagsire/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_quagsire_icon:: @ 8DB51F8 - .incbin "graphics/pokemon/icons/quagsire_icon.4bpp" + .incbin "graphics/pokemon/quagsire/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_quagsire_footprint:: @ 8DB55F8 - .incbin "graphics/pokemon/footprints/quagsire_footprint.1bpp" + .incbin "graphics/pokemon/quagsire/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_espeon_still_front_pic:: @ 8DB5618 - .incbin "graphics/pokemon/front_pics/espeon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/espeon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_espeon_palette:: @ 8DB5958 - .incbin "graphics/pokemon/palettes/espeon_palette.gbapal.lz" + .incbin "graphics/pokemon/espeon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_espeon_back_pic:: @ 8DB597C - .incbin "graphics/pokemon/back_pics/espeon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/espeon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_espeon_shiny_palette:: @ 8DB5C58 - .incbin "graphics/pokemon/palettes/espeon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/espeon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_espeon_icon:: @ 8DB5C7C - .incbin "graphics/pokemon/icons/espeon_icon.4bpp" + .incbin "graphics/pokemon/espeon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_espeon_footprint:: @ 8DB607C - .incbin "graphics/pokemon/footprints/espeon_footprint.1bpp" + .incbin "graphics/pokemon/espeon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_umbreon_still_front_pic:: @ 8DB609C - .incbin "graphics/pokemon/front_pics/umbreon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/umbreon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_umbreon_palette:: @ 8DB63B0 - .incbin "graphics/pokemon/palettes/umbreon_palette.gbapal.lz" + .incbin "graphics/pokemon/umbreon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_umbreon_back_pic:: @ 8DB63D8 - .incbin "graphics/pokemon/back_pics/umbreon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/umbreon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_umbreon_shiny_palette:: @ 8DB66EC - .incbin "graphics/pokemon/palettes/umbreon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/umbreon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_umbreon_icon:: @ 8DB6714 - .incbin "graphics/pokemon/icons/umbreon_icon.4bpp" + .incbin "graphics/pokemon/umbreon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_umbreon_footprint:: @ 8DB6B14 - .incbin "graphics/pokemon/footprints/umbreon_footprint.1bpp" + .incbin "graphics/pokemon/umbreon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_murkrow_still_front_pic:: @ 8DB6B34 - .incbin "graphics/pokemon/front_pics/murkrow_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/murkrow/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_murkrow_palette:: @ 8DB6E14 - .incbin "graphics/pokemon/palettes/murkrow_palette.gbapal.lz" + .incbin "graphics/pokemon/murkrow/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_murkrow_back_pic:: @ 8DB6E3C - .incbin "graphics/pokemon/back_pics/murkrow_back_pic.4bpp.lz" + .incbin "graphics/pokemon/murkrow/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_murkrow_shiny_palette:: @ 8DB7154 - .incbin "graphics/pokemon/palettes/murkrow_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/murkrow/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_murkrow_icon:: @ 8DB717C - .incbin "graphics/pokemon/icons/murkrow_icon.4bpp" + .incbin "graphics/pokemon/murkrow/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_murkrow_footprint:: @ 8DB757C - .incbin "graphics/pokemon/footprints/murkrow_footprint.1bpp" + .incbin "graphics/pokemon/murkrow/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_slowking_still_front_pic:: @ 8DB759C - .incbin "graphics/pokemon/front_pics/slowking_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/slowking/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slowking_palette:: @ 8DB7950 - .incbin "graphics/pokemon/palettes/slowking_palette.gbapal.lz" + .incbin "graphics/pokemon/slowking/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_slowking_back_pic:: @ 8DB7978 - .incbin "graphics/pokemon/back_pics/slowking_back_pic.4bpp.lz" + .incbin "graphics/pokemon/slowking/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slowking_shiny_palette:: @ 8DB7D04 - .incbin "graphics/pokemon/palettes/slowking_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/slowking/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_slowking_icon:: @ 8DB7D2C - .incbin "graphics/pokemon/icons/slowking_icon.4bpp" + .incbin "graphics/pokemon/slowking/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_slowking_footprint:: @ 8DB812C - .incbin "graphics/pokemon/footprints/slowking_footprint.1bpp" + .incbin "graphics/pokemon/slowking/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_misdreavus_still_front_pic:: @ 8DB814C - .incbin "graphics/pokemon/front_pics/misdreavus_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/misdreavus/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_misdreavus_palette:: @ 8DB840C - .incbin "graphics/pokemon/palettes/misdreavus_palette.gbapal.lz" + .incbin "graphics/pokemon/misdreavus/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_misdreavus_back_pic:: @ 8DB8434 - .incbin "graphics/pokemon/back_pics/misdreavus_back_pic.4bpp.lz" + .incbin "graphics/pokemon/misdreavus/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_misdreavus_shiny_palette:: @ 8DB8758 - .incbin "graphics/pokemon/palettes/misdreavus_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/misdreavus/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_misdreavus_icon:: @ 8DB8780 - .incbin "graphics/pokemon/icons/misdreavus_icon.4bpp" + .incbin "graphics/pokemon/misdreavus/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_misdreavus_footprint:: @ 8DB8B80 - .incbin "graphics/pokemon/footprints/misdreavus_footprint.1bpp" + .incbin "graphics/pokemon/misdreavus/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_a_still_front_pic:: @ 8DB8BA0 - .incbin "graphics/pokemon/front_pics/unown_a_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/a/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_unown_palette:: @ 8DB8D74 - .incbin "graphics/pokemon/palettes/unown_palette.gbapal.lz" + .incbin "graphics/pokemon/unown/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_a_back_pic:: @ 8DB8D94 - .incbin "graphics/pokemon/back_pics/unown_a_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/a/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_unown_shiny_palette:: @ 8DB8F94 - .incbin "graphics/pokemon/palettes/unown_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/unown/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_unown_a_icon:: @ 8DB8FB4 - .incbin "graphics/pokemon/icons/unown_a_icon.4bpp" + .incbin "graphics/pokemon/unown/a/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_unown_footprint:: @ 8DB93B4 - .incbin "graphics/pokemon/footprints/unown_footprint.1bpp" + .incbin "graphics/pokemon/unown/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_wobbuffet_still_front_pic:: @ 8DB93D4 - .incbin "graphics/pokemon/front_pics/wobbuffet_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/wobbuffet/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wobbuffet_palette:: @ 8DB9724 - .incbin "graphics/pokemon/palettes/wobbuffet_palette.gbapal.lz" + .incbin "graphics/pokemon/wobbuffet/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_wobbuffet_back_pic:: @ 8DB974C - .incbin "graphics/pokemon/back_pics/wobbuffet_back_pic.4bpp.lz" + .incbin "graphics/pokemon/wobbuffet/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wobbuffet_shiny_palette:: @ 8DB9990 - .incbin "graphics/pokemon/palettes/wobbuffet_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/wobbuffet/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_wobbuffet_icon:: @ 8DB99B8 - .incbin "graphics/pokemon/icons/wobbuffet_icon.4bpp" + .incbin "graphics/pokemon/wobbuffet/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_wobbuffet_footprint:: @ 8DB9DB8 - .incbin "graphics/pokemon/footprints/wobbuffet_footprint.1bpp" + .incbin "graphics/pokemon/wobbuffet/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_girafarig_still_front_pic:: @ 8DB9DD8 - .incbin "graphics/pokemon/front_pics/girafarig_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/girafarig/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_girafarig_palette:: @ 8DBA1DC - .incbin "graphics/pokemon/palettes/girafarig_palette.gbapal.lz" + .incbin "graphics/pokemon/girafarig/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_girafarig_back_pic:: @ 8DBA204 - .incbin "graphics/pokemon/back_pics/girafarig_back_pic.4bpp.lz" + .incbin "graphics/pokemon/girafarig/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_girafarig_shiny_palette:: @ 8DBA5B0 - .incbin "graphics/pokemon/palettes/girafarig_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/girafarig/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_girafarig_icon:: @ 8DBA5D8 - .incbin "graphics/pokemon/icons/girafarig_icon.4bpp" + .incbin "graphics/pokemon/girafarig/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_girafarig_footprint:: @ 8DBA9D8 - .incbin "graphics/pokemon/footprints/girafarig_footprint.1bpp" + .incbin "graphics/pokemon/girafarig/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_pineco_still_front_pic:: @ 8DBA9F8 - .incbin "graphics/pokemon/front_pics/pineco_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/pineco/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pineco_palette:: @ 8DBAD38 - .incbin "graphics/pokemon/palettes/pineco_palette.gbapal.lz" + .incbin "graphics/pokemon/pineco/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_pineco_back_pic:: @ 8DBAD5C - .incbin "graphics/pokemon/back_pics/pineco_back_pic.4bpp.lz" + .incbin "graphics/pokemon/pineco/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pineco_shiny_palette:: @ 8DBB034 - .incbin "graphics/pokemon/palettes/pineco_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/pineco/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_pineco_icon:: @ 8DBB058 - .incbin "graphics/pokemon/icons/pineco_icon.4bpp" + .incbin "graphics/pokemon/pineco/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_pineco_footprint:: @ 8DBB458 - .incbin "graphics/pokemon/footprints/pineco_footprint.1bpp" + .incbin "graphics/pokemon/pineco/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_forretress_still_front_pic:: @ 8DBB478 - .incbin "graphics/pokemon/front_pics/forretress_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/forretress/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_forretress_palette:: @ 8DBB894 - .incbin "graphics/pokemon/palettes/forretress_palette.gbapal.lz" + .incbin "graphics/pokemon/forretress/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_forretress_back_pic:: @ 8DBB8BC - .incbin "graphics/pokemon/back_pics/forretress_back_pic.4bpp.lz" + .incbin "graphics/pokemon/forretress/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_forretress_shiny_palette:: @ 8DBBB7C - .incbin "graphics/pokemon/palettes/forretress_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/forretress/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_forretress_icon:: @ 8DBBBA4 - .incbin "graphics/pokemon/icons/forretress_icon.4bpp" + .incbin "graphics/pokemon/forretress/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_forretress_footprint:: @ 8DBBFA4 - .incbin "graphics/pokemon/footprints/forretress_footprint.1bpp" + .incbin "graphics/pokemon/forretress/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_dunsparce_still_front_pic:: @ 8DBBFC4 - .incbin "graphics/pokemon/front_pics/dunsparce_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/dunsparce/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dunsparce_palette:: @ 8DBC2D4 - .incbin "graphics/pokemon/palettes/dunsparce_palette.gbapal.lz" + .incbin "graphics/pokemon/dunsparce/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_dunsparce_back_pic:: @ 8DBC2FC - .incbin "graphics/pokemon/back_pics/dunsparce_back_pic.4bpp.lz" + .incbin "graphics/pokemon/dunsparce/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dunsparce_shiny_palette:: @ 8DBC5F8 - .incbin "graphics/pokemon/palettes/dunsparce_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/dunsparce/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_dunsparce_icon:: @ 8DBC620 - .incbin "graphics/pokemon/icons/dunsparce_icon.4bpp" + .incbin "graphics/pokemon/dunsparce/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_dunsparce_footprint:: @ 8DBCA20 - .incbin "graphics/pokemon/footprints/dunsparce_footprint.1bpp" + .incbin "graphics/pokemon/dunsparce/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_gligar_still_front_pic:: @ 8DBCA40 - .incbin "graphics/pokemon/front_pics/gligar_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/gligar/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gligar_palette:: @ 8DBCE68 - .incbin "graphics/pokemon/palettes/gligar_palette.gbapal.lz" + .incbin "graphics/pokemon/gligar/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_gligar_back_pic:: @ 8DBCE90 - .incbin "graphics/pokemon/back_pics/gligar_back_pic.4bpp.lz" + .incbin "graphics/pokemon/gligar/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gligar_shiny_palette:: @ 8DBD268 - .incbin "graphics/pokemon/palettes/gligar_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/gligar/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_gligar_icon:: @ 8DBD290 - .incbin "graphics/pokemon/icons/gligar_icon.4bpp" + .incbin "graphics/pokemon/gligar/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_gligar_footprint:: @ 8DBD690 - .incbin "graphics/pokemon/footprints/gligar_footprint.1bpp" + .incbin "graphics/pokemon/gligar/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_steelix_still_front_pic:: @ 8DBD6B0 - .incbin "graphics/pokemon/front_pics/steelix_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/steelix/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_steelix_palette:: @ 8DBDB78 - .incbin "graphics/pokemon/palettes/steelix_palette.gbapal.lz" + .incbin "graphics/pokemon/steelix/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_steelix_back_pic:: @ 8DBDB9C - .incbin "graphics/pokemon/back_pics/steelix_back_pic.4bpp.lz" + .incbin "graphics/pokemon/steelix/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_steelix_shiny_palette:: @ 8DBDFA8 - .incbin "graphics/pokemon/palettes/steelix_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/steelix/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_steelix_icon:: @ 8DBDFCC - .incbin "graphics/pokemon/icons/steelix_icon.4bpp" + .incbin "graphics/pokemon/steelix/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_steelix_footprint:: @ 8DBE3CC - .incbin "graphics/pokemon/footprints/steelix_footprint.1bpp" + .incbin "graphics/pokemon/steelix/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_snubbull_still_front_pic:: @ 8DBE3EC - .incbin "graphics/pokemon/front_pics/snubbull_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/snubbull/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_snubbull_palette:: @ 8DBE6C0 - .incbin "graphics/pokemon/palettes/snubbull_palette.gbapal.lz" + .incbin "graphics/pokemon/snubbull/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_snubbull_back_pic:: @ 8DBE6E8 - .incbin "graphics/pokemon/back_pics/snubbull_back_pic.4bpp.lz" + .incbin "graphics/pokemon/snubbull/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_snubbull_shiny_palette:: @ 8DBEA10 - .incbin "graphics/pokemon/palettes/snubbull_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/snubbull/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_snubbull_icon:: @ 8DBEA38 - .incbin "graphics/pokemon/icons/snubbull_icon.4bpp" + .incbin "graphics/pokemon/snubbull/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_snubbull_footprint:: @ 8DBEE38 - .incbin "graphics/pokemon/footprints/snubbull_footprint.1bpp" + .incbin "graphics/pokemon/snubbull/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_granbull_still_front_pic:: @ 8DBEE58 - .incbin "graphics/pokemon/front_pics/granbull_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/granbull/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_granbull_palette:: @ 8DBF1E4 - .incbin "graphics/pokemon/palettes/granbull_palette.gbapal.lz" + .incbin "graphics/pokemon/granbull/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_granbull_back_pic:: @ 8DBF20C - .incbin "graphics/pokemon/back_pics/granbull_back_pic.4bpp.lz" + .incbin "graphics/pokemon/granbull/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_granbull_shiny_palette:: @ 8DBF530 - .incbin "graphics/pokemon/palettes/granbull_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/granbull/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_granbull_icon:: @ 8DBF558 - .incbin "graphics/pokemon/icons/granbull_icon.4bpp" + .incbin "graphics/pokemon/granbull/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_granbull_footprint:: @ 8DBF958 - .incbin "graphics/pokemon/footprints/granbull_footprint.1bpp" + .incbin "graphics/pokemon/granbull/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_qwilfish_still_front_pic:: @ 8DBF978 - .incbin "graphics/pokemon/front_pics/qwilfish_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/qwilfish/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_qwilfish_palette:: @ 8DBFC38 - .incbin "graphics/pokemon/palettes/qwilfish_palette.gbapal.lz" + .incbin "graphics/pokemon/qwilfish/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_qwilfish_back_pic:: @ 8DBFC60 - .incbin "graphics/pokemon/back_pics/qwilfish_back_pic.4bpp.lz" + .incbin "graphics/pokemon/qwilfish/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_qwilfish_shiny_palette:: @ 8DBFF40 - .incbin "graphics/pokemon/palettes/qwilfish_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/qwilfish/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_qwilfish_icon:: @ 8DBFF68 - .incbin "graphics/pokemon/icons/qwilfish_icon.4bpp" + .incbin "graphics/pokemon/qwilfish/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_qwilfish_footprint:: @ 8DC0368 - .incbin "graphics/pokemon/footprints/qwilfish_footprint.1bpp" + .incbin "graphics/pokemon/qwilfish/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_scizor_still_front_pic:: @ 8DC0388 - .incbin "graphics/pokemon/front_pics/scizor_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/scizor/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_scizor_palette:: @ 8DC0870 - .incbin "graphics/pokemon/palettes/scizor_palette.gbapal.lz" + .incbin "graphics/pokemon/scizor/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_scizor_back_pic:: @ 8DC0898 - .incbin "graphics/pokemon/back_pics/scizor_back_pic.4bpp.lz" + .incbin "graphics/pokemon/scizor/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_scizor_shiny_palette:: @ 8DC0C18 - .incbin "graphics/pokemon/palettes/scizor_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/scizor/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_scizor_icon:: @ 8DC0C40 - .incbin "graphics/pokemon/icons/scizor_icon.4bpp" + .incbin "graphics/pokemon/scizor/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_scizor_footprint:: @ 8DC1040 - .incbin "graphics/pokemon/footprints/scizor_footprint.1bpp" + .incbin "graphics/pokemon/scizor/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_shuckle_still_front_pic:: @ 8DC1060 - .incbin "graphics/pokemon/front_pics/shuckle_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/shuckle/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shuckle_palette:: @ 8DC1328 - .incbin "graphics/pokemon/palettes/shuckle_palette.gbapal.lz" + .incbin "graphics/pokemon/shuckle/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_shuckle_back_pic:: @ 8DC1350 - .incbin "graphics/pokemon/back_pics/shuckle_back_pic.4bpp.lz" + .incbin "graphics/pokemon/shuckle/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shuckle_shiny_palette:: @ 8DC15A8 - .incbin "graphics/pokemon/palettes/shuckle_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/shuckle/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_shuckle_icon:: @ 8DC15D0 - .incbin "graphics/pokemon/icons/shuckle_icon.4bpp" + .incbin "graphics/pokemon/shuckle/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_shuckle_footprint:: @ 8DC19D0 - .incbin "graphics/pokemon/footprints/shuckle_footprint.1bpp" + .incbin "graphics/pokemon/shuckle/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_heracross_still_front_pic:: @ 8DC19F0 - .incbin "graphics/pokemon/front_pics/heracross_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/heracross/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_heracross_palette:: @ 8DC1DE0 - .incbin "graphics/pokemon/palettes/heracross_palette.gbapal.lz" + .incbin "graphics/pokemon/heracross/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_heracross_back_pic:: @ 8DC1E08 - .incbin "graphics/pokemon/back_pics/heracross_back_pic.4bpp.lz" + .incbin "graphics/pokemon/heracross/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_heracross_shiny_palette:: @ 8DC2178 - .incbin "graphics/pokemon/palettes/heracross_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/heracross/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_heracross_icon:: @ 8DC21A0 - .incbin "graphics/pokemon/icons/heracross_icon.4bpp" + .incbin "graphics/pokemon/heracross/icon.4bpp" gUnknown_heracross_icon:: @ 8DC25A0 .incbin "baserom.gba", 0xDC25A0, 0x400 .align 2 gFile_graphics_pokemon_footprints_heracross_footprint:: @ 8DC29A0 - .incbin "graphics/pokemon/footprints/heracross_footprint.1bpp" + .incbin "graphics/pokemon/heracross/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sneasel_still_front_pic:: @ 8DC29C0 - .incbin "graphics/pokemon/front_pics/sneasel_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sneasel/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sneasel_palette:: @ 8DC2D04 - .incbin "graphics/pokemon/palettes/sneasel_palette.gbapal.lz" + .incbin "graphics/pokemon/sneasel/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sneasel_back_pic:: @ 8DC2D2C - .incbin "graphics/pokemon/back_pics/sneasel_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sneasel/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sneasel_shiny_palette:: @ 8DC3050 - .incbin "graphics/pokemon/palettes/sneasel_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sneasel/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sneasel_icon:: @ 8DC3078 - .incbin "graphics/pokemon/icons/sneasel_icon.4bpp" + .incbin "graphics/pokemon/sneasel/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sneasel_footprint:: @ 8DC3478 - .incbin "graphics/pokemon/footprints/sneasel_footprint.1bpp" + .incbin "graphics/pokemon/sneasel/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_teddiursa_still_front_pic:: @ 8DC3498 - .incbin "graphics/pokemon/front_pics/teddiursa_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/teddiursa/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_teddiursa_palette:: @ 8DC3740 - .incbin "graphics/pokemon/palettes/teddiursa_palette.gbapal.lz" + .incbin "graphics/pokemon/teddiursa/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_teddiursa_back_pic:: @ 8DC3768 - .incbin "graphics/pokemon/back_pics/teddiursa_back_pic.4bpp.lz" + .incbin "graphics/pokemon/teddiursa/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_teddiursa_shiny_palette:: @ 8DC39E0 - .incbin "graphics/pokemon/palettes/teddiursa_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/teddiursa/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_teddiursa_icon:: @ 8DC3A08 - .incbin "graphics/pokemon/icons/teddiursa_icon.4bpp" + .incbin "graphics/pokemon/teddiursa/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_teddiursa_footprint:: @ 8DC3E08 - .incbin "graphics/pokemon/footprints/teddiursa_footprint.1bpp" + .incbin "graphics/pokemon/teddiursa/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ursaring_still_front_pic:: @ 8DC3E28 - .incbin "graphics/pokemon/front_pics/ursaring_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ursaring/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ursaring_palette:: @ 8DC4260 - .incbin "graphics/pokemon/palettes/ursaring_palette.gbapal.lz" + .incbin "graphics/pokemon/ursaring/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ursaring_back_pic:: @ 8DC4288 - .incbin "graphics/pokemon/back_pics/ursaring_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ursaring/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ursaring_shiny_palette:: @ 8DC4610 - .incbin "graphics/pokemon/palettes/ursaring_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ursaring/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ursaring_icon:: @ 8DC4638 - .incbin "graphics/pokemon/icons/ursaring_icon.4bpp" + .incbin "graphics/pokemon/ursaring/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ursaring_footprint:: @ 8DC4A38 - .incbin "graphics/pokemon/footprints/ursaring_footprint.1bpp" + .incbin "graphics/pokemon/ursaring/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_slugma_still_front_pic:: @ 8DC4A58 - .incbin "graphics/pokemon/front_pics/slugma_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/slugma/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slugma_palette:: @ 8DC4CCC - .incbin "graphics/pokemon/palettes/slugma_palette.gbapal.lz" + .incbin "graphics/pokemon/slugma/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_slugma_back_pic:: @ 8DC4CF0 - .incbin "graphics/pokemon/back_pics/slugma_back_pic.4bpp.lz" + .incbin "graphics/pokemon/slugma/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slugma_shiny_palette:: @ 8DC4FD8 - .incbin "graphics/pokemon/palettes/slugma_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/slugma/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_slugma_icon:: @ 8DC4FFC - .incbin "graphics/pokemon/icons/slugma_icon.4bpp" + .incbin "graphics/pokemon/slugma/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_slugma_footprint:: @ 8DC53FC - .incbin "graphics/pokemon/footprints/slugma_footprint.1bpp" + .incbin "graphics/pokemon/slugma/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_magcargo_still_front_pic:: @ 8DC541C - .incbin "graphics/pokemon/front_pics/magcargo_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/magcargo/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magcargo_palette:: @ 8DC5764 - .incbin "graphics/pokemon/palettes/magcargo_palette.gbapal.lz" + .incbin "graphics/pokemon/magcargo/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_magcargo_back_pic:: @ 8DC578C - .incbin "graphics/pokemon/back_pics/magcargo_back_pic.4bpp.lz" + .incbin "graphics/pokemon/magcargo/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magcargo_shiny_palette:: @ 8DC5BA4 - .incbin "graphics/pokemon/palettes/magcargo_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/magcargo/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_magcargo_icon:: @ 8DC5BCC - .incbin "graphics/pokemon/icons/magcargo_icon.4bpp" + .incbin "graphics/pokemon/magcargo/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_magcargo_footprint:: @ 8DC5FCC - .incbin "graphics/pokemon/footprints/magcargo_footprint.1bpp" + .incbin "graphics/pokemon/magcargo/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_swinub_still_front_pic:: @ 8DC5FEC - .incbin "graphics/pokemon/front_pics/swinub_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/swinub/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swinub_palette:: @ 8DC61E8 - .incbin "graphics/pokemon/palettes/swinub_palette.gbapal.lz" + .incbin "graphics/pokemon/swinub/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_swinub_back_pic:: @ 8DC6210 - .incbin "graphics/pokemon/back_pics/swinub_back_pic.4bpp.lz" + .incbin "graphics/pokemon/swinub/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swinub_shiny_palette:: @ 8DC644C - .incbin "graphics/pokemon/palettes/swinub_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/swinub/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_swinub_icon:: @ 8DC6474 - .incbin "graphics/pokemon/icons/swinub_icon.4bpp" + .incbin "graphics/pokemon/swinub/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_swinub_footprint:: @ 8DC6874 - .incbin "graphics/pokemon/footprints/swinub_footprint.1bpp" + .incbin "graphics/pokemon/swinub/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_piloswine_still_front_pic:: @ 8DC6894 - .incbin "graphics/pokemon/front_pics/piloswine_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/piloswine/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_piloswine_palette:: @ 8DC6BBC - .incbin "graphics/pokemon/palettes/piloswine_palette.gbapal.lz" + .incbin "graphics/pokemon/piloswine/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_piloswine_back_pic:: @ 8DC6BE4 - .incbin "graphics/pokemon/back_pics/piloswine_back_pic.4bpp.lz" + .incbin "graphics/pokemon/piloswine/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_piloswine_shiny_palette:: @ 8DC6E30 - .incbin "graphics/pokemon/palettes/piloswine_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/piloswine/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_piloswine_icon:: @ 8DC6E58 - .incbin "graphics/pokemon/icons/piloswine_icon.4bpp" + .incbin "graphics/pokemon/piloswine/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_piloswine_footprint:: @ 8DC7258 - .incbin "graphics/pokemon/footprints/piloswine_footprint.1bpp" + .incbin "graphics/pokemon/piloswine/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_corsola_still_front_pic:: @ 8DC7278 - .incbin "graphics/pokemon/front_pics/corsola_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/corsola/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_corsola_palette:: @ 8DC7560 - .incbin "graphics/pokemon/palettes/corsola_palette.gbapal.lz" + .incbin "graphics/pokemon/corsola/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_corsola_back_pic:: @ 8DC7588 - .incbin "graphics/pokemon/back_pics/corsola_back_pic.4bpp.lz" + .incbin "graphics/pokemon/corsola/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_corsola_shiny_palette:: @ 8DC7848 - .incbin "graphics/pokemon/palettes/corsola_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/corsola/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_corsola_icon:: @ 8DC7870 - .incbin "graphics/pokemon/icons/corsola_icon.4bpp" + .incbin "graphics/pokemon/corsola/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_corsola_footprint:: @ 8DC7C70 - .incbin "graphics/pokemon/footprints/corsola_footprint.1bpp" + .incbin "graphics/pokemon/corsola/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_remoraid_still_front_pic:: @ 8DC7C90 - .incbin "graphics/pokemon/front_pics/remoraid_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/remoraid/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_remoraid_palette:: @ 8DC7EF8 - .incbin "graphics/pokemon/palettes/remoraid_palette.gbapal.lz" + .incbin "graphics/pokemon/remoraid/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_remoraid_back_pic:: @ 8DC7F20 - .incbin "graphics/pokemon/back_pics/remoraid_back_pic.4bpp.lz" + .incbin "graphics/pokemon/remoraid/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_remoraid_shiny_palette:: @ 8DC8234 - .incbin "graphics/pokemon/palettes/remoraid_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/remoraid/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_remoraid_icon:: @ 8DC825C - .incbin "graphics/pokemon/icons/remoraid_icon.4bpp" + .incbin "graphics/pokemon/remoraid/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_remoraid_footprint:: @ 8DC865C - .incbin "graphics/pokemon/footprints/remoraid_footprint.1bpp" + .incbin "graphics/pokemon/remoraid/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_octillery_still_front_pic:: @ 8DC867C - .incbin "graphics/pokemon/front_pics/octillery_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/octillery/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_octillery_palette:: @ 8DC89B0 - .incbin "graphics/pokemon/palettes/octillery_palette.gbapal.lz" + .incbin "graphics/pokemon/octillery/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_octillery_back_pic:: @ 8DC89D8 - .incbin "graphics/pokemon/back_pics/octillery_back_pic.4bpp.lz" + .incbin "graphics/pokemon/octillery/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_octillery_shiny_palette:: @ 8DC8C90 - .incbin "graphics/pokemon/palettes/octillery_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/octillery/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_octillery_icon:: @ 8DC8CB8 - .incbin "graphics/pokemon/icons/octillery_icon.4bpp" + .incbin "graphics/pokemon/octillery/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_octillery_footprint:: @ 8DC90B8 - .incbin "graphics/pokemon/footprints/octillery_footprint.1bpp" + .incbin "graphics/pokemon/octillery/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_delibird_still_front_pic:: @ 8DC90D8 - .incbin "graphics/pokemon/front_pics/delibird_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/delibird/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_delibird_palette:: @ 8DC9448 - .incbin "graphics/pokemon/palettes/delibird_palette.gbapal.lz" + .incbin "graphics/pokemon/delibird/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_delibird_back_pic:: @ 8DC9470 - .incbin "graphics/pokemon/back_pics/delibird_back_pic.4bpp.lz" + .incbin "graphics/pokemon/delibird/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_delibird_shiny_palette:: @ 8DC9830 - .incbin "graphics/pokemon/palettes/delibird_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/delibird/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_delibird_icon:: @ 8DC9858 - .incbin "graphics/pokemon/icons/delibird_icon.4bpp" + .incbin "graphics/pokemon/delibird/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_delibird_footprint:: @ 8DC9C58 - .incbin "graphics/pokemon/footprints/delibird_footprint.1bpp" + .incbin "graphics/pokemon/delibird/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_mantine_still_front_pic:: @ 8DC9C78 - .incbin "graphics/pokemon/front_pics/mantine_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/mantine/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mantine_palette:: @ 8DCA114 - .incbin "graphics/pokemon/palettes/mantine_palette.gbapal.lz" + .incbin "graphics/pokemon/mantine/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_mantine_back_pic:: @ 8DCA13C - .incbin "graphics/pokemon/back_pics/mantine_back_pic.4bpp.lz" + .incbin "graphics/pokemon/mantine/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mantine_shiny_palette:: @ 8DCA3DC - .incbin "graphics/pokemon/palettes/mantine_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/mantine/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_mantine_icon:: @ 8DCA404 - .incbin "graphics/pokemon/icons/mantine_icon.4bpp" + .incbin "graphics/pokemon/mantine/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_mantine_footprint:: @ 8DCA804 - .incbin "graphics/pokemon/footprints/mantine_footprint.1bpp" + .incbin "graphics/pokemon/mantine/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_skarmory_still_front_pic:: @ 8DCA824 - .incbin "graphics/pokemon/front_pics/skarmory_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/skarmory/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_skarmory_palette:: @ 8DCAD04 - .incbin "graphics/pokemon/palettes/skarmory_palette.gbapal.lz" + .incbin "graphics/pokemon/skarmory/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_skarmory_back_pic:: @ 8DCAD2C - .incbin "graphics/pokemon/back_pics/skarmory_back_pic.4bpp.lz" + .incbin "graphics/pokemon/skarmory/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_skarmory_shiny_palette:: @ 8DCB030 - .incbin "graphics/pokemon/palettes/skarmory_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/skarmory/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_skarmory_icon:: @ 8DCB058 - .incbin "graphics/pokemon/icons/skarmory_icon.4bpp" + .incbin "graphics/pokemon/skarmory/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_skarmory_footprint:: @ 8DCB458 - .incbin "graphics/pokemon/footprints/skarmory_footprint.1bpp" + .incbin "graphics/pokemon/skarmory/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_houndour_still_front_pic:: @ 8DCB478 - .incbin "graphics/pokemon/front_pics/houndour_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/houndour/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_houndour_palette:: @ 8DCB730 - .incbin "graphics/pokemon/palettes/houndour_palette.gbapal.lz" + .incbin "graphics/pokemon/houndour/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_houndour_back_pic:: @ 8DCB758 - .incbin "graphics/pokemon/back_pics/houndour_back_pic.4bpp.lz" + .incbin "graphics/pokemon/houndour/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_houndour_shiny_palette:: @ 8DCB9D8 - .incbin "graphics/pokemon/palettes/houndour_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/houndour/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_houndour_icon:: @ 8DCBA00 - .incbin "graphics/pokemon/icons/houndour_icon.4bpp" + .incbin "graphics/pokemon/houndour/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_houndour_footprint:: @ 8DCBE00 - .incbin "graphics/pokemon/footprints/houndour_footprint.1bpp" + .incbin "graphics/pokemon/houndour/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_houndoom_still_front_pic:: @ 8DCBE20 - .incbin "graphics/pokemon/front_pics/houndoom_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/houndoom/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_houndoom_palette:: @ 8DCC220 - .incbin "graphics/pokemon/palettes/houndoom_palette.gbapal.lz" + .incbin "graphics/pokemon/houndoom/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_houndoom_back_pic:: @ 8DCC248 - .incbin "graphics/pokemon/back_pics/houndoom_back_pic.4bpp.lz" + .incbin "graphics/pokemon/houndoom/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_houndoom_shiny_palette:: @ 8DCC56C - .incbin "graphics/pokemon/palettes/houndoom_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/houndoom/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_houndoom_icon:: @ 8DCC594 - .incbin "graphics/pokemon/icons/houndoom_icon.4bpp" + .incbin "graphics/pokemon/houndoom/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_houndoom_footprint:: @ 8DCC994 - .incbin "graphics/pokemon/footprints/houndoom_footprint.1bpp" + .incbin "graphics/pokemon/houndoom/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kingdra_still_front_pic:: @ 8DCC9B4 - .incbin "graphics/pokemon/front_pics/kingdra_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kingdra/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kingdra_palette:: @ 8DCCDD4 - .incbin "graphics/pokemon/palettes/kingdra_palette.gbapal.lz" + .incbin "graphics/pokemon/kingdra/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kingdra_back_pic:: @ 8DCCDFC - .incbin "graphics/pokemon/back_pics/kingdra_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kingdra/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kingdra_shiny_palette:: @ 8DCD1B0 - .incbin "graphics/pokemon/palettes/kingdra_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kingdra/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kingdra_icon:: @ 8DCD1D8 - .incbin "graphics/pokemon/icons/kingdra_icon.4bpp" + .incbin "graphics/pokemon/kingdra/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kingdra_footprint:: @ 8DCD5D8 - .incbin "graphics/pokemon/footprints/kingdra_footprint.1bpp" + .incbin "graphics/pokemon/kingdra/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_phanpy_still_front_pic:: @ 8DCD5F8 - .incbin "graphics/pokemon/front_pics/phanpy_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/phanpy/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_phanpy_palette:: @ 8DCD854 - .incbin "graphics/pokemon/palettes/phanpy_palette.gbapal.lz" + .incbin "graphics/pokemon/phanpy/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_phanpy_back_pic:: @ 8DCD87C - .incbin "graphics/pokemon/back_pics/phanpy_back_pic.4bpp.lz" + .incbin "graphics/pokemon/phanpy/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_phanpy_shiny_palette:: @ 8DCDB40 - .incbin "graphics/pokemon/palettes/phanpy_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/phanpy/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_phanpy_icon:: @ 8DCDB68 - .incbin "graphics/pokemon/icons/phanpy_icon.4bpp" + .incbin "graphics/pokemon/phanpy/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_phanpy_footprint:: @ 8DCDF68 - .incbin "graphics/pokemon/footprints/phanpy_footprint.1bpp" + .incbin "graphics/pokemon/phanpy/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_donphan_still_front_pic:: @ 8DCDF88 - .incbin "graphics/pokemon/front_pics/donphan_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/donphan/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_donphan_palette:: @ 8DCE3FC - .incbin "graphics/pokemon/palettes/donphan_palette.gbapal.lz" + .incbin "graphics/pokemon/donphan/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_donphan_back_pic:: @ 8DCE424 - .incbin "graphics/pokemon/back_pics/donphan_back_pic.4bpp.lz" + .incbin "graphics/pokemon/donphan/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_donphan_shiny_palette:: @ 8DCE720 - .incbin "graphics/pokemon/palettes/donphan_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/donphan/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_donphan_icon:: @ 8DCE748 - .incbin "graphics/pokemon/icons/donphan_icon.4bpp" + .incbin "graphics/pokemon/donphan/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_donphan_footprint:: @ 8DCEB48 - .incbin "graphics/pokemon/footprints/donphan_footprint.1bpp" + .incbin "graphics/pokemon/donphan/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_porygon2_still_front_pic:: @ 8DCEB68 - .incbin "graphics/pokemon/front_pics/porygon2_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/porygon2/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_porygon2_palette:: @ 8DCEDF0 - .incbin "graphics/pokemon/palettes/porygon2_palette.gbapal.lz" + .incbin "graphics/pokemon/porygon2/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_porygon2_back_pic:: @ 8DCEE18 - .incbin "graphics/pokemon/back_pics/porygon2_back_pic.4bpp.lz" + .incbin "graphics/pokemon/porygon2/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_porygon2_shiny_palette:: @ 8DCF134 - .incbin "graphics/pokemon/palettes/porygon2_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/porygon2/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_porygon2_icon:: @ 8DCF15C - .incbin "graphics/pokemon/icons/porygon2_icon.4bpp" + .incbin "graphics/pokemon/porygon2/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_porygon2_footprint:: @ 8DCF55C - .incbin "graphics/pokemon/footprints/porygon2_footprint.1bpp" + .incbin "graphics/pokemon/porygon2/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_stantler_still_front_pic:: @ 8DCF57C - .incbin "graphics/pokemon/front_pics/stantler_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/stantler/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_stantler_palette:: @ 8DCF990 - .incbin "graphics/pokemon/palettes/stantler_palette.gbapal.lz" + .incbin "graphics/pokemon/stantler/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_stantler_back_pic:: @ 8DCF9B8 - .incbin "graphics/pokemon/back_pics/stantler_back_pic.4bpp.lz" + .incbin "graphics/pokemon/stantler/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_stantler_shiny_palette:: @ 8DCFD04 - .incbin "graphics/pokemon/palettes/stantler_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/stantler/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_stantler_icon:: @ 8DCFD2C - .incbin "graphics/pokemon/icons/stantler_icon.4bpp" + .incbin "graphics/pokemon/stantler/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_stantler_footprint:: @ 8DD012C - .incbin "graphics/pokemon/footprints/stantler_footprint.1bpp" + .incbin "graphics/pokemon/stantler/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_smeargle_still_front_pic:: @ 8DD014C - .incbin "graphics/pokemon/front_pics/smeargle_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/smeargle/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_smeargle_palette:: @ 8DD04E0 - .incbin "graphics/pokemon/palettes/smeargle_palette.gbapal.lz" + .incbin "graphics/pokemon/smeargle/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_smeargle_back_pic:: @ 8DD0508 - .incbin "graphics/pokemon/back_pics/smeargle_back_pic.4bpp.lz" + .incbin "graphics/pokemon/smeargle/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_smeargle_shiny_palette:: @ 8DD082C - .incbin "graphics/pokemon/palettes/smeargle_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/smeargle/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_smeargle_icon:: @ 8DD0854 - .incbin "graphics/pokemon/icons/smeargle_icon.4bpp" + .incbin "graphics/pokemon/smeargle/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_smeargle_footprint:: @ 8DD0C54 - .incbin "graphics/pokemon/footprints/smeargle_footprint.1bpp" + .incbin "graphics/pokemon/smeargle/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_tyrogue_still_front_pic:: @ 8DD0C74 - .incbin "graphics/pokemon/front_pics/tyrogue_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/tyrogue/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tyrogue_palette:: @ 8DD0F00 - .incbin "graphics/pokemon/palettes/tyrogue_palette.gbapal.lz" + .incbin "graphics/pokemon/tyrogue/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_tyrogue_back_pic:: @ 8DD0F28 - .incbin "graphics/pokemon/back_pics/tyrogue_back_pic.4bpp.lz" + .incbin "graphics/pokemon/tyrogue/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tyrogue_shiny_palette:: @ 8DD1244 - .incbin "graphics/pokemon/palettes/tyrogue_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/tyrogue/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_tyrogue_icon:: @ 8DD126C - .incbin "graphics/pokemon/icons/tyrogue_icon.4bpp" + .incbin "graphics/pokemon/tyrogue/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_tyrogue_footprint:: @ 8DD166C - .incbin "graphics/pokemon/footprints/tyrogue_footprint.1bpp" + .incbin "graphics/pokemon/tyrogue/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_hitmontop_still_front_pic:: @ 8DD168C - .incbin "graphics/pokemon/front_pics/hitmontop_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/hitmontop/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hitmontop_palette:: @ 8DD1A18 - .incbin "graphics/pokemon/palettes/hitmontop_palette.gbapal.lz" + .incbin "graphics/pokemon/hitmontop/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_hitmontop_back_pic:: @ 8DD1A40 - .incbin "graphics/pokemon/back_pics/hitmontop_back_pic.4bpp.lz" + .incbin "graphics/pokemon/hitmontop/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hitmontop_shiny_palette:: @ 8DD1E68 - .incbin "graphics/pokemon/palettes/hitmontop_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/hitmontop/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_hitmontop_icon:: @ 8DD1E90 - .incbin "graphics/pokemon/icons/hitmontop_icon.4bpp" + .incbin "graphics/pokemon/hitmontop/icon.4bpp" gUnknown_hitmontop_unknown_data:: @ 8DD2290 .incbin "baserom.gba", 0xDD2290, 0x200 .align 2 gFile_graphics_pokemon_footprints_hitmontop_footprint:: @ 8DD2490 - .incbin "graphics/pokemon/footprints/hitmontop_footprint.1bpp" + .incbin "graphics/pokemon/hitmontop/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_smoochum_still_front_pic:: @ 8DD24B0 - .incbin "graphics/pokemon/front_pics/smoochum_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/smoochum/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_smoochum_palette:: @ 8DD2708 - .incbin "graphics/pokemon/palettes/smoochum_palette.gbapal.lz" + .incbin "graphics/pokemon/smoochum/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_smoochum_back_pic:: @ 8DD2730 - .incbin "graphics/pokemon/back_pics/smoochum_back_pic.4bpp.lz" + .incbin "graphics/pokemon/smoochum/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_smoochum_shiny_palette:: @ 8DD29A8 - .incbin "graphics/pokemon/palettes/smoochum_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/smoochum/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_smoochum_icon:: @ 8DD29D0 - .incbin "graphics/pokemon/icons/smoochum_icon.4bpp" + .incbin "graphics/pokemon/smoochum/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_smoochum_footprint:: @ 8DD2DD0 - .incbin "graphics/pokemon/footprints/smoochum_footprint.1bpp" + .incbin "graphics/pokemon/smoochum/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_elekid_still_front_pic:: @ 8DD2DF0 - .incbin "graphics/pokemon/front_pics/elekid_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/elekid/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_elekid_palette:: @ 8DD30F8 - .incbin "graphics/pokemon/palettes/elekid_palette.gbapal.lz" + .incbin "graphics/pokemon/elekid/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_elekid_back_pic:: @ 8DD3120 - .incbin "graphics/pokemon/back_pics/elekid_back_pic.4bpp.lz" + .incbin "graphics/pokemon/elekid/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_elekid_shiny_palette:: @ 8DD3478 - .incbin "graphics/pokemon/palettes/elekid_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/elekid/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_elekid_icon:: @ 8DD34A0 - .incbin "graphics/pokemon/icons/elekid_icon.4bpp" + .incbin "graphics/pokemon/elekid/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_elekid_footprint:: @ 8DD38A0 - .incbin "graphics/pokemon/footprints/elekid_footprint.1bpp" + .incbin "graphics/pokemon/elekid/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_magby_still_front_pic:: @ 8DD38C0 - .incbin "graphics/pokemon/front_pics/magby_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/magby/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magby_palette:: @ 8DD3B44 - .incbin "graphics/pokemon/palettes/magby_palette.gbapal.lz" + .incbin "graphics/pokemon/magby/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_magby_back_pic:: @ 8DD3B6C - .incbin "graphics/pokemon/back_pics/magby_back_pic.4bpp.lz" + .incbin "graphics/pokemon/magby/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_magby_shiny_palette:: @ 8DD3E18 - .incbin "graphics/pokemon/palettes/magby_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/magby/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_magby_icon:: @ 8DD3E40 - .incbin "graphics/pokemon/icons/magby_icon.4bpp" + .incbin "graphics/pokemon/magby/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_magby_footprint:: @ 8DD4240 - .incbin "graphics/pokemon/footprints/magby_footprint.1bpp" + .incbin "graphics/pokemon/magby/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_miltank_still_front_pic:: @ 8DD4260 - .incbin "graphics/pokemon/front_pics/miltank_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/miltank/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_miltank_palette:: @ 8DD4610 - .incbin "graphics/pokemon/palettes/miltank_palette.gbapal.lz" + .incbin "graphics/pokemon/miltank/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_miltank_back_pic:: @ 8DD4638 - .incbin "graphics/pokemon/back_pics/miltank_back_pic.4bpp.lz" + .incbin "graphics/pokemon/miltank/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_miltank_shiny_palette:: @ 8DD49D4 - .incbin "graphics/pokemon/palettes/miltank_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/miltank/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_miltank_icon:: @ 8DD49FC - .incbin "graphics/pokemon/icons/miltank_icon.4bpp" + .incbin "graphics/pokemon/miltank/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_miltank_footprint:: @ 8DD4DFC - .incbin "graphics/pokemon/footprints/miltank_footprint.1bpp" + .incbin "graphics/pokemon/miltank/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_blissey_still_front_pic:: @ 8DD4E1C - .incbin "graphics/pokemon/front_pics/blissey_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/blissey/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_blissey_palette:: @ 8DD5204 - .incbin "graphics/pokemon/palettes/blissey_palette.gbapal.lz" + .incbin "graphics/pokemon/blissey/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_blissey_back_pic:: @ 8DD522C - .incbin "graphics/pokemon/back_pics/blissey_back_pic.4bpp.lz" + .incbin "graphics/pokemon/blissey/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_blissey_shiny_palette:: @ 8DD54F8 - .incbin "graphics/pokemon/palettes/blissey_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/blissey/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_blissey_icon:: @ 8DD5520 - .incbin "graphics/pokemon/icons/blissey_icon.4bpp" + .incbin "graphics/pokemon/blissey/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_blissey_footprint:: @ 8DD5920 - .incbin "graphics/pokemon/footprints/blissey_footprint.1bpp" + .incbin "graphics/pokemon/blissey/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_raikou_still_front_pic:: @ 8DD5940 - .incbin "graphics/pokemon/front_pics/raikou_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/raikou/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_raikou_palette:: @ 8DD5EBC - .incbin "graphics/pokemon/palettes/raikou_palette.gbapal.lz" + .incbin "graphics/pokemon/raikou/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_raikou_back_pic:: @ 8DD5EE4 - .incbin "graphics/pokemon/back_pics/raikou_back_pic.4bpp.lz" + .incbin "graphics/pokemon/raikou/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_raikou_shiny_palette:: @ 8DD628C - .incbin "graphics/pokemon/palettes/raikou_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/raikou/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_raikou_icon:: @ 8DD62B4 - .incbin "graphics/pokemon/icons/raikou_icon.4bpp" + .incbin "graphics/pokemon/raikou/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_raikou_footprint:: @ 8DD66B4 - .incbin "graphics/pokemon/footprints/raikou_footprint.1bpp" + .incbin "graphics/pokemon/raikou/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_entei_still_front_pic:: @ 8DD66D4 - .incbin "graphics/pokemon/front_pics/entei_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/entei/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_entei_palette:: @ 8DD6CD0 - .incbin "graphics/pokemon/palettes/entei_palette.gbapal.lz" + .incbin "graphics/pokemon/entei/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_entei_back_pic:: @ 8DD6CF8 - .incbin "graphics/pokemon/back_pics/entei_back_pic.4bpp.lz" + .incbin "graphics/pokemon/entei/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_entei_shiny_palette:: @ 8DD711C - .incbin "graphics/pokemon/palettes/entei_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/entei/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_entei_icon:: @ 8DD7144 - .incbin "graphics/pokemon/icons/entei_icon.4bpp" + .incbin "graphics/pokemon/entei/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_entei_footprint:: @ 8DD7544 - .incbin "graphics/pokemon/footprints/entei_footprint.1bpp" + .incbin "graphics/pokemon/entei/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_suicune_still_front_pic:: @ 8DD7564 - .incbin "graphics/pokemon/front_pics/suicune_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/suicune/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_suicune_palette:: @ 8DD7AE8 - .incbin "graphics/pokemon/palettes/suicune_palette.gbapal.lz" + .incbin "graphics/pokemon/suicune/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_suicune_back_pic:: @ 8DD7B10 - .incbin "graphics/pokemon/back_pics/suicune_back_pic.4bpp.lz" + .incbin "graphics/pokemon/suicune/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_suicune_shiny_palette:: @ 8DD7FEC - .incbin "graphics/pokemon/palettes/suicune_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/suicune/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_suicune_icon:: @ 8DD8014 - .incbin "graphics/pokemon/icons/suicune_icon.4bpp" + .incbin "graphics/pokemon/suicune/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_suicune_footprint:: @ 8DD8414 - .incbin "graphics/pokemon/footprints/suicune_footprint.1bpp" + .incbin "graphics/pokemon/suicune/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_larvitar_still_front_pic:: @ 8DD8434 - .incbin "graphics/pokemon/front_pics/larvitar_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/larvitar/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_larvitar_palette:: @ 8DD8690 - .incbin "graphics/pokemon/palettes/larvitar_palette.gbapal.lz" + .incbin "graphics/pokemon/larvitar/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_larvitar_back_pic:: @ 8DD86B8 - .incbin "graphics/pokemon/back_pics/larvitar_back_pic.4bpp.lz" + .incbin "graphics/pokemon/larvitar/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_larvitar_shiny_palette:: @ 8DD8964 - .incbin "graphics/pokemon/palettes/larvitar_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/larvitar/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_larvitar_icon:: @ 8DD898C - .incbin "graphics/pokemon/icons/larvitar_icon.4bpp" + .incbin "graphics/pokemon/larvitar/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_larvitar_footprint:: @ 8DD8D8C - .incbin "graphics/pokemon/footprints/larvitar_footprint.1bpp" + .incbin "graphics/pokemon/larvitar/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_pupitar_still_front_pic:: @ 8DD8DAC - .incbin "graphics/pokemon/front_pics/pupitar_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/pupitar/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pupitar_palette:: @ 8DD909C - .incbin "graphics/pokemon/palettes/pupitar_palette.gbapal.lz" + .incbin "graphics/pokemon/pupitar/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_pupitar_back_pic:: @ 8DD90C4 - .incbin "graphics/pokemon/back_pics/pupitar_back_pic.4bpp.lz" + .incbin "graphics/pokemon/pupitar/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pupitar_shiny_palette:: @ 8DD93FC - .incbin "graphics/pokemon/palettes/pupitar_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/pupitar/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_pupitar_icon:: @ 8DD9424 - .incbin "graphics/pokemon/icons/pupitar_icon.4bpp" + .incbin "graphics/pokemon/pupitar/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_pupitar_footprint:: @ 8DD9824 - .incbin "graphics/pokemon/footprints/pupitar_footprint.1bpp" + .incbin "graphics/pokemon/pupitar/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_tyranitar_still_front_pic:: @ 8DD9844 - .incbin "graphics/pokemon/front_pics/tyranitar_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/tyranitar/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tyranitar_palette:: @ 8DD9D80 - .incbin "graphics/pokemon/palettes/tyranitar_palette.gbapal.lz" + .incbin "graphics/pokemon/tyranitar/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_tyranitar_back_pic:: @ 8DD9DA8 - .incbin "graphics/pokemon/back_pics/tyranitar_back_pic.4bpp.lz" + .incbin "graphics/pokemon/tyranitar/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tyranitar_shiny_palette:: @ 8DDA194 - .incbin "graphics/pokemon/palettes/tyranitar_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/tyranitar/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_tyranitar_icon:: @ 8DDA1BC - .incbin "graphics/pokemon/icons/tyranitar_icon.4bpp" + .incbin "graphics/pokemon/tyranitar/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_tyranitar_footprint:: @ 8DDA5BC - .incbin "graphics/pokemon/footprints/tyranitar_footprint.1bpp" + .incbin "graphics/pokemon/tyranitar/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_lugia_still_front_pic:: @ 8DDA5DC - .incbin "graphics/pokemon/front_pics/lugia_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/lugia/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lugia_palette:: @ 8DDAAA0 - .incbin "graphics/pokemon/palettes/lugia_palette.gbapal.lz" + .incbin "graphics/pokemon/lugia/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_lugia_back_pic:: @ 8DDAAC8 - .incbin "graphics/pokemon/back_pics/lugia_back_pic.4bpp.lz" + .incbin "graphics/pokemon/lugia/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lugia_shiny_palette:: @ 8DDAE9C - .incbin "graphics/pokemon/palettes/lugia_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/lugia/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_lugia_icon:: @ 8DDAEC4 - .incbin "graphics/pokemon/icons/lugia_icon.4bpp" + .incbin "graphics/pokemon/lugia/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_lugia_footprint:: @ 8DDB2C4 - .incbin "graphics/pokemon/footprints/lugia_footprint.1bpp" + .incbin "graphics/pokemon/lugia/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ho_oh_still_front_pic:: @ 8DDB2E4 - .incbin "graphics/pokemon/front_pics/ho_oh_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ho_oh/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ho_oh_palette:: @ 8DDB938 - .incbin "graphics/pokemon/palettes/ho_oh_palette.gbapal.lz" + .incbin "graphics/pokemon/ho_oh/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ho_oh_back_pic:: @ 8DDB960 - .incbin "graphics/pokemon/back_pics/ho_oh_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ho_oh/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ho_oh_shiny_palette:: @ 8DDBD70 - .incbin "graphics/pokemon/palettes/ho_oh_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ho_oh/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ho_oh_icon:: @ 8DDBD98 - .incbin "graphics/pokemon/icons/ho_oh_icon.4bpp" + .incbin "graphics/pokemon/ho_oh/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ho_oh_footprint:: @ 8DDC198 - .incbin "graphics/pokemon/footprints/ho_oh_footprint.1bpp" + .incbin "graphics/pokemon/ho_oh/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_celebi_still_front_pic:: @ 8DDC1B8 - .incbin "graphics/pokemon/front_pics/celebi_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/celebi/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_celebi_palette:: @ 8DDC430 - .incbin "graphics/pokemon/palettes/celebi_palette.gbapal.lz" + .incbin "graphics/pokemon/celebi/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_celebi_back_pic:: @ 8DDC458 - .incbin "graphics/pokemon/back_pics/celebi_back_pic.4bpp.lz" + .incbin "graphics/pokemon/celebi/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_celebi_shiny_palette:: @ 8DDC804 - .incbin "graphics/pokemon/palettes/celebi_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/celebi/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_celebi_icon:: @ 8DDC82C - .incbin "graphics/pokemon/icons/celebi_icon.4bpp" + .incbin "graphics/pokemon/celebi/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_celebi_footprint:: @ 8DDCC2C - .incbin "graphics/pokemon/footprints/celebi_footprint.1bpp" + .incbin "graphics/pokemon/celebi/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_double_question_mark_still_front_pic:: @ 8DDCC4C - .incbin "graphics/pokemon/front_pics/double_question_mark_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/question_mark/double/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_double_question_mark_palette:: @ 8DDCDD0 - .incbin "graphics/pokemon/palettes/double_question_mark_palette.gbapal.lz" + .incbin "graphics/pokemon/question_mark/double/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_double_question_mark_back_pic:: @ 8DDCDE4 - .incbin "graphics/pokemon/back_pics/double_question_mark_back_pic.4bpp.lz" + .incbin "graphics/pokemon/question_mark/double/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_double_question_mark_shiny_palette:: @ 8DDCF68 - .incbin "graphics/pokemon/palettes/double_question_mark_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/question_mark/double/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_front_pics_treecko_still_front_pic:: @ 8DDCF7C - .incbin "graphics/pokemon/front_pics/treecko_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/treecko/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_treecko_palette:: @ 8DDD284 - .incbin "graphics/pokemon/palettes/treecko_palette.gbapal.lz" + .incbin "graphics/pokemon/treecko/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_treecko_back_pic:: @ 8DDD2AC - .incbin "graphics/pokemon/back_pics/treecko_back_pic.4bpp.lz" + .incbin "graphics/pokemon/treecko/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_treecko_shiny_palette:: @ 8DDD5AC - .incbin "graphics/pokemon/palettes/treecko_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/treecko/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_treecko_icon:: @ 8DDD5D4 - .incbin "graphics/pokemon/icons/treecko_icon.4bpp" + .incbin "graphics/pokemon/treecko/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_treecko_footprint:: @ 8DDD9D4 - .incbin "graphics/pokemon/footprints/treecko_footprint.1bpp" + .incbin "graphics/pokemon/treecko/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_grovyle_still_front_pic:: @ 8DDD9F4 - .incbin "graphics/pokemon/front_pics/grovyle_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/grovyle/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_grovyle_palette:: @ 8DDDE80 - .incbin "graphics/pokemon/palettes/grovyle_palette.gbapal.lz" + .incbin "graphics/pokemon/grovyle/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_grovyle_back_pic:: @ 8DDDEA8 - .incbin "graphics/pokemon/back_pics/grovyle_back_pic.4bpp.lz" + .incbin "graphics/pokemon/grovyle/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_grovyle_shiny_palette:: @ 8DDE1E4 - .incbin "graphics/pokemon/palettes/grovyle_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/grovyle/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_grovyle_icon:: @ 8DDE20C - .incbin "graphics/pokemon/icons/grovyle_icon.4bpp" + .incbin "graphics/pokemon/grovyle/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_grovyle_footprint:: @ 8DDE60C - .incbin "graphics/pokemon/footprints/grovyle_footprint.1bpp" + .incbin "graphics/pokemon/grovyle/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sceptile_still_front_pic:: @ 8DDE62C - .incbin "graphics/pokemon/front_pics/sceptile_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sceptile/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sceptile_palette:: @ 8DDEB30 - .incbin "graphics/pokemon/palettes/sceptile_palette.gbapal.lz" + .incbin "graphics/pokemon/sceptile/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sceptile_back_pic:: @ 8DDEB58 - .incbin "graphics/pokemon/back_pics/sceptile_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sceptile/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sceptile_shiny_palette:: @ 8DDEF54 - .incbin "graphics/pokemon/palettes/sceptile_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sceptile/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sceptile_icon:: @ 8DDEF7C - .incbin "graphics/pokemon/icons/sceptile_icon.4bpp" + .incbin "graphics/pokemon/sceptile/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sceptile_footprint:: @ 8DDF37C - .incbin "graphics/pokemon/footprints/sceptile_footprint.1bpp" + .incbin "graphics/pokemon/sceptile/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_torchic_still_front_pic:: @ 8DDF39C - .incbin "graphics/pokemon/front_pics/torchic_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/torchic/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_torchic_palette:: @ 8DDF638 - .incbin "graphics/pokemon/palettes/torchic_palette.gbapal.lz" + .incbin "graphics/pokemon/torchic/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_torchic_back_pic:: @ 8DDF660 - .incbin "graphics/pokemon/back_pics/torchic_back_pic.4bpp.lz" + .incbin "graphics/pokemon/torchic/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_torchic_shiny_palette:: @ 8DDF938 - .incbin "graphics/pokemon/palettes/torchic_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/torchic/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_torchic_icon:: @ 8DDF960 - .incbin "graphics/pokemon/icons/torchic_icon.4bpp" + .incbin "graphics/pokemon/torchic/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_torchic_footprint:: @ 8DDFD60 - .incbin "graphics/pokemon/footprints/torchic_footprint.1bpp" + .incbin "graphics/pokemon/torchic/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_combusken_still_front_pic:: @ 8DDFD80 - .incbin "graphics/pokemon/front_pics/combusken_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/combusken/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_combusken_palette:: @ 8DE016C - .incbin "graphics/pokemon/palettes/combusken_palette.gbapal.lz" + .incbin "graphics/pokemon/combusken/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_combusken_back_pic:: @ 8DE0194 - .incbin "graphics/pokemon/back_pics/combusken_back_pic.4bpp.lz" + .incbin "graphics/pokemon/combusken/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_combusken_shiny_palette:: @ 8DE0564 - .incbin "graphics/pokemon/palettes/combusken_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/combusken/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_combusken_icon:: @ 8DE058C - .incbin "graphics/pokemon/icons/combusken_icon.4bpp" + .incbin "graphics/pokemon/combusken/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_combusken_footprint:: @ 8DE098C - .incbin "graphics/pokemon/footprints/combusken_footprint.1bpp" + .incbin "graphics/pokemon/combusken/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_blaziken_still_front_pic:: @ 8DE09AC - .incbin "graphics/pokemon/front_pics/blaziken_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/blaziken/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_blaziken_palette:: @ 8DE0E24 - .incbin "graphics/pokemon/palettes/blaziken_palette.gbapal.lz" + .incbin "graphics/pokemon/blaziken/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_blaziken_back_pic:: @ 8DE0E4C - .incbin "graphics/pokemon/back_pics/blaziken_back_pic.4bpp.lz" + .incbin "graphics/pokemon/blaziken/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_blaziken_shiny_palette:: @ 8DE1228 - .incbin "graphics/pokemon/palettes/blaziken_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/blaziken/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_blaziken_icon:: @ 8DE1250 - .incbin "graphics/pokemon/icons/blaziken_icon.4bpp" + .incbin "graphics/pokemon/blaziken/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_blaziken_footprint:: @ 8DE1650 - .incbin "graphics/pokemon/footprints/blaziken_footprint.1bpp" + .incbin "graphics/pokemon/blaziken/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_mudkip_still_front_pic:: @ 8DE1670 - .incbin "graphics/pokemon/front_pics/mudkip_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/mudkip/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mudkip_palette:: @ 8DE1928 - .incbin "graphics/pokemon/palettes/mudkip_palette.gbapal.lz" + .incbin "graphics/pokemon/mudkip/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_mudkip_back_pic:: @ 8DE1950 - .incbin "graphics/pokemon/back_pics/mudkip_back_pic.4bpp.lz" + .incbin "graphics/pokemon/mudkip/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mudkip_shiny_palette:: @ 8DE1C30 - .incbin "graphics/pokemon/palettes/mudkip_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/mudkip/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_mudkip_icon:: @ 8DE1C58 - .incbin "graphics/pokemon/icons/mudkip_icon.4bpp" + .incbin "graphics/pokemon/mudkip/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_mudkip_footprint:: @ 8DE2058 - .incbin "graphics/pokemon/footprints/mudkip_footprint.1bpp" + .incbin "graphics/pokemon/mudkip/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_marshtomp_still_front_pic:: @ 8DE2078 - .incbin "graphics/pokemon/front_pics/marshtomp_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/marshtomp/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_marshtomp_palette:: @ 8DE2400 - .incbin "graphics/pokemon/palettes/marshtomp_palette.gbapal.lz" + .incbin "graphics/pokemon/marshtomp/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_marshtomp_back_pic:: @ 8DE2428 - .incbin "graphics/pokemon/back_pics/marshtomp_back_pic.4bpp.lz" + .incbin "graphics/pokemon/marshtomp/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_marshtomp_shiny_palette:: @ 8DE27D8 - .incbin "graphics/pokemon/palettes/marshtomp_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/marshtomp/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_marshtomp_icon:: @ 8DE2800 - .incbin "graphics/pokemon/icons/marshtomp_icon.4bpp" + .incbin "graphics/pokemon/marshtomp/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_marshtomp_footprint:: @ 8DE2C00 - .incbin "graphics/pokemon/footprints/marshtomp_footprint.1bpp" + .incbin "graphics/pokemon/marshtomp/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_swampert_still_front_pic:: @ 8DE2C20 - .incbin "graphics/pokemon/front_pics/swampert_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/swampert/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swampert_palette:: @ 8DE319C - .incbin "graphics/pokemon/palettes/swampert_palette.gbapal.lz" + .incbin "graphics/pokemon/swampert/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_swampert_back_pic:: @ 8DE31C4 - .incbin "graphics/pokemon/back_pics/swampert_back_pic.4bpp.lz" + .incbin "graphics/pokemon/swampert/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swampert_shiny_palette:: @ 8DE3578 - .incbin "graphics/pokemon/palettes/swampert_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/swampert/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_swampert_icon:: @ 8DE35A0 - .incbin "graphics/pokemon/icons/swampert_icon.4bpp" + .incbin "graphics/pokemon/swampert/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_swampert_footprint:: @ 8DE39A0 - .incbin "graphics/pokemon/footprints/swampert_footprint.1bpp" + .incbin "graphics/pokemon/swampert/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_poochyena_still_front_pic:: @ 8DE39C0 - .incbin "graphics/pokemon/front_pics/poochyena_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/poochyena/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_poochyena_palette:: @ 8DE3C88 - .incbin "graphics/pokemon/palettes/poochyena_palette.gbapal.lz" + .incbin "graphics/pokemon/poochyena/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_poochyena_back_pic:: @ 8DE3CB0 - .incbin "graphics/pokemon/back_pics/poochyena_back_pic.4bpp.lz" + .incbin "graphics/pokemon/poochyena/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_poochyena_shiny_palette:: @ 8DE3FDC - .incbin "graphics/pokemon/palettes/poochyena_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/poochyena/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_poochyena_icon:: @ 8DE4004 - .incbin "graphics/pokemon/icons/poochyena_icon.4bpp" + .incbin "graphics/pokemon/poochyena/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_poochyena_footprint:: @ 8DE4404 - .incbin "graphics/pokemon/footprints/poochyena_footprint.1bpp" + .incbin "graphics/pokemon/poochyena/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_mightyena_still_front_pic:: @ 8DE4424 - .incbin "graphics/pokemon/front_pics/mightyena_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/mightyena/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mightyena_palette:: @ 8DE485C - .incbin "graphics/pokemon/palettes/mightyena_palette.gbapal.lz" + .incbin "graphics/pokemon/mightyena/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_mightyena_back_pic:: @ 8DE4884 - .incbin "graphics/pokemon/back_pics/mightyena_back_pic.4bpp.lz" + .incbin "graphics/pokemon/mightyena/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mightyena_shiny_palette:: @ 8DE4BFC - .incbin "graphics/pokemon/palettes/mightyena_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/mightyena/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_mightyena_icon:: @ 8DE4C24 - .incbin "graphics/pokemon/icons/mightyena_icon.4bpp" + .incbin "graphics/pokemon/mightyena/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_mightyena_footprint:: @ 8DE5024 - .incbin "graphics/pokemon/footprints/mightyena_footprint.1bpp" + .incbin "graphics/pokemon/mightyena/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_zigzagoon_still_front_pic:: @ 8DE5044 - .incbin "graphics/pokemon/front_pics/zigzagoon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/zigzagoon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_zigzagoon_palette:: @ 8DE5414 - .incbin "graphics/pokemon/palettes/zigzagoon_palette.gbapal.lz" + .incbin "graphics/pokemon/zigzagoon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_zigzagoon_back_pic:: @ 8DE543C - .incbin "graphics/pokemon/back_pics/zigzagoon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/zigzagoon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_zigzagoon_shiny_palette:: @ 8DE577C - .incbin "graphics/pokemon/palettes/zigzagoon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/zigzagoon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_zigzagoon_icon:: @ 8DE57A4 - .incbin "graphics/pokemon/icons/zigzagoon_icon.4bpp" + .incbin "graphics/pokemon/zigzagoon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_zigzagoon_footprint:: @ 8DE5BA4 - .incbin "graphics/pokemon/footprints/zigzagoon_footprint.1bpp" + .incbin "graphics/pokemon/zigzagoon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_linoone_still_front_pic:: @ 8DE5BC4 - .incbin "graphics/pokemon/front_pics/linoone_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/linoone/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_linoone_palette:: @ 8DE5F34 - .incbin "graphics/pokemon/palettes/linoone_palette.gbapal.lz" + .incbin "graphics/pokemon/linoone/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_linoone_back_pic:: @ 8DE5F5C - .incbin "graphics/pokemon/back_pics/linoone_back_pic.4bpp.lz" + .incbin "graphics/pokemon/linoone/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_linoone_shiny_palette:: @ 8DE6230 - .incbin "graphics/pokemon/palettes/linoone_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/linoone/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_linoone_icon:: @ 8DE6258 - .incbin "graphics/pokemon/icons/linoone_icon.4bpp" + .incbin "graphics/pokemon/linoone/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_linoone_footprint:: @ 8DE6658 - .incbin "graphics/pokemon/footprints/linoone_footprint.1bpp" + .incbin "graphics/pokemon/linoone/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_wurmple_still_front_pic:: @ 8DE6678 - .incbin "graphics/pokemon/front_pics/wurmple_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/wurmple/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wurmple_palette:: @ 8DE6900 - .incbin "graphics/pokemon/palettes/wurmple_palette.gbapal.lz" + .incbin "graphics/pokemon/wurmple/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_wurmple_back_pic:: @ 8DE6928 - .incbin "graphics/pokemon/back_pics/wurmple_back_pic.4bpp.lz" + .incbin "graphics/pokemon/wurmple/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wurmple_shiny_palette:: @ 8DE6B74 - .incbin "graphics/pokemon/palettes/wurmple_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/wurmple/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_wurmple_icon:: @ 8DE6B9C - .incbin "graphics/pokemon/icons/wurmple_icon.4bpp" + .incbin "graphics/pokemon/wurmple/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_wurmple_footprint:: @ 8DE6F9C - .incbin "graphics/pokemon/footprints/wurmple_footprint.1bpp" + .incbin "graphics/pokemon/wurmple/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_silcoon_still_front_pic:: @ 8DE6FBC - .incbin "graphics/pokemon/front_pics/silcoon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/silcoon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_silcoon_palette:: @ 8DE723C - .incbin "graphics/pokemon/palettes/silcoon_palette.gbapal.lz" + .incbin "graphics/pokemon/silcoon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_silcoon_back_pic:: @ 8DE7264 - .incbin "graphics/pokemon/back_pics/silcoon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/silcoon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_silcoon_shiny_palette:: @ 8DE7480 - .incbin "graphics/pokemon/palettes/silcoon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/silcoon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_silcoon_icon:: @ 8DE74A8 - .incbin "graphics/pokemon/icons/silcoon_icon.4bpp" + .incbin "graphics/pokemon/silcoon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_silcoon_footprint:: @ 8DE78A8 - .incbin "graphics/pokemon/footprints/silcoon_footprint.1bpp" + .incbin "graphics/pokemon/silcoon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_beautifly_still_front_pic:: @ 8DE78C8 - .incbin "graphics/pokemon/front_pics/beautifly_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/beautifly/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_beautifly_palette:: @ 8DE7C20 - .incbin "graphics/pokemon/palettes/beautifly_palette.gbapal.lz" + .incbin "graphics/pokemon/beautifly/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_beautifly_back_pic:: @ 8DE7C48 - .incbin "graphics/pokemon/back_pics/beautifly_back_pic.4bpp.lz" + .incbin "graphics/pokemon/beautifly/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_beautifly_shiny_palette:: @ 8DE7FF8 - .incbin "graphics/pokemon/palettes/beautifly_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/beautifly/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_beautifly_icon:: @ 8DE8020 - .incbin "graphics/pokemon/icons/beautifly_icon.4bpp" + .incbin "graphics/pokemon/beautifly/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_beautifly_footprint:: @ 8DE8420 - .incbin "graphics/pokemon/footprints/beautifly_footprint.1bpp" + .incbin "graphics/pokemon/beautifly/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_cascoon_still_front_pic:: @ 8DE8440 - .incbin "graphics/pokemon/front_pics/cascoon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/cascoon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cascoon_palette:: @ 8DE86AC - .incbin "graphics/pokemon/palettes/cascoon_palette.gbapal.lz" + .incbin "graphics/pokemon/cascoon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_cascoon_back_pic:: @ 8DE86D4 - .incbin "graphics/pokemon/back_pics/cascoon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/cascoon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cascoon_shiny_palette:: @ 8DE88E4 - .incbin "graphics/pokemon/palettes/cascoon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/cascoon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_cascoon_icon:: @ 8DE890C - .incbin "graphics/pokemon/icons/cascoon_icon.4bpp" + .incbin "graphics/pokemon/cascoon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_cascoon_footprint:: @ 8DE8D0C - .incbin "graphics/pokemon/footprints/cascoon_footprint.1bpp" + .incbin "graphics/pokemon/cascoon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_dustox_still_front_pic:: @ 8DE8D2C - .incbin "graphics/pokemon/front_pics/dustox_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/dustox/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dustox_palette:: @ 8DE9094 - .incbin "graphics/pokemon/palettes/dustox_palette.gbapal.lz" + .incbin "graphics/pokemon/dustox/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_dustox_back_pic:: @ 8DE90BC - .incbin "graphics/pokemon/back_pics/dustox_back_pic.4bpp.lz" + .incbin "graphics/pokemon/dustox/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dustox_shiny_palette:: @ 8DE9314 - .incbin "graphics/pokemon/palettes/dustox_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/dustox/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_dustox_icon:: @ 8DE933C - .incbin "graphics/pokemon/icons/dustox_icon.4bpp" + .incbin "graphics/pokemon/dustox/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_dustox_footprint:: @ 8DE973C - .incbin "graphics/pokemon/footprints/dustox_footprint.1bpp" + .incbin "graphics/pokemon/dustox/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_lotad_still_front_pic:: @ 8DE975C - .incbin "graphics/pokemon/front_pics/lotad_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/lotad/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lotad_palette:: @ 8DE99BC - .incbin "graphics/pokemon/palettes/lotad_palette.gbapal.lz" + .incbin "graphics/pokemon/lotad/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_lotad_back_pic:: @ 8DE99E4 - .incbin "graphics/pokemon/back_pics/lotad_back_pic.4bpp.lz" + .incbin "graphics/pokemon/lotad/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lotad_shiny_palette:: @ 8DE9CCC - .incbin "graphics/pokemon/palettes/lotad_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/lotad/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_lotad_icon:: @ 8DE9CF4 - .incbin "graphics/pokemon/icons/lotad_icon.4bpp" + .incbin "graphics/pokemon/lotad/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_lotad_footprint:: @ 8DEA0F4 - .incbin "graphics/pokemon/footprints/lotad_footprint.1bpp" + .incbin "graphics/pokemon/lotad/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_lombre_still_front_pic:: @ 8DEA114 - .incbin "graphics/pokemon/front_pics/lombre_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/lombre/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lombre_palette:: @ 8DEA42C - .incbin "graphics/pokemon/palettes/lombre_palette.gbapal.lz" + .incbin "graphics/pokemon/lombre/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_lombre_back_pic:: @ 8DEA454 - .incbin "graphics/pokemon/back_pics/lombre_back_pic.4bpp.lz" + .incbin "graphics/pokemon/lombre/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lombre_shiny_palette:: @ 8DEA750 - .incbin "graphics/pokemon/palettes/lombre_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/lombre/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_lombre_icon:: @ 8DEA778 - .incbin "graphics/pokemon/icons/lombre_icon.4bpp" + .incbin "graphics/pokemon/lombre/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_lombre_footprint:: @ 8DEAB78 - .incbin "graphics/pokemon/footprints/lombre_footprint.1bpp" + .incbin "graphics/pokemon/lombre/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ludicolo_still_front_pic:: @ 8DEAB98 - .incbin "graphics/pokemon/front_pics/ludicolo_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ludicolo/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ludicolo_palette:: @ 8DEB07C - .incbin "graphics/pokemon/palettes/ludicolo_palette.gbapal.lz" + .incbin "graphics/pokemon/ludicolo/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ludicolo_back_pic:: @ 8DEB0A4 - .incbin "graphics/pokemon/back_pics/ludicolo_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ludicolo/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ludicolo_shiny_palette:: @ 8DEB3A0 - .incbin "graphics/pokemon/palettes/ludicolo_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ludicolo/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ludicolo_icon:: @ 8DEB3C8 - .incbin "graphics/pokemon/icons/ludicolo_icon.4bpp" + .incbin "graphics/pokemon/ludicolo/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ludicolo_footprint:: @ 8DEB7C8 - .incbin "graphics/pokemon/footprints/ludicolo_footprint.1bpp" + .incbin "graphics/pokemon/ludicolo/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_seedot_still_front_pic:: @ 8DEB7E8 - .incbin "graphics/pokemon/front_pics/seedot_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/seedot/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seedot_palette:: @ 8DEBA7C - .incbin "graphics/pokemon/palettes/seedot_palette.gbapal.lz" + .incbin "graphics/pokemon/seedot/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_seedot_back_pic:: @ 8DEBAA4 - .incbin "graphics/pokemon/back_pics/seedot_back_pic.4bpp.lz" + .incbin "graphics/pokemon/seedot/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seedot_shiny_palette:: @ 8DEBD84 - .incbin "graphics/pokemon/palettes/seedot_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/seedot/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_seedot_icon:: @ 8DEBDAC - .incbin "graphics/pokemon/icons/seedot_icon.4bpp" + .incbin "graphics/pokemon/seedot/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_seedot_footprint:: @ 8DEC1AC - .incbin "graphics/pokemon/footprints/seedot_footprint.1bpp" + .incbin "graphics/pokemon/seedot/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_nuzleaf_still_front_pic:: @ 8DEC1CC - .incbin "graphics/pokemon/front_pics/nuzleaf_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/nuzleaf/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nuzleaf_palette:: @ 8DEC4B8 - .incbin "graphics/pokemon/palettes/nuzleaf_palette.gbapal.lz" + .incbin "graphics/pokemon/nuzleaf/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_nuzleaf_back_pic:: @ 8DEC4E0 - .incbin "graphics/pokemon/back_pics/nuzleaf_back_pic.4bpp.lz" + .incbin "graphics/pokemon/nuzleaf/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nuzleaf_shiny_palette:: @ 8DEC7A8 - .incbin "graphics/pokemon/palettes/nuzleaf_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/nuzleaf/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_nuzleaf_icon:: @ 8DEC7D0 - .incbin "graphics/pokemon/icons/nuzleaf_icon.4bpp" + .incbin "graphics/pokemon/nuzleaf/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_nuzleaf_footprint:: @ 8DECBD0 - .incbin "graphics/pokemon/footprints/nuzleaf_footprint.1bpp" + .incbin "graphics/pokemon/nuzleaf/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_shiftry_still_front_pic:: @ 8DECBF0 - .incbin "graphics/pokemon/front_pics/shiftry_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/shiftry/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shiftry_palette:: @ 8DED0AC - .incbin "graphics/pokemon/palettes/shiftry_palette.gbapal.lz" + .incbin "graphics/pokemon/shiftry/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_shiftry_back_pic:: @ 8DED0D4 - .incbin "graphics/pokemon/back_pics/shiftry_back_pic.4bpp.lz" + .incbin "graphics/pokemon/shiftry/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shiftry_shiny_palette:: @ 8DED398 - .incbin "graphics/pokemon/palettes/shiftry_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/shiftry/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_shiftry_icon:: @ 8DED3C0 - .incbin "graphics/pokemon/icons/shiftry_icon.4bpp" + .incbin "graphics/pokemon/shiftry/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_shiftry_footprint:: @ 8DED7C0 - .incbin "graphics/pokemon/footprints/shiftry_footprint.1bpp" + .incbin "graphics/pokemon/shiftry/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_nincada_still_front_pic:: @ 8DED7E0 - .incbin "graphics/pokemon/front_pics/nincada_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/nincada/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nincada_palette:: @ 8DEDA80 - .incbin "graphics/pokemon/palettes/nincada_palette.gbapal.lz" + .incbin "graphics/pokemon/nincada/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_nincada_back_pic:: @ 8DEDAA8 - .incbin "graphics/pokemon/back_pics/nincada_back_pic.4bpp.lz" + .incbin "graphics/pokemon/nincada/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nincada_shiny_palette:: @ 8DEDD60 - .incbin "graphics/pokemon/palettes/nincada_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/nincada/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_nincada_icon:: @ 8DEDD88 - .incbin "graphics/pokemon/icons/nincada_icon.4bpp" + .incbin "graphics/pokemon/nincada/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_nincada_footprint:: @ 8DEE188 - .incbin "graphics/pokemon/footprints/nincada_footprint.1bpp" + .incbin "graphics/pokemon/nincada/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ninjask_still_front_pic:: @ 8DEE1A8 - .incbin "graphics/pokemon/front_pics/ninjask_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ninjask/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ninjask_palette:: @ 8DEE518 - .incbin "graphics/pokemon/palettes/ninjask_palette.gbapal.lz" + .incbin "graphics/pokemon/ninjask/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ninjask_back_pic:: @ 8DEE540 - .incbin "graphics/pokemon/back_pics/ninjask_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ninjask/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ninjask_shiny_palette:: @ 8DEE90C - .incbin "graphics/pokemon/palettes/ninjask_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ninjask/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ninjask_icon:: @ 8DEE934 - .incbin "graphics/pokemon/icons/ninjask_icon.4bpp" + .incbin "graphics/pokemon/ninjask/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ninjask_footprint:: @ 8DEED34 - .incbin "graphics/pokemon/footprints/ninjask_footprint.1bpp" + .incbin "graphics/pokemon/ninjask/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_shedinja_still_front_pic:: @ 8DEED54 - .incbin "graphics/pokemon/front_pics/shedinja_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/shedinja/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shedinja_palette:: @ 8DEF074 - .incbin "graphics/pokemon/palettes/shedinja_palette.gbapal.lz" + .incbin "graphics/pokemon/shedinja/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_shedinja_back_pic:: @ 8DEF09C - .incbin "graphics/pokemon/back_pics/shedinja_back_pic.4bpp.lz" + .incbin "graphics/pokemon/shedinja/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shedinja_shiny_palette:: @ 8DEF43C - .incbin "graphics/pokemon/palettes/shedinja_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/shedinja/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_shedinja_icon:: @ 8DEF464 - .incbin "graphics/pokemon/icons/shedinja_icon.4bpp" + .incbin "graphics/pokemon/shedinja/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_shedinja_footprint:: @ 8DEF864 - .incbin "graphics/pokemon/footprints/shedinja_footprint.1bpp" + .incbin "graphics/pokemon/shedinja/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_taillow_still_front_pic:: @ 8DEF884 - .incbin "graphics/pokemon/front_pics/taillow_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/taillow/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_taillow_palette:: @ 8DEFADC - .incbin "graphics/pokemon/palettes/taillow_palette.gbapal.lz" + .incbin "graphics/pokemon/taillow/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_taillow_back_pic:: @ 8DEFB04 - .incbin "graphics/pokemon/back_pics/taillow_back_pic.4bpp.lz" + .incbin "graphics/pokemon/taillow/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_taillow_shiny_palette:: @ 8DEFD24 - .incbin "graphics/pokemon/palettes/taillow_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/taillow/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_taillow_icon:: @ 8DEFD4C - .incbin "graphics/pokemon/icons/taillow_icon.4bpp" + .incbin "graphics/pokemon/taillow/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_taillow_footprint:: @ 8DF014C - .incbin "graphics/pokemon/footprints/taillow_footprint.1bpp" + .incbin "graphics/pokemon/taillow/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_swellow_still_front_pic:: @ 8DF016C - .incbin "graphics/pokemon/front_pics/swellow_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/swellow/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swellow_palette:: @ 8DF0530 - .incbin "graphics/pokemon/palettes/swellow_palette.gbapal.lz" + .incbin "graphics/pokemon/swellow/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_swellow_back_pic:: @ 8DF0558 - .incbin "graphics/pokemon/back_pics/swellow_back_pic.4bpp.lz" + .incbin "graphics/pokemon/swellow/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swellow_shiny_palette:: @ 8DF0890 - .incbin "graphics/pokemon/palettes/swellow_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/swellow/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_swellow_icon:: @ 8DF08B8 - .incbin "graphics/pokemon/icons/swellow_icon.4bpp" + .incbin "graphics/pokemon/swellow/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_swellow_footprint:: @ 8DF0CB8 - .incbin "graphics/pokemon/footprints/swellow_footprint.1bpp" + .incbin "graphics/pokemon/swellow/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_shroomish_still_front_pic:: @ 8DF0CD8 - .incbin "graphics/pokemon/front_pics/shroomish_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/shroomish/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shroomish_palette:: @ 8DF0F40 - .incbin "graphics/pokemon/palettes/shroomish_palette.gbapal.lz" + .incbin "graphics/pokemon/shroomish/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_shroomish_back_pic:: @ 8DF0F68 - .incbin "graphics/pokemon/back_pics/shroomish_back_pic.4bpp.lz" + .incbin "graphics/pokemon/shroomish/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shroomish_shiny_palette:: @ 8DF1248 - .incbin "graphics/pokemon/palettes/shroomish_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/shroomish/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_shroomish_icon:: @ 8DF1270 - .incbin "graphics/pokemon/icons/shroomish_icon.4bpp" + .incbin "graphics/pokemon/shroomish/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_shroomish_footprint:: @ 8DF1670 - .incbin "graphics/pokemon/footprints/shroomish_footprint.1bpp" + .incbin "graphics/pokemon/shroomish/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_breloom_still_front_pic:: @ 8DF1690 - .incbin "graphics/pokemon/front_pics/breloom_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/breloom/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_breloom_palette:: @ 8DF1A78 - .incbin "graphics/pokemon/palettes/breloom_palette.gbapal.lz" + .incbin "graphics/pokemon/breloom/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_breloom_back_pic:: @ 8DF1AA0 - .incbin "graphics/pokemon/back_pics/breloom_back_pic.4bpp.lz" + .incbin "graphics/pokemon/breloom/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_breloom_shiny_palette:: @ 8DF1E80 - .incbin "graphics/pokemon/palettes/breloom_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/breloom/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_breloom_icon:: @ 8DF1EA8 - .incbin "graphics/pokemon/icons/breloom_icon.4bpp" + .incbin "graphics/pokemon/breloom/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_breloom_footprint:: @ 8DF22A8 - .incbin "graphics/pokemon/footprints/breloom_footprint.1bpp" + .incbin "graphics/pokemon/breloom/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_spinda_still_front_pic:: @ 8DF22C8 - .incbin "graphics/pokemon/front_pics/spinda_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/spinda/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spinda_palette:: @ 8DF25C8 - .incbin "graphics/pokemon/palettes/spinda_palette.gbapal.lz" + .incbin "graphics/pokemon/spinda/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_spinda_back_pic:: @ 8DF25F0 - .incbin "graphics/pokemon/back_pics/spinda_back_pic.4bpp.lz" + .incbin "graphics/pokemon/spinda/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spinda_shiny_palette:: @ 8DF292C - .incbin "graphics/pokemon/palettes/spinda_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/spinda/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_spinda_icon:: @ 8DF2954 - .incbin "graphics/pokemon/icons/spinda_icon.4bpp" + .incbin "graphics/pokemon/spinda/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_spinda_footprint:: @ 8DF2D54 - .incbin "graphics/pokemon/footprints/spinda_footprint.1bpp" + .incbin "graphics/pokemon/spinda/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_wingull_still_front_pic:: @ 8DF2D74 - .incbin "graphics/pokemon/front_pics/wingull_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/wingull/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wingull_palette:: @ 8DF2FB0 - .incbin "graphics/pokemon/palettes/wingull_palette.gbapal.lz" + .incbin "graphics/pokemon/wingull/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_wingull_back_pic:: @ 8DF2FD8 - .incbin "graphics/pokemon/back_pics/wingull_back_pic.4bpp.lz" + .incbin "graphics/pokemon/wingull/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wingull_shiny_palette:: @ 8DF3328 - .incbin "graphics/pokemon/palettes/wingull_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/wingull/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_wingull_icon:: @ 8DF3350 - .incbin "graphics/pokemon/icons/wingull_icon.4bpp" + .incbin "graphics/pokemon/wingull/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_wingull_footprint:: @ 8DF3750 - .incbin "graphics/pokemon/footprints/wingull_footprint.1bpp" + .incbin "graphics/pokemon/wingull/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_pelipper_still_front_pic:: @ 8DF3770 - .incbin "graphics/pokemon/front_pics/pelipper_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/pelipper/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pelipper_palette:: @ 8DF3B08 - .incbin "graphics/pokemon/palettes/pelipper_palette.gbapal.lz" + .incbin "graphics/pokemon/pelipper/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_pelipper_back_pic:: @ 8DF3B30 - .incbin "graphics/pokemon/back_pics/pelipper_back_pic.4bpp.lz" + .incbin "graphics/pokemon/pelipper/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_pelipper_shiny_palette:: @ 8DF3EB0 - .incbin "graphics/pokemon/palettes/pelipper_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/pelipper/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_pelipper_icon:: @ 8DF3ED8 - .incbin "graphics/pokemon/icons/pelipper_icon.4bpp" + .incbin "graphics/pokemon/pelipper/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_pelipper_footprint:: @ 8DF42D8 - .incbin "graphics/pokemon/footprints/pelipper_footprint.1bpp" + .incbin "graphics/pokemon/pelipper/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_surskit_still_front_pic:: @ 8DF42F8 - .incbin "graphics/pokemon/front_pics/surskit_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/surskit/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_surskit_palette:: @ 8DF4504 - .incbin "graphics/pokemon/palettes/surskit_palette.gbapal.lz" + .incbin "graphics/pokemon/surskit/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_surskit_back_pic:: @ 8DF452C - .incbin "graphics/pokemon/back_pics/surskit_back_pic.4bpp.lz" + .incbin "graphics/pokemon/surskit/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_surskit_shiny_palette:: @ 8DF4764 - .incbin "graphics/pokemon/palettes/surskit_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/surskit/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_surskit_icon:: @ 8DF478C - .incbin "graphics/pokemon/icons/surskit_icon.4bpp" + .incbin "graphics/pokemon/surskit/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_surskit_footprint:: @ 8DF4B8C - .incbin "graphics/pokemon/footprints/surskit_footprint.1bpp" + .incbin "graphics/pokemon/surskit/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_masquerain_still_front_pic:: @ 8DF4BAC - .incbin "graphics/pokemon/front_pics/masquerain_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/masquerain/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_masquerain_palette:: @ 8DF4F48 - .incbin "graphics/pokemon/palettes/masquerain_palette.gbapal.lz" + .incbin "graphics/pokemon/masquerain/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_masquerain_back_pic:: @ 8DF4F70 - .incbin "graphics/pokemon/back_pics/masquerain_back_pic.4bpp.lz" + .incbin "graphics/pokemon/masquerain/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_masquerain_shiny_palette:: @ 8DF52C8 - .incbin "graphics/pokemon/palettes/masquerain_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/masquerain/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_masquerain_icon:: @ 8DF52F0 - .incbin "graphics/pokemon/icons/masquerain_icon.4bpp" + .incbin "graphics/pokemon/masquerain/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_masquerain_footprint:: @ 8DF56F0 - .incbin "graphics/pokemon/footprints/masquerain_footprint.1bpp" + .incbin "graphics/pokemon/masquerain/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_wailmer_still_front_pic:: @ 8DF5710 - .incbin "graphics/pokemon/front_pics/wailmer_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/wailmer/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wailmer_palette:: @ 8DF59F0 - .incbin "graphics/pokemon/palettes/wailmer_palette.gbapal.lz" + .incbin "graphics/pokemon/wailmer/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_wailmer_back_pic:: @ 8DF5A18 - .incbin "graphics/pokemon/back_pics/wailmer_back_pic.4bpp.lz" + .incbin "graphics/pokemon/wailmer/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wailmer_shiny_palette:: @ 8DF5BFC - .incbin "graphics/pokemon/palettes/wailmer_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/wailmer/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_wailmer_icon:: @ 8DF5C24 - .incbin "graphics/pokemon/icons/wailmer_icon.4bpp" + .incbin "graphics/pokemon/wailmer/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_wailmer_footprint:: @ 8DF6024 - .incbin "graphics/pokemon/footprints/wailmer_footprint.1bpp" + .incbin "graphics/pokemon/wailmer/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_wailord_still_front_pic:: @ 8DF6044 - .incbin "graphics/pokemon/front_pics/wailord_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/wailord/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wailord_palette:: @ 8DF6408 - .incbin "graphics/pokemon/palettes/wailord_palette.gbapal.lz" + .incbin "graphics/pokemon/wailord/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_wailord_back_pic:: @ 8DF6430 - .incbin "graphics/pokemon/back_pics/wailord_back_pic.4bpp.lz" + .incbin "graphics/pokemon/wailord/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wailord_shiny_palette:: @ 8DF6648 - .incbin "graphics/pokemon/palettes/wailord_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/wailord/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_wailord_icon:: @ 8DF6670 - .incbin "graphics/pokemon/icons/wailord_icon.4bpp" + .incbin "graphics/pokemon/wailord/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_wailord_footprint:: @ 8DF6A70 - .incbin "graphics/pokemon/footprints/wailord_footprint.1bpp" + .incbin "graphics/pokemon/wailord/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_skitty_still_front_pic:: @ 8DF6A90 - .incbin "graphics/pokemon/front_pics/skitty_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/skitty/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_skitty_palette:: @ 8DF6D90 - .incbin "graphics/pokemon/palettes/skitty_palette.gbapal.lz" + .incbin "graphics/pokemon/skitty/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_skitty_back_pic:: @ 8DF6DB8 - .incbin "graphics/pokemon/back_pics/skitty_back_pic.4bpp.lz" + .incbin "graphics/pokemon/skitty/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_skitty_shiny_palette:: @ 8DF7100 - .incbin "graphics/pokemon/palettes/skitty_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/skitty/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_skitty_icon:: @ 8DF7128 - .incbin "graphics/pokemon/icons/skitty_icon.4bpp" + .incbin "graphics/pokemon/skitty/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_skitty_footprint:: @ 8DF7528 - .incbin "graphics/pokemon/footprints/skitty_footprint.1bpp" + .incbin "graphics/pokemon/skitty/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_delcatty_still_front_pic:: @ 8DF7548 - .incbin "graphics/pokemon/front_pics/delcatty_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/delcatty/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_delcatty_palette:: @ 8DF78D4 - .incbin "graphics/pokemon/palettes/delcatty_palette.gbapal.lz" + .incbin "graphics/pokemon/delcatty/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_delcatty_back_pic:: @ 8DF78FC - .incbin "graphics/pokemon/back_pics/delcatty_back_pic.4bpp.lz" + .incbin "graphics/pokemon/delcatty/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_delcatty_shiny_palette:: @ 8DF7C98 - .incbin "graphics/pokemon/palettes/delcatty_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/delcatty/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_delcatty_icon:: @ 8DF7CC0 - .incbin "graphics/pokemon/icons/delcatty_icon.4bpp" + .incbin "graphics/pokemon/delcatty/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_delcatty_footprint:: @ 8DF80C0 - .incbin "graphics/pokemon/footprints/delcatty_footprint.1bpp" + .incbin "graphics/pokemon/delcatty/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kecleon_still_front_pic:: @ 8DF80E0 - .incbin "graphics/pokemon/front_pics/kecleon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kecleon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kecleon_palette:: @ 8DF8460 - .incbin "graphics/pokemon/palettes/kecleon_palette.gbapal.lz" + .incbin "graphics/pokemon/kecleon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kecleon_back_pic:: @ 8DF8488 - .incbin "graphics/pokemon/back_pics/kecleon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kecleon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kecleon_shiny_palette:: @ 8DF8860 - .incbin "graphics/pokemon/palettes/kecleon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kecleon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kecleon_icon:: @ 8DF8888 - .incbin "graphics/pokemon/icons/kecleon_icon.4bpp" + .incbin "graphics/pokemon/kecleon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kecleon_footprint:: @ 8DF8C88 - .incbin "graphics/pokemon/footprints/kecleon_footprint.1bpp" + .incbin "graphics/pokemon/kecleon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_baltoy_still_front_pic:: @ 8DF8CA8 - .incbin "graphics/pokemon/front_pics/baltoy_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/baltoy/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_baltoy_palette:: @ 8DF8ECC - .incbin "graphics/pokemon/palettes/baltoy_palette.gbapal.lz" + .incbin "graphics/pokemon/baltoy/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_baltoy_back_pic:: @ 8DF8EEC - .incbin "graphics/pokemon/back_pics/baltoy_back_pic.4bpp.lz" + .incbin "graphics/pokemon/baltoy/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_baltoy_shiny_palette:: @ 8DF9194 - .incbin "graphics/pokemon/palettes/baltoy_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/baltoy/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_baltoy_icon:: @ 8DF91B4 - .incbin "graphics/pokemon/icons/baltoy_icon.4bpp" + .incbin "graphics/pokemon/baltoy/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_baltoy_footprint:: @ 8DF95B4 - .incbin "graphics/pokemon/footprints/baltoy_footprint.1bpp" + .incbin "graphics/pokemon/baltoy/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_claydol_still_front_pic:: @ 8DF95D4 - .incbin "graphics/pokemon/front_pics/claydol_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/claydol/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_claydol_palette:: @ 8DF998C - .incbin "graphics/pokemon/palettes/claydol_palette.gbapal.lz" + .incbin "graphics/pokemon/claydol/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_claydol_back_pic:: @ 8DF99B4 - .incbin "graphics/pokemon/back_pics/claydol_back_pic.4bpp.lz" + .incbin "graphics/pokemon/claydol/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_claydol_shiny_palette:: @ 8DF9D88 - .incbin "graphics/pokemon/palettes/claydol_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/claydol/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_claydol_icon:: @ 8DF9DB0 - .incbin "graphics/pokemon/icons/claydol_icon.4bpp" + .incbin "graphics/pokemon/claydol/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_claydol_footprint:: @ 8DFA1B0 - .incbin "graphics/pokemon/footprints/claydol_footprint.1bpp" + .incbin "graphics/pokemon/claydol/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_nosepass_still_front_pic:: @ 8DFA1D0 - .incbin "graphics/pokemon/front_pics/nosepass_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/nosepass/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nosepass_palette:: @ 8DFA49C - .incbin "graphics/pokemon/palettes/nosepass_palette.gbapal.lz" + .incbin "graphics/pokemon/nosepass/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_nosepass_back_pic:: @ 8DFA4C4 - .incbin "graphics/pokemon/back_pics/nosepass_back_pic.4bpp.lz" + .incbin "graphics/pokemon/nosepass/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_nosepass_shiny_palette:: @ 8DFA764 - .incbin "graphics/pokemon/palettes/nosepass_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/nosepass/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_nosepass_icon:: @ 8DFA78C - .incbin "graphics/pokemon/icons/nosepass_icon.4bpp" + .incbin "graphics/pokemon/nosepass/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_nosepass_footprint:: @ 8DFAB8C - .incbin "graphics/pokemon/footprints/nosepass_footprint.1bpp" + .incbin "graphics/pokemon/nosepass/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_torkoal_still_front_pic:: @ 8DFABAC - .incbin "graphics/pokemon/front_pics/torkoal_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/torkoal/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_torkoal_palette:: @ 8DFB058 - .incbin "graphics/pokemon/palettes/torkoal_palette.gbapal.lz" + .incbin "graphics/pokemon/torkoal/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_torkoal_back_pic:: @ 8DFB080 - .incbin "graphics/pokemon/back_pics/torkoal_back_pic.4bpp.lz" + .incbin "graphics/pokemon/torkoal/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_torkoal_shiny_palette:: @ 8DFB348 - .incbin "graphics/pokemon/palettes/torkoal_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/torkoal/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_torkoal_icon:: @ 8DFB370 - .incbin "graphics/pokemon/icons/torkoal_icon.4bpp" + .incbin "graphics/pokemon/torkoal/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_torkoal_footprint:: @ 8DFB770 - .incbin "graphics/pokemon/footprints/torkoal_footprint.1bpp" + .incbin "graphics/pokemon/torkoal/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sableye_still_front_pic:: @ 8DFB790 - .incbin "graphics/pokemon/front_pics/sableye_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sableye/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sableye_palette:: @ 8DFBA64 - .incbin "graphics/pokemon/palettes/sableye_palette.gbapal.lz" + .incbin "graphics/pokemon/sableye/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sableye_back_pic:: @ 8DFBA8C - .incbin "graphics/pokemon/back_pics/sableye_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sableye/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sableye_shiny_palette:: @ 8DFBDB4 - .incbin "graphics/pokemon/palettes/sableye_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sableye/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sableye_icon:: @ 8DFBDDC - .incbin "graphics/pokemon/icons/sableye_icon.4bpp" + .incbin "graphics/pokemon/sableye/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sableye_footprint:: @ 8DFC1DC - .incbin "graphics/pokemon/footprints/sableye_footprint.1bpp" + .incbin "graphics/pokemon/sableye/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_barboach_still_front_pic:: @ 8DFC1FC - .incbin "graphics/pokemon/front_pics/barboach_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/barboach/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_barboach_palette:: @ 8DFC48C - .incbin "graphics/pokemon/palettes/barboach_palette.gbapal.lz" + .incbin "graphics/pokemon/barboach/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_barboach_back_pic:: @ 8DFC4B4 - .incbin "graphics/pokemon/back_pics/barboach_back_pic.4bpp.lz" + .incbin "graphics/pokemon/barboach/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_barboach_shiny_palette:: @ 8DFC744 - .incbin "graphics/pokemon/palettes/barboach_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/barboach/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_barboach_icon:: @ 8DFC76C - .incbin "graphics/pokemon/icons/barboach_icon.4bpp" + .incbin "graphics/pokemon/barboach/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_barboach_footprint:: @ 8DFCB6C - .incbin "graphics/pokemon/footprints/barboach_footprint.1bpp" + .incbin "graphics/pokemon/barboach/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_whiscash_still_front_pic:: @ 8DFCB8C - .incbin "graphics/pokemon/front_pics/whiscash_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/whiscash/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_whiscash_palette:: @ 8DFCF04 - .incbin "graphics/pokemon/palettes/whiscash_palette.gbapal.lz" + .incbin "graphics/pokemon/whiscash/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_whiscash_back_pic:: @ 8DFCF2C - .incbin "graphics/pokemon/back_pics/whiscash_back_pic.4bpp.lz" + .incbin "graphics/pokemon/whiscash/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_whiscash_shiny_palette:: @ 8DFD278 - .incbin "graphics/pokemon/palettes/whiscash_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/whiscash/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_whiscash_icon:: @ 8DFD2A0 - .incbin "graphics/pokemon/icons/whiscash_icon.4bpp" + .incbin "graphics/pokemon/whiscash/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_whiscash_footprint:: @ 8DFD6A0 - .incbin "graphics/pokemon/footprints/whiscash_footprint.1bpp" + .incbin "graphics/pokemon/whiscash/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_luvdisc_still_front_pic:: @ 8DFD6C0 - .incbin "graphics/pokemon/front_pics/luvdisc_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/luvdisc/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_luvdisc_palette:: @ 8DFD880 - .incbin "graphics/pokemon/palettes/luvdisc_palette.gbapal.lz" + .incbin "graphics/pokemon/luvdisc/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_luvdisc_back_pic:: @ 8DFD8A4 - .incbin "graphics/pokemon/back_pics/luvdisc_back_pic.4bpp.lz" + .incbin "graphics/pokemon/luvdisc/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_luvdisc_shiny_palette:: @ 8DFDA78 - .incbin "graphics/pokemon/palettes/luvdisc_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/luvdisc/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_luvdisc_icon:: @ 8DFDA9C - .incbin "graphics/pokemon/icons/luvdisc_icon.4bpp" + .incbin "graphics/pokemon/luvdisc/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_luvdisc_footprint:: @ 8DFDE9C - .incbin "graphics/pokemon/footprints/luvdisc_footprint.1bpp" + .incbin "graphics/pokemon/luvdisc/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_corphish_still_front_pic:: @ 8DFDEBC - .incbin "graphics/pokemon/front_pics/corphish_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/corphish/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_corphish_palette:: @ 8DFE218 - .incbin "graphics/pokemon/palettes/corphish_palette.gbapal.lz" + .incbin "graphics/pokemon/corphish/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_corphish_back_pic:: @ 8DFE240 - .incbin "graphics/pokemon/back_pics/corphish_back_pic.4bpp.lz" + .incbin "graphics/pokemon/corphish/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_corphish_shiny_palette:: @ 8DFE55C - .incbin "graphics/pokemon/palettes/corphish_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/corphish/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_corphish_icon:: @ 8DFE584 - .incbin "graphics/pokemon/icons/corphish_icon.4bpp" + .incbin "graphics/pokemon/corphish/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_corphish_footprint:: @ 8DFE984 - .incbin "graphics/pokemon/footprints/corphish_footprint.1bpp" + .incbin "graphics/pokemon/corphish/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_crawdaunt_still_front_pic:: @ 8DFE9A4 - .incbin "graphics/pokemon/front_pics/crawdaunt_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/crawdaunt/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_crawdaunt_palette:: @ 8DFEE34 - .incbin "graphics/pokemon/palettes/crawdaunt_palette.gbapal.lz" + .incbin "graphics/pokemon/crawdaunt/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_crawdaunt_back_pic:: @ 8DFEE5C - .incbin "graphics/pokemon/back_pics/crawdaunt_back_pic.4bpp.lz" + .incbin "graphics/pokemon/crawdaunt/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_crawdaunt_shiny_palette:: @ 8DFF240 - .incbin "graphics/pokemon/palettes/crawdaunt_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/crawdaunt/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_crawdaunt_icon:: @ 8DFF268 - .incbin "graphics/pokemon/icons/crawdaunt_icon.4bpp" + .incbin "graphics/pokemon/crawdaunt/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_crawdaunt_footprint:: @ 8DFF668 - .incbin "graphics/pokemon/footprints/crawdaunt_footprint.1bpp" + .incbin "graphics/pokemon/crawdaunt/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_feebas_still_front_pic:: @ 8DFF688 - .incbin "graphics/pokemon/front_pics/feebas_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/feebas/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_feebas_palette:: @ 8DFF914 - .incbin "graphics/pokemon/palettes/feebas_palette.gbapal.lz" + .incbin "graphics/pokemon/feebas/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_feebas_back_pic:: @ 8DFF93C - .incbin "graphics/pokemon/back_pics/feebas_back_pic.4bpp.lz" + .incbin "graphics/pokemon/feebas/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_feebas_shiny_palette:: @ 8DFFC74 - .incbin "graphics/pokemon/palettes/feebas_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/feebas/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_feebas_icon:: @ 8DFFC9C - .incbin "graphics/pokemon/icons/feebas_icon.4bpp" + .incbin "graphics/pokemon/feebas/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_feebas_footprint:: @ 8E0009C - .incbin "graphics/pokemon/footprints/feebas_footprint.1bpp" + .incbin "graphics/pokemon/feebas/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_milotic_still_front_pic:: @ 8E000BC - .incbin "graphics/pokemon/front_pics/milotic_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/milotic/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_milotic_palette:: @ 8E0054C - .incbin "graphics/pokemon/palettes/milotic_palette.gbapal.lz" + .incbin "graphics/pokemon/milotic/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_milotic_back_pic:: @ 8E00574 - .incbin "graphics/pokemon/back_pics/milotic_back_pic.4bpp.lz" + .incbin "graphics/pokemon/milotic/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_milotic_shiny_palette:: @ 8E00868 - .incbin "graphics/pokemon/palettes/milotic_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/milotic/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_milotic_icon:: @ 8E00890 - .incbin "graphics/pokemon/icons/milotic_icon.4bpp" + .incbin "graphics/pokemon/milotic/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_milotic_footprint:: @ 8E00C90 - .incbin "graphics/pokemon/footprints/milotic_footprint.1bpp" + .incbin "graphics/pokemon/milotic/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_carvanha_still_front_pic:: @ 8E00CB0 - .incbin "graphics/pokemon/front_pics/carvanha_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/carvanha/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_carvanha_palette:: @ 8E00FDC - .incbin "graphics/pokemon/palettes/carvanha_palette.gbapal.lz" + .incbin "graphics/pokemon/carvanha/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_carvanha_back_pic:: @ 8E01004 - .incbin "graphics/pokemon/back_pics/carvanha_back_pic.4bpp.lz" + .incbin "graphics/pokemon/carvanha/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_carvanha_shiny_palette:: @ 8E01314 - .incbin "graphics/pokemon/palettes/carvanha_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/carvanha/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_carvanha_icon:: @ 8E0133C - .incbin "graphics/pokemon/icons/carvanha_icon.4bpp" + .incbin "graphics/pokemon/carvanha/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_carvanha_footprint:: @ 8E0173C - .incbin "graphics/pokemon/footprints/carvanha_footprint.1bpp" + .incbin "graphics/pokemon/carvanha/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sharpedo_still_front_pic:: @ 8E0175C - .incbin "graphics/pokemon/front_pics/sharpedo_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sharpedo/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sharpedo_palette:: @ 8E01AEC - .incbin "graphics/pokemon/palettes/sharpedo_palette.gbapal.lz" + .incbin "graphics/pokemon/sharpedo/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sharpedo_back_pic:: @ 8E01B14 - .incbin "graphics/pokemon/back_pics/sharpedo_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sharpedo/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sharpedo_shiny_palette:: @ 8E01E6C - .incbin "graphics/pokemon/palettes/sharpedo_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sharpedo/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sharpedo_icon:: @ 8E01E94 - .incbin "graphics/pokemon/icons/sharpedo_icon.4bpp" + .incbin "graphics/pokemon/sharpedo/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sharpedo_footprint:: @ 8E02294 - .incbin "graphics/pokemon/footprints/sharpedo_footprint.1bpp" + .incbin "graphics/pokemon/sharpedo/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_trapinch_still_front_pic:: @ 8E022B4 - .incbin "graphics/pokemon/front_pics/trapinch_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/trapinch/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_trapinch_palette:: @ 8E024D0 - .incbin "graphics/pokemon/palettes/trapinch_palette.gbapal.lz" + .incbin "graphics/pokemon/trapinch/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_trapinch_back_pic:: @ 8E024F8 - .incbin "graphics/pokemon/back_pics/trapinch_back_pic.4bpp.lz" + .incbin "graphics/pokemon/trapinch/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_trapinch_shiny_palette:: @ 8E02718 - .incbin "graphics/pokemon/palettes/trapinch_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/trapinch/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_trapinch_icon:: @ 8E02740 - .incbin "graphics/pokemon/icons/trapinch_icon.4bpp" + .incbin "graphics/pokemon/trapinch/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_trapinch_footprint:: @ 8E02B40 - .incbin "graphics/pokemon/footprints/trapinch_footprint.1bpp" + .incbin "graphics/pokemon/trapinch/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_vibrava_still_front_pic:: @ 8E02B60 - .incbin "graphics/pokemon/front_pics/vibrava_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/vibrava/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vibrava_palette:: @ 8E02ED0 - .incbin "graphics/pokemon/palettes/vibrava_palette.gbapal.lz" + .incbin "graphics/pokemon/vibrava/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_vibrava_back_pic:: @ 8E02EF8 - .incbin "graphics/pokemon/back_pics/vibrava_back_pic.4bpp.lz" + .incbin "graphics/pokemon/vibrava/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vibrava_shiny_palette:: @ 8E03170 - .incbin "graphics/pokemon/palettes/vibrava_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/vibrava/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_vibrava_icon:: @ 8E03198 - .incbin "graphics/pokemon/icons/vibrava_icon.4bpp" + .incbin "graphics/pokemon/vibrava/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_vibrava_footprint:: @ 8E03598 - .incbin "graphics/pokemon/footprints/vibrava_footprint.1bpp" + .incbin "graphics/pokemon/vibrava/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_flygon_still_front_pic:: @ 8E035B8 - .incbin "graphics/pokemon/front_pics/flygon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/flygon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_flygon_palette:: @ 8E03AA8 - .incbin "graphics/pokemon/palettes/flygon_palette.gbapal.lz" + .incbin "graphics/pokemon/flygon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_flygon_back_pic:: @ 8E03AD0 - .incbin "graphics/pokemon/back_pics/flygon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/flygon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_flygon_shiny_palette:: @ 8E03F0C - .incbin "graphics/pokemon/palettes/flygon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/flygon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_flygon_icon:: @ 8E03F34 - .incbin "graphics/pokemon/icons/flygon_icon.4bpp" + .incbin "graphics/pokemon/flygon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_flygon_footprint:: @ 8E04334 - .incbin "graphics/pokemon/footprints/flygon_footprint.1bpp" + .incbin "graphics/pokemon/flygon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_makuhita_still_front_pic:: @ 8E04354 - .incbin "graphics/pokemon/front_pics/makuhita_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/makuhita/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_makuhita_palette:: @ 8E0466C - .incbin "graphics/pokemon/palettes/makuhita_palette.gbapal.lz" + .incbin "graphics/pokemon/makuhita/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_makuhita_back_pic:: @ 8E04694 - .incbin "graphics/pokemon/back_pics/makuhita_back_pic.4bpp.lz" + .incbin "graphics/pokemon/makuhita/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_makuhita_shiny_palette:: @ 8E04984 - .incbin "graphics/pokemon/palettes/makuhita_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/makuhita/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_makuhita_icon:: @ 8E049A8 - .incbin "graphics/pokemon/icons/makuhita_icon.4bpp" + .incbin "graphics/pokemon/makuhita/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_makuhita_footprint:: @ 8E04DA8 - .incbin "graphics/pokemon/footprints/makuhita_footprint.1bpp" + .incbin "graphics/pokemon/makuhita/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_hariyama_still_front_pic:: @ 8E04DC8 - .incbin "graphics/pokemon/front_pics/hariyama_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/hariyama/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hariyama_palette:: @ 8E05278 - .incbin "graphics/pokemon/palettes/hariyama_palette.gbapal.lz" + .incbin "graphics/pokemon/hariyama/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_hariyama_back_pic:: @ 8E052A0 - .incbin "graphics/pokemon/back_pics/hariyama_back_pic.4bpp.lz" + .incbin "graphics/pokemon/hariyama/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_hariyama_shiny_palette:: @ 8E05680 - .incbin "graphics/pokemon/palettes/hariyama_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/hariyama/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_hariyama_icon:: @ 8E056A8 - .incbin "graphics/pokemon/icons/hariyama_icon.4bpp" + .incbin "graphics/pokemon/hariyama/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_hariyama_footprint:: @ 8E05AA8 - .incbin "graphics/pokemon/footprints/hariyama_footprint.1bpp" + .incbin "graphics/pokemon/hariyama/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_electrike_still_front_pic:: @ 8E05AC8 - .incbin "graphics/pokemon/front_pics/electrike_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/electrike/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_electrike_palette:: @ 8E05D58 - .incbin "graphics/pokemon/palettes/electrike_palette.gbapal.lz" + .incbin "graphics/pokemon/electrike/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_electrike_back_pic:: @ 8E05D80 - .incbin "graphics/pokemon/back_pics/electrike_back_pic.4bpp.lz" + .incbin "graphics/pokemon/electrike/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_electrike_shiny_palette:: @ 8E0600C - .incbin "graphics/pokemon/palettes/electrike_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/electrike/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_electrike_icon:: @ 8E06034 - .incbin "graphics/pokemon/icons/electrike_icon.4bpp" + .incbin "graphics/pokemon/electrike/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_electrike_footprint:: @ 8E06434 - .incbin "graphics/pokemon/footprints/electrike_footprint.1bpp" + .incbin "graphics/pokemon/electrike/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_manectric_still_front_pic:: @ 8E06454 - .incbin "graphics/pokemon/front_pics/manectric_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/manectric/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_manectric_palette:: @ 8E06784 - .incbin "graphics/pokemon/palettes/manectric_palette.gbapal.lz" + .incbin "graphics/pokemon/manectric/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_manectric_back_pic:: @ 8E067AC - .incbin "graphics/pokemon/back_pics/manectric_back_pic.4bpp.lz" + .incbin "graphics/pokemon/manectric/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_manectric_shiny_palette:: @ 8E069D8 - .incbin "graphics/pokemon/palettes/manectric_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/manectric/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_manectric_icon:: @ 8E06A00 - .incbin "graphics/pokemon/icons/manectric_icon.4bpp" + .incbin "graphics/pokemon/manectric/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_manectric_footprint:: @ 8E06E00 - .incbin "graphics/pokemon/footprints/manectric_footprint.1bpp" + .incbin "graphics/pokemon/manectric/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_numel_still_front_pic:: @ 8E06E20 - .incbin "graphics/pokemon/front_pics/numel_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/numel/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_numel_palette:: @ 8E070F0 - .incbin "graphics/pokemon/palettes/numel_palette.gbapal.lz" + .incbin "graphics/pokemon/numel/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_numel_back_pic:: @ 8E07118 - .incbin "graphics/pokemon/back_pics/numel_back_pic.4bpp.lz" + .incbin "graphics/pokemon/numel/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_numel_shiny_palette:: @ 8E073D4 - .incbin "graphics/pokemon/palettes/numel_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/numel/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_numel_icon:: @ 8E073FC - .incbin "graphics/pokemon/icons/numel_icon.4bpp" + .incbin "graphics/pokemon/numel/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_numel_footprint:: @ 8E077FC - .incbin "graphics/pokemon/footprints/numel_footprint.1bpp" + .incbin "graphics/pokemon/numel/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_camerupt_still_front_pic:: @ 8E0781C - .incbin "graphics/pokemon/front_pics/camerupt_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/camerupt/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_camerupt_palette:: @ 8E07C34 - .incbin "graphics/pokemon/palettes/camerupt_palette.gbapal.lz" + .incbin "graphics/pokemon/camerupt/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_camerupt_back_pic:: @ 8E07C5C - .incbin "graphics/pokemon/back_pics/camerupt_back_pic.4bpp.lz" + .incbin "graphics/pokemon/camerupt/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_camerupt_shiny_palette:: @ 8E07F20 - .incbin "graphics/pokemon/palettes/camerupt_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/camerupt/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_camerupt_icon:: @ 8E07F48 - .incbin "graphics/pokemon/icons/camerupt_icon.4bpp" + .incbin "graphics/pokemon/camerupt/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_camerupt_footprint:: @ 8E08348 - .incbin "graphics/pokemon/footprints/camerupt_footprint.1bpp" + .incbin "graphics/pokemon/camerupt/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_spheal_still_front_pic:: @ 8E08368 - .incbin "graphics/pokemon/front_pics/spheal_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/spheal/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spheal_palette:: @ 8E085DC - .incbin "graphics/pokemon/palettes/spheal_palette.gbapal.lz" + .incbin "graphics/pokemon/spheal/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_spheal_back_pic:: @ 8E08604 - .incbin "graphics/pokemon/back_pics/spheal_back_pic.4bpp.lz" + .incbin "graphics/pokemon/spheal/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spheal_shiny_palette:: @ 8E08800 - .incbin "graphics/pokemon/palettes/spheal_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/spheal/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_spheal_icon:: @ 8E08828 - .incbin "graphics/pokemon/icons/spheal_icon.4bpp" + .incbin "graphics/pokemon/spheal/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_spheal_footprint:: @ 8E08C28 - .incbin "graphics/pokemon/footprints/spheal_footprint.1bpp" + .incbin "graphics/pokemon/spheal/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_sealeo_still_front_pic:: @ 8E08C48 - .incbin "graphics/pokemon/front_pics/sealeo_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/sealeo/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sealeo_palette:: @ 8E08FC8 - .incbin "graphics/pokemon/palettes/sealeo_palette.gbapal.lz" + .incbin "graphics/pokemon/sealeo/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_sealeo_back_pic:: @ 8E08FF0 - .incbin "graphics/pokemon/back_pics/sealeo_back_pic.4bpp.lz" + .incbin "graphics/pokemon/sealeo/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_sealeo_shiny_palette:: @ 8E0926C - .incbin "graphics/pokemon/palettes/sealeo_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/sealeo/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_sealeo_icon:: @ 8E09294 - .incbin "graphics/pokemon/icons/sealeo_icon.4bpp" + .incbin "graphics/pokemon/sealeo/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_sealeo_footprint:: @ 8E09694 - .incbin "graphics/pokemon/footprints/sealeo_footprint.1bpp" + .incbin "graphics/pokemon/sealeo/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_walrein_still_front_pic:: @ 8E096B4 - .incbin "graphics/pokemon/front_pics/walrein_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/walrein/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_walrein_palette:: @ 8E09B54 - .incbin "graphics/pokemon/palettes/walrein_palette.gbapal.lz" + .incbin "graphics/pokemon/walrein/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_walrein_back_pic:: @ 8E09B7C - .incbin "graphics/pokemon/back_pics/walrein_back_pic.4bpp.lz" + .incbin "graphics/pokemon/walrein/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_walrein_shiny_palette:: @ 8E09F04 - .incbin "graphics/pokemon/palettes/walrein_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/walrein/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_walrein_icon:: @ 8E09F2C - .incbin "graphics/pokemon/icons/walrein_icon.4bpp" + .incbin "graphics/pokemon/walrein/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_walrein_footprint:: @ 8E0A32C - .incbin "graphics/pokemon/footprints/walrein_footprint.1bpp" + .incbin "graphics/pokemon/walrein/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_cacnea_still_front_pic:: @ 8E0A34C - .incbin "graphics/pokemon/front_pics/cacnea_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/cacnea/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cacnea_palette:: @ 8E0A65C - .incbin "graphics/pokemon/palettes/cacnea_palette.gbapal.lz" + .incbin "graphics/pokemon/cacnea/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_cacnea_back_pic:: @ 8E0A684 - .incbin "graphics/pokemon/back_pics/cacnea_back_pic.4bpp.lz" + .incbin "graphics/pokemon/cacnea/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cacnea_shiny_palette:: @ 8E0A9E4 - .incbin "graphics/pokemon/palettes/cacnea_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/cacnea/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_cacnea_icon:: @ 8E0AA0C - .incbin "graphics/pokemon/icons/cacnea_icon.4bpp" + .incbin "graphics/pokemon/cacnea/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_cacnea_footprint:: @ 8E0AE0C - .incbin "graphics/pokemon/footprints/cacnea_footprint.1bpp" + .incbin "graphics/pokemon/cacnea/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_cacturne_still_front_pic:: @ 8E0AE2C - .incbin "graphics/pokemon/front_pics/cacturne_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/cacturne/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cacturne_palette:: @ 8E0B264 - .incbin "graphics/pokemon/palettes/cacturne_palette.gbapal.lz" + .incbin "graphics/pokemon/cacturne/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_cacturne_back_pic:: @ 8E0B28C - .incbin "graphics/pokemon/back_pics/cacturne_back_pic.4bpp.lz" + .incbin "graphics/pokemon/cacturne/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cacturne_shiny_palette:: @ 8E0B58C - .incbin "graphics/pokemon/palettes/cacturne_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/cacturne/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_cacturne_icon:: @ 8E0B5B4 - .incbin "graphics/pokemon/icons/cacturne_icon.4bpp" + .incbin "graphics/pokemon/cacturne/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_cacturne_footprint:: @ 8E0B9B4 - .incbin "graphics/pokemon/footprints/cacturne_footprint.1bpp" + .incbin "graphics/pokemon/cacturne/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_snorunt_still_front_pic:: @ 8E0B9D4 - .incbin "graphics/pokemon/front_pics/snorunt_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/snorunt/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_snorunt_palette:: @ 8E0BC98 - .incbin "graphics/pokemon/palettes/snorunt_palette.gbapal.lz" + .incbin "graphics/pokemon/snorunt/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_snorunt_back_pic:: @ 8E0BCC0 - .incbin "graphics/pokemon/back_pics/snorunt_back_pic.4bpp.lz" + .incbin "graphics/pokemon/snorunt/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_snorunt_shiny_palette:: @ 8E0BFA4 - .incbin "graphics/pokemon/palettes/snorunt_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/snorunt/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_snorunt_icon:: @ 8E0BFCC - .incbin "graphics/pokemon/icons/snorunt_icon.4bpp" + .incbin "graphics/pokemon/snorunt/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_snorunt_footprint:: @ 8E0C3CC - .incbin "graphics/pokemon/footprints/snorunt_footprint.1bpp" + .incbin "graphics/pokemon/snorunt/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_glalie_still_front_pic:: @ 8E0C3EC - .incbin "graphics/pokemon/front_pics/glalie_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/glalie/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_glalie_palette:: @ 8E0C7B4 - .incbin "graphics/pokemon/palettes/glalie_palette.gbapal.lz" + .incbin "graphics/pokemon/glalie/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_glalie_back_pic:: @ 8E0C7DC - .incbin "graphics/pokemon/back_pics/glalie_back_pic.4bpp.lz" + .incbin "graphics/pokemon/glalie/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_glalie_shiny_palette:: @ 8E0CB8C - .incbin "graphics/pokemon/palettes/glalie_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/glalie/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_glalie_icon:: @ 8E0CBB4 - .incbin "graphics/pokemon/icons/glalie_icon.4bpp" + .incbin "graphics/pokemon/glalie/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_glalie_footprint:: @ 8E0CFB4 - .incbin "graphics/pokemon/footprints/glalie_footprint.1bpp" + .incbin "graphics/pokemon/glalie/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_lunatone_still_front_pic:: @ 8E0CFD4 - .incbin "graphics/pokemon/front_pics/lunatone_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/lunatone/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lunatone_palette:: @ 8E0D2FC - .incbin "graphics/pokemon/palettes/lunatone_palette.gbapal.lz" + .incbin "graphics/pokemon/lunatone/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_lunatone_back_pic:: @ 8E0D324 - .incbin "graphics/pokemon/back_pics/lunatone_back_pic.4bpp.lz" + .incbin "graphics/pokemon/lunatone/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lunatone_shiny_palette:: @ 8E0D67C - .incbin "graphics/pokemon/palettes/lunatone_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/lunatone/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_lunatone_icon:: @ 8E0D6A4 - .incbin "graphics/pokemon/icons/lunatone_icon.4bpp" + .incbin "graphics/pokemon/lunatone/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_lunatone_footprint:: @ 8E0DAA4 - .incbin "graphics/pokemon/footprints/lunatone_footprint.1bpp" + .incbin "graphics/pokemon/lunatone/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_solrock_still_front_pic:: @ 8E0DAC4 - .incbin "graphics/pokemon/front_pics/solrock_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/solrock/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_solrock_palette:: @ 8E0DF10 - .incbin "graphics/pokemon/palettes/solrock_palette.gbapal.lz" + .incbin "graphics/pokemon/solrock/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_solrock_back_pic:: @ 8E0DF38 - .incbin "graphics/pokemon/back_pics/solrock_back_pic.4bpp.lz" + .incbin "graphics/pokemon/solrock/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_solrock_shiny_palette:: @ 8E0E324 - .incbin "graphics/pokemon/palettes/solrock_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/solrock/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_solrock_icon:: @ 8E0E34C - .incbin "graphics/pokemon/icons/solrock_icon.4bpp" + .incbin "graphics/pokemon/solrock/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_solrock_footprint:: @ 8E0E74C - .incbin "graphics/pokemon/footprints/solrock_footprint.1bpp" + .incbin "graphics/pokemon/solrock/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_azurill_still_front_pic:: @ 8E0E76C - .incbin "graphics/pokemon/front_pics/azurill_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/azurill/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_azurill_palette:: @ 8E0EA34 - .incbin "graphics/pokemon/palettes/azurill_palette.gbapal.lz" + .incbin "graphics/pokemon/azurill/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_azurill_back_pic:: @ 8E0EA5C - .incbin "graphics/pokemon/back_pics/azurill_back_pic.4bpp.lz" + .incbin "graphics/pokemon/azurill/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_azurill_shiny_palette:: @ 8E0ED74 - .incbin "graphics/pokemon/palettes/azurill_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/azurill/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_azurill_icon:: @ 8E0ED9C - .incbin "graphics/pokemon/icons/azurill_icon.4bpp" + .incbin "graphics/pokemon/azurill/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_azurill_footprint:: @ 8E0F19C - .incbin "graphics/pokemon/footprints/azurill_footprint.1bpp" + .incbin "graphics/pokemon/azurill/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_spoink_still_front_pic:: @ 8E0F1BC - .incbin "graphics/pokemon/front_pics/spoink_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/spoink/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spoink_palette:: @ 8E0F428 - .incbin "graphics/pokemon/palettes/spoink_palette.gbapal.lz" + .incbin "graphics/pokemon/spoink/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_spoink_back_pic:: @ 8E0F450 - .incbin "graphics/pokemon/back_pics/spoink_back_pic.4bpp.lz" + .incbin "graphics/pokemon/spoink/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_spoink_shiny_palette:: @ 8E0F690 - .incbin "graphics/pokemon/palettes/spoink_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/spoink/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_spoink_icon:: @ 8E0F6B8 - .incbin "graphics/pokemon/icons/spoink_icon.4bpp" + .incbin "graphics/pokemon/spoink/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_spoink_footprint:: @ 8E0FAB8 - .incbin "graphics/pokemon/footprints/spoink_footprint.1bpp" + .incbin "graphics/pokemon/spoink/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_grumpig_still_front_pic:: @ 8E0FAD8 - .incbin "graphics/pokemon/front_pics/grumpig_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/grumpig/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_grumpig_palette:: @ 8E0FE94 - .incbin "graphics/pokemon/palettes/grumpig_palette.gbapal.lz" + .incbin "graphics/pokemon/grumpig/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_grumpig_back_pic:: @ 8E0FEBC - .incbin "graphics/pokemon/back_pics/grumpig_back_pic.4bpp.lz" + .incbin "graphics/pokemon/grumpig/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_grumpig_shiny_palette:: @ 8E1021C - .incbin "graphics/pokemon/palettes/grumpig_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/grumpig/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_grumpig_icon:: @ 8E10244 - .incbin "graphics/pokemon/icons/grumpig_icon.4bpp" + .incbin "graphics/pokemon/grumpig/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_grumpig_footprint:: @ 8E10644 - .incbin "graphics/pokemon/footprints/grumpig_footprint.1bpp" + .incbin "graphics/pokemon/grumpig/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_plusle_still_front_pic:: @ 8E10664 - .incbin "graphics/pokemon/front_pics/plusle_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/plusle/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_plusle_palette:: @ 8E108F0 - .incbin "graphics/pokemon/palettes/plusle_palette.gbapal.lz" + .incbin "graphics/pokemon/plusle/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_plusle_back_pic:: @ 8E10918 - .incbin "graphics/pokemon/back_pics/plusle_back_pic.4bpp.lz" + .incbin "graphics/pokemon/plusle/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_plusle_shiny_palette:: @ 8E10BD0 - .incbin "graphics/pokemon/palettes/plusle_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/plusle/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_plusle_icon:: @ 8E10BF8 - .incbin "graphics/pokemon/icons/plusle_icon.4bpp" + .incbin "graphics/pokemon/plusle/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_plusle_footprint:: @ 8E10FF8 - .incbin "graphics/pokemon/footprints/plusle_footprint.1bpp" + .incbin "graphics/pokemon/plusle/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_minun_still_front_pic:: @ 8E11018 - .incbin "graphics/pokemon/front_pics/minun_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/minun/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_minun_palette:: @ 8E11280 - .incbin "graphics/pokemon/palettes/minun_palette.gbapal.lz" + .incbin "graphics/pokemon/minun/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_minun_back_pic:: @ 8E112A8 - .incbin "graphics/pokemon/back_pics/minun_back_pic.4bpp.lz" + .incbin "graphics/pokemon/minun/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_minun_shiny_palette:: @ 8E11570 - .incbin "graphics/pokemon/palettes/minun_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/minun/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_minun_icon:: @ 8E11598 - .incbin "graphics/pokemon/icons/minun_icon.4bpp" + .incbin "graphics/pokemon/minun/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_minun_footprint:: @ 8E11998 - .incbin "graphics/pokemon/footprints/minun_footprint.1bpp" + .incbin "graphics/pokemon/minun/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_mawile_still_front_pic:: @ 8E119B8 - .incbin "graphics/pokemon/front_pics/mawile_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/mawile/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mawile_palette:: @ 8E11D74 - .incbin "graphics/pokemon/palettes/mawile_palette.gbapal.lz" + .incbin "graphics/pokemon/mawile/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_mawile_back_pic:: @ 8E11D9C - .incbin "graphics/pokemon/back_pics/mawile_back_pic.4bpp.lz" + .incbin "graphics/pokemon/mawile/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_mawile_shiny_palette:: @ 8E1219C - .incbin "graphics/pokemon/palettes/mawile_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/mawile/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_mawile_icon:: @ 8E121C4 - .incbin "graphics/pokemon/icons/mawile_icon.4bpp" + .incbin "graphics/pokemon/mawile/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_mawile_footprint:: @ 8E125C4 - .incbin "graphics/pokemon/footprints/mawile_footprint.1bpp" + .incbin "graphics/pokemon/mawile/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_meditite_still_front_pic:: @ 8E125E4 - .incbin "graphics/pokemon/front_pics/meditite_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/meditite/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_meditite_palette:: @ 8E1289C - .incbin "graphics/pokemon/palettes/meditite_palette.gbapal.lz" + .incbin "graphics/pokemon/meditite/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_meditite_back_pic:: @ 8E128C4 - .incbin "graphics/pokemon/back_pics/meditite_back_pic.4bpp.lz" + .incbin "graphics/pokemon/meditite/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_meditite_shiny_palette:: @ 8E12B8C - .incbin "graphics/pokemon/palettes/meditite_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/meditite/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_meditite_icon:: @ 8E12BB0 - .incbin "graphics/pokemon/icons/meditite_icon.4bpp" + .incbin "graphics/pokemon/meditite/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_meditite_footprint:: @ 8E12FB0 - .incbin "graphics/pokemon/footprints/meditite_footprint.1bpp" + .incbin "graphics/pokemon/meditite/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_medicham_still_front_pic:: @ 8E12FD0 - .incbin "graphics/pokemon/front_pics/medicham_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/medicham/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_medicham_palette:: @ 8E13300 - .incbin "graphics/pokemon/palettes/medicham_palette.gbapal.lz" + .incbin "graphics/pokemon/medicham/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_medicham_back_pic:: @ 8E13328 - .incbin "graphics/pokemon/back_pics/medicham_back_pic.4bpp.lz" + .incbin "graphics/pokemon/medicham/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_medicham_shiny_palette:: @ 8E13660 - .incbin "graphics/pokemon/palettes/medicham_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/medicham/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_medicham_icon:: @ 8E13688 - .incbin "graphics/pokemon/icons/medicham_icon.4bpp" + .incbin "graphics/pokemon/medicham/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_medicham_footprint:: @ 8E13A88 - .incbin "graphics/pokemon/footprints/medicham_footprint.1bpp" + .incbin "graphics/pokemon/medicham/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_swablu_still_front_pic:: @ 8E13AA8 - .incbin "graphics/pokemon/front_pics/swablu_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/swablu/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swablu_palette:: @ 8E13D80 - .incbin "graphics/pokemon/palettes/swablu_palette.gbapal.lz" + .incbin "graphics/pokemon/swablu/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_swablu_back_pic:: @ 8E13DA8 - .incbin "graphics/pokemon/back_pics/swablu_back_pic.4bpp.lz" + .incbin "graphics/pokemon/swablu/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swablu_shiny_palette:: @ 8E14160 - .incbin "graphics/pokemon/palettes/swablu_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/swablu/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_swablu_icon:: @ 8E14188 - .incbin "graphics/pokemon/icons/swablu_icon.4bpp" + .incbin "graphics/pokemon/swablu/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_swablu_footprint:: @ 8E14588 - .incbin "graphics/pokemon/footprints/swablu_footprint.1bpp" + .incbin "graphics/pokemon/swablu/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_altaria_still_front_pic:: @ 8E145A8 - .incbin "graphics/pokemon/front_pics/altaria_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/altaria/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_altaria_palette:: @ 8E14984 - .incbin "graphics/pokemon/palettes/altaria_palette.gbapal.lz" + .incbin "graphics/pokemon/altaria/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_altaria_back_pic:: @ 8E149AC - .incbin "graphics/pokemon/back_pics/altaria_back_pic.4bpp.lz" + .incbin "graphics/pokemon/altaria/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_altaria_shiny_palette:: @ 8E14D24 - .incbin "graphics/pokemon/palettes/altaria_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/altaria/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_altaria_icon:: @ 8E14D4C - .incbin "graphics/pokemon/icons/altaria_icon.4bpp" + .incbin "graphics/pokemon/altaria/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_altaria_footprint:: @ 8E1514C - .incbin "graphics/pokemon/footprints/altaria_footprint.1bpp" + .incbin "graphics/pokemon/altaria/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_wynaut_still_front_pic:: @ 8E1516C - .incbin "graphics/pokemon/front_pics/wynaut_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/wynaut/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wynaut_palette:: @ 8E15404 - .incbin "graphics/pokemon/palettes/wynaut_palette.gbapal.lz" + .incbin "graphics/pokemon/wynaut/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_wynaut_back_pic:: @ 8E1542C - .incbin "graphics/pokemon/back_pics/wynaut_back_pic.4bpp.lz" + .incbin "graphics/pokemon/wynaut/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_wynaut_shiny_palette:: @ 8E156BC - .incbin "graphics/pokemon/palettes/wynaut_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/wynaut/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_wynaut_icon:: @ 8E156E4 - .incbin "graphics/pokemon/icons/wynaut_icon.4bpp" + .incbin "graphics/pokemon/wynaut/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_wynaut_footprint:: @ 8E15AE4 - .incbin "graphics/pokemon/footprints/wynaut_footprint.1bpp" + .incbin "graphics/pokemon/wynaut/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_duskull_still_front_pic:: @ 8E15B04 - .incbin "graphics/pokemon/front_pics/duskull_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/duskull/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_duskull_palette:: @ 8E15DF4 - .incbin "graphics/pokemon/palettes/duskull_palette.gbapal.lz" + .incbin "graphics/pokemon/duskull/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_duskull_back_pic:: @ 8E15E1C - .incbin "graphics/pokemon/back_pics/duskull_back_pic.4bpp.lz" + .incbin "graphics/pokemon/duskull/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_duskull_shiny_palette:: @ 8E160CC - .incbin "graphics/pokemon/palettes/duskull_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/duskull/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_duskull_icon:: @ 8E160F4 - .incbin "graphics/pokemon/icons/duskull_icon.4bpp" + .incbin "graphics/pokemon/duskull/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_duskull_footprint:: @ 8E164F4 - .incbin "graphics/pokemon/footprints/duskull_footprint.1bpp" + .incbin "graphics/pokemon/duskull/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_dusclops_still_front_pic:: @ 8E16514 - .incbin "graphics/pokemon/front_pics/dusclops_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/dusclops/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dusclops_palette:: @ 8E168B4 - .incbin "graphics/pokemon/palettes/dusclops_palette.gbapal.lz" + .incbin "graphics/pokemon/dusclops/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_dusclops_back_pic:: @ 8E168DC - .incbin "graphics/pokemon/back_pics/dusclops_back_pic.4bpp.lz" + .incbin "graphics/pokemon/dusclops/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_dusclops_shiny_palette:: @ 8E16BC8 - .incbin "graphics/pokemon/palettes/dusclops_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/dusclops/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_dusclops_icon:: @ 8E16BF0 - .incbin "graphics/pokemon/icons/dusclops_icon.4bpp" + .incbin "graphics/pokemon/dusclops/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_dusclops_footprint:: @ 8E16FF0 - .incbin "graphics/pokemon/footprints/dusclops_footprint.1bpp" + .incbin "graphics/pokemon/dusclops/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_roselia_still_front_pic:: @ 8E17010 - .incbin "graphics/pokemon/front_pics/roselia_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/roselia/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_roselia_palette:: @ 8E1737C - .incbin "graphics/pokemon/palettes/roselia_palette.gbapal.lz" + .incbin "graphics/pokemon/roselia/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_roselia_back_pic:: @ 8E173A4 - .incbin "graphics/pokemon/back_pics/roselia_back_pic.4bpp.lz" + .incbin "graphics/pokemon/roselia/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_roselia_shiny_palette:: @ 8E1776C - .incbin "graphics/pokemon/palettes/roselia_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/roselia/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_roselia_icon:: @ 8E17794 - .incbin "graphics/pokemon/icons/roselia_icon.4bpp" + .incbin "graphics/pokemon/roselia/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_roselia_footprint:: @ 8E17B94 - .incbin "graphics/pokemon/footprints/roselia_footprint.1bpp" + .incbin "graphics/pokemon/roselia/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_slakoth_still_front_pic:: @ 8E17BB4 - .incbin "graphics/pokemon/front_pics/slakoth_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/slakoth/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slakoth_palette:: @ 8E17E9C - .incbin "graphics/pokemon/palettes/slakoth_palette.gbapal.lz" + .incbin "graphics/pokemon/slakoth/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_slakoth_back_pic:: @ 8E17EC4 - .incbin "graphics/pokemon/back_pics/slakoth_back_pic.4bpp.lz" + .incbin "graphics/pokemon/slakoth/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slakoth_shiny_palette:: @ 8E181AC - .incbin "graphics/pokemon/palettes/slakoth_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/slakoth/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_slakoth_icon:: @ 8E181D4 - .incbin "graphics/pokemon/icons/slakoth_icon.4bpp" + .incbin "graphics/pokemon/slakoth/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_slakoth_footprint:: @ 8E185D4 - .incbin "graphics/pokemon/footprints/slakoth_footprint.1bpp" + .incbin "graphics/pokemon/slakoth/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_vigoroth_still_front_pic:: @ 8E185F4 - .incbin "graphics/pokemon/front_pics/vigoroth_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/vigoroth/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vigoroth_palette:: @ 8E189F0 - .incbin "graphics/pokemon/palettes/vigoroth_palette.gbapal.lz" + .incbin "graphics/pokemon/vigoroth/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_vigoroth_back_pic:: @ 8E18A18 - .incbin "graphics/pokemon/back_pics/vigoroth_back_pic.4bpp.lz" + .incbin "graphics/pokemon/vigoroth/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_vigoroth_shiny_palette:: @ 8E18CE0 - .incbin "graphics/pokemon/palettes/vigoroth_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/vigoroth/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_vigoroth_icon:: @ 8E18D08 - .incbin "graphics/pokemon/icons/vigoroth_icon.4bpp" + .incbin "graphics/pokemon/vigoroth/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_vigoroth_footprint:: @ 8E19108 - .incbin "graphics/pokemon/footprints/vigoroth_footprint.1bpp" + .incbin "graphics/pokemon/vigoroth/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_slaking_still_front_pic:: @ 8E19128 - .incbin "graphics/pokemon/front_pics/slaking_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/slaking/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slaking_palette:: @ 8E195FC - .incbin "graphics/pokemon/palettes/slaking_palette.gbapal.lz" + .incbin "graphics/pokemon/slaking/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_slaking_back_pic:: @ 8E19624 - .incbin "graphics/pokemon/back_pics/slaking_back_pic.4bpp.lz" + .incbin "graphics/pokemon/slaking/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_slaking_shiny_palette:: @ 8E199E8 - .incbin "graphics/pokemon/palettes/slaking_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/slaking/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_slaking_icon:: @ 8E19A10 - .incbin "graphics/pokemon/icons/slaking_icon.4bpp" + .incbin "graphics/pokemon/slaking/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_slaking_footprint:: @ 8E19E10 - .incbin "graphics/pokemon/footprints/slaking_footprint.1bpp" + .incbin "graphics/pokemon/slaking/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_gulpin_still_front_pic:: @ 8E19E30 - .incbin "graphics/pokemon/front_pics/gulpin_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/gulpin/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gulpin_palette:: @ 8E1A048 - .incbin "graphics/pokemon/palettes/gulpin_palette.gbapal.lz" + .incbin "graphics/pokemon/gulpin/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_gulpin_back_pic:: @ 8E1A070 - .incbin "graphics/pokemon/back_pics/gulpin_back_pic.4bpp.lz" + .incbin "graphics/pokemon/gulpin/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gulpin_shiny_palette:: @ 8E1A2F4 - .incbin "graphics/pokemon/palettes/gulpin_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/gulpin/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_gulpin_icon:: @ 8E1A31C - .incbin "graphics/pokemon/icons/gulpin_icon.4bpp" + .incbin "graphics/pokemon/gulpin/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_gulpin_footprint:: @ 8E1A71C - .incbin "graphics/pokemon/footprints/gulpin_footprint.1bpp" + .incbin "graphics/pokemon/gulpin/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_swalot_still_front_pic:: @ 8E1A73C - .incbin "graphics/pokemon/front_pics/swalot_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/swalot/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swalot_palette:: @ 8E1AA80 - .incbin "graphics/pokemon/palettes/swalot_palette.gbapal.lz" + .incbin "graphics/pokemon/swalot/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_swalot_back_pic:: @ 8E1AAA8 - .incbin "graphics/pokemon/back_pics/swalot_back_pic.4bpp.lz" + .incbin "graphics/pokemon/swalot/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_swalot_shiny_palette:: @ 8E1ADF0 - .incbin "graphics/pokemon/palettes/swalot_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/swalot/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_swalot_icon:: @ 8E1AE18 - .incbin "graphics/pokemon/icons/swalot_icon.4bpp" + .incbin "graphics/pokemon/swalot/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_swalot_footprint:: @ 8E1B218 - .incbin "graphics/pokemon/footprints/swalot_footprint.1bpp" + .incbin "graphics/pokemon/swalot/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_tropius_still_front_pic:: @ 8E1B238 - .incbin "graphics/pokemon/front_pics/tropius_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/tropius/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tropius_palette:: @ 8E1B7B0 - .incbin "graphics/pokemon/palettes/tropius_palette.gbapal.lz" + .incbin "graphics/pokemon/tropius/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_tropius_back_pic:: @ 8E1B7D8 - .incbin "graphics/pokemon/back_pics/tropius_back_pic.4bpp.lz" + .incbin "graphics/pokemon/tropius/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_tropius_shiny_palette:: @ 8E1BAFC - .incbin "graphics/pokemon/palettes/tropius_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/tropius/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_tropius_icon:: @ 8E1BB24 - .incbin "graphics/pokemon/icons/tropius_icon.4bpp" + .incbin "graphics/pokemon/tropius/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_tropius_footprint:: @ 8E1BF24 - .incbin "graphics/pokemon/footprints/tropius_footprint.1bpp" + .incbin "graphics/pokemon/tropius/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_whismur_still_front_pic:: @ 8E1BF44 - .incbin "graphics/pokemon/front_pics/whismur_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/whismur/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_whismur_palette:: @ 8E1C1D8 - .incbin "graphics/pokemon/palettes/whismur_palette.gbapal.lz" + .incbin "graphics/pokemon/whismur/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_whismur_back_pic:: @ 8E1C200 - .incbin "graphics/pokemon/back_pics/whismur_back_pic.4bpp.lz" + .incbin "graphics/pokemon/whismur/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_whismur_shiny_palette:: @ 8E1C470 - .incbin "graphics/pokemon/palettes/whismur_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/whismur/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_whismur_icon:: @ 8E1C498 - .incbin "graphics/pokemon/icons/whismur_icon.4bpp" + .incbin "graphics/pokemon/whismur/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_whismur_footprint:: @ 8E1C898 - .incbin "graphics/pokemon/footprints/whismur_footprint.1bpp" + .incbin "graphics/pokemon/whismur/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_loudred_still_front_pic:: @ 8E1C8B8 - .incbin "graphics/pokemon/front_pics/loudred_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/loudred/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_loudred_palette:: @ 8E1CD30 - .incbin "graphics/pokemon/palettes/loudred_palette.gbapal.lz" + .incbin "graphics/pokemon/loudred/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_loudred_back_pic:: @ 8E1CD58 - .incbin "graphics/pokemon/back_pics/loudred_back_pic.4bpp.lz" + .incbin "graphics/pokemon/loudred/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_loudred_shiny_palette:: @ 8E1D0C8 - .incbin "graphics/pokemon/palettes/loudred_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/loudred/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_loudred_icon:: @ 8E1D0F0 - .incbin "graphics/pokemon/icons/loudred_icon.4bpp" + .incbin "graphics/pokemon/loudred/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_loudred_footprint:: @ 8E1D4F0 - .incbin "graphics/pokemon/footprints/loudred_footprint.1bpp" + .incbin "graphics/pokemon/loudred/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_exploud_still_front_pic:: @ 8E1D510 - .incbin "graphics/pokemon/front_pics/exploud_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/exploud/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_exploud_palette:: @ 8E1DA78 - .incbin "graphics/pokemon/palettes/exploud_palette.gbapal.lz" + .incbin "graphics/pokemon/exploud/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_exploud_back_pic:: @ 8E1DAA0 - .incbin "graphics/pokemon/back_pics/exploud_back_pic.4bpp.lz" + .incbin "graphics/pokemon/exploud/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_exploud_shiny_palette:: @ 8E1DEAC - .incbin "graphics/pokemon/palettes/exploud_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/exploud/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_exploud_icon:: @ 8E1DED4 - .incbin "graphics/pokemon/icons/exploud_icon.4bpp" + .incbin "graphics/pokemon/exploud/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_exploud_footprint:: @ 8E1E2D4 - .incbin "graphics/pokemon/footprints/exploud_footprint.1bpp" + .incbin "graphics/pokemon/exploud/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_clamperl_still_front_pic:: @ 8E1E2F4 - .incbin "graphics/pokemon/front_pics/clamperl_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/clamperl/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_clamperl_palette:: @ 8E1E5CC - .incbin "graphics/pokemon/palettes/clamperl_palette.gbapal.lz" + .incbin "graphics/pokemon/clamperl/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_clamperl_back_pic:: @ 8E1E5F4 - .incbin "graphics/pokemon/back_pics/clamperl_back_pic.4bpp.lz" + .incbin "graphics/pokemon/clamperl/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_clamperl_shiny_palette:: @ 8E1E888 - .incbin "graphics/pokemon/palettes/clamperl_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/clamperl/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_clamperl_icon:: @ 8E1E8B0 - .incbin "graphics/pokemon/icons/clamperl_icon.4bpp" + .incbin "graphics/pokemon/clamperl/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_clamperl_footprint:: @ 8E1ECB0 - .incbin "graphics/pokemon/footprints/clamperl_footprint.1bpp" + .incbin "graphics/pokemon/clamperl/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_huntail_still_front_pic:: @ 8E1ECD0 - .incbin "graphics/pokemon/front_pics/huntail_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/huntail/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_huntail_palette:: @ 8E1F09C - .incbin "graphics/pokemon/palettes/huntail_palette.gbapal.lz" + .incbin "graphics/pokemon/huntail/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_huntail_back_pic:: @ 8E1F0C4 - .incbin "graphics/pokemon/back_pics/huntail_back_pic.4bpp.lz" + .incbin "graphics/pokemon/huntail/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_huntail_shiny_palette:: @ 8E1F418 - .incbin "graphics/pokemon/palettes/huntail_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/huntail/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_huntail_icon:: @ 8E1F440 - .incbin "graphics/pokemon/icons/huntail_icon.4bpp" + .incbin "graphics/pokemon/huntail/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_huntail_footprint:: @ 8E1F840 - .incbin "graphics/pokemon/footprints/huntail_footprint.1bpp" + .incbin "graphics/pokemon/huntail/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_gorebyss_still_front_pic:: @ 8E1F860 - .incbin "graphics/pokemon/front_pics/gorebyss_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/gorebyss/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gorebyss_palette:: @ 8E1FB70 - .incbin "graphics/pokemon/palettes/gorebyss_palette.gbapal.lz" + .incbin "graphics/pokemon/gorebyss/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_gorebyss_back_pic:: @ 8E1FB98 - .incbin "graphics/pokemon/back_pics/gorebyss_back_pic.4bpp.lz" + .incbin "graphics/pokemon/gorebyss/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gorebyss_shiny_palette:: @ 8E1FE80 - .incbin "graphics/pokemon/palettes/gorebyss_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/gorebyss/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_gorebyss_icon:: @ 8E1FEA8 - .incbin "graphics/pokemon/icons/gorebyss_icon.4bpp" + .incbin "graphics/pokemon/gorebyss/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_gorebyss_footprint:: @ 8E202A8 - .incbin "graphics/pokemon/footprints/gorebyss_footprint.1bpp" + .incbin "graphics/pokemon/gorebyss/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_absol_still_front_pic:: @ 8E202C8 - .incbin "graphics/pokemon/front_pics/absol_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/absol/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_absol_palette:: @ 8E206F8 - .incbin "graphics/pokemon/palettes/absol_palette.gbapal.lz" + .incbin "graphics/pokemon/absol/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_absol_back_pic:: @ 8E20720 - .incbin "graphics/pokemon/back_pics/absol_back_pic.4bpp.lz" + .incbin "graphics/pokemon/absol/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_absol_shiny_palette:: @ 8E20A80 - .incbin "graphics/pokemon/palettes/absol_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/absol/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_absol_icon:: @ 8E20AA8 - .incbin "graphics/pokemon/icons/absol_icon.4bpp" + .incbin "graphics/pokemon/absol/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_absol_footprint:: @ 8E20EA8 - .incbin "graphics/pokemon/footprints/absol_footprint.1bpp" + .incbin "graphics/pokemon/absol/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_shuppet_still_front_pic:: @ 8E20EC8 - .incbin "graphics/pokemon/front_pics/shuppet_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/shuppet/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shuppet_palette:: @ 8E21100 - .incbin "graphics/pokemon/palettes/shuppet_palette.gbapal.lz" + .incbin "graphics/pokemon/shuppet/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_shuppet_back_pic:: @ 8E21128 - .incbin "graphics/pokemon/back_pics/shuppet_back_pic.4bpp.lz" + .incbin "graphics/pokemon/shuppet/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shuppet_shiny_palette:: @ 8E213C0 - .incbin "graphics/pokemon/palettes/shuppet_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/shuppet/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_shuppet_icon:: @ 8E213E8 - .incbin "graphics/pokemon/icons/shuppet_icon.4bpp" + .incbin "graphics/pokemon/shuppet/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_shuppet_footprint:: @ 8E217E8 - .incbin "graphics/pokemon/footprints/shuppet_footprint.1bpp" + .incbin "graphics/pokemon/shuppet/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_banette_still_front_pic:: @ 8E21808 - .incbin "graphics/pokemon/front_pics/banette_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/banette/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_banette_palette:: @ 8E21ABC - .incbin "graphics/pokemon/palettes/banette_palette.gbapal.lz" + .incbin "graphics/pokemon/banette/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_banette_back_pic:: @ 8E21AE4 - .incbin "graphics/pokemon/back_pics/banette_back_pic.4bpp.lz" + .incbin "graphics/pokemon/banette/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_banette_shiny_palette:: @ 8E21D60 - .incbin "graphics/pokemon/palettes/banette_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/banette/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_banette_icon:: @ 8E21D88 - .incbin "graphics/pokemon/icons/banette_icon.4bpp" + .incbin "graphics/pokemon/banette/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_banette_footprint:: @ 8E22188 - .incbin "graphics/pokemon/footprints/banette_footprint.1bpp" + .incbin "graphics/pokemon/banette/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_seviper_still_front_pic:: @ 8E221A8 - .incbin "graphics/pokemon/front_pics/seviper_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/seviper/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seviper_palette:: @ 8E225C8 - .incbin "graphics/pokemon/palettes/seviper_palette.gbapal.lz" + .incbin "graphics/pokemon/seviper/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_seviper_back_pic:: @ 8E225F0 - .incbin "graphics/pokemon/back_pics/seviper_back_pic.4bpp.lz" + .incbin "graphics/pokemon/seviper/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_seviper_shiny_palette:: @ 8E22A7C - .incbin "graphics/pokemon/palettes/seviper_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/seviper/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_seviper_icon:: @ 8E22AA4 - .incbin "graphics/pokemon/icons/seviper_icon.4bpp" + .incbin "graphics/pokemon/seviper/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_seviper_footprint:: @ 8E22EA4 - .incbin "graphics/pokemon/footprints/seviper_footprint.1bpp" + .incbin "graphics/pokemon/seviper/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_zangoose_still_front_pic:: @ 8E22EC4 - .incbin "graphics/pokemon/front_pics/zangoose_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/zangoose/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_zangoose_palette:: @ 8E23290 - .incbin "graphics/pokemon/palettes/zangoose_palette.gbapal.lz" + .incbin "graphics/pokemon/zangoose/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_zangoose_back_pic:: @ 8E232B8 - .incbin "graphics/pokemon/back_pics/zangoose_back_pic.4bpp.lz" + .incbin "graphics/pokemon/zangoose/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_zangoose_shiny_palette:: @ 8E2362C - .incbin "graphics/pokemon/palettes/zangoose_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/zangoose/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_zangoose_icon:: @ 8E23654 - .incbin "graphics/pokemon/icons/zangoose_icon.4bpp" + .incbin "graphics/pokemon/zangoose/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_zangoose_footprint:: @ 8E23A54 - .incbin "graphics/pokemon/footprints/zangoose_footprint.1bpp" + .incbin "graphics/pokemon/zangoose/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_relicanth_still_front_pic:: @ 8E23A74 - .incbin "graphics/pokemon/front_pics/relicanth_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/relicanth/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_relicanth_palette:: @ 8E23E08 - .incbin "graphics/pokemon/palettes/relicanth_palette.gbapal.lz" + .incbin "graphics/pokemon/relicanth/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_relicanth_back_pic:: @ 8E23E30 - .incbin "graphics/pokemon/back_pics/relicanth_back_pic.4bpp.lz" + .incbin "graphics/pokemon/relicanth/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_relicanth_shiny_palette:: @ 8E24188 - .incbin "graphics/pokemon/palettes/relicanth_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/relicanth/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_relicanth_icon:: @ 8E241B0 - .incbin "graphics/pokemon/icons/relicanth_icon.4bpp" + .incbin "graphics/pokemon/relicanth/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_relicanth_footprint:: @ 8E245B0 - .incbin "graphics/pokemon/footprints/relicanth_footprint.1bpp" + .incbin "graphics/pokemon/relicanth/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_aron_still_front_pic:: @ 8E245D0 - .incbin "graphics/pokemon/front_pics/aron_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/aron/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_aron_palette:: @ 8E247B8 - .incbin "graphics/pokemon/palettes/aron_palette.gbapal.lz" + .incbin "graphics/pokemon/aron/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_aron_back_pic:: @ 8E247E0 - .incbin "graphics/pokemon/back_pics/aron_back_pic.4bpp.lz" + .incbin "graphics/pokemon/aron/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_aron_shiny_palette:: @ 8E24A08 - .incbin "graphics/pokemon/palettes/aron_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/aron/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_aron_icon:: @ 8E24A30 - .incbin "graphics/pokemon/icons/aron_icon.4bpp" + .incbin "graphics/pokemon/aron/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_aron_footprint:: @ 8E24E30 - .incbin "graphics/pokemon/footprints/aron_footprint.1bpp" + .incbin "graphics/pokemon/aron/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_lairon_still_front_pic:: @ 8E24E50 - .incbin "graphics/pokemon/front_pics/lairon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/lairon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lairon_palette:: @ 8E2521C - .incbin "graphics/pokemon/palettes/lairon_palette.gbapal.lz" + .incbin "graphics/pokemon/lairon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_lairon_back_pic:: @ 8E25244 - .incbin "graphics/pokemon/back_pics/lairon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/lairon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lairon_shiny_palette:: @ 8E25530 - .incbin "graphics/pokemon/palettes/lairon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/lairon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_lairon_icon:: @ 8E25558 - .incbin "graphics/pokemon/icons/lairon_icon.4bpp" + .incbin "graphics/pokemon/lairon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_lairon_footprint:: @ 8E25958 - .incbin "graphics/pokemon/footprints/lairon_footprint.1bpp" + .incbin "graphics/pokemon/lairon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_aggron_still_front_pic:: @ 8E25978 - .incbin "graphics/pokemon/front_pics/aggron_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/aggron/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_aggron_palette:: @ 8E25EF4 - .incbin "graphics/pokemon/palettes/aggron_palette.gbapal.lz" + .incbin "graphics/pokemon/aggron/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_aggron_back_pic:: @ 8E25F1C - .incbin "graphics/pokemon/back_pics/aggron_back_pic.4bpp.lz" + .incbin "graphics/pokemon/aggron/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_aggron_shiny_palette:: @ 8E26344 - .incbin "graphics/pokemon/palettes/aggron_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/aggron/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_aggron_icon:: @ 8E2636C - .incbin "graphics/pokemon/icons/aggron_icon.4bpp" + .incbin "graphics/pokemon/aggron/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_aggron_footprint:: @ 8E2676C - .incbin "graphics/pokemon/footprints/aggron_footprint.1bpp" + .incbin "graphics/pokemon/aggron/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_castform_still_front_pic:: @ 8E2678C - .incbin "graphics/pokemon/front_pics/castform_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/castform/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_castform_palette:: @ 8E27214 - .incbin "graphics/pokemon/palettes/castform_palette.gbapal.lz" + .incbin "graphics/pokemon/castform/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_castform_back_pic:: @ 8E27294 - .incbin "graphics/pokemon/back_pics/castform_back_pic.4bpp.lz" + .incbin "graphics/pokemon/castform/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_castform_shiny_palette:: @ 8E27C50 - .incbin "graphics/pokemon/palettes/castform_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/castform/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_castform_icon:: @ 8E27CCC - .incbin "graphics/pokemon/icons/castform_icon.4bpp" + .incbin "graphics/pokemon/castform/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_castform_footprint:: @ 8E280CC - .incbin "graphics/pokemon/footprints/castform_footprint.1bpp" + .incbin "graphics/pokemon/castform/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_volbeat_still_front_pic:: @ 8E280EC - .incbin "graphics/pokemon/front_pics/volbeat_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/volbeat/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_volbeat_palette:: @ 8E2847C - .incbin "graphics/pokemon/palettes/volbeat_palette.gbapal.lz" + .incbin "graphics/pokemon/volbeat/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_volbeat_back_pic:: @ 8E284A4 - .incbin "graphics/pokemon/back_pics/volbeat_back_pic.4bpp.lz" + .incbin "graphics/pokemon/volbeat/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_volbeat_shiny_palette:: @ 8E28804 - .incbin "graphics/pokemon/palettes/volbeat_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/volbeat/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_volbeat_icon:: @ 8E2882C - .incbin "graphics/pokemon/icons/volbeat_icon.4bpp" + .incbin "graphics/pokemon/volbeat/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_volbeat_footprint:: @ 8E28C2C - .incbin "graphics/pokemon/footprints/volbeat_footprint.1bpp" + .incbin "graphics/pokemon/volbeat/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_illumise_still_front_pic:: @ 8E28C4C - .incbin "graphics/pokemon/front_pics/illumise_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/illumise/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_illumise_palette:: @ 8E28FC0 - .incbin "graphics/pokemon/palettes/illumise_palette.gbapal.lz" + .incbin "graphics/pokemon/illumise/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_illumise_back_pic:: @ 8E28FE8 - .incbin "graphics/pokemon/back_pics/illumise_back_pic.4bpp.lz" + .incbin "graphics/pokemon/illumise/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_illumise_shiny_palette:: @ 8E29304 - .incbin "graphics/pokemon/palettes/illumise_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/illumise/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_illumise_icon:: @ 8E2932C - .incbin "graphics/pokemon/icons/illumise_icon.4bpp" + .incbin "graphics/pokemon/illumise/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_illumise_footprint:: @ 8E2972C - .incbin "graphics/pokemon/footprints/illumise_footprint.1bpp" + .incbin "graphics/pokemon/illumise/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_lileep_still_front_pic:: @ 8E2974C - .incbin "graphics/pokemon/front_pics/lileep_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/lileep/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lileep_palette:: @ 8E29A90 - .incbin "graphics/pokemon/palettes/lileep_palette.gbapal.lz" + .incbin "graphics/pokemon/lileep/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_lileep_back_pic:: @ 8E29AB8 - .incbin "graphics/pokemon/back_pics/lileep_back_pic.4bpp.lz" + .incbin "graphics/pokemon/lileep/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_lileep_shiny_palette:: @ 8E29DFC - .incbin "graphics/pokemon/palettes/lileep_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/lileep/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_lileep_icon:: @ 8E29E24 - .incbin "graphics/pokemon/icons/lileep_icon.4bpp" + .incbin "graphics/pokemon/lileep/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_lileep_footprint:: @ 8E2A224 - .incbin "graphics/pokemon/footprints/lileep_footprint.1bpp" + .incbin "graphics/pokemon/lileep/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_cradily_still_front_pic:: @ 8E2A244 - .incbin "graphics/pokemon/front_pics/cradily_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/cradily/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cradily_palette:: @ 8E2A660 - .incbin "graphics/pokemon/palettes/cradily_palette.gbapal.lz" + .incbin "graphics/pokemon/cradily/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_cradily_back_pic:: @ 8E2A688 - .incbin "graphics/pokemon/back_pics/cradily_back_pic.4bpp.lz" + .incbin "graphics/pokemon/cradily/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_cradily_shiny_palette:: @ 8E2AA84 - .incbin "graphics/pokemon/palettes/cradily_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/cradily/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_cradily_icon:: @ 8E2AAAC - .incbin "graphics/pokemon/icons/cradily_icon.4bpp" + .incbin "graphics/pokemon/cradily/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_cradily_footprint:: @ 8E2AEAC - .incbin "graphics/pokemon/footprints/cradily_footprint.1bpp" + .incbin "graphics/pokemon/cradily/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_anorith_still_front_pic:: @ 8E2AECC - .incbin "graphics/pokemon/front_pics/anorith_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/anorith/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_anorith_palette:: @ 8E2B1F0 - .incbin "graphics/pokemon/palettes/anorith_palette.gbapal.lz" + .incbin "graphics/pokemon/anorith/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_anorith_back_pic:: @ 8E2B218 - .incbin "graphics/pokemon/back_pics/anorith_back_pic.4bpp.lz" + .incbin "graphics/pokemon/anorith/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_anorith_shiny_palette:: @ 8E2B460 - .incbin "graphics/pokemon/palettes/anorith_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/anorith/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_anorith_icon:: @ 8E2B488 - .incbin "graphics/pokemon/icons/anorith_icon.4bpp" + .incbin "graphics/pokemon/anorith/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_anorith_footprint:: @ 8E2B888 - .incbin "graphics/pokemon/footprints/anorith_footprint.1bpp" + .incbin "graphics/pokemon/anorith/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_armaldo_still_front_pic:: @ 8E2B8A8 - .incbin "graphics/pokemon/front_pics/armaldo_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/armaldo/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_armaldo_palette:: @ 8E2BE28 - .incbin "graphics/pokemon/palettes/armaldo_palette.gbapal.lz" + .incbin "graphics/pokemon/armaldo/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_armaldo_back_pic:: @ 8E2BE50 - .incbin "graphics/pokemon/back_pics/armaldo_back_pic.4bpp.lz" + .incbin "graphics/pokemon/armaldo/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_armaldo_shiny_palette:: @ 8E2C288 - .incbin "graphics/pokemon/palettes/armaldo_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/armaldo/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_armaldo_icon:: @ 8E2C2B0 - .incbin "graphics/pokemon/icons/armaldo_icon.4bpp" + .incbin "graphics/pokemon/armaldo/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_armaldo_footprint:: @ 8E2C6B0 - .incbin "graphics/pokemon/footprints/armaldo_footprint.1bpp" + .incbin "graphics/pokemon/armaldo/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_ralts_still_front_pic:: @ 8E2C6D0 - .incbin "graphics/pokemon/front_pics/ralts_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/ralts/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ralts_palette:: @ 8E2C900 - .incbin "graphics/pokemon/palettes/ralts_palette.gbapal.lz" + .incbin "graphics/pokemon/ralts/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_ralts_back_pic:: @ 8E2C928 - .incbin "graphics/pokemon/back_pics/ralts_back_pic.4bpp.lz" + .incbin "graphics/pokemon/ralts/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_ralts_shiny_palette:: @ 8E2CB64 - .incbin "graphics/pokemon/palettes/ralts_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/ralts/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_ralts_icon:: @ 8E2CB8C - .incbin "graphics/pokemon/icons/ralts_icon.4bpp" + .incbin "graphics/pokemon/ralts/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_ralts_footprint:: @ 8E2CF8C - .incbin "graphics/pokemon/footprints/ralts_footprint.1bpp" + .incbin "graphics/pokemon/ralts/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kirlia_still_front_pic:: @ 8E2CFAC - .incbin "graphics/pokemon/front_pics/kirlia_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kirlia/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kirlia_palette:: @ 8E2D2A8 - .incbin "graphics/pokemon/palettes/kirlia_palette.gbapal.lz" + .incbin "graphics/pokemon/kirlia/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kirlia_back_pic:: @ 8E2D2D0 - .incbin "graphics/pokemon/back_pics/kirlia_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kirlia/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kirlia_shiny_palette:: @ 8E2D644 - .incbin "graphics/pokemon/palettes/kirlia_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kirlia/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kirlia_icon:: @ 8E2D66C - .incbin "graphics/pokemon/icons/kirlia_icon.4bpp" + .incbin "graphics/pokemon/kirlia/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kirlia_footprint:: @ 8E2DA6C - .incbin "graphics/pokemon/footprints/kirlia_footprint.1bpp" + .incbin "graphics/pokemon/kirlia/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_gardevoir_still_front_pic:: @ 8E2DA8C - .incbin "graphics/pokemon/front_pics/gardevoir_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/gardevoir/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gardevoir_palette:: @ 8E2DE08 - .incbin "graphics/pokemon/palettes/gardevoir_palette.gbapal.lz" + .incbin "graphics/pokemon/gardevoir/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_gardevoir_back_pic:: @ 8E2DE30 - .incbin "graphics/pokemon/back_pics/gardevoir_back_pic.4bpp.lz" + .incbin "graphics/pokemon/gardevoir/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_gardevoir_shiny_palette:: @ 8E2E164 - .incbin "graphics/pokemon/palettes/gardevoir_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/gardevoir/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_gardevoir_icon:: @ 8E2E18C - .incbin "graphics/pokemon/icons/gardevoir_icon.4bpp" + .incbin "graphics/pokemon/gardevoir/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_gardevoir_footprint:: @ 8E2E58C - .incbin "graphics/pokemon/footprints/gardevoir_footprint.1bpp" + .incbin "graphics/pokemon/gardevoir/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_bagon_still_front_pic:: @ 8E2E5AC - .incbin "graphics/pokemon/front_pics/bagon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/bagon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bagon_palette:: @ 8E2E824 - .incbin "graphics/pokemon/palettes/bagon_palette.gbapal.lz" + .incbin "graphics/pokemon/bagon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_bagon_back_pic:: @ 8E2E84C - .incbin "graphics/pokemon/back_pics/bagon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/bagon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_bagon_shiny_palette:: @ 8E2EB34 - .incbin "graphics/pokemon/palettes/bagon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/bagon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_bagon_icon:: @ 8E2EB5C - .incbin "graphics/pokemon/icons/bagon_icon.4bpp" + .incbin "graphics/pokemon/bagon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_bagon_footprint:: @ 8E2EF5C - .incbin "graphics/pokemon/footprints/bagon_footprint.1bpp" + .incbin "graphics/pokemon/bagon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_shelgon_still_front_pic:: @ 8E2EF7C - .incbin "graphics/pokemon/front_pics/shelgon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/shelgon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shelgon_palette:: @ 8E2F280 - .incbin "graphics/pokemon/palettes/shelgon_palette.gbapal.lz" + .incbin "graphics/pokemon/shelgon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_shelgon_back_pic:: @ 8E2F2A8 - .incbin "graphics/pokemon/back_pics/shelgon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/shelgon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_shelgon_shiny_palette:: @ 8E2F590 - .incbin "graphics/pokemon/palettes/shelgon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/shelgon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_shelgon_icon:: @ 8E2F5B8 - .incbin "graphics/pokemon/icons/shelgon_icon.4bpp" + .incbin "graphics/pokemon/shelgon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_shelgon_footprint:: @ 8E2F9B8 - .incbin "graphics/pokemon/footprints/shelgon_footprint.1bpp" + .incbin "graphics/pokemon/shelgon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_salamence_still_front_pic:: @ 8E2F9D8 - .incbin "graphics/pokemon/front_pics/salamence_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/salamence/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_salamence_palette:: @ 8E2FE3C - .incbin "graphics/pokemon/palettes/salamence_palette.gbapal.lz" + .incbin "graphics/pokemon/salamence/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_salamence_back_pic:: @ 8E2FE64 - .incbin "graphics/pokemon/back_pics/salamence_back_pic.4bpp.lz" + .incbin "graphics/pokemon/salamence/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_salamence_shiny_palette:: @ 8E30148 - .incbin "graphics/pokemon/palettes/salamence_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/salamence/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_salamence_icon:: @ 8E30170 - .incbin "graphics/pokemon/icons/salamence_icon.4bpp" + .incbin "graphics/pokemon/salamence/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_salamence_footprint:: @ 8E30570 - .incbin "graphics/pokemon/footprints/salamence_footprint.1bpp" + .incbin "graphics/pokemon/salamence/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_beldum_still_front_pic:: @ 8E30590 - .incbin "graphics/pokemon/front_pics/beldum_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/beldum/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_beldum_palette:: @ 8E30800 - .incbin "graphics/pokemon/palettes/beldum_palette.gbapal.lz" + .incbin "graphics/pokemon/beldum/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_beldum_back_pic:: @ 8E30828 - .incbin "graphics/pokemon/back_pics/beldum_back_pic.4bpp.lz" + .incbin "graphics/pokemon/beldum/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_beldum_shiny_palette:: @ 8E30B18 - .incbin "graphics/pokemon/palettes/beldum_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/beldum/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_beldum_icon:: @ 8E30B40 - .incbin "graphics/pokemon/icons/beldum_icon.4bpp" + .incbin "graphics/pokemon/beldum/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_beldum_footprint:: @ 8E30F40 - .incbin "graphics/pokemon/footprints/beldum_footprint.1bpp" + .incbin "graphics/pokemon/beldum/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_metang_still_front_pic:: @ 8E30F60 - .incbin "graphics/pokemon/front_pics/metang_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/metang/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_metang_palette:: @ 8E313BC - .incbin "graphics/pokemon/palettes/metang_palette.gbapal.lz" + .incbin "graphics/pokemon/metang/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_metang_back_pic:: @ 8E313E4 - .incbin "graphics/pokemon/back_pics/metang_back_pic.4bpp.lz" + .incbin "graphics/pokemon/metang/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_metang_shiny_palette:: @ 8E31708 - .incbin "graphics/pokemon/palettes/metang_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/metang/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_metang_icon:: @ 8E31730 - .incbin "graphics/pokemon/icons/metang_icon.4bpp" + .incbin "graphics/pokemon/metang/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_metang_footprint:: @ 8E31B30 - .incbin "graphics/pokemon/footprints/metang_footprint.1bpp" + .incbin "graphics/pokemon/metang/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_metagross_still_front_pic:: @ 8E31B50 - .incbin "graphics/pokemon/front_pics/metagross_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/metagross/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_metagross_palette:: @ 8E31FB4 - .incbin "graphics/pokemon/palettes/metagross_palette.gbapal.lz" + .incbin "graphics/pokemon/metagross/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_metagross_back_pic:: @ 8E31FDC - .incbin "graphics/pokemon/back_pics/metagross_back_pic.4bpp.lz" + .incbin "graphics/pokemon/metagross/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_metagross_shiny_palette:: @ 8E322A8 - .incbin "graphics/pokemon/palettes/metagross_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/metagross/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_metagross_icon:: @ 8E322D0 - .incbin "graphics/pokemon/icons/metagross_icon.4bpp" + .incbin "graphics/pokemon/metagross/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_metagross_footprint:: @ 8E326D0 - .incbin "graphics/pokemon/footprints/metagross_footprint.1bpp" + .incbin "graphics/pokemon/metagross/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_regirock_still_front_pic:: @ 8E326F0 - .incbin "graphics/pokemon/front_pics/regirock_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/regirock/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_regirock_palette:: @ 8E32BAC - .incbin "graphics/pokemon/palettes/regirock_palette.gbapal.lz" + .incbin "graphics/pokemon/regirock/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_regirock_back_pic:: @ 8E32BD4 - .incbin "graphics/pokemon/back_pics/regirock_back_pic.4bpp.lz" + .incbin "graphics/pokemon/regirock/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_regirock_shiny_palette:: @ 8E33020 - .incbin "graphics/pokemon/palettes/regirock_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/regirock/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_regirock_icon:: @ 8E33048 - .incbin "graphics/pokemon/icons/regirock_icon.4bpp" + .incbin "graphics/pokemon/regirock/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_regirock_footprint:: @ 8E33448 - .incbin "graphics/pokemon/footprints/regirock_footprint.1bpp" + .incbin "graphics/pokemon/regirock/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_regice_still_front_pic:: @ 8E33468 - .incbin "graphics/pokemon/front_pics/regice_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/regice/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_regice_palette:: @ 8E338B0 - .incbin "graphics/pokemon/palettes/regice_palette.gbapal.lz" + .incbin "graphics/pokemon/regice/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_regice_back_pic:: @ 8E338D8 - .incbin "graphics/pokemon/back_pics/regice_back_pic.4bpp.lz" + .incbin "graphics/pokemon/regice/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_regice_shiny_palette:: @ 8E33BC8 - .incbin "graphics/pokemon/palettes/regice_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/regice/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_regice_icon:: @ 8E33BF0 - .incbin "graphics/pokemon/icons/regice_icon.4bpp" + .incbin "graphics/pokemon/regice/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_regice_footprint:: @ 8E33FF0 - .incbin "graphics/pokemon/footprints/regice_footprint.1bpp" + .incbin "graphics/pokemon/regice/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_registeel_still_front_pic:: @ 8E34010 - .incbin "graphics/pokemon/front_pics/registeel_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/registeel/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_registeel_palette:: @ 8E34498 - .incbin "graphics/pokemon/palettes/registeel_palette.gbapal.lz" + .incbin "graphics/pokemon/registeel/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_registeel_back_pic:: @ 8E344C0 - .incbin "graphics/pokemon/back_pics/registeel_back_pic.4bpp.lz" + .incbin "graphics/pokemon/registeel/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_registeel_shiny_palette:: @ 8E347F8 - .incbin "graphics/pokemon/palettes/registeel_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/registeel/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_registeel_icon:: @ 8E34820 - .incbin "graphics/pokemon/icons/registeel_icon.4bpp" + .incbin "graphics/pokemon/registeel/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_registeel_footprint:: @ 8E34C20 - .incbin "graphics/pokemon/footprints/registeel_footprint.1bpp" + .incbin "graphics/pokemon/registeel/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_kyogre_still_front_pic:: @ 8E34C40 - .incbin "graphics/pokemon/front_pics/kyogre_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/kyogre/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kyogre_palette:: @ 8E350B0 - .incbin "graphics/pokemon/palettes/kyogre_palette.gbapal.lz" + .incbin "graphics/pokemon/kyogre/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_kyogre_back_pic:: @ 8E350D8 - .incbin "graphics/pokemon/back_pics/kyogre_back_pic.4bpp.lz" + .incbin "graphics/pokemon/kyogre/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_kyogre_shiny_palette:: @ 8E35350 - .incbin "graphics/pokemon/palettes/kyogre_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/kyogre/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_kyogre_icon:: @ 8E35378 - .incbin "graphics/pokemon/icons/kyogre_icon.4bpp" + .incbin "graphics/pokemon/kyogre/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_kyogre_footprint:: @ 8E35778 - .incbin "graphics/pokemon/footprints/kyogre_footprint.1bpp" + .incbin "graphics/pokemon/kyogre/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_groudon_still_front_pic:: @ 8E35798 - .incbin "graphics/pokemon/front_pics/groudon_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/groudon/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_groudon_palette:: @ 8E35D2C - .incbin "graphics/pokemon/palettes/groudon_palette.gbapal.lz" + .incbin "graphics/pokemon/groudon/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_groudon_back_pic:: @ 8E35D54 - .incbin "graphics/pokemon/back_pics/groudon_back_pic.4bpp.lz" + .incbin "graphics/pokemon/groudon/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_groudon_shiny_palette:: @ 8E361BC - .incbin "graphics/pokemon/palettes/groudon_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/groudon/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_groudon_icon:: @ 8E361E4 - .incbin "graphics/pokemon/icons/groudon_icon.4bpp" + .incbin "graphics/pokemon/groudon/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_groudon_footprint:: @ 8E365E4 - .incbin "graphics/pokemon/footprints/groudon_footprint.1bpp" + .incbin "graphics/pokemon/groudon/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_rayquaza_still_front_pic:: @ 8E36604 - .incbin "graphics/pokemon/front_pics/rayquaza_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/rayquaza/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rayquaza_palette:: @ 8E36B14 - .incbin "graphics/pokemon/palettes/rayquaza_palette.gbapal.lz" + .incbin "graphics/pokemon/rayquaza/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_rayquaza_back_pic:: @ 8E36B3C - .incbin "graphics/pokemon/back_pics/rayquaza_back_pic.4bpp.lz" + .incbin "graphics/pokemon/rayquaza/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_rayquaza_shiny_palette:: @ 8E36E74 - .incbin "graphics/pokemon/palettes/rayquaza_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/rayquaza/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_rayquaza_icon:: @ 8E36E9C - .incbin "graphics/pokemon/icons/rayquaza_icon.4bpp" + .incbin "graphics/pokemon/rayquaza/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_rayquaza_footprint:: @ 8E3729C - .incbin "graphics/pokemon/footprints/rayquaza_footprint.1bpp" + .incbin "graphics/pokemon/rayquaza/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_latias_still_front_pic:: @ 8E372BC - .incbin "graphics/pokemon/front_pics/latias_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/latias/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_latias_palette:: @ 8E376E0 - .incbin "graphics/pokemon/palettes/latias_palette.gbapal.lz" + .incbin "graphics/pokemon/latias/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_latias_back_pic:: @ 8E37708 - .incbin "graphics/pokemon/back_pics/latias_back_pic.4bpp.lz" + .incbin "graphics/pokemon/latias/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_latias_shiny_palette:: @ 8E37A04 - .incbin "graphics/pokemon/palettes/latias_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/latias/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_latias_icon:: @ 8E37A2C - .incbin "graphics/pokemon/icons/latias_icon.4bpp" + .incbin "graphics/pokemon/latias/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_latias_footprint:: @ 8E37E2C - .incbin "graphics/pokemon/footprints/latias_footprint.1bpp" + .incbin "graphics/pokemon/latias/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_latios_still_front_pic:: @ 8E37E4C - .incbin "graphics/pokemon/front_pics/latios_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/latios/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_latios_palette:: @ 8E382A0 - .incbin "graphics/pokemon/palettes/latios_palette.gbapal.lz" + .incbin "graphics/pokemon/latios/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_latios_back_pic:: @ 8E382C8 - .incbin "graphics/pokemon/back_pics/latios_back_pic.4bpp.lz" + .incbin "graphics/pokemon/latios/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_latios_shiny_palette:: @ 8E38628 - .incbin "graphics/pokemon/palettes/latios_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/latios/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_latios_icon:: @ 8E38650 - .incbin "graphics/pokemon/icons/latios_icon.4bpp" + .incbin "graphics/pokemon/latios/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_latios_footprint:: @ 8E38A50 - .incbin "graphics/pokemon/footprints/latios_footprint.1bpp" + .incbin "graphics/pokemon/latios/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_jirachi_still_front_pic:: @ 8E38A70 - .incbin "graphics/pokemon/front_pics/jirachi_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/jirachi/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jirachi_palette:: @ 8E38D7C - .incbin "graphics/pokemon/palettes/jirachi_palette.gbapal.lz" + .incbin "graphics/pokemon/jirachi/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_jirachi_back_pic:: @ 8E38DA4 - .incbin "graphics/pokemon/back_pics/jirachi_back_pic.4bpp.lz" + .incbin "graphics/pokemon/jirachi/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_jirachi_shiny_palette:: @ 8E39144 - .incbin "graphics/pokemon/palettes/jirachi_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/jirachi/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_jirachi_icon:: @ 8E3916C - .incbin "graphics/pokemon/icons/jirachi_icon.4bpp" + .incbin "graphics/pokemon/jirachi/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_jirachi_footprint:: @ 8E3956C - .incbin "graphics/pokemon/footprints/jirachi_footprint.1bpp" + .incbin "graphics/pokemon/jirachi/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_deoxys_still_front_pic:: @ 8E3958C - .incbin "graphics/pokemon/front_pics/deoxys_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/deoxys/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_deoxys_palette:: @ 8E39D48 - .incbin "graphics/pokemon/palettes/deoxys_palette.gbapal.lz" + .incbin "graphics/pokemon/deoxys/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_deoxys_back_pic:: @ 8E39D70 - .incbin "graphics/pokemon/back_pics/deoxys_back_pic.4bpp.lz" + .incbin "graphics/pokemon/deoxys/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_deoxys_shiny_palette:: @ 8E3A360 - .incbin "graphics/pokemon/palettes/deoxys_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/deoxys/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_deoxys_icon:: @ 8E3A388 - .incbin "graphics/pokemon/icons/deoxys_icon.4bpp" + .incbin "graphics/pokemon/deoxys/icon.4bpp" .align 2 gFile_graphics_pokemon_icons_deoxys_speed_icon:: @ 8E3A788 - .incbin "graphics/pokemon/icons/deoxys_speed_icon.4bpp" + .incbin "graphics/pokemon/deoxys/speed_icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_deoxys_footprint:: @ 8E3AB88 - .incbin "graphics/pokemon/footprints/deoxys_footprint.1bpp" + .incbin "graphics/pokemon/deoxys/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_chimecho_still_front_pic:: @ 8E3ABA8 - .incbin "graphics/pokemon/front_pics/chimecho_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/chimecho/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_chimecho_palette:: @ 8E3ADF4 - .incbin "graphics/pokemon/palettes/chimecho_palette.gbapal.lz" + .incbin "graphics/pokemon/chimecho/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_back_pics_chimecho_back_pic:: @ 8E3AE1C - .incbin "graphics/pokemon/back_pics/chimecho_back_pic.4bpp.lz" + .incbin "graphics/pokemon/chimecho/back.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_chimecho_shiny_palette:: @ 8E3B090 - .incbin "graphics/pokemon/palettes/chimecho_shiny_palette.gbapal.lz" + .incbin "graphics/pokemon/chimecho/shiny.gbapal.lz" .align 2 gFile_graphics_pokemon_icons_chimecho_icon:: @ 8E3B0B8 - .incbin "graphics/pokemon/icons/chimecho_icon.4bpp" + .incbin "graphics/pokemon/chimecho/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_chimecho_footprint:: @ 8E3B4B8 - .incbin "graphics/pokemon/footprints/chimecho_footprint.1bpp" + .incbin "graphics/pokemon/chimecho/footprint.1bpp" .align 2 gFile_graphics_pokemon_front_pics_egg_still_front_pic:: @ 8E3B4D8 - .incbin "graphics/pokemon/front_pics/egg_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/egg/front.4bpp.lz" .align 2 gFile_graphics_pokemon_palettes_egg_palette:: @ 8E3B68C - .incbin "graphics/pokemon/palettes/egg_palette.gbapal.lz" + .incbin "graphics/pokemon/egg/normal.gbapal.lz" .align 2 gFile_graphics_pokemon_front_pics_unown_b_still_front_pic:: @ 8E3B6AC - .incbin "graphics/pokemon/front_pics/unown_b_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/b/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_b_back_pic:: @ 8E3B884 - .incbin "graphics/pokemon/back_pics/unown_b_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/b/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_B_icon:: @ 8E3BA88 - .incbin "graphics/pokemon/icons/unown_B_icon.4bpp" + .incbin "graphics/pokemon/unown/b/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_c_still_front_pic:: @ 8E3BE88 - .incbin "graphics/pokemon/front_pics/unown_c_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/c/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_c_back_pic:: @ 8E3C09C - .incbin "graphics/pokemon/back_pics/unown_c_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/c/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_C_icon:: @ 8E3C348 - .incbin "graphics/pokemon/icons/unown_C_icon.4bpp" + .incbin "graphics/pokemon/unown/c/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_d_still_front_pic:: @ 8E3C748 - .incbin "graphics/pokemon/front_pics/unown_d_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/d/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_d_back_pic:: @ 8E3C940 - .incbin "graphics/pokemon/back_pics/unown_d_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/d/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_D_icon:: @ 8E3CB98 - .incbin "graphics/pokemon/icons/unown_D_icon.4bpp" + .incbin "graphics/pokemon/unown/d/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_e_still_front_pic:: @ 8E3CF98 - .incbin "graphics/pokemon/front_pics/unown_e_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/e/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_e_back_pic:: @ 8E3D150 - .incbin "graphics/pokemon/back_pics/unown_e_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/e/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_E_icon:: @ 8E3D350 - .incbin "graphics/pokemon/icons/unown_E_icon.4bpp" + .incbin "graphics/pokemon/unown/e/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_f_still_front_pic:: @ 8E3D750 - .incbin "graphics/pokemon/front_pics/unown_f_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/f/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_f_back_pic:: @ 8E3D944 - .incbin "graphics/pokemon/back_pics/unown_f_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/f/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_F_icon:: @ 8E3DB60 - .incbin "graphics/pokemon/icons/unown_F_icon.4bpp" + .incbin "graphics/pokemon/unown/f/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_g_still_front_pic:: @ 8E3DF60 - .incbin "graphics/pokemon/front_pics/unown_g_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/g/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_g_back_pic:: @ 8E3E13C - .incbin "graphics/pokemon/back_pics/unown_g_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/g/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_G_icon:: @ 8E3E388 - .incbin "graphics/pokemon/icons/unown_G_icon.4bpp" + .incbin "graphics/pokemon/unown/g/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_h_still_front_pic:: @ 8E3E788 - .incbin "graphics/pokemon/front_pics/unown_h_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/h/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_h_back_pic:: @ 8E3E9CC - .incbin "graphics/pokemon/back_pics/unown_h_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/h/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_H_icon:: @ 8E3EC90 - .incbin "graphics/pokemon/icons/unown_H_icon.4bpp" + .incbin "graphics/pokemon/unown/h/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_i_still_front_pic:: @ 8E3F090 - .incbin "graphics/pokemon/front_pics/unown_i_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/i/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_i_back_pic:: @ 8E3F228 - .incbin "graphics/pokemon/back_pics/unown_i_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/i/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_I_icon:: @ 8E3F3D0 - .incbin "graphics/pokemon/icons/unown_I_icon.4bpp" + .incbin "graphics/pokemon/unown/i/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_j_still_front_pic:: @ 8E3F7D0 - .incbin "graphics/pokemon/front_pics/unown_j_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/j/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_j_back_pic:: @ 8E3F994 - .incbin "graphics/pokemon/back_pics/unown_j_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/j/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_J_icon:: @ 8E3FB7C - .incbin "graphics/pokemon/icons/unown_J_icon.4bpp" + .incbin "graphics/pokemon/unown/j/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_k_still_front_pic:: @ 8E3FF7C - .incbin "graphics/pokemon/front_pics/unown_k_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/k/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_k_back_pic:: @ 8E4014C - .incbin "graphics/pokemon/back_pics/unown_k_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/k/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_K_icon:: @ 8E40344 - .incbin "graphics/pokemon/icons/unown_K_icon.4bpp" + .incbin "graphics/pokemon/unown/k/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_l_still_front_pic:: @ 8E40744 - .incbin "graphics/pokemon/front_pics/unown_l_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/l/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_l_back_pic:: @ 8E408F4 - .incbin "graphics/pokemon/back_pics/unown_l_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/l/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_L_icon:: @ 8E40AC8 - .incbin "graphics/pokemon/icons/unown_L_icon.4bpp" + .incbin "graphics/pokemon/unown/l/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_m_still_front_pic:: @ 8E40EC8 - .incbin "graphics/pokemon/front_pics/unown_m_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/m/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_m_back_pic:: @ 8E410EC - .incbin "graphics/pokemon/back_pics/unown_m_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/m/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_M_icon:: @ 8E41394 - .incbin "graphics/pokemon/icons/unown_M_icon.4bpp" + .incbin "graphics/pokemon/unown/m/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_n_still_front_pic:: @ 8E41794 - .incbin "graphics/pokemon/front_pics/unown_n_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/n/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_n_back_pic:: @ 8E4198C - .incbin "graphics/pokemon/back_pics/unown_n_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/n/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_N_icon:: @ 8E41BF8 - .incbin "graphics/pokemon/icons/unown_N_icon.4bpp" + .incbin "graphics/pokemon/unown/n/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_o_still_front_pic:: @ 8E41FF8 - .incbin "graphics/pokemon/front_pics/unown_o_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/o/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_o_back_pic:: @ 8E42230 - .incbin "graphics/pokemon/back_pics/unown_o_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/o/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_O_icon:: @ 8E424F0 - .incbin "graphics/pokemon/icons/unown_O_icon.4bpp" + .incbin "graphics/pokemon/unown/o/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_p_still_front_pic:: @ 8E428F0 - .incbin "graphics/pokemon/front_pics/unown_p_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/p/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_p_back_pic:: @ 8E42A90 - .incbin "graphics/pokemon/back_pics/unown_p_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/p/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_P_icon:: @ 8E42C54 - .incbin "graphics/pokemon/icons/unown_P_icon.4bpp" + .incbin "graphics/pokemon/unown/p/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_q_still_front_pic:: @ 8E43054 - .incbin "graphics/pokemon/front_pics/unown_q_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/q/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_q_back_pic:: @ 8E43208 - .incbin "graphics/pokemon/back_pics/unown_q_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/q/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_Q_icon:: @ 8E433D4 - .incbin "graphics/pokemon/icons/unown_Q_icon.4bpp" + .incbin "graphics/pokemon/unown/q/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_r_still_front_pic:: @ 8E437D4 - .incbin "graphics/pokemon/front_pics/unown_r_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/r/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_r_back_pic:: @ 8E43978 - .incbin "graphics/pokemon/back_pics/unown_r_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/r/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_R_icon:: @ 8E43B40 - .incbin "graphics/pokemon/icons/unown_R_icon.4bpp" + .incbin "graphics/pokemon/unown/r/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_s_still_front_pic:: @ 8E43F40 - .incbin "graphics/pokemon/front_pics/unown_s_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/s/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_s_back_pic:: @ 8E44128 - .incbin "graphics/pokemon/back_pics/unown_s_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/s/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_S_icon:: @ 8E4437C - .incbin "graphics/pokemon/icons/unown_S_icon.4bpp" + .incbin "graphics/pokemon/unown/s/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_t_still_front_pic:: @ 8E4477C - .incbin "graphics/pokemon/front_pics/unown_t_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/t/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_t_back_pic:: @ 8E4492C - .incbin "graphics/pokemon/back_pics/unown_t_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/t/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_T_icon:: @ 8E44AE0 - .incbin "graphics/pokemon/icons/unown_T_icon.4bpp" + .incbin "graphics/pokemon/unown/t/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_u_still_front_pic:: @ 8E44EE0 - .incbin "graphics/pokemon/front_pics/unown_u_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/u/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_u_back_pic:: @ 8E450F8 - .incbin "graphics/pokemon/back_pics/unown_u_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/u/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_U_icon:: @ 8E4534C - .incbin "graphics/pokemon/icons/unown_U_icon.4bpp" + .incbin "graphics/pokemon/unown/u/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_v_still_front_pic:: @ 8E4574C - .incbin "graphics/pokemon/front_pics/unown_v_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/v/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_v_back_pic:: @ 8E45930 - .incbin "graphics/pokemon/back_pics/unown_v_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/v/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_V_icon:: @ 8E45B60 - .incbin "graphics/pokemon/icons/unown_V_icon.4bpp" + .incbin "graphics/pokemon/unown/v/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_w_still_front_pic:: @ 8E45F60 - .incbin "graphics/pokemon/front_pics/unown_w_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/w/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_w_back_pic:: @ 8E46134 - .incbin "graphics/pokemon/back_pics/unown_w_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/w/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_W_icon:: @ 8E46338 - .incbin "graphics/pokemon/icons/unown_W_icon.4bpp" + .incbin "graphics/pokemon/unown/w/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_x_still_front_pic:: @ 8E46738 - .incbin "graphics/pokemon/front_pics/unown_x_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/x/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_x_back_pic:: @ 8E468FC - .incbin "graphics/pokemon/back_pics/unown_x_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/x/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_X_icon:: @ 8E46AEC - .incbin "graphics/pokemon/icons/unown_X_icon.4bpp" + .incbin "graphics/pokemon/unown/x/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_y_still_front_pic:: @ 8E46EEC - .incbin "graphics/pokemon/front_pics/unown_y_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/y/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_y_back_pic:: @ 8E470C4 - .incbin "graphics/pokemon/back_pics/unown_y_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/y/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_Y_icon:: @ 8E472B8 - .incbin "graphics/pokemon/icons/unown_Y_icon.4bpp" + .incbin "graphics/pokemon/unown/y/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_z_still_front_pic:: @ 8E476B8 - .incbin "graphics/pokemon/front_pics/unown_z_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/z/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_z_back_pic:: @ 8E47868 - .incbin "graphics/pokemon/back_pics/unown_z_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/z/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_Z_icon:: @ 8E47A44 - .incbin "graphics/pokemon/icons/unown_Z_icon.4bpp" + .incbin "graphics/pokemon/unown/z/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_exclamation_mark_still_front_pic:: @ 8E47E44 - .incbin "graphics/pokemon/front_pics/unown_exclamation_mark_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/exclamation_mark/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_exclamation_mark_back_pic:: @ 8E47FD4 - .incbin "graphics/pokemon/back_pics/unown_exclamation_mark_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/exclamation_mark/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_exclamation_mark_icon:: @ 8E4819C - .incbin "graphics/pokemon/icons/unown_exclamation_mark_icon.4bpp" + .incbin "graphics/pokemon/unown/exclamation_mark/icon.4bpp" .align 2 gFile_graphics_pokemon_front_pics_unown_question_mark_still_front_pic:: @ 8E4859C - .incbin "graphics/pokemon/front_pics/unown_question_mark_still_front_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/question_mark/front.4bpp.lz" .align 2 gFile_graphics_pokemon_back_pics_unown_question_mark_back_pic:: @ 8E48758 - .incbin "graphics/pokemon/back_pics/unown_question_mark_back_pic.4bpp.lz" + .incbin "graphics/pokemon/unown/question_mark/back.4bpp.lz" .align 2 gFile_graphics_pokemon_icons_unown_question_mark_icon:: @ 8E48958 - .incbin "graphics/pokemon/icons/unown_question_mark_icon.4bpp" + .incbin "graphics/pokemon/unown/question_mark/icon.4bpp" .align 2 gFile_graphics_trainers_front_pics_aqua_leader_archie_front_pic:: @ 8E48D58 @@ -13436,11 +13436,11 @@ gFile_graphics_trainers_palettes_old_man_back_pic:: @ 8E76F34 .align 2 gFile_graphics_pokemon_icons_question_mark_icon:: @ 8E76F5C - .incbin "graphics/pokemon/icons/question_mark_icon.4bpp" + .incbin "graphics/pokemon/question_mark/icon.4bpp" .align 2 gFile_graphics_pokemon_footprints_question_mark_footprint:: @ 8E7735C - .incbin "graphics/pokemon/footprints/question_mark_footprint.1bpp" + .incbin "graphics/pokemon/question_mark/footprint.1bpp" .align 2 gFile_graphics_battle_transitions_vs_frame_sheet:: @ 8E7737C @@ -13953,37 +13953,37 @@ gFile_graphics_interface_bag_swap_palette:: @ 8E845C8 .align 2 gUnknown_8E845D8:: @ 8E845D8 - .incbin "baserom.gba", 0xE845D8, 0x44C + .incbin "graphics/tm_case/unk_8E845D8.4bpp.lz" gUnknown_8E84A24:: @ 8E84A24 - .incbin "baserom.gba", 0xE84A24, 0x14C + .incbin "graphics/tm_case/unk_8E84A24.bin.lz" gUnknown_8E84B70:: @ 8E84B70 - .incbin "baserom.gba", 0xE84B70, 0x140 + .incbin "graphics/tm_case/unk_8E84B70.bin.lz" gUnknown_8E84CB0:: @ 8E84CB0 - .incbin "baserom.gba", 0xE84CB0, 0x70 + .incbin "graphics/tm_case/unk_8E84CB0.gbapal.lz" gUnknown_8E84D20:: @ 8E84D20 - .incbin "baserom.gba", 0xE84D20, 0x70 + .incbin "graphics/tm_case/unk_8E84D20.gbapal.lz" -gUnknown_8E84D90:: @ 8E84D90 - .incbin "baserom.gba", 0xE84D90, 0x190 +gTMCase_TMSpriteGfx:: @ 8E84D90 + .incbin "graphics/tm_case/unk_8E84D90.4bpp.lz" gUnknown_8E84F20:: @ 8E84F20 - .incbin "baserom.gba", 0xE84F20, 0x148 + .incbin "graphics/tm_case/unk_8E84F20.gbapal.lz" gUnknown_8E85068:: @ 8E85068 - .incbin "baserom.gba", 0xE85068, 0x28 + .incbin "graphics/tm_case/unk_8E85068.gbapal.lz" -gUnknown_8E85090:: @ 8E85090 - .incbin "baserom.gba", 0xE85090, 0x378 +gItemPcTiles:: @ 8E85090 + .incbin "graphics/item_pc/unk_8E85090.4bpp.lz" -gUnknown_8E85408:: @ 8E85408 - .incbin "baserom.gba", 0xE85408, 0x50 +gItemPcBgPals:: @ 8E85408 + .incbin "graphics/item_pc/unk_8E85408.gbapal.lz" -gUnknown_8E85458:: @ 8E85458 - .incbin "baserom.gba", 0xE85458, 0x1B4 +gItemPcTilemap:: @ 8E85458 + .incbin "graphics/item_pc/unk_8E85458.bin.lz" gUnknown_8E8560C:: @ 8E8560C .incbin "baserom.gba", 0xE8560C, 0x3C4 @@ -14019,16 +14019,16 @@ gUnknown_8E861A8:: @ 8E861A8 .incbin "baserom.gba", 0xE861A8, 0x98 gUnknown_8E86240:: @ 8E86240 - .incbin "baserom.gba", 0xE86240, 0x9A8 + .incbin "graphics/teachy_tv/tiles.4bpp.lz" gUnknown_8E86BE8:: @ 8E86BE8 - .incbin "baserom.gba", 0xE86BE8, 0x184 + .incbin "graphics/teachy_tv/bg1_tilemap.bin.lz" gUnknown_8E86D6C:: @ 8E86D6C - .incbin "baserom.gba", 0xE86D6C, 0x22C + .incbin "graphics/teachy_tv/bg2_tilemap.bin.lz" gUnknown_8E86F98:: @ 8E86F98 - .incbin "baserom.gba", 0xE86F98, 0x78 + .incbin "graphics/teachy_tv/palettes.gbapal.lz" gUnknown_8E87010:: @ 8E87010 .incbin "baserom.gba", 0xE87010, 0x18 @@ -16072,7 +16072,10 @@ gUnknown_8E985D8:: @ 8E985D8 .incbin "baserom.gba", 0xE985D8, 0xB40 @UNKNOWN, FALSEPOSITIVE? gUnknown_8E99118:: @ 8E99118 - .incbin "baserom.gba", 0xE99118, 0xE0 @UNKNOWN + .incbin "graphics/tm_case/unk_8E99118.4bpp" + +gUnknown_8E99198:: + .incbin "baserom.gba", 0xE99198, 0x60 @UNKNOWN gUnknown_8E991F8:: @ 8E991F8 .incbin "baserom.gba", 0xE991F8, 0x674 @@ -16209,89 +16212,127 @@ gUnknown_8EA1958:: @ 8EA1958 gUnknown_8EA1A50:: @ 8EA1A50 .incbin "baserom.gba", 0xEA1A50, 0x118 -gUnknown_8EA1B68:: @ 8EA1B68 - .incbin "baserom.gba", 0xEA1B68, 0xE0 @UNKNOWN + .align 2 +gTilesetPalettes_8EA1B68:: @ 8EA1B68 + .incbin "data/tilesets/primary/82D4A94/palettes/0.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/1.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/2.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/3.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/4.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/5.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/6.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/7.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/8.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/9.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/10.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/11.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/12.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/13.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/14.gbapal" + .incbin "data/tilesets/primary/82D4A94/palettes/15.gbapal" -gUnknown_8EA1C48:: @ 8EA1C48 - .incbin "baserom.gba", 0xEA1C48, 0x90 +gTilesetTiles_8EA1D68:: @ 8EA1D68 + .incbin "data/tilesets/primary/82D4A94/tiles.4bpp.lz" -gUnknown_8EA1CD8:: @ 8EA1CD8 - .incbin "baserom.gba", 0xEA1CD8, 0x90 @UNKNOWN - -gUnknown_8EA1D68:: @ 8EA1D68 - .incbin "baserom.gba", 0xEA1D68, 0x28D4 - -gUnknown_8EA463C:: @ 8EA463C +gBerryFixGameboy_Pal:: @ 8EA463C .incbin "graphics/berry_fix/gba_small.gbapal" -gUnknown_8EA467C:: @ 8EA467C +gBerryFixGameboy_Gfx:: @ 8EA467C .incbin "graphics/berry_fix/gba_small.4bpp.lz" -gUnknown_8EA52B8:: @ 8EA52B8 +gBerryFixGameboy_Tilemap:: @ 8EA52B8 .incbin "graphics/berry_fix/gba_small.bin.lz" -gUnknown_8EA5604:: @ 8EA5604 +gBerryFixGameboyLogo_Pal:: @ 8EA5604 .incbin "graphics/berry_fix/logo.gbapal" -gUnknown_8EA5664:: @ 8EA5664 +gBerryFixGameboyLogo_Gfx:: @ 8EA5664 .incbin "graphics/berry_fix/logo.4bpp.lz" -gUnknown_8EA60C8:: @ 8EA60C8 +gBerryFixGameboyLogo_Tilemap:: @ 8EA60C8 .incbin "graphics/berry_fix/logo.bin.lz" -gUnknown_8EA63C8:: @ 8EA63C8 +gBerryFixGbaTransfer_Pal:: @ 8EA63C8 .incbin "graphics/berry_fix/gba_transfer.gbapal" -gUnknown_8EA6408:: @ 8EA6408 +gBerryFixGbaTransfer_Gfx:: @ 8EA6408 .incbin "graphics/berry_fix/gba_transfer.4bpp.lz" -gUnknown_8EA7028:: @ 8EA7028 +gBerryFixGbaTransfer_Tilemap:: @ 8EA7028 .incbin "graphics/berry_fix/gba_transfer.bin.lz" -gUnknown_8EA72E0:: @ 8EA72E0 +gBerryFixGbaTransferHighlight_Pal:: @ 8EA72E0 .incbin "graphics/berry_fix/gba_transfer_highlight.gbapal" -gUnknown_8EA7320:: @ 8EA7320 +gBerryFixGbaTransferHighlight_Gfx:: @ 8EA7320 .incbin "graphics/berry_fix/gba_transfer_highlight.4bpp.lz" -gUnknown_8EA8118:: @ 8EA8118 +gBerryFixGbaTransferHighlight_Tilemap:: @ 8EA8118 .incbin "graphics/berry_fix/gba_transfer_highlight.bin.lz" -gUnknown_8EA83C8:: @ 8EA83C8 +gBerryFixGbaTransferError_Pal:: @ 8EA83C8 .incbin "graphics/berry_fix/gba_transfer_error.gbapal" -gUnknown_8EA8408:: @ 8EA8408 +gBerryFixGbaTransferError_Gfx:: @ 8EA8408 .incbin "graphics/berry_fix/gba_transfer_error.4bpp.lz" -gUnknown_8EA8CC8:: @ 8EA8CC8 +gBerryFixGbaTransferError_Tilemap:: @ 8EA8CC8 .incbin "graphics/berry_fix/gba_transfer_error.bin.lz" -gUnknown_8EA8F00:: @ 8EA8F00 +gBerryFixWindow_Pal:: @ 8EA8F00 .incbin "graphics/berry_fix/window.gbapal" -gUnknown_8EA8F40:: @ 8EA8F40 +gBerryFixWindow_Gfx:: @ 8EA8F40 .incbin "graphics/berry_fix/window.4bpp.lz" -gUnknown_8EA9588:: @ 8EA9588 +gBerryFixWindow_Tilemap:: @ 8EA9588 .incbin "graphics/berry_fix/window.bin.lz" -gUnknown_8EA97F4:: @ 8EA97F4 - .incbin "baserom.gba", 0xEA97F4, 0x120 @UNKNOWN + .align 2 +gTilesetPalettes_8EA97F4:: @ 8EA97F4 + .incbin "data/tilesets/secondary/82D4C74/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4C74/palettes/15.gbapal" -gUnknown_8EA9914:: @ 8EA9914 - .incbin "baserom.gba", 0xEA9914, 0x90 + .align 2 +gTilesetTiles_8EA99F4:: @ 8EA99F4 + .incbin "data/tilesets/secondary/82D4C74/tiles.4bpp.lz" -gUnknown_8EA99A4:: @ 8EA99A4 - .incbin "baserom.gba", 0xEA99A4, 0x50 @UNKNOWN + .align 2 +gTilesetPalettes_8EA9D88:: @ 8EA9D88 + .incbin "data/tilesets/secondary/82D4E6C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4E6C/palettes/15.gbapal" -gUnknown_8EA99F4:: @ 8EA99F4 - .incbin "baserom.gba", 0xEA99F4, 0x394 -gUnknown_8EA9D88:: @ 8EA9D88 - .incbin "baserom.gba", 0xEA9D88, 0x200 @UNKNOWN - -gUnknown_8EA9F88:: @ 8EA9F88 - .incbin "baserom.gba", 0xEA9F88, 0xA68 +gTilesetTiles_8EA9F88:: @ 8EA9F88 + .incbin "data/tilesets/secondary/82D4E6C/tiles.4bpp.lz" gUnknown_8EAA9F0:: @ 8EAA9F0 .incbin "baserom.gba", 0xEAA9F0, 0x20 @UNKNOWN @@ -16356,10 +16397,10 @@ gUnknown_8EAE900:: @ 8EAE900 gUnknown_8EAEA00:: @ 8EAEA00 .incbin "baserom.gba", 0xEAEA00, 0x20 @UNKNOWN -gUnknown_8EAEA20:: @ 8EAEA20 +gTradeGba2_Pal:: @ 8EAEA20 .incbin "baserom.gba", 0xEAEA20, 0x60 @UNKNOWN -gUnknown_8EAEA80:: @ 8EAEA80 +gTradeGba_Gfx:: @ 8EAEA80 .incbin "baserom.gba", 0xEAEA80, 0x1420 @UNKNOWN gUnknown_8EAFEA0:: @ 8EAFEA0 diff --git a/data/graphics/fonts/font6_braille.png b/data/graphics/fonts/font6_braille.png new file mode 100644 index 000000000..cb4451bc2 Binary files /dev/null and b/data/graphics/fonts/font6_braille.png differ diff --git a/data/itemfinder.s b/data/itemfinder.s new file mode 100644 index 000000000..3a955deeb --- /dev/null +++ b/data/itemfinder.s @@ -0,0 +1,7 @@ + .section .rodata + .align 2 +gUnknown_84647E4:: @ 84647E4 + .incbin "baserom.gba", 0x4647E4, 0x18 + +gUnknown_84647FC:: @ 84647FC + .incbin "baserom.gba", 0x4647FC, 0x8 diff --git a/data/layouts/.gitignore b/data/layouts/.gitignore new file mode 100644 index 000000000..eaa83a6f1 --- /dev/null +++ b/data/layouts/.gitignore @@ -0,0 +1,2 @@ +layouts.inc +layouts_table.inc diff --git a/data/layouts/BirthIsland_Exterior/border.bin b/data/layouts/BirthIsland_Exterior/border.bin new file mode 100644 index 000000000..75f2c916c --- /dev/null +++ b/data/layouts/BirthIsland_Exterior/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/BirthIsland_Exterior/map.bin b/data/layouts/BirthIsland_Exterior/map.bin new file mode 100644 index 000000000..98502708b --- /dev/null +++ b/data/layouts/BirthIsland_Exterior/map.bin @@ -0,0 +1 @@ +vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvfvvvvvvvvvvvvvvvvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvvvvvvvv[\]}vvvvvvvvvvvvvvvvvvvvvvvsz`ab|s}vvvvvvvvvvvvvvvvvvvsszscdeu|s}vvvvvvvvvvvvvvvvvssz21310 003141|ss}vvvvvvvvvvvDEvvssz210 00Y300 041|ss}vDEvvvvvvvLMvszs000)3Z3+3 000u|ss}LMvvvvvvvvvsz21310 0)3,323-3+3 003141|ssvvvvvvvvvvszs0 00 01323232333000 0u|s}vvvvvvvvsz21000)3,3232323-3+30 0041|svvvvvvvszss 00 0)3,32323232323-3+300 041|}vvvvvsz2131000132323232323232333 0000u|}vvvszs0000)3,323232323232323-3+300041mu|}vvszs0 093:3:3:3:3:3:3:3:3:3;3 0 0u|}vpssk3100&'00000000000&'0041muuqvtss{||||||||||0||||||||||}uurvts{|||||||||||0|||||||||||}urvt{||||||||||||0||||||||||||}rvxkkkkkkkkkkkk111kkkkkkkkkkkkyvvvvvvvvvvvoss111sssmvvvvvvvvvvvvvvvvvvvvvvv111vvvvvvvvvvvvvvvvvvvvvvvvvvv111vvvvvvvvvvvvvvvvvvvvvvvvvvv222vvvvvvvvvvvvvvvvvvvvvvvvv"3#3vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv !vvvvvvvvvvvvvvvvvvvvvvv$%vvvvvvvvvvvvvvvvvvvvvvv&'vvvvvvvvvvv \ No newline at end of file diff --git a/data/layouts/CeladonCity/border.bin b/data/layouts/CeladonCity/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/CeladonCity/border.bin differ diff --git a/data/layouts/CeladonCity/map.bin b/data/layouts/CeladonCity/map.bin new file mode 100644 index 000000000..45bad7034 Binary files /dev/null and b/data/layouts/CeladonCity/map.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_1F/border.bin b/data/layouts/CeladonCity_Condominiums_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_1F/border.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_1F/map.bin b/data/layouts/CeladonCity_Condominiums_1F/map.bin new file mode 100644 index 000000000..d396e1116 --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_1F/map.bin @@ -0,0 +1 @@ +222222222222222222222222322222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Condominiums_2F/border.bin b/data/layouts/CeladonCity_Condominiums_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_2F/border.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_2F/map.bin b/data/layouts/CeladonCity_Condominiums_2F/map.bin new file mode 100644 index 000000000..8dcec2456 Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_2F/map.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_3F/border.bin b/data/layouts/CeladonCity_Condominiums_3F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_3F/border.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_3F/map.bin b/data/layouts/CeladonCity_Condominiums_3F/map.bin new file mode 100644 index 000000000..5e44c90c6 --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_3F/map.bin @@ -0,0 +1 @@ +222222222222222322222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Condominiums_Roof/border.bin b/data/layouts/CeladonCity_Condominiums_Roof/border.bin new file mode 100644 index 000000000..cbaea0adc --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_Roof/border.bin @@ -0,0 +1 @@ +(((( \ No newline at end of file diff --git a/data/layouts/CeladonCity_Condominiums_Roof/map.bin b/data/layouts/CeladonCity_Condominiums_Roof/map.bin new file mode 100644 index 000000000..8f044c89a --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_Roof/map.bin @@ -0,0 +1 @@ +((((((((((((((     ./    .!33353  73353  "!3336373363"!3333337333@3A3"!3333337333HI"!337333@3A3"!%&&'337333HI"!%&&'337333@3A3"!%&&'337333HI"!%&&'337333@3A3"!0123337333HI"!893:;33733333"!333333733333"!333333733333"!<>=>=>?33333"!B3C33333333333"!JK3333333333")            *PQQQQURSTQQQQV#DE#,-$#DE#+#LM#,-$#LM#+####,-$####+ \ No newline at end of file diff --git a/data/layouts/CeladonCity_Condominiums_RoofRoom/border.bin b/data/layouts/CeladonCity_Condominiums_RoofRoom/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_RoofRoom/border.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_RoofRoom/map.bin b/data/layouts/CeladonCity_Condominiums_RoofRoom/map.bin new file mode 100644 index 000000000..a6aaf9a0c --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_RoofRoom/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_1F/border.bin b/data/layouts/CeladonCity_DepartmentStore_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_1F/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_1F/map.bin b/data/layouts/CeladonCity_DepartmentStore_1F/map.bin new file mode 100644 index 000000000..3c09fa172 --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_1F/map.bin @@ -0,0 +1 @@ +`ahij322222pqr322222e2222222222222222222222222222222222222222222222223222222222332222222223&32222"32222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_2F/border.bin b/data/layouts/CeladonCity_DepartmentStore_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_2F/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_2F/map.bin b/data/layouts/CeladonCity_DepartmentStore_2F/map.bin new file mode 100644 index 000000000..41c334718 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_2F/map.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_3F/border.bin b/data/layouts/CeladonCity_DepartmentStore_3F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_3F/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_3F/map.bin b/data/layouts/CeladonCity_DepartmentStore_3F/map.bin new file mode 100644 index 000000000..1640da24e --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_3F/map.bin @@ -0,0 +1 @@ +`ahij22222klmpqr22222stu22222222222222222222222222222222 3 32 3 322223222222222222222 3 32 3 32222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_4F/border.bin b/data/layouts/CeladonCity_DepartmentStore_4F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_4F/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_4F/map.bin b/data/layouts/CeladonCity_DepartmentStore_4F/map.bin new file mode 100644 index 000000000..f3f558069 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_4F/map.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_5F/border.bin b/data/layouts/CeladonCity_DepartmentStore_5F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_5F/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_5F/map.bin b/data/layouts/CeladonCity_DepartmentStore_5F/map.bin new file mode 100644 index 000000000..5374a18ee --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_5F/map.bin @@ -0,0 +1 @@ +`ahij322222k3lm7pqr322222s3tu2222222222222222 22$22222222222322223323322222222222222''2''223323322222222 !2 !23323322()2()2222012012''2''322222222222# \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_Elevator/border.bin b/data/layouts/CeladonCity_DepartmentStore_Elevator/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_Elevator/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_Elevator/map.bin b/data/layouts/CeladonCity_DepartmentStore_Elevator/map.bin new file mode 100644 index 000000000..42e08c38d --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_Elevator/map.bin @@ -0,0 +1 @@ +222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_Roof/border.bin b/data/layouts/CeladonCity_DepartmentStore_Roof/border.bin new file mode 100644 index 000000000..87ae772ca --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_Roof/border.bin @@ -0,0 +1 @@ +WWWW \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_Roof/map.bin b/data/layouts/CeladonCity_DepartmentStore_Roof/map.bin new file mode 100644 index 000000000..f92a0a330 --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_Roof/map.bin @@ -0,0 +1 @@ +WWWWWWWWWWWWW.///OW89999999999996777?]@AAAAAAAAA%%%=<>6?QH22222222c---EDF6?YH22*3+3+3,322222222M36?YH2243KL5322222222U36?YH2243ST5322222222N36?YH2223[3\33322222222V3=GYPB3:3:3:3:3:3:3:3:3:3:3:3:3:3:3IJRXAAAAAAAAAAAAAAAAAZC;C;C;C; \ No newline at end of file diff --git a/data/layouts/CeladonCity_GameCorner/border.bin b/data/layouts/CeladonCity_GameCorner/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_GameCorner/border.bin differ diff --git a/data/layouts/CeladonCity_GameCorner/map.bin b/data/layouts/CeladonCity_GameCorner/map.bin new file mode 100644 index 000000000..00280b8a4 --- /dev/null +++ b/data/layouts/CeladonCity_GameCorner/map.bin @@ -0,0 +1 @@ +222222322222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_GameCorner_PrizeRoom/border.bin b/data/layouts/CeladonCity_GameCorner_PrizeRoom/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_GameCorner_PrizeRoom/border.bin differ diff --git a/data/layouts/CeladonCity_GameCorner_PrizeRoom/map.bin b/data/layouts/CeladonCity_GameCorner_PrizeRoom/map.bin new file mode 100644 index 000000000..475ca451c --- /dev/null +++ b/data/layouts/CeladonCity_GameCorner_PrizeRoom/map.bin @@ -0,0 +1 @@ +222222322222222222222222222222222222232222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Gym/border.bin b/data/layouts/CeladonCity_Gym/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_Gym/border.bin differ diff --git a/data/layouts/CeladonCity_Gym/map.bin b/data/layouts/CeladonCity_Gym/map.bin new file mode 100644 index 000000000..19338125c --- /dev/null +++ b/data/layouts/CeladonCity_Gym/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/CeladonCity_Hotel/border.bin b/data/layouts/CeladonCity_Hotel/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_Hotel/border.bin differ diff --git a/data/layouts/CeladonCity_Hotel/map.bin b/data/layouts/CeladonCity_Hotel/map.bin new file mode 100644 index 000000000..4573c1444 --- /dev/null +++ b/data/layouts/CeladonCity_Hotel/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Restaurant/border.bin b/data/layouts/CeladonCity_Restaurant/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeladonCity_Restaurant/border.bin differ diff --git a/data/layouts/CeladonCity_Restaurant/map.bin b/data/layouts/CeladonCity_Restaurant/map.bin new file mode 100644 index 000000000..a5391187c --- /dev/null +++ b/data/layouts/CeladonCity_Restaurant/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeruleanCave_1F/border.bin b/data/layouts/CeruleanCave_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/CeruleanCave_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/CeruleanCave_1F/map.bin b/data/layouts/CeruleanCave_1F/map.bin new file mode 100644 index 000000000..33a822337 Binary files /dev/null and b/data/layouts/CeruleanCave_1F/map.bin differ diff --git a/data/layouts/CeruleanCave_2F/border.bin b/data/layouts/CeruleanCave_2F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/CeruleanCave_2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/CeruleanCave_2F/map.bin b/data/layouts/CeruleanCave_2F/map.bin new file mode 100644 index 000000000..f2b9dcb9c --- /dev/null +++ b/data/layouts/CeruleanCave_2F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeruleanCave_B1F/border.bin b/data/layouts/CeruleanCave_B1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/CeruleanCave_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/CeruleanCave_B1F/map.bin b/data/layouts/CeruleanCave_B1F/map.bin new file mode 100644 index 000000000..f423b6e0e Binary files /dev/null and b/data/layouts/CeruleanCave_B1F/map.bin differ diff --git a/data/layouts/CeruleanCity/border.bin b/data/layouts/CeruleanCity/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/CeruleanCity/border.bin differ diff --git a/data/layouts/CeruleanCity/map.bin b/data/layouts/CeruleanCity/map.bin new file mode 100644 index 000000000..de72d4e87 --- /dev/null +++ b/data/layouts/CeruleanCity/map.bin @@ -0,0 +1,5 @@ +qq|||||||||||}u*+++,2220 00*qqu|||||||||||}*+++,222*qquu ###########1+++,222 00 0*+qquu*+++++++++++++++,222000*+++++++++ +  +  +  + qquu*+++++++++++++++,222 00 05qquu*+(000000000000000qquu*+,0 00 00 000000000 00 00 0000000000qquu*+,0000000000000000000001001002qquu*+,2220 00 00 02222000qquu*+,000000000qquu*+,0 00 00 0000||}u*+,000000000000y0|z*+,000000000000000000000000000000 00000 0*+,000000000000000000000000000000000000*+,001002222222000000000000000000 000000*+,00000{1|1}1~11000000000000000&%$%$%####1+,000HIJK0 00 00 00 000000 00000000++++++,00000PQRS00091:1:1:1:1:1;000000++++++,001000000000XYZ[ABBBBBC0000000000000000000000000`ab000IJJJJJK0000 00 00 00 000000000001010000001000 00 000 0`1PQRSTUV0 0000000000000000000000000000hX1Y1Z[\]1^100000000000000000001000000000010000000000000001000 00000 022220000000000000000000000000000000010000000000000000000 000020000222222(0)0*0+022222000000020000001230 00 00002 0000089:;000000002200000@Abc0 00 000010222201010000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000=>>>>>>>>?0=>>>>>>>>>?0 0 00 00 00 00 0 00 00 00 00 00 00 0 0 00 00 00 00 00 00000000000000000000000000000000000 00 00 00 00 00 00 00 0000000000 00 00 00 00 00 00 00 000000000000000000 00 00 00 00 00 00 00 00 \ No newline at end of file diff --git a/data/layouts/CeruleanCity_BikeShop/border.bin b/data/layouts/CeruleanCity_BikeShop/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeruleanCity_BikeShop/border.bin differ diff --git a/data/layouts/CeruleanCity_BikeShop/map.bin b/data/layouts/CeruleanCity_BikeShop/map.bin new file mode 100644 index 000000000..7bfc92082 --- /dev/null +++ b/data/layouts/CeruleanCity_BikeShop/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeruleanCity_Gym/border.bin b/data/layouts/CeruleanCity_Gym/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeruleanCity_Gym/border.bin differ diff --git a/data/layouts/CeruleanCity_Gym/map.bin b/data/layouts/CeruleanCity_Gym/map.bin new file mode 100644 index 000000000..ee6d65165 --- /dev/null +++ b/data/layouts/CeruleanCity_Gym/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/CeruleanCity_House1/border.bin b/data/layouts/CeruleanCity_House1/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeruleanCity_House1/border.bin differ diff --git a/data/layouts/CeruleanCity_House1/map.bin b/data/layouts/CeruleanCity_House1/map.bin new file mode 100644 index 000000000..83ebe0b15 --- /dev/null +++ b/data/layouts/CeruleanCity_House1/map.bin @@ -0,0 +1 @@ +bcdjk1l111111112121V1 1 1 1 1 1 1 1 1 1^ 1 1 1 1#1$1$1$1%11 1 1 1 1+1&1()-1V1 1 1 1 1+1,101-1^ 1 1 1 131414141511 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/CeruleanCity_House2/border.bin b/data/layouts/CeruleanCity_House2/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeruleanCity_House2/border.bin differ diff --git a/data/layouts/CeruleanCity_House2/map.bin b/data/layouts/CeruleanCity_House2/map.bin new file mode 100644 index 000000000..21a7d4178 --- /dev/null +++ b/data/layouts/CeruleanCity_House2/map.bin @@ -0,0 +1 @@ +a2iH1I12222221#1$1$1$1$1%1221+12()2-12221+1212-1 12 1V131412414151222^ 1?1G1O122 1 \ No newline at end of file diff --git a/data/layouts/CeruleanCity_House5/border.bin b/data/layouts/CeruleanCity_House5/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CeruleanCity_House5/border.bin differ diff --git a/data/layouts/CeruleanCity_House5/map.bin b/data/layouts/CeruleanCity_House5/map.bin new file mode 100644 index 000000000..1f06133b3 --- /dev/null +++ b/data/layouts/CeruleanCity_House5/map.bin @@ -0,0 +1 @@ +aaii2121211111M1N1M1N11 1 1 1 1 1 1 1ef 11.1 1 1 1 1 1o1mn 16 1 1 1 1 1 1ef 11.1 1 1 1 1 1 1mng16 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/CinnabarIsland/border.bin b/data/layouts/CinnabarIsland/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/CinnabarIsland/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/CinnabarIsland/map.bin b/data/layouts/CinnabarIsland/map.bin new file mode 100644 index 000000000..7631ea1d8 --- /dev/null +++ b/data/layouts/CinnabarIsland/map.bin @@ -0,0 +1 @@ +++,003141)++,10 0031ABBBBC)++,00 0 0 0IJJJJK*++,20000PQRSTV*++,00222000 0 0 0 0X1Y1Z[\*++,000000000000000 00h++,222222200000000000++,{1|1}1~110 00 00 0*++,HIJK(0)0*0+000*++,PQRS012300*++,000 0220XYZ[89:;00*++,0000000`ab@Abc00*++0##!000000000000000*+++++,000000000000000*+++++,000000000000000*++++0###############1++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_Gym/border.bin b/data/layouts/CinnabarIsland_Gym/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CinnabarIsland_Gym/border.bin differ diff --git a/data/layouts/CinnabarIsland_Gym/map.bin b/data/layouts/CinnabarIsland_Gym/map.bin new file mode 100644 index 000000000..39cd83f5a --- /dev/null +++ b/data/layouts/CinnabarIsland_Gym/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_PokemonLab_Entrance/border.bin b/data/layouts/CinnabarIsland_PokemonLab_Entrance/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_Entrance/border.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_Entrance/map.bin b/data/layouts/CinnabarIsland_PokemonLab_Entrance/map.bin new file mode 100644 index 000000000..39ca3b4d7 --- /dev/null +++ b/data/layouts/CinnabarIsland_PokemonLab_Entrance/map.bin @@ -0,0 +1 @@ +hiiiijpqqr0x0y0y0y0y0y0z022000000020200jhijhijhij200200rpq2rpq2rpq2r20022000z0x0y0y0y0y0z0x0y0y0y0y0z0x0y0y0y0y0z00000000000000000000000000002200000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom/border.bin b/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom/border.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom/map.bin b/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom/map.bin new file mode 100644 index 000000000..1dbda8fd5 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom/map.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_Lounge/border.bin b/data/layouts/CinnabarIsland_PokemonLab_Lounge/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_Lounge/border.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_Lounge/map.bin b/data/layouts/CinnabarIsland_PokemonLab_Lounge/map.bin new file mode 100644 index 000000000..a84c9d1ab --- /dev/null +++ b/data/layouts/CinnabarIsland_PokemonLab_Lounge/map.bin @@ -0,0 +1,3 @@ +hkli$ikljpstq%qstrx0 3 +3{0|0y0y0y0y0y0{0|0 3 +3z0000022222220000200022666220002200022220002200022220002000022222220000200000000000000600000000000 \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom/border.bin b/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom/border.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom/map.bin b/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom/map.bin new file mode 100644 index 000000000..6032e183f Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom/map.bin differ diff --git a/data/layouts/DiglettsCave_B1F/border.bin b/data/layouts/DiglettsCave_B1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/DiglettsCave_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/DiglettsCave_B1F/map.bin b/data/layouts/DiglettsCave_B1F/map.bin new file mode 100644 index 000000000..d29e66e00 --- /dev/null +++ b/data/layouts/DiglettsCave_B1F/map.bin @@ -0,0 +1 @@ +2222226666666666666666222222226622222266662222222662222222662222266222222662222222222662266226662222222222222222222222226622222222222266222222222222222222222222222222222222222222222222222222222222222222222222222222222222222666666666622222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222666666666666666666666666666666666666666666666666666666666666666666666666 \ No newline at end of file diff --git a/data/layouts/DiglettsCave_NorthEntrance/border.bin b/data/layouts/DiglettsCave_NorthEntrance/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/DiglettsCave_NorthEntrance/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/DiglettsCave_NorthEntrance/map.bin b/data/layouts/DiglettsCave_NorthEntrance/map.bin new file mode 100644 index 000000000..39007d306 --- /dev/null +++ b/data/layouts/DiglettsCave_NorthEntrance/map.bin @@ -0,0 +1 @@ +6666666666666623322266332222662222226632222266622222266666 \ No newline at end of file diff --git a/data/layouts/DiglettsCave_SouthEntrance/border.bin b/data/layouts/DiglettsCave_SouthEntrance/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/DiglettsCave_SouthEntrance/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/DiglettsCave_SouthEntrance/map.bin b/data/layouts/DiglettsCave_SouthEntrance/map.bin new file mode 100644 index 000000000..9d2c75793 Binary files /dev/null and b/data/layouts/DiglettsCave_SouthEntrance/map.bin differ diff --git a/data/layouts/Entrance_1F/border.bin b/data/layouts/Entrance_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/Entrance_1F/border.bin differ diff --git a/data/layouts/Entrance_1F/map.bin b/data/layouts/Entrance_1F/map.bin new file mode 100644 index 000000000..e39d586e9 --- /dev/null +++ b/data/layouts/Entrance_1F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Entrance_2F/border.bin b/data/layouts/Entrance_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/Entrance_2F/border.bin differ diff --git a/data/layouts/Entrance_2F/map.bin b/data/layouts/Entrance_2F/map.bin new file mode 100644 index 000000000..bfac6e348 --- /dev/null +++ b/data/layouts/Entrance_2F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222226622 \ No newline at end of file diff --git a/data/layouts/FiveIsland/border.bin b/data/layouts/FiveIsland/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/FiveIsland/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland/map.bin b/data/layouts/FiveIsland/map.bin new file mode 100644 index 000000000..98fa499f8 Binary files /dev/null and b/data/layouts/FiveIsland/map.bin differ diff --git a/data/layouts/FiveIsland_LostCave_Entrance/border.bin b/data/layouts/FiveIsland_LostCave_Entrance/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Entrance/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Entrance/map.bin b/data/layouts/FiveIsland_LostCave_Entrance/map.bin new file mode 100644 index 000000000..7e68d2dd4 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Entrance/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room1/border.bin b/data/layouts/FiveIsland_LostCave_Room1/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room1/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room1/map.bin b/data/layouts/FiveIsland_LostCave_Room1/map.bin new file mode 100644 index 000000000..1683057f5 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room1/map.bin @@ -0,0 +1,2 @@ +222222222222222222222 + 3222223 2222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room10/border.bin b/data/layouts/FiveIsland_LostCave_Room10/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room10/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room10/map.bin b/data/layouts/FiveIsland_LostCave_Room10/map.bin new file mode 100644 index 000000000..9e26501cb --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room10/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room11/border.bin b/data/layouts/FiveIsland_LostCave_Room11/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room11/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room11/map.bin b/data/layouts/FiveIsland_LostCave_Room11/map.bin new file mode 100644 index 000000000..6af11f8cc --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room11/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222223332222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room12/border.bin b/data/layouts/FiveIsland_LostCave_Room12/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room12/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room12/map.bin b/data/layouts/FiveIsland_LostCave_Room12/map.bin new file mode 100644 index 000000000..6f77bfda9 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room12/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222223332222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room13/border.bin b/data/layouts/FiveIsland_LostCave_Room13/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room13/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room13/map.bin b/data/layouts/FiveIsland_LostCave_Room13/map.bin new file mode 100644 index 000000000..bb1a69aa2 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room13/map.bin @@ -0,0 +1,2 @@ +222222222222222222222 + 3222222223332222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room14/border.bin b/data/layouts/FiveIsland_LostCave_Room14/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room14/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room14/map.bin b/data/layouts/FiveIsland_LostCave_Room14/map.bin new file mode 100644 index 000000000..a4849c5d4 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room14/map.bin @@ -0,0 +1 @@ +2222222222222222222222222223 223332222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room2/border.bin b/data/layouts/FiveIsland_LostCave_Room2/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room2/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room2/map.bin b/data/layouts/FiveIsland_LostCave_Room2/map.bin new file mode 100644 index 000000000..f89ec37f3 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room2/map.bin @@ -0,0 +1,2 @@ +2222222222222222 + 3222223 222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room3/border.bin b/data/layouts/FiveIsland_LostCave_Room3/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room3/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room3/map.bin b/data/layouts/FiveIsland_LostCave_Room3/map.bin new file mode 100644 index 000000000..24073548c --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room3/map.bin @@ -0,0 +1,2 @@ +2222222222222222222 + 3222223 222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room4/border.bin b/data/layouts/FiveIsland_LostCave_Room4/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room4/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room4/map.bin b/data/layouts/FiveIsland_LostCave_Room4/map.bin new file mode 100644 index 000000000..af2e57bb2 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room4/map.bin @@ -0,0 +1,2 @@ +2222222222222222222 + 3222223 222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room5/border.bin b/data/layouts/FiveIsland_LostCave_Room5/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room5/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room5/map.bin b/data/layouts/FiveIsland_LostCave_Room5/map.bin new file mode 100644 index 000000000..b8db9de80 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room5/map.bin @@ -0,0 +1,2 @@ +2222222222222222222 + 3222223 222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room6/border.bin b/data/layouts/FiveIsland_LostCave_Room6/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room6/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room6/map.bin b/data/layouts/FiveIsland_LostCave_Room6/map.bin new file mode 100644 index 000000000..ddf7f4402 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room6/map.bin @@ -0,0 +1,2 @@ +22222222222222222 + 3222223 22222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room7/border.bin b/data/layouts/FiveIsland_LostCave_Room7/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room7/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room7/map.bin b/data/layouts/FiveIsland_LostCave_Room7/map.bin new file mode 100644 index 000000000..ff3353201 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room7/map.bin @@ -0,0 +1,2 @@ +222222222222222222 + 3222223 2222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room8/border.bin b/data/layouts/FiveIsland_LostCave_Room8/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room8/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room8/map.bin b/data/layouts/FiveIsland_LostCave_Room8/map.bin new file mode 100644 index 000000000..452a62af2 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room8/map.bin @@ -0,0 +1,2 @@ +22222222222222222222 + 3222223 22222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room9/border.bin b/data/layouts/FiveIsland_LostCave_Room9/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room9/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room9/map.bin b/data/layouts/FiveIsland_LostCave_Room9/map.bin new file mode 100644 index 000000000..ec3f1ac6e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room9/map.bin @@ -0,0 +1,2 @@ +222222222222222 + 3222223 2222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_Meadow/border.bin b/data/layouts/FiveIsland_Meadow/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/FiveIsland_Meadow/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_Meadow/map.bin b/data/layouts/FiveIsland_Meadow/map.bin new file mode 100644 index 000000000..6126a6fa4 --- /dev/null +++ b/data/layouts/FiveIsland_Meadow/map.bin @@ -0,0 +1,5 @@ ++++++++++ +  +  +  + +++++++313131313141+++++++$%$'0 0 00 0 0u)++++ 00 00 0 0 0 00 031313141+$' 0 0 0 0 0 0 0 0 0 0 00003141+0 0 0 0 0 0 0 00 0 0 000u)00 0 0 0&%$% 0 0 0 00u)0 000 000 0 0&% 0 0 0u*yy00yy 0 0 0 0$' 0 0 0u*111111 0 000 0 0 0 0 0u*111111 0 0 0 00u*#! 0 00u*+s 0 0&' 0u*+s 0 0 0 00u+,s 0 0 000u,s0 00u*+,s000u*+,s0 00u*+,s00zs$% r 0 0 0+s0 000 0 0r 0 0 0*+,{0&%0 000r 0 0 0*+0$x0y00r 0 00*+0 00p 0 0&%r 0 00*+000p 000 0&'r0 00*++,0 00p&%$' 00 00 0 0r000*++0##$x|| 00000 0z0 00*+++++0##!s0 00 0 0 0r0000*++++++,xyy00yyz0 0*++++++++, 0 0 000000&'00*++++++++, 0 000000 00 0*++++++++, 0&' 00 00000*++++++, 0 0 0 0 00&'00 0"1++++++0###########1++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/FiveIsland_MemorialPillar/border.bin b/data/layouts/FiveIsland_MemorialPillar/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/FiveIsland_MemorialPillar/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_MemorialPillar/map.bin b/data/layouts/FiveIsland_MemorialPillar/map.bin new file mode 100644 index 000000000..a5aae1ecc Binary files /dev/null and b/data/layouts/FiveIsland_MemorialPillar/map.bin differ diff --git a/data/layouts/FiveIsland_ResortGorgeous/border.bin b/data/layouts/FiveIsland_ResortGorgeous/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/FiveIsland_ResortGorgeous/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_ResortGorgeous/map.bin b/data/layouts/FiveIsland_ResortGorgeous/map.bin new file mode 100644 index 000000000..aaf0ec4db --- /dev/null +++ b/data/layouts/FiveIsland_ResortGorgeous/map.bin @@ -0,0 +1 @@ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11++++++++++++++ 1 1%11111111111111111111+++++++++++++++++++++++++++++++1111011++++++++++++++++++ 1 1 1 11+++++++++ 1 1%1111 000011+++++++++++++ 1%11+++++++++1111110000&'11+++++++++++++++11q&11++++++ 1 1%1111110000  11++++++++++++ 1 1 1 11++++++1-1|.11+++++ 1%1111111110 00000 00i11+++++++++ 1%1&11++++++1-1111++++++111-1111111100000000000 00111+++++++++1squ&11++++1111+++++++++11-11111110000000000111.11+++++++++1squ11++++++++++++++++++++111-111111111111111.111++++++++++1{|}11+++++++++++++++++++++++1111111111111111++++++++++++1y0y.11+++++++++++++++++++++++++++++++++++++++++++++++++1-111111+++++++++++++++++++++++++++++++++++++++++++++++++111111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/FiveIsland_ResortGorgeous_House/border.bin b/data/layouts/FiveIsland_ResortGorgeous_House/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FiveIsland_ResortGorgeous_House/border.bin differ diff --git a/data/layouts/FiveIsland_ResortGorgeous_House/map.bin b/data/layouts/FiveIsland_ResortGorgeous_House/map.bin new file mode 100644 index 000000000..f313d50eb Binary files /dev/null and b/data/layouts/FiveIsland_ResortGorgeous_House/map.bin differ diff --git a/data/layouts/FiveIsland_RocketWarehouse/border.bin b/data/layouts/FiveIsland_RocketWarehouse/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FiveIsland_RocketWarehouse/border.bin differ diff --git a/data/layouts/FiveIsland_RocketWarehouse/map.bin b/data/layouts/FiveIsland_RocketWarehouse/map.bin new file mode 100644 index 000000000..aef63eaf1 --- /dev/null +++ b/data/layouts/FiveIsland_RocketWarehouse/map.bin @@ -0,0 +1 @@ +2222222223323322222222222222222222222222222222222+3-3222222222223222232232222222222222222222222222222223 32222222222222(3*33322222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 32222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233322 \ No newline at end of file diff --git a/data/layouts/FiveIsland_WaterLabyrinth/border.bin b/data/layouts/FiveIsland_WaterLabyrinth/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/FiveIsland_WaterLabyrinth/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_WaterLabyrinth/map.bin b/data/layouts/FiveIsland_WaterLabyrinth/map.bin new file mode 100644 index 000000000..66a91da60 --- /dev/null +++ b/data/layouts/FiveIsland_WaterLabyrinth/map.bin @@ -0,0 +1 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++(213131313131313141)++++++++++++++++++++++++++++++++++++++,0 00000000*++++++++++++++++++++++++++++++,000010010*+++++++++++++++++++++++++++++++++0$000010003141)++++++++++++++++++++++++++++++++++++++++0#$00010000*+++++++++++++++++++++++++++++++++++++0$0 00100 0*++++++++++++++++++++++++++++++++++++++++++,0000000*++++++++++++++++++++++++++++++++,0 000 00 0*+++++++++++++++++++++++++0#######1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/FourIsland/border.bin b/data/layouts/FourIsland/border.bin new file mode 100644 index 000000000..75f2c916c --- /dev/null +++ b/data/layouts/FourIsland/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/FourIsland/map.bin b/data/layouts/FourIsland/map.bin new file mode 100644 index 000000000..dd45ba9bd --- /dev/null +++ b/data/layouts/FourIsland/map.bin @@ -0,0 +1 @@ +vOssqsqq{|||||qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvOssqsqqqqqqqq{|||||||||||||qqqqqqqqqqqqqqqqqqqvOssq{||||qqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqqqqqqvOssqqqqqq{|||||||||||||||qsqqqqqqqqqqqqqqqqqqqvOs{|||yyyyyyyyyyyyyyyqsqsqqqqqqqqqqqqqqqqqqqvO{||ypqsqsqqqqqqqqqqqqqqqqqqqvWeeG11110 0 00pqsqsqqqqqqqqqqqqqqqqqqqvsssO1##11100 00####pqsq{||qqqqqqqqqqqqqqqqvvosO100111 00110000pq{qqq{|||||||||||||qqvvvsO10 00 0 0 00111000pqq{||qqqqqqqqqqqqqqsqqvvvsO1$% 02222 00111000pqqqqq{||||||||||||qsqqDEvsO1y 000|||||||||||sqsqqLMvsO11100 0000000||||yy0yyssqsqqvvvsO111 0 00u0000 0pssqsqqvvvsO1110 00 00 000 00&%$'0u00000pssqsqqvvvsO111000000 0 00 0 00 00 0 00 00 0usssqsqqvvvoO1110 00 0000{1|1}1~1100000000usssqsqqvvvvO1110000000HIJK 00 0usssqsqqvvDEO1110 00 00PQRS000usssqsqqvvLMO1110000&'XYZ[ 00 0u313131313141sssq{qvvvvO1110 00 0000`ab0003sssqqsqvvvvO111000 00 00 000003131313131 00 0&'0usssqqsqvvvvO1110 0000000000 00 00 0000000a1usssqqsqvvDEO111000yyyy0 00(0)0*0+02222200ir313131pssqqsqvvLMO1111111111100001230 00 0 0000r0 00pssqqsqvvvvO111111111110 0089:;00000000r 00 0pssqqsqvvvvO11111111111000@Abc0 00 0 0000r000pssqq{vDEvWkkkk111kkG10 00 00 00 00 00 00 0y00yyz0 00ps{qqsvLMvsssss222ssO100000000000000r00110 0110psqsqqsvvvvvosO100 00000000000 0r0 01101110psqsqqsvvvvvvsO1yyy 0 0r0000011 00psqsqq{vvvvDEsO11111&%$%$%$'hiqsqqqvvvvLMsWkkG11yyyhiiiqqqqqqqqqqqqqqsqqqvvvvvvssssO111111sqqqqqqqqqqqqqqqqqqsqqqvvvvvvossssssssssO111111sqqqqqqqqqqqqqqqqqq{|||vvvvvvvDEvvvvvvvoWkkG111{||||||||||qqqqqqqqqqqvvvvvvvLMvvvDEvvvvvoWkkG||||||||||sqqqqqqqqqqqvvvvvvvvvvvvLMvvvDEvsssWeeeeeeeeeeGs{|||||||||||vvvvvvvvvvvvvvvvvLMvvvosssss^_ssssO{||||||||||||vvvvvvvvvvvvvvvvvvvvvvvvvvvvLMvvosWeeeeeeeeeeeee \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_1F/border.bin b/data/layouts/FourIsland_IcefallCave_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_1F/map.bin b/data/layouts/FourIsland_IcefallCave_1F/map.bin new file mode 100644 index 000000000..22cfdf42e Binary files /dev/null and b/data/layouts/FourIsland_IcefallCave_1F/map.bin differ diff --git a/data/layouts/FourIsland_IcefallCave_B1F/border.bin b/data/layouts/FourIsland_IcefallCave_B1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_B1F/map.bin b/data/layouts/FourIsland_IcefallCave_B1F/map.bin new file mode 100644 index 000000000..b3db8d893 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_B1F/map.bin @@ -0,0 +1 @@ +K3K3K3?_22222J3K3OK3K3K3K3_22J3K3O?K3K3K3_22^K3K3OK3K3K3_22s^K3K3K3K3K3K3_s22222BK3K3K3K3K3K3L3222222BK3?K3K3K3K3_s22222^K3K3K3GK3K3L3222222^K3K3?K3?K3D22222^K3K3K3K3K3K3_222222^K3K3K3K3K3K3_222^K3HIK3K3K3L322222R\tS3S3\TVU22222222VUU22222VU222VVUUVVUV \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_Back/border.bin b/data/layouts/FourIsland_IcefallCave_Back/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_Back/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_Back/map.bin b/data/layouts/FourIsland_IcefallCave_Back/map.bin new file mode 100644 index 000000000..aa44dd119 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_Back/map.bin @@ -0,0 +1 @@ +++++++++++++++++++++++++++++++++++++   +++++++++++++   U+++++++++++V)+++++(*+++,U ++++++++,)++++++++++ VU*+++++++++(VU*+++++++++,V*+++++++++,*+++++++++,*+++++++++,U +++++++ VUgj3k3k3k3k3k3l3fV2222222p222222U222222qVUor22nVU22qV222222222p22UVUV \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_Entrance/border.bin b/data/layouts/FourIsland_IcefallCave_Entrance/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_Entrance/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_Entrance/map.bin b/data/layouts/FourIsland_IcefallCave_Entrance/map.bin new file mode 100644 index 000000000..b37ddd800 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_Entrance/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222>2222222#"222'''''/////////////////////////77777>22222>22222222======222222===222222===222222===UV===UV=UV==UV \ No newline at end of file diff --git a/data/layouts/FourIsland_LoreleisHouse/border.bin b/data/layouts/FourIsland_LoreleisHouse/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FourIsland_LoreleisHouse/border.bin differ diff --git a/data/layouts/FourIsland_LoreleisHouse/map.bin b/data/layouts/FourIsland_LoreleisHouse/map.bin new file mode 100644 index 000000000..5ce78023d --- /dev/null +++ b/data/layouts/FourIsland_LoreleisHouse/map.bin @@ -0,0 +1 @@ +  ` 5 h22222222222B222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FourIsland_PokemonDayCare/border.bin b/data/layouts/FourIsland_PokemonDayCare/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FourIsland_PokemonDayCare/border.bin differ diff --git a/data/layouts/FourIsland_PokemonDayCare/map.bin b/data/layouts/FourIsland_PokemonDayCare/map.bin new file mode 100644 index 000000000..d7207d8ff --- /dev/null +++ b/data/layouts/FourIsland_PokemonDayCare/map.bin @@ -0,0 +1 @@ +b33333222222    !32222222"32232 3 32222222 3 322222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity/border.bin b/data/layouts/FuchsiaCity/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/FuchsiaCity/border.bin differ diff --git a/data/layouts/FuchsiaCity/map.bin b/data/layouts/FuchsiaCity/map.bin new file mode 100644 index 000000000..e1517ef1d --- /dev/null +++ b/data/layouts/FuchsiaCity/map.bin @@ -0,0 +1 @@ +$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%0000000000000000000000 00000000000000000002222222222222200 0 02020000022222222222220000000000 000000000000000 000 000 0000000000000000034445000000000000000000000000000000088888900000000000000000000000000000000000000000000000000000 00 00(0)0*0+00000000000002222220222222222000000000000123000000000000 00 0089:;0000000000000 00000000 0000$'0000000@Abc00000000000000000000000000000000000000000000000 0 0000222222222000000000000000000000000000000000000000000000 000000000000000000000 00000000000000&%0000100000000 0 00001000000000000000000000003444445 00 0000000000000000000000000000 000006666666666000010000000000000000000000100000000000000000000100066666666670 0000 000000000000000000000000000000 00?00 00 0000000000000000000000000000000?0 00 0hiiiiiiiiiiiiiiiiiiiiiiij000 0031313131313131?0000pqqqqqqqqqqqqqqqqqqr0000000 000000 00 0pqHIJKr00222222220000xyABBBBBCPQRSz000 00 00IJJJJJKXYZ[00a100000`1PQRSTUV`ab00i0000 0hX1Y1Z[\]1^10000000000000000000000000000 00 00000000000100000000000000000000 00 0000010100000001010000000 0 00 00 00 00 00 00 0000000hiiiiij0000000000000000000 000000000pklllmr000 00 00 00 00000000000psqqqur0000000000hiiiiij0000000000psqqqur0 00 00 00 00 0pklllmrpsqqqur0000000000psqqqur \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_Building1/border.bin b/data/layouts/FuchsiaCity_Building1/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FuchsiaCity_Building1/border.bin differ diff --git a/data/layouts/FuchsiaCity_Building1/map.bin b/data/layouts/FuchsiaCity_Building1/map.bin new file mode 100644 index 000000000..4efd7d891 --- /dev/null +++ b/data/layouts/FuchsiaCity_Building1/map.bin @@ -0,0 +1 @@ +M1N1M1N11111111111 1 1 12222 1 1222rf 1#1%1 1zn 131222251 11s1 1 1 1 1 1 1 1 1 11111 1 1 1 1 1 1 1 1 1 1 1 1V1 1 1 1 1 1 1 1 1 1 1 1U1^ 1 1 1 1?1G1O1 1 1 1 1] \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_Gym/border.bin b/data/layouts/FuchsiaCity_Gym/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FuchsiaCity_Gym/border.bin differ diff --git a/data/layouts/FuchsiaCity_Gym/map.bin b/data/layouts/FuchsiaCity_Gym/map.bin new file mode 100644 index 000000000..390ee14be --- /dev/null +++ b/data/layouts/FuchsiaCity_Gym/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_House2/border.bin b/data/layouts/FuchsiaCity_House2/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FuchsiaCity_House2/border.bin differ diff --git a/data/layouts/FuchsiaCity_House2/map.bin b/data/layouts/FuchsiaCity_House2/map.bin new file mode 100644 index 000000000..83ebe0b15 --- /dev/null +++ b/data/layouts/FuchsiaCity_House2/map.bin @@ -0,0 +1 @@ +bcdjk1l111111112121V1 1 1 1 1 1 1 1 1 1^ 1 1 1 1#1$1$1$1%11 1 1 1 1+1&1()-1V1 1 1 1 1+1,101-1^ 1 1 1 131414141511 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_SafariZone_Entrance/border.bin b/data/layouts/FuchsiaCity_SafariZone_Entrance/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FuchsiaCity_SafariZone_Entrance/border.bin differ diff --git a/data/layouts/FuchsiaCity_SafariZone_Entrance/map.bin b/data/layouts/FuchsiaCity_SafariZone_Entrance/map.bin new file mode 100644 index 000000000..e84271730 --- /dev/null +++ b/data/layouts/FuchsiaCity_SafariZone_Entrance/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_ZooBuilding/border.bin b/data/layouts/FuchsiaCity_ZooBuilding/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/FuchsiaCity_ZooBuilding/border.bin differ diff --git a/data/layouts/FuchsiaCity_ZooBuilding/map.bin b/data/layouts/FuchsiaCity_ZooBuilding/map.bin new file mode 100644 index 000000000..d18ddbd61 --- /dev/null +++ b/data/layouts/FuchsiaCity_ZooBuilding/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/House1/border.bin b/data/layouts/House1/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/House1/border.bin differ diff --git a/data/layouts/House1/map.bin b/data/layouts/House1/map.bin new file mode 100644 index 000000000..7fb8f8319 --- /dev/null +++ b/data/layouts/House1/map.bin @@ -0,0 +1 @@ +aapq5iixyH1I11111111111 1 1#1$1$1$1$1%1 1 11 1 1+1&1()'1-1 1 11 1 1+1&101'1-1 1 1V1 1 1314141414151 1U1^ 1 1?1G1O1 1 1 1 1] \ No newline at end of file diff --git a/data/layouts/House2/border.bin b/data/layouts/House2/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/House2/border.bin differ diff --git a/data/layouts/House2/map.bin b/data/layouts/House2/map.bin new file mode 100644 index 000000000..2f2d83996 --- /dev/null +++ b/data/layouts/House2/map.bin @@ -0,0 +1 @@ +  ./ -!" 1267(5)*(90:0>0?0 0=0 0 0 0 0 0 000C0D0D0D0D0F000 000S0K0LMN0V000 000S0K0TUN0V000W000[0\0\0\0\0^00G0_000000000O44444444 \ No newline at end of file diff --git a/data/layouts/House3/border.bin b/data/layouts/House3/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/House3/border.bin differ diff --git a/data/layouts/House3/map.bin b/data/layouts/House3/map.bin new file mode 100644 index 000000000..73c6abf89 --- /dev/null +++ b/data/layouts/House3/map.bin @@ -0,0 +1 @@ +"  89*!@A211111111H1I11V1 1 1 1 1 1 1 1 1 1 1^ 1 1 1o1efg1 1 1 11 1 1 1o1mng1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/House4/border.bin b/data/layouts/House4/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/House4/border.bin differ diff --git a/data/layouts/House4/map.bin b/data/layouts/House4/map.bin new file mode 100644 index 000000000..f74c83441 --- /dev/null +++ b/data/layouts/House4/map.bin @@ -0,0 +1 @@ +  `` h h111111111111 1 1 1 1 1 1 1 1 1 1V1 1 1 1o1efg1 1 1 1^ 1 1 1o1mng1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1?1G1O1 1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/House5/border.bin b/data/layouts/House5/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/House5/border.bin differ diff --git a/data/layouts/House5/map.bin b/data/layouts/House5/map.bin new file mode 100644 index 000000000..4daf805f7 --- /dev/null +++ b/data/layouts/House5/map.bin @@ -0,0 +1 @@ +aapqi5ixy000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/IndigoPlateau_Exterior/border.bin b/data/layouts/IndigoPlateau_Exterior/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/IndigoPlateau_Exterior/border.bin differ diff --git a/data/layouts/IndigoPlateau_Exterior/map.bin b/data/layouts/IndigoPlateau_Exterior/map.bin new file mode 100644 index 000000000..2bfc01f42 Binary files /dev/null and b/data/layouts/IndigoPlateau_Exterior/map.bin differ diff --git a/data/layouts/IndigoPlateau_PokemonCenter_1F/border.bin b/data/layouts/IndigoPlateau_PokemonCenter_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/IndigoPlateau_PokemonCenter_1F/border.bin differ diff --git a/data/layouts/IndigoPlateau_PokemonCenter_1F/map.bin b/data/layouts/IndigoPlateau_PokemonCenter_1F/map.bin new file mode 100644 index 000000000..9a9319f8e Binary files /dev/null and b/data/layouts/IndigoPlateau_PokemonCenter_1F/map.bin differ diff --git a/data/layouts/Island_Harbor/border.bin b/data/layouts/Island_Harbor/border.bin new file mode 100644 index 000000000..536a722ec --- /dev/null +++ b/data/layouts/Island_Harbor/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Island_Harbor/map.bin b/data/layouts/Island_Harbor/map.bin new file mode 100644 index 000000000..353d5f450 --- /dev/null +++ b/data/layouts/Island_Harbor/map.bin @@ -0,0 +1 @@ +222222222222222222222#####!222 #####+++++,2*++++++++++0#1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/LavenderTown/border.bin b/data/layouts/LavenderTown/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/LavenderTown/border.bin differ diff --git a/data/layouts/LavenderTown/map.bin b/data/layouts/LavenderTown/map.bin new file mode 100644 index 000000000..9bba130ef --- /dev/null +++ b/data/layouts/LavenderTown/map.bin @@ -0,0 +1 @@ +qqqqqqqr0 00 0 0psuqqqqq10000psuqqqqHIJK 00 0 0psuqqqqrPQRS0000psuqyyzXYZ[ 00 0psuqr 00 0`ab0000p{'89:4}qr0000b1c1d10 00 00xy/@3B5qr 00 00r1s1t1 00000 00 0b1c1c1c1d1pqz000000022222000r1s1s1s1t1 0pq0 00 00 00 0 00 0 00 00 00pq00000000 0000000 00pq0 00 00 0000 00 0000pq0 000000 0b1c1d1 00 00 00(0)0*0+0pqj 002222222222000000123pqr00 0 00 0089:;pqr 0000000@Abcpqr00 00 0b1c1c1c1c1d1pqr 0b1c1c1c1c1c1c1c1c1c1d1000r1s1s1s1s1t1pqr0r1s1s1s1s1s1s1s1s1s1t1 00 00 00 00 0pqiiiiiiiiij00hiiiiiiiiq \ No newline at end of file diff --git a/data/layouts/LavenderTown_VolunteerPokemonHouse/border.bin b/data/layouts/LavenderTown_VolunteerPokemonHouse/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/LavenderTown_VolunteerPokemonHouse/border.bin differ diff --git a/data/layouts/LavenderTown_VolunteerPokemonHouse/map.bin b/data/layouts/LavenderTown_VolunteerPokemonHouse/map.bin new file mode 100644 index 000000000..3e5dc6dda --- /dev/null +++ b/data/layouts/LavenderTown_VolunteerPokemonHouse/map.bin @@ -0,0 +1 @@ +#$%&5222(3)32 32222222222222222233222222332222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Mart/border.bin b/data/layouts/Mart/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/Mart/border.bin differ diff --git a/data/layouts/Mart/map.bin b/data/layouts/Mart/map.bin new file mode 100644 index 000000000..dee537e49 --- /dev/null +++ b/data/layouts/Mart/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/MtEmber_Exterior/border.bin b/data/layouts/MtEmber_Exterior/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/MtEmber_Exterior/border.bin differ diff --git a/data/layouts/MtEmber_Exterior/map.bin b/data/layouts/MtEmber_Exterior/map.bin new file mode 100644 index 000000000..28f5cc749 --- /dev/null +++ b/data/layouts/MtEmber_Exterior/map.bin @@ -0,0 +1 @@ +SQQSQSQSQSQSQSSQSSQSQSQSQSSSW33UUUQUQUQUQUQUQUQUQUQUQUQUQSQQSQSQSQSQ[5SSQSSQSQSQSQSSS33WUUUQUQUQUQUQUQUQUQUQUQUQUQSQQSQSQSQ[5QSS[5SSQSQSQ[5SS[\\]UU4]QUQUQUQUQUQUQUQUQUQUQ[5QSQSQ[5QSQSSQSSSQ[5[5QSS[\\\\]UUQ4]4]QU4]QUQUQUQUQUQUQQSQSQ[5QSQSQSSQSSSQQSQSQS[\\\\\\]UQUQUQQUUQ4]QUQUQUQUQUQQSQ[5QSQSQ[5S>5SSSQQSQSQ[\\\\\\\\]QUQUQQUUQUQ4]QUQUQUQUQQ[5QSQSQ[5QSS36SSSQQSQ[\\\\\\\\\\\\]QUQQUUQUQUQ4]QUQUQUQ5QSQSQ[5QSQSS36SSSQQ[\\\\533W13334\\\\]QQUUQUQUQUQ4]QUQUQSQSQ[5QSQSQSS36SS>YYYYY5QS33333W3UQQQQQQQUUQUQUQUQUQ4]QUQ[5[5QSQSQSQSS36SS3333336QS3W33333U4YYYYYY]UQUQUQUQUQUQ4]QQSQSQSQSQ[5SS36SS333333>5S33333W3U733 00 034]QUQUQUQUQUQUQ4QSQSQSQ[5QSSS36SS33333336[\\534\\]733}3}3}33UQQUQUQUQUQUQUQUQSQSQ[5QSQSSS36S[00\\533>Y5Q[0]Q4Y?3W3333UQ4]QUQUQUQUQUQUQ[5[5QSQSQSSS36[\00\5S3333>YY0YY?3W33W33WUQUQ4]QUQUQUQUQU5QSQSQSQSQSSS3>YY005SS333333333W33333cddeU4]QUQ4]QUQUQUQUSQSQSQSQSQSSS3333336S[\\5333333333WW3333WUU4\]QUQ4]QUQUQUSQSQSQSQSQSSS3333336[\\5S33W33333333W33W3UUU4\\]QUQ4]QUQUSQ[5[5SQSQSS[\\\\5W>\\5S[5333333W33333334]UUU4\\\]QUQ4]QU[5QSQSSQSQSSQQQQQ[\\\5S[5[\\\00\\\\\\\\\]4]UUUQQQ4\]QUQ4]QSQSQSSQ[5S[\\\5QQQQQS[5[YYYY00YYYYYYYYF3Y?4]UUQ4Y]QQ4]4]QQSQSQS[5QSSQQQQ[\\\\5[5[\533333333333~30 033U4]UQO04\\]QUQ4QSQ[5SQSQS[\\5QQQQQQ[5SQQS333333333333}3}34\]UQUQO0UQQQ4]4]Q[5QSSQSQSQQQ[\\\\5QQSSQQ[\\\00\\\5334\\]QQU4]QO0UQ4\]QUQ5QSQSSQSQSQ4\\\\5Q[5QSSQQ4YYY00YY5S33UQQQ4\]UQ4G0UQUQQ4]4SQSQSSQ[5SQU4\F35[5QSQSSQQ733333336[\\]Q4\]QQUQO00UQU4\]QUSQSQS[\5SSQUO0 0NQSQSQSSQQ733333336QQQQQUQ4\\]QO 04]QUUQQ4]SQSQSQQSSSQUO 00NQ[5SQSSQQ7dddddddTQQ4\\]QU4\\\G0UQ4]UQ4]QSQSQSQQSS[\]U}3~3E5QSSQS[\\?3333333>\\]Q4\\]O0 0 00 0UQUQUQUQ4[5[5[\5SSQQQU33}36QSSQ[\\\533333334\\\\]QQ4G 0 00 04]QUQUQUQUQSQSQQSS>\\\?3336QSSQQQQQ[\533334]QQQQQ4YG 00 04\]Q4]QUQUQUQSQSQQSS333333336QS>YYYY5QQ[\00\]QQQ4YYG0 00 04]QQ4]Q4]QUQUQ[5SQQSE\\\\53336QS33333>YYYY00YYYYY?30 00 0 0 0UQ4\]Q4]Q4]QU5QS[\5SV 00 00N3336QS33333333333333333330 0 0 0 00UQUQ4\]Q4]Q4]SQSQQSS00000N3336QS333333333333333333 04\\\\\]QUQUQ4\]Q4]QSQ[5QSEY0050E\536Q[00\YYY00YYYYYYYYY\\]QQQQQQ4]4]QUQ4\]QQ[5QSQSV 0 0 0N0 00N3EYY005333333g33333334\\\\\\\\]QUQ4]QUQQQQQSQSQ[5 0 0 0N0 00N0 00 00 0N0 03333f333 00 03UQQQQQQQQ4\]QUQ4]QQQQQSQSQQS 0 0 0N000N000000N000003f3300 000UQQQQQQ4\]QQ4]QUQQQQQQSQ[\5S 0 0 0EY50EYYY005S0 00 003o33 00 004]Q4\\\\]4\\\]Q4]QQQQ4Q[5QQSSV 0 0 0VN0 00 00 0 0N[\\\00\\\\\00\]4Y]Q4YY\]QQQ4\]QQ4\\]5QSQQSS 00 00 0N0000000EYYYY00YYYYY00YY]Q4YG004\\\\]QQ4\]QQQSQSQQSS 0 00 00EYY5 00 00 00 000 0 0 0 0000 00 004YG 0 00 0UQQQQ4\\]QQQQQSQ[\5S[50 00 00 00N0 00 0 0 00 0 00 0 0 00000000O000000UQ4\\]QQQQQQQQ[5QQSSQ[\5 00000N00 00 0 0 0 0 0 0 00 0 00hiiijO00 0 00 0UQUQQQQQQ4\\\\QSQQS[5QQS0 00 00EYYYYYYYYYYYYYY50 00 00O0004\\]QUQQQ4\\]QQQQQ[\5SQ[\5S000000V000 0 000 00 00 00EY00YYG00 0UQQQQU4\\]QQQQQQQ5QQS[5QQS[\\5 00000000V000000|3}3~3 000 0000 04]4\\\]UQQQQQQQ4\\SQQSQ[\5[\\5[\\\\\\\\500 00 0|3333}3~3 00 0 000UQUQQQQUQQQQ4\\]QQSQQ[5QQ[\\5[\\5QQQQQQ[\5`ab3113^_b4\\\\]4]4\\\]Q4\\]QQQQQ[\5Q[\5QQQ[\5Q[\\\\\\\5SSQU45SQUU4\\\\]QUQQQQQUQQQQQQ4\QQ[5QQ[\\5QQ[\\\\\\5QQSSSQU76SQUUUQ4\\\\]Q4\\\]QQQ4\\]Q5QQ[\5QQQ[\\\\\\\5Q[5QSSSQU76SQUUUQUQQQQQ4]QQQQ4\\]QQQ4[\5QQ[\\5QQQQQQQQSQQSQSSSQU76SQUUUQUQ4\\\]Q4\\\]QQQ4\\]QQSQQQQQ[\\\\\\5Q[5QSQSSSQU76SQUUUQUQUQQQQ4]QQQQ4\\]QQQ \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_1F/border.bin b/data/layouts/MtEmber_RubyPath_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_1F/map.bin b/data/layouts/MtEmber_RubyPath_1F/map.bin new file mode 100644 index 000000000..bfa5e7637 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_1F/map.bin @@ -0,0 +1 @@ +22+22+2222)2222222222222222222222222222222222222222222)2222222222222222222!322222222+#322222)22222)222222222!3+222#322 \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B1F/border.bin b/data/layouts/MtEmber_RubyPath_B1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B1F/map.bin b/data/layouts/MtEmber_RubyPath_B1F/map.bin new file mode 100644 index 000000000..e92a27510 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B1F/map.bin @@ -0,0 +1 @@ +2+222222222!322222)2222#322222222222222+22222222!3222222* \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B1F_Stairs/border.bin b/data/layouts/MtEmber_RubyPath_B1F_Stairs/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B1F_Stairs/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B1F_Stairs/map.bin b/data/layouts/MtEmber_RubyPath_B1F_Stairs/map.bin new file mode 100644 index 000000000..1ac916e78 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B1F_Stairs/map.bin @@ -0,0 +1 @@ +)2222+22+222( \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B2F/border.bin b/data/layouts/MtEmber_RubyPath_B2F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B2F/map.bin b/data/layouts/MtEmber_RubyPath_B2F/map.bin new file mode 100644 index 000000000..09813c497 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B2F/map.bin @@ -0,0 +1 @@ +2#3222+!322222222222222222222222222222222222222(22( \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B2F_Stairs/border.bin b/data/layouts/MtEmber_RubyPath_B2F_Stairs/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B2F_Stairs/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B2F_Stairs/map.bin b/data/layouts/MtEmber_RubyPath_B2F_Stairs/map.bin new file mode 100644 index 000000000..4c7388aa5 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B2F_Stairs/map.bin @@ -0,0 +1 @@ +)+22222222222(* \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B3F/border.bin b/data/layouts/MtEmber_RubyPath_B3F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B3F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B3F/map.bin b/data/layouts/MtEmber_RubyPath_B3F/map.bin new file mode 100644 index 000000000..882838538 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B3F/map.bin @@ -0,0 +1 @@ +++))222222222222222222222222222222222222)2222!322222!3222222222222222+(+222222222222222+)2+22)222+22222222222222222222222+!3222#3*22222))2222#3222#322222222!32222222++ \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B4F/border.bin b/data/layouts/MtEmber_RubyPath_B4F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B4F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B4F/map.bin b/data/layouts/MtEmber_RubyPath_B4F/map.bin new file mode 100644 index 000000000..ea974a47e Binary files /dev/null and b/data/layouts/MtEmber_RubyPath_B4F/map.bin differ diff --git a/data/layouts/MtEmber_RubyPath_B5F/border.bin b/data/layouts/MtEmber_RubyPath_B5F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B5F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B5F/map.bin b/data/layouts/MtEmber_RubyPath_B5F/map.bin new file mode 100644 index 000000000..e67aaa03d Binary files /dev/null and b/data/layouts/MtEmber_RubyPath_B5F/map.bin differ diff --git a/data/layouts/MtEmber_Summit/border.bin b/data/layouts/MtEmber_Summit/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/MtEmber_Summit/border.bin differ diff --git a/data/layouts/MtEmber_Summit/map.bin b/data/layouts/MtEmber_Summit/map.bin new file mode 100644 index 000000000..603170671 --- /dev/null +++ b/data/layouts/MtEmber_Summit/map.bin @@ -0,0 +1 @@ +QQQU4\\\\\\\\5QS[\5Q4\]U4\\\\\\5[5[\5SMU4\]U4\\\\5[5[\5SSUUU4\]U4\\5[5[5QSSSUUUU4\]UQQSQ[5[5SSSUUUUUQK22222MSQSSSSUU<<<LS33333U=L==SS22MQKLS33333ULMK2223322222WW33W2222333333333W33333W33334\3W3333W33WW3W3333U4\\5333W3333W3W334]U\5S3W3WW333W3334]4]QS[5333WW333W33UQU45[5[\5W3333W33WU4]U[5SQQS3WW1W3W4\]UQU5S[\5[\\\\]4\]4]S[\5[\\\\\\]4\]4[\5[\\\\\\\\]4\]\5[\\\\\\\\\\]4\5[\\\\\\\\\\\\]4[\\\\\\\\\\\\\\] \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_1F/border.bin b/data/layouts/MtEmber_SummitPath_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_1F/map.bin b/data/layouts/MtEmber_SummitPath_1F/map.bin new file mode 100644 index 000000000..40ec58172 --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_1F/map.bin @@ -0,0 +1 @@ +2)!32222#3222222+2222*22222222)222 \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_2F/border.bin b/data/layouts/MtEmber_SummitPath_2F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_2F/map.bin b/data/layouts/MtEmber_SummitPath_2F/map.bin new file mode 100644 index 000000000..960c58b68 --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_2F/map.bin @@ -0,0 +1 @@ ++222)2222222222222222222222222222222#32!3222222222)22#322222+2)222222222)222222222+22222IIIII#32226B@222!36IIIIJL@222BECHIIIIII222+BLLLLMC@2IJEKLLLLLL@2B7EC@222222IJLMCH22222#3B7EC@22IIIJ7MK@22B7777ECH+22B7LLLLMC@22B7EKH2222!3B7E7C@2222B7E77K@222IJ7E777C@222B77E7777CH#322B7LM7777C@222B7E777K@222B7E777C@22!3B7E7777C@666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666662222222222266666666666666666666622222222222666666666666666666666622222222222 \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_3F/border.bin b/data/layouts/MtEmber_SummitPath_3F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_3F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_3F/map.bin b/data/layouts/MtEmber_SummitPath_3F/map.bin new file mode 100644 index 000000000..b107b027e --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_3F/map.bin @@ -0,0 +1 @@ +)22222222222222222*222*22!3222#322 \ No newline at end of file diff --git a/data/layouts/MtMoon_1F/border.bin b/data/layouts/MtMoon_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/MtMoon_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtMoon_1F/map.bin b/data/layouts/MtMoon_1F/map.bin new file mode 100644 index 000000000..0a2146855 Binary files /dev/null and b/data/layouts/MtMoon_1F/map.bin differ diff --git a/data/layouts/MtMoon_B1F/border.bin b/data/layouts/MtMoon_B1F/border.bin new file mode 100644 index 000000000..23857cf75 --- /dev/null +++ b/data/layouts/MtMoon_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtMoon_B1F/map.bin b/data/layouts/MtMoon_B1F/map.bin new file mode 100644 index 000000000..89714677c Binary files /dev/null and b/data/layouts/MtMoon_B1F/map.bin differ diff --git a/data/layouts/MtMoon_B2F/border.bin b/data/layouts/MtMoon_B2F/border.bin new file mode 100644 index 000000000..23857cf75 --- /dev/null +++ b/data/layouts/MtMoon_B2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtMoon_B2F/map.bin b/data/layouts/MtMoon_B2F/map.bin new file mode 100644 index 000000000..9b546adb5 --- /dev/null +++ b/data/layouts/MtMoon_B2F/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_1F/border.bin b/data/layouts/NavelRock_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_1F/map.bin b/data/layouts/NavelRock_1F/map.bin new file mode 100644 index 000000000..6398304c9 --- /dev/null +++ b/data/layouts/NavelRock_1F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_B1F/border.bin b/data/layouts/NavelRock_B1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_B1F/map.bin b/data/layouts/NavelRock_B1F/map.bin new file mode 100644 index 000000000..856e2a21f --- /dev/null +++ b/data/layouts/NavelRock_B1F/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_Base/border.bin b/data/layouts/NavelRock_Base/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_Base/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_Base/map.bin b/data/layouts/NavelRock_Base/map.bin new file mode 100644 index 000000000..dcfeee21e --- /dev/null +++ b/data/layouts/NavelRock_Base/map.bin @@ -0,0 +1 @@ +**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.8886+++((**---93;3;3;3:3+++((**-99%,3,3,3#::+((**-,,-%,3#+,,+((**-,,--3++,,+((**-,,-93,3:3+,,+((**-&45,3,33/'+((**--,3,3,3,3,373++((**--,,3,3,3,3++((>><<==?? \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B10F/border.bin b/data/layouts/NavelRock_BasePath_B10F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B10F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B10F/map.bin b/data/layouts/NavelRock_BasePath_B10F/map.bin new file mode 100644 index 000000000..3f718d185 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B10F/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B11F/border.bin b/data/layouts/NavelRock_BasePath_B11F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B11F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B11F/map.bin b/data/layouts/NavelRock_BasePath_B11F/map.bin new file mode 100644 index 000000000..48a1246d4 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B11F/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B1F/border.bin b/data/layouts/NavelRock_BasePath_B1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B1F/map.bin b/data/layouts/NavelRock_BasePath_B1F/map.bin new file mode 100644 index 000000000..48a1246d4 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B1F/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B2F/border.bin b/data/layouts/NavelRock_BasePath_B2F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B2F/map.bin b/data/layouts/NavelRock_BasePath_B2F/map.bin new file mode 100644 index 000000000..3f718d185 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B2F/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B3F/border.bin b/data/layouts/NavelRock_BasePath_B3F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B3F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B3F/map.bin b/data/layouts/NavelRock_BasePath_B3F/map.bin new file mode 100644 index 000000000..48a1246d4 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B3F/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B4F/border.bin b/data/layouts/NavelRock_BasePath_B4F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B4F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B4F/map.bin b/data/layouts/NavelRock_BasePath_B4F/map.bin new file mode 100644 index 000000000..3f718d185 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B4F/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B5F/border.bin b/data/layouts/NavelRock_BasePath_B5F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B5F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B5F/map.bin b/data/layouts/NavelRock_BasePath_B5F/map.bin new file mode 100644 index 000000000..48a1246d4 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B5F/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B6F/border.bin b/data/layouts/NavelRock_BasePath_B6F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B6F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B6F/map.bin b/data/layouts/NavelRock_BasePath_B6F/map.bin new file mode 100644 index 000000000..3f718d185 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B6F/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B7F/border.bin b/data/layouts/NavelRock_BasePath_B7F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B7F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B7F/map.bin b/data/layouts/NavelRock_BasePath_B7F/map.bin new file mode 100644 index 000000000..48a1246d4 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B7F/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B8F/border.bin b/data/layouts/NavelRock_BasePath_B8F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B8F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B8F/map.bin b/data/layouts/NavelRock_BasePath_B8F/map.bin new file mode 100644 index 000000000..3f718d185 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B8F/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B9F/border.bin b/data/layouts/NavelRock_BasePath_B9F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B9F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B9F/map.bin b/data/layouts/NavelRock_BasePath_B9F/map.bin new file mode 100644 index 000000000..48a1246d4 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B9F/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_Exterior/border.bin b/data/layouts/NavelRock_Exterior/border.bin new file mode 100644 index 000000000..75f2c916c --- /dev/null +++ b/data/layouts/NavelRock_Exterior/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/NavelRock_Exterior/map.bin b/data/layouts/NavelRock_Exterior/map.bin new file mode 100644 index 000000000..4d169ee3a Binary files /dev/null and b/data/layouts/NavelRock_Exterior/map.bin differ diff --git a/data/layouts/NavelRock_Fork/border.bin b/data/layouts/NavelRock_Fork/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_Fork/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_Fork/map.bin b/data/layouts/NavelRock_Fork/map.bin new file mode 100644 index 000000000..e6ce2d331 --- /dev/null +++ b/data/layouts/NavelRock_Fork/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222V2T32W222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_Summit/border.bin b/data/layouts/NavelRock_Summit/border.bin new file mode 100644 index 000000000..4ecad6cd2 --- /dev/null +++ b/data/layouts/NavelRock_Summit/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_Summit/map.bin b/data/layouts/NavelRock_Summit/map.bin new file mode 100644 index 000000000..d49777f32 --- /dev/null +++ b/data/layouts/NavelRock_Summit/map.bin @@ -0,0 +1,2 @@ +66666666366666666666666636666666666666366666666666626666666666662666666666666222226666666666@22222@666666@:222229@666:2222296::99::99:      +9:       9:       9 \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_2F/border.bin b/data/layouts/NavelRock_SummitPath_2F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_2F/map.bin b/data/layouts/NavelRock_SummitPath_2F/map.bin new file mode 100644 index 000000000..48a1246d4 --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_2F/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_3F/border.bin b/data/layouts/NavelRock_SummitPath_3F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_3F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_3F/map.bin b/data/layouts/NavelRock_SummitPath_3F/map.bin new file mode 100644 index 000000000..3f718d185 --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_3F/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_4F/border.bin b/data/layouts/NavelRock_SummitPath_4F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_4F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_4F/map.bin b/data/layouts/NavelRock_SummitPath_4F/map.bin new file mode 100644 index 000000000..48a1246d4 --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_4F/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_5F/border.bin b/data/layouts/NavelRock_SummitPath_5F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_5F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_5F/map.bin b/data/layouts/NavelRock_SummitPath_5F/map.bin new file mode 100644 index 000000000..3f718d185 --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_5F/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/OneIsland/border.bin b/data/layouts/OneIsland/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/OneIsland/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/OneIsland/map.bin b/data/layouts/OneIsland/map.bin new file mode 100644 index 000000000..26fbb1b50 --- /dev/null +++ b/data/layouts/OneIsland/map.bin @@ -0,0 +1 @@ +qqqqqqqqqqquu*1+qqqqqquuqqqqqqruuqqqqqqruu*1+qqqqqqruu*1+qqq||z&%$'&'uu*1+qqqu0200qqqurx|000|zrqqqurs3000000qqqur000000qqqur00000000000qqqur00000000||qqqur0000000000111111q|}r000000000r111111|}|z&'0000000000rhq}|||||||000|||zpqqqqq|}} # ###111# $sqqqqq||} 1++++111+,{||||###1+++++222++####!s+++++++,s \ No newline at end of file diff --git a/data/layouts/OneIsland_KindleRoad/border.bin b/data/layouts/OneIsland_KindleRoad/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/OneIsland_KindleRoad/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/OneIsland_KindleRoad/map.bin b/data/layouts/OneIsland_KindleRoad/map.bin new file mode 100644 index 000000000..4d4abca6d Binary files /dev/null and b/data/layouts/OneIsland_KindleRoad/map.bin differ diff --git a/data/layouts/OneIsland_KindleRoad_EmberSpa/border.bin b/data/layouts/OneIsland_KindleRoad_EmberSpa/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/OneIsland_KindleRoad_EmberSpa/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/OneIsland_KindleRoad_EmberSpa/map.bin b/data/layouts/OneIsland_KindleRoad_EmberSpa/map.bin new file mode 100644 index 000000000..9817d8614 --- /dev/null +++ b/data/layouts/OneIsland_KindleRoad_EmberSpa/map.bin @@ -0,0 +1 @@ +)''''+////+01772//)8999:-3//8'99:-30771125555-3`999&a2-3-3-3"36)7 3-3-3-3-3-3,3,3,3,3,3,3,3,3-3-3-3-3-36+7-3-3"3-3-3-3 3-3-3-3-3-3-3 3-3-3-3-3-36-3-322071313331313272)87&393939393:7+7-36031313238793939393&3:7?-3683'393:3879393'39393:77-3-36*(7-3 36557-3-367-3-3>5555+5-3-367-3-3-3-3-3-3-3>5555?-3-3"3-367 3-3-3-3"3-3-3-3-3-3-3-3-3-3-3-3-367-3-3-3-3-3-3-3-3-3-3 3-3-3-3-3-3-3644/-3-3-3-3-3-3-3-3-3-3.444444/-3-3-3.447-3-3-367-3-3-367"3-3-36/-3-367-3 367-3.7-367-367-367-367-367-367-36=36 \ No newline at end of file diff --git a/data/layouts/OneIsland_PokemonCenter_1F/border.bin b/data/layouts/OneIsland_PokemonCenter_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/OneIsland_PokemonCenter_1F/border.bin differ diff --git a/data/layouts/OneIsland_PokemonCenter_1F/map.bin b/data/layouts/OneIsland_PokemonCenter_1F/map.bin new file mode 100644 index 000000000..a9016b670 --- /dev/null +++ b/data/layouts/OneIsland_PokemonCenter_1F/map.bin @@ -0,0 +1 @@ +bHI``JK222c3222PQUURS 722222LMVVNOn22222222222T\XY^WnBB22222222ABFGCD222222222222E322222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/OneIsland_PokemonCenter_2F/border.bin b/data/layouts/OneIsland_PokemonCenter_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/OneIsland_PokemonCenter_2F/border.bin differ diff --git a/data/layouts/OneIsland_PokemonCenter_2F/map.bin b/data/layouts/OneIsland_PokemonCenter_2F/map.bin new file mode 100644 index 000000000..a1b551a73 Binary files /dev/null and b/data/layouts/OneIsland_PokemonCenter_2F/map.bin differ diff --git a/data/layouts/OneIsland_TreasureBeach/border.bin b/data/layouts/OneIsland_TreasureBeach/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/OneIsland_TreasureBeach/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/OneIsland_TreasureBeach/map.bin b/data/layouts/OneIsland_TreasureBeach/map.bin new file mode 100644 index 000000000..fe6ef01a7 Binary files /dev/null and b/data/layouts/OneIsland_TreasureBeach/map.bin differ diff --git a/data/layouts/PalletTown/border.bin b/data/layouts/PalletTown/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/PalletTown/border.bin differ diff --git a/data/layouts/PalletTown/map.bin b/data/layouts/PalletTown/map.bin new file mode 100644 index 000000000..f2113394f --- /dev/null +++ b/data/layouts/PalletTown/map.bin @@ -0,0 +1 @@ +22$%$%$%$%$'22&%$%$%$%222222222222222222222222222222222222222222222222222202220222222222222222222222222222222222222222222222222222222222222222222222222222222222222200000222222220000022222222 00 00222222222222222222222222222222222222222222222222222##2222222222200 00 0*++,2222222222200000*++,00000000000 \ No newline at end of file diff --git a/data/layouts/PalletTown_GarysHouse/border.bin b/data/layouts/PalletTown_GarysHouse/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PalletTown_GarysHouse/border.bin differ diff --git a/data/layouts/PalletTown_GarysHouse/map.bin b/data/layouts/PalletTown_GarysHouse/map.bin new file mode 100644 index 000000000..a29b5dbdc --- /dev/null +++ b/data/layouts/PalletTown_GarysHouse/map.bin @@ -0,0 +1 @@ +  ./ -!"  +,1267(5)*((3490:0>0?0 0=0 0 0 0 0 0;0<0 0000C0D0D0D0D0F0000 0000S0K0LMN0V0000 0000S0K0TUN0V0000 0000[0\0\0\0\0^0000W000000000000G0_00000000000O4444444444 \ No newline at end of file diff --git a/data/layouts/PalletTown_PlayersHouse_1F/border.bin b/data/layouts/PalletTown_PlayersHouse_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PalletTown_PlayersHouse_1F/border.bin differ diff --git a/data/layouts/PalletTown_PlayersHouse_1F/map.bin b/data/layouts/PalletTown_PlayersHouse_1F/map.bin new file mode 100644 index 000000000..b93d823c9 --- /dev/null +++ b/data/layouts/PalletTown_PlayersHouse_1F/map.bin @@ -0,0 +1 @@ +  ./ -!"    1267(5)*((90:0>0?0 0=0 0 0 00 000C0D0D0D0D0F0%0&0'0 000S0K0LMN0V0000 000S0K0TUN0V0000W000[0\0\0\0\0^000G0_0000000000O 000000000000 \ No newline at end of file diff --git a/data/layouts/PalletTown_PlayersHouse_2F/border.bin b/data/layouts/PalletTown_PlayersHouse_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PalletTown_PlayersHouse_2F/border.bin differ diff --git a/data/layouts/PalletTown_PlayersHouse_2F/map.bin b/data/layouts/PalletTown_PlayersHouse_2F/map.bin new file mode 100644 index 000000000..b5d3bee2d Binary files /dev/null and b/data/layouts/PalletTown_PlayersHouse_2F/map.bin differ diff --git a/data/layouts/PalletTown_ProfessorOaksLab/border.bin b/data/layouts/PalletTown_ProfessorOaksLab/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PalletTown_ProfessorOaksLab/border.bin differ diff --git a/data/layouts/PalletTown_ProfessorOaksLab/map.bin b/data/layouts/PalletTown_ProfessorOaksLab/map.bin new file mode 100644 index 000000000..1067109ab --- /dev/null +++ b/data/layouts/PalletTown_ProfessorOaksLab/map.bin @@ -0,0 +1 @@ +mmniiklkluvstst222222222222222222222222222222222222222222222222222222222222222222222sstst222ststt22222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PewterCity/border.bin b/data/layouts/PewterCity/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/PewterCity/border.bin differ diff --git a/data/layouts/PewterCity/map.bin b/data/layouts/PewterCity/map.bin new file mode 100644 index 000000000..fc42368cb --- /dev/null +++ b/data/layouts/PewterCity/map.bin @@ -0,0 +1 @@ +$%$%$%$%2222$%$%$%$%$%000000000000000000000000000000000000000000000000000000000 00 000 00 0000000&%00000200 00 000 00 000222000001111111111111111111000000022222111001111111111111111111 0000000111111111111111111111100000001111111111111111111111 00 00 00011111100 091:1:1:1:1:1;1 0001111111111111111111110ABBBBBC0111111111111111111111IJJJJJK111111111111111111111`1PQRSTUV 0111 0(0)0*0+00000000111111&'hX1Y1Z[\]1^10&'111001230000000111111111111111110111089:;00000111111111111111110111 0@Abc$%0000011111111111111111011111111111111111$%$%$%$'11111111111111111111 00 00 00000000000{1|1}1~1100111111111111111111110000000000000HIJK11100000000000011111 00 00 000000000PQRS11100111000000000 00 00 00XYZ[1110&%$%$%$%$'01110000000&'`ab&'111 01110 00 00 000111111111110000000000111002222201111111111100000000001110 0011111111111000000000011100000 00000011100000000001110 00000 00 001110011101111111111111111111111111111111110111111111111111111111111111111111 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/PewterCity_Gym/border.bin b/data/layouts/PewterCity_Gym/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PewterCity_Gym/border.bin differ diff --git a/data/layouts/PewterCity_Gym/map.bin b/data/layouts/PewterCity_Gym/map.bin new file mode 100644 index 000000000..7a22de0f9 --- /dev/null +++ b/data/layouts/PewterCity_Gym/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/PewterCity_Museum_1F/border.bin b/data/layouts/PewterCity_Museum_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PewterCity_Museum_1F/border.bin differ diff --git a/data/layouts/PewterCity_Museum_1F/map.bin b/data/layouts/PewterCity_Museum_1F/map.bin new file mode 100644 index 000000000..1485da6ef --- /dev/null +++ b/data/layouts/PewterCity_Museum_1F/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PewterCity_Museum_2F/border.bin b/data/layouts/PewterCity_Museum_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PewterCity_Museum_2F/border.bin differ diff --git a/data/layouts/PewterCity_Museum_2F/map.bin b/data/layouts/PewterCity_Museum_2F/map.bin new file mode 100644 index 000000000..d8d372f70 --- /dev/null +++ b/data/layouts/PewterCity_Museum_2F/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonCenter_1F/border.bin b/data/layouts/PokemonCenter_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonCenter_1F/border.bin differ diff --git a/data/layouts/PokemonCenter_1F/map.bin b/data/layouts/PokemonCenter_1F/map.bin new file mode 100644 index 000000000..590f47989 --- /dev/null +++ b/data/layouts/PokemonCenter_1F/map.bin @@ -0,0 +1 @@ +2b22222c322222222222222222222222222222222222222222BB222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonCenter_2F/border.bin b/data/layouts/PokemonCenter_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonCenter_2F/border.bin differ diff --git a/data/layouts/PokemonCenter_2F/map.bin b/data/layouts/PokemonCenter_2F/map.bin new file mode 100644 index 000000000..a1b551a73 Binary files /dev/null and b/data/layouts/PokemonCenter_2F/map.bin differ diff --git a/data/layouts/PokemonLeague_AgathasRoom/border.bin b/data/layouts/PokemonLeague_AgathasRoom/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonLeague_AgathasRoom/border.bin differ diff --git a/data/layouts/PokemonLeague_AgathasRoom/map.bin b/data/layouts/PokemonLeague_AgathasRoom/map.bin new file mode 100644 index 000000000..718b7678c Binary files /dev/null and b/data/layouts/PokemonLeague_AgathasRoom/map.bin differ diff --git a/data/layouts/PokemonLeague_BrunosRoom/border.bin b/data/layouts/PokemonLeague_BrunosRoom/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonLeague_BrunosRoom/border.bin differ diff --git a/data/layouts/PokemonLeague_BrunosRoom/map.bin b/data/layouts/PokemonLeague_BrunosRoom/map.bin new file mode 100644 index 000000000..96107bfa1 --- /dev/null +++ b/data/layouts/PokemonLeague_BrunosRoom/map.bin @@ -0,0 +1 @@ +RSE3KF322222E3KF3L3P3222222L3P322Y2222222Y2X3[222222X3[22Q32222222Q322Y2222222Y2X3[222222X3[22222222222201289: \ No newline at end of file diff --git a/data/layouts/PokemonLeague_ChampionsRoom/border.bin b/data/layouts/PokemonLeague_ChampionsRoom/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonLeague_ChampionsRoom/border.bin differ diff --git a/data/layouts/PokemonLeague_ChampionsRoom/map.bin b/data/layouts/PokemonLeague_ChampionsRoom/map.bin new file mode 100644 index 000000000..3e83caa24 --- /dev/null +++ b/data/layouts/PokemonLeague_ChampionsRoom/map.bin @@ -0,0 +1 @@ +7733333333333333 \ No newline at end of file diff --git a/data/layouts/PokemonLeague_HallOfFame/border.bin b/data/layouts/PokemonLeague_HallOfFame/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonLeague_HallOfFame/border.bin differ diff --git a/data/layouts/PokemonLeague_HallOfFame/map.bin b/data/layouts/PokemonLeague_HallOfFame/map.bin new file mode 100644 index 000000000..e8a598e9b --- /dev/null +++ b/data/layouts/PokemonLeague_HallOfFame/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonLeague_LancesRoom/border.bin b/data/layouts/PokemonLeague_LancesRoom/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonLeague_LancesRoom/border.bin differ diff --git a/data/layouts/PokemonLeague_LancesRoom/map.bin b/data/layouts/PokemonLeague_LancesRoom/map.bin new file mode 100644 index 000000000..0ba5c9ff0 --- /dev/null +++ b/data/layouts/PokemonLeague_LancesRoom/map.bin @@ -0,0 +1 @@ +OW3r3333333s33j33333333k333p33 3!3"333q33x3&3#3$3%3'33y33333333333333h33.3+3,3-3/33i333333333333333p33(3)3*333q33333333333333x3222223y3333333@2333@2322222222222333333I?333I?3673@33333>?3H333333A233A23?32A233A2333333333I?33I?333I?33I?3333333333333333333333333333333333333333333333333@233@2333@233@233333333222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonLeague_LoreleisRoom/border.bin b/data/layouts/PokemonLeague_LoreleisRoom/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonLeague_LoreleisRoom/border.bin differ diff --git a/data/layouts/PokemonLeague_LoreleisRoom/map.bin b/data/layouts/PokemonLeague_LoreleisRoom/map.bin new file mode 100644 index 000000000..340b78d78 --- /dev/null +++ b/data/layouts/PokemonLeague_LoreleisRoom/map.bin @@ -0,0 +1 @@ +CD2I2222222I22A32222222A322J2222222J22M2222222M22B32222222B322J2222222J22M2222222M222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonMansion_1F/border.bin b/data/layouts/PokemonMansion_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonMansion_1F/border.bin differ diff --git a/data/layouts/PokemonMansion_1F/map.bin b/data/layouts/PokemonMansion_1F/map.bin new file mode 100644 index 000000000..491753551 Binary files /dev/null and b/data/layouts/PokemonMansion_1F/map.bin differ diff --git a/data/layouts/PokemonMansion_2F/border.bin b/data/layouts/PokemonMansion_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonMansion_2F/border.bin differ diff --git a/data/layouts/PokemonMansion_2F/map.bin b/data/layouts/PokemonMansion_2F/map.bin new file mode 100644 index 000000000..87db6b0ea Binary files /dev/null and b/data/layouts/PokemonMansion_2F/map.bin differ diff --git a/data/layouts/PokemonMansion_3F/border.bin b/data/layouts/PokemonMansion_3F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonMansion_3F/border.bin differ diff --git a/data/layouts/PokemonMansion_3F/map.bin b/data/layouts/PokemonMansion_3F/map.bin new file mode 100644 index 000000000..9a05ce1b8 Binary files /dev/null and b/data/layouts/PokemonMansion_3F/map.bin differ diff --git a/data/layouts/PokemonMansion_B1F/border.bin b/data/layouts/PokemonMansion_B1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PokemonMansion_B1F/border.bin differ diff --git a/data/layouts/PokemonMansion_B1F/map.bin b/data/layouts/PokemonMansion_B1F/map.bin new file mode 100644 index 000000000..a7b0eeeb1 --- /dev/null +++ b/data/layouts/PokemonMansion_B1F/map.bin @@ -0,0 +1 @@ +22l3l3m322l3m3222l3l3l322m3m3n3n3n3n322222222222222222222222222222222222322222222222222222222R322S3222Q322222,2222222222222\3]3^32222222 R3R3W3S32222Q322.2222[32222222222622Z32[3222P22222222222d3e3f32222X222222222222222222222222222b22222222222222222222222222222222222j22222222222222222222222222222222222r222222222222222222222222-R322S3222Q322222222222222222222S322222252222222222222222222222222222i3i3i3222i3i3i32222222222222222222222222aaa222aaa222222222222222222R3S3222Q3.222222222222222222222222222222262Y3Y3Y3222Y3Y3Y32222Q322S3222Q322S32222222aaa222aaa2222222222222-R3222222222222222222222225222TUV2222222222222n3n322222l3m32222222222222222222222222222Q3222.222222222222222222\3]3^32222222226222222222222222222v[322222222t222222222222222222Z32322222222222222222222222222d3e3f32,22222222c322222222222222222222222222222222k3-R322222222222222R322222222R3222222222.129:AB \ No newline at end of file diff --git a/data/layouts/PokemonTower_1F/border.bin b/data/layouts/PokemonTower_1F/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/PokemonTower_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_1F/map.bin b/data/layouts/PokemonTower_1F/map.bin new file mode 100644 index 000000000..f393c9f34 --- /dev/null +++ b/data/layouts/PokemonTower_1F/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_2F/border.bin b/data/layouts/PokemonTower_2F/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/PokemonTower_2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_2F/map.bin b/data/layouts/PokemonTower_2F/map.bin new file mode 100644 index 000000000..0d1e67b03 --- /dev/null +++ b/data/layouts/PokemonTower_2F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222662222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_3F/border.bin b/data/layouts/PokemonTower_3F/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/PokemonTower_3F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_3F/map.bin b/data/layouts/PokemonTower_3F/map.bin new file mode 100644 index 000000000..c591995c1 --- /dev/null +++ b/data/layouts/PokemonTower_3F/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222622222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_4F/border.bin b/data/layouts/PokemonTower_4F/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/PokemonTower_4F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_4F/map.bin b/data/layouts/PokemonTower_4F/map.bin new file mode 100644 index 000000000..eebe48c13 --- /dev/null +++ b/data/layouts/PokemonTower_4F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222622222222222222222222222222226622222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_5F/border.bin b/data/layouts/PokemonTower_5F/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/PokemonTower_5F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_5F/map.bin b/data/layouts/PokemonTower_5F/map.bin new file mode 100644 index 000000000..efc99cca9 --- /dev/null +++ b/data/layouts/PokemonTower_5F/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222622222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_6F/border.bin b/data/layouts/PokemonTower_6F/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/PokemonTower_6F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_6F/map.bin b/data/layouts/PokemonTower_6F/map.bin new file mode 100644 index 000000000..fb8746f20 --- /dev/null +++ b/data/layouts/PokemonTower_6F/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222226622222222222222222222222222222222222222222222222622222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_7F/border.bin b/data/layouts/PokemonTower_7F/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/PokemonTower_7F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_7F/map.bin b/data/layouts/PokemonTower_7F/map.bin new file mode 100644 index 000000000..7554673cf --- /dev/null +++ b/data/layouts/PokemonTower_7F/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222662222222222 \ No newline at end of file diff --git a/data/layouts/PowerPlant/border.bin b/data/layouts/PowerPlant/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/PowerPlant/border.bin differ diff --git a/data/layouts/PowerPlant/map.bin b/data/layouts/PowerPlant/map.bin new file mode 100644 index 000000000..48a6e1984 Binary files /dev/null and b/data/layouts/PowerPlant/map.bin differ diff --git a/data/layouts/RockTunnel_1F/border.bin b/data/layouts/RockTunnel_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/RockTunnel_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RockTunnel_1F/map.bin b/data/layouts/RockTunnel_1F/map.bin new file mode 100644 index 000000000..80a6a266c Binary files /dev/null and b/data/layouts/RockTunnel_1F/map.bin differ diff --git a/data/layouts/RockTunnel_B1F/border.bin b/data/layouts/RockTunnel_B1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/RockTunnel_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RockTunnel_B1F/map.bin b/data/layouts/RockTunnel_B1F/map.bin new file mode 100644 index 000000000..68eed9a4c Binary files /dev/null and b/data/layouts/RockTunnel_B1F/map.bin differ diff --git a/data/layouts/RocketHideout_B1F/border.bin b/data/layouts/RocketHideout_B1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/RocketHideout_B1F/border.bin differ diff --git a/data/layouts/RocketHideout_B1F/map.bin b/data/layouts/RocketHideout_B1F/map.bin new file mode 100644 index 000000000..4a2ed565f Binary files /dev/null and b/data/layouts/RocketHideout_B1F/map.bin differ diff --git a/data/layouts/RocketHideout_B2F/border.bin b/data/layouts/RocketHideout_B2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/RocketHideout_B2F/border.bin differ diff --git a/data/layouts/RocketHideout_B2F/map.bin b/data/layouts/RocketHideout_B2F/map.bin new file mode 100644 index 000000000..f849a0642 --- /dev/null +++ b/data/layouts/RocketHideout_B2F/map.bin @@ -0,0 +1 @@ +UVW222222222222223 322]2^_3222222222222e2fg 2222222222222222222232222222222222222222222 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/RocketHideout_B3F/border.bin b/data/layouts/RocketHideout_B3F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/RocketHideout_B3F/border.bin differ diff --git a/data/layouts/RocketHideout_B3F/map.bin b/data/layouts/RocketHideout_B3F/map.bin new file mode 100644 index 000000000..bdd886346 --- /dev/null +++ b/data/layouts/RocketHideout_B3F/map.bin @@ -0,0 +1 @@ +23 322222222222222222222222222222222222222222222222222222222222222222222222332222222222222222222222222222222222222222222222222222222232222222222222222222222222222222222222222222222222222222222n222222222222222222222222222222222222222222222222222222222222222222222222222223222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/RocketHideout_B4F/border.bin b/data/layouts/RocketHideout_B4F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/RocketHideout_B4F/border.bin differ diff --git a/data/layouts/RocketHideout_B4F/map.bin b/data/layouts/RocketHideout_B4F/map.bin new file mode 100644 index 000000000..0e0b8ec93 Binary files /dev/null and b/data/layouts/RocketHideout_B4F/map.bin differ diff --git a/data/layouts/RocketHideout_Elevator/border.bin b/data/layouts/RocketHideout_Elevator/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/RocketHideout_Elevator/border.bin differ diff --git a/data/layouts/RocketHideout_Elevator/map.bin b/data/layouts/RocketHideout_Elevator/map.bin new file mode 100644 index 000000000..42e08c38d --- /dev/null +++ b/data/layouts/RocketHideout_Elevator/map.bin @@ -0,0 +1 @@ +222222222222222 \ No newline at end of file diff --git a/data/layouts/Route1/border.bin b/data/layouts/Route1/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/Route1/border.bin differ diff --git a/data/layouts/Route1/map.bin b/data/layouts/Route1/map.bin new file mode 100644 index 000000000..02ee26860 --- /dev/null +++ b/data/layouts/Route1/map.bin @@ -0,0 +1 @@ +0000$%$%$%$'0000&%$%$%$%0 00 00 00 00000 00 00 0000000000000001000000000 00 00 0000000001000000000000000 0 0 0 0 0 0 0 0 0 0 0 0000 000 0 0 0 0 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 0000 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000000&'00000000000000000000 0 0000100000000000000000000 0 0 0 0 0 000000000000000 0 0 0 0 0 0 0 0 0 0 0 0&'000000&%$%$' 0 0 0 0 0 000000000000000 0 0 0 0 0 0000000000001000000000 00000100000000000000000 00000100000000000000 0000000000000001000000000000000000000000000000000 0 0 0 0 0 00000 0 0 0 0 0 00000&%$%$%$%$' 0 0 0 0 0 000000 00 00 0 0 0 0 0 0 000000000000000 0 0 0 0 0 000000000000000000000100000000000010010000000 0000 0 0 0 0 0 0 0 000000 0 0 0 0 0 000 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 0 000000 0 0 0 0 000 0 0 0 0 0 0 000 0 0 00 0 0 0 0 0 00 0 0000000000 0 00000000 0 0 0 0 \ No newline at end of file diff --git a/data/layouts/Route10/border.bin b/data/layouts/Route10/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/Route10/border.bin differ diff --git a/data/layouts/Route10/map.bin b/data/layouts/Route10/map.bin new file mode 100644 index 000000000..7e40aae43 --- /dev/null +++ b/data/layouts/Route10/map.bin @@ -0,0 +1 @@ +m||||||||||||||||||||quu ##################!squu*++++++++++++++++++,squu*++++++++++++++++++,squr3131313131313131313131313131313141)+,squr0 0*+,sq}r0 000 0 0 0 0 0 0 0 0 0 0 0 0*+,sqy000 0 0 0 0 0 0 0 0 0 0 0 00*+,sq000000 0 0 0 0 0 0 0 0 0 0 0 0*+,sq00000 0 0 0 0 0 0 0 0 0 0 0 00*+,sq000100 0 0 0 0 0 0 0 0 0 0 0 0*+,sq00 00 00 00 00 00 00 00*+,sqm00L*+,squr0 00 00 00 00 00 00 00 0*+,squr0000000000000000*+,squiiiiiiiij 00 00 00 0*+,sqllllllllmr{1|1}1~1100*+,sqqqqqqqqqqurHIJK0 0*+,sq|||||||||}rPQRS00*+,sqqyyyyyy0yzXYZ[0 0*+,sqq000001000`ab00*+,sqq000000000 0*+,sqq0000100 000000000*+,sqq00000000000000 0*+,sqq0000000 00 00 00 00 0*+,sqq000100000000000*+,sqq010000000 00 00 00 0*+,sqq000000 000000000*+,sqqr0 00 000000 00 00 00 0*+,sqqr000000 0000000000*+,sqqr*+,sqqiiiiiiiiiiiiiij00*+,sqqklllllllllllllmr0 0*+,sqqsqqqqqqqqqqqqqur00*+,sqq{||||||||ur0 0*+,sqyP%%%%Ssur00*+,sqr0Q,-$-$-$-.Tpsur0 0*+,sqr0R3Up{}r00*+,sqr02Wpqqr00*+,sqr0 !!!#Tpqq00*+,sq()3*+U3pq00*+,sqr00000313"32333000q000*+,sqj0000000000q000*+,sqqr00000000000y000*+,sqq00000000000000000*+,sqq00000000000000000*+,sqq000000000000000 #1+,sqqu ##############1+++,sqqu*++++++++++++++++++,sqqu*++++++++++++++++++,sqqXYqqqqqqqqqqqqqqqqqqqqqqqqqqklllllllmqqqqqqkllllmqqqsqqqqqqquqqqqqqsqqqquqqqsqqqqqqqlmqqqq{||||}qqq{||qqqqqquqqqqyyyyyqqqqq{||||||}qqqq00 00 0pqqqyyyyy0yyyyyyy00000pqqq0000000000000000 00 0pqqq000000000000100000pqqq00000000000010 00 00 0pqq000000000Mj00000pqq0000000000klm0qq000squr0 00 00pqq000kllllllqur00000pqqsqqqqqqqqur0 00 00pqq001{||||||||}0pqq100xyyyyyyyyyyz00000pqq0000000000000000 00 00pqqr0 00 00 00 00 00 00 000000 0pqqr00000000000000000000pqqiiiiiiiij0 00 00 00000 0pqkllllllllmr00000022200pqsqqqqqqqqur0 00 02222222pqsqqqqq||}0hqsqqqqquyyz000pqqsqqqqqur0 00 00 0pqqsqqqqqur000000pqqsqqqqqur0 00 00hqq{|||||}r00000pkmq \ No newline at end of file diff --git a/data/layouts/Route11/border.bin b/data/layouts/Route11/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/Route11/border.bin differ diff --git a/data/layouts/Route11/map.bin b/data/layouts/Route11/map.bin new file mode 100644 index 000000000..6062ac7f3 --- /dev/null +++ b/data/layouts/Route11/map.bin @@ -0,0 +1,7 @@ +$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$% 00 0000000000000000000 0 0 0 0000000000000000 0 0 00 00 00$%000000000000000000000 0 0 0 0000000000000000 0 0 000000hsq0q0uj 00 0001000000000000100 0 0 0 0001000000000100 0 0 00 00 00$%$'psq0q0ur000000 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0000 0 0 0 0 0 0 0 0 0000 0 0 0 0000 00 00p{||}r 00 0000 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 00xy0yyz&'000000 0 0 0 000000000000 0 0 0 000000000000 0 0 0 0 0 0 0 0DEEEEF%$%$%$%0 00 00 00 00000000000 0 0 0 000000000000 0 0 0 000000000000 0 0 0 0 0 0 00 001LMMMMN'000000000000000000 0 0 0 000100000100 0 0 0 000100000100 0 0 0 000000081<10000000 00 00 00 00 0000001000000000 0 0 0 0 00000000000 0 0 0 0 0000 0 0 0 00000 00@1D1000000############$0 00000000000 0 0 0 0 00000000000 0 0 0 0 0000 0 0 0 0001000H1deeeefL1000000++++++++++++,000000000000 0 0 0 0 00000000100 0 0 0 0 0000 0 0 0 00000 +  +  +  +  +  + ,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0 0000 0 0 0 0000 0 00 00000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000000000 0 0 0 00000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000000000 0 0 0 00000 00 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000100000100 0 0 0 000000000 00000000000000000000000000 0 0 0 0 000000000000 00 0000000000000000000000000000 0 0 0 0 000000000000000002222222222222222222222222 0 0 0 0 0222222222200000 \ No newline at end of file diff --git a/data/layouts/Route12/border.bin b/data/layouts/Route12/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route12/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route12/map.bin b/data/layouts/Route12/map.bin new file mode 100644 index 000000000..ca203b565 Binary files /dev/null and b/data/layouts/Route12/map.bin differ diff --git a/data/layouts/Route12_NorthEntrance_1F/border.bin b/data/layouts/Route12_NorthEntrance_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/Route12_NorthEntrance_1F/border.bin differ diff --git a/data/layouts/Route12_NorthEntrance_1F/map.bin b/data/layouts/Route12_NorthEntrance_1F/map.bin new file mode 100644 index 000000000..f723c9817 --- /dev/null +++ b/data/layouts/Route12_NorthEntrance_1F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route13/border.bin b/data/layouts/Route13/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route13/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route13/map.bin b/data/layouts/Route13/map.bin new file mode 100644 index 000000000..b1f55a645 Binary files /dev/null and b/data/layouts/Route13/map.bin differ diff --git a/data/layouts/Route14/border.bin b/data/layouts/Route14/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route14/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route14/map.bin b/data/layouts/Route14/map.bin new file mode 100644 index 000000000..48d7c0dcd --- /dev/null +++ b/data/layouts/Route14/map.bin @@ -0,0 +1 @@ +$%$%$%$%$%$%$%$%$%0 00 00 00 00 00 00 00 00000 00 00 00 00 000 0 00 00000 00 00 00 00 00 00 00 00000 00 00 000 000 00 00 0000000000 000000 00 00 000000000000000 00 0000000000000000000&%$%$0000 0 0 0 0 0000 0 0 0 0 0000 0 0 0 0 0000 0 0 0 0 0000&%$%$% 0 0 0 0 0000"##### 0 0 0 0 0000*+0 00 00000*+0000*+0 0000000*+00000000*++0 0000000*++++0000000031313141)0 0000000*000000000 00 0*0 00000000000*00000&'0000 00 0*0 0000000000000*000000000 00 0*0 00000000000*000000000 00 0*0 00000000000*00000000000 0*0 00000000000*00000000000 0*0 00000000000*$%$%000000000000*0000000100&'0000000*$%00000000000 00000 000* 000000000000000000000*00 00 00 00 00 00 00000 000*0000000000000000000*000 00000000 00 00000 000*0000 00 00 00 00 000000000*11000000000000001000 000*11000000000000000000000*11000000000000000000 000*11*110000000000000000000000*11*** \ No newline at end of file diff --git a/data/layouts/Route15/border.bin b/data/layouts/Route15/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/Route15/border.bin differ diff --git a/data/layouts/Route15/map.bin b/data/layouts/Route15/map.bin new file mode 100644 index 000000000..786f67988 --- /dev/null +++ b/data/layouts/Route15/map.bin @@ -0,0 +1 @@ +$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%0000000000000000000000000000000000000000000000000000000$%$%$%$%$'0000000000000000000000000000000000000000000000000000000000000 00 000000000000000000000000000000000000000000000000000000000DEEEEF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00$%$%$'0001LMMMMN100000000081<1000 0 0 0 0 0 0000000 0 0 0 0 0 00 0000 00 000000 0 0 0 00000 0 0 0 0 0 0 000000 0000000000@1D1000 0 0 0 0 0 0000000 0 0 0 0 0 0000000000000 0 0 0 00000 0 0 0 0 0 0 0000000000000000H1deeeefL1101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/Route16/border.bin b/data/layouts/Route16/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route16/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route16/map.bin b/data/layouts/Route16/map.bin new file mode 100644 index 000000000..a88b95a6a --- /dev/null +++ b/data/layouts/Route16/map.bin @@ -0,0 +1 @@ +,,+,(21&%$%$%$]-0-0-0^$%$%$%$DEEEEF%$%$%$%$%$%$%$%,45667.LMMMMN/,0000000<=BC?00000081LMMMMN<100000 0 0 0 0 0 0 0 0 0,000000100000100000@1LMMMMND100000 0 0 0 0 0 0 0 0 0,000000000000001000H1L100100 0 0 0 0 0 0 0 0 0,0000000000000000 00 0DEEEEF0 00001000000000,0000000000000000000LMMMMN000000000000000,LMMMMN000000000000,0 00 00 00 00 00 00 00 00 01100&%$%$%,00000000000000000081<1000 00 00 00 00 00 00 00,00000 00 00000000000@1\]0]0]0]0^D100000000000000000000,000000000000100000H1deeeefL1000 00 00 00 00 00 00 00,00000 00 000000,0000000000000,000100010000,0000000000000,0001000010100 \ No newline at end of file diff --git a/data/layouts/Route16_NorthEntrance_1F/border.bin b/data/layouts/Route16_NorthEntrance_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/Route16_NorthEntrance_1F/border.bin differ diff --git a/data/layouts/Route16_NorthEntrance_1F/map.bin b/data/layouts/Route16_NorthEntrance_1F/map.bin new file mode 100644 index 000000000..c41db67b6 --- /dev/null +++ b/data/layouts/Route16_NorthEntrance_1F/map.bin @@ -0,0 +1 @@ +23333333332222222222222222222222222222222222           222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route17/border.bin b/data/layouts/Route17/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route17/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route17/map.bin b/data/layouts/Route17/map.bin new file mode 100644 index 000000000..24ce3c11f --- /dev/null +++ b/data/layouts/Route17/map.bin @@ -0,0 +1 @@ +,>3 3!3"3>3?3>3?3 3!3"3?3>3,#$3(3)3*3F3G3F3G3(3)3*3G3,3%&%$%$%$%,+>3(3)3*3>3?3>3?3(3)3*3?3F3->3"######,343(3)3*3F3G3F3G3(3)3*3G3>35F3*+,>3(3)3*3>3?3>3?3(3)3*3?3>3>3*,F3(3)3*3F3G3F3G3(3)3*3G3F3F3*,#$3(3)3*3>3?3>3?3(3)3*3?3,3%>3*+,+>3(3)3*3;3<3<3=3(3)3*3G3F3-F3*+++++,343(3)3*3C3D3D3E3(3)3*3?3>35>3313131313141),F3(3)3*3C3D3D3E3(3)3*3G3F3*,>3(3)3*3C3D3D3E3(3)3*3?3>3?3>3?3>3?3>3?3*,#$3(3)3*3C3D3D3E3(3)3*3G3F3R3R3R3R3R3R3,3%*,+>3(3)3*3C3D3D3E3(3)3*3?3>3R3R3R3R3R3R3F3-*,343(3)3*3C3D3D3E3(3)3*3G3F3R3R3R3R3R3R3>35*,>3(3)3*3K3L3L3M3(3)3*3?3>3R3R3R3R3R3R3?3*,F3(3)3*3F3G3F3G3(3)3*3G3F3R3R3R3R3R3R3G3*,#$3(3)3*3>3?3>3?3(3)3*3?3>3R3R3R3R3R3R3,3%*,+>3(3)3*3F3G3F3G3(3)3*3G3F3R3R3R3R3R3R3F3-*,343(3)3*3>3?3>3?3(3)3*3?3>3R3R3R3R3R3R3>35*,F3(3)3*3F3G3F3G3(3)3*3G3F3R3R3R3R3R3R3G3*,>3(3)3*3>3?3>3?3(3)3*3?3>3R3R3R3R3R3R3?3*,#$3(3)3*3F3G3F3G3(3)3*3G3F3R3R3R3R3R3R3,3%*,+>3(3)3*3>3?3>3?3(3)3*3?3>3?3>3?3>3?3>3F3-*,343(3)3*3F3G3F3G3(3)3*3G3;3<3<3=3F3G3F3>35*,>3(3)3*3>3?3>3?3(3)3*3?3C3D3D3Q3<3<3=3?3*,F3(3)3*3F3G3F3G3(3)3*3G3C3D3D3D3D3D3E3G3*,#$3(3)3*3>3?3>3?3(3)3*3?3K3L3L3P3D3D3E3,3%*,+>3(3)3*3F3G3F3G3(3)3*3G3F3G3F3K3L3L3M3F3-*,343(3)3*3>3?3>3?3(3)3*3?3>3?3>3?3>3?3>3>35*,F3(3)3*3F3G3F3G3(3)3*3G3F3G3F3G3F3G3F3G3*,>3(3)3*3>3?3>3?3(3)3*3XYYZ 3!3"3>3?3*,#$3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3,3%*,+>3(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3F3-*,343(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3>35*,>3(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3?3*,F3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3G3*,#$3(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3,3%*,+>3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3F3-*,343(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3>35*,F3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3G3*,>3(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3?3*,#$3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3,3%*,+>3(3)3*3>3?3>3?3031323`aab(3)3*3>3F3-*,343(3)3*3F3G3F3G3F3G3F3`aab(3)3*3F3>35*,>3(3)3*3XYYZ8393:3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3'`aab(3)3*3F3>35*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3F3>35*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3'`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3F3>35*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3'`aab(3)3*3F3>35*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3F3>35*,>3(3)3*3N3N3N3N3@3A3B3`aab(3)3*3>3?3*,F3(3)3*3F3G38393O3A3B3`aab(3)3*3F3G3*,#$3(3)3*3>3?3@3A3A3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3F3G3H3I3I3I3`aab(3)3*3F3F3-*,343(3)3*3>3?3XYYYYdaab(3)3*3>3>35*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,#$3(3)3*3F3G3`aaaaaaab(3)3*3F3,3%*,+>3(3)3*3>3?3`aaaaaaab(3)3*3>3F3-*,343(3)3*3F3G3`aaaaaaab(3)3*3F3>35*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,#$3(3)3*3>3?3`aaaaaaab(3)3*3>3,3%*,+>3(3)3*3F3G3`aaaaaaab(3)3*3F3F3-*,343(3)3*3>3?3`aaaaaaab(3)3*3>3>35*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,#$3(3)3*3F3G3`aaaaaaab(3)3*3F3,3%*,+>3(3)3*3>3?3`aaaaaaab(3)3*3>3F3-*,343(3)3*3F3G3`aaaaaaab(3)3*3F3>35*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,#$3(3)3*3>3?3`aaaaaaab(3)3*3>3,3%*,+>3(3)3*3F3G3`aaaaaaab(3)3*3F3F3-*,343(3)3*3>3?3`aaaaaaab(3)3*3>3>35*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,#$3(3)3*3F3G3`aaaaaaab(3)3*3F3,3%*,+>3(3)3*3>3?3N3N3N3N3N3N3N3N3N3(3)3*3>3F3-*,343(3)3*3F3G3F3G3F3G3F3G3F3G3F3(3)3*3F3>35*,>3(3)3*3>3?3>3?3>3?3>3?3>3?3>3(3)3*3>3?3*,F3(3)3*3F3G3F3G3F3G3UG3F3G3F3(3)3*3F3G3*,#$3(3)3*3>3?3XYYYYYYYZ(3)3*3>3,3%*,+>3(3)3*3F3G3`aaaaaaab(3)3*3F3F3-*,343(3)3*3>3?3`aaaaaaab(3)3*3>3>35*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,#$3(3)3*3F3G3`aaaaaaab(3)3*3F3,3%*,+>3(3)3*3>3?3`aaaaaaab(3)3*3>3F3-*,343(3)3*3F3G3N3N3N3N3N3N3N3N3N3(3)3*3F3>35*,>3(3)3*3>3?3>3?3>3?3>3?3>3?3>3(3)3*3>3?3*,F3(3)3*3F3G3F3G3F3G3F3G3F3G3F3(3)3*3F3G3*,>3031323>3?3>3?3>3?3>3?3>3?3>3031323>3?3*,F3G3F3F3F3G3*0 ###$ 3!3"3?3>3?3 3!3"3"# #1+++,(3)3*3G3F3G3(3)3*3*+++++,(3)3*3?3>3?3(3)3*3*++++,(3)3*3;3<3=3(3)3*3*++++,(3)3*3C3D3E3(3)3*3*++++,(3)3*3C3D3E3(3)3*3*++++,(3)3*3C3D3E3(3)3*3*++++,(3)3*3C3D3E3(3)3*3*+++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3K3L3M3(3)3*3*+++,(3)3*3G3F3G3(3)3*3*+++++,(3)3*3?3>3?3(3)3*3*++++,(3)3*3G3F3G3(3)3*3*+++,(3)3*3?3>3?3(3)3*3*++,031323F3G3031323*++,>3*++,0 00 00 00 00*+ \ No newline at end of file diff --git a/data/layouts/Route18/border.bin b/data/layouts/Route18/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route18/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route18/map.bin b/data/layouts/Route18/map.bin new file mode 100644 index 000000000..9e246b459 --- /dev/null +++ b/data/layouts/Route18/map.bin @@ -0,0 +1 @@ +++000000000+++,++00 00 00 000++,+,000000000*++++,++,00 00 00 000*+++++++,000000000*++++++,00 00 00 00 0*++++++++++,&%$%$%$%$%$%$%$%$%$%$%$%$%+++,0 00000000mnnnnnnnnnnnnoDEEEEF+++,000000000031313131313131313131313131311LMMMMN1 00 0+++,01000001000000000000000000000000081<100000000000+++,000000000000000000000000000000000@1D100000000000+++,000000000000000000000000000010000H1deeeefL100000000000+++jffffffffffffffffffffffffffffffg 00++++++++++++++++++++++++++++++++,0 00 00 00000 0++++++++++++++++++++++++++++++++,0 0 0 0 0 0 0 0 000+++++++++++++++++++++++++++++,0 0 0 0 0 0 00+++++++++++++++++0 0 0 0 0 0 0 0+++++++++0 0 0 0 0 0 00+++++++++++++,0 00 00 00 0&%$%$%++++++++,"####$0##########10 \ No newline at end of file diff --git a/data/layouts/Route19/border.bin b/data/layouts/Route19/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route19/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route19/map.bin b/data/layouts/Route19/map.bin new file mode 100644 index 000000000..54388bc49 --- /dev/null +++ b/data/layouts/Route19/map.bin @@ -0,0 +1 @@ +psqqqu1111111111sqqqurpsqqqu1111111111sqqqurpsqqqu111111111sqqqurpsqqqu11sqqqurpsqqqu111111111{qqurpsqqqu11qsqqurp{q}111111111qsq}rpq{|}q11q{|}qrx|||||1111111111|||||z##### !11111111  #####+++,11111111*+++,11111111*++0!111111*+++0#!11111*+++++0#####1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/Route2/border.bin b/data/layouts/Route2/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/Route2/border.bin differ diff --git a/data/layouts/Route2/map.bin b/data/layouts/Route2/map.bin new file mode 100644 index 000000000..1d093f92b --- /dev/null +++ b/data/layouts/Route2/map.bin @@ -0,0 +1 @@ + 0000$%$%$% 0000$%$%$%$%$% 0 0 0 0 0 0 0000 0 0 0 0 0 0 00000 00 00 00 00 0 0 0 0 0 0 0000000000000 0 0 0 0 0 0 00000 00 00 00 00 0 0 0 0 0 0 0000hiiiiiij0 0 0 0 0 0 0 0000pkllllmr 0 0 0 0 0 0 0 0000psqqqqur00 000000100psqqqqur00000000000p{||||}r 00 000010000xyyy0yyz000000000 0000000000x1y1y1z10000000000DEEEEEEF 00 000000000LMMMMMMN000000000000LMMMMMMN0000000 0000000000 00 00 00 000000000,0-0-0-0/0 00 046657000<=?0000000000000000000000000000000 00 00 00000000 00 00 000000000 00 00 00000000 00 00 0000000000000000000 0000000x1y1y1z1DEEEEFLMMMMND0E0E0E0E0E0E0F0pqLMMMMMMNd11fLMMMMMMN1111 00000 0000000\]0]0^000000de11ef$%$%0111100000 00000000 00 00 000000000000000000000000 0 00 00000000000 0 0 0 0 0 0 000 0000 00000 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 00 000000000 0 0 0 0 0 0 000000000000 0 0 0 0 0 0 000 0000 000000 00 00 00 0&'00000000000000000000000000000000000 0000000000000000000000000&%$%$%$%00 0000000100000000000000000000000000&'0000000000000001000 0000000000000000000001000 00 00 00010000100000000000 00 00000000000000000000000000001000010000000000000101000000000000 00000000000000000000 0000 \ No newline at end of file diff --git a/data/layouts/Route20/border.bin b/data/layouts/Route20/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route20/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route20/map.bin b/data/layouts/Route20/map.bin new file mode 100644 index 000000000..534a7034d --- /dev/null +++ b/data/layouts/Route20/map.bin @@ -0,0 +1 @@ +++++++++++++++++++++++++++++++++++++++++++++klm+++++++++++++++++++++++++kqm++++++++++++++++++++++++++++++++++++++++++++++++++++sqsqqququ+(22222222)+++++++++++++++++++++++++ 1 11+++++++++++++++++++++++(sq{q}quu22111111112)++++++++++++++++++++++++++++ 1%11&1 11++++++++++++++++++++{q{|}q}111111111112)+++++++++++++++++++++++++++++++++++++++++++++++++11111&11+++++++++++++++++++++{qqq}1111111*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11111.11++++++++++++ 1 1 1 11+++++++,1{|||}1111klm11*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++111111+++++++++++++1111&11+++++11yy0yy111kqm1*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++111111+++++111111111111sqsqqququ*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11-1111++++++0!11111111111sq{q}quu++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1111+++++++,1111111 ##!{q{|}q}u+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 11+++++++++++++++++++0#######1+{qqq}}*+++++++++++++++++++++++++++++++++++++++++++++++++++ 1 11++++++++++++1.11+++++++++++++++++++++++++++1{|||}} 1++++++++++++++++++++++++++++++++++++++++++++++++ 1%111++++++++++++11+++++++++++++++++++++0!yy0yy} 1+++++++++++++++++++++++++++++++++++++++++++++++++1111++++++++++++++++++++++++++++++++++++++,1111111 1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0##!1111*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0####1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/Route21_North/border.bin b/data/layouts/Route21_North/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route21_North/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route21_North/map.bin b/data/layouts/Route21_North/map.bin new file mode 100644 index 000000000..02a4bcd54 --- /dev/null +++ b/data/layouts/Route21_North/map.bin @@ -0,0 +1 @@ +*++,*++,0 00 00 0*++,000000*++,0 00 00 0*++,000000*++, 0 0 0 0 0 0*++, 0 0 0 0 0 0*++, 0 0 0 0 0 0*++, 0 0 0 0 0 0*++, 0 0 0 0 0 0$%$%$%*++, 0 0 0 0 0 0*++0###### #####*+++++++++++$%$%$'*+++++++++++*++++++++++##### 1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 11+++++++++++++ 1%1111+++++++++++++++111.11+++++++++++++++1111+++++++ 1 1 11+++++++++++++++ 1%111&1 11+++++++++++++1111111+++++++++++++1111111+++++++++++++111-11.11++++++++++++++++111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 11++++++++++++++ 1%11&11+++++++++++++11111+++++++++++++111.11++++++++++++++1111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/Route21_South/border.bin b/data/layouts/Route21_South/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/Route21_South/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route21_South/map.bin b/data/layouts/Route21_South/map.bin new file mode 100644 index 000000000..30c2cba6f --- /dev/null +++ b/data/layouts/Route21_South/map.bin @@ -0,0 +1 @@ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 11++++++++++++++11&1 11++++++++++++1-1111++++++++++++1111+++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 1 11++++++++++ 1%11111++++++++++++1111.11++++++++++++1-1111++++++++++++++1111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 1 1 11++++++++++++11111&11++++++++++++1-111111++++++++++++++1-11111+++++++++++11111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 11++++++++++ 1 1%1111++++++++++1111.11++++++++++11111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++(22)++++++++++,00*++++++++++++,00*+++++(222222200*+++++,222222201*++++ \ No newline at end of file diff --git a/data/layouts/Route22/border.bin b/data/layouts/Route22/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/Route22/border.bin differ diff --git a/data/layouts/Route22/map.bin b/data/layouts/Route22/map.bin new file mode 100644 index 000000000..1caf49cc7 --- /dev/null +++ b/data/layouts/Route22/map.bin @@ -0,0 +1 @@ +qqurpsqqqqqqqqqqqqqqqqq|||||||||||q0q0q0qqurp{|qqqqqqqqqqqqq|}yyyyyyyyq0sq0q0q0|}rpqq{|||||||||||||}qqr 00 00 00 00pq0{|q0uyzxyyyyyyyyyyyyyyyyyyyz 0pq0q0q0{|urb1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1d10 0pq0q0q0q0q0ur[b1c1c1c1c1c1c1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1l100xyyyyyur2222222r1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1t1 00 00 00urb1c1c1c1c1c1c1c1c1c1d10 00 00 00 00 00 00iiij 000 00 0000000urr1s1s1s1s1s1s1s1s1s1t1kllmr 0 0 000000ur00 0 0 0 0 0 0 0sqqur 0 0 0 0 0 0000100ur00 00 00 00 00 0 0 0 0 0 0 0 0sqqur 0 0 0 0 0 00000hiur00000000000 0 0 0 0 0 0 0sqqur 0 0 0 0 0 00000pqur0 00 0 0 0 0 0 0 0313131313131p{||}r 0 0 0 0 0 00000pquij000 00 00 00 00 0 0 0 0 0 0 0000000pqqqqr 0 0 0 0 0 0&'0000pqlmr0 00000000000 00 00 00000000xyyyyz 000 00 00 00000pqqqur 00pqqqurb1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1d1pqqqurj1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1l1pqqqurr1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1t1pkqquiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiisqqllllllllllllllllllllllllllllllllllllllllllllqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq \ No newline at end of file diff --git a/data/layouts/Route22_NorthEntrance/border.bin b/data/layouts/Route22_NorthEntrance/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/Route22_NorthEntrance/border.bin differ diff --git a/data/layouts/Route22_NorthEntrance/map.bin b/data/layouts/Route22_NorthEntrance/map.bin new file mode 100644 index 000000000..1452ebb13 --- /dev/null +++ b/data/layouts/Route22_NorthEntrance/map.bin @@ -0,0 +1 @@ +2231332223133222233/4322233/432222225363732225363732222203.3232222203.323222233/432222233/432222536373222225363732222203.32322203.32322222233/4322233/4322225363732225363732 \ No newline at end of file diff --git a/data/layouts/Route23/border.bin b/data/layouts/Route23/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/Route23/border.bin differ diff --git a/data/layouts/Route23/map.bin b/data/layouts/Route23/map.bin new file mode 100644 index 000000000..f6f5f5662 --- /dev/null +++ b/data/layouts/Route23/map.bin @@ -0,0 +1 @@ +qqqqqqyy222yyqqqqqqqz2222222xy22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 02222222222222222220000 00 0222222222 00 00 000000000000000000000hiiiiiiiiiiiiiiij0 00pklllllllllllllmr000psqqqqqqqqqqqqqur0 00psqqqqqqqqqqqqqur0 00psqqqqqqqqqqqqqur000psqqqqqqqqqqqqqj00psqqqqqqqqqqqqqqquj0p{||||||qqqq|||}r0xy0yysqqqquy0yz00222psqqqqur0 00 000 02220 0psqqqqur0000002220psqqqqur000 00 002220 0psqqqqur00 000022200psqqqquiiiij022222psqqqqllmqqr2220psqqqqqqquqqr0 02220psqqqqqqquqqr0022200p{qqqqqquqqr02220pqsqqqqqquqqr002220pq{||||||}qqr222220pqqqqqqqqqqqr0222 0xyyyyyyyyyyyz 02220 00 0 0 0 00 0 0 00000000 0 0 0 0000000222200 000 0 0 00000000000 00022222222200002222220 000 00022222222222200000002222220 00 00 00222222000000000022222222220000 00 022200000000002222222222222222222222222222222222 0 022200 0 0 0 02220000 0 0 0 0 00 00000 0 0 0000000 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0000 0 0 0 0 0 0 000 00 000000000 0 0 0 000 00 0 0 00000000 0 0 0 00 0000 0 0 000000 0 00 00000 0 0 0 0 00000 0000 0 0 0 0 00 000000 0 0 0 0000000000 00 00 0.1111111-12222221++++++11++++++11++++++11++++++12112121++++++12121132++++++++++++++++++32++++++++++++++++++32++++++++++++++++++32++++++++++++++++++32++++++++++++++++++3 3()*+,!3%&'-./++++++.1$+++#31121121-11++++++++++++11++++++++++++11++++++++++++11++++++++++++11++ 1 1 1 1 11++++11++111111++++11++111111++++11++111111++++13121++111111++++13+++++++++++++++13+++++++++++++++13+++++++++++++++1 3()*+,2%&'-./++++++3112211211$+++#3112133++++++++++++++++++33++++++++++++++++++33++++++++++++++++++33++++++++++++++++++3 3+++!32222222222222222222222222222222220222222222222222222002222222222222222220000222222222222222220 002220002220002220 002220002002220020020020 00 0 02220 0000 00 0000000000000000000000 00 00 0000 00 0000 00 02222222222222222222222222222220 0222002002002000000222 02222222222000 00000222222222200 00 0 022222222222222222222222222222222222200200222 00222222222 00 00$'2222222220 00 0&%222222222000000'222iiiiiqqujhsqqqqqujqqurpsqqqqqurqqurpsqqqqqurqqurpsqqqqqur&%qqurpsqqqqqiiqqurpsqqqqqqqqq \ No newline at end of file diff --git a/data/layouts/Route24/border.bin b/data/layouts/Route24/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/Route24/border.bin differ diff --git a/data/layouts/Route24/map.bin b/data/layouts/Route24/map.bin new file mode 100644 index 000000000..80de4b1f1 --- /dev/null +++ b/data/layouts/Route24/map.bin @@ -0,0 +1 @@ +qqqqqqqqqqq|||||||qqqqqq||||||||}qqqqqqq{||||qquyyyyyyyyy|yyyyyyyyyyq}0000000000000 00 00 0quq000000000000000000qu0000000000000 00 00 0qu00000qu000000000000000000000qu000000000000000000000qu000000010100000000000qur0000000000F>>>>>>>>>>qur00 0 000 0000W0 00 00 00 00 0qur0000000000W000hiiiiii}r00 00 0 00000W0 00pqklllluqr00 0000 0000W000pqsqqqquqr 000 00 00000W0 00pkqqqquqr000"#$000M000psqqqqquqr 00 0*+,2220 00psqqqqquqr000*+,222000psqqqqquqr 0 0 0*+,2220 00psqqqqquqr 0 0 0*+,222000psqqqqquqr 0 0 0*+,2220 00psqqqqquqr 0 0 0*+,222000p{qqqquqr 0 0 0*+,2220 00pqsqqqquqr 0 0 0*+,222000pqsqqqquqr 0 0 0*+,2220 00x{||||uqr 0 0 0*+,222000x|||||uqr 0 0 0*+,2220 00"#####mr 0 0 0*+,222000*+qur 0 0 0*+,2220 00*+qur 0 0 0*+,222000*qur 0 0 0*+,2220 00*quj"#1+,222000*ququ*+++,2220 00*ququ*+++,222000*qmu*+++,2220 00*qquu*+++,222000*qquu*+++,2220 00*qquu*+++,222000*qquu*+++,2220 00* \ No newline at end of file diff --git a/data/layouts/Route25/border.bin b/data/layouts/Route25/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/Route25/border.bin differ diff --git a/data/layouts/Route25/map.bin b/data/layouts/Route25/map.bin new file mode 100644 index 000000000..9ec2e35d4 --- /dev/null +++ b/data/layouts/Route25/map.bin @@ -0,0 +1 @@ +qqqqqqqq|||||||||||||||||||||||||||||||||||||||||||||||||||||||||qqqqq||||||||}qqyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyqqq{qqqqyyyyyyyyyyyz0 000 000 0 00 00 00 000000 00 0000x|||sqqqq0 0 0 0 0 0 0 0 00 0000000000000000000 00 00 00 00 0&%$%$$%$%$%$'"##!s{qqq0 0 0 0 0 0 0 0 00000 0000 00000 00 000 00 00 00 00 000i*,sqsqqq00 00 00 00 00 00 00 000000000 000 00 0000000 000 0000 00j1k1l1 00 0 00 00 0*,{{|||0000 0000000000000000000 0000 0b1c1c1k1k1k1c1c1d100000*0!{|qq000000000000000 000 00 00 00 000000 00 00 00 000 000r1s1s1s1s1s1s1s1t1 00 00 0*0#!{||00000000000000000000 0000000000 000 00 00 00 00 00 00 0 00 00 000000*0###00000000000000 00000000000000000 0000000 000000 0*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?000000*000000000000000000000000000000000000000000000000 0*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiij00313131313131000003131313131310*lllllllmqqqqqqqqqqqqqqqqklllllllmqqqqqqqr*qqqqqqqlllllllllmqqqqqqsqqqqqqqlllmqqqr"####################1qqqqqqqqqqqqqqqqqllllllqqqqqqqqqqqllmu*+qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquu*qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquu*qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquu*qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquu* \ No newline at end of file diff --git a/data/layouts/Route25_SeaCottage/border.bin b/data/layouts/Route25_SeaCottage/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/Route25_SeaCottage/border.bin differ diff --git a/data/layouts/Route25_SeaCottage/map.bin b/data/layouts/Route25_SeaCottage/map.bin new file mode 100644 index 000000000..dbf7d06ba --- /dev/null +++ b/data/layouts/Route25_SeaCottage/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route2_Entrance/border.bin b/data/layouts/Route2_Entrance/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/Route2_Entrance/border.bin differ diff --git a/data/layouts/Route2_Entrance/map.bin b/data/layouts/Route2_Entrance/map.bin new file mode 100644 index 000000000..dfde7c299 --- /dev/null +++ b/data/layouts/Route2_Entrance/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route3/border.bin b/data/layouts/Route3/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/Route3/border.bin differ diff --git a/data/layouts/Route3/map.bin b/data/layouts/Route3/map.bin new file mode 100644 index 000000000..7e4fd76ff --- /dev/null +++ b/data/layouts/Route3/map.bin @@ -0,0 +1 @@ +psqqqqqqqqqqqqqq|||||||||||||qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu00000000sqqqqqqpsqqqqqqqqq||||}qqqqqqqqqqqqq{|||||qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu00000000sqqqqqqpsqqqqqqq|}yyyyyyyyyyyyyyyyyyyyyy{|qqqqqqqq|||||||qqqqqqqqqqu10000010sqqqqqqpsqqqqqqquy0000000000000000000000ysqq|||||}qqqqqqq{||||qqqqqur0100100hsqqqqqqpsqqqqqqqu00000100000001000000000000sq}yyyyyyyyyyyyyyyy{|qqqur00000hiqsqqqqqqp{qqqqq}0000000 00 00 0 00000000000100squ0000000000000000ysqqqur0 00 0 0pkllqqqqqqpq{|||||}qr0 00 00 00 00hij0 00 00 00hj0 0000squ0001000000000010000sqqqur00000psqqqqqqqqqpqqqqqyyyz00q00p{|}0000000000000000000sqqqur0 00 0 0psqqqqqqqqqxyyyyyz000000 00 00 00 0pqr0 00 00 00pr0 00 00xyyyz00hiiiiij0p{|||}00p{|||qqqqq0 00 00 00 000 0000000000pqr0000000pr00 00 00 000 00 00 00 0pklllmr0 0 00 00pqqqyz00 000xyyy{|qqq0000000000000 00 00 00 0pqr0 00 00 00pj000000000000000psqqqur000000xyyyz0 00 0000 0 0 0 0xysqqq0 00 00 00 00hij00000000pqr0000000pqr 0 0 0 0 0 0 00 00 00 00 0psqqqur 00 00 000 00 00 00 00 0 0 0 0 0 0psqqq00hiiiiiiq0 0qqr 0 0 0 0 0 0 0 0 0 0 0 0 0 0hsqqqur0000000000 00 00 00 0 0 0 0 0 0 0 0psqqqhiqqqqqqqqr0 00 00 00 0xyz 00 00 00 0pqr 0 0 0 0 0 0 0 0 0 0 0 0 0 0pkqqqur0 0 00 000 00 0000000 0 0 0 0 0 0 0 0psqqqpqklllllllmr000000000 00 00 00 0 0hqij 0 0 0 0 0 0 0 0 0 0 0 0psqqqqur000000 00 00 00 00 0 0 0 0 0 0 0 0 0 0psqqqpkqqqqqqqu000000000000000kllmr 0 0 0 0 0 0 0 0 0 0 0 0psqqqquij00000 0000000 0 0 0 0 0 0 0 0 0 0psqqqpsqqqqqqqqlmsqquiiij 0 0 0 0 0 0 0 0psqqqqlmr000000 00 00 00 0 0 0 0 0 0 0hiisqqqpsqqqqqqqqqqlllllllllllllllllqqlllmiiiiiiiisqqqqqquiiiiiiiiiiiiiiiiiiikllqqqpsqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqllllllllllqqqqqqlllllllllllllllllllllqqqqqqpsqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq \ No newline at end of file diff --git a/data/layouts/Route4/border.bin b/data/layouts/Route4/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/Route4/border.bin differ diff --git a/data/layouts/Route4/map.bin b/data/layouts/Route4/map.bin new file mode 100644 index 000000000..447d87b5c --- /dev/null +++ b/data/layouts/Route4/map.bin @@ -0,0 +1 @@ +qqqqqqqq|||||||qqsqqqqqqqqqqqqqquqqqqq||||||||||||||qqqqq||||||||||qqqqqqqqqqq|||||||||||||qqqqqqqqqqqqqqqqqu22222sqqsqqqqqqqqqqqqqquqqqqquqyyyyyyyyy|y{|||||}yyyyyyyy{|||||||||||}yyyyyyyyyyy{|||||||||q||||||}rHIJKpsqq{|||qqqqqq|||}qqqqquqr0 0 00 00 00 0x|yyyyyyz 00 00 00xyyyyyyyyyyyyyz 00 000000000yyyyyyyyyyquyyyyyyzPQRSp{qqqqqsqqqq|}qqqqqqqq}qr000000000000000 00000000 000000 00 00 00 000000000000000000000000qu 00 000XYZ[x{||||sqqqqu|||||||||}yz0 0 00 00 000000000000 00 0000 0000000000000 00 00000000000000000000qu000 000`ab0yy0ys{qq}uy0yyyyyyyz0 0000 00000000 0000000qu0000000 0 00 00000000{sqqu}000000000000 00 00 00 00 00 0000 000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000"#########qu000000000000ssqquu01000000000000000000000 00000 0000*+++++++++qu000000000000000000ssqquu0000 00 00 000 00 00 00 00 00 00 0000 00000 0 00 00 00 00 00 00 000 00 00 0000000 00 00 00*+++++++++qu000000000000ssqquu000 00000o0000000000000000 00 00 00qu000000000000000000s{||}ur0 00 00 00 00 00 00 00 00000000000000000000 000000000000000000qu000000000sqqqqur000000000000 00 00 00 0 000000001010000000000 0 0 0 0 0 0 0 0 0 0 0 0000000000000000000qu000000000000sqqqquiiiiiiiiiij000000000000000000000000000000 0 0 0 0 0 0 0 0 0 0 0&% 000010000000000000qu000000000000000sqqqqlllllmqqqqqiiij 0000000000000000000000 0 0 0 0 0 0 0 0 0 0 0 0 000000 00qlmq0000000000000sqqqqkllllmllllmqqqqr&%$'0000000000000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0000qqqllm0000000sqqqqsqqqqllllmuqqqqiiij0000 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 00qqqqqqu00000000kllqqqqsqqqqqqqqqulmqqqqqqr00000 00 0 00 00 00 00 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0&'0000000qqqqqqu00000000kllqqqqqqkqqqqqqqqquqquqqqqqqr00000000000000000000$%$' 0 0 0 0 0 0 0 0 0 0 0 00 00 00 00 000&%$%$%$%$%qqqqqqu00000sqqqqqqqqqsqqqqqqqqqquqquqqqqqqiiiiiij0 00 00 00 00 000 0&'hiiiiiiiiiiiiij000000000hiiiiiiiiiiijqqqqqqu00000000sqqqqqqqqqsqqqqqqqqqquqquqqqqqqqqqqqqqiiiiiiiiiiiiiiiqqqqqqqqqqqqqiiiiiiiiiqqqqqqqqqqqr \ No newline at end of file diff --git a/data/layouts/Route5/border.bin b/data/layouts/Route5/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/Route5/border.bin differ diff --git a/data/layouts/Route5/map.bin b/data/layouts/Route5/map.bin new file mode 100644 index 000000000..3c357908f Binary files /dev/null and b/data/layouts/Route5/map.bin differ diff --git a/data/layouts/Route5_PokemonDayCare/border.bin b/data/layouts/Route5_PokemonDayCare/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/Route5_PokemonDayCare/border.bin differ diff --git a/data/layouts/Route5_PokemonDayCare/map.bin b/data/layouts/Route5_PokemonDayCare/map.bin new file mode 100644 index 000000000..85114f523 --- /dev/null +++ b/data/layouts/Route5_PokemonDayCare/map.bin @@ -0,0 +1 @@ +b22222222222232222222222222 3 32222222 3 32222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route6/border.bin b/data/layouts/Route6/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/Route6/border.bin differ diff --git a/data/layouts/Route6/map.bin b/data/layouts/Route6/map.bin new file mode 100644 index 000000000..c4e9b6b92 --- /dev/null +++ b/data/layouts/Route6/map.bin @@ -0,0 +1 @@ +DEEEEFLMMMMN$%$%$%$%$%$%$%\^0 0000 00d11f 00 00 0000000001111000000000000000 00 00 00 00000000 00 00 0000000000 00 00 00000000000000000000000D0E0E0F00LMMN0000000000000000TgUV0000000000000000d=ef00001010000001010000 0 0 0 0000 0 0 0 0 0 0000000 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000100000000000 0 0 0 0 0 000000000000000 0 0 0 0 0 000000000000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0000 0 0 0 0000 0 0 0 0000 0 0 0 0000 0 0000000000000000100 0 00 00 00 00 00000000000 0 0000000000010000000 0 0 00 0000 0 0 0 00000000000 0 0 0 00000 00 0000 0 0 0 0000000 0 0 0 000000000000000000$%$%$%$'0000########$000,000 \ No newline at end of file diff --git a/data/layouts/Route7/border.bin b/data/layouts/Route7/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/Route7/border.bin differ diff --git a/data/layouts/Route7/map.bin b/data/layouts/Route7/map.bin new file mode 100644 index 000000000..08212179a --- /dev/null +++ b/data/layouts/Route7/map.bin @@ -0,0 +1 @@ +$%$%$%$%$%$%$%$%$%$%0 00 00 00 00 0 0 0 0 0 0 0 0 00000000000 0 0 0 0 0 0 0 00 00 00 00 00 0 0 0 0 0 0 0 0 00000000000 0 0 0 0 0 000&%$%0 00 00 0 0 0 0 0 0 000000000000000000D0E0E0EEF0000001LMMMMN100 00 00 00 00 0081<1000000000000@1D100 0D0E0E0F00 00 00H1deeeefL10LMMN0000TgUV 00 00 00 00 00000d=ef0000000000 00 00 000 00 0000 00000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/Route8/border.bin b/data/layouts/Route8/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/Route8/border.bin differ diff --git a/data/layouts/Route8/map.bin b/data/layouts/Route8/map.bin new file mode 100644 index 000000000..9d370b135 --- /dev/null +++ b/data/layouts/Route8/map.bin @@ -0,0 +1 @@ +pqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpqqqqqq;<<=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyqqqpqqqqqqrLMMN0000000000 00 00 00 00 00 00 00 00 00 0 00 00 00 00 00pqqqpqqqqqqrTgUV000000000000000000000000000000000000000pqqqpqqyyyzd=ef0010100000 000000000000000000000000000 00pqqq$%$'pqqr0000000010000000000000000000000000000000&%$%$'pqqq0000xyyz00000000000000000 000100000000000000000001000 00000000pqqqDEEEEF 00 000100000000000000 00 00 00 00 00 00 00 000 0000000000000pqqq1LMMMMN1 00 00 00000 00000000 00000000000000 00 00 00 00xyyy81<100000100000000000 00 0 00 0 00 0 0000 00000000000000000@1D1000000000 00000000 000000000 0 0 0 0 00 0 00 0000000 00 00 00000000H1deeeefL100000100000000000000000 000 0 00 00 0 00 0000 00000000000010000 00 00 00000 000000000 00000000 0 0 0 0 0 0 0 0 0 000000000 00 00 00000000hiiiiiij0000000000000 00 00 00 00 00 0 0 000 0000000&%$%$'000000hiiipqqqqqqr00000 00 00 00 00 00 000000 0 0 0 0 0 0 0 0 00 0 00000000 00 00 00 00 00 0000pqqqpqqqqqqr00000000000000000000 0000 00 00 0 00 00 0 00 0000000000000000000pqqqpqqqqqqr0001000000000000100000 00 0 0 00 0 0 0 0 0000001000000000000100pqqqpqqqqqqr00000000000000000000 00000 00 0 000 0000 0000000000000000000pqqqpqqqqqqr0000000000000000000000000 0 000 0000000000000000000000000pqqqpqqqqqqiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiqqq \ No newline at end of file diff --git a/data/layouts/Route9/border.bin b/data/layouts/Route9/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/Route9/border.bin differ diff --git a/data/layouts/Route9/map.bin b/data/layouts/Route9/map.bin new file mode 100644 index 000000000..6ac9ccccd --- /dev/null +++ b/data/layouts/Route9/map.bin @@ -0,0 +1 @@ +yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyykllmyyyyyyyyyyyyyyyyyklllll000000 0 0 0 0 0 0 0 0 0 0 00 00 00 00 00 00 0hiiiij 0 0 0 0 0 0psqqur 00 00 00 00 00 0000000sqqqqq 0 0 0 0 0 0 0 0 0 0 0000000000000pkllmr 0 0 0 0 0 0psqqur00000000000000000sqqqqq 0 0 0 0 0 0 0 0 0 0 0hiiij00 00 00 0psqqur0 00 00 0p{||}r 00 00000000h00sqqqqq 0 0 0 0 0 0 0 0 0 0 0pklm00psqqu00qqqq00klm{|qqq$%$%$' 0 0 0 0 0 0 0 0 0 0 0psqu0000000{||}000000yyyy0000000000squ00qqsqqq00000000000000000psqu0000000qqqq0000000000000000000000squ00qq{|||0 0psqu000000yyyy00000000000000000{|}00yyyyyy0 000 00 000000000hiisqu0000000000000klm0000000yyy00000000000000000000000kllqu0000000000000squ0000klm000klm00000000000000hi0000sqqqqu00squ0000squ000squ000000000000000000pkllm{||||}000000000000 0p{|}{|}0psqu000000psqqu0000yyyyyy0000000001000xyyyz0000xyyyz000psquklmklpsqqu0000000000000000000000 00 00 000 000 000 00 000 00p{|}000squ000sqpsqqu000000000000000000000000000000000000pqqqr0 00p{|}000sqpsqqu00kllm00xyyyzxyyyzsqpsqqu000000000000000sqqur 000 00 000 00 00 00 00 0 00 00 00 00 00 00 00 00 00 00psq$'psqqu000000000000000sqqur0000000000000000000000000000000000000psqhii{||}sqquiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii{|pqqqqqqqqqqqqqqqqqqqqqqqq{||}qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq \ No newline at end of file diff --git a/data/layouts/SSAnne_1F_Corridor/border.bin b/data/layouts/SSAnne_1F_Corridor/border.bin new file mode 100644 index 000000000..b90547a3e --- /dev/null +++ b/data/layouts/SSAnne_1F_Corridor/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_1F_Corridor/map.bin b/data/layouts/SSAnne_1F_Corridor/map.bin new file mode 100644 index 000000000..b9fde8c26 --- /dev/null +++ b/data/layouts/SSAnne_1F_Corridor/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222232232232232232232232222222222222222222222222222222222222222222266222223223222 \ No newline at end of file diff --git a/data/layouts/SSAnne_2F_Corridor/border.bin b/data/layouts/SSAnne_2F_Corridor/border.bin new file mode 100644 index 000000000..b90547a3e --- /dev/null +++ b/data/layouts/SSAnne_2F_Corridor/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_2F_Corridor/map.bin b/data/layouts/SSAnne_2F_Corridor/map.bin new file mode 100644 index 000000000..9fa53735c --- /dev/null +++ b/data/layouts/SSAnne_2F_Corridor/map.bin @@ -0,0 +1 @@ +6233232222222222222222222222222222222222222222222222232222222232222222222222222222222222222232222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SSAnne_3F_Corridor/border.bin b/data/layouts/SSAnne_3F_Corridor/border.bin new file mode 100644 index 000000000..b90547a3e --- /dev/null +++ b/data/layouts/SSAnne_3F_Corridor/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_3F_Corridor/map.bin b/data/layouts/SSAnne_3F_Corridor/map.bin new file mode 100644 index 000000000..336e034fa --- /dev/null +++ b/data/layouts/SSAnne_3F_Corridor/map.bin @@ -0,0 +1 @@ +22222222222222223VW322222222222222223^_32222222222222222222fg32222222222222222222 \ No newline at end of file diff --git a/data/layouts/SSAnne_B1F_Corridor/border.bin b/data/layouts/SSAnne_B1F_Corridor/border.bin new file mode 100644 index 000000000..b90547a3e --- /dev/null +++ b/data/layouts/SSAnne_B1F_Corridor/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_B1F_Corridor/map.bin b/data/layouts/SSAnne_B1F_Corridor/map.bin new file mode 100644 index 000000000..db24bfff4 --- /dev/null +++ b/data/layouts/SSAnne_B1F_Corridor/map.bin @@ -0,0 +1 @@ +T2222222222222222223222222222222222222U322222222222222222222 \ No newline at end of file diff --git a/data/layouts/SSAnne_CaptainsOffice/border.bin b/data/layouts/SSAnne_CaptainsOffice/border.bin new file mode 100644 index 000000000..b90547a3e --- /dev/null +++ b/data/layouts/SSAnne_CaptainsOffice/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_CaptainsOffice/map.bin b/data/layouts/SSAnne_CaptainsOffice/map.bin new file mode 100644 index 000000000..75c9eb2d3 --- /dev/null +++ b/data/layouts/SSAnne_CaptainsOffice/map.bin @@ -0,0 +1 @@ +2 32222222 22222222222222233222322222 \ No newline at end of file diff --git a/data/layouts/SSAnne_Deck/border.bin b/data/layouts/SSAnne_Deck/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/SSAnne_Deck/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/SSAnne_Deck/map.bin b/data/layouts/SSAnne_Deck/map.bin new file mode 100644 index 000000000..bf3fb5e80 --- /dev/null +++ b/data/layouts/SSAnne_Deck/map.bin @@ -0,0 +1 @@ ++++++++++++,*++++++++++++++++++,*++++++++++++++++++,*++++++++++++++++++,*++++++++++++++QR[\v]eeeee+++++QRYZc3d3d3d3d3mn+++QRYZS3P33P3P3P3P3P3u+QRYZS3P3P3w3P3P3wP3P3P3}XYZS3P3P3P3P3P3P3P3P3P3P3P3P33`a3b3P3P3P3P3P3P3P3P3P3P3P3P3P33hijx3b3P3P3P3P3P3P3P3P3P3P3P3pqrijx3b3P3P33P3P3P3P3P33+yzzrijx3b33wP3P3P33+pqzzzrijk3l3l3l3l3~++1yzzzzzrstttttttttttttt++1pqzzzzz{||||||||||||||++1+1yzzzzz{||||||||||||||+++pqzzzz{||||||||||||||++++yzzzz{|||||||||||||| \ No newline at end of file diff --git a/data/layouts/SSAnne_Exterior/border.bin b/data/layouts/SSAnne_Exterior/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/SSAnne_Exterior/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_Exterior/map.bin b/data/layouts/SSAnne_Exterior/map.bin new file mode 100644 index 000000000..a76275227 --- /dev/null +++ b/data/layouts/SSAnne_Exterior/map.bin @@ -0,0 +1 @@ +,*,*+++++++++++++++++++++,*++++(%333333333+++,   *+++++++++111111111+++++++++++,*+++++111111111111+++++++2+++0##########!11 #########++++++++++++111++++++++++++++++,11*++++++++++++++++++++++++++++++++,111*+++++++++++++++++++,11*++++++++++++++++++++++++++,111*+++++++++++++++++++++,11*++++++++++++++++++++++++++,111*+++++++++++++++++++++,11*++++++++++++++++++++++++++,1*+++++++++++++++++++,11*+++++++++++++++++++++1++++++++++++++,11*++++++++++++++++++++++1++++++++++++++,11*+++++++++++++++++++++++++,1*+++++++++++++++++,11*++++++++++++++++++++++!2"++++++++++++++++,11*++++++++++++++++++++++#   $++++++++++++++,11*+++++++++++++++++++++++++++++,11*++++++++++++++++++++++++,11*++++++++++++++++++,11*++++++++++++++++++,11*+++++++++++++++++,11*++++++++++++++++,11*++++++++++++++++,11*++++++++,11*++++,11*+++,11*++,11*++,11*+11*++*+0###1 \ No newline at end of file diff --git a/data/layouts/SSAnne_Kitchen/border.bin b/data/layouts/SSAnne_Kitchen/border.bin new file mode 100644 index 000000000..b90547a3e --- /dev/null +++ b/data/layouts/SSAnne_Kitchen/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_Kitchen/map.bin b/data/layouts/SSAnne_Kitchen/map.bin new file mode 100644 index 000000000..f74655d33 --- /dev/null +++ b/data/layouts/SSAnne_Kitchen/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SSAnne_Room1/border.bin b/data/layouts/SSAnne_Room1/border.bin new file mode 100644 index 000000000..b90547a3e --- /dev/null +++ b/data/layouts/SSAnne_Room1/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_Room1/map.bin b/data/layouts/SSAnne_Room1/map.bin new file mode 100644 index 000000000..b5cfa38c4 --- /dev/null +++ b/data/layouts/SSAnne_Room1/map.bin @@ -0,0 +1 @@ +:+333333333333333333893(3)*3@A4303123HI3333 \ No newline at end of file diff --git a/data/layouts/SSAnne_Room2/border.bin b/data/layouts/SSAnne_Room2/border.bin new file mode 100644 index 000000000..b90547a3e --- /dev/null +++ b/data/layouts/SSAnne_Room2/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_Room2/map.bin b/data/layouts/SSAnne_Room2/map.bin new file mode 100644 index 000000000..e1509b523 --- /dev/null +++ b/data/layouts/SSAnne_Room2/map.bin @@ -0,0 +1,2 @@ +;;BCD3  +3JKL33'3<3$3$3$3$3'3$3$3$3$3$3 3$3$3$3$3$3$3$3=3>3?3 \ No newline at end of file diff --git a/data/layouts/SafariZone_Building/border.bin b/data/layouts/SafariZone_Building/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SafariZone_Building/border.bin differ diff --git a/data/layouts/SafariZone_Building/map.bin b/data/layouts/SafariZone_Building/map.bin new file mode 100644 index 000000000..caec48cdc --- /dev/null +++ b/data/layouts/SafariZone_Building/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SafariZone_Center/border.bin b/data/layouts/SafariZone_Center/border.bin new file mode 100644 index 000000000..964b51edb --- /dev/null +++ b/data/layouts/SafariZone_Center/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SafariZone_Center/map.bin b/data/layouts/SafariZone_Center/map.bin new file mode 100644 index 000000000..f1fe437e9 --- /dev/null +++ b/data/layouts/SafariZone_Center/map.bin @@ -0,0 +1,6 @@ + %&'%&'#%&' #7       22    0 00 00 0000000 0000000000 00 00 0 000 00 0 %&'00000 0 0 0 000000 00 00000 0 0 0 0 00000000#0 0 0 0 0 0 0 0 0 0 00 000000 0 0 0 0 0 0 0 0 0 000100 00 0 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 00000#%&'0 0 0 0 0 0 0 0 0 0 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 00000 %&'00 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 001000#0 0 0 0 0 0 0 00000 00 00 0 0 0 0 0 00 0 0 0 0000000 000 0 0 000 0"##############$0 00 000000   0 00 0 000 0 0*++++++++++++++,   0000000 0 0*++(3131313131313131)++,0 00 000 00 0200000 0 0 0 0*++,0 0000 00 0*++,0000 0000022001010 0 0 0*++0########1++, 0 00000 00 0  +  + 20000000 0 0*++++++++++++++, 0 0 0 000000  +  +  +00000100031313131313131313131313131310 0 0 0 0 0000 !" !" 0000000 0 000 0 0 0 0 0 0 00#%& !"   !"0 00 0000 00 00 00 0 00 0 0 0 0 0 0 0 00 %&'0 00 00 0000000000100022222000 0 0 0 00 00#00000 0 0 0 0 0 0 0 001000 000 0 0 0 0 0 0 00 0 00 0 0 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0 000#%&'0000 0 0 0 0 0 0 0 0 0 00000 00 0 0 0 0 00 00 0 0 00 00 0 0 0 0 0 0 0 00 000000 0 00 0 0 0 0 000000#00000 0 0 0 0 0 0 0 0 0 0 0 00 00 00 0 0 0 0 00 00 00 0 0 00 0000 0 0 0 0 0 0 00 00 00 00 00 0 0 0 00000000#3333333333330 0 00000 00 0333333333333 222222#%&'  " !"   " !" !"     %&'%&'%&'" "  \ No newline at end of file diff --git a/data/layouts/SafariZone_East/border.bin b/data/layouts/SafariZone_East/border.bin new file mode 100644 index 000000000..964b51edb --- /dev/null +++ b/data/layouts/SafariZone_East/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SafariZone_East/map.bin b/data/layouts/SafariZone_East/map.bin new file mode 100644 index 000000000..28a9cafb7 Binary files /dev/null and b/data/layouts/SafariZone_East/map.bin differ diff --git a/data/layouts/SafariZone_North/border.bin b/data/layouts/SafariZone_North/border.bin new file mode 100644 index 000000000..964b51edb --- /dev/null +++ b/data/layouts/SafariZone_North/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SafariZone_North/map.bin b/data/layouts/SafariZone_North/map.bin new file mode 100644 index 000000000..03319e72c Binary files /dev/null and b/data/layouts/SafariZone_North/map.bin differ diff --git a/data/layouts/SafariZone_SecretHouse/border.bin b/data/layouts/SafariZone_SecretHouse/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SafariZone_SecretHouse/border.bin differ diff --git a/data/layouts/SafariZone_SecretHouse/map.bin b/data/layouts/SafariZone_SecretHouse/map.bin new file mode 100644 index 000000000..8acbf7b90 --- /dev/null +++ b/data/layouts/SafariZone_SecretHouse/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SafariZone_West/border.bin b/data/layouts/SafariZone_West/border.bin new file mode 100644 index 000000000..964b51edb --- /dev/null +++ b/data/layouts/SafariZone_West/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SafariZone_West/map.bin b/data/layouts/SafariZone_West/map.bin new file mode 100644 index 000000000..f2f943b69 Binary files /dev/null and b/data/layouts/SafariZone_West/map.bin differ diff --git a/data/layouts/SaffronCity/border.bin b/data/layouts/SaffronCity/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/SaffronCity/border.bin differ diff --git a/data/layouts/SaffronCity/map.bin b/data/layouts/SaffronCity/map.bin new file mode 100644 index 000000000..dd7aea1cf Binary files /dev/null and b/data/layouts/SaffronCity/map.bin differ diff --git a/data/layouts/SaffronCity_Dojo/border.bin b/data/layouts/SaffronCity_Dojo/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SaffronCity_Dojo/border.bin differ diff --git a/data/layouts/SaffronCity_Dojo/map.bin b/data/layouts/SaffronCity_Dojo/map.bin new file mode 100644 index 000000000..55b1548aa --- /dev/null +++ b/data/layouts/SaffronCity_Dojo/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SaffronCity_Duplicate/border.bin b/data/layouts/SaffronCity_Duplicate/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/SaffronCity_Duplicate/border.bin differ diff --git a/data/layouts/SaffronCity_Duplicate/map.bin b/data/layouts/SaffronCity_Duplicate/map.bin new file mode 100644 index 000000000..001fb4e2f Binary files /dev/null and b/data/layouts/SaffronCity_Duplicate/map.bin differ diff --git a/data/layouts/SaffronCity_EastWestEntrance/border.bin b/data/layouts/SaffronCity_EastWestEntrance/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SaffronCity_EastWestEntrance/border.bin differ diff --git a/data/layouts/SaffronCity_EastWestEntrance/map.bin b/data/layouts/SaffronCity_EastWestEntrance/map.bin new file mode 100644 index 000000000..8b9683b99 --- /dev/null +++ b/data/layouts/SaffronCity_EastWestEntrance/map.bin @@ -0,0 +1 @@ +2222222222222(3'3'3'3'3'3)32222,322222-32222*3&3&3&3&3&3+32222222222222 \ No newline at end of file diff --git a/data/layouts/SaffronCity_Gym/border.bin b/data/layouts/SaffronCity_Gym/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SaffronCity_Gym/border.bin differ diff --git a/data/layouts/SaffronCity_Gym/map.bin b/data/layouts/SaffronCity_Gym/map.bin new file mode 100644 index 000000000..2eee32447 --- /dev/null +++ b/data/layouts/SaffronCity_Gym/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SaffronCity_House1_1F/border.bin b/data/layouts/SaffronCity_House1_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SaffronCity_House1_1F/border.bin differ diff --git a/data/layouts/SaffronCity_House1_1F/map.bin b/data/layouts/SaffronCity_House1_1F/map.bin new file mode 100644 index 000000000..6db070ab7 --- /dev/null +++ b/data/layouts/SaffronCity_House1_1F/map.bin @@ -0,0 +1 @@ +500000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/SaffronCity_House1_2F/border.bin b/data/layouts/SaffronCity_House1_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SaffronCity_House1_2F/border.bin differ diff --git a/data/layouts/SaffronCity_House1_2F/map.bin b/data/layouts/SaffronCity_House1_2F/map.bin new file mode 100644 index 000000000..c3090f485 Binary files /dev/null and b/data/layouts/SaffronCity_House1_2F/map.bin differ diff --git a/data/layouts/SaffronCity_NorthSouthEntrance/border.bin b/data/layouts/SaffronCity_NorthSouthEntrance/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SaffronCity_NorthSouthEntrance/border.bin differ diff --git a/data/layouts/SaffronCity_NorthSouthEntrance/map.bin b/data/layouts/SaffronCity_NorthSouthEntrance/map.bin new file mode 100644 index 000000000..138b62d0f --- /dev/null +++ b/data/layouts/SaffronCity_NorthSouthEntrance/map.bin @@ -0,0 +1 @@ +2222222223222223222222322222322222#32222222222222222 \ No newline at end of file diff --git a/data/layouts/SaffronCity_PokemonTrainerFanClub/border.bin b/data/layouts/SaffronCity_PokemonTrainerFanClub/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SaffronCity_PokemonTrainerFanClub/border.bin differ diff --git a/data/layouts/SaffronCity_PokemonTrainerFanClub/map.bin b/data/layouts/SaffronCity_PokemonTrainerFanClub/map.bin new file mode 100644 index 000000000..1f0a70d65 --- /dev/null +++ b/data/layouts/SaffronCity_PokemonTrainerFanClub/map.bin @@ -0,0 +1,2 @@ +52222 +32222222222222222222222222222222222222222222222222222 32222222 3222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_1F/border.bin b/data/layouts/SeafoamIslands_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SeafoamIslands_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_1F/map.bin b/data/layouts/SeafoamIslands_1F/map.bin new file mode 100644 index 000000000..00e113364 Binary files /dev/null and b/data/layouts/SeafoamIslands_1F/map.bin differ diff --git a/data/layouts/SeafoamIslands_B1F/border.bin b/data/layouts/SeafoamIslands_B1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SeafoamIslands_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B1F/map.bin b/data/layouts/SeafoamIslands_B1F/map.bin new file mode 100644 index 000000000..8735540c7 --- /dev/null +++ b/data/layouts/SeafoamIslands_B1F/map.bin @@ -0,0 +1 @@ +BBBBBBBBBBBBBBBBBBBB22222222222BBBBBBBBBB2222222222222222222BBBBBBBBBB22222222222BBBFBBBBBBB22222222222BBBBBBBBBBB222222222222222BBBBBBBBBBBB222222222222222BBBBBBBBB222222222222222BBBBBBXCBBBBB222222222222222BBBBBBBBBBBB222222222222222BBBBBBBB2222222222222BBBBBBBBWCBBBB22222222222222222BBBBBBBBBBBBB22222222222222222BBBBBBBBBBBBB22222222222222222BBBBBBBBBBBBB22222222222222222222222222U22222222222222222222222222222222222222222222222222222222222U222222222222222222222222222222UVUVUVUV \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B2F/border.bin b/data/layouts/SeafoamIslands_B2F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SeafoamIslands_B2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B2F/map.bin b/data/layouts/SeafoamIslands_B2F/map.bin new file mode 100644 index 000000000..968163399 Binary files /dev/null and b/data/layouts/SeafoamIslands_B2F/map.bin differ diff --git a/data/layouts/SeafoamIslands_B3F/border.bin b/data/layouts/SeafoamIslands_B3F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SeafoamIslands_B3F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B3F/map.bin b/data/layouts/SeafoamIslands_B3F/map.bin new file mode 100644 index 000000000..f6803677d --- /dev/null +++ b/data/layouts/SeafoamIslands_B3F/map.bin @@ -0,0 +1,3 @@ +'''///BBBBBBBBB///2222222BBBBBBBBB7772222222BBBBBBBBB !!& %"22222222BBBBBBBBB#     $22222222BBBBBBBBBC C C C C C +C $BBBBBBBBBBBB;<BBBBBBBBBBBBB2222BBBBB#$BBBBBBBBBBBBB2222BBB22#$BBBBBBBBBBBWBBBBXBBB PP!&$22BBBBBBBBBBBBBBBBB#    %PQBBBBBBBBBBB#     $BBBBBBBBBBB22BBBWC C C C C +C  CXCBBBB22BBBBBBBBB#$BBBBB2222222222BBBBBBBBB#$BBBBBBU2222222222#$2222222222222222222222U22222222222222222222222UVUVUUVVBFUUVVBBUVBBBUVBBBBBUVBBB \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B4F/border.bin b/data/layouts/SeafoamIslands_B4F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SeafoamIslands_B4F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B4F/map.bin b/data/layouts/SeafoamIslands_B4F/map.bin new file mode 100644 index 000000000..668ac2580 --- /dev/null +++ b/data/layouts/SeafoamIslands_B4F/map.bin @@ -0,0 +1,3 @@ +BBBBBBBBBBBBBBBBBBBBB BBBBBBBB  BBBBBBBBBBBB BBBBBB  BBBBBBBBBBB6 22  BBBBBBBBBBBB   BBBBBBBBBBB      BB22      C C C C C C C C CXCBB #########!6     BBBBBBBBB*+++++++++,     BBBBBBBBBBBB*+++++++++,     BBBBBBBBBBBB*+++++++++,V     BBBBBBB*+++++++++,U     22BB ##1+++++++++,   BB*++++++++++++,        BB*++++++++++++,VU         BB*++++++++++++,         BB*++++++++++++,U      C C C C C CXCBBWC C +C++++++++++,89BBBBBBBBBBBWC +C++++++++,BBBBBBBBBBBBBB       VBBBBBBBBBBBBBB  U                  V \ No newline at end of file diff --git a/data/layouts/SevenIsland/border.bin b/data/layouts/SevenIsland/border.bin new file mode 100644 index 000000000..75f2c916c --- /dev/null +++ b/data/layouts/SevenIsland/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/SevenIsland/map.bin b/data/layouts/SevenIsland/map.bin new file mode 100644 index 000000000..05be06e76 --- /dev/null +++ b/data/layouts/SevenIsland/map.bin @@ -0,0 +1 @@ +qqqqqur000HIJKp{|||}qqq|||qur000PQRSpqqqqqq|||squr000XYZ[xyq||}q|s{|}r000`ab0 0pqu|||issqqqr0000000000pquuhkkts{qqr00000000 0 0pquursmt{0002222200pquursvxis01230000 0pquursvots89:;00000xuursvvts@Abc000 0 0puursvvts000000000000 00 0puursvvts000000000000000x}ursvvt{|||000||||000||}rsvvxkkkis0 00uhkkk222kkkysvvossst{000}rs22ssmvvvossxk111kysssvvvvvvoss111ssssmDEvvDEvos111ssssvLMvvLMvvs111ssssvvvvvvvvvs111sssssmvvvvvvvv \ No newline at end of file diff --git a/data/layouts/SevenIsland_House_Room1/border.bin b/data/layouts/SevenIsland_House_Room1/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_House_Room1/border.bin differ diff --git a/data/layouts/SevenIsland_House_Room1/map.bin b/data/layouts/SevenIsland_House_Room1/map.bin new file mode 100644 index 000000000..e439b6d6f --- /dev/null +++ b/data/layouts/SevenIsland_House_Room1/map.bin @@ -0,0 +1 @@ +=>{|}PQ=>EFXYEFM1N11111111M1N1V1 1 1 1 1 1 1 1 1 1 1^ 1 1 1o1efg1 1 1 11 1 1 1o1mng1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/SevenIsland_House_Room2/border.bin b/data/layouts/SevenIsland_House_Room2/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_House_Room2/border.bin differ diff --git a/data/layouts/SevenIsland_House_Room2/map.bin b/data/layouts/SevenIsland_House_Room2/map.bin new file mode 100644 index 000000000..7ed3a8c8a --- /dev/null +++ b/data/layouts/SevenIsland_House_Room2/map.bin @@ -0,0 +1 @@ +{|}PQPQ!~1w!XYXY!111111111111 1 1 1 1 1 1 1 1 1 161 1 1#1$1$1$1$1%1 1 1 11 1 1+1,1,1,1,1-1 1 1 11 1 1314141414151 1 1.1 1 1 1 1 1 1 1 1 1 161 1 1 1 1 1 1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/border.bin b/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/border.bin new file mode 100644 index 000000000..56b76feec --- /dev/null +++ b/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/map.bin b/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/map.bin new file mode 100644 index 000000000..77ec431c8 Binary files /dev/null and b/data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/map.bin differ diff --git a/data/layouts/SevenIsland_SevaultCanyon/border.bin b/data/layouts/SevenIsland_SevaultCanyon/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/SevenIsland_SevaultCanyon/border.bin differ diff --git a/data/layouts/SevenIsland_SevaultCanyon/map.bin b/data/layouts/SevenIsland_SevaultCanyon/map.bin new file mode 100644 index 000000000..d2414a683 Binary files /dev/null and b/data/layouts/SevenIsland_SevaultCanyon/map.bin differ diff --git a/data/layouts/SevenIsland_SevaultCanyon_Entrance/border.bin b/data/layouts/SevenIsland_SevaultCanyon_Entrance/border.bin new file mode 100644 index 000000000..75f2c916c --- /dev/null +++ b/data/layouts/SevenIsland_SevaultCanyon_Entrance/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/SevenIsland_SevaultCanyon_Entrance/map.bin b/data/layouts/SevenIsland_SevaultCanyon_Entrance/map.bin new file mode 100644 index 000000000..080fac6fb Binary files /dev/null and b/data/layouts/SevenIsland_SevaultCanyon_Entrance/map.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins/border.bin b/data/layouts/SevenIsland_TanobyRuins/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins/map.bin b/data/layouts/SevenIsland_TanobyRuins/map.bin new file mode 100644 index 000000000..0bf51a581 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins/map.bin @@ -0,0 +1 @@ +++++++++++ssquz0 0pqu+++++++++++++++++++++++s{|}r000xy}++++++++++++++ 11+++++++++++++,{|qr00 00 0"1+++++++++++++++++++++++++++1&11++++ 1 1 1 1 11++++++0#!{|z00000*++++++ 1 1 1 1 1 1 11+++++++++++++++++111+++++++++ 1%1111&11+++++++++++++0#$000 00 0*++++++111++++++++++++++ 1 1 1 1 1 1 1 11+++++++++111+++++++++111+++++ 1 1 1 1 11++++++0######1++++++++++111++++++ 1 1 1 1 1 1 11+++++++ 1%1&11+++++++12111+++++++111++++ 1%1111&11+++++++++++++++++++++++++++111++++++111++++++ 1%1&11++++++++11-1111.11+++++++++++111++++111+++++++++++++++++++++++++++111++++++++11++++++1su1+++++++++11111++++++++++++111++++111+++++++++++++++++++++++++++11121++++++++111++++++1su1++++++++++++++++++++++++121.11++++111+++++++++++++++++++++++++++++++++1-11111.11++++++++111++++++1su1++++++++++++++++++++++++++1-1111.11+++++111++++++++++++++++++++++++++++++++++++111111+++++++++11211++++++1{I3<=3>I3}1++++++++ 11++++++++++++++11111++++++121.11+++++++++++++++++++++++++++++++++++++++++++++++++++1-11111.11++++++1{I3I3I3}1++++++++1&11++++++++++++++++++++++++1111111+++++++++++++++++++++++++++++++++++++++++++++++++++111111+++++++1-1{000}.11++++++++111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1-1y000y11+++++++++111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1-11111.1111+++++++12111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++111111+++++++++++11111111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_DilfordChamber/border.bin b/data/layouts/SevenIsland_TanobyRuins_DilfordChamber/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_DilfordChamber/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_DilfordChamber/map.bin b/data/layouts/SevenIsland_TanobyRuins_DilfordChamber/map.bin new file mode 100644 index 000000000..50d04c4d3 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_DilfordChamber/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_LiptooChamber/border.bin b/data/layouts/SevenIsland_TanobyRuins_LiptooChamber/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_LiptooChamber/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_LiptooChamber/map.bin b/data/layouts/SevenIsland_TanobyRuins_LiptooChamber/map.bin new file mode 100644 index 000000000..0dd265d65 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_LiptooChamber/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_MoneanChamber/border.bin b/data/layouts/SevenIsland_TanobyRuins_MoneanChamber/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_MoneanChamber/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_MoneanChamber/map.bin b/data/layouts/SevenIsland_TanobyRuins_MoneanChamber/map.bin new file mode 100644 index 000000000..38f818e71 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_MoneanChamber/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_RixyChamber/border.bin b/data/layouts/SevenIsland_TanobyRuins_RixyChamber/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_RixyChamber/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_RixyChamber/map.bin b/data/layouts/SevenIsland_TanobyRuins_RixyChamber/map.bin new file mode 100644 index 000000000..e98187c67 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_RixyChamber/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_ScufibChamber/border.bin b/data/layouts/SevenIsland_TanobyRuins_ScufibChamber/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_ScufibChamber/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_ScufibChamber/map.bin b/data/layouts/SevenIsland_TanobyRuins_ScufibChamber/map.bin new file mode 100644 index 000000000..bdd65c306 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_ScufibChamber/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber/border.bin b/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber/map.bin b/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber/map.bin new file mode 100644 index 000000000..4d4d0e886 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_WeepthChamber/border.bin b/data/layouts/SevenIsland_TanobyRuins_WeepthChamber/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_WeepthChamber/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_WeepthChamber/map.bin b/data/layouts/SevenIsland_TanobyRuins_WeepthChamber/map.bin new file mode 100644 index 000000000..acb0469fc --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_WeepthChamber/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TrainerTower/border.bin b/data/layouts/SevenIsland_TrainerTower/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/SevenIsland_TrainerTower/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SevenIsland_TrainerTower/map.bin b/data/layouts/SevenIsland_TrainerTower/map.bin new file mode 100644 index 000000000..c6a77c452 --- /dev/null +++ b/data/layouts/SevenIsland_TrainerTower/map.bin @@ -0,0 +1 @@ +++squqyyyyqsqu+++ssquzhqqjxsquu+(sssqurhqjpsquuu),sssqurpqqrpsquuu*,sssqurpqqrpsquuu*,sssqurpqqrpsquuu*,sssqurx2zpsquuu*,sssqjxyyy2yyyzhquuu*,ss{qqj 0022200 0hqq}uu*,s{sqqqij 00 00 0hiqqqu}u*,{ssqqqqquj000hsqqqqquu}*0$ss{|||quu333ssq|||}uu 1+,s{|||{|z31 0 0 031x|}|||}u*++,{|||{| 00 00 00 0|}|||}*+0# !sqq{||000||}qqu  #1+,{||||y000y||||}*+++++0 ##$0 00 00"# #1++++++++0#####1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 1 1 1 1 1 1 1 1 11++++++++111111111111+++++++++++ 1%1111+++++++++++111110000000++++++++++11110000000++++++++11111000000pqqqqq+++++11111111000000hiikllllllm+++++111111110000 0hqklqqqqqququ++G100000pqkqqqqqqqququu)++qqqqqqqiij0000 0pqsqqqqqqqqququu*++sqkllllllmqqqqr00000pqsqqqqqqqqquqO+(ssqsqqqqqqllmqr0000 0pqsqqqqqqqqquqqqqu,ssqsqqqqqqqqqmr00000pq{|qqqqqqquqqqquu),ssqsqqqqqqqqqqur000{1|1sqqq|||}qqqquu* \ No newline at end of file diff --git a/data/layouts/SevenIsland_TrainerTower_1F/border.bin b/data/layouts/SevenIsland_TrainerTower_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_1F/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_1F/map.bin b/data/layouts/SevenIsland_TrainerTower_1F/map.bin new file mode 100644 index 000000000..812cea451 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_1F/map.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_2F/border.bin b/data/layouts/SevenIsland_TrainerTower_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_2F/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_2F/map.bin b/data/layouts/SevenIsland_TrainerTower_2F/map.bin new file mode 100644 index 000000000..7ae889af1 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_2F/map.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_3F/border.bin b/data/layouts/SevenIsland_TrainerTower_3F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_3F/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_3F/map.bin b/data/layouts/SevenIsland_TrainerTower_3F/map.bin new file mode 100644 index 000000000..c01e70c2f Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_3F/map.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_4F/border.bin b/data/layouts/SevenIsland_TrainerTower_4F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_4F/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_4F/map.bin b/data/layouts/SevenIsland_TrainerTower_4F/map.bin new file mode 100644 index 000000000..057d7f955 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_4F/map.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_5F/border.bin b/data/layouts/SevenIsland_TrainerTower_5F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_5F/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_5F/map.bin b/data/layouts/SevenIsland_TrainerTower_5F/map.bin new file mode 100644 index 000000000..d580e7d2d Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_5F/map.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_6F/border.bin b/data/layouts/SevenIsland_TrainerTower_6F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_6F/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_6F/map.bin b/data/layouts/SevenIsland_TrainerTower_6F/map.bin new file mode 100644 index 000000000..3c2c3165c Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_6F/map.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_7F/border.bin b/data/layouts/SevenIsland_TrainerTower_7F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_7F/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_7F/map.bin b/data/layouts/SevenIsland_TrainerTower_7F/map.bin new file mode 100644 index 000000000..d9bb110cf Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_7F/map.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_8F/border.bin b/data/layouts/SevenIsland_TrainerTower_8F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_8F/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_8F/map.bin b/data/layouts/SevenIsland_TrainerTower_8F/map.bin new file mode 100644 index 000000000..6ba6588be Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_8F/map.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_Elevator/border.bin b/data/layouts/SevenIsland_TrainerTower_Elevator/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_Elevator/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_Elevator/map.bin b/data/layouts/SevenIsland_TrainerTower_Elevator/map.bin new file mode 100644 index 000000000..42e08c38d --- /dev/null +++ b/data/layouts/SevenIsland_TrainerTower_Elevator/map.bin @@ -0,0 +1 @@ +222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TrainerTower_Lobby/border.bin b/data/layouts/SevenIsland_TrainerTower_Lobby/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SevenIsland_TrainerTower_Lobby/border.bin differ diff --git a/data/layouts/SevenIsland_TrainerTower_Lobby/map.bin b/data/layouts/SevenIsland_TrainerTower_Lobby/map.bin new file mode 100644 index 000000000..b98077279 --- /dev/null +++ b/data/layouts/SevenIsland_TrainerTower_Lobby/map.bin @@ -0,0 +1 @@ +222222222222222222222w2v222222b2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TrainerTower_Roof/border.bin b/data/layouts/SevenIsland_TrainerTower_Roof/border.bin new file mode 100644 index 000000000..f94adee61 --- /dev/null +++ b/data/layouts/SevenIsland_TrainerTower_Roof/border.bin @@ -0,0 +1 @@ +//// \ No newline at end of file diff --git a/data/layouts/SevenIsland_TrainerTower_Roof/map.bin b/data/layouts/SevenIsland_TrainerTower_Roof/map.bin new file mode 100644 index 000000000..37d57f3fe --- /dev/null +++ b/data/layouts/SevenIsland_TrainerTower_Roof/map.bin @@ -0,0 +1 @@ +pT[[[[[[[[[[[[PzEpT[[[[[[[[[[[[PzEpT[[[[[[[[[[[[PzEpT[[[h[[[[h[[[PzEpJIIIi[[[[jMNOKzEp`abQJIIIIKUVWSzEpcde33RQQQQS3333mEpfg_33Z3333333333tEp33333333333333tExq333333333333s|Cyrrrrrrrrrrrr{@A;!"((((((((((((%&<;)*080808080808-.<;12#$+,#$#$+,#$56<;9:#$34#$#$34#$=><;)F#$kl#$#$kl#$G.< \ No newline at end of file diff --git a/data/layouts/SilphCo_10F/border.bin b/data/layouts/SilphCo_10F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_10F/border.bin differ diff --git a/data/layouts/SilphCo_10F/map.bin b/data/layouts/SilphCo_10F/map.bin new file mode 100644 index 000000000..1ca95017c --- /dev/null +++ b/data/layouts/SilphCo_10F/map.bin @@ -0,0 +1 @@ +000i000jk8q88o0]0>rst253u2vw?@BA008e8Fz{|243}2~GHI885353535353;3<3434353535353535353535343434343434393232323234343232323534343434343M30^_534300534343434343U8fg534388534343434343M3N353535343535353534343434343UV434343433434313232343432323132323434323232300534300000534300088534388888534388|53535353435353535353534353533N343435334343moW343V434343435343mo#%63435343435343#%u3w36343N34343435343u3w36334343V4343434343435343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_11F/border.bin b/data/layouts/SilphCo_11F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_11F/border.bin differ diff --git a/data/layouts/SilphCo_11F/map.bin b/data/layouts/SilphCo_11F/map.bin new file mode 100644 index 000000000..027e0a7db --- /dev/null +++ b/data/layouts/SilphCo_11F/map.bin @@ -0,0 +1 @@ +000i0T88q800RS35353?0@BA0088Z[\34343G8HI8853535353;3<343435353535353535353433132323232323232323:343435343430]^_005343534343bOefgO85343534343353VV535343534343534343(3)3*3634353435343435343333334353435343435343435343534343534363534353434353436353435343435343=3;3;3;3;3<3534353434353432323232323235343534343?>53430000005343534343GF534388OOO85343534343535353435353VVV535343534343434343434343434343435343 \ No newline at end of file diff --git a/data/layouts/SilphCo_1F/border.bin b/data/layouts/SilphCo_1F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_1F/border.bin differ diff --git a/data/layouts/SilphCo_1F/map.bin b/data/layouts/SilphCo_1F/map.bin new file mode 100644 index 000000000..fb7be168b --- /dev/null +++ b/data/layouts/SilphCo_1F/map.bin @@ -0,0 +1 @@ +i000q8PQ00]000000000]00^_0000@BA00000>533XY?0O8e888dOOO88e88fg8888HI88888F533`aG8V5353535353lVVV535353535353535353535353535353535353535353435353535353434343433l634343434343434343434343434343434343434343434343434343434353434343433t63434343434343434343434343434343434343434343434343434343M3h3i3i3i3i3i3s6343434343434343434343434343434343434343434343E3J3434343Upqqqqqr6343434343434343434343434343434343CDW3E3434353;3;3;3;3;3;3<3434343434343434343434343KL63J343M353434343434343434343434343434343=3;3<34343U5343434343434343434343434343E3J34343434353b3c3W343b3c3W3434343434343CDW3E343M353j3k36343j3k3634343434343434343KL63J343U53=3;3<343=3;3<3434343434343434343434343=3;3<343434353b3c3W343b3c3W343434343434343434343434343434343E3J3434343M353j3k36343j3k36343434343434343434343434343434343434343434343CDW3E343U53=3;3<343=3;3<343434343434343434343434343434343434343434343KL63J34343534343434343434343434343434343434343434343434343434343434343=3;3<34343M35343434343434343434343434343434343434343434343M34343M34343M34343M34343U5343434343434333343434343434343434343434343U4343U4343U4343U434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_2F/border.bin b/data/layouts/SilphCo_2F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_2F/border.bin differ diff --git a/data/layouts/SilphCo_2F/map.bin b/data/layouts/SilphCo_2F/map.bin new file mode 100644 index 000000000..97ada04d8 --- /dev/null +++ b/data/layouts/SilphCo_2F/map.bin @@ -0,0 +1 @@ +000i000jk8q88o000]00000000000^_0@BA0>rst253u2vw?00OOOe8888888OO88fg8HI8Fz{|243}2~G88VVV53535353535353VV53535353535353535353;3;3<343435353535353534343434343434343434353434343434343434343434343434343434343434343435343343434343434343435343343434343434343434343434343434343434343431323232323434323232323132323232323232323232323232323234343232323232300000534300000000000000000000005343000008888853438888888888OOOOOO8888885343888885353535353534353535353535353535353VVVVVV5353535353535343535353535353434343434343434343434343434343434343434343434343434343434343434343434353434343434343434343434343434343434343434343434343439323232323232323232353434343434343434343434343434343434343434343434343430^_000013232323234343232323232323:34343mnoW343mnoW3438fg88{|000053430]00}5343#343#343?>53535353535333|{8853438e885343u3v3w36343u3v3w36343GF534343434343434333535353534353535353~3534343434343434343434343535353x3y3z3434343435343x3y3z3434343434343M35343mnoW343mnoW34393:34334343M353433433434343U5343#343#3435363343U5343333634343434343M35343u3v3w36343u3v3w3634353333634343M35343434343434343434343U53434343434343434343434353434343434343U \ No newline at end of file diff --git a/data/layouts/SilphCo_3F/border.bin b/data/layouts/SilphCo_3F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_3F/border.bin differ diff --git a/data/layouts/SilphCo_3F/map.bin b/data/layouts/SilphCo_3F/map.bin new file mode 100644 index 000000000..e0a18ff16 --- /dev/null +++ b/data/layouts/SilphCo_3F/map.bin @@ -0,0 +1 @@ +000i000T88q8PQ000000000^_000^_00000@BA0>RS3533XY?00OOO888888fg888fg88888HI8FZ[\3433`aG88VVV5353535353535353535353535353535353535353535353;3;3<3434353535353535343434343434343434343434343434343434343434343434343434343434343433434353434343343434343434343434343434343434343434343434343434343434343434343132323232323232323232323232323232323232323:34343434393232323232323232323}0000000000000}053434343000|888888888888|53434343888~3353535353535353?>N3535353535353~33?>53434343?>53535353333343434343mnoW3GFV434343mnoW343GF53434343GF53434343x3y3z34343434343635353534343436343535353434343535353434343W3534343433#6393:3N343433#634393:34343434393:3434343363534334343u3v3w363V43343u3v3w363435343434353343433336313232323232323232313232323232323232353434343132323232323232300]00000000000000]000>53434343?00000000088e88888OOOOOO888e888F53434343G888888OOO5353535353535353VVVVVV53535353535353535343434353535353535353VVV5343434343434343434343434343434343434343434343434343434343434343434343435343433434343434343434343434343434343434343434343434343434343433434343534343434343434343434343434343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_4F/border.bin b/data/layouts/SilphCo_4F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_4F/border.bin differ diff --git a/data/layouts/SilphCo_4F/map.bin b/data/layouts/SilphCo_4F/map.bin new file mode 100644 index 000000000..b6a91deb8 --- /dev/null +++ b/data/layouts/SilphCo_4F/map.bin @@ -0,0 +1 @@ +000i000jk8q88o00000000000^_000@BA0>rst253u2vw?0088888888888fg888HI8Fz{|243}2~G8853535353535353535353535353535353535353535353;3;3<343435353535353537777W343W35343mnnoW34353434343434343434343434343434353776353436335343434343434343434343434343435363533#$34353434343434343434343434343434353635343u3v3v3w3634353434393232323234343232323232353635334343434343435343430053430}}536313232343432323235343438853438537363000534300053434353535353435333~3~353634363{|85343888534343534343x3y3z3434343435373<34373<333535343535353534343534343W34343M353=3<34343=3;3<3435343434343434335343435343334343U132323434323232323132323434323232353434353434333363434343000534300000000053430000>534343534343x3y3z3434343M3O88534388OOOO88853438888F534343534343W34343UV535353435353VVVV535353534353535353535343435343334343435343434343434343434343434343434343434343434343434343333634343M3534334343434343434343434343434343434343434343434343434343434343U534343434343434343434343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_5F/border.bin b/data/layouts/SilphCo_5F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_5F/border.bin differ diff --git a/data/layouts/SilphCo_5F/map.bin b/data/layouts/SilphCo_5F/map.bin new file mode 100644 index 000000000..0a4f53ad7 --- /dev/null +++ b/data/layouts/SilphCo_5F/map.bin @@ -0,0 +1 @@ +000i000T88q8PQ00}}}000000]0000000@BA0>RS3533XY?0088888888e888OOO8HI8FZ[\3433`aG885353~3~3~353535353535353535353VVV535353535353;3;3<34343535353535353M343M343M3435343434343434343434343434343434343434343434343433434353U43U43U4353434343434343434393232323232323232323434323232323:34353434343434343?>53434343434334343}}0^_0053430005353434343434343GF5343932323232323238fg88534388O53534343434343435353534300000~3~353535353535353435353V5353M343M343M34393:343438{{|85343434343x3y3z33y3z343435353U43U43U4353435333353?>534343433W34353132323232323235343N343434343GF53434343433336343530000005343V4343434353535343434343434336343538888885343534343434393:343434343433y3z3634353535353535353535343N343434343534343433634353534343774343?>5343V43434343534343434333333363435353W3GF53431323232323132323232323232323232323235353=36353535343?00000000^_00000000000>535343=36393:34343G8O88O88OfgO8O88O88O88F5353433634335353V5353V5353V5353V5353V5353V5353V53535353534343=3;3;3<3434343434343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_6F/border.bin b/data/layouts/SilphCo_6F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_6F/border.bin differ diff --git a/data/layouts/SilphCo_6F/map.bin b/data/layouts/SilphCo_6F/map.bin new file mode 100644 index 000000000..cf0b384e7 --- /dev/null +++ b/data/layouts/SilphCo_6F/map.bin @@ -0,0 +1 @@ +0000i000jk88q88o0}}0000]0>rst253?00@BA00>53u2vw?0{8888e8Fz{|243G88HI88F53}2~G83~3~353535353535353;3;3<3435353535353535353535343535353535343434343?>534343439323232323232323232323434323232323:3343534334343GF53434343}000000053430^_534353M343M3435353534343M3{|8888853438fg534353U43U4393:3434343U~3335353535353535343535353534313232323235343434353434343x3y3y3y3y3y3y3z3434353430000534343M3N343434334353438888534343UV43434343435343535353535353434343N3434333435343534343?>534343M3V434343333333334343534353434343GF534343U132323434323232323232323232353435374343535353434343?000053430000000000>534353434393:343434343G888853438888888888F5343534343435343434353535353535343535353535353535353535353435343434343534343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_7F/border.bin b/data/layouts/SilphCo_7F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_7F/border.bin differ diff --git a/data/layouts/SilphCo_7F/map.bin b/data/layouts/SilphCo_7F/map.bin new file mode 100644 index 000000000..373fa1f17 --- /dev/null +++ b/data/layouts/SilphCo_7F/map.bin @@ -0,0 +1 @@ +000i0000T88q88PQ^_00000000RS353?@BA>533XY?fg88OO8d88Z[\343GHIF533`aG335353533VV5353t5353?>53;3<34353535353535343535353534343x3y3z3h3i3i3i3s4343GF5343434343434343434343434343534343pqqqr4343535353434393232323434323232323235343433331323234343232323:3434343005343000053434343433005343^_534343O853438888132323232323885343fg534343V53534353533353000}}}53535353435353534343N3434343434338{|53moW3moW3534343V434343434333635333~3~3~353#%63#%6353434313232343432323232353434343434353u3w363u3w36353434300053430]53M34343M34353433434334353434388853438e53U4343U43132323232323235343435353535343535333534343434343?00]000]00>5343435343434343434343b3534343434343G88e888e88F534343534343343434343j35343434343435353535353535353535353534343534343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_8F/border.bin b/data/layouts/SilphCo_8F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_8F/border.bin differ diff --git a/data/layouts/SilphCo_8F/map.bin b/data/layouts/SilphCo_8F/map.bin new file mode 100644 index 000000000..73efec7e1 --- /dev/null +++ b/data/layouts/SilphCo_8F/map.bin @@ -0,0 +1 @@ +0000i000jk88q88o00^_00}00}rst253?00@BA00>53u2vw88fg88{|z{|243G88HI88F53}2~535353535353~333~353;3<3435353535353535353535343535353x3y3z343534343434353434393232323232323232323232323235343534343343534343000000^_3435343232323534343888888fg533?>534300534343335353533333343GF534388534343CCC443434343M3435343535353435353353434354344344343434343U43533334393:3534343CD53434353CD43J34343434343M343534334343534343KL53434353KL43E34343434343U4313232323235343232323534343132323232343432323232323000000>534300]0>534343?00^_0053430000O88888F534388e8F534343G88fg8853438888V535353535353534353535353535343435353535353535353435353535353N343343434343434343434343434343434343434343434343434343434343V434343434343434343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_9F/border.bin b/data/layouts/SilphCo_9F/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_9F/border.bin differ diff --git a/data/layouts/SilphCo_9F/map.bin b/data/layouts/SilphCo_9F/map.bin new file mode 100644 index 000000000..95d58dafb --- /dev/null +++ b/data/layouts/SilphCo_9F/map.bin @@ -0,0 +1 @@ +000i000T88q8PQ000]000]0000RS3533XY?0@BA00000888e888e8888Z[\3433`aG8HI888885353535353535353533535353;3<343435353535353535353535353535343932323232323232323235343932323232343432323232323:343435343000^_0053430053430^_053435343OO8fg88N3438853438fg8N3435343?>VV535353535353V43535353534353535353V435343GF534343CD43J34353435343434343CD43J3N34353435353534343KL43E343N3435343434343KL43E3V43534393:34343439323232323V4313232343432323232335353435343430005343}}0534300005313235343438N343853438888530^_>534343?>53?>V43~3~35353435353535353538fgF534343GF534343GF53435343437777434343?>53334343535353434353535343534343434343GF53CCC44393:343434393:34343534343434343535353543443443435343435343534343433434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_Elevator/border.bin b/data/layouts/SilphCo_Elevator/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/SilphCo_Elevator/border.bin differ diff --git a/data/layouts/SilphCo_Elevator/map.bin b/data/layouts/SilphCo_Elevator/map.bin new file mode 100644 index 000000000..42e08c38d --- /dev/null +++ b/data/layouts/SilphCo_Elevator/map.bin @@ -0,0 +1 @@ +222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland/border.bin b/data/layouts/SixIsland/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/SixIsland/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/SixIsland/map.bin b/data/layouts/SixIsland/map.bin new file mode 100644 index 000000000..a82f268bd --- /dev/null +++ b/data/layouts/SixIsland/map.bin @@ -0,0 +1 @@ +vvvvvvvvvvvvvvtssqqqqqqvvvvvvvvvvvvsstssqqqqqqvvvvvvvvvssssstssqqqqqq]U]U]U]U]sssssstssqqqqqq|ssssstssqqqqqquqsssstsxyyqqqxyyy^3|1}1~1100000HIJK(0)0*0+000$'PQRS&%$'0123XYZ[89:;&%00`ab00 00@Abc00000000000000000000000000000000 00000022222000 0000000000&'000&'000 00000000 00000000000000000000 0$%$'00000000000000000yy000yyy0 00000'&'r0 00000 00p|||z&%$'000phiiiiiikkkkkkkkkk222kklpsqqqqqqssssssss22tssqqqqqqvvvosssstssqkllllvvvvossstssqsqqqqvvvvvvostssqsqqqqvvvvvvvotssqsqqqqvvvvvvvvvvvvvvotssqsqqqq \ No newline at end of file diff --git a/data/layouts/SixIsland_AlteringCave/border.bin b/data/layouts/SixIsland_AlteringCave/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SixIsland_AlteringCave/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_AlteringCave/map.bin b/data/layouts/SixIsland_AlteringCave/map.bin new file mode 100644 index 000000000..7dde0cb15 Binary files /dev/null and b/data/layouts/SixIsland_AlteringCave/map.bin differ diff --git a/data/layouts/SixIsland_DottedHole_1F/border.bin b/data/layouts/SixIsland_DottedHole_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_1F/map.bin b/data/layouts/SixIsland_DottedHole_1F/map.bin new file mode 100644 index 000000000..ea33c9ead --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_1F/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B1F/border.bin b/data/layouts/SixIsland_DottedHole_B1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B1F/map.bin b/data/layouts/SixIsland_DottedHole_B1F/map.bin new file mode 100644 index 000000000..a610cdd58 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B1F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222333222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B2F/border.bin b/data/layouts/SixIsland_DottedHole_B2F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B2F/map.bin b/data/layouts/SixIsland_DottedHole_B2F/map.bin new file mode 100644 index 000000000..3abe860dd --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B2F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222223332222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B3F/border.bin b/data/layouts/SixIsland_DottedHole_B3F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B3F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B3F/map.bin b/data/layouts/SixIsland_DottedHole_B3F/map.bin new file mode 100644 index 000000000..c72c26c5c --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B3F/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222223332222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B4F/border.bin b/data/layouts/SixIsland_DottedHole_B4F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B4F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B4F/map.bin b/data/layouts/SixIsland_DottedHole_B4F/map.bin new file mode 100644 index 000000000..a0c7e44e3 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B4F/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222223332222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_SapphireRoom/border.bin b/data/layouts/SixIsland_DottedHole_SapphireRoom/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_SapphireRoom/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_SapphireRoom/map.bin b/data/layouts/SixIsland_DottedHole_SapphireRoom/map.bin new file mode 100644 index 000000000..67a89d25e --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_SapphireRoom/map.bin @@ -0,0 +1 @@ +S22[322222222A3M33L3C3222F3222E322222G222223I3222H3322N3K32J3O3223332222 \ No newline at end of file diff --git a/data/layouts/SixIsland_GreenPath/border.bin b/data/layouts/SixIsland_GreenPath/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/SixIsland_GreenPath/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_GreenPath/map.bin b/data/layouts/SixIsland_GreenPath/map.bin new file mode 100644 index 000000000..647978c02 Binary files /dev/null and b/data/layouts/SixIsland_GreenPath/map.bin differ diff --git a/data/layouts/SixIsland_OutcastIsland/border.bin b/data/layouts/SixIsland_OutcastIsland/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/SixIsland_OutcastIsland/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_OutcastIsland/map.bin b/data/layouts/SixIsland_OutcastIsland/map.bin new file mode 100644 index 000000000..53e933378 --- /dev/null +++ b/data/layouts/SixIsland_OutcastIsland/map.bin @@ -0,0 +1,15 @@ ++++++++++++++++++++++++++  ++++++++  +++++++++++++++++qqq++++klllm++y+sqqqu++++  +++sqqquV+++++++++++sqqqllm 1 1++++{|qqqqu11qq++++ysqqq}qq++++ sqqquqqqq++++sqqquqqqq++++{|||}qqqqq+++qy0yyyyyy++ y1111111+y  2111111qq1+  ++++1111111yy1+++++11211111+++++++++qq+++++++++qqyq++++++++TUqqq+++++++qqqy++++++yyy1  ++++  +++++++y++++++++++++++++  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ++++++++++++++++++++++++++++++++++++  ++++++y+++++++++++++  ++++++++++++++++++++++++++++++++++++++++++++++++++y++++++++++  +++++++++++y++++++++  +++  +++++++++++++++++++++++++++++++++++++  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/SixIsland_PatternBush/border.bin b/data/layouts/SixIsland_PatternBush/border.bin new file mode 100644 index 000000000..c1fe47df7 --- /dev/null +++ b/data/layouts/SixIsland_PatternBush/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_PatternBush/map.bin b/data/layouts/SixIsland_PatternBush/map.bin new file mode 100644 index 000000000..7cd07c6c8 --- /dev/null +++ b/data/layouts/SixIsland_PatternBush/map.bin @@ -0,0 +1 @@ + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 000 000 000 000 0 0 0 000 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 000 000 0 0 0 0 0 00 00000 0 0 0 00 0 0 000 000 000 000 0 000 0000 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00000 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00 0 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00 0 0 000 000 000 000 0 0 00 0 00 0 0 0 0 00000 00 0 0 00 0 000 000 000 00 0 0 0 0 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 00000 0 00 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 000 0 0 00 0 0 00 000 0 0 0 0 0 0 00 0 0 0 0 00000 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00 0 0 0 0 00 00000 0 0 000 0 0 000 000 00 0 0 0 0 0 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00000 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0000 000 0 0 00 000 000 000 00 0 0 0 0 0 00 0 00 0 00 00000 0 00 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 00000 00 0 0 000 000 0 00 0 0 0 0 0 0 0 0 0 00 0 00 0 0 000 00 0 0 0 0 000 00 00 0 0 0 0 00 00000 0 00 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 00000 00 0 00 0 000 000 000 000 0 000 0000 000 0 0 0 0 0 0 0 0 00 0 0 00 00 0 0 0 0 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 000 000 000 00 0 0 0 0 00000 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 00000 00 0 0000 000 000 0 000 000 000 0 000 000 0 0 0 0 00 0 0 0 0 000 00 0 0 0 0 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 00 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 00 00000000222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_RuinValley/border.bin b/data/layouts/SixIsland_RuinValley/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/SixIsland_RuinValley/border.bin differ diff --git a/data/layouts/SixIsland_RuinValley/map.bin b/data/layouts/SixIsland_RuinValley/map.bin new file mode 100644 index 000000000..848cbec26 Binary files /dev/null and b/data/layouts/SixIsland_RuinValley/map.bin differ diff --git a/data/layouts/SixIsland_WaterPath/border.bin b/data/layouts/SixIsland_WaterPath/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/SixIsland_WaterPath/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_WaterPath/map.bin b/data/layouts/SixIsland_WaterPath/map.bin new file mode 100644 index 000000000..42f48165b Binary files /dev/null and b/data/layouts/SixIsland_WaterPath/map.bin differ diff --git a/data/layouts/ThreeIsland/border.bin b/data/layouts/ThreeIsland/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/ThreeIsland/border.bin differ diff --git a/data/layouts/ThreeIsland/map.bin b/data/layouts/ThreeIsland/map.bin new file mode 100644 index 000000000..523f3e70c --- /dev/null +++ b/data/layouts/ThreeIsland/map.bin @@ -0,0 +1 @@ +$33333$333332222222222$'&'&%$%$%00 00303000003030000000000000001010000000 00000 00 00 00000033333(0)0*0+00000000000000123 00 00 00 00000089:;00000@Abc 0000000001030300030300010000000000 00000 00 00 0000000000033333 00000 00000000000000 0001003030000100000000000 00 00 0000000{1|1}1~11&%$%$%0000 0HIJKhiiiii00000PQRSpqklll0000 0XYZ[pqsqqq$%$'00000`abpqsqqq0010003030pqsqqq0010000100pqsqqq0000 00 0000pqsqqq000000000pqsqqq303001010000100pqsqqq000000001010000pqsqqq000pqsqqqhiiiiij000hiiiqsqqqpklllmr000pqklllqqqpsqqqur000pqsqqqqqqqpsqqqur000pqsqqqqqqq$'psqqqur000pqsqqqqqqq \ No newline at end of file diff --git a/data/layouts/ThreeIsland_BerryForest/border.bin b/data/layouts/ThreeIsland_BerryForest/border.bin new file mode 100644 index 000000000..7797e033b --- /dev/null +++ b/data/layouts/ThreeIsland_BerryForest/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/ThreeIsland_BerryForest/map.bin b/data/layouts/ThreeIsland_BerryForest/map.bin new file mode 100644 index 000000000..e98d91119 --- /dev/null +++ b/data/layouts/ThreeIsland_BerryForest/map.bin @@ -0,0 +1 @@ +0222 000 00 00 0 00 00 00 02 0 0200 00 00 00 00 0 0 0 0002 0 0 02 000 02 0 0000 00 0 02 0 02 00000 0 0 0 002 0 0 0220 0 0 002 0 0 0 02 00 00 02 0 0 0 0 02 0 0 0 0 00 0 0 00 0 0 0202 02 00 0 0 0 0 0 0 0 0 00 0 0 0 00 00 00 0 0 0 0 0 0 0 0 0 0 0 00000000 0 0 0000002 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 00 00 0 0 0 00 000 00 0 0 0 02 0 02 0000 0 0 00000 0 000 00 0 0 0 0 02000 000 00 000$%%%%%%%&0 00 00 0 00 0 00 0 00 000 00 00000000 02 0 0200 00 00002 00 00 0 000000000 00 00 00 0000000 0202 0 0 0 0 00 0 0 0 00 020 0000000020002020 0 0 02 0 0 0 0 02 0 0 00 0 020222 0 0 02 00 0 0 0 00 0 02 00002 0 0 002222 0 00 0 0 0 0 000000202220 0 00 0 0 0 0 0 02 0202 00 0 002222 00 00 0 0 0 0 0 0000 0 00200000 00222 0 000000 00 0 02 0 0 0 00 0200 020 00 00 00200000 0200 000 00 0 0 000 00000000000000002 02 00000000 0000 02 0 00 00 00 020 000000020000002000000002 000 0 0 0 0 00 00 00000020 00 000$%%%%%%%%& 0 000000 0 00 0020 02 0000 0 00 0 0 0 0 0 0 0 0 0 02 0 00 00 0 0 020000002 00 00 00 0 0 0 0 0 0 0 0 000 0 00 000002000 0 0 0 002 0 02 0 02 0 0 0 00 0 0000222 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 00020 0 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 0 0 0 002 0202$%%%%&0 0 00 00 00 00 02 020 00000 0 0 0000000000000202 002 0 02 0 02 0 0 0 0020020020020 00 0 0 0 0000 0 0 0222 0 0 0 02 0 02 0 02 0 \ No newline at end of file diff --git a/data/layouts/ThreeIsland_BondBridge/border.bin b/data/layouts/ThreeIsland_BondBridge/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/ThreeIsland_BondBridge/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/ThreeIsland_BondBridge/map.bin b/data/layouts/ThreeIsland_BondBridge/map.bin new file mode 100644 index 000000000..c554c03e3 Binary files /dev/null and b/data/layouts/ThreeIsland_BondBridge/map.bin differ diff --git a/data/layouts/ThreeIsland_DunsparceTunnel/border.bin b/data/layouts/ThreeIsland_DunsparceTunnel/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/ThreeIsland_DunsparceTunnel/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/ThreeIsland_DunsparceTunnel/map.bin b/data/layouts/ThreeIsland_DunsparceTunnel/map.bin new file mode 100644 index 000000000..4623ea1b3 --- /dev/null +++ b/data/layouts/ThreeIsland_DunsparceTunnel/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/ThreeIsland_House1/border.bin b/data/layouts/ThreeIsland_House1/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/ThreeIsland_House1/border.bin differ diff --git a/data/layouts/ThreeIsland_House1/map.bin b/data/layouts/ThreeIsland_House1/map.bin new file mode 100644 index 000000000..871205cfa --- /dev/null +++ b/data/layouts/ThreeIsland_House1/map.bin @@ -0,0 +1 @@ +=>`89EF& h@AM1N1.311111H1I111 1 1 1 1 1 1 1 1 1 1V1 1 1 1o1ef 1 1 1 1^ 1 1 1o1mn 1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/ThreeIsland_Port/border.bin b/data/layouts/ThreeIsland_Port/border.bin new file mode 100644 index 000000000..75f2c916c --- /dev/null +++ b/data/layouts/ThreeIsland_Port/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/ThreeIsland_Port/map.bin b/data/layouts/ThreeIsland_Port/map.bin new file mode 100644 index 000000000..44f29053c Binary files /dev/null and b/data/layouts/ThreeIsland_Port/map.bin differ diff --git a/data/layouts/TwoIsland/border.bin b/data/layouts/TwoIsland/border.bin new file mode 100644 index 000000000..4531975c7 Binary files /dev/null and b/data/layouts/TwoIsland/border.bin differ diff --git a/data/layouts/TwoIsland/map.bin b/data/layouts/TwoIsland/map.bin new file mode 100644 index 000000000..60e9c0bc9 Binary files /dev/null and b/data/layouts/TwoIsland/map.bin differ diff --git a/data/layouts/TwoIsland_CapeBrink/border.bin b/data/layouts/TwoIsland_CapeBrink/border.bin new file mode 100644 index 000000000..75f2c916c --- /dev/null +++ b/data/layouts/TwoIsland_CapeBrink/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/TwoIsland_CapeBrink/map.bin b/data/layouts/TwoIsland_CapeBrink/map.bin new file mode 100644 index 000000000..d48f75cd4 --- /dev/null +++ b/data/layouts/TwoIsland_CapeBrink/map.bin @@ -0,0 +1 @@ +vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvDEvvvvvvvvvvvDEvvvvvvvvvLMvvvvvvvvvvvLMvvvvvvvvvvvvvDEvvvDEvvv//////////s}vLMvvvLMssz2131313131 3!3!3"3#3|ss}vvvvvvsszs00 00 066666u|ssvDEvszss 00000uqu|s}LMvszsss 00 00 041m|s}vzssss 0 0 00 00 00 00 0uqqu|svpsssss 0 0 000000000uqquu|}tssssx00 00 0uqqu|tssss 000p000uqqlmutssss 0 0 0p00 0uqqqquutssss 0 0 0p031{z3100uqqqquutssss 0 0 0x||'''|||}qqqquutsss{|00y||///|||qqqqtss{|00 0|777||sqqqqqqtssqqs 0 0 0us{qqqqqts{|s 0 0 0u{sqqqqqtsqqss 0 0 0u0sqqqqqtsqqs{ 0 0ussqqqqqtsqqsqs 0 0ussqqqqqtsqq{s 0 0ussqqqqqtsqqqs{00}ssqqqqqtsqqq{33ssqqqqqqqqqs33ssqqqqqqqqqqqs333131313131313131psqqqqqqqqqqqs33}3~3000|3}3}3sqqqqqqqqqqqs3333}3}3}3333qqqqqqqqqqqs3333333333{||qqqqqqqq{||||33333qqq{|| \ No newline at end of file diff --git a/data/layouts/TwoIsland_JoyfulGameCorner/border.bin b/data/layouts/TwoIsland_JoyfulGameCorner/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/TwoIsland_JoyfulGameCorner/border.bin differ diff --git a/data/layouts/TwoIsland_JoyfulGameCorner/map.bin b/data/layouts/TwoIsland_JoyfulGameCorner/map.bin new file mode 100644 index 000000000..c445c5cb3 Binary files /dev/null and b/data/layouts/TwoIsland_JoyfulGameCorner/map.bin differ diff --git a/data/layouts/UndergroundPath_EastWestTunnel/border.bin b/data/layouts/UndergroundPath_EastWestTunnel/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UndergroundPath_EastWestTunnel/border.bin differ diff --git a/data/layouts/UndergroundPath_EastWestTunnel/map.bin b/data/layouts/UndergroundPath_EastWestTunnel/map.bin new file mode 100644 index 000000000..b6890bacd --- /dev/null +++ b/data/layouts/UndergroundPath_EastWestTunnel/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UndergroundPath_Entrance/border.bin b/data/layouts/UndergroundPath_Entrance/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UndergroundPath_Entrance/border.bin differ diff --git a/data/layouts/UndergroundPath_Entrance/map.bin b/data/layouts/UndergroundPath_Entrance/map.bin new file mode 100644 index 000000000..58cc0f850 --- /dev/null +++ b/data/layouts/UndergroundPath_Entrance/map.bin @@ -0,0 +1 @@ +22222222222222662222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UndergroundPath_NorthSouthTunnel/border.bin b/data/layouts/UndergroundPath_NorthSouthTunnel/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UndergroundPath_NorthSouthTunnel/border.bin differ diff --git a/data/layouts/UndergroundPath_NorthSouthTunnel/map.bin b/data/layouts/UndergroundPath_NorthSouthTunnel/map.bin new file mode 100644 index 000000000..4772a43cd --- /dev/null +++ b/data/layouts/UndergroundPath_NorthSouthTunnel/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UnknownMap_00_00/border.bin b/data/layouts/UnknownMap_00_00/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/UnknownMap_00_00/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnknownMap_00_00/map.bin b/data/layouts/UnknownMap_00_00/map.bin new file mode 100644 index 000000000..8616a5f1b Binary files /dev/null and b/data/layouts/UnknownMap_00_00/map.bin differ diff --git a/data/layouts/UnknownMap_00_01/border.bin b/data/layouts/UnknownMap_00_01/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/UnknownMap_00_01/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnknownMap_00_01/map.bin b/data/layouts/UnknownMap_00_01/map.bin new file mode 100644 index 000000000..93050f0f5 --- /dev/null +++ b/data/layouts/UnknownMap_00_01/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UnknownMap_00_02/border.bin b/data/layouts/UnknownMap_00_02/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/UnknownMap_00_02/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnknownMap_00_02/map.bin b/data/layouts/UnknownMap_00_02/map.bin new file mode 100644 index 000000000..08209eaca --- /dev/null +++ b/data/layouts/UnknownMap_00_02/map.bin @@ -0,0 +1 @@ + !3'3'3'3$3%3%3&3'3'3'3"3#()3D3D343D3D3D3D363D3D3*3+()3D3,3<89:;>.3D3*3+()3D3D353@ABC73D3D3*3+()3D3-3=HIJK?/3D3*3+()3D3D3F3F3F3F3F3F3D3D3*3+013D3D3D3D3D3D3D3D3D3D32332222 \ No newline at end of file diff --git a/data/layouts/UnknownMap_00_03/border.bin b/data/layouts/UnknownMap_00_03/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/UnknownMap_00_03/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnknownMap_00_03/map.bin b/data/layouts/UnknownMap_00_03/map.bin new file mode 100644 index 000000000..c68e13ec3 Binary files /dev/null and b/data/layouts/UnknownMap_00_03/map.bin differ diff --git a/data/layouts/UnknownMap_00_04/border.bin b/data/layouts/UnknownMap_00_04/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnknownMap_00_04/border.bin differ diff --git a/data/layouts/UnknownMap_00_04/map.bin b/data/layouts/UnknownMap_00_04/map.bin new file mode 100644 index 000000000..829e21554 --- /dev/null +++ b/data/layouts/UnknownMap_00_04/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UnknownMap_03_50/border.bin b/data/layouts/UnknownMap_03_50/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/UnknownMap_03_50/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/UnknownMap_03_50/map.bin b/data/layouts/UnknownMap_03_50/map.bin new file mode 100644 index 000000000..cbd97e361 --- /dev/null +++ b/data/layouts/UnknownMap_03_50/map.bin @@ -0,0 +1 @@ ++ \ No newline at end of file diff --git a/data/layouts/UnknownMap_03_51/border.bin b/data/layouts/UnknownMap_03_51/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/UnknownMap_03_51/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/UnknownMap_03_51/map.bin b/data/layouts/UnknownMap_03_51/map.bin new file mode 100644 index 000000000..e6859e745 --- /dev/null +++ b/data/layouts/UnknownMap_03_51/map.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnknownMap_03_52/border.bin b/data/layouts/UnknownMap_03_52/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/UnknownMap_03_52/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/UnknownMap_03_52/map.bin b/data/layouts/UnknownMap_03_52/map.bin new file mode 100644 index 000000000..7f730c596 Binary files /dev/null and b/data/layouts/UnknownMap_03_52/map.bin differ diff --git a/data/layouts/UnknownMap_03_53/border.bin b/data/layouts/UnknownMap_03_53/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/UnknownMap_03_53/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/UnknownMap_03_53/map.bin b/data/layouts/UnknownMap_03_53/map.bin new file mode 100644 index 000000000..616f50967 --- /dev/null +++ b/data/layouts/UnknownMap_03_53/map.bin @@ -0,0 +1 @@ +qqqqqqu+++++++++++++++qqqqqqu+++++++++++++++qqqqqqu+++++++++++++++qqqqqqu+++++++++++++++qqqqqqu+++++++++++++++||||||+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D54D8/border.bin b/data/layouts/UnusedLayout_82D54D8/border.bin new file mode 100644 index 000000000..c1b82435c --- /dev/null +++ b/data/layouts/UnusedLayout_82D54D8/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D54D8/map.bin b/data/layouts/UnusedLayout_82D54D8/map.bin new file mode 100644 index 000000000..b51210332 --- /dev/null +++ b/data/layouts/UnusedLayout_82D54D8/map.bin @@ -0,0 +1,2 @@ +  +'VTPTQ/eUXYE2222]2g22`2a2222222222222222222222BB2222222222222222 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D6144/border.bin b/data/layouts/UnusedLayout_82D6144/border.bin new file mode 100644 index 000000000..f496f458e Binary files /dev/null and b/data/layouts/UnusedLayout_82D6144/border.bin differ diff --git a/data/layouts/UnusedLayout_82D6144/map.bin b/data/layouts/UnusedLayout_82D6144/map.bin new file mode 100644 index 000000000..cc0294a80 --- /dev/null +++ b/data/layouts/UnusedLayout_82D6144/map.bin @@ -0,0 +1 @@ +32222x2p2p2p2p22h2h2h2x2p2p2p2p2p2y2h2h2h232h2h2h2h2h2h2h2h2h22g2h2h2h2h2h2h2h2f2Z2abh2h2h2h2h2ab \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D6490/border.bin b/data/layouts/UnusedLayout_82D6490/border.bin new file mode 100644 index 000000000..efef023e6 --- /dev/null +++ b/data/layouts/UnusedLayout_82D6490/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D6490/map.bin b/data/layouts/UnusedLayout_82D6490/map.bin new file mode 100644 index 000000000..f84061f08 --- /dev/null +++ b/data/layouts/UnusedLayout_82D6490/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222 3 3222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D6654/border.bin b/data/layouts/UnusedLayout_82D6654/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82D6654/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D6654/map.bin b/data/layouts/UnusedLayout_82D6654/map.bin new file mode 100644 index 000000000..7865fdc7c --- /dev/null +++ b/data/layouts/UnusedLayout_82D6654/map.bin @@ -0,0 +1 @@ +3333373333333333333333333333733333333333333333733333333373333337 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D672C/border.bin b/data/layouts/UnusedLayout_82D672C/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82D672C/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D672C/map.bin b/data/layouts/UnusedLayout_82D672C/map.bin new file mode 100644 index 000000000..617346322 --- /dev/null +++ b/data/layouts/UnusedLayout_82D672C/map.bin @@ -0,0 +1 @@ +3333333333733333333373333333333333333333333333333333333373333337 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D6C34/border.bin b/data/layouts/UnusedLayout_82D6C34/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_82D6C34/border.bin differ diff --git a/data/layouts/UnusedLayout_82D6C34/map.bin b/data/layouts/UnusedLayout_82D6C34/map.bin new file mode 100644 index 000000000..35968a7fd Binary files /dev/null and b/data/layouts/UnusedLayout_82D6C34/map.bin differ diff --git a/data/layouts/UnusedLayout_82D75F0/border.bin b/data/layouts/UnusedLayout_82D75F0/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82D75F0/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D75F0/map.bin b/data/layouts/UnusedLayout_82D75F0/map.bin new file mode 100644 index 000000000..5515d00cf --- /dev/null +++ b/data/layouts/UnusedLayout_82D75F0/map.bin @@ -0,0 +1 @@ +yzfg8898x88no@@A@VW33v3w3+3+3+3+33^3_3+3{3|3|3}3,3,3,3,3,3,3+33>2>23,3,3,3j7k7E3+33>2>23,3,3D3r7s7E3+33333,3,3,3,3,3,3F3G3,3,3,3,3,3,3,3,3,3N7O7,3,3,3LM,3,3,3,3 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D7674/border.bin b/data/layouts/UnusedLayout_82D7674/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82D7674/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D7674/map.bin b/data/layouts/UnusedLayout_82D7674/map.bin new file mode 100644 index 000000000..5a3ac8cb6 --- /dev/null +++ b/data/layouts/UnusedLayout_82D7674/map.bin @@ -0,0 +1 @@ +33333333333333333333733337 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D7CC8/border.bin b/data/layouts/UnusedLayout_82D7CC8/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82D7CC8/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D7CC8/map.bin b/data/layouts/UnusedLayout_82D7CC8/map.bin new file mode 100644 index 000000000..3fbcd6043 --- /dev/null +++ b/data/layouts/UnusedLayout_82D7CC8/map.bin @@ -0,0 +1 @@ +37733333333333333333733337 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D88C8/border.bin b/data/layouts/UnusedLayout_82D88C8/border.bin new file mode 100644 index 000000000..f496f458e Binary files /dev/null and b/data/layouts/UnusedLayout_82D88C8/border.bin differ diff --git a/data/layouts/UnusedLayout_82D88C8/map.bin b/data/layouts/UnusedLayout_82D88C8/map.bin new file mode 100644 index 000000000..35c1badac --- /dev/null +++ b/data/layouts/UnusedLayout_82D88C8/map.bin @@ -0,0 +1 @@ +]x2p2p2p2p2p22222e2x2p2p2p2p22h2h2h2h2h22h22h2h22\2h2h2h2h2h2q2Y2Z2Y2Z2p2y2h2h2h2h22d6h2h2h2h2ababh2h2h2h2h2h2h22h2h2h222\2h2h2h2dh2h2h2x22h2h2h222h2h2h222h2h2h2\2h2h2h2q22d6h2h2t6 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D9B24/border.bin b/data/layouts/UnusedLayout_82D9B24/border.bin new file mode 100644 index 000000000..03bcafef1 --- /dev/null +++ b/data/layouts/UnusedLayout_82D9B24/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82D9B24/map.bin b/data/layouts/UnusedLayout_82D9B24/map.bin new file mode 100644 index 000000000..d5e7fd825 Binary files /dev/null and b/data/layouts/UnusedLayout_82D9B24/map.bin differ diff --git a/data/layouts/UnusedLayout_82DA7C8/border.bin b/data/layouts/UnusedLayout_82DA7C8/border.bin new file mode 100644 index 000000000..03bcafef1 --- /dev/null +++ b/data/layouts/UnusedLayout_82DA7C8/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DA7C8/map.bin b/data/layouts/UnusedLayout_82DA7C8/map.bin new file mode 100644 index 000000000..0074b6e55 Binary files /dev/null and b/data/layouts/UnusedLayout_82DA7C8/map.bin differ diff --git a/data/layouts/UnusedLayout_82DB46C/border.bin b/data/layouts/UnusedLayout_82DB46C/border.bin new file mode 100644 index 000000000..03bcafef1 --- /dev/null +++ b/data/layouts/UnusedLayout_82DB46C/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DB46C/map.bin b/data/layouts/UnusedLayout_82DB46C/map.bin new file mode 100644 index 000000000..540798144 Binary files /dev/null and b/data/layouts/UnusedLayout_82DB46C/map.bin differ diff --git a/data/layouts/UnusedLayout_82DB4F0/border.bin b/data/layouts/UnusedLayout_82DB4F0/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DB4F0/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DB4F0/map.bin b/data/layouts/UnusedLayout_82DB4F0/map.bin new file mode 100644 index 000000000..6ca8b4e61 --- /dev/null +++ b/data/layouts/UnusedLayout_82DB4F0/map.bin @@ -0,0 +1 @@ +333333333333733337 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DBBE0/border.bin b/data/layouts/UnusedLayout_82DBBE0/border.bin new file mode 100644 index 000000000..c3fe51511 --- /dev/null +++ b/data/layouts/UnusedLayout_82DBBE0/border.bin @@ -0,0 +1 @@ +pppp \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DBBE0/map.bin b/data/layouts/UnusedLayout_82DBBE0/map.bin new file mode 100644 index 000000000..6e9f6adb6 --- /dev/null +++ b/data/layouts/UnusedLayout_82DBBE0/map.bin @@ -0,0 +1 @@ +ppppppprIJJxyz{bJJ`tp1ppppppppppprIJJxyz{bJJ`tpppppppprk0rIJJxyz{bJJ`s0mtppppprks0jIJJxyz{bJJ`k00mtpppxsqsk00HIJJxyz{bJJ`a22umtppskssHIJJxyz{bJJ`auuqutpssqss0HIJJKLMNOJJ`a2uuquuyssqss00PQRRSTUVWRRhi22uuquuyssks0X2Y2Z2Z2[\]^_Z2Z2p2q22uuquusssqs000w2o22c2d2e2f2g2222222uuquusssqs00w2o2l2m2n22222uut}usssqs0000000t2u2v2000000t}uuqusssq{00000|2}2~200000ut}ut}ss{qs0000000000000t}uquus{sq{000000000ut}t}up{s{|{00000t}uququps{qsq{||||000||||}t}ququpp{{{||000}qququppsqsqqqqt000qqqt|}t}pppsq{||||}q]^0^0^0_q{|||}qquppp{||]^0^0^0_|||}pppp]^0^0^0_pppppppppppppp]^0^0^0^0V0V0V0V0V0V0Wppppppppppppppppp]^0^0^0^0^0^0^0^0^0^0_pppppppppppppppp22pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DBDD8/border.bin b/data/layouts/UnusedLayout_82DBDD8/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DBDD8/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DBDD8/map.bin b/data/layouts/UnusedLayout_82DBDD8/map.bin new file mode 100644 index 000000000..f8cf1725d --- /dev/null +++ b/data/layouts/UnusedLayout_82DBDD8/map.bin @@ -0,0 +1 @@ +2222222222222222 6222222222222222222201111111111222222011111111112222220111111111122222201111111111222222%#$"#$"#$"#&22222-+6{*+6{*+6{*+622222222222222222222 22222222222222222 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DBFB8/border.bin b/data/layouts/UnusedLayout_82DBFB8/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DBFB8/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DBFB8/map.bin b/data/layouts/UnusedLayout_82DBFB8/map.bin new file mode 100644 index 000000000..059ce30fe --- /dev/null +++ b/data/layouts/UnusedLayout_82DBFB8/map.bin @@ -0,0 +1 @@ +22222222 22 22 22 2 2 22 2222 2222 22222 2 2 22222222 222 2222 2 2 22222 2 22222 2 2222222222222222 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2222222222 222 222 2 22222 2662222222 2 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DC4EC/border.bin b/data/layouts/UnusedLayout_82DC4EC/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DC4EC/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DC4EC/map.bin b/data/layouts/UnusedLayout_82DC4EC/map.bin new file mode 100644 index 000000000..6103ad0c2 --- /dev/null +++ b/data/layouts/UnusedLayout_82DC4EC/map.bin @@ -0,0 +1 @@ +6@kcmE@kcmE@kc''@kcmE7>HsuMHsuMHs////uM?>PQ:2;2;2TUPQ:2;2;2TUPQ:2;2;2;2;2;2;2;2TU?>XY=28282\]XY=28282\]XY=282828282828282\]?>:;2<28282;2;2:;2<28282;2;2:2;2<282828282w682828282;2;2?>=2828282828282w68282VW8282=282`2VWa282=28282828282a2?>=2828282VW82=282`2^_a282=282`2^_a282=282828282VW?>=28282`2^_b=2828282828282=2828282b8282=2828282`2^_?6@klvlmElvllCDE@lvlvmE@kv'vmE7>Hst~tuMt~ttKij/t~t~uMHs~/~//?>PQ:2;2;2TU:2;2;2;2;2qr66;2;2;2TUPQ:2;2;2;2|2?>XY=28282\]=2VW8282yz828282\]XY=2VppW?>:;2<28282;2|2=2^_a282;256=282828282;2;2h;2<2^xx_?>=2828282828282=2828282828282=2828282828282=28282`2828282?>=2828282828282=2828282828282=2828282828282=2828282828282?>=28282de8282=28282de8282=28282de8282=28282de8282? \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DC60C/border.bin b/data/layouts/UnusedLayout_82DC60C/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DC60C/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DC60C/map.bin b/data/layouts/UnusedLayout_82DC60C/map.bin new file mode 100644 index 000000000..0f6829f9c Binary files /dev/null and b/data/layouts/UnusedLayout_82DC60C/map.bin differ diff --git a/data/layouts/UnusedLayout_82DC72C/border.bin b/data/layouts/UnusedLayout_82DC72C/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DC72C/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DC72C/map.bin b/data/layouts/UnusedLayout_82DC72C/map.bin new file mode 100644 index 000000000..9f3750fb4 Binary files /dev/null and b/data/layouts/UnusedLayout_82DC72C/map.bin differ diff --git a/data/layouts/UnusedLayout_82DC84C/border.bin b/data/layouts/UnusedLayout_82DC84C/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DC84C/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DC84C/map.bin b/data/layouts/UnusedLayout_82DC84C/map.bin new file mode 100644 index 000000000..2112fe799 Binary files /dev/null and b/data/layouts/UnusedLayout_82DC84C/map.bin differ diff --git a/data/layouts/UnusedLayout_82DCA70/border.bin b/data/layouts/UnusedLayout_82DCA70/border.bin new file mode 100644 index 000000000..f496f458e Binary files /dev/null and b/data/layouts/UnusedLayout_82DCA70/border.bin differ diff --git a/data/layouts/UnusedLayout_82DCA70/map.bin b/data/layouts/UnusedLayout_82DCA70/map.bin new file mode 100644 index 000000000..1df9e4804 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCA70/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222262226 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCB44/border.bin b/data/layouts/UnusedLayout_82DCB44/border.bin new file mode 100644 index 000000000..f496f458e Binary files /dev/null and b/data/layouts/UnusedLayout_82DCB44/border.bin differ diff --git a/data/layouts/UnusedLayout_82DCB44/map.bin b/data/layouts/UnusedLayout_82DCB44/map.bin new file mode 100644 index 000000000..bad63f412 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCB44/map.bin @@ -0,0 +1,2 @@ +0no +2  hvw22$2$2$2$2$282p2~2292#2#2#2#2#2#2#2#2#2#292#2#2#2+2JK,2#2#2#292#2#2#2+2RS,2#2#2#292#2#2#2#2#2#2#2#2"2"292#2#2 #2#2#2#2** \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCC40/border.bin b/data/layouts/UnusedLayout_82DCC40/border.bin new file mode 100644 index 000000000..f496f458e Binary files /dev/null and b/data/layouts/UnusedLayout_82DCC40/border.bin differ diff --git a/data/layouts/UnusedLayout_82DCC40/map.bin b/data/layouts/UnusedLayout_82DCC40/map.bin new file mode 100644 index 000000000..399d05705 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCC40/map.bin @@ -0,0 +1,2 @@ +  +        6$2$2$2$2$2$2$2$2$2$2692#2#2#2#2#2#2#2#2#2#2#292#2#2#252626272#2#2#2#292#2#2#2=2>2>2?2#2#2#2#292#2#2#2E2F2F2G2#2#2#2#22#2#2#2#2#2#2#2#2#2#2"2#2#2#2#2#2#2#2#2#2#2* \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCCD4/border.bin b/data/layouts/UnusedLayout_82DCCD4/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCCD4/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCCD4/map.bin b/data/layouts/UnusedLayout_82DCCD4/map.bin new file mode 100644 index 000000000..43f11b194 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCCD4/map.bin @@ -0,0 +1 @@ +023333332332772333327723333333333333 333 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCD68/border.bin b/data/layouts/UnusedLayout_82DCD68/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCD68/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCD68/map.bin b/data/layouts/UnusedLayout_82DCD68/map.bin new file mode 100644 index 000000000..632e1e36a --- /dev/null +++ b/data/layouts/UnusedLayout_82DCD68/map.bin @@ -0,0 +1 @@ +vw62223336333277233333772333333333333 333 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCDFC/border.bin b/data/layouts/UnusedLayout_82DCDFC/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCDFC/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCDFC/map.bin b/data/layouts/UnusedLayout_82DCDFC/map.bin new file mode 100644 index 000000000..8bbd6c517 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCDFC/map.bin @@ -0,0 +1 @@ +62233322333333337723333377333333333 333 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCF00/border.bin b/data/layouts/UnusedLayout_82DCF00/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCF00/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DCF00/map.bin b/data/layouts/UnusedLayout_82DCF00/map.bin new file mode 100644 index 000000000..017298e71 --- /dev/null +++ b/data/layouts/UnusedLayout_82DCF00/map.bin @@ -0,0 +1 @@ +8()*:888:8x88:H0 2B@@@B@VWBP3+3+3+3+3+3+3+3+3+33^3_3+3+3D3,3,3,3,3,3,3{3|3|3|3|3}3+3h7i7,3,3,3,3,332H6I623+3p7q7E3,3,3,3,33>2P6Q623F3G3,3,3,3,3,3,3333333N7O7,3,3,3,3LM,3,3,3,3,3,3 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DD004/border.bin b/data/layouts/UnusedLayout_82DD004/border.bin new file mode 100644 index 000000000..19d906679 --- /dev/null +++ b/data/layouts/UnusedLayout_82DD004/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DD004/map.bin b/data/layouts/UnusedLayout_82DD004/map.bin new file mode 100644 index 000000000..17a611343 --- /dev/null +++ b/data/layouts/UnusedLayout_82DD004/map.bin @@ -0,0 +1 @@ +8()*:888:8888:@02B@@@BT7UIB+3+3+3+3+3+3+3+3+3\3?3]3Q3+3+3,3,3,3,3,3,3,3{3|3|3|3}3,3+3D3~777E3,3,33>2>2>23,3+3,3777E3,3,33>2>2>23,3+3G3G3,3,3,3,3,333333,3+3O7O7,3,3,3,3,3,3,3,3,3,3,3 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_82DD0DC/border.bin b/data/layouts/UnusedLayout_82DD0DC/border.bin new file mode 100644 index 000000000..f496f458e Binary files /dev/null and b/data/layouts/UnusedLayout_82DD0DC/border.bin differ diff --git a/data/layouts/UnusedLayout_82DD0DC/map.bin b/data/layouts/UnusedLayout_82DD0DC/map.bin new file mode 100644 index 000000000..c57c99c7b --- /dev/null +++ b/data/layouts/UnusedLayout_82DD0DC/map.bin @@ -0,0 +1 @@ +        $2$2$2$2$2$2$2$2$2$292#24266<2#2#2#2#292#24266<2#2#2#2#292#2#2#2#2#2#2#2#2#292#2#2 #2#2#2#2#2 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833614C/border.bin b/data/layouts/UnusedLayout_833614C/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/UnusedLayout_833614C/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833614C/map.bin b/data/layouts/UnusedLayout_833614C/map.bin new file mode 100644 index 000000000..a4b5b8b85 --- /dev/null +++ b/data/layouts/UnusedLayout_833614C/map.bin @@ -0,0 +1 @@ ++++++  +++++++++++++++    .1-  ++++++++++++11111111++++++++++++11111111-   +++++++ .111111111111+++++++11111111111111-   +++111111111111111111+++111111111111111111+++111111111111111111- +&1111111111111111111+&1111111111111++++   .1111111111111+   .111111111111111%+11111111111111%++11111111111%++++++&111111111+++++++++11111111%+++++++++111111%++++++++++&1111++++++++++++++1111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/UnusedLayout_83377F0/border.bin b/data/layouts/UnusedLayout_83377F0/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/UnusedLayout_83377F0/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/UnusedLayout_83377F0/map.bin b/data/layouts/UnusedLayout_83377F0/map.bin new file mode 100644 index 000000000..5bc807eea --- /dev/null +++ b/data/layouts/UnusedLayout_83377F0/map.bin @@ -0,0 +1 @@ ++++++++++++++++++++++++++++           +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++              ++++++++++++++++++++++++++++++++++++1111111111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1111111111111+++++++++++++++++++++++++++++++++   .1111111111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   .1111111111111+++++++++++++++++++++++++++++++++1111111111111- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1111111111111111- +++++++++++++++++++++++++++++++111111111111111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++111111111111111111++++++++++++++++++++++++++++++ .1111111111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .1111111111111++++++++++++++++++++++++++++++11qqq1111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11qqq1111++++++++++++++++++++++++++++++qqqqqqqq111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++qqqqqqqqqqq111++++++++++++++++++++++++++++++qqqqqqqqqqq111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++qqqqqqqqqqqqqq111++++++++++++++++++++++++++++++qqqqqqqqqq11%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++qqqqqqqqqqqqq11%++++++++++++++++++++++++++++++qqqqqqqy111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++qqqqqqqqqqy111+++++++++++++++++++++++++++++++&qqqqqy1111%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&qqqqqyyyy1111%++++++++++++++++++++++++++++++++yyq1111%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yyq1111111%+++++++++++++++++++++++++++++++++&y111%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&y111111%++++++++++++++++++++++++++++++++++++++1111%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1111%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/UnusedLayout_8338354/border.bin b/data/layouts/UnusedLayout_8338354/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/UnusedLayout_8338354/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/UnusedLayout_8338354/map.bin b/data/layouts/UnusedLayout_8338354/map.bin new file mode 100644 index 000000000..667f4a779 --- /dev/null +++ b/data/layouts/UnusedLayout_8338354/map.bin @@ -0,0 +1 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++     ++++++++++++    .1111++++++++++++11111111- ++++++++++1111111111+++++++   .1111111111+++++++1111111111111- +++++111111111111111++++ .1111111111++++11qqq1111++++qqqqqqqq111++++qqqqqqqqqqq111++++qqqqqqqqqqq111++++qqqqqqqqqqq111++++qqqqqqqqqq1%++++qqqqqqqy11++++&qqqqqy1111+++++yyq1111%+++++&y111%++++++++++1111%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/UnusedLayout_8338738/border.bin b/data/layouts/UnusedLayout_8338738/border.bin new file mode 100644 index 000000000..d9994d6cd --- /dev/null +++ b/data/layouts/UnusedLayout_8338738/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/UnusedLayout_8338738/map.bin b/data/layouts/UnusedLayout_8338738/map.bin new file mode 100644 index 000000000..ce93426c5 --- /dev/null +++ b/data/layouts/UnusedLayout_8338738/map.bin @@ -0,0 +1 @@ ++++++++++++++++++++++++++,21313131313141)++++++++,213131hiiiiij313141)+++++,hiiqqqqqqqiij)++++,21pqqqyyyqqqr3131)++,hqqyz 000xyqij 0*++,pqz 0 0 00000pqqr 0*++,pqr00 0hij00xqqj*++,pqr000pqr000pqqr*++,pqr00 0xyz0 00pqqr*++,pqqj0 0 00 00 00pqz*++,xqr0 0 00 0 00hqqr"1++0$xqij0 0000pqz*++++0$xyr00 0 0hqz"1+++++0#$xz 0 000xyz"1++++++++0#########1++++ \ No newline at end of file diff --git a/data/layouts/UnusedLayout_8338B4C/border.bin b/data/layouts/UnusedLayout_8338B4C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_8338B4C/border.bin differ diff --git a/data/layouts/UnusedLayout_8338B4C/map.bin b/data/layouts/UnusedLayout_8338B4C/map.bin new file mode 100644 index 000000000..b9381326f --- /dev/null +++ b/data/layouts/UnusedLayout_8338B4C/map.bin @@ -0,0 +1 @@ +=>9{|}PQ9=>EF~1wXEFM1N11111111M1N1V1 1 1 1 1 1 1 1 1 1 1^ 1 1 1o1efg1 1 1 11 1 1 1o1mng1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_8338E90/border.bin b/data/layouts/UnusedLayout_8338E90/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_8338E90/border.bin differ diff --git a/data/layouts/UnusedLayout_8338E90/map.bin b/data/layouts/UnusedLayout_8338E90/map.bin new file mode 100644 index 000000000..a5391187c --- /dev/null +++ b/data/layouts/UnusedLayout_8338E90/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833902C/border.bin b/data/layouts/UnusedLayout_833902C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_833902C/border.bin differ diff --git a/data/layouts/UnusedLayout_833902C/map.bin b/data/layouts/UnusedLayout_833902C/map.bin new file mode 100644 index 000000000..4573c1444 --- /dev/null +++ b/data/layouts/UnusedLayout_833902C/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833B6EC/border.bin b/data/layouts/UnusedLayout_833B6EC/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/UnusedLayout_833B6EC/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833B6EC/map.bin b/data/layouts/UnusedLayout_833B6EC/map.bin new file mode 100644 index 000000000..d1385e8cb --- /dev/null +++ b/data/layouts/UnusedLayout_833B6EC/map.bin @@ -0,0 +1,3 @@ +'''///BBBBBBBBB///2222222BBBBBBBBB7772222222BBBBBBBBB !!& %"22222222BBBBBBBBB#     $22222222BBBBBBBBBC C C C C C +C $BBBBBBBBBBBB()BBBBBBBBBBBBB2222BBBBB*,BBBBBBBBBBBBB2222BBB22*,BBBBBBBBBBBWCBBBBXCBBB ###1,22BBBBBBBBBBBBBBBBB*++++0###!BBBBBBBBBBB*::::::::,BBBBBBBBBBB22BBBWC C C C C +C::CXCBBBB22BBBBBBBBB3,3,32BBBBB2222222222BBBBBBBBB3-3-32BBBBBBU22222222225-3'4222222222222222227'-622222U2222222222222222223./22222UV3012UVUUV3./VBFUUVVBBU3012VBBBUVBBBBBUVBBB \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833BE30/border.bin b/data/layouts/UnusedLayout_833BE30/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/UnusedLayout_833BE30/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_833BE30/map.bin b/data/layouts/UnusedLayout_833BE30/map.bin new file mode 100644 index 000000000..13a635e49 --- /dev/null +++ b/data/layouts/UnusedLayout_833BE30/map.bin @@ -0,0 +1,3 @@ + #!BBBBBBBB ##!BBBBBBBBBBBBB*+,BBBBBBBB*++,BBBBBBBBBBBB*+,BBBBBB*++,BBBBBBBBBBB*+,22*++,BBBBBBBBBBBB*+0##########1++,BBBBBBBBBBB*+++++++++++++++,BB22*++++++C C C C C C C C CXCBB #########!*+++++,BBBBBBBBB*+++++++++,*+++++,BBBBBBBBBBBB*+++++++++,*+++++,BBBBBBBBBBBB*+++++++++,V*+++++,BBBBBBB*+++++++++,U*+++++,22BB ##1+++++++++,*+++++0######!BB*++++++++++++,*++++++++++++,BB*++++++++++++,VU*++++++++++++,BB*++++++++++++,*++++++++++++,BB*++++++++++++,U    ++C C C C C CXCBBWC C +C++++++++++,*+BBBBBBBBBBBWC +C++++++++,BBBBBBBBBBBBBB       VBBBBBBBBBBBBBB  U                  V \ No newline at end of file diff --git a/data/layouts/UnusedLayout_83453C0/border.bin b/data/layouts/UnusedLayout_83453C0/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/UnusedLayout_83453C0/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/UnusedLayout_83453C0/map.bin b/data/layouts/UnusedLayout_83453C0/map.bin new file mode 100644 index 000000000..ffc668ba5 --- /dev/null +++ b/data/layouts/UnusedLayout_83453C0/map.bin @@ -0,0 +1 @@ +2222222 2222222222222222222222222 222222 2222 \ No newline at end of file diff --git a/data/layouts/UnusedLayout_834BC2C/border.bin b/data/layouts/UnusedLayout_834BC2C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834BC2C/border.bin differ diff --git a/data/layouts/UnusedLayout_834BC2C/map.bin b/data/layouts/UnusedLayout_834BC2C/map.bin new file mode 100644 index 000000000..891ae066e Binary files /dev/null and b/data/layouts/UnusedLayout_834BC2C/map.bin differ diff --git a/data/layouts/UnusedLayout_834BEB4/border.bin b/data/layouts/UnusedLayout_834BEB4/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834BEB4/border.bin differ diff --git a/data/layouts/UnusedLayout_834BEB4/map.bin b/data/layouts/UnusedLayout_834BEB4/map.bin new file mode 100644 index 000000000..ab44abb18 Binary files /dev/null and b/data/layouts/UnusedLayout_834BEB4/map.bin differ diff --git a/data/layouts/UnusedLayout_834C13C/border.bin b/data/layouts/UnusedLayout_834C13C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834C13C/border.bin differ diff --git a/data/layouts/UnusedLayout_834C13C/map.bin b/data/layouts/UnusedLayout_834C13C/map.bin new file mode 100644 index 000000000..514cb7239 Binary files /dev/null and b/data/layouts/UnusedLayout_834C13C/map.bin differ diff --git a/data/layouts/UnusedLayout_834C3C4/border.bin b/data/layouts/UnusedLayout_834C3C4/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834C3C4/border.bin differ diff --git a/data/layouts/UnusedLayout_834C3C4/map.bin b/data/layouts/UnusedLayout_834C3C4/map.bin new file mode 100644 index 000000000..d9a50b7a1 Binary files /dev/null and b/data/layouts/UnusedLayout_834C3C4/map.bin differ diff --git a/data/layouts/UnusedLayout_834C64C/border.bin b/data/layouts/UnusedLayout_834C64C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834C64C/border.bin differ diff --git a/data/layouts/UnusedLayout_834C64C/map.bin b/data/layouts/UnusedLayout_834C64C/map.bin new file mode 100644 index 000000000..37b4aba85 Binary files /dev/null and b/data/layouts/UnusedLayout_834C64C/map.bin differ diff --git a/data/layouts/UnusedLayout_834C8D4/border.bin b/data/layouts/UnusedLayout_834C8D4/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834C8D4/border.bin differ diff --git a/data/layouts/UnusedLayout_834C8D4/map.bin b/data/layouts/UnusedLayout_834C8D4/map.bin new file mode 100644 index 000000000..2df5cd891 Binary files /dev/null and b/data/layouts/UnusedLayout_834C8D4/map.bin differ diff --git a/data/layouts/UnusedLayout_834CB5C/border.bin b/data/layouts/UnusedLayout_834CB5C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834CB5C/border.bin differ diff --git a/data/layouts/UnusedLayout_834CB5C/map.bin b/data/layouts/UnusedLayout_834CB5C/map.bin new file mode 100644 index 000000000..e977b7e26 Binary files /dev/null and b/data/layouts/UnusedLayout_834CB5C/map.bin differ diff --git a/data/layouts/UnusedLayout_834CDE4/border.bin b/data/layouts/UnusedLayout_834CDE4/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834CDE4/border.bin differ diff --git a/data/layouts/UnusedLayout_834CDE4/map.bin b/data/layouts/UnusedLayout_834CDE4/map.bin new file mode 100644 index 000000000..e358d2f3d Binary files /dev/null and b/data/layouts/UnusedLayout_834CDE4/map.bin differ diff --git a/data/layouts/UnusedLayout_834D06C/border.bin b/data/layouts/UnusedLayout_834D06C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834D06C/border.bin differ diff --git a/data/layouts/UnusedLayout_834D06C/map.bin b/data/layouts/UnusedLayout_834D06C/map.bin new file mode 100644 index 000000000..3e3ebcc94 Binary files /dev/null and b/data/layouts/UnusedLayout_834D06C/map.bin differ diff --git a/data/layouts/UnusedLayout_834D2F4/border.bin b/data/layouts/UnusedLayout_834D2F4/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834D2F4/border.bin differ diff --git a/data/layouts/UnusedLayout_834D2F4/map.bin b/data/layouts/UnusedLayout_834D2F4/map.bin new file mode 100644 index 000000000..cfc96995c Binary files /dev/null and b/data/layouts/UnusedLayout_834D2F4/map.bin differ diff --git a/data/layouts/UnusedLayout_834D57C/border.bin b/data/layouts/UnusedLayout_834D57C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834D57C/border.bin differ diff --git a/data/layouts/UnusedLayout_834D57C/map.bin b/data/layouts/UnusedLayout_834D57C/map.bin new file mode 100644 index 000000000..da9cc3f75 Binary files /dev/null and b/data/layouts/UnusedLayout_834D57C/map.bin differ diff --git a/data/layouts/UnusedLayout_834D804/border.bin b/data/layouts/UnusedLayout_834D804/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834D804/border.bin differ diff --git a/data/layouts/UnusedLayout_834D804/map.bin b/data/layouts/UnusedLayout_834D804/map.bin new file mode 100644 index 000000000..cf5e1e94e Binary files /dev/null and b/data/layouts/UnusedLayout_834D804/map.bin differ diff --git a/data/layouts/UnusedLayout_834DA8C/border.bin b/data/layouts/UnusedLayout_834DA8C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834DA8C/border.bin differ diff --git a/data/layouts/UnusedLayout_834DA8C/map.bin b/data/layouts/UnusedLayout_834DA8C/map.bin new file mode 100644 index 000000000..1f10bfff1 Binary files /dev/null and b/data/layouts/UnusedLayout_834DA8C/map.bin differ diff --git a/data/layouts/UnusedLayout_834DD14/border.bin b/data/layouts/UnusedLayout_834DD14/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834DD14/border.bin differ diff --git a/data/layouts/UnusedLayout_834DD14/map.bin b/data/layouts/UnusedLayout_834DD14/map.bin new file mode 100644 index 000000000..fe3d6f908 Binary files /dev/null and b/data/layouts/UnusedLayout_834DD14/map.bin differ diff --git a/data/layouts/UnusedLayout_834DF9C/border.bin b/data/layouts/UnusedLayout_834DF9C/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834DF9C/border.bin differ diff --git a/data/layouts/UnusedLayout_834DF9C/map.bin b/data/layouts/UnusedLayout_834DF9C/map.bin new file mode 100644 index 000000000..241077797 Binary files /dev/null and b/data/layouts/UnusedLayout_834DF9C/map.bin differ diff --git a/data/layouts/UnusedLayout_834E224/border.bin b/data/layouts/UnusedLayout_834E224/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/UnusedLayout_834E224/border.bin differ diff --git a/data/layouts/UnusedLayout_834E224/map.bin b/data/layouts/UnusedLayout_834E224/map.bin new file mode 100644 index 000000000..bb5ccf05c Binary files /dev/null and b/data/layouts/UnusedLayout_834E224/map.bin differ diff --git a/data/layouts/VermilionCity/border.bin b/data/layouts/VermilionCity/border.bin new file mode 100644 index 000000000..730aab996 --- /dev/null +++ b/data/layouts/VermilionCity/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/VermilionCity/map.bin b/data/layouts/VermilionCity/map.bin new file mode 100644 index 000000000..1c90e0240 --- /dev/null +++ b/data/layouts/VermilionCity/map.bin @@ -0,0 +1,2 @@ +,0 00,000++++++,0 00+HIJK000++(PQRS0 00++++,XYZ[0 00&%$%$%$%$%$%++++,`ab000++++,102220000000000 000000000000000000++++,111111100000000000000000000000000++++,111111111111000 000000000000000000++++0#####!111111100000000000001010000++++++++++,111111111000000000000000000++++++++++0#####!111000000000000000000++++++++++++++++,111000000000000000000++++++++++2210000(0)0*0+00000000000++++(222221000001230000000000&%$%$%++++,111111000089:;000000000000000+++,111110000@Abc=>>>>>>>>?+++,111102221110220000000000000000000000000+++,1111000000000000000000000000000000000000+++,1100000000000000000000000001110000000000+++,11091:1:1:1:1:1;10011111002222"#$02220"########+++,110ABBBBBC011111110*+,02220*+++++++++++,11`1IJJJJJK01 ##!110*+,&3222'3*+++++++++++,hPQRSTUV1*++,111*+,01110*(+++,110X1Y1Z[\]1^101*++,1111122*+0#111#1,pqqqqqr++++,1111110 00 001*++0#######1+++111++,pqqqqqr++++,111111111111*++++++++++++++111++,pqqqqqr++++,111111111111*+1111111111111111++,x|||||z++++0############1+1111111111111111++0 #####+++++++++++++++++++1111111111111111++++++++++++++++++++++++111++++++++++++++++++++111+++++++++++++++++++++++++++++++3 3 +3++++++++++++++++++++++++222++++++++++++++++++++++++++++++++++,*++++++++++++++++++++,*+++++++,*++,* \ No newline at end of file diff --git a/data/layouts/VermilionCity_Gym/border.bin b/data/layouts/VermilionCity_Gym/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/VermilionCity_Gym/border.bin differ diff --git a/data/layouts/VermilionCity_Gym/map.bin b/data/layouts/VermilionCity_Gym/map.bin new file mode 100644 index 000000000..6389bf603 --- /dev/null +++ b/data/layouts/VermilionCity_Gym/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/VermilionCity_PokemonFanClub/border.bin b/data/layouts/VermilionCity_PokemonFanClub/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/VermilionCity_PokemonFanClub/border.bin differ diff --git a/data/layouts/VermilionCity_PokemonFanClub/map.bin b/data/layouts/VermilionCity_PokemonFanClub/map.bin new file mode 100644 index 000000000..9e7443ba6 --- /dev/null +++ b/data/layouts/VermilionCity_PokemonFanClub/map.bin @@ -0,0 +1 @@ +222222222222222222222222222BB2222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/VictoryRoad_1F/border.bin b/data/layouts/VictoryRoad_1F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/VictoryRoad_1F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/VictoryRoad_1F/map.bin b/data/layouts/VictoryRoad_1F/map.bin new file mode 100644 index 000000000..fe99f6f05 --- /dev/null +++ b/data/layouts/VictoryRoad_1F/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222BBBBBBBBBBBBB22222BBBBBBBBBBBBB22222BBBBBBBBBBBBB2222BBBBBBBBBBBBB2222BB2222222222BB2222222BBBB2BB2222BBBBBB22BBBBBB22BBBBBBBBB222222BBBBBBBBB22222222222222222222222222222222222222222222222222226666666666666 \ No newline at end of file diff --git a/data/layouts/VictoryRoad_2F/border.bin b/data/layouts/VictoryRoad_2F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/VictoryRoad_2F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/VictoryRoad_2F/map.bin b/data/layouts/VictoryRoad_2F/map.bin new file mode 100644 index 000000000..fa39935e6 Binary files /dev/null and b/data/layouts/VictoryRoad_2F/map.bin differ diff --git a/data/layouts/VictoryRoad_3F/border.bin b/data/layouts/VictoryRoad_3F/border.bin new file mode 100644 index 000000000..a021ddd4e --- /dev/null +++ b/data/layouts/VictoryRoad_3F/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/VictoryRoad_3F/map.bin b/data/layouts/VictoryRoad_3F/map.bin new file mode 100644 index 000000000..3ca93972e --- /dev/null +++ b/data/layouts/VictoryRoad_3F/map.bin @@ -0,0 +1 @@ +222222222226666622262262222222222222222222222222222222222222222222222222222222222222222222222222226BBBBBBBBBBBBBB6222222222222222222226BBBBBBBBBBBBBB62222226662222222222226BBBBBBBBBBBBBB62222226662222222262226BBB666666662222226662222222262226BBB62222222222222222266662BBBBBBBB626BBB6222222222222222222222262BBBBBBBB666BBB62222222262222226222226BBBBBBBB666BBB62222222222222222222226266666BBBBBBBB622222222222226662222262622226BBBBBBBB6222222222222222222622226622226666666666222222222222222222222266622222222222222266666622222222266622222222222222622222222222222222222226666222222222222226662222222222222262222226666222222222222266622222222222222222222666662222222222222222222222222222222222226666666666666666666666666666622266666666666666666666666666666666666666622 \ No newline at end of file diff --git a/data/layouts/ViridianCity/border.bin b/data/layouts/ViridianCity/border.bin new file mode 100644 index 000000000..a701312cf Binary files /dev/null and b/data/layouts/ViridianCity/border.bin differ diff --git a/data/layouts/ViridianCity/map.bin b/data/layouts/ViridianCity/map.bin new file mode 100644 index 000000000..d633641ca --- /dev/null +++ b/data/layouts/ViridianCity/map.bin @@ -0,0 +1 @@ +qqlmqqr0 00 00qqqqmqr0000kllmquqr 0e1f1g10sqqmmr&%$%$%$%$'0m1n1o1 0$%$%$%$%$%$%$%sqqququr0m1n1o10&%$'0e1f1f1f1f1f1f1f1f1f1f1f1g1sqqququr000000000000m1n1o100 00 00m1n1n1n1n1n1n1n1n1n1n1n1o1sqqququr0 0m1n11f1f1f1f1f1f11n11v12222221n1o1sqqququr 0m1n1n1n1n1n1n1n1n1n1n1o10ABBBBCm1n1o1sqqququr 00m1n11v122222v1v1w10IJJJJKm1n1o1sqq}qur0m1n1o10 00`1PQRSTVm1n1o1sqquqqur 0 0m1n1o10000hX1Y1Z[\^1m1n1o1{||}q}r0m1n1o10 000 00 00 00u1v1w1qqqq}qr00m1n1o10000||||}qqr 0m1n1o100 00 00000000 00 00000qqqqqyz0 0m1n1o1 000000000 000 0 000 00 0yyyyyz0 0 0&%$%$%$'m1n1o10222220 00 00 00 000n1o100 000(0)0*0+000 000000000000000e1f1f1f1f1f1f11n1o100e1f1g1001230e1f1g1000000000 00 00m1n1n1n1n1n1n1n1n1o1 0m1n1o1 089:; 0m1n1o10000000000000u1v1v1v1v1v1v11n1o10202220m1n1o10@Abc0m1n1o1iiiiiij00 00 0000 00 00 0m1n11f1f1f1f1f1f1f11n11f1f1f1n1f1f11n1o1qkllmqr00000 000000 00m1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1o1kqquqr000000000000 0m1n11v122222v11n11v1v1v1v1v1v11n1o1sqqqmr000000000m1n1o10HIJK0m1n1o100 00 0 0m1n1o1sqqqqur&%$' 0000000m1n1o10PQRS0m1n1o1 0 00000m1n1o1sqqqqur00000&' 00 00 00m1n1o10XYZ[0m1n1o100 00 0 0m1n1o1sqqqqur0000000m1n1o10`ab0m1n1o1000000m1n1o1sqqqqur01000 00m1n11f1f1f1n1f1f1f11n11f1f1f1f1f1f11n1o1qqqqur0000000m1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1o1qqqqqur000 00 00u1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1w1qqqqqu000qqqq}r0 00 03131313131310 00000 000 00 00 000 00000000qqqquqr00000000000000000000000000000000000qqqqu00000000000000000000000000000000000qqqqrr0000000010010000000000000000qqqqrr0000000000000000000000000000qqqqrr0000qqqqrr0000qqqqrr0000qqqqrr0000 \ No newline at end of file diff --git a/data/layouts/ViridianCity_Gym/border.bin b/data/layouts/ViridianCity_Gym/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/ViridianCity_Gym/border.bin differ diff --git a/data/layouts/ViridianCity_Gym/map.bin b/data/layouts/ViridianCity_Gym/map.bin new file mode 100644 index 000000000..ea13b0280 --- /dev/null +++ b/data/layouts/ViridianCity_Gym/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/ViridianCity_House1/border.bin b/data/layouts/ViridianCity_House1/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/ViridianCity_House1/border.bin differ diff --git a/data/layouts/ViridianCity_House1/map.bin b/data/layouts/ViridianCity_House1/map.bin new file mode 100644 index 000000000..888436add --- /dev/null +++ b/data/layouts/ViridianCity_House1/map.bin @@ -0,0 +1 @@ +  ./ -  !"1267(5(()*90:0>0?0 0=0 0 0 0 0 0 000C0D0D0D0D0F000 000S0K0LMN0V000 000S0K0TUN0V000W000[0\0\0\0\0^00G0_000000000O44444444 \ No newline at end of file diff --git a/data/layouts/ViridianCity_House2/border.bin b/data/layouts/ViridianCity_House2/border.bin new file mode 100644 index 000000000..a886cd764 Binary files /dev/null and b/data/layouts/ViridianCity_House2/border.bin differ diff --git a/data/layouts/ViridianCity_House2/map.bin b/data/layouts/ViridianCity_House2/map.bin new file mode 100644 index 000000000..b6e23003b --- /dev/null +++ b/data/layouts/ViridianCity_House2/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/ViridianForest/border.bin b/data/layouts/ViridianForest/border.bin new file mode 100644 index 000000000..7797e033b --- /dev/null +++ b/data/layouts/ViridianForest/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/ViridianForest/map.bin b/data/layouts/ViridianForest/map.bin new file mode 100644 index 000000000..74a9e6f5d --- /dev/null +++ b/data/layouts/ViridianForest/map.bin @@ -0,0 +1 @@ +LMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMN00 00 00 00 00 00 00 00 0 00 00 00 002 02020202 02000000000000000000000000000202 02 02 020 0 0000000000000 000 0002 0020 02 002002 000 00\]0]0]0]0^000100000100 00 000 00000de111ef0000 00 00 0000000 0000 00 021200000 020 00000 00000 00 00000 00 00 00 00 0000 00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000 00020020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 02 0 020 0000 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0000 00 0 0 0 0 0 0 0 0 0 00 000000000 000000 0 0 0 0 0 0 0 0 0 0 0200000000000000000 00 0 0 0 0 0 0 0 0 0 0000000000000 000000 0 0 0 0 0 0 0 0 0 00200200200200000 002 0202 0 0 0 0 0 0 0 0 0 0 0 0 00000 00202 02 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0000000 00 02 000 00 00 00 00 00 00 00000000000 0000000 00 0000000 0 0 0 0002 00 00 0 000000000000000 0 0 0 0 00 00 000000000000000 00 00 00 0 0 0 0 0 00000000000000000000 00000 0 0 0 0 0 00 00 0020 020 020 020 020002020 0 0 0 0 00000020200 0 0 0 0 00 00 0022020 0 0 0 0 00000 0 0 0 0 00 00 0 0 0 0 0 00000 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 02 0 02 0 02 0 02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 0 0 0 0 0000 00202 0 0 0 0 0 0 02 0 02 0 02 0 0 00 0 0 0 0 0 0 00 000202220 0 0 0 0 0 0000 0 0 0 0 0 00 000 0 0 0 0 00 00 0 0 0 0 00000 0 0 0 0 0 0000 0 0 0 0 0 00 000 0 0 0 0 00 00 0 0 0 0 00000 0 0 0 0 0 0000 0 0 0 0 0 00 000 0 0 0 0 00 00 0 0 0 0 00000 0 0 0 0 0 0000 0 0 0 0 0 00 000 0 0 0 0 00 00 0 0 0 0 0 00 00 0 0 0 0 0 0 020 0 0 0 0 0000 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 0 0 0 000 00 00 0 0 0 0 0 0 0 000 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00000000000000 000000 00 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000000000000000000000000000 00 0 0 0 0 0 0 0 0 02 0 02 0 02 0020020020020020 000000 02002 002002 0 02 0 02 022y1220DEEEEEEEEEFLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMN \ No newline at end of file diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json new file mode 100644 index 000000000..3675b33c0 --- /dev/null +++ b/data/layouts/layouts.json @@ -0,0 +1,4403 @@ +{ + "layouts_table_label": "gMapLayouts", + "layouts": [ + { + "id": "LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_1F", + "name": "PalletTown_PlayersHouse_1F_Layout", + "width": 13, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C74", + "border_filepath": "data/layouts/PalletTown_PlayersHouse_1F/border.bin", + "blockdata_filepath": "data/layouts/PalletTown_PlayersHouse_1F/map.bin" + }, + { + "id": "LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_2F", + "name": "PalletTown_PlayersHouse_2F_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C74", + "border_filepath": "data/layouts/PalletTown_PlayersHouse_2F/border.bin", + "blockdata_filepath": "data/layouts/PalletTown_PlayersHouse_2F/map.bin" + }, + { + "id": "LAYOUT_PALLET_TOWN_GARYS_HOUSE", + "name": "PalletTown_GarysHouse_Layout", + "width": 13, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/PalletTown_GarysHouse/border.bin", + "blockdata_filepath": "data/layouts/PalletTown_GarysHouse/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D54D8", + "name": "UnusedLayout_82D54D8_Layout", + "width": 9, + "height": 8, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C74", + "border_filepath": "data/layouts/UnusedLayout_82D54D8/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D54D8/map.bin" + }, + { + "id": "LAYOUT_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "name": "PalletTown_ProfessorOaksLab_Layout", + "width": 13, + "height": 14, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C8C", + "border_filepath": "data/layouts/PalletTown_ProfessorOaksLab/border.bin", + "blockdata_filepath": "data/layouts/PalletTown_ProfessorOaksLab/map.bin" + }, + { + "id": "LAYOUT_HOUSE1", + "name": "House1_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C74", + "border_filepath": "data/layouts/House1/border.bin", + "blockdata_filepath": "data/layouts/House1/map.bin" + }, + { + "id": "LAYOUT_HOUSE2", + "name": "House2_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/House2/border.bin", + "blockdata_filepath": "data/layouts/House2/map.bin" + }, + { + "id": "LAYOUT_POKEMON_CENTER_1F", + "name": "PokemonCenter_1F_Layout", + "width": 15, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4BE4", + "border_filepath": "data/layouts/PokemonCenter_1F/border.bin", + "blockdata_filepath": "data/layouts/PokemonCenter_1F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_CENTER_2F", + "name": "PokemonCenter_2F_Layout", + "width": 15, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4BE4", + "border_filepath": "data/layouts/PokemonCenter_2F/border.bin", + "blockdata_filepath": "data/layouts/PokemonCenter_2F/map.bin" + }, + { + "id": "LAYOUT_MART", + "name": "Mart_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4BCC", + "border_filepath": "data/layouts/Mart/border.bin", + "blockdata_filepath": "data/layouts/Mart/map.bin" + }, + { + "id": "LAYOUT_HOUSE3", + "name": "House3_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/House3/border.bin", + "blockdata_filepath": "data/layouts/House3/map.bin" + }, + { + "id": "LAYOUT_CERULEAN_CITY_GYM", + "name": "CeruleanCity_Gym_Layout", + "width": 17, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4D1C", + "border_filepath": "data/layouts/CeruleanCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_Gym/map.bin" + }, + { + "id": "LAYOUT_HOUSE4", + "name": "House4_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/House4/border.bin", + "blockdata_filepath": "data/layouts/House4/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D6144", + "name": "UnusedLayout_82D6144_Layout", + "width": 11, + "height": 8, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4BCC", + "border_filepath": "data/layouts/UnusedLayout_82D6144/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D6144/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_GYM", + "name": "CeladonCity_Gym_Layout", + "width": 13, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4D4C", + "border_filepath": "data/layouts/CeladonCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Gym/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D6490", + "name": "UnusedLayout_82D6490_Layout", + "width": 14, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4BE4", + "border_filepath": "data/layouts/UnusedLayout_82D6490/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D6490/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", + "name": "FiveIsland_ResortGorgeous_House_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C2C", + "border_filepath": "data/layouts/FiveIsland_ResortGorgeous_House/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_ResortGorgeous_House/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D6654", + "name": "UnusedLayout_82D6654_Layout", + "width": 10, + "height": 9, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82D6654/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D6654/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D672C", + "name": "UnusedLayout_82D672C_Layout", + "width": 10, + "height": 9, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82D672C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D672C/map.bin" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_GYM", + "name": "FuchsiaCity_Gym_Layout", + "width": 15, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CA4", + "border_filepath": "data/layouts/FuchsiaCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_Gym/map.bin" + }, + { + "id": "LAYOUT_HOUSE5", + "name": "House5_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C74", + "border_filepath": "data/layouts/House5/border.bin", + "blockdata_filepath": "data/layouts/House5/map.bin" + }, + {}, + {}, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D6C34", + "name": "UnusedLayout_82D6C34_Layout", + "width": 12, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "NULL", + "secondary_tileset": "gTileset_82D4C14", + "border_filepath": "data/layouts/UnusedLayout_82D6C34/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D6C34/map.bin" + }, + { + "id": "LAYOUT_VERMILION_CITY_GYM", + "name": "VermilionCity_Gym_Layout", + "width": 11, + "height": 21, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4D34", + "border_filepath": "data/layouts/VermilionCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/VermilionCity_Gym/map.bin" + }, + { + "id": "LAYOUT_CERULEAN_CITY_BIKE_SHOP", + "name": "CeruleanCity_BikeShop_Layout", + "width": 11, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C5C", + "border_filepath": "data/layouts/CeruleanCity_BikeShop/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_BikeShop/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_GAME_CORNER", + "name": "CeladonCity_GameCorner_Layout", + "width": 18, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CEC", + "border_filepath": "data/layouts/CeladonCity_GameCorner/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_GameCorner/map.bin" + }, + { + "id": "LAYOUT_PEWTER_CITY_GYM", + "name": "PewterCity_Gym_Layout", + "width": 13, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4D04", + "border_filepath": "data/layouts/PewterCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/PewterCity_Gym/map.bin" + }, + {}, + { + "id": "LAYOUT_FOUR_ISLAND_LORELEIS_HOUSE", + "name": "FourIsland_LoreleisHouse_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F14", + "border_filepath": "data/layouts/FourIsland_LoreleisHouse/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_LoreleisHouse/map.bin" + }, + { + "id": "LAYOUT_THREE_ISLAND_HOUSE1", + "name": "ThreeIsland_House1_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C8C", + "border_filepath": "data/layouts/ThreeIsland_House1/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_House1/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D75F0", + "name": "UnusedLayout_82D75F0_Layout", + "width": 11, + "height": 9, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82D75F0/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D75F0/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D7674", + "name": "UnusedLayout_82D7674_Layout", + "width": 8, + "height": 6, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82D7674/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D7674/map.bin" + }, + { + "id": "LAYOUT_SAFFRON_CITY_GYM", + "name": "SaffronCity_Gym_Layout", + "width": 29, + "height": 25, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4D64", + "border_filepath": "data/layouts/SaffronCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_Gym/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D7CC8", + "name": "UnusedLayout_82D7CC8_Layout", + "width": 8, + "height": 6, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82D7CC8/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D7CC8/map.bin" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_GYM", + "name": "CinnabarIsland_Gym_Layout", + "width": 30, + "height": 25, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4D7C", + "border_filepath": "data/layouts/CinnabarIsland_Gym/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_Gym/map.bin" + }, + { + "id": "LAYOUT_VIRIDIAN_CITY_GYM", + "name": "ViridianCity_Gym_Layout", + "width": 20, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CBC", + "border_filepath": "data/layouts/ViridianCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/ViridianCity_Gym/map.bin" + }, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D88C8", + "name": "UnusedLayout_82D88C8_Layout", + "width": 18, + "height": 14, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4BCC", + "border_filepath": "data/layouts/UnusedLayout_82D88C8/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D88C8/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_MAP_00_00", + "name": "UnknownMap_00_00_Layout", + "width": 14, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C44", + "border_filepath": "data/layouts/UnknownMap_00_00/border.bin", + "blockdata_filepath": "data/layouts/UnknownMap_00_00/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_MAP_00_01", + "name": "UnknownMap_00_01_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C44", + "border_filepath": "data/layouts/UnknownMap_00_01/border.bin", + "blockdata_filepath": "data/layouts/UnknownMap_00_01/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_MAP_00_02", + "name": "UnknownMap_00_02_Layout", + "width": 20, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C44", + "border_filepath": "data/layouts/UnknownMap_00_02/border.bin", + "blockdata_filepath": "data/layouts/UnknownMap_00_02/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_MAP_00_03", + "name": "UnknownMap_00_03_Layout", + "width": 14, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C44", + "border_filepath": "data/layouts/UnknownMap_00_03/border.bin", + "blockdata_filepath": "data/layouts/UnknownMap_00_03/map.bin" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "name": "FuchsiaCity_SafariZone_Entrance_Layout", + "width": 9, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F14", + "border_filepath": "data/layouts/FuchsiaCity_SafariZone_Entrance/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_SafariZone_Entrance/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82D9B24", + "name": "UnusedLayout_82D9B24_Layout", + "width": 40, + "height": 40, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B6C", + "border_filepath": "data/layouts/UnusedLayout_82D9B24/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82D9B24/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DA7C8", + "name": "UnusedLayout_82DA7C8_Layout", + "width": 40, + "height": 40, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B6C", + "border_filepath": "data/layouts/UnusedLayout_82DA7C8/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DA7C8/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DB46C", + "name": "UnusedLayout_82DB46C_Layout", + "width": 40, + "height": 40, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B6C", + "border_filepath": "data/layouts/UnusedLayout_82DB46C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DB46C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DB4F0", + "name": "UnusedLayout_82DB4F0_Layout", + "width": 8, + "height": 6, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DB4F0/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DB4F0/map.bin" + }, + {}, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DBBE0", + "name": "UnusedLayout_82DBBE0_Layout", + "width": 29, + "height": 30, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4ADC", + "border_filepath": "data/layouts/UnusedLayout_82DBBE0/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DBBE0/map.bin" + }, + {}, + {}, + {}, + {}, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DBDD8", + "name": "UnusedLayout_82DBDD8_Layout", + "width": 18, + "height": 13, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/UnusedLayout_82DBDD8/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DBDD8/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DBFB8", + "name": "UnusedLayout_82DBFB8_Layout", + "width": 17, + "height": 13, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/UnusedLayout_82DBFB8/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DBFB8/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DC4EC", + "name": "UnusedLayout_82DC4EC_Layout", + "width": 36, + "height": 18, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/UnusedLayout_82DC4EC/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DC4EC/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DC60C", + "name": "UnusedLayout_82DC60C_Layout", + "width": 14, + "height": 9, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DC60C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DC60C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DC72C", + "name": "UnusedLayout_82DC72C_Layout", + "width": 14, + "height": 9, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DC72C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DC72C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DC84C", + "name": "UnusedLayout_82DC84C_Layout", + "width": 14, + "height": 9, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DC84C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DC84C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DCA70", + "name": "UnusedLayout_82DCA70_Layout", + "width": 15, + "height": 17, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C44", + "border_filepath": "data/layouts/UnusedLayout_82DCA70/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DCA70/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DCB44", + "name": "UnusedLayout_82DCB44_Layout", + "width": 11, + "height": 8, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DCB44/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DCB44/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DCC40", + "name": "UnusedLayout_82DCC40_Layout", + "width": 12, + "height": 9, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DCC40/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DCC40/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DCCD4", + "name": "UnusedLayout_82DCCD4_Layout", + "width": 8, + "height": 7, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DCCD4/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DCCD4/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DCD68", + "name": "UnusedLayout_82DCD68_Layout", + "width": 8, + "height": 7, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DCD68/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DCD68/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DCDFC", + "name": "UnusedLayout_82DCDFC_Layout", + "width": 8, + "height": 7, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DCDFC/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DCDFC/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DCF00", + "name": "UnusedLayout_82DCF00_Layout", + "width": 14, + "height": 8, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DCF00/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DCF00/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DD004", + "name": "UnusedLayout_82DD004_Layout", + "width": 14, + "height": 8, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DD004/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DD004/map.bin" + }, + {}, + { + "id": "LAYOUT_UNUSED_LAYOUT_82DD0DC", + "name": "UnusedLayout_82DD0DC_Layout", + "width": 10, + "height": 9, + "border_width": 0, + "border_height": 0, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CD4", + "border_filepath": "data/layouts/UnusedLayout_82DD0DC/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_82DD0DC/map.bin" + }, + { + "id": "LAYOUT_PALLET_TOWN", + "name": "PalletTown_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AAC", + "border_filepath": "data/layouts/PalletTown/border.bin", + "blockdata_filepath": "data/layouts/PalletTown/map.bin" + }, + { + "id": "LAYOUT_VIRIDIAN_CITY", + "name": "ViridianCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AC4", + "border_filepath": "data/layouts/ViridianCity/border.bin", + "blockdata_filepath": "data/layouts/ViridianCity/map.bin" + }, + { + "id": "LAYOUT_PEWTER_CITY", + "name": "PewterCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4ADC", + "border_filepath": "data/layouts/PewterCity/border.bin", + "blockdata_filepath": "data/layouts/PewterCity/map.bin" + }, + { + "id": "LAYOUT_CERULEAN_CITY", + "name": "CeruleanCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AF4", + "border_filepath": "data/layouts/CeruleanCity/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity/map.bin" + }, + { + "id": "LAYOUT_LAVENDER_TOWN", + "name": "LavenderTown_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B0C", + "border_filepath": "data/layouts/LavenderTown/border.bin", + "blockdata_filepath": "data/layouts/LavenderTown/map.bin" + }, + { + "id": "LAYOUT_VERMILION_CITY", + "name": "VermilionCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B24", + "border_filepath": "data/layouts/VermilionCity/border.bin", + "blockdata_filepath": "data/layouts/VermilionCity/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY", + "name": "CeladonCity_Layout", + "width": 60, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B3C", + "border_filepath": "data/layouts/CeladonCity/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity/map.bin" + }, + { + "id": "LAYOUT_FUCHSIA_CITY", + "name": "FuchsiaCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B54", + "border_filepath": "data/layouts/FuchsiaCity/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity/map.bin" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND", + "name": "CinnabarIsland_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B6C", + "border_filepath": "data/layouts/CinnabarIsland/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland/map.bin" + }, + { + "id": "LAYOUT_INDIGO_PLATEAU_EXTERIOR", + "name": "IndigoPlateau_Exterior_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B84", + "border_filepath": "data/layouts/IndigoPlateau_Exterior/border.bin", + "blockdata_filepath": "data/layouts/IndigoPlateau_Exterior/map.bin" + }, + { + "id": "LAYOUT_SAFFRON_CITY", + "name": "SaffronCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B9C", + "border_filepath": "data/layouts/SaffronCity/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity/map.bin" + }, + { + "id": "LAYOUT_ROUTE1", + "name": "Route1_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AAC", + "border_filepath": "data/layouts/Route1/border.bin", + "blockdata_filepath": "data/layouts/Route1/map.bin" + }, + { + "id": "LAYOUT_ROUTE2", + "name": "Route2_Layout", + "width": 24, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AC4", + "border_filepath": "data/layouts/Route2/border.bin", + "blockdata_filepath": "data/layouts/Route2/map.bin" + }, + { + "id": "LAYOUT_ROUTE3", + "name": "Route3_Layout", + "width": 84, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4ADC", + "border_filepath": "data/layouts/Route3/border.bin", + "blockdata_filepath": "data/layouts/Route3/map.bin" + }, + { + "id": "LAYOUT_ROUTE4", + "name": "Route4_Layout", + "width": 108, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AF4", + "border_filepath": "data/layouts/Route4/border.bin", + "blockdata_filepath": "data/layouts/Route4/map.bin" + }, + { + "id": "LAYOUT_ROUTE5", + "name": "Route5_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AF4", + "border_filepath": "data/layouts/Route5/border.bin", + "blockdata_filepath": "data/layouts/Route5/map.bin" + }, + { + "id": "LAYOUT_ROUTE6", + "name": "Route6_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B24", + "border_filepath": "data/layouts/Route6/border.bin", + "blockdata_filepath": "data/layouts/Route6/map.bin" + }, + { + "id": "LAYOUT_ROUTE7", + "name": "Route7_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B3C", + "border_filepath": "data/layouts/Route7/border.bin", + "blockdata_filepath": "data/layouts/Route7/map.bin" + }, + { + "id": "LAYOUT_ROUTE8", + "name": "Route8_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B0C", + "border_filepath": "data/layouts/Route8/border.bin", + "blockdata_filepath": "data/layouts/Route8/map.bin" + }, + { + "id": "LAYOUT_ROUTE9", + "name": "Route9_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AF4", + "border_filepath": "data/layouts/Route9/border.bin", + "blockdata_filepath": "data/layouts/Route9/map.bin" + }, + { + "id": "LAYOUT_ROUTE10", + "name": "Route10_Layout", + "width": 24, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B0C", + "border_filepath": "data/layouts/Route10/border.bin", + "blockdata_filepath": "data/layouts/Route10/map.bin" + }, + { + "id": "LAYOUT_ROUTE11", + "name": "Route11_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B24", + "border_filepath": "data/layouts/Route11/border.bin", + "blockdata_filepath": "data/layouts/Route11/map.bin" + }, + { + "id": "LAYOUT_ROUTE12", + "name": "Route12_Layout", + "width": 24, + "height": 120, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B0C", + "border_filepath": "data/layouts/Route12/border.bin", + "blockdata_filepath": "data/layouts/Route12/map.bin" + }, + { + "id": "LAYOUT_ROUTE13", + "name": "Route13_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B0C", + "border_filepath": "data/layouts/Route13/border.bin", + "blockdata_filepath": "data/layouts/Route13/map.bin" + }, + { + "id": "LAYOUT_ROUTE14", + "name": "Route14_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B0C", + "border_filepath": "data/layouts/Route14/border.bin", + "blockdata_filepath": "data/layouts/Route14/map.bin" + }, + { + "id": "LAYOUT_ROUTE15", + "name": "Route15_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B54", + "border_filepath": "data/layouts/Route15/border.bin", + "blockdata_filepath": "data/layouts/Route15/map.bin" + }, + { + "id": "LAYOUT_ROUTE16", + "name": "Route16_Layout", + "width": 48, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B3C", + "border_filepath": "data/layouts/Route16/border.bin", + "blockdata_filepath": "data/layouts/Route16/map.bin" + }, + { + "id": "LAYOUT_ROUTE17", + "name": "Route17_Layout", + "width": 24, + "height": 160, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B3C", + "border_filepath": "data/layouts/Route17/border.bin", + "blockdata_filepath": "data/layouts/Route17/map.bin" + }, + { + "id": "LAYOUT_ROUTE18", + "name": "Route18_Layout", + "width": 60, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B3C", + "border_filepath": "data/layouts/Route18/border.bin", + "blockdata_filepath": "data/layouts/Route18/map.bin" + }, + { + "id": "LAYOUT_ROUTE19", + "name": "Route19_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B54", + "border_filepath": "data/layouts/Route19/border.bin", + "blockdata_filepath": "data/layouts/Route19/map.bin" + }, + { + "id": "LAYOUT_ROUTE20", + "name": "Route20_Layout", + "width": 120, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B6C", + "border_filepath": "data/layouts/Route20/border.bin", + "blockdata_filepath": "data/layouts/Route20/map.bin" + }, + { + "id": "LAYOUT_ROUTE21_NORTH", + "name": "Route21_North_Layout", + "width": 24, + "height": 50, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AAC", + "border_filepath": "data/layouts/Route21_North/border.bin", + "blockdata_filepath": "data/layouts/Route21_North/map.bin" + }, + { + "id": "LAYOUT_ROUTE22", + "name": "Route22_Layout", + "width": 48, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AC4", + "border_filepath": "data/layouts/Route22/border.bin", + "blockdata_filepath": "data/layouts/Route22/map.bin" + }, + { + "id": "LAYOUT_ROUTE23", + "name": "Route23_Layout", + "width": 24, + "height": 160, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B84", + "border_filepath": "data/layouts/Route23/border.bin", + "blockdata_filepath": "data/layouts/Route23/map.bin" + }, + { + "id": "LAYOUT_ROUTE24", + "name": "Route24_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AF4", + "border_filepath": "data/layouts/Route24/border.bin", + "blockdata_filepath": "data/layouts/Route24/map.bin" + }, + { + "id": "LAYOUT_ROUTE25", + "name": "Route25_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AF4", + "border_filepath": "data/layouts/Route25/border.bin", + "blockdata_filepath": "data/layouts/Route25/map.bin" + }, + { + "id": "LAYOUT_MT_MOON_1F", + "name": "MtMoon_1F_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/MtMoon_1F/border.bin", + "blockdata_filepath": "data/layouts/MtMoon_1F/map.bin" + }, + { + "id": "LAYOUT_MT_MOON_B1F", + "name": "MtMoon_B1F_Layout", + "width": 49, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/MtMoon_B1F/border.bin", + "blockdata_filepath": "data/layouts/MtMoon_B1F/map.bin" + }, + { + "id": "LAYOUT_MT_MOON_B2F", + "name": "MtMoon_B2F_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/MtMoon_B2F/border.bin", + "blockdata_filepath": "data/layouts/MtMoon_B2F/map.bin" + }, + { + "id": "LAYOUT_VIRIDIAN_FOREST", + "name": "ViridianForest_Layout", + "width": 54, + "height": 69, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4DC4", + "border_filepath": "data/layouts/ViridianForest/border.bin", + "blockdata_filepath": "data/layouts/ViridianForest/map.bin" + }, + { + "id": "LAYOUT_SSANNE_EXTERIOR", + "name": "SSAnne_Exterior_Layout", + "width": 70, + "height": 32, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B24", + "border_filepath": "data/layouts/SSAnne_Exterior/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Exterior/map.bin" + }, + { + "id": "LAYOUT_SSANNE_1F_CORRIDOR", + "name": "SSAnne_1F_Corridor_Layout", + "width": 31, + "height": 21, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/SSAnne_1F_Corridor/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_1F_Corridor/map.bin" + }, + { + "id": "LAYOUT_SSANNE_2F_CORRIDOR", + "name": "SSAnne_2F_Corridor_Layout", + "width": 34, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/SSAnne_2F_Corridor/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_2F_Corridor/map.bin" + }, + { + "id": "LAYOUT_SSANNE_3F_CORRIDOR", + "name": "SSAnne_3F_Corridor_Layout", + "width": 22, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/SSAnne_3F_Corridor/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_3F_Corridor/map.bin" + }, + { + "id": "LAYOUT_SSANNE_B1F_CORRIDOR", + "name": "SSAnne_B1F_Corridor_Layout", + "width": 23, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/SSAnne_B1F_Corridor/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_B1F_Corridor/map.bin" + }, + { + "id": "LAYOUT_SSANNE_DECK", + "name": "SSAnne_Deck_Layout", + "width": 24, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/SSAnne_Deck/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Deck/map.bin" + }, + { + "id": "LAYOUT_DIGLETTS_CAVE_B1F", + "name": "DiglettsCave_B1F_Layout", + "width": 85, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E0C", + "border_filepath": "data/layouts/DiglettsCave_B1F/border.bin", + "blockdata_filepath": "data/layouts/DiglettsCave_B1F/map.bin" + }, + { + "id": "LAYOUT_VICTORY_ROAD_1F", + "name": "VictoryRoad_1F_Layout", + "width": 48, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/VictoryRoad_1F/border.bin", + "blockdata_filepath": "data/layouts/VictoryRoad_1F/map.bin" + }, + { + "id": "LAYOUT_VICTORY_ROAD_2F", + "name": "VictoryRoad_2F_Layout", + "width": 51, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/VictoryRoad_2F/border.bin", + "blockdata_filepath": "data/layouts/VictoryRoad_2F/map.bin" + }, + { + "id": "LAYOUT_VICTORY_ROAD_3F", + "name": "VictoryRoad_3F_Layout", + "width": 45, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/VictoryRoad_3F/border.bin", + "blockdata_filepath": "data/layouts/VictoryRoad_3F/map.bin" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_B1F", + "name": "RocketHideout_B1F_Layout", + "width": 28, + "height": 34, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/RocketHideout_B1F/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_B1F/map.bin" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_B2F", + "name": "RocketHideout_B2F_Layout", + "width": 32, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/RocketHideout_B2F/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_B2F/map.bin" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_B3F", + "name": "RocketHideout_B3F_Layout", + "width": 22, + "height": 27, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/RocketHideout_B3F/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_B3F/map.bin" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_B4F", + "name": "RocketHideout_B4F_Layout", + "width": 24, + "height": 26, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/RocketHideout_B4F/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_B4F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_1F", + "name": "SilphCo_1F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_1F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_1F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_2F", + "name": "SilphCo_2F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_2F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_2F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_3F", + "name": "SilphCo_3F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_3F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_3F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_4F", + "name": "SilphCo_4F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_4F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_4F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_5F", + "name": "SilphCo_5F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_5F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_5F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_6F", + "name": "SilphCo_6F_Layout", + "width": 31, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_6F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_6F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_7F", + "name": "SilphCo_7F_Layout", + "width": 31, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_7F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_7F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_8F", + "name": "SilphCo_8F_Layout", + "width": 31, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_8F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_8F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_9F", + "name": "SilphCo_9F_Layout", + "width": 31, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_9F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_9F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_10F", + "name": "SilphCo_10F_Layout", + "width": 17, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_10F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_10F/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_11F", + "name": "SilphCo_11F_Layout", + "width": 17, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_11F/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_11F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_MANSION_1F", + "name": "PokemonMansion_1F_Layout", + "width": 38, + "height": 35, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F2C", + "border_filepath": "data/layouts/PokemonMansion_1F/border.bin", + "blockdata_filepath": "data/layouts/PokemonMansion_1F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_MANSION_2F", + "name": "PokemonMansion_2F_Layout", + "width": 38, + "height": 38, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F2C", + "border_filepath": "data/layouts/PokemonMansion_2F/border.bin", + "blockdata_filepath": "data/layouts/PokemonMansion_2F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_MANSION_3F", + "name": "PokemonMansion_3F_Layout", + "width": 38, + "height": 35, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F2C", + "border_filepath": "data/layouts/PokemonMansion_3F/border.bin", + "blockdata_filepath": "data/layouts/PokemonMansion_3F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_MANSION_B1F", + "name": "PokemonMansion_B1F_Layout", + "width": 38, + "height": 35, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F2C", + "border_filepath": "data/layouts/PokemonMansion_B1F/border.bin", + "blockdata_filepath": "data/layouts/PokemonMansion_B1F/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_CENTER", + "name": "SafariZone_Center_Layout", + "width": 51, + "height": 36, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B54", + "border_filepath": "data/layouts/SafariZone_Center/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_Center/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_EAST", + "name": "SafariZone_East_Layout", + "width": 54, + "height": 35, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B54", + "border_filepath": "data/layouts/SafariZone_East/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_East/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_NORTH", + "name": "SafariZone_North_Layout", + "width": 57, + "height": 40, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B54", + "border_filepath": "data/layouts/SafariZone_North/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_North/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_WEST", + "name": "SafariZone_West_Layout", + "width": 48, + "height": 36, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B54", + "border_filepath": "data/layouts/SafariZone_West/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_West/map.bin" + }, + { + "id": "LAYOUT_CERULEAN_CAVE_1F", + "name": "CeruleanCave_1F_Layout", + "width": 40, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E54", + "border_filepath": "data/layouts/CeruleanCave_1F/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCave_1F/map.bin" + }, + { + "id": "LAYOUT_CERULEAN_CAVE_2F", + "name": "CeruleanCave_2F_Layout", + "width": 40, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E54", + "border_filepath": "data/layouts/CeruleanCave_2F/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCave_2F/map.bin" + }, + { + "id": "LAYOUT_CERULEAN_CAVE_B1F", + "name": "CeruleanCave_B1F_Layout", + "width": 40, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E54", + "border_filepath": "data/layouts/CeruleanCave_B1F/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCave_B1F/map.bin" + }, + { + "id": "LAYOUT_ROCK_TUNNEL_1F", + "name": "RockTunnel_1F_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4DF4", + "border_filepath": "data/layouts/RockTunnel_1F/border.bin", + "blockdata_filepath": "data/layouts/RockTunnel_1F/map.bin" + }, + { + "id": "LAYOUT_ROCK_TUNNEL_B1F", + "name": "RockTunnel_B1F_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4DF4", + "border_filepath": "data/layouts/RockTunnel_B1F/border.bin", + "blockdata_filepath": "data/layouts/RockTunnel_B1F/map.bin" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_1F", + "name": "SeafoamIslands_1F_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/SeafoamIslands_1F/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_1F/map.bin" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B1F", + "name": "SeafoamIslands_B1F_Layout", + "width": 38, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/SeafoamIslands_B1F/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B1F/map.bin" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B2F", + "name": "SeafoamIslands_B2F_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/SeafoamIslands_B2F/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B2F/map.bin" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B3F", + "name": "SeafoamIslands_B3F_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/SeafoamIslands_B3F/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B3F/map.bin" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B4F", + "name": "SeafoamIslands_B4F_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/SeafoamIslands_B4F/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B4F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_TOWER_1F", + "name": "PokemonTower_1F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EFC", + "border_filepath": "data/layouts/PokemonTower_1F/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_1F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_TOWER_2F", + "name": "PokemonTower_2F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EFC", + "border_filepath": "data/layouts/PokemonTower_2F/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_2F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_TOWER_3F", + "name": "PokemonTower_3F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EFC", + "border_filepath": "data/layouts/PokemonTower_3F/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_3F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_TOWER_4F", + "name": "PokemonTower_4F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EFC", + "border_filepath": "data/layouts/PokemonTower_4F/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_4F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_TOWER_5F", + "name": "PokemonTower_5F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EFC", + "border_filepath": "data/layouts/PokemonTower_5F/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_5F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_TOWER_6F", + "name": "PokemonTower_6F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EFC", + "border_filepath": "data/layouts/PokemonTower_6F/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_6F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_TOWER_7F", + "name": "PokemonTower_7F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EFC", + "border_filepath": "data/layouts/PokemonTower_7F/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_7F/map.bin" + }, + { + "id": "LAYOUT_POWER_PLANT", + "name": "PowerPlant_Layout", + "width": 49, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E9C", + "border_filepath": "data/layouts/PowerPlant/border.bin", + "blockdata_filepath": "data/layouts/PowerPlant/map.bin" + }, + { + "id": "LAYOUT_ROUTE25_SEA_COTTAGE", + "name": "Route25_SeaCottage_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EB4", + "border_filepath": "data/layouts/Route25_SeaCottage/border.bin", + "blockdata_filepath": "data/layouts/Route25_SeaCottage/map.bin" + }, + { + "id": "LAYOUT_SSANNE_KITCHEN", + "name": "SSAnne_Kitchen_Layout", + "width": 16, + "height": 14, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/SSAnne_Kitchen/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Kitchen/map.bin" + }, + { + "id": "LAYOUT_SSANNE_CAPTAINS_OFFICE", + "name": "SSAnne_CaptainsOffice_Layout", + "width": 9, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/SSAnne_CaptainsOffice/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_CaptainsOffice/map.bin" + }, + { + "id": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "name": "UndergroundPath_Entrance_Layout", + "width": 13, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/UndergroundPath_Entrance/border.bin", + "blockdata_filepath": "data/layouts/UndergroundPath_Entrance/map.bin" + }, + { + "id": "LAYOUT_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "name": "UndergroundPath_EastWestTunnel_Layout", + "width": 80, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EE4", + "border_filepath": "data/layouts/UndergroundPath_EastWestTunnel/border.bin", + "blockdata_filepath": "data/layouts/UndergroundPath_EastWestTunnel/map.bin" + }, + { + "id": "LAYOUT_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "name": "UndergroundPath_NorthSouthTunnel_Layout", + "width": 8, + "height": 63, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4EE4", + "border_filepath": "data/layouts/UndergroundPath_NorthSouthTunnel/border.bin", + "blockdata_filepath": "data/layouts/UndergroundPath_NorthSouthTunnel/map.bin" + }, + {}, + { + "id": "LAYOUT_ROUTE12_NORTH_ENTRANCE_1F", + "name": "Route12_NorthEntrance_1F_Layout", + "width": 11, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/Route12_NorthEntrance_1F/border.bin", + "blockdata_filepath": "data/layouts/Route12_NorthEntrance_1F/map.bin" + }, + { + "id": "LAYOUT_SSANNE_ROOM1", + "name": "SSAnne_Room1_Layout", + "width": 6, + "height": 8, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/SSAnne_Room1/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Room1/map.bin" + }, + { + "id": "LAYOUT_SSANNE_ROOM2", + "name": "SSAnne_Room2_Layout", + "width": 6, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4D94", + "border_filepath": "data/layouts/SSAnne_Room2/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Room2/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "name": "CeladonCity_DepartmentStore_Elevator_Layout", + "width": 5, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_Elevator/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_Elevator/map.bin" + }, + { + "id": "LAYOUT_PEWTER_CITY_MUSEUM_1F", + "name": "PewterCity_Museum_1F_Layout", + "width": 28, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C2C", + "border_filepath": "data/layouts/PewterCity_Museum_1F/border.bin", + "blockdata_filepath": "data/layouts/PewterCity_Museum_1F/map.bin" + }, + { + "id": "LAYOUT_PEWTER_CITY_MUSEUM_2F", + "name": "PewterCity_Museum_2F_Layout", + "width": 19, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C2C", + "border_filepath": "data/layouts/PewterCity_Museum_2F/border.bin", + "blockdata_filepath": "data/layouts/PewterCity_Museum_2F/map.bin" + }, + { + "id": "LAYOUT_CERULEAN_CITY_HOUSE2", + "name": "CeruleanCity_House2_Layout", + "width": 10, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4FA4", + "border_filepath": "data/layouts/CeruleanCity_House2/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_House2/map.bin" + }, + { + "id": "LAYOUT_CERULEAN_CITY_HOUSE1", + "name": "CeruleanCity_House1_Layout", + "width": 10, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/CeruleanCity_House1/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_House1/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_1F", + "name": "CeladonCity_Condominiums_1F_Layout", + "width": 15, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F8C", + "border_filepath": "data/layouts/CeladonCity_Condominiums_1F/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_1F/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_2F", + "name": "CeladonCity_Condominiums_2F_Layout", + "width": 15, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F8C", + "border_filepath": "data/layouts/CeladonCity_Condominiums_2F/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_2F/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_3F", + "name": "CeladonCity_Condominiums_3F_Layout", + "width": 15, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F8C", + "border_filepath": "data/layouts/CeladonCity_Condominiums_3F/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_3F/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF", + "name": "CeladonCity_Condominiums_Roof_Layout", + "width": 14, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F8C", + "border_filepath": "data/layouts/CeladonCity_Condominiums_Roof/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_Roof/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", + "name": "CeladonCity_Condominiums_RoofRoom_Layout", + "width": 10, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F5C", + "border_filepath": "data/layouts/CeladonCity_Condominiums_RoofRoom/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_RoofRoom/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", + "name": "CeladonCity_GameCorner_PrizeRoom_Layout", + "width": 9, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CEC", + "border_filepath": "data/layouts/CeladonCity_GameCorner_PrizeRoom/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_GameCorner_PrizeRoom/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_RESTAURANT", + "name": "CeladonCity_Restaurant_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F44", + "border_filepath": "data/layouts/CeladonCity_Restaurant/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Restaurant/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_HOTEL", + "name": "CeladonCity_Hotel_Layout", + "width": 17, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F44", + "border_filepath": "data/layouts/CeladonCity_Hotel/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Hotel/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_1F", + "name": "CeladonCity_DepartmentStore_1F_Layout", + "width": 13, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E6C", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_1F/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_1F/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_2F", + "name": "CeladonCity_DepartmentStore_2F_Layout", + "width": 13, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E6C", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_2F/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_2F/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_3F", + "name": "CeladonCity_DepartmentStore_3F_Layout", + "width": 13, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E6C", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_3F/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_3F/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_4F", + "name": "CeladonCity_DepartmentStore_4F_Layout", + "width": 13, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E6C", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_4F/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_4F/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_5F", + "name": "CeladonCity_DepartmentStore_5F_Layout", + "width": 13, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E6C", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_5F/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_5F/map.bin" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ROOF", + "name": "CeladonCity_DepartmentStore_Roof_Layout", + "width": 19, + "height": 14, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E6C", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_Roof/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_Roof/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_BUILDING", + "name": "SafariZone_Building_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F14", + "border_filepath": "data/layouts/SafariZone_Building/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_Building/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_SECRET_HOUSE", + "name": "SafariZone_SecretHouse_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F14", + "border_filepath": "data/layouts/SafariZone_SecretHouse/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_SecretHouse/map.bin" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_ZOO_BUILDING", + "name": "FuchsiaCity_ZooBuilding_Layout", + "width": 20, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F14", + "border_filepath": "data/layouts/FuchsiaCity_ZooBuilding/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_ZooBuilding/map.bin" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_BUILDING1", + "name": "FuchsiaCity_Building1_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C2C", + "border_filepath": "data/layouts/FuchsiaCity_Building1/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_Building1/map.bin" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_HOUSE2", + "name": "FuchsiaCity_House2_Layout", + "width": 10, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C2C", + "border_filepath": "data/layouts/FuchsiaCity_House2/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_House2/map.bin" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "name": "CinnabarIsland_PokemonLab_Entrance_Layout", + "width": 28, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C8C", + "border_filepath": "data/layouts/CinnabarIsland_PokemonLab_Entrance/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_PokemonLab_Entrance/map.bin" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", + "name": "CinnabarIsland_PokemonLab_Lounge_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C8C", + "border_filepath": "data/layouts/CinnabarIsland_PokemonLab_Lounge/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_PokemonLab_Lounge/map.bin" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", + "name": "CinnabarIsland_PokemonLab_ResearchRoom_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C8C", + "border_filepath": "data/layouts/CinnabarIsland_PokemonLab_ResearchRoom/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_PokemonLab_ResearchRoom/map.bin" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", + "name": "CinnabarIsland_PokemonLab_ExperimentRoom_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C8C", + "border_filepath": "data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom/map.bin" + }, + { + "id": "LAYOUT_SAFFRON_CITY_DUPLICATE", + "name": "SaffronCity_Duplicate_Layout", + "width": 66, + "height": 55, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B9C", + "border_filepath": "data/layouts/SaffronCity_Duplicate/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_Duplicate/map.bin" + }, + { + "id": "LAYOUT_SAFFRON_CITY_NORTH_SOUTH_ENTRANCE", + "name": "SaffronCity_NorthSouthEntrance_Layout", + "width": 9, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/SaffronCity_NorthSouthEntrance/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_NorthSouthEntrance/map.bin" + }, + { + "id": "LAYOUT_SAFFRON_CITY_EAST_WEST_ENTRANCE", + "name": "SaffronCity_EastWestEntrance_Layout", + "width": 13, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/SaffronCity_EastWestEntrance/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_EastWestEntrance/map.bin" + }, + { + "id": "LAYOUT_DIGLETTS_CAVE_NORTH_ENTRANCE", + "name": "DiglettsCave_NorthEntrance_Layout", + "width": 10, + "height": 8, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E0C", + "border_filepath": "data/layouts/DiglettsCave_NorthEntrance/border.bin", + "blockdata_filepath": "data/layouts/DiglettsCave_NorthEntrance/map.bin" + }, + { + "id": "LAYOUT_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "name": "DiglettsCave_SouthEntrance_Layout", + "width": 10, + "height": 8, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E0C", + "border_filepath": "data/layouts/DiglettsCave_SouthEntrance/border.bin", + "blockdata_filepath": "data/layouts/DiglettsCave_SouthEntrance/map.bin" + }, + { + "id": "LAYOUT_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "name": "IndigoPlateau_PokemonCenter_1F_Layout", + "width": 25, + "height": 18, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4BE4", + "border_filepath": "data/layouts/IndigoPlateau_PokemonCenter_1F/border.bin", + "blockdata_filepath": "data/layouts/IndigoPlateau_PokemonCenter_1F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_LORELEIS_ROOM", + "name": "PokemonLeague_LoreleisRoom_Layout", + "width": 13, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D50C4", + "border_filepath": "data/layouts/PokemonLeague_LoreleisRoom/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_LoreleisRoom/map.bin" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_BRUNOS_ROOM", + "name": "PokemonLeague_BrunosRoom_Layout", + "width": 13, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D50C4", + "border_filepath": "data/layouts/PokemonLeague_BrunosRoom/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_BrunosRoom/map.bin" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_AGATHAS_ROOM", + "name": "PokemonLeague_AgathasRoom_Layout", + "width": 13, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D50C4", + "border_filepath": "data/layouts/PokemonLeague_AgathasRoom/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_AgathasRoom/map.bin" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_LANCES_ROOM", + "name": "PokemonLeague_LancesRoom_Layout", + "width": 28, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D50C4", + "border_filepath": "data/layouts/PokemonLeague_LancesRoom/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_LancesRoom/map.bin" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "name": "PokemonLeague_ChampionsRoom_Layout", + "width": 13, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D50C4", + "border_filepath": "data/layouts/PokemonLeague_ChampionsRoom/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_ChampionsRoom/map.bin" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_HALL_OF_FAME", + "name": "PokemonLeague_HallOfFame_Layout", + "width": 11, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D50DC", + "border_filepath": "data/layouts/PokemonLeague_HallOfFame/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_HallOfFame/map.bin" + }, + { + "id": "LAYOUT_ROUTE21_SOUTH", + "name": "Route21_South_Layout", + "width": 24, + "height": 50, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B6C", + "border_filepath": "data/layouts/Route21_South/border.bin", + "blockdata_filepath": "data/layouts/Route21_South/map.bin" + }, + { + "id": "LAYOUT_ENTRANCE_2F", + "name": "Entrance_2F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/Entrance_2F/border.bin", + "blockdata_filepath": "data/layouts/Entrance_2F/map.bin" + }, + { + "id": "LAYOUT_ROUTE2_ENTRANCE", + "name": "Route2_Entrance_Layout", + "width": 15, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/Route2_Entrance/border.bin", + "blockdata_filepath": "data/layouts/Route2_Entrance/map.bin" + }, + { + "id": "LAYOUT_ROUTE22_NORTH_ENTRANCE", + "name": "Route22_NorthEntrance_Layout", + "width": 15, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/Route22_NorthEntrance/border.bin", + "blockdata_filepath": "data/layouts/Route22_NorthEntrance/map.bin" + }, + { + "id": "LAYOUT_ROUTE16_NORTH_ENTRANCE_1F", + "name": "Route16_NorthEntrance_1F_Layout", + "width": 13, + "height": 18, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/Route16_NorthEntrance_1F/border.bin", + "blockdata_filepath": "data/layouts/Route16_NorthEntrance_1F/map.bin" + }, + { + "id": "LAYOUT_ENTRANCE_1F", + "name": "Entrance_1F_Layout", + "width": 13, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/Entrance_1F/border.bin", + "blockdata_filepath": "data/layouts/Entrance_1F/map.bin" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_ELEVATOR", + "name": "RocketHideout_Elevator_Layout", + "width": 5, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/RocketHideout_Elevator/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_Elevator/map.bin" + }, + { + "id": "LAYOUT_SAFFRON_CITY_HOUSE1_1F", + "name": "SaffronCity_House1_1F_Layout", + "width": 13, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C74", + "border_filepath": "data/layouts/SaffronCity_House1_1F/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_House1_1F/map.bin" + }, + { + "id": "LAYOUT_SAFFRON_CITY_HOUSE1_2F", + "name": "SaffronCity_House1_2F_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4C74", + "border_filepath": "data/layouts/SaffronCity_House1_2F/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_House1_2F/map.bin" + }, + { + "id": "LAYOUT_SAFFRON_CITY_DOJO", + "name": "SaffronCity_Dojo_Layout", + "width": 13, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4D04", + "border_filepath": "data/layouts/SaffronCity_Dojo/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_Dojo/map.bin" + }, + { + "id": "LAYOUT_SILPH_CO_ELEVATOR", + "name": "SilphCo_Elevator_Layout", + "width": 5, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SilphCo_Elevator/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_Elevator/map.bin" + }, + { + "id": "LAYOUT_ONE_ISLAND", + "name": "OneIsland_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/OneIsland/border.bin", + "blockdata_filepath": "data/layouts/OneIsland/map.bin" + }, + { + "id": "LAYOUT_TWO_ISLAND", + "name": "TwoIsland_Layout", + "width": 48, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/TwoIsland/border.bin", + "blockdata_filepath": "data/layouts/TwoIsland/map.bin" + }, + { + "id": "LAYOUT_THREE_ISLAND", + "name": "ThreeIsland_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/ThreeIsland/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland/map.bin" + }, + { + "id": "LAYOUT_FOUR_ISLAND", + "name": "FourIsland_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D5064", + "border_filepath": "data/layouts/FourIsland/border.bin", + "blockdata_filepath": "data/layouts/FourIsland/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND", + "name": "FiveIsland_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D5064", + "border_filepath": "data/layouts/FiveIsland/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND", + "name": "SevenIsland_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SevenIsland/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND", + "name": "SixIsland_Layout", + "width": 24, + "height": 30, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SixIsland/border.bin", + "blockdata_filepath": "data/layouts/SixIsland/map.bin" + }, + { + "id": "LAYOUT_ONE_ISLAND_KINDLE_ROAD", + "name": "OneIsland_KindleRoad_Layout", + "width": 24, + "height": 140, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/OneIsland_KindleRoad/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_KindleRoad/map.bin" + }, + { + "id": "LAYOUT_ONE_ISLAND_TREASURE_BEACH", + "name": "OneIsland_TreasureBeach_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/OneIsland_TreasureBeach/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_TreasureBeach/map.bin" + }, + { + "id": "LAYOUT_TWO_ISLAND_CAPE_BRINK", + "name": "TwoIsland_CapeBrink_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/TwoIsland_CapeBrink/border.bin", + "blockdata_filepath": "data/layouts/TwoIsland_CapeBrink/map.bin" + }, + { + "id": "LAYOUT_THREE_ISLAND_BOND_BRIDGE", + "name": "ThreeIsland_BondBridge_Layout", + "width": 96, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/ThreeIsland_BondBridge/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_BondBridge/map.bin" + }, + { + "id": "LAYOUT_THREE_ISLAND_PORT", + "name": "ThreeIsland_Port_Layout", + "width": 48, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/ThreeIsland_Port/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_Port/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_MAP_03_50", + "name": "UnknownMap_03_50_Layout", + "width": 1, + "height": 1, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B3C", + "border_filepath": "data/layouts/UnknownMap_03_50/border.bin", + "blockdata_filepath": "data/layouts/UnknownMap_03_50/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_MAP_03_51", + "name": "UnknownMap_03_51_Layout", + "width": 1, + "height": 1, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B3C", + "border_filepath": "data/layouts/UnknownMap_03_51/border.bin", + "blockdata_filepath": "data/layouts/UnknownMap_03_51/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_MAP_03_52", + "name": "UnknownMap_03_52_Layout", + "width": 84, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B3C", + "border_filepath": "data/layouts/UnknownMap_03_52/border.bin", + "blockdata_filepath": "data/layouts/UnknownMap_03_52/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_MAP_03_53", + "name": "UnknownMap_03_53_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4B3C", + "border_filepath": "data/layouts/UnknownMap_03_53/border.bin", + "blockdata_filepath": "data/layouts/UnknownMap_03_53/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS", + "name": "FiveIsland_ResortGorgeous_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D5064", + "border_filepath": "data/layouts/FiveIsland_ResortGorgeous/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_ResortGorgeous/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_WATER_LABYRINTH", + "name": "FiveIsland_WaterLabyrinth_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D5064", + "border_filepath": "data/layouts/FiveIsland_WaterLabyrinth/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_WaterLabyrinth/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_MEADOW", + "name": "FiveIsland_Meadow_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D5064", + "border_filepath": "data/layouts/FiveIsland_Meadow/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_Meadow/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_MEMORIAL_PILLAR", + "name": "FiveIsland_MemorialPillar_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D5064", + "border_filepath": "data/layouts/FiveIsland_MemorialPillar/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_MemorialPillar/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_OUTCAST_ISLAND", + "name": "SixIsland_OutcastIsland_Layout", + "width": 24, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SixIsland_OutcastIsland/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_OutcastIsland/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_GREEN_PATH", + "name": "SixIsland_GreenPath_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SixIsland_GreenPath/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_GreenPath/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_WATER_PATH", + "name": "SixIsland_WaterPath_Layout", + "width": 24, + "height": 100, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SixIsland_WaterPath/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_WaterPath/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_RUIN_VALLEY", + "name": "SixIsland_RuinValley_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SixIsland_RuinValley/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_RuinValley/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER", + "name": "SevenIsland_TrainerTower_Layout", + "width": 120, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SevenIsland_TrainerTower/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "name": "SevenIsland_SevaultCanyon_Entrance_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SevenIsland_SevaultCanyon_Entrance/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_SevaultCanyon_Entrance/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON", + "name": "SevenIsland_SevaultCanyon_Layout", + "width": 24, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SevenIsland_SevaultCanyon/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_SevaultCanyon/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS", + "name": "SevenIsland_TanobyRuins_Layout", + "width": 144, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_833614C", + "name": "UnusedLayout_833614C_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AAC", + "border_filepath": "data/layouts/UnusedLayout_833614C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_833614C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_83377F0", + "name": "UnusedLayout_83377F0_Layout", + "width": 144, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AAC", + "border_filepath": "data/layouts/UnusedLayout_83377F0/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_83377F0/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_8338354", + "name": "UnusedLayout_8338354_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AAC", + "border_filepath": "data/layouts/UnusedLayout_8338354/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_8338354/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_8338738", + "name": "UnusedLayout_8338738_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4AAC", + "border_filepath": "data/layouts/UnusedLayout_8338738/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_8338738/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_MAP_00_04", + "name": "UnknownMap_00_04_Layout", + "width": 15, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D50DC", + "border_filepath": "data/layouts/UnknownMap_00_04/border.bin", + "blockdata_filepath": "data/layouts/UnknownMap_00_04/map.bin" + }, + { + "id": "LAYOUT_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", + "name": "SaffronCity_PokemonTrainerFanClub_Layout", + "width": 11, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F74", + "border_filepath": "data/layouts/SaffronCity_PokemonTrainerFanClub/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_PokemonTrainerFanClub/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_8338B4C", + "name": "UnusedLayout_8338B4C_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/UnusedLayout_8338B4C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_8338B4C/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_HOUSE_ROOM2", + "name": "SevenIsland_House_Room2_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/SevenIsland_House_Room2/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_House_Room2/map.bin" + }, + { + "id": "LAYOUT_VIRIDIAN_CITY_HOUSE2", + "name": "ViridianCity_House2_Layout", + "width": 10, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F5C", + "border_filepath": "data/layouts/ViridianCity_House2/border.bin", + "blockdata_filepath": "data/layouts/ViridianCity_House2/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_8338E90", + "name": "UnusedLayout_8338E90_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F44", + "border_filepath": "data/layouts/UnusedLayout_8338E90/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_8338E90/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_833902C", + "name": "UnusedLayout_833902C_Layout", + "width": 17, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F44", + "border_filepath": "data/layouts/UnusedLayout_833902C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_833902C/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B4F", + "name": "MtEmber_RubyPath_B4F_Layout", + "width": 18, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_RubyPath_B4F/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B4F/map.bin" + }, + { + "id": "LAYOUT_THREE_ISLAND_BERRY_FOREST", + "name": "ThreeIsland_BerryForest_Layout", + "width": 57, + "height": 47, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D5004", + "border_filepath": "data/layouts/ThreeIsland_BerryForest/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_BerryForest/map.bin" + }, + { + "id": "LAYOUT_ONE_ISLAND_POKEMON_CENTER_1F", + "name": "OneIsland_PokemonCenter_1F_Layout", + "width": 19, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4BE4", + "border_filepath": "data/layouts/OneIsland_PokemonCenter_1F/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_PokemonCenter_1F/map.bin" + }, + { + "id": "LAYOUT_TWO_ISLAND_JOYFUL_GAME_CORNER", + "name": "TwoIsland_JoyfulGameCorner_Layout", + "width": 12, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4CEC", + "border_filepath": "data/layouts/TwoIsland_JoyfulGameCorner/border.bin", + "blockdata_filepath": "data/layouts/TwoIsland_JoyfulGameCorner/map.bin" + }, + { + "id": "LAYOUT_VERMILION_CITY_POKEMON_FAN_CLUB", + "name": "VermilionCity_PokemonFanClub_Layout", + "width": 12, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F74", + "border_filepath": "data/layouts/VermilionCity_PokemonFanClub/border.bin", + "blockdata_filepath": "data/layouts/VermilionCity_PokemonFanClub/map.bin" + }, + { + "id": "LAYOUT_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", + "name": "LavenderTown_VolunteerPokemonHouse_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F74", + "border_filepath": "data/layouts/LavenderTown_VolunteerPokemonHouse/border.bin", + "blockdata_filepath": "data/layouts/LavenderTown_VolunteerPokemonHouse/map.bin" + }, + { + "id": "LAYOUT_ROUTE5_POKEMON_DAY_CARE", + "name": "Route5_PokemonDayCare_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F74", + "border_filepath": "data/layouts/Route5_PokemonDayCare/border.bin", + "blockdata_filepath": "data/layouts/Route5_PokemonDayCare/map.bin" + }, + { + "id": "LAYOUT_VIRIDIAN_CITY_HOUSE1", + "name": "ViridianCity_House1_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/ViridianCity_House1/border.bin", + "blockdata_filepath": "data/layouts/ViridianCity_House1/map.bin" + }, + { + "id": "LAYOUT_FOUR_ISLAND_POKEMON_DAY_CARE", + "name": "FourIsland_PokemonDayCare_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4F74", + "border_filepath": "data/layouts/FourIsland_PokemonDayCare/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_PokemonDayCare/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_833B6EC", + "name": "UnusedLayout_833B6EC_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/UnusedLayout_833B6EC/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_833B6EC/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_833BE30", + "name": "UnusedLayout_833BE30_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/UnusedLayout_833BE30/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_833BE30/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_EXTERIOR", + "name": "MtEmber_Exterior_Layout", + "width": 57, + "height": 54, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/MtEmber_Exterior/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_Exterior/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_SUMMIT", + "name": "MtEmber_Summit_Layout", + "width": 19, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/MtEmber_Summit/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_Summit/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_SUMMIT_PATH_1F", + "name": "MtEmber_SummitPath_1F_Layout", + "width": 15, + "height": 18, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_SummitPath_1F/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_SummitPath_1F/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_SUMMIT_PATH_2F", + "name": "MtEmber_SummitPath_2F_Layout", + "width": 48, + "height": 46, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_SummitPath_2F/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_SummitPath_2F/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_SUMMIT_PATH_3F", + "name": "MtEmber_SummitPath_3F_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_SummitPath_3F/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_SummitPath_3F/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_1F", + "name": "MtEmber_RubyPath_1F_Layout", + "width": 27, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_RubyPath_1F/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_1F/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B1F", + "name": "MtEmber_RubyPath_B1F_Layout", + "width": 11, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_RubyPath_B1F/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B1F/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B2F", + "name": "MtEmber_RubyPath_B2F_Layout", + "width": 16, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_RubyPath_B2F/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B2F/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B3F", + "name": "MtEmber_RubyPath_B3F_Layout", + "width": 31, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_RubyPath_B3F/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B3F/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "name": "MtEmber_RubyPath_B1F_Stairs_Layout", + "width": 6, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_RubyPath_B1F_Stairs/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B1F_Stairs/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "name": "MtEmber_RubyPath_B2F_Stairs_Layout", + "width": 8, + "height": 6, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_RubyPath_B2F_Stairs/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B2F_Stairs/map.bin" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B5F", + "name": "MtEmber_RubyPath_B5F_Layout", + "width": 16, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/MtEmber_RubyPath_B5F/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B5F/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_ROCKET_WAREHOUSE", + "name": "FiveIsland_RocketWarehouse_Layout", + "width": 29, + "height": 27, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/FiveIsland_RocketWarehouse/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_RocketWarehouse/map.bin" + }, + { + "id": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "name": "FourIsland_IcefallCave_Entrance_Layout", + "width": 30, + "height": 36, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/FourIsland_IcefallCave_Entrance/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_IcefallCave_Entrance/map.bin" + }, + { + "id": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_1F", + "name": "FourIsland_IcefallCave_1F_Layout", + "width": 20, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/FourIsland_IcefallCave_1F/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_IcefallCave_1F/map.bin" + }, + { + "id": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "name": "FourIsland_IcefallCave_B1F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/FourIsland_IcefallCave_B1F/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_IcefallCave_B1F/map.bin" + }, + { + "id": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_BACK", + "name": "FourIsland_IcefallCave_Back_Layout", + "width": 25, + "height": 26, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/FourIsland_IcefallCave_Back/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_IcefallCave_Back/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY", + "name": "SevenIsland_TrainerTower_Lobby_Layout", + "width": 19, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_Lobby/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_Lobby/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_1F", + "name": "SevenIsland_TrainerTower_1F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_1F/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_1F/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_2F", + "name": "SevenIsland_TrainerTower_2F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_2F/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_2F/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_3F", + "name": "SevenIsland_TrainerTower_3F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_3F/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_3F/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_4F", + "name": "SevenIsland_TrainerTower_4F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_4F/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_4F/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_5F", + "name": "SevenIsland_TrainerTower_5F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_5F/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_5F/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_6F", + "name": "SevenIsland_TrainerTower_6F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_6F/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_6F/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_7F", + "name": "SevenIsland_TrainerTower_7F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_7F/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_7F/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_8F", + "name": "SevenIsland_TrainerTower_8F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_8F/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_8F/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_ROOF", + "name": "SevenIsland_TrainerTower_Roof_Layout", + "width": 18, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_Roof/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_Roof/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "name": "SevenIsland_TrainerTower_Elevator_Layout", + "width": 5, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4ECC", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_Elevator/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_Elevator/map.bin" + }, + { + "id": "LAYOUT_CERULEAN_CITY_HOUSE5", + "name": "CeruleanCity_House5_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E84", + "border_filepath": "data/layouts/CeruleanCity_House5/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_House5/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_1F", + "name": "SixIsland_DottedHole_1F_Layout", + "width": 16, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/SixIsland_DottedHole_1F/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_1F/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B1F", + "name": "SixIsland_DottedHole_B1F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/SixIsland_DottedHole_B1F/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_B1F/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B2F", + "name": "SixIsland_DottedHole_B2F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/SixIsland_DottedHole_B2F/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_B2F/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B3F", + "name": "SixIsland_DottedHole_B3F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/SixIsland_DottedHole_B3F/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_B3F/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B4F", + "name": "SixIsland_DottedHole_B4F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/SixIsland_DottedHole_B4F/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_B4F/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "name": "SixIsland_DottedHole_SapphireRoom_Layout", + "width": 16, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/SixIsland_DottedHole_SapphireRoom/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_SapphireRoom/map.bin" + }, + { + "id": "LAYOUT_ISLAND_HARBOR", + "name": "Island_Harbor_Layout", + "width": 17, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D50AC", + "border_filepath": "data/layouts/Island_Harbor/border.bin", + "blockdata_filepath": "data/layouts/Island_Harbor/map.bin" + }, + { + "id": "LAYOUT_ONE_ISLAND_POKEMON_CENTER_2F", + "name": "OneIsland_PokemonCenter_2F_Layout", + "width": 15, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4BE4", + "border_filepath": "data/layouts/OneIsland_PokemonCenter_2F/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_PokemonCenter_2F/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_PATTERN_BUSH", + "name": "SixIsland_PatternBush_Layout", + "width": 60, + "height": 32, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4DC4", + "border_filepath": "data/layouts/SixIsland_PatternBush/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_PatternBush/map.bin" + }, + { + "id": "LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL", + "name": "ThreeIsland_DunsparceTunnel_Layout", + "width": 30, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/ThreeIsland_DunsparceTunnel/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_DunsparceTunnel/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_83453C0", + "name": "UnusedLayout_83453C0_Layout", + "width": 30, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/UnusedLayout_83453C0/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_83453C0/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "name": "FiveIsland_LostCave_Entrance_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Entrance/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Entrance/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM1", + "name": "FiveIsland_LostCave_Room1_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room1/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room1/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM2", + "name": "FiveIsland_LostCave_Room2_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room2/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room2/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM3", + "name": "FiveIsland_LostCave_Room3_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room3/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room3/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM4", + "name": "FiveIsland_LostCave_Room4_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room4/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room4/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM5", + "name": "FiveIsland_LostCave_Room5_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room5/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room5/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM6", + "name": "FiveIsland_LostCave_Room6_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room6/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room6/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM7", + "name": "FiveIsland_LostCave_Room7_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room7/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room7/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM8", + "name": "FiveIsland_LostCave_Room8_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room8/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room8/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM9", + "name": "FiveIsland_LostCave_Room9_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room9/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room9/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM10", + "name": "FiveIsland_LostCave_Room10_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room10/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room10/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM11", + "name": "FiveIsland_LostCave_Room11_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room11/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room11/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM12", + "name": "FiveIsland_LostCave_Room12_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room12/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room12/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM13", + "name": "FiveIsland_LostCave_Room13_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room13/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room13/map.bin" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM14", + "name": "FiveIsland_LostCave_Room14_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4BFC", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room14/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room14/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", + "name": "SevenIsland_TanobyRuins_MoneanChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5034", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_MoneanChamber/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_MoneanChamber/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", + "name": "SevenIsland_TanobyRuins_LiptooChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5034", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_LiptooChamber/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_LiptooChamber/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", + "name": "SevenIsland_TanobyRuins_WeepthChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5034", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_WeepthChamber/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_WeepthChamber/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", + "name": "SevenIsland_TanobyRuins_DilfordChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5034", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_DilfordChamber/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_DilfordChamber/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", + "name": "SevenIsland_TanobyRuins_ScufibChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5034", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_ScufibChamber/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_ScufibChamber/map.bin" + }, + { + "id": "LAYOUT_SIX_ISLAND_ALTERING_CAVE", + "name": "SixIsland_AlteringCave_Layout", + "width": 32, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4DF4", + "border_filepath": "data/layouts/SixIsland_AlteringCave/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_AlteringCave/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY", + "name": "SevenIsland_SeavaultCanyon_TanobyKey_Layout", + "width": 15, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4E0C", + "border_filepath": "data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_SeavaultCanyon_TanobyKey/map.bin" + }, + { + "id": "LAYOUT_BIRTH_ISLAND_EXTERIOR", + "name": "BirthIsland_Exterior_Layout", + "width": 30, + "height": 30, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D507C", + "border_filepath": "data/layouts/BirthIsland_Exterior/border.bin", + "blockdata_filepath": "data/layouts/BirthIsland_Exterior/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_EXTERIOR", + "name": "NavelRock_Exterior_Layout", + "width": 20, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D504C", + "border_filepath": "data/layouts/NavelRock_Exterior/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Exterior/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_1F", + "name": "NavelRock_1F_Layout", + "width": 17, + "height": 26, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_1F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_1F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT", + "name": "NavelRock_Summit_Layout", + "width": 19, + "height": 25, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_Summit/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Summit/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE", + "name": "NavelRock_Base_Layout", + "width": 21, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_Base/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Base/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_2F", + "name": "NavelRock_SummitPath_2F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_SummitPath_2F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_SummitPath_2F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_3F", + "name": "NavelRock_SummitPath_3F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_SummitPath_3F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_SummitPath_3F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_4F", + "name": "NavelRock_SummitPath_4F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_SummitPath_4F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_SummitPath_4F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_5F", + "name": "NavelRock_SummitPath_5F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_SummitPath_5F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_SummitPath_5F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B1F", + "name": "NavelRock_BasePath_B1F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B1F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B1F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B2F", + "name": "NavelRock_BasePath_B2F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B2F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B2F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B3F", + "name": "NavelRock_BasePath_B3F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B3F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B3F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B4F", + "name": "NavelRock_BasePath_B4F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B4F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B4F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B5F", + "name": "NavelRock_BasePath_B5F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B5F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B5F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B6F", + "name": "NavelRock_BasePath_B6F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B6F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B6F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B7F", + "name": "NavelRock_BasePath_B7F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B7F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B7F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B8F", + "name": "NavelRock_BasePath_B8F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B8F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B8F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B9F", + "name": "NavelRock_BasePath_B9F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B9F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B9F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B10F", + "name": "NavelRock_BasePath_B10F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B10F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B10F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B11F", + "name": "NavelRock_BasePath_B11F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_BasePath_B11F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B11F/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", + "name": "SevenIsland_TanobyRuins_RixyChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5034", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_RixyChamber/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_RixyChamber/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", + "name": "SevenIsland_TanobyRuins_ViapoisChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5034", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_ViapoisChamber/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_ViapoisChamber/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_B1F", + "name": "NavelRock_B1F_Layout", + "width": 17, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_B1F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_B1F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_FORK", + "name": "NavelRock_Fork_Layout", + "width": 30, + "height": 100, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D501C", + "border_filepath": "data/layouts/NavelRock_Fork/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Fork/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834BC2C", + "name": "UnusedLayout_834BC2C_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834BC2C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834BC2C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834BEB4", + "name": "UnusedLayout_834BEB4_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834BEB4/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834BEB4/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834C13C", + "name": "UnusedLayout_834C13C_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834C13C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834C13C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834C3C4", + "name": "UnusedLayout_834C3C4_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834C3C4/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834C3C4/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834C64C", + "name": "UnusedLayout_834C64C_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834C64C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834C64C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834C8D4", + "name": "UnusedLayout_834C8D4_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834C8D4/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834C8D4/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834CB5C", + "name": "UnusedLayout_834CB5C_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834CB5C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834CB5C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834CDE4", + "name": "UnusedLayout_834CDE4_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834CDE4/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834CDE4/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834D06C", + "name": "UnusedLayout_834D06C_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834D06C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834D06C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834D2F4", + "name": "UnusedLayout_834D2F4_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834D2F4/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834D2F4/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834D57C", + "name": "UnusedLayout_834D57C_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834D57C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834D57C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834D804", + "name": "UnusedLayout_834D804_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834D804/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834D804/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834DA8C", + "name": "UnusedLayout_834DA8C_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834DA8C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834DA8C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834DD14", + "name": "UnusedLayout_834DD14_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834DD14/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834DD14/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834DF9C", + "name": "UnusedLayout_834DF9C_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834DF9C/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834DF9C/map.bin" + }, + { + "id": "LAYOUT_UNUSED_LAYOUT_834E224", + "name": "UnusedLayout_834E224_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D5094", + "border_filepath": "data/layouts/UnusedLayout_834E224/border.bin", + "blockdata_filepath": "data/layouts/UnusedLayout_834E224/map.bin" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1", + "name": "SevenIsland_House_Room1_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4BB4", + "secondary_tileset": "gTileset_82D4E24", + "border_filepath": "data/layouts/SevenIsland_House_Room1/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_House_Room1/map.bin" + }, + { + "id": "LAYOUT_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", + "name": "OneIsland_KindleRoad_EmberSpa_Layout", + "width": 27, + "height": 39, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_82D4A94", + "secondary_tileset": "gTileset_82D4FEC", + "border_filepath": "data/layouts/OneIsland_KindleRoad_EmberSpa/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_KindleRoad_EmberSpa/map.bin" + } + ] +} \ No newline at end of file diff --git a/data/map_event_scripts.inc b/data/map_event_scripts.inc new file mode 100644 index 000000000..460477812 --- /dev/null +++ b/data/map_event_scripts.inc @@ -0,0 +1,4753 @@ + + .include "data/maps/UnknownMap_00_00/scripts.inc" + .include "data/maps/UnknownMap_00_01/scripts.inc" + .include "data/maps/UnknownMap_00_02/scripts.inc" + .include "data/maps/UnknownMap_00_03/scripts.inc" + .include "data/maps/UnknownMap_00_04/scripts.inc" + .include "data/maps/ViridianForest/scripts.inc" + .include "data/maps/MtMoon_1F/scripts.inc" + .include "data/maps/MtMoon_B1F/scripts.inc" + .include "data/maps/MtMoon_B2F/scripts.inc" + .include "data/maps/SSAnne_Exterior/scripts.inc" + .include "data/maps/SSAnne_1F_Corridor/scripts.inc" + .include "data/maps/SSAnne_2F_Corridor/scripts.inc" + .include "data/maps/SSAnne_3F_Corridor/scripts.inc" + .include "data/maps/SSAnne_B1F_Corridor/scripts.inc" + .include "data/maps/SSAnne_Deck/scripts.inc" + .include "data/maps/SSAnne_Kitchen/scripts.inc" + .include "data/maps/SSAnne_CaptainsOffice/scripts.inc" + .include "data/maps/SSAnne_1F_Room1/scripts.inc" + .include "data/maps/SSAnne_1F_Room2/scripts.inc" + .include "data/maps/SSAnne_1F_Room3/scripts.inc" + .include "data/maps/SSAnne_1F_Room4/scripts.inc" + .include "data/maps/SSAnne_1F_Room5/scripts.inc" + .include "data/maps/SSAnne_1F_Room7/scripts.inc" + .include "data/maps/SSAnne_2F_Room1/scripts.inc" + .include "data/maps/SSAnne_2F_Room2/scripts.inc" + .include "data/maps/SSAnne_2F_Room3/scripts.inc" + .include "data/maps/SSAnne_2F_Room4/scripts.inc" + .include "data/maps/SSAnne_2F_Room5/scripts.inc" + .include "data/maps/SSAnne_2F_Room6/scripts.inc" + .include "data/maps/SSAnne_B1F_Room1/scripts.inc" + .include "data/maps/SSAnne_B1F_Room2/scripts.inc" + .include "data/maps/SSAnne_B1F_Room3/scripts.inc" + .include "data/maps/SSAnne_B1F_Room4/scripts.inc" + .include "data/maps/SSAnne_B1F_Room5/scripts.inc" + .include "data/maps/SSAnne_1F_Room6/scripts.inc" + .include "data/maps/UndergroundPath_NorthEntrance/scripts.inc" + .include "data/maps/UndergroundPath_NorthSouthTunnel/scripts.inc" + .include "data/maps/UndergroundPath_SouthEntrance/scripts.inc" + .include "data/maps/UndergroundPath_WestEntrance/scripts.inc" + .include "data/maps/UndergroundPath_EastWestTunnel/scripts.inc" + .include "data/maps/UndergroundPath_EastEntrance/scripts.inc" + .include "data/maps/DiglettsCave_NorthEntrance/scripts.inc" + .include "data/maps/DiglettsCave_B1F/scripts.inc" + .include "data/maps/DiglettsCave_SouthEntrance/scripts.inc" + .include "data/maps/VictoryRoad_1F/scripts.inc" + .include "data/maps/VictoryRoad_2F/scripts.inc" + .include "data/maps/VictoryRoad_3F/scripts.inc" + .include "data/maps/RocketHideout_B1F/scripts.inc" + .include "data/maps/RocketHideout_B2F/scripts.inc" + .include "data/maps/RocketHideout_B3F/scripts.inc" + .include "data/maps/RocketHideout_B4F/scripts.inc" + .include "data/maps/RocketHideout_Elevator/scripts.inc" + .include "data/maps/SilphCo_1F/scripts.inc" + .include "data/maps/SilphCo_2F/scripts.inc" + .include "data/maps/SilphCo_3F/scripts.inc" + .include "data/maps/SilphCo_4F/scripts.inc" + .include "data/maps/SilphCo_5F/scripts.inc" + .include "data/maps/SilphCo_6F/scripts.inc" + .include "data/maps/SilphCo_7F/scripts.inc" + .include "data/maps/SilphCo_8F/scripts.inc" + .include "data/maps/SilphCo_9F/scripts.inc" + .include "data/maps/SilphCo_10F/scripts.inc" + .include "data/maps/SilphCo_11F/scripts.inc" + .include "data/maps/SilphCo_Elevator/scripts.inc" + .include "data/maps/PokemonMansion_1F/scripts.inc" + .include "data/maps/PokemonMansion_2F/scripts.inc" + .include "data/maps/PokemonMansion_3F/scripts.inc" + .include "data/maps/PokemonMansion_B1F/scripts.inc" + .include "data/maps/SafariZone_Center/scripts.inc" + .include "data/maps/SafariZone_East/scripts.inc" + .include "data/maps/SafariZone_North/scripts.inc" + .include "data/maps/SafariZone_West/scripts.inc" + .include "data/maps/SafariZone_Building1/scripts.inc" + .include "data/maps/SafariZone_Building2/scripts.inc" + .include "data/maps/SafariZone_Building3/scripts.inc" + .include "data/maps/SafariZone_Building4/scripts.inc" + .include "data/maps/SafariZone_SecretHouse/scripts.inc" + .include "data/maps/CeruleanCave_1F/scripts.inc" + .include "data/maps/CeruleanCave_2F/scripts.inc" + .include "data/maps/CeruleanCave_B1F/scripts.inc" + .include "data/maps/PokemonLeague_LoreleisRoom/scripts.inc" + .include "data/maps/PokemonLeague_BrunosRoom/scripts.inc" + .include "data/maps/PokemonLeague_AgathasRoom/scripts.inc" + .include "data/maps/PokemonLeague_LancesRoom/scripts.inc" + .include "data/maps/PokemonLeague_ChampionsRoom/scripts.inc" + .include "data/maps/PokemonLeague_HallOfFame/scripts.inc" + .include "data/maps/RockTunnel_1F/scripts.inc" + .include "data/maps/RockTunnel_B1F/scripts.inc" + .include "data/maps/SeafoamIslands_1F/scripts.inc" + .include "data/maps/SeafoamIslands_B1F/scripts.inc" + .include "data/maps/SeafoamIslands_B2F/scripts.inc" + .include "data/maps/SeafoamIslands_B3F/scripts.inc" + .include "data/maps/SeafoamIslands_B4F/scripts.inc" + .include "data/maps/PokemonTower_1F/scripts.inc" + .include "data/maps/PokemonTower_2F/scripts.inc" + .include "data/maps/PokemonTower_3F/scripts.inc" + .include "data/maps/PokemonTower_4F/scripts.inc" + .include "data/maps/PokemonTower_5F/scripts.inc" + .include "data/maps/PokemonTower_6F/scripts.inc" + .include "data/maps/PokemonTower_7F/scripts.inc" + .include "data/maps/PowerPlant/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B4F/scripts.inc" + .include "data/maps/MtEmber_Exterior/scripts.inc" + .include "data/maps/MtEmber_SummitPath_1F/scripts.inc" + .include "data/maps/MtEmber_SummitPath_2F/scripts.inc" + .include "data/maps/MtEmber_SummitPath_3F/scripts.inc" + .include "data/maps/MtEmber_Summit/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B5F/scripts.inc" + .include "data/maps/MtEmber_RubyPath_1F/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B1F/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B2F/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B3F/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B1F_Stairs/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B2F_Stairs/scripts.inc" + .include "data/maps/ThreeIsland_BerryForest/scripts.inc" + .include "data/maps/FourIsland_IcefallCave_Entrance/scripts.inc" + .include "data/maps/FourIsland_IcefallCave_1F/scripts.inc" + .include "data/maps/FourIsland_IcefallCave_B1F/scripts.inc" + .include "data/maps/FourIsland_IcefallCave_Back/scripts.inc" + .include "data/maps/FiveIsland_RocketWarehouse/scripts.inc" + .include "data/maps/SixIsland_DottedHole_1F/scripts.inc" + .include "data/maps/SixIsland_DottedHole_B1F/scripts.inc" + .include "data/maps/SixIsland_DottedHole_B2F/scripts.inc" + .include "data/maps/SixIsland_DottedHole_B3F/scripts.inc" + .include "data/maps/SixIsland_DottedHole_B4F/scripts.inc" + .include "data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc" + .include "data/maps/SixIsland_PatternBush/scripts.inc" + .include "data/maps/SixIsland_AlteringCave/scripts.inc" + .include "data/maps/NavelRock_Exterior/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_1F/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_2F/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_3F/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_4F/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_5F/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_6F/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_7F/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_8F/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_Roof/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Entrance/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room1/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room2/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room3/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room4/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room5/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room6/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room7/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room8/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room9/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room10/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room11/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room12/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room13/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room14/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_MoneanChamber/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_LiptooChamber/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_WeepthChamber/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_DilfordChamber/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_ScufibChamber/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_RixyChamber/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_ViapoisChamber/scripts.inc" + .include "data/maps/ThreeIsland_DunsparceTunnel/scripts.inc" + .include "data/maps/SevenIsland_SeavaultCanyon_TanobyKey/scripts.inc" + .include "data/maps/NavelRock_1F/scripts.inc" + .include "data/maps/NavelRock_Summit/scripts.inc" + .include "data/maps/NavelRock_Base/scripts.inc" + .include "data/maps/NavelRock_SummitPath_2F/scripts.inc" + .include "data/maps/NavelRock_SummitPath_3F/scripts.inc" + .include "data/maps/NavelRock_SummitPath_4F/scripts.inc" + .include "data/maps/NavelRock_SummitPath_5F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B1F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B2F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B3F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B4F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B5F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B6F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B7F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B8F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B9F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B10F/scripts.inc" + .include "data/maps/NavelRock_BasePath_B11F/scripts.inc" + .include "data/maps/NavelRock_B1F/scripts.inc" + .include "data/maps/NavelRock_Fork/scripts.inc" + .include "data/maps/BirthIsland_Exterior/scripts.inc" + .include "data/maps/OneIsland_KindleRoad_EmberSpa/scripts.inc" + .include "data/maps/BirthIsland_Harbor/scripts.inc" + .include "data/maps/PalletTown/scripts.inc" + .include "data/maps/ViridianCity/scripts.inc" + .include "data/maps/PewterCity/scripts.inc" + .include "data/maps/CeruleanCity/scripts.inc" + .include "data/maps/LavenderTown/scripts.inc" + .include "data/maps/VermilionCity/scripts.inc" + .include "data/maps/CeladonCity/scripts.inc" + .include "data/maps/FuchsiaCity/scripts.inc" + .include "data/maps/CinnabarIsland/scripts.inc" + .include "data/maps/IndigoPlateau_Exterior/scripts.inc" + .include "data/maps/SaffronCity_Duplicate/scripts.inc" + .include "data/maps/SaffronCity/scripts.inc" + .include "data/maps/OneIsland/scripts.inc" + .include "data/maps/TwoIsland/scripts.inc" + .include "data/maps/ThreeIsland/scripts.inc" + .include "data/maps/FourIsland/scripts.inc" + .include "data/maps/FiveIsland/scripts.inc" + .include "data/maps/SevenIsland/scripts.inc" + .include "data/maps/SixIsland/scripts.inc" + .include "data/maps/Route1/scripts.inc" + .include "data/maps/Route2/scripts.inc" + .include "data/maps/Route3/scripts.inc" + .include "data/maps/Route4/scripts.inc" + .include "data/maps/Route5/scripts.inc" + .include "data/maps/Route6/scripts.inc" + .include "data/maps/Route7/scripts.inc" + .include "data/maps/Route8/scripts.inc" + .include "data/maps/Route9/scripts.inc" + .include "data/maps/Route10/scripts.inc" + .include "data/maps/Route11/scripts.inc" + .include "data/maps/Route12/scripts.inc" + .include "data/maps/Route13/scripts.inc" + .include "data/maps/Route14/scripts.inc" + .include "data/maps/Route15/scripts.inc" + .include "data/maps/Route16/scripts.inc" + .include "data/maps/Route17/scripts.inc" + .include "data/maps/Route18/scripts.inc" + .include "data/maps/Route19/scripts.inc" + .include "data/maps/Route20/scripts.inc" + .include "data/maps/Route21_North/scripts.inc" + .include "data/maps/Route21_South/scripts.inc" + .include "data/maps/Route22/scripts.inc" + .include "data/maps/Route23/scripts.inc" + .include "data/maps/Route24/scripts.inc" + .include "data/maps/Route25/scripts.inc" + .include "data/maps/OneIsland_KindleRoad/scripts.inc" + .include "data/maps/OneIsland_TreasureBeach/scripts.inc" + .include "data/maps/TwoIsland_CapeBrink/scripts.inc" + .include "data/maps/ThreeIsland_BondBridge/scripts.inc" + .include "data/maps/ThreeIsland_Port/scripts.inc" + .include "data/maps/UnknownMap_03_50/scripts.inc" + .include "data/maps/UnknownMap_03_51/scripts.inc" + .include "data/maps/UnknownMap_03_52/scripts.inc" + .include "data/maps/UnknownMap_03_53/scripts.inc" + .include "data/maps/FiveIsland_ResortGorgeous/scripts.inc" + .include "data/maps/FiveIsland_WaterLabyrinth/scripts.inc" + .include "data/maps/FiveIsland_Meadow/scripts.inc" + .include "data/maps/FiveIsland_MemorialPillar/scripts.inc" + .include "data/maps/SixIsland_OutcastIsland/scripts.inc" + .include "data/maps/SixIsland_GreenPath/scripts.inc" + .include "data/maps/SixIsland_WaterPath/scripts.inc" + .include "data/maps/SixIsland_RuinValley/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower/scripts.inc" + .include "data/maps/SevenIsland_SevaultCanyon_Entrance/scripts.inc" + .include "data/maps/SevenIsland_SevaultCanyon/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins/scripts.inc" + .include "data/maps/PalletTown_PlayersHouse_1F/scripts.inc" + .include "data/maps/PalletTown_PlayersHouse_2F/scripts.inc" + .include "data/maps/PalletTown_GarysHouse/scripts.inc" + .include "data/maps/PalletTown_ProfessorOaksLab/scripts.inc" + .include "data/maps/ViridianCity_House1/scripts.inc" + .include "data/maps/ViridianCity_Gym/scripts.inc" + .include "data/maps/ViridianCity_House2/scripts.inc" + .include "data/maps/ViridianCity_Mart/scripts.inc" + .include "data/maps/ViridianCity_PokemonCenter_1F/scripts.inc" + .include "data/maps/ViridianCity_PokemonCenter_2F/scripts.inc" + .include "data/maps/PewterCity_Museum_1F/scripts.inc" + .include "data/maps/PewterCity_Museum_2F/scripts.inc" + .include "data/maps/PewterCity_Gym/scripts.inc" + .include "data/maps/PewterCity_Mart/scripts.inc" + .include "data/maps/PewterCity_House1/scripts.inc" + .include "data/maps/PewterCity_PokemonCenter_1F/scripts.inc" + .include "data/maps/PewterCity_PokemonCenter_2F/scripts.inc" + .include "data/maps/PewterCity_House2/scripts.inc" + .include "data/maps/CeruleanCity_House1/scripts.inc" + .include "data/maps/CeruleanCity_House2/scripts.inc" + .include "data/maps/CeruleanCity_House3/scripts.inc" + .include "data/maps/CeruleanCity_PokemonCenter_1F/scripts.inc" + .include "data/maps/CeruleanCity_PokemonCenter_2F/scripts.inc" + .include "data/maps/CeruleanCity_Gym/scripts.inc" + .include "data/maps/CeruleanCity_BikeShop/scripts.inc" + .include "data/maps/CeruleanCity_Mart/scripts.inc" + .include "data/maps/CeruleanCity_House4/scripts.inc" + .include "data/maps/CeruleanCity_House5/scripts.inc" + .include "data/maps/LavenderTown_PokemonCenter_1F/scripts.inc" + .include "data/maps/LavenderTown_PokemonCenter_2F/scripts.inc" + .include "data/maps/LavenderTown_VolunteerPokemonHouse/scripts.inc" + .include "data/maps/LavenderTown_House1/scripts.inc" + .include "data/maps/LavenderTown_House2/scripts.inc" + .include "data/maps/LavenderTown_Mart/scripts.inc" + .include "data/maps/VermilionCity_House1/scripts.inc" + .include "data/maps/VermilionCity_PokemonCenter_1F/scripts.inc" + .include "data/maps/VermilionCity_PokemonCenter_2F/scripts.inc" + .include "data/maps/VermilionCity_PokemonFanClub/scripts.inc" + .include "data/maps/VermilionCity_Mart/scripts.inc" + .include "data/maps/VermilionCity_Gym/scripts.inc" + .include "data/maps/VermilionCity_House3/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_1F/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_2F/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_3F/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_4F/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_5F/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_1F/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_2F/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_3F/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_Roof/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_RoofRoom/scripts.inc" + .include "data/maps/CeladonCity_PokemonCenter_1F/scripts.inc" + .include "data/maps/CeladonCity_PokemonCenter_2F/scripts.inc" + .include "data/maps/CeladonCity_GameCorner/scripts.inc" + .include "data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc" + .include "data/maps/CeladonCity_Gym/scripts.inc" + .include "data/maps/CeladonCity_Restaurant/scripts.inc" + .include "data/maps/CeladonCity_House1/scripts.inc" + .include "data/maps/CeladonCity_Hotel/scripts.inc" + .include "data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc" + .include "data/maps/FuchsiaCity_Mart/scripts.inc" + .include "data/maps/FuchsiaCity_ZooBuilding/scripts.inc" + .include "data/maps/FuchsiaCity_Gym/scripts.inc" + .include "data/maps/FuchsiaCity_House1/scripts.inc" + .include "data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc" + .include "data/maps/FuchsiaCity_PokemonCenter_2F/scripts.inc" + .include "data/maps/FuchsiaCity_Building1/scripts.inc" + .include "data/maps/FuchsiaCity_House2/scripts.inc" + .include "data/maps/FuchsiaCity_House3/scripts.inc" + .include "data/maps/CinnabarIsland_Gym/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonLab_Entrance/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonLab_Lounge/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonLab_ResearchRoom/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonCenter_1F/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonCenter_2F/scripts.inc" + .include "data/maps/CinnabarIsland_Mart/scripts.inc" + .include "data/maps/IndigoPlateau_PokemonCenter_1F/scripts.inc" + .include "data/maps/IndigoPlateau_PokemonCenter_2F/scripts.inc" + .include "data/maps/SaffronCity_House1_1F/scripts.inc" + .include "data/maps/SaffronCity_House1_2F/scripts.inc" + .include "data/maps/SaffronCity_Dojo/scripts.inc" + .include "data/maps/SaffronCity_Gym/scripts.inc" + .include "data/maps/SaffronCity_House2/scripts.inc" + .include "data/maps/SaffronCity_Mart/scripts.inc" + .include "data/maps/SaffronCity_PokemonCenter_1F/scripts.inc" + .include "data/maps/SaffronCity_PokemonCenter_2F/scripts.inc" + .include "data/maps/SaffronCity_House3/scripts.inc" + .include "data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc" + .include "data/maps/Route2_ViridianForest_SouthEntrance/scripts.inc" + .include "data/maps/Route2_House/scripts.inc" + .include "data/maps/Route2_EastBuilding/scripts.inc" + .include "data/maps/Route2_ViridianForest_NorthEntrance/scripts.inc" + .include "data/maps/Route4_PokemonCenter_1F/scripts.inc" + .include "data/maps/Route4_PokemonCenter_2F/scripts.inc" + .include "data/maps/Route5_PokemonDayCare/scripts.inc" + .include "data/maps/Route5_SouthEntrance/scripts.inc" + .include "data/maps/Route6_NorthEntrance/scripts.inc" + .include "data/maps/UnknownMap_18_01/scripts.inc" + .include "data/maps/Route7_EastEntrance/scripts.inc" + .include "data/maps/Route8_WestEntrance/scripts.inc" + .include "data/maps/Route10_PokemonCenter_1F/scripts.inc" + .include "data/maps/Route10_PokemonCenter_2F/scripts.inc" + .include "data/maps/Route11_EastEntrance_1F/scripts.inc" + .include "data/maps/Route11_EastEntrance_2F/scripts.inc" + .include "data/maps/Route12_NorthEntrance_1F/scripts.inc" + .include "data/maps/Route12_NorthEntrance_2F/scripts.inc" + .include "data/maps/Route12_FishingHouse/scripts.inc" + .include "data/maps/Route15_WestEntrance_1F/scripts.inc" + .include "data/maps/Route15_WestEntrance_2F/scripts.inc" + .include "data/maps/Route16_House/scripts.inc" + .include "data/maps/Route16_NorthEntrance_1F/scripts.inc" + .include "data/maps/Route16_NorthEntrance_2F/scripts.inc" + .include "data/maps/Route18_EastEntrance_1F/scripts.inc" + .include "data/maps/Route18_EastEntrance_2F/scripts.inc" + .include "data/maps/UnusedHouse_27_00/scripts.inc" + .include "data/maps/Route22_NorthEntrance/scripts.inc" + .include "data/maps/UnusedHouse_29_00/scripts.inc" + .include "data/maps/Route25_SeaCottage/scripts.inc" + .include "data/maps/SevenIsland_House_Room1/scripts.inc" + .include "data/maps/SevenIsland_House_Room2/scripts.inc" + .include "data/maps/SevenIsland_Mart/scripts.inc" + .include "data/maps/SevenIsland_PokemonCenter_1F/scripts.inc" + .include "data/maps/SevenIsland_PokemonCenter_2F/scripts.inc" + .include "data/maps/UnusedHouse_31_05/scripts.inc" + .include "data/maps/SevenIsland_Harbor/scripts.inc" + .include "data/maps/OneIsland_PokemonCenter_1F/scripts.inc" + .include "data/maps/OneIsland_PokemonCenter_2F/scripts.inc" + .include "data/maps/OneIsland_House1/scripts.inc" + .include "data/maps/OneIsland_House2/scripts.inc" + .include "data/maps/OneIsland_Harbor/scripts.inc" + .include "data/maps/TwoIsland_JoyfulGameCorner/scripts.inc" + .include "data/maps/TwoIsland_House/scripts.inc" + .include "data/maps/TwoIsland_PokemonCenter_1F/scripts.inc" + .include "data/maps/TwoIsland_PokemonCenter_2F/scripts.inc" + .include "data/maps/TwoIsland_Harbor/scripts.inc" + .include "data/maps/ThreeIsland_House1/scripts.inc" + .include "data/maps/ThreeIsland_PokemonCenter_1F/scripts.inc" + .include "data/maps/ThreeIsland_PokemonCenter_2F/scripts.inc" + .include "data/maps/ThreeIsland_Mart/scripts.inc" + .include "data/maps/ThreeIsland_House2/scripts.inc" + .include "data/maps/ThreeIsland_House3/scripts.inc" + .include "data/maps/ThreeIsland_House4/scripts.inc" + .include "data/maps/ThreeIsland_House5/scripts.inc" + .include "data/maps/FourIsland_PokemonDayCare/scripts.inc" + .include "data/maps/FourIsland_PokemonCenter_1F/scripts.inc" + .include "data/maps/FourIsland_PokemonCenter_2F/scripts.inc" + .include "data/maps/FourIsland_House1/scripts.inc" + .include "data/maps/FourIsland_LoreleisHouse/scripts.inc" + .include "data/maps/FourIsland_Harbor/scripts.inc" + .include "data/maps/FourIsland_House2/scripts.inc" + .include "data/maps/FourIsland_Mart/scripts.inc" + .include "data/maps/FiveIsland_PokemonCenter_1F/scripts.inc" + .include "data/maps/FiveIsland_PokemonCenter_2F/scripts.inc" + .include "data/maps/FiveIsland_Harbor/scripts.inc" + .include "data/maps/FiveIsland_House1/scripts.inc" + .include "data/maps/FiveIsland_House2/scripts.inc" + .include "data/maps/SixIsland_PokemonCenter_1F/scripts.inc" + .include "data/maps/SixIsland_PokemonCenter_2F/scripts.inc" + .include "data/maps/SixIsland_Harbor/scripts.inc" + .include "data/maps/SixIsland_House/scripts.inc" + .include "data/maps/SixIsland_Mart/scripts.inc" + .include "data/maps/ThreeIsland_Harbor/scripts.inc" + .include "data/maps/FiveIsland_ResortGorgeous_House/scripts.inc" + .include "data/maps/TwoIsland_CapeBrink_House/scripts.inc" + .include "data/maps/SixIsland_WaterPath_House1/scripts.inc" + .include "data/maps/SixIsland_WaterPath_House2/scripts.inc" + .include "data/maps/SevenIsland_SevaultCanyon_House/scripts.inc" + + + + .include "data/maps/ViridianForest/text.inc" + .include "data/maps/MtMoon_1F/text.inc" + .include "data/maps/MtMoon_B2F/text.inc" + .include "data/maps/SSAnne_1F_Corridor/text.inc" + .include "data/maps/SSAnne_2F_Corridor/text.inc" + .include "data/maps/SSAnne_3F_Corridor/text.inc" + .include "data/maps/SSAnne_Deck/text.inc" + .include "data/maps/SSAnne_Kitchen/text.inc" + .include "data/maps/SSAnne_CaptainsOffice/text.inc" + .include "data/maps/SSAnne_1F_Room1/text.inc" + .include "data/maps/SSAnne_1F_Room2/text.inc" + .include "data/maps/SSAnne_1F_Room3/text.inc" + .include "data/maps/SSAnne_1F_Room4/text.inc" + .include "data/maps/SSAnne_1F_Room5/text.inc" + .include "data/maps/SSAnne_1F_Room7/text.inc" + .include "data/maps/SSAnne_2F_Room1/text.inc" + .include "data/maps/SSAnne_2F_Room2/text.inc" + .include "data/maps/SSAnne_2F_Room3/text.inc" + .include "data/maps/SSAnne_2F_Room4/text.inc" + .include "data/maps/SSAnne_2F_Room5/text.inc" + .include "data/maps/SSAnne_2F_Room6/text.inc" + .include "data/maps/SSAnne_B1F_Room1/text.inc" + .include "data/maps/SSAnne_B1F_Room2/text.inc" + .include "data/maps/SSAnne_B1F_Room3/text.inc" + .include "data/maps/SSAnne_B1F_Room4/text.inc" + .include "data/maps/SSAnne_B1F_Room5/text.inc" + .include "data/maps/SSAnne_1F_Room6/text.inc" + .include "data/maps/UndergroundPath_SouthEntrance/text.inc" + .include "data/maps/UndergroundPath_WestEntrance/text.inc" + .include "data/maps/UndergroundPath_EastEntrance/text.inc" + .include "data/maps/DiglettsCave_NorthEntrance/text.inc" + .include "data/maps/DiglettsCave_SouthEntrance/text.inc" + .include "data/maps/VictoryRoad_1F/text.inc" + .include "data/maps/VictoryRoad_2F/text.inc" + .include "data/maps/VictoryRoad_3F/text.inc" + .include "data/maps/RocketHideout_B1F/text.inc" + .include "data/maps/RocketHideout_B2F/text.inc" + .include "data/maps/RocketHideout_B3F/text.inc" + .include "data/maps/RocketHideout_B4F/text.inc" + .include "data/maps/RocketHideout_Elevator/text.inc" + .include "data/maps/SilphCo_1F/text.inc" + .include "data/maps/SilphCo_2F/text.inc" + .include "data/maps/SilphCo_3F/text.inc" + .include "data/maps/SilphCo_4F/text.inc" + .include "data/maps/SilphCo_5F/text.inc" + .include "data/maps/SilphCo_6F/text.inc" + .include "data/maps/SilphCo_7F/text.inc" + .include "data/maps/SilphCo_8F/text.inc" + .include "data/maps/SilphCo_9F/text.inc" + .include "data/maps/SilphCo_10F/text.inc" + .include "data/maps/SilphCo_11F/text.inc" + .include "data/maps/PokemonMansion_1F/text.inc" + .include "data/maps/PokemonMansion_2F/text.inc" + .include "data/maps/PokemonMansion_3F/text.inc" + .include "data/maps/PokemonMansion_B1F/text.inc" + .include "data/maps/SafariZone_Center/text.inc" + .include "data/maps/SafariZone_East/text.inc" + .include "data/maps/SafariZone_North/text.inc" + .include "data/maps/SafariZone_West/text.inc" + .include "data/maps/SafariZone_Building1/text.inc" + .include "data/maps/SafariZone_Building2/text.inc" + .include "data/maps/SafariZone_Building3/text.inc" + .include "data/maps/SafariZone_Building4/text.inc" + .include "data/maps/SafariZone_SecretHouse/text.inc" + .include "data/maps/CeruleanCave_B1F/text.inc" + .include "data/maps/PokemonLeague_LoreleisRoom/text.inc" + .include "data/maps/PokemonLeague_BrunosRoom/text.inc" + .include "data/maps/PokemonLeague_AgathasRoom/text.inc" + .include "data/maps/PokemonLeague_LancesRoom/text.inc" + .include "data/maps/PokemonLeague_ChampionsRoom/text.inc" + .include "data/maps/PokemonLeague_HallOfFame/text.inc" + .include "data/maps/RockTunnel_1F/text.inc" + .include "data/maps/RockTunnel_B1F/text.inc" + .include "data/maps/SeafoamIslands_B4F/text.inc" + .include "data/maps/PokemonTower_1F/text.inc" + .include "data/maps/PokemonTower_2F/text.inc" + .include "data/maps/PokemonTower_3F/text.inc" + .include "data/maps/PokemonTower_4F/text.inc" + .include "data/maps/PokemonTower_5F/text.inc" + .include "data/maps/PokemonTower_6F/text.inc" + .include "data/maps/PokemonTower_7F/text.inc" + .include "data/maps/MtEmber_Exterior/text.inc" + .include "data/maps/MtEmber_RubyPath_B3F/text.inc" + .include "data/maps/ThreeIsland_BerryForest/text.inc" + .include "data/maps/FourIsland_IcefallCave_Back/text.inc" + .include "data/maps/FiveIsland_RocketWarehouse/text.inc" + .include "data/maps/SixIsland_DottedHole_SapphireRoom/text.inc" + .include "data/maps/SixIsland_PatternBush/text.inc" + .include "data/maps/SevenIsland_TrainerTower_Lobby/text.inc" + .include "data/maps/FiveIsland_LostCave_Room1/text.inc" + .include "data/maps/FiveIsland_LostCave_Room4/text.inc" + .include "data/maps/FiveIsland_LostCave_Room10/text.inc" + .include "data/maps/ThreeIsland_DunsparceTunnel/text.inc" + .include "data/maps/SevenIsland_SeavaultCanyon_TanobyKey/text.inc" + .include "data/maps/OneIsland_KindleRoad_EmberSpa/text.inc" + .include "data/maps/PalletTown/text.inc" + .include "data/maps/ViridianCity/text.inc" + .include "data/maps/PewterCity/text.inc" + .include "data/maps/CeruleanCity/text.inc" + .include "data/maps/LavenderTown/text.inc" + .include "data/maps/VermilionCity/text.inc" + .include "data/maps/CeladonCity/text.inc" + .include "data/maps/FuchsiaCity/text.inc" + .include "data/maps/CinnabarIsland/text.inc" + .include "data/maps/SaffronCity_Duplicate/text.inc" + .include "data/maps/OneIsland/text.inc" + .include "data/maps/TwoIsland/text.inc" + .include "data/maps/ThreeIsland/text.inc" + .include "data/maps/FourIsland/text.inc" + .include "data/maps/FiveIsland/text.inc" + .include "data/maps/SevenIsland/text.inc" + .include "data/maps/SixIsland/text.inc" + .include "data/maps/Route1/text.inc" + .include "data/maps/Route2/text.inc" + .include "data/maps/Route3/text.inc" + .include "data/maps/Route4/text.inc" + .include "data/maps/Route5/text.inc" + .include "data/maps/Route6/text.inc" + .include "data/maps/Route7/text.inc" + .include "data/maps/Route8/text.inc" + .include "data/maps/Route9/text.inc" + .include "data/maps/Route10/text.inc" + .include "data/maps/Route11/text.inc" + .include "data/maps/Route12/text.inc" + .include "data/maps/Route13/text.inc" + .include "data/maps/Route14/text.inc" + .include "data/maps/Route15/text.inc" + .include "data/maps/Route16/text.inc" + .include "data/maps/Route17/text.inc" + .include "data/maps/Route18/text.inc" + .include "data/maps/Route19/text.inc" + .include "data/maps/Route20/text.inc" + .include "data/maps/Route22/text.inc" + .include "data/maps/Route23/text.inc" + .include "data/maps/Route24/text.inc" + .include "data/maps/Route25/text.inc" + .include "data/maps/OneIsland_KindleRoad/text.inc" + .include "data/maps/OneIsland_TreasureBeach/text.inc" + .include "data/maps/ThreeIsland_BondBridge/text.inc" + .include "data/maps/ThreeIsland_Port/text.inc" + .include "data/maps/FiveIsland_ResortGorgeous/text.inc" + .include "data/maps/FiveIsland_WaterLabyrinth/text.inc" + .include "data/maps/FiveIsland_Meadow/text.inc" + .include "data/maps/FiveIsland_MemorialPillar/text.inc" + .include "data/maps/SixIsland_OutcastIsland/text.inc" + .include "data/maps/SixIsland_GreenPath/text.inc" + .include "data/maps/SixIsland_WaterPath/text.inc" + .include "data/maps/SixIsland_RuinValley/text.inc" + .include "data/maps/SevenIsland_TrainerTower/text.inc" + .include "data/maps/SevenIsland_SevaultCanyon_Entrance/text.inc" + .include "data/maps/SevenIsland_SevaultCanyon/text.inc" + .include "data/maps/PalletTown_PlayersHouse_1F/text.inc" + .include "data/maps/PalletTown_PlayersHouse_2F/text.inc" + .include "data/maps/PalletTown_GarysHouse/text.inc" + .include "data/maps/PalletTown_ProfessorOaksLab/text.inc" + .include "data/maps/ViridianCity_House1/text.inc" + .include "data/maps/ViridianCity_Gym/text.inc" + .include "data/maps/ViridianCity_House2/text.inc" + .include "data/maps/ViridianCity_Mart/text.inc" + .include "data/maps/ViridianCity_PokemonCenter_1F/text.inc" + .include "data/maps/PewterCity_Museum_1F/text.inc" + .include "data/maps/PewterCity_Museum_2F/text.inc" + .include "data/maps/PewterCity_Gym/text.inc" + .include "data/maps/PewterCity_Mart/text.inc" + .include "data/maps/PewterCity_House1/text.inc" + .include "data/maps/PewterCity_PokemonCenter_1F/text.inc" + .include "data/maps/PewterCity_House2/text.inc" + .include "data/maps/CeruleanCity_House1/text.inc" + .include "data/maps/CeruleanCity_House2/text.inc" + .include "data/maps/CeruleanCity_House3/text.inc" + .include "data/maps/CeruleanCity_PokemonCenter_1F/text.inc" + .include "data/maps/CeruleanCity_Gym/text.inc" + .include "data/maps/CeruleanCity_BikeShop/text.inc" + .include "data/maps/CeruleanCity_Mart/text.inc" + .include "data/maps/CeruleanCity_House4/text.inc" + .include "data/maps/CeruleanCity_House5/text.inc" + .include "data/maps/LavenderTown_PokemonCenter_1F/text.inc" + .include "data/maps/LavenderTown_VolunteerPokemonHouse/text.inc" + .include "data/maps/LavenderTown_House1/text.inc" + .include "data/maps/LavenderTown_House2/text.inc" + .include "data/maps/LavenderTown_Mart/text.inc" + .include "data/maps/VermilionCity_House1/text.inc" + .include "data/maps/VermilionCity_PokemonCenter_1F/text.inc" + .include "data/maps/VermilionCity_PokemonFanClub/text.inc" + .include "data/maps/VermilionCity_Mart/text.inc" + .include "data/maps/VermilionCity_Gym/text.inc" + .include "data/maps/VermilionCity_House3/text.inc" + .include "data/maps/CeladonCity_DepartmentStore_1F/text.inc" + .include "data/maps/CeladonCity_DepartmentStore_2F/text.inc" + .include "data/maps/CeladonCity_DepartmentStore_3F/text.inc" + .include "data/maps/CeladonCity_DepartmentStore_4F/text.inc" + .include "data/maps/CeladonCity_DepartmentStore_5F/text.inc" + .include "data/maps/CeladonCity_DepartmentStore_Roof/text.inc" + .include "data/maps/CeladonCity_Condominiums_1F/text.inc" + .include "data/maps/CeladonCity_Condominiums_2F/text.inc" + .include "data/maps/CeladonCity_Condominiums_3F/text.inc" + .include "data/maps/CeladonCity_Condominiums_Roof/text.inc" + .include "data/maps/CeladonCity_Condominiums_RoofRoom/text.inc" + .include "data/maps/CeladonCity_PokemonCenter_1F/text.inc" + .include "data/maps/CeladonCity_GameCorner/text.inc" + .include "data/maps/CeladonCity_GameCorner_PrizeRoom/text.inc" + .include "data/maps/CeladonCity_Gym/text.inc" + .include "data/maps/CeladonCity_Restaurant/text.inc" + .include "data/maps/CeladonCity_House1/text.inc" + .include "data/maps/CeladonCity_Hotel/text.inc" + .include "data/maps/FuchsiaCity_SafariZone_Entrance/text.inc" + .include "data/maps/FuchsiaCity_Mart/text.inc" + .include "data/maps/FuchsiaCity_ZooBuilding/text.inc" + .include "data/maps/FuchsiaCity_Gym/text.inc" + .include "data/maps/FuchsiaCity_House1/text.inc" + .include "data/maps/FuchsiaCity_PokemonCenter_1F/text.inc" + .include "data/maps/FuchsiaCity_Building1/text.inc" + .include "data/maps/FuchsiaCity_House2/text.inc" + .include "data/maps/FuchsiaCity_House3/text.inc" + .include "data/maps/CinnabarIsland_Gym/text.inc" + .include "data/maps/CinnabarIsland_PokemonLab_Entrance/text.inc" + .include "data/maps/CinnabarIsland_PokemonLab_Lounge/text.inc" + .include "data/maps/CinnabarIsland_PokemonLab_ResearchRoom/text.inc" + .include "data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/text.inc" + .include "data/maps/CinnabarIsland_PokemonCenter_1F/text.inc" + .include "data/maps/CinnabarIsland_Mart/text.inc" + .include "data/maps/IndigoPlateau_PokemonCenter_1F/text.inc" + .include "data/maps/SaffronCity_House1_1F/text.inc" + .include "data/maps/SaffronCity_House1_2F/text.inc" + .include "data/maps/SaffronCity_Dojo/text.inc" + .include "data/maps/SaffronCity_Gym/text.inc" + .include "data/maps/SaffronCity_House2/text.inc" + .include "data/maps/SaffronCity_Mart/text.inc" + .include "data/maps/SaffronCity_PokemonCenter_1F/text.inc" + .include "data/maps/SaffronCity_House3/text.inc" + .include "data/maps/SaffronCity_PokemonTrainerFanClub/text.inc" + .include "data/maps/Route2_ViridianForest_SouthEntrance/text.inc" + .include "data/maps/Route2_House/text.inc" + .include "data/maps/Route2_EastBuilding/text.inc" + .include "data/maps/Route2_ViridianForest_NorthEntrance/text.inc" + .include "data/maps/Route4_PokemonCenter_1F/text.inc" + .include "data/maps/Route5_SouthEntrance/text.inc" + .include "data/maps/Route6_NorthEntrance/text.inc" + .include "data/maps/Route7_EastEntrance/text.inc" + .include "data/maps/Route8_WestEntrance/text.inc" + .include "data/maps/Route10_PokemonCenter_1F/text.inc" + .include "data/maps/Route11_EastEntrance_1F/text.inc" + .include "data/maps/Route11_EastEntrance_2F/text.inc" + .include "data/maps/Route12_NorthEntrance_1F/text.inc" + .include "data/maps/Route12_NorthEntrance_2F/text.inc" + .include "data/maps/Route12_FishingHouse/text.inc" + .include "data/maps/Route15_WestEntrance_1F/text.inc" + .include "data/maps/Route15_WestEntrance_2F/text.inc" + .include "data/maps/Route16_House/text.inc" + .include "data/maps/Route16_NorthEntrance_1F/text.inc" + .include "data/maps/Route16_NorthEntrance_2F/text.inc" + .include "data/maps/Route18_EastEntrance_1F/text.inc" + .include "data/maps/Route18_EastEntrance_2F/text.inc" + .include "data/maps/Route25_SeaCottage/text.inc" + .include "data/maps/SevenIsland_House_Room1/text.inc" + .include "data/maps/SevenIsland_Mart/text.inc" + .include "data/maps/SevenIsland_PokemonCenter_1F/text.inc" + .include "data/maps/OneIsland_PokemonCenter_1F/text.inc" + .include "data/maps/OneIsland_House1/text.inc" + .include "data/maps/OneIsland_House2/text.inc" + .include "data/maps/TwoIsland_JoyfulGameCorner/text.inc" + .include "data/maps/TwoIsland_House/text.inc" + .include "data/maps/TwoIsland_PokemonCenter_1F/text.inc" + .include "data/maps/ThreeIsland_House1/text.inc" + .include "data/maps/ThreeIsland_PokemonCenter_1F/text.inc" + .include "data/maps/ThreeIsland_Mart/text.inc" + .include "data/maps/ThreeIsland_House2/text.inc" + .include "data/maps/ThreeIsland_House3/text.inc" + .include "data/maps/ThreeIsland_House4/text.inc" + .include "data/maps/ThreeIsland_House5/text.inc" + .include "data/maps/FourIsland_PokemonCenter_1F/text.inc" + .include "data/maps/FourIsland_House1/text.inc" + .include "data/maps/FourIsland_LoreleisHouse/text.inc" + .include "data/maps/FourIsland_Mart/text.inc" + .include "data/maps/FiveIsland_PokemonCenter_1F/text.inc" + .include "data/maps/FiveIsland_House1/text.inc" + .include "data/maps/FiveIsland_House2/text.inc" + .include "data/maps/SixIsland_PokemonCenter_1F/text.inc" + .include "data/maps/SixIsland_House/text.inc" + .include "data/maps/SixIsland_Mart/text.inc" + .include "data/maps/FiveIsland_ResortGorgeous_House/text.inc" + .include "data/maps/SixIsland_WaterPath_House1/text.inc" + .include "data/maps/SixIsland_WaterPath_House2/text.inc" + .include "data/maps/SevenIsland_SevaultCanyon_House/text.inc" + + + +gStdScript_2:: @ 81A4E3F + lock + faceplayer + message 0x0 + waitmessage + waitbuttonpress + release + return + +gStdScript_3:: @ 81A4E4A + lockall + message 0x0 + waitmessage + waitbuttonpress + releaseall + return + +gStdScript_4:: @ 81A4E54 + message 0x0 + waitmessage + waitbuttonpress + return + +gStdScript_5:: @ 81A4E5C + message 0x0 + waitmessage + yesnobox 20, 8 + return + +gStdScript_ItemMessageAndFanfare:: @ 81A4E66 + textcolor 3 + compare_var_to_value VAR_0x8002, MUS_FANFA1 + call_if 1, EventScript_1A4EA2 + compare_var_to_value VAR_0x8002, BGM_FRLG_ME_KEYITEM + call_if 1, EventScript_1A4EA6 + message 0x0 + waitmessage + waitfanfare + compare_var_to_value VAR_0x8002, MUS_FANFA1 + call_if 1, EventScript_1A4EAA + setorcopyvar VAR_0x8000, VAR_0x8000 + setorcopyvar VAR_0x8001, VAR_0x8001 + callstd 8 + call EventScript_1A6675 + return + +EventScript_1A4EA2:: @ 81A4EA2 + playfanfare MUS_FANFA1 + return + +EventScript_1A4EA6:: @ 81A4EA6 + playfanfare BGM_FRLG_ME_KEYITEM + return + +EventScript_1A4EAA:: @ 81A4EAA + delay 50 + return + +EventScript_1A4EAE:: @ 81A4EAE + return + +EventScript_1A4EAF:: @ 81A4EAF + special sub_806F67C + waitstate + return + +gUnknown_81A4EB4:: @ 81A4EB4 + lock + special sub_8080628 + special ScrSpecial_EndTrainerApproach + waitstate + goto EventScript_1A4FC7 + +gUnknown_81A4EC1:: @ 81A4EC1 + lock + faceplayer + applymovement VAR_LAST_TALKED, Movement_1A4FC5 + waitmovement 0 + specialvar VAR_RESULT, ScrSpecial_HasTrainerBeenFought + compare_var_to_value VAR_RESULT, 0 + goto_if 5, EventScript_1A4EE8 + special sub_8080628 + special sub_8080398 + goto EventScript_1A4FC7 + +EventScript_1A4EE8:: @ 81A4EE8 + ontrainerbattleend + +gUnknown_81A4EE9:: @ 81A4EE9 + lock + faceplayer + call EventScript_1A4FBA + specialvar VAR_RESULT, ScrSpecial_HasTrainerBeenFought + compare_var_to_value VAR_RESULT, 0 + goto_if 5, EventScript_1A4F20 + special CheckForAlivePartyMons + compare_var_to_value VAR_RESULT, 0 + goto_if 5, EventScript_1A4F19 + special sub_8080628 + special sub_8080398 + goto EventScript_1A4FC7 + +EventScript_1A4F19:: @ 81A4F19 + special sub_8080618 + waitmessage + waitbuttonpress + release + end + +EventScript_1A4F20:: @ 81A4F20 + ontrainerbattleend + +gUnknown_81A4F21:: @ 81A4F21 + applymovement VAR_LAST_TALKED, Movement_1A4FC5 + waitmovement 0 + special sub_8080628 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A501A + battlebegin + ontrainerbattleend + +gUnknown_81A4F3E:: @ 81A4F3E + call EventScript_1A4FBA + specialvar VAR_RESULT, sub_810CEB4 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A4F72 + special sub_8080628 + special sub_8080398 + special sub_80805D8 + waitmessage + waitbuttonpress + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A4FB8 + special sub_80805B0 + waitstate + releaseall + end + +EventScript_1A4F72:: @ 81A4F72 + ontrainerbattleend + +gUnknown_81A4F73:: @ 81A4F73 + specialvar VAR_RESULT, sub_810CEB4 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A4FB0 + special CheckForAlivePartyMons + compare_var_to_value VAR_RESULT, 0 + goto_if 5, EventScript_1A4FB1 + special sub_8080628 + special sub_8080398 + special sub_80805D8 + waitmessage + waitbuttonpress + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A4FB8 + special sub_80805B0 + waitstate + releaseall + end + +EventScript_1A4FB0:: @ 81A4FB0 + ontrainerbattleend + +EventScript_1A4FB1:: @ 81A4FB1 + special sub_8080618 + waitmessage + waitbuttonpress + release + end + +EventScript_1A4FB8:: @ 81A4FB8 + releaseall + end + +EventScript_1A4FBA:: @ 81A4FBA + applymovement VAR_LAST_TALKED, Movement_1A4FC5 + waitmovement 0 + return + +Movement_1A4FC5:: @ 81A4FC5 + step_67 + step_end + +EventScript_1A4FC7:: @ 81A4FC7 + special sub_80805D8 + waitmessage + waitbuttonpress + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A501A + battlebegin + specialvar VAR_RESULT, sub_80803CC + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A5017 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A5019 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_1A5019 + compare_var_to_value VAR_RESULT, 6 + goto_if_eq EventScript_1A5019 + compare_var_to_value VAR_RESULT, 8 + goto_if_eq EventScript_1A5019 + +EventScript_1A5017:: @ 81A5017 + releaseall + end + +EventScript_1A5019:: @ 81A5019 + ontrainerbattleendgoto + +EventScript_1A501A:: @ 81A501A + special sub_80803FC + releaseall + end + +gStdScript_Message_WaitButton_AndRelease:: @ 81A501F + message 0x0 + waitmessage + waitbuttonpress + release + return + + + +gUnknown_81A5028:: @ 81A5028 + .string "Would you like to mix records with\n" + .string "other TRAINERS?$" + +Text_1A505B:: @ 81A505B + .string "We hope to see you again!$" + +Text_1A5075:: @ 81A5075 + .string "{PLAYER} booted up the PC.$" + +gUnknown_81A508A:: @ 81A508A + .string "Which PC should be accessed?$" + +Text_1A50A7:: @ 81A50A7 + .string "Accessed Someone's PC.$" + +Text_1A50BE:: @ 81A50BE + .string "POKéMON Storage System opened.$" + +Text_1A50DD:: @ 81A50DD + .string "Accessed {PLAYER}'s PC.$" + +Text_1A50EF:: @ 81A50EF + .string "Accessed BILL's PC.$" + +Text_1A5103:: @ 81A5103 + .string "Welcome to the POKéMON CABLE CLUB\n" + .string "TRADE CENTER.$" + +Text_1A5133:: @ 81A5133 + .string "Welcome to the POKéMON CABLE CLUB\n" + .string "COLOSSEUM.$" + +Text_1A5160:: @ 81A5160 + .string "Welcome to the POKéMON CABLE CLUB\n" + .string "TIME CAPSULE.$" + +gUnknown_81A5190:: @ 81A5190 + .string "Please come again!$" + +Text_1A51A3:: @ 81A51A3 + .string "Welcome!\p" + .string "We're having a discount sale today!$" + +Text_1A51D0:: @ 81A51D0 + .string "{PLAYER}{KUN}, welcome!\p" + .string "What can I do for you?$" + +Text_1A51F6:: @ 81A51F6 + .string "Obtained the {STR_VAR_2}!$" + +gUnknown_81A5207:: @ 81A5207 + .string "The BAG is full…$" + +gUnknown_81A5218:: @ 81A5218 + .string "{PLAYER} put the {STR_VAR_2}\n" + .string "in the {STR_VAR_3}.$" + +Text_1A5231:: @ 81A5231 + .string "{PLAYER} found one {STR_VAR_2}!$" + +gUnknown_81A5242:: @ 81A5242 + .string "Too bad!\n" + .string "The BAG is full…$" + +Text_1A525C:: @ 81A525C + .string "{PLAYER} found\n" + .string "{STR_VAR_1} {STR_VAR_2}!$" + +Text_1A526C:: @ 81A526C + .string "{PLAYER} put the COINS away in\n" + .string "the COIN CASE.$" + +Text_1A5294:: @ 81A5294 + .string "Too bad!\n" + .string "The COIN CASE is full…$" + +Text_1A52B4:: @ 81A52B4 + .string "Too bad!\n" + .string "There's nothing to put them in…$" + +Text_1A52DD:: @ 81A52DD + .string "{PLAYER} found\n" + .string "{STR_VAR_1} {STR_VAR_2}(s)!$" + +Text_1A52F0:: @ 81A52F0 + .string "Obtained the {STR_VAR_2}!$" + +Text_1A5301:: @ 81A5301 + .string "Too bad! There's no room left for\n" + .string "another {STR_VAR_2}…$" + +gUnknown_81A532F:: @ 81A532F + .string "The {STR_VAR_2} was transferred\n" + .string "to the PC.$" + +Text_1A5351:: @ 81A5351 + .string "じゅんびちゅうです!$" + +Text_1A535C:: @ 81A535C + .string "Which floor do you want?$" + +Text_1A5375:: @ 81A5375 + .string "An item in the BAG can be\n" + .string "registered to SELECT for easy use.$" + +Text_1A53B2:: @ 81A53B2 + .string "パソコンに\n" + .string "ポケモン トレーナー こうざの\l" + .string "メールが きている!\p" + .string "‥‥ ‥‥ ‥‥\p" + .string "ポケモンが おぼえられる わざは 4つ!\p" + .string "どんな わざを おぼえさせるかで\n" + .string "トレーナーの じつりょくが とわれます!\p" + .string "‥‥ ‥‥ ‥‥$" + +gUnknown_81A5420:: @ 81A5420 + .string "{PLAYER} booted up the PC.$" + +Text_1A5435:: @ 81A5435 + .string "つうしんは キャンセルされました$" + +Text_1A5446:: @ 81A5446 + .string "Want to give a nickname to the\n" + .string "{STR_VAR_2} you received?$" + +gUnknown_81A5476:: @ 81A5476 + .string "{STR_VAR_1} fainted…\p" + .string "$" + +Text_1A5483:: @ 81A5483 + .string "Welcome to our POKéMON CENTER!\p" + .string "Would you like me to heal your\n" + .string "POKéMON back to perfect health?$" + +Text_1A54E1:: @ 81A54E1 + .string "Okay, I'll take your POKéMON for a\n" + .string "few seconds.$" + +Text_1A5511:: @ 81A5511 + .string "We hope to see you again!$" + +Text_1A552B:: @ 81A552B + .string "Thank you for waiting.\n" + .string "We've restored your POKéMON to\l" + .string "full health.$" + +Text_1A556E:: @ 81A556E + .string "The water is dyed a deep blue…\n" + .string "Would you like to SURF?$" + +Text_1A55A5:: @ 81A55A5 + .string "{STR_VAR_1} used SURF!$" + +Text_1A55B3:: @ 81A55B3 + .string "The current is much too fast!\n" + .string "SURF can't be used here…$" + +Text_1A55EA:: @ 81A55EA + .string "どこか とおくの とびらが\n" + .string "ひらいたような おとだ‥‥$" + +Text_1A5606:: @ 81A5606 + .string "かべに\n" + .string "おおきな あなが あいている!$" + +Text_1A561A:: @ 81A561A + .string "I'm terribly sorry.\n" + .string "The POKéMON WIRELESS CLUB is\l" + .string "undergoing adjustments now.$" + +Text_1A5667:: @ 81A5667 + .string "It appears to be undergoing\n" + .string "adjustments…$" + +Text_1A5690:: @ 81A5690 + .string "{PLAYER} handed over the\n" + .string "{STR_VAR_1}.$" + +gUnknown_81A56A7:: @ 81A56A7 + .string "Do you want to give a nickname to\n" + .string "this {STR_VAR_1}?$" + +Text_1A56D2:: @ 81A56D2 + .string "おッ! ダウジングマシンが\n" + .string "はんのう してるぞ!\p" + .string "ましたに どうぐが うまってる!\n" + .string "‥‥‥$" + +Text_1A5700:: @ 81A5700 + .string "{PLAYER} dug up one {STR_VAR_2}\n" + .string "from deep in the ground.$" + +Text_1A572A:: @ 81A572A + .string "Only truly skilled TRAINERS are\n" + .string "allowed through.\p" + .string "You don't have the {STR_VAR_1}\n" + .string "yet!$" + +Text_1A5776:: @ 81A5776 + .string "Rules are rules.\n" + .string "I can't let you pass.$" + +Text_1A579D:: @ 81A579D + .string "Oh! That is the {STR_VAR_1}!\n" + .string "Go right ahead.$" + +Text_1A57C1:: @ 81A57C1 + .string "You can pass here only if you have\n" + .string "the {STR_VAR_1}.\p" + .string "You don't have the {STR_VAR_1}\n" + .string "yet.\p" + .string "You have to have it to get to\n" + .string "the POKéMON LEAGUE.$" + +Text_1A5839:: @ 81A5839 + .string "You can pass here only if you have\n" + .string "the {STR_VAR_1}.\p" + .string "Oh! That is the {STR_VAR_1}!{PAUSE_MUSIC}{PLAY_BGM}{MUS_FANFA1}{PAUSE 0x60}{RESUME_MUSIC}\p" + .string "Okay, then.\n" + .string "Please, go right ahead.$" + +Text_1A58A7:: @ 81A58A7 + .string "Let's see…\n" + .string "Uh-oh! You have caught only\l" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "You need {STR_VAR_1} kinds\n" + .string "if you want the {STR_VAR_2}.$" + +Text_1A5909:: @ 81A5909 + .string "…Oh. I see.\p" + .string "When you get {STR_VAR_1} kinds of POKéMON,\n" + .string "come back for the {STR_VAR_2}.$" + +Text_1A594D:: @ 81A594D + .string "Oh! I see you don't have any\n" + .string "room for the {STR_VAR_2}.$" + +gUnknown_81A597B:: @ 81A597B + .string "I'm looking for the POKéMON\n" + .string "{STR_VAR_1}!\p" + .string "Wanna trade one for my\n" + .string "{STR_VAR_2}?$" + +gUnknown_81A59B6:: @ 81A59B6 + .string "Awww!\n" + .string "Oh, well…$" + +gUnknown_81A59C6:: @ 81A59C6 + .string "What?\n" + .string "That's no {STR_VAR_1}!$" + +gUnknown_81A59DA:: @ 81A59DA + .string "Hey, thanks!$" + +gUnknown_81A59E7:: @ 81A59E7 + .string "Isn't my old {STR_VAR_2} great?$" + +gUnknown_81A59FE:: @ 81A59FE + .string "Hello, there! Do you happen to\n" + .string "have a {STR_VAR_1}?\p" + .string "Would you agree to a trade for\n" + .string "my {STR_VAR_2}?$" + +gUnknown_81A5A4E:: @ 81A5A4E + .string "Well, if you don't want to…$" + +gUnknown_81A5A6A:: @ 81A5A6A + .string "Hmmm?\n" + .string "This isn't a {STR_VAR_1}.\p" + .string "Think of me if you get one.$" + +gUnknown_81A5A9D:: @ 81A5A9D + .string "Thanks!$" + +gUnknown_81A5AA5:: @ 81A5AA5 + .string "The {STR_VAR_2} that I traded you,\n" + .string "has it grown stronger?$" + +gUnknown_81A5AD6:: @ 81A5AD6 + .string "Hi!\n" + .string "Do you have a {STR_VAR_1}?\p" + .string "Want to trade it for my\n" + .string "{STR_VAR_2}?$" + +gUnknown_81A5B08:: @ 81A5B08 + .string "That's too bad.$" + +gUnknown_81A5B18:: @ 81A5B18 + .string "…This is no {STR_VAR_1}.\p" + .string "If you get one, trade it with me.$" + +gUnknown_81A5B4A:: @ 81A5B4A + .string "Thanks, you're a pal!$" + +gUnknown_81A5B60:: @ 81A5B60 + .string "How is my old {STR_VAR_2}?\n" + .string "My {STR_VAR_1} is doing great!$" + +Text_1A5B88:: @ 81A5B88 + .string "Bingo!\n" + .string "The CARD KEY opened the door!$" + +Text_1A5BAD:: @ 81A5BAD + .string "No!\n" + .string "It needs a CARD KEY!$" + +Text_1A5BC6:: @ 81A5BC6 + .string "Accessed PROF. OAK's PC…\p" + .string "Accessed the POKéDEX Rating\n" + .string "System…$" + +Text_1A5C03:: @ 81A5C03 + .string "Would you like to have your\n" + .string "POKéDEX rated?$" + +Text_1A5C2E:: @ 81A5C2E + .string "Closed link to PROF. OAK's PC.$" + +Text_1A5C4D:: @ 81A5C4D + .string "Someone's voice rang out,\n" + .string "“Don't run away!”$" + +Text_1A5C79:: @ 81A5C79 + .string "えっとー\n" + .string "{STR_VAR_2}が みてみたいなー\p" + .string "それも {STR_VAR_1}{STR_VAR_3}\n" + .string "{STR_VAR_2}が みてみたいなー$" + +Text_1A5C9F:: @ 81A5C9F + .string "わぁー すごい!\n" + .string "{STR_VAR_1}{STR_VAR_3}{STR_VAR_2}だー!\p" + .string "ありがとー\n" + .string "また よろしくねー!$" + +Text_1A5CC3:: @ 81A5CC3 + .string "それっ ちがうよー!$" + +Text_1A5CCE:: @ 81A5CCE + .string "そっか‥$" + +Text_1A5CD3:: @ 81A5CD3 + .string "ドアは しまっている‥$" + +Text_1A5CDF:: @ 81A5CDF + .string "The door is open…$" + +Text_1A5CF1:: @ 81A5CF1 + .string "{STR_VAR_2} was transferred to\n" + .string "Someone's PC.\p" + .string "It was placed in \n" + .string "BOX “{STR_VAR_1}.”$" + +Text_1A5D31:: @ 81A5D31 + .string "{STR_VAR_2} was transferred to\n" + .string "BILL'S PC.\p" + .string "It was placed in \n" + .string "BOX “{STR_VAR_1}.”$" + +Text_1A5D6E:: @ 81A5D6E + .string "BOX “{STR_VAR_3}” on\n" + .string "Someone's PC was full.\p" + .string "{STR_VAR_2} was transferred to\n" + .string "BOX “{STR_VAR_1}.”$" + +Text_1A5DB1:: @ 81A5DB1 + .string "BOX “{STR_VAR_3}” on\n" + .string "BILL'S PC was full.\p" + .string "{STR_VAR_2} was transferred to\n" + .string "BOX “{STR_VAR_1}.”$" + +Text_1A5DF1:: @ 81A5DF1 + .string "{PLAYER} obtained\n" + .string "the {STR_VAR_1}!$" + +Text_1A5E05:: @ 81A5E05 + .string "ポケモンを もちきれないので\n" + .string "パソコンの ボックス“{STR_VAR_1}” に\l" + .string "{STR_VAR_2}を てんそうした!$" + +gUnknown_81A5E31:: @ 81A5E31 + .string "There's no more room for POKéMON!\p" + .string "The POKéMON BOXES are full and\n" + .string "can't accept any more!$" + +Text_1A5E89:: @ 81A5E89 + .string "First, you should restore your\n" + .string "POKéMON to full health.$" + +Text_1A5EC0:: @ 81A5EC0 + .string "Your POKéMON have been healed\n" + .string "to perfect health.\p" + .string "If your POKéMON's energy, HP,\n" + .string "is down, please come see us.\p" + .string "If you're planning to go far in the\n" + .string "field, you should buy some POTIONS\l" + .string "at the POKéMON MART.\p" + .string "We hope you excel!$" + +Text_1A5F9B:: @ 81A5F9B + .string "Your POKéMON have been healed\n" + .string "to perfect health.\p" + .string "We hope you excel!$" + +Text_1A5FDF:: @ 81A5FDF + .string "MOM: {PLAYER}!\n" + .string "Welcome home.\p" + .string "It sounds like you had quite\n" + .string "an experience.\p" + .string "Maybe you should take a quick\n" + .string "rest.$" + +Text_1A6046:: @ 81A6046 + .string "MOM: Oh, good! You and your\n" + .string "POKéMON are looking great.\p" + .string "I just heard from PROF. OAK.\p" + .string "He said that POKéMON's energy is\n" + .string "measured in HP.\p" + .string "If your POKéMON lose their HP,\n" + .string "you can restore them at any\l" + .string "POKéMON CENTER.\p" + .string "If you're going to travel far away,\n" + .string "the smart TRAINER stocks up on\l" + .string "POTIONS at the POKéMON MART.\p" + .string "Make me proud, honey!\p" + .string "Take care!$" + +Text_1A6197:: @ 81A6197 + .string "{PLAYER} is out of usable\n" + .string "POKéMON!\p" + .string "{PLAYER} panicked and lost ¥{STR_VAR_1}…\p" + .string "… … … …\p" + .string "{PLAYER} whited out!$" + +Text_1A61E5:: @ 81A61E5 + .string "{PLAYER} is out of usable\n" + .string "POKéMON!\p" + .string "{PLAYER} whited out!$" + +Text_1A6211:: @ 81A6211 + .string "Hi, there!\n" + .string "May I help you?$" + +Text_1A622C:: @ 81A622C + .string "There is a questionnaire.\n" + .string "Would you like to fill it out?$" + +Text_1A6265:: @ 81A6265 + .string "Thank you for taking the time to\n" + .string "fill out our questionnaire.\p" + .string "Your feedback will be used for\n" + .string "future reference.$" + +Text_1A62D3:: @ 81A62D3 + .string "Oh, hello!\n" + .string "You know those words?\p" + .string "That means you must know about\n" + .string "the MYSTERY GIFT.\p" + .string "From now on, you should be\n" + .string "receiving MYSTERY GIFTS!$" + +Text_1A6359:: @ 81A6359 + .string "Once you save your game, you can\n" + .string "access the MYSTERY GIFT.$" + +Text_1A6393:: @ 81A6393 + .string "Thank you for accessing the\n" + .string "MYSTERY GIFT System.$" + +Text_1A63C4:: @ 81A63C4 + .string "The {STR_VAR_1} flew away!$" + +Text_1A63D6:: @ 81A63D6 + .string "ベッドが ある‥‥\n" + .string "やすんでいこう$" + +Text_1A63E8:: @ 81A63E8 + .string "{PLAYER} found a {STR_VAR_2}!\n" + .string "It contains {STR_VAR_1}.$" + +Text_1A6407:: @ 81A6407 + .string "おつかれさん!\n" + .string "どこに いきたいんだ?$" + +Text_1A641B:: @ 81A641B + .string "All right!\n" + .string "All aboard SEAGALLOP HI-SPEED {STR_VAR_1}!$" + +Text_1A6448:: @ 81A6448 + .string "Gyaoo!$" + +Text_1A644F:: @ 81A644F + .string "This move can be learned only\n" + .string "once. Is that okay?$" + + +gUnknown_81A6481:: @ 81A6481 + setflag FLAG_0x02B + setflag FLAG_0x02C + setflag FLAG_0x033 + setflag FLAG_0x092 + setflag FLAG_0x035 + setflag FLAG_0x036 + setflag FLAG_0x037 + setflag FLAG_0x03C + setflag FLAG_0x03D + setflag FLAG_0x0A1 + setflag FLAG_0x03F + setflag FLAG_0x04F + setflag FLAG_0x05A + setflag FLAG_0x0A3 + setflag FLAG_0x0A4 + setflag FLAG_0x062 + setflag FLAG_0x06B + setflag FLAG_0x0A2 + setflag FLAG_0x08C + setflag FLAG_0x06C + setflag FLAG_0x06D + setflag FLAG_0x06E + setflag FLAG_0x06F + setflag FLAG_0x075 + setflag FLAG_0x074 + setflag FLAG_0x07B + setflag FLAG_0x07C + setflag FLAG_0x07D + setflag FLAG_0x076 + setflag FLAG_0x091 + setflag FLAG_0x097 + setflag FLAG_0x090 + setflag FLAG_0x094 + setflag FLAG_0x095 + setflag FLAG_0x096 + setflag FLAG_0x099 + setflag FLAG_0x0A5 + setflag FLAG_0x0A6 + setflag FLAG_0x0A7 + setflag FLAG_0x0A8 + setflag FLAG_0x0A9 + setflag FLAG_0x0AA + setflag FLAG_0x0AB + setflag FLAG_0x0AC + setflag FLAG_0x09D + setflag FLAG_0x09E + setflag FLAG_0x09F + setflag FLAG_0x0A0 + setflag FLAG_0x0AE + setvar VAR_MIRAGE_RND_L, 500 + end + +EventScript_1A651A:: @ 81A651A + clearflag FLAG_0x09D + call EventScript_1A6551 + special sub_81130A8 + specialvar VAR_RESULT, sub_806E25C + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_1A653B + call EventScript_1A6541 + return + +EventScript_1A653B:: @ 81A653B + setvar VAR_MAP_SCENE_PALLET_TOWN, 2 + return + +EventScript_1A6541:: @ 81A6541 + clearflag FLAG_0x2F5 + clearflag FLAG_0x2F6 + clearflag FLAG_0x2F7 + return + +gUnknown_81A654B:: @ 81A654B + call EventScript_1A6551 + end + +EventScript_1A6551:: @ 81A6551 + clearflag FLAG_0x4B8 + clearflag FLAG_0x4B9 + clearflag FLAG_0x4BA + clearflag FLAG_0x4BB + clearflag FLAG_0x4BC + cleartrainerflag 438 + cleartrainerflag 439 + cleartrainerflag 440 + cleartrainerflag 739 + cleartrainerflag 740 + cleartrainerflag 741 + setvar VAR_0x4068, 0 + return + +EventScript_1A6578:: @ 81A6578 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + message Text_1A5483 + waitmessage + multichoice 19, 8, 0, 2 + switch VAR_RESULT + case 0, EventScript_1A65B8 + case 1 EventScript_1A6663 + case 127, EventScript_1A6663 + end + +EventScript_1A65B8:: @ 81A65B8 + incrementgamestat 15 + message Text_1A54E1 + waitmessage + call EventScript_1A65CE + special sub_80CC524 + goto EventScript_1A65EC + end + +EventScript_1A65CE:: @ 81A65CE + applymovement VAR_LAST_TALKED, Movement_1A75E7 + waitmovement 0 + dofieldeffect 25 + waitfieldeffect 25 + applymovement VAR_LAST_TALKED, Movement_1A75ED + waitmovement 0 + special sp000_heal_pokemon + return + +EventScript_1A65EC:: @ 81A65EC + specialvar VAR_RESULT, sub_80CD074 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A661D + specialvar VAR_RESULT, sp182_move_string + copyvar VAR_0x8008, VAR_RESULT + compare_var_to_value VAR_0x8008, 0 + goto_if_eq EventScript_1A661D + compare_var_to_value VAR_0x8008, 1 + goto_if_eq EventScript_1A6636 + end + +EventScript_1A661D:: @ 81A661D + message Text_1A552B + waitmessage + applymovement VAR_LAST_TALKED, Movement_1A666C + waitmovement 0 + loadword 0, Text_1A5511 + callstd 4 + return + +EventScript_1A6636:: @ 81A6636 + checkflag 2114 + goto_if_eq EventScript_1A661D + loadword 0, Text_1A552B + callstd 4 + setflag 2114 + message Text_1BCCCA + waitmessage + applymovement VAR_LAST_TALKED, Movement_1A666C + waitmovement 0 + loadword 0, Text_1A5511 + callstd 4 + return + +EventScript_1A6663:: @ 81A6663 + loadword 0, Text_1A5511 + callstd 4 + return + +Movement_1A666C:: @ 81A666C + step_5b + step_1a + step_end + +EventScript_1A666F:: @ 81A666F + copyvar VAR_MON_BOX_POS, VAR_MON_BOX_ID + return + +EventScript_1A6675:: @ 81A6675 + copyvar VAR_MON_BOX_ID, VAR_MON_BOX_POS + return + + + +gStdScript_0:: @ 81A667B + copyvar VAR_MON_BOX_POS, VAR_MON_BOX_ID + textcolor 3 + additem VAR_0x8000, VAR_0x8001 + copyvar VAR_0x8007, VAR_RESULT + call EventScript_1A6697 + copyvar VAR_MON_BOX_ID, VAR_MON_BOX_POS + return + +EventScript_1A6697:: @ 81A6697 + bufferitemnameplural 1, VAR_0x8000, VAR_0x8001 + checkitemtype VAR_0x8000 + call EventScript_1A66BC + compare_var_to_value VAR_0x8007, 1 + call_if 1, EventScript_1A6749 + compare_var_to_value VAR_0x8007, 0 + call_if 1, EventScript_1A675E + return + +EventScript_1A66BC:: @ 81A66BC + copyvar VAR_0x8000, VAR_RESULT + compare_var_to_value VAR_0x8000, 1 + goto_if_eq EventScript_1A66F9 + compare_var_to_value VAR_0x8000, 2 + goto_if_eq EventScript_1A6709 + compare_var_to_value VAR_0x8000, 3 + goto_if_eq EventScript_1A6719 + compare_var_to_value VAR_0x8000, 4 + goto_if_eq EventScript_1A6729 + compare_var_to_value VAR_0x8000, 5 + goto_if_eq EventScript_1A6739 + end + +EventScript_1A66F9:: @ 81A66F9 + getstdstring 2, 24 + compare_var_to_value VAR_0x8007, 1 + call_if 1, EventScript_1A6764 + return + +EventScript_1A6709:: @ 81A6709 + getstdstring 2, 25 + compare_var_to_value VAR_0x8007, 1 + call_if 1, EventScript_1A6764 + return + +EventScript_1A6719:: @ 81A6719 + getstdstring 2, 26 + compare_var_to_value VAR_0x8007, 1 + call_if 1, EventScript_1A6764 + return + +EventScript_1A6729:: @ 81A6729 + getstdstring 2, 27 + compare_var_to_value VAR_0x8007, 1 + call_if 1, EventScript_1A6768 + return + +EventScript_1A6739:: @ 81A6739 + getstdstring 2, 28 + compare_var_to_value VAR_0x8007, 1 + call_if 1, EventScript_1A6764 + return + +EventScript_1A6749:: @ 81A6749 + message Text_1A51F6 + waitfanfare + waitmessage + loadword 0, gUnknown_81A5218 + callstd 4 + setvar VAR_RESULT, 1 + return + +EventScript_1A675E:: @ 81A675E + setvar VAR_RESULT, 0 + return + +EventScript_1A6764:: @ 81A6764 + playfanfare MUS_FANFA1 + return + +EventScript_1A6768:: @ 81A6768 + playfanfare MUS_FANFA1 + return + +gStdScript_7:: @ 81A676C + adddecor VAR_0x8000 + copyvar VAR_0x8007, VAR_RESULT + call EventScript_1A677A + return + +EventScript_1A677A:: @ 81A677A + getdecorname 1, VAR_0x8000 + compare_var_to_value VAR_0x8007, 1 + call_if 1, EventScript_1A6795 + compare_var_to_value VAR_0x8007, 0 + call_if 1, EventScript_1A67AD + return + +EventScript_1A6795:: @ 81A6795 + playfanfare MUS_FANFA4 + message Text_1A52F0 + waitfanfare + waitmessage + loadword 0, gUnknown_81A532F + callstd 4 + setvar VAR_RESULT, 1 + return + +EventScript_1A67AD:: @ 81A67AD + setvar VAR_RESULT, 0 + return + +gStdScript_1:: @ 81A67B3 + lock + faceplayer + waitse + copyvar VAR_0x8004, VAR_0x8000 + copyvar VAR_0x8005, VAR_0x8001 + checkitemspace VAR_0x8000, VAR_0x8001 + copyvar VAR_0x8007, VAR_RESULT + getitemname 1, VAR_0x8000 + checkitemtype VAR_0x8000 + call EventScript_1A66BC + compare_var_to_value VAR_0x8007, 1 + call_if 1, EventScript_1A67EE + compare_var_to_value VAR_0x8007, 0 + call_if 1, EventScript_1A682D + release + return + +EventScript_1A67EE:: @ 81A67EE + removeobject VAR_LAST_TALKED + additem VAR_0x8004, VAR_0x8005 + specialvar VAR_RESULT, sub_80CC8CC + copyvar VAR_0x8008, VAR_RESULT + compare_var_to_value VAR_0x8008, 1 + call_if 1, EventScript_1A6821 + compare_var_to_value VAR_0x8008, 0 + call_if 1, EventScript_1A6827 + waitfanfare + waitmessage + loadword 0, gUnknown_81A5218 + callstd 4 + return + +EventScript_1A6821:: @ 81A6821 + message Text_1A63E8 + return + +EventScript_1A6827:: @ 81A6827 + message Text_1A5231 + return + +EventScript_1A682D:: @ 81A682D + loadword 0, Text_1A51F6 + callstd 4 + loadword 0, gUnknown_81A5242 + callstd 4 + setvar VAR_RESULT, 0 + return + +gUnknown_81A6843:: @ 81A6843 + .incbin "baserom.gba", 0x1A6843, 0x112 + +gUnknown_81A6955:: @ 81A6955 + .incbin "baserom.gba", 0x1A6955, 0x173 + +gUnknown_81A6AC8:: @ 81A6AC8 + .incbin "baserom.gba", 0x1A6AC8, 0x45 + +gUnknown_81A6B0D:: @ 81A6B0D + .incbin "baserom.gba", 0x1A6B0D, 0xB + +EventScript_1A6B18:: @ 81A6B18 + .incbin "baserom.gba", 0x1A6B18, 0xE1 + +EventScript_1A6BF9:: @ 81A6BF9 + .incbin "baserom.gba", 0x1A6BF9, 0x2D + +EventScript_1A6C26:: @ 81A6C26 + .incbin "baserom.gba", 0x1A6C26, 0xC + +gUnknown_81A6C32:: @ 81A6C32 + .incbin "baserom.gba", 0x1A6C32, 0xE5 + +gUnknown_81A6D17:: @ 81A6D17 + .incbin "baserom.gba", 0x1A6D17, 0x56 + +gUnknown_81A6D6D:: @ 81A6D6D + .incbin "baserom.gba", 0x1A6D6D, 0x72 + +gUnknown_81A6DDF:: @ 81A6DDF + .incbin "baserom.gba", 0x1A6DDF, 0x57 + +gUnknown_81A6E36:: @ 81A6E36 + .incbin "baserom.gba", 0x1A6E36, 0x6E + +gUnknown_81A6EA4:: @ 81A6EA4 + .incbin "baserom.gba", 0x1A6EA4, 0x67 + +gUnknown_81A6F0B:: @ 81A6F0B + .incbin "baserom.gba", 0x1A6F0B, 0x66 + +gUnknown_81A6F71:: @ 81A6F71 + .incbin "baserom.gba", 0x1A6F71, 0x3A + +gUnknown_81A6FAB:: @ 81A6FAB + .incbin "baserom.gba", 0x1A6FAB, 0x46 + +gUnknown_81A6FF1:: @ 81A6FF1 + .incbin "baserom.gba", 0x1A6FF1, 0x40 + +gUnknown_81A7031:: @ 81A7031 + .incbin "baserom.gba", 0x1A7031, 0x32 + +gUnknown_81A7063:: @ 81A7063 + .incbin "baserom.gba", 0x1A7063, 0x42 + +gUnknown_81A70A5:: @ 81A70A5 + .incbin "baserom.gba", 0x1A70A5, 0x33 + +gUnknown_81A70D8:: @ 81A70D8 + .incbin "baserom.gba", 0x1A70D8, 0x30 + +gUnknown_81A7108:: @ 81A7108 + .incbin "baserom.gba", 0x1A7108, 0x2F + +gUnknown_81A7137:: @ 81A7137 + .incbin "baserom.gba", 0x1A7137, 0x3E + +gUnknown_81A7175:: @ 81A7175 + .incbin "baserom.gba", 0x1A7175, 0x11C + +Text_1A7291:: @ 81A7291 + .incbin "baserom.gba", 0x1A7291, 0x1C + +gUnknown_81A72AD:: @ 81A72AD + .incbin "baserom.gba", 0x1A72AD, 0xCE + +EventScript_1A737B:: @ 81A737B + .incbin "baserom.gba", 0x1A737B, 0x170 + +EventScript_1A74EB:: @ 81A74EB + .incbin "baserom.gba", 0x1A74EB, 0x1B + +EventScript_1A7506:: @ 81A7506 + .incbin "baserom.gba", 0x1A7506, 0x19 + +EventScript_1A751F:: @ 81A751F + .incbin "baserom.gba", 0x1A751F, 0x19 + +EventScript_1A7538:: @ 81A7538 + .incbin "baserom.gba", 0x1A7538, 0x2B + +EventScript_1A7563:: @ 81A7563 + .incbin "baserom.gba", 0x1A7563, 0x26 + +EventScript_1A7589:: @ 81A7589 + .incbin "baserom.gba", 0x1A7589, 0x13 + +EventScript_1A759C:: @ 81A759C + .incbin "baserom.gba", 0x1A759C, 0x39 + +EventScript_1A75D5:: @ 81A75D5 + .incbin "baserom.gba", 0x1A75D5, 0x4 + +Movement_1A75D9:: @ 81A75D9 + .incbin "baserom.gba", 0x1A75D9, 0x2 + +Movement_1A75DB:: @ 81A75DB + .incbin "baserom.gba", 0x1A75DB, 0x2 + +Movement_1A75DD:: @ 81A75DD + .incbin "baserom.gba", 0x1A75DD, 0x4 + +Movement_1A75E1:: @ 81A75E1 + .incbin "baserom.gba", 0x1A75E1, 0x4 + +Movement_1A75E5:: @ 81A75E5 + .incbin "baserom.gba", 0x1A75E5, 0x2 + +Movement_1A75E7:: @ 81A75E7 + .incbin "baserom.gba", 0x1A75E7, 0x2 + +Movement_1A75E9:: @ 81A75E9 + .incbin "baserom.gba", 0x1A75E9, 0x2 + +Movement_1A75EB:: @ 81A75EB + .incbin "baserom.gba", 0x1A75EB, 0x2 + +Movement_1A75ED:: @ 81A75ED + .incbin "baserom.gba", 0x1A75ED, 0x2 + +Movement_1A75EF:: @ 81A75EF + .incbin "baserom.gba", 0x1A75EF, 0x2 + +Movement_1A75F1:: @ 81A75F1 + .incbin "baserom.gba", 0x1A75F1, 0x15 + +gUnknown_81A7606:: @ 81A7606 + .incbin "baserom.gba", 0x1A7606, 0x9 + +gUnknown_81A760F:: @ 81A760F + .incbin "baserom.gba", 0x1A760F, 0x9 + +gUnknown_81A7618:: @ 81A7618 + .incbin "baserom.gba", 0x1A7618, 0x9 + +gUnknown_81A7621:: @ 81A7621 + .incbin "baserom.gba", 0x1A7621, 0x9 + +gUnknown_81A762A:: @ 81A762A + .incbin "baserom.gba", 0x1A762A, 0x9 + +gUnknown_81A7633:: @ 81A7633 + .incbin "baserom.gba", 0x1A7633, 0x9 + +gUnknown_81A763C:: @ 81A763C + .incbin "baserom.gba", 0x1A763C, 0x9 + +gUnknown_81A7645:: @ 81A7645 + .incbin "baserom.gba", 0x1A7645, 0x9 + +gUnknown_81A764E:: @ 81A764E + .incbin "baserom.gba", 0x1A764E, 0x9 + +gUnknown_81A7657:: @ 81A7657 + .incbin "baserom.gba", 0x1A7657, 0x9 + +gUnknown_81A7660:: @ 81A7660 + .incbin "baserom.gba", 0x1A7660, 0x9 + +gUnknown_81A7669:: @ 81A7669 + .incbin "baserom.gba", 0x1A7669, 0x9 + +gUnknown_81A7672:: @ 81A7672 + .incbin "baserom.gba", 0x1A7672, 0x9 + +gUnknown_81A767B:: @ 81A767B + .incbin "baserom.gba", 0x1A767B, 0x9 + +gUnknown_81A7684:: @ 81A7684 + .incbin "baserom.gba", 0x1A7684, 0x9 + +gUnknown_81A768D:: @ 81A768D + .incbin "baserom.gba", 0x1A768D, 0x9 + +gUnknown_81A7696:: @ 81A7696 + .incbin "baserom.gba", 0x1A7696, 0x9 + +gUnknown_81A769F:: @ 81A769F + .incbin "baserom.gba", 0x1A769F, 0x9 + +gUnknown_81A76A8:: @ 81A76A8 + .incbin "baserom.gba", 0x1A76A8, 0x9 + +gUnknown_81A76B1:: @ 81A76B1 + .incbin "baserom.gba", 0x1A76B1, 0x9 + +gUnknown_81A76BA:: @ 81A76BA + .incbin "baserom.gba", 0x1A76BA, 0x9 + +gUnknown_81A76C3:: @ 81A76C3 + .incbin "baserom.gba", 0x1A76C3, 0x9 + +gUnknown_81A76CC:: @ 81A76CC + .incbin "baserom.gba", 0x1A76CC, 0x9 + +gUnknown_81A76D5:: @ 81A76D5 + .incbin "baserom.gba", 0x1A76D5, 0x9 + +gUnknown_81A76DE:: @ 81A76DE + .incbin "baserom.gba", 0x1A76DE, 0x9 + +gUnknown_81A76E7:: @ 81A76E7 + .incbin "baserom.gba", 0x1A76E7, 0x9 + +gUnknown_81A76F0:: @ 81A76F0 + .incbin "baserom.gba", 0x1A76F0, 0x9 + +gUnknown_81A76F9:: @ 81A76F9 + .incbin "baserom.gba", 0x1A76F9, 0x9 + +gUnknown_81A7702:: @ 81A7702 + .incbin "baserom.gba", 0x1A7702, 0x9E + +gUnknown_81A77A0:: @ 81A77A0 + .incbin "baserom.gba", 0x1A77A0, 0x9 + +EventScript_1A77A9:: @ 81A77A9 + .incbin "baserom.gba", 0x1A77A9, 0x1 + +EventScript_1A77AA:: @ 81A77AA + .incbin "baserom.gba", 0x1A77AA, 0x6 + +EventScript_1A77B0:: @ 81A77B0 + .incbin "baserom.gba", 0x1A77B0, 0x6 + +Route16_NorthEntrance_1F_EventScript_1A77B6:: @ 81A77B6 +Route18_EastEntrance_1F_EventScript_1A77B6:: @ 81A77B6 + .incbin "baserom.gba", 0x1A77B6, 0xB + +Route16_NorthEntrance_1F_EventScript_1A77C1:: @ 81A77C1 +Route18_EastEntrance_1F_EventScript_1A77C1:: @ 81A77C1 + .incbin "baserom.gba", 0x1A77C1, 0x42 + +EventScript_1A7803:: @ 81A7803 + .incbin "baserom.gba", 0x1A7803, 0x69 + +EventScript_1A786C:: @ 81A786C + .incbin "baserom.gba", 0x1A786C, 0x102 + +EventScript_1A796E:: @ 81A796E + .incbin "baserom.gba", 0x1A796E, 0x14B + +EventScript_1A7AB9:: @ 81A7AB9 + .incbin "baserom.gba", 0x1A7AB9, 0x4 + +EventScript_1A7ABD:: @ 81A7ABD + .incbin "baserom.gba", 0x1A7ABD, 0xA + +EventScript_1A7AC7:: @ 81A7AC7 + .incbin "baserom.gba", 0x1A7AC7, 0xA + +EventScript_1A7AD1:: @ 81A7AD1 + .incbin "baserom.gba", 0x1A7AD1, 0xA + +gUnknown_81A7ADB:: @ 81A7ADB + .incbin "baserom.gba", 0x1A7ADB, 0x5 + +EventScript_1A7AE0:: @ 81A7AE0 + .incbin "baserom.gba", 0x1A7AE0, 0x2 + +EventScript_1A7AE2:: @ 81A7AE2 + .incbin "baserom.gba", 0x1A7AE2, 0x98 + +EventScript_1A7B7A:: @ 81A7B7A + .incbin "baserom.gba", 0x1A7B7A, 0x1C4 + +EventScript_1A7D3E:: @ 81A7D3E + .incbin "baserom.gba", 0x1A7D3E, 0x134 + +EventScript_1A7E72:: @ 81A7E72 + .incbin "baserom.gba", 0x1A7E72, 0xDA + +EventScript_1A7F4C:: @ 81A7F4C + .incbin "baserom.gba", 0x1A7F4C, 0x1FD + +EventScript_1A8149:: @ 81A8149 + .incbin "baserom.gba", 0x1A8149, 0x2E + +EventScript_1A8177:: @ 81A8177 + .incbin "baserom.gba", 0x1A8177, 0x2E + +EventScript_1A81A5:: @ 81A81A5 + .incbin "baserom.gba", 0x1A81A5, 0x37 + +EventScript_1A81DC:: @ 81A81DC + .incbin "baserom.gba", 0x1A81DC, 0x37 + +EventScript_1A8213:: @ 81A8213 + .incbin "baserom.gba", 0x1A8213, 0x2E + +EventScript_1A8241:: @ 81A8241 + .incbin "baserom.gba", 0x1A8241, 0x2E + +EventScript_1A826F:: @ 81A826F + .incbin "baserom.gba", 0x1A826F, 0x37 + +EventScript_1A82A6:: @ 81A82A6 + .incbin "baserom.gba", 0x1A82A6, 0x37 + +EventScript_1A82DD:: @ 81A82DD + .incbin "baserom.gba", 0x1A82DD, 0x37 + +EventScript_1A8314:: @ 81A8314 + .incbin "baserom.gba", 0x1A8314, 0x37 + +EventScript_1A834B:: @ 81A834B + .incbin "baserom.gba", 0x1A834B, 0x2E + +EventScript_1A8379:: @ 81A8379 + .incbin "baserom.gba", 0x1A8379, 0x2E + +EventScript_1A83A7:: @ 81A83A7 + .incbin "baserom.gba", 0x1A83A7, 0x2E + +EventScript_1A83D5:: @ 81A83D5 + .incbin "baserom.gba", 0x1A83D5, 0x37 + +EventScript_1A840C:: @ 81A840C + .incbin "baserom.gba", 0x1A840C, 0x37 + +EventScript_1A8443:: @ 81A8443 + .incbin "baserom.gba", 0x1A8443, 0x37 + +EventScript_1A847A:: @ 81A847A + .incbin "baserom.gba", 0x1A847A, 0x2E + +EventScript_1A84A8:: @ 81A84A8 + .incbin "baserom.gba", 0x1A84A8, 0x2E + +EventScript_1A84D6:: @ 81A84D6 + .incbin "baserom.gba", 0x1A84D6, 0x2E + +EventScript_1A8504:: @ 81A8504 + .incbin "baserom.gba", 0x1A8504, 0x417 + +SilphCo_2F_EventScript_1A891B:: @ 81A891B + .incbin "baserom.gba", 0x1A891B, 0x1A + +SilphCo_2F_EventScript_1A8935:: @ 81A8935 + .incbin "baserom.gba", 0x1A8935, 0x1A + +SilphCo_3F_EventScript_1A894F:: @ 81A894F + .incbin "baserom.gba", 0x1A894F, 0x1A + +SilphCo_3F_EventScript_1A8969:: @ 81A8969 + .incbin "baserom.gba", 0x1A8969, 0x1A + +SilphCo_4F_EventScript_1A8983:: @ 81A8983 + .incbin "baserom.gba", 0x1A8983, 0x1A + +SilphCo_4F_EventScript_1A899D:: @ 81A899D + .incbin "baserom.gba", 0x1A899D, 0x1A + +SilphCo_5F_EventScript_1A89B7:: @ 81A89B7 + .incbin "baserom.gba", 0x1A89B7, 0x1A + +SilphCo_5F_EventScript_1A89D1:: @ 81A89D1 + .incbin "baserom.gba", 0x1A89D1, 0x1A + +SilphCo_5F_EventScript_1A89EB:: @ 81A89EB + .incbin "baserom.gba", 0x1A89EB, 0x1A + +SilphCo_6F_EventScript_1A8A05:: @ 81A8A05 + .incbin "baserom.gba", 0x1A8A05, 0x1A + +SilphCo_7F_EventScript_1A8A1F:: @ 81A8A1F + .incbin "baserom.gba", 0x1A8A1F, 0x1A + +SilphCo_7F_EventScript_1A8A39:: @ 81A8A39 + .incbin "baserom.gba", 0x1A8A39, 0x1A + +SilphCo_7F_EventScript_1A8A53:: @ 81A8A53 + .incbin "baserom.gba", 0x1A8A53, 0x1A + +SilphCo_8F_EventScript_1A8A6D:: @ 81A8A6D + .incbin "baserom.gba", 0x1A8A6D, 0x1A + +SilphCo_9F_EventScript_1A8A87:: @ 81A8A87 + .incbin "baserom.gba", 0x1A8A87, 0x1A + +SilphCo_9F_EventScript_1A8AA1:: @ 81A8AA1 + .incbin "baserom.gba", 0x1A8AA1, 0x1A + +SilphCo_9F_EventScript_1A8ABB:: @ 81A8ABB + .incbin "baserom.gba", 0x1A8ABB, 0x1A + +SilphCo_9F_EventScript_1A8AD5:: @ 81A8AD5 + .incbin "baserom.gba", 0x1A8AD5, 0x1A + +SilphCo_10F_EventScript_1A8AEF:: @ 81A8AEF + .incbin "baserom.gba", 0x1A8AEF, 0x1A + +SilphCo_11F_EventScript_1A8B09:: @ 81A8B09 + .incbin "baserom.gba", 0x1A8B09, 0x11E + +EventScript_1A8C27:: @ 81A8C27 + .incbin "baserom.gba", 0x1A8C27, 0xC + +EventScript_1A8C33:: @ 81A8C33 + .incbin "baserom.gba", 0x1A8C33, 0x9 + +EventScript_1A8C3C:: @ 81A8C3C + .incbin "baserom.gba", 0x1A8C3C, 0x71 + +EventScript_1A8CAD:: @ 81A8CAD + .incbin "baserom.gba", 0x1A8CAD, 0x10 + +EventScript_1A8CBD:: @ 81A8CBD + .incbin "baserom.gba", 0x1A8CBD, 0xC + +EventScript_1A8CC9:: @ 81A8CC9 + .incbin "baserom.gba", 0x1A8CC9, 0x10 + +EventScript_1A8CD9:: @ 81A8CD9 + .incbin "baserom.gba", 0x1A8CD9, 0x14 + +gUnknown_81A8CED:: @ 81A8CED + .incbin "baserom.gba", 0x1A8CED, 0x9 + +CeruleanCity_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +CinnabarIsland_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +FiveIsland_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +FuchsiaCity_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +OneIsland_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +PewterCity_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +SevenIsland_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +VermilionCity_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +FourIsland_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +SixIsland_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +ThreeIsland_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +TwoIsland_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +Route10_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +Route10_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +Route4_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +SaffronCity_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +IndigoPlateau_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +CeladonCity_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +LavenderTown_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 +ViridianCity_PokemonCenter_2F_EventScript_1A8CF6:: @ 81A8CF6 + .incbin "baserom.gba", 0x1A8CF6, 0x6 + +CeruleanCity_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +CinnabarIsland_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +FiveIsland_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +FuchsiaCity_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +OneIsland_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +PewterCity_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +SevenIsland_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +VermilionCity_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +FourIsland_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +SixIsland_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +ThreeIsland_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +TwoIsland_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +Route10_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +Route10_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +Route4_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +SaffronCity_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +IndigoPlateau_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +CeladonCity_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +LavenderTown_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC +ViridianCity_PokemonCenter_2F_EventScript_1A8CFC:: @ 81A8CFC + .incbin "baserom.gba", 0x1A8CFC, 0x6 + +CeruleanCity_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +CinnabarIsland_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +FiveIsland_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +FuchsiaCity_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +OneIsland_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +PewterCity_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +SevenIsland_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +VermilionCity_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +FourIsland_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +SixIsland_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +ThreeIsland_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +TwoIsland_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +Route10_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +Route10_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +Route4_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +SaffronCity_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +IndigoPlateau_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +CeladonCity_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +LavenderTown_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 +ViridianCity_PokemonCenter_2F_EventScript_1A8D02:: @ 81A8D02 + .incbin "baserom.gba", 0x1A8D02, 0x6 + +VermilionCity_PokemonCenter_1F_EventScript_1A8D08:: @ 81A8D08 + .incbin "baserom.gba", 0x1A8D08, 0x41 + +gUnknown_81A8D49:: @ 81A8D49 + .incbin "baserom.gba", 0x1A8D49, 0x4E + +gUnknown_81A8D97:: @ 81A8D97 + .incbin "baserom.gba", 0x1A8D97, 0x41 + +gUnknown_81A8DD8:: @ 81A8DD8 + .incbin "baserom.gba", 0x1A8DD8, 0x25 + +gUnknown_81A8DFD:: @ 81A8DFD + .incbin "baserom.gba", 0x1A8DFD, 0x5B + +gStdScript_8:: @ 81A8E58 + .incbin "baserom.gba", 0x1A8E58, 0x6D + +EventScript_1A8EC5:: @ 81A8EC5 + .incbin "baserom.gba", 0x1A8EC5, 0x8F + +EventScript_1A8F54:: @ 81A8F54 + .incbin "baserom.gba", 0x1A8F54, 0x9A + +EventScript_1A8FEE:: @ 81A8FEE + .incbin "baserom.gba", 0x1A8FEE, 0xB + +EventScript_1A8FF9:: @ 81A8FF9 + .incbin "baserom.gba", 0x1A8FF9, 0xB + +EventScript_1A9004:: @ 81A9004 + .incbin "baserom.gba", 0x1A9004, 0xB + +EventScript_1A900F:: @ 81A900F + .incbin "baserom.gba", 0x1A900F, 0xCB + +EventScript_1A90DA:: @ 81A90DA + .incbin "baserom.gba", 0x1A90DA, 0x1C + +EventScript_1A90F6:: @ 81A90F6 + .incbin "baserom.gba", 0x1A90F6, 0x12 + +EventScript_1A9108:: @ 81A9108 + .incbin "baserom.gba", 0x1A9108, 0x16 + +EventScript_1A911E:: @ 81A911E + .incbin "baserom.gba", 0x1A911E, 0xB7 + +EventScript_1A91D5:: @ 81A91D5 + .incbin "baserom.gba", 0x1A91D5, 0x58 + +EventScript_1A922D:: @ 81A922D + .incbin "baserom.gba", 0x1A922D, 0x9 + +EventScript_1A9236:: @ 81A9236 + .incbin "baserom.gba", 0x1A9236, 0x15 + +EventScript_1A924B:: @ 81A924B + .incbin "baserom.gba", 0x1A924B, 0x13 + +EventScript_1A925E:: @ 81A925E + .incbin "baserom.gba", 0x1A925E, 0xE + +EventScript_1A926C:: @ 81A926C + .incbin "baserom.gba", 0x1A926C, 0x10 + +EventScript_1A927C:: @ 81A927C + .incbin "baserom.gba", 0x1A927C, 0xC + +gUnknown_81A9288:: @ 81A9288 + .incbin "baserom.gba", 0x1A9288, 0x3 + +gUnknown_81A928B:: @ 81A928B + .incbin "baserom.gba", 0x1A928B, 0x5 + +gUnknown_81A9290:: @ 81A9290 + .incbin "baserom.gba", 0x1A9290, 0x6 + +gUnknown_81A9296:: @ 81A9296 + .incbin "baserom.gba", 0x1A9296, 0x5 + +gUnknown_81A929B:: @ 81A929B + .incbin "baserom.gba", 0x1A929B, 0x4 + +gUnknown_81A929F:: @ 81A929F + .incbin "baserom.gba", 0x1A929F, 0x4 + +gUnknown_81A92A3:: @ 81A92A3 + .incbin "baserom.gba", 0x1A92A3, 0x4 + +gUnknown_81A92A7:: @ 81A92A7 + .incbin "baserom.gba", 0x1A92A7, 0x4 + +gUnknown_81A92AB:: @ 81A92AB + .incbin "baserom.gba", 0x1A92AB, 0x4 + +gUnknown_81A92AF:: @ 81A92AF + .incbin "baserom.gba", 0x1A92AF, 0x4 + +gUnknown_81A92B3:: @ 81A92B3 + .incbin "baserom.gba", 0x1A92B3, 0x4 + +gUnknown_81A92B7:: @ 81A92B7 + .incbin "baserom.gba", 0x1A92B7, 0x5 + +gUnknown_81A92BC:: @ 81A92BC + .incbin "baserom.gba", 0x1A92BC, 0x5 + +gUnknown_81A92C1:: @ 81A92C1 + .incbin "baserom.gba", 0x1A92C1, 0x2 + +gUnknown_81A92C3:: @ 81A92C3 + .incbin "baserom.gba", 0x1A92C3, 0x2 + +gUnknown_81A92C5:: @ 81A92C5 + .incbin "baserom.gba", 0x1A92C5, 0xB + +gUnknown_81A92D0:: @ 81A92D0 + .incbin "baserom.gba", 0x1A92D0, 0xC + +gUnknown_81A92DC:: @ 81A92DC + .incbin "baserom.gba", 0x1A92DC, 0xA + +gUnknown_81A92E6:: @ 81A92E6 + .incbin "baserom.gba", 0x1A92E6, 0xC + +gUnknown_81A92F2:: @ 81A92F2 + .incbin "baserom.gba", 0x1A92F2, 0xC + +gUnknown_81A92FE:: @ 81A92FE + .incbin "baserom.gba", 0x1A92FE, 0xC + +gUnknown_81A930A:: @ 81A930A + .incbin "baserom.gba", 0x1A930A, 0xC + +gUnknown_81A9316:: @ 81A9316 + .incbin "baserom.gba", 0x1A9316, 0xB + +gUnknown_81A9321:: @ 81A9321 + .incbin "baserom.gba", 0x1A9321, 0xC + +gUnknown_81A932D:: @ 81A932D + .incbin "baserom.gba", 0x1A932D, 0xB + +gUnknown_81A9338:: @ 81A9338 + .incbin "baserom.gba", 0x1A9338, 0x7 + +gUnknown_81A933F:: @ 81A933F + .incbin "baserom.gba", 0x1A933F, 0xB + +gUnknown_81A934A:: @ 81A934A + .incbin "baserom.gba", 0x1A934A, 0xC + +gUnknown_81A9356:: @ 81A9356 + .incbin "baserom.gba", 0x1A9356, 0xC + +gUnknown_81A9362:: @ 81A9362 + .incbin "baserom.gba", 0x1A9362, 0x6 + +gUnknown_81A9368:: @ 81A9368 + .incbin "baserom.gba", 0x1A9368, 0xC + +gUnknown_81A9374:: @ 81A9374 + .incbin "baserom.gba", 0x1A9374, 0x8 + +gUnknown_81A937C:: @ 81A937C + .incbin "baserom.gba", 0x1A937C, 0xB + +gUnknown_81A9387:: @ 81A9387 + .incbin "baserom.gba", 0x1A9387, 0xC + +gUnknown_81A9393:: @ 81A9393 + .incbin "baserom.gba", 0x1A9393, 0xC + +gUnknown_81A939F:: @ 81A939F + .incbin "baserom.gba", 0x1A939F, 0xC + +gUnknown_81A93AB:: @ 81A93AB + .incbin "baserom.gba", 0x1A93AB, 0x9 + +gUnknown_81A93B4:: @ 81A93B4 + .incbin "baserom.gba", 0x1A93B4, 0xC + +gUnknown_81A93C0:: @ 81A93C0 + .incbin "baserom.gba", 0x1A93C0, 0x9 + +Route3_EventScript_1A93C9:: @ 81A93C9 + .incbin "baserom.gba", 0x1A93C9, 0x3E + +Route3_EventScript_1A9407:: @ 81A9407 + .incbin "baserom.gba", 0x1A9407, 0x3E + +Route3_EventScript_1A9445:: @ 81A9445 + .incbin "baserom.gba", 0x1A9445, 0x3E + +Route3_EventScript_1A9483:: @ 81A9483 + .incbin "baserom.gba", 0x1A9483, 0x3E + +Route3_EventScript_1A94C1:: @ 81A94C1 + .incbin "baserom.gba", 0x1A94C1, 0x3E + +Route3_EventScript_1A94FF:: @ 81A94FF + .incbin "baserom.gba", 0x1A94FF, 0x3E + +Route3_EventScript_1A953D:: @ 81A953D + .incbin "baserom.gba", 0x1A953D, 0x3E + +Route3_EventScript_1A957B:: @ 81A957B + .incbin "baserom.gba", 0x1A957B, 0x3E + +Route4_EventScript_1A95B9:: @ 81A95B9 + .incbin "baserom.gba", 0x1A95B9, 0x3E + +Route24_EventScript_1A95F7:: @ 81A95F7 + .incbin "baserom.gba", 0x1A95F7, 0x3E + +Route24_EventScript_1A9635:: @ 81A9635 + .incbin "baserom.gba", 0x1A9635, 0x3E + +Route24_EventScript_1A9673:: @ 81A9673 + .incbin "baserom.gba", 0x1A9673, 0x3E + +Route24_EventScript_1A96B1:: @ 81A96B1 + .incbin "baserom.gba", 0x1A96B1, 0x3E + +Route24_EventScript_1A96EF:: @ 81A96EF + .incbin "baserom.gba", 0x1A96EF, 0x3E + +Route24_EventScript_1A972D:: @ 81A972D + .incbin "baserom.gba", 0x1A972D, 0x3E + +Route25_EventScript_1A976B:: @ 81A976B + .incbin "baserom.gba", 0x1A976B, 0x3E + +Route25_EventScript_1A97A9:: @ 81A97A9 + .incbin "baserom.gba", 0x1A97A9, 0x3E + +Route25_EventScript_1A97E7:: @ 81A97E7 + .incbin "baserom.gba", 0x1A97E7, 0x3E + +Route25_EventScript_1A9825:: @ 81A9825 + .incbin "baserom.gba", 0x1A9825, 0x3E + +Route25_EventScript_1A9863:: @ 81A9863 + .incbin "baserom.gba", 0x1A9863, 0x3E + +Route25_EventScript_1A98A1:: @ 81A98A1 + .incbin "baserom.gba", 0x1A98A1, 0x3E + +Route25_EventScript_1A98DF:: @ 81A98DF + .incbin "baserom.gba", 0x1A98DF, 0x3E + +Route25_EventScript_1A991D:: @ 81A991D + .incbin "baserom.gba", 0x1A991D, 0x3E + +Route25_EventScript_1A995B:: @ 81A995B + .incbin "baserom.gba", 0x1A995B, 0x3E + +Route6_EventScript_1A9999:: @ 81A9999 + .incbin "baserom.gba", 0x1A9999, 0x3E + +Route6_EventScript_1A99D7:: @ 81A99D7 + .incbin "baserom.gba", 0x1A99D7, 0x3E + +Route6_EventScript_1A9A15:: @ 81A9A15 + .incbin "baserom.gba", 0x1A9A15, 0x3E + +Route6_EventScript_1A9A53:: @ 81A9A53 + .incbin "baserom.gba", 0x1A9A53, 0x3E + +Route6_EventScript_1A9A91:: @ 81A9A91 + .incbin "baserom.gba", 0x1A9A91, 0x3E + +Route6_EventScript_1A9ACF:: @ 81A9ACF + .incbin "baserom.gba", 0x1A9ACF, 0x3E + +Route11_EventScript_1A9B0D:: @ 81A9B0D + .incbin "baserom.gba", 0x1A9B0D, 0x3E + +Route11_EventScript_1A9B4B:: @ 81A9B4B + .incbin "baserom.gba", 0x1A9B4B, 0x3E + +Route11_EventScript_1A9B89:: @ 81A9B89 + .incbin "baserom.gba", 0x1A9B89, 0x3E + +Route11_EventScript_1A9BC7:: @ 81A9BC7 + .incbin "baserom.gba", 0x1A9BC7, 0x3E + +Route11_EventScript_1A9C05:: @ 81A9C05 + .incbin "baserom.gba", 0x1A9C05, 0x3E + +Route11_EventScript_1A9C43:: @ 81A9C43 + .incbin "baserom.gba", 0x1A9C43, 0x3E + +Route11_EventScript_1A9C81:: @ 81A9C81 + .incbin "baserom.gba", 0x1A9C81, 0x3E + +Route11_EventScript_1A9CBF:: @ 81A9CBF + .incbin "baserom.gba", 0x1A9CBF, 0x3E + +Route11_EventScript_1A9CFD:: @ 81A9CFD + .incbin "baserom.gba", 0x1A9CFD, 0x3E + +Route11_EventScript_1A9D3B:: @ 81A9D3B + .incbin "baserom.gba", 0x1A9D3B, 0x3E + +Route9_EventScript_1A9D79:: @ 81A9D79 + .incbin "baserom.gba", 0x1A9D79, 0x3E + +Route9_EventScript_1A9DB7:: @ 81A9DB7 + .incbin "baserom.gba", 0x1A9DB7, 0x3E + +Route9_EventScript_1A9DF5:: @ 81A9DF5 + .incbin "baserom.gba", 0x1A9DF5, 0x3E + +Route9_EventScript_1A9E33:: @ 81A9E33 + .incbin "baserom.gba", 0x1A9E33, 0x3E + +Route9_EventScript_1A9E71:: @ 81A9E71 + .incbin "baserom.gba", 0x1A9E71, 0x3E + +Route9_EventScript_1A9EAF:: @ 81A9EAF + .incbin "baserom.gba", 0x1A9EAF, 0x3E + +Route9_EventScript_1A9EED:: @ 81A9EED + .incbin "baserom.gba", 0x1A9EED, 0x3E + +Route9_EventScript_1A9F2B:: @ 81A9F2B + .incbin "baserom.gba", 0x1A9F2B, 0x3E + +Route9_EventScript_1A9F69:: @ 81A9F69 + .incbin "baserom.gba", 0x1A9F69, 0x3E + +Route10_EventScript_1A9FA7:: @ 81A9FA7 + .incbin "baserom.gba", 0x1A9FA7, 0x3E + +Route10_EventScript_1A9FE5:: @ 81A9FE5 + .incbin "baserom.gba", 0x1A9FE5, 0x3E + +Route10_EventScript_1AA023:: @ 81AA023 + .incbin "baserom.gba", 0x1AA023, 0x3E + +Route10_EventScript_1AA061:: @ 81AA061 + .incbin "baserom.gba", 0x1AA061, 0x3E + +Route10_EventScript_1AA09F:: @ 81AA09F + .incbin "baserom.gba", 0x1AA09F, 0x3E + +Route10_EventScript_1AA0DD:: @ 81AA0DD + .incbin "baserom.gba", 0x1AA0DD, 0x3E + +Route8_EventScript_1AA11B:: @ 81AA11B + .incbin "baserom.gba", 0x1AA11B, 0x3E + +Route8_EventScript_1AA159:: @ 81AA159 + .incbin "baserom.gba", 0x1AA159, 0x3E + +Route8_EventScript_1AA197:: @ 81AA197 + .incbin "baserom.gba", 0x1AA197, 0x3E + +Route8_EventScript_1AA1D5:: @ 81AA1D5 + .incbin "baserom.gba", 0x1AA1D5, 0x3E + +Route8_EventScript_1AA213:: @ 81AA213 + .incbin "baserom.gba", 0x1AA213, 0x3E + +Route8_EventScript_1AA251:: @ 81AA251 + .incbin "baserom.gba", 0x1AA251, 0x3E + +Route8_EventScript_1AA28F:: @ 81AA28F + .incbin "baserom.gba", 0x1AA28F, 0x3E + +Route8_EventScript_1AA2CD:: @ 81AA2CD + .incbin "baserom.gba", 0x1AA2CD, 0x3E + +Route8_EventScript_1AA30B:: @ 81AA30B + .incbin "baserom.gba", 0x1AA30B, 0x3E + +Route8_EventScript_1AA349:: @ 81AA349 + .incbin "baserom.gba", 0x1AA349, 0x46 + +Route8_EventScript_1AA38F:: @ 81AA38F + .incbin "baserom.gba", 0x1AA38F, 0x46 + +Route8_EventScript_1AA3D5:: @ 81AA3D5 + .incbin "baserom.gba", 0x1AA3D5, 0x3E + +Route8_EventScript_1AA413:: @ 81AA413 + .incbin "baserom.gba", 0x1AA413, 0x3E + +Route12_EventScript_1AA451:: @ 81AA451 + .incbin "baserom.gba", 0x1AA451, 0x3E + +Route12_EventScript_1AA48F:: @ 81AA48F + .incbin "baserom.gba", 0x1AA48F, 0x3E + +Route12_EventScript_1AA4CD:: @ 81AA4CD + .incbin "baserom.gba", 0x1AA4CD, 0x3E + +Route12_EventScript_1AA50B:: @ 81AA50B + .incbin "baserom.gba", 0x1AA50B, 0x3E + +Route12_EventScript_1AA549:: @ 81AA549 + .incbin "baserom.gba", 0x1AA549, 0x3E + +Route12_EventScript_1AA587:: @ 81AA587 + .incbin "baserom.gba", 0x1AA587, 0x3E + +Route12_EventScript_1AA5C5:: @ 81AA5C5 + .incbin "baserom.gba", 0x1AA5C5, 0x3E + +Route12_EventScript_1AA603:: @ 81AA603 + .incbin "baserom.gba", 0x1AA603, 0x46 + +Route12_EventScript_1AA649:: @ 81AA649 + .incbin "baserom.gba", 0x1AA649, 0x46 + +Route13_EventScript_1AA68F:: @ 81AA68F + .incbin "baserom.gba", 0x1AA68F, 0x3E + +Route13_EventScript_1AA6CD:: @ 81AA6CD + .incbin "baserom.gba", 0x1AA6CD, 0x3E + +Route13_EventScript_1AA70B:: @ 81AA70B + .incbin "baserom.gba", 0x1AA70B, 0x3E + +Route13_EventScript_1AA749:: @ 81AA749 + .incbin "baserom.gba", 0x1AA749, 0x3E + +Route13_EventScript_1AA787:: @ 81AA787 + .incbin "baserom.gba", 0x1AA787, 0x3E + +Route13_EventScript_1AA7C5:: @ 81AA7C5 + .incbin "baserom.gba", 0x1AA7C5, 0x3E + +Route13_EventScript_1AA803:: @ 81AA803 + .incbin "baserom.gba", 0x1AA803, 0x3E + +Route13_EventScript_1AA841:: @ 81AA841 + .incbin "baserom.gba", 0x1AA841, 0x3E + +Route13_EventScript_1AA87F:: @ 81AA87F + .incbin "baserom.gba", 0x1AA87F, 0x3E + +Route13_EventScript_1AA8BD:: @ 81AA8BD + .incbin "baserom.gba", 0x1AA8BD, 0x3E + +Route14_EventScript_1AA8FB:: @ 81AA8FB + .incbin "baserom.gba", 0x1AA8FB, 0x3E + +Route14_EventScript_1AA939:: @ 81AA939 + .incbin "baserom.gba", 0x1AA939, 0x3E + +Route14_EventScript_1AA977:: @ 81AA977 + .incbin "baserom.gba", 0x1AA977, 0x3E + +Route14_EventScript_1AA9B5:: @ 81AA9B5 + .incbin "baserom.gba", 0x1AA9B5, 0x3E + +Route14_EventScript_1AA9F3:: @ 81AA9F3 + .incbin "baserom.gba", 0x1AA9F3, 0x3E + +Route14_EventScript_1AAA31:: @ 81AAA31 + .incbin "baserom.gba", 0x1AAA31, 0x3E + +Route14_EventScript_1AAA6F:: @ 81AAA6F + .incbin "baserom.gba", 0x1AAA6F, 0x3E + +Route14_EventScript_1AAAAD:: @ 81AAAAD + .incbin "baserom.gba", 0x1AAAAD, 0x3E + +Route14_EventScript_1AAAEB:: @ 81AAAEB + .incbin "baserom.gba", 0x1AAAEB, 0x3E + +Route14_EventScript_1AAB29:: @ 81AAB29 + .incbin "baserom.gba", 0x1AAB29, 0x3E + +Route14_EventScript_1AAB67:: @ 81AAB67 + .incbin "baserom.gba", 0x1AAB67, 0x46 + +Route14_EventScript_1AABAD:: @ 81AABAD + .incbin "baserom.gba", 0x1AABAD, 0x46 + +Route15_EventScript_1AABF3:: @ 81AABF3 + .incbin "baserom.gba", 0x1AABF3, 0x3E + +Route15_EventScript_1AAC31:: @ 81AAC31 + .incbin "baserom.gba", 0x1AAC31, 0x3E + +Route15_EventScript_1AAC6F:: @ 81AAC6F + .incbin "baserom.gba", 0x1AAC6F, 0x3E + +Route15_EventScript_1AACAD:: @ 81AACAD + .incbin "baserom.gba", 0x1AACAD, 0x3E + +Route15_EventScript_1AACEB:: @ 81AACEB + .incbin "baserom.gba", 0x1AACEB, 0x3E + +Route15_EventScript_1AAD29:: @ 81AAD29 + .incbin "baserom.gba", 0x1AAD29, 0x3E + +Route15_EventScript_1AAD67:: @ 81AAD67 + .incbin "baserom.gba", 0x1AAD67, 0x3E + +Route15_EventScript_1AADA5:: @ 81AADA5 + .incbin "baserom.gba", 0x1AADA5, 0x3E + +Route15_EventScript_1AADE3:: @ 81AADE3 + .incbin "baserom.gba", 0x1AADE3, 0x3E + +Route15_EventScript_1AAE21:: @ 81AAE21 + .incbin "baserom.gba", 0x1AAE21, 0x3E + +Route15_EventScript_1AAE5F:: @ 81AAE5F + .incbin "baserom.gba", 0x1AAE5F, 0x46 + +Route15_EventScript_1AAEA5:: @ 81AAEA5 + .incbin "baserom.gba", 0x1AAEA5, 0x46 + +Route16_EventScript_1AAEEB:: @ 81AAEEB + .incbin "baserom.gba", 0x1AAEEB, 0x3E + +Route16_EventScript_1AAF29:: @ 81AAF29 + .incbin "baserom.gba", 0x1AAF29, 0x3E + +Route16_EventScript_1AAF67:: @ 81AAF67 + .incbin "baserom.gba", 0x1AAF67, 0x3E + +Route16_EventScript_1AAFA5:: @ 81AAFA5 + .incbin "baserom.gba", 0x1AAFA5, 0x3E + +Route16_EventScript_1AAFE3:: @ 81AAFE3 + .incbin "baserom.gba", 0x1AAFE3, 0x3E + +Route16_EventScript_1AB021:: @ 81AB021 + .incbin "baserom.gba", 0x1AB021, 0x3E + +Route16_EventScript_1AB05F:: @ 81AB05F + .incbin "baserom.gba", 0x1AB05F, 0x46 + +Route16_EventScript_1AB0A5:: @ 81AB0A5 + .incbin "baserom.gba", 0x1AB0A5, 0x46 + +Route17_EventScript_1AB0EB:: @ 81AB0EB + .incbin "baserom.gba", 0x1AB0EB, 0x3E + +Route17_EventScript_1AB129:: @ 81AB129 + .incbin "baserom.gba", 0x1AB129, 0x3E + +Route17_EventScript_1AB167:: @ 81AB167 + .incbin "baserom.gba", 0x1AB167, 0x3E + +Route17_EventScript_1AB1A5:: @ 81AB1A5 + .incbin "baserom.gba", 0x1AB1A5, 0x3E + +Route17_EventScript_1AB1E3:: @ 81AB1E3 + .incbin "baserom.gba", 0x1AB1E3, 0x3E + +Route17_EventScript_1AB221:: @ 81AB221 + .incbin "baserom.gba", 0x1AB221, 0x3E + +Route17_EventScript_1AB25F:: @ 81AB25F + .incbin "baserom.gba", 0x1AB25F, 0x3E + +Route17_EventScript_1AB29D:: @ 81AB29D + .incbin "baserom.gba", 0x1AB29D, 0x3E + +Route17_EventScript_1AB2DB:: @ 81AB2DB + .incbin "baserom.gba", 0x1AB2DB, 0x3E + +Route17_EventScript_1AB319:: @ 81AB319 + .incbin "baserom.gba", 0x1AB319, 0x3E + +Route18_EventScript_1AB357:: @ 81AB357 + .incbin "baserom.gba", 0x1AB357, 0x3E + +Route18_EventScript_1AB395:: @ 81AB395 + .incbin "baserom.gba", 0x1AB395, 0x3E + +Route18_EventScript_1AB3D3:: @ 81AB3D3 + .incbin "baserom.gba", 0x1AB3D3, 0x3E + +Route19_EventScript_1AB411:: @ 81AB411 + .incbin "baserom.gba", 0x1AB411, 0x3E + +Route19_EventScript_1AB44F:: @ 81AB44F + .incbin "baserom.gba", 0x1AB44F, 0x3E + +Route19_EventScript_1AB48D:: @ 81AB48D + .incbin "baserom.gba", 0x1AB48D, 0x3E + +Route19_EventScript_1AB4CB:: @ 81AB4CB + .incbin "baserom.gba", 0x1AB4CB, 0x3E + +Route19_EventScript_1AB509:: @ 81AB509 + .incbin "baserom.gba", 0x1AB509, 0x3E + +Route19_EventScript_1AB547:: @ 81AB547 + .incbin "baserom.gba", 0x1AB547, 0x3E + +Route19_EventScript_1AB585:: @ 81AB585 + .incbin "baserom.gba", 0x1AB585, 0x3E + +Route19_EventScript_1AB5C3:: @ 81AB5C3 + .incbin "baserom.gba", 0x1AB5C3, 0x3E + +Route19_EventScript_1AB601:: @ 81AB601 + .incbin "baserom.gba", 0x1AB601, 0x3E + +Route19_EventScript_1AB63F:: @ 81AB63F + .incbin "baserom.gba", 0x1AB63F, 0x3E + +Route19_EventScript_1AB67D:: @ 81AB67D + .incbin "baserom.gba", 0x1AB67D, 0x46 + +Route19_EventScript_1AB6C3:: @ 81AB6C3 + .incbin "baserom.gba", 0x1AB6C3, 0x46 + +Route20_EventScript_1AB709:: @ 81AB709 + .incbin "baserom.gba", 0x1AB709, 0x3E + +Route20_EventScript_1AB747:: @ 81AB747 + .incbin "baserom.gba", 0x1AB747, 0x3E + +Route20_EventScript_1AB785:: @ 81AB785 + .incbin "baserom.gba", 0x1AB785, 0x3E + +Route20_EventScript_1AB7C3:: @ 81AB7C3 + .incbin "baserom.gba", 0x1AB7C3, 0x3E + +Route20_EventScript_1AB801:: @ 81AB801 + .incbin "baserom.gba", 0x1AB801, 0x3E + +Route20_EventScript_1AB83F:: @ 81AB83F + .incbin "baserom.gba", 0x1AB83F, 0x3E + +Route20_EventScript_1AB87D:: @ 81AB87D + .incbin "baserom.gba", 0x1AB87D, 0x3E + +Route20_EventScript_1AB8BB:: @ 81AB8BB + .incbin "baserom.gba", 0x1AB8BB, 0x3E + +Route20_EventScript_1AB8F9:: @ 81AB8F9 + .incbin "baserom.gba", 0x1AB8F9, 0x3E + +Route20_EventScript_1AB937:: @ 81AB937 + .incbin "baserom.gba", 0x1AB937, 0x3E + +Route21_North_EventScript_1AB975:: @ 81AB975 + .incbin "baserom.gba", 0x1AB975, 0x3E + +Route21_South_EventScript_1AB9B3:: @ 81AB9B3 + .incbin "baserom.gba", 0x1AB9B3, 0x3E + +Route21_North_EventScript_1AB9F1:: @ 81AB9F1 + .incbin "baserom.gba", 0x1AB9F1, 0x3E + +Route21_South_EventScript_1ABA2F:: @ 81ABA2F + .incbin "baserom.gba", 0x1ABA2F, 0x3E + +Route21_North_EventScript_1ABA6D:: @ 81ABA6D + .incbin "baserom.gba", 0x1ABA6D, 0x3E + +Route21_South_EventScript_1ABAAB:: @ 81ABAAB + .incbin "baserom.gba", 0x1ABAAB, 0x3E + +Route21_South_EventScript_1ABAE9:: @ 81ABAE9 + .incbin "baserom.gba", 0x1ABAE9, 0x3E + +Route21_South_EventScript_1ABB27:: @ 81ABB27 + .incbin "baserom.gba", 0x1ABB27, 0x3E + +Route21_North_EventScript_1ABB65:: @ 81ABB65 + .incbin "baserom.gba", 0x1ABB65, 0x46 + +Route21_North_EventScript_1ABBAB:: @ 81ABBAB + .incbin "baserom.gba", 0x1ABBAB, 0x46 + +OneIsland_KindleRoad_EventScript_1ABBF1:: @ 81ABBF1 + .incbin "baserom.gba", 0x1ABBF1, 0x3E + +OneIsland_KindleRoad_EventScript_1ABC2F:: @ 81ABC2F + .incbin "baserom.gba", 0x1ABC2F, 0x3E + +OneIsland_KindleRoad_EventScript_1ABC6D:: @ 81ABC6D + .incbin "baserom.gba", 0x1ABC6D, 0x3E + +OneIsland_KindleRoad_EventScript_1ABCAB:: @ 81ABCAB + .incbin "baserom.gba", 0x1ABCAB, 0x3E + +OneIsland_KindleRoad_EventScript_1ABCE9:: @ 81ABCE9 + .incbin "baserom.gba", 0x1ABCE9, 0x3E + +OneIsland_KindleRoad_EventScript_1ABD27:: @ 81ABD27 + .incbin "baserom.gba", 0x1ABD27, 0x3E + +OneIsland_KindleRoad_EventScript_1ABD65:: @ 81ABD65 + .incbin "baserom.gba", 0x1ABD65, 0x3E + +OneIsland_KindleRoad_EventScript_1ABDA3:: @ 81ABDA3 + .incbin "baserom.gba", 0x1ABDA3, 0x3E + +OneIsland_KindleRoad_EventScript_1ABDE1:: @ 81ABDE1 + .incbin "baserom.gba", 0x1ABDE1, 0x3E + +OneIsland_KindleRoad_EventScript_1ABE1F:: @ 81ABE1F + .incbin "baserom.gba", 0x1ABE1F, 0x3E + +OneIsland_KindleRoad_EventScript_1ABE5D:: @ 81ABE5D + .incbin "baserom.gba", 0x1ABE5D, 0x3E + +OneIsland_KindleRoad_EventScript_1ABE9B:: @ 81ABE9B + .incbin "baserom.gba", 0x1ABE9B, 0x46 + +OneIsland_KindleRoad_EventScript_1ABEE1:: @ 81ABEE1 + .incbin "baserom.gba", 0x1ABEE1, 0x46 + +OneIsland_TreasureBeach_EventScript_1ABF27:: @ 81ABF27 + .incbin "baserom.gba", 0x1ABF27, 0x3E + +ThreeIsland_BondBridge_EventScript_1ABF65:: @ 81ABF65 + .incbin "baserom.gba", 0x1ABF65, 0x3E + +ThreeIsland_BondBridge_EventScript_1ABFA3:: @ 81ABFA3 + .incbin "baserom.gba", 0x1ABFA3, 0x3E + +ThreeIsland_BondBridge_EventScript_1ABFE1:: @ 81ABFE1 + .incbin "baserom.gba", 0x1ABFE1, 0x3E + +ThreeIsland_BondBridge_EventScript_1AC01F:: @ 81AC01F + .incbin "baserom.gba", 0x1AC01F, 0x3E + +ThreeIsland_BondBridge_EventScript_1AC05D:: @ 81AC05D + .incbin "baserom.gba", 0x1AC05D, 0x3E + +ThreeIsland_BondBridge_EventScript_1AC09B:: @ 81AC09B + .incbin "baserom.gba", 0x1AC09B, 0x46 + +ThreeIsland_BondBridge_EventScript_1AC0E1:: @ 81AC0E1 + .incbin "baserom.gba", 0x1AC0E1, 0x46 + +FiveIsland_ResortGorgeous_EventScript_1AC127:: @ 81AC127 + .incbin "baserom.gba", 0x1AC127, 0x3E + +FiveIsland_ResortGorgeous_EventScript_1AC165:: @ 81AC165 + .incbin "baserom.gba", 0x1AC165, 0x3E + +FiveIsland_ResortGorgeous_EventScript_1AC1A3:: @ 81AC1A3 + .incbin "baserom.gba", 0x1AC1A3, 0x3E + +FiveIsland_ResortGorgeous_EventScript_1AC1E1:: @ 81AC1E1 + .incbin "baserom.gba", 0x1AC1E1, 0x3E + +FiveIsland_ResortGorgeous_EventScript_1AC21F:: @ 81AC21F + .incbin "baserom.gba", 0x1AC21F, 0x3E + +FiveIsland_ResortGorgeous_EventScript_1AC25D:: @ 81AC25D + .incbin "baserom.gba", 0x1AC25D, 0x3E + +FiveIsland_ResortGorgeous_EventScript_1AC29B:: @ 81AC29B + .incbin "baserom.gba", 0x1AC29B, 0x3E + +FiveIsland_WaterLabyrinth_EventScript_1AC2D9:: @ 81AC2D9 + .incbin "baserom.gba", 0x1AC2D9, 0x3E + +FiveIsland_MemorialPillar_EventScript_1AC317:: @ 81AC317 + .incbin "baserom.gba", 0x1AC317, 0x3E + +FiveIsland_MemorialPillar_EventScript_1AC355:: @ 81AC355 + .incbin "baserom.gba", 0x1AC355, 0x3E + +FiveIsland_MemorialPillar_EventScript_1AC393:: @ 81AC393 + .incbin "baserom.gba", 0x1AC393, 0x3E + +SixIsland_OutcastIsland_EventScript_1AC3D1:: @ 81AC3D1 + .incbin "baserom.gba", 0x1AC3D1, 0x3E + +SixIsland_OutcastIsland_EventScript_1AC40F:: @ 81AC40F + .incbin "baserom.gba", 0x1AC40F, 0x3E + +SixIsland_OutcastIsland_EventScript_1AC44D:: @ 81AC44D + .incbin "baserom.gba", 0x1AC44D, 0x3E + +SixIsland_OutcastIsland_EventScript_1AC48B:: @ 81AC48B + .incbin "baserom.gba", 0x1AC48B, 0x46 + +SixIsland_OutcastIsland_EventScript_1AC4D1:: @ 81AC4D1 + .incbin "baserom.gba", 0x1AC4D1, 0x46 + +SixIsland_GreenPath_EventScript_1AC517:: @ 81AC517 + .incbin "baserom.gba", 0x1AC517, 0x3E + +SixIsland_WaterPath_EventScript_1AC555:: @ 81AC555 + .incbin "baserom.gba", 0x1AC555, 0x3E + +SixIsland_WaterPath_EventScript_1AC593:: @ 81AC593 + .incbin "baserom.gba", 0x1AC593, 0x3E + +SixIsland_WaterPath_EventScript_1AC5D1:: @ 81AC5D1 + .incbin "baserom.gba", 0x1AC5D1, 0x3E + +SixIsland_WaterPath_EventScript_1AC60F:: @ 81AC60F + .incbin "baserom.gba", 0x1AC60F, 0x3E + +SixIsland_WaterPath_EventScript_1AC64D:: @ 81AC64D + .incbin "baserom.gba", 0x1AC64D, 0x46 + +SixIsland_WaterPath_EventScript_1AC693:: @ 81AC693 + .incbin "baserom.gba", 0x1AC693, 0x46 + +SixIsland_WaterPath_EventScript_1AC6D9:: @ 81AC6D9 + .incbin "baserom.gba", 0x1AC6D9, 0x3E + +SixIsland_RuinValley_EventScript_1AC717:: @ 81AC717 + .incbin "baserom.gba", 0x1AC717, 0x3E + +SixIsland_RuinValley_EventScript_1AC755:: @ 81AC755 + .incbin "baserom.gba", 0x1AC755, 0x3E + +SixIsland_RuinValley_EventScript_1AC793:: @ 81AC793 + .incbin "baserom.gba", 0x1AC793, 0x3E + +SixIsland_RuinValley_EventScript_1AC7D1:: @ 81AC7D1 + .incbin "baserom.gba", 0x1AC7D1, 0x3E + +SixIsland_RuinValley_EventScript_1AC80F:: @ 81AC80F + .incbin "baserom.gba", 0x1AC80F, 0x3E + +SevenIsland_TrainerTower_EventScript_1AC84D:: @ 81AC84D + .incbin "baserom.gba", 0x1AC84D, 0x3E + +SevenIsland_TrainerTower_EventScript_1AC88B:: @ 81AC88B + .incbin "baserom.gba", 0x1AC88B, 0x3E + +SevenIsland_SevaultCanyon_Entrance_EventScript_1AC8C9:: @ 81AC8C9 + .incbin "baserom.gba", 0x1AC8C9, 0x3E + +SevenIsland_SevaultCanyon_Entrance_EventScript_1AC907:: @ 81AC907 + .incbin "baserom.gba", 0x1AC907, 0x46 + +SevenIsland_SevaultCanyon_Entrance_EventScript_1AC94D:: @ 81AC94D + .incbin "baserom.gba", 0x1AC94D, 0x46 + +SevenIsland_SevaultCanyon_Entrance_EventScript_1AC993:: @ 81AC993 + .incbin "baserom.gba", 0x1AC993, 0x3E + +SevenIsland_SevaultCanyon_Entrance_EventScript_1AC9D1:: @ 81AC9D1 + .incbin "baserom.gba", 0x1AC9D1, 0x3E + +SevenIsland_SevaultCanyon_Entrance_EventScript_1ACA0F:: @ 81ACA0F + .incbin "baserom.gba", 0x1ACA0F, 0x3E + +SevenIsland_SevaultCanyon_EventScript_1ACA4D:: @ 81ACA4D + .incbin "baserom.gba", 0x1ACA4D, 0x3E + +SevenIsland_SevaultCanyon_EventScript_1ACA8B:: @ 81ACA8B + .incbin "baserom.gba", 0x1ACA8B, 0x3E + +SevenIsland_SevaultCanyon_EventScript_1ACAC9:: @ 81ACAC9 + .incbin "baserom.gba", 0x1ACAC9, 0x3E + +SevenIsland_SevaultCanyon_EventScript_1ACB07:: @ 81ACB07 + .incbin "baserom.gba", 0x1ACB07, 0x3E + +SevenIsland_SevaultCanyon_EventScript_1ACB45:: @ 81ACB45 + .incbin "baserom.gba", 0x1ACB45, 0x3E + +SevenIsland_SevaultCanyon_EventScript_1ACB83:: @ 81ACB83 + .incbin "baserom.gba", 0x1ACB83, 0x3E + +SevenIsland_SevaultCanyon_EventScript_1ACBC1:: @ 81ACBC1 + .incbin "baserom.gba", 0x1ACBC1, 0x46 + +SevenIsland_SevaultCanyon_EventScript_1ACC07:: @ 81ACC07 + .incbin "baserom.gba", 0x1ACC07, 0x46 + +SevenIsland_TanobyRuins_EventScript_1ACC4D:: @ 81ACC4D + .incbin "baserom.gba", 0x1ACC4D, 0x3E + +SevenIsland_TanobyRuins_EventScript_1ACC8B:: @ 81ACC8B + .incbin "baserom.gba", 0x1ACC8B, 0x3E + +SevenIsland_TanobyRuins_EventScript_1ACCC9:: @ 81ACCC9 + .incbin "baserom.gba", 0x1ACCC9, 0x3E + +SevenIsland_TanobyRuins_EventScript_1ACD07:: @ 81ACD07 + .incbin "baserom.gba", 0x1ACD07, 0x5E + +ViridianCity_House2_EventScript_1ACD65:: @ 81ACD65 + .incbin "baserom.gba", 0x1ACD65, 0x6B + +FourIsland_PokemonCenter_1F_EventScript_1ACDD0:: @ 81ACDD0 + .incbin "baserom.gba", 0x1ACDD0, 0x1A + +Route4_EventScript_1ACDEA:: @ 81ACDEA + .incbin "baserom.gba", 0x1ACDEA, 0x19 + +MtMoon_1F_EventScript_1ACE03:: @ 81ACE03 + .incbin "baserom.gba", 0x1ACE03, 0x19 + +PewterCity_Museum_1F_EventScript_1ACE1C:: @ 81ACE1C + .incbin "baserom.gba", 0x1ACE1C, 0x1A + +Route20_EventScript_1ACE36:: @ 81ACE36 + .incbin "baserom.gba", 0x1ACE36, 0x19 + +Route25_EventScript_1ACE4F:: @ 81ACE4F + .incbin "baserom.gba", 0x1ACE4F, 0x19 + +CeruleanCity_PokemonCenter_1F_EventScript_1ACE68:: @ 81ACE68 + .incbin "baserom.gba", 0x1ACE68, 0x1B + +VermilionCity_PokemonCenter_1F_EventScript_1ACE83:: @ 81ACE83 + .incbin "baserom.gba", 0x1ACE83, 0x1A + +CeladonCity_Condominiums_2F_EventScript_1ACE9D:: @ 81ACE9D + .incbin "baserom.gba", 0x1ACE9D, 0x1B + +FuchsiaCity_Building1_EventScript_1ACEB8:: @ 81ACEB8 + .incbin "baserom.gba", 0x1ACEB8, 0x1B + +SafariZone_Building3_EventScript_1ACED3:: @ 81ACED3 + .incbin "baserom.gba", 0x1ACED3, 0x19 + +SaffronCity_PokemonCenter_1F_EventScript_1ACEEC:: @ 81ACEEC + .incbin "baserom.gba", 0x1ACEEC, 0x1B + +CinnabarIsland_Gym_EventScript_1ACF07:: @ 81ACF07 + .incbin "baserom.gba", 0x1ACF07, 0x25 + +FiveIsland_ResortGorgeous_House_EventScript_1ACF2C:: @ 81ACF2C + .incbin "baserom.gba", 0x1ACF2C, 0x1A + +FourIsland_Mart_EventScript_1ACF46:: @ 81ACF46 + .incbin "baserom.gba", 0x1ACF46, 0x19 + +FiveIsland_PokemonCenter_1F_EventScript_1ACF5F:: @ 81ACF5F + .incbin "baserom.gba", 0x1ACF5F, 0x1B + +SaffronCity_PokemonTrainerFanClub_EventScript_1ACF7A:: @ 81ACF7A + .incbin "baserom.gba", 0x1ACF7A, 0x1B + +SevenIsland_SevaultCanyon_EventScript_1ACF95:: @ 81ACF95 + .incbin "baserom.gba", 0x1ACF95, 0x19 + +IndigoPlateau_PokemonCenter_1F_EventScript_1ACFAE:: @ 81ACFAE + .incbin "baserom.gba", 0x1ACFAE, 0x26 + +SevenIsland_PokemonCenter_1F_EventScript_1ACFD4:: @ 81ACFD4 + .incbin "baserom.gba", 0x1ACFD4, 0x1B + +SixIsland_Mart_EventScript_1ACFEF:: @ 81ACFEF + .incbin "baserom.gba", 0x1ACFEF, 0x4B + +SaffronCity_Duplicate_EventScript_1AD03A:: @ 81AD03A + .incbin "baserom.gba", 0x1AD03A, 0x19 + +CeladonCity_DepartmentStore_2F_EventScript_1AD053:: @ 81AD053 + .incbin "baserom.gba", 0x1AD053, 0x19 + +IndigoPlateau_PokemonCenter_1F_EventScript_1AD06C:: @ 81AD06C + .incbin "baserom.gba", 0x1AD06C, 0x1B + +IndigoPlateau_PokemonCenter_1F_EventScript_1AD087:: @ 81AD087 + .incbin "baserom.gba", 0x1AD087, 0x19 + +LavenderTown_PokemonCenter_1F_EventScript_1AD0A0:: @ 81AD0A0 + .incbin "baserom.gba", 0x1AD0A0, 0x19 + +CinnabarIsland_PokemonCenter_1F_EventScript_1AD0B9:: @ 81AD0B9 + .incbin "baserom.gba", 0x1AD0B9, 0x1B + +SilphCo_5F_EventScript_1AD0D4:: @ 81AD0D4 + .incbin "baserom.gba", 0x1AD0D4, 0x19 + +@ 0x19 +SilphCo_8F_EventScript_1AD0ED:: @ 81AD0ED + .incbin "baserom.gba", 0x1AD0ED, 0x19 + + .include "data/text/fame_checker.inc" + +CeladonCity_GameCorner_EventScript_1B2867:: @ 81B2867 + .incbin "baserom.gba", 0x1B2867, 0xD1 + +FourIsland_House2_EventScript_1B2938:: @ 81B2938 + .incbin "baserom.gba", 0x1B2938, 0x4C0 + + .include "data/text/help_system.inc" + +CeladonCity_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +CeruleanCity_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +CinnabarIsland_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +FiveIsland_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +FourIsland_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +FuchsiaCity_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +IndigoPlateau_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +LavenderTown_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +OneIsland_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +PewterCity_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +Route10_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +Route4_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +SaffronCity_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +SevenIsland_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +SixIsland_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +ThreeIsland_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +TwoIsland_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +VermilionCity_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 +ViridianCity_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 + .incbin "baserom.gba", 0x1BB1B4, 0x1E + +CeruleanCity_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +CinnabarIsland_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +FiveIsland_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +FuchsiaCity_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +OneIsland_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +PewterCity_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +SevenIsland_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +VermilionCity_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +FourIsland_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +SixIsland_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +ThreeIsland_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +TwoIsland_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +Route10_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +Route10_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +Route4_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +SaffronCity_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +IndigoPlateau_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +CeladonCity_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +LavenderTown_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 +ViridianCity_PokemonCenter_2F_EventScript_1BB1D2:: @ 81BB1D2 + .incbin "baserom.gba", 0x1BB1D2, 0x1B + +CeladonCity_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +CeruleanCity_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +CinnabarIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +FiveIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +FourIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +FuchsiaCity_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +IndigoPlateau_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +LavenderTown_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +OneIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +PewterCity_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +Route10_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +Route4_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +SaffronCity_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +SevenIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +SixIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +ThreeIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +TwoIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +VermilionCity_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED +ViridianCity_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED + .incbin "baserom.gba", 0x1BB1ED, 0x3A + +EventScript_1BB227:: @ 81BB227 + .incbin "baserom.gba", 0x1BB227, 0x10 + +CeladonCity_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +CeruleanCity_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +CinnabarIsland_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +FiveIsland_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +FourIsland_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +FuchsiaCity_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +IndigoPlateau_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +LavenderTown_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +OneIsland_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +PewterCity_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +Route10_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +Route4_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +SaffronCity_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +SevenIsland_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +SixIsland_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +ThreeIsland_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +TwoIsland_JoyfulGameCorner_MapScript4_1BB237:: @ 81BB237 +TwoIsland_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +VermilionCity_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 +ViridianCity_PokemonCenter_2F_MapScript3_1BB237:: @ 81BB237 + .incbin "baserom.gba", 0x1BB237, 0x6C + +CeladonCity_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +CeruleanCity_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +CinnabarIsland_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +FiveIsland_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +FourIsland_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +FuchsiaCity_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +IndigoPlateau_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +LavenderTown_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +OneIsland_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +PewterCity_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +Route10_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +Route4_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +SaffronCity_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +SevenIsland_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +SixIsland_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +ThreeIsland_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +TwoIsland_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +VermilionCity_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 +ViridianCity_PokemonCenter_2F_MapScript1_1BB2A3:: @ 81BB2A3 + .incbin "baserom.gba", 0x1BB2A3, 0x5A + +EventScript_1BB2FD:: @ 81BB2FD + .incbin "baserom.gba", 0x1BB2FD, 0x1A6 + +EventScript_1BB4A3:: @ 81BB4A3 + .incbin "baserom.gba", 0x1BB4A3, 0x208 + +EventScript_1BB6AB:: @ 81BB6AB + .incbin "baserom.gba", 0x1BB6AB, 0x133 + +EventScript_1BB7DE:: @ 81BB7DE + .incbin "baserom.gba", 0x1BB7DE, 0xC9 + +gUnknown_81BB8A7:: @ 81BB8A7 + .incbin "baserom.gba", 0x1BB8A7, 0x1C + +gUnknown_81BB8C3:: @ 81BB8C3 +UnknownMap_00_00_EventScript_1BB8C3:: @ 81BB8C3 + .incbin "baserom.gba", 0x1BB8C3, 0xC + +gUnknown_81BB8CF:: @ 81BB8CF +UnknownMap_00_00_EventScript_1BB8CF:: @ 81BB8CF + .incbin "baserom.gba", 0x1BB8CF, 0xC + +gUnknown_81BB8DB:: @ 81BB8DB +UnknownMap_00_03_EventScript_1BB8DB:: @ 81BB8DB + .incbin "baserom.gba", 0x1BB8DB, 0x1D + +gUnknown_81BB8F8:: @ 81BB8F8 +UnknownMap_00_03_EventScript_1BB8F8:: @ 81BB8F8 + .incbin "baserom.gba", 0x1BB8F8, 0x1D + +gUnknown_81BB915:: @ 81BB915 +UnknownMap_00_03_EventScript_1BB915:: @ 81BB915 + .incbin "baserom.gba", 0x1BB915, 0x1D + +gUnknown_81BB932:: @ 81BB932 +UnknownMap_00_03_EventScript_1BB932:: @ 81BB932 + .incbin "baserom.gba", 0x1BB932, 0x1E + +gUnknown_81BB950:: @ 81BB950 +UnknownMap_00_01_EventScript_1BB950:: @ 81BB950 + .incbin "baserom.gba", 0x1BB950, 0xC + +gUnknown_81BB95C:: @ 81BB95C +UnknownMap_00_01_EventScript_1BB95C:: @ 81BB95C + .incbin "baserom.gba", 0x1BB95C, 0x24 + +gUnknown_81BB980:: @ 81BB980 +UnknownMap_00_02_EventScript_1BB980:: @ 81BB980 + .incbin "baserom.gba", 0x1BB980, 0x1 + +gUnknown_81BB981:: @ 81BB981 + .incbin "baserom.gba", 0x1BB981, 0x11 + +gUnknown_81BB992:: @ 81BB992 + .incbin "baserom.gba", 0x1BB992, 0x11 + +gUnknown_81BB9A3:: @ 81BB9A3 + .incbin "baserom.gba", 0x1BB9A3, 0xC + +UnknownMap_00_00_EventScript_1BB9AF:: @ 81BB9AF + .incbin "baserom.gba", 0x1BB9AF, 0x12 + +UnknownMap_00_01_EventScript_1BB9C1:: @ 81BB9C1 + .incbin "baserom.gba", 0x1BB9C1, 0x12 + +UnknownMap_00_02_EventScript_1BB9D3:: @ 81BB9D3 + .incbin "baserom.gba", 0x1BB9D3, 0x1 + +gUnknown_81BB9D4:: @ 81BB9D4 + .incbin "baserom.gba", 0x1BB9D4, 0x1C + +gUnknown_81BB9F0:: @ 81BB9F0 + .incbin "baserom.gba", 0x1BB9F0, 0xC + +gUnknown_81BB9FC:: @ 81BB9FC + .incbin "baserom.gba", 0x1BB9FC, 0x5DC + +gUnknown_81BBFD8:: @ 81BBFD8 + .incbin "baserom.gba", 0x1BBFD8, 0x84 + +CeladonCity_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +CeruleanCity_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +CinnabarIsland_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +FiveIsland_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +FourIsland_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +FuchsiaCity_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +IndigoPlateau_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +LavenderTown_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +OneIsland_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +PewterCity_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +Route10_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +Route4_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +SaffronCity_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +SevenIsland_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +SixIsland_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +ThreeIsland_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +TwoIsland_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +VermilionCity_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C +ViridianCity_PokemonCenter_1F_MapScript2_1BC05C:: @ 81BC05C + .incbin "baserom.gba", 0x1BC05C, 0x4 + +EventScript_1BC060:: @ 81BC060 + .incbin "baserom.gba", 0x1BC060, 0x6E + +EventScript_1BC0CE:: @ 81BC0CE + .incbin "baserom.gba", 0x1BC0CE, 0x219 + +TwoIsland_JoyfulGameCorner_EventScript_1BC2E7:: @ 81BC2E7 + .incbin "baserom.gba", 0x1BC2E7, 0x15 + +TwoIsland_JoyfulGameCorner_EventScript_1BC2FC:: @ 81BC2FC + .incbin "baserom.gba", 0x1BC2FC, 0x1B0 + +gUnknown_81BC4AC:: @ 81BC4AC + .incbin "baserom.gba", 0x1BC4AC, 0x22 + +gUnknown_81BC4CE:: @ 81BC4CE + .incbin "baserom.gba", 0x1BC4CE, 0x3F + +gUnknown_81BC50D:: @ 81BC50D + .incbin "baserom.gba", 0x1BC50D, 0x3F + +gUnknown_81BC54C:: @ 81BC54C + .incbin "baserom.gba", 0x1BC54C, 0x77E + +Text_1BCCCA:: @ 81BCCCA + .incbin "baserom.gba", 0x1BCCCA, 0x1249 + +CeladonCity_EventScript_1BDF13:: @ 81BDF13 +CeladonCity_Gym_EventScript_1BDF13:: @ 81BDF13 +FiveIsland_Meadow_EventScript_1BDF13:: @ 81BDF13 +PewterCity_EventScript_1BDF13:: @ 81BDF13 +Route10_EventScript_1BDF13:: @ 81BDF13 +Route12_EventScript_1BDF13:: @ 81BDF13 +Route14_EventScript_1BDF13:: @ 81BDF13 +Route16_EventScript_1BDF13:: @ 81BDF13 +Route25_EventScript_1BDF13:: @ 81BDF13 +Route2_EventScript_1BDF13:: @ 81BDF13 +Route8_EventScript_1BDF13:: @ 81BDF13 +ThreeIsland_BerryForest_EventScript_1BDF13:: @ 81BDF13 +ThreeIsland_BondBridge_EventScript_1BDF13:: @ 81BDF13 +ThreeIsland_EventScript_1BDF13:: @ 81BDF13 +Route9_EventScript_1BDF13:: @ 81BDF13 +Route13_EventScript_1BDF13:: @ 81BDF13 +TwoIsland_EventScript_1BDF13:: @ 81BDF13 +FuchsiaCity_EventScript_1BDF13:: @ 81BDF13 +VermilionCity_EventScript_1BDF13:: @ 81BDF13 +VermilionCity_EventScript_1BDF13:: @ 81BDF13 +CeruleanCity_EventScript_1BDF13:: @ 81BDF13 +ViridianCity_EventScript_1BDF13:: @ 81BDF13 + .incbin "baserom.gba", 0x1BDF13, 0x58 + +gUnknown_81BDF6B:: @ 81BDF6B + .incbin "baserom.gba", 0x1BDF6B, 0xA1 + +CeruleanCave_2F_EventScript_1BE00C:: @ 81BE00C +MtEmber_Exterior_EventScript_1BE00C:: @ 81BE00C +MtEmber_RubyPath_B1F_Stairs_EventScript_1BE00C:: @ 81BE00C +MtEmber_RubyPath_B2F_EventScript_1BE00C:: @ 81BE00C +MtEmber_SummitPath_2F_EventScript_1BE00C:: @ 81BE00C +MtEmber_RubyPath_1F_EventScript_1BE00C:: @ 81BE00C +SevenIsland_SevaultCanyon_EventScript_1BE00C:: @ 81BE00C +FourIsland_EventScript_1BE00C:: @ 81BE00C +OneIsland_KindleRoad_EventScript_1BE00C:: @ 81BE00C +MtEmber_RubyPath_B2F_Stairs_EventScript_1BE00C:: @ 81BE00C +MtEmber_RubyPath_B3F_EventScript_1BE00C:: @ 81BE00C +MtEmber_RubyPath_B1F_EventScript_1BE00C:: @ 81BE00C +MtEmber_RubyPath_B1F_EventScript_1BE00C:: @ 81BE00C +RockTunnel_B1F_EventScript_1BE00C:: @ 81BE00C +CeruleanCave_B1F_EventScript_1BE00C:: @ 81BE00C +CeruleanCave_1F_EventScript_1BE00C:: @ 81BE00C + .incbin "baserom.gba", 0x1BE00C, 0x58 + +gUnknown_81BE064:: @ 81BE064 + .incbin "baserom.gba", 0x1BE064, 0xB9 + +MtEmber_Exterior_EventScript_1BE11D:: @ 81BE11D +MtEmber_RubyPath_B2F_EventScript_1BE11D:: @ 81BE11D +MtEmber_Summit_EventScript_1BE11D:: @ 81BE11D +SeafoamIslands_1F_EventScript_1BE11D:: @ 81BE11D +SeafoamIslands_B2F_EventScript_1BE11D:: @ 81BE11D +SevenIsland_SevaultCanyon_EventScript_1BE11D:: @ 81BE11D +VictoryRoad_1F_EventScript_1BE11D:: @ 81BE11D +VictoryRoad_3F_EventScript_1BE11D:: @ 81BE11D +SixIsland_RuinValley_EventScript_1BE11D:: @ 81BE11D +FuchsiaCity_Building1_EventScript_1BE11D:: @ 81BE11D +SevenIsland_SeavaultCanyon_TanobyKey_EventScript_1BE11D:: @ 81BE11D +MtEmber_RubyPath_B3F_EventScript_1BE11D:: @ 81BE11D +SeafoamIslands_B3F_EventScript_1BE11D:: @ 81BE11D +SeafoamIslands_B3F_EventScript_1BE11D:: @ 81BE11D +SeafoamIslands_B1F_EventScript_1BE11D:: @ 81BE11D +VictoryRoad_2F_EventScript_1BE11D:: @ 81BE11D + .incbin "baserom.gba", 0x1BE11D, 0x51 + +gUnknown_81BE16E:: @ 81BE16E + .incbin "baserom.gba", 0x1BE16E, 0x149 + +gUnknown_81BE2B7:: @ 81BE2B7 + .incbin "baserom.gba", 0x1BE2B7, 0x48 + +gUnknown_81BE2FF:: @ 81BE2FF + .incbin "baserom.gba", 0x1BE2FF, 0x265 + +gUnknown_81BE564:: @ 81BE564 + .incbin "baserom.gba", 0x1BE564, 0x2A + +Route2_EventScript_1BE58E:: @ 81BE58E + .incbin "baserom.gba", 0x1BE58E, 0xD + +Route2_EventScript_1BE59B:: @ 81BE59B + .incbin "baserom.gba", 0x1BE59B, 0xD + +ViridianForest_EventScript_1BE5A8:: @ 81BE5A8 + .incbin "baserom.gba", 0x1BE5A8, 0xD + +ViridianForest_EventScript_1BE5B5:: @ 81BE5B5 + .incbin "baserom.gba", 0x1BE5B5, 0xD + +ViridianForest_EventScript_1BE5C2:: @ 81BE5C2 + .incbin "baserom.gba", 0x1BE5C2, 0xD + +MtMoon_1F_EventScript_1BE5CF:: @ 81BE5CF + .incbin "baserom.gba", 0x1BE5CF, 0xD + +MtMoon_1F_EventScript_1BE5DC:: @ 81BE5DC + .incbin "baserom.gba", 0x1BE5DC, 0xD + +MtMoon_1F_EventScript_1BE5E9:: @ 81BE5E9 + .incbin "baserom.gba", 0x1BE5E9, 0xD + +MtMoon_1F_EventScript_1BE5F6:: @ 81BE5F6 + .incbin "baserom.gba", 0x1BE5F6, 0xD + +MtMoon_1F_EventScript_1BE603:: @ 81BE603 + .incbin "baserom.gba", 0x1BE603, 0xD + +MtMoon_1F_EventScript_1BE610:: @ 81BE610 + .incbin "baserom.gba", 0x1BE610, 0xD + +MtMoon_B2F_EventScript_1BE61D:: @ 81BE61D + .incbin "baserom.gba", 0x1BE61D, 0xD + +MtMoon_B2F_EventScript_1BE62A:: @ 81BE62A + .incbin "baserom.gba", 0x1BE62A, 0xD + +Route4_EventScript_1BE637:: @ 81BE637 + .incbin "baserom.gba", 0x1BE637, 0xD + +Route24_EventScript_1BE644:: @ 81BE644 + .incbin "baserom.gba", 0x1BE644, 0xD + +Route25_EventScript_1BE651:: @ 81BE651 + .incbin "baserom.gba", 0x1BE651, 0xD + +SSAnne_1F_Room2_EventScript_1BE65E:: @ 81BE65E + .incbin "baserom.gba", 0x1BE65E, 0xD + +SSAnne_2F_Room2_EventScript_1BE66B:: @ 81BE66B + .incbin "baserom.gba", 0x1BE66B, 0xD + +SSAnne_2F_Room4_EventScript_1BE678:: @ 81BE678 + .incbin "baserom.gba", 0x1BE678, 0xD + +SSAnne_B1F_Room2_EventScript_1BE685:: @ 81BE685 + .incbin "baserom.gba", 0x1BE685, 0xD + +SSAnne_B1F_Room3_EventScript_1BE692:: @ 81BE692 + .incbin "baserom.gba", 0x1BE692, 0xD + +SSAnne_B1F_Room5_EventScript_1BE69F:: @ 81BE69F + .incbin "baserom.gba", 0x1BE69F, 0xD + +SSAnne_Kitchen_EventScript_1BE6AC:: @ 81BE6AC + .incbin "baserom.gba", 0x1BE6AC, 0xD + +Route9_EventScript_1BE6B9:: @ 81BE6B9 + .incbin "baserom.gba", 0x1BE6B9, 0xD + +RocketHideout_B1F_EventScript_1BE6C6:: @ 81BE6C6 + .incbin "baserom.gba", 0x1BE6C6, 0xD + +RocketHideout_B1F_EventScript_1BE6D3:: @ 81BE6D3 + .incbin "baserom.gba", 0x1BE6D3, 0xD + +RocketHideout_B2F_EventScript_1BE6E0:: @ 81BE6E0 + .incbin "baserom.gba", 0x1BE6E0, 0xD + +RocketHideout_B2F_EventScript_1BE6ED:: @ 81BE6ED + .incbin "baserom.gba", 0x1BE6ED, 0xD + +RocketHideout_B2F_EventScript_1BE6FA:: @ 81BE6FA + .incbin "baserom.gba", 0x1BE6FA, 0xD + +RocketHideout_B2F_EventScript_1BE707:: @ 81BE707 + .incbin "baserom.gba", 0x1BE707, 0xD + +RocketHideout_B3F_EventScript_1BE714:: @ 81BE714 + .incbin "baserom.gba", 0x1BE714, 0xD + +RocketHideout_B3F_EventScript_1BE721:: @ 81BE721 + .incbin "baserom.gba", 0x1BE721, 0xD + +RocketHideout_B4F_EventScript_1BE72E:: @ 81BE72E + .incbin "baserom.gba", 0x1BE72E, 0xD + +RocketHideout_B4F_EventScript_1BE73B:: @ 81BE73B + .incbin "baserom.gba", 0x1BE73B, 0xD + +RocketHideout_B4F_EventScript_1BE748:: @ 81BE748 + .incbin "baserom.gba", 0x1BE748, 0xD + +PokemonTower_3F_EventScript_1BE755:: @ 81BE755 + .incbin "baserom.gba", 0x1BE755, 0xD + +PokemonTower_4F_EventScript_1BE762:: @ 81BE762 + .incbin "baserom.gba", 0x1BE762, 0xD + +PokemonTower_4F_EventScript_1BE76F:: @ 81BE76F + .incbin "baserom.gba", 0x1BE76F, 0xD + +PokemonTower_4F_EventScript_1BE77C:: @ 81BE77C + .incbin "baserom.gba", 0x1BE77C, 0xD + +PokemonTower_5F_EventScript_1BE789:: @ 81BE789 + .incbin "baserom.gba", 0x1BE789, 0xD + +PokemonTower_6F_EventScript_1BE796:: @ 81BE796 + .incbin "baserom.gba", 0x1BE796, 0xD + +PokemonTower_6F_EventScript_1BE7A3:: @ 81BE7A3 + .incbin "baserom.gba", 0x1BE7A3, 0xD + +Route12_EventScript_1BE7B0:: @ 81BE7B0 + .incbin "baserom.gba", 0x1BE7B0, 0xD + +Route12_EventScript_1BE7BD:: @ 81BE7BD + .incbin "baserom.gba", 0x1BE7BD, 0xD + +Route15_EventScript_1BE7CA:: @ 81BE7CA + .incbin "baserom.gba", 0x1BE7CA, 0xD + +SafariZone_Center_EventScript_1BE7D7:: @ 81BE7D7 + .incbin "baserom.gba", 0x1BE7D7, 0xD + +SafariZone_East_EventScript_1BE7E4:: @ 81BE7E4 + .incbin "baserom.gba", 0x1BE7E4, 0xD + +SafariZone_East_EventScript_1BE7F1:: @ 81BE7F1 + .incbin "baserom.gba", 0x1BE7F1, 0xD + +SafariZone_East_EventScript_1BE7FE:: @ 81BE7FE + .incbin "baserom.gba", 0x1BE7FE, 0xD + +SafariZone_East_EventScript_1BE80B:: @ 81BE80B + .incbin "baserom.gba", 0x1BE80B, 0xD + +SafariZone_North_EventScript_1BE818:: @ 81BE818 + .incbin "baserom.gba", 0x1BE818, 0xD + +SafariZone_North_EventScript_1BE825:: @ 81BE825 + .incbin "baserom.gba", 0x1BE825, 0xD + +SafariZone_West_EventScript_1BE832:: @ 81BE832 + .incbin "baserom.gba", 0x1BE832, 0xD + +SafariZone_West_EventScript_1BE83F:: @ 81BE83F + .incbin "baserom.gba", 0x1BE83F, 0xD + +SafariZone_West_EventScript_1BE84C:: @ 81BE84C + .incbin "baserom.gba", 0x1BE84C, 0xD + +SafariZone_West_EventScript_1BE859:: @ 81BE859 + .incbin "baserom.gba", 0x1BE859, 0xD + +SilphCo_3F_EventScript_1BE866:: @ 81BE866 + .incbin "baserom.gba", 0x1BE866, 0xD + +SilphCo_4F_EventScript_1BE873:: @ 81BE873 + .incbin "baserom.gba", 0x1BE873, 0xD + +SilphCo_4F_EventScript_1BE880:: @ 81BE880 + .incbin "baserom.gba", 0x1BE880, 0xD + +SilphCo_4F_EventScript_1BE88D:: @ 81BE88D + .incbin "baserom.gba", 0x1BE88D, 0xD + +SilphCo_5F_EventScript_1BE89A:: @ 81BE89A + .incbin "baserom.gba", 0x1BE89A, 0xD + +SilphCo_5F_EventScript_1BE8A7:: @ 81BE8A7 + .incbin "baserom.gba", 0x1BE8A7, 0xD + +SilphCo_5F_EventScript_1BE8B4:: @ 81BE8B4 + .incbin "baserom.gba", 0x1BE8B4, 0xD + +SilphCo_6F_EventScript_1BE8C1:: @ 81BE8C1 + .incbin "baserom.gba", 0x1BE8C1, 0xD + +SilphCo_6F_EventScript_1BE8CE:: @ 81BE8CE + .incbin "baserom.gba", 0x1BE8CE, 0xD + +SilphCo_7F_EventScript_1BE8DB:: @ 81BE8DB + .incbin "baserom.gba", 0x1BE8DB, 0xD + +SilphCo_7F_EventScript_1BE8E8:: @ 81BE8E8 + .incbin "baserom.gba", 0x1BE8E8, 0xD + +SilphCo_10F_EventScript_1BE8F5:: @ 81BE8F5 + .incbin "baserom.gba", 0x1BE8F5, 0xD + +SilphCo_10F_EventScript_1BE902:: @ 81BE902 + .incbin "baserom.gba", 0x1BE902, 0xD + +SilphCo_10F_EventScript_1BE90F:: @ 81BE90F + .incbin "baserom.gba", 0x1BE90F, 0xD + +PowerPlant_EventScript_1BE91C:: @ 81BE91C + .incbin "baserom.gba", 0x1BE91C, 0xD + +PowerPlant_EventScript_1BE929:: @ 81BE929 + .incbin "baserom.gba", 0x1BE929, 0xD + +PowerPlant_EventScript_1BE936:: @ 81BE936 + .incbin "baserom.gba", 0x1BE936, 0xD + +PowerPlant_EventScript_1BE943:: @ 81BE943 + .incbin "baserom.gba", 0x1BE943, 0xD + +PowerPlant_EventScript_1BE950:: @ 81BE950 + .incbin "baserom.gba", 0x1BE950, 0xD + +PokemonMansion_1F_EventScript_1BE95D:: @ 81BE95D + .incbin "baserom.gba", 0x1BE95D, 0xD + +PokemonMansion_1F_EventScript_1BE96A:: @ 81BE96A + .incbin "baserom.gba", 0x1BE96A, 0xD + +PokemonMansion_2F_EventScript_1BE977:: @ 81BE977 + .incbin "baserom.gba", 0x1BE977, 0xD + +PokemonMansion_3F_EventScript_1BE984:: @ 81BE984 + .incbin "baserom.gba", 0x1BE984, 0xD + +PokemonMansion_3F_EventScript_1BE991:: @ 81BE991 + .incbin "baserom.gba", 0x1BE991, 0xD + +PokemonMansion_B1F_EventScript_1BE99E:: @ 81BE99E + .incbin "baserom.gba", 0x1BE99E, 0xD + +PokemonMansion_B1F_EventScript_1BE9AB:: @ 81BE9AB + .incbin "baserom.gba", 0x1BE9AB, 0xD + +PokemonMansion_B1F_EventScript_1BE9B8:: @ 81BE9B8 + .incbin "baserom.gba", 0x1BE9B8, 0xD + +PokemonMansion_B1F_EventScript_1BE9C5:: @ 81BE9C5 + .incbin "baserom.gba", 0x1BE9C5, 0xD + +VictoryRoad_1F_EventScript_1BE9D2:: @ 81BE9D2 + .incbin "baserom.gba", 0x1BE9D2, 0xD + +VictoryRoad_1F_EventScript_1BE9DF:: @ 81BE9DF + .incbin "baserom.gba", 0x1BE9DF, 0xD + +VictoryRoad_2F_EventScript_1BE9EC:: @ 81BE9EC + .incbin "baserom.gba", 0x1BE9EC, 0xD + +VictoryRoad_2F_EventScript_1BE9F9:: @ 81BE9F9 + .incbin "baserom.gba", 0x1BE9F9, 0xD + +VictoryRoad_2F_EventScript_1BEA06:: @ 81BEA06 + .incbin "baserom.gba", 0x1BEA06, 0xD + +VictoryRoad_2F_EventScript_1BEA13:: @ 81BEA13 + .incbin "baserom.gba", 0x1BEA13, 0xD + +VictoryRoad_3F_EventScript_1BEA20:: @ 81BEA20 + .incbin "baserom.gba", 0x1BEA20, 0xD + +VictoryRoad_3F_EventScript_1BEA2D:: @ 81BEA2D + .incbin "baserom.gba", 0x1BEA2D, 0xD + +CeruleanCave_1F_EventScript_1BEA3A:: @ 81BEA3A + .incbin "baserom.gba", 0x1BEA3A, 0xD + +CeruleanCave_1F_EventScript_1BEA47:: @ 81BEA47 + .incbin "baserom.gba", 0x1BEA47, 0xD + +CeruleanCave_1F_EventScript_1BEA54:: @ 81BEA54 + .incbin "baserom.gba", 0x1BEA54, 0xD + +CeruleanCave_2F_EventScript_1BEA61:: @ 81BEA61 + .incbin "baserom.gba", 0x1BEA61, 0xD + +CeruleanCave_2F_EventScript_1BEA6E:: @ 81BEA6E + .incbin "baserom.gba", 0x1BEA6E, 0xD + +CeruleanCave_2F_EventScript_1BEA7B:: @ 81BEA7B + .incbin "baserom.gba", 0x1BEA7B, 0xD + +CeruleanCave_B1F_EventScript_1BEA88:: @ 81BEA88 + .incbin "baserom.gba", 0x1BEA88, 0xD + +CeruleanCave_B1F_EventScript_1BEA95:: @ 81BEA95 + .incbin "baserom.gba", 0x1BEA95, 0xD + +FuchsiaCity_Building1_EventScript_1BEAA2:: @ 81BEAA2 + .incbin "baserom.gba", 0x1BEAA2, 0xD + +TwoIsland_EventScript_1BEAAF:: @ 81BEAAF + .incbin "baserom.gba", 0x1BEAAF, 0xD + +ThreeIsland_EventScript_1BEABC:: @ 81BEABC + .incbin "baserom.gba", 0x1BEABC, 0xD + +ViridianForest_EventScript_1BEAC9:: @ 81BEAC9 + .incbin "baserom.gba", 0x1BEAC9, 0xD + +MtMoon_B2F_EventScript_1BEAD6:: @ 81BEAD6 + .incbin "baserom.gba", 0x1BEAD6, 0xD + +MtMoon_B2F_EventScript_1BEAE3:: @ 81BEAE3 + .incbin "baserom.gba", 0x1BEAE3, 0xD + +Route11_EventScript_1BEAF0:: @ 81BEAF0 + .incbin "baserom.gba", 0x1BEAF0, 0xD + +Route9_EventScript_1BEAFD:: @ 81BEAFD + .incbin "baserom.gba", 0x1BEAFD, 0xD + +RockTunnel_1F_EventScript_1BEB0A:: @ 81BEB0A + .incbin "baserom.gba", 0x1BEB0A, 0xD + +RockTunnel_1F_EventScript_1BEB17:: @ 81BEB17 + .incbin "baserom.gba", 0x1BEB17, 0xD + +RockTunnel_1F_EventScript_1BEB24:: @ 81BEB24 + .incbin "baserom.gba", 0x1BEB24, 0xD + +RockTunnel_B1F_EventScript_1BEB31:: @ 81BEB31 + .incbin "baserom.gba", 0x1BEB31, 0xD + +RockTunnel_B1F_EventScript_1BEB3E:: @ 81BEB3E + .incbin "baserom.gba", 0x1BEB3E, 0xD + +SilphCo_8F_EventScript_1BEB4B:: @ 81BEB4B + .incbin "baserom.gba", 0x1BEB4B, 0xD + +SilphCo_11F_EventScript_1BEB58:: @ 81BEB58 + .incbin "baserom.gba", 0x1BEB58, 0xD + +PokemonMansion_1F_EventScript_1BEB65:: @ 81BEB65 + .incbin "baserom.gba", 0x1BEB65, 0xD + +PokemonMansion_2F_EventScript_1BEB72:: @ 81BEB72 + .incbin "baserom.gba", 0x1BEB72, 0xD + +PokemonMansion_2F_EventScript_1BEB7F:: @ 81BEB7F + .incbin "baserom.gba", 0x1BEB7F, 0xD + +ViridianCity_EventScript_1BEB8C:: @ 81BEB8C + .incbin "baserom.gba", 0x1BEB8C, 0xD + +Route11_EventScript_1BEB99:: @ 81BEB99 + .incbin "baserom.gba", 0x1BEB99, 0xD + +Route11_EventScript_1BEBA6:: @ 81BEBA6 + .incbin "baserom.gba", 0x1BEBA6, 0xD + +PokemonTower_5F_EventScript_1BEBB3:: @ 81BEBB3 + .incbin "baserom.gba", 0x1BEBB3, 0xD + +CeladonCity_EventScript_1BEBC0:: @ 81BEBC0 + .incbin "baserom.gba", 0x1BEBC0, 0xD + +RocketHideout_B3F_EventScript_1BEBCD:: @ 81BEBCD + .incbin "baserom.gba", 0x1BEBCD, 0xD + +SafariZone_North_EventScript_1BEBDA:: @ 81BEBDA + .incbin "baserom.gba", 0x1BEBDA, 0xD + +SeafoamIslands_1F_EventScript_1BEBE7:: @ 81BEBE7 + .incbin "baserom.gba", 0x1BEBE7, 0xD + +SeafoamIslands_B1F_EventScript_1BEBF4:: @ 81BEBF4 + .incbin "baserom.gba", 0x1BEBF4, 0xD + +SeafoamIslands_B1F_EventScript_1BEC01:: @ 81BEC01 + .incbin "baserom.gba", 0x1BEC01, 0xD + +SeafoamIslands_B2F_EventScript_1BEC0E:: @ 81BEC0E + .incbin "baserom.gba", 0x1BEC0E, 0xD + +SeafoamIslands_B4F_EventScript_1BEC1B:: @ 81BEC1B + .incbin "baserom.gba", 0x1BEC1B, 0xD + +FourIsland_EventScript_1BEC28:: @ 81BEC28 + .incbin "baserom.gba", 0x1BEC28, 0xD + +FourIsland_EventScript_1BEC35:: @ 81BEC35 + .incbin "baserom.gba", 0x1BEC35, 0xD + +OneIsland_KindleRoad_EventScript_1BEC42:: @ 81BEC42 + .incbin "baserom.gba", 0x1BEC42, 0xD + +OneIsland_KindleRoad_EventScript_1BEC4F:: @ 81BEC4F + .incbin "baserom.gba", 0x1BEC4F, 0xD + +OneIsland_KindleRoad_EventScript_1BEC5C:: @ 81BEC5C + .incbin "baserom.gba", 0x1BEC5C, 0xD + +FiveIsland_Meadow_EventScript_1BEC69:: @ 81BEC69 + .incbin "baserom.gba", 0x1BEC69, 0xD + +FiveIsland_Meadow_EventScript_1BEC76:: @ 81BEC76 + .incbin "baserom.gba", 0x1BEC76, 0xD + +FiveIsland_MemorialPillar_EventScript_1BEC83:: @ 81BEC83 + .incbin "baserom.gba", 0x1BEC83, 0xD + +SixIsland_OutcastIsland_EventScript_1BEC90:: @ 81BEC90 + .incbin "baserom.gba", 0x1BEC90, 0xD + +SixIsland_WaterPath_EventScript_1BEC9D:: @ 81BEC9D + .incbin "baserom.gba", 0x1BEC9D, 0xD + +SixIsland_WaterPath_EventScript_1BECAA:: @ 81BECAA + .incbin "baserom.gba", 0x1BECAA, 0xD + +SixIsland_RuinValley_EventScript_1BECB7:: @ 81BECB7 + .incbin "baserom.gba", 0x1BECB7, 0xD + +SixIsland_RuinValley_EventScript_1BECC4:: @ 81BECC4 + .incbin "baserom.gba", 0x1BECC4, 0xD + +SixIsland_RuinValley_EventScript_1BECD1:: @ 81BECD1 + .incbin "baserom.gba", 0x1BECD1, 0xD + +SevenIsland_SevaultCanyon_EventScript_1BECDE:: @ 81BECDE + .incbin "baserom.gba", 0x1BECDE, 0xD + +SevenIsland_SevaultCanyon_EventScript_1BECEB:: @ 81BECEB + .incbin "baserom.gba", 0x1BECEB, 0xD + +SevenIsland_SevaultCanyon_EventScript_1BECF8:: @ 81BECF8 + .incbin "baserom.gba", 0x1BECF8, 0xD + +ThreeIsland_BerryForest_EventScript_1BED05:: @ 81BED05 + .incbin "baserom.gba", 0x1BED05, 0xD + +ThreeIsland_BerryForest_EventScript_1BED12:: @ 81BED12 + .incbin "baserom.gba", 0x1BED12, 0xD + +ThreeIsland_BerryForest_EventScript_1BED1F:: @ 81BED1F + .incbin "baserom.gba", 0x1BED1F, 0xD + +MtEmber_Exterior_EventScript_1BED2C:: @ 81BED2C + .incbin "baserom.gba", 0x1BED2C, 0xD + +MtEmber_Exterior_EventScript_1BED39:: @ 81BED39 + .incbin "baserom.gba", 0x1BED39, 0xD + +MtEmber_Exterior_EventScript_1BED46:: @ 81BED46 + .incbin "baserom.gba", 0x1BED46, 0xD + +FourIsland_IcefallCave_1F_EventScript_1BED53:: @ 81BED53 + .incbin "baserom.gba", 0x1BED53, 0xD + +FourIsland_IcefallCave_1F_EventScript_1BED60:: @ 81BED60 + .incbin "baserom.gba", 0x1BED60, 0xD + +FourIsland_IcefallCave_B1F_EventScript_1BED6D:: @ 81BED6D + .incbin "baserom.gba", 0x1BED6D, 0xD + +FourIsland_IcefallCave_B1F_EventScript_1BED7A:: @ 81BED7A + .incbin "baserom.gba", 0x1BED7A, 0xD + +FiveIsland_RocketWarehouse_EventScript_1BED87:: @ 81BED87 + .incbin "baserom.gba", 0x1BED87, 0xD + +FiveIsland_RocketWarehouse_EventScript_1BED94:: @ 81BED94 + .incbin "baserom.gba", 0x1BED94, 0xD + +FiveIsland_RocketWarehouse_EventScript_1BEDA1:: @ 81BEDA1 + .incbin "baserom.gba", 0x1BEDA1, 0xD + +FiveIsland_RocketWarehouse_EventScript_1BEDAE:: @ 81BEDAE + .incbin "baserom.gba", 0x1BEDAE, 0xD + +FiveIsland_LostCave_Room10_EventScript_1BEDBB:: @ 81BEDBB + .incbin "baserom.gba", 0x1BEDBB, 0xD + +FiveIsland_LostCave_Room11_EventScript_1BEDC8:: @ 81BEDC8 + .incbin "baserom.gba", 0x1BEDC8, 0xD + +FiveIsland_LostCave_Room12_EventScript_1BEDD5:: @ 81BEDD5 + .incbin "baserom.gba", 0x1BEDD5, 0xD + +FiveIsland_LostCave_Room13_EventScript_1BEDE2:: @ 81BEDE2 + .incbin "baserom.gba", 0x1BEDE2, 0xD + +FiveIsland_LostCave_Room14_EventScript_1BEDEF:: @ 81BEDEF + .incbin "baserom.gba", 0x1BEDEF, 0xD + +SevenIsland_SevaultCanyon_House_EventScript_1BEDFC:: @ 81BEDFC + .incbin "baserom.gba", 0x1BEDFC, 0xD + +SilphCo_4F_EventScript_1BEE09:: @ 81BEE09 + .incbin "baserom.gba", 0x1BEE09, 0xD + +PewterCity_PokemonCenter_1F_EventScript_1BEE16:: @ 81BEE16 + .incbin "baserom.gba", 0x1BEE16, 0x582 + +Route5_PokemonDayCare_EventScript_1BF398:: @ 81BF398 + .incbin "baserom.gba", 0x1BF398, 0x1AE + +gUnknown_81BF546:: @ 81BF546 + .incbin "baserom.gba", 0x1BF546, 0xF + +gUnknown_81BF555:: @ 81BF555 + .incbin "baserom.gba", 0x1BF555, 0x8E + +gUnknown_81BF5E3:: @ 81BF5E3 + .incbin "baserom.gba", 0x1BF5E3, 0xB7 + +gUnknown_81BF69A:: @ 81BF69A + .incbin "baserom.gba", 0x1BF69A, 0x35 + +gUnknown_81BF6CF:: @ 81BF6CF + .incbin "baserom.gba", 0x1BF6CF, 0x21 + +gUnknown_81BF6F0:: @ 81BF6F0 + .incbin "baserom.gba", 0x1BF6F0, 0x3A + +Text_1BF72A:: @ 81BF72A + .incbin "baserom.gba", 0x1BF72A, 0x2B + +gUnknown_81BF755:: @ 81BF755 + .incbin "baserom.gba", 0x1BF755, 0x34 + +gUnknown_81BF789:: @ 81BF789 + .incbin "baserom.gba", 0x1BF789, 0x2D + +gUnknown_81BF7B6:: @ 81BF7B6 + .incbin "baserom.gba", 0x1BF7B6, 0x2E + +gUnknown_81BF7E4:: @ 81BF7E4 + .incbin "baserom.gba", 0x1BF7E4, 0x55 + +gUnknown_81BF839:: @ 81BF839 + .incbin "baserom.gba", 0x1BF839, 0x27 + +gUnknown_81BF860:: @ 81BF860 + .incbin "baserom.gba", 0x1BF860, 0x3F + +gUnknown_81BF89F:: @ 81BF89F + .incbin "baserom.gba", 0x1BF89F, 0x57 + +gUnknown_81BF8F6:: @ 81BF8F6 + .incbin "baserom.gba", 0x1BF8F6, 0x20 + +gUnknown_81BF916:: @ 81BF916 + .incbin "baserom.gba", 0x1BF916, 0x1C + +gUnknown_81BF932:: @ 81BF932 + .incbin "baserom.gba", 0x1BF932, 0x1D + +gUnknown_81BF94F:: @ 81BF94F + .incbin "baserom.gba", 0x1BF94F, 0x27 + +gUnknown_81BF976:: @ 81BF976 + .incbin "baserom.gba", 0x1BF976, 0x12 + +gUnknown_81BF988:: @ 81BF988 + .incbin "baserom.gba", 0x1BF988, 0x44 + +gUnknown_81BF9CC:: @ 81BF9CC + .incbin "baserom.gba", 0x1BF9CC, 0x23 + +gUnknown_81BF9EF:: @ 81BF9EF + .incbin "baserom.gba", 0x1BF9EF, 0x4C + +gUnknown_81BFA3B:: @ 81BFA3B + .incbin "baserom.gba", 0x1BFA3B, 0x2C + +gUnknown_81BFA67:: @ 81BFA67 + .incbin "baserom.gba", 0x1BFA67, 0x1E + +gUnknown_81BFA85:: @ 81BFA85 + .incbin "baserom.gba", 0x1BFA85, 0x28 + +gUnknown_81BFAAD:: @ 81BFAAD + .incbin "baserom.gba", 0x1BFAAD, 0x3B + +gUnknown_81BFAE8:: @ 81BFAE8 + .incbin "baserom.gba", 0x1BFAE8, 0x21 + +gUnknown_81BFB09:: @ 81BFB09 + .incbin "baserom.gba", 0x1BFB09, 0x56 + +gUnknown_81BFB5F:: @ 81BFB5F + .incbin "baserom.gba", 0x1BFB5F, 0x6 + +gUnknown_81BFB65:: @ 81BFB65 + .incbin "baserom.gba", 0x1BFB65, 0x22 + +gUnknown_81BFB87:: @ 81BFB87 + .incbin "baserom.gba", 0x1BFB87, 0x23 + +gUnknown_81BFBAA:: @ 81BFBAA + .incbin "baserom.gba", 0x1BFBAA, 0x1B + +gUnknown_81BFBC5:: @ 81BFBC5 + .incbin "baserom.gba", 0x1BFBC5, 0x12 + +gUnknown_81BFBD7:: @ 81BFBD7 + .incbin "baserom.gba", 0x1BFBD7, 0x2D5 + +gUnknown_81BFEAC:: @ 81BFEAC + .incbin "baserom.gba", 0x1BFEAC, 0x1164 + +gUnknown_81C1010:: @ 81C1010 + .incbin "baserom.gba", 0x1C1010, 0xC + +gUnknown_81C101C:: @ 81C101C + .incbin "baserom.gba", 0x1C101C, 0x345 + +gUnknown_81C1361:: @ 81C1361 + .incbin "baserom.gba", 0x1C1361, 0x1B + +gUnknown_81C137C:: @ 81C137C + .incbin "baserom.gba", 0x1C137C, 0x5A + +gUnknown_81C13D6:: @ 81C13D6 + .incbin "baserom.gba", 0x1C13D6, 0x53 + +gUnknown_81C1429:: @ 81C1429 + .incbin "baserom.gba", 0x1C1429, 0x3385 + +VictoryRoad_2F_EventScript_1C47AE:: @ 81C47AE + .incbin "baserom.gba", 0x1C47AE, 0x68 + +EventScript_1C4816:: @ 81C4816 + .incbin "baserom.gba", 0x1C4816, 0x68 + +RockTunnel_B1F_EventScript_1C487E:: @ 81C487E + .incbin "baserom.gba", 0x1C487E, 0x68 + +MtEmber_Exterior_EventScript_1C48E6:: @ 81C48E6 + .incbin "baserom.gba", 0x1C48E6, 0x68 + +Route4_EventScript_1C494E:: @ 81C494E + .incbin "baserom.gba", 0x1C494E, 0x68 + +Route4_EventScript_1C49B6:: @ 81C49B6 + .incbin "baserom.gba", 0x1C49B6, 0x68 + +EventScript_1C4A1E:: @ 81C4A1E + .incbin "baserom.gba", 0x1C4A1E, 0x68 + +EventScript_1C4A86:: @ 81C4A86 + .incbin "baserom.gba", 0x1C4A86, 0x68 + +FuchsiaCity_EventScript_1C4AEE:: @ 81C4AEE + .incbin "baserom.gba", 0x1C4AEE, 0x68 + +SevenIsland_EventScript_1C4B56:: @ 81C4B56 + .incbin "baserom.gba", 0x1C4B56, 0x68 + +PewterCity_Museum_1F_EventScript_1C4BBE:: @ 81C4BBE + .incbin "baserom.gba", 0x1C4BBE, 0x68 + +EventScript_1C4C26:: @ 81C4C26 + .incbin "baserom.gba", 0x1C4C26, 0x68 + +EventScript_1C4C8E:: @ 81C4C8E + .incbin "baserom.gba", 0x1C4C8E, 0x68 + +EventScript_1C4CF6:: @ 81C4CF6 + .incbin "baserom.gba", 0x1C4CF6, 0x8E + +FourIsland_House1_EventScript_1C4D84:: @ 81C4D84 + .incbin "baserom.gba", 0x1C4D84, 0x68 + +TwoIsland_CapeBrink_House_EventScript_1C4DEC:: @ 81C4DEC + .incbin "baserom.gba", 0x1C4DEC, 0x168 + +SevenIsland_TrainerTower_1F_MapScript1_1C4F54:: @ 81C4F54 +SevenIsland_TrainerTower_2F_MapScript1_1C4F54:: @ 81C4F54 +SevenIsland_TrainerTower_3F_MapScript1_1C4F54:: @ 81C4F54 +SevenIsland_TrainerTower_4F_MapScript1_1C4F54:: @ 81C4F54 +SevenIsland_TrainerTower_5F_MapScript1_1C4F54:: @ 81C4F54 +SevenIsland_TrainerTower_6F_MapScript1_1C4F54:: @ 81C4F54 +SevenIsland_TrainerTower_7F_MapScript1_1C4F54:: @ 81C4F54 +SevenIsland_TrainerTower_8F_MapScript1_1C4F54:: @ 81C4F54 +SevenIsland_TrainerTower_Elevator_MapScript1_1C4F54:: @ 81C4F54 +SevenIsland_TrainerTower_Roof_MapScript1_1C4F54:: @ 81C4F54 + .incbin "baserom.gba", 0x1C4F54, 0xE + +SevenIsland_TrainerTower_1F_MapScript2_1C4F62:: @ 81C4F62 +SevenIsland_TrainerTower_2F_MapScript2_1C4F62:: @ 81C4F62 +SevenIsland_TrainerTower_3F_MapScript2_1C4F62:: @ 81C4F62 +SevenIsland_TrainerTower_4F_MapScript2_1C4F62:: @ 81C4F62 +SevenIsland_TrainerTower_5F_MapScript2_1C4F62:: @ 81C4F62 +SevenIsland_TrainerTower_6F_MapScript2_1C4F62:: @ 81C4F62 +SevenIsland_TrainerTower_7F_MapScript2_1C4F62:: @ 81C4F62 +SevenIsland_TrainerTower_8F_MapScript2_1C4F62:: @ 81C4F62 + .incbin "baserom.gba", 0x1C4F62, 0xE4 + +SevenIsland_TrainerTower_1F_MapScript3_1C5046:: @ 81C5046 +SevenIsland_TrainerTower_2F_MapScript3_1C5046:: @ 81C5046 +SevenIsland_TrainerTower_3F_MapScript3_1C5046:: @ 81C5046 +SevenIsland_TrainerTower_4F_MapScript3_1C5046:: @ 81C5046 +SevenIsland_TrainerTower_5F_MapScript3_1C5046:: @ 81C5046 +SevenIsland_TrainerTower_6F_MapScript3_1C5046:: @ 81C5046 +SevenIsland_TrainerTower_7F_MapScript3_1C5046:: @ 81C5046 +SevenIsland_TrainerTower_8F_MapScript3_1C5046:: @ 81C5046 +SevenIsland_TrainerTower_Elevator_MapScript2_1C5046:: @ 81C5046 +SevenIsland_TrainerTower_Roof_MapScript2_1C5046:: @ 81C5046 + .incbin "baserom.gba", 0x1C5046, 0x2AE + +EventScript_1C52F4:: @ 81C52F4 + .incbin "baserom.gba", 0x1C52F4, 0x47 + +EventScript_1C533B:: @ 81C533B + .incbin "baserom.gba", 0x1C533B, 0x47 + +EventScript_1C5382:: @ 81C5382 + .incbin "baserom.gba", 0x1C5382, 0xA + +EventScript_1C538C:: @ 81C538C + .incbin "baserom.gba", 0x1C538C, 0x1E + +EventScript_1C53AA:: @ 81C53AA + .incbin "baserom.gba", 0x1C53AA, 0xF2 + +gUnknown_81C549C:: @ 81C549C + .incbin "baserom.gba", 0x1C549C, 0x13 + +SevenIsland_TrainerTower_2F_EventScript_1C54AF:: @ 81C54AF +SevenIsland_TrainerTower_4F_EventScript_1C54AF:: @ 81C54AF +SevenIsland_TrainerTower_6F_EventScript_1C54AF:: @ 81C54AF +SevenIsland_TrainerTower_8F_EventScript_1C54AF:: @ 81C54AF +SevenIsland_TrainerTower_5F_EventScript_1C54AF:: @ 81C54AF +SevenIsland_TrainerTower_7F_EventScript_1C54AF:: @ 81C54AF +SevenIsland_TrainerTower_3F_EventScript_1C54AF:: @ 81C54AF +SevenIsland_TrainerTower_1F_EventScript_1C54AF:: @ 81C54AF + .incbin "baserom.gba", 0x1C54AF, 0x5 + +SevenIsland_TrainerTower_2F_EventScript_1C54B4:: @ 81C54B4 +SevenIsland_TrainerTower_4F_EventScript_1C54B4:: @ 81C54B4 +SevenIsland_TrainerTower_6F_EventScript_1C54B4:: @ 81C54B4 +SevenIsland_TrainerTower_8F_EventScript_1C54B4:: @ 81C54B4 +SevenIsland_TrainerTower_5F_EventScript_1C54B4:: @ 81C54B4 +SevenIsland_TrainerTower_7F_EventScript_1C54B4:: @ 81C54B4 +SevenIsland_TrainerTower_3F_EventScript_1C54B4:: @ 81C54B4 +SevenIsland_TrainerTower_1F_EventScript_1C54B4:: @ 81C54B4 + .incbin "baserom.gba", 0x1C54B4, 0x36 + +SevenIsland_TrainerTower_2F_EventScript_1C54EA:: @ 81C54EA +SevenIsland_TrainerTower_4F_EventScript_1C54EA:: @ 81C54EA +SevenIsland_TrainerTower_6F_EventScript_1C54EA:: @ 81C54EA +SevenIsland_TrainerTower_8F_EventScript_1C54EA:: @ 81C54EA +SevenIsland_TrainerTower_5F_EventScript_1C54EA:: @ 81C54EA +SevenIsland_TrainerTower_7F_EventScript_1C54EA:: @ 81C54EA +SevenIsland_TrainerTower_3F_EventScript_1C54EA:: @ 81C54EA +SevenIsland_TrainerTower_1F_EventScript_1C54EA:: @ 81C54EA + .incbin "baserom.gba", 0x1C54EA, 0x71 + +gUnknown_81C555B:: @ 81C555B + .incbin "baserom.gba", 0x1C555B, 0x6E + +gUnknown_81C55C9:: @ 81C55C9 + .incbin "baserom.gba", 0x1C55C9, 0x21 + +gUnknown_81C55EA:: @ 81C55EA + .incbin "baserom.gba", 0x1C55EA, 0x3B + +gUnknown_81C5625:: @ 81C5625 + .incbin "baserom.gba", 0x1C5625, 0x22 + +gUnknown_81C5647:: @ 81C5647 + .incbin "baserom.gba", 0x1C5647, 0x23 + +@ 0xE5 +gUnknown_81C566A:: @ 81C566A + .incbin "baserom.gba", 0x1C566A, 0xE5 + +gOtherText_NewName:: @ 81C574F + .string "NEW NAME$" + +gNameChoice_Green:: @ 81C5758 + .string "GREEN$" + +gNameChoice_Red:: @ 81C575E + .string "RED$" + +gNameChoice_Leaf:: @ 81C5762 + .string "LEAF$" + +gNameChoice_Fire:: @ 81C5767 + .string "FIRE$" + +gNameChoice_Gary:: @ 81C576C + .string "GARY$" + +gNameChoice_Kaz:: @ 81C5771 + .string "KAZ$" + +gNameChoice_Toru:: @ 81C5775 + .string "TORU$" + +gNameChoice_Ash:: @ 81C577A + .string "ASH$" + +gNameChoice_Kene:: @ 81C577E + .string "KENE$" + +gNameChoice_Geki:: @ 81C5783 + .string "GEKI$" + +gNameChoice_Jak:: @ 81C5788 + .string "JAK$" + +gNameChoice_Janne:: @ 81C578C + .string "JANNE$" + +gNameChoice_Jonn:: @ 81C5792 + .string "JONN$" + +gNameChoice_Kamon:: @ 81C5797 + .string "KAMON$" + +gNameChoice_Karl:: @ 81C579D + .string "KARL$" + +gNameChoice_Taylor:: @ 81C57A2 + .string "TAYLOR$" + +gNameChoice_Oscar:: @ 81C57A9 + .string "OSCAR$" + +gNameChoice_Hiro:: @ 81C57AF + .string "HIRO$" + +gNameChoice_Max:: @ 81C57B4 + .string "MAX$" + +gNameChoice_Jon:: @ 81C57B8 + .string "JON$" + +gNameChoice_Ralph:: @ 81C57BC + .string "RALPH$" + +gNameChoice_Kay:: @ 81C57C2 + .string "KAY$" + +gNameChoice_Tosh:: @ 81C57C6 + .string "TOSH$" + +gNameChoice_Roak:: @ 81C57CB + .string "ROAK$" + +gNameChoice_Omi:: @ 81C57D0 + .string "OMI$" + +gNameChoice_Jodi:: @ 81C57D4 + .string "JODI$" + +gNameChoice_Amanda:: @ 81C57D9 + .string "AMANDA$" + +gNameChoice_Hillary:: @ 81C57E0 + .string "HILLARY$" + +gNameChoice_Makey:: @ 81C57E8 + .string "MAKEY$" + +gNameChoice_Michi:: @ 81C57EE + .string "MICHI$" + +gNameChoice_Paula:: @ 81C57F4 + .string "PAULA$" + +gNameChoice_June:: @ 81C57FA + .string "JUNE$" + +gNameChoice_Cassie:: @ 81C57FF + .string "CASSIE$" + +gNameChoice_Rey:: @ 81C5806 + .string "REY$" + +gNameChoice_Seda:: @ 81C580A + .string "SEDA$" + +gNameChoice_Kiko:: @ 81C580F + .string "KIKO$" + +gNameChoice_Mina:: @ 81C5814 + .string "MINA$" + +gNameChoice_Norie:: @ 81C5819 + .string "NORIE$" + +gNameChoice_Sai:: @ 81C581F + .string "SAI$" + +gNameChoice_Momo:: @ 81C5823 + .string "MOMO$" + +gNameChoice_Suzi:: @ 81C5828 + .string "SUZI$" + +gNewGame_HelpDocs1:: @ 81C582D + .string "The various buttons will be explained in\n" + .string "the order of their importance.$" + +gNewGame_HelpDocs2:: @ 81C5875 + .string "Moves the main character.\n" + .string "Also used to choose various data\n" + .string "headings.$" + +gNewGame_HelpDocs3:: @ 81C58BA + .string "Used to confirm a choice, check\n" + .string "things, chat, and scroll text.$" + +gNewGame_HelpDocs4:: @ 81C58F9 + .string "Used to exit, cancel a choice,\n" + .string "and cancel a mode.$" + +gNewGame_HelpDocs5:: @ 81C592B + .string "Press this button to open the\n" + .string "MENU.$" + +gNewGame_HelpDocs6:: @ 81C594F + .string "Used to shift items and to use\n" + .string "a registered item.$" + +gNewGame_HelpDocs7:: @ 81C5981 + .string "If you need help playing the\n" + .string "game, or on how to do things,\n" + .string "press the L or R Button.$" + +gOakText_AskPlayerGender:: @ 81C59D5 + .string "Now tell me. Are you a boy?\n" + .string "Or are you a girl?$" + +gNewGameAdventureIntro1:: + .string "In the world which you are about to\n" + .string "enter, you will embark on a grand\n" + .string "adventure with you as the hero.\n" + .string "\n" + .string "Speak to people and check things\n" + .string "wherever you go, be it towns, roads,\n" + .string "or caves. Gather information and\n" + .string "hints from every source.$" + +gNewGameAdventureIntro2:: + .string "New paths will open to you by helping\n" + .string "people in need, overcoming challenges,\n" + .string "and solving mysteries.\n" + .string "\n" + .string "At times, you will be challenged by\n" + .string "others and attacked by wild creatures.\n" + .string "Be brave and keep pushing on.$" + +gNewGameAdventureIntro3:: + .string "Through your adventure, we hope\n" + .string "that you will interact with all sorts\n" + .string "of people and achieve personal growth.\n" + .string "That is our biggest objective.\n" + .string "\n" + .string "Press the A Button, and let your\n" + .string "adventure begin!$" + +gOakText_WelcomeToTheWorld:: @ 81C5C78 + .string "Hello, there!\n" + .string "Glad to meet you!\pWelcome to the world of POKéMON!\pMy name is OAK.\pPeople affectionately refer to me\n" + .string "as the POKéMON PROFESSOR.\p$" + +gOakText_WorldInhabited1:: @ 81C5D06 + .string "This world…$" + +gOakText_WorldInhabited2:: @ 81C5D12 + .string "…is inhabited far and wide by\n" + .string "creatures called POKéMON.\p$" + +gOakText_PetsBattlingStudy:: @ 81C5D4B + .string "For some people, POKéMON are pets.\n" + .string "Others use them for battling.\pAs for myself…\pI study POKéMON as a profession.\p$" + +gOakText_TellMeALittleAboutYourself:: @ 81C5DBD + .string "But first, tell me a little about\n" + .string "yourself.\p$" + +gOakText_AskPlayerName:: @ 81C5DEA + .string "Let's begin with your name.\n" + .string "What is it?\p$" + +gOakText_FinalizePlayerName:: @ 81C5E13 + .string "Right…\n" + .string "So your name is {PLAYER}.$" + +gOakText_IntroduceRival:: @ 81C5E2E + .string "This is my grandson.\pHe's been your rival since you both\n" + .string "were babies.\p…Erm, what was his name now?$" + +gOakText_AskRivalName:: @ 81C5E91 + .string "Your rival's name, what was it now?$" + +gOakText_ConfirmRivalName:: @ 81C5EB5 + .string "…Er, was it {RIVAL}?$" + +gOakText_RememberRivalName:: @ 81C5EC5 + .string "That's right! I remember now!\n" + .string "His name is {RIVAL}!\p$" + +gOakText_LegendAboutToUnfold:: @ 81C5EF4 + .string "{PLAYER}!\pYour very own POKéMON legend is\n" + .string "about to unfold!\pA world of dreams and adventures\n" + .string "with POKéMON awaits! Let's go!$" + +@ pokedude data +gUnknown_81C5F69:: + .string "POKé DUDE: The speedier of the\n" + .string "battlers gets to attack first.$" + +gUnknown_81C5FA7:: + .string "It looks like my RATTATA was\n" + .string "faster than the PIDGEY.$" + +gUnknown_81C5FDC:: + .string "The battlers take turns attacking\n" + .string "and reducing each other's HP.$" + +gUnknown_81C601C:: + .string "My RATTATA reduced the foe's HP\n" + .string "to zero, so it wins!\p" + + .string "The POKéMON that took part in the\n" + .string "battle get EXP. Points.\p" + + .string "When a POKéMON collects enough\n" + .string "EXP. Points, it levels up.\p" + + .string "Leveling up makes your POKéMON\n" + .string "stronger than before.$" + +gUnknown_81C60FA:: + .string "POKé DUDE: Uh-oh…\n" + .string "My RATTATA has been poisoned…\p" + + .string "If a POKéMON is poisoned, it loses\n" + .string "HP steadily.$" + +gUnknown_81C615A:: + .string "If a POKéMON develops a status\n" + .string "problem, heal it right away.$" + +gUnknown_81C6196:: + .string "Using an item on a POKéMON uses\n" + .string "up one turn, though.\p" + + .string "Now, it's the opponent's turn!$" + +gUnknown_81C61EA:: + .string "Yay!\n" + .string "We managed to win!$" + +gUnknown_81C6202:: + .string "POKé DUDE: The move BUBBLE is\n" + .string "a WATER-type attack.\p" + + .string "The targeted ODDISH is a\n" + .string "GRASS/POISON-type POKéMON.\p" + + .string "The WATER-type attack is absorbed\n" + .string "by the GRASS-type POKéMON…\p" + + .string "As a result, the move becomes not\n" + .string "very effective, and inflicts only\l" + .string "half the usual damage.$" + +gUnknown_81C6301:: + .string "Uh-oh, this is not good!\p" + + .string "The ABSORB attack you just saw\n" + .string "is a GRASS-type move.\p" + + .string "POLIWAG is a WATER-type POKéMON.\p" + + .string "So, ABSORB becomes super\n" + .string "effective, doubling the damage.$" + +gUnknown_81C63A9:: + .string "It's not going to be easy to win\n" + .string "with this matchup…\p" + + .string "Let's try shifting POKéMON!$" + +gUnknown_81C63F9:: + .string "Shifting POKéMON in and out uses\n" + .string "up one turn.\p" + + .string "Now, it's the opponent's turn.$" + +gUnknown_81C6446:: + .string "BUTTERFREE is a BUG/FLYING-type\n" + .string "POKéMON.\p" + + .string "Against this POKéMON, a GRASS-\n" + .string "type attack…\p" + + .string "…inflicts only half the usual\n" + .string "damage on a BUG-type POKéMON…\p" + + .string "…And, it also causes only half the\n" + .string "damage on a FLYING-type POKéMON.\p" + + .string "Therefore, BUTTERFREE, being a\n" + .string "BUG/FLYING POKéMON, only takes\l" + .string "one quarter of the usual damage.$" + +gUnknown_81C657A:: + .string "ODDISH is a GRASS/POISON-type\n" + .string "POKéMON.\p" + + .string "A FLYING- or PSYCHIC-type attack\n" + .string "is super effective against it.\p" + + .string "One of those types of attacks will\n" + .string "inflict double the usual damage.\p" + + .string "Okay, here we go!$" + +gUnknown_81C6637:: + .string "Yeah!\n" + .string "We won!$" + +gUnknown_81C6645:: + .string "POKé DUDE: When you're trying to\n" + .string "catch a POKéMON, don't throw any\l" + .string "POKé BALLS right away.\p" + + .string "First, you need to weaken it by\n" + .string "reducing its HP.$" + +gUnknown_81C66CF:: + .string "Okay, that should be good enough.\p" + + .string "But, if it's possible, it would be\n" + .string "best if the target has a status\l" + .string "problem.\p" + + .string "For instance, it would be easier\n" + .string "to catch if it were asleep or\l" + .string "paralyzed.$" + +gUnknown_81C6787:: + .string "This will make the POKéMON a lot\n" + .string "easier to catch!\p" + + .string "Oh, yes. If you paralyze a\n" + .string "POKéMON, you can't make it fall\l" + .string "asleep on top of paralysis.\p" + + .string "In other words, you can't double\n" + .string "up status problems, okay?$" + +gUnknown_81C684B:: + .string "Okay!\n" + .string "Let me throw my POKé BALL!$" + +gUnknown_81C686C:: + .string "Before you throw a POKé BALL,\n" + .string "consider the condition and the\l" + .string "type of POKéMON, and pick the kind\l" + .string "of BALL that would work best.$" diff --git a/data/map_events.s b/data/map_events.s new file mode 100644 index 000000000..d5d0e2329 --- /dev/null +++ b/data/map_events.s @@ -0,0 +1,18 @@ +@#include "constants/bg_event_constants.h" +@#include "constants/event_object_movement_constants.h" +@#include "constants/event_objects.h" +#include "constants/flags.h" +#include "constants/items.h" +@#include "constants/map_scripts.h" +#include "constants/layouts.h" +#include "constants/maps.h" +@#include "constants/secret_bases.h" +#include "constants/vars.h" +#include "constants/weather.h" +@#include "constants/trainer_hill.h" + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .include "data/maps/events.inc" diff --git a/data/map_obj_80688E4.s b/data/map_obj_80688E4.s new file mode 100644 index 000000000..9010be906 --- /dev/null +++ b/data/map_obj_80688E4.s @@ -0,0 +1,30 @@ + .section .rodata + .align 2 +gUnknown_83A719C:: @ 83A719C + .incbin "baserom.gba", 0x3A719C, 0x14 + +gUnknown_83A71B0:: @ 83A71B0 + .incbin "baserom.gba", 0x3A71B0, 0x3C + +gUnknown_83A71EC:: @ 83A71EC + .incbin "baserom.gba", 0x3A71EC, 0xC + +gUnknown_83A71F8:: @ 83A71F8 + .incbin "baserom.gba", 0x3A71F8, 0x6 + +gUnknown_83A71FE:: @ 83A71FE + .incbin "baserom.gba", 0x3A71FE, 0x4 + +gUnknown_83A7202:: @ 83A7202 + .incbin "baserom.gba", 0x3A7202, 0x6 + +gUnknown_83A7208:: @ 83A7208 + .incbin "baserom.gba", 0x3A7208, 0x4 + + .align 2 +gUnknown_83A720C:: @ 83A720C + .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/evobjmv.c" + + .align 2 +gUnknown_83A7240:: @ 83A7240 + .asciz "0" diff --git a/data/maps.s b/data/maps.s new file mode 100644 index 000000000..a0ff008cd --- /dev/null +++ b/data/maps.s @@ -0,0 +1,17 @@ +#include "constants/layouts.h" +@#include "constants/map_types.h" +#include "constants/maps.h" +#include "constants/region_map.h" +#include "constants/songs.h" +#include "constants/items.h" +#include "constants/weather.h" + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .include "data/layouts/layouts.inc" + .include "data/layouts/layouts_table.inc" + .include "data/maps/headers.inc" + .include "data/maps/groups.inc" + .include "data/maps/connections.inc" diff --git a/data/maps/.gitignore b/data/maps/.gitignore new file mode 100644 index 000000000..59405b176 --- /dev/null +++ b/data/maps/.gitignore @@ -0,0 +1,7 @@ +connections.inc +events.inc +groups.inc +headers.inc +**/connections.inc +**/events.inc +**/header.inc diff --git a/data/maps/BirthIsland_Exterior/map.json b/data/maps/BirthIsland_Exterior/map.json new file mode 100644 index 000000000..5ee37131f --- /dev/null +++ b/data/maps/BirthIsland_Exterior/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_BIRTH_ISLAND_EXTERIOR", + "name": "BirthIsland_Exterior", + "layout": "LAYOUT_BIRTH_ISLAND_EXTERIOR", + "music": "0xFFFF", + "region_map_section": "MAPSEC_BIRTH_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_3", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "106", + "x": 15, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "BirthIsland_Exterior_EventScript_165271", + "flag": "154" + }, + { + "graphics_id": "240", + "x": 15, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "153" + } + ], + "warp_events": [ + { + "x": 15, + "y": 24, + "elevation": 3, + "dest_map": "MAP_BIRTH_ISLAND_HARBOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc new file mode 100644 index 000000000..1d3fc4db6 --- /dev/null +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -0,0 +1,128 @@ +BirthIsland_Exterior_MapScripts:: @ 8165203 + map_script 3, BirthIsland_Exterior_MapScript1_165217 + map_script 5, BirthIsland_Exterior_MapScript2_165253 + map_script 7, BirthIsland_Exterior_MapScript3_165213 + .byte 0 + +BirthIsland_Exterior_MapScript3_165213:: @ 8165213 + special sub_80CD008 + end + +BirthIsland_Exterior_MapScript1_165217:: @ 8165217 + setworldmapflag FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR + setvar VAR_0x4010, 150 + setvar VAR_SECRET_BASE_MAP, 0 + setvar VAR_ALTERING_CAVE_WILD_SET, 0 + checkflag FLAG_0x2E4 + call_if 1, EventScript_16523C + checkflag FLAG_0x2E4 + call_if 0, EventScript_165243 + end + +EventScript_16523C:: @ 816523C + setflag FLAG_0x099 + setflag FLAG_0x09A + return + +EventScript_165243:: @ 8165243 + checkflag FLAG_0x2F7 + goto_if_eq EventScript_1A77A9 + clearflag FLAG_0x09A + clearflag FLAG_0x848 + return + +BirthIsland_Exterior_MapScript2_165253:: @ 8165253 + checkflag FLAG_0x807 + call_if 1, EventScript_16525D + end + +EventScript_16525D:: @ 816525D + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 7 + goto_if 5, EventScript_1A77A9 + removeobject 2 + return + +BirthIsland_Exterior_EventScript_165271:: @ 8165271 + lock + faceplayer + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + special sub_80CCDFC + waitstate + switch VAR_RESULT + case 0, EventScript_1652BA + case 1, EventScript_1652BC + case 2, EventScript_1652C0 + case 3, EventScript_1652BE + end + +EventScript_1652BA:: @ 81652BA + release + end + +EventScript_1652BC:: @ 81652BC + release + end + +EventScript_1652BE:: @ 81652BE + release + end + +EventScript_1652C0:: @ 81652C0 + addobject 2 + waitse + setfieldeffectarg 0, 1 + setfieldeffectarg 1, 56 + setfieldeffectarg 2, 2 + dofieldeffect 68 + playbgm BGM_FRLG_DEOXYS_EYE, 0 + waitfieldeffect 68 + applymovement 2, Movement_165353 + waitmovement 0 + waitse + playmoncry SPECIES_DEOXYS, 2 + delay 40 + waitmoncry + setvar VAR_LAST_TALKED, 2 + setvar VAR_0x8004, SPECIES_DEOXYS + setvar VAR_0x8005, 30 + setvar VAR_0x8006, 0 + special sub_8044838 + setflag FLAG_0x807 + special sub_807F9D8 + waitstate + clearflag FLAG_0x807 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16533A + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_165348 + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_165348 + setflag FLAG_0x2E4 + release + end + +EventScript_16533A:: @ 816533A + setflag FLAG_0x2F7 + setvar VAR_0x8004, SPECIES_DEOXYS + goto EventScript_1A9236 + end + +EventScript_165348:: @ 8165348 + setvar VAR_0x8004, SPECIES_DEOXYS + goto EventScript_1A9236 + end + +Movement_165353:: @ 8165353 + step_down + step_down + step_down + step_down + step_down + step_down + step_down + step_end diff --git a/data/maps/BirthIsland_Harbor/map.json b/data/maps/BirthIsland_Harbor/map.json new file mode 100644 index 000000000..cecda6ec5 --- /dev/null +++ b/data/maps/BirthIsland_Harbor/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_BIRTH_ISLAND_HARBOR", + "name": "BirthIsland_Harbor", + "layout": "LAYOUT_ISLAND_HARBOR", + "music": "0xFFFF", + "region_map_section": "MAPSEC_BIRTH_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "108", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "BirthIsland_Harbor_EventScript_1653E7", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_BIRTH_ISLAND_EXTERIOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/BirthIsland_Harbor/scripts.inc b/data/maps/BirthIsland_Harbor/scripts.inc new file mode 100644 index 000000000..487cae2f1 --- /dev/null +++ b/data/maps/BirthIsland_Harbor/scripts.inc @@ -0,0 +1,31 @@ +BirthIsland_Harbor_MapScripts:: @ 81653E6 + .byte 0 + +BirthIsland_Harbor_EventScript_1653E7:: @ 81653E7 + lock + faceplayer + message Text_181726 + waitmessage + setvar VAR_0x8004, 10 + multichoice 20, 8, 61, 0 + switch VAR_RESULT + case 0, EventScript_1A91D5 + case 1, EventScript_1A90F6 + case 127, EventScript_1A90F6 + end + +NavelRock_Harbor_MapScripts:: @ 8165420 + .byte 0 + +NavelRock_Harbor_EventScript_165421:: @ 8165421 + lock + faceplayer + message Text_181726 + waitmessage + setvar VAR_0x8004, 9 + multichoice 20, 8, 61, 0 + switch VAR_RESULT + case 0, EventScript_1A91D5 + case 1, EventScript_1A90F6 + case 127, EventScript_1A90F6 + end diff --git a/data/maps/CeladonCity/map.json b/data/maps/CeladonCity/map.json new file mode 100644 index 000000000..3c3483967 --- /dev/null +++ b/data/maps/CeladonCity/map.json @@ -0,0 +1,384 @@ +{ + "id": "MAP_CELADON_CITY", + "name": "CeladonCity", + "layout": "LAYOUT_CELADON_CITY", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE16", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE7", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "49", + "x": 48, + "y": 15, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166CFA", + "flag": "95" + }, + { + "graphics_id": "27", + "x": 38, + "y": 14, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166CC5", + "flag": "0" + }, + { + "graphics_id": "112", + "x": 36, + "y": 14, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166CDC", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 11, + "y": 18, + "elevation": 3, + "movement_type": "52", + "movement_range_x": 4, + "movement_range_y": 4, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166C99", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 18, + "y": 22, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 5, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166CAD", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 30, + "y": 24, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166CB6", + "flag": "0" + }, + { + "graphics_id": "33", + "x": 26, + "y": 19, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166CBF", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 38, + "y": 31, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 5, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166D03", + "flag": "95" + }, + { + "graphics_id": "32", + "x": 9, + "y": 30, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166CA2", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 52, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_1BDF13", + "flag": "20" + }, + { + "graphics_id": "95", + "x": 40, + "y": 35, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "19", + "x": 25, + "y": 10, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166D0C", + "flag": "0" + }, + { + "graphics_id": "65375", + "x": 65529, + "y": 21, + "elevation": 7, + "movement_type": "0", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 34, + "trainer_sight_or_berry_tree_id": 3, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_1BEBC0", + "flag": "465" + }, + { + "graphics_id": "55", + "x": 47, + "y": 24, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_EventScript_166D15", + "flag": "95" + } + ], + "warp_events": [ + { + "x": 34, + "y": 21, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_GAME_CORNER", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 14, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", + "dest_warp_id": 1 + }, + { + "x": 15, + "y": 14, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", + "dest_warp_id": 4 + }, + { + "x": 30, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": 1 + }, + { + "x": 48, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 39, + "y": 20, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 30, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_GYM", + "dest_warp_id": 1 + }, + { + "x": 37, + "y": 29, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_RESTAURANT", + "dest_warp_id": 1 + }, + { + "x": 41, + "y": 29, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_HOUSE1", + "dest_warp_id": 1 + }, + { + "x": 49, + "y": 29, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_HOTEL", + "dest_warp_id": 1 + }, + { + "x": 29, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": 5 + }, + { + "x": 30, + "y": 4, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": 5 + }, + { + "x": 31, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 45, + "y": 23, + "elevation": 0, + "script": "CeladonCity_EventScript_166D5A" + }, + { + "type": "bg_event_type_0", + "x": 38, + "y": 23, + "elevation": 0, + "script": "CeladonCity_EventScript_166D63" + }, + { + "type": "bg_event_type_0", + "x": 33, + "y": 23, + "elevation": 0, + "script": "CeladonCity_EventScript_166D6C" + }, + { + "type": "bg_event_type_0", + "x": 22, + "y": 18, + "elevation": 3, + "script": "CeladonCity_EventScript_166D27" + }, + { + "type": "bg_event_type_0", + "x": 26, + "y": 11, + "elevation": 0, + "script": "CeladonCity_EventScript_166D48" + }, + { + "type": "bg_event_type_0", + "x": 33, + "y": 16, + "elevation": 0, + "script": "CeladonCity_EventScript_166D1E" + }, + { + "type": "bg_event_type_0", + "x": 18, + "y": 14, + "elevation": 3, + "script": "CeladonCity_EventScript_166D51" + }, + { + "type": "bg_event_type_0", + "x": 16, + "y": 31, + "elevation": 0, + "script": "CeladonCity_EventScript_166D30" + }, + { + "type": "hidden_item", + "x": 55, + "y": 20, + "elevation": 3, + "item": "ITEM_PP_UP", + "flag": "47", + "unknown": 1 + } + ] +} diff --git a/data/maps/CeladonCity/scripts.inc b/data/maps/CeladonCity/scripts.inc new file mode 100644 index 000000000..9f7dc58c2 --- /dev/null +++ b/data/maps/CeladonCity/scripts.inc @@ -0,0 +1,105 @@ +CeladonCity_MapScripts:: @ 8166C8F + map_script 3, CeladonCity_MapScript1_166C95 + .byte 0 + +CeladonCity_MapScript1_166C95:: @ 8166C95 + setworldmapflag FLAG_WORLD_MAP_CELADON_CITY + end + +CeladonCity_EventScript_166C99:: @ 8166C99 + msgbox gUnknown_817FEC3, 2 + end + +CeladonCity_EventScript_166CA2:: @ 8166CA2 + lock + msgbox gUnknown_817FF1C + release + end + +CeladonCity_EventScript_166CAD:: @ 8166CAD + msgbox gUnknown_817FF4A, 2 + end + +CeladonCity_EventScript_166CB6:: @ 8166CB6 + msgbox gUnknown_817FFC5, 2 + end + +CeladonCity_EventScript_166CBF:: @ 8166CBF + goto EventScript_1C4A86 + end + +CeladonCity_EventScript_166CC5:: @ 8166CC5 + lock + faceplayer + msgbox gUnknown_818001B + closemessage + applymovement 2, Movement_1A75E5 + waitmovement 0 + release + end + +CeladonCity_EventScript_166CDC:: @ 8166CDC + lock + faceplayer + waitse + playmoncry SPECIES_POLIWRATH, 0 + msgbox gUnknown_8180075 + closemessage + waitmoncry + applymovement 3, Movement_1A75E5 + waitmovement 0 + release + end + +CeladonCity_EventScript_166CFA:: @ 8166CFA + msgbox gUnknown_81800C2, 2 + end + +CeladonCity_EventScript_166D03:: @ 8166D03 + msgbox gUnknown_818008C, 2 + end + +CeladonCity_EventScript_166D0C:: @ 8166D0C + msgbox gUnknown_8180300, 2 + end + +CeladonCity_EventScript_166D15:: @ 8166D15 + msgbox gUnknown_81804E1, 2 + end + +CeladonCity_EventScript_166D1E:: @ 8166D1E + msgbox gUnknown_81800E1, 3 + end + +CeladonCity_EventScript_166D27:: @ 8166D27 + msgbox gUnknown_818017A, 3 + end + +CeladonCity_EventScript_166D30:: @ 8166D30 + lockall + setvar VAR_0x8004, 5 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_81801A2 + releaseall + end + +CeladonCity_EventScript_166D48:: @ 8166D48 + msgbox gUnknown_81801E5, 3 + end + +CeladonCity_EventScript_166D51:: @ 8166D51 + msgbox gUnknown_81801F5, 3 + end + +CeladonCity_EventScript_166D5A:: @ 8166D5A + msgbox gUnknown_8180224, 3 + end + +CeladonCity_EventScript_166D63:: @ 8166D63 + msgbox gUnknown_81802A4, 3 + end + +CeladonCity_EventScript_166D6C:: @ 8166D6C + msgbox gUnknown_81802CF, 3 + end diff --git a/data/maps/CeladonCity/text.inc b/data/maps/CeladonCity/text.inc new file mode 100644 index 000000000..f10516c9d --- /dev/null +++ b/data/maps/CeladonCity/text.inc @@ -0,0 +1,114 @@ +gUnknown_817FEC3:: @ 817FEC3 + .string "I got my KOFFING in CINNABAR.\p" + .string "It's usually nice, but it breathes\n" + .string "poison when it's angry.$" + +gUnknown_817FF1C:: @ 817FF1C + .string "Heheh! This GYM is great!\n" + .string "It's full of women!$" + +gUnknown_817FF4A:: @ 817FF4A + .string "CELADON takes pride in its efforts\n" + .string "to keep the city beautiful.\p" + .string "That's why the new GAME CORNER is\n" + .string "bad for our city's image.$" + +gUnknown_817FFC5:: @ 817FFC5 + .string "Moan…\n" + .string "I blew it all at the slots!\p" + .string "I knew I should have cashed in my\n" + .string "COINS for prizes!$" + +gUnknown_818001B:: @ 818001B + .string "This is my trusted pal, POLIWRATH.\p" + .string "It evolved from a POLIWHIRL when\n" + .string "I used a WATER STONE.$" + +gUnknown_8180075:: @ 8180075 + .string "POLIWRATH: Ribi ribit!$" + +gUnknown_818008C:: @ 818008C + .string "What are you staring at?\n" + .string "Get lost, or I'll punch you.$" + +gUnknown_81800C2:: @ 81800C2 + .string "Keep out of TEAM ROCKET's way!$" + +gUnknown_81800E1:: @ 81800E1 + .string "TRAINER TIPS\p" + .string "X ACCURACY boosts the accuracy of\n" + .string "techniques.\p" + .string "DIRE HIT jacks up the likelihood\n" + .string "of critical hits.\p" + .string "Get your items at the CELADON\n" + .string "DEPT. STORE!$" + +gUnknown_818017A:: @ 818017A + .string "CELADON CITY\n" + .string "The City of Rainbow Dreams$" + +gUnknown_81801A2:: @ 81801A2 + .string "CELADON CITY POKéMON GYM\n" + .string "LEADER: ERIKA\l" + .string "The Nature-Loving Princess!$" + +gUnknown_81801E5:: @ 81801E5 + .string "CELADON MANSION$" + +gUnknown_81801F5:: @ 81801F5 + .string "Find what you need at the\n" + .string "CELADON DEPT. STORE!$" + +gUnknown_8180224:: @ 8180224 + .string "TRAINER TIPS\p" + .string "GUARD SPEC. protects POKéMON\n" + .string "from status-reduction moves during\l" + .string "battle.\p" + .string "Get your items at the\n" + .string "CELADON DEPT. STORE!$" + +gUnknown_81802A4:: @ 81802A4 + .string "COINS exchanged for prizes!\n" + .string "PRIZE EXCHANGE$" + +gUnknown_81802CF:: @ 81802CF + .string "ROCKET GAME CORNER\n" + .string "The playground for grown-ups!$" + +gUnknown_8180300:: @ 8180300 + .string "Aaaagh, ow…\n" + .string "I scalded my tongue!\p" + .string "This nice old lady in the MANSION\n" + .string "gave me some TEA.\p" + .string "But it was boiling hot!\n" + .string "Gotta cool it to drink it.$" + +Text_180388:: @ 8180388 + .string "Hello, there!\p" + .string "I've seen you about, but I never\n" + .string "had a chance to chat.\p" + .string "It must be good luck that brought\n" + .string "us together finally.\p" + .string "I'd like to celebrate by teaching\n" + .string "you the move SOFTBOILED.$" + +Text_18043F:: @ 818043F + .string "I'll always be keeping an eye out\n" + .string "for you.\p" + .string "I hope we can chat again.$" + +Text_180484:: @ 8180484 + .string "So, who's the POKéMON that gets\n" + .string "the chance to learn SOFTBOILED?$" + +Text_1804C4:: @ 81804C4 + .string "I wish you the best of luck!$" + +gUnknown_81804E1:: @ 81804E1 + .string "Oh, what am I to do…\p" + .string "Someone stole our SILPH SCOPE.\p" + .string "The thief came running this way,\n" + .string "I'm sure of it.\p" + .string "But I lost sight of him!\n" + .string "Where'd he go?$" + diff --git a/data/maps/CeladonCity_Condominiums_1F/map.json b/data/maps/CeladonCity_Condominiums_1F/map.json new file mode 100644 index 000000000..5665a7f51 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_1F/map.json @@ -0,0 +1,130 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "name": "CeladonCity_Condominiums_1F", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_1F", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "125", + "x": 1, + "y": 9, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_1F_EventScript_16C38E", + "flag": "0" + }, + { + "graphics_id": "113", + "x": 5, + "y": 13, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_1F_EventScript_16C3A1", + "flag": "0" + }, + { + "graphics_id": "122", + "x": 5, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_1F_EventScript_16C3B4", + "flag": "0" + }, + { + "graphics_id": "35", + "x": 2, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_1F_EventScript_16C321", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 11, + "y": 19, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 3 + }, + { + "x": 12, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 3 + }, + { + "x": 13, + "y": 19, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 3 + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "dest_warp_id": 3 + }, + { + "x": 2, + "y": 1, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 11 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 8, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_1F_EventScript_16C3C7" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_1F_EventScript_16C3C7" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_1F/scripts.inc b/data/maps/CeladonCity_Condominiums_1F/scripts.inc new file mode 100644 index 000000000..c9f358f44 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_1F/scripts.inc @@ -0,0 +1,68 @@ +CeladonCity_Condominiums_1F_MapScripts:: @ 816C320 + .byte 0 + +CeladonCity_Condominiums_1F_EventScript_16C321:: @ 816C321 + lock + faceplayer + checkflag FLAG_0x2F8 + goto_if_eq EventScript_16C36A + checkflag FLAG_0x82C + goto_if_eq EventScript_16C374 + checkflag FLAG_0x2A6 + goto_if_eq EventScript_16C36A + msgbox gUnknown_81960C9 + setflag FLAG_0x2A6 + giveitem ITEM_TEA + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A6BF9 + msgbox gUnknown_8196109 + release + end + +EventScript_16C36A:: @ 816C36A + msgbox gUnknown_8196148 + release + end + +EventScript_16C374:: @ 816C374 + setvar VAR_0x8004, 1 + setvar VAR_0x8005, 4 + special SetFlavorTextFlagFromSpecialVars + setflag FLAG_0x2F8 + msgbox gUnknown_8196188 + release + end + +CeladonCity_Condominiums_1F_EventScript_16C38E:: @ 816C38E + lock + faceplayer + waitse + playmoncry SPECIES_MEOWTH, 0 + msgbox gUnknown_81960BB + waitmoncry + release + end + +CeladonCity_Condominiums_1F_EventScript_16C3A1:: @ 816C3A1 + lock + faceplayer + waitse + playmoncry SPECIES_CLEFAIRY, 0 + msgbox gUnknown_819625B + waitmoncry + release + end + +CeladonCity_Condominiums_1F_EventScript_16C3B4:: @ 816C3B4 + lock + faceplayer + waitse + playmoncry SPECIES_NIDORAN_F, 0 + msgbox gUnknown_8196272 + waitmoncry + release + end + +CeladonCity_Condominiums_1F_EventScript_16C3C7:: @ 816C3C7 + msgbox gUnknown_8196287, 3 + end diff --git a/data/maps/CeladonCity_Condominiums_1F/text.inc b/data/maps/CeladonCity_Condominiums_1F/text.inc new file mode 100644 index 000000000..7cfb9c2a1 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_1F/text.inc @@ -0,0 +1,37 @@ +gUnknown_81960BB:: @ 81960BB + .string "MEOWTH: Meow!$" + +gUnknown_81960C9:: @ 81960C9 + .string "You shouldn't spend all your money\n" + .string "on drinks.\p" + .string "Try this instead.$" + +gUnknown_8196109:: @ 8196109 + .string "Nothing beats thirst like some hot\n" + .string "TEA.\p" + .string "It really is the best.$" + +gUnknown_8196148:: @ 8196148 + .string "My dear POKéMON keep me company.\n" + .string "MEOWTH even brings money home!$" + +gUnknown_8196188:: @ 8196188 + .string "Oh, hello, dearie.\n" + .string "Did you enjoy my TEA?\p" + .string "By the way, dear. Are you, by any\n" + .string "chance, from PALLET TOWN?\p" + .string "A girl from PALLET TOWN, DAISY,\n" + .string "she enjoys TEA every day.\p" + .string "She visits the CELADON DEPT. STORE\n" + .string "to buy some TEA.$" + +gUnknown_819625B:: @ 819625B + .string "CLEFAIRY: Pi pippippi!$" + +gUnknown_8196272:: @ 8196272 + .string "NIDORAN♀: Kya kyaoo!$" + +gUnknown_8196287:: @ 8196287 + .string "CELADON MANSION\n" + .string "Manager's Suite$" + diff --git a/data/maps/CeladonCity_Condominiums_2F/map.json b/data/maps/CeladonCity_Condominiums_2F/map.json new file mode 100644 index 000000000..1fdfd5746 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_2F/map.json @@ -0,0 +1,90 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "name": "CeladonCity_Condominiums_2F", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_2F", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "0", + "x": 6, + "y": 6, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_2F_EventScript_1ACE9D", + "flag": "158" + }, + { + "graphics_id": "0", + "x": 5, + "y": 6, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_2F_EventScript_1ACE9D", + "flag": "158" + } + ], + "warp_events": [ + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": 3 + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "dest_warp_id": 3 + }, + { + "x": 12, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 8, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_2F_EventScript_16C3D1" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_2F_EventScript_16C3D1" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_2F/scripts.inc b/data/maps/CeladonCity_Condominiums_2F/scripts.inc new file mode 100644 index 000000000..cab71a823 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_2F/scripts.inc @@ -0,0 +1,6 @@ +CeladonCity_Condominiums_2F_MapScripts:: @ 816C3D0 + .byte 0 + +CeladonCity_Condominiums_2F_EventScript_16C3D1:: @ 816C3D1 + msgbox gUnknown_81962A7, 3 + end diff --git a/data/maps/CeladonCity_Condominiums_2F/text.inc b/data/maps/CeladonCity_Condominiums_2F/text.inc new file mode 100644 index 000000000..1913e1529 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_2F/text.inc @@ -0,0 +1,3 @@ +gUnknown_81962A7:: @ 81962A7 + .string "GAME FREAK Meeting Room$" + diff --git a/data/maps/CeladonCity_Condominiums_3F/map.json b/data/maps/CeladonCity_Condominiums_3F/map.json new file mode 100644 index 000000000..0a98c9d67 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_3F/map.json @@ -0,0 +1,158 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "name": "CeladonCity_Condominiums_3F", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_3F", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "26", + "x": 0, + "y": 10, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C3DB", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 3, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C3F6", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 4, + "y": 10, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C3E4", + "flag": "0" + }, + { + "graphics_id": "27", + "x": 0, + "y": 13, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C3ED", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 8, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C435" + }, + { + "type": "bg_event_type_1", + "x": 1, + "y": 9, + "elevation": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C43E" + }, + { + "type": "bg_event_type_1", + "x": 5, + "y": 9, + "elevation": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C447" + }, + { + "type": "bg_event_type_1", + "x": 1, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C450" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C435" + }, + { + "type": "bg_event_type_1", + "x": 0, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C450" + }, + { + "type": "bg_event_type_1", + "x": 0, + "y": 9, + "elevation": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C43E" + }, + { + "type": "bg_event_type_1", + "x": 4, + "y": 9, + "elevation": 0, + "script": "CeladonCity_Condominiums_3F_EventScript_16C447" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_3F/scripts.inc b/data/maps/CeladonCity_Condominiums_3F/scripts.inc new file mode 100644 index 000000000..350bc76d0 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_3F/scripts.inc @@ -0,0 +1,56 @@ +CeladonCity_Condominiums_3F_MapScripts:: @ 816C3DA + .byte 0 + +CeladonCity_Condominiums_3F_EventScript_16C3DB:: @ 816C3DB + msgbox gUnknown_81962BF, 2 + end + +CeladonCity_Condominiums_3F_EventScript_16C3E4:: @ 816C3E4 + msgbox gUnknown_81962D7, 2 + end + +CeladonCity_Condominiums_3F_EventScript_16C3ED:: @ 816C3ED + msgbox gUnknown_81962FB, 2 + end + +CeladonCity_Condominiums_3F_EventScript_16C3F6:: @ 816C3F6 + lock + faceplayer + specialvar VAR_RESULT, sub_8088F58 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16C412 + msgbox gUnknown_8196356 + release + end + +EventScript_16C412:: @ 816C412 + goto EventScript_16C418 + end + +EventScript_16C418:: @ 816C418 + message Text_1963CD + waitmessage + delay 60 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_80CA618 + waitstate + release + end + +CeladonCity_Condominiums_3F_EventScript_16C435:: @ 816C435 + msgbox gUnknown_81964A8, 3 + end + +CeladonCity_Condominiums_3F_EventScript_16C43E:: @ 816C43E + msgbox gUnknown_819640C, 3 + end + +CeladonCity_Condominiums_3F_EventScript_16C447:: @ 816C447 + msgbox gUnknown_819644B, 3 + end + +CeladonCity_Condominiums_3F_EventScript_16C450:: @ 816C450 + msgbox gUnknown_8196478, 3 + end diff --git a/data/maps/CeladonCity_Condominiums_3F/text.inc b/data/maps/CeladonCity_Condominiums_3F/text.inc new file mode 100644 index 000000000..3f7179dfe --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_3F/text.inc @@ -0,0 +1,42 @@ +gUnknown_81962BF:: @ 81962BF + .string "Me?\n" + .string "I'm the programmer!$" + +gUnknown_81962D7:: @ 81962D7 + .string "I'm the graphic artist!\n" + .string "I drew you!$" + +gUnknown_81962FB:: @ 81962FB + .string "I wrote the story!\n" + .string "Isn't ERIKA cute?\p" + .string "I like MISTY a lot, too!\n" + .string "Oh, and SABRINA, I like her!$" + +gUnknown_8196356:: @ 8196356 + .string "Is that right?\p" + .string "I'm the game designer!\p" + .string "Filling up your POKéDEX is tough,\n" + .string "but don't quit!\p" + .string "When you finish, come tell me!$" + +Text_1963CD:: @ 81963CD + .string "Wow! Excellent!\n" + .string "You completed your POKéDEX!\l" + .string "Congratulations!\l" + .string "…$" + +gUnknown_819640C:: @ 819640C + .string "It's the game program! Messing with\n" + .string "it could bug out the game!$" + +gUnknown_819644B:: @ 819644B + .string "Someone's playing a game instead of\n" + .string "working!$" + +gUnknown_8196478:: @ 8196478 + .string "It's the script!\n" + .string "Better not look at the ending!$" + +gUnknown_81964A8:: @ 81964A8 + .string "GAME FREAK Development Room$" + diff --git a/data/maps/CeladonCity_Condominiums_Roof/map.json b/data/maps/CeladonCity_Condominiums_Roof/map.json new file mode 100644 index 000000000..cbbb754bb --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_Roof/map.json @@ -0,0 +1,56 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "name": "CeladonCity_Condominiums_Roof", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "dest_warp_id": 1 + }, + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "dest_warp_id": 2 + }, + { + "x": 2, + "y": 12, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_Roof_EventScript_16C45A" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 12, + "elevation": 0, + "script": "CeladonCity_Condominiums_Roof_EventScript_16C45A" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_Roof/scripts.inc b/data/maps/CeladonCity_Condominiums_Roof/scripts.inc new file mode 100644 index 000000000..a074d5778 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_Roof/scripts.inc @@ -0,0 +1,6 @@ +CeladonCity_Condominiums_Roof_MapScripts:: @ 816C459 + .byte 0 + +CeladonCity_Condominiums_Roof_EventScript_16C45A:: @ 816C45A + msgbox gUnknown_81964C4, 3 + end diff --git a/data/maps/CeladonCity_Condominiums_Roof/text.inc b/data/maps/CeladonCity_Condominiums_Roof/text.inc new file mode 100644 index 000000000..02398e70b --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_Roof/text.inc @@ -0,0 +1,3 @@ +gUnknown_81964C4:: @ 81964C4 + .string "I KNOW EVERYTHING!$" + diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom/map.json b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json new file mode 100644 index 000000000..aa15b14a5 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json @@ -0,0 +1,90 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", + "name": "CeladonCity_Condominiums_RoofRoom", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "54", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_16C464", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 7, + "y": 3, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_16C46D", + "flag": "87" + } + ], + "warp_events": [ + { + "x": 3, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": 2 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_16C522" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 1, + "elevation": 0, + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_16C522" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 4, + "elevation": 0, + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_16C519" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom/scripts.inc b/data/maps/CeladonCity_Condominiums_RoofRoom/scripts.inc new file mode 100644 index 000000000..8e8bb2b6b --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_RoofRoom/scripts.inc @@ -0,0 +1,109 @@ +CeladonCity_Condominiums_RoofRoom_MapScripts:: @ 816C463 + .byte 0 + +CeladonCity_Condominiums_RoofRoom_EventScript_16C464:: @ 816C464 + msgbox gUnknown_81964D7, 2 + end + +CeladonCity_Condominiums_RoofRoom_EventScript_16C46D:: @ 816C46D + lock + faceplayer + setvar VAR_0x4001, SPECIES_EEVEE + givemon SPECIES_EEVEE, 25, ITEM_NONE, 0, 0, 0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C4A6 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16C4DA + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A927C + release + end + +EventScript_16C4A6:: @ 816C4A6 + removeobject 2 + playfanfare MUS_FANFA1 + message Text_196591 + waitmessage + waitfanfare + getspeciesname 0, SPECIES_EEVEE + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C514 + call EventScript_1A8C27 + call EventScript_1A74EB + goto EventScript_16C514 + end + +EventScript_16C4DA:: @ 816C4DA + removeobject 2 + playfanfare MUS_FANFA1 + message Text_196591 + waitmessage + waitfanfare + getspeciesname 0, SPECIES_EEVEE + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C509 + call EventScript_1A8C33 + goto EventScript_16C509 + end + +EventScript_16C509:: @ 816C509 + call EventScript_1A8C3C + goto EventScript_16C514 + end + +EventScript_16C514:: @ 816C514 + setflag FLAG_0x263 + release + end + +CeladonCity_Condominiums_RoofRoom_EventScript_16C519:: @ 816C519 + msgbox gUnknown_81967E3, 3 + end + +CeladonCity_Condominiums_RoofRoom_EventScript_16C522:: @ 816C522 + lockall + msgbox gUnknown_81965C2 + message Text_1965F4 + waitmessage + setvar VAR_0x8004, 4 + multichoice 0, 0, 43, 0 + switch VAR_RESULT + case 0, EventScript_16C5C0 + case 1, EventScript_16C5CE + case 2, EventScript_16C5DC + case 3, EventScript_16C5EA + case 127, EventScript_16C5EA + end + +EventScript_16C578:: @ 816C578 + message Text_1965F4 + waitmessage + multichoice 0, 0, 43, 0 + switch VAR_RESULT + case 0, EventScript_16C5C0 + case 1, EventScript_16C5CE + case 2, EventScript_16C5DC + case 3, EventScript_16C5EA + case 127, EventScript_16C5EA + end + +EventScript_16C5C0:: @ 816C5C0 + msgbox gUnknown_8196617 + goto EventScript_16C578 + end + +EventScript_16C5CE:: @ 816C5CE + msgbox gUnknown_8196695 + goto EventScript_16C578 + end + +EventScript_16C5DC:: @ 816C5DC + msgbox gUnknown_819673C + goto EventScript_16C578 + end + +EventScript_16C5EA:: @ 816C5EA + releaseall + end diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom/text.inc b/data/maps/CeladonCity_Condominiums_RoofRoom/text.inc new file mode 100644 index 000000000..bb09c8ce3 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_RoofRoom/text.inc @@ -0,0 +1,52 @@ +gUnknown_81964D7:: @ 81964D7 + .string "There is nothing that I don't know,\n" + .string "like I wrote on the blackboard.\p" + .string "I know about the world of POKéMON\n" + .string "in your GAME BOY ADVANCE!\p" + .string "Get together with your friends and\n" + .string "enjoy trading POKéMON!$" + +Text_196591:: @ 8196591 + .string "{PLAYER} obtained an EEVEE!$" + +Text_1965A7:: @ 81965A7 + .string "ポケモンが いっぱいだ\n" + .string "ボックスを かえて きなさい$" + +gUnknown_81965C2:: @ 81965C2 + .string "POKéMON Lecture\p" + .string "Playing with the Wireless Adapter$" + +Text_1965F4:: @ 81965F4 + .string "Which heading do you want to read?$" + +gUnknown_8196617:: @ 8196617 + .string "The POKéMON WIRELESS CLUB is\n" + .string "upstairs at any POKéMON CENTER.\p" + .string "Visit one to link up with friend(s)\n" + .string "using your Wireless Adapter.$" + +gUnknown_8196695:: @ 8196695 + .string "To link only with a friend, go to\n" + .string "the DIRECT CORNER.\p" + .string "It is the right counter at the\n" + .string "POKéMON WIRELESS CLUB.\p" + .string "Go into the TRADE CORNER or the\n" + .string "COLOSSEUM with your friend.$" + +gUnknown_819673C:: @ 819673C + .string "To link and communicate with\n" + .string "anyone, go to the UNION ROOM.\p" + .string "It is the left counter at the\n" + .string "POKéMON WIRELESS CLUB.\p" + .string "Go to the UNION ROOM and enjoy\n" + .string "meeting other TRAINERS.$" + +gUnknown_81967E3:: @ 81967E3 + .string "It's a pamphlet on TMs.\p" + .string "… …\p" + .string "There are fifty TMs in all.\p" + .string "There are also seven HMs that\n" + .string "can be used repeatedly.\p" + .string "SILPH CO.$" + diff --git a/data/maps/CeladonCity_DepartmentStore_1F/map.json b/data/maps/CeladonCity_DepartmentStore_1F/map.json new file mode 100644 index 000000000..67badf749 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_1F/map.json @@ -0,0 +1,105 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", + "name": "CeladonCity_DepartmentStore_1F", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 4, + "elevator_flag": 1, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "48", + "x": 6, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_1F_EventScript_16BAD9", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 15, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 14, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 1 + }, + { + "x": 3, + "y": 15, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 1 + }, + { + "x": 9, + "y": 15, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 2 + }, + { + "x": 10, + "y": 14, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 2 + }, + { + "x": 11, + "y": 15, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 2 + }, + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 9, + "y": 11, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_1F_EventScript_16BAE2" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 1, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_1F_EventScript_16BAEB" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_1F/scripts.inc b/data/maps/CeladonCity_DepartmentStore_1F/scripts.inc new file mode 100644 index 000000000..593bf0016 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_1F/scripts.inc @@ -0,0 +1,14 @@ +CeladonCity_DepartmentStore_1F_MapScripts:: @ 816BAD8 + .byte 0 + +CeladonCity_DepartmentStore_1F_EventScript_16BAD9:: @ 816BAD9 + msgbox gUnknown_81954DD, 2 + end + +CeladonCity_DepartmentStore_1F_EventScript_16BAE2:: @ 816BAE2 + msgbox gUnknown_8195537, 3 + end + +CeladonCity_DepartmentStore_1F_EventScript_16BAEB:: @ 816BAEB + msgbox gUnknown_81955B3, 3 + end diff --git a/data/maps/CeladonCity_DepartmentStore_1F/text.inc b/data/maps/CeladonCity_DepartmentStore_1F/text.inc new file mode 100644 index 000000000..e78a8c6d2 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_1F/text.inc @@ -0,0 +1,17 @@ +gUnknown_81954DD:: @ 81954DD + .string "Hello!\n" + .string "Welcome to CELADON DEPT. STORE.\p" + .string "The board on the right describes\n" + .string "the store layout.$" + +gUnknown_8195537:: @ 8195537 + .string "1F: SERVICE COUNTER\p" + .string "2F: TRAINER'S MARKET\p" + .string "3F: TV GAME SHOP\p" + .string "4F: WISE MAN GIFTS\p" + .string "5F: DRUGSTORE\p" + .string "ROOFTOP SQUARE: VENDING MACHINES$" + +gUnknown_81955B3:: @ 81955B3 + .string "1F: SERVICE COUNTER$" + diff --git a/data/maps/CeladonCity_DepartmentStore_2F/map.json b/data/maps/CeladonCity_DepartmentStore_2F/map.json new file mode 100644 index 000000000..7363a2af5 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_2F/map.json @@ -0,0 +1,102 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", + "name": "CeladonCity_DepartmentStore_2F", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 4, + "elevator_flag": 2, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "22", + "x": 5, + "y": 10, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_2F_EventScript_16BAFE", + "flag": "0" + }, + { + "graphics_id": "68", + "x": 1, + "y": 8, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_2F_EventScript_16BB10", + "flag": "0" + }, + { + "graphics_id": "68", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_2F_EventScript_16BB4E", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_2F_EventScript_1AD053", + "flag": "157" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": 0 + }, + { + "x": 3, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", + "dest_warp_id": 7 + }, + { + "x": 9, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_2F_EventScript_16BB07" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_2F/scripts.inc b/data/maps/CeladonCity_DepartmentStore_2F/scripts.inc new file mode 100644 index 000000000..8d859502e --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_2F/scripts.inc @@ -0,0 +1,67 @@ +CeladonCity_DepartmentStore_2F_MapScripts:: @ 816BAF4 + .byte 0 + +CeladonCity_DepartmentStore_2F_EventScript_16BAF5:: @ 816BAF5 + msgbox gUnknown_81955C7, 2 + end + +CeladonCity_DepartmentStore_2F_EventScript_16BAFE:: @ 816BAFE + msgbox gUnknown_819560F, 2 + end + +CeladonCity_DepartmentStore_2F_EventScript_16BB07:: @ 816BB07 + msgbox gUnknown_8195638, 3 + end + +CeladonCity_DepartmentStore_2F_EventScript_16BB10:: @ 816BB10 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16BB38 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16BB38:: @ 816BB38 + .2byte ITEM_GREAT_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_AWAKENING + .2byte ITEM_BURN_HEAL + .2byte ITEM_ICE_HEAL + .2byte ITEM_SUPER_REPEL + .2byte ITEM_NONE + release + end + +CeladonCity_DepartmentStore_2F_EventScript_16BB4E:: @ 816BB4E + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16BB74 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16BB74:: @ 816BB74 + .2byte ITEM_TM05 + .2byte ITEM_TM15 + .2byte ITEM_TM28 + .2byte ITEM_TM31 + .2byte ITEM_TM43 + .2byte ITEM_TM45 + .2byte ITEM_NONE + release + end diff --git a/data/maps/CeladonCity_DepartmentStore_2F/text.inc b/data/maps/CeladonCity_DepartmentStore_2F/text.inc new file mode 100644 index 000000000..22bf6b36c --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_2F/text.inc @@ -0,0 +1,13 @@ +gUnknown_81955C7:: @ 81955C7 + .string "SUPER REPEL keeps weak POKéMON at\n" + .string "bay…\p" + .string "Hmm, it's a more powerful REPEL.$" + +gUnknown_819560F:: @ 819560F + .string "For long outings, you should buy\n" + .string "REVIVE.$" + +gUnknown_8195638:: @ 8195638 + .string "Top-Grade Items for TRAINERS!\p" + .string "2F: TRAINER'S MARKET$" + diff --git a/data/maps/CeladonCity_DepartmentStore_3F/map.json b/data/maps/CeladonCity_DepartmentStore_3F/map.json new file mode 100644 index 000000000..2c0cf0fbc --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_3F/map.json @@ -0,0 +1,185 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", + "name": "CeladonCity_DepartmentStore_3F", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_3F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 4, + "elevator_flag": 3, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 10, + "y": 9, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BB85", + "flag": "0" + }, + { + "graphics_id": "51", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BB8B", + "flag": "0" + }, + { + "graphics_id": "51", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BB9D", + "flag": "0" + }, + { + "graphics_id": "51", + "x": 1, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BB94", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 9, + "y": 14, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBA6", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 2, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", + "dest_warp_id": 2 + }, + { + "x": 3, + "y": 2, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 8, + "y": 1, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBDC" + }, + { + "type": "bg_event_type_1", + "x": 2, + "y": 8, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBB8" + }, + { + "type": "bg_event_type_1", + "x": 5, + "y": 8, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBC1" + }, + { + "type": "bg_event_type_1", + "x": 2, + "y": 11, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBCA" + }, + { + "type": "bg_event_type_1", + "x": 5, + "y": 11, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBD3" + }, + { + "type": "bg_event_type_0", + "x": 1, + "y": 8, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBAF" + }, + { + "type": "bg_event_type_0", + "x": 1, + "y": 11, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBAF" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 8, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBAF" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 11, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBAF" + }, + { + "type": "bg_event_type_1", + "x": 2, + "y": 4, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBE5" + }, + { + "type": "bg_event_type_1", + "x": 0, + "y": 4, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_3F_EventScript_16BBE5" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_3F/scripts.inc b/data/maps/CeladonCity_DepartmentStore_3F/scripts.inc new file mode 100644 index 000000000..0ce4515d2 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_3F/scripts.inc @@ -0,0 +1,50 @@ +CeladonCity_DepartmentStore_3F_MapScripts:: @ 816BB84 + .byte 0 + +CeladonCity_DepartmentStore_3F_EventScript_16BB85:: @ 816BB85 + goto EventScript_1C4C26 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BB8B:: @ 816BB8B + msgbox gUnknown_81956E9, 2 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BB94:: @ 816BB94 + msgbox gUnknown_8195769, 2 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BB9D:: @ 816BB9D + msgbox gUnknown_81957B0, 2 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BBA6:: @ 816BBA6 + msgbox gUnknown_8195823, 2 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BBAF:: @ 816BBAF + msgbox gUnknown_8195863, 3 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BBB8:: @ 816BBB8 + msgbox gUnknown_8195875, 3 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BBC1:: @ 816BBC1 + msgbox gUnknown_8195897, 3 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BBCA:: @ 816BBCA + msgbox gUnknown_81958B8, 3 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BBD3:: @ 816BBD3 + msgbox gUnknown_81958D8, 3 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BBDC:: @ 816BBDC + msgbox gUnknown_81958F6, 3 + end + +CeladonCity_DepartmentStore_3F_EventScript_16BBE5:: @ 816BBE5 + msgbox gUnknown_8195907, 3 + end diff --git a/data/maps/CeladonCity_DepartmentStore_3F/text.inc b/data/maps/CeladonCity_DepartmentStore_3F/text.inc new file mode 100644 index 000000000..7d4db12cc --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_3F/text.inc @@ -0,0 +1,56 @@ +Text_19566B:: @ 819566B + .string "We have a customer, LANCE, who\n" + .string "occasionally comes.\p" + .string "He always buys capes.\p" + .string "I wonder… Does he have many\n" + .string "identical capes at home?$" + +gUnknown_81956E9:: @ 81956E9 + .string "Captured POKéMON are registered\n" + .string "with an ID No. and the OT.\p" + .string "OT stands for “Original TRAINER” -\n" + .string "the TRAINER that caught it first.$" + +gUnknown_8195769:: @ 8195769 + .string "All right!\p" + .string "My buddy's going to trade me his\n" + .string "KANGASKHAN for my HAUNTER!$" + +gUnknown_81957B0:: @ 81957B0 + .string "Come on, HAUNTER!\p" + .string "I love HAUNTER!\n" + .string "I collect them!\p" + .string "Huh?\p" + .string "HAUNTER turned into a different\n" + .string "POKéMON while being traded!$" + +gUnknown_8195823:: @ 8195823 + .string "You can identify POKéMON you get\n" + .string "in trades by their ID Numbers.$" + +gUnknown_8195863:: @ 8195863 + .string "It's a Super NES.$" + +gUnknown_8195875:: @ 8195875 + .string "An RPG!\n" + .string "There's no time for that!$" + +gUnknown_8195897:: @ 8195897 + .string "A sports game!\n" + .string "Dad'll like that!$" + +gUnknown_81958B8:: @ 81958B8 + .string "A puzzle game!\n" + .string "Looks addictive!$" + +gUnknown_81958D8:: @ 81958D8 + .string "A fighting game!\n" + .string "Looks tough!$" + +gUnknown_81958F6:: @ 81958F6 + .string "3F: TV GAME SHOP$" + +gUnknown_8195907:: @ 8195907 + .string "Red and Green!\n" + .string "Both are POKéMON!$" + diff --git a/data/maps/CeladonCity_DepartmentStore_4F/map.json b/data/maps/CeladonCity_DepartmentStore_4F/map.json new file mode 100644 index 000000000..37c0841f7 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_4F/map.json @@ -0,0 +1,89 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", + "name": "CeladonCity_DepartmentStore_4F", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_4F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 4, + "elevator_flag": 4, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "25", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_4F_EventScript_16BBEF", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 10, + "y": 11, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_4F_EventScript_16BBF8", + "flag": "0" + }, + { + "graphics_id": "68", + "x": 3, + "y": 13, + "elevation": 0, + "movement_type": "7", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_4F_EventScript_16BC0A", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": 0 + }, + { + "x": 3, + "y": 2, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", + "dest_warp_id": 2 + }, + { + "x": 9, + "y": 2, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_4F_EventScript_16BC01" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_4F/scripts.inc b/data/maps/CeladonCity_DepartmentStore_4F/scripts.inc new file mode 100644 index 000000000..2aad6e02b --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_4F/scripts.inc @@ -0,0 +1,39 @@ +CeladonCity_DepartmentStore_4F_MapScripts:: @ 816BBEE + .byte 0 + +CeladonCity_DepartmentStore_4F_EventScript_16BBEF:: @ 816BBEF + msgbox gUnknown_8195A68, 2 + end + +CeladonCity_DepartmentStore_4F_EventScript_16BBF8:: @ 816BBF8 + msgbox gUnknown_8195AC9, 2 + end + +CeladonCity_DepartmentStore_4F_EventScript_16BC01:: @ 816BC01 + msgbox gUnknown_8195B5B, 3 + end + +CeladonCity_DepartmentStore_4F_EventScript_16BC0A:: @ 816BC0A + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16BC30 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16BC30:: @ 816BC30 + .2byte ITEM_POKE_DOLL + .2byte ITEM_RETRO_MAIL + .2byte ITEM_FIRE_STONE + .2byte ITEM_THUNDER_STONE + .2byte ITEM_WATER_STONE + .2byte ITEM_LEAF_STONE + .2byte ITEM_NONE + release + end diff --git a/data/maps/CeladonCity_DepartmentStore_4F/text.inc b/data/maps/CeladonCity_DepartmentStore_4F/text.inc new file mode 100644 index 000000000..efe6c5835 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_4F/text.inc @@ -0,0 +1,41 @@ +Text_195928:: @ 8195928 + .string "Oh, hi!\n" + .string "I finally finished POKéMON.\p" + .string "Not done yet? How about I teach\n" + .string "you a good move?\p" + .string "The move I have in mind is\n" + .string "COUNTER.\p" + .string "Not like the one I'm leaning on,\n" + .string "mind you!$" + +Text_1959CC:: @ 81959CC + .string "You're not interested? Come see\n" + .string "me if you change your mind.$" + +Text_195A08:: @ 8195A08 + .string "Which POKéMON should I teach\n" + .string "COUNTER to?$" + +Text_195A31:: @ 8195A31 + .string "Are you using that COUNTER move\n" + .string "I taught your POKéMON?$" + +gUnknown_8195A68:: @ 8195A68 + .string "I'm getting a present for my\n" + .string "girlfriend.\p" + .string "I guess a POKé DOLL will be it.\n" + .string "It's the popular thing.$" + +gUnknown_8195AC9:: @ 8195AC9 + .string "I heard something useful.\p" + .string "If a wild POKéMON appears, you can\n" + .string "distract it with a POKé DOLL.\p" + .string "You can run away while the wild\n" + .string "POKéMON is distracted.$" + +gUnknown_8195B5B:: @ 8195B5B + .string "Express yourself with gifts!\n" + .string "4F: WISE MAN GIFTS\p" + .string "Evolution Special!\n" + .string "Element STONES on sale now!$" + diff --git a/data/maps/CeladonCity_DepartmentStore_5F/map.json b/data/maps/CeladonCity_DepartmentStore_5F/map.json new file mode 100644 index 000000000..691d9ff7c --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_5F/map.json @@ -0,0 +1,102 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", + "name": "CeladonCity_DepartmentStore_5F", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_5F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 4, + "elevator_flag": 5, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_5F_EventScript_16BC41", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_5F_EventScript_16BC4A", + "flag": "0" + }, + { + "graphics_id": "68", + "x": 1, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_5F_EventScript_16BC5C", + "flag": "0" + }, + { + "graphics_id": "68", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_5F_EventScript_16BC96", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", + "dest_warp_id": 2 + }, + { + "x": 3, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 8, + "y": 1, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_5F_EventScript_16BC53" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_5F/scripts.inc b/data/maps/CeladonCity_DepartmentStore_5F/scripts.inc new file mode 100644 index 000000000..05aff00cd --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_5F/scripts.inc @@ -0,0 +1,65 @@ +CeladonCity_DepartmentStore_5F_MapScripts:: @ 816BC40 + .byte 0 + +CeladonCity_DepartmentStore_5F_EventScript_16BC41:: @ 816BC41 + msgbox gUnknown_8195BBA, 2 + end + +CeladonCity_DepartmentStore_5F_EventScript_16BC4A:: @ 816BC4A + msgbox gUnknown_8195CA0, 2 + end + +CeladonCity_DepartmentStore_5F_EventScript_16BC53:: @ 816BC53 + msgbox gUnknown_8195D14, 3 + end + +CeladonCity_DepartmentStore_5F_EventScript_16BC5C:: @ 816BC5C + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16BC84 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16BC84:: @ 816BC84 + .2byte ITEM_X_ATTACK + .2byte ITEM_X_DEFEND + .2byte ITEM_X_SPEED + .2byte ITEM_X_SPECIAL + .2byte ITEM_X_ACCURACY + .2byte ITEM_GUARD_SPEC + .2byte ITEM_DIRE_HIT + .2byte ITEM_NONE + release + end + +CeladonCity_DepartmentStore_5F_EventScript_16BC96:: @ 816BC96 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16BCBC + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16BCBC:: @ 816BCBC + .2byte ITEM_HP_UP + .2byte ITEM_PROTEIN + .2byte ITEM_IRON + .2byte ITEM_CALCIUM + .2byte ITEM_ZINC + .2byte ITEM_CARBOS + .2byte ITEM_NONE + release + end diff --git a/data/maps/CeladonCity_DepartmentStore_5F/text.inc b/data/maps/CeladonCity_DepartmentStore_5F/text.inc new file mode 100644 index 000000000..b8cee5afa --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_5F/text.inc @@ -0,0 +1,23 @@ +gUnknown_8195BBA:: @ 8195BBA + .string "POKéMON stat enhancers can be\n" + .string "bought only here.\p" + .string "HP UP increases the base HP of a\n" + .string "POKéMON.\p" + .string "CALCIUM raises the base SP. ATK\n" + .string "stat of one POKéMON.\p" + .string "ZINC boosts the base SP. DEF stat\n" + .string "of one POKéMON.\p" + .string "CARBOS enhances the base SPEED\n" + .string "stat.$" + +gUnknown_8195CA0:: @ 8195CA0 + .string "I'm here for POKéMON stat\n" + .string "enhancers.\p" + .string "PROTEIN increases the base ATTACK\n" + .string "power.\p" + .string "IRON increases the base DEFENSE\n" + .string "stat.$" + +gUnknown_8195D14:: @ 8195D14 + .string "5F: DRUGSTORE$" + diff --git a/data/maps/CeladonCity_DepartmentStore_Elevator/map.json b/data/maps/CeladonCity_DepartmentStore_Elevator/map.json new file mode 100644 index 000000000..7a2c88c84 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_Elevator/map.json @@ -0,0 +1,49 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "name": "CeladonCity_DepartmentStore_Elevator", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 2, + "y": 6, + "elevation": 0, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 0, + "y": 2, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_Elevator_EventScript_16C153" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_Elevator_EventScript_16C153" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc b/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc new file mode 100644 index 000000000..6f104041e --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc @@ -0,0 +1,123 @@ +CeladonCity_DepartmentStore_Elevator_MapScripts:: @ 816C152 + .byte 0 + +CeladonCity_DepartmentStore_Elevator_EventScript_16C153:: @ 816C153 + lockall + setvar VAR_0x8004, 3 + checkflag FLAG_0x002 + call_if 0, EventScript_1A7AB9 + copyvar VAR_0x8005, VAR_0x403A + special sub_80CB580 + message Text_1A535C + waitmessage + setvar VAR_0x8004, 3 + specialvar VAR_RESULT, sub_80CB328 + switch VAR_RESULT + case 0, EventScript_16C1B7 + case 1, EventScript_16C1C3 + case 2, EventScript_16C1CF + case 3, EventScript_16C1DB + case 4, EventScript_16C1E7 + end + +EventScript_16C1B7:: @ 816C1B7 + multichoicedefault 0, 0, 31, 0, 0 + goto EventScript_16C1F3 + +EventScript_16C1C2:: @ 816C1C2 + end + +EventScript_16C1C3:: @ 816C1C3 + multichoicedefault 0, 0, 31, 1, 0 + goto EventScript_16C1F3 + end + +EventScript_16C1CF:: @ 816C1CF + multichoicedefault 0, 0, 31, 2, 0 + goto EventScript_16C1F3 + end + +EventScript_16C1DB:: @ 816C1DB + multichoicedefault 0, 0, 31, 3, 0 + goto EventScript_16C1F3 + end + +EventScript_16C1E7:: @ 816C1E7 + multichoicedefault 0, 0, 31, 4, 0 + goto EventScript_16C1F3 + end + +EventScript_16C1F3:: @ 816C1F3 + switch VAR_RESULT + case 0, EventScript_16C2E6 + case 1, EventScript_16C2BE + case 2, EventScript_16C296 + case 3, EventScript_16C26E + case 4, EventScript_16C246 + case 5, EventScript_16C30E + case 127, EventScript_16C30E + end + +EventScript_16C246:: @ 816C246 + setvar VAR_0x8006, 4 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_1F, 255, 6, 1 + compare_var_to_value VAR_0x403A, 4 + goto_if_eq EventScript_16C30E + call EventScript_16C313 + setvar VAR_0x403A, 4 + goto EventScript_16C30E + end + +EventScript_16C26E:: @ 816C26E + setvar VAR_0x8006, 5 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_2F, 255, 6, 1 + compare_var_to_value VAR_0x403A, 5 + goto_if_eq EventScript_16C30E + call EventScript_16C313 + setvar VAR_0x403A, 5 + goto EventScript_16C30E + end + +EventScript_16C296:: @ 816C296 + setvar VAR_0x8006, 6 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_3F, 255, 6, 1 + compare_var_to_value VAR_0x403A, 6 + goto_if_eq EventScript_16C30E + call EventScript_16C313 + setvar VAR_0x403A, 6 + goto EventScript_16C30E + end + +EventScript_16C2BE:: @ 816C2BE + setvar VAR_0x8006, 7 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_4F, 255, 6, 1 + compare_var_to_value VAR_0x403A, 7 + goto_if_eq EventScript_16C30E + call EventScript_16C313 + setvar VAR_0x403A, 7 + goto EventScript_16C30E + end + +EventScript_16C2E6:: @ 816C2E6 + setvar VAR_0x8006, 8 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_5F, 255, 6, 1 + compare_var_to_value VAR_0x403A, 8 + goto_if_eq EventScript_16C30E + call EventScript_16C313 + setvar VAR_0x403A, 8 + goto EventScript_16C30E + end + +EventScript_16C30E:: @ 816C30E + special sub_80CB63C + releaseall + end + +EventScript_16C313:: @ 816C313 + special sub_80CB63C + closemessage + waitse + special sub_80CB498 + waitstate + setflag FLAG_0x002 + return diff --git a/data/maps/CeladonCity_DepartmentStore_Roof/map.json b/data/maps/CeladonCity_DepartmentStore_Roof/map.json new file mode 100644 index 000000000..470ea3dd1 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_Roof/map.json @@ -0,0 +1,83 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF", + "name": "CeladonCity_DepartmentStore_Roof", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ROOF", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 4, + "elevator_flag": 127, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "41", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_Roof_EventScript_16C022", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_DepartmentStore_Roof_EventScript_16BCCD", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 14, + "y": 3, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_Roof_EventScript_16C02B" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 3, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_Roof_EventScript_16C034" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 3, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_Roof_EventScript_16C034" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 3, + "elevation": 0, + "script": "CeladonCity_DepartmentStore_Roof_EventScript_16C034" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc b/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc new file mode 100644 index 000000000..1c7ee50df --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc @@ -0,0 +1,304 @@ +CeladonCity_DepartmentStore_Roof_MapScripts:: @ 816BCCC + .byte 0 + +CeladonCity_DepartmentStore_Roof_EventScript_16BCCD:: @ 816BCCD + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + call EventScript_16BCF6 + compare_var_to_value VAR_0x4001, 0 + goto_if_eq EventScript_16C00E + goto EventScript_16BD3E + end + +EventScript_16BCF6:: @ 816BCF6 + setvar VAR_0x4001, 0 + checkitem ITEM_FRESH_WATER, 1 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_16BD2C + checkitem ITEM_SODA_POP, 1 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_16BD32 + checkitem ITEM_LEMONADE, 1 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_16BD38 + return + +EventScript_16BD2C:: @ 816BD2C + addvar VAR_0x4001, 1 + return + +EventScript_16BD32:: @ 816BD32 + addvar VAR_0x4001, 2 + return + +EventScript_16BD38:: @ 816BD38 + addvar VAR_0x4001, 4 + return + +EventScript_16BD3E:: @ 816BD3E + msgbox gUnknown_8195D22, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C00C + textcolor 3 + message Text_195D5F + waitmessage + textcolor 1 + switch VAR_0x4001 + case 1, EventScript_16BDAE + case 2, EventScript_16BDDA + case 3, EventScript_16BE06 + case 4, EventScript_16BE3D + case 5, EventScript_16BE69 + case 6, EventScript_16BEA0 + case 7, EventScript_16BED7 + end + +EventScript_16BDAE:: @ 816BDAE + multichoice 0, 0, 32, 0 + switch VAR_RESULT + case 0, EventScript_16BF19 + case 1, EventScript_16C00C + case 127, EventScript_16C00C + end + +EventScript_16BDDA:: @ 816BDDA + multichoice 0, 0, 33, 0 + switch VAR_RESULT + case 0, EventScript_16BF3A + case 1, EventScript_16C00C + case 127, EventScript_16C00C + end + +EventScript_16BE06:: @ 816BE06 + multichoice 0, 0, 34, 0 + switch VAR_RESULT + case 0, EventScript_16BF19 + case 1, EventScript_16BF3A + case 2, EventScript_16C00C + case 127, EventScript_16C00C + end + +EventScript_16BE3D:: @ 816BE3D + multichoice 0, 0, 35, 0 + switch VAR_RESULT + case 0, EventScript_16BF5B + case 1, EventScript_16C00C + case 127, EventScript_16C00C + end + +EventScript_16BE69:: @ 816BE69 + multichoice 0, 0, 36, 0 + switch VAR_RESULT + case 0, EventScript_16BF19 + case 1, EventScript_16BF5B + case 2, EventScript_16C00C + case 127, EventScript_16C00C + end + +EventScript_16BEA0:: @ 816BEA0 + multichoice 0, 0, 37, 0 + switch VAR_RESULT + case 0, EventScript_16BF3A + case 1, EventScript_16BF5B + case 2, EventScript_16C00C + case 127, EventScript_16C00C + end + +EventScript_16BED7:: @ 816BED7 + multichoice 0, 0, 38, 0 + switch VAR_RESULT + case 0, EventScript_16BF19 + case 1, EventScript_16BF3A + case 2, EventScript_16BF5B + case 3, EventScript_16C00C + case 127, EventScript_16C00C + end + +EventScript_16BF19:: @ 816BF19 + setvar VAR_0x8008, ITEM_FRESH_WATER + setvar VAR_0x8009, ITEM_TM16 + checkflag FLAG_0x296 + goto_if_eq EventScript_16C018 + msgbox gUnknown_8195D75 + goto EventScript_16BF7C + end + +EventScript_16BF3A:: @ 816BF3A + setvar VAR_0x8008, ITEM_SODA_POP + setvar VAR_0x8009, ITEM_TM20 + checkflag FLAG_0x295 + goto_if_eq EventScript_16C018 + msgbox gUnknown_8195E33 + goto EventScript_16BF7C + end + +EventScript_16BF5B:: @ 816BF5B + setvar VAR_0x8008, ITEM_LEMONADE + setvar VAR_0x8009, ITEM_TM33 + checkflag FLAG_0x294 + goto_if_eq EventScript_16C018 + msgbox gUnknown_8195EBF + goto EventScript_16BF7C + end + +EventScript_16BF7C:: @ 816BF7C + getitemname 0, VAR_0x8008 + getitemname 1, VAR_0x8009 + removeitem VAR_0x8008, 1 + checkitemspace VAR_0x8009, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C002 + additem VAR_0x8009, 1 + textcolor 3 + playfanfare MUS_FANFA1 + message Text_195DAD + waitmessage + waitfanfare + giveitem VAR_0x8009, 1, 8 + call EventScript_1A6675 + compare_var_to_value VAR_0x8008, ITEM_FRESH_WATER + call_if 1, EventScript_16BFDE + compare_var_to_value VAR_0x8008, ITEM_SODA_POP + call_if 1, EventScript_16BFEA + compare_var_to_value VAR_0x8008, ITEM_LEMONADE + call_if 1, EventScript_16BFF6 + release + end + +EventScript_16BFDE:: @ 816BFDE + setflag FLAG_0x296 + msgbox gUnknown_8195DD4 + return + +EventScript_16BFEA:: @ 816BFEA + setflag FLAG_0x295 + msgbox gUnknown_8195E68 + return + +EventScript_16BFF6:: @ 816BFF6 + setflag FLAG_0x294 + msgbox gUnknown_8195EF4 + return + +EventScript_16C002:: @ 816C002 + msgbox gUnknown_8195F4F + release + end + +EventScript_16C00C:: @ 816C00C + release + end + +EventScript_16C00E:: @ 816C00E + msgbox gUnknown_8195FEF + release + end + +EventScript_16C018:: @ 816C018 + msgbox gUnknown_8195F6E + release + end + +CeladonCity_DepartmentStore_Roof_EventScript_16C022:: @ 816C022 + msgbox gUnknown_8195F98, 2 + end + +CeladonCity_DepartmentStore_Roof_EventScript_16C02B:: @ 816C02B + msgbox gUnknown_8196017, 3 + end + +CeladonCity_DepartmentStore_Roof_EventScript_16C034:: @ 816C034 + lockall + message Text_196038 + waitmessage + showmoneybox 0, 0, 0 + goto EventScript_16C045 + end + +EventScript_16C045:: @ 816C045 + multichoice 12, 0, 26, 0 + copyvar VAR_0x4001, VAR_RESULT + switch VAR_0x4001 + case 0, EventScript_16C083 + case 1, EventScript_16C094 + case 2, EventScript_16C0A5 + msgbox gUnknown_81960AE + goto EventScript_16C14D + end + +EventScript_16C083:: @ 816C083 + setvar VAR_0x4000, ITEM_FRESH_WATER + checkmoney 200, 0 + goto EventScript_16C0CB + end + +EventScript_16C094:: @ 816C094 + setvar VAR_0x4000, ITEM_SODA_POP + checkmoney 300, 0 + goto EventScript_16C0CB + end + +EventScript_16C0A5:: @ 816C0A5 + setvar VAR_0x4000, ITEM_LEMONADE + checkmoney 350, 0 + goto EventScript_16C0CB + end + +EventScript_16C0B6:: @ 816C0B6 + takemoney 200, 0 + return + +EventScript_16C0BD:: @ 816C0BD + takemoney 300, 0 + return + +EventScript_16C0C4:: @ 816C0C4 + takemoney 350, 0 + return + +EventScript_16C0CB:: @ 816C0CB + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C131 + checkitemspace VAR_0x4000, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C13F + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16C0B6 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16C0BD + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_16C0C4 + updatemoneybox 0, 0, 0 + getitemname 0, VAR_0x4000 + playse SE_C_PASI + msgbox gUnknown_8196076 + additem VAR_0x4000, 1 + goto EventScript_16C125 + end + +EventScript_16C125:: @ 816C125 + message Text_196038 + waitmessage + goto EventScript_16C045 + end + +EventScript_16C131:: @ 816C131 + msgbox gUnknown_819605E + goto EventScript_16C14D + end + +EventScript_16C13F:: @ 816C13F + msgbox gUnknown_819608E + goto EventScript_16C14D + end + +EventScript_16C14D:: @ 816C14D + hidemoneybox + .byte 0 + .byte 0 + releaseall + end diff --git a/data/maps/CeladonCity_DepartmentStore_Roof/text.inc b/data/maps/CeladonCity_DepartmentStore_Roof/text.inc new file mode 100644 index 000000000..a03cfedaf --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_Roof/text.inc @@ -0,0 +1,82 @@ +gUnknown_8195D22:: @ 8195D22 + .string "I'm thirsty!\n" + .string "I want something to drink!\p" + .string "{SIZE}ÁGive her a drink?$" + +Text_195D5F:: @ 8195D5F + .string "Give her which drink?$" + +gUnknown_8195D75:: @ 8195D75 + .string "Yay!\p" + .string "FRESH WATER!\p" + .string "Thank you!\n" + .string "You can have this from me!$" + +Text_195DAD:: @ 8195DAD + .string "{PLAYER} received a {STR_VAR_2}\n" + .string "from the little girl.$" + +gUnknown_8195DD4:: @ 8195DD4 + .string "TM16 contains LIGHT SCREEN.\p" + .string "It's a move that weakens the power\n" + .string "of special attacks by your foe.$" + +gUnknown_8195E33:: @ 8195E33 + .string "Yay!\p" + .string "SODA POP!\p" + .string "Thank you!\n" + .string "You can have this from me!$" + +gUnknown_8195E68:: @ 8195E68 + .string "TM20 contains SAFEGUARD.\p" + .string "It's a move that prevents status\n" + .string "problems among your POKéMON.$" + +gUnknown_8195EBF:: @ 8195EBF + .string "Yay!\p" + .string "LEMONADE!\p" + .string "Thank you!\n" + .string "You can have this from me!$" + +gUnknown_8195EF4:: @ 8195EF4 + .string "TM33 contains REFLECT.\p" + .string "It's a move that weakens the power\n" + .string "of physical attacks by your foe.$" + +gUnknown_8195F4F:: @ 8195F4F + .string "You don't have space for this!$" + +gUnknown_8195F6E:: @ 8195F6E + .string "No, thank you!\n" + .string "I'm not thirsty after all!$" + +gUnknown_8195F98:: @ 8195F98 + .string "My sister is a TRAINER, believe it\n" + .string "or not.\p" + .string "But, she's so immature, she drives\n" + .string "me nuts!$" + +gUnknown_8195FEF:: @ 8195FEF + .string "I'm thirsty!\n" + .string "I want something to drink!$" + +gUnknown_8196017:: @ 8196017 + .string "ROOFTOP SQUARE:\n" + .string "VENDING MACHINES$" + +Text_196038:: @ 8196038 + .string "A vending machine!\n" + .string "What does it have?$" + +gUnknown_819605E:: @ 819605E + .string "Oops, not enough money!$" + +gUnknown_8196076:: @ 8196076 + .string "A can of {STR_VAR_1} popped out!$" + +gUnknown_819608E:: @ 819608E + .string "There's no more room for stuff!$" + +gUnknown_81960AE:: @ 81960AE + .string "Not thirsty!$" + diff --git a/data/maps/CeladonCity_GameCorner/map.json b/data/maps/CeladonCity_GameCorner/map.json new file mode 100644 index 000000000..a3b1df6f4 --- /dev/null +++ b/data/maps/CeladonCity_GameCorner/map.json @@ -0,0 +1,469 @@ +{ + "id": "MAP_CELADON_CITY_GAME_CORNER", + "name": "CeladonCity_GameCorner", + "layout": "LAYOUT_CELADON_CITY_GAME_CORNER", + "music": "BGM_FRLG_GAMECORNER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "48", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C684", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C68D", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C7BA", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C7D7", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C7E7", + "flag": "0" + }, + { + "graphics_id": "91", + "x": 7, + "y": 10, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C857", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 7, + "y": 8, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C87E", + "flag": "0" + }, + { + "graphics_id": "33", + "x": 10, + "y": 9, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C88E", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 13, + "y": 7, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C89E", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 16, + "y": 10, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16C8FE", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 11, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_EventScript_16CAF5", + "flag": "91" + } + ], + "warp_events": [ + { + "x": 9, + "y": 13, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 13, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 13, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 0 + }, + { + "x": 15, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B1F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 2, + "y": 4, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "51", + "unknown": 10 + }, + { + "type": "hidden_item", + "x": 3, + "y": 8, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "52", + "unknown": 10 + }, + { + "type": "hidden_item", + "x": 2, + "y": 11, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "53", + "unknown": 20 + }, + { + "type": "hidden_item", + "x": 6, + "y": 12, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "54", + "unknown": 10 + }, + { + "type": "hidden_item", + "x": 9, + "y": 9, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "55", + "unknown": 10 + }, + { + "type": "hidden_item", + "x": 8, + "y": 5, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "56", + "unknown": 20 + }, + { + "type": "hidden_item", + "x": 10, + "y": 4, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "57", + "unknown": 10 + }, + { + "type": "hidden_item", + "x": 13, + "y": 3, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "58", + "unknown": 10 + }, + { + "type": "hidden_item", + "x": 15, + "y": 5, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "59", + "unknown": 10 + }, + { + "type": "hidden_item", + "x": 17, + "y": 5, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "60", + "unknown": 40 + }, + { + "type": "hidden_item", + "x": 15, + "y": 13, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "61", + "unknown": 100 + }, + { + "type": "hidden_item", + "x": 12, + "y": 12, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "62", + "unknown": 10 + }, + { + "type": "bg_event_type_4", + "x": 0, + "y": 7, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16C95E" + }, + { + "type": "bg_event_type_4", + "x": 0, + "y": 9, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16C9A4" + }, + { + "type": "bg_event_type_4", + "x": 0, + "y": 10, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16C9B0" + }, + { + "type": "bg_event_type_3", + "x": 5, + "y": 6, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16C9BC" + }, + { + "type": "bg_event_type_3", + "x": 5, + "y": 8, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CB5A" + }, + { + "type": "bg_event_type_3", + "x": 5, + "y": 9, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16C9D4" + }, + { + "type": "bg_event_type_3", + "x": 5, + "y": 10, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16C9E0" + }, + { + "type": "bg_event_type_4", + "x": 6, + "y": 6, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16C9EC" + }, + { + "type": "bg_event_type_4", + "x": 6, + "y": 7, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16C9F8" + }, + { + "type": "bg_event_type_4", + "x": 6, + "y": 9, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA04" + }, + { + "type": "bg_event_type_3", + "x": 11, + "y": 6, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA10" + }, + { + "type": "bg_event_type_3", + "x": 11, + "y": 7, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA1C" + }, + { + "type": "bg_event_type_3", + "x": 11, + "y": 8, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA28" + }, + { + "type": "bg_event_type_3", + "x": 11, + "y": 10, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA34" + }, + { + "type": "bg_event_type_4", + "x": 12, + "y": 6, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA40" + }, + { + "type": "bg_event_type_4", + "x": 12, + "y": 8, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CB63" + }, + { + "type": "bg_event_type_4", + "x": 12, + "y": 9, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA58" + }, + { + "type": "bg_event_type_4", + "x": 12, + "y": 10, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA64" + }, + { + "type": "bg_event_type_3", + "x": 17, + "y": 6, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CB6C" + }, + { + "type": "bg_event_type_3", + "x": 17, + "y": 7, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA7C" + }, + { + "type": "bg_event_type_3", + "x": 17, + "y": 8, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA88" + }, + { + "type": "bg_event_type_3", + "x": 17, + "y": 9, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CA94" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 1, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_16CAAA" + }, + { + "type": "bg_event_type_3", + "x": 17, + "y": 13, + "elevation": 0, + "script": "CeladonCity_GameCorner_EventScript_1B2867" + } + ] +} diff --git a/data/maps/CeladonCity_GameCorner/scripts.inc b/data/maps/CeladonCity_GameCorner/scripts.inc new file mode 100644 index 000000000..dca647299 --- /dev/null +++ b/data/maps/CeladonCity_GameCorner/scripts.inc @@ -0,0 +1,487 @@ +CeladonCity_GameCorner_MapScripts:: @ 816C646 + map_script 1, CeladonCity_GameCorner_MapScript1_16C64C + .byte 0 + +CeladonCity_GameCorner_MapScript1_16C64C:: @ 816C64C + checkflag FLAG_0x26D + call_if 0, EventScript_16C656 + end + +EventScript_16C656:: @ 816C656 + setmetatile 15, 2, 658, 0 + setmetatile 16, 2, 658, 0 + setmetatile 17, 2, 658, 0 + setmetatile 16, 3, 719, 1 + setmetatile 17, 3, 719, 1 + return + +CeladonCity_GameCorner_EventScript_16C684:: @ 816C684 + msgbox gUnknown_8196940, 2 + end + +CeladonCity_GameCorner_EventScript_16C68D:: @ 816C68D + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + showmoneybox 0, 0, 0 + showcoinsbox 0, 5 + message Text_196984 + waitmessage + multichoice 13, 0, 27, 0 + copyvar VAR_0x8009, VAR_RESULT + switch VAR_RESULT + case 0, EventScript_16C6E6 + case 1, EventScript_16C6E6 + case 2, EventScript_16C782 + case 127, EventScript_16C782 + end + +EventScript_16C6E6:: @ 816C6E6 + checkflag FLAG_0x243 + goto_if 0, EventScript_16C790 + compare_var_to_value VAR_0x8009, 0 + goto_if_eq EventScript_16C734 + compare_var_to_value VAR_0x8009, 1 + goto_if_eq EventScript_16C706 + end + +EventScript_16C706:: @ 816C706 + checkcoins VAR_0x4001 + compare_var_to_value VAR_0x4001, 9500 + goto_if 4, EventScript_16C79E + checkmoney 10000, 0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C7AC + givecoins 500 + takemoney 10000, 0 + goto EventScript_16C762 + end + +EventScript_16C734:: @ 816C734 + checkcoins VAR_0x4001 + compare_var_to_value VAR_0x4001, 9950 + goto_if 4, EventScript_16C79E + checkmoney 1000, 0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C7AC + givecoins 50 + takemoney 1000, 0 + goto EventScript_16C762 + end + +EventScript_16C762:: @ 816C762 + updatemoneybox 0, 0, 0 + updatecoinsbox 0, 5 + playse SE_CASHIER + msgbox gUnknown_8196A62 + goto EventScript_16C77A + end + +EventScript_16C77A:: @ 816C77A + hidemoneybox + .byte 0 + .byte 0 + hidecoinsbox 0, 5 + release + end + +EventScript_16C782:: @ 816C782 + msgbox gUnknown_81969DC + goto EventScript_16C77A + end + +EventScript_16C790:: @ 816C790 + msgbox gUnknown_81969FB + goto EventScript_16C77A + end + +EventScript_16C79E:: @ 816C79E + msgbox gUnknown_8196A26 + goto EventScript_16C77A + end + +EventScript_16C7AC:: @ 816C7AC + msgbox gUnknown_8196A46 + goto EventScript_16C77A + end + +CeladonCity_GameCorner_EventScript_16C7BA:: @ 816C7BA + lock + faceplayer + msgbox gUnknown_8196A82 + goto EventScript_16C7CA + end + +EventScript_16C7CA:: @ 816C7CA + closemessage + applymovement VAR_LAST_TALKED, Movement_1A75E5 + waitmovement 0 + release + end + +CeladonCity_GameCorner_EventScript_16C7D7:: @ 816C7D7 + lock + faceplayer + msgbox gUnknown_8196AC7 + goto EventScript_16C7CA + end + +CeladonCity_GameCorner_EventScript_16C7E7:: @ 816C7E7 + lock + faceplayer + checkflag FLAG_0x26E + goto_if_eq EventScript_16C849 + msgbox gUnknown_8196AF3 + checkflag FLAG_0x243 + goto_if 0, EventScript_16C839 + checkcoins VAR_0x4001 + compare_var_to_value VAR_0x4001, 9990 + goto_if 4, EventScript_16C82B + givecoins 10 + textcolor 3 + msgbox gUnknown_8196B0D + playse SE_CASHIER + waitse + setflag FLAG_0x26E + goto EventScript_16C7CA + end + +EventScript_16C82B:: @ 816C82B + msgbox gUnknown_8196B30 + goto EventScript_16C7CA + end + +EventScript_16C839:: @ 816C839 + textcolor 3 + msgbox gUnknown_8196F26 + goto EventScript_16C7CA + end + +EventScript_16C849:: @ 816C849 + msgbox gUnknown_8196B49 + goto EventScript_16C7CA + end + +CeladonCity_GameCorner_EventScript_16C857:: @ 816C857 + lock + faceplayer + checkflag FLAG_0x4B3 + goto_if_eq EventScript_16C870 + msgbox gUnknown_8196BAD + goto EventScript_16C7CA + end + +EventScript_16C870:: @ 816C870 + msgbox gUnknown_8196CA1 + goto EventScript_16C7CA + end + +CeladonCity_GameCorner_EventScript_16C87E:: @ 816C87E + lock + faceplayer + msgbox gUnknown_8196B7B + goto EventScript_16C7CA + end + +CeladonCity_GameCorner_EventScript_16C88E:: @ 816C88E + lock + faceplayer + msgbox gUnknown_8196CFE + goto EventScript_16C7CA + end + +CeladonCity_GameCorner_EventScript_16C89E:: @ 816C89E + lock + faceplayer + checkflag FLAG_0x26F + goto_if_eq EventScript_16C8F0 + msgbox gUnknown_8196D2B + checkflag FLAG_0x243 + goto_if 0, EventScript_16C839 + checkcoins VAR_0x4001 + compare_var_to_value VAR_0x4001, 9980 + goto_if 4, EventScript_16C8E2 + givecoins 20 + textcolor 3 + msgbox gUnknown_8196D47 + playse SE_CASHIER + waitse + setflag FLAG_0x26F + goto EventScript_16C7CA + end + +EventScript_16C8E2:: @ 816C8E2 + msgbox gUnknown_8196D6F + goto EventScript_16C7CA + end + +EventScript_16C8F0:: @ 816C8F0 + msgbox gUnknown_8196D87 + goto EventScript_16C7CA + end + +CeladonCity_GameCorner_EventScript_16C8FE:: @ 816C8FE + lock + faceplayer + checkflag FLAG_0x270 + goto_if_eq EventScript_16C950 + msgbox gUnknown_8196DB7 + checkflag FLAG_0x243 + goto_if 0, EventScript_16C839 + checkcoins VAR_0x4001 + compare_var_to_value VAR_0x4001, 9980 + goto_if 4, EventScript_16C942 + givecoins 20 + textcolor 3 + msgbox gUnknown_8196DF8 + playse SE_CASHIER + waitse + setflag FLAG_0x270 + goto EventScript_16C7CA + end + +EventScript_16C942:: @ 816C942 + msgbox gUnknown_8196E1B + goto EventScript_16C7CA + end + +EventScript_16C950:: @ 816C950 + msgbox gUnknown_8196E40 + goto EventScript_16C7CA + end + +CeladonCity_GameCorner_EventScript_16C95E:: @ 816C95E + lockall + setvar VAR_0x8004, 0 + goto EventScript_16C96C + end + +EventScript_16C96A:: @ 816C96A + releaseall + end + +EventScript_16C96C:: @ 816C96C + checkflag FLAG_0x243 + goto_if 0, EventScript_16CAA0 + msgbox gUnknown_8196F46, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16C96A + setfieldeffectarg 0, 255 + setfieldeffectarg 1, 10 + setfieldeffectarg 2, 14 + dofieldeffect 64 + waitfieldeffect 64 + specialvar VAR_RESULT, sub_80CAABC + playslotmachine VAR_RESULT + releaseall + end + +CeladonCity_GameCorner_EventScript_16C9A4:: @ 816C9A4 + lockall + setvar VAR_0x8004, 1 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16C9B0:: @ 816C9B0 + lockall + setvar VAR_0x8004, 2 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16C9BC:: @ 816C9BC + lockall + setvar VAR_0x8004, 3 + goto EventScript_16C96C + end + +EventScript_16C9C8:: @ 816C9C8 + lockall + setvar VAR_0x8004, 4 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16C9D4:: @ 816C9D4 + lockall + setvar VAR_0x8004, 5 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16C9E0:: @ 816C9E0 + lockall + setvar VAR_0x8004, 6 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16C9EC:: @ 816C9EC + lockall + setvar VAR_0x8004, 7 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16C9F8:: @ 816C9F8 + lockall + setvar VAR_0x8004, 8 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA04:: @ 816CA04 + lockall + setvar VAR_0x8004, 9 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA10:: @ 816CA10 + lockall + setvar VAR_0x8004, 10 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA1C:: @ 816CA1C + lockall + setvar VAR_0x8004, 11 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA28:: @ 816CA28 + lockall + setvar VAR_0x8004, 12 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA34:: @ 816CA34 + lockall + setvar VAR_0x8004, 13 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA40:: @ 816CA40 + lockall + setvar VAR_0x8004, 14 + goto EventScript_16C96C + end + +EventScript_16CA4C:: @ 816CA4C + lockall + setvar VAR_0x8004, 15 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA58:: @ 816CA58 + lockall + setvar VAR_0x8004, 16 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA64:: @ 816CA64 + lockall + setvar VAR_0x8004, 17 + goto EventScript_16C96C + end + +EventScript_16CA70:: @ 816CA70 + lockall + setvar VAR_0x8004, 18 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA7C:: @ 816CA7C + lockall + setvar VAR_0x8004, 19 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA88:: @ 816CA88 + lockall + setvar VAR_0x8004, 20 + goto EventScript_16C96C + end + +CeladonCity_GameCorner_EventScript_16CA94:: @ 816CA94 + lockall + setvar VAR_0x8004, 21 + goto EventScript_16C96C + end + +EventScript_16CAA0:: @ 816CAA0 + msgbox gUnknown_8196F0D + releaseall + end + +CeladonCity_GameCorner_EventScript_16CAAA:: @ 816CAAA + lockall + msgbox gUnknown_8196EDC + checkflag FLAG_0x26D + call_if 0, EventScript_16CABE + releaseall + end + +EventScript_16CABE:: @ 816CABE + playse SE_FU_ZAKU2 + setmetatile 15, 2, 669, 0 + setmetatile 16, 2, 670, 1 + setmetatile 17, 2, 671, 1 + setmetatile 16, 3, 678, 1 + setmetatile 17, 3, 679, 1 + special DrawWholeMapView + setflag FLAG_0x26D + return + +CeladonCity_GameCorner_EventScript_16CAF5:: @ 816CAF5 + trainerbattle 2, 357, 0, Text_196E69, Text_196E95, EventScript_16CB10 + msgbox gUnknown_8196E9B, 6 + end + +EventScript_16CB10:: @ 816CB10 + msgbox gUnknown_8196E9B + closemessage + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_16CB34 + compare_var_to_value VAR_FACING, 3 + call_if 5, EventScript_16CB3F + removeobject 11 + release + end + +EventScript_16CB34:: @ 816CB34 + applymovement 11, Movement_16CB4A + waitmovement 0 + return + +EventScript_16CB3F:: @ 816CB3F + applymovement 11, Movement_16CB53 + waitmovement 0 + return + +Movement_16CB4A:: @ 816CB4A + step_10 + step_13 + step_13 + step_11 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_16CB53:: @ 816CB53 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_end + +CeladonCity_GameCorner_EventScript_16CB5A:: @ 816CB5A + msgbox gUnknown_8196F64, 3 + end + +CeladonCity_GameCorner_EventScript_16CB63:: @ 816CB63 + msgbox gUnknown_8196F81, 3 + end + +CeladonCity_GameCorner_EventScript_16CB6C:: @ 816CB6C + msgbox gUnknown_8196FA0, 3 + end diff --git a/data/maps/CeladonCity_GameCorner/text.inc b/data/maps/CeladonCity_GameCorner/text.inc new file mode 100644 index 000000000..a388a736f --- /dev/null +++ b/data/maps/CeladonCity_GameCorner/text.inc @@ -0,0 +1,148 @@ +gUnknown_8196940:: @ 8196940 + .string "Welcome!\p" + .string "You can exchange your COINS for\n" + .string "fabulous prizes next door.$" + +Text_196984:: @ 8196984 + .string "Welcome to ROCKET GAME CORNER!\p" + .string "Do you need some game COINS?\n" + .string "Would you like to buy some?$" + +gUnknown_81969DC:: @ 81969DC + .string "No?\n" + .string "Please come play sometime!$" + +gUnknown_81969FB:: @ 81969FB + .string "Oh, I'm sorry.\n" + .string "You don't have a COIN CASE.$" + +gUnknown_8196A26:: @ 8196A26 + .string "Whoops!\n" + .string "Your COIN CASE is full.$" + +gUnknown_8196A46:: @ 8196A46 + .string "You can't afford the COINS.$" + +gUnknown_8196A62:: @ 8196A62 + .string "Thank you.\n" + .string "Here are your COINS!$" + +gUnknown_8196A82:: @ 8196A82 + .string "Keep this quiet.\p" + .string "It's rumored that this place is run\n" + .string "by TEAM ROCKET.$" + +gUnknown_8196AC7:: @ 8196AC7 + .string "I think these machines have\n" + .string "different odds.$" + +gUnknown_8196AF3:: @ 8196AF3 + .string "Kid, do you want to play?$" + +gUnknown_8196B0D:: @ 8196B0D + .string "{PLAYER} received 10 COINS\n" + .string "from the man.$" + +gUnknown_8196B30:: @ 8196B30 + .string "You don't need my COINS!$" + +gUnknown_8196B49:: @ 8196B49 + .string "Wins seem to come and go.\n" + .string "Nothing's a sure thing.$" + +gUnknown_8196B7B:: @ 8196B7B + .string "These slot games…\n" + .string "Win or lose, it's only by luck.$" + +gUnknown_8196BAD:: @ 8196BAD + .string "Hey!\p" + .string "You have better things to do,\n" + .string "champ in the making!\p" + .string "CELADON GYM's LEADER is ERIKA.\p" + .string "She is a user of GRASS-type\n" + .string "POKéMON, and at one with nature.\p" + .string "She might appear docile because of\n" + .string "her flower arranging…\p" + .string "But she's not one to be taken\n" + .string "lightly!$" + +gUnknown_8196CA1:: @ 8196CA1 + .string "They offer rare POKéMON that can\n" + .string "be exchanged for your COINS.\p" + .string "But, I just can't seem to win!$" + +gUnknown_8196CFE:: @ 8196CFE + .string "Games are scary!\n" + .string "It's so easy to get hooked!$" + +gUnknown_8196D2B:: @ 8196D2B + .string "What's up?\n" + .string "Want some COINS?$" + +gUnknown_8196D47:: @ 8196D47 + .string "{PLAYER} received 20 COINS\n" + .string "from the nice guy.$" + +gUnknown_8196D6F:: @ 8196D6F + .string "You have lots of COINS!$" + +gUnknown_8196D87:: @ 8196D87 + .string "Darn! I need more COINS for the\n" + .string "POKéMON I want!$" + +gUnknown_8196DB7:: @ 8196DB7 + .string "Hey, what? You're throwing me off!\n" + .string "Here are some COINS, so shoo!$" + +gUnknown_8196DF8:: @ 8196DF8 + .string "{PLAYER} received 20 COINS\n" + .string "from the man.$" + +gUnknown_8196E1B:: @ 8196E1B + .string "You've got plenty of your own\n" + .string "COINS!$" + +gUnknown_8196E40:: @ 8196E40 + .string "The trick is to watch the reels\n" + .string "closely.$" + +Text_196E69:: @ 8196E69 + .string "I'm guarding this poster!\n" + .string "Go away, or else!$" + +Text_196E95:: @ 8196E95 + .string "Dang!$" + +gUnknown_8196E9B:: @ 8196E9B + .string "The TEAM ROCKET HIDEOUT might\n" + .string "be discovered!\p" + .string "I better tell BOSS!$" + +gUnknown_8196EDC:: @ 8196EDC + .string "Hey!\p" + .string "A switch behind the poster!?\n" + .string "Let's push it!$" + +gUnknown_8196F0D:: @ 8196F0D + .string "A COIN CASE is required…$" + +gUnknown_8196F26:: @ 8196F26 + .string "Oops!\n" + .string "Don't have the COIN CASE!$" + +gUnknown_8196F46:: @ 8196F46 + .string "A slot machine!\n" + .string "Want to play?$" + +gUnknown_8196F64:: @ 8196F64 + .string "OUT OF ORDER\n" + .string "This is broken.$" + +gUnknown_8196F81:: @ 8196F81 + .string "OUT TO LUNCH\n" + .string "This is reserved.$" + +gUnknown_8196FA0:: @ 8196FA0 + .string "Someone's keys!\n" + .string "They'll be back.$" + diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json b/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json new file mode 100644 index 000000000..3e37651f5 --- /dev/null +++ b/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json @@ -0,0 +1,107 @@ +{ + "id": "MAP_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", + "name": "CeladonCity_GameCorner_PrizeRoom", + "layout": "LAYOUT_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_16CB76", + "flag": "0" + }, + { + "graphics_id": "33", + "x": 6, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_16CB7F", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_16CB88", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_16CE1D", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_16CF88", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 5 + }, + { + "x": 4, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 5 + }, + { + "x": 5, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc b/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc new file mode 100644 index 000000000..911847541 --- /dev/null +++ b/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc @@ -0,0 +1,344 @@ +CeladonCity_GameCorner_PrizeRoom_MapScripts:: @ 816CB75 + .byte 0 + +CeladonCity_GameCorner_PrizeRoom_EventScript_16CB76:: @ 816CB76 + msgbox gUnknown_8196FC1, 2 + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_16CB7F:: @ 816CB7F + msgbox gUnknown_8196FFF, 2 + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_16CB88:: @ 816CB88 + lock + faceplayer + checkflag FLAG_0x243 + goto_if 0, EventScript_16CD99 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + showcoinsbox 0, 0 + msgbox gUnknown_8197057 + goto EventScript_16CBB2 + end + +EventScript_16CBB2:: @ 816CBB2 + message Text_19707A + waitmessage + multichoice 11, 0, 14, 0 + switch VAR_RESULT + case 0, EventScript_16CC15 + case 1, EventScript_16CC25 + case 2, EventScript_16CC35 + case 3, EventScript_16CC45 + case 4, EventScript_16CC55 + case 5, EventScript_16CC10 + case 127, EventScript_16CC10 + end + +EventScript_16CC10:: @ 816CC10 + hidecoinsbox 0, 0 + release + end + +EventScript_16CC15:: @ 816CC15 + setvar VAR_0x4001, SPECIES_ABRA + setvar VAR_0x4002, 180 + goto EventScript_16CC65 + end + +EventScript_16CC25:: @ 816CC25 + setvar VAR_0x4001, SPECIES_CLEFAIRY + setvar VAR_0x4002, 500 + goto EventScript_16CC65 + end + +EventScript_16CC35:: @ 816CC35 + setvar VAR_0x4001, SPECIES_DRATINI + setvar VAR_0x4002, 2800 + goto EventScript_16CC65 + end + +EventScript_16CC45:: @ 816CC45 + setvar VAR_0x4001, SPECIES_SCYTHER + setvar VAR_0x4002, 5500 + goto EventScript_16CC65 + end + +EventScript_16CC55:: @ 816CC55 + setvar VAR_0x4001, SPECIES_PORYGON + setvar VAR_0x4002, 9999 + goto EventScript_16CC65 + end + +EventScript_16CC65:: @ 816CC65 + getspeciesname 0, VAR_0x4001 + msgbox gUnknown_819709D, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16CC10 + checkcoins VAR_RESULT + compare_var_to_var VAR_RESULT, VAR_0x4002 + goto_if 0, EventScript_16CDA5 + textcolor 3 + switch VAR_0x4001 + case SPECIES_ABRA, EventScript_16CCD4 + case SPECIES_CLEFAIRY, EventScript_16CCE9 + case SPECIES_DRATINI, EventScript_16CCFE + case SPECIES_SCYTHER, EventScript_16CD13 + case SPECIES_PORYGON, EventScript_16CD28 + case SPECIES_PINSIR, EventScript_16CD3D + end + +EventScript_16CCD4:: @ 816CCD4 + givemon VAR_0x4001, 9, ITEM_NONE, 0, 0, 0 + goto EventScript_16CD52 + end + +EventScript_16CCE9:: @ 816CCE9 + givemon VAR_0x4001, 8, ITEM_NONE, 0, 0, 0 + goto EventScript_16CD52 + end + +EventScript_16CCFE:: @ 816CCFE + givemon VAR_0x4001, 18, ITEM_NONE, 0, 0, 0 + goto EventScript_16CD52 + end + +EventScript_16CD13:: @ 816CD13 + givemon VAR_0x4001, 25, ITEM_NONE, 0, 0, 0 + goto EventScript_16CD52 + end + +EventScript_16CD28:: @ 816CD28 + givemon VAR_0x4001, 26, ITEM_NONE, 0, 0, 0 + goto EventScript_16CD52 + end + +EventScript_16CD3D:: @ 816CD3D + givemon VAR_0x4001, 18, ITEM_NONE, 0, 0, 0 + goto EventScript_16CD52 + end + +EventScript_16CD52:: @ 816CD52 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16CDB3 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16CDE0 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_16CD74 + end + +EventScript_16CD74:: @ 816CD74 + textcolor 3 + msgbox gUnknown_81A5E31 + hidecoinsbox 0, 0 + release + end + +EventScript_16CD83:: @ 816CD83 + countpokemon + subvar VAR_RESULT, 1 + copyvar VAR_0x8004, VAR_RESULT + call EventScript_1A74EB + goto EventScript_16CC10 + end + +EventScript_16CD99:: @ 816CD99 + textcolor 3 + msgbox gUnknown_819703E + release + end + +EventScript_16CDA5:: @ 816CDA5 + msgbox gUnknown_81970D5 + goto EventScript_16CC10 + end + +EventScript_16CDB3:: @ 816CDB3 + takecoins VAR_0x4002 + updatecoinsbox 0, 5 + getspeciesname 0, VAR_0x4001 + playfanfare MUS_FANFA1 + message Text_1A5DF1 + waitmessage + waitfanfare + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16CD83 + goto EventScript_16CC10 + end + +EventScript_16CDE0:: @ 816CDE0 + takecoins VAR_0x4002 + updatecoinsbox 0, 5 + getspeciesname 0, VAR_0x4001 + playfanfare MUS_FANFA1 + message Text_1A5DF1 + waitmessage + waitfanfare + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16CE12 + call EventScript_1A8C33 + goto EventScript_16CE12 + end + +EventScript_16CE12:: @ 816CE12 + call EventScript_1A8C3C + goto EventScript_16CC10 + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_16CE1D:: @ 816CE1D + lock + faceplayer + checkflag FLAG_0x243 + goto_if 0, EventScript_16CD99 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + showcoinsbox 0, 0 + msgbox gUnknown_8197057 + goto EventScript_16CE47 + end + +EventScript_16CE47:: @ 816CE47 + message Text_19707A + waitmessage + multichoice 11, 0, 30, 0 + switch VAR_RESULT + case 0, EventScript_16CEA5 + case 1, EventScript_16CEB9 + case 2, EventScript_16CECD + case 3, EventScript_16CEE1 + case 4, EventScript_16CEF5 + case 5, EventScript_16CC10 + case 127, EventScript_16CC10 + end + +EventScript_16CEA5:: @ 816CEA5 + setvar VAR_0x4001, ITEM_TM13 + setvar VAR_0x4002, 4000 + getmovename 1, MOVE_ICE_BEAM + goto EventScript_16CF09 + end + +EventScript_16CEB9:: @ 816CEB9 + setvar VAR_0x4001, ITEM_TM23 + setvar VAR_0x4002, 3500 + getmovename 1, MOVE_IRON_TAIL + goto EventScript_16CF09 + end + +EventScript_16CECD:: @ 816CECD + setvar VAR_0x4001, ITEM_TM24 + setvar VAR_0x4002, 4000 + getmovename 1, MOVE_THUNDERBOLT + goto EventScript_16CF09 + end + +EventScript_16CEE1:: @ 816CEE1 + setvar VAR_0x4001, ITEM_TM30 + setvar VAR_0x4002, 4500 + getmovename 1, MOVE_SHADOW_BALL + goto EventScript_16CF09 + end + +EventScript_16CEF5:: @ 816CEF5 + setvar VAR_0x4001, ITEM_TM35 + setvar VAR_0x4002, 4000 + getmovename 1, MOVE_FLAMETHROWER + goto EventScript_16CF09 + end + +EventScript_16CF09:: @ 816CF09 + msgbox gUnknown_81970B2, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16CC10 + goto EventScript_16CF3F + end + +EventScript_16CF22:: @ 816CF22 + getitemname 0, VAR_0x4001 + msgbox gUnknown_819709D, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16CC10 + goto EventScript_16CF3F + end + +EventScript_16CF3F:: @ 816CF3F + getitemname 0, VAR_0x4001 + checkcoins VAR_RESULT + compare_var_to_var VAR_RESULT, VAR_0x4002 + goto_if 0, EventScript_16CDA5 + checkitemspace VAR_0x4001, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16CF79 + takecoins VAR_0x4002 + updatecoinsbox 0, 5 + giveitem VAR_0x4001 + goto EventScript_16CC10 + end + +EventScript_16CF79:: @ 816CF79 + textcolor 3 + msgbox gUnknown_81A5242 + hidecoinsbox 0, 0 + release + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_16CF88:: @ 816CF88 + lock + faceplayer + checkflag FLAG_0x243 + goto_if 0, EventScript_16CD99 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + showcoinsbox 0, 0 + msgbox gUnknown_8197057 + goto EventScript_16CFB2 + end + +EventScript_16CFB2:: @ 816CFB2 + message Text_19707A + waitmessage + multichoice 10, 0, 41, 0 + switch VAR_RESULT + case 0, EventScript_16D010 + case 1, EventScript_16D020 + case 2, EventScript_16D030 + case 3, EventScript_16D040 + case 4, EventScript_16D050 + case 5, EventScript_16CC10 + case 127, EventScript_16CC10 + end + +EventScript_16D010:: @ 816D010 + setvar VAR_0x4001, ITEM_SMOKE_BALL + setvar VAR_0x4002, 800 + goto EventScript_16CF22 + end + +EventScript_16D020:: @ 816D020 + setvar VAR_0x4001, ITEM_MIRACLE_SEED + setvar VAR_0x4002, 1000 + goto EventScript_16CF22 + end + +EventScript_16D030:: @ 816D030 + setvar VAR_0x4001, ITEM_CHARCOAL + setvar VAR_0x4002, 1000 + goto EventScript_16CF22 + end + +EventScript_16D040:: @ 816D040 + setvar VAR_0x4001, ITEM_MYSTIC_WATER + setvar VAR_0x4002, 1000 + goto EventScript_16CF22 + end + +EventScript_16D050:: @ 816D050 + setvar VAR_0x4001, ITEM_YELLOW_FLUTE + setvar VAR_0x4002, 1600 + goto EventScript_16CF22 + end diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom/text.inc b/data/maps/CeladonCity_GameCorner_PrizeRoom/text.inc new file mode 100644 index 000000000..a5a21b9bc --- /dev/null +++ b/data/maps/CeladonCity_GameCorner_PrizeRoom/text.inc @@ -0,0 +1,31 @@ +gUnknown_8196FC1:: @ 8196FC1 + .string "I sure do fancy that PORYGON!\n" + .string "But, it's hard to win at slots!$" + +gUnknown_8196FFF:: @ 8196FFF + .string "Gahaha! I raked it in today!\n" + .string "If only every day were like this…$" + +gUnknown_819703E:: @ 819703E + .string "A COIN CASE is required…$" + +gUnknown_8197057:: @ 8197057 + .string "We exchange your COINS for prizes.$" + +Text_19707A:: @ 819707A + .string "Which prize would you like?$" + +gUnknown_8197096:: @ 8197096 + .string "はい どうぞ$" + +gUnknown_819709D:: @ 819709D + .string "So, you want the {STR_VAR_1}?$" + +gUnknown_81970B2:: @ 81970B2 + .string "Okay, a TM of {STR_VAR_2}\n" + .string "is what you want?$" + +gUnknown_81970D5:: @ 81970D5 + .string "Sorry, you'll need more COINS\n" + .string "than that.$" + diff --git a/data/maps/CeladonCity_Gym/map.json b/data/maps/CeladonCity_Gym/map.json new file mode 100644 index 000000000..d294cb8eb --- /dev/null +++ b/data/maps/CeladonCity_Gym/map.json @@ -0,0 +1,200 @@ +{ + "id": "MAP_CELADON_CITY_GYM", + "name": "CeladonCity_Gym", + "layout": "LAYOUT_CELADON_CITY_GYM", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "22", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "CeladonCity_Gym_EventScript_16D111", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 9, + "y": 10, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "CeladonCity_Gym_EventScript_16D163", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 10, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "CeladonCity_Gym_EventScript_16D14C", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "CeladonCity_Gym_EventScript_16D17A", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "CeladonCity_Gym_EventScript_16D19E", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "CeladonCity_Gym_EventScript_16D128", + "flag": "0" + }, + { + "graphics_id": "83", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Gym_EventScript_16D061", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 8, + "y": 7, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "CeladonCity_Gym_EventScript_16D1B5", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Gym_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "95", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Gym_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "95", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Gym_EventScript_1BDF13", + "flag": "20" + } + ], + "warp_events": [ + { + "x": 5, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 6 + }, + { + "x": 6, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 6 + }, + { + "x": 7, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 16, + "elevation": 0, + "script": "CeladonCity_Gym_EventScript_16D1CC" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 16, + "elevation": 0, + "script": "CeladonCity_Gym_EventScript_16D1CC" + } + ] +} diff --git a/data/maps/CeladonCity_Gym/scripts.inc b/data/maps/CeladonCity_Gym/scripts.inc new file mode 100644 index 000000000..9131602c2 --- /dev/null +++ b/data/maps/CeladonCity_Gym/scripts.inc @@ -0,0 +1,103 @@ +CeladonCity_Gym_MapScripts:: @ 816D060 + .byte 0 + +CeladonCity_Gym_EventScript_16D061:: @ 816D061 + setvar VAR_0x8004, 5 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + trainerbattle 1, 417, 0, Text_197114, Text_197260, EventScript_16D0A0 + checkflag FLAG_0x293 + goto_if 0, EventScript_16D0C6 + setvar VAR_0x8004, 5 + setvar VAR_0x8005, 4 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_81972B8 + release + end + +EventScript_16D0A0:: @ 816D0A0 + setvar VAR_0x8004, 5 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + clearflag FLAG_0x09E + setflag FLAG_0x4B3 + setflag FLAG_0x823 + setvar VAR_0x8008, 4 + call EventScript_1A6B18 + goto EventScript_16D0C6 + end + +EventScript_16D0C6:: @ 816D0C6 + msgbox gUnknown_8197327 + checkitemspace ITEM_TM19, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16D107 + additem ITEM_TM19, 1 + loadword 0, gUnknown_81973BA + setorcopyvar VAR_0x8000, ITEM_TM19 + setorcopyvar VAR_0x8001, 1 + setorcopyvar VAR_0x8002, MUS_FANFA1 + callstd 9 @ gStdScript_ItemMessageAndFanfare + setflag FLAG_0x293 + msgbox gUnknown_81973D7 + release + end + +EventScript_16D107:: @ 816D107 + msgbox gUnknown_819745D + release + end + +CeladonCity_Gym_EventScript_16D111:: @ 816D111 + trainerbattle 0, 132, 0, Text_19747C, Text_1974C4 + msgbox gUnknown_81974D6, 6 + end + +CeladonCity_Gym_EventScript_16D128:: @ 816D128 + trainerbattle 0, 133, 0, Text_1976C5, Text_1976FF + setvar VAR_0x8004, 5 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8197708, 6 + end + +CeladonCity_Gym_EventScript_16D14C:: @ 816D14C + trainerbattle 0, 160, 0, Text_197595, Text_1975BB + msgbox gUnknown_81975D1, 6 + end + +CeladonCity_Gym_EventScript_16D163:: @ 816D163 + trainerbattle 0, 265, 0, Text_1974FA, Text_19751C + msgbox gUnknown_8197527, 6 + end + +CeladonCity_Gym_EventScript_16D17A:: @ 816D17A + trainerbattle 0, 266, 0, Text_19760B, Text_197660 + setvar VAR_0x8004, 5 + setvar VAR_0x8005, 3 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8197664, 6 + end + +CeladonCity_Gym_EventScript_16D19E:: @ 816D19E + trainerbattle 0, 267, 0, Text_197747, Text_19777A + msgbox gUnknown_8197788, 6 + end + +CeladonCity_Gym_EventScript_16D1B5:: @ 816D1B5 + trainerbattle 0, 402, 0, Text_1977E5, Text_197832 + msgbox gUnknown_819783E, 6 + end + +CeladonCity_Gym_EventScript_16D1CC:: @ 816D1CC + lockall + checkflag FLAG_0x823 + goto_if_eq EventScript_16D1E0 + msgbox gUnknown_8197874 + releaseall + end + +EventScript_16D1E0:: @ 816D1E0 + msgbox gUnknown_81978AB + releaseall + end diff --git a/data/maps/CeladonCity_Gym/text.inc b/data/maps/CeladonCity_Gym/text.inc new file mode 100644 index 000000000..27d1a6a21 --- /dev/null +++ b/data/maps/CeladonCity_Gym/text.inc @@ -0,0 +1,170 @@ +gUnknown_81970FE:: @ 81970FE + .string "おきゃくさん もう もてないよ$" @ I'm sorry I don't have any more + +gUnknown_819710E:: @ 819710E + .string "あっ そう$" @ I see + +Text_197114:: @ 8197114 + .string "Hello…\n" + .string "Lovely weather, isn't it?\l" + .string "It's so pleasant…\p" + + .string "…Oh, dear…\n" + .string "I must have dozed off. Welcome.\p" + + .string "My name is ERIKA.\n" + .string "I am the LEADER of CELADON GYM.\p" + + .string "I am a student of the art of\n" + .string "flower arranging.\p" + + .string "My POKéMON are solely of the\n" + .string "GRASS type.\p" + + .string "…Oh, I'm sorry, I had no idea that\n" + .string "you wished to challenge me.\p" + + .string "Very well, but I shall not lose.{PLAY_BGM BGM_FRLG_LEADER_EYE}$" + +Text_197260:: @ 8197260 + .string "Oh!\n" + .string "I concede defeat.\l" + .string "You are remarkably strong.\p" + + .string "I must confer on you the\n" + .string "RAINBOWBADGE.$" + +gUnknown_81972B8:: @ 81972B8 + .string "You are cataloging POKéMON?\n" + .string "I must say I'm impressed.\p" + + .string "I would never collect POKéMON if\n" + .string "they were unattractive.$" + +gUnknown_8197327:: @ 8197327 + .string "The RAINBOWBADGE will make\n" + .string "POKéMON up to Lv. 50 obey.\p" + + .string "It also allows POKéMON to use\n" + .string "STRENGTH in and out of battle.\p" + + .string "Please also take this with you.$" + +gUnknown_81973BA:: @ 81973BA + .string "{PLAYER} received TM19\n" + .string "from ERIKA.$" + +gUnknown_81973D7:: @ 81973D7 + .string "TM19 contains GIGA DRAIN.\p" + + .string "Half the damage it inflicts is\n" + .string "drained to heal your POKéMON.\p" + + .string "Wouldn't you agree that it's a\n" + .string "wonderful move?$" + +gUnknown_819745D:: @ 819745D + .string "You should make room for this.$" + +Text_19747C:: @ 819747C + .string "I should tell you about this GYM.\p" + .string "Only real ladies are allowed in\n" + .string "here!$" + +Text_1974C4:: @ 81974C4 + .string "You're too rough!$" + +gUnknown_81974D6:: @ 81974D6 + .string "Bleaah!\n" + .string "I hope ERIKA wipes you out!$" + +Text_1974FA:: @ 81974FA + .string "Oh, welcome.\n" + .string "I was getting bored.$" + +Text_19751C:: @ 819751C + .string "My makeup!$" + +gUnknown_8197527:: @ 8197527 + .string "GRASS-type POKéMON are tough\n" + .string "against the WATER type.\p" + .string "They also have an edge on ROCK-\n" + .string "and GROUND-type POKéMON.$" + +Text_197595:: @ 8197595 + .string "…Weren't you peeking in here\n" + .string "earlier?$" + +Text_1975BB:: @ 81975BB + .string "You're an eye-opener!$" + +gUnknown_81975D1:: @ 81975D1 + .string "Oh, you were looking at ERIKA…\n" + .string "You weren't looking at me…$" + +Text_19760B:: @ 819760B + .string "Look, look!\n" + .string "See my POKéMON!\p" + .string "I like the GRASS type.\n" + .string "I like how they're easy to raise.$" + +Text_197660:: @ 8197660 + .string "No!$" + +gUnknown_8197664:: @ 8197664 + .string "We only use GRASS-type POKéMON at\n" + .string "our GYM.\p" + .string "Why? We also use them for making\n" + .string "flower arrangements!$" + +Text_1976C5:: @ 81976C5 + .string "Oh, hey!\p" + .string "We don't like BUG- or FIRE-type\n" + .string "POKéMON in here!$" + +Text_1976FF:: @ 81976FF + .string "Oh!\n" + .string "You!$" + +gUnknown_8197708:: @ 8197708 + .string "Our LEADER ERIKA might be quiet,\n" + .string "but she's famous around here.$" + +Text_197747:: @ 8197747 + .string "Pleased to meet you.\n" + .string "My hobby is POKéMON training.$" + +Text_19777A:: @ 819777A + .string "Oh!\n" + .string "Splendid!$" + +gUnknown_8197788:: @ 8197788 + .string "I have a blind date coming up.\n" + .string "I have to learn to be polite,\l" + .string "especially if I have to battle.$" + +Text_1977E5:: @ 81977E5 + .string "Welcome to CELADON GYM!\p" + .string "You'd better not underestimate\n" + .string "the nice ladies here.$" + +Text_197832:: @ 8197832 + .string "Oh!\n" + .string "Beaten!$" + +gUnknown_819783E:: @ 819783E + .string "I didn't bring my best POKéMON.\n" + .string "Wait until next time!$" + +gUnknown_8197874:: @ 8197874 + .string "CELADON POKéMON GYM\n" + .string "LEADER: ERIKA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +gUnknown_81978AB:: @ 81978AB + .string "CELADON POKéMON GYM\n" + .string "LEADER: ERIKA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/CeladonCity_Hotel/map.json b/data/maps/CeladonCity_Hotel/map.json new file mode 100644 index 000000000..5959cc9aa --- /dev/null +++ b/data/maps/CeladonCity_Hotel/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_CELADON_CITY_HOTEL", + "name": "CeladonCity_Hotel", + "layout": "LAYOUT_CELADON_CITY_HOTEL", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "35", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Hotel_EventScript_16D284", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 3, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Hotel_EventScript_16D28D", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Hotel_EventScript_16D296", + "flag": "0" + }, + { + "graphics_id": "16", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Hotel_EventScript_16D29F", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 10, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 9 + }, + { + "x": 4, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 9 + }, + { + "x": 5, + "y": 10, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 9 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_Hotel/scripts.inc b/data/maps/CeladonCity_Hotel/scripts.inc new file mode 100644 index 000000000..39326647a --- /dev/null +++ b/data/maps/CeladonCity_Hotel/scripts.inc @@ -0,0 +1,18 @@ +CeladonCity_Hotel_MapScripts:: @ 816D283 + .byte 0 + +CeladonCity_Hotel_EventScript_16D284:: @ 816D284 + msgbox gUnknown_8197B77, 2 + end + +CeladonCity_Hotel_EventScript_16D28D:: @ 816D28D + msgbox gUnknown_8197BBE, 2 + end + +CeladonCity_Hotel_EventScript_16D296:: @ 816D296 + msgbox gUnknown_8197C0C, 2 + end + +CeladonCity_Hotel_EventScript_16D29F:: @ 816D29F + msgbox gUnknown_8197C30, 2 + end diff --git a/data/maps/CeladonCity_Hotel/text.inc b/data/maps/CeladonCity_Hotel/text.inc new file mode 100644 index 000000000..b1c989120 --- /dev/null +++ b/data/maps/CeladonCity_Hotel/text.inc @@ -0,0 +1,21 @@ +Text_197B6F:: @ 8197B6F + .string "ぶつだん だ‥$" + +gUnknown_8197B77:: @ 8197B77 + .string "POKéMON?\n" + .string "No, this is a hotel for people.\p" + .string "We're full up, unfortunately.$" + +gUnknown_8197BBE:: @ 8197BBE + .string "I'm on vacation with my brother and\n" + .string "boyfriend.\p" + .string "CELADON is such a pretty city!$" + +gUnknown_8197C0C:: @ 8197C0C + .string "Why?\n" + .string "Why did she bring her brother?$" + +gUnknown_8197C30:: @ 8197C30 + .string "Yippee! I'm on vacation!\n" + .string "My sis brought me along! Awesome!$" + diff --git a/data/maps/CeladonCity_House1/map.json b/data/maps/CeladonCity_House1/map.json new file mode 100644 index 000000000..900c123a0 --- /dev/null +++ b/data/maps/CeladonCity_House1/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_CELADON_CITY_HOUSE1", + "name": "CeladonCity_House1", + "layout": "LAYOUT_HOUSE5", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "33", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_House1_EventScript_16D268", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_House1_EventScript_16D271", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 8, + "y": 4, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_House1_EventScript_16D27A", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 8 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 8 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 8 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_House1/scripts.inc b/data/maps/CeladonCity_House1/scripts.inc new file mode 100644 index 000000000..be1415217 --- /dev/null +++ b/data/maps/CeladonCity_House1/scripts.inc @@ -0,0 +1,14 @@ +CeladonCity_House1_MapScripts:: @ 816D267 + .byte 0 + +CeladonCity_House1_EventScript_16D268:: @ 816D268 + msgbox gUnknown_8197A9F, 2 + end + +CeladonCity_House1_EventScript_16D271:: @ 816D271 + msgbox gUnknown_8197AD3, 2 + end + +CeladonCity_House1_EventScript_16D27A:: @ 816D27A + msgbox gUnknown_8197B20, 2 + end diff --git a/data/maps/CeladonCity_House1/text.inc b/data/maps/CeladonCity_House1/text.inc new file mode 100644 index 000000000..df6acb986 --- /dev/null +++ b/data/maps/CeladonCity_House1/text.inc @@ -0,0 +1,16 @@ +gUnknown_8197A9F:: @ 8197A9F + .string "Hehehe!\p" + .string "The slots just reel in the dough,\n" + .string "big-time!$" + +gUnknown_8197AD3:: @ 8197AD3 + .string "CHIEF!\p" + .string "We just shipped two thousand\n" + .string "more POKéMON as slot prizes\l" + .string "again today!$" + +gUnknown_8197B20:: @ 8197B20 + .string "Don't touch the poster at the GAME\n" + .string "CORNER!\p" + .string "There's no secret switch behind it!$" + diff --git a/data/maps/CeladonCity_PokemonCenter_1F/map.json b/data/maps/CeladonCity_PokemonCenter_1F/map.json new file mode 100644 index 000000000..800dfbecf --- /dev/null +++ b/data/maps/CeladonCity_PokemonCenter_1F/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_CELADON_CITY_POKEMON_CENTER_1F", + "name": "CeladonCity_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_PokemonCenter_1F_EventScript_16C5FB", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_PokemonCenter_1F_EventScript_16C604", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_PokemonCenter_1F_EventScript_16C60D", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_PokemonCenter_1F_EventScript_16C616", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 4 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 4 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 4 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_PokemonCenter_1F/scripts.inc b/data/maps/CeladonCity_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..92bde48ad --- /dev/null +++ b/data/maps/CeladonCity_PokemonCenter_1F/scripts.inc @@ -0,0 +1,27 @@ +CeladonCity_PokemonCenter_1F_MapScripts:: @ 816C5EC + map_script 3, CeladonCity_PokemonCenter_1F_MapScript1_16C5F7 + map_script 5, CeladonCity_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +CeladonCity_PokemonCenter_1F_MapScript1_16C5F7:: @ 816C5F7 + setrespawn SPAWN_CELADON_CITY + end + +CeladonCity_PokemonCenter_1F_EventScript_16C5FB:: @ 816C5FB + lock + faceplayer + call EventScript_1A6578 + release + end + +CeladonCity_PokemonCenter_1F_EventScript_16C604:: @ 816C604 + msgbox gUnknown_819685B, 2 + end + +CeladonCity_PokemonCenter_1F_EventScript_16C60D:: @ 816C60D + msgbox gUnknown_81968C2, 2 + end + +CeladonCity_PokemonCenter_1F_EventScript_16C616:: @ 816C616 + msgbox gUnknown_8196913, 2 + end diff --git a/data/maps/CeladonCity_PokemonCenter_1F/text.inc b/data/maps/CeladonCity_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..098582351 --- /dev/null +++ b/data/maps/CeladonCity_PokemonCenter_1F/text.inc @@ -0,0 +1,15 @@ +gUnknown_819685B:: @ 819685B + .string "A POKé FLUTE awakens sleeping\n" + .string "POKéMON. You know that.\p" + .string "It does so with a sound that only\n" + .string "they can hear.$" + +gUnknown_81968C2:: @ 81968C2 + .string "I rode here from FUCHSIA.\p" + .string "It's an uphill ride on CYCLING\n" + .string "ROAD, so I'm exhausted.$" + +gUnknown_8196913:: @ 8196913 + .string "If I had a BIKE, I would go to\n" + .string "CYCLING ROAD!$" + diff --git a/data/maps/CeladonCity_PokemonCenter_2F/map.json b/data/maps/CeladonCity_PokemonCenter_2F/map.json new file mode 100644 index 000000000..622a168d4 --- /dev/null +++ b/data/maps/CeladonCity_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_CELADON_CITY_POKEMON_CENTER_2F", + "name": "CeladonCity_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_PokemonCenter_2F/scripts.inc b/data/maps/CeladonCity_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..1b07679eb --- /dev/null +++ b/data/maps/CeladonCity_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +CeladonCity_PokemonCenter_2F_MapScripts:: @ 816C61F + map_script 2, CeladonCity_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, CeladonCity_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, CeladonCity_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, CeladonCity_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +CeladonCity_PokemonCenter_2F_EventScript_16C634:: @ 816C634 + call EventScript_1BB4A3 + end + +EventScript_16C63A:: @ 816C63A + call EventScript_1BB6AB + end + +EventScript_16C640:: @ 816C640 + call EventScript_1BB7DE + end diff --git a/data/maps/CeladonCity_Restaurant/map.json b/data/maps/CeladonCity_Restaurant/map.json new file mode 100644 index 000000000..eb7afdbe2 --- /dev/null +++ b/data/maps/CeladonCity_Restaurant/map.json @@ -0,0 +1,107 @@ +{ + "id": "MAP_CELADON_CITY_RESTAURANT", + "name": "CeladonCity_Restaurant", + "layout": "LAYOUT_CELADON_CITY_RESTAURANT", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "59", + "x": 12, + "y": 7, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Restaurant_EventScript_16D1EB", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Restaurant_EventScript_16D1F4", + "flag": "0" + }, + { + "graphics_id": "27", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Restaurant_EventScript_16D25E", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 1, + "y": 2, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Restaurant_EventScript_16D1FD", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 3, + "y": 7, + "elevation": 0, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeladonCity_Restaurant_EventScript_16D255", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 7 + }, + { + "x": 6, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 7 + }, + { + "x": 7, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": 7 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_Restaurant/scripts.inc b/data/maps/CeladonCity_Restaurant/scripts.inc new file mode 100644 index 000000000..e52d88636 --- /dev/null +++ b/data/maps/CeladonCity_Restaurant/scripts.inc @@ -0,0 +1,43 @@ +CeladonCity_Restaurant_MapScripts:: @ 816D1EA + .byte 0 + +CeladonCity_Restaurant_EventScript_16D1EB:: @ 816D1EB + msgbox gUnknown_81978E6, 2 + end + +CeladonCity_Restaurant_EventScript_16D1F4:: @ 816D1F4 + msgbox gUnknown_8197915, 2 + end + +CeladonCity_Restaurant_EventScript_16D1FD:: @ 816D1FD + lock + faceplayer + checkflag FLAG_0x243 + goto_if_eq EventScript_16D24B + msgbox gUnknown_81979C1 + checkitemspace ITEM_COIN_CASE, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16D241 + additem ITEM_COIN_CASE, 1 + giveitemfanfaremsg gUnknown_8197A38, ITEM_COIN_CASE + setflag FLAG_0x243 + release + end + +EventScript_16D241:: @ 816D241 + msgbox gUnknown_8197A5E + release + end + +EventScript_16D24B:: @ 816D24B + msgbox gUnknown_8197A72 + release + end + +CeladonCity_Restaurant_EventScript_16D255:: @ 816D255 + msgbox gUnknown_8197952, 2 + end + +CeladonCity_Restaurant_EventScript_16D25E:: @ 816D25E + msgbox gUnknown_819798A, 2 + end diff --git a/data/maps/CeladonCity_Restaurant/text.inc b/data/maps/CeladonCity_Restaurant/text.inc new file mode 100644 index 000000000..87edeb186 --- /dev/null +++ b/data/maps/CeladonCity_Restaurant/text.inc @@ -0,0 +1,37 @@ +gUnknown_81978E6:: @ 81978E6 + .string "Hi!\p" + .string "Sorry, but we're taking a break\n" + .string "right now.$" + +gUnknown_8197915:: @ 8197915 + .string "My POKéMON are weak, so I often\n" + .string "have to go to the DRUGSTORE.$" + +gUnknown_8197952:: @ 8197952 + .string "Psst! There's a basement under the\n" + .string "GAME CORNER, I hear.$" + +gUnknown_819798A:: @ 819798A + .string "Munch…\p" + .string "The man at that table lost it all\n" + .string "at the slots.$" + +gUnknown_81979C1:: @ 81979C1 + .string "Go ahead! Laugh!\n" + .string "I'm flat-out busted!\p" + .string "No more slots for me!\n" + .string "I'm going straight!\p" + .string "Here!\n" + .string "I won't be needing this anymore!$" + +gUnknown_8197A38:: @ 8197A38 + .string "{PLAYER} received a COIN CASE\n" + .string "from the man.$" + +gUnknown_8197A5E:: @ 8197A5E + .string "Make room for this!$" + +gUnknown_8197A72:: @ 8197A72 + .string "I always thought I was going to\n" + .string "win it back…$" + diff --git a/data/maps/CeruleanCave_1F/map.json b/data/maps/CeruleanCave_1F/map.json new file mode 100644 index 000000000..64bf8c583 --- /dev/null +++ b/data/maps/CeruleanCave_1F/map.json @@ -0,0 +1,204 @@ +{ + "id": "MAP_CERULEAN_CAVE_1F", + "name": "CeruleanCave_1F", + "layout": "LAYOUT_CERULEAN_CAVE_1F", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_CERULEAN_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_1F_EventScript_1BEA47", + "flag": "434" + }, + { + "graphics_id": "92", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_1F_EventScript_1BEA54", + "flag": "435" + }, + { + "graphics_id": "92", + "x": 25, + "y": 5, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_1F_EventScript_1BEA3A", + "flag": "433" + }, + { + "graphics_id": "96", + "x": 7, + "y": 21, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_1F_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 13, + "y": 21, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_1F_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 5, + "y": 20, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_1F_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 14, + "y": 20, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_1F_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "96", + "x": 11, + "y": 21, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_1F_EventScript_1BE00C", + "flag": "22" + }, + { + "graphics_id": "96", + "x": 9, + "y": 18, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_1F_EventScript_1BE00C", + "flag": "23" + } + ], + "warp_events": [ + { + "x": 33, + "y": 21, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 7 + }, + { + "x": 34, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": 0 + }, + { + "x": 1, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_B1F", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 15, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": 2 + }, + { + "x": 30, + "y": 10, + "elevation": 4, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": 3 + }, + { + "x": 24, + "y": 11, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": 4 + }, + { + "x": 2, + "y": 4, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 12, + "y": 2, + "elevation": 3, + "item": "POCKET_KEY_ITEMS", + "flag": "39", + "unknown": 1 + } + ] +} diff --git a/data/maps/CeruleanCave_1F/scripts.inc b/data/maps/CeruleanCave_1F/scripts.inc new file mode 100644 index 000000000..db76ddfd7 --- /dev/null +++ b/data/maps/CeruleanCave_1F/scripts.inc @@ -0,0 +1,7 @@ +CeruleanCave_1F_MapScripts:: @ 81624B3 + map_script 3, CeruleanCave_1F_MapScript1_1624B9 + .byte 0 + +CeruleanCave_1F_MapScript1_1624B9:: @ 81624B9 + setworldmapflag FLAG_WORLD_MAP_CERULEAN_CAVE_1F + end diff --git a/data/maps/CeruleanCave_2F/map.json b/data/maps/CeruleanCave_2F/map.json new file mode 100644 index 000000000..4b747735b --- /dev/null +++ b/data/maps/CeruleanCave_2F/map.json @@ -0,0 +1,232 @@ +{ + "id": "MAP_CERULEAN_CAVE_2F", + "name": "CeruleanCave_2F", + "layout": "LAYOUT_CERULEAN_CAVE_2F", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_CERULEAN_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 9, + "y": 18, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BEA6E", + "flag": "437" + }, + { + "graphics_id": "92", + "x": 29, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BEA7B", + "flag": "438" + }, + { + "graphics_id": "92", + "x": 33, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BEA61", + "flag": "436" + }, + { + "graphics_id": "96", + "x": 33, + "y": 10, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 33, + "y": 9, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 25, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 28, + "y": 20, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "96", + "x": 30, + "y": 20, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "22" + }, + { + "graphics_id": "96", + "x": 9, + "y": 13, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "23" + }, + { + "graphics_id": "96", + "x": 23, + "y": 16, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "24" + }, + { + "graphics_id": "96", + "x": 13, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "25" + }, + { + "graphics_id": "96", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "26" + }, + { + "graphics_id": "96", + "x": 10, + "y": 20, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_2F_EventScript_1BE00C", + "flag": "27" + } + ], + "warp_events": [ + { + "x": 33, + "y": 4, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": 1 + }, + { + "x": 13, + "y": 4, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": 3 + }, + { + "x": 7, + "y": 14, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": 4 + }, + { + "x": 26, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": 5 + }, + { + "x": 23, + "y": 10, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": 6 + }, + { + "x": 5, + "y": 6, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": 7 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCave_2F/scripts.inc b/data/maps/CeruleanCave_2F/scripts.inc new file mode 100644 index 000000000..d80aaeca5 --- /dev/null +++ b/data/maps/CeruleanCave_2F/scripts.inc @@ -0,0 +1,2 @@ +CeruleanCave_2F_MapScripts:: @ 81624BD + .byte 0 diff --git a/data/maps/CeruleanCave_B1F/map.json b/data/maps/CeruleanCave_B1F/map.json new file mode 100644 index 000000000..0dd6edb8c --- /dev/null +++ b/data/maps/CeruleanCave_B1F/map.json @@ -0,0 +1,184 @@ +{ + "id": "MAP_CERULEAN_CAVE_B1F", + "name": "CeruleanCave_B1F", + "layout": "LAYOUT_CERULEAN_CAVE_B1F", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_CERULEAN_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 31, + "y": 9, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BEA95", + "flag": "440" + }, + { + "graphics_id": "92", + "x": 32, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BEA88", + "flag": "439" + }, + { + "graphics_id": "139", + "x": 7, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1624F5", + "flag": "129" + }, + { + "graphics_id": "96", + "x": 37, + "y": 1, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 38, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 35, + "y": 1, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 37, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "96", + "x": 35, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BE00C", + "flag": "22" + }, + { + "graphics_id": "96", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BE00C", + "flag": "23" + }, + { + "graphics_id": "96", + "x": 4, + "y": 1, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BE00C", + "flag": "24" + }, + { + "graphics_id": "96", + "x": 6, + "y": 1, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BE00C", + "flag": "25" + }, + { + "graphics_id": "96", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCave_B1F_EventScript_1BE00C", + "flag": "26" + } + ], + "warp_events": [ + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCave_B1F/scripts.inc b/data/maps/CeruleanCave_B1F/scripts.inc new file mode 100644 index 000000000..f2ac16317 --- /dev/null +++ b/data/maps/CeruleanCave_B1F/scripts.inc @@ -0,0 +1,70 @@ +CeruleanCave_B1F_MapScripts:: @ 81624BE + map_script 5, CeruleanCave_B1F_MapScript1_1624C9 + map_script 3, CeruleanCave_B1F_MapScript2_1624E7 + .byte 0 + +CeruleanCave_B1F_MapScript1_1624C9:: @ 81624C9 + checkflag FLAG_0x807 + call_if 1, EventScript_1624D3 + end + +EventScript_1624D3:: @ 81624D3 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 7 + goto_if 5, EventScript_1A77A9 + removeobject VAR_LAST_TALKED + return + +CeruleanCave_B1F_MapScript2_1624E7:: @ 81624E7 + checkflag FLAG_0x2BC + call_if 0, EventScript_1624F1 + end + +EventScript_1624F1:: @ 81624F1 + clearflag FLAG_0x081 + return + +CeruleanCave_B1F_EventScript_1624F5:: @ 81624F5 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + waitse + playmoncry SPECIES_MEWTWO, 2 + message Text_177F9F + waitmessage + waitmoncry + delay 20 + playbgm BGM_FRLG_LEADER_EYE, 0 + waitbuttonpress + setwildbattle SPECIES_MEWTWO, 70, ITEM_NONE + setflag FLAG_0x807 + special sub_807F9D8 + waitstate + clearflag FLAG_0x807 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_162558 + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_162561 + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_162561 + setflag FLAG_0x2BC + release + end + +EventScript_162558:: @ 8162558 + setflag FLAG_0x2BC + goto EventScript_1A922D + +EventScript_162560:: @ 8162560 + end + +EventScript_162561:: @ 8162561 + setvar VAR_0x8004, SPECIES_MEWTWO + goto EventScript_1A9236 + +EventScript_16256B:: @ 816256B + end diff --git a/data/maps/CeruleanCave_B1F/text.inc b/data/maps/CeruleanCave_B1F/text.inc new file mode 100644 index 000000000..2358efe24 --- /dev/null +++ b/data/maps/CeruleanCave_B1F/text.inc @@ -0,0 +1,3 @@ +Text_177F9F:: @ 8177F9F + .string "Mew!$" + diff --git a/data/maps/CeruleanCity/events_bad.inc b/data/maps/CeruleanCity/events_bad.inc new file mode 100644 index 000000000..f523a18d5 --- /dev/null +++ b/data/maps/CeruleanCity/events_bad.inc @@ -0,0 +1,43 @@ +CeruleanCity_EventObjects: + object_event 1, 60, 0, 31, 0, 12, 0, 3, 8, 17, 0, 0, 0 + object_event 2, 49, 0, 33, 0, 6, 0, 3, 1, 17, 0, 0, 0 + object_event 3, 16, 0, 16, 0, 21, 0, 3, 3, 49, 0, 0, 0 + object_event 4, 30, 0, 9, 0, 23, 0, 3, 2, 17, 0, 0, 0 + object_event 5, 129, 0, 32, 0, 29, 0, 3, 8, 17, 0, 0, 0 + object_event 6, 22, 0, 33, 0, 29, 0, 3, 9, 17, 0, 0, 0 + object_event 7, 18, 0, 34, 0, 22, 0, 3, 8, 17, 0, 0, 0 + object_event 8, 72, 0, 22, 0, 0, 0, 3, 8, 17, 0, 0, 0 + object_event 9, 95, 0, 26, 0, 32, 0, 3, 8, 17, 0, 0, 0 + object_event 10, 65375, 0, 50, 0, 18, 0, 10, 0, 0, 0, 27, 0 + object_event 11, 23, 0, 12, 0, 30, 0, 3, 7, 17, 0, 0, 0 + object_event 12, 41, 0, 1, 0, 13, 0, 3, 8, 17, 0, 0, 0 + +CeruleanCity_MapWarps: + warp_def 10, 11, 0, 1, MAP_CERULEAN_CITY_HOUSE1 + warp_def 30, 11, 0, 1, MAP_CERULEAN_CITY_HOUSE2 + warp_def 15, 17, 0, 1, MAP_CERULEAN_CITY_HOUSE3 + warp_def 22, 19, 0, 1, MAP_CERULEAN_CITY_POKEMONCENTER_1F + warp_def 31, 21, 0, 1, MAP_CERULEAN_CITY_GYM + warp_def 13, 28, 3, 1, MAP_CERULEAN_CITY_BIKESHOP + warp_def 29, 28, 0, 1, MAP_CERULEAN_CITY_MART + warp_def 1, 12, 0, 0, MAP_CERULEAN_CAVE_1F + warp_def 10, 8, 3, 3, MAP_CERULEAN_CITY_HOUSE1 + warp_def 31, 8, 3, 3, MAP_CERULEAN_CITY_HOUSE2 + warp_def 31, 9, 3, 3, MAP_CERULEAN_CITY_HOUSE2 + warp_def 14, 28, 3, 1, MAP_CERULEAN_CITY_BIKESHOP + warp_def 23, 28, 0, 0, MAP_CERULEAN_CITY_HOUSE4 + warp_def 17, 11, 0, 0, MAP_CERULEAN_CITY_HOUSE5 + +CeruleanCity_MapCoordEvents: + coord_event 22, 6, 3, VAR_0x4052, , CeruleanCity_EventScript_16649A + coord_event 23, 6, 3, VAR_0x4052, , CeruleanCity_EventScript_1664A6 + coord_event 24, 6, 3, VAR_0x4052, , CeruleanCity_EventScript_1664B9 + coord_event 33, 5, 3, VAR_0x407D, , CeruleanCity_EventScript_166683 + coord_event 33, 7, 3, VAR_0x407D, , CeruleanCity_EventScript_1666A3 + +CeruleanCity_MapBGEvents: + bg_hidden_item_event 18, 7, 3, ITEM_RARE_CANDY, + +CeruleanCity_MapEvents:: + map_events CeruleanCity_EventObjects, CeruleanCity_MapWarps, CeruleanCity_MapCoordEvents, CeruleanCity_MapBGEvents + diff --git a/data/maps/CeruleanCity/map.json b/data/maps/CeruleanCity/map.json new file mode 100644 index 000000000..df48d28c0 --- /dev/null +++ b/data/maps/CeruleanCity/map.json @@ -0,0 +1,401 @@ +{ + "id": "MAP_CERULEAN_CITY", + "name": "CeruleanCity", + "layout": "LAYOUT_CERULEAN_CITY", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE24", + "offset": 12, + "direction": "up" + }, + { + "map": "MAP_ROUTE5", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_ROUTE4", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE9", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "60", + "x": 31, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_1666E7", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 33, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_166603", + "flag": "59" + }, + { + "graphics_id": "16", + "x": 16, + "y": 21, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_1666FE", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 9, + "y": 23, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_16671D", + "flag": "0" + }, + { + "graphics_id": "129", + "x": 32, + "y": 29, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_1667DD", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 33, + "y": 29, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_16674F", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 34, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_166726", + "flag": "0" + }, + { + "graphics_id": "72", + "x": 22, + "y": 0, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "60" + }, + { + "graphics_id": "95", + "x": 26, + "y": 32, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "65375", + "x": 50, + "y": 18, + "elevation": 10, + "movement_type": "0", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 27, + "trainer_sight_or_berry_tree_id": 3, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 12, + "y": 30, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_166738", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 1, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_EventScript_16672F", + "flag": "92" + } + ], + "warp_events": [ + { + "x": 10, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE1", + "dest_warp_id": 1 + }, + { + "x": 30, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE2", + "dest_warp_id": 1 + }, + { + "x": 15, + "y": 17, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE3", + "dest_warp_id": 1 + }, + { + "x": 22, + "y": 19, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 31, + "y": 21, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_GYM", + "dest_warp_id": 1 + }, + { + "x": 13, + "y": 28, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_BIKE_SHOP", + "dest_warp_id": 1 + }, + { + "x": 29, + "y": 28, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_MART", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 12, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_HOUSE1", + "dest_warp_id": 3 + }, + { + "x": 31, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_HOUSE2", + "dest_warp_id": 3 + }, + { + "x": 31, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_HOUSE2", + "dest_warp_id": 3 + }, + { + "x": 14, + "y": 28, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_BIKE_SHOP", + "dest_warp_id": 1 + }, + { + "x": 23, + "y": 28, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE4", + "dest_warp_id": 0 + }, + { + "x": 17, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE5", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 22, + "y": 6, + "elevation": 3, + "var": "VAR_0x4052", + "var_value": 0, + "script": "CeruleanCity_EventScript_16649A" + }, + { + "type": "trigger", + "x": 23, + "y": 6, + "elevation": 3, + "var": "VAR_0x4052", + "var_value": 0, + "script": "CeruleanCity_EventScript_1664A6" + }, + { + "type": "trigger", + "x": 24, + "y": 6, + "elevation": 3, + "var": "VAR_0x4052", + "var_value": 0, + "script": "CeruleanCity_EventScript_1664B9" + }, + { + "type": "trigger", + "x": 33, + "y": 5, + "elevation": 3, + "var": "VAR_0x407D", + "var_value": 0, + "script": "CeruleanCity_EventScript_166683" + }, + { + "type": "trigger", + "x": 33, + "y": 7, + "elevation": 3, + "var": "VAR_0x407D", + "var_value": 0, + "script": "CeruleanCity_EventScript_1666A3" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 20, + "y": 25, + "elevation": 0, + "script": "CeruleanCity_EventScript_166838" + }, + { + "type": "bg_event_type_0", + "x": 27, + "y": 21, + "elevation": 0, + "script": "CeruleanCity_EventScript_166853" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 28, + "elevation": 0, + "script": "CeruleanCity_EventScript_16684A" + }, + { + "type": "bg_event_type_0", + "x": 19, + "y": 32, + "elevation": 0, + "script": "CeruleanCity_EventScript_166841" + }, + { + "type": "hidden_item", + "x": 18, + "y": 7, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "49", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 25, + "elevation": 0, + "script": "CeruleanCity_EventScript_16AC94" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 27, + "elevation": 0, + "script": "CeruleanCity_EventScript_16AC94" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 26, + "elevation": 0, + "script": "CeruleanCity_EventScript_16AC94" + } + ] +} diff --git a/data/maps/CeruleanCity/scripts.inc b/data/maps/CeruleanCity/scripts.inc new file mode 100644 index 000000000..480a40ad0 --- /dev/null +++ b/data/maps/CeruleanCity/scripts.inc @@ -0,0 +1,383 @@ +CeruleanCity_MapScripts:: @ 8166471 + map_script 3, CeruleanCity_MapScript1_166477 + .byte 0 + +CeruleanCity_MapScript1_166477:: @ 8166477 + setworldmapflag FLAG_WORLD_MAP_CERULEAN_CITY + checkflag FLAG_0x234 + call_if 0, EventScript_166484 + end + +EventScript_166484:: @ 8166484 + setobjectxyperm 1, 30, 12 + setobjectxyperm 5, 26, 31 + setobjectxyperm 6, 27, 31 + return + +CeruleanCity_EventScript_16649A:: @ 816649A + lockall + setvar VAR_0x4001, 0 + goto EventScript_1664CC + end + +CeruleanCity_EventScript_1664A6:: @ 81664A6 + lockall + setvar VAR_0x4001, 1 + setobjectxyperm 8, 23, 0 + goto EventScript_1664CC + end + +CeruleanCity_EventScript_1664B9:: @ 81664B9 + lockall + setvar VAR_0x4001, 2 + setobjectxyperm 8, 24, 0 + goto EventScript_1664CC + end + +EventScript_1664CC:: @ 81664CC + textcolor 0 + setvar VAR_0x4054, 2 + playbgm BGM_FRLG_RIVAL, 0 + addobject 8 + applymovement 8, Movement_1665D3 + waitmovement 0 + msgbox gUnknown_817EAD7 + setvar VAR_LAST_TALKED, 8 + compare_var_to_value VAR_STARTER_MON, 2 + call_if 1, EventScript_166582 + compare_var_to_value VAR_STARTER_MON, 1 + call_if 1, EventScript_16658D + compare_var_to_value VAR_STARTER_MON, 0 + call_if 1, EventScript_166598 + setvar VAR_0x8004, 13 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_817EB95 + closemessage + playbgm BGM_FRLG_RIVAL_POSTBATTLE, 0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_1665A3 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_1665A3 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_1665B5 + msgbox gUnknown_817ECD4 + setvar VAR_0x4052, 1 + setflag FLAG_0x29B + giveitem ITEM_FAME_CHECKER + msgbox gUnknown_817ED5D + closemessage + applymovement 8, Movement_1665FB + waitmovement 0 + fadedefaultbgm + removeobject 8 + releaseall + end + +EventScript_166582:: @ 8166582 + trainerbattle 3, 332, 0, Text_17EB71 + return + +EventScript_16658D:: @ 816658D + trainerbattle 3, 333, 0, Text_17EB71 + return + +EventScript_166598:: @ 8166598 + trainerbattle 3, 334, 0, Text_17EB71 + return + +EventScript_1665A3:: @ 81665A3 + applymovement 255, Movement_1665C7 + applymovement 8, Movement_1665D9 + waitmovement 0 + return + +EventScript_1665B5:: @ 81665B5 + applymovement 255, Movement_1665CD + applymovement 8, Movement_1665EA + waitmovement 0 + return + +Movement_1665C7:: @ 81665C7 + step_1c + step_1b + step_30 + step_1c + step_2d + step_end + +Movement_1665CD:: @ 81665CD + step_1c + step_1b + step_2f + step_1c + step_2d + step_end + +Movement_1665D3:: @ 81665D3 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +Movement_1665D9:: @ 81665D9 + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_1c + step_1c + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_1665EA:: @ 81665EA + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_1c + step_1c + step_13 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_1665FB:: @ 81665FB + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +CeruleanCity_EventScript_166603:: @ 8166603 + lock + faceplayer + checktrainerflag FLAG_0x163 + goto_if_eq EventScript_16662E + message Text_17EE0E + waitmessage + playbgm BGM_FRLG_SUSPICIOUS_EYE, 0 + waitbuttonpress + trainerbattle 3, 355, 0, Text_17EE70 + setvar VAR_0x407D, 1 + goto EventScript_16662E + end + +EventScript_16662E:: @ 816662E + msgbox gUnknown_817EE9C + checkitemspace ITEM_TM28, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_166677 + additem ITEM_TM28, 1 + giveitemfanfaremsg gUnknown_817EEBF, ITEM_TM28 + msgbox gUnknown_817EEED + closemessage + fadescreen 1 + removeobject 2 + fadescreen 0 + setflag FLAG_0x23F + release + end + +EventScript_166677:: @ 8166677 + textcolor 0 + msgbox gUnknown_817EF07 + release + end + +CeruleanCity_EventScript_166683:: @ 8166683 + lockall + setvar VAR_0x4001, 0 + applymovement 2, Movement_1A75E9 + waitmovement 0 + applymovement 255, Movement_1A75ED + waitmovement 0 + goto EventScript_1666C3 + end + +CeruleanCity_EventScript_1666A3:: @ 81666A3 + lockall + setvar VAR_0x4001, 1 + applymovement 2, Movement_1A75ED + waitmovement 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + goto EventScript_1666C3 + end + +EventScript_1666C3:: @ 81666C3 + textcolor 0 + msgbox Text_17EE0E + setvar VAR_LAST_TALKED, 2 + trainerbattle 3, 355, 0, Text_17EE70 + setvar VAR_0x407D, 1 + goto EventScript_16662E + end + +CeruleanCity_EventScript_1666E7:: @ 81666E7 + lock + faceplayer + msgbox gUnknown_817F0F1 + closemessage + applymovement 1, Movement_1A75E5 + waitmovement 0 + release + end + +CeruleanCity_EventScript_1666FE:: @ 81666FE + lock + faceplayer + checkflag FLAG_0x234 + goto_if_eq EventScript_166713 + msgbox gUnknown_817F01D + release + end + +EventScript_166713:: @ 8166713 + msgbox gUnknown_817EF89 + release + end + +CeruleanCity_EventScript_16671D:: @ 816671D + msgbox gUnknown_817F0B2, 2 + end + +CeruleanCity_EventScript_166726:: @ 8166726 + msgbox gUnknown_817EF3F, 2 + end + +CeruleanCity_EventScript_16672F:: @ 816672F + msgbox gUnknown_817F319, 2 + end + +CeruleanCity_EventScript_166738:: @ 8166738 + lock + faceplayer + msgbox gUnknown_817F2CF + closemessage + applymovement 11, Movement_1A75E5 + waitmovement 0 + release + end + +CeruleanCity_EventScript_16674F:: @ 816674F + lock + random 3 + copyvar VAR_0x8008, VAR_RESULT + compare_var_to_value VAR_0x8008, 0 + call_if 1, EventScript_1667B0 + compare_var_to_value VAR_0x8008, 1 + call_if 1, EventScript_1667B6 + compare_var_to_value VAR_0x8008, 2 + call_if 1, EventScript_1667BC + waitmessage + delay 40 + playse SE_PIN + applymovement 5, Movement_1A75D9 + waitmovement 0 + delay 30 + compare_var_to_value VAR_0x8008, 0 + call_if 1, EventScript_1667C2 + compare_var_to_value VAR_0x8008, 1 + call_if 1, EventScript_1667CB + compare_var_to_value VAR_0x8008, 2 + call_if 1, EventScript_1667D4 + release + end + +EventScript_1667B0:: @ 81667B0 + message Text_17F183 + return + +EventScript_1667B6:: @ 81667B6 + message Text_17F1C2 + return + +EventScript_1667BC:: @ 81667BC + message Text_17F1E9 + return + +EventScript_1667C2:: @ 81667C2 + msgbox gUnknown_817F1A1 + return + +EventScript_1667CB:: @ 81667CB + msgbox gUnknown_817F1D2 + return + +EventScript_1667D4:: @ 81667D4 + msgbox gUnknown_817F1FC + return + +CeruleanCity_EventScript_1667DD:: @ 81667DD + lock + random 4 + copyvar VAR_0x8008, VAR_RESULT + compare_var_to_value VAR_0x8008, 0 + call_if 1, EventScript_166814 + compare_var_to_value VAR_0x8008, 1 + call_if 1, EventScript_16681D + compare_var_to_value VAR_0x8008, 2 + call_if 1, EventScript_166826 + compare_var_to_value VAR_0x8008, 3 + call_if 1, EventScript_16682F + release + end + +EventScript_166814:: @ 8166814 + msgbox gUnknown_817F270 + return + +EventScript_16681D:: @ 816681D + msgbox gUnknown_817F287 + return + +EventScript_166826:: @ 8166826 + msgbox gUnknown_817F2A2 + return + +EventScript_16682F:: @ 816682F + msgbox gUnknown_817F2B7 + return + +CeruleanCity_EventScript_166838:: @ 8166838 + msgbox gUnknown_817F420, 3 + end + +CeruleanCity_EventScript_166841:: @ 8166841 + msgbox gUnknown_817F453, 3 + end + +CeruleanCity_EventScript_16684A:: @ 816684A + msgbox gUnknown_817F4C5, 3 + end + +CeruleanCity_EventScript_166853:: @ 8166853 + lockall + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_817F4EF + releaseall + end diff --git a/data/maps/CeruleanCity/text.inc b/data/maps/CeruleanCity/text.inc new file mode 100644 index 000000000..9a6c42035 --- /dev/null +++ b/data/maps/CeruleanCity/text.inc @@ -0,0 +1,181 @@ +gUnknown_817EAD7:: @ 817EAD7 + .string "{RIVAL}: Yo! {PLAYER}!\p" + .string "You're still struggling along back\n" + .string "here?\p" + .string "I'm doing great! I caught a bunch\n" + .string "of strong and smart POKéMON!\p" + .string "Here, let me see what you caught,\n" + .string "{PLAYER}!$" + +Text_17EB71:: @ 817EB71 + .string "Hey!\n" + .string "Take it easy!\l" + .string "You won already!$" + +gUnknown_817EB95:: @ 817EB95 + .string "{RIVAL}: Hey, guess what?\p" + .string "I went to BILL's and got him to\n" + .string "show me his rare POKéMON.\p" + .string "That added a lot of pages to my\n" + .string "POKéDEX!\p" + .string "After all, BILL's world famous as a\n" + .string "POKéMANIAC.\p" + .string "He invented the POKéMON Storage\n" + .string "System on PC, too.\p" + .string "Since you're using his system,\n" + .string "you should go thank him.\p" + .string "Well, I better get rolling!\n" + .string "Smell ya later!$" + +gUnknown_817ECD4:: @ 817ECD4 + .string "Oh, yeah, right.\p" + .string "I feel sorry for you. No, really.\n" + .string "You're always plodding behind me.\p" + .string "So here, I'll give you a little\n" + .string "present as a favor.$" + +gUnknown_817ED5D:: @ 817ED5D + .string "A chatty gossip like you…\n" + .string "That thing's perfect.\p" + .string "I don't need it because I don't\n" + .string "give a hoot about others.\p" + .string "All right, this time I really am\n" + .string "gone. Smell ya!$" + +Text_17EDF8:: @ 817EDF8 + .string "なんたって!\n" + .string "おれは てんさい だからよ!$" + +Text_17EE0E:: @ 817EE0E + .string "Hey! Stay out!\n" + .string "It's not your yard!\p" + .string "…Huh?\n" + .string "Me?\p" + .string "I'm an innocent bystander!\n" + .string "Don't you believe me?{PLAY_BGM}{BGM_FRLG_SUSPICIOUS_EYE}$" + +Text_17EE70:: @ 817EE70 + .string "GRUNT: Stop! I give up!\n" + .string "I'll leave quietly!$" + +gUnknown_817EE9C:: @ 817EE9C + .string "…Okay.\n" + .string "I'll return the TM I stole.$" + +gUnknown_817EEBF:: @ 817EEBF + .string "{PLAYER} recovered TM28 from\n" + .string "the TEAM ROCKET GRUNT.$" + +gUnknown_817EEED:: @ 817EEED + .string "I better get moving!\n" + .string "Bye!$" + +gUnknown_817EF07:: @ 817EF07 + .string "Make room for this!\n" + .string "I can't run until I give it to you!$" + +gUnknown_817EF3F:: @ 817EF3F + .string "You're a TRAINER, too?\p" + .string "Collecting, battling…\n" + .string "It's a tough life, isn't it?$" + +gUnknown_817EF89:: @ 817EF89 + .string "Did you know that you can CUT down\n" + .string "small trees?\p" + .string "Even that small tree in front of\n" + .string "the shop can be CUT down.\p" + .string "I think there's a way around it,\n" + .string "though.$" + +gUnknown_817F01D:: @ 817F01D + .string "If that SLOWBRO wasn't there, you\n" + .string "could CUT down the small tree.\p" + .string "That way, you could get to the\n" + .string "other side.\p" + .string "I think there's a way around it,\n" + .string "though.$" + +gUnknown_817F0B2:: @ 817F0B2 + .string "You're making an encyclopedia on\n" + .string "POKéMON? That sounds amusing.$" + +gUnknown_817F0F1:: @ 817F0F1 + .string "The people here were robbed.\p" + .string "It's obvious that TEAM ROCKET is\n" + .string "behind this most heinous crime!\p" + .string "Even our POLICE FORCE has\n" + .string "trouble with the ROCKETS!$" + +Text_17F183:: @ 817F183 + .string "Okay! SLOWBRO!\n" + .string "Use SONICBOOM!$" + +gUnknown_817F1A1:: @ 817F1A1 + .string "Come on, SLOWBRO, pay attention!$" + +Text_17F1C2:: @ 817F1C2 + .string "SLOWBRO, punch!$" + +gUnknown_817F1D2:: @ 817F1D2 + .string "No!\n" + .string "You blew it again!$" + +Text_17F1E9:: @ 817F1E9 + .string "SLOWBRO, WITHDRAW!$" + +gUnknown_817F1FC:: @ 817F1FC + .string "No! That's wrong!\n" + .string "It's so hard to control POKéMON!\p" + .string "Your POKéMON's obedience depends\n" + .string "on your abilities as a TRAINER.$" + +gUnknown_817F270:: @ 817F270 + .string "SLOWBRO took a snooze…$" + +gUnknown_817F287:: @ 817F287 + .string "SLOWBRO is loafing around…$" + +gUnknown_817F2A2:: @ 817F2A2 + .string "SLOWBRO turned away…$" + +gUnknown_817F2B7:: @ 817F2B7 + .string "SLOWBRO ignored orders…$" + +gUnknown_817F2CF:: @ 817F2CF + .string "I want a bright red bicycle.\p" + .string "I'll keep it at home, so it won't\n" + .string "get dirty.$" + +gUnknown_817F319:: @ 817F319 + .string "This is CERULEAN CAVE.\p" + .string "Horribly strong POKéMON live inside\n" + .string "there.\p" + .string "It takes a very special TRAINER to\n" + .string "be allowed inside there.\p" + .string "You'd have to be strong enough to\n" + .string "become the POKéMON LEAGUE\l" + .string "CHAMPION for starters.\p" + .string "And, you would have to have\n" + .string "made a great achievement.$" + +gUnknown_817F420:: @ 817F420 + .string "CERULEAN CITY\n" + .string "A Mysterious, Blue Aura Surrounds\l" + .string "It$" + +gUnknown_817F453:: @ 817F453 + .string "TRAINER TIPS\p" + .string "A POKéMON can be made to hold\n" + .string "an item.\p" + .string "Some items can even be used by\n" + .string "the holding POKéMON in battle.$" + +gUnknown_817F4C5:: @ 817F4C5 + .string "Grass and caves handled easily!\n" + .string "BIKE SHOP$" + +gUnknown_817F4EF:: @ 817F4EF + .string "CERULEAN CITY POKéMON GYM\n" + .string "LEADER: MISTY\l" + .string "The Tomboyish Mermaid!$" + diff --git a/data/maps/CeruleanCity_BikeShop/map.json b/data/maps/CeruleanCity_BikeShop/map.json new file mode 100644 index 000000000..51ac0c1a6 --- /dev/null +++ b/data/maps/CeruleanCity_BikeShop/map.json @@ -0,0 +1,138 @@ +{ + "id": "MAP_CERULEAN_CITY_BIKE_SHOP", + "name": "CeruleanCity_BikeShop", + "layout": "LAYOUT_CERULEAN_CITY_BIKE_SHOP", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "25", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_BikeShop_EventScript_16ABBD", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC75", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC6C", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 5 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 5 + }, + { + "x": 6, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 3, + "elevation": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC94" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 4, + "elevation": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC94" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 5, + "elevation": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC94" + }, + { + "type": "bg_event_type_0", + "x": 2, + "y": 3, + "elevation": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC94" + }, + { + "type": "bg_event_type_0", + "x": 1, + "y": 4, + "elevation": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC94" + }, + { + "type": "bg_event_type_0", + "x": 2, + "y": 5, + "elevation": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC94" + }, + { + "type": "bg_event_type_0", + "x": 2, + "y": 7, + "elevation": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC94" + }, + { + "type": "bg_event_type_0", + "x": 2, + "y": 8, + "elevation": 0, + "script": "CeruleanCity_BikeShop_EventScript_16AC94" + } + ] +} diff --git a/data/maps/CeruleanCity_BikeShop/scripts.inc b/data/maps/CeruleanCity_BikeShop/scripts.inc new file mode 100644 index 000000000..51b7ba5bd --- /dev/null +++ b/data/maps/CeruleanCity_BikeShop/scripts.inc @@ -0,0 +1,75 @@ +CeruleanCity_BikeShop_MapScripts:: @ 816ABBC + .byte 0 + +CeruleanCity_BikeShop_EventScript_16ABBD:: @ 816ABBD + lock + faceplayer + checkflag FLAG_0x271 + goto_if_eq EventScript_16AC58 + checkflag FLAG_0x241 + goto_if_eq EventScript_16AC22 + showmoneybox 0, 0, 0 + message Text_192755 + waitmessage + multichoice 11, 0, 13, 0 + switch VAR_RESULT + case 0, EventScript_16AC07 + case 1, EventScript_16AC15 + case 127, EventScript_16AC15 + end + +EventScript_16AC07:: @ 816AC07 + msgbox gUnknown_8192796 + goto EventScript_16AC15 + end + +EventScript_16AC15:: @ 816AC15 + msgbox gUnknown_819280E + hidemoneybox + .byte 0 + .byte 0 + release + end + +EventScript_16AC22:: @ 816AC22 + msgbox gUnknown_81927B2 + giveitemfanfaremsg gUnknown_81927E1, ITEM_BICYCLE, 1, BGM_FRLG_ME_KEYITEM + setflag FLAG_0x271 + additem ITEM_BICYCLE, 1 + removeitem ITEM_BIKE_VOUCHER, 1 + msgbox gUnknown_819280E + release + end + +EventScript_16AC58:: @ 816AC58 + msgbox gUnknown_8192833 + release + end + +EventScript_16AC62:: @ 816AC62 + msgbox gUnknown_81928A8 + release + end + +CeruleanCity_BikeShop_EventScript_16AC6C:: @ 816AC6C + msgbox gUnknown_81928CF, 2 + end + +CeruleanCity_BikeShop_EventScript_16AC75:: @ 816AC75 + lock + faceplayer + checkflag FLAG_0x271 + goto_if_eq EventScript_16AC8A + msgbox gUnknown_8192937 + release + end + +EventScript_16AC8A:: @ 816AC8A + msgbox gUnknown_8192968 + release + end + +CeruleanCity_BikeShop_EventScript_16AC94:: @ 816AC94 +CeruleanCity_EventScript_16AC94:: @ 816AC94 + msgbox gUnknown_81929AD, 3 + end diff --git a/data/maps/CeruleanCity_BikeShop/text.inc b/data/maps/CeruleanCity_BikeShop/text.inc new file mode 100644 index 000000000..18fc8aaef --- /dev/null +++ b/data/maps/CeruleanCity_BikeShop/text.inc @@ -0,0 +1,56 @@ +Text_192755:: @ 8192755 + .string "Hi!\n" + .string "Welcome to our BIKE SHOP.\p" + .string "Have we got just the BIKE for\n" + .string "you!$" + +gUnknown_8192796:: @ 8192796 + .string "Sorry!\n" + .string "You can't afford it!$" + +gUnknown_81927B2:: @ 81927B2 + .string "Oh, that's…\p" + .string "A BIKE VOUCHER!\p" + .string "Okay!\n" + .string "Here you go!$" + +gUnknown_81927E1:: @ 81927E1 + .string "{PLAYER} exchanged the\n" + .string "BIKE VOUCHER for a BICYCLE.$" + +gUnknown_819280E:: @ 819280E + .string "Thank you!\n" + .string "Come back again sometime!$" + +gUnknown_8192833:: @ 8192833 + .string "How do you like your new BICYCLE?\n" + .string "Do you like how it rides?\p" + .string "You can take it out on CYCLING\n" + .string "ROAD and even into caves!$" + +gUnknown_81928A8:: @ 81928A8 + .string "You better make room for your\n" + .string "BICYCLE!$" + +gUnknown_81928CF:: @ 81928CF + .string "A plain city bike is good enough\n" + .string "for me.\p" + .string "After all, you can't put a shopping\n" + .string "basket on a mountain bike.$" + +gUnknown_8192937:: @ 8192937 + .string "These bikes are cool, but they're\n" + .string "way expensive!$" + +gUnknown_8192968:: @ 8192968 + .string "Wow.\n" + .string "Your BIKE is really cool!$" + +Text_192987:: @ 8192987 + .string "ついに はつばい!\p" + .string "ドイツ せい さいこうきゅう\n" + .string "おりたたみ じてんしゃ!$" + +gUnknown_81929AD:: @ 81929AD + .string "A shiny new BICYCLE!$" + diff --git a/data/maps/CeruleanCity_Gym/map.json b/data/maps/CeruleanCity_Gym/map.json new file mode 100644 index 000000000..a662cdf74 --- /dev/null +++ b/data/maps/CeruleanCity_Gym/map.json @@ -0,0 +1,109 @@ +{ + "id": "MAP_CERULEAN_CITY_GYM", + "name": "CeruleanCity_Gym", + "layout": "LAYOUT_CERULEAN_CITY_GYM", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "43", + "x": 10, + "y": 12, + "elevation": 0, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "CeruleanCity_Gym_EventScript_16AB5B", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "CeruleanCity_Gym_EventScript_16AB44", + "flag": "0" + }, + { + "graphics_id": "81", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_Gym_EventScript_16AAA1", + "flag": "0" + }, + { + "graphics_id": "91", + "x": 7, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_Gym_EventScript_16AB7F", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 4 + }, + { + "x": 8, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 4 + }, + { + "x": 9, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 6, + "y": 17, + "elevation": 0, + "script": "CeruleanCity_Gym_EventScript_16AB9E" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 17, + "elevation": 0, + "script": "CeruleanCity_Gym_EventScript_16AB9E" + } + ] +} diff --git a/data/maps/CeruleanCity_Gym/scripts.inc b/data/maps/CeruleanCity_Gym/scripts.inc new file mode 100644 index 000000000..d8fe70407 --- /dev/null +++ b/data/maps/CeruleanCity_Gym/scripts.inc @@ -0,0 +1,82 @@ +CeruleanCity_Gym_MapScripts:: @ 816AAA0 + .byte 0 + +CeruleanCity_Gym_EventScript_16AAA1:: @ 816AAA1 + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + trainerbattle 1, 415, 0, Text_1921EF, Text_19242D, EventScript_16AAD3 + checkflag FLAG_0x297 + goto_if 0, EventScript_16AAF9 + msgbox gUnknown_81922BF + release + end + +EventScript_16AAD3:: @ 816AAD3 + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + setflag FLAG_0x4B1 + setflag FLAG_0x821 + setrespawn SPAWN_CERULEAN_CITY + setvar VAR_0x8008, 2 + call EventScript_1A6B18 + goto EventScript_16AAF9 + end + +EventScript_16AAF9:: @ 816AAF9 + msgbox gUnknown_81922F7 + checkitemspace ITEM_TM03, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16AB3A + additem ITEM_TM03, 1 + giveitemfanfaremsg gUnknown_81923F1, ITEM_TM03 + setflag FLAG_0x297 + msgbox gUnknown_81922BF + release + end + +EventScript_16AB3A:: @ 816AB3A + msgbox gUnknown_819240E + release + end + +CeruleanCity_Gym_EventScript_16AB44:: @ 816AB44 + trainerbattle 0, 150, 0, Text_192481, Text_1924D0 + msgbox gUnknown_81924E4, 6 + end + +CeruleanCity_Gym_EventScript_16AB5B:: @ 816AB5B + trainerbattle 0, 234, 0, Text_192524, Text_192547 + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8192556, 6 + end + +CeruleanCity_Gym_EventScript_16AB7F:: @ 816AB7F + lock + faceplayer + checkflag FLAG_0x4B1 + goto_if_eq EventScript_16AB94 + msgbox gUnknown_81925AC + release + end + +EventScript_16AB94:: @ 816AB94 + msgbox gUnknown_8192688 + release + end + +CeruleanCity_Gym_EventScript_16AB9E:: @ 816AB9E + lockall + checkflag FLAG_0x821 + goto_if_eq EventScript_16ABB2 + msgbox gUnknown_81926E1 + releaseall + end + +EventScript_16ABB2:: @ 816ABB2 + msgbox gUnknown_8192719 + releaseall + end diff --git a/data/maps/CeruleanCity_Gym/text.inc b/data/maps/CeruleanCity_Gym/text.inc new file mode 100644 index 000000000..5f253b875 --- /dev/null +++ b/data/maps/CeruleanCity_Gym/text.inc @@ -0,0 +1,92 @@ +Text_1921EF:: @ 81921EF + .string "Hi, you're a new face!\p" + .string "Only those TRAINERS who have a\n" + .string "policy about POKéMON can turn pro.\p" + .string "What is your approach when you\n" + .string "catch and train POKéMON?\p" + .string "My policy is an all-out offensive\n" + .string "with WATER-type POKéMON!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +gUnknown_81922BF:: @ 81922BF + .string "TM03 teaches WATER PULSE.\p" + .string "Use it on an aquatic POKéMON!$" + +gUnknown_81922F7:: @ 81922F7 + .string "The CASCADEBADGE makes all\n" + .string "POKéMON up to Lv. 30 obey.\p" + .string "That includes even outsiders you\n" + .string "got in trades.\p" + .string "There's more. You can now use CUT\n" + .string "anytime, even out of battle.\p" + .string "You can CUT down small trees to\n" + .string "open new pathways.\p" + .string "You can also have my favorite TM.$" + +gUnknown_81923F1:: @ 81923F1 + .string "{PLAYER} received TM03\n" + .string "from MISTY.$" + +gUnknown_819240E:: @ 819240E + .string "You better make room for this!$" + +Text_19242D:: @ 819242D + .string "Wow!\n" + .string "You're too much!\p" + .string "All right!\p" + .string "You can have the CASCADEBADGE to\n" + .string "show you beat me.$" + +Text_192481:: @ 8192481 + .string "What? You?\n" + .string "I'm more than good enough for you!\p" + .string "MISTY won't have to be bothered.$" + +Text_1924D0:: @ 81924D0 + .string "You overwhelmed me!$" + +gUnknown_81924E4:: @ 81924E4 + .string "You have to face other TRAINERS\n" + .string "to see how good you really are.$" + +Text_192524:: @ 8192524 + .string "Splash!\p" + .string "I'm first up!\n" + .string "Let's do it!$" + +Text_192547:: @ 8192547 + .string "That can't be!$" + +gUnknown_8192556:: @ 8192556 + .string "MISTY is a TRAINER who's going to\n" + .string "keep improving.\p" + .string "She won't lose to someone like you!$" + +gUnknown_81925AC:: @ 81925AC + .string "Yo!\n" + .string "Champ in the making!\p" + .string "Let me give you some advice!\p" + .string "The LEADER, MISTY, is a pro who\n" + .string "uses WATER-type POKéMON.\p" + .string "You can drain all their water with\n" + .string "GRASS-type POKéMON.\p" + .string "Or, you might use ELECTRIC-type\n" + .string "POKéMON and zap them!$" + +gUnknown_8192688:: @ 8192688 + .string "You beat MISTY!\n" + .string "See, what'd I tell ya?\p" + .string "You and me, kid, we make a pretty\n" + .string "darn-good team!$" + +gUnknown_81926E1:: @ 81926E1 + .string "CERULEAN POKéMON GYM\n" + .string "LEADER: MISTY\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +gUnknown_8192719:: @ 8192719 + .string "CERULEAN POKéMON GYM\n" + .string "LEADER: MISTY\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/CeruleanCity_House1/map.json b/data/maps/CeruleanCity_House1/map.json new file mode 100644 index 000000000..248ba5b3f --- /dev/null +++ b/data/maps/CeruleanCity_House1/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE1", + "name": "CeruleanCity_House1", + "layout": "LAYOUT_CERULEAN_CITY_HOUSE1", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_House1_EventScript_16A7F0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 0 + }, + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 0 + }, + { + "x": 3, + "y": 1, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 8 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_House1/scripts.inc b/data/maps/CeruleanCity_House1/scripts.inc new file mode 100644 index 000000000..18bc90fb6 --- /dev/null +++ b/data/maps/CeruleanCity_House1/scripts.inc @@ -0,0 +1,91 @@ +CeruleanCity_House1_MapScripts:: @ 816A7EF + .byte 0 + +CeruleanCity_House1_EventScript_16A7F0:: @ 816A7F0 + lock + faceplayer + msgbox gUnknown_81918E7 + message Text_191967 + waitmessage + setvar VAR_0x8004, 0 + special sub_80CB7C4 + waitstate + switch VAR_RESULT + case 0, EventScript_16A8FB + case 1, EventScript_16A909 + case 2, EventScript_16A917 + case 3, EventScript_16A925 + case 4, EventScript_16A933 + case 5, EventScript_16A941 + case 6, EventScript_16A94F + case 7, EventScript_16A95D + case 8, EventScript_16A96B + case 127, EventScript_16A96B + end + +EventScript_16A87D:: @ 816A87D + message Text_191967 + waitmessage + special sub_80CBC5C + waitstate + switch VAR_RESULT + case 0, EventScript_16A8FB + case 1, EventScript_16A909 + case 2, EventScript_16A917 + case 3, EventScript_16A925 + case 4, EventScript_16A933 + case 5, EventScript_16A941 + case 6, EventScript_16A94F + case 7, EventScript_16A95D + case 8, EventScript_16A96B + case 127, EventScript_16A96B + end + +EventScript_16A8FB:: @ 816A8FB + msgbox gUnknown_81919BE + goto EventScript_16A87D + end + +EventScript_16A909:: @ 816A909 + msgbox gUnknown_8191A31 + goto EventScript_16A87D + end + +EventScript_16A917:: @ 816A917 + msgbox gUnknown_8191AF9 + goto EventScript_16A87D + end + +EventScript_16A925:: @ 816A925 + msgbox gUnknown_8191B69 + goto EventScript_16A87D + end + +EventScript_16A933:: @ 816A933 + msgbox gUnknown_8191C36 + goto EventScript_16A87D + end + +EventScript_16A941:: @ 816A941 + msgbox gUnknown_8191CA9 + goto EventScript_16A87D + end + +EventScript_16A94F:: @ 816A94F + msgbox gUnknown_8191D78 + goto EventScript_16A87D + +EventScript_16A95C:: @ 816A95C + end + +EventScript_16A95D:: @ 816A95D + msgbox gUnknown_8191DF8 + goto EventScript_16A87D + +EventScript_16A96A:: @ 816A96A + end + +EventScript_16A96B:: @ 816A96B + msgbox gUnknown_819199E + release + end diff --git a/data/maps/CeruleanCity_House1/text.inc b/data/maps/CeruleanCity_House1/text.inc new file mode 100644 index 000000000..1e4ceceda --- /dev/null +++ b/data/maps/CeruleanCity_House1/text.inc @@ -0,0 +1,72 @@ +gUnknown_81918E7:: @ 81918E7 + .string "Only skilled TRAINERS can collect\n" + .string "POKéMON BADGES.\p" + .string "I see you have at least one.\p" + .string "Those BADGES have amazing secrets,\n" + .string "did you know?$" + +Text_191967:: @ 8191967 + .string "Now then…\p" + .string "Which of the eight BADGES should\n" + .string "I describe?$" + +gUnknown_819199E:: @ 819199E + .string "Come visit me anytime you wish.$" + +gUnknown_81919BE:: @ 81919BE + .string "The ATTACK stat of all your\n" + .string "POKéMON increases a little bit.\p" + .string "It also lets you use the move\n" + .string "FLASH outside of battle.$" + +gUnknown_8191A31:: @ 8191A31 + .string "POKéMON up to Lv. 30 will obey\n" + .string "you.\p" + .string "That includes even outsiders you\n" + .string "obtain in trades.\p" + .string "POKéMON of higher levels will\n" + .string "be unruly in battle, however.\p" + .string "It also lets you use the move\n" + .string "CUT outside of battle.$" + +gUnknown_8191AF9:: @ 8191AF9 + .string "The SPEED stat of all your\n" + .string "POKéMON increases a little bit.\p" + .string "It also lets you use the move\n" + .string "FLY outside of battle.$" + +gUnknown_8191B69:: @ 8191B69 + .string "POKéMON up to Lv. 50 will obey\n" + .string "you.\p" + .string "That includes even outsiders you\n" + .string "obtain in trades.\p" + .string "POKéMON of higher levels will\n" + .string "be unruly in battle, however.\p" + .string "It also lets you use the move\n" + .string "STRENGTH outside of battle.$" + +gUnknown_8191C36:: @ 8191C36 + .string "The DEFENSE stat of all your\n" + .string "POKéMON increases a little bit.\p" + .string "It also lets you use the move\n" + .string "SURF outside of battle.$" + +gUnknown_8191CA9:: @ 8191CA9 + .string "POKéMON up to Lv. 70 will obey\n" + .string "you.\p" + .string "That includes even outsiders you\n" + .string "obtain in trades.\p" + .string "POKéMON of higher levels will\n" + .string "be unruly in battle, however.\p" + .string "It also lets you use the move\n" + .string "ROCK SMASH outside of battle.$" + +gUnknown_8191D78:: @ 8191D78 + .string "The SP. ATK and SP. DEF stats of\n" + .string "all your POKéMON rise a little bit.\p" + .string "It also lets you use the move\n" + .string "WATERFALL outside of battle.$" + +gUnknown_8191DF8:: @ 8191DF8 + .string "All POKéMON will obey you!$" + diff --git a/data/maps/CeruleanCity_House2/map.json b/data/maps/CeruleanCity_House2/map.json new file mode 100644 index 000000000..207ca1f40 --- /dev/null +++ b/data/maps/CeruleanCity_House2/map.json @@ -0,0 +1,83 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE2", + "name": "CeruleanCity_House2", + "layout": "LAYOUT_CERULEAN_CITY_HOUSE2", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "56", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_House2_EventScript_16A976", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_House2_EventScript_16A995", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 1 + }, + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 7, + "elevation": 1, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 9 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "CeruleanCity_House2_EventScript_16A99E" + } + ] +} diff --git a/data/maps/CeruleanCity_House2/scripts.inc b/data/maps/CeruleanCity_House2/scripts.inc new file mode 100644 index 000000000..092e7d1a6 --- /dev/null +++ b/data/maps/CeruleanCity_House2/scripts.inc @@ -0,0 +1,24 @@ +CeruleanCity_House2_MapScripts:: @ 816A975 + .byte 0 + +CeruleanCity_House2_EventScript_16A976:: @ 816A976 + lock + faceplayer + checkflag FLAG_0x23F + goto_if_eq EventScript_16A98B + msgbox gUnknown_8191E13 + release + end + +EventScript_16A98B:: @ 816A98B + msgbox gUnknown_8191ED8 + release + end + +CeruleanCity_House2_EventScript_16A995:: @ 816A995 + msgbox gUnknown_8191F2A, 2 + end + +CeruleanCity_House2_EventScript_16A99E:: @ 816A99E + msgbox gUnknown_8191F64, 3 + end diff --git a/data/maps/CeruleanCity_House2/text.inc b/data/maps/CeruleanCity_House2/text.inc new file mode 100644 index 000000000..291a0ee46 --- /dev/null +++ b/data/maps/CeruleanCity_House2/text.inc @@ -0,0 +1,22 @@ +gUnknown_8191E13:: @ 8191E13 + .string "Those miserable ROCKETS!\p" + .string "Look what they've done to my\n" + .string "house!\p" + .string "They stole a TM for teaching\n" + .string "POKéMON how to DIG holes!\p" + .string "I was going to use it on a\n" + .string "MANKEY or a SANDSHREW…\p" + .string "That cost me a bundle, it did!$" + +gUnknown_8191ED8:: @ 8191ED8 + .string "I figure what's lost is lost.\p" + .string "I decided to teach DIGLETT how to\n" + .string "DIG without a TM.$" + +gUnknown_8191F2A:: @ 8191F2A + .string "TEAM ROCKET must be trying to DIG\n" + .string "their way into no good!$" + +gUnknown_8191F64:: @ 8191F64 + .string "TEAM ROCKET left a way out!$" + diff --git a/data/maps/CeruleanCity_House3/map.json b/data/maps/CeruleanCity_House3/map.json new file mode 100644 index 000000000..e74a6a675 --- /dev/null +++ b/data/maps/CeruleanCity_House3/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE3", + "name": "CeruleanCity_House3", + "layout": "LAYOUT_HOUSE1", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_House3_EventScript_16A9B1", + "flag": "0" + }, + { + "graphics_id": "35", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_House3_EventScript_16A9A8", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 2 + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_House3/scripts.inc b/data/maps/CeruleanCity_House3/scripts.inc new file mode 100644 index 000000000..5bcdb0bea --- /dev/null +++ b/data/maps/CeruleanCity_House3/scripts.inc @@ -0,0 +1,44 @@ +CeruleanCity_House3_MapScripts:: @ 816A9A7 + .byte 0 + +CeruleanCity_House3_EventScript_16A9A8:: @ 816A9A8 + msgbox gUnknown_8191F80, 2 + end + +CeruleanCity_House3_EventScript_16A9B1:: @ 816A9B1 + lock + faceplayer + setvar VAR_0x8008, 1 + call EventScript_1A8CAD + checkflag FLAG_0x24A + goto_if_eq EventScript_16AA23 + msgbox gUnknown_81A59FE, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16AA0B + call EventScript_1A8CBD + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_16AA0B + call EventScript_1A8CC9 + compare_var_to_var VAR_RESULT, VAR_0x8009 + goto_if 5, EventScript_16AA15 + call EventScript_1A8CD9 + msgbox gUnknown_81A5A9D + setflag FLAG_0x24A + release + end + +EventScript_16AA0B:: @ 816AA0B + msgbox gUnknown_81A5A4E + release + end + +EventScript_16AA15:: @ 816AA15 + getspeciesname 0, VAR_0x8009 + msgbox gUnknown_81A5A6A + release + end + +EventScript_16AA23:: @ 816AA23 + msgbox gUnknown_81A5AA5 + release + end diff --git a/data/maps/CeruleanCity_House3/text.inc b/data/maps/CeruleanCity_House3/text.inc new file mode 100644 index 000000000..e2859798a --- /dev/null +++ b/data/maps/CeruleanCity_House3/text.inc @@ -0,0 +1,6 @@ +gUnknown_8191F80:: @ 8191F80 + .string "My husband likes trading POKéMON.\p" + .string "You're collecting POKéMON for your\n" + .string "POKéDEX, aren't you?\p" + .string "Would you please trade with him?$" + diff --git a/data/maps/CeruleanCity_House4/map.json b/data/maps/CeruleanCity_House4/map.json new file mode 100644 index 000000000..2fdf6ad1e --- /dev/null +++ b/data/maps/CeruleanCity_House4/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE4", + "name": "CeruleanCity_House4", + "layout": "LAYOUT_HOUSE1", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_House4_EventScript_16ACEF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 12 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_House4/scripts.inc b/data/maps/CeruleanCity_House4/scripts.inc new file mode 100644 index 000000000..bbc762b3f --- /dev/null +++ b/data/maps/CeruleanCity_House4/scripts.inc @@ -0,0 +1,96 @@ +CeruleanCity_House4_MapScripts:: @ 816ACEE + .byte 0 + +CeruleanCity_House4_EventScript_16ACEF:: @ 816ACEF + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + specialvar VAR_0x8004, sub_8146CE8 + copyvar VAR_0x8008, VAR_RESULT + compare_var_to_value VAR_0x8004, 0 + goto_if_eq EventScript_16AD59 + compare_var_to_value VAR_0x8004, 1 + goto_if_eq EventScript_16AD63 + compare_var_to_value VAR_0x8004, 2 + goto_if_eq EventScript_16AD89 + compare_var_to_value VAR_0x8004, 3 + goto_if_eq EventScript_16ADAF + compare_var_to_value VAR_0x8004, 4 + goto_if_eq EventScript_16ADC3 + compare_var_to_value VAR_0x8004, 5 + goto_if_eq EventScript_16ADE9 + compare_var_to_value VAR_0x8004, 6 + goto_if_eq EventScript_16AE0F + end + +EventScript_16AD59:: @ 816AD59 + msgbox gUnknown_8192AF0 + release + end + +EventScript_16AD63:: @ 816AD63 + call EventScript_16AE23 + msgbox gUnknown_8192B43 + giveitem VAR_0x8008 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16AE45 + release + end + +EventScript_16AD89:: @ 816AD89 + call EventScript_16AE23 + msgbox gUnknown_8192C07 + giveitem VAR_0x8008, 4 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16AE45 + release + end + +EventScript_16ADAF:: @ 816ADAF + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_8192CD5 + release + end + +EventScript_16ADC3:: @ 816ADC3 + call EventScript_16AE23 + msgbox gUnknown_8192D4B + giveitem VAR_0x8008 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16AE45 + release + end + +EventScript_16ADE9:: @ 816ADE9 + call EventScript_16AE23 + msgbox gUnknown_8192DE3 + giveitem VAR_0x8008, 4 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16AE45 + release + end + +EventScript_16AE0F:: @ 816AE0F + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_8192EC5 + release + end + +EventScript_16AE23:: @ 816AE23 + playse SE_PIN + applymovement 1, Movement_1A75DB + waitmovement 0 + applymovement 1, Movement_1A75E1 + waitmovement 0 + applymovement 1, Movement_1A75DD + waitmovement 0 + return + +EventScript_16AE45:: @ 816AE45 + msgbox gUnknown_8192F2A + release + end diff --git a/data/maps/CeruleanCity_House4/text.inc b/data/maps/CeruleanCity_House4/text.inc new file mode 100644 index 000000000..7e7e5eb88 --- /dev/null +++ b/data/maps/CeruleanCity_House4/text.inc @@ -0,0 +1,62 @@ +gUnknown_8192AF0:: @ 8192AF0 + .string "Sigh…\n" + .string "Too much time, too little to do…\p" + .string "Is nothing entertaining happening\n" + .string "anywhere?$" + +gUnknown_8192B43:: @ 8192B43 + .string "Ah!\n" + .string "A new news report!\p" + .string "Hmm…\p" + .string "I see!\n" + .string "That was quite informative!\p" + .string "I applaud you for taking interest\n" + .string "in the news at your young age.\p" + .string "As my thanks for sharing the news\n" + .string "with me, I want you to have this.$" + +gUnknown_8192C07:: @ 8192C07 + .string "Oh, oh!\n" + .string "Th-this news report!\p" + .string "Hmm…\p" + .string "Amazing!\n" + .string "What an incredible piece of news!\p" + .string "I haven't seen a news story this\n" + .string "incredible in too long a time!\p" + .string "Thanks for sharing this fantastic\n" + .string "news. Have a bunch of BERRIES!$" + +gUnknown_8192CD5:: @ 8192CD5 + .string "It seems such a shame to not share\n" + .string "this news with other folks…\p" + .string "I wish I could tell someone…\n" + .string "Let others know the news…$" + +gUnknown_8192D4B:: @ 8192D4B + .string "Ah, you've spread the news for me?\p" + .string "Good news becomes worthwhile when\n" + .string "all sorts of people share it.\p" + .string "As my thanks for your spreading\n" + .string "the news, take this!$" + +gUnknown_8192DE3:: @ 8192DE3 + .string "You've spread the news some more?\n" + .string "Magnificent!\p" + .string "That piece of news must be\n" + .string "delighted to be passed around so.\p" + .string "Yes, indeed!\p" + .string "Consider this a show of\n" + .string "appreciation from me and the news.\p" + .string "I'll give you more BERRIES than\n" + .string "I usually do.$" + +gUnknown_8192EC5:: @ 8192EC5 + .string "I'm quite enjoying myself with all\n" + .string "sorts of news.\p" + .string "Yes, I am satisfied!\n" + .string "I won't be bored for a while.$" + +gUnknown_8192F2A:: @ 8192F2A + .string "Hm? Your BERRY POUCH is full.\n" + .string "My gift remains ungiven, then.$" + diff --git a/data/maps/CeruleanCity_House5/map.json b/data/maps/CeruleanCity_House5/map.json new file mode 100644 index 000000000..c96495d4a --- /dev/null +++ b/data/maps/CeruleanCity_House5/map.json @@ -0,0 +1,49 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE5", + "name": "CeruleanCity_House5", + "layout": "LAYOUT_CERULEAN_CITY_HOUSE5", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "33", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_House5_EventScript_16AE50", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 13 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 3, + "y": 1, + "elevation": 0, + "script": "CeruleanCity_House5_EventScript_16B0DA" + } + ] +} diff --git a/data/maps/CeruleanCity_House5/scripts.inc b/data/maps/CeruleanCity_House5/scripts.inc new file mode 100644 index 000000000..d7d3e0222 --- /dev/null +++ b/data/maps/CeruleanCity_House5/scripts.inc @@ -0,0 +1,185 @@ +CeruleanCity_House5_MapScripts:: @ 816AE4F + .byte 0 + +CeruleanCity_House5_EventScript_16AE50:: @ 816AE50 + lock + faceplayer + checkflag FLAG_0x2BB + goto_if_eq EventScript_16AEB7 + msgbox gUnknown_8192F67, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16AEAD + checkflag FLAG_0x847 + goto_if 0, EventScript_16AEA3 + msgbox gUnknown_8193003 + setflag FLAG_0x2BB + giveitem ITEM_POWDER_JAR + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A6BF9 + msgbox gUnknown_8193033 + release + end + +EventScript_16AEA3:: @ 816AEA3 + msgbox gUnknown_819321D + release + end + +EventScript_16AEAD:: @ 816AEAD + msgbox gUnknown_819325E + release + end + +EventScript_16AEB7:: @ 816AEB7 + special sub_815F094 + msgbox gUnknown_81932C5 + goto EventScript_16AEC8 + end + +EventScript_16AEC8:: @ 816AEC8 + message Text_1932F4 + waitmessage + setvar VAR_0x8004, 5 + special sub_80CB7C4 + waitstate + switch VAR_RESULT + case 0, EventScript_16AF6C + case 1, EventScript_16AF80 + case 2, EventScript_16AF94 + case 3, EventScript_16AFA8 + case 4, EventScript_16AFBC + case 5, EventScript_16AFD0 + case 6, EventScript_16AFE4 + case 7, EventScript_16AFF8 + case 8, EventScript_16B00C + case 9, EventScript_16B020 + case 10, EventScript_16B034 + case 11, EventScript_16B048 + case 127, EventScript_16B048 + end + +EventScript_16AF6C:: @ 816AF6C + getitemname 0, ITEM_ENERGY_POWDER + setvar VAR_0x8008, ITEM_ENERGY_POWDER + setvar VAR_0x8009, 50 + goto EventScript_16B055 + end + +EventScript_16AF80:: @ 816AF80 + getitemname 0, ITEM_ENERGY_ROOT + setvar VAR_0x8008, ITEM_ENERGY_ROOT + setvar VAR_0x8009, 80 + goto EventScript_16B055 + end + +EventScript_16AF94:: @ 816AF94 + getitemname 0, ITEM_HEAL_POWDER + setvar VAR_0x8008, ITEM_HEAL_POWDER + setvar VAR_0x8009, 50 + goto EventScript_16B055 + end + +EventScript_16AFA8:: @ 816AFA8 + getitemname 0, ITEM_REVIVAL_HERB + setvar VAR_0x8008, ITEM_REVIVAL_HERB + setvar VAR_0x8009, 300 + goto EventScript_16B055 + end + +EventScript_16AFBC:: @ 816AFBC + getitemname 0, ITEM_PROTEIN + setvar VAR_0x8008, ITEM_PROTEIN + setvar VAR_0x8009, 1000 + goto EventScript_16B055 + end + +EventScript_16AFD0:: @ 816AFD0 + getitemname 0, ITEM_IRON + setvar VAR_0x8008, ITEM_IRON + setvar VAR_0x8009, 1000 + goto EventScript_16B055 + end + +EventScript_16AFE4:: @ 816AFE4 + getitemname 0, ITEM_CARBOS + setvar VAR_0x8008, ITEM_CARBOS + setvar VAR_0x8009, 1000 + goto EventScript_16B055 + end + +EventScript_16AFF8:: @ 816AFF8 + getitemname 0, ITEM_CALCIUM + setvar VAR_0x8008, ITEM_CALCIUM + setvar VAR_0x8009, 1000 + goto EventScript_16B055 + end + +EventScript_16B00C:: @ 816B00C + getitemname 0, ITEM_ZINC + setvar VAR_0x8008, ITEM_ZINC + setvar VAR_0x8009, 1000 + goto EventScript_16B055 + end + +EventScript_16B020:: @ 816B020 + getitemname 0, ITEM_HP_UP + setvar VAR_0x8008, ITEM_HP_UP + setvar VAR_0x8009, 1000 + goto EventScript_16B055 + end + +EventScript_16B034:: @ 816B034 + getitemname 0, ITEM_PP_UP + setvar VAR_0x8008, ITEM_PP_UP + setvar VAR_0x8009, 3000 + goto EventScript_16B055 + end + +EventScript_16B048:: @ 816B048 + msgbox gUnknown_819342F + special sub_815F114 + release + end + +EventScript_16B055:: @ 816B055 + msgbox gUnknown_819331E, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16AEC8 + copyvar VAR_0x8004, VAR_0x8009 + specialvar VAR_RESULT, sub_815EEB0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16B0CC + giveitem VAR_0x8008 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16B0BF + copyvar VAR_0x8004, VAR_0x8009 + special sub_815EF5C + special sub_815F070 + msgbox gUnknown_819337A, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16AEC8 + msgbox gUnknown_81933FB + special sub_815F114 + release + end + +EventScript_16B0BF:: @ 816B0BF + msgbox gUnknown_81A5207 + special sub_815F114 + release + end + +EventScript_16B0CC:: @ 816B0CC + msgbox gUnknown_8193352 + goto EventScript_16AEC8 + end + +CeruleanCity_House5_EventScript_16B0DA:: @ 816B0DA + lockall + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_814EA7C + waitstate + releaseall + end diff --git a/data/maps/CeruleanCity_House5/text.inc b/data/maps/CeruleanCity_House5/text.inc new file mode 100644 index 000000000..2e3add5a1 --- /dev/null +++ b/data/maps/CeruleanCity_House5/text.inc @@ -0,0 +1,70 @@ +gUnknown_8192F67:: @ 8192F67 + .string "I concoct a variety of medicine\n" + .string "from BERRY POWDER.\p" + .string "Using good BERRY POWDER, I can\n" + .string "make any kind of medicine.\p" + .string "Now tell me, have you any interest\n" + .string "in BERRIES?$" + +gUnknown_8193003:: @ 8193003 + .string "Ah, good! For you, then, I have\n" + .string "just the thing.$" + +gUnknown_8193033:: @ 8193033 + .string "There's something new on the second\n" + .string "floor of POKéMON CENTERS, at the\l" + .string "DIRECT CORNER.\p" + .string "They installed a Wireless Adapter\n" + .string "machine for crushing BERRIES.\p" + .string "This is where you come in.\p" + .string "I have a favor to ask, one that\n" + .string "I can entrust only to you.\p" + .string "Could you make BERRY POWDER for\n" + .string "me using that machine?\p" + .string "Don't forget, the machine is at the\n" + .string "DIRECT CORNER of POKéMON CENTERS.\p" + .string "I'll concoct medicine for you if\n" + .string "you bring me some BERRY POWDER.\p" + .string "Don't forget, crush BERRIES into\n" + .string "BERRY POWDER and bring it to me.$" + +gUnknown_819321D:: @ 819321D + .string "Why must you lie to me?\p" + .string "How many BERRIES do you have?\n" + .string "Not a one!$" + +gUnknown_819325E:: @ 819325E + .string "You have no interest in BERRIES?\p" + .string "Young one, it's important to take an\n" + .string "interest in all sorts of things.$" + +gUnknown_81932C5:: @ 81932C5 + .string "Er-hem! Have you brought me some\n" + .string "BERRY POWDER?$" + +Text_1932F4:: @ 81932F4 + .string "With what would you like to \n" + .string "exchange it?$" + +gUnknown_819331E:: @ 819331E + .string "Fine, you'll exchange your BERRY\n" + .string "POWDER for one {STR_VAR_1}?$" + +gUnknown_8193352:: @ 8193352 + .string "Hm? You don't have enough\n" + .string "BERRY POWDER.$" + +gUnknown_819337A:: @ 819337A + .string "This is fine BERRY POWDER indeed.\n" + .string "It will make excellent medicine.\p" + .string "Would you like to trade more BERRY\n" + .string "POWDER for something else?$" + +gUnknown_81933FB:: @ 81933FB + .string "That's fine, then.\n" + .string "I'll hope to see you back again.$" + +gUnknown_819342F:: @ 819342F + .string "Come see me if you'd like to trade\n" + .string "your BERRY POWDER.$" + diff --git a/data/maps/CeruleanCity_Mart/map.json b/data/maps/CeruleanCity_Mart/map.json new file mode 100644 index 000000000..7f3076e12 --- /dev/null +++ b/data/maps/CeruleanCity_Mart/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_CERULEAN_CITY_MART", + "name": "CeruleanCity_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_Mart_EventScript_16ACB0", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 9, + "y": 2, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_Mart_EventScript_16ACA7", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 1, + "y": 7, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_Mart_EventScript_16AC9E", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 6 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 6 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_Mart/scripts.inc b/data/maps/CeruleanCity_Mart/scripts.inc new file mode 100644 index 000000000..6f05c3e80 --- /dev/null +++ b/data/maps/CeruleanCity_Mart/scripts.inc @@ -0,0 +1,38 @@ +CeruleanCity_Mart_MapScripts:: @ 816AC9D + .byte 0 + +CeruleanCity_Mart_EventScript_16AC9E:: @ 816AC9E + msgbox gUnknown_81929C2, 2 + end + +CeruleanCity_Mart_EventScript_16ACA7:: @ 816ACA7 + msgbox gUnknown_8192A79, 2 + end + +CeruleanCity_Mart_EventScript_16ACB0:: @ 816ACB0 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16ACD8 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16ACD8:: @ 816ACD8 + .2byte ITEM_POKE_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_POTION + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_AWAKENING + .2byte ITEM_BURN_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_REPEL + .2byte ITEM_NONE + release + end diff --git a/data/maps/CeruleanCity_Mart/text.inc b/data/maps/CeruleanCity_Mart/text.inc new file mode 100644 index 000000000..e2106bbe5 --- /dev/null +++ b/data/maps/CeruleanCity_Mart/text.inc @@ -0,0 +1,14 @@ +gUnknown_81929C2:: @ 81929C2 + .string "REPEL not only keeps bugs away,\n" + .string "it also works on weak POKéMON.\p" + .string "Put your strongest POKéMON at the\n" + .string "left of the POKéMON LIST.\p" + .string "If your first POKéMON is strong,\n" + .string "REPEL's effect is boosted.$" + +gUnknown_8192A79:: @ 8192A79 + .string "Do you know about RARE CANDY?\n" + .string "They don't sell it in shops.\p" + .string "I think it makes POKéMON grow\n" + .string "very quickly all of a sudden.$" + diff --git a/data/maps/CeruleanCity_PokemonCenter_1F/map.json b/data/maps/CeruleanCity_PokemonCenter_1F/map.json new file mode 100644 index 000000000..16132e565 --- /dev/null +++ b/data/maps/CeruleanCity_PokemonCenter_1F/map.json @@ -0,0 +1,140 @@ +{ + "id": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", + "name": "CeruleanCity_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_1F_EventScript_16AA3C", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_1F_EventScript_16AA45", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_1F_EventScript_16AA4E", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_1F_EventScript_16AA57", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_1F_EventScript_16AA70", + "flag": "0" + }, + { + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_1F_EventScript_1ACE68", + "flag": "157" + }, + { + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_1F_EventScript_1ACE68", + "flag": "157" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 3 + }, + { + "x": 7, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": 3 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_PokemonCenter_1F/scripts.inc b/data/maps/CeruleanCity_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..dcace7aee --- /dev/null +++ b/data/maps/CeruleanCity_PokemonCenter_1F/scripts.inc @@ -0,0 +1,37 @@ +CeruleanCity_PokemonCenter_1F_MapScripts:: @ 816AA2D + map_script 3, CeruleanCity_PokemonCenter_1F_MapScript1_16AA38 + map_script 5, CeruleanCity_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +CeruleanCity_PokemonCenter_1F_MapScript1_16AA38:: @ 816AA38 + setrespawn SPAWN_CERULEAN_CITY + end + +CeruleanCity_PokemonCenter_1F_EventScript_16AA3C:: @ 816AA3C + lock + faceplayer + call EventScript_1A6578 + release + end + +CeruleanCity_PokemonCenter_1F_EventScript_16AA45:: @ 816AA45 + msgbox gUnknown_8192079, 2 + end + +CeruleanCity_PokemonCenter_1F_EventScript_16AA4E:: @ 816AA4E + msgbox gUnknown_8191FFB, 2 + end + +CeruleanCity_PokemonCenter_1F_EventScript_16AA57:: @ 816AA57 + lock + faceplayer + setvar VAR_0x8004, 13 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8192116 + release + end + +CeruleanCity_PokemonCenter_1F_EventScript_16AA70:: @ 816AA70 + msgbox gUnknown_819214C, 2 + end diff --git a/data/maps/CeruleanCity_PokemonCenter_1F/text.inc b/data/maps/CeruleanCity_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..2b60409d2 --- /dev/null +++ b/data/maps/CeruleanCity_PokemonCenter_1F/text.inc @@ -0,0 +1,27 @@ +gUnknown_8191FFB:: @ 8191FFB + .string "That BILL!\p" + .string "I heard that he'll do whatever it\n" + .string "takes to get rare POKéMON.\p" + .string "He's not above doing all sorts\n" + .string "of things, I've heard.$" + +gUnknown_8192079:: @ 8192079 + .string "Have you heard about BILL?\p" + .string "Everyone calls him a POKéMANIAC!\p" + .string "I think people are just jealous of\n" + .string "BILL, though.\p" + .string "Who wouldn't want to boast about\n" + .string "their POKéMON?$" + +gUnknown_8192116:: @ 8192116 + .string "BILL has lots of POKéMON!\n" + .string "He collects rare ones, too!$" + +gUnknown_819214C:: @ 819214C + .string "Why don't you go upstairs and try\n" + .string "trading POKéMON with your friends?\p" + .string "You could get a lot more variety\n" + .string "by trading.\p" + .string "The POKéMON you get in trades grow\n" + .string "quickly, too.$" + diff --git a/data/maps/CeruleanCity_PokemonCenter_2F/map.json b/data/maps/CeruleanCity_PokemonCenter_2F/map.json new file mode 100644 index 000000000..d5460e28f --- /dev/null +++ b/data/maps/CeruleanCity_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_CERULEAN_CITY_POKEMON_CENTER_2F", + "name": "CeruleanCity_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CeruleanCity_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_PokemonCenter_2F/scripts.inc b/data/maps/CeruleanCity_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..3778c494d --- /dev/null +++ b/data/maps/CeruleanCity_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +CeruleanCity_PokemonCenter_2F_MapScripts:: @ 816AA79 + map_script 2, CeruleanCity_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, CeruleanCity_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, CeruleanCity_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, CeruleanCity_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +CeruleanCity_PokemonCenter_2F_EventScript_16AA8E:: @ 816AA8E + call EventScript_1BB4A3 + end + +EventScript_16AA94:: @ 816AA94 + call EventScript_1BB6AB + end + +EventScript_16AA9A:: @ 816AA9A + call EventScript_1BB7DE + end diff --git a/data/maps/CinnabarIsland/map.json b/data/maps/CinnabarIsland/map.json new file mode 100644 index 000000000..4b680f47f --- /dev/null +++ b/data/maps/CinnabarIsland/map.json @@ -0,0 +1,158 @@ +{ + "id": "MAP_CINNABAR_ISLAND", + "name": "CinnabarIsland", + "layout": "LAYOUT_CINNABAR_ISLAND", + "music": "BGM_FRLG_CINNABAR_ISLAND", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE21_SOUTH", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE20", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "28", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_EventScript_1671EF", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 11, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_EventScript_167208", + "flag": "0" + }, + { + "graphics_id": "73", + "x": 20, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "98" + }, + { + "graphics_id": "108", + "x": 23, + "y": 7, + "elevation": 1, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "107" + } + ], + "warp_events": [ + { + "x": 8, + "y": 3, + "elevation": 0, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": 1 + }, + { + "x": 20, + "y": 4, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_GYM", + "dest_warp_id": 1 + }, + { + "x": 8, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 14, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 0 + }, + { + "x": 19, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_MART", + "dest_warp_id": 1 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 20, + "y": 5, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "CinnabarIsland_EventScript_1671CA" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 12, + "y": 3, + "elevation": 0, + "script": "CinnabarIsland_EventScript_167211" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 9, + "elevation": 0, + "script": "CinnabarIsland_EventScript_16721A" + }, + { + "type": "bg_event_type_0", + "x": 22, + "y": 5, + "elevation": 0, + "script": "CinnabarIsland_EventScript_167223" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 9, + "elevation": 0, + "script": "CinnabarIsland_EventScript_16721A" + } + ] +} diff --git a/data/maps/CinnabarIsland/scripts.inc b/data/maps/CinnabarIsland/scripts.inc new file mode 100644 index 000000000..90d564eff --- /dev/null +++ b/data/maps/CinnabarIsland/scripts.inc @@ -0,0 +1,372 @@ +CinnabarIsland_MapScripts:: @ 8166ED6 + map_script 3, CinnabarIsland_MapScript1_166EE1 + map_script 2, CinnabarIsland_MapScript2_166F6E + .byte 0 + +CinnabarIsland_MapScript1_166EE1:: @ 8166EE1 + setworldmapflag FLAG_WORLD_MAP_CINNABAR_ISLAND + call EventScript_166F5E + compare_var_to_value VAR_0x4071, 1 + call_if 1, EventScript_166F24 + compare_var_to_value VAR_0x4071, 3 + call_if 1, EventScript_166F52 + compare_var_to_value VAR_MAP_SCENE_CINNABAR_ISLAND, 1 + call_if 1, EventScript_166F0B + end + +EventScript_166F0B:: @ 8166F0B + savebgm BGM_FRLG_FOLLOW_ME + setflag FLAG_0x002 + setobjectxyperm 3, 15, 12 + setobjectmovementtype 3, 9 + setobjectxyperm 4, 30, 12 + return + +EventScript_166F24:: @ 8166F24 + getplayerxy VAR_0x8004, VAR_0x8005 + compare_var_to_value VAR_0x8004, 18 + goto_if 4, EventScript_166F4A + setflag FLAG_0x002 + setobjectxyperm 3, 18, 12 + setobjectmovementtype 3, 7 + setobjectxyperm 4, 30, 12 + return + +EventScript_166F4A:: @ 8166F4A + setobjectxyperm 4, 30, 8 + return + +EventScript_166F52:: @ 8166F52 + setobjectxyperm 3, 21, 8 + setobjectmovementtype 3, 7 + return + +EventScript_166F5E:: @ 8166F5E + checkflag FLAG_0x1A8 + goto_if_eq EventScript_166F68 + return + +EventScript_166F68:: @ 8166F68 + setvar VAR_0x4001, 1 + return + +CinnabarIsland_MapScript2_166F6E:: @ 8166F6E + map_script_2 VAR_MAP_SCENE_CINNABAR_ISLAND, 1, EventScript_166F88 + map_script_2 VAR_0x4071, 1, EventScript_166FCD + map_script_2 VAR_0x4071, 3, EventScript_166FA0 + .2byte 0 + +EventScript_166F88:: @ 8166F88 + lockall + clearflag FLAG_SPECIAL_FLAG_0x4001 + savebgm MUS_DUMMY + textcolor 0 + setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 2 + delay 20 + call EventScript_1670E6 + releaseall + end + +EventScript_166FA0:: @ 8166FA0 + lockall + textcolor 0 + msgbox gUnknown_8180F09 + closemessage + applymovement 3, Movement_166FC6 + waitmovement 0 + removeobject 3 + setvar VAR_0x4071, 4 + setflag FLAG_0x075 + clearflag FLAG_0x076 + releaseall + end + +Movement_166FC6:: @ 8166FC6 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +EventScript_166FCD:: @ 8166FCD + lockall + textcolor 0 + checkflag FLAG_0x002 + call_if 0, EventScript_167032 + checkflag FLAG_0x002 + call_if 1, EventScript_16703D + playse SE_PIN + applymovement 3, Movement_1A75DB + waitmovement 0 + applymovement 3, Movement_1A75DD + waitmovement 0 + checkflag FLAG_0x002 + call_if 0, EventScript_167048 + checkflag FLAG_0x002 + call_if 1, EventScript_167053 + msgbox gUnknown_8180C90 + msgbox gUnknown_8180CAA, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_167068 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_167078 + end + +EventScript_167032:: @ 8167032 + applymovement 3, Movement_1A75E9 + waitmovement 0 + return + +EventScript_16703D:: @ 816703D + applymovement 3, Movement_1A75E7 + waitmovement 0 + return + +EventScript_167048:: @ 8167048 + applymovement 3, Movement_1671A4 + waitmovement 0 + return + +EventScript_167053:: @ 8167053 + applymovement 3, Movement_1671A6 + waitmovement 0 + applymovement 255, Movement_1A75EB + waitmovement 0 + return + +EventScript_167068:: @ 8167068 + msgbox gUnknown_8180DDD + closemessage + call EventScript_1670E6 + releaseall + end + +EventScript_167078:: @ 8167078 + msgbox gUnknown_8180DF8 + closemessage + checkflag FLAG_0x002 + call_if 0, EventScript_1670A0 + checkflag FLAG_0x002 + call_if 1, EventScript_1670B3 + removeobject 3 + setvar VAR_0x4071, 2 + clearflag FLAG_0x0A2 + releaseall + end + +EventScript_1670A0:: @ 81670A0 + applymovement 3, Movement_1670AB + waitmovement 0 + return + +Movement_1670AB:: @ 81670AB + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +EventScript_1670B3:: @ 81670B3 + applymovement 255, Movement_1670DB + applymovement 3, Movement_1670DE + waitmovement 0 + opendoor 14, 11 + waitdooranim + applymovement 3, Movement_1670E2 + waitmovement 0 + closedoor 14, 11 + waitdooranim + return + +Movement_1670DB:: @ 81670DB + step_12 + step_30 + step_end + +Movement_1670DE:: @ 81670DE + step_1c + step_12 + step_2e + step_end + +Movement_1670E2:: @ 81670E2 + step_11 + step_1a + step_60 + step_end + +EventScript_1670E6:: @ 81670E6 + checkflag FLAG_0x002 + call_if 1, EventScript_167142 + addobject 4 + checkflag FLAG_0x002 + call_if 0, EventScript_167154 + checkflag FLAG_0x002 + call_if 1, EventScript_167166 + msgbox gUnknown_8180EAD + closemessage + checkflag FLAG_0x002 + call_if 0, EventScript_167171 + checkflag FLAG_0x002 + call_if 1, EventScript_167183 + setvar VAR_0x4071, 2 + removeobject 3 + delay 40 + setflag FLAG_0x06B + setvar VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 1 + setvar VAR_0x8004, 8 + setvar VAR_0x8006, 1 + goto EventScript_1A90DA + end + +EventScript_167142:: @ 8167142 + applymovement 3, Movement_1671AF + applymovement 255, Movement_1671AF + waitmovement 0 + return + +EventScript_167154:: @ 8167154 + applymovement 3, Movement_1671AA + applymovement 4, Movement_167195 + waitmovement 0 + return + +EventScript_167166:: @ 8167166 + applymovement 4, Movement_167195 + waitmovement 0 + return + +EventScript_167171:: @ 8167171 + applymovement 3, Movement_16719D + applymovement 255, Movement_1671BA + waitmovement 0 + return + +EventScript_167183:: @ 8167183 + applymovement 3, Movement_1671B6 + applymovement 255, Movement_1671C4 + waitmovement 0 + return + +Movement_167195:: @ 8167195 + step_1c + step_1c + step_1f + step_1f + step_12 + step_left + step_left + step_end + +Movement_16719D:: @ 816719D + step_13 + step_10 + step_10 + step_13 + step_1a + step_60 + step_end + +Movement_1671A4:: @ 81671A4 + step_11 + step_end + +Movement_1671A6:: @ 81671A6 + step_12 + step_12 + step_12 + step_end + +Movement_1671AA:: @ 81671AA + step_1c + step_1c + step_1b + step_30 + step_end + +Movement_1671AF:: @ 81671AF + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_1671B6:: @ 81671B6 + step_13 + step_1a + step_60 + step_end + +Movement_1671BA:: @ 81671BA + step_10 + step_13 + step_10 + step_10 + step_30 + step_1a + step_13 + step_1a + step_60 + step_end + +Movement_1671C4:: @ 81671C4 + step_13 + step_1a + step_13 + step_1a + step_60 + step_end + +CinnabarIsland_EventScript_1671CA:: @ 81671CA + lockall + applymovement 255, Movement_1A75E9 + waitmovement 0 + delay 20 + msgbox gUnknown_8180B20 + closemessage + applymovement 255, Movement_1671ED + waitmovement 0 + releaseall + end + +Movement_1671ED:: @ 81671ED + step_10 + step_end + +CinnabarIsland_EventScript_1671EF:: @ 81671EF + lock + faceplayer + setvar VAR_0x8004, 8 + setvar VAR_0x8005, 3 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8180B34 + release + end + +CinnabarIsland_EventScript_167208:: @ 8167208 + msgbox gUnknown_8180BA0, 2 + end + +CinnabarIsland_EventScript_167211:: @ 8167211 + msgbox gUnknown_8180C0D, 3 + end + +CinnabarIsland_EventScript_16721A:: @ 816721A + msgbox gUnknown_8180C3E, 3 + end + +CinnabarIsland_EventScript_167223:: @ 8167223 + lockall + setvar VAR_0x8004, 8 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8180C4A + releaseall + end diff --git a/data/maps/CinnabarIsland/text.inc b/data/maps/CinnabarIsland/text.inc new file mode 100644 index 000000000..26ce19f09 --- /dev/null +++ b/data/maps/CinnabarIsland/text.inc @@ -0,0 +1,75 @@ +gUnknown_8180B20:: @ 8180B20 + .string "The door is locked…$" + +gUnknown_8180B34:: @ 8180B34 + .string "CINNABAR GYM's BLAINE is quite the\n" + .string "odd fellow.\p" + .string "He's lived on the island since way\n" + .string "before the LAB was built.$" + +gUnknown_8180BA0:: @ 8180BA0 + .string "Scientists conduct experiments \n" + .string "in the burned-out building.\p" + .string "You know, the one they call the\n" + .string "POKéMON MANSION.$" + +gUnknown_8180C0D:: @ 8180C0D + .string "CINNABAR ISLAND\n" + .string "The Fiery Town of Burning Desire$" + +gUnknown_8180C3E:: @ 8180C3E + .string "POKéMON LAB$" + +gUnknown_8180C4A:: @ 8180C4A + .string "CINNABAR ISLAND POKéMON GYM\n" + .string "LEADER: BLAINE\l" + .string "The Hotheaded Quiz Master!$" + +gUnknown_8180C90:: @ 8180C90 + .string "Huh?\n" + .string "Hey, if it isn't {PLAYER}!$" + +gUnknown_8180CAA:: @ 8180CAA + .string "Look, it's me, BILL.\n" + .string "Long time no see!\p" + .string "I hope you're still using my\n" + .string "PC system.\p" + .string "Well, listen, since we met up here,\n" + .string "how about spending time with me?\p" + .string "There's this little island in the far\n" + .string "south called ONE ISLAND.\p" + .string "A friend invited me, so I'm on my\n" + .string "way out there.\p" + .string "How about it?\n" + .string "Do you feel like coming with me?$" + +gUnknown_8180DDD:: @ 8180DDD + .string "All right, then.\n" + .string "Let's go!$" + +gUnknown_8180DF8:: @ 8180DF8 + .string "What, are you too busy?\p" + .string "Well, all right.\n" + .string "The boat hasn't arrived yet anyway.\p" + .string "I'll be waiting at the POKéMON\n" + .string "CENTER over there.\p" + .string "Come see me when you're done with\n" + .string "your business here.$" + +gUnknown_8180EAD:: @ 8180EAD + .string "Looks like my pal's boat arrived,\n" + .string "too.\p" + .string "He sent it specially here to\n" + .string "CINNABAR to pick me up.$" + +gUnknown_8180F09:: @ 8180F09 + .string "Hey, wasn't that a long cruise?\p" + .string "My buddy CELIO seemed to enjoy\n" + .string "your company.\p" + .string "I'm sure he'd welcome you if you\n" + .string "were to visit him again.\p" + .string "If you have a TRI-PASS, you can\n" + .string "always take a ferry there from\l" + .string "VERMILION PORT.\p" + .string "All right, thanks for your company!$" + diff --git a/data/maps/CinnabarIsland_Gym/map.json b/data/maps/CinnabarIsland_Gym/map.json new file mode 100644 index 000000000..c583ac2f9 --- /dev/null +++ b/data/maps/CinnabarIsland_Gym/map.json @@ -0,0 +1,265 @@ +{ + "id": "MAP_CINNABAR_ISLAND_GYM", + "name": "CinnabarIsland_Gym", + "layout": "LAYOUT_CINNABAR_ISLAND_GYM", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "52", + "x": 25, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Gym_EventScript_16DB27", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 25, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Gym_EventScript_16DA7F", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 17, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Gym_EventScript_16DA96", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 16, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Gym_EventScript_16DB53", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 16, + "y": 18, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Gym_EventScript_16DAC2", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 4, + "y": 19, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Gym_EventScript_16DB7F", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 4, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Gym_EventScript_16DAFB", + "flag": "0" + }, + { + "graphics_id": "86", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Gym_EventScript_16D9D4", + "flag": "0" + }, + { + "graphics_id": "91", + "x": 24, + "y": 20, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Gym_EventScript_16DBAB", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 24, + "y": 23, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 1 + }, + { + "x": 25, + "y": 23, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 1 + }, + { + "x": 26, + "y": 23, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 23, + "y": 20, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DBCA" + }, + { + "type": "bg_event_type_0", + "x": 27, + "y": 20, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DBCA" + }, + { + "type": "bg_event_type_1", + "x": 22, + "y": 10, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DBE8" + }, + { + "type": "bg_event_type_1", + "x": 23, + "y": 10, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DBF4" + }, + { + "type": "bg_event_type_1", + "x": 15, + "y": 2, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DCDD" + }, + { + "type": "bg_event_type_1", + "x": 16, + "y": 2, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DCE9" + }, + { + "type": "bg_event_type_1", + "x": 13, + "y": 10, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DDBB" + }, + { + "type": "bg_event_type_1", + "x": 14, + "y": 10, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DDC7" + }, + { + "type": "bg_event_type_1", + "x": 13, + "y": 17, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DE92" + }, + { + "type": "bg_event_type_1", + "x": 14, + "y": 17, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DE9E" + }, + { + "type": "bg_event_type_1", + "x": 1, + "y": 18, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DF69" + }, + { + "type": "bg_event_type_1", + "x": 2, + "y": 18, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16DF75" + }, + { + "type": "bg_event_type_1", + "x": 1, + "y": 10, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16E040" + }, + { + "type": "bg_event_type_1", + "x": 2, + "y": 10, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_16E04C" + }, + { + "type": "bg_event_type_1", + "x": 3, + "y": 1, + "elevation": 0, + "script": "CinnabarIsland_Gym_EventScript_1ACF07" + } + ] +} diff --git a/data/maps/CinnabarIsland_Gym/scripts.inc b/data/maps/CinnabarIsland_Gym/scripts.inc new file mode 100644 index 000000000..87461a536 --- /dev/null +++ b/data/maps/CinnabarIsland_Gym/scripts.inc @@ -0,0 +1,777 @@ +CinnabarIsland_Gym_MapScripts:: @ 816D94B + map_script 1, CinnabarIsland_Gym_MapScript1_16D951 + .byte 0 + +CinnabarIsland_Gym_MapScript1_16D951:: @ 816D951 + checkflag FLAG_0x4B6 + goto_if_eq EventScript_16D991 + checkflag FLAG_0x265 + call_if 1, EventScript_16D9B0 + checkflag FLAG_0x267 + call_if 1, EventScript_16D9B6 + checkflag FLAG_0x268 + call_if 1, EventScript_16D9BC + checkflag FLAG_0x269 + call_if 1, EventScript_16D9C2 + checkflag FLAG_0x26A + call_if 1, EventScript_16D9C8 + checkflag FLAG_0x26B + call_if 1, EventScript_16D9CE + end + +EventScript_16D991:: @ 816D991 + call EventScript_16E117 + call EventScript_16E157 + call EventScript_16E197 + call EventScript_16E1D7 + call EventScript_16E1F3 + call EventScript_16E233 + end + +EventScript_16D9B0:: @ 816D9B0 + call EventScript_16E117 + return + +EventScript_16D9B6:: @ 816D9B6 + call EventScript_16E157 + return + +EventScript_16D9BC:: @ 816D9BC + call EventScript_16E197 + return + +EventScript_16D9C2:: @ 816D9C2 + call EventScript_16E1D7 + return + +EventScript_16D9C8:: @ 816D9C8 + call EventScript_16E1F3 + return + +EventScript_16D9CE:: @ 816D9CE + call EventScript_16E233 + return + +CinnabarIsland_Gym_EventScript_16D9D4:: @ 816D9D4 + setvar VAR_0x8004, 8 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + trainerbattle 1, 419, 0, Text_199543, Text_1995FA, EventScript_16DA06 + checkflag FLAG_0x24E + goto_if 0, EventScript_16DA34 + msgbox gUnknown_819971D + release + end + +EventScript_16DA06:: @ 816DA06 + setvar VAR_0x8004, 8 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + setflag FLAG_0x4B6 + setflag FLAG_UNK826 + setrespawn SPAWN_CINNABAR_ISLAND + setvar VAR_0x4071, 1 + clearflag FLAG_0x062 + setvar VAR_0x8008, 7 + call EventScript_1A6B18 + goto EventScript_16DA34 + end + +EventScript_16DA34:: @ 816DA34 + msgbox gUnknown_819969E + checkitemspace ITEM_TM38, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16DA75 + additem ITEM_TM38, 1 + giveitemfanfaremsg gUnknown_81996FF, ITEM_TM38 + setflag FLAG_0x24E + msgbox gUnknown_8199652 + release + end + +EventScript_16DA75:: @ 816DA75 + msgbox gUnknown_8199789 + release + end + +CinnabarIsland_Gym_EventScript_16DA7F:: @ 816DA7F + trainerbattle 0, 177, 0, Text_1997A5, Text_1997D6 + msgbox gUnknown_81997EA, 6 + end + +CinnabarIsland_Gym_EventScript_16DA96:: @ 816DA96 + trainerbattle 2, 178, 0, Text_1998BD, Text_1998ED, EventScript_16DAB1 + msgbox gUnknown_8199911, 6 + end + +EventScript_16DAB1:: @ 816DAB1 + checkflag FLAG_0x267 + call_if 0, EventScript_16DABC + release + end + +EventScript_16DABC:: @ 816DABC + call EventScript_16DD31 + return + +CinnabarIsland_Gym_EventScript_16DAC2:: @ 816DAC2 + trainerbattle 2, 179, 0, Text_1999B7, Text_1999DB, EventScript_16DAEA + setvar VAR_0x8004, 8 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_81999DF, 6 + end + +EventScript_16DAEA:: @ 816DAEA + checkflag FLAG_0x269 + call_if 0, EventScript_16DAF5 + release + end + +EventScript_16DAF5:: @ 816DAF5 + call EventScript_16DEE6 + return + +CinnabarIsland_Gym_EventScript_16DAFB:: @ 816DAFB + trainerbattle 2, 180, 0, Text_199AFC, Text_199B16, EventScript_16DB16 + msgbox gUnknown_8199B27, 6 + end + +EventScript_16DB16:: @ 816DB16 + checkflag FLAG_0x26B + call_if 0, EventScript_16DB21 + release + end + +EventScript_16DB21:: @ 816DB21 + call EventScript_16E094 + return + +CinnabarIsland_Gym_EventScript_16DB27:: @ 816DB27 + trainerbattle 2, 213, 0, Text_19983F, Text_199870, EventScript_16DB42 + msgbox gUnknown_819987D, 6 + end + +EventScript_16DB42:: @ 816DB42 + checkflag FLAG_0x265 + call_if 0, EventScript_16DB4D + release + end + +EventScript_16DB4D:: @ 816DB4D + call EventScript_16DC58 + return + +CinnabarIsland_Gym_EventScript_16DB53:: @ 816DB53 + trainerbattle 2, 214, 0, Text_199948, Text_199973, EventScript_16DB6E + msgbox gUnknown_8199986, 6 + end + +EventScript_16DB6E:: @ 816DB6E + checkflag FLAG_0x268 + call_if 0, EventScript_16DB79 + release + end + +EventScript_16DB79:: @ 816DB79 + call EventScript_16DE0F + return + +CinnabarIsland_Gym_EventScript_16DB7F:: @ 816DB7F + trainerbattle 2, 215, 0, Text_199A7F, Text_199AB9, EventScript_16DB9A + msgbox gUnknown_8199AC9, 6 + end + +EventScript_16DB9A:: @ 816DB9A + checkflag FLAG_0x26A + call_if 0, EventScript_16DBA5 + release + end + +EventScript_16DBA5:: @ 816DBA5 + call EventScript_16DFBD + return + +CinnabarIsland_Gym_EventScript_16DBAB:: @ 816DBAB + lock + faceplayer + checkflag FLAG_0x4B6 + goto_if_eq EventScript_16DBC0 + msgbox gUnknown_8199B81 + release + end + +EventScript_16DBC0:: @ 816DBC0 + msgbox gUnknown_8199C0C + release + end + +CinnabarIsland_Gym_EventScript_16DBCA:: @ 816DBCA + lockall + checkflag FLAG_UNK826 + goto_if_eq EventScript_16DBDE + msgbox gUnknown_8199C29 + releaseall + end + +EventScript_16DBDE:: @ 816DBDE + msgbox gUnknown_8199C62 + releaseall + end + +CinnabarIsland_Gym_EventScript_16DBE8:: @ 816DBE8 + lockall + setvar VAR_0x4001, 0 + goto EventScript_16DC00 + end + +CinnabarIsland_Gym_EventScript_16DBF4:: @ 816DBF4 + lockall + setvar VAR_0x4001, 1 + goto EventScript_16DC00 + end + +EventScript_16DC00:: @ 816DC00 + msgbox gUnknown_8199C9F + msgbox gUnknown_8199D5A, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16DC43 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16DC6A + end + +EventScript_16DC27:: @ 816DC27 + playfanfare MUS_FANFA1 + waitfanfare + msgbox gUnknown_8199E4F + return + +EventScript_16DC34:: @ 816DC34 + waitse + playse SE_BOO + waitse + msgbox gUnknown_8199E79 + closemessage + return + +EventScript_16DC43:: @ 816DC43 + call EventScript_16DC27 + checkflag FLAG_0x265 + goto_if_eq EventScript_16DC68 + call EventScript_16DC58 + releaseall + end + +EventScript_16DC58:: @ 816DC58 + playse SE_FU_ZAKU2 + waitse + call EventScript_16E117 + special DrawWholeMapView + setflag FLAG_0x265 + return + +EventScript_16DC68:: @ 816DC68 + releaseall + end + +EventScript_16DC6A:: @ 816DC6A + call EventScript_16DC34 + checktrainerflag FLAG_0x0D5 + goto_if 0, EventScript_16DC7A + releaseall + end + +EventScript_16DC7A:: @ 816DC7A + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16DCB4 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16DCC6 + textcolor 0 + msgbox gUnknown_819983F + trainerbattle 3, 213, 0, Text_199870 + checkflag FLAG_0x265 + goto_if_eq EventScript_16DC68 + call EventScript_16DC58 + releaseall + end + +EventScript_16DCB4:: @ 816DCB4 + applymovement 255, Movement_1A75EB + applymovement 1, Movement_16DCD8 + waitmovement 0 + return + +EventScript_16DCC6:: @ 816DCC6 + applymovement 255, Movement_1A75EB + applymovement 1, Movement_16DCDB + waitmovement 0 + return + +Movement_16DCD8:: @ 816DCD8 + step_12 + step_12 + step_end + +Movement_16DCDB:: @ 816DCDB + step_12 + step_end + +CinnabarIsland_Gym_EventScript_16DCDD:: @ 816DCDD + lockall + setvar VAR_0x4001, 0 + goto EventScript_16DCF5 + end + +CinnabarIsland_Gym_EventScript_16DCE9:: @ 816DCE9 + lockall + setvar VAR_0x4001, 1 + goto EventScript_16DCF5 + end + +EventScript_16DCF5:: @ 816DCF5 + msgbox gUnknown_8199C9F + msgbox gUnknown_8199D79, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16DD41 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16DD1C + end + +EventScript_16DD1C:: @ 816DD1C + call EventScript_16DC27 + checkflag FLAG_0x267 + goto_if_eq EventScript_16DC68 + call EventScript_16DD31 + releaseall + end + +EventScript_16DD31:: @ 816DD31 + playse SE_FU_ZAKU2 + waitse + call EventScript_16E157 + special DrawWholeMapView + setflag FLAG_0x267 + return + +EventScript_16DD41:: @ 816DD41 + call EventScript_16DC34 + checktrainerflag FLAG_0x0B2 + goto_if 0, EventScript_16DD51 + releaseall + end + +EventScript_16DD51:: @ 816DD51 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16DD8B + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16DD9D + textcolor 0 + msgbox gUnknown_81998BD + trainerbattle 3, 178, 0, Text_1998ED + checkflag FLAG_0x267 + goto_if_eq EventScript_16DC68 + call EventScript_16DD31 + releaseall + end + +EventScript_16DD8B:: @ 816DD8B + applymovement 255, Movement_16DDB7 + applymovement 3, Movement_16DDAF + waitmovement 0 + return + +EventScript_16DD9D:: @ 816DD9D + applymovement 255, Movement_16DDB7 + applymovement 3, Movement_16DDB3 + waitmovement 0 + return + +Movement_16DDAF:: @ 816DDAF + step_11 + step_11 + step_12 + step_end + +Movement_16DDB3:: @ 816DDB3 + step_11 + step_11 + step_2f + step_end + +Movement_16DDB7:: @ 816DDB7 + step_1c + step_1c + step_30 + step_end + +CinnabarIsland_Gym_EventScript_16DDBB:: @ 816DDBB + lockall + setvar VAR_0x4001, 0 + goto EventScript_16DDD3 + end + +CinnabarIsland_Gym_EventScript_16DDC7:: @ 816DDC7 + lockall + setvar VAR_0x4001, 1 + goto EventScript_16DDD3 + end + +EventScript_16DDD3:: @ 816DDD3 + msgbox gUnknown_8199C9F + msgbox gUnknown_8199DA9, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16DE1F + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16DDFA + end + +EventScript_16DDFA:: @ 816DDFA + call EventScript_16DC27 + checkflag FLAG_0x268 + goto_if_eq EventScript_16DC68 + call EventScript_16DE0F + releaseall + end + +EventScript_16DE0F:: @ 816DE0F + playse SE_FU_ZAKU2 + waitse + call EventScript_16E197 + special DrawWholeMapView + setflag FLAG_0x268 + return + +EventScript_16DE1F:: @ 816DE1F + call EventScript_16DC34 + checktrainerflag FLAG_0x0D6 + goto_if 0, EventScript_16DE2F + releaseall + end + +EventScript_16DE2F:: @ 816DE2F + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16DE69 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16DE7B + textcolor 0 + msgbox gUnknown_8199948 + trainerbattle 3, 214, 0, Text_199973 + checkflag FLAG_0x268 + goto_if_eq EventScript_16DC68 + call EventScript_16DE0F + releaseall + end + +EventScript_16DE69:: @ 816DE69 + applymovement 255, Movement_1A75EB + applymovement 4, Movement_16DE8D + waitmovement 0 + return + +EventScript_16DE7B:: @ 816DE7B + applymovement 255, Movement_1A75EB + applymovement 4, Movement_16DE90 + waitmovement 0 + return + +Movement_16DE8D:: @ 816DE8D + step_12 + step_12 + step_end + +Movement_16DE90:: @ 816DE90 + step_12 + step_end + +CinnabarIsland_Gym_EventScript_16DE92:: @ 816DE92 + lockall + setvar VAR_0x4001, 0 + goto EventScript_16DEAA + end + +CinnabarIsland_Gym_EventScript_16DE9E:: @ 816DE9E + lockall + setvar VAR_0x4001, 1 + goto EventScript_16DEAA + end + +EventScript_16DEAA:: @ 816DEAA + msgbox gUnknown_8199C9F + msgbox gUnknown_8199DC6, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16DEF6 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16DED1 + end + +EventScript_16DED1:: @ 816DED1 + call EventScript_16DC27 + checkflag FLAG_0x269 + goto_if_eq EventScript_16DC68 + call EventScript_16DEE6 + releaseall + end + +EventScript_16DEE6:: @ 816DEE6 + playse SE_FU_ZAKU2 + waitse + call EventScript_16E1D7 + special DrawWholeMapView + setflag FLAG_0x269 + return + +EventScript_16DEF6:: @ 816DEF6 + call EventScript_16DC34 + checktrainerflag FLAG_0x0B3 + goto_if 0, EventScript_16DF06 + releaseall + end + +EventScript_16DF06:: @ 816DF06 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16DF40 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16DF52 + textcolor 0 + msgbox gUnknown_81999B7 + trainerbattle 3, 179, 0, Text_1999DB + checkflag FLAG_0x269 + goto_if_eq EventScript_16DC68 + call EventScript_16DEE6 + releaseall + end + +EventScript_16DF40:: @ 816DF40 + applymovement 255, Movement_1A75EB + applymovement 5, Movement_16DF64 + waitmovement 0 + return + +EventScript_16DF52:: @ 816DF52 + applymovement 255, Movement_1A75EB + applymovement 5, Movement_16DF67 + waitmovement 0 + return + +Movement_16DF64:: @ 816DF64 + step_12 + step_12 + step_end + +Movement_16DF67:: @ 816DF67 + step_12 + step_end + +CinnabarIsland_Gym_EventScript_16DF69:: @ 816DF69 + lockall + setvar VAR_0x4001, 0 + goto EventScript_16DF81 + end + +CinnabarIsland_Gym_EventScript_16DF75:: @ 816DF75 + lockall + setvar VAR_0x4001, 1 + goto EventScript_16DF81 + end + +EventScript_16DF81:: @ 816DF81 + msgbox gUnknown_8199C9F + msgbox gUnknown_8199E00, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16DFA8 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16DFCD + end + +EventScript_16DFA8:: @ 816DFA8 + call EventScript_16DC27 + checkflag FLAG_0x26A + goto_if_eq EventScript_16DC68 + call EventScript_16DFBD + releaseall + end + +EventScript_16DFBD:: @ 816DFBD + playse SE_FU_ZAKU2 + waitse + call EventScript_16E1F3 + special DrawWholeMapView + setflag FLAG_0x26A + return + +EventScript_16DFCD:: @ 816DFCD + call EventScript_16DC34 + checktrainerflag FLAG_0x0D7 + goto_if 0, EventScript_16DFDD + releaseall + end + +EventScript_16DFDD:: @ 816DFDD + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16E017 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16E029 + textcolor 0 + msgbox gUnknown_8199A7F + trainerbattle 3, 215, 0, Text_199AB9 + checkflag FLAG_0x26A + goto_if_eq EventScript_16DC68 + call EventScript_16DFBD + releaseall + end + +EventScript_16E017:: @ 816E017 + applymovement 255, Movement_1A75EB + applymovement 6, Movement_16E03B + waitmovement 0 + return + +EventScript_16E029:: @ 816E029 + applymovement 255, Movement_1A75EB + applymovement 6, Movement_16E03E + waitmovement 0 + return + +Movement_16E03B:: @ 816E03B + step_12 + step_12 + step_end + +Movement_16E03E:: @ 816E03E + step_12 + step_end + +CinnabarIsland_Gym_EventScript_16E040:: @ 816E040 + lockall + setvar VAR_0x4001, 0 + goto EventScript_16E058 + end + +CinnabarIsland_Gym_EventScript_16E04C:: @ 816E04C + lockall + setvar VAR_0x4001, 1 + goto EventScript_16E058 + end + +EventScript_16E058:: @ 816E058 + msgbox gUnknown_8199C9F + msgbox gUnknown_8199E36, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E0A4 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E07F + end + +EventScript_16E07F:: @ 816E07F + call EventScript_16DC27 + checkflag FLAG_0x26B + goto_if_eq EventScript_16DC68 + call EventScript_16E094 + releaseall + end + +EventScript_16E094:: @ 816E094 + playse SE_FU_ZAKU2 + waitse + call EventScript_16E233 + special DrawWholeMapView + setflag FLAG_0x26B + return + +EventScript_16E0A4:: @ 816E0A4 + call EventScript_16DC34 + checktrainerflag FLAG_0x0B4 + goto_if 0, EventScript_16E0B4 + releaseall + end + +EventScript_16E0B4:: @ 816E0B4 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16E0EE + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16E100 + textcolor 0 + msgbox gUnknown_8199AFC + trainerbattle 3, 180, 0, Text_199B16 + checkflag FLAG_0x26B + goto_if_eq EventScript_16DC68 + call EventScript_16E094 + releaseall + end + +EventScript_16E0EE:: @ 816E0EE + applymovement 255, Movement_1A75EB + applymovement 7, Movement_16E112 + waitmovement 0 + return + +EventScript_16E100:: @ 816E100 + applymovement 255, Movement_1A75EB + applymovement 7, Movement_16E115 + waitmovement 0 + return + +Movement_16E112:: @ 816E112 + step_12 + step_12 + step_end + +Movement_16E115:: @ 816E115 + step_12 + step_end + +EventScript_16E117:: @ 816E117 + setmetatile 26, 8, 711, 0 + setmetatile 27, 8, 710, 0 + setmetatile 26, 9, 719, 0 + setmetatile 27, 9, 718, 0 + setmetatile 26, 10, 649, 0 + setmetatile 27, 10, 641, 0 + setmetatile 28, 10, 642, 0 + return + +EventScript_16E157:: @ 816E157 + setmetatile 17, 8, 711, 0 + setmetatile 18, 8, 710, 0 + setmetatile 17, 9, 719, 0 + setmetatile 18, 9, 718, 0 + setmetatile 17, 10, 649, 0 + setmetatile 18, 10, 641, 0 + setmetatile 19, 10, 642, 0 + return + +EventScript_16E197:: @ 816E197 + setmetatile 17, 15, 711, 0 + setmetatile 18, 15, 710, 0 + setmetatile 17, 16, 719, 0 + setmetatile 18, 16, 718, 0 + setmetatile 17, 17, 649, 0 + setmetatile 18, 17, 641, 0 + setmetatile 19, 17, 642, 0 + return + +EventScript_16E1D7:: @ 816E1D7 + setmetatile 11, 21, 721, 1 + setmetatile 11, 22, 649, 0 + setmetatile 11, 23, 641, 0 + return + +EventScript_16E1F3:: @ 816E1F3 + setmetatile 5, 16, 711, 0 + setmetatile 6, 16, 710, 0 + setmetatile 5, 17, 719, 0 + setmetatile 6, 17, 718, 0 + setmetatile 5, 18, 649, 0 + setmetatile 6, 18, 641, 0 + setmetatile 7, 18, 642, 0 + return + +EventScript_16E233:: @ 816E233 + setmetatile 5, 8, 711, 0 + setmetatile 6, 8, 710, 0 + setmetatile 5, 9, 719, 0 + setmetatile 6, 9, 718, 0 + setmetatile 5, 10, 649, 0 + setmetatile 6, 10, 641, 0 + setmetatile 7, 10, 642, 0 + return diff --git a/data/maps/CinnabarIsland_Gym/text.inc b/data/maps/CinnabarIsland_Gym/text.inc new file mode 100644 index 000000000..e5ceccbd4 --- /dev/null +++ b/data/maps/CinnabarIsland_Gym/text.inc @@ -0,0 +1,196 @@ +Text_199543:: @ 8199543 + .string "Hah!\p" + .string "I am BLAINE, the red-hot LEADER\n" + .string "of CINNABAR GYM!\p" + .string "My fiery POKéMON are all rough\n" + .string "and ready with intense heat!\p" + .string "They incinerate all challengers!\p" + .string "Hah!\n" + .string "You better have BURN HEAL!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +Text_1995FA:: @ 81995FA + .string "I have burned down to nothing!\n" + .string "Not even ashes remain!\p" + .string "You have earned the VOLCANOBADGE.$" + +gUnknown_8199652:: @ 8199652 + .string "FIRE BLAST is the ultimate fire\n" + .string "technique.\p" + .string "Don't waste it on WATER POKéMON.$" + +gUnknown_819969E:: @ 819969E + .string "Hah!\p" + .string "The VOLCANOBADGE heightens the\n" + .string "SPECIAL stats of your POKéMON.\p" + .string "Here, you can have this, too!$" + +gUnknown_81996FF:: @ 81996FF + .string "{PLAYER} received TM38\n" + .string "from BLAINE.$" + +gUnknown_819971D:: @ 819971D + .string "TM38 contains FIRE BLAST.\n" + .string "Teach it to FIRE-type POKéMON.\p" + .string "VULPIX or CHARMELEON would be\n" + .string "ideal for that move.$" + +gUnknown_8199789:: @ 8199789 + .string "Make space for this, child!$" + +Text_1997A5:: @ 81997A5 + .string "Do you know how hot POKéMON fire\n" + .string "breath can get?$" + +Text_1997D6:: @ 81997D6 + .string "Yow!\n" + .string "Hot, hot, hot!$" + +gUnknown_81997EA:: @ 81997EA + .string "Fire, or to be more precise,\n" + .string "combustion…\p" + .string "…Oxygen in the air…\n" + .string "Blah, blah, blah, blah…$" + +Text_19983F:: @ 819983F +gUnknown_819983F:: @ 819983F + .string "I was a thief, but I went straight\n" + .string "as a TRAINER.$" + +Text_199870:: @ 8199870 + .string "I surrender!$" + +gUnknown_819987D:: @ 819987D + .string "I get this uncontrollable urge to\n" + .string "steal other people's POKéMON.$" + +Text_1998BD:: @ 81998BD +gUnknown_81998BD:: @ 81998BD + .string "I've studied POKéMON thoroughly.\n" + .string "You can't win!$" + +Text_1998ED:: @ 81998ED + .string "Waah!\n" + .string "My studies were insufficient!$" + +gUnknown_8199911:: @ 8199911 + .string "My theories are too complicated\n" + .string "for you to understand.$" + +Text_199948:: @ 8199948 +gUnknown_8199948:: @ 8199948 + .string "I like using FIRE-type POKéMON.\n" + .string "I just do.$" + +Text_199973:: @ 8199973 + .string "Too hot to handle!$" + +gUnknown_8199986:: @ 8199986 + .string "I wish there were a thief POKéMON.\n" + .string "I'd use that!$" + +Text_1999B7:: @ 81999B7 +gUnknown_81999B7:: @ 81999B7 + .string "I know why BLAINE became a\n" + .string "TRAINER.$" + +Text_1999DB:: @ 81999DB + .string "Ow!$" + +gUnknown_81999DF:: @ 81999DF + .string "Our LEADER, BLAINE, became lost\n" + .string "in the mountains but good.\p" + .string "Night fell when a fiery bird\n" + .string "POKéMON appeared.\p" + .string "Its light allowed BLAINE to find\n" + .string "his way down safely.$" + +Text_199A7F:: @ 8199A7F +gUnknown_8199A7F:: @ 8199A7F + .string "I've been to many GYMS, but this\n" + .string "one best suits my style.$" + +Text_199AB9:: @ 8199AB9 + .string "Yowza!\n" + .string "Too hot!$" + +gUnknown_8199AC9:: @ 8199AC9 + .string "PONYTA, NINETALES…\n" + .string "Those are popular FIRE POKéMON.$" + +Text_199AFC:: @ 8199AFC +gUnknown_8199AFC:: @ 8199AFC + .string "Fire is weak against H2O.$" + +Text_199B16:: @ 8199B16 + .string "Oh!\n" + .string "Snuffed out!$" + +gUnknown_8199B27:: @ 8199B27 + .string "Water beats fire, of course.\p" + .string "But fire melts ice, so the FIRE\n" + .string "type beats ICE-type POKéMON.$" + +gUnknown_8199B81:: @ 8199B81 + .string "Yo!\n" + .string "Champ in the making!\p" + .string "The hotheaded BLAINE is a FIRE\n" + .string "POKéMON pro.\p" + .string "Douse his spirits with water!\p" + .string "You'd better take some\n" + .string "BURN HEALS, too.$" + +gUnknown_8199C0C:: @ 8199C0C + .string "{PLAYER}!\n" + .string "You beat that firebrand!$" + +gUnknown_8199C29:: @ 8199C29 + .string "CINNABAR POKéMON GYM\n" + .string "LEADER: BLAINE\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +gUnknown_8199C62:: @ 8199C62 + .string "CINNABAR POKéMON GYM\n" + .string "LEADER: BLAINE\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + +gUnknown_8199C9F:: @ 8199C9F + .string "POKéMON Quiz!\p" + .string "Get it right, and the door opens to\n" + .string "the next room.\p" + .string "Get it wrong, and face a TRAINER!\p" + .string "If you want to conserve your\n" + .string "POKéMON for the GYM LEADER…\p" + .string "Then get it right!\n" + .string "Here we go!$" + +gUnknown_8199D5A:: @ 8199D5A + .string "CATERPIE evolves into METAPOD?$" + +gUnknown_8199D79:: @ 8199D79 + .string "There are nine certified POKéMON\n" + .string "LEAGUE BADGES?$" + +gUnknown_8199DA9:: @ 8199DA9 + .string "POLIWAG evolves three times?$" + +gUnknown_8199DC6:: @ 8199DC6 + .string "Are electric moves effective\n" + .string "against GROUND-type POKéMON?$" + +gUnknown_8199E00:: @ 8199E00 + .string "POKéMON of the same kind and level\n" + .string "are not identical?$" + +gUnknown_8199E36:: @ 8199E36 + .string "TM28 contains TOMBSTONY?$" + +gUnknown_8199E4F:: @ 8199E4F + .string "You're absolutely correct!\p" + .string "Go on through!$" + +gUnknown_8199E79:: @ 8199E79 + .string "Sorry!\n" + .string "Bad call!$" + diff --git a/data/maps/CinnabarIsland_Mart/map.json b/data/maps/CinnabarIsland_Mart/map.json new file mode 100644 index 000000000..fa0972302 --- /dev/null +++ b/data/maps/CinnabarIsland_Mart/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_CINNABAR_ISLAND_MART", + "name": "CinnabarIsland_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Mart_EventScript_16EA22", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Mart_EventScript_16EA10", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 8, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_Mart_EventScript_16EA19", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 4 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_Mart/scripts.inc b/data/maps/CinnabarIsland_Mart/scripts.inc new file mode 100644 index 000000000..c82034dd0 --- /dev/null +++ b/data/maps/CinnabarIsland_Mart/scripts.inc @@ -0,0 +1,36 @@ +CinnabarIsland_Mart_MapScripts:: @ 816EA0F + .byte 0 + +CinnabarIsland_Mart_EventScript_16EA10:: @ 816EA10 + msgbox gUnknown_819A7A0, 2 + end + +CinnabarIsland_Mart_EventScript_16EA19:: @ 816EA19 + msgbox gUnknown_819A7F1, 2 + end + +CinnabarIsland_Mart_EventScript_16EA22:: @ 816EA22 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16EA48 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16EA48:: @ 816EA48 + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end diff --git a/data/maps/CinnabarIsland_Mart/text.inc b/data/maps/CinnabarIsland_Mart/text.inc new file mode 100644 index 000000000..189baff6a --- /dev/null +++ b/data/maps/CinnabarIsland_Mart/text.inc @@ -0,0 +1,9 @@ +gUnknown_819A7A0:: @ 819A7A0 + .string "Don't they have X ATTACK?\p" + .string "I like it because it raises the\n" + .string "ATTACK stat in battle.$" + +gUnknown_819A7F1:: @ 819A7F1 + .string "It never hurts to have extra items.\n" + .string "You never know what might happen.$" + diff --git a/data/maps/CinnabarIsland_PokemonCenter_1F/map.json b/data/maps/CinnabarIsland_PokemonCenter_1F/map.json new file mode 100644 index 000000000..134d89ac8 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonCenter_1F/map.json @@ -0,0 +1,140 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", + "name": "CinnabarIsland_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_16E8E6", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_16E8F8", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_16E8EF", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_16E901", + "flag": "0" + }, + { + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_1AD0B9", + "flag": "157" + }, + { + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_1AD0B9", + "flag": "157" + }, + { + "graphics_id": "73", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_16E90A", + "flag": "162" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 3 + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 3 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_PokemonCenter_1F/scripts.inc b/data/maps/CinnabarIsland_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..53eb545d6 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonCenter_1F/scripts.inc @@ -0,0 +1,144 @@ +CinnabarIsland_PokemonCenter_1F_MapScripts:: @ 816E8D7 + map_script 3, CinnabarIsland_PokemonCenter_1F_MapScript1_16E8E2 + map_script 5, CinnabarIsland_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +CinnabarIsland_PokemonCenter_1F_MapScript1_16E8E2:: @ 816E8E2 + setrespawn SPAWN_CINNABAR_ISLAND + end + +CinnabarIsland_PokemonCenter_1F_EventScript_16E8E6:: @ 816E8E6 + lock + faceplayer + call EventScript_1A6578 + release + end + +CinnabarIsland_PokemonCenter_1F_EventScript_16E8EF:: @ 816E8EF + msgbox gUnknown_819A5BE, 2 + end + +CinnabarIsland_PokemonCenter_1F_EventScript_16E8F8:: @ 816E8F8 + msgbox gUnknown_819A4F8, 2 + end + +CinnabarIsland_PokemonCenter_1F_EventScript_16E901:: @ 816E901 + msgbox gUnknown_819A6B1, 2 + end + +CinnabarIsland_PokemonCenter_1F_EventScript_16E90A:: @ 816E90A + lock + faceplayer + msgbox gUnknown_819A725, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E9A5 + msgbox gUnknown_819A785 + closemessage + playbgm BGM_FRLG_FOLLOW_ME, 1 + savebgm BGM_FRLG_FOLLOW_ME + setflag FLAG_SPECIAL_FLAG_0x4001 + setflag FLAG_0x0A2 + delay 20 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_16E96F + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_16E981 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_16E993 + removeobject 7 + setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 1 + clearflag FLAG_0x062 + warp MAP_CINNABAR_ISLAND, 255, 14, 11 + waitstate + release + end + +EventScript_16E96F:: @ 816E96F + applymovement 7, Movement_16E9AF + applymovement 255, Movement_16E9B9 + waitmovement 0 + return + +EventScript_16E981:: @ 816E981 + applymovement 7, Movement_16E9C3 + applymovement 255, Movement_16E9CF + waitmovement 0 + return + +EventScript_16E993:: @ 816E993 + applymovement 7, Movement_16E9AF + applymovement 255, Movement_16E9DE + waitmovement 0 + return + +EventScript_16E9A5:: @ 816E9A5 + msgbox gUnknown_819A766 + release + end + +Movement_16E9AF:: @ 816E9AF + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_1b + step_60 + step_end + +Movement_16E9B9:: @ 816E9B9 + step_10 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_1c + step_10 + step_end + +Movement_16E9C3:: @ 816E9C3 + step_11 + step_12 + step_12 + step_10 + step_12 + step_12 + step_10 + step_10 + step_10 + step_1b + step_60 + step_end + +Movement_16E9CF:: @ 816E9CF + step_1c + step_1c + step_1c + step_02 + step_1c + step_12 + step_12 + step_12 + step_10 + step_10 + step_1b + step_10 + step_1b + step_60 + step_end + +Movement_16E9DE:: @ 816E9DE + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_1c + step_10 + step_end diff --git a/data/maps/CinnabarIsland_PokemonCenter_1F/text.inc b/data/maps/CinnabarIsland_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..c88fbbf28 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonCenter_1F/text.inc @@ -0,0 +1,38 @@ +gUnknown_819A4F8:: @ 819A4F8 + .string "I came to visit the CINNABAR GYM,\n" + .string "but the door is locked tight.\p" + .string "There should be a key for it\n" + .string "somewhere.\p" + .string "Could it be in that burned-out\n" + .string "mansion?\p" + .string "The GYM LEADER's friend used to\n" + .string "live there, they say.$" + +gUnknown_819A5BE:: @ 819A5BE + .string "Do you have lots of friends?\p" + .string "Linking up with the usual friends\n" + .string "is fun, of course.\p" + .string "But how about visiting the\n" + .string "UNION ROOM every so often?\p" + .string "Who knows, you may end up making\n" + .string "new friends.\p" + .string "I think it would be worth your time\n" + .string "to check the UNION ROOM.$" + +gUnknown_819A6B1:: @ 819A6B1 + .string "POKéMON can still learn techniques\n" + .string "after canceling evolution.\p" + .string "Evolution can wait until new moves\n" + .string "have been learned.$" + +gUnknown_819A725:: @ 819A725 + .string "BILL: Hey, you kept me waiting!\n" + .string "Ready to set sail to ONE ISLAND?$" + +gUnknown_819A766:: @ 819A766 + .string "Oh, you're still not done yet?$" + +gUnknown_819A785:: @ 819A785 + .string "Well, that's it.\n" + .string "Let's go!$" + diff --git a/data/maps/CinnabarIsland_PokemonCenter_2F/map.json b/data/maps/CinnabarIsland_PokemonCenter_2F/map.json new file mode 100644 index 000000000..181acc569 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F", + "name": "CinnabarIsland_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_PokemonCenter_2F/scripts.inc b/data/maps/CinnabarIsland_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..828f9296a --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +CinnabarIsland_PokemonCenter_2F_MapScripts:: @ 816E9E8 + map_script 2, CinnabarIsland_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, CinnabarIsland_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, CinnabarIsland_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, CinnabarIsland_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +CinnabarIsland_PokemonCenter_2F_EventScript_16E9FD:: @ 816E9FD + call EventScript_1BB4A3 + end + +EventScript_16EA03:: @ 816EA03 + call EventScript_1BB6AB + end + +EventScript_16EA09:: @ 816EA09 + call EventScript_1BB7DE + end diff --git a/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json b/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json new file mode 100644 index 000000000..f1ee3023b --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json @@ -0,0 +1,105 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "name": "CinnabarIsland_PokemonLab_Entrance", + "layout": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "music": "BGM_FRLG_CINNABAR_ISLAND", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_16E28B", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 2 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 2 + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", + "dest_warp_id": 0 + }, + { + "x": 19, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", + "dest_warp_id": 0 + }, + { + "x": 25, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_16E294" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 5, + "elevation": 0, + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_16E29D" + }, + { + "type": "bg_event_type_0", + "x": 18, + "y": 5, + "elevation": 0, + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_16E2A6" + }, + { + "type": "bg_event_type_0", + "x": 24, + "y": 5, + "elevation": 0, + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_16E2AF" + } + ] +} diff --git a/data/maps/CinnabarIsland_PokemonLab_Entrance/scripts.inc b/data/maps/CinnabarIsland_PokemonLab_Entrance/scripts.inc new file mode 100644 index 000000000..5da8c3e89 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Entrance/scripts.inc @@ -0,0 +1,32 @@ +CinnabarIsland_PokemonLab_Entrance_MapScripts:: @ 816E273 + map_script 3, CinnabarIsland_PokemonLab_Entrance_MapScript1_16E279 + .byte 0 + +CinnabarIsland_PokemonLab_Entrance_MapScript1_16E279:: @ 816E279 + compare_var_to_value VAR_0x406A, 1 + call_if 1, EventScript_16E285 + end + +EventScript_16E285:: @ 816E285 + setvar VAR_0x406A, 2 + return + +CinnabarIsland_PokemonLab_Entrance_EventScript_16E28B:: @ 816E28B + msgbox gUnknown_8199EE5, 2 + end + +CinnabarIsland_PokemonLab_Entrance_EventScript_16E294:: @ 816E294 + msgbox gUnknown_8199F41, 3 + end + +CinnabarIsland_PokemonLab_Entrance_EventScript_16E29D:: @ 816E29D + msgbox gUnknown_8199F6A, 3 + end + +CinnabarIsland_PokemonLab_Entrance_EventScript_16E2A6:: @ 816E2A6 + msgbox gUnknown_8199F83, 3 + end + +CinnabarIsland_PokemonLab_Entrance_EventScript_16E2AF:: @ 816E2AF + msgbox gUnknown_8199F9A, 3 + end diff --git a/data/maps/CinnabarIsland_PokemonLab_Entrance/text.inc b/data/maps/CinnabarIsland_PokemonLab_Entrance/text.inc new file mode 100644 index 000000000..a14866bd4 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Entrance/text.inc @@ -0,0 +1,28 @@ +Text_199E8A:: @ 8199E8A + .string "It's a photo of BLAINE and\n" + .string "MR. FUJI.\p" + .string "They're standing shoulder to\n" + .string "shoulder with big grins.$" + +gUnknown_8199EE5:: @ 8199EE5 + .string "We study POKéMON extensively\n" + .string "every day.\p" + .string "People often bring us rare POKéMON\n" + .string "for examination.$" + +gUnknown_8199F41:: @ 8199F41 + .string "A photo of the LAB's founder…\n" + .string "DR. FUJI?!$" + +gUnknown_8199F6A:: @ 8199F6A + .string "POKéMON LAB\n" + .string "Meeting Room$" + +gUnknown_8199F83:: @ 8199F83 + .string "POKéMON LAB\n" + .string "R & D Room$" + +gUnknown_8199F9A:: @ 8199F9A + .string "POKéMON LAB\n" + .string "Testing Room$" + diff --git a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json new file mode 100644 index 000000000..7c7ac1268 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", + "name": "CinnabarIsland_PokemonLab_ExperimentRoom", + "layout": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", + "music": "BGM_FRLG_CINNABAR_ISLAND", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "19", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_16E401", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 12, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_16E47D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/scripts.inc b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/scripts.inc new file mode 100644 index 000000000..3b415bfab --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/scripts.inc @@ -0,0 +1,321 @@ +CinnabarIsland_PokemonLab_ExperimentRoom_MapScripts:: @ 816E400 + .byte 0 + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_16E401:: @ 816E401 + lock + faceplayer + setvar VAR_0x8008, 8 + call EventScript_1A8CAD + checkflag FLAG_0x276 + goto_if_eq EventScript_16E473 + msgbox gUnknown_81A597B, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E45B + call EventScript_1A8CBD + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_16E45B + call EventScript_1A8CC9 + compare_var_to_var VAR_RESULT, VAR_0x8009 + goto_if 5, EventScript_16E465 + call EventScript_1A8CD9 + msgbox gUnknown_81A59DA + setflag FLAG_0x276 + release + end + +EventScript_16E45B:: @ 816E45B + msgbox gUnknown_81A59B6 + release + end + +EventScript_16E465:: @ 816E465 + getspeciesname 0, VAR_0x8009 + msgbox gUnknown_81A59C6 + release + end + +EventScript_16E473:: @ 816E473 + msgbox gUnknown_81A59E7 + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_16E47D:: @ 816E47D + lock + faceplayer + setvar VAR_RESULT, 0 + checkflag FLAG_0x2EE + call_if 1, EventScript_16E8A1 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E897 + compare_var_to_value VAR_0x406A, 2 + goto_if_eq EventScript_16E736 + compare_var_to_value VAR_0x406A, 1 + goto_if_eq EventScript_16E72C + call EventScript_16E4EC + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E544 + call EventScript_16E504 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E586 + call EventScript_16E51C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E5C8 + msgbox gUnknown_819A282 + goto EventScript_16E53A + end + +EventScript_16E4EC:: @ 816E4EC + checkflag FLAG_0x273 + goto_if 0, EventScript_16E534 + checkflag FLAG_0x2ED + goto_if_eq EventScript_16E534 + setvar VAR_RESULT, 1 + return + +EventScript_16E504:: @ 816E504 + checkflag FLAG_0x272 + goto_if 0, EventScript_16E534 + checkflag FLAG_0x2EC + goto_if_eq EventScript_16E534 + setvar VAR_RESULT, 1 + return + +EventScript_16E51C:: @ 816E51C + checkflag FLAG_0x25E + goto_if 0, EventScript_16E534 + checkflag FLAG_0x2EE + goto_if_eq EventScript_16E534 + setvar VAR_RESULT, 1 + return + +EventScript_16E534:: @ 816E534 + setvar VAR_RESULT, 0 + return + +EventScript_16E53A:: @ 816E53A + msgbox gUnknown_819A314 + release + end + +EventScript_16E544:: @ 816E544 + message Text_19A282 + waitmessage + call EventScript_16E51C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E5FA + multichoice 0, 0, 21, 0 + switch VAR_RESULT + case 0, EventScript_16E668 + case 1, EventScript_16E53A + case 127, EventScript_16E53A + end + +EventScript_16E586:: @ 816E586 + message Text_19A282 + waitmessage + call EventScript_16E51C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E631 + multichoice 0, 0, 22, 0 + switch VAR_RESULT + case 0, EventScript_16E6A6 + case 1, EventScript_16E53A + case 127, EventScript_16E53A + end + +EventScript_16E5C8:: @ 816E5C8 + message Text_19A282 + waitmessage + multichoice 0, 0, 23, 0 + switch VAR_RESULT + case 0, EventScript_16E6E4 + case 1, EventScript_16E53A + case 127, EventScript_16E53A + end + +EventScript_16E5FA:: @ 816E5FA + multichoice 0, 0, 24, 0 + switch VAR_RESULT + case 0, EventScript_16E668 + case 1, EventScript_16E6E4 + case 2, EventScript_16E53A + case 127, EventScript_16E53A + end + +EventScript_16E631:: @ 816E631 + multichoice 0, 0, 25, 0 + switch VAR_RESULT + case 0, EventScript_16E6A6 + case 1, EventScript_16E6E4 + case 2, EventScript_16E53A + case 127, EventScript_16E53A + end + +EventScript_16E668:: @ 816E668 + getspeciesname 0, SPECIES_OMANYTE + getitemname 1, ITEM_HELIX_FOSSIL + msgbox gUnknown_819A3D4, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E722 + msgbox gUnknown_819A45D + textcolor 0 + removeitem ITEM_HELIX_FOSSIL, 1 + msgbox gUnknown_819A4AB + setvar VAR_0x406A, 1 + setvar VAR_0x4069, 1 + release + end + +EventScript_16E6A6:: @ 816E6A6 + getspeciesname 0, SPECIES_KABUTO + getitemname 1, ITEM_DOME_FOSSIL + msgbox gUnknown_819A3D4, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E722 + msgbox gUnknown_819A45D + textcolor 0 + removeitem ITEM_DOME_FOSSIL, 1 + msgbox gUnknown_819A4AB + setvar VAR_0x406A, 1 + setvar VAR_0x4069, 2 + release + end + +EventScript_16E6E4:: @ 816E6E4 + getspeciesname 0, SPECIES_AERODACTYL + getitemname 1, ITEM_OLD_AMBER + msgbox gUnknown_819A3D4, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E722 + msgbox gUnknown_819A45D + textcolor 0 + removeitem ITEM_OLD_AMBER, 1 + msgbox gUnknown_819A4AB + setvar VAR_0x406A, 1 + setvar VAR_0x4069, 3 + release + end + +EventScript_16E722:: @ 816E722 + msgbox gUnknown_819A4E1 + release + end + +EventScript_16E72C:: @ 816E72C + msgbox gUnknown_819A4AB + release + end + +EventScript_16E736:: @ 816E736 + compare_var_to_value VAR_0x4069, 1 + goto_if_eq EventScript_16E758 + compare_var_to_value VAR_0x4069, 2 + goto_if_eq EventScript_16E79D + compare_var_to_value VAR_0x4069, 3 + goto_if_eq EventScript_16E7E2 + end + +EventScript_16E758:: @ 816E758 + setvar VAR_0x4001, 138 + getspeciesname 0, SPECIES_OMANYTE + msgbox gUnknown_819A34F + givemon SPECIES_OMANYTE, 5, ITEM_NONE, 0, 0, 0 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A927C + setflag FLAG_0x2ED + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E827 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E85B + end + +EventScript_16E79D:: @ 816E79D + setvar VAR_0x4001, 140 + getspeciesname 0, SPECIES_KABUTO + msgbox gUnknown_819A34F + givemon SPECIES_KABUTO, 5, ITEM_NONE, 0, 0, 0 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A927C + setflag FLAG_0x2EC + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E827 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E85B + end + +EventScript_16E7E2:: @ 816E7E2 + setvar VAR_0x4001, 142 + getspeciesname 0, SPECIES_AERODACTYL + msgbox gUnknown_819A34F + givemon SPECIES_AERODACTYL, 5, ITEM_NONE, 0, 0, 0 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A927C + setflag FLAG_0x2EE + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E827 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16E85B + end + +EventScript_16E827:: @ 816E827 + textcolor 3 + playfanfare MUS_FANFA1 + message Text_19A39E + waitmessage + waitfanfare + setvar VAR_0x406A, 0 + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E895 + call EventScript_1A8C27 + call EventScript_1A74EB + goto EventScript_16E895 + end + +EventScript_16E85B:: @ 816E85B + textcolor 3 + playfanfare MUS_FANFA1 + message Text_19A39E + waitmessage + waitfanfare + setvar VAR_0x406A, 0 + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E88A + call EventScript_1A8C33 + goto EventScript_16E88A + end + +EventScript_16E88A:: @ 816E88A + call EventScript_1A8C3C + goto EventScript_16E895 + end + +EventScript_16E895:: @ 816E895 + release + end + +EventScript_16E897:: @ 816E897 + msgbox gUnknown_819A4E1 + release + end + +EventScript_16E8A1:: @ 816E8A1 + checkflag FLAG_0x273 + goto_if_eq EventScript_16E8B9 + checkflag FLAG_0x272 + goto_if_eq EventScript_16E8C8 + goto EventScript_16E534 + end + +EventScript_16E8B9:: @ 816E8B9 + checkflag FLAG_0x2ED + goto_if 0, EventScript_16E534 + setvar VAR_RESULT, 1 + return + +EventScript_16E8C8:: @ 816E8C8 + checkflag FLAG_0x2EC + goto_if 0, EventScript_16E534 + setvar VAR_RESULT, 1 + return diff --git a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/text.inc b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/text.inc new file mode 100644 index 000000000..dda99e8ea --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/text.inc @@ -0,0 +1,75 @@ +Text_19A137:: @ 819A137 + .string "Tch-tch-tch!\n" + .string "I'll teach you a nifty move.\p" + .string "Teach it to a POKéMON, and watch\n" + .string "the fun unfold!\p" + .string "It's a move called METRONOME.\n" + .string "Does it strike your fancy?$" + +Text_19A1CB:: @ 819A1CB + .string "I tell you, it's a lot of fun!$" + +Text_19A1EA:: @ 819A1EA + .string "Okay!\n" + .string "Which POKéMON should I teach?$" + +Text_19A20E:: @ 819A20E + .string "Tch-tch-tch!\n" + .string "That's the sound of a METRONOME.\p" + .string "It tweaks your POKéMON's brain into\n" + .string "using moves it doesn't even know.$" + +Text_19A282:: @ 819A282 +gUnknown_819A282:: @ 819A282 + .string "Hiya!\p" + .string "I am important doctor.\n" + .string "Yes, very much so, indeed.\p" + .string "Here, I study rare POKéMON fossils.\n" + .string "All the time, I study.\p" + .string "You!\n" + .string "Have you a fossil for me?$" + +gUnknown_819A314:: @ 819A314 + .string "No!\n" + .string "Is too bad!$" + +Text_19A324:: @ 819A324 + .string "ちょっと じかん かかるよ!\p" + .string "そこらへんを すこし\n" + .string "ブラブラ してくると よろしー!$" + +gUnknown_819A34F:: @ 819A34F + .string "You late.\n" + .string "Where were you?\p" + .string "Your fossil is back to life!\n" + .string "It was {STR_VAR_1} like I think!$" + +Text_19A39E:: @ 819A39E + .string "{PLAYER} received the {STR_VAR_1}\n" + .string "from the doctor.$" + +Text_19A3C2:: @ 819A3C2 + .string "ポケモン いっぱいで もてないね!$" + +gUnknown_819A3D4:: @ 819A3D4 + .string "Oh!\n" + .string "That is {STR_VAR_2}, it is!\p" + .string "It is fossil of {STR_VAR_1},\n" + .string "a POKéMON that is already extinct!\p" + .string "My Resurrection Machine will make\n" + .string "that POKéMON live again!$" + +gUnknown_819A45D:: @ 819A45D + .string "So!\n" + .string "You hurry and give me that!\p" + .string "{SIZE}Á{PLAYER} handed over the\n" + .string "{STR_VAR_2} to the weird doctor.$" + +gUnknown_819A4AB:: @ 819A4AB + .string "I take a little time!\n" + .string "You go for walk a little while!$" + +gUnknown_819A4E1:: @ 819A4E1 + .string "Aiyah!\n" + .string "You come again!$" + diff --git a/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json b/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json new file mode 100644 index 000000000..1d9e1aa0e --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", + "name": "CinnabarIsland_PokemonLab_Lounge", + "layout": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", + "music": "BGM_FRLG_CINNABAR_ISLAND", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonLab_Lounge_EventScript_16E2B9", + "flag": "0" + }, + { + "graphics_id": "33", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonLab_Lounge_EventScript_16E2C2", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonLab_Lounge_EventScript_16E33E", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_PokemonLab_Lounge/scripts.inc b/data/maps/CinnabarIsland_PokemonLab_Lounge/scripts.inc new file mode 100644 index 000000000..651fe0c76 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Lounge/scripts.inc @@ -0,0 +1,92 @@ +CinnabarIsland_PokemonLab_Lounge_MapScripts:: @ 816E2B8 + .byte 0 + +CinnabarIsland_PokemonLab_Lounge_EventScript_16E2B9:: @ 816E2B9 + msgbox gUnknown_8199FB3, 2 + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_16E2C2:: @ 816E2C2 + lock + faceplayer + setvar VAR_0x8008, 6 + call EventScript_1A8CAD + checkflag FLAG_0x274 + goto_if_eq EventScript_16E334 + msgbox gUnknown_81A59FE, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E31C + call EventScript_1A8CBD + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_16E31C + call EventScript_1A8CC9 + compare_var_to_var VAR_RESULT, VAR_0x8009 + goto_if 5, EventScript_16E326 + call EventScript_1A8CD9 + msgbox gUnknown_81A5A9D + setflag FLAG_0x274 + release + end + +EventScript_16E31C:: @ 816E31C + msgbox gUnknown_81A5A4E + release + end + +EventScript_16E326:: @ 816E326 + getspeciesname 0, VAR_0x8009 + msgbox gUnknown_81A5A6A + release + end + +EventScript_16E334:: @ 816E334 + msgbox gUnknown_81A5AA5 + release + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_16E33E:: @ 816E33E + lock + faceplayer + setvar VAR_0x8008, 7 + copyvar VAR_0x8004, VAR_0x8008 + specialvar VAR_RESULT, sub_8053A9C + copyvar VAR_0x8009, VAR_RESULT + checkflag FLAG_0x275 + goto_if_eq EventScript_16E3D4 + msgbox gUnknown_81A5AD6, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16E3BC + special sub_80BF8FC + waitstate + copyvar VAR_0x800A, VAR_0x8004 + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_16E3BC + copyvar VAR_0x8005, VAR_0x800A + specialvar VAR_RESULT, sub_8053D2C + copyvar VAR_0x800B, VAR_RESULT + compare_var_to_var VAR_RESULT, VAR_0x8009 + goto_if 5, EventScript_16E3C6 + copyvar VAR_0x8004, VAR_0x8008 + copyvar VAR_0x8005, VAR_0x800A + special sub_8053D68 + special sub_8054440 + waitstate + msgbox gUnknown_81A5B4A + setflag FLAG_0x275 + release + end + +EventScript_16E3BC:: @ 816E3BC + msgbox gUnknown_81A5B08 + release + end + +EventScript_16E3C6:: @ 816E3C6 + getspeciesname 0, VAR_0x8009 + msgbox gUnknown_81A5B18 + release + end + +EventScript_16E3D4:: @ 816E3D4 + msgbox gUnknown_81A5B60 + release + end diff --git a/data/maps/CinnabarIsland_PokemonLab_Lounge/text.inc b/data/maps/CinnabarIsland_PokemonLab_Lounge/text.inc new file mode 100644 index 000000000..24d539c13 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Lounge/text.inc @@ -0,0 +1,6 @@ +gUnknown_8199FB3:: @ 8199FB3 + .string "I found this most remarkable fossil\n" + .string "inside MT. MOON.\p" + .string "I think it's of a rare, prehistoric\n" + .string "POKéMON.$" + diff --git a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json new file mode 100644 index 000000000..83f6135b7 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json @@ -0,0 +1,69 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", + "name": "CinnabarIsland_PokemonLab_ResearchRoom", + "layout": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", + "music": "BGM_FRLG_CINNABAR_ISLAND", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "52", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonLab_ResearchRoom_EventScript_16E3DF", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 10, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "CinnabarIsland_PokemonLab_ResearchRoom_EventScript_16E3E5", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 6, + "y": 1, + "elevation": 0, + "script": "CinnabarIsland_PokemonLab_ResearchRoom_EventScript_16E3F7" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 1, + "elevation": 0, + "script": "CinnabarIsland_PokemonLab_ResearchRoom_EventScript_16E3EE" + } + ] +} diff --git a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/scripts.inc b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/scripts.inc new file mode 100644 index 000000000..e390fd266 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/scripts.inc @@ -0,0 +1,18 @@ +CinnabarIsland_PokemonLab_ResearchRoom_MapScripts:: @ 816E3DE + .byte 0 + +CinnabarIsland_PokemonLab_ResearchRoom_EventScript_16E3DF:: @ 816E3DF + goto EventScript_1C4C8E + end + +CinnabarIsland_PokemonLab_ResearchRoom_EventScript_16E3E5:: @ 816E3E5 + msgbox gUnknown_819A015, 2 + end + +CinnabarIsland_PokemonLab_ResearchRoom_EventScript_16E3EE:: @ 816E3EE + msgbox gUnknown_819A04A, 3 + end + +CinnabarIsland_PokemonLab_ResearchRoom_EventScript_16E3F7:: @ 816E3F7 + msgbox gUnknown_819A128, 3 + end diff --git a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/text.inc b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/text.inc new file mode 100644 index 000000000..e3343e8e3 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/text.inc @@ -0,0 +1,19 @@ +gUnknown_819A015:: @ 819A015 + .string "EEVEE can evolve into one of three\n" + .string "kinds of POKéMON.$" + +gUnknown_819A04A:: @ 819A04A + .string "There's an e-mail message.\p" + .string "… … …\p" + .string "There are three legendary bird\n" + .string "POKéMON.\p" + .string "They are ARTICUNO, ZAPDOS, and\n" + .string "MOLTRES.\p" + .string "Their whereabouts are unknown.\p" + .string "We plan to explore the cavern\n" + .string "close to CERULEAN.\p" + .string "From: POKéMON RESEARCH TEAM…$" + +gUnknown_819A128:: @ 819A128 + .string "An amber pipe!$" + diff --git a/data/maps/DiglettsCave_B1F/map.json b/data/maps/DiglettsCave_B1F/map.json new file mode 100644 index 000000000..202d9fb6a --- /dev/null +++ b/data/maps/DiglettsCave_B1F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_DIGLETTS_CAVE_B1F", + "name": "DiglettsCave_B1F", + "layout": "LAYOUT_DIGLETTS_CAVE_B1F", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_DIGLETTS_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 3, + "y": 3, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 82, + "y": 71, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/DiglettsCave_B1F/scripts.inc b/data/maps/DiglettsCave_B1F/scripts.inc new file mode 100644 index 000000000..28bd063ac --- /dev/null +++ b/data/maps/DiglettsCave_B1F/scripts.inc @@ -0,0 +1,7 @@ +DiglettsCave_B1F_MapScripts:: @ 8160EF1 + map_script 3, DiglettsCave_B1F_MapScript1_160EF7 + .byte 0 + +DiglettsCave_B1F_MapScript1_160EF7:: @ 8160EF7 + setworldmapflag FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F + end diff --git a/data/maps/DiglettsCave_NorthEntrance/map.json b/data/maps/DiglettsCave_NorthEntrance/map.json new file mode 100644 index 000000000..1529d8592 --- /dev/null +++ b/data/maps/DiglettsCave_NorthEntrance/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", + "name": "DiglettsCave_NorthEntrance", + "layout": "LAYOUT_DIGLETTS_CAVE_NORTH_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_DIGLETTS_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "56", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "DiglettsCave_NorthEntrance_EventScript_160EE8", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 4, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_B1F", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/DiglettsCave_NorthEntrance/scripts.inc b/data/maps/DiglettsCave_NorthEntrance/scripts.inc new file mode 100644 index 000000000..890c5183c --- /dev/null +++ b/data/maps/DiglettsCave_NorthEntrance/scripts.inc @@ -0,0 +1,6 @@ +DiglettsCave_NorthEntrance_MapScripts:: @ 8160EE7 + .byte 0 + +DiglettsCave_NorthEntrance_EventScript_160EE8:: @ 8160EE8 + msgbox gUnknown_817462C, 2 + end diff --git a/data/maps/DiglettsCave_NorthEntrance/text.inc b/data/maps/DiglettsCave_NorthEntrance/text.inc new file mode 100644 index 000000000..89dcb5a38 --- /dev/null +++ b/data/maps/DiglettsCave_NorthEntrance/text.inc @@ -0,0 +1,6 @@ +gUnknown_817462C:: @ 817462C + .string "I went inside ROCK TUNNEL, but it's\n" + .string "pitch-black and scary in there.\p" + .string "If I could get a POKéMON to use\n" + .string "FLASH and light it up…$" + diff --git a/data/maps/DiglettsCave_SouthEntrance/map.json b/data/maps/DiglettsCave_SouthEntrance/map.json new file mode 100644 index 000000000..27a17103e --- /dev/null +++ b/data/maps/DiglettsCave_SouthEntrance/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "name": "DiglettsCave_SouthEntrance", + "layout": "LAYOUT_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_DIGLETTS_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "DiglettsCave_SouthEntrance_EventScript_160EFC", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 4, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_B1F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/DiglettsCave_SouthEntrance/scripts.inc b/data/maps/DiglettsCave_SouthEntrance/scripts.inc new file mode 100644 index 000000000..0aab02b7f --- /dev/null +++ b/data/maps/DiglettsCave_SouthEntrance/scripts.inc @@ -0,0 +1,6 @@ +DiglettsCave_SouthEntrance_MapScripts:: @ 8160EFB + .byte 0 + +DiglettsCave_SouthEntrance_EventScript_160EFC:: @ 8160EFC + msgbox gUnknown_81746A7, 2 + end diff --git a/data/maps/DiglettsCave_SouthEntrance/text.inc b/data/maps/DiglettsCave_SouthEntrance/text.inc new file mode 100644 index 000000000..4c97cdc0b --- /dev/null +++ b/data/maps/DiglettsCave_SouthEntrance/text.inc @@ -0,0 +1,6 @@ +gUnknown_81746A7:: @ 81746A7 + .string "Well, isn't this a surprise!\n" + .string "DIGLETT dug this long tunnel!\p" + .string "It goes right to VIRIDIAN CITY,\n" + .string "they tell me.$" + diff --git a/data/maps/FiveIsland/map.json b/data/maps/FiveIsland/map.json new file mode 100644 index 000000000..0a087cd74 --- /dev/null +++ b/data/maps/FiveIsland/map.json @@ -0,0 +1,107 @@ +{ + "id": "MAP_FIVE_ISLAND", + "name": "FiveIsland", + "layout": "LAYOUT_FIVE_ISLAND", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_FIVE_ISLAND_WATER_LABYRINTH", + "offset": -48, + "direction": "up" + }, + { + "map": "MAP_FIVE_ISLAND_MEADOW", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "57", + "x": 8, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_EventScript_167EAA", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 16, + "y": 10, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_EventScript_167EA1", + "flag": "0" + }, + { + "graphics_id": "65375", + "x": 32, + "y": 9, + "elevation": 4, + "movement_type": "0", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 56, + "trainer_sight_or_berry_tree_id": 3, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 12, + "y": 14, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_HARBOR", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 6, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 6, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_HOUSE1", + "dest_warp_id": 0 + }, + { + "x": 22, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_HOUSE2", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 20, + "y": 8, + "elevation": 0, + "script": "FiveIsland_EventScript_167E98" + } + ] +} diff --git a/data/maps/FiveIsland/scripts.inc b/data/maps/FiveIsland/scripts.inc new file mode 100644 index 000000000..916cba8a1 --- /dev/null +++ b/data/maps/FiveIsland/scripts.inc @@ -0,0 +1,19 @@ +FiveIsland_MapScripts:: @ 8167E8E + map_script 3, FiveIsland_MapScript1_167E94 + .byte 0 + +FiveIsland_MapScript1_167E94:: @ 8167E94 + setworldmapflag FLAG_WORLD_MAP_FIVE_ISLAND + end + +FiveIsland_EventScript_167E98:: @ 8167E98 + msgbox gUnknown_8182DFB, 3 + end + +FiveIsland_EventScript_167EA1:: @ 8167EA1 + msgbox gUnknown_8182E26, 2 + end + +FiveIsland_EventScript_167EAA:: @ 8167EAA + msgbox gUnknown_8182E96, 2 + end diff --git a/data/maps/FiveIsland/text.inc b/data/maps/FiveIsland/text.inc new file mode 100644 index 000000000..40c0d7b4e --- /dev/null +++ b/data/maps/FiveIsland/text.inc @@ -0,0 +1,16 @@ +gUnknown_8182DFB:: @ 8182DFB + .string "FIVE ISLAND\n" + .string "Chrono Island: Where Time Goes$" + +gUnknown_8182E26:: @ 8182E26 + .string "Oh, this stinks. I wanted to play in\n" + .string "the MEADOW.\p" + .string "But they put up a weird building\n" + .string "on it, so I can't play there.$" + +gUnknown_8182E96:: @ 8182E96 + .string "It's been getting busier around\n" + .string "these parts lately.\p" + .string "I haven't been catching many good\n" + .string "fish lately, either.$" + diff --git a/data/maps/FiveIsland_Harbor/map.json b/data/maps/FiveIsland_Harbor/map.json new file mode 100644 index 000000000..f99fced10 --- /dev/null +++ b/data/maps/FiveIsland_Harbor/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_FIVE_ISLAND_HARBOR", + "name": "FiveIsland_Harbor", + "layout": "LAYOUT_ISLAND_HARBOR", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "108", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_Harbor_EventScript_171D43", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_Harbor/scripts.inc b/data/maps/FiveIsland_Harbor/scripts.inc new file mode 100644 index 000000000..f5d12f8a4 --- /dev/null +++ b/data/maps/FiveIsland_Harbor/scripts.inc @@ -0,0 +1,11 @@ +FiveIsland_Harbor_MapScripts:: @ 8171D42 + .byte 0 + +FiveIsland_Harbor_EventScript_171D43:: @ 8171D43 + lock + faceplayer + message Text_181726 + waitmessage + setvar VAR_0x8004, 5 + goto EventScript_1A900F + end diff --git a/data/maps/FiveIsland_House1/map.json b/data/maps/FiveIsland_House1/map.json new file mode 100644 index 000000000..817d17cda --- /dev/null +++ b/data/maps/FiveIsland_House1/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FIVE_ISLAND_HOUSE1", + "name": "FiveIsland_House1", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "31", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_House1_EventScript_171D57", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_House1/scripts.inc b/data/maps/FiveIsland_House1/scripts.inc new file mode 100644 index 000000000..4f34587d7 --- /dev/null +++ b/data/maps/FiveIsland_House1/scripts.inc @@ -0,0 +1,6 @@ +FiveIsland_House1_MapScripts:: @ 8171D56 + .byte 0 + +FiveIsland_House1_EventScript_171D57:: @ 8171D57 + msgbox gUnknown_81A3CAC, 2 + end diff --git a/data/maps/FiveIsland_House1/text.inc b/data/maps/FiveIsland_House1/text.inc new file mode 100644 index 000000000..7fa7e5ac1 --- /dev/null +++ b/data/maps/FiveIsland_House1/text.inc @@ -0,0 +1,15 @@ +Text_1A3C71:: @ 81A3C71 + .string "こんばんの おかずは\n" + .string "ようい しなくて いいぞ!\p" + .string "って だんなが\n" + .string "つりに いったん だけど‥\l" + .string "しんじて いいのかねえ$" + +gUnknown_81A3CAC:: @ 81A3CAC + .string "Don't worry about buying anything\n" + .string "for dinner tonight!\p" + .string "…That's what my husband said when\n" + .string "he went off fishing today.\p" + .string "I'm not sure if I can count on him\n" + .string "to live up to that promise.$" + diff --git a/data/maps/FiveIsland_House2/map.json b/data/maps/FiveIsland_House2/map.json new file mode 100644 index 000000000..e9254cf3c --- /dev/null +++ b/data/maps/FiveIsland_House2/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FIVE_ISLAND_HOUSE2", + "name": "FiveIsland_House2", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 2, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_House2_EventScript_171D61", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_House2/scripts.inc b/data/maps/FiveIsland_House2/scripts.inc new file mode 100644 index 000000000..e46909905 --- /dev/null +++ b/data/maps/FiveIsland_House2/scripts.inc @@ -0,0 +1,6 @@ +FiveIsland_House2_MapScripts:: @ 8171D60 + .byte 0 + +FiveIsland_House2_EventScript_171D61:: @ 8171D61 + msgbox gUnknown_81A3D5E, 2 + end diff --git a/data/maps/FiveIsland_House2/text.inc b/data/maps/FiveIsland_House2/text.inc new file mode 100644 index 000000000..bad18b3a3 --- /dev/null +++ b/data/maps/FiveIsland_House2/text.inc @@ -0,0 +1,8 @@ +gUnknown_81A3D5E:: @ 81A3D5E + .string "That MEADOW has belonged to our\n" + .string "family for generations.\p" + .string "I should have had a giant mansion\n" + .string "built on it.\p" + .string "It would be preferable to having\n" + .string "those thugs run wild on it!$" + diff --git a/data/maps/FiveIsland_LostCave_Entrance/map.json b/data/maps/FiveIsland_LostCave_Entrance/map.json new file mode 100644 index 000000000..e34db7ec9 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Entrance/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "name": "FiveIsland_LostCave_Entrance", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", + "dest_warp_id": 0 + }, + { + "x": 5, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Entrance/scripts.inc b/data/maps/FiveIsland_LostCave_Entrance/scripts.inc new file mode 100644 index 000000000..e288ceff6 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Entrance/scripts.inc @@ -0,0 +1,7 @@ +FiveIsland_LostCave_Entrance_MapScripts:: @ 8164BEC + map_script 3, FiveIsland_LostCave_Entrance_MapScript1_164BF2 + .byte 0 + +FiveIsland_LostCave_Entrance_MapScript1_164BF2:: @ 8164BF2 + setworldmapflag FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE + end diff --git a/data/maps/FiveIsland_LostCave_Room1/map.json b/data/maps/FiveIsland_LostCave_Room1/map.json new file mode 100644 index 000000000..80c4a3ee1 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room1/map.json @@ -0,0 +1,69 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "name": "FiveIsland_LostCave_Room1", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM1", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "56", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_LostCave_Room1_EventScript_164BF7", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM2", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room1/scripts.inc b/data/maps/FiveIsland_LostCave_Room1/scripts.inc new file mode 100644 index 000000000..49ab5a14f --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room1/scripts.inc @@ -0,0 +1,7 @@ +FiveIsland_LostCave_Room1_MapScripts:: @ 8164BF6 + .byte 0 + +FiveIsland_LostCave_Room1_EventScript_164BF7:: @ 8164BF7 + trainerbattle 0, 607, 0, Text_17CEF5, Text_17CF42 + msgbox gUnknown_817CF54, 6 + end diff --git a/data/maps/FiveIsland_LostCave_Room1/text.inc b/data/maps/FiveIsland_LostCave_Room1/text.inc new file mode 100644 index 000000000..820a9a10f --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room1/text.inc @@ -0,0 +1,15 @@ +Text_17CEF5:: @ 817CEF5 + .string "Aiyeeeeeh!\p" + .string "I thought this was an ancient ruin.\n" + .string "But it's teeming with ghosts!$" + +Text_17CF42:: @ 817CF42 + .string "Aiyeeeeeh!\n" + .string "Mercy!$" + +gUnknown_817CF54:: @ 817CF54 + .string "I'm trying to get out of here, but\n" + .string "I always end up at the same spot.\p" + .string "Maybe the number of boulders is\n" + .string "a hint…$" + diff --git a/data/maps/FiveIsland_LostCave_Room10/map.json b/data/maps/FiveIsland_LostCave_Room10/map.json new file mode 100644 index 000000000..d155f030a --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room10/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM10", + "name": "FiveIsland_LostCave_Room10", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM10", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "28", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "147" + }, + { + "graphics_id": "92", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_LostCave_Room10_EventScript_1BEDBB", + "flag": "504" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room10/scripts.inc b/data/maps/FiveIsland_LostCave_Room10/scripts.inc new file mode 100644 index 000000000..cd21dbcbd --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room10/scripts.inc @@ -0,0 +1,66 @@ +FiveIsland_LostCave_Room10_MapScripts:: @ 8164C2D + map_script 5, FiveIsland_LostCave_Room10_MapScript1_164C38 + map_script 2, FiveIsland_LostCave_Room10_MapScript2_164C48 + .byte 0 + +FiveIsland_LostCave_Room10_MapScript1_164C38:: @ 8164C38 + checktrainerflag FLAG_0x25E + call_if 1, EventScript_164C42 + end + +EventScript_164C42:: @ 8164C42 + setvar VAR_MAP_SCENE_FIVE_ISLAND_LOST_CAVE_ROOM10, 1 + return + +FiveIsland_LostCave_Room10_MapScript2_164C48:: @ 8164C48 + map_script_2 VAR_MAP_SCENE_FIVE_ISLAND_LOST_CAVE_ROOM10, 0, EventScript_164C52 + .2byte 0 + +EventScript_164C52:: @ 8164C52 + lockall + textcolor 1 + applymovement 1, Movement_164CC0 + waitmovement 0 + delay 100 + applymovement 1, Movement_164CC8 + waitmovement 0 + msgbox gUnknown_817D062 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_164CB6 + trainerbattle 3, 606, 0, Text_17D086 + msgbox gUnknown_817D0B2 + closemessage + call EventScript_164CA5 + warp MAP_FIVE_ISLAND_RESORT_GORGEOUS, 255, 39, 10 + waitstate + releaseall + end + +EventScript_164CA5:: @ 8164CA5 + setflag FLAG_0x093 + clearflag FLAG_0x094 + setvar VAR_MAP_SCENE_FIVE_ISLAND_LOST_CAVE_ROOM10, 1 + setvar VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS, 1 + return + +EventScript_164CB6:: @ 8164CB6 + settrainerflag FLAG_0x25E + call EventScript_164CA5 + releaseall + end + +Movement_164CC0:: @ 8164CC0 + step_12 + step_1c + step_13 + step_1c + step_2e + step_1c + step_2d + step_end + +Movement_164CC8:: @ 8164CC8 + step_10 + step_10 + step_end diff --git a/data/maps/FiveIsland_LostCave_Room10/text.inc b/data/maps/FiveIsland_LostCave_Room10/text.inc new file mode 100644 index 000000000..da92ae5e7 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room10/text.inc @@ -0,0 +1,16 @@ +gUnknown_817D062:: @ 817D062 + .string "W-what do you intend to do with\n" + .string "me?$" + +Text_17D086:: @ 817D086 + .string "Oh… I was afraid that you meant to\n" + .string "harm me.$" + +gUnknown_817D0B2:: @ 817D0B2 + .string "I am so glad that you happened\n" + .string "here.\p" + .string "I grew rather bored of walking,\n" + .string "and I am feeling fatigued.\p" + .string "May I ask you to take me home\n" + .string "from here?$" + diff --git a/data/maps/FiveIsland_LostCave_Room11/map.json b/data/maps/FiveIsland_LostCave_Room11/map.json new file mode 100644 index 000000000..c7e948840 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room11/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM11", + "name": "FiveIsland_LostCave_Room11", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM11", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_LostCave_Room11_EventScript_1BEDC8", + "flag": "505" + } + ], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room11/scripts.inc b/data/maps/FiveIsland_LostCave_Room11/scripts.inc new file mode 100644 index 000000000..abc87678f --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room11/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room11_MapScripts:: @ 8164CCB + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room12/map.json b/data/maps/FiveIsland_LostCave_Room12/map.json new file mode 100644 index 000000000..da0d9ca31 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room12/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM12", + "name": "FiveIsland_LostCave_Room12", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM12", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_LostCave_Room12_EventScript_1BEDD5", + "flag": "506" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room12/scripts.inc b/data/maps/FiveIsland_LostCave_Room12/scripts.inc new file mode 100644 index 000000000..2a8500927 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room12/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room12_MapScripts:: @ 8164CCC + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room13/map.json b/data/maps/FiveIsland_LostCave_Room13/map.json new file mode 100644 index 000000000..cef031273 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room13/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM13", + "name": "FiveIsland_LostCave_Room13", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM13", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_LostCave_Room13_EventScript_1BEDE2", + "flag": "507" + } + ], + "warp_events": [ + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room13/scripts.inc b/data/maps/FiveIsland_LostCave_Room13/scripts.inc new file mode 100644 index 000000000..23ef2d129 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room13/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room13_MapScripts:: @ 8164CCD + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room14/map.json b/data/maps/FiveIsland_LostCave_Room14/map.json new file mode 100644 index 000000000..025120be6 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room14/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM14", + "name": "FiveIsland_LostCave_Room14", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM14", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_LostCave_Room14_EventScript_1BEDEF", + "flag": "508" + } + ], + "warp_events": [ + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room14/scripts.inc b/data/maps/FiveIsland_LostCave_Room14/scripts.inc new file mode 100644 index 000000000..ec2260f6e --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room14/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room14_MapScripts:: @ 8164CCE + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room2/map.json b/data/maps/FiveIsland_LostCave_Room2/map.json new file mode 100644 index 000000000..59da7ae72 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room2/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM2", + "name": "FiveIsland_LostCave_Room2", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM2", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM3", + "dest_warp_id": 2 + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM11", + "dest_warp_id": 0 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room2/scripts.inc b/data/maps/FiveIsland_LostCave_Room2/scripts.inc new file mode 100644 index 000000000..98e4cae7f --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room2/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room2_MapScripts:: @ 8164C0E + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room3/map.json b/data/maps/FiveIsland_LostCave_Room3/map.json new file mode 100644 index 000000000..129c50fe9 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room3/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM3", + "name": "FiveIsland_LostCave_Room3", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM3", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM4", + "dest_warp_id": 0 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room3/scripts.inc b/data/maps/FiveIsland_LostCave_Room3/scripts.inc new file mode 100644 index 000000000..c77557a4a --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room3/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room3_MapScripts:: @ 8164C0F + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room4/map.json b/data/maps/FiveIsland_LostCave_Room4/map.json new file mode 100644 index 000000000..98b31bca3 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room4/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM4", + "name": "FiveIsland_LostCave_Room4", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM4", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "23", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_LostCave_Room4_EventScript_164C11", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM12", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM5", + "dest_warp_id": 0 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room4/scripts.inc b/data/maps/FiveIsland_LostCave_Room4/scripts.inc new file mode 100644 index 000000000..68104231a --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room4/scripts.inc @@ -0,0 +1,7 @@ +FiveIsland_LostCave_Room4_MapScripts:: @ 8164C10 + .byte 0 + +FiveIsland_LostCave_Room4_EventScript_164C11:: @ 8164C11 + trainerbattle 0, 608, 0, Text_17CFC1, Text_17CFFB + msgbox gUnknown_817D037, 6 + end diff --git a/data/maps/FiveIsland_LostCave_Room4/text.inc b/data/maps/FiveIsland_LostCave_Room4/text.inc new file mode 100644 index 000000000..a9a8c0daf --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room4/text.inc @@ -0,0 +1,12 @@ +Text_17CFC1:: @ 817CFC1 + .string "I think there is a mysterious power\n" + .string "at work in this cave.$" + +Text_17CFFB:: @ 817CFFB + .string "If you don't go into the right\n" + .string "tunnel, you won't get ahead.$" + +gUnknown_817D037:: @ 817D037 + .string "Earlier, a lady went into the caves\n" + .string "ahead.$" + diff --git a/data/maps/FiveIsland_LostCave_Room5/map.json b/data/maps/FiveIsland_LostCave_Room5/map.json new file mode 100644 index 000000000..1df784d77 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room5/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM5", + "name": "FiveIsland_LostCave_Room5", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM5", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM6", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room5/scripts.inc b/data/maps/FiveIsland_LostCave_Room5/scripts.inc new file mode 100644 index 000000000..47e9771de --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room5/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room5_MapScripts:: @ 8164C28 + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room6/map.json b/data/maps/FiveIsland_LostCave_Room6/map.json new file mode 100644 index 000000000..5a6be0290 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room6/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM6", + "name": "FiveIsland_LostCave_Room6", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM6", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM13", + "dest_warp_id": 0 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM7", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room6/scripts.inc b/data/maps/FiveIsland_LostCave_Room6/scripts.inc new file mode 100644 index 000000000..1956ee70b --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room6/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room6_MapScripts:: @ 8164C29 + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room7/map.json b/data/maps/FiveIsland_LostCave_Room7/map.json new file mode 100644 index 000000000..b18af46f7 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room7/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM7", + "name": "FiveIsland_LostCave_Room7", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM7", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM8", + "dest_warp_id": 0 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room7/scripts.inc b/data/maps/FiveIsland_LostCave_Room7/scripts.inc new file mode 100644 index 000000000..f8a8afc5f --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room7/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room7_MapScripts:: @ 8164C2A + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room8/map.json b/data/maps/FiveIsland_LostCave_Room8/map.json new file mode 100644 index 000000000..72057fbd1 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room8/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM8", + "name": "FiveIsland_LostCave_Room8", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM8", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM9", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM14", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room8/scripts.inc b/data/maps/FiveIsland_LostCave_Room8/scripts.inc new file mode 100644 index 000000000..89fc85c34 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room8/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room8_MapScripts:: @ 8164C2B + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room9/map.json b/data/maps/FiveIsland_LostCave_Room9/map.json new file mode 100644 index 000000000..54b9d6d2e --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room9/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM9", + "name": "FiveIsland_LostCave_Room9", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM9", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM10", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room9/scripts.inc b/data/maps/FiveIsland_LostCave_Room9/scripts.inc new file mode 100644 index 000000000..771427153 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room9/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room9_MapScripts:: @ 8164C2C + .byte 0 diff --git a/data/maps/FiveIsland_Meadow/map.json b/data/maps/FiveIsland_Meadow/map.json new file mode 100644 index 000000000..cda0c4f2c --- /dev/null +++ b/data/maps/FiveIsland_Meadow/map.json @@ -0,0 +1,138 @@ +{ + "id": "MAP_FIVE_ISLAND_MEADOW", + "name": "FiveIsland_Meadow", + "layout": "LAYOUT_FIVE_ISLAND_MEADOW", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_FIVE_ISLE_MEADOW", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_FIVE_ISLAND", + "offset": 0, + "direction": "left" + }, + { + "map": "MAP_FIVE_ISLAND_MEMORIAL_PILLAR", + "offset": 20, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "50", + "x": 18, + "y": 18, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_Meadow_EventScript_1689BB", + "flag": "136" + }, + { + "graphics_id": "49", + "x": 17, + "y": 5, + "elevation": 3, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "FiveIsland_Meadow_EventScript_16898D", + "flag": "136" + }, + { + "graphics_id": "49", + "x": 11, + "y": 27, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "FiveIsland_Meadow_EventScript_1689A4", + "flag": "136" + }, + { + "graphics_id": "95", + "x": 8, + "y": 9, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_Meadow_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "95", + "x": 19, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_Meadow_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "92", + "x": 12, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_Meadow_EventScript_1BEC69", + "flag": "478" + }, + { + "graphics_id": "92", + "x": 3, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_Meadow_EventScript_1BEC76", + "flag": "479" + } + ], + "warp_events": [ + { + "x": 12, + "y": 21, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_ROCKET_WAREHOUSE", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 12, + "y": 21, + "elevation": 0, + "script": "FiveIsland_Meadow_EventScript_168942" + } + ] +} diff --git a/data/maps/FiveIsland_Meadow/scripts.inc b/data/maps/FiveIsland_Meadow/scripts.inc new file mode 100644 index 000000000..4b3b4d895 --- /dev/null +++ b/data/maps/FiveIsland_Meadow/scripts.inc @@ -0,0 +1,54 @@ +FiveIsland_Meadow_MapScripts:: @ 8168932 + map_script 1, FiveIsland_Meadow_MapScript1_168938 + .byte 0 + +FiveIsland_Meadow_MapScript1_168938:: @ 8168938 + checkflag FLAG_0x2D6 + call_if 1, EventScript_168983 + end + +FiveIsland_Meadow_EventScript_168942:: @ 8168942 + lockall + checkflag FLAG_0x2D6 + goto_if_eq EventScript_168979 + checkflag FLAG_0x2D8 + goto_if_eq EventScript_16895F + msgbox gUnknown_818AB8E + releaseall + end + +EventScript_16895F:: @ 816895F + setflag FLAG_0x2D6 + message Text_18ABF4 + waitmessage + delay 60 + call EventScript_168983 + special DrawWholeMapView + playse SE_PIN + waitse + releaseall + end + +EventScript_168979:: @ 8168979 + msgbox gUnknown_818AC62 + releaseall + end + +EventScript_168983:: @ 8168983 + setmetatile 12, 21, 687, 1 + return + +FiveIsland_Meadow_EventScript_16898D:: @ 816898D + trainerbattle 0, 567, 0, Text_18AC88, Text_18ACB3 + msgbox gUnknown_818ACC5, 6 + end + +FiveIsland_Meadow_EventScript_1689A4:: @ 81689A4 + trainerbattle 0, 568, 0, Text_18ACF0, Text_18AD39 + msgbox gUnknown_818AD59, 6 + end + +FiveIsland_Meadow_EventScript_1689BB:: @ 81689BB + trainerbattle 0, 569, 0, Text_18ADC6, Text_18ADFB + msgbox gUnknown_818AE16, 6 + end diff --git a/data/maps/FiveIsland_Meadow/text.inc b/data/maps/FiveIsland_Meadow/text.inc new file mode 100644 index 000000000..7ffd69619 --- /dev/null +++ b/data/maps/FiveIsland_Meadow/text.inc @@ -0,0 +1,70 @@ +Text_18AAD5:: @ 818AAD5 + .string "This is an excellent environment\n" + .string "for raising POKéMON.$" + +Text_18AB0B:: @ 818AB0B + .string "Your POKéMON are growing up\n" + .string "admirably well!$" + +Text_18AB37:: @ 818AB37 + .string "You know, I think you have the\n" + .string "talent to be a good BREEDER.$" + +Text_18AB73:: @ 818AB73 + .string "とびらを あけるには\n" + .string "パスワードが 2つ いるようだ$" + +gUnknown_818AB8E:: @ 818AB8E + .string "{PLAYER} entered a password.\p" + .string "“GOLDEEN need log.”\p" + .string "… … … … … …\p" + .string "Another password is needed to\n" + .string "open the door…$" + +Text_18ABF4:: @ 818ABF4 + .string "{PLAYER} entered two passwords.\p" + .string "“GOLDEEN need log.”\n" + .string "“Yes, nah, CHANSEY.”\p" + .string "… … … … … …\p" + .string "The WAREHOUSE's door opened!$" + +gUnknown_818AC62:: @ 818AC62 + .string "The WAREHOUSE's door is already\n" + .string "open.$" + +Text_18AC88:: @ 818AC88 + .string "This area's strictly off-limits!\n" + .string "Out, out!$" + +Text_18ACB3:: @ 818ACB3 + .string "Is this for real?$" + +gUnknown_818ACC5:: @ 818ACC5 + .string "You don't have any business here!\n" + .string "Go home!$" + +Text_18ACF0:: @ 818ACF0 + .string "There's nothing past here except\n" + .string "our WAREHOUSE.\p" + .string "So what brings you here?$" + +Text_18AD39:: @ 818AD39 + .string "That wasn't supposed to happen…$" + +gUnknown_818AD59:: @ 818AD59 + .string "You're wanting to know what's inside\n" + .string "this WAREHOUSE?\p" + .string "It's better you didn't know.\n" + .string "For your own sake, I mean.$" + +Text_18ADC6:: @ 818ADC6 + .string "You'd be wasting time even if you\n" + .string "were to get by me.$" + +Text_18ADFB:: @ 818ADFB + .string "Oh, that makes me furious!$" + +gUnknown_818AE16:: @ 818AE16 + .string "You won't be able to get in without\n" + .string "the passwords anyway.$" + diff --git a/data/maps/FiveIsland_MemorialPillar/map.json b/data/maps/FiveIsland_MemorialPillar/map.json new file mode 100644 index 000000000..30418fb84 --- /dev/null +++ b/data/maps/FiveIsland_MemorialPillar/map.json @@ -0,0 +1,135 @@ +{ + "id": "MAP_FIVE_ISLAND_MEMORIAL_PILLAR", + "name": "FiveIsland_MemorialPillar", + "layout": "LAYOUT_FIVE_ISLAND_MEMORIAL_PILLAR", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_MEMORIAL_PILLAR", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_FIVE_ISLAND_MEADOW", + "offset": -20, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "25", + "x": 8, + "y": 44, + "elevation": 4, + "movement_type": "15", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_MemorialPillar_EventScript_1689D3", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 12, + "y": 6, + "elevation": 3, + "movement_type": "21", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "FiveIsland_MemorialPillar_EventScript_1AC317", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 14, + "y": 17, + "elevation": 3, + "movement_type": "19", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "FiveIsland_MemorialPillar_EventScript_1AC355", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 17, + "y": 31, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "FiveIsland_MemorialPillar_EventScript_1AC393", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 4, + "y": 47, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_MemorialPillar_EventScript_1BEC83", + "flag": "480" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 9, + "y": 43, + "elevation": 0, + "script": "FiveIsland_MemorialPillar_EventScript_168A48" + }, + { + "type": "hidden_item", + "x": 8, + "y": 52, + "elevation": 3, + "item": "ITEM_BIG_PEARL", + "flag": "170", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 15, + "y": 7, + "elevation": 3, + "item": "ITEM_RAZZ_BERRY", + "flag": "171", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 17, + "y": 22, + "elevation": 3, + "item": "ITEM_SITRUS_BERRY", + "flag": "172", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 14, + "y": 25, + "elevation": 3, + "item": "ITEM_BLUK_BERRY", + "flag": "173", + "unknown": 1 + } + ] +} diff --git a/data/maps/FiveIsland_MemorialPillar/scripts.inc b/data/maps/FiveIsland_MemorialPillar/scripts.inc new file mode 100644 index 000000000..23b3527f7 --- /dev/null +++ b/data/maps/FiveIsland_MemorialPillar/scripts.inc @@ -0,0 +1,94 @@ +FiveIsland_MemorialPillar_MapScripts:: @ 81689D2 + .byte 0 + +FiveIsland_MemorialPillar_EventScript_1689D3:: @ 81689D3 + lock + checkflag FLAG_0x236 + goto_if_eq EventScript_168A18 + checkflag FLAG_0x2D7 + goto_if_eq EventScript_168A22 + msgbox gUnknown_818B02E + closemessage + applymovement 1, Movement_1A75E1 + waitmovement 0 + delay 45 + msgbox gUnknown_818B03C + applymovement 1, Movement_1A75E9 + waitmovement 0 + msgbox gUnknown_818B05E + release + end + +EventScript_168A18:: @ 8168A18 + msgbox gUnknown_818B2DA + release + end + +EventScript_168A22:: @ 8168A22 + msgbox gUnknown_818B282 + giveitem ITEM_TM42 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_168AFE + call EventScript_168AE8 + release + end + +FiveIsland_MemorialPillar_EventScript_168A48:: @ 8168A48 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lockall + checkflag FLAG_0x236 + goto_if_eq EventScript_168B0B + checkflag FLAG_0x2D7 + goto_if_eq EventScript_168B0B + msgbox gUnknown_818B095 + checkitem ITEM_LEMONADE, 1 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_168A86 + releaseall + end + +EventScript_168A86:: @ 8168A86 + msgbox gUnknown_818B105, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_168A9B + releaseall + end + +EventScript_168A9B:: @ 8168A9B + removeitem ITEM_LEMONADE, 1 + msgbox gUnknown_818B13E + closemessage + applymovement 1, Movement_1A75EB + waitmovement 0 + delay 45 + applymovement 255, Movement_1A75E7 + waitmovement 0 + textcolor 0 + msgbox gUnknown_818B171 + giveitem ITEM_TM42 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_168AFE + call EventScript_168AE8 + releaseall + end + +EventScript_168AE8:: @ 8168AE8 + msgbox gUnknown_818B219 + applymovement 1, Movement_1A75E9 + waitmovement 0 + setflag FLAG_0x236 + return + +EventScript_168AFE:: @ 8168AFE + setflag FLAG_0x2D7 + msgbox gUnknown_818B23E + releaseall + end + +EventScript_168B0B:: @ 8168B0B + msgbox gUnknown_818B2F8 + releaseall + end diff --git a/data/maps/FiveIsland_MemorialPillar/text.inc b/data/maps/FiveIsland_MemorialPillar/text.inc new file mode 100644 index 000000000..051f3fdc1 --- /dev/null +++ b/data/maps/FiveIsland_MemorialPillar/text.inc @@ -0,0 +1,99 @@ +Text_18AE50:: @ 818AE50 + .string "I'm the eldest of the BIRD\n" + .string "BROTHERS.\p" + .string "The best thing about birds…\n" + .string "It has to be the beak.$" + +Text_18AEA8:: @ 818AEA8 + .string "Oh, so sharp!$" + +Text_18AEB6:: @ 818AEB6 + .string "You can fly to FOUR ISLAND from\n" + .string "here.$" + +Text_18AEDC:: @ 818AEDC + .string "I'm the middle kid of the BIRD\n" + .string "BROTHERS.\p" + .string "The best thing about birds…\n" + .string "It has to be the wings.$" + +Text_18AF39:: @ 818AF39 + .string "Flap, flap!$" + +Text_18AF45:: @ 818AF45 + .string "There was a really somber guy\n" + .string "over that way.$" + +Text_18AF72:: @ 818AF72 + .string "I'm the youngest of the BIRD\n" + .string "BROTHERS.\p" + .string "The best thing about birds…\n" + .string "It has to be the down.$" + +Text_18AFCC:: @ 818AFCC + .string "Down is so comfy…\n" + .string "It makes me drowsy…$" + +Text_18AFF2:: @ 818AFF2 + .string "It fills me with happiness when\n" + .string "bird POKéMON beg playfully…$" + +gUnknown_818B02E:: @ 818B02E + .string "Scrub, scrub…$" + +gUnknown_818B03C:: @ 818B03C + .string "Hello…\n" + .string "Your POKéMON look healthy…$" + +gUnknown_818B05E:: @ 818B05E + .string "This is where I buried my ONIX…\n" + .string "It was named TECTONIX…$" + +gUnknown_818B095:: @ 818B095 + .string "“Here lies TECTONIX” is engraved\n" + .string "on a boulder.\p" + .string "There is a LEMONADE placed as an\n" + .string "offering in front of the grave.$" + +gUnknown_818B105:: @ 818B105 + .string "Would you like to leave another\n" + .string "LEMONADE as an offering?$" + +gUnknown_818B13E:: @ 818B13E + .string "{PLAYER} placed a can of LEMONADE\n" + .string "in front of the grave.$" + +gUnknown_818B171:: @ 818B171 + .string "Th-thank you…\p" + .string "That was my TECTONIX's favorite\n" + .string "drink…\p" + .string "I don't even know you, but your\n" + .string "act of kindness…\p" + .string "It's uplifted me a little.\p" + .string "Can you please take this as my\n" + .string "thanks?$" + +gUnknown_818B219:: @ 818B219 + .string "Please be good to your POKéMON,\n" + .string "too.$" + +gUnknown_818B23E:: @ 818B23E + .string "If you don't have room for it,\n" + .string "I'll hold it for you till next time.$" + +gUnknown_818B282:: @ 818B282 + .string "Oh, it's you from that time…\p" + .string "I still have that thing I wanted\n" + .string "you to have as my thanks.$" + +gUnknown_818B2DA:: @ 818B2DA + .string "Scrub, scrub…\p" + .string "… … …\n" + .string "TECTONIX…$" + +gUnknown_818B2F8:: @ 818B2F8 + .string "Boulders and rocks are neatly piled\n" + .string "up as a cairn.\p" + .string "“Here lies TECTONIX” is engraved\n" + .string "on a boulder.$" + diff --git a/data/maps/FiveIsland_PokemonCenter_1F/map.json b/data/maps/FiveIsland_PokemonCenter_1F/map.json new file mode 100644 index 000000000..e0e708bd2 --- /dev/null +++ b/data/maps/FiveIsland_PokemonCenter_1F/map.json @@ -0,0 +1,100 @@ +{ + "id": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", + "name": "FiveIsland_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_PokemonCenter_1F_EventScript_171D00", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_PokemonCenter_1F_EventScript_171D12", + "flag": "0" + }, + { + "graphics_id": "59", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_PokemonCenter_1F_EventScript_171D09", + "flag": "0" + }, + { + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_PokemonCenter_1F_EventScript_1ACF5F", + "flag": "157" + }, + { + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_PokemonCenter_1F_EventScript_1ACF5F", + "flag": "157" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_PokemonCenter_1F/scripts.inc b/data/maps/FiveIsland_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..a16cb37d1 --- /dev/null +++ b/data/maps/FiveIsland_PokemonCenter_1F/scripts.inc @@ -0,0 +1,23 @@ +FiveIsland_PokemonCenter_1F_MapScripts:: @ 8171CF1 + map_script 3, FiveIsland_PokemonCenter_1F_MapScript1_171CFC + map_script 5, FiveIsland_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +FiveIsland_PokemonCenter_1F_MapScript1_171CFC:: @ 8171CFC + setrespawn SPAWN_FIVE_ISLAND + end + +FiveIsland_PokemonCenter_1F_EventScript_171D00:: @ 8171D00 + lock + faceplayer + call EventScript_1A6578 + release + end + +FiveIsland_PokemonCenter_1F_EventScript_171D09:: @ 8171D09 + msgbox gUnknown_81A3BBA, 2 + end + +FiveIsland_PokemonCenter_1F_EventScript_171D12:: @ 8171D12 + msgbox gUnknown_81A3BFD, 2 + end diff --git a/data/maps/FiveIsland_PokemonCenter_1F/text.inc b/data/maps/FiveIsland_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..e1b0e1ea4 --- /dev/null +++ b/data/maps/FiveIsland_PokemonCenter_1F/text.inc @@ -0,0 +1,10 @@ +gUnknown_81A3BBA:: @ 81A3BBA + .string "I'm on my way to prepare a meal\n" + .string "for a certain high-society person.$" + +gUnknown_81A3BFD:: @ 81A3BFD + .string "You're on a quest to catch every\n" + .string "single kind of POKéMON?\p" + .string "…How incredible. Please tell me if\n" + .string "you catch a strong one!$" + diff --git a/data/maps/FiveIsland_PokemonCenter_2F/map.json b/data/maps/FiveIsland_PokemonCenter_2F/map.json new file mode 100644 index 000000000..e6b4d237b --- /dev/null +++ b/data/maps/FiveIsland_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_FIVE_ISLAND_POKEMON_CENTER_2F", + "name": "FiveIsland_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_PokemonCenter_2F/scripts.inc b/data/maps/FiveIsland_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..5c50a6092 --- /dev/null +++ b/data/maps/FiveIsland_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +FiveIsland_PokemonCenter_2F_MapScripts:: @ 8171D1B + map_script 2, FiveIsland_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, FiveIsland_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, FiveIsland_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, FiveIsland_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +FiveIsland_PokemonCenter_2F_EventScript_171D30:: @ 8171D30 + call EventScript_1BB4A3 + end + +EventScript_171D36:: @ 8171D36 + call EventScript_1BB6AB + end + +EventScript_171D3C:: @ 8171D3C + call EventScript_1BB7DE + end diff --git a/data/maps/FiveIsland_ResortGorgeous/map.json b/data/maps/FiveIsland_ResortGorgeous/map.json new file mode 100644 index 000000000..dc53baf54 --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous/map.json @@ -0,0 +1,189 @@ +{ + "id": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", + "name": "FiveIsland_ResortGorgeous", + "layout": "LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_RESORT_GORGEOUS", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_FIVE_ISLAND_WATER_LABYRINTH", + "offset": -48, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "22", + "x": 44, + "y": 10, + "elevation": 3, + "movement_type": "18", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "FiveIsland_ResortGorgeous_EventScript_1AC127", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 33, + "y": 12, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "FiveIsland_ResortGorgeous_EventScript_1AC165", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 12, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_ResortGorgeous_EventScript_1AC1A3", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 23, + "y": 9, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_ResortGorgeous_EventScript_1AC1E1", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 33, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_ResortGorgeous_EventScript_1AC21F", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 33, + "y": 3, + "elevation": 3, + "movement_type": "46", + "movement_range_x": 10, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_ResortGorgeous_EventScript_1AC25D", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 56, + "y": 7, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_ResortGorgeous_EventScript_1AC29B", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 39, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "148" + } + ], + "warp_events": [ + { + "x": 64, + "y": 13, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 39, + "y": 8, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 10, + "y": 7, + "elevation": 3, + "item": "ITEM_NEST_BALL", + "flag": "174", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 27, + "y": 11, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "175", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 40, + "y": 12, + "elevation": 3, + "item": "ITEM_STAR_PIECE", + "flag": "176", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 27, + "y": 5, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "177", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 42, + "y": 9, + "elevation": 0, + "script": "FiveIsland_ResortGorgeous_EventScript_168844" + } + ] +} diff --git a/data/maps/FiveIsland_ResortGorgeous/scripts.inc b/data/maps/FiveIsland_ResortGorgeous/scripts.inc new file mode 100644 index 000000000..a37695954 --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous/scripts.inc @@ -0,0 +1,44 @@ +FiveIsland_ResortGorgeous_MapScripts:: @ 81687E4 + map_script 4, FiveIsland_ResortGorgeous_MapScript1_1687EF + map_script 2, FiveIsland_ResortGorgeous_MapScript2_1687FE + .byte 0 + +FiveIsland_ResortGorgeous_MapScript1_1687EF:: @ 81687EF + map_script_2 VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS, 1, EventScript_1687F9 + .2byte 0 + +EventScript_1687F9:: @ 81687F9 + turnobject 255, 2 + end + +FiveIsland_ResortGorgeous_MapScript2_1687FE:: @ 81687FE + map_script_2 VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS, 1, EventScript_168808 + .2byte 0 + +EventScript_168808:: @ 8168808 + lockall + textcolor 1 + msgbox gUnknown_818A7DB + closemessage + applymovement 8, Movement_1A75E9 + waitmovement 0 + opendoor 39, 8 + waitdooranim + applymovement 8, Movement_168841 + waitmovement 0 + closedoor 39, 8 + waitdooranim + removeobject 8 + clearflag FLAG_0x095 + setvar VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS, 2 + releaseall + end + +Movement_168841:: @ 8168841 + step_11 + step_60 + step_end + +FiveIsland_ResortGorgeous_EventScript_168844:: @ 8168844 + msgbox gUnknown_818A7FE, 3 + end diff --git a/data/maps/FiveIsland_ResortGorgeous/text.inc b/data/maps/FiveIsland_ResortGorgeous/text.inc new file mode 100644 index 000000000..d984ab092 --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous/text.inc @@ -0,0 +1,93 @@ +Text_18A3E2:: @ 818A3E2 + .string "With these hands, I will create\n" + .string "my victory!$" + +Text_18A40E:: @ 818A40E + .string "The shame of this…\n" + .string "I'm red-faced…$" + +Text_18A430:: @ 818A430 + .string "Uh-oh, my paint tubes have\n" + .string "scattered everywhere!$" + +Text_18A461:: @ 818A461 + .string "Excuse me!\n" + .string "I'm trying to paint.\l" + .string "Please keep out of my sight!$" + +Text_18A49E:: @ 818A49E + .string "This loss…\n" + .string "I feel like I'm whiting out…$" + +Text_18A4C6:: @ 818A4C6 + .string "GILLIAN?\n" + .string "Please tilt your head slightly…\l" + .string "There! That's the look I want!$" + +Text_18A50E:: @ 818A50E + .string "Hmm…\n" + .string "The angle, it is not quite there…$" + +Text_18A535:: @ 818A535 + .string "Oh…\n" + .string "My feelings, they are blue…$" + +Text_18A555:: @ 818A555 + .string "The sky and the sea…\n" + .string "They are so fickle.\p" + .string "Their changing expressions make\n" + .string "them difficult to capture.$" + +Text_18A5B9:: @ 818A5B9 + .string "I am visiting my friend's retreat,\n" + .string "if you must know.$" + +Text_18A5EE:: @ 818A5EE + .string "Oh, my, so strong.$" + +Text_18A601:: @ 818A601 + .string "I find it pleasurable to leisurely\n" + .string "battle in the gentle sea breeze.$" + +Text_18A645:: @ 818A645 + .string "I'm thinking of having a pool\n" + .string "made specially for POKéMON.$" + +Text_18A67F:: @ 818A67F + .string "Oh, my goodness gracious!$" + +Text_18A699:: @ 818A699 + .string "A pool would be nice, but I must\n" + .string "say, a sun-room may be sublime.$" + +Text_18A6DA:: @ 818A6DA + .string "I'm a good runner.\n" + .string "I'm really fast!$" + +Text_18A6FE:: @ 818A6FE + .string "Oops!\n" + .string "I rushed things!$" + +Text_18A715:: @ 818A715 + .string "When I run with the wind, it feels\n" + .string "like I could fly!$" + +Text_18A74A:: @ 818A74A + .string "I say, this marine life here at\n" + .string "this resort agrees with me.$" + +Text_18A786:: @ 818A786 + .string "That's a shocker!\n" + .string "You must be joking.$" + +Text_18A7AC:: @ 818A7AC + .string "Getting so serious over this…\n" + .string "How nonsensical.$" + +gUnknown_818A7DB:: @ 818A7DB + .string "SELPHY: Thank you.\p" + .string "You may go now.$" + +gUnknown_818A7FE:: @ 818A7FE + .string "SELPHY'S HOUSE$" + diff --git a/data/maps/FiveIsland_ResortGorgeous_House/map.json b/data/maps/FiveIsland_ResortGorgeous_House/map.json new file mode 100644 index 000000000..f960fe89d --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous_House/map.json @@ -0,0 +1,69 @@ +{ + "id": "MAP_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", + "name": "FiveIsland_ResortGorgeous_House", + "layout": "LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_RESORT_GORGEOUS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "28", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_ResortGorgeous_House_EventScript_171EBE", + "flag": "149" + }, + { + "graphics_id": "61", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_ResortGorgeous_House_EventScript_172062", + "flag": "150" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 9, + "y": 1, + "elevation": 0, + "script": "FiveIsland_ResortGorgeous_House_EventScript_1ACF2C" + }, + { + "type": "bg_event_type_1", + "x": 8, + "y": 1, + "elevation": 0, + "script": "FiveIsland_ResortGorgeous_House_EventScript_1ACF2C" + } + ] +} diff --git a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc new file mode 100644 index 000000000..a4dc96f91 --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc @@ -0,0 +1,149 @@ +FiveIsland_ResortGorgeous_House_MapScripts:: @ 8171EBD + .byte 0 + +FiveIsland_ResortGorgeous_House_EventScript_171EBE:: @ 8171EBE + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + checkflag FLAG_0x002 + goto_if_eq EventScript_172043 + compare_var_to_value VAR_STORAGE_UNKNOWN, 65535 + goto_if_eq EventScript_171F0B + compare_var_to_value VAR_STORAGE_UNKNOWN, 0 + goto_if 5, EventScript_171F19 + msgbox gUnknown_81A42A0 + goto EventScript_171EFE + end + +EventScript_171EFE:: @ 8171EFE + special sub_80CB0A8 + msgbox gUnknown_81A4315 + release + end + +EventScript_171F0B:: @ 8171F0B + msgbox gUnknown_81A437A + goto EventScript_171EFE + end + +EventScript_171F19:: @ 8171F19 + copyvar VAR_0x8004, VAR_STORAGE_UNKNOWN + specialvar VAR_RESULT, sub_80CC48C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171F34 + goto EventScript_171EFE + end + +EventScript_171F34:: @ 8171F34 + special sub_80CB0A8 + msgbox gUnknown_81A43F7 + addobject 2 + applymovement 2, Movement_172060 + waitmovement 0 + textcolor 0 + msgbox gUnknown_81A450B + applymovement 1, Movement_1A75E9 + waitmovement 0 + textcolor 1 + msgbox gUnknown_81A4521 + textcolor 0 + msgbox gUnknown_81A4566 + closemessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_171FCD + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_171FE9 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_171FFE + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_17201A + moveobjectoffscreen 2 + msgbox gUnknown_81A458E + giveitem VAR_0x403B + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_172025 + setflag FLAG_0x002 + setvar VAR_STORAGE_UNKNOWN, 0 + release + end + +EventScript_171FCD:: @ 8171FCD + applymovement 1, Movement_1A75ED + applymovement 2, Movement_17204D + waitmovement 0 + applymovement 255, Movement_1A75E7 + waitmovement 0 + return + +EventScript_171FE9:: @ 8171FE9 + applymovement 2, Movement_172055 + waitmovement 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +EventScript_171FFE:: @ 8171FFE + applymovement 1, Movement_1A75E7 + applymovement 2, Movement_172059 + waitmovement 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +EventScript_17201A:: @ 817201A + applymovement 2, Movement_17205E + waitmovement 0 + return + +EventScript_172025:: @ 8172025 + textcolor 0 + msgbox gUnknown_81A45E8 + textcolor 1 + msgbox gUnknown_81A461B + setflag FLAG_0x002 + setvar VAR_STORAGE_UNKNOWN, 0 + release + end + +EventScript_172043:: @ 8172043 + msgbox gUnknown_81A4632 + release + end + +Movement_17204D:: @ 817204D + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_30 + step_end + +Movement_172055:: @ 8172055 + step_12 + step_12 + step_2d + step_end + +Movement_172059:: @ 8172059 + step_12 + step_12 + step_12 + step_10 + step_end + +Movement_17205E:: @ 817205E + step_11 + step_end + +Movement_172060:: @ 8172060 + step_25 + step_end + +FiveIsland_ResortGorgeous_House_EventScript_172062:: @ 8172062 + msgbox gUnknown_81A4657, 2 + end diff --git a/data/maps/FiveIsland_ResortGorgeous_House/text.inc b/data/maps/FiveIsland_ResortGorgeous_House/text.inc new file mode 100644 index 000000000..1d872274b --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous_House/text.inc @@ -0,0 +1,68 @@ +gUnknown_81A42A0:: @ 81A42A0 + .string "SELPHY: Oh?\n" + .string "Do I know you from somewhere?\p" + .string "Oh, but that doesn't matter.\p" + .string "I am exquisitely bored.\n" + .string "Please, hear my wish.$" + +gUnknown_81A4315:: @ 81A4315 + .string "I wish to see a POKéMON.\n" + .string "A darling {STR_VAR_1}.\p" + .string "I want to see one right away.\n" + .string "Please, make my wish come true.$" + +gUnknown_81A437A:: @ 81A437A + .string "SELPHY: Oh, I'm tired of this.\n" + .string "I'm tired of waiting for you.\p" + .string "I'll forgive you this time, but\n" + .string "please don't fail me next time.$" + +gUnknown_81A43F7:: @ 81A43F7 + .string "SELPHY: Oh, hello, there.\p" + .string "Oh, my gracious. That must be the\n" + .string "{STR_VAR_1} you caught for me.\p" + .string "Giggle…\n" + .string "I see a resemblance to you.\p" + .string "Thank you so kindly.\p" + .string "… … … … … …\n" + .string "Is something the matter?\p" + .string "You may leave.\p" + .string "… … … … … …\n" + .string "Oh, fine. I understand now.\p" + .string "SEBASTIAN!\n" + .string "I need you here this instant!$" + +gUnknown_81A450B:: @ 81A450B + .string "Butler: Yes, my lady.$" + +gUnknown_81A4521:: @ 81A4521 + .string "SELPHY: See to it that this person\n" + .string "is given a token of appreciation.$" + +gUnknown_81A4566:: @ 81A4566 + .string "Butler: I shall do as you bid,\n" + .string "my lady.$" + +gUnknown_81A458E:: @ 81A458E + .string "Butler: I sincerely thank you for\n" + .string "pleasing Lady SELPHY.\p" + .string "Please accept this as her thanks…$" + +gUnknown_81A45E8:: @ 81A45E8 + .string "Butler: Your BAG appears to be\n" + .string "unfortunately full.$" + +gUnknown_81A461B:: @ 81A461B + .string "Oh…\n" + .string "How disappointing.$" + +gUnknown_81A4632:: @ 81A4632 + .string "SELPHY: I wish you the best of\n" + .string "luck.$" + +gUnknown_81A4657:: @ 81A4657 + .string "Butler: The smile of Lady SELPHY\n" + .string "has the brilliance of the sun.\p" + .string "Please, I beg you to bring joy\n" + .string "to Lady SELPHY.$" + diff --git a/data/maps/FiveIsland_RocketWarehouse/map.json b/data/maps/FiveIsland_RocketWarehouse/map.json new file mode 100644 index 000000000..2c45cdf29 --- /dev/null +++ b/data/maps/FiveIsland_RocketWarehouse/map.json @@ -0,0 +1,366 @@ +{ + "id": "MAP_FIVE_ISLAND_ROCKET_WAREHOUSE", + "name": "FiveIsland_RocketWarehouse", + "layout": "LAYOUT_FIVE_ISLAND_ROCKET_WAREHOUSE", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_ROCKET_WAREHOUSE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 5, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 15, + "y": 11, + "elevation": 3, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_RocketWarehouse_EventScript_163FE6", + "flag": "136" + }, + { + "graphics_id": "49", + "x": 17, + "y": 15, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_RocketWarehouse_EventScript_163FFD", + "flag": "136" + }, + { + "graphics_id": "50", + "x": 27, + "y": 16, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "FiveIsland_RocketWarehouse_EventScript_164087", + "flag": "136" + }, + { + "graphics_id": "49", + "x": 25, + "y": 11, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "FiveIsland_RocketWarehouse_EventScript_164014", + "flag": "136" + }, + { + "graphics_id": "50", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "16", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "FiveIsland_RocketWarehouse_EventScript_164070", + "flag": "136" + }, + { + "graphics_id": "55", + "x": 27, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F93", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 8, + "y": 25, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_1BED87", + "flag": "500" + }, + { + "graphics_id": "92", + "x": 17, + "y": 3, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_1BED94", + "flag": "501" + }, + { + "graphics_id": "92", + "x": 1, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_1BEDA1", + "flag": "502" + }, + { + "graphics_id": "92", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_1BEDAE", + "flag": "503" + } + ], + "warp_events": [ + { + "x": 24, + "y": 25, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_MEADOW", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 22, + "y": 11, + "elevation": 3, + "var": "VAR_0x4088", + "var_value": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F81" + }, + { + "type": "trigger", + "x": 23, + "y": 11, + "elevation": 3, + "var": "VAR_0x4088", + "var_value": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F81" + }, + { + "type": "trigger", + "x": 24, + "y": 11, + "elevation": 3, + "var": "VAR_0x4088", + "var_value": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F81" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 11, + "y": 2, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_3", + "x": 26, + "y": 11, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F78" + }, + { + "type": "hidden_item", + "x": 27, + "y": 2, + "elevation": 0, + "item": "ITEM_NEST_BALL", + "flag": "68", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 7, + "y": 16, + "elevation": 0, + "item": "ITEM_NET_BALL", + "flag": "69", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 2, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 2, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 2, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 2, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 2, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 5, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 5, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 4, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 4, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 4, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 4, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 5, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 5, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 3, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 3, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 4, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 4, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 4, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 2, + "y": 4, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 2, + "y": 5, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 5, + "elevation": 0, + "script": "FiveIsland_RocketWarehouse_EventScript_163F5A" + } + ] +} diff --git a/data/maps/FiveIsland_RocketWarehouse/scripts.inc b/data/maps/FiveIsland_RocketWarehouse/scripts.inc new file mode 100644 index 000000000..bac115e76 --- /dev/null +++ b/data/maps/FiveIsland_RocketWarehouse/scripts.inc @@ -0,0 +1,186 @@ +FiveIsland_RocketWarehouse_MapScripts:: @ 8163F2E + map_script 1, FiveIsland_RocketWarehouse_MapScript1_163F3D + map_script 3, FiveIsland_RocketWarehouse_MapScript2_163F39 + .byte 0 + +FiveIsland_RocketWarehouse_MapScript2_163F39:: @ 8163F39 + setworldmapflag FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE + end + +FiveIsland_RocketWarehouse_MapScript1_163F3D:: @ 8163F3D + checktrainerflag FLAG_0x21F + call_if 1, EventScript_163F47 + end + +EventScript_163F47:: @ 8163F47 + setmetatile 26, 20, 672, 0 + setmetatile 27, 20, 672, 0 + return + +FiveIsland_RocketWarehouse_EventScript_163F5A:: @ 8163F5A + lockall + checkflag FLAG_0x2D5 + goto_if_eq EventScript_163F6E + msgbox gUnknown_817B4E3 + releaseall + end + +EventScript_163F6E:: @ 8163F6E + msgbox gUnknown_817B512 + releaseall + end + +FiveIsland_RocketWarehouse_EventScript_163F78:: @ 8163F78 + msgbox gUnknown_817BB15, 3 + end + +FiveIsland_RocketWarehouse_EventScript_163F81:: @ 8163F81 + lockall + applymovement 4, Movement_1A75E7 + waitmovement 0 + setvar VAR_0x4088, 1 + releaseall + end + +FiveIsland_RocketWarehouse_EventScript_163F93:: @ 8163F93 + trainerbattle 2, 545, 0, Text_17BBAF, Text_17BC55, EventScript_163FCD + checkflag FLAG_0x844 + goto_if_eq EventScript_163FB7 + msgbox gUnknown_817BCA3, 6 + end + +EventScript_163FB7:: @ 8163FB7 + setvar VAR_0x8004, 15 + setvar VAR_0x8005, 5 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_817BCD7, 6 + end + +EventScript_163FCD:: @ 8163FCD + msgbox gUnknown_817BC6C + setflag FLAG_0x2DC + giveitem ITEM_SAPPHIRE + release + end + +FiveIsland_RocketWarehouse_EventScript_163FE6:: @ 8163FE6 + trainerbattle 0, 541, 0, Text_17B54D, Text_17B585 + msgbox gUnknown_817B5A6, 6 + end + +FiveIsland_RocketWarehouse_EventScript_163FFD:: @ 8163FFD + trainerbattle 0, 542, 0, Text_17B677, Text_17B6D9 + msgbox gUnknown_817B6EF, 6 + end + +FiveIsland_RocketWarehouse_EventScript_164014:: @ 8164014 + trainerbattle 2, 544, 0, Text_17B8DA, Text_17B9FB, EventScript_16402F + msgbox gUnknown_817BA64, 6 + end + +EventScript_16402F:: @ 816402F + getplayerxy VAR_0x8004, VAR_0x8005 + compare_var_to_value VAR_0x8004, 24 + call_if 3, EventScript_164065 + msgbox gUnknown_817BA64 + closemessage + fadescreen 1 + removeobject 1 + removeobject 2 + removeobject 4 + removeobject 3 + setflag FLAG_0x088 + fadescreen 0 + setvar VAR_0x4088, 1 + setflag FLAG_0x2D5 + release + end + +EventScript_164065:: @ 8164065 + applymovement 255, Movement_1A75EB + waitmovement 0 + return + +FiveIsland_RocketWarehouse_EventScript_164070:: @ 8164070 + trainerbattle 0, 516, 0, Text_17B5D6, Text_17B62F + msgbox gUnknown_817B642, 6 + end + +FiveIsland_RocketWarehouse_EventScript_164087:: @ 8164087 + trainerbattle 2, 543, 0, Text_17B72D, Text_17B79C, EventScript_1640A2 + msgbox gUnknown_817B7FA, 6 + end + +EventScript_1640A2:: @ 81640A2 + getplayerxy VAR_0x8004, VAR_0x8005 + specialvar VAR_RESULT, player_get_direction_lower_nybble + compare_var_to_value VAR_RESULT, 2 + call_if 1, EventScript_16412E + msgbox gUnknown_817B7AE + closemessage + compare_var_to_value VAR_0x8004, 24 + call_if 3, EventScript_164144 + compare_var_to_value VAR_0x8004, 25 + call_if 1, EventScript_16414F + compare_var_to_value VAR_0x8004, 26 + call_if 1, EventScript_16415A + compare_var_to_value VAR_0x8004, 27 + call_if 1, EventScript_16415A + playse SE_PIN + call EventScript_163F47 + special DrawWholeMapView + waitse + compare_var_to_value VAR_0x8004, 24 + call_if 3, EventScript_164165 + compare_var_to_value VAR_0x8004, 25 + call_if 1, EventScript_164165 + compare_var_to_value VAR_0x8004, 26 + call_if 1, EventScript_164165 + compare_var_to_value VAR_0x8004, 27 + call_if 1, EventScript_164170 + msgbox gUnknown_817B7FA + release + end + +EventScript_16412E:: @ 816412E + compare_var_to_value VAR_0x8004, 27 + goto_if_eq EventScript_1A77A9 + applymovement 255, Movement_1A75EB + waitmovement 0 + return + +EventScript_164144:: @ 8164144 + applymovement 3, Movement_16417B + waitmovement 0 + return + +EventScript_16414F:: @ 816414F + applymovement 3, Movement_16417F + waitmovement 0 + return + +EventScript_16415A:: @ 816415A + applymovement 3, Movement_1A75E9 + waitmovement 0 + return + +EventScript_164165:: @ 8164165 + applymovement 3, Movement_1A75E7 + waitmovement 0 + return + +EventScript_164170:: @ 8164170 + applymovement 3, Movement_1A75ED + waitmovement 0 + return + +Movement_16417B:: @ 816417B + step_13 + step_13 + step_2e + step_end + +Movement_16417F:: @ 816417F + step_13 + step_2e + step_end diff --git a/data/maps/FiveIsland_RocketWarehouse/text.inc b/data/maps/FiveIsland_RocketWarehouse/text.inc new file mode 100644 index 000000000..b77ebd7c8 --- /dev/null +++ b/data/maps/FiveIsland_RocketWarehouse/text.inc @@ -0,0 +1,137 @@ +gUnknown_817B4E3:: @ 817B4E3 + .string "There are many POKéMON locked\n" + .string "away in the pen…$" + +gUnknown_817B512:: @ 817B512 + .string "The pen door is unlocked.\n" + .string "The POKéMON appear to have fled.$" + +Text_17B54D:: @ 817B54D + .string "Did you come here knowing it's\n" + .string "TEAM ROCKET's WAREHOUSE?$" + +Text_17B585:: @ 817B585 + .string "What do you think you're doing?!$" + +gUnknown_817B5A6:: @ 817B5A6 + .string "TEAM ROCKET broke up?\n" + .string "What planet are you from?$" + +Text_17B5D6:: @ 817B5D6 + .string "Oh, now your POKéMON look strong.\n" + .string "You're willing to sell them?\p" + .string "Oh?\n" + .string "You wanted to battle?$" + +Text_17B62F:: @ 817B62F + .string "Oh, but…\n" + .string "Too much!$" + +gUnknown_817B642:: @ 817B642 + .string "We can give you a great price.\n" + .string "Sell us your POKéMON!$" + +Text_17B677:: @ 817B677 + .string "I got word about you from the\n" + .string "others.\p" + .string "But there's no way a kid like you'd\n" + .string "know our BOSS GIOVANNI!$" + +Text_17B6D9:: @ 817B6D9 + .string "Don't…you…dare…laugh…$" + +gUnknown_817B6EF:: @ 817B6EF + .string "Don't mess in the doings of adults,\n" + .string "you jumped-up pip-squeak!$" + +Text_17B72D:: @ 817B72D + .string "I don't know or care if what I'm\n" + .string "doing is right or wrong…\p" + .string "I just put my faith in GIOVANNI\n" + .string "and do as I am told.$" + +Text_17B79C:: @ 817B79C + .string "I…\n" + .string "I'm shattered…$" + +gUnknown_817B7AE:: @ 817B7AE + .string "You're doing things according to\n" + .string "your beliefs and morals.\p" + .string "I understand now…$" + +gUnknown_817B7FA:: @ 817B7FA + .string "I've made it so you can come back\n" + .string "in through there.\p" + .string "Why don't you go get rested and\n" + .string "refreshed for what lies ahead?\p" + .string "The ADMIN after me outranks me\n" + .string "thoroughly as a TRAINER.\p" + .string "You'd better steel yourself for one\n" + .string "harsh challenge.$" + +Text_17B8DA:: @ 817B8DA + .string "That's quite enough of you \n" + .string "playing the hero, kid.\p" + .string "Spreading lies about how TEAM\n" + .string "ROCKET has disbanded…\p" + .string "It's such an obvious attempt to\n" + .string "cause confusion in our ranks.\p" + .string "Fortunately, we're not so ignorant\n" + .string "to fall for the lies of a child!\p" + .string "And now, I'll show you how scary\n" + .string "an angry adult can be!$" + +Text_17B9FB:: @ 817B9FB + .string "Urgh…\n" + .string "You were too strong…\p" + .string "…\n" + .string "Th-that's GIOVANNI's BADGE!\p" + .string "So it's true?\n" + .string "TEAM ROCKET really has disbanded?$" + +gUnknown_817BA64:: @ 817BA64 + .string "We will abandon this WAREHOUSE…\p" + .string "But don't think this is over.\n" + .string "I won't let this be the end.\p" + .string "I will find GIOVANNI.\n" + .string "And I will resurrect TEAM ROCKET!\l" + .string "I will…\p" + .string "Until then, farewell!$" + +gUnknown_817BB15:: @ 817BB15 + .string "A report with graphs and text is on\n" + .string "the PC monitor.\p" + .string "“The Influence of Magnetic Waves\n" + .string "on POKéMON Evolution”…\p" + .string "… … … … … …\p" + .string "It's too difficult to understand…$" + +Text_17BBAF:: @ 817BBAF + .string "I almost managed to sell the\n" + .string "SAPPHIRE for huge money…\p" + .string "Then, you just had to come along\n" + .string "and blow the whole deal apart!\p" + .string "Fufu… Fufufufu…\n" + .string "There's no forgiveness for you!$" + +Text_17BC55:: @ 817BC55 + .string "Gah! Darn!\n" + .string "Darn! Darn!$" + +gUnknown_817BC6C:: @ 817BC6C + .string "If I can't sell it, it's worthless!\n" + .string "Go ahead, take it!$" + +gUnknown_817BCA3:: @ 817BCA3 + .string "What do you want now?\n" + .string "Go on, get lost, leave me be.$" + +gUnknown_817BCD7:: @ 817BCD7 + .string "What, you again?\p" + .string "You… You're not GIOVANNI's kid,\n" + .string "are you?\p" + .string "No, that can't be right!\n" + .string "GIOVANNI's kid has red hair.\p" + .string "You don't have any reasons for\n" + .string "bugging me. Leave me alone!$" + diff --git a/data/maps/FiveIsland_WaterLabyrinth/map.json b/data/maps/FiveIsland_WaterLabyrinth/map.json new file mode 100644 index 000000000..97a0961fd --- /dev/null +++ b/data/maps/FiveIsland_WaterLabyrinth/map.json @@ -0,0 +1,57 @@ +{ + "id": "MAP_FIVE_ISLAND_WATER_LABYRINTH", + "name": "FiveIsland_WaterLabyrinth", + "layout": "LAYOUT_FIVE_ISLAND_WATER_LABYRINTH", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_WATER_LABYRINTH", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", + "offset": 48, + "direction": "up" + }, + { + "map": "MAP_FIVE_ISLAND", + "offset": 48, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "61", + "x": 14, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FiveIsland_WaterLabyrinth_EventScript_16884E", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FiveIsland_WaterLabyrinth_EventScript_1AC2D9", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_WaterLabyrinth/scripts.inc b/data/maps/FiveIsland_WaterLabyrinth/scripts.inc new file mode 100644 index 000000000..b3b6243ab --- /dev/null +++ b/data/maps/FiveIsland_WaterLabyrinth/scripts.inc @@ -0,0 +1,74 @@ +FiveIsland_WaterLabyrinth_MapScripts:: @ 816884D + .byte 0 + +FiveIsland_WaterLabyrinth_EventScript_16884E:: @ 816884E + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + checkflag FLAG_0x2DA + goto_if_eq EventScript_1688E3 + checkflag FLAG_0x2DB + goto_if_eq EventScript_16892C + msgbox gUnknown_818A80D + specialvar VAR_RESULT, sub_80CA76C + compare_var_to_value VAR_RESULT, 6 + goto_if_eq EventScript_1688AC + msgbox gUnknown_818A88F + release + end + +EventScript_168895:: @ 8168895 + setvar VAR_0x8004, 1 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_818AA0C + release + end + +EventScript_1688AC:: @ 81688AC + msgbox gUnknown_818A8A6 + goto EventScript_1688BA + end + +EventScript_1688BA:: @ 81688BA + countpokemon + compare_var_to_value VAR_RESULT, 6 + goto_if_eq EventScript_16891F + setflag FLAG_0x2DA + giveegg SPECIES_TOGEPI + textcolor 3 + playfanfare MUS_FANFA1 + message Text_18A91F + waitfanfare + waitmessage + call EventScript_1A6675 + goto EventScript_1688E3 + end + +EventScript_1688E3:: @ 81688E3 + getspeciesname 1, SPECIES_TOGEPI + setvar VAR_0x8004, 175 + specialvar VAR_RESULT, sub_80CD0F4 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_168895 + getspeciesname 1, SPECIES_TOGETIC + setvar VAR_0x8004, 176 + specialvar VAR_RESULT, sub_80CD0F4 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_168895 + msgbox gUnknown_818A9C0 + release + end + +EventScript_16891F:: @ 816891F + setflag FLAG_0x2DB + msgbox gUnknown_818A940 + release + end + +EventScript_16892C:: @ 816892C + goto EventScript_1688BA + end diff --git a/data/maps/FiveIsland_WaterLabyrinth/text.inc b/data/maps/FiveIsland_WaterLabyrinth/text.inc new file mode 100644 index 000000000..111671eb9 --- /dev/null +++ b/data/maps/FiveIsland_WaterLabyrinth/text.inc @@ -0,0 +1,49 @@ +gUnknown_818A80D:: @ 818A80D + .string "You travel all over the place,\n" + .string "don't you?\p" + .string "You're not driving your POKéMON\n" + .string "too harshly, are you?\p" + .string "Let me take a look.\n" + .string "… … … … … …$" + +gUnknown_818A88F:: @ 818A88F + .string "Ah, hmm…\n" + .string "I see, I see…$" + +gUnknown_818A8A6:: @ 818A8A6 + .string "Oh, impressive.\n" + .string "You treat your POKéMON right.\p" + .string "I think you can be entrusted with\n" + .string "this.\p" + .string "Please, I'd like you to have this.$" + +Text_18A91F:: @ 818A91F + .string "{PLAYER} received an EGG\n" + .string "from the man!$" + +gUnknown_818A940:: @ 818A940 + .string "…Unfortunately, you don't have\n" + .string "space for this in your party.\p" + .string "You'd better come back for it\n" + .string "another time.$" + +Text_18A9A9:: @ 818A9A9 + .string "やあ\n" + .string "タマゴを もらいに\l" + .string "きて くれたんだね$" + +gUnknown_818A9C0:: @ 818A9C0 + .string "I received that EGG while I was\n" + .string "traveling.\p" + .string "I'm glad I met someone like you.$" + +gUnknown_818AA0C:: @ 818AA0C + .string "Oh, hello.\n" + .string "That's a cute {STR_VAR_2}.\p" + .string "Seeing it reminds me of a sweet \n" + .string "little girl I met while traveling.\p" + .string "She was gently grooming POKéMON…\n" + .string "She was a little angel.\p" + .string "That little girl's name…\n" + .string "I think it was DAISY.$" + diff --git a/data/maps/FourIsland/map.json b/data/maps/FourIsland/map.json new file mode 100644 index 000000000..b167e2ba0 --- /dev/null +++ b/data/maps/FourIsland/map.json @@ -0,0 +1,266 @@ +{ + "id": "MAP_FOUR_ISLAND", + "name": "FourIsland", + "layout": "LAYOUT_FOUR_ISLAND", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 16, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_EventScript_167D55", + "flag": "0" + }, + { + "graphics_id": "132", + "x": 12, + "y": 9, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "122", + "x": 13, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "123", + "x": 14, + "y": 7, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "121", + "x": 17, + "y": 9, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "35", + "x": 26, + "y": 19, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_EventScript_167E2E", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 5, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "92", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_EventScript_1BEC28", + "flag": "473" + }, + { + "graphics_id": "92", + "x": 32, + "y": 19, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_EventScript_1BEC35", + "flag": "474" + }, + { + "graphics_id": "72", + "x": 8, + "y": 25, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "151" + }, + { + "graphics_id": "27", + "x": 36, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_EventScript_167E73", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 31, + "y": 21, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_EventScript_167E5A", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 18, + "y": 20, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 13, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_POKEMON_DAY_CARE", + "dest_warp_id": 0 + }, + { + "x": 25, + "y": 14, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_HOUSE1", + "dest_warp_id": 0 + }, + { + "x": 38, + "y": 12, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 33, + "y": 23, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_LORELEIS_HOUSE", + "dest_warp_id": 0 + }, + { + "x": 25, + "y": 26, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_HOUSE2", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 28, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_HARBOR", + "dest_warp_id": 0 + }, + { + "x": 22, + "y": 26, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_MART", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 13, + "y": 19, + "elevation": 0, + "script": "FourIsland_EventScript_167E7C" + }, + { + "type": "hidden_item", + "x": 22, + "y": 34, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "168", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 6, + "y": 21, + "elevation": 3, + "item": "POCKET_KEY_ITEMS", + "flag": "169", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 31, + "y": 23, + "elevation": 0, + "script": "FourIsland_EventScript_167E85" + } + ] +} diff --git a/data/maps/FourIsland/scripts.inc b/data/maps/FourIsland/scripts.inc new file mode 100644 index 000000000..3e4348e7b --- /dev/null +++ b/data/maps/FourIsland/scripts.inc @@ -0,0 +1,179 @@ +FourIsland_MapScripts:: @ 8167CAE + map_script 3, FourIsland_MapScript1_167CB9 + map_script 2, FourIsland_MapScript2_167CE2 + .byte 0 + +FourIsland_MapScript1_167CB9:: @ 8167CB9 + setworldmapflag FLAG_WORLD_MAP_FOUR_ISLAND + compare_var_to_value VAR_MAP_SCENE_FOUR_ISLAND, 0 + call_if 1, EventScript_167CCD + call EventScript_167CD1 + end + +EventScript_167CCD:: @ 8167CCD + clearflag FLAG_0x097 + return + +EventScript_167CD1:: @ 8167CD1 + checkflag FLAG_PENDING_DAYCARE_EGG + goto_if 0, EventScript_167CE1 + setobjectxyperm 1, 16, 14 + +EventScript_167CE1:: @ 8167CE1 + return + +FourIsland_MapScript2_167CE2:: @ 8167CE2 + map_script_2 VAR_MAP_SCENE_FOUR_ISLAND, 0, EventScript_167CEC + .2byte 0 + +EventScript_167CEC:: @ 8167CEC + lockall + textcolor 0 + applymovement 10, Movement_1A75ED + waitmovement 0 + playbgm BGM_FRLG_RIVAL, 0 + applymovement 10, Movement_1A75DB + waitmovement 0 + applymovement 10, Movement_1A75DD + waitmovement 0 + delay 25 + applymovement 10, Movement_167D49 + waitmovement 0 + msgbox gUnknown_8182B37 + closemessage + applymovement 255, Movement_167D52 + applymovement 10, Movement_167D4E + waitmovement 0 + fadedefaultbgm + playse SE_KAIDAN + delay 35 + removeobject 10 + setvar VAR_MAP_SCENE_FOUR_ISLAND, 1 + releaseall + end + +Movement_167D49:: @ 8167D49 + step_13 + step_13 + step_10 + step_10 + step_end + +Movement_167D4E:: @ 8167D4E + step_1c + step_1a + step_10 + step_end + +Movement_167D52:: @ 8167D52 + step_12 + step_30 + step_end + +FourIsland_EventScript_167D55:: @ 8167D55 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + special GetDaycareMonNicknames + specialvar VAR_RESULT, GetDaycareState + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_167D9B + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_167E0C + compare_var_to_value VAR_RESULT, 3 + goto_if_eq EventScript_167E19 + msgbox gUnknown_81BF555 + release + end + +EventScript_167D9B:: @ 8167D9B + msgbox gUnknown_81BF5E3, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_167DD1 + msgbox gUnknown_81BF7B6, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_167DD1 + msgbox gUnknown_81BF6CF + clearflag FLAG_PENDING_DAYCARE_EGG + special RejectEggFromDayCare + release + end + +EventScript_167DD1:: @ 8167DD1 + specialvar VAR_RESULT, CalculatePlayerPartyCount + compare_var_to_value VAR_RESULT, 6 + goto_if 5, EventScript_167DEB + msgbox gUnknown_81BF6F0 + release + end + +EventScript_167DEB:: @ 8167DEB + textcolor 3 + message Text_1BF72A + call EventScript_1A6675 + playfanfare MUS_FANFA1 + waitfanfare + waitbuttonpress + msgbox gUnknown_81BF755 + special GiveEggFromDaycare + clearflag FLAG_PENDING_DAYCARE_EGG + release + end + +EventScript_167E0C:: @ 8167E0C + special GetDaycareMonNicknames + msgbox gUnknown_81BF69A + release + end + +EventScript_167E19:: @ 8167E19 + special GetDaycareMonNicknames + msgbox gUnknown_81BF789 + special SetDaycareCompatibilityString + special sub_80CA68C + waitmessage + waitbuttonpress + release + end + +FourIsland_EventScript_167E2E:: @ 8167E2E + lock + faceplayer + checkflag FLAG_0x844 + goto_if_eq EventScript_167E43 + msgbox gUnknown_8182A2B + release + end + +EventScript_167E43:: @ 8167E43 + setvar VAR_0x8004, 9 + setvar VAR_0x8005, 5 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8182A75 + release + end + +FourIsland_EventScript_167E5A:: @ 8167E5A + lock + faceplayer + setvar VAR_0x8004, 9 + setvar VAR_0x8005, 4 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8182CE3 + release + end + +FourIsland_EventScript_167E73:: @ 8167E73 + msgbox gUnknown_8182D8E, 2 + end + +FourIsland_EventScript_167E7C:: @ 8167E7C + msgbox gUnknown_8182A03, 3 + end + +FourIsland_EventScript_167E85:: @ 8167E85 + msgbox gUnknown_8182DEB, 3 + end diff --git a/data/maps/FourIsland/text.inc b/data/maps/FourIsland/text.inc new file mode 100644 index 000000000..04845b223 --- /dev/null +++ b/data/maps/FourIsland/text.inc @@ -0,0 +1,56 @@ +gUnknown_8182A03:: @ 8182A03 + .string "FOUR ISLAND\n" + .string "The Warm, Blue, Floe Island$" + +gUnknown_8182A2B:: @ 8182A2B + .string "LORELEI has returned.\p" + .string "Did she find the city life too\n" + .string "stressful, I wonder?$" + +gUnknown_8182A75:: @ 8182A75 + .string "LORELEI has gone back.\p" + .string "The LAPRAS she has, I imagine it\n" + .string "to be the one she met as a child.\p" + .string "I believe it was in ICEFALL CAVE\n" + .string "that she caught it.\p" + .string "Perhaps that POKéMON has been with\n" + .string "her ever since.$" + +gUnknown_8182B37:: @ 8182B37 + .string "{RIVAL}: Hey!\n" + .string "{PLAYER}!\p" + .string "What are you doing here in the\n" + .string "SEVII ISLANDS?\p" + .string "You should quit copying me,\n" + .string "you know?\p" + .string "Anyways, I already got my POKéMON\n" + .string "EGG, so I'm done with this island.\p" + .string "Heh, I bet you don't even know\n" + .string "about POKéMON EGGS.\p" + .string "You'll never fill your NATIONAL\n" + .string "POKéDEX that way.\p" + .string "By the way, I saw someone we both\n" + .string "know on this island.\p" + .string "Why don't you go look around if\n" + .string "it makes you curious?\p" + .string "Me, I don't have the time to\n" + .string "waste.\p" + .string "Be smelling ya!$" + +gUnknown_8182CE3:: @ 8182CE3 + .string "Oh, you found me!\n" + .string "Please don't tell LORELEI.\p" + .string "Did you know that LORELEI has lots\n" + .string "and lots of stuffed dolls?\p" + .string "Every time she comes back to\n" + .string "FOUR ISLAND, her collection grows!$" + +gUnknown_8182D8E:: @ 8182D8E + .string "Ooh, chilly!\p" + .string "I made a slushie using ice I\n" + .string "shaved inside ICEFALL CAVE.\p" + .string "It's chilly and tasty!$" + +gUnknown_8182DEB:: @ 8182DEB + .string "LORELEI'S HOUSE$" + diff --git a/data/maps/FourIsland_Harbor/map.json b/data/maps/FourIsland_Harbor/map.json new file mode 100644 index 000000000..2ec5e402b --- /dev/null +++ b/data/maps/FourIsland_Harbor/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_FOUR_ISLAND_HARBOR", + "name": "FourIsland_Harbor", + "layout": "LAYOUT_ISLAND_HARBOR", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "108", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_Harbor_EventScript_171C99", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_Harbor/scripts.inc b/data/maps/FourIsland_Harbor/scripts.inc new file mode 100644 index 000000000..2c7fce02f --- /dev/null +++ b/data/maps/FourIsland_Harbor/scripts.inc @@ -0,0 +1,11 @@ +FourIsland_Harbor_MapScripts:: @ 8171C98 + .byte 0 + +FourIsland_Harbor_EventScript_171C99:: @ 8171C99 + lock + faceplayer + message Text_181726 + waitmessage + setvar VAR_0x8004, 4 + goto EventScript_1A900F + end diff --git a/data/maps/FourIsland_House1/map.json b/data/maps/FourIsland_House1/map.json new file mode 100644 index 000000000..99eb97da3 --- /dev/null +++ b/data/maps/FourIsland_House1/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_FOUR_ISLAND_HOUSE1", + "name": "FourIsland_House1", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "27", + "x": 8, + "y": 3, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_House1_EventScript_1C4D84", + "flag": "0" + }, + { + "graphics_id": "27", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_House1_EventScript_171C45", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_House1/scripts.inc b/data/maps/FourIsland_House1/scripts.inc new file mode 100644 index 000000000..d7139c370 --- /dev/null +++ b/data/maps/FourIsland_House1/scripts.inc @@ -0,0 +1,6 @@ +FourIsland_House1_MapScripts:: @ 8171C44 + .byte 0 + +FourIsland_House1_EventScript_171C45:: @ 8171C45 + msgbox gUnknown_81A3802, 2 + end diff --git a/data/maps/FourIsland_House1/text.inc b/data/maps/FourIsland_House1/text.inc new file mode 100644 index 000000000..2d4f8c4bd --- /dev/null +++ b/data/maps/FourIsland_House1/text.inc @@ -0,0 +1,23 @@ +Text_1A3778:: @ 81A3778 + .string "そーれ ぼよーん!\n" + .string "どっちが さきに へたばるか?\l" + .string "のしかかり しょうぶ してるんだ\p" + .string "きみは なかまに はいったら\n" + .string "つぶれそうだな‥\l" + .string "かわりに きみの ポケモンに\l" + .string "のしかかり おしえて やろっか?$" + +Text_1A37DB:: @ 81A37DB + .string "また おいで ぼよーん!$" + +Text_1A37E8:: @ 81A37E8 + .string "どの ポケモンに\n" + .string "おしえたい かい?$" + +Text_1A37FB:: @ 81A37FB + .string "ぼよよーん!$" + +gUnknown_81A3802:: @ 81A3802 + .string "There! Boing!\n" + .string "You're awfully heavy!$" + diff --git a/data/maps/FourIsland_House2/map.json b/data/maps/FourIsland_House2/map.json new file mode 100644 index 000000000..6811c33ae --- /dev/null +++ b/data/maps/FourIsland_House2/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FOUR_ISLAND_HOUSE2", + "name": "FourIsland_House2", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "25", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_House2_EventScript_1B2938", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_House2/scripts.inc b/data/maps/FourIsland_House2/scripts.inc new file mode 100644 index 000000000..e74407be5 --- /dev/null +++ b/data/maps/FourIsland_House2/scripts.inc @@ -0,0 +1,2 @@ +FourIsland_House2_MapScripts:: @ 8171CAC + .byte 0 diff --git a/data/maps/FourIsland_IcefallCave_1F/map.json b/data/maps/FourIsland_IcefallCave_1F/map.json new file mode 100644 index 000000000..00fa4bac0 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_1F/map.json @@ -0,0 +1,89 @@ +{ + "id": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "name": "FourIsland_IcefallCave_1F", + "layout": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_1F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_ICEFALL_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 11, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_IcefallCave_1F_EventScript_1BED53", + "flag": "496" + }, + { + "graphics_id": "92", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_IcefallCave_1F_EventScript_1BED60", + "flag": "497" + } + ], + "warp_events": [ + { + "x": 3, + "y": 17, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "dest_warp_id": 2 + }, + { + "x": 12, + "y": 12, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 3, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "dest_warp_id": 1 + }, + { + "x": 15, + "y": 16, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "dest_warp_id": 2 + }, + { + "x": 3, + "y": 6, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_IcefallCave_1F/scripts.inc b/data/maps/FourIsland_IcefallCave_1F/scripts.inc new file mode 100644 index 000000000..866c0c578 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_1F/scripts.inc @@ -0,0 +1,33 @@ +FourIsland_IcefallCave_1F_MapScripts:: @ 8163D44 + map_script 5, FourIsland_IcefallCave_1F_MapScript1_163D54 + map_script 1, FourIsland_IcefallCave_1F_MapScript2_163D57 + map_script 2, FourIsland_IcefallCave_1F_MapScript3_163D5B + .byte 0 + +FourIsland_IcefallCave_1F_MapScript1_163D54:: @ 8163D54 + setstepcallback 4 + end + +FourIsland_IcefallCave_1F_MapScript2_163D57:: @ 8163D57 + special sub_806E99C + end + +FourIsland_IcefallCave_1F_MapScript3_163D5B:: @ 8163D5B + map_script_2 VAR_0x4001, 1, EventScript_163D65 + .2byte 0 + +EventScript_163D65:: @ 8163D65 + lockall + delay 20 + applymovement 255, Movement_163D7F + waitmovement 0 + playse SE_FU_ZAKU + delay 60 + warphole MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F + waitstate + releaseall + end + +Movement_163D7F:: @ 8163D7F + step_60 + step_end diff --git a/data/maps/FourIsland_IcefallCave_B1F/map.json b/data/maps/FourIsland_IcefallCave_B1F/map.json new file mode 100644 index 000000000..940d888f1 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_B1F/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "name": "FourIsland_IcefallCave_B1F", + "layout": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_ICEFALL_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 10, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_IcefallCave_B1F_EventScript_1BED6D", + "flag": "498" + }, + { + "graphics_id": "92", + "x": 21, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_IcefallCave_B1F_EventScript_1BED7A", + "flag": "499" + } + ], + "warp_events": [ + { + "x": 12, + "y": 12, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": 2 + }, + { + "x": 12, + "y": 3, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": 3 + }, + { + "x": 15, + "y": 16, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_IcefallCave_B1F/scripts.inc b/data/maps/FourIsland_IcefallCave_B1F/scripts.inc new file mode 100644 index 000000000..a3ec3cf54 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_B1F/scripts.inc @@ -0,0 +1,2 @@ +FourIsland_IcefallCave_B1F_MapScripts:: @ 8163D81 + .byte 0 diff --git a/data/maps/FourIsland_IcefallCave_Back/map.json b/data/maps/FourIsland_IcefallCave_Back/map.json new file mode 100644 index 000000000..0b3ca6e97 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_Back/map.json @@ -0,0 +1,108 @@ +{ + "id": "MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK", + "name": "FourIsland_IcefallCave_Back", + "layout": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_BACK", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_ICEFALL_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 11, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "141" + }, + { + "graphics_id": "49", + "x": 13, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "141" + }, + { + "graphics_id": "77", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_IcefallCave_Back_EventScript_163F25", + "flag": "139" + }, + { + "graphics_id": "49", + "x": 10, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "141" + } + ], + "warp_events": [ + { + "x": 12, + "y": 23, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": 5 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 11, + "y": 18, + "elevation": 3, + "var": "VAR_0x4080", + "var_value": 0, + "script": "FourIsland_IcefallCave_Back_EventScript_163D98" + }, + { + "type": "trigger", + "x": 12, + "y": 18, + "elevation": 3, + "var": "VAR_0x4080", + "var_value": 0, + "script": "FourIsland_IcefallCave_Back_EventScript_163D98" + }, + { + "type": "trigger", + "x": 13, + "y": 18, + "elevation": 3, + "var": "VAR_0x4080", + "var_value": 0, + "script": "FourIsland_IcefallCave_Back_EventScript_163D98" + } + ], + "bg_events": [] +} diff --git a/data/maps/FourIsland_IcefallCave_Back/scripts.inc b/data/maps/FourIsland_IcefallCave_Back/scripts.inc new file mode 100644 index 000000000..b2451b2ec --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_Back/scripts.inc @@ -0,0 +1,192 @@ +FourIsland_IcefallCave_Back_MapScripts:: @ 8163D82 + map_script 3, FourIsland_IcefallCave_Back_MapScript1_163D88 + .byte 0 + +FourIsland_IcefallCave_Back_MapScript1_163D88:: @ 8163D88 + compare_var_to_value VAR_0x4080, 1 + call_if 1, EventScript_163D94 + end + +EventScript_163D94:: @ 8163D94 + setflag FLAG_0x08B + return + +FourIsland_IcefallCave_Back_EventScript_163D98:: @ 8163D98 + lockall + textcolor 1 + msgbox gUnknown_817B04F + applymovement 1, Movement_163EE8 + waitmovement 0 + textcolor 0 + msgbox gUnknown_817B0B9 + closemessage + playse SE_PIN + applymovement 3, Movement_1A75DB + waitmovement 0 + applymovement 3, Movement_1A75ED + waitmovement 0 + applymovement 3, Movement_1A75DD + waitmovement 0 + textcolor 1 + msgbox gUnknown_817B109 + closemessage + applymovement 3, Movement_1A75EB + waitmovement 0 + delay 18 + applymovement 3, Movement_1A75ED + waitmovement 0 + delay 35 + applymovement 4, Movement_163F11 + applymovement 3, Movement_163F18 + applymovement 255, Movement_163EDD + waitmovement 0 + applymovement 2, Movement_163EE8 + waitmovement 0 + playbgm BGM_FRLG_SUSPICIOUS_EYE, 0 + textcolor 0 + msgbox gUnknown_817B20B + setvar VAR_LAST_TALKED, 4 + trainerbattle 3, 539, 0, Text_17B251 + applymovement 3, Movement_163F1B + waitmovement 0 + textcolor 1 + msgbox gUnknown_817B269 + textcolor 0 + msgbox gUnknown_817B2EF + textcolor 1 + message Text_17B313 + waitmessage + waitse + playmoncry SPECIES_LAPRAS, 2 + waitbuttonpress + waitmoncry + applymovement 1, Movement_163EEE + waitmovement 0 + textcolor 0 + msgbox gUnknown_817B399 + closemessage + applymovement 3, Movement_163F1D + applymovement 255, Movement_163EE2 + applymovement 1, Movement_163EF0 + applymovement 2, Movement_163EFA + applymovement 4, Movement_163F05 + waitmovement 0 + removeobject 1 + removeobject 2 + removeobject 4 + delay 50 + applymovement 3, Movement_163F23 + waitmovement 0 + applymovement 255, Movement_1A75E7 + waitmovement 0 + textcolor 1 + msgbox gUnknown_817B457 + setflag FLAG_0x08E + clearflag FLAG_0x08C + setvar VAR_0x4080, 1 + releaseall + end + +Movement_163EDD:: @ 8163EDD + step_11 + step_11 + step_13 + step_11 + step_end + +Movement_163EE2:: @ 8163EE2 + step_1c + step_2f + step_1c + step_1c + step_2d + step_end + +Movement_163EE8:: @ 8163EE8 + step_25 + step_end + +gUnknown_163EEA:: @ 8163EEA + step_4c + step_13 + step_4d + step_end + +Movement_163EEE:: @ 8163EEE + step_29 + step_end + +Movement_163EF0:: @ 8163EF0 + step_13 + step_10 + step_1d + step_1d + step_1d + step_1d + step_1d + step_1d + step_1d + step_end + +Movement_163EFA:: @ 8163EFA + step_1c + step_12 + step_10 + step_1d + step_1d + step_1d + step_1d + step_1d + step_1d + step_1d + step_end + +Movement_163F05:: @ 8163F05 + step_1c + step_10 + step_1c + step_10 + step_20 + step_20 + step_1d + step_1d + step_1d + step_1d + step_1d + step_end + +Movement_163F11:: @ 8163F11 + step_1c + step_1b + step_30 + step_end + +Movement_163F15:: @ 8163F15 + step_12 + step_12 + step_end + +Movement_163F18:: @ 8163F18 + step_12 + step_11 + step_end + +Movement_163F1B:: @ 8163F1B + step_26 + step_end + +Movement_163F1D:: @ 8163F1D + step_1b + step_30 + step_1c + step_1c + step_2d + step_end + +Movement_163F23:: @ 8163F23 + step_13 + step_end + +FourIsland_IcefallCave_Back_EventScript_163F25:: @ 8163F25 + msgbox gUnknown_817B457, 2 + end diff --git a/data/maps/FourIsland_IcefallCave_Back/text.inc b/data/maps/FourIsland_IcefallCave_Back/text.inc new file mode 100644 index 000000000..f65e95854 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_Back/text.inc @@ -0,0 +1,73 @@ +gUnknown_817B04F:: @ 817B04F + .string "LORELEI: Keep your filthy hands\n" + .string "off the POKéMON in the cave!\p" + .string "Do as I say, or you'll have me to\n" + .string "answer to!$" + +gUnknown_817B0B9:: @ 817B0B9 + .string "Aww, shut it, lady, and leave\n" + .string "us be.\p" + .string "Don't let your glasses get all\n" + .string "steamed up!$" + +gUnknown_817B109:: @ 817B109 + .string "LORELEI: {PLAYER}?!\n" + .string "What are you doing here?\p" + .string "No, we can catch up later.\n" + .string "Right now, I need your help.\p" + .string "Help me kick these poachers out\n" + .string "before they do anything else.\p" + .string "They've been catching POKéMON\n" + .string "here, then selling them off!\p" + .string "Are you ready?\n" + .string "You take that one, please!$" + +gUnknown_817B20B:: @ 817B20B + .string "W-what?!\p" + .string "Who says we can't do what we want\n" + .string "with the POKéMON we catch?$" + +Text_17B251:: @ 817B251 + .string "We didn't plan on this!$" + +gUnknown_817B269:: @ 817B269 + .string "LORELEI: Humph.\n" + .string "So despicably weak.\p" + .string "You!\n" + .string "Tell me!\p" + .string "Where have you taken the captured\n" + .string "POKéMON?\p" + .string "I'm smashing your ring once and\n" + .string "for all!$" + +gUnknown_817B2EF:: @ 817B2EF + .string "N-no way!\n" + .string "I'm not telling you that!$" + +Text_17B313:: @ 817B313 + .string "LORELEI: If you won't confess,\n" + .string "we'll deep-freeze you.\p" + .string "My LAPRAS is furious for what\n" + .string "you've done to its friends.\p" + .string "Go, LAPRAS!\n" + .string "ICE BEAM…$" + +gUnknown_817B399:: @ 817B399 + .string "Wawaah! Okay!\n" + .string "I'll talk!\p" + .string "The POKéMON are in the ROCKET\n" + .string "WAREHOUSE on FIVE ISLAND.\p" + .string "There! I said it!\n" + .string "We'll be going now!\p" + .string "…But I doubt you'll ever make it\n" + .string "into the ROCKET WAREHOUSE!\p" + .string "Heheheheh!$" + +gUnknown_817B457:: @ 817B457 + .string "{PLAYER}, thank you.\n" + .string "But this is awful…\p" + .string "I was born and raised here on\n" + .string "these islands.\p" + .string "I had no idea that those horrible\n" + .string "criminals were loose here…$" + diff --git a/data/maps/FourIsland_IcefallCave_Entrance/map.json b/data/maps/FourIsland_IcefallCave_Entrance/map.json new file mode 100644 index 000000000..babdb41da --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_Entrance/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "name": "FourIsland_IcefallCave_Entrance", + "layout": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_ICEFALL_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 17, + "y": 30, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": 3 + }, + { + "x": 10, + "y": 21, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_IcefallCave_Entrance/scripts.inc b/data/maps/FourIsland_IcefallCave_Entrance/scripts.inc new file mode 100644 index 000000000..a3c4ea616 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_Entrance/scripts.inc @@ -0,0 +1,7 @@ +FourIsland_IcefallCave_Entrance_MapScripts:: @ 8163D3A + map_script 3, FourIsland_IcefallCave_Entrance_MapScript1_163D40 + .byte 0 + +FourIsland_IcefallCave_Entrance_MapScript1_163D40:: @ 8163D40 + setworldmapflag FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE + end diff --git a/data/maps/FourIsland_LoreleisHouse/map.json b/data/maps/FourIsland_LoreleisHouse/map.json new file mode 100644 index 000000000..9c73e30f2 --- /dev/null +++ b/data/maps/FourIsland_LoreleisHouse/map.json @@ -0,0 +1,223 @@ +{ + "id": "MAP_FOUR_ISLAND_LORELEIS_HOUSE", + "name": "FourIsland_LoreleisHouse", + "layout": "LAYOUT_FOUR_ISLAND_LORELEIS_HOUSE", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "77", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C58", + "flag": "140" + }, + { + "graphics_id": "131", + "x": 0, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "0" + }, + { + "graphics_id": "126", + "x": 10, + "y": 3, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "0" + }, + { + "graphics_id": "120", + "x": 9, + "y": 3, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "0" + }, + { + "graphics_id": "128", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "0" + }, + { + "graphics_id": "129", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "0" + }, + { + "graphics_id": "121", + "x": 6, + "y": 4, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "0" + }, + { + "graphics_id": "125", + "x": 9, + "y": 4, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "165" + }, + { + "graphics_id": "117", + "x": 10, + "y": 4, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "166" + }, + { + "graphics_id": "115", + "x": 0, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "168" + }, + { + "graphics_id": "122", + "x": 0, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "167" + }, + { + "graphics_id": "123", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "169" + }, + { + "graphics_id": "114", + "x": 9, + "y": 0, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "171" + }, + { + "graphics_id": "133", + "x": 10, + "y": 0, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "170" + }, + { + "graphics_id": "107", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_LoreleisHouse_EventScript_171C8D", + "flag": "172" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_LoreleisHouse/scripts.inc b/data/maps/FourIsland_LoreleisHouse/scripts.inc new file mode 100644 index 000000000..ab7196c62 --- /dev/null +++ b/data/maps/FourIsland_LoreleisHouse/scripts.inc @@ -0,0 +1,35 @@ +FourIsland_LoreleisHouse_MapScripts:: @ 8171C4E + map_script 3, FourIsland_LoreleisHouse_MapScript1_171C54 + .byte 0 + +FourIsland_LoreleisHouse_MapScript1_171C54:: @ 8171C54 + special sub_80CD154 + end + +FourIsland_LoreleisHouse_EventScript_171C58:: @ 8171C58 + lock + faceplayer + checkflag FLAG_0x2D4 + goto_if_eq EventScript_171C83 + checkflag FLAG_0x2D5 + goto_if_eq EventScript_171C76 + msgbox gUnknown_81A3826 + release + end + +EventScript_171C76:: @ 8171C76 + setflag FLAG_0x2D4 + msgbox gUnknown_81A390C + release + end + +EventScript_171C83:: @ 8171C83 + msgbox gUnknown_81A39D8 + release + end + +FourIsland_LoreleisHouse_EventScript_171C8D:: @ 8171C8D + lock + msgbox gUnknown_81A3A42 + release + end diff --git a/data/maps/FourIsland_LoreleisHouse/text.inc b/data/maps/FourIsland_LoreleisHouse/text.inc new file mode 100644 index 000000000..5c7d0cd81 --- /dev/null +++ b/data/maps/FourIsland_LoreleisHouse/text.inc @@ -0,0 +1,29 @@ +gUnknown_81A3826:: @ 81A3826 + .string "LORELEI: There's something weighing\n" + .string "heavily on my mind.\p" + .string "If anything were to happen on\n" + .string "the island where I was born…\p" + .string "I wouldn't know about it if I were\n" + .string "in the POKéMON LEAGUE.\p" + .string "I wonder if that would make me\n" + .string "irresponsible to my home…$" + +gUnknown_81A390C:: @ 81A390C + .string "LORELEI: So, you managed to solve\n" + .string "all the problems here?\p" + .string "That's wonderful.\p" + .string "That means there isn't any reason\n" + .string "for me to be here all the time.\p" + .string "Thank you…\p" + .string "I'll return to the POKéMON LEAGUE\n" + .string "in a short while.$" + +gUnknown_81A39D8:: @ 81A39D8 + .string "I don't know what will happen in\n" + .string "the future, but…\p" + .string "I will do what I can here and now.\n" + .string "That's all I can do.$" + +gUnknown_81A3A42:: @ 81A3A42 + .string "Stuffed POKéMON dolls galore!$" + diff --git a/data/maps/FourIsland_Mart/map.json b/data/maps/FourIsland_Mart/map.json new file mode 100644 index 000000000..4fbd02275 --- /dev/null +++ b/data/maps/FourIsland_Mart/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_FOUR_ISLAND_MART", + "name": "FourIsland_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_Mart_EventScript_171CAE", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_Mart_EventScript_1ACF46", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 8, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_Mart_EventScript_171CE8", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": 7 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_Mart/scripts.inc b/data/maps/FourIsland_Mart/scripts.inc new file mode 100644 index 000000000..026d172a9 --- /dev/null +++ b/data/maps/FourIsland_Mart/scripts.inc @@ -0,0 +1,33 @@ +FourIsland_Mart_MapScripts:: @ 8171CAD + .byte 0 + +FourIsland_Mart_EventScript_171CAE:: @ 8171CAE + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_171CD4 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_171CD4:: @ 8171CD4 + .2byte ITEM_ULTRA_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_REVIVE + .2byte ITEM_ICE_HEAL + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +FourIsland_Mart_EventScript_171CE8:: @ 8171CE8 + msgbox gUnknown_81A3B14, 2 + end diff --git a/data/maps/FourIsland_Mart/text.inc b/data/maps/FourIsland_Mart/text.inc new file mode 100644 index 000000000..eba66dd37 --- /dev/null +++ b/data/maps/FourIsland_Mart/text.inc @@ -0,0 +1,16 @@ +Text_1A3A60:: @ 81A3A60 + .string "We've had a great and powerful\n" + .string "TRAINER grow up on this island.\p" + .string "I bet even you'd know her.\n" + .string "It's LORELEI of the ELITE FOUR!\p" + .string "When LORELEI was just a tyke,\n" + .string "I taught her about POKéMON.$" + +gUnknown_81A3B14:: @ 81A3B14 + .string "The SEVII ISLANDS are in a warm\n" + .string "region overall.\p" + .string "But there is one exception you\n" + .string "need to know about.\p" + .string "The ICEFALL CAVE is frigid because\n" + .string "of the POKéMON that live in it.$" + diff --git a/data/maps/FourIsland_PokemonCenter_1F/map.json b/data/maps/FourIsland_PokemonCenter_1F/map.json new file mode 100644 index 000000000..0ff5c17c2 --- /dev/null +++ b/data/maps/FourIsland_PokemonCenter_1F/map.json @@ -0,0 +1,102 @@ +{ + "id": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", + "name": "FourIsland_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_PokemonCenter_1F_EventScript_171BF9", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_PokemonCenter_1F_EventScript_171C02", + "flag": "0" + }, + { + "graphics_id": "31", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_PokemonCenter_1F_EventScript_171C0B", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_PokemonCenter_1F_EventScript_171C14", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": 0 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 3, + "y": 1, + "elevation": 0, + "script": "FourIsland_PokemonCenter_1F_EventScript_1ACDD0" + }, + { + "type": "bg_event_type_1", + "x": 2, + "y": 1, + "elevation": 0, + "script": "FourIsland_PokemonCenter_1F_EventScript_1ACDD0" + } + ] +} diff --git a/data/maps/FourIsland_PokemonCenter_1F/scripts.inc b/data/maps/FourIsland_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..cc4cb5ffa --- /dev/null +++ b/data/maps/FourIsland_PokemonCenter_1F/scripts.inc @@ -0,0 +1,27 @@ +FourIsland_PokemonCenter_1F_MapScripts:: @ 8171BEA + map_script 3, FourIsland_PokemonCenter_1F_MapScript1_171BF5 + map_script 5, FourIsland_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +FourIsland_PokemonCenter_1F_MapScript1_171BF5:: @ 8171BF5 + setrespawn SPAWN_FOUR_ISLAND + end + +FourIsland_PokemonCenter_1F_EventScript_171BF9:: @ 8171BF9 + lock + faceplayer + call EventScript_1A6578 + release + end + +FourIsland_PokemonCenter_1F_EventScript_171C02:: @ 8171C02 + msgbox gUnknown_81A3627, 2 + end + +FourIsland_PokemonCenter_1F_EventScript_171C0B:: @ 8171C0B + msgbox gUnknown_81A3697, 2 + end + +FourIsland_PokemonCenter_1F_EventScript_171C14:: @ 8171C14 + msgbox gUnknown_81A3734, 2 + end diff --git a/data/maps/FourIsland_PokemonCenter_1F/text.inc b/data/maps/FourIsland_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..59beaf443 --- /dev/null +++ b/data/maps/FourIsland_PokemonCenter_1F/text.inc @@ -0,0 +1,44 @@ +Text_1A3505:: @ 81A3505 + .string "Ready?\n" + .string "Boing!\p" + .string "We're having a BODY SLAM match\n" + .string "to see who wimps out first.\p" + .string "If you were to join us, you'd be\n" + .string "squashed like a bug, though…\p" + .string "How about I teach BODY SLAM to\n" + .string "a POKéMON of yours instead?$" + +Text_1A35C7:: @ 81A35C7 + .string "Come again!\n" + .string "Boing!$" + +Text_1A35DA:: @ 81A35DA + .string "Which POKéMON wants to learn how\n" + .string "to BODY SLAM?$" + +Text_1A3609:: @ 81A3609 + .string "Boioing!$" + +Text_1A3612:: @ 81A3612 + .string "それ ぼよーん!\n" + .string "おまえ おもいなあー!$" + +gUnknown_81A3627:: @ 81A3627 + .string "There's a rare kind of ICE POKéMON\n" + .string "that lives in the cave.\p" + .string "We get a lot of visitors hoping to\n" + .string "see that POKéMON.$" + +gUnknown_81A3697:: @ 81A3697 + .string "Oh? A POKéMON EGG?\n" + .string "…I have no idea.\p" + .string "…Oh, wait. The DAY-CARE people\n" + .string "in town were saying something.\p" + .string "They said that they'd found EGGS\n" + .string "before on their property.$" + +gUnknown_81A3734:: @ 81A3734 + .string "What's this?\p" + .string "The new POKéMON JOURNAL hasn't\n" + .string "arrived on this island?$" + diff --git a/data/maps/FourIsland_PokemonCenter_2F/map.json b/data/maps/FourIsland_PokemonCenter_2F/map.json new file mode 100644 index 000000000..f66cce064 --- /dev/null +++ b/data/maps/FourIsland_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_FOUR_ISLAND_POKEMON_CENTER_2F", + "name": "FourIsland_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_PokemonCenter_2F/scripts.inc b/data/maps/FourIsland_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..08482ec27 --- /dev/null +++ b/data/maps/FourIsland_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +FourIsland_PokemonCenter_2F_MapScripts:: @ 8171C1D + map_script 2, FourIsland_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, FourIsland_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, FourIsland_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, FourIsland_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +FourIsland_PokemonCenter_2F_EventScript_171C32:: @ 8171C32 + call EventScript_1BB4A3 + end + +EventScript_171C38:: @ 8171C38 + call EventScript_1BB6AB + end + +EventScript_171C3E:: @ 8171C3E + call EventScript_1BB7DE + end diff --git a/data/maps/FourIsland_PokemonDayCare/map.json b/data/maps/FourIsland_PokemonDayCare/map.json new file mode 100644 index 000000000..b9c45365a --- /dev/null +++ b/data/maps/FourIsland_PokemonDayCare/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FOUR_ISLAND_POKEMON_DAY_CARE", + "name": "FourIsland_PokemonDayCare", + "layout": "LAYOUT_FOUR_ISLAND_POKEMON_DAY_CARE", + "music": "BGM_FRLG_ISLAND_FOUR", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "35", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FourIsland_PokemonDayCare_EventScript_171940", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_PokemonDayCare/scripts.inc b/data/maps/FourIsland_PokemonDayCare/scripts.inc new file mode 100644 index 000000000..050e17c06 --- /dev/null +++ b/data/maps/FourIsland_PokemonDayCare/scripts.inc @@ -0,0 +1,211 @@ +FourIsland_PokemonDayCare_MapScripts:: @ 817193F + .byte 0 + +FourIsland_PokemonDayCare_EventScript_171940:: @ 8171940 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + specialvar VAR_RESULT, GetDaycareState + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171A2E + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_171A52 + compare_var_to_value VAR_RESULT, 3 + goto_if_eq EventScript_171B86 + msgbox gUnknown_81BF7E4, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171993 + msgbox gUnknown_81BF916 + release + end + +EventScript_171993:: @ 8171993 + specialvar VAR_RESULT, CountPartyNonEggMons + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171A1A + msgbox gUnknown_81BF839 + fadescreen 1 + special ChooseSendDaycareMon + waitstate + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_1719F7 + specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_171A24 + specialvar VAR_0x8005, GetSelectedMonNickAndSpecies + waitse + playmoncry VAR_0x8005, 0 + msgbox gUnknown_81BF860 + waitmoncry + special StoreSelectedPokemonInDaycare + incrementgamestat 47 + specialvar VAR_RESULT, GetDaycareState + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_171A01 + release + end + +EventScript_1719F7:: @ 81719F7 + msgbox gUnknown_81BF976 + release + end + +EventScript_171A01:: @ 8171A01 + msgbox gUnknown_81BF89F, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171993 + goto EventScript_1719F7 + end + +EventScript_171A1A:: @ 8171A1A + msgbox gUnknown_81BFAAD + release + end + +EventScript_171A24:: @ 8171A24 + msgbox gUnknown_81BFB09 + release + end + +EventScript_171A2E:: @ 8171A2E + msgbox gUnknown_81BF8F6 + release + end + +EventScript_171A38:: @ 8171A38 + msgbox gUnknown_81BF9CC + return + +EventScript_171A41:: @ 8171A41 + specialvar VAR_RESULT, GetNumLevelsGainedFromDaycare + compare_var_to_value VAR_RESULT, 0 + call_if 5, EventScript_171A38 + return + +EventScript_171A52:: @ 8171A52 + msgbox gUnknown_81BF988 + setvar VAR_0x8004, 0 + call EventScript_171A41 + msgbox gUnknown_81BF89F, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171993 + msgbox gUnknown_81BFAE8, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171A90 + goto EventScript_1719F7 + end + +EventScript_171A90:: @ 8171A90 + specialvar VAR_RESULT, CalculatePlayerPartyCount + compare_var_to_value VAR_RESULT, 6 + goto_if_eq EventScript_171B67 + specialvar VAR_RESULT, GetDaycareState + setvar VAR_0x8004, 0 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_171ACF + special ShowDaycareLevelMenu + waitstate + copyvar VAR_0x8004, VAR_RESULT + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1719F7 + goto EventScript_171ACF + end + +EventScript_171ACF:: @ 8171ACF + special GetDaycareCost + msgbox gUnknown_81BFA3B, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171AEB + goto EventScript_1719F7 + end + +EventScript_171AEB:: @ 8171AEB + specialvar VAR_RESULT, IsEnoughForCostInVar0x8005 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171B05 + msgbox gUnknown_81BF932 + release + end + +EventScript_171B05:: @ 8171B05 + applymovement 1, Movement_171B71 + waitmovement 0 + specialvar VAR_RESULT, TakePokemonFromDaycare + special SubtractMoneyFromVar0x8005 + playse SE_T_KAMI2 + msgbox gUnknown_81BFA67 + waitse + playmoncry VAR_RESULT, 0 + textcolor 3 + msgbox gUnknown_81BFA85 + call EventScript_1A6675 + waitmoncry + specialvar VAR_RESULT, GetDaycareState + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_171B4E + goto EventScript_1719F7 + end + +EventScript_171B4E:: @ 8171B4E + msgbox gUnknown_81BF94F, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171A90 + goto EventScript_1719F7 + end + +EventScript_171B67:: @ 8171B67 + msgbox gUnknown_81BF9EF + release + end + +Movement_171B71:: @ 8171B71 + step_1c + step_1c + step_03 + step_1c + step_1c + step_02 + step_1c + step_1c + step_01 + step_up + step_60 + step_1c + step_1c + step_1c + step_1c + step_1c + step_00 + step_61 + step_down + step_end + +EventScript_171B85:: @ 8171B85 + end + +EventScript_171B86:: @ 8171B86 + msgbox gUnknown_81BF988 + setvar VAR_0x8004, 0 + call EventScript_171A41 + setvar VAR_0x8004, 1 + call EventScript_171A41 + msgbox gUnknown_81BFAE8, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171A90 + msgbox gUnknown_81BF976 + release + end + +EventScript_171BBF:: @ 8171BBF + special ShowDaycareLevelMenu + waitstate + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1719F7 + copyvar VAR_0x8004, VAR_RESULT + specialvar VAR_RESULT, TakePokemonFromDaycare + msgbox gUnknown_81BFA67 + msgbox gUnknown_81BF976 + release + end diff --git a/data/maps/FuchsiaCity/map.json b/data/maps/FuchsiaCity/map.json new file mode 100644 index 000000000..4fc30ef40 --- /dev/null +++ b/data/maps/FuchsiaCity/map.json @@ -0,0 +1,409 @@ +{ + "id": "MAP_FUCHSIA_CITY", + "name": "FuchsiaCity", + "layout": "LAYOUT_FUCHSIA_CITY", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE19", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE18", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE15", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "27", + "x": 37, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_166DAF", + "flag": "0" + }, + { + "graphics_id": "128", + "x": 36, + "y": 15, + "elevation": 3, + "movement_type": "80", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "127", + "x": 33, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 33, + "y": 11, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_166DB8", + "flag": "0" + }, + { + "graphics_id": "117", + "x": 39, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "16", + "x": 14, + "y": 15, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_166D9D", + "flag": "0" + }, + { + "graphics_id": "135", + "x": 12, + "y": 20, + "elevation": 1, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 36, + "y": 20, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_166DA6", + "flag": "0" + }, + { + "graphics_id": "240", + "x": 8, + "y": 8, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "119", + "x": 16, + "y": 9, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 30, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "95", + "x": 21, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "95", + "x": 32, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_1BDF13", + "flag": "20" + }, + { + "graphics_id": "95", + "x": 24, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_1BDF13", + "flag": "21" + }, + { + "graphics_id": "20", + "x": 15, + "y": 11, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_1C4AEE", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 40, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_EventScript_166DC1", + "flag": "157" + } + ], + "warp_events": [ + { + "x": 24, + "y": 5, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "dest_warp_id": 2 + }, + { + "x": 33, + "y": 31, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_BUILDING1", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 15, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_MART", + "dest_warp_id": 1 + }, + { + "x": 28, + "y": 16, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_ZOO_BUILDING", + "dest_warp_id": 1 + }, + { + "x": 9, + "y": 32, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_GYM", + "dest_warp_id": 1 + }, + { + "x": 14, + "y": 31, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE1", + "dest_warp_id": 1 + }, + { + "x": 25, + "y": 31, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 38, + "y": 31, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", + "dest_warp_id": 1 + }, + { + "x": 39, + "y": 28, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", + "dest_warp_id": 3 + }, + { + "x": 39, + "y": 29, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", + "dest_warp_id": 3 + }, + { + "x": 19, + "y": 31, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE3", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 31, + "y": 18, + "elevation": 3, + "script": "FuchsiaCity_EventScript_166DDA" + }, + { + "type": "bg_event_type_0", + "x": 26, + "y": 18, + "elevation": 0, + "script": "FuchsiaCity_EventScript_166DE3" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 32, + "elevation": 0, + "script": "FuchsiaCity_EventScript_166E07" + }, + { + "type": "bg_event_type_0", + "x": 31, + "y": 31, + "elevation": 0, + "script": "FuchsiaCity_EventScript_166DF5" + }, + { + "type": "bg_event_type_0", + "x": 35, + "y": 10, + "elevation": 0, + "script": "FuchsiaCity_EventScript_166E38" + }, + { + "type": "bg_event_type_0", + "x": 38, + "y": 16, + "elevation": 3, + "script": "FuchsiaCity_EventScript_166E6A" + }, + { + "type": "bg_event_type_0", + "x": 41, + "y": 10, + "elevation": 0, + "script": "FuchsiaCity_EventScript_166E1F" + }, + { + "type": "bg_event_type_0", + "x": 17, + "y": 10, + "elevation": 0, + "script": "FuchsiaCity_EventScript_166E51" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 10, + "elevation": 0, + "script": "FuchsiaCity_EventScript_166E9C" + }, + { + "type": "bg_event_type_0", + "x": 17, + "y": 18, + "elevation": 3, + "script": "FuchsiaCity_EventScript_166E83" + }, + { + "type": "bg_event_type_0", + "x": 22, + "y": 7, + "elevation": 0, + "script": "FuchsiaCity_EventScript_166DEC" + }, + { + "type": "hidden_item", + "x": 33, + "y": 26, + "elevation": 3, + "item": "ITEM_MAX_REVIVE", + "flag": "133", + "unknown": 1 + } + ] +} diff --git a/data/maps/FuchsiaCity/scripts.inc b/data/maps/FuchsiaCity/scripts.inc new file mode 100644 index 000000000..9fefb3d86 --- /dev/null +++ b/data/maps/FuchsiaCity/scripts.inc @@ -0,0 +1,145 @@ +FuchsiaCity_MapScripts:: @ 8166D75 + map_script 3, FuchsiaCity_MapScript1_166D7B + .byte 0 + +FuchsiaCity_MapScript1_166D7B:: @ 8166D7B + setworldmapflag FLAG_WORLD_MAP_FUCHSIA_CITY + checkflag FLAG_0x272 + call_if 1, EventScript_166D91 + checkflag FLAG_0x272 + call_if 0, EventScript_166D97 + end + +EventScript_166D91:: @ 8166D91 + setvar VAR_0x4010, 118 + return + +EventScript_166D97:: @ 8166D97 + setvar VAR_0x4010, 147 + return + +FuchsiaCity_EventScript_166D9D:: @ 8166D9D + msgbox gUnknown_818056E, 2 + end + +FuchsiaCity_EventScript_166DA6:: @ 8166DA6 + msgbox gUnknown_81805C6, 2 + end + +FuchsiaCity_EventScript_166DAF:: @ 8166DAF + msgbox gUnknown_818062C, 2 + end + +FuchsiaCity_EventScript_166DB8:: @ 8166DB8 + msgbox gUnknown_818065A, 2 + end + +FuchsiaCity_EventScript_166DC1:: @ 8166DC1 + lock + faceplayer + setvar VAR_0x8004, 6 + setvar VAR_0x8005, 3 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8180ABD + release + end + +FuchsiaCity_EventScript_166DDA:: @ 8166DDA + msgbox gUnknown_81806AB, 3 + end + +FuchsiaCity_EventScript_166DE3:: @ 8166DE3 + msgbox gUnknown_81806D3, 3 + end + +FuchsiaCity_EventScript_166DEC:: @ 8166DEC + msgbox gUnknown_81806F0, 3 + end + +FuchsiaCity_EventScript_166DF5:: @ 8166DF5 + msgbox gUnknown_818070D, 3 + end + +EventScript_166DFE:: @ 8166DFE + msgbox gUnknown_8180727, 3 + end + +FuchsiaCity_EventScript_166E07:: @ 8166E07 + lockall + setvar VAR_0x8004, 6 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8180768 + releaseall + end + +FuchsiaCity_EventScript_166E1F:: @ 8166E1F + lockall + setvar VAR_0x8004, SPECIES_CHANSEY + special sub_80CBDCC + drawmonpic SPECIES_CHANSEY, 10, 3 + msgbox gUnknown_81807A9 + erasemonpic + releaseall + end + +FuchsiaCity_EventScript_166E38:: @ 8166E38 + lockall + setvar VAR_0x8004, SPECIES_VOLTORB + special sub_80CBDCC + drawmonpic SPECIES_VOLTORB, 10, 3 + msgbox gUnknown_81807D9 + erasemonpic + releaseall + end + +FuchsiaCity_EventScript_166E51:: @ 8166E51 + lockall + setvar VAR_0x8004, SPECIES_KANGASKHAN + special sub_80CBDCC + drawmonpic SPECIES_KANGASKHAN, 10, 3 + msgbox gUnknown_8180806 + erasemonpic + releaseall + end + +FuchsiaCity_EventScript_166E6A:: @ 8166E6A + lockall + setvar VAR_0x8004, SPECIES_SLOWPOKE + special sub_80CBDCC + drawmonpic SPECIES_SLOWPOKE, 10, 3 + msgbox gUnknown_8180859 + erasemonpic + releaseall + end + +FuchsiaCity_EventScript_166E83:: @ 8166E83 + lockall + setvar VAR_0x8004, SPECIES_LAPRAS + special sub_80CBDCC + drawmonpic SPECIES_LAPRAS, 10, 3 + msgbox gUnknown_8180887 + erasemonpic + releaseall + end + +FuchsiaCity_EventScript_166E9C:: @ 8166E9C + lockall + checkflag FLAG_0x272 + goto_if_eq EventScript_166EBE + setvar VAR_0x8004, SPECIES_KABUTO + special sub_80CBDCC + drawmonpic SPECIES_KABUTO, 10, 3 + msgbox gUnknown_81808FA + erasemonpic + releaseall + end + +EventScript_166EBE:: @ 8166EBE + setvar VAR_0x8004, SPECIES_OMANYTE + special sub_80CBDCC + drawmonpic SPECIES_OMANYTE, 10, 3 + msgbox gUnknown_81808AE + erasemonpic + releaseall + end diff --git a/data/maps/FuchsiaCity/text.inc b/data/maps/FuchsiaCity/text.inc new file mode 100644 index 000000000..2916a29cf --- /dev/null +++ b/data/maps/FuchsiaCity/text.inc @@ -0,0 +1,111 @@ +gUnknown_818056E:: @ 818056E + .string "Did you try the SAFARI GAME?\p" + .string "There are some rare POKéMON that\n" + .string "can only be caught there.$" + +gUnknown_81805C6:: @ 81805C6 + .string "The SAFARI ZONE has a zoo in front\n" + .string "of the entrance.\p" + .string "Out back is the SAFARI GAME for\n" + .string "catching POKéMON.$" + +gUnknown_818062C:: @ 818062C + .string "ERIK: Where's SARA?\n" + .string "I said I'd meet her here.$" + +gUnknown_818065A:: @ 818065A + .string "That item ball in there…\n" + .string "Were you wanting that?\p" + .string "Me, too!\n" + .string "…Huh? That's a POKéMON?$" + +gUnknown_81806AB:: @ 81806AB + .string "FUCHSIA CITY\n" + .string "Behold! It's Passion Pink!$" + +gUnknown_81806D3:: @ 81806D3 + .string "POKéMON PARADISE\n" + .string "SAFARI ZONE$" + +gUnknown_81806F0:: @ 81806F0 + .string "SAFARI GAME\n" + .string "POKéMON-U-CATCH!$" + +gUnknown_818070D:: @ 818070D + .string "SAFARI ZONE\n" + .string "WARDEN'S HOME$" + +gUnknown_8180727:: @ 8180727 + .string "POKéMON PARADISE!\n" + .string "Welcome to the SAFARI ZONE!\l" + .string "SAFARI ZONE OFFICE$" + +gUnknown_8180768:: @ 8180768 + .string "FUCHSIA CITY POKéMON GYM\n" + .string "LEADER: KOGA\l" + .string "The Poisonous Ninja Master$" + +gUnknown_81807A9:: @ 81807A9 + .string "Name: CHANSEY\n" + .string "Catching one is all up to chance.$" + +gUnknown_81807D9:: @ 81807D9 + .string "Name: VOLTORB\n" + .string "The very image of a POKé BALL.$" + +gUnknown_8180806:: @ 8180806 + .string "Name: KANGASKHAN\p" + .string "A maternal POKéMON that raises its\n" + .string "young in a pouch on its belly.$" + +gUnknown_8180859:: @ 8180859 + .string "Name: SLOWPOKE\n" + .string "Friendly and very slow moving.$" + +gUnknown_8180887:: @ 8180887 + .string "Name: LAPRAS\n" + .string "AKA the king of the seas.$" + +gUnknown_81808AE:: @ 81808AE + .string "Name: OMANYTE\n" + .string "An extremely rare POKéMON that was\l" + .string "regenerated from a fossil.$" + +gUnknown_81808FA:: @ 81808FA + .string "Name: KABUTO\n" + .string "An extremely rare POKéMON that was\l" + .string "regenerated from a fossil.$" + +Text_180945:: @ 8180945 + .string "……$" + +Text_180948:: @ 8180948 + .string "Aww, I wish I was a KANGASKHAN\n" + .string "baby.\p" + .string "I'd love to be a substitute for the\n" + .string "baby…\p" + .string "And snuggle in the mother\n" + .string "KANGASKHAN's belly pouch.\p" + .string "But only POKéMON can use the\n" + .string "technique SUBSTITUTE…\p" + .string "Want me to teach SUBSTITUTE to\n" + .string "one of your POKéMON?$" + +Text_180A32:: @ 8180A32 + .string "Oh, really?\n" + .string "SUBSTITUTE seems so fun…$" + +Text_180A57:: @ 8180A57 + .string "Which POKéMON wants to learn\n" + .string "SUBSTITUTE?$" + +Text_180A80:: @ 8180A80 + .string "Boy, what I'd give to crawl inside\n" + .string "a KANGASKHAN belly pouch…$" + +gUnknown_8180ABD:: @ 8180ABD + .string "My father is the GYM LEADER of\n" + .string "this town.\p" + .string "I'm training to use POISON POKéMON\n" + .string "as well as my father.$" + diff --git a/data/maps/FuchsiaCity_Building1/map.json b/data/maps/FuchsiaCity_Building1/map.json new file mode 100644 index 000000000..eea444164 --- /dev/null +++ b/data/maps/FuchsiaCity_Building1/map.json @@ -0,0 +1,123 @@ +{ + "id": "MAP_FUCHSIA_CITY_BUILDING1", + "name": "FuchsiaCity_Building1", + "layout": "LAYOUT_FUCHSIA_CITY_BUILDING1", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "33", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_Building1_EventScript_16D74C", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_Building1_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_Building1_EventScript_1BEAA2", + "flag": "441" + }, + { + "graphics_id": "0", + "x": 4, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_Building1_EventScript_1ACEB8", + "flag": "159" + } + ], + "warp_events": [ + { + "x": 5, + "y": 10, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 1 + }, + { + "x": 7, + "y": 10, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 7, + "y": 4, + "elevation": 0, + "script": "FuchsiaCity_Building1_EventScript_16D80D" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 4, + "elevation": 0, + "script": "FuchsiaCity_Building1_EventScript_16D804" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 4, + "elevation": 0, + "script": "FuchsiaCity_Building1_EventScript_16D804" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 4, + "elevation": 0, + "script": "FuchsiaCity_Building1_EventScript_16D80D" + } + ] +} diff --git a/data/maps/FuchsiaCity_Building1/scripts.inc b/data/maps/FuchsiaCity_Building1/scripts.inc new file mode 100644 index 000000000..58cacf92e --- /dev/null +++ b/data/maps/FuchsiaCity_Building1/scripts.inc @@ -0,0 +1,66 @@ +FuchsiaCity_Building1_MapScripts:: @ 816D74B + .byte 0 + +FuchsiaCity_Building1_EventScript_16D74C:: @ 816D74C + lock + faceplayer + checkflag FLAG_0x23A + goto_if_eq EventScript_16D7FA + checkflag FLAG_0x189 + goto_if_eq EventScript_16D780 + msgbox gUnknown_8198DF9, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_16D7E8 + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16D7F1 + release + end + +EventScript_16D780:: @ 816D780 + textcolor 3 + playfanfare MUS_ME_WAZA + message Text_198E84 + waitmessage + waitfanfare + msgbox gUnknown_8198EAA + call EventScript_1A6675 + checkplayergender + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16D7D6 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_16D7DF + additem ITEM_HM04, 1 + giveitemfanfaremsg gUnknown_8199068, ITEM_HM04 + setflag FLAG_0x23A + removeitem ITEM_GOLD_TEETH, 1 + release + end + +EventScript_16D7D6:: @ 816D7D6 + msgbox gUnknown_8198ECA + return + +EventScript_16D7DF:: @ 816D7DF + msgbox gUnknown_8198F96 + return + +EventScript_16D7E8:: @ 816D7E8 + msgbox gUnknown_8198E3F + return + +EventScript_16D7F1:: @ 816D7F1 + msgbox gUnknown_8198E63 + return + +EventScript_16D7FA:: @ 816D7FA + msgbox gUnknown_819908A + release + end + +FuchsiaCity_Building1_EventScript_16D804:: @ 816D804 + msgbox gUnknown_819913C, 3 + end + +FuchsiaCity_Building1_EventScript_16D80D:: @ 816D80D + msgbox gUnknown_8199167, 3 + end diff --git a/data/maps/FuchsiaCity_Building1/text.inc b/data/maps/FuchsiaCity_Building1/text.inc new file mode 100644 index 000000000..dd4069e1f --- /dev/null +++ b/data/maps/FuchsiaCity_Building1/text.inc @@ -0,0 +1,64 @@ +gUnknown_8198DF9:: @ 8198DF9 + .string "WARDEN: Hif fuff hefifoo!\p" + .string "Ha lof ha feef ee hafahi ho.\n" + .string "Heff hee fwee!$" + +gUnknown_8198E3F:: @ 8198E3F + .string "Ah howhee ho hoo!\n" + .string "Eef ee hafahi ho!$" + +gUnknown_8198E63:: @ 8198E63 + .string "Ha?\n" + .string "He ohay heh ha hoo ee haheh!$" + +Text_198E84:: @ 8198E84 + .string "{PLAYER} gave the GOLD TEETH\n" + .string "to the WARDEN.$" + +gUnknown_8198EAA:: @ 8198EAA + .string "The WARDEN popped in his teeth!$" + +gUnknown_8198ECA:: @ 8198ECA + .string "WARDEN: Thanks, son!\n" + .string "You're a real lifesaver!\p" + .string "No one could understand a word\n" + .string "that I said, not a one!\p" + .string "I was too ashamed to show my face\n" + .string "around the OFFICE, even.\p" + .string "Let me give you something for your\n" + .string "trouble.$" + +gUnknown_8198F96:: @ 8198F96 + .string "WARDEN: Thank you, lassie!\n" + .string "You're a real lifesaver!\p" + .string "No one could understand a word\n" + .string "that I said, not a one!\p" + .string "I was too ashamed to show my face\n" + .string "around the OFFICE, even.\p" + .string "Let me give you something for your\n" + .string "trouble.$" + +gUnknown_8199068:: @ 8199068 + .string "{PLAYER} received HM04\n" + .string "from the WARDEN.$" + +gUnknown_819908A:: @ 819908A + .string "WARDEN: Inside HM04 you'll find\n" + .string "STRENGTH.\p" + .string "It lets POKéMON move boulders when\n" + .string "you're outside of battle.\p" + .string "Oh yes, did you find the SECRET\n" + .string "HOUSE in the SAFARI ZONE?$" + +Text_19912B:: @ 819912B + .string "なんや にもつ\n" + .string "いっぱいやんけ!$" + +gUnknown_819913C:: @ 819913C + .string "POKéMON photos and fossils are on\n" + .string "display.$" + +gUnknown_8199167:: @ 8199167 + .string "Old POKéMON merchandise is on\n" + .string "display.$" + diff --git a/data/maps/FuchsiaCity_Gym/map.json b/data/maps/FuchsiaCity_Gym/map.json new file mode 100644 index 000000000..c1106fb9c --- /dev/null +++ b/data/maps/FuchsiaCity_Gym/map.json @@ -0,0 +1,161 @@ +{ + "id": "MAP_FUCHSIA_CITY_GYM", + "name": "FuchsiaCity_Gym", + "layout": "LAYOUT_FUCHSIA_CITY_GYM", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "26", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "18", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "FuchsiaCity_Gym_EventScript_16D65A", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 2, + "y": 9, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "FuchsiaCity_Gym_EventScript_16D643", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 11, + "y": 11, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "FuchsiaCity_Gym_EventScript_16D61F", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 13, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "FuchsiaCity_Gym_EventScript_16D608", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "FuchsiaCity_Gym_EventScript_16D5F1", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 2, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "FuchsiaCity_Gym_EventScript_16D671", + "flag": "0" + }, + { + "graphics_id": "84", + "x": 7, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_Gym_EventScript_16D54E", + "flag": "0" + }, + { + "graphics_id": "91", + "x": 11, + "y": 19, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_Gym_EventScript_16D688", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 21, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 4 + }, + { + "x": 7, + "y": 21, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 4 + }, + { + "x": 8, + "y": 21, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 19, + "elevation": 0, + "script": "FuchsiaCity_Gym_EventScript_16D6A7" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 19, + "elevation": 0, + "script": "FuchsiaCity_Gym_EventScript_16D6A7" + } + ] +} diff --git a/data/maps/FuchsiaCity_Gym/scripts.inc b/data/maps/FuchsiaCity_Gym/scripts.inc new file mode 100644 index 000000000..6b57f6377 --- /dev/null +++ b/data/maps/FuchsiaCity_Gym/scripts.inc @@ -0,0 +1,102 @@ +FuchsiaCity_Gym_MapScripts:: @ 816D54D + .byte 0 + +FuchsiaCity_Gym_EventScript_16D54E:: @ 816D54E + setvar VAR_0x8004, 6 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + trainerbattle 1, 418, 0, Text_19832E, Text_198444, EventScript_16D580 + checkflag FLAG_0x259 + goto_if 0, EventScript_16D5A6 + msgbox gUnknown_8198481 + release + end + +EventScript_16D580:: @ 816D580 + setvar VAR_0x8004, 6 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + clearflag FLAG_0x09F + setflag FLAG_0x4B4 + setflag FLAG_UNK824 + setvar VAR_0x8008, 5 + call EventScript_1A6B18 + goto EventScript_16D5A6 + end + +EventScript_16D5A6:: @ 816D5A6 + msgbox gUnknown_819850E + checkitemspace ITEM_TM06, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16D5E7 + additem ITEM_TM06, 1 + giveitemfanfaremsg gUnknown_819858F, ITEM_TM06 + setflag FLAG_0x259 + msgbox gUnknown_81985AB + release + end + +EventScript_16D5E7:: @ 816D5E7 + msgbox gUnknown_819860D + release + end + +FuchsiaCity_Gym_EventScript_16D5F1:: @ 816D5F1 + trainerbattle 0, 294, 0, Text_198866, Text_1988B6 + msgbox gUnknown_81988CB, 6 + end + +FuchsiaCity_Gym_EventScript_16D608:: @ 816D608 + trainerbattle 0, 295, 0, Text_19891F, Text_19897F + msgbox gUnknown_8198985, 6 + end + +FuchsiaCity_Gym_EventScript_16D61F:: @ 816D61F + trainerbattle 0, 288, 0, Text_19871E, Text_198779 + setvar VAR_0x8004, 6 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8198787, 6 + end + +FuchsiaCity_Gym_EventScript_16D643:: @ 816D643 + trainerbattle 0, 289, 0, Text_1989A1, Text_1989EA + msgbox gUnknown_8198A10, 6 + end + +FuchsiaCity_Gym_EventScript_16D65A:: @ 816D65A + trainerbattle 0, 292, 0, Text_198629, Text_1986B4 + msgbox gUnknown_81986C9, 6 + end + +FuchsiaCity_Gym_EventScript_16D671:: @ 816D671 + trainerbattle 0, 293, 0, Text_1987E8, Text_198812 + msgbox gUnknown_8198825, 6 + end + +FuchsiaCity_Gym_EventScript_16D688:: @ 816D688 + lock + faceplayer + checkflag FLAG_0x4B4 + goto_if_eq EventScript_16D69D + msgbox gUnknown_8198A5E + release + end + +EventScript_16D69D:: @ 816D69D + msgbox gUnknown_8198B1D + release + end + +FuchsiaCity_Gym_EventScript_16D6A7:: @ 816D6A7 + lockall + checkflag FLAG_UNK824 + goto_if_eq EventScript_16D6BB + msgbox gUnknown_8198B4B + releaseall + end + +EventScript_16D6BB:: @ 816D6BB + msgbox gUnknown_8198B81 + releaseall + end diff --git a/data/maps/FuchsiaCity_Gym/text.inc b/data/maps/FuchsiaCity_Gym/text.inc new file mode 100644 index 000000000..3967461b5 --- /dev/null +++ b/data/maps/FuchsiaCity_Gym/text.inc @@ -0,0 +1,156 @@ +Text_19832E:: @ 819832E + .string "KOGA: Fwahahaha!\p" + .string "A mere child like you dares to\n" + .string "challenge me?\p" + .string "The very idea makes me shiver\n" + .string "with mirth!\p" + .string "Very well, I shall show you true\n" + .string "terror as a ninja master.\p" + .string "Poison brings steady doom.\n" + .string "Sleep renders foes helpless.\p" + .string "Despair to the creeping horror of\n" + .string "POISON-type POKéMON!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +Text_198444:: @ 8198444 + .string "Humph!\n" + .string "You have proven your worth!\p" + .string "Here!\n" + .string "Take the SOULBADGE!$" + +gUnknown_8198481:: @ 8198481 + .string "When afflicted by TOXIC, a POKéMON\n" + .string "suffers more and more.\p" + .string "It suffers worsening damage as the\n" + .string "battle wears on!\p" + .string "It will surely terrorize foes!$" + +gUnknown_819850E:: @ 819850E + .string "Now that you have the SOULBADGE,\n" + .string "the DEFENSE of your POKéMON rises.\p" + .string "It also lets you SURF outside of\n" + .string "battle.\p" + .string "Ah!\n" + .string "Take this, too!$" + +gUnknown_819858F:: @ 819858F + .string "{PLAYER} received TM06\n" + .string "from KOGA.$" + +gUnknown_81985AB:: @ 81985AB + .string "Sealed within that TM06 lies\n" + .string "TOXIC!\p" + .string "It is a secret technique dating\n" + .string "back some four hundred years.$" + +gUnknown_819860D:: @ 819860D + .string "Make space for this, child!$" + +Text_198629:: @ 8198629 + .string "Strength isn't the key for POKéMON.\n" + .string "Do you understand this?\p" + .string "POKéMON is about strategy!\p" + .string "I'll show you how strategy can\n" + .string "beat brute strength.$" + +Text_1986B4:: @ 81986B4 + .string "What?\n" + .string "Extraordinary!$" + +gUnknown_81986C9:: @ 81986C9 + .string "So, you mix brawn with brains?\n" + .string "Good strategy!\p" + .string "That's remarkable for a child\n" + .string "TRAINER.$" + +Text_19871E:: @ 819871E + .string "I was a magician once upon a time.\p" + .string "But I dreamt of becoming a ninja,\n" + .string "so I joined this GYM.$" + +Text_198779:: @ 8198779 + .string "I'm done for!$" + +gUnknown_8198787:: @ 8198787 + .string "Even though I've lost, I will keep\n" + .string "training according to the teachings\l" + .string "of KOGA, my ninja master.$" + +Text_1987E8:: @ 81987E8 + .string "Let's see you beat my special\n" + .string "techniques!$" + +Text_198812:: @ 8198812 + .string "You had me fooled!$" + +gUnknown_8198825:: @ 8198825 + .string "I like poison and sleep techniques,\n" + .string "as they linger after battle!$" + +Text_198866:: @ 8198866 + .string "Stop right there!\p" + .string "The famed invisible walls of\n" + .string "FUCHSIA GYM have you frustrated?$" + +Text_1988B6:: @ 81988B6 + .string "Whoa!\n" + .string "You've got it!$" + +gUnknown_81988CB:: @ 81988CB + .string "You impressed me!\n" + .string "Here's a hint!\p" + .string "Look very closely for gaps in the\n" + .string "invisible walls!$" + +Text_19891F:: @ 819891F + .string "I also study the way of the ninja\n" + .string "with Master KOGA!\p" + .string "Ninja have a long history of using\n" + .string "animals!$" + +Text_19897F:: @ 819897F + .string "Awoo!$" + +gUnknown_8198985:: @ 8198985 + .string "I still have much to learn.$" + +Text_1989A1:: @ 81989A1 + .string "Master KOGA comes from a long line\n" + .string "of ninjas.\p" + .string "What did you descend from?$" + +Text_1989EA:: @ 81989EA + .string "You're more skilled than I'd\n" + .string "thought!$" + +gUnknown_8198A10:: @ 8198A10 + .string "Where there is light, there is\n" + .string "shadow!\p" + .string "Light and shadow!\n" + .string "Which do you choose?$" + +gUnknown_8198A5E:: @ 8198A5E + .string "Yo!\n" + .string "Champ in the making!\p" + .string "FUCHSIA GYM is a tricked-up place.\n" + .string "It's riddled with invisible walls!\p" + .string "KOGA might appear close, but he's\n" + .string "blocked off.\p" + .string "You have to find gaps in the walls\n" + .string "to reach him.$" + +gUnknown_8198B1D:: @ 8198B1D + .string "It's amazing how ninja can terrify,\n" + .string "even now!$" + +gUnknown_8198B4B:: @ 8198B4B + .string "FUCHSIA POKéMON GYM\n" + .string "LEADER: KOGA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +gUnknown_8198B81:: @ 8198B81 + .string "FUCHSIA POKéMON GYM\n" + .string "LEADER: KOGA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/FuchsiaCity_House1/map.json b/data/maps/FuchsiaCity_House1/map.json new file mode 100644 index 000000000..8e4d8ad8c --- /dev/null +++ b/data/maps/FuchsiaCity_House1/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_FUCHSIA_CITY_HOUSE1", + "name": "FuchsiaCity_House1", + "layout": "LAYOUT_HOUSE1", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_House1_EventScript_16D6CF", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_House1_EventScript_16D6C6", + "flag": "0" + }, + { + "graphics_id": "16", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_House1_EventScript_16D6E8", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 5 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 5 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_House1/scripts.inc b/data/maps/FuchsiaCity_House1/scripts.inc new file mode 100644 index 000000000..9ff2ecb93 --- /dev/null +++ b/data/maps/FuchsiaCity_House1/scripts.inc @@ -0,0 +1,20 @@ +FuchsiaCity_House1_MapScripts:: @ 816D6C5 + .byte 0 + +FuchsiaCity_House1_EventScript_16D6C6:: @ 816D6C6 + msgbox gUnknown_8198BBB, 2 + end + +FuchsiaCity_House1_EventScript_16D6CF:: @ 816D6CF + lock + faceplayer + setvar VAR_0x8004, 13 @ FAMECHECKER_BILL + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8198C1F + release + end + +FuchsiaCity_House1_EventScript_16D6E8:: @ 816D6E8 + msgbox gUnknown_8198C7B, 2 + end diff --git a/data/maps/FuchsiaCity_House1/text.inc b/data/maps/FuchsiaCity_House1/text.inc new file mode 100644 index 000000000..e34e5d19e --- /dev/null +++ b/data/maps/FuchsiaCity_House1/text.inc @@ -0,0 +1,17 @@ +gUnknown_8198BBB:: @ 8198BBB + .string "The SAFARI ZONE's WARDEN is old, \n" + .string "but he's still very much active.\p" + .string "All his teeth are false, though.$" + +gUnknown_8198C1F:: @ 8198C1F + .string "Hmm?\n" + .string "You've met BILL?\p" + .string "He's my grandson!\p" + .string "He always liked collecting things,\n" + .string "even as a child!$" + +gUnknown_8198C7B:: @ 8198C7B + .string "BILL files his own POKéMON data on\n" + .string "his PC.\p" + .string "Did he show you?$" + diff --git a/data/maps/FuchsiaCity_House2/map.json b/data/maps/FuchsiaCity_House2/map.json new file mode 100644 index 000000000..0e443e100 --- /dev/null +++ b/data/maps/FuchsiaCity_House2/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_FUCHSIA_CITY_HOUSE2", + "name": "FuchsiaCity_House2", + "layout": "LAYOUT_FUCHSIA_CITY_HOUSE2", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "57", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_House2_EventScript_16D817", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 7 + }, + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 7 + }, + { + "x": 4, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 7 + }, + { + "x": 3, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 8 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_House2/scripts.inc b/data/maps/FuchsiaCity_House2/scripts.inc new file mode 100644 index 000000000..0568d4e4f --- /dev/null +++ b/data/maps/FuchsiaCity_House2/scripts.inc @@ -0,0 +1,36 @@ +FuchsiaCity_House2_MapScripts:: @ 816D816 + .byte 0 + +FuchsiaCity_House2_EventScript_16D817:: @ 816D817 + lock + faceplayer + checkflag FLAG_0x244 + goto_if_eq EventScript_16D83F + msgbox gUnknown_819918E, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16D849 + msgbox gUnknown_8199337 + release + end + +EventScript_16D83F:: @ 816D83F + msgbox gUnknown_8199354 + release + end + +EventScript_16D849:: @ 816D849 + msgbox gUnknown_8199207 + checkitemspace ITEM_GOOD_ROD, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16D88A + additem ITEM_GOOD_ROD, 1 + giveitemfanfaremsg gUnknown_819925E, ITEM_GOOD_ROD + msgbox gUnknown_8199296 + setflag FLAG_0x244 + release + end + +EventScript_16D88A:: @ 816D88A + msgbox gUnknown_819937E + release + end diff --git a/data/maps/FuchsiaCity_House2/text.inc b/data/maps/FuchsiaCity_House2/text.inc new file mode 100644 index 000000000..bf425f98e --- /dev/null +++ b/data/maps/FuchsiaCity_House2/text.inc @@ -0,0 +1,37 @@ +gUnknown_819918E:: @ 819918E + .string "I'm the FISHING GURU's older\n" + .string "brother.\p" + .string "I simply looove fishing!\n" + .string "I can't bear to go without.\p" + .string "Tell me, do you like to fish?$" + +gUnknown_8199207:: @ 8199207 + .string "Grand! I like your style.\n" + .string "I think we can be friends.\p" + .string "Take this and fish, young friend!$" + +gUnknown_819925E:: @ 819925E + .string "{PLAYER} received a GOOD ROD from\n" + .string "the FISHING GURU's brother.$" + +gUnknown_8199296:: @ 8199296 + .string "Fishing is a way of life!\n" + .string "It is like the finest poetry.\p" + .string "A crummy OLD ROD could only catch\n" + .string "MAGIKARP, yes?\p" + .string "But with a GOOD ROD, you can\n" + .string "catch much better POKéMON.$" + +gUnknown_8199337:: @ 8199337 + .string "Oh…\n" + .string "That's so disappointing…$" + +gUnknown_8199354:: @ 8199354 + .string "Hello there, {PLAYER}!\p" + .string "How are the fish biting?$" + +gUnknown_819937E:: @ 819937E + .string "Oh, no!\p" + .string "I had a gift for you, but you have\n" + .string "no room for it!$" + diff --git a/data/maps/FuchsiaCity_House3/map.json b/data/maps/FuchsiaCity_House3/map.json new file mode 100644 index 000000000..dc819ebfc --- /dev/null +++ b/data/maps/FuchsiaCity_House3/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_FUCHSIA_CITY_HOUSE3", + "name": "FuchsiaCity_House3", + "layout": "LAYOUT_HOUSE1", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_House3_EventScript_16D895", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 10 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_House3/scripts.inc b/data/maps/FuchsiaCity_House3/scripts.inc new file mode 100644 index 000000000..e295ad46d --- /dev/null +++ b/data/maps/FuchsiaCity_House3/scripts.inc @@ -0,0 +1,60 @@ +FuchsiaCity_House3_MapScripts:: @ 816D894 + .byte 0 + +FuchsiaCity_House3_EventScript_16D895:: @ 816D895 + lock + faceplayer + msgbox gUnknown_81993B9, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16D8B0 + goto EventScript_16D941 + end + +EventScript_16D8B0:: @ 816D8B0 + msgbox gUnknown_8199421 + special sub_80BF8FC + waitstate + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_16D941 + special sub_80BFC14 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16D937 + special ScrSpecial_CountPokemonMoves + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16D92A + msgbox gUnknown_8199445 + fadescreen 1 + special sub_80BF9BC + fadescreen 0 + compare_var_to_value VAR_0x8005, 4 + goto_if_eq EventScript_16D8B0 + special ScrSpecial_GetPokemonNicknameAndMoveName + msgbox gUnknown_8199485, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16D919 + goto EventScript_16D941 + end + +EventScript_16D919:: @ 816D919 + special sub_80BFBA8 + playfanfare MUS_ME_WASURE + waitfanfare + msgbox gUnknown_81994B1 + release + end + +EventScript_16D92A:: @ 816D92A + special ScrSpecial_GetPokemonNicknameAndMoveName + msgbox gUnknown_8199465 + release + end + +EventScript_16D937:: @ 816D937 + msgbox gUnknown_819951F + release + end + +EventScript_16D941:: @ 816D941 + msgbox gUnknown_81994EA + release + end diff --git a/data/maps/FuchsiaCity_House3/text.inc b/data/maps/FuchsiaCity_House3/text.inc new file mode 100644 index 000000000..e4fbd2f6a --- /dev/null +++ b/data/maps/FuchsiaCity_House3/text.inc @@ -0,0 +1,35 @@ +gUnknown_81993B9:: @ 81993B9 + .string "Uh…\n" + .string "Oh, yes, I'm the MOVE DELETER.\p" + .string "I can make POKéMON forget their\n" + .string "moves.\p" + .string "Would you like me to do that?$" + +gUnknown_8199421:: @ 8199421 + .string "Which POKéMON should forget a\n" + .string "move?$" + +gUnknown_8199445:: @ 8199445 + .string "Which move should be forgotten?$" + +gUnknown_8199465:: @ 8199465 + .string "{STR_VAR_1} seems to know only one\n" + .string "move…$" + +gUnknown_8199485:: @ 8199485 + .string "Hm! {STR_VAR_1}'s {STR_VAR_2}?\n" + .string "That move should be forgotten?$" + +gUnknown_81994B1:: @ 81994B1 + .string "It worked to perfection!\p" + .string "{STR_VAR_1} has forgotten\n" + .string "{STR_VAR_2} completely.$" + +gUnknown_81994EA:: @ 81994EA + .string "Come again if there are other\n" + .string "moves to be forgotten.$" + +gUnknown_819951F:: @ 819951F + .string "What?\n" + .string "No EGG should know any moves.$" + diff --git a/data/maps/FuchsiaCity_Mart/map.json b/data/maps/FuchsiaCity_Mart/map.json new file mode 100644 index 000000000..bfd8fe520 --- /dev/null +++ b/data/maps/FuchsiaCity_Mart/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_FUCHSIA_CITY_MART", + "name": "FuchsiaCity_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_Mart_EventScript_16D4F3", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_Mart_EventScript_16D4EA", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_Mart_EventScript_16D4E1", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 2 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_Mart/scripts.inc b/data/maps/FuchsiaCity_Mart/scripts.inc new file mode 100644 index 000000000..fe95c748c --- /dev/null +++ b/data/maps/FuchsiaCity_Mart/scripts.inc @@ -0,0 +1,35 @@ +FuchsiaCity_Mart_MapScripts:: @ 816D4E0 + .byte 0 + +FuchsiaCity_Mart_EventScript_16D4E1:: @ 816D4E1 + msgbox gUnknown_8198134, 2 + end + +FuchsiaCity_Mart_EventScript_16D4EA:: @ 816D4EA + msgbox gUnknown_81980BC, 2 + end + +FuchsiaCity_Mart_EventScript_16D4F3:: @ 816D4F3 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16D518 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16D518:: @ 816D518 + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end diff --git a/data/maps/FuchsiaCity_Mart/text.inc b/data/maps/FuchsiaCity_Mart/text.inc new file mode 100644 index 000000000..69f9bc5f8 --- /dev/null +++ b/data/maps/FuchsiaCity_Mart/text.inc @@ -0,0 +1,10 @@ +gUnknown_81980BC:: @ 81980BC + .string "Don't they have any pennants\n" + .string "promoting the SAFARI ZONE?\p" + .string "How about some paper lanterns?\n" + .string "Aren't there even any calendars?$" + +gUnknown_8198134:: @ 8198134 + .string "Did you try X SPEED?\n" + .string "It speeds up a POKéMON in battle.$" + diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json new file mode 100644 index 000000000..bbf19625b --- /dev/null +++ b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", + "name": "FuchsiaCity_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D700", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D709", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 13, + "y": 3, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D712", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D71B", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 6 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 6 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 6 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc b/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..062f93acc --- /dev/null +++ b/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc @@ -0,0 +1,27 @@ +FuchsiaCity_PokemonCenter_1F_MapScripts:: @ 816D6F1 + map_script 3, FuchsiaCity_PokemonCenter_1F_MapScript1_16D6FC + map_script 5, FuchsiaCity_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +FuchsiaCity_PokemonCenter_1F_MapScript1_16D6FC:: @ 816D6FC + setrespawn SPAWN_FUCHSIA_CITY + end + +FuchsiaCity_PokemonCenter_1F_EventScript_16D700:: @ 816D700 + lock + faceplayer + call EventScript_1A6578 + release + end + +FuchsiaCity_PokemonCenter_1F_EventScript_16D709:: @ 816D709 + msgbox gUnknown_8198CB7, 2 + end + +FuchsiaCity_PokemonCenter_1F_EventScript_16D712:: @ 816D712 + msgbox gUnknown_8198D2E, 2 + end + +FuchsiaCity_PokemonCenter_1F_EventScript_16D71B:: @ 816D71B + msgbox gUnknown_8198D9B, 2 + end diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc b/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..7d3a627be --- /dev/null +++ b/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc @@ -0,0 +1,18 @@ +gUnknown_8198CB7:: @ 8198CB7 + .string "You can't become a good TRAINER\n" + .string "with just one strong POKéMON.\p" + .string "But raising many POKéMON evenly\n" + .string "is no easy task, either.$" + +gUnknown_8198D2E:: @ 8198D2E + .string "There's a narrow trail west of\n" + .string "VIRIDIAN CITY.\p" + .string "It goes to the POKéMON LEAGUE HQ.\n" + .string "The HQ governs all TRAINERS.$" + +gUnknown_8198D9B:: @ 8198D9B + .string "If you're working on a POKéDEX,\n" + .string "visit the SAFARI ZONE.\p" + .string "All sorts of rare POKéMON breed\n" + .string "there.$" + diff --git a/data/maps/FuchsiaCity_PokemonCenter_2F/map.json b/data/maps/FuchsiaCity_PokemonCenter_2F/map.json new file mode 100644 index 000000000..62e56bf0b --- /dev/null +++ b/data/maps/FuchsiaCity_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_FUCHSIA_CITY_POKEMON_CENTER_2F", + "name": "FuchsiaCity_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_PokemonCenter_2F/scripts.inc b/data/maps/FuchsiaCity_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..322dd3930 --- /dev/null +++ b/data/maps/FuchsiaCity_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +FuchsiaCity_PokemonCenter_2F_MapScripts:: @ 816D724 + map_script 2, FuchsiaCity_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, FuchsiaCity_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, FuchsiaCity_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, FuchsiaCity_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +FuchsiaCity_PokemonCenter_2F_EventScript_16D739:: @ 816D739 + call EventScript_1BB4A3 + end + +EventScript_16D73F:: @ 816D73F + call EventScript_1BB6AB + end + +EventScript_16D745:: @ 816D745 + call EventScript_1BB7DE + end diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json new file mode 100644 index 000000000..d986f0c05 --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json @@ -0,0 +1,103 @@ +{ + "id": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "name": "FuchsiaCity_SafariZone_Entrance", + "layout": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "47", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D4B7", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 0 + }, + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 4, + "y": 3, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D36D" + }, + { + "type": "trigger", + "x": 5, + "y": 3, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D379" + }, + { + "type": "trigger", + "x": 3, + "y": 3, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D385" + } + ], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc new file mode 100644 index 000000000..a2ee86113 --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc @@ -0,0 +1,216 @@ +FuchsiaCity_SafariZone_Entrance_MapScripts:: @ 816D2A8 + map_script 2, FuchsiaCity_SafariZone_Entrance_MapScript1_16D2AE + .byte 0 + +FuchsiaCity_SafariZone_Entrance_MapScript1_16D2AE:: @ 816D2AE + map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1, EventScript_16D2F2 + map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2, EventScript_16D312 + map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3, EventScript_16D2C8 + .2byte 0 + +EventScript_16D2C8:: @ 816D2C8 + lockall + textcolor 0 + applymovement 255, Movement_16D36A + waitmovement 0 + msgbox gUnknown_8197E85 + closemessage + applymovement 255, Movement_16D367 + waitmovement 0 + special sub_80A0EEC + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 + releaseall + end + +EventScript_16D2F2:: @ 816D2F2 + lockall + textcolor 0 + msgbox gUnknown_8197E85 + closemessage + applymovement 255, Movement_16D362 + waitmovement 0 + special sub_80A0EEC + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 + releaseall + end + +EventScript_16D312:: @ 816D312 + lockall + textcolor 0 + msgbox gUnknown_8197E1A, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16D345 + msgbox gUnknown_8197E48 + closemessage + applymovement 255, Movement_16D362 + waitmovement 0 + special sub_80A0EEC + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 + releaseall + end + +EventScript_16D345:: @ 816D345 + msgbox gUnknown_8197E7A + closemessage + applymovement 255, Movement_16D365 + waitmovement 0 + warp MAP_SAFARI_ZONE_CENTER, 255, 26, 30 + waitstate + end + +Movement_16D362:: @ 816D362 + step_10 + step_10 + step_end + +Movement_16D365:: @ 816D365 + step_11 + step_end + +Movement_16D367:: @ 816D367 + step_10 + step_10 + step_end + +Movement_16D36A:: @ 816D36A + step_10 + step_1b + step_end + +FuchsiaCity_SafariZone_Entrance_EventScript_16D36D:: @ 816D36D + lockall + setvar VAR_0x4002, 0 + goto EventScript_16D391 + end + +FuchsiaCity_SafariZone_Entrance_EventScript_16D379:: @ 816D379 + lockall + setvar VAR_0x4002, 1 + goto EventScript_16D391 + end + +FuchsiaCity_SafariZone_Entrance_EventScript_16D385:: @ 816D385 + lockall + setvar VAR_0x4002, 2 + goto EventScript_16D391 + end + +EventScript_16D391:: @ 816D391 + textcolor 0 + msgbox gUnknown_8197C6B + applymovement 255, Movement_1A75EB + waitmovement 0 + showmoneybox 0, 0, 0 + msgbox gUnknown_8197C87, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16D3CA + msgbox gUnknown_8197DE9 + goto EventScript_16D49A + end + +EventScript_16D3CA:: @ 816D3CA + call EventScript_16D462 + checkmoney 500, 0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16D48C + takemoney 500, 0 + updatemoneybox 0, 0, 0 + msgbox gUnknown_8197D07 + textcolor 3 + playfanfare MUS_FANFA1 + message Text_197D50 + waitfanfare + call EventScript_1A6675 + msgbox gUnknown_8197D80 + closemessage + hidemoneybox + .byte 0 + .byte 0 + compare_var_to_value VAR_0x4002, 0 + call_if 1, EventScript_16D44C + compare_var_to_value VAR_0x4002, 1 + call_if 1, EventScript_16D441 + compare_var_to_value VAR_0x4002, 2 + call_if 1, EventScript_16D457 + special sub_80A0EC4 + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2 + warp MAP_SAFARI_ZONE_CENTER, 255, 26, 30 + waitstate + end + +EventScript_16D441:: @ 816D441 + applymovement 255, Movement_16D4AF + waitmovement 0 + return + +EventScript_16D44C:: @ 816D44C + applymovement 255, Movement_16D4AC + waitmovement 0 + return + +EventScript_16D457:: @ 816D457 + applymovement 255, Movement_16D4B3 + waitmovement 0 + return + +EventScript_16D462:: @ 816D462 + countpokemon + compare_var_to_value VAR_RESULT, 6 + goto_if 5, EventScript_1A77A9 + specialvar VAR_RESULT, sub_80CABD0 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_1A77A9 + msgbox gUnknown_81BFEAC + goto EventScript_16D49A + end + +EventScript_16D48C:: @ 816D48C + msgbox gUnknown_8197E02 + goto EventScript_16D49A + end + +EventScript_16D49A:: @ 816D49A + closemessage + hidemoneybox + .byte 0 + .byte 0 + applymovement 255, Movement_16D4AA + waitmovement 0 + releaseall + end + +Movement_16D4AA:: @ 816D4AA + step_10 + step_end + +Movement_16D4AC:: @ 816D4AC + step_11 + step_11 + step_end + +Movement_16D4AF:: @ 816D4AF + step_11 + step_12 + step_11 + step_end + +Movement_16D4B3:: @ 816D4B3 + step_11 + step_13 + step_11 + step_end + +FuchsiaCity_SafariZone_Entrance_EventScript_16D4B7:: @ 816D4B7 + lock + faceplayer + msgbox gUnknown_8197EB0, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16D4D6 + msgbox gUnknown_819809E + release + end + +EventScript_16D4D6:: @ 816D4D6 + msgbox gUnknown_8197EE3 + release + end diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc new file mode 100644 index 000000000..bda1357a4 --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc @@ -0,0 +1,73 @@ +gUnknown_8197C6B:: @ 8197C6B + .string "Welcome to the SAFARI ZONE!$" + +gUnknown_8197C87:: @ 8197C87 + .string "For just ¥500, you can play the\n" + .string "SAFARI GAME.\p" + .string "You can roam the wide-open safari\n" + .string "and catch what you like.\p" + .string "Would you like to play?$" + +gUnknown_8197D07:: @ 8197D07 + .string "That'll be ¥500, please!\p" + .string "We only use a special kind of \n" + .string "POKé BALLS here.$" + +Text_197D50:: @ 8197D50 + .string "{PLAYER} received 30 SAFARI BALLS\n" + .string "from the attendant.$" + +gUnknown_8197D80:: @ 8197D80 + .string "We'll call you on the PA when you\n" + .string "run out of time or SAFARI BALLS.\p" + .string "Well, I'll wish you the best of\n" + .string "luck!$" + +gUnknown_8197DE9:: @ 8197DE9 + .string "Okay.\n" + .string "Please come again!$" + +gUnknown_8197E02:: @ 8197E02 + .string "Oops!\n" + .string "Not enough money!$" + +gUnknown_8197E1A:: @ 8197E1A + .string "Are you going to leave the\n" + .string "SAFARI ZONE early?$" + +gUnknown_8197E48:: @ 8197E48 + .string "Please return any SAFARI BALLS\n" + .string "you may have left.$" + +gUnknown_8197E7A:: @ 8197E7A + .string "Good luck!$" + +gUnknown_8197E85:: @ 8197E85 + .string "Did you catch your fair share?\n" + .string "Come again!$" + +gUnknown_8197EB0:: @ 8197EB0 + .string "Hi! Is it your first time here at\n" + .string "the SAFARI ZONE?$" + +gUnknown_8197EE3:: @ 8197EE3 + .string "The SAFARI ZONE actually has\n" + .string "four zones in it.\p" + .string "Each zone has different kinds of\n" + .string "POKéMON, even some rare ones.\p" + .string "Use the supplied SAFARI BALLS to\n" + .string "catch them.\p" + .string "You can also throw BAIT or ROCKS\n" + .string "besides the SAFARI BALLS.\p" + .string "If you throw BAIT, the POKéMON\n" + .string "becomes less likely to flee, but\l" + .string "harder to catch.\p" + .string "If you throw ROCKS, the POKéMON\n" + .string "becomes more likely to flee, but\l" + .string "easier to catch.\p" + .string "When you run out of time or SAFARI\n" + .string "BALLS, it's game over for you!$" + +gUnknown_819809E:: @ 819809E + .string "Sorry, you're a regular here!$" + diff --git a/data/maps/FuchsiaCity_ZooBuilding/map.json b/data/maps/FuchsiaCity_ZooBuilding/map.json new file mode 100644 index 000000000..de3962e96 --- /dev/null +++ b/data/maps/FuchsiaCity_ZooBuilding/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_FUCHSIA_CITY_ZOO_BUILDING", + "name": "FuchsiaCity_ZooBuilding", + "layout": "LAYOUT_FUCHSIA_CITY_ZOO_BUILDING", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "47", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_ZooBuilding_EventScript_16D532", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 12, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_ZooBuilding_EventScript_16D53B", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_ZooBuilding_EventScript_16D529", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 10, + "y": 8, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "FuchsiaCity_ZooBuilding_EventScript_16D544", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 3 + }, + { + "x": 6, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 3 + }, + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_ZooBuilding/scripts.inc b/data/maps/FuchsiaCity_ZooBuilding/scripts.inc new file mode 100644 index 000000000..bbff0b929 --- /dev/null +++ b/data/maps/FuchsiaCity_ZooBuilding/scripts.inc @@ -0,0 +1,18 @@ +FuchsiaCity_ZooBuilding_MapScripts:: @ 816D528 + .byte 0 + +FuchsiaCity_ZooBuilding_EventScript_16D529:: @ 816D529 + msgbox gUnknown_819816B, 2 + end + +FuchsiaCity_ZooBuilding_EventScript_16D532:: @ 816D532 + msgbox gUnknown_81981C2, 2 + end + +FuchsiaCity_ZooBuilding_EventScript_16D53B:: @ 816D53B + msgbox gUnknown_819822A, 2 + end + +FuchsiaCity_ZooBuilding_EventScript_16D544:: @ 816D544 + msgbox gUnknown_8198285, 2 + end diff --git a/data/maps/FuchsiaCity_ZooBuilding/text.inc b/data/maps/FuchsiaCity_ZooBuilding/text.inc new file mode 100644 index 000000000..36b7e8a3e --- /dev/null +++ b/data/maps/FuchsiaCity_ZooBuilding/text.inc @@ -0,0 +1,25 @@ +gUnknown_819816B:: @ 819816B + .string "We nicknamed the WARDEN\n" + .string "“SLOWPOKE.”\p" + .string "You know, he has that vacant look\n" + .string "like a SLOWPOKE.$" + +gUnknown_81981C2:: @ 81981C2 + .string "WARDEN SLOWPOKE is very\n" + .string "knowledgeable about POKéMON.\p" + .string "He even has some fossils of rare,\n" + .string "extinct POKéMON.$" + +gUnknown_819822A:: @ 819822A + .string "WARDEN SLOWPOKE came in, but\n" + .string "I couldn't understand him.\p" + .string "I think he's got a speech problem!$" + +gUnknown_8198285:: @ 8198285 + .string "WARDEN SLOWPOKE is running a\n" + .string "promotion campaign right now.\p" + .string "Try to get to the farthest corner\n" + .string "of the SAFARI ZONE.\p" + .string "If you can make it, you'll win a\n" + .string "very convenient prize.$" + diff --git a/data/maps/IndigoPlateau_Exterior/map.json b/data/maps/IndigoPlateau_Exterior/map.json new file mode 100644 index 000000000..de82d21e1 --- /dev/null +++ b/data/maps/IndigoPlateau_Exterior/map.json @@ -0,0 +1,60 @@ +{ + "id": "MAP_INDIGO_PLATEAU_EXTERIOR", + "name": "IndigoPlateau_Exterior", + "layout": "LAYOUT_INDIGO_PLATEAU_EXTERIOR", + "music": "BGM_FRLG_INDIGO_PLATEAU", + "region_map_section": "MAPSEC_INDIGO_PLATEAU", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE23", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "72", + "x": 11, + "y": 6, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "163" + }, + { + "graphics_id": "71", + "x": 11, + "y": 6, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "164" + } + ], + "warp_events": [ + { + "x": 11, + "y": 6, + "elevation": 0, + "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/IndigoPlateau_Exterior/scripts.inc b/data/maps/IndigoPlateau_Exterior/scripts.inc new file mode 100644 index 000000000..873224926 --- /dev/null +++ b/data/maps/IndigoPlateau_Exterior/scripts.inc @@ -0,0 +1,167 @@ +IndigoPlateau_Exterior_MapScripts:: @ 816723B + map_script 3, IndigoPlateau_Exterior_MapScript1_167246 + map_script 2, IndigoPlateau_Exterior_MapScript2_16725A + .byte 0 + +IndigoPlateau_Exterior_MapScript1_167246:: @ 8167246 + setworldmapflag FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR + compare_var_to_value VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 1 + call_if 1, EventScript_167255 + end + +EventScript_167255:: @ 8167255 + playbgm BGM_FRLG_CREDITS, 0 + return + +IndigoPlateau_Exterior_MapScript2_16725A:: @ 816725A + map_script_2 VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 1, EventScript_167264 + .2byte 0 + +EventScript_167264:: @ 8167264 + lockall + delay 105 + opendoor 11, 6 + waitdooranim + special SpawnScriptFieldObject + addobject 1 + applymovement 1, Movement_167346 + applymovement 255, Movement_167337 + waitmovement 0 + closedoor 11, 6 + waitdooranim + applymovement 255, Movement_16731B + applymovement 1, Movement_16733E + waitmovement 0 + delay 100 + opendoor 11, 6 + waitdooranim + addobject 2 + applymovement 2, Movement_16735D + waitmovement 0 + closedoor 11, 6 + waitdooranim + delay 160 + applymovement 255, Movement_16731F + applymovement 2, Movement_167348 + waitmovement 0 + delay 100 + applymovement 255, Movement_16732E + waitmovement 0 + delay 155 + applymovement 255, Movement_16733C + waitmovement 0 + delay 90 + applymovement 255, Movement_167335 + waitmovement 0 + applymovement 255, Movement_167311 + waitmovement 0 + special RemoveScriptFieldObject + setvar VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 0 + removeobject 1 + removeobject 2 + special sub_80F39B4 + waitstate + releaseall + end + +Movement_167311:: @ 8167311 + step_3d + step_3d + step_3d + step_3d + step_3d + step_3d + step_end + +Movement_167318:: @ 8167318 + step_10 + step_10 + step_end + +Movement_16731B:: @ 816731B + step_1c + step_1a + step_2d + step_end + +Movement_16731F:: @ 816731F + step_1b + step_30 + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_2d + step_end + +Movement_16732E:: @ 816732E + step_13 + step_1c + step_10 + step_10 + step_1c + step_1c + step_end + +Movement_167335:: @ 8167335 + step_2d + step_end + +Movement_167337:: @ 8167337 + step_03 + step_4c + step_12 + step_4d + step_end + +Movement_16733C:: @ 816733C + step_2e + step_end + +Movement_16733E:: @ 816733E + step_1d + step_1d + step_1d + step_1d + step_1d + step_1d + step_1d + step_end + +Movement_167346:: @ 8167346 + step_1d + step_end + +Movement_167348:: @ 8167348 + step_2f + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_2d + step_1c + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +Movement_16735D:: @ 816735D + step_10 + step_end diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F/map.json b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json new file mode 100644 index 000000000..a68bf374b --- /dev/null +++ b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json @@ -0,0 +1,146 @@ +{ + "id": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "name": "IndigoPlateau_PokemonCenter_1F", + "layout": "LAYOUT_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_INDIGO_PLATEAU", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 0, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_16EACC", + "flag": "0" + }, + { + "graphics_id": "64", + "x": 13, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_16EB06", + "flag": "0" + }, + { + "graphics_id": "91", + "x": 7, + "y": 14, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_16EAC3", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_16EA8A", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 23, + "y": 13, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_1ACFAE", + "flag": "157" + }, + { + "graphics_id": "0", + "x": 22, + "y": 9, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_1AD06C", + "flag": "157" + }, + { + "graphics_id": "41", + "x": 16, + "y": 15, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_1AD087", + "flag": "157" + }, + { + "graphics_id": "0", + "x": 23, + "y": 9, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_1AD06C", + "flag": "157" + } + ], + "warp_events": [ + { + "x": 11, + "y": 16, + "elevation": 3, + "dest_map": "MAP_INDIGO_PLATEAU_EXTERIOR", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 1, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", + "dest_warp_id": 0 + }, + { + "x": 1, + "y": 14, + "elevation": 4, + "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F/scripts.inc b/data/maps/IndigoPlateau_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..7dae5f353 --- /dev/null +++ b/data/maps/IndigoPlateau_PokemonCenter_1F/scripts.inc @@ -0,0 +1,76 @@ +IndigoPlateau_PokemonCenter_1F_MapScripts:: @ 816EA5A + map_script 3, IndigoPlateau_PokemonCenter_1F_MapScript1_16EA65 + map_script 5, IndigoPlateau_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +IndigoPlateau_PokemonCenter_1F_MapScript1_16EA65:: @ 816EA65 + setrespawn SPAWN_INDIGO_PLATEAU + specialvar VAR_RESULT, sub_806E25C + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_16EA79 + end + +EventScript_16EA79:: @ 816EA79 + checkflag FLAG_0x844 + goto_if_eq EventScript_1A77A9 + setobjectxyperm 4, 4, 2 + return + +IndigoPlateau_PokemonCenter_1F_EventScript_16EA8A:: @ 816EA8A + lock + faceplayer + specialvar VAR_RESULT, sub_806E25C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16EAA6 + msgbox gUnknown_819A8D8 + release + end + +EventScript_16EAA6:: @ 816EAA6 + checkflag FLAG_0x844 + goto_if_eq EventScript_16EAB9 + msgbox gUnknown_819A943 + release + end + +EventScript_16EAB9:: @ 816EAB9 + msgbox gUnknown_819A8D8 + release + end + +IndigoPlateau_PokemonCenter_1F_EventScript_16EAC3:: @ 816EAC3 + msgbox gUnknown_819A837, 2 + end + +IndigoPlateau_PokemonCenter_1F_EventScript_16EACC:: @ 816EACC + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16EAF4 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16EAF4:: @ 816EAF4 + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +IndigoPlateau_PokemonCenter_1F_EventScript_16EB06:: @ 816EB06 + lock + faceplayer + call EventScript_1A6578 + release + end diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F/text.inc b/data/maps/IndigoPlateau_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..7a4d158b3 --- /dev/null +++ b/data/maps/IndigoPlateau_PokemonCenter_1F/text.inc @@ -0,0 +1,24 @@ +gUnknown_819A837:: @ 819A837 + .string "Yo!\n" + .string "Champ in the making!\p" + .string "At the POKéMON LEAGUE, you will\n" + .string "face the ELITE FOUR all in a row.\p" + .string "If you lose, you have to start all\n" + .string "over again!\p" + .string "This is it!\n" + .string "Go for it!$" + +gUnknown_819A8D8:: @ 819A8D8 + .string "From here on, you face the\n" + .string "ELITE FOUR one by one.\p" + .string "If you win, a door opens to the\n" + .string "next TRAINER. Good luck!$" + +gUnknown_819A943:: @ 819A943 + .string "I am so sorry, but you've wasted\n" + .string "your time coming here.\p" + .string "LORELEI of the ELITE FOUR is\n" + .string "absent, you see.\p" + .string "As a result, the POKéMON LEAGUE is\n" + .string "closed for the time being.$" + diff --git a/data/maps/IndigoPlateau_PokemonCenter_2F/map.json b/data/maps/IndigoPlateau_PokemonCenter_2F/map.json new file mode 100644 index 000000000..5273ed61a --- /dev/null +++ b/data/maps/IndigoPlateau_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F", + "name": "IndigoPlateau_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_INDIGO_PLATEAU", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "IndigoPlateau_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/IndigoPlateau_PokemonCenter_2F/scripts.inc b/data/maps/IndigoPlateau_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..6c2955435 --- /dev/null +++ b/data/maps/IndigoPlateau_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +IndigoPlateau_PokemonCenter_2F_MapScripts:: @ 816EB0F + map_script 2, IndigoPlateau_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, IndigoPlateau_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, IndigoPlateau_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, IndigoPlateau_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +IndigoPlateau_PokemonCenter_2F_EventScript_16EB24:: @ 816EB24 + call EventScript_1BB4A3 + end + +EventScript_16EB2A:: @ 816EB2A + call EventScript_1BB6AB + end + +EventScript_16EB30:: @ 816EB30 + call EventScript_1BB7DE + end diff --git a/data/maps/LavenderTown/map.json b/data/maps/LavenderTown/map.json new file mode 100644 index 000000000..32071e5d2 --- /dev/null +++ b/data/maps/LavenderTown/map.json @@ -0,0 +1,147 @@ +{ + "id": "MAP_LAVENDER_TOWN", + "name": "LavenderTown", + "layout": "LAYOUT_LAVENDER_TOWN", + "music": "BGM_FRLG_LAVENDER_TOWN", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE10", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE12", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_ROUTE8", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "17", + "x": 19, + "y": 10, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_EventScript_16687D", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 12, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_EventScript_1668A6", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 10, + "y": 7, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_EventScript_1668AF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 18, + "y": 6, + "elevation": 0, + "dest_map": "MAP_POKEMON_TOWER_1F", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 5, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 10, + "y": 11, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 16, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_HOUSE1", + "dest_warp_id": 1 + }, + { + "x": 10, + "y": 16, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_HOUSE2", + "dest_warp_id": 1 + }, + { + "x": 20, + "y": 15, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_MART", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 12, + "y": 4, + "elevation": 0, + "script": "LavenderTown_EventScript_1668C1" + }, + { + "type": "bg_event_type_0", + "x": 15, + "y": 11, + "elevation": 0, + "script": "LavenderTown_EventScript_1668B8" + }, + { + "type": "bg_event_type_0", + "x": 21, + "y": 7, + "elevation": 0, + "script": "LavenderTown_EventScript_1668D3" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 11, + "elevation": 0, + "script": "LavenderTown_EventScript_1668CA" + } + ] +} diff --git a/data/maps/LavenderTown/scripts.inc b/data/maps/LavenderTown/scripts.inc new file mode 100644 index 000000000..999662e6e --- /dev/null +++ b/data/maps/LavenderTown/scripts.inc @@ -0,0 +1,48 @@ +LavenderTown_MapScripts:: @ 816686B + map_script 3, LavenderTown_MapScript1_166871 + .byte 0 + +LavenderTown_MapScript1_166871:: @ 8166871 + setworldmapflag FLAG_WORLD_MAP_LAVENDER_TOWN + setvar VAR_0x405B, 1 + setflag FLAG_0x03D + end + +LavenderTown_EventScript_16687D:: @ 816687D + lock + faceplayer + msgbox gUnknown_817F52E, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16689C + msgbox gUnknown_817F568 + release + end + +EventScript_16689C:: @ 816689C + msgbox gUnknown_817F548 + release + end + +LavenderTown_EventScript_1668A6:: @ 81668A6 + msgbox gUnknown_817F5B6, 2 + end + +LavenderTown_EventScript_1668AF:: @ 81668AF + msgbox gUnknown_817F614, 2 + end + +LavenderTown_EventScript_1668B8:: @ 81668B8 + msgbox gUnknown_817F676, 3 + end + +LavenderTown_EventScript_1668C1:: @ 81668C1 + msgbox gUnknown_817F69A, 3 + end + +LavenderTown_EventScript_1668CA:: @ 81668CA + msgbox gUnknown_817F6D6, 3 + end + +LavenderTown_EventScript_1668D3:: @ 81668D3 + msgbox gUnknown_817F6F7, 3 + end diff --git a/data/maps/LavenderTown/text.inc b/data/maps/LavenderTown/text.inc new file mode 100644 index 000000000..d3d76a189 --- /dev/null +++ b/data/maps/LavenderTown/text.inc @@ -0,0 +1,40 @@ +gUnknown_817F52E:: @ 817F52E + .string "Do you believe in ghosts?$" + +gUnknown_817F548:: @ 817F548 + .string "Really?\n" + .string "So there are believers…$" + +gUnknown_817F568:: @ 817F568 + .string "Hahaha, I guess not.\p" + .string "That white hand on your shoulder…\n" + .string "I'm just imagining it.$" + +gUnknown_817F5B6:: @ 817F5B6 + .string "This town is known as the grave\n" + .string "site of POKéMON.\p" + .string "Memorial services are held in\n" + .string "POKéMON TOWER.$" + +gUnknown_817F614:: @ 817F614 + .string "Ghosts appeared in POKéMON TOWER.\p" + .string "I think they're the spirits of\n" + .string "POKéMON that the ROCKETS killed.$" + +gUnknown_817F676:: @ 817F676 + .string "LAVENDER TOWN\n" + .string "The Noble Purple Town$" + +gUnknown_817F69A:: @ 817F69A + .string "New SILPH SCOPE!\n" + .string "Make the Invisible Plain to See!\p" + .string "SILPH CO.$" + +gUnknown_817F6D6:: @ 817F6D6 + .string "LAVENDER VOLUNTEER\n" + .string "POKéMON HOUSE$" + +gUnknown_817F6F7:: @ 817F6F7 + .string "POKéMON TOWER\n" + .string "Becalm the Spirits of POKéMON$" + diff --git a/data/maps/LavenderTown_House1/map.json b/data/maps/LavenderTown_House1/map.json new file mode 100644 index 000000000..b7b255588 --- /dev/null +++ b/data/maps/LavenderTown_House1/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_LAVENDER_TOWN_HOUSE1", + "name": "LavenderTown_House1", + "layout": "LAYOUT_HOUSE5", + "music": "BGM_FRLG_LAVENDER_TOWN", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "42", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_House1_EventScript_16B233", + "flag": "0" + }, + { + "graphics_id": "111", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_House1_EventScript_16B252", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 3 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_House1/scripts.inc b/data/maps/LavenderTown_House1/scripts.inc new file mode 100644 index 000000000..8f7ba9d44 --- /dev/null +++ b/data/maps/LavenderTown_House1/scripts.inc @@ -0,0 +1,26 @@ +LavenderTown_House1_MapScripts:: @ 816B232 + .byte 0 + +LavenderTown_House1_EventScript_16B233:: @ 816B233 + lock + faceplayer + checkflag FLAG_0x23C + goto_if_eq EventScript_16B248 + msgbox gUnknown_819397D + release + end + +EventScript_16B248:: @ 816B248 + msgbox gUnknown_81939F8 + release + end + +LavenderTown_House1_EventScript_16B252:: @ 816B252 + lock + faceplayer + waitse + playmoncry SPECIES_CUBONE, 0 + msgbox gUnknown_819396B + waitmoncry + release + end diff --git a/data/maps/LavenderTown_House1/text.inc b/data/maps/LavenderTown_House1/text.inc new file mode 100644 index 000000000..0b61cb72d --- /dev/null +++ b/data/maps/LavenderTown_House1/text.inc @@ -0,0 +1,16 @@ +gUnknown_819396B:: @ 819396B + .string "CUBONE: Kyarugoo!$" + +gUnknown_819397D:: @ 819397D + .string "Those horrible ROCKETS!\n" + .string "They deserve no mercy!\p" + .string "That poor CUBONE's mother…\p" + .string "It was killed trying to escape from\n" + .string "TEAM ROCKET.$" + +gUnknown_81939F8:: @ 81939F8 + .string "The ghost of POKéMON TOWER is\n" + .string "gone!\p" + .string "Someone must have soothed its\n" + .string "restless spirit!$" + diff --git a/data/maps/LavenderTown_House2/map.json b/data/maps/LavenderTown_House2/map.json new file mode 100644 index 000000000..fd7ec4f22 --- /dev/null +++ b/data/maps/LavenderTown_House2/map.json @@ -0,0 +1,55 @@ +{ + "id": "MAP_LAVENDER_TOWN_HOUSE2", + "name": "LavenderTown_House2", + "layout": "LAYOUT_HOUSE5", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_House2_EventScript_16B266", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 4 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_House2/scripts.inc b/data/maps/LavenderTown_House2/scripts.inc new file mode 100644 index 000000000..0a5c708ab --- /dev/null +++ b/data/maps/LavenderTown_House2/scripts.inc @@ -0,0 +1,72 @@ +LavenderTown_House2_MapScripts:: @ 816B265 + .byte 0 + +LavenderTown_House2_EventScript_16B266:: @ 816B266 + lock + faceplayer + msgbox gUnknown_8193A4B, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16B287 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16B2AA + end + +EventScript_16B287:: @ 816B287 + msgbox gUnknown_8193AA6 + special sub_80BF8FC + waitstate + compare_var_to_value VAR_0x8004, 6 + goto_if 0, EventScript_16B2B4 + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_16B2AA + end + +EventScript_16B2AA:: @ 816B2AA + msgbox gUnknown_8193BD4 + release + end + +EventScript_16B2B4:: @ 816B2B4 + specialvar VAR_RESULT, sub_80CAD54 + compare_var_to_value VAR_RESULT, SPECIES_EGG + goto_if_eq EventScript_16B307 + special TV_CopyNicknameToStringVar1AndEnsureTerminated + special TV_CheckMonOTIDEqualsPlayerID + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16B311 + specialvar VAR_RESULT, sub_80CAD7C + special TV_CopyNicknameToStringVar1AndEnsureTerminated + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16B311 + msgbox gUnknown_8193AD2, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16B31B + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16B2AA + end + +EventScript_16B307:: @ 816B307 + msgbox gUnknown_8193CC4 + release + end + +EventScript_16B311:: @ 816B311 + msgbox gUnknown_8193C82 + release + end + +EventScript_16B31B:: @ 816B31B + msgbox gUnknown_8193B36 + call EventScript_1A74EB + specialvar VAR_RESULT, sub_80CBFA0 + special TV_CopyNicknameToStringVar1AndEnsureTerminated + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16B345 + msgbox gUnknown_8193BF0 + release + end + +EventScript_16B345:: @ 816B345 + msgbox gUnknown_8193B66 + release + end diff --git a/data/maps/LavenderTown_House2/text.inc b/data/maps/LavenderTown_House2/text.inc new file mode 100644 index 000000000..50fa577ff --- /dev/null +++ b/data/maps/LavenderTown_House2/text.inc @@ -0,0 +1,47 @@ +gUnknown_8193A4B:: @ 8193A4B + .string "Hello, hello!\n" + .string "I am the official NAME RATER!\p" + .string "Want me to rate the nicknames of\n" + .string "your POKéMON?$" + +gUnknown_8193AA6:: @ 8193AA6 + .string "Which POKéMON's nickname should\n" + .string "I critique?$" + +gUnknown_8193AD2:: @ 8193AD2 + .string "{STR_VAR_1}, is it?\n" + .string "That is a decent nickname!\p" + .string "But, would you like me to give it\n" + .string "a nicer name?\p" + .string "How about it?$" + +gUnknown_8193B36:: @ 8193B36 + .string "Ah, good. Then, what shall the new\n" + .string "nickname be?$" + +gUnknown_8193B66:: @ 8193B66 + .string "Done! From now on, this POKéMON\n" + .string "shall be known as {STR_VAR_1}!\p" + .string "It is a better name than before!\n" + .string "How fortunate for you!$" + +gUnknown_8193BD4:: @ 8193BD4 + .string "I see.\n" + .string "Do come visit again.$" + +gUnknown_8193BF0:: @ 8193BF0 + .string "Done! From now on, this POKéMON\n" + .string "shall be known as {STR_VAR_1}!\p" + .string "It looks no different from before,\n" + .string "and yet, this is vastly superior!\p" + .string "How fortunate for you!$" + +gUnknown_8193C82:: @ 8193C82 + .string "{STR_VAR_1}, is it?\n" + .string "That is a truly impeccable name!\p" + .string "Take good care of {STR_VAR_1}!$" + +gUnknown_8193CC4:: @ 8193CC4 + .string "Now, now.\n" + .string "That is merely an EGG!$" + diff --git a/data/maps/LavenderTown_Mart/map.json b/data/maps/LavenderTown_Mart/map.json new file mode 100644 index 000000000..441f67cdd --- /dev/null +++ b/data/maps/LavenderTown_Mart/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_LAVENDER_TOWN_MART", + "name": "LavenderTown_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_Mart_EventScript_16B36B", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_Mart_EventScript_16B350", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 9, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_Mart_EventScript_16B359", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_Mart_EventScript_16B362", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 5 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 5 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_Mart/scripts.inc b/data/maps/LavenderTown_Mart/scripts.inc new file mode 100644 index 000000000..380af6e9d --- /dev/null +++ b/data/maps/LavenderTown_Mart/scripts.inc @@ -0,0 +1,42 @@ +LavenderTown_Mart_MapScripts:: @ 816B34F + .byte 0 + +LavenderTown_Mart_EventScript_16B350:: @ 816B350 + msgbox gUnknown_8193CE5, 2 + end + +LavenderTown_Mart_EventScript_16B359:: @ 816B359 + msgbox gUnknown_8193DB6, 2 + end + +LavenderTown_Mart_EventScript_16B362:: @ 816B362 + msgbox gUnknown_8193DF1, 2 + end + +LavenderTown_Mart_EventScript_16B36B:: @ 816B36B + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16B390 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16B390:: @ 816B390 + .2byte ITEM_GREAT_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_BURN_HEAL + .2byte ITEM_ICE_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_SUPER_REPEL + .2byte ITEM_NONE + release + end diff --git a/data/maps/LavenderTown_Mart/text.inc b/data/maps/LavenderTown_Mart/text.inc new file mode 100644 index 000000000..024f526ed --- /dev/null +++ b/data/maps/LavenderTown_Mart/text.inc @@ -0,0 +1,20 @@ +gUnknown_8193CE5:: @ 8193CE5 + .string "I'm searching for items that raise\n" + .string "the stats of POKéMON.\p" + .string "They're effective over the course\n" + .string "of a single battle.\p" + .string "X ATTACK, X DEFEND, X SPEED, \n" + .string "and X SPECIAL are what I'm after.\p" + .string "Do you know where I can get them?$" + +gUnknown_8193DB6:: @ 8193DB6 + .string "Did you buy some REVIVES?\n" + .string "They revive any fainted POKéMON!$" + +gUnknown_8193DF1:: @ 8193DF1 + .string "Sometimes, a TRAINER duo will\n" + .string "challenge you with two POKéMON\l" + .string "at the same time.\p" + .string "If that happens, you have to send\n" + .string "out two POKéMON to battle, too.$" + diff --git a/data/maps/LavenderTown_PokemonCenter_1F/map.json b/data/maps/LavenderTown_PokemonCenter_1F/map.json new file mode 100644 index 000000000..17ab5ac45 --- /dev/null +++ b/data/maps/LavenderTown_PokemonCenter_1F/map.json @@ -0,0 +1,114 @@ +{ + "id": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", + "name": "LavenderTown_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_PokemonCenter_1F_EventScript_16B0FE", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_PokemonCenter_1F_EventScript_16B107", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_PokemonCenter_1F_EventScript_16B110", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_PokemonCenter_1F_EventScript_16B119", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_PokemonCenter_1F_EventScript_1AD0A0", + "flag": "157" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 1 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 1 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_PokemonCenter_1F/scripts.inc b/data/maps/LavenderTown_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..f7341b8f9 --- /dev/null +++ b/data/maps/LavenderTown_PokemonCenter_1F/scripts.inc @@ -0,0 +1,27 @@ +LavenderTown_PokemonCenter_1F_MapScripts:: @ 816B0EF + map_script 3, LavenderTown_PokemonCenter_1F_MapScript1_16B0FA + map_script 5, LavenderTown_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +LavenderTown_PokemonCenter_1F_MapScript1_16B0FA:: @ 816B0FA + setrespawn SPAWN_LAVENDER_TOWN + end + +LavenderTown_PokemonCenter_1F_EventScript_16B0FE:: @ 816B0FE + lock + faceplayer + call EventScript_1A6578 + release + end + +LavenderTown_PokemonCenter_1F_EventScript_16B107:: @ 816B107 + msgbox gUnknown_8193465, 2 + end + +LavenderTown_PokemonCenter_1F_EventScript_16B110:: @ 816B110 + msgbox gUnknown_81934DE, 2 + end + +LavenderTown_PokemonCenter_1F_EventScript_16B119:: @ 816B119 + msgbox gUnknown_819353A, 2 + end diff --git a/data/maps/LavenderTown_PokemonCenter_1F/text.inc b/data/maps/LavenderTown_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..f86c82e6e --- /dev/null +++ b/data/maps/LavenderTown_PokemonCenter_1F/text.inc @@ -0,0 +1,16 @@ +gUnknown_8193465:: @ 8193465 + .string "TEAM ROCKET will do anything for\n" + .string "the sake of money!\p" + .string "There is no job too dirty, no deed\n" + .string "too heinous, no crime too wicked!$" + +gUnknown_81934DE:: @ 81934DE + .string "I saw CUBONE's mother trying to\n" + .string "escape from TEAM ROCKET.\p" + .string "She was killed trying to get away…$" + +gUnknown_819353A:: @ 819353A + .string "You know how the CUBONE species\n" + .string "wears skulls, right?\p" + .string "People will pay a lot for one.$" + diff --git a/data/maps/LavenderTown_PokemonCenter_2F/map.json b/data/maps/LavenderTown_PokemonCenter_2F/map.json new file mode 100644 index 000000000..8b3675c0f --- /dev/null +++ b/data/maps/LavenderTown_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_LAVENDER_TOWN_POKEMON_CENTER_2F", + "name": "LavenderTown_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_PokemonCenter_2F/scripts.inc b/data/maps/LavenderTown_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..7042c66c8 --- /dev/null +++ b/data/maps/LavenderTown_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +LavenderTown_PokemonCenter_2F_MapScripts:: @ 816B122 + map_script 2, LavenderTown_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, LavenderTown_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, LavenderTown_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, LavenderTown_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +LavenderTown_PokemonCenter_2F_EventScript_16B137:: @ 816B137 + call EventScript_1BB4A3 + end + +EventScript_16B13D:: @ 816B13D + call EventScript_1BB6AB + end + +EventScript_16B143:: @ 816B143 + call EventScript_1BB7DE + end diff --git a/data/maps/LavenderTown_VolunteerPokemonHouse/map.json b/data/maps/LavenderTown_VolunteerPokemonHouse/map.json new file mode 100644 index 000000000..f5d78cec5 --- /dev/null +++ b/data/maps/LavenderTown_VolunteerPokemonHouse/map.json @@ -0,0 +1,142 @@ +{ + "id": "MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", + "name": "LavenderTown_VolunteerPokemonHouse", + "layout": "LAYOUT_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", + "music": "BGM_FRLG_LAVENDER_TOWN", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "78", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_16B14A", + "flag": "53" + }, + { + "graphics_id": "124", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_16B1EB", + "flag": "0" + }, + { + "graphics_id": "121", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_16B1FE", + "flag": "0" + }, + { + "graphics_id": "16", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_16B1C3", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_16B1CC", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_16B1AA", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 2 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 5, + "y": 4, + "elevation": 0, + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_16B211" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 1, + "elevation": 0, + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_16B229" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_16B229" + } + ] +} diff --git a/data/maps/LavenderTown_VolunteerPokemonHouse/scripts.inc b/data/maps/LavenderTown_VolunteerPokemonHouse/scripts.inc new file mode 100644 index 000000000..f1a079cde --- /dev/null +++ b/data/maps/LavenderTown_VolunteerPokemonHouse/scripts.inc @@ -0,0 +1,89 @@ +LavenderTown_VolunteerPokemonHouse_MapScripts:: @ 816B149 + .byte 0 + +LavenderTown_VolunteerPokemonHouse_EventScript_16B14A:: @ 816B14A + lock + faceplayer + checkflag FLAG_0x23D + goto_if_eq EventScript_16B196 + msgbox gUnknown_81936FF + checkitemspace ITEM_POKE_FLUTE, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16B1A0 + setflag FLAG_0x23D + additem ITEM_POKE_FLUTE, 1 + giveitemfanfaremsg gUnknown_81937BD, ITEM_POKE_FLUTE, 1, BGM_FRLG_ME_KEYITEM + msgbox gUnknown_81937E5 + release + end + +EventScript_16B196:: @ 816B196 + msgbox gUnknown_8193878 + release + end + +EventScript_16B1A0:: @ 816B1A0 + msgbox gUnknown_819385B + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_16B1AA:: @ 816B1AA + lock + faceplayer + setvar VAR_0x8004, 14 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8193652 + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_16B1C3:: @ 816B1C3 + msgbox gUnknown_81936B4, 2 + end + +LavenderTown_VolunteerPokemonHouse_EventScript_16B1CC:: @ 816B1CC + lock + faceplayer + checkflag FLAG_0x23C + goto_if_eq EventScript_16B1E1 + msgbox gUnknown_81935ED + release + end + +EventScript_16B1E1:: @ 816B1E1 + msgbox gUnknown_819361D + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_16B1EB:: @ 816B1EB + lock + faceplayer + waitse + playmoncry SPECIES_NIDORINO, 0 + msgbox gUnknown_81936DE + waitmoncry + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_16B1FE:: @ 816B1FE + lock + faceplayer + waitse + playmoncry SPECIES_PSYDUCK, 0 + msgbox gUnknown_81936EE + waitmoncry + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_16B211:: @ 816B211 + lockall + setvar VAR_0x8004, 14 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_81938A0 + releaseall + end + +LavenderTown_VolunteerPokemonHouse_EventScript_16B229:: @ 816B229 + msgbox gUnknown_819392B, 3 + end diff --git a/data/maps/LavenderTown_VolunteerPokemonHouse/text.inc b/data/maps/LavenderTown_VolunteerPokemonHouse/text.inc new file mode 100644 index 000000000..c7245da55 --- /dev/null +++ b/data/maps/LavenderTown_VolunteerPokemonHouse/text.inc @@ -0,0 +1,67 @@ +Text_19358E:: @ 819358E + .string "I recently moved to this town.\p" + .string "I hear that MR. FUJI's not from\n" + .string "these parts originally, either.$" + +gUnknown_81935ED:: @ 81935ED + .string "That's odd, MR. FUJI isn't here.\n" + .string "Where'd he go?$" + +gUnknown_819361D:: @ 819361D + .string "MR. FUJI had been praying alone\n" + .string "for CUBONE's mother.$" + +gUnknown_8193652:: @ 8193652 + .string "This is really MR. FUJI's house.\p" + .string "He's really kind.\p" + .string "He looks after abandoned and\n" + .string "orphaned POKéMON.$" + +gUnknown_81936B4:: @ 81936B4 + .string "It's so warm!\n" + .string "POKéMON are so nice to hug.$" + +gUnknown_81936DE:: @ 81936DE + .string "NIDORINO: Gaoo!$" + +gUnknown_81936EE:: @ 81936EE + .string "PSYDUCK: Gwappa!$" + +gUnknown_81936FF:: @ 81936FF + .string "MR. FUJI: {PLAYER}…\p" + .string "Your POKéDEX quest is one that\n" + .string "requires strong dedication.\p" + .string "Without deep love for POKéMON,\n" + .string "your quest may fail.\p" + .string "I'm not sure if this will help you,\n" + .string "but I'd like you to have it.$" + +gUnknown_81937BD:: @ 81937BD + .string "{PLAYER} received a POKé FLUTE\n" + .string "from MR. FUJI.$" + +gUnknown_81937E5:: @ 81937E5 + .string "Upon hearing the POKé FLUTE,\n" + .string "sleeping POKéMON will spring awake.\p" + .string "Try using it on POKéMON that are\n" + .string "sleeping obstacles.$" + +gUnknown_819385B:: @ 819385B + .string "You must make room for this!$" + +gUnknown_8193878:: @ 8193878 + .string "MR. FUJI: Has my POKé FLUTE\n" + .string "helped you?$" + +gUnknown_81938A0:: @ 81938A0 + .string "POKéMON FAN MAGAZINE\n" + .string "Monthly Grand Prize Drawing!\p" + .string "The application form is…\p" + .string "Gone! It's been clipped out.\n" + .string "Someone must have applied already.$" + +gUnknown_819392B:: @ 819392B + .string "POKéMON magazines line the shelf.\p" + .string "POKéMON INSIDER…\p" + .string "POKéMON FAN…$" + diff --git a/data/maps/MtEmber_Exterior/map.json b/data/maps/MtEmber_Exterior/map.json new file mode 100644 index 000000000..165086636 --- /dev/null +++ b/data/maps/MtEmber_Exterior/map.json @@ -0,0 +1,370 @@ +{ + "id": "MAP_MT_EMBER_EXTERIOR", + "name": "MtEmber_Exterior", + "layout": "LAYOUT_MT_EMBER_EXTERIOR", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "56", + "x": 29, + "y": 45, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1C48E6", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 41, + "y": 40, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_16397F", + "flag": "137" + }, + { + "graphics_id": "49", + "x": 42, + "y": 40, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1639F0", + "flag": "137" + }, + { + "graphics_id": "24", + "x": 22, + "y": 35, + "elevation": 3, + "movement_type": "46", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "MtEmber_Exterior_EventScript_163AE2", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 15, + "y": 28, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "MtEmber_Exterior_EventScript_163AB4", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 14, + "y": 42, + "elevation": 3, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "MtEmber_Exterior_EventScript_163ACB", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 29, + "y": 41, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 30, + "y": 42, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "97", + "x": 22, + "y": 45, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 17, + "y": 46, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 36, + "y": 14, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 34, + "y": 14, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 36, + "y": 15, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "97", + "x": 35, + "y": 14, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 35, + "y": 17, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 18, + "y": 39, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE00C", + "flag": "22" + }, + { + "graphics_id": "96", + "x": 19, + "y": 40, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BE00C", + "flag": "23" + }, + { + "graphics_id": "92", + "x": 13, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BED2C", + "flag": "493" + }, + { + "graphics_id": "92", + "x": 38, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BED39", + "flag": "494" + }, + { + "graphics_id": "92", + "x": 48, + "y": 20, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Exterior_EventScript_1BED46", + "flag": "495" + } + ], + "warp_events": [ + { + "x": 28, + "y": 48, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", + "dest_warp_id": 0 + }, + { + "x": 29, + "y": 48, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", + "dest_warp_id": 1 + }, + { + "x": 14, + "y": 24, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_1F", + "dest_warp_id": 0 + }, + { + "x": 39, + "y": 19, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_3F", + "dest_warp_id": 1 + }, + { + "x": 29, + "y": 7, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_SUMMIT", + "dest_warp_id": 0 + }, + { + "x": 42, + "y": 39, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 37, + "y": 43, + "elevation": 0, + "var": "VAR_0x407F", + "var_value": 1, + "script": "MtEmber_Exterior_EventScript_163A4E" + }, + { + "type": "trigger", + "x": 38, + "y": 43, + "elevation": 0, + "var": "VAR_0x407F", + "var_value": 1, + "script": "MtEmber_Exterior_EventScript_163A4E" + }, + { + "type": "trigger", + "x": 39, + "y": 43, + "elevation": 0, + "var": "VAR_0x407F", + "var_value": 1, + "script": "MtEmber_Exterior_EventScript_163A4E" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 18, + "y": 17, + "elevation": 0, + "item": "ITEM_FIRE_STONE", + "flag": "158", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 8, + "y": 30, + "elevation": 3, + "item": "POCKET_KEY_ITEMS", + "flag": "162", + "unknown": 1 + } + ] +} diff --git a/data/maps/MtEmber_Exterior/scripts.inc b/data/maps/MtEmber_Exterior/scripts.inc new file mode 100644 index 000000000..4ff35116d --- /dev/null +++ b/data/maps/MtEmber_Exterior/scripts.inc @@ -0,0 +1,131 @@ +MtEmber_Exterior_MapScripts:: @ 8163946 + map_script 3, MtEmber_Exterior_MapScript1_163951 + map_script 1, MtEmber_Exterior_MapScript2_163969 + .byte 0 + +MtEmber_Exterior_MapScript1_163951:: @ 8163951 + setworldmapflag FLAG_WORLD_MAP_MT_EMBER_EXTERIOR + compare_var_to_value VAR_0x407F, 2 + call_if 1, EventScript_163960 + end + +EventScript_163960:: @ 8163960 + setobjectmovementtype 2, 8 + setobjectmovementtype 3, 8 + return + +MtEmber_Exterior_MapScript2_163969:: @ 8163969 + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4 + call_if 4, EventScript_163975 + end + +EventScript_163975:: @ 8163975 + setmetatile 42, 39, 838, 0 + return + +MtEmber_Exterior_EventScript_16397F:: @ 816397F + lock + checktrainerflag FLAG_0x219 + goto_if_eq EventScript_16399E + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4 + goto_if_eq EventScript_1639A8 + msgbox gUnknown_817A82A + release + end + +EventScript_16399E:: @ 816399E + msgbox gUnknown_817AA3F + release + end + +EventScript_1639A8:: @ 81639A8 + applymovement 2, Movement_1A75E1 + waitmovement 0 + playbgm BGM_FRLG_SUSPICIOUS_EYE, 0 + msgbox gUnknown_817AA06 + trainerbattle 3, 537, 0, Text_17AA34 + msgbox gUnknown_817AA3F + checktrainerflag FLAG_0x21A + goto_if_eq EventScript_1639DB + release + end + +EventScript_1639DB:: @ 81639DB + msgbox gUnknown_817AAD7 + closemessage + fadescreen 1 + removeobject 2 + removeobject 3 + fadescreen 0 + release + end + +MtEmber_Exterior_EventScript_1639F0:: @ 81639F0 + lock + faceplayer + checktrainerflag FLAG_0x21A + goto_if_eq EventScript_163A1B + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4 + goto_if_eq EventScript_163A25 + msgbox gUnknown_817A88C + closemessage + applymovement 3, Movement_1A75E5 + waitmovement 0 + release + end + +EventScript_163A1B:: @ 8163A1B + msgbox gUnknown_817AA99 + release + end + +EventScript_163A25:: @ 8163A25 + playbgm BGM_FRLG_SUSPICIOUS_EYE, 0 + msgbox gUnknown_817AA56 + trainerbattle 3, 538, 0, Text_17AA8A + msgbox gUnknown_817AA99 + checktrainerflag FLAG_0x219 + goto_if_eq EventScript_1639DB + release + end + +MtEmber_Exterior_EventScript_163A4E:: @ 8163A4E + lockall + textcolor 0 + msgbox gUnknown_817A8B4 + message Text_17A8EE + waitmessage + playse SE_PIN + applymovement 3, Movement_1A75D9 + waitmovement 0 + waitbuttonpress + msgbox gUnknown_817A970 + applymovement 2, Movement_1A75ED + waitmovement 0 + playse SE_PIN + applymovement 2, Movement_1A75DB + waitmovement 0 + applymovement 2, Movement_1A75DD + waitmovement 0 + applymovement 3, Movement_1A75ED + waitmovement 0 + call EventScript_163960 + msgbox gUnknown_817A9E1 + setvar VAR_0x407F, 2 + releaseall + end + +MtEmber_Exterior_EventScript_163AB4:: @ 8163AB4 + trainerbattle 0, 595, 0, Text_17AB73, Text_17ABAA + msgbox gUnknown_817ABD8, 6 + end + +MtEmber_Exterior_EventScript_163ACB:: @ 8163ACB + trainerbattle 0, 597, 0, Text_17AC55, Text_17AC82 + msgbox gUnknown_817ACA2, 6 + end + +MtEmber_Exterior_EventScript_163AE2:: @ 8163AE2 + trainerbattle 0, 592, 0, Text_17AD06, Text_17AD6B + msgbox gUnknown_817AD89, 6 + end diff --git a/data/maps/MtEmber_Exterior/text.inc b/data/maps/MtEmber_Exterior/text.inc new file mode 100644 index 000000000..d9a365f95 --- /dev/null +++ b/data/maps/MtEmber_Exterior/text.inc @@ -0,0 +1,143 @@ +Text_17A642:: @ 817A642 + .string "Can you imagine?\n" + .string "If this volcano were to erupt?\p" + .string "The explosion would be the end of\n" + .string "us. How terrifying is that?\p" + .string "While we're terrified, would you\n" + .string "like me to teach EXPLOSION?$" + +Text_17A6ED:: @ 817A6ED + .string "Yeah, you're right.\n" + .string "It is too terrifying.$" + +Text_17A717:: @ 817A717 + .string "You're terribly brave!\p" + .string "Which POKéMON should I teach\n" + .string "EXPLOSION?$" + +Text_17A756:: @ 817A756 + .string "Using EXPLOSION while on this\n" + .string "volcano…\p" + .string "What a terrifying thrill!$" + +Text_17A797:: @ 817A797 + .string "こ この かざんが\n" + .string "もし だいばくはつ したら\l" + .string "お おれら ひとたまりも\l" + .string "ないなあ ‥ブルブル!\p" + .string "こ こわい ついでに\n" + .string "だいばくはつ でも おぼえてみる?$" + +Text_17A7E5:: @ 817A7E5 + .string "や やっぱ こわいもんな\n" + .string "ブルブル$" + +Text_17A7F7:: @ 817A7F7 + .string "つ つよきだね!\n" + .string "じゃあ どの ポケモンに する?$" + +Text_17A811:: @ 817A811 + .string "かざんで だいばくはつを‥\n" + .string "す すごい スリル!$" + +gUnknown_817A82A:: @ 817A82A + .string "Over here.\n" + .string "We'll try digging here.\p" + .string "That treasure the ADMINS've been\n" + .string "talking about should be here.$" + +gUnknown_817A88C:: @ 817A88C + .string "What the…?\n" + .string "You're in the way. Get lost.$" + +gUnknown_817A8B4:: @ 817A8B4 + .string "Whew, punched through at last.\n" + .string "Let's go treasure hunting!$" + +Text_17A8EE:: @ 817A8EE + .string "Any treasure we find, we haul back\n" + .string "to the WAREHOUSE, understood?\p" + .string "…Oh, and what're the passwords?\n" + .string "At the ROCKET WAREHOUSE, I mean.$" + +gUnknown_817A970:: @ 817A970 + .string "What, you forgot the password?\n" + .string "There're actually two.\p" + .string "The first one's “GOLDEEN need\n" + .string "log.”\p" + .string "And the second one is…$" + +gUnknown_817A9E1:: @ 817A9E1 + .string "Hey!\n" + .string "This snoop's been listening in!$" + +gUnknown_817AA06:: @ 817AA06 + .string "You've been eavesdropping on us,\n" + .string "haven't you?$" + +Text_17AA34:: @ 817AA34 + .string "Huh, what?$" + +gUnknown_817AA3F:: @ 817AA3F + .string "Why'd you have to win?$" + +gUnknown_817AA56:: @ 817AA56 + .string "Trying to horn in on our treasure?\n" + .string "Don't bet on it!$" + +Text_17AA8A:: @ 817AA8A + .string "Wait!\n" + .string "But how?$" + +gUnknown_817AA99:: @ 817AA99 + .string "Develop amnesia conveniently and\n" + .string "forget everything you heard!$" + +gUnknown_817AAD7:: @ 817AAD7 + .string "What a setback…\n" + .string "We'll have to regroup.\p" + .string "You! Don't even think about taking\n" + .string "a step inside here!\p" + .string "If you know what's good for you,\n" + .string "don't even think about this!$" + +Text_17AB73:: @ 817AB73 + .string "An active volcano is one that's\n" + .string "erupting, or about to.$" + +Text_17ABAA:: @ 817ABAA + .string "Whew… That was hot!\n" + .string "Sweat's erupting from me!$" + +gUnknown_817ABD8:: @ 817ABD8 + .string "They say there're over 1,500\n" + .string "active volcanoes in the world.\p" + .string "Just thinking about them makes me\n" + .string "feel all hot and gooey inside!$" + +Text_17AC55:: @ 817AC55 + .string "Do you know how caves form inside\n" + .string "volcanoes?$" + +Text_17AC82:: @ 817AC82 + .string "Atchah!\n" + .string "You're shockingly good!$" + +gUnknown_817ACA2:: @ 817ACA2 + .string "When lava at the surface of magma\n" + .string "hardens, and the magma inside flows\l" + .string "out, caverns are left behind.$" + +Text_17AD06:: @ 817AD06 + .string "I've been in training so I can mend\n" + .string "my broken heart…\p" + .string "It toughened me up physically at\n" + .string "least! Hi-yah!$" + +Text_17AD6B:: @ 817AD6B + .string "I think I tried to overdo it…$" + +gUnknown_817AD89:: @ 817AD89 + .string "The way you battle, it reminds me\n" + .string "of the guy who dumped me…$" + diff --git a/data/maps/MtEmber_RubyPath_1F/map.json b/data/maps/MtEmber_RubyPath_1F/map.json new file mode 100644 index 000000000..dfd51b629 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_1F/map.json @@ -0,0 +1,107 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_1F", + "name": "MtEmber_RubyPath_1F", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_1F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "96", + "x": 18, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_1F_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 23, + "y": 16, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_1F_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 20, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_1F_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 19, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_1F_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "96", + "x": 21, + "y": 15, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_1F_EventScript_1BE00C", + "flag": "22" + } + ], + "warp_events": [ + { + "x": 22, + "y": 17, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": 5 + }, + { + "x": 1, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F", + "dest_warp_id": 0 + }, + { + "x": 24, + "y": 5, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_1F/scripts.inc b/data/maps/MtEmber_RubyPath_1F/scripts.inc new file mode 100644 index 000000000..46d4be447 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_1F/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_1F_MapScripts:: @ 8163C45 + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B1F/map.json b/data/maps/MtEmber_RubyPath_B1F/map.json new file mode 100644 index 000000000..e60856ad9 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B1F/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B1F", + "name": "MtEmber_RubyPath_B1F", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B1F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "96", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B1F_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 1, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B1F_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 3, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B1F_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 5, + "y": 14, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B1F_EventScript_1BE00C", + "flag": "21" + } + ], + "warp_events": [ + { + "x": 9, + "y": 21, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B1F/scripts.inc b/data/maps/MtEmber_RubyPath_B1F/scripts.inc new file mode 100644 index 000000000..6a5f9cefb --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B1F/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_B1F_MapScripts:: @ 8163C46 + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json b/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json new file mode 100644 index 000000000..c8175b887 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "name": "MtEmber_RubyPath_B1F_Stairs", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "96", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B1F_Stairs_EventScript_1BE00C", + "flag": "18" + } + ], + "warp_events": [ + { + "x": 4, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 5, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B1F_Stairs/scripts.inc b/data/maps/MtEmber_RubyPath_B1F_Stairs/scripts.inc new file mode 100644 index 000000000..204b555a1 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B1F_Stairs/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_B1F_Stairs_MapScripts:: @ 8163C6F + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B2F/map.json b/data/maps/MtEmber_RubyPath_B2F/map.json new file mode 100644 index 000000000..919bcc7c3 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B2F/map.json @@ -0,0 +1,126 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B2F", + "name": "MtEmber_RubyPath_B2F", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B2F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "97", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B2F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B2F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 12, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B2F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B2F_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B2F_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B2F_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B2F_EventScript_1BE00C", + "flag": "21" + } + ], + "warp_events": [ + { + "x": 1, + "y": 7, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F", + "dest_warp_id": 1 + }, + { + "x": 13, + "y": 9, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B2F/scripts.inc b/data/maps/MtEmber_RubyPath_B2F/scripts.inc new file mode 100644 index 000000000..dc4d85ab6 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B2F/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_B2F_MapScripts:: @ 8163C47 + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json b/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json new file mode 100644 index 000000000..e1a7e7dbe --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json @@ -0,0 +1,61 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "name": "MtEmber_RubyPath_B2F_Stairs", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "96", + "x": 4, + "y": 3, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B2F_Stairs_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B2F_Stairs_EventScript_1BE00C", + "flag": "19" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 4, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B2F_Stairs/scripts.inc b/data/maps/MtEmber_RubyPath_B2F_Stairs/scripts.inc new file mode 100644 index 000000000..3646547b1 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B2F_Stairs/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_B2F_Stairs_MapScripts:: @ 8163C70 + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B3F/map.json b/data/maps/MtEmber_RubyPath_B3F/map.json new file mode 100644 index 000000000..bd2088c30 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B3F/map.json @@ -0,0 +1,172 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B3F", + "name": "MtEmber_RubyPath_B3F", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B3F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "97", + "x": 10, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 26, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 28, + "y": 8, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 4, + "y": 3, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "96", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE00C", + "flag": "22" + }, + { + "graphics_id": "96", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE00C", + "flag": "23" + }, + { + "graphics_id": "97", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B3F_EventScript_1BE11D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 4, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F", + "dest_warp_id": 1 + }, + { + "x": 19, + "y": 19, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "dest_warp_id": 0 + }, + { + "x": 5, + "y": 19, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B4F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B3F/scripts.inc b/data/maps/MtEmber_RubyPath_B3F/scripts.inc new file mode 100644 index 000000000..bc9266e8b --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B3F/scripts.inc @@ -0,0 +1,13 @@ +MtEmber_RubyPath_B3F_MapScripts:: @ 8163C48 + .byte 0 + +MtEmber_RubyPath_B3F_EventScript_163C49:: @ 8163C49 +MtEmber_RubyPath_B5F_EventScript_163C49:: @ 8163C49 + lock + faceplayer + setflag FLAG_0x2DD + removeobject 1 + additem ITEM_RUBY, 1 + giveitemfanfaremsg gUnknown_817ADC5, ITEM_RUBY, 1, BGM_FRLG_ME_KEYITEM + release + end diff --git a/data/maps/MtEmber_RubyPath_B3F/text.inc b/data/maps/MtEmber_RubyPath_B3F/text.inc new file mode 100644 index 000000000..4cf8b5a50 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B3F/text.inc @@ -0,0 +1,3 @@ +gUnknown_817ADC5:: @ 817ADC5 + .string "{PLAYER} found a RUBY!$" + diff --git a/data/maps/MtEmber_RubyPath_B4F/map.json b/data/maps/MtEmber_RubyPath_B4F/map.json new file mode 100644 index 000000000..611d87ef4 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B4F/map.json @@ -0,0 +1,217 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B4F", + "name": "MtEmber_RubyPath_B4F", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B4F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 14, + "y": 14, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B5F", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 3, + "y": 7, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_1638EC" + }, + { + "type": "bg_event_type_1", + "x": 4, + "y": 7, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_1638EC" + }, + { + "type": "bg_event_type_1", + "x": 5, + "y": 7, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_1638EC" + }, + { + "type": "bg_event_type_1", + "x": 4, + "y": 9, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_1638F5" + }, + { + "type": "bg_event_type_1", + "x": 3, + "y": 9, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_1638F5" + }, + { + "type": "bg_event_type_1", + "x": 5, + "y": 9, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_1638F5" + }, + { + "type": "bg_event_type_1", + "x": 3, + "y": 11, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_1638FE" + }, + { + "type": "bg_event_type_1", + "x": 4, + "y": 11, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_1638FE" + }, + { + "type": "bg_event_type_1", + "x": 5, + "y": 11, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_1638FE" + }, + { + "type": "bg_event_type_1", + "x": 3, + "y": 13, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163907" + }, + { + "type": "bg_event_type_1", + "x": 4, + "y": 13, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163907" + }, + { + "type": "bg_event_type_1", + "x": 5, + "y": 13, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163907" + }, + { + "type": "bg_event_type_1", + "x": 7, + "y": 7, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163910" + }, + { + "type": "bg_event_type_1", + "x": 8, + "y": 7, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163910" + }, + { + "type": "bg_event_type_1", + "x": 9, + "y": 7, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163910" + }, + { + "type": "bg_event_type_1", + "x": 7, + "y": 9, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163919" + }, + { + "type": "bg_event_type_1", + "x": 8, + "y": 9, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163919" + }, + { + "type": "bg_event_type_1", + "x": 9, + "y": 9, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163919" + }, + { + "type": "bg_event_type_1", + "x": 7, + "y": 11, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163922" + }, + { + "type": "bg_event_type_1", + "x": 11, + "y": 7, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163934" + }, + { + "type": "bg_event_type_1", + "x": 11, + "y": 9, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_16393D" + }, + { + "type": "bg_event_type_1", + "x": 8, + "y": 11, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163922" + }, + { + "type": "bg_event_type_1", + "x": 9, + "y": 11, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_163922" + }, + { + "type": "bg_event_type_1", + "x": 7, + "y": 13, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_16392B" + }, + { + "type": "bg_event_type_1", + "x": 9, + "y": 13, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_16392B" + }, + { + "type": "bg_event_type_1", + "x": 8, + "y": 13, + "elevation": 0, + "script": "MtEmber_RubyPath_B4F_EventScript_16392B" + } + ] +} diff --git a/data/maps/MtEmber_RubyPath_B4F/scripts.inc b/data/maps/MtEmber_RubyPath_B4F/scripts.inc new file mode 100644 index 000000000..18249a49a --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B4F/scripts.inc @@ -0,0 +1,72 @@ +MtEmber_RubyPath_B4F_MapScripts:: @ 81638EB + .byte 0 + +MtEmber_RubyPath_B4F_EventScript_1638EC:: @ 81638EC + lockall + braillemessage gUnknown_81A929F + waitbuttonpress + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_1638F5:: @ 81638F5 + lockall + braillemessage gUnknown_81A92A3 + waitbuttonpress + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_1638FE:: @ 81638FE + lockall + braillemessage gUnknown_81A92A7 + waitbuttonpress + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_163907:: @ 8163907 + lockall + braillemessage gUnknown_81A92AB + waitbuttonpress + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_163910:: @ 8163910 + lockall + braillemessage gUnknown_81A92AF + waitbuttonpress + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_163919:: @ 8163919 + lockall + braillemessage gUnknown_81A92B3 + waitbuttonpress + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_163922:: @ 8163922 + lockall + braillemessage gUnknown_81A92B7 + waitbuttonpress + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_16392B:: @ 816392B + lockall + braillemessage gUnknown_81A92BC + waitbuttonpress + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_163934:: @ 8163934 + lockall + braillemessage gUnknown_81A92C1 + waitbuttonpress + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_16393D:: @ 816393D + lockall + braillemessage gUnknown_81A92C3 + waitbuttonpress + releaseall + end diff --git a/data/maps/MtEmber_RubyPath_B5F/map.json b/data/maps/MtEmber_RubyPath_B5F/map.json new file mode 100644 index 000000000..e6b80acc1 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B5F/map.json @@ -0,0 +1,49 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B5F", + "name": "MtEmber_RubyPath_B5F", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B5F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "99", + "x": 7, + "y": 7, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_RubyPath_B5F_EventScript_163C49", + "flag": "138" + } + ], + "warp_events": [ + { + "x": 11, + "y": 7, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B4F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 7, + "y": 2, + "elevation": 0, + "script": "MtEmber_RubyPath_B5F_EventScript_163BAB" + } + ] +} diff --git a/data/maps/MtEmber_RubyPath_B5F/scripts.inc b/data/maps/MtEmber_RubyPath_B5F/scripts.inc new file mode 100644 index 000000000..c3d8b7320 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B5F/scripts.inc @@ -0,0 +1,38 @@ +MtEmber_RubyPath_B5F_MapScripts:: @ 8163BAA + .byte 0 + +MtEmber_RubyPath_B5F_EventScript_163BAB:: @ 8163BAB + lockall + setvar VAR_0x8005, 130 + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A92C5 + getbraillestringwidth gUnknown_81A92C5 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A92D0 + getbraillestringwidth gUnknown_81A92D0 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A92DC + getbraillestringwidth gUnknown_81A92DC + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A92E6 + getbraillestringwidth gUnknown_81A92E6 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A92F2 + getbraillestringwidth gUnknown_81A92F2 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A92FE + getbraillestringwidth gUnknown_81A92FE + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A930A + getbraillestringwidth gUnknown_81A930A + call EventScript_1A926C + braillemessage gUnknown_81A9316 + waitbuttonpress + releaseall + end diff --git a/data/maps/MtEmber_Summit/map.json b/data/maps/MtEmber_Summit/map.json new file mode 100644 index 000000000..711f6f57d --- /dev/null +++ b/data/maps/MtEmber_Summit/map.json @@ -0,0 +1,93 @@ +{ + "id": "MAP_MT_EMBER_SUMMIT", + "name": "MtEmber_Summit", + "layout": "LAYOUT_MT_EMBER_SUMMIT", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "137", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Summit_EventScript_163B33", + "flag": "82" + }, + { + "graphics_id": "97", + "x": 10, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Summit_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 9, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Summit_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 8, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Summit_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 8, + "y": 10, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_Summit_EventScript_1BE11D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 9, + "y": 15, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_Summit/scripts.inc b/data/maps/MtEmber_Summit/scripts.inc new file mode 100644 index 000000000..3de162df2 --- /dev/null +++ b/data/maps/MtEmber_Summit/scripts.inc @@ -0,0 +1,66 @@ +MtEmber_Summit_MapScripts:: @ 8163AFC + map_script 3, MtEmber_Summit_MapScript1_163B25 + map_script 5, MtEmber_Summit_MapScript2_163B07 + .byte 0 + +MtEmber_Summit_MapScript2_163B07:: @ 8163B07 + checkflag FLAG_0x807 + call_if 1, EventScript_163B11 + end + +EventScript_163B11:: @ 8163B11 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 7 + goto_if 5, EventScript_1A77A9 + removeobject VAR_LAST_TALKED + return + +MtEmber_Summit_MapScript1_163B25:: @ 8163B25 + checkflag FLAG_0x2BD + call_if 0, EventScript_163B2F + end + +EventScript_163B2F:: @ 8163B2F + clearflag FLAG_0x052 + return + +MtEmber_Summit_EventScript_163B33:: @ 8163B33 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + setwildbattle SPECIES_MOLTRES, 50, ITEM_NONE + waitse + playmoncry SPECIES_MOLTRES, 2 + message Text_1A6448 + waitmessage + waitmoncry + delay 10 + playbgm BGM_FRLG_LEADER_EYE, 0 + waitbuttonpress + setflag FLAG_0x807 + special sub_807F9D8 + waitstate + clearflag FLAG_0x807 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_163B96 + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_163B9F + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_163B9F + setflag FLAG_0x2BD + release + end + +EventScript_163B96:: @ 8163B96 + setflag FLAG_0x2BD + goto EventScript_1A922D + end + +EventScript_163B9F:: @ 8163B9F + setvar VAR_0x8004, SPECIES_MOLTRES + goto EventScript_1A9236 + end diff --git a/data/maps/MtEmber_SummitPath_1F/map.json b/data/maps/MtEmber_SummitPath_1F/map.json new file mode 100644 index 000000000..16438a729 --- /dev/null +++ b/data/maps/MtEmber_SummitPath_1F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_MT_EMBER_SUMMIT_PATH_1F", + "name": "MtEmber_SummitPath_1F", + "layout": "LAYOUT_MT_EMBER_SUMMIT_PATH_1F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 15, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": 2 + }, + { + "x": 11, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_SummitPath_1F/scripts.inc b/data/maps/MtEmber_SummitPath_1F/scripts.inc new file mode 100644 index 000000000..22143d713 --- /dev/null +++ b/data/maps/MtEmber_SummitPath_1F/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_SummitPath_1F_MapScripts:: @ 8163AF9 + .byte 0 diff --git a/data/maps/MtEmber_SummitPath_2F/map.json b/data/maps/MtEmber_SummitPath_2F/map.json new file mode 100644 index 000000000..161cdff31 --- /dev/null +++ b/data/maps/MtEmber_SummitPath_2F/map.json @@ -0,0 +1,152 @@ +{ + "id": "MAP_MT_EMBER_SUMMIT_PATH_2F", + "name": "MtEmber_SummitPath_2F", + "layout": "LAYOUT_MT_EMBER_SUMMIT_PATH_2F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "96", + "x": 40, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_SummitPath_2F_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 33, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_SummitPath_2F_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 15, + "y": 19, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_SummitPath_2F_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 13, + "y": 23, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_SummitPath_2F_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "96", + "x": 13, + "y": 21, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_SummitPath_2F_EventScript_1BE00C", + "flag": "22" + }, + { + "graphics_id": "96", + "x": 7, + "y": 38, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_SummitPath_2F_EventScript_1BE00C", + "flag": "23" + }, + { + "graphics_id": "96", + "x": 9, + "y": 35, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_SummitPath_2F_EventScript_1BE00C", + "flag": "24" + }, + { + "graphics_id": "96", + "x": 7, + "y": 34, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_SummitPath_2F_EventScript_1BE00C", + "flag": "25" + }, + { + "graphics_id": "96", + "x": 15, + "y": 26, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtEmber_SummitPath_2F_EventScript_1BE00C", + "flag": "26" + } + ], + "warp_events": [ + { + "x": 8, + "y": 39, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_1F", + "dest_warp_id": 1 + }, + { + "x": 39, + "y": 6, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_3F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_SummitPath_2F/scripts.inc b/data/maps/MtEmber_SummitPath_2F/scripts.inc new file mode 100644 index 000000000..d8b43df39 --- /dev/null +++ b/data/maps/MtEmber_SummitPath_2F/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_SummitPath_2F_MapScripts:: @ 8163AFA + .byte 0 diff --git a/data/maps/MtEmber_SummitPath_3F/map.json b/data/maps/MtEmber_SummitPath_3F/map.json new file mode 100644 index 000000000..0d2f4c7b3 --- /dev/null +++ b/data/maps/MtEmber_SummitPath_3F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_MT_EMBER_SUMMIT_PATH_3F", + "name": "MtEmber_SummitPath_3F", + "layout": "LAYOUT_MT_EMBER_SUMMIT_PATH_3F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 4, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_2F", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 8, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_SummitPath_3F/scripts.inc b/data/maps/MtEmber_SummitPath_3F/scripts.inc new file mode 100644 index 000000000..e576b321c --- /dev/null +++ b/data/maps/MtEmber_SummitPath_3F/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_SummitPath_3F_MapScripts:: @ 8163AFB + .byte 0 diff --git a/data/maps/MtMoon_1F/map.json b/data/maps/MtMoon_1F/map.json new file mode 100644 index 000000000..314eedb18 --- /dev/null +++ b/data/maps/MtMoon_1F/map.json @@ -0,0 +1,239 @@ +{ + "id": "MAP_MT_MOON_1F", + "name": "MtMoon_1F", + "layout": "LAYOUT_MT_MOON_1F", + "music": "BGM_FRLG_MT_MOON", + "region_map_section": "MAPSEC_MT_MOON", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "22", + "x": 20, + "y": 26, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "MtMoon_1F_EventScript_16063C", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 36, + "y": 30, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "MtMoon_1F_EventScript_160681", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 30, + "y": 35, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "MtMoon_1F_EventScript_160653", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 33, + "y": 4, + "elevation": 3, + "movement_type": "47", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "MtMoon_1F_EventScript_160625", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 7, + "y": 26, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "MtMoon_1F_EventScript_16066A", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 13, + "y": 17, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "MtMoon_1F_EventScript_16060E", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 7, + "y": 10, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "MtMoon_1F_EventScript_1605F7", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 2, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_1F_EventScript_1BE5CF", + "flag": "345" + }, + { + "graphics_id": "92", + "x": 11, + "y": 35, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_1F_EventScript_1BE5DC", + "flag": "346" + }, + { + "graphics_id": "92", + "x": 26, + "y": 32, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_1F_EventScript_1BE5E9", + "flag": "347" + }, + { + "graphics_id": "92", + "x": 42, + "y": 35, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_1F_EventScript_1BE5F6", + "flag": "348" + }, + { + "graphics_id": "92", + "x": 44, + "y": 21, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_1F_EventScript_1BE603", + "flag": "349" + }, + { + "graphics_id": "92", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_1F_EventScript_1BE610", + "flag": "350" + }, + { + "graphics_id": "30", + "x": 42, + "y": 7, + "elevation": 3, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_1F_EventScript_1ACE03", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 6, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": 0 + }, + { + "x": 19, + "y": 14, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": 1 + }, + { + "x": 31, + "y": 16, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": 2 + }, + { + "x": 18, + "y": 37, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 19, + "y": 26, + "elevation": 0, + "script": "MtMoon_1F_EventScript_1605EE" + } + ] +} diff --git a/data/maps/MtMoon_1F/scripts.inc b/data/maps/MtMoon_1F/scripts.inc new file mode 100644 index 000000000..cd8feb26c --- /dev/null +++ b/data/maps/MtMoon_1F/scripts.inc @@ -0,0 +1,46 @@ +MtMoon_1F_MapScripts:: @ 81605E4 + map_script 3, MtMoon_1F_MapScript1_1605EA + .byte 0 + +MtMoon_1F_MapScript1_1605EA:: @ 81605EA + setworldmapflag FLAG_WORLD_MAP_MT_MOON_1F + end + +MtMoon_1F_EventScript_1605EE:: @ 81605EE + msgbox gUnknown_8172AE0, 3 + end + +MtMoon_1F_EventScript_1605F7:: @ 81605F7 + trainerbattle 0, 181, 0, Text_17279D, Text_1727CB + msgbox gUnknown_81727DF, 6 + end + +MtMoon_1F_EventScript_16060E:: @ 816060E + trainerbattle 0, 91, 0, Text_17281D, Text_172844 + msgbox gUnknown_8172863, 6 + end + +MtMoon_1F_EventScript_160625:: @ 8160625 + trainerbattle 0, 120, 0, Text_172896, Text_1728C3 + msgbox gUnknown_81728D2, 6 + end + +MtMoon_1F_EventScript_16063C:: @ 816063C + trainerbattle 0, 121, 0, Text_172972, Text_1729A4 + msgbox gUnknown_81729AC, 6 + end + +MtMoon_1F_EventScript_160653:: @ 8160653 + trainerbattle 0, 169, 0, Text_17290B, Text_172927 + msgbox gUnknown_817293C, 6 + end + +MtMoon_1F_EventScript_16066A:: @ 816066A + trainerbattle 0, 108, 0, Text_1729EA, Text_172A1A + msgbox gUnknown_8172A26, 6 + end + +MtMoon_1F_EventScript_160681:: @ 8160681 + trainerbattle 0, 109, 0, Text_172A55, Text_172A8F + msgbox gUnknown_8172A97, 6 + end diff --git a/data/maps/MtMoon_1F/text.inc b/data/maps/MtMoon_1F/text.inc new file mode 100644 index 000000000..86028da5c --- /dev/null +++ b/data/maps/MtMoon_1F/text.inc @@ -0,0 +1,87 @@ +Text_17279D:: @ 817279D + .string "WHOA!\n" + .string "You shocked me!\l" + .string "…Oh, you're just a kid!$" + +Text_1727CB:: @ 81727CB + .string "Wow!\n" + .string "Shocked again!$" + +gUnknown_81727DF:: @ 81727DF + .string "Kids like you shouldn't be\n" + .string "wandering around here in the dark.$" + +Text_17281D:: @ 817281D + .string "Did you come to explore the cave,\n" + .string "too?$" + +Text_172844:: @ 8172844 + .string "Losing stinks!\n" + .string "It's so uncool.$" + +gUnknown_8172863:: @ 8172863 + .string "I came all the way down here to\n" + .string "show off to girls.$" + +Text_172896:: @ 8172896 + .string "Wow! It's way bigger in here than\n" + .string "I thought!$" + +Text_1728C3:: @ 81728C3 + .string "Oh!\n" + .string "I lost it!$" + +gUnknown_81728D2:: @ 81728D2 + .string "How do you get out of here?\n" + .string "It's so big, I may get lost.$" + +Text_17290B:: @ 817290B + .string "What!\n" + .string "Don't sneak up on me!$" + +Text_172927:: @ 8172927 + .string "My POKéMON won't do!$" + +gUnknown_817293C:: @ 817293C + .string "I have to find stronger POKéMON.\n" + .string "Where might they be?$" + +Text_172972:: @ 8172972 + .string "What?\n" + .string "I'm waiting for my friends to find\l" + .string "me here.$" + +Text_1729A4:: @ 81729A4 + .string "I lost?$" + +gUnknown_81729AC:: @ 81729AC + .string "I came because I heard there are\n" + .string "some very rare fossils here.$" + +Text_1729EA:: @ 81729EA + .string "Suspicious men are in the cave.\n" + .string "What about you?$" + +Text_172A1A:: @ 8172A1A + .string "You got me!$" + +gUnknown_8172A26:: @ 8172A26 + .string "I saw them!\n" + .string "I'm sure they're from TEAM ROCKET!$" + +Text_172A55:: @ 8172A55 + .string "You need to go through this cave\n" + .string "to get to CERULEAN CITY.$" + +Text_172A8F:: @ 8172A8F + .string "I lost.$" + +gUnknown_8172A97:: @ 8172A97 + .string "ZUBAT is tough!\n" + .string "But if you can catch one, you'll\l" + .string "be able to count on it.$" + +gUnknown_8172AE0:: @ 8172AE0 + .string "Beware!\n" + .string "ZUBAT is a bloodsucker!$" + diff --git a/data/maps/MtMoon_B1F/map.json b/data/maps/MtMoon_B1F/map.json new file mode 100644 index 000000000..44e8bec9d --- /dev/null +++ b/data/maps/MtMoon_B1F/map.json @@ -0,0 +1,131 @@ +{ + "id": "MAP_MT_MOON_B1F", + "name": "MtMoon_B1F", + "layout": "LAYOUT_MT_MOON_B1F", + "music": "BGM_FRLG_MT_MOON", + "region_map_section": "MAPSEC_MT_MOON", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 3, + "y": 3, + "elevation": 3, + "dest_map": "MAP_MT_MOON_1F", + "dest_warp_id": 0 + }, + { + "x": 25, + "y": 4, + "elevation": 3, + "dest_map": "MAP_MT_MOON_1F", + "dest_warp_id": 1 + }, + { + "x": 43, + "y": 21, + "elevation": 3, + "dest_map": "MAP_MT_MOON_1F", + "dest_warp_id": 2 + }, + { + "x": 22, + "y": 18, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B2F", + "dest_warp_id": 0 + }, + { + "x": 17, + "y": 5, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B2F", + "dest_warp_id": 1 + }, + { + "x": 26, + "y": 36, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B2F", + "dest_warp_id": 2 + }, + { + "x": 39, + "y": 4, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B2F", + "dest_warp_id": 3 + }, + { + "x": 45, + "y": 4, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 46, + "y": 2, + "elevation": 0, + "item": "ITEM_TINY_MUSHROOM", + "flag": "84", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 26, + "y": 2, + "elevation": 0, + "item": "ITEM_TINY_MUSHROOM", + "flag": "85", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 39, + "y": 34, + "elevation": 0, + "item": "ITEM_TINY_MUSHROOM", + "flag": "86", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 24, + "y": 35, + "elevation": 0, + "item": "ITEM_BIG_MUSHROOM", + "flag": "87", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 6, + "y": 12, + "elevation": 0, + "item": "ITEM_BIG_MUSHROOM", + "flag": "88", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 25, + "y": 34, + "elevation": 0, + "item": "ITEM_BIG_MUSHROOM", + "flag": "89", + "unknown": 1 + } + ] +} diff --git a/data/maps/MtMoon_B1F/scripts.inc b/data/maps/MtMoon_B1F/scripts.inc new file mode 100644 index 000000000..ecc7676e0 --- /dev/null +++ b/data/maps/MtMoon_B1F/scripts.inc @@ -0,0 +1,2 @@ +MtMoon_B1F_MapScripts:: @ 8160698 + .byte 0 diff --git a/data/maps/MtMoon_B2F/map.json b/data/maps/MtMoon_B2F/map.json new file mode 100644 index 000000000..093b40917 --- /dev/null +++ b/data/maps/MtMoon_B2F/map.json @@ -0,0 +1,221 @@ +{ + "id": "MAP_MT_MOON_B2F", + "name": "MtMoon_B2F", + "layout": "LAYOUT_MT_MOON_B2F", + "music": "BGM_FRLG_MT_MOON", + "region_map_section": "MAPSEC_MT_MOON", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "98", + "x": 13, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_B2F_EventScript_16071B", + "flag": "47" + }, + { + "graphics_id": "98", + "x": 14, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_B2F_EventScript_16077F", + "flag": "48" + }, + { + "graphics_id": "55", + "x": 13, + "y": 11, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_B2F_EventScript_1606C2", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 37, + "y": 21, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "MtMoon_B2F_EventScript_160829", + "flag": "173" + }, + { + "graphics_id": "49", + "x": 12, + "y": 20, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "MtMoon_B2F_EventScript_1607E4", + "flag": "173" + }, + { + "graphics_id": "49", + "x": 35, + "y": 12, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "MtMoon_B2F_EventScript_160812", + "flag": "173" + }, + { + "graphics_id": "49", + "x": 18, + "y": 27, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "MtMoon_B2F_EventScript_1607FB", + "flag": "173" + }, + { + "graphics_id": "92", + "x": 30, + "y": 26, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_B2F_EventScript_1BE61D", + "flag": "351" + }, + { + "graphics_id": "92", + "x": 35, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_B2F_EventScript_1BE62A", + "flag": "352" + }, + { + "graphics_id": "92", + "x": 24, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_B2F_EventScript_1BEAD6", + "flag": "447" + }, + { + "graphics_id": "92", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "MtMoon_B2F_EventScript_1BEAE3", + "flag": "448" + } + ], + "warp_events": [ + { + "x": 25, + "y": 21, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": 3 + }, + { + "x": 31, + "y": 11, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": 4 + }, + { + "x": 17, + "y": 31, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": 5 + }, + { + "x": 5, + "y": 10, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": 6 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 14, + "y": 11, + "elevation": 3, + "var": "VAR_0x408B", + "var_value": 0, + "script": "MtMoon_B2F_EventScript_1606B0" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 20, + "y": 16, + "elevation": 3, + "item": "ITEM_MOON_STONE", + "flag": "2", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 39, + "y": 11, + "elevation": 3, + "item": "ITEM_ETHER", + "flag": "3", + "unknown": 1 + } + ] +} diff --git a/data/maps/MtMoon_B2F/scripts.inc b/data/maps/MtMoon_B2F/scripts.inc new file mode 100644 index 000000000..1947a3eb2 --- /dev/null +++ b/data/maps/MtMoon_B2F/scripts.inc @@ -0,0 +1,143 @@ +MtMoon_B2F_MapScripts:: @ 8160699 + map_script 3, MtMoon_B2F_MapScript1_16069F + .byte 0 + +MtMoon_B2F_MapScript1_16069F:: @ 816069F + checkflag FLAG_0x232 + call_if 0, EventScript_1606A9 + end + +EventScript_1606A9:: @ 81606A9 + clearflag FLAG_0x02F + clearflag FLAG_0x030 + return + +MtMoon_B2F_EventScript_1606B0:: @ 81606B0 + lockall + applymovement 3, Movement_1A75EB + waitmovement 0 + call EventScript_1606DD + releaseall + end + +MtMoon_B2F_EventScript_1606C2:: @ 81606C2 + lock + faceplayer + checkflag FLAG_0x232 + goto_if_eq EventScript_160707 + checktrainerflag FLAG_0x0AA + goto_if_eq EventScript_160711 + call EventScript_1606DD + release + end + +EventScript_1606DD:: @ 81606DD + textcolor 0 + message Text_172B64 + waitmessage + playbgm BGM_FRLG_LEADER_EYE, 0 + waitbuttonpress + setvar VAR_LAST_TALKED, 3 + trainerbattle 3, 170, 0, Text_172B99 + setvar VAR_0x408B, 1 + msgbox gUnknown_8172BAB + return + +EventScript_160707:: @ 8160707 + msgbox gUnknown_8172BFB + release + end + +EventScript_160711:: @ 8160711 + msgbox gUnknown_8172BAB + release + end + +MtMoon_B2F_EventScript_16071B:: @ 816071B + lock + faceplayer + msgbox gUnknown_8172E77, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1607DE + removeobject 1 + additem ITEM_DOME_FOSSIL, 1 + giveitemfanfaremsg gUnknown_8172ECD, ITEM_DOME_FOSSIL, 1, BGM_FRLG_ME_KEYITEM + closemessage + special sub_8112364 + delay 10 + applymovement 3, Movement_16077A + waitmovement 0 + moveobjectoffscreen 3 + textcolor 0 + playfanfare BGM_FRLG_ME_KEYITEM + message Text_172BD6 + waitmessage + waitfanfare + removeobject 2 + setflag FLAG_0x272 + setflag FLAG_0x232 + release + end + +Movement_16077A:: @ 816077A + step_13 + step_11 + step_11 + step_11 + step_end + +MtMoon_B2F_EventScript_16077F:: @ 816077F + lock + faceplayer + msgbox gUnknown_8172E94, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1607DE + removeobject 2 + additem ITEM_HELIX_FOSSIL, 1 + giveitemfanfaremsg gUnknown_8172EB2, ITEM_HELIX_FOSSIL, 1, BGM_FRLG_ME_KEYITEM + closemessage + special sub_8112364 + delay 10 + applymovement 3, Movement_1607E0 + waitmovement 0 + moveobjectoffscreen 3 + textcolor 0 + playfanfare BGM_FRLG_ME_KEYITEM + message Text_172BD6 + waitmessage + waitfanfare + removeobject 1 + setflag FLAG_0x273 + setflag FLAG_0x232 + release + end + +EventScript_1607DE:: @ 81607DE + release + end + +Movement_1607E0:: @ 81607E0 + step_11 + step_11 + step_11 + step_end + +MtMoon_B2F_EventScript_1607E4:: @ 81607E4 + trainerbattle 0, 351, 0, Text_172C5A, Text_172CB8 + msgbox gUnknown_8172CCB, 6 + end + +MtMoon_B2F_EventScript_1607FB:: @ 81607FB + trainerbattle 0, 352, 0, Text_172CFC, Text_172D46 + msgbox gUnknown_8172D51, 6 + end + +MtMoon_B2F_EventScript_160812:: @ 8160812 + trainerbattle 0, 353, 0, Text_172D82, Text_172DAF + msgbox gUnknown_8172DC1, 6 + end + +MtMoon_B2F_EventScript_160829:: @ 8160829 + trainerbattle 0, 354, 0, Text_172DF0, Text_172E3E + msgbox gUnknown_8172E4B, 6 + end diff --git a/data/maps/MtMoon_B2F/text.inc b/data/maps/MtMoon_B2F/text.inc new file mode 100644 index 000000000..2f27312db --- /dev/null +++ b/data/maps/MtMoon_B2F/text.inc @@ -0,0 +1,90 @@ +Text_172B00:: @ 8172B00 + .string "Hi, I'm excavating for fossils here\n" + .string "under MT. MOON.\p" + .string "Sometimes, BROCK of PEWTER GYM\n" + .string "lends me a hand.$" + +Text_172B64:: @ 8172B64 + .string "Hey, stop!\p" + .string "I found these fossils!\n" + .string "They're both mine!$" + +Text_172B99:: @ 8172B99 + .string "Okay!\n" + .string "I'll share!$" + +gUnknown_8172BAB:: @ 8172BAB + .string "We'll each take a fossil!\n" + .string "No being greedy!$" + +Text_172BD6:: @ 8172BD6 + .string "All right.\n" + .string "Then this fossil is mine!$" + +gUnknown_8172BFB:: @ 8172BFB + .string "Far away, on CINNABAR ISLAND,\n" + .string "there's a POKéMON LAB.\p" + .string "They do research on regenerating\n" + .string "fossils.$" + +Text_172C5A:: @ 8172C5A + .string "We, TEAM ROCKET, shall find the\n" + .string "fossils!\p" + .string "Reviving POKéMON from them will\n" + .string "earn us huge riches!$" + +Text_172CB8:: @ 8172CB8 + .string "Urgh!\n" + .string "Now I'm mad!$" + +gUnknown_8172CCB:: @ 8172CCB + .string "You made me mad!\n" + .string "TEAM ROCKET will blacklist you!$" + +Text_172CFC:: @ 8172CFC + .string "We, TEAM ROCKET, are POKéMON\n" + .string "gangsters!\l" + .string "We strike fear with our strength!$" + +Text_172D46:: @ 8172D46 + .string "I blew it!$" + +gUnknown_8172D51:: @ 8172D51 + .string "Darn it all!\n" + .string "My associates won't stand for this!$" + +Text_172D82:: @ 8172D82 + .string "We're pulling a big job here!\n" + .string "Get lost, kid!$" + +Text_172DAF:: @ 8172DAF + .string "So, you are good…$" + +gUnknown_8172DC1:: @ 8172DC1 + .string "If you find a fossil, give it to me\n" + .string "and scram!$" + +Text_172DF0:: @ 8172DF0 + .string "Little kids shouldn't be messing\n" + .string "around with grown-ups!\p" + .string "It could be bad news!$" + +Text_172E3E:: @ 8172E3E + .string "I'm steamed!$" + +gUnknown_8172E4B:: @ 8172E4B + .string "POKéMON lived here long before\n" + .string "people came.$" + +gUnknown_8172E77:: @ 8172E77 + .string "Do you want the DOME FOSSIL?$" + +gUnknown_8172E94:: @ 8172E94 + .string "Do you want the HELIX FOSSIL?$" + +gUnknown_8172EB2:: @ 8172EB2 + .string "Obtained the HELIX FOSSIL!$" + +gUnknown_8172ECD:: @ 8172ECD + .string "Obtained the DOME FOSSIL!$" + diff --git a/data/maps/NavelRock_1F/map.json b/data/maps/NavelRock_1F/map.json new file mode 100644 index 000000000..9cbfb1918 --- /dev/null +++ b/data/maps/NavelRock_1F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_1F", + "name": "NavelRock_1F", + "layout": "LAYOUT_NAVEL_ROCK_1F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 8, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_B1F", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 23, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_EXTERIOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_1F/scripts.inc b/data/maps/NavelRock_1F/scripts.inc new file mode 100644 index 000000000..2cf06ab2e --- /dev/null +++ b/data/maps/NavelRock_1F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_1F_MapScripts:: @ 8164F9E + .byte 0 diff --git a/data/maps/NavelRock_B1F/map.json b/data/maps/NavelRock_B1F/map.json new file mode 100644 index 000000000..643051c4a --- /dev/null +++ b/data/maps/NavelRock_B1F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_B1F", + "name": "NavelRock_B1F", + "layout": "LAYOUT_NAVEL_ROCK_B1F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_1F", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_FORK", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_B1F/scripts.inc b/data/maps/NavelRock_B1F/scripts.inc new file mode 100644 index 000000000..b25c20c1e --- /dev/null +++ b/data/maps/NavelRock_B1F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_B1F_MapScripts:: @ 8165201 + .byte 0 diff --git a/data/maps/NavelRock_Base/map.json b/data/maps/NavelRock_Base/map.json new file mode 100644 index 000000000..50742576b --- /dev/null +++ b/data/maps/NavelRock_Base/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE", + "name": "NavelRock_Base", + "layout": "LAYOUT_NAVEL_ROCK_BASE", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "144", + "x": 10, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "NavelRock_Base_EventScript_165134", + "flag": "155" + } + ], + "warp_events": [ + { + "x": 13, + "y": 20, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B11F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_Base/scripts.inc b/data/maps/NavelRock_Base/scripts.inc new file mode 100644 index 000000000..34cca4e9b --- /dev/null +++ b/data/maps/NavelRock_Base/scripts.inc @@ -0,0 +1,91 @@ +NavelRock_Base_MapScripts:: @ 81650E7 + map_script 3, NavelRock_Base_MapScript1_1650F2 + map_script 5, NavelRock_Base_MapScript2_165116 + .byte 0 + +NavelRock_Base_MapScript1_1650F2:: @ 81650F2 + checkflag FLAG_0x2F2 + call_if 1, EventScript_165105 + checkflag FLAG_0x2F2 + call_if 0, EventScript_165109 + end + +EventScript_165105:: @ 8165105 + setflag FLAG_0x09B + return + +EventScript_165109:: @ 8165109 + checkflag FLAG_0x2F5 + goto_if_eq EventScript_1A77A9 + clearflag FLAG_0x09B + return + +NavelRock_Base_MapScript2_165116:: @ 8165116 + checkflag FLAG_0x807 + call_if 1, EventScript_165120 + end + +EventScript_165120:: @ 8165120 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 7 + goto_if 5, EventScript_1A77A9 + removeobject 1 + return + +NavelRock_Base_EventScript_165134:: @ 8165134 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + waitse + delay 20 + playse SE_FUUSEN2 + setvar VAR_0x8004, 0 + setvar VAR_0x8005, 3 + setvar VAR_0x8006, 4 + setvar VAR_0x8007, 2 + special sub_80CAC28 + delay 30 + playse SE_FUUSEN2 + setvar VAR_0x8004, 0 + setvar VAR_0x8005, 3 + setvar VAR_0x8006, 4 + setvar VAR_0x8007, 2 + special sub_80CAC28 + delay 30 + delay 50 + waitse + playmoncry SPECIES_LUGIA, 2 + waitmoncry + delay 20 + setvar VAR_0x8004, SPECIES_LUGIA + setvar VAR_0x8005, 70 + setvar VAR_0x8006, 0 + special sub_8044838 + setflag FLAG_0x807 + special sub_807F9D8 + waitstate + clearflag FLAG_0x807 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_1651D9 + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_1651E7 + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_1651E7 + setflag FLAG_0x2F2 + release + end + +EventScript_1651D9:: @ 81651D9 + setflag FLAG_0x2F5 + setvar VAR_0x8004, SPECIES_LUGIA + goto EventScript_1A9236 + end + +EventScript_1651E7:: @ 81651E7 + setvar VAR_0x8004, SPECIES_LUGIA + goto EventScript_1A9236 + end diff --git a/data/maps/NavelRock_BasePath_B10F/map.json b/data/maps/NavelRock_BasePath_B10F/map.json new file mode 100644 index 000000000..41aaa26fe --- /dev/null +++ b/data/maps/NavelRock_BasePath_B10F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B10F", + "name": "NavelRock_BasePath_B10F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B10F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B9F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B11F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B10F/scripts.inc b/data/maps/NavelRock_BasePath_B10F/scripts.inc new file mode 100644 index 000000000..472814198 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B10F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B10F_MapScripts:: @ 81651FF + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B11F/map.json b/data/maps/NavelRock_BasePath_B11F/map.json new file mode 100644 index 000000000..ca63d3f42 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B11F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B11F", + "name": "NavelRock_BasePath_B11F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B11F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B10F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B11F/scripts.inc b/data/maps/NavelRock_BasePath_B11F/scripts.inc new file mode 100644 index 000000000..9157991d1 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B11F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B11F_MapScripts:: @ 8165200 + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B1F/map.json b/data/maps/NavelRock_BasePath_B1F/map.json new file mode 100644 index 000000000..d91ec836f --- /dev/null +++ b/data/maps/NavelRock_BasePath_B1F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B1F", + "name": "NavelRock_BasePath_B1F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B1F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_FORK", + "dest_warp_id": 2 + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B1F/scripts.inc b/data/maps/NavelRock_BasePath_B1F/scripts.inc new file mode 100644 index 000000000..141ec01a0 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B1F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B1F_MapScripts:: @ 81651F6 + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B2F/map.json b/data/maps/NavelRock_BasePath_B2F/map.json new file mode 100644 index 000000000..795341b0d --- /dev/null +++ b/data/maps/NavelRock_BasePath_B2F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B2F", + "name": "NavelRock_BasePath_B2F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B2F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B1F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B3F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B2F/scripts.inc b/data/maps/NavelRock_BasePath_B2F/scripts.inc new file mode 100644 index 000000000..75d2fa066 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B2F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B2F_MapScripts:: @ 81651F7 + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B3F/map.json b/data/maps/NavelRock_BasePath_B3F/map.json new file mode 100644 index 000000000..9ecce5260 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B3F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B3F", + "name": "NavelRock_BasePath_B3F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B3F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B2F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B4F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B3F/scripts.inc b/data/maps/NavelRock_BasePath_B3F/scripts.inc new file mode 100644 index 000000000..4cf947ebc --- /dev/null +++ b/data/maps/NavelRock_BasePath_B3F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B3F_MapScripts:: @ 81651F8 + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B4F/map.json b/data/maps/NavelRock_BasePath_B4F/map.json new file mode 100644 index 000000000..e4b6728a1 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B4F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B4F", + "name": "NavelRock_BasePath_B4F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B4F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B3F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B5F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B4F/scripts.inc b/data/maps/NavelRock_BasePath_B4F/scripts.inc new file mode 100644 index 000000000..9e7f60f9d --- /dev/null +++ b/data/maps/NavelRock_BasePath_B4F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B4F_MapScripts:: @ 81651F9 + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B5F/map.json b/data/maps/NavelRock_BasePath_B5F/map.json new file mode 100644 index 000000000..2a66f9652 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B5F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B5F", + "name": "NavelRock_BasePath_B5F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B5F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B4F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B6F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B5F/scripts.inc b/data/maps/NavelRock_BasePath_B5F/scripts.inc new file mode 100644 index 000000000..43a17fabe --- /dev/null +++ b/data/maps/NavelRock_BasePath_B5F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B5F_MapScripts:: @ 81651FA + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B6F/map.json b/data/maps/NavelRock_BasePath_B6F/map.json new file mode 100644 index 000000000..4d0f797b0 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B6F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B6F", + "name": "NavelRock_BasePath_B6F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B6F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B5F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B7F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B6F/scripts.inc b/data/maps/NavelRock_BasePath_B6F/scripts.inc new file mode 100644 index 000000000..9711ad6a4 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B6F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B6F_MapScripts:: @ 81651FB + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B7F/map.json b/data/maps/NavelRock_BasePath_B7F/map.json new file mode 100644 index 000000000..053282a88 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B7F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B7F", + "name": "NavelRock_BasePath_B7F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B7F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B6F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B8F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B7F/scripts.inc b/data/maps/NavelRock_BasePath_B7F/scripts.inc new file mode 100644 index 000000000..276556621 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B7F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B7F_MapScripts:: @ 81651FC + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B8F/map.json b/data/maps/NavelRock_BasePath_B8F/map.json new file mode 100644 index 000000000..d46e80168 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B8F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B8F", + "name": "NavelRock_BasePath_B8F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B8F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B7F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B9F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B8F/scripts.inc b/data/maps/NavelRock_BasePath_B8F/scripts.inc new file mode 100644 index 000000000..03458eabf --- /dev/null +++ b/data/maps/NavelRock_BasePath_B8F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B8F_MapScripts:: @ 81651FD + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B9F/map.json b/data/maps/NavelRock_BasePath_B9F/map.json new file mode 100644 index 000000000..43440ca9c --- /dev/null +++ b/data/maps/NavelRock_BasePath_B9F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B9F", + "name": "NavelRock_BasePath_B9F", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B9F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B8F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B10F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B9F/scripts.inc b/data/maps/NavelRock_BasePath_B9F/scripts.inc new file mode 100644 index 000000000..b1039fa40 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B9F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B9F_MapScripts:: @ 81651FE + .byte 0 diff --git a/data/maps/NavelRock_Exterior/map.json b/data/maps/NavelRock_Exterior/map.json new file mode 100644 index 000000000..8660ec6af --- /dev/null +++ b/data/maps/NavelRock_Exterior/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_EXTERIOR", + "name": "NavelRock_Exterior", + "layout": "LAYOUT_NAVEL_ROCK_EXTERIOR", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 9, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_1F", + "dest_warp_id": 1 + }, + { + "x": 9, + "y": 16, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_HARBOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_Exterior/scripts.inc b/data/maps/NavelRock_Exterior/scripts.inc new file mode 100644 index 000000000..26ef2885c --- /dev/null +++ b/data/maps/NavelRock_Exterior/scripts.inc @@ -0,0 +1,7 @@ +NavelRock_Exterior_MapScripts:: @ 81646AE + map_script 3, NavelRock_Exterior_MapScript1_1646B4 + .byte 0 + +NavelRock_Exterior_MapScript1_1646B4:: @ 81646B4 + setworldmapflag FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR + end diff --git a/data/maps/NavelRock_Fork/map.json b/data/maps/NavelRock_Fork/map.json new file mode 100644 index 000000000..55dc110b9 --- /dev/null +++ b/data/maps/NavelRock_Fork/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_NAVEL_ROCK_FORK", + "name": "NavelRock_Fork", + "layout": "LAYOUT_NAVEL_ROCK_FORK", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 13, + "y": 95, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_B1F", + "dest_warp_id": 1 + }, + { + "x": 3, + "y": 1, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", + "dest_warp_id": 0 + }, + { + "x": 26, + "y": 1, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B1F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_Fork/scripts.inc b/data/maps/NavelRock_Fork/scripts.inc new file mode 100644 index 000000000..5a98404f8 --- /dev/null +++ b/data/maps/NavelRock_Fork/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_Fork_MapScripts:: @ 8165202 + .byte 0 diff --git a/data/maps/NavelRock_Harbor/map.json b/data/maps/NavelRock_Harbor/map.json new file mode 100644 index 000000000..1cd74326e --- /dev/null +++ b/data/maps/NavelRock_Harbor/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_NAVEL_ROCK_HARBOR", + "name": "NavelRock_Harbor", + "layout": "LAYOUT_ISLAND_HARBOR", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "108", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "NavelRock_Harbor_EventScript_165421", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_EXTERIOR", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_Harbor/scripts.inc b/data/maps/NavelRock_Harbor/scripts.inc new file mode 100644 index 000000000..6e630ca01 --- /dev/null +++ b/data/maps/NavelRock_Harbor/scripts.inc @@ -0,0 +1 @@ +@ .include "data/maps/NavelRock_Harbor/scripts.inc" diff --git a/data/maps/NavelRock_Summit/map.json b/data/maps/NavelRock_Summit/map.json new file mode 100644 index 000000000..84bb51d62 --- /dev/null +++ b/data/maps/NavelRock_Summit/map.json @@ -0,0 +1,61 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT", + "name": "NavelRock_Summit", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_CLOUDY", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "145", + "x": 9, + "y": 6, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "156" + } + ], + "warp_events": [ + { + "x": 10, + "y": 18, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", + "dest_warp_id": 1 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "NavelRock_Summit_EventScript_164FFB" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 9, + "y": 11, + "elevation": 3, + "item": "ITEM_SACRED_ASH", + "flag": "160", + "unknown": 129 + } + ] +} diff --git a/data/maps/NavelRock_Summit/scripts.inc b/data/maps/NavelRock_Summit/scripts.inc new file mode 100644 index 000000000..cb82149e8 --- /dev/null +++ b/data/maps/NavelRock_Summit/scripts.inc @@ -0,0 +1,130 @@ +NavelRock_Summit_MapScripts:: @ 8164F9F + map_script 3, NavelRock_Summit_MapScript1_164FAA + map_script 5, NavelRock_Summit_MapScript2_164FDD + .byte 0 + +NavelRock_Summit_MapScript1_164FAA:: @ 8164FAA + checkflag FLAG_0x2F3 + call_if 1, EventScript_164FBD + checkflag FLAG_0x2F3 + call_if 0, EventScript_164FC6 + end + +EventScript_164FBD:: @ 8164FBD + setvar VAR_0x4001, 1 + setflag FLAG_0x09C + return + +EventScript_164FC6:: @ 8164FC6 + setvar VAR_0x4001, 1 + checkflag FLAG_0x2F6 + goto_if_eq EventScript_1A77A9 + setvar VAR_0x4001, 0 + clearflag FLAG_0x09C + return + +NavelRock_Summit_MapScript2_164FDD:: @ 8164FDD + checkflag FLAG_0x807 + call_if 1, EventScript_164FE7 + end + +EventScript_164FE7:: @ 8164FE7 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 7 + goto_if 5, EventScript_1A77A9 + removeobject 1 + return + +NavelRock_Summit_EventScript_164FFB:: @ 8164FFB + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lockall + setvar VAR_0x4001, 1 + special SpawnScriptFieldObject + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 35 + special sub_80CD1B4 + applymovement 1, Movement_1650E0 + applymovement 127, Movement_1650CD + waitmovement 0 + delay 50 + setweather 0 + doweather + waitse + playmoncry SPECIES_HO_OH, 2 + delay 30 + waitmoncry + delay 60 + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 35 + special sub_80CD1B4 + applymovement 127, Movement_1650D1 + applymovement 1, Movement_1650D7 + waitmovement 0 + special RemoveScriptFieldObject + setvar VAR_0x8004, SPECIES_HO_OH + setvar VAR_0x8005, 70 + setvar VAR_0x8006, 0 + special sub_8044838 + setflag FLAG_0x807 + special sub_807F9D8 + waitstate + clearflag FLAG_0x807 + setvar VAR_LAST_TALKED, 1 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_1650B4 + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_1650C2 + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_1650C2 + setflag FLAG_0x2F3 + releaseall + end + +EventScript_1650B4:: @ 81650B4 + setflag FLAG_0x2F6 + setvar VAR_0x8004, SPECIES_HO_OH + goto EventScript_1A9236 + end + +EventScript_1650C2:: @ 81650C2 + setvar VAR_0x8004, SPECIES_HO_OH + goto EventScript_1A9236 + end + +Movement_1650CD:: @ 81650CD + step_11 + step_11 + step_11 + step_end + +Movement_1650D1:: @ 81650D1 + step_1c + step_1c + step_10 + step_10 + step_10 + step_end + +Movement_1650D7:: @ 81650D7 + step_10 + step_10 + step_10 + step_10 + step_10 + step_25 + step_1c + step_1c + step_end + +Movement_1650E0:: @ 81650E0 + step_1c + step_1c + step_25 + step_25 + step_25 + step_25 + step_end diff --git a/data/maps/NavelRock_SummitPath_2F/map.json b/data/maps/NavelRock_SummitPath_2F/map.json new file mode 100644 index 000000000..5ed9016d8 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_2F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", + "name": "NavelRock_SummitPath_2F", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_2F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_FORK", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_SummitPath_2F/scripts.inc b/data/maps/NavelRock_SummitPath_2F/scripts.inc new file mode 100644 index 000000000..c37b5a750 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_2F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_SummitPath_2F_MapScripts:: @ 81651F2 + .byte 0 diff --git a/data/maps/NavelRock_SummitPath_3F/map.json b/data/maps/NavelRock_SummitPath_3F/map.json new file mode 100644 index 000000000..02873fa1a --- /dev/null +++ b/data/maps/NavelRock_SummitPath_3F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", + "name": "NavelRock_SummitPath_3F", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_3F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_SummitPath_3F/scripts.inc b/data/maps/NavelRock_SummitPath_3F/scripts.inc new file mode 100644 index 000000000..f98f50cb3 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_3F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_SummitPath_3F_MapScripts:: @ 81651F3 + .byte 0 diff --git a/data/maps/NavelRock_SummitPath_4F/map.json b/data/maps/NavelRock_SummitPath_4F/map.json new file mode 100644 index 000000000..cb655601a --- /dev/null +++ b/data/maps/NavelRock_SummitPath_4F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", + "name": "NavelRock_SummitPath_4F", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_4F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_SummitPath_4F/scripts.inc b/data/maps/NavelRock_SummitPath_4F/scripts.inc new file mode 100644 index 000000000..8cc10b870 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_4F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_SummitPath_4F_MapScripts:: @ 81651F4 + .byte 0 diff --git a/data/maps/NavelRock_SummitPath_5F/map.json b/data/maps/NavelRock_SummitPath_5F/map.json new file mode 100644 index 000000000..4ff37dd34 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_5F/map.json @@ -0,0 +1,34 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", + "name": "NavelRock_SummitPath_5F", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_5F", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_NAVEL_ROCK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_SummitPath_5F/scripts.inc b/data/maps/NavelRock_SummitPath_5F/scripts.inc new file mode 100644 index 000000000..e159cf2e6 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_5F/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_SummitPath_5F_MapScripts:: @ 81651F5 + .byte 0 diff --git a/data/maps/OneIsland/map.json b/data/maps/OneIsland/map.json new file mode 100644 index 000000000..3a1bc3f42 --- /dev/null +++ b/data/maps/OneIsland/map.json @@ -0,0 +1,114 @@ +{ + "id": "MAP_ONE_ISLAND", + "name": "OneIsland", + "layout": "LAYOUT_ONE_ISLAND", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ONE_ISLAND_TREASURE_BEACH", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_ONE_ISLAND_KINDLE_ROAD", + "offset": -120, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "73", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "113" + }, + { + "graphics_id": "32", + "x": 16, + "y": 12, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_EventScript_167517", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 13, + "y": 9, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_EventScript_167549", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 14, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 0 + }, + { + "x": 19, + "y": 9, + "elevation": 0, + "dest_map": "MAP_ONE_ISLAND_HOUSE1", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 11, + "elevation": 0, + "dest_map": "MAP_ONE_ISLAND_HOUSE2", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 18, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_HARBOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 14, + "y": 13, + "elevation": 0, + "script": "OneIsland_EventScript_167552" + }, + { + "type": "bg_event_type_0", + "x": 15, + "y": 6, + "elevation": 0, + "script": "OneIsland_EventScript_16755B" + } + ] +} diff --git a/data/maps/OneIsland/scripts.inc b/data/maps/OneIsland/scripts.inc new file mode 100644 index 000000000..540980a3e --- /dev/null +++ b/data/maps/OneIsland/scripts.inc @@ -0,0 +1,114 @@ +OneIsland_MapScripts:: @ 8167484 + map_script 3, OneIsland_MapScript1_16748F + map_script 2, OneIsland_MapScript2_167493 + .byte 0 + +OneIsland_MapScript1_16748F:: @ 816748F + setworldmapflag FLAG_WORLD_MAP_ONE_ISLAND + end + +OneIsland_MapScript2_167493:: @ 8167493 + map_script_2 VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 2, EventScript_16749D + .2byte 0 + +EventScript_16749D:: @ 816749D + lockall + textcolor 0 + applymovement 255, Movement_167505 + waitmovement 0 + msgbox gUnknown_818161B + closemessage + applymovement 1, Movement_167507 + applymovement 255, Movement_1674F4 + waitmovement 0 + opendoor 14, 5 + waitdooranim + applymovement 1, Movement_167514 + applymovement 255, Movement_167501 + waitmovement 0 + closedoor 14, 5 + waitdooranim + removeobject 1 + setvar VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 3 + warp MAP_ONE_ISLAND_POKEMON_CENTER_1F, 255, 9, 9 + waitstate + releaseall + end + +Movement_1674F4:: @ 81674F4 + step_11 + step_11 + step_11 + step_11 + step_11 + step_13 + step_13 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_167501:: @ 8167501 + step_11 + step_11 + step_60 + step_end + +Movement_167505:: @ 8167505 + step_11 + step_end + +Movement_167507:: @ 8167507 + step_11 + step_11 + step_11 + step_11 + step_13 + step_13 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_167514:: @ 8167514 + step_11 + step_60 + step_end + +OneIsland_EventScript_167517:: @ 8167517 + lock + faceplayer + checkflag FLAG_0x844 + goto_if_eq EventScript_16753F + checkflag FLAG_0x2A1 + goto_if_eq EventScript_167535 + msgbox gUnknown_818174E + release + end + +EventScript_167535:: @ 8167535 + msgbox gUnknown_8181858 + release + end + +EventScript_16753F:: @ 816753F + msgbox gUnknown_8181901 + release + end + +OneIsland_EventScript_167549:: @ 8167549 + msgbox gUnknown_8181A4A, 2 + end + +OneIsland_EventScript_167552:: @ 8167552 + msgbox gUnknown_81819E1, 3 + end + +OneIsland_EventScript_16755B:: @ 816755B + msgbox gUnknown_8181A0A, 3 + end diff --git a/data/maps/OneIsland/text.inc b/data/maps/OneIsland/text.inc new file mode 100644 index 000000000..f3777a036 --- /dev/null +++ b/data/maps/OneIsland/text.inc @@ -0,0 +1,70 @@ +Text_181569:: @ 8181569 + .string "This FAN CLUB…\n" + .string "No one here has a clue!\p" + .string "How could they not recognize\n" + .string "the brilliance that is LANCE?\p" + .string "He stands for justice!\n" + .string "He's cool, and yet passionate!\l" + .string "He's the greatest, LANCE!$" + +gUnknown_818161B:: @ 818161B + .string "BILL: Here we are!\n" + .string "This is ONE ISLAND.\p" + .string "There are several islands around\n" + .string "here, and this is one of them.\p" + .string "My friend CELIO sent the boat to\n" + .string "fetch me here.\p" + .string "He's in charge of the island's PC\n" + .string "network by his lonesome.\p" + .string "…Why am I telling you this now?\n" + .string "Let's just go see CELIO!$" + +Text_181726:: @ 8181726 + .string "Ahoy, there!\n" + .string "Where do you want to sail?$" + +gUnknown_818174E:: @ 818174E + .string "Here we are on an island smack in\n" + .string "the middle of nowhere.\p" + .string "We're lucky to have an upstanding\n" + .string "young man like CELIO here.\p" + .string "My granddaughter was in a tizzy\n" + .string "over CELIO's friend.\p" + .string "Something about a famous\n" + .string "POKéMANIAC?\p" + .string "I'm not sure what that means, but\n" + .string "CELIO is quite the man!$" + +gUnknown_8181858:: @ 8181858 + .string "My granddaughter was in a tizzy\n" + .string "over a new breakthrough.\p" + .string "She said we now have PC linkage\n" + .string "with people in KANTO.\p" + .string "I'm not sure what that means, but\n" + .string "CELIO is quite the man!$" + +gUnknown_8181901:: @ 8181901 + .string "My granddaughter was in a tizzy\n" + .string "over a new breakthrough.\p" + .string "She said we finally have PC linkage\n" + .string "with people in HOENN.\p" + .string "I'm not sure what that means, but\n" + .string "CELIO is quite the man.\p" + .string "He would make a fine husband for\n" + .string "my granddaughter!$" + +gUnknown_81819E1:: @ 81819E1 + .string "ONE ISLAND\n" + .string "Friends Gather at Knot Island$" + +gUnknown_8181A0A:: @ 8181A0A + .string "Expanding the POKéMON World!\n" + .string "POKéMON NET CENTER$" + +Text_181A3A:: @ 8181A3A + .string "グレンタウンに もどりますか?$" + +gUnknown_8181A4A:: @ 8181A4A + .string "Hi, sight-seeing, are you?\n" + .string "Isn't the warm climate here great?$" + diff --git a/data/maps/OneIsland_Harbor/map.json b/data/maps/OneIsland_Harbor/map.json new file mode 100644 index 000000000..553c9156a --- /dev/null +++ b/data/maps/OneIsland_Harbor/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_ONE_ISLAND_HARBOR", + "name": "OneIsland_Harbor", + "layout": "LAYOUT_ISLAND_HARBOR", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "108", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_Harbor_EventScript_1713BD", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/OneIsland_Harbor/scripts.inc b/data/maps/OneIsland_Harbor/scripts.inc new file mode 100644 index 000000000..44c18ff60 --- /dev/null +++ b/data/maps/OneIsland_Harbor/scripts.inc @@ -0,0 +1,42 @@ +OneIsland_Harbor_MapScripts:: @ 8171378 + map_script 4, OneIsland_Harbor_MapScript1_171383 + map_script 2, OneIsland_Harbor_MapScript2_171392 + .byte 0 + +OneIsland_Harbor_MapScript1_171383:: @ 8171383 + map_script_2 VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 1, EventScript_17138D + .2byte 0 + +EventScript_17138D:: @ 817138D + turnobject 255, 2 + end + +OneIsland_Harbor_MapScript2_171392:: @ 8171392 + map_script_2 VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 1, EventScript_17139C + .2byte 0 + +EventScript_17139C:: @ 817139C + lockall + textcolor 0 + applymovement 255, Movement_1713B9 + waitmovement 0 + setvar VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 2 + warp MAP_ONE_ISLAND, 255, 12, 18 + waitstate + releaseall + end + +Movement_1713B9:: @ 81713B9 + step_11 + step_11 + step_11 + step_end + +OneIsland_Harbor_EventScript_1713BD:: @ 81713BD + lock + faceplayer + message Text_181726 + waitmessage + setvar VAR_0x8004, 1 + goto EventScript_1A8EC5 + end diff --git a/data/maps/OneIsland_House1/map.json b/data/maps/OneIsland_House1/map.json new file mode 100644 index 000000000..17900e786 --- /dev/null +++ b/data/maps/OneIsland_House1/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_ONE_ISLAND_HOUSE1", + "name": "OneIsland_House1", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_House1_EventScript_17135C", + "flag": "0" + }, + { + "graphics_id": "35", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_House1_EventScript_171365", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/OneIsland_House1/scripts.inc b/data/maps/OneIsland_House1/scripts.inc new file mode 100644 index 000000000..957dcada9 --- /dev/null +++ b/data/maps/OneIsland_House1/scripts.inc @@ -0,0 +1,10 @@ +OneIsland_House1_MapScripts:: @ 817135B + .byte 0 + +OneIsland_House1_EventScript_17135C:: @ 817135C + msgbox gUnknown_81A2332, 2 + end + +OneIsland_House1_EventScript_171365:: @ 8171365 + msgbox gUnknown_81A2380, 2 + end diff --git a/data/maps/OneIsland_House1/text.inc b/data/maps/OneIsland_House1/text.inc new file mode 100644 index 000000000..a050b31b0 --- /dev/null +++ b/data/maps/OneIsland_House1/text.inc @@ -0,0 +1,9 @@ +gUnknown_81A2332:: @ 81A2332 + .string "On sunny days, I step out and gaze\n" + .string "upon the volcano.\p" + .string "That's my daily routine.$" + +gUnknown_81A2380:: @ 81A2380 + .string "Let me think… When was the last\n" + .string "time MT. EMBER erupted?$" + diff --git a/data/maps/OneIsland_House2/map.json b/data/maps/OneIsland_House2/map.json new file mode 100644 index 000000000..2eb71606a --- /dev/null +++ b/data/maps/OneIsland_House2/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_ONE_ISLAND_HOUSE2", + "name": "OneIsland_House2", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "22", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_House2_EventScript_17136F", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/OneIsland_House2/scripts.inc b/data/maps/OneIsland_House2/scripts.inc new file mode 100644 index 000000000..9966217cd --- /dev/null +++ b/data/maps/OneIsland_House2/scripts.inc @@ -0,0 +1,6 @@ +OneIsland_House2_MapScripts:: @ 817136E + .byte 0 + +OneIsland_House2_EventScript_17136F:: @ 817136F + msgbox gUnknown_81A23B8, 2 + end diff --git a/data/maps/OneIsland_House2/text.inc b/data/maps/OneIsland_House2/text.inc new file mode 100644 index 000000000..c147325c1 --- /dev/null +++ b/data/maps/OneIsland_House2/text.inc @@ -0,0 +1,5 @@ +gUnknown_81A23B8:: @ 81A23B8 + .string "Young people all want to go off to\n" + .string "big cities.\p" + .string "But I want to stay here forever!$" + diff --git a/data/maps/OneIsland_KindleRoad/map.json b/data/maps/OneIsland_KindleRoad/map.json new file mode 100644 index 000000000..b14e36b13 --- /dev/null +++ b/data/maps/OneIsland_KindleRoad/map.json @@ -0,0 +1,440 @@ +{ + "id": "MAP_ONE_ISLAND_KINDLE_ROAD", + "name": "OneIsland_KindleRoad", + "layout": "LAYOUT_ONE_ISLAND_KINDLE_ROAD", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_KINDLE_ROAD", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ONE_ISLAND", + "offset": 120, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "44", + "x": 11, + "y": 32, + "elevation": 1, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "OneIsland_KindleRoad_EventScript_1ABBF1", + "flag": "0" + }, + { + "graphics_id": "46", + "x": 17, + "y": 132, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "OneIsland_KindleRoad_EventScript_1ABC2F", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 7, + "y": 39, + "elevation": 1, + "movement_type": "52", + "movement_range_x": 6, + "movement_range_y": 3, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_KindleRoad_EventScript_1ABC6D", + "flag": "0" + }, + { + "graphics_id": "45", + "x": 19, + "y": 79, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_KindleRoad_EventScript_1ABCAB", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 15, + "y": 25, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1ABCE9", + "flag": "0" + }, + { + "graphics_id": "24", + "x": 9, + "y": 53, + "elevation": 3, + "movement_type": "26", + "movement_range_x": 1, + "movement_range_y": 7, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_KindleRoad_EventScript_1ABD27", + "flag": "0" + }, + { + "graphics_id": "24", + "x": 18, + "y": 105, + "elevation": 4, + "movement_type": "50", + "movement_range_x": 1, + "movement_range_y": 4, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_KindleRoad_EventScript_1ABD65", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 16, + "y": 64, + "elevation": 3, + "movement_type": "27", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_KindleRoad_EventScript_1ABDA3", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 11, + "y": 64, + "elevation": 3, + "movement_type": "28", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_KindleRoad_EventScript_1ABDE1", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 11, + "y": 89, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "OneIsland_KindleRoad_EventScript_1ABE1F", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 9, + "y": 108, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_KindleRoad_EventScript_1ABE5D", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 8, + "y": 68, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_KindleRoad_EventScript_1ABEE1", + "flag": "0" + }, + { + "graphics_id": "24", + "x": 9, + "y": 68, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_KindleRoad_EventScript_1ABE9B", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 8, + "y": 104, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 11, + "y": 95, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "96", + "x": 12, + "y": 96, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "22" + }, + { + "graphics_id": "96", + "x": 10, + "y": 95, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "23" + }, + { + "graphics_id": "96", + "x": 9, + "y": 105, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "24" + }, + { + "graphics_id": "96", + "x": 15, + "y": 75, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "25" + }, + { + "graphics_id": "96", + "x": 9, + "y": 84, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "26" + }, + { + "graphics_id": "96", + "x": 15, + "y": 74, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "27" + }, + { + "graphics_id": "96", + "x": 15, + "y": 73, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "28" + }, + { + "graphics_id": "96", + "x": 18, + "y": 111, + "elevation": 4, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "29" + }, + { + "graphics_id": "96", + "x": 10, + "y": 86, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "30" + }, + { + "graphics_id": "96", + "x": 9, + "y": 110, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "31" + }, + { + "graphics_id": "96", + "x": 18, + "y": 112, + "elevation": 4, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BE00C", + "flag": "17" + }, + { + "graphics_id": "92", + "x": 15, + "y": 70, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BEC42", + "flag": "475" + }, + { + "graphics_id": "92", + "x": 17, + "y": 103, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BEC4F", + "flag": "476" + }, + { + "graphics_id": "92", + "x": 18, + "y": 114, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EventScript_1BEC5C", + "flag": "477" + } + ], + "warp_events": [ + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 6, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": 1 + }, + { + "x": 15, + "y": 58, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 13, + "y": 59, + "elevation": 0, + "script": "OneIsland_KindleRoad_EventScript_168762" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 115, + "elevation": 0, + "script": "OneIsland_KindleRoad_EventScript_168759" + } + ] +} diff --git a/data/maps/OneIsland_KindleRoad/scripts.inc b/data/maps/OneIsland_KindleRoad/scripts.inc new file mode 100644 index 000000000..78c2efb13 --- /dev/null +++ b/data/maps/OneIsland_KindleRoad/scripts.inc @@ -0,0 +1,10 @@ +OneIsland_KindleRoad_MapScripts:: @ 8168758 + .byte 0 + +OneIsland_KindleRoad_EventScript_168759:: @ 8168759 + msgbox gUnknown_8189D02, 3 + end + +OneIsland_KindleRoad_EventScript_168762:: @ 8168762 + msgbox gUnknown_8189D32, 3 + end diff --git a/data/maps/OneIsland_KindleRoad/text.inc b/data/maps/OneIsland_KindleRoad/text.inc new file mode 100644 index 000000000..93537a5f3 --- /dev/null +++ b/data/maps/OneIsland_KindleRoad/text.inc @@ -0,0 +1,164 @@ +Text_18961F:: @ 818961F + .string "The weather's gorgeous!\n" + .string "Perfect for a battle!$" + +Text_18964D:: @ 818964D + .string "Aiyeeeeh!$" + +Text_189657:: @ 8189657 + .string "Please don't splash my face!\n" + .string "You'll ruin the makeup.$" + +Text_18968C:: @ 818968C + .string "I'm beginning to get a sunburn…$" + +Text_1896AC:: @ 81896AC + .string "Oh, you're so awful.$" + +Text_1896C1:: @ 81896C1 + .string "I like that cap you have.\n" + .string "Maybe I should wear one, too…$" + +Text_1896F9:: @ 81896F9 + .string "Seen from here, MT. EMBER towers\n" + .string "into the sky.$" + +Text_189728:: @ 8189728 + .string "Well, aren't you tough?$" + +Text_189740:: @ 8189740 + .string "The sky is immense around these\n" + .string "parts.$" + +Text_189767:: @ 8189767 + .string "I took a break from swimming,\n" + .string "only to have you challenge me?$" + +Text_1897A4:: @ 81897A4 + .string "Hey, what the…\n" + .string "You're good, you!$" + +Text_1897C5:: @ 81897C5 + .string "Instead of using SURF all the time,\n" + .string "you should swim some.$" + +Text_1897FF:: @ 81897FF + .string "Wait! Wait a second!\n" + .string "I think I've hooked a big one!$" + +Text_189833:: @ 8189833 + .string "I've lost it all again…$" + +Text_18984B:: @ 818984B + .string "Not only did I lose, the big one\n" + .string "got away from me, too!$" + +Text_189883:: @ 8189883 + .string "Could you help me out with my\n" + .string "training?$" + +Text_1898AB:: @ 81898AB + .string "You were a cut above me.$" + +Text_1898C4:: @ 81898C4 + .string "It's clear that you're skilled.\n" + .string "I like you!$" + +Text_1898F0:: @ 81898F0 + .string "There isn't a day in which we don't\n" + .string "train!$" + +Text_18991B:: @ 818991B + .string "I'm such a fool!$" + +Text_18992C:: @ 818992C + .string "I'll train even harder from now on!$" + +Text_189950:: @ 8189950 + .string "Every morning, before breakfast,\n" + .string "I swim around this island.$" + +Text_18998C:: @ 818998C + .string "Gasp…\n" + .string "Gasp…$" + +Text_189998:: @ 8189998 + .string "I lost because I'm pooped from all\n" + .string "the running I did…$" + +Text_1899CE:: @ 81899CE + .string "Dress appropriately for battle!\n" + .string "Lose that frivolous outfit!$" + +Text_189A0A:: @ 8189A0A + .string "Why me?!$" + +Text_189A13:: @ 8189A13 + .string "Even martial artists are becoming\n" + .string "fashion conscious these days…$" + +Text_189A53:: @ 8189A53 + .string "You know, everything tastes great\n" + .string "when you're out in the wild.$" + +Text_189A92:: @ 8189A92 + .string "Awww, blown!$" + +Text_189A9F:: @ 8189A9F + .string "The water in volcanic regions is\n" + .string "delicious.$" + +Text_189ACB:: @ 8189ACB + .string "My lunch filled us up, so will you\n" + .string "battle us for some exercise?$" + +Text_189B0B:: @ 8189B0B + .string "That made me all sweaty.$" + +Text_189B24:: @ 8189B24 + .string "What should I do?\n" + .string "I feel famished again.$" + +Text_189B4D:: @ 8189B4D + .string "KIA: My big brother and I make\n" + .string "an awesome combination!$" + +Text_189B84:: @ 8189B84 + .string "KIA: Huh?!\n" + .string "I can't believe it!$" + +Text_189BA3:: @ 8189BA3 + .string "KIA: How could there be anyone\n" + .string "better than my big brother?$" + +Text_189BDE:: @ 8189BDE + .string "KIA: If you want to battle with\n" + .string "us, you have to bring at least two\l" + .string "POKéMON with you.$" + +Text_189C33:: @ 8189C33 + .string "MIK: Together with KIA, I'm afraid\n" + .string "of nothing!$" + +Text_189C62:: @ 8189C62 + .string "MIK: Whoa!\n" + .string "That's too much!$" + +Text_189C7E:: @ 8189C7E + .string "MIK: How could my combination\n" + .string "with KIA fail?$" + +Text_189CAB:: @ 8189CAB + .string "MIK: Hey, do you want to battle\n" + .string "with us two?\p" + .string "Bring two or more POKéMON with\n" + .string "you, then.$" + +gUnknown_8189D02:: @ 8189D02 + .string "This is KINDLE ROAD.\p" + .string "Go straight for MT. EMBER.$" + +gUnknown_8189D32:: @ 8189D32 + .string "Light the Fire in Your Heart!\n" + .string "EMBER SPA$" + diff --git a/data/maps/OneIsland_KindleRoad_EmberSpa/map.json b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json new file mode 100644 index 000000000..1fc1d1cc4 --- /dev/null +++ b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json @@ -0,0 +1,116 @@ +{ + "id": "MAP_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", + "name": "OneIsland_KindleRoad_EmberSpa", + "layout": "LAYOUT_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_EMBER_SPA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 11, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_16535C", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 15, + "y": 11, + "elevation": 3, + "movement_type": "18", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_165365", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_165380", + "flag": "157" + }, + { + "graphics_id": "35", + "x": 20, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_165377", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_165399", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 11, + "y": 20, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_16536E", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 13, + "y": 36, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", + "dest_warp_id": 2 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 13, + "y": 13, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_1653CF" + } + ], + "bg_events": [] +} diff --git a/data/maps/OneIsland_KindleRoad_EmberSpa/scripts.inc b/data/maps/OneIsland_KindleRoad_EmberSpa/scripts.inc new file mode 100644 index 000000000..fbb4fb622 --- /dev/null +++ b/data/maps/OneIsland_KindleRoad_EmberSpa/scripts.inc @@ -0,0 +1,55 @@ +OneIsland_KindleRoad_EmberSpa_MapScripts:: @ 816535B + .byte 0 + +OneIsland_KindleRoad_EmberSpa_EventScript_16535C:: @ 816535C + msgbox gUnknown_817D34A, 2 + end + +OneIsland_KindleRoad_EmberSpa_EventScript_165365:: @ 8165365 + msgbox gUnknown_817D3DE, 2 + end + +OneIsland_KindleRoad_EmberSpa_EventScript_16536E:: @ 816536E + msgbox gUnknown_817D4AA, 2 + end + +OneIsland_KindleRoad_EmberSpa_EventScript_165377:: @ 8165377 + msgbox gUnknown_817D4E3, 2 + end + +OneIsland_KindleRoad_EmberSpa_EventScript_165380:: @ 8165380 + lock + faceplayer + setvar VAR_0x8004, 10 + setvar VAR_0x8005, 3 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_817D550 + release + end + +OneIsland_KindleRoad_EmberSpa_EventScript_165399:: @ 8165399 + lock + faceplayer + checkflag FLAG_0x2EF + goto_if_eq EventScript_1653C5 + msgbox gUnknown_817D622 + giveitem ITEM_HM06 + setflag FLAG_0x2EF + msgbox gUnknown_817D6F3 + release + end + +EventScript_1653C5:: @ 81653C5 + msgbox gUnknown_817D6F3 + release + end + +OneIsland_KindleRoad_EmberSpa_EventScript_1653CF:: @ 81653CF + lockall + fadescreen 3 + special sp000_heal_pokemon + fadescreen 2 + msgbox gUnknown_817D450 + setvar VAR_0x4001, 1 + releaseall + end diff --git a/data/maps/OneIsland_KindleRoad_EmberSpa/text.inc b/data/maps/OneIsland_KindleRoad_EmberSpa/text.inc new file mode 100644 index 000000000..ffc4fea83 --- /dev/null +++ b/data/maps/OneIsland_KindleRoad_EmberSpa/text.inc @@ -0,0 +1,54 @@ +gUnknown_817D34A:: @ 817D34A + .string "Hm!\n" + .string "Haaaaaaaaaaah!\p" + .string "Aaaah! This is heavenly!\n" + .string "The water warms me to my core!\p" + .string "You should jump in, too.\p" + .string "Go to the middle, relax, and get\n" + .string "good and warm!$" + +gUnknown_817D3DE:: @ 817D3DE + .string "My favorite part of bathing comes\n" + .string "up right after this.\p" + .string "I enjoy a bowl of chowder to\n" + .string "warm me from the inside, too!$" + +gUnknown_817D450:: @ 817D450 + .string "The water is perfectly warm.\n" + .string "It feels exquisite…\p" + .string "{PLAYER} and the POKéMON were\n" + .string "fully refreshed!$" + +gUnknown_817D4AA:: @ 817D4AA + .string "Soaking in a hot spring pool is\n" + .string "therapeutic, people say.$" + +gUnknown_817D4E3:: @ 817D4E3 + .string "Have a look at my face.\n" + .string "See how smooth my skin is?\p" + .string "The hot spring's water keeps my\n" + .string "skin younger than my age.$" + +gUnknown_817D550:: @ 817D550 + .string "After an honest day of training,\n" + .string "nothing beats a relaxing soak in\l" + .string "the hot spring pool.\p" + .string "BRUNO, who's a senior ahead of me,\n" + .string "visits the SPA on occasion.\p" + .string "He comes to rehab injuries, both\n" + .string "his own and his POKéMON's.$" + +gUnknown_817D622:: @ 817D622 + .string "Hot springs go hand-in-hand with\n" + .string "volcanoes.\p" + .string "The EMBER SPA here, well,\n" + .string "I made it years ago.\p" + .string "I hewed the pool right out of a\n" + .string "gigantic boulder by hand.\p" + .string "I was using this at the time.\n" + .string "I suppose I can part with it.$" + +gUnknown_817D6F3:: @ 817D6F3 + .string "That shatters boulders as if they\n" + .string "were made of crackers.$" + diff --git a/data/maps/OneIsland_PokemonCenter_1F/map.json b/data/maps/OneIsland_PokemonCenter_1F/map.json new file mode 100644 index 000000000..ae6597955 --- /dev/null +++ b/data/maps/OneIsland_PokemonCenter_1F/map.json @@ -0,0 +1,214 @@ +{ + "id": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", + "name": "OneIsland_PokemonCenter_1F", + "layout": "LAYOUT_ONE_ISLAND_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_NETWORK_CENTER", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_170E94", + "flag": "0" + }, + { + "graphics_id": "73", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_170E9D", + "flag": "114" + }, + { + "graphics_id": "89", + "x": 15, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_170EC5", + "flag": "115" + }, + { + "graphics_id": "16", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171148", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 3, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171151", + "flag": "0" + }, + { + "graphics_id": "24", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_17115A", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 9, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND", + "dest_warp_id": 0 + }, + { + "x": 1, + "y": 5, + "elevation": 4, + "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 12, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F", + "var_value": 2, + "script": "OneIsland_PokemonCenter_1F_EventScript_1711AA" + }, + { + "type": "trigger", + "x": 12, + "y": 7, + "elevation": 3, + "var": "VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F", + "var_value": 2, + "script": "OneIsland_PokemonCenter_1F_EventScript_1711B6" + }, + { + "type": "trigger", + "x": 12, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F", + "var_value": 2, + "script": "OneIsland_PokemonCenter_1F_EventScript_1711C2" + }, + { + "type": "trigger", + "x": 12, + "y": 9, + "elevation": 3, + "var": "VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F", + "var_value": 2, + "script": "OneIsland_PokemonCenter_1F_EventScript_1711CE" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 12, + "y": 2, + "elevation": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171179" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 3, + "elevation": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171179" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 4, + "elevation": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171179" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 5, + "elevation": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171179" + }, + { + "type": "bg_event_type_0", + "x": 13, + "y": 5, + "elevation": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171179" + }, + { + "type": "bg_event_type_0", + "x": 15, + "y": 5, + "elevation": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171179" + }, + { + "type": "bg_event_type_0", + "x": 14, + "y": 5, + "elevation": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171179" + }, + { + "type": "bg_event_type_0", + "x": 16, + "y": 5, + "elevation": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171179" + }, + { + "type": "bg_event_type_0", + "x": 17, + "y": 5, + "elevation": 0, + "script": "OneIsland_PokemonCenter_1F_EventScript_171179" + } + ] +} diff --git a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..7a1941f72 --- /dev/null +++ b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc @@ -0,0 +1,596 @@ +OneIsland_PokemonCenter_1F_MapScripts:: @ 8170BF8 + map_script 3, OneIsland_PokemonCenter_1F_MapScript1_170C4E + map_script 5, OneIsland_PokemonCenter_1F_MapScript2_1BC05C + map_script 1, OneIsland_PokemonCenter_1F_MapScript3_170C0D + map_script 2, OneIsland_PokemonCenter_1F_MapScript4_170CA7 + .byte 0 + +OneIsland_PokemonCenter_1F_MapScript3_170C0D:: @ 8170C0D + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5 + call_if 4, EventScript_170C22 + checkflag FLAG_0x844 + call_if 1, EventScript_170C36 + end + +EventScript_170C22:: @ 8170C22 + setmetatile 13, 4, 861, 1 + return + +EventScript_170C2C:: @ 8170C2C + setmetatile 16, 4, 863, 1 + return + +EventScript_170C36:: @ 8170C36 + call EventScript_170C2C + setmetatile 14, 4, 858, 1 + setmetatile 15, 4, 859, 1 + return + +OneIsland_PokemonCenter_1F_MapScript1_170C4E:: @ 8170C4E + setrespawn SPAWN_ONE_ISLAND + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 6 + call_if 1, EventScript_170C73 + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 0 + call_if 1, EventScript_170C79 + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 2 + call_if 1, EventScript_170C90 + end + +EventScript_170C73:: @ 8170C73 + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 7 + return + +EventScript_170C79:: @ 8170C79 + setobjectxyperm 2, 9, 8 + setobjectmovementtype 2, 7 + setobjectxyperm 3, 15, 6 + setobjectmovementtype 3, 7 + return + +EventScript_170C90:: @ 8170C90 + setobjectxyperm 2, 14, 7 + setobjectmovementtype 2, 9 + setobjectxyperm 3, 14, 8 + setobjectmovementtype 3, 9 + return + +OneIsland_PokemonCenter_1F_MapScript4_170CA7:: @ 8170CA7 + map_script_2 VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 0, EventScript_170CB1 + .2byte 0 + +EventScript_170CB1:: @ 8170CB1 + lockall + textcolor 0 + applymovement 255, Movement_170E7D + applymovement 2, Movement_170E86 + waitmovement 0 + msgbox gUnknown_81A0CDE + applymovement 255, Movement_1A75EB + waitmovement 0 + playse SE_PIN + applymovement 3, Movement_1A75DB + waitmovement 0 + applymovement 3, Movement_1A75E7 + waitmovement 0 + applymovement 3, Movement_1A75DD + waitmovement 0 + msgbox gUnknown_81A0CF7 + msgbox gUnknown_81A0D27 + applymovement 2, Movement_1A75ED + applymovement 255, Movement_1A75E9 + waitmovement 0 + msgbox gUnknown_81A0D72 + applymovement 2, Movement_1A75EB + waitmovement 0 + applymovement 255, Movement_1A75EB + waitmovement 0 + checkflag FLAG_0x82C + call_if 1, EventScript_170E34 + checkflag FLAG_0x82C + call_if 0, EventScript_170E3D + applymovement 3, Movement_1A75ED + waitmovement 0 + msgbox gUnknown_81A0E17 + msgbox gUnknown_81A0E90 + applymovement 3, Movement_1A75E7 + waitmovement 0 + msgbox gUnknown_81A0ECC + closemessage + applymovement 2, Movement_1A75E9 + waitmovement 0 + msgbox gUnknown_81A0F40 + applymovement 2, Movement_1A75ED + waitmovement 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + msgbox gUnknown_81A0FB1 + giveitemfanfaremsg gUnknown_81A10EE, ITEM_METEORITE, 1, BGM_FRLG_ME_KEYITEM + additem ITEM_METEORITE, 1 + applymovement 3, Movement_1A75ED + waitmovement 0 + msgbox gUnknown_81A1113 + additem ITEM_TRI_PASS, 1 + giveitemfanfaremsg gUnknown_81A231B, ITEM_TRI_PASS, 1, BGM_FRLG_ME_KEYITEM + msgbox gUnknown_81A1150 + compare_var_to_value VAR_0x4058, 2 + call_if 4, EventScript_170E46 + compare_var_to_value VAR_0x4058, 2 + call_if 0, EventScript_170E58 + setflag FLAG_0x845 + msgbox gUnknown_81A1230 + closemessage + applymovement 2, Movement_1A75E9 + waitmovement 0 + applymovement 3, Movement_1A75E9 + waitmovement 0 + setflag FLAG_0x841 + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1 + releaseall + end + +EventScript_170E34:: @ 8170E34 + msgbox gUnknown_81A0DE8 + return + +EventScript_170E3D:: @ 8170E3D + msgbox gUnknown_81A0DAC + return + +EventScript_170E46:: @ 8170E46 + textcolor 3 + playfanfare BGM_FRLG_ME_KEYITEM + message Text_1A11EC + waitmessage + waitfanfare + call EventScript_1A6675 + return + +EventScript_170E58:: @ 8170E58 + setflag FLAG_0x039 + setvar VAR_0x4058, 2 + additem ITEM_TOWN_MAP, 1 + giveitemfanfaremsg gUnknown_81A1218, ITEM_TOWN_MAP, 1, BGM_FRLG_ME_KEYITEM + return + +Movement_170E7D:: @ 8170E7D + step_11 + step_11 + step_13 + step_13 + step_13 + step_13 + step_13 + step_2e + step_end + +Movement_170E86:: @ 8170E86 + step_11 + step_13 + step_13 + step_13 + step_13 + step_13 + step_11 + step_30 + step_end + +Movement_170E8F:: @ 8170E8F + step_11 + step_end + +Movement_170E91:: @ 8170E91 + step_12 + step_30 + step_end + +OneIsland_PokemonCenter_1F_EventScript_170E94:: @ 8170E94 + lock + faceplayer + call EventScript_1A6578 + release + end + +OneIsland_PokemonCenter_1F_EventScript_170E9D:: @ 8170E9D + lock + checkflag FLAG_0x2A1 + goto_if_eq EventScript_170EB1 + msgbox gUnknown_81A1266 + release + end + +EventScript_170EB1:: @ 8170EB1 + applymovement 2, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81A128C + release + end + +OneIsland_PokemonCenter_1F_EventScript_170EC5:: @ 8170EC5 + lock + faceplayer + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 7 + goto_if_eq EventScript_170F35 + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 6 + goto_if_eq EventScript_170F9B + checkflag FLAG_0x2DC + goto_if_eq EventScript_170FA5 + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5 + goto_if_eq EventScript_17103A + checkflag FLAG_0x2DD + goto_if_eq EventScript_171044 + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4 + goto_if_eq EventScript_1710F2 + specialvar VAR_RESULT, sub_806E25C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_1710FC + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 3 + goto_if_eq EventScript_171134 + msgbox gUnknown_81A1321 + closemessage + applymovement 3, Movement_1A75E5 + waitmovement 0 + release + end + +EventScript_170F35:: @ 8170F35 + msgbox gUnknown_81A1EBD + random 3 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_170F6D + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_170F84 + setvar VAR_0x8004, 13 + setvar VAR_0x8005, 5 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_81A2076 + release + end + +EventScript_170F6D:: @ 8170F6D + setvar VAR_0x8004, 13 + setvar VAR_0x8005, 3 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_81A1EF3 + release + end + +EventScript_170F84:: @ 8170F84 + setvar VAR_0x8004, 13 + setvar VAR_0x8005, 4 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_81A1F7C + release + end + +EventScript_170F9B:: @ 8170F9B + msgbox gUnknown_81A1E39 + release + end + +EventScript_170FA5:: @ 8170FA5 + textcolor 3 + playfanfare MUS_ME_WAZA + message Text_1A1C2D + waitmessage + waitfanfare + call EventScript_1A6675 + removeitem ITEM_SAPPHIRE, 1 + msgbox gUnknown_81A1C4E + closemessage + applymovement 3, Movement_171142 + waitmovement 0 + playse SE_N + call EventScript_170C2C + special DrawWholeMapView + msgbox gUnknown_81A1D45 + closemessage + delay 60 + applymovement 3, Movement_17113E + waitmovement 0 + delay 30 + applymovement 3, Movement_17113E + waitmovement 0 + delay 40 + playse SE_PC_ON + call EventScript_170C36 + special DrawWholeMapView + msgbox gUnknown_81A1D59 + applymovement 3, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81A1D7D + special sub_810B82C + setflag FLAG_0x844 + setflag FLAG_0x05C + setflag FLAG_0x08C + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 6 + special InitRoamer + release + end + +EventScript_17103A:: @ 817103A + msgbox gUnknown_81A1BB7 + release + end + +EventScript_171044:: @ 8171044 + msgbox gUnknown_81A197E + textcolor 3 + playfanfare MUS_ME_WAZA + message Text_1A198D + waitmessage + waitfanfare + call EventScript_1A6675 + closemessage + applymovement 3, Movement_171142 + waitmovement 0 + playse SE_N + call EventScript_170C22 + special DrawWholeMapView + delay 30 + applymovement 3, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81A19AA, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_171099 + goto EventScript_1710B2 + end + +EventScript_171099:: @ 8171099 + msgbox gUnknown_81A1A08, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_171099 + goto EventScript_1710B2 + end + +EventScript_1710B2:: @ 81710B2 + msgbox gUnknown_81A1A3F + removeitem ITEM_RUBY, 1 + removeitem ITEM_TRI_PASS, 1 + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5 + additem ITEM_RAINBOW_PASS, 1 + setflag FLAG_0x846 + textcolor 3 + playfanfare BGM_FRLG_ME_KEYITEM + message Text_1A1B56 + waitmessage + waitfanfare + playfanfare BGM_FRLG_ME_KEYITEM + message Text_1A1B8E + waitmessage + waitfanfare + call EventScript_1A6675 + goto EventScript_17103A + end + +EventScript_1710F2:: @ 81710F2 + msgbox gUnknown_81A1896 + release + end + +EventScript_1710FC:: @ 81710FC + msgbox gUnknown_81A169B + applymovement 3, Movement_1A75E9 + waitmovement 0 + msgbox gUnknown_81A1723 + applymovement 3, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81A17DF + setvar VAR_0x407F, 1 + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4 + release + end + +EventScript_171134:: @ 8171134 + msgbox gUnknown_81A15EC + release + end + +Movement_17113E:: @ 817113E + step_26 + step_1b + step_26 + step_end + +Movement_171142:: @ 8171142 + step_2e + step_26 + step_1c + step_26 + step_26 + step_end + +OneIsland_PokemonCenter_1F_EventScript_171148:: @ 8171148 + msgbox gUnknown_81A20D5, 2 + end + +OneIsland_PokemonCenter_1F_EventScript_171151:: @ 8171151 + msgbox gUnknown_81A212D, 2 + end + +OneIsland_PokemonCenter_1F_EventScript_17115A:: @ 817115A + lock + faceplayer + checkflag FLAG_0x844 + goto_if_eq EventScript_17116F + msgbox gUnknown_81A218D + release + end + +EventScript_17116F:: @ 817116F + msgbox gUnknown_81A21D0 + release + end + +OneIsland_PokemonCenter_1F_EventScript_171179:: @ 8171179 + lockall + checkflag FLAG_0x844 + goto_if_eq EventScript_1711A0 + checkflag FLAG_0x2A1 + goto_if_eq EventScript_171196 + msgbox gUnknown_81A223F + releaseall + end + +EventScript_171196:: @ 8171196 + msgbox gUnknown_81A2286 + releaseall + end + +EventScript_1711A0:: @ 81711A0 + msgbox gUnknown_81A22CB + releaseall + end + +OneIsland_PokemonCenter_1F_EventScript_1711AA:: @ 81711AA + lockall + setvar VAR_0x4001, 1 + goto EventScript_1711DA + end + +OneIsland_PokemonCenter_1F_EventScript_1711B6:: @ 81711B6 + lockall + setvar VAR_0x4001, 2 + goto EventScript_1711DA + end + +OneIsland_PokemonCenter_1F_EventScript_1711C2:: @ 81711C2 + lockall + setvar VAR_0x4001, 3 + goto EventScript_1711DA + end + +OneIsland_PokemonCenter_1F_EventScript_1711CE:: @ 81711CE + lockall + setvar VAR_0x4001, 4 + goto EventScript_1711DA + end + +EventScript_1711DA:: @ 81711DA + textcolor 0 + playse SE_PIN + applymovement 2, Movement_1A75DB + waitmovement 0 + msgbox gUnknown_81A13B8 + closemessage + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_1712E4 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_1712EF + compare_var_to_value VAR_0x4001, 3 + call_if 1, EventScript_1712FA + compare_var_to_value VAR_0x4001, 4 + call_if 1, EventScript_171305 + delay 10 + msgbox gUnknown_81A13CB + applymovement 255, Movement_1A75ED + waitmovement 0 + msgbox gUnknown_81A1431 + applymovement 2, Movement_1A75ED + waitmovement 0 + applymovement 3, Movement_1A75E9 + waitmovement 0 + msgbox gUnknown_81A1470 + msgbox gUnknown_81A14E1 + closemessage + applymovement 2, Movement_1A75E7 + waitmovement 0 + delay 10 + applymovement 255, Movement_1A75EB + waitmovement 0 + delay 15 + msgbox gUnknown_81A14FB + closemessage + applymovement 2, Movement_1A75ED + waitmovement 0 + delay 15 + applymovement 3, Movement_1A75E7 + waitmovement 0 + applymovement 255, Movement_1A75ED + waitmovement 0 + msgbox gUnknown_81A1574 + closemessage + delay 25 + applymovement 255, Movement_171326 + applymovement 2, Movement_17132D + waitmovement 0 + playse SE_KAIDAN + setflag FLAG_0x072 + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 3 + clearflag FLAG_0x062 + setvar VAR_0x4071, 3 + setvar VAR_0x8004, 1 + setvar VAR_0x8006, 8 + goto EventScript_1A90DA + end + +EventScript_1712E4:: @ 81712E4 + applymovement 255, Movement_171310 + waitmovement 0 + return + +EventScript_1712EF:: @ 81712EF + applymovement 255, Movement_171314 + waitmovement 0 + return + +EventScript_1712FA:: @ 81712FA + applymovement 255, Movement_171316 + waitmovement 0 + return + +EventScript_171305:: @ 8171305 + applymovement 255, Movement_17131A + waitmovement 0 + return + +Movement_171310:: @ 8171310 + step_13 + step_10 + step_30 + step_end + +Movement_171314:: @ 8171314 + step_13 + step_end + +Movement_171316:: @ 8171316 + step_13 + step_11 + step_30 + step_end + +Movement_17131A:: @ 817131A + step_13 + step_11 + step_11 + step_30 + step_end + +Movement_17131F:: @ 817131F + step_1c + step_1c + step_1a + step_2f + step_end + +Movement_171324:: @ 8171324 + step_29 + step_end + +Movement_171326:: @ 8171326 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_end + +Movement_17132D:: @ 817132D + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_end diff --git a/data/maps/OneIsland_PokemonCenter_1F/text.inc b/data/maps/OneIsland_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..3e9e5b521 --- /dev/null +++ b/data/maps/OneIsland_PokemonCenter_1F/text.inc @@ -0,0 +1,357 @@ +gUnknown_81A0CDE:: @ 81A0CDE + .string "BILL: Hey, there!\n" + .string "CELIO!$" + +gUnknown_81A0CF7:: @ 81A0CF7 + .string "CELIO: BILL!\n" + .string "I can't believe you came out here.$" + +gUnknown_81A0D27:: @ 81A0D27 + .string "BILL: Well, absolutely!\n" + .string "How's your research coming along?\p" + .string "…Oh, wait a sec.$" + +gUnknown_81A0D72:: @ 81A0D72 + .string "{PLAYER}, this is my buddy CELIO.\n" + .string "He's one dedicated PC MANIAC!$" + +gUnknown_81A0DAC:: @ 81A0DAC + .string "CELIO, this is {PLAYER}, a rising\n" + .string "contender as the POKéMON CHAMP!$" + +gUnknown_81A0DE8:: @ 81A0DE8 + .string "CELIO, this is {PLAYER}, the\n" + .string "reigning POKéMON CHAMP!$" + +gUnknown_81A0E17:: @ 81A0E17 + .string "CELIO: That's really impressive.\p" + .string "I hate to say it, but I have zero\n" + .string "aptitude for battling.\p" + .string "Anyways, I'm glad to meet you.$" + +gUnknown_81A0E90:: @ 81A0E90 + .string "BILL: So, bring me up to speed.\n" + .string "How's your machine running?$" + +gUnknown_81A0ECC:: @ 81A0ECC + .string "CELIO: It's running fine, but we're\n" + .string "too remote out here.\p" + .string "The PCs on this island just can't\n" + .string "link with your PC, BILL.$" + +gUnknown_81A0F40:: @ 81A0F40 + .string "BILL: Oh, yeah?\n" + .string "Okay, let me take a look-see.\p" + .string "…Hang on here…\n" + .string "I think we can make it work.\l" + .string "Let me help you, okay?$" + +gUnknown_81A0FB1:: @ 81A0FB1 + .string "{PLAYER}, can I get you to wait for\n" + .string "me just a bit?\p" + .string "…Actually, can I get you to do\n" + .string "me a favor?\p" + .string "The island next to this one's\n" + .string "called TWO ISLAND.\p" + .string "There's a guy there that runs\n" + .string "a GAME CORNER.\p" + .string "He has this thing for rare rocks\n" + .string "and gems.\p" + .string "We keep in touch, being fellow\n" + .string "maniacs.\p" + .string "So, can I get you to deliver this\n" + .string "METEORITE to him?$" + +gUnknown_81A10EE:: @ 81A10EE + .string "{PLAYER} accepted the METEORITE\n" + .string "from BILL.$" + +gUnknown_81A1113:: @ 81A1113 + .string "CELIO: {PLAYER}, if you are going\n" + .string "to TWO ISLAND, please take this.$" + +gUnknown_81A1150:: @ 81A1150 + .string "It's a PASS for the ferry service\n" + .string "serving the local islands.\p" + .string "It will let you travel between the\n" + .string "ISLANDS ONE, TWO, and THREE.\p" + .string "Oh, you should have this, too.$" + +Text_1A11EC:: @ 81A11EC + .string "{PLAYER} received an extra page\n" + .string "for the TOWN MAP!$" + +gUnknown_81A1218:: @ 81A1218 + .string "{PLAYER} received\n" + .string "a TOWN MAP!$" + +gUnknown_81A1230:: @ 81A1230 + .string "BILL: I'll catch you later!\n" + .string "Say hi to the guy for me!$" + +gUnknown_81A1266:: @ 81A1266 + .string "Hmm…\p" + .string "How about we try this like this…$" + +gUnknown_81A128C:: @ 81A128C + .string "Oh, hey, {PLAYER}!\p" + .string "Did you see?\n" + .string "We got the PC working!\p" + .string "I've got a few things to show\n" + .string "CELIO here.\p" + .string "Can you go out on a stroll or\n" + .string "something for a while more?$" + +gUnknown_81A1321:: @ 81A1321 + .string "I'm sorry for taking up so much of\n" + .string "BILL's time.\p" + .string "I'm also sorry for being such a \n" + .string "poor host on your visit here.$" + +Text_1A1390:: @ 81A1390 + .string "The usual PC services aren't\n" + .string "available…$" + +gUnknown_81A13B8:: @ 81A13B8 + .string "BILL: Oh, hey!\n" + .string "{PLAYER}!$" + +gUnknown_81A13CB:: @ 81A13CB + .string "BILL: What kept you so long?\n" + .string "Been out having a good time?\p" + .string "We got it done.\n" + .string "The PCs are up and running!$" + +gUnknown_81A1431:: @ 81A1431 + .string "CELIO: The job went incredibly\n" + .string "quick.\p" + .string "BILL is one amazing guy…$" + +gUnknown_81A1470:: @ 81A1470 + .string "BILL: No, no! There was almost\n" + .string "nothing left for me to do.\p" + .string "CELIO, I have to hand it to you.\n" + .string "You've learned a lot.$" + +gUnknown_81A14E1:: @ 81A14E1 + .string "CELIO: Oh, really?\n" + .string "Ehehe…$" + +gUnknown_81A14FB:: @ 81A14FB + .string "BILL: Well, there you have it.\n" + .string "I'm finished with the job.\l" + .string "We should head back to KANTO.\p" + .string "CELIO, I'll be seeing you again.$" + +gUnknown_81A1574:: @ 81A1574 + .string "CELIO: {PLAYER}, I'm really sorry\n" + .string "that we sent you off alone today.\p" + .string "I promise, I will show you around\n" + .string "these islands sometime.$" + +gUnknown_81A15EC:: @ 81A15EC + .string "CELIO: Hello!\n" + .string "You look awfully busy as always.\p" + .string "How am I doing?\p" + .string "Well, I'm modifying my Network\n" + .string "Machine.\p" + .string "When I get done with the machine,\n" + .string "I hope you'll be first to use it,\l" + .string "{PLAYER}.$" + +gUnknown_81A169B:: @ 81A169B + .string "CELIO: {PLAYER}, how have things\n" + .string "been for you?\p" + .string "Oh, is that right?\n" + .string "You've caught more POKéMON.\p" + .string "Do you know what?\n" + .string "Maybe I can be useful to you.$" + +gUnknown_81A1723:: @ 81A1723 + .string "I'm modifying the Network Machine\n" + .string "right now.\p" + .string "I'm changing it so it can handle\n" + .string "trades over long distances.\p" + .string "When I get finished, you'll be\n" + .string "trading for exotic POKéMON from\l" + .string "TRAINERS far away.$" + +gUnknown_81A17DF:: @ 81A17DF + .string "But, there is a slight catch.\p" + .string "For the link to work, the Machine\n" + .string "needs a special gemstone.\p" + .string "It's supposed to be on ONE ISLAND,\n" + .string "but I haven't found one yet.\p" + .string "Who knows where it could be.$" + +gUnknown_81A1896:: @ 81A1896 + .string "I was trying to find the gem\n" + .string "even while I was studying.\p" + .string "As a result, I've made no headway\n" + .string "in both my search and studies…\p" + .string "If I relied on BILL, I'm sure my\n" + .string "research would progress.\p" + .string "But this time, I want to try to do\n" + .string "things by myself.$" + +gUnknown_81A197E:: @ 81A197E + .string "Oh!\n" + .string "Th-that's…$" + +Text_1A198D:: @ 81A198D + .string "{PLAYER} handed the RUBY\n" + .string "to CELIO.$" + +gUnknown_81A19AA:: @ 81A19AA + .string "Thank you!\n" + .string "{PLAYER}, you're simply amazing.\p" + .string "… … … … … …\p" + .string "Um… May I ask one more giant favor\n" + .string "of you?$" + +gUnknown_81A1A08:: @ 81A1A08 + .string "It… It's not anything weird.\n" + .string "Please, I need your help.$" + +gUnknown_81A1A3F:: @ 81A1A3F + .string "While I was studying gemstones,\n" + .string "I discovered something important.\p" + .string "There is another gem that forms\n" + .string "a pair with this RUBY.\p" + .string "That other gemstone is supposed to\n" + .string "be in the SEVII ISLANDS.\p" + .string "{PLAYER}, please, I need you to go\n" + .string "find the other gem.\p" + .string "{PLAYER}, may I have your ferry\n" + .string "PASS and the TOWN MAP?$" + +Text_1A1B56:: @ 81A1B56 + .string "{PLAYER} returned the TRI-PASS and\n" + .string "received the RAINBOW PASS.$" + +Text_1A1B8E:: @ 81A1B8E + .string "Obtained an extra page for the\n" + .string "TOWN MAP!$" + +gUnknown_81A1BB7:: @ 81A1BB7 + .string "This is my own ferry PASS.\p" + .string "It will let you get to all the\n" + .string "SEVII ISLANDS.\p" + .string "{PLAYER}, please, I can't do\n" + .string "it without your help.$" + +Text_1A1C2D:: @ 81A1C2D + .string "{PLAYER} handed the SAPPHIRE\n" + .string "to CELIO.$" + +gUnknown_81A1C4E:: @ 81A1C4E + .string "CELIO: So this is the gem that\n" + .string "forms a pair with the RUBY…\p" + .string "{PLAYER}, you've gone through a lot\n" + .string "to get this, didn't you?\p" + .string "You don't have to tell me. I know\n" + .string "it wasn't easy.\p" + .string "Thank you so much!\p" + .string "Now it's my turn to work for you!\n" + .string "Please give me a little time.$" + +gUnknown_81A1D45:: @ 81A1D45 + .string "Okay, this is good…$" + +gUnknown_81A1D59:: @ 81A1D59 + .string "I did it!\n" + .string "I linked up with LANETTE!$" + +gUnknown_81A1D7D:: @ 81A1D7D + .string "{PLAYER}…\n" + .string "{PLAYER}, I did it!\p" + .string "I've managed to link up with\n" + .string "TRAINERS in the HOENN region!\p" + .string "Finally, the Network Machine is\n" + .string "fully operational!\p" + .string "{PLAYER}, I owe it all to you!\p" + .string "Thanks to you, my dream came\n" + .string "true…$" + +gUnknown_81A1E39:: @ 81A1E39 + .string "I…\n" + .string "I'm not crying.\p" + .string "That's enough about me!\p" + .string "{PLAYER}, you're going to keep\n" + .string "looking for exotic POKéMON, right?\p" + .string "I wish you the best of luck!$" + +gUnknown_81A1EBD:: @ 81A1EBD + .string "CELIO: Hello!\p" + .string "{PLAYER}, I've been hearing rumors\n" + .string "about you.$" + +gUnknown_81A1EF3:: @ 81A1EF3 + .string "{PLAYER}, what's your favorite kind\n" + .string "of POKéMON?\p" + .string "BILL is a POKéMANIAC, so he loves\n" + .string "every kind.\p" + .string "Apparently, the first one he caught\n" + .string "was an ABRA.$" + +gUnknown_81A1F7C:: @ 81A1F7C + .string "By the way, {PLAYER}, you're from\n" + .string "PALLET TOWN, aren't you?\p" + .string "I've heard that it's a quiet and\n" + .string "pleasant place.\p" + .string "BILL's hometown is GOLDENROD CITY,\n" + .string "where his folks still live.\p" + .string "I've heard that it's quite the\n" + .string "festive, bustling city.\p" + .string "I'd like to go there one day.$" + +gUnknown_81A2076:: @ 81A2076 + .string "{PLAYER}, is there anything that\n" + .string "you can't stand?\p" + .string "Apparently, BILL simply can't\n" + .string "stomach milk at all.$" + +gUnknown_81A20D5:: @ 81A20D5 + .string "Oh, you're a stranger here!\n" + .string "Hi! Where did you come from?\p" + .string "…PALLET TOWN?\n" + .string "I don't know it!$" + +gUnknown_81A212D:: @ 81A212D + .string "On this island, there's an enormous\n" + .string "volcano.\p" + .string "It hasn't erupted lately, so why\n" + .string "not enjoy a hike?$" + +gUnknown_81A218D:: @ 81A218D + .string "I wish I could trade POKéMON with\n" + .string "my boyfriend who lives far away…$" + +gUnknown_81A21D0:: @ 81A21D0 + .string "I traded POKéMON with my boyfriend\n" + .string "far away!\p" + .string "Everyone's saying that we can\n" + .string "thank you and CELIO.\p" + .string "So, thank you!$" + +gUnknown_81A223F:: @ 81A223F + .string "Network Machine\n" + .string "Link Level 0\p" + .string "…POKéMON Storage System under\n" + .string "adjustment…$" + +gUnknown_81A2286:: @ 81A2286 + .string "Network Machine\n" + .string "Link Level 1\p" + .string "Link established with the KANTO\n" + .string "region.$" + +gUnknown_81A22CB:: @ 81A22CB + .string "Network Machine\n" + .string "Link Level 2\p" + .string "Link established with the KANTO\n" + .string "and HOENN regions.$" + +gUnknown_81A231B:: @ 81A231B + .string "Obtained the TRI-PASS!$" + diff --git a/data/maps/OneIsland_PokemonCenter_2F/map.json b/data/maps/OneIsland_PokemonCenter_2F/map.json new file mode 100644 index 000000000..f233af596 --- /dev/null +++ b/data/maps/OneIsland_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_ONE_ISLAND_POKEMON_CENTER_2F", + "name": "OneIsland_PokemonCenter_2F", + "layout": "LAYOUT_ONE_ISLAND_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_NETWORK_CENTER", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/OneIsland_PokemonCenter_2F/scripts.inc b/data/maps/OneIsland_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..0948f1cee --- /dev/null +++ b/data/maps/OneIsland_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +OneIsland_PokemonCenter_2F_MapScripts:: @ 8171334 + map_script 2, OneIsland_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, OneIsland_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, OneIsland_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, OneIsland_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +OneIsland_PokemonCenter_2F_EventScript_171349:: @ 8171349 + call EventScript_1BB4A3 + end + +EventScript_17134F:: @ 817134F + call EventScript_1BB6AB + end + +EventScript_171355:: @ 8171355 + call EventScript_1BB7DE + end diff --git a/data/maps/OneIsland_TreasureBeach/map.json b/data/maps/OneIsland_TreasureBeach/map.json new file mode 100644 index 000000000..74517e890 --- /dev/null +++ b/data/maps/OneIsland_TreasureBeach/map.json @@ -0,0 +1,125 @@ +{ + "id": "MAP_ONE_ISLAND_TREASURE_BEACH", + "name": "OneIsland_TreasureBeach", + "layout": "LAYOUT_ONE_ISLAND_TREASURE_BEACH", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_TREASURE_BEACH", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ONE_ISLAND", + "offset": 0, + "direction": "up" + } + ], + "object_events": [ + { + "graphics_id": "44", + "x": 8, + "y": 11, + "elevation": 1, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "OneIsland_TreasureBeach_EventScript_1ABF27", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 13, + "y": 20, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "OneIsland_TreasureBeach_EventScript_16876C", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 8, + "y": 20, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "103", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 13, + "y": 27, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "104", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 11, + "y": 31, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "105", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 9, + "y": 34, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "106", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 15, + "y": 22, + "elevation": 3, + "item": "POCKET_KEY_ITEMS", + "flag": "107", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 16, + "y": 33, + "elevation": 3, + "item": "POCKET_KEY_ITEMS", + "flag": "108", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 15, + "y": 29, + "elevation": 3, + "item": "ITEM_STAR_PIECE", + "flag": "109", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 8, + "y": 27, + "elevation": 3, + "item": "ITEM_BIG_PEARL", + "flag": "110", + "unknown": 1 + } + ] +} diff --git a/data/maps/OneIsland_TreasureBeach/scripts.inc b/data/maps/OneIsland_TreasureBeach/scripts.inc new file mode 100644 index 000000000..192cf4898 --- /dev/null +++ b/data/maps/OneIsland_TreasureBeach/scripts.inc @@ -0,0 +1,6 @@ +OneIsland_TreasureBeach_MapScripts:: @ 816876B + .byte 0 + +OneIsland_TreasureBeach_EventScript_16876C:: @ 816876C + msgbox gUnknown_8189DCE, 2 + end diff --git a/data/maps/OneIsland_TreasureBeach/text.inc b/data/maps/OneIsland_TreasureBeach/text.inc new file mode 100644 index 000000000..344ed5203 --- /dev/null +++ b/data/maps/OneIsland_TreasureBeach/text.inc @@ -0,0 +1,18 @@ +Text_189D5A:: @ 8189D5A + .string "Lying back, rocked by the waves…\n" + .string "It's exquisite.$" + +Text_189D8B:: @ 8189D8B + .string "I lost…\n" + .string "It feels awful.$" + +Text_189DA3:: @ 8189DA3 + .string "The sea is pleasantly warm in these\n" + .string "parts.$" + +gUnknown_8189DCE:: @ 8189DCE + .string "Good things get washed up by the\n" + .string "ocean current onto this beach.\p" + .string "That's why I often come here for\n" + .string "some beachcombing.$" + diff --git a/data/maps/PalletTown/map.json b/data/maps/PalletTown/map.json new file mode 100644 index 000000000..224a99322 --- /dev/null +++ b/data/maps/PalletTown/map.json @@ -0,0 +1,156 @@ +{ + "id": "MAP_PALLET_TOWN", + "name": "PalletTown", + "layout": "LAYOUT_PALLET_TOWN", + "music": "BGM_FRLG_PALLET_TOWN", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE1", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE21_NORTH", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "23", + "x": 3, + "y": 10, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 4, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_EventScript_16575C", + "flag": "0" + }, + { + "graphics_id": "27", + "x": 13, + "y": 17, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 6, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_EventScript_16582F", + "flag": "0" + }, + { + "graphics_id": "71", + "x": 10, + "y": 8, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "44" + } + ], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", + "dest_warp_id": 1 + }, + { + "x": 15, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PALLET_TOWN_GARYS_HOUSE", + "dest_warp_id": 0 + }, + { + "x": 16, + "y": 13, + "elevation": 0, + "dest_map": "MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 12, + "y": 1, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN", + "var_value": 0, + "script": "PalletTown_EventScript_1655ED" + }, + { + "type": "trigger", + "x": 13, + "y": 1, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN", + "var_value": 0, + "script": "PalletTown_EventScript_1655F9" + }, + { + "type": "trigger", + "x": 13, + "y": 2, + "elevation": 3, + "var": "VAR_0x4002", + "var_value": 1, + "script": "PalletTown_EventScript_16587B" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 16, + "y": 16, + "elevation": 0, + "script": "PalletTown_EventScript_165838" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 7, + "elevation": 0, + "script": "PalletTown_EventScript_165850" + }, + { + "type": "bg_event_type_0", + "x": 13, + "y": 7, + "elevation": 0, + "script": "PalletTown_EventScript_165859" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 11, + "elevation": 0, + "script": "PalletTown_EventScript_165862" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 14, + "elevation": 0, + "script": "PalletTown_EventScript_16586B" + } + ] +} diff --git a/data/maps/PalletTown/scripts.inc b/data/maps/PalletTown/scripts.inc new file mode 100644 index 000000000..c1790fb90 --- /dev/null +++ b/data/maps/PalletTown/scripts.inc @@ -0,0 +1,509 @@ +PalletTown_MapScripts:: @ 816545A + map_script 3, PalletTown_MapScript1_165465 + map_script 2, PalletTown_MapScript2_1654CE + .byte 0 + +PalletTown_MapScript1_165465:: @ 8165465 + setworldmapflag FLAG_WORLD_MAP_PALLET_TOWN + checkflag FLAG_0x291 + call_if 1, EventScript_165488 + compare_var_to_value VAR_0x4070, 0 + call_if 1, EventScript_1654A8 + compare_var_to_value VAR_0x4070, 1 + call_if 1, EventScript_1654A2 + end + +EventScript_165488:: @ 8165488 + checkflag FLAG_0x83E + goto_if 0, EventScript_1A77A9 + compare_var_to_value VAR_0x4070, 1 + goto_if 4, EventScript_1A77A9 + setvar VAR_0x4070, 1 + return + +EventScript_1654A2:: @ 81654A2 + setvar VAR_0x4070, 2 + return + +EventScript_1654A8:: @ 81654A8 + checkflag FLAG_0x291 + goto_if_eq EventScript_1654BD + setobjectxyperm 1, 5, 15 + setobjectmovementtype 1, 7 + return + +EventScript_1654BD:: @ 81654BD + setobjectxyperm 1, 12, 2 + setobjectmovementtype 1, 8 + setvar VAR_0x4002, 1 + return + +PalletTown_MapScript2_1654CE:: @ 81654CE + map_script_2 VAR_MAP_SCENE_PALLET_TOWN, 2, EventScript_1654D8 + .2byte 0 + +EventScript_1654D8:: @ 81654D8 + lockall + textcolor 0 + setobjectxyperm 3, 14, 14 + setobjectmovementtype 3, 9 + addobject 3 + applymovement 3, Movement_1655AF + waitmovement 0 + checkflag FLAG_SYS_RIBBON_GET + goto_if 0, EventScript_1655A1 + msgbox gUnknown_817D8BF + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, Special_GetPokedexCount + copyvar VAR_0x8008, VAR_0x8005 + copyvar VAR_0x8009, VAR_0x8006 + getnumberstring 0, VAR_0x8008 + getnumberstring 1, VAR_0x8009 + compare_var_to_value VAR_0x8009, 60 + goto_if 0, EventScript_165593 + msgbox gUnknown_817D9AA + closemessage + playbgm BGM_FRLG_FOLLOW_ME, 0 + applymovement 255, Movement_1655DD + applymovement 3, Movement_1655CC + waitmovement 0 + opendoor 16, 13 + waitdooranim + applymovement 3, Movement_16572E + applymovement 255, Movement_165758 + waitmovement 0 + closedoor 16, 13 + waitdooranim + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7 + setvar VAR_MAP_SCENE_PALLET_TOWN, 3 + setflag FLAG_0x02C + warp MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB, 255, 6, 12 + waitstate + releaseall + end + +EventScript_16557E:: @ 816557E + closemessage + applymovement 3, Movement_1655BE + waitmovement 0 + removeobject 3 + setvar VAR_MAP_SCENE_PALLET_TOWN, 3 + releaseall + end + +EventScript_165593:: @ 8165593 + msgbox gUnknown_817D925 + goto EventScript_16557E + end + +EventScript_1655A1:: @ 81655A1 + msgbox gUnknown_817DA16 + goto EventScript_16557E + end + +Movement_1655AF:: @ 81655AF + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_2e + step_end + +Movement_1655BE:: @ 81655BE + step_13 + step_13 + step_13 + step_13 + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_end + +Movement_1655CC:: @ 81655CC + step_13 + step_13 + step_13 + step_13 + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_2e + step_end + +Movement_1655DD:: @ 81655DD + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_end + +PalletTown_EventScript_1655ED:: @ 81655ED + lockall + setvar VAR_0x4001, 0 + goto EventScript_165605 + end + +PalletTown_EventScript_1655F9:: @ 81655F9 + lockall + setvar VAR_0x4001, 1 + goto EventScript_165605 + end + +EventScript_165605:: @ 8165605 + setvar VAR_0x8004, 0 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + textcolor 0 + delay 30 + playbgm BGM_FRLG_PROF_OAK, 0 + message Text_17D72C + waitmessage + delay 85 + closemessage + applymovement 255, Movement_1A75ED + waitmovement 0 + playse SE_PIN + applymovement 255, Movement_1A75DB + waitmovement 0 + delay 30 + addobject 3 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_1656B8 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_1656C3 + delay 30 + msgbox gUnknown_817D74A + closemessage + delay 30 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_1656CE + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_1656E0 + opendoor 16, 13 + waitdooranim + applymovement 3, Movement_16572E + applymovement 255, Movement_165758 + waitmovement 0 + closedoor 16, 13 + waitdooranim + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1 + clearflag FLAG_0x02B + setvar VAR_MAP_SCENE_PALLET_TOWN, 1 + setflag FLAG_0x02C + setflag FLAG_SPECIAL_FLAG_0x4001 + warp MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB, 255, 6, 12 + waitstate + releaseall + end + +EventScript_1656B8:: @ 81656B8 + applymovement 3, Movement_1656F2 + waitmovement 0 + return + +EventScript_1656C3:: @ 81656C3 + applymovement 3, Movement_1656FB + waitmovement 0 + return + +EventScript_1656CE:: @ 81656CE + applymovement 3, Movement_165705 + applymovement 255, Movement_165731 + waitmovement 0 + return + +EventScript_1656E0:: @ 81656E0 + applymovement 3, Movement_165719 + applymovement 255, Movement_165744 + waitmovement 0 + return + +Movement_1656F2:: @ 81656F2 + step_11 + step_11 + step_13 + step_11 + step_11 + step_13 + step_11 + step_11 + step_end + +Movement_1656FB:: @ 81656FB + step_13 + step_11 + step_11 + step_13 + step_11 + step_11 + step_13 + step_11 + step_11 + step_end + +Movement_165705:: @ 8165705 + step_10 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_2e + step_end + +Movement_165719:: @ 8165719 + step_10 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_2e + step_end + +Movement_16572E:: @ 816572E + step_11 + step_60 + step_end + +Movement_165731:: @ 8165731 + step_10 + step_10 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_165744:: @ 8165744 + step_10 + step_10 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_165758:: @ 8165758 + step_13 + step_11 + step_60 + step_end + +PalletTown_EventScript_16575C:: @ 816575C + lock + compare_var_to_value VAR_0x4070, 2 + goto_if_eq EventScript_1657ED + compare_var_to_value VAR_0x4070, 1 + goto_if_eq EventScript_165815 + compare_var_to_value VAR_0x4002, 1 + goto_if_eq EventScript_1658C2 + checkflag FLAG_0x002 + goto_if_eq EventScript_165801 + msgbox gUnknown_81B1C8B + applymovement 1, Movement_1A75E1 + waitmovement 0 + playse SE_PIN + applymovement 1, Movement_1A75DB + waitmovement 0 + applymovement 1, Movement_1A75DD + waitmovement 0 + msgbox gUnknown_81B1C9F + closemessage + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_1657D7 + compare_var_to_value VAR_FACING, 4 + call_if 5, EventScript_1657E2 + moveobjectoffscreen 1 + setflag FLAG_0x002 + release + end + +EventScript_1657D7:: @ 81657D7 + applymovement 1, Movement_165829 + waitmovement 0 + return + +EventScript_1657E2:: @ 81657E2 + applymovement 1, Movement_16582C + waitmovement 0 + return + +EventScript_1657ED:: @ 81657ED + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_817D7C8 + release + end + +EventScript_165801:: @ 8165801 + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81B1CAF + release + end + +EventScript_165815:: @ 8165815 + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81B1CEC + release + end + +Movement_165829:: @ 8165829 + step_13 + step_2f + step_end + +Movement_16582C:: @ 816582C + step_12 + step_30 + step_end + +PalletTown_EventScript_16582F:: @ 816582F + msgbox gUnknown_817D80D, 2 + end + +PalletTown_EventScript_165838:: @ 8165838 + lockall + setvar VAR_0x8004, 0 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_817D866 + releaseall + end + +PalletTown_EventScript_165850:: @ 8165850 + msgbox gUnknown_817D87F, 3 + end + +PalletTown_EventScript_165859:: @ 8165859 + msgbox gUnknown_817D88A, 3 + end + +PalletTown_EventScript_165862:: @ 8165862 + msgbox gUnknown_817D895, 3 + end + +PalletTown_EventScript_16586B:: @ 816586B + lockall + msgbox gUnknown_81B1CC1 + setvar VAR_0x4070, 1 + releaseall + end + +PalletTown_EventScript_16587B:: @ 816587B + lockall + applymovement 1, Movement_1A75EB + applymovement 255, Movement_1A75E7 + waitmovement 0 + call EventScript_165894 + releaseall + end + +EventScript_165894:: @ 8165894 + textcolor 1 + msgbox gUnknown_81B1D0B + closemessage + delay 20 + textcolor 3 + setflag FLAG_0x83E + setvar VAR_0x4070, 1 + setvar VAR_0x4002, 0 + special sub_80699E0 + special sub_80699BC + signmsg + msgbox gUnknown_81B1D51 + normalmsg + return + +EventScript_1658C2:: @ 81658C2 + applymovement 1, Movement_1A75E1 + waitmovement 0 + call EventScript_165894 + release + end diff --git a/data/maps/PalletTown/text.inc b/data/maps/PalletTown/text.inc new file mode 100644 index 000000000..ad476a541 --- /dev/null +++ b/data/maps/PalletTown/text.inc @@ -0,0 +1,67 @@ +Text_17D72C:: @ 817D72C + .string "OAK: Hey! Wait!\n" + .string "Don't go out!$" + +gUnknown_817D74A:: @ 817D74A + .string "OAK: It's unsafe!\n" + .string "Wild POKéMON live in tall grass!\p" + .string "You need your own POKéMON for\n" + .string "your protection.\p" + .string "I know!\n" + .string "Here, come with me!$" + +gUnknown_817D7C8:: @ 817D7C8 + .string "I'm raising POKéMON, too.\p" + .string "When they get strong, they can\n" + .string "protect me.$" + +gUnknown_817D80D:: @ 817D80D + .string "Technology is incredible!\p" + .string "You can now store and recall items\n" + .string "and POKéMON as data via PC.$" + +gUnknown_817D866:: @ 817D866 + .string "OAK POKéMON RESEARCH LAB$" + +gUnknown_817D87F:: @ 817D87F + .string "{PLAYER}'s house$" + +gUnknown_817D88A:: @ 817D88A + .string "{RIVAL}'s house$" + +gUnknown_817D895:: @ 817D895 + .string "PALLET TOWN\n" + .string "Shades of your journey await!$" + +gUnknown_817D8BF:: @ 817D8BF + .string "OAK: Ah, {PLAYER}!\n" + .string "You're back, are you?\p" + .string "How much have you filled in your\n" + .string "POKéDEX?\p" + .string "May I see it?\p" + .string "Let's see…$" + +gUnknown_817D925:: @ 817D925 + .string "You've caught {STR_VAR_2}…\p" + .string "Hm, it looks as if you're putting\n" + .string "in an honest effort.\p" + .string "When you manage to fill it some\n" + .string "more, come show me, please.$" + +gUnknown_817D9AA:: @ 817D9AA + .string "You've caught… {STR_VAR_2}!?\n" + .string "Now, this is impressive!\p" + .string "There's something I wanted to ask\n" + .string "of you, {PLAYER}.\p" + .string "Come.\n" + .string "Follow me.$" + +gUnknown_817DA16:: @ 817DA16 + .string "OAK: Ah, {PLAYER}!\n" + .string "You seem to be enjoying traveling.\p" + .string "Knowing you, {PLAYER}, I can easily\n" + .string "imagine you going out to even more\l" + .string "exotic locales.\p" + .string "Good for you, good for you.\n" + .string "Hohoho.$" + diff --git a/data/maps/PalletTown_GarysHouse/map.json b/data/maps/PalletTown_GarysHouse/map.json new file mode 100644 index 000000000..5db9cb1f6 --- /dev/null +++ b/data/maps/PalletTown_GarysHouse/map.json @@ -0,0 +1,90 @@ +{ + "id": "MAP_PALLET_TOWN_GARYS_HOUSE", + "name": "PalletTown_GarysHouse", + "layout": "LAYOUT_PALLET_TOWN_GARYS_HOUSE", + "music": "BGM_FRLG_PALLET_TOWN", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "76", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_GarysHouse_EventScript_168D56", + "flag": "0" + }, + { + "graphics_id": "93", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_GarysHouse_EventScript_168F63", + "flag": "57" + } + ], + "warp_events": [ + { + "x": 4, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": 1 + }, + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 12, + "y": 1, + "elevation": 0, + "script": "PalletTown_GarysHouse_EventScript_168F6C" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 1, + "elevation": 0, + "script": "PalletTown_GarysHouse_EventScript_168F6C" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 1, + "elevation": 0, + "script": "PalletTown_GarysHouse_EventScript_168F75" + } + ] +} diff --git a/data/maps/PalletTown_GarysHouse/scripts.inc b/data/maps/PalletTown_GarysHouse/scripts.inc new file mode 100644 index 000000000..dd3f05aa9 --- /dev/null +++ b/data/maps/PalletTown_GarysHouse/scripts.inc @@ -0,0 +1,183 @@ +PalletTown_GarysHouse_MapScripts:: @ 8168D27 + map_script 3, PalletTown_GarysHouse_MapScript1_168D2D + .byte 0 + +PalletTown_GarysHouse_MapScript1_168D2D:: @ 8168D2D + compare_var_to_value VAR_0x4058, 2 + call_if 0, EventScript_168D44 + compare_var_to_value VAR_0x4058, 2 + call_if 4, EventScript_168D50 + end + +EventScript_168D44:: @ 8168D44 + setobjectmovementtype 1, 10 + setobjectxyperm 1, 5, 4 + return + +EventScript_168D50:: @ 8168D50 + setvar VAR_0x4001, 1 + return + +PalletTown_GarysHouse_EventScript_168D56:: @ 8168D56 + lock + faceplayer + setvar VAR_0x8004, 1 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + checkflag FLAG_0x82C + goto_if_eq EventScript_168DB9 + compare_var_to_value VAR_0x4001, 1 + goto_if_eq EventScript_168EEC + compare_var_to_value VAR_0x4058, 2 + goto_if_eq EventScript_168F59 + compare_var_to_value VAR_0x4058, 1 + goto_if_eq EventScript_168EF6 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1 + goto_if 4, EventScript_168DAF + msgbox gUnknown_818D58C + closemessage + applymovement 1, Movement_1A75E5 + waitmovement 0 + release + end + +EventScript_168DAF:: @ 8168DAF + msgbox gUnknown_818D5C4 + release + end + +EventScript_168DB9:: @ 8168DB9 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + compare_var_to_value VAR_MIRAGE_RND_L, 500 + goto_if 0, EventScript_168E46 + msgbox gUnknown_818D7D3, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_168E3C + msgbox gUnknown_818D8B2 + special sub_80BF8FC + waitstate + lock + faceplayer + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_168E3C + specialvar VAR_RESULT, sub_80CAD54 + compare_var_to_value VAR_RESULT, SPECIES_EGG + goto_if_eq EventScript_168E32 + msgbox gUnknown_818D8CC + closemessage + fadescreen 1 + playfanfare MUS_ME_ASA + waitfanfare + special sub_80CC948 + fadescreen 0 + special TV_CopyNicknameToStringVar1AndEnsureTerminated + msgbox gUnknown_818D8FE + release + end + +EventScript_168E32:: @ 8168E32 + msgbox gUnknown_818D97B + release + end + +EventScript_168E3C:: @ 8168E3C + msgbox gUnknown_818D875 + release + end + +EventScript_168E46:: @ 8168E46 + msgbox gUnknown_818D9A5 + specialvar VAR_RESULT, sub_80CA76C + switch VAR_RESULT + case 0, EventScript_168EA6 + case 1, EventScript_168EB0 + case 2, EventScript_168EBA + case 3, EventScript_168EC4 + case 4, EventScript_168ECE + case 5, EventScript_168ED8 + case 6, EventScript_168EE2 + end + +EventScript_168EA6:: @ 8168EA6 + msgbox gUnknown_818DBDD + release + end + +EventScript_168EB0:: @ 8168EB0 + msgbox gUnknown_818DB88 + release + end + +EventScript_168EBA:: @ 8168EBA + msgbox gUnknown_818DB2E + release + end + +EventScript_168EC4:: @ 8168EC4 + msgbox gUnknown_818DAF3 + release + end + +EventScript_168ECE:: @ 8168ECE + msgbox gUnknown_818DABE + release + end + +EventScript_168ED8:: @ 8168ED8 + msgbox gUnknown_818DA73 + release + end + +EventScript_168EE2:: @ 8168EE2 + msgbox gUnknown_818DA16 + release + end + +EventScript_168EEC:: @ 8168EEC + msgbox gUnknown_818D701 + release + end + +EventScript_168EF6:: @ 8168EF6 + msgbox gUnknown_818D60A + closemessage + checkitemspace ITEM_TOWN_MAP, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_168F4F + applymovement 1, Movement_1A75EB + waitmovement 0 + removeobject 2 + setvar VAR_0x4058, 2 + delay 15 + applymovement 1, Movement_1A75E1 + waitmovement 0 + delay 12 + additem ITEM_TOWN_MAP, 1 + giveitemfanfaremsg gUnknown_818D661, ITEM_TOWN_MAP, 1, BGM_FRLG_ME_KEYITEM + release + end + +EventScript_168F4F:: @ 8168F4F + msgbox gUnknown_818D684 + release + end + +EventScript_168F59:: @ 8168F59 + msgbox gUnknown_818D6AF + release + end + +PalletTown_GarysHouse_EventScript_168F63:: @ 8168F63 + msgbox gUnknown_818D763, 2 + end + +PalletTown_GarysHouse_EventScript_168F6C:: @ 8168F6C + msgbox gUnknown_818D7A1, 3 + end + +PalletTown_GarysHouse_EventScript_168F75:: @ 8168F75 + msgbox gUnknown_818DC47, 3 + end diff --git a/data/maps/PalletTown_GarysHouse/text.inc b/data/maps/PalletTown_GarysHouse/text.inc new file mode 100644 index 000000000..92d05fbef --- /dev/null +++ b/data/maps/PalletTown_GarysHouse/text.inc @@ -0,0 +1,121 @@ +gUnknown_818D58C:: @ 818D58C + .string "DAISY: Hi, {PLAYER}!\p" + .string "My brother, {RIVAL}, is out at\n" + .string "Grandpa's LAB.$" + +gUnknown_818D5C4:: @ 818D5C4 + .string "DAISY: {PLAYER}, I heard you had\n" + .string "a battle against {RIVAL}.\p" + .string "I wish I'd seen that!$" + +gUnknown_818D60A:: @ 818D60A + .string "Grandpa asked you to run an\n" + .string "errand?\p" + .string "Gee, that's lazy of him.\n" + .string "Here, this will help you.$" + +gUnknown_818D661:: @ 818D661 + .string "{PLAYER} received a TOWN MAP\n" + .string "from DAISY.$" + +gUnknown_818D684:: @ 818D684 + .string "You don't have space for this in\n" + .string "your BAG.$" + +gUnknown_818D6AF:: @ 818D6AF + .string "You can use the TOWN MAP to find\n" + .string "out where you are, or check the\l" + .string "names of places.$" + +gUnknown_818D701:: @ 818D701 + .string "DAISY: Just like people, POKéMON\n" + .string "are living things.\p" + .string "When they get tired, please give\n" + .string "them a rest.$" + +gUnknown_818D763:: @ 818D763 + .string "It's a big map of the KANTO region.\n" + .string "Now this would be useful!$" + +gUnknown_818D7A1:: @ 818D7A1 + .string "The shelves are crammed full of\n" + .string "books on POKéMON.$" + +gUnknown_818D7D3:: @ 818D7D3 + .string "DAISY: Hi, {PLAYER}!\n" + .string "Good timing.\p" + .string "I'm about to have some tea.\n" + .string "Would you like to join me?\p" + .string "Oh, but look.\n" + .string "Your POKéMON are a little dirty.\p" + .string "Would you like me to groom one?$" + +gUnknown_818D875:: @ 818D875 + .string "You don't need any grooming done?\n" + .string "Okay, we'll just have tea.$" + +gUnknown_818D8B2:: @ 818D8B2 + .string "Which one should I groom?$" + +gUnknown_818D8CC:: @ 818D8CC + .string "DAISY: Okay, I'll get it looking\n" + .string "nice in no time.$" + +gUnknown_818D8FE:: @ 818D8FE + .string "{SIZE}Á{STR_VAR_1} looks dreamily content…\p" + .string "{SIZE}ÈDAISY: There you go! All done.\n" + .string "See? Doesn't it look nice?\p" + .string "Giggle…\n" + .string "It's such a cute POKéMON.$" + +gUnknown_818D97B:: @ 818D97B + .string "Oh, sorry. I honestly can't\n" + .string "groom an EGG.$" + +gUnknown_818D9A5:: @ 818D9A5 + .string "DAISY: Your POKéMON grow to love\n" + .string "you if you raise them with love.\p" + .string "For example, {PLAYER}, may I see\n" + .string "your first POKéMON?$" + +gUnknown_818DA16:: @ 818DA16 + .string "It couldn't possibly love you\n" + .string "any more than it does now.\p" + .string "Your POKéMON is happy beyond\n" + .string "words.$" + +gUnknown_818DA73:: @ 818DA73 + .string "It looks very happy.\p" + .string "I wish {RIVAL} could see this and\n" + .string "learn something from it.$" + +gUnknown_818DABE:: @ 818DABE + .string "It's quite friendly with you.\n" + .string "Keep being good to it!$" + +gUnknown_818DAF3:: @ 818DAF3 + .string "It's warming up to you.\n" + .string "Trust must be growing between you.$" + +gUnknown_818DB2E:: @ 818DB2E + .string "It's not quite familiar with you\n" + .string "yet.\p" + .string "POKéMON are all quite wary when\n" + .string "you first get them.$" + +gUnknown_818DB88:: @ 818DB88 + .string "{PLAYER}, I don't like the way it\n" + .string "glares at you.\p" + .string "Could you try being a little nicer\n" + .string "to it?$" + +gUnknown_818DBDD:: @ 818DBDD + .string "…Um, it's not easy for me to say\n" + .string "this, but…\p" + .string "Is there some reason why your\n" + .string "POKéMON would hate you so much?$" + +gUnknown_818DC47:: @ 818DC47 + .string "“The lovely and sweet\n" + .string "CLEFAIRY”$" + diff --git a/data/maps/PalletTown_PlayersHouse_1F/map.json b/data/maps/PalletTown_PlayersHouse_1F/map.json new file mode 100644 index 000000000..3db904de7 --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_1F/map.json @@ -0,0 +1,70 @@ +{ + "id": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", + "name": "PalletTown_PlayersHouse_1F", + "layout": "LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_1F", + "music": "BGM_FRLG_PALLET_TOWN", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "88", + "x": 8, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_PlayersHouse_1F_EventScript_168C09", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_2F", + "dest_warp_id": 0 + }, + { + "x": 3, + "y": 9, + "elevation": 0, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 6, + "y": 1, + "elevation": 0, + "script": "PalletTown_PlayersHouse_1F_EventScript_168C62" + } + ] +} diff --git a/data/maps/PalletTown_PlayersHouse_1F/scripts.inc b/data/maps/PalletTown_PlayersHouse_1F/scripts.inc new file mode 100644 index 000000000..89eabeea1 --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_1F/scripts.inc @@ -0,0 +1,59 @@ +PalletTown_PlayersHouse_1F_MapScripts:: @ 8168C08 + .byte 0 + +PalletTown_PlayersHouse_1F_EventScript_168C09:: @ 8168C09 + lock + faceplayer + checkflag FLAG_0x258 + goto_if_eq EventScript_168C4A + checkplayergender + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_168C38 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_168C41 + closemessage + applymovement 1, Movement_1A75E5 + waitmovement 0 + release + end + +EventScript_168C38:: @ 8168C38 + msgbox gUnknown_818D2F0 + return + +EventScript_168C41:: @ 8168C41 + msgbox gUnknown_818D360 + return + +EventScript_168C4A:: @ 8168C4A + msgbox gUnknown_818D3D1 + closemessage + call EventScript_1A6C26 + msgbox gUnknown_818D3F8 + release + end + +PalletTown_PlayersHouse_1F_EventScript_168C62:: @ 8168C62 + lockall + compare_var_to_value VAR_FACING, 2 + goto_if_eq EventScript_168C78 + msgbox gUnknown_818D4F9 + releaseall + end + +EventScript_168C78:: @ 8168C78 + checkplayergender + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_168C91 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_168C9A + releaseall + end + +EventScript_168C91:: @ 8168C91 + msgbox gUnknown_818D43E + return + +EventScript_168C9A:: @ 8168C9A + msgbox gUnknown_818D492 + return diff --git a/data/maps/PalletTown_PlayersHouse_1F/text.inc b/data/maps/PalletTown_PlayersHouse_1F/text.inc new file mode 100644 index 000000000..faa31c9d1 --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_1F/text.inc @@ -0,0 +1,100 @@ +Text_18CF4D:: @ 818CF4D + .string "Training by oneself is certainly\n" + .string "not a bad thing.\p" + .string "But it's also not bad to aim for\n" + .string "the top with a partner.\p" + .string "Even BRUNO…\n" + .string "He trained with a fellow by the\l" + .string "name of BRAWLY before.$" + +Text_18CFFB:: @ 818CFFB + .string "Do you know anything about this\n" + .string "stone chamber?$" + +Text_18D02A:: @ 818D02A + .string "That was uncalled for.\n" + .string "You didn't have to be so rough.$" + +Text_18D061:: @ 818D061 + .string "The TANOBY RUINS date back at\n" + .string "least 1,500 years.\p" + .string "But it's a baffling mystery as to\n" + .string "why it was built in the first place.$" + +Text_18D0D9:: @ 818D0D9 + .string "A mystic POKéMON is said to sleep\n" + .string "inside here.$" + +Text_18D108:: @ 818D108 + .string "I'm not much good in battle.$" + +Text_18D125:: @ 818D125 + .string "I hear there are other ruins like\n" + .string "the one here.\p" + .string "Might they be the resting places\n" + .string "of other mystic POKéMON?$" + +Text_18D18F:: @ 818D18F + .string "CLIFFORD is teaching me how to\n" + .string "paint.$" + +Text_18D1B5:: @ 818D1B5 + .string "We might get in trouble for being\n" + .string "noisy here.$" + +Text_18D1E3:: @ 818D1E3 + .string "I said that I wanted to paint an\n" + .string "old building.\p" + .string "So CLIFFORD brought me here.$" + +Text_18D22F:: @ 818D22F + .string "Today, in addition to our lesson,\n" + .string "we came to see the chamber.$" + +Text_18D26D:: @ 818D26D + .string "My, how extraordinary.$" + +Text_18D284:: @ 818D284 + .string "Ah, so you are studying POKéMON\n" + .string "on your own…\p" + .string "Yes, you certainly are quite the\n" + .string "extraordinary person, indeed.$" + +gUnknown_818D2F0:: @ 818D2F0 + .string "MOM: …Right.\n" + .string "All boys leave home someday.\l" + .string "It said so on TV.\p" + .string "Oh, yes. PROF. OAK, next door, was\n" + .string "looking for you.$" + +gUnknown_818D360:: @ 818D360 + .string "MOM: …Right.\n" + .string "All girls dream of traveling.\l" + .string "It said so on TV.\p" + .string "Oh, yes. PROF. OAK, next door, was\n" + .string "looking for you.$" + +gUnknown_818D3D1:: @ 818D3D1 + .string "MOM: {PLAYER}!\n" + .string "You should take a quick rest.$" + +gUnknown_818D3F8:: @ 818D3F8 + .string "MOM: Oh, good! You and your\n" + .string "POKéMON are looking great.\l" + .string "Take care now!$" + +gUnknown_818D43E:: @ 818D43E + .string "There's a movie on TV.\n" + .string "Four boys are walking on railroad\l" + .string "tracks.\p" + .string "…I better go, too.$" + +gUnknown_818D492:: @ 818D492 + .string "There's a movie on TV.\n" + .string "A girl with her hair in pigtails is\l" + .string "walking up a brick road.\p" + .string "…I better go, too.$" + +gUnknown_818D4F9:: @ 818D4F9 + .string "Oops, wrong side…$" + diff --git a/data/maps/PalletTown_PlayersHouse_2F/map.json b/data/maps/PalletTown_PlayersHouse_2F/map.json new file mode 100644 index 000000000..dd470b406 --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_2F/map.json @@ -0,0 +1,49 @@ +{ + "id": "MAP_PALLET_TOWN_PLAYERS_HOUSE_2F", + "name": "PalletTown_PlayersHouse_2F", + "layout": "LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_2F", + "music": "BGM_FRLG_PALLET_TOWN", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 6, + "y": 5, + "elevation": 3, + "script": "PalletTown_PlayersHouse_2F_EventScript_168CD2" + }, + { + "type": "bg_event_type_0", + "x": 1, + "y": 1, + "elevation": 0, + "script": "PalletTown_PlayersHouse_2F_EventScript_168CE4" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 1, + "elevation": 0, + "script": "PalletTown_PlayersHouse_2F_EventScript_168CDB" + } + ] +} diff --git a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc new file mode 100644 index 000000000..3700d06be --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc @@ -0,0 +1,56 @@ +PalletTown_PlayersHouse_2F_MapScripts:: @ 8168CA3 + map_script 3, PalletTown_PlayersHouse_2F_MapScript1_168CAE + map_script 4, PalletTown_PlayersHouse_2F_MapScript2_168CBE + .byte 0 + +PalletTown_PlayersHouse_2F_MapScript1_168CAE:: @ 8168CAE + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PLAYERS_HOUSE_2F, 0 + call_if 1, EventScript_168CBA + end + +EventScript_168CBA:: @ 8168CBA + setrespawn SPAWN_PALLET_TOWN + return + +PalletTown_PlayersHouse_2F_MapScript2_168CBE:: @ 8168CBE + map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PLAYERS_HOUSE_2F, 0, EventScript_168CC8 + .2byte 0 + +EventScript_168CC8:: @ 8168CC8 + turnobject 255, 2 + setvar VAR_MAP_SCENE_PALLET_TOWN_PLAYERS_HOUSE_2F, 1 + end + +PalletTown_PlayersHouse_2F_EventScript_168CD2:: @ 8168CD2 + msgbox gUnknown_818D50B, 3 + end + +PalletTown_PlayersHouse_2F_EventScript_168CDB:: @ 8168CDB + msgbox gUnknown_818D53B, 3 + end + +gUnknown_8168CE4:: @ 8168CE4 +PalletTown_PlayersHouse_2F_EventScript_168CE4:: @ 8168CE4 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lockall + setvar VAR_0x8004, 32 + special sub_812B220 + setvar VAR_0x8004, 1 + special sub_80CA86C + playse SE_PC_ON + msgbox gUnknown_81A5420 + special sub_80EB6AC + waitstate + special sub_812B35C + releaseall + end + +gUnknown_8168D17:: @ 8168D17 + setvar VAR_0x8004, 1 + playse SE_PC_OFF + special sub_80CA9A8 + special sub_812B35C + releaseall + end diff --git a/data/maps/PalletTown_PlayersHouse_2F/text.inc b/data/maps/PalletTown_PlayersHouse_2F/text.inc new file mode 100644 index 000000000..e6c794231 --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_2F/text.inc @@ -0,0 +1,10 @@ +gUnknown_818D50B:: @ 818D50B + .string "{PLAYER} played with the NES.\p" + .string "…Okay!\n" + .string "It's time to go!$" + +gUnknown_818D53B:: @ 818D53B + .string "It's a posted notice…\p" + .string "If you're confused, ask for HELP!\n" + .string "Press the L or R Button!$" + diff --git a/data/maps/PalletTown_ProfessorOaksLab/map.json b/data/maps/PalletTown_ProfessorOaksLab/map.json new file mode 100644 index 000000000..9d74bea9c --- /dev/null +++ b/data/maps/PalletTown_ProfessorOaksLab/map.json @@ -0,0 +1,256 @@ +{ + "id": "MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "name": "PalletTown_ProfessorOaksLab", + "layout": "LAYOUT_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "music": "BGM_FRLG_OAK_LAB", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169DEE", + "flag": "0" + }, + { + "graphics_id": "48", + "x": 2, + "y": 10, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 0, + "movement_range_y": 4, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169E46", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169E1A", + "flag": "0" + }, + { + "graphics_id": "71", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169595", + "flag": "43" + }, + { + "graphics_id": "92", + "x": 8, + "y": 4, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169BAB", + "flag": "40" + }, + { + "graphics_id": "92", + "x": 9, + "y": 4, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169D78", + "flag": "41" + }, + { + "graphics_id": "92", + "x": 10, + "y": 4, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169DAE", + "flag": "42" + }, + { + "graphics_id": "72", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_16955F", + "flag": "45" + }, + { + "graphics_id": "94", + "x": 4, + "y": 1, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169E5F", + "flag": "58" + }, + { + "graphics_id": "94", + "x": 5, + "y": 1, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169E5F", + "flag": "58" + } + ], + "warp_events": [ + { + "x": 6, + "y": 12, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 12, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 12, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": 2 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 5, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": 2, + "script": "PalletTown_ProfessorOaksLab_EventScript_1692C3" + }, + { + "type": "trigger", + "x": 6, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": 2, + "script": "PalletTown_ProfessorOaksLab_EventScript_1692C3" + }, + { + "type": "trigger", + "x": 7, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": 2, + "script": "PalletTown_ProfessorOaksLab_EventScript_1692C3" + }, + { + "type": "trigger", + "x": 5, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": 3, + "script": "PalletTown_ProfessorOaksLab_EventScript_1692E7" + }, + { + "type": "trigger", + "x": 6, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": 3, + "script": "PalletTown_ProfessorOaksLab_EventScript_1692F3" + }, + { + "type": "trigger", + "x": 7, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": 3, + "script": "PalletTown_ProfessorOaksLab_EventScript_1692FF" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 2, + "y": 1, + "elevation": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169E68" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 1, + "elevation": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169E68" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 1, + "elevation": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169E71" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 1, + "elevation": 0, + "script": "PalletTown_ProfessorOaksLab_EventScript_169E7A" + } + ] +} diff --git a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc new file mode 100644 index 000000000..449c31027 --- /dev/null +++ b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc @@ -0,0 +1,1408 @@ +PalletTown_ProfessorOaksLab_MapScripts:: @ 8168F7E + map_script 3, PalletTown_ProfessorOaksLab_MapScript1_168F8E + map_script 4, PalletTown_ProfessorOaksLab_MapScript2_168FE1 + map_script 2, PalletTown_ProfessorOaksLab_MapScript3_168FF0 + .byte 0 + +PalletTown_ProfessorOaksLab_MapScript1_168F8E:: @ 8168F8E + setflag FLAG_0x2CF + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1 + call_if 1, EventScript_168FC6 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7 + call_if 1, EventScript_168FD5 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8 + call_if 1, EventScript_168FC0 + checkflag FLAG_0x247 + call_if 1, EventScript_168FBC + end + +EventScript_168FBC:: @ 8168FBC + setflag FLAG_0x24F + return + +EventScript_168FC0:: @ 8168FC0 + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 9 + return + +EventScript_168FC6:: @ 8168FC6 + setobjectxyperm 4, 6, 11 + setobjectmovementtype 4, 7 + savebgm BGM_FRLG_PROF_OAK + return + +EventScript_168FD5:: @ 8168FD5 + setobjectxyperm 4, 6, 11 + setobjectmovementtype 4, 7 + return + +PalletTown_ProfessorOaksLab_MapScript2_168FE1:: @ 8168FE1 + map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, EventScript_168FEB + .2byte 0 + +EventScript_168FEB:: @ 8168FEB + turnobject 255, 2 + end + +PalletTown_ProfessorOaksLab_MapScript3_168FF0:: @ 8168FF0 + map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, EventScript_16923E + map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7, EventScript_169002 + .2byte 0 + +EventScript_169002:: @ 8169002 + lockall + setvar VAR_FACING, 2 + textcolor 0 + applymovement 4, Movement_1692B0 + waitmovement 0 + removeobject 4 + setobjectxyperm 4, 6, 3 + setobjectmovementtype 4, 8 + clearflag FLAG_0x02B + applymovement 255, Movement_1692B7 + waitmovement 0 + goto EventScript_169035 + end + +EventScript_169035:: @ 8169035 + msgbox gUnknown_818EE60 + closemessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169174 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_1691BB + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_169194 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_169194 + msgbox gUnknown_818EF59 + fadedefaultbgm + msgbox gUnknown_818F004 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_1691DB + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_1691E6 + textcolor 3 + msgbox gUnknown_818F062 + closemessage + call EventScript_1A6675 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_1691F1 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_1691FC + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_169215 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_169227 + addobject 9 + addobject 10 + delay 30 + msgbox gUnknown_818F085 + closemessage + removeobject 9 + removeobject 10 + delay 30 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169845 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_169850 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_16985B + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_16986D + textcolor 3 + playfanfare BGM_FRLG_ME_KEYITEM + message Text_18F0E8 + waitmessage + waitfanfare + call EventScript_1A6675 + special EnableNationalPokedex + msgbox gUnknown_818F103 + msgbox gUnknown_818F1DB + closemessage + playbgm BGM_FRLG_RIVAL_POSTBATTLE, 0 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169B69 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_169B7B + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_169B7B + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_169B7B + removeobject 8 + fadedefaultbgm + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8 + releaseall + end + +EventScript_169174:: @ 8169174 + setobjectxyperm 8, 5, 10 + addobject 8 + playbgm BGM_FRLG_RIVAL, 0 + applymovement 255, Movement_169B94 + applymovement 8, Movement_169B9D + waitmovement 0 + return + +EventScript_169194:: @ 8169194 + setobjectxyperm 8, 6, 10 + addobject 8 + playbgm BGM_FRLG_RIVAL, 0 + applymovement 4, Movement_1A75ED + applymovement 255, Movement_169B91 + applymovement 8, Movement_169B9D + waitmovement 0 + return + +EventScript_1691BB:: @ 81691BB + setobjectxyperm 8, 6, 10 + addobject 8 + playbgm BGM_FRLG_RIVAL, 0 + applymovement 4, Movement_1A75ED + applymovement 8, Movement_169B9D + waitmovement 0 + return + +EventScript_1691DB:: @ 81691DB + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +EventScript_1691E6:: @ 81691E6 + applymovement 255, Movement_1A75E7 + waitmovement 0 + return + +EventScript_1691F1:: @ 81691F1 + applymovement 4, Movement_169232 + waitmovement 0 + return + +EventScript_1691FC:: @ 81691FC + applymovement 4, Movement_169238 + applymovement 255, Movement_1698C7 + applymovement 8, Movement_1698C7 + waitmovement 4 + return + +EventScript_169215:: @ 8169215 + applymovement 4, Movement_169232 + applymovement 255, Movement_1698C3 + waitmovement 4 + return + +EventScript_169227:: @ 8169227 + applymovement 4, Movement_169232 + waitmovement 0 + return + +Movement_169232:: @ 8169232 + step_11 + step_12 + step_2e + step_1c + step_1a + step_end + +Movement_169238:: @ 8169238 + step_12 + step_12 + step_11 + step_1c + step_1a + step_end + +EventScript_16923E:: @ 816923E + lockall + textcolor 0 + applymovement 4, Movement_1692B0 + waitmovement 0 + removeobject 4 + setobjectxyperm 4, 6, 3 + setobjectmovementtype 4, 8 + clearflag FLAG_0x02B + applymovement 255, Movement_1692B7 + waitmovement 0 + applymovement 8, Movement_1A75E9 + waitmovement 0 + clearflag FLAG_SPECIAL_FLAG_0x4001 + savebgm SE_STOP + fadedefaultbgm + msgbox gUnknown_818DC94 + closemessage + delay 60 + msgbox gUnknown_818DFBC + closemessage + delay 30 + applymovement 8, Movement_1692C0 + waitmovement 0 + msgbox gUnknown_818DCB9 + msgbox gUnknown_818E0EA + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2 + releaseall + end + +Movement_1692B0:: @ 81692B0 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_1692B7:: @ 81692B7 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_1692C0:: @ 81692C0 + step_26 + step_26 + step_end + +PalletTown_ProfessorOaksLab_EventScript_1692C3:: @ 81692C3 + lockall + textcolor 0 + applymovement 4, Movement_1A75F1 + waitmovement 0 + msgbox gUnknown_818E177 + closemessage + applymovement 255, Movement_1692E5 + waitmovement 0 + releaseall + end + +Movement_1692E5:: @ 81692E5 + step_11 + step_end + +PalletTown_ProfessorOaksLab_EventScript_1692E7:: @ 81692E7 + lockall + setvar VAR_0x4002, 1 + goto EventScript_16930B + end + +PalletTown_ProfessorOaksLab_EventScript_1692F3:: @ 81692F3 + lockall + setvar VAR_0x4002, 2 + goto EventScript_16930B + end + +PalletTown_ProfessorOaksLab_EventScript_1692FF:: @ 81692FF + lockall + setvar VAR_0x4002, 3 + goto EventScript_16930B + end + +EventScript_16930B:: @ 816930B + textcolor 0 + playbgm BGM_FRLG_RIVAL, 0 + applymovement 8, Movement_1A75ED + waitmovement 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + msgbox gUnknown_818DDA4 + closemessage + applymovement 4, Movement_1A75F1 + waitmovement 0 + compare_var_to_value VAR_STARTER_MON, 0 + goto_if_eq EventScript_1693D2 + compare_var_to_value VAR_STARTER_MON, 1 + goto_if_eq EventScript_16944D + compare_var_to_value VAR_STARTER_MON, 2 + goto_if_eq EventScript_16935A + end + +EventScript_16935A:: @ 816935A + compare_var_to_value VAR_0x4002, 1 + goto_if_eq EventScript_16937C + compare_var_to_value VAR_0x4002, 2 + goto_if_eq EventScript_16938C + compare_var_to_value VAR_0x4002, 3 + goto_if_eq EventScript_16939C + end + +EventScript_16937C:: @ 816937C + applymovement 8, Movement_1693C0 + waitmovement 0 + goto EventScript_1693AC + end + +EventScript_16938C:: @ 816938C + applymovement 8, Movement_1693C7 + waitmovement 0 + goto EventScript_1693AC + end + +EventScript_16939C:: @ 816939C + applymovement 8, Movement_1693CD + waitmovement 0 + goto EventScript_1693AC + end + +EventScript_1693AC:: @ 81693AC + trainerbattle 9, 326, 3, Text_18DDEA, Text_18DE1A + goto EventScript_1694C2 + end + +Movement_1693C0:: @ 81693C0 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_end + +Movement_1693C7:: @ 81693C7 + step_12 + step_12 + step_12 + step_10 + step_10 + step_end + +Movement_1693CD:: @ 81693CD + step_12 + step_12 + step_10 + step_10 + step_end + +EventScript_1693D2:: @ 81693D2 + compare_var_to_value VAR_0x4002, 1 + goto_if_eq EventScript_1693F4 + compare_var_to_value VAR_0x4002, 2 + goto_if_eq EventScript_169404 + compare_var_to_value VAR_0x4002, 3 + goto_if_eq EventScript_169414 + end + +EventScript_1693F4:: @ 81693F4 + applymovement 8, Movement_169438 + waitmovement 0 + goto EventScript_169424 + end + +EventScript_169404:: @ 8169404 + applymovement 8, Movement_169440 + waitmovement 0 + goto EventScript_169424 + end + +EventScript_169414:: @ 8169414 + applymovement 8, Movement_169447 + waitmovement 0 + goto EventScript_169424 + end + +EventScript_169424:: @ 8169424 + trainerbattle 9, 328, 3, Text_18DDEA, Text_18DE1A + goto EventScript_1694C2 + end + +Movement_169438:: @ 8169438 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_end + +Movement_169440:: @ 8169440 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_end + +Movement_169447:: @ 8169447 + step_12 + step_12 + step_12 + step_10 + step_10 + step_end + +EventScript_16944D:: @ 816944D + compare_var_to_value VAR_0x4002, 1 + goto_if_eq EventScript_16946F + compare_var_to_value VAR_0x4002, 2 + goto_if_eq EventScript_16947F + compare_var_to_value VAR_0x4002, 3 + goto_if_eq EventScript_16948F + end + +EventScript_16946F:: @ 816946F + applymovement 8, Movement_1694B3 + waitmovement 0 + goto EventScript_16949F + end + +EventScript_16947F:: @ 816947F + applymovement 8, Movement_1694B9 + waitmovement 0 + goto EventScript_16949F + end + +EventScript_16948F:: @ 816948F + applymovement 8, Movement_1694BE + waitmovement 0 + goto EventScript_16949F + end + +EventScript_16949F:: @ 816949F + trainerbattle 9, 327, 3, Text_18DDEA, Text_18DE1A + goto EventScript_1694C2 + end + +Movement_1694B3:: @ 81694B3 + step_12 + step_12 + step_12 + step_10 + step_10 + step_end + +Movement_1694B9:: @ 81694B9 + step_12 + step_12 + step_10 + step_10 + step_end + +Movement_1694BE:: @ 81694BE + step_12 + step_10 + step_10 + step_end + +EventScript_1694C2:: @ 81694C2 + special sp000_heal_pokemon + msgbox gUnknown_818DE38 + closemessage + playbgm BGM_FRLG_RIVAL_POSTBATTLE, 0 + compare_var_to_value VAR_0x4002, 1 + call_if 1, EventScript_169504 + compare_var_to_value VAR_0x4002, 2 + call_if 1, EventScript_169516 + compare_var_to_value VAR_0x4002, 3 + call_if 1, EventScript_169528 + removeobject 8 + playse SE_KAIDAN + fadedefaultbgm + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 4 + setflag FLAG_0x258 + releaseall + end + +EventScript_169504:: @ 8169504 + applymovement 8, Movement_16953A + applymovement 255, Movement_169553 + waitmovement 8 + return + +EventScript_169516:: @ 8169516 + applymovement 8, Movement_16954A + applymovement 255, Movement_169553 + waitmovement 8 + return + +EventScript_169528:: @ 8169528 + applymovement 8, Movement_169542 + applymovement 255, Movement_169559 + waitmovement 8 + return + +Movement_16953A:: @ 816953A + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_1b + step_end + +Movement_169542:: @ 8169542 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_1b + step_end + +Movement_16954A:: @ 816954A + step_13 + step_10 + step_10 + step_10 + step_12 + step_10 + step_10 + step_1b + step_end + +Movement_169553:: @ 8169553 + step_1c + step_1b + step_30 + step_1c + step_2d + step_end + +Movement_169559:: @ 8169559 + step_1c + step_1b + step_2f + step_1c + step_2d + step_end + +PalletTown_ProfessorOaksLab_EventScript_16955F:: @ 816955F + lock + faceplayer + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3 + goto_if_eq EventScript_16958B + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2 + goto_if_eq EventScript_169581 + msgbox gUnknown_818DC67 + release + end + +EventScript_169581:: @ 8169581 + msgbox gUnknown_818DCE2 + release + end + +EventScript_16958B:: @ 816958B + msgbox gUnknown_818DD75 + release + end + +PalletTown_ProfessorOaksLab_EventScript_169595:: @ 8169595 + lock + faceplayer + checkflag FLAG_0x002 + goto_if_eq EventScript_169600 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 9 + goto_if_eq EventScript_169903 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8 + goto_if_eq EventScript_169A6E + checkflag FLAG_0x82C + goto_if_eq EventScript_1699CE + compare_var_to_value VAR_0x4052, 1 + goto_if_eq EventScript_169903 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6 + goto_if_eq EventScript_1698D6 + compare_var_to_value VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1 + goto_if 4, EventScript_16961E + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 4 + goto_if_eq EventScript_169614 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3 + goto_if_eq EventScript_16960A + msgbox gUnknown_818E116 + release + end + +EventScript_169600:: @ 8169600 + msgbox gUnknown_81A72AD + release + end + +EventScript_16960A:: @ 816960A + msgbox gUnknown_818E330 + release + end + +EventScript_169614:: @ 8169614 + msgbox gUnknown_818E3AD + release + end + +EventScript_16961E:: @ 816961E + msgbox gUnknown_818E405 + textcolor 3 + playfanfare MUS_ME_WAZA + message Text_18E4AF + waitmessage + waitfanfare + call EventScript_1A6675 + removeitem ITEM_OAKS_PARCEL, 1 + msgbox gUnknown_818E4CA + playbgm BGM_FRLG_RIVAL, 0 + msgbox gUnknown_818DE8D + closemessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169A82 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_169AC1 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_169A9E + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_169A9E + fadedefaultbgm + msgbox gUnknown_818DE99 + closemessage + delay 30 + playse SE_PIN + applymovement 4, Movement_1A75DB + waitmovement 0 + applymovement 4, Movement_1A75DD + waitmovement 0 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_169ADD + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_169B14 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_169AF5 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169B86 + msgbox gUnknown_818E508 + closemessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169882 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_16988D + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_1698A6 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_1698B8 + msgbox gUnknown_818E536 + closemessage + delay 40 + msgbox gUnknown_818E5C5 + closemessage + applymovement 4, Movement_1A75E9 + waitmovement 0 + removeobject 9 + delay 10 + removeobject 10 + delay 25 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169845 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_169850 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_16985B + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_16986D + delay 10 + textcolor 3 + playfanfare BGM_FRLG_ME_KEYITEM + message Text_18E5EA + waitmessage + waitfanfare + call EventScript_1A6675 + setflag FLAG_0x829 + special sub_810B810 + setvar VAR_0x407C, 1 + msgbox gUnknown_818E612 + additem ITEM_POKE_BALL, 5 + giveitemfanfaremsg gUnknown_818E6B3, ITEM_POKE_BALL, 5 + msgbox gUnknown_818E6D0 + setvar VAR_0x8004, 0 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_818E784 + msgbox gUnknown_818DEC8 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169B33 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_169B45 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_169B57 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_169B57 + msgbox gUnknown_818DEF3 + closemessage + playbgm BGM_FRLG_RIVAL_POSTBATTLE, 0 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169B69 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_169B7B + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_169B7B + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_169B7B + removeobject 8 + fadedefaultbgm + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6 + setvar VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 2 + setvar VAR_0x4051, 1 + setvar VAR_0x4058, 1 + setvar VAR_0x4054, 1 + release + end + +EventScript_169845:: @ 8169845 + applymovement 4, Movement_16987C + waitmovement 0 + return + +EventScript_169850:: @ 8169850 + applymovement 4, Movement_16987F + waitmovement 0 + return + +EventScript_16985B:: @ 816985B + applymovement 4, Movement_16987C + applymovement 255, Movement_169878 + waitmovement 0 + return + +EventScript_16986D:: @ 816986D + applymovement 4, Movement_16987C + waitmovement 0 + return + +Movement_169878:: @ 8169878 + step_1c + step_1b + step_30 + step_end + +Movement_16987C:: @ 816987C + step_13 + step_10 + step_end + +Movement_16987F:: @ 816987F + step_10 + step_13 + step_end + +EventScript_169882:: @ 8169882 + applymovement 4, Movement_1698CB + waitmovement 0 + return + +EventScript_16988D:: @ 816988D + applymovement 4, Movement_1698D0 + applymovement 255, Movement_1698C7 + applymovement 8, Movement_1698C7 + waitmovement 4 + return + +EventScript_1698A6:: @ 81698A6 + applymovement 4, Movement_1698CB + applymovement 255, Movement_1698C3 + waitmovement 4 + return + +EventScript_1698B8:: @ 81698B8 + applymovement 4, Movement_1698CB + waitmovement 0 + return + +Movement_1698C3:: @ 81698C3 + step_1c + step_1b + step_2e + step_end + +Movement_1698C7:: @ 81698C7 + step_1c + step_1b + step_2f + step_end + +Movement_1698CB:: @ 81698CB + step_11 + step_12 + step_1c + step_2d + step_end + +Movement_1698D0:: @ 81698D0 + step_12 + step_12 + step_11 + step_1c + step_30 + step_end + +EventScript_1698D6:: @ 81698D6 + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, Special_GetPokedexCount + copyvar VAR_0x8008, VAR_0x8005 + copyvar VAR_0x8009, VAR_0x8006 + getnumberstring 0, VAR_0x8008 + getnumberstring 1, VAR_0x8009 + compare_var_to_value VAR_0x8009, 1 + goto_if_eq EventScript_1699FB + goto EventScript_169903 + end + +EventScript_169903:: @ 8169903 + call EventScript_1A737B + checkflag FLAG_0x2F4 + goto_if_eq EventScript_169913 + release + end + +EventScript_169913:: @ 8169913 + closemessage + delay 40 + message Text_1A7291 + waitmessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_169964 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_16996F + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_16997A + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_169985 + applymovement 4, Movement_1A75E1 + waitmovement 0 + closemessage + delay 70 + msgbox gUnknown_81A72AD + setflag FLAG_0x002 + release + end + +EventScript_169964:: @ 8169964 + applymovement 4, Movement_169990 + waitmovement 0 + return + +EventScript_16996F:: @ 816996F + applymovement 4, Movement_169997 + waitmovement 0 + return + +EventScript_16997A:: @ 816997A + applymovement 4, Movement_16999E + waitmovement 0 + return + +EventScript_169985:: @ 8169985 + applymovement 4, Movement_1699A5 + waitmovement 0 + return + +Movement_169990:: @ 8169990 + step_25 + step_29 + step_25 + step_25 + step_29 + step_25 + step_end + +Movement_169997:: @ 8169997 + step_26 + step_2a + step_26 + step_26 + step_2a + step_26 + step_end + +Movement_16999E:: @ 816999E + step_27 + step_2b + step_27 + step_27 + step_2b + step_27 + step_end + +Movement_1699A5:: @ 81699A5 + step_28 + step_2c + step_28 + step_28 + step_2c + step_28 + step_end + +Movement_1699AC:: @ 81699AC + step_12 + step_2d + step_1b + step_30 + step_1b + step_2e + step_1b + step_2f + step_1b + step_2d + step_1b + step_13 + step_13 + step_2e + step_1b + step_2f + step_1b + step_2d + step_1b + step_30 + step_1b + step_2e + step_1b + step_12 + step_end + +Movement_1699C5: + step_11 + step_10 + step_10 + step_25 + step_11 + step_1c + step_1c + step_1c + step_end + +EventScript_1699CE:: @ 81699CE + call EventScript_1A737B + closemessage + compare_var_to_value VAR_0x8009, 60 + goto_if 0, EventScript_1699F9 + checkflag FLAG_SYS_RIBBON_GET + goto_if 0, EventScript_1699F9 + delay 30 + msgbox gUnknown_818EDF5 + goto EventScript_169035 + end + +EventScript_1699F9:: @ 81699F9 + release + end + +EventScript_1699FB:: @ 81699FB + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + checkflag FLAG_0x24F + goto_if_eq EventScript_169A6E + checkflag FLAG_0x247 + goto_if_eq EventScript_169A78 + checkitem ITEM_POKE_BALL, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_169A34 + goto EventScript_169A6E + end + +EventScript_169A34:: @ 8169A34 + compare_var_to_value VAR_0x4054, 2 + goto_if 4, EventScript_169A45 + goto EventScript_169A6E + end + +EventScript_169A45:: @ 8169A45 + msgbox gUnknown_818E89C + additem ITEM_POKE_BALL, 5 + giveitemfanfaremsg gUnknown_818E6B3, ITEM_POKE_BALL, 5 + setflag FLAG_0x247 + release + end + +EventScript_169A6E:: @ 8169A6E + msgbox gUnknown_818E871 + release + end + +EventScript_169A78:: @ 8169A78 + msgbox gUnknown_818E98E + release + end + +EventScript_169A82:: @ 8169A82 + setobjectxyperm 8, 5, 10 + addobject 8 + applymovement 255, Movement_169B94 + applymovement 8, Movement_169B9D + waitmovement 0 + return + +EventScript_169A9E:: @ 8169A9E + setobjectxyperm 8, 6, 10 + addobject 8 + applymovement 4, Movement_1A75ED + applymovement 255, Movement_169B91 + applymovement 8, Movement_169B9D + waitmovement 0 + return + +EventScript_169AC1:: @ 8169AC1 + setobjectxyperm 8, 6, 10 + addobject 8 + applymovement 4, Movement_1A75ED + applymovement 8, Movement_169B9D + waitmovement 0 + return + +EventScript_169ADD:: @ 8169ADD + applymovement 4, Movement_1A75E1 + waitmovement 0 + delay 15 + applymovement 4, Movement_1A75ED + waitmovement 0 + return + +EventScript_169AF5:: @ 8169AF5 + applymovement 4, Movement_1A75E1 + waitmovement 0 + delay 15 + applymovement 255, Movement_1A75E7 + applymovement 4, Movement_1A75ED + waitmovement 0 + return + +EventScript_169B14:: @ 8169B14 + applymovement 4, Movement_1A75E1 + waitmovement 0 + delay 15 + applymovement 255, Movement_1A75EB + applymovement 4, Movement_1A75ED + waitmovement 0 + return + +EventScript_169B33:: @ 8169B33 + applymovement 8, Movement_1A75E1 + applymovement 255, Movement_1A75E7 + waitmovement 0 + return + +EventScript_169B45:: @ 8169B45 + applymovement 8, Movement_1A75E9 + applymovement 255, Movement_1A75ED + waitmovement 0 + return + +EventScript_169B57:: @ 8169B57 + applymovement 8, Movement_1A75E1 + applymovement 255, Movement_1A75ED + waitmovement 0 + return + +EventScript_169B69:: @ 8169B69 + applymovement 255, Movement_169B91 + applymovement 8, Movement_169BA4 + waitmovement 0 + return + +EventScript_169B7B:: @ 8169B7B + applymovement 8, Movement_169BA4 + waitmovement 0 + return + +EventScript_169B86:: @ 8169B86 + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +Movement_169B91:: @ 8169B91 + step_1a + step_2d + step_end + +Movement_169B94:: @ 8169B94 + step_2d + step_1c + step_1c + step_1c + step_1c + step_1c + step_1b + step_2f + step_end + +Movement_169B9D:: @ 8169B9D + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_169BA4:: @ 8169BA4 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +PalletTown_ProfessorOaksLab_EventScript_169BAB:: @ 8169BAB + lock + faceplayer + setvar VAR_0x4001, 0 + setvar VAR_0x4002, 1 + setvar VAR_0x4003, 4 + setvar VAR_0x4004, 7 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3 + goto_if 4, EventScript_169DE4 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2 + goto_if_eq EventScript_169BE1 + msgbox gUnknown_818EA19 + release + end + +EventScript_169BE1:: @ 8169BE1 + applymovement 4, Movement_1A75EF + waitmovement 0 + drawmonpic VAR_0x4002, 10, 3 + textcolor 0 + compare_var_to_value VAR_0x4001, 0 + goto_if_eq EventScript_169C14 + compare_var_to_value VAR_0x4001, 1 + goto_if_eq EventScript_169C33 + compare_var_to_value VAR_0x4001, 2 + goto_if_eq EventScript_169C52 + end + +EventScript_169C14:: @ 8169C14 + msgbox gUnknown_818E272, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_169C74 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_169C71 + end + +EventScript_169C33:: @ 8169C33 + msgbox gUnknown_818E207, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_169C74 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_169C71 + end + +EventScript_169C52:: @ 8169C52 + msgbox gUnknown_818E194, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_169C74 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_169C71 + end + +EventScript_169C71:: @ 8169C71 + erasemonpic + release + end + +EventScript_169C74:: @ 8169C74 + erasemonpic + removeobject VAR_LAST_TALKED + msgbox gUnknown_818E2E5 + call EventScript_1A6675 + setflag FLAG_0x828 + setflag FLAG_0x291 + givemon VAR_0x4002, 5, ITEM_NONE, 0, 0, 0 + copyvar VAR_STARTER_MON, VAR_0x4001 + getspeciesname 0, VAR_0x4002 + message Text_18E30D + waitmessage + playfanfare BGM_FRLG_ME_KEYITEM + waitfanfare + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_169CCC + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_169CDC + end + +EventScript_169CCC:: @ 8169CCC + setvar VAR_0x8004, 0 + call EventScript_1A74EB + goto EventScript_169CDC + end + +EventScript_169CDC:: @ 8169CDC + closemessage + compare_var_to_value VAR_0x4001, 0 + goto_if_eq EventScript_169CFF + compare_var_to_value VAR_0x4001, 1 + goto_if_eq EventScript_169D1F + compare_var_to_value VAR_0x4001, 2 + goto_if_eq EventScript_169D0F + end + +EventScript_169CFF:: @ 8169CFF + applymovement 8, Movement_169D62 + waitmovement 0 + goto EventScript_169D2F + end + +EventScript_169D0F:: @ 8169D0F + applymovement 8, Movement_169D6B + waitmovement 0 + goto EventScript_169D2F + end + +EventScript_169D1F:: @ 8169D1F + applymovement 8, Movement_169D72 + waitmovement 0 + goto EventScript_169D2F + end + +EventScript_169D2F:: @ 8169D2F + textcolor 0 + msgbox gUnknown_818DD34 + removeobject VAR_0x4004 + textcolor 3 + getspeciesname 0, VAR_0x4003 + message Text_18DD52 + waitmessage + playfanfare BGM_FRLG_ME_KEYITEM + waitfanfare + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3 + checkflag FLAG_0x83E + call_if 1, EventScript_169D5C + release + end + +EventScript_169D5C:: @ 8169D5C + setvar VAR_0x4070, 1 + return + +Movement_169D62:: @ 8169D62 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_11 + step_end + +Movement_169D6B:: @ 8169D6B + step_10 + step_13 + step_13 + step_13 + step_13 + step_2e + step_end + +Movement_169D72:: @ 8169D72 + step_10 + step_13 + step_13 + step_13 + step_2e + step_end + +PalletTown_ProfessorOaksLab_EventScript_169D78:: @ 8169D78 + lock + faceplayer + setvar VAR_0x4001, 1 + setvar VAR_0x4002, 7 + setvar VAR_0x4003, 1 + setvar VAR_0x4004, 5 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3 + goto_if 4, EventScript_169DE4 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2 + goto_if_eq EventScript_169BE1 + msgbox gUnknown_818EA19 + release + end + +PalletTown_ProfessorOaksLab_EventScript_169DAE:: @ 8169DAE + lock + faceplayer + setvar VAR_0x4001, 2 + setvar VAR_0x4002, 4 + setvar VAR_0x4003, 7 + setvar VAR_0x4004, 6 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3 + goto_if 4, EventScript_169DE4 + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2 + goto_if_eq EventScript_169BE1 + msgbox gUnknown_818EA19 + release + end + +EventScript_169DE4:: @ 8169DE4 + msgbox gUnknown_818EA45 + release + end + +PalletTown_ProfessorOaksLab_EventScript_169DEE:: @ 8169DEE + lock + faceplayer + checkflag FLAG_0x82C + goto_if_eq EventScript_169E03 + msgbox gUnknown_818EBE6 + release + end + +EventScript_169E03:: @ 8169E03 + setvar VAR_0x8004, 0 + setvar VAR_0x8005, 5 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_818ED15 + release + end + +PalletTown_ProfessorOaksLab_EventScript_169E1A:: @ 8169E1A + lock + faceplayer + checkflag FLAG_0x82C + goto_if_eq EventScript_169E2F + msgbox gUnknown_818EBE6 + release + end + +EventScript_169E2F:: @ 8169E2F + setvar VAR_0x8004, 1 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_818EC0B + release + end + +PalletTown_ProfessorOaksLab_EventScript_169E46:: @ 8169E46 + lock + faceplayer + setvar VAR_0x8004, 0 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_818ED81 + release + end + +PalletTown_ProfessorOaksLab_EventScript_169E5F:: @ 8169E5F + msgbox gUnknown_818E9E5, 2 + end + +PalletTown_ProfessorOaksLab_EventScript_169E68:: @ 8169E68 + msgbox gUnknown_818EAF4, 3 + end + +PalletTown_ProfessorOaksLab_EventScript_169E71:: @ 8169E71 + msgbox gUnknown_818EA66, 3 + end + +PalletTown_ProfessorOaksLab_EventScript_169E7A:: @ 8169E7A + lockall + compare_var_to_value VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6 + goto_if 4, EventScript_169E90 + msgbox gUnknown_818EA84 + releaseall + end + +EventScript_169E90:: @ 8169E90 + msgbox gUnknown_818EAB6 + releaseall + end diff --git a/data/maps/PalletTown_ProfessorOaksLab/text.inc b/data/maps/PalletTown_ProfessorOaksLab/text.inc new file mode 100644 index 000000000..3d0c7ba57 --- /dev/null +++ b/data/maps/PalletTown_ProfessorOaksLab/text.inc @@ -0,0 +1,356 @@ +gUnknown_818DC67:: @ 818DC67 + .string "{RIVAL}: What, it's only {PLAYER}?\n" + .string "Gramps isn't around.$" + +gUnknown_818DC94:: @ 818DC94 + .string "{RIVAL}: Gramps!\n" + .string "I'm fed up with waiting!$" + +gUnknown_818DCB9:: @ 818DCB9 + .string "{RIVAL}: Hey! Gramps! No fair!\n" + .string "What about me?$" + +gUnknown_818DCE2:: @ 818DCE2 + .string "{RIVAL}: Heh, I don't need to be\n" + .string "greedy like you. I'm mature!\p" + .string "Go ahead and choose, {PLAYER}!$" + +gUnknown_818DD34:: @ 818DD34 + .string "{RIVAL}: I'll take this one, then!$" + +Text_18DD52:: @ 818DD52 + .string "{RIVAL} received the {STR_VAR_1}\n" + .string "from PROF. OAK!$" + +gUnknown_818DD75:: @ 818DD75 + .string "{RIVAL}: My POKéMON looks a lot\n" + .string "tougher than yours.$" + +gUnknown_818DDA4:: @ 818DDA4 + .string "{RIVAL}: Wait, {PLAYER}!\n" + .string "Let's check out our POKéMON!\p" + .string "Come on, I'll take you on!$" + +Text_18DDEA:: @ 818DDEA + .string "WHAT?\n" + .string "Unbelievable!\l" + .string "I picked the wrong POKéMON!$" + +Text_18DE1A:: @ 818DE1A + .string "{RIVAL}: Yeah!\n" + .string "Am I great or what?$" + +gUnknown_818DE38:: @ 818DE38 + .string "{RIVAL}: Okay! I'll make my\n" + .string "POKéMON battle to toughen it up!\p" + .string "{PLAYER}! Gramps!\n" + .string "Smell you later!$" + +gUnknown_818DE8D:: @ 818DE8D + .string "{RIVAL}: Gramps!$" + +gUnknown_818DE99:: @ 818DE99 + .string "{RIVAL}: I almost forgot!\n" + .string "What did you call me for?$" + +gUnknown_818DEC8:: @ 818DEC8 + .string "{RIVAL}: All right, Gramps!\n" + .string "Leave it all to me!$" + +gUnknown_818DEF3:: @ 818DEF3 + .string "{PLAYER}, I hate to say it, but you\n" + .string "won't be necessary for this.\p" + .string "I know! I'll borrow a TOWN MAP\n" + .string "from my sis!\p" + .string "I'll tell her not to lend you one,\n" + .string "{PLAYER}! Hahaha!\p" + .string "Don't bother coming around to\n" + .string "my place after this!$" + +gUnknown_818DFBC:: @ 818DFBC + .string "OAK: {RIVAL}?\n" + .string "Let me think…\p" + .string "Oh, that's right, I told you to\n" + .string "come! Just wait!\p" + .string "Here, {PLAYER}.\p" + .string "There are three POKéMON here.\p" + .string "Haha!\p" + .string "The POKéMON are held inside\n" + .string "these POKé BALLS.\p" + .string "When I was young, I was a serious\n" + .string "POKéMON TRAINER.\p" + .string "But now, in my old age, I have\n" + .string "only these three left.\p" + .string "You can have one.\n" + .string "Go on, choose!$" + +gUnknown_818E0EA:: @ 818E0EA + .string "OAK: Be patient, {RIVAL}.\n" + .string "You can have one, too!$" + +gUnknown_818E116:: @ 818E116 + .string "OAK: Now, {PLAYER}.\p" + .string "Inside those three POKé BALLS are\n" + .string "POKéMON.\p" + .string "Which one will you choose for\n" + .string "yourself?$" + +gUnknown_818E177:: @ 818E177 + .string "OAK: Hey!\n" + .string "Don't go away yet!$" + +gUnknown_818E194:: @ 818E194 + .string "Ah! CHARMANDER is your choice.\n" + .string "You should raise it patiently.\p" + .string "So, {PLAYER}, you're claiming the\n" + .string "FIRE POKéMON CHARMANDER?$" + +gUnknown_818E207:: @ 818E207 + .string "Hm! SQUIRTLE is your choice.\n" + .string "It's one worth raising.\p" + .string "So, {PLAYER}, you've decided on the\n" + .string "WATER POKéMON SQUIRTLE?$" + +gUnknown_818E272:: @ 818E272 + .string "I see! BULBASAUR is your choice.\n" + .string "It's very easy to raise.\p" + .string "So, {PLAYER}, you want to go with\n" + .string "the GRASS POKéMON BULBASAUR?$" + +gUnknown_818E2E5:: @ 818E2E5 + .string "This POKéMON is really quite\n" + .string "energetic!$" + +Text_18E30D:: @ 818E30D + .string "{PLAYER} received the {STR_VAR_1}\n" + .string "from PROF. OAK!$" + +gUnknown_818E330:: @ 818E330 + .string "OAK: If a wild POKéMON appears,\n" + .string "your POKéMON can battle it.\p" + .string "With it at your side, you should be\n" + .string "able to reach the next town.$" + +gUnknown_818E3AD:: @ 818E3AD + .string "OAK: {PLAYER}, raise your young\n" + .string "POKéMON by making it battle.\p" + .string "It has to battle for it to grow.$" + +gUnknown_818E405:: @ 818E405 + .string "OAK: Oh, {PLAYER}!\n" + .string "How is my old POKéMON?\p" + .string "Well, it seems to be growing more\n" + .string "attached to you.\p" + .string "You must be talented as a POKéMON\n" + .string "TRAINER.\p" + .string "What's that?\n" + .string "You have something for me?$" + +Text_18E4AF:: @ 818E4AF + .string "{PLAYER} delivered OAK'S PARCEL.$" + +gUnknown_818E4CA:: @ 818E4CA + .string "Ah! \n" + .string "It's the custom POKé BALL!\p" + .string "I had it on order.\n" + .string "Thank you!$" + +gUnknown_818E508:: @ 818E508 + .string "OAK: Oh, right!\n" + .string "I have a request for you two.$" + +gUnknown_818E536:: @ 818E536 + .string "On the desk there is my invention,\n" + .string "the POKéDEX!\p" + .string "It automatically records data on\n" + .string "POKéMON you've seen or caught.\p" + .string "It's a high-tech encyclopedia!$" + +gUnknown_818E5C5:: @ 818E5C5 + .string "OAK: {PLAYER} and {RIVAL}.\n" + .string "Take these with you.$" + +Text_18E5EA:: @ 818E5EA + .string "{PLAYER} received the POKéDEX\n" + .string "from PROF. OAK.$" + +gUnknown_818E612:: @ 818E612 + .string "OAK: You can't get detailed data\n" + .string "on POKéMON by just seeing them.\p" + .string "You must catch them to obtain\n" + .string "complete data.\p" + .string "So, here are some tools for\n" + .string "catching wild POKéMON.$" + +gUnknown_818E6B3:: @ 818E6B3 + .string "{PLAYER} received five POKé BALLS.$" + +gUnknown_818E6D0:: @ 818E6D0 + .string "When a wild POKéMON appears,\n" + .string "it's fair game.\p" + .string "Just throw a POKé BALL at it and\n" + .string "try to catch it!\p" + .string "This won't always work, however.\p" + .string "A healthy POKéMON can escape.\n" + .string "You have to be lucky!$" + +gUnknown_818E784:: @ 818E784 + .string "To make a complete guide on all\n" + .string "the POKéMON in the world…\p" + .string "That was my dream!\p" + .string "But, I'm too old.\n" + .string "I can't get the job done.\p" + .string "So, I want you two to fulfill my\n" + .string "dream for me.\p" + .string "Get moving, you two.\p" + .string "This is a great undertaking in\n" + .string "POKéMON history!$" + +gUnknown_818E871:: @ 818E871 + .string "POKéMON around the world wait for\n" + .string "you, {PLAYER}!$" + +gUnknown_818E89C:: @ 818E89C + .string "Ah, {PLAYER}!\n" + .string "How is your POKéDEX shaping up?\p" + .string "{RIVAL} has already caught some\n" + .string "POKéMON and added to the data.\p" + .string "So, {PLAYER}, let's have a look at\n" + .string "your POKéDEX.\p" + .string "…What's the matter?\n" + .string "You've added no new data at all.\p" + .string "I'll give you these, so do try a\n" + .string "little harder.$" + +gUnknown_818E98E:: @ 818E98E + .string "OAK: Come see me sometime.\p" + .string "After all, I want to know how your\n" + .string "POKéDEX is coming along.$" + +gUnknown_818E9E5:: @ 818E9E5 + .string "It's like an encyclopedia, but the\n" + .string "pages are blank.$" + +gUnknown_818EA19:: @ 818EA19 + .string "Those are POKé BALLS.\n" + .string "They contain POKéMON!$" + +gUnknown_818EA45:: @ 818EA45 + .string "That's PROF. OAK's last POKéMON.$" + +gUnknown_818EA66:: @ 818EA66 + .string "Press START to open the MENU!$" + +gUnknown_818EA84:: @ 818EA84 + .string "The SAVE option is on the MENU.\n" + .string "Use it regularly.$" + +gUnknown_818EAB6:: @ 818EAB6 + .string "All POKéMON types have strong and\n" + .string "weak points against others.$" + +gUnknown_818EAF4:: @ 818EAF4 + .string "There's an e-mail message here.\p" + .string "…\p" + .string "Finally!\n" + .string "The ultimate TRAINERS of the\l" + .string "POKéMON LEAGUE are ready to\l" + .string "take on all comers!\p" + .string "Bring your best POKéMON and see\n" + .string "how you rate as a TRAINER!\p" + .string "POKéMON LEAGUE HQ\n" + .string "INDIGO PLATEAU\p" + .string "PROF. OAK, please visit us!\n" + .string "…$" + +gUnknown_818EBE6:: @ 818EBE6 + .string "I study POKéMON as PROF. OAK's\n" + .string "AIDE.$" + +gUnknown_818EC0B:: @ 818EC0B + .string "Hi, {PLAYER}. I bet you've become\n" + .string "good friends with your POKéMON.\p" + .string "By the way, did you know about\n" + .string "DAISY?\p" + .string "If you show DAISY your POKéMON,\n" + .string "she can tell how much it likes you.\p" + .string "Occasionally, she will even groom\n" + .string "a POKéMON for you.\p" + .string "This is a secret, so please don't\n" + .string "tell anyone.$" + +gUnknown_818ED15:: @ 818ED15 + .string "PROF. OAK is going to have his own\n" + .string "radio show soon.\p" + .string "The program will be called PROF.\n" + .string "OAK's POKéMON SEMINAR.$" + +gUnknown_818ED81:: @ 818ED81 + .string "PROF. OAK may not look like much,\n" + .string "but he's the authority on POKéMON.\p" + .string "Many POKéMON TRAINERS hold him in\n" + .string "high regard.$" + +gUnknown_818EDF5:: @ 818EDF5 + .string "Ah, now this is excellent!\p" + .string "{PLAYER}, I have another important\n" + .string "favor to ask of you.\p" + .string "I need you to listen closely.$" + +gUnknown_818EE60:: @ 818EE60 + .string "Recently, there have been sightings\n" + .string "of many rare POKéMON species.\p" + .string "I'm talking about POKéMON that\n" + .string "have never been seen in KANTO.\p" + .string "I would love to go see things for\n" + .string "myself, but I'm much too old.\p" + .string "Since I can't do it, {PLAYER}, I'd\n" + .string "like you to go in my place.$" + +gUnknown_818EF59:: @ 818EF59 + .string "{RIVAL}: Hey, I heard that!\p" + .string "Gramps, what's with favoring\n" + .string "{PLAYER} over me all the time?\p" + .string "I went and collected more POKéMON,\n" + .string "and faster, too.\p" + .string "You should just let me handle\n" + .string "everything.$" + +gUnknown_818F004:: @ 818F004 + .string "OAK: I know, I know.\n" + .string "Of course I need your help, too.\p" + .string "Now, I need to see both your\n" + .string "POKéDEXES.$" + +gUnknown_818F062:: @ 818F062 + .string "PROF. OAK took both POKéDEX\n" + .string "units.$" + +gUnknown_818F085:: @ 818F085 + .string "… … … … … …\p" + .string "… … … … … …\p" + .string "…And that's done!\p" + .string "Now these units can record data on\n" + .string "a lot more POKéMON.$" + +Text_18F0E8:: @ 818F0E8 + .string "{PLAYER}'s POKéDEX was upgraded!$" + +gUnknown_818F103:: @ 818F103 + .string "Now, {PLAYER} and {RIVAL}!\p" + .string "This time, you really must work\n" + .string "towards filling your POKéDEXES.\p" + .string "I urge you to make them the best\n" + .string "and the most complete of all time!\p" + .string "Truly, this is a monumentally great\n" + .string "undertaking in POKéMON history!$" + +gUnknown_818F1DB:: @ 818F1DB + .string "{RIVAL}: Gramps, calm down.\n" + .string "Don't get so excited.\p" + .string "I'll get the POKéDEX completed,\n" + .string "don't you worry about a thing.\p" + .string "I think I'll try looking around\n" + .string "ONE ISLAND first…\p" + .string "Anyways, I'm outta here!$" + diff --git a/data/maps/PewterCity/map.json b/data/maps/PewterCity/map.json new file mode 100644 index 000000000..4db31c4ce --- /dev/null +++ b/data/maps/PewterCity/map.json @@ -0,0 +1,281 @@ +{ + "id": "MAP_PEWTER_CITY", + "name": "PewterCity", + "layout": "LAYOUT_PEWTER_CITY", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE2", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE3", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "22", + "x": 6, + "y": 15, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_EventScript_166075", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 33, + "y": 17, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_EventScript_16607E", + "flag": "80" + }, + { + "graphics_id": "27", + "x": 21, + "y": 28, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_EventScript_16622B", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 33, + "y": 27, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_EventScript_166244", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 42, + "y": 20, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_EventScript_165B9D", + "flag": "46" + }, + { + "graphics_id": "95", + "x": 30, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "55", + "x": 46, + "y": 20, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_EventScript_1662A9", + "flag": "146" + } + ], + "warp_events": [ + { + "x": 17, + "y": 6, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", + "dest_warp_id": 1 + }, + { + "x": 25, + "y": 4, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", + "dest_warp_id": 3 + }, + { + "x": 15, + "y": 16, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_GYM", + "dest_warp_id": 1 + }, + { + "x": 28, + "y": 18, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_MART", + "dest_warp_id": 1 + }, + { + "x": 33, + "y": 11, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_HOUSE1", + "dest_warp_id": 1 + }, + { + "x": 17, + "y": 25, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 9, + "y": 30, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_HOUSE2", + "dest_warp_id": 1 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 42, + "y": 21, + "elevation": 3, + "var": "VAR_0x406C", + "var_value": 0, + "script": "PewterCity_EventScript_165D8E" + }, + { + "type": "trigger", + "x": 42, + "y": 22, + "elevation": 3, + "var": "VAR_0x406C", + "var_value": 0, + "script": "PewterCity_EventScript_165D9A" + }, + { + "type": "trigger", + "x": 42, + "y": 23, + "elevation": 3, + "var": "VAR_0x406C", + "var_value": 0, + "script": "PewterCity_EventScript_165DA6" + }, + { + "type": "trigger", + "x": 43, + "y": 23, + "elevation": 3, + "var": "VAR_0x406C", + "var_value": 0, + "script": "PewterCity_EventScript_165DB2" + }, + { + "type": "trigger", + "x": 46, + "y": 21, + "elevation": 3, + "var": "VAR_0x406C", + "var_value": 1, + "script": "PewterCity_EventScript_1662B7" + }, + { + "type": "trigger", + "x": 46, + "y": 22, + "elevation": 3, + "var": "VAR_0x406C", + "var_value": 1, + "script": "PewterCity_EventScript_1662C4" + }, + { + "type": "trigger", + "x": 46, + "y": 23, + "elevation": 3, + "var": "VAR_0x406C", + "var_value": 1, + "script": "PewterCity_EventScript_1662D1" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 19, + "y": 7, + "elevation": 0, + "script": "PewterCity_EventScript_16627F" + }, + { + "type": "bg_event_type_0", + "x": 39, + "y": 19, + "elevation": 0, + "script": "PewterCity_EventScript_166276" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 16, + "elevation": 0, + "script": "PewterCity_EventScript_166288" + }, + { + "type": "bg_event_type_0", + "x": 20, + "y": 30, + "elevation": 0, + "script": "PewterCity_EventScript_16626D" + }, + { + "type": "bg_event_type_0", + "x": 31, + "y": 25, + "elevation": 0, + "script": "PewterCity_EventScript_1662A0" + }, + { + "type": "hidden_item", + "x": 6, + "y": 3, + "elevation": 3, + "item": "POCKET_TM_CASE", + "flag": "112", + "unknown": 1 + } + ] +} diff --git a/data/maps/PewterCity/scripts.inc b/data/maps/PewterCity/scripts.inc new file mode 100644 index 000000000..465f47f76 --- /dev/null +++ b/data/maps/PewterCity/scripts.inc @@ -0,0 +1,1590 @@ +PewterCity_MapScripts:: @ 8165B8E + map_script 3, PewterCity_MapScript1_165B94 + .byte 0 + +PewterCity_MapScript1_165B94:: @ 8165B94 + setworldmapflag FLAG_WORLD_MAP_PEWTER_CITY + setvar VAR_0x4061, 0 + end + +PewterCity_EventScript_165B9D:: @ 8165B9D + lock + faceplayer + msgbox gUnknown_817E67E + closemessage + playbgm BGM_FRLG_FOLLOW_ME, 0 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_165BD3 + msgbox gUnknown_817E6C7 + closemessage + applymovement 5, Movement_165D83 + waitmovement 0 + fadedefaultbgm + removeobject 5 + clearflag FLAG_0x02E + release + end + +EventScript_165BD3:: @ 8165BD3 + applymovement 255, Movement_165C3C + applymovement 5, Movement_165CDE + waitmovement 0 + applymovement 255, Movement_165C41 + applymovement 5, Movement_165CE3 + waitmovement 0 + return + +EventScript_165BF6:: @ 8165BF6 + applymovement 255, Movement_165C80 + applymovement 5, Movement_165D23 + waitmovement 0 + applymovement 255, Movement_165C82 + applymovement 5, Movement_165D25 + waitmovement 0 + return + +EventScript_165C19:: @ 8165C19 + applymovement 255, Movement_165CAF + applymovement 5, Movement_165D53 + waitmovement 0 + applymovement 255, Movement_165CB1 + applymovement 5, Movement_165D55 + waitmovement 0 + return + +Movement_165C3C:: @ 8165C3C + step_1c + step_1c + step_1a + step_2d + step_end + +Movement_165C41:: @ 8165C41 + step_10 + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_165C80:: @ 8165C80 + step_1c + step_end + +Movement_165C82:: @ 8165C82 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_end + +Movement_165CAF:: @ 8165CAF + step_1c + step_end + +Movement_165CB1:: @ 8165CB1 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_end + +Movement_165CDE:: @ 8165CDE + step_10 + step_12 + step_2e + step_26 + step_end + +Movement_165CE3:: @ 8165CE3 + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_2f + step_end + +Movement_165D23:: @ 8165D23 + step_28 + step_end + +Movement_165D25:: @ 8165D25 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_2f + step_end + +Movement_165D53:: @ 8165D53 + step_25 + step_end + +Movement_165D55:: @ 8165D55 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_2f + step_end + +Movement_165D83:: @ 8165D83 + step_10 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_end + +PewterCity_EventScript_165D8E:: @ 8165D8E + lockall + setvar VAR_0x4001, 0 + goto EventScript_165DBE + end + +PewterCity_EventScript_165D9A:: @ 8165D9A + lockall + setvar VAR_0x4001, 1 + goto EventScript_165DBE + end + +PewterCity_EventScript_165DA6:: @ 8165DA6 + lockall + setvar VAR_0x4001, 2 + goto EventScript_165DBE + end + +PewterCity_EventScript_165DB2:: @ 8165DB2 + lockall + setvar VAR_0x4001, 3 + goto EventScript_165DBE + end + +EventScript_165DBE:: @ 8165DBE + textcolor 0 + msgbox gUnknown_817E67E + closemessage + playbgm BGM_FRLG_FOLLOW_ME, 0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_165E0A + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_165E26 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_165E42 + msgbox gUnknown_817E6C7 + closemessage + applymovement 5, Movement_165D83 + waitmovement 0 + fadedefaultbgm + removeobject 5 + clearflag FLAG_0x02E + releaseall + end + +EventScript_165E0A:: @ 8165E0A + applymovement 5, Movement_165F6C + waitmovement 0 + applymovement 255, Movement_165E7A + applymovement 5, Movement_165F7F + waitmovement 0 + return + +EventScript_165E26:: @ 8165E26 + applymovement 5, Movement_165F71 + waitmovement 0 + applymovement 255, Movement_165EB9 + applymovement 5, Movement_165FBF + waitmovement 0 + return + +EventScript_165E42:: @ 8165E42 + applymovement 5, Movement_165F74 + waitmovement 0 + applymovement 255, Movement_165EF9 + applymovement 5, Movement_166000 + waitmovement 0 + return + +EventScript_165E5E:: @ 8165E5E + applymovement 5, Movement_165F78 + waitmovement 0 + applymovement 255, Movement_165F3A + applymovement 5, Movement_166042 + waitmovement 0 + return + +Movement_165E7A:: @ 8165E7A + step_12 + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_165EB9:: @ 8165EB9 + step_11 + step_12 + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_165EF9:: @ 8165EF9 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_165F3A:: @ 8165F3A + step_12 + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_end + +Movement_165F6C:: @ 8165F6C + step_12 + step_10 + step_30 + step_28 + step_end + +Movement_165F71:: @ 8165F71 + step_10 + step_25 + step_end + +Movement_165F74:: @ 8165F74 + step_10 + step_10 + step_25 + step_end + +Movement_165F78:: @ 8165F78 + step_10 + step_10 + step_13 + step_10 + step_13 + step_28 + step_end + +Movement_165F7F:: @ 8165F7F + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_2f + step_end + +Movement_165FBF:: @ 8165FBF + step_12 + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_2f + step_end + +Movement_166000:: @ 8166000 + step_11 + step_12 + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_2f + step_end + +Movement_166042:: @ 8166042 + step_12 + step_12 + step_12 + step_11 + step_12 + step_12 + step_12 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_13 + step_2f + step_end + +PewterCity_EventScript_166075:: @ 8166075 + msgbox gUnknown_817E436, 2 + end + +PewterCity_EventScript_16607E:: @ 816607E + lock + faceplayer + msgbox gUnknown_817E53E, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_166136 + msgbox gUnknown_817E589 + closemessage + delay 10 + playbgm BGM_FRLG_FOLLOW_ME, 0 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_1660EE + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_166100 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_166112 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_166124 + msgbox gUnknown_817E5AC + closemessage + delay 10 + applymovement 2, Movement_16621C + waitmovement 0 + fadedefaultbgm + removeobject 2 + clearflag FLAG_0x050 + release + end + +EventScript_1660EE:: @ 81660EE + applymovement 2, Movement_16615C + applymovement 255, Movement_166140 + waitmovement 0 + return + +EventScript_166100:: @ 8166100 + applymovement 2, Movement_166193 + applymovement 255, Movement_166177 + waitmovement 0 + return + +EventScript_166112:: @ 8166112 + applymovement 2, Movement_1661CA + applymovement 255, Movement_1661AE + waitmovement 0 + return + +EventScript_166124:: @ 8166124 + applymovement 2, Movement_166201 + applymovement 255, Movement_1661E5 + waitmovement 0 + return + +EventScript_166136:: @ 8166136 + msgbox gUnknown_817E55C + release + end + +Movement_166140:: @ 8166140 + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_1b + step_2e + step_end + +Movement_16615C:: @ 816615C + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_2e + step_end + +Movement_166177:: @ 8166177 + step_1c + step_1c + step_12 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_1b + step_2e + step_end + +Movement_166193:: @ 8166193 + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_2e + step_end + +Movement_1661AE:: @ 81661AE + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_1b + step_2e + step_end + +Movement_1661CA:: @ 81661CA + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_2e + step_end + +Movement_1661E5:: @ 81661E5 + step_13 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_1b + step_2e + step_end + +Movement_166201:: @ 8166201 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_2e + step_end + +Movement_16621C:: @ 816621C + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_10 + step_10 + step_10 + step_13 + step_13 + step_13 + step_end + +PewterCity_EventScript_16622B:: @ 816622B + lock + faceplayer + setvar VAR_0x8004, 2 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_817E49F + release + end + +PewterCity_EventScript_166244:: @ 8166244 + lock + faceplayer + msgbox gUnknown_817E602, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_166263 + msgbox gUnknown_817E644 + release + end + +EventScript_166263:: @ 8166263 + msgbox gUnknown_817E626 + release + end + +PewterCity_EventScript_16626D:: @ 816626D + msgbox gUnknown_817E6F6, 3 + end + +PewterCity_EventScript_166276:: @ 8166276 + msgbox gUnknown_817E748, 3 + end + +PewterCity_EventScript_16627F:: @ 816627F + msgbox gUnknown_817E7C5, 3 + end + +PewterCity_EventScript_166288:: @ 8166288 + lockall + setvar VAR_0x8004, 2 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_817E7DE + releaseall + end + +PewterCity_EventScript_1662A0:: @ 81662A0 + msgbox gUnknown_817E824, 3 + end + +PewterCity_EventScript_1662A9:: @ 81662A9 + lock + faceplayer + setvar VAR_0x4001, 0 + call EventScript_1662DE + release + end + +PewterCity_EventScript_1662B7:: @ 81662B7 + lockall + setvar VAR_0x4001, 1 + call EventScript_1662DE + releaseall + end + +PewterCity_EventScript_1662C4:: @ 81662C4 + lockall + setvar VAR_0x4001, 2 + call EventScript_1662DE + releaseall + end + +PewterCity_EventScript_1662D1:: @ 81662D1 + lockall + setvar VAR_0x4001, 3 + call EventScript_1662DE + releaseall + end + +EventScript_1662DE:: @ 81662DE + textcolor 0 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_1663CA + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_1663CA + compare_var_to_value VAR_0x4001, 3 + call_if 1, EventScript_1663CA + waitse + playse SE_PIN + applymovement 7, Movement_1A75DB + waitmovement 0 + applymovement 7, Movement_1A75DD + waitmovement 0 + msgbox gUnknown_817E902 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_1663D5 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_1663DA + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_1663E6 + compare_var_to_value VAR_0x4001, 3 + call_if 1, EventScript_1663FC + msgbox gUnknown_817E90C + textcolor 3 + playfanfare BGM_FRLG_ME_KEYITEM + message Text_17E970 + waitmessage + waitfanfare + msgbox gUnknown_817E99D + special sub_80699BC + signmsg + msgbox gUnknown_817E9C7 + normalmsg + call EventScript_1A6675 + msgbox gUnknown_817EA06 + closemessage + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_166412 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16641D + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_166428 + compare_var_to_value VAR_0x4001, 3 + call_if 1, EventScript_166433 + delay 30 + textcolor 3 + msgbox gUnknown_817EA36 + closemessage + removeobject 7 + setflag FLAG_0x82F + setvar VAR_0x406C, 2 + return + +EventScript_1663CA:: @ 81663CA + applymovement 7, Movement_1A75ED + waitmovement 0 + return + +EventScript_1663D5:: @ 81663D5 + closemessage + delay 20 + return + +EventScript_1663DA:: @ 81663DA + closemessage + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +EventScript_1663E6:: @ 81663E6 + closemessage + applymovement 7, Movement_16643E + waitmovement 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +EventScript_1663FC:: @ 81663FC + closemessage + applymovement 7, Movement_166441 + waitmovement 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +EventScript_166412:: @ 8166412 + applymovement 7, Movement_166445 + waitmovement 0 + return + +EventScript_16641D:: @ 816641D + applymovement 7, Movement_166450 + waitmovement 0 + return + +EventScript_166428:: @ 8166428 + applymovement 7, Movement_16645B + waitmovement 0 + return + +EventScript_166433:: @ 8166433 + applymovement 7, Movement_166465 + waitmovement 0 + return + +Movement_16643E:: @ 816643E + step_1a + step_10 + step_end + +Movement_166441:: @ 8166441 + step_1a + step_10 + step_10 + step_end + +Movement_166445:: @ 8166445 + step_10 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_end + +Movement_166450:: @ 8166450 + step_12 + step_10 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_end + +Movement_16645B:: @ 816645B + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_end + +Movement_166465:: @ 8166465 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_end + +Movement_16646F:: @ 816646F + step_27 + step_end diff --git a/data/maps/PewterCity/text.inc b/data/maps/PewterCity/text.inc new file mode 100644 index 000000000..de975f32d --- /dev/null +++ b/data/maps/PewterCity/text.inc @@ -0,0 +1,153 @@ +Text_17E316:: @ 817E316 + .string "Yawn!\n" + .string "I must have dozed off in the sun.\p" + .string "I had this weird dream about\n" + .string "a DROWZEE eating my dream.\p" + .string "And…\n" + .string "I learned how to eat dreams…\p" + .string "Oogh, this is too spooky!\p" + .string "Let me teach it to a POKéMON so\n" + .string "I can forget about it!$" + +Text_17E3E9:: @ 817E3E9 + .string "…Snore…$" + +Text_17E3F1:: @ 817E3F1 + .string "Which POKéMON wants to learn\n" + .string "DREAM EATER?$" + +Text_17E41B:: @ 817E41B + .string "…ZZZ…\n" + .string "I…can't eat…anymore…$" + +gUnknown_817E436:: @ 817E436 + .string "CLEFAIRY came from the moon.\n" + .string "That's what the rumor is.\p" + .string "They appeared after MOON STONES\n" + .string "fell on MT. MOON.$" + +gUnknown_817E49F:: @ 817E49F + .string "There aren't many serious POKéMON\n" + .string "TRAINERS here.\p" + .string "They're all like BUG CATCHERS,\n" + .string "you know, just hobbyists.\p" + .string "But PEWTER GYM's BROCK isn't like\n" + .string "that, not one bit.$" + +gUnknown_817E53E:: @ 817E53E + .string "Did you check out the MUSEUM?$" + +gUnknown_817E55C:: @ 817E55C + .string "Weren't those fossils from MT. MOON\n" + .string "amazing?$" + +gUnknown_817E589:: @ 817E589 + .string "Really?\n" + .string "You absolutely have to go!$" + +gUnknown_817E5AC:: @ 817E5AC + .string "This is it, the MUSEUM.\p" + .string "You have to pay to get in, but it's\n" + .string "worth it. See you around!$" + +gUnknown_817E602:: @ 817E602 + .string "Psssst!\n" + .string "Do you know what I'm doing?$" + +gUnknown_817E626:: @ 817E626 + .string "That's right!\n" + .string "It's hard work!$" + +gUnknown_817E644:: @ 817E644 + .string "I'm spraying REPEL to keep wild\n" + .string "POKéMON out of my garden!$" + +gUnknown_817E67E:: @ 817E67E + .string "You're a TRAINER, right?\p" + .string "BROCK's looking for new\n" + .string "challengers. Follow me!$" + +gUnknown_817E6C7:: @ 817E6C7 + .string "If you have the right stuff,\n" + .string "go take on BROCK!$" + +gUnknown_817E6F6:: @ 817E6F6 + .string "TRAINER TIPS\p" + .string "All POKéMON that appear in battle,\n" + .string "however briefly, earn EXP Points.$" + +gUnknown_817E748:: @ 817E748 + .string "NOTICE!\p" + .string "Thieves have been stealing POKéMON\n" + .string "fossils from MT. MOON.\p" + .string "Please call the PEWTER POLICE if\n" + .string "you have any information.$" + +gUnknown_817E7C5:: @ 817E7C5 + .string "PEWTER MUSEUM OF SCIENCE$" + +gUnknown_817E7DE:: @ 817E7DE + .string "PEWTER CITY POKéMON GYM\n" + .string "LEADER: BROCK\l" + .string "The Rock-Solid POKéMON TRAINER!$" + +gUnknown_817E824:: @ 817E824 + .string "PEWTER CITY\n" + .string "A Stone Gray City$" + +Text_17E842:: @ 817E842 + .string "あッれー!\n" + .string "その ジムバッジ‥‥\l" + .string "すげえな タケシに かったのかよ!\p" + .string "かんどう したから\n" + .string "おれの たからもの やるよ!$" + +Text_17E87E:: @ 817E87E + .string "なかには きのみが はいってるぜ\p" + .string "やくに たつ きのみも\n" + .string "はいって いるから\l" + .string "だいじに つかって くれよ!$" + +Text_17E8B4:: @ 817E8B4 + .string "ポケモンに きのみを\n" + .string "もたせて おけば\l" + .string "たたかっている ときに\l" + .string "かってに つかって くれるんだ\p" + .string "キズぐすり とか どくけし より\n" + .string "てがるで べんり だろ?$" + +gUnknown_817E902:: @ 817E902 + .string "Oh, {PLAYER}{KUN}!$" + +gUnknown_817E90C:: @ 817E90C + .string "I'm glad I caught up to you.\n" + .string "I'm PROF. OAK's AIDE.\p" + .string "I've been asked to deliver this,\n" + .string "so here you go.$" + +Text_17E970:: @ 817E970 + .string "{PLAYER} received the\n" + .string "RUNNING SHOES from the AIDE.$" + +gUnknown_817E99D:: @ 817E99D + .string "{PLAYER} switched shoes with the\n" + .string "RUNNING SHOES.$" + +gUnknown_817E9C7:: @ 817E9C7 + .string "Press the B Button to run.\n" + .string "But only where there's room to run!$" + +gUnknown_817EA06:: @ 817EA06 + .string "Well, I must be going back to\n" + .string "the LAB.\p" + .string "Bye-bye!$" + +gUnknown_817EA36:: @ 817EA36 + .string "There's a letter attached…\p" + .string "Dear {PLAYER},\p" + .string "Here is a pair of RUNNING SHOES\n" + .string "for my beloved challenger.\p" + .string "Remember, I'll always cheer for\n" + .string "you! Don't ever give up!\p" + .string "From Mom$" + diff --git a/data/maps/PewterCity_Gym/map.json b/data/maps/PewterCity_Gym/map.json new file mode 100644 index 000000000..bd7ae17c2 --- /dev/null +++ b/data/maps/PewterCity_Gym/map.json @@ -0,0 +1,96 @@ +{ + "id": "MAP_PEWTER_CITY_GYM", + "name": "PewterCity_Gym", + "layout": "LAYOUT_PEWTER_CITY_GYM", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "80", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Gym_EventScript_16A593", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 3, + "y": 8, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "PewterCity_Gym_EventScript_16A63E", + "flag": "0" + }, + { + "graphics_id": "91", + "x": 7, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Gym_EventScript_16A655", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 14, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 2 + }, + { + "x": 6, + "y": 14, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 14, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 12, + "elevation": 0, + "script": "PewterCity_Gym_EventScript_16A6AF" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 12, + "elevation": 0, + "script": "PewterCity_Gym_EventScript_16A6AF" + } + ] +} diff --git a/data/maps/PewterCity_Gym/scripts.inc b/data/maps/PewterCity_Gym/scripts.inc new file mode 100644 index 000000000..5990bf1e3 --- /dev/null +++ b/data/maps/PewterCity_Gym/scripts.inc @@ -0,0 +1,94 @@ +PewterCity_Gym_MapScripts:: @ 816A592 + .byte 0 + +PewterCity_Gym_EventScript_16A593:: @ 816A593 + setvar VAR_0x8004, 2 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + trainerbattle 1, 414, 0, Text_190CD4, Text_190E4F, EventScript_16A5C5 + checkflag FLAG_0x254 + goto_if 0, EventScript_16A5F3 + msgbox gUnknown_819110F + release + end + +EventScript_16A5C5:: @ 816A5C5 + setvar VAR_0x8004, 2 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + setflag FLAG_0x4B0 + setflag FLAG_UNK820 + setvar VAR_0x406C, 1 + setflag FLAG_0x02E + clearflag FLAG_0x092 + setvar VAR_0x8008, 1 + call EventScript_1A6B18 + goto EventScript_16A5F3 + end + +EventScript_16A5F3:: @ 816A5F3 + msgbox gUnknown_8190FC1 + checkitemspace ITEM_TM39, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16A634 + additem ITEM_TM39, 1 + giveitemfanfaremsg gUnknown_8190FDB, ITEM_TM39 + setflag FLAG_0x254 + msgbox gUnknown_8190FF8 + release + end + +EventScript_16A634:: @ 816A634 + msgbox gUnknown_81911CE + release + end + +PewterCity_Gym_EventScript_16A63E:: @ 816A63E + trainerbattle 0, 142, 0, Text_1911EC, Text_191237 + msgbox gUnknown_819126B, 6 + end + +PewterCity_Gym_EventScript_16A655:: @ 816A655 + lock + faceplayer + checkflag FLAG_0x4B0 + goto_if_eq EventScript_16A67F + msgbox gUnknown_8191298, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16A689 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16A697 + end + +EventScript_16A67F:: @ 816A67F + msgbox gUnknown_819143C + release + end + +EventScript_16A689:: @ 816A689 + msgbox gUnknown_819133C + goto EventScript_16A6A5 + end + +EventScript_16A697:: @ 816A697 + msgbox gUnknown_8191412 + goto EventScript_16A6A5 + end + +EventScript_16A6A5:: @ 816A6A5 + msgbox gUnknown_819135C + release + end + +PewterCity_Gym_EventScript_16A6AF:: @ 816A6AF + lockall + checkflag FLAG_UNK820 + goto_if_eq EventScript_16A6C3 + msgbox gUnknown_819146E + releaseall + end + +EventScript_16A6C3:: @ 816A6C3 + msgbox gUnknown_81914A4 + releaseall + end diff --git a/data/maps/PewterCity_Gym/text.inc b/data/maps/PewterCity_Gym/text.inc new file mode 100644 index 000000000..31e5c61f0 --- /dev/null +++ b/data/maps/PewterCity_Gym/text.inc @@ -0,0 +1,119 @@ +Text_190CD4:: @ 8190CD4 + .string "So, you're here. I'm BROCK.\n" + .string "I'm PEWTER's GYM LEADER.\p" + .string "My rock-hard willpower is evident\n" + .string "even in my POKéMON.\p" + .string "My POKéMON are all rock hard, and\n" + .string "have true-grit determination.\p" + .string "That's right - my POKéMON are all\n" + .string "the ROCK type!\p" + .string "Fuhaha! You're going to challenge\n" + .string "me knowing that you'll lose?\p" + .string "That's the TRAINER's honor that\n" + .string "compels you to challenge me.\p" + .string "Fine, then!\n" + .string "Show me your best!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +Text_190E4F:: @ 8190E4F + .string "I took you for granted, and so\n" + .string "I lost.\p" + .string "As proof of your victory, I confer\n" + .string "on you this…the official POKéMON\l" + .string "LEAGUE BOULDERBADGE.\p" + .string "{SIZE}Á{PLAYER} received the BOULDERBADGE\n" + .string "from BROCK!{PAUSE_MUSIC}{PLAY_BGM}{MUS_ME_BACHI}{PAUSE 0xFE}{PAUSE 0x56}{RESUME_MUSIC}\p" + .string "{SIZE}ÇJust having the BOULDERBADGE makes\n" + .string "your POKéMON more powerful.\p" + .string "It also enables the use of the\n" + .string "move FLASH outside of battle.\p" + .string "Of course, a POKéMON must know the\n" + .string "move FLASH to use it.$" + +gUnknown_8190FC1:: @ 8190FC1 + .string "Wait!\n" + .string "Take this with you.$" + +gUnknown_8190FDB:: @ 8190FDB + .string "{PLAYER} received TM39\n" + .string "from BROCK.$" + +gUnknown_8190FF8:: @ 8190FF8 + .string "A TM, Technical Machine, contains a\n" + .string "technique for POKéMON.\p" + .string "Using a TM teaches the move it\n" + .string "contains to a POKéMON.\p" + .string "A TM is good for only one use.\p" + .string "So, when you use one, pick the\n" + .string "POKéMON carefully.\p" + .string "Anyways…\n" + .string "TM39 contains ROCK TOMB.\p" + .string "It hurls boulders at the foe and\n" + .string "lowers its SPEED.$" + +gUnknown_819110F:: @ 819110F + .string "There are all kinds of TRAINERS in\n" + .string "this huge world of ours.\p" + .string "You appear to be very gifted as a\n" + .string "POKéMON TRAINER.\p" + .string "So let me make a suggestion.\p" + .string "Go to the GYM in CERULEAN and test\n" + .string "your abilities.$" + +gUnknown_81911CE:: @ 81911CE + .string "You don't have room for this.$" + +Text_1911EC:: @ 81911EC + .string "Stop right there, kid!\p" + .string "You're ten thousand light-years \n" + .string "from facing BROCK!$" + +Text_191237:: @ 8191237 + .string "Darn!\p" + .string "Light-years isn't time…\n" + .string "It measures distance!$" + +gUnknown_819126B:: @ 819126B + .string "You're pretty hot.\n" + .string "…But not as hot as BROCK!$" + +gUnknown_8191298:: @ 8191298 + .string "Hiya!\n" + .string "Do you want to dream big?\p" + .string "Do you dare to dream of becoming\n" + .string "the POKéMON champ?\p" + .string "I'm no TRAINER, but I can advise\n" + .string "you on how to win.\p" + .string "Let me take you to the top!$" + +gUnknown_819133C:: @ 819133C + .string "All right!\n" + .string "Let's get happening!$" + +gUnknown_819135C:: @ 819135C + .string "The first POKéMON out in a match is\n" + .string "at the left of the POKéMON LIST.\p" + .string "By changing the order of POKéMON,\n" + .string "you may gain an advantage.\p" + .string "Try different orders to suit your\n" + .string "opponent's party.$" + +gUnknown_8191412:: @ 8191412 + .string "It's a free service!\n" + .string "Let's get happening!$" + +gUnknown_819143C:: @ 819143C + .string "Just as I thought!\n" + .string "You're POKéMON champ material!$" + +gUnknown_819146E:: @ 819146E + .string "PEWTER POKéMON GYM\n" + .string "LEADER: BROCK\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +gUnknown_81914A4:: @ 81914A4 + .string "PEWTER POKéMON GYM\n" + .string "LEADER: BROCK\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/PewterCity_House1/map.json b/data/maps/PewterCity_House1/map.json new file mode 100644 index 000000000..cb05ba932 --- /dev/null +++ b/data/maps/PewterCity_House1/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_PEWTER_CITY_HOUSE1", + "name": "PewterCity_House1", + "layout": "LAYOUT_HOUSE2", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_House1_EventScript_16A71D", + "flag": "0" + }, + { + "graphics_id": "16", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_House1_EventScript_16A726", + "flag": "0" + }, + { + "graphics_id": "123", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_House1_EventScript_16A736", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 4 + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_House1/scripts.inc b/data/maps/PewterCity_House1/scripts.inc new file mode 100644 index 000000000..3be582ab3 --- /dev/null +++ b/data/maps/PewterCity_House1/scripts.inc @@ -0,0 +1,31 @@ +PewterCity_House1_MapScripts:: @ 816A71C + .byte 0 + +PewterCity_House1_EventScript_16A71D:: @ 816A71D + msgbox gUnknown_81915DB, 2 + end + +PewterCity_House1_EventScript_16A726:: @ 816A726 + lock + msgbox gUnknown_81915CD + call EventScript_16A749 + release + end + +PewterCity_House1_EventScript_16A736:: @ 816A736 + lock + faceplayer + call EventScript_16A749 + applymovement 3, Movement_1A75E5 + waitmovement 0 + release + end + +EventScript_16A749:: @ 816A749 + textcolor 3 + waitse + playmoncry SPECIES_NIDORAN_M, 0 + msgbox gUnknown_81915BB + waitmoncry + call EventScript_1A6675 + return diff --git a/data/maps/PewterCity_House1/text.inc b/data/maps/PewterCity_House1/text.inc new file mode 100644 index 000000000..b0a691229 --- /dev/null +++ b/data/maps/PewterCity_House1/text.inc @@ -0,0 +1,15 @@ +gUnknown_81915BB:: @ 81915BB + .string "NIDORAN♂: Bowbow!$" + +gUnknown_81915CD:: @ 81915CD + .string "NIDORAN, sit!$" + +gUnknown_81915DB:: @ 81915DB + .string "Our POKéMON's an outsider, so it's\n" + .string "finicky and hard to handle.\p" + .string "An outsider is a POKéMON that you\n" + .string "get in a trade.\p" + .string "It grows fast, but it may ignore an\n" + .string "unskilled TRAINER in battle.\p" + .string "If only we had some BADGES…$" + diff --git a/data/maps/PewterCity_House2/map.json b/data/maps/PewterCity_House2/map.json new file mode 100644 index 000000000..368dc049c --- /dev/null +++ b/data/maps/PewterCity_House2/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_PEWTER_CITY_HOUSE2", + "name": "PewterCity_House2", + "layout": "LAYOUT_HOUSE2", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_House2_EventScript_16A7DD", + "flag": "0" + }, + { + "graphics_id": "16", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_House2_EventScript_16A7E6", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 6 + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 6 + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_House2/scripts.inc b/data/maps/PewterCity_House2/scripts.inc new file mode 100644 index 000000000..2db341b30 --- /dev/null +++ b/data/maps/PewterCity_House2/scripts.inc @@ -0,0 +1,10 @@ +PewterCity_House2_MapScripts:: @ 816A7DC + .byte 0 + +PewterCity_House2_EventScript_16A7DD:: @ 816A7DD + msgbox gUnknown_81917E4, 2 + end + +PewterCity_House2_EventScript_16A7E6:: @ 816A7E6 + msgbox gUnknown_8191840, 2 + end diff --git a/data/maps/PewterCity_House2/text.inc b/data/maps/PewterCity_House2/text.inc new file mode 100644 index 000000000..6dc70b2ba --- /dev/null +++ b/data/maps/PewterCity_House2/text.inc @@ -0,0 +1,14 @@ +gUnknown_81917E4:: @ 81917E4 + .string "POKéMON learn new techniques as\n" + .string "they grow.\p" + .string "But some moves must be taught to\n" + .string "them by people.$" + +gUnknown_8191840:: @ 8191840 + .string "A POKéMON becomes easier to \n" + .string "catch if it has a status problem.\p" + .string "Sleep, poison, burn, or paralysis…\n" + .string "Those are all effective.\p" + .string "But catching POKéMON is never\n" + .string "a sure thing!$" + diff --git a/data/maps/PewterCity_Mart/map.json b/data/maps/PewterCity_Mart/map.json new file mode 100644 index 000000000..ba1e82180 --- /dev/null +++ b/data/maps/PewterCity_Mart/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_PEWTER_CITY_MART", + "name": "PewterCity_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "18", + "x": 8, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Mart_EventScript_16A6CE", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Mart_EventScript_16A6D7", + "flag": "0" + }, + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Mart_EventScript_16A6E0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 3 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_Mart/scripts.inc b/data/maps/PewterCity_Mart/scripts.inc new file mode 100644 index 000000000..9e6fc4375 --- /dev/null +++ b/data/maps/PewterCity_Mart/scripts.inc @@ -0,0 +1,37 @@ +PewterCity_Mart_MapScripts:: @ 816A6CD + .byte 0 + +PewterCity_Mart_EventScript_16A6CE:: @ 816A6CE + msgbox gUnknown_81914DE, 2 + end + +PewterCity_Mart_EventScript_16A6D7:: @ 816A6D7 + msgbox gUnknown_8191541, 2 + end + +PewterCity_Mart_EventScript_16A6E0:: @ 816A6E0 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16A708 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16A708:: @ 816A708 + .2byte ITEM_POKE_BALL + .2byte ITEM_POTION + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_AWAKENING + .2byte ITEM_BURN_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_REPEL + .2byte ITEM_NONE + release + end diff --git a/data/maps/PewterCity_Mart/text.inc b/data/maps/PewterCity_Mart/text.inc new file mode 100644 index 000000000..24dcbdbb2 --- /dev/null +++ b/data/maps/PewterCity_Mart/text.inc @@ -0,0 +1,11 @@ +gUnknown_81914DE:: @ 81914DE + .string "A shady old guy sucked me into\n" + .string "buying this weird fish POKéMON!\p" + .string "It's totally weak and it cost ¥500!$" + +gUnknown_8191541:: @ 8191541 + .string "Good things can happen if you raise\n" + .string "POKéMON diligently.\p" + .string "Even the weak ones can surprise\n" + .string "you if you don't give up on them.$" + diff --git a/data/maps/PewterCity_Museum_1F/map.json b/data/maps/PewterCity_Museum_1F/map.json new file mode 100644 index 000000000..583d0f0db --- /dev/null +++ b/data/maps/PewterCity_Museum_1F/map.json @@ -0,0 +1,198 @@ +{ + "id": "MAP_PEWTER_CITY_MUSEUM_1F", + "name": "PewterCity_Museum_1F", + "layout": "LAYOUT_PEWTER_CITY_MUSEUM_1F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "47", + "x": 16, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_1F_EventScript_16A31B", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_1F_EventScript_16A4A5", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 21, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_1F_EventScript_16A4AE", + "flag": "0" + }, + { + "graphics_id": "101", + "x": 22, + "y": 3, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_1F_EventScript_16A509", + "flag": "86" + }, + { + "graphics_id": "55", + "x": 26, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_1F_EventScript_16A49C", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 26, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_1F_EventScript_1C4BBE", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 13, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 0 + }, + { + "x": 14, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 0 + }, + { + "x": 15, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 0 + }, + { + "x": 21, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 1 + }, + { + "x": 22, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 1 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY_MUSEUM_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 12, + "y": 5, + "elevation": 3, + "var": "VAR_0x4061", + "var_value": 0, + "script": "PewterCity_Museum_1F_EventScript_16A38F" + }, + { + "type": "trigger", + "x": 13, + "y": 5, + "elevation": 3, + "var": "VAR_0x4061", + "var_value": 0, + "script": "PewterCity_Museum_1F_EventScript_16A3A5" + }, + { + "type": "trigger", + "x": 14, + "y": 5, + "elevation": 3, + "var": "VAR_0x4061", + "var_value": 0, + "script": "PewterCity_Museum_1F_EventScript_16A3BB" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 4, + "elevation": 0, + "script": "PewterCity_Museum_1F_EventScript_16A512" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 7, + "elevation": 0, + "script": "PewterCity_Museum_1F_EventScript_16A532" + }, + { + "type": "bg_event_type_1", + "x": 27, + "y": 1, + "elevation": 0, + "script": "PewterCity_Museum_1F_EventScript_1ACE1C" + }, + { + "type": "bg_event_type_1", + "x": 26, + "y": 1, + "elevation": 0, + "script": "PewterCity_Museum_1F_EventScript_1ACE1C" + } + ] +} diff --git a/data/maps/PewterCity_Museum_1F/scripts.inc b/data/maps/PewterCity_Museum_1F/scripts.inc new file mode 100644 index 000000000..7540e74d5 --- /dev/null +++ b/data/maps/PewterCity_Museum_1F/scripts.inc @@ -0,0 +1,208 @@ +PewterCity_Museum_1F_MapScripts:: @ 816A31A + .byte 0 + +PewterCity_Museum_1F_EventScript_16A31B:: @ 816A31B + lock + faceplayer + compare_var_to_value VAR_FACING, 3 + goto_if_eq EventScript_16A348 + compare_var_to_value VAR_FACING, 1 + goto_if_eq EventScript_16A348 + compare_var_to_value VAR_FACING, 2 + goto_if_eq EventScript_16A348 + msgbox gUnknown_8190539 + release + end + +EventScript_16A348:: @ 816A348 + msgbox gUnknown_8190550, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16A367 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16A37B + end + +EventScript_16A367:: @ 816A367 + msgbox gUnknown_81905B1 + applymovement 1, Movement_1A75E5 + waitmovement 0 + release + end + +EventScript_16A37B:: @ 816A37B + msgbox gUnknown_8190627 + applymovement 1, Movement_1A75E5 + waitmovement 0 + release + end + +PewterCity_Museum_1F_EventScript_16A38F:: @ 816A38F + lockall + setvar VAR_0x4001, 0 + applymovement 255, Movement_1A75EB + waitmovement 0 + goto EventScript_16A3D1 + end + +PewterCity_Museum_1F_EventScript_16A3A5:: @ 816A3A5 + lockall + setvar VAR_0x4001, 1 + applymovement 255, Movement_1A75EB + waitmovement 0 + goto EventScript_16A3D1 + end + +PewterCity_Museum_1F_EventScript_16A3BB:: @ 816A3BB + lockall + setvar VAR_0x4001, 2 + applymovement 255, Movement_1A75EB + waitmovement 0 + goto EventScript_16A3D1 + end + +EventScript_16A3D1:: @ 816A3D1 + textcolor 0 + showmoneybox 0, 0, 0 + msgbox gUnknown_81904B5, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16A402 + msgbox gUnknown_81904F9 + closemessage + hidemoneybox + .byte 0 + .byte 0 + applymovement 255, Movement_16A48E + waitmovement 0 + releaseall + end + +EventScript_16A402:: @ 816A402 + checkmoney 50, 0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16A476 + closemessage + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16A455 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16A460 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_16A46B + playse SE_CASHIER + takemoney 50, 0 + updatemoneybox 0, 0, 0 + waitse + msgbox gUnknown_8190505 + setvar VAR_0x4061, 1 + hidemoneybox + .byte 0 + .byte 0 + releaseall + end + +EventScript_16A455:: @ 816A455 + applymovement 255, Movement_16A490 + waitmovement 0 + return + +EventScript_16A460:: @ 816A460 + applymovement 255, Movement_16A495 + waitmovement 0 + return + +EventScript_16A46B:: @ 816A46B + applymovement 255, Movement_16A499 + waitmovement 0 + return + +EventScript_16A476:: @ 816A476 + msgbox gUnknown_819051C + closemessage + hidemoneybox + .byte 0 + .byte 0 + applymovement 255, Movement_16A48E + waitmovement 0 + releaseall + end + +Movement_16A48E:: @ 816A48E + step_10 + step_end + +Movement_16A490:: @ 816A490 + step_13 + step_13 + step_1b + step_28 + step_end + +Movement_16A495:: @ 816A495 + step_13 + step_1b + step_28 + step_end + +Movement_16A499:: @ 816A499 + step_1b + step_28 + step_end + +PewterCity_Museum_1F_EventScript_16A49C:: @ 816A49C + msgbox gUnknown_81908CD, 2 + end + +PewterCity_Museum_1F_EventScript_16A4A5:: @ 816A4A5 + msgbox gUnknown_81906B4, 2 + end + +PewterCity_Museum_1F_EventScript_16A4AE:: @ 816A4AE + lock + faceplayer + checkflag FLAG_0x25E + goto_if_eq EventScript_16A4FF + msgbox gUnknown_8190717 + checkitemspace ITEM_OLD_AMBER, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16A4F5 + setflag FLAG_0x25E + removeobject 4 + additem ITEM_OLD_AMBER, 1 + giveitemfanfaremsg gUnknown_8190866, ITEM_OLD_AMBER, 1, BGM_FRLG_ME_KEYITEM + release + end + +EventScript_16A4F5:: @ 816A4F5 + msgbox gUnknown_81908AE + release + end + +EventScript_16A4FF:: @ 816A4FF + msgbox gUnknown_819088E + release + end + +PewterCity_Museum_1F_EventScript_16A509:: @ 816A509 + msgbox gUnknown_819090A, 2 + end + +PewterCity_Museum_1F_EventScript_16A512:: @ 816A512 + lockall + setvar VAR_0x8004, SPECIES_AERODACTYL + setvar VAR_0x8005, 10 + setvar VAR_0x8006, 3 + special sub_809D504 + msgbox gUnknown_8190945 + special sub_809D620 + releaseall + end + +PewterCity_Museum_1F_EventScript_16A532:: @ 816A532 + lockall + setvar VAR_0x8004, SPECIES_KABUTOPS + setvar VAR_0x8005, 10 + setvar VAR_0x8006, 3 + special sub_809D504 + msgbox gUnknown_8190975 + special sub_809D620 + releaseall + end diff --git a/data/maps/PewterCity_Museum_1F/text.inc b/data/maps/PewterCity_Museum_1F/text.inc new file mode 100644 index 000000000..0c784c4d2 --- /dev/null +++ b/data/maps/PewterCity_Museum_1F/text.inc @@ -0,0 +1,86 @@ +gUnknown_81904B5:: @ 81904B5 + .string "Yes, yes.\n" + .string "It's ¥50 for a child's ticket.\p" + .string "Would you like to come in?$" + +gUnknown_81904F9:: @ 81904F9 + .string "Come again!$" + +gUnknown_8190505:: @ 8190505 + .string "Right, ¥50!\n" + .string "Thank you!$" + +gUnknown_819051C:: @ 819051C + .string "You don't have enough money.$" + +gUnknown_8190539:: @ 8190539 + .string "Please enjoy yourself.$" + +gUnknown_8190550:: @ 8190550 + .string "You can't sneak in the back way!\n" + .string "Nice try, kid, but no.\p" + .string "Oh, whatever!\n" + .string "Do you know what AMBER is?$" + +gUnknown_81905B1:: @ 81905B1 + .string "AMBER contains the genetic matter\n" + .string "of ancient POKéMON.\p" + .string "There's a LAB somewhere trying to\n" + .string "resurrect POKéMON from AMBER.$" + +gUnknown_8190627:: @ 8190627 + .string "AMBER is actually sap, that gooey\n" + .string "stuff that oozes from trees.\p" + .string "The ancient sap fossilized over\n" + .string "time to become rock-hard AMBER.$" + +Text_1906A6:: @ 81906A6 + .string "あちらへ おまわりください$" + +gUnknown_81906B4:: @ 81906B4 + .string "I should be grateful for my long\n" + .string "life.\p" + .string "Never did I think I would get to\n" + .string "see the bones of a dragon!$" + +gUnknown_8190717:: @ 8190717 + .string "Ssh! Listen, I need to share a\n" + .string "secret with someone.\p" + .string "I think that this chunk of AMBER\n" + .string "contains POKéMON DNA!\p" + .string "It would be a shattering scientific\n" + .string "breakthrough if POKéMON could be\l" + .string "resurrected from it.\p" + .string "But, my colleagues just ignore\n" + .string "what I have to say.\p" + .string "So, I have a favor to ask!\p" + .string "I want you to get this examined at\n" + .string "a POKéMON LAB somewhere.$" + +gUnknown_8190866:: @ 8190866 + .string "{PLAYER} received the OLD AMBER\n" + .string "from the man.$" + +gUnknown_819088E:: @ 819088E + .string "Ssh!\n" + .string "Get the OLD AMBER checked!$" + +gUnknown_81908AE:: @ 81908AE + .string "You don't have space for this.$" + +gUnknown_81908CD:: @ 81908CD + .string "We have two fossils of rare,\n" + .string "prehistoric POKéMON on exhibit.$" + +gUnknown_819090A:: @ 819090A + .string "There is a beautiful piece of\n" + .string "AMBER in a clear gold color.$" + +gUnknown_8190945:: @ 8190945 + .string "AERODACTYL Fossil\n" + .string "A primitive and rare POKéMON.$" + +gUnknown_8190975:: @ 8190975 + .string "KABUTOPS Fossil\n" + .string "A primitive and rare POKéMON.$" + diff --git a/data/maps/PewterCity_Museum_2F/map.json b/data/maps/PewterCity_Museum_2F/map.json new file mode 100644 index 000000000..0fba1289f --- /dev/null +++ b/data/maps/PewterCity_Museum_2F/map.json @@ -0,0 +1,150 @@ +{ + "id": "MAP_PEWTER_CITY_MUSEUM_2F", + "name": "PewterCity_Museum_2F", + "layout": "LAYOUT_PEWTER_CITY_MUSEUM_2F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_2F_EventScript_16A565", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_2F_EventScript_16A553", + "flag": "0" + }, + { + "graphics_id": "33", + "x": 0, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_2F_EventScript_16A55C", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 15, + "y": 8, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_2F_EventScript_16A56E", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 16, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_Museum_2F_EventScript_16A577", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 11, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 3, + "y": 6, + "elevation": 0, + "script": "PewterCity_Museum_2F_EventScript_16A589" + }, + { + "type": "bg_event_type_0", + "x": 15, + "y": 5, + "elevation": 0, + "script": "PewterCity_Museum_2F_EventScript_16A580" + }, + { + "type": "bg_event_type_0", + "x": 14, + "y": 5, + "elevation": 0, + "script": "PewterCity_Museum_2F_EventScript_16A580" + }, + { + "type": "bg_event_type_0", + "x": 16, + "y": 5, + "elevation": 0, + "script": "PewterCity_Museum_2F_EventScript_16A580" + }, + { + "type": "bg_event_type_0", + "x": 14, + "y": 4, + "elevation": 0, + "script": "PewterCity_Museum_2F_EventScript_16A580" + }, + { + "type": "bg_event_type_0", + "x": 15, + "y": 4, + "elevation": 0, + "script": "PewterCity_Museum_2F_EventScript_16A580" + }, + { + "type": "bg_event_type_0", + "x": 16, + "y": 4, + "elevation": 0, + "script": "PewterCity_Museum_2F_EventScript_16A580" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 5, + "elevation": 0, + "script": "PewterCity_Museum_2F_EventScript_16A589" + } + ] +} diff --git a/data/maps/PewterCity_Museum_2F/scripts.inc b/data/maps/PewterCity_Museum_2F/scripts.inc new file mode 100644 index 000000000..0e57e2c70 --- /dev/null +++ b/data/maps/PewterCity_Museum_2F/scripts.inc @@ -0,0 +1,30 @@ +PewterCity_Museum_2F_MapScripts:: @ 816A552 + .byte 0 + +PewterCity_Museum_2F_EventScript_16A553:: @ 816A553 + msgbox gUnknown_8190B30, 2 + end + +PewterCity_Museum_2F_EventScript_16A55C:: @ 816A55C + msgbox gUnknown_8190B80, 2 + end + +PewterCity_Museum_2F_EventScript_16A565:: @ 816A565 + msgbox gUnknown_8190BF3, 2 + end + +PewterCity_Museum_2F_EventScript_16A56E:: @ 816A56E + msgbox gUnknown_8190C1E, 2 + end + +PewterCity_Museum_2F_EventScript_16A577:: @ 816A577 + msgbox gUnknown_8190C60, 2 + end + +PewterCity_Museum_2F_EventScript_16A580:: @ 816A580 + msgbox gUnknown_8190C81, 3 + end + +PewterCity_Museum_2F_EventScript_16A589:: @ 816A589 + msgbox gUnknown_8190C8F, 3 + end diff --git a/data/maps/PewterCity_Museum_2F/text.inc b/data/maps/PewterCity_Museum_2F/text.inc new file mode 100644 index 000000000..b1767c681 --- /dev/null +++ b/data/maps/PewterCity_Museum_2F/text.inc @@ -0,0 +1,54 @@ +Text_1909A3:: @ 81909A3 + .string "The secrets of space…\n" + .string "The mysteries of earth…\p" + .string "There are so many things about\n" + .string "which we know so little.\p" + .string "But that should spur us to study\n" + .string "harder, not toss in the towel.\p" + .string "The only thing you should toss…\p" + .string "Well, how about SEISMIC TOSS?\n" + .string "Should I teach that to a POKéMON?$" + +Text_190AA9:: @ 8190AA9 + .string "Is that so?\n" + .string "I'm sure you'll be back for it.$" + +Text_190AD5:: @ 8190AD5 + .string "Which POKéMON wants to learn\n" + .string "SEISMIC TOSS?$" + +Text_190B00:: @ 8190B00 + .string "I hope you won't toss in the towel.\n" + .string "Keep it up.$" + +gUnknown_8190B30:: @ 8190B30 + .string "MOON STONE, huh?\p" + .string "What's so special about it?\n" + .string "Looks like an ordinary rock to me.$" + +gUnknown_8190B80:: @ 8190B80 + .string "July 20, 1969!\p" + .string "Humankind first set foot on the\n" + .string "moon that day.\p" + .string "I bought a color TV just so I\n" + .string "could watch that news.$" + +gUnknown_8190BF3:: @ 8190BF3 + .string "This month, we're running a space\n" + .string "exhibit.$" + +gUnknown_8190C1E:: @ 8190C1E + .string "I want a PIKACHU!\n" + .string "It's so cute!\p" + .string "I asked my daddy to catch me one!$" + +gUnknown_8190C60:: @ 8190C60 + .string "Yeah, a PIKACHU soon, I promise!$" + +gUnknown_8190C81:: @ 8190C81 + .string "Space Shuttle$" + +gUnknown_8190C8F:: @ 8190C8F + .string "A meteorite that fell on MT. MOON.\n" + .string "It is thought to be a MOON STONE.$" + diff --git a/data/maps/PewterCity_PokemonCenter_1F/map.json b/data/maps/PewterCity_PokemonCenter_1F/map.json new file mode 100644 index 000000000..efff5db0c --- /dev/null +++ b/data/maps/PewterCity_PokemonCenter_1F/map.json @@ -0,0 +1,140 @@ +{ + "id": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", + "name": "PewterCity_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "115", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_1F_EventScript_16A781", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_1F_EventScript_16A778", + "flag": "0" + }, + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_1F_EventScript_16A76F", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_1F_EventScript_16A798", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 13, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_1F_EventScript_1BEE16", + "flag": "0" + }, + { + "graphics_id": "51", + "x": 10, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_1F_EventScript_16A7A1", + "flag": "0" + }, + { + "graphics_id": "51", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_1F_EventScript_16A7AC", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 5 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 5 + }, + { + "x": 8, + "y": 8, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": 5 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_PokemonCenter_1F/scripts.inc b/data/maps/PewterCity_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..525eef027 --- /dev/null +++ b/data/maps/PewterCity_PokemonCenter_1F/scripts.inc @@ -0,0 +1,45 @@ +PewterCity_PokemonCenter_1F_MapScripts:: @ 816A760 + map_script 3, PewterCity_PokemonCenter_1F_MapScript1_16A76B + map_script 5, PewterCity_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +PewterCity_PokemonCenter_1F_MapScript1_16A76B:: @ 816A76B + setrespawn SPAWN_PEWTER_CITY + end + +PewterCity_PokemonCenter_1F_EventScript_16A76F:: @ 816A76F + lock + faceplayer + call EventScript_1A6578 + release + end + +PewterCity_PokemonCenter_1F_EventScript_16A778:: @ 816A778 + msgbox gUnknown_81916A9, 2 + end + +PewterCity_PokemonCenter_1F_EventScript_16A781:: @ 816A781 + lock + faceplayer + fadeoutbgm 0 + playbgm BGM_FRLG_JIGGLYPUFF, 0 + message Text_1916EA + waitmessage + delay 455 + playbgm BGM_FRLG_POKEMON_CENTER, 1 + release + end + +PewterCity_PokemonCenter_1F_EventScript_16A798:: @ 816A798 + msgbox gUnknown_8191701, 2 + end + +PewterCity_PokemonCenter_1F_EventScript_16A7A1:: @ 816A7A1 + lock + msgbox gUnknown_8191743 + release + end + +PewterCity_PokemonCenter_1F_EventScript_16A7AC:: @ 816A7AC + msgbox gUnknown_8191780, 2 + end diff --git a/data/maps/PewterCity_PokemonCenter_1F/text.inc b/data/maps/PewterCity_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..f297bfa51 --- /dev/null +++ b/data/maps/PewterCity_PokemonCenter_1F/text.inc @@ -0,0 +1,27 @@ +gUnknown_81916A9:: @ 81916A9 + .string "What!?\p" + .string "TEAM ROCKET is at MT. MOON?\n" + .string "Huh?\p" + .string "I'm on the phone!\n" + .string "Scram!$" + +Text_1916EA:: @ 81916EA + .string "JIGGLYPUFF: Puu pupuu!$" + +gUnknown_8191701:: @ 8191701 + .string "Yawn!\p" + .string "When JIGGLYPUFF sings, POKéMON get\n" + .string "drowsy…\p" + .string "…Me, too…\n" + .string "Snore…$" + +gUnknown_8191743:: @ 8191743 + .string "I really want a PIKACHU, so I'm\n" + .string "trading my CLEFAIRY for one.$" + +gUnknown_8191780:: @ 8191780 + .string "I'm trading POKéMON with that kid\n" + .string "there.\p" + .string "I had two PIKACHU, so I figured\n" + .string "I might as well trade one.$" + diff --git a/data/maps/PewterCity_PokemonCenter_2F/map.json b/data/maps/PewterCity_PokemonCenter_2F/map.json new file mode 100644 index 000000000..f50a1608c --- /dev/null +++ b/data/maps/PewterCity_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_PEWTER_CITY_POKEMON_CENTER_2F", + "name": "PewterCity_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PewterCity_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_PokemonCenter_2F/scripts.inc b/data/maps/PewterCity_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..6fce8dda2 --- /dev/null +++ b/data/maps/PewterCity_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +PewterCity_PokemonCenter_2F_MapScripts:: @ 816A7B5 + map_script 2, PewterCity_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, PewterCity_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, PewterCity_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, PewterCity_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +PewterCity_PokemonCenter_2F_EventScript_16A7CA:: @ 816A7CA + call EventScript_1BB4A3 + end + +EventScript_16A7D0:: @ 816A7D0 + call EventScript_1BB6AB + end + +EventScript_16A7D6:: @ 816A7D6 + call EventScript_1BB7DE + end diff --git a/data/maps/PokemonLeague_AgathasRoom/map.json b/data/maps/PokemonLeague_AgathasRoom/map.json new file mode 100644 index 000000000..84f663e66 --- /dev/null +++ b/data/maps/PokemonLeague_AgathasRoom/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", + "name": "PokemonLeague_AgathasRoom", + "layout": "LAYOUT_POKEMON_LEAGUE_AGATHAS_ROOM", + "music": "BGM_FRLG_POKEMON_TOWER", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_6", + "connections": null, + "object_events": [ + { + "graphics_id": "75", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonLeague_AgathasRoom_EventScript_162877", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 12, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 2, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_LANCES_ROOM", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_AgathasRoom/scripts.inc b/data/maps/PokemonLeague_AgathasRoom/scripts.inc new file mode 100644 index 000000000..2a46b544d --- /dev/null +++ b/data/maps/PokemonLeague_AgathasRoom/scripts.inc @@ -0,0 +1,106 @@ +PokemonLeague_AgathasRoom_MapScripts:: @ 8162810 + map_script 5, PokemonLeague_AgathasRoom_MapScript1_162825 + map_script 1, PokemonLeague_AgathasRoom_MapScript2_162830 + map_script 4, PokemonLeague_AgathasRoom_MapScript3_162851 + map_script 2, PokemonLeague_AgathasRoom_MapScript4_162860 + .byte 0 + +PokemonLeague_AgathasRoom_MapScript1_162825:: @ 8162825 + setvar VAR_0x8004, 2 + call EventScript_1A75D5 + end + +PokemonLeague_AgathasRoom_MapScript2_162830:: @ 8162830 + checkflag FLAG_0x4BA + call_if 1, EventScript_16284B + compare_var_to_value VAR_0x4068, 3 + call_if 1, EventScript_162845 + end + +EventScript_162845:: @ 8162845 + call EventScript_1A759C + return + +EventScript_16284B:: @ 816284B + call EventScript_1A7538 + return + +PokemonLeague_AgathasRoom_MapScript3_162851:: @ 8162851 + map_script_2 VAR_0x4001, 0, EventScript_16285B + .2byte 0 + +EventScript_16285B:: @ 816285B + turnobject 255, 2 + end + +PokemonLeague_AgathasRoom_MapScript4_162860:: @ 8162860 + map_script_2 VAR_0x4068, 2, EventScript_16286A + .2byte 0 + +EventScript_16286A:: @ 816286A + lockall + call EventScript_1A751F + setvar VAR_0x4068, 3 + releaseall + end + +PokemonLeague_AgathasRoom_EventScript_162877:: @ 8162877 + lock + faceplayer + setvar VAR_0x8004, 11 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + checkflag FLAG_0x4BA + goto_if_eq EventScript_162911 + setvar VAR_0x8004, 11 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + setvar VAR_0x8004, 11 + setvar VAR_0x8005, 4 + special SetFlavorTextFlagFromSpecialVars + setvar VAR_0x8004, 0 + setvar VAR_0x8005, 4 + special SetFlavorTextFlagFromSpecialVars + checkflag FLAG_0x82C + call_if 0, EventScript_1628E9 + checkflag FLAG_0x82C + call_if 1, EventScript_1628F2 + setflag FLAG_0x003 + setflag FLAG_0x005 + checkflag FLAG_0x844 + call_if 0, EventScript_1628FB + checkflag FLAG_0x844 + call_if 1, EventScript_162906 + clearflag FLAG_0x005 + goto EventScript_16291B + +EventScript_1628E8:: @ 81628E8 + end + +EventScript_1628E9:: @ 81628E9 + msgbox gUnknown_817844D + return + +EventScript_1628F2:: @ 81628F2 + msgbox gUnknown_817858D + return + +EventScript_1628FB:: @ 81628FB + trainerbattle 3, 412, 0, Text_1786D7 + return + +EventScript_162906:: @ 8162906 + trainerbattle 3, 737, 0, Text_1786D7 + return + +EventScript_162911:: @ 8162911 + msgbox gUnknown_8178700 + release + end + +EventScript_16291B:: @ 816291B + setflag FLAG_0x4BA + call EventScript_1A7506 + msgbox gUnknown_8178700 + release + end diff --git a/data/maps/PokemonLeague_AgathasRoom/text.inc b/data/maps/PokemonLeague_AgathasRoom/text.inc new file mode 100644 index 000000000..24c44d812 --- /dev/null +++ b/data/maps/PokemonLeague_AgathasRoom/text.inc @@ -0,0 +1,41 @@ +gUnknown_817844D:: @ 817844D + .string "I am AGATHA of the ELITE FOUR.\p" + .string "I hear OAK's taken a lot of\n" + .string "interest in you, child.\p" + .string "That old duff was once tough and\n" + .string "handsome.\p" + .string "But that was decades ago.\n" + .string "He's a shadow of his former self.\p" + .string "Now he just wants to fiddle with\n" + .string "his POKéDEX.\p" + .string "He's wrong.\n" + .string "POKéMON are for battling!\p" + .string "{PLAYER}! I'll show you how a real\n" + .string "TRAINER battles!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +gUnknown_817858D:: @ 817858D + .string "I am AGATHA of the ELITE FOUR.\p" + .string "You're the child that OAK's taken\n" + .string "under his wing, aren't you?\p" + .string "That old duff was once tough and\n" + .string "handsome.\p" + .string "But that was decades ago.\n" + .string "He's a shadow of his former self.\p" + .string "Now he just wants to fiddle with\n" + .string "his POKéDEX.\p" + .string "He's wrong.\n" + .string "POKéMON are for battling!\p" + .string "{PLAYER}! I'll show you how a real\n" + .string "TRAINER battles!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +Text_1786D7:: @ 81786D7 + .string "Oh, my!\n" + .string "You're something special, child!$" + +gUnknown_8178700:: @ 8178700 + .string "You win!\p" + .string "I see what the old duff sees in\n" + .string "you now.\p" + .string "I have nothing else to say.\n" + .string "Run along now, child!$" + diff --git a/data/maps/PokemonLeague_BrunosRoom/map.json b/data/maps/PokemonLeague_BrunosRoom/map.json new file mode 100644 index 000000000..bb94a0bbe --- /dev/null +++ b/data/maps/PokemonLeague_BrunosRoom/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", + "name": "PokemonLeague_BrunosRoom", + "layout": "LAYOUT_POKEMON_LEAGUE_BRUNOS_ROOM", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_5", + "connections": null, + "object_events": [ + { + "graphics_id": "79", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonLeague_BrunosRoom_EventScript_1626EC", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 12, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 2, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_BrunosRoom/scripts.inc b/data/maps/PokemonLeague_BrunosRoom/scripts.inc new file mode 100644 index 000000000..6cc4a23a4 --- /dev/null +++ b/data/maps/PokemonLeague_BrunosRoom/scripts.inc @@ -0,0 +1,136 @@ +PokemonLeague_BrunosRoom_MapScripts:: @ 8162685 + map_script 5, PokemonLeague_BrunosRoom_MapScript1_16269A + map_script 1, PokemonLeague_BrunosRoom_MapScript2_1626A5 + map_script 4, PokemonLeague_BrunosRoom_MapScript3_1626C6 + map_script 2, PokemonLeague_BrunosRoom_MapScript4_1626D5 + .byte 0 + +PokemonLeague_BrunosRoom_MapScript1_16269A:: @ 816269A + setvar VAR_0x8004, 1 + call EventScript_1A75D5 + end + +PokemonLeague_BrunosRoom_MapScript2_1626A5:: @ 81626A5 + checkflag FLAG_0x4B9 + call_if 1, EventScript_1626C0 + compare_var_to_value VAR_0x4068, 2 + call_if 1, EventScript_1626BA + end + +EventScript_1626BA:: @ 81626BA + call EventScript_1A759C + return + +EventScript_1626C0:: @ 81626C0 + call EventScript_1A7538 + return + +PokemonLeague_BrunosRoom_MapScript3_1626C6:: @ 81626C6 + map_script_2 VAR_0x4001, 0, EventScript_1626D0 + .2byte 0 + +EventScript_1626D0:: @ 81626D0 + turnobject 255, 2 + end + +PokemonLeague_BrunosRoom_MapScript4_1626D5:: @ 81626D5 + map_script_2 VAR_0x4068, 1, EventScript_1626DF + .2byte 0 + +EventScript_1626DF:: @ 81626DF + lockall + call EventScript_1A751F + setvar VAR_0x4068, 2 + releaseall + end + +PokemonLeague_BrunosRoom_EventScript_1626EC:: @ 81626EC + lock + faceplayer + setvar VAR_0x8004, 10 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + checkflag FLAG_0x4B9 + goto_if_eq EventScript_162779 + setvar VAR_0x8004, 10 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + setvar VAR_0x8004, 10 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + checkflag FLAG_0x82C + call_if 0, EventScript_162751 + checkflag FLAG_0x82C + call_if 1, EventScript_16275A + setflag FLAG_0x003 + setflag FLAG_0x005 + checkflag FLAG_0x844 + call_if 0, EventScript_162763 + checkflag FLAG_0x844 + call_if 1, EventScript_16276E + clearflag FLAG_0x005 + goto EventScript_1627B0 + +EventScript_162750:: @ 8162750 + end + +EventScript_162751:: @ 8162751 + msgbox gUnknown_817820F + return + +EventScript_16275A:: @ 816275A + msgbox gUnknown_817830C + return + +EventScript_162763:: @ 8162763 + trainerbattle 3, 411, 0, Text_178409 + return + +EventScript_16276E:: @ 816276E + trainerbattle 3, 736, 0, Text_178409 + return + +EventScript_162779:: @ 8162779 + msgbox gUnknown_8178420 + closemessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_1627FA + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_1627EF + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_162805 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_162805 + release + end + +EventScript_1627B0:: @ 81627B0 + setflag FLAG_0x4B9 + call EventScript_1A7506 + msgbox gUnknown_8178420 + closemessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_1627FA + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_1627EF + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_162805 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_162805 + release + end + +EventScript_1627EF:: @ 81627EF + applymovement 1, Movement_1A75E7 + waitmovement 0 + return + +EventScript_1627FA:: @ 81627FA + applymovement 1, Movement_1A75EB + waitmovement 0 + return + +EventScript_162805:: @ 8162805 + applymovement 1, Movement_1A75ED + waitmovement 0 + return diff --git a/data/maps/PokemonLeague_BrunosRoom/text.inc b/data/maps/PokemonLeague_BrunosRoom/text.inc new file mode 100644 index 000000000..516da0437 --- /dev/null +++ b/data/maps/PokemonLeague_BrunosRoom/text.inc @@ -0,0 +1,34 @@ +gUnknown_817820F:: @ 817820F + .string "I am BRUNO of the ELITE FOUR!\p" + .string "Through rigorous training, people\n" + .string "and POKéMON can become stronger\l" + .string "without limit.\p" + .string "I've lived and trained with my\n" + .string "fighting POKéMON!\l" + .string "And that will never change!\p" + .string "{PLAYER}!\p" + .string "We will grind you down with our\n" + .string "superior power!\p" + .string "Hoo hah!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +gUnknown_817830C:: @ 817830C + .string "I am BRUNO of the ELITE FOUR!\p" + .string "Through rigorous training, people\n" + .string "and POKéMON can become stronger\l" + .string "without limit.\p" + .string "I've lived and trained with my\n" + .string "fighting POKéMON!\l" + .string "And that will never change!\p" + .string "{PLAYER}!\p" + .string "We will grind you down with our\n" + .string "superior power!\p" + .string "Hoo hah!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +Text_178409:: @ 8178409 + .string "Why?\n" + .string "How could I lose?$" + +gUnknown_8178420:: @ 8178420 + .string "My job is done.\n" + .string "Go face your next challenge.$" + diff --git a/data/maps/PokemonLeague_ChampionsRoom/map.json b/data/maps/PokemonLeague_ChampionsRoom/map.json new file mode 100644 index 000000000..cf1c5bfa2 --- /dev/null +++ b/data/maps/PokemonLeague_ChampionsRoom/map.json @@ -0,0 +1,61 @@ +{ + "id": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "name": "PokemonLeague_ChampionsRoom", + "layout": "LAYOUT_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "music": "BGM_FRLG_INDIGO_PLATEAU", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "72", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "71", + "x": 6, + "y": 15, + "elevation": 0, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "90" + } + ], + "warp_events": [ + { + "x": 6, + "y": 19, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_LANCES_ROOM", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 2, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_HALL_OF_FAME", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc new file mode 100644 index 000000000..b2b8bc46c --- /dev/null +++ b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc @@ -0,0 +1,247 @@ +PokemonLeague_ChampionsRoom_MapScripts:: @ 8162AE2 + map_script 4, PokemonLeague_ChampionsRoom_MapScript1_162B5D + map_script 5, PokemonLeague_ChampionsRoom_MapScript2_162AF2 + map_script 2, PokemonLeague_ChampionsRoom_MapScript3_162B6C + .byte 0 + +PokemonLeague_ChampionsRoom_MapScript2_162AF2:: @ 8162AF2 + setvar VAR_0x8004, 4 + call EventScript_1A75D5 + compare_var_to_value VAR_STARTER_MON, 2 + call_if 1, EventScript_162B1E + compare_var_to_value VAR_STARTER_MON, 1 + call_if 1, EventScript_162B31 + compare_var_to_value VAR_STARTER_MON, 0 + call_if 1, EventScript_162B44 + end + +EventScript_162B1E:: @ 8162B1E + checktrainerflag FLAG_0x1B6 + goto_if_eq EventScript_162B57 + checktrainerflag FLAG_0x2E3 + goto_if_eq EventScript_162B57 + return + +EventScript_162B31:: @ 8162B31 + checktrainerflag FLAG_0x1B7 + goto_if_eq EventScript_162B57 + checktrainerflag FLAG_0x2E4 + goto_if_eq EventScript_162B57 + return + +EventScript_162B44:: @ 8162B44 + checktrainerflag FLAG_0x1B8 + goto_if_eq EventScript_162B57 + checktrainerflag FLAG_0x2E5 + goto_if_eq EventScript_162B57 + return + +EventScript_162B57:: @ 8162B57 + setvar VAR_0x4001, 1 + return + +PokemonLeague_ChampionsRoom_MapScript1_162B5D:: @ 8162B5D + map_script_2 VAR_0x4001, 0, EventScript_162B67 + .2byte 0 + +EventScript_162B67:: @ 8162B67 + turnobject 255, 2 + end + +PokemonLeague_ChampionsRoom_MapScript3_162B6C:: @ 8162B6C + map_script_2 VAR_0x4001, 0, EventScript_162B76 + .2byte 0 + +EventScript_162B76:: @ 8162B76 + lockall + textcolor 0 + setflag FLAG_0x002 + applymovement 255, Movement_162D07 + waitmovement 0 + delay 20 + checkflag FLAG_0x82C + call_if 0, EventScript_162CB3 + checkflag FLAG_0x82C + call_if 1, EventScript_162CBC + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_162C68 + setflag FLAG_0x003 + setflag FLAG_0x005 + savebgm BGM_FRLG_KACHI_LEADER + checkflag FLAG_0x844 + call_if 0, EventScript_162C6F + checkflag FLAG_0x844 + call_if 1, EventScript_162C91 + setflag FLAG_0x004 + clearflag FLAG_0x005 + setflag FLAG_0x4BC + setflag FLAG_0x004 + msgbox gUnknown_8178F2F + playbgm BGM_FRLG_HALL_OF_FAME_PALLET_TOWN, 0 + addobject 2 + msgbox gUnknown_8178FC6 + closemessage + applymovement 255, Movement_162D1F + applymovement 1, Movement_162D41 + applymovement 2, Movement_162D2A + waitmovement 0 + delay 25 + specialvar VAR_RESULT, ScrSpecial_GetStarter + getspeciesname 0, VAR_RESULT + msgbox gUnknown_8178FCF + applymovement 2, Movement_1A75EB + applymovement 1, Movement_1A75E7 + waitmovement 0 + msgbox gUnknown_817908F + closemessage + applymovement 2, Movement_1A75ED + waitmovement 0 + delay 20 + msgbox gUnknown_81791A3 + closemessage + delay 13 + applymovement 2, Movement_162D37 + applymovement 255, Movement_162D12 + waitmovement 0 + setvar VAR_0x4001, 1 + warp MAP_POKEMON_LEAGUE_HALL_OF_FAME, 255, 5, 12 + waitstate + releaseall + end + +EventScript_162C68:: @ 8162C68 + call EventScript_162B57 + releaseall + end + +EventScript_162C6F:: @ 8162C6F + compare_var_to_value VAR_STARTER_MON, 2 + call_if 1, EventScript_162CC5 + compare_var_to_value VAR_STARTER_MON, 1 + call_if 1, EventScript_162CD0 + compare_var_to_value VAR_STARTER_MON, 0 + call_if 1, EventScript_162CDB + return + +EventScript_162C91:: @ 8162C91 + compare_var_to_value VAR_STARTER_MON, 2 + call_if 1, EventScript_162CE6 + compare_var_to_value VAR_STARTER_MON, 1 + call_if 1, EventScript_162CF1 + compare_var_to_value VAR_STARTER_MON, 0 + call_if 1, EventScript_162CFC + return + +EventScript_162CB3:: @ 8162CB3 + msgbox gUnknown_8178B6C + return + +EventScript_162CBC:: @ 8162CBC + msgbox gUnknown_8178CD4 + return + +EventScript_162CC5:: @ 8162CC5 + trainerbattle 3, 438, 0, Text_178E3F + return + +EventScript_162CD0:: @ 8162CD0 + trainerbattle 3, 439, 0, Text_178E3F + return + +EventScript_162CDB:: @ 8162CDB + trainerbattle 3, 440, 0, Text_178E3F + return + +EventScript_162CE6:: @ 8162CE6 + trainerbattle 3, 739, 0, Text_178E3F + return + +EventScript_162CF1:: @ 8162CF1 + trainerbattle 3, 740, 0, Text_178E3F + return + +EventScript_162CFC:: @ 8162CFC + trainerbattle 3, 741, 0, Text_178E3F + return + +Movement_162D07:: @ 8162D07 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_162D12:: @ 8162D12 + step_1c + step_12 + step_11 + step_11 + step_11 + step_13 + step_11 + step_11 + step_11 + step_11 + step_1b + step_60 + step_end + +Movement_162D1F:: @ 8162D1F + step_1b + step_2d + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_2f + step_end + +Movement_162D2A:: @ 8162D2A + step_1c + step_1c + step_11 + step_11 + step_11 + step_11 + step_11 + step_12 + step_11 + step_11 + step_2d + step_1c + step_end + +Movement_162D37:: @ 8162D37 + step_11 + step_11 + step_13 + step_11 + step_11 + step_11 + step_11 + step_1b + step_60 + step_end + +Movement_162D41:: @ 8162D41 + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_2f + step_end diff --git a/data/maps/PokemonLeague_ChampionsRoom/text.inc b/data/maps/PokemonLeague_ChampionsRoom/text.inc new file mode 100644 index 000000000..a99db09db --- /dev/null +++ b/data/maps/PokemonLeague_ChampionsRoom/text.inc @@ -0,0 +1,101 @@ +gUnknown_8178B6C:: @ 8178B6C + .string "{RIVAL}: Hey, {PLAYER}!\p" + .string "I was looking forward to seeing\n" + .string "you, {PLAYER}.\p" + .string "My rival should be strong to keep\n" + .string "me sharp.\p" + .string "While working on my POKéDEX, I\n" + .string "looked all over for POKéMON.\p" + .string "Not only that, I assembled teams\n" + .string "that would beat any POKéMON type.\p" + .string "And now…\p" + .string "I'm the POKéMON LEAGUE CHAMPION!\p" + .string "{PLAYER}!\n" + .string "Do you know what that means?\p" + .string "I'll tell you.\p" + .string "I am the most powerful TRAINER in\n" + .string "the world!$" + +gUnknown_8178CD4:: @ 8178CD4 + .string "{RIVAL}: Hey, {PLAYER}!\p" + .string "You came back, {PLAYER}!\n" + .string "Hahah, that is so great!\p" + .string "My rival should be strong to keep\n" + .string "me sharp.\p" + .string "While working on my POKéDEX, I\n" + .string "looked all over for POKéMON.\p" + .string "Not only that, I assembled teams\n" + .string "that would beat any POKéMON type.\p" + .string "And now…\p" + .string "I'm the POKéMON LEAGUE CHAMPION!\p" + .string "{PLAYER}!\n" + .string "Do you know what that means?\p" + .string "I'll tell you.\p" + .string "I am the most powerful TRAINER in\n" + .string "the world!$" + +Text_178E3F:: @ 8178E3F + .string "NO!\n" + .string "That can't be!\l" + .string "You beat me at my best!\p" + .string "After all that work to become\n" + .string "the LEAGUE CHAMP?\p" + .string "My reign is over already?\n" + .string "It's not fair!$" + +Text_178EC3:: @ 8178EC3 + .string "はーはッ!\n" + .string "かった! かった! かった!\p" + .string "{PLAYER}に まける ような\n" + .string "おれさま では なーい!\p" + .string "ま! ポケモンの\n" + .string "てんさい {RIVAL}さま あいてに\l" + .string "ここまで よく がんばった!\p" + .string "ほめて つかわす!\n" + .string "はーッ! はーはッはッ!$" + +gUnknown_8178F2F:: @ 8178F2F + .string "Why?\n" + .string "Why did I lose?\p" + .string "I never made any mistakes raising\n" + .string "my POKéMON…\p" + .string "Darn it! You're the new POKéMON\n" + .string "LEAGUE CHAMPION!\p" + .string "Although I don't like to admit it…$" + +gUnknown_8178FC6:: @ 8178FC6 + .string "OAK: {PLAYER}!$" + +gUnknown_8178FCF:: @ 8178FCF + .string "OAK: So, you've won!\n" + .string "Sincerely, congratulations!\p" + .string "You're the new POKéMON LEAGUE\n" + .string "CHAMPION!\p" + .string "You've grown up so much since you\n" + .string "first left with {STR_VAR_1} to work\l" + .string "on the POKéDEX.\p" + .string "{PLAYER}, you have come of age!$" + +gUnknown_817908F:: @ 817908F + .string "OAK: {RIVAL}…\n" + .string "I'm disappointed in you.\p" + .string "I came when I heard you'd beaten\n" + .string "the ELITE FOUR.\p" + .string "But, when I got here, you had\n" + .string "already lost!\p" + .string "{RIVAL}, do you understand why\n" + .string "you lost?\p" + .string "You have forgotten to treat your\n" + .string "POKéMON with love and trust.\p" + .string "Without them, you will never\n" + .string "become a CHAMP again!$" + +gUnknown_81791A3:: @ 81791A3 + .string "OAK: {PLAYER}.\p" + .string "You understand that your victory\n" + .string "was not just your own doing.\p" + .string "The bond you share with your\n" + .string "POKéMON is marvelous.\p" + .string "{PLAYER}!\n" + .string "Come with me!$" + diff --git a/data/maps/PokemonLeague_HallOfFame/map.json b/data/maps/PokemonLeague_HallOfFame/map.json new file mode 100644 index 000000000..c2b3725fa --- /dev/null +++ b/data/maps/PokemonLeague_HallOfFame/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_POKEMON_LEAGUE_HALL_OF_FAME", + "name": "PokemonLeague_HallOfFame", + "layout": "LAYOUT_POKEMON_LEAGUE_HALL_OF_FAME", + "music": "BGM_FRLG_HALL_OF_FAME_PALLET_TOWN", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "71", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 12, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_HallOfFame/scripts.inc b/data/maps/PokemonLeague_HallOfFame/scripts.inc new file mode 100644 index 000000000..faadadcda --- /dev/null +++ b/data/maps/PokemonLeague_HallOfFame/scripts.inc @@ -0,0 +1,54 @@ +PokemonLeague_HallOfFame_MapScripts:: @ 8162D4C + map_script 2, PokemonLeague_HallOfFame_MapScript1_162D66 + map_script 4, PokemonLeague_HallOfFame_MapScript2_162D57 + .byte 0 + +PokemonLeague_HallOfFame_MapScript2_162D57:: @ 8162D57 + map_script_2 VAR_0x4001, 0, EventScript_162D61 + .2byte 0 + +EventScript_162D61:: @ 8162D61 + turnobject 255, 2 + end + +PokemonLeague_HallOfFame_MapScript1_162D66:: @ 8162D66 + map_script_2 VAR_0x4001, 0, EventScript_162D70 + .2byte 0 + +EventScript_162D70:: @ 8162D70 + lockall + textcolor 0 + applymovement 255, Movement_162DCD + waitmovement 0 + applymovement 1, Movement_1A75E7 + applymovement 255, Movement_1A75EB + waitmovement 0 + delay 18 + msgbox gUnknown_817922F + closemessage + applymovement 1, Movement_1A75E9 + applymovement 255, Movement_1A75E9 + waitmovement 0 + delay 20 + dofieldeffect 62 + waitfieldeffect 62 + delay 40 + setvar VAR_0x4001, 1 + call EventScript_1A651A + setrespawn SPAWN_PALLET_TOWN + fadescreenspeed 1, 24 + special sub_80CA2E4 + waitstate + releaseall + end + +Movement_162DCD:: @ 8162DCD + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end diff --git a/data/maps/PokemonLeague_HallOfFame/text.inc b/data/maps/PokemonLeague_HallOfFame/text.inc new file mode 100644 index 000000000..111f655cc --- /dev/null +++ b/data/maps/PokemonLeague_HallOfFame/text.inc @@ -0,0 +1,15 @@ +gUnknown_817922F:: @ 817922F + .string "OAK: Er-hem!\n" + .string "Congratulations, {PLAYER}!\p" + .string "This floor is the POKéMON HALL OF\n" + .string "FAME.\p" + .string "POKéMON LEAGUE CHAMPIONS are\n" + .string "honored for their exploits here.\p" + .string "Their POKéMON are also recorded in\n" + .string "the HALL OF FAME.\p" + .string "{PLAYER}!\p" + .string "You have worked hard to become\n" + .string "the new LEAGUE CHAMPION.\p" + .string "Congratulations, {PLAYER}, you and\n" + .string "your POKéMON are HALL OF FAMERS!$" + diff --git a/data/maps/PokemonLeague_LancesRoom/map.json b/data/maps/PokemonLeague_LancesRoom/map.json new file mode 100644 index 000000000..c844c29d9 --- /dev/null +++ b/data/maps/PokemonLeague_LancesRoom/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_POKEMON_LEAGUE_LANCES_ROOM", + "name": "PokemonLeague_LancesRoom", + "layout": "LAYOUT_POKEMON_LEAGUE_LANCES_ROOM", + "music": "BGM_FRLG_INDIGO_PLATEAU", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_7", + "connections": null, + "object_events": [ + { + "graphics_id": "74", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonLeague_LancesRoom_EventScript_162A14", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 23, + "y": 13, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 5, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_LancesRoom/scripts.inc b/data/maps/PokemonLeague_LancesRoom/scripts.inc new file mode 100644 index 000000000..2eaebe6f7 --- /dev/null +++ b/data/maps/PokemonLeague_LancesRoom/scripts.inc @@ -0,0 +1,180 @@ +PokemonLeague_LancesRoom_MapScripts:: @ 816292D + map_script 5, PokemonLeague_LancesRoom_MapScript1_162942 + map_script 1, PokemonLeague_LancesRoom_MapScript2_16294D + map_script 4, PokemonLeague_LancesRoom_MapScript3_16296E + map_script 2, PokemonLeague_LancesRoom_MapScript4_16297D + .byte 0 + +PokemonLeague_LancesRoom_MapScript1_162942:: @ 8162942 + setvar VAR_0x8004, 3 + call EventScript_1A75D5 + end + +PokemonLeague_LancesRoom_MapScript2_16294D:: @ 816294D + compare_var_to_value VAR_0x4068, 4 + call_if 1, EventScript_162962 + checkflag FLAG_0x4BB + call_if 1, EventScript_162968 + end + +EventScript_162962:: @ 8162962 + call EventScript_1629A8 + return + +EventScript_162968:: @ 8162968 + call EventScript_1A7589 + return + +PokemonLeague_LancesRoom_MapScript3_16296E:: @ 816296E + map_script_2 VAR_0x4001, 0, EventScript_162978 + .2byte 0 + +EventScript_162978:: @ 8162978 + turnobject 255, 2 + end + +PokemonLeague_LancesRoom_MapScript4_16297D:: @ 816297D + map_script_2 VAR_0x4068, 3, EventScript_162987 + .2byte 0 + +EventScript_162987:: @ 8162987 + lockall + applymovement 255, Movement_1629F1 + waitmovement 0 + setflag FLAG_0x002 + call EventScript_1629A8 + playse SE_FU_ZAKU2 + special DrawWholeMapView + waitse + setvar VAR_0x4068, 4 + releaseall + end + +EventScript_1629A8:: @ 81629A8 + setmetatile 5, 14, 669, 1 + setmetatile 6, 14, 670, 1 + setmetatile 7, 14, 671, 1 + setmetatile 5, 15, 677, 1 + setmetatile 6, 15, 678, 1 + setmetatile 7, 15, 679, 1 + setmetatile 6, 16, 785, 0 + setmetatile 7, 16, 785, 0 + return + +Movement_1629F1:: @ 81629F1 + step_11 + step_11 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +PokemonLeague_LancesRoom_EventScript_162A14:: @ 8162A14 + lock + faceplayer + setvar VAR_0x8004, 12 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + checkflag FLAG_0x4BB + goto_if_eq EventScript_162AA1 + setvar VAR_0x8004, 12 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + setvar VAR_0x8004, 12 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + checkflag FLAG_0x82C + call_if 0, EventScript_162A79 + checkflag FLAG_0x82C + call_if 1, EventScript_162A82 + setflag FLAG_0x003 + setflag FLAG_0x005 + checkflag FLAG_0x844 + call_if 0, EventScript_162A8B + checkflag FLAG_0x844 + call_if 1, EventScript_162A96 + clearflag FLAG_0x005 + goto EventScript_162AAB + +EventScript_162A78:: @ 8162A78 + end + +EventScript_162A79:: @ 8162A79 + msgbox gUnknown_8178764 + return + +EventScript_162A82:: @ 8162A82 + msgbox gUnknown_81788BD + return + +EventScript_162A8B:: @ 8162A8B + trainerbattle 3, 413, 0, Text_178A15 + return + +EventScript_162A96:: @ 8162A96 + trainerbattle 3, 738, 0, Text_178A15 + return + +EventScript_162AA1:: @ 8162AA1 + msgbox gUnknown_8178A52 + release + end + +EventScript_162AAB:: @ 8162AAB + setvar VAR_0x8004, 0 + special sub_8113530 + setflag FLAG_0x4BB + call EventScript_1A7563 + msgbox gUnknown_8178A52 + closemessage + release + end + +EventScript_162AC6:: @ 8162AC6 + applymovement 1, Movement_162ADC + waitmovement 0 + return + +EventScript_162AD1:: @ 8162AD1 + applymovement 1, Movement_162ADF + waitmovement 0 + return + +Movement_162ADC:: @ 8162ADC + step_12 + step_30 + step_end + +Movement_162ADF:: @ 8162ADF + step_13 + step_2f + step_end diff --git a/data/maps/PokemonLeague_LancesRoom/text.inc b/data/maps/PokemonLeague_LancesRoom/text.inc new file mode 100644 index 000000000..ea0b7df7e --- /dev/null +++ b/data/maps/PokemonLeague_LancesRoom/text.inc @@ -0,0 +1,52 @@ +gUnknown_8178764:: @ 8178764 + .string "Ah! I've heard about you,\n" + .string "{PLAYER}!\p" + .string "I lead the ELITE FOUR.\p" + .string "You can call me LANCE the dragon\n" + .string "TRAINER.\p" + .string "You know that dragons are\n" + .string "mythical POKéMON.\p" + .string "They're hard to catch and raise,\n" + .string "but their powers are superior.\p" + .string "They're virtually indestructible.\n" + .string "There's no being clever with them.\p" + .string "Well, are you ready to lose?\p" + .string "Your LEAGUE challenge ends with\n" + .string "me, {PLAYER}!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +gUnknown_81788BD:: @ 81788BD + .string "Ah!\n" + .string "So, you've returned, {PLAYER}!\p" + .string "I lead the ELITE FOUR.\p" + .string "You can call me LANCE the dragon\n" + .string "TRAINER.\p" + .string "You know that dragons are\n" + .string "mythical POKéMON.\p" + .string "They're hard to catch and raise,\n" + .string "but their powers are superior.\p" + .string "They're virtually indestructible.\n" + .string "There's no being clever with them.\p" + .string "Well, are you ready to lose?\p" + .string "Your LEAGUE challenge ends with\n" + .string "me, {PLAYER}!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +Text_178A15:: @ 8178A15 + .string "That's it!\p" + .string "I hate to admit it, but you are a\n" + .string "POKéMON master!$" + +gUnknown_8178A52:: @ 8178A52 + .string "I still can't believe my dragons\n" + .string "lost to you, {PLAYER}.\p" + .string "You are now the POKéMON LEAGUE\n" + .string "CHAMPION!\p" + .string "…Or, you would have been, but\n" + .string "you have one more challenge left.\p" + .string "There is one more TRAINER to face!\n" + .string "His name is…\p" + .string "{RIVAL}!\p" + .string "He beat the ELITE FOUR before\n" + .string "you.\p" + .string "He is the real POKéMON LEAGUE\n" + .string "CHAMPION.$" + diff --git a/data/maps/PokemonLeague_LoreleisRoom/map.json b/data/maps/PokemonLeague_LoreleisRoom/map.json new file mode 100644 index 000000000..33b250e35 --- /dev/null +++ b/data/maps/PokemonLeague_LoreleisRoom/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", + "name": "PokemonLeague_LoreleisRoom", + "layout": "LAYOUT_POKEMON_LEAGUE_LORELEIS_ROOM", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_4", + "connections": null, + "object_events": [ + { + "graphics_id": "77", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonLeague_LoreleisRoom_EventScript_1625DC", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 12, + "elevation": 0, + "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 2, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_LoreleisRoom/scripts.inc b/data/maps/PokemonLeague_LoreleisRoom/scripts.inc new file mode 100644 index 000000000..60e2b5086 --- /dev/null +++ b/data/maps/PokemonLeague_LoreleisRoom/scripts.inc @@ -0,0 +1,108 @@ +PokemonLeague_LoreleisRoom_MapScripts:: @ 816256C + map_script 5, PokemonLeague_LoreleisRoom_MapScript1_162586 + map_script 1, PokemonLeague_LoreleisRoom_MapScript2_162591 + map_script 3, PokemonLeague_LoreleisRoom_MapScript3_1625B2 + map_script 4, PokemonLeague_LoreleisRoom_MapScript4_1625B6 + map_script 2, PokemonLeague_LoreleisRoom_MapScript5_1625C5 + .byte 0 + +PokemonLeague_LoreleisRoom_MapScript1_162586:: @ 8162586 + setvar VAR_0x8004, 0 + call EventScript_1A75D5 + end + +PokemonLeague_LoreleisRoom_MapScript2_162591:: @ 8162591 + checkflag FLAG_0x4B8 + call_if 1, EventScript_1625AC + compare_var_to_value VAR_0x4068, 1 + call_if 1, EventScript_1625A6 + end + +EventScript_1625A6:: @ 81625A6 + call EventScript_1A759C + return + +EventScript_1625AC:: @ 81625AC + call EventScript_1A7538 + return + +PokemonLeague_LoreleisRoom_MapScript3_1625B2:: @ 81625B2 + setworldmapflag FLAG_WORLD_MAP_POKEMON_LEAGUE_LORELEIS_ROOM + end + +PokemonLeague_LoreleisRoom_MapScript4_1625B6:: @ 81625B6 + map_script_2 VAR_0x4001, 0, EventScript_1625C0 + .2byte 0 + +EventScript_1625C0:: @ 81625C0 + turnobject 255, 2 + end + +PokemonLeague_LoreleisRoom_MapScript5_1625C5:: @ 81625C5 + map_script_2 VAR_0x4068, 0, EventScript_1625CF + .2byte 0 + +EventScript_1625CF:: @ 81625CF + lockall + call EventScript_1A751F + setvar VAR_0x4068, 1 + releaseall + end + +PokemonLeague_LoreleisRoom_EventScript_1625DC:: @ 81625DC + lock + faceplayer + setvar VAR_0x8004, 9 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + checkflag FLAG_0x4B8 + goto_if_eq EventScript_162669 + setvar VAR_0x8004, 9 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + setvar VAR_0x8004, 9 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + checkflag FLAG_0x844 + call_if 0, EventScript_162641 + checkflag FLAG_0x844 + call_if 1, EventScript_16264A + setflag FLAG_0x003 + setflag FLAG_0x005 + checkflag FLAG_0x844 + call_if 0, EventScript_162653 + checkflag FLAG_0x844 + call_if 1, EventScript_16265E + clearflag FLAG_0x005 + goto EventScript_162673 + +EventScript_162640:: @ 8162640 + end + +EventScript_162641:: @ 8162641 + msgbox gUnknown_8177FA4 + return + +EventScript_16264A:: @ 816264A + msgbox gUnknown_8178089 + return + +EventScript_162653:: @ 8162653 + trainerbattle 3, 410, 0, Text_178191 + return + +EventScript_16265E:: @ 816265E + trainerbattle 3, 735, 0, Text_178191 + return + +EventScript_162669:: @ 8162669 + msgbox gUnknown_81781B0 + release + end + +EventScript_162673:: @ 8162673 + setflag FLAG_0x4B8 + call EventScript_1A7506 + msgbox gUnknown_81781B0 + release + end diff --git a/data/maps/PokemonLeague_LoreleisRoom/text.inc b/data/maps/PokemonLeague_LoreleisRoom/text.inc new file mode 100644 index 000000000..56beafa3d --- /dev/null +++ b/data/maps/PokemonLeague_LoreleisRoom/text.inc @@ -0,0 +1,33 @@ +gUnknown_8177FA4:: @ 8177FA4 + .string "Welcome to the POKéMON LEAGUE.\p" + .string "I am LORELEI of the ELITE FOUR.\p" + .string "No one can best me when it comes\n" + .string "to icy POKéMON.\p" + .string "Freezing moves are powerful.\p" + .string "Your POKéMON will be at my mercy\n" + .string "when they are frozen solid.\p" + .string "Hahaha!\n" + .string "Are you ready?{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +gUnknown_8178089:: @ 8178089 + .string "Welcome to the POKéMON LEAGUE.\p" + .string "I, LORELEI of the ELITE FOUR,\n" + .string "have returned!\p" + .string "You know how it goes.\n" + .string "No one can best me when it comes\l" + .string "to icy POKéMON.\p" + .string "Freezing moves are powerful.\p" + .string "Your POKéMON will be at my mercy\n" + .string "when they are frozen solid.\p" + .string "Hahaha!\n" + .string "Are you ready?{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +Text_178191:: @ 8178191 + .string "…Things shouldn't be this way!$" + +gUnknown_81781B0:: @ 81781B0 + .string "You're better than I thought.\n" + .string "Go on ahead.\p" + .string "You only got a taste of the\n" + .string "POKéMON LEAGUE's power.$" + diff --git a/data/maps/PokemonMansion_1F/map.json b/data/maps/PokemonMansion_1F/map.json new file mode 100644 index 000000000..fb42651aa --- /dev/null +++ b/data/maps/PokemonMansion_1F/map.json @@ -0,0 +1,173 @@ +{ + "id": "MAP_POKEMON_MANSION_1F", + "name": "PokemonMansion_1F", + "layout": "LAYOUT_POKEMON_MANSION_1F", + "music": "BGM_FRLG_POKEMON_MANSION", + "region_map_section": "MAPSEC_POKEMON_MANSION", + "requires_flash": false, + "weather": "WEATHER_CLOUDY", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 22, + "y": 24, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "PokemonMansion_1F_EventScript_162226", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 29, + "y": 32, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_1F_EventScript_1BE95D", + "flag": "415" + }, + { + "graphics_id": "92", + "x": 22, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_1F_EventScript_1BE96A", + "flag": "416" + }, + { + "graphics_id": "92", + "x": 27, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_1F_EventScript_1BEB65", + "flag": "458" + }, + { + "graphics_id": "18", + "x": 8, + "y": 8, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "PokemonMansion_1F_EventScript_16223D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 33, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 33, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 33, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 13, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": 2 + }, + { + "x": 25, + "y": 27, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_B1F", + "dest_warp_id": 0 + }, + { + "x": 34, + "y": 33, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 0 + }, + { + "x": 35, + "y": 34, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": 0 + }, + { + "x": 19, + "y": 22, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": 3 + }, + { + "x": 20, + "y": 22, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": 4 + }, + { + "x": 11, + "y": 13, + "elevation": 0, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 5, + "y": 5, + "elevation": 0, + "script": "PokemonMansion_1F_EventScript_162212" + }, + { + "type": "hidden_item", + "x": 2, + "y": 21, + "elevation": 0, + "item": "ITEM_MOON_STONE", + "flag": "31", + "unknown": 1 + } + ] +} diff --git a/data/maps/PokemonMansion_1F/scripts.inc b/data/maps/PokemonMansion_1F/scripts.inc new file mode 100644 index 000000000..3055cc30c --- /dev/null +++ b/data/maps/PokemonMansion_1F/scripts.inc @@ -0,0 +1,33 @@ +PokemonMansion_1F_MapScripts:: @ 81621F9 + map_script 1, PokemonMansion_1F_MapScript1_162204 + map_script 3, PokemonMansion_1F_MapScript2_16220E + .byte 0 + +PokemonMansion_1F_MapScript1_162204:: @ 8162204 + checkflag FLAG_0x26C + call_if 1, EventScript_1A7B7A + end + +PokemonMansion_1F_MapScript2_16220E:: @ 816220E + setworldmapflag FLAG_WORLD_MAP_POKEMON_MANSION_1F + end + +PokemonMansion_1F_EventScript_162212:: @ 8162212 + lockall + setvar VAR_0x8004, 0 + call EventScript_1A7AE2 + playse SE_FU_ZAKU2 + special DrawWholeMapView + waitse + releaseall + end + +PokemonMansion_1F_EventScript_162226:: @ 8162226 + trainerbattle 0, 335, 0, Text_177364, Text_177391 + msgbox gUnknown_8177397, 6 + end + +PokemonMansion_1F_EventScript_16223D:: @ 816223D + trainerbattle 0, 534, 0, Text_1773C6, Text_1773FD + msgbox gUnknown_8177418, 6 + end diff --git a/data/maps/PokemonMansion_1F/text.inc b/data/maps/PokemonMansion_1F/text.inc new file mode 100644 index 000000000..52eece07b --- /dev/null +++ b/data/maps/PokemonMansion_1F/text.inc @@ -0,0 +1,24 @@ +Text_177364:: @ 8177364 + .string "Who are you?\n" + .string "There shouldn't be anyone here.$" + +Text_177391:: @ 8177391 + .string "Ouch!$" + +gUnknown_8177397:: @ 8177397 + .string "A key? I don't know what you're\n" + .string "talking about.$" + +Text_1773C6:: @ 81773C6 + .string "W-w-waah! You startled me!\n" + .string "I thought you were a ghost.$" + +Text_1773FD:: @ 81773FD + .string "Tch!\n" + .string "I can't get any wins.$" + +gUnknown_8177418:: @ 8177418 + .string "I was exploring here by myself,\n" + .string "but I feel spooked.\p" + .string "I ought to go soon.$" + diff --git a/data/maps/PokemonMansion_2F/map.json b/data/maps/PokemonMansion_2F/map.json new file mode 100644 index 000000000..685e1dada --- /dev/null +++ b/data/maps/PokemonMansion_2F/map.json @@ -0,0 +1,130 @@ +{ + "id": "MAP_POKEMON_MANSION_2F", + "name": "PokemonMansion_2F", + "layout": "LAYOUT_POKEMON_MANSION_2F", + "music": "BGM_FRLG_POKEMON_MANSION", + "region_map_section": "MAPSEC_POKEMON_MANSION", + "requires_flash": false, + "weather": "WEATHER_CLOUDY", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "52", + "x": 5, + "y": 23, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "PokemonMansion_2F_EventScript_16228A", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 36, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_2F_EventScript_1BE977", + "flag": "417" + }, + { + "graphics_id": "92", + "x": 18, + "y": 23, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_2F_EventScript_1BEB72", + "flag": "459" + }, + { + "graphics_id": "92", + "x": 35, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_2F_EventScript_1BEB7F", + "flag": "460" + } + ], + "warp_events": [ + { + "x": 9, + "y": 3, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": 0 + }, + { + "x": 34, + "y": 22, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 14, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": 3 + }, + { + "x": 9, + "y": 14, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": 2 + }, + { + "x": 27, + "y": 17, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 2, + "y": 16, + "elevation": 0, + "script": "PokemonMansion_2F_EventScript_162264" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 31, + "elevation": 0, + "script": "PokemonMansion_2F_EventScript_162281" + }, + { + "type": "bg_event_type_0", + "x": 25, + "y": 4, + "elevation": 0, + "script": "PokemonMansion_2F_EventScript_162278" + } + ] +} diff --git a/data/maps/PokemonMansion_2F/scripts.inc b/data/maps/PokemonMansion_2F/scripts.inc new file mode 100644 index 000000000..275b7ac28 --- /dev/null +++ b/data/maps/PokemonMansion_2F/scripts.inc @@ -0,0 +1,31 @@ +PokemonMansion_2F_MapScripts:: @ 8162254 + map_script 1, PokemonMansion_2F_MapScript1_16225A + .byte 0 + +PokemonMansion_2F_MapScript1_16225A:: @ 816225A + checkflag FLAG_0x26C + call_if 1, EventScript_1A7D3E + end + +PokemonMansion_2F_EventScript_162264:: @ 8162264 + lockall + setvar VAR_0x8004, 1 + call EventScript_1A7AE2 + playse SE_FU_ZAKU2 + special DrawWholeMapView + waitse + releaseall + end + +PokemonMansion_2F_EventScript_162278:: @ 8162278 + msgbox gUnknown_817751F, 3 + end + +PokemonMansion_2F_EventScript_162281:: @ 8162281 + msgbox gUnknown_8177574, 3 + end + +PokemonMansion_2F_EventScript_16228A:: @ 816228A + trainerbattle 0, 216, 0, Text_177498, Text_1774CB + msgbox gUnknown_81774E3, 6 + end diff --git a/data/maps/PokemonMansion_2F/text.inc b/data/maps/PokemonMansion_2F/text.inc new file mode 100644 index 000000000..4428137de --- /dev/null +++ b/data/maps/PokemonMansion_2F/text.inc @@ -0,0 +1,33 @@ +Text_177460:: @ 8177460 + .string "A secret switch!\p" + .string "Press it?$" + +Text_17747B:: @ 817747B + .string "Who wouldn't?$" + +Text_177489:: @ 8177489 + .string "Not quite yet!$" + +Text_177498:: @ 8177498 + .string "I can't get out!\n" + .string "This old place is one big puzzle.$" + +Text_1774CB:: @ 81774CB + .string "Oh, no!\n" + .string "My bag of loot!$" + +gUnknown_81774E3:: @ 81774E3 + .string "The switches here open and close\n" + .string "alternating sets of doors.$" + +gUnknown_817751F:: @ 817751F + .string "Diary: July 5\n" + .string "Guyana, South America\p" + .string "A new POKéMON was discovered deep\n" + .string "in the jungle.$" + +gUnknown_8177574:: @ 8177574 + .string "Diary: July 10\n" + .string "We christened the newly discovered\l" + .string "POKéMON, MEW.$" + diff --git a/data/maps/PokemonMansion_3F/map.json b/data/maps/PokemonMansion_3F/map.json new file mode 100644 index 000000000..9372efde9 --- /dev/null +++ b/data/maps/PokemonMansion_3F/map.json @@ -0,0 +1,153 @@ +{ + "id": "MAP_POKEMON_MANSION_3F", + "name": "PokemonMansion_3F", + "layout": "LAYOUT_POKEMON_MANSION_3F", + "music": "BGM_FRLG_POKEMON_MANSION", + "region_map_section": "MAPSEC_POKEMON_MANSION", + "requires_flash": false, + "weather": "WEATHER_CLOUDY", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "52", + "x": 7, + "y": 13, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "PokemonMansion_3F_EventScript_1622CE", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 22, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "PokemonMansion_3F_EventScript_1622E5", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 9, + "y": 19, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_3F_EventScript_1BE984", + "flag": "418" + }, + { + "graphics_id": "92", + "x": 32, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_3F_EventScript_1BE991", + "flag": "419" + } + ], + "warp_events": [ + { + "x": 8, + "y": 3, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": 0 + }, + { + "x": 34, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 11, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": 3 + }, + { + "x": 18, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": 7 + }, + { + "x": 19, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": 8 + }, + { + "x": 23, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": 4 + }, + { + "x": 20, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": 8 + }, + { + "x": 24, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 8, + "y": 16, + "elevation": 0, + "script": "PokemonMansion_3F_EventScript_1622C5" + }, + { + "type": "bg_event_type_1", + "x": 12, + "y": 5, + "elevation": 0, + "script": "PokemonMansion_3F_EventScript_1622B1" + }, + { + "type": "hidden_item", + "x": 36, + "y": 13, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "32", + "unknown": 1 + } + ] +} diff --git a/data/maps/PokemonMansion_3F/scripts.inc b/data/maps/PokemonMansion_3F/scripts.inc new file mode 100644 index 000000000..5495e5964 --- /dev/null +++ b/data/maps/PokemonMansion_3F/scripts.inc @@ -0,0 +1,32 @@ +PokemonMansion_3F_MapScripts:: @ 81622A1 + map_script 1, PokemonMansion_3F_MapScript1_1622A7 + .byte 0 + +PokemonMansion_3F_MapScript1_1622A7:: @ 81622A7 + checkflag FLAG_0x26C + call_if 1, EventScript_1A7E72 + end + +PokemonMansion_3F_EventScript_1622B1:: @ 81622B1 + lockall + setvar VAR_0x8004, 2 + call EventScript_1A7AE2 + playse SE_FU_ZAKU2 + special DrawWholeMapView + waitse + releaseall + end + +PokemonMansion_3F_EventScript_1622C5:: @ 81622C5 + msgbox gUnknown_8177685, 3 + end + +PokemonMansion_3F_EventScript_1622CE:: @ 81622CE + trainerbattle 0, 218, 0, Text_1775E7, Text_177602 + msgbox gUnknown_8177608, 6 + end + +PokemonMansion_3F_EventScript_1622E5:: @ 81622E5 + trainerbattle 0, 346, 0, Text_177628, Text_177643 + msgbox gUnknown_8177657, 6 + end diff --git a/data/maps/PokemonMansion_3F/text.inc b/data/maps/PokemonMansion_3F/text.inc new file mode 100644 index 000000000..1c027784c --- /dev/null +++ b/data/maps/PokemonMansion_3F/text.inc @@ -0,0 +1,35 @@ +Text_1775B4:: @ 81775B4 + .string "ひみつの スイッチが ある!\p" + .string "おして みますか?$" + +Text_1775CD:: @ 81775CD + .string "おしてみよう! ‥ポチッとな$" + +Text_1775DC:: @ 81775DC + .string "ÈÒçè ÀÊúòŒ$" + +Text_1775E7:: @ 81775E7 + .string "This place is, like, huge!$" + +Text_177602:: @ 8177602 + .string "Ayah!$" + +gUnknown_8177608:: @ 8177608 + .string "I wonder where my partner went.$" + +Text_177628:: @ 8177628 + .string "My mentor once lived here.$" + +Text_177643:: @ 8177643 + .string "Whew!\n" + .string "Overwhelming!$" + +gUnknown_8177657:: @ 8177657 + .string "So, you're stuck?\n" + .string "Try jumping off over there!$" + +gUnknown_8177685:: @ 8177685 + .string "Diary: Feb. 6\n" + .string "MEW gave birth.\p" + .string "We named the newborn MEWTWO.$" + diff --git a/data/maps/PokemonMansion_B1F/map.json b/data/maps/PokemonMansion_B1F/map.json new file mode 100644 index 000000000..0eac3643d --- /dev/null +++ b/data/maps/PokemonMansion_B1F/map.json @@ -0,0 +1,137 @@ +{ + "id": "MAP_POKEMON_MANSION_B1F", + "name": "PokemonMansion_B1F", + "layout": "LAYOUT_POKEMON_MANSION_B1F", + "music": "BGM_FRLG_POKEMON_MANSION", + "region_map_section": "MAPSEC_POKEMON_MANSION", + "requires_flash": false, + "weather": "WEATHER_CLOUDY", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 6, + "y": 21, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_B1F_EventScript_1BE9B8", + "flag": "423" + }, + { + "graphics_id": "52", + "x": 20, + "y": 25, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "PokemonMansion_B1F_EventScript_162329", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 34, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 6, + "script": "PokemonMansion_B1F_EventScript_162340", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 23, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_B1F_EventScript_1BE99E", + "flag": "420" + }, + { + "graphics_id": "92", + "x": 2, + "y": 29, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_B1F_EventScript_1BE9AB", + "flag": "421" + }, + { + "graphics_id": "92", + "x": 5, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonMansion_B1F_EventScript_1BE9C5", + "flag": "424" + } + ], + "warp_events": [ + { + "x": 34, + "y": 29, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 21, + "y": 27, + "elevation": 0, + "script": "PokemonMansion_B1F_EventScript_162320" + }, + { + "type": "bg_event_type_1", + "x": 24, + "y": 29, + "elevation": 0, + "script": "PokemonMansion_B1F_EventScript_16230C" + }, + { + "type": "bg_event_type_1", + "x": 27, + "y": 5, + "elevation": 0, + "script": "PokemonMansion_B1F_EventScript_16230C" + }, + { + "type": "hidden_item", + "x": 35, + "y": 5, + "elevation": 3, + "item": "ITEM_ELIXIR", + "flag": "33", + "unknown": 1 + } + ] +} diff --git a/data/maps/PokemonMansion_B1F/scripts.inc b/data/maps/PokemonMansion_B1F/scripts.inc new file mode 100644 index 000000000..a09b2fa53 --- /dev/null +++ b/data/maps/PokemonMansion_B1F/scripts.inc @@ -0,0 +1,32 @@ +PokemonMansion_B1F_MapScripts:: @ 81622FC + map_script 1, PokemonMansion_B1F_MapScript1_162302 + .byte 0 + +PokemonMansion_B1F_MapScript1_162302:: @ 8162302 + checkflag FLAG_0x26C + call_if 1, EventScript_1A7F4C + end + +PokemonMansion_B1F_EventScript_16230C:: @ 816230C + lockall + setvar VAR_0x8004, 3 + call EventScript_1A7AE2 + playse SE_FU_ZAKU2 + special DrawWholeMapView + waitse + releaseall + end + +PokemonMansion_B1F_EventScript_162320:: @ 8162320 + msgbox gUnknown_8177798, 3 + end + +PokemonMansion_B1F_EventScript_162329:: @ 8162329 + trainerbattle 0, 219, 0, Text_1776C0, Text_1776D7 + msgbox gUnknown_81776DE, 6 + end + +PokemonMansion_B1F_EventScript_162340:: @ 8162340 + trainerbattle 0, 347, 0, Text_177720, Text_177757 + msgbox gUnknown_817776A, 6 + end diff --git a/data/maps/PokemonMansion_B1F/text.inc b/data/maps/PokemonMansion_B1F/text.inc new file mode 100644 index 000000000..b04ee2397 --- /dev/null +++ b/data/maps/PokemonMansion_B1F/text.inc @@ -0,0 +1,28 @@ +Text_1776C0:: @ 81776C0 + .string "Uh-oh…\n" + .string "Where am I now?$" + +Text_1776D7:: @ 81776D7 + .string "Awooh!$" + +gUnknown_81776DE:: @ 81776DE + .string "You can find stuff lying around.\n" + .string "The residents must've left them.$" + +Text_177720:: @ 8177720 + .string "This place is ideal for a lab.\n" + .string "Look at all this space.$" + +Text_177757:: @ 8177757 + .string "What was that for?$" + +gUnknown_817776A:: @ 817776A + .string "I like it here.\n" + .string "It's conducive to my studies.$" + +gUnknown_8177798:: @ 8177798 + .string "Diary: Sept. 1\n" + .string "MEWTWO is far too powerful.\p" + .string "We have failed to curb its vicious\n" + .string "tendencies…$" + diff --git a/data/maps/PokemonTower_1F/map.json b/data/maps/PokemonTower_1F/map.json new file mode 100644 index 000000000..ec5026d87 --- /dev/null +++ b/data/maps/PokemonTower_1F/map.json @@ -0,0 +1,114 @@ +{ + "id": "MAP_POKEMON_TOWER_1F", + "name": "PokemonTower_1F", + "layout": "LAYOUT_POKEMON_TOWER_1F", + "music": "BGM_FRLG_POKEMON_TOWER", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 5, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [ + { + "graphics_id": "48", + "x": 18, + "y": 13, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_1F_EventScript_16327C", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 18, + "y": 7, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_1F_EventScript_16323F", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 15, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_1F_EventScript_163248", + "flag": "0" + }, + { + "graphics_id": "31", + "x": 7, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_1F_EventScript_16325A", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 8, + "y": 12, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_1F_EventScript_163251", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 19, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 18, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 19, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 9, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_2F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_1F/scripts.inc b/data/maps/PokemonTower_1F/scripts.inc new file mode 100644 index 000000000..c86280b74 --- /dev/null +++ b/data/maps/PokemonTower_1F/scripts.inc @@ -0,0 +1,38 @@ +PokemonTower_1F_MapScripts:: @ 8163235 + map_script 3, PokemonTower_1F_MapScript1_16323B + .byte 0 + +PokemonTower_1F_MapScript1_16323B:: @ 816323B + setworldmapflag FLAG_WORLD_MAP_POKEMON_TOWER_1F + end + +PokemonTower_1F_EventScript_16323F:: @ 816323F + msgbox gUnknown_8179CAB, 2 + end + +PokemonTower_1F_EventScript_163248:: @ 8163248 + msgbox gUnknown_8179C8C, 2 + end + +PokemonTower_1F_EventScript_163251:: @ 8163251 + msgbox gUnknown_8179C41, 2 + end + +PokemonTower_1F_EventScript_16325A:: @ 816325A + lock + faceplayer + checkplayergender + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_163272 + msgbox gUnknown_8179BFC + release + end + +EventScript_163272:: @ 8163272 + msgbox gUnknown_8179BB8 + release + end + +PokemonTower_1F_EventScript_16327C:: @ 816327C + msgbox gUnknown_8179B7A, 2 + end diff --git a/data/maps/PokemonTower_1F/text.inc b/data/maps/PokemonTower_1F/text.inc new file mode 100644 index 000000000..33aca9fb7 --- /dev/null +++ b/data/maps/PokemonTower_1F/text.inc @@ -0,0 +1,29 @@ +gUnknown_8179B7A:: @ 8179B7A + .string "POKéMON TOWER was erected in the\n" + .string "memory of POKéMON that died.$" + +gUnknown_8179BB8:: @ 8179BB8 + .string "Did you come to pay respects?\p" + .string "Bless your POKéMON-loving heart,\n" + .string "son.$" + +gUnknown_8179BFC:: @ 8179BFC + .string "Did you come to pay respects?\p" + .string "Bless your POKéMON-loving heart,\n" + .string "girl.$" + +gUnknown_8179C41:: @ 8179C41 + .string "I came to pray for my dearly\n" + .string "departed CLEFAIRY.\p" + .string "Sniff!\n" + .string "I'm awash in tears…$" + +gUnknown_8179C8C:: @ 8179C8C + .string "My GROWLITHE…\n" + .string "Why did you die?$" + +gUnknown_8179CAB:: @ 8179CAB + .string "I am a CHANNELER.\p" + .string "There are spirits up to mischief.\n" + .string "I sense them high in the TOWER.$" + diff --git a/data/maps/PokemonTower_2F/map.json b/data/maps/PokemonTower_2F/map.json new file mode 100644 index 000000000..bcffe3fee --- /dev/null +++ b/data/maps/PokemonTower_2F/map.json @@ -0,0 +1,80 @@ +{ + "id": "MAP_POKEMON_TOWER_2F", + "name": "PokemonTower_2F", + "layout": "LAYOUT_POKEMON_TOWER_2F", + "music": "BGM_FRLG_POKEMON_TOWER", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 5, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [ + { + "graphics_id": "72", + "x": 16, + "y": 5, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "81" + }, + { + "graphics_id": "58", + "x": 3, + "y": 7, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_2F_EventScript_163286", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_3F", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_1F", + "dest_warp_id": 3 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 17, + "y": 5, + "elevation": 3, + "var": "VAR_0x405D", + "var_value": 0, + "script": "PokemonTower_2F_EventScript_16328F" + }, + { + "type": "trigger", + "x": 16, + "y": 6, + "elevation": 3, + "var": "VAR_0x405D", + "var_value": 0, + "script": "PokemonTower_2F_EventScript_16329B" + } + ], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_2F/scripts.inc b/data/maps/PokemonTower_2F/scripts.inc new file mode 100644 index 000000000..f4657bbfc --- /dev/null +++ b/data/maps/PokemonTower_2F/scripts.inc @@ -0,0 +1,108 @@ +PokemonTower_2F_MapScripts:: @ 8163285 + .byte 0 + +PokemonTower_2F_EventScript_163286:: @ 8163286 + msgbox gUnknown_8179EAE, 2 + end + +PokemonTower_2F_EventScript_16328F:: @ 816328F + lockall + setvar VAR_0x4001, 0 + goto EventScript_1632A7 + end + +PokemonTower_2F_EventScript_16329B:: @ 816329B + lockall + setvar VAR_0x4001, 1 + goto EventScript_1632A7 + end + +EventScript_1632A7:: @ 81632A7 + textcolor 0 + playbgm BGM_FRLG_RIVAL, 0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_163339 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16334B + applymovement 1, Movement_1A75DB + waitmovement 0 + applymovement 1, Movement_1A75DD + waitmovement 0 + msgbox gUnknown_8179CFF + setvar VAR_LAST_TALKED, 1 + compare_var_to_value VAR_STARTER_MON, 2 + call_if 1, EventScript_16335D + compare_var_to_value VAR_STARTER_MON, 1 + call_if 1, EventScript_163368 + compare_var_to_value VAR_STARTER_MON, 0 + call_if 1, EventScript_163373 + msgbox gUnknown_8179DD4 + closemessage + playbgm BGM_FRLG_RIVAL_POSTBATTLE, 0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16337E + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_163389 + playse SE_KAIDAN + delay 25 + fadedefaultbgm + removeobject 1 + setvar VAR_0x405D, 1 + releaseall + end + +EventScript_163339:: @ 8163339 + applymovement 1, Movement_1A75EB + applymovement 255, Movement_1A75E7 + waitmovement 0 + return + +EventScript_16334B:: @ 816334B + applymovement 1, Movement_1A75ED + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +EventScript_16335D:: @ 816335D + trainerbattle 3, 429, 0, Text_179D73 + return + +EventScript_163368:: @ 8163368 + trainerbattle 3, 430, 0, Text_179D73 + return + +EventScript_163373:: @ 8163373 + trainerbattle 3, 431, 0, Text_179D73 + return + +EventScript_16337E:: @ 816337E + applymovement 1, Movement_163394 + waitmovement 0 + return + +EventScript_163389:: @ 8163389 + applymovement 1, Movement_16339D + waitmovement 0 + return + +Movement_163394:: @ 8163394 + step_10 + step_13 + step_13 + step_10 + step_10 + step_10 + step_10 + step_30 + step_end + +Movement_16339D:: @ 816339D + step_13 + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_30 + step_end diff --git a/data/maps/PokemonTower_2F/text.inc b/data/maps/PokemonTower_2F/text.inc new file mode 100644 index 000000000..b45235d7d --- /dev/null +++ b/data/maps/PokemonTower_2F/text.inc @@ -0,0 +1,36 @@ +gUnknown_8179CFF:: @ 8179CFF + .string "{RIVAL}: Hey, {PLAYER}!\n" + .string "What brings you here?\l" + .string "Is your POKéMON dead?\p" + .string "Hey! It's alive!\p" + .string "I can at least make them faint!\n" + .string "Let's go!$" + +Text_179D73:: @ 8179D73 + .string "What?\n" + .string "You stinker!\p" + .string "I took it easy on you, too!$" + +Text_179DA2:: @ 8179DA2 + .string "{RIVAL}“あーあ‥!\n" + .string "ほんとに くたばっちまったぞ!\l" + .string "よわいなー!\l" + .string "もっと ちゃんと そだてて やれよ$" + +gUnknown_8179DD4:: @ 8179DD4 + .string "How's your POKéDEX coming?\n" + .string "I just caught a CUBONE!\p" + .string "I can't find the bigger MAROWAK.\n" + .string "Where could they be?\p" + .string "I bet there aren't any left!\p" + .string "Well, I better get going.\n" + .string "I've got a lot to accomplish,\l" + .string "unlike you.\p" + .string "Smell ya later!$" + +gUnknown_8179EAE:: @ 8179EAE + .string "Even we could not identify the\n" + .string "wayward ghosts.\p" + .string "A SILPH SCOPE might be able to\n" + .string "unmask them.$" + diff --git a/data/maps/PokemonTower_3F/map.json b/data/maps/PokemonTower_3F/map.json new file mode 100644 index 000000000..853179061 --- /dev/null +++ b/data/maps/PokemonTower_3F/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_POKEMON_TOWER_3F", + "name": "PokemonTower_3F", + "layout": "LAYOUT_POKEMON_TOWER_3F", + "music": "BGM_FRLG_POKEMON_TOWER", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 5, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [ + { + "graphics_id": "58", + "x": 10, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "PokemonTower_3F_EventScript_1633A7", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 9, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "PokemonTower_3F_EventScript_1633BE", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 12, + "y": 4, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "PokemonTower_3F_EventScript_1633D5", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 13, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_3F_EventScript_1BE755", + "flag": "375" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_2F", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_4F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_3F/scripts.inc b/data/maps/PokemonTower_3F/scripts.inc new file mode 100644 index 000000000..30591aba5 --- /dev/null +++ b/data/maps/PokemonTower_3F/scripts.inc @@ -0,0 +1,17 @@ +PokemonTower_3F_MapScripts:: @ 81633A6 + .byte 0 + +PokemonTower_3F_EventScript_1633A7:: @ 81633A7 + trainerbattle 0, 441, 0, Text_179FA0, Text_179FBC + msgbox gUnknown_8179FD3, 6 + end + +PokemonTower_3F_EventScript_1633BE:: @ 81633BE + trainerbattle 0, 442, 0, Text_179F62, Text_179F72 + msgbox gUnknown_8179F88, 6 + end + +PokemonTower_3F_EventScript_1633D5:: @ 81633D5 + trainerbattle 0, 443, 0, Text_179F09, Text_179F21 + msgbox gUnknown_8179F31, 6 + end diff --git a/data/maps/PokemonTower_3F/text.inc b/data/maps/PokemonTower_3F/text.inc new file mode 100644 index 000000000..49388655d --- /dev/null +++ b/data/maps/PokemonTower_3F/text.inc @@ -0,0 +1,36 @@ +Text_179F09:: @ 8179F09 + .string "Urrg… Awaa…\n" + .string "Huhu… Graa…$" + +Text_179F21:: @ 8179F21 + .string "Hwa!\n" + .string "I'm saved!$" + +gUnknown_8179F31:: @ 8179F31 + .string "The ghosts can be identified by\n" + .string "the SILPH SCOPE.$" + +Text_179F62:: @ 8179F62 + .string "Kekeke…\n" + .string "Kwaaah!$" + +Text_179F72:: @ 8179F72 + .string "Hmm?\n" + .string "What am I doing?$" + +gUnknown_8179F88:: @ 8179F88 + .string "Sorry!\n" + .string "I was possessed!$" + +Text_179FA0:: @ 8179FA0 + .string "Be gone!\n" + .string "Malevolent spirit!$" + +Text_179FBC:: @ 8179FBC + .string "Whew!\n" + .string "The spirit left!$" + +gUnknown_8179FD3:: @ 8179FD3 + .string "The others above…\n" + .string "They must have been possessed.$" + diff --git a/data/maps/PokemonTower_4F/map.json b/data/maps/PokemonTower_4F/map.json new file mode 100644 index 000000000..a1641b4e0 --- /dev/null +++ b/data/maps/PokemonTower_4F/map.json @@ -0,0 +1,113 @@ +{ + "id": "MAP_POKEMON_TOWER_4F", + "name": "PokemonTower_4F", + "layout": "LAYOUT_POKEMON_TOWER_4F", + "music": "BGM_FRLG_POKEMON_TOWER", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 5, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [ + { + "graphics_id": "58", + "x": 17, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "PokemonTower_4F_EventScript_163404", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "PokemonTower_4F_EventScript_16341B", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "PokemonTower_4F_EventScript_1633ED", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 12, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_4F_EventScript_1BE762", + "flag": "376" + }, + { + "graphics_id": "92", + "x": 8, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_4F_EventScript_1BE76F", + "flag": "377" + }, + { + "graphics_id": "92", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_4F_EventScript_1BE77C", + "flag": "378" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_5F", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_3F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_4F/scripts.inc b/data/maps/PokemonTower_4F/scripts.inc new file mode 100644 index 000000000..0837c5b9b --- /dev/null +++ b/data/maps/PokemonTower_4F/scripts.inc @@ -0,0 +1,17 @@ +PokemonTower_4F_MapScripts:: @ 81633EC + .byte 0 + +PokemonTower_4F_EventScript_1633ED:: @ 81633ED + trainerbattle 0, 444, 0, Text_17A004, Text_17A017 + msgbox gUnknown_817A02B, 6 + end + +PokemonTower_4F_EventScript_163404:: @ 8163404 + trainerbattle 0, 445, 0, Text_17A046, Text_17A061 + msgbox gUnknown_817A067, 6 + end + +PokemonTower_4F_EventScript_16341B:: @ 816341B + trainerbattle 0, 446, 0, Text_17A096, Text_17A0AB + msgbox gUnknown_817A0BB, 6 + end diff --git a/data/maps/PokemonTower_4F/text.inc b/data/maps/PokemonTower_4F/text.inc new file mode 100644 index 000000000..69a18a2f6 --- /dev/null +++ b/data/maps/PokemonTower_4F/text.inc @@ -0,0 +1,33 @@ +Text_17A004:: @ 817A004 + .string "Ghost! No!\n" + .string "Kwaaah!$" + +Text_17A017:: @ 817A017 + .string "Where is the ghost?$" + +gUnknown_817A02B:: @ 817A02B + .string "I must have been dreaming…$" + +Text_17A046:: @ 817A046 + .string "Be cursed with me!\n" + .string "Kwaaah!$" + +Text_17A061:: @ 817A061 + .string "What!$" + +gUnknown_817A067:: @ 817A067 + .string "We can't determine the identity of\n" + .string "the ghosts…$" + +Text_17A096:: @ 817A096 + .string "Huhuhu…\n" + .string "Beat me not!$" + +Text_17A0AB:: @ 817A0AB + .string "Huh?\n" + .string "Who? What?$" + +gUnknown_817A0BB:: @ 817A0BB + .string "May the departed POKéMON rest in\n" + .string "peace…$" + diff --git a/data/maps/PokemonTower_5F/map.json b/data/maps/PokemonTower_5F/map.json new file mode 100644 index 000000000..2609e8dfe --- /dev/null +++ b/data/maps/PokemonTower_5F/map.json @@ -0,0 +1,290 @@ +{ + "id": "MAP_POKEMON_TOWER_5F", + "name": "PokemonTower_5F", + "layout": "LAYOUT_POKEMON_TOWER_5F", + "music": "BGM_FRLG_POKEMON_TOWER", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 5, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [ + { + "graphics_id": "58", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "PokemonTower_5F_EventScript_163472", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 19, + "y": 7, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "PokemonTower_5F_EventScript_16345B", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 7, + "y": 12, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "PokemonTower_5F_EventScript_163489", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "PokemonTower_5F_EventScript_1634A0", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 12, + "y": 8, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_5F_EventScript_163433", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 6, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_5F_EventScript_1BE789", + "flag": "379" + }, + { + "graphics_id": "92", + "x": 11, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_5F_EventScript_1BEBB3", + "flag": "464" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_4F", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_6F", + "dest_warp_id": 1 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 8, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "PokemonTower_5F_EventScript_16343C" + }, + { + "type": "trigger", + "x": 11, + "y": 8, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "PokemonTower_5F_EventScript_16343C" + }, + { + "type": "trigger", + "x": 12, + "y": 8, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "PokemonTower_5F_EventScript_16343C" + }, + { + "type": "trigger", + "x": 10, + "y": 9, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "PokemonTower_5F_EventScript_16343C" + }, + { + "type": "trigger", + "x": 9, + "y": 8, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 1, + "script": "PokemonTower_5F_EventScript_163453" + }, + { + "type": "trigger", + "x": 12, + "y": 9, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "PokemonTower_5F_EventScript_16343C" + }, + { + "type": "trigger", + "x": 10, + "y": 10, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "PokemonTower_5F_EventScript_16343C" + }, + { + "type": "trigger", + "x": 11, + "y": 10, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "PokemonTower_5F_EventScript_16343C" + }, + { + "type": "trigger", + "x": 12, + "y": 10, + "elevation": 0, + "var": "VAR_0x4001", + "var_value": 0, + "script": "PokemonTower_5F_EventScript_16343C" + }, + { + "type": "trigger", + "x": 9, + "y": 9, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 1, + "script": "PokemonTower_5F_EventScript_163453" + }, + { + "type": "trigger", + "x": 9, + "y": 10, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 1, + "script": "PokemonTower_5F_EventScript_163453" + }, + { + "type": "trigger", + "x": 10, + "y": 11, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 1, + "script": "PokemonTower_5F_EventScript_163453" + }, + { + "type": "trigger", + "x": 11, + "y": 11, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 1, + "script": "PokemonTower_5F_EventScript_163453" + }, + { + "type": "trigger", + "x": 12, + "y": 11, + "elevation": 0, + "var": "VAR_0x4001", + "var_value": 1, + "script": "PokemonTower_5F_EventScript_163453" + }, + { + "type": "trigger", + "x": 13, + "y": 8, + "elevation": 0, + "var": "VAR_0x4001", + "var_value": 1, + "script": "PokemonTower_5F_EventScript_163453" + }, + { + "type": "trigger", + "x": 13, + "y": 9, + "elevation": 0, + "var": "VAR_0x4001", + "var_value": 1, + "script": "PokemonTower_5F_EventScript_163453" + }, + { + "type": "trigger", + "x": 13, + "y": 10, + "elevation": 0, + "var": "VAR_0x4001", + "var_value": 1, + "script": "PokemonTower_5F_EventScript_163453" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 7, + "y": 3, + "elevation": 3, + "item": "ITEM_BIG_MUSHROOM", + "flag": "14", + "unknown": 1 + } + ] +} diff --git a/data/maps/PokemonTower_5F/scripts.inc b/data/maps/PokemonTower_5F/scripts.inc new file mode 100644 index 000000000..67c6b27f4 --- /dev/null +++ b/data/maps/PokemonTower_5F/scripts.inc @@ -0,0 +1,42 @@ +PokemonTower_5F_MapScripts:: @ 8163432 + .byte 0 + +PokemonTower_5F_EventScript_163433:: @ 8163433 + msgbox gUnknown_817A0E3, 2 + end + +PokemonTower_5F_EventScript_16343C:: @ 816343C + lockall + fadescreen 3 + special sp000_heal_pokemon + fadescreen 2 + msgbox gUnknown_817A1FA + setvar VAR_0x4001, 1 + releaseall + end + +PokemonTower_5F_EventScript_163453:: @ 8163453 + lockall + setvar VAR_0x4001, 0 + releaseall + end + +PokemonTower_5F_EventScript_16345B:: @ 816345B + trainerbattle 0, 447, 0, Text_17A11F, Text_17A132 + msgbox gUnknown_817A138, 6 + end + +PokemonTower_5F_EventScript_163472:: @ 8163472 + trainerbattle 0, 448, 0, Text_17A150, Text_17A164 + msgbox gUnknown_817A176, 6 + end + +PokemonTower_5F_EventScript_163489:: @ 8163489 + trainerbattle 0, 449, 0, Text_17A187, Text_17A190 + msgbox gUnknown_817A194, 6 + end + +PokemonTower_5F_EventScript_1634A0:: @ 81634A0 + trainerbattle 0, 450, 0, Text_17A1AA, Text_17A1B7 + msgbox gUnknown_817A1BD, 6 + end diff --git a/data/maps/PokemonTower_5F/text.inc b/data/maps/PokemonTower_5F/text.inc new file mode 100644 index 000000000..5fef4219e --- /dev/null +++ b/data/maps/PokemonTower_5F/text.inc @@ -0,0 +1,51 @@ +gUnknown_817A0E3:: @ 817A0E3 + .string "Come, child!\n" + .string "I have purified this space.\l" + .string "You can rest here.$" + +Text_17A11F:: @ 817A11F + .string "Give…me…\n" + .string "your…all…$" + +Text_17A132:: @ 817A132 + .string "Gasp!$" + +gUnknown_817A138:: @ 817A138 + .string "I was under possession.$" + +Text_17A150:: @ 817A150 + .string "You…shall…\n" + .string "join…us…$" + +Text_17A164:: @ 817A164 + .string "What a nightmare!$" + +gUnknown_817A176:: @ 817A176 + .string "I was possessed.$" + +Text_17A187:: @ 817A187 + .string "Zombies!$" + +Text_17A190:: @ 817A190 + .string "Ha?$" + +gUnknown_817A194:: @ 817A194 + .string "I regained my senses.$" + +Text_17A1AA:: @ 817A1AA + .string "Urgah…\n" + .string "Urff…$" + +Text_17A1B7:: @ 817A1B7 + .string "Whoo!$" + +gUnknown_817A1BD:: @ 817A1BD + .string "I fell to evil spirits despite my\n" + .string "training in the mountains…$" + +gUnknown_817A1FA:: @ 817A1FA + .string "Entered the purified and protected\n" + .string "zone.\p" + .string "{PLAYER}'s POKéMON were fully\n" + .string "healed.$" + diff --git a/data/maps/PokemonTower_6F/map.json b/data/maps/PokemonTower_6F/map.json new file mode 100644 index 000000000..ef96f5aa8 --- /dev/null +++ b/data/maps/PokemonTower_6F/map.json @@ -0,0 +1,119 @@ +{ + "id": "MAP_POKEMON_TOWER_6F", + "name": "PokemonTower_6F", + "layout": "LAYOUT_POKEMON_TOWER_6F", + "music": "BGM_FRLG_POKEMON_TOWER", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 5, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [ + { + "graphics_id": "58", + "x": 13, + "y": 10, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "PokemonTower_6F_EventScript_163514", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 18, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "PokemonTower_6F_EventScript_163542", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "PokemonTower_6F_EventScript_16352B", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 5, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_6F_EventScript_1BE796", + "flag": "380" + }, + { + "graphics_id": "92", + "x": 15, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_6F_EventScript_1BE7A3", + "flag": "381" + } + ], + "warp_events": [ + { + "x": 11, + "y": 16, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_7F", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_5F", + "dest_warp_id": 1 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 11, + "y": 15, + "elevation": 3, + "var": "VAR_0x4059", + "var_value": 0, + "script": "PokemonTower_6F_EventScript_1634B8" + }, + { + "type": "trigger", + "x": 12, + "y": 16, + "elevation": 3, + "var": "VAR_0x4059", + "var_value": 0, + "script": "PokemonTower_6F_EventScript_1634B8" + } + ], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_6F/scripts.inc b/data/maps/PokemonTower_6F/scripts.inc new file mode 100644 index 000000000..dd2bdff80 --- /dev/null +++ b/data/maps/PokemonTower_6F/scripts.inc @@ -0,0 +1,51 @@ +PokemonTower_6F_MapScripts:: @ 81634B7 + .byte 0 + +PokemonTower_6F_EventScript_1634B8:: @ 81634B8 + lockall + textcolor 2 + msgbox gUnknown_817A2F8 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + setwildbattle SPECIES_MAROWAK, 30, ITEM_NONE + special sub_807F904 + waitstate + special sub_8112364 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1634F5 + applymovement 255, Movement_163512 + waitmovement 0 + releaseall + end + +EventScript_1634F5:: @ 81634F5 + message Text_17A30C + waitmessage + waitse + playmoncry SPECIES_MAROWAK, 0 + waitbuttonpress + waitmoncry + msgbox gUnknown_817A342 + setvar VAR_0x4059, 1 + releaseall + end + +Movement_163512:: @ 8163512 + step_11 + step_end + +PokemonTower_6F_EventScript_163514:: @ 8163514 + trainerbattle 0, 451, 0, Text_17A243, Text_17A253 + msgbox gUnknown_817A25A, 6 + end + +PokemonTower_6F_EventScript_16352B:: @ 816352B + trainerbattle 0, 452, 0, Text_17A272, Text_17A27F + msgbox gUnknown_817A293, 6 + end + +PokemonTower_6F_EventScript_163542:: @ 8163542 + trainerbattle 0, 453, 0, Text_17A2C8, Text_17A2DC + msgbox gUnknown_817A2E2, 6 + end diff --git a/data/maps/PokemonTower_6F/text.inc b/data/maps/PokemonTower_6F/text.inc new file mode 100644 index 000000000..5f6747816 --- /dev/null +++ b/data/maps/PokemonTower_6F/text.inc @@ -0,0 +1,43 @@ +Text_17A243:: @ 817A243 + .string "Give…me…\n" + .string "blood…$" + +Text_17A253:: @ 817A253 + .string "Groan!$" + +gUnknown_817A25A:: @ 817A25A + .string "I feel anemic and weak…$" + +Text_17A272:: @ 817A272 + .string "Urff…\n" + .string "Kwaah!$" + +Text_17A27F:: @ 817A27F + .string "Something fell out!$" + +gUnknown_817A293:: @ 817A293 + .string "My hair didn't fall out!\n" + .string "It was a malevolent spirit!$" + +Text_17A2C8:: @ 817A2C8 + .string "Ke…ke…ke…\n" + .string "ke…ke…ke!$" + +Text_17A2DC:: @ 817A2DC + .string "Keee!$" + +gUnknown_817A2E2:: @ 817A2E2 + .string "What's going on here?$" + +gUnknown_817A2F8:: @ 817A2F8 + .string "Be gone…\n" + .string "Intruders…$" + +Text_17A30C:: @ 817A30C + .string "The ghost was the restless spirit\n" + .string "of CUBONE's mother!$" + +gUnknown_817A342:: @ 817A342 + .string "The mother's spirit was calmed.\p" + .string "It departed to the afterlife…$" + diff --git a/data/maps/PokemonTower_7F/map.json b/data/maps/PokemonTower_7F/map.json new file mode 100644 index 000000000..880589588 --- /dev/null +++ b/data/maps/PokemonTower_7F/map.json @@ -0,0 +1,90 @@ +{ + "id": "MAP_POKEMON_TOWER_7F", + "name": "PokemonTower_7F", + "layout": "LAYOUT_POKEMON_TOWER_7F", + "music": "BGM_FRLG_POKEMON_TOWER", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 5, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [ + { + "graphics_id": "78", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PokemonTower_7F_EventScript_16355A", + "flag": "52" + }, + { + "graphics_id": "49", + "x": 9, + "y": 10, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "PokemonTower_7F_EventScript_163586", + "flag": "94" + }, + { + "graphics_id": "49", + "x": 13, + "y": 8, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "PokemonTower_7F_EventScript_16363D", + "flag": "131" + }, + { + "graphics_id": "49", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "PokemonTower_7F_EventScript_1636D6", + "flag": "132" + } + ], + "warp_events": [ + { + "x": 11, + "y": 16, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_6F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 11, + "y": 4, + "elevation": 3, + "item": "ITEM_SOOTHE_BELL", + "flag": "159", + "unknown": 129 + } + ] +} diff --git a/data/maps/PokemonTower_7F/scripts.inc b/data/maps/PokemonTower_7F/scripts.inc new file mode 100644 index 000000000..7f319287e --- /dev/null +++ b/data/maps/PokemonTower_7F/scripts.inc @@ -0,0 +1,242 @@ +PokemonTower_7F_MapScripts:: @ 8163559 + .byte 0 + +PokemonTower_7F_EventScript_16355A:: @ 816355A + lock + faceplayer + setvar VAR_0x8004, 14 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + setflag FLAG_0x034 + clearflag FLAG_0x035 + setflag FLAG_0x23C + msgbox gUnknown_817A529 + closemessage + warp MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE, 255, 4, 7 + waitstate + release + end + +PokemonTower_7F_EventScript_163586:: @ 8163586 + trainerbattle 2, 369, 0, Text_17A380, Text_17A3A4, EventScript_1635A1 + msgbox gUnknown_817A3AF, 6 + end + +EventScript_1635A1:: @ 81635A1 + msgbox gUnknown_817A3AF + closemessage + getplayerxy VAR_0x8004, VAR_0x8005 + compare_var_to_value VAR_0x8004, 10 + goto_if_eq EventScript_1635E0 + compare_var_to_value VAR_0x8004, 11 + goto_if_eq EventScript_1635F0 + compare_var_to_value VAR_0x8004, 9 + goto_if_eq EventScript_163600 + applymovement 2, Movement_16362C + waitmovement 0 + goto EventScript_163616 + end + +EventScript_1635E0:: @ 81635E0 + applymovement 2, Movement_16361B + waitmovement 0 + goto EventScript_163616 + end + +EventScript_1635F0:: @ 81635F0 + applymovement 2, Movement_163624 + waitmovement 0 + goto EventScript_163616 + end + +EventScript_163600:: @ 8163600 + applymovement 2, Movement_163633 + waitmovement 0 + playse SE_KAIDAN + delay 25 + goto EventScript_163616 + end + +EventScript_163616:: @ 8163616 + removeobject 2 + release + end + +Movement_16361B:: @ 816361B + step_10 + step_13 + step_10 + step_10 + step_10 + step_13 + step_10 + step_10 + step_end + +Movement_163624:: @ 8163624 + step_10 + step_10 + step_10 + step_10 + step_13 + step_10 + step_10 + step_end + +Movement_16362C:: @ 816362C + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +Movement_163633:: @ 8163633 + step_13 + step_10 + step_10 + step_10 + step_10 + step_13 + step_10 + step_10 + step_2f + step_end + +PokemonTower_7F_EventScript_16363D:: @ 816363D + trainerbattle 2, 370, 0, Text_17A3CD, Text_17A466, EventScript_163658 + msgbox gUnknown_817A477, 6 + end + +EventScript_163658:: @ 8163658 + setvar VAR_0x8004, 14 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_817A477 + closemessage + getplayerxy VAR_0x8004, VAR_0x8005 + compare_var_to_value VAR_0x8004, 12 + goto_if_eq EventScript_163699 + compare_var_to_value VAR_0x8004, 13 + goto_if_eq EventScript_1636A9 + applymovement 3, Movement_1636C6 + waitmovement 0 + goto EventScript_1636B9 + end + +EventScript_163699:: @ 8163699 + applymovement 3, Movement_1636BE + waitmovement 0 + goto EventScript_1636B9 + end + +EventScript_1636A9:: @ 81636A9 + applymovement 3, Movement_1636CD + waitmovement 0 + goto EventScript_1636B9 + end + +EventScript_1636B9:: @ 81636B9 + removeobject 3 + release + end + +Movement_1636BE:: @ 81636BE + step_10 + step_10 + step_10 + step_12 + step_10 + step_10 + step_10 + step_end + +Movement_1636C6:: @ 81636C6 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +Movement_1636CD:: @ 81636CD + step_12 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +PokemonTower_7F_EventScript_1636D6:: @ 81636D6 + trainerbattle 2, 371, 0, Text_17A4CF, Text_17A4EE, EventScript_1636F1 + msgbox gUnknown_817A506, 6 + end + +EventScript_1636F1:: @ 81636F1 + msgbox gUnknown_817A506 + closemessage + getplayerxy VAR_0x8004, VAR_0x8005 + compare_var_to_value VAR_0x8004, 10 + goto_if_eq EventScript_163725 + compare_var_to_value VAR_0x8004, 9 + goto_if_eq EventScript_163735 + applymovement 4, Movement_163754 + waitmovement 0 + goto EventScript_163745 + end + +EventScript_163725:: @ 8163725 + applymovement 4, Movement_16374C + waitmovement 0 + goto EventScript_163745 + end + +EventScript_163735:: @ 8163735 + applymovement 4, Movement_16375B + waitmovement 0 + goto EventScript_163745 + end + +EventScript_163745:: @ 8163745 + removeobject 4 + release + end + +EventScript_16374A:: @ 816374A + release + end + +Movement_16374C:: @ 816374C + step_10 + step_10 + step_10 + step_10 + step_10 + step_13 + step_10 + step_end + +Movement_163754:: @ 8163754 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +Movement_16375B:: @ 816375B + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end diff --git a/data/maps/PokemonTower_7F/text.inc b/data/maps/PokemonTower_7F/text.inc new file mode 100644 index 000000000..d55f9c2e2 --- /dev/null +++ b/data/maps/PokemonTower_7F/text.inc @@ -0,0 +1,50 @@ +Text_17A380:: @ 817A380 + .string "What do you want?\n" + .string "Why are you here?$" + +Text_17A3A4:: @ 817A3A4 + .string "I give up!$" + +gUnknown_817A3AF:: @ 817A3AF + .string "I'm not going to forget this!$" + +Text_17A3CD:: @ 817A3CD + .string "This old guy marched right up to\n" + .string "our HIDEOUT.\p" + .string "Then, he starts ranting about how\n" + .string "TEAM ROCKET's abusing POKéMON.\p" + .string "So, we're just talking it over as\n" + .string "adults.$" + +Text_17A466:: @ 817A466 + .string "Please!\n" + .string "No more!$" + +gUnknown_817A477:: @ 817A477 + .string "POKéMON are only good for making\n" + .string "money. Why not use them?\p" + .string "You stay out of our business!$" + +Text_17A4CF:: @ 817A4CF + .string "You're not saving anyone, kid!$" + +Text_17A4EE:: @ 817A4EE + .string "Don't fight us ROCKETS!$" + +gUnknown_817A506:: @ 817A506 + .string "You're not getting away with this!$" + +gUnknown_817A529:: @ 817A529 + .string "MR. FUJI: Heh?\n" + .string "You came to save me?\p" + .string "Thank you. But, I came here of my\n" + .string "own free will.\p" + .string "I came to calm the spirit of\n" + .string "CUBONE's mother.\p" + .string "I think MAROWAK's spirit has\n" + .string "finally left us.\p" + .string "I must thank you for your kind\n" + .string "concern.\p" + .string "Follow me to my home, POKéMON\n" + .string "HOUSE, at the foot of this tower.$" + diff --git a/data/maps/PowerPlant/map.json b/data/maps/PowerPlant/map.json new file mode 100644 index 000000000..21ffe2703 --- /dev/null +++ b/data/maps/PowerPlant/map.json @@ -0,0 +1,179 @@ +{ + "id": "MAP_POWER_PLANT", + "name": "PowerPlant", + "layout": "LAYOUT_POWER_PLANT", + "music": "BGM_FRLG_POKEMON_MANSION", + "region_map_section": "MAPSEC_POWER_PLANT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 7, + "y": 27, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PowerPlant_EventScript_1BE91C", + "flag": "410" + }, + { + "graphics_id": "92", + "x": 40, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PowerPlant_EventScript_1BE929", + "flag": "411" + }, + { + "graphics_id": "92", + "x": 46, + "y": 37, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PowerPlant_EventScript_1BE936", + "flag": "412" + }, + { + "graphics_id": "92", + "x": 45, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PowerPlant_EventScript_1BE943", + "flag": "413" + }, + { + "graphics_id": "92", + "x": 26, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PowerPlant_EventScript_1BE950", + "flag": "414" + }, + { + "graphics_id": "136", + "x": 5, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PowerPlant_EventScript_1637B8", + "flag": "93" + }, + { + "graphics_id": "92", + "x": 36, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PowerPlant_EventScript_16388D", + "flag": "134" + }, + { + "graphics_id": "92", + "x": 30, + "y": 38, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "PowerPlant_EventScript_16382F", + "flag": "133" + } + ], + "warp_events": [ + { + "x": 4, + "y": 39, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 38, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 2 + }, + { + "x": 6, + "y": 39, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 2 + }, + { + "x": 1, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 4 + }, + { + "x": 0, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 29, + "y": 16, + "elevation": 3, + "item": "ITEM_MAX_ELIXIR", + "flag": "27", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 8, + "y": 12, + "elevation": 3, + "item": "ITEM_THUNDER_STONE", + "flag": "28", + "unknown": 1 + } + ] +} diff --git a/data/maps/PowerPlant/scripts.inc b/data/maps/PowerPlant/scripts.inc new file mode 100644 index 000000000..cb9b3acdc --- /dev/null +++ b/data/maps/PowerPlant/scripts.inc @@ -0,0 +1,141 @@ +PowerPlant_MapScripts:: @ 8163764 + map_script 5, PowerPlant_MapScript1_16376F + map_script 3, PowerPlant_MapScript2_16378D + .byte 0 + +PowerPlant_MapScript1_16376F:: @ 816376F + checkflag FLAG_0x807 + call_if 1, EventScript_163779 + end + +EventScript_163779:: @ 8163779 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 7 + goto_if 5, EventScript_1A77A9 + removeobject VAR_LAST_TALKED + return + +PowerPlant_MapScript2_16378D:: @ 816378D + setworldmapflag FLAG_WORLD_MAP_POWER_PLANT + checkflag FLAG_0x2BF + call_if 0, EventScript_1637AC + checkflag FLAG_0x2D0 + call_if 0, EventScript_1637B0 + checkflag FLAG_0x2D1 + call_if 0, EventScript_1637B4 + end + +EventScript_1637AC:: @ 81637AC + clearflag FLAG_0x05D + return + +EventScript_1637B0:: @ 81637B0 + clearflag FLAG_0x085 + return + +EventScript_1637B4:: @ 81637B4 + clearflag FLAG_0x086 + return + +PowerPlant_EventScript_1637B8:: @ 81637B8 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + setwildbattle SPECIES_ZAPDOS, 50, ITEM_NONE + waitse + playmoncry SPECIES_ZAPDOS, 2 + message Text_1A6448 + waitmessage + waitmoncry + delay 10 + playbgm BGM_FRLG_LEADER_EYE, 0 + waitbuttonpress + setflag FLAG_0x807 + special sub_807F9D8 + waitstate + clearflag FLAG_0x807 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16381B + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_163824 + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_163824 + setflag FLAG_0x2BF + release + end + +EventScript_16381B:: @ 816381B + setflag FLAG_0x2BF + goto EventScript_1A922D + end + +EventScript_163824:: @ 8163824 + setvar VAR_0x8004, SPECIES_ZAPDOS + goto EventScript_1A9236 + end + +PowerPlant_EventScript_16382F:: @ 816382F + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + setwildbattle SPECIES_ELECTRODE, 34, ITEM_NONE + waitse + playmoncry SPECIES_ELECTRODE, 2 + delay 40 + waitmoncry + setflag FLAG_0x807 + dowildbattle + clearflag FLAG_0x807 + special sub_8112364 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_163884 + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_163884 + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_163884 + setflag FLAG_0x2D0 + release + end + +EventScript_163884:: @ 8163884 + setflag FLAG_0x2D0 + goto EventScript_1A922D + end + +PowerPlant_EventScript_16388D:: @ 816388D + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + setwildbattle SPECIES_ELECTRODE, 34, ITEM_NONE + waitse + playmoncry SPECIES_ELECTRODE, 2 + delay 40 + waitmoncry + setflag FLAG_0x807 + dowildbattle + clearflag FLAG_0x807 + special sub_8112364 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_1638E2 + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_1638E2 + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_1638E2 + setflag FLAG_0x2D1 + release + end + +EventScript_1638E2:: @ 81638E2 + setflag FLAG_0x2D1 + goto EventScript_1A922D + end diff --git a/data/maps/RockTunnel_1F/map.json b/data/maps/RockTunnel_1F/map.json new file mode 100644 index 000000000..94d643a8c --- /dev/null +++ b/data/maps/RockTunnel_1F/map.json @@ -0,0 +1,201 @@ +{ + "id": "MAP_ROCK_TUNNEL_1F", + "name": "RockTunnel_1F", + "layout": "LAYOUT_ROCK_TUNNEL_1F", + "music": "BGM_FRLG_MT_MOON", + "region_map_section": "MAPSEC_ROCK_TUNNEL", + "requires_flash": true, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "40", + "x": 26, + "y": 28, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "RockTunnel_1F_EventScript_162E73", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 39, + "y": 27, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "RockTunnel_1F_EventScript_162E5C", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 45, + "y": 24, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "RockTunnel_1F_EventScript_162E45", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 20, + "y": 17, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "RockTunnel_1F_EventScript_162E17", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 5, + "y": 20, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "RockTunnel_1F_EventScript_162E00", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "RockTunnel_1F_EventScript_162DE9", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 27, + "y": 10, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "RockTunnel_1F_EventScript_162E2E", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 37, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_1F_EventScript_1BEB0A", + "flag": "451" + }, + { + "graphics_id": "92", + "x": 33, + "y": 22, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_1F_EventScript_1BEB17", + "flag": "452" + }, + { + "graphics_id": "92", + "x": 22, + "y": 22, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_1F_EventScript_1BEB24", + "flag": "453" + } + ], + "warp_events": [ + { + "x": 17, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 0 + }, + { + "x": 45, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_B1F", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_B1F", + "dest_warp_id": 1 + }, + { + "x": 20, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_B1F", + "dest_warp_id": 2 + }, + { + "x": 45, + "y": 21, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_B1F", + "dest_warp_id": 3 + }, + { + "x": 18, + "y": 37, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 14, + "y": 33, + "elevation": 3, + "script": "RockTunnel_1F_EventScript_162DE0" + } + ] +} diff --git a/data/maps/RockTunnel_1F/scripts.inc b/data/maps/RockTunnel_1F/scripts.inc new file mode 100644 index 000000000..846154c97 --- /dev/null +++ b/data/maps/RockTunnel_1F/scripts.inc @@ -0,0 +1,46 @@ +RockTunnel_1F_MapScripts:: @ 8162DD6 + map_script 3, RockTunnel_1F_MapScript1_162DDC + .byte 0 + +RockTunnel_1F_MapScript1_162DDC:: @ 8162DDC + setworldmapflag FLAG_WORLD_MAP_ROCK_TUNNEL_1F + end + +RockTunnel_1F_EventScript_162DE0:: @ 8162DE0 + msgbox gUnknown_817962D, 3 + end + +RockTunnel_1F_EventScript_162DE9:: @ 8162DE9 + trainerbattle 0, 192, 0, Text_179366, Text_179388 + msgbox gUnknown_8179396, 6 + end + +RockTunnel_1F_EventScript_162E00:: @ 8162E00 + trainerbattle 0, 193, 0, Text_1793F1, Text_17940E + msgbox gUnknown_817943A, 6 + end + +RockTunnel_1F_EventScript_162E17:: @ 8162E17 + trainerbattle 0, 194, 0, Text_17947B, Text_1794AC + msgbox gUnknown_81794B4, 6 + end + +RockTunnel_1F_EventScript_162E2E:: @ 8162E2E + trainerbattle 0, 168, 0, Text_1794D4, Text_1794EE + msgbox gUnknown_81794F9, 6 + end + +RockTunnel_1F_EventScript_162E45:: @ 8162E45 + trainerbattle 0, 476, 0, Text_17951C, Text_179547 + msgbox gUnknown_8179558, 6 + end + +RockTunnel_1F_EventScript_162E5C:: @ 8162E5C + trainerbattle 0, 475, 0, Text_1795E5, Text_179604 + msgbox gUnknown_8179613, 6 + end + +RockTunnel_1F_EventScript_162E73:: @ 8162E73 + trainerbattle 0, 474, 0, Text_179577, Text_1795A1 + msgbox gUnknown_81795B5, 6 + end diff --git a/data/maps/RockTunnel_1F/text.inc b/data/maps/RockTunnel_1F/text.inc new file mode 100644 index 000000000..56bc4ecbe --- /dev/null +++ b/data/maps/RockTunnel_1F/text.inc @@ -0,0 +1,83 @@ +Text_179366:: @ 8179366 + .string "This tunnel goes a long way, kid!$" + +Text_179388:: @ 8179388 + .string "Doh!\n" + .string "You win!$" + +gUnknown_8179396:: @ 8179396 + .string "Watch for ONIX.\n" + .string "They appear only occasionally.\p" + .string "High-level ones can put the\n" + .string "squeeze on you!$" + +Text_1793F1:: @ 81793F1 + .string "Hmm.\n" + .string "Maybe I'm lost in here…$" + +Text_17940E:: @ 817940E + .string "Ease up!\n" + .string "What am I doing?\l" + .string "Which way is out?$" + +gUnknown_817943A:: @ 817943A + .string "That sleeping POKéMON on ROUTE 12\n" + .string "forced me to take this detour.$" + +Text_17947B:: @ 817947B + .string "Outsiders like you need to show me\n" + .string "some respect!$" + +Text_1794AC:: @ 81794AC + .string "I give!$" + +gUnknown_81794B4:: @ 81794B4 + .string "You're talented enough to hike!$" + +Text_1794D4:: @ 81794D4 + .string "POKéMON fight!\n" + .string "Ready, go!$" + +Text_1794EE:: @ 81794EE + .string "Game over!$" + +gUnknown_81794F9:: @ 81794F9 + .string "Oh well, I'll get a ZUBAT as I go!$" + +Text_17951C:: @ 817951C + .string "Eek!\p" + .string "Don't try anything funny in the\n" + .string "dark!$" + +Text_179547:: @ 8179547 + .string "It was too dark…$" + +gUnknown_8179558:: @ 8179558 + .string "I saw a MACHOP in this tunnel.$" + +Text_179577:: @ 8179577 + .string "I came this far looking for wild\n" + .string "POKéMON.$" + +Text_1795A1:: @ 81795A1 + .string "I'm out of POKéMON!$" + +gUnknown_81795B5:: @ 81795B5 + .string "You looked cute and harmless.\n" + .string "Was I ever wrong!$" + +Text_1795E5:: @ 81795E5 + .string "You have POKéMON!\n" + .string "Let's start!$" + +Text_179604:: @ 8179604 + .string "You play hard!$" + +gUnknown_8179613:: @ 8179613 + .string "Whew!\n" + .string "I'm all sweaty now.$" + +gUnknown_817962D:: @ 817962D + .string "ROCK TUNNEL\n" + .string "CERULEAN CITY - LAVENDER TOWN$" + diff --git a/data/maps/RockTunnel_B1F/map.json b/data/maps/RockTunnel_B1F/map.json new file mode 100644 index 000000000..3df881ece --- /dev/null +++ b/data/maps/RockTunnel_B1F/map.json @@ -0,0 +1,387 @@ +{ + "id": "MAP_ROCK_TUNNEL_B1F", + "name": "RockTunnel_B1F", + "layout": "LAYOUT_ROCK_TUNNEL_B1F", + "music": "BGM_FRLG_MT_MOON", + "region_map_section": "MAPSEC_ROCK_TUNNEL", + "requires_flash": true, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "52", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "RockTunnel_B1F_EventScript_162EFE", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 5, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "RockTunnel_B1F_EventScript_162EB9", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 11, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "RockTunnel_B1F_EventScript_162E8B", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 36, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "RockTunnel_B1F_EventScript_162ED0", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 41, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "RockTunnel_B1F_EventScript_162EE7", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 23, + "y": 23, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "RockTunnel_B1F_EventScript_162F15", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 15, + "y": 33, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "RockTunnel_B1F_EventScript_162EA2", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 29, + "y": 35, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "RockTunnel_B1F_EventScript_162F2C", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 2, + "y": 29, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1C487E", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 2, + "y": 37, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BEB31", + "flag": "454" + }, + { + "graphics_id": "92", + "x": 9, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BEB3E", + "flag": "455" + }, + { + "graphics_id": "96", + "x": 1, + "y": 20, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "96", + "x": 1, + "y": 22, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 4, + "y": 23, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "20" + }, + { + "graphics_id": "96", + "x": 2, + "y": 23, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "96", + "x": 39, + "y": 26, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "22" + }, + { + "graphics_id": "96", + "x": 42, + "y": 26, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "23" + }, + { + "graphics_id": "96", + "x": 43, + "y": 28, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "24" + }, + { + "graphics_id": "96", + "x": 45, + "y": 30, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "25" + }, + { + "graphics_id": "96", + "x": 45, + "y": 33, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "26" + }, + { + "graphics_id": "96", + "x": 25, + "y": 1, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "27" + }, + { + "graphics_id": "96", + "x": 27, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "28" + }, + { + "graphics_id": "96", + "x": 23, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "29" + }, + { + "graphics_id": "96", + "x": 26, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "30" + }, + { + "graphics_id": "96", + "x": 24, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "31" + }, + { + "graphics_id": "96", + "x": 27, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RockTunnel_B1F_EventScript_1BE00C", + "flag": "17" + } + ], + "warp_events": [ + { + "x": 38, + "y": 28, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": 1 + }, + { + "x": 33, + "y": 3, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": 2 + }, + { + "x": 27, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": 3 + }, + { + "x": 2, + "y": 3, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/RockTunnel_B1F/scripts.inc b/data/maps/RockTunnel_B1F/scripts.inc new file mode 100644 index 000000000..12611a767 --- /dev/null +++ b/data/maps/RockTunnel_B1F/scripts.inc @@ -0,0 +1,42 @@ +RockTunnel_B1F_MapScripts:: @ 8162E8A + .byte 0 + +RockTunnel_B1F_EventScript_162E8B:: @ 8162E8B + trainerbattle 0, 158, 0, Text_179657, Text_1796B9 + msgbox gUnknown_81796CE, 6 + end + +RockTunnel_B1F_EventScript_162EA2:: @ 8162EA2 + trainerbattle 0, 159, 0, Text_1798AD, Text_1798DD + msgbox gUnknown_81798E9, 6 + end + +RockTunnel_B1F_EventScript_162EB9:: @ 8162EB9 + trainerbattle 0, 189, 0, Text_1796E1, Text_179700 + msgbox gUnknown_8179712, 6 + end + +RockTunnel_B1F_EventScript_162ED0:: @ 8162ED0 + trainerbattle 0, 190, 0, Text_179829, Text_179856 + msgbox gUnknown_817987A, 6 + end + +RockTunnel_B1F_EventScript_162EE7:: @ 8162EE7 + trainerbattle 0, 191, 0, Text_179916, Text_179932 + msgbox gUnknown_817993E, 6 + end + +RockTunnel_B1F_EventScript_162EFE:: @ 8162EFE + trainerbattle 0, 164, 0, Text_17973A, Text_17975F + msgbox gUnknown_8179777, 6 + end + +RockTunnel_B1F_EventScript_162F15:: @ 8162F15 + trainerbattle 0, 165, 0, Text_1797A4, Text_1797CB + msgbox gUnknown_81797DE, 6 + end + +RockTunnel_B1F_EventScript_162F2C:: @ 8162F2C + trainerbattle 0, 166, 0, Text_179968, Text_179997 + msgbox gUnknown_81799AC, 6 + end diff --git a/data/maps/RockTunnel_B1F/text.inc b/data/maps/RockTunnel_B1F/text.inc new file mode 100644 index 000000000..b82f09657 --- /dev/null +++ b/data/maps/RockTunnel_B1F/text.inc @@ -0,0 +1,95 @@ +Text_179657:: @ 8179657 + .string "Do you know how you can avoid\n" + .string "getting lost in the mountains?\p" + .string "You can bend twigs as trail\n" + .string "markers.$" + +Text_1796B9:: @ 81796B9 + .string "Ohhh!\n" + .string "I did my best!$" + +gUnknown_81796CE:: @ 81796CE + .string "I want to go home!$" + +Text_1796E1:: @ 81796E1 + .string "Hahaha!\n" + .string "Can you beat my power?$" + +Text_179700:: @ 8179700 + .string "Oops!\n" + .string "Outmuscled!$" + +gUnknown_8179712:: @ 8179712 + .string "I go for power because I hate\n" + .string "thinking.$" + +Text_17973A:: @ 817973A + .string "You have a POKéDEX?\n" + .string "I want one, too.$" + +Text_17975F:: @ 817975F + .string "Shoot!\n" + .string "I am so jealous!$" + +gUnknown_8179777:: @ 8179777 + .string "When you finish your POKéDEX,\n" + .string "can I have it?$" + +Text_1797A4:: @ 81797A4 + .string "Um… Do you know about POKéMON\n" + .string "cosplay?$" + +Text_1797CB:: @ 81797CB + .string "Well, that's that.$" + +gUnknown_81797DE:: @ 81797DE + .string "POKéMON cosplay is dressing up as\n" + .string "POKéMON for fun.\p" + .string "CLEFAIRY is a favorite.$" + +Text_179829:: @ 8179829 + .string "My POKéMON techniques will leave\n" + .string "you crying!$" + +Text_179856:: @ 8179856 + .string "I give!\n" + .string "You're a better technician!$" + +gUnknown_817987A:: @ 817987A + .string "In mountains, you'll often find\n" + .string "ROCK-type POKéMON.$" + +Text_1798AD:: @ 81798AD + .string "I don't often come here, but I will\n" + .string "battle you.$" + +Text_1798DD:: @ 81798DD + .string "Oh!\n" + .string "I lost!$" + +gUnknown_81798E9:: @ 81798E9 + .string "I like tiny POKéMON.\n" + .string "Big ones are too scary!$" + +Text_179916:: @ 8179916 + .string "Hit me with your best shot!$" + +Text_179932:: @ 8179932 + .string "Fired away!$" + +gUnknown_817993E:: @ 817993E + .string "I'll raise my POKéMON to beat\n" + .string "yours, kid.$" + +Text_179968:: @ 8179968 + .string "I draw illustrations of POKéMON\n" + .string "when I'm home.$" + +Text_179997:: @ 8179997 + .string "Whew…\n" + .string "I'm exhausted…$" + +gUnknown_81799AC:: @ 81799AC + .string "I'm an artist, not a fighter.\n" + .string "I'll go home to draw.$" + diff --git a/data/maps/RocketHideout_B1F/map.json b/data/maps/RocketHideout_B1F/map.json new file mode 100644 index 000000000..0513b11d4 --- /dev/null +++ b/data/maps/RocketHideout_B1F/map.json @@ -0,0 +1,164 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_B1F", + "name": "RocketHideout_B1F", + "layout": "LAYOUT_ROCKET_HIDEOUT_B1F", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": -1, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "RocketHideout_B1F_EventScript_1611C5", + "flag": "173" + }, + { + "graphics_id": "49", + "x": 24, + "y": 12, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "RocketHideout_B1F_EventScript_1611AE", + "flag": "173" + }, + { + "graphics_id": "49", + "x": 6, + "y": 32, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "RocketHideout_B1F_EventScript_1611F3", + "flag": "173" + }, + { + "graphics_id": "49", + "x": 10, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "RocketHideout_B1F_EventScript_1611DC", + "flag": "173" + }, + { + "graphics_id": "49", + "x": 21, + "y": 27, + "elevation": 3, + "movement_type": "16", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "RocketHideout_B1F_EventScript_16120A", + "flag": "173" + }, + { + "graphics_id": "92", + "x": 5, + "y": 16, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B1F_EventScript_1BE6C6", + "flag": "364" + }, + { + "graphics_id": "92", + "x": 1, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B1F_EventScript_1BE6D3", + "flag": "365" + } + ], + "warp_events": [ + { + "x": 12, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_GAME_CORNER", + "dest_warp_id": 3 + }, + { + "x": 17, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B2F", + "dest_warp_id": 1 + }, + { + "x": 15, + "y": 30, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B2F", + "dest_warp_id": 2 + }, + { + "x": 23, + "y": 25, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": 1 + }, + { + "x": 24, + "y": 25, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": 1 + }, + { + "x": 25, + "y": 25, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 16, + "y": 17, + "elevation": 0, + "item": "ITEM_PP_UP", + "flag": "11", + "unknown": 1 + } + ] +} diff --git a/data/maps/RocketHideout_B1F/scripts.inc b/data/maps/RocketHideout_B1F/scripts.inc new file mode 100644 index 000000000..f127389ef --- /dev/null +++ b/data/maps/RocketHideout_B1F/scripts.inc @@ -0,0 +1,64 @@ +RocketHideout_B1F_MapScripts:: @ 8161195 + map_script 1, RocketHideout_B1F_MapScript1_1611A0 + map_script 3, RocketHideout_B1F_MapScript2_1611AA + .byte 0 + +RocketHideout_B1F_MapScript1_1611A0:: @ 81611A0 + checktrainerflag FLAG_0x16A + call_if 0, EventScript_161233 + end + +RocketHideout_B1F_MapScript2_1611AA:: @ 81611AA + setworldmapflag FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F + end + +RocketHideout_B1F_EventScript_1611AE:: @ 81611AE + trainerbattle 0, 358, 0, Text_174ECA, Text_174EED + msgbox gUnknown_8174EFA, 6 + end + +RocketHideout_B1F_EventScript_1611C5:: @ 81611C5 + trainerbattle 0, 359, 0, Text_174F2C, Text_174F60 + msgbox gUnknown_8174F66, 6 + end + +RocketHideout_B1F_EventScript_1611DC:: @ 81611DC + trainerbattle 0, 360, 0, Text_174F94, Text_174FA4 + msgbox gUnknown_8174FB3, 6 + end + +RocketHideout_B1F_EventScript_1611F3:: @ 81611F3 + trainerbattle 0, 361, 0, Text_174FE1, Text_174FF8 + msgbox gUnknown_8175007, 6 + end + +RocketHideout_B1F_EventScript_16120A:: @ 816120A + trainerbattle 2, 362, 0, Text_17503A, Text_17505A, EventScript_161225 + msgbox gUnknown_8175060, 6 + end + +EventScript_161225:: @ 8161225 + call EventScript_16126A + playse SE_FU_ZAKU2 + special DrawWholeMapView + waitse + release + end + +EventScript_161233:: @ 8161233 + setmetatile 20, 19, 718, 1 + setmetatile 21, 19, 719, 1 + setmetatile 20, 20, 726, 1 + setmetatile 21, 20, 727, 1 + setmetatile 20, 21, 642, 0 + setmetatile 21, 21, 642, 0 + return + +EventScript_16126A:: @ 816126A + setmetatile 20, 19, 642, 0 + setmetatile 21, 19, 641, 0 + setmetatile 20, 20, 642, 0 + setmetatile 21, 20, 641, 0 + setmetatile 20, 21, 642, 0 + setmetatile 21, 21, 641, 0 + return diff --git a/data/maps/RocketHideout_B1F/text.inc b/data/maps/RocketHideout_B1F/text.inc new file mode 100644 index 000000000..fd7647e2b --- /dev/null +++ b/data/maps/RocketHideout_B1F/text.inc @@ -0,0 +1,53 @@ +Text_174ECA:: @ 8174ECA + .string "Who are you?\n" + .string "How did you get here?$" + +Text_174EED:: @ 8174EED + .string "Oww!\n" + .string "Beaten!$" + +gUnknown_8174EFA:: @ 8174EFA + .string "Blast it… You're dissing TEAM\n" + .string "ROCKET, aren't you?$" + +Text_174F2C:: @ 8174F2C + .string "You broke into TEAM ROCKET's\n" + .string "operation? What nerve!$" + +Text_174F60:: @ 8174F60 + .string "Boom!$" + +gUnknown_8174F66:: @ 8174F66 + .string "You're not going to get away with\n" + .string "this, brat!$" + +Text_174F94:: @ 8174F94 + .string "Intruder alert!$" + +Text_174FA4:: @ 8174FA4 + .string "I can't do it!$" + +gUnknown_8174FB3:: @ 8174FB3 + .string "SILPH SCOPE? Humph!\n" + .string "I don't know where it is.$" + +Text_174FE1:: @ 8174FE1 + .string "Why did you come here?$" + +Text_174FF8:: @ 8174FF8 + .string "This won't do!$" + +gUnknown_8175007:: @ 8175007 + .string "Okay, I'll talk…\n" + .string "Take the elevator to see my BOSS.$" + +Text_17503A:: @ 817503A + .string "Are you lost, you little mouse?$" + +Text_17505A:: @ 817505A + .string "Why…?$" + +gUnknown_8175060:: @ 8175060 + .string "Uh-oh, that ruckus somehow opened\n" + .string "the door!$" + diff --git a/data/maps/RocketHideout_B2F/map.json b/data/maps/RocketHideout_B2F/map.json new file mode 100644 index 000000000..55cb6f583 --- /dev/null +++ b/data/maps/RocketHideout_B2F/map.json @@ -0,0 +1,121 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_B2F", + "name": "RocketHideout_B2F", + "layout": "LAYOUT_ROCKET_HIDEOUT_B2F", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": -2, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 20, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "RocketHideout_B2F_EventScript_1612A2", + "flag": "173" + }, + { + "graphics_id": "92", + "x": 15, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B2F_EventScript_1BE6E0", + "flag": "366" + }, + { + "graphics_id": "92", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B2F_EventScript_1BE6ED", + "flag": "367" + }, + { + "graphics_id": "92", + "x": 5, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B2F_EventScript_1BE6FA", + "flag": "368" + }, + { + "graphics_id": "92", + "x": 0, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B2F_EventScript_1BE707", + "flag": "369" + } + ], + "warp_events": [ + { + "x": 21, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B3F", + "dest_warp_id": 0 + }, + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B1F", + "dest_warp_id": 1 + }, + { + "x": 23, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B1F", + "dest_warp_id": 2 + }, + { + "x": 28, + "y": 16, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": 1 + }, + { + "x": 29, + "y": 16, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/RocketHideout_B2F/scripts.inc b/data/maps/RocketHideout_B2F/scripts.inc new file mode 100644 index 000000000..80c102179 --- /dev/null +++ b/data/maps/RocketHideout_B2F/scripts.inc @@ -0,0 +1,7 @@ +RocketHideout_B2F_MapScripts:: @ 81612A1 + .byte 0 + +RocketHideout_B2F_EventScript_1612A2:: @ 81612A2 + trainerbattle 0, 363, 0, Text_17508C, Text_1750BF + msgbox gUnknown_81750CC, 6 + end diff --git a/data/maps/RocketHideout_B2F/text.inc b/data/maps/RocketHideout_B2F/text.inc new file mode 100644 index 000000000..d21c21555 --- /dev/null +++ b/data/maps/RocketHideout_B2F/text.inc @@ -0,0 +1,12 @@ +Text_17508C:: @ 817508C + .string "BOSS said you can see ghosts with\n" + .string "the SILPH SCOPE.$" + +Text_1750BF:: @ 81750BF + .string "I surrender!$" + +gUnknown_81750CC:: @ 81750CC + .string "The TEAM ROCKET HQ has four\n" + .string "underground floors.\p" + .string "Think you can reach the BOSS?$" + diff --git a/data/maps/RocketHideout_B3F/map.json b/data/maps/RocketHideout_B3F/map.json new file mode 100644 index 000000000..5e44100bc --- /dev/null +++ b/data/maps/RocketHideout_B3F/map.json @@ -0,0 +1,110 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_B3F", + "name": "RocketHideout_B3F", + "layout": "LAYOUT_ROCKET_HIDEOUT_B3F", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": -3, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 19, + "y": 9, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "RocketHideout_B3F_EventScript_1612D1", + "flag": "173" + }, + { + "graphics_id": "49", + "x": 2, + "y": 20, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "RocketHideout_B3F_EventScript_1612BA", + "flag": "173" + }, + { + "graphics_id": "92", + "x": 12, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B3F_EventScript_1BE714", + "flag": "370" + }, + { + "graphics_id": "92", + "x": 19, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B3F_EventScript_1BE721", + "flag": "371" + }, + { + "graphics_id": "92", + "x": 14, + "y": 24, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B3F_EventScript_1BEBCD", + "flag": "466" + } + ], + "warp_events": [ + { + "x": 18, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B2F", + "dest_warp_id": 0 + }, + { + "x": 15, + "y": 18, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B4F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 1, + "y": 3, + "elevation": 3, + "item": "ITEM_NUGGET", + "flag": "12", + "unknown": 1 + } + ] +} diff --git a/data/maps/RocketHideout_B3F/scripts.inc b/data/maps/RocketHideout_B3F/scripts.inc new file mode 100644 index 000000000..82fc7aa26 --- /dev/null +++ b/data/maps/RocketHideout_B3F/scripts.inc @@ -0,0 +1,12 @@ +RocketHideout_B3F_MapScripts:: @ 81612B9 + .byte 0 + +RocketHideout_B3F_EventScript_1612BA:: @ 81612BA + trainerbattle 0, 364, 0, Text_17511A, Text_17514A + msgbox gUnknown_817515B, 6 + end + +RocketHideout_B3F_EventScript_1612D1:: @ 81612D1 + trainerbattle 0, 365, 0, Text_17519E, Text_1751CE + msgbox gUnknown_81751E0, 6 + end diff --git a/data/maps/RocketHideout_B3F/text.inc b/data/maps/RocketHideout_B3F/text.inc new file mode 100644 index 000000000..deedfce38 --- /dev/null +++ b/data/maps/RocketHideout_B3F/text.inc @@ -0,0 +1,26 @@ +Text_17511A:: @ 817511A + .string "Stop meddling in TEAM ROCKET's\n" + .string "affairs or else!$" + +Text_17514A:: @ 817514A + .string "Oof!\n" + .string "Taken down!$" + +gUnknown_817515B:: @ 817515B + .string "SILPH SCOPE?\n" + .string "Oh, that machine the BOSS stole.\p" + .string "It's here somewhere.$" + +Text_17519E:: @ 817519E + .string "We got word from upstairs that you\n" + .string "were coming!$" + +Text_1751CE:: @ 81751CE + .string "What?\n" + .string "I lost? No!$" + +gUnknown_81751E0:: @ 81751E0 + .string "Go ahead and go!\p" + .string "But you can't run the elevator\n" + .string "without the LIFT KEY.$" + diff --git a/data/maps/RocketHideout_B4F/map.json b/data/maps/RocketHideout_B4F/map.json new file mode 100644 index 000000000..fe5dc1de4 --- /dev/null +++ b/data/maps/RocketHideout_B4F/map.json @@ -0,0 +1,178 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_B4F", + "name": "RocketHideout_B4F", + "layout": "LAYOUT_ROCKET_HIDEOUT_B4F", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": -4, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [ + { + "graphics_id": "87", + "x": 19, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B4F_EventScript_161317", + "flag": "56" + }, + { + "graphics_id": "92", + "x": 20, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B4F_EventScript_161363", + "flag": "55" + }, + { + "graphics_id": "49", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "RocketHideout_B4F_EventScript_161381", + "flag": "173" + }, + { + "graphics_id": "92", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B4F_EventScript_1613AD", + "flag": "54" + }, + { + "graphics_id": "49", + "x": 19, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B4F_EventScript_161418", + "flag": "173" + }, + { + "graphics_id": "49", + "x": 16, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B4F_EventScript_1613CE", + "flag": "173" + }, + { + "graphics_id": "92", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B4F_EventScript_1BE72E", + "flag": "372" + }, + { + "graphics_id": "92", + "x": 4, + "y": 14, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B4F_EventScript_1BE73B", + "flag": "373" + }, + { + "graphics_id": "92", + "x": 6, + "y": 23, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "RocketHideout_B4F_EventScript_1BE748", + "flag": "374" + } + ], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B3F", + "dest_warp_id": 1 + }, + { + "x": 20, + "y": 23, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": 1 + }, + { + "x": 21, + "y": 23, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 22, + "y": 6, + "elevation": 3, + "item": "ITEM_NEST_BALL", + "flag": "13", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 16, + "y": 6, + "elevation": 3, + "item": "ITEM_NET_BALL", + "flag": "134", + "unknown": 1 + } + ] +} diff --git a/data/maps/RocketHideout_B4F/scripts.inc b/data/maps/RocketHideout_B4F/scripts.inc new file mode 100644 index 000000000..949223e85 --- /dev/null +++ b/data/maps/RocketHideout_B4F/scripts.inc @@ -0,0 +1,136 @@ +RocketHideout_B4F_MapScripts:: @ 81612E8 + map_script 1, RocketHideout_B4F_MapScript1_1612EE + .byte 0 + +RocketHideout_B4F_MapScript1_1612EE:: @ 81612EE + setvar VAR_0x4001, 0 + checktrainerflag FLAG_0x16E + call_if 1, EventScript_161311 + checktrainerflag FLAG_0x16F + call_if 1, EventScript_161311 + compare_var_to_value VAR_0x4001, 2 + call_if 5, EventScript_16146A + end + +EventScript_161311:: @ 8161311 + addvar VAR_0x4001, 1 + return + +RocketHideout_B4F_EventScript_161317:: @ 8161317 + lock + faceplayer + setvar VAR_0x8004, 15 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + message Text_175226 + waitmessage + playbgm BGM_FRLG_SUSPICIOUS_EYE, 0 + waitbuttonpress + trainerbattle 3, 348, 0, Text_175318 + msgbox gUnknown_817532D + fadescreen 1 + closemessage + removeobject 1 + addobject 2 + clearflag FLAG_0x037 + setflag FLAG_0x05F + setvar VAR_0x8004, 15 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + fadescreen 0 + release + end + +RocketHideout_B4F_EventScript_161363:: @ 8161363 + lock + faceplayer + removeobject 2 + giveitem ITEM_SILPH_SCOPE + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A6BF9 + release + end + +RocketHideout_B4F_EventScript_161381:: @ 8161381 + trainerbattle 2, 368, 0, Text_175488, Text_1754B9, EventScript_16139D + msgbox gUnknown_81754BD + release + end + +EventScript_16139D:: @ 816139D + msgbox gUnknown_81754BD + addobject 4 + clearflag FLAG_0x036 + release + end + +RocketHideout_B4F_EventScript_1613AD:: @ 81613AD + lock + faceplayer + setflag FLAG_0x2A5 + removeobject 4 + giveitem ITEM_LIFT_KEY + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A6BF9 + release + end + +RocketHideout_B4F_EventScript_1613CE:: @ 81613CE + trainerbattle 2, 366, 0, Text_1753D0, Text_1753FE, EventScript_1613E9 + msgbox gUnknown_817540C, 6 + end + +EventScript_1613E9:: @ 81613E9 + setvar VAR_0x4001, 0 + checktrainerflag FLAG_0x16E + call_if 1, EventScript_161311 + checktrainerflag FLAG_0x16F + call_if 1, EventScript_161311 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_1614A1 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_161462 + release + end + +RocketHideout_B4F_EventScript_161418:: @ 8161418 + trainerbattle 2, 367, 0, Text_175437, Text_175463, EventScript_161433 + msgbox gUnknown_817546A, 6 + end + +EventScript_161433:: @ 8161433 + setvar VAR_0x4001, 0 + checktrainerflag FLAG_0x16E + call_if 1, EventScript_161311 + checktrainerflag FLAG_0x16F + call_if 1, EventScript_161311 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_1614A1 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_161462 + release + end + +EventScript_161462:: @ 8161462 + playse SE_FU_ZAKU2 + special DrawWholeMapView + waitse + return + +EventScript_16146A:: @ 816146A + setmetatile 17, 12, 718, 1 + setmetatile 18, 12, 719, 1 + setmetatile 17, 13, 726, 1 + setmetatile 18, 13, 727, 1 + setmetatile 17, 14, 642, 0 + setmetatile 18, 14, 642, 0 + return + +EventScript_1614A1:: @ 81614A1 + setmetatile 17, 12, 642, 0 + setmetatile 18, 12, 641, 0 + setmetatile 17, 13, 642, 0 + setmetatile 18, 13, 641, 0 + setmetatile 17, 14, 642, 0 + setmetatile 18, 14, 641, 0 + return diff --git a/data/maps/RocketHideout_B4F/text.inc b/data/maps/RocketHideout_B4F/text.inc new file mode 100644 index 000000000..4ceba8968 --- /dev/null +++ b/data/maps/RocketHideout_B4F/text.inc @@ -0,0 +1,56 @@ +Text_175226:: @ 8175226 + .string "So! I must say, I am impressed you\n" + .string "got here.\p" + .string "TEAM ROCKET captures POKéMON from\n" + .string "around the world.\p" + .string "They're important tools for keeping\n" + .string "our criminal enterprise going.\p" + .string "I am the leader, GIOVANNI!\p" + .string "For your insolence, you will feel a\n" + .string "world of pain!$" + +Text_175318:: @ 8175318 + .string "WHAT!\n" + .string "This can't be!$" + +gUnknown_817532D:: @ 817532D + .string "I see that you raise POKéMON with\n" + .string "utmost care.\p" + .string "A child like you would never\n" + .string "understand what I hope to achieve.\p" + .string "I shall step aside this time!\p" + .string "I hope we meet again…$" + +Text_1753D0:: @ 81753D0 + .string "I know you!\n" + .string "You ruined our plans at MT. MOON!$" + +Text_1753FE:: @ 81753FE + .string "Burned again!$" + +gUnknown_817540C:: @ 817540C + .string "Do you have something against TEAM\n" + .string "ROCKET?$" + +Text_175437:: @ 8175437 + .string "How can you not see the beauty of\n" + .string "our evil?$" + +Text_175463:: @ 8175463 + .string "Ayaya!$" + +gUnknown_817546A:: @ 817546A + .string "BOSS!\n" + .string "I'm sorry I failed you!$" + +Text_175488:: @ 8175488 + .string "The elevator doesn't work?\n" + .string "Who has the LIFT KEY?$" + +Text_1754B9:: @ 81754B9 + .string "No!$" + +gUnknown_81754BD:: @ 81754BD + .string "Oh, no!\n" + .string "I dropped the LIFT KEY!$" + diff --git a/data/maps/RocketHideout_Elevator/map.json b/data/maps/RocketHideout_Elevator/map.json new file mode 100644 index 000000000..806a91cda --- /dev/null +++ b/data/maps/RocketHideout_Elevator/map.json @@ -0,0 +1,42 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "name": "RocketHideout_Elevator", + "layout": "LAYOUT_ROCKET_HIDEOUT_ELEVATOR", + "music": "BGM_FRLG_ROCKET_HIDEOUT", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_3", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 0, + "y": 2, + "elevation": 0, + "script": "RocketHideout_Elevator_EventScript_1614D9" + } + ] +} diff --git a/data/maps/RocketHideout_Elevator/scripts.inc b/data/maps/RocketHideout_Elevator/scripts.inc new file mode 100644 index 000000000..884335234 --- /dev/null +++ b/data/maps/RocketHideout_Elevator/scripts.inc @@ -0,0 +1,106 @@ +RocketHideout_Elevator_MapScripts:: @ 81614D8 + .byte 0 + +RocketHideout_Elevator_EventScript_1614D9:: @ 81614D9 + lockall + checkflag FLAG_0x2A5 + goto_if 0, EventScript_16161B + setvar VAR_0x8004, 2 + checkflag FLAG_0x002 + call_if 0, EventScript_1A7AB9 + copyvar VAR_0x8005, VAR_0x403A + special sub_80CB580 + message Text_1A535C + waitmessage + setvar VAR_0x8004, 2 + specialvar VAR_RESULT, sub_80CB328 + switch VAR_RESULT + case 0, EventScript_161530 + case 1, EventScript_16153C + case 2, EventScript_161548 + end + +EventScript_161530:: @ 8161530 + multichoicedefault 0, 0, 42, 0, 0 + goto EventScript_161554 + +EventScript_16153B:: @ 816153B + end + +EventScript_16153C:: @ 816153C + multichoicedefault 0, 0, 42, 1, 0 + goto EventScript_161554 + +EventScript_161547:: @ 8161547 + end + +EventScript_161548:: @ 8161548 + multichoicedefault 0, 0, 42, 2, 0 + goto EventScript_161554 + +EventScript_161553:: @ 8161553 + end + +EventScript_161554:: @ 8161554 + switch VAR_RESULT + case 0, EventScript_161591 + case 1, EventScript_1615B9 + case 2, EventScript_1615E1 + case 3, EventScript_161609 + case 127, EventScript_161609 + end + +EventScript_161591:: @ 8161591 + setvar VAR_0x8006, 3 + setdynamicwarp MAP_ROCKET_HIDEOUT_B1F, 255, 24, 25 + compare_var_to_value VAR_0x403A, 3 + goto_if_eq EventScript_161609 + call EventScript_16160E + setvar VAR_0x403A, 3 + goto EventScript_161609 + +EventScript_1615B8:: @ 81615B8 + end + +EventScript_1615B9:: @ 81615B9 + setvar VAR_0x8006, 2 + setdynamicwarp MAP_ROCKET_HIDEOUT_B2F, 255, 28, 16 + compare_var_to_value VAR_0x403A, 2 + goto_if_eq EventScript_161609 + call EventScript_16160E + setvar VAR_0x403A, 2 + goto EventScript_161609 + +EventScript_1615E0:: @ 81615E0 + end + +EventScript_1615E1:: @ 81615E1 + setvar VAR_0x8006, 0 + setdynamicwarp MAP_ROCKET_HIDEOUT_B4F, 255, 20, 23 + compare_var_to_value VAR_0x403A, 0 + goto_if_eq EventScript_161609 + call EventScript_16160E + setvar VAR_0x403A, 0 + goto EventScript_161609 + +EventScript_161608:: @ 8161608 + end + +EventScript_161609:: @ 8161609 + special sub_80CB63C + releaseall + end + +EventScript_16160E:: @ 816160E + special sub_80CB63C + closemessage + waitse + special sub_80CB498 + waitstate + setflag FLAG_0x002 + return + +EventScript_16161B:: @ 816161B + msgbox gUnknown_81754DD + releaseall + end diff --git a/data/maps/RocketHideout_Elevator/text.inc b/data/maps/RocketHideout_Elevator/text.inc new file mode 100644 index 000000000..89de8f918 --- /dev/null +++ b/data/maps/RocketHideout_Elevator/text.inc @@ -0,0 +1,3 @@ +gUnknown_81754DD:: @ 81754DD + .string "It appears to need a key.$" + diff --git a/data/maps/Route1/map.json b/data/maps/Route1/map.json new file mode 100644 index 000000000..eae0e3eb5 --- /dev/null +++ b/data/maps/Route1/map.json @@ -0,0 +1,65 @@ +{ + "id": "MAP_ROUTE1", + "name": "Route1", + "layout": "LAYOUT_ROUTE1", + "music": "BGM_FRLG_ROUTE_1", + "region_map_section": "MAPSEC_ROUTE_1", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_VIRIDIAN_CITY", + "offset": -12, + "direction": "up" + }, + { + "map": "MAP_PALLET_TOWN", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "68", + "x": 6, + "y": 28, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route1_EventScript_167EFE", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 19, + "y": 16, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route1_EventScript_167F52", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 9, + "y": 31, + "elevation": 0, + "script": "Route1_EventScript_167F5B" + } + ] +} diff --git a/data/maps/Route1/scripts.inc b/data/maps/Route1/scripts.inc new file mode 100644 index 000000000..16bd02597 --- /dev/null +++ b/data/maps/Route1/scripts.inc @@ -0,0 +1,37 @@ +Route1_MapScripts:: @ 8167EFD + .byte 0 + +Route1_EventScript_167EFE:: @ 8167EFE + lock + faceplayer + checkflag FLAG_0x230 + goto_if_eq EventScript_167F48 + msgbox gUnknown_818329D + textcolor 3 + checkitemspace ITEM_POTION, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A6BF9 + getitemname 1, ITEM_POTION + playfanfare MUS_FANFA1 + message Text_1A51F6 + waitmessage + waitfanfare + additem ITEM_POTION, 1 + msgbox gUnknown_8183387 + call EventScript_1A6675 + setflag FLAG_0x230 + release + end + +EventScript_167F48:: @ 8167F48 + msgbox gUnknown_8183347 + release + end + +Route1_EventScript_167F52:: @ 8167F52 + msgbox gUnknown_81833B9, 2 + end + +Route1_EventScript_167F5B:: @ 8167F5B + msgbox gUnknown_818343A, 3 + end diff --git a/data/maps/Route1/text.inc b/data/maps/Route1/text.inc new file mode 100644 index 000000000..7b4150b03 --- /dev/null +++ b/data/maps/Route1/text.inc @@ -0,0 +1,28 @@ +gUnknown_818329D:: @ 818329D + .string "Hi!\n" + .string "I work at a POKéMON MART.\p" + .string "It's part of a convenient chain\n" + .string "selling all sorts of items.\p" + .string "Please, visit us in VIRIDIAN CITY.\p" + .string "I know, I'll give you a sample.\n" + .string "Here you go!$" + +gUnknown_8183347:: @ 8183347 + .string "Please come see us if you need\n" + .string "POKé BALLS for catching POKéMON.$" + +gUnknown_8183387:: @ 8183387 + .string "{PLAYER} put the POTION away in\n" + .string "the BAG's ITEMS POCKET.$" + +gUnknown_81833B9:: @ 81833B9 + .string "See those ledges along the road?\p" + .string "It's a bit scary, but you can jump\n" + .string "from them.\p" + .string "You can get back to PALLET TOWN\n" + .string "quicker that way.$" + +gUnknown_818343A:: @ 818343A + .string "ROUTE 1\n" + .string "PALLET TOWN - VIRIDIAN CITY$" + diff --git a/data/maps/Route10/map.json b/data/maps/Route10/map.json new file mode 100644 index 000000000..0038ec3d9 --- /dev/null +++ b/data/maps/Route10/map.json @@ -0,0 +1,264 @@ +{ + "id": "MAP_ROUTE10", + "name": "Route10", + "layout": "LAYOUT_ROUTE10", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_10", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_LAVENDER_TOWN", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_ROUTE9", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "40", + "x": 7, + "y": 60, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route10_EventScript_1A9FE5", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 4, + "y": 62, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route10_EventScript_1AA09F", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 15, + "y": 70, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route10_EventScript_1AA061", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 4, + "y": 68, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route10_EventScript_1AA0DD", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 13, + "y": 44, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route10_EventScript_1AA023", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 9, + "y": 27, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route10_EventScript_1A9FA7", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 10, + "y": 20, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "95", + "x": 10, + "y": 22, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "95", + "x": 10, + "y": 24, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_EventScript_1BDF13", + "flag": "20" + }, + { + "graphics_id": "95", + "x": 10, + "y": 26, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_EventScript_1BDF13", + "flag": "21" + } + ], + "warp_events": [ + { + "x": 8, + "y": 19, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 57, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": 5 + }, + { + "x": 7, + "y": 40, + "elevation": 3, + "dest_map": "MAP_POWER_PLANT", + "dest_warp_id": 1 + }, + { + "x": 13, + "y": 20, + "elevation": 0, + "dest_map": "MAP_ROUTE10_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 37, + "elevation": 3, + "dest_map": "MAP_POWER_PLANT", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 15, + "y": 59, + "elevation": 0, + "script": "Route10_EventScript_167FE4" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 42, + "elevation": 0, + "script": "Route10_EventScript_167FED" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 21, + "elevation": 0, + "script": "Route10_EventScript_167FDB" + }, + { + "type": "hidden_item", + "x": 10, + "y": 19, + "elevation": 0, + "item": "ITEM_SUPER_POTION", + "flag": "9", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 12, + "y": 40, + "elevation": 3, + "item": "ITEM_MAX_ETHER", + "flag": "10", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 6, + "y": 26, + "elevation": 3, + "item": "ITEM_CHERI_BERRY", + "flag": "126", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 17, + "y": 29, + "elevation": 3, + "item": "ITEM_PERSIM_BERRY", + "flag": "125", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 20, + "y": 57, + "elevation": 3, + "item": "ITEM_NANAB_BERRY", + "flag": "151", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route10/scripts.inc b/data/maps/Route10/scripts.inc new file mode 100644 index 000000000..96ce99c8e --- /dev/null +++ b/data/maps/Route10/scripts.inc @@ -0,0 +1,17 @@ +Route10_MapScripts:: @ 8167FD9 + .byte 0 + +Route10_EventScript_167FDA:: @ 8167FDA + end + +Route10_EventScript_167FDB:: @ 8167FDB + msgbox gUnknown_8184EC5, 3 + end + +Route10_EventScript_167FE4:: @ 8167FE4 + msgbox gUnknown_8184EE9, 3 + end + +Route10_EventScript_167FED:: @ 8167FED + msgbox gUnknown_8184EF5, 3 + end diff --git a/data/maps/Route10/text.inc b/data/maps/Route10/text.inc new file mode 100644 index 000000000..af45c8923 --- /dev/null +++ b/data/maps/Route10/text.inc @@ -0,0 +1,86 @@ +Text_184B8A:: @ 8184B8A + .string "Wow, you came all the way here?\n" + .string "Maybe you're a POKéMANIAC, too?\l" + .string "Want to see my collection?$" + +Text_184BE5:: @ 8184BE5 + .string "Humph.\n" + .string "I'm not angry!$" + +Text_184BFB:: @ 8184BFB + .string "I have more rare POKéMON at home!$" + +Text_184C1D:: @ 8184C1D + .string "Ha-hahah-ah-ha!$" + +Text_184C2D:: @ 8184C2D + .string "Ha-haha!\n" + .string "Not laughing!\l" + .string "Ha-hay fever! Haha-ha-choo!$" + +Text_184C60:: @ 8184C60 + .string "Haha-ha-choo!\n" + .string "Ha-choo!\l" + .string "Snort! Snivel!$" + +Text_184C86:: @ 8184C86 + .string "Hi, kid!\n" + .string "Want to see my POKéMON?$" + +Text_184CA7:: @ 8184CA7 + .string "Oh, no!\n" + .string "My POKéMON!$" + +Text_184CBB:: @ 8184CBB + .string "I don't like you.\n" + .string "I don't like anyone better than me!$" + +Text_184CF1:: @ 8184CF1 + .string "I've been out at a POKéMON GYM\n" + .string "a few times.\p" + .string "…But I always lose.$" + +Text_184D31:: @ 8184D31 + .string "Ohh!\n" + .string "After all my training!$" + +Text_184D4D:: @ 8184D4D + .string "I noticed some POKéMANIACS\n" + .string "prowling around.\p" + .string "Can you imagine? Them?\n" + .string "Up here in the mountains?$" + +Text_184DAA:: @ 8184DAA + .string "Ah!\n" + .string "This mountain air is delicious!$" + +Text_184DCE:: @ 8184DCE + .string "That cleared my head!$" + +Text_184DE4:: @ 8184DE4 + .string "I feel bloated on mountain air!$" + +Text_184E04:: @ 8184E04 + .string "I'm feeling a bit faint.\n" + .string "I haven't hiked in some time.$" + +Text_184E3B:: @ 8184E3B + .string "I'm too tired.\n" + .string "I wasn't up for it.$" + +Text_184E5E:: @ 8184E5E + .string "The POKéMON here in the mountains\n" + .string "are so chunky…\p" + .string "I wish there were pink POKéMON\n" + .string "with a floral pattern!$" + +gUnknown_8184EC5:: @ 8184EC5 + .string "ROCK TUNNEL\n" + .string "Detour to LAVENDER TOWN$" + +gUnknown_8184EE9:: @ 8184EE9 + .string "ROCK TUNNEL$" + +gUnknown_8184EF5:: @ 8184EF5 + .string "POWER PLANT$" + diff --git a/data/maps/Route10_PokemonCenter_1F/map.json b/data/maps/Route10_PokemonCenter_1F/map.json new file mode 100644 index 000000000..0dcb36f49 --- /dev/null +++ b/data/maps/Route10_PokemonCenter_1F/map.json @@ -0,0 +1,114 @@ +{ + "id": "MAP_ROUTE10_POKEMON_CENTER_1F", + "name": "Route10_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_ROUTE_10", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_PokemonCenter_1F_EventScript_16FC41", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_PokemonCenter_1F_EventScript_16FC53", + "flag": "0" + }, + { + "graphics_id": "27", + "x": 2, + "y": 3, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_PokemonCenter_1F_EventScript_16FC4A", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_PokemonCenter_1F_EventScript_16FC5C", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_PokemonCenter_1F_EventScript_16FC65", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 3 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": 3 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ROUTE10_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route10_PokemonCenter_1F/scripts.inc b/data/maps/Route10_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..7d47d07df --- /dev/null +++ b/data/maps/Route10_PokemonCenter_1F/scripts.inc @@ -0,0 +1,64 @@ +Route10_PokemonCenter_1F_MapScripts:: @ 816FC2F + map_script 3, Route10_PokemonCenter_1F_MapScript1_16FC3A + map_script 5, Route10_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +Route10_PokemonCenter_1F_MapScript1_16FC3A:: @ 816FC3A + setworldmapflag FLAG_WORLD_MAP_ROUTE10_POKEMON_CENTER_1F + setrespawn SPAWN_ROUTE10 + end + +Route10_PokemonCenter_1F_EventScript_16FC41:: @ 816FC41 + lock + faceplayer + call EventScript_1A6578 + release + end + +Route10_PokemonCenter_1F_EventScript_16FC4A:: @ 816FC4A + msgbox gUnknown_819E59D, 2 + end + +Route10_PokemonCenter_1F_EventScript_16FC53:: @ 816FC53 + msgbox gUnknown_819E523, 2 + end + +Route10_PokemonCenter_1F_EventScript_16FC5C:: @ 816FC5C + msgbox gUnknown_819E5D2, 2 + end + +Route10_PokemonCenter_1F_EventScript_16FC65:: @ 816FC65 + lock + faceplayer + call EventScript_16FCF1 + checkflag FLAG_0x2FA + goto_if_eq EventScript_16FCE7 + msgbox gUnknown_819E5FB, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AD1 + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, Special_GetPokedexCount + getnumberstring 2, VAR_0x8006 + call EventScript_16FCF1 + compare_var_to_value VAR_0x8006, 20 + goto_if 0, EventScript_1A7ABD + msgbox gUnknown_819E733 + checkitemspace ITEM_EVERSTONE, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AC7 + additem ITEM_EVERSTONE, 1 + giveitemfanfaremsg gUnknown_819E786, ITEM_EVERSTONE + setflag FLAG_0x2FA + msgbox gUnknown_819E7AF + release + end + +EventScript_16FCE7:: @ 816FCE7 + msgbox gUnknown_819E7AF + release + end + +EventScript_16FCF1:: @ 816FCF1 + getnumberstring 0, 20 + getitemname 1, ITEM_EVERSTONE + return diff --git a/data/maps/Route10_PokemonCenter_1F/text.inc b/data/maps/Route10_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..3360854fe --- /dev/null +++ b/data/maps/Route10_PokemonCenter_1F/text.inc @@ -0,0 +1,48 @@ +gUnknown_819E523:: @ 819E523 + .string "The types of POKéMON match up\n" + .string "differently with each other.\p" + .string "Every type is stronger than some\n" + .string "types and weaker than others.$" + +gUnknown_819E59D:: @ 819E59D + .string "A NUGGET is totally useless.\n" + .string "So I sold it for ¥5000.$" + +gUnknown_819E5D2:: @ 819E5D2 + .string "I heard that ghosts haunt\n" + .string "LAVENDER TOWN.$" + +gUnknown_819E5FB:: @ 819E5FB + .string "Oh… {PLAYER}!\n" + .string "I've been looking for you!\p" + .string "It's me, one of the ever-present\n" + .string "AIDES to PROF. OAK.\p" + .string "If your POKéDEX has complete data\n" + .string "on twenty species, I'm supposed to\l" + .string "give you a reward from PROF. OAK.\p" + .string "He entrusted me with this\n" + .string "EVERSTONE.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "twenty kinds of POKéMON?$" + +gUnknown_819E733:: @ 819E733 + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +gUnknown_819E786:: @ 819E786 + .string "{PLAYER} received the EVERSTONE\n" + .string "from the AIDE.$" + +gUnknown_819E7AF:: @ 819E7AF + .string "Making POKéMON evolve certainly\n" + .string "can add to the POKéDEX.\p" + .string "However, at times, you may not\n" + .string "want a certain POKéMON to evolve.\p" + .string "In that case, give the EVERSTONE\n" + .string "to that POKéMON.\p" + .string "It will prevent evolution according\n" + .string "to the PROFESSOR.$" + diff --git a/data/maps/Route10_PokemonCenter_2F/map.json b/data/maps/Route10_PokemonCenter_2F/map.json new file mode 100644 index 000000000..599efb07c --- /dev/null +++ b/data/maps/Route10_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_ROUTE10_POKEMON_CENTER_2F", + "name": "Route10_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_ROUTE_10", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route10_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ROUTE10_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route10_PokemonCenter_2F/scripts.inc b/data/maps/Route10_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..54b5d0036 --- /dev/null +++ b/data/maps/Route10_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +Route10_PokemonCenter_2F_MapScripts:: @ 816FCFA + map_script 2, Route10_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, Route10_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, Route10_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, Route10_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +Route10_PokemonCenter_2F_EventScript_16FD0F:: @ 816FD0F + call EventScript_1BB4A3 + end + +EventScript_16FD15:: @ 816FD15 + call EventScript_1BB6AB + end + +EventScript_16FD1B:: @ 816FD1B + call EventScript_1BB7DE + end diff --git a/data/maps/Route11/map.json b/data/maps/Route11/map.json new file mode 100644 index 000000000..1403fe6de --- /dev/null +++ b/data/maps/Route11/map.json @@ -0,0 +1,239 @@ +{ + "id": "MAP_ROUTE11", + "name": "Route11", + "layout": "LAYOUT_ROUTE11", + "music": "BGM_FRLG_ROUTE_11", + "region_map_section": "MAPSEC_ROUTE_11", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_VERMILION_CITY", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_ROUTE12", + "offset": -60, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "18", + "x": 19, + "y": 8, + "elevation": 3, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route11_EventScript_1A9B0D", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 16, + "y": 17, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route11_EventScript_1A9C81", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 31, + "y": 8, + "elevation": 3, + "movement_type": "15", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route11_EventScript_1A9B4B", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 28, + "y": 10, + "elevation": 3, + "movement_type": "40", + "movement_range_x": 8, + "movement_range_y": 4, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route11_EventScript_1A9BC7", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 38, + "y": 15, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route11_EventScript_1A9CBF", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 50, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route11_EventScript_1A9D3B", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 42, + "y": 8, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route11_EventScript_1A9C05", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 50, + "y": 14, + "elevation": 3, + "movement_type": "25", + "movement_range_x": 1, + "movement_range_y": 4, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route11_EventScript_1A9B89", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 57, + "y": 16, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route11_EventScript_1A9CFD", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 32, + "y": 18, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 6, + "script": "Route11_EventScript_1A9C43", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 42, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route11_EventScript_1BEAF0", + "flag": "449" + }, + { + "graphics_id": "92", + "x": 63, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route11_EventScript_1BEB99", + "flag": "462" + }, + { + "graphics_id": "92", + "x": 13, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route11_EventScript_1BEBA6", + "flag": "463" + } + ], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 0, + "dest_map": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 58, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", + "dest_warp_id": 0 + }, + { + "x": 65, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 3, + "y": 7, + "elevation": 3, + "script": "Route11_EventScript_167FF7" + }, + { + "type": "hidden_item", + "x": 58, + "y": 5, + "elevation": 0, + "item": "ITEM_ESCAPE_ROPE", + "flag": "41", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route11/scripts.inc b/data/maps/Route11/scripts.inc new file mode 100644 index 000000000..fa85a5bb8 --- /dev/null +++ b/data/maps/Route11/scripts.inc @@ -0,0 +1,6 @@ +Route11_MapScripts:: @ 8167FF6 + .byte 0 + +Route11_EventScript_167FF7:: @ 8167FF7 + msgbox gUnknown_8185308, 3 + end diff --git a/data/maps/Route11/text.inc b/data/maps/Route11/text.inc new file mode 100644 index 000000000..19515d010 --- /dev/null +++ b/data/maps/Route11/text.inc @@ -0,0 +1,113 @@ +Text_184F01:: @ 8184F01 + .string "Win, lose, or draw!$" + +Text_184F15:: @ 8184F15 + .string "Atcha!\n" + .string "Didn't go my way!$" + +Text_184F2E:: @ 8184F2E + .string "POKéMON is life!\n" + .string "And to live is to play games!$" + +Text_184F5D:: @ 8184F5D + .string "Competition!\n" + .string "I can't get enough!$" + +Text_184F7E:: @ 8184F7E + .string "I had a chance!$" + +Text_184F8E:: @ 8184F8E + .string "You can't be a coward in the world\n" + .string "of POKéMON!$" + +Text_184FBD:: @ 8184FBD + .string "Let's go, but don't cheat!$" + +Text_184FD8:: @ 8184FD8 + .string "Huh?\n" + .string "That's not right!$" + +Text_184FEF:: @ 8184FEF + .string "I did my best.\n" + .string "I have no regrets.$" + +Text_185011:: @ 8185011 + .string "Careful!\n" + .string "I'm laying down some cables!$" + +Text_185037:: @ 8185037 + .string "That was electric!$" + +Text_18504A:: @ 818504A + .string "Spread the word to save energy!$" + +Text_18506A:: @ 818506A + .string "I just became a TRAINER.\n" + .string "But, I think I can win.$" + +Text_18509B:: @ 818509B + .string "My POKéMON couldn't win…\n" + .string "Haven't they grown enough?$" + +Text_1850CF:: @ 81850CF + .string "What now?\n" + .string "Leave me alone!$" + +Text_1850E9:: @ 81850E9 + .string "Fwahaha!\n" + .string "I have never lost!$" + +Text_185105:: @ 8185105 + .string "My first loss!$" + +Text_185114:: @ 8185114 + .string "You were just lucky, that's all.$" + +Text_185135:: @ 8185135 + .string "I have never won before…$" + +Text_18514E:: @ 818514E + .string "I saw this coming…$" + +Text_185161:: @ 8185161 + .string "I was unlucky, as always.$" + +Text_18517B:: @ 818517B + .string "I'm the best in my class.\n" + .string "I train every morning.$" + +Text_1851AC:: @ 81851AC + .string "Darn!\n" + .string "My POKéMON need to be stronger!$" + +Text_1851D2:: @ 81851D2 + .string "There's a fat POKéMON that comes\n" + .string "down from the mountains.\p" + .string "I bet it'd be strong if you can\n" + .string "catch it.$" + +Text_185236:: @ 8185236 + .string "Watch out for live wires!$" + +Text_185250:: @ 8185250 + .string "Whoa!\n" + .string "You spark plug!$" + +Text_185266:: @ 8185266 + .string "Well, better get back to work.$" + +Text_185285:: @ 8185285 + .string "I raised my POKéMON carefully.\n" + .string "They should be ready by now!$" + +Text_1852C1:: @ 81852C1 + .string "Bye-bye!\n" + .string "Thank you, and good-bye!$" + +Text_1852E3:: @ 81852E3 + .string "Tch…\n" + .string "I better go find stronger ones!$" + +gUnknown_8185308:: @ 8185308 + .string "DIGLETT'S CAVE$" + diff --git a/data/maps/Route11_EastEntrance_1F/map.json b/data/maps/Route11_EastEntrance_1F/map.json new file mode 100644 index 000000000..a4e6448b4 --- /dev/null +++ b/data/maps/Route11_EastEntrance_1F/map.json @@ -0,0 +1,82 @@ +{ + "id": "MAP_ROUTE11_EAST_ENTRANCE_1F", + "name": "Route11_EastEntrance_1F", + "layout": "LAYOUT_ENTRANCE_1F", + "music": "BGM_FRLG_VERMILION_CITY", + "region_map_section": "MAPSEC_ROUTE_11", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route11_EastEntrance_1F_EventScript_16FD22", + "flag": "0" + }, + { + "graphics_id": "60", + "x": 4, + "y": 10, + "elevation": 0, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route11_EastEntrance_1F_EventScript_16FD2B", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": 2 + }, + { + "x": 11, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": 2 + }, + { + "x": 9, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route11_EastEntrance_1F/scripts.inc b/data/maps/Route11_EastEntrance_1F/scripts.inc new file mode 100644 index 000000000..476379753 --- /dev/null +++ b/data/maps/Route11_EastEntrance_1F/scripts.inc @@ -0,0 +1,10 @@ +Route11_EastEntrance_1F_MapScripts:: @ 816FD21 + .byte 0 + +Route11_EastEntrance_1F_EventScript_16FD22:: @ 816FD22 + msgbox gUnknown_819E8A6, 2 + end + +Route11_EastEntrance_1F_EventScript_16FD2B:: @ 816FD2B + msgbox gUnknown_819E97B, 2 + end diff --git a/data/maps/Route11_EastEntrance_1F/text.inc b/data/maps/Route11_EastEntrance_1F/text.inc new file mode 100644 index 000000000..335e7e3e9 --- /dev/null +++ b/data/maps/Route11_EastEntrance_1F/text.inc @@ -0,0 +1,20 @@ +Text_19E890:: @ 819E890 + .string "{PLAYER}{KUN}の バッグ\n" + .string "いっぱい みたい だね$" + +gUnknown_819E8A6:: @ 819E8A6 + .string "Don't you think it's hard to think\n" + .string "up good names for POKéMON?\p" + .string "Especially if you've caught a\n" + .string "whole bunch?\p" + .string "In LAVENDER TOWN, there's a man\n" + .string "who rates POKéMON nicknames.\p" + .string "He can even help you rename your\n" + .string "POKéMON, too.$" + +gUnknown_819E97B:: @ 819E97B + .string "If you're aiming to reach LAVENDER\n" + .string "TOWN, take ROCK TUNNEL.\p" + .string "You can get to ROCK TUNNEL from\n" + .string "CERULEAN CITY.$" + diff --git a/data/maps/Route11_EastEntrance_2F/map.json b/data/maps/Route11_EastEntrance_2F/map.json new file mode 100644 index 000000000..c6bdd37f5 --- /dev/null +++ b/data/maps/Route11_EastEntrance_2F/map.json @@ -0,0 +1,69 @@ +{ + "id": "MAP_ROUTE11_EAST_ENTRANCE_2F", + "name": "Route11_EastEntrance_2F", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "BGM_FRLG_VERMILION_CITY", + "region_map_section": "MAPSEC_ROUTE_11", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "18", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route11_EastEntrance_2F_EventScript_16FD5C", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route11_EastEntrance_2F_EventScript_16FDD8", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "Route11_EastEntrance_2F_EventScript_16FD35" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 1, + "elevation": 0, + "script": "Route11_EastEntrance_2F_EventScript_16FD53" + } + ] +} diff --git a/data/maps/Route11_EastEntrance_2F/scripts.inc b/data/maps/Route11_EastEntrance_2F/scripts.inc new file mode 100644 index 000000000..334e71ec4 --- /dev/null +++ b/data/maps/Route11_EastEntrance_2F/scripts.inc @@ -0,0 +1,93 @@ +Route11_EastEntrance_2F_MapScripts:: @ 816FD34 + .byte 0 + +Route11_EastEntrance_2F_EventScript_16FD35:: @ 816FD35 + lockall + checkflag FLAG_0x253 + goto_if_eq EventScript_16FD49 + msgbox gUnknown_819EC8A + releaseall + end + +EventScript_16FD49:: @ 816FD49 + msgbox gUnknown_819ECD9 + releaseall + end + +Route11_EastEntrance_2F_EventScript_16FD53:: @ 816FD53 + msgbox gUnknown_819ED1F, 3 + end + +Route11_EastEntrance_2F_EventScript_16FD5C:: @ 816FD5C + lock + faceplayer + setvar VAR_0x8008, 4 + call EventScript_1A8CAD + checkflag FLAG_0x251 + goto_if_eq EventScript_16FDCE + msgbox gUnknown_81A597B, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16FDB6 + call EventScript_1A8CBD + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_16FDB6 + call EventScript_1A8CC9 + compare_var_to_var VAR_RESULT, VAR_0x8009 + goto_if 5, EventScript_16FDC0 + call EventScript_1A8CD9 + msgbox gUnknown_81A59DA + setflag FLAG_0x251 + release + end + +EventScript_16FDB6:: @ 816FDB6 + msgbox gUnknown_81A59B6 + release + end + +EventScript_16FDC0:: @ 816FDC0 + getspeciesname 0, VAR_0x8009 + msgbox gUnknown_81A59C6 + release + end + +EventScript_16FDCE:: @ 816FDCE + msgbox gUnknown_81A59E7 + release + end + +Route11_EastEntrance_2F_EventScript_16FDD8:: @ 816FDD8 + lock + faceplayer + call EventScript_16FE64 + checkflag FLAG_0x252 + goto_if_eq EventScript_16FE5A + msgbox gUnknown_819E9E5, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AD1 + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, Special_GetPokedexCount + getnumberstring 2, VAR_0x8006 + call EventScript_16FE64 + compare_var_to_value VAR_0x8006, 30 + goto_if 0, EventScript_1A7ABD + msgbox gUnknown_819EAE4 + checkitemspace ITEM_ITEMFINDER, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AC7 + additem ITEM_ITEMFINDER, 1 + giveitemfanfaremsg gUnknown_819EB37, ITEM_ITEMFINDER + setflag FLAG_0x252 + msgbox gUnknown_819EB59 + release + end + +EventScript_16FE5A:: @ 816FE5A + msgbox gUnknown_819EB59 + release + end + +EventScript_16FE64:: @ 816FE64 + getnumberstring 0, 30 + getitemname 1, ITEM_ITEMFINDER + return diff --git a/data/maps/Route11_EastEntrance_2F/text.inc b/data/maps/Route11_EastEntrance_2F/text.inc new file mode 100644 index 000000000..aa693a495 --- /dev/null +++ b/data/maps/Route11_EastEntrance_2F/text.inc @@ -0,0 +1,52 @@ +gUnknown_819E9E5:: @ 819E9E5 + .string "Hi! Remember me?\n" + .string "I'm one of PROF. OAK's AIDES.\p" + .string "If your POKéDEX has complete data\n" + .string "on {STR_VAR_1} species, I'm supposed to\l" + .string "give you a reward.\p" + .string "PROF. OAK entrusted me with the\n" + .string "{STR_VAR_2} for you.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "{STR_VAR_1} kinds of POKéMON?$" + +gUnknown_819EAE4:: @ 819EAE4 + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +gUnknown_819EB37:: @ 819EB37 + .string "{PLAYER} received the {STR_VAR_2}\n" + .string "from the AIDE.$" + +gUnknown_819EB59:: @ 819EB59 + .string "There are items on the ground that\n" + .string "may be hidden from view.\p" + .string "Use the ITEMFINDER to detect any\n" + .string "hidden items close to you.\p" + .string "The machine is a bit limited.\n" + .string "It can't pinpoint item locations.\p" + .string "What it does is show the direction\n" + .string "where the item is.\p" + .string "Use it to get your bearings, then\n" + .string "search the suspect area by hand.$" + +gUnknown_819EC8A:: @ 819EC8A + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "A big POKéMON is asleep on a road!$" + +gUnknown_819ECD9:: @ 819ECD9 + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "What a breathtaking view!$" + +gUnknown_819ED1F:: @ 819ED1F + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "To get to LAVENDER TOWN from\n" + .string "CERULEAN CITY…\p" + .string "ROCK TUNNEL appears to be a good\n" + .string "route to take.$" + diff --git a/data/maps/Route12/map.json b/data/maps/Route12/map.json new file mode 100644 index 000000000..76603c9d5 --- /dev/null +++ b/data/maps/Route12/map.json @@ -0,0 +1,289 @@ +{ + "id": "MAP_ROUTE12", + "name": "Route12", + "layout": "LAYOUT_ROUTE12", + "music": "BGM_FRLG_ROUTE_11", + "region_map_section": "MAPSEC_ROUTE_12", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_LAVENDER_TOWN", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE13", + "offset": -48, + "direction": "down" + }, + { + "map": "MAP_ROUTE11", + "offset": 60, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "57", + "x": 17, + "y": 32, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route12_EventScript_1AA451", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 9, + "y": 40, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route12_EventScript_1AA48F", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 16, + "y": 47, + "elevation": 3, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route12_EventScript_1AA4CD", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 13, + "y": 59, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route12_EventScript_1AA50B", + "flag": "0" + }, + { + "graphics_id": "109", + "x": 14, + "y": 70, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_EventScript_168014", + "flag": "84" + }, + { + "graphics_id": "26", + "x": 13, + "y": 92, + "elevation": 3, + "movement_type": "37", + "movement_range_x": 4, + "movement_range_y": 4, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route12_EventScript_1AA587", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 10, + "y": 99, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route12_EventScript_1AA5C5", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 18, + "y": 108, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route12_EventScript_1AA549", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 11, + "y": 100, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "92", + "x": 18, + "y": 36, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_EventScript_1BE7B0", + "flag": "382" + }, + { + "graphics_id": "92", + "x": 9, + "y": 101, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_EventScript_1BE7BD", + "flag": "383" + }, + { + "graphics_id": "29", + "x": 19, + "y": 64, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_EventScript_1AA649", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 19, + "y": 63, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_EventScript_1AA603", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 12, + "y": 111, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_EventScript_1BDF13", + "flag": "19" + } + ], + "warp_events": [ + { + "x": 12, + "y": 86, + "elevation": 0, + "dest_map": "MAP_ROUTE12_FISHING_HOUSE", + "dest_warp_id": 1 + }, + { + "x": 14, + "y": 15, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "dest_warp_id": 0 + }, + { + "x": 15, + "y": 15, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "dest_warp_id": 1 + }, + { + "x": 14, + "y": 21, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 17, + "y": 13, + "elevation": 0, + "script": "Route12_EventScript_1680A3" + }, + { + "type": "bg_event_type_0", + "x": 15, + "y": 69, + "elevation": 0, + "script": "Route12_EventScript_1680AC" + }, + { + "type": "hidden_item", + "x": 18, + "y": 57, + "elevation": 3, + "item": "ITEM_HYPER_POTION", + "flag": "42", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 14, + "y": 70, + "elevation": 3, + "item": "ITEM_LEFTOVERS", + "flag": "131", + "unknown": 129 + }, + { + "type": "hidden_item", + "x": 9, + "y": 116, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "130", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route12/scripts.inc b/data/maps/Route12/scripts.inc new file mode 100644 index 000000000..81be7952e --- /dev/null +++ b/data/maps/Route12/scripts.inc @@ -0,0 +1,67 @@ +Route12_MapScripts:: @ 8168000 + map_script 5, Route12_MapScript1_168006 + .byte 0 + +Route12_MapScript1_168006:: @ 8168006 + checkflag FLAG_0x807 + call_if 1, EventScript_168010 + end + +EventScript_168010:: @ 8168010 + removeobject VAR_LAST_TALKED + return + +Route12_EventScript_168014:: @ 8168014 + lock + faceplayer + checkflag FLAG_0x23D + goto_if 0, EventScript_168099 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + msgbox gUnknown_81853CC, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16808D + call EventScript_1A924B + setwildbattle SPECIES_SNORLAX, 30, ITEM_NONE + waitse + playmoncry SPECIES_SNORLAX, 2 + delay 40 + waitmoncry + setflag FLAG_0x054 + setflag FLAG_0x807 + setflag FLAG_0x253 + dowildbattle + clearflag FLAG_0x807 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16808F + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_16808F + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_16808F + release + end + +EventScript_16808D:: @ 816808D + release + end + +EventScript_16808F:: @ 816808F + msgbox gUnknown_8185383 + release + end + +EventScript_168099:: @ 8168099 + msgbox gUnknown_8185317 + release + end + +Route12_EventScript_1680A3:: @ 81680A3 + msgbox gUnknown_8185797, 3 + end + +Route12_EventScript_1680AC:: @ 81680AC + msgbox gUnknown_81857B3, 3 + end diff --git a/data/maps/Route12/text.inc b/data/maps/Route12/text.inc new file mode 100644 index 000000000..bf82fcf59 --- /dev/null +++ b/data/maps/Route12/text.inc @@ -0,0 +1,111 @@ +gUnknown_8185317:: @ 8185317 + .string "A POKéMON is sprawled out in\n" + .string "a deep and comfortable slumber.$" + +Text_185354:: @ 8185354 + .string "SNORLAX woke up!\p" + .string "It attacked in a grumpy rage!$" + +gUnknown_8185383:: @ 8185383 + .string "SNORLAX calmed down.\n" + .string "It gave a huge yawn…\l" + .string "And returned to the mountains.$" + +gUnknown_81853CC:: @ 81853CC + .string "Want to use the POKé FLUTE?$" + +Text_1853E8:: @ 81853E8 + .string "{PLAYER} played the POKé FLUTE.$" + +Text_185402:: @ 8185402 + .string "Yeah!\n" + .string "I got a bite here!$" + +Text_18541B:: @ 818541B + .string "Tch!\n" + .string "Just a small fry…$" + +Text_185432:: @ 8185432 + .string "Hang on!\n" + .string "My line's snagged!$" + +Text_18544E:: @ 818544E + .string "Be patient.\n" + .string "Fishing is a waiting game.$" + +Text_185475:: @ 8185475 + .string "That one got away!$" + +Text_185488:: @ 8185488 + .string "With a better ROD, I could catch\n" + .string "better POKéMON…$" + +Text_1854B9:: @ 81854B9 + .string "I'm searching for a MOON STONE.\n" + .string "Have you found one?$" + +Text_1854ED:: @ 81854ED + .string "Oww!$" + +Text_1854F2:: @ 81854F2 + .string "I could have made my POKéMON\n" + .string "evolve with a MOON STONE.\p" + .string "I would have won then, I bet.$" + +Text_185547:: @ 8185547 + .string "Electricity is my specialty.\p" + .string "I don't know a thing about POKéMON\n" + .string "of the sea, though.$" + +Text_18559B:: @ 818559B + .string "Unplugged!$" + +Text_1855A6:: @ 81855A6 + .string "Water conducts electricity, so you\n" + .string "should zap sea POKéMON.$" + +Text_1855E1:: @ 81855E1 + .string "The FISHING FOOL versus POKéMON\n" + .string "KID!$" + +Text_185606:: @ 8185606 + .string "Touch too much!$" + +Text_185616:: @ 8185616 + .string "I guess you get to be good at\n" + .string "what you like.\p" + .string "Well, you beat me at POKéMON,\n" + .string "but you can't top me at fishing.$" + +Text_185682:: @ 8185682 + .string "I love fishing, don't get me wrong.\p" + .string "But it'd be best if I also had more\n" + .string "work.$" + +Text_1856D0:: @ 81856D0 + .string "It's not easy…$" + +Text_1856DF:: @ 81856DF + .string "It's all right.\n" + .string "Losing doesn't bug me anymore.$" + +Text_18570E:: @ 818570E + .string "What's catching?\p" + .string "You never know what you could\n" + .string "catch!$" + +Text_185744:: @ 8185744 + .string "Lost it!$" + +Text_18574D:: @ 818574D + .string "What, MAGIKARP?\p" + .string "I catch them all the time, sure.\n" + .string "But, boy are they wimpy.$" + +gUnknown_8185797:: @ 8185797 + .string "ROUTE 12 \n" + .string "North to LAVENDER$" + +gUnknown_81857B3:: @ 81857B3 + .string "SPORTFISHING AREA$" + diff --git a/data/maps/Route12_FishingHouse/map.json b/data/maps/Route12_FishingHouse/map.json new file mode 100644 index 000000000..6628b4966 --- /dev/null +++ b/data/maps/Route12_FishingHouse/map.json @@ -0,0 +1,63 @@ +{ + "id": "MAP_ROUTE12_FISHING_HOUSE", + "name": "Route12_FishingHouse", + "layout": "LAYOUT_HOUSE4", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_ROUTE_12", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "57", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_FishingHouse_EventScript_16FF0C", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 8, + "elevation": 0, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": 0 + }, + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 8, + "elevation": 0, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 9, + "y": 1, + "elevation": 0, + "script": "Route12_FishingHouse_EventScript_170067" + } + ] +} diff --git a/data/maps/Route12_FishingHouse/scripts.inc b/data/maps/Route12_FishingHouse/scripts.inc new file mode 100644 index 000000000..d4472473f --- /dev/null +++ b/data/maps/Route12_FishingHouse/scripts.inc @@ -0,0 +1,116 @@ +Route12_FishingHouse_MapScripts:: @ 816FF0B + .byte 0 + +Route12_FishingHouse_EventScript_16FF0C:: @ 816FF0C + lock + faceplayer + checkflag FLAG_0x255 + goto_if_eq EventScript_16FF7F + msgbox gUnknown_819EFE0, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16FF34 + msgbox gUnknown_819F1FA + release + end + +EventScript_16FF34:: @ 816FF34 + checkitemspace ITEM_SUPER_ROD, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16FF75 + additem ITEM_SUPER_ROD, 1 + msgbox gUnknown_819F05B + giveitemfanfaremsg gUnknown_819F0B2, ITEM_SUPER_ROD + setflag FLAG_0x255 + msgbox gUnknown_819F0EB + release + end + +EventScript_16FF75:: @ 816FF75 + msgbox gUnknown_819F494 + release + end + +EventScript_16FF7F:: @ 816FF7F + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + setvar VAR_0x8004, SPECIES_MAGIKARP + specialvar VAR_RESULT, sub_80CC48C + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16FFF5 + special sub_80A096C + msgbox gUnknown_819F2DB + special sub_80BF8FC + waitstate + copyvar VAR_RESULT, VAR_0x8004 + compare_var_to_value VAR_RESULT, 6 + goto_if 4, EventScript_16FFFF + special sub_80A0984 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_170001 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_17000B + compare_var_to_value VAR_RESULT, 3 + goto_if_eq EventScript_170031 + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_17001E + release + end + +EventScript_16FFF5:: @ 816FFF5 + msgbox gUnknown_819F217 + release + end + +EventScript_16FFFF:: @ 816FFFF + release + end + +EventScript_170001:: @ 8170001 + msgbox gUnknown_819F468 + release + end + +EventScript_17000B:: @ 817000B + checkflag FLAG_0x29C + goto_if 0, EventScript_170031 + msgbox gUnknown_819F40A + release + end + +EventScript_17001E:: @ 817001E + checkflag FLAG_0x29C + goto_if 0, EventScript_170031 + msgbox gUnknown_819F3CB + release + end + +EventScript_170031:: @ 8170031 + setflag FLAG_0x29C + msgbox gUnknown_819F31B + giveitem ITEM_NET_BALL + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_17005D + msgbox gUnknown_819F395 + release + end + +EventScript_17005D:: @ 817005D + msgbox gUnknown_819F494 + release + end + +Route12_FishingHouse_EventScript_170067:: @ 8170067 + lockall + checkflag FLAG_0x29C + goto_if_eq EventScript_17007B + msgbox gUnknown_819F50C + releaseall + end + +EventScript_17007B:: @ 817007B + special sub_80A096C + msgbox gUnknown_819F4CF + releaseall + end diff --git a/data/maps/Route12_FishingHouse/text.inc b/data/maps/Route12_FishingHouse/text.inc new file mode 100644 index 000000000..4f1f3f1fd --- /dev/null +++ b/data/maps/Route12_FishingHouse/text.inc @@ -0,0 +1,89 @@ +gUnknown_819EFE0:: @ 819EFE0 + .string "I'm the FISHING GURU's younger\n" + .string "brother.\p" + .string "I simply looove fishing!\n" + .string "I can't bear to go without.\p" + .string "Tell me, do you like to fish?$" + +gUnknown_819F05B:: @ 819F05B + .string "Grand! I like your style.\n" + .string "I think we can be friends.\p" + .string "Take this and fish, young friend!$" + +gUnknown_819F0B2:: @ 819F0B2 + .string "{PLAYER} received a SUPER ROD from\n" + .string "the FISHING GURU's brother.$" + +gUnknown_819F0EB:: @ 819F0EB + .string "Fishing is a way of life!\n" + .string "It is like the finest poetry.\p" + .string "From the seas to rivers, go out\n" + .string "and land the big one, my friend.\p" + .string "Now, I have a request.\p" + .string "If you catch a big MAGIKARP \n" + .string "with that ROD, I want to see it.\p" + .string "As much as I love to fish, I also\n" + .string "love seeing gigantic MAGIKARP.$" + +gUnknown_819F1FA:: @ 819F1FA + .string "Oh…\n" + .string "That's so disappointing…$" + +gUnknown_819F217:: @ 819F217 + .string "Hello there, {PLAYER}!\n" + .string "Have you been fishing?\p" + .string "Try fishing with the SUPER ROD in\n" + .string "any body of water.\p" + .string "You'll find different POKéMON in\n" + .string "different places.\p" + .string "Oh, and don't forget to bring me\n" + .string "gigantic MAGIKARP.$" + +gUnknown_819F2DB:: @ 819F2DB + .string "Oh? {PLAYER}?\n" + .string "Why, if it isn't a MAGIKARP!\p" + .string "Allow me to see it, quick!$" + +gUnknown_819F31B:: @ 819F31B + .string "… … …Whoa!\n" + .string "{STR_VAR_2} inches!\p" + .string "You have a rare appreciation for\n" + .string "the fine, poetic aspects of fishing!\p" + .string "You must take this.\n" + .string "I insist!$" + +gUnknown_819F395:: @ 819F395 + .string "I'll look forward to seeing greater\n" + .string "records from you!$" + +gUnknown_819F3CB:: @ 819F3CB + .string "Huh?\n" + .string "{STR_VAR_2} inches?\p" + .string "This is the same size as the one\n" + .string "I saw before.$" + +gUnknown_819F40A:: @ 819F40A + .string "Hmm…\n" + .string "This one is {STR_VAR_2} inches long.\p" + .string "It doesn't measure up to the\n" + .string "{STR_VAR_3}-inch one you brought before.$" + +gUnknown_819F468:: @ 819F468 + .string "Uh… That doesn't look much like\n" + .string "a MAGIKARP.$" + +gUnknown_819F494:: @ 819F494 + .string "Oh, no!\p" + .string "I had a gift for you, but you have\n" + .string "no room for it.$" + +gUnknown_819F4CF:: @ 819F4CF + .string "The most gigantic MAGIKARP\n" + .string "I have ever witnessed…\p" + .string "{STR_VAR_3} inches!$" + +gUnknown_819F50C:: @ 819F50C + .string "It's a blank chart of some sort.\p" + .string "It has spaces for writing in\n" + .string "records of some kind.$" + diff --git a/data/maps/Route12_NorthEntrance_1F/map.json b/data/maps/Route12_NorthEntrance_1F/map.json new file mode 100644 index 000000000..4eb283e56 --- /dev/null +++ b/data/maps/Route12_NorthEntrance_1F/map.json @@ -0,0 +1,69 @@ +{ + "id": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "name": "Route12_NorthEntrance_1F", + "layout": "LAYOUT_ROUTE12_NORTH_ENTRANCE_1F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_12", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_NorthEntrance_1F_EventScript_16FE6E", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": 3 + }, + { + "x": 6, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": 3 + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route12_NorthEntrance_1F/scripts.inc b/data/maps/Route12_NorthEntrance_1F/scripts.inc new file mode 100644 index 000000000..d91f0c7c8 --- /dev/null +++ b/data/maps/Route12_NorthEntrance_1F/scripts.inc @@ -0,0 +1,6 @@ +Route12_NorthEntrance_1F_MapScripts:: @ 816FE6D + .byte 0 + +Route12_NorthEntrance_1F_EventScript_16FE6E:: @ 816FE6E + msgbox gUnknown_819EDA7, 2 + end diff --git a/data/maps/Route12_NorthEntrance_1F/text.inc b/data/maps/Route12_NorthEntrance_1F/text.inc new file mode 100644 index 000000000..32f34428f --- /dev/null +++ b/data/maps/Route12_NorthEntrance_1F/text.inc @@ -0,0 +1,4 @@ +gUnknown_819EDA7:: @ 819EDA7 + .string "There's a lookout spot upstairs.\n" + .string "The view is magnificent.$" + diff --git a/data/maps/Route12_NorthEntrance_2F/map.json b/data/maps/Route12_NorthEntrance_2F/map.json new file mode 100644 index 000000000..b14f95f2c --- /dev/null +++ b/data/maps/Route12_NorthEntrance_2F/map.json @@ -0,0 +1,56 @@ +{ + "id": "MAP_ROUTE12_NORTH_ENTRANCE_2F", + "name": "Route12_NorthEntrance_2F", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_12", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "22", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route12_NorthEntrance_2F_EventScript_16FE8A", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "Route12_NorthEntrance_2F_EventScript_16FE78" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 1, + "elevation": 0, + "script": "Route12_NorthEntrance_2F_EventScript_16FE81" + } + ] +} diff --git a/data/maps/Route12_NorthEntrance_2F/scripts.inc b/data/maps/Route12_NorthEntrance_2F/scripts.inc new file mode 100644 index 000000000..3c8727208 --- /dev/null +++ b/data/maps/Route12_NorthEntrance_2F/scripts.inc @@ -0,0 +1,48 @@ +Route12_NorthEntrance_2F_MapScripts:: @ 816FE77 + .byte 0 + +Route12_NorthEntrance_2F_EventScript_16FE78:: @ 816FE78 + msgbox gUnknown_819EF5D, 3 + end + +Route12_NorthEntrance_2F_EventScript_16FE81:: @ 816FE81 + msgbox gUnknown_819EFA0, 3 + end + +Route12_NorthEntrance_2F_EventScript_16FE8A:: @ 816FE8A + lock + faceplayer + checkflag FLAG_0x25B + goto_if_eq EventScript_16FF01 + checkplayergender + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16FEE5 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_16FEEE + checkitemspace ITEM_TM27, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16FEF7 + additem ITEM_TM27, 1 + giveitemfanfaremsg gUnknown_819EE9F, ITEM_TM27 + msgbox gUnknown_819EEC6 + setflag FLAG_0x25B + release + end + +EventScript_16FEE5:: @ 816FEE5 + msgbox gUnknown_819EDE1 + return + +EventScript_16FEEE:: @ 816FEEE + msgbox gUnknown_819EE40 + return + +EventScript_16FEF7:: @ 816FEF7 + msgbox gUnknown_819EF3F + release + end + +EventScript_16FF01:: @ 816FF01 + msgbox gUnknown_819EEC6 + release + end diff --git a/data/maps/Route12_NorthEntrance_2F/text.inc b/data/maps/Route12_NorthEntrance_2F/text.inc new file mode 100644 index 000000000..df2ac596b --- /dev/null +++ b/data/maps/Route12_NorthEntrance_2F/text.inc @@ -0,0 +1,35 @@ +gUnknown_819EDE1:: @ 819EDE1 + .string "My POKéMON's ashes are stored in\n" + .string "POKéMON TOWER.\p" + .string "You can have this TM.\n" + .string "I don't need it anymore…$" + +gUnknown_819EE40:: @ 819EE40 + .string "My POKéMON's ashes are stored in\n" + .string "POKéMON TOWER.\p" + .string "You can have this TM.\n" + .string "I don't need it anymore…$" + +gUnknown_819EE9F:: @ 819EE9F + .string "{PLAYER} received TM27\n" + .string "from the little girl.$" + +gUnknown_819EEC6:: @ 819EEC6 + .string "TM27 is a move called RETURN…\p" + .string "If you treat your POKéMON good,\n" + .string "it will return your love by working\l" + .string "its hardest in battle.$" + +gUnknown_819EF3F:: @ 819EF3F + .string "You don't have room for this.$" + +gUnknown_819EF5D:: @ 819EF5D + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "There's a man fishing!$" + +gUnknown_819EFA0:: @ 819EFA0 + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "It's POKéMON TOWER!$" + diff --git a/data/maps/Route13/map.json b/data/maps/Route13/map.json new file mode 100644 index 000000000..f67b3f3b5 --- /dev/null +++ b/data/maps/Route13/map.json @@ -0,0 +1,205 @@ +{ + "id": "MAP_ROUTE13", + "name": "Route13", + "layout": "LAYOUT_ROUTE13", + "music": "BGM_FRLG_ROUTE_11", + "region_map_section": "MAPSEC_ROUTE_13", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE12", + "offset": 48, + "direction": "up" + }, + { + "map": "MAP_ROUTE14", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "40", + "x": 62, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route13_EventScript_1AA803", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 63, + "y": 12, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route13_EventScript_1AA749", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 54, + "y": 11, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route13_EventScript_1AA841", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 42, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route13_EventScript_1AA70B", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 43, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route13_EventScript_1AA6CD", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 35, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route13_EventScript_1AA87F", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 29, + "y": 11, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route13_EventScript_1AA8BD", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 9, + "y": 14, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route13_EventScript_1AA7C5", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 16, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route13_EventScript_1AA787", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 14, + "y": 8, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route13_EventScript_1AA68F", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 44, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route13_EventScript_1BDF13", + "flag": "18" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 41, + "y": 12, + "elevation": 0, + "script": "Route13_EventScript_1680C8" + }, + { + "type": "bg_event_type_0", + "x": 37, + "y": 6, + "elevation": 0, + "script": "Route13_EventScript_1680BF" + }, + { + "type": "bg_event_type_0", + "x": 21, + "y": 14, + "elevation": 0, + "script": "Route13_EventScript_1680B6" + }, + { + "type": "hidden_item", + "x": 23, + "y": 14, + "elevation": 3, + "item": "ITEM_PP_UP", + "flag": "15", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route13/scripts.inc b/data/maps/Route13/scripts.inc new file mode 100644 index 000000000..fcec8204a --- /dev/null +++ b/data/maps/Route13/scripts.inc @@ -0,0 +1,14 @@ +Route13_MapScripts:: @ 81680B5 + .byte 0 + +Route13_EventScript_1680B6:: @ 81680B6 + msgbox gUnknown_8185DB7, 3 + end + +Route13_EventScript_1680BF:: @ 81680BF + msgbox gUnknown_8185DEF, 3 + end + +Route13_EventScript_1680C8:: @ 81680C8 + msgbox gUnknown_8185E2C, 3 + end diff --git a/data/maps/Route13/text.inc b/data/maps/Route13/text.inc new file mode 100644 index 000000000..1b570d424 --- /dev/null +++ b/data/maps/Route13/text.inc @@ -0,0 +1,162 @@ +Text_1857C5:: @ 81857C5 + .string "JES: If I win, I'm going to\n" + .string "propose to GIA.$" + +Text_1857F1:: @ 81857F1 + .string "JES: Oh, please, why couldn't you\n" + .string "let us win?$" + +Text_18581F:: @ 818581F + .string "JES: Oh, GIA, forgive me,\n" + .string "my love!$" + +Text_185842:: @ 8185842 + .string "JES: GIA and I, we'll be\n" + .string "together forever.\p" + .string "We won't battle unless you have\n" + .string "two POKéMON of your own.$" + +Text_1858A6:: @ 81858A6 + .string "GIA: Hey, JES…\p" + .string "If we win, I'll marry you!$" + +Text_1858D0:: @ 81858D0 + .string "GIA: Oh, but why?$" + +Text_1858E2:: @ 81858E2 + .string "GIA: JES, you silly!\n" + .string "You ruined this!$" + +Text_185908:: @ 8185908 + .string "GIA: I can't bear to battle\n" + .string "without my JES!\p" + .string "Don't you have one more POKéMON?$" + +Text_185955:: @ 8185955 + .string "My bird POKéMON want to battle\n" + .string "with you!$" + +Text_18597E:: @ 818597E + .string "My PIDGEY and PIDGEOTTO combo\n" + .string "lost?$" + +Text_1859A2:: @ 81859A2 + .string "My POKéMON look happy even though\n" + .string "they lost.$" + +Text_1859CF:: @ 81859CF + .string "I'm told I'm good for a kid.$" + +Text_1859EC:: @ 81859EC + .string "Ohh!\n" + .string "I lost!$" + +Text_1859F9:: @ 81859F9 + .string "I want to become a good TRAINER.\n" + .string "I'll train hard, just watch.$" + +Text_185A37:: @ 8185A37 + .string "Wow!\n" + .string "Your BADGES are too cool!$" + +Text_185A56:: @ 8185A56 + .string "Not enough!$" + +Text_185A62:: @ 8185A62 + .string "You got those BADGES from GYM\n" + .string "LEADERS. I know!$" + +Text_185A91:: @ 8185A91 + .string "My cute POKéMON wish to make your\n" + .string "acquaintance.$" + +Text_185AC1:: @ 8185AC1 + .string "Good going!\n" + .string "You totally won!$" + +Text_185ADE:: @ 8185ADE + .string "You have to make POKéMON battle\n" + .string "to toughen them up.$" + +Text_185B12:: @ 8185B12 + .string "I found CARBOS in a cave once\n" + .string "while I was spelunking.$" + +Text_185B48:: @ 8185B48 + .string "Oh, too bad!\n" + .string "I just messed up!$" + +Text_185B67:: @ 8185B67 + .string "CARBOS boosted the SPEED of my\n" + .string "POKéMON.$" + +Text_185B8F:: @ 8185B8F + .string "I'm not going to lose.\n" + .string "Not when the wind's blowing my way!$" + +Text_185BCA:: @ 8185BCA + .string "The wind turned!$" + +Text_185BDB:: @ 8185BDB + .string "I'm beat.\n" + .string "I guess I'll FLY home.$" + +Text_185BFC:: @ 8185BFC + .string "Sure, I'll play with you, sweetie.$" + +Text_185C1F:: @ 8185C1F + .string "Oh!\n" + .string "You little beast!$" + +Text_185C35:: @ 8185C35 + .string "I wonder which is stronger, male or\n" + .string "female POKéMON?$" + +Text_185C69:: @ 8185C69 + .string "Do you want to battle some\n" + .string "POKéMON with me?$" + +Text_185C95:: @ 8185C95 + .string "It's over already?$" + +Text_185CA8:: @ 8185CA8 + .string "I don't know anything about\n" + .string "POKéMON actually.\p" + .string "The ones I use… I picked them\n" + .string "for their looks!$" + +Text_185D05:: @ 8185D05 + .string "What're you lookin' at?$" + +Text_185D1D:: @ 8185D1D + .string "Dang!\n" + .string "Stripped gears!$" + +Text_185D33:: @ 8185D33 + .string "Get lost!$" + +Text_185D3D:: @ 8185D3D + .string "I always go with bird POKéMON.\n" + .string "I've dedicated myself to them.$" + +Text_185D7B:: @ 8185D7B + .string "Out of power!$" + +Text_185D89:: @ 8185D89 + .string "I wish I could fly like PIDGEY and\n" + .string "PIDGEOTTO…$" + +gUnknown_8185DB7:: @ 8185DB7 + .string "TRAINER TIPS\p" + .string "Look, look!\n" + .string "Look to the left of that post!$" + +gUnknown_8185DEF:: @ 8185DEF + .string "TRAINER TIPS\p" + .string "Use SELECT to switch items in the\n" + .string "ITEMS window.$" + +gUnknown_8185E2C:: @ 8185E2C + .string "ROUTE 13\n" + .string "North to SILENCE BRIDGE$" + diff --git a/data/maps/Route14/map.json b/data/maps/Route14/map.json new file mode 100644 index 000000000..95ba61886 --- /dev/null +++ b/data/maps/Route14/map.json @@ -0,0 +1,252 @@ +{ + "id": "MAP_ROUTE14", + "name": "Route14", + "layout": "LAYOUT_ROUTE14", + "music": "BGM_FRLG_ROUTE_11", + "region_map_section": "MAPSEC_ROUTE_14", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE15", + "offset": 40, + "direction": "left" + }, + { + "map": "MAP_ROUTE13", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "53", + "x": 7, + "y": 37, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route14_EventScript_1AA9B5", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 18, + "y": 35, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route14_EventScript_1AA9F3", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 10, + "y": 14, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route14_EventScript_1AAAEB", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 16, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route14_EventScript_1AAB29", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 7, + "y": 31, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route14_EventScript_1AA977", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 7, + "y": 34, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route14_EventScript_1AA8FB", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 8, + "y": 9, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route14_EventScript_1AAAAD", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route14_EventScript_1AAA6F", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 10, + "y": 37, + "elevation": 3, + "movement_type": "25", + "movement_range_x": 1, + "movement_range_y": 6, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route14_EventScript_1AA939", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 18, + "y": 47, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route14_EventScript_1AAA31", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 7, + "y": 26, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route14_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "95", + "x": 12, + "y": 35, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route14_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "95", + "x": 1, + "y": 47, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route14_EventScript_1BDF13", + "flag": "20" + }, + { + "graphics_id": "17", + "x": 13, + "y": 51, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route14_EventScript_1AABAD", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 12, + "y": 51, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route14_EventScript_1AAB67", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 17, + "y": 12, + "elevation": 0, + "script": "Route14_EventScript_1680D2" + }, + { + "type": "hidden_item", + "x": 9, + "y": 20, + "elevation": 3, + "item": "ITEM_ZINC", + "flag": "149", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 19, + "y": 53, + "elevation": 3, + "item": "ITEM_PINAP_BERRY", + "flag": "157", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route14/scripts.inc b/data/maps/Route14/scripts.inc new file mode 100644 index 000000000..207604cdc --- /dev/null +++ b/data/maps/Route14/scripts.inc @@ -0,0 +1,6 @@ +Route14_MapScripts:: @ 81680D1 + .byte 0 + +Route14_EventScript_1680D2:: @ 81680D2 + msgbox gUnknown_8186399, 3 + end diff --git a/data/maps/Route14/text.inc b/data/maps/Route14/text.inc new file mode 100644 index 000000000..37008ab3b --- /dev/null +++ b/data/maps/Route14/text.inc @@ -0,0 +1,126 @@ +Text_185E4D:: @ 8185E4D + .string "You need to use TMs to teach good\n" + .string "moves to POKéMON.$" + +Text_185E81:: @ 8185E81 + .string "Not good enough quite yet.$" + +Text_185E9C:: @ 8185E9C + .string "You have some HMs, right? POKéMON\n" + .string "can't forget those moves easily.$" + +Text_185EDF:: @ 8185EDF + .string "My bird POKéMON should be ready\n" + .string "for battle.$" + +Text_185F0B:: @ 8185F0B + .string "Not ready yet!$" + +Text_185F1A:: @ 8185F1A + .string "My bird POKéMON need to learn\n" + .string "better moves.$" + +Text_185F46:: @ 8185F46 + .string "They have TMs on sale at the\n" + .string "CELADON DEPT. STORE.\p" + .string "TMs aren't really rare, but not\n" + .string "many people have HMs.$" + +Text_185FAE:: @ 8185FAE + .string "Aww, bummer!$" + +Text_185FBB:: @ 8185FBB + .string "Try teaching POKéMON a move that's\n" + .string "the same type as it.\p" + .string "That apparently boosts the power\n" + .string "of the move.$" + +Text_186021:: @ 8186021 + .string "Have you taught your bird POKéMON\n" + .string "how to FLY?\p" + .string "You'll be able to soar with it into\n" + .string "the sky!$" + +Text_18607C:: @ 818607C + .string "Shot down in flames!$" + +Text_186091:: @ 8186091 + .string "Bird POKéMON are my one true love.\n" + .string "I don't want to raise anything else.$" + +Text_1860D9:: @ 81860D9 + .string "Have you heard the legend of the\n" + .string "winged mirages?$" + +Text_18610A:: @ 818610A + .string "Why?\n" + .string "Why'd I lose?$" + +Text_18611D:: @ 818611D + .string "Well, the winged mirages are the\n" + .string "legendary bird POKéMON.\p" + .string "There are three of them: ARTICUNO,\n" + .string "ZAPDOS, and MOLTRES.$" + +Text_18618E:: @ 818618E + .string "I'm not into it, but okay.\n" + .string "Let's go!$" + +Text_1861B3:: @ 81861B3 + .string "I knew it!$" + +Text_1861BE:: @ 81861BE + .string "Winning, losing… It's insignificant\n" + .string "under this huge sky.$" + +Text_1861F7:: @ 81861F7 + .string "C'mon, c'mon.\n" + .string "Let's go, let's go, let's go!$" + +Text_186223:: @ 8186223 + .string "Arrg!\n" + .string "Lost! Get lost!$" + +Text_186239:: @ 8186239 + .string "What, what, what?\n" + .string "What do you want still?$" + +Text_186263:: @ 8186263 + .string "I need to burn some time.\n" + .string "Shut up and battle.$" + +Text_186291:: @ 8186291 + .string "What?\n" + .string "You!?$" + +Text_18629D:: @ 818629D + .string "Raising POKéMON is a drag, man.$" + +Text_1862BD:: @ 81862BD + .string "We ride out here because of the\n" + .string "wide-open spaces.$" + +Text_1862EF:: @ 81862EF + .string "Wipeout!$" + +Text_1862F8:: @ 81862F8 + .string "It's cool you made your POKéMON so\n" + .string "strong.\p" + .string "Might is right!\n" + .string "And you know it!$" + +Text_186344:: @ 8186344 + .string "POKéMON battle?\n" + .string "Cool! Rumble!$" + +Text_186362:: @ 8186362 + .string "Blown away!$" + +Text_18636E:: @ 818636E + .string "You know who'd win, you and me\n" + .string "one-on-one!$" + +gUnknown_8186399:: @ 8186399 + .string "ROUTE 14\n" + .string "West to FUCHSIA CITY$" + diff --git a/data/maps/Route15/map.json b/data/maps/Route15/map.json new file mode 100644 index 000000000..84f075445 --- /dev/null +++ b/data/maps/Route15/map.json @@ -0,0 +1,236 @@ +{ + "id": "MAP_ROUTE15", + "name": "Route15", + "layout": "LAYOUT_ROUTE15", + "music": "BGM_FRLG_ROUTE_11", + "region_map_section": "MAPSEC_ROUTE_15", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_FUCHSIA_CITY", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_ROUTE14", + "offset": -40, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "40", + "x": 22, + "y": 13, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route15_EventScript_1AAD67", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 31, + "y": 12, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route15_EventScript_1AACEB", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 37, + "y": 14, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route15_EventScript_1AAD29", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 44, + "y": 13, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route15_EventScript_1AADA5", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 50, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route15_EventScript_1AACAD", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 59, + "y": 12, + "elevation": 3, + "movement_type": "18", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route15_EventScript_1AAC31", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 63, + "y": 13, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route15_EventScript_1AABF3", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 52, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 4, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route15_EventScript_1AADE3", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 54, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route15_EventScript_1AAC6F", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 28, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 4, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route15_EventScript_1AAE21", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 20, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route15_EventScript_1BE7CA", + "flag": "384" + }, + { + "graphics_id": "54", + "x": 39, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route15_EventScript_1AAEA5", + "flag": "0" + }, + { + "graphics_id": "24", + "x": 40, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route15_EventScript_1AAE5F", + "flag": "0" + }, + { + "graphics_id": "65375", + "x": 73, + "y": 7, + "elevation": 13, + "movement_type": "0", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 32, + "trainer_sight_or_berry_tree_id": 3, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 9, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", + "dest_warp_id": 0 + }, + { + "x": 16, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 41, + "y": 11, + "elevation": 0, + "script": "Route15_EventScript_1680DC" + } + ] +} diff --git a/data/maps/Route15/scripts.inc b/data/maps/Route15/scripts.inc new file mode 100644 index 000000000..a4d0a3240 --- /dev/null +++ b/data/maps/Route15/scripts.inc @@ -0,0 +1,6 @@ +Route15_MapScripts:: @ 81680DB + .byte 0 + +Route15_EventScript_1680DC:: @ 81680DC + msgbox gUnknown_8186A77, 3 + end diff --git a/data/maps/Route15/text.inc b/data/maps/Route15/text.inc new file mode 100644 index 000000000..34e3a0c60 --- /dev/null +++ b/data/maps/Route15/text.inc @@ -0,0 +1,153 @@ +Text_1863B7:: @ 81863B7 + .string "KIRI: JAN, let's try really,\n" + .string "really hard together.$" + +Text_1863EA:: @ 81863EA + .string "KIRI: Whimper…\n" + .string "We lost, didn't we?$" + +Text_18640D:: @ 818640D + .string "KIRI: Did we lose because of me?$" + +Text_18642E:: @ 818642E + .string "KIRI: We can battle if you have\n" + .string "two POKéMON.$" + +Text_18645B:: @ 818645B + .string "JAN: KIRI, here we go!\n" + .string "We have to try hard!$" + +Text_186487:: @ 8186487 + .string "JAN: Eeeeh!\n" + .string "No fair!$" + +Text_18649C:: @ 818649C + .string "JAN: KIRI, don't cry!\n" + .string "We'll just try harder next time.$" + +Text_1864D3:: @ 81864D3 + .string "JAN: You want to battle?\n" + .string "You don't have enough POKéMON.$" + +Text_18650B:: @ 818650B + .string "I just got some POKéMON in trades.\n" + .string "Can I try them out on you?$" + +Text_186549:: @ 8186549 + .string "Not good enough!$" + +Text_18655A:: @ 818655A + .string "You can't change the nickname of\n" + .string "any POKéMON you get in a trade.\p" + .string "Only the Original TRAINER can get\n" + .string "the nickname changed.$" + +Text_1865D3:: @ 81865D3 + .string "You look gentle, so I think I can\n" + .string "beat you.\p" + .string "I'll give it a go!$" + +Text_186612:: @ 8186612 + .string "No, wrong!$" + +Text_18661D:: @ 818661D + .string "I'm afraid of BIKERS. They look so\n" + .string "ugly and mean!$" + +Text_18664F:: @ 818664F + .string "When I whistle, I can summon bird\n" + .string "POKéMON.$" + +Text_18667A:: @ 818667A + .string "Ow!\n" + .string "That's tragic!$" + +Text_18668D:: @ 818668D + .string "Maybe I'm not cut out for battles.\n" + .string "I'm not the right type, I guess.$" + +Text_1866D1:: @ 81866D1 + .string "Hmm? My birds are shivering!\n" + .string "You're good, aren't you?$" + +Text_186707:: @ 8186707 + .string "Just as I thought!$" + +Text_18671A:: @ 818671A + .string "This is so obvious, you should know\n" + .string "this, but…\p" + .string "Moves like EARTHQUAKE and FISSURE\n" + .string "have no effect on bird POKéMON.$" + +Text_18678B:: @ 818678B + .string "Oh, you're a little cutie!\n" + .string "So like a darling POKéMON!$" + +Text_1867C1:: @ 81867C1 + .string "You looked so cute, too!$" + +Text_1867DA:: @ 81867DA + .string "I forgive you.\n" + .string "I can take it.\l" + .string "I'm a big girl now.$" + +Text_18680C:: @ 818680C + .string "I raise POKéMON for protection\n" + .string "because I live alone.$" + +Text_186841:: @ 8186841 + .string "POKéMON isn't about winning or\n" + .string "losing for me.$" + +Text_18686F:: @ 818686F + .string "I love having my POKéMON greet me\n" + .string "when I get home.\p" + .string "It's so reassuring.$" + +Text_1868B6:: @ 81868B6 + .string "Hey, kid! C'mon!\n" + .string "I just got these off some loser!$" + +Text_1868E8:: @ 81868E8 + .string "Why not?$" + +Text_1868F1:: @ 81868F1 + .string "Life's too short.\n" + .string "It's cool to live as an outlaw.\l" + .string "TEAM ROCKET RULES!$" + +Text_186936:: @ 8186936 + .string "Fork over all your cash when you\n" + .string "lose to me, kid!$" + +Text_186968:: @ 8186968 + .string "That can't be true!$" + +Text_18697C:: @ 818697C + .string "I was just joking about the money.\n" + .string "Don't take me all serious.$" + +Text_1869BA:: @ 81869BA + .string "What's cool and happening?\n" + .string "Trading POKéMON!$" + +Text_1869E6:: @ 81869E6 + .string "I said trade!$" + +Text_1869F4:: @ 81869F4 + .string "I trade POKéMON with my friends\n" + .string "all the time.$" + +Text_186A22:: @ 8186A22 + .string "Want to play with my POKéMON?$" + +Text_186A40:: @ 8186A40 + .string "I was too impatient!$" + +Text_186A55:: @ 8186A55 + .string "I'll go train with weaker people.$" + +gUnknown_8186A77:: @ 8186A77 + .string "ROUTE 15\n" + .string "West to FUCHSIA CITY$" + diff --git a/data/maps/Route15_WestEntrance_1F/map.json b/data/maps/Route15_WestEntrance_1F/map.json new file mode 100644 index 000000000..81896d704 --- /dev/null +++ b/data/maps/Route15_WestEntrance_1F/map.json @@ -0,0 +1,69 @@ +{ + "id": "MAP_ROUTE15_WEST_ENTRANCE_1F", + "name": "Route15_WestEntrance_1F", + "layout": "LAYOUT_ENTRANCE_1F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_15", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route15_WestEntrance_1F_EventScript_170089", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE15", + "dest_warp_id": 0 + }, + { + "x": 1, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE15", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE15", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE15", + "dest_warp_id": 1 + }, + { + "x": 9, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route15_WestEntrance_1F/scripts.inc b/data/maps/Route15_WestEntrance_1F/scripts.inc new file mode 100644 index 000000000..458f5e010 --- /dev/null +++ b/data/maps/Route15_WestEntrance_1F/scripts.inc @@ -0,0 +1,6 @@ +Route15_WestEntrance_1F_MapScripts:: @ 8170088 + .byte 0 + +Route15_WestEntrance_1F_EventScript_170089:: @ 8170089 + msgbox gUnknown_819F560, 2 + end diff --git a/data/maps/Route15_WestEntrance_1F/text.inc b/data/maps/Route15_WestEntrance_1F/text.inc new file mode 100644 index 000000000..e843e10a8 --- /dev/null +++ b/data/maps/Route15_WestEntrance_1F/text.inc @@ -0,0 +1,5 @@ +gUnknown_819F560:: @ 819F560 + .string "Are you the kid who's working on\n" + .string "a POKéDEX?\p" + .string "PROF. OAK's AIDE came by here.$" + diff --git a/data/maps/Route15_WestEntrance_2F/map.json b/data/maps/Route15_WestEntrance_2F/map.json new file mode 100644 index 000000000..3d72c90e1 --- /dev/null +++ b/data/maps/Route15_WestEntrance_2F/map.json @@ -0,0 +1,56 @@ +{ + "id": "MAP_ROUTE15_WEST_ENTRANCE_2F", + "name": "Route15_WestEntrance_2F", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_15", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route15_WestEntrance_2F_EventScript_1700B9", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "Route15_WestEntrance_2F_EventScript_170093" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 1, + "elevation": 0, + "script": "Route15_WestEntrance_2F_EventScript_1700B0" + } + ] +} diff --git a/data/maps/Route15_WestEntrance_2F/scripts.inc b/data/maps/Route15_WestEntrance_2F/scripts.inc new file mode 100644 index 000000000..1e06c0394 --- /dev/null +++ b/data/maps/Route15_WestEntrance_2F/scripts.inc @@ -0,0 +1,54 @@ +Route15_WestEntrance_2F_MapScripts:: @ 8170092 + .byte 0 + +Route15_WestEntrance_2F_EventScript_170093:: @ 8170093 + lockall + msgbox gUnknown_819F79C + drawmonpic SPECIES_ARTICUNO, 10, 3 + delay 20 + waitbuttonpress + erasemonpic + setvar VAR_0x8004, SPECIES_ARTICUNO + special sub_80CBDCC + releaseall + end + +Route15_WestEntrance_2F_EventScript_1700B0:: @ 81700B0 + msgbox gUnknown_819F7F8, 3 + end + +Route15_WestEntrance_2F_EventScript_1700B9:: @ 81700B9 + lock + faceplayer + call EventScript_170145 + checkflag FLAG_0x256 + goto_if_eq EventScript_17013B + msgbox gUnknown_819F5AB, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AD1 + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, Special_GetPokedexCount + getnumberstring 2, VAR_0x8006 + call EventScript_170145 + compare_var_to_value VAR_0x8006, 50 + goto_if 0, EventScript_1A7ABD + msgbox gUnknown_819F6AA + checkitemspace ITEM_EXP_SHARE, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AC7 + additem ITEM_EXP_SHARE, 1 + giveitemfanfaremsg gUnknown_819F6FD, ITEM_EXP_SHARE + setflag FLAG_0x256 + msgbox gUnknown_819F71F + release + end + +EventScript_17013B:: @ 817013B + msgbox gUnknown_819F71F + release + end + +EventScript_170145:: @ 8170145 + getnumberstring 0, 50 + getitemname 1, ITEM_EXP_SHARE + return diff --git a/data/maps/Route15_WestEntrance_2F/text.inc b/data/maps/Route15_WestEntrance_2F/text.inc new file mode 100644 index 000000000..e5518b8e2 --- /dev/null +++ b/data/maps/Route15_WestEntrance_2F/text.inc @@ -0,0 +1,41 @@ +gUnknown_819F5AB:: @ 819F5AB + .string "Hi! Remember me?\n" + .string "I'm one of PROF. OAK's AIDES.\p" + .string "If your POKéDEX has complete data\n" + .string "on {STR_VAR_1} species, I'm supposed to\l" + .string "give you a reward.\p" + .string "PROF. OAK entrusted me with the\n" + .string "{STR_VAR_2} for you.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "{STR_VAR_1} kinds of POKéMON?$" + +gUnknown_819F6AA:: @ 819F6AA + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +gUnknown_819F6FD:: @ 819F6FD + .string "{PLAYER} received the {STR_VAR_2}\n" + .string "from the AIDE.$" + +gUnknown_819F71F:: @ 819F71F + .string "EXP. SHARE is an item to be held\n" + .string "by a POKéMON.\p" + .string "The POKéMON will receive a share\n" + .string "of the EXP. Points without having\l" + .string "to battle.$" + +gUnknown_819F79C:: @ 819F79C + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "A large, shining bird is flying\n" + .string "toward the sea.$" + +gUnknown_819F7F8:: @ 819F7F8 + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "It looks like a small island on\n" + .string "the horizon!$" + diff --git a/data/maps/Route16/map.json b/data/maps/Route16/map.json new file mode 100644 index 000000000..50bcad08a --- /dev/null +++ b/data/maps/Route16/map.json @@ -0,0 +1,221 @@ +{ + "id": "MAP_ROUTE16", + "name": "Route16", + "layout": "LAYOUT_ROUTE16", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_16", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE17", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_CELADON_CITY", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "53", + "x": 16, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route16_EventScript_1AAEEB", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 14, + "y": 14, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route16_EventScript_1AAFA5", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 12, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route16_EventScript_1AAFE3", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 8, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route16_EventScript_1AAF67", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 10, + "y": 14, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route16_EventScript_1AAF29", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 6, + "y": 14, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route16_EventScript_1AB021", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 41, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route16_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "29", + "x": 30, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route16_EventScript_1AB0A5", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 31, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route16_EventScript_1AB05F", + "flag": "0" + }, + { + "graphics_id": "109", + "x": 31, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route16_EventScript_168121", + "flag": "128" + } + ], + "warp_events": [ + { + "x": 10, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ROUTE16_HOUSE", + "dest_warp_id": 1 + }, + { + "x": 20, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": 0 + }, + { + "x": 27, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": 1 + }, + { + "x": 20, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": 2 + }, + { + "x": 27, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 6, + "y": 17, + "elevation": 0, + "script": "Route16_EventScript_1681B6" + }, + { + "type": "bg_event_type_0", + "x": 33, + "y": 11, + "elevation": 0, + "script": "Route16_EventScript_1681AD" + }, + { + "type": "hidden_item", + "x": 31, + "y": 13, + "elevation": 3, + "item": "ITEM_LEFTOVERS", + "flag": "132", + "unknown": 129 + } + ] +} diff --git a/data/maps/Route16/scripts.inc b/data/maps/Route16/scripts.inc new file mode 100644 index 000000000..e5fd83934 --- /dev/null +++ b/data/maps/Route16/scripts.inc @@ -0,0 +1,85 @@ +Route16_MapScripts:: @ 81680E5 + map_script 5, Route16_MapScript1_1680F5 + map_script 3, Route16_MapScript2_168103 + map_script 4, Route16_MapScript3_168113 + .byte 0 + +Route16_MapScript1_1680F5:: @ 81680F5 + checkflag FLAG_0x807 + call_if 1, EventScript_1680FF + end + +EventScript_1680FF:: @ 81680FF + removeobject VAR_LAST_TALKED + return + +Route16_MapScript2_168103:: @ 8168103 + compare_var_to_value VAR_MAP_SCENE_ROUTE16, 1 + call_if 1, EventScript_16810F + end + +EventScript_16810F:: @ 816810F + setflag FLAG_0x830 + return + +Route16_MapScript3_168113:: @ 8168113 + map_script_2 VAR_MAP_SCENE_ROUTE16, 1, EventScript_16811D + .2byte 0 + +EventScript_16811D:: @ 816811D + special sub_80CA630 + end + +Route16_EventScript_168121:: @ 8168121 + lock + faceplayer + checkflag FLAG_0x23D + goto_if 0, EventScript_1681A3 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + msgbox gUnknown_81853CC, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_168197 + call EventScript_1A924B + setwildbattle SPECIES_SNORLAX, 30, ITEM_NONE + waitse + playmoncry SPECIES_SNORLAX, 2 + delay 40 + waitmoncry + setflag FLAG_0x080 + setflag FLAG_0x807 + dowildbattle + clearflag FLAG_0x807 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_168199 + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_168199 + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_168199 + release + end + +EventScript_168197:: @ 8168197 + release + end + +EventScript_168199:: @ 8168199 + msgbox gUnknown_8185383 + release + end + +EventScript_1681A3:: @ 81681A3 + msgbox gUnknown_8186F3D + release + end + +Route16_EventScript_1681AD:: @ 81681AD + msgbox gUnknown_8186F7A, 3 + end + +Route16_EventScript_1681B6:: @ 81681B6 + msgbox gUnknown_8186F98, 3 + end diff --git a/data/maps/Route16/text.inc b/data/maps/Route16/text.inc new file mode 100644 index 000000000..1945cf510 --- /dev/null +++ b/data/maps/Route16/text.inc @@ -0,0 +1,113 @@ +Text_186A95:: @ 8186A95 + .string "MYA: You're perfect.\n" + .string "Help me train my little brother?$" + +Text_186ACB:: @ 8186ACB + .string "MYA: RON, you have to focus!\n" + .string "Concentrate on what you're doing!$" + +Text_186B0A:: @ 8186B0A + .string "MYA: Okay, we'll turn it up.\n" + .string "I'll add to our training menu!$" + +Text_186B46:: @ 8186B46 + .string "MYA: Do you want to challenge us?\n" + .string "You'll need two POKéMON, though.$" + +Text_186B89:: @ 8186B89 + .string "RON: My sister gets scary when we\n" + .string "lose.$" + +Text_186BB1:: @ 8186BB1 + .string "RON: Oh, no, no…\n" + .string "Sis, I'm sorry!$" + +Text_186BD2:: @ 8186BD2 + .string "RON: Oh, bleah…\n" + .string "I wish I had a nice sister…$" + +Text_186BFE:: @ 8186BFE + .string "RON: Did you want to battle with\n" + .string "my sister and me?\p" + .string "You need two POKéMON, then.$" + +Text_186C4D:: @ 8186C4D + .string "What do you want?$" + +Text_186C5F:: @ 8186C5F + .string "Don't you dare laugh!$" + +Text_186C75:: @ 8186C75 + .string "We like just hanging here.\n" + .string "What's it to you?$" + +Text_186CA2:: @ 8186CA2 + .string "Nice BIKE!\n" + .string "Hand it over!$" + +Text_186CBB:: @ 8186CBB + .string "Knockout!$" + +Text_186CC5:: @ 8186CC5 + .string "Forget it, who needs your BIKE!$" + +Text_186CE5:: @ 8186CE5 + .string "Come out and play, little mouse!$" + +Text_186D06:: @ 8186D06 + .string "You little rat!$" + +Text_186D16:: @ 8186D16 + .string "I hate losing!\n" + .string "Get out of my face!$" + +Text_186D39:: @ 8186D39 + .string "Hey, you just bumped me!$" + +Text_186D52:: @ 8186D52 + .string "Kaboom!$" + +Text_186D5A:: @ 8186D5A + .string "We'll always be hanging around here\n" + .string "even if you don't like it.\p" + .string "You can detour to VERMILION from\n" + .string "FUCHSIA going along the coast.$" + +Text_186DD9:: @ 8186DD9 + .string "I'm feeling hungry and mean!\n" + .string "I need a punching bag!$" + +Text_186E0D:: @ 8186E0D + .string "Bad, bad, bad!$" + +Text_186E1C:: @ 8186E1C + .string "If I'm going to have POKéMON, they\n" + .string "may as well be ferocious.\p" + .string "I'd use them to leave my enemies\n" + .string "in tatters.$" + +Text_186E86:: @ 8186E86 + .string "Hey, there!\n" + .string "Let's have ourselves a good time!$" + +Text_186EB4:: @ 8186EB4 + .string "Don't make me mad!$" + +Text_186EC7:: @ 8186EC7 + .string "I get my kicks by harassing people\n" + .string "with my stinking POKéMON.\p" + .string "They're great for startling people.\n" + .string "And, they bite, too.$" + +gUnknown_8186F3D:: @ 8186F3D + .string "A POKéMON is sprawled out in\n" + .string "a deep and comfortable slumber.$" + +gUnknown_8186F7A:: @ 8186F7A + .string "Enjoy the slope!\n" + .string "CYCLING ROAD$" + +gUnknown_8186F98:: @ 8186F98 + .string "ROUTE 16\n" + .string "CELADON CITY - FUCHSIA CITY$" + diff --git a/data/maps/Route16_House/map.json b/data/maps/Route16_House/map.json new file mode 100644 index 000000000..834ef6ef6 --- /dev/null +++ b/data/maps/Route16_House/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_ROUTE16_HOUSE", + "name": "Route16_House", + "layout": "LAYOUT_HOUSE1", + "music": "BGM_FRLG_CELADON_CITY", + "region_map_section": "MAPSEC_ROUTE_16", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "23", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route16_House_EventScript_17014F", + "flag": "0" + }, + { + "graphics_id": "133", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route16_House_EventScript_1701AF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": 0 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route16_House/scripts.inc b/data/maps/Route16_House/scripts.inc new file mode 100644 index 000000000..82cc7a6f4 --- /dev/null +++ b/data/maps/Route16_House/scripts.inc @@ -0,0 +1,38 @@ +Route16_House_MapScripts:: @ 817014E + .byte 0 + +Route16_House_EventScript_17014F:: @ 817014F + lock + faceplayer + checkflag FLAG_0x238 + goto_if_eq EventScript_1701A5 + msgbox gUnknown_819F851 + checkitemspace ITEM_HM02, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_17019B + additem ITEM_HM02, 1 + giveitemfanfaremsg gUnknown_819F8C0, ITEM_HM02 + msgbox gUnknown_819F8E0 + setflag FLAG_0x238 + release + end + +EventScript_17019B:: @ 817019B + msgbox gUnknown_819F92D + release + end + +EventScript_1701A5:: @ 81701A5 + msgbox gUnknown_819F8E0 + release + end + +Route16_House_EventScript_1701AF:: @ 81701AF + lock + faceplayer + waitse + playmoncry SPECIES_FEAROW, 0 + msgbox gUnknown_819F94F + waitmoncry + release + end diff --git a/data/maps/Route16_House/text.inc b/data/maps/Route16_House/text.inc new file mode 100644 index 000000000..136cf9604 --- /dev/null +++ b/data/maps/Route16_House/text.inc @@ -0,0 +1,21 @@ +gUnknown_819F851:: @ 819F851 + .string "Oh, dear.\n" + .string "You've found my secret retreat.\p" + .string "Please don't tell anyone I'm here.\n" + .string "I'll make it up to you with this!$" + +gUnknown_819F8C0:: @ 819F8C0 + .string "{PLAYER} received HM02\n" + .string "from the girl.$" + +gUnknown_819F8E0:: @ 819F8E0 + .string "HM02 is FLY.\n" + .string "It's a wonderfully convenient move.\p" + .string "Please, put it to good use.$" + +gUnknown_819F92D:: @ 819F92D + .string "You don't have any room for this.$" + +gUnknown_819F94F:: @ 819F94F + .string "FEAROW: Kyueen!$" + diff --git a/data/maps/Route16_NorthEntrance_1F/map.json b/data/maps/Route16_NorthEntrance_1F/map.json new file mode 100644 index 000000000..bcb49452d --- /dev/null +++ b/data/maps/Route16_NorthEntrance_1F/map.json @@ -0,0 +1,182 @@ +{ + "id": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "name": "Route16_NorthEntrance_1F", + "layout": "LAYOUT_ROUTE16_NORTH_ENTRANCE_1F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_16", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route16_NorthEntrance_1F_EventScript_1701DB", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route16_NorthEntrance_1F_EventScript_1702B5", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 3, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 3, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": 2 + }, + { + "x": 1, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": 3 + }, + { + "x": 11, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": 4 + }, + { + "x": 9, + "y": 16, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 12, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 1, + "script": "Route16_NorthEntrance_1F_EventScript_1A77B6" + }, + { + "type": "trigger", + "x": 2, + "y": 12, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 0, + "script": "Route16_NorthEntrance_1F_EventScript_1A77C1" + }, + { + "type": "trigger", + "x": 6, + "y": 10, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route16_NorthEntrance_1F_EventScript_1701E4" + }, + { + "type": "trigger", + "x": 6, + "y": 11, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route16_NorthEntrance_1F_EventScript_1701F0" + }, + { + "type": "trigger", + "x": 1, + "y": 13, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 0, + "script": "Route16_NorthEntrance_1F_EventScript_1A77C1" + }, + { + "type": "trigger", + "x": 1, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 0, + "script": "Route16_NorthEntrance_1F_EventScript_1A77C1" + }, + { + "type": "trigger", + "x": 11, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 1, + "script": "Route16_NorthEntrance_1F_EventScript_1A77B6" + }, + { + "type": "trigger", + "x": 11, + "y": 13, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 1, + "script": "Route16_NorthEntrance_1F_EventScript_1A77B6" + }, + { + "type": "trigger", + "x": 6, + "y": 12, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route16_NorthEntrance_1F_EventScript_1701FC" + }, + { + "type": "trigger", + "x": 6, + "y": 13, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route16_NorthEntrance_1F_EventScript_170208" + }, + { + "type": "trigger", + "x": 6, + "y": 14, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route16_NorthEntrance_1F_EventScript_170214" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route16_NorthEntrance_1F/scripts.inc b/data/maps/Route16_NorthEntrance_1F/scripts.inc new file mode 100644 index 000000000..c30f309fd --- /dev/null +++ b/data/maps/Route16_NorthEntrance_1F/scripts.inc @@ -0,0 +1,119 @@ +Route16_NorthEntrance_1F_MapScripts:: @ 81701C2 + map_script 3, Route16_NorthEntrance_1F_MapScript1_1701C8 + .byte 0 + +Route16_NorthEntrance_1F_MapScript1_1701C8:: @ 81701C8 + clearflag FLAG_0x830 + checkflag FLAG_0x271 + call_if 1, EventScript_1701D5 + end + +EventScript_1701D5:: @ 81701D5 + setvar VAR_0x4001, 1 + return + +Route16_NorthEntrance_1F_EventScript_1701DB:: @ 81701DB + msgbox gUnknown_819F98B, 2 + end + +Route16_NorthEntrance_1F_EventScript_1701E4:: @ 81701E4 + lockall + setvar VAR_0x8008, 0 + goto EventScript_170220 + end + +Route16_NorthEntrance_1F_EventScript_1701F0:: @ 81701F0 + lockall + setvar VAR_0x8008, 1 + goto EventScript_170220 + end + +Route16_NorthEntrance_1F_EventScript_1701FC:: @ 81701FC + lockall + setvar VAR_0x8008, 2 + goto EventScript_170220 + end + +Route16_NorthEntrance_1F_EventScript_170208:: @ 8170208 + lockall + setvar VAR_0x8008, 3 + goto EventScript_170220 + end + +Route16_NorthEntrance_1F_EventScript_170214:: @ 8170214 + lockall + setvar VAR_0x8008, 4 + goto EventScript_170220 + end + +EventScript_170220:: @ 8170220 + textcolor 0 + msgbox gUnknown_819F9CC + closemessage + applymovement 255, Movement_1A75E9 + waitmovement 0 + delay 20 + compare_var_to_value VAR_0x8008, 1 + call_if 1, EventScript_170279 + compare_var_to_value VAR_0x8008, 2 + call_if 1, EventScript_170284 + compare_var_to_value VAR_0x8008, 3 + call_if 1, EventScript_17028F + compare_var_to_value VAR_0x8008, 4 + call_if 1, EventScript_17029A + msgbox gUnknown_819F95F + closemessage + applymovement 255, Movement_1702B3 + waitmovement 0 + releaseall + end + +EventScript_170279:: @ 8170279 + applymovement 255, Movement_1702A5 + waitmovement 0 + return + +EventScript_170284:: @ 8170284 + applymovement 255, Movement_1702A7 + waitmovement 0 + return + +EventScript_17028F:: @ 817028F + applymovement 255, Movement_1702AA + waitmovement 0 + return + +EventScript_17029A:: @ 817029A + applymovement 255, Movement_1702AE + waitmovement 0 + return + +Movement_1702A5:: @ 81702A5 + step_11 + step_end + +Movement_1702A7:: @ 81702A7 + step_11 + step_11 + step_end + +Movement_1702AA:: @ 81702AA + step_11 + step_11 + step_11 + step_end + +Movement_1702AE:: @ 81702AE + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_1702B3:: @ 81702B3 + step_13 + step_end + +Route16_NorthEntrance_1F_EventScript_1702B5:: @ 81702B5 + msgbox gUnknown_819F9E8, 2 + end diff --git a/data/maps/Route16_NorthEntrance_1F/text.inc b/data/maps/Route16_NorthEntrance_1F/text.inc new file mode 100644 index 000000000..8cc60117c --- /dev/null +++ b/data/maps/Route16_NorthEntrance_1F/text.inc @@ -0,0 +1,16 @@ +gUnknown_819F95F:: @ 819F95F + .string "No pedestrians are allowed on\n" + .string "CYCLING ROAD!$" + +gUnknown_819F98B:: @ 819F98B + .string "CYCLING ROAD is a downhill course\n" + .string "by the sea. It's a great ride.$" + +gUnknown_819F9CC:: @ 819F9CC + .string "Excuse me!\n" + .string "Wait up, please!$" + +gUnknown_819F9E8:: @ 819F9E8 + .string "How'd you get in?\n" + .string "Good effort!$" + diff --git a/data/maps/Route16_NorthEntrance_2F/map.json b/data/maps/Route16_NorthEntrance_2F/map.json new file mode 100644 index 000000000..85d1ccccb --- /dev/null +++ b/data/maps/Route16_NorthEntrance_2F/map.json @@ -0,0 +1,82 @@ +{ + "id": "MAP_ROUTE16_NORTH_ENTRANCE_2F", + "name": "Route16_NorthEntrance_2F", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_16", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "16", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route16_NorthEntrance_2F_EventScript_1702BF", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route16_NorthEntrance_2F_EventScript_1702C8", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 10, + "y": 6, + "elevation": 0, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route16_NorthEntrance_2F_EventScript_1702E3", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "Route16_NorthEntrance_2F_EventScript_1702D1" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 1, + "elevation": 0, + "script": "Route16_NorthEntrance_2F_EventScript_1702DA" + } + ] +} diff --git a/data/maps/Route16_NorthEntrance_2F/scripts.inc b/data/maps/Route16_NorthEntrance_2F/scripts.inc new file mode 100644 index 000000000..6fa870c27 --- /dev/null +++ b/data/maps/Route16_NorthEntrance_2F/scripts.inc @@ -0,0 +1,54 @@ +Route16_NorthEntrance_2F_MapScripts:: @ 81702BE + .byte 0 + +Route16_NorthEntrance_2F_EventScript_1702BF:: @ 81702BF + msgbox gUnknown_819FA07, 2 + end + +Route16_NorthEntrance_2F_EventScript_1702C8:: @ 81702C8 + msgbox gUnknown_819FA41, 2 + end + +Route16_NorthEntrance_2F_EventScript_1702D1:: @ 81702D1 + msgbox gUnknown_819FA6F, 3 + end + +Route16_NorthEntrance_2F_EventScript_1702DA:: @ 81702DA + msgbox gUnknown_819FAB9, 3 + end + +Route16_NorthEntrance_2F_EventScript_1702E3:: @ 81702E3 + lock + faceplayer + call EventScript_17036F + checkflag FLAG_0x2FD + goto_if_eq EventScript_170365 + msgbox gUnknown_819FB0E, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AD1 + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, Special_GetPokedexCount + getnumberstring 2, VAR_0x8006 + call EventScript_17036F + compare_var_to_value VAR_0x8006, 40 + goto_if 0, EventScript_1A7ABD + msgbox gUnknown_819FC15 + checkitemspace ITEM_AMULET_COIN, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AC7 + additem ITEM_AMULET_COIN, 1 + giveitemfanfaremsg gUnknown_819FC68, ITEM_AMULET_COIN + setflag FLAG_0x2FD + msgbox gUnknown_819FC93 + release + end + +EventScript_170365:: @ 8170365 + msgbox gUnknown_819FC93 + release + end + +EventScript_17036F:: @ 817036F + getnumberstring 0, 40 + getitemname 1, ITEM_AMULET_COIN + return diff --git a/data/maps/Route16_NorthEntrance_2F/text.inc b/data/maps/Route16_NorthEntrance_2F/text.inc new file mode 100644 index 000000000..4839bfe8a --- /dev/null +++ b/data/maps/Route16_NorthEntrance_2F/text.inc @@ -0,0 +1,47 @@ +gUnknown_819FA07:: @ 819FA07 + .string "I'm on a relaxing ride on my new\n" + .string "bike with my girlfriend.$" + +gUnknown_819FA41:: @ 819FA41 + .string "We're going riding together on our\n" + .string "new bikes.$" + +gUnknown_819FA6F:: @ 819FA6F + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "It's the CELADON DEPT. STORE!$" + +gUnknown_819FAB9:: @ 819FAB9 + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "There's a long path over water far\n" + .string "away.$" + +gUnknown_819FB0E:: @ 819FB0E + .string "Hi! Remember me?\n" + .string "I'm one of PROF. OAK's AIDES.\p" + .string "If your POKéDEX has complete data\n" + .string "on 40 species, I'm supposed to\l" + .string "give you a reward.\p" + .string "PROF. OAK entrusted me with an\n" + .string "AMULET COIN for you.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "40 kinds of POKéMON?$" + +gUnknown_819FC15:: @ 819FC15 + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +gUnknown_819FC68:: @ 819FC68 + .string "{PLAYER} received the AMULET COIN\n" + .string "from the AIDE.$" + +gUnknown_819FC93:: @ 819FC93 + .string "An AMULET COIN is an item to be\n" + .string "held by a POKéMON.\p" + .string "If the POKéMON appears in a winning\n" + .string "battle, you will earn more money.$" + diff --git a/data/maps/Route17/map.json b/data/maps/Route17/map.json new file mode 100644 index 000000000..f51773f86 --- /dev/null +++ b/data/maps/Route17/map.json @@ -0,0 +1,249 @@ +{ + "id": "MAP_ROUTE17", + "name": "Route17", + "layout": "LAYOUT_ROUTE17", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_17", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE16", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE18", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "53", + "x": 4, + "y": 18, + "elevation": 3, + "movement_type": "26", + "movement_range_x": 1, + "movement_range_y": 6, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route17_EventScript_1AB319", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 11, + "y": 15, + "elevation": 3, + "movement_type": "26", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route17_EventScript_1AB221", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 15, + "y": 24, + "elevation": 3, + "movement_type": "52", + "movement_range_x": 4, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route17_EventScript_1AB1E3", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 18, + "y": 41, + "elevation": 3, + "movement_type": "26", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route17_EventScript_1AB129", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 7, + "y": 38, + "elevation": 3, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route17_EventScript_1AB0EB", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 2, + "y": 61, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route17_EventScript_1AB29D", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 21, + "y": 61, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route17_EventScript_1AB25F", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 18, + "y": 94, + "elevation": 3, + "movement_type": "26", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route17_EventScript_1AB2DB", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 16, + "y": 134, + "elevation": 3, + "movement_type": "47", + "movement_range_x": 8, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route17_EventScript_1AB1A5", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 4, + "y": 116, + "elevation": 3, + "movement_type": "26", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route17_EventScript_1AB167", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 12, + "y": 97, + "elevation": 0, + "script": "Route17_EventScript_1681DB" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 83, + "elevation": 0, + "script": "Route17_EventScript_1681D2" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 68, + "elevation": 0, + "script": "Route17_EventScript_1681C9" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 53, + "elevation": 0, + "script": "Route17_EventScript_1681C0" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 125, + "elevation": 3, + "script": "Route17_EventScript_1681E4" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 157, + "elevation": 0, + "script": "Route17_EventScript_1681ED" + }, + { + "type": "hidden_item", + "x": 18, + "y": 83, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "17", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 10, + "y": 53, + "elevation": 3, + "item": "ITEM_FULL_RESTORE", + "flag": "18", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 4, + "y": 68, + "elevation": 3, + "item": "ITEM_PP_UP", + "flag": "19", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 4, + "y": 125, + "elevation": 3, + "item": "ITEM_MAX_REVIVE", + "flag": "20", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 14, + "y": 157, + "elevation": 3, + "item": "ITEM_MAX_ELIXIR", + "flag": "21", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route17/scripts.inc b/data/maps/Route17/scripts.inc new file mode 100644 index 000000000..12d99102a --- /dev/null +++ b/data/maps/Route17/scripts.inc @@ -0,0 +1,26 @@ +Route17_MapScripts:: @ 81681BF + .byte 0 + +Route17_EventScript_1681C0:: @ 81681C0 + msgbox gUnknown_81874E4, 3 + end + +Route17_EventScript_1681C9:: @ 81681C9 + msgbox gUnknown_8187512, 3 + end + +Route17_EventScript_1681D2:: @ 81681D2 + msgbox gUnknown_818757B, 3 + end + +Route17_EventScript_1681DB:: @ 81681DB + msgbox gUnknown_81875BE, 3 + end + +Route17_EventScript_1681E4:: @ 81681E4 + msgbox gUnknown_81875E3, 3 + end + +Route17_EventScript_1681ED:: @ 81681ED + msgbox gUnknown_8187622, 3 + end diff --git a/data/maps/Route17/text.inc b/data/maps/Route17/text.inc new file mode 100644 index 000000000..6627d5cd0 --- /dev/null +++ b/data/maps/Route17/text.inc @@ -0,0 +1,165 @@ +Text_186FBD:: @ 8186FBD + .string "JED: Our love knows no bounds.\n" + .string "We're in love and we show it!$" + +Text_186FFA:: @ 8186FFA + .string "JED: Oh, no!\n" + .string "My love has seen me as a loser!$" + +Text_187027:: @ 8187027 + .string "JED: Listen, LEA.\n" + .string "You need to focus less on me.$" + +Text_187057:: @ 8187057 + .string "JED: You have just one POKéMON?\n" + .string "Is there no love in your heart?$" + +Text_187097:: @ 8187097 + .string "LEA: Sometimes, the intensity of\n" + .string "our love scares me.$" + +Text_1870CC:: @ 81870CC + .string "LEA: Ohh! But JED looks cool\n" + .string "even in a loss!$" + +Text_1870F9:: @ 81870F9 + .string "LEA: Ehehe, I'm sorry.\n" + .string "JED is so cool.$" + +Text_187120:: @ 8187120 + .string "LEA: Oh, you don't have two\n" + .string "POKéMON with you?\p" + .string "Doesn't it feel lonely for you or\n" + .string "your POKéMON?$" + +Text_18717E:: @ 818717E + .string "There's no getting rich quick in\n" + .string "battling kids.$" + +Text_1871AE:: @ 81871AE + .string "Burned out!$" + +Text_1871BA:: @ 81871BA + .string "You can find good stuff lying\n" + .string "around on CYCLING ROAD.\p" + .string "There's good money in picking them\n" + .string "up and selling them.$" + +Text_187228:: @ 8187228 + .string "I'm mighty proud of my bod, kiddo.\n" + .string "Come on!$" + +Text_187254:: @ 8187254 + .string "Whoo!$" + +Text_18725A:: @ 818725A + .string "I could belly-bump you outta\n" + .string "here!$" + +Text_18727D:: @ 818727D + .string "You heading to FUCHSIA?$" + +Text_187295:: @ 8187295 + .string "Crash and burn!$" + +Text_1872A5:: @ 81872A5 + .string "I love racing downhill!$" + +Text_1872BD:: @ 81872BD + .string "We're BIKERS!\n" + .string "We rule the roads, man!$" + +Text_1872E3:: @ 81872E3 + .string "Smoked!$" + +Text_1872EB:: @ 81872EB + .string "Are you looking for adventure?$" + +Text_18730A:: @ 818730A + .string "Let VOLTORB electrify you!$" + +Text_187325:: @ 8187325 + .string "Grounded out!$" + +Text_187333:: @ 8187333 + .string "I got my VOLTORB at the abandoned\n" + .string "POWER PLANT.$" + +Text_187362:: @ 8187362 + .string "I leveled up my POKéMON, but it\n" + .string "won't evolve. Why?$" + +Text_187395:: @ 8187395 + .string "Why, you!$" + +Text_18739F:: @ 818739F + .string "Maybe some POKéMON need element\n" + .string "STONES to evolve.$" + +Text_1873D1:: @ 81873D1 + .string "I need a little exercise!$" + +Text_1873EB:: @ 81873EB + .string "Whew!\n" + .string "Good workout!$" + +Text_1873FF:: @ 81873FF + .string "I'm sure I lost weight there!$" + +Text_18741D:: @ 818741D + .string "Be a rebel!$" + +Text_187429:: @ 8187429 + .string "Aaaargh!$" + +Text_187432:: @ 8187432 + .string "Be ready to fight for your beliefs!$" + +Text_187456:: @ 8187456 + .string "Nice BIKE!\n" + .string "How's it handle?$" + +Text_187472:: @ 8187472 + .string "Shoot!$" + +Text_187479:: @ 8187479 + .string "The slope makes it hard to steer.$" + +Text_18749B:: @ 818749B + .string "Get lost, kid!\n" + .string "I'm bushed!$" + +Text_1874B6:: @ 81874B6 + .string "Are you satisfied?$" + +Text_1874C9:: @ 81874C9 + .string "I need to catch a few z's!$" + +gUnknown_81874E4:: @ 81874E4 + .string "It's a notice.\p" + .string "Watch out for discarded items.$" + +gUnknown_8187512:: @ 8187512 + .string "TRAINER TIPS\p" + .string "All POKéMON are unique.\p" + .string "Even POKéMON of the same species\n" + .string "and level grow at different rates.$" + +gUnknown_818757B:: @ 818757B + .string "TRAINER TIPS\p" + .string "Press the B Button to stay in place\n" + .string "while on a slope.$" + +gUnknown_81875BE:: @ 81875BE + .string "ROUTE 17\n" + .string "CELADON CITY - FUCHSIA CITY$" + +gUnknown_81875E3:: @ 81875E3 + .string "It's a notice!\p" + .string "Don't throw the game, throw POKé\n" + .string "BALLS instead!$" + +gUnknown_8187622:: @ 8187622 + .string "CYCLING ROAD\n" + .string "Slope ends here!$" + diff --git a/data/maps/Route18/map.json b/data/maps/Route18/map.json new file mode 100644 index 000000000..f18809806 --- /dev/null +++ b/data/maps/Route18/map.json @@ -0,0 +1,100 @@ +{ + "id": "MAP_ROUTE18", + "name": "Route18", + "layout": "LAYOUT_ROUTE18", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_18", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE17", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_FUCHSIA_CITY", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "26", + "x": 46, + "y": 14, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route18_EventScript_1AB3D3", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 41, + "y": 15, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route18_EventScript_1AB395", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 39, + "y": 12, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 6, + "script": "Route18_EventScript_1AB357", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 41, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", + "dest_warp_id": 0 + }, + { + "x": 48, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 37, + "y": 7, + "elevation": 0, + "script": "Route18_EventScript_168228" + }, + { + "type": "bg_event_type_0", + "x": 52, + "y": 7, + "elevation": 0, + "script": "Route18_EventScript_16821F" + } + ] +} diff --git a/data/maps/Route18/scripts.inc b/data/maps/Route18/scripts.inc new file mode 100644 index 000000000..548fdeeb6 --- /dev/null +++ b/data/maps/Route18/scripts.inc @@ -0,0 +1,29 @@ +Route18_MapScripts:: @ 81681F6 + map_script 3, Route18_MapScript1_168201 + map_script 4, Route18_MapScript2_168211 + .byte 0 + +Route18_MapScript1_168201:: @ 8168201 + compare_var_to_value VAR_MAP_SCENE_ROUTE16, 1 + call_if 1, EventScript_16820D + end + +EventScript_16820D:: @ 816820D + setflag FLAG_0x830 + return + +Route18_MapScript2_168211:: @ 8168211 + map_script_2 VAR_MAP_SCENE_ROUTE16, 1, EventScript_16821B + .2byte 0 + +EventScript_16821B:: @ 816821B + special sub_80CA630 + end + +Route18_EventScript_16821F:: @ 816821F + msgbox gUnknown_8187757, 3 + end + +Route18_EventScript_168228:: @ 8168228 + msgbox gUnknown_818777C, 3 + end diff --git a/data/maps/Route18/text.inc b/data/maps/Route18/text.inc new file mode 100644 index 000000000..c22a6360a --- /dev/null +++ b/data/maps/Route18/text.inc @@ -0,0 +1,40 @@ +Text_187640:: @ 8187640 + .string "I always check every grassy area\n" + .string "for new POKéMON.$" + +Text_187672:: @ 8187672 + .string "Tch!$" + +Text_187677:: @ 8187677 + .string "I wish I had a BIKE!$" + +Text_18768C:: @ 818768C + .string "Kurukkoo!\n" + .string "How do you like my birdcall?$" + +Text_1876B3:: @ 81876B3 + .string "I had to bug you!$" + +Text_1876C5:: @ 81876C5 + .string "I collect sea POKéMON on weekends\n" + .string "because the sea is so close.$" + +Text_187704:: @ 8187704 + .string "This is my turf!\n" + .string "Get out of here!$" + +Text_187726:: @ 8187726 + .string "Darn!$" + +Text_18772C:: @ 818772C + .string "This is my fave area for catching\n" + .string "POKéMON.$" + +gUnknown_8187757:: @ 8187757 + .string "ROUTE 18\n" + .string "CELADON CITY - FUCHSIA CITY$" + +gUnknown_818777C:: @ 818777C + .string "CYCLING ROAD\n" + .string "No pedestrians permitted!$" + diff --git a/data/maps/Route18_EastEntrance_1F/map.json b/data/maps/Route18_EastEntrance_1F/map.json new file mode 100644 index 000000000..1342a562e --- /dev/null +++ b/data/maps/Route18_EastEntrance_1F/map.json @@ -0,0 +1,155 @@ +{ + "id": "MAP_ROUTE18_EAST_ENTRANCE_1F", + "name": "Route18_EastEntrance_1F", + "layout": "LAYOUT_ENTRANCE_1F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_18", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route18_EastEntrance_1F_EventScript_170391", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE18", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE18", + "dest_warp_id": 1 + }, + { + "x": 9, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 2, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 0, + "script": "Route18_EastEntrance_1F_EventScript_1A77C1" + }, + { + "type": "trigger", + "x": 6, + "y": 4, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route18_EastEntrance_1F_EventScript_17039A" + }, + { + "type": "trigger", + "x": 6, + "y": 5, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route18_EastEntrance_1F_EventScript_1703A6" + }, + { + "type": "trigger", + "x": 6, + "y": 6, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route18_EastEntrance_1F_EventScript_1703B2" + }, + { + "type": "trigger", + "x": 6, + "y": 7, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route18_EastEntrance_1F_EventScript_1703BE" + }, + { + "type": "trigger", + "x": 6, + "y": 8, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 0, + "script": "Route18_EastEntrance_1F_EventScript_1703CA" + }, + { + "type": "trigger", + "x": 10, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 1, + "script": "Route18_EastEntrance_1F_EventScript_1A77B6" + }, + { + "type": "trigger", + "x": 11, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 1, + "script": "Route18_EastEntrance_1F_EventScript_1A77B6" + }, + { + "type": "trigger", + "x": 11, + "y": 7, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 1, + "script": "Route18_EastEntrance_1F_EventScript_1A77B6" + }, + { + "type": "trigger", + "x": 1, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 0, + "script": "Route18_EastEntrance_1F_EventScript_1A77C1" + }, + { + "type": "trigger", + "x": 1, + "y": 7, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": 0, + "script": "Route18_EastEntrance_1F_EventScript_1A77C1" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route18_EastEntrance_1F/scripts.inc b/data/maps/Route18_EastEntrance_1F/scripts.inc new file mode 100644 index 000000000..70a8d196b --- /dev/null +++ b/data/maps/Route18_EastEntrance_1F/scripts.inc @@ -0,0 +1,115 @@ +Route18_EastEntrance_1F_MapScripts:: @ 8170378 + map_script 3, Route18_EastEntrance_1F_MapScript1_17037E + .byte 0 + +Route18_EastEntrance_1F_MapScript1_17037E:: @ 817037E + clearflag FLAG_0x830 + checkflag FLAG_0x271 + call_if 1, EventScript_17038B + end + +EventScript_17038B:: @ 817038B + setvar VAR_0x4001, 1 + return + +Route18_EastEntrance_1F_EventScript_170391:: @ 8170391 + msgbox gUnknown_819FD3A, 2 + end + +Route18_EastEntrance_1F_EventScript_17039A:: @ 817039A + lockall + setvar VAR_0x8008, 0 + goto EventScript_1703D6 + end + +Route18_EastEntrance_1F_EventScript_1703A6:: @ 81703A6 + lockall + setvar VAR_0x8008, 1 + goto EventScript_1703D6 + end + +Route18_EastEntrance_1F_EventScript_1703B2:: @ 81703B2 + lockall + setvar VAR_0x8008, 2 + goto EventScript_1703D6 + end + +Route18_EastEntrance_1F_EventScript_1703BE:: @ 81703BE + lockall + setvar VAR_0x8008, 3 + goto EventScript_1703D6 + end + +Route18_EastEntrance_1F_EventScript_1703CA:: @ 81703CA + lockall + setvar VAR_0x8008, 4 + goto EventScript_1703D6 + end + +EventScript_1703D6:: @ 81703D6 + textcolor 0 + msgbox gUnknown_819FD60 + closemessage + applymovement 255, Movement_1A75E9 + waitmovement 0 + delay 20 + compare_var_to_value VAR_0x8008, 1 + call_if 1, EventScript_17042F + compare_var_to_value VAR_0x8008, 2 + call_if 1, EventScript_17043A + compare_var_to_value VAR_0x8008, 3 + call_if 1, EventScript_170445 + compare_var_to_value VAR_0x8008, 4 + call_if 1, EventScript_170450 + msgbox gUnknown_819FD0C + closemessage + applymovement 255, Movement_170469 + waitmovement 0 + releaseall + end + +EventScript_17042F:: @ 817042F + applymovement 255, Movement_17045B + waitmovement 0 + return + +EventScript_17043A:: @ 817043A + applymovement 255, Movement_17045D + waitmovement 0 + return + +EventScript_170445:: @ 8170445 + applymovement 255, Movement_170460 + waitmovement 0 + return + +EventScript_170450:: @ 8170450 + applymovement 255, Movement_170464 + waitmovement 0 + return + +Movement_17045B:: @ 817045B + step_11 + step_end + +Movement_17045D:: @ 817045D + step_11 + step_11 + step_end + +Movement_170460:: @ 8170460 + step_11 + step_11 + step_11 + step_end + +Movement_170464:: @ 8170464 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_170469:: @ 8170469 + step_13 + step_end diff --git a/data/maps/Route18_EastEntrance_1F/text.inc b/data/maps/Route18_EastEntrance_1F/text.inc new file mode 100644 index 000000000..5de293cba --- /dev/null +++ b/data/maps/Route18_EastEntrance_1F/text.inc @@ -0,0 +1,11 @@ +gUnknown_819FD0C:: @ 819FD0C + .string "You need a BICYCLE to go out on\n" + .string "CYCLING ROAD!$" + +gUnknown_819FD3A:: @ 819FD3A + .string "CYCLING ROAD is all uphill from\n" + .string "here.$" + +gUnknown_819FD60:: @ 819FD60 + .string "Excuse me!$" + diff --git a/data/maps/Route18_EastEntrance_2F/map.json b/data/maps/Route18_EastEntrance_2F/map.json new file mode 100644 index 000000000..c8be7d1e5 --- /dev/null +++ b/data/maps/Route18_EastEntrance_2F/map.json @@ -0,0 +1,56 @@ +{ + "id": "MAP_ROUTE18_EAST_ENTRANCE_2F", + "name": "Route18_EastEntrance_2F", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_18", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "19", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route18_EastEntrance_2F_EventScript_17047E", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "Route18_EastEntrance_2F_EventScript_17046C" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 1, + "elevation": 0, + "script": "Route18_EastEntrance_2F_EventScript_170475" + } + ] +} diff --git a/data/maps/Route18_EastEntrance_2F/scripts.inc b/data/maps/Route18_EastEntrance_2F/scripts.inc new file mode 100644 index 000000000..204a0f879 --- /dev/null +++ b/data/maps/Route18_EastEntrance_2F/scripts.inc @@ -0,0 +1,48 @@ +Route18_EastEntrance_2F_MapScripts:: @ 817046B + .byte 0 + +Route18_EastEntrance_2F_EventScript_17046C:: @ 817046C + msgbox gUnknown_819FD6B, 3 + end + +Route18_EastEntrance_2F_EventScript_170475:: @ 8170475 + msgbox gUnknown_819FDB3, 3 + end + +Route18_EastEntrance_2F_EventScript_17047E:: @ 817047E + lock + faceplayer + setvar VAR_0x8008, 5 + call EventScript_1A8CAD + checkflag FLAG_0x257 + goto_if_eq EventScript_1704F0 + msgbox gUnknown_81A597B, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1704D8 + call EventScript_1A8CBD + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_1704D8 + call EventScript_1A8CC9 + compare_var_to_var VAR_RESULT, VAR_0x8009 + goto_if 5, EventScript_1704E2 + call EventScript_1A8CD9 + msgbox gUnknown_81A59DA + setflag FLAG_0x257 + release + end + +EventScript_1704D8:: @ 81704D8 + msgbox gUnknown_81A59B6 + release + end + +EventScript_1704E2:: @ 81704E2 + getspeciesname 0, VAR_0x8009 + msgbox gUnknown_81A59C6 + release + end + +EventScript_1704F0:: @ 81704F0 + msgbox gUnknown_81A59E7 + release + end diff --git a/data/maps/Route18_EastEntrance_2F/text.inc b/data/maps/Route18_EastEntrance_2F/text.inc new file mode 100644 index 000000000..8a479371c --- /dev/null +++ b/data/maps/Route18_EastEntrance_2F/text.inc @@ -0,0 +1,10 @@ +gUnknown_819FD6B:: @ 819FD6B + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "PALLET TOWN is in the west.$" + +gUnknown_819FDB3:: @ 819FDB3 + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "There are people swimming.$" + diff --git a/data/maps/Route19/map.json b/data/maps/Route19/map.json new file mode 100644 index 000000000..afa7b3b03 --- /dev/null +++ b/data/maps/Route19/map.json @@ -0,0 +1,195 @@ +{ + "id": "MAP_ROUTE19", + "name": "Route19", + "layout": "LAYOUT_ROUTE19", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_19", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_FUCHSIA_CITY", + "offset": -12, + "direction": "up" + }, + { + "map": "MAP_ROUTE20", + "offset": 40, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "45", + "x": 15, + "y": 10, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 6, + "movement_range_y": 3, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route19_EventScript_1AB44F", + "flag": "0" + }, + { + "graphics_id": "45", + "x": 10, + "y": 9, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route19_EventScript_1AB411", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 12, + "y": 17, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route19_EventScript_1AB547", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 18, + "y": 33, + "elevation": 1, + "movement_type": "51", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route19_EventScript_1AB48D", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 8, + "y": 27, + "elevation": 1, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route19_EventScript_1AB4CB", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 16, + "y": 22, + "elevation": 1, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 6, + "script": "Route19_EventScript_1AB509", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 11, + "y": 47, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route19_EventScript_1AB585", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 14, + "y": 48, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route19_EventScript_1AB601", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 12, + "y": 49, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route19_EventScript_1AB63F", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 9, + "y": 48, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route19_EventScript_1AB5C3", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 8, + "y": 41, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route19_EventScript_1AB67D", + "flag": "0" + }, + { + "graphics_id": "36", + "x": 9, + "y": 41, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route19_EventScript_1AB6C3", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 13, + "y": 12, + "elevation": 0, + "script": "Route19_EventScript_168232" + } + ] +} diff --git a/data/maps/Route19/scripts.inc b/data/maps/Route19/scripts.inc new file mode 100644 index 000000000..28a71830d --- /dev/null +++ b/data/maps/Route19/scripts.inc @@ -0,0 +1,6 @@ +Route19_MapScripts:: @ 8168231 + .byte 0 + +Route19_EventScript_168232:: @ 8168232 + msgbox gUnknown_8187C06, 3 + end diff --git a/data/maps/Route19/text.inc b/data/maps/Route19/text.inc new file mode 100644 index 000000000..a76ff89d7 --- /dev/null +++ b/data/maps/Route19/text.inc @@ -0,0 +1,119 @@ +Text_1877A3:: @ 81877A3 + .string "I have to exercise and warm up\n" + .string "before going out for a swim.$" + +Text_1877DF:: @ 81877DF + .string "All warmed up!$" + +Text_1877EE:: @ 81877EE + .string "Thanks, kid!\n" + .string "I'm ready for a swim.$" + +Text_187811:: @ 8187811 + .string "Wait! Slow down!\n" + .string "You'll have a heart attack!$" + +Text_18783E:: @ 818783E + .string "Ooh!\n" + .string "That's chilly!$" + +Text_187852:: @ 8187852 + .string "Watch out for TENTACOOL.\n" + .string "They sting so painfully.$" + +Text_187884:: @ 8187884 + .string "I love swimming!\n" + .string "What about you?$" + +Text_1878A5:: @ 81878A5 + .string "Belly flop!$" + +Text_1878B1:: @ 81878B1 + .string "I can beat even marine POKéMON\n" + .string "at swimming.$" + +Text_1878DD:: @ 81878DD + .string "What's beyond the horizon?$" + +Text_1878F8:: @ 81878F8 + .string "Glub!$" + +Text_1878FE:: @ 81878FE + .string "I see a couple of islands over\n" + .string "yonder!$" + +Text_187925:: @ 8187925 + .string "I tried diving for POKéMON, but it\n" + .string "was a no-go.$" + +Text_187955:: @ 8187955 + .string "Help!$" + +Text_18795B:: @ 818795B + .string "I guess you have to fish for sea\n" + .string "POKéMON.$" + +Text_187985:: @ 8187985 + .string "I look at the sea to forget all\n" + .string "the bad things that happened.$" + +Text_1879C3:: @ 81879C3 + .string "Ooh!\n" + .string "Traumatic!$" + +Text_1879D3:: @ 81879D3 + .string "I'm looking at the sea to forget\n" + .string "the bad thing that happened!$" + +Text_187A11:: @ 8187A11 + .string "Oh, I just love your ride!\n" + .string "Can I have it if I win?$" + +Text_187A44:: @ 8187A44 + .string "Oh! I lost!$" + +Text_187A50:: @ 8187A50 + .string "It's still a long way to go to\n" + .string "SEAFOAM ISLANDS…\p" + .string "I want to go back to FUCHSIA…$" + +Text_187A9E:: @ 8187A9E + .string "Swimming's great!\n" + .string "Sunburns aren't!$" + +Text_187AC1:: @ 8187AC1 + .string "Shocker!$" + +Text_187ACA:: @ 8187ACA + .string "My boyfriend wanted to swim to\n" + .string "SEAFOAM ISLANDS.$" + +Text_187AFA:: @ 8187AFA + .string "Ahoy, there!\n" + .string "These waters are treacherous!$" + +Text_187B25:: @ 8187B25 + .string "Ooh!\n" + .string "Dangerous!$" + +Text_187B35:: @ 8187B35 + .string "M-my legs! They cramped up!\n" + .string "Glub, glub…$" + +Text_187B5D:: @ 8187B5D + .string "I swam here with my friends…\n" + .string "I'm tired…$" + +Text_187B85:: @ 8187B85 + .string "I'm exhausted…$" + +Text_187B94:: @ 8187B94 + .string "If I were to ride a POKéMON on\n" + .string "the sea, I'd like a LAPRAS.\p" + .string "LAPRAS is so big, I bet it\n" + .string "would keep me dry on water.$" + +gUnknown_8187C06:: @ 8187C06 + .string "SEA ROUTE 19\n" + .string "FUCHSIA CITY - SEAFOAM ISLANDS$" + diff --git a/data/maps/Route2/map.json b/data/maps/Route2/map.json new file mode 100644 index 000000000..92a7b66e8 --- /dev/null +++ b/data/maps/Route2/map.json @@ -0,0 +1,208 @@ +{ + "id": "MAP_ROUTE2", + "name": "Route2", + "layout": "LAYOUT_ROUTE2", + "music": "BGM_FRLG_ROUTE_1", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_PEWTER_CITY", + "offset": -12, + "direction": "up" + }, + { + "map": "MAP_VIRIDIAN_CITY", + "offset": -12, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "95", + "x": 16, + "y": 62, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_EventScript_1BDF13", + "flag": "20" + }, + { + "graphics_id": "95", + "x": 15, + "y": 69, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "95", + "x": 11, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_EventScript_1BDF13", + "flag": "21" + }, + { + "graphics_id": "95", + "x": 18, + "y": 26, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_EventScript_1BDF13", + "flag": "22" + }, + { + "graphics_id": "92", + "x": 17, + "y": 54, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_EventScript_1BE58E", + "flag": "340" + }, + { + "graphics_id": "92", + "x": 17, + "y": 64, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_EventScript_1BE59B", + "flag": "341" + }, + { + "graphics_id": "65375", + "x": 6, + "y": 85, + "elevation": 8, + "movement_type": "0", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": 3 + }, + { + "x": 6, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 51, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 17, + "y": 11, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 17, + "y": 22, + "elevation": 0, + "dest_map": "MAP_ROUTE2_HOUSE", + "dest_warp_id": 1 + }, + { + "x": 18, + "y": 46, + "elevation": 3, + "dest_map": "MAP_ROUTE2_EAST_BUILDING", + "dest_warp_id": 1 + }, + { + "x": 18, + "y": 41, + "elevation": 3, + "dest_map": "MAP_ROUTE2_EAST_BUILDING", + "dest_warp_id": 3 + }, + { + "x": 19, + "y": 41, + "elevation": 3, + "dest_map": "MAP_ROUTE2_EAST_BUILDING", + "dest_warp_id": 3 + }, + { + "x": 19, + "y": 46, + "elevation": 3, + "dest_map": "MAP_ROUTE2_EAST_BUILDING", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 51, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 14, + "y": 12, + "elevation": 0, + "script": "Route2_EventScript_167F6E" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 73, + "elevation": 0, + "script": "Route2_EventScript_167F65" + } + ] +} diff --git a/data/maps/Route2/scripts.inc b/data/maps/Route2/scripts.inc new file mode 100644 index 000000000..67ba5729e --- /dev/null +++ b/data/maps/Route2/scripts.inc @@ -0,0 +1,10 @@ +Route2_MapScripts:: @ 8167F64 + .byte 0 + +Route2_EventScript_167F65:: @ 8167F65 + msgbox gUnknown_818345E, 3 + end + +Route2_EventScript_167F6E:: @ 8167F6E + msgbox gUnknown_8183482, 3 + end diff --git a/data/maps/Route2/text.inc b/data/maps/Route2/text.inc new file mode 100644 index 000000000..4197b7071 --- /dev/null +++ b/data/maps/Route2/text.inc @@ -0,0 +1,7 @@ +gUnknown_818345E:: @ 818345E + .string "ROUTE 2\n" + .string "VIRIDIAN CITY - PEWTER CITY$" + +gUnknown_8183482:: @ 8183482 + .string "DIGLETT'S CAVE$" + diff --git a/data/maps/Route20/map.json b/data/maps/Route20/map.json new file mode 100644 index 000000000..86db038c8 --- /dev/null +++ b/data/maps/Route20/map.json @@ -0,0 +1,213 @@ +{ + "id": "MAP_ROUTE20", + "name": "Route20", + "layout": "LAYOUT_ROUTE20", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_20", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_CINNABAR_ISLAND", + "offset": 0, + "direction": "left" + }, + { + "map": "MAP_ROUTE19", + "offset": -40, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "44", + "x": 8, + "y": 11, + "elevation": 1, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route20_EventScript_1AB83F", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 16, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route20_EventScript_1AB8F9", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 34, + "y": 7, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route20_EventScript_1AB801", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 43, + "y": 9, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route20_EventScript_1AB8BB", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 23, + "y": 10, + "elevation": 1, + "movement_type": "52", + "movement_range_x": 5, + "movement_range_y": 4, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route20_EventScript_1AB747", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 73, + "y": 16, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route20_EventScript_1AB937", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 111, + "y": 9, + "elevation": 1, + "movement_type": "45", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route20_EventScript_1AB709", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 106, + "y": 11, + "elevation": 1, + "movement_type": "50", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route20_EventScript_1AB785", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 93, + "y": 10, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route20_EventScript_1AB87D", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 54, + "y": 11, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route20_EventScript_1AB7C3", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 69, + "y": 3, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route20_EventScript_1ACE36", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 60, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": 3 + }, + { + "x": 72, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 68, + "y": 14, + "elevation": 0, + "script": "Route20_EventScript_168280" + }, + { + "type": "bg_event_type_0", + "x": 64, + "y": 8, + "elevation": 0, + "script": "Route20_EventScript_168280" + }, + { + "type": "hidden_item", + "x": 23, + "y": 6, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "153", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route20/scripts.inc b/data/maps/Route20/scripts.inc new file mode 100644 index 000000000..d99bebdd7 --- /dev/null +++ b/data/maps/Route20/scripts.inc @@ -0,0 +1,34 @@ +Route20_MapScripts:: @ 816823B + map_script 3, Route20_MapScript1_168241 + .byte 0 + +Route20_MapScript1_168241:: @ 8168241 + checkflag FLAG_0x2D2 + call_if 0, EventScript_168254 + checkflag FLAG_0x2D3 + call_if 0, EventScript_16826D + end + +EventScript_168254:: @ 8168254 + clearflag FLAG_0x040 + clearflag FLAG_0x041 + setflag FLAG_0x042 + setflag FLAG_0x043 + setflag FLAG_0x044 + setflag FLAG_0x045 + setflag FLAG_0x046 + setflag FLAG_0x047 + return + +EventScript_16826D:: @ 816826D + clearflag FLAG_0x048 + clearflag FLAG_0x049 + clearflag FLAG_0x04A + clearflag FLAG_0x04B + setflag FLAG_0x04C + setflag FLAG_0x04D + return + +Route20_EventScript_168280:: @ 8168280 + msgbox gUnknown_81882D1, 3 + end diff --git a/data/maps/Route20/text.inc b/data/maps/Route20/text.inc new file mode 100644 index 000000000..070575cc7 --- /dev/null +++ b/data/maps/Route20/text.inc @@ -0,0 +1,151 @@ +Text_187C32:: @ 8187C32 + .string "LIA: I'm looking after my brother.\n" + .string "He just became a TRAINER.$" + +Text_187C6F:: @ 8187C6F + .string "LIA: That's no way to treat my\n" + .string "little brother!$" + +Text_187C9E:: @ 8187C9E + .string "LIA: Do you have a younger\n" + .string "brother?\p" + .string "I hope you're teaching him all\n" + .string "sorts of things.$" + +Text_187CF2:: @ 8187CF2 + .string "LIA: I want to battle together\n" + .string "with my little brother.\p" + .string "Don't you have two POKéMON?$" + +Text_187D45:: @ 8187D45 + .string "LUC: My big sis taught me how\n" + .string "to swim and train POKéMON.$" + +Text_187D7E:: @ 8187D7E + .string "LUC: Oh, wow!\n" + .string "Someone tougher than my big sis!$" + +Text_187DAD:: @ 8187DAD + .string "LUC: My big sis is strong and nice.\n" + .string "I think she's awesome!$" + +Text_187DE8:: @ 8187DE8 + .string "LUC: I don't want to if I can't\n" + .string "battle you with my big sis.\p" + .string "Don't you have two POKéMON?$" + +Text_187E40:: @ 8187E40 + .string "The water is shallow here.\n" + .string "There are many people swimming.$" + +Text_187E7B:: @ 8187E7B + .string "Splash!$" + +Text_187E83:: @ 8187E83 + .string "I wish I could ride my POKéMON.\n" + .string "I bet you're not tired.$" + +Text_187EBB:: @ 8187EBB + .string "SEAFOAM is a quiet getaway.\n" + .string "I'm vacationing here.$" + +Text_187EED:: @ 8187EED + .string "Quit it!$" + +Text_187EF6:: @ 8187EF6 + .string "There's a huge cavern underneath\n" + .string "this island.$" + +Text_187F24:: @ 8187F24 + .string "I love floating with the fishes\n" + .string "here among the waves.$" + +Text_187F5A:: @ 8187F5A + .string "Yowch!$" + +Text_187F61:: @ 8187F61 + .string "Want to float with me?$" + +Text_187F78:: @ 8187F78 + .string "Are you on vacation, too?$" + +Text_187F92:: @ 8187F92 + .string "No mercy at all!$" + +Text_187FA3:: @ 8187FA3 + .string "SEAFOAM used to be a single island\n" + .string "in the distant past.$" + +Text_187FDB:: @ 8187FDB + .string "Check out my buff physique!$" + +Text_187FF7:: @ 8187FF7 + .string "Wimpy!$" + +Text_187FFE:: @ 8187FFE + .string "I should've been buffing up my\n" + .string "POKéMON, not me!$" + +Text_18802E:: @ 818802E + .string "Why are you riding a POKéMON?\n" + .string "Can't you swim?$" + +Text_18805C:: @ 818805C + .string "Ouch!\n" + .string "Torpedoed!$" + +Text_18806D:: @ 818806D + .string "Riding a POKéMON sure looks fun!$" + +Text_18808E:: @ 818808E + .string "I rode my bird POKéMON here.$" + +Text_1880AB:: @ 81880AB + .string "Oh, no!\n" + .string "Now what am I to do?$" + +Text_1880C8:: @ 81880C8 + .string "My birds are exhausted.\n" + .string "They can't FLY me back!$" + +Text_1880F8:: @ 81880F8 + .string "My boyfriend gave me big pearls.$" + +Text_188119:: @ 8188119 + .string "Oh, no!\n" + .string "My pearls were in them!$" + +Text_188139:: @ 8188139 + .string "Will my pearls grow bigger inside\n" + .string "CLOYSTER?$" + +Text_188165:: @ 8188165 + .string "I swam here from CINNABAR ISLAND.\n" + .string "It wasn't easy, I tell you.$" + +Text_1881A3:: @ 81881A3 + .string "I'm so disappointed!$" + +Text_1881B8:: @ 81881B8 + .string "POKéMON have taken over an\n" + .string "abandoned mansion on CINNABAR.\p" + .string "They call it the POKéMON MANSION\n" + .string "now.$" + +Text_188218:: @ 8188218 + .string "CINNABAR, in the west, has a LAB\n" + .string "for POKéMON.\p" + .string "My daddy works there.$" + +Text_18825C:: @ 818825C + .string "Wait!\n" + .string "You're supposed to wait!$" + +Text_18827B:: @ 818827B + .string "CINNABAR is a volcanic island.\p" + .string "I heard it rose out of the sea\n" + .string "when a volcano erupted.$" + +gUnknown_81882D1:: @ 81882D1 + .string "SEAFOAM ISLANDS$" + diff --git a/data/maps/Route21_North/map.json b/data/maps/Route21_North/map.json new file mode 100644 index 000000000..1a5a65b84 --- /dev/null +++ b/data/maps/Route21_North/map.json @@ -0,0 +1,119 @@ +{ + "id": "MAP_ROUTE21_NORTH", + "name": "Route21_North", + "layout": "LAYOUT_ROUTE21_NORTH", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_21", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_PALLET_TOWN", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE21_SOUTH", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "57", + "x": 7, + "y": 27, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route21_North_EventScript_1AB975", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 16, + "y": 26, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route21_North_EventScript_1AB9F1", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 12, + "y": 44, + "elevation": 1, + "movement_type": "51", + "movement_range_x": 4, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route21_North_EventScript_1ABA6D", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 14, + "y": 35, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route21_North_EventScript_1ABB65", + "flag": "0" + }, + { + "graphics_id": "36", + "x": 15, + "y": 35, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route21_North_EventScript_1ABBAB", + "flag": "0" + }, + { + "graphics_id": "65307", + "x": 13, + "y": 65533, + "elevation": 2, + "movement_type": "0", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 3, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 17, + "y": 42, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "154", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route21_North/scripts.inc b/data/maps/Route21_North/scripts.inc new file mode 100644 index 000000000..473a8ac59 --- /dev/null +++ b/data/maps/Route21_North/scripts.inc @@ -0,0 +1,2 @@ +Route21_North_MapScripts:: @ 8168289 + .byte 0 diff --git a/data/maps/Route21_South/map.json b/data/maps/Route21_South/map.json new file mode 100644 index 000000000..324dd7ea0 --- /dev/null +++ b/data/maps/Route21_South/map.json @@ -0,0 +1,96 @@ +{ + "id": "MAP_ROUTE21_SOUTH", + "name": "Route21_South", + "layout": "LAYOUT_ROUTE21_SOUTH", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_21", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE21_NORTH", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_CINNABAR_ISLAND", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "57", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route21_South_EventScript_1AB9B3", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 14, + "y": 15, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route21_South_EventScript_1ABA2F", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 15, + "y": 24, + "elevation": 1, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route21_South_EventScript_1ABAAB", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 15, + "y": 38, + "elevation": 1, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route21_South_EventScript_1ABAE9", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 10, + "y": 29, + "elevation": 1, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route21_South_EventScript_1ABB27", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route21_South/scripts.inc b/data/maps/Route21_South/scripts.inc new file mode 100644 index 000000000..caab96b6a --- /dev/null +++ b/data/maps/Route21_South/scripts.inc @@ -0,0 +1,2 @@ +Route21_South_MapScripts:: @ 816828A + .byte 0 diff --git a/data/maps/Route22/map.json b/data/maps/Route22/map.json new file mode 100644 index 000000000..5b6ea3621 --- /dev/null +++ b/data/maps/Route22/map.json @@ -0,0 +1,122 @@ +{ + "id": "MAP_ROUTE22", + "name": "Route22", + "layout": "LAYOUT_ROUTE22", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_22", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE23", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_VIRIDIAN_CITY", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "72", + "x": 25, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "79" + } + ], + "warp_events": [ + { + "x": 8, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", + "dest_warp_id": 2 + }, + { + "x": 9, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", + "dest_warp_id": 2 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 33, + "y": 4, + "elevation": 3, + "var": "VAR_0x4054", + "var_value": 1, + "script": "Route22_EventScript_16828C" + }, + { + "type": "trigger", + "x": 33, + "y": 5, + "elevation": 3, + "var": "VAR_0x4054", + "var_value": 1, + "script": "Route22_EventScript_168298" + }, + { + "type": "trigger", + "x": 33, + "y": 6, + "elevation": 0, + "var": "VAR_0x4054", + "var_value": 1, + "script": "Route22_EventScript_1682AB" + }, + { + "type": "trigger", + "x": 33, + "y": 4, + "elevation": 3, + "var": "VAR_0x4054", + "var_value": 3, + "script": "Route22_EventScript_1683ED" + }, + { + "type": "trigger", + "x": 33, + "y": 5, + "elevation": 3, + "var": "VAR_0x4054", + "var_value": 3, + "script": "Route22_EventScript_1683F9" + }, + { + "type": "trigger", + "x": 33, + "y": 6, + "elevation": 0, + "var": "VAR_0x4054", + "var_value": 3, + "script": "Route22_EventScript_16840C" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 7, + "y": 12, + "elevation": 0, + "script": "Route22_EventScript_1684E2" + } + ] +} diff --git a/data/maps/Route22/scripts.inc b/data/maps/Route22/scripts.inc new file mode 100644 index 000000000..a116b73eb --- /dev/null +++ b/data/maps/Route22/scripts.inc @@ -0,0 +1,261 @@ +Route22_MapScripts:: @ 816828B + .byte 0 + +Route22_EventScript_16828C:: @ 816828C + lockall + setvar VAR_0x4001, 0 + goto EventScript_1682BE + +EventScript_168297:: @ 8168297 + end + +Route22_EventScript_168298:: @ 8168298 + lockall + setvar VAR_0x4001, 1 + setobjectxyperm 1, 25, 5 + goto EventScript_1682BE + +EventScript_1682AA:: @ 81682AA + end + +Route22_EventScript_1682AB:: @ 81682AB + lockall + setvar VAR_0x4001, 2 + setobjectxyperm 1, 25, 5 + goto EventScript_1682BE + +EventScript_1682BD:: @ 81682BD + end + +EventScript_1682BE:: @ 81682BE + textcolor 0 + playbgm BGM_FRLG_RIVAL, 0 + addobject 1 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_168350 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_168350 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_16835B + delay 6 + msgbox gUnknown_8188890 + compare_var_to_value VAR_STARTER_MON, 2 + call_if 1, EventScript_16836D + compare_var_to_value VAR_STARTER_MON, 1 + call_if 1, EventScript_16837C + compare_var_to_value VAR_STARTER_MON, 0 + call_if 1, EventScript_16838B + msgbox gUnknown_8188974 + closemessage + delay 10 + playbgm BGM_FRLG_RIVAL_POSTBATTLE, 0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16839A + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16839A + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_1683A5 + fadedefaultbgm + removeobject 1 + setvar VAR_0x4054, 2 + releaseall + end + +EventScript_168350:: @ 8168350 + applymovement 1, Movement_1683D1 + waitmovement 0 + return + +EventScript_16835B:: @ 816835B + applymovement 1, Movement_1683D9 + applymovement 255, Movement_1683E3 + waitmovement 0 + return + +EventScript_16836D:: @ 816836D + trainerbattle 9, 329, 0, Text_188959, Text_18DE1A + return + +EventScript_16837C:: @ 816837C + trainerbattle 9, 330, 0, Text_188959, Text_18DE1A + return + +EventScript_16838B:: @ 816838B + trainerbattle 9, 331, 0, Text_188959, Text_18DE1A + return + +EventScript_16839A:: @ 816839A + applymovement 1, Movement_1683B8 + waitmovement 0 + return + +EventScript_1683A5:: @ 81683A5 + applymovement 1, Movement_1683C5 + waitmovement 0 + return + +Movement_1683B0:: @ 8 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_1683B8:: @ 81683B8 + step_10 + step_13 + step_13 + step_13 + step_13 + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +Movement_1683C5:: @ 81683C5 + step_13 + step_13 + step_13 + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +Movement_1683D1:: @ 81683D1 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_end + +Movement_1683D9:: @ 81683D9 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_13 + step_2d + step_end + +Movement_1683E3:: @ 81683E3 + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1c + step_1b + step_2e + step_end + +Route22_EventScript_1683ED:: @ 81683ED + lockall + setvar VAR_0x4001, 0 + goto EventScript_16841F + +EventScript_1683F8:: @ 81683F8 + end + +Route22_EventScript_1683F9:: @ 81683F9 + lockall + setvar VAR_0x4001, 1 + setobjectxyperm 1, 25, 5 + goto EventScript_16841F + +EventScript_16840B:: @ 816840B + end + +Route22_EventScript_16840C:: @ 816840C + lockall + setvar VAR_0x4001, 2 + setobjectxyperm 1, 25, 5 + goto EventScript_16841F + +EventScript_16841E:: @ 816841E + end + +EventScript_16841F:: @ 816841F + textcolor 0 + playbgm BGM_FRLG_RIVAL, 0 + addobject 1 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16849C + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16849C + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_1684A7 + msgbox gUnknown_8188A3C + setvar VAR_LAST_TALKED, 1 + compare_var_to_value VAR_STARTER_MON, 2 + call_if 1, EventScript_1684B9 + compare_var_to_value VAR_STARTER_MON, 1 + call_if 1, EventScript_1684C4 + compare_var_to_value VAR_STARTER_MON, 0 + call_if 1, EventScript_1684CF + msgbox gUnknown_8188B29 + closemessage + delay 10 + playbgm BGM_FRLG_RIVAL_POSTBATTLE, 0 + applymovement 1, Movement_1684DA + waitmovement 0 + fadedefaultbgm + removeobject 1 + setvar VAR_0x4054, 4 + releaseall + end + +EventScript_16849C:: @ 816849C + applymovement 1, Movement_1683D1 + waitmovement 0 + return + +EventScript_1684A7:: @ 81684A7 + applymovement 1, Movement_1683D9 + applymovement 255, Movement_1683E3 + waitmovement 0 + return + +EventScript_1684B9:: @ 81684B9 + trainerbattle 3, 435, 0, Text_188B08 + return + +EventScript_1684C4:: @ 81684C4 + trainerbattle 3, 436, 0, Text_188B08 + return + +EventScript_1684CF:: @ 81684CF + trainerbattle 3, 437, 0, Text_188B08 + return + +Movement_1684DA:: @ 81684DA + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_12 + step_end + +Route22_EventScript_1684E2:: @ 81684E2 + msgbox gUnknown_8188BFF, 3 + end diff --git a/data/maps/Route22/text.inc b/data/maps/Route22/text.inc new file mode 100644 index 000000000..7bfe6931b --- /dev/null +++ b/data/maps/Route22/text.inc @@ -0,0 +1,201 @@ +Text_1882E1:: @ 81882E1 + .string "Strong TRAINERS and WATER POKéMON\n" + .string "are common sights in these parts.\p" + .string "They say that MISTY of the\n" + .string "CERULEAN GYM trains here.$" + +Text_18835A:: @ 818835A + .string "You want to know if the fish are\n" + .string "biting?$" + +Text_188383:: @ 8188383 + .string "Dang!$" + +Text_188389:: @ 8188389 + .string "I can't catch anything good.\n" + .string "Not one good POKéMON to be had!$" + +Text_1883C6:: @ 81883C6 + .string "I got a big haul!\n" + .string "Wanna go for it?$" + +Text_1883E9:: @ 81883E9 + .string "Heheh, MAGIKARP just don't make\n" + .string "the grade, do they?$" + +Text_18841D:: @ 818841D + .string "I seem to only catch MAGIKARP!$" + +Text_18843C:: @ 818843C + .string "The sea cleanses my body and soul!$" + +Text_18845F:: @ 818845F + .string "Ayah!$" + +Text_188465:: @ 8188465 + .string "The sea is great and all, but I\n" + .string "like the mountains, too.$" + +Text_18849E:: @ 818849E + .string "おれだって たまには\n" + .string "およぎに くるぜ!$" + +Text_1884B3:: @ 81884B3 + .string "ぐわわ!$" + +Text_1884B8:: @ 81884B8 + .string "うきやすそう だと?\n" + .string "うるせー おおきな おせわだッ!$" + +Text_1884D4:: @ 81884D4 + .string "I caught my POKéMON at sea.$" + +Text_1884F0:: @ 81884F0 + .string "Diver!!\n" + .string "Down!!$" + +Text_1884FF:: @ 81884FF + .string "Where'd you catch your POKéMON?$" + +Text_18851F:: @ 818851F + .string "Right now, I'm in a triathlon meet.$" + +Text_188543:: @ 8188543 + .string "Pant…\n" + .string "Pant… Pant…$" + +Text_188555:: @ 8188555 + .string "I'm beat! But, I still have the\n" + .string "bike race and marathon left!$" + +Text_188592:: @ 8188592 + .string "Ahh!\n" + .string "Feel the sun and the wind!$" + +Text_1885B2:: @ 81885B2 + .string "Yow!\n" + .string "I lost!$" + +Text_1885BF:: @ 81885BF + .string "I'm sunburnt to a crisp!$" + +Text_1885D8:: @ 81885D8 + .string "Hey, don't scare away the fish!$" + +Text_1885F8:: @ 81885F8 + .string "Sorry! I'm just so frustrated from\n" + .string "not catching anything.$" + +Text_188632:: @ 8188632 + .string "Sheesh, I haven't caught a thing.\n" + .string "Could this place actually be a\l" + .string "giant pool or something?$" + +Text_18868C:: @ 818868C + .string "Keep me company till I get a hit.$" + +Text_1886AE:: @ 81886AE + .string "That burned some time.$" + +Text_1886C5:: @ 81886C5 + .string "Oh wait!\n" + .string "I got a bite! Yeah!$" + +Text_1886E2:: @ 81886E2 + .string "LIL: Huh? A battle?\n" + .string "IAN, can't you do it alone?$" + +Text_188712:: @ 8188712 + .string "LIL: Oh, see?\n" + .string "We lost. Happy now?$" + +Text_188734:: @ 8188734 + .string "LIL: I'm tired.\n" + .string "Can't we go home already?$" + +Text_18875E:: @ 818875E + .string "LIL: Huh? A battle?\n" + .string "I can't be bothered to do it alone.\l" + .string "Bring two POKéMON, won't you?$" + +Text_1887B4:: @ 81887B4 + .string "IAN: My sis doesn't get enough\n" + .string "exercise, so I made her come.$" + +Text_1887F1:: @ 81887F1 + .string "IAN: Awww, Sis!\n" + .string "Get it together!$" + +Text_188812:: @ 8188812 + .string "IAN: Come on, Sis!\p" + .string "You're not going to lose weight\n" + .string "like this!$" + +Text_188850:: @ 8188850 + .string "IAN: We want a two-on-two battle.\n" + .string "So can you bring two POKéMON?$" + +gUnknown_8188890:: @ 8188890 + .string "{RIVAL}: Hey! {PLAYER}!\p" + .string "You're off to the POKéMON LEAGUE?\n" + .string "Forget about it!\p" + .string "You probably don't have any\n" + .string "BADGES, do you?\p" + .string "The guard won't let you through\n" + .string "without them.\p" + .string "By the way, did your POKéMON get\n" + .string "any stronger?$" + +Text_188959:: @ 8188959 + .string "Awww!\n" + .string "You just lucked out!$" + +gUnknown_8188974:: @ 8188974 + .string "I heard the POKéMON LEAGUE is\n" + .string "crawling with tough TRAINERS.\p" + .string "I have to figure out how to get\n" + .string "past them.\p" + .string "You should quit dawdling and get a\n" + .string "move on!$" + +Text_188A07:: @ 8188A07 + .string "{RIVAL}“なんだ?\n" + .string "ポケモン 2ひきも\l" + .string "もってるの なぜか だって?\p" + .string "おまえも\n" + .string "つかまえれば いい じゃん!$" + +gUnknown_8188A3C:: @ 8188A3C + .string "{RIVAL}: What? {PLAYER}!\n" + .string "What a surprise to see you here!\p" + .string "So you're going to the POKéMON\n" + .string "LEAGUE?\p" + .string "You collected all the BADGES, too?\n" + .string "That's cool!\p" + .string "Then I'll whip you, {PLAYER}, as a\n" + .string "warm-up for the POKéMON LEAGUE!\p" + .string "Come on!$" + +Text_188B08:: @ 8188B08 + .string "What!?\p" + .string "I was just careless, you!$" + +gUnknown_8188B29:: @ 8188B29 + .string "That loosened me up.\n" + .string "I'm ready for the POKéMON LEAGUE!\p" + .string "{PLAYER}, you need more practice.\p" + .string "But hey, you know that!\n" + .string "I'm out of here. Smell ya!$" + +Text_188BAF:: @ 8188BAF + .string "{RIVAL}“ひゃははッ {PLAYER}ー!\n" + .string "それで がんばってるのかよ!\l" + .string "おれの さいのうに くらべりゃ\l" + .string "{PLAYER}は まだまだ だな!\p" + .string "もっと れんしゅう こいよ!\n" + .string "あははーッ!$" + +gUnknown_8188BFF:: @ 8188BFF + .string "POKéMON LEAGUE\n" + .string "Front Gate$" + diff --git a/data/maps/Route22_NorthEntrance/map.json b/data/maps/Route22_NorthEntrance/map.json new file mode 100644 index 000000000..2f341b5fc --- /dev/null +++ b/data/maps/Route22_NorthEntrance/map.json @@ -0,0 +1,72 @@ +{ + "id": "MAP_ROUTE22_NORTH_ENTRANCE", + "name": "Route22_NorthEntrance", + "layout": "LAYOUT_ROUTE22_NORTH_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_ROUTE_22", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 8, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route22_NorthEntrance_EventScript_1704FC", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": 2 + }, + { + "x": 6, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE22", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE22", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE22", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 7, + "y": 2, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 0, + "script": "Route22_NorthEntrance_EventScript_17050D" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route22_NorthEntrance/scripts.inc b/data/maps/Route22_NorthEntrance/scripts.inc new file mode 100644 index 000000000..49fba6173 --- /dev/null +++ b/data/maps/Route22_NorthEntrance/scripts.inc @@ -0,0 +1,18 @@ +Route22_NorthEntrance_MapScripts:: @ 81704FB + .byte 0 + +Route22_NorthEntrance_EventScript_1704FC:: @ 81704FC + lock + faceplayer + setvar VAR_0x4001, 1 + getstdstring 0, 15 + goto EventScript_1A7803 + end + +Route22_NorthEntrance_EventScript_17050D:: @ 817050D + lockall + setvar VAR_0x4001, 1 + setvar VAR_0x8009, 1 + getstdstring 0, 15 + goto EventScript_1A796E + end diff --git a/data/maps/Route23/map.json b/data/maps/Route23/map.json new file mode 100644 index 000000000..54238b10e --- /dev/null +++ b/data/maps/Route23/map.json @@ -0,0 +1,610 @@ +{ + "id": "MAP_ROUTE23", + "name": "Route23", + "layout": "LAYOUT_ROUTE23", + "music": "BGM_FRLG_INDIGO_PLATEAU", + "region_map_section": "MAPSEC_ROUTE_23", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_INDIGO_PLATEAU_EXTERIOR", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE22", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "60", + "x": 15, + "y": 149, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route23_EventScript_16850C", + "flag": "0" + }, + { + "graphics_id": "60", + "x": 8, + "y": 140, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route23_EventScript_16851D", + "flag": "0" + }, + { + "graphics_id": "60", + "x": 14, + "y": 123, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route23_EventScript_16852E", + "flag": "0" + }, + { + "graphics_id": "60", + "x": 16, + "y": 112, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route23_EventScript_16853F", + "flag": "0" + }, + { + "graphics_id": "60", + "x": 10, + "y": 94, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route23_EventScript_168550", + "flag": "0" + }, + { + "graphics_id": "60", + "x": 14, + "y": 61, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route23_EventScript_168561", + "flag": "0" + }, + { + "graphics_id": "60", + "x": 6, + "y": 35, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route23_EventScript_168572", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 28, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_1F", + "dest_warp_id": 1 + }, + { + "x": 18, + "y": 28, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": 6 + }, + { + "x": 8, + "y": 153, + "elevation": 3, + "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 154, + "elevation": 0, + "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 13, + "y": 149, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 1, + "script": "Route23_EventScript_168583" + }, + { + "type": "trigger", + "x": 7, + "y": 140, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 2, + "script": "Route23_EventScript_168598" + }, + { + "type": "trigger", + "x": 12, + "y": 123, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 3, + "script": "Route23_EventScript_1685AD" + }, + { + "type": "trigger", + "x": 11, + "y": 111, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 9, + "y": 94, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 5, + "script": "Route23_EventScript_1685D7" + }, + { + "type": "trigger", + "x": 12, + "y": 61, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 6, + "script": "Route23_EventScript_1685EC" + }, + { + "type": "trigger", + "x": 1, + "y": 35, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 7, + "script": "Route23_EventScript_168601" + }, + { + "type": "trigger", + "x": 1, + "y": 34, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 7, + "script": "Route23_EventScript_168601" + }, + { + "type": "trigger", + "x": 1, + "y": 32, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 7, + "script": "Route23_EventScript_168601" + }, + { + "type": "trigger", + "x": 1, + "y": 33, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 7, + "script": "Route23_EventScript_168601" + }, + { + "type": "trigger", + "x": 1, + "y": 31, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 7, + "script": "Route23_EventScript_168601" + }, + { + "type": "trigger", + "x": 1, + "y": 36, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 7, + "script": "Route23_EventScript_168601" + }, + { + "type": "trigger", + "x": 5, + "y": 35, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 7, + "script": "Route23_EventScript_168601" + }, + { + "type": "trigger", + "x": 4, + "y": 35, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 7, + "script": "Route23_EventScript_168601" + }, + { + "type": "trigger", + "x": 10, + "y": 60, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 6, + "script": "Route23_EventScript_1685EC" + }, + { + "type": "trigger", + "x": 13, + "y": 61, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 6, + "script": "Route23_EventScript_1685EC" + }, + { + "type": "trigger", + "x": 11, + "y": 60, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 6, + "script": "Route23_EventScript_1685EC" + }, + { + "type": "trigger", + "x": 8, + "y": 94, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 5, + "script": "Route23_EventScript_1685D7" + }, + { + "type": "trigger", + "x": 5, + "y": 92, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 5, + "script": "Route23_EventScript_1685D7" + }, + { + "type": "trigger", + "x": 7, + "y": 94, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 5, + "script": "Route23_EventScript_1685D7" + }, + { + "type": "trigger", + "x": 4, + "y": 92, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 5, + "script": "Route23_EventScript_1685D7" + }, + { + "type": "trigger", + "x": 3, + "y": 92, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 5, + "script": "Route23_EventScript_1685D7" + }, + { + "type": "trigger", + "x": 2, + "y": 92, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 5, + "script": "Route23_EventScript_1685D7" + }, + { + "type": "trigger", + "x": 4, + "y": 139, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 2, + "script": "Route23_EventScript_168598" + }, + { + "type": "trigger", + "x": 5, + "y": 139, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 2, + "script": "Route23_EventScript_168598" + }, + { + "type": "trigger", + "x": 6, + "y": 140, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 2, + "script": "Route23_EventScript_168598" + }, + { + "type": "trigger", + "x": 10, + "y": 122, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 3, + "script": "Route23_EventScript_1685AD" + }, + { + "type": "trigger", + "x": 11, + "y": 122, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 3, + "script": "Route23_EventScript_1685AD" + }, + { + "type": "trigger", + "x": 13, + "y": 123, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 3, + "script": "Route23_EventScript_1685AD" + }, + { + "type": "trigger", + "x": 8, + "y": 109, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 9, + "y": 109, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 10, + "y": 109, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 11, + "y": 109, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 12, + "y": 109, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 12, + "y": 111, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 14, + "y": 112, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 13, + "y": 112, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 15, + "y": 112, + "elevation": 1, + "var": "VAR_0x405F", + "var_value": 4, + "script": "Route23_EventScript_1685C2" + }, + { + "type": "trigger", + "x": 12, + "y": 148, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 1, + "script": "Route23_EventScript_168583" + }, + { + "type": "trigger", + "x": 11, + "y": 148, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 1, + "script": "Route23_EventScript_168583" + }, + { + "type": "trigger", + "x": 14, + "y": 149, + "elevation": 3, + "var": "VAR_0x405F", + "var_value": 1, + "script": "Route23_EventScript_168583" + }, + { + "type": "trigger", + "x": 10, + "y": 148, + "elevation": 0, + "var": "VAR_0x405F", + "var_value": 1, + "script": "Route23_EventScript_168583" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 19, + "y": 42, + "elevation": 0, + "item": "ITEM_FULL_RESTORE", + "flag": "34", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 20, + "y": 72, + "elevation": 0, + "item": "POCKET_KEY_ITEMS", + "flag": "35", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 11, + "y": 101, + "elevation": 3, + "item": "ITEM_MAX_ETHER", + "flag": "36", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 3, + "y": 18, + "elevation": 3, + "item": "ITEM_LUM_BERRY", + "flag": "145", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 2, + "y": 29, + "elevation": 3, + "item": "ITEM_SITRUS_BERRY", + "flag": "146", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 10, + "y": 67, + "elevation": 3, + "item": "ITEM_ASPEAR_BERRY", + "flag": "147", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 3, + "y": 128, + "elevation": 3, + "item": "ITEM_LEPPA_BERRY", + "flag": "148", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 9, + "y": 8, + "elevation": 3, + "item": "ITEM_MAX_ELIXIR", + "flag": "155", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 31, + "elevation": 0, + "script": "Route23_EventScript_168616" + } + ] +} diff --git a/data/maps/Route23/scripts.inc b/data/maps/Route23/scripts.inc new file mode 100644 index 000000000..f5c504650 --- /dev/null +++ b/data/maps/Route23/scripts.inc @@ -0,0 +1,128 @@ +Route23_MapScripts:: @ 81684EB + map_script 3, Route23_MapScript1_1684F1 + .byte 0 + +Route23_MapScript1_1684F1:: @ 81684F1 + clearflag FLAG_0x059 + setflag FLAG_0x058 + setvar VAR_0x4064, 0 + setvar VAR_0x4065, 0 + setvar VAR_0x4066, 0 + setvar VAR_0x4067, 0 + end + +Route23_EventScript_16850C:: @ 816850C + lock + faceplayer + setvar VAR_0x4001, 2 + getstdstring 0, 16 + goto EventScript_1A786C + end + +Route23_EventScript_16851D:: @ 816851D + lock + faceplayer + setvar VAR_0x4001, 3 + getstdstring 0, 17 + goto EventScript_1A786C + end + +Route23_EventScript_16852E:: @ 816852E + lock + faceplayer + setvar VAR_0x4001, 4 + getstdstring 0, 18 + goto EventScript_1A786C + end + +Route23_EventScript_16853F:: @ 816853F + lock + faceplayer + setvar VAR_0x4001, 5 + getstdstring 0, 19 + goto EventScript_1A786C + end + +Route23_EventScript_168550:: @ 8168550 + lock + faceplayer + setvar VAR_0x4001, 6 + getstdstring 0, 20 + goto EventScript_1A786C + end + +Route23_EventScript_168561:: @ 8168561 + lock + faceplayer + setvar VAR_0x4001, 7 + getstdstring 0, 21 + goto EventScript_1A786C + end + +Route23_EventScript_168572:: @ 8168572 + lock + faceplayer + setvar VAR_0x4001, 8 + getstdstring 0, 22 + goto EventScript_1A786C + end + +Route23_EventScript_168583:: @ 8168583 + lockall + setvar VAR_0x4001, 2 + setvar VAR_0x8009, 1 + getstdstring 0, 16 + goto EventScript_1A796E + end + +Route23_EventScript_168598:: @ 8168598 + lockall + setvar VAR_0x4001, 3 + setvar VAR_0x8009, 2 + getstdstring 0, 17 + goto EventScript_1A796E + end + +Route23_EventScript_1685AD:: @ 81685AD + lockall + setvar VAR_0x4001, 4 + setvar VAR_0x8009, 3 + getstdstring 0, 18 + goto EventScript_1A796E + end + +Route23_EventScript_1685C2:: @ 81685C2 + lockall + setvar VAR_0x4001, 5 + setvar VAR_0x8009, 4 + getstdstring 0, 19 + goto EventScript_1A796E + end + +Route23_EventScript_1685D7:: @ 81685D7 + lockall + setvar VAR_0x4001, 6 + setvar VAR_0x8009, 5 + getstdstring 0, 20 + goto EventScript_1A796E + end + +Route23_EventScript_1685EC:: @ 81685EC + lockall + setvar VAR_0x4001, 7 + setvar VAR_0x8009, 6 + getstdstring 0, 21 + goto EventScript_1A796E + end + +Route23_EventScript_168601:: @ 8168601 + lockall + setvar VAR_0x4001, 8 + setvar VAR_0x8009, 7 + getstdstring 0, 22 + goto EventScript_1A796E + end + +Route23_EventScript_168616:: @ 8168616 + msgbox gUnknown_8188C19, 3 + end diff --git a/data/maps/Route23/text.inc b/data/maps/Route23/text.inc new file mode 100644 index 000000000..6bdcaf47d --- /dev/null +++ b/data/maps/Route23/text.inc @@ -0,0 +1,4 @@ +gUnknown_8188C19:: @ 8188C19 + .string "VICTORY ROAD GATE -\n" + .string "POKéMON LEAGUE$" + diff --git a/data/maps/Route24/map.json b/data/maps/Route24/map.json new file mode 100644 index 000000000..f4b8dee3f --- /dev/null +++ b/data/maps/Route24/map.json @@ -0,0 +1,164 @@ +{ + "id": "MAP_ROUTE24", + "name": "Route24", + "layout": "LAYOUT_ROUTE24", + "music": "BGM_FRLG_ROUTE_24", + "region_map_section": "MAPSEC_ROUTE_24", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_CERULEAN_CITY", + "offset": -12, + "direction": "down" + }, + { + "map": "MAP_ROUTE25", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "25", + "x": 12, + "y": 15, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route24_EventScript_168620", + "flag": "49" + }, + { + "graphics_id": "39", + "x": 12, + "y": 19, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route24_EventScript_1A972D", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 10, + "y": 22, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route24_EventScript_1A9673", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 12, + "y": 25, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route24_EventScript_1A95F7", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 10, + "y": 28, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route24_EventScript_1A96B1", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 12, + "y": 31, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route24_EventScript_1A9635", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 5, + "y": 21, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route24_EventScript_1A96EF", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route24_EventScript_1BE644", + "flag": "354" + } + ], + "warp_events": [], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 15, + "elevation": 3, + "var": "VAR_0x406B", + "var_value": 0, + "script": "Route24_EventScript_168660" + }, + { + "type": "trigger", + "x": 11, + "y": 15, + "elevation": 3, + "var": "VAR_0x406B", + "var_value": 0, + "script": "Route24_EventScript_16866C" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 19, + "y": 4, + "elevation": 3, + "item": "ITEM_PECHA_BERRY", + "flag": "115", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route24/scripts.inc b/data/maps/Route24/scripts.inc new file mode 100644 index 000000000..91dfc90f0 --- /dev/null +++ b/data/maps/Route24/scripts.inc @@ -0,0 +1,104 @@ +Route24_MapScripts:: @ 816861F + .byte 0 + +Route24_EventScript_168620:: @ 8168620 + lock + faceplayer + compare_var_to_value VAR_0x406B, 1 + goto_if_eq EventScript_168656 + msgbox gUnknown_8188C3C + checkitemspace ITEM_NUGGET, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16864C + call EventScript_1686B9 + release + end + +EventScript_16864C:: @ 816864C + msgbox gUnknown_8188CC2 + release + end + +EventScript_168656:: @ 8168656 + msgbox gUnknown_8188DF1 + release + end + +Route24_EventScript_168660:: @ 8168660 + lockall + setvar VAR_0x4001, 0 + goto EventScript_168678 + end + +Route24_EventScript_16866C:: @ 816866C + lockall + setvar VAR_0x4001, 1 + goto EventScript_168678 + end + +EventScript_168678:: @ 8168678 + textcolor 0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_1686FD + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_168708 + applymovement 255, Movement_1A75EB + waitmovement 0 + msgbox gUnknown_8188C3C + checkitemspace ITEM_NUGGET, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_168713 + call EventScript_1686B9 + releaseall + end + +EventScript_1686B9:: @ 81686B9 + additem ITEM_NUGGET, 1 + giveitemfanfaremsg gUnknown_8188C93, ITEM_NUGGET + message Text_188CDB + waitmessage + playbgm BGM_FRLG_SUSPICIOUS_EYE, 0 + waitbuttonpress + setvar VAR_LAST_TALKED, 1 + trainerbattle 3, 356, 0, Text_188DDC + msgbox gUnknown_8188DF1 + setvar VAR_0x406B, 1 + return + +EventScript_1686FD:: @ 81686FD + applymovement 1, Movement_16873E + waitmovement 0 + return + +EventScript_168708:: @ 8168708 + applymovement 1, Movement_1A75E7 + waitmovement 0 + return + +EventScript_168713:: @ 8168713 + msgbox gUnknown_8188CC2 + closemessage + applymovement 255, Movement_168743 + waitmovement 0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_168733 + release + end + +EventScript_168733:: @ 8168733 + applymovement 1, Movement_168740 + waitmovement 0 + return + +Movement_16873E:: @ 816873E + step_12 + step_end + +Movement_168740:: @ 8168740 + step_13 + step_2f + step_end + +Movement_168743:: @ 8168743 + step_10 + step_end diff --git a/data/maps/Route24/text.inc b/data/maps/Route24/text.inc new file mode 100644 index 000000000..04ef64ea5 --- /dev/null +++ b/data/maps/Route24/text.inc @@ -0,0 +1,35 @@ +gUnknown_8188C3C:: @ 8188C3C + .string "Congratulations! You beat our\n" + .string "five contest TRAINERS!\p" + .string "You just earned a fabulous prize!$" + +gUnknown_8188C93:: @ 8188C93 + .string "{PLAYER} received a NUGGET\n" + .string "from the mystery TRAINER!$" + +gUnknown_8188CC2:: @ 8188CC2 + .string "You don't have any room!$" + +Text_188CDB:: @ 8188CDB + .string "By the way, how would you like to\n" + .string "join TEAM ROCKET?\p" + .string "We're a group of professional\n" + .string "criminals specializing in POKéMON!\p" + .string "Want to join?\p" + .string "Are you sure?\p" + .string "Come on, join us!\p" + .string "I'm telling you to join!\p" + .string "…Okay, you need convincing!\p" + .string "I'll make you an offer you can't\n" + .string "refuse!$" + +Text_188DDC:: @ 8188DDC + .string "Arrgh!\n" + .string "You are good!$" + +gUnknown_8188DF1:: @ 8188DF1 + .string "With your ability, you'd become\n" + .string "a top leader in TEAM ROCKET.\p" + .string "Come on, think of the opportunity!\n" + .string "Don't let this chance go to waste.$" + diff --git a/data/maps/Route25/map.json b/data/maps/Route25/map.json new file mode 100644 index 000000000..de4155fe6 --- /dev/null +++ b/data/maps/Route25/map.json @@ -0,0 +1,247 @@ +{ + "id": "MAP_ROUTE25", + "name": "Route25", + "layout": "LAYOUT_ROUTE25", + "music": "BGM_FRLG_ROUTE_24", + "region_map_section": "MAPSEC_ROUTE_25", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE24", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "56", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route25_EventScript_1A98A1", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 18, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route25_EventScript_1A976B", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 17, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route25_EventScript_1A991D", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 22, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route25_EventScript_1A97A9", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 22, + "y": 8, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route25_EventScript_1A9825", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 27, + "y": 9, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route25_EventScript_1A98DF", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 28, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route25_EventScript_1A995B", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 36, + "y": 4, + "elevation": 3, + "movement_type": "26", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route25_EventScript_1A97E7", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 42, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route25_EventScript_1A9863", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 26, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route25_EventScript_1BE651", + "flag": "355" + }, + { + "graphics_id": "95", + "x": 30, + "y": 3, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route25_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "29", + "x": 49, + "y": 10, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route25_EventScript_1ACE4F", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 49, + "y": 11, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route25_EventScript_16874F", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 51, + "y": 4, + "elevation": 0, + "dest_map": "MAP_ROUTE25_SEA_COTTAGE", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 48, + "y": 4, + "elevation": 0, + "script": "Route25_EventScript_168746" + }, + { + "type": "hidden_item", + "x": 14, + "y": 2, + "elevation": 3, + "item": "ITEM_ELIXIR", + "flag": "4", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 58, + "y": 6, + "elevation": 3, + "item": "ITEM_ETHER", + "flag": "5", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 33, + "y": 8, + "elevation": 3, + "item": "ITEM_ORAN_BERRY", + "flag": "116", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 40, + "y": 3, + "elevation": 3, + "item": "ITEM_BLUK_BERRY", + "flag": "117", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route25/scripts.inc b/data/maps/Route25/scripts.inc new file mode 100644 index 000000000..81b2704d4 --- /dev/null +++ b/data/maps/Route25/scripts.inc @@ -0,0 +1,10 @@ +Route25_MapScripts:: @ 8168745 + .byte 0 + +Route25_EventScript_168746:: @ 8168746 + msgbox gUnknown_818954C, 3 + end + +Route25_EventScript_16874F:: @ 816874F + msgbox gUnknown_81895C2, 2 + end diff --git a/data/maps/Route25/text.inc b/data/maps/Route25/text.inc new file mode 100644 index 000000000..cdc124108 --- /dev/null +++ b/data/maps/Route25/text.inc @@ -0,0 +1,185 @@ +Text_188E74:: @ 8188E74 + .string "I saw your feat from the grass!$" + +Text_188E94:: @ 8188E94 + .string "I thought not!$" + +Text_188EA3:: @ 8188EA3 + .string "I hid because the people on the\n" + .string "bridge frightened me.$" + +Text_188ED9:: @ 8188ED9 + .string "Okay! I'm No. 5!\n" + .string "I'll stomp you!$" + +Text_188EFA:: @ 8188EFA + .string "Whoa!\n" + .string "Too much!$" + +Text_188F0A:: @ 8188F0A + .string "I did my best. I have no regrets!$" + +Text_188F2C:: @ 8188F2C + .string "I'm No. 4!\n" + .string "Getting tired?$" + +Text_188F46:: @ 8188F46 + .string "I lost, too!$" + +Text_188F53:: @ 8188F53 + .string "I did my best, so I've no regrets!$" + +Text_188F76:: @ 8188F76 + .string "Here's No. 3!\n" + .string "I won't be easy!$" + +Text_188F95:: @ 8188F95 + .string "Ow!\n" + .string "Stomped flat!$" + +Text_188FA7:: @ 8188FA7 + .string "I did my best. I have no regrets!$" + +Text_188FC9:: @ 8188FC9 + .string "I'm second!\n" + .string "Now it's serious!$" + +Text_188FE7:: @ 8188FE7 + .string "How could I lose?$" + +Text_188FF9:: @ 8188FF9 + .string "I did my best. I have no regrets!$" + +Text_18901B:: @ 818901B + .string "People call this the NUGGET\n" + .string "BRIDGE!\p" + .string "Beat us five TRAINERS and win\n" + .string "a fabulous prize!\p" + .string "Think you got what it takes?$" + +Text_18908C:: @ 818908C + .string "Whoo!\n" + .string "Good stuff!$" + +Text_18909E:: @ 818909E + .string "I did my best. I have no regrets!$" + +Text_1890C0:: @ 81890C0 + .string "Local TRAINERS come here to\n" + .string "practice.$" + +Text_1890E6:: @ 81890E6 + .string "You're decent.$" + +Text_1890F5:: @ 81890F5 + .string "All POKéMON have weaknesses.\n" + .string "Even the strongest ones.\p" + .string "That's why it's best to raise\n" + .string "POKéMON of different types.$" + +Text_189165:: @ 8189165 + .string "Dad took me to a great party on\n" + .string "the S.S. ANNE at VERMILION CITY.$" + +Text_1891A6:: @ 81891A6 + .string "I'm not mad!$" + +Text_1891B3:: @ 81891B3 + .string "On the S.S. ANNE, I saw TRAINERS\n" + .string "from around the world.$" + +Text_1891EB:: @ 81891EB + .string "I'm a cool guy.\n" + .string "I've got a girlfriend!$" + +Text_189212:: @ 8189212 + .string "Aww, darn…$" + +Text_18921D:: @ 818921D + .string "Oh, well.\n" + .string "My girlfriend will cheer me up.$" + +Text_189247:: @ 8189247 + .string "Hi!\n" + .string "My boyfriend is cool!$" + +Text_189261:: @ 8189261 + .string "My conditioning isn't the best…$" + +Text_189281:: @ 8189281 + .string "I wish my boyfriend was as good\n" + .string "as you.$" + +Text_1892A9:: @ 81892A9 + .string "I had this feeling…\n" + .string "I knew I had to battle you!$" + +Text_1892D9:: @ 81892D9 + .string "I knew I'd lose, too!$" + +Text_1892EF:: @ 81892EF + .string "If your POKéMON gets confused,\n" + .string "switch it out.\p" + .string "That's a good tactic.$" + +Text_189333:: @ 8189333 + .string "My friend has many cute POKéMON.\n" + .string "I'm so jealous!$" + +Text_189364:: @ 8189364 + .string "I'm not so jealous!$" + +Text_189378:: @ 8189378 + .string "You came from MT. MOON?\n" + .string "May I have a CLEFAIRY?$" + +Text_1893A7:: @ 81893A7 + .string "I just got down from MT. MOON,\n" + .string "but I've still got gas in the tank!$" + +Text_1893EA:: @ 81893EA + .string "You worked hard!$" + +Text_1893FB:: @ 81893FB + .string "Drat!\n" + .string "A ZUBAT bit me back in that cave.$" + +Text_189423:: @ 8189423 + .string "I'm off to see a POKéMANIAC's\n" + .string "collection at the cape.$" + +Text_189459:: @ 8189459 + .string "You done got me, and real good,\n" + .string "too!$" + +Text_18947E:: @ 818947E + .string "The POKéMANIAC sure lives up to\n" + .string "his name.\p" + .string "His collection includes many rare\n" + .string "species of POKéMON.$" + +Text_1894DE:: @ 81894DE + .string "You're going to see BILL?\n" + .string "First, we battle!$" + +Text_18950A:: @ 818950A + .string "You're something.$" + +Text_18951C:: @ 818951C + .string "The trail below is a shortcut to\n" + .string "CERULEAN CITY.$" + +gUnknown_818954C:: @ 818954C + .string "SEA COTTAGE\n" + .string "BILL lives here!$" + +Text_189569:: @ 8189569 + .string "This cape is a famous date spot.\p" + .string "MISTY, the GYM LEADER, has high\n" + .string "hopes about this place.$" + +gUnknown_81895C2:: @ 81895C2 + .string "Hello, are you here alone?\p" + .string "If you're out at CERULEAN's cape…\n" + .string "Well, it should be as a couple.$" + diff --git a/data/maps/Route25_SeaCottage/map.json b/data/maps/Route25_SeaCottage/map.json new file mode 100644 index 000000000..7777ee3da --- /dev/null +++ b/data/maps/Route25_SeaCottage/map.json @@ -0,0 +1,76 @@ +{ + "id": "MAP_ROUTE25_SEA_COTTAGE", + "name": "Route25_SeaCottage", + "layout": "LAYOUT_ROUTE25_SEA_COTTAGE", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_ROUTE_25", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "73", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route25_SeaCottage_EventScript_17054B", + "flag": "51" + }, + { + "graphics_id": "113", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route25_SeaCottage_EventScript_17054B", + "flag": "50" + } + ], + "warp_events": [ + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE25", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE25", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE25", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 4, + "y": 5, + "elevation": 0, + "script": "Route25_SeaCottage_EventScript_1706DD" + } + ] +} diff --git a/data/maps/Route25_SeaCottage/scripts.inc b/data/maps/Route25_SeaCottage/scripts.inc new file mode 100644 index 000000000..cbcdba4e9 --- /dev/null +++ b/data/maps/Route25_SeaCottage/scripts.inc @@ -0,0 +1,314 @@ +Route25_SeaCottage_MapScripts:: @ 8170523 + map_script 3, Route25_SeaCottage_MapScript1_170529 + .byte 0 + +Route25_SeaCottage_MapScript1_170529:: @ 8170529 + checkflag FLAG_0x233 + call_if 0, EventScript_17053C + checkflag FLAG_0x234 + call_if 1, EventScript_170547 + end + +EventScript_17053C:: @ 817053C + clearflag FLAG_0x032 + setobjectxyperm 1, 3, 3 + return + +EventScript_170547:: @ 8170547 + setflag FLAG_0x003 + return + +Route25_SeaCottage_EventScript_17054B:: @ 817054B + lock + faceplayer + checkflag FLAG_0x003 + goto_if_eq EventScript_1706C8 + checkflag FLAG_0x234 + goto_if_eq EventScript_170640 + checkflag FLAG_0x233 + goto_if_eq EventScript_17064A + checkplayergender + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_170580 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_17058E + end + +EventScript_170580:: @ 8170580 + msgbox gUnknown_819FDFA, MSGBOX_YESNO + goto EventScript_17059C + end + +EventScript_17058E:: @ 817058E + msgbox gUnknown_819FEE6, MSGBOX_YESNO + goto EventScript_17059C + end + +EventScript_17059C:: @ 817059C + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_170600 + msgbox gUnknown_819FFD3 + closemessage + delay 10 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_17062A + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_170635 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_170635 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_170635 + opendoor 10, 3 + waitdooranim + applymovement 2, Movement_1706DB + waitmovement 0 + removeobject 2 + playse SE_EXPMAX + closedoor 10, 3 + waitdooranim + setflag FLAG_0x002 + release + end + +EventScript_170600:: @ 8170600 + checkplayergender + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_170618 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_170621 + return + +EventScript_170618:: @ 8170618 + msgbox gUnknown_81A0035 + return + +EventScript_170621:: @ 8170621 + msgbox gUnknown_81A00B6 + return + +EventScript_17062A:: @ 817062A + applymovement 2, Movement_1706D5 + waitmovement 0 + return + +EventScript_170635:: @ 8170635 + applymovement 2, Movement_1706D2 + waitmovement 0 + return + +EventScript_170640:: @ 8170640 + msgbox gUnknown_81A02CF + release + end + +EventScript_17064A:: @ 817064A + setvar VAR_0x8004, 13 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + checkplayergender + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_1706AC + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_1706B5 + checkitemspace ITEM_SS_TICKET, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1706BE + additem ITEM_SS_TICKET, 1 + giveitemfanfaremsg gUnknown_81A028E, ITEM_SS_TICKET, 1, BGM_FRLG_ME_KEYITEM + setflag FLAG_0x235 + setflag FLAG_0x031 + setflag FLAG_0x234 + setflag FLAG_SYS_NOT_SOMEONES_PC + goto EventScript_170640 + end + +EventScript_1706AC:: @ 81706AC + msgbox gUnknown_81A013B + return + +EventScript_1706B5:: @ 81706B5 + msgbox gUnknown_81A01E4 + return + +EventScript_1706BE:: @ 81706BE + msgbox gUnknown_81A02B4 + release + end + +EventScript_1706C8:: @ 81706C8 + msgbox gUnknown_81A03AB + release + end + +Movement_1706D2:: @ 81706D2 + step_11 + step_11 + step_end + +Movement_1706D5:: @ 81706D5 + step_13 + step_11 + step_11 + step_12 + step_2e + step_end + +Movement_1706DB:: @ 81706DB + step_11 + step_end + +Route25_SeaCottage_EventScript_1706DD:: @ 81706DD + lockall + checkflag FLAG_0x003 + goto_if_eq EventScript_1707CA + checkflag FLAG_0x002 + goto_if_eq EventScript_1706FA + msgbox gUnknown_81A0402 + releaseall + end + +EventScript_1706FA:: @ 81706FA + fadeoutbgm 0 + msgbox gUnknown_81A042D + closemessage + clearflag FLAG_0x002 + setflag FLAG_0x233 + special SpawnScriptFieldObject + applymovement 127, Movement_1707BE + waitmovement 0 + delay 35 + playse SE_PIN + waitse + setvar VAR_0x8004, 0 + special sub_809C4A8 + delay 10 + call EventScript_1707B6 + call EventScript_1707B6 + call EventScript_1707B6 + call EventScript_1707B6 + call EventScript_1707B6 + call EventScript_1707B6 + call EventScript_1707B6 + setvar VAR_0x8004, 1 + special sub_809C4A8 + playse SE_FU_ZUZUZU + special sub_809C5FC + waitse + call EventScript_1707B6 + call EventScript_1707B6 + call EventScript_1707B6 + call EventScript_1707B6 + call EventScript_1707B6 + opendoor 3, 3 + waitdooranim + fadeinbgm 0 + addobject 1 + clearflag FLAG_0x033 + delay 50 + playfanfare MUS_FANFA1 + applymovement 1, Movement_170888 + waitmovement 0 + waitfanfare + applymovement 127, Movement_1707C3 + waitmovement 0 + playse SE_EXPMAX + closedoor 3, 3 + waitdooranim + applymovement 1, Movement_170881 + waitmovement 0 + special RemoveScriptFieldObject + releaseall + end + +EventScript_1707B6:: @ 81707B6 + playse SE_BOWA + waitse + delay 20 + return + +Movement_1707BE:: @ 81707BE + step_11 + step_11 + step_13 + step_13 + step_end + +Movement_1707C3:: @ 81707C3 + step_1c + step_1c + step_10 + step_10 + step_12 + step_12 + step_end + +EventScript_1707CA:: @ 81707CA + msgbox gUnknown_81A045B + goto EventScript_1707D8 + end + +EventScript_1707D8:: @ 81707D8 + message Text_1A0479 + waitmessage + multichoice 0, 0, 1, 0 + switch VAR_RESULT + case 0, EventScript_17082B + case 1, EventScript_170840 + case 2, EventScript_170855 + case 3, EventScript_17086A + case 4, EventScript_17087F + case 127, EventScript_17087F + end + +EventScript_17082B:: @ 817082B + drawmonpic SPECIES_EEVEE, 10, 3 + waitbuttonpress + erasemonpic + setvar VAR_0x8004, SPECIES_EEVEE + special sub_80CBDCC + goto EventScript_1707D8 + end + +EventScript_170840:: @ 8170840 + drawmonpic SPECIES_FLAREON, 10, 3 + waitbuttonpress + erasemonpic + setvar VAR_0x8004, SPECIES_FLAREON + special sub_80CBDCC + goto EventScript_1707D8 + end + +EventScript_170855:: @ 8170855 + drawmonpic SPECIES_JOLTEON, 10, 3 + waitbuttonpress + erasemonpic + setvar VAR_0x8004, SPECIES_JOLTEON + special sub_80CBDCC + goto EventScript_1707D8 + end + +EventScript_17086A:: @ 817086A + drawmonpic SPECIES_VAPOREON, 10, 3 + waitbuttonpress + erasemonpic + setvar VAR_0x8004, SPECIES_VAPOREON + special sub_80CBDCC + goto EventScript_1707D8 + end + +EventScript_17087F:: @ 817087F + releaseall + end + +Movement_170881:: @ 8170881 + step_13 + step_13 + step_13 + step_13 + step_10 + step_10 + step_end + +Movement_170888:: @ 8170888 + step_10 + step_end diff --git a/data/maps/Route25_SeaCottage/text.inc b/data/maps/Route25_SeaCottage/text.inc new file mode 100644 index 000000000..6ecacdd89 --- /dev/null +++ b/data/maps/Route25_SeaCottage/text.inc @@ -0,0 +1,108 @@ +gUnknown_819FDFA:: @ 819FDFA + .string "Hiya! I'm a POKéMON…\n" + .string "…No I'm not!\p" + .string "Call me BILL!\n" + .string "I'm a true-blue POKéMANIAC!\p" + .string "Hey!\n" + .string "What's with that skeptical look?\p" + .string "I'm not joshing you, pal.\p" + .string "I screwed up an experiment and got\n" + .string "combined with a POKéMON!\p" + .string "So, how about it?\n" + .string "Help me out here!$" + +gUnknown_819FEE6:: @ 819FEE6 + .string "Hiya! I'm a POKéMON…\n" + .string "…No I'm not!\p" + .string "Call me BILL!\n" + .string "I'm a true-blue POKéMANIAC!\p" + .string "Hey!\n" + .string "What's with that skeptical look?\p" + .string "I'm not joshing you, lady.\p" + .string "I screwed up an experiment and got\n" + .string "combined with a POKéMON!\p" + .string "So, how about it?\n" + .string "Help me out here!$" + +gUnknown_819FFD3:: @ 819FFD3 + .string "Wait till I get inside the\n" + .string "TELEPORTER.\p" + .string "When I do, go to my PC and run\n" + .string "the Cell Separation System.$" + +gUnknown_81A0035:: @ 81A0035 + .string "No!?\n" + .string "Now don't be so cold!\p" + .string "Come on, you gotta help a guy in\n" + .string "deep, deep trouble!\p" + .string "What do you say, chief?\n" + .string "Please?\l" + .string "Okay?\l" + .string "All right!$" + +gUnknown_81A00B6:: @ 81A00B6 + .string "No!?\n" + .string "Now don't be so cold!\p" + .string "Come on, you gotta help a guy in\n" + .string "deep, deep trouble!\p" + .string "What do you say, beautiful?\n" + .string "Please?\l" + .string "Okay?\l" + .string "All right!$" + +gUnknown_81A013B:: @ 81A013B + .string "BILL: Yeehah!\n" + .string "Thanks, bud! I owe you one!\p" + .string "So, did you come to see my\n" + .string "POKéMON collection?\p" + .string "You didn't?\n" + .string "That's a bummer.\p" + .string "I've got to thank you…\n" + .string "Oh, here, maybe this'll do.$" + +gUnknown_81A01E4:: @ 81A01E4 + .string "BILL: Yeehah!\n" + .string "Thanks, lady! I owe you one!\p" + .string "So, did you come to see my\n" + .string "POKéMON collection?\p" + .string "You didn't?\n" + .string "That's a bummer.\p" + .string "I've got to thank you…\n" + .string "Oh, here, maybe this'll do.$" + +gUnknown_81A028E:: @ 81A028E + .string "{PLAYER} received an S.S. TICKET\n" + .string "from BILL.$" + +gUnknown_81A02B4:: @ 81A02B4 + .string "You've got too much stuff!$" + +gUnknown_81A02CF:: @ 81A02CF + .string "That cruise ship S.S. ANNE is in\n" + .string "VERMILION CITY.\p" + .string "I hear there are lots of TRAINERS\n" + .string "on board, too.\p" + .string "They invited me to their party, but\n" + .string "I can't stand fancy do's.\p" + .string "Why don't you go instead of me?\n" + .string "Go on and have a good time.$" + +gUnknown_81A03AB:: @ 81A03AB + .string "BILL: Feel like checking out some\n" + .string "of my rare POKéMON on my PC?\p" + .string "Go on, check out my PC.$" + +gUnknown_81A0402:: @ 81A0402 + .string "TELEPORTER is displayed on the PC\n" + .string "monitor.$" + +gUnknown_81A042D:: @ 81A042D + .string "{PLAYER} initiated the TELEPORTER's\n" + .string "Cell Separator.$" + +gUnknown_81A045B:: @ 81A045B + .string "BILL's favorite POKéMON list!$" + +Text_1A0479:: @ 81A0479 + .string "Which POKéMON do you want to see?$" + diff --git a/data/maps/Route2_EastBuilding/map.json b/data/maps/Route2_EastBuilding/map.json new file mode 100644 index 000000000..cf6552f51 --- /dev/null +++ b/data/maps/Route2_EastBuilding/map.json @@ -0,0 +1,75 @@ +{ + "id": "MAP_ROUTE2_EAST_BUILDING", + "name": "Route2_EastBuilding", + "layout": "LAYOUT_ROUTE2_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_EastBuilding_EventScript_16F67F", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 10, + "y": 3, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_EastBuilding_EventScript_16F714", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 10, + "elevation": 0, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 5 + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 5 + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 5 + }, + { + "x": 7, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route2_EastBuilding/scripts.inc b/data/maps/Route2_EastBuilding/scripts.inc new file mode 100644 index 000000000..a1b2d0e7a --- /dev/null +++ b/data/maps/Route2_EastBuilding/scripts.inc @@ -0,0 +1,42 @@ +Route2_EastBuilding_MapScripts:: @ 816F67E + .byte 0 + +Route2_EastBuilding_EventScript_16F67F:: @ 816F67F + lock + faceplayer + call EventScript_16F70B + checkflag FLAG_0x23B + goto_if_eq EventScript_16F701 + msgbox gUnknown_819D64F, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AD1 + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, Special_GetPokedexCount + getnumberstring 2, VAR_0x8006 + call EventScript_16F70B + compare_var_to_value VAR_0x8006, 10 + goto_if 0, EventScript_1A7ABD + msgbox gUnknown_819D74E + checkitemspace ITEM_HM05, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A7AC7 + additem ITEM_HM05, 1 + giveitemfanfaremsg gUnknown_819D7A1, ITEM_HM05 + setflag FLAG_0x23B + msgbox gUnknown_819D7C1 + release + end + +EventScript_16F701:: @ 816F701 + msgbox gUnknown_819D7C1 + release + end + +EventScript_16F70B:: @ 816F70B + getnumberstring 0, 10 + getitemname 1, ITEM_HM05 + return + +Route2_EastBuilding_EventScript_16F714:: @ 816F714 + msgbox gUnknown_819D81E, 2 + end diff --git a/data/maps/Route2_EastBuilding/text.inc b/data/maps/Route2_EastBuilding/text.inc new file mode 100644 index 000000000..228cf3c4d --- /dev/null +++ b/data/maps/Route2_EastBuilding/text.inc @@ -0,0 +1,32 @@ +gUnknown_819D64F:: @ 819D64F + .string "Hi! Remember me?\n" + .string "I'm one of PROF. OAK's AIDES.\p" + .string "If your POKéDEX has complete data\n" + .string "on ten species, I'm supposed to\l" + .string "give you a reward.\p" + .string "PROF. OAK entrusted me with\n" + .string "HM05 for you.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "ten kinds of POKéMON?$" + +gUnknown_819D74E:: @ 819D74E + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +gUnknown_819D7A1:: @ 819D7A1 + .string "{PLAYER} received HM05\n" + .string "from the AIDE.$" + +gUnknown_819D7C1:: @ 819D7C1 + .string "HM05 contains the hidden move\n" + .string "FLASH.\p" + .string "FLASH lights up even the darkest\n" + .string "of caves and dungeons.$" + +gUnknown_819D81E:: @ 819D81E + .string "Once a POKéMON learns FLASH, you\n" + .string "can get through ROCK TUNNEL.$" + diff --git a/data/maps/Route2_House/map.json b/data/maps/Route2_House/map.json new file mode 100644 index 000000000..78d88e7e5 --- /dev/null +++ b/data/maps/Route2_House/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_ROUTE2_HOUSE", + "name": "Route2_House", + "layout": "LAYOUT_HOUSE2", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_House_EventScript_16F5F9", + "flag": "0" + }, + { + "graphics_id": "51", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_House_EventScript_16F602", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 4 + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route2_House/scripts.inc b/data/maps/Route2_House/scripts.inc new file mode 100644 index 000000000..fd7ac6c05 --- /dev/null +++ b/data/maps/Route2_House/scripts.inc @@ -0,0 +1,44 @@ +Route2_House_MapScripts:: @ 816F5F8 + .byte 0 + +Route2_House_EventScript_16F5F9:: @ 816F5F9 + msgbox gUnknown_819D5E7, 2 + end + +Route2_House_EventScript_16F602:: @ 816F602 + lock + faceplayer + setvar VAR_0x8008, 0 + call EventScript_1A8CAD + checkflag FLAG_0x248 + goto_if_eq EventScript_16F674 + msgbox gUnknown_81A597B, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16F65C + call EventScript_1A8CBD + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_16F65C + call EventScript_1A8CC9 + compare_var_to_var VAR_RESULT, VAR_0x8009 + goto_if 5, EventScript_16F666 + call EventScript_1A8CD9 + msgbox gUnknown_81A59DA + setflag FLAG_0x248 + release + end + +EventScript_16F65C:: @ 816F65C + msgbox gUnknown_81A59B6 + release + end + +EventScript_16F666:: @ 816F666 + getspeciesname 0, VAR_0x8009 + msgbox gUnknown_81A59C6 + release + end + +EventScript_16F674:: @ 816F674 + msgbox gUnknown_81A59E7 + release + end diff --git a/data/maps/Route2_House/text.inc b/data/maps/Route2_House/text.inc new file mode 100644 index 000000000..5fde449d3 --- /dev/null +++ b/data/maps/Route2_House/text.inc @@ -0,0 +1,6 @@ +gUnknown_819D5E7:: @ 819D5E7 + .string "A fainted POKéMON just has no\n" + .string "energy left to battle.\p" + .string "It can still use moves like CUT\n" + .string "outside of battle.$" + diff --git a/data/maps/Route2_ViridianForest_NorthEntrance/map.json b/data/maps/Route2_ViridianForest_NorthEntrance/map.json new file mode 100644 index 000000000..06dfcb2ad --- /dev/null +++ b/data/maps/Route2_ViridianForest_NorthEntrance/map.json @@ -0,0 +1,88 @@ +{ + "id": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "name": "Route2_ViridianForest_NorthEntrance", + "layout": "LAYOUT_ROUTE2_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "18", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_ViridianForest_NorthEntrance_EventScript_16F71E", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_ViridianForest_NorthEntrance_EventScript_16F727", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_ViridianForest_NorthEntrance_EventScript_16F730", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_FOREST", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_FOREST", + "dest_warp_id": 2 + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_FOREST", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route2_ViridianForest_NorthEntrance/scripts.inc b/data/maps/Route2_ViridianForest_NorthEntrance/scripts.inc new file mode 100644 index 000000000..6ed3f355a --- /dev/null +++ b/data/maps/Route2_ViridianForest_NorthEntrance/scripts.inc @@ -0,0 +1,14 @@ +Route2_ViridianForest_NorthEntrance_MapScripts:: @ 816F71D + .byte 0 + +Route2_ViridianForest_NorthEntrance_EventScript_16F71E:: @ 816F71E + msgbox gUnknown_819D85C, 2 + end + +Route2_ViridianForest_NorthEntrance_EventScript_16F727:: @ 816F727 + msgbox gUnknown_819D8D0, 2 + end + +Route2_ViridianForest_NorthEntrance_EventScript_16F730:: @ 816F730 + msgbox gUnknown_819D93B, 2 + end diff --git a/data/maps/Route2_ViridianForest_NorthEntrance/text.inc b/data/maps/Route2_ViridianForest_NorthEntrance/text.inc new file mode 100644 index 000000000..630d39fc9 --- /dev/null +++ b/data/maps/Route2_ViridianForest_NorthEntrance/text.inc @@ -0,0 +1,20 @@ +gUnknown_819D85C:: @ 819D85C + .string "Many POKéMON live only in forests \n" + .string "and caves.\p" + .string "You need to be persistent and look\n" + .string "everywhere to get different kinds.$" + +gUnknown_819D8D0:: @ 819D8D0 + .string "Have you noticed the skinny trees\n" + .string "on the roadside?\p" + .string "They can be cut down by a special\n" + .string "POKéMON move, I hear.$" + +gUnknown_819D93B:: @ 819D93B + .string "Do you know the evolution-cancel\n" + .string "technique?\p" + .string "When a POKéMON is evolving, you\n" + .string "can stop the process.\p" + .string "It's a technique for raising\n" + .string "POKéMON the way they are.$" + diff --git a/data/maps/Route2_ViridianForest_SouthEntrance/map.json b/data/maps/Route2_ViridianForest_SouthEntrance/map.json new file mode 100644 index 000000000..9fcf669d5 --- /dev/null +++ b/data/maps/Route2_ViridianForest_SouthEntrance/map.json @@ -0,0 +1,75 @@ +{ + "id": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "name": "Route2_ViridianForest_SouthEntrance", + "layout": "LAYOUT_ROUTE2_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "28", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_ViridianForest_SouthEntrance_EventScript_16F5E6", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route2_ViridianForest_SouthEntrance_EventScript_16F5EF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 2 + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 1, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_FOREST", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route2_ViridianForest_SouthEntrance/scripts.inc b/data/maps/Route2_ViridianForest_SouthEntrance/scripts.inc new file mode 100644 index 000000000..a8aba4941 --- /dev/null +++ b/data/maps/Route2_ViridianForest_SouthEntrance/scripts.inc @@ -0,0 +1,10 @@ +Route2_ViridianForest_SouthEntrance_MapScripts:: @ 816F5E5 + .byte 0 + +Route2_ViridianForest_SouthEntrance_EventScript_16F5E6:: @ 816F5E6 + msgbox gUnknown_819D52C, 2 + end + +Route2_ViridianForest_SouthEntrance_EventScript_16F5EF:: @ 816F5EF + msgbox gUnknown_819D58B, 2 + end diff --git a/data/maps/Route2_ViridianForest_SouthEntrance/text.inc b/data/maps/Route2_ViridianForest_SouthEntrance/text.inc new file mode 100644 index 000000000..c92538340 --- /dev/null +++ b/data/maps/Route2_ViridianForest_SouthEntrance/text.inc @@ -0,0 +1,10 @@ +gUnknown_819D52C:: @ 819D52C + .string "Are you going to VIRIDIAN FOREST?\n" + .string "It's a natural maze in there.\l" + .string "Be careful you don't get lost.$" + +gUnknown_819D58B:: @ 819D58B + .string "RATTATA may be small, but don't\n" + .string "underestimate its wicked bite.\p" + .string "Have you caught one already?$" + diff --git a/data/maps/Route3/map.json b/data/maps/Route3/map.json new file mode 100644 index 000000000..7dd795ed8 --- /dev/null +++ b/data/maps/Route3/map.json @@ -0,0 +1,165 @@ +{ + "id": "MAP_ROUTE3", + "name": "Route3", + "layout": "LAYOUT_ROUTE3", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_3", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE4", + "offset": 60, + "direction": "up" + }, + { + "map": "MAP_PEWTER_CITY", + "offset": -10, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "18", + "x": 70, + "y": 13, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route3_EventScript_167F78", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 40, + "y": 11, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route3_EventScript_1A957B", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 32, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route3_EventScript_1A94C1", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 30, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route3_EventScript_1A953D", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 25, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route3_EventScript_1A9483", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 29, + "y": 10, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route3_EventScript_1A9407", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 19, + "y": 9, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route3_EventScript_1A94FF", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 12, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route3_EventScript_1A9445", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 17, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route3_EventScript_1A93C9", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 72, + "y": 11, + "elevation": 0, + "script": "Route3_EventScript_167F81" + }, + { + "type": "hidden_item", + "x": 26, + "y": 9, + "elevation": 3, + "item": "ITEM_ORAN_BERRY", + "flag": "113", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route3/scripts.inc b/data/maps/Route3/scripts.inc new file mode 100644 index 000000000..7bf593794 --- /dev/null +++ b/data/maps/Route3/scripts.inc @@ -0,0 +1,10 @@ +Route3_MapScripts:: @ 8167F77 + .byte 0 + +Route3_EventScript_167F78:: @ 8167F78 + msgbox gUnknown_8183491, 2 + end + +Route3_EventScript_167F81:: @ 8167F81 + msgbox gUnknown_81838C0, 3 + end diff --git a/data/maps/Route3/text.inc b/data/maps/Route3/text.inc new file mode 100644 index 000000000..32aa96e19 --- /dev/null +++ b/data/maps/Route3/text.inc @@ -0,0 +1,104 @@ +gUnknown_8183491:: @ 8183491 + .string "Whew… I better take a rest…\n" + .string "Groan…\p" + .string "That tunnel from CERULEAN takes a\n" + .string "lot out of you!$" + +Text_1834E6:: @ 81834E6 + .string "Hey!\n" + .string "I saw you in VIRIDIAN FOREST!$" + +Text_183509:: @ 8183509 + .string "You beat me again!$" + +Text_18351C:: @ 818351C + .string "There are other kinds of POKéMON\n" + .string "than the ones you find in forests.$" + +Text_183560:: @ 8183560 + .string "Hi!\n" + .string "I like shorts!\p" + .string "They're delightfully comfy and\n" + .string "easy to wear!$" + +Text_1835A0:: @ 81835A0 + .string "I don't believe it!$" + +Text_1835B4:: @ 81835B4 + .string "Are you using a POKéMON CENTER's\n" + .string "PC for storing your POKéMON?\p" + .string "Each BOX can hold up to\n" + .string "30 POKéMON.$" + +Text_183616:: @ 8183616 + .string "Excuse me!\n" + .string "You looked at me, didn't you?$" + +Text_18363F:: @ 818363F + .string "You're mean!$" + +Text_18364C:: @ 818364C + .string "You shouldn't be staring if you\n" + .string "don't want to battle!$" + +Text_183682:: @ 8183682 + .string "Are you a TRAINER?\n" + .string "Let's get with it right away!$" + +Text_1836B3:: @ 81836B3 + .string "If I had new POKéMON, I would've\n" + .string "won!$" + +Text_1836D9:: @ 81836D9 + .string "If a POKéMON BOX on the PC gets\n" + .string "full, just switch to another BOX.$" + +Text_18371B:: @ 818371B + .string "That look you gave me…\n" + .string "It's so intriguing!$" + +Text_183746:: @ 8183746 + .string "Be nice!$" + +Text_18374F:: @ 818374F + .string "You can avoid battles by not\n" + .string "letting TRAINERS see you.$" + +Text_183786:: @ 8183786 + .string "Hey! You're not wearing shorts!\n" + .string "What's wrong with you?$" + +Text_1837BD:: @ 81837BD + .string "Lost!\n" + .string "Lost! Lost!$" + +Text_1837CF:: @ 81837CF + .string "I always wear shorts, even in\n" + .string "winter. That's my policy.$" + +Text_183807:: @ 8183807 + .string "I'll battle you with the POKéMON\n" + .string "I just caught.$" + +Text_183837:: @ 8183837 + .string "Done like dinner!$" + +Text_183849:: @ 8183849 + .string "Trained POKéMON are stronger than\n" + .string "the wild ones.$" + +Text_18387A:: @ 818387A + .string "Eek!\n" + .string "Did you touch me?$" + +Text_183891:: @ 8183891 + .string "That's it?$" + +Text_18389C:: @ 818389C + .string "ROUTE 4 is at the foot of\n" + .string "MT. MOON.$" + +gUnknown_81838C0:: @ 81838C0 + .string "ROUTE 3\n" + .string "MT. MOON AHEAD$" + diff --git a/data/maps/Route4/map.json b/data/maps/Route4/map.json new file mode 100644 index 000000000..2afb866f2 --- /dev/null +++ b/data/maps/Route4/map.json @@ -0,0 +1,186 @@ +{ + "id": "MAP_ROUTE4", + "name": "Route4", + "layout": "LAYOUT_ROUTE4", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_4", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE3", + "offset": -60, + "direction": "down" + }, + { + "map": "MAP_CERULEAN_CITY", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "23", + "x": 9, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_EventScript_167F8C", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 75, + "y": 3, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route4_EventScript_1A95B9", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 67, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_EventScript_1BE637", + "flag": "353" + }, + { + "graphics_id": "19", + "x": 15, + "y": 14, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_EventScript_1ACDEA", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 47, + "y": 3, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_EventScript_1C494E", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 50, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_EventScript_1C49B6", + "flag": "0" + }, + { + "graphics_id": "65321", + "x": 109, + "y": 3, + "elevation": 12, + "movement_type": "0", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 3, + "trainer_sight_or_berry_tree_id": 3, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 19, + "y": 5, + "elevation": 3, + "dest_map": "MAP_MT_MOON_1F", + "dest_warp_id": 3 + }, + { + "x": 32, + "y": 5, + "elevation": 0, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": 7 + }, + { + "x": 12, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ROUTE4_POKEMON_CENTER_1F", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 18, + "y": 7, + "elevation": 0, + "script": "Route4_EventScript_167F95" + }, + { + "type": "bg_event_type_0", + "x": 34, + "y": 7, + "elevation": 0, + "script": "Route4_EventScript_167F9E" + }, + { + "type": "hidden_item", + "x": 43, + "y": 2, + "elevation": 3, + "item": "POCKET_POKE_BALLS", + "flag": "50", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 5, + "y": 4, + "elevation": 3, + "item": "ITEM_PERSIM_BERRY", + "flag": "114", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 67, + "y": 17, + "elevation": 3, + "item": "ITEM_RAZZ_BERRY", + "flag": "156", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route4/scripts.inc b/data/maps/Route4/scripts.inc new file mode 100644 index 000000000..230c13d3b --- /dev/null +++ b/data/maps/Route4/scripts.inc @@ -0,0 +1,17 @@ +Route4_MapScripts:: @ 8167F8A + .byte 0 + +Route4_EventScript_167F8B:: @ 8167F8B + end + +Route4_EventScript_167F8C:: @ 8167F8C + msgbox gUnknown_81838D7, 2 + end + +Route4_EventScript_167F95:: @ 8167F95 + msgbox gUnknown_818399B, 3 + end + +Route4_EventScript_167F9E:: @ 8167F9E + msgbox gUnknown_81839B4, 3 + end diff --git a/data/maps/Route4/text.inc b/data/maps/Route4/text.inc new file mode 100644 index 000000000..49648cde0 --- /dev/null +++ b/data/maps/Route4/text.inc @@ -0,0 +1,24 @@ +gUnknown_81838D7:: @ 81838D7 + .string "Ouch! I tripped over a rocky\n" + .string "POKéMON, GEODUDE!$" + +Text_183906:: @ 8183906 + .string "I came to MT. MOON in search of\n" + .string "mushroom POKéMON.$" + +Text_183938:: @ 8183938 + .string "After all I did to catch them!$" + +Text_183957:: @ 8183957 + .string "There might not be any more\n" + .string "mushrooms here.\p" + .string "I think I got them all.$" + +gUnknown_818399B:: @ 818399B + .string "MT. MOON\n" + .string "Tunnel Entrance$" + +gUnknown_81839B4:: @ 81839B4 + .string "ROUTE 4\n" + .string "MT. MOON - CERULEAN CITY$" + diff --git a/data/maps/Route4_PokemonCenter_1F/map.json b/data/maps/Route4_PokemonCenter_1F/map.json new file mode 100644 index 000000000..066ee63c6 --- /dev/null +++ b/data/maps/Route4_PokemonCenter_1F/map.json @@ -0,0 +1,127 @@ +{ + "id": "MAP_ROUTE4_POKEMON_CENTER_1F", + "name": "Route4_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_ROUTE_4", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_1F_EventScript_16F8BB", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 1, + "y": 3, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_1F_EventScript_16F75F", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_1F_EventScript_16F754", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_1F_EventScript_16F74B", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 14, + "y": 4, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_1F_EventScript_16F8C4", + "flag": "0" + }, + { + "graphics_id": "105", + "x": 12, + "y": 6, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_1F_EventScript_16F8CD", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": 2 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": 2 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ROUTE4_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route4_PokemonCenter_1F/scripts.inc b/data/maps/Route4_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..6788cc0c8 --- /dev/null +++ b/data/maps/Route4_PokemonCenter_1F/scripts.inc @@ -0,0 +1,169 @@ +Route4_PokemonCenter_1F_MapScripts:: @ 816F739 + map_script 3, Route4_PokemonCenter_1F_MapScript1_16F744 + map_script 5, Route4_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +Route4_PokemonCenter_1F_MapScript1_16F744:: @ 816F744 + setworldmapflag FLAG_WORLD_MAP_ROUTE4_POKEMON_CENTER_1F + setrespawn SPAWN_ROUTE4 + end + +Route4_PokemonCenter_1F_EventScript_16F74B:: @ 816F74B + msgbox gUnknown_819D9D4, 2 + end + +Route4_PokemonCenter_1F_EventScript_16F754:: @ 816F754 + lock + msgbox gUnknown_819DA3A + release + end + +Route4_PokemonCenter_1F_EventScript_16F75F:: @ 816F75F + lock + faceplayer + checkflag FLAG_0x249 + goto_if_eq EventScript_16F8A2 + showmoneybox 0, 0, 0 + checkplayergender + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16F786 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F794 + end + +EventScript_16F786:: @ 816F786 + msgbox gUnknown_819DA9A, MSGBOX_YESNO + goto EventScript_16F7A2 + end + +EventScript_16F794:: @ 816F794 + msgbox gUnknown_819DB34, MSGBOX_YESNO + goto EventScript_16F7A2 + end + +EventScript_16F7A2:: @ 816F7A2 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16F888 + checkmoney 500, 0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16F895 + textcolor 3 + setvar VAR_0x4001, 129 + givemon SPECIES_MAGIKARP, 5, ITEM_NONE, 0, 0, 0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16F7F6 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F822 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_16F8AC + end + +EventScript_16F7F6:: @ 816F7F6 + call EventScript_16F86F + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16F861 + call EventScript_1A8C27 + fadescreen 1 + hidemoneybox + .byte 0 + .byte 0 + special ChangePokemonNickname + waitstate + goto EventScript_16F86A + end + +EventScript_16F822:: @ 816F822 + call EventScript_16F86F + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16F84B + fadescreen 1 + hidemoneybox + .byte 0 + .byte 0 + special ChangeBoxPokemonNickname + waitstate + lock + faceplayer + goto EventScript_16F856 + end + +EventScript_16F84B:: @ 816F84B + call EventScript_1A8C3C + goto EventScript_16F861 + end + +EventScript_16F856:: @ 816F856 + call EventScript_1A8C3C + goto EventScript_16F86A + end + +EventScript_16F861:: @ 816F861 + hidemoneybox + .byte 0 + .byte 0 + goto EventScript_16F86A + end + +EventScript_16F86A:: @ 816F86A + setflag FLAG_0x249 + release + end + +EventScript_16F86F:: @ 816F86F + takemoney 500, 0 + updatemoneybox 0, 0, 0 + playfanfare MUS_FANFA1 + message Text_19DBD3 + waitmessage + waitfanfare + getspeciesname 0, SPECIES_MAGIKARP + return + +EventScript_16F888:: @ 816F888 + msgbox gUnknown_819DC07 + hidemoneybox + .byte 0 + .byte 0 + release + end + +EventScript_16F895:: @ 816F895 + msgbox gUnknown_819DC78 + hidemoneybox + .byte 0 + .byte 0 + release + end + +EventScript_16F8A2:: @ 816F8A2 + msgbox gUnknown_819DC9A + release + end + +EventScript_16F8AC:: @ 816F8AC + textcolor 0 + msgbox gUnknown_819DC3E + hidemoneybox + .byte 0 + .byte 0 + release + end + +Route4_PokemonCenter_1F_EventScript_16F8BB:: @ 816F8BB + lock + faceplayer + call EventScript_1A6578 + release + end + +Route4_PokemonCenter_1F_EventScript_16F8C4:: @ 816F8C4 + msgbox gUnknown_819DCDB, 2 + end + +Route4_PokemonCenter_1F_EventScript_16F8CD:: @ 816F8CD + lock + msgbox gUnknown_819DD54 + release + end diff --git a/data/maps/Route4_PokemonCenter_1F/text.inc b/data/maps/Route4_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..f357b7f76 --- /dev/null +++ b/data/maps/Route4_PokemonCenter_1F/text.inc @@ -0,0 +1,54 @@ +gUnknown_819D9D4:: @ 819D9D4 + .string "Okay, set six POKé BALLS in my\n" + .string "belt…\p" + .string "Yeah, that'll do it. At most, you\n" + .string "can have six POKéMON with you.$" + +gUnknown_819DA3A:: @ 819DA3A + .string "TEAM ROCKET attacks CERULEAN\n" + .string "citizens…\p" + .string "Not a day goes by without TEAM\n" + .string "ROCKET being in the news.$" + +gUnknown_819DA9A:: @ 819DA9A + .string "MAN: Hello there, laddie!\n" + .string "Have I got a deal just for you!\p" + .string "I'll let you have a secret POKéMON\n" + .string "- a MAGIKARP - for just ¥500!\p" + .string "So, you'll buy it, am I right?$" + +gUnknown_819DB34:: @ 819DB34 + .string "MAN: Hello there, sweetie pie!\n" + .string "Have I got a deal just for you!\p" + .string "I'll let you have a secret POKéMON\n" + .string "- a MAGIKARP - for just ¥500!\p" + .string "So, you'll buy it, am I right?$" + +Text_19DBD3:: @ 819DBD3 + .string "{PLAYER} paid an outrageous ¥500\n" + .string "and bought the MAGIKARP…$" + +gUnknown_819DC07:: @ 819DC07 + .string "No? You say no? I'm only doing this\n" + .string "as a favor to you!$" + +gUnknown_819DC3E:: @ 819DC3E + .string "There's no more room for any more\n" + .string "POKéMON, it looks like.$" + +gUnknown_819DC78:: @ 819DC78 + .string "You'll need more money than that!$" + +gUnknown_819DC9A:: @ 819DC9A + .string "MAN: Well, I don't give refunds.\n" + .string "You knew what you were getting!$" + +gUnknown_819DCDB:: @ 819DCDB + .string "Sometimes, you'll have too many\n" + .string "POKéMON with you to add any more.\p" + .string "In that case, you should just\n" + .string "store some using any PC.$" + +gUnknown_819DD54:: @ 819DD54 + .string "It's a newspaper.$" + diff --git a/data/maps/Route4_PokemonCenter_2F/map.json b/data/maps/Route4_PokemonCenter_2F/map.json new file mode 100644 index 000000000..0852a5537 --- /dev/null +++ b/data/maps/Route4_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_ROUTE4_POKEMON_CENTER_2F", + "name": "Route4_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_ROUTE_4", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route4_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ROUTE4_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route4_PokemonCenter_2F/scripts.inc b/data/maps/Route4_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..bff6832da --- /dev/null +++ b/data/maps/Route4_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +Route4_PokemonCenter_2F_MapScripts:: @ 816F8D8 + map_script 2, Route4_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, Route4_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, Route4_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, Route4_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +Route4_PokemonCenter_2F_EventScript_16F8ED:: @ 816F8ED + call EventScript_1BB4A3 + end + +EventScript_16F8F3:: @ 816F8F3 + call EventScript_1BB6AB + end + +EventScript_16F8F9:: @ 816F8F9 + call EventScript_1BB7DE + end diff --git a/data/maps/Route5/map.json b/data/maps/Route5/map.json new file mode 100644 index 000000000..0c79d7687 --- /dev/null +++ b/data/maps/Route5/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_ROUTE5", + "name": "Route5", + "layout": "LAYOUT_ROUTE5", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_5", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_CERULEAN_CITY", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_SAFFRON_CITY", + "offset": 0, + "direction": "down" + } + ], + "object_events": [], + "warp_events": [ + { + "x": 31, + "y": 31, + "elevation": 0, + "dest_map": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 23, + "y": 25, + "elevation": 0, + "dest_map": "MAP_ROUTE5_POKEMON_DAY_CARE", + "dest_warp_id": 1 + }, + { + "x": 24, + "y": 32, + "elevation": 3, + "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 25, + "y": 32, + "elevation": 3, + "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 32, + "y": 32, + "elevation": 0, + "script": "Route5_EventScript_167FA8" + } + ] +} diff --git a/data/maps/Route5/scripts.inc b/data/maps/Route5/scripts.inc new file mode 100644 index 000000000..8356751b7 --- /dev/null +++ b/data/maps/Route5/scripts.inc @@ -0,0 +1,6 @@ +Route5_MapScripts:: @ 8167FA7 + .byte 0 + +Route5_EventScript_167FA8:: @ 8167FA8 + msgbox gUnknown_8183DD4, 3 + end diff --git a/data/maps/Route5/text.inc b/data/maps/Route5/text.inc new file mode 100644 index 000000000..066d8cfa6 --- /dev/null +++ b/data/maps/Route5/text.inc @@ -0,0 +1,60 @@ +Text_1839D5:: @ 81839D5 + .string "A punch of roaring ferocity!\p" + .string "Packed with destructive power!\p" + .string "When the chips are down,\n" + .string "MEGA PUNCH is the ultimate attack!\l" + .string "You agree, yes?\p" + .string "Now!\n" + .string "Let me teach it to your POKéMON!$" + +Text_183A83:: @ 8183A83 + .string "You'll be back when you understand\n" + .string "the worth of MEGA PUNCH.$" + +Text_183ABF:: @ 8183ABF + .string "Fine!\n" + .string "Which POKéMON will learn it?$" + +Text_183AE2:: @ 8183AE2 + .string "Now, we are comrades in the way of\n" + .string "punching!\p" + .string "You should go before you're seen\n" + .string "by the misguided fool who trains\l" + .string "only his silly kicking over there.$" + +Text_183B74:: @ 8183B74 + .string "A kick of brutal ferocity!\p" + .string "Packed with destructive power!\p" + .string "When you get right down to it,\n" + .string "MEGA KICK is the ultimate attack!\l" + .string "Don't you agree?\p" + .string "Okay!\n" + .string "I'll teach it to your POKéMON!$" + +Text_183C25:: @ 8183C25 + .string "You'll come crawling back when you\n" + .string "realize the value of MEGA KICK.$" + +Text_183C68:: @ 8183C68 + .string "All right!\n" + .string "Which POKéMON wants to learn it?$" + +Text_183C94:: @ 8183C94 + .string "Now, we are soul mates in the way\n" + .string "of kicking!\p" + .string "You should run before you're seen\n" + .string "by the deluded nitwit who trains\l" + .string "only simple punching over there.$" + +Text_183D26:: @ 8183D26 + .string "Oh, wow, that's the BOULDERBADGE!\n" + .string "You got it from BROCK, didn't you?\p" + .string "BROCK is cool. He's not just tough.\n" + .string "People like and respect him.\p" + .string "I want to become a GYM LEADER\n" + .string "like him.$" + +gUnknown_8183DD4:: @ 8183DD4 + .string "UNDERGROUND PATH\n" + .string "CERULEAN CITY - VERMILION CITY$" + diff --git a/data/maps/Route5_PokemonDayCare/map.json b/data/maps/Route5_PokemonDayCare/map.json new file mode 100644 index 000000000..18409b100 --- /dev/null +++ b/data/maps/Route5_PokemonDayCare/map.json @@ -0,0 +1,55 @@ +{ + "id": "MAP_ROUTE5_POKEMON_DAY_CARE", + "name": "Route5_PokemonDayCare", + "layout": "LAYOUT_ROUTE5_POKEMON_DAY_CARE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_5", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route5_PokemonDayCare_EventScript_1BF398", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route5_PokemonDayCare/scripts.inc b/data/maps/Route5_PokemonDayCare/scripts.inc new file mode 100644 index 000000000..ebe6a8386 --- /dev/null +++ b/data/maps/Route5_PokemonDayCare/scripts.inc @@ -0,0 +1,2 @@ +Route5_PokemonDayCare_MapScripts:: @ 816F8FF + .byte 0 diff --git a/data/maps/Route5_SouthEntrance/map.json b/data/maps/Route5_SouthEntrance/map.json new file mode 100644 index 000000000..fe0565acb --- /dev/null +++ b/data/maps/Route5_SouthEntrance/map.json @@ -0,0 +1,90 @@ +{ + "id": "MAP_ROUTE5_SOUTH_ENTRANCE", + "name": "Route5_SouthEntrance", + "layout": "LAYOUT_SAFFRON_CITY_NORTH_SOUTH_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_5", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route5_SouthEntrance_EventScript_16F901", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 9 + }, + { + "x": 4, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": 2 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 9 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": 3 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 3, + "y": 5, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route5_SouthEntrance_EventScript_16F90A" + }, + { + "type": "trigger", + "x": 4, + "y": 5, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route5_SouthEntrance_EventScript_16F916" + }, + { + "type": "trigger", + "x": 5, + "y": 5, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route5_SouthEntrance_EventScript_16F922" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route5_SouthEntrance/scripts.inc b/data/maps/Route5_SouthEntrance/scripts.inc new file mode 100644 index 000000000..1ac21c6b1 --- /dev/null +++ b/data/maps/Route5_SouthEntrance/scripts.inc @@ -0,0 +1,88 @@ +Route5_SouthEntrance_MapScripts:: @ 816F900 + .byte 0 + +Route5_SouthEntrance_EventScript_16F901:: @ 816F901 + msgbox gUnknown_819E16D, 2 + end + +Route5_SouthEntrance_EventScript_16F90A:: @ 816F90A + lockall + setvar VAR_0x4001, 0 + goto EventScript_16F92E + end + +Route5_SouthEntrance_EventScript_16F916:: @ 816F916 + lockall + setvar VAR_0x4001, 1 + goto EventScript_16F92E + end + +Route5_SouthEntrance_EventScript_16F922:: @ 816F922 + lockall + setvar VAR_0x4001, 2 + goto EventScript_16F92E + end + +EventScript_16F92E:: @ 816F92E + textcolor 0 + applymovement 255, Movement_1A75E7 + waitmovement 0 + checkflag FLAG_0x2A6 + goto_if_eq EventScript_16F958 + msgbox gUnknown_819E04B + closemessage + applymovement 255, Movement_16F9C4 + waitmovement 0 + releaseall + end + +EventScript_16F958:: @ 816F958 + removeitem ITEM_TEA, 1 + goto EventScript_16F963 + end + +EventScript_16F963:: @ 816F963 + msgbox gUnknown_819E09B + closemessage + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16F99C + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16F9A7 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_16F9B2 + msgbox gUnknown_819E0C1 + setvar VAR_0x4062, 1 + releaseall + end + +EventScript_16F99C:: @ 816F99C + applymovement 255, Movement_16F9C2 + waitmovement 0 + return + +EventScript_16F9A7:: @ 816F9A7 + applymovement 255, Movement_16F9BD + waitmovement 0 + return + +EventScript_16F9B2:: @ 816F9B2 + applymovement 255, Movement_16F9BF + waitmovement 0 + return + +Movement_16F9BD:: @ 816F9BD + step_12 + step_end + +Movement_16F9BF:: @ 816F9BF + step_12 + step_12 + step_end + +Movement_16F9C2:: @ 816F9C2 + step_27 + step_end + +Movement_16F9C4:: @ 816F9C4 + step_11 + step_end diff --git a/data/maps/Route5_SouthEntrance/text.inc b/data/maps/Route5_SouthEntrance/text.inc new file mode 100644 index 000000000..079423f34 --- /dev/null +++ b/data/maps/Route5_SouthEntrance/text.inc @@ -0,0 +1,95 @@ +Text_19DD66:: @ 819DD66 + .string "I run the DAY-CARE service.\p" + .string "Would you like me to raise one of\n" + .string "your POKéMON?$" + +Text_19DDB2:: @ 819DDB2 + .string "Come again.$" + +Text_19DDBE:: @ 819DDBE + .string "Which POKéMON should I raise?$" + +Text_19DDDC:: @ 819DDDC + .string "Fine.\n" + .string "Come anytime you like.$" + +Text_19DDF9:: @ 819DDF9 + .string "Fine, I'll look after your\n" + .string "{STR_VAR_1} for a while.$" + +Text_19DE24:: @ 819DE24 + .string "Come see me in a while.$" + +Text_19DE3C:: @ 819DE3C + .string "You're back already?\p" + .string "Your {STR_VAR_1} needs to spend\n" + .string "some more time with me.$" + +Text_19DE80:: @ 819DE80 + .string "You owe me ¥{STR_VAR_2} for the return\n" + .string "of this POKéMON.$" + +Text_19DEAF:: @ 819DEAF + .string "Thank you!\n" + .string "Here's your POKéMON.$" + +Text_19DECF:: @ 819DECF + .string "{PLAYER} got {STR_VAR_1} back\n" + .string "from the DAY-CARE MAN.$" + +Text_19DEF5:: @ 819DEF5 + .string "Oh? You only have one POKéMON\n" + .string "with you.$" + +Text_19DF1D:: @ 819DF1D + .string "If you leave me that POKéMON,\n" + .string "what will you battle with?$" + +Text_19DF56:: @ 819DF56 + .string "Your {STR_VAR_1} has grown a lot.\n" + .string "Yes, quite a lot, I'd say.\p" + .string "Let me see…\n" + .string "By level, it's grown by {STR_VAR_2}.\p" + .string "Aren't I great?$" + +Text_19DFC2:: @ 819DFC2 + .string "You can't take this POKéMON back\n" + .string "if you've got no room for it.$" + +Text_19E001:: @ 819E001 + .string "You don't have enough money.$" + +Text_19E01E:: @ 819E01E + .string "きみの\n" + .string "みてみるかね?$" + +Text_19E02A:: @ 819E02A + .string "わるいけど ひでんのわざを もった\n" + .string "ポケモンは あずかれないなぁ$" + +gUnknown_819E04B:: @ 819E04B + .string "I'm on guard duty.\n" + .string "Gee, I'm thirsty, though!\p" + .string "Oh, wait there, the road's closed.$" + +gUnknown_819E09B:: @ 819E09B + .string "Oh, that TEA…\n" + .string "It looks awfully tasty…$" + +gUnknown_819E0C1:: @ 819E0C1 + .string "Huh? I can have this drink?\n" + .string "Gee, thanks!\l" + .string "… …\l" + .string "Glug, glug…\l" + .string "… …\l" + .string "Gulp…\l" + .string "If you want to go to SAFFRON\l" + .string "CITY…\l" + .string "… …\l" + .string "You can go on through.\p" + .string "I'll share this TEA with the other\n" + .string "guards!$" + +gUnknown_819E16D:: @ 819E16D + .string "Hi, how's it going?$" + diff --git a/data/maps/Route6/map.json b/data/maps/Route6/map.json new file mode 100644 index 000000000..7a1c9b9f1 --- /dev/null +++ b/data/maps/Route6/map.json @@ -0,0 +1,157 @@ +{ + "id": "MAP_ROUTE6", + "name": "Route6", + "layout": "LAYOUT_ROUTE6", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_6", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SAFFRON_CITY", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_VERMILION_CITY", + "offset": -12, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "20", + "x": 3, + "y": 16, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route6_EventScript_1A9999", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 12, + "y": 21, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route6_EventScript_1A9A15", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 13, + "y": 21, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route6_EventScript_1A9A91", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 20, + "y": 25, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route6_EventScript_1A99D7", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 13, + "y": 32, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route6_EventScript_1A9ACF", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 13, + "y": 33, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route6_EventScript_1A9A53", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 19, + "y": 13, + "elevation": 0, + "dest_map": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 12, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", + "dest_warp_id": 2 + }, + { + "x": 13, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 21, + "y": 15, + "elevation": 0, + "script": "Route6_EventScript_167FB2" + }, + { + "type": "hidden_item", + "x": 5, + "y": 5, + "elevation": 3, + "item": "ITEM_SITRUS_BERRY", + "flag": "118", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 19, + "y": 5, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "119", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route6/scripts.inc b/data/maps/Route6/scripts.inc new file mode 100644 index 000000000..773e1c091 --- /dev/null +++ b/data/maps/Route6/scripts.inc @@ -0,0 +1,6 @@ +Route6_MapScripts:: @ 8167FB1 + .byte 0 + +Route6_EventScript_167FB2:: @ 8167FB2 + msgbox gUnknown_8184067, 3 + end diff --git a/data/maps/Route6/text.inc b/data/maps/Route6/text.inc new file mode 100644 index 000000000..b8ae84e32 --- /dev/null +++ b/data/maps/Route6/text.inc @@ -0,0 +1,73 @@ +Text_183E04:: @ 8183E04 + .string "Who's there?\n" + .string "Quit listening in on us!$" + +Text_183E2A:: @ 8183E2A + .string "I just can't win!$" + +Text_183E3C:: @ 8183E3C + .string "Whisper…\n" + .string "Whisper…$" + +Text_183E4E:: @ 8183E4E + .string "Excuse me!\n" + .string "This is a private conversation!$" + +Text_183E79:: @ 8183E79 + .string "Ugh!\n" + .string "I hate losing.$" + +Text_183E8D:: @ 8183E8D + .string "Whisper…\n" + .string "Whisper…$" + +Text_183E9F:: @ 8183E9F + .string "There aren't many bugs out here.$" + +Text_183EC0:: @ 8183EC0 + .string "No!\n" + .string "You're kidding!$" + +Text_183ED4:: @ 8183ED4 + .string "I like bugs, so I'm going back to\n" + .string "VIRIDIAN FOREST.$" + +Text_183F07:: @ 8183F07 + .string "Huh?\n" + .string "You want to talk to me?$" + +Text_183F24:: @ 8183F24 + .string "This stinks…\n" + .string "I couldn't beat your challenge…$" + +Text_183F51:: @ 8183F51 + .string "I should bring more POKéMON with\n" + .string "me. I'll feel safer that way.$" + +Text_183F90:: @ 8183F90 + .string "Me?\n" + .string "Well, okay. I'll play!$" + +Text_183FAB:: @ 8183FAB + .string "Things just didn't work…$" + +Text_183FC4:: @ 8183FC4 + .string "I want to get stronger.\n" + .string "What's your secret?$" + +Text_183FF0:: @ 8183FF0 + .string "I've never seen you around.\n" + .string "Are you good?$" + +Text_18401A:: @ 818401A + .string "You're too good!$" + +Text_18402B:: @ 818402B + .string "Are my POKéMON weak?\n" + .string "Or, am I just bad?\l" + .string "Which do you think?$" + +gUnknown_8184067:: @ 8184067 + .string "UNDERGROUND PATH\n" + .string "CERULEAN CITY - VERMILION CITY$" + diff --git a/data/maps/Route6_NorthEntrance/map.json b/data/maps/Route6_NorthEntrance/map.json new file mode 100644 index 000000000..e22d5be5d --- /dev/null +++ b/data/maps/Route6_NorthEntrance/map.json @@ -0,0 +1,90 @@ +{ + "id": "MAP_ROUTE6_NORTH_ENTRANCE", + "name": "Route6_NorthEntrance", + "layout": "LAYOUT_SAFFRON_CITY_NORTH_SOUTH_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_6", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route6_NorthEntrance_EventScript_16F9C7", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 11 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 11 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": 1 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 3, + "y": 5, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route6_NorthEntrance_EventScript_16F9D0" + }, + { + "type": "trigger", + "x": 4, + "y": 5, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route6_NorthEntrance_EventScript_16F9DC" + }, + { + "type": "trigger", + "x": 5, + "y": 5, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route6_NorthEntrance_EventScript_16F9E8" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route6_NorthEntrance/scripts.inc b/data/maps/Route6_NorthEntrance/scripts.inc new file mode 100644 index 000000000..9537d2e82 --- /dev/null +++ b/data/maps/Route6_NorthEntrance/scripts.inc @@ -0,0 +1,88 @@ +Route6_NorthEntrance_MapScripts:: @ 816F9C6 + .byte 0 + +Route6_NorthEntrance_EventScript_16F9C7:: @ 816F9C7 + msgbox gUnknown_819E2A3, 2 + end + +Route6_NorthEntrance_EventScript_16F9D0:: @ 816F9D0 + lockall + setvar VAR_0x4001, 0 + goto EventScript_16F9F4 + end + +Route6_NorthEntrance_EventScript_16F9DC:: @ 816F9DC + lockall + setvar VAR_0x4001, 1 + goto EventScript_16F9F4 + end + +Route6_NorthEntrance_EventScript_16F9E8:: @ 816F9E8 + lockall + setvar VAR_0x4001, 2 + goto EventScript_16F9F4 + end + +EventScript_16F9F4:: @ 816F9F4 + textcolor 0 + applymovement 255, Movement_1A75EB + waitmovement 0 + checkflag FLAG_0x2A6 + goto_if_eq EventScript_16FA1E + msgbox gUnknown_819E181 + closemessage + applymovement 255, Movement_16FA8A + waitmovement 0 + releaseall + end + +EventScript_16FA1E:: @ 816FA1E + removeitem ITEM_TEA, 1 + goto EventScript_16FA29 + end + +EventScript_16FA29:: @ 816FA29 + msgbox gUnknown_819E1D1 + closemessage + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16FA62 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16FA6D + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_16FA78 + msgbox gUnknown_819E1F7 + setvar VAR_0x4062, 1 + releaseall + end + +EventScript_16FA62:: @ 816FA62 + applymovement 255, Movement_16FA83 + waitmovement 0 + return + +EventScript_16FA6D:: @ 816FA6D + applymovement 255, Movement_16FA86 + waitmovement 0 + return + +EventScript_16FA78:: @ 816FA78 + applymovement 255, Movement_16FA88 + waitmovement 0 + return + +Movement_16FA83:: @ 816FA83 + step_13 + step_13 + step_end + +Movement_16FA86:: @ 816FA86 + step_13 + step_end + +Movement_16FA88:: @ 816FA88 + step_28 + step_end + +Movement_16FA8A:: @ 816FA8A + step_10 + step_end diff --git a/data/maps/Route6_NorthEntrance/text.inc b/data/maps/Route6_NorthEntrance/text.inc new file mode 100644 index 000000000..3d581e1fb --- /dev/null +++ b/data/maps/Route6_NorthEntrance/text.inc @@ -0,0 +1,26 @@ +gUnknown_819E181:: @ 819E181 + .string "I'm on guard duty.\n" + .string "Gee, I'm thirsty, though!\p" + .string "Oh, wait there, the road's closed.$" + +gUnknown_819E1D1:: @ 819E1D1 + .string "Oh, that TEA…\n" + .string "It looks awfully tasty…$" + +gUnknown_819E1F7:: @ 819E1F7 + .string "Huh? I can have this drink?\n" + .string "Gee, thanks!\l" + .string "… …\l" + .string "Glug, glug…\l" + .string "… …\l" + .string "Gulp…\l" + .string "If you want to go to SAFFRON\l" + .string "CITY…\l" + .string "… …\l" + .string "You can go on through.\p" + .string "I'll share this TEA with the other\n" + .string "guards!$" + +gUnknown_819E2A3:: @ 819E2A3 + .string "Hi, how's it going?$" + diff --git a/data/maps/Route7/map.json b/data/maps/Route7/map.json new file mode 100644 index 000000000..8c889d5c2 --- /dev/null +++ b/data/maps/Route7/map.json @@ -0,0 +1,76 @@ +{ + "id": "MAP_ROUTE7", + "name": "Route7", + "layout": "LAYOUT_ROUTE7", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_7", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_CELADON_CITY", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_SAFFRON_CITY", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "65375", + "x": 65528, + "y": 12, + "elevation": 10, + "movement_type": "0", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 6, + "trainer_sight_or_berry_tree_id": 3, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 14, + "elevation": 0, + "dest_map": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 15, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE7_EAST_ENTRANCE", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 5, + "y": 14, + "elevation": 0, + "script": "Route7_EventScript_167FBC" + }, + { + "type": "hidden_item", + "x": 16, + "y": 15, + "elevation": 3, + "item": "ITEM_WEPEAR_BERRY", + "flag": "152", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route7/scripts.inc b/data/maps/Route7/scripts.inc new file mode 100644 index 000000000..ec34892f4 --- /dev/null +++ b/data/maps/Route7/scripts.inc @@ -0,0 +1,6 @@ +Route7_MapScripts:: @ 8167FBB + .byte 0 + +Route7_EventScript_167FBC:: @ 8167FBC + msgbox gUnknown_8184097, 3 + end diff --git a/data/maps/Route7/text.inc b/data/maps/Route7/text.inc new file mode 100644 index 000000000..3f1cdda5b --- /dev/null +++ b/data/maps/Route7/text.inc @@ -0,0 +1,4 @@ +gUnknown_8184097:: @ 8184097 + .string "UNDERGROUND PATH\n" + .string "CELADON CITY - LAVENDER TOWN$" + diff --git a/data/maps/Route7_EastEntrance/map.json b/data/maps/Route7_EastEntrance/map.json new file mode 100644 index 000000000..a2c775f2c --- /dev/null +++ b/data/maps/Route7_EastEntrance/map.json @@ -0,0 +1,90 @@ +{ + "id": "MAP_ROUTE7_EAST_ENTRANCE", + "name": "Route7_EastEntrance", + "layout": "LAYOUT_SAFFRON_CITY_EAST_WEST_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_7", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route7_EastEntrance_EventScript_16FA8E", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 8 + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 8 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 6, + "y": 4, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route7_EastEntrance_EventScript_16FA97" + }, + { + "type": "trigger", + "x": 6, + "y": 5, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route7_EastEntrance_EventScript_16FAA3" + }, + { + "type": "trigger", + "x": 6, + "y": 6, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route7_EastEntrance_EventScript_16FAAF" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route7_EastEntrance/scripts.inc b/data/maps/Route7_EastEntrance/scripts.inc new file mode 100644 index 000000000..845eab835 --- /dev/null +++ b/data/maps/Route7_EastEntrance/scripts.inc @@ -0,0 +1,88 @@ +Route7_EastEntrance_MapScripts:: @ 816FA8D + .byte 0 + +Route7_EastEntrance_EventScript_16FA8E:: @ 816FA8E + msgbox gUnknown_819E3D9, 2 + end + +Route7_EastEntrance_EventScript_16FA97:: @ 816FA97 + lockall + setvar VAR_0x4001, 0 + goto EventScript_16FABB + end + +Route7_EastEntrance_EventScript_16FAA3:: @ 816FAA3 + lockall + setvar VAR_0x4001, 1 + goto EventScript_16FABB + end + +Route7_EastEntrance_EventScript_16FAAF:: @ 816FAAF + lockall + setvar VAR_0x4001, 2 + goto EventScript_16FABB + end + +EventScript_16FABB:: @ 816FABB + textcolor 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + checkflag FLAG_0x2A6 + goto_if_eq EventScript_16FAE5 + msgbox gUnknown_819E2B7 + closemessage + applymovement 255, Movement_16FB51 + waitmovement 0 + releaseall + end + +EventScript_16FAE5:: @ 816FAE5 + removeitem ITEM_TEA, 1 + goto EventScript_16FAF0 + end + +EventScript_16FAF0:: @ 816FAF0 + msgbox gUnknown_819E307 + closemessage + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16FB29 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16FB34 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_16FB3F + msgbox gUnknown_819E32D + setvar VAR_0x4062, 1 + releaseall + end + +EventScript_16FB29:: @ 816FB29 + applymovement 255, Movement_16FB4F + waitmovement 0 + return + +EventScript_16FB34:: @ 816FB34 + applymovement 255, Movement_16FB4A + waitmovement 0 + return + +EventScript_16FB3F:: @ 816FB3F + applymovement 255, Movement_16FB4C + waitmovement 0 + return + +Movement_16FB4A:: @ 816FB4A + step_11 + step_end + +Movement_16FB4C:: @ 816FB4C + step_11 + step_11 + step_end + +Movement_16FB4F:: @ 816FB4F + step_26 + step_end + +Movement_16FB51:: @ 816FB51 + step_12 + step_end diff --git a/data/maps/Route7_EastEntrance/text.inc b/data/maps/Route7_EastEntrance/text.inc new file mode 100644 index 000000000..94db43e94 --- /dev/null +++ b/data/maps/Route7_EastEntrance/text.inc @@ -0,0 +1,26 @@ +gUnknown_819E2B7:: @ 819E2B7 + .string "I'm on guard duty.\n" + .string "Gee, I'm thirsty, though!\p" + .string "Oh, wait there, the road's closed.$" + +gUnknown_819E307:: @ 819E307 + .string "Oh, that TEA…\n" + .string "It looks awfully tasty…$" + +gUnknown_819E32D:: @ 819E32D + .string "Huh? I can have this drink?\n" + .string "Gee, thanks!\l" + .string "… …\l" + .string "Glug, glug…\l" + .string "… …\l" + .string "Gulp…\l" + .string "If you want to go to SAFFRON\l" + .string "CITY…\l" + .string "… …\l" + .string "You can go on through.\p" + .string "I'll share this TEA with the other\n" + .string "guards!$" + +gUnknown_819E3D9:: @ 819E3D9 + .string "Hi, how's it going?$" + diff --git a/data/maps/Route8/map.json b/data/maps/Route8/map.json new file mode 100644 index 000000000..6a5534a2c --- /dev/null +++ b/data/maps/Route8/map.json @@ -0,0 +1,276 @@ +{ + "id": "MAP_ROUTE8", + "name": "Route8", + "layout": "LAYOUT_ROUTE8", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_8", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SAFFRON_CITY", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_LAVENDER_TOWN", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "22", + "x": 62, + "y": 14, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 6, + "script": "Route8_EventScript_1AA1D5", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 55, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route8_EventScript_1AA30B", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 51, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route8_EventScript_1AA251", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 29, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route8_EventScript_1AA11B", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 29, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 6, + "script": "Route8_EventScript_1AA28F", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 29, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route8_EventScript_1AA159", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 29, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 6, + "script": "Route8_EventScript_1AA197", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 21, + "y": 3, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route8_EventScript_1AA2CD", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route8_EventScript_1AA213", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 33, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route8_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "95", + "x": 47, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route8_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "17", + "x": 40, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route8_EventScript_1AA349", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 41, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route8_EventScript_1AA38F", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 14, + "y": 16, + "elevation": 3, + "movement_type": "52", + "movement_range_x": 5, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route8_EventScript_1AA3D5", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 24, + "y": 17, + "elevation": 3, + "movement_type": "41", + "movement_range_x": 5, + "movement_range_y": 5, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route8_EventScript_1AA413", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 13, + "y": 4, + "elevation": 0, + "dest_map": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE8_WEST_ENTRANCE", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 16, + "y": 5, + "elevation": 0, + "script": "Route8_EventScript_167FC6" + }, + { + "type": "hidden_item", + "x": 42, + "y": 10, + "elevation": 3, + "item": "ITEM_RAWST_BERRY", + "flag": "127", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 38, + "y": 11, + "elevation": 3, + "item": "ITEM_LUM_BERRY", + "flag": "128", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 42, + "y": 15, + "elevation": 3, + "item": "ITEM_LEPPA_BERRY", + "flag": "129", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route8/scripts.inc b/data/maps/Route8/scripts.inc new file mode 100644 index 000000000..d2bc3749b --- /dev/null +++ b/data/maps/Route8/scripts.inc @@ -0,0 +1,6 @@ +Route8_MapScripts:: @ 8167FC5 + .byte 0 + +Route8_EventScript_167FC6:: @ 8167FC6 + msgbox gUnknown_8184576, 3 + end diff --git a/data/maps/Route8/text.inc b/data/maps/Route8/text.inc new file mode 100644 index 000000000..83f725c6a --- /dev/null +++ b/data/maps/Route8/text.inc @@ -0,0 +1,110 @@ +Text_1840C5:: @ 81840C5 + .string "You look good at POKéMON, but how\n" + .string "is your chemistry grade?$" + +Text_184100:: @ 8184100 + .string "Ow!\n" + .string "Meltdown!$" + +Text_18410E:: @ 818410E + .string "I am better at school than this!$" + +Text_18412F:: @ 818412F + .string "All right!\n" + .string "Let's play a game!$" + +Text_18414D:: @ 818414D + .string "Drat!\n" + .string "Came up short!$" + +Text_184162:: @ 8184162 + .string "Things didn't work today.$" + +Text_18417C:: @ 818417C + .string "You should be informed.\n" + .string "You need strategy to win at this!$" + +Text_1841B6:: @ 81841B6 + .string "It's not logical!$" + +Text_1841C8:: @ 81841C8 + .string "Go with GRIMER first…and…\n" + .string "…and…then…$" + +Text_1841ED:: @ 81841ED + .string "I like NIDORAN, so I collect them!$" + +Text_184210:: @ 8184210 + .string "Why?\n" + .string "Why??$" + +Text_18421B:: @ 818421B + .string "When POKéMON grow up, they get\n" + .string "ugly! They shouldn't evolve.$" + +Text_184257:: @ 8184257 + .string "School is fun, but so are POKéMON.$" + +Text_18427A:: @ 818427A + .string "You made it clear to me that\n" + .string "I should stick with school.$" + +Text_1842B3:: @ 81842B3 + .string "I was planning on getting some\n" + .string "fresh air for a change, but…\p" + .string "We're stuck here because of the\n" + .string "gates at SAFFRON.$" + +Text_184321:: @ 8184321 + .string "MEOWTH is so cute, meow, meow,\n" + .string "meow!$" + +Text_184346:: @ 8184346 + .string "Meeeeyow!$" + +Text_184350:: @ 8184350 + .string "I think PIDGEY and RATTATA are\n" + .string "cute, too!$" + +Text_18437A:: @ 818437A + .string "We must look silly standing here\n" + .string "like this.$" + +Text_1843A6:: @ 81843A6 + .string "Look what you did to my poor, cute\n" + .string "POKéMON!$" + +Text_1843D2:: @ 81843D2 + .string "SAFFRON's gatekeeper won't let us\n" + .string "go through.\p" + .string "I know he's doing his job, but I\n" + .string "think he's mean.$" + +Text_184432:: @ 8184432 + .string "I'm a rambling, gaming dude!$" + +Text_18444F:: @ 818444F + .string "Missed the big chance!$" + +Text_184466:: @ 8184466 + .string "Playing games and POKéMON are like\n" + .string "eating peanuts! I just can't stop!$" + +Text_1844AC:: @ 81844AC + .string "What's a cute, round, and fluffy\n" + .string "POKéMON?$" + +Text_1844D6:: @ 81844D6 + .string "Stop!\p" + .string "Don't be so mean to my CLEFAIRY!$" + +Text_1844FD:: @ 81844FD + .string "I read that CLEFAIRY evolves when\n" + .string "it's exposed to a MOON STONE.\p" + .string "I read that in a POKéMON JOURNAL.\n" + .string "I wonder if it's true?$" + +gUnknown_8184576:: @ 8184576 + .string "UNDERGROUND PATH\n" + .string "CELADON CITY - LAVENDER TOWN$" + diff --git a/data/maps/Route8_WestEntrance/map.json b/data/maps/Route8_WestEntrance/map.json new file mode 100644 index 000000000..d9736b5eb --- /dev/null +++ b/data/maps/Route8_WestEntrance/map.json @@ -0,0 +1,90 @@ +{ + "id": "MAP_ROUTE8_WEST_ENTRANCE", + "name": "Route8_WestEntrance", + "layout": "LAYOUT_SAFFRON_CITY_EAST_WEST_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_ROUTE_8", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "60", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route8_WestEntrance_EventScript_16FB54", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 10 + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 10 + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": 1 + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": 1 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 6, + "y": 4, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route8_WestEntrance_EventScript_16FB5D" + }, + { + "type": "trigger", + "x": 6, + "y": 5, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route8_WestEntrance_EventScript_16FB69" + }, + { + "type": "trigger", + "x": 6, + "y": 6, + "elevation": 3, + "var": "VAR_0x4062", + "var_value": 0, + "script": "Route8_WestEntrance_EventScript_16FB75" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route8_WestEntrance/scripts.inc b/data/maps/Route8_WestEntrance/scripts.inc new file mode 100644 index 000000000..1d347d2d0 --- /dev/null +++ b/data/maps/Route8_WestEntrance/scripts.inc @@ -0,0 +1,98 @@ +Route8_WestEntrance_MapScripts:: @ 816FB53 + .byte 0 + +Route8_WestEntrance_EventScript_16FB54:: @ 816FB54 + msgbox gUnknown_819E50F, 2 + end + +Route8_WestEntrance_EventScript_16FB5D:: @ 816FB5D + lockall + setvar VAR_0x4001, 0 + goto EventScript_16FB81 + end + +Route8_WestEntrance_EventScript_16FB69:: @ 816FB69 + lockall + setvar VAR_0x4001, 1 + goto EventScript_16FB81 + end + +Route8_WestEntrance_EventScript_16FB75:: @ 816FB75 + lockall + setvar VAR_0x4001, 2 + goto EventScript_16FB81 + end + +EventScript_16FB81:: @ 816FB81 + textcolor 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + checkflag FLAG_0x2A6 + goto_if_eq EventScript_16FBAB + msgbox gUnknown_819E3ED + closemessage + applymovement 255, Movement_16FC2D + waitmovement 0 + releaseall + end + +EventScript_16FBAB:: @ 816FBAB + removeitem ITEM_TEA, 1 + goto EventScript_16FBCC + end + +EventScript_16FBB6:: @ 816FBB6 + removeitem ITEM_SODA_POP, 1 + goto EventScript_16FBCC + end + +EventScript_16FBC1:: @ 816FBC1 + removeitem ITEM_LEMONADE, 1 + goto EventScript_16FBCC + end + +EventScript_16FBCC:: @ 816FBCC + msgbox gUnknown_819E43D + closemessage + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_16FC05 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_16FC10 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_16FC1B + msgbox gUnknown_819E463 + setvar VAR_0x4062, 1 + releaseall + end + +EventScript_16FC05:: @ 816FC05 + applymovement 255, Movement_16FC2B + waitmovement 0 + return + +EventScript_16FC10:: @ 816FC10 + applymovement 255, Movement_16FC26 + waitmovement 0 + return + +EventScript_16FC1B:: @ 816FC1B + applymovement 255, Movement_16FC28 + waitmovement 0 + return + +Movement_16FC26:: @ 816FC26 + step_11 + step_end + +Movement_16FC28:: @ 816FC28 + step_11 + step_11 + step_end + +Movement_16FC2B:: @ 816FC2B + step_26 + step_end + +Movement_16FC2D:: @ 816FC2D + step_13 + step_end diff --git a/data/maps/Route8_WestEntrance/text.inc b/data/maps/Route8_WestEntrance/text.inc new file mode 100644 index 000000000..58e2ee8ef --- /dev/null +++ b/data/maps/Route8_WestEntrance/text.inc @@ -0,0 +1,26 @@ +gUnknown_819E3ED:: @ 819E3ED + .string "I'm on guard duty.\n" + .string "Gee, I'm thirsty, though!\p" + .string "Oh, wait there, the road's closed.$" + +gUnknown_819E43D:: @ 819E43D + .string "Oh, that TEA…\n" + .string "It looks awfully tasty…$" + +gUnknown_819E463:: @ 819E463 + .string "Huh? I can have this drink?\n" + .string "Gee, thanks!\l" + .string "… …\l" + .string "Glug, glug…\l" + .string "… …\l" + .string "Gulp…\l" + .string "If you want to go to SAFFRON\l" + .string "CITY…\l" + .string "… …\l" + .string "You can go on through.\p" + .string "I'll share this TEA with the other\n" + .string "guards!$" + +gUnknown_819E50F:: @ 819E50F + .string "Hi, how's it going?$" + diff --git a/data/maps/Route9/map.json b/data/maps/Route9/map.json new file mode 100644 index 000000000..ec21a527b --- /dev/null +++ b/data/maps/Route9/map.json @@ -0,0 +1,222 @@ +{ + "id": "MAP_ROUTE9", + "name": "Route9", + "layout": "LAYOUT_ROUTE9", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_9", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_CERULEAN_CITY", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_ROUTE10", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "40", + "x": 14, + "y": 10, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route9_EventScript_1A9E71", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 20, + "y": 17, + "elevation": 3, + "movement_type": "15", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route9_EventScript_1A9F69", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 61, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route9_EventScript_1A9EED", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 26, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route9_EventScript_1A9DF5", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 26, + "y": 1, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "Route9_EventScript_1A9D79", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 49, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "Route9_EventScript_1A9DB7", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 53, + "y": 2, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "Route9_EventScript_1A9F2B", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 60, + "y": 9, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "Route9_EventScript_1A9EAF", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 36, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "Route9_EventScript_1A9E33", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 2, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route9_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "92", + "x": 12, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route9_EventScript_1BE6B9", + "flag": "363" + }, + { + "graphics_id": "92", + "x": 65, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "Route9_EventScript_1BEAFD", + "flag": "450" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 29, + "y": 7, + "elevation": 0, + "script": "Route9_EventScript_167FD0" + }, + { + "type": "hidden_item", + "x": 15, + "y": 7, + "elevation": 0, + "item": "ITEM_ETHER", + "flag": "6", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 63, + "y": 2, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "123", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 48, + "y": 2, + "elevation": 3, + "item": "ITEM_CHESTO_BERRY", + "flag": "150", + "unknown": 1 + } + ] +} diff --git a/data/maps/Route9/scripts.inc b/data/maps/Route9/scripts.inc new file mode 100644 index 000000000..6c3b7927b --- /dev/null +++ b/data/maps/Route9/scripts.inc @@ -0,0 +1,6 @@ +Route9_MapScripts:: @ 8167FCF + .byte 0 + +Route9_EventScript_167FD0:: @ 8167FD0 + msgbox gUnknown_8184B66, 3 + end diff --git a/data/maps/Route9/text.inc b/data/maps/Route9/text.inc new file mode 100644 index 000000000..3a4506533 --- /dev/null +++ b/data/maps/Route9/text.inc @@ -0,0 +1,159 @@ +Text_1845A4:: @ 81845A4 + .string "ELI: Twin power is fantastic.\n" + .string "Did you know?$" + +Text_1845D0:: @ 81845D0 + .string "ELI: But…\n" + .string "We used our twin power…$" + +Text_1845F2:: @ 81845F2 + .string "ELI: I caught my POKéMON with\n" + .string "ANNE!$" + +Text_184616:: @ 8184616 + .string "ELI: We can't battle if you don't\n" + .string "have two POKéMON.$" + +Text_18464A:: @ 818464A + .string "ANNE: We'll shock you with our twin\n" + .string "power!$" + +Text_184675:: @ 8184675 + .string "ANNE: Our twin power…$" + +Text_18468B:: @ 818468B + .string "ANNE: I'm raising POKéMON with\n" + .string "ELI.$" + +Text_1846AF:: @ 81846AF + .string "ANNE: Hi, hi! Let's battle!\n" + .string "But bring two POKéMON.$" + +Text_1846E2:: @ 81846E2 + .string "My bike's acting up, man.$" + +Text_1846FC:: @ 81846FC + .string "Aww, man.\n" + .string "I'm not into this.$" + +Text_184719:: @ 8184719 + .string "I got grass caught up in my\n" + .string "spokes, man.$" + +Text_184742:: @ 8184742 + .string "Clear the way, or I'll run you\n" + .string "down!$" + +Text_184767:: @ 8184767 + .string "You for real, kid?$" + +Text_18477A:: @ 818477A + .string "Don't think you're all special and\n" + .string "all just because of this.$" + +Text_1847B7:: @ 81847B7 + .string "You have POKéMON with you!\n" + .string "You're mine!$" + +Text_1847DF:: @ 81847DF + .string "You deceived me…$" + +Text_1847F0:: @ 81847F0 + .string "The tunnel coming up is pitch-black\n" + .string "inside.\p" + .string "You'll need FLASH to get through\n" + .string "there.$" + +Text_184844:: @ 8184844 + .string "Who's that walking there with those\n" + .string "good-looking POKéMON?$" + +Text_18487E:: @ 818487E + .string "Out like a light!$" + +Text_184890:: @ 8184890 + .string "Keep walking!$" + +Text_18489E:: @ 818489E + .string "I'm taking the ROCK TUNNEL to\n" + .string "go to LAVENDER…$" + +Text_1848CC:: @ 81848CC + .string "Can't measure up…$" + +Text_1848DE:: @ 81848DE + .string "Are you off to ROCK TUNNEL, too?$" + +Text_1848FF:: @ 81848FF + .string "Don't you dare patronize me!$" + +Text_18491C:: @ 818491C + .string "No!\n" + .string "You're too much.$" + +Text_184931:: @ 8184931 + .string "You're obviously talented.\n" + .string "Good luck to you!$" + +Text_18495E:: @ 818495E + .string "Bwahaha!\n" + .string "Great! I was bored, eh!$" + +Text_18497F:: @ 818497F + .string "Keep it coming, eh!\p" + .string "Oh wait.\n" + .string "I'm out of POKéMON!$" + +Text_1849B0:: @ 81849B0 + .string "You sure had guts standing up to\n" + .string "me there, eh?$" + +Text_1849DF:: @ 81849DF + .string "Hahaha!\n" + .string "Aren't you a little toughie!$" + +Text_184A04:: @ 8184A04 + .string "What's that?$" + +Text_184A11:: @ 8184A11 + .string "Hahaha!\n" + .string "Kids should be tough!$" + +Text_184A2F:: @ 8184A2F + .string "I got up early every day to raise\n" + .string "my POKéMON from cocoons!$" + +Text_184A6A:: @ 8184A6A + .string "WHAT?\p" + .string "What a total waste of time!$" + +Text_184A8C:: @ 8184A8C + .string "I have to collect more than bugs\n" + .string "to get stronger…$" + +Text_184ABE:: @ 8184ABE + .string "Hahahaha!\n" + .string "Bring it on!$" + +Text_184AD5:: @ 8184AD5 + .string "Hahahaha!\n" + .string "You beat me fair!$" + +Text_184AF1:: @ 8184AF1 + .string "Hahahaha!\n" + .string "Us hearty guys always laugh!$" + +Text_184B18:: @ 8184B18 + .string "Go, my super BUG POKéMON!$" + +Text_184B32:: @ 8184B32 + .string "My bugs…$" + +Text_184B3B:: @ 8184B3B + .string "If you don't like BUG POKéMON,\n" + .string "you bug me!$" + +gUnknown_8184B66:: @ 8184B66 + .string "ROUTE 9\n" + .string "CERULEAN CITY - ROCK TUNNEL$" + diff --git a/data/maps/SSAnne_1F_Corridor/map.json b/data/maps/SSAnne_1F_Corridor/map.json new file mode 100644 index 000000000..4ba7c113d --- /dev/null +++ b/data/maps/SSAnne_1F_Corridor/map.json @@ -0,0 +1,138 @@ +{ + "id": "MAP_SSANNE_1F_CORRIDOR", + "name": "SSAnne_1F_Corridor", + "layout": "LAYOUT_SSANNE_1F_CORRIDOR", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "62", + "x": 18, + "y": 8, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_1F_Corridor_EventScript_1608D5", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 12, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_1F_Corridor_EventScript_1608CC", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": 0 + }, + { + "x": 2, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SSANNE_KITCHEN", + "dest_warp_id": 0 + }, + { + "x": 19, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": 2 + }, + { + "x": 20, + "y": 0, + "elevation": 0, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": 3 + }, + { + "x": 3, + "y": 20, + "elevation": 0, + "dest_map": "MAP_SSANNE_KITCHEN", + "dest_warp_id": 0 + }, + { + "x": 28, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": 0 + }, + { + "x": 5, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM1", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM2", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM3", + "dest_warp_id": 0 + }, + { + "x": 14, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM4", + "dest_warp_id": 0 + }, + { + "x": 17, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM5", + "dest_warp_id": 0 + }, + { + "x": 23, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM7", + "dest_warp_id": 0 + }, + { + "x": 20, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM6", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Corridor/scripts.inc b/data/maps/SSAnne_1F_Corridor/scripts.inc new file mode 100644 index 000000000..d9bd8c051 --- /dev/null +++ b/data/maps/SSAnne_1F_Corridor/scripts.inc @@ -0,0 +1,10 @@ +SSAnne_1F_Corridor_MapScripts:: @ 81608CB + .byte 0 + +SSAnne_1F_Corridor_EventScript_1608CC:: @ 81608CC + msgbox gUnknown_8172EE7, 2 + end + +SSAnne_1F_Corridor_EventScript_1608D5:: @ 81608D5 + msgbox gUnknown_8172F60, 2 + end diff --git a/data/maps/SSAnne_1F_Corridor/text.inc b/data/maps/SSAnne_1F_Corridor/text.inc new file mode 100644 index 000000000..dff534c9a --- /dev/null +++ b/data/maps/SSAnne_1F_Corridor/text.inc @@ -0,0 +1,14 @@ +gUnknown_8172EE7:: @ 8172EE7 + .string "Bonjour!\n" + .string "I am le waiter on this ship!\p" + .string "I will be happy to serve you\n" + .string "anything you please!\p" + .string "… … …\n" + .string "Ah! Le strong silent type!$" + +gUnknown_8172F60:: @ 8172F60 + .string "The passengers are restless from\n" + .string "this long voyage.\p" + .string "You might be challenged by the\n" + .string "more bored ones!$" + diff --git a/data/maps/SSAnne_1F_Room1/map.json b/data/maps/SSAnne_1F_Room1/map.json new file mode 100644 index 000000000..c54bbc8de --- /dev/null +++ b/data/maps/SSAnne_1F_Room1/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_SSANNE_1F_ROOM1", + "name": "SSAnne_1F_Room1", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_1F_Room1_EventScript_160BDC", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room1/scripts.inc b/data/maps/SSAnne_1F_Room1/scripts.inc new file mode 100644 index 000000000..ca75fd46d --- /dev/null +++ b/data/maps/SSAnne_1F_Room1/scripts.inc @@ -0,0 +1,6 @@ +SSAnne_1F_Room1_MapScripts:: @ 8160BDB + .byte 0 + +SSAnne_1F_Room1_EventScript_160BDC:: @ 8160BDC + msgbox gUnknown_817393B, 2 + end diff --git a/data/maps/SSAnne_1F_Room1/text.inc b/data/maps/SSAnne_1F_Room1/text.inc new file mode 100644 index 000000000..252ab2283 --- /dev/null +++ b/data/maps/SSAnne_1F_Room1/text.inc @@ -0,0 +1,6 @@ +gUnknown_817393B:: @ 817393B + .string "Ssh…!\n" + .string "I'm a GLOBAL POLICE agent.\p" + .string "I'm on the trail of TEAM ROCKET.\n" + .string "They're up to nothing good!$" + diff --git a/data/maps/SSAnne_1F_Room2/map.json b/data/maps/SSAnne_1F_Room2/map.json new file mode 100644 index 000000000..81fcf337b --- /dev/null +++ b/data/maps/SSAnne_1F_Room2/map.json @@ -0,0 +1,80 @@ +{ + "id": "MAP_SSANNE_1F_ROOM2", + "name": "SSAnne_1F_Room2", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "22", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SSAnne_1F_Room2_EventScript_160BEF", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 0, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SSAnne_1F_Room2_EventScript_160C06", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 1, + "script": "SSAnne_1F_Room2_EventScript_160BE6", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 5, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_1F_Room2_EventScript_1BE65E", + "flag": "356" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 7 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room2/scripts.inc b/data/maps/SSAnne_1F_Room2/scripts.inc new file mode 100644 index 000000000..4f1ef996b --- /dev/null +++ b/data/maps/SSAnne_1F_Room2/scripts.inc @@ -0,0 +1,16 @@ +SSAnne_1F_Room2_MapScripts:: @ 8160BE5 + .byte 0 + +SSAnne_1F_Room2_EventScript_160BE6:: @ 8160BE6 + msgbox gUnknown_8173AC5, 2 + end + +SSAnne_1F_Room2_EventScript_160BEF:: @ 8160BEF + trainerbattle 0, 126, 0, Text_173A1A, Text_173A4F + msgbox gUnknown_8173A7A, 6 + end + +SSAnne_1F_Room2_EventScript_160C06:: @ 8160C06 + trainerbattle 0, 96, 0, Text_173999, Text_1739B1 + msgbox gUnknown_81739C5, 6 + end diff --git a/data/maps/SSAnne_1F_Room2/text.inc b/data/maps/SSAnne_1F_Room2/text.inc new file mode 100644 index 000000000..92dc9a93c --- /dev/null +++ b/data/maps/SSAnne_1F_Room2/text.inc @@ -0,0 +1,31 @@ +Text_173999:: @ 8173999 + .string "I love POKéMON!\n" + .string "Do you?$" + +Text_1739B1:: @ 81739B1 + .string "Wow! \n" + .string "You're great!$" + +gUnknown_81739C5:: @ 81739C5 + .string "Listen, listen!\n" + .string "Let me be your friend, okay?\p" + .string "Then we can trade POKéMON and\n" + .string "do stuff.$" + +Text_173A1A:: @ 8173A1A + .string "I collected these POKéMON\n" + .string "from all around the world!$" + +Text_173A4F:: @ 8173A4F + .string "Oh, no!\n" + .string "I went around the world for these!$" + +gUnknown_8173A7A:: @ 8173A7A + .string "You hurt my poor POKéMON!\p" + .string "I demand that you heal them at a\n" + .string "POKéMON CENTER!$" + +gUnknown_8173AC5:: @ 8173AC5 + .string "We are cruising around the world,\n" + .string "my children and I.$" + diff --git a/data/maps/SSAnne_1F_Room3/map.json b/data/maps/SSAnne_1F_Room3/map.json new file mode 100644 index 000000000..1e8b1f145 --- /dev/null +++ b/data/maps/SSAnne_1F_Room3/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_SSANNE_1F_ROOM3", + "name": "SSAnne_1F_Room3", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "17", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "52", + "movement_range_x": 2, + "movement_range_y": 3, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_1F_Room3_EventScript_160C1E", + "flag": "0" + }, + { + "graphics_id": "131", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_1F_Room3_EventScript_160C30", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 0, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_1F_Room3_EventScript_160C27", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 8 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room3/scripts.inc b/data/maps/SSAnne_1F_Room3/scripts.inc new file mode 100644 index 000000000..bdfe2cc07 --- /dev/null +++ b/data/maps/SSAnne_1F_Room3/scripts.inc @@ -0,0 +1,20 @@ +SSAnne_1F_Room3_MapScripts:: @ 8160C1D + .byte 0 + +SSAnne_1F_Room3_EventScript_160C1E:: @ 8160C1E + msgbox gUnknown_8173B21, 2 + end + +SSAnne_1F_Room3_EventScript_160C27:: @ 8160C27 + msgbox gUnknown_8173AFA, 2 + end + +SSAnne_1F_Room3_EventScript_160C30:: @ 8160C30 + lock + faceplayer + waitse + playmoncry SPECIES_WIGGLYTUFF, 0 + msgbox gUnknown_8173B61 + waitmoncry + release + end diff --git a/data/maps/SSAnne_1F_Room3/text.inc b/data/maps/SSAnne_1F_Room3/text.inc new file mode 100644 index 000000000..32709c631 --- /dev/null +++ b/data/maps/SSAnne_1F_Room3/text.inc @@ -0,0 +1,11 @@ +gUnknown_8173AFA:: @ 8173AFA + .string "A world cruise is so elegant yet\n" + .string "cozy!$" + +gUnknown_8173B21:: @ 8173B21 + .string "I always travel with WIGGLYTUFF.\n" + .string "I never leave home without it.$" + +gUnknown_8173B61:: @ 8173B61 + .string "WIGGLYTUFF: Puup pupuu!$" + diff --git a/data/maps/SSAnne_1F_Room4/map.json b/data/maps/SSAnne_1F_Room4/map.json new file mode 100644 index 000000000..56d910b4b --- /dev/null +++ b/data/maps/SSAnne_1F_Room4/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_SSANNE_1F_ROOM4", + "name": "SSAnne_1F_Room4", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "23", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_1F_Room4_EventScript_160C44", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 9 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room4/scripts.inc b/data/maps/SSAnne_1F_Room4/scripts.inc new file mode 100644 index 000000000..aa243949e --- /dev/null +++ b/data/maps/SSAnne_1F_Room4/scripts.inc @@ -0,0 +1,17 @@ +SSAnne_1F_Room4_MapScripts:: @ 8160C43 + .byte 0 + +SSAnne_1F_Room4_EventScript_160C44:: @ 8160C44 + lock + faceplayer + checkplayergender + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_160C5C + msgbox gUnknown_8173BA4 + release + end + +EventScript_160C5C:: @ 8160C5C + msgbox gUnknown_8173B79 + release + end diff --git a/data/maps/SSAnne_1F_Room4/text.inc b/data/maps/SSAnne_1F_Room4/text.inc new file mode 100644 index 000000000..8b3f4c775 --- /dev/null +++ b/data/maps/SSAnne_1F_Room4/text.inc @@ -0,0 +1,8 @@ +gUnknown_8173B79:: @ 8173B79 + .string "Waiter, I would like a cherry pie,\n" + .string "please!$" + +gUnknown_8173BA4:: @ 8173BA4 + .string "Waitress, I would like a cherry\n" + .string "pie, please!$" + diff --git a/data/maps/SSAnne_1F_Room5/map.json b/data/maps/SSAnne_1F_Room5/map.json new file mode 100644 index 000000000..c32c962d9 --- /dev/null +++ b/data/maps/SSAnne_1F_Room5/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_SSANNE_1F_ROOM5", + "name": "SSAnne_1F_Room5", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SSAnne_1F_Room5_EventScript_160C67", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 10 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room5/scripts.inc b/data/maps/SSAnne_1F_Room5/scripts.inc new file mode 100644 index 000000000..553a72b52 --- /dev/null +++ b/data/maps/SSAnne_1F_Room5/scripts.inc @@ -0,0 +1,7 @@ +SSAnne_1F_Room5_MapScripts:: @ 8160C66 + .byte 0 + +SSAnne_1F_Room5_EventScript_160C67:: @ 8160C67 + trainerbattle 0, 422, 0, Text_173BD1, Text_173BFA + msgbox gUnknown_8173C30, 6 + end diff --git a/data/maps/SSAnne_1F_Room5/text.inc b/data/maps/SSAnne_1F_Room5/text.inc new file mode 100644 index 000000000..09d582707 --- /dev/null +++ b/data/maps/SSAnne_1F_Room5/text.inc @@ -0,0 +1,12 @@ +Text_173BD1:: @ 8173BD1 + .string "You insolent pup!\n" + .string "How dare you barge in!$" + +Text_173BFA:: @ 8173BFA + .string "Humph! You rude child!\n" + .string "You have no sense of courtesy!$" + +gUnknown_8173C30:: @ 8173C30 + .string "I wish to be left alone!\n" + .string "Get out!$" + diff --git a/data/maps/SSAnne_1F_Room6/map.json b/data/maps/SSAnne_1F_Room6/map.json new file mode 100644 index 000000000..8dbbe1e1b --- /dev/null +++ b/data/maps/SSAnne_1F_Room6/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_SSANNE_1F_ROOM6", + "name": "SSAnne_1F_Room6", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "28", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_1F_Room6_EventScript_160DF3", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 12 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room6/scripts.inc b/data/maps/SSAnne_1F_Room6/scripts.inc new file mode 100644 index 000000000..1c6c0004c --- /dev/null +++ b/data/maps/SSAnne_1F_Room6/scripts.inc @@ -0,0 +1,27 @@ +SSAnne_1F_Room6_MapScripts:: @ 8160DF2 + .byte 0 + +SSAnne_1F_Room6_EventScript_160DF3:: @ 8160DF3 + lock + faceplayer + msgbox gUnknown_817445B, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_160E18 + closemessage + call EventScript_1A6C26 + msgbox gUnknown_8174490 + release + end + +EventScript_160E18:: @ 8160E18 + checkplayergender + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_160E2E + msgbox gUnknown_8174515 + release + end + +EventScript_160E2E:: @ 8160E2E + msgbox gUnknown_81744D0 + release + end diff --git a/data/maps/SSAnne_1F_Room6/text.inc b/data/maps/SSAnne_1F_Room6/text.inc new file mode 100644 index 000000000..442992f02 --- /dev/null +++ b/data/maps/SSAnne_1F_Room6/text.inc @@ -0,0 +1,16 @@ +gUnknown_817445B:: @ 817445B + .string "You look tired. Would you like to\n" + .string "take a short rest?$" + +gUnknown_8174490:: @ 8174490 + .string "I'm glad to see that everyone is\n" + .string "looking refreshed and chipper.$" + +gUnknown_81744D0:: @ 81744D0 + .string "Oh, I'm sorry for fussing over you.\n" + .string "You look like my little brother…$" + +gUnknown_8174515:: @ 8174515 + .string "Oh, I'm sorry for fussing over you.\n" + .string "You look like my little sister…$" + diff --git a/data/maps/SSAnne_1F_Room7/map.json b/data/maps/SSAnne_1F_Room7/map.json new file mode 100644 index 000000000..323374027 --- /dev/null +++ b/data/maps/SSAnne_1F_Room7/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_SSANNE_1F_ROOM7", + "name": "SSAnne_1F_Room7", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 4, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SSAnne_1F_Room7_EventScript_160C7F", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 11 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room7/scripts.inc b/data/maps/SSAnne_1F_Room7/scripts.inc new file mode 100644 index 000000000..bc6e0cd88 --- /dev/null +++ b/data/maps/SSAnne_1F_Room7/scripts.inc @@ -0,0 +1,7 @@ +SSAnne_1F_Room7_MapScripts:: @ 8160C7E + .byte 0 + +SSAnne_1F_Room7_EventScript_160C7F:: @ 8160C7F + trainerbattle 0, 421, 0, Text_173C52, Text_173CB4 + msgbox gUnknown_8173CC4, 6 + end diff --git a/data/maps/SSAnne_1F_Room7/text.inc b/data/maps/SSAnne_1F_Room7/text.inc new file mode 100644 index 000000000..d4fed83fb --- /dev/null +++ b/data/maps/SSAnne_1F_Room7/text.inc @@ -0,0 +1,11 @@ +Text_173C52:: @ 8173C52 + .string "I am but a solitary traveler…\p" + .string "My sole companions and friends are\n" + .string "POKéMON I caught on my journeys…$" + +Text_173CB4:: @ 8173CB4 + .string "My, my friends…$" + +gUnknown_8173CC4:: @ 8173CC4 + .string "You should be nice to friends!$" + diff --git a/data/maps/SSAnne_2F_Corridor/map.json b/data/maps/SSAnne_2F_Corridor/map.json new file mode 100644 index 000000000..6dcb6a7ee --- /dev/null +++ b/data/maps/SSAnne_2F_Corridor/map.json @@ -0,0 +1,138 @@ +{ + "id": "MAP_SSANNE_2F_CORRIDOR", + "name": "SSAnne_2F_Corridor", + "layout": "LAYOUT_SSANNE_2F_CORRIDOR", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "72", + "x": 30, + "y": 2, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "61" + }, + { + "graphics_id": "62", + "x": 2, + "y": 7, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Corridor_EventScript_160A54", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 0 + }, + { + "x": 3, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SSANNE_3F_CORRIDOR", + "dest_warp_id": 1 + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SSANNE_CAPTAINS_OFFICE", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM1", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM2", + "dest_warp_id": 0 + }, + { + "x": 14, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM3", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM4", + "dest_warp_id": 0 + }, + { + "x": 22, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM5", + "dest_warp_id": 0 + }, + { + "x": 26, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM6", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 30, + "y": 6, + "elevation": 3, + "var": "VAR_0x405B", + "var_value": 0, + "script": "SSAnne_2F_Corridor_EventScript_1608DF" + }, + { + "type": "trigger", + "x": 31, + "y": 6, + "elevation": 3, + "var": "VAR_0x405B", + "var_value": 0, + "script": "SSAnne_2F_Corridor_EventScript_1608EB" + }, + { + "type": "trigger", + "x": 32, + "y": 6, + "elevation": 3, + "var": "VAR_0x405B", + "var_value": 0, + "script": "SSAnne_2F_Corridor_EventScript_1608F7" + } + ], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Corridor/scripts.inc b/data/maps/SSAnne_2F_Corridor/scripts.inc new file mode 100644 index 000000000..68ead6a96 --- /dev/null +++ b/data/maps/SSAnne_2F_Corridor/scripts.inc @@ -0,0 +1,184 @@ +SSAnne_2F_Corridor_MapScripts:: @ 81608DE + .byte 0 + +SSAnne_2F_Corridor_EventScript_1608DF:: @ 81608DF + lockall + setvar VAR_0x4001, 0 + goto EventScript_160903 + +EventScript_1608EA:: @ 81608EA + end + +SSAnne_2F_Corridor_EventScript_1608EB:: @ 81608EB + lockall + setvar VAR_0x4001, 1 + goto EventScript_160903 + +EventScript_1608F6:: @ 81608F6 + end + +SSAnne_2F_Corridor_EventScript_1608F7:: @ 81608F7 + lockall + setvar VAR_0x4001, 2 + goto EventScript_160903 + +EventScript_160902:: @ 8160902 + end + +EventScript_160903:: @ 8160903 + textcolor 0 + playse SE_KAIDAN + delay 5 + playbgm BGM_FRLG_RIVAL, 0 + addobject 1 + delay 10 + applymovement 1, Movement_1A75ED + waitmovement 0 + delay 20 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_1609AD + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_1609B8 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_1609CA + msgbox gUnknown_8173035 + setvar VAR_LAST_TALKED, 1 + compare_var_to_value VAR_STARTER_MON, 2 + call_if 1, EventScript_1609DC + compare_var_to_value VAR_STARTER_MON, 1 + call_if 1, EventScript_1609E7 + compare_var_to_value VAR_STARTER_MON, 0 + call_if 1, EventScript_1609F2 + msgbox gUnknown_8173164 + closemessage + delay 10 + playbgm BGM_FRLG_RIVAL_POSTBATTLE, 0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_1609FD + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_160A08 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_160A13 + fadedefaultbgm + removeobject 1 + setvar VAR_0x405B, 1 + releaseall + end + +EventScript_1609AD:: @ 81609AD + applymovement 1, Movement_160A2A + waitmovement 0 + return + +EventScript_1609B8:: @ 81609B8 + applymovement 1, Movement_160A2E + applymovement 255, Movement_160A24 + waitmovement 0 + return + +EventScript_1609CA:: @ 81609CA + applymovement 255, Movement_160A1E + applymovement 1, Movement_160A34 + waitmovement 0 + return + +EventScript_1609DC:: @ 81609DC + trainerbattle 3, 426, 0, Text_173110 + return + +EventScript_1609E7:: @ 81609E7 + trainerbattle 3, 427, 0, Text_173110 + return + +EventScript_1609F2:: @ 81609F2 + trainerbattle 3, 428, 0, Text_173110 + return + +EventScript_1609FD:: @ 81609FD + applymovement 1, Movement_160A3B + waitmovement 0 + return + +EventScript_160A08:: @ 8160A08 + applymovement 1, Movement_160A44 + waitmovement 0 + return + +EventScript_160A13:: @ 8160A13 + applymovement 1, Movement_160A4C + waitmovement 0 + return + +Movement_160A1E:: @ 8160A1E + step_1c + step_1c + step_1c + step_1c + step_2f + step_end + +Movement_160A24:: @ 8160A24 + step_1c + step_1c + step_1c + step_1c + step_2f + step_end + +Movement_160A2A:: @ 8160A2A + step_10 + step_10 + step_10 + step_end + +Movement_160A2E:: @ 8160A2E + step_10 + step_10 + step_10 + step_10 + step_30 + step_end + +Movement_160A34:: @ 8160A34 + step_10 + step_10 + step_10 + step_10 + step_13 + step_1a + step_end + +Movement_160A3B:: @ 8160A3B + step_13 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +Movement_160A44:: @ 8160A44 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +Movement_160A4C:: @ 8160A4C + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end + +SSAnne_2F_Corridor_EventScript_160A54:: @ 8160A54 + msgbox gUnknown_8172FC3, 2 + end diff --git a/data/maps/SSAnne_2F_Corridor/text.inc b/data/maps/SSAnne_2F_Corridor/text.inc new file mode 100644 index 000000000..fde6846f2 --- /dev/null +++ b/data/maps/SSAnne_2F_Corridor/text.inc @@ -0,0 +1,37 @@ +gUnknown_8172FC3:: @ 8172FC3 + .string "This ship, she is a luxury liner for\n" + .string "TRAINERS of the world!\p" + .string "At every port, we hold parties with\n" + .string "invited TRAINERS.$" + +gUnknown_8173035:: @ 8173035 + .string "{RIVAL}: Bonjour!\n" + .string "{PLAYER}!\p" + .string "Imagine seeing you here!\n" + .string "{PLAYER}, were you really invited?\p" + .string "So how's your POKéDEX coming?\p" + .string "I already caught 40 kinds, pal.\n" + .string "Different kinds are everywhere.\p" + .string "Crawl around in grassy areas, and\n" + .string "look hard for them.$" + +Text_173110:: @ 8173110 + .string "Humph!\p" + .string "At least you're raising your\n" + .string "POKéMON!$" + +Text_17313D:: @ 817313D + .string "{PLAYER}‥!\n" + .string "ふなよい してるのか!\p" + .string "もっと からだ\n" + .string "きたえた ほうが いいぜ!$" + +gUnknown_8173164:: @ 8173164 + .string "{RIVAL}: I heard there was a CUT\n" + .string "master on board.\p" + .string "But he was just a seasick old man!\p" + .string "CUT itself is really useful.\n" + .string "Yup, it'll be handy.\p" + .string "You should go see him, too.\n" + .string "Smell ya!$" + diff --git a/data/maps/SSAnne_2F_Room1/map.json b/data/maps/SSAnne_2F_Room1/map.json new file mode 100644 index 000000000..10f3c8604 --- /dev/null +++ b/data/maps/SSAnne_2F_Room1/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_SSANNE_2F_ROOM1", + "name": "SSAnne_2F_Room1", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Room1_EventScript_160C97", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room1/scripts.inc b/data/maps/SSAnne_2F_Room1/scripts.inc new file mode 100644 index 000000000..f3dc1f136 --- /dev/null +++ b/data/maps/SSAnne_2F_Room1/scripts.inc @@ -0,0 +1,15 @@ +SSAnne_2F_Room1_MapScripts:: @ 8160C96 + .byte 0 + +SSAnne_2F_Room1_EventScript_160C97:: @ 8160C97 + lock + faceplayer + message Text_173CE3 + waitmessage + setvar VAR_0x8004, SPECIES_SNORLAX + special sub_80CBDCC + drawmonpic SPECIES_SNORLAX, 10, 3 + waitbuttonpress + erasemonpic + release + end diff --git a/data/maps/SSAnne_2F_Room1/text.inc b/data/maps/SSAnne_2F_Room1/text.inc new file mode 100644 index 000000000..5a18af424 --- /dev/null +++ b/data/maps/SSAnne_2F_Room1/text.inc @@ -0,0 +1,6 @@ +Text_173CE3:: @ 8173CE3 + .string "I've journeyed far and wide, but in\n" + .string "all my travels I've never seen\l" + .string "any POKéMON sleep like this one!\p" + .string "It was something like this!$" + diff --git a/data/maps/SSAnne_2F_Room2/map.json b/data/maps/SSAnne_2F_Room2/map.json new file mode 100644 index 000000000..5fe5c9ff2 --- /dev/null +++ b/data/maps/SSAnne_2F_Room2/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_SSANNE_2F_ROOM2", + "name": "SSAnne_2F_Room2", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "57", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SSAnne_2F_Room2_EventScript_160CB1", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SSAnne_2F_Room2_EventScript_160CC8", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 3, + "y": 3, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Room2_EventScript_1BE66B", + "flag": "357" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room2/scripts.inc b/data/maps/SSAnne_2F_Room2/scripts.inc new file mode 100644 index 000000000..cb18a010a --- /dev/null +++ b/data/maps/SSAnne_2F_Room2/scripts.inc @@ -0,0 +1,12 @@ +SSAnne_2F_Room2_MapScripts:: @ 8160CB0 + .byte 0 + +SSAnne_2F_Room2_EventScript_160CB1:: @ 8160CB1 + trainerbattle 0, 223, 0, Text_173DDB, Text_173DF7 + msgbox gUnknown_8173E04, 6 + end + +SSAnne_2F_Room2_EventScript_160CC8:: @ 8160CC8 + trainerbattle 0, 482, 0, Text_173D63, Text_173D92 + msgbox gUnknown_8173DB6, 6 + end diff --git a/data/maps/SSAnne_2F_Room2/text.inc b/data/maps/SSAnne_2F_Room2/text.inc new file mode 100644 index 000000000..a931a8e47 --- /dev/null +++ b/data/maps/SSAnne_2F_Room2/text.inc @@ -0,0 +1,23 @@ +Text_173D63:: @ 8173D63 + .string "Competing against the young keeps\n" + .string "me youthful.$" + +Text_173D92:: @ 8173D92 + .string "Good match!\n" + .string "Ah, I feel young again!$" + +gUnknown_8173DB6:: @ 8173DB6 + .string "Fifteen years ago, I would\n" + .string "have won!$" + +Text_173DDB:: @ 8173DDB + .string "Check out what I fished up!$" + +Text_173DF7:: @ 8173DF7 + .string "I'm all out!$" + +gUnknown_8173E04:: @ 8173E04 + .string "Party?\p" + .string "The cruise ship's party should be\n" + .string "over by now.$" + diff --git a/data/maps/SSAnne_2F_Room3/map.json b/data/maps/SSAnne_2F_Room3/map.json new file mode 100644 index 000000000..7241e3d01 --- /dev/null +++ b/data/maps/SSAnne_2F_Room3/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SSANNE_2F_ROOM3", + "name": "SSAnne_2F_Room3", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Room3_EventScript_160CE0", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Room3_EventScript_160CE9", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room3/scripts.inc b/data/maps/SSAnne_2F_Room3/scripts.inc new file mode 100644 index 000000000..577503151 --- /dev/null +++ b/data/maps/SSAnne_2F_Room3/scripts.inc @@ -0,0 +1,10 @@ +SSAnne_2F_Room3_MapScripts:: @ 8160CDF + .byte 0 + +SSAnne_2F_Room3_EventScript_160CE0:: @ 8160CE0 + msgbox gUnknown_8173E3A, 2 + end + +SSAnne_2F_Room3_EventScript_160CE9:: @ 8160CE9 + msgbox gUnknown_8173E7B, 2 + end diff --git a/data/maps/SSAnne_2F_Room3/text.inc b/data/maps/SSAnne_2F_Room3/text.inc new file mode 100644 index 000000000..c87c96ae0 --- /dev/null +++ b/data/maps/SSAnne_2F_Room3/text.inc @@ -0,0 +1,12 @@ +gUnknown_8173E3A:: @ 8173E3A + .string "Ah, yes, I have seen some POKéMON\n" + .string "ferry people across the water!$" + +gUnknown_8173E7B:: @ 8173E7B + .string "Small trees can be chopped down\n" + .string "using the move CUT.\p" + .string "But remember this!\n" + .string "CUT is an HM technique.\p" + .string "Once learned, it is not so easily\n" + .string "discarded.$" + diff --git a/data/maps/SSAnne_2F_Room4/map.json b/data/maps/SSAnne_2F_Room4/map.json new file mode 100644 index 000000000..54ed72c44 --- /dev/null +++ b/data/maps/SSAnne_2F_Room4/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_SSANNE_2F_ROOM4", + "name": "SSAnne_2F_Room4", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 0, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SSAnne_2F_Room4_EventScript_160CF3", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SSAnne_2F_Room4_EventScript_160D0A", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Room4_EventScript_1BE678", + "flag": "358" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room4/scripts.inc b/data/maps/SSAnne_2F_Room4/scripts.inc new file mode 100644 index 000000000..26efb8bd5 --- /dev/null +++ b/data/maps/SSAnne_2F_Room4/scripts.inc @@ -0,0 +1,12 @@ +SSAnne_2F_Room4_MapScripts:: @ 8160CF2 + .byte 0 + +SSAnne_2F_Room4_EventScript_160CF3:: @ 8160CF3 + trainerbattle 0, 483, 0, Text_173F07, Text_173F42 + msgbox gUnknown_8173F55, 6 + end + +SSAnne_2F_Room4_EventScript_160D0A:: @ 8160D0A + trainerbattle 0, 127, 0, Text_173F83, Text_173FAB + msgbox gUnknown_8173FB9, 6 + end diff --git a/data/maps/SSAnne_2F_Room4/text.inc b/data/maps/SSAnne_2F_Room4/text.inc new file mode 100644 index 000000000..69e7a7b0d --- /dev/null +++ b/data/maps/SSAnne_2F_Room4/text.inc @@ -0,0 +1,22 @@ +Text_173F07:: @ 8173F07 + .string "Which do you find more worthy,\n" + .string "a strong or a rare POKéMON?$" + +Text_173F42:: @ 8173F42 + .string "I must salute you!$" + +gUnknown_8173F55:: @ 8173F55 + .string "Personally, I prefer strong and\n" + .string "rare POKéMON.$" + +Text_173F83:: @ 8173F83 + .string "I don't believe I saw you at the\n" + .string "party?$" + +Text_173FAB:: @ 8173FAB + .string "Take it easy!$" + +gUnknown_8173FB9:: @ 8173FB9 + .string "Oh, I adore your strong POKéMON!\n" + .string "Oh, how I envy you for them!$" + diff --git a/data/maps/SSAnne_2F_Room5/map.json b/data/maps/SSAnne_2F_Room5/map.json new file mode 100644 index 000000000..3512aa723 --- /dev/null +++ b/data/maps/SSAnne_2F_Room5/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SSANNE_2F_ROOM5", + "name": "SSAnne_2F_Room5", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Room5_EventScript_160D22", + "flag": "0" + }, + { + "graphics_id": "16", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Room5_EventScript_160D2B", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": 7 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room5/scripts.inc b/data/maps/SSAnne_2F_Room5/scripts.inc new file mode 100644 index 000000000..fb835d315 --- /dev/null +++ b/data/maps/SSAnne_2F_Room5/scripts.inc @@ -0,0 +1,10 @@ +SSAnne_2F_Room5_MapScripts:: @ 8160D21 + .byte 0 + +SSAnne_2F_Room5_EventScript_160D22:: @ 8160D22 + msgbox gUnknown_8173FF7, 2 + end + +SSAnne_2F_Room5_EventScript_160D2B:: @ 8160D2B + msgbox gUnknown_817404F, 2 + end diff --git a/data/maps/SSAnne_2F_Room5/text.inc b/data/maps/SSAnne_2F_Room5/text.inc new file mode 100644 index 000000000..75d44d3a5 --- /dev/null +++ b/data/maps/SSAnne_2F_Room5/text.inc @@ -0,0 +1,11 @@ +gUnknown_8173FF7:: @ 8173FF7 + .string "Have you gone to the SAFARI ZONE\n" + .string "in FUCHSIA CITY?\p" + .string "There are many kinds of rare\n" + .string "POKéMON.$" + +gUnknown_817404F:: @ 817404F + .string "Me and my daddy think the SAFARI\n" + .string "ZONE is awesome!\l" + .string "I wish we could go there again.$" + diff --git a/data/maps/SSAnne_2F_Room6/map.json b/data/maps/SSAnne_2F_Room6/map.json new file mode 100644 index 000000000..7b2d2666e --- /dev/null +++ b/data/maps/SSAnne_2F_Room6/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SSANNE_2F_ROOM6", + "name": "SSAnne_2F_Room6", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "31", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Room6_EventScript_160D3E", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_2F_Room6_EventScript_160D35", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": 8 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room6/scripts.inc b/data/maps/SSAnne_2F_Room6/scripts.inc new file mode 100644 index 000000000..2fb6544da --- /dev/null +++ b/data/maps/SSAnne_2F_Room6/scripts.inc @@ -0,0 +1,10 @@ +SSAnne_2F_Room6_MapScripts:: @ 8160D34 + .byte 0 + +SSAnne_2F_Room6_EventScript_160D35:: @ 8160D35 + msgbox gUnknown_81740A1, 2 + end + +SSAnne_2F_Room6_EventScript_160D3E:: @ 8160D3E + msgbox gUnknown_81740D6, 2 + end diff --git a/data/maps/SSAnne_2F_Room6/text.inc b/data/maps/SSAnne_2F_Room6/text.inc new file mode 100644 index 000000000..6f5b0abff --- /dev/null +++ b/data/maps/SSAnne_2F_Room6/text.inc @@ -0,0 +1,7 @@ +gUnknown_81740A1:: @ 81740A1 + .string "The CAPTAIN said he's awfully sick.\n" + .string "He was all pale.$" + +gUnknown_81740D6:: @ 81740D6 + .string "I hear many people get seasick.$" + diff --git a/data/maps/SSAnne_3F_Corridor/map.json b/data/maps/SSAnne_3F_Corridor/map.json new file mode 100644 index 000000000..c34977686 --- /dev/null +++ b/data/maps/SSAnne_3F_Corridor/map.json @@ -0,0 +1,55 @@ +{ + "id": "MAP_SSANNE_3F_CORRIDOR", + "name": "SSAnne_3F_Corridor", + "layout": "LAYOUT_SSANNE_3F_CORRIDOR", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "62", + "x": 10, + "y": 4, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_3F_Corridor_EventScript_160A5E", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SSANNE_DECK", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": 1 + }, + { + "x": 0, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SSANNE_DECK", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_3F_Corridor/scripts.inc b/data/maps/SSAnne_3F_Corridor/scripts.inc new file mode 100644 index 000000000..b4f61fe75 --- /dev/null +++ b/data/maps/SSAnne_3F_Corridor/scripts.inc @@ -0,0 +1,6 @@ +SSAnne_3F_Corridor_MapScripts:: @ 8160A5D + .byte 0 + +SSAnne_3F_Corridor_EventScript_160A5E:: @ 8160A5E + msgbox gUnknown_817320C, 2 + end diff --git a/data/maps/SSAnne_3F_Corridor/text.inc b/data/maps/SSAnne_3F_Corridor/text.inc new file mode 100644 index 000000000..7d4a71bb4 --- /dev/null +++ b/data/maps/SSAnne_3F_Corridor/text.inc @@ -0,0 +1,6 @@ +gUnknown_817320C:: @ 817320C + .string "Our CAPTAIN is a sword master.\n" + .string "He's awesome at using CUT.\p" + .string "They say he even teaches CUT\n" + .string "to POKéMON!$" + diff --git a/data/maps/SSAnne_B1F_Corridor/map.json b/data/maps/SSAnne_B1F_Corridor/map.json new file mode 100644 index 000000000..9accdb250 --- /dev/null +++ b/data/maps/SSAnne_B1F_Corridor/map.json @@ -0,0 +1,72 @@ +{ + "id": "MAP_SSANNE_B1F_CORRIDOR", + "name": "SSAnne_B1F_Corridor", + "layout": "LAYOUT_SSANNE_B1F_CORRIDOR", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 19, + "y": 3, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 5 + }, + { + "x": 2, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM1", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM2", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM3", + "dest_warp_id": 0 + }, + { + "x": 14, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM4", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM5", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 21, + "y": 5, + "elevation": 3, + "item": "ITEM_HYPER_POTION", + "flag": "8", + "unknown": 1 + } + ] +} diff --git a/data/maps/SSAnne_B1F_Corridor/scripts.inc b/data/maps/SSAnne_B1F_Corridor/scripts.inc new file mode 100644 index 000000000..be04386e6 --- /dev/null +++ b/data/maps/SSAnne_B1F_Corridor/scripts.inc @@ -0,0 +1,2 @@ +SSAnne_B1F_Corridor_MapScripts:: @ 8160A67 + .byte 0 diff --git a/data/maps/SSAnne_B1F_Room1/map.json b/data/maps/SSAnne_B1F_Room1/map.json new file mode 100644 index 000000000..87ea2dc4c --- /dev/null +++ b/data/maps/SSAnne_B1F_Room1/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM1", + "name": "SSAnne_B1F_Room1", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "57", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SSAnne_B1F_Room1_EventScript_160D48", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SSAnne_B1F_Room1_EventScript_160D5F", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room1/scripts.inc b/data/maps/SSAnne_B1F_Room1/scripts.inc new file mode 100644 index 000000000..ec931102e --- /dev/null +++ b/data/maps/SSAnne_B1F_Room1/scripts.inc @@ -0,0 +1,12 @@ +SSAnne_B1F_Room1_MapScripts:: @ 8160D47 + .byte 0 + +SSAnne_B1F_Room1_EventScript_160D48:: @ 8160D48 + trainerbattle 0, 224, 0, Text_174177, Text_1741EF + msgbox gUnknown_817420E, 6 + end + +SSAnne_B1F_Room1_EventScript_160D5F:: @ 8160D5F + trainerbattle 0, 140, 0, Text_1740F6, Text_174123 + msgbox gUnknown_817413A, 6 + end diff --git a/data/maps/SSAnne_B1F_Room1/text.inc b/data/maps/SSAnne_B1F_Room1/text.inc new file mode 100644 index 000000000..2802e4a84 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room1/text.inc @@ -0,0 +1,26 @@ +Text_1740F6:: @ 81740F6 + .string "Matey, you're walking the plank if\n" + .string "you lose!$" + +Text_174123:: @ 8174123 + .string "Argh!\n" + .string "Beaten by a kid!$" + +gUnknown_817413A:: @ 817413A + .string "When we're out at sea, jellyfish\n" + .string "POKéMON sometimes drift by.$" + +Text_174177:: @ 8174177 + .string "Hello, stranger!\p" + .string "I can't tell if you're from the seas\n" + .string "or mountains, but stop and chat.\p" + .string "All my POKéMON are from the sea.$" + +Text_1741EF:: @ 81741EF + .string "Darn!\n" + .string "I let that one get away!$" + +gUnknown_817420E:: @ 817420E + .string "I was going to make you my\n" + .string "assistant, too!$" + diff --git a/data/maps/SSAnne_B1F_Room2/map.json b/data/maps/SSAnne_B1F_Room2/map.json new file mode 100644 index 000000000..0f1d75d5f --- /dev/null +++ b/data/maps/SSAnne_B1F_Room2/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM2", + "name": "SSAnne_B1F_Room2", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "62", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SSAnne_B1F_Room2_EventScript_160D77", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_B1F_Room2_EventScript_1BE685", + "flag": "359" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room2/scripts.inc b/data/maps/SSAnne_B1F_Room2/scripts.inc new file mode 100644 index 000000000..71acf74be --- /dev/null +++ b/data/maps/SSAnne_B1F_Room2/scripts.inc @@ -0,0 +1,7 @@ +SSAnne_B1F_Room2_MapScripts:: @ 8160D76 + .byte 0 + +SSAnne_B1F_Room2_EventScript_160D77:: @ 8160D77 + trainerbattle 0, 138, 0, Text_174239, Text_17425C + msgbox gUnknown_8174272, 6 + end diff --git a/data/maps/SSAnne_B1F_Room2/text.inc b/data/maps/SSAnne_B1F_Room2/text.inc new file mode 100644 index 000000000..df94d6351 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room2/text.inc @@ -0,0 +1,10 @@ +Text_174239:: @ 8174239 + .string "Even us sailors have POKéMON, too!$" + +Text_17425C:: @ 817425C + .string "Okay, you're not bad.$" + +gUnknown_8174272:: @ 8174272 + .string "We caught all our POKéMON while\n" + .string "we were out at sea.$" + diff --git a/data/maps/SSAnne_B1F_Room3/map.json b/data/maps/SSAnne_B1F_Room3/map.json new file mode 100644 index 000000000..bb99ece2f --- /dev/null +++ b/data/maps/SSAnne_B1F_Room3/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM3", + "name": "SSAnne_B1F_Room3", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "62", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SSAnne_B1F_Room3_EventScript_160D8F", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_B1F_Room3_EventScript_1BE692", + "flag": "360" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room3/scripts.inc b/data/maps/SSAnne_B1F_Room3/scripts.inc new file mode 100644 index 000000000..3a1ff97c6 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room3/scripts.inc @@ -0,0 +1,7 @@ +SSAnne_B1F_Room3_MapScripts:: @ 8160D8E + .byte 0 + +SSAnne_B1F_Room3_EventScript_160D8F:: @ 8160D8F + trainerbattle 0, 139, 0, Text_1742A6, Text_1742C3 + msgbox gUnknown_81742D2, 6 + end diff --git a/data/maps/SSAnne_B1F_Room3/text.inc b/data/maps/SSAnne_B1F_Room3/text.inc new file mode 100644 index 000000000..f74b96052 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room3/text.inc @@ -0,0 +1,11 @@ +Text_1742A6:: @ 81742A6 + .string "I like feisty kids like you!$" + +Text_1742C3:: @ 81742C3 + .string "Argh!\n" + .string "Lost it!$" + +gUnknown_81742D2:: @ 81742D2 + .string "Sea POKéMON live in deep water.\n" + .string "You'll need a ROD to fish them up!$" + diff --git a/data/maps/SSAnne_B1F_Room4/map.json b/data/maps/SSAnne_B1F_Room4/map.json new file mode 100644 index 000000000..a587f56b3 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room4/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM4", + "name": "SSAnne_B1F_Room4", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "62", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SSAnne_B1F_Room4_EventScript_160DBE", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SSAnne_B1F_Room4_EventScript_160DA7", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room4/scripts.inc b/data/maps/SSAnne_B1F_Room4/scripts.inc new file mode 100644 index 000000000..02860ab54 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room4/scripts.inc @@ -0,0 +1,12 @@ +SSAnne_B1F_Room4_MapScripts:: @ 8160DA6 + .byte 0 + +SSAnne_B1F_Room4_EventScript_160DA7:: @ 8160DA7 + trainerbattle 0, 136, 0, Text_174315, Text_174348 + msgbox gUnknown_8174362, 6 + end + +SSAnne_B1F_Room4_EventScript_160DBE:: @ 8160DBE + trainerbattle 0, 137, 0, Text_174385, Text_1743B3 + msgbox gUnknown_81743C8, 6 + end diff --git a/data/maps/SSAnne_B1F_Room4/text.inc b/data/maps/SSAnne_B1F_Room4/text.inc new file mode 100644 index 000000000..d2f19f49f --- /dev/null +++ b/data/maps/SSAnne_B1F_Room4/text.inc @@ -0,0 +1,23 @@ +Text_174315:: @ 8174315 + .string "You know what they say about\n" + .string "sailors and battling!$" + +Text_174348:: @ 8174348 + .string "Right!\n" + .string "Good battle, mate!$" + +gUnknown_8174362:: @ 8174362 + .string "Hahaha!\n" + .string "Want to be a sailor, mate?$" + +Text_174385:: @ 8174385 + .string "Come on, then!\n" + .string "My sailor's pride is at stake!$" + +Text_1743B3:: @ 81743B3 + .string "Your spirit sank me!$" + +gUnknown_81743C8:: @ 81743C8 + .string "Did you see the FISHING GURU in\n" + .string "VERMILION CITY?$" + diff --git a/data/maps/SSAnne_B1F_Room5/map.json b/data/maps/SSAnne_B1F_Room5/map.json new file mode 100644 index 000000000..0ea2a8747 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room5/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM5", + "name": "SSAnne_B1F_Room5", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "19", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_B1F_Room5_EventScript_160DD6", + "flag": "0" + }, + { + "graphics_id": "134", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_B1F_Room5_EventScript_160DDF", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 2, + "y": 2, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_B1F_Room5_EventScript_1BE69F", + "flag": "361" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room5/scripts.inc b/data/maps/SSAnne_B1F_Room5/scripts.inc new file mode 100644 index 000000000..c449d1164 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room5/scripts.inc @@ -0,0 +1,16 @@ +SSAnne_B1F_Room5_MapScripts:: @ 8160DD5 + .byte 0 + +SSAnne_B1F_Room5_EventScript_160DD6:: @ 8160DD6 + msgbox gUnknown_81743F8, 2 + end + +SSAnne_B1F_Room5_EventScript_160DDF:: @ 8160DDF + lock + faceplayer + waitse + playmoncry SPECIES_MACHOKE, 0 + msgbox gUnknown_8174444 + waitmoncry + release + end diff --git a/data/maps/SSAnne_B1F_Room5/text.inc b/data/maps/SSAnne_B1F_Room5/text.inc new file mode 100644 index 000000000..ac30dbe95 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room5/text.inc @@ -0,0 +1,8 @@ +gUnknown_81743F8:: @ 81743F8 + .string "My buddy MACHOKE is super strong!\p" + .string "He has enough STRENGTH to move\n" + .string "big rocks!$" + +gUnknown_8174444:: @ 8174444 + .string "MACHOKE: Gwoh! Goggoh!$" + diff --git a/data/maps/SSAnne_CaptainsOffice/map.json b/data/maps/SSAnne_CaptainsOffice/map.json new file mode 100644 index 000000000..9870b5f09 --- /dev/null +++ b/data/maps/SSAnne_CaptainsOffice/map.json @@ -0,0 +1,63 @@ +{ + "id": "MAP_SSANNE_CAPTAINS_OFFICE", + "name": "SSAnne_CaptainsOffice", + "layout": "LAYOUT_SSANNE_CAPTAINS_OFFICE", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "63", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_CaptainsOffice_EventScript_160B3A", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 2, + "y": 4, + "elevation": 0, + "script": "SSAnne_CaptainsOffice_EventScript_160BD2" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 3, + "elevation": 0, + "script": "SSAnne_CaptainsOffice_EventScript_160BC9" + }, + { + "type": "bg_event_type_0", + "x": 2, + "y": 3, + "elevation": 0, + "script": "SSAnne_CaptainsOffice_EventScript_160BD2" + } + ] +} diff --git a/data/maps/SSAnne_CaptainsOffice/scripts.inc b/data/maps/SSAnne_CaptainsOffice/scripts.inc new file mode 100644 index 000000000..32ab8b95c --- /dev/null +++ b/data/maps/SSAnne_CaptainsOffice/scripts.inc @@ -0,0 +1,48 @@ +SSAnne_CaptainsOffice_MapScripts:: @ 8160B39 + .byte 0 + +SSAnne_CaptainsOffice_EventScript_160B3A:: @ 8160B3A + lock + checkflag FLAG_0x237 + goto_if_eq EventScript_160BB5 + msgbox gUnknown_8173646 + textcolor 3 + message Text_173676 + waitmessage + playfanfare MUS_ME_ASA + waitfanfare + call EventScript_1A6675 + delay 50 + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81736A6 + additem ITEM_HM01, 1 + giveitemfanfaremsg gUnknown_81737AF, ITEM_HM01, 1, BGM_FRLG_ME_KEYITEM + msgbox gUnknown_81737D2 + setflag FLAG_0x237 + setvar VAR_MAP_SCENE_VERMILION_CITY, 1 + release + end + +EventScript_160BA0:: @ 8160BA0 + msgbox gUnknown_81738C3 + closemessage + applymovement 1, Movement_1A75E5 + waitmovement 0 + release + end + +EventScript_160BB5:: @ 8160BB5 + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_8173831 + release + end + +SSAnne_CaptainsOffice_EventScript_160BC9:: @ 8160BC9 + msgbox gUnknown_81738E6, 3 + end + +SSAnne_CaptainsOffice_EventScript_160BD2:: @ 8160BD2 + msgbox gUnknown_8173903, 3 + end diff --git a/data/maps/SSAnne_CaptainsOffice/text.inc b/data/maps/SSAnne_CaptainsOffice/text.inc new file mode 100644 index 000000000..eab68b9bd --- /dev/null +++ b/data/maps/SSAnne_CaptainsOffice/text.inc @@ -0,0 +1,53 @@ +gUnknown_8173646:: @ 8173646 + .string "CAPTAIN: Ooargh…\n" + .string "I feel hideous…\l" + .string "Urrp! Seasick…$" + +Text_173676:: @ 8173676 + .string "{PLAYER} rubbed the CAPTAIN's\n" + .string "back!\p" + .string "Rub-rub…\n" + .string "Rub-rub…$" + +gUnknown_81736A6:: @ 81736A6 + .string "CAPTAIN: Whew! Thank you!\n" + .string "I'm feeling much better now.\p" + .string "You want to see my hidden CUT\n" + .string "technique?\p" + .string "I could show you my prized CUT\n" + .string "technique if I weren't so ill…\p" + .string "I know! You can have this!\n" + .string "This HIDDEN MACHINE!\p" + .string "Teach CUT to your POKéMON, and\n" + .string "you can see it CUT anytime!$" + +gUnknown_81737AF:: @ 81737AF + .string "{PLAYER} obtained HM01\n" + .string "from the CAPTAIN!$" + +gUnknown_81737D2:: @ 81737D2 + .string "Using CUT, you can chop down\n" + .string "small trees.\p" + .string "Why not try it with the trees\n" + .string "around VERMILION CITY?$" + +gUnknown_8173831:: @ 8173831 + .string "CAPTAIN: …Whew!\p" + .string "Now that I'm not sick anymore,\n" + .string "I guess it's time.\p" + .string "The S.S. ANNE will set sail soon!\p" + .string "Farewell, until our return to\n" + .string "VERMILION CITY!$" + +gUnknown_81738C3:: @ 81738C3 + .string "Oh, no!\n" + .string "You have no room for this!$" + +gUnknown_81738E6:: @ 81738E6 + .string "Yuck!\n" + .string "Shouldn't have looked!$" + +gUnknown_8173903:: @ 8173903 + .string "How to Conquer Seasickness…\n" + .string "The CAPTAIN's reading this!$" + diff --git a/data/maps/SSAnne_Deck/map.json b/data/maps/SSAnne_Deck/map.json new file mode 100644 index 000000000..d4bf928af --- /dev/null +++ b/data/maps/SSAnne_Deck/map.json @@ -0,0 +1,100 @@ +{ + "id": "MAP_SSANNE_DECK", + "name": "SSAnne_Deck", + "layout": "LAYOUT_SSANNE_DECK", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "62", + "x": 12, + "y": 10, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SSAnne_Deck_EventScript_160A9B", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 14, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Deck_EventScript_160A72", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 13, + "y": 13, + "elevation": 3, + "movement_type": "27", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Deck_EventScript_160A7B", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 6, + "y": 9, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SSAnne_Deck_EventScript_160A84", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Deck_EventScript_160A69", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 16, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SSANNE_3F_CORRIDOR", + "dest_warp_id": 0 + }, + { + "x": 16, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SSANNE_3F_CORRIDOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_Deck/scripts.inc b/data/maps/SSAnne_Deck/scripts.inc new file mode 100644 index 000000000..3f835e568 --- /dev/null +++ b/data/maps/SSAnne_Deck/scripts.inc @@ -0,0 +1,24 @@ +SSAnne_Deck_MapScripts:: @ 8160A68 + .byte 0 + +SSAnne_Deck_EventScript_160A69:: @ 8160A69 + msgbox gUnknown_817326F, 2 + end + +SSAnne_Deck_EventScript_160A72:: @ 8160A72 + msgbox gUnknown_81732C6, 2 + end + +SSAnne_Deck_EventScript_160A7B:: @ 8160A7B + msgbox gUnknown_81732A2, 2 + end + +SSAnne_Deck_EventScript_160A84:: @ 8160A84 + trainerbattle 0, 134, 0, Text_173308, Text_17332B + msgbox gUnknown_817333E, 6 + end + +SSAnne_Deck_EventScript_160A9B:: @ 8160A9B + trainerbattle 0, 135, 0, Text_173382, Text_1733A0 + msgbox gUnknown_81733B5, 6 + end diff --git a/data/maps/SSAnne_Deck/text.inc b/data/maps/SSAnne_Deck/text.inc new file mode 100644 index 000000000..08be9fc7d --- /dev/null +++ b/data/maps/SSAnne_Deck/text.inc @@ -0,0 +1,35 @@ +gUnknown_817326F:: @ 817326F + .string "The party's over.\n" + .string "The ship will be departing soon.$" + +gUnknown_81732A2:: @ 81732A2 + .string "Whew!\n" + .string "Scrubbing decks is hard work!$" + +gUnknown_81732C6:: @ 81732C6 + .string "Urf… I feel ill…\p" + .string "I got seasick, so I stepped out to\n" + .string "get some air…$" + +Text_173308:: @ 8173308 + .string "Hey, matey!\p" + .string "Let's do a little jig!$" + +Text_17332B:: @ 817332B + .string "You're impressive!$" + +gUnknown_817333E:: @ 817333E + .string "How many kinds of POKéMON do you\n" + .string "think there are in this big world?$" + +Text_173382:: @ 8173382 + .string "Ahoy, there!\n" + .string "Are you seasick?$" + +Text_1733A0:: @ 81733A0 + .string "I was just careless!$" + +gUnknown_81733B5:: @ 81733B5 + .string "My pa said there are 100 kinds of\n" + .string "POKéMON. I think there are more.$" + diff --git a/data/maps/SSAnne_Exterior/map.json b/data/maps/SSAnne_Exterior/map.json new file mode 100644 index 000000000..4694c1520 --- /dev/null +++ b/data/maps/SSAnne_Exterior/map.json @@ -0,0 +1,79 @@ +{ + "id": "MAP_SSANNE_EXTERIOR", + "name": "SSAnne_Exterior", + "layout": "LAYOUT_SSANNE_EXTERIOR", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "151", + "x": 30, + "y": 16, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "135" + } + ], + "warp_events": [ + { + "x": 31, + "y": 5, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 0 + }, + { + "x": 32, + "y": 5, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 1 + }, + { + "x": 32, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 2 + }, + { + "x": 33, + "y": 15, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 3 + }, + { + "x": 33, + "y": 5, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 58, + "y": 28, + "elevation": 3, + "item": "ITEM_LAVA_COOKIE", + "flag": "190", + "unknown": 1 + } + ] +} diff --git a/data/maps/SSAnne_Exterior/scripts.inc b/data/maps/SSAnne_Exterior/scripts.inc new file mode 100644 index 000000000..b0112c459 --- /dev/null +++ b/data/maps/SSAnne_Exterior/scripts.inc @@ -0,0 +1,67 @@ +SSAnne_Exterior_MapScripts:: @ 8160840 + map_script 3, SSAnne_Exterior_MapScript1_16084B + map_script 2, SSAnne_Exterior_MapScript2_16084F + .byte 0 + +SSAnne_Exterior_MapScript1_16084B:: @ 816084B + setworldmapflag FLAG_WORLD_MAP_SSANNE_EXTERIOR + end + +SSAnne_Exterior_MapScript2_16084F:: @ 816084F + map_script_2 VAR_MAP_SCENE_VERMILION_CITY, 1, SSAnne_Exterior_160859 + .2byte 0 + +SSAnne_Exterior_160859:: @ 8160859 + lockall + getplayerxy VAR_0x8004, VAR_0x8005 + compare_var_to_value VAR_0x8005, 6 + call_if 3, EventScript_1608A1 + compare_var_to_value VAR_0x8005, 7 + call_if 4, EventScript_1608AC + fadenewbgm BGM_FRLG_SURF + delay 50 + special Special_SSAnneDepartureCutscene + waitstate + removeobject 1 + applymovement 255, Movement_1608B7 + waitmovement 0 + setvar VAR_MAP_SCENE_VERMILION_CITY, 2 + setvar VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER, 0 + warp MAP_VERMILION_CITY, 255, 23, 34 + waitstate + releaseall + end + +EventScript_1608A1:: @ 81608A1 + applymovement 255, Movement_1608C1 + waitmovement 0 + return + +EventScript_1608AC:: @ 81608AC + applymovement 255, Movement_1A75ED + waitmovement 0 + return + +Movement_1608B7:: @ 81608B7 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_11 + step_end + +Movement_1608C1:: @ 81608C1 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_10 + step_end diff --git a/data/maps/SSAnne_Kitchen/map.json b/data/maps/SSAnne_Kitchen/map.json new file mode 100644 index 000000000..968c8c15c --- /dev/null +++ b/data/maps/SSAnne_Kitchen/map.json @@ -0,0 +1,160 @@ +{ + "id": "MAP_SSANNE_KITCHEN", + "name": "SSAnne_Kitchen", + "layout": "LAYOUT_SSANNE_KITCHEN", + "music": "BGM_FRLG_SS_ANNE", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "59", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Kitchen_EventScript_160AB3", + "flag": "0" + }, + { + "graphics_id": "59", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Kitchen_EventScript_160ABC", + "flag": "0" + }, + { + "graphics_id": "59", + "x": 10, + "y": 4, + "elevation": 3, + "movement_type": "18", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Kitchen_EventScript_160AC5", + "flag": "0" + }, + { + "graphics_id": "59", + "x": 8, + "y": 9, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Kitchen_EventScript_160ACE", + "flag": "0" + }, + { + "graphics_id": "59", + "x": 14, + "y": 5, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Kitchen_EventScript_160B1E", + "flag": "0" + }, + { + "graphics_id": "59", + "x": 14, + "y": 7, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Kitchen_EventScript_160B27", + "flag": "0" + }, + { + "graphics_id": "59", + "x": 14, + "y": 9, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Kitchen_EventScript_160B30", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 1, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SSAnne_Kitchen_EventScript_1BE6AC", + "flag": "362" + } + ], + "warp_events": [ + { + "x": 7, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 14, + "y": 8, + "elevation": 0, + "item": "ITEM_CHESTO_BERRY", + "flag": "122", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 14, + "y": 4, + "elevation": 0, + "item": "ITEM_PECHA_BERRY", + "flag": "120", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 14, + "y": 6, + "elevation": 0, + "item": "ITEM_CHERI_BERRY", + "flag": "121", + "unknown": 1 + } + ] +} diff --git a/data/maps/SSAnne_Kitchen/scripts.inc b/data/maps/SSAnne_Kitchen/scripts.inc new file mode 100644 index 000000000..b1b60056d --- /dev/null +++ b/data/maps/SSAnne_Kitchen/scripts.inc @@ -0,0 +1,53 @@ +SSAnne_Kitchen_MapScripts:: @ 8160AB2 + .byte 0 + +SSAnne_Kitchen_EventScript_160AB3:: @ 8160AB3 + msgbox gUnknown_81733F8, 2 + end + +SSAnne_Kitchen_EventScript_160ABC:: @ 8160ABC + msgbox gUnknown_8173429, 2 + end + +SSAnne_Kitchen_EventScript_160AC5:: @ 8160AC5 + msgbox gUnknown_8173462, 2 + end + +SSAnne_Kitchen_EventScript_160ACE:: @ 8160ACE + lock + faceplayer + msgbox gUnknown_8173570 + random 3 + copyvar VAR_0x8008, VAR_RESULT + compare_var_to_value VAR_0x8008, 0 + call_if 1, EventScript_160B03 + compare_var_to_value VAR_0x8008, 1 + call_if 1, EventScript_160B0C + compare_var_to_value VAR_0x8008, 2 + call_if 1, EventScript_160B15 + release + end + +EventScript_160B03:: @ 8160B03 + msgbox gUnknown_817359F + return + +EventScript_160B0C:: @ 8160B0C + msgbox gUnknown_81735DF + return + +EventScript_160B15:: @ 8160B15 + msgbox gUnknown_8173611 + return + +SSAnne_Kitchen_EventScript_160B1E:: @ 8160B1E + msgbox gUnknown_81734A0, 2 + end + +SSAnne_Kitchen_EventScript_160B27:: @ 8160B27 + msgbox gUnknown_81734D3, 2 + end + +SSAnne_Kitchen_EventScript_160B30:: @ 8160B30 + msgbox gUnknown_817353E, 2 + end diff --git a/data/maps/SSAnne_Kitchen/text.inc b/data/maps/SSAnne_Kitchen/text.inc new file mode 100644 index 000000000..edd115076 --- /dev/null +++ b/data/maps/SSAnne_Kitchen/text.inc @@ -0,0 +1,48 @@ +gUnknown_81733F8:: @ 81733F8 + .string "You, mon petit!\n" + .string "We're busy here!\l" + .string "Out of the way!$" + +gUnknown_8173429:: @ 8173429 + .string "I saw an odd BERRY in the trash.\n" + .string "I wonder what that was?$" + +gUnknown_8173462:: @ 8173462 + .string "I'm so busy I'm getting dizzy!\n" + .string "You have to give me room here!$" + +gUnknown_81734A0:: @ 81734A0 + .string "Hum-de-hum-de-ho…\p" + .string "I peel spuds every day!\n" + .string "Hum-hum…$" + +gUnknown_81734D3:: @ 81734D3 + .string "Did you hear about SNORLAX?\n" + .string "It's a glutton.\p" + .string "No other POKéMON eats and sleeps\n" + .string "the way SNORLAX can and does!$" + +gUnknown_817353E:: @ 817353E + .string "Snivel… Sniff…\p" + .string "I only get to peel onions…\n" + .string "Snivel…$" + +gUnknown_8173570:: @ 8173570 + .string "Er-hem!\n" + .string "Indeed I am le CHEF!\p" + .string "Le main course is$" + +gUnknown_817359F:: @ 817359F + .string "Salmon du Salad!\p" + .string "Les guests may gripe it's fish\n" + .string "again, however!$" + +gUnknown_81735DF:: @ 81735DF + .string "Eels au Barbecue!\p" + .string "Les guests will mutiny, I fear.$" + +gUnknown_8173611:: @ 8173611 + .string "Prime Beefsteak!\p" + .string "But, have I enough fillets du\n" + .string "beef?$" + diff --git a/data/maps/SafariZone_Building1/map.json b/data/maps/SafariZone_Building1/map.json new file mode 100644 index 000000000..93f66a692 --- /dev/null +++ b/data/maps/SafariZone_Building1/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_SAFARI_ZONE_BUILDING1", + "name": "SafariZone_Building1", + "layout": "LAYOUT_SAFARI_ZONE_BUILDING", + "music": "BGM_FRLG_SAFARI_ZONE", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building1_EventScript_1623F5", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building1_EventScript_1623EC", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 12 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 12 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 12 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_Building1/scripts.inc b/data/maps/SafariZone_Building1/scripts.inc new file mode 100644 index 000000000..668e92250 --- /dev/null +++ b/data/maps/SafariZone_Building1/scripts.inc @@ -0,0 +1,10 @@ +SafariZone_Building1_MapScripts:: @ 81623EB + .byte 0 + +SafariZone_Building1_EventScript_1623EC:: @ 81623EC + msgbox gUnknown_8177A5A, 2 + end + +SafariZone_Building1_EventScript_1623F5:: @ 81623F5 + msgbox gUnknown_8177A82, 2 + end diff --git a/data/maps/SafariZone_Building1/text.inc b/data/maps/SafariZone_Building1/text.inc new file mode 100644 index 000000000..a071cffeb --- /dev/null +++ b/data/maps/SafariZone_Building1/text.inc @@ -0,0 +1,8 @@ +gUnknown_8177A5A:: @ 8177A5A + .string "SARA: Where did my boyfriend,\n" + .string "ERIK, go?$" + +gUnknown_8177A82:: @ 8177A82 + .string "I'm catching POKéMON to take home\n" + .string "as gifts.$" + diff --git a/data/maps/SafariZone_Building2/map.json b/data/maps/SafariZone_Building2/map.json new file mode 100644 index 000000000..178ecdc06 --- /dev/null +++ b/data/maps/SafariZone_Building2/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_SAFARI_ZONE_BUILDING2", + "name": "SafariZone_Building2", + "layout": "LAYOUT_SAFARI_ZONE_BUILDING", + "music": "BGM_FRLG_SAFARI_ZONE", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building2_EventScript_162408", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building2_EventScript_1623FF", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building2_EventScript_162411", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 6 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 6 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_Building2/scripts.inc b/data/maps/SafariZone_Building2/scripts.inc new file mode 100644 index 000000000..717ccf36b --- /dev/null +++ b/data/maps/SafariZone_Building2/scripts.inc @@ -0,0 +1,14 @@ +SafariZone_Building2_MapScripts:: @ 81623FE + .byte 0 + +SafariZone_Building2_EventScript_1623FF:: @ 81623FF + msgbox gUnknown_8177AE2, 2 + end + +SafariZone_Building2_EventScript_162408:: @ 8162408 + msgbox gUnknown_8177AAE, 2 + end + +SafariZone_Building2_EventScript_162411:: @ 8162411 + msgbox gUnknown_8177B16, 2 + end diff --git a/data/maps/SafariZone_Building2/text.inc b/data/maps/SafariZone_Building2/text.inc new file mode 100644 index 000000000..b25194a31 --- /dev/null +++ b/data/maps/SafariZone_Building2/text.inc @@ -0,0 +1,12 @@ +gUnknown_8177AAE:: @ 8177AAE + .string "How many did you catch?\n" + .string "I'm bushed from the effort!$" + +gUnknown_8177AE2:: @ 8177AE2 + .string "I caught a CHANSEY!\p" + .string "That makes this all worthwhile.$" + +gUnknown_8177B16:: @ 8177B16 + .string "Whew!\n" + .string "I'm tired from all the fun!$" + diff --git a/data/maps/SafariZone_Building3/map.json b/data/maps/SafariZone_Building3/map.json new file mode 100644 index 000000000..768e83b94 --- /dev/null +++ b/data/maps/SafariZone_Building3/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_SAFARI_ZONE_BUILDING3", + "name": "SafariZone_Building3", + "layout": "LAYOUT_SAFARI_ZONE_BUILDING", + "music": "BGM_FRLG_SAFARI_ZONE", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building3_EventScript_16242D", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building3_EventScript_162424", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building3_EventScript_16241B", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 11, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building3_EventScript_1ACED3", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 12 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 12 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 12 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_Building3/scripts.inc b/data/maps/SafariZone_Building3/scripts.inc new file mode 100644 index 000000000..a4dc55062 --- /dev/null +++ b/data/maps/SafariZone_Building3/scripts.inc @@ -0,0 +1,14 @@ +SafariZone_Building3_MapScripts:: @ 816241A + .byte 0 + +SafariZone_Building3_EventScript_16241B:: @ 816241B + msgbox gUnknown_8177BAB, 2 + end + +SafariZone_Building3_EventScript_162424:: @ 8162424 + msgbox gUnknown_8177B38, 2 + end + +SafariZone_Building3_EventScript_16242D:: @ 816242D + msgbox gUnknown_8177BEC, 2 + end diff --git a/data/maps/SafariZone_Building3/text.inc b/data/maps/SafariZone_Building3/text.inc new file mode 100644 index 000000000..d7956d083 --- /dev/null +++ b/data/maps/SafariZone_Building3/text.inc @@ -0,0 +1,15 @@ +gUnknown_8177B38:: @ 8177B38 + .string "You can keep any item you find in\n" + .string "the SAFARI ZONE.\p" + .string "But, you'll run out of time if you\n" + .string "try for all of them at once.$" + +gUnknown_8177BAB:: @ 8177BAB + .string "Go to the deepest part of the\n" + .string "SAFARI ZONE. You will win a prize!$" + +gUnknown_8177BEC:: @ 8177BEC + .string "My EEVEE evolved into FLAREON.\p" + .string "But, a friend's EEVEE turned into a\n" + .string "VAPOREON. I wonder why?$" + diff --git a/data/maps/SafariZone_Building4/map.json b/data/maps/SafariZone_Building4/map.json new file mode 100644 index 000000000..0769bd7a2 --- /dev/null +++ b/data/maps/SafariZone_Building4/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_SAFARI_ZONE_BUILDING4", + "name": "SafariZone_Building4", + "layout": "LAYOUT_SAFARI_ZONE_BUILDING", + "music": "BGM_FRLG_SAFARI_ZONE", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building4_EventScript_162440", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 2, + "y": 2, + "elevation": 0, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building4_EventScript_162437", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Building4_EventScript_162449", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 10 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 10 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 10 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_Building4/scripts.inc b/data/maps/SafariZone_Building4/scripts.inc new file mode 100644 index 000000000..8f589cd8f --- /dev/null +++ b/data/maps/SafariZone_Building4/scripts.inc @@ -0,0 +1,14 @@ +SafariZone_Building4_MapScripts:: @ 8162436 + .byte 0 + +SafariZone_Building4_EventScript_162437:: @ 8162437 + msgbox gUnknown_8177D39, 2 + end + +SafariZone_Building4_EventScript_162440:: @ 8162440 + msgbox gUnknown_8177CEB, 2 + end + +SafariZone_Building4_EventScript_162449:: @ 8162449 + msgbox gUnknown_8177D8B, 2 + end diff --git a/data/maps/SafariZone_Building4/text.inc b/data/maps/SafariZone_Building4/text.inc new file mode 100644 index 000000000..66bf06ba2 --- /dev/null +++ b/data/maps/SafariZone_Building4/text.inc @@ -0,0 +1,22 @@ +Text_177C47:: @ 8177C47 + .string "The SAFARI ZONE's huge, wouldn't\n" + .string "you say?\p" + .string "FUCHSIA's GYM LEADER, KOGA, \n" + .string "patrols the grounds every so often.\p" + .string "Thanks to him, we can play here\n" + .string "knowing that we're safe.$" + +gUnknown_8177CEB:: @ 8177CEB + .string "Tossing ROCKS at POKéMON might\n" + .string "make them run, but they'll be\l" + .string "easier to catch.$" + +gUnknown_8177D39:: @ 8177D39 + .string "Using BAIT will make POKéMON more\n" + .string "likely to stick around if they get\l" + .string "busy eating.$" + +gUnknown_8177D8B:: @ 8177D8B + .string "I hiked a lot, but I didn't see any\n" + .string "POKéMON I wanted.$" + diff --git a/data/maps/SafariZone_Center/map.json b/data/maps/SafariZone_Center/map.json new file mode 100644 index 000000000..2eec6d8da --- /dev/null +++ b/data/maps/SafariZone_Center/map.json @@ -0,0 +1,156 @@ +{ + "id": "MAP_SAFARI_ZONE_CENTER", + "name": "SafariZone_Center", + "layout": "LAYOUT_SAFARI_ZONE_CENTER", + "music": "BGM_FRLG_SAFARI_ZONE", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 24, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_Center_EventScript_1BE7D7", + "flag": "385" + } + ], + "warp_events": [ + { + "x": 25, + "y": 30, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 26, + "y": 30, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 27, + "y": 30, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 25, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 9 + }, + { + "x": 26, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 10 + }, + { + "x": 27, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 11 + }, + { + "x": 8, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 6 + }, + { + "x": 8, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 7 + }, + { + "x": 8, + "y": 19, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 8 + }, + { + "x": 43, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 3 + }, + { + "x": 43, + "y": 16, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 4 + }, + { + "x": 43, + "y": 17, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 5 + }, + { + "x": 29, + "y": 25, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_BUILDING1", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 30, + "y": 26, + "elevation": 0, + "script": "SafariZone_Center_EventScript_162361" + }, + { + "type": "bg_event_type_0", + "x": 25, + "y": 27, + "elevation": 0, + "script": "SafariZone_Center_EventScript_16236A" + }, + { + "type": "hidden_item", + "x": 27, + "y": 15, + "elevation": 3, + "item": "ITEM_LEAF_STONE", + "flag": "22", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 33, + "y": 20, + "elevation": 0, + "script": "SafariZone_Center_EventScript_162373" + } + ] +} diff --git a/data/maps/SafariZone_Center/scripts.inc b/data/maps/SafariZone_Center/scripts.inc new file mode 100644 index 000000000..9f887910a --- /dev/null +++ b/data/maps/SafariZone_Center/scripts.inc @@ -0,0 +1,19 @@ +SafariZone_Center_MapScripts:: @ 8162357 + map_script 3, SafariZone_Center_MapScript1_16235D + .byte 0 + +SafariZone_Center_MapScript1_16235D:: @ 816235D + setworldmapflag FLAG_WORLD_MAP_SAFARI_ZONE_CENTER + end + +SafariZone_Center_EventScript_162361:: @ 8162361 + msgbox gUnknown_81777F2, 3 + end + +SafariZone_Center_EventScript_16236A:: @ 816236A + msgbox gUnknown_81777FD, 3 + end + +SafariZone_Center_EventScript_162373:: @ 8162373 + msgbox gUnknown_817782F, 3 + end diff --git a/data/maps/SafariZone_Center/text.inc b/data/maps/SafariZone_Center/text.inc new file mode 100644 index 000000000..7116a230a --- /dev/null +++ b/data/maps/SafariZone_Center/text.inc @@ -0,0 +1,11 @@ +gUnknown_81777F2:: @ 81777F2 + .string "REST HOUSE$" + +gUnknown_81777FD:: @ 81777FD + .string "TRAINER TIPS\p" + .string "Press START to check\n" + .string "remaining time.$" + +gUnknown_817782F:: @ 817782F + .string "CENTER AREA$" + diff --git a/data/maps/SafariZone_East/map.json b/data/maps/SafariZone_East/map.json new file mode 100644 index 000000000..23a6d3596 --- /dev/null +++ b/data/maps/SafariZone_East/map.json @@ -0,0 +1,144 @@ +{ + "id": "MAP_SAFARI_ZONE_EAST", + "name": "SafariZone_East", + "layout": "LAYOUT_SAFARI_ZONE_EAST", + "music": "BGM_FRLG_SAFARI_ZONE", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 13, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_East_EventScript_1BE7E4", + "flag": "386" + }, + { + "graphics_id": "92", + "x": 37, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_East_EventScript_1BE7F1", + "flag": "387" + }, + { + "graphics_id": "92", + "x": 31, + "y": 18, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_East_EventScript_1BE7FE", + "flag": "388" + }, + { + "graphics_id": "92", + "x": 36, + "y": 17, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_East_EventScript_1BE80B", + "flag": "389" + } + ], + "warp_events": [ + { + "x": 8, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 6 + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 7 + }, + { + "x": 8, + "y": 11, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 8 + }, + { + "x": 8, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 9 + }, + { + "x": 8, + "y": 27, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 10 + }, + { + "x": 8, + "y": 28, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 11 + }, + { + "x": 40, + "y": 14, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_BUILDING2", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 18, + "y": 27, + "elevation": 0, + "script": "SafariZone_East_EventScript_16238F" + }, + { + "type": "bg_event_type_0", + "x": 43, + "y": 15, + "elevation": 0, + "script": "SafariZone_East_EventScript_16237D" + }, + { + "type": "bg_event_type_0", + "x": 17, + "y": 8, + "elevation": 0, + "script": "SafariZone_East_EventScript_162386" + } + ] +} diff --git a/data/maps/SafariZone_East/scripts.inc b/data/maps/SafariZone_East/scripts.inc new file mode 100644 index 000000000..b38039b36 --- /dev/null +++ b/data/maps/SafariZone_East/scripts.inc @@ -0,0 +1,14 @@ +SafariZone_East_MapScripts:: @ 816237C + .byte 0 + +SafariZone_East_EventScript_16237D:: @ 816237D + msgbox gUnknown_817783B, 3 + end + +SafariZone_East_EventScript_162386:: @ 8162386 + msgbox gUnknown_8177846, 3 + end + +SafariZone_East_EventScript_16238F:: @ 816238F + msgbox gUnknown_8177884, 3 + end diff --git a/data/maps/SafariZone_East/text.inc b/data/maps/SafariZone_East/text.inc new file mode 100644 index 000000000..785cc3a5e --- /dev/null +++ b/data/maps/SafariZone_East/text.inc @@ -0,0 +1,12 @@ +gUnknown_817783B:: @ 817783B + .string "REST HOUSE$" + +gUnknown_8177846:: @ 8177846 + .string "TRAINER TIPS\p" + .string "The remaining time declines only\n" + .string "while you walk.$" + +gUnknown_8177884:: @ 8177884 + .string "AREA 1\n" + .string "WEST: CENTER AREA$" + diff --git a/data/maps/SafariZone_North/map.json b/data/maps/SafariZone_North/map.json new file mode 100644 index 000000000..f69e86fd5 --- /dev/null +++ b/data/maps/SafariZone_North/map.json @@ -0,0 +1,187 @@ +{ + "id": "MAP_SAFARI_ZONE_NORTH", + "name": "SafariZone_North", + "layout": "LAYOUT_SAFARI_ZONE_NORTH", + "music": "BGM_FRLG_SAFARI_ZONE", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 33, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_North_EventScript_1BE818", + "flag": "390" + }, + { + "graphics_id": "92", + "x": 28, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_North_EventScript_1BE825", + "flag": "391" + }, + { + "graphics_id": "92", + "x": 29, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_North_EventScript_1BEBDA", + "flag": "467" + } + ], + "warp_events": [ + { + "x": 10, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 1 + }, + { + "x": 12, + "y": 34, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 2 + }, + { + "x": 20, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 3 + }, + { + "x": 21, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 4 + }, + { + "x": 22, + "y": 34, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 5 + }, + { + "x": 48, + "y": 31, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 0 + }, + { + "x": 48, + "y": 32, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 1 + }, + { + "x": 48, + "y": 33, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": 2 + }, + { + "x": 30, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 3 + }, + { + "x": 31, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 4 + }, + { + "x": 32, + "y": 34, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 5 + }, + { + "x": 43, + "y": 8, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_BUILDING3", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 13, + "y": 27, + "elevation": 0, + "script": "SafariZone_North_EventScript_1623A2" + }, + { + "type": "bg_event_type_0", + "x": 23, + "y": 31, + "elevation": 0, + "script": "SafariZone_North_EventScript_1623AB" + }, + { + "type": "bg_event_type_0", + "x": 29, + "y": 32, + "elevation": 0, + "script": "SafariZone_North_EventScript_1623B4" + }, + { + "type": "bg_event_type_0", + "x": 34, + "y": 28, + "elevation": 0, + "script": "SafariZone_North_EventScript_1623BD" + }, + { + "type": "bg_event_type_0", + "x": 44, + "y": 9, + "elevation": 0, + "script": "SafariZone_North_EventScript_162399" + } + ] +} diff --git a/data/maps/SafariZone_North/scripts.inc b/data/maps/SafariZone_North/scripts.inc new file mode 100644 index 000000000..f45988629 --- /dev/null +++ b/data/maps/SafariZone_North/scripts.inc @@ -0,0 +1,22 @@ +SafariZone_North_MapScripts:: @ 8162398 + .byte 0 + +SafariZone_North_EventScript_162399:: @ 8162399 + msgbox gUnknown_817789D, 3 + end + +SafariZone_North_EventScript_1623A2:: @ 81623A2 + msgbox gUnknown_81778A8, 3 + end + +SafariZone_North_EventScript_1623AB:: @ 81623AB + msgbox gUnknown_81778D6, 3 + end + +SafariZone_North_EventScript_1623B4:: @ 81623B4 + msgbox gUnknown_81778DD, 3 + end + +SafariZone_North_EventScript_1623BD:: @ 81623BD + msgbox gUnknown_8177935, 3 + end diff --git a/data/maps/SafariZone_North/text.inc b/data/maps/SafariZone_North/text.inc new file mode 100644 index 000000000..a7978dcfe --- /dev/null +++ b/data/maps/SafariZone_North/text.inc @@ -0,0 +1,21 @@ +gUnknown_817789D:: @ 817789D + .string "REST HOUSE$" + +gUnknown_81778A8:: @ 81778A8 + .string "TRAINER TIPS\p" + .string "The SECRET HOUSE is still ahead.$" + +gUnknown_81778D6:: @ 81778D6 + .string "AREA 2$" + +gUnknown_81778DD:: @ 81778DD + .string "TRAINER TIPS\p" + .string "POKéMON hide in tall grass.\p" + .string "Zigzag through grassy areas to\n" + .string "flush them out.$" + +gUnknown_8177935:: @ 8177935 + .string "TRAINER TIPS\p" + .string "Win a free HM for finding the\n" + .string "SECRET HOUSE.$" + diff --git a/data/maps/SafariZone_SecretHouse/map.json b/data/maps/SafariZone_SecretHouse/map.json new file mode 100644 index 000000000..0616c4782 --- /dev/null +++ b/data/maps/SafariZone_SecretHouse/map.json @@ -0,0 +1,55 @@ +{ + "id": "MAP_SAFARI_ZONE_SECRET_HOUSE", + "name": "SafariZone_SecretHouse", + "layout": "LAYOUT_SAFARI_ZONE_SECRET_HOUSE", + "music": "BGM_FRLG_SAFARI_ZONE", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "47", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_SecretHouse_EventScript_162453", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 9 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 9 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": 9 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_SecretHouse/scripts.inc b/data/maps/SafariZone_SecretHouse/scripts.inc new file mode 100644 index 000000000..67987618d --- /dev/null +++ b/data/maps/SafariZone_SecretHouse/scripts.inc @@ -0,0 +1,28 @@ +SafariZone_SecretHouse_MapScripts:: @ 8162452 + .byte 0 + +SafariZone_SecretHouse_EventScript_162453:: @ 8162453 + lock + faceplayer + checkflag FLAG_0x239 + goto_if_eq EventScript_1624A9 + msgbox gUnknown_8177DC1 + checkitemspace ITEM_HM03, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16249F + additem ITEM_HM03, 1 + giveitemfanfaremsg gUnknown_8177E92, ITEM_HM03 + msgbox gUnknown_8177EB7 + setflag FLAG_0x239 + release + end + +EventScript_16249F:: @ 816249F + msgbox gUnknown_8177F72 + release + end + +EventScript_1624A9:: @ 81624A9 + msgbox gUnknown_8177EB7 + release + end diff --git a/data/maps/SafariZone_SecretHouse/text.inc b/data/maps/SafariZone_SecretHouse/text.inc new file mode 100644 index 000000000..04ea02125 --- /dev/null +++ b/data/maps/SafariZone_SecretHouse/text.inc @@ -0,0 +1,28 @@ +gUnknown_8177DC1:: @ 8177DC1 + .string "Ah! Finally!\p" + .string "You're the first person to reach\n" + .string "the SECRET HOUSE!\p" + .string "Although I made a campaign\n" + .string "for our grand opening,\p" + .string "I was getting worried that no one\n" + .string "would win our campaign prize.\p" + .string "Congratulations!\n" + .string "You have won!$" + +gUnknown_8177E92:: @ 8177E92 + .string "{PLAYER} received HM03\n" + .string "from the attendant!$" + +gUnknown_8177EB7:: @ 8177EB7 + .string "HM03 is SURF.\p" + .string "POKéMON will be able to ferry you\n" + .string "across water using it.\p" + .string "And, this HM isn't disposable, so\n" + .string "you can use it over and over.\p" + .string "You're super lucky for winning this\n" + .string "fabulous prize!$" + +gUnknown_8177F72:: @ 8177F72 + .string "You don't have room for this\n" + .string "fabulous prize!$" + diff --git a/data/maps/SafariZone_West/map.json b/data/maps/SafariZone_West/map.json new file mode 100644 index 000000000..e91ecd175 --- /dev/null +++ b/data/maps/SafariZone_West/map.json @@ -0,0 +1,188 @@ +{ + "id": "MAP_SAFARI_ZONE_WEST", + "name": "SafariZone_West", + "layout": "LAYOUT_SAFARI_ZONE_WEST", + "music": "BGM_FRLG_SAFARI_ZONE", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "92", + "x": 28, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_West_EventScript_1BE83F", + "flag": "393" + }, + { + "graphics_id": "92", + "x": 17, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_West_EventScript_1BE832", + "flag": "392" + }, + { + "graphics_id": "92", + "x": 16, + "y": 27, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_West_EventScript_1BE84C", + "flag": "394" + }, + { + "graphics_id": "92", + "x": 27, + "y": 24, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SafariZone_West_EventScript_1BE859", + "flag": "395" + } + ], + "warp_events": [ + { + "x": 30, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 0 + }, + { + "x": 31, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 1 + }, + { + "x": 32, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 2 + }, + { + "x": 37, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 3 + }, + { + "x": 38, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 4 + }, + { + "x": 39, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_NORTH", + "dest_warp_id": 5 + }, + { + "x": 40, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 6 + }, + { + "x": 40, + "y": 27, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 7 + }, + { + "x": 40, + "y": 28, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": 8 + }, + { + "x": 12, + "y": 7, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_SECRET_HOUSE", + "dest_warp_id": 1 + }, + { + "x": 19, + "y": 18, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_BUILDING4", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 27, + "y": 9, + "elevation": 0, + "script": "SafariZone_West_EventScript_1623D0" + }, + { + "type": "bg_event_type_0", + "x": 36, + "y": 10, + "elevation": 0, + "script": "SafariZone_West_EventScript_1623D9" + }, + { + "type": "bg_event_type_0", + "x": 35, + "y": 26, + "elevation": 0, + "script": "SafariZone_West_EventScript_1623E2" + }, + { + "type": "bg_event_type_0", + "x": 22, + "y": 19, + "elevation": 0, + "script": "SafariZone_West_EventScript_1623C7" + }, + { + "type": "hidden_item", + "x": 13, + "y": 11, + "elevation": 3, + "item": "ITEM_REVIVE", + "flag": "23", + "unknown": 1 + } + ] +} diff --git a/data/maps/SafariZone_West/scripts.inc b/data/maps/SafariZone_West/scripts.inc new file mode 100644 index 000000000..2b8357334 --- /dev/null +++ b/data/maps/SafariZone_West/scripts.inc @@ -0,0 +1,18 @@ +SafariZone_West_MapScripts:: @ 81623C6 + .byte 0 + +SafariZone_West_EventScript_1623C7:: @ 81623C7 + msgbox gUnknown_817796E, 3 + end + +SafariZone_West_EventScript_1623D0:: @ 81623D0 + msgbox gUnknown_8177979, 3 + end + +SafariZone_West_EventScript_1623D9:: @ 81623D9 + msgbox gUnknown_81779F8, 3 + end + +SafariZone_West_EventScript_1623E2:: @ 81623E2 + msgbox gUnknown_8177A41, 3 + end diff --git a/data/maps/SafariZone_West/text.inc b/data/maps/SafariZone_West/text.inc new file mode 100644 index 000000000..14a097ada --- /dev/null +++ b/data/maps/SafariZone_West/text.inc @@ -0,0 +1,20 @@ +gUnknown_817796E:: @ 817796E + .string "REST HOUSE$" + +gUnknown_8177979:: @ 8177979 + .string "REQUEST NOTICE\p" + .string "Please find the SAFARI WARDEN's\n" + .string "lost GOLD TEETH.\l" + .string "They're around here somewhere.\p" + .string "Reward offered!\n" + .string "Contact: WARDEN$" + +gUnknown_81779F8:: @ 81779F8 + .string "TRAINER TIPS\p" + .string "Zone Exploration Campaign!\n" + .string "The Search for the SECRET HOUSE!$" + +gUnknown_8177A41:: @ 8177A41 + .string "AREA 3\n" + .string "EAST: CENTER AREA$" + diff --git a/data/maps/SaffronCity/map.json b/data/maps/SaffronCity/map.json new file mode 100644 index 000000000..f86012a9a --- /dev/null +++ b/data/maps/SaffronCity/map.json @@ -0,0 +1,40 @@ +{ + "id": "MAP_SAFFRON_CITY", + "name": "SaffronCity", + "layout": "LAYOUT_SAFFRON_CITY", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE5", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE6", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE7", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE8", + "offset": 10, + "direction": "right" + } + ], + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity/scripts.inc b/data/maps/SaffronCity/scripts.inc new file mode 100644 index 000000000..0b3469775 --- /dev/null +++ b/data/maps/SaffronCity/scripts.inc @@ -0,0 +1,2 @@ +SaffronCity_MapScripts:: @ 8167483 + .byte 0 diff --git a/data/maps/SaffronCity_Dojo/map.json b/data/maps/SaffronCity_Dojo/map.json new file mode 100644 index 000000000..a8d80bb8e --- /dev/null +++ b/data/maps/SaffronCity_Dojo/map.json @@ -0,0 +1,181 @@ +{ + "id": "MAP_SAFFRON_CITY_DOJO", + "name": "SaffronCity_Dojo", + "layout": "LAYOUT_SAFFRON_CITY_DOJO", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "54", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 7, + "script": "SaffronCity_Dojo_EventScript_16ED46", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 1, + "y": 10, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 7, + "script": "SaffronCity_Dojo_EventScript_16ED5D", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 7, + "script": "SaffronCity_Dojo_EventScript_16ED74", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 7, + "script": "SaffronCity_Dojo_EventScript_16ED8B", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SaffronCity_Dojo_EventScript_16EDA2", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Dojo_EventScript_16EC00", + "flag": "96" + }, + { + "graphics_id": "92", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Dojo_EventScript_16EC46", + "flag": "97" + } + ], + "warp_events": [ + { + "x": 5, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 2 + }, + { + "x": 6, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 2 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 5, + "y": 5, + "elevation": 3, + "var": "VAR_0x4081", + "var_value": 0, + "script": "SaffronCity_Dojo_EventScript_16EBDC" + }, + { + "type": "trigger", + "x": 7, + "y": 5, + "elevation": 3, + "var": "VAR_0x4081", + "var_value": 0, + "script": "SaffronCity_Dojo_EventScript_16EBEE" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 3, + "y": 13, + "elevation": 0, + "script": "SaffronCity_Dojo_EventScript_16ED2B" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 13, + "elevation": 0, + "script": "SaffronCity_Dojo_EventScript_16ED2B" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 2, + "elevation": 0, + "script": "SaffronCity_Dojo_EventScript_16ED34" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 2, + "elevation": 0, + "script": "SaffronCity_Dojo_EventScript_16ED3D" + } + ] +} diff --git a/data/maps/SaffronCity_Dojo/scripts.inc b/data/maps/SaffronCity_Dojo/scripts.inc new file mode 100644 index 000000000..8be7e27a6 --- /dev/null +++ b/data/maps/SaffronCity_Dojo/scripts.inc @@ -0,0 +1,160 @@ +SaffronCity_Dojo_MapScripts:: @ 816EBDB + .byte 0 + +SaffronCity_Dojo_EventScript_16EBDC:: @ 816EBDC + lockall + setvar VAR_0x4081, 1 + applymovement 5, Movement_1A75E7 + waitmovement 0 + releaseall + end + +SaffronCity_Dojo_EventScript_16EBEE:: @ 816EBEE + lockall + setvar VAR_0x4081, 1 + applymovement 5, Movement_1A75EB + waitmovement 0 + releaseall + end + +SaffronCity_Dojo_EventScript_16EC00:: @ 816EC00 + lock + faceplayer + checkflag FLAG_0x278 + goto_if_eq EventScript_16EC3C + drawmonpic SPECIES_HITMONLEE, 10, 3 + setvar VAR_0x4001, SPECIES_HITMONLEE + applymovement 5, Movement_1A75E9 + waitmovement 0 + textcolor 0 + msgbox gUnknown_819B44E, MSGBOX_YESNO + call EventScript_1A6675 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16EC82 + erasemonpic + release + end + +EventScript_16EC3C:: @ 816EC3C + msgbox gUnknown_819B4E1 + release + end + +SaffronCity_Dojo_EventScript_16EC46:: @ 816EC46 + lock + faceplayer + checkflag FLAG_0x278 + goto_if_eq EventScript_16EC3C + drawmonpic SPECIES_HITMONCHAN, 10, 3 + setvar VAR_0x4001, SPECIES_HITMONCHAN + applymovement 5, Movement_1A75E9 + waitmovement 0 + textcolor 0 + msgbox gUnknown_819B49E, MSGBOX_YESNO + call EventScript_1A6675 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16EC82 + erasemonpic + release + end + +EventScript_16EC82:: @ 816EC82 + erasemonpic + givemon VAR_0x4001, 25, ITEM_NONE, 0, 0, 0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16ECB5 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16ECEC + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A927C + release + end + +EventScript_16ECB5:: @ 816ECB5 + removeobject VAR_LAST_TALKED + getspeciesname 0, VAR_0x4001 + playfanfare MUS_FANFA1 + message Text_19B473 + waitmessage + waitfanfare + setflag FLAG_0x278 + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16ED29 + call EventScript_1A8C27 + call EventScript_1A74EB + goto EventScript_16ED29 + end + +EventScript_16ECEC:: @ 816ECEC + removeobject VAR_LAST_TALKED + getspeciesname 0, VAR_0x4001 + playfanfare MUS_FANFA1 + message Text_19B473 + waitmessage + waitfanfare + setflag FLAG_0x278 + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16ED1E + call EventScript_1A8C33 + goto EventScript_16ED1E + end + +EventScript_16ED1E:: @ 816ED1E + call EventScript_1A8C3C + goto EventScript_16ED29 + end + +EventScript_16ED29:: @ 816ED29 + release + end + +SaffronCity_Dojo_EventScript_16ED2B:: @ 816ED2B + msgbox gUnknown_819B52E, 3 + end + +SaffronCity_Dojo_EventScript_16ED34:: @ 816ED34 + msgbox gUnknown_819B4F8, 3 + end + +SaffronCity_Dojo_EventScript_16ED3D:: @ 816ED3D + msgbox gUnknown_819B50F, 3 + end + +SaffronCity_Dojo_EventScript_16ED46:: @ 816ED46 + trainerbattle 0, 321, 0, Text_19B3DF, Text_19B40F + msgbox gUnknown_819B41F, 6 + end + +SaffronCity_Dojo_EventScript_16ED5D:: @ 816ED5D + trainerbattle 0, 319, 0, Text_19B2E0, Text_19B2FD + msgbox gUnknown_819B30F, 6 + end + +SaffronCity_Dojo_EventScript_16ED74:: @ 816ED74 + trainerbattle 0, 320, 0, Text_19B341, Text_19B396 + msgbox gUnknown_819B3AC, 6 + end + +SaffronCity_Dojo_EventScript_16ED8B:: @ 816ED8B + trainerbattle 0, 318, 0, Text_19B275, Text_19B292 + msgbox gUnknown_819B29D, 6 + end + +SaffronCity_Dojo_EventScript_16EDA2:: @ 816EDA2 + trainerbattle 2, 317, 0, Text_19B12C, Text_19B193, EventScript_16EDD0 + checkflag FLAG_0x278 + goto_if_eq EventScript_16EDC6 + msgbox gUnknown_819B1A7, 6 + end + +EventScript_16EDC6:: @ 816EDC6 + msgbox gUnknown_819B24C + release + end + +EventScript_16EDD0:: @ 816EDD0 + setvar VAR_0x4081, 1 + release + end diff --git a/data/maps/SaffronCity_Dojo/text.inc b/data/maps/SaffronCity_Dojo/text.inc new file mode 100644 index 000000000..d85b5a843 --- /dev/null +++ b/data/maps/SaffronCity_Dojo/text.inc @@ -0,0 +1,105 @@ +Text_19B123:: @ 819B123 + .string "? みえないぞ‥$" + +Text_19B12C:: @ 819B12C + .string "Grunt!\p" + .string "I am the KARATE MASTER!\n" + .string "I am the LEADER here!\p" + .string "You wish to challenge us?\n" + .string "Expect no mercy!\p" + .string "Fwaaa!$" + +Text_19B193:: @ 819B193 + .string "Hwa!\n" + .string "Arrgh! Beaten!$" + +gUnknown_819B1A7:: @ 819B1A7 + .string "Indeed, I have lost!\p" + .string "But, I beseech you, do not take\n" + .string "our emblem as your trophy!\p" + .string "In return, I will give you a prized\n" + .string "FIGHTING POKéMON!\p" + .string "Choose whichever one you like!$" + +gUnknown_819B24C:: @ 819B24C + .string "Grunt!\n" + .string "Stay and train at karate with us!$" + +Text_19B275:: @ 819B275 + .string "Hoargh!\n" + .string "Take your shoes off!$" + +Text_19B292:: @ 819B292 + .string "I give up!$" + +gUnknown_819B29D:: @ 819B29D + .string "You wait 'til you see our MASTER!\n" + .string "I'm a small fry compared to him!$" + +Text_19B2E0:: @ 819B2E0 + .string "I hear you're good!\n" + .string "Show me!$" + +Text_19B2FD:: @ 819B2FD + .string "Judge!\n" + .string "One point!$" + +gUnknown_819B30F:: @ 819B30F + .string "Our MASTER is a pro fighter.\n" + .string "Be prepared to lose!$" + +Text_19B341:: @ 819B341 + .string "Hiyah!\n" + .string "I have no fear for anything tough!\p" + .string "I shatter boulders for training\n" + .string "every day!$" + +Text_19B396:: @ 819B396 + .string "Yow!\n" + .string "Stubbed fingers!$" + +gUnknown_819B3AC:: @ 819B3AC + .string "The only thing that frightens us is\n" + .string "psychic power!$" + +Text_19B3DF:: @ 819B3DF + .string "Hwaah!\p" + .string "You're trespassing in our\n" + .string "FIGHTING DOJO!$" + +Text_19B40F:: @ 819B40F + .string "Oof!\n" + .string "I give up!$" + +gUnknown_819B41F:: @ 819B41F + .string "The prime fighters across the land\n" + .string "train here.$" + +gUnknown_819B44E:: @ 819B44E + .string "You want the hard-kicking\n" + .string "HITMONLEE?$" + +Text_19B473:: @ 819B473 + .string "{PLAYER} received the {STR_VAR_1}\n" + .string "from the KARATE MASTER.$" + +gUnknown_819B49E:: @ 819B49E + .string "You want the piston-punching\n" + .string "HITMONCHAN?$" + +Text_19B4C7:: @ 819B4C7 + .string "{PLAYER}は カラテ だいおう から\n" + .string "{STR_VAR_1}を もらった!$" + +gUnknown_819B4E1:: @ 819B4E1 + .string "Better not get greedy…$" + +gUnknown_819B4F8:: @ 819B4F8 + .string "Enemies on every side!$" + +gUnknown_819B50F:: @ 819B50F + .string "What goes around comes around.$" + +gUnknown_819B52E:: @ 819B52E + .string "FIGHTING DOJO$" + diff --git a/data/maps/SaffronCity_Duplicate/map.json b/data/maps/SaffronCity_Duplicate/map.json new file mode 100644 index 000000000..06bcbfd01 --- /dev/null +++ b/data/maps/SaffronCity_Duplicate/map.json @@ -0,0 +1,407 @@ +{ + "id": "MAP_SAFFRON_CITY_DUPLICATE", + "name": "SaffronCity_Duplicate", + "layout": "LAYOUT_SAFFRON_CITY_DUPLICATE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE5", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE6", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE7", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE8", + "offset": 10, + "direction": "right" + } + ], + "connections_no_include": true, + "object_events": [ + { + "graphics_id": "49", + "x": 22, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_16737A", + "flag": "62" + }, + { + "graphics_id": "49", + "x": 26, + "y": 16, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_167383", + "flag": "62" + }, + { + "graphics_id": "49", + "x": 46, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_16738C", + "flag": "62" + }, + { + "graphics_id": "49", + "x": 27, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_167395", + "flag": "62" + }, + { + "graphics_id": "49", + "x": 25, + "y": 33, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 7, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_16739E", + "flag": "62" + }, + { + "graphics_id": "49", + "x": 34, + "y": 31, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_1673B9", + "flag": "62" + }, + { + "graphics_id": "49", + "x": 30, + "y": 39, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 5, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_1673B0", + "flag": "62" + }, + { + "graphics_id": "49", + "x": 48, + "y": 24, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_1673A7", + "flag": "62" + }, + { + "graphics_id": "18", + "x": 37, + "y": 32, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_1673EC", + "flag": "63" + }, + { + "graphics_id": "47", + "x": 21, + "y": 23, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_1673E3", + "flag": "63" + }, + { + "graphics_id": "25", + "x": 39, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_16741A", + "flag": "63" + }, + { + "graphics_id": "19", + "x": 44, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_1673FE", + "flag": "63" + }, + { + "graphics_id": "114", + "x": 45, + "y": 22, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_167407", + "flag": "63" + }, + { + "graphics_id": "22", + "x": 32, + "y": 39, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 5, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_1673F5", + "flag": "63" + }, + { + "graphics_id": "24", + "x": 47, + "y": 24, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Duplicate_EventScript_1AD03A", + "flag": "157" + } + ], + "warp_events": [ + { + "x": 33, + "y": 30, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_1F", + "dest_warp_id": 1 + }, + { + "x": 22, + "y": 14, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_HOUSE1_1F", + "dest_warp_id": 1 + }, + { + "x": 40, + "y": 12, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_DOJO", + "dest_warp_id": 1 + }, + { + "x": 46, + "y": 12, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 1 + }, + { + "x": 27, + "y": 21, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_HOUSE2", + "dest_warp_id": 1 + }, + { + "x": 40, + "y": 21, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_MART", + "dest_warp_id": 1 + }, + { + "x": 24, + "y": 38, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 43, + "y": 38, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_HOUSE3", + "dest_warp_id": 1 + }, + { + "x": 8, + "y": 27, + "elevation": 3, + "dest_map": "MAP_ROUTE7_EAST_ENTRANCE", + "dest_warp_id": 2 + }, + { + "x": 34, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", + "dest_warp_id": 2 + }, + { + "x": 58, + "y": 27, + "elevation": 3, + "dest_map": "MAP_ROUTE8_WEST_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 34, + "y": 46, + "elevation": 3, + "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 35, + "y": 46, + "elevation": 3, + "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", + "dest_warp_id": 0 + }, + { + "x": 35, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", + "dest_warp_id": 2 + }, + { + "x": 47, + "y": 21, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 29, + "y": 14, + "elevation": 0, + "script": "SaffronCity_Duplicate_EventScript_167423" + }, + { + "type": "bg_event_type_0", + "x": 42, + "y": 14, + "elevation": 0, + "script": "SaffronCity_Duplicate_EventScript_16742C" + }, + { + "type": "bg_event_type_0", + "x": 13, + "y": 25, + "elevation": 0, + "script": "SaffronCity_Duplicate_EventScript_167471" + }, + { + "type": "bg_event_type_0", + "x": 18, + "y": 30, + "elevation": 0, + "script": "SaffronCity_Duplicate_EventScript_167456" + }, + { + "type": "bg_event_type_0", + "x": 29, + "y": 31, + "elevation": 0, + "script": "SaffronCity_Duplicate_EventScript_16745F" + }, + { + "type": "bg_event_type_0", + "x": 54, + "y": 25, + "elevation": 0, + "script": "SaffronCity_Duplicate_EventScript_16744D" + }, + { + "type": "bg_event_type_0", + "x": 50, + "y": 14, + "elevation": 0, + "script": "SaffronCity_Duplicate_EventScript_167435" + }, + { + "type": "bg_event_type_0", + "x": 40, + "y": 38, + "elevation": 0, + "script": "SaffronCity_Duplicate_EventScript_167468" + }, + { + "type": "bg_event_type_0", + "x": 49, + "y": 22, + "elevation": 0, + "script": "SaffronCity_Duplicate_EventScript_16747A" + } + ] +} diff --git a/data/maps/SaffronCity_Duplicate/scripts.inc b/data/maps/SaffronCity_Duplicate/scripts.inc new file mode 100644 index 000000000..b19502c90 --- /dev/null +++ b/data/maps/SaffronCity_Duplicate/scripts.inc @@ -0,0 +1,128 @@ +SaffronCity_Duplicate_MapScripts:: @ 816735F + map_script 3, SaffronCity_Duplicate_MapScript1_167365 + .byte 0 + +SaffronCity_Duplicate_MapScript1_167365:: @ 8167365 + setworldmapflag FLAG_WORLD_MAP_SAFFRON_CITY_DUPLICATE + checkflag FLAG_0x23C + call_if 0, EventScript_167372 + end + +EventScript_167372:: @ 8167372 + setobjectxyperm 6, 33, 31 + return + +SaffronCity_Duplicate_EventScript_16737A:: @ 816737A + msgbox gUnknown_8181003, 2 + end + +SaffronCity_Duplicate_EventScript_167383:: @ 8167383 + msgbox gUnknown_818101F, 2 + end + +SaffronCity_Duplicate_EventScript_16738C:: @ 816738C + msgbox gUnknown_818105A, 2 + end + +SaffronCity_Duplicate_EventScript_167395:: @ 8167395 + msgbox gUnknown_8181087, 2 + end + +SaffronCity_Duplicate_EventScript_16739E:: @ 816739E + msgbox gUnknown_81810A7, 2 + end + +SaffronCity_Duplicate_EventScript_1673A7:: @ 81673A7 + msgbox gUnknown_81810D5, 2 + end + +SaffronCity_Duplicate_EventScript_1673B0:: @ 81673B0 + msgbox gUnknown_81810F5, 2 + end + +SaffronCity_Duplicate_EventScript_1673B9:: @ 81673B9 + lock + checkflag FLAG_0x23C + goto_if_eq EventScript_1673D7 + applymovement 6, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81812CA + release + end + +EventScript_1673D7:: @ 81673D7 + textcolor 3 + msgbox gUnknown_8181302 + release + end + +SaffronCity_Duplicate_EventScript_1673E3:: @ 81673E3 + msgbox gUnknown_8181159, 2 + end + +SaffronCity_Duplicate_EventScript_1673EC:: @ 81673EC + msgbox gUnknown_8181189, 2 + end + +SaffronCity_Duplicate_EventScript_1673F5:: @ 81673F5 + msgbox gUnknown_81811BF, 2 + end + +SaffronCity_Duplicate_EventScript_1673FE:: @ 81673FE + msgbox gUnknown_8181225, 2 + end + +SaffronCity_Duplicate_EventScript_167407:: @ 8167407 + lock + faceplayer + waitse + playmoncry SPECIES_PIDGEOT, 0 + msgbox gUnknown_8181286 + waitmoncry + release + end + +SaffronCity_Duplicate_EventScript_16741A:: @ 816741A + msgbox gUnknown_8181299, 2 + end + +SaffronCity_Duplicate_EventScript_167423:: @ 8167423 + msgbox gUnknown_8181326, 3 + end + +SaffronCity_Duplicate_EventScript_16742C:: @ 816742C + msgbox gUnknown_8181354, 3 + end + +SaffronCity_Duplicate_EventScript_167435:: @ 8167435 + lockall + setvar VAR_0x8004, 7 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8181362 + releaseall + end + +SaffronCity_Duplicate_EventScript_16744D:: @ 816744D + msgbox gUnknown_81813AA, 3 + end + +SaffronCity_Duplicate_EventScript_167456:: @ 8167456 + msgbox gUnknown_8181452, 3 + end + +SaffronCity_Duplicate_EventScript_16745F:: @ 816745F + msgbox gUnknown_81814B9, 3 + end + +SaffronCity_Duplicate_EventScript_167468:: @ 8167468 + msgbox gUnknown_81814D3, 3 + end + +SaffronCity_Duplicate_EventScript_167471:: @ 8167471 + msgbox gUnknown_81814E7, 3 + end + +SaffronCity_Duplicate_EventScript_16747A:: @ 816747A + msgbox gUnknown_8181519, 3 + end diff --git a/data/maps/SaffronCity_Duplicate/text.inc b/data/maps/SaffronCity_Duplicate/text.inc new file mode 100644 index 000000000..aaa009647 --- /dev/null +++ b/data/maps/SaffronCity_Duplicate/text.inc @@ -0,0 +1,106 @@ +gUnknown_8181003:: @ 8181003 + .string "What do you want?\n" + .string "Get lost!$" + +gUnknown_818101F:: @ 818101F + .string "BOSS said he'll take this town\n" + .string "in the name of TEAM ROCKET!$" + +gUnknown_818105A:: @ 818105A + .string "Don't get defiant!\n" + .string "Or I'll have to hurt you!$" + +gUnknown_8181087:: @ 8181087 + .string "SAFFRON belongs to TEAM ROCKET!$" + +gUnknown_81810A7:: @ 81810A7 + .string "My life as a criminal makes me feel\n" + .string "so alive!$" + +gUnknown_81810D5:: @ 81810D5 + .string "Ow!\n" + .string "Watch where you're walking!$" + +gUnknown_81810F5:: @ 81810F5 + .string "With SILPH under control, we can\n" + .string "exploit POKéMON around the world!\p" + .string "We'll get stinking rich, yeahah!$" + +gUnknown_8181159:: @ 8181159 + .string "You beat TEAM ROCKET all alone?\n" + .string "That's amazing!$" + +gUnknown_8181189:: @ 8181189 + .string "Yeah! TEAM ROCKET is gone!\n" + .string "It's safe to go out again!$" + +gUnknown_81811BF:: @ 81811BF + .string "People fled from here in droves\n" + .string "when those ROCKETS came.\p" + .string "They should be flocking back to\n" + .string "SAFFRON now.$" + +gUnknown_8181225:: @ 8181225 + .string "I flew here on my PIDGEOT when\n" + .string "I read about SILPH.\p" + .string "It's already over?\n" + .string "I missed the media action…$" + +gUnknown_8181286:: @ 8181286 + .string "PIDGEOT: Bi bibii!$" + +gUnknown_8181299:: @ 8181299 + .string "I saw the ROCKET BOSS escaping\n" + .string "SILPH's building.$" + +gUnknown_81812CA:: @ 81812CA + .string "I'm a security guard.\p" + .string "Suspicious kids I don't allow in!$" + +gUnknown_8181302:: @ 8181302 + .string "…\n" + .string "Snore…\p" + .string "Hah! He's taking a snooze!$" + +gUnknown_8181326:: @ 8181326 + .string "SAFFRON CITY\n" + .string "Shining, Golden Land of Commerce$" + +gUnknown_8181354:: @ 8181354 + .string "FIGHTING DOJO$" + +gUnknown_8181362:: @ 8181362 + .string "SAFFRON CITY POKéMON GYM\n" + .string "LEADER: SABRINA\l" + .string "The Master of PSYCHIC POKéMON!$" + +gUnknown_81813AA:: @ 81813AA + .string "TRAINER TIPS\p" + .string "FULL HEAL cures all ailments like\n" + .string "burns, paralysis, poisoning,\l" + .string "freezing, and sleep.\p" + .string "It costs a bit more, but it's more\n" + .string "convenient than buying other items.$" + +gUnknown_8181452:: @ 8181452 + .string "TRAINER TIPS\p" + .string "The new GREAT BALL offers improved\n" + .string "catching rates.\p" + .string "Try it on those hard-to-catch\n" + .string "POKéMON.$" + +gUnknown_81814B9:: @ 81814B9 + .string "SILPH CO. OFFICE BUILDING$" + +gUnknown_81814D3:: @ 81814D3 + .string "MR. PSYCHIC'S HOUSE$" + +gUnknown_81814E7:: @ 81814E7 + .string "SILPH's latest product!\n" + .string "Release to be determined…$" + +gUnknown_8181519:: @ 8181519 + .string "POKéMON TRAINER FAN CLUB\p" + .string "Many TRAINERS have scribbled their\n" + .string "names on this sign.$" + diff --git a/data/maps/SaffronCity_Gym/map.json b/data/maps/SaffronCity_Gym/map.json new file mode 100644 index 000000000..8b27fea95 --- /dev/null +++ b/data/maps/SaffronCity_Gym/map.json @@ -0,0 +1,384 @@ +{ + "id": "MAP_SAFFRON_CITY_GYM", + "name": "SaffronCity_Gym", + "layout": "LAYOUT_SAFFRON_CITY_GYM", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 1, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "41", + "x": 24, + "y": 18, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SaffronCity_Gym_EventScript_16EEC3", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 24, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SaffronCity_Gym_EventScript_16EE88", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SaffronCity_Gym_EventScript_16EEDA", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 14, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SaffronCity_Gym_EventScript_16EEF1", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 4, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SaffronCity_Gym_EventScript_16EF08", + "flag": "0" + }, + { + "graphics_id": "58", + "x": 4, + "y": 18, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SaffronCity_Gym_EventScript_16EF1F", + "flag": "0" + }, + { + "graphics_id": "85", + "x": 14, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Gym_EventScript_16EDD8", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 24, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SaffronCity_Gym_EventScript_16EE9F", + "flag": "0" + }, + { + "graphics_id": "91", + "x": 15, + "y": 20, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Gym_EventScript_16EF36", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 13, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 3 + }, + { + "x": 14, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 3 + }, + { + "x": 15, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 3 + }, + { + "x": 18, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 32 + }, + { + "x": 0, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 22 + }, + { + "x": 0, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 20 + }, + { + "x": 0, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 30 + }, + { + "x": 0, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 11 + }, + { + "x": 0, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 28 + }, + { + "x": 0, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 19 + }, + { + "x": 8, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 18 + }, + { + "x": 8, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 7 + }, + { + "x": 8, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 17 + }, + { + "x": 8, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 15 + }, + { + "x": 8, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 26 + }, + { + "x": 8, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 13 + }, + { + "x": 12, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 24 + }, + { + "x": 12, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 12 + }, + { + "x": 16, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 10 + }, + { + "x": 16, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 9 + }, + { + "x": 18, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 5 + }, + { + "x": 20, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 23 + }, + { + "x": 20, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 4 + }, + { + "x": 20, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 21 + }, + { + "x": 20, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 16 + }, + { + "x": 20, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 27 + }, + { + "x": 20, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 14 + }, + { + "x": 28, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 25 + }, + { + "x": 28, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 8 + }, + { + "x": 28, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 31 + }, + { + "x": 28, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 6 + }, + { + "x": 28, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 29 + }, + { + "x": 28, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 12, + "y": 20, + "elevation": 0, + "script": "SaffronCity_Gym_EventScript_16EF55" + }, + { + "type": "bg_event_type_0", + "x": 16, + "y": 20, + "elevation": 0, + "script": "SaffronCity_Gym_EventScript_16EF55" + } + ] +} diff --git a/data/maps/SaffronCity_Gym/scripts.inc b/data/maps/SaffronCity_Gym/scripts.inc new file mode 100644 index 000000000..cbd8b2d02 --- /dev/null +++ b/data/maps/SaffronCity_Gym/scripts.inc @@ -0,0 +1,110 @@ +SaffronCity_Gym_MapScripts:: @ 816EDD7 + .byte 0 + +SaffronCity_Gym_EventScript_16EDD8:: @ 816EDD8 + setvar VAR_0x8004, 7 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + trainerbattle 1, 420, 0, Text_19B53C, Text_19B602, EventScript_16EE0A + checkflag FLAG_0x29A + goto_if 0, EventScript_16EE3D + msgbox gUnknown_819B7F2 + release + end + +EventScript_16EE0A:: @ 816EE0A + setvar VAR_0x8004, 7 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + setvar VAR_0x8004, 7 + setvar VAR_0x8005, 3 + special SetFlavorTextFlagFromSpecialVars + clearflag FLAG_0x0AE + setflag FLAG_0x4B5 + setflag FLAG_0x825 + setvar VAR_0x8008, 6 + call EventScript_1A6B18 + goto EventScript_16EE3D + end + +EventScript_16EE3D:: @ 816EE3D + msgbox gUnknown_819B6FA + checkitemspace ITEM_TM04, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16EE7E + additem ITEM_TM04, 1 + giveitemfanfaremsg gUnknown_819B7D3, ITEM_TM04 + setflag FLAG_0x29A + msgbox gUnknown_819B685 + release + end + +EventScript_16EE7E:: @ 816EE7E + msgbox gUnknown_819B849 + release + end + +SaffronCity_Gym_EventScript_16EE88:: @ 816EE88 + trainerbattle 0, 280, 0, Text_19B936, Text_19B957 + msgbox gUnknown_819B96D, 6 + end + +SaffronCity_Gym_EventScript_16EE9F:: @ 816EE9F + trainerbattle 0, 281, 0, Text_19BA45, Text_19BA9E + setvar VAR_0x8004, 7 + setvar VAR_0x8005, 5 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_819BAB4, 6 + end + +SaffronCity_Gym_EventScript_16EEC3:: @ 816EEC3 + trainerbattle 0, 282, 0, Text_19BB49, Text_19BBA1 + msgbox gUnknown_819BBB3, 6 + end + +SaffronCity_Gym_EventScript_16EEDA:: @ 816EEDA + trainerbattle 0, 283, 0, Text_19BC57, Text_19BCBC + msgbox gUnknown_819BCC4, 6 + end + +SaffronCity_Gym_EventScript_16EEF1:: @ 816EEF1 + trainerbattle 0, 462, 0, Text_19B86A, Text_19B8A8 + msgbox gUnknown_819B8B9, 6 + end + +SaffronCity_Gym_EventScript_16EF08:: @ 816EF08 + trainerbattle 0, 463, 0, Text_19B998, Text_19B9EC + msgbox gUnknown_819B9F7, 6 + end + +SaffronCity_Gym_EventScript_16EF1F:: @ 816EF1F + trainerbattle 0, 464, 0, Text_19BAE8, Text_19BB0D + msgbox gUnknown_819BB1F, 6 + end + +SaffronCity_Gym_EventScript_16EF36:: @ 816EF36 + lock + faceplayer + checkflag FLAG_0x4B5 + goto_if_eq EventScript_16EF4B + msgbox gUnknown_819BCF6 + release + end + +EventScript_16EF4B:: @ 816EF4B + msgbox gUnknown_819BDBB + release + end + +SaffronCity_Gym_EventScript_16EF55:: @ 816EF55 + lockall + checkflag FLAG_0x825 + goto_if_eq EventScript_16EF69 + msgbox gUnknown_819BDFE + releaseall + end + +EventScript_16EF69:: @ 816EF69 + msgbox gUnknown_819BE37 + releaseall + end diff --git a/data/maps/SaffronCity_Gym/text.inc b/data/maps/SaffronCity_Gym/text.inc new file mode 100644 index 000000000..2d2f1ad1a --- /dev/null +++ b/data/maps/SaffronCity_Gym/text.inc @@ -0,0 +1,160 @@ +Text_19B53C:: @ 819B53C + .string "I had a vision of your arrival.\p" + .string "I have had psychic powers since\n" + .string "I was a child.\p" + .string "It started when a spoon I\n" + .string "carelessly tossed, bent.\p" + .string "I dislike battling, but if you wish,\n" + .string "I will show you my powers!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +Text_19B602:: @ 819B602 + .string "This loss shocks me!\n" + .string "But, a loss is a loss.\p" + .string "I admit, I didn't work hard enough\n" + .string "to win.\p" + .string "Your victory has earned you the\n" + .string "MARSHBADGE.$" + +gUnknown_819B685:: @ 819B685 + .string "Psychic power isn't something that\n" + .string "only a few people have.\p" + .string "Everyone has psychic power.\n" + .string "People just don't realize it.$" + +gUnknown_819B6FA:: @ 819B6FA + .string "The MARSHBADGE makes POKéMON up\n" + .string "to Lv. 70 obey you.\p" + .string "Stronger POKéMON will become wild,\n" + .string "ignoring your orders in battle.\p" + .string "Just don't raise your POKéMON too\n" + .string "much to avoid that problem.\p" + .string "Wait, please take this TM with you.$" + +gUnknown_819B7D3:: @ 819B7D3 + .string "{PLAYER} received TM04 from\n" + .string "SABRINA.$" + +gUnknown_819B7F2:: @ 819B7F2 + .string "TM04 is CALM MIND.\p" + .string "It makes the POKéMON concentrate\n" + .string "to raise both SP. ATK and SP. DEF.$" + +gUnknown_819B849:: @ 819B849 + .string "Your BAG is full of other items.$" + +Text_19B86A:: @ 819B86A + .string "SABRINA is far younger than I,\n" + .string "but she has earned my respect.$" + +Text_19B8A8:: @ 819B8A8 + .string "Not good enough!$" + +gUnknown_819B8B9:: @ 819B8B9 + .string "In a battle of equals, the one\n" + .string "with the stronger will wins.\p" + .string "If you wish to beat SABRINA, focus\n" + .string "and will yourself to victory.$" + +Text_19B936:: @ 819B936 + .string "Does our unseen power scare you?$" + +Text_19B957:: @ 819B957 + .string "I never foresaw this!$" + +gUnknown_819B96D:: @ 819B96D + .string "PSYCHIC POKéMON fear only ghosts\n" + .string "and bugs!$" + +Text_19B998:: @ 819B998 + .string "POKéMON take on the appearance of\n" + .string "their TRAINERS.\p" + .string "Your POKéMON must be tough, then!$" + +Text_19B9EC:: @ 819B9EC + .string "I knew it!$" + +gUnknown_819B9F7:: @ 819B9F7 + .string "I have much to learn still…\p" + .string "I must master PSYCHIC and teach it\n" + .string "to my POKéMON…$" + +Text_19BA45:: @ 819BA45 + .string "You understand, don't you?\p" + .string "That power alone isn't enough to\n" + .string "win in the world of POKéMON?$" + +Text_19BA9E:: @ 819BA9E + .string "I don't believe this!$" + +gUnknown_819BAB4:: @ 819BAB4 + .string "SABRINA just wiped out the KARATE\n" + .string "MASTER next door.$" + +Text_19BAE8:: @ 819BAE8 + .string "You and I, our POKéMON shall\n" + .string "battle!$" + +Text_19BB0D:: @ 819BB0D + .string "I lost after all!$" + +gUnknown_819BB1F:: @ 819BB1F + .string "I knew that this was going to take\n" + .string "place.$" + +Text_19BB49:: @ 819BB49 + .string "SABRINA is young, but she's also\n" + .string "our highly skilled LEADER.\p" + .string "You won't reach her easily!$" + +Text_19BBA1:: @ 819BBA1 + .string "Ow!\n" + .string "Down and out!$" + +gUnknown_819BBB3:: @ 819BBB3 + .string "There used to be two POKéMON GYMS\n" + .string "in SAFFRON.\p" + .string "The FIGHTING DOJO next door lost\n" + .string "its GYM status, though.\p" + .string "We simply creamed them when we\n" + .string "decided to have just one GYM.$" + +Text_19BC57:: @ 819BC57 + .string "SAFFRON POKéMON GYM is famous for\n" + .string "training psychics.\p" + .string "You want to see SABRINA, don't\n" + .string "you? I can tell!$" + +Text_19BCBC:: @ 819BCBC + .string "Arrrgh!$" + +gUnknown_819BCC4:: @ 819BCC4 + .string "That's right! I used telepathy to\n" + .string "read your mind!$" + +gUnknown_819BCF6:: @ 819BCF6 + .string "Yo!\n" + .string "Champ in the making!\p" + .string "SABRINA's POKéMON use psychic\n" + .string "power instead of force.\p" + .string "FIGHTING POKéMON are especially\n" + .string "weak against PSYCHIC POKéMON.\p" + .string "They'll get destroyed before they\n" + .string "can even aim a punch!$" + +gUnknown_819BDBB:: @ 819BDBB + .string "Psychic power, huh?\p" + .string "If I had that, I'd make a bundle\n" + .string "at the slots!$" + +gUnknown_819BDFE:: @ 819BDFE + .string "SAFFRON POKéMON GYM\n" + .string "LEADER: SABRINA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +gUnknown_819BE37:: @ 819BE37 + .string "SAFFRON POKéMON GYM\n" + .string "LEADER: SABRINA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/SaffronCity_House1_1F/map.json b/data/maps/SaffronCity_House1_1F/map.json new file mode 100644 index 000000000..20fca424a --- /dev/null +++ b/data/maps/SaffronCity_House1_1F/map.json @@ -0,0 +1,88 @@ +{ + "id": "MAP_SAFFRON_CITY_HOUSE1_1F", + "name": "SaffronCity_House1_1F", + "layout": "LAYOUT_SAFFRON_CITY_HOUSE1_1F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 8, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House1_1F_EventScript_16EB40", + "flag": "0" + }, + { + "graphics_id": "31", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House1_1F_EventScript_16EB37", + "flag": "0" + }, + { + "graphics_id": "117", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House1_1F_EventScript_16EB49", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 1 + }, + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_HOUSE1_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_House1_1F/scripts.inc b/data/maps/SaffronCity_House1_1F/scripts.inc new file mode 100644 index 000000000..eb0bcd429 --- /dev/null +++ b/data/maps/SaffronCity_House1_1F/scripts.inc @@ -0,0 +1,20 @@ +SaffronCity_House1_1F_MapScripts:: @ 816EB36 + .byte 0 + +SaffronCity_House1_1F_EventScript_16EB37:: @ 816EB37 + msgbox gUnknown_819AB9B, 2 + end + +SaffronCity_House1_1F_EventScript_16EB40:: @ 816EB40 + msgbox gUnknown_819ABD7, 2 + end + +SaffronCity_House1_1F_EventScript_16EB49:: @ 816EB49 + lock + faceplayer + waitse + playmoncry SPECIES_CHANSEY, 0 + msgbox gUnknown_819AC4B + waitmoncry + release + end diff --git a/data/maps/SaffronCity_House1_1F/text.inc b/data/maps/SaffronCity_House1_1F/text.inc new file mode 100644 index 000000000..04bedb057 --- /dev/null +++ b/data/maps/SaffronCity_House1_1F/text.inc @@ -0,0 +1,32 @@ +Text_19A9E7:: @ 819A9E7 + .string "AGATHA's GHOST-type POKéMON are\n" + .string "horrifically terrifying in toughness.\p" + .string "I took my FIGHTING-type POKéMON\n" + .string "and raised them to the max.\p" + .string "I went at AGATHA feeling pretty\n" + .string "confident, but she whupped us.\p" + .string "That old lady's also got a really\n" + .string "short fuse, too.\p" + .string "It doesn't take anything to get\n" + .string "that scary lady hollering.$" + +Text_19AB16:: @ 819AB16 + .string "Maybe becoming an ELITE FOUR\n" + .string "member is in the blood.\p" + .string "From what I've heard, LANCE has\n" + .string "a cousin who's a GYM LEADER\l" + .string "somewhere far away.$" + +gUnknown_819AB9B:: @ 819AB9B + .string "My daughter is so self-centered.\n" + .string "She has but a few friends.$" + +gUnknown_819ABD7:: @ 819ABD7 + .string "My daughter likes to mimic people.\n" + .string "It's rather vexing.\p" + .string "Her mimicry has earned her the\n" + .string "nickname COPYCAT around here.$" + +gUnknown_819AC4B:: @ 819AC4B + .string "CHANSEY: Chaan! Sii!$" + diff --git a/data/maps/SaffronCity_House1_2F/map.json b/data/maps/SaffronCity_House1_2F/map.json new file mode 100644 index 000000000..3a1d497f9 --- /dev/null +++ b/data/maps/SaffronCity_House1_2F/map.json @@ -0,0 +1,104 @@ +{ + "id": "MAP_SAFFRON_CITY_HOUSE1_2F", + "name": "SaffronCity_House1_2F", + "layout": "LAYOUT_SAFFRON_CITY_HOUSE1_2F", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "132", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House1_2F_EventScript_16EB5D", + "flag": "0" + }, + { + "graphics_id": "120", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House1_2F_EventScript_16EB70", + "flag": "0" + }, + { + "graphics_id": "115", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House1_2F_EventScript_16EB70", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House1_2F_EventScript_16EB7B", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_HOUSE1_1F", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 1, + "y": 1, + "elevation": 0, + "script": "SaffronCity_House1_2F_EventScript_16EBC9" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 5, + "elevation": 0, + "script": "SaffronCity_House1_2F_EventScript_16EBD2" + }, + { + "type": "hidden_item", + "x": 2, + "y": 1, + "elevation": 0, + "item": "ITEM_NUGGET", + "flag": "26", + "unknown": 1 + } + ] +} diff --git a/data/maps/SaffronCity_House1_2F/scripts.inc b/data/maps/SaffronCity_House1_2F/scripts.inc new file mode 100644 index 000000000..8a6227b38 --- /dev/null +++ b/data/maps/SaffronCity_House1_2F/scripts.inc @@ -0,0 +1,52 @@ +SaffronCity_House1_2F_MapScripts:: @ 816EB5C + .byte 0 + +SaffronCity_House1_2F_EventScript_16EB5D:: @ 816EB5D + lock + faceplayer + waitse + playmoncry SPECIES_DODUO, 0 + msgbox gUnknown_819B030 + waitmoncry + release + end + +SaffronCity_House1_2F_EventScript_16EB70:: @ 816EB70 + lock + msgbox gUnknown_819B071 + release + end + +SaffronCity_House1_2F_EventScript_16EB7B:: @ 816EB7B + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + checkitem ITEM_POKE_DOLL, 1 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_1C4CF6 + checkplayergender + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16EBB7 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_16EBC0 + release + end + +EventScript_16EBB7:: @ 816EBB7 + msgbox gUnknown_819AC60 + return + +EventScript_16EBC0:: @ 816EBC0 + msgbox gUnknown_819ACF1 + return + +SaffronCity_House1_2F_EventScript_16EBC9:: @ 816EBC9 + msgbox gUnknown_819B0D0, 3 + end + +SaffronCity_House1_2F_EventScript_16EBD2:: @ 816EBD2 + msgbox gUnknown_819B0A0, 3 + end diff --git a/data/maps/SaffronCity_House1_2F/text.inc b/data/maps/SaffronCity_House1_2F/text.inc new file mode 100644 index 000000000..d9fc46f7c --- /dev/null +++ b/data/maps/SaffronCity_House1_2F/text.inc @@ -0,0 +1,100 @@ +gUnknown_819AC60:: @ 819AC60 + .string "{PLAYER}: Hi!\n" + .string "Do you like POKéMON?\p" + .string "{PLAYER}: Uh, no, I just asked you.\p" + .string "{PLAYER}: Huh?\n" + .string "You're strange!\p" + .string "COPYCAT: Hmm? Quit mimicking?\n" + .string "But, that's my favorite hobby!$" + +gUnknown_819ACF1:: @ 819ACF1 + .string "{PLAYER}: Hi.\n" + .string "You must like POKéMON.\p" + .string "{PLAYER}: No, not me.\n" + .string "I asked you.\p" + .string "{PLAYER}: Pardon?\n" + .string "You're weird!\l" + .string " \l" + .string "COPYCAT: Hmm? Quit mimicking?\l" + .string "But that's my favorite hobby!$" + +Text_19AD85:: @ 819AD85 + .string "Oh wow!\n" + .string "A POKé DOLL!\p" + .string "For me?\n" + .string "Thank you!\p" + .string "You know what?\n" + .string "I can teach the move MIMIC.$" + +Text_19ADD8:: @ 819ADD8 + .string "Don't you like MIMIC?$" + +Text_19ADEE:: @ 819ADEE + .string "I really love MIMIC!\n" + .string "Who's going to learn it?$" + +Text_19AE1C:: @ 819AE1C + .string "{PLAYER}: Hi!\n" + .string "Thanks for earlier!\p" + .string "{PLAYER}: Pardon?\p" + .string "{PLAYER}: Is it that fun to mimic my\n" + .string "every move?\p" + .string "COPYCAT: You bet!\n" + .string "It's a scream!$" + +Text_19AE90:: @ 819AE90 + .string "{PLAYER}: Hi!\n" + .string "Thanks for what you did for us.\p" + .string "{PLAYER}: Pardon?\p" + .string "{PLAYER}: Is it really that fun to\n" + .string "copy what I say and do?\p" + .string "COPYCAT: You bet!\n" + .string "It's a scream!$" + +Text_19AF1A:: @ 819AF1A + .string "にもつが いっぱいね!$" + +Text_19AF26:: @ 819AF26 + .string "{PLAYER}“やあ! こんにちは!\n" + .string "きみ ポケモン すきかい?\p" + .string "{PLAYER}“ぼく じゃなくって\n" + .string "きみに きいてるんだ けど\p" + .string "{PLAYER}“‥‥ えー なんだよ!\n" + .string "ヘンな やつ だなあ!\p" + .string "モノマネむすめ“‥‥ なに?\n" + .string "ひとの マネ すんなって?\p" + .string "だって あたし \n" + .string "ものまね しゅみ なんだ もん!”$" + +Text_19AFB0:: @ 819AFB0 + .string "{PLAYER}“こんにちは!\n" + .string "ポケモン すきなのね?\p" + .string "{PLAYER}“わたし じゃなくって\n" + .string "あなたに きいてるんだ けど\p" + .string "{PLAYER}“‥ えー なんなの!\n" + .string "おかしなこ ねー!\p" + .string "モノマネむすめ“‥ なに?\n" + .string "ひとの マネ すんなって?\p" + .string "だって あたし\n" + .string "ものまね しゅみ なんだ もん!$" + +gUnknown_819B030:: @ 819B030 + .string "DODUO: Giiih!\p" + .string "PRETTY MIRROR LOOK AT ME,\n" + .string "SEE HOW PRETTY I CAN BE?$" + +gUnknown_819B071:: @ 819B071 + .string "This is a rare POKéMON!\n" + .string "Huh? It's only a doll!$" + +gUnknown_819B0A0:: @ 819B0A0 + .string "A game with MARIO wearing a bucket\n" + .string "on his head!$" + +gUnknown_819B0D0:: @ 819B0D0 + .string "…\p" + .string "My Secrets!\p" + .string "Skill: Mimicry!\n" + .string "Hobby: Collecting dolls!\l" + .string "Favorite POKéMON: CLEFAIRY!$" + diff --git a/data/maps/SaffronCity_House2/map.json b/data/maps/SaffronCity_House2/map.json new file mode 100644 index 000000000..81cbaddb9 --- /dev/null +++ b/data/maps/SaffronCity_House2/map.json @@ -0,0 +1,102 @@ +{ + "id": "MAP_SAFFRON_CITY_HOUSE2", + "name": "SaffronCity_House2", + "layout": "LAYOUT_HOUSE5", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "116", + "x": 0, + "y": 5, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 4, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House2_EventScript_16EF86", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House2_EventScript_16EF74", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House2_EventScript_16EF7D", + "flag": "0" + }, + { + "graphics_id": "105", + "x": 5, + "y": 4, + "elevation": 0, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 4 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 5, + "y": 4, + "elevation": 3, + "script": "SaffronCity_House2_EventScript_16EF99" + } + ] +} diff --git a/data/maps/SaffronCity_House2/scripts.inc b/data/maps/SaffronCity_House2/scripts.inc new file mode 100644 index 000000000..9cc63072c --- /dev/null +++ b/data/maps/SaffronCity_House2/scripts.inc @@ -0,0 +1,24 @@ +SaffronCity_House2_MapScripts:: @ 816EF73 + .byte 0 + +SaffronCity_House2_EventScript_16EF74:: @ 816EF74 + msgbox gUnknown_819BE74, 2 + end + +SaffronCity_House2_EventScript_16EF7D:: @ 816EF7D + msgbox gUnknown_819BED5, 2 + end + +SaffronCity_House2_EventScript_16EF86:: @ 816EF86 + lock + faceplayer + waitse + playmoncry SPECIES_PIDGEY, 0 + msgbox gUnknown_819BEC3 + waitmoncry + release + end + +SaffronCity_House2_EventScript_16EF99:: @ 816EF99 + msgbox gUnknown_819BF07, 3 + end diff --git a/data/maps/SaffronCity_House2/text.inc b/data/maps/SaffronCity_House2/text.inc new file mode 100644 index 000000000..9558880b7 --- /dev/null +++ b/data/maps/SaffronCity_House2/text.inc @@ -0,0 +1,20 @@ +gUnknown_819BE74:: @ 819BE74 + .string "…Thank you for writing.\n" + .string "I hope to see you soon!\p" + .string "…Hey!\n" + .string "Don't look at my letter!$" + +gUnknown_819BEC3:: @ 819BEC3 + .string "PIDGEY: Kurukkoo!$" + +gUnknown_819BED5:: @ 819BED5 + .string "The COPYCAT is cute!\n" + .string "I'm getting her a POKé DOLL.$" + +gUnknown_819BF07:: @ 819BF07 + .string "I was given a PP UP as a gift.\p" + .string "It's used to increase the PP of\n" + .string "a POKéMON's move.\p" + .string "I should use it on a powerful move\n" + .string "with only a few PP.$" + diff --git a/data/maps/SaffronCity_House3/map.json b/data/maps/SaffronCity_House3/map.json new file mode 100644 index 000000000..be9412971 --- /dev/null +++ b/data/maps/SaffronCity_House3/map.json @@ -0,0 +1,55 @@ +{ + "id": "MAP_SAFFRON_CITY_HOUSE3", + "name": "SaffronCity_House3", + "layout": "LAYOUT_HOUSE5", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_House3_EventScript_16F05F", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 7 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 7 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 7 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_House3/scripts.inc b/data/maps/SaffronCity_House3/scripts.inc new file mode 100644 index 000000000..89a44eecd --- /dev/null +++ b/data/maps/SaffronCity_House3/scripts.inc @@ -0,0 +1,28 @@ +SaffronCity_House3_MapScripts:: @ 816F05E + .byte 0 + +SaffronCity_House3_EventScript_16F05F:: @ 816F05F + lock + faceplayer + checkflag FLAG_0x245 + goto_if_eq EventScript_16F0B5 + msgbox gUnknown_819C142 + checkitemspace ITEM_TM29, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16F0AB + additem ITEM_TM29, 1 + giveitemfanfaremsg gUnknown_819C16C, ITEM_TM29 + msgbox gUnknown_819C18F + setflag FLAG_0x245 + release + end + +EventScript_16F0AB:: @ 816F0AB + msgbox gUnknown_819C1FC + release + end + +EventScript_16F0B5:: @ 816F0B5 + msgbox gUnknown_819C18F + release + end diff --git a/data/maps/SaffronCity_House3/text.inc b/data/maps/SaffronCity_House3/text.inc new file mode 100644 index 000000000..42699924f --- /dev/null +++ b/data/maps/SaffronCity_House3/text.inc @@ -0,0 +1,18 @@ +gUnknown_819C142:: @ 819C142 + .string "…Wait! Don't say a word!\p" + .string "You wanted this!$" + +gUnknown_819C16C:: @ 819C16C + .string "{PLAYER} received TM29\n" + .string "from MR. PSYCHIC.$" + +gUnknown_819C18F:: @ 819C18F + .string "You already know, don't you?\n" + .string "TM29 is PSYCHIC.\p" + .string "It's an attack that may also lower\n" + .string "the target's special stats.$" + +gUnknown_819C1FC:: @ 819C1FC + .string "Where do you plan to put this?\n" + .string "You've no room.$" + diff --git a/data/maps/SaffronCity_Mart/map.json b/data/maps/SaffronCity_Mart/map.json new file mode 100644 index 000000000..b2882fff3 --- /dev/null +++ b/data/maps/SaffronCity_Mart/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_SAFFRON_CITY_MART", + "name": "SaffronCity_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Mart_EventScript_16EFB5", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 1, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Mart_EventScript_16EFAC", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_Mart_EventScript_16EFA3", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 5 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 5 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_Mart/scripts.inc b/data/maps/SaffronCity_Mart/scripts.inc new file mode 100644 index 000000000..509fd37b6 --- /dev/null +++ b/data/maps/SaffronCity_Mart/scripts.inc @@ -0,0 +1,35 @@ +SaffronCity_Mart_MapScripts:: @ 816EFA2 + .byte 0 + +SaffronCity_Mart_EventScript_16EFA3:: @ 816EFA3 + msgbox gUnknown_819BFF1, 2 + end + +SaffronCity_Mart_EventScript_16EFAC:: @ 816EFAC + msgbox gUnknown_819BF8F, 2 + end + +SaffronCity_Mart_EventScript_16EFB5:: @ 816EFB5 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16EFDC + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16EFDC:: @ 816EFDC + .2byte ITEM_GREAT_BALL + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end diff --git a/data/maps/SaffronCity_Mart/text.inc b/data/maps/SaffronCity_Mart/text.inc new file mode 100644 index 000000000..5acbdbd9c --- /dev/null +++ b/data/maps/SaffronCity_Mart/text.inc @@ -0,0 +1,10 @@ +gUnknown_819BF8F:: @ 819BF8F + .string "MAX REPEL keeps weaker POKéMON\n" + .string "from appearing.\p" + .string "MAX REPEL stays effective longer\n" + .string "than SUPER REPEL.$" + +gUnknown_819BFF1:: @ 819BFF1 + .string "REVIVE is costly, but it revives\n" + .string "fainted POKéMON!$" + diff --git a/data/maps/SaffronCity_PokemonCenter_1F/map.json b/data/maps/SaffronCity_PokemonCenter_1F/map.json new file mode 100644 index 000000000..2e26f7368 --- /dev/null +++ b/data/maps/SaffronCity_PokemonCenter_1F/map.json @@ -0,0 +1,127 @@ +{ + "id": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", + "name": "SaffronCity_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_1F_EventScript_16EFFB", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_1F_EventScript_16F004", + "flag": "0" + }, + { + "graphics_id": "31", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_1F_EventScript_16F00D", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_1F_EventScript_16F016", + "flag": "0" + }, + { + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_1F_EventScript_1ACEEC", + "flag": "174" + }, + { + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_1F_EventScript_1ACEEC", + "flag": "174" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 6 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 6 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 6 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_PokemonCenter_1F/scripts.inc b/data/maps/SaffronCity_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..65c37eaf3 --- /dev/null +++ b/data/maps/SaffronCity_PokemonCenter_1F/scripts.inc @@ -0,0 +1,37 @@ +SaffronCity_PokemonCenter_1F_MapScripts:: @ 816EFEC + map_script 3, SaffronCity_PokemonCenter_1F_MapScript1_16EFF7 + map_script 5, SaffronCity_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +SaffronCity_PokemonCenter_1F_MapScript1_16EFF7:: @ 816EFF7 + setrespawn SPAWN_SAFFRON_CITY + end + +SaffronCity_PokemonCenter_1F_EventScript_16EFFB:: @ 816EFFB + lock + faceplayer + call EventScript_1A6578 + release + end + +SaffronCity_PokemonCenter_1F_EventScript_16F004:: @ 816F004 + msgbox gUnknown_819C058, 2 + end + +SaffronCity_PokemonCenter_1F_EventScript_16F00D:: @ 816F00D + msgbox gUnknown_819C023, 2 + end + +SaffronCity_PokemonCenter_1F_EventScript_16F016:: @ 816F016 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if_eq EventScript_16F02D + msgbox gUnknown_819C0B4 + release + end + +EventScript_16F02D:: @ 816F02D + msgbox gUnknown_819C102 + release + end diff --git a/data/maps/SaffronCity_PokemonCenter_1F/text.inc b/data/maps/SaffronCity_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..8a3e43a10 --- /dev/null +++ b/data/maps/SaffronCity_PokemonCenter_1F/text.inc @@ -0,0 +1,20 @@ +gUnknown_819C023:: @ 819C023 + .string "POKéMON growth rates differ from\n" + .string "species to species.$" + +gUnknown_819C058:: @ 819C058 + .string "SILPH CO. is widely known to all.\p" + .string "It's a victim of its own fame - it\n" + .string "attracted TEAM ROCKET.$" + +gUnknown_819C0B4:: @ 819C0B4 + .string "Sigh…\n" + .string "Wouldn't this be great?\p" + .string "If the ELITE FOUR came and\n" + .string "stomped TEAM ROCKET?$" + +gUnknown_819C102:: @ 819C102 + .string "TEAM ROCKET took off!\n" + .string "We can go out safely again!\l" + .string "That's great!$" + diff --git a/data/maps/SaffronCity_PokemonCenter_2F/map.json b/data/maps/SaffronCity_PokemonCenter_2F/map.json new file mode 100644 index 000000000..303a60ce7 --- /dev/null +++ b/data/maps/SaffronCity_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_SAFFRON_CITY_POKEMON_CENTER_2F", + "name": "SaffronCity_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_PokemonCenter_2F/scripts.inc b/data/maps/SaffronCity_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..7ebc68fb5 --- /dev/null +++ b/data/maps/SaffronCity_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +SaffronCity_PokemonCenter_2F_MapScripts:: @ 816F037 + map_script 2, SaffronCity_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, SaffronCity_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, SaffronCity_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, SaffronCity_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +SaffronCity_PokemonCenter_2F_EventScript_16F04C:: @ 816F04C + call EventScript_1BB4A3 + end + +EventScript_16F052:: @ 816F052 + call EventScript_1BB6AB + end + +EventScript_16F058:: @ 816F058 + call EventScript_1BB7DE + end diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/map.json b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json new file mode 100644 index 000000000..875585c68 --- /dev/null +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json @@ -0,0 +1,158 @@ +{ + "id": "MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", + "name": "SaffronCity_PokemonTrainerFanClub", + "layout": "LAYOUT_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "24", + "x": 7, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_16F281", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 6, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_16F2F8", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 3, + "y": 13, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_16F36F", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 3, + "y": 12, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_16F3E6", + "flag": "0" + }, + { + "graphics_id": "31", + "x": 9, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_16F45D", + "flag": "110" + }, + { + "graphics_id": "26", + "x": 7, + "y": 12, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_16F4BF", + "flag": "109" + }, + { + "graphics_id": "29", + "x": 9, + "y": 12, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_16F521", + "flag": "111" + }, + { + "graphics_id": "54", + "x": 5, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_16F583", + "flag": "108" + }, + { + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_1ACF7A", + "flag": "157" + }, + { + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_1ACF7A", + "flag": "157" + } + ], + "warp_events": [ + { + "x": 5, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 14 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc new file mode 100644 index 000000000..dce3faa1b --- /dev/null +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc @@ -0,0 +1,454 @@ +SaffronCity_PokemonTrainerFanClub_MapScripts:: @ 816F0BF + map_script 2, SaffronCity_PokemonTrainerFanClub_MapScript1_16F0CA + map_script 3, SaffronCity_PokemonTrainerFanClub_MapScript2_16F144 + .byte 0 + +SaffronCity_PokemonTrainerFanClub_MapScript1_16F0CA:: @ 816F0CA + map_script_2 VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 1, EventScript_16F0D4 + .2byte 0 + +EventScript_16F0D4:: @ 816F0D4 + lockall + textcolor 1 + applymovement 1, Movement_1A75ED + waitmovement 0 + playse SE_PIN + applymovement 1, Movement_1A75DB + waitmovement 0 + applymovement 1, Movement_1A75DD + waitmovement 0 + msgbox gUnknown_819C22B + closemessage + applymovement 1, Movement_16F124 + waitmovement 0 + applymovement 255, Movement_1A75EB + waitmovement 0 + msgbox gUnknown_819C235 + setvar VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 2 + releaseall + end + +Movement_16F124:: @ 816F124 + step_1c + step_1b + step_10 + step_1c + step_10 + step_1b + step_12 + step_end + +Movement_16F12C:: @ 816F12C + step_1b + step_2d + step_10 + step_10 + step_10 + step_12 + step_12 + step_end + +Movement_16F134:: @ 816F134 + step_1f + step_1f + step_1d + step_1d + step_1f + step_1d + step_end + +Movement_16F13B:: @ 816F13B + step_10 + step_30 + step_end + +Movement_16F13E:: @ 816F13E + step_55 + step_1e + step_1e + step_20 + step_2d + step_end + +SaffronCity_PokemonTrainerFanClub_MapScript2_16F144:: @ 816F144 + compare_var_to_value VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 1 + goto_if_eq EventScript_16F267 + compare_var_to_value VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 2 + goto_if_eq EventScript_16F15B + end + +EventScript_16F15B:: @ 816F15B + special sub_81132CC + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16F207 + setvar VAR_0x8004, 1 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16F213 + setvar VAR_0x8004, 2 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16F21F + setvar VAR_0x8004, 3 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16F22B + setvar VAR_0x8004, 4 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16F237 + setvar VAR_0x8004, 5 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16F243 + setvar VAR_0x8004, 6 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16F24F + setvar VAR_0x8004, 7 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_16F25B + end + +EventScript_16F207:: @ 816F207 + setobjectxyperm 1, 5, 2 + setobjectmovementtype 1, 7 + return + +EventScript_16F213:: @ 816F213 + setobjectxyperm 3, 7, 4 + setobjectmovementtype 3, 9 + return + +EventScript_16F21F:: @ 816F21F + setobjectxyperm 4, 2, 2 + setobjectmovementtype 4, 7 + return + +EventScript_16F22B:: @ 816F22B + setobjectxyperm 2, 3, 4 + setobjectmovementtype 2, 10 + return + +EventScript_16F237:: @ 816F237 + setobjectxyperm 6, 4, 6 + setobjectmovementtype 6, 7 + return + +EventScript_16F243:: @ 816F243 + setobjectxyperm 5, 10, 3 + setobjectmovementtype 5, 7 + return + +EventScript_16F24F:: @ 816F24F + setobjectxyperm 7, 7, 5 + setobjectmovementtype 7, 9 + return + +EventScript_16F25B:: @ 816F25B + setobjectxyperm 8, 9, 6 + setobjectmovementtype 8, 9 + return + +EventScript_16F267:: @ 816F267 + call EventScript_16F22B + call EventScript_16F237 + call EventScript_16F243 + call EventScript_16F24F + call EventScript_16F25B + end + +SaffronCity_PokemonTrainerFanClub_EventScript_16F281:: @ 816F281 + lock + faceplayer + setvar VAR_0x8004, 0 + special sub_81133A4 + compare_var_to_value VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0 + goto_if_eq EventScript_16F2EE + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F2C0 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 7 + goto_if_eq EventScript_16F2E4 + msgbox gUnknown_819C420 + release + end + +EventScript_16F2C0:: @ 816F2C0 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F2DA + msgbox gUnknown_819C390 + release + end + +EventScript_16F2DA:: @ 816F2DA + msgbox gUnknown_819C3BD + release + end + +EventScript_16F2E4:: @ 816F2E4 + msgbox gUnknown_819C4A5 + release + end + +EventScript_16F2EE:: @ 816F2EE + msgbox gUnknown_819C55C + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_16F2F8:: @ 816F2F8 + lock + faceplayer + setvar VAR_0x8004, 3 + special sub_81133A4 + compare_var_to_value VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0 + goto_if_eq EventScript_16F365 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F337 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 7 + goto_if_eq EventScript_16F35B + msgbox gUnknown_819CBD3 + release + end + +EventScript_16F337:: @ 816F337 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F351 + msgbox gUnknown_819CB32 + release + end + +EventScript_16F351:: @ 816F351 + msgbox gUnknown_819CB62 + release + end + +EventScript_16F35B:: @ 816F35B + msgbox gUnknown_819CC2B + release + end + +EventScript_16F365:: @ 816F365 + msgbox gUnknown_819CCC2 + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_16F36F:: @ 816F36F + lock + faceplayer + setvar VAR_0x8004, 1 + special sub_81133A4 + compare_var_to_value VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0 + goto_if_eq EventScript_16F3DC + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F3AE + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 7 + goto_if_eq EventScript_16F3D2 + msgbox gUnknown_819C6BA + release + end + +EventScript_16F3AE:: @ 816F3AE + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F3C8 + msgbox gUnknown_819C5A9 + release + end + +EventScript_16F3C8:: @ 816F3C8 + msgbox gUnknown_819C600 + release + end + +EventScript_16F3D2:: @ 816F3D2 + msgbox gUnknown_819C73A + release + end + +EventScript_16F3DC:: @ 816F3DC + msgbox gUnknown_819C7C8 + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_16F3E6:: @ 816F3E6 + lock + faceplayer + setvar VAR_0x8004, 2 + special sub_81133A4 + compare_var_to_value VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0 + goto_if_eq EventScript_16F453 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F425 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 7 + goto_if_eq EventScript_16F449 + msgbox gUnknown_819C986 + release + end + +EventScript_16F425:: @ 816F425 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F43F + msgbox gUnknown_819C81E + release + end + +EventScript_16F43F:: @ 816F43F + msgbox gUnknown_819C8C1 + release + end + +EventScript_16F449:: @ 816F449 + msgbox gUnknown_819C9D5 + release + end + +EventScript_16F453:: @ 816F453 + msgbox gUnknown_819CA7C + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_16F45D:: @ 816F45D + lock + faceplayer + setvar VAR_0x8004, 5 + special sub_81133A4 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F491 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 7 + goto_if_eq EventScript_16F4B5 + msgbox gUnknown_819D01F + release + end + +EventScript_16F491:: @ 816F491 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F4AB + msgbox gUnknown_819CEDF + release + end + +EventScript_16F4AB:: @ 816F4AB + msgbox gUnknown_819CF6D + release + end + +EventScript_16F4B5:: @ 816F4B5 + msgbox gUnknown_819D075 + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_16F4BF:: @ 816F4BF + lock + faceplayer + setvar VAR_0x8004, 4 + special sub_81133A4 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F4F3 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 7 + goto_if_eq EventScript_16F517 + msgbox gUnknown_819CDDA + release + end + +EventScript_16F4F3:: @ 816F4F3 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F50D + msgbox gUnknown_819CCF3 + release + end + +EventScript_16F50D:: @ 816F50D + msgbox gUnknown_819CD4E + release + end + +EventScript_16F517:: @ 816F517 + msgbox gUnknown_819CE3A + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_16F521:: @ 816F521 + lock + faceplayer + setvar VAR_0x8004, 6 + special sub_81133A4 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F555 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 7 + goto_if_eq EventScript_16F579 + msgbox gUnknown_819D1AE + release + end + +EventScript_16F555:: @ 816F555 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F56F + msgbox gUnknown_819D0E3 + release + end + +EventScript_16F56F:: @ 816F56F + msgbox gUnknown_819D148 + release + end + +EventScript_16F579:: @ 816F579 + msgbox gUnknown_819D211 + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_16F583:: @ 816F583 + lock + faceplayer + setvar VAR_0x8004, 7 + special sub_81133A4 + specialvar VAR_RESULT, sub_8113364 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F5B7 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 7 + goto_if_eq EventScript_16F5DB + msgbox gUnknown_819D3D2 + release + end + +EventScript_16F5B7:: @ 816F5B7 + specialvar VAR_RESULT, sub_8113288 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16F5D1 + msgbox gUnknown_819D2B4 + release + end + +EventScript_16F5D1:: @ 816F5D1 + msgbox gUnknown_819D31F + release + end + +EventScript_16F5DB:: @ 816F5DB + msgbox gUnknown_819D477 + release + end diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/text.inc b/data/maps/SaffronCity_PokemonTrainerFanClub/text.inc new file mode 100644 index 000000000..ecbf0b024 --- /dev/null +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/text.inc @@ -0,0 +1,290 @@ +gUnknown_819C22B:: @ 819C22B + .string "Huh?\n" + .string "You…$" + +gUnknown_819C235:: @ 819C235 + .string "Are you maybe…\n" + .string "… …\p" + .string "You are!\n" + .string "You are {PLAYER}!\p" + .string "We were just talking about you!\p" + .string "We were talking about how an\n" + .string "incredibly good TRAINER appeared.\p" + .string "And that someone is you!\n" + .string "You're so cool!\p" + .string "So, we decided that we'll become\n" + .string "your FAN CLUB!\p" + .string "We all hope you'll keep battling\n" + .string "and show us how cool you are.\p" + .string "That way, maybe other people will\n" + .string "become fans just like me.$" + +gUnknown_819C390:: @ 819C390 + .string "I'll always be cheering for you!\p" + .string "Go, {PLAYER}, go!$" + +gUnknown_819C3BD:: @ 819C3BD + .string "I'll always believe in you,\n" + .string "{PLAYER}.\p" + .string "Please show the others what you're\n" + .string "like when you battle seriously.$" + +gUnknown_819C420:: @ 819C420 + .string "I'm sorry.\n" + .string "I was your fan before.\p" + .string "But now, you seem to have lost\n" + .string "the drive you had before.\p" + .string "Lately, I think {STR_VAR_1} has been\n" + .string "a lot cooler.$" + +gUnknown_819C4A5:: @ 819C4A5 + .string "Oh!\n" + .string "{PLAYER}!\p" + .string "Everyone's been all excited about\n" + .string "you recently.\p" + .string "I can understand why.\n" + .string "I know that you're strong.\p" + .string "But, do you know what?\p" + .string "Once I became {STR_VAR_1}'s fan,\n" + .string "I can't just stop being a fan.$" + +gUnknown_819C55C:: @ 819C55C + .string "I think TRAINERS are so cool when\n" + .string "they're battling.\p" + .string "Don't you think so, too?$" + +gUnknown_819C5A9:: @ 819C5A9 + .string "Oh! It's {PLAYER}!\n" + .string "Too cool!\p" + .string "Oh!\n" + .string "Oh, yeah!\p" + .string "Can you autograph something?\n" + .string "How about my shorts?$" + +gUnknown_819C600:: @ 819C600 + .string "However hot it's been…\p" + .string "And however cold it may get…\p" + .string "I've always believed in, and worn,\n" + .string "shorts!\p" + .string "I'm counting on you to keep\n" + .string "winning!\p" + .string "I believe in you just as much as\n" + .string "I believe in shorts!$" + +gUnknown_819C6BA:: @ 819C6BA + .string "BROCK's my hero!\n" + .string "He's a man among men!\p" + .string "Heheh, I got my mom to do\n" + .string "something for me.\p" + .string "I got her to embroider “BROCK”\n" + .string "on my shorts!$" + +gUnknown_819C73A:: @ 819C73A + .string "… …\p" + .string "… …\n" + .string "I'm BROCK's fan!\p" + .string "Even if I were his only fan,\n" + .string "I swear it on my rock-hard will,\l" + .string "and on my shorts!\p" + .string "I'll be his fan to the bitter end!$" + +gUnknown_819C7C8:: @ 819C7C8 + .string "BROCK's the last word on cool,\n" + .string "end of story!\p" + .string "Now there's a guy who I want to\n" + .string "be like!$" + +gUnknown_819C81E:: @ 819C81E + .string "{PLAYER}, I've had the pleasure of\n" + .string "watching you battle.\p" + .string "It brings back sweet memories of\n" + .string "my own long-lost youth.\p" + .string "May you continue to find success.\n" + .string "You have a fan in me!$" + +gUnknown_819C8C1:: @ 819C8C1 + .string "I have journeyed far and wide\n" + .string "across the lands.\p" + .string "But never have I seen a TRAINER\n" + .string "of your magnificence.\p" + .string "Take courage in your abilities\n" + .string "and keep battling on!\p" + .string "Make that a promise to me,\n" + .string "my young idol!$" + +gUnknown_819C986:: @ 819C986 + .string "Hmm…\n" + .string "And you are?\p" + .string "Were you hoping to sign up for\n" + .string "a membership in our FAN CLUB?$" + +gUnknown_819C9D5:: @ 819C9D5 + .string "Ah, so you are the much-\n" + .string "talked-about {PLAYER}.\p" + .string "You certainly do have the look of\n" + .string "a winner.\p" + .string "But for me to accept you as\n" + .string "a true POKéMON great…\p" + .string "… …\p" + .string "You've still a ways to go!$" + +gUnknown_819CA7C:: @ 819CA7C + .string "All of us gathered here are fans\n" + .string "of POKéMON TRAINERS.\p" + .string "The way they look in battle…\n" + .string "They are the picture of coolness.\p" + .string "Perhaps you will be talked about\n" + .string "here, too, if you keep winning.$" + +gUnknown_819CB32:: @ 819CB32 + .string "It's {PLAYER}!\n" + .string "It's {PLAYER}!\p" + .string "I want to be like {PLAYER} one day!$" + +gUnknown_819CB62:: @ 819CB62 + .string "Everyone stopped being {PLAYER}'s\n" + .string "fan…\p" + .string "But that means I can have {PLAYER}\n" + .string "all to myself!\p" + .string "Yay! Go for it!\n" + .string "My one and only {PLAYER}!$" + +gUnknown_819CBD3:: @ 819CBD3 + .string "Do you know what?\n" + .string "I want to be like SABRINA!\p" + .string "I want to be a psychic girl just\n" + .string "like her!$" + +gUnknown_819CC2B:: @ 819CC2B + .string "Even if I'm the only one, I won't\n" + .string "stop being SABRINA's fan.\p" + .string "My dream is to be like SABRINA,\n" + .string "cute, but cool.\p" + .string "I want to be a psychic girl just\n" + .string "like her!$" + +gUnknown_819CCC2:: @ 819CCC2 + .string "I wonder if I can become a cool\n" + .string "TRAINER one day?$" + +gUnknown_819CCF3:: @ 819CCF3 + .string "Oh, man, oh, man!\n" + .string "Cool! Too cool!\p" + .string "…Huh?\n" + .string "No, not you.\p" + .string "Just the way you battle.\n" + .string "That's cool.$" + +gUnknown_819CD4E:: @ 819CD4E + .string "Yo, {PLAYER}!\p" + .string "Looks like I'm the only one left\n" + .string "out of your fans.\p" + .string "But, you know, I like being an only\n" + .string "fan… It's less stressful.\p" + .string "Keep up and at it!$" + +gUnknown_819CDDA:: @ 819CDDA + .string "{STR_VAR_1}'s cool, huh?\n" + .string "I love the way he talks.\p" + .string "I'd really relish a chance to meet\n" + .string "him in person once.$" + +gUnknown_819CE3A:: @ 819CE3A + .string "Huh, can you believe it?\n" + .string "Everyone turned into your fans.\p" + .string "So after all we've been through,\n" + .string "I'm the lone {STR_VAR_1} fan?\p" + .string "Eh, being the one and only\n" + .string "{STR_VAR_1} fan's my style, anyway.$" + +gUnknown_819CEDF:: @ 819CEDF + .string "Oh, my goodness!\n" + .string "Is it really you, {PLAYER}?\p" + .string "I have to tell you, I adore the\n" + .string "way you battle.\p" + .string "I hope you'll keep at it.\n" + .string "I'll be your number one fan!$" + +gUnknown_819CF6D:: @ 819CF6D + .string "Oh, my goodness!\n" + .string "If it isn't {PLAYER}!\p" + .string "It's so disappointing… I realized\n" + .string "I'm your number-one-and-only fan!\p" + .string "Well, it can't be helped!\n" + .string "Let me cheer you on, at least!\p" + .string "Hurray, hurray, {PLAYER}!$" + +gUnknown_819D01F:: @ 819D01F + .string "Recently, {STR_VAR_1} has been on\n" + .string "fire.\p" + .string "The way he battles… It's just \n" + .string "the way that I like it!$" + +gUnknown_819D075:: @ 819D075 + .string "Oh, hello!\n" + .string "If it isn't {PLAYER}!\p" + .string "Lately, all everyone talks about\n" + .string "is you.\p" + .string "I'm feeling lonesome because I\n" + .string "prefer {STR_VAR_1}.$" + +gUnknown_819D0E3:: @ 819D0E3 + .string "Amazing!\n" + .string "{PLAYER}, you really are amazing!\p" + .string "Instead of just watching, maybe\n" + .string "I should become a TRAINER, too.$" + +gUnknown_819D148:: @ 819D148 + .string "I'm your only fan…\n" + .string "Sigh… This is lonely…\p" + .string "Can't you try harder and make the\n" + .string "others take notice of you?$" + +gUnknown_819D1AE:: @ 819D1AE + .string "Master {STR_VAR_1} is so dignified…\n" + .string "He is so my type.\p" + .string "Why can't the others see the\n" + .string "dignity he simply oozes?$" + +gUnknown_819D211:: @ 819D211 + .string "I believe in Master {STR_VAR_1}\n" + .string "with all my heart.\p" + .string "Even if I am the only one to\n" + .string "believe in him.\p" + .string "I won't ever feel lonesome, though.\p" + .string "Not if I keep thinking about Master\n" + .string "{STR_VAR_1}.$" + +gUnknown_819D2B4:: @ 819D2B4 + .string "Hiyah!\p" + .string "Your battling style is most\n" + .string "educational.\p" + .string "I hope that you will keep plugging\n" + .string "away at success, hiyah!$" + +gUnknown_819D31F:: @ 819D31F + .string "Instead of just watching others\n" + .string "battle, battle yourself!\p" + .string "…My DOJO's MASTER chewed me out\n" + .string "like that…\p" + .string "But I won't let that stop me from\n" + .string "being your fan!\p" + .string "I can't stop being your fan!$" + +gUnknown_819D3D2:: @ 819D3D2 + .string "Hiyah! There is but one TRAINER\n" + .string "who has my respect.\p" + .string "And that is none other than my\n" + .string "MASTER at the FIGHTING DOJO.\p" + .string "You should become a fan of my\n" + .string "MASTER like me! Hiyah!$" + +gUnknown_819D477:: @ 819D477 + .string "Hiyah! I respect my MASTER at the\n" + .string "FIGHTING DOJO.\p" + .string "I will never become a fan of\n" + .string "anyone other than my MASTER!\p" + .string "I will even sneak out of the DOJO\n" + .string "to spread word of his greatness.\p" + .string "Hiyah!$" + diff --git a/data/maps/SeafoamIslands_1F/map.json b/data/maps/SeafoamIslands_1F/map.json new file mode 100644 index 000000000..c2927eef5 --- /dev/null +++ b/data/maps/SeafoamIslands_1F/map.json @@ -0,0 +1,109 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_1F", + "name": "SeafoamIslands_1F", + "layout": "LAYOUT_SEAFOAM_ISLANDS_1F", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "97", + "x": 22, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 66, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_1F_EventScript_1BE11D", + "flag": "64" + }, + { + "graphics_id": "97", + "x": 32, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 67, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_1F_EventScript_1BE11D", + "flag": "65" + }, + { + "graphics_id": "92", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_1F_EventScript_1BEBE7", + "flag": "468" + } + ], + "warp_events": [ + { + "x": 10, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 0 + }, + { + "x": 31, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 1 + }, + { + "x": 28, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 2 + }, + { + "x": 6, + "y": 21, + "elevation": 3, + "dest_map": "MAP_ROUTE20", + "dest_warp_id": 0 + }, + { + "x": 32, + "y": 21, + "elevation": 3, + "dest_map": "MAP_ROUTE20", + "dest_warp_id": 1 + }, + { + "x": 21, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 9 + }, + { + "x": 30, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 10 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SeafoamIslands_1F/scripts.inc b/data/maps/SeafoamIslands_1F/scripts.inc new file mode 100644 index 000000000..336c75f9f --- /dev/null +++ b/data/maps/SeafoamIslands_1F/scripts.inc @@ -0,0 +1,7 @@ +SeafoamIslands_1F_MapScripts:: @ 8162F43 + map_script 3, SeafoamIslands_1F_MapScript1_162F49 + .byte 0 + +SeafoamIslands_1F_MapScript1_162F49:: @ 8162F49 + setworldmapflag FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F + end diff --git a/data/maps/SeafoamIslands_B1F/map.json b/data/maps/SeafoamIslands_B1F/map.json new file mode 100644 index 000000000..161ba065c --- /dev/null +++ b/data/maps/SeafoamIslands_B1F/map.json @@ -0,0 +1,150 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_B1F", + "name": "SeafoamIslands_B1F", + "layout": "LAYOUT_SEAFOAM_ISLANDS_B1F", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "97", + "x": 22, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 68, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B1F_EventScript_1BE11D", + "flag": "66" + }, + { + "graphics_id": "97", + "x": 30, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 69, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B1F_EventScript_1BE11D", + "flag": "67" + }, + { + "graphics_id": "92", + "x": 19, + "y": 18, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B1F_EventScript_1BEBF4", + "flag": "469" + }, + { + "graphics_id": "92", + "x": 24, + "y": 14, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B1F_EventScript_1BEC01", + "flag": "470" + } + ], + "warp_events": [ + { + "x": 10, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": 0 + }, + { + "x": 31, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": 1 + }, + { + "x": 28, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 3, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 3 + }, + { + "x": 17, + "y": 9, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 4 + }, + { + "x": 25, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 5 + }, + { + "x": 32, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 6 + }, + { + "x": 23, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 7 + }, + { + "x": 28, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 8 + }, + { + "x": 21, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": 5 + }, + { + "x": 29, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SeafoamIslands_B1F/scripts.inc b/data/maps/SeafoamIslands_B1F/scripts.inc new file mode 100644 index 000000000..25fc3de3c --- /dev/null +++ b/data/maps/SeafoamIslands_B1F/scripts.inc @@ -0,0 +1,2 @@ +SeafoamIslands_B1F_MapScripts:: @ 8162F4D + .byte 0 diff --git a/data/maps/SeafoamIslands_B2F/map.json b/data/maps/SeafoamIslands_B2F/map.json new file mode 100644 index 000000000..b4984b189 --- /dev/null +++ b/data/maps/SeafoamIslands_B2F/map.json @@ -0,0 +1,137 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_B2F", + "name": "SeafoamIslands_B2F", + "layout": "LAYOUT_SEAFOAM_ISLANDS_B2F", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "97", + "x": 22, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 70, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B2F_EventScript_1BE11D", + "flag": "68" + }, + { + "graphics_id": "97", + "x": 30, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 71, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B2F_EventScript_1BE11D", + "flag": "69" + }, + { + "graphics_id": "92", + "x": 18, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B2F_EventScript_1BEC0E", + "flag": "471" + } + ], + "warp_events": [ + { + "x": 7, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": 0 + }, + { + "x": 32, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": 1 + }, + { + "x": 31, + "y": 17, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": 2 + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 3 + }, + { + "x": 17, + "y": 9, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 4 + }, + { + "x": 25, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 5 + }, + { + "x": 32, + "y": 14, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 6 + }, + { + "x": 22, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 7 + }, + { + "x": 29, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": 8 + }, + { + "x": 24, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": 5 + }, + { + "x": 27, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SeafoamIslands_B2F/scripts.inc b/data/maps/SeafoamIslands_B2F/scripts.inc new file mode 100644 index 000000000..e719cc327 --- /dev/null +++ b/data/maps/SeafoamIslands_B2F/scripts.inc @@ -0,0 +1,2 @@ +SeafoamIslands_B2F_MapScripts:: @ 8162F4E + .byte 0 diff --git a/data/maps/SeafoamIslands_B3F/map.json b/data/maps/SeafoamIslands_B3F/map.json new file mode 100644 index 000000000..06815d1da --- /dev/null +++ b/data/maps/SeafoamIslands_B3F/map.json @@ -0,0 +1,172 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_B3F", + "name": "SeafoamIslands_B3F", + "layout": "LAYOUT_SEAFOAM_ISLANDS_B3F", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "97", + "x": 23, + "y": 8, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "70" + }, + { + "graphics_id": "97", + "x": 24, + "y": 8, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "71" + }, + { + "graphics_id": "97", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 77, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B3F_EventScript_1BE11D", + "flag": "74" + }, + { + "graphics_id": "97", + "x": 13, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B3F_EventScript_1BE11D", + "flag": "75" + }, + { + "graphics_id": "97", + "x": 9, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B3F_EventScript_1BE11D", + "flag": "73" + }, + { + "graphics_id": "97", + "x": 6, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 76, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B3F_EventScript_1BE11D", + "flag": "72" + } + ], + "warp_events": [ + { + "x": 8, + "y": 14, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 0 + }, + { + "x": 31, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 1 + }, + { + "x": 31, + "y": 16, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 2 + }, + { + "x": 12, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", + "dest_warp_id": 0 + }, + { + "x": 29, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", + "dest_warp_id": 1 + }, + { + "x": 23, + "y": 9, + "elevation": 1, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 7 + }, + { + "x": 24, + "y": 9, + "elevation": 1, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": 8 + }, + { + "x": 6, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", + "dest_warp_id": 2 + }, + { + "x": 9, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 5, + "y": 12, + "elevation": 0, + "item": "ITEM_NUGGET", + "flag": "29", + "unknown": 1 + } + ] +} diff --git a/data/maps/SeafoamIslands_B3F/scripts.inc b/data/maps/SeafoamIslands_B3F/scripts.inc new file mode 100644 index 000000000..e54e7ceb7 --- /dev/null +++ b/data/maps/SeafoamIslands_B3F/scripts.inc @@ -0,0 +1,103 @@ +SeafoamIslands_B3F_MapScripts:: @ 8162F4F + map_script 3, SeafoamIslands_B3F_MapScript1_162F5A + map_script 2, SeafoamIslands_B3F_MapScript2_162F98 + .byte 0 + +SeafoamIslands_B3F_MapScript1_162F5A:: @ 8162F5A + checkflag FLAG_0x2D2 + call_if 0, EventScript_162F6D + checkflag FLAG_0x2D2 + call_if 1, EventScript_162F94 + end + +EventScript_162F6D:: @ 8162F6D + setvar VAR_0x4002, 0 + checkflag FLAG_0x046 + call_if 0, EventScript_162FF0 + checkflag FLAG_0x047 + call_if 0, EventScript_162FF0 + compare_var_to_value VAR_0x4002, 2 + call_if 1, EventScript_162F90 + return + +EventScript_162F90:: @ 8162F90 + setflag FLAG_0x2D2 + return + +EventScript_162F94:: @ 8162F94 + setmaplayoutindex LAYOUT_UNUSED_LAYOUT_833B6EC + return + +SeafoamIslands_B3F_MapScript2_162F98:: @ 8162F98 + map_script_2 VAR_0x4001, 1, EventScript_162FA2 + .2byte 0 + +EventScript_162FA2:: @ 8162FA2 + lockall + setvar VAR_0x4002, 0 + checkflag FLAG_0x046 + call_if 0, EventScript_162FF0 + checkflag FLAG_0x047 + call_if 0, EventScript_162FF0 + compare_var_to_value VAR_0x4002, 2 + goto_if_eq EventScript_16300C + getplayerxy VAR_0x8008, VAR_0x8009 + compare_var_to_value VAR_0x8008, 24 + call_if 0, EventScript_162FF6 + compare_var_to_value VAR_0x8008, 24 + call_if 4, EventScript_163001 + setvar VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1 + warp MAP_SEAFOAM_ISLANDS_B4F, 255, 27, 21 + waitstate + releaseall + end + +EventScript_162FF0:: @ 8162FF0 + addvar VAR_0x4002, 1 + return + +EventScript_162FF6:: @ 8162FF6 + applymovement 255, Movement_163013 + waitmovement 0 + return + +EventScript_163001:: @ 8163001 + applymovement 255, Movement_163021 + waitmovement 0 + return + +EventScript_16300C:: @ 816300C + setvar VAR_0x4001, 0 + releaseall + end + +Movement_163013:: @ 8163013 + step_1d + step_1d + step_1d + step_1d + step_20 + step_20 + step_20 + step_1d + step_1d + step_1d + step_1d + step_1d + step_1d + step_end + +Movement_163021:: @ 8163021 + step_1d + step_1d + step_1d + step_1d + step_20 + step_20 + step_1d + step_1d + step_1d + step_1d + step_1d + step_1d + step_end diff --git a/data/maps/SeafoamIslands_B4F/map.json b/data/maps/SeafoamIslands_B4F/map.json new file mode 100644 index 000000000..6f3a99b06 --- /dev/null +++ b/data/maps/SeafoamIslands_B4F/map.json @@ -0,0 +1,153 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_B4F", + "name": "SeafoamIslands_B4F", + "layout": "LAYOUT_SEAFOAM_ISLANDS_B4F", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "97", + "x": 8, + "y": 18, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "76" + }, + { + "graphics_id": "97", + "x": 9, + "y": 18, + "elevation": 1, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "77" + }, + { + "graphics_id": "138", + "x": 9, + "y": 2, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B4F_EventScript_1631AC", + "flag": "130" + }, + { + "graphics_id": "92", + "x": 22, + "y": 19, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SeafoamIslands_B4F_EventScript_1BEC1B", + "flag": "472" + } + ], + "warp_events": [ + { + "x": 15, + "y": 9, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": 3 + }, + { + "x": 32, + "y": 5, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": 4 + }, + { + "x": 8, + "y": 17, + "elevation": 1, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": 7 + }, + { + "x": 9, + "y": 17, + "elevation": 1, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": 8 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 26, + "y": 19, + "elevation": 1, + "var": "VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F", + "var_value": 0, + "script": "SeafoamIslands_B4F_EventScript_16319D" + }, + { + "type": "trigger", + "x": 27, + "y": 19, + "elevation": 1, + "var": "VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F", + "var_value": 0, + "script": "SeafoamIslands_B4F_EventScript_16319D" + }, + { + "type": "trigger", + "x": 28, + "y": 19, + "elevation": 1, + "var": "VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F", + "var_value": 0, + "script": "SeafoamIslands_B4F_EventScript_16319D" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 13, + "y": 8, + "elevation": 0, + "item": "ITEM_WATER_STONE", + "flag": "30", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 30, + "y": 2, + "elevation": 0, + "script": "SeafoamIslands_B4F_EventScript_16322C" + }, + { + "type": "bg_event_type_0", + "x": 14, + "y": 18, + "elevation": 0, + "script": "SeafoamIslands_B4F_EventScript_163223" + } + ] +} diff --git a/data/maps/SeafoamIslands_B4F/scripts.inc b/data/maps/SeafoamIslands_B4F/scripts.inc new file mode 100644 index 000000000..5ec6bc28c --- /dev/null +++ b/data/maps/SeafoamIslands_B4F/scripts.inc @@ -0,0 +1,216 @@ +SeafoamIslands_B4F_MapScripts:: @ 816302E + map_script 3, SeafoamIslands_B4F_MapScript1_163066 + map_script 5, SeafoamIslands_B4F_MapScript2_163048 + map_script 1, SeafoamIslands_B4F_MapScript3_1630B1 + map_script 4, SeafoamIslands_B4F_MapScript4_1630E7 + map_script 2, SeafoamIslands_B4F_MapScript5_1630F9 + .byte 0 + +SeafoamIslands_B4F_MapScript2_163048:: @ 8163048 + checkflag FLAG_0x807 + call_if 1, EventScript_163052 + end + +EventScript_163052:: @ 8163052 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 7 + goto_if 5, EventScript_1A77A9 + removeobject VAR_LAST_TALKED + return + +SeafoamIslands_B4F_MapScript1_163066:: @ 8163066 + checkflag FLAG_0x2BE + call_if 0, EventScript_1630AD + checkflag FLAG_0x2D3 + call_if 0, EventScript_163082 + checkflag FLAG_0x2D3 + call_if 1, EventScript_1630A9 + end + +EventScript_163082:: @ 8163082 + setvar VAR_0x4002, 0 + checkflag FLAG_0x04C + call_if 0, EventScript_163169 + checkflag FLAG_0x04D + call_if 0, EventScript_163169 + compare_var_to_value VAR_0x4002, 2 + call_if 1, EventScript_1630A5 + return + +EventScript_1630A5:: @ 81630A5 + setflag FLAG_0x2D3 + return + +EventScript_1630A9:: @ 81630A9 + setmaplayoutindex LAYOUT_UNUSED_LAYOUT_833BE30 + return + +EventScript_1630AD:: @ 81630AD + clearflag FLAG_0x082 + return + +SeafoamIslands_B4F_MapScript3_1630B1:: @ 81630B1 + setvar VAR_0x4002, 0 + checkflag FLAG_0x04C + call_if 0, EventScript_163169 + checkflag FLAG_0x04D + call_if 0, EventScript_163169 + compare_var_to_value VAR_0x4002, 2 + goto_if_eq EventScript_1630D4 + end + +EventScript_1630D4:: @ 81630D4 + setmetatile 12, 14, 299, 0 + setmetatile 13, 14, 299, 0 + end + +SeafoamIslands_B4F_MapScript4_1630E7:: @ 81630E7 + map_script_2 VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1, EventScript_1630F1 + .2byte 0 + +EventScript_1630F1:: @ 81630F1 + turnobject 255, 2 + special sub_80CBD80 + end + +SeafoamIslands_B4F_MapScript5_1630F9:: @ 81630F9 + map_script_2 VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1, EventScript_16310B + map_script_2 VAR_0x4001, 1, EventScript_163121 + .2byte 0 + +EventScript_16310B:: @ 816310B + lockall + applymovement 255, Movement_16311D + waitmovement 0 + setvar VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 0 + releaseall + end + +Movement_16311D:: @ 816311D + step_1e + step_1e + step_1e + step_end + +EventScript_163121:: @ 8163121 + lockall + setvar VAR_0x4002, 0 + checkflag FLAG_0x04C + call_if 0, EventScript_163169 + checkflag FLAG_0x04D + call_if 0, EventScript_163169 + compare_var_to_value VAR_0x4002, 2 + goto_if_eq EventScript_163185 + getplayerxy VAR_0x8008, VAR_0x8009 + compare_var_to_value VAR_0x8008, 9 + call_if 0, EventScript_16316F + compare_var_to_value VAR_0x8008, 9 + call_if 4, EventScript_16317A + special sub_805D1A8 + setvar VAR_0x4001, 0 + releaseall + end + +EventScript_163169:: @ 8163169 + addvar VAR_0x4002, 1 + return + +EventScript_16316F:: @ 816316F + applymovement 255, Movement_16318C + waitmovement 0 + return + +EventScript_16317A:: @ 816317A + applymovement 255, Movement_163195 + waitmovement 0 + return + +EventScript_163185:: @ 8163185 + setvar VAR_0x4001, 0 + releaseall + end + +Movement_16318C:: @ 816318C + step_11 + step_11 + step_11 + step_13 + step_13 + step_13 + step_13 + step_11 + step_end + +Movement_163195:: @ 8163195 + step_11 + step_11 + step_11 + step_13 + step_13 + step_13 + step_11 + step_end + +SeafoamIslands_B4F_EventScript_16319D:: @ 816319D + lockall + applymovement 255, Movement_1631AA + waitmovement 0 + releaseall + end + +Movement_1631AA:: @ 81631AA + step_11 + step_end + +SeafoamIslands_B4F_EventScript_1631AC:: @ 81631AC + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + setwildbattle SPECIES_ARTICUNO, 50, ITEM_NONE + waitse + playmoncry SPECIES_ARTICUNO, 2 + message Text_1A6448 + waitmessage + waitmoncry + delay 10 + playbgm BGM_FRLG_LEADER_EYE, 0 + waitbuttonpress + setflag FLAG_0x807 + special sub_807F9D8 + waitstate + clearflag FLAG_0x807 + specialvar VAR_RESULT, sub_80CA74C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16320F + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_163218 + compare_var_to_value VAR_RESULT, 5 + goto_if_eq EventScript_163218 + setflag FLAG_0x2BE + release + end + +EventScript_16320F:: @ 816320F + setflag FLAG_0x2BE + goto EventScript_1A922D + +EventScript_163217:: @ 8163217 + end + +EventScript_163218:: @ 8163218 + setvar VAR_0x8004, SPECIES_ARTICUNO + goto EventScript_1A9236 + +EventScript_163222:: @ 8163222 + end + +SeafoamIslands_B4F_EventScript_163223:: @ 8163223 + msgbox gUnknown_8179B36, 3 + end + +SeafoamIslands_B4F_EventScript_16322C:: @ 816322C + msgbox gUnknown_8179B65, 3 + end diff --git a/data/maps/SeafoamIslands_B4F/text.inc b/data/maps/SeafoamIslands_B4F/text.inc new file mode 100644 index 000000000..b2ef7d7e5 --- /dev/null +++ b/data/maps/SeafoamIslands_B4F/text.inc @@ -0,0 +1,29 @@ +Text_1799E0:: @ 81799E0 + .string "When you're up on a rocky mountain\n" + .string "like this, rockslides are a threat.\p" + .string "Can you imagine?\n" + .string "Boulders tumbling down on you?\p" + .string "That'd be, like, waaaaaaaaaaah!\n" + .string "Total terror!\p" + .string "You don't seem to be scared.\n" + .string "Want to try using ROCK SLIDE?$" + +Text_179AC0:: @ 8179AC0 + .string "Oh, so you are scared after all.$" + +Text_179AE1:: @ 8179AE1 + .string "Which POKéMON should I teach\n" + .string "ROCK SLIDE?$" + +Text_179B0A:: @ 8179B0A + .string "It might be scary to use it in this\n" + .string "tunnel…$" + +gUnknown_8179B36:: @ 8179B36 + .string "Hint: Boulders might change the\n" + .string "flow of water.$" + +gUnknown_8179B65:: @ 8179B65 + .string "DANGER\n" + .string "Fast current!$" + diff --git a/data/maps/SevenIsland/map.json b/data/maps/SevenIsland/map.json new file mode 100644 index 000000000..003bd5192 --- /dev/null +++ b/data/maps/SevenIsland/map.json @@ -0,0 +1,107 @@ +{ + "id": "MAP_SEVEN_ISLAND", + "name": "SevenIsland", + "layout": "LAYOUT_SEVEN_ISLAND", + "music": "BGM_FRLG_ISLAND_SIX", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND_TRAINER_TOWER", + "offset": -48, + "direction": "up" + }, + { + "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "41", + "x": 7, + "y": 18, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_EventScript_1C4B56", + "flag": "0" + }, + { + "graphics_id": "35", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_EventScript_167EC6", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 15, + "y": 5, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_EventScript_167ECF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 11, + "y": 9, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", + "dest_warp_id": 0 + }, + { + "x": 5, + "y": 9, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_MART", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 0 + }, + { + "x": 16, + "y": 13, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_HARBOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 17, + "y": 9, + "elevation": 0, + "script": "SevenIsland_EventScript_167EBD" + } + ] +} diff --git a/data/maps/SevenIsland/scripts.inc b/data/maps/SevenIsland/scripts.inc new file mode 100644 index 000000000..92a3ceaf4 --- /dev/null +++ b/data/maps/SevenIsland/scripts.inc @@ -0,0 +1,19 @@ +SevenIsland_MapScripts:: @ 8167EB3 + map_script 3, SevenIsland_MapScript1_167EB9 + .byte 0 + +SevenIsland_MapScript1_167EB9:: @ 8167EB9 + setworldmapflag FLAG_WORLD_MAP_SEVEN_ISLAND + end + +SevenIsland_EventScript_167EBD:: @ 8167EBD + msgbox gUnknown_8183046, 3 + end + +SevenIsland_EventScript_167EC6:: @ 8167EC6 + msgbox gUnknown_818306C, 2 + end + +SevenIsland_EventScript_167ECF:: @ 8167ECF + msgbox gUnknown_8183143, 2 + end diff --git a/data/maps/SevenIsland/text.inc b/data/maps/SevenIsland/text.inc new file mode 100644 index 000000000..2795443a2 --- /dev/null +++ b/data/maps/SevenIsland/text.inc @@ -0,0 +1,38 @@ +Text_182F01:: @ 8182F01 + .string "Not many people come out here.\p" + .string "If I train here, I'm convinced that\n" + .string "I'll get stronger and stronger.\p" + .string "Yep, stronger and stronger…\p" + .string "How would you like to learn a move\n" + .string "like that? It's SWORDS DANCE.$" + +Text_182FC1:: @ 8182FC1 + .string "Well, that's fine, too.$" + +Text_182FD9:: @ 8182FD9 + .string "All right, pick which POKéMON\n" + .string "I should teach it to.$" + +Text_18300D:: @ 818300D + .string "If only we could keep getting\n" + .string "stronger and stronger, eh?$" + +gUnknown_8183046:: @ 8183046 + .string "SEVEN ISLAND\n" + .string "Quest Island of Infinity$" + +gUnknown_818306C:: @ 818306C + .string "These islands are called the SEVII\n" + .string "ISLANDS because there are seven.\p" + .string "…Or at least that's what the young\n" + .string "people believe.\p" + .string "The truth is, these islands are so\n" + .string "named because they are said to\l" + .string "have been made in seven days.$" + +gUnknown_8183143:: @ 8183143 + .string "This island has been left virtually\n" + .string "untouched in its natural state.\p" + .string "It could be a little difficult to\n" + .string "hike around because of that.$" + diff --git a/data/maps/SevenIsland_Harbor/map.json b/data/maps/SevenIsland_Harbor/map.json new file mode 100644 index 000000000..df4507662 --- /dev/null +++ b/data/maps/SevenIsland_Harbor/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SEVEN_ISLAND_HARBOR", + "name": "SevenIsland_Harbor", + "layout": "LAYOUT_ISLAND_HARBOR", + "music": "BGM_FRLG_ISLAND_SIX", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "108", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_Harbor_EventScript_170BE5", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_Harbor/scripts.inc b/data/maps/SevenIsland_Harbor/scripts.inc new file mode 100644 index 000000000..c4777e1ac --- /dev/null +++ b/data/maps/SevenIsland_Harbor/scripts.inc @@ -0,0 +1,11 @@ +SevenIsland_Harbor_MapScripts:: @ 8170BE4 + .byte 0 + +SevenIsland_Harbor_EventScript_170BE5:: @ 8170BE5 + lock + faceplayer + message Text_181726 + waitmessage + setvar VAR_0x8004, 7 + goto EventScript_1A900F + end diff --git a/data/maps/SevenIsland_House_Room1/map.json b/data/maps/SevenIsland_House_Room1/map.json new file mode 100644 index 000000000..f7181d41f --- /dev/null +++ b/data/maps/SevenIsland_House_Room1/map.json @@ -0,0 +1,56 @@ +{ + "id": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", + "name": "SevenIsland_House_Room1", + "layout": "LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1", + "music": "BGM_FRLG_ISLAND_SIX", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "35", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_House_Room1_EventScript_170958", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM2", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "SevenIsland_House_Room1_EventScript_170A75" + } + ] +} diff --git a/data/maps/SevenIsland_House_Room1/scripts.inc b/data/maps/SevenIsland_House_Room1/scripts.inc new file mode 100644 index 000000000..107b91ad7 --- /dev/null +++ b/data/maps/SevenIsland_House_Room1/scripts.inc @@ -0,0 +1,183 @@ +SevenIsland_House_Room1_MapScripts:: @ 817088A + map_script 3, SevenIsland_House_Room1_MapScript1_170895 + map_script 2, SevenIsland_House_Room1_MapScript2_1708CF + .byte 0 + +SevenIsland_House_Room1_MapScript1_170895:: @ 8170895 + special ValidateEReaderTrainer + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_1708AF + compare_var_to_value VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 0 + call_if 5, EventScript_1708C3 + end + +EventScript_1708AF:: @ 81708AF + setvar VAR_0x4001, 1 + setobjectxyperm 1, 4, 2 + setobjectmovementtype 1, 8 + setmaplayoutindex LAYOUT_UNUSED_LAYOUT_8338B4C + return + +EventScript_1708C3:: @ 81708C3 + setobjectxyperm 1, 3, 2 + setobjectmovementtype 1, 10 + return + +SevenIsland_House_Room1_MapScript2_1708CF:: @ 81708CF + map_script_2 VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1, EventScript_1708E9 + map_script_2 VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2, EventScript_1708E9 + map_script_2 VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 3, EventScript_1708E9 + .2byte 0 + +EventScript_1708E9:: @ 1708E9 + lockall + textcolor 1 + applymovement 255, Movement_170953 + waitmovement 0 + applymovement 1, Movement_170955 + waitmovement 0 + moveobjectoffscreen 1 + applymovement 255, Movement_1A75E9 + waitmovement 0 + compare_var_to_value VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1 + call_if 1, EventScript_170938 + compare_var_to_value VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2 + call_if 1, EventScript_170941 + compare_var_to_value VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 3 + call_if 1, EventScript_17094A + special LoadPlayerParty + setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 0 + releaseall + end + +EventScript_170938:: @ 8170938 + msgbox gUnknown_81A088C + return + +EventScript_170941:: @ 8170941 + msgbox gUnknown_81A0971 + return + +EventScript_17094A:: @ 817094A + msgbox gUnknown_81A0807 + return + +Movement_170953:: @ 8170953 + step_10 + step_end + +Movement_170955:: @ 8170955 + step_13 + step_2d + step_end + +SevenIsland_House_Room1_EventScript_170958:: @ 8170958 + lock + faceplayer + special ValidateEReaderTrainer + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_17097D + compare_var_to_value VAR_0x4001, 1 + goto_if_eq EventScript_170987 + msgbox gUnknown_81A049B + release + end + +EventScript_17097D:: @ 817097D + msgbox gUnknown_81A049B + release + end + +EventScript_170987:: @ 8170987 + special SavePlayerParty + special sub_80CAAAC + msgbox gUnknown_81A0598, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_170A11 + call EventScript_170A1E + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_170A11 + msgbox gUnknown_81A0788, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_170A11 + special LoadPlayerParty + call EventScript_1A4EAF + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_170A11 + special SavePlayerParty + special sub_80A03D8 + msgbox gUnknown_81A07C4 + closemessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_170A2D + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_170A3F + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_170A51 + warp MAP_SEVEN_ISLAND_HOUSE_ROOM2, 255, 3, 1 + waitstate + release + end + +EventScript_170A11:: @ 8170A11 + special LoadPlayerParty + msgbox gUnknown_81A064E + release + end + +EventScript_170A1E:: @ 8170A1E + msgbox gUnknown_81A06AB + fadescreen 1 + special sub_80A0334 + waitstate + return + +EventScript_170A2D:: @ 8170A2D + applymovement VAR_LAST_TALKED, Movement_170A6F + applymovement 255, Movement_170A63 + waitmovement 0 + return + +EventScript_170A3F:: @ 8170A3F + applymovement VAR_LAST_TALKED, Movement_170A72 + applymovement 255, Movement_170A67 + waitmovement 0 + return + +EventScript_170A51:: @ 8170A51 + applymovement VAR_LAST_TALKED, Movement_170A6F + applymovement 255, Movement_170A6B + waitmovement 0 + return + +Movement_170A63:: @ 8170A63 + step_1c + step_11 + step_11 + step_end + +Movement_170A67:: @ 8170A67 + step_1c + step_13 + step_11 + step_end + +Movement_170A6B:: @ 8170A6B + step_1c + step_12 + step_11 + step_end + +Movement_170A6F:: @ 8170A6F + step_12 + step_30 + step_end + +Movement_170A72:: @ 8170A72 + step_13 + step_2f + step_end + +SevenIsland_House_Room1_EventScript_170A75:: @ 8170A75 + msgbox gUnknown_81A0567, 3 + end diff --git a/data/maps/SevenIsland_House_Room1/text.inc b/data/maps/SevenIsland_House_Room1/text.inc new file mode 100644 index 000000000..2e6c7f2f8 --- /dev/null +++ b/data/maps/SevenIsland_House_Room1/text.inc @@ -0,0 +1,92 @@ +gUnknown_81A049B:: @ 81A049B + .string "I may not look like much now,\n" + .string "but when I was younger…\p" + .string "I flew everywhere, challenging\n" + .string "TRAINERS wherever I found them.\p" + .string "Now, my only source of enjoyment\n" + .string "is reminiscing about the past while\l" + .string "watching battles.$" + +gUnknown_81A0567:: @ 81A0567 + .string "There is a slight breeze blowing\n" + .string "around the box.$" + +gUnknown_81A0598:: @ 81A0598 + .string "Ah!\n" + .string "Welcome, my friend!\p" + .string "Let me tell you something. There's\n" + .string "a hidden room in the basement.\p" + .string "A TRAINER named {STR_VAR_1} is\n" + .string "waiting there now.\p" + .string "Tell me, you did come to challenge\n" + .string "{STR_VAR_1}, am I right?$" + +gUnknown_81A064E:: @ 81A064E + .string "Oh…\n" + .string "You won't battle…\p" + .string "I see, I see.\n" + .string "… …\p" + .string "Well, perhaps if you change your\n" + .string "mind, do come back.$" + +gUnknown_81A06AB:: @ 81A06AB + .string "Ah!\n" + .string "You will battle for me?\p" + .string "It was worth my time moving the\n" + .string "box aside, then.\p" + .string "… …\n" + .string "But there is one slight problem.\p" + .string "This hidden room is not built very\n" + .string "sturdy.\p" + .string "Can I get you to limit it to\n" + .string "battles of three POKéMON per side?$" + +gUnknown_81A0788:: @ 81A0788 + .string "Fine! Before your battle, would\n" + .string "you like to save your game?$" + +gUnknown_81A07C4:: @ 81A07C4 + .string "All right.\n" + .string "Don't hold anything back!$" + +Text_1A07E9:: @ 81A07E9 + .string "{STR_VAR_1}$" + +gUnknown_81A07EC:: @ 81A07EC + .string "The match ended up a draw.$" + +gUnknown_81A0807:: @ 81A0807 + .string "A draw, was it?\p" + .string "However, let me say that it was\n" + .string "a worthy spectacle.\p" + .string "I'd say it was a wonderful battle\n" + .string "with a real sense of depth!$" + +Text_1A0889:: @ 81A0889 + .string "{STR_VAR_1}$" + +gUnknown_81A088C:: @ 81A088C + .string "Bravo!\p" + .string "Bravo, indeed!\n" + .string "What an astounding battle!\p" + .string "It was so astounding, why, it keeps\n" + .string "filling my eyes with tears!\p" + .string "The thrust and parry of expertly\n" + .string "used techniques!\p" + .string "The clash of power upon power!\p" + .string "Yes!\n" + .string "It was sheer magnificence!$" + +Text_1A096E:: @ 81A096E + .string "{STR_VAR_1}$" + +gUnknown_81A0971:: @ 81A0971 + .string "Too bad!\n" + .string "I feel your disappointment.\p" + .string "However, that disappointment is\n" + .string "what will make you better.\p" + .string "Use it, learn from it, and make it\n" + .string "motivate you to seek greatness.\p" + .string "Forget not this disappointment\n" + .string "and redouble your training!$" + diff --git a/data/maps/SevenIsland_House_Room2/map.json b/data/maps/SevenIsland_House_Room2/map.json new file mode 100644 index 000000000..474d071d5 --- /dev/null +++ b/data/maps/SevenIsland_House_Room2/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_SEVEN_ISLAND_HOUSE_ROOM2", + "name": "SevenIsland_House_Room2", + "layout": "LAYOUT_SEVEN_ISLAND_HOUSE_ROOM2", + "music": "BGM_FRLG_ISLAND_SIX", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "240", + "x": 6, + "y": 5, + "elevation": 0, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_House_Room2/scripts.inc b/data/maps/SevenIsland_House_Room2/scripts.inc new file mode 100644 index 000000000..db52423e4 --- /dev/null +++ b/data/maps/SevenIsland_House_Room2/scripts.inc @@ -0,0 +1,78 @@ +SevenIsland_House_Room2_MapScripts:: @ 8170A7E + map_script 3, SevenIsland_House_Room2_MapScript1_170A89 + map_script 2, SevenIsland_House_Room2_MapScript2_170A8D + .byte 0 + +SevenIsland_House_Room2_MapScript1_170A89:: @ 8170A89 + special sub_80E5E70 + end + +SevenIsland_House_Room2_MapScript2_170A8D:: @ 8170A8D + map_script_2 VAR_0x4001, 0, EventScript_170A97 + .2byte 0 + +EventScript_170A97:: @ 8170A97 + lockall + applymovement 255, Movement_170B22 + waitmovement 0 + special sub_80E7538 + loadword 0, gStringVar4 @ 2021D18 + callstd 4 + closemessage + setvar VAR_0x8004, 2 + setvar VAR_0x8005, 0 + special sub_80E6900 + waitstate + compare_var_to_value VAR_RESULT, 3 + call_if 1, EventScript_170AFE + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_170B0C + compare_var_to_value VAR_RESULT, 2 + call_if 1, EventScript_170B17 + closemessage + special sp000_heal_pokemon + applymovement 255, Movement_170B28 + waitmovement 0 + special LoadPlayerParty + setvar VAR_0x4001, 1 + warp MAP_SEVEN_ISLAND_HOUSE_ROOM1, 255, 4, 1 + waitstate + releaseall + end + +EventScript_170AFE:: @ 8170AFE + setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 3 + msgbox gUnknown_81A07EC + return + +EventScript_170B0C:: @ 8170B0C + setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1 + special sub_80CA68C + waitmessage + waitbuttonpress + return + +EventScript_170B17:: @ 8170B17 + setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2 + special sub_80CA68C + waitmessage + waitbuttonpress + return + +Movement_170B22:: @ 8170B22 + step_10 + step_10 + step_10 + step_13 + step_13 + step_end + +Movement_170B28:: @ 8170B28 + step_12 + step_12 + step_11 + step_11 + step_11 + step_11 + step_1b + step_end diff --git a/data/maps/SevenIsland_Mart/map.json b/data/maps/SevenIsland_Mart/map.json new file mode 100644 index 000000000..4d4be3485 --- /dev/null +++ b/data/maps/SevenIsland_Mart/map.json @@ -0,0 +1,80 @@ +{ + "id": "MAP_SEVEN_ISLAND_MART", + "name": "SevenIsland_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_Mart_EventScript_170B31", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "16", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_Mart_EventScript_170B6E", + "flag": "0" + }, + { + "graphics_id": "57", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_Mart_EventScript_170B80", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_Mart_EventScript_170B77", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_Mart/scripts.inc b/data/maps/SevenIsland_Mart/scripts.inc new file mode 100644 index 000000000..ce9ad21ed --- /dev/null +++ b/data/maps/SevenIsland_Mart/scripts.inc @@ -0,0 +1,42 @@ +SevenIsland_Mart_MapScripts:: @ 8170B30 + .byte 0 + +SevenIsland_Mart_EventScript_170B31:: @ 8170B31 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_170B58 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_170B58:: @ 8170B58 + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +SevenIsland_Mart_EventScript_170B6E:: @ 8170B6E + msgbox gUnknown_81A0A4F, 2 + end + +SevenIsland_Mart_EventScript_170B77:: @ 8170B77 + msgbox gUnknown_81A0ACC, 2 + end + +SevenIsland_Mart_EventScript_170B80:: @ 8170B80 + msgbox gUnknown_81A0B09, 2 + end diff --git a/data/maps/SevenIsland_Mart/text.inc b/data/maps/SevenIsland_Mart/text.inc new file mode 100644 index 000000000..9716c2427 --- /dev/null +++ b/data/maps/SevenIsland_Mart/text.inc @@ -0,0 +1,17 @@ +gUnknown_81A0A4F:: @ 81A0A4F + .string "POKéMON have personalities of their\n" + .string "own, just like people.\p" + .string "My PIKACHU has a HASTY nature,\n" + .string "so it grew to be a speedy POKéMON.$" + +gUnknown_81A0ACC:: @ 81A0ACC + .string "Okay, preparations are complete\n" + .string "for me to explore the RUINS.$" + +gUnknown_81A0B09:: @ 81A0B09 + .string "I need to fish on SEVEN ISLAND.\p" + .string "That will complete my fishing tour\n" + .string "of the SEVII ISLANDS.\p" + .string "I'd better stock up on some\n" + .string "POKé BALLS first, though.$" + diff --git a/data/maps/SevenIsland_PokemonCenter_1F/map.json b/data/maps/SevenIsland_PokemonCenter_1F/map.json new file mode 100644 index 000000000..9cf243db6 --- /dev/null +++ b/data/maps/SevenIsland_PokemonCenter_1F/map.json @@ -0,0 +1,113 @@ +{ + "id": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", + "name": "SevenIsland_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_1F_EventScript_170B98", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_1F_EventScript_170BA1", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_1F_EventScript_170BAA", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_1F_EventScript_170BB3", + "flag": "0" + }, + { + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_1F_EventScript_1ACFD4", + "flag": "157" + }, + { + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_1F_EventScript_1ACFD4", + "flag": "157" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND", + "dest_warp_id": 2 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_PokemonCenter_1F/scripts.inc b/data/maps/SevenIsland_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..170459099 --- /dev/null +++ b/data/maps/SevenIsland_PokemonCenter_1F/scripts.inc @@ -0,0 +1,27 @@ +SevenIsland_PokemonCenter_1F_MapScripts:: @ 8170B89 + map_script 3, SevenIsland_PokemonCenter_1F_MapScript1_170B94 + map_script 5, SevenIsland_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +SevenIsland_PokemonCenter_1F_MapScript1_170B94:: @ 8170B94 + setrespawn SPAWN_SEVEN_ISLAND + end + +SevenIsland_PokemonCenter_1F_EventScript_170B98:: @ 8170B98 + lock + faceplayer + call EventScript_1A6578 + release + end + +SevenIsland_PokemonCenter_1F_EventScript_170BA1:: @ 8170BA1 + msgbox gUnknown_81A0B98, 2 + end + +SevenIsland_PokemonCenter_1F_EventScript_170BAA:: @ 8170BAA + msgbox gUnknown_81A0C1F, 2 + end + +SevenIsland_PokemonCenter_1F_EventScript_170BB3:: @ 8170BB3 + msgbox gUnknown_81A0CA5, 2 + end diff --git a/data/maps/SevenIsland_PokemonCenter_1F/text.inc b/data/maps/SevenIsland_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..44e325ca0 --- /dev/null +++ b/data/maps/SevenIsland_PokemonCenter_1F/text.inc @@ -0,0 +1,19 @@ +gUnknown_81A0B98:: @ 81A0B98 + .string "On this island, different events\n" + .string "occur depending on connections.\p" + .string "What are those connections?\p" + .string "They are for you to discover on\n" + .string "your own.$" + +gUnknown_81A0C1F:: @ 81A0C1F + .string "Did you ride a SEAGALLOP ferry\n" + .string "to get here?\p" + .string "There are at least ten of those\n" + .string "high-speed ships.\p" + .string "I don't know where they all go,\n" + .string "though.$" + +gUnknown_81A0CA5:: @ 81A0CA5 + .string "If you're confident, you should\n" + .string "check out TRAINER TOWER.$" + diff --git a/data/maps/SevenIsland_PokemonCenter_2F/map.json b/data/maps/SevenIsland_PokemonCenter_2F/map.json new file mode 100644 index 000000000..e7d48f819 --- /dev/null +++ b/data/maps/SevenIsland_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_SEVEN_ISLAND_POKEMON_CENTER_2F", + "name": "SevenIsland_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_PokemonCenter_2F/scripts.inc b/data/maps/SevenIsland_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..89d97e0db --- /dev/null +++ b/data/maps/SevenIsland_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +SevenIsland_PokemonCenter_2F_MapScripts:: @ 8170BBC + map_script 2, SevenIsland_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, SevenIsland_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, SevenIsland_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, SevenIsland_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +SevenIsland_PokemonCenter_2F_EventScript_170BD1:: @ 8170BD1 + call EventScript_1BB4A3 + end + +EventScript_170BD7:: @ 8170BD7 + call EventScript_1BB6AB + end + +EventScript_170BDD:: @ 8170BDD + call EventScript_1BB7DE + end diff --git a/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/map.json b/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/map.json new file mode 100644 index 000000000..fe1f030fd --- /dev/null +++ b/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/map.json @@ -0,0 +1,183 @@ +{ + "id": "MAP_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY", + "name": "SevenIsland_SeavaultCanyon_TanobyKey", + "layout": "LAYOUT_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_TANOBY_KEY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [ + { + "graphics_id": "97", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 8, + "y": 9, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 6, + "y": 10, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 8, + "y": 10, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 6, + "y": 9, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_1BE11D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 13, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 7, + "y": 2, + "elevation": 3, + "var": "VAR_0x4001", + "var_value": 99, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E39" + }, + { + "type": "trigger", + "x": 9, + "y": 8, + "elevation": 3, + "var": "VAR_0x4007", + "var_value": 99, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164F0B" + }, + { + "type": "trigger", + "x": 5, + "y": 8, + "elevation": 3, + "var": "VAR_0x4006", + "var_value": 99, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EE8" + }, + { + "type": "trigger", + "x": 9, + "y": 6, + "elevation": 3, + "var": "VAR_0x4005", + "var_value": 99, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EC5" + }, + { + "type": "trigger", + "x": 5, + "y": 6, + "elevation": 3, + "var": "VAR_0x4004", + "var_value": 99, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EA2" + }, + { + "type": "trigger", + "x": 10, + "y": 4, + "elevation": 3, + "var": "VAR_0x4003", + "var_value": 99, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E7F" + }, + { + "type": "trigger", + "x": 4, + "y": 4, + "elevation": 3, + "var": "VAR_0x4002", + "var_value": 99, + "script": "SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E5C" + } + ], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/scripts.inc b/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/scripts.inc new file mode 100644 index 000000000..566ed3ee6 --- /dev/null +++ b/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/scripts.inc @@ -0,0 +1,143 @@ +SevenIsland_SeavaultCanyon_TanobyKey_MapScripts:: @ 8164DCC + map_script 3, SevenIsland_SeavaultCanyon_TanobyKey_MapScript1_164DD2 + .byte 0 + +SevenIsland_SeavaultCanyon_TanobyKey_MapScript1_164DD2:: @ 8164DD2 + setworldmapflag FLAG_WORLD_MAP_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY + checkflag FLAG_0x849 + call_if 1, EventScript_164E07 + setvar VAR_0x4001, 0 + setvar VAR_0x4002, 0 + setvar VAR_0x4003, 0 + setvar VAR_0x4004, 0 + setvar VAR_0x4005, 0 + setvar VAR_0x4006, 0 + setvar VAR_0x4007, 0 + setvar VAR_0x4008, 0 + end + +EventScript_164E07:: @ 8164E07 + setobjectxyperm 1, 7, 2 + setobjectxyperm 2, 4, 4 + setobjectxyperm 3, 10, 4 + setobjectxyperm 4, 5, 6 + setobjectxyperm 5, 9, 6 + setobjectxyperm 6, 5, 8 + setobjectxyperm 7, 9, 8 + return + +SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E39:: @ 8164E39 + lockall + compare_var_to_value VAR_0x4001, 100 + goto_if_eq EventScript_164F8A + call EventScript_164F2E + setvar VAR_0x4001, 100 + compare_var_to_value VAR_0x4008, 7 + goto_if_eq EventScript_164F8C + releaseall + end + +SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E5C:: @ 8164E5C + lockall + compare_var_to_value VAR_0x4002, 100 + goto_if_eq EventScript_164F8A + call EventScript_164F2E + setvar VAR_0x4002, 100 + compare_var_to_value VAR_0x4008, 7 + goto_if_eq EventScript_164F8C + releaseall + end + +SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164E7F:: @ 8164E7F + lockall + compare_var_to_value VAR_0x4003, 100 + goto_if_eq EventScript_164F8A + call EventScript_164F2E + setvar VAR_0x4003, 100 + compare_var_to_value VAR_0x4008, 7 + goto_if_eq EventScript_164F8C + releaseall + end + +SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EA2:: @ 8164EA2 + lockall + compare_var_to_value VAR_0x4004, 100 + goto_if_eq EventScript_164F8A + call EventScript_164F2E + setvar VAR_0x4004, 100 + compare_var_to_value VAR_0x4008, 7 + goto_if_eq EventScript_164F8C + releaseall + end + +SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EC5:: @ 8164EC5 + lockall + compare_var_to_value VAR_0x4005, 100 + goto_if_eq EventScript_164F8A + call EventScript_164F2E + setvar VAR_0x4005, 100 + compare_var_to_value VAR_0x4008, 7 + goto_if_eq EventScript_164F8C + releaseall + end + +SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164EE8:: @ 8164EE8 + lockall + compare_var_to_value VAR_0x4006, 100 + goto_if_eq EventScript_164F8A + call EventScript_164F2E + setvar VAR_0x4006, 100 + compare_var_to_value VAR_0x4008, 7 + goto_if_eq EventScript_164F8C + releaseall + end + +SevenIsland_SeavaultCanyon_TanobyKey_EventScript_164F0B:: @ 8164F0B + lockall + compare_var_to_value VAR_0x4007, 100 + goto_if_eq EventScript_164F8A + call EventScript_164F2E + setvar VAR_0x4007, 100 + compare_var_to_value VAR_0x4008, 7 + goto_if_eq EventScript_164F8C + releaseall + end + +EventScript_164F2E:: @ 8164F2E + addvar VAR_0x4008, 1 + playse SE_RU_HYUU + setvar VAR_0x8004, 1 + setvar VAR_0x8005, 1 + setvar VAR_0x8006, 8 + setvar VAR_0x8007, 3 + special sub_80CAC28 + delay 60 + return + +EventScript_164F51:: @ 8164F51 + setvar VAR_0x8004, 2 + setvar VAR_0x8005, 2 + setvar VAR_0x8006, 10 + setvar VAR_0x8007, 3 + special sub_80CAC28 + delay 60 + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 3 + setvar VAR_0x8006, 12 + setvar VAR_0x8007, 2 + special sub_80CAC28 + delay 60 + playse SE_EXP + waitse + return + +EventScript_164F8A:: @ 8164F8A + releaseall + end + +EventScript_164F8C:: @ 8164F8C + call EventScript_164F51 + msgbox gUnknown_817D31B + setflag FLAG_0x849 + releaseall + end diff --git a/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/text.inc b/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/text.inc new file mode 100644 index 000000000..c6f137869 --- /dev/null +++ b/data/maps/SevenIsland_SeavaultCanyon_TanobyKey/text.inc @@ -0,0 +1,4 @@ +gUnknown_817D31B:: @ 817D31B + .string "A mysterious rumble echoed\n" + .string "somewhere far away.$" + diff --git a/data/maps/SevenIsland_SevaultCanyon/map.json b/data/maps/SevenIsland_SevaultCanyon/map.json new file mode 100644 index 000000000..fbdaec45b --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon/map.json @@ -0,0 +1,323 @@ +{ + "id": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "name": "SevenIsland_SevaultCanyon", + "layout": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_SEVAULT_CANYON", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "offset": -48, + "direction": "down" + }, + { + "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "offset": -20, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "24", + "x": 13, + "y": 43, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SevenIsland_SevaultCanyon_EventScript_1ACA4D", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 13, + "y": 36, + "elevation": 3, + "movement_type": "18", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SevenIsland_SevaultCanyon_EventScript_1ACA8B", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 3, + "y": 35, + "elevation": 3, + "movement_type": "21", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SevenIsland_SevaultCanyon_EventScript_1ACAC9", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 3, + "y": 36, + "elevation": 3, + "movement_type": "22", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SevenIsland_SevaultCanyon_EventScript_1ACB07", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 7, + "y": 56, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_SevaultCanyon_EventScript_1ACB45", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 11, + "y": 63, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_SevaultCanyon_EventScript_1ACB83", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 14, + "y": 13, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_SevaultCanyon_EventScript_1ACBC1", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 14, + "y": 14, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_SevaultCanyon_EventScript_1ACC07", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 3, + "y": 41, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BE00C", + "flag": "18" + }, + { + "graphics_id": "97", + "x": 13, + "y": 47, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 7, + "y": 44, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BE00C", + "flag": "19" + }, + { + "graphics_id": "96", + "x": 12, + "y": 47, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BE00C", + "flag": "21" + }, + { + "graphics_id": "96", + "x": 15, + "y": 46, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BE00C", + "flag": "22" + }, + { + "graphics_id": "96", + "x": 16, + "y": 47, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BE00C", + "flag": "23" + }, + { + "graphics_id": "97", + "x": 17, + "y": 47, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "96", + "x": 11, + "y": 31, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BE00C", + "flag": "27" + }, + { + "graphics_id": "92", + "x": 18, + "y": 45, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BECDE", + "flag": "487" + }, + { + "graphics_id": "92", + "x": 7, + "y": 38, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BECEB", + "flag": "488" + }, + { + "graphics_id": "92", + "x": 17, + "y": 23, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1BECF8", + "flag": "489" + }, + { + "graphics_id": "54", + "x": 8, + "y": 26, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_1ACF95", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 17, + "elevation": 5, + "dest_map": "MAP_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY", + "dest_warp_id": 0 + }, + { + "x": 14, + "y": 61, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 15, + "y": 66, + "elevation": 3, + "item": "ITEM_CHERI_BERRY", + "flag": "63", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 16, + "y": 71, + "elevation": 0, + "script": "SevenIsland_SevaultCanyon_EventScript_168BFE" + } + ] +} diff --git a/data/maps/SevenIsland_SevaultCanyon/scripts.inc b/data/maps/SevenIsland_SevaultCanyon/scripts.inc new file mode 100644 index 000000000..f0122ffbf --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon/scripts.inc @@ -0,0 +1,6 @@ +SevenIsland_SevaultCanyon_MapScripts:: @ 8168BFD + .byte 0 + +SevenIsland_SevaultCanyon_EventScript_168BFE:: @ 8168BFE + msgbox gUnknown_818CF2B, 3 + end diff --git a/data/maps/SevenIsland_SevaultCanyon/text.inc b/data/maps/SevenIsland_SevaultCanyon/text.inc new file mode 100644 index 000000000..3d728797a --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon/text.inc @@ -0,0 +1,122 @@ +Text_18C887:: @ 818C887 + .string "My conditioning's in top form!$" + +Text_18C8A6:: @ 818C8A6 + .string "Huh?\n" + .string "Something's not right…$" + +Text_18C8C2:: @ 818C8C2 + .string "The way I am now, I may have to\n" + .string "hold off on TRAINER TOWER…$" + +Text_18C8FD:: @ 818C8FD + .string "It doesn't matter if you happen to\n" + .string "have the strongest POKéMON…\p" + .string "It doesn't mean a thing if you don't\n" + .string "know how to use them properly!$" + +Text_18C980:: @ 818C980 + .string "You're a master at this.$" + +Text_18C999:: @ 818C999 + .string "You see them every so often,\n" + .string "TRAINERS with awesome POKéMON\l" + .string "who have no idea what to do.\p" + .string "Before training POKéMON, TRAINERS\n" + .string "themselves need to grow up.$" + +Text_18CA2F:: @ 818CA2F + .string "I work to protect the environment.\n" + .string "In turn, nature protects me!$" + +Text_18CA6F:: @ 818CA6F + .string "Whoa! You're tough!\n" + .string "How about protecting me?$" + +Text_18CA9C:: @ 818CA9C + .string "From far out among the stars, our\n" + .string "planet is just a drop of water.\p" + .string "But we want to protect that drop\n" + .string "of water for everyone.$" + +Text_18CB16:: @ 818CB16 + .string "Those shoes you have are pretty\n" + .string "snazzy.$" + +Text_18CB3E:: @ 818CB3E + .string "You're hot stuff in spite of your\n" + .string "cute looks.$" + +Text_18CB6C:: @ 818CB6C + .string "Your mom bought those snazzy\n" + .string "RUNNING SHOES for you?\p" + .string "She must adore you.$" + +Text_18CBB4:: @ 818CBB4 + .string "You look strong.\n" + .string "Let me battle you, please!$" + +Text_18CBE0:: @ 818CBE0 + .string "I knew it!\n" + .string "You're as tough as I thought!$" + +Text_18CC09:: @ 818CC09 + .string "The way you battle has given me\n" + .string "a lot of useful data.\p" + .string "Thanks so much!$" + +Text_18CC4F:: @ 818CC4F + .string "I was given the best possible\n" + .string "education to become this strong.\p" + .string "I don't want to lose to anyone!$" + +Text_18CCAE:: @ 818CCAE + .string "Thank you. I feel like I've been\n" + .string "set free by losing to you.$" + +Text_18CCEA:: @ 818CCEA + .string "For some reason, I get furious\n" + .string "over the slightest thing.\p" + .string "I'll calm myself by breathing\n" + .string "deeply.$" + +Text_18CD49:: @ 818CD49 + .string "LEX: My darling NYA, together\n" + .string "we could win!$" + +Text_18CD75:: @ 818CD75 + .string "LEX: I seem to have been too\n" + .string "careless…$" + +Text_18CD9C:: @ 818CD9C + .string "LEX: I think it was a good\n" + .string "experience for NYA.\p" + .string "You have my gratitude.$" + +Text_18CDE2:: @ 818CDE2 + .string "LEX: May I ask you to battle the\n" + .string "both of us at the same time?$" + +Text_18CE20:: @ 818CE20 + .string "NYA: I'll do my best so I won't\n" + .string "drag down my mentor, LEX!$" + +Text_18CE5A:: @ 818CE5A + .string "NYA: Oh, no…\n" + .string "I'm so sorry, I…$" + +Text_18CE78:: @ 818CE78 + .string "NYA: I think I'm going to need\n" + .string "much more seasoning and tutoring\l" + .string "under LEX…\p" + .string "…So, LEX, please, may I stay with\n" + .string "you like this?$" + +Text_18CEF4:: @ 818CEF4 + .string "NYA: I'm sorry, but may we battle\n" + .string "in two-on-two style?$" + +gUnknown_818CF2B:: @ 818CF2B + .string "SEVAULT CANYON\n" + .string "TANOBY RUINS AHEAD$" + diff --git a/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json b/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json new file mode 100644 index 000000000..6011ec09d --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json @@ -0,0 +1,139 @@ +{ + "id": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "name": "SevenIsland_SevaultCanyon_Entrance", + "layout": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_CANYON_ENTRANCE", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "offset": 20, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "28", + "x": 12, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_1AC8C9", + "flag": "0" + }, + { + "graphics_id": "29", + "x": 3, + "y": 34, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_1AC907", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 4, + "y": 34, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_1AC94D", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 11, + "y": 26, + "elevation": 3, + "movement_type": "20", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_1AC9D1", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 10, + "y": 26, + "elevation": 3, + "movement_type": "19", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_1ACA0F", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 11, + "y": 17, + "elevation": 5, + "movement_type": "23", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_1AC993", + "flag": "0" + }, + { + "graphics_id": "65321", + "x": 7, + "y": 65534, + "elevation": 1, + "movement_type": "0", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 17, + "trainer_sight_or_berry_tree_id": 3, + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 8, + "y": 29, + "elevation": 5, + "item": "ITEM_RAWST_BERRY", + "flag": "188", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 14, + "y": 26, + "elevation": 0, + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_168BF4" + } + ] +} diff --git a/data/maps/SevenIsland_SevaultCanyon_Entrance/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_Entrance/scripts.inc new file mode 100644 index 000000000..7fcda3492 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_Entrance/scripts.inc @@ -0,0 +1,6 @@ +SevenIsland_SevaultCanyon_Entrance_MapScripts:: @ 8168BF3 + .byte 0 + +SevenIsland_SevaultCanyon_Entrance_EventScript_168BF4:: @ 8168BF4 + msgbox gUnknown_818C82D, 3 + end diff --git a/data/maps/SevenIsland_SevaultCanyon_Entrance/text.inc b/data/maps/SevenIsland_SevaultCanyon_Entrance/text.inc new file mode 100644 index 000000000..86ade1dbd --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_Entrance/text.inc @@ -0,0 +1,101 @@ +Text_18C384:: @ 818C384 + .string "トレーナータワーには\n" + .string "いまは はいれない みたい‥$" + +Text_18C39E:: @ 818C39E + .string "トレーナータワーが あいてる!\n" + .string "さっそく はいってみよう!$" + +Text_18C3BC:: @ 818C3BC + .string "Kyahaha!\n" + .string "I'll flick you away effortlessly!$" + +Text_18C3E7:: @ 818C3E7 + .string "Tch!\n" + .string "Too strong for me!$" + +Text_18C3FF:: @ 818C3FF + .string "What's that?\n" + .string "I don't act the way I look?\p" + .string "Heh, that's a part of my strategy!$" + +Text_18C44B:: @ 818C44B + .string "Howdy!\n" + .string "Are you a member of my fan club?$" + +Text_18C473:: @ 818C473 + .string "Oh, so you're not a fan…\p" + .string "Well, I can change that.\n" + .string "Let me sing for you!$" + +Text_18C4BA:: @ 818C4BA + .string "Lalalah…\n" + .string "My POKéMON, I send them out,\l" + .string "all the girls scream and shout!$" + +Text_18C500:: @ 818C500 + .string "This island is too spread out…\n" + .string "It's not easy patrolling the place.$" + +Text_18C543:: @ 818C543 + .string "Uh-huh…$" + +Text_18C54B:: @ 818C54B + .string "TRAINERS like you from cities,\n" + .string "they sure are tough.\p" + .string "You'll be headed for the TOWER,\n" + .string "won't you?$" + +Text_18C5AA:: @ 818C5AA + .string "I punish people who abuse\n" + .string "POKéMON!$" + +Text_18C5CD:: @ 818C5CD + .string "You don't seem to be a problem\n" + .string "TRAINER.$" + +Text_18C5F5:: @ 818C5F5 + .string "If you treat your POKéMON with\n" + .string "kindness, they'll understand.$" + +Text_18C632:: @ 818C632 + .string "EVE: I'll team up with JON and\n" + .string "battle together.$" + +Text_18C662:: @ 818C662 + .string "EVE: Me and JON, we lost.\n" + .string "Ehehe.$" + +Text_18C683:: @ 818C683 + .string "EVE: I'm going to work harder with\n" + .string "JON.$" + +Text_18C6AB:: @ 818C6AB + .string "EVE: I want to team up with JON\n" + .string "when I battle you.\p" + .string "Come back with two POKéMON, okay?$" + +Text_18C700:: @ 818C700 + .string "JON: When I'm with EVE, it feels\n" + .string "like we could never lose.$" + +Text_18C73B:: @ 818C73B + .string "JON: When I'm with EVE,\n" + .string "it doesn't feel like I've lost!$" + +Text_18C773:: @ 818C773 + .string "JON: When I'm with EVE, I feel\n" + .string "giddy whether I win or lose.\p" + .string "It's magical!$" + +Text_18C7BD:: @ 818C7BD + .string "JON: If it's with EVE, I'll be\n" + .string "happy to battle with you.\p" + .string "So, I'd like to make it a\n" + .string "two-on-two battle, if I may.$" + +gUnknown_818C82D:: @ 818C82D + .string "SEVAULT CANYON ENTRANCE\p" + .string "TRAINERS are asked to refrain from\n" + .string "damaging plants in the CANYON.$" + diff --git a/data/maps/SevenIsland_SevaultCanyon_House/map.json b/data/maps/SevenIsland_SevaultCanyon_House/map.json new file mode 100644 index 000000000..a1a85b829 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_House/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE", + "name": "SevenIsland_SevaultCanyon_House", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_SIX", + "region_map_section": "MAPSEC_SEVAULT_CANYON", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_House_EventScript_172183", + "flag": "0" + }, + { + "graphics_id": "117", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_House_EventScript_172242", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 6, + "y": 4, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_SevaultCanyon_House_EventScript_1BEDFC", + "flag": "509" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc new file mode 100644 index 000000000..4098a0e0d --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc @@ -0,0 +1,82 @@ +SevenIsland_SevaultCanyon_House_MapScripts:: @ 8172182 + .byte 0 + +SevenIsland_SevaultCanyon_House_EventScript_172183:: @ 8172183 + lock + checkflag FLAG_0x002 + goto_if_eq EventScript_172211 + playbgm BGM_FRLG_CHANSEY_DANCE, 0 + applymovement 1, Movement_172231 + waitmovement 0 + fadedefaultbgm + delay 30 + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81A4D72 + textcolor 3 + msgbox gUnknown_81A4DAF, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_172225 + msgbox gUnknown_81A4DD8 + closemessage + call EventScript_1A6675 + compare_var_to_value VAR_FACING, 1 + call_if 5, EventScript_172206 + delay 30 + playbgm BGM_FRLG_CHANSEY_DANCE, 0 + applymovement 255, Movement_172231 + waitmovement 0 + fadedefaultbgm + delay 30 + call EventScript_1A6C26 + msgbox gUnknown_81A4DF5 + setflag FLAG_0x002 + release + end + +EventScript_172206:: @ 8172206 + applymovement 255, Movement_1A75ED + waitmovement 0 + return + +EventScript_172211:: @ 8172211 + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81A4D72 + release + end + +EventScript_172225:: @ 8172225 + textcolor 0 + msgbox gUnknown_81A4DC8 + release + end + +Movement_172231:: @ 8172231 + step_25 + step_1c + step_25 + step_1c + step_25 + step_1c + step_25 + step_1c + step_30 + step_1a + step_2e + step_1a + step_2f + step_1a + step_2d + step_1a + step_end + +SevenIsland_SevaultCanyon_House_EventScript_172242:: @ 8172242 + lock + faceplayer + waitse + playmoncry SPECIES_CHANSEY, 0 + msgbox gUnknown_81A4E26 + waitmoncry + release + end diff --git a/data/maps/SevenIsland_SevaultCanyon_House/text.inc b/data/maps/SevenIsland_SevaultCanyon_House/text.inc new file mode 100644 index 000000000..0602136b9 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_House/text.inc @@ -0,0 +1,22 @@ +gUnknown_81A4D72:: @ 81A4D72 + .string "Dance, dance!\n" + .string "CHANSEY Dance!\p" + .string "You join in, too!\n" + .string "Dance, dance!$" + +gUnknown_81A4DAF:: @ 81A4DAF + .string "Would you like to dance?$" + +gUnknown_81A4DC8:: @ 81A4DC8 + .string "Come on, dance!$" + +gUnknown_81A4DD8:: @ 81A4DD8 + .string "{PLAYER} danced the CHANSEY Dance!$" + +gUnknown_81A4DF5:: @ 81A4DF5 + .string "Ahahahaha!\p" + .string "There, you're all chipper now!\n" + .string "Lucky!$" + +gUnknown_81A4E26:: @ 81A4E26 + .string "CHANSEY: Chansi! Chansi!$" diff --git a/data/maps/SevenIsland_TanobyRuins/map.json b/data/maps/SevenIsland_TanobyRuins/map.json new file mode 100644 index 000000000..1659d862d --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins/map.json @@ -0,0 +1,165 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "name": "SevenIsland_TanobyRuins", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_TANOBY_RUINS", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "offset": 48, + "direction": "up" + } + ], + "object_events": [ + { + "graphics_id": "56", + "x": 35, + "y": 7, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_TanobyRuins_EventScript_1ACC4D", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 121, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_TanobyRuins_EventScript_1ACC8B", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 85, + "y": 8, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_TanobyRuins_EventScript_1ACCC9", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 85, + "y": 5, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_TanobyRuins_EventScript_1ACD07", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 120, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", + "dest_warp_id": 0 + }, + { + "x": 103, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", + "dest_warp_id": 0 + }, + { + "x": 88, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", + "dest_warp_id": 0 + }, + { + "x": 44, + "y": 11, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", + "dest_warp_id": 0 + }, + { + "x": 32, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 33, + "y": 10, + "elevation": 3, + "item": "ITEM_HEART_SCALE", + "flag": "65", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 86, + "y": 9, + "elevation": 3, + "item": "ITEM_HEART_SCALE", + "flag": "66", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 125, + "y": 5, + "elevation": 3, + "item": "ITEM_HEART_SCALE", + "flag": "67", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 8, + "y": 2, + "elevation": 3, + "item": "ITEM_HEART_SCALE", + "flag": "64", + "unknown": 1 + } + ] +} diff --git a/data/maps/SevenIsland_TanobyRuins/scripts.inc b/data/maps/SevenIsland_TanobyRuins/scripts.inc new file mode 100644 index 000000000..7bb8054e3 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins/scripts.inc @@ -0,0 +1,2 @@ +SevenIsland_TanobyRuins_MapScripts:: @ 8168C07 + .byte 0 diff --git a/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json b/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json new file mode 100644 index 000000000..7347361dc --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json @@ -0,0 +1,27 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", + "name": "SevenIsland_TanobyRuins_DilfordChamber", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_DILFORD_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_DilfordChamber/scripts.inc b/data/maps/SevenIsland_TanobyRuins_DilfordChamber/scripts.inc new file mode 100644 index 000000000..f0b8a602e --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_DilfordChamber/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_DilfordChamber_MapScripts:: @ 8164CF6 + map_script 3, SevenIsland_TanobyRuins_DilfordChamber_MapScript1_164CFC + .byte 0 + +SevenIsland_TanobyRuins_DilfordChamber_MapScript1_164CFC:: @ 8164CFC + call EventScript_1A925E + end diff --git a/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json b/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json new file mode 100644 index 000000000..42e25a9bd --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json @@ -0,0 +1,27 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", + "name": "SevenIsland_TanobyRuins_LiptooChamber", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_LIPTOO_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_LiptooChamber/scripts.inc b/data/maps/SevenIsland_TanobyRuins_LiptooChamber/scripts.inc new file mode 100644 index 000000000..2a9d64e42 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_LiptooChamber/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_LiptooChamber_MapScripts:: @ 8164CDE + map_script 3, SevenIsland_TanobyRuins_LiptooChamber_MapScript1_164CE4 + .byte 0 + +SevenIsland_TanobyRuins_LiptooChamber_MapScript1_164CE4:: @ 8164CE4 + call EventScript_1A925E + end diff --git a/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json b/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json new file mode 100644 index 000000000..1bdee8840 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json @@ -0,0 +1,27 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", + "name": "SevenIsland_TanobyRuins_MoneanChamber", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_MONEAN_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_MoneanChamber/scripts.inc b/data/maps/SevenIsland_TanobyRuins_MoneanChamber/scripts.inc new file mode 100644 index 000000000..391a45a95 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_MoneanChamber/scripts.inc @@ -0,0 +1,8 @@ +SevenIsland_TanobyRuins_MoneanChamber_MapScripts:: @ 8164CCF + map_script 3, SevenIsland_TanobyRuins_MoneanChamber_MapScript1_164CD5 + .byte 0 + +SevenIsland_TanobyRuins_MoneanChamber_MapScript1_164CD5:: @ 8164CD5 + setworldmapflag FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER + call EventScript_1A925E + end diff --git a/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json b/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json new file mode 100644 index 000000000..af7181502 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json @@ -0,0 +1,27 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", + "name": "SevenIsland_TanobyRuins_RixyChamber", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_RIXY_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_RixyChamber/scripts.inc b/data/maps/SevenIsland_TanobyRuins_RixyChamber/scripts.inc new file mode 100644 index 000000000..de1c0cd97 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_RixyChamber/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_RixyChamber_MapScripts:: @ 8164D0E + map_script 3, SevenIsland_TanobyRuins_RixyChamber_MapScript1_164D14 + .byte 0 + +SevenIsland_TanobyRuins_RixyChamber_MapScript1_164D14:: @ 8164D14 + call EventScript_1A925E + end diff --git a/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json b/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json new file mode 100644 index 000000000..58fa3d18c --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json @@ -0,0 +1,27 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", + "name": "SevenIsland_TanobyRuins_ScufibChamber", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_SCUFIB_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_ScufibChamber/scripts.inc b/data/maps/SevenIsland_TanobyRuins_ScufibChamber/scripts.inc new file mode 100644 index 000000000..2cbb2d08d --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_ScufibChamber/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_ScufibChamber_MapScripts:: @ 8164D02 + map_script 3, SevenIsland_TanobyRuins_ScufibChamber_MapScript1_164D08 + .byte 0 + +SevenIsland_TanobyRuins_ScufibChamber_MapScript1_164D08:: @ 8164D08 + call EventScript_1A925E + end diff --git a/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json new file mode 100644 index 000000000..90cf4bd82 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json @@ -0,0 +1,27 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", + "name": "SevenIsland_TanobyRuins_ViapoisChamber", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_VIAPOIS_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/scripts.inc b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/scripts.inc new file mode 100644 index 000000000..ea63fa0ea --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_ViapoisChamber_MapScripts:: @ 8164D1A + map_script 3, SevenIsland_TanobyRuins_ViapoisChamber_MapScript1_164D20 + .byte 0 + +SevenIsland_TanobyRuins_ViapoisChamber_MapScript1_164D20:: @ 8164D20 + call EventScript_1A925E + end diff --git a/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json b/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json new file mode 100644 index 000000000..542f8f61e --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json @@ -0,0 +1,27 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", + "name": "SevenIsland_TanobyRuins_WeepthChamber", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_WEEPTH_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_2", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_WeepthChamber/scripts.inc b/data/maps/SevenIsland_TanobyRuins_WeepthChamber/scripts.inc new file mode 100644 index 000000000..ae8294f89 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_WeepthChamber/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_WeepthChamber_MapScripts:: @ 8164CEA + map_script 3, SevenIsland_TanobyRuins_WeepthChamber_MapScript1_164CF0 + .byte 0 + +SevenIsland_TanobyRuins_WeepthChamber_MapScript1_164CF0:: @ 8164CF0 + call EventScript_1A925E + end diff --git a/data/maps/SevenIsland_TrainerTower/map.json b/data/maps/SevenIsland_TrainerTower/map.json new file mode 100644 index 000000000..3c509950e --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower/map.json @@ -0,0 +1,102 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER", + "name": "SevenIsland_TrainerTower", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_TRAINER_TOWER", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND", + "offset": 48, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "19", + "x": 56, + "y": 26, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_TrainerTower_EventScript_1AC84D", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 56, + "y": 29, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SevenIsland_TrainerTower_EventScript_1AC88B", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 58, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 49, + "y": 27, + "elevation": 3, + "item": "ITEM_BIG_PEARL", + "flag": "185", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 47, + "y": 30, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "186", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 59, + "y": 32, + "elevation": 3, + "item": "ITEM_NANAB_BERRY", + "flag": "187", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 56, + "y": 8, + "elevation": 0, + "script": "SevenIsland_TrainerTower_EventScript_168BE1" + }, + { + "type": "bg_event_type_0", + "x": 50, + "y": 30, + "elevation": 0, + "script": "SevenIsland_TrainerTower_EventScript_168BEA" + } + ] +} diff --git a/data/maps/SevenIsland_TrainerTower/scripts.inc b/data/maps/SevenIsland_TrainerTower/scripts.inc new file mode 100644 index 000000000..74902ebc8 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower/scripts.inc @@ -0,0 +1,15 @@ +SevenIsland_TrainerTower_MapScripts:: @ 8168BD5 + map_script 3, SevenIsland_TrainerTower_MapScript1_168BDB + .byte 0 + +SevenIsland_TrainerTower_MapScript1_168BDB:: @ 8168BDB + setvar VAR_0x4082, 0 + end + +SevenIsland_TrainerTower_EventScript_168BE1:: @ 8168BE1 + msgbox gUnknown_818C338, 3 + end + +SevenIsland_TrainerTower_EventScript_168BEA:: @ 8168BEA + msgbox gUnknown_818C370, 3 + end diff --git a/data/maps/SevenIsland_TrainerTower/text.inc b/data/maps/SevenIsland_TrainerTower/text.inc new file mode 100644 index 000000000..027b3de54 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower/text.inc @@ -0,0 +1,97 @@ +Text_18BE5D:: @ 818BE5D + .string "There appear to be many secrets\n" + .string "still unsolved in this world.$" + +Text_18BE9B:: @ 818BE9B + .string "Hmm…$" + +Text_18BEA0:: @ 818BEA0 + .string "I suggest to you that you, too,\n" + .string "give a thought to the secrets and\l" + .string "mysteries of our world once a day.$" + +Text_18BF05:: @ 818BF05 + .string "I'm curious, what compelled you to\n" + .string "come here?$" + +Text_18BF33:: @ 818BF33 + .string "It's been so long since I battled,\n" + .string "my instincts are off.$" + +Text_18BF6C:: @ 818BF6C + .string "There are several ruins on the\n" + .string "SEVII ISLANDS.\p" + .string "The majority of them date back\n" + .string "a long way.$" + +Text_18BFC5:: @ 818BFC5 + .string "It's been said that there are\n" + .string "mysterious stones on this island.\p" + .string "I suspect it has something to do\n" + .string "with the ruins here.$" + +Text_18C03B:: @ 818C03B + .string "Oh, interesting.$" + +Text_18C04C:: @ 818C04C + .string "Those ruins over there…\p" + .string "I haven't had any luck in finding\n" + .string "how I can get inside.$" + +Text_18C09C:: @ 818C09C + .string "A battle with you, so high up!$" + +Text_18C0BB:: @ 818C0BB + .string "Oh, the heartbreak of losing so\n" + .string "easily to you!$" + +Text_18C0EA:: @ 818C0EA + .string "Experience the joy of climbing!$" + +Text_18C10A:: @ 818C10A + .string "I'm pretty familiar with the land\n" + .string "around these parts.$" + +Text_18C140:: @ 818C140 + .string "You don't need to be so pushy.\n" + .string "I'll be happy to tell you.$" + +Text_18C17A:: @ 818C17A + .string "The door to the ruins…\n" + .string "It has these strange patterns\l" + .string "engraved on the outside.\p" + .string "I don't know what they mean,\n" + .string "though.$" + +Text_18C1ED:: @ 818C1ED + .string "I sensed your approach.$" + +Text_18C205:: @ 818C205 + .string "Give up…$" + +Text_18C20E:: @ 818C20E + .string "In your future, I sense that you\n" + .string "will meet many others.\p" + .string "I think you will be linked to each\n" + .string "other by a strange power.$" + +Text_18C283:: @ 818C283 + .string "Somewhere on this island, peculiar\n" + .string "POKéMON are sleeping.$" + +Text_18C2BC:: @ 818C2BC + .string "What an amazing TRAINER!$" + +Text_18C2D5:: @ 818C2D5 + .string "Somewhere on this island, peculiar\n" + .string "POKéMON are sleeping.\p" + .string "Could it be that they're waiting\n" + .string "for you?$" + +gUnknown_818C338:: @ 818C338 + .string "TRAINER TOWER ENTRANCE\n" + .string "Rise to the Challenge, TRAINERS!$" + +gUnknown_818C370:: @ 818C370 + .string "TRAINER TOWER AHEAD$" + diff --git a/data/maps/SevenIsland_TrainerTower_1F/map.json b/data/maps/SevenIsland_TrainerTower_1F/map.json new file mode 100644 index 000000000..f894c679f --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_1F/map.json @@ -0,0 +1,128 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_1F", + "name": "SevenIsland_TrainerTower_1F", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_1F", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "70", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "6" + }, + { + "graphics_id": "240", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_1F_EventScript_1646C8", + "flag": "2" + }, + { + "graphics_id": "241", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_1F_EventScript_1646CE", + "flag": "3" + }, + { + "graphics_id": "242", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_1F_EventScript_1646D4", + "flag": "4" + }, + { + "graphics_id": "243", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_1F_EventScript_1646DA", + "flag": "5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_2F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_0x400E", + "var_value": 0, + "script": "SevenIsland_TrainerTower_1F_EventScript_1C54AF" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 0, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_1F_EventScript_1C54B4" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_1F_EventScript_1C54EA" + } + ], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TrainerTower_1F/scripts.inc b/data/maps/SevenIsland_TrainerTower_1F/scripts.inc new file mode 100644 index 000000000..eb9475260 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_1F/scripts.inc @@ -0,0 +1,60 @@ +SevenIsland_TrainerTower_1F_MapScripts:: @ 81646B8 + map_script 5, SevenIsland_TrainerTower_1F_MapScript1_1C4F54 + map_script 3, SevenIsland_TrainerTower_1F_MapScript2_1C4F62 + map_script 2, SevenIsland_TrainerTower_1F_MapScript3_1C5046 + .byte 0 + +SevenIsland_TrainerTower_2F_EventScript_1646C8:: @ 81646C8 +SevenIsland_TrainerTower_4F_EventScript_1646C8:: @ 81646C8 +SevenIsland_TrainerTower_6F_EventScript_1646C8:: @ 81646C8 +SevenIsland_TrainerTower_8F_EventScript_1646C8:: @ 81646C8 +SevenIsland_TrainerTower_5F_EventScript_1646C8:: @ 81646C8 +SevenIsland_TrainerTower_7F_EventScript_1646C8:: @ 81646C8 +SevenIsland_TrainerTower_3F_EventScript_1646C8:: @ 81646C8 +SevenIsland_TrainerTower_1F_EventScript_1646C8:: @ 81646C8 + call EventScript_1C52F4 + end + +SevenIsland_TrainerTower_2F_EventScript_1646CE:: @ 81646CE +SevenIsland_TrainerTower_4F_EventScript_1646CE:: @ 81646CE +SevenIsland_TrainerTower_6F_EventScript_1646CE:: @ 81646CE +SevenIsland_TrainerTower_8F_EventScript_1646CE:: @ 81646CE +SevenIsland_TrainerTower_5F_EventScript_1646CE:: @ 81646CE +SevenIsland_TrainerTower_7F_EventScript_1646CE:: @ 81646CE +SevenIsland_TrainerTower_3F_EventScript_1646CE:: @ 81646CE +SevenIsland_TrainerTower_1F_EventScript_1646CE:: @ 81646CE + call EventScript_1C533B + end + +SevenIsland_TrainerTower_2F_EventScript_1646D4:: @ 81646D4 +SevenIsland_TrainerTower_4F_EventScript_1646D4:: @ 81646D4 +SevenIsland_TrainerTower_6F_EventScript_1646D4:: @ 81646D4 +SevenIsland_TrainerTower_8F_EventScript_1646D4:: @ 81646D4 +SevenIsland_TrainerTower_5F_EventScript_1646D4:: @ 81646D4 +SevenIsland_TrainerTower_7F_EventScript_1646D4:: @ 81646D4 +SevenIsland_TrainerTower_3F_EventScript_1646D4:: @ 81646D4 +SevenIsland_TrainerTower_1F_EventScript_1646D4:: @ 81646D4 + call EventScript_1C5382 + end + +SevenIsland_TrainerTower_2F_EventScript_1646DA:: @ 81646DA +SevenIsland_TrainerTower_4F_EventScript_1646DA:: @ 81646DA +SevenIsland_TrainerTower_6F_EventScript_1646DA:: @ 81646DA +SevenIsland_TrainerTower_8F_EventScript_1646DA:: @ 81646DA +SevenIsland_TrainerTower_5F_EventScript_1646DA:: @ 81646DA +SevenIsland_TrainerTower_7F_EventScript_1646DA:: @ 81646DA +SevenIsland_TrainerTower_3F_EventScript_1646DA:: @ 81646DA +SevenIsland_TrainerTower_1F_EventScript_1646DA:: @ 81646DA + call EventScript_1C538C + end + +SevenIsland_TrainerTower_2F_EventScript_1646E0:: @ 81646E0 +SevenIsland_TrainerTower_4F_EventScript_1646E0:: @ 81646E0 +SevenIsland_TrainerTower_6F_EventScript_1646E0:: @ 81646E0 +SevenIsland_TrainerTower_8F_EventScript_1646E0:: @ 81646E0 +SevenIsland_TrainerTower_7F_EventScript_1646E0:: @ 81646E0 +SevenIsland_TrainerTower_Roof_EventScript_1646E0:: @ 81646E0 +SevenIsland_TrainerTower_5F_EventScript_1646E0:: @ 81646E0 +SevenIsland_TrainerTower_3F_EventScript_1646E0:: @ 81646E0 + call EventScript_1C53AA + end diff --git a/data/maps/SevenIsland_TrainerTower_2F/map.json b/data/maps/SevenIsland_TrainerTower_2F/map.json new file mode 100644 index 000000000..1af583fc9 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_2F/map.json @@ -0,0 +1,135 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_2F", + "name": "SevenIsland_TrainerTower_2F", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_2F", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "70", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_2F_EventScript_1646E0", + "flag": "6" + }, + { + "graphics_id": "240", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_2F_EventScript_1646C8", + "flag": "2" + }, + { + "graphics_id": "241", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_2F_EventScript_1646CE", + "flag": "3" + }, + { + "graphics_id": "242", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_2F_EventScript_1646D4", + "flag": "4" + }, + { + "graphics_id": "243", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_2F_EventScript_1646DA", + "flag": "5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_3F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_1F", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_0x400E", + "var_value": 0, + "script": "SevenIsland_TrainerTower_2F_EventScript_1C54AF" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_2F_EventScript_1C54B4" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_2F_EventScript_1C54EA" + } + ], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TrainerTower_2F/scripts.inc b/data/maps/SevenIsland_TrainerTower_2F/scripts.inc new file mode 100644 index 000000000..91107975b --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_2F/scripts.inc @@ -0,0 +1,25 @@ +SevenIsland_TrainerTower_2F_MapScripts:: @ 81646E6 + map_script 5, SevenIsland_TrainerTower_2F_MapScript1_1C4F54 + map_script 3, SevenIsland_TrainerTower_2F_MapScript2_1C4F62 + map_script 2, SevenIsland_TrainerTower_2F_MapScript3_1C5046 + .byte 0 + +SevenIsland_TrainerTower_2F_EventScript_1646F6:: @ 81646F6 + call EventScript_1C52F4 + end + +EventScript_1646FC:: @ 81646FC + call EventScript_1C533B + end + +EventScript_164702:: @ 8164702 + call EventScript_1C5382 + end + +EventScript_164708:: @ 8164708 + call EventScript_1C538C + end + +EventScript_16470E:: @ 816470E + call EventScript_1C53AA + end diff --git a/data/maps/SevenIsland_TrainerTower_3F/map.json b/data/maps/SevenIsland_TrainerTower_3F/map.json new file mode 100644 index 000000000..1ada6e08b --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_3F/map.json @@ -0,0 +1,135 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_3F", + "name": "SevenIsland_TrainerTower_3F", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_3F", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "70", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_3F_EventScript_1646E0", + "flag": "6" + }, + { + "graphics_id": "240", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_3F_EventScript_1646C8", + "flag": "2" + }, + { + "graphics_id": "241", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_3F_EventScript_1646CE", + "flag": "3" + }, + { + "graphics_id": "242", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_3F_EventScript_1646D4", + "flag": "4" + }, + { + "graphics_id": "243", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_3F_EventScript_1646DA", + "flag": "5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_4F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_2F", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_0x400E", + "var_value": 0, + "script": "SevenIsland_TrainerTower_3F_EventScript_1C54AF" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_3F_EventScript_1C54B4" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_3F_EventScript_1C54EA" + } + ], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TrainerTower_3F/scripts.inc b/data/maps/SevenIsland_TrainerTower_3F/scripts.inc new file mode 100644 index 000000000..c4ecde9a0 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_3F/scripts.inc @@ -0,0 +1,25 @@ +SevenIsland_TrainerTower_3F_MapScripts:: @ 8164714 + map_script 5, SevenIsland_TrainerTower_3F_MapScript1_1C4F54 + map_script 3, SevenIsland_TrainerTower_3F_MapScript2_1C4F62 + map_script 2, SevenIsland_TrainerTower_3F_MapScript3_1C5046 + .byte 0 + +SevenIsland_TrainerTower_3F_EventScript_164724:: @ 8164724 + call EventScript_1C52F4 + end + +EventScript_16472A:: @ 816472A + call EventScript_1C533B + end + +EventScript_164730:: @ 8164730 + call EventScript_1C5382 + end + +EventScript_164736:: @ 8164736 + call EventScript_1C538C + end + +EventScript_16473C:: @ 816473C + call EventScript_1C53AA + end diff --git a/data/maps/SevenIsland_TrainerTower_4F/map.json b/data/maps/SevenIsland_TrainerTower_4F/map.json new file mode 100644 index 000000000..e16cdcc95 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_4F/map.json @@ -0,0 +1,135 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_4F", + "name": "SevenIsland_TrainerTower_4F", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_4F", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "70", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_4F_EventScript_1646E0", + "flag": "6" + }, + { + "graphics_id": "240", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_4F_EventScript_1646C8", + "flag": "2" + }, + { + "graphics_id": "241", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_4F_EventScript_1646CE", + "flag": "3" + }, + { + "graphics_id": "242", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_4F_EventScript_1646D4", + "flag": "4" + }, + { + "graphics_id": "243", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_4F_EventScript_1646DA", + "flag": "5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_5F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_3F", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_0x400E", + "var_value": 0, + "script": "SevenIsland_TrainerTower_4F_EventScript_1C54AF" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_4F_EventScript_1C54B4" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_4F_EventScript_1C54EA" + } + ], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TrainerTower_4F/scripts.inc b/data/maps/SevenIsland_TrainerTower_4F/scripts.inc new file mode 100644 index 000000000..32d17a844 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_4F/scripts.inc @@ -0,0 +1,25 @@ +SevenIsland_TrainerTower_4F_MapScripts:: @ 8164742 + map_script 5, SevenIsland_TrainerTower_4F_MapScript1_1C4F54 + map_script 3, SevenIsland_TrainerTower_4F_MapScript2_1C4F62 + map_script 2, SevenIsland_TrainerTower_4F_MapScript3_1C5046 + .byte 0 + +SevenIsland_TrainerTower_4F_EventScript_164752:: @ 8164752 + call EventScript_1C52F4 + end + +EventScript_164758:: @ 8164758 + call EventScript_1C533B + end + +EventScript_16475E:: @ 816475E + call EventScript_1C5382 + end + +EventScript_164764:: @ 8164764 + call EventScript_1C538C + end + +EventScript_16476A:: @ 816476A + call EventScript_1C53AA + end diff --git a/data/maps/SevenIsland_TrainerTower_5F/map.json b/data/maps/SevenIsland_TrainerTower_5F/map.json new file mode 100644 index 000000000..d30f293c6 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_5F/map.json @@ -0,0 +1,135 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_5F", + "name": "SevenIsland_TrainerTower_5F", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_5F", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "70", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_5F_EventScript_1646E0", + "flag": "6" + }, + { + "graphics_id": "240", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_5F_EventScript_1646C8", + "flag": "2" + }, + { + "graphics_id": "241", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_5F_EventScript_1646CE", + "flag": "3" + }, + { + "graphics_id": "242", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_5F_EventScript_1646D4", + "flag": "4" + }, + { + "graphics_id": "243", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_5F_EventScript_1646DA", + "flag": "5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_6F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_4F", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_0x400E", + "var_value": 0, + "script": "SevenIsland_TrainerTower_5F_EventScript_1C54AF" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_5F_EventScript_1C54B4" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_5F_EventScript_1C54EA" + } + ], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TrainerTower_5F/scripts.inc b/data/maps/SevenIsland_TrainerTower_5F/scripts.inc new file mode 100644 index 000000000..5c461c0e8 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_5F/scripts.inc @@ -0,0 +1,25 @@ +SevenIsland_TrainerTower_5F_MapScripts:: @ 8164770 + map_script 5, SevenIsland_TrainerTower_5F_MapScript1_1C4F54 + map_script 3, SevenIsland_TrainerTower_5F_MapScript2_1C4F62 + map_script 2, SevenIsland_TrainerTower_5F_MapScript3_1C5046 + .byte 0 + +SevenIsland_TrainerTower_5F_EventScript_164780:: @ 8164780 + call EventScript_1C52F4 + end + +EventScript_164786:: @ 8164786 + call EventScript_1C533B + end + +EventScript_16478C:: @ 816478C + call EventScript_1C5382 + end + +EventScript_164792:: @ 8164792 + call EventScript_1C538C + end + +EventScript_164798:: @ 8164798 + call EventScript_1C53AA + end diff --git a/data/maps/SevenIsland_TrainerTower_6F/map.json b/data/maps/SevenIsland_TrainerTower_6F/map.json new file mode 100644 index 000000000..03436ecc9 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_6F/map.json @@ -0,0 +1,135 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_6F", + "name": "SevenIsland_TrainerTower_6F", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_6F", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "70", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_6F_EventScript_1646E0", + "flag": "6" + }, + { + "graphics_id": "240", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_6F_EventScript_1646C8", + "flag": "2" + }, + { + "graphics_id": "241", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_6F_EventScript_1646CE", + "flag": "3" + }, + { + "graphics_id": "242", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_6F_EventScript_1646D4", + "flag": "4" + }, + { + "graphics_id": "243", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_6F_EventScript_1646DA", + "flag": "5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_7F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_5F", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_0x400E", + "var_value": 0, + "script": "SevenIsland_TrainerTower_6F_EventScript_1C54AF" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_6F_EventScript_1C54B4" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_6F_EventScript_1C54EA" + } + ], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TrainerTower_6F/scripts.inc b/data/maps/SevenIsland_TrainerTower_6F/scripts.inc new file mode 100644 index 000000000..5dd711203 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_6F/scripts.inc @@ -0,0 +1,25 @@ +SevenIsland_TrainerTower_6F_MapScripts:: @ 816479E + map_script 5, SevenIsland_TrainerTower_6F_MapScript1_1C4F54 + map_script 3, SevenIsland_TrainerTower_6F_MapScript2_1C4F62 + map_script 2, SevenIsland_TrainerTower_6F_MapScript3_1C5046 + .byte 0 + +SevenIsland_TrainerTower_6F_EventScript_1647AE:: @ 81647AE + call EventScript_1C52F4 + end + +EventScript_1647B4:: @ 81647B4 + call EventScript_1C533B + end + +EventScript_1647BA:: @ 81647BA + call EventScript_1C5382 + end + +EventScript_1647C0:: @ 81647C0 + call EventScript_1C538C + end + +EventScript_1647C6:: @ 81647C6 + call EventScript_1C53AA + end diff --git a/data/maps/SevenIsland_TrainerTower_7F/map.json b/data/maps/SevenIsland_TrainerTower_7F/map.json new file mode 100644 index 000000000..cc738186e --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_7F/map.json @@ -0,0 +1,135 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_7F", + "name": "SevenIsland_TrainerTower_7F", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_7F", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "70", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_7F_EventScript_1646E0", + "flag": "6" + }, + { + "graphics_id": "240", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_7F_EventScript_1646C8", + "flag": "2" + }, + { + "graphics_id": "241", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_7F_EventScript_1646CE", + "flag": "3" + }, + { + "graphics_id": "242", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_7F_EventScript_1646D4", + "flag": "4" + }, + { + "graphics_id": "243", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_7F_EventScript_1646DA", + "flag": "5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_8F", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_6F", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_0x400E", + "var_value": 0, + "script": "SevenIsland_TrainerTower_7F_EventScript_1C54AF" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_7F_EventScript_1C54B4" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_7F_EventScript_1C54EA" + } + ], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TrainerTower_7F/scripts.inc b/data/maps/SevenIsland_TrainerTower_7F/scripts.inc new file mode 100644 index 000000000..2a74cfb91 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_7F/scripts.inc @@ -0,0 +1,25 @@ +SevenIsland_TrainerTower_7F_MapScripts:: @ 81647CC + map_script 5, SevenIsland_TrainerTower_7F_MapScript1_1C4F54 + map_script 3, SevenIsland_TrainerTower_7F_MapScript2_1C4F62 + map_script 2, SevenIsland_TrainerTower_7F_MapScript3_1C5046 + .byte 0 + +SevenIsland_TrainerTower_7F_EventScript_1647DC:: @ 81647DC + call EventScript_1C52F4 + end + +EventScript_1647E2:: @ 81647E2 + call EventScript_1C533B + end + +EventScript_1647E8:: @ 81647E8 + call EventScript_1C5382 + end + +EventScript_1647EE:: @ 81647EE + call EventScript_1C538C + end + +EventScript_1647F4:: @ 81647F4 + call EventScript_1C53AA + end diff --git a/data/maps/SevenIsland_TrainerTower_8F/map.json b/data/maps/SevenIsland_TrainerTower_8F/map.json new file mode 100644 index 000000000..bcf7ce583 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_8F/map.json @@ -0,0 +1,135 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_8F", + "name": "SevenIsland_TrainerTower_8F", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_8F", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "70", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_8F_EventScript_1646E0", + "flag": "6" + }, + { + "graphics_id": "240", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_8F_EventScript_1646C8", + "flag": "2" + }, + { + "graphics_id": "241", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_8F_EventScript_1646CE", + "flag": "3" + }, + { + "graphics_id": "242", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_8F_EventScript_1646D4", + "flag": "4" + }, + { + "graphics_id": "243", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_8F_EventScript_1646DA", + "flag": "5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ROOF", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_7F", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_0x400E", + "var_value": 0, + "script": "SevenIsland_TrainerTower_8F_EventScript_1C54AF" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_8F_EventScript_1C54B4" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_0x400F", + "var_value": 0, + "script": "SevenIsland_TrainerTower_8F_EventScript_1C54EA" + } + ], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TrainerTower_8F/scripts.inc b/data/maps/SevenIsland_TrainerTower_8F/scripts.inc new file mode 100644 index 000000000..1219425d0 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_8F/scripts.inc @@ -0,0 +1,25 @@ +SevenIsland_TrainerTower_8F_MapScripts:: @ 81647FA + map_script 5, SevenIsland_TrainerTower_8F_MapScript1_1C4F54 + map_script 3, SevenIsland_TrainerTower_8F_MapScript2_1C4F62 + map_script 2, SevenIsland_TrainerTower_8F_MapScript3_1C5046 + .byte 0 + +SevenIsland_TrainerTower_8F_EventScript_16480A:: @ 816480A + call EventScript_1C52F4 + end + +EventScript_164810:: @ 8164810 + call EventScript_1C533B + end + +EventScript_164816:: @ 8164816 + call EventScript_1C5382 + end + +EventScript_16481C:: @ 816481C + call EventScript_1C538C + end + +EventScript_164822:: @ 8164822 + call EventScript_1C53AA + end diff --git a/data/maps/SevenIsland_TrainerTower_Elevator/map.json b/data/maps/SevenIsland_TrainerTower_Elevator/map.json new file mode 100644 index 000000000..a1130c118 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_Elevator/map.json @@ -0,0 +1,35 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "name": "SevenIsland_TrainerTower_Elevator", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 0, + "y": 2, + "elevation": 0, + "script": "SevenIsland_TrainerTower_Elevator_EventScript_164B03" + } + ] +} diff --git a/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc b/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc new file mode 100644 index 000000000..de508c706 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc @@ -0,0 +1,81 @@ +SevenIsland_TrainerTower_Elevator_MapScripts:: @ 8164AF8 + map_script 5, SevenIsland_TrainerTower_Elevator_MapScript1_1C4F54 + map_script 2, SevenIsland_TrainerTower_Elevator_MapScript2_1C5046 + .byte 0 + +SevenIsland_TrainerTower_Elevator_EventScript_164B03:: @ 8164B03 + lockall + setvar VAR_0x8004, 6 + checkflag FLAG_0x002 + call_if 0, EventScript_1A7AB9 + copyvar VAR_0x8005, VAR_0x403A + special sub_80CB580 + message Text_1A535C + waitmessage + setvar VAR_0x8004, 6 + specialvar VAR_RESULT, sub_80CB328 + switch VAR_RESULT + case 0, EventScript_164B46 + case 1, EventScript_164B52 + end + +EventScript_164B46:: @ 8164B46 + multichoicedefault 0, 0, 20, 0, 0 + goto EventScript_164B5E + end + +EventScript_164B52:: @ 8164B52 + multichoicedefault 0, 0, 20, 1, 0 + goto EventScript_164B5E + end + +EventScript_164B5E:: @ 8164B5E + switch VAR_RESULT + case 0, EventScript_164BCD + case 1, EventScript_164B90 + case 2, EventScript_164BD3 + case 127, EventScript_164BD3 + end + +EventScript_164B90:: @ 8164B90 + setvar VAR_0x8006, 3 + setdynamicwarp MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY, 255, 17, 8 + compare_var_to_value VAR_0x403A, 3 + goto_if_eq EventScript_164BD3 + call EventScript_164BD8 + setvar VAR_0x403A, 3 + special sub_80CB63C + delay 25 + applymovement 255, Movement_164BE5 + waitmovement 0 + warp MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY, 255, 17, 8 + waitstate + releaseall + end + +EventScript_164BCD:: @ 8164BCD + goto EventScript_164BD3 + end + +EventScript_164BD3:: @ 8164BD3 + special sub_80CB63C + releaseall + end + +EventScript_164BD8:: @ 8164BD8 + special sub_80CB63C + closemessage + waitse + special sub_80CB498 + waitstate + setflag FLAG_0x002 + return + +Movement_164BE5:: @ 8164BE5 + step_2d + step_1c + step_10 + step_13 + step_13 + step_10 + step_end diff --git a/data/maps/SevenIsland_TrainerTower_Lobby/map.json b/data/maps/SevenIsland_TrainerTower_Lobby/map.json new file mode 100644 index 000000000..d65c41577 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_Lobby/map.json @@ -0,0 +1,125 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY", + "name": "SevenIsland_TrainerTower_Lobby", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_Lobby_EventScript_16495D", + "flag": "0" + }, + { + "graphics_id": "66", + "x": 14, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_Lobby_EventScript_164992", + "flag": "0" + }, + { + "graphics_id": "66", + "x": 11, + "y": 7, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_Lobby_EventScript_164966", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 12, + "y": 13, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_Lobby_EventScript_164AE6", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 2, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_Lobby_EventScript_164AEF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 9, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_1F", + "dest_warp_id": 1 + }, + { + "x": 9, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER", + "dest_warp_id": 0 + }, + { + "x": 17, + "y": 8, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 9, + "y": 7, + "elevation": 3, + "var": "VAR_0x4082", + "var_value": 0, + "script": "SevenIsland_TrainerTower_Lobby_EventScript_1649CE" + } + ], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 8, + "y": 10, + "elevation": 0, + "script": "SevenIsland_TrainerTower_Lobby_EventScript_164AD8" + } + ] +} diff --git a/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc b/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc new file mode 100644 index 000000000..0b6b930c7 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc @@ -0,0 +1,237 @@ +SevenIsland_TrainerTower_Lobby_MapScripts:: @ 8164839 + map_script 5, SevenIsland_TrainerTower_Lobby_MapScript1_164853 + map_script 7, SevenIsland_TrainerTower_Lobby_MapScript2_164887 + map_script 3, SevenIsland_TrainerTower_Lobby_MapScript3_1648AD + map_script 1, SevenIsland_TrainerTower_Lobby_MapScript4_164897 + map_script 2, SevenIsland_TrainerTower_Lobby_MapScript5_1648B6 + .byte 0 + +SevenIsland_TrainerTower_Lobby_MapScript1_164853:: @ 8164853 + setvar VAR_0x4002, 0 + setvar VAR_0x8004, 10 + special sub_815D9E8 + setvar VAR_0x8004, 18 + special sub_815D9E8 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_164886 + setvar VAR_0x4000, 0 + setobjectxy 255, 9, 7 + applymovement 255, Movement_164AD4 + +EventScript_164886:: @ 8164886 + end + +SevenIsland_TrainerTower_Lobby_MapScript2_164887:: @ 8164887 + addobject 1 + addobject 2 + addobject 3 + addobject 4 + addobject 5 + end + +SevenIsland_TrainerTower_Lobby_MapScript4_164897:: @ 8164897 + compare_var_to_value VAR_0x400D, 17 + call_if 1, EventScript_1648A3 + end + +EventScript_1648A3:: @ 81648A3 + setmetatile 17, 10, 647, 0 + return + +SevenIsland_TrainerTower_Lobby_MapScript3_1648AD:: @ 81648AD + setworldmapflag FLAG_WORLD_MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY + getplayerxy VAR_0x400D, VAR_RESULT + end + +SevenIsland_TrainerTower_Lobby_MapScript5_1648B6:: @ 81648B6 + map_script_2 VAR_0x4000, 0, EventScript_1648ED + map_script_2 VAR_0x400D, 0x11, EventScript_1648C8 + .2byte 0 + +EventScript_1648C8:: @ 81648C8 + lockall + applymovement 255, Movement_1648EA + waitmovement 0 + setmetatile 17, 10, 692, 1 + special DrawWholeMapView + playse SE_N + waitse + setvar VAR_0x400D, 0 + releaseall + end + +Movement_1648EA:: @ 81648EA + step_10 + step_10 + step_end + +EventScript_1648ED:: @ 81648ED + setvar VAR_0x4000, 1 + setvar VAR_0x8004, 12 + special sub_815D9E8 + switch VAR_RESULT + case 0, EventScript_164920 + case 1, EventScript_164938 + case 2, EventScript_16495C + +EventScript_164920:: @ 8164920 + lock + faceplayer + applymovement 255, Movement_164AD4 + textcolor 1 + msgbox gUnknown_817C937 + goto EventScript_16494B + +EventScript_164938:: @ 8164938 + lock + faceplayer + applymovement 255, Movement_164AD4 + textcolor 1 + msgbox gUnknown_817C9C0 + +EventScript_16494B:: @ 816494B + closemessage + applymovement 255, Movement_164AD6 + waitmovement 0 + setvar VAR_0x4082, 0 + release + +EventScript_16495C:: @ 816495C + end + +SevenIsland_TrainerTower_Lobby_EventScript_16495D:: @ 816495D + lock + faceplayer + call EventScript_1A6578 + release + end + +SevenIsland_TrainerTower_Lobby_EventScript_164966:: @ 8164966 + lock + faceplayer + setvar VAR_0x8004, 20 + special sub_815D9E8 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_164988 + msgbox gUnknown_817C9A2 + goto EventScript_164990 + +EventScript_164988:: @ 8164988 + msgbox gUnknown_817CE1F + +EventScript_164990:: @ 8164990 + release + end + +SevenIsland_TrainerTower_Lobby_EventScript_164992:: @ 8164992 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_1649B8 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_1649B8:: @ 81649B8 + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +SevenIsland_TrainerTower_Lobby_EventScript_1649CE:: @ 81649CE + lockall + applymovement 255, Movement_164AD4 + textcolor 1 + msgbox gUnknown_817C794 + setvar VAR_0x8004, 17 + special sub_815D9E8 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_164A00 + msgbox gUnknown_817C7D9 + goto EventScript_164A08 + +EventScript_164A00:: @ 8164A00 + msgbox gUnknown_817C850 + +EventScript_164A08:: @ 8164A08 + message Text_17C88D + waitmessage + multichoice 18, 6, 16, 0 + switch VAR_RESULT + case 0, EventScript_164A53 + case 1, EventScript_164ABF + case 2, EventScript_164A45 + case 127, EventScript_164ABF + end + +EventScript_164A45:: @ 8164A45 + msgbox gUnknown_817CCC9 + goto EventScript_164A08 + end + +EventScript_164A53:: @ 8164A53 + multichoice 13, 3, 64, 0 + switch VAR_RESULT + case 0, EventScript_164AA0 + case 1, EventScript_164AA0 + case 2, EventScript_164AA0 + case 3, EventScript_164AA0 + case 4, EventScript_164ABF + case 127, EventScript_164ABF + end + +EventScript_164AA0:: @ 8164AA0 + copyvar VAR_0x8005, VAR_RESULT + setvar VAR_0x4082, 1 + special sp000_heal_pokemon + msgbox gUnknown_817C8BF + setvar VAR_0x8004, 6 + special sub_815D9E8 + releaseall + end + +EventScript_164ABF:: @ 8164ABF + msgbox gUnknown_817C91D + closemessage + applymovement 255, Movement_164AD6 + waitmovement 0 + releaseall + end + +Movement_164AD4:: @ 8164AD4 + step_03 + step_end + +Movement_164AD6:: @ 8164AD6 + step_10 + step_end + +SevenIsland_TrainerTower_Lobby_EventScript_164AD8:: @ 8164AD8 + lockall + fadescreen 1 + setvar VAR_0x8004, 1 + special sub_80CD228 + waitstate + releaseall + end + +SevenIsland_TrainerTower_Lobby_EventScript_164AE6:: @ 8164AE6 + msgbox gUnknown_817CE38, 2 + end + +SevenIsland_TrainerTower_Lobby_EventScript_164AEF:: @ 8164AEF + msgbox gUnknown_817CE9F, 2 + end diff --git a/data/maps/SevenIsland_TrainerTower_Lobby/text.inc b/data/maps/SevenIsland_TrainerTower_Lobby/text.inc new file mode 100644 index 000000000..bf1e73b91 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_Lobby/text.inc @@ -0,0 +1,118 @@ +gUnknown_817C794:: @ 817C794 + .string "Hello!\p" + .string "Welcome to TRAINER TOWER where\n" + .string "TRAINERS gather from all over!$" + +gUnknown_817C7D9:: @ 817C7D9 + .string "TRAINERS from all over the world\n" + .string "gather here to battle.\p" + .string "Let me see…\p" + .string "Right now, there are TRAINERS only\n" + .string "up to Floor {STR_VAR_1}.$" + +gUnknown_817C850:: @ 817C850 + .string "TRAINERS are awaiting your\n" + .string "challenge up to the eighth floor.$" + +Text_17C88D:: @ 817C88D + .string "Would you like to challenge the\n" + .string "waiting TRAINERS?$" + +gUnknown_817C8BF:: @ 817C8BF + .string "Okay, I'll get the clock started,\n" + .string "so give it everything you have.\p" + .string "On your marks…\p" + .string "Get set…\p" + .string "Go!$" + +gUnknown_817C91D:: @ 817C91D + .string "Please do visit us again!$" + +gUnknown_817C937:: @ 817C937 + .string "That was too bad.\p" + .string "I think you put in a tremendous\n" + .string "effort in your battling.\p" + .string "Please come back and try again!$" + +gUnknown_817C9A2:: @ 817C9A2 + .string "I hope you give it your best.$" + +gUnknown_817C9C0:: @ 817C9C0 + .string "When the TRAINERS switch places,\n" + .string "the movement can be hectic.\p" + .string "To avoid the stampede, we moved\n" + .string "the reception counter here.\p" + .string "I'm sorry for the inconvenience.$" + +Text_17CA5A:: @ 817CA5A + .string "Hello…\p" + .string "I am the owner of this TOWER…\p" + .string "How the sky soars above this\n" + .string "rooftop…\p" + .string "The caress of the winds up here…\p" + .string "It's all so perfect…\p" + .string "The way you battled…\n" + .string "It, too, was perfection…$" + +Text_17CB09:: @ 817CB09 + .string "This is for you…$" + +Text_17CB1A:: @ 817CB1A + .string "Oh!\n" + .string "Stupendous!\p" + .string "It's marvelous how you've come up\n" + .string "here so quickly.\p" + .string "The fact is, you've done it in\n" + .string "record time…\p" + .string "I'll have your record posted at\n" + .string "the reception counter.$" + +Text_17CBC0:: @ 817CBC0 + .string "You seem to have taken your sweet\n" + .string "time getting here…$" + +Text_17CBF5:: @ 817CBF5 + .string "What I would like to see is a\n" + .string "better time out of you…\p" + .string "I'm counting on you.\p" + .string "Until then, farewell…$" + +Text_17CC56:: @ 817CC56 + .string "{STR_VAR_1} min. {STR_VAR_2}.{STR_VAR_3} sec.$" + +Text_17CC69:: @ 817CC69 + .string "せいせきひょうです$" + +Text_17CC73:: @ 817CC73 + .string "This is a two-on-two battle.\p" + .string "You may not battle unless you have\n" + .string "at least two POKéMON.$" + +gUnknown_817CCC9:: @ 817CCC9 + .string "Here at TRAINER TOWER, there is an\n" + .string "event called TIME ATTACK.\p" + .string "You will be timed on how quickly\n" + .string "you can get from the reception\l" + .string "counter to the OWNER on the roof.\p" + .string "The best times will be recorded on\n" + .string "the Time Board.\p" + .string "Try competing with friends to see\n" + .string "who can beat it the fastest.\p" + .string "You will not earn any EXP. Points\n" + .string "or money by beating TRAINERS here.$" + +gUnknown_817CE1F:: @ 817CE1F + .string "Thank you for competing!$" + +gUnknown_817CE38:: @ 817CE38 + .string "I'm here to see how good I am.\p" + .string "I wonder what kinds of TRAINERS\n" + .string "are waiting for me?\p" + .string "It's nerve-racking!$" + +gUnknown_817CE9F:: @ 817CE9F + .string "Gasp, gasp…\n" + .string "Gasp…\p" + .string "Never mind battling! These stairs…\n" + .string "They're tougher than any battle…$" + diff --git a/data/maps/SevenIsland_TrainerTower_Roof/map.json b/data/maps/SevenIsland_TrainerTower_Roof/map.json new file mode 100644 index 000000000..b8f8f858b --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_Roof/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ROOF", + "name": "SevenIsland_TrainerTower_Roof", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_ROOF", + "music": "BGM_FRLG_TRAINER_TOWER", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 2, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "70", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SevenIsland_TrainerTower_Roof_EventScript_1646E0", + "flag": "6" + } + ], + "warp_events": [ + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER_8F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TrainerTower_Roof/scripts.inc b/data/maps/SevenIsland_TrainerTower_Roof/scripts.inc new file mode 100644 index 000000000..af451e565 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_Roof/scripts.inc @@ -0,0 +1,8 @@ +SevenIsland_TrainerTower_Roof_MapScripts:: @ 8164828 + map_script 5, SevenIsland_TrainerTower_Roof_MapScript1_1C4F54 + map_script 2, SevenIsland_TrainerTower_Roof_MapScript2_1C5046 + .byte 0 + +SevenIsland_TrainerTower_Roof_EventScript_164833:: @ 8164833 + call EventScript_1C53AA + end diff --git a/data/maps/SilphCo_10F/map.json b/data/maps/SilphCo_10F/map.json new file mode 100644 index 000000000..51dcc5ee6 --- /dev/null +++ b/data/maps/SilphCo_10F/map.json @@ -0,0 +1,186 @@ +{ + "id": "MAP_SILPH_CO_10F", + "name": "SilphCo_10F", + "layout": "LAYOUT_SILPH_CO_10F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 10, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 2, + "y": 7, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SilphCo_10F_EventScript_161DC0", + "flag": "83" + }, + { + "graphics_id": "48", + "x": 10, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_10F_EventScript_161D96", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 0, + "y": 13, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SilphCo_10F_EventScript_161DD7", + "flag": "83" + }, + { + "graphics_id": "92", + "x": 5, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_10F_EventScript_1BE8F5", + "flag": "407" + }, + { + "graphics_id": "92", + "x": 2, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_10F_EventScript_1BE902", + "flag": "408" + }, + { + "graphics_id": "92", + "x": 3, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_10F_EventScript_1BE90F", + "flag": "409" + } + ], + "warp_events": [ + { + "x": 6, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_11F", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": 3 + }, + { + "x": 14, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": 5 + }, + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_9F", + "dest_warp_id": 3 + }, + { + "x": 14, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": 4 + }, + { + "x": 13, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 12, + "y": 11, + "elevation": 0, + "script": "SilphCo_10F_EventScript_1A8AEF" + }, + { + "type": "bg_event_type_0", + "x": 13, + "y": 11, + "elevation": 0, + "script": "SilphCo_10F_EventScript_1A8AEF" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 12, + "elevation": 0, + "script": "SilphCo_10F_EventScript_1A8AEF" + }, + { + "type": "bg_event_type_0", + "x": 13, + "y": 12, + "elevation": 0, + "script": "SilphCo_10F_EventScript_1A8AEF" + }, + { + "type": "hidden_item", + "x": 9, + "y": 9, + "elevation": 0, + "item": "ITEM_HP_UP", + "flag": "143", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 1, + "elevation": 0, + "script": "SilphCo_10F_EventScript_161DB7" + } + ] +} diff --git a/data/maps/SilphCo_10F/scripts.inc b/data/maps/SilphCo_10F/scripts.inc new file mode 100644 index 000000000..dea6b7af4 --- /dev/null +++ b/data/maps/SilphCo_10F/scripts.inc @@ -0,0 +1,36 @@ +SilphCo_10F_MapScripts:: @ 8161D86 + map_script 1, SilphCo_10F_MapScript1_161D8C + .byte 0 + +SilphCo_10F_MapScript1_161D8C:: @ 8161D8C + checkflag FLAG_0x28C + call_if 0, EventScript_1A84D6 + end + +SilphCo_10F_EventScript_161D96:: @ 8161D96 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_161DAD + msgbox gUnknown_8176DBA + release + end + +EventScript_161DAD:: @ 8161DAD + msgbox gUnknown_8176DCE + release + end + +SilphCo_10F_EventScript_161DB7:: @ 8161DB7 + msgbox gUnknown_8176DF8, 3 + end + +SilphCo_10F_EventScript_161DC0:: @ 8161DC0 + trainerbattle 0, 345, 0, Text_176D57, Text_176D73 + msgbox gUnknown_8176D86, 6 + end + +SilphCo_10F_EventScript_161DD7:: @ 8161DD7 + trainerbattle 0, 389, 0, Text_176CED, Text_176D18 + msgbox gUnknown_8176D25, 6 + end diff --git a/data/maps/SilphCo_10F/text.inc b/data/maps/SilphCo_10F/text.inc new file mode 100644 index 000000000..a910cd435 --- /dev/null +++ b/data/maps/SilphCo_10F/text.inc @@ -0,0 +1,33 @@ +Text_176CED:: @ 8176CED + .string "Welcome to 10F!\n" + .string "So good of you to join me!$" + +Text_176D18:: @ 8176D18 + .string "I'm stunned!$" + +gUnknown_8176D25:: @ 8176D25 + .string "Nice try, but the boardroom is up\n" + .string "one more floor.$" + +Text_176D57:: @ 8176D57 + .string "Enough of your silly games!$" + +Text_176D73:: @ 8176D73 + .string "No continues left!$" + +gUnknown_8176D86:: @ 8176D86 + .string "Are you satisfied with beating me?\n" + .string "Then go on home!$" + +gUnknown_8176DBA:: @ 8176DBA + .string "Waaaaa!\n" + .string "I'm scared!$" + +gUnknown_8176DCE:: @ 8176DCE + .string "About me crying…\n" + .string "Please keep it a secret.$" + +gUnknown_8176DF8:: @ 8176DF8 + .string "SILPH CO. HEAD OFFICE\n" + .string "10F$" + diff --git a/data/maps/SilphCo_11F/map.json b/data/maps/SilphCo_11F/map.json new file mode 100644 index 000000000..1d479e041 --- /dev/null +++ b/data/maps/SilphCo_11F/map.json @@ -0,0 +1,184 @@ +{ + "id": "MAP_SILPH_CO_11F", + "name": "SilphCo_11F", + "layout": "LAYOUT_SILPH_CO_11F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 11, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "33", + "x": 9, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_11F_EventScript_161DFE", + "flag": "0" + }, + { + "graphics_id": "48", + "x": 11, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_11F_EventScript_161E7F", + "flag": "0" + }, + { + "graphics_id": "87", + "x": 6, + "y": 11, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "83" + }, + { + "graphics_id": "49", + "x": 16, + "y": 12, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "SilphCo_11F_EventScript_161F40", + "flag": "83" + }, + { + "graphics_id": "92", + "x": 16, + "y": 18, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_11F_EventScript_1BEB58", + "flag": "457" + }, + { + "graphics_id": "49", + "x": 2, + "y": 19, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "SilphCo_11F_EventScript_161F57", + "flag": "83" + } + ], + "warp_events": [ + { + "x": 7, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": 0 + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": 1 + }, + { + "x": 13, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 5, + "y": 15, + "elevation": 3, + "var": "VAR_0x4060", + "var_value": 0, + "script": "SilphCo_11F_EventScript_161E88" + }, + { + "type": "trigger", + "x": 6, + "y": 15, + "elevation": 3, + "var": "VAR_0x4060", + "var_value": 0, + "script": "SilphCo_11F_EventScript_161E94" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 5, + "y": 16, + "elevation": 3, + "script": "SilphCo_11F_EventScript_1A8B09" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 17, + "elevation": 3, + "script": "SilphCo_11F_EventScript_1A8B09" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 16, + "elevation": 3, + "script": "SilphCo_11F_EventScript_1A8B09" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 17, + "elevation": 3, + "script": "SilphCo_11F_EventScript_1A8B09" + }, + { + "type": "hidden_item", + "x": 10, + "y": 18, + "elevation": 0, + "item": "ITEM_REVIVE", + "flag": "144", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 1, + "elevation": 0, + "script": "SilphCo_11F_EventScript_161F37" + } + ] +} diff --git a/data/maps/SilphCo_11F/scripts.inc b/data/maps/SilphCo_11F/scripts.inc new file mode 100644 index 000000000..92dc9ebc0 --- /dev/null +++ b/data/maps/SilphCo_11F/scripts.inc @@ -0,0 +1,144 @@ +SilphCo_11F_MapScripts:: @ 8161DEE + map_script 1, SilphCo_11F_MapScript1_161DF4 + .byte 0 + +SilphCo_11F_MapScript1_161DF4:: @ 8161DF4 + checkflag FLAG_0x28D + call_if 0, EventScript_1A8504 + end + +SilphCo_11F_EventScript_161DFE:: @ 8161DFE + lock + faceplayer + checkflag FLAG_0x250 + goto_if_eq EventScript_161E75 + checkplayergender + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_161E59 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_161E62 + checkitemspace ITEM_MASTER_BALL, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_161E6B + additem ITEM_MASTER_BALL, 1 + giveitemfanfaremsg gUnknown_8176FBD, ITEM_MASTER_BALL, 1, BGM_FRLG_ME_KEYITEM + msgbox gUnknown_8176FEB + setflag FLAG_0x250 + release + end + +EventScript_161E59:: @ 8161E59 + msgbox gUnknown_8176E12 + return + +EventScript_161E62:: @ 8161E62 + msgbox gUnknown_8176EE7 + return + +EventScript_161E6B:: @ 8161E6B + msgbox gUnknown_817708E + release + end + +EventScript_161E75:: @ 8161E75 + msgbox gUnknown_8176FEB + release + end + +SilphCo_11F_EventScript_161E7F:: @ 8161E7F + msgbox gUnknown_81770A9, 2 + end + +SilphCo_11F_EventScript_161E88:: @ 8161E88 + lockall + setvar VAR_0x4001, 0 + goto EventScript_161EA0 + +EventScript_161E93:: @ 8161E93 + end + +SilphCo_11F_EventScript_161E94:: @ 8161E94 + lockall + setvar VAR_0x4001, 1 + goto EventScript_161EA0 + +EventScript_161E9F:: @ 8161E9F + end + +EventScript_161EA0:: @ 8161EA0 + textcolor 0 + applymovement 3, Movement_1A75ED + waitmovement 0 + delay 25 + msgbox gUnknown_8177108 + closemessage + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_161F00 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_161F12 + setvar VAR_LAST_TALKED, 3 + trainerbattle 3, 349, 0, Text_1771AB + msgbox gUnknown_81771C2 + closemessage + fadescreen 1 + removeobject 3 + removeobject 4 + removeobject 6 + fadescreen 0 + setvar VAR_0x4060, 1 + setflag FLAG_0x03E + clearflag FLAG_0x03F + releaseall + end + +EventScript_161F00:: @ 8161F00 + applymovement 3, Movement_161F1D + applymovement 255, Movement_161F27 + waitmovement 0 + return + +EventScript_161F12:: @ 8161F12 + applymovement 3, Movement_161F23 + waitmovement 0 + return + +Movement_161F1D:: @ 8161F1D + step_10 + step_10 + step_10 + step_10 + step_2f + step_end + +Movement_161F23:: @ 8161F23 + step_10 + step_10 + step_10 + step_end + +Movement_161F27:: @ 8161F27 + step_1c + step_1c + step_1c + step_1b + step_1a + step_30 + step_end + +EventScript_161F2E:: @ 8161F2E + msgbox gUnknown_817732B, 3 + end + +SilphCo_11F_EventScript_161F37:: @ 8161F37 + msgbox gUnknown_817734A, 3 + end + +SilphCo_11F_EventScript_161F40:: @ 8161F40 + trainerbattle 0, 390, 0, Text_1772B8, Text_1772E7 + msgbox gUnknown_81772F9, 6 + end + +SilphCo_11F_EventScript_161F57:: @ 8161F57 + trainerbattle 0, 391, 0, Text_17726A, Text_17728C + msgbox gUnknown_817729B, 6 + end diff --git a/data/maps/SilphCo_11F/text.inc b/data/maps/SilphCo_11F/text.inc new file mode 100644 index 000000000..dcb60219a --- /dev/null +++ b/data/maps/SilphCo_11F/text.inc @@ -0,0 +1,94 @@ +gUnknown_8176E12:: @ 8176E12 + .string "PRESIDENT: Oh, dear boy!\n" + .string "Thank you for saving SILPH.\p" + .string "I will never forget you saved us in\n" + .string "our moment of peril.\p" + .string "I have to thank you in some way.\p" + .string "Because I am rich, I can give you\n" + .string "anything.\p" + .string "Here, maybe this will do.$" + +gUnknown_8176EE7:: @ 8176EE7 + .string "PRESIDENT: Oh, dear girl!\n" + .string "Thank you for saving SILPH.\p" + .string "I will never forget you saved us in\n" + .string "our moment of peril.\p" + .string "I have to thank you in some way.\p" + .string "Because I am rich, I can give you\n" + .string "anything.\p" + .string "Here, maybe this will do.$" + +gUnknown_8176FBD:: @ 8176FBD + .string "{PLAYER} obtained a MASTER BALL\n" + .string "from the PRESIDENT!$" + +gUnknown_8176FEB:: @ 8176FEB + .string "PRESIDENT: You can't buy that\n" + .string "anywhere.\p" + .string "It's our secret prototype MASTER\n" + .string "BALL.\p" + .string "It will catch any POKéMON without\n" + .string "fail!\p" + .string "You should be quiet about using it,\n" + .string "though.$" + +gUnknown_817708E:: @ 817708E + .string "You have no room for this.$" + +gUnknown_81770A9:: @ 81770A9 + .string "SECRETARY: Thank you for rescuing\n" + .string "all of us.\p" + .string "We, from the PRESIDENT down,\n" + .string "are indebted to you.$" + +gUnknown_8177108:: @ 8177108 + .string "Ah, {PLAYER}!\n" + .string "So we meet again!\p" + .string "The PRESIDENT and I are discussing\n" + .string "a vital business proposition.\p" + .string "Keep your nose out of grown-up\n" + .string "matters…\p" + .string "Or, experience a world of pain!$" + +Text_1771AB:: @ 81771AB + .string "Arrgh!!\n" + .string "I lost again!?$" + +gUnknown_81771C2:: @ 81771C2 + .string "Blast it all!\n" + .string "You ruined our plans for SILPH!\p" + .string "But, TEAM ROCKET will never fall!\p" + .string "{PLAYER}! Never forget that all\n" + .string "POKéMON exist for TEAM ROCKET!\p" + .string "I must go, but I shall return!$" + +Text_17726A:: @ 817726A + .string "Stop right there!\n" + .string "Don't you move!$" + +Text_17728C:: @ 817728C + .string "Don't…\n" + .string "Please!$" + +gUnknown_817729B:: @ 817729B + .string "So, you want to see my BOSS?$" + +Text_1772B8:: @ 81772B8 + .string "Halt! Do you have an appointment\n" + .string "with my BOSS?$" + +Text_1772E7:: @ 81772E7 + .string "Gaah!\n" + .string "Demolished!$" + +gUnknown_81772F9:: @ 81772F9 + .string "Watch your step…\n" + .string "My BOSS likes his POKéMON tough!$" + +gUnknown_817732B:: @ 817732B + .string "The monitor has POKéMON on it!$" + +gUnknown_817734A:: @ 817734A + .string "SILPH CO. HEAD OFFICE\n" + .string "11F$" + diff --git a/data/maps/SilphCo_1F/map.json b/data/maps/SilphCo_1F/map.json new file mode 100644 index 000000000..325cef8b5 --- /dev/null +++ b/data/maps/SilphCo_1F/map.json @@ -0,0 +1,77 @@ +{ + "id": "MAP_SILPH_CO_1F", + "name": "SilphCo_1F", + "layout": "LAYOUT_SILPH_CO_1F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 1, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "48", + "x": 3, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_1F_EventScript_16162F", + "flag": "63" + } + ], + "warp_events": [ + { + "x": 7, + "y": 21, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_DUPLICATE", + "dest_warp_id": 0 + }, + { + "x": 31, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": 3 + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 30, + "y": 1, + "elevation": 0, + "script": "SilphCo_1F_EventScript_161638" + } + ] +} diff --git a/data/maps/SilphCo_1F/scripts.inc b/data/maps/SilphCo_1F/scripts.inc new file mode 100644 index 000000000..ffb126808 --- /dev/null +++ b/data/maps/SilphCo_1F/scripts.inc @@ -0,0 +1,15 @@ +SilphCo_1F_MapScripts:: @ 8161625 + map_script 3, SilphCo_1F_MapScript1_16162B + .byte 0 + +SilphCo_1F_MapScript1_16162B:: @ 816162B + setworldmapflag FLAG_WORLD_MAP_SILPH_CO_1F + end + +SilphCo_1F_EventScript_16162F:: @ 816162F + msgbox gUnknown_81754F7, 2 + end + +SilphCo_1F_EventScript_161638:: @ 8161638 + msgbox gUnknown_8175549, 3 + end diff --git a/data/maps/SilphCo_1F/text.inc b/data/maps/SilphCo_1F/text.inc new file mode 100644 index 000000000..048102660 --- /dev/null +++ b/data/maps/SilphCo_1F/text.inc @@ -0,0 +1,13 @@ +gUnknown_81754F7:: @ 81754F7 + .string "Welcome.\p" + .string "The PRESIDENT is in the boardroom\n" + .string "on 11F.$" + +Text_17552A:: @ 817552A + .string "めちゃめちゃに こわされてる\n" + .string "とうぶん なおりそうに ない‥$" + +gUnknown_8175549:: @ 8175549 + .string "SILPH CO. HEAD OFFICE\n" + .string "1F$" + diff --git a/data/maps/SilphCo_2F/map.json b/data/maps/SilphCo_2F/map.json new file mode 100644 index 000000000..51d1ba7a6 --- /dev/null +++ b/data/maps/SilphCo_2F/map.json @@ -0,0 +1,208 @@ +{ + "id": "MAP_SILPH_CO_2F", + "name": "SilphCo_2F", + "layout": "LAYOUT_SILPH_CO_2F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 2, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 29, + "y": 12, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "SilphCo_2F_EventScript_1616AE", + "flag": "83" + }, + { + "graphics_id": "55", + "x": 28, + "y": 18, + "elevation": 3, + "movement_type": "15", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SilphCo_2F_EventScript_161680", + "flag": "83" + }, + { + "graphics_id": "49", + "x": 20, + "y": 14, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SilphCo_2F_EventScript_161697", + "flag": "83" + }, + { + "graphics_id": "55", + "x": 5, + "y": 19, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_2F_EventScript_161669", + "flag": "83" + }, + { + "graphics_id": "28", + "x": 10, + "y": 4, + "elevation": 0, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_2F_EventScript_16165A", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": 0 + }, + { + "x": 2, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": 8 + }, + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": 5 + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_1F", + "dest_warp_id": 3 + }, + { + "x": 7, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_6F", + "dest_warp_id": 1 + }, + { + "x": 33, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": 2 + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 5, + "y": 8, + "elevation": 0, + "script": "SilphCo_2F_EventScript_1A891B" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 8, + "elevation": 0, + "script": "SilphCo_2F_EventScript_1A891B" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 9, + "elevation": 0, + "script": "SilphCo_2F_EventScript_1A891B" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 9, + "elevation": 0, + "script": "SilphCo_2F_EventScript_1A891B" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 15, + "elevation": 0, + "script": "SilphCo_2F_EventScript_1A8935" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 15, + "elevation": 0, + "script": "SilphCo_2F_EventScript_1A8935" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 16, + "elevation": 0, + "script": "SilphCo_2F_EventScript_1A8935" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 16, + "elevation": 0, + "script": "SilphCo_2F_EventScript_1A8935" + }, + { + "type": "hidden_item", + "x": 11, + "y": 21, + "elevation": 0, + "item": "POCKET_KEY_ITEMS", + "flag": "135", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 29, + "y": 1, + "elevation": 0, + "script": "SilphCo_2F_EventScript_161660" + } + ] +} diff --git a/data/maps/SilphCo_2F/scripts.inc b/data/maps/SilphCo_2F/scripts.inc new file mode 100644 index 000000000..309ee5d13 --- /dev/null +++ b/data/maps/SilphCo_2F/scripts.inc @@ -0,0 +1,40 @@ +SilphCo_2F_MapScripts:: @ 8161641 + map_script 1, SilphCo_2F_MapScript1_161647 + .byte 0 + +SilphCo_2F_MapScript1_161647:: @ 8161647 + checkflag FLAG_0x27A + call_if 0, EventScript_1A8149 + checkflag FLAG_0x27B + call_if 0, EventScript_1A8177 + end + +SilphCo_2F_EventScript_16165A:: @ 816165A + goto EventScript_1C4816 + +EventScript_16165F:: @ 816165F + end + +SilphCo_2F_EventScript_161660:: @ 8161660 + msgbox gUnknown_8175894, 3 + end + +SilphCo_2F_EventScript_161669:: @ 8161669 + trainerbattle 0, 336, 0, Text_175562, Text_17557E + msgbox gUnknown_817559F, 6 + end + +SilphCo_2F_EventScript_161680:: @ 8161680 + trainerbattle 0, 337, 0, Text_1755C6, Text_1755E5 + msgbox gUnknown_81755F2, 6 + end + +SilphCo_2F_EventScript_161697:: @ 8161697 + trainerbattle 0, 373, 0, Text_17562D, Text_17564A + msgbox gUnknown_8175651, 6 + end + +SilphCo_2F_EventScript_1616AE:: @ 81616AE + trainerbattle 0, 374, 0, Text_1756AD, Text_1756D8 + msgbox gUnknown_81756E2, 6 + end diff --git a/data/maps/SilphCo_2F/text.inc b/data/maps/SilphCo_2F/text.inc new file mode 100644 index 000000000..ee3fbc0b0 --- /dev/null +++ b/data/maps/SilphCo_2F/text.inc @@ -0,0 +1,74 @@ +Text_175562:: @ 8175562 + .string "Help!\n" + .string "I'm a SILPH employee.$" + +Text_17557E:: @ 817557E + .string "How did you know\n" + .string "I was a ROCKET?$" + +gUnknown_817559F:: @ 817559F + .string "I work for both SILPH and TEAM\n" + .string "ROCKET.$" + +Text_1755C6:: @ 81755C6 + .string "It's off-limits here!\n" + .string "Go home!$" + +Text_1755E5:: @ 81755E5 + .string "You're good.$" + +gUnknown_81755F2:: @ 81755F2 + .string "Can you solve the maze in here?\n" + .string "It's not easy, I tell you!$" + +Text_17562D:: @ 817562D + .string "No kids are allowed in here!$" + +Text_17564A:: @ 817564A + .string "Tough!$" + +gUnknown_8175651:: @ 8175651 + .string "Diamond-shaped tiles are teleport\n" + .string "blocks.\p" + .string "They're transporters for this\n" + .string "high-tech building.$" + +Text_1756AD:: @ 81756AD + .string "Hey, kid!\n" + .string "What are you wandering here for?$" + +Text_1756D8:: @ 81756D8 + .string "I goofed!$" + +gUnknown_81756E2:: @ 81756E2 + .string "SILPH CO. will be associated with\n" + .string "TEAM ROCKET!$" + +Text_175711:: @ 8175711 + .string "Eeek!\n" + .string "No! Stop! Help!\p" + .string "Oh, you're not with TEAM ROCKET.\n" + .string "I'm sorry, I thought…\p" + .string "Will you forgive me if I teach\n" + .string "you the THUNDER WAVE technique?$" + +Text_17579D:: @ 817579D + .string "Oh…\n" + .string "But THUNDER WAVE is convenient…$" + +Text_1757C1:: @ 81757C1 + .string "Which POKéMON should I teach\n" + .string "THUNDER WAVE?$" + +Text_1757EC:: @ 81757EC + .string "THUNDER WAVE causes paralysis in\n" + .string "the target POKéMON.\p" + .string "A paralyzed POKéMON may be unable\n" + .string "to move in battle.\p" + .string "It's an ELECTRIC-type move, so it\n" + .string "won't work on some POKéMON.$" + +gUnknown_8175894:: @ 8175894 + .string "SILPH CO. HEAD OFFICE\n" + .string "2F$" + diff --git a/data/maps/SilphCo_3F/map.json b/data/maps/SilphCo_3F/map.json new file mode 100644 index 000000000..b900dd5dd --- /dev/null +++ b/data/maps/SilphCo_3F/map.json @@ -0,0 +1,216 @@ +{ + "id": "MAP_SILPH_CO_3F", + "name": "SilphCo_3F", + "layout": "LAYOUT_SILPH_CO_3F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 3, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 25, + "y": 9, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SilphCo_3F_EventScript_16171F", + "flag": "83" + }, + { + "graphics_id": "47", + "x": 31, + "y": 13, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_3F_EventScript_1616DE", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_3F_EventScript_161708", + "flag": "83" + }, + { + "graphics_id": "92", + "x": 8, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_3F_EventScript_1BE866", + "flag": "396" + } + ], + "warp_events": [ + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": 1 + }, + { + "x": 13, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": 4 + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": 2 + }, + { + "x": 2, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_9F", + "dest_warp_id": 2 + }, + { + "x": 3, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": 4 + }, + { + "x": 29, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": 7 + }, + { + "x": 32, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": 6 + }, + { + "x": 33, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": 1 + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 10, + "y": 12, + "elevation": 3, + "script": "SilphCo_3F_EventScript_1A894F" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 13, + "elevation": 3, + "script": "SilphCo_3F_EventScript_1A894F" + }, + { + "type": "bg_event_type_0", + "x": 21, + "y": 12, + "elevation": 3, + "script": "SilphCo_3F_EventScript_1A8969" + }, + { + "type": "bg_event_type_0", + "x": 21, + "y": 13, + "elevation": 3, + "script": "SilphCo_3F_EventScript_1A8969" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 12, + "elevation": 3, + "script": "SilphCo_3F_EventScript_1A894F" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 13, + "elevation": 3, + "script": "SilphCo_3F_EventScript_1A894F" + }, + { + "type": "bg_event_type_0", + "x": 20, + "y": 12, + "elevation": 3, + "script": "SilphCo_3F_EventScript_1A8969" + }, + { + "type": "bg_event_type_0", + "x": 20, + "y": 13, + "elevation": 3, + "script": "SilphCo_3F_EventScript_1A8969" + }, + { + "type": "hidden_item", + "x": 34, + "y": 18, + "elevation": 0, + "item": "ITEM_PROTEIN", + "flag": "136", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 29, + "y": 1, + "elevation": 0, + "script": "SilphCo_3F_EventScript_1616FF" + } + ] +} diff --git a/data/maps/SilphCo_3F/scripts.inc b/data/maps/SilphCo_3F/scripts.inc new file mode 100644 index 000000000..d4b7458ce --- /dev/null +++ b/data/maps/SilphCo_3F/scripts.inc @@ -0,0 +1,38 @@ +SilphCo_3F_MapScripts:: @ 81616C5 + map_script 1, SilphCo_3F_MapScript1_1616CB + .byte 0 + +SilphCo_3F_MapScript1_1616CB:: @ 81616CB + checkflag FLAG_0x27C + call_if 0, EventScript_1A81A5 + checkflag FLAG_0x27D + call_if 0, EventScript_1A81DC + end + +SilphCo_3F_EventScript_1616DE:: @ 81616DE + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_1616F5 + msgbox gUnknown_81758AD + release + end + +EventScript_1616F5:: @ 81616F5 + msgbox gUnknown_81758D3 + release + end + +SilphCo_3F_EventScript_1616FF:: @ 81616FF + msgbox gUnknown_81759DC, 3 + end + +SilphCo_3F_EventScript_161708:: @ 8161708 + trainerbattle 0, 338, 0, Text_175948, Text_17597D + msgbox gUnknown_8175990, 6 + end + +SilphCo_3F_EventScript_16171F:: @ 816171F + trainerbattle 0, 375, 0, Text_1758F6, Text_175911 + msgbox gUnknown_817591C, 6 + end diff --git a/data/maps/SilphCo_3F/text.inc b/data/maps/SilphCo_3F/text.inc new file mode 100644 index 000000000..6b8a8d4d1 --- /dev/null +++ b/data/maps/SilphCo_3F/text.inc @@ -0,0 +1,34 @@ +gUnknown_81758AD:: @ 81758AD + .string "I work for SILPH CO.\n" + .string "What am I to do?$" + +gUnknown_81758D3:: @ 81758D3 + .string "{PLAYER}!\n" + .string "You and your POKéMON saved us!$" + +Text_1758F6:: @ 81758F6 + .string "Quit messing with us, kid!$" + +Text_175911:: @ 8175911 + .string "I give up!$" + +gUnknown_817591C:: @ 817591C + .string "A hint? You can open doors with\n" + .string "a CARD KEY!$" + +Text_175948:: @ 8175948 + .string "I support TEAM ROCKET more than\n" + .string "I support SILPH CO.!$" + +Text_17597D:: @ 817597D + .string "You really got me!$" + +gUnknown_8175990:: @ 8175990 + .string "Humph…\p" + .string "TEAM ROCKET said that if I helped\n" + .string "them, they'd let me study POKéMON.$" + +gUnknown_81759DC:: @ 81759DC + .string "SILPH CO. HEAD OFFICE\n" + .string "3F$" + diff --git a/data/maps/SilphCo_4F/map.json b/data/maps/SilphCo_4F/map.json new file mode 100644 index 000000000..04966c66f --- /dev/null +++ b/data/maps/SilphCo_4F/map.json @@ -0,0 +1,247 @@ +{ + "id": "MAP_SILPH_CO_4F", + "name": "SilphCo_4F", + "layout": "LAYOUT_SILPH_CO_4F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 4, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 33, + "y": 16, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SilphCo_4F_EventScript_1617A7", + "flag": "83" + }, + { + "graphics_id": "49", + "x": 10, + "y": 19, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "SilphCo_4F_EventScript_161790", + "flag": "83" + }, + { + "graphics_id": "55", + "x": 14, + "y": 8, + "elevation": 3, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SilphCo_4F_EventScript_161779", + "flag": "83" + }, + { + "graphics_id": "47", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_4F_EventScript_16174F", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_4F_EventScript_1BE873", + "flag": "397" + }, + { + "graphics_id": "92", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_4F_EventScript_1BE880", + "flag": "398" + }, + { + "graphics_id": "92", + "x": 2, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_4F_EventScript_1BE88D", + "flag": "399" + }, + { + "graphics_id": "92", + "x": 30, + "y": 18, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_4F_EventScript_1BEE09", + "flag": "510" + } + ], + "warp_events": [ + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_6F", + "dest_warp_id": 3 + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": 3 + }, + { + "x": 12, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": 4 + }, + { + "x": 18, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": 2 + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 3, + "y": 16, + "elevation": 0, + "script": "SilphCo_4F_EventScript_1A8983" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 16, + "elevation": 0, + "script": "SilphCo_4F_EventScript_1A8983" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 17, + "elevation": 0, + "script": "SilphCo_4F_EventScript_1A8983" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 17, + "elevation": 0, + "script": "SilphCo_4F_EventScript_1A8983" + }, + { + "type": "bg_event_type_0", + "x": 15, + "y": 11, + "elevation": 0, + "script": "SilphCo_4F_EventScript_1A899D" + }, + { + "type": "bg_event_type_0", + "x": 14, + "y": 11, + "elevation": 0, + "script": "SilphCo_4F_EventScript_1A899D" + }, + { + "type": "bg_event_type_0", + "x": 14, + "y": 12, + "elevation": 0, + "script": "SilphCo_4F_EventScript_1A899D" + }, + { + "type": "bg_event_type_0", + "x": 15, + "y": 12, + "elevation": 0, + "script": "SilphCo_4F_EventScript_1A899D" + }, + { + "type": "hidden_item", + "x": 35, + "y": 20, + "elevation": 0, + "item": "ITEM_IRON", + "flag": "137", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 29, + "y": 1, + "elevation": 0, + "script": "SilphCo_4F_EventScript_161770" + } + ] +} diff --git a/data/maps/SilphCo_4F/scripts.inc b/data/maps/SilphCo_4F/scripts.inc new file mode 100644 index 000000000..884f2e410 --- /dev/null +++ b/data/maps/SilphCo_4F/scripts.inc @@ -0,0 +1,43 @@ +SilphCo_4F_MapScripts:: @ 8161736 + map_script 1, SilphCo_4F_MapScript1_16173C + .byte 0 + +SilphCo_4F_MapScript1_16173C:: @ 816173C + checkflag FLAG_0x27E + call_if 0, EventScript_1A8213 + checkflag FLAG_0x27F + call_if 0, EventScript_1A8241 + end + +SilphCo_4F_EventScript_16174F:: @ 816174F + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_161766 + msgbox gUnknown_81759F5 + release + end + +EventScript_161766:: @ 8161766 + msgbox gUnknown_8175A15 + release + end + +SilphCo_4F_EventScript_161770:: @ 8161770 + msgbox gUnknown_8175B57, 3 + end + +SilphCo_4F_EventScript_161779:: @ 8161779 + trainerbattle 0, 339, 0, Text_175A90, Text_175AB0 + msgbox gUnknown_8175AC8, 6 + end + +SilphCo_4F_EventScript_161790:: @ 8161790 + trainerbattle 0, 376, 0, Text_175A2F, Text_175A5B + msgbox gUnknown_8175A62, 6 + end + +SilphCo_4F_EventScript_1617A7:: @ 81617A7 + trainerbattle 0, 377, 0, Text_175B19, Text_175B2B + msgbox gUnknown_8175B38, 6 + end diff --git a/data/maps/SilphCo_4F/text.inc b/data/maps/SilphCo_4F/text.inc new file mode 100644 index 000000000..d8741f9a3 --- /dev/null +++ b/data/maps/SilphCo_4F/text.inc @@ -0,0 +1,45 @@ +gUnknown_81759F5:: @ 81759F5 + .string "Sssh!\n" + .string "Can't you see I'm hiding?$" + +gUnknown_8175A15:: @ 8175A15 + .string "Huh?\n" + .string "TEAM ROCKET is gone?$" + +Text_175A2F:: @ 8175A2F + .string "TEAM ROCKET has taken control\n" + .string "of SILPH CO.!$" + +Text_175A5B:: @ 8175A5B + .string "Arrgh!$" + +gUnknown_8175A62:: @ 8175A62 + .string "Fwahahaha!\n" + .string "My BOSS has been after this place!$" + +Text_175A90:: @ 8175A90 + .string "My POKéMON is my loyal servant.$" + +Text_175AB0:: @ 8175AB0 + .string "Darn!\n" + .string "You weak POKéMON!$" + +gUnknown_8175AC8:: @ 8175AC8 + .string "The doors are electronically\n" + .string "locked.\p" + .string "It takes a CARD KEY to open the\n" + .string "doors here.$" + +Text_175B19:: @ 8175B19 + .string "Intruder spotted!$" + +Text_175B2B:: @ 8175B2B + .string "Who are you?$" + +gUnknown_8175B38:: @ 8175B38 + .string "I better tell the BOSS on 11F!$" + +gUnknown_8175B57:: @ 8175B57 + .string "SILPH CO. HEAD OFFICE\n" + .string "4F$" + diff --git a/data/maps/SilphCo_5F/map.json b/data/maps/SilphCo_5F/map.json new file mode 100644 index 000000000..b3f512516 --- /dev/null +++ b/data/maps/SilphCo_5F/map.json @@ -0,0 +1,318 @@ +{ + "id": "MAP_SILPH_CO_5F", + "name": "SilphCo_5F", + "layout": "LAYOUT_SILPH_CO_5F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 5, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 35, + "y": 7, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SilphCo_5F_EventScript_161853", + "flag": "83" + }, + { + "graphics_id": "26", + "x": 23, + "y": 13, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SilphCo_5F_EventScript_16186A", + "flag": "83" + }, + { + "graphics_id": "47", + "x": 16, + "y": 13, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_5F_EventScript_1617E0", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SilphCo_5F_EventScript_161825", + "flag": "83" + }, + { + "graphics_id": "49", + "x": 9, + "y": 21, + "elevation": 3, + "movement_type": "16", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SilphCo_5F_EventScript_16183C", + "flag": "83" + }, + { + "graphics_id": "92", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_5F_EventScript_1BE89A", + "flag": "400" + }, + { + "graphics_id": "92", + "x": 1, + "y": 18, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_5F_EventScript_1BE8A7", + "flag": "401" + }, + { + "graphics_id": "92", + "x": 22, + "y": 21, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_5F_EventScript_1BE8B4", + "flag": "402" + }, + { + "graphics_id": "55", + "x": 2, + "y": 7, + "elevation": 3, + "movement_type": "28", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_5F_EventScript_1AD0D4", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": 0 + }, + { + "x": 15, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": 1 + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_6F", + "dest_warp_id": 2 + }, + { + "x": 10, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_9F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": 5 + }, + { + "x": 33, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": 2 + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 13, + "y": 16, + "elevation": 0, + "item": "ITEM_ELIXIR", + "flag": "24", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 9, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89B7" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 10, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89B7" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 18, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89D1" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 19, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89D1" + }, + { + "type": "bg_event_type_0", + "x": 19, + "y": 13, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89EB" + }, + { + "type": "bg_event_type_0", + "x": 19, + "y": 14, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89EB" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 9, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89B7" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 10, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89B7" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 19, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89D1" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 18, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89D1" + }, + { + "type": "bg_event_type_0", + "x": 18, + "y": 13, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89EB" + }, + { + "type": "bg_event_type_0", + "x": 18, + "y": 14, + "elevation": 0, + "script": "SilphCo_5F_EventScript_1A89EB" + }, + { + "type": "bg_event_type_0", + "x": 28, + "y": 11, + "elevation": 0, + "script": "SilphCo_5F_EventScript_161813" + }, + { + "type": "bg_event_type_0", + "x": 30, + "y": 13, + "elevation": 0, + "script": "SilphCo_5F_EventScript_16180A" + }, + { + "type": "bg_event_type_0", + "x": 25, + "y": 15, + "elevation": 0, + "script": "SilphCo_5F_EventScript_161801" + }, + { + "type": "hidden_item", + "x": 32, + "y": 9, + "elevation": 0, + "item": "ITEM_PP_UP", + "flag": "138", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 29, + "y": 1, + "elevation": 0, + "script": "SilphCo_5F_EventScript_16181C" + } + ] +} diff --git a/data/maps/SilphCo_5F/scripts.inc b/data/maps/SilphCo_5F/scripts.inc new file mode 100644 index 000000000..e17c791b9 --- /dev/null +++ b/data/maps/SilphCo_5F/scripts.inc @@ -0,0 +1,62 @@ +SilphCo_5F_MapScripts:: @ 81617BE + map_script 1, SilphCo_5F_MapScript1_1617C4 + .byte 0 + +SilphCo_5F_MapScript1_1617C4:: @ 81617C4 + checkflag FLAG_0x280 + call_if 0, EventScript_1A826F + checkflag FLAG_0x281 + call_if 0, EventScript_1A82A6 + checkflag FLAG_0x282 + call_if 0, EventScript_1A82DD + end + +SilphCo_5F_EventScript_1617E0:: @ 81617E0 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_1617F7 + msgbox gUnknown_8175B70 + release + end + +EventScript_1617F7:: @ 81617F7 + msgbox gUnknown_8175BB3 + release + end + +SilphCo_5F_EventScript_161801:: @ 8161801 + msgbox gUnknown_8175D89, 3 + end + +SilphCo_5F_EventScript_16180A:: @ 816180A + msgbox gUnknown_8175DE0, 3 + end + +SilphCo_5F_EventScript_161813:: @ 8161813 + msgbox gUnknown_8175E28, 3 + end + +SilphCo_5F_EventScript_16181C:: @ 816181C + msgbox gUnknown_8175E80, 3 + end + +SilphCo_5F_EventScript_161825:: @ 8161825 + trainerbattle 0, 340, 0, Text_175C40, Text_175C6D + msgbox gUnknown_8175C7D, 6 + end + +SilphCo_5F_EventScript_16183C:: @ 816183C + trainerbattle 0, 378, 0, Text_175BE5, Text_175C09 + msgbox gUnknown_8175C0F, 6 + end + +SilphCo_5F_EventScript_161853:: @ 8161853 + trainerbattle 0, 379, 0, Text_175D28, Text_175D4B + msgbox gUnknown_8175D59, 6 + end + +SilphCo_5F_EventScript_16186A:: @ 816186A + trainerbattle 0, 286, 0, Text_175CBD, Text_175CEB + msgbox gUnknown_8175CF9, 6 + end diff --git a/data/maps/SilphCo_5F/text.inc b/data/maps/SilphCo_5F/text.inc new file mode 100644 index 000000000..5a768d5f5 --- /dev/null +++ b/data/maps/SilphCo_5F/text.inc @@ -0,0 +1,74 @@ +gUnknown_8175B70:: @ 8175B70 + .string "TEAM ROCKET is in an uproar over\n" + .string "some intruder.\p" + .string "That's you, right?$" + +gUnknown_8175BB3:: @ 8175BB3 + .string "TEAM ROCKET took off!\n" + .string "You're our hero! Thank you!$" + +Text_175BE5:: @ 8175BE5 + .string "I heard a kid was wandering\n" + .string "around.$" + +Text_175C09:: @ 8175C09 + .string "Boom!$" + +gUnknown_8175C0F:: @ 8175C0F + .string "It's not smart to pick a fight with\n" + .string "TEAM ROCKET!$" + +Text_175C40:: @ 8175C40 + .string "We study POKé BALL technology on\n" + .string "this floor.$" + +Text_175C6D:: @ 8175C6D + .string "Dang!\n" + .string "Blast it!$" + +gUnknown_8175C7D:: @ 8175C7D + .string "We worked on the ultimate POKé\n" + .string "BALL which would catch anything.$" + +Text_175CBD:: @ 8175CBD + .string "Whaaat?\p" + .string "There shouldn't be any children\n" + .string "here!$" + +Text_175CEB:: @ 8175CEB + .string "Oh, goodness!$" + +gUnknown_8175CF9:: @ 8175CF9 + .string "You're only on 5F.\n" + .string "It's a long way to my BOSS!$" + +Text_175D28:: @ 8175D28 + .string "Show TEAM ROCKET a little respect!$" + +Text_175D4B:: @ 8175D4B + .string "Cough…\n" + .string "Cough…$" + +gUnknown_8175D59:: @ 8175D59 + .string "Which reminds me.\p" + .string "KOFFING evolves into WEEZING!$" + +gUnknown_8175D89:: @ 8175D89 + .string "It's a POKéMON REPORT!\p" + .string "POKéMON LAB created PORYGON,\n" + .string "the first virtual-reality POKéMON.$" + +gUnknown_8175DE0:: @ 8175DE0 + .string "It's a POKéMON REPORT!\p" + .string "Over 350 POKéMON techniques have\n" + .string "been confirmed.$" + +gUnknown_8175E28:: @ 8175E28 + .string "It's a POKéMON REPORT!\p" + .string "Some POKéMON have been confirmed\n" + .string "to evolve when they are traded.$" + +gUnknown_8175E80:: @ 8175E80 + .string "SILPH CO. HEAD OFFICE\n" + .string "5F$" + diff --git a/data/maps/SilphCo_6F/map.json b/data/maps/SilphCo_6F/map.json new file mode 100644 index 000000000..c9c1b2f09 --- /dev/null +++ b/data/maps/SilphCo_6F/map.json @@ -0,0 +1,231 @@ +{ + "id": "MAP_SILPH_CO_6F", + "name": "SilphCo_6F", + "layout": "LAYOUT_SILPH_CO_6F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 6, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 21, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SilphCo_6F_EventScript_161956", + "flag": "83" + }, + { + "graphics_id": "47", + "x": 23, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_6F_EventScript_1618D3", + "flag": "0" + }, + { + "graphics_id": "48", + "x": 24, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_6F_EventScript_1618F4", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 22, + "y": 13, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_6F_EventScript_161891", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 14, + "y": 9, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_6F_EventScript_1618B2", + "flag": "0" + }, + { + "graphics_id": "48", + "x": 16, + "y": 12, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_6F_EventScript_161915", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 9, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SilphCo_6F_EventScript_16193F", + "flag": "83" + }, + { + "graphics_id": "92", + "x": 2, + "y": 14, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_6F_EventScript_1BE8C1", + "flag": "403" + }, + { + "graphics_id": "92", + "x": 1, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_6F_EventScript_1BE8CE", + "flag": "404" + }, + { + "graphics_id": "49", + "x": 18, + "y": 17, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SilphCo_6F_EventScript_16196D", + "flag": "83" + } + ], + "warp_events": [ + { + "x": 14, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": 0 + }, + { + "x": 29, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": 4 + }, + { + "x": 26, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": 2 + }, + { + "x": 2, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": 1 + }, + { + "x": 20, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 6, + "y": 15, + "elevation": 0, + "script": "SilphCo_6F_EventScript_1A8A05" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 16, + "elevation": 0, + "script": "SilphCo_6F_EventScript_1A8A05" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 15, + "elevation": 0, + "script": "SilphCo_6F_EventScript_1A8A05" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 16, + "elevation": 0, + "script": "SilphCo_6F_EventScript_1A8A05" + }, + { + "type": "hidden_item", + "x": 1, + "y": 8, + "elevation": 0, + "item": "ITEM_CARBOS", + "flag": "139", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 25, + "y": 1, + "elevation": 0, + "script": "SilphCo_6F_EventScript_161936" + } + ] +} diff --git a/data/maps/SilphCo_6F/scripts.inc b/data/maps/SilphCo_6F/scripts.inc new file mode 100644 index 000000000..caeedd216 --- /dev/null +++ b/data/maps/SilphCo_6F/scripts.inc @@ -0,0 +1,97 @@ +SilphCo_6F_MapScripts:: @ 8161881 + map_script 1, SilphCo_6F_MapScript1_161887 + .byte 0 + +SilphCo_6F_MapScript1_161887:: @ 8161887 + checkflag FLAG_0x283 + call_if 0, EventScript_1A8314 + end + +SilphCo_6F_EventScript_161891:: @ 8161891 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_1618A8 + msgbox gUnknown_817607E + release + end + +EventScript_1618A8:: @ 81618A8 + msgbox gUnknown_81760B6 + release + end + +SilphCo_6F_EventScript_1618B2:: @ 81618B2 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_1618C9 + msgbox gUnknown_8175F24 + release + end + +EventScript_1618C9:: @ 81618C9 + msgbox gUnknown_8175F51 + release + end + +SilphCo_6F_EventScript_1618D3:: @ 81618D3 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_1618EA + msgbox gUnknown_8175F70 + release + end + +EventScript_1618EA:: @ 81618EA + msgbox gUnknown_8175F93 + release + end + +SilphCo_6F_EventScript_1618F4:: @ 81618F4 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_16190B + msgbox gUnknown_8175FAA + release + end + +EventScript_16190B:: @ 816190B + msgbox gUnknown_8175FD3 + release + end + +SilphCo_6F_EventScript_161915:: @ 8161915 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_16192C + msgbox gUnknown_8176012 + release + end + +EventScript_16192C:: @ 816192C + msgbox gUnknown_817604B + release + end + +SilphCo_6F_EventScript_161936:: @ 8161936 + msgbox gUnknown_817624D, 3 + end + +SilphCo_6F_EventScript_16193F:: @ 816193F + trainerbattle 0, 341, 0, Text_176136, Text_1761BD + msgbox gUnknown_81761C4, 6 + end + +SilphCo_6F_EventScript_161956:: @ 8161956 + trainerbattle 0, 380, 0, Text_1760DE, Text_176104 + msgbox gUnknown_817610F, 6 + end + +SilphCo_6F_EventScript_16196D:: @ 816196D + trainerbattle 0, 381, 0, Text_1761F1, Text_17620E + msgbox gUnknown_817621B, 6 + end diff --git a/data/maps/SilphCo_6F/text.inc b/data/maps/SilphCo_6F/text.inc new file mode 100644 index 000000000..1de83df51 --- /dev/null +++ b/data/maps/SilphCo_6F/text.inc @@ -0,0 +1,86 @@ +Text_175E99:: @ 8175E99 + .string "Those thugs that took over our\n" + .string "building…\p" + .string "Their BOSS said he was looking for\n" + .string "strong POKéMON.\p" + .string "I hope our PRESIDENT managed to\n" + .string "avoid trouble…$" + +gUnknown_8175F24:: @ 8175F24 + .string "The ROCKETS came and took over\n" + .string "the building!$" + +gUnknown_8175F51:: @ 8175F51 + .string "Well, better get back to work.$" + +gUnknown_8175F70:: @ 8175F70 + .string "Oh dear, oh dear.\n" + .string "Help me, please!$" + +gUnknown_8175F93:: @ 8175F93 + .string "We got engaged.\n" + .string "Heheh!$" + +gUnknown_8175FAA:: @ 8175FAA + .string "That man next to me…\n" + .string "He's such a coward!$" + +gUnknown_8175FD3:: @ 8175FD3 + .string "He's so helpless, he needed\n" + .string "someone like me to look after him.$" + +gUnknown_8176012:: @ 8176012 + .string "TEAM ROCKET is trying to conquer\n" + .string "the world with POKéMON.$" + +gUnknown_817604B:: @ 817604B + .string "TEAM ROCKET ran away, and it's all\n" + .string "because of you!$" + +gUnknown_817607E:: @ 817607E + .string "They must have targeted SILPH for\n" + .string "our POKéMON products.$" + +gUnknown_81760B6:: @ 81760B6 + .string "Come work for SILPH when you\n" + .string "get older.$" + +Text_1760DE:: @ 81760DE + .string "I am one of the four ROCKET\n" + .string "BROTHERS!$" + +Text_176104:: @ 8176104 + .string "Flame out!$" + +gUnknown_817610F:: @ 817610F + .string "No matter!\n" + .string "My brothers will avenge me!$" + +Text_176136:: @ 8176136 + .string "That rotten PRESIDENT!\p" + .string "Serves him right for shipping me\n" + .string "off to the TIKSI BRANCH!\p" + .string "That's why TEAM ROCKET came after\n" + .string "us, I'm sure of it!$" + +Text_1761BD:: @ 81761BD + .string "Shoot!$" + +gUnknown_81761C4:: @ 81761C4 + .string "TIKSI BRANCH?\n" + .string "It's in Russian no-man's-land!$" + +Text_1761F1:: @ 81761F1 + .string "You dare betray TEAM ROCKET?$" + +Text_17620E:: @ 817620E + .string "You traitor!$" + +gUnknown_817621B:: @ 817621B + .string "If you stand for justice, you\n" + .string "betray us bad guys!$" + +gUnknown_817624D:: @ 817624D + .string "SILPH CO. HEAD OFFICE\n" + .string "6F$" + diff --git a/data/maps/SilphCo_7F/map.json b/data/maps/SilphCo_7F/map.json new file mode 100644 index 000000000..36f2d0ba7 --- /dev/null +++ b/data/maps/SilphCo_7F/map.json @@ -0,0 +1,326 @@ +{ + "id": "MAP_SILPH_CO_7F", + "name": "SilphCo_7F", + "layout": "LAYOUT_SILPH_CO_7F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 7, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "72", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "78" + }, + { + "graphics_id": "47", + "x": 0, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_7F_EventScript_161AC8", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 24, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SilphCo_7F_EventScript_161C1A", + "flag": "83" + }, + { + "graphics_id": "49", + "x": 24, + "y": 15, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SilphCo_7F_EventScript_161C31", + "flag": "83" + }, + { + "graphics_id": "49", + "x": 13, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SilphCo_7F_EventScript_161C48", + "flag": "83" + }, + { + "graphics_id": "48", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_7F_EventScript_161BD9", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 13, + "y": 14, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_7F_EventScript_161B97", + "flag": "0" + }, + { + "graphics_id": "47", + "x": 9, + "y": 14, + "elevation": 3, + "movement_type": "27", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_7F_EventScript_161BB8", + "flag": "0" + }, + { + "graphics_id": "55", + "x": 3, + "y": 13, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SilphCo_7F_EventScript_161C03", + "flag": "83" + }, + { + "graphics_id": "92", + "x": 0, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_7F_EventScript_1BE8DB", + "flag": "405" + }, + { + "graphics_id": "92", + "x": 30, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_7F_EventScript_1BE8E8", + "flag": "406" + } + ], + "warp_events": [ + { + "x": 19, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_6F", + "dest_warp_id": 0 + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_11F", + "dest_warp_id": 1 + }, + { + "x": 25, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": 5 + }, + { + "x": 27, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": 2 + }, + { + "x": 23, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 2, + "y": 4, + "elevation": 3, + "var": "VAR_0x405C", + "var_value": 0, + "script": "SilphCo_7F_EventScript_1619BC" + }, + { + "type": "trigger", + "x": 2, + "y": 5, + "elevation": 3, + "var": "VAR_0x405C", + "var_value": 0, + "script": "SilphCo_7F_EventScript_1619C8" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 11, + "y": 8, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A1F" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 8, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A1F" + }, + { + "type": "bg_event_type_0", + "x": 11, + "y": 9, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A1F" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 9, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A1F" + }, + { + "type": "bg_event_type_0", + "x": 24, + "y": 7, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A39" + }, + { + "type": "bg_event_type_0", + "x": 25, + "y": 7, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A39" + }, + { + "type": "bg_event_type_0", + "x": 25, + "y": 8, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A39" + }, + { + "type": "bg_event_type_0", + "x": 24, + "y": 8, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A39" + }, + { + "type": "bg_event_type_0", + "x": 25, + "y": 13, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A53" + }, + { + "type": "bg_event_type_0", + "x": 26, + "y": 13, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A53" + }, + { + "type": "bg_event_type_0", + "x": 25, + "y": 14, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A53" + }, + { + "type": "bg_event_type_0", + "x": 26, + "y": 14, + "elevation": 0, + "script": "SilphCo_7F_EventScript_1A8A53" + }, + { + "type": "hidden_item", + "x": 22, + "y": 11, + "elevation": 0, + "item": "ITEM_ZINC", + "flag": "140", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 20, + "y": 1, + "elevation": 0, + "script": "SilphCo_7F_EventScript_161BFA" + } + ] +} diff --git a/data/maps/SilphCo_7F/scripts.inc b/data/maps/SilphCo_7F/scripts.inc new file mode 100644 index 000000000..93893b711 --- /dev/null +++ b/data/maps/SilphCo_7F/scripts.inc @@ -0,0 +1,263 @@ +SilphCo_7F_MapScripts:: @ 8161984 + map_script 1, SilphCo_7F_MapScript1_16198F + map_script 3, SilphCo_7F_MapScript2_1619AB + .byte 0 + +SilphCo_7F_MapScript1_16198F:: @ 816198F + checkflag FLAG_0x284 + call_if 0, EventScript_1A834B + checkflag FLAG_0x285 + call_if 0, EventScript_1A8379 + checkflag FLAG_0x286 + call_if 0, EventScript_1A83A7 + end + +SilphCo_7F_MapScript2_1619AB:: @ 81619AB + compare_var_to_value VAR_0x4060, 1 + call_if 4, EventScript_1619B7 + end + +EventScript_1619B7:: @ 81619B7 + setobjectmovementtype 8, 7 + return + +SilphCo_7F_EventScript_1619BC:: @ 81619BC + lockall + setvar VAR_0x4001, 0 + goto EventScript_1619D4 + +EventScript_1619C7:: @ 81619C7 + end + +SilphCo_7F_EventScript_1619C8:: @ 81619C8 + lockall + setvar VAR_0x4001, 1 + goto EventScript_1619D4 + +EventScript_1619D3:: @ 81619D3 + end + +EventScript_1619D4:: @ 81619D4 + textcolor 0 + playbgm BGM_FRLG_RIVAL, 0 + applymovement 1, Movement_1A75DB + waitmovement 0 + applymovement 255, Movement_1A75ED + applymovement 1, Movement_1A75DD + waitmovement 0 + msgbox gUnknown_8176710 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_161A73 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_161A7F + msgbox gUnknown_8176727 + setvar VAR_LAST_TALKED, 1 + compare_var_to_value VAR_STARTER_MON, 2 + call_if 1, EventScript_161A80 + compare_var_to_value VAR_STARTER_MON, 1 + call_if 1, EventScript_161A8B + compare_var_to_value VAR_STARTER_MON, 0 + call_if 1, EventScript_161A96 + msgbox gUnknown_8176827 + closemessage + playbgm BGM_FRLG_RIVAL_POSTBATTLE, 0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_161AA1 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_161AAC + playse SE_FU_ZUZUZU + fadedefaultbgm + removeobject 1 + waitse + setvar VAR_0x405C, 1 + releaseall + end + +EventScript_161A73:: @ 8161A73 + closemessage + applymovement 1, Movement_161AB7 + waitmovement 0 + return + +EventScript_161A7F:: @ 8161A7F + return + +EventScript_161A80:: @ 8161A80 + trainerbattle 3, 432, 0, Text_1767D0 + return + +EventScript_161A8B:: @ 8161A8B + trainerbattle 3, 433, 0, Text_1767D0 + return + +EventScript_161A96:: @ 8161A96 + trainerbattle 3, 434, 0, Text_1767D0 + return + +EventScript_161AA1:: @ 8161AA1 + applymovement 1, Movement_161AB9 + waitmovement 0 + return + +EventScript_161AAC:: @ 8161AAC + applymovement 1, Movement_161ABF + waitmovement 0 + return + +Movement_161AB7:: @ 8161AB7 + step_11 + step_end + +Movement_161AB9:: @ 8161AB9 + step_13 + step_13 + step_13 + step_11 + step_1c + step_end + +Movement_161ABF:: @ 8161ABF + step_12 + step_11 + step_11 + step_13 + step_13 + step_13 + step_13 + step_1c + step_end + +SilphCo_7F_EventScript_161AC8:: @ 8161AC8 + lock + faceplayer + checkflag FLAG_0x246 + goto_if_eq EventScript_161B8D + msgbox gUnknown_8176266 + setvar VAR_0x4001, SPECIES_LAPRAS + givemon SPECIES_LAPRAS, 25, ITEM_NONE, 0, 0, 0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_161B12 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_161B45 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A927C + release + end + +EventScript_161B12:: @ 8161B12 + textcolor 3 + playfanfare MUS_FANFA1 + message Text_1762D7 + waitmessage + waitfanfare + getspeciesname 0, SPECIES_LAPRAS + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_161B7E + call EventScript_1A8C27 + call EventScript_1A74EB + goto EventScript_161B7E + +EventScript_161B44:: @ 8161B44 + end + +EventScript_161B45:: @ 8161B45 + textcolor 3 + playfanfare MUS_FANFA1 + message Text_1762D7 + waitmessage + waitfanfare + getspeciesname 0, SPECIES_LAPRAS + msgbox gUnknown_81A56A7, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_161B73 + call EventScript_1A8C33 + goto EventScript_161B73 + +EventScript_161B72:: @ 8161B72 + end + +EventScript_161B73:: @ 8161B73 + call EventScript_1A8C3C + goto EventScript_161B7E + +EventScript_161B7D:: @ 8161B7D + end + +EventScript_161B7E:: @ 8161B7E + textcolor 0 + msgbox gUnknown_8176305 + setflag FLAG_0x246 + release + end + +EventScript_161B8D:: @ 8161B8D + msgbox gUnknown_81763DD + release + end + +SilphCo_7F_EventScript_161B97:: @ 8161B97 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_161BAE + msgbox gUnknown_8176444 + release + end + +EventScript_161BAE:: @ 8161BAE + msgbox gUnknown_8176486 + release + end + +SilphCo_7F_EventScript_161BB8:: @ 8161BB8 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_161BCF + msgbox gUnknown_81764C2 + release + end + +EventScript_161BCF:: @ 8161BCF + msgbox gUnknown_8176501 + release + end + +SilphCo_7F_EventScript_161BD9:: @ 8161BD9 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_161BF0 + msgbox gUnknown_8176532 + release + end + +EventScript_161BF0:: @ 8161BF0 + msgbox gUnknown_8176573 + release + end + +SilphCo_7F_EventScript_161BFA:: @ 8161BFA + msgbox gUnknown_8176954, 3 + end + +SilphCo_7F_EventScript_161C03:: @ 8161C03 + trainerbattle 0, 342, 0, Text_1765E2, Text_17660C + msgbox gUnknown_8176616, 6 + end + +SilphCo_7F_EventScript_161C1A:: @ 8161C1A + trainerbattle 0, 383, 0, Text_176643, Text_176669 + msgbox gUnknown_8176681, 6 + end + +SilphCo_7F_EventScript_161C31:: @ 8161C31 + trainerbattle 0, 384, 0, Text_1766B3, Text_1766D7 + msgbox gUnknown_81766E5, 6 + end + +SilphCo_7F_EventScript_161C48:: @ 8161C48 + trainerbattle 0, 385, 0, Text_176586, Text_1765A5 + msgbox gUnknown_81765B1, 6 + end diff --git a/data/maps/SilphCo_7F/text.inc b/data/maps/SilphCo_7F/text.inc new file mode 100644 index 000000000..d977d816e --- /dev/null +++ b/data/maps/SilphCo_7F/text.inc @@ -0,0 +1,146 @@ +gUnknown_8176266:: @ 8176266 + .string "Oh! Hi! You're not a ROCKET!\n" + .string "You came to save us?\l" + .string "Why, thank you!\p" + .string "I want you to have this POKéMON\n" + .string "for saving us.$" + +Text_1762D7:: @ 81762D7 + .string "{PLAYER} obtained a LAPRAS from\n" + .string "the SILPH employee!$" + +gUnknown_8176305:: @ 8176305 + .string "It's a LAPRAS.\n" + .string "It's a very intelligent POKéMON.\p" + .string "We kept it in our lab, but it will\n" + .string "be much better off with you.\p" + .string "I think you will be a good TRAINER\n" + .string "for LAPRAS!\p" + .string "It's a good swimmer.\n" + .string "It'll give you a lift across water!$" + +gUnknown_81763DD:: @ 81763DD + .string "TEAM ROCKET's BOSS went to the\n" + .string "boardroom!\p" + .string "Is our PRESIDENT okay?\n" + .string "I'm worried.$" + +Text_17642B:: @ 817642B + .string "あ‥ もう もてないぞ$" + +Text_176437:: @ 8176437 + .string "たすかったよ ありがと!$" + +gUnknown_8176444:: @ 8176444 + .string "TEAM ROCKET was after the MASTER\n" + .string "BALL, which catches any POKéMON.$" + +gUnknown_8176486:: @ 8176486 + .string "We canceled the MASTER BALL\n" + .string "project because of TEAM ROCKET.$" + +gUnknown_81764C2:: @ 81764C2 + .string "It would be bad if TEAM ROCKET\n" + .string "took over SILPH or our POKéMON.$" + +gUnknown_8176501:: @ 8176501 + .string "Wow!\p" + .string "You chased off TEAM ROCKET all by\n" + .string "yourself?$" + +gUnknown_8176532:: @ 8176532 + .string "You!\n" + .string "It's really dangerous here!\p" + .string "You came to save me?\n" + .string "You can't!$" + +gUnknown_8176573:: @ 8176573 + .string "Thank you so much!$" + +Text_176586:: @ 8176586 + .string "Uh-oh!\n" + .string "I smell a little mouse!$" + +Text_1765A5:: @ 81765A5 + .string "Lights out!$" + +gUnknown_81765B1:: @ 81765B1 + .string "You won't find my BOSS by just\n" + .string "scurrying around!$" + +Text_1765E2:: @ 81765E2 + .string "Heheh!\p" + .string "You mistook me for a SILPH worker?$" + +Text_17660C:: @ 817660C + .string "I'm done!$" + +gUnknown_8176616:: @ 8176616 + .string "Despite your age, you are a\n" + .string "skilled TRAINER!$" + +Text_176643:: @ 8176643 + .string "I am one of the four ROCKET\n" + .string "BROTHERS!$" + +Text_176669:: @ 8176669 + .string "Aack!\n" + .string "Brothers, I lost!$" + +gUnknown_8176681:: @ 8176681 + .string "Doesn't matter.\n" + .string "My brothers will repay the favor!$" + +Text_1766B3:: @ 81766B3 + .string "A child intruder?\n" + .string "That must be you!$" + +Text_1766D7:: @ 81766D7 + .string "Fine!\n" + .string "I lost!$" + +gUnknown_81766E5:: @ 81766E5 + .string "Go on home before my BOSS gets\n" + .string "ticked off!$" + +gUnknown_8176710:: @ 8176710 + .string "{RIVAL}: What kept you, {PLAYER}?$" + +gUnknown_8176727:: @ 8176727 + .string "{RIVAL}: Hahaha! I thought you'd\n" + .string "turn up if I waited here!\p" + .string "I guess TEAM ROCKET slowed you\n" + .string "down! Not that I care!\p" + .string "I saw you in SAFFRON, so I decided\n" + .string "to see if you got better!$" + +Text_1767D0:: @ 81767D0 + .string "Oh, man!\n" + .string "So, you are ready for BOSS\l" + .string "ROCKET!$" + +Text_1767FC:: @ 81767FC + .string "{RIVAL}“おまえなあ‥\p" + .string "こんな うでまえじゃ\n" + .string "まだまだ‥\l" + .string "いちにんまえ とは いえないぜ$" + +gUnknown_8176827:: @ 8176827 + .string "Well, {PLAYER}!\n" + .string "I'm moving on up and ahead!\p" + .string "By checking my POKéDEX, I'm\n" + .string "starting to see what's strong and\l" + .string "how they evolve!\p" + .string "Am I a genius or what?\p" + .string "I'm going to the POKéMON LEAGUE to\n" + .string "boot out the ELITE FOUR.\p" + .string "I'll become the world's most\n" + .string "powerful TRAINER!\p" + .string "{PLAYER}, well, good luck to you!\n" + .string "Don't sweat it!\l" + .string "Smell ya!$" + +gUnknown_8176954:: @ 8176954 + .string "SILPH CO. HEAD OFFICE\n" + .string "7F$" + diff --git a/data/maps/SilphCo_8F/map.json b/data/maps/SilphCo_8F/map.json new file mode 100644 index 000000000..9c23aac86 --- /dev/null +++ b/data/maps/SilphCo_8F/map.json @@ -0,0 +1,193 @@ +{ + "id": "MAP_SILPH_CO_8F", + "name": "SilphCo_8F", + "layout": "LAYOUT_SILPH_CO_8F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 8, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "49", + "x": 28, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SilphCo_8F_EventScript_161CB0", + "flag": "83" + }, + { + "graphics_id": "49", + "x": 10, + "y": 17, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "SilphCo_8F_EventScript_161CC7", + "flag": "83" + }, + { + "graphics_id": "55", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SilphCo_8F_EventScript_161C99", + "flag": "83" + }, + { + "graphics_id": "47", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_8F_EventScript_161C6F", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 24, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_8F_EventScript_1BEB4B", + "flag": "456" + }, + { + "graphics_id": "55", + "x": 29, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_8F_EventScript_1AD0ED", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 16, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_9F", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": 4 + }, + { + "x": 10, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": 5 + }, + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": 3 + }, + { + "x": 2, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": 1 + }, + { + "x": 2, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": 2 + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 6, + "y": 10, + "elevation": 0, + "script": "SilphCo_8F_EventScript_1A8A6D" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 11, + "elevation": 0, + "script": "SilphCo_8F_EventScript_1A8A6D" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 11, + "elevation": 0, + "script": "SilphCo_8F_EventScript_1A8A6D" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 10, + "elevation": 0, + "script": "SilphCo_8F_EventScript_1A8A6D" + }, + { + "type": "hidden_item", + "x": 29, + "y": 10, + "elevation": 0, + "item": "ITEM_NUGGET", + "flag": "141", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 27, + "y": 1, + "elevation": 0, + "script": "SilphCo_8F_EventScript_161C90" + } + ] +} diff --git a/data/maps/SilphCo_8F/scripts.inc b/data/maps/SilphCo_8F/scripts.inc new file mode 100644 index 000000000..99112ee5e --- /dev/null +++ b/data/maps/SilphCo_8F/scripts.inc @@ -0,0 +1,41 @@ +SilphCo_8F_MapScripts:: @ 8161C5F + map_script 1, SilphCo_8F_MapScript1_161C65 + .byte 0 + +SilphCo_8F_MapScript1_161C65:: @ 8161C65 + checkflag FLAG_0x287 + call_if 0, EventScript_1A83D5 + end + +SilphCo_8F_EventScript_161C6F:: @ 8161C6F + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_161C86 + msgbox gUnknown_817696D + release + end + +EventScript_161C86:: @ 8161C86 + msgbox gUnknown_817698C + release + end + +SilphCo_8F_EventScript_161C90:: @ 8161C90 + msgbox gUnknown_8176AB2, 3 + end + +SilphCo_8F_EventScript_161C99:: @ 8161C99 + trainerbattle 0, 343, 0, Text_1769FD, Text_176A19 + msgbox gUnknown_8176A26, 6 + end + +SilphCo_8F_EventScript_161CB0:: @ 8161CB0 + trainerbattle 0, 382, 0, Text_1769A2, Text_1769BE + msgbox gUnknown_81769CF, 6 + end + +SilphCo_8F_EventScript_161CC7:: @ 8161CC7 + trainerbattle 0, 386, 0, Text_176A56, Text_176A7C + msgbox gUnknown_8176A90, 6 + end diff --git a/data/maps/SilphCo_8F/text.inc b/data/maps/SilphCo_8F/text.inc new file mode 100644 index 000000000..858d5da17 --- /dev/null +++ b/data/maps/SilphCo_8F/text.inc @@ -0,0 +1,42 @@ +gUnknown_817696D:: @ 817696D + .string "I wonder if SILPH is finished…$" + +gUnknown_817698C:: @ 817698C + .string "Thanks for saving us!$" + +Text_1769A2:: @ 81769A2 + .string "That's as far as you'll go!$" + +Text_1769BE:: @ 81769BE + .string "Not enough grit!$" + +gUnknown_81769CF:: @ 81769CF + .string "If you don't turn back…\n" + .string "I'll call for backup!$" + +Text_1769FD:: @ 81769FD + .string "You're causing us problems!$" + +Text_176A19:: @ 8176A19 + .string "Huh?\n" + .string "I lost?$" + +gUnknown_8176A26:: @ 8176A26 + .string "So, what do you think of SILPH\n" + .string "BUILDING's maze?$" + +Text_176A56:: @ 8176A56 + .string "I am one of the four ROCKET\n" + .string "BROTHERS!$" + +Text_176A7C:: @ 8176A7C + .string "Whoo!\n" + .string "Oh, Brothers!$" + +gUnknown_8176A90:: @ 8176A90 + .string "I'll leave you up to my brothers.$" + +gUnknown_8176AB2:: @ 8176AB2 + .string "SILPH CO. HEAD OFFICE\n" + .string "8F$" + diff --git a/data/maps/SilphCo_9F/map.json b/data/maps/SilphCo_9F/map.json new file mode 100644 index 000000000..05bbe1138 --- /dev/null +++ b/data/maps/SilphCo_9F/map.json @@ -0,0 +1,246 @@ +{ + "id": "MAP_SILPH_CO_9F", + "name": "SilphCo_9F", + "layout": "LAYOUT_SILPH_CO_9F", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 7, + "elevator_flag": 9, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "55", + "x": 26, + "y": 16, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SilphCo_9F_EventScript_161D41", + "flag": "83" + }, + { + "graphics_id": "49", + "x": 15, + "y": 18, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SilphCo_9F_EventScript_161D6F", + "flag": "83" + }, + { + "graphics_id": "28", + "x": 2, + "y": 16, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SilphCo_9F_EventScript_161D09", + "flag": "0" + }, + { + "graphics_id": "49", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "SilphCo_9F_EventScript_161D58", + "flag": "83" + } + ], + "warp_events": [ + { + "x": 16, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": 0 + }, + { + "x": 22, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": 3 + }, + { + "x": 9, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": 4 + }, + { + "x": 18, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": 3 + }, + { + "x": 24, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 11, + "y": 14, + "elevation": 3, + "item": "ITEM_MAX_POTION", + "flag": "25", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 10, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8A87" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 11, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8A87" + }, + { + "type": "bg_event_type_0", + "x": 13, + "y": 16, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8AA1" + }, + { + "type": "bg_event_type_0", + "x": 13, + "y": 17, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8AA1" + }, + { + "type": "bg_event_type_0", + "x": 21, + "y": 6, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8ABB" + }, + { + "type": "bg_event_type_0", + "x": 22, + "y": 6, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8ABB" + }, + { + "type": "bg_event_type_0", + "x": 22, + "y": 7, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8ABB" + }, + { + "type": "bg_event_type_0", + "x": 21, + "y": 7, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8ABB" + }, + { + "type": "bg_event_type_0", + "x": 21, + "y": 13, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8AD5" + }, + { + "type": "bg_event_type_0", + "x": 21, + "y": 12, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8AD5" + }, + { + "type": "bg_event_type_0", + "x": 22, + "y": 12, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8AD5" + }, + { + "type": "bg_event_type_0", + "x": 22, + "y": 13, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8AD5" + }, + { + "type": "bg_event_type_0", + "x": 2, + "y": 11, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8A87" + }, + { + "type": "bg_event_type_0", + "x": 2, + "y": 10, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8A87" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 16, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8AA1" + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 17, + "elevation": 0, + "script": "SilphCo_9F_EventScript_1A8AA1" + }, + { + "type": "hidden_item", + "x": 5, + "y": 8, + "elevation": 0, + "item": "ITEM_CALCIUM", + "flag": "142", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 17, + "y": 1, + "elevation": 0, + "script": "SilphCo_9F_EventScript_161D38" + } + ] +} diff --git a/data/maps/SilphCo_9F/scripts.inc b/data/maps/SilphCo_9F/scripts.inc new file mode 100644 index 000000000..530ae7c1a --- /dev/null +++ b/data/maps/SilphCo_9F/scripts.inc @@ -0,0 +1,50 @@ +SilphCo_9F_MapScripts:: @ 8161CDE + map_script 1, SilphCo_9F_MapScript1_161CE4 + .byte 0 + +SilphCo_9F_MapScript1_161CE4:: @ 8161CE4 + checkflag FLAG_0x288 + call_if 0, EventScript_1A840C + checkflag FLAG_0x289 + call_if 0, EventScript_1A8443 + checkflag FLAG_0x28A + call_if 0, EventScript_1A847A + checkflag FLAG_0x28B + call_if 0, EventScript_1A84A8 + end + +SilphCo_9F_EventScript_161D09:: @ 8161D09 + lock + faceplayer + compare_var_to_value VAR_0x4060, 1 + goto_if 4, EventScript_161D2E + msgbox gUnknown_8176B54 + closemessage + call EventScript_1A6C26 + msgbox gUnknown_8176B81 + release + end + +EventScript_161D2E:: @ 8161D2E + msgbox gUnknown_8176B90 + release + end + +SilphCo_9F_EventScript_161D38:: @ 8161D38 + msgbox gUnknown_8176CD4, 3 + end + +SilphCo_9F_EventScript_161D41:: @ 8161D41 + trainerbattle 0, 344, 0, Text_176BFB, Text_176C2B + msgbox gUnknown_8176C3C, 6 + end + +SilphCo_9F_EventScript_161D58:: @ 8161D58 + trainerbattle 0, 387, 0, Text_176BA3, Text_176BC8 + msgbox gUnknown_8176BD0, 6 + end + +SilphCo_9F_EventScript_161D6F:: @ 8161D6F + trainerbattle 0, 388, 0, Text_176C7A, Text_176CA0 + msgbox gUnknown_8176CB8, 6 + end diff --git a/data/maps/SilphCo_9F/text.inc b/data/maps/SilphCo_9F/text.inc new file mode 100644 index 000000000..bf400f768 --- /dev/null +++ b/data/maps/SilphCo_9F/text.inc @@ -0,0 +1,55 @@ +Text_176ACB:: @ 8176ACB + .string "TEAM ROCKET's BOSS is terribly\n" + .string "cruel!\p" + .string "To him, POKéMON are just tools to\n" + .string "be used.\p" + .string "What will happen if that tyrant\n" + .string "takes over our company…$" + +gUnknown_8176B54:: @ 8176B54 + .string "You look tired.\n" + .string "You should take a quick nap.$" + +gUnknown_8176B81:: @ 8176B81 + .string "Don't give up!$" + +gUnknown_8176B90:: @ 8176B90 + .string "Thank you so much.$" + +Text_176BA3:: @ 8176BA3 + .string "Your POKéMON seem to adore you,\n" + .string "kid!$" + +Text_176BC8:: @ 8176BC8 + .string "Ghaaah!$" + +gUnknown_8176BD0:: @ 8176BD0 + .string "If I had started as a TRAINER at\n" + .string "your age…$" + +Text_176BFB:: @ 8176BFB + .string "Your POKéMON have weak points!\n" + .string "I can nail them!$" + +Text_176C2B:: @ 8176C2B + .string "You hammered me!$" + +gUnknown_8176C3C:: @ 8176C3C + .string "Exploiting weak spots does work.\n" + .string "Think about type advantages.$" + +Text_176C7A:: @ 8176C7A + .string "I am one of the four ROCKET\n" + .string "BROTHERS!$" + +Text_176CA0:: @ 8176CA0 + .string "Warg!\n" + .string "Brothers, I lost!$" + +gUnknown_8176CB8:: @ 8176CB8 + .string "My brothers will avenge me!$" + +gUnknown_8176CD4:: @ 8176CD4 + .string "SILPH CO. HEAD OFFICE\n" + .string "9F$" + diff --git a/data/maps/SilphCo_Elevator/map.json b/data/maps/SilphCo_Elevator/map.json new file mode 100644 index 000000000..be61c86d2 --- /dev/null +++ b/data/maps/SilphCo_Elevator/map.json @@ -0,0 +1,35 @@ +{ + "id": "MAP_SILPH_CO_ELEVATOR", + "name": "SilphCo_Elevator", + "layout": "LAYOUT_SILPH_CO_ELEVATOR", + "music": "BGM_FRLG_SILPH", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 0, + "y": 2, + "elevation": 3, + "script": "SilphCo_Elevator_EventScript_161F6F" + } + ] +} diff --git a/data/maps/SilphCo_Elevator/scripts.inc b/data/maps/SilphCo_Elevator/scripts.inc new file mode 100644 index 000000000..d36334429 --- /dev/null +++ b/data/maps/SilphCo_Elevator/scripts.inc @@ -0,0 +1,177 @@ +SilphCo_Elevator_MapScripts:: @ 8161F6E + .byte 0 + +SilphCo_Elevator_EventScript_161F6F:: @ 8161F6F + lockall + setvar VAR_0x8004, 1 + checkflag FLAG_0x002 + call_if 0, EventScript_1A7AB9 + copyvar VAR_0x8005, VAR_0x403A + special sub_80CB580 + message Text_1A535C + waitmessage + setvar VAR_0x8004, 1 + specialvar VAR_RESULT, sub_80CB328 + special sub_80CB7C4 + waitstate + switch VAR_RESULT + case 0, EventScript_1621BF + case 1, EventScript_162197 + case 2, EventScript_16216F + case 3, EventScript_162147 + case 4, EventScript_16211F + case 5, EventScript_1620F7 + case 6, EventScript_1620CF + case 7, EventScript_1620A7 + case 8, EventScript_16207F + case 9, EventScript_162057 + case 10, EventScript_16202F + case 11, EventScript_1621E7 + case 127, EventScript_1621E7 + end + +EventScript_16202F:: @ 816202F + setvar VAR_0x8006, 4 + setdynamicwarp MAP_SILPH_CO_1F, 255, 22, 3 + compare_var_to_value VAR_0x403A, 4 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 4 + goto EventScript_1621E7 + +EventScript_162056:: @ 8162056 + end + +EventScript_162057:: @ 8162057 + setvar VAR_0x8006, 5 + setdynamicwarp MAP_SILPH_CO_2F, 255, 22, 3 + compare_var_to_value VAR_0x403A, 5 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 5 + goto EventScript_1621E7 + +EventScript_16207E:: @ 816207E + end + +EventScript_16207F:: @ 816207F + setvar VAR_0x8006, 6 + setdynamicwarp MAP_SILPH_CO_3F, 255, 22, 3 + compare_var_to_value VAR_0x403A, 6 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 6 + goto EventScript_1621E7 + +EventScript_1620A6:: @ 81620A6 + end + +EventScript_1620A7:: @ 81620A7 + setvar VAR_0x8006, 7 + setdynamicwarp MAP_SILPH_CO_4F, 255, 22, 3 + compare_var_to_value VAR_0x403A, 7 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 7 + goto EventScript_1621E7 + +EventScript_1620CE:: @ 81620CE + end + +EventScript_1620CF:: @ 81620CF + setvar VAR_0x8006, 8 + setdynamicwarp MAP_SILPH_CO_5F, 255, 22, 3 + compare_var_to_value VAR_0x403A, 8 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 8 + goto EventScript_1621E7 + +EventScript_1620F6:: @ 81620F6 + end + +EventScript_1620F7:: @ 81620F7 + setvar VAR_0x8006, 9 + setdynamicwarp MAP_SILPH_CO_6F, 255, 20, 3 + compare_var_to_value VAR_0x403A, 9 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 9 + goto EventScript_1621E7 + +EventScript_16211E:: @ 816211E + end + +EventScript_16211F:: @ 816211F + setvar VAR_0x8006, 10 + setdynamicwarp MAP_SILPH_CO_7F, 255, 23, 3 + compare_var_to_value VAR_0x403A, 10 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 10 + goto EventScript_1621E7 + +EventScript_162146:: @ 8162146 + end + +EventScript_162147:: @ 8162147 + setvar VAR_0x8006, 11 + setdynamicwarp MAP_SILPH_CO_8F, 255, 22, 3 + compare_var_to_value VAR_0x403A, 11 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 11 + goto EventScript_1621E7 + +EventScript_16216E:: @ 816216E + end + +EventScript_16216F:: @ 816216F + setvar VAR_0x8006, 12 + setdynamicwarp MAP_SILPH_CO_9F, 255, 24, 3 + compare_var_to_value VAR_0x403A, 12 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 12 + goto EventScript_1621E7 + +EventScript_162196:: @ 8162196 + end + +EventScript_162197:: @ 8162197 + setvar VAR_0x8006, 13 + setdynamicwarp MAP_SILPH_CO_10F, 255, 13, 3 + compare_var_to_value VAR_0x403A, 13 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 13 + goto EventScript_1621E7 + +EventScript_1621BE:: @ 81621BE + end + +EventScript_1621BF:: @ 81621BF + setvar VAR_0x8006, 14 + setdynamicwarp MAP_SILPH_CO_11F, 255, 13, 3 + compare_var_to_value VAR_0x403A, 14 + goto_if_eq EventScript_1621E7 + call EventScript_1621EC + setvar VAR_0x403A, 14 + goto EventScript_1621E7 + +EventScript_1621E6:: @ 81621E6 + end + +EventScript_1621E7:: @ 81621E7 + special sub_80CB63C + releaseall + end + +EventScript_1621EC:: @ 81621EC + special sub_80CB63C + closemessage + waitse + special sub_80CB498 + waitstate + setflag FLAG_0x002 + return diff --git a/data/maps/SixIsland/map.json b/data/maps/SixIsland/map.json new file mode 100644 index 000000000..f65e61afd --- /dev/null +++ b/data/maps/SixIsland/map.json @@ -0,0 +1,98 @@ +{ + "id": "MAP_SIX_ISLAND", + "name": "SixIsland", + "layout": "LAYOUT_SIX_ISLAND", + "music": "BGM_FRLG_ISLAND_SIX", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SIX_ISLAND_WATER_PATH", + "offset": -40, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "19", + "x": 10, + "y": 15, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_EventScript_167EEB", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "18", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_EventScript_167EE2", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 11, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_HARBOR", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 11, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 0 + }, + { + "x": 16, + "y": 17, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_HOUSE", + "dest_warp_id": 0 + }, + { + "x": 20, + "y": 11, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_MART", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 9, + "y": 17, + "elevation": 0, + "script": "SixIsland_EventScript_167EF4" + }, + { + "type": "hidden_item", + "x": 9, + "y": 7, + "elevation": 3, + "item": "ITEM_LEPPA_BERRY", + "flag": "184", + "unknown": 1 + } + ] +} diff --git a/data/maps/SixIsland/scripts.inc b/data/maps/SixIsland/scripts.inc new file mode 100644 index 000000000..3a36d37b1 --- /dev/null +++ b/data/maps/SixIsland/scripts.inc @@ -0,0 +1,19 @@ +SixIsland_MapScripts:: @ 8167ED8 + map_script 3, SixIsland_MapScript1_167EDE + .byte 0 + +SixIsland_MapScript1_167EDE:: @ 8167EDE + setworldmapflag FLAG_WORLD_MAP_SIX_ISLAND + end + +SixIsland_EventScript_167EE2:: @ 8167EE2 + msgbox gUnknown_81831EF, 2 + end + +SixIsland_EventScript_167EEB:: @ 8167EEB + msgbox gUnknown_8183255, 2 + end + +SixIsland_EventScript_167EF4:: @ 8167EF4 + msgbox gUnknown_81831C6, 3 + end diff --git a/data/maps/SixIsland/text.inc b/data/maps/SixIsland/text.inc new file mode 100644 index 000000000..bade2abd1 --- /dev/null +++ b/data/maps/SixIsland/text.inc @@ -0,0 +1,14 @@ +gUnknown_81831C6:: @ 81831C6 + .string "SIX ISLAND\n" + .string "Fortune Island of Aged Wisdom$" + +gUnknown_81831EF:: @ 81831EF + .string "Keep going this way and you'll get\n" + .string "to the WATER PATH.\p" + .string "Stay on that and you'll get to\n" + .string "the RUIN VALLEY.$" + +gUnknown_8183255:: @ 8183255 + .string "When you're this far away from the\n" + .string "city, the sky at night is fantastic.$" + diff --git a/data/maps/SixIsland_AlteringCave/map.json b/data/maps/SixIsland_AlteringCave/map.json new file mode 100644 index 000000000..c5376d59d --- /dev/null +++ b/data/maps/SixIsland_AlteringCave/map.json @@ -0,0 +1,27 @@ +{ + "id": "MAP_SIX_ISLAND_ALTERING_CAVE", + "name": "SixIsland_AlteringCave", + "layout": "LAYOUT_SIX_ISLAND_ALTERING_CAVE", + "music": "BGM_FRLG_MT_EMBER", + "region_map_section": "MAPSEC_ALTERING_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 18, + "y": 22, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_OUTCAST_ISLAND", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_AlteringCave/scripts.inc b/data/maps/SixIsland_AlteringCave/scripts.inc new file mode 100644 index 000000000..6733f94b3 --- /dev/null +++ b/data/maps/SixIsland_AlteringCave/scripts.inc @@ -0,0 +1,7 @@ +SixIsland_AlteringCave_MapScripts:: @ 81646A4 + map_script 3, SixIsland_AlteringCave_MapScript1_1646AA + .byte 0 + +SixIsland_AlteringCave_MapScript1_1646AA:: @ 81646AA + setworldmapflag FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE + end diff --git a/data/maps/SixIsland_DottedHole_1F/map.json b/data/maps/SixIsland_DottedHole_1F/map.json new file mode 100644 index 000000000..bd7bb4933 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_1F/map.json @@ -0,0 +1,48 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "name": "SixIsland_DottedHole_1F", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_1F", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_RUIN_VALLEY", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_DottedHole_1F/scripts.inc b/data/maps/SixIsland_DottedHole_1F/scripts.inc new file mode 100644 index 000000000..2d9e52209 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_1F/scripts.inc @@ -0,0 +1,35 @@ +SixIsland_DottedHole_1F_MapScripts:: @ 8164182 + map_script 3, SixIsland_DottedHole_1F_MapScript1_164188 + .byte 0 + +SixIsland_DottedHole_1F_MapScript1_164188:: @ 8164188 + setworldmapflag FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F + end + +SixIsland_DottedHole_B1F_EventScript_16418C:: @ 816418C + lockall + braillemessage gUnknown_81A9288 + waitbuttonpress + releaseall + end + +SixIsland_DottedHole_B4F_EventScript_164195:: @ 8164195 + lockall + braillemessage gUnknown_81A928B + waitbuttonpress + releaseall + end + +SixIsland_DottedHole_B3F_EventScript_16419E:: @ 816419E + lockall + braillemessage gUnknown_81A9290 + waitbuttonpress + releaseall + end + +SixIsland_DottedHole_B2F_EventScript_1641A7:: @ 81641A7 + lockall + braillemessage gUnknown_81A9296 + waitbuttonpress + releaseall + end diff --git a/data/maps/SixIsland_DottedHole_B1F/map.json b/data/maps/SixIsland_DottedHole_B1F/map.json new file mode 100644 index 000000000..497bde584 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B1F/map.json @@ -0,0 +1,63 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", + "name": "SixIsland_DottedHole_B1F", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B1F", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 6, + "y": 5, + "elevation": 0, + "script": "SixIsland_DottedHole_B1F_EventScript_16418C" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_B1F/scripts.inc b/data/maps/SixIsland_DottedHole_B1F/scripts.inc new file mode 100644 index 000000000..ee0b34abc --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B1F/scripts.inc @@ -0,0 +1,2 @@ +SixIsland_DottedHole_B1F_MapScripts:: @ 81641B0 + .byte 0 diff --git a/data/maps/SixIsland_DottedHole_B2F/map.json b/data/maps/SixIsland_DottedHole_B2F/map.json new file mode 100644 index 000000000..c01e689f5 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B2F/map.json @@ -0,0 +1,63 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", + "name": "SixIsland_DottedHole_B2F", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B2F", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 6, + "y": 5, + "elevation": 0, + "script": "SixIsland_DottedHole_B2F_EventScript_1641A7" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_B2F/scripts.inc b/data/maps/SixIsland_DottedHole_B2F/scripts.inc new file mode 100644 index 000000000..8517edd5a --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B2F/scripts.inc @@ -0,0 +1,2 @@ +SixIsland_DottedHole_B2F_MapScripts:: @ 81641B1 + .byte 0 diff --git a/data/maps/SixIsland_DottedHole_B3F/map.json b/data/maps/SixIsland_DottedHole_B3F/map.json new file mode 100644 index 000000000..97bf261ca --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B3F/map.json @@ -0,0 +1,63 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", + "name": "SixIsland_DottedHole_B3F", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B3F", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", + "dest_warp_id": 4 + }, + { + "x": 6, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 6, + "y": 5, + "elevation": 0, + "script": "SixIsland_DottedHole_B3F_EventScript_16419E" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_B3F/scripts.inc b/data/maps/SixIsland_DottedHole_B3F/scripts.inc new file mode 100644 index 000000000..2810ad0b3 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B3F/scripts.inc @@ -0,0 +1,2 @@ +SixIsland_DottedHole_B3F_MapScripts:: @ 81641B2 + .byte 0 diff --git a/data/maps/SixIsland_DottedHole_B4F/map.json b/data/maps/SixIsland_DottedHole_B4F/map.json new file mode 100644 index 000000000..f418ee608 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B4F/map.json @@ -0,0 +1,63 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", + "name": "SixIsland_DottedHole_B4F", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B4F", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", + "dest_warp_id": 2 + }, + { + "x": 6, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 6, + "y": 5, + "elevation": 0, + "script": "SixIsland_DottedHole_B4F_EventScript_164195" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_B4F/scripts.inc b/data/maps/SixIsland_DottedHole_B4F/scripts.inc new file mode 100644 index 000000000..acde6c019 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B4F/scripts.inc @@ -0,0 +1,2 @@ +SixIsland_DottedHole_B4F_MapScripts:: @ 81641B3 + .byte 0 diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/map.json b/data/maps/SixIsland_DottedHole_SapphireRoom/map.json new file mode 100644 index 000000000..db1a1715a --- /dev/null +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/map.json @@ -0,0 +1,69 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "name": "SixIsland_DottedHole_SapphireRoom", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "music": "BGM_FRLG_TANOBY_RUINS", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "100", + "x": 7, + "y": 7, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_DottedHole_SapphireRoom_EventScript_1641B5", + "flag": "143" + }, + { + "graphics_id": "55", + "x": 5, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "144" + } + ], + "warp_events": [ + { + "x": 11, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_1", + "x": 7, + "y": 2, + "elevation": 0, + "script": "SixIsland_DottedHole_SapphireRoom_EventScript_16441F" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc new file mode 100644 index 000000000..ce372cae9 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc @@ -0,0 +1,304 @@ +SixIsland_DottedHole_SapphireRoom_MapScripts:: @ 81641B4 + .byte 0 + +SixIsland_DottedHole_SapphireRoom_EventScript_1641B5:: @ 81641B5 + lock + faceplayer + textcolor 3 + playfanfare BGM_FRLG_ME_KEYITEM + message Text_17BD82 + waitmessage + waitfanfare + closemessage + setobjectxyperm 2, 5, 0 + addobject 2 + playse SE_FU_ZAKU + applymovement 2, Movement_16440F + waitmovement 0 + playse SE_W115 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_16430F + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_16430F + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_16431A + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_16431A + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 0 + setvar VAR_0x8006, 12 + setvar VAR_0x8007, 3 + special sub_80CAC28 + delay 60 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_164325 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_164330 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_16433B + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_164346 + textcolor 0 + msgbox gUnknown_817BD97 + closemessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_164351 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_164366 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_16437B + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_164390 + removeobject 1 + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_1642F9 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_1642F9 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_164304 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_164304 + msgbox gUnknown_817BDD4 + closemessage + compare_var_to_value VAR_FACING, 2 + call_if 1, EventScript_1643A5 + compare_var_to_value VAR_FACING, 1 + call_if 1, EventScript_1643B7 + compare_var_to_value VAR_FACING, 4 + call_if 1, EventScript_1643C9 + compare_var_to_value VAR_FACING, 3 + call_if 1, EventScript_1643DB + playse SE_KAIDAN + delay 35 + removeobject 2 + setflag FLAG_0x2D8 + release + end + +EventScript_1642F9:: @ 81642F9 + applymovement 255, Movement_1A75E7 + waitmovement 0 + return + +EventScript_164304:: @ 8164304 + applymovement 255, Movement_1A75ED + waitmovement 0 + return + +EventScript_16430F:: @ 816430F + applymovement 255, Movement_1A75E7 + waitmovement 0 + return + +EventScript_16431A:: @ 816431A + applymovement 255, Movement_1A75ED + waitmovement 0 + return + +EventScript_164325:: @ 8164325 + applymovement 2, Movement_1643ED + waitmovement 0 + return + +EventScript_164330:: @ 8164330 + applymovement 2, Movement_1643ED + waitmovement 0 + return + +EventScript_16433B:: @ 816433B + applymovement 2, Movement_1643F1 + waitmovement 0 + return + +EventScript_164346:: @ 8164346 + applymovement 2, Movement_1643F1 + waitmovement 0 + return + +EventScript_164351:: @ 8164351 + applymovement 2, Movement_1643F5 + waitmovement 0 + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +EventScript_164366:: @ 8164366 + applymovement 2, Movement_1643F5 + waitmovement 0 + applymovement 255, Movement_1A75ED + waitmovement 0 + return + +EventScript_16437B:: @ 816437B + applymovement 2, Movement_1643F7 + waitmovement 0 + applymovement 255, Movement_1A75EB + waitmovement 0 + return + +EventScript_164390:: @ 8164390 + applymovement 2, Movement_1643F7 + waitmovement 0 + applymovement 255, Movement_1A75E7 + waitmovement 0 + return + +EventScript_1643A5:: @ 81643A5 + applymovement 255, Movement_16441C + applymovement 2, Movement_1643F9 + waitmovement 0 + return + +EventScript_1643B7:: @ 81643B7 + applymovement 255, Movement_16441C + applymovement 2, Movement_164401 + waitmovement 0 + return + +EventScript_1643C9:: @ 81643C9 + applymovement 255, Movement_16441C + applymovement 2, Movement_164409 + waitmovement 0 + return + +EventScript_1643DB:: @ 81643DB + applymovement 255, Movement_16441C + applymovement 2, Movement_164409 + waitmovement 0 + return + +Movement_1643ED:: @ 81643ED + step_11 + step_11 + step_30 + step_end + +Movement_1643F1:: @ 81643F1 + step_13 + step_13 + step_2e + step_end + +Movement_1643F5:: @ 81643F5 + step_13 + step_end + +Movement_1643F7:: @ 81643F7 + step_11 + step_end + +Movement_1643F9:: @ 81643F9 + step_1e + step_20 + step_20 + step_20 + step_1d + step_20 + step_20 + step_end + +Movement_164401:: @ 8164401 + step_1d + step_20 + step_20 + step_20 + step_1e + step_20 + step_20 + step_end + +Movement_164409:: @ 8164409 + step_20 + step_20 + step_20 + step_20 + step_1e + step_end + +Movement_16440F:: @ 816440F + step_00 + step_5e + step_39 + step_39 + step_39 + step_39 + step_39 + step_39 + step_39 + step_39 + step_39 + step_5f + step_end + +Movement_16441C:: @ 816441C + step_1c + step_30 + step_end + +SixIsland_DottedHole_SapphireRoom_EventScript_16441F:: @ 816441F + lockall + setvar VAR_0x8005, 130 + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A9321 + getbraillestringwidth gUnknown_81A9321 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A932D + getbraillestringwidth gUnknown_81A932D + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A9338 + getbraillestringwidth gUnknown_81A9338 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A933F + getbraillestringwidth gUnknown_81A933F + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A934A + getbraillestringwidth gUnknown_81A934A + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A9356 + getbraillestringwidth gUnknown_81A9356 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A9362 + getbraillestringwidth gUnknown_81A9362 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A9368 + getbraillestringwidth gUnknown_81A9368 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A9374 + getbraillestringwidth gUnknown_81A9374 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A937C + getbraillestringwidth gUnknown_81A937C + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A9387 + getbraillestringwidth gUnknown_81A9387 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A9393 + getbraillestringwidth gUnknown_81A9393 + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A939F + getbraillestringwidth gUnknown_81A939F + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A93AB + getbraillestringwidth gUnknown_81A93AB + call EventScript_1A926C + setvar VAR_0x8006, 0 + braillemessage gUnknown_81A93B4 + getbraillestringwidth gUnknown_81A93B4 + call EventScript_1A926C + braillemessage gUnknown_81A93C0 + waitbuttonpress + releaseall + end diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/text.inc b/data/maps/SixIsland_DottedHole_SapphireRoom/text.inc new file mode 100644 index 000000000..713e8cadf --- /dev/null +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/text.inc @@ -0,0 +1,24 @@ +Text_17BD82:: @ 817BD82 + .string "{PLAYER} found a SAPPHIRE!$" + +gUnknown_817BD97:: @ 817BD97 + .string "Fufu… Fufufufu…\n" + .string "I guessed right.\p" + .string "I was right in tailing you!$" + +gUnknown_817BDD4:: @ 817BDD4 + .string "I knew that there was a SAPPHIRE\n" + .string "here, so it belongs to me!\p" + .string "I'll sell it to TEAM ROCKET for\n" + .string "serious money.\p" + .string "…D-don't glare at me like that!\p" + .string "If you want it back, why don't you\n" + .string "go get it after I sell it?\p" + .string "I'll even tell you one of the\n" + .string "passwords to TEAM ROCKET's\l" + .string "WAREHOUSE.\p" + .string "The WAREHOUSE password I know is\n" + .string "“Yes, nah, CHANSEY.”\p" + .string "I'm done.\n" + .string "Don't think badly of me!$" + diff --git a/data/maps/SixIsland_GreenPath/map.json b/data/maps/SixIsland_GreenPath/map.json new file mode 100644 index 000000000..abcf7f0af --- /dev/null +++ b/data/maps/SixIsland_GreenPath/map.json @@ -0,0 +1,97 @@ +{ + "id": "MAP_SIX_ISLAND_GREEN_PATH", + "name": "SixIsland_GreenPath", + "layout": "LAYOUT_SIX_ISLAND_GREEN_PATH", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_GREEN_PATH", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SIX_ISLAND_OUTCAST_ISLAND", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_SIX_ISLAND_WATER_PATH", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "23", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "20", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SixIsland_GreenPath_EventScript_1AC517", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 63, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", + "dest_warp_id": 1 + }, + { + "x": 64, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", + "dest_warp_id": 1 + }, + { + "x": 45, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", + "dest_warp_id": 4 + }, + { + "x": 46, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 40, + "y": 10, + "elevation": 0, + "script": "SixIsland_GreenPath_EventScript_168B37" + }, + { + "type": "bg_event_type_0", + "x": 69, + "y": 10, + "elevation": 0, + "script": "SixIsland_GreenPath_EventScript_168B2E" + }, + { + "type": "hidden_item", + "x": 12, + "y": 9, + "elevation": 3, + "item": "POCKET_KEY_ITEMS", + "flag": "180", + "unknown": 1 + } + ] +} diff --git a/data/maps/SixIsland_GreenPath/scripts.inc b/data/maps/SixIsland_GreenPath/scripts.inc new file mode 100644 index 000000000..c2822ccca --- /dev/null +++ b/data/maps/SixIsland_GreenPath/scripts.inc @@ -0,0 +1,10 @@ +SixIsland_GreenPath_MapScripts:: @ 8168B2D + .byte 0 + +SixIsland_GreenPath_EventScript_168B2E:: @ 8168B2E + msgbox gUnknown_818B84D, 3 + end + +SixIsland_GreenPath_EventScript_168B37:: @ 8168B37 + msgbox gUnknown_818B86B, 3 + end diff --git a/data/maps/SixIsland_GreenPath/text.inc b/data/maps/SixIsland_GreenPath/text.inc new file mode 100644 index 000000000..97d8bc2c8 --- /dev/null +++ b/data/maps/SixIsland_GreenPath/text.inc @@ -0,0 +1,94 @@ +Text_18B400:: @ 818B400 + .string "I'm having no luck at all.\n" + .string "A battle'd be a change of pace!$" + +Text_18B43B:: @ 818B43B + .string "Nope, no luck at all…$" + +Text_18B451:: @ 818B451 + .string "I can't very well go home without\n" + .string "catching something, though.$" + +Text_18B48F:: @ 818B48F + .string "Gasp… Gasp…\p" + .string "I swam here from SIX ISLE PORT\n" + .string "in one go.$" + +Text_18B4C5:: @ 818B4C5 + .string "Gasp…\n" + .string "Gasp…$" + +Text_18B4D1:: @ 818B4D1 + .string "I'm only at the halfway point…\n" + .string "I'm beat…$" + +Text_18B4FA:: @ 818B4FA + .string "It's not so easy sending POKéMON\n" + .string "out while swimming, you know?$" + +Text_18B539:: @ 818B539 + .string "I didn't lose to you at swimming.\n" + .string "This doesn't bother me.$" + +Text_18B573:: @ 818B573 + .string "Are you headed for the island up\n" + .string "past here?\p" + .string "I didn't see anything interesting\n" + .string "there.$" + +Text_18B5C8:: @ 818B5C8 + .string "AVA: Let's have a two-on-two\n" + .string "marine battle!$" + +Text_18B5F4:: @ 818B5F4 + .string "AVA: Oh, you're amazing!\n" + .string "Even better, you're on your own!$" + +Text_18B62E:: @ 818B62E + .string "AVA: You know, I do prefer the\n" + .string "sea over any pool.$" + +Text_18B660:: @ 818B660 + .string "AVA: You're challenging us to\n" + .string "a battle?\p" + .string "You'll need at least two POKéMON\n" + .string "if you want to do that.$" + +Text_18B6C1:: @ 818B6C1 + .string "GEB: Big Sister, help!\n" + .string "Please battle with me!$" + +Text_18B6EF:: @ 818B6EF + .string "GEB: Wow, Big Sister, this person's\n" + .string "really good!$" + +Text_18B720:: @ 818B720 + .string "GEB: I'm hanging onto my sister\n" + .string "because I can't touch the bottom.$" + +Text_18B762:: @ 818B762 + .string "GEB: Please battle against me and\n" + .string "my sister!\p" + .string "…Oh, you don't have two POKéMON?$" + +Text_18B7B0:: @ 818B7B0 + .string "…Huh?\p" + .string "I was envisioning my house, but\n" + .string "this is where I TELEPORT?$" + +Text_18B7F0:: @ 818B7F0 + .string "Big boo-boo!$" + +Text_18B7FD:: @ 818B7FD + .string "I am so scatterbrained!\p" + .string "I need to focus so I can TELEPORT\n" + .string "properly to my house!$" + +gUnknown_818B84D:: @ 818B84D + .string "GREEN PATH\n" + .string "PATTERN BUSH AHEAD$" + +gUnknown_818B86B:: @ 818B86B + .string "GREEN PATH\n" + .string "Think Green, Keep Nature Clean!$" + diff --git a/data/maps/SixIsland_Harbor/map.json b/data/maps/SixIsland_Harbor/map.json new file mode 100644 index 000000000..4af0b5351 --- /dev/null +++ b/data/maps/SixIsland_Harbor/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SIX_ISLAND_HARBOR", + "name": "SixIsland_Harbor", + "layout": "LAYOUT_ISLAND_HARBOR", + "music": "BGM_FRLG_ISLAND_SIX", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "108", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_Harbor_EventScript_171E48", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_Harbor/scripts.inc b/data/maps/SixIsland_Harbor/scripts.inc new file mode 100644 index 000000000..1e4e34a16 --- /dev/null +++ b/data/maps/SixIsland_Harbor/scripts.inc @@ -0,0 +1,11 @@ +SixIsland_Harbor_MapScripts:: @ 8171E47 + .byte 0 + +SixIsland_Harbor_EventScript_171E48:: @ 8171E48 + lock + faceplayer + message Text_181726 + waitmessage + setvar VAR_0x8004, 6 + goto EventScript_1A900F + end diff --git a/data/maps/SixIsland_House/map.json b/data/maps/SixIsland_House/map.json new file mode 100644 index 000000000..4444ed8af --- /dev/null +++ b/data/maps/SixIsland_House/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_SIX_ISLAND_HOUSE", + "name": "SixIsland_House", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_SIX", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "32", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_House_EventScript_171E5C", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_House/scripts.inc b/data/maps/SixIsland_House/scripts.inc new file mode 100644 index 000000000..bc6753abb --- /dev/null +++ b/data/maps/SixIsland_House/scripts.inc @@ -0,0 +1,6 @@ +SixIsland_House_MapScripts:: @ 8171E5B + .byte 0 + +SixIsland_House_EventScript_171E5C:: @ 8171E5C + msgbox gUnknown_81A412E, 2 + end diff --git a/data/maps/SixIsland_House/text.inc b/data/maps/SixIsland_House/text.inc new file mode 100644 index 000000000..06fd9c274 --- /dev/null +++ b/data/maps/SixIsland_House/text.inc @@ -0,0 +1,7 @@ +gUnknown_81A412E:: @ 81A412E + .string "There's nothing that young people'd\n" + .string "find exciting here on this island.\p" + .string "But, this is a good place in terms\n" + .string "of nature and history.\p" + .string "Relax and enjoy your stay.$" + diff --git a/data/maps/SixIsland_Mart/map.json b/data/maps/SixIsland_Mart/map.json new file mode 100644 index 000000000..f6e686c5f --- /dev/null +++ b/data/maps/SixIsland_Mart/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_SIX_ISLAND_MART", + "name": "SixIsland_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_Mart_EventScript_171E66", + "flag": "0" + }, + { + "graphics_id": "35", + "x": 8, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_Mart_EventScript_1ACFEF", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 7, + "y": 7, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_Mart_EventScript_171EA0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_Mart/scripts.inc b/data/maps/SixIsland_Mart/scripts.inc new file mode 100644 index 000000000..495a0a991 --- /dev/null +++ b/data/maps/SixIsland_Mart/scripts.inc @@ -0,0 +1,33 @@ +SixIsland_Mart_MapScripts:: @ 8171E65 + .byte 0 + +SixIsland_Mart_EventScript_171E66:: @ 8171E66 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_171E8C + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_171E8C:: @ 8171E8C + .2byte ITEM_ULTRA_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_DREAM_MAIL + .2byte ITEM_NONE + release + end + +SixIsland_Mart_EventScript_171EA0:: @ 8171EA0 + msgbox gUnknown_81A4271, 2 + end diff --git a/data/maps/SixIsland_Mart/text.inc b/data/maps/SixIsland_Mart/text.inc new file mode 100644 index 000000000..34e6275a2 --- /dev/null +++ b/data/maps/SixIsland_Mart/text.inc @@ -0,0 +1,12 @@ +Text_1A41CA:: @ 81A41CA + .string "Play with POKéMON lots and live\n" + .string "a long life!\p" + .string "Take AGATHA, for example.\p" + .string "She set a record for being the\n" + .string "oldest-ever ELITE FOUR member.\p" + .string "She spurs me to do bigger things.$" + +gUnknown_81A4271:: @ 81A4271 + .string "I should buy some MAIL and write\n" + .string "him a letter…$" + diff --git a/data/maps/SixIsland_OutcastIsland/map.json b/data/maps/SixIsland_OutcastIsland/map.json new file mode 100644 index 000000000..459fc1275 --- /dev/null +++ b/data/maps/SixIsland_OutcastIsland/map.json @@ -0,0 +1,144 @@ +{ + "id": "MAP_SIX_ISLAND_OUTCAST_ISLAND", + "name": "SixIsland_OutcastIsland", + "layout": "LAYOUT_SIX_ISLAND_OUTCAST_ISLAND", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_OUTCAST_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SIX_ISLAND_GREEN_PATH", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "graphics_id": "49", + "x": 9, + "y": 24, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_OutcastIsland_EventScript_168B16", + "flag": "136" + }, + { + "graphics_id": "57", + "x": 12, + "y": 15, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_OutcastIsland_EventScript_1AC3D1", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 13, + "y": 34, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_OutcastIsland_EventScript_1AC40F", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 14, + "y": 61, + "elevation": 1, + "movement_type": "50", + "movement_range_x": 2, + "movement_range_y": 4, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_OutcastIsland_EventScript_1AC44D", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 10, + "y": 44, + "elevation": 1, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_OutcastIsland_EventScript_1AC48B", + "flag": "0" + }, + { + "graphics_id": "36", + "x": 11, + "y": 44, + "elevation": 1, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_OutcastIsland_EventScript_1AC4D1", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_OutcastIsland_EventScript_1BEC90", + "flag": "481" + } + ], + "warp_events": [ + { + "x": 7, + "y": 21, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_ALTERING_CAVE", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 16, + "y": 23, + "elevation": 3, + "item": "ITEM_STAR_PIECE", + "flag": "178", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 6, + "y": 24, + "elevation": 3, + "item": "ITEM_NET_BALL", + "flag": "179", + "unknown": 1 + } + ] +} diff --git a/data/maps/SixIsland_OutcastIsland/scripts.inc b/data/maps/SixIsland_OutcastIsland/scripts.inc new file mode 100644 index 000000000..9682f1cbe --- /dev/null +++ b/data/maps/SixIsland_OutcastIsland/scripts.inc @@ -0,0 +1,7 @@ +SixIsland_OutcastIsland_MapScripts:: @ 8168B15 + .byte 0 + +SixIsland_OutcastIsland_EventScript_168B16:: @ 8168B16 + trainerbattle 0, 540, 0, Text_18B35A, Text_18B3C2 + msgbox gUnknown_818B3C8, 6 + end diff --git a/data/maps/SixIsland_OutcastIsland/text.inc b/data/maps/SixIsland_OutcastIsland/text.inc new file mode 100644 index 000000000..47b138e41 --- /dev/null +++ b/data/maps/SixIsland_OutcastIsland/text.inc @@ -0,0 +1,13 @@ +Text_18B35A:: @ 818B35A + .string "There're no rare POKéMON around\n" + .string "these parts! Not a one!\p" + .string "That burns me up, man.\n" + .string "I'll take it out on you!$" + +Text_18B3C2:: @ 818B3C2 + .string "…Huh?$" + +gUnknown_818B3C8:: @ 818B3C8 + .string "So listen, you haven't seen any\n" + .string "rare POKéMON, have you?$" + diff --git a/data/maps/SixIsland_PatternBush/map.json b/data/maps/SixIsland_PatternBush/map.json new file mode 100644 index 000000000..8d0953181 --- /dev/null +++ b/data/maps/SixIsland_PatternBush/map.json @@ -0,0 +1,219 @@ +{ + "id": "MAP_SIX_ISLAND_PATTERN_BUSH", + "name": "SixIsland_PatternBush", + "layout": "LAYOUT_SIX_ISLAND_PATTERN_BUSH", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_PATTERN_BUSH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "28", + "x": 48, + "y": 15, + "elevation": 3, + "movement_type": "20", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SixIsland_PatternBush_EventScript_164590", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "18", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SixIsland_PatternBush_EventScript_1645A7", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 51, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SixIsland_PatternBush_EventScript_1645BE", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 12, + "y": 13, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SixIsland_PatternBush_EventScript_1645D5", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 37, + "y": 23, + "elevation": 3, + "movement_type": "51", + "movement_range_x": 2, + "movement_range_y": 5, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_PatternBush_EventScript_1645EC", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 32, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SixIsland_PatternBush_EventScript_164603", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 52, + "y": 20, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SixIsland_PatternBush_EventScript_16461A", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 8, + "y": 21, + "elevation": 3, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "SixIsland_PatternBush_EventScript_164631", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 39, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SixIsland_PatternBush_EventScript_164648", + "flag": "0" + }, + { + "graphics_id": "39", + "x": 3, + "y": 9, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SixIsland_PatternBush_EventScript_16465F", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 19, + "y": 24, + "elevation": 3, + "movement_type": "28", + "movement_range_x": 5, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_PatternBush_EventScript_164676", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 30, + "y": 19, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SixIsland_PatternBush_EventScript_16468D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 54, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": 0 + }, + { + "x": 55, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": 0 + }, + { + "x": 56, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": 1 + }, + { + "x": 3, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": 2 + }, + { + "x": 4, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": 2 + }, + { + "x": 5, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_PatternBush/scripts.inc b/data/maps/SixIsland_PatternBush/scripts.inc new file mode 100644 index 000000000..0575b4855 --- /dev/null +++ b/data/maps/SixIsland_PatternBush/scripts.inc @@ -0,0 +1,80 @@ +SixIsland_PatternBush_MapScripts:: @ 8164559 + map_script 3, SixIsland_PatternBush_MapScript1_16455F + .byte 0 + +SixIsland_PatternBush_MapScript1_16455F:: @ 816455F + setworldmapflag FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH + getplayerxy VAR_0x4001, VAR_0x4002 + compare_var_to_value VAR_0x4001, 50 + call_if 4, EventScript_16457E + compare_var_to_value VAR_0x4001, 49 + call_if 3, EventScript_164587 + end + +EventScript_16457E:: @ 816457E + setescapewarp MAP_SIX_ISLAND_GREEN_PATH, 255, 64, 10 + return + +EventScript_164587:: @ 8164587 + setescapewarp MAP_SIX_ISLAND_GREEN_PATH, 255, 45, 10 + return + +SixIsland_PatternBush_EventScript_164590:: @ 8164590 + trainerbattle 0, 609, 0, Text_17BF3A, Text_17BF66 + msgbox gUnknown_817BF97, 6 + end + +SixIsland_PatternBush_EventScript_1645A7:: @ 81645A7 + trainerbattle 0, 610, 0, Text_17BFEB, Text_17C028 + msgbox gUnknown_817C056, 6 + end + +SixIsland_PatternBush_EventScript_1645BE:: @ 81645BE + trainerbattle 0, 611, 0, Text_17C0BE, Text_17C0F2 + msgbox gUnknown_817C113, 6 + end + +SixIsland_PatternBush_EventScript_1645D5:: @ 81645D5 + trainerbattle 0, 612, 0, Text_17C155, Text_17C196 + msgbox gUnknown_817C1D0, 6 + end + +SixIsland_PatternBush_EventScript_1645EC:: @ 81645EC + trainerbattle 0, 613, 0, Text_17C246, Text_17C275 + msgbox gUnknown_817C2A4, 6 + end + +SixIsland_PatternBush_EventScript_164603:: @ 8164603 + trainerbattle 0, 614, 0, Text_17C2D9, Text_17C30D + msgbox gUnknown_817C31C, 6 + end + +SixIsland_PatternBush_EventScript_16461A:: @ 816461A + trainerbattle 0, 615, 0, Text_17C373, Text_17C3A5 + msgbox gUnknown_817C3CE, 6 + end + +SixIsland_PatternBush_EventScript_164631:: @ 8164631 + trainerbattle 0, 616, 0, Text_17C42B, Text_17C458 + msgbox gUnknown_817C490, 6 + end + +SixIsland_PatternBush_EventScript_164648:: @ 8164648 + trainerbattle 0, 617, 0, Text_17C4FE, Text_17C552 + msgbox gUnknown_817C590, 6 + end + +SixIsland_PatternBush_EventScript_16465F:: @ 816465F + trainerbattle 0, 618, 0, Text_17C5DB, Text_17C609 + msgbox gUnknown_817C615, 6 + end + +SixIsland_PatternBush_EventScript_164676:: @ 8164676 + trainerbattle 0, 619, 0, Text_17C63E, Text_17C660 + msgbox gUnknown_817C68E, 6 + end + +SixIsland_PatternBush_EventScript_16468D:: @ 816468D + trainerbattle 0, 620, 0, Text_17C6C9, Text_17C6FB + msgbox gUnknown_817C728, 6 + end diff --git a/data/maps/SixIsland_PatternBush/text.inc b/data/maps/SixIsland_PatternBush/text.inc new file mode 100644 index 000000000..eddaf1ed9 --- /dev/null +++ b/data/maps/SixIsland_PatternBush/text.inc @@ -0,0 +1,156 @@ +Text_17BF3A:: @ 817BF3A + .string "I'm curious, how do you raise your\n" + .string "POKéMON?$" + +Text_17BF66:: @ 817BF66 + .string "You raise your POKéMON with a\n" + .string "whole lot of love!$" + +gUnknown_817BF97:: @ 817BF97 + .string "In the same way your mother raised\n" + .string "you full of love, you should raise\l" + .string "your POKéMON.$" + +Text_17BFEB:: @ 817BFEB + .string "I'm working to preserve the natural\n" + .string "ecology of POKéMON here.$" + +Text_17C028:: @ 817C028 + .string "Oh, for someone so young, you are\n" + .string "tremendous!$" + +gUnknown_817C056:: @ 817C056 + .string "I'm not saying that you shouldn't\n" + .string "catch POKéMON.\p" + .string "I just want people to raise their\n" + .string "POKéMON responsibly.$" + +Text_17C0BE:: @ 817C0BE + .string "I caught a BUG POKéMON that lives\n" + .string "only around here!$" + +Text_17C0F2:: @ 817C0F2 + .string "Heheh…\n" + .string "Isn't my POKéMON awesome?$" + +gUnknown_817C113:: @ 817C113 + .string "There's a girl near the BUSH who\n" + .string "measures HERACROSS for TRAINERS.$" + +Text_17C155:: @ 817C155 + .string "You know, it just doesn't feel right\n" + .string "if I don't use BUG POKéMON.$" + +Text_17C196:: @ 817C196 + .string "It's okay, losing is a fun part of\n" + .string "POKéMON's appeal, too.$" + +gUnknown_817C1D0:: @ 817C1D0 + .string "By the way, “appeal” is a weird\n" + .string "word, if you think about it.\p" + .string "Like, is it like an orange peel?\n" + .string "Or like a ringing bell?$" + +Text_17C246:: @ 817C246 + .string "Yeah, yeah, yeah!\n" + .string "Look at all the BUG POKéMON!$" + +Text_17C275:: @ 817C275 + .string "I got beat while I was still busy\n" + .string "celebrating!$" + +gUnknown_817C2A4:: @ 817C2A4 + .string "I'm going to bring my little brother\n" + .string "here next time.$" + +Text_17C2D9:: @ 817C2D9 + .string "Look, look! There are funny\n" + .string "patterns on the ground.$" + +Text_17C30D:: @ 817C30D + .string "Super awesome!$" + +gUnknown_817C31C:: @ 817C31C + .string "The funny patterns on the ground…\p" + .string "They look like the patterns on my\n" + .string "grandpa's clothes.$" + +Text_17C373:: @ 817C373 + .string "I bet you think I'm just some guy,\n" + .string "don't you, eh?$" + +Text_17C3A5:: @ 817C3A5 + .string "I bet you think I'm weak,\n" + .string "don't you, eh?$" + +gUnknown_817C3CE:: @ 817C3CE + .string "Ayup, you townies come around all\n" + .string "so dandy with a hat that flashy…\p" + .string "How about giving me that?$" + +Text_17C42B:: @ 817C42B + .string "Take a deep breath.\n" + .string "Isn't the air delicious?$" + +Text_17C458:: @ 817C458 + .string "If you'd like, I can teach you how\n" + .string "to breathe properly.$" + +gUnknown_817C490:: @ 817C490 + .string "First, exhale.\n" + .string "Blow everything out.\p" + .string "When you can't exhale anymore,\n" + .string "inhale the clean air!\p" + .string "Isn't it refreshing?$" + +Text_17C4FE:: @ 817C4FE + .string "I love BUG POKéMON.\n" + .string "That's why I'm here all the time.\p" + .string "Am I the only girl like that?$" + +Text_17C552:: @ 817C552 + .string "I lost, but I'm still laughing.\n" + .string "Am I the only girl like that?$" + +gUnknown_817C590:: @ 817C590 + .string "I'm going to keep on collecting\n" + .string "BUG POKéMON.\p" + .string "Am I the only girl like that?$" + +Text_17C5DB:: @ 817C5DB + .string "This is a good spot.\n" + .string "I'll pitch my tent here.$" + +Text_17C609:: @ 817C609 + .string "Wimped out…$" + +gUnknown_817C615:: @ 817C615 + .string "I'm going to observe the night sky\n" + .string "here.$" + +Text_17C63E:: @ 817C63E + .string "Oh, yuck!\n" + .string "I think a bug stung me!$" + +Text_17C660:: @ 817C660 + .string "It wasn't a bug.\n" + .string "I cut my shin on some grass.$" + +gUnknown_817C68E:: @ 817C68E + .string "A little cut like that…\n" + .string "A little spit's enough to cure it!$" + +Text_17C6C9:: @ 817C6C9 + .string "Have you noticed something odd\n" + .string "about these parts?$" + +Text_17C6FB:: @ 817C6FB + .string "Have you taken a good look around\n" + .string "your feet?$" + +gUnknown_817C728:: @ 817C728 + .string "There are places here in PATTERN\n" + .string "BUSH where grass won't grow.\p" + .string "What could be the cause of such\n" + .string "a phenomenon?$" + diff --git a/data/maps/SixIsland_PokemonCenter_1F/map.json b/data/maps/SixIsland_PokemonCenter_1F/map.json new file mode 100644 index 000000000..5a22c24ba --- /dev/null +++ b/data/maps/SixIsland_PokemonCenter_1F/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", + "name": "SixIsland_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_PokemonCenter_1F_EventScript_171E05", + "flag": "0" + }, + { + "graphics_id": "72", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "152" + }, + { + "graphics_id": "56", + "x": 13, + "y": 3, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_PokemonCenter_1F_EventScript_171E0E", + "flag": "0" + }, + { + "graphics_id": "33", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_PokemonCenter_1F_EventScript_171E17", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_PokemonCenter_1F/scripts.inc b/data/maps/SixIsland_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..593f9f979 --- /dev/null +++ b/data/maps/SixIsland_PokemonCenter_1F/scripts.inc @@ -0,0 +1,79 @@ +SixIsland_PokemonCenter_1F_MapScripts:: @ 8171D6A + map_script 3, SixIsland_PokemonCenter_1F_MapScript1_171D7A + map_script 5, SixIsland_PokemonCenter_1F_MapScript2_1BC05C + map_script 2, SixIsland_PokemonCenter_1F_MapScript3_171D8D + .byte 0 + +SixIsland_PokemonCenter_1F_MapScript1_171D7A:: @ 8171D7A + setrespawn SPAWN_SIX_ISLAND + compare_var_to_value VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F, 0 + call_if 1, EventScript_171D89 + end + +EventScript_171D89:: @ 8171D89 + clearflag FLAG_0x098 + return + +SixIsland_PokemonCenter_1F_MapScript3_171D8D:: @ 8171D8D + map_script_2 VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F, 0, EventScript_171D97 + .2byte 0 + +EventScript_171D97:: @ 8171D97 + lockall + textcolor 0 + applymovement 2, Movement_1A75ED + waitmovement 0 + playbgm BGM_FRLG_RIVAL, 0 + applymovement 2, Movement_1A75DB + waitmovement 0 + applymovement 2, Movement_1A75DD + waitmovement 0 + delay 25 + applymovement 2, Movement_171DF9 + waitmovement 0 + msgbox gUnknown_81A3F30 + closemessage + applymovement 255, Movement_171E02 + applymovement 2, Movement_171DFE + waitmovement 0 + fadedefaultbgm + playse SE_KAIDAN + delay 35 + removeobject 2 + setvar VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F, 1 + setvar VAR_MAP_SCENE_FOUR_ISLAND, 1 + releaseall + end + +Movement_171DF9:: @ 8171DF9 + step_13 + step_13 + step_10 + step_10 + step_end + +Movement_171DFE:: @ 8171DFE + step_1c + step_1a + step_10 + step_end + +Movement_171E02:: @ 8171E02 + step_12 + step_30 + step_end + +SixIsland_PokemonCenter_1F_EventScript_171E05:: @ 8171E05 + lock + faceplayer + call EventScript_1A6578 + release + end + +SixIsland_PokemonCenter_1F_EventScript_171E0E:: @ 8171E0E + msgbox gUnknown_81A3E02, 2 + end + +SixIsland_PokemonCenter_1F_EventScript_171E17:: @ 8171E17 + msgbox gUnknown_81A3E87, 2 + end diff --git a/data/maps/SixIsland_PokemonCenter_1F/text.inc b/data/maps/SixIsland_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..a7b4f3336 --- /dev/null +++ b/data/maps/SixIsland_PokemonCenter_1F/text.inc @@ -0,0 +1,36 @@ +gUnknown_81A3E02:: @ 81A3E02 + .string "For ten years, I've searched for\n" + .string "RUINS.\p" + .string "No, make that twenty years.\p" + .string "I get this feeling that there's\n" + .string "something hidden on this island.$" + +gUnknown_81A3E87:: @ 81A3E87 + .string "You know of POKéMON that evolve\n" + .string "only upon trading, yes?\p" + .string "But did you know that there are\n" + .string "still others?\p" + .string "Some POKéMON evolve only when\n" + .string "traded while holding specific items.$" + +gUnknown_81A3F30:: @ 81A3F30 + .string "{RIVAL}: Hey, {PLAYER}!\n" + .string "How's your POKéDEX filling up?\p" + .string "It looks like it's impossible to get\n" + .string "all the POKéMON by hanging around\l" + .string "just these parts.\p" + .string "Maybe there are POKéMON we don't\n" + .string "know about somewhere far away…\p" + .string "… … … … … … … … …\p" + .string "Well, if I can't do it, there's no\n" + .string "way for you to get it done.\p" + .string "I'm not going to get all desperate\n" + .string "over this.\p" + .string "I'll keep collecting POKéMON at my\n" + .string "own pace while I train them.\p" + .string "That's what I'll do.\n" + .string "So there's no point staying here.\l" + .string "I may as well leave for home.\p" + .string "That's that, then!\n" + .string "Smell ya later!$" + diff --git a/data/maps/SixIsland_PokemonCenter_2F/map.json b/data/maps/SixIsland_PokemonCenter_2F/map.json new file mode 100644 index 000000000..d5865a28b --- /dev/null +++ b/data/maps/SixIsland_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_SIX_ISLAND_POKEMON_CENTER_2F", + "name": "SixIsland_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_PokemonCenter_2F/scripts.inc b/data/maps/SixIsland_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..a261c9269 --- /dev/null +++ b/data/maps/SixIsland_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +SixIsland_PokemonCenter_2F_MapScripts:: @ 8171E20 + map_script 2, SixIsland_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, SixIsland_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, SixIsland_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, SixIsland_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +SixIsland_PokemonCenter_2F_EventScript_171E35:: @ 8171E35 + call EventScript_1BB4A3 + end + +EventScript_171E3B:: @ 8171E3B + call EventScript_1BB6AB + end + +EventScript_171E41:: @ 8171E41 + call EventScript_1BB7DE + end diff --git a/data/maps/SixIsland_RuinValley/map.json b/data/maps/SixIsland_RuinValley/map.json new file mode 100644 index 000000000..8e5fc1b9f --- /dev/null +++ b/data/maps/SixIsland_RuinValley/map.json @@ -0,0 +1,263 @@ +{ + "id": "MAP_SIX_ISLAND_RUIN_VALLEY", + "name": "SixIsland_RuinValley", + "layout": "LAYOUT_SIX_ISLAND_RUIN_VALLEY", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_RUIN_VALLEY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SIX_ISLAND_WATER_PATH", + "offset": -80, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "55", + "x": 24, + "y": 25, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_168B6D", + "flag": "142" + }, + { + "graphics_id": "56", + "x": 32, + "y": 11, + "elevation": 5, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SixIsland_RuinValley_EventScript_1AC717", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 33, + "y": 16, + "elevation": 5, + "movement_type": "14", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SixIsland_RuinValley_EventScript_1AC755", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 31, + "y": 24, + "elevation": 5, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_RuinValley_EventScript_1AC793", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 14, + "y": 10, + "elevation": 5, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "SixIsland_RuinValley_EventScript_1AC7D1", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 21, + "y": 29, + "elevation": 5, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 3, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_RuinValley_EventScript_1AC80F", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 17, + "y": 10, + "elevation": 5, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 17, + "y": 12, + "elevation": 5, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 18, + "y": 11, + "elevation": 5, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 6, + "y": 33, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 6, + "y": 34, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 41, + "y": 32, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 41, + "y": 33, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 42, + "y": 33, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 5, + "y": 33, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BECC4", + "flag": "485" + }, + { + "graphics_id": "92", + "x": 19, + "y": 11, + "elevation": 5, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BECB7", + "flag": "484" + }, + { + "graphics_id": "92", + "x": 43, + "y": 32, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_RuinValley_EventScript_1BECD1", + "flag": "486" + } + ], + "warp_events": [ + { + "x": 24, + "y": 24, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 24, + "y": 24, + "elevation": 3, + "script": "SixIsland_RuinValley_EventScript_168B94" + } + ] +} diff --git a/data/maps/SixIsland_RuinValley/scripts.inc b/data/maps/SixIsland_RuinValley/scripts.inc new file mode 100644 index 000000000..11c1b730f --- /dev/null +++ b/data/maps/SixIsland_RuinValley/scripts.inc @@ -0,0 +1,46 @@ +SixIsland_RuinValley_MapScripts:: @ 8168B53 + map_script 1, SixIsland_RuinValley_MapScript1_168B59 + .byte 0 + +SixIsland_RuinValley_MapScript1_168B59:: @ 8168B59 + checkflag FLAG_0x2E3 + call_if 1, EventScript_168B63 + end + +EventScript_168B63:: @ 8168B63 + setmetatile 24, 24, 856, 0 + return + +SixIsland_RuinValley_EventScript_168B6D:: @ 8168B6D + lock + msgbox gUnknown_818BD47 + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_818BD7A + applymovement 1, Movement_1A75E5 + waitmovement 0 + release + end + +SixIsland_RuinValley_EventScript_168B94:: @ 8168B94 + lockall + checkflag FLAG_0x2E3 + goto_if_eq EventScript_168BC1 + msgbox gUnknown_818BDC0, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_168BCB + msgbox gUnknown_818BE11 + braillemessage gUnknown_81A929B + waitbuttonpress + releaseall + end + +EventScript_168BC1:: @ 8168BC1 + msgbox gUnknown_818BE4B + releaseall + end + +EventScript_168BCB:: @ 8168BCB + msgbox gUnknown_818BDF9 + releaseall + end diff --git a/data/maps/SixIsland_RuinValley/text.inc b/data/maps/SixIsland_RuinValley/text.inc new file mode 100644 index 000000000..14cee7a88 --- /dev/null +++ b/data/maps/SixIsland_RuinValley/text.inc @@ -0,0 +1,23 @@ +gUnknown_818BD47:: @ 818BD47 + .string "I can't figure out how I'm supposed\n" + .string "to get inside.$" + +gUnknown_818BD7A:: @ 818BD7A + .string "Let me tell you, I found this\n" + .string "place.\p" + .string "Don't look so envious, will you?$" + +gUnknown_818BDC0:: @ 818BDC0 + .string "The door doesn't budge at all.\n" + .string "Check it more thoroughly?$" + +gUnknown_818BDF9:: @ 818BDF9 + .string "{PLAYER} left the door alone.$" + +gUnknown_818BE11:: @ 818BE11 + .string "On closer inspection, there are\n" + .string "several dots on the door…$" + +gUnknown_818BE4B:: @ 818BE4B + .string "The door is open.$" + diff --git a/data/maps/SixIsland_WaterPath/map.json b/data/maps/SixIsland_WaterPath/map.json new file mode 100644 index 000000000..2539323d8 --- /dev/null +++ b/data/maps/SixIsland_WaterPath/map.json @@ -0,0 +1,210 @@ +{ + "id": "MAP_SIX_ISLAND_WATER_PATH", + "name": "SixIsland_WaterPath", + "layout": "LAYOUT_SIX_ISLAND_WATER_PATH", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_WATER_PATH", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_SIX_ISLAND_GREEN_PATH", + "offset": 0, + "direction": "left" + }, + { + "map": "MAP_SIX_ISLAND", + "offset": 40, + "direction": "left" + }, + { + "map": "MAP_SIX_ISLAND_RUIN_VALLEY", + "offset": 80, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "28", + "x": 12, + "y": 13, + "elevation": 3, + "movement_type": "19", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SixIsland_WaterPath_EventScript_1AC555", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 11, + "y": 52, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "SixIsland_WaterPath_EventScript_1AC593", + "flag": "0" + }, + { + "graphics_id": "43", + "x": 13, + "y": 35, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SixIsland_WaterPath_EventScript_1AC5D1", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 15, + "y": 45, + "elevation": 1, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_WaterPath_EventScript_1AC60F", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 6, + "y": 21, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_WaterPath_EventScript_1AC64D", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 7, + "y": 21, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "SixIsland_WaterPath_EventScript_1AC693", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 11, + "y": 76, + "elevation": 3, + "movement_type": "15", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "SixIsland_WaterPath_EventScript_1AC6D9", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 17, + "y": 19, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_WaterPath_EventScript_1BEC9D", + "flag": "482" + }, + { + "graphics_id": "92", + "x": 17, + "y": 87, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_WaterPath_EventScript_1BECAA", + "flag": "483" + } + ], + "warp_events": [ + { + "x": 5, + "y": 13, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_WATER_PATH_HOUSE1", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 19, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_WATER_PATH_HOUSE2", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 8, + "y": 14, + "elevation": 0, + "script": "SixIsland_WaterPath_EventScript_168B41" + }, + { + "type": "hidden_item", + "x": 15, + "y": 76, + "elevation": 3, + "item": "ITEM_ASPEAR_BERRY", + "flag": "181", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 3, + "y": 8, + "elevation": 3, + "item": "ITEM_ORAN_BERRY", + "flag": "182", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 13, + "y": 63, + "elevation": 3, + "item": "ITEM_PINAP_BERRY", + "flag": "183", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 12, + "y": 54, + "elevation": 0, + "script": "SixIsland_WaterPath_EventScript_168B4A" + } + ] +} diff --git a/data/maps/SixIsland_WaterPath/scripts.inc b/data/maps/SixIsland_WaterPath/scripts.inc new file mode 100644 index 000000000..2b410f112 --- /dev/null +++ b/data/maps/SixIsland_WaterPath/scripts.inc @@ -0,0 +1,10 @@ +SixIsland_WaterPath_MapScripts:: @ 8168B40 + .byte 0 + +SixIsland_WaterPath_EventScript_168B41:: @ 8168B41 + msgbox gUnknown_818BD0C, 3 + end + +SixIsland_WaterPath_EventScript_168B4A:: @ 8168B4A + msgbox gUnknown_818BD27, 3 + end diff --git a/data/maps/SixIsland_WaterPath/text.inc b/data/maps/SixIsland_WaterPath/text.inc new file mode 100644 index 000000000..70a8ce017 --- /dev/null +++ b/data/maps/SixIsland_WaterPath/text.inc @@ -0,0 +1,102 @@ +Text_18B896:: @ 818B896 + .string "I let a pleasant breeze lead me\n" + .string "all the way here.$" + +Text_18B8C8:: @ 818B8C8 + .string "Giggle… You're so cute when you're\n" + .string "determined.$" + +Text_18B8F7:: @ 818B8F7 + .string "I want to go to the woods over\n" + .string "there, but…\p" + .string "There are lots of BUG POKéMON.\n" + .string "They scare me a little.$" + +Text_18B959:: @ 818B959 + .string "I'm practicing in secret so no one\n" + .string "can see me.$" + +Text_18B988:: @ 818B988 + .string "Nobody saw me losing, right?$" + +Text_18B9A5:: @ 818B9A5 + .string "As a performer, I don't want people\n" + .string "to know about the effort I put in.$" + +Text_18B9EC:: @ 818B9EC + .string "What, you're suggesting that you're\n" + .string "sick of seeing SWIMMERS like me?\p" + .string "Aww, don't be hatin'!$" + +Text_18BA47:: @ 818BA47 + .string "Oh, no, no, no.$" + +Text_18BA57:: @ 818BA57 + .string "I couldn't lift the stigma of being\n" + .string "a SWIMMER…$" + +Text_18BA86:: @ 818BA86 + .string "My boyfriend's always busy, so I\n" + .string "come swimming by myself.$" + +Text_18BAC0:: @ 818BAC0 + .string "Awww, I knew this would happen!$" + +Text_18BAE0:: @ 818BAE0 + .string "When I can't be with my boyfriend,\n" + .string "I spend time with the POKéMON he\l" + .string "gave me.$" + +Text_18BB2D:: @ 818BB2D + .string "Tell me, where are the mountains\n" + .string "around these parts?$" + +Text_18BB62:: @ 818BB62 + .string "I lost my way while I was busy\n" + .string "battling!$" + +Text_18BB8B:: @ 818BB8B + .string "Aren't there any mountains around\n" + .string "these parts?$" + +Text_18BBBA:: @ 818BBBA + .string "MIU: Hello, POKéMON!\n" + .string "It's time to play!$" + +Text_18BBE2:: @ 818BBE2 + .string "MIU: Oh, no!\n" + .string "Mommy!$" + +Text_18BBF6:: @ 818BBF6 + .string "MIU: It makes me all sad inside\n" + .string "when we lose…$" + +Text_18BC24:: @ 818BC24 + .string "MIU: MIA and I are TWINS.\n" + .string "We want to battle together.$" + +Text_18BC5A:: @ 818BC5A + .string "MIA: Hello, POKéMON!\n" + .string "It's time to battle!$" + +Text_18BC84:: @ 818BC84 + .string "MIA: You're mean!\n" + .string "You're bad for winning!$" + +Text_18BCAE:: @ 818BCAE + .string "MIA: Ohh…\n" + .string "I'm sorry, my POKéMON…$" + +Text_18BCCF:: @ 818BCCF + .string "MIA: Oh, you only have one\n" + .string "POKéMON?\p" + .string "Don't you feel lonesome?$" + +gUnknown_818BD0C:: @ 818BD0C + .string "Wanted!\n" + .string "The Ultimate Horn!$" + +gUnknown_818BD27:: @ 818BD27 + .string "WATER PATH\n" + .string "Leads to RUIN VALLEY$" + diff --git a/data/maps/SixIsland_WaterPath_House1/map.json b/data/maps/SixIsland_WaterPath_House1/map.json new file mode 100644 index 000000000..5a446e953 --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House1/map.json @@ -0,0 +1,49 @@ +{ + "id": "MAP_SIX_ISLAND_WATER_PATH_HOUSE1", + "name": "SixIsland_WaterPath_House1", + "layout": "LAYOUT_HOUSE4", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_WATER_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "29", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_WaterPath_House1_EventScript_17206D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_WATER_PATH", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 9, + "y": 1, + "elevation": 0, + "script": "SixIsland_WaterPath_House1_EventScript_172157" + } + ] +} diff --git a/data/maps/SixIsland_WaterPath_House1/scripts.inc b/data/maps/SixIsland_WaterPath_House1/scripts.inc new file mode 100644 index 000000000..f9df42396 --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House1/scripts.inc @@ -0,0 +1,89 @@ +SixIsland_WaterPath_House1_MapScripts:: @ 817206C + .byte 0 + +SixIsland_WaterPath_House1_EventScript_17206D:: @ 817206D + lock + faceplayer + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + setvar VAR_0x8004, SPECIES_HERACROSS + specialvar VAR_RESULT, sub_80CC48C + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1720E5 + special sub_80A0918 + msgbox gUnknown_81A4A3F + special sub_80BF8FC + waitstate + copyvar VAR_RESULT, VAR_0x8004 + compare_var_to_value VAR_RESULT, 6 + goto_if 4, EventScript_1720EF + special sub_80A0930 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_1720F1 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1720FB + compare_var_to_value VAR_RESULT, 3 + goto_if_eq EventScript_172121 + compare_var_to_value VAR_RESULT, 4 + goto_if_eq EventScript_17210E + release + end + +EventScript_1720E5:: @ 81720E5 + msgbox gUnknown_81A49E9 + release + end + +EventScript_1720EF:: @ 81720EF + release + end + +EventScript_1720F1:: @ 81720F1 + msgbox gUnknown_81A4BEF + release + end + +EventScript_1720FB:: @ 81720FB + checkflag FLAG_0x2D9 + goto_if 0, EventScript_172121 + msgbox gUnknown_81A4B7A + release + end + +EventScript_17210E:: @ 817210E + checkflag FLAG_0x2D9 + goto_if 0, EventScript_172121 + msgbox gUnknown_81A4B39 + release + end + +EventScript_172121:: @ 8172121 + setflag FLAG_0x2D9 + msgbox gUnknown_81A4A88 + giveitem ITEM_NEST_BALL + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_17214D + msgbox gUnknown_81A4AD9 + release + end + +EventScript_17214D:: @ 817214D + msgbox gUnknown_81A4C47 + release + end + +SixIsland_WaterPath_House1_EventScript_172157:: @ 8172157 + lockall + checkflag FLAG_0x2D9 + goto_if_eq EventScript_17216B + msgbox gUnknown_81A4CB9 + releaseall + end + +EventScript_17216B:: @ 817216B + special sub_80A0918 + msgbox gUnknown_81A4C6E + releaseall + end diff --git a/data/maps/SixIsland_WaterPath_House1/text.inc b/data/maps/SixIsland_WaterPath_House1/text.inc new file mode 100644 index 000000000..71ecedc96 --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House1/text.inc @@ -0,0 +1,105 @@ +Text_1A46C6:: @ 81A46C6 + .string "I perfected the ultimate move of\n" + .string "its type…\p" + .string "But will no one take it for\n" + .string "future use?\p" + .string "…Hm? Hmmm!\p" + .string "Y-you…\n" + .string "Th-that {STR_VAR_1}…$" + +Text_1A4737:: @ 81A4737 + .string "…No…\n" + .string "I was just mistaken.$" + +Text_1A4751:: @ 81A4751 + .string "Oh! This is the one!\n" + .string "This is the POKéMON!\p" + .string "This {STR_VAR_1} is worthy of\n" + .string "learning my ultimate move!\p" + .string "Will you allow it?\p" + .string "Will you allow your {STR_VAR_1} to\n" + .string "learn my {STR_VAR_2}?$" + +Text_1A47E5:: @ 81A47E5 + .string "Gaah! You reject it?\n" + .string "No, I won't be dissuaded!$" + +Text_1A4814:: @ 81A4814 + .string "You will allow it?\p" + .string "Then, let me confer my ultimate\n" + .string "{STR_VAR_2} on your {STR_VAR_1}.\p" + .string "Ggggrah-awooo!$" + +Text_1A4865:: @ 81A4865 + .string "Gasp, gasp, gasp…\p" + .string "I didn't think I could teach that\n" + .string "move while I still lived…$" + +Text_1A48B3:: @ 81A48B3 + .string "I implore you to make the best\n" + .string "use of that move and gain power!$" + +Text_1A48F3:: @ 81A48F3 + .string "Gasp, gasp, gasp…\p" + .string "I have no regrets now.\n" + .string "I've passed on everything I know.\p" + .string "Now I can live out my life knowing\n" + .string "my work is done.$" + +Text_1A4972:: @ 81A4972 + .string "After I passed on my knowledge to\n" + .string "you, I felt so much relief.\p" + .string "In fact, I feel rejuvenated,\n" + .string "as if I were younger again!$" + +gUnknown_81A49E9:: @ 81A49E9 + .string "Hera, hera, HERACROSS!\n" + .string "Big and shiny, it's the bug boss!\l" + .string "Love it, need it, HERACROSS!$" + +gUnknown_81A4A3F:: @ 81A4A3F + .string "Eeeeek!\n" + .string "That's a HERACROSS!\p" + .string "Please, please, may I measure how\n" + .string "big it is?$" + +gUnknown_81A4A88:: @ 81A4A88 + .string "Eeeek, it's {STR_VAR_2} inches!\n" + .string "I've never seen anything like this!\l" + .string "You deserve a reward!$" + +gUnknown_81A4AD9:: @ 81A4AD9 + .string "I want to see a much, much bigger\n" + .string "HERACROSS than that one.\p" + .string "Oh, how I adore them, big\n" + .string "HERACROSS!$" + +gUnknown_81A4B39:: @ 81A4B39 + .string "Huh? This {STR_VAR_2}-inch measurement…\n" + .string "Oh, boo! It's the same as before.$" + +gUnknown_81A4B7A:: @ 81A4B7A + .string "Oh, it's just {STR_VAR_2} inches.\n" + .string "The HERACROSS before was bigger.\p" + .string "It was {STR_VAR_3} inches, the biggest\n" + .string "HERACROSS you've brought me.$" + +gUnknown_81A4BEF:: @ 81A4BEF + .string "Oh, no! This won't do!\p" + .string "HERACROSS looks much more macho\n" + .string "and cool, and has a lovely horn!$" + +gUnknown_81A4C47:: @ 81A4C47 + .string "Your BAG is full.\n" + .string "My reward won't fit.$" + +gUnknown_81A4C6E:: @ 81A4C6E + .string "The biggest HERACROSS that I have\n" + .string "ever seen measured so far is:\p" + .string "{STR_VAR_3} inches!$" + +gUnknown_81A4CB9:: @ 81A4CB9 + .string "It's a blank chart of some sort.\p" + .string "It has spaces for writing in\n" + .string "records of some kind.$" + diff --git a/data/maps/SixIsland_WaterPath_House2/map.json b/data/maps/SixIsland_WaterPath_House2/map.json new file mode 100644 index 000000000..915052f9f --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House2/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_SIX_ISLAND_WATER_PATH_HOUSE2", + "name": "SixIsland_WaterPath_House2", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_WATER_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "25", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "15", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "SixIsland_WaterPath_House2_EventScript_172179", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_WATER_PATH", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_WaterPath_House2/scripts.inc b/data/maps/SixIsland_WaterPath_House2/scripts.inc new file mode 100644 index 000000000..ed5e24c7f --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House2/scripts.inc @@ -0,0 +1,6 @@ +SixIsland_WaterPath_House2_MapScripts:: @ 8172178 + .byte 0 + +SixIsland_WaterPath_House2_EventScript_172179:: @ 8172179 + msgbox gUnknown_81A4D0D, 2 + end diff --git a/data/maps/SixIsland_WaterPath_House2/text.inc b/data/maps/SixIsland_WaterPath_House2/text.inc new file mode 100644 index 000000000..03c8e187b --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House2/text.inc @@ -0,0 +1,6 @@ +gUnknown_81A4D0D:: @ 81A4D0D + .string "My height is 67.0 inches on the\n" + .string "button.\p" + .string "I know it is this precisely because\n" + .string "my neighbor measured me.$" + diff --git a/data/maps/ThreeIsland/map.json b/data/maps/ThreeIsland/map.json new file mode 100644 index 000000000..8e45d33fc --- /dev/null +++ b/data/maps/ThreeIsland/map.json @@ -0,0 +1,371 @@ +{ + "id": "MAP_THREE_ISLAND", + "name": "ThreeIsland", + "layout": "LAYOUT_THREE_ISLAND", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_THREE_ISLAND_PORT", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_THREE_ISLAND_BOND_BRIDGE", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "25", + "x": 7, + "y": 24, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_1677E5", + "flag": "126" + }, + { + "graphics_id": "25", + "x": 8, + "y": 23, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_167989", + "flag": "126" + }, + { + "graphics_id": "53", + "x": 8, + "y": 24, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_1677D8", + "flag": "145" + }, + { + "graphics_id": "53", + "x": 9, + "y": 23, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_1677D8", + "flag": "121" + }, + { + "graphics_id": "53", + "x": 9, + "y": 24, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_1677D8", + "flag": "121" + }, + { + "graphics_id": "53", + "x": 10, + "y": 22, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_1677D8", + "flag": "121" + }, + { + "graphics_id": "53", + "x": 10, + "y": 24, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_1677D8", + "flag": "121" + }, + { + "graphics_id": "53", + "x": 11, + "y": 23, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_1677D8", + "flag": "121" + }, + { + "graphics_id": "95", + "x": 20, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "92", + "x": 18, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_1BEABC", + "flag": "443" + }, + { + "graphics_id": "23", + "x": 15, + "y": 7, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_167C77", + "flag": "0" + }, + { + "graphics_id": "16", + "x": 14, + "y": 14, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_167C80", + "flag": "0" + }, + { + "graphics_id": "132", + "x": 15, + "y": 14, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_167C89", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 15, + "y": 31, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_EventScript_167CA5", + "flag": "121" + } + ], + "warp_events": [ + { + "x": 3, + "y": 31, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE1", + "dest_warp_id": 0 + }, + { + "x": 14, + "y": 27, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 0 + }, + { + "x": 18, + "y": 12, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_MART", + "dest_warp_id": 0 + }, + { + "x": 4, + "y": 6, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE2", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 6, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE3", + "dest_warp_id": 0 + }, + { + "x": 12, + "y": 12, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE4", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 19, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE5", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 7, + "y": 27, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 2, + "script": "ThreeIsland_EventScript_1679B5" + }, + { + "type": "trigger", + "x": 8, + "y": 27, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 2, + "script": "ThreeIsland_EventScript_1679B5" + }, + { + "type": "trigger", + "x": 9, + "y": 27, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 2, + "script": "ThreeIsland_EventScript_1679B5" + }, + { + "type": "trigger", + "x": 10, + "y": 27, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 2, + "script": "ThreeIsland_EventScript_1679B5" + }, + { + "type": "trigger", + "x": 7, + "y": 26, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 3, + "script": "ThreeIsland_EventScript_167A1D" + }, + { + "type": "trigger", + "x": 8, + "y": 26, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 3, + "script": "ThreeIsland_EventScript_167A29" + }, + { + "type": "trigger", + "x": 9, + "y": 26, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 3, + "script": "ThreeIsland_EventScript_167A35" + }, + { + "type": "trigger", + "x": 11, + "y": 27, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 2, + "script": "ThreeIsland_EventScript_1679B5" + }, + { + "type": "trigger", + "x": 10, + "y": 26, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 3, + "script": "ThreeIsland_EventScript_167A41" + }, + { + "type": "trigger", + "x": 11, + "y": 26, + "elevation": 3, + "var": "VAR_0x407B", + "var_value": 3, + "script": "ThreeIsland_EventScript_167A4D" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 12, + "y": 31, + "elevation": 0, + "script": "ThreeIsland_EventScript_167C9C" + }, + { + "type": "hidden_item", + "x": 5, + "y": 13, + "elevation": 3, + "item": "ITEM_PP_UP", + "flag": "164", + "unknown": 1 + } + ] +} diff --git a/data/maps/ThreeIsland/scripts.inc b/data/maps/ThreeIsland/scripts.inc new file mode 100644 index 000000000..4d6773491 --- /dev/null +++ b/data/maps/ThreeIsland/scripts.inc @@ -0,0 +1,410 @@ +ThreeIsland_MapScripts:: @ 81677AD + map_script 3, ThreeIsland_MapScript1_1677B3 + .byte 0 + +ThreeIsland_MapScript1_1677B3:: @ 81677B3 + setworldmapflag FLAG_WORLD_MAP_THREE_ISLAND + checkflag FLAG_0x2A3 + call_if 1, EventScript_1677CB + compare_var_to_value VAR_0x407B, 4 + call_if 1, EventScript_1677CF + end + +EventScript_1677CB:: @ 81677CB + setflag FLAG_0x07E + return + +EventScript_1677CF:: @ 81677CF + setobjectmovementtype 1, 1 + setobjectmovementtype 2, 1 + return + +ThreeIsland_EventScript_1677D8:: @ 81677D8 + lock + setvar VAR_0x4001, 2 + call EventScript_16786F + release + end + +ThreeIsland_EventScript_1677E5:: @ 81677E5 + lock + checkflag FLAG_0x2FC + goto_if_eq EventScript_167806 + compare_var_to_value VAR_0x407B, 4 + goto_if_eq EventScript_16781A + setvar VAR_0x4001, 0 + call EventScript_16786F + release + end + +EventScript_167806:: @ 8167806 + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_81827F1 + release + end + +EventScript_16781A:: @ 816781A + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_818275A + checkitemspace ITEM_FULL_RESTORE, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_167865 + giveitemfanfaremsg gUnknown_81827BE, ITEM_FULL_RESTORE + additem ITEM_FULL_RESTORE, 1 + setflag FLAG_0x2FC + msgbox gUnknown_81827F1 + release + end + +EventScript_167865:: @ 8167865 + msgbox gUnknown_81827DB + release + end + +EventScript_16786F:: @ 816786F + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_167947 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_167947 + applymovement 1, Movement_167A1B + waitmovement 0 + msgbox gUnknown_81820C0 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_167952 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_167952 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_16795D + applymovement 5, Movement_167A19 + waitmovement 0 + msgbox gUnknown_8182125 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_167931 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_167931 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_167973 + applymovement 2, Movement_167A1B + waitmovement 0 + msgbox gUnknown_81821A9 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_167952 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_167952 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_16795D + applymovement 4, Movement_167A19 + waitmovement 0 + msgbox gUnknown_81821DC + return + +EventScript_167931:: @ 8167931 + applymovement 255, Movement_1A75E9 + waitmovement 0 + return + +EventScript_16793C:: @ 816793C + applymovement 255, Movement_1A75ED + waitmovement 0 + return + +EventScript_167947:: @ 8167947 + applymovement 255, Movement_1A75E7 + waitmovement 0 + return + +EventScript_167952:: @ 8167952 + applymovement 255, Movement_1A75EB + waitmovement 0 + return + +EventScript_16795D:: @ 816795D + getplayerxy VAR_0x8004, VAR_0x8005 + compare_var_to_value VAR_0x8004, 9 + goto_if 4, EventScript_167931 + goto EventScript_167952 + end + +EventScript_167973:: @ 8167973 + getplayerxy VAR_0x8004, VAR_0x8005 + compare_var_to_value VAR_0x8004, 9 + goto_if 4, EventScript_167947 + goto EventScript_167931 + end + +ThreeIsland_EventScript_167989:: @ 8167989 + lock + compare_var_to_value VAR_0x407B, 4 + goto_if_eq EventScript_1679A1 + setvar VAR_0x4001, 1 + call EventScript_16786F + release + end + +EventScript_1679A1:: @ 81679A1 + applymovement 2, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_8182823 + release + end + +ThreeIsland_EventScript_1679B5:: @ 81679B5 + lockall + textcolor 0 + applymovement 1, Movement_167A1B + waitmovement 0 + msgbox gUnknown_81821F1 + applymovement 3, Movement_167A19 + waitmovement 0 + msgbox gUnknown_818221F + applymovement 1, Movement_167A1B + waitmovement 0 + msgbox gUnknown_8182275 + applymovement 3, Movement_167A19 + waitmovement 0 + msgbox gUnknown_81822FB + applymovement 1, Movement_167A1B + waitmovement 0 + msgbox gUnknown_81823C7 + setvar VAR_0x407B, 3 + releaseall + end + +Movement_167A19:: @ 8167A19 + step_27 + step_end + +Movement_167A1B:: @ 8167A1B + step_28 + step_end + +ThreeIsland_EventScript_167A1D:: @ 8167A1D + lockall + setvar VAR_0x4001, 0 + goto EventScript_167A59 + end + +ThreeIsland_EventScript_167A29:: @ 8167A29 + lockall + setvar VAR_0x4001, 1 + goto EventScript_167A59 + end + +ThreeIsland_EventScript_167A35:: @ 8167A35 + lockall + setvar VAR_0x4001, 2 + goto EventScript_167A59 + end + +ThreeIsland_EventScript_167A41:: @ 8167A41 + lockall + setvar VAR_0x4001, 3 + goto EventScript_167A59 + end + +ThreeIsland_EventScript_167A4D:: @ 8167A4D + lockall + setvar VAR_0x4001, 4 + goto EventScript_167A59 + end + +EventScript_167A59:: @ 8167A59 + textcolor 0 + applymovement 5, Movement_1A75ED + waitmovement 0 + playse SE_PIN + applymovement 5, Movement_1A75DB + waitmovement 0 + applymovement 5, Movement_1A75DD + waitmovement 0 + applymovement 5, Movement_167C57 + waitmovement 0 + playbgm BGM_FRLG_BOY_EYE, 0 + msgbox gUnknown_81823ED, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_167C35 + msgbox gUnknown_818247D + setvar VAR_LAST_TALKED, 5 + trainerbattle 3, 527, 0, Text_1824B7 + applymovement 5, Movement_167C5C + waitmovement 0 + msgbox gUnknown_81824CF + closemessage + applymovement 7, Movement_167C57 + waitmovement 0 + playbgm BGM_FRLG_BOY_EYE, 0 + msgbox gUnknown_81824EF + setvar VAR_LAST_TALKED, 7 + trainerbattle 3, 528, 0, Text_182521 + applymovement 7, Movement_167C5C + waitmovement 0 + msgbox gUnknown_8182536 + closemessage + applymovement 4, Movement_167C57 + waitmovement 0 + playbgm BGM_FRLG_BOY_EYE, 0 + msgbox gUnknown_8182582 + setvar VAR_LAST_TALKED, 4 + trainerbattle 3, 529, 0, Text_1825D4 + applymovement 4, Movement_1A75E7 + waitmovement 0 + applymovement 6, Movement_1A75ED + applymovement 8, Movement_1A75ED + waitmovement 0 + msgbox gUnknown_81825E2 + closemessage + delay 45 + compare_var_to_value VAR_0x4001, 0 + call_if 1, EventScript_167BC6 + compare_var_to_value VAR_0x4001, 1 + call_if 1, EventScript_167BD8 + compare_var_to_value VAR_0x4001, 2 + call_if 1, EventScript_167BEA + compare_var_to_value VAR_0x4001, 3 + call_if 1, EventScript_167C03 + compare_var_to_value VAR_0x4001, 4 + call_if 1, EventScript_167C1C + playbgm BGM_FRLG_BOY_EYE, 0 + msgbox gUnknown_8182623 + setvar VAR_LAST_TALKED, 3 + trainerbattle 3, 742, 0, Text_1826B7 + msgbox gUnknown_818271D + closemessage + fadescreen 1 + removeobject 3 + removeobject 5 + removeobject 7 + removeobject 4 + removeobject 6 + removeobject 8 + removeobject 14 + fadescreen 0 + setvar VAR_0x407B, 4 + releaseall + end + +EventScript_167BC6:: @ 8167BC6 + applymovement 4, Movement_1A75ED + applymovement 3, Movement_167C5E + waitmovement 0 + return + +EventScript_167BD8:: @ 8167BD8 + applymovement 4, Movement_1A75ED + applymovement 3, Movement_167C62 + waitmovement 0 + return + +EventScript_167BEA:: @ 8167BEA + applymovement 4, Movement_1A75ED + applymovement 3, Movement_167C64 + applymovement 255, Movement_167C68 + waitmovement 0 + return + +EventScript_167C03:: @ 8167C03 + applymovement 4, Movement_1A75ED + applymovement 255, Movement_167C68 + applymovement 3, Movement_167C6C + waitmovement 0 + return + +EventScript_167C1C:: @ 8167C1C + applymovement 4, Movement_1A75ED + applymovement 255, Movement_167C68 + applymovement 3, Movement_167C71 + waitmovement 0 + return + +EventScript_167C35:: @ 8167C35 + msgbox gUnknown_8182453 + closemessage + applymovement 255, Movement_167C55 + waitmovement 0 + applymovement 5, Movement_167C59 + waitmovement 0 + fadedefaultbgm + releaseall + end + +Movement_167C55:: @ 8167C55 + step_10 + step_end + +Movement_167C57:: @ 8167C57 + step_10 + step_end + +Movement_167C59:: @ 8167C59 + step_11 + step_2f + step_end + +Movement_167C5C:: @ 8167C5C + step_25 + step_end + +Movement_167C5E:: @ 8167C5E + step_10 + step_12 + step_2d + step_end + +Movement_167C62:: @ 8167C62 + step_10 + step_end + +Movement_167C64:: @ 8167C64 + step_10 + step_10 + step_30 + step_end + +Movement_167C68:: @ 8167C68 + step_1c + step_1c + step_2f + step_end + +Movement_167C6C:: @ 8167C6C + step_10 + step_10 + step_13 + step_30 + step_end + +Movement_167C71:: @ 8167C71 + step_10 + step_10 + step_13 + step_13 + step_30 + step_end + +ThreeIsland_EventScript_167C77:: @ 8167C77 + msgbox gUnknown_81828EB, 2 + end + +ThreeIsland_EventScript_167C80:: @ 8167C80 + msgbox gUnknown_818298A, 2 + end + +ThreeIsland_EventScript_167C89:: @ 8167C89 + lock + faceplayer + waitse + playmoncry SPECIES_DODUO, 0 + msgbox gUnknown_81829F4 + waitmoncry + release + end + +ThreeIsland_EventScript_167C9C:: @ 8167C9C + msgbox gUnknown_8182061, 3 + end + +ThreeIsland_EventScript_167CA5:: @ 8167CA5 + msgbox gUnknown_818208B, 2 + end diff --git a/data/maps/ThreeIsland/text.inc b/data/maps/ThreeIsland/text.inc new file mode 100644 index 000000000..31e058a67 --- /dev/null +++ b/data/maps/ThreeIsland/text.inc @@ -0,0 +1,167 @@ +gUnknown_8182061:: @ 8182061 + .string "THREE ISLAND\n" + .string "Kin Island of Family Bonding$" + +gUnknown_818208B:: @ 818208B + .string "Hyahoo!\p" + .string "From this day on, this island\n" + .string "belongs to us!$" + +gUnknown_81820C0:: @ 81820C0 + .string "We don't need you people bringing\n" + .string "your noise and trouble here!\p" + .string "We're asking you to go back to\n" + .string "KANTO!$" + +gUnknown_8182125:: @ 8182125 + .string "Hey, go cry somewhere else.\n" + .string "Our boss is on his way.\p" + .string "When he gets here, we'll give you\n" + .string "a k-rad motorbike show you won't\l" + .string "soon forget!$" + +gUnknown_81821A9:: @ 81821A9 + .string "W-what!? Not on your life!\n" + .string "Get off the island now!$" + +gUnknown_81821DC:: @ 81821DC + .string "Who's gonna make me?$" + +gUnknown_81821F1:: @ 81821F1 + .string "Are you the boss?\n" + .string "Go back to KANTO right now!$" + +gUnknown_818221F:: @ 818221F + .string "Hah?\p" + .string "I just got here, pal.\p" + .string "What's with the hostile attitude?\n" + .string "It's mighty cold of you!$" + +gUnknown_8182275:: @ 8182275 + .string "Your gang of followers have been\n" + .string "raising havoc on their bikes.\p" + .string "Do you have any idea how much\n" + .string "trouble they've caused us on the\l" + .string "island?$" + +gUnknown_81822FB:: @ 81822FB + .string "No, man, I don't get it at all.\p" + .string "Look at this place.\n" + .string "What do you do for entertainment?\p" + .string "You ought to be thanking us for\n" + .string "livening up this sleepy village.\p" + .string "But hey, if you insist, you can try\n" + .string "making us leave.$" + +gUnknown_81823C7:: @ 81823C7 + .string "Grr… You cowards…\n" + .string "So tough in a pack…$" + +gUnknown_81823ED:: @ 81823ED + .string "You, what are you staring at?\n" + .string "Don't you know it's not polite?\p" + .string "You wanna make something of it\n" + .string "or what?$" + +gUnknown_8182453:: @ 8182453 + .string "That's smart.\n" + .string "Keep your nose out of this.$" + +gUnknown_818247D:: @ 818247D + .string "Heh, I like your guts.\n" + .string "You'll be losing money to me, but…$" + +Text_1824B7:: @ 81824B7 + .string "Wha…\n" + .string "What is this kid?!$" + +gUnknown_81824CF:: @ 81824CF + .string "Aww, man…\n" + .string "Don't you dare laugh!$" + +gUnknown_81824EF:: @ 81824EF + .string "Aren't you from KANTO?\n" + .string "You should be on our side!$" + +Text_182521:: @ 8182521 + .string "Stop fooling around!$" + +gUnknown_8182536:: @ 8182536 + .string "What's the matter with you,\n" + .string "getting all hot like that?\p" + .string "Totally uncool, man!$" + +gUnknown_8182582:: @ 8182582 + .string "We invited the boss out here,\n" + .string "but you had to mess it up!\p" + .string "You embarrassed us, man!$" + +Text_1825D4:: @ 81825D4 + .string "… … … … … …$" + +gUnknown_81825E2:: @ 81825E2 + .string "Boss, I'm telling you, you've gotta\n" + .string "do something about this kid!$" + +gUnknown_8182623:: @ 8182623 + .string "I've been watching you, and I'd say\n" + .string "you've done enough.\p" + .string "What are you, their friend or\n" + .string "something?\p" + .string "Then I guess you'll be battling me\n" + .string "in their place.$" + +Text_1826B7:: @ 81826B7 + .string "All right, enough!\n" + .string "We'll leave like you wanted!\p" + .string "We'll be happy to see the last of\n" + .string "this boring island!$" + +gUnknown_818271D:: @ 818271D + .string "Humph! Yeah, go right on hanging\n" + .string "around with these hayseeds!$" + +gUnknown_818275A:: @ 818275A + .string "Thank you! Those goons were\n" + .string "nothing but bad trouble.\p" + .string "Oh, look, your POKéMON got hurt\n" + .string "on my account.$" + +gUnknown_81827BE:: @ 81827BE + .string "{PLAYER} was given\n" + .string "a FULL RESTORE.$" + +gUnknown_81827DB:: @ 81827DB + .string "Oh?\n" + .string "Your BAG is full.$" + +gUnknown_81827F1:: @ 81827F1 + .string "You've got seriously impressive\n" + .string "POKéMON with you.$" + +gUnknown_8182823:: @ 8182823 + .string "It'd be fantastic if someone as\n" + .string "strong as you lived here.\p" + .string "I hope you'll at least stay here\n" + .string "a while.\p" + .string "…I beg your pardon?\n" + .string "You're looking for LOSTELLE?\p" + .string "LOSTELLE went off towards BOND\n" + .string "BRIDGE a while ago.$" + +gUnknown_81828EB:: @ 81828EB + .string "THREE ISLAND is actually the most\n" + .string "populous of the islands here.\p" + .string "Still, it could be less sleepy.\p" + .string "But I wouldn't want to see goons\n" + .string "like those BIKERS here again.$" + +gUnknown_818298A:: @ 818298A + .string "I'm going to train my DODUO in the\n" + .string "BERRY FOREST.\p" + .string "When it evolves, I'm going to play\n" + .string "a game on TWO ISLAND.$" + +gUnknown_81829F4:: @ 81829F4 + .string "DODUO: Gigiih!$" + diff --git a/data/maps/ThreeIsland_BerryForest/map.json b/data/maps/ThreeIsland_BerryForest/map.json new file mode 100644 index 000000000..9bafdc69d --- /dev/null +++ b/data/maps/ThreeIsland_BerryForest/map.json @@ -0,0 +1,356 @@ +{ + "id": "MAP_THREE_ISLAND_BERRY_FOREST", + "name": "ThreeIsland_BerryForest", + "layout": "LAYOUT_THREE_ISLAND_BERRY_FOREST", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_BERRY_FOREST", + "requires_flash": false, + "weather": "WEATHER_CLOUDY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "17", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_163C83", + "flag": "122" + }, + { + "graphics_id": "95", + "x": 12, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "95", + "x": 19, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "19" + }, + { + "graphics_id": "95", + "x": 23, + "y": 17, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "20" + }, + { + "graphics_id": "95", + "x": 38, + "y": 23, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "21" + }, + { + "graphics_id": "95", + "x": 44, + "y": 23, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "22" + }, + { + "graphics_id": "95", + "x": 44, + "y": 29, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "23" + }, + { + "graphics_id": "95", + "x": 16, + "y": 43, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "24" + }, + { + "graphics_id": "95", + "x": 17, + "y": 39, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "25" + }, + { + "graphics_id": "95", + "x": 14, + "y": 39, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "26" + }, + { + "graphics_id": "95", + "x": 11, + "y": 39, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BDF13", + "flag": "27" + }, + { + "graphics_id": "92", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BED05", + "flag": "490" + }, + { + "graphics_id": "92", + "x": 27, + "y": 11, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BED12", + "flag": "491" + }, + { + "graphics_id": "92", + "x": 12, + "y": 43, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BerryForest_EventScript_1BED1F", + "flag": "492" + } + ], + "warp_events": [ + { + "x": 43, + "y": 41, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", + "dest_warp_id": 0 + }, + { + "x": 42, + "y": 41, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", + "dest_warp_id": 0 + }, + { + "x": 44, + "y": 41, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 7, + "y": 27, + "elevation": 0, + "script": "ThreeIsland_BerryForest_EventScript_163D31" + }, + { + "type": "bg_event_type_0", + "x": 39, + "y": 35, + "elevation": 0, + "script": "ThreeIsland_BerryForest_EventScript_163D28" + }, + { + "type": "hidden_item", + "x": 31, + "y": 25, + "elevation": 3, + "item": "ITEM_RAZZ_BERRY", + "flag": "90", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 15, + "y": 15, + "elevation": 3, + "item": "ITEM_BLUK_BERRY", + "flag": "91", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 25, + "y": 24, + "elevation": 3, + "item": "ITEM_NANAB_BERRY", + "flag": "92", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 11, + "y": 24, + "elevation": 3, + "item": "ITEM_WEPEAR_BERRY", + "flag": "93", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 37, + "y": 18, + "elevation": 3, + "item": "ITEM_ORAN_BERRY", + "flag": "94", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 14, + "y": 23, + "elevation": 3, + "item": "ITEM_CHERI_BERRY", + "flag": "95", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 47, + "y": 5, + "elevation": 3, + "item": "ITEM_CHESTO_BERRY", + "flag": "96", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 7, + "y": 30, + "elevation": 3, + "item": "ITEM_PECHA_BERRY", + "flag": "97", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 16, + "y": 5, + "elevation": 3, + "item": "ITEM_RAWST_BERRY", + "flag": "98", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 25, + "y": 6, + "elevation": 3, + "item": "ITEM_ASPEAR_BERRY", + "flag": "99", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 46, + "y": 32, + "elevation": 3, + "item": "ITEM_PERSIM_BERRY", + "flag": "100", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 43, + "y": 16, + "elevation": 3, + "item": "ITEM_PINAP_BERRY", + "flag": "101", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 8, + "y": 5, + "elevation": 3, + "item": "ITEM_LUM_BERRY", + "flag": "102", + "unknown": 1 + } + ] +} diff --git a/data/maps/ThreeIsland_BerryForest/scripts.inc b/data/maps/ThreeIsland_BerryForest/scripts.inc new file mode 100644 index 000000000..ec85582ef --- /dev/null +++ b/data/maps/ThreeIsland_BerryForest/scripts.inc @@ -0,0 +1,65 @@ +ThreeIsland_BerryForest_MapScripts:: @ 8163C71 + map_script 3, ThreeIsland_BerryForest_MapScript1_163C77 + .byte 0 + +ThreeIsland_BerryForest_MapScript1_163C77:: @ 8163C77 + setworldmapflag FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST + setescapewarp MAP_THREE_ISLAND_BOND_BRIDGE, 255, 12, 6 + end + +ThreeIsland_BerryForest_EventScript_163C83:: @ 8163C83 + lock + faceplayer + msgbox gUnknown_817ADD6 + playse SE_PIN + applymovement 1, Movement_1A75DB + waitmovement 0 + applymovement 1, Movement_163D22 + waitmovement 0 + msgbox gUnknown_817AE8E + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + waitse + playmoncry SPECIES_HYPNO, 2 + waitmoncry + setwildbattle SPECIES_HYPNO, 30, ITEM_NONE + dowildbattle + special sub_8112364 + applymovement 1, Movement_1A75E1 + waitmovement 0 + msgbox gUnknown_817AEE1 + giveitem ITEM_IAPAPA_BERRY + compare_var_to_value VAR_RESULT, 0 + call_if 1, EventScript_163D19 + special sub_80CA6DC + msgbox gUnknown_817AF3B + closemessage + setflag FLAG_0x2A3 + setflag FLAG_0x07A + setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 2 + clearflag FLAG_0x075 + warp MAP_TWO_ISLAND_JOYFUL_GAME_CORNER, 255, 6, 6 + waitstate + release + end + +EventScript_163D19:: @ 8163D19 + msgbox gUnknown_817AF9F + return + +Movement_163D22:: @ 8163D22 + step_2f + step_1c + step_30 + step_1b + step_2f + step_end + +ThreeIsland_BerryForest_EventScript_163D28:: @ 8163D28 + msgbox gUnknown_817AFD6, 3 + end + +ThreeIsland_BerryForest_EventScript_163D31:: @ 8163D31 + msgbox gUnknown_817B029, 3 + end diff --git a/data/maps/ThreeIsland_BerryForest/text.inc b/data/maps/ThreeIsland_BerryForest/text.inc new file mode 100644 index 000000000..807df9c30 --- /dev/null +++ b/data/maps/ThreeIsland_BerryForest/text.inc @@ -0,0 +1,43 @@ +gUnknown_817ADD6:: @ 817ADD6 + .string "LOSTELLE: Whimper… Sniff…\n" + .string "Oh! Please, help!\p" + .string "A scary POKéMON appeared there\n" + .string "a little while ago.\p" + .string "It kept scaring.\n" + .string "It made LOSTELLE scared.\p" + .string "I'm too scared to move!\n" + .string "But I want to go home…$" + +gUnknown_817AE8E:: @ 817AE8E + .string "Oh! Here it comes again!\n" + .string "No! Go away! It's scaring me!\p" + .string "Waaaaaaah!\n" + .string "I want my daddy!$" + +gUnknown_817AEE1:: @ 817AEE1 + .string "Ohh! That was so scary!\n" + .string "Thank you!\p" + .string "LOSTELLE came to pick some\n" + .string "BERRIES.\p" + .string "You can have this!$" + +gUnknown_817AF3B:: @ 817AF3B + .string "What's your name?\p" + .string "LOSTELLE's scared, so can I go\n" + .string "with you to my daddy's house?\p" + .string "Okay!\n" + .string "Let's go home!$" + +gUnknown_817AF9F:: @ 817AF9F + .string "Your BERRY POUCH is full.\n" + .string "I guess you don't want this.$" + +gUnknown_817AFD6:: @ 817AFD6 + .string "Welcome to the BERRY FOREST\p" + .string "Be friendly and share BERRIES with\n" + .string "others and POKéMON.$" + +gUnknown_817B029:: @ 817B029 + .string "Beware of wild, BERRY-loving\n" + .string "POKéMON!$" + diff --git a/data/maps/ThreeIsland_BondBridge/map.json b/data/maps/ThreeIsland_BondBridge/map.json new file mode 100644 index 000000000..904817c10 --- /dev/null +++ b/data/maps/ThreeIsland_BondBridge/map.json @@ -0,0 +1,200 @@ +{ + "id": "MAP_THREE_ISLAND_BOND_BRIDGE", + "name": "ThreeIsland_BondBridge", + "layout": "LAYOUT_THREE_ISLAND_BOND_BRIDGE", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_BOND_BRIDGE", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_THREE_ISLAND", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "28", + "x": 27, + "y": 10, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "ThreeIsland_BondBridge_EventScript_1ABF65", + "flag": "0" + }, + { + "graphics_id": "28", + "x": 68, + "y": 10, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "ThreeIsland_BondBridge_EventScript_1ABFA3", + "flag": "0" + }, + { + "graphics_id": "37", + "x": 33, + "y": 13, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "ThreeIsland_BondBridge_EventScript_1ABFE1", + "flag": "0" + }, + { + "graphics_id": "37", + "x": 50, + "y": 11, + "elevation": 3, + "movement_type": "27", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "ThreeIsland_BondBridge_EventScript_1AC01F", + "flag": "0" + }, + { + "graphics_id": "44", + "x": 36, + "y": 4, + "elevation": 1, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "ThreeIsland_BondBridge_EventScript_1AC05D", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 77, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "ThreeIsland_BondBridge_EventScript_1AC09B", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 78, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "ThreeIsland_BondBridge_EventScript_1AC0E1", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 72, + "y": 8, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BondBridge_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "95", + "x": 86, + "y": 13, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_BondBridge_EventScript_1BDF13", + "flag": "19" + } + ], + "warp_events": [ + { + "x": 12, + "y": 6, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BERRY_FOREST", + "dest_warp_id": 0 + }, + { + "x": 13, + "y": 6, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BERRY_FOREST", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 14, + "y": 7, + "elevation": 0, + "script": "ThreeIsland_BondBridge_EventScript_168777" + }, + { + "type": "hidden_item", + "x": 61, + "y": 5, + "elevation": 0, + "item": "ITEM_MAX_REPEL", + "flag": "165", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 44, + "y": 12, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "166", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 33, + "y": 7, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "167", + "unknown": 1 + }, + { + "type": "bg_event_type_0", + "x": 91, + "y": 9, + "elevation": 0, + "script": "ThreeIsland_BondBridge_EventScript_168780" + } + ] +} diff --git a/data/maps/ThreeIsland_BondBridge/scripts.inc b/data/maps/ThreeIsland_BondBridge/scripts.inc new file mode 100644 index 000000000..008e748d7 --- /dev/null +++ b/data/maps/ThreeIsland_BondBridge/scripts.inc @@ -0,0 +1,10 @@ +ThreeIsland_BondBridge_MapScripts:: @ 8168776 + .byte 0 + +ThreeIsland_BondBridge_EventScript_168777:: @ 8168777 + msgbox gUnknown_818A210, 3 + end + +ThreeIsland_BondBridge_EventScript_168780:: @ 8168780 + msgbox gUnknown_818A223, 3 + end diff --git a/data/maps/ThreeIsland_BondBridge/text.inc b/data/maps/ThreeIsland_BondBridge/text.inc new file mode 100644 index 000000000..dbf984c85 --- /dev/null +++ b/data/maps/ThreeIsland_BondBridge/text.inc @@ -0,0 +1,101 @@ +Text_189E42:: @ 8189E42 + .string "The salty tang of the sea…\n" + .string "It tickles my heart.$" + +Text_189E72:: @ 8189E72 + .string "…Sniff, sniff…\n" + .string "Something smells unpleasant…$" + +Text_189E9E:: @ 8189E9E + .string "Perhaps that reek is your sweaty\n" + .string "POKéMON's body odor…$" + +Text_189ED4:: @ 8189ED4 + .string "Where are you off to in such\n" + .string "a hurry?$" + +Text_189EFA:: @ 8189EFA + .string "You're raising some wonderful\n" + .string "POKéMON.$" + +Text_189F21:: @ 8189F21 + .string "If you keep going this way, you'll\n" + .string "eventually reach BERRY FOREST.$" + +Text_189F63:: @ 8189F63 + .string "My mommy said that I can't swim\n" + .string "without my float ring.$" + +Text_189F9A:: @ 8189F9A + .string "Waaah!\n" + .string "Waaah!$" + +Text_189FA8:: @ 8189FA8 + .string "This year, I'm going to finally\n" + .string "learn how to swim!$" + +Text_189FDB:: @ 8189FDB + .string "Yay, yay!\n" + .string "POKéMON!$" + +Text_189FEE:: @ 8189FEE + .string "What happens now?$" + +Text_18A000:: @ 818A000 + .string "Did I just win?\n" + .string "Or did I lose?$" + +Text_18A01F:: @ 818A01F + .string "Oh, no, don't come here!\n" + .string "Please, stay away from me!$" + +Text_18A053:: @ 818A053 + .string "Okay, you've won!\n" + .string "Now will you please go away?$" + +Text_18A082:: @ 818A082 + .string "A POKéMON bit through my \n" + .string "swimsuit.\p" + .string "I can't get out of the water!$" + +Text_18A0C4:: @ 818A0C4 + .string "JOY: We'll teach you what our\n" + .string "favorite POKéMON is!$" + +Text_18A0F7:: @ 818A0F7 + .string "JOY: Ohh…\n" + .string "MEG!$" + +Text_18A106:: @ 818A106 + .string "JOY: Wasn't that fun?\n" + .string "I hope we can battle again!$" + +Text_18A138:: @ 818A138 + .string "JOY: I really want to battle with\n" + .string "MEG.\p" + .string "One POKéMON isn't enough.$" + +Text_18A179:: @ 818A179 + .string "MEG: We'll show you our favorite\n" + .string "POKéMON.$" + +Text_18A1A3:: @ 818A1A3 + .string "MEG: Ohh…\n" + .string "JOY!$" + +Text_18A1B2:: @ 818A1B2 + .string "MEG: JOY, wasn't that fun?$" + +Text_18A1CD:: @ 818A1CD + .string "MEG: I want to battle together\n" + .string "with JOY.\p" + .string "One POKéMON isn't enough.$" + +gUnknown_818A210:: @ 818A210 + .string "BERRY FOREST AHEAD$" + +gUnknown_818A223:: @ 818A223 + .string "BOND BRIDGE\n" + .string "Please be quiet when crossing.\p" + .string "BERRY FOREST AHEAD$" + diff --git a/data/maps/ThreeIsland_DunsparceTunnel/map.json b/data/maps/ThreeIsland_DunsparceTunnel/map.json new file mode 100644 index 000000000..3f22711d1 --- /dev/null +++ b/data/maps/ThreeIsland_DunsparceTunnel/map.json @@ -0,0 +1,58 @@ +{ + "id": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", + "name": "ThreeIsland_DunsparceTunnel", + "layout": "LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_THREE_ISLE_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "27", + "x": 23, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_DunsparceTunnel_EventScript_164D60", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 4, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_PORT", + "dest_warp_id": 0 + }, + { + "x": 25, + "y": 5, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_PORT", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 21, + "y": 3, + "elevation": 0, + "item": "ITEM_NUGGET", + "flag": "163", + "unknown": 1 + } + ] +} diff --git a/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc b/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc new file mode 100644 index 000000000..9fc141070 --- /dev/null +++ b/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc @@ -0,0 +1,56 @@ +ThreeIsland_DunsparceTunnel_MapScripts:: @ 8164D26 + map_script 3, ThreeIsland_DunsparceTunnel_MapScript1_164D2C + .byte 0 + +ThreeIsland_DunsparceTunnel_MapScript1_164D2C:: @ 8164D2C + setworldmapflag FLAG_WORLD_MAP_THREE_ISLAND_DUNSPARCE_TUNNEL + specialvar VAR_RESULT, sub_806E25C + copyvar VAR_0x8008, VAR_RESULT + compare_var_to_value VAR_0x8008, 1 + call_if 1, EventScript_164D50 + compare_var_to_value VAR_0x8008, 0 + call_if 1, EventScript_164D54 + end + +EventScript_164D50:: @ 8164D50 + setmaplayoutindex LAYOUT_UNUSED_LAYOUT_83453C0 + return + +EventScript_164D54:: @ 8164D54 + setobjectxyperm 1, 6, 3 + setobjectmovementtype 1, 10 + return + +ThreeIsland_DunsparceTunnel_EventScript_164D60:: @ 8164D60 + lock + faceplayer + checkflag FLAG_0x2E2 + goto_if_eq EventScript_164DC2 + specialvar VAR_RESULT, sub_806E25C + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_164D90 + msgbox gUnknown_817D13B + closemessage + applymovement 1, Movement_1A75E5 + waitmovement 0 + release + end + +EventScript_164D90:: @ 8164D90 + msgbox gUnknown_817D1C9 + giveitem ITEM_NUGGET + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_164DB8 + setflag FLAG_0x2E2 + goto EventScript_164DC2 + end + +EventScript_164DB8:: @ 8164DB8 + msgbox gUnknown_817D2DC + release + end + +EventScript_164DC2:: @ 8164DC2 + msgbox gUnknown_817D28C + release + end diff --git a/data/maps/ThreeIsland_DunsparceTunnel/text.inc b/data/maps/ThreeIsland_DunsparceTunnel/text.inc new file mode 100644 index 000000000..e8c5269dd --- /dev/null +++ b/data/maps/ThreeIsland_DunsparceTunnel/text.inc @@ -0,0 +1,27 @@ +gUnknown_817D13B:: @ 817D13B + .string "Hey, there!\n" + .string "How's it going?\p" + .string "What am I doing here, you ask?\n" + .string "Why, I'm prospecting for gold!\p" + .string "When I strike it rich, I'm buying\n" + .string "a house in KANTO.$" + +gUnknown_817D1C9:: @ 817D1C9 + .string "Hey, there! How's it going?\n" + .string "Did you hear? I've struck gold!\p" + .string "You remembered that I was\n" + .string "prospecting, didn't you?\p" + .string "You can't begin to imagine just\n" + .string "how happy I am.\p" + .string "So, I'll show you!\n" + .string "This is for you!$" + +gUnknown_817D28C:: @ 817D28C + .string "That's a NUGGET!\p" + .string "I can't give you any nuggets of\n" + .string "wisdom, so that'll have to do!$" + +gUnknown_817D2DC:: @ 817D2DC + .string "Whoops, your BAG is crammed full!\n" + .string "I'll give this to you later.$" + diff --git a/data/maps/ThreeIsland_Harbor/map.json b/data/maps/ThreeIsland_Harbor/map.json new file mode 100644 index 000000000..cd5781ee7 --- /dev/null +++ b/data/maps/ThreeIsland_Harbor/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_THREE_ISLAND_HARBOR", + "name": "ThreeIsland_Harbor", + "layout": "LAYOUT_ISLAND_HARBOR", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_THREE_ISLE_PORT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "108", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_Harbor_EventScript_171EAA", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_PORT", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_Harbor/scripts.inc b/data/maps/ThreeIsland_Harbor/scripts.inc new file mode 100644 index 000000000..3678385c0 --- /dev/null +++ b/data/maps/ThreeIsland_Harbor/scripts.inc @@ -0,0 +1,11 @@ +ThreeIsland_Harbor_MapScripts:: @ 8171EA9 + .byte 0 + +ThreeIsland_Harbor_EventScript_171EAA:: @ 8171EAA + lock + faceplayer + message Text_181726 + waitmessage + setvar VAR_0x8004, 3 + goto EventScript_1A900F + end diff --git a/data/maps/ThreeIsland_House1/map.json b/data/maps/ThreeIsland_House1/map.json new file mode 100644 index 000000000..b25e6eeb5 --- /dev/null +++ b/data/maps/ThreeIsland_House1/map.json @@ -0,0 +1,49 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE1", + "name": "ThreeIsland_House1", + "layout": "LAYOUT_THREE_ISLAND_HOUSE1", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "17", + "x": 3, + "y": 4, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_House1_EventScript_17181A", + "flag": "118" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 2, + "y": 1, + "elevation": 0, + "script": "ThreeIsland_House1_EventScript_171829" + } + ] +} diff --git a/data/maps/ThreeIsland_House1/scripts.inc b/data/maps/ThreeIsland_House1/scripts.inc new file mode 100644 index 000000000..29952137a --- /dev/null +++ b/data/maps/ThreeIsland_House1/scripts.inc @@ -0,0 +1,14 @@ +ThreeIsland_House1_MapScripts:: @ 8171819 + .byte 0 + +ThreeIsland_House1_EventScript_17181A:: @ 817181A + lock + faceplayer + special sub_80CA6DC + msgbox gUnknown_81A2F3E + release + end + +ThreeIsland_House1_EventScript_171829:: @ 8171829 + msgbox gUnknown_81A2F92, 3 + end diff --git a/data/maps/ThreeIsland_House1/text.inc b/data/maps/ThreeIsland_House1/text.inc new file mode 100644 index 000000000..250671619 --- /dev/null +++ b/data/maps/ThreeIsland_House1/text.inc @@ -0,0 +1,9 @@ +gUnknown_81A2F3E:: @ 81A2F3E + .string "LOSTELLE: Hi, {PLAYER}!\n" + .string "You're always so cool!\p" + .string "I'll make lunch for you, too, one\n" + .string "day, {PLAYER}.$" + +gUnknown_81A2F92:: @ 81A2F92 + .string "Rare rocks and gems are displayed.$" + diff --git a/data/maps/ThreeIsland_House2/map.json b/data/maps/ThreeIsland_House2/map.json new file mode 100644 index 000000000..b8102556b --- /dev/null +++ b/data/maps/ThreeIsland_House2/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE2", + "name": "ThreeIsland_House2", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "26", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_House2_EventScript_1718F9", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_House2_EventScript_1718E0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_House2/scripts.inc b/data/maps/ThreeIsland_House2/scripts.inc new file mode 100644 index 000000000..297f6e3dc --- /dev/null +++ b/data/maps/ThreeIsland_House2/scripts.inc @@ -0,0 +1,16 @@ +ThreeIsland_House2_MapScripts:: @ 81718DF + .byte 0 + +ThreeIsland_House2_EventScript_1718E0:: @ 81718E0 + lock + faceplayer + setvar VAR_0x8004, 7 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_81A32CA + release + end + +ThreeIsland_House2_EventScript_1718F9:: @ 81718F9 + msgbox gUnknown_81A3245, 2 + end diff --git a/data/maps/ThreeIsland_House2/text.inc b/data/maps/ThreeIsland_House2/text.inc new file mode 100644 index 000000000..cae2b9055 --- /dev/null +++ b/data/maps/ThreeIsland_House2/text.inc @@ -0,0 +1,17 @@ +gUnknown_81A3245:: @ 81A3245 + .string "Urrrrrrrrgggghhhh…\n" + .string "Kwaaaaah!\p" + .string "…It's useless! I can't make this\n" + .string "spoon bend with my mind.\p" + .string "Maybe I really don't have any\n" + .string "psychic powers.$" + +gUnknown_81A32CA:: @ 81A32CA + .string "You know about a girl GYM LEADER\n" + .string "in SAFFRON CITY?\p" + .string "She uses PSYCHIC-type POKéMON,\n" + .string "right?\p" + .string "I admire her, I really do.\p" + .string "I've heard that she's one cool\n" + .string "customer and beautiful, too.$" + diff --git a/data/maps/ThreeIsland_House3/map.json b/data/maps/ThreeIsland_House3/map.json new file mode 100644 index 000000000..6f4b8c555 --- /dev/null +++ b/data/maps/ThreeIsland_House3/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE3", + "name": "ThreeIsland_House3", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "29", + "x": 8, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_House3_EventScript_171903", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_House3/scripts.inc b/data/maps/ThreeIsland_House3/scripts.inc new file mode 100644 index 000000000..7ad4b0da0 --- /dev/null +++ b/data/maps/ThreeIsland_House3/scripts.inc @@ -0,0 +1,6 @@ +ThreeIsland_House3_MapScripts:: @ 8171902 + .byte 0 + +ThreeIsland_House3_EventScript_171903:: @ 8171903 + msgbox gUnknown_81A3379, 2 + end diff --git a/data/maps/ThreeIsland_House3/text.inc b/data/maps/ThreeIsland_House3/text.inc new file mode 100644 index 000000000..24b2c86c9 --- /dev/null +++ b/data/maps/ThreeIsland_House3/text.inc @@ -0,0 +1,5 @@ +gUnknown_81A3379:: @ 81A3379 + .string "I bought this house because I\n" + .string "wanted to live somewhere quiet.\p" + .string "Today, I think I'll go out fishing.$" + diff --git a/data/maps/ThreeIsland_House4/map.json b/data/maps/ThreeIsland_House4/map.json new file mode 100644 index 000000000..277a4bdc5 --- /dev/null +++ b/data/maps/ThreeIsland_House4/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE4", + "name": "ThreeIsland_House4", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_House4_EventScript_17190D", + "flag": "0" + }, + { + "graphics_id": "16", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_House4_EventScript_171916", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_House4/scripts.inc b/data/maps/ThreeIsland_House4/scripts.inc new file mode 100644 index 000000000..6bb77d0bc --- /dev/null +++ b/data/maps/ThreeIsland_House4/scripts.inc @@ -0,0 +1,10 @@ +ThreeIsland_House4_MapScripts:: @ 817190C + .byte 0 + +ThreeIsland_House4_EventScript_17190D:: @ 817190D + msgbox gUnknown_81A33DB, 2 + end + +ThreeIsland_House4_EventScript_171916:: @ 8171916 + msgbox gUnknown_81A342F, 2 + end diff --git a/data/maps/ThreeIsland_House4/text.inc b/data/maps/ThreeIsland_House4/text.inc new file mode 100644 index 000000000..a32fb6a5f --- /dev/null +++ b/data/maps/ThreeIsland_House4/text.inc @@ -0,0 +1,10 @@ +gUnknown_81A33DB:: @ 81A33DB + .string "You must never, ever go out to\n" + .string "the BERRY FOREST alone.\p" + .string "Why?\n" + .string "There are ghosts there.$" + +gUnknown_81A342F:: @ 81A342F + .string "Papa keeps lying to me, and won't\n" + .string "let me go out and play!$" + diff --git a/data/maps/ThreeIsland_House5/map.json b/data/maps/ThreeIsland_House5/map.json new file mode 100644 index 000000000..264b6cbcb --- /dev/null +++ b/data/maps/ThreeIsland_House5/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE5", + "name": "ThreeIsland_House5", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "17", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_House5_EventScript_171920", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_House5/scripts.inc b/data/maps/ThreeIsland_House5/scripts.inc new file mode 100644 index 000000000..d93696c0a --- /dev/null +++ b/data/maps/ThreeIsland_House5/scripts.inc @@ -0,0 +1,16 @@ +ThreeIsland_House5_MapScripts:: @ 817191F + .byte 0 + +ThreeIsland_House5_EventScript_171920:: @ 8171920 + lock + faceplayer + checkflag FLAG_0x2A3 + goto_if_eq EventScript_171935 + msgbox gUnknown_81A3469 + release + end + +EventScript_171935:: @ 8171935 + msgbox gUnknown_81A34DB + release + end diff --git a/data/maps/ThreeIsland_House5/text.inc b/data/maps/ThreeIsland_House5/text.inc new file mode 100644 index 000000000..16a034922 --- /dev/null +++ b/data/maps/ThreeIsland_House5/text.inc @@ -0,0 +1,12 @@ +gUnknown_81A3469:: @ 81A3469 + .string "Me?\n" + .string "I'm not LOSTELLE.\p" + .string "She's probably gone to the\n" + .string "BERRY FOREST, I think.\p" + .string "She picks BERRIES there for making\n" + .string "lunch.$" + +gUnknown_81A34DB:: @ 81A34DB + .string "I think I'll go play with LOSTELLE\n" + .string "today.$" + diff --git a/data/maps/ThreeIsland_Mart/map.json b/data/maps/ThreeIsland_Mart/map.json new file mode 100644 index 000000000..f8cd93f18 --- /dev/null +++ b/data/maps/ThreeIsland_Mart/map.json @@ -0,0 +1,80 @@ +{ + "id": "MAP_THREE_ISLAND_MART", + "name": "ThreeIsland_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_Mart_EventScript_17188D", + "flag": "0" + }, + { + "graphics_id": "40", + "x": 2, + "y": 7, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_Mart_EventScript_1718C4", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_Mart_EventScript_1718CD", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_Mart_EventScript_1718D6", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_Mart/scripts.inc b/data/maps/ThreeIsland_Mart/scripts.inc new file mode 100644 index 000000000..6986607e3 --- /dev/null +++ b/data/maps/ThreeIsland_Mart/scripts.inc @@ -0,0 +1,39 @@ +ThreeIsland_Mart_MapScripts:: @ 817188C + .byte 0 + +ThreeIsland_Mart_EventScript_17188D:: @ 817188D + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_1718B4 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_1718B4:: @ 81718B4 + .2byte ITEM_ULTRA_BALL + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +ThreeIsland_Mart_EventScript_1718C4:: @ 81718C4 + msgbox gUnknown_81A3114, 2 + end + +ThreeIsland_Mart_EventScript_1718CD:: @ 81718CD + msgbox gUnknown_81A315C, 2 + end + +ThreeIsland_Mart_EventScript_1718D6:: @ 81718D6 + msgbox gUnknown_81A31F0, 2 + end diff --git a/data/maps/ThreeIsland_Mart/text.inc b/data/maps/ThreeIsland_Mart/text.inc new file mode 100644 index 000000000..2618bf28e --- /dev/null +++ b/data/maps/ThreeIsland_Mart/text.inc @@ -0,0 +1,17 @@ +gUnknown_81A3114:: @ 81A3114 + .string "Is it true?\p" + .string "CELADON DEPT. STORE is several\n" + .string "times bigger than this shop?$" + +gUnknown_81A315C:: @ 81A315C + .string "I sometimes buy medicine here.\p" + .string "But a lot of people heal POKéMON\n" + .string "with BERRIES from BERRY FOREST.\p" + .string "After all, BERRIES are free and\n" + .string "they never run out.$" + +gUnknown_81A31F0:: @ 81A31F0 + .string "Those BIKERS were about to trash\n" + .string "this POKéMON MART.\p" + .string "Am I glad they decided to leave!$" + diff --git a/data/maps/ThreeIsland_PokemonCenter_1F/map.json b/data/maps/ThreeIsland_PokemonCenter_1F/map.json new file mode 100644 index 000000000..603c14528 --- /dev/null +++ b/data/maps/ThreeIsland_PokemonCenter_1F/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", + "name": "ThreeIsland_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_PokemonCenter_1F_EventScript_171841", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 12, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_PokemonCenter_1F_EventScript_17185C", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_PokemonCenter_1F_EventScript_171853", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_PokemonCenter_1F_EventScript_17184A", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": 1 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_PokemonCenter_1F/scripts.inc b/data/maps/ThreeIsland_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..559b2a03c --- /dev/null +++ b/data/maps/ThreeIsland_PokemonCenter_1F/scripts.inc @@ -0,0 +1,27 @@ +ThreeIsland_PokemonCenter_1F_MapScripts:: @ 8171832 + map_script 3, ThreeIsland_PokemonCenter_1F_MapScript1_17183D + map_script 5, ThreeIsland_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +ThreeIsland_PokemonCenter_1F_MapScript1_17183D:: @ 817183D + setrespawn SPAWN_THREE_ISLAND + end + +ThreeIsland_PokemonCenter_1F_EventScript_171841:: @ 8171841 + lock + faceplayer + call EventScript_1A6578 + release + end + +ThreeIsland_PokemonCenter_1F_EventScript_17184A:: @ 817184A + msgbox gUnknown_81A303B, 2 + end + +ThreeIsland_PokemonCenter_1F_EventScript_171853:: @ 8171853 + msgbox gUnknown_81A30A3, 2 + end + +ThreeIsland_PokemonCenter_1F_EventScript_17185C:: @ 817185C + msgbox gUnknown_81A2FB5, 2 + end diff --git a/data/maps/ThreeIsland_PokemonCenter_1F/text.inc b/data/maps/ThreeIsland_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..449f80d70 --- /dev/null +++ b/data/maps/ThreeIsland_PokemonCenter_1F/text.inc @@ -0,0 +1,19 @@ +gUnknown_81A2FB5:: @ 81A2FB5 + .string "Hey, did you hear the news?\p" + .string "The PC network here can now link\n" + .string "with PCs in KANTO.\p" + .string "I don't know how that came about,\n" + .string "but it's fantastic!$" + +gUnknown_81A303B:: @ 81A303B + .string "It's impossible to SURF between the\n" + .string "islands around these parts.\p" + .string "The tides are too fast and\n" + .string "treacherous.$" + +gUnknown_81A30A3:: @ 81A30A3 + .string "Let's crush BERRIES!\n" + .string "…That'd be wasting BERRIES?\p" + .string "You can always find some BERRIES\n" + .string "on the ground in BERRY FOREST.$" + diff --git a/data/maps/ThreeIsland_PokemonCenter_2F/map.json b/data/maps/ThreeIsland_PokemonCenter_2F/map.json new file mode 100644 index 000000000..70b900e08 --- /dev/null +++ b/data/maps/ThreeIsland_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_THREE_ISLAND_POKEMON_CENTER_2F", + "name": "ThreeIsland_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_PokemonCenter_2F/scripts.inc b/data/maps/ThreeIsland_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..dfb7db871 --- /dev/null +++ b/data/maps/ThreeIsland_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +ThreeIsland_PokemonCenter_2F_MapScripts:: @ 8171865 + map_script 2, ThreeIsland_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, ThreeIsland_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, ThreeIsland_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, ThreeIsland_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +ThreeIsland_PokemonCenter_2F_EventScript_17187A:: @ 817187A + call EventScript_1BB4A3 + end + +EventScript_171880:: @ 8171880 + call EventScript_1BB6AB + end + +EventScript_171886:: @ 8171886 + call EventScript_1BB7DE + end diff --git a/data/maps/ThreeIsland_Port/map.json b/data/maps/ThreeIsland_Port/map.json new file mode 100644 index 000000000..c40740fee --- /dev/null +++ b/data/maps/ThreeIsland_Port/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_THREE_ISLAND_PORT", + "name": "ThreeIsland_Port", + "layout": "LAYOUT_THREE_ISLAND_PORT", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_THREE_ISLE_PORT", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_THREE_ISLAND", + "offset": 0, + "direction": "up" + } + ], + "object_events": [ + { + "graphics_id": "31", + "x": 14, + "y": 9, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_Port_EventScript_168796", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 8, + "y": 8, + "elevation": 3, + "movement_type": "28", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_Port_EventScript_1687CC", + "flag": "121" + }, + { + "graphics_id": "53", + "x": 13, + "y": 10, + "elevation": 3, + "movement_type": "49", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ThreeIsland_Port_EventScript_1687D5", + "flag": "121" + } + ], + "warp_events": [ + { + "x": 16, + "y": 4, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", + "dest_warp_id": 0 + }, + { + "x": 38, + "y": 5, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", + "dest_warp_id": 1 + }, + { + "x": 12, + "y": 13, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_HARBOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_Port/scripts.inc b/data/maps/ThreeIsland_Port/scripts.inc new file mode 100644 index 000000000..8fb20ce26 --- /dev/null +++ b/data/maps/ThreeIsland_Port/scripts.inc @@ -0,0 +1,39 @@ +ThreeIsland_Port_MapScripts:: @ 8168789 + map_script 3, ThreeIsland_Port_MapScript1_16878F + .byte 0 + +ThreeIsland_Port_MapScript1_16878F:: @ 816878F + clearflag FLAG_0x841 + setflag FLAG_0x2A1 + end + +ThreeIsland_Port_EventScript_168796:: @ 8168796 + lock + faceplayer + compare_var_to_value VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 2 + goto_if 4, EventScript_1687B8 + compare_var_to_value VAR_0x407B, 4 + goto_if 4, EventScript_1687C2 + msgbox gUnknown_818A307 + release + end + +EventScript_1687B8:: @ 81687B8 + msgbox gUnknown_818A38B + release + end + +EventScript_1687C2:: @ 81687C2 + msgbox gUnknown_818A339 + release + end + +ThreeIsland_Port_EventScript_1687CC:: @ 81687CC + msgbox gUnknown_818A261, 2 + end + +ThreeIsland_Port_EventScript_1687D5:: @ 81687D5 + lock + msgbox gUnknown_818A2D8 + release + end diff --git a/data/maps/ThreeIsland_Port/text.inc b/data/maps/ThreeIsland_Port/text.inc new file mode 100644 index 000000000..e98d5f53c --- /dev/null +++ b/data/maps/ThreeIsland_Port/text.inc @@ -0,0 +1,26 @@ +gUnknown_818A261:: @ 818A261 + .string "We're the KANTO RIDER FEDERATION!\n" + .string "Vroom! Vavavavooom! Vroom!\p" + .string "My bike's wimpy, so I have to\n" + .string "make exhaust noises myself!$" + +gUnknown_818A2D8:: @ 818A2D8 + .string "Hey, hey, lady!\n" + .string "Fork over some spending money!$" + +gUnknown_818A307:: @ 818A307 + .string "Aiyeeh!\p" + .string "Wh-who are you?!\n" + .string "I… I'll call the police!$" + +gUnknown_818A339:: @ 818A339 + .string "Those BIKERS…\n" + .string "Are they gone?\p" + .string "Oh, thank goodness!\n" + .string "They certainly had me terrified!$" + +gUnknown_818A38B:: @ 818A38B + .string "Those BIKERS ran off, and\n" + .string "LOSTELLE was found safe.\p" + .string "Everything turned out for the best!$" + diff --git a/data/maps/TwoIsland/map.json b/data/maps/TwoIsland/map.json new file mode 100644 index 000000000..17826d8fd --- /dev/null +++ b/data/maps/TwoIsland/map.json @@ -0,0 +1,194 @@ +{ + "id": "MAP_TWO_ISLAND", + "name": "TwoIsland", + "layout": "LAYOUT_TWO_ISLAND", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_TWO_ISLAND_CAPE_BRINK", + "offset": 24, + "direction": "up" + } + ], + "object_events": [ + { + "graphics_id": "68", + "x": 28, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_EventScript_16760F", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 31, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_EventScript_167755", + "flag": "123" + }, + { + "graphics_id": "29", + "x": 30, + "y": 11, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_EventScript_16775E", + "flag": "124" + }, + { + "graphics_id": "62", + "x": 26, + "y": 5, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_EventScript_16774C", + "flag": "0" + }, + { + "graphics_id": "52", + "x": 27, + "y": 6, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_EventScript_167777", + "flag": "125" + }, + { + "graphics_id": "95", + "x": 30, + "y": 16, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "92", + "x": 39, + "y": 16, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_EventScript_1BEAAF", + "flag": "442" + }, + { + "graphics_id": "16", + "x": 37, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_EventScript_167789", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 24, + "y": 12, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_EventScript_167780", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 39, + "y": 9, + "elevation": 0, + "dest_map": "MAP_TWO_ISLAND_JOYFUL_GAME_CORNER", + "dest_warp_id": 0 + }, + { + "x": 33, + "y": 9, + "elevation": 0, + "dest_map": "MAP_TWO_ISLAND_HOUSE", + "dest_warp_id": 0 + }, + { + "x": 21, + "y": 7, + "elevation": 0, + "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 0 + }, + { + "x": 10, + "y": 8, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND_HARBOR", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 29, + "y": 8, + "elevation": 0, + "script": "TwoIsland_EventScript_167792" + }, + { + "type": "bg_event_type_0", + "x": 40, + "y": 10, + "elevation": 0, + "script": "TwoIsland_EventScript_16779B" + }, + { + "type": "bg_event_type_0", + "x": 8, + "y": 3, + "elevation": 0, + "script": "TwoIsland_EventScript_1677A4" + } + ] +} diff --git a/data/maps/TwoIsland/scripts.inc b/data/maps/TwoIsland/scripts.inc new file mode 100644 index 000000000..a9a42eda5 --- /dev/null +++ b/data/maps/TwoIsland/scripts.inc @@ -0,0 +1,241 @@ +TwoIsland_MapScripts:: @ 8167564 + map_script 3, TwoIsland_MapScript1_16756A + .byte 0 + +TwoIsland_MapScript1_16756A:: @ 816756A + setworldmapflag FLAG_WORLD_MAP_TWO_ISLAND + setflag FLAG_0x2A2 + call EventScript_167576 + end + +EventScript_167576:: @ 8167576 + checkflag FLAG_0x844 + goto_if_eq EventScript_167597 + checkflag FLAG_0x82C + goto_if_eq EventScript_1675B8 + checkflag FLAG_0x2A3 + goto_if_eq EventScript_1675D9 + goto EventScript_1675E8 + end + +EventScript_167597:: @ 8167597 + checkflag FLAG_0x29D + goto_if 0, EventScript_1675EE + checkflag FLAG_0x29E + goto_if 0, EventScript_1675F4 + checkflag FLAG_0x29F + goto_if 0, EventScript_1675FD + goto EventScript_167606 + end + +EventScript_1675B8:: @ 81675B8 + checkflag FLAG_0x29D + goto_if 0, EventScript_1675EE + checkflag FLAG_0x2A3 + goto_if 0, EventScript_1675EE + checkflag FLAG_0x29E + goto_if 0, EventScript_1675F4 + goto EventScript_1675FD + end + +EventScript_1675D9:: @ 81675D9 + checkflag FLAG_0x29D + goto_if 0, EventScript_1675EE + goto EventScript_1675F4 + end + +EventScript_1675E8:: @ 81675E8 + goto EventScript_1675EE + end + +EventScript_1675EE:: @ 81675EE + setvar VAR_0x4078, 1 + return + +EventScript_1675F4:: @ 81675F4 + setvar VAR_0x4078, 2 + clearflag FLAG_0x07B + return + +EventScript_1675FD:: @ 81675FD + setvar VAR_0x4078, 3 + clearflag FLAG_0x07C + return + +EventScript_167606:: @ 8167606 + setvar VAR_0x4078, 4 + clearflag FLAG_0x07D + return + +TwoIsland_EventScript_16760F:: @ 816760F + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + compare_var_to_value VAR_0x4078, 4 + goto_if_eq EventScript_167646 + compare_var_to_value VAR_0x4078, 3 + goto_if_eq EventScript_16765E + compare_var_to_value VAR_0x4078, 2 + goto_if_eq EventScript_167676 + goto EventScript_16768E + end + +EventScript_167646:: @ 8167646 + checkflag FLAG_0x2A0 + goto_if_eq EventScript_1676A6 + setflag FLAG_0x2A0 + message Text_181CAE + waitmessage + goto EventScript_167728 + end + +EventScript_16765E:: @ 816765E + checkflag FLAG_0x29F + goto_if_eq EventScript_1676A6 + setflag FLAG_0x29F + message Text_181C77 + waitmessage + goto EventScript_167708 + end + +EventScript_167676:: @ 8167676 + checkflag FLAG_0x29E + goto_if_eq EventScript_1676A6 + setflag FLAG_0x29E + message Text_181B7C + waitmessage + goto EventScript_1676EC + end + +EventScript_16768E:: @ 816768E + checkflag FLAG_0x29D + goto_if_eq EventScript_1676A6 + setflag FLAG_0x29D + message Text_181AFE + waitmessage + goto EventScript_1676D3 + end + +EventScript_1676A6:: @ 81676A6 + message Text_1A6211 + waitmessage + compare_var_to_value VAR_0x4078, 4 + goto_if_eq EventScript_167728 + compare_var_to_value VAR_0x4078, 3 + goto_if_eq EventScript_167708 + compare_var_to_value VAR_0x4078, 2 + goto_if_eq EventScript_1676EC + goto EventScript_1676D3 + end + +EventScript_1676D3:: @ 81676D3 + pokemart Items_1676E4 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_1676E4:: @ 81676E4 + .2byte ITEM_GREAT_BALL + .2byte ITEM_FRESH_WATER + .2byte ITEM_NONE + release + end + +EventScript_1676EC:: @ 81676EC + pokemart Items_1676FC + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_1676FC:: @ 81676FC + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_SODA_POP + .2byte ITEM_FRESH_WATER + .2byte ITEM_NONE + release + end + +EventScript_167708:: @ 8167708 + pokemart Items_167718 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_167718:: @ 8167718 + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_LEMONADE + .2byte ITEM_SODA_POP + .2byte ITEM_FRESH_WATER + .2byte ITEM_MOOMOO_MILK + .2byte ITEM_NONE + release + end + +EventScript_167728:: @ 8167728 + pokemart Items_167738 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_167738:: @ 8167738 + .2byte ITEM_ULTRA_BALL + .2byte ITEM_REPEAT_BALL + .2byte ITEM_TIMER_BALL + .2byte ITEM_LEMONADE + .2byte ITEM_SODA_POP + .2byte ITEM_FRESH_WATER + .2byte ITEM_MOOMOO_MILK + .2byte ITEM_LAVA_COOKIE + .2byte ITEM_NONE + release + end + +TwoIsland_EventScript_16774C:: @ 816774C + msgbox gUnknown_8181D2F, 2 + end + +TwoIsland_EventScript_167755:: @ 8167755 + msgbox gUnknown_8181DCA, 2 + end + +TwoIsland_EventScript_16775E:: @ 816775E + lock + faceplayer + setvar VAR_0x8004, 10 + setvar VAR_0x8005, 4 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8181E47 + release + end + +TwoIsland_EventScript_167777:: @ 8167777 + msgbox gUnknown_8181F28, 2 + end + +TwoIsland_EventScript_167780:: @ 8167780 + msgbox gUnknown_8181F5D, 2 + end + +TwoIsland_EventScript_167789:: @ 8167789 + msgbox gUnknown_8181FCE, 2 + end + +TwoIsland_EventScript_167792:: @ 8167792 + msgbox gUnknown_8181A88, 3 + end + +TwoIsland_EventScript_16779B:: @ 816779B + msgbox gUnknown_8181AA7, 3 + end + +TwoIsland_EventScript_1677A4:: @ 81677A4 + msgbox gUnknown_8181AC8, 3 + end diff --git a/data/maps/TwoIsland/text.inc b/data/maps/TwoIsland/text.inc new file mode 100644 index 000000000..fca7d80ee --- /dev/null +++ b/data/maps/TwoIsland/text.inc @@ -0,0 +1,86 @@ +gUnknown_8181A88:: @ 8181A88 + .string "TWO ISLAND\n" + .string "Boon Island for Two$" + +gUnknown_8181AA7:: @ 8181AA7 + .string "Skip & Chomp!\n" + .string "Joyful GAME CORNER$" + +gUnknown_8181AC8:: @ 8181AC8 + .string "DANGER! FAST CURRENT!\n" + .string "Fishing and surfing prohibited!$" + +Text_181AFE:: @ 8181AFE + .string "Oh!\n" + .string "Hello, welcome to my shop!\p" + .string "We've only opened up recently.\p" + .string "Our merchandise is limited, but I\n" + .string "hope we can serve your needs.$" + +Text_181B7C:: @ 8181B7C + .string "I can't tell you how grateful I am\n" + .string "for your rescue of LOSTELLE.\p" + .string "Thanks to your feat, the people of\n" + .string "THREE ISLAND have changed their\l" + .string "attitudes about KANTO people.\p" + .string "And, I'm from KANTO, you see.\p" + .string "The people of THREE ISLAND\n" + .string "helped me add to my merchandise.$" + +Text_181C77:: @ 8181C77 + .string "Hi! I'm giving it my best here.\n" + .string "I hope you do too, {PLAYER}.$" + +Text_181CAE:: @ 8181CAE + .string "Oh, hello, {PLAYER}!\n" + .string "Welcome!\p" + .string "I've started bringing in items from\n" + .string "distant lands.\p" + .string "I've got some rare items in, too.\n" + .string "Please have a look!$" + +gUnknown_8181D2F:: @ 8181D2F + .string "That fellow there, he moved here\n" + .string "from CELADON CITY.\p" + .string "He started up a shop with his\n" + .string "younger brother.\p" + .string "You have to wonder if he knew what\n" + .string "he was getting into.$" + +gUnknown_8181DCA:: @ 8181DCA + .string "The shopkeeper's brother took\n" + .string "a job at the GAME CORNER.\p" + .string "He's trying to pull together money\n" + .string "so they can buy more merchandise.$" + +gUnknown_8181E47:: @ 8181E47 + .string "Listen, listen.\n" + .string "Did you know?\p" + .string "A famous TRAINER came to the\n" + .string "ISLAND a little while back.\p" + .string "He's one of the ELITE FOUR.\n" + .string "His name is BRUNO.\p" + .string "He went away disappointed when he\n" + .string "found out that they were all sold\l" + .string "out of Rage Candybars.$" + +gUnknown_8181F28:: @ 8181F28 + .string "The discerning TRAINER knows to\n" + .string "buy rare items here!$" + +gUnknown_8181F5D:: @ 8181F5D + .string "There's an old woman who lives in\n" + .string "a cottage out on the cape.\p" + .string "She gives the eye to POKéMON.\n" + .string "It's a bit unnerving.$" + +gUnknown_8181FCE:: @ 8181FCE + .string "Boing! Boing!\n" + .string "Have you tried the jumping game?\p" + .string "The POKéMON you can enter…\n" + .string "Boing!\p" + .string "Some go boing!\p" + .string "And some go boooooooing!\p" + .string "Did you know that?\n" + .string "Boing!$" + diff --git a/data/maps/TwoIsland_CapeBrink/map.json b/data/maps/TwoIsland_CapeBrink/map.json new file mode 100644 index 000000000..1661ef953 --- /dev/null +++ b/data/maps/TwoIsland_CapeBrink/map.json @@ -0,0 +1,52 @@ +{ + "id": "MAP_TWO_ISLAND_CAPE_BRINK", + "name": "TwoIsland_CapeBrink", + "layout": "LAYOUT_TWO_ISLAND_CAPE_BRINK", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_CAPE_BRINK", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_TWO_ISLAND", + "offset": -24, + "direction": "down" + } + ], + "object_events": [], + "warp_events": [ + { + "x": 12, + "y": 16, + "elevation": 0, + "dest_map": "MAP_TWO_ISLAND_CAPE_BRINK_HOUSE", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 16, + "y": 28, + "elevation": 3, + "item": "ITEM_PP_MAX", + "flag": "161", + "unknown": 129 + }, + { + "type": "hidden_item", + "x": 15, + "y": 13, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "111", + "unknown": 1 + } + ] +} diff --git a/data/maps/TwoIsland_CapeBrink/scripts.inc b/data/maps/TwoIsland_CapeBrink/scripts.inc new file mode 100644 index 000000000..243c440da --- /dev/null +++ b/data/maps/TwoIsland_CapeBrink/scripts.inc @@ -0,0 +1,2 @@ +TwoIsland_CapeBrink_MapScripts:: @ 8168775 + .byte 0 diff --git a/data/maps/TwoIsland_CapeBrink_House/map.json b/data/maps/TwoIsland_CapeBrink_House/map.json new file mode 100644 index 000000000..12c9ff372 --- /dev/null +++ b/data/maps/TwoIsland_CapeBrink_House/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_TWO_ISLAND_CAPE_BRINK_HOUSE", + "name": "TwoIsland_CapeBrink_House", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_CAPE_BRINK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "58", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_CapeBrink_House_EventScript_1C4DEC", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND_CAPE_BRINK", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_CapeBrink_House/scripts.inc b/data/maps/TwoIsland_CapeBrink_House/scripts.inc new file mode 100644 index 000000000..efba30945 --- /dev/null +++ b/data/maps/TwoIsland_CapeBrink_House/scripts.inc @@ -0,0 +1,2 @@ +TwoIsland_CapeBrink_House_MapScripts:: @ 817206B + .byte 0 diff --git a/data/maps/TwoIsland_Harbor/map.json b/data/maps/TwoIsland_Harbor/map.json new file mode 100644 index 000000000..29fe94fc7 --- /dev/null +++ b/data/maps/TwoIsland_Harbor/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_TWO_ISLAND_HARBOR", + "name": "TwoIsland_Harbor", + "layout": "LAYOUT_ISLAND_HARBOR", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "108", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_Harbor_EventScript_171806", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_Harbor/scripts.inc b/data/maps/TwoIsland_Harbor/scripts.inc new file mode 100644 index 000000000..0fd4e9789 --- /dev/null +++ b/data/maps/TwoIsland_Harbor/scripts.inc @@ -0,0 +1,11 @@ +TwoIsland_Harbor_MapScripts:: @ 8171805 + .byte 0 + +TwoIsland_Harbor_EventScript_171806:: @ 8171806 + lock + faceplayer + message Text_181726 + waitmessage + setvar VAR_0x8004, 2 + goto EventScript_1A8F54 + end diff --git a/data/maps/TwoIsland_House/map.json b/data/maps/TwoIsland_House/map.json new file mode 100644 index 000000000..9289eb6b1 --- /dev/null +++ b/data/maps/TwoIsland_House/map.json @@ -0,0 +1,41 @@ +{ + "id": "MAP_TWO_ISLAND_HOUSE", + "name": "TwoIsland_House", + "layout": "LAYOUT_HOUSE3", + "music": "BGM_FRLG_ISLAND_ONE", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "27", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_House_EventScript_171619", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_House/scripts.inc b/data/maps/TwoIsland_House/scripts.inc new file mode 100644 index 000000000..0f940dd39 --- /dev/null +++ b/data/maps/TwoIsland_House/scripts.inc @@ -0,0 +1,132 @@ +TwoIsland_House_MapScripts:: @ 8171618 + .byte 0 + +TwoIsland_House_EventScript_171619:: @ 8171619 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + lock + faceplayer + clearflag FLAG_0x002 + clearflag FLAG_0x003 + clearflag FLAG_0x004 + checkflag FLAG_0x001 + goto_if_eq EventScript_17164F + msgbox gUnknown_81A2B88 + setflag FLAG_0x001 + goto EventScript_17164F + end + +EventScript_17164F:: @ 817164F + checkitem ITEM_BIG_MUSHROOM, 1 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_1717A8 + checkitem ITEM_TINY_MUSHROOM, 2 + compare_var_to_value VAR_RESULT, 1 + call_if 1, EventScript_1717AC + checkflag FLAG_0x002 + goto_if_eq EventScript_171687 + checkflag FLAG_0x003 + goto_if_eq EventScript_171696 + goto EventScript_17179E + end + +EventScript_171687:: @ 8171687 + checkflag FLAG_0x003 + call_if 1, EventScript_1717B0 + goto EventScript_1716A5 + end + +EventScript_171696:: @ 8171696 + checkflag FLAG_0x002 + call_if 1, EventScript_1717B0 + goto EventScript_1716A5 + end + +EventScript_1716A5:: @ 81716A5 + msgbox gUnknown_81A2C63, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_17179E + goto EventScript_1716BE + end + +EventScript_1716BE:: @ 81716BE + msgbox gUnknown_81A2CC3 + special sub_80BF93C + waitstate + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_17179E + special sub_80BFC14 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_171790 + compare_var_to_value VAR_0x8005, 0 + goto_if_eq EventScript_171782 + goto EventScript_1716F4 + end + +EventScript_1716F4:: @ 81716F4 + msgbox gUnknown_81A2CE1 + special sub_80E4634 + waitstate + compare_var_to_value VAR_0x8004, 0 + goto_if_eq EventScript_1716BE + checkflag FLAG_0x004 + goto_if_eq EventScript_17175B + checkflag FLAG_0x002 + goto_if_eq EventScript_171727 + checkflag FLAG_0x003 + goto_if_eq EventScript_171741 + end + +EventScript_171727:: @ 8171727 + removeitem ITEM_BIG_MUSHROOM, 1 + textcolor 3 + msgbox gUnknown_81A2DB3 + call EventScript_1A6675 + goto EventScript_17179E + end + +EventScript_171741:: @ 8171741 + removeitem ITEM_TINY_MUSHROOM, 2 + textcolor 3 + msgbox gUnknown_81A2D85 + call EventScript_1A6675 + goto EventScript_17179E + end + +EventScript_17175B:: @ 817175B + message Text_1A2D43 + waitmessage + multichoice 0, 0, 51, 1 + switch VAR_RESULT + case 0, EventScript_171741 + case 1, EventScript_171727 + end + +EventScript_171782:: @ 8171782 + msgbox gUnknown_81A2CFC + goto EventScript_1716BE + end + +EventScript_171790:: @ 8171790 + msgbox gUnknown_81A2E20 + goto EventScript_1716BE + end + +EventScript_17179E:: @ 817179E + msgbox gUnknown_81A2DE0 + release + end + +EventScript_1717A8:: @ 81717A8 + setflag FLAG_0x002 + return + +EventScript_1717AC:: @ 81717AC + setflag FLAG_0x003 + return + +EventScript_1717B0:: @ 81717B0 + setflag FLAG_0x004 + return diff --git a/data/maps/TwoIsland_House/text.inc b/data/maps/TwoIsland_House/text.inc new file mode 100644 index 000000000..0f0aeda5e --- /dev/null +++ b/data/maps/TwoIsland_House/text.inc @@ -0,0 +1,47 @@ +gUnknown_81A2B88:: @ 81A2B88 + .string "I'm the POKéMON MOVE MANIAC.\p" + .string "I know every single move that\n" + .string "POKéMON learn growing up.\p" + .string "I'm also a mushroom maniac.\p" + .string "Bring me two TINYMUSHROOMS,\n" + .string "or one BIG MUSHROOM.\p" + .string "If you do that for me, I'll teach\n" + .string "a move to one POKéMON.$" + +gUnknown_81A2C63:: @ 81A2C63 + .string "Sniff, sniff…\n" + .string "Hm! You smell of MUSHROOMS!\p" + .string "Do you want me to teach a move\n" + .string "to a POKéMON of yours?$" + +gUnknown_81A2CC3:: @ 81A2CC3 + .string "Which POKéMON needs tutoring?$" + +gUnknown_81A2CE1:: @ 81A2CE1 + .string "Which move should I teach?$" + +gUnknown_81A2CFC:: @ 81A2CFC + .string "Sorry…\p" + .string "It doesn't appear as if I have a\n" + .string "move I can teach that POKéMON.$" + +Text_1A2D43:: @ 81A2D43 + .string "Then, I'll need a MUSHROOM or two.\n" + .string "What are you going to give me?$" + +gUnknown_81A2D85:: @ 81A2D85 + .string "{PLAYER} handed over two\n" + .string "TINYMUSHROOMS in exchange.$" + +gUnknown_81A2DB3:: @ 81A2DB3 + .string "{PLAYER} handed over one\n" + .string "BIG MUSHROOM in exchange.$" + +gUnknown_81A2DE0:: @ 81A2DE0 + .string "If your POKéMON need to learn a\n" + .string "move, I need a MUSHROOM or two.$" + +gUnknown_81A2E20:: @ 81A2E20 + .string "Hunh? There isn't a single move\n" + .string "that I can teach an EGG.$" + diff --git a/data/maps/TwoIsland_JoyfulGameCorner/map.json b/data/maps/TwoIsland_JoyfulGameCorner/map.json new file mode 100644 index 000000000..1017feaef --- /dev/null +++ b/data/maps/TwoIsland_JoyfulGameCorner/map.json @@ -0,0 +1,95 @@ +{ + "id": "MAP_TWO_ISLAND_JOYFUL_GAME_CORNER", + "name": "TwoIsland_JoyfulGameCorner", + "layout": "LAYOUT_TWO_ISLAND_JOYFUL_GAME_CORNER", + "music": "BGM_FRLG_GAMECORNER", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 5, + "y": 5, + "elevation": 1, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_JoyfulGameCorner_EventScript_17155F", + "flag": "0" + }, + { + "graphics_id": "53", + "x": 5, + "y": 8, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "116" + }, + { + "graphics_id": "17", + "x": 6, + "y": 5, + "elevation": 1, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_JoyfulGameCorner_EventScript_17160C", + "flag": "117" + }, + { + "graphics_id": "25", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_JoyfulGameCorner_EventScript_171535", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 1, + "y": 1, + "elevation": 0, + "script": "TwoIsland_JoyfulGameCorner_EventScript_1BC2E7" + }, + { + "type": "bg_event_type_0", + "x": 0, + "y": 1, + "elevation": 0, + "script": "TwoIsland_JoyfulGameCorner_EventScript_1BC2FC" + } + ] +} diff --git a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc new file mode 100644 index 000000000..f478de107 --- /dev/null +++ b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc @@ -0,0 +1,196 @@ +TwoIsland_JoyfulGameCorner_MapScripts:: @ 81713D0 + map_script 3, TwoIsland_JoyfulGameCorner_MapScript1_1713E5 + map_script 4, TwoIsland_JoyfulGameCorner_MapScript2_171404 + map_script 2, TwoIsland_JoyfulGameCorner_MapScript3_17141B + map_script 1, TwoIsland_JoyfulGameCorner_MapScript4_1BB237 + .byte 0 + +TwoIsland_JoyfulGameCorner_MapScript1_1713E5:: @ 81713E5 + checkflag FLAG_0x2FB + call_if 1, EventScript_1713EF + end + +EventScript_1713EF:: @ 81713EF + setobjectxyperm 1, 6, 2 + setobjectmovementtype 1, 8 + setobjectmovementtype 3, 1 + setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 4 + return + +TwoIsland_JoyfulGameCorner_MapScript2_171404:: @ 8171404 + map_script_2 VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 2, EventScript_171416 + map_script_2 VAR_0x406F, 8, EventScript_1BB227 + .2byte 0 + +EventScript_171416:: @ 8171416 + turnobject 255, 2 + end + +TwoIsland_JoyfulGameCorner_MapScript3_17141B:: @ 817141B + map_script_2 VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 0, EventScript_17145F + map_script_2 VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 2, EventScript_171435 + map_script_2 VAR_0x406F, 8, EventScript_1BB2FD + .2byte 0 + +EventScript_171435:: @ 8171435 + lockall + textcolor 0 + msgbox gUnknown_81A28B2 + textcolor 1 + special sub_80CA6DC + msgbox gUnknown_81A2931 + closemessage + applymovement 3, Movement_1A75ED + waitmovement 0 + setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 3 + releaseall + end + +EventScript_17145F:: @ 817145F + lockall + textcolor 0 + applymovement 1, Movement_171520 + waitmovement 0 + msgbox gUnknown_81A2408 + closemessage + applymovement 1, Movement_1A75ED + waitmovement 0 + playse SE_PIN + applymovement 1, Movement_1A75DB + waitmovement 0 + applymovement 1, Movement_1A75DD + waitmovement 0 + applymovement 1, Movement_171527 + waitmovement 0 + applymovement 255, Movement_1A75EB + waitmovement 0 + msgbox gUnknown_81A2465 + closemessage + playse SE_DOOR + waitse + applymovement 255, Movement_17152C + waitmovement 0 + playbgm BGM_FRLG_BOY_EYE, 0 + addobject 2 + applymovement 2, Movement_17152F + waitmovement 0 + msgbox gUnknown_81A259A + applymovement 2, Movement_1A75EB + waitmovement 0 + msgbox gUnknown_81A2658 + msgbox gUnknown_81A26D5 + closemessage + applymovement 2, Movement_1A75ED + waitmovement 0 + playse SE_KAIDAN + removeobject 2 + fadedefaultbgm + delay 60 + msgbox gUnknown_81A270C + clearflag FLAG_0x091 + setvar VAR_0x407B, 2 + setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 1 + releaseall + end + +Movement_171520:: @ 8171520 + step_12 + step_13 + step_13 + step_1b + step_2e + step_1c + step_end + +Movement_171527:: @ 8171527 + step_10 + step_10 + step_10 + step_2f + step_end + +Movement_17152C:: @ 817152C + step_12 + step_30 + step_end + +Movement_17152F:: @ 817152F + step_2f + step_1b + step_30 + step_1b + step_2e + step_end + +TwoIsland_JoyfulGameCorner_EventScript_171535:: @ 8171535 + lock + faceplayer + compare_var_to_value VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 4 + goto_if_eq EventScript_1BC060 + checkflag FLAG_0x2A3 + goto_if_eq EventScript_171555 + msgbox gUnknown_81A285C + release + end + +EventScript_171555:: @ 8171555 + msgbox gUnknown_81A288A + release + end + +TwoIsland_JoyfulGameCorner_EventScript_17155F:: @ 817155F + lock + faceplayer + compare_var_to_value VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 4 + goto_if_eq EventScript_1BC0CE + checkflag FLAG_0x2FB + goto_if_eq EventScript_1715F5 + compare_var_to_value VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 3 + goto_if_eq EventScript_17158A + msgbox gUnknown_81A2743 + release + end + +EventScript_17158A:: @ 817158A + checkflag FLAG_0x2FE + goto_if_eq EventScript_1715C4 + msgbox gUnknown_81A296A + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 2 + textcolor 3 + playfanfare MUS_ME_WAZA + message Text_1A29F7 + waitmessage + waitfanfare + call EventScript_1A6675 + removeitem ITEM_METEORITE, 1 + msgbox gUnknown_81A2A24 + goto EventScript_1715C4 + end + +EventScript_1715C4:: @ 81715C4 + checkitemspace ITEM_MOON_STONE, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1715FF + additem ITEM_MOON_STONE, 1 + setflag FLAG_0x2FB + giveitemfanfaremsg gUnknown_81A2A9A, ITEM_MOON_STONE + release + end + +EventScript_1715F5:: @ 81715F5 + msgbox gUnknown_81A2AF5 + release + end + +EventScript_1715FF:: @ 81715FF + setflag FLAG_0x2FE + msgbox gUnknown_81A2ACA + release + end + +TwoIsland_JoyfulGameCorner_EventScript_17160C:: @ 817160C + lock + faceplayer + msgbox gUnknown_81A2B53 + release + end diff --git a/data/maps/TwoIsland_JoyfulGameCorner/text.inc b/data/maps/TwoIsland_JoyfulGameCorner/text.inc new file mode 100644 index 000000000..21f6dd8ec --- /dev/null +++ b/data/maps/TwoIsland_JoyfulGameCorner/text.inc @@ -0,0 +1,113 @@ +gUnknown_81A2408:: @ 81A2408 + .string "Now, where's LOSTELLE gotten to\n" + .string "today?\p" + .string "She always brings me lunch every\n" + .string "day right about now…$" + +gUnknown_81A2465:: @ 81A2465 + .string "Hm? You, there!\n" + .string "Are you a friend of LOSTELLE's?\p" + .string "Have you seen LOSTELLE around?\n" + .string "I don't know where she might be.\l" + .string "She should've been here long ago.\p" + .string "LOSTELLE's a cutie - she got my\n" + .string "looks - so what if someone…\p" + .string "What if something's happened to\n" + .string "my LOSTELLE?!\p" + .string "Please, help me find her!\n" + .string "Please go search THREE ISLAND!$" + +gUnknown_81A259A:: @ 81A259A + .string "Hah? What is this GAME CORNER?\n" + .string "How much sadder can this get?\p" + .string "Those clowns…\p" + .string "They said they'd be waiting on the\n" + .string "island, so where are they?\p" + .string "Hey, you! Is this the only THREE\n" + .string "ISLAND around here?$" + +gUnknown_81A2658:: @ 81A2658 + .string "Try waking up before you crawl out\n" + .string "of bed, you punk.\p" + .string "This is TWO ISLAND!\p" + .string "Move it! Get your filthy motorbike\n" + .string "out of my place!$" + +gUnknown_81A26D5:: @ 81A26D5 + .string "Huh…\n" + .string "Oh, oh, gotcha.\p" + .string "Tch…\n" + .string "These islands are confusing…$" + +gUnknown_81A270C:: @ 81A270C + .string "Would you look at that?\n" + .string "That punk scuffed up my floor.$" + +gUnknown_81A2743:: @ 81A2743 + .string "Hey, but listen! I'm begging you,\n" + .string "you have to go to THREE ISLAND.\p" + .string "If anything were to happen to my\n" + .string "LOSTELLE…\p" + .string "My place is the house with the red\n" + .string "roof on THREE ISLAND.\p" + .string "She may just show up late here,\n" + .string "so I can't run off anywhere.\p" + .string "That's why I have to get you to do\n" + .string "me this big favor.$" + +gUnknown_81A285C:: @ 81A285C + .string "I'm sorry.\n" + .string "We're not running any games today.$" + +gUnknown_81A288A:: @ 81A288A + .string "We'll get the games going soon\n" + .string "for you!$" + +gUnknown_81A28B2:: @ 81A28B2 + .string "So you rescued LOSTELLE?\n" + .string "How can I thank you?\p" + .string "LOSTELLE, darling, forgive me!\p" + .string "Daddy didn't know you were scared\n" + .string "and in trouble!$" + +gUnknown_81A2931:: @ 81A2931 + .string "LOSTELLE: It's okay, Daddy.\n" + .string "I got to be friends with {PLAYER}!$" + +gUnknown_81A296A:: @ 81A296A + .string "Oh, what's that?\n" + .string "You're saying that this is for me?\p" + .string "How did you know that I love rare\n" + .string "rocks and gems?\p" + .string "You sure know how to make a guy\n" + .string "happy.$" + +Text_1A29F7:: @ 81A29F7 + .string "{PLAYER} handed the METEORITE\n" + .string "to LOSTELLE's daddy.$" + +gUnknown_81A2A24:: @ 81A2A24 + .string "Oh, I see, this is from BILL!\n" + .string "You have to thank him for me!\p" + .string "You know, you've been fantastic.\n" + .string "I want you to have this.$" + +gUnknown_81A2A9A:: @ 81A2A9A + .string "{PLAYER} received a MOON STONE\n" + .string "from LOSTELLE's daddy.$" + +gUnknown_81A2ACA:: @ 81A2ACA + .string "Your BAG's not going to fit another\n" + .string "thing…$" + +gUnknown_81A2AF5:: @ 81A2AF5 + .string "All right, I'll get the GAME CORNER\n" + .string "running right away.\p" + .string "You have to come visit with a\n" + .string "friend.$" + +gUnknown_81A2B53:: @ 81A2B53 + .string "Listen, listen!\p" + .string "Please show me you being cool\n" + .string "again!$" + diff --git a/data/maps/TwoIsland_PokemonCenter_1F/map.json b/data/maps/TwoIsland_PokemonCenter_1F/map.json new file mode 100644 index 000000000..f9bb96a3d --- /dev/null +++ b/data/maps/TwoIsland_PokemonCenter_1F/map.json @@ -0,0 +1,74 @@ +{ + "id": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", + "name": "TwoIsland_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_PokemonCenter_1F_EventScript_1717C3", + "flag": "0" + }, + { + "graphics_id": "51", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_PokemonCenter_1F_EventScript_1717CC", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_PokemonCenter_1F_EventScript_1717D5", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND", + "dest_warp_id": 2 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_PokemonCenter_1F/scripts.inc b/data/maps/TwoIsland_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..813b5d595 --- /dev/null +++ b/data/maps/TwoIsland_PokemonCenter_1F/scripts.inc @@ -0,0 +1,23 @@ +TwoIsland_PokemonCenter_1F_MapScripts:: @ 81717B4 + map_script 3, TwoIsland_PokemonCenter_1F_MapScript1_1717BF + map_script 5, TwoIsland_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +TwoIsland_PokemonCenter_1F_MapScript1_1717BF:: @ 81717BF + setrespawn SPAWN_TWO_ISLAND + end + +TwoIsland_PokemonCenter_1F_EventScript_1717C3:: @ 81717C3 + lock + faceplayer + call EventScript_1A6578 + release + end + +TwoIsland_PokemonCenter_1F_EventScript_1717CC:: @ 81717CC + msgbox gUnknown_81A2E59, 2 + end + +TwoIsland_PokemonCenter_1F_EventScript_1717D5:: @ 81717D5 + msgbox gUnknown_81A2EBE, 2 + end diff --git a/data/maps/TwoIsland_PokemonCenter_1F/text.inc b/data/maps/TwoIsland_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..514825cdf --- /dev/null +++ b/data/maps/TwoIsland_PokemonCenter_1F/text.inc @@ -0,0 +1,14 @@ +gUnknown_81A2E59:: @ 81A2E59 + .string "Have you visited the GAME CORNER\n" + .string "already?\p" + .string "It's no good to go alone.\n" + .string "You have to take a friend along.$" + +gUnknown_81A2EBE:: @ 81A2EBE + .string "Not many people live on\n" + .string "TWO ISLAND.\p" + .string "There is this old lady who lives\n" + .string "out on the cape.\p" + .string "She's been there since I don't know\n" + .string "when.$" + diff --git a/data/maps/TwoIsland_PokemonCenter_2F/map.json b/data/maps/TwoIsland_PokemonCenter_2F/map.json new file mode 100644 index 000000000..719f84889 --- /dev/null +++ b/data/maps/TwoIsland_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_TWO_ISLAND_POKEMON_CENTER_2F", + "name": "TwoIsland_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "TwoIsland_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_PokemonCenter_2F/scripts.inc b/data/maps/TwoIsland_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..01954808c --- /dev/null +++ b/data/maps/TwoIsland_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +TwoIsland_PokemonCenter_2F_MapScripts:: @ 81717DE + map_script 2, TwoIsland_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, TwoIsland_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, TwoIsland_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, TwoIsland_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +TwoIsland_PokemonCenter_2F_EventScript_1717F3:: @ 81717F3 + call EventScript_1BB4A3 + end + +EventScript_1717F9:: @ 81717F9 + call EventScript_1BB6AB + end + +EventScript_1717FF:: @ 81717FF + call EventScript_1BB7DE + end diff --git a/data/maps/UndergroundPath_EastEntrance/map.json b/data/maps/UndergroundPath_EastEntrance/map.json new file mode 100644 index 000000000..0b2af8aab --- /dev/null +++ b/data/maps/UndergroundPath_EastEntrance/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", + "name": "UndergroundPath_EastEntrance", + "layout": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_UNDERGROUND_PATH_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "28", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UndergroundPath_EastEntrance_EventScript_160EDE", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UndergroundPath_EastEntrance/scripts.inc b/data/maps/UndergroundPath_EastEntrance/scripts.inc new file mode 100644 index 000000000..31ee9f7af --- /dev/null +++ b/data/maps/UndergroundPath_EastEntrance/scripts.inc @@ -0,0 +1,6 @@ +UndergroundPath_EastEntrance_MapScripts:: @ 8160EDD + .byte 0 + +UndergroundPath_EastEntrance_EventScript_160EDE:: @ 8160EDE + msgbox gUnknown_81745D9, 2 + end diff --git a/data/maps/UndergroundPath_EastEntrance/text.inc b/data/maps/UndergroundPath_EastEntrance/text.inc new file mode 100644 index 000000000..f44fb5a21 --- /dev/null +++ b/data/maps/UndergroundPath_EastEntrance/text.inc @@ -0,0 +1,5 @@ +gUnknown_81745D9:: @ 81745D9 + .string "The DEPARTMENT STORE in CELADON\n" + .string "has a great selection.\p" + .string "Do you go there very often?$" + diff --git a/data/maps/UndergroundPath_EastWestTunnel/map.json b/data/maps/UndergroundPath_EastWestTunnel/map.json new file mode 100644 index 000000000..8797f8e3f --- /dev/null +++ b/data/maps/UndergroundPath_EastWestTunnel/map.json @@ -0,0 +1,98 @@ +{ + "id": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "name": "UndergroundPath_EastWestTunnel", + "layout": "LAYOUT_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "music": "BGM_FRLG_ROUTE_1", + "region_map_section": "MAPSEC_UNDERGROUND_PATH_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 76, + "y": 3, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", + "dest_warp_id": 3 + }, + { + "x": 3, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 7, + "y": 3, + "elevation": 3, + "item": "ITEM_POTION", + "flag": "77", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 17, + "y": 5, + "elevation": 3, + "item": "ITEM_PARALYZE_HEAL", + "flag": "79", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 31, + "y": 4, + "elevation": 3, + "item": "ITEM_AWAKENING", + "flag": "80", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 45, + "y": 3, + "elevation": 3, + "item": "ITEM_BURN_HEAL", + "flag": "81", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 70, + "y": 3, + "elevation": 3, + "item": "ITEM_ICE_HEAL", + "flag": "82", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 55, + "y": 2, + "elevation": 3, + "item": "ITEM_ETHER", + "flag": "83", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 62, + "y": 5, + "elevation": 3, + "item": "ITEM_ANTIDOTE", + "flag": "78", + "unknown": 1 + } + ] +} diff --git a/data/maps/UndergroundPath_EastWestTunnel/scripts.inc b/data/maps/UndergroundPath_EastWestTunnel/scripts.inc new file mode 100644 index 000000000..9137a8ad1 --- /dev/null +++ b/data/maps/UndergroundPath_EastWestTunnel/scripts.inc @@ -0,0 +1,7 @@ +UndergroundPath_EastWestTunnel_MapScripts:: @ 8160ED3 + map_script 3, UndergroundPath_EastWestTunnel_MapScript1_160ED9 + .byte 0 + +UndergroundPath_EastWestTunnel_MapScript1_160ED9:: @ 8160ED9 + setworldmapflag FLAG_WORLD_MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL + end diff --git a/data/maps/UndergroundPath_NorthEntrance/map.json b/data/maps/UndergroundPath_NorthEntrance/map.json new file mode 100644 index 000000000..36ce0da5c --- /dev/null +++ b/data/maps/UndergroundPath_NorthEntrance/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", + "name": "UndergroundPath_NorthEntrance", + "layout": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_UNDERGROUND_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "17", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UndergroundPath_NorthEntrance_EventScript_160E39", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UndergroundPath_NorthEntrance/scripts.inc b/data/maps/UndergroundPath_NorthEntrance/scripts.inc new file mode 100644 index 000000000..a88b1a55c --- /dev/null +++ b/data/maps/UndergroundPath_NorthEntrance/scripts.inc @@ -0,0 +1,40 @@ +UndergroundPath_NorthEntrance_MapScripts:: @ 8160E38 + .byte 0 + +UndergroundPath_NorthEntrance_EventScript_160E39:: @ 8160E39 + lock + faceplayer + setvar VAR_0x8008, 2 + call EventScript_1A8CAD + checkflag FLAG_0x24B + goto_if_eq EventScript_160EAB + msgbox gUnknown_81A5AD6, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_160E93 + call EventScript_1A8CBD + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_160E93 + call EventScript_1A8CC9 + compare_var_to_var VAR_RESULT, VAR_0x8009 + goto_if 5, EventScript_160E9D + call EventScript_1A8CD9 + msgbox gUnknown_81A5B4A + setflag FLAG_0x24B + release + end + +EventScript_160E93:: @ 8160E93 + msgbox gUnknown_81A5B08 + release + end + +EventScript_160E9D:: @ 8160E9D + getspeciesname 0, VAR_0x8009 + msgbox gUnknown_81A5B18 + release + end + +EventScript_160EAB:: @ 8160EAB + msgbox gUnknown_81A5B60 + release + end diff --git a/data/maps/UndergroundPath_NorthSouthTunnel/map.json b/data/maps/UndergroundPath_NorthSouthTunnel/map.json new file mode 100644 index 000000000..238b408ea --- /dev/null +++ b/data/maps/UndergroundPath_NorthSouthTunnel/map.json @@ -0,0 +1,98 @@ +{ + "id": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "name": "UndergroundPath_NorthSouthTunnel", + "layout": "LAYOUT_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "music": "BGM_FRLG_ROUTE_1", + "region_map_section": "MAPSEC_UNDERGROUND_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 3, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", + "dest_warp_id": 3 + }, + { + "x": 3, + "y": 60, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 5, + "y": 30, + "elevation": 3, + "item": "ITEM_POTION", + "flag": "70", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 5, + "y": 6, + "elevation": 3, + "item": "ITEM_ANTIDOTE", + "flag": "71", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 2, + "y": 57, + "elevation": 3, + "item": "ITEM_BURN_HEAL", + "flag": "74", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 1, + "y": 24, + "elevation": 3, + "item": "ITEM_AWAKENING", + "flag": "73", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 6, + "y": 53, + "elevation": 3, + "item": "ITEM_ICE_HEAL", + "flag": "75", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 3, + "y": 15, + "elevation": 3, + "item": "ITEM_PARALYZE_HEAL", + "flag": "72", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 3, + "y": 39, + "elevation": 3, + "item": "ITEM_ETHER", + "flag": "76", + "unknown": 1 + } + ] +} diff --git a/data/maps/UndergroundPath_NorthSouthTunnel/scripts.inc b/data/maps/UndergroundPath_NorthSouthTunnel/scripts.inc new file mode 100644 index 000000000..408a60fee --- /dev/null +++ b/data/maps/UndergroundPath_NorthSouthTunnel/scripts.inc @@ -0,0 +1,7 @@ +UndergroundPath_NorthSouthTunnel_MapScripts:: @ 8160EB5 + map_script 3, UndergroundPath_NorthSouthTunnel_MapScript1_160EBB + .byte 0 + +UndergroundPath_NorthSouthTunnel_MapScript1_160EBB:: @ 8160EBB + setworldmapflag FLAG_WORLD_MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL + end diff --git a/data/maps/UndergroundPath_SouthEntrance/map.json b/data/maps/UndergroundPath_SouthEntrance/map.json new file mode 100644 index 000000000..5e48882a8 --- /dev/null +++ b/data/maps/UndergroundPath_SouthEntrance/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", + "name": "UndergroundPath_SouthEntrance", + "layout": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_UNDERGROUND_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "28", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UndergroundPath_SouthEntrance_EventScript_160EC0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UndergroundPath_SouthEntrance/scripts.inc b/data/maps/UndergroundPath_SouthEntrance/scripts.inc new file mode 100644 index 000000000..1e3d2e6e3 --- /dev/null +++ b/data/maps/UndergroundPath_SouthEntrance/scripts.inc @@ -0,0 +1,6 @@ +UndergroundPath_SouthEntrance_MapScripts:: @ 8160EBF + .byte 0 + +UndergroundPath_SouthEntrance_EventScript_160EC0:: @ 8160EC0 + msgbox gUnknown_8174559, 2 + end diff --git a/data/maps/UndergroundPath_SouthEntrance/text.inc b/data/maps/UndergroundPath_SouthEntrance/text.inc new file mode 100644 index 000000000..07e9c0368 --- /dev/null +++ b/data/maps/UndergroundPath_SouthEntrance/text.inc @@ -0,0 +1,4 @@ +gUnknown_8174559:: @ 8174559 + .string "People often lose things in the\n" + .string "darkness of the UNDERGROUND PATH.$" + diff --git a/data/maps/UndergroundPath_WestEntrance/map.json b/data/maps/UndergroundPath_WestEntrance/map.json new file mode 100644 index 000000000..54a036c06 --- /dev/null +++ b/data/maps/UndergroundPath_WestEntrance/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", + "name": "UndergroundPath_WestEntrance", + "layout": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_UNDERGROUND_PATH_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UndergroundPath_WestEntrance_EventScript_160ECA", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": 0 + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UndergroundPath_WestEntrance/scripts.inc b/data/maps/UndergroundPath_WestEntrance/scripts.inc new file mode 100644 index 000000000..f56217bce --- /dev/null +++ b/data/maps/UndergroundPath_WestEntrance/scripts.inc @@ -0,0 +1,6 @@ +UndergroundPath_WestEntrance_MapScripts:: @ 8160EC9 + .byte 0 + +UndergroundPath_WestEntrance_EventScript_160ECA:: @ 8160ECA + msgbox gUnknown_817459B, 2 + end diff --git a/data/maps/UndergroundPath_WestEntrance/text.inc b/data/maps/UndergroundPath_WestEntrance/text.inc new file mode 100644 index 000000000..5447a5206 --- /dev/null +++ b/data/maps/UndergroundPath_WestEntrance/text.inc @@ -0,0 +1,4 @@ +gUnknown_817459B:: @ 817459B + .string "I heard a sleepy POKéMON appeared\n" + .string "out near CELADON CITY, too.$" + diff --git a/data/maps/UnknownMap_00_00/map.json b/data/maps/UnknownMap_00_00/map.json new file mode 100644 index 000000000..edf3c52b7 --- /dev/null +++ b/data/maps/UnknownMap_00_00/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_UNKNOWN_MAP_00_00", + "name": "UnknownMap_00_00", + "layout": "LAYOUT_UNKNOWN_MAP_00_00", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_8", + "connections": null, + "object_events": [ + { + "graphics_id": "66", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_00_EventScript_1BB9AF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 3, + "y": 5, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_00_EventScript_1BB8C3" + }, + { + "type": "trigger", + "x": 10, + "y": 5, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_00_EventScript_1BB8CF" + } + ], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_00_00/scripts.inc b/data/maps/UnknownMap_00_00/scripts.inc new file mode 100644 index 000000000..bd155a889 --- /dev/null +++ b/data/maps/UnknownMap_00_00/scripts.inc @@ -0,0 +1,2 @@ +UnknownMap_00_00_MapScripts:: @ 8160478 + .byte 0 diff --git a/data/maps/UnknownMap_00_01/map.json b/data/maps/UnknownMap_00_01/map.json new file mode 100644 index 000000000..ad1ec4084 --- /dev/null +++ b/data/maps/UnknownMap_00_01/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_UNKNOWN_MAP_00_01", + "name": "UnknownMap_00_01", + "layout": "LAYOUT_UNKNOWN_MAP_00_01", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "66", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_01_EventScript_1BB9C1", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 4, + "y": 5, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_01_EventScript_1BB950" + }, + { + "type": "trigger", + "x": 7, + "y": 5, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_01_EventScript_1BB95C" + } + ], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_00_01/scripts.inc b/data/maps/UnknownMap_00_01/scripts.inc new file mode 100644 index 000000000..0c05ea80d --- /dev/null +++ b/data/maps/UnknownMap_00_01/scripts.inc @@ -0,0 +1,2 @@ +UnknownMap_00_01_MapScripts:: @ 8160479 + .byte 0 diff --git a/data/maps/UnknownMap_00_02/map.json b/data/maps/UnknownMap_00_02/map.json new file mode 100644 index 000000000..76294433e --- /dev/null +++ b/data/maps/UnknownMap_00_02/map.json @@ -0,0 +1,99 @@ +{ + "id": "MAP_UNKNOWN_MAP_00_02", + "name": "UnknownMap_00_02", + "layout": "LAYOUT_UNKNOWN_MAP_00_02", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "66", + "x": 10, + "y": 5, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_02_EventScript_1BB9D3", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 9, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 9, + "y": 9, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 11, + "y": 9, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 6, + "y": 4, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_02_EventScript_1BB980" + }, + { + "type": "trigger", + "x": 6, + "y": 6, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_02_EventScript_1BB980" + }, + { + "type": "trigger", + "x": 13, + "y": 4, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_02_EventScript_1BB980" + }, + { + "type": "trigger", + "x": 13, + "y": 6, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_02_EventScript_1BB980" + } + ], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_00_02/scripts.inc b/data/maps/UnknownMap_00_02/scripts.inc new file mode 100644 index 000000000..d12ac4304 --- /dev/null +++ b/data/maps/UnknownMap_00_02/scripts.inc @@ -0,0 +1,2 @@ +UnknownMap_00_02_MapScripts:: @ 816047A + .byte 0 diff --git a/data/maps/UnknownMap_00_03/map.json b/data/maps/UnknownMap_00_03/map.json new file mode 100644 index 000000000..05301e782 --- /dev/null +++ b/data/maps/UnknownMap_00_03/map.json @@ -0,0 +1,85 @@ +{ + "id": "MAP_UNKNOWN_MAP_00_03", + "name": "UnknownMap_00_03", + "layout": "LAYOUT_UNKNOWN_MAP_00_03", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_8", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 3, + "y": 4, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_03_EventScript_1BB8DB" + }, + { + "type": "trigger", + "x": 3, + "y": 6, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_03_EventScript_1BB915" + }, + { + "type": "trigger", + "x": 10, + "y": 4, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_03_EventScript_1BB8F8" + }, + { + "type": "trigger", + "x": 10, + "y": 6, + "elevation": 3, + "var": "VAR_0x4000", + "var_value": 0, + "script": "UnknownMap_00_03_EventScript_1BB932" + } + ], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_00_03/scripts.inc b/data/maps/UnknownMap_00_03/scripts.inc new file mode 100644 index 000000000..60c25bf54 --- /dev/null +++ b/data/maps/UnknownMap_00_03/scripts.inc @@ -0,0 +1,2 @@ +UnknownMap_00_03_MapScripts:: @ 816047B + .byte 0 diff --git a/data/maps/UnknownMap_00_04/map.json b/data/maps/UnknownMap_00_04/map.json new file mode 100644 index 000000000..851ad7f1d --- /dev/null +++ b/data/maps/UnknownMap_00_04/map.json @@ -0,0 +1,145 @@ +{ + "id": "MAP_UNKNOWN_MAP_00_04", + "name": "UnknownMap_00_04", + "layout": "LAYOUT_UNKNOWN_MAP_00_04", + "music": "BGM_FRLG_UNION_ROOM", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_8", + "connections": null, + "object_events": [ + { + "graphics_id": "66", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_04_EventScript_16050C", + "flag": "0" + }, + { + "graphics_id": "243", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_04_EventScript_1604DA", + "flag": "102" + }, + { + "graphics_id": "247", + "x": 7, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_04_EventScript_160502", + "flag": "106" + }, + { + "graphics_id": "246", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_04_EventScript_1604F8", + "flag": "105" + }, + { + "graphics_id": "245", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_04_EventScript_1604EE", + "flag": "104" + }, + { + "graphics_id": "244", + "x": 13, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_04_EventScript_1604E4", + "flag": "103" + }, + { + "graphics_id": "242", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_04_EventScript_1604D0", + "flag": "101" + }, + { + "graphics_id": "241", + "x": 13, + "y": 8, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_04_EventScript_1604C6", + "flag": "100" + }, + { + "graphics_id": "240", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "UnknownMap_00_04_EventScript_1604BC", + "flag": "99" + } + ], + "warp_events": [ + { + "x": 7, + "y": 11, + "elevation": 3, + "dest_map": "MAP_NONE", + "dest_warp_id": 127 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_00_04/scripts.inc b/data/maps/UnknownMap_00_04/scripts.inc new file mode 100644 index 000000000..94056b155 --- /dev/null +++ b/data/maps/UnknownMap_00_04/scripts.inc @@ -0,0 +1,106 @@ +UnknownMap_00_04_MapScripts:: @ 816047C + map_script 5, UnknownMap_00_04_MapScript1_160487 + map_script 3, UnknownMap_00_04_MapScript2_1604BB + .byte 0 + +UnknownMap_00_04_MapScript1_160487:: @ 8160487 + setflag FLAG_0x063 + setflag FLAG_0x064 + setflag FLAG_0x065 + setflag FLAG_0x066 + setflag FLAG_0x067 + setflag FLAG_0x068 + setflag FLAG_0x069 + setflag FLAG_0x06A + removeobject 9 + removeobject 8 + removeobject 7 + removeobject 2 + removeobject 6 + removeobject 5 + removeobject 4 + removeobject 3 + special UnionRoomSpecial + end + +UnknownMap_00_04_MapScript2_1604BB:: @ 81604BB + end + +UnknownMap_00_04_EventScript_1604BC:: @ 81604BC + lock + faceplayer + setvar VAR_RESULT, 1 + waitstate + release + end + +UnknownMap_00_04_EventScript_1604C6:: @ 81604C6 + lock + faceplayer + setvar VAR_RESULT, 2 + waitstate + release + end + +UnknownMap_00_04_EventScript_1604D0:: @ 81604D0 + lock + faceplayer + setvar VAR_RESULT, 3 + waitstate + release + end + +UnknownMap_00_04_EventScript_1604DA:: @ 81604DA + lock + faceplayer + setvar VAR_RESULT, 4 + waitstate + release + end + +UnknownMap_00_04_EventScript_1604E4:: @ 81604E4 + lock + faceplayer + setvar VAR_RESULT, 5 + waitstate + release + end + +UnknownMap_00_04_EventScript_1604EE:: @ 81604EE + lock + faceplayer + setvar VAR_RESULT, 6 + waitstate + release + end + +UnknownMap_00_04_EventScript_1604F8:: @ 81604F8 + lock + faceplayer + setvar VAR_RESULT, 7 + waitstate + release + end + +UnknownMap_00_04_EventScript_160502:: @ 8160502 + lock + faceplayer + setvar VAR_RESULT, 8 + waitstate + release + end + +UnknownMap_00_04_EventScript_16050C:: @ 816050C + lock + faceplayer + setvar VAR_RESULT, 9 + waitstate + release + end + +UnknownMap_00_04_EventScript_160516:: @ 8160516 + lockall + setvar VAR_RESULT, 10 + waitstate + releaseall + end diff --git a/data/maps/UnknownMap_03_50/map.json b/data/maps/UnknownMap_03_50/map.json new file mode 100644 index 000000000..e3a542b51 --- /dev/null +++ b/data/maps/UnknownMap_03_50/map.json @@ -0,0 +1,25 @@ +{ + "id": "MAP_UNKNOWN_MAP_03_50", + "name": "UnknownMap_03_50", + "layout": "LAYOUT_UNKNOWN_MAP_03_50", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_SEVII_ISLE_6", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_THREE_ISLAND", + "offset": 0, + "direction": "up" + } + ], + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_03_50/scripts.inc b/data/maps/UnknownMap_03_50/scripts.inc new file mode 100644 index 000000000..4e136faae --- /dev/null +++ b/data/maps/UnknownMap_03_50/scripts.inc @@ -0,0 +1,2 @@ +UnknownMap_03_50_MapScripts:: @ 81687E0 + .byte 0 diff --git a/data/maps/UnknownMap_03_51/map.json b/data/maps/UnknownMap_03_51/map.json new file mode 100644 index 000000000..80d857ec6 --- /dev/null +++ b/data/maps/UnknownMap_03_51/map.json @@ -0,0 +1,25 @@ +{ + "id": "MAP_UNKNOWN_MAP_03_51", + "name": "UnknownMap_03_51", + "layout": "LAYOUT_UNKNOWN_MAP_03_51", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_SEVII_ISLE_7", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_THREE_ISLAND", + "offset": 0, + "direction": "up" + } + ], + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_03_51/scripts.inc b/data/maps/UnknownMap_03_51/scripts.inc new file mode 100644 index 000000000..7398062d8 --- /dev/null +++ b/data/maps/UnknownMap_03_51/scripts.inc @@ -0,0 +1,2 @@ +UnknownMap_03_51_MapScripts:: @ 81687E1 + .byte 0 diff --git a/data/maps/UnknownMap_03_52/map.json b/data/maps/UnknownMap_03_52/map.json new file mode 100644 index 000000000..23b9a845d --- /dev/null +++ b/data/maps/UnknownMap_03_52/map.json @@ -0,0 +1,19 @@ +{ + "id": "MAP_UNKNOWN_MAP_03_52", + "name": "UnknownMap_03_52", + "layout": "LAYOUT_UNKNOWN_MAP_03_52", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_SEVII_ISLE_8", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_03_52/scripts.inc b/data/maps/UnknownMap_03_52/scripts.inc new file mode 100644 index 000000000..2e48ca113 --- /dev/null +++ b/data/maps/UnknownMap_03_52/scripts.inc @@ -0,0 +1,2 @@ +UnknownMap_03_52_MapScripts:: @ 81687E2 + .byte 0 diff --git a/data/maps/UnknownMap_03_53/map.json b/data/maps/UnknownMap_03_53/map.json new file mode 100644 index 000000000..f92091f77 --- /dev/null +++ b/data/maps/UnknownMap_03_53/map.json @@ -0,0 +1,19 @@ +{ + "id": "MAP_UNKNOWN_MAP_03_53", + "name": "UnknownMap_03_53", + "layout": "LAYOUT_UNKNOWN_MAP_03_53", + "music": "BGM_FRLG_SEVII_ISLANDS", + "region_map_section": "MAPSEC_SEVII_ISLE_9", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_03_53/scripts.inc b/data/maps/UnknownMap_03_53/scripts.inc new file mode 100644 index 000000000..2dec9650e --- /dev/null +++ b/data/maps/UnknownMap_03_53/scripts.inc @@ -0,0 +1,2 @@ +UnknownMap_03_53_MapScripts:: @ 81687E3 + .byte 0 diff --git a/data/maps/UnknownMap_18_01/map.json b/data/maps/UnknownMap_18_01/map.json new file mode 100644 index 000000000..5d21e06d1 --- /dev/null +++ b/data/maps/UnknownMap_18_01/map.json @@ -0,0 +1,19 @@ +{ + "id": "MAP_UNKNOWN_MAP_18_01", + "name": "UnknownMap_18_01", + "layout": "LAYOUT_HOUSE2", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_6", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnknownMap_18_01/scripts.inc b/data/maps/UnknownMap_18_01/scripts.inc new file mode 100644 index 000000000..15459c3a9 --- /dev/null +++ b/data/maps/UnknownMap_18_01/scripts.inc @@ -0,0 +1,2 @@ +UnknownMap_18_01_MapScripts:: @ 816FA8C + .byte 0 diff --git a/data/maps/UnusedHouse_27_00/map.json b/data/maps/UnusedHouse_27_00/map.json new file mode 100644 index 000000000..afa2d0b7a --- /dev/null +++ b/data/maps/UnusedHouse_27_00/map.json @@ -0,0 +1,19 @@ +{ + "id": "MAP_UNUSED_HOUSE_27_00", + "name": "UnusedHouse_27_00", + "layout": "LAYOUT_HOUSE2", + "music": "BGM_FRLG_ROUTE_3", + "region_map_section": "MAPSEC_ROUTE_19", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnusedHouse_27_00/scripts.inc b/data/maps/UnusedHouse_27_00/scripts.inc new file mode 100644 index 000000000..973665fa1 --- /dev/null +++ b/data/maps/UnusedHouse_27_00/scripts.inc @@ -0,0 +1,2 @@ +UnusedHouse_27_00_MapScripts:: @ 81704FA + .byte 0 diff --git a/data/maps/UnusedHouse_29_00/map.json b/data/maps/UnusedHouse_29_00/map.json new file mode 100644 index 000000000..34ef0104b --- /dev/null +++ b/data/maps/UnusedHouse_29_00/map.json @@ -0,0 +1,19 @@ +{ + "id": "MAP_UNUSED_HOUSE_29_00", + "name": "UnusedHouse_29_00", + "layout": "LAYOUT_HOUSE2", + "music": "BGM_FRLG_INDIGO_PLATEAU", + "region_map_section": "MAPSEC_ROUTE_23", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnusedHouse_29_00/scripts.inc b/data/maps/UnusedHouse_29_00/scripts.inc new file mode 100644 index 000000000..d0a4cc1a8 --- /dev/null +++ b/data/maps/UnusedHouse_29_00/scripts.inc @@ -0,0 +1,2 @@ +UnusedHouse_29_00_MapScripts:: @ 8170522 + .byte 0 diff --git a/data/maps/UnusedHouse_31_05/map.json b/data/maps/UnusedHouse_31_05/map.json new file mode 100644 index 000000000..3445b9f56 --- /dev/null +++ b/data/maps/UnusedHouse_31_05/map.json @@ -0,0 +1,19 @@ +{ + "id": "MAP_UNUSED_HOUSE_31_05", + "name": "UnusedHouse_31_05", + "layout": "LAYOUT_HOUSE4", + "music": "BGM_FRLG_ISLAND_SIX", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnusedHouse_31_05/scripts.inc b/data/maps/UnusedHouse_31_05/scripts.inc new file mode 100644 index 000000000..ee5cfa2cb --- /dev/null +++ b/data/maps/UnusedHouse_31_05/scripts.inc @@ -0,0 +1,2 @@ +UnusedHouse_31_05_MapScripts:: @ 8170BE3 + .byte 0 diff --git a/data/maps/VermilionCity/map.json b/data/maps/VermilionCity/map.json new file mode 100644 index 000000000..d041e9157 --- /dev/null +++ b/data/maps/VermilionCity/map.json @@ -0,0 +1,288 @@ +{ + "id": "MAP_VERMILION_CITY", + "name": "VermilionCity", + "layout": "LAYOUT_VERMILION_CITY", + "music": "BGM_FRLG_VERMILION_CITY", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE6", + "offset": 12, + "direction": "up" + }, + { + "map": "MAP_ROUTE11", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "graphics_id": "23", + "x": 22, + "y": 11, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_EventScript_166917", + "flag": "0" + }, + { + "graphics_id": "32", + "x": 17, + "y": 9, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_EventScript_166920", + "flag": "0" + }, + { + "graphics_id": "33", + "x": 36, + "y": 10, + "elevation": 0, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_EventScript_166C2F", + "flag": "0" + }, + { + "graphics_id": "130", + "x": 35, + "y": 11, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_EventScript_166C38", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 31, + "y": 30, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_EventScript_166C17", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 24, + "y": 33, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_EventScript_166941", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 19, + "y": 24, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "55", + "x": 25, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_EventScript_166C20", + "flag": "161" + } + ], + "warp_events": [ + { + "x": 22, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": 1 + }, + { + "x": 23, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": 1 + }, + { + "x": 24, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": 1 + }, + { + "x": 9, + "y": 6, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_HOUSE1", + "dest_warp_id": 1 + }, + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 12, + "y": 17, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_POKEMON_FAN_CLUB", + "dest_warp_id": 1 + }, + { + "x": 19, + "y": 17, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_HOUSE2", + "dest_warp_id": 1 + }, + { + "x": 29, + "y": 17, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_MART", + "dest_warp_id": 1 + }, + { + "x": 28, + "y": 24, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_HOUSE3", + "dest_warp_id": 1 + }, + { + "x": 14, + "y": 25, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_GYM", + "dest_warp_id": 1 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 22, + "y": 33, + "elevation": 0, + "var": "VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER", + "var_value": 0, + "script": "VermilionCity_EventScript_166B8A" + }, + { + "type": "trigger", + "x": 23, + "y": 33, + "elevation": 0, + "var": "VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER", + "var_value": 0, + "script": "VermilionCity_EventScript_166B91" + }, + { + "type": "trigger", + "x": 22, + "y": 32, + "elevation": 0, + "var": "VAR_0x4001", + "var_value": 0, + "script": "VermilionCity_EventScript_166B98" + }, + { + "type": "trigger", + "x": 23, + "y": 32, + "elevation": 0, + "var": "VAR_0x4001", + "var_value": 0, + "script": "VermilionCity_EventScript_166B98" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 33, + "y": 6, + "elevation": 0, + "script": "VermilionCity_EventScript_166C53" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 17, + "elevation": 3, + "script": "VermilionCity_EventScript_166C65" + }, + { + "type": "bg_event_type_0", + "x": 10, + "y": 24, + "elevation": 0, + "script": "VermilionCity_EventScript_166C6E" + }, + { + "type": "bg_event_type_0", + "x": 34, + "y": 18, + "elevation": 0, + "script": "VermilionCity_EventScript_166C86" + }, + { + "type": "bg_event_type_0", + "x": 45, + "y": 17, + "elevation": 3, + "script": "VermilionCity_EventScript_166C5C" + }, + { + "type": "hidden_item", + "x": 14, + "y": 11, + "elevation": 3, + "item": "ITEM_MAX_ETHER", + "flag": "48", + "unknown": 1 + } + ] +} diff --git a/data/maps/VermilionCity/scripts.inc b/data/maps/VermilionCity/scripts.inc new file mode 100644 index 000000000..c809fd7bd --- /dev/null +++ b/data/maps/VermilionCity/scripts.inc @@ -0,0 +1,289 @@ +VermilionCity_MapScripts:: @ 81668DC + map_script 3, VermilionCity_MapScript1_166906 + map_script 2, VermilionCity_MapScript2_1668E7 + .byte 0 + +VermilionCity_MapScript2_1668E7:: @ 81668E7 + map_script_2 VAR_MAP_SCENE_VERMILION_CITY, 2, EventScript_1668F1 + .2byte 0 + +EventScript_1668F1:: @ 81668F1 + lockall + applymovement 255, Movement_166903 + waitmovement 0 + setvar VAR_MAP_SCENE_VERMILION_CITY, 3 + releaseall + end + +Movement_166903:: @ 8166903 + step_11 + step_11 + step_end + +VermilionCity_MapScript1_166906:: @ 8166906 + setworldmapflag FLAG_WORLD_MAP_VERMILION_CITY + checkflag FLAG_0x2F9 + call_if 1, EventScript_166913 + end + +EventScript_166913:: @ 8166913 + setflag FLAG_0x0A1 + return + +VermilionCity_EventScript_166917:: @ 8166917 + msgbox gUnknown_817F723, 2 + end + +VermilionCity_EventScript_166920:: @ 8166920 + lock + faceplayer + compare_var_to_value VAR_MAP_SCENE_VERMILION_CITY, 3 + goto_if_eq EventScript_166937 + msgbox gUnknown_817F776 + release + end + +EventScript_166937:: @ 8166937 + msgbox gUnknown_817F7A6 + release + end + +VermilionCity_EventScript_166941:: @ 8166941 + lock + faceplayer + compare_var_to_value VAR_MAP_SCENE_VERMILION_CITY, 3 + goto_if_eq EventScript_166996 + msgbox gUnknown_817FA22 + release + end + +EventScript_166958:: @ 8166958 + checkflag FLAG_0x84A + goto_if 0, EventScript_1A77B0 + checkitem ITEM_MYSTIC_TICKET, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A77B0 + goto EventScript_1A77AA + end + +EventScript_166977:: @ 8166977 + checkflag FLAG_0x84B + goto_if 0, EventScript_1A77B0 + checkitem ITEM_AURORA_TICKET, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_1A77B0 + goto EventScript_1A77AA + end + +EventScript_166996:: @ 8166996 + setvar VAR_0x8004, 0 + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5 + goto_if 4, EventScript_1669BB + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1 + goto_if 4, EventScript_166B3B + msgbox gUnknown_817FB10 + release + end + +EventScript_1669BB:: @ 81669BB + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + call EventScript_166958 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_1669FD + call EventScript_166977 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_166A5F + setvar VAR_0x8004, 0 + message Text_17FBB8 + waitmessage + goto EventScript_1A911E + end + +EventScript_1669FD:: @ 81669FD + call EventScript_166977 + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_166AB1 + checkflag FLAG_0x2F0 + call_if 0, EventScript_166A53 + message Text_17FCC1 + waitmessage + multichoice 17, 6, 54, 0 + switch VAR_RESULT + case 0, EventScript_1A911E + case 1, EventScript_166B0B + case 2, EventScript_1A90F6 + case 127, EventScript_1A90F6 + end + +EventScript_166A53:: @ 8166A53 + setflag FLAG_0x2F0 + msgbox gUnknown_817FC00 + return + +EventScript_166A5F:: @ 8166A5F + checkflag FLAG_0x2F1 + call_if 0, EventScript_166AA5 + message Text_17FCC1 + waitmessage + multichoice 13, 6, 55, 0 + switch VAR_RESULT + case 0, EventScript_1A911E + case 1, EventScript_166B23 + case 2, EventScript_1A90F6 + case 127, EventScript_1A90F6 + end + +EventScript_166AA5:: @ 8166AA5 + setflag FLAG_0x2F1 + msgbox gUnknown_817FC5F + return + +EventScript_166AB1:: @ 8166AB1 + checkflag FLAG_0x2F0 + call_if 0, EventScript_166A53 + checkflag FLAG_0x2F1 + call_if 0, EventScript_166AA5 + message Text_17FCC1 + waitmessage + multichoice 13, 5, 56, 0 + switch VAR_RESULT + case 0, EventScript_1A911E + case 1, EventScript_166B0B + case 2, EventScript_166B23 + case 3, EventScript_1A90F6 + case 127, EventScript_1A90F6 + end + +EventScript_166B0B:: @ 8166B0B + msgbox gUnknown_817FCEC + setvar VAR_0x8004, 0 + setvar VAR_0x8006, 9 + goto EventScript_1A90DA + end + +EventScript_166B23:: @ 8166B23 + msgbox gUnknown_817FD5F + setvar VAR_0x8004, 0 + setvar VAR_0x8006, 10 + goto EventScript_1A90DA + end + +EventScript_166B3B:: @ 8166B3B + message Text_17FB23 + waitmessage + setvar VAR_0x8004, 0 + multichoice 19, 5, 57, 0 + switch VAR_RESULT + case 0, EventScript_1A8FEE + case 1, EventScript_1A8FF9 + case 2, EventScript_1A9004 + case 3, EventScript_1A90F6 + case 127, EventScript_1A90F6 + end + +EventScript_166B88:: @ 8166B88 + release + end + +VermilionCity_EventScript_166B8A:: @ 8166B8A + lockall + goto EventScript_166BA0 + end + +VermilionCity_EventScript_166B91:: @ 8166B91 + lockall + goto EventScript_166BA0 + end + +VermilionCity_EventScript_166B98:: @ 8166B98 + lockall + setvar VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER, 0 + releaseall + end + +EventScript_166BA0:: @ 8166BA0 + textcolor 0 + applymovement 6, Movement_1A75E7 + applymovement 255, Movement_1A75EB + waitmovement 0 + compare_var_to_value VAR_MAP_SCENE_VERMILION_CITY, 3 + goto_if_eq EventScript_166BED + msgbox gUnknown_817FA3C + checkflag FLAG_0x234 + goto_if 0, EventScript_166BDE + msgbox gUnknown_817FA77 + setvar VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER, 1 + releaseall + end + +EventScript_166BDE:: @ 8166BDE + msgbox gUnknown_817FABA + closemessage + goto EventScript_1A9108 + end + +EventScript_166BED:: @ 8166BED + setvar VAR_0x8004, 0 + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5 + goto_if 4, EventScript_1669BB + compare_var_to_value VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1 + goto_if 4, EventScript_166B3B + msgbox gUnknown_817FB10 + closemessage + goto EventScript_1A9108 + end + +VermilionCity_EventScript_166C17:: @ 8166C17 + msgbox gUnknown_817F8AC, 2 + end + +VermilionCity_EventScript_166C20:: @ 8166C20 + lock + faceplayer + setflag FLAG_0x2F9 + msgbox gUnknown_817FDD2 + release + end + +VermilionCity_EventScript_166C2F:: @ 8166C2F + msgbox gUnknown_817F7FD, 2 + end + +VermilionCity_EventScript_166C38:: @ 8166C38 + lock + faceplayer + waitse + playmoncry SPECIES_MACHOP, 0 + msgbox gUnknown_817F871 + waitmoncry + msgbox gUnknown_817F888 + release + end + +VermilionCity_EventScript_166C53:: @ 8166C53 + msgbox gUnknown_817F8FB, 3 + end + +VermilionCity_EventScript_166C5C:: @ 8166C5C + msgbox gUnknown_817F928, 3 + end + +VermilionCity_EventScript_166C65:: @ 8166C65 + msgbox gUnknown_817F9A1, 3 + end + +VermilionCity_EventScript_166C6E:: @ 8166C6E + lockall + setvar VAR_0x8004, 4 + setvar VAR_0x8005, 0 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_817F9CC + releaseall + end + +VermilionCity_EventScript_166C86:: @ 8166C86 + msgbox gUnknown_817FA11, 3 + end diff --git a/data/maps/VermilionCity/text.inc b/data/maps/VermilionCity/text.inc new file mode 100644 index 000000000..bce18d9fb --- /dev/null +++ b/data/maps/VermilionCity/text.inc @@ -0,0 +1,131 @@ +gUnknown_817F723:: @ 817F723 + .string "We're careful about pollution here.\p" + .string "We've heard GRIMER multiplies in\n" + .string "toxic sludge.$" + +gUnknown_817F776:: @ 817F776 + .string "Did you see the S.S. ANNE moored\n" + .string "in the harbor?$" + +gUnknown_817F7A6:: @ 817F7A6 + .string "So, the S.S. ANNE has departed?\p" + .string "She'll be back in VERMILION about\n" + .string "this time next year.$" + +gUnknown_817F7FD:: @ 817F7FD + .string "I'm putting up a building on this\n" + .string "plot of land. I own it all.\p" + .string "My POKéMON is tamping the land\n" + .string "to lay the foundation.$" + +gUnknown_817F871:: @ 817F871 + .string "MACHOP: Guoh! Gogogoh!$" + +gUnknown_817F888:: @ 817F888 + .string "A MACHOP is stomping the land flat.$" + +gUnknown_817F8AC:: @ 817F8AC + .string "The S.S. ANNE is a famous luxury\n" + .string "cruise ship.\p" + .string "It visits VERMILION once a year.$" + +gUnknown_817F8FB:: @ 817F8FB + .string "VERMILION CITY\n" + .string "The Port of Exquisite Sunsets$" + +gUnknown_817F928:: @ 817F928 + .string "NOTICE!\p" + .string "ROUTE 12 may be blocked off by a\n" + .string "sleeping POKéMON.\p" + .string "Detour through ROCK TUNNEL to\n" + .string "LAVENDER TOWN.\p" + .string "VERMILION POLICE$" + +gUnknown_817F9A1:: @ 817F9A1 + .string "POKéMON FAN CLUB\n" + .string "All POKéMON fans welcome!$" + +gUnknown_817F9CC:: @ 817F9CC + .string "VERMILION CITY POKéMON GYM\n" + .string "LEADER: LT. SURGE\l" + .string "The Lightning American!$" + +gUnknown_817FA11:: @ 817FA11 + .string "VERMILION HARBOR$" + +gUnknown_817FA22:: @ 817FA22 + .string "Welcome to the S.S. ANNE!$" + +gUnknown_817FA3C:: @ 817FA3C + .string "Welcome to the S.S. ANNE!\p" + .string "Excuse me, do you have a ticket?$" + +gUnknown_817FA77:: @ 817FA77 + .string "{SIZE}Á{PLAYER} flashed the S.S. TICKET!\p" + .string "{SIZE}ÇGreat!\n" + .string "Welcome to the S.S. ANNE!$" + +gUnknown_817FABA:: @ 817FABA + .string "{SIZE}Á{PLAYER} doesn't have the needed\n" + .string "S.S. TICKET.\p" + .string "{SIZE}ÇSorry!\p" + .string "You need a ticket to get aboard.$" + +gUnknown_817FB10:: @ 817FB10 + .string "The ship set sail.$" + +Text_17FB23:: @ 817FB23 + .string "Ah, you have a TRI-PASS.\p" + .string "Would you like to board\n" + .string "a SEAGALLOP ferry?$" + +Text_17FB67:: @ 817FB67 + .string "Okay, everything's in order.\p" + .string "SEAGALLOP HI-SPEED 7 will be\n" + .string "departing immediately.$" + +Text_17FBB8:: @ 817FBB8 + .string "Ah, you have a RAINBOW PASS.\p" + .string "Would you like to board\n" + .string "a SEAGALLOP ferry?$" + +gUnknown_817FC00:: @ 817FC00 + .string "Oh! That's a MYSTICTICKET!\n" + .string "Now that is rare.\p" + .string "We'll be happy to take you to\n" + .string "NAVEL ROCK anytime.$" + +gUnknown_817FC5F:: @ 817FC5F + .string "Oh! That's an AURORATICKET!\n" + .string "Now that is rare.\p" + .string "We'll be happy to take you to\n" + .string "BIRTH ISLAND anytime.$" + +Text_17FCC1:: @ 817FCC1 + .string "Would you like to board\n" + .string "a SEAGALLOP ferry?$" + +gUnknown_817FCEC:: @ 817FCEC + .string "Okay, everything's in order for you\n" + .string "to board a special ferry.\p" + .string "SEAGALLOP HI-SPEED 10 will be\n" + .string "departing immediately.$" + +gUnknown_817FD5F:: @ 817FD5F + .string "Okay, everything's in order for you\n" + .string "to board a special ferry.\p" + .string "SEAGALLOP HI-SPEED 12 will be\n" + .string "departing immediately.$" + +gUnknown_817FDD2:: @ 817FDD2 + .string "Oh, hello, {PLAYER}!\n" + .string "How are you doing?\p" + .string "It's me, one of PROF. OAK's AIDES.\p" + .string "Did you meet the other AIDE?\p" + .string "He had a package from PROF. OAK\n" + .string "for you, {PLAYER}.\p" + .string "He said he'd look for you around\n" + .string "ROUTE 2, {PLAYER}.\p" + .string "If you're in the ROUTE 2 area,\n" + .string "please look for him.$" + diff --git a/data/maps/VermilionCity_Gym/map.json b/data/maps/VermilionCity_Gym/map.json new file mode 100644 index 000000000..9545fed01 --- /dev/null +++ b/data/maps/VermilionCity_Gym/map.json @@ -0,0 +1,227 @@ +{ + "id": "MAP_VERMILION_CITY_GYM", + "name": "VermilionCity_Gym", + "layout": "LAYOUT_VERMILION_CITY_GYM", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "82", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_Gym_EventScript_16B94A", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 2, + "y": 11, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "VermilionCity_Gym_EventScript_16BA1E", + "flag": "0" + }, + { + "graphics_id": "62", + "x": 8, + "y": 13, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "VermilionCity_Gym_EventScript_16B9FA", + "flag": "0" + }, + { + "graphics_id": "91", + "x": 4, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_Gym_EventScript_16BA6C", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 7, + "y": 8, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "VermilionCity_Gym_EventScript_16BA35", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 19, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 9 + }, + { + "x": 5, + "y": 19, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 9 + }, + { + "x": 6, + "y": 19, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 9 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 3, + "y": 17, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16BA8B" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 17, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16BA8B" + }, + { + "type": "bg_event_type_0", + "x": 1, + "y": 10, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B78F" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 10, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B79B" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 10, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B7A7" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 10, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B7B3" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 10, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B7BF" + }, + { + "type": "bg_event_type_0", + "x": 1, + "y": 12, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B7CB" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 12, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B7D7" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 12, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B7E3" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 12, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B7EF" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 12, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B7FB" + }, + { + "type": "bg_event_type_0", + "x": 1, + "y": 14, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B807" + }, + { + "type": "bg_event_type_0", + "x": 3, + "y": 14, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B813" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 14, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B81F" + }, + { + "type": "bg_event_type_0", + "x": 7, + "y": 14, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B82B" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 14, + "elevation": 0, + "script": "VermilionCity_Gym_EventScript_16B837" + } + ] +} diff --git a/data/maps/VermilionCity_Gym/scripts.inc b/data/maps/VermilionCity_Gym/scripts.inc new file mode 100644 index 000000000..bd49a6955 --- /dev/null +++ b/data/maps/VermilionCity_Gym/scripts.inc @@ -0,0 +1,309 @@ +VermilionCity_Gym_MapScripts:: @ 816B69E + map_script 1, VermilionCity_Gym_MapScript1_16B6A9 + map_script 3, VermilionCity_Gym_MapScript2_16B772 + .byte 0 + +VermilionCity_Gym_MapScript1_16B6A9:: @ 816B6A9 + checkflag FLAG_0x001 + call_if 1, EventScript_16B6BC + checkflag FLAG_0x264 + call_if 1, EventScript_16B717 + end + +EventScript_16B6BC:: @ 816B6BC + setmetatile 3, 6, 699, 1 + setmetatile 4, 6, 700, 1 + setmetatile 5, 6, 701, 1 + setmetatile 6, 6, 702, 1 + setmetatile 7, 6, 703, 1 + setmetatile 3, 7, 707, 1 + setmetatile 4, 7, 708, 1 + setmetatile 5, 7, 709, 1 + setmetatile 6, 7, 710, 1 + setmetatile 7, 7, 711, 1 + return + +EventScript_16B717:: @ 816B717 + setmetatile 3, 6, 659, 1 + setmetatile 4, 6, 660, 0 + setmetatile 5, 6, 641, 0 + setmetatile 6, 6, 661, 0 + setmetatile 7, 6, 662, 1 + setmetatile 3, 7, 667, 1 + setmetatile 4, 7, 668, 0 + setmetatile 5, 7, 641, 0 + setmetatile 6, 7, 669, 0 + setmetatile 7, 7, 670, 1 + return + +VermilionCity_Gym_MapScript2_16B772:: @ 816B772 + call EventScript_16B778 + end + +EventScript_16B778:: @ 816B778 + checkflag FLAG_0x264 + goto_if_eq EventScript_1A77A9 + special sub_80CADEC + copyvar VAR_0x4000, VAR_0x8004 + copyvar VAR_0x4001, VAR_0x8005 + return + +VermilionCity_Gym_EventScript_16B78F:: @ 816B78F + lockall + setvar VAR_0x8008, 1 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B79B:: @ 816B79B + lockall + setvar VAR_0x8008, 2 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B7A7:: @ 816B7A7 + lockall + setvar VAR_0x8008, 3 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B7B3:: @ 816B7B3 + lockall + setvar VAR_0x8008, 4 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B7BF:: @ 816B7BF + lockall + setvar VAR_0x8008, 5 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B7CB:: @ 816B7CB + lockall + setvar VAR_0x8008, 6 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B7D7:: @ 816B7D7 + lockall + setvar VAR_0x8008, 7 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B7E3:: @ 816B7E3 + lockall + setvar VAR_0x8008, 8 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B7EF:: @ 816B7EF + lockall + setvar VAR_0x8008, 9 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B7FB:: @ 816B7FB + lockall + setvar VAR_0x8008, 10 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B807:: @ 816B807 + lockall + setvar VAR_0x8008, 11 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B813:: @ 816B813 + lockall + setvar VAR_0x8008, 12 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B81F:: @ 816B81F + lockall + setvar VAR_0x8008, 13 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B82B:: @ 816B82B + lockall + setvar VAR_0x8008, 14 + goto EventScript_16B843 + end + +VermilionCity_Gym_EventScript_16B837:: @ 816B837 + lockall + setvar VAR_0x8008, 15 + goto EventScript_16B843 + end + +EventScript_16B843:: @ 816B843 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + copyvar VAR_0x8004, VAR_0x4000 + copyvar VAR_0x8005, VAR_0x4001 + checkflag FLAG_0x264 + goto_if_eq EventScript_16B8E5 + checkflag FLAG_0x001 + goto_if_eq EventScript_16B89E + compare_var_to_var VAR_0x8004, VAR_0x8008 + goto_if_eq EventScript_16B885 + msgbox gUnknown_8195289 + releaseall + end + +EventScript_16B885:: @ 816B885 + msgbox gUnknown_81952A8 + playse SE_PIN + waitse + call EventScript_16B6BC + special DrawWholeMapView + setflag FLAG_0x001 + releaseall + end + +EventScript_16B89E:: @ 816B89E + compare_var_to_var VAR_0x8005, VAR_0x8008 + goto_if_eq EventScript_16B8CB + msgbox gUnknown_819536C + clearflag FLAG_0x001 + special sub_80CADEC + copyvar VAR_0x4000, VAR_0x8004 + copyvar VAR_0x4001, VAR_0x8005 + call EventScript_16B8EF + special DrawWholeMapView + releaseall + end + +EventScript_16B8CB:: @ 816B8CB + msgbox gUnknown_8195330 + closemessage + call EventScript_16B717 + special DrawWholeMapView + playse SE_FU_ZAKU2 + waitse + setflag FLAG_0x264 + releaseall + end + +EventScript_16B8E5:: @ 816B8E5 + msgbox gUnknown_8195289 + releaseall + end + +EventScript_16B8EF:: @ 816B8EF + setmetatile 3, 6, 681, 1 + setmetatile 4, 6, 682, 1 + setmetatile 5, 6, 645, 1 + setmetatile 6, 6, 683, 1 + setmetatile 7, 6, 684, 1 + setmetatile 3, 7, 689, 1 + setmetatile 4, 7, 690, 1 + setmetatile 5, 7, 653, 1 + setmetatile 6, 7, 691, 1 + setmetatile 7, 7, 692, 1 + return + +VermilionCity_Gym_EventScript_16B94A:: @ 816B94A + setvar VAR_0x8004, 4 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + trainerbattle 1, 416, 0, Text_194BA4, Text_194E03, EventScript_16B97C + checkflag FLAG_0x231 + goto_if 0, EventScript_16B9AF + msgbox gUnknown_8194C8E + release + end + +EventScript_16B97C:: @ 816B97C + setvar VAR_0x8004, 4 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + checkflag FLAG_0x23B + call_if 0, EventScript_16B9AB + clearflag FLAG_0x0A0 + setflag FLAG_0x4B2 + setflag FLAG_0x822 + setvar VAR_0x8008, 3 + call EventScript_1A6B18 + goto EventScript_16B9AF + end + +EventScript_16B9AB:: @ 816B9AB + clearflag FLAG_0x0A1 + return + +EventScript_16B9AF:: @ 816B9AF + msgbox gUnknown_8194CFA + checkitemspace ITEM_TM34, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16B9F0 + additem ITEM_TM34, 1 + giveitemfanfaremsg gUnknown_8194D87, ITEM_TM34 + setflag FLAG_0x231 + msgbox gUnknown_8194DA8 + release + end + +EventScript_16B9F0:: @ 816B9F0 + msgbox gUnknown_8194DE3 + release + end + +VermilionCity_Gym_EventScript_16B9FA:: @ 816B9FA + trainerbattle 0, 141, 0, Text_194FBD, Text_194FF1 + setvar VAR_0x8004, 4 + setvar VAR_0x8005, 4 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8195004, 6 + end + +VermilionCity_Gym_EventScript_16BA1E:: @ 816BA1E + trainerbattle 0, 220, 0, Text_194F1F, Text_194F6F + msgbox gUnknown_8194F76, 6 + end + +VermilionCity_Gym_EventScript_16BA35:: @ 816BA35 + trainerbattle 2, 423, 0, Text_194E57, Text_194EA5, EventScript_16BA5D + setvar VAR_0x8004, 4 + setvar VAR_0x8005, 3 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8194EBD, 6 + end + +EventScript_16BA5D:: @ 816BA5D + setvar VAR_0x8004, 4 + setvar VAR_0x8005, 2 + special SetFlavorTextFlagFromSpecialVars + release + end + +VermilionCity_Gym_EventScript_16BA6C:: @ 816BA6C + lock + faceplayer + checkflag FLAG_0x4B2 + goto_if_eq EventScript_16BA81 + msgbox gUnknown_81950B4 + release + end + +EventScript_16BA81:: @ 816BA81 + msgbox gUnknown_81951EC + release + end + +VermilionCity_Gym_EventScript_16BA8B:: @ 816BA8B + lockall + checkflag FLAG_0x822 + goto_if_eq EventScript_16BA9F + msgbox gUnknown_819520B + releaseall + end + +EventScript_16BA9F:: @ 816BA9F + msgbox gUnknown_8195248 + releaseall + end diff --git a/data/maps/VermilionCity_Gym/text.inc b/data/maps/VermilionCity_Gym/text.inc new file mode 100644 index 000000000..6d05aaf99 --- /dev/null +++ b/data/maps/VermilionCity_Gym/text.inc @@ -0,0 +1,140 @@ +Text_194BA4:: @ 8194BA4 + .string "Hey, kid! What do you think you're\n" + .string "doing here?\p" + .string "You won't live long in combat!\n" + .string "Not with your puny power!\p" + .string "I tell you, kid, electric POKéMON\n" + .string "saved me during the war!\p" + .string "They zapped my enemies into\n" + .string "paralysis!\p" + .string "The same as I'll do to you!{PLAY_BGM}{BGM_FRLG_LEADER_EYE}$" + +gUnknown_8194C8E:: @ 8194C8E + .string "A little word of advice, kid!\p" + .string "Electricity is sure powerful!\p" + .string "But, it's useless against GROUND-\n" + .string "type POKéMON!$" + +gUnknown_8194CFA:: @ 8194CFA + .string "The THUNDERBADGE cranks up your\n" + .string "POKéMON's SPEED!\p" + .string "It also lets your POKéMON FLY\n" + .string "lightning-quick anytime, kid!\p" + .string "You're special, kid!\n" + .string "Take this!$" + +gUnknown_8194D87:: @ 8194D87 + .string "{PLAYER} received TM34\n" + .string "from LT. SURGE.$" + +gUnknown_8194DA8:: @ 8194DA8 + .string "TM34 contains SHOCK WAVE!\p" + .string "Teach it to an ELECTRIC POKéMON!$" + +gUnknown_8194DE3:: @ 8194DE3 + .string "Yo, kid, make room in your BAG!$" + +Text_194E03:: @ 8194E03 + .string "Now that's a shocker!\p" + .string "You're the real deal, kid!\p" + .string "Fine, then, take the THUNDERBADGE!$" + +Text_194E57:: @ 8194E57 + .string "When I was in the Army, LT. SURGE\n" + .string "was my strict CO.\p" + .string "He was a hard taskmaster.$" + +Text_194EA5:: @ 8194EA5 + .string "Stop!\n" + .string "You're very good!$" + +gUnknown_8194EBD:: @ 8194EBD + .string "It's not easy opening that door.\p" + .string "LT. SURGE was always famous for\n" + .string "his cautious nature in the Army.$" + +Text_194F1F:: @ 8194F1F + .string "I'm a lightweight, but I'm good\n" + .string "with electricity!\p" + .string "That's why I joined this GYM.$" + +Text_194F6F:: @ 8194F6F + .string "Fried!$" + +gUnknown_8194F76:: @ 8194F76 + .string "Okay, I'll talk!\p" + .string "LT. SURGE said he hid door\n" + .string "switches inside something.$" + +Text_194FBD:: @ 8194FBD + .string "This is no place for kids!\n" + .string "Not even if you're good!$" + +Text_194FF1:: @ 8194FF1 + .string "Wow!\n" + .string "Surprised me!$" + +gUnknown_8195004:: @ 8195004 + .string "LT. SURGE installed the traps in\n" + .string "the GYM himself.\p" + .string "He set up double locks everywhere.\n" + .string "Let me give you a hint.\p" + .string "When you open the first lock, the\n" + .string "second lock is right next to it.$" + +gUnknown_81950B4:: @ 81950B4 + .string "Yo!\n" + .string "Champ in the making!\p" + .string "LT. SURGE has a nickname.\p" + .string "People refer to him as the\n" + .string "Lightning American!\p" + .string "He's an expert on electric\n" + .string "POKéMON.\p" + .string "BIRD/WATER-type POKéMON match\n" + .string "poorly against the ELECTRIC type.\p" + .string "Beware of paralysis, too.\p" + .string "LT. SURGE is very cautious.\p" + .string "He's locked himself in, so it won't\n" + .string "be easy getting to him.$" + +gUnknown_81951EC:: @ 81951EC + .string "Whew!\n" + .string "That match was electric!$" + +gUnknown_819520B:: @ 819520B + .string "VERMILION POKéMON GYM\n" + .string "LEADER: LT. SURGE\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +gUnknown_8195248:: @ 8195248 + .string "VERMILION POKéMON GYM\n" + .string "LEADER: LT. SURGE\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + +gUnknown_8195289:: @ 8195289 + .string "Nope!\n" + .string "There's only trash here.$" + +gUnknown_81952A8:: @ 81952A8 + .string "Hey! There's a switch under the\n" + .string "trash! Turn it on!\p" + .string "The first electric lock opened!$" + +Text_1952FB:: @ 81952FB + .string "ガサゴソ‥!\n" + .string "おっと! ゴミばこの そこに\l" + .string "また スイッチが あった!\l" + .string "おして みよう! ‥ ポチッとな$" + +gUnknown_8195330:: @ 8195330 + .string "The second electric lock opened!\n" + .string "The motorized door opened!$" + +gUnknown_819536C:: @ 819536C + .string "Nope!\n" + .string "There's only trash here.\p" + .string "Hey!\n" + .string "The electric locks were reset!$" + diff --git a/data/maps/VermilionCity_House1/map.json b/data/maps/VermilionCity_House1/map.json new file mode 100644 index 000000000..73b782e11 --- /dev/null +++ b/data/maps/VermilionCity_House1/map.json @@ -0,0 +1,55 @@ +{ + "id": "MAP_VERMILION_CITY_HOUSE1", + "name": "VermilionCity_House1", + "layout": "LAYOUT_HOUSE1", + "music": "BGM_FRLG_CERULEAN_CITY", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "57", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_House1_EventScript_16B3A7", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 3 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_House1/scripts.inc b/data/maps/VermilionCity_House1/scripts.inc new file mode 100644 index 000000000..a7de85e8f --- /dev/null +++ b/data/maps/VermilionCity_House1/scripts.inc @@ -0,0 +1,36 @@ +VermilionCity_House1_MapScripts:: @ 816B3A6 + .byte 0 + +VermilionCity_House1_EventScript_16B3A7:: @ 816B3A7 + lock + faceplayer + checkflag FLAG_0x240 + goto_if_eq EventScript_16B3CF + msgbox gUnknown_8193EC1, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16B3D9 + msgbox gUnknown_8194028 + release + end + +EventScript_16B3CF:: @ 816B3CF + msgbox gUnknown_8194045 + release + end + +EventScript_16B3D9:: @ 816B3D9 + checkitemspace ITEM_OLD_ROD, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16B41A + additem ITEM_OLD_ROD, 1 + msgbox gUnknown_8193F2A + giveitemfanfaremsg gUnknown_8193F81, ITEM_OLD_ROD + setflag FLAG_0x240 + msgbox gUnknown_8193FAF + release + end + +EventScript_16B41A:: @ 816B41A + msgbox gUnknown_819406F + release + end diff --git a/data/maps/VermilionCity_House1/text.inc b/data/maps/VermilionCity_House1/text.inc new file mode 100644 index 000000000..66ea21646 --- /dev/null +++ b/data/maps/VermilionCity_House1/text.inc @@ -0,0 +1,40 @@ +Text_193E82:: @ 8193E82 + .string "この あいだ やまおくで\n" + .string "きんのたまを ひろい ましてね!\p" + .string "つかえない しなもの ですが\n" + .string "うったら なんと 5000¥でした$" + +gUnknown_8193EC1:: @ 8193EC1 + .string "I'm the FISHING GURU!\p" + .string "I simply looove fishing!\n" + .string "I can't bear to go without.\p" + .string "Tell me, do you like to fish?$" + +gUnknown_8193F2A:: @ 8193F2A + .string "Grand! I like your style.\n" + .string "I think we can be friends.\p" + .string "Take this and fish, young friend!$" + +gUnknown_8193F81:: @ 8193F81 + .string "{PLAYER} received an OLD ROD from\n" + .string "the FISHING GURU.$" + +gUnknown_8193FAF:: @ 8193FAF + .string "Fishing is a way of life!\n" + .string "It is like the finest poetry.\p" + .string "From the seas to rivers, go out\n" + .string "and land the big one, my friend.$" + +gUnknown_8194028:: @ 8194028 + .string "Oh…\n" + .string "That's so disappointing…$" + +gUnknown_8194045:: @ 8194045 + .string "Hello there, {PLAYER}!\p" + .string "How are the fish biting?$" + +gUnknown_819406F:: @ 819406F + .string "Oh, no!\p" + .string "I had a nice gift for you, but you\n" + .string "have no room for it!$" + diff --git a/data/maps/VermilionCity_House2/map.json b/data/maps/VermilionCity_House2/map.json new file mode 100644 index 000000000..a4daf98d6 --- /dev/null +++ b/data/maps/VermilionCity_House2/map.json @@ -0,0 +1,55 @@ +{ + "id": "MAP_VERMILION_CITY_HOUSE2", + "name": "VermilionCity_House2", + "layout": "LAYOUT_HOUSE1", + "music": "BGM_FRLG_VERMILION_CITY", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "17", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_House2_EventScript_16B5D7", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 6 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 6 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 6 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_House2/scripts.inc b/data/maps/VermilionCity_House2/scripts.inc new file mode 100644 index 000000000..9179fa716 --- /dev/null +++ b/data/maps/VermilionCity_House2/scripts.inc @@ -0,0 +1 @@ +@ .include "data/maps/VermilionCity_House2/scripts.inc" diff --git a/data/maps/VermilionCity_House3/map.json b/data/maps/VermilionCity_House3/map.json new file mode 100644 index 000000000..da5d4b82a --- /dev/null +++ b/data/maps/VermilionCity_House3/map.json @@ -0,0 +1,102 @@ +{ + "id": "MAP_VERMILION_CITY_HOUSE3", + "name": "VermilionCity_House3", + "layout": "LAYOUT_HOUSE1", + "music": "BGM_FRLG_VERMILION_CITY", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "19", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_House3_EventScript_16BAAA", + "flag": "0" + }, + { + "graphics_id": "116", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_House3_EventScript_16BABC", + "flag": "0" + }, + { + "graphics_id": "105", + "x": 6, + "y": 4, + "elevation": 0, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "0x0", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_House3_EventScript_16BAB3", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 8 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 8 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 8 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 6, + "y": 4, + "elevation": 3, + "script": "VermilionCity_House3_EventScript_16BACF" + } + ] +} diff --git a/data/maps/VermilionCity_House3/scripts.inc b/data/maps/VermilionCity_House3/scripts.inc new file mode 100644 index 000000000..1344aac52 --- /dev/null +++ b/data/maps/VermilionCity_House3/scripts.inc @@ -0,0 +1,24 @@ +VermilionCity_House3_MapScripts:: @ 816BAA9 + .byte 0 + +VermilionCity_House3_EventScript_16BAAA:: @ 816BAAA + msgbox gUnknown_81953AF, 2 + end + +VermilionCity_House3_EventScript_16BAB3:: @ 816BAB3 + msgbox gUnknown_8195471, 2 + end + +VermilionCity_House3_EventScript_16BABC:: @ 816BABC + lock + faceplayer + waitse + playmoncry SPECIES_PIDGEY, 0 + msgbox gUnknown_81953EE + waitmoncry + release + end + +VermilionCity_House3_EventScript_16BACF:: @ 816BACF + msgbox gUnknown_8195400, 3 + end diff --git a/data/maps/VermilionCity_House3/text.inc b/data/maps/VermilionCity_House3/text.inc new file mode 100644 index 000000000..99ea3e49e --- /dev/null +++ b/data/maps/VermilionCity_House3/text.inc @@ -0,0 +1,20 @@ +gUnknown_81953AF:: @ 81953AF + .string "I'm getting my PIDGEY to fly a\n" + .string "letter to SAFFRON in the north.$" + +gUnknown_81953EE:: @ 81953EE + .string "PIDGEY: Kurukkoo!$" + +gUnknown_8195400:: @ 8195400 + .string "Dear PIPPI,\n" + .string "I hope to see you soon.\p" + .string "I heard SAFFRON has problems with\n" + .string "TEAM ROCKET.\p" + .string "VERMILION appears to be safe.$" + +gUnknown_8195471:: @ 8195471 + .string "I want to exchange MAIL with all\n" + .string "sorts of people.\p" + .string "I send my PIDGEY to a UNION ROOM\n" + .string "to exchange MAIL for me.$" + diff --git a/data/maps/VermilionCity_Mart/map.json b/data/maps/VermilionCity_Mart/map.json new file mode 100644 index 000000000..2dcf37084 --- /dev/null +++ b/data/maps/VermilionCity_Mart/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_VERMILION_CITY_MART", + "name": "VermilionCity_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_Mart_EventScript_16B666", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_Mart_EventScript_16B654", + "flag": "0" + }, + { + "graphics_id": "30", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_Mart_EventScript_16B65D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 7 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 7 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 7 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_Mart/scripts.inc b/data/maps/VermilionCity_Mart/scripts.inc new file mode 100644 index 000000000..c83e239d9 --- /dev/null +++ b/data/maps/VermilionCity_Mart/scripts.inc @@ -0,0 +1,36 @@ +VermilionCity_Mart_MapScripts:: @ 816B653 + .byte 0 + +VermilionCity_Mart_EventScript_16B654:: @ 816B654 + msgbox gUnknown_8194B65, 2 + end + +VermilionCity_Mart_EventScript_16B65D:: @ 816B65D + msgbox gUnknown_8194A77, 2 + end + +VermilionCity_Mart_EventScript_16B666:: @ 816B666 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + lock + faceplayer + message Text_1A6211 + waitmessage + pokemart Items_16B68C + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16B68C:: @ 816B68C + .2byte ITEM_POKE_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_AWAKENING + .2byte ITEM_ICE_HEAL + .2byte ITEM_REPEL + .2byte ITEM_NONE + release + end diff --git a/data/maps/VermilionCity_Mart/text.inc b/data/maps/VermilionCity_Mart/text.inc new file mode 100644 index 000000000..2d85d941f --- /dev/null +++ b/data/maps/VermilionCity_Mart/text.inc @@ -0,0 +1,14 @@ +gUnknown_8194A77:: @ 8194A77 + .string "There are wicked people who will\n" + .string "use POKéMON for criminal acts.\p" + .string "TEAM ROCKET traffics in rare\n" + .string "POKéMON, for example.\p" + .string "They also abandon POKéMON that\n" + .string "they consider unpopular or useless.\p" + .string "That's the sort of horrid people\n" + .string "they are, TEAM ROCKET.$" + +gUnknown_8194B65:: @ 8194B65 + .string "I think POKéMON can be good or\n" + .string "bad. It depends on the TRAINER.$" + diff --git a/data/maps/VermilionCity_PokemonCenter_1F/map.json b/data/maps/VermilionCity_PokemonCenter_1F/map.json new file mode 100644 index 000000000..47d4a391e --- /dev/null +++ b/data/maps/VermilionCity_PokemonCenter_1F/map.json @@ -0,0 +1,140 @@ +{ + "id": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", + "name": "VermilionCity_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_1F_EventScript_16B433", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_1F_EventScript_16B43C", + "flag": "0" + }, + { + "graphics_id": "56", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_1F_EventScript_16B445", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 14, + "y": 4, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_1F_EventScript_16B44E", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_1F_EventScript_1A8D08", + "flag": "0" + }, + { + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_1F_EventScript_1ACE83", + "flag": "160" + }, + { + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "76", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_1F_EventScript_1ACE83", + "flag": "160" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 4 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 4 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 4 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_PokemonCenter_1F/scripts.inc b/data/maps/VermilionCity_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..f65681dc3 --- /dev/null +++ b/data/maps/VermilionCity_PokemonCenter_1F/scripts.inc @@ -0,0 +1,27 @@ +VermilionCity_PokemonCenter_1F_MapScripts:: @ 816B424 + map_script 3, VermilionCity_PokemonCenter_1F_MapScript1_16B42F + map_script 5, VermilionCity_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +VermilionCity_PokemonCenter_1F_MapScript1_16B42F:: @ 816B42F + setrespawn SPAWN_VERMILION_CITY + end + +VermilionCity_PokemonCenter_1F_EventScript_16B433:: @ 816B433 + lock + faceplayer + call EventScript_1A6578 + release + end + +VermilionCity_PokemonCenter_1F_EventScript_16B43C:: @ 816B43C + msgbox gUnknown_8194145, 2 + end + +VermilionCity_PokemonCenter_1F_EventScript_16B445:: @ 816B445 + msgbox gUnknown_81940AF, 2 + end + +VermilionCity_PokemonCenter_1F_EventScript_16B44E:: @ 816B44E + msgbox gUnknown_8194180, 2 + end diff --git a/data/maps/VermilionCity_PokemonCenter_1F/text.inc b/data/maps/VermilionCity_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..811f01edf --- /dev/null +++ b/data/maps/VermilionCity_PokemonCenter_1F/text.inc @@ -0,0 +1,19 @@ +gUnknown_81940AF:: @ 81940AF + .string "Even if they are the same level,\n" + .string "POKéMON can have very different\l" + .string "stats and abilities.\p" + .string "A POKéMON raised by a TRAINER is\n" + .string "stronger than one in the wild.$" + +gUnknown_8194145:: @ 8194145 + .string "My POKéMON was poisoned!\n" + .string "It fainted while we were walking!$" + +gUnknown_8194180:: @ 8194180 + .string "It is true that a higher-level\n" + .string "POKéMON will be more powerful…\p" + .string "But, all POKéMON will have weak\n" + .string "points against specific types.\p" + .string "So, there appears to be no\n" + .string "universally strong POKéMON.$" + diff --git a/data/maps/VermilionCity_PokemonCenter_2F/map.json b/data/maps/VermilionCity_PokemonCenter_2F/map.json new file mode 100644 index 000000000..5d077ec8f --- /dev/null +++ b/data/maps/VermilionCity_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_VERMILION_CITY_POKEMON_CENTER_2F", + "name": "VermilionCity_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_PokemonCenter_2F/scripts.inc b/data/maps/VermilionCity_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..b64ac0660 --- /dev/null +++ b/data/maps/VermilionCity_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +VermilionCity_PokemonCenter_2F_MapScripts:: @ 816B457 + map_script 2, VermilionCity_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, VermilionCity_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, VermilionCity_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, VermilionCity_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +VermilionCity_PokemonCenter_2F_EventScript_16B46C:: @ 816B46C + call EventScript_1BB4A3 + end + +EventScript_16B472:: @ 816B472 + call EventScript_1BB6AB + end + +EventScript_16B478:: @ 816B478 + call EventScript_1BB7DE + end diff --git a/data/maps/VermilionCity_PokemonFanClub/map.json b/data/maps/VermilionCity_PokemonFanClub/map.json new file mode 100644 index 000000000..2f9255233 --- /dev/null +++ b/data/maps/VermilionCity_PokemonFanClub/map.json @@ -0,0 +1,135 @@ +{ + "id": "MAP_VERMILION_CITY_POKEMON_FAN_CLUB", + "name": "VermilionCity_PokemonFanClub", + "layout": "LAYOUT_VERMILION_CITY_POKEMON_FAN_CLUB", + "music": "BGM_FRLG_VERMILION_CITY", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "61", + "x": 5, + "y": 4, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonFanClub_EventScript_16B47F", + "flag": "0" + }, + { + "graphics_id": "48", + "x": 6, + "y": 4, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonFanClub_EventScript_16B4FC", + "flag": "0" + }, + { + "graphics_id": "120", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonFanClub_EventScript_16B59E", + "flag": "0" + }, + { + "graphics_id": "126", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonFanClub_EventScript_16B5B1", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 4, + "y": 5, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonFanClub_EventScript_16B528", + "flag": "0" + }, + { + "graphics_id": "27", + "x": 7, + "y": 5, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VermilionCity_PokemonFanClub_EventScript_16B563", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 5 + }, + { + "x": 5, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 5 + }, + { + "x": 6, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": 5 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 2, + "y": 1, + "elevation": 0, + "script": "VermilionCity_PokemonFanClub_EventScript_16B5C4" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 1, + "elevation": 0, + "script": "VermilionCity_PokemonFanClub_EventScript_16B5CD" + } + ] +} diff --git a/data/maps/VermilionCity_PokemonFanClub/scripts.inc b/data/maps/VermilionCity_PokemonFanClub/scripts.inc new file mode 100644 index 000000000..60d983af0 --- /dev/null +++ b/data/maps/VermilionCity_PokemonFanClub/scripts.inc @@ -0,0 +1,166 @@ +VermilionCity_PokemonFanClub_MapScripts:: @ 816B47E + .byte 0 + +VermilionCity_PokemonFanClub_EventScript_16B47F:: @ 816B47F + lock + faceplayer + checkflag FLAG_0x241 + goto_if_eq EventScript_16B4A7 + msgbox gUnknown_819457E, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_16B4B1 + msgbox gUnknown_8194860 + release + end + +EventScript_16B4A7:: @ 816B4A7 + msgbox gUnknown_819488E + release + end + +EventScript_16B4B1:: @ 816B4B1 + msgbox gUnknown_8194628 + checkitemspace ITEM_BIKE_VOUCHER, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16B4F2 + setflag FLAG_0x241 + additem ITEM_BIKE_VOUCHER, 1 + giveitemfanfaremsg gUnknown_819474E, ITEM_BIKE_VOUCHER, 1, BGM_FRLG_ME_KEYITEM + msgbox gUnknown_819477C + release + end + +EventScript_16B4F2:: @ 816B4F2 + msgbox gUnknown_81948D2 + release + end + +VermilionCity_PokemonFanClub_EventScript_16B4FC:: @ 816B4FC + lock + faceplayer + checkflag FLAG_0x82C + goto_if_eq EventScript_16B511 + msgbox gUnknown_81948E6 + release + end + +EventScript_16B511:: @ 816B511 + setvar VAR_0x8004, 1 + setvar VAR_0x8005, 1 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_8194960 + release + end + +VermilionCity_PokemonFanClub_EventScript_16B528:: @ 816B528 + lock + faceplayer + checkflag FLAG_0x003 + goto_if_eq EventScript_16B54B + msgbox gUnknown_81944CC + closemessage + applymovement 5, Movement_1A75E5 + waitmovement 0 + setflag FLAG_0x002 + release + end + +EventScript_16B54B:: @ 816B54B + msgbox gUnknown_8194518 + closemessage + applymovement 5, Movement_1A75E5 + waitmovement 0 + clearflag FLAG_0x003 + release + end + +VermilionCity_PokemonFanClub_EventScript_16B563:: @ 816B563 + lock + faceplayer + checkflag FLAG_0x002 + goto_if_eq EventScript_16B586 + msgbox gUnknown_819446F + closemessage + applymovement 6, Movement_1A75E5 + waitmovement 0 + setflag FLAG_0x003 + release + end + +EventScript_16B586:: @ 816B586 + msgbox gUnknown_819449C + closemessage + applymovement 6, Movement_1A75E5 + waitmovement 0 + clearflag FLAG_0x002 + release + end + +VermilionCity_PokemonFanClub_EventScript_16B59E:: @ 816B59E + lock + faceplayer + waitse + playmoncry SPECIES_PIKACHU, 0 + msgbox gUnknown_819455A + waitmoncry + release + end + +VermilionCity_PokemonFanClub_EventScript_16B5B1:: @ 816B5B1 + lock + faceplayer + waitse + playmoncry SPECIES_SEEL, 0 + msgbox gUnknown_8194571 + waitmoncry + release + end + +VermilionCity_PokemonFanClub_EventScript_16B5C4:: @ 816B5C4 + msgbox gUnknown_8194910, 3 + end + +VermilionCity_PokemonFanClub_EventScript_16B5CD:: @ 816B5CD + msgbox gUnknown_819493D, 3 + end + +VermilionCity_House2_MapScripts:: @ 816B5D6 + .byte 0 + +VermilionCity_House2_EventScript_16B5D7:: @ 816B5D7 + lock + faceplayer + setvar VAR_0x8008, 3 + call EventScript_1A8CAD + checkflag FLAG_0x24D + goto_if_eq EventScript_16B649 + msgbox gUnknown_81949CB, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16B631 + call EventScript_1A8CBD + compare_var_to_value VAR_0x8004, 6 + goto_if 4, EventScript_16B631 + call EventScript_1A8CC9 + compare_var_to_var VAR_RESULT, VAR_0x8009 + goto_if 5, EventScript_16B63B + call EventScript_1A8CD9 + msgbox gUnknown_8194A44 + setflag FLAG_0x24D + release + end + +EventScript_16B631:: @ 816B631 + msgbox gUnknown_81949FD + release + end + +EventScript_16B63B:: @ 816B63B + getspeciesname 0, VAR_0x8009 + msgbox gUnknown_8194A0D + release + end + +EventScript_16B649:: @ 816B649 + msgbox gUnknown_8194A4F + release + end diff --git a/data/maps/VermilionCity_PokemonFanClub/text.inc b/data/maps/VermilionCity_PokemonFanClub/text.inc new file mode 100644 index 000000000..1264be24d --- /dev/null +++ b/data/maps/VermilionCity_PokemonFanClub/text.inc @@ -0,0 +1,144 @@ +Text_194234:: @ 8194234 + .string "The urge to battle with someone\n" + .string "you've tangled with before…\p" + .string "Have you ever had that urge?\n" + .string "I'm sure you have.\p" + .string "I wanted to battle certain people\n" + .string "again over and over, too.\p" + .string "So, I've been giving these away.\n" + .string "Please, take one!$" + +Text_19430F:: @ 819430F + .string "Use that device and you'll find\n" + .string "TRAINERS looking for a rematch.\p" + .string "You have to charge its battery to\n" + .string "use it, though.$" + +Text_194381:: @ 8194381 + .string "How do you use the VS SEEKER?\n" + .string "There's nothing to it.\p" + .string "Use it like beep-beep-beep, and\n" + .string "TRAINERS around you will notice.\p" + .string "If any TRAINER wants a rematch,\n" + .string "it will let you know immediately.\p" + .string "Charge its battery and use it\n" + .string "while you're on a road.$" + +gUnknown_819446F:: @ 819446F + .string "Won't you admire my PIKACHU's\n" + .string "adorable tail?$" + +gUnknown_819449C:: @ 819449C + .string "Humph!\p" + .string "My PIKACHU is twice as cute as\n" + .string "that one!$" + +gUnknown_81944CC:: @ 81944CC + .string "I just adore my SEEL!\n" + .string "It's so lovable!\p" + .string "It squeals, “Kyuuuh,” when I\n" + .string "hug it!$" + +gUnknown_8194518:: @ 8194518 + .string "Oh, dear!\p" + .string "My SEEL is far more attractive.\n" + .string "By double, I would say.$" + +gUnknown_819455A:: @ 819455A + .string "PIKACHU: Chu! Pikachu!$" + +gUnknown_8194571:: @ 8194571 + .string "SEEL: Kyuoo!$" + +gUnknown_819457E:: @ 819457E + .string "I chair the POKéMON Fan Club!\p" + .string "I raise more than a hundred\n" + .string "POKéMON!\p" + .string "I'm very fussy when it comes to\n" + .string "POKéMON! I surely am!\p" + .string "So…\p" + .string "Did you come visit to hear about\n" + .string "my POKéMON?$" + +gUnknown_8194628:: @ 8194628 + .string "Good!\n" + .string "Then listen up!\p" + .string "My favorite RAPIDASH…\p" + .string "It's…cute…lovely…smart… \n" + .string "plus…amazing…you think so?…\l" + .string "oh yes…it's…stunning…\l" + .string "kindly…love it!\p" + .string "Hug it…when…sleeping…warm\n" + .string "and cuddly…spectacular…\l" + .string "ravishing…\l" + .string "…Oops! Look at the time!\l" + .string "I kept you too long!\p" + .string "Thanks for hearing me out!\n" + .string "I want you to have this!$" + +gUnknown_819474E:: @ 819474E + .string "{PLAYER} received a BIKE VOUCHER\n" + .string "from the CHAIRMAN.$" + +gUnknown_819477C:: @ 819477C + .string "Take that BIKE VOUCHER to the\n" + .string "BIKE SHOP in CERULEAN CITY.\p" + .string "Exchange that for a BICYCLE\n" + .string "free of charge!\p" + .string "Don't worry, my favorite FEAROW\n" + .string "will FLY me anywhere I need to go.\p" + .string "So, I have no need for a BICYCLE.\p" + .string "I hope you like cycling!$" + +gUnknown_8194860:: @ 8194860 + .string "Oh. Come back when you want to\n" + .string "hear my story!$" + +gUnknown_819488E:: @ 819488E + .string "Hello, {PLAYER}!\p" + .string "Did you come see me about my\n" + .string "POKéMON again?\p" + .string "No?\n" + .string "Too bad!$" + +gUnknown_81948D2:: @ 81948D2 + .string "Make room for this!$" + +gUnknown_81948E6:: @ 81948E6 + .string "Our CHAIRMAN is very vocal about\n" + .string "POKéMON.$" + +gUnknown_8194910:: @ 8194910 + .string "Let's all listen politely to other\n" + .string "TRAINERS!$" + +gUnknown_819493D:: @ 819493D + .string "If someone brags, brag right back!$" + +gUnknown_8194960:: @ 8194960 + .string "Our CHAIRMAN really does adore his\n" + .string "POKéMON.\p" + .string "But the person who is most liked by\n" + .string "POKéMON is DAISY, I think.$" + +gUnknown_81949CB:: @ 81949CB + .string "Hi!\n" + .string "Do you have a {STR_VAR_1}?\p" + .string "Want to trade it for my\n" + .string "{STR_VAR_2}?$" + +gUnknown_81949FD:: @ 81949FD + .string "That's too bad.$" + +gUnknown_8194A0D:: @ 8194A0D + .string "…This is no {STR_VAR_1}.\p" + .string "If you get one, please trade it\n" + .string "to me!$" + +gUnknown_8194A44:: @ 8194A44 + .string "Thank you!$" + +gUnknown_8194A4F:: @ 8194A4F + .string "How is my old {STR_VAR_2}?\p" + .string "My {STR_VAR_1} is doing great!$" + diff --git a/data/maps/VictoryRoad_1F/map.json b/data/maps/VictoryRoad_1F/map.json new file mode 100644 index 000000000..a62dd427d --- /dev/null +++ b/data/maps/VictoryRoad_1F/map.json @@ -0,0 +1,155 @@ +{ + "id": "MAP_VICTORY_ROAD_1F", + "name": "VictoryRoad_1F", + "layout": "LAYOUT_VICTORY_ROAD_1F", + "music": "BGM_FRLG_MT_MOON", + "region_map_section": "MAPSEC_KANTO_VICTORY_ROAD", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "41", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "VictoryRoad_1F_EventScript_160F7B", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 14, + "y": 6, + "elevation": 4, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "VictoryRoad_1F_EventScript_160F64", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 12, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_1F_EventScript_1BE9D2", + "flag": "425" + }, + { + "graphics_id": "92", + "x": 14, + "y": 1, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_1F_EventScript_1BE9DF", + "flag": "426" + }, + { + "graphics_id": "97", + "x": 7, + "y": 18, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_1F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_1F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 16, + "y": 3, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_1F_EventScript_1BE11D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 2, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": 0 + }, + { + "x": 11, + "y": 20, + "elevation": 3, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": 0 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 20, + "y": 16, + "elevation": 3, + "var": "VAR_0x4064", + "var_value": 99, + "script": "VictoryRoad_1F_EventScript_160F33" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 12, + "y": 12, + "elevation": 0, + "item": "POCKET_KEY_ITEMS", + "flag": "37", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 16, + "y": 1, + "elevation": 0, + "item": "ITEM_FULL_RESTORE", + "flag": "38", + "unknown": 1 + } + ] +} diff --git a/data/maps/VictoryRoad_1F/scripts.inc b/data/maps/VictoryRoad_1F/scripts.inc new file mode 100644 index 000000000..656bd8e6c --- /dev/null +++ b/data/maps/VictoryRoad_1F/scripts.inc @@ -0,0 +1,46 @@ +VictoryRoad_1F_MapScripts:: @ 8160F05 + map_script 1, VictoryRoad_1F_MapScript1_160F10 + map_script 3, VictoryRoad_1F_MapScript2_160F2F + .byte 0 + +VictoryRoad_1F_MapScript1_160F10:: @ 8160F10 + compare_var_to_value VAR_0x4064, 100 + call_if 5, EventScript_160F1C + end + +EventScript_160F1C:: @ 8160F1C + setmetatile 12, 14, 775, 1 + setmetatile 12, 15, 791, 1 + return + +VictoryRoad_1F_MapScript2_160F2F:: @ 8160F2F + setworldmapflag FLAG_WORLD_MAP_VICTORY_ROAD_1F + end + +VictoryRoad_1F_EventScript_160F33:: @ 8160F33 + lockall + compare_var_to_value VAR_0x4064, 100 + goto_if_eq EventScript_160F62 + setmetatile 12, 14, 721, 0 + setmetatile 12, 15, 737, 0 + playse SE_MU_PACHI + special DrawWholeMapView + waitse + moveobjectoffscreen 5 + setvar VAR_0x4064, 100 + releaseall + end + +EventScript_160F62:: @ 8160F62 + releaseall + end + +VictoryRoad_1F_EventScript_160F64:: @ 8160F64 + trainerbattle 0, 406, 0, Text_174710, Text_174738 + msgbox gUnknown_8174744, 6 + end + +VictoryRoad_1F_EventScript_160F7B:: @ 8160F7B + trainerbattle 0, 396, 0, Text_174784, Text_1747B8 + msgbox gUnknown_81747C8, 6 + end diff --git a/data/maps/VictoryRoad_1F/text.inc b/data/maps/VictoryRoad_1F/text.inc new file mode 100644 index 000000000..46cd136ad --- /dev/null +++ b/data/maps/VictoryRoad_1F/text.inc @@ -0,0 +1,22 @@ +Text_174710:: @ 8174710 + .string "I wonder if you are good enough\n" + .string "for me?$" + +Text_174738:: @ 8174738 + .string "I lost out…$" + +gUnknown_8174744:: @ 8174744 + .string "I never wanted to lose to anybody,\n" + .string "especially to a younger kid…$" + +Text_174784:: @ 8174784 + .string "I can see you're good.\n" + .string "Let me see exactly how good!$" + +Text_1747B8:: @ 81747B8 + .string "I had a chance…$" + +gUnknown_81747C8:: @ 81747C8 + .string "Tch!\n" + .string "I concede, you are better than I!$" + diff --git a/data/maps/VictoryRoad_2F/map.json b/data/maps/VictoryRoad_2F/map.json new file mode 100644 index 000000000..058247ece --- /dev/null +++ b/data/maps/VictoryRoad_2F/map.json @@ -0,0 +1,272 @@ +{ + "id": "MAP_VICTORY_ROAD_2F", + "name": "VictoryRoad_2F", + "layout": "LAYOUT_VICTORY_ROAD_2F", + "music": "BGM_FRLG_MT_MOON", + "region_map_section": "MAPSEC_KANTO_VICTORY_ROAD", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "52", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "VictoryRoad_2F_EventScript_161037", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 20, + "y": 11, + "elevation": 4, + "movement_type": "17", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "VictoryRoad_2F_EventScript_16104E", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 31, + "y": 16, + "elevation": 4, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "VictoryRoad_2F_EventScript_161065", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 26, + "y": 6, + "elevation": 3, + "movement_type": "40", + "movement_range_x": 4, + "movement_range_y": 4, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "VictoryRoad_2F_EventScript_161093", + "flag": "0" + }, + { + "graphics_id": "26", + "x": 36, + "y": 5, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "VictoryRoad_2F_EventScript_16107C", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 17, + "y": 6, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_2F_EventScript_1BE9EC", + "flag": "427" + }, + { + "graphics_id": "92", + "x": 40, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_2F_EventScript_1BE9F9", + "flag": "428" + }, + { + "graphics_id": "92", + "x": 25, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_2F_EventScript_1BEA06", + "flag": "429" + }, + { + "graphics_id": "92", + "x": 14, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_2F_EventScript_1BEA13", + "flag": "430" + }, + { + "graphics_id": "97", + "x": 8, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_2F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 6, + "y": 17, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_2F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 33, + "y": 19, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_2F_EventScript_1BE11D", + "flag": "88" + }, + { + "graphics_id": "41", + "x": 40, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_2F_EventScript_1C47AE", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 9, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_1F", + "dest_warp_id": 0 + }, + { + "x": 3, + "y": 3, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": 0 + }, + { + "x": 34, + "y": 9, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": 1 + }, + { + "x": 38, + "y": 9, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": 2 + }, + { + "x": 36, + "y": 17, + "elevation": 4, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": 3 + }, + { + "x": 49, + "y": 13, + "elevation": 0, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": 1 + }, + { + "x": 48, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": 1 + }, + { + "x": 47, + "y": 13, + "elevation": 0, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": 1 + }, + { + "x": 34, + "y": 19, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": 4 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 2, + "y": 19, + "elevation": 3, + "var": "VAR_0x4065", + "var_value": 99, + "script": "VictoryRoad_2F_EventScript_160FD5" + }, + { + "type": "trigger", + "x": 14, + "y": 19, + "elevation": 3, + "var": "VAR_0x4066", + "var_value": 99, + "script": "VictoryRoad_2F_EventScript_161006" + } + ], + "bg_events": [] +} diff --git a/data/maps/VictoryRoad_2F/scripts.inc b/data/maps/VictoryRoad_2F/scripts.inc new file mode 100644 index 000000000..b35ee7821 --- /dev/null +++ b/data/maps/VictoryRoad_2F/scripts.inc @@ -0,0 +1,81 @@ +VictoryRoad_2F_MapScripts:: @ 8160F92 + map_script 1, VictoryRoad_2F_MapScript1_160F98 + .byte 0 + +VictoryRoad_2F_MapScript1_160F98:: @ 8160F98 + compare_var_to_value VAR_0x4065, 100 + call_if 5, EventScript_160FAF + compare_var_to_value VAR_0x4066, 100 + call_if 5, EventScript_160FC2 + end + +EventScript_160FAF:: @ 8160FAF + setmetatile 13, 10, 775, 1 + setmetatile 13, 11, 791, 1 + return + +EventScript_160FC2:: @ 8160FC2 + setmetatile 33, 16, 775, 1 + setmetatile 33, 17, 791, 1 + return + +VictoryRoad_2F_EventScript_160FD5:: @ 8160FD5 + lockall + compare_var_to_value VAR_0x4065, 100 + goto_if_eq EventScript_161004 + setmetatile 13, 10, 721, 0 + setmetatile 13, 11, 737, 0 + playse SE_MU_PACHI + special DrawWholeMapView + waitse + moveobjectoffscreen 11 + setvar VAR_0x4065, 100 + releaseall + end + +EventScript_161004:: @ 8161004 + releaseall + end + +VictoryRoad_2F_EventScript_161006:: @ 8161006 + lockall + compare_var_to_value VAR_0x4066, 100 + goto_if_eq EventScript_161035 + setmetatile 33, 16, 721, 0 + setmetatile 33, 17, 737, 0 + playse SE_MU_PACHI + special DrawWholeMapView + waitse + moveobjectoffscreen 12 + setvar VAR_0x4066, 100 + releaseall + end + +EventScript_161035:: @ 8161035 + releaseall + end + +VictoryRoad_2F_EventScript_161037:: @ 8161037 + trainerbattle 0, 167, 0, Text_1747EF, Text_17482C + msgbox gUnknown_817483E, 6 + end + +VictoryRoad_2F_EventScript_16104E:: @ 816104E + trainerbattle 0, 325, 0, Text_174877, Text_1748B4 + msgbox gUnknown_81748BB, 6 + end + +VictoryRoad_2F_EventScript_161065:: @ 8161065 + trainerbattle 0, 287, 0, Text_1748EE, Text_17491B + msgbox gUnknown_8174927, 6 + end + +VictoryRoad_2F_EventScript_16107C:: @ 816107C + trainerbattle 0, 290, 0, Text_174995, Text_1749B0 + msgbox gUnknown_81749BB, 6 + end + +VictoryRoad_2F_EventScript_161093:: @ 8161093 + trainerbattle 0, 298, 0, Text_174942, Text_17495A + msgbox gUnknown_8174969, 6 + end diff --git a/data/maps/VictoryRoad_2F/text.inc b/data/maps/VictoryRoad_2F/text.inc new file mode 100644 index 000000000..d125ef160 --- /dev/null +++ b/data/maps/VictoryRoad_2F/text.inc @@ -0,0 +1,54 @@ +Text_1747EF:: @ 81747EF + .string "If you can get through here,\n" + .string "you can go meet the ELITE FOUR.$" + +Text_17482C:: @ 817482C + .string "No!\n" + .string "Unbelievable!$" + +gUnknown_817483E:: @ 817483E + .string "I can beat you when it comes to\n" + .string "knowledge about POKéMON!$" + +Text_174877:: @ 8174877 + .string "This here is VICTORY ROAD.\n" + .string "It's the final test for TRAINERS!$" + +Text_1748B4:: @ 81748B4 + .string "Atcho!$" + +gUnknown_81748BB:: @ 81748BB + .string "If you get stuck, try moving some\n" + .string "boulders around.$" + +Text_1748EE:: @ 81748EE + .string "Ah, so you wish to challenge the\n" + .string "ELITE FOUR?$" + +Text_17491B:: @ 817491B + .string "You got me!$" + +gUnknown_8174927:: @ 8174927 + .string "{RIVAL} also came through here.$" + +Text_174942:: @ 8174942 + .string "Come on!\n" + .string "I'll whip you!$" + +Text_17495A:: @ 817495A + .string "I got whipped!$" + +gUnknown_8174969:: @ 8174969 + .string "You earned the right to be on\n" + .string "VICTORY ROAD…$" + +Text_174995:: @ 8174995 + .string "Is VICTORY ROAD too tough?$" + +Text_1749B0:: @ 81749B0 + .string "Well done!$" + +gUnknown_81749BB:: @ 81749BB + .string "Many TRAINERS give up their\n" + .string "challenge here and go home.$" + diff --git a/data/maps/VictoryRoad_3F/map.json b/data/maps/VictoryRoad_3F/map.json new file mode 100644 index 000000000..5ba23ad2e --- /dev/null +++ b/data/maps/VictoryRoad_3F/map.json @@ -0,0 +1,222 @@ +{ + "id": "MAP_VICTORY_ROAD_3F", + "name": "VictoryRoad_3F", + "layout": "LAYOUT_VICTORY_ROAD_3F", + "music": "BGM_FRLG_MT_MOON", + "region_map_section": "MAPSEC_KANTO_VICTORY_ROAD", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_4", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "41", + "x": 40, + "y": 7, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "VictoryRoad_3F_EventScript_161103", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 21, + "y": 5, + "elevation": 4, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "VictoryRoad_3F_EventScript_161148", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 10, + "y": 17, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "VictoryRoad_3F_EventScript_16111A", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "VictoryRoad_3F_EventScript_161131", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 38, + "y": 7, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_3F_EventScript_1BEA20", + "flag": "431" + }, + { + "graphics_id": "92", + "x": 12, + "y": 9, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_3F_EventScript_1BEA2D", + "flag": "432" + }, + { + "graphics_id": "97", + "x": 19, + "y": 15, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_3F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 33, + "y": 18, + "elevation": 0, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 88, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_3F_EventScript_1BE11D", + "flag": "89" + }, + { + "graphics_id": "97", + "x": 35, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_3F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "97", + "x": 32, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "VictoryRoad_3F_EventScript_1BE11D", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 38, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "VictoryRoad_3F_EventScript_16115F", + "flag": "0" + }, + { + "graphics_id": "42", + "x": 39, + "y": 13, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "VictoryRoad_3F_EventScript_16117A", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 2, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": 1 + }, + { + "x": 34, + "y": 9, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": 2 + }, + { + "x": 37, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": 3 + }, + { + "x": 39, + "y": 17, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": 4 + }, + { + "x": 34, + "y": 18, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": 8 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 7, + "y": 7, + "elevation": 3, + "var": "VAR_0x4067", + "var_value": 99, + "script": "VictoryRoad_3F_EventScript_1610CF" + } + ], + "bg_events": [] +} diff --git a/data/maps/VictoryRoad_3F/scripts.inc b/data/maps/VictoryRoad_3F/scripts.inc new file mode 100644 index 000000000..17331cee4 --- /dev/null +++ b/data/maps/VictoryRoad_3F/scripts.inc @@ -0,0 +1,62 @@ +VictoryRoad_3F_MapScripts:: @ 81610AA + map_script 1, VictoryRoad_3F_MapScript1_1610B0 + .byte 0 + +VictoryRoad_3F_MapScript1_1610B0:: @ 81610B0 + compare_var_to_value VAR_0x4067, 100 + call_if 5, EventScript_1610BC + end + +EventScript_1610BC:: @ 81610BC + setmetatile 12, 12, 775, 1 + setmetatile 12, 13, 791, 1 + return + +VictoryRoad_3F_EventScript_1610CF:: @ 81610CF + lockall + compare_var_to_value VAR_0x4067, 100 + goto_if_eq EventScript_161101 + setmetatile 12, 12, 721, 0 + setmetatile 12, 13, 737, 0 + playse SE_MU_PACHI + special DrawWholeMapView + waitse + moveobjectoffscreen 7 + moveobjectoffscreen 10 + setvar VAR_0x4067, 100 + releaseall + end + +EventScript_161101:: @ 8161101 + releaseall + end + +VictoryRoad_3F_EventScript_161103:: @ 8161103 + trainerbattle 0, 393, 0, Text_174B60, Text_174B83 + msgbox gUnknown_8174B99, 6 + end + +VictoryRoad_3F_EventScript_16111A:: @ 816111A + trainerbattle 0, 394, 0, Text_174C8A, Text_174CA9 + msgbox gUnknown_8174CBD, 6 + end + +VictoryRoad_3F_EventScript_161131:: @ 8161131 + trainerbattle 0, 403, 0, Text_174C30, Text_174C5A + msgbox gUnknown_8174C67, 6 + end + +VictoryRoad_3F_EventScript_161148:: @ 8161148 + trainerbattle 0, 404, 0, Text_174BCA, Text_174BF4 + msgbox gUnknown_8174C03, 6 + end + +VictoryRoad_3F_EventScript_16115F:: @ 816115F + trainerbattle 4, 485, 0, Text_174D0C, Text_174D45, Text_174D96 + msgbox gUnknown_8174D64, 6 + end + +VictoryRoad_3F_EventScript_16117A:: @ 816117A + trainerbattle 4, 485, 0, Text_174E08, Text_174E39, Text_174E8D + msgbox gUnknown_8174E48, 6 + end diff --git a/data/maps/VictoryRoad_3F/text.inc b/data/maps/VictoryRoad_3F/text.inc new file mode 100644 index 000000000..fbda3b739 --- /dev/null +++ b/data/maps/VictoryRoad_3F/text.inc @@ -0,0 +1,103 @@ +Text_1749F3:: @ 81749F3 + .string "ギヤーオ!$" + +Text_1749F9:: @ 81749F9 + .string "You should be proud of yourself,\n" + .string "having battled your way through\l" + .string "VICTORY ROAD so courageously.\p" + .string "In recognition of your feat,\n" + .string "I'll teach you DOUBLE-EDGE.\p" + .string "Would you like me to teach that\n" + .string "technique?$" + +Text_174ABC:: @ 8174ABC + .string "I'll teach you the technique\n" + .string "anytime.$" + +Text_174AE2:: @ 8174AE2 + .string "Which POKéMON should I teach\n" + .string "DOUBLE-EDGE?$" + +Text_174B0C:: @ 8174B0C + .string "Keep that drive going for the\n" + .string "POKéMON LEAGUE!\p" + .string "Take a run at them and knock 'em\n" + .string "out!$" + +Text_174B60:: @ 8174B60 + .string "I heard rumors of a child prodigy.$" + +Text_174B83:: @ 8174B83 + .string "The rumors were true!$" + +gUnknown_8174B99:: @ 8174B99 + .string "So, it was you who beat GIOVANNI\n" + .string "of TEAM ROCKET?$" + +Text_174BCA:: @ 8174BCA + .string "TRAINERS live to seek stronger\n" + .string "opponents.$" + +Text_174BF4:: @ 8174BF4 + .string "Oh!\n" + .string "So strong!$" + +gUnknown_8174C03:: @ 8174C03 + .string "By fighting tough battles, you get\n" + .string "stronger.$" + +Text_174C30:: @ 8174C30 + .string "I'll show you just how good you\n" + .string "are. Not!$" + +Text_174C5A:: @ 8174C5A + .string "I'm furious!$" + +gUnknown_8174C67:: @ 8174C67 + .string "You showed me just how good\n" + .string "I was…$" + +Text_174C8A:: @ 8174C8A + .string "Only the chosen can pass here!$" + +Text_174CA9:: @ 8174CA9 + .string "I don't believe it!$" + +gUnknown_8174CBD:: @ 8174CBD + .string "All TRAINERS here are headed to\n" + .string "the POKéMON LEAGUE.\p" + .string "Don't let down your guard.$" + +Text_174D0C:: @ 8174D0C + .string "RAY: Together, the two of us are\n" + .string "destined for greatness!$" + +Text_174D45:: @ 8174D45 + .string "RAY: Ludicrous!\n" + .string "This can't be!$" + +gUnknown_8174D64:: @ 8174D64 + .string "RAY: You've beaten us.\n" + .string "Greatness remains elusive…$" + +Text_174D96:: @ 8174D96 + .string "RAY: Together, the two of us are\n" + .string "striving for the pinnacle.\p" + .string "We need you to bring two POKéMON\n" + .string "into battle with us.$" + +Text_174E08:: @ 8174E08 + .string "TYRA: We're trying to become\n" + .string "champions together.$" + +Text_174E39:: @ 8174E39 + .string "TYRA: Oh, but…$" + +gUnknown_8174E48:: @ 8174E48 + .string "TYRA: You've taught me that power\n" + .string "can be infinite in shape and form.$" + +Text_174E8D:: @ 8174E8D + .string "TYRA: You can't battle with us if\n" + .string "you have only one POKéMON.$" + diff --git a/data/maps/ViridianCity/map.json b/data/maps/ViridianCity/map.json new file mode 100644 index 000000000..2c47e786f --- /dev/null +++ b/data/maps/ViridianCity/map.json @@ -0,0 +1,262 @@ +{ + "id": "MAP_VIRIDIAN_CITY", + "name": "ViridianCity", + "layout": "LAYOUT_VIRIDIAN_CITY", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_1", + "unknown_18": 1, + "unknown_19": 6, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": [ + { + "map": "MAP_ROUTE2", + "offset": 12, + "direction": "up" + }, + { + "map": "MAP_ROUTE1", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE22", + "offset": 10, + "direction": "left" + } + ], + "object_events": [ + { + "graphics_id": "27", + "x": 8, + "y": 26, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_EventScript_165AF0", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 11, + "y": 24, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_EventScript_1BDF13", + "flag": "17" + }, + { + "graphics_id": "32", + "x": 34, + "y": 11, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_EventScript_1659CA", + "flag": "0" + }, + { + "graphics_id": "240", + "x": 21, + "y": 6, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 2, + "movement_range_y": 3, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_EventScript_1659F6", + "flag": "0" + }, + { + "graphics_id": "31", + "x": 20, + "y": 12, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_EventScript_165AC4", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 33, + "y": 26, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 0, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_EventScript_165A8F", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 16, + "y": 22, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_EventScript_1659C1", + "flag": "0" + }, + { + "graphics_id": "95", + "x": 18, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_EventScript_1BDF13", + "flag": "18" + }, + { + "graphics_id": "92", + "x": 17, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_EventScript_1BEB8C", + "flag": "461" + } + ], + "warp_events": [ + { + "x": 26, + "y": 26, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 1 + }, + { + "x": 25, + "y": 11, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY_HOUSE1", + "dest_warp_id": 1 + }, + { + "x": 36, + "y": 10, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY_GYM", + "dest_warp_id": 1 + }, + { + "x": 25, + "y": 18, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY_HOUSE2", + "dest_warp_id": 1 + }, + { + "x": 36, + "y": 19, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY_MART", + "dest_warp_id": 1 + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 22, + "y": 11, + "elevation": 3, + "var": "VAR_0x4051", + "var_value": 0, + "script": "ViridianCity_EventScript_165AF6" + }, + { + "type": "trigger", + "x": 36, + "y": 11, + "elevation": 3, + "var": "VAR_0x405A", + "var_value": 0, + "script": "ViridianCity_EventScript_16596D" + }, + { + "type": "trigger", + "x": 20, + "y": 8, + "elevation": 3, + "var": "VAR_0x4051", + "var_value": 1, + "script": "ViridianCity_EventScript_165B10" + }, + { + "type": "trigger", + "x": 22, + "y": 8, + "elevation": 3, + "var": "VAR_0x4051", + "var_value": 1, + "script": "ViridianCity_EventScript_165B2E" + } + ], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 23, + "y": 1, + "elevation": 3, + "script": "ViridianCity_EventScript_16599D" + }, + { + "type": "bg_event_type_0", + "x": 32, + "y": 10, + "elevation": 0, + "script": "ViridianCity_EventScript_1659AF" + }, + { + "type": "bg_event_type_0", + "x": 20, + "y": 31, + "elevation": 0, + "script": "ViridianCity_EventScript_1659A6" + }, + { + "type": "bg_event_type_0", + "x": 20, + "y": 16, + "elevation": 0, + "script": "ViridianCity_EventScript_165994" + }, + { + "type": "bg_event_type_0", + "x": 36, + "y": 10, + "elevation": 0, + "script": "ViridianCity_EventScript_1659B8" + } + ] +} diff --git a/data/maps/ViridianCity/scripts.inc b/data/maps/ViridianCity/scripts.inc new file mode 100644 index 000000000..5434fa1fa --- /dev/null +++ b/data/maps/ViridianCity/scripts.inc @@ -0,0 +1,257 @@ +ViridianCity_MapScripts:: @ 81658D3 + map_script 3, ViridianCity_MapScript1_1658D9 + .byte 0 + +ViridianCity_MapScript1_1658D9:: @ 81658D9 + setworldmapflag FLAG_WORLD_MAP_VIRIDIAN_CITY + compare_var_to_value VAR_0x4051, 0 + call_if 1, EventScript_165920 + compare_var_to_value VAR_0x4051, 1 + call_if 1, EventScript_16590F + compare_var_to_value VAR_0x4051, 2 + call_if 4, EventScript_165909 + compare_var_to_value VAR_0x405A, 0 + call_if 1, EventScript_165931 + end + +EventScript_165909:: @ 8165909 + setvar VAR_0x4010, 32 + return + +EventScript_16590F:: @ 816590F + setvar VAR_0x4010, 32 + setobjectxyperm 4, 21, 8 + setobjectmovementtype 4, 1 + return + +EventScript_165920:: @ 8165920 + setvar VAR_0x4010, 34 + setobjectxyperm 4, 21, 11 + setobjectmovementtype 4, 8 + return + +EventScript_165931:: @ 8165931 + checkflag FLAG_0x821 + goto_if 0, EventScript_1A77A9 + checkflag FLAG_0x822 + goto_if 0, EventScript_1A77A9 + checkflag FLAG_0x823 + goto_if 0, EventScript_1A77A9 + checkflag FLAG_UNK824 + goto_if 0, EventScript_1A77A9 + checkflag FLAG_0x825 + goto_if 0, EventScript_1A77A9 + checkflag FLAG_UNK826 + goto_if 0, EventScript_1A77A9 + setvar VAR_0x405A, 1 + return + +ViridianCity_EventScript_16596D:: @ 816596D + lockall + textcolor 3 + applymovement 255, Movement_1A75E9 + waitmovement 0 + delay 20 + msgbox gUnknown_817E2F5 + closemessage + applymovement 255, Movement_165992 + waitmovement 0 + releaseall + end + +Movement_165992:: @ 8165992 + step_14 + step_end + +ViridianCity_EventScript_165994:: @ 8165994 + msgbox gUnknown_817E1BB, 3 + end + +ViridianCity_EventScript_16599D:: @ 816599D + msgbox gUnknown_817E1E7, 3 + end + +ViridianCity_EventScript_1659A6:: @ 81659A6 + msgbox gUnknown_817E24D, 3 + end + +ViridianCity_EventScript_1659AF:: @ 81659AF + msgbox gUnknown_817E2DB, 3 + end + +ViridianCity_EventScript_1659B8:: @ 81659B8 + msgbox gUnknown_817E2F5, 3 + end + +ViridianCity_EventScript_1659C1:: @ 81659C1 + msgbox gUnknown_817DABB, 2 + end + +ViridianCity_EventScript_1659CA:: @ 81659CA + lock + faceplayer + compare_var_to_value VAR_0x405A, 1 + goto_if_eq EventScript_1659EC + msgbox gUnknown_817DB39 + closemessage + applymovement 3, Movement_1A75E5 + waitmovement 0 + release + end + +EventScript_1659EC:: @ 81659EC + msgbox gUnknown_817DB78 + release + end + +ViridianCity_EventScript_1659F6:: @ 81659F6 + lock + faceplayer + checkflag FLAG_UNK820 + goto_if_eq EventScript_165A23 + compare_var_to_value VAR_0x4051, 2 + goto_if 4, EventScript_165A4A + compare_var_to_value VAR_0x4051, 1 + goto_if_eq EventScript_165A54 + compare_var_to_value VAR_0x4051, 0 + goto_if_eq EventScript_165A84 + end + +EventScript_165A23:: @ 8165A23 + msgbox gUnknown_817E046, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_165A40 + msgbox gUnknown_817E0EA + release + end + +EventScript_165A40:: @ 8165A40 + msgbox gUnknown_817E14E + release + end + +EventScript_165A4A:: @ 8165A4A + msgbox gUnknown_817DF61 + release + end + +EventScript_165A54:: @ 8165A54 + call EventScript_165B4C + release + end + +EventScript_165A5B:: @ 8165A5B + msgbox gUnknown_817DEEB + release + end + +EventScript_165A65:: @ 8165A65 + msgbox gUnknown_817DE9B + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + special sub_807F888 + waitstate + release + end + +EventScript_165A84:: @ 8165A84 + msgbox gUnknown_817DD03 + closemessage + release + end + +ViridianCity_EventScript_165A8F:: @ 8165A8F + lock + faceplayer + msgbox gUnknown_817DB98, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 1 + goto_if_eq EventScript_165AB0 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_165ABA + end + +EventScript_165AB0:: @ 8165AB0 + msgbox gUnknown_817DBE4 + release + end + +EventScript_165ABA:: @ 8165ABA + msgbox gUnknown_817DBD5 + release + end + +ViridianCity_EventScript_165AC4:: @ 8165AC4 + lock + faceplayer + compare_var_to_value VAR_0x4051, 0 + goto_if_eq EventScript_165ADB + msgbox gUnknown_817DC99 + release + end + +EventScript_165ADB:: @ 8165ADB + msgbox gUnknown_817DC4E + closemessage + applymovement 5, Movement_1A75E5 + waitmovement 0 + release + end + +ViridianCity_EventScript_165AF0:: @ 8165AF0 + goto EventScript_1C4A1E + end + +ViridianCity_EventScript_165AF6:: @ 8165AF6 + lockall + textcolor 0 + msgbox gUnknown_817DD03 + closemessage + applymovement 255, Movement_165B0E + waitmovement 0 + releaseall + end + +Movement_165B0E:: @ 8165B0E + step_10 + step_end + +ViridianCity_EventScript_165B10:: @ 8165B10 + lockall + textcolor 0 + applymovement 4, Movement_1A75E7 + waitmovement 0 + applymovement 255, Movement_1A75EB + waitmovement 0 + call EventScript_165B4C + release + end + +ViridianCity_EventScript_165B2E:: @ 8165B2E + lockall + textcolor 0 + applymovement 4, Movement_1A75EB + waitmovement 0 + applymovement 255, Movement_1A75E7 + waitmovement 0 + call EventScript_165B4C + release + end + +EventScript_165B4C:: @ 8165B4C + msgbox gUnknown_817DD4E + closemessage + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + special sub_8112364 + special sub_807F888 + waitstate + lock + faceplayer + msgbox gUnknown_817DE9B + setvar VAR_0x4051, 2 + giveitem ITEM_TEACHY_TV + msgbox gUnknown_817DEEB + return diff --git a/data/maps/ViridianCity/text.inc b/data/maps/ViridianCity/text.inc new file mode 100644 index 000000000..37b1d3c55 --- /dev/null +++ b/data/maps/ViridianCity/text.inc @@ -0,0 +1,125 @@ +gUnknown_817DABB:: @ 817DABB + .string "Those POKé BALLS at your waist!\n" + .string "You have POKéMON, don't you?\p" + .string "It's great that you can carry and\n" + .string "use POKéMON anytime, anywhere.$" + +gUnknown_817DB39:: @ 817DB39 + .string "This POKéMON GYM is always closed.\p" + .string "I wonder who the LEADER is?$" + +gUnknown_817DB78:: @ 817DB78 + .string "VIRIDIAN GYM's LEADER returned!$" + +gUnknown_817DB98:: @ 817DB98 + .string "You want to know about the two\n" + .string "kinds of caterpillar POKéMON?$" + +gUnknown_817DBD5:: @ 817DBD5 + .string "Oh, okay then!$" + +gUnknown_817DBE4:: @ 817DBE4 + .string "CATERPIE has no poison,\n" + .string "but WEEDLE does.\p" + .string "Watch that your POKéMON aren't\n" + .string "stabbed by WEEDLE's POISON STING.$" + +gUnknown_817DC4E:: @ 817DC4E + .string "Oh, Grandpa!\n" + .string "Don't be so mean!\p" + .string "I'm so sorry.\n" + .string "He hasn't had his coffee yet.$" + +gUnknown_817DC99:: @ 817DC99 + .string "I go shopping in PEWTER CITY\n" + .string "occasionally.\p" + .string "I have to take the winding trail in\n" + .string "VIRIDIAN FOREST when I go.$" + +gUnknown_817DD03:: @ 817DD03 + .string "I absolutely forbid you from\n" + .string "going through here!\p" + .string "This is private property!$" + +gUnknown_817DD4E:: @ 817DD4E + .string "Well, now, I've had my coffee, and\n" + .string "that's what I need to get going!\p" + .string "Hm?\n" + .string "What is that red box you have?\p" + .string "Ah, so you're working on your\n" + .string "POKéDEX.\p" + .string "Then let me give you a word of\n" + .string "advice.\p" + .string "Whenever you catch a POKéMON,\n" + .string "the POKéDEX automatically updates\l" + .string "its data.\p" + .string "…You don't know how to catch\n" + .string "a POKéMON?\p" + .string "I suppose I had better show you\n" + .string "then!$" + +gUnknown_817DE9B:: @ 817DE9B + .string "There! Now tell me, that was\n" + .string "educational, was it not?\p" + .string "And here, take this, too.$" + +gUnknown_817DEEB:: @ 817DEEB + .string "If there's something you don't\n" + .string "understand, watch that.\p" + .string "It will teach you about the basics\n" + .string "of being a POKéMON TRAINER.$" + +gUnknown_817DF61:: @ 817DF61 + .string "Well, now, I've had my coffee, and\n" + .string "that's what I need to get going!\p" + .string "But I made it too strong.\n" + .string "It gave me a headache…\p" + .string "Incidentally, are you filling your\n" + .string "POKéDEX?\p" + .string "At first, focus on weakening the\n" + .string "POKéMON before trying to catch it.$" + +gUnknown_817E046:: @ 817E046 + .string "Well, now, I've had my coffee, and\n" + .string "that's what I need to get going!\p" + .string "But I made it too strong.\n" + .string "It gave me a headache…\p" + .string "Incidentally, is my old TEACHY TV\n" + .string "helping you?$" + +gUnknown_817E0EA:: @ 817E0EA + .string "Wahaha!\n" + .string "It's my grandson on the show!\p" + .string "Since he's the one doing the\n" + .string "teaching, you're bound to learn.$" + +gUnknown_817E14E:: @ 817E14E + .string "Hm… You're too busy to not even\n" + .string "have the time for TEACHY TV…\p" + .string "Time is money, and neither should\n" + .string "be ill spent…$" + +gUnknown_817E1BB:: @ 817E1BB + .string "VIRIDIAN CITY \n" + .string "The Eternally Green Paradise$" + +gUnknown_817E1E7:: @ 817E1E7 + .string "TRAINER TIPS\p" + .string "Catch POKéMON and expand your\n" + .string "collection.\p" + .string "The more you have, the easier it\n" + .string "is to battle.$" + +gUnknown_817E24D:: @ 817E24D + .string "TRAINER TIPS\p" + .string "The battle moves of POKéMON are\n" + .string "limited by their POWER POINTS, PP.\p" + .string "To replenish PP, rest your tired\n" + .string "POKéMON at a POKéMON CENTER.$" + +gUnknown_817E2DB:: @ 817E2DB + .string "VIRIDIAN CITY POKéMON GYM$" + +gUnknown_817E2F5:: @ 817E2F5 + .string "VIRIDIAN GYM's doors are locked…$" + diff --git a/data/maps/ViridianCity_Gym/map.json b/data/maps/ViridianCity_Gym/map.json new file mode 100644 index 000000000..6b9738c4d --- /dev/null +++ b/data/maps/ViridianCity_Gym/map.json @@ -0,0 +1,196 @@ +{ + "id": "MAP_VIRIDIAN_CITY_GYM", + "name": "ViridianCity_Gym", + "layout": "LAYOUT_VIRIDIAN_CITY_GYM", + "music": "BGM_FRLG_GYM", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_1", + "connections": null, + "object_events": [ + { + "graphics_id": "54", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "ViridianCity_Gym_EventScript_169FD6", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 12, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "ViridianCity_Gym_EventScript_16A004", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 11, + "y": 14, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "ViridianCity_Gym_EventScript_169FA8", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "ViridianCity_Gym_EventScript_169F7A", + "flag": "0" + }, + { + "graphics_id": "25", + "x": 2, + "y": 21, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "ViridianCity_Gym_EventScript_169F91", + "flag": "0" + }, + { + "graphics_id": "54", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 2, + "script": "ViridianCity_Gym_EventScript_169FBF", + "flag": "0" + }, + { + "graphics_id": "41", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "ViridianCity_Gym_EventScript_169FED", + "flag": "0" + }, + { + "graphics_id": "87", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_Gym_EventScript_169ECA", + "flag": "85" + }, + { + "graphics_id": "41", + "x": 13, + "y": 7, + "elevation": 3, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 3, + "script": "ViridianCity_Gym_EventScript_16A01B", + "flag": "0" + }, + { + "graphics_id": "91", + "x": 16, + "y": 20, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_Gym_EventScript_16A032", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 16, + "y": 22, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 2 + }, + { + "x": 17, + "y": 22, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 2 + }, + { + "x": 18, + "y": 22, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 2 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 15, + "y": 20, + "elevation": 0, + "script": "ViridianCity_Gym_EventScript_16A05E" + }, + { + "type": "bg_event_type_0", + "x": 19, + "y": 20, + "elevation": 0, + "script": "ViridianCity_Gym_EventScript_16A05E" + }, + { + "type": "hidden_item", + "x": 2, + "y": 2, + "elevation": 3, + "item": "ITEM_MACHO_BRACE", + "flag": "189", + "unknown": 129 + } + ] +} diff --git a/data/maps/ViridianCity_Gym/scripts.inc b/data/maps/ViridianCity_Gym/scripts.inc new file mode 100644 index 000000000..b03bc5d93 --- /dev/null +++ b/data/maps/ViridianCity_Gym/scripts.inc @@ -0,0 +1,117 @@ +ViridianCity_Gym_MapScripts:: @ 8169EC9 + .byte 0 + +ViridianCity_Gym_EventScript_169ECA:: @ 8169ECA + setvar VAR_0x8004, 15 + setvar VAR_0x8005, 2 + special UpdatePickStateFromSpecialVar8005 + trainerbattle 1, 350, 0, Text_18F352, Text_18F43F, EventScript_169F04 + checkflag FLAG_0x298 + goto_if 0, EventScript_169F2F + msgbox gUnknown_818F4A2 + closemessage + fadescreen 1 + removeobject 8 + fadescreen 0 + release + end + +EventScript_169F04:: @ 8169F04 + setvar VAR_0x8004, 15 + setvar VAR_0x8005, 3 + special SetFlavorTextFlagFromSpecialVars + setflag FLAG_0x0AD + setflag FLAG_0x4B7 + setflag FLAG_0x827 + setvar VAR_0x4054, 3 + setvar VAR_0x8008, 8 + call EventScript_1A6B18 + goto EventScript_169F2F + end + +EventScript_169F2F:: @ 8169F2F + msgbox gUnknown_818F586 + checkitemspace ITEM_TM26, 1 + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_169F70 + additem ITEM_TM26, 1 + giveitemfanfaremsg gUnknown_818F675, ITEM_TM26 + setflag FLAG_0x298 + msgbox gUnknown_818F695 + release + end + +EventScript_169F70:: @ 8169F70 + msgbox gUnknown_818F71B + release + end + +ViridianCity_Gym_EventScript_169F7A:: @ 8169F7A + trainerbattle 0, 296, 0, Text_18F7F3, Text_18F824 + msgbox gUnknown_818F840, 6 + end + +ViridianCity_Gym_EventScript_169F91:: @ 8169F91 + trainerbattle 0, 297, 0, Text_18F98A, Text_18F9BB + msgbox gUnknown_818F9CC, 6 + end + +ViridianCity_Gym_EventScript_169FA8:: @ 8169FA8 + trainerbattle 0, 322, 0, Text_18F7AD, Text_18F7D6 + msgbox gUnknown_818F7DD, 6 + end + +ViridianCity_Gym_EventScript_169FBF:: @ 8169FBF + trainerbattle 0, 323, 0, Text_18F86C, Text_18F899 + msgbox gUnknown_818F8A0, 6 + end + +ViridianCity_Gym_EventScript_169FD6:: @ 8169FD6 + trainerbattle 0, 324, 0, Text_18F92C, Text_18F95A + msgbox gUnknown_818F960, 6 + end + +ViridianCity_Gym_EventScript_169FED:: @ 8169FED + trainerbattle 0, 392, 0, Text_18F9E7, Text_18FA2D + msgbox gUnknown_818FA3B, 6 + end + +ViridianCity_Gym_EventScript_16A004:: @ 816A004 + trainerbattle 0, 400, 0, Text_18F73B, Text_18F769 + msgbox gUnknown_818F77B, 6 + end + +ViridianCity_Gym_EventScript_16A01B:: @ 816A01B + trainerbattle 0, 401, 0, Text_18F8CB, Text_18F8EE + msgbox gUnknown_818F8FE, 6 + end + +ViridianCity_Gym_EventScript_16A032:: @ 816A032 + lock + faceplayer + checkflag FLAG_0x4B7 + goto_if_eq EventScript_16A047 + msgbox gUnknown_818FA81 + release + end + +EventScript_16A047:: @ 816A047 + setvar VAR_0x8004, 15 + setvar VAR_0x8005, 4 + special SetFlavorTextFlagFromSpecialVars + msgbox gUnknown_818FB56 + release + end + +ViridianCity_Gym_EventScript_16A05E:: @ 816A05E + lockall + checkflag FLAG_0x827 + goto_if_eq EventScript_16A072 + msgbox gUnknown_818FB8D + releaseall + end + +EventScript_16A072:: @ 816A072 + msgbox gUnknown_818FBC1 + releaseall + end diff --git a/data/maps/ViridianCity_Gym/text.inc b/data/maps/ViridianCity_Gym/text.inc new file mode 100644 index 000000000..608d52755 --- /dev/null +++ b/data/maps/ViridianCity_Gym/text.inc @@ -0,0 +1,171 @@ +Text_18F352:: @ 818F352 + .string "Fwahahaha!\n" + .string "Welcome to my hideout!\p" + .string "It shall be so until I can restore\n" + .string "TEAM ROCKET to its former glory.\p" + .string "But, you have found me again.\n" + .string "So be it.\l" + .string "This time, I'm not holding back!\p" + .string "Once more, you shall face\n" + .string "GIOVANNI, the greatest TRAINER!{PLAY_BGM}{BGM_FRLG_SUSPICIOUS_EYE}$" + +Text_18F43F:: @ 818F43F + .string "Ha!\n" + .string "That was a truly intense fight.\l" + .string "You have won!\p" + .string "As proof, here is the EARTHBADGE!\n" + .string "{PAUSE_MUSIC}{PLAY_BGM}{MUS_ME_BACHI}{PAUSE 0xFE}{PAUSE 0x56}{RESUME_MUSIC}$" + +gUnknown_818F4A2:: @ 818F4A2 + .string "Having lost in this fashion, \n" + .string "I can't face my followers.\l" + .string "I have betrayed their trust.\p" + .string "As of today, TEAM ROCKET is\n" + .string "finished forever!\p" + .string "As for myself, I shall dedicate\n" + .string "my life to training again.\p" + .string "Let us meet again someday!\n" + .string "Farewell!$" + +gUnknown_818F586:: @ 818F586 + .string "The EARTHBADGE makes POKéMON of\n" + .string "any level obey without question.\p" + .string "It is evidence of your mastery as\n" + .string "a POKéMON TRAINER.\p" + .string "With it, you can challenge the\n" + .string "POKéMON LEAGUE.\p" + .string "Also, take this TM.\p" + .string "Consider it a gift for your POKéMON\n" + .string "LEAGUE challenge.$" + +gUnknown_818F675:: @ 818F675 + .string "{PLAYER} received TM26\n" + .string "from GIOVANNI.$" + +gUnknown_818F695:: @ 818F695 + .string "TM26 contains EARTHQUAKE.\p" + .string "It is a powerful attack that causes\n" + .string "a massive tremor.\p" + .string "I made it when I ran the GYM here,\n" + .string "far too long ago… $" + +gUnknown_818F71B:: @ 818F71B + .string "You do not have space for this!$" + +Text_18F73B:: @ 818F73B + .string "Heh!\n" + .string "You must be running out of steam\l" + .string "by now!$" + +Text_18F769:: @ 818F769 + .string "I ran out of gas!$" + +gUnknown_818F77B:: @ 818F77B + .string "You'll need power to keep up with\n" + .string "our GYM LEADER.$" + +Text_18F7AD:: @ 818F7AD + .string "Rrrroar!\n" + .string "I'm working myself into a rage!$" + +Text_18F7D6:: @ 818F7D6 + .string "Wargh!$" + +gUnknown_818F7DD:: @ 818F7DD + .string "I'm still not worthy!$" + +Text_18F7F3:: @ 818F7F3 + .string "POKéMON and I, we make wonderful\n" + .string "music together!$" + +Text_18F824:: @ 818F824 + .string "You are in perfect harmony!$" + +gUnknown_818F840:: @ 818F840 + .string "Do you know the identity of our\n" + .string "GYM LEADER?$" + +Text_18F86C:: @ 818F86C + .string "Karate is the ultimate form of\n" + .string "martial arts!$" + +Text_18F899:: @ 818F899 + .string "Aiyah!$" + +gUnknown_818F8A0:: @ 818F8A0 + .string "If my POKéMON were as good at\n" + .string "karate as I…$" + +Text_18F8CB:: @ 818F8CB + .string "The truly talented win with style.$" + +Text_18F8EE:: @ 818F8EE + .string "I lost my grip!$" + +gUnknown_818F8FE:: @ 818F8FE + .string "The LEADER will scold me for\n" + .string "losing this way…$" + +Text_18F92C:: @ 818F92C + .string "I'm the KARATE KING!\n" + .string "Your fate rests with me!$" + +Text_18F95A:: @ 818F95A + .string "Ayah!$" + +gUnknown_818F960:: @ 818F960 + .string "The POKéMON LEAGUE?\n" + .string "You? Don't get cocky!$" + +Text_18F98A:: @ 818F98A + .string "Your POKéMON will cower at the\n" + .string "crack of my whip!$" + +Text_18F9BB:: @ 818F9BB + .string "Yowch!\n" + .string "Whiplash!$" + +gUnknown_818F9CC:: @ 818F9CC + .string "Wait!\n" + .string "I was just careless!$" + +Text_18F9E7:: @ 818F9E7 + .string "VIRIDIAN GYM was closed for a\n" + .string "long time.\p" + .string "But now, our LEADER is back!$" + +Text_18FA2D:: @ 818FA2D + .string "I was beaten?$" + +gUnknown_818FA3B:: @ 818FA3B + .string "You can go on to the POKéMON\n" + .string "LEAGUE only by defeating our GYM\l" + .string "LEADER!$" + +gUnknown_818FA81:: @ 818FA81 + .string "Yo!\n" + .string "Champ in the making!\p" + .string "Even I don't know the VIRIDIAN\n" + .string "LEADER's identity.\p" + .string "But one thing's certain.\n" + .string "This will be the toughest of all\l" + .string "the GYM LEADERS.\p" + .string "Also, I heard that the TRAINERS\n" + .string "here like GROUND-type POKéMON.$" + +gUnknown_818FB56:: @ 818FB56 + .string "Blow me away! GIOVANNI was the\n" + .string "GYM LEADER of VIRIDIAN?$" + +gUnknown_818FB8D:: @ 818FB8D + .string "VIRIDIAN POKéMON GYM\n" + .string "LEADER: ?\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +gUnknown_818FBC1:: @ 818FBC1 + .string "VIRIDIAN POKéMON GYM\n" + .string "LEADER: GIOVANNI\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/ViridianCity_House1/map.json b/data/maps/ViridianCity_House1/map.json new file mode 100644 index 000000000..ef18aa4c4 --- /dev/null +++ b/data/maps/ViridianCity_House1/map.json @@ -0,0 +1,89 @@ +{ + "id": "MAP_VIRIDIAN_CITY_HOUSE1", + "name": "ViridianCity_House1", + "layout": "LAYOUT_VIRIDIAN_CITY_HOUSE1", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "30", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_House1_EventScript_169E9B", + "flag": "0" + }, + { + "graphics_id": "17", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_House1_EventScript_169EA4", + "flag": "0" + }, + { + "graphics_id": "110", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "5", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_House1_EventScript_169EAD", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 1 + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 1 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 7, + "y": 1, + "elevation": 0, + "script": "ViridianCity_House1_EventScript_169EC0" + } + ] +} diff --git a/data/maps/ViridianCity_House1/scripts.inc b/data/maps/ViridianCity_House1/scripts.inc new file mode 100644 index 000000000..b82b0ed2f --- /dev/null +++ b/data/maps/ViridianCity_House1/scripts.inc @@ -0,0 +1,24 @@ +ViridianCity_House1_MapScripts:: @ 8169E9A + .byte 0 + +ViridianCity_House1_EventScript_169E9B:: @ 8169E9B + msgbox gUnknown_818F292, 2 + end + +ViridianCity_House1_EventScript_169EA4:: @ 8169EA4 + msgbox gUnknown_818F30F, 2 + end + +ViridianCity_House1_EventScript_169EAD:: @ 8169EAD + lock + faceplayer + waitse + playmoncry SPECIES_SPEAROW, 0 + msgbox gUnknown_818F32C + waitmoncry + release + end + +ViridianCity_House1_EventScript_169EC0:: @ 8169EC0 + msgbox gUnknown_818F33D, 3 + end diff --git a/data/maps/ViridianCity_House1/text.inc b/data/maps/ViridianCity_House1/text.inc new file mode 100644 index 000000000..c1ec37238 --- /dev/null +++ b/data/maps/ViridianCity_House1/text.inc @@ -0,0 +1,16 @@ +gUnknown_818F292:: @ 818F292 + .string "Coming up with nicknames is fun,\n" + .string "but it's not so easy to do.\p" + .string "Clever names are nice, but simple\n" + .string "names are easier to remember.$" + +gUnknown_818F30F:: @ 818F30F + .string "My daddy loves POKéMON, too.$" + +gUnknown_818F32C:: @ 818F32C + .string "SPEARY: Tetweet!$" + +gUnknown_818F33D:: @ 818F33D + .string "SPEAROW\n" + .string "Name: SPEARY$" + diff --git a/data/maps/ViridianCity_House2/map.json b/data/maps/ViridianCity_House2/map.json new file mode 100644 index 000000000..5f6b02a03 --- /dev/null +++ b/data/maps/ViridianCity_House2/map.json @@ -0,0 +1,104 @@ +{ + "id": "MAP_VIRIDIAN_CITY_HOUSE2", + "name": "ViridianCity_House2", + "layout": "LAYOUT_VIRIDIAN_CITY_HOUSE2", + "music": "BGM_FRLG_VIRIDIAN_CITY", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "28", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_House2_EventScript_16A094", + "flag": "0" + }, + { + "graphics_id": "22", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_House2_EventScript_16A07D", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 3 + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 3 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 4, + "y": 4, + "elevation": 0, + "script": "ViridianCity_House2_EventScript_16A0AB" + }, + { + "type": "bg_event_type_0", + "x": 5, + "y": 1, + "elevation": 0, + "script": "ViridianCity_House2_EventScript_16A11D" + }, + { + "type": "bg_event_type_0", + "x": 4, + "y": 1, + "elevation": 0, + "script": "ViridianCity_House2_EventScript_16A11D" + }, + { + "type": "bg_event_type_1", + "x": 9, + "y": 2, + "elevation": 0, + "script": "ViridianCity_House2_EventScript_1ACD65" + }, + { + "type": "bg_event_type_1", + "x": 8, + "y": 2, + "elevation": 0, + "script": "ViridianCity_House2_EventScript_1ACD65" + } + ] +} diff --git a/data/maps/ViridianCity_House2/scripts.inc b/data/maps/ViridianCity_House2/scripts.inc new file mode 100644 index 000000000..c8388e2f7 --- /dev/null +++ b/data/maps/ViridianCity_House2/scripts.inc @@ -0,0 +1,97 @@ +ViridianCity_House2_MapScripts:: @ 816A07C + .byte 0 + +ViridianCity_House2_EventScript_16A07D:: @ 816A07D + lock + faceplayer + msgbox gUnknown_818FC00 + closemessage + applymovement 2, Movement_1A75E9 + waitmovement 0 + release + end + +ViridianCity_House2_EventScript_16A094:: @ 816A094 + lock + faceplayer + msgbox gUnknown_818FC2B + closemessage + applymovement 1, Movement_1A75E5 + waitmovement 0 + release + end + +ViridianCity_House2_EventScript_16A0AB:: @ 816A0AB + lockall + msgbox gUnknown_818FC65 + msgbox gUnknown_818FF19, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16A11B + msgbox gUnknown_818FD23 + msgbox gUnknown_818FF19, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16A11B + msgbox gUnknown_818FDA8 + msgbox gUnknown_818FF19, MSGBOX_YESNO + compare_var_to_value VAR_RESULT, 0 + goto_if_eq EventScript_16A11B + msgbox gUnknown_818FE5C + applymovement 2, Movement_1A75E9 + waitmovement 0 + textcolor 1 + msgbox gUnknown_818FF28 + releaseall + end + +EventScript_16A11B:: @ 816A11B + releaseall + end + +ViridianCity_House2_EventScript_16A11D:: @ 816A11D + lockall + msgbox gUnknown_818FF4B + goto EventScript_16A12C + end + +EventScript_16A12C:: @ 816A12C + message Text_18FF88 + waitmessage + multichoicegrid 7, 1, 15, 3, 0 + switch VAR_RESULT + case 0, EventScript_16A18B + case 1, EventScript_16A1A7 + case 2, EventScript_16A1C3 + case 3, EventScript_16A199 + case 4, EventScript_16A1B5 + case 5, EventScript_16A1D1 + case 127, EventScript_16A1D1 + end + +EventScript_16A18B:: @ 816A18B + msgbox gUnknown_818FFA9 + goto EventScript_16A12C + end + +EventScript_16A199:: @ 816A199 + msgbox gUnknown_8190025 + goto EventScript_16A12C + end + +EventScript_16A1A7:: @ 816A1A7 + msgbox gUnknown_819009F + goto EventScript_16A12C + end + +EventScript_16A1B5:: @ 816A1B5 + msgbox gUnknown_819010F + goto EventScript_16A12C + end + +EventScript_16A1C3:: @ 816A1C3 + msgbox gUnknown_8190199 + goto EventScript_16A12C + end + +EventScript_16A1D1:: @ 816A1D1 + releaseall + end diff --git a/data/maps/ViridianCity_House2/text.inc b/data/maps/ViridianCity_House2/text.inc new file mode 100644 index 000000000..a575c0f34 --- /dev/null +++ b/data/maps/ViridianCity_House2/text.inc @@ -0,0 +1,93 @@ +gUnknown_818FC00:: @ 818FC00 + .string "Whew! I'm trying to memorize all my\n" + .string "notes.$" + +gUnknown_818FC2B:: @ 818FC2B + .string "Okay!\p" + .string "Be sure to read what's on the\n" + .string "blackboard carefully!$" + +gUnknown_818FC65:: @ 818FC65 + .string "Let's check out the notebook.\p" + .string "First page…\p" + .string "POKé BALLS are used to catch\n" + .string "POKéMON.\p" + .string "Up to six POKéMON can be carried\n" + .string "in your party.\p" + .string "People who raise and battle\n" + .string "with POKéMON are called TRAINERS.$" + +gUnknown_818FD23:: @ 818FD23 + .string "Second page…\p" + .string "A healthy POKéMON may be hard to\n" + .string "catch, so weaken it first.\p" + .string "Poison, burn, or cause another\n" + .string "status problem to weaken it.$" + +gUnknown_818FDA8:: @ 818FDA8 + .string "Third page…\p" + .string "POKéMON TRAINERS seek others to\n" + .string "engage in POKéMON battles.\p" + .string "To TRAINERS, the taste of victory\n" + .string "is sweet, indeed.\p" + .string "Battles are constantly waged at\n" + .string "POKéMON GYMS everywhere.$" + +gUnknown_818FE5C:: @ 818FE5C + .string "Fourth page…\p" + .string "The ultimate goal for all POKéMON\n" + .string "TRAINERS is simple.\p" + .string "It is to defeat the top eight\n" + .string "POKéMON GYM LEADERS.\p" + .string "Do so to earn the right to face…\p" + .string "The ELITE FOUR of the POKéMON\n" + .string "LEAGUE!$" + +gUnknown_818FF19:: @ 818FF19 + .string "Turn the page?$" + +gUnknown_818FF28:: @ 818FF28 + .string "GIRL: Hey!\n" + .string "Don't look at my notes!$" + +gUnknown_818FF4B:: @ 818FF4B + .string "The blackboard lists POKéMON\n" + .string "STATUS problems during battles.$" + +Text_18FF88:: @ 818FF88 + .string "Which topic do you want to read?$" + +gUnknown_818FFA9:: @ 818FFA9 + .string "A POKéMON can't attack if it's\n" + .string "asleep.\p" + .string "POKéMON will stay asleep even\n" + .string "after battles.\p" + .string "Use AWAKENING to awaken one\n" + .string "from sleep.$" + +gUnknown_8190025:: @ 8190025 + .string "A burn reduces ATTACK power.\n" + .string "It also causes ongoing HP loss.\p" + .string "A burn remains after a battle.\n" + .string "Use BURN HEAL to cure a burn.$" + +gUnknown_819009F:: @ 819009F + .string "When poisoned, a POKéMON's health\n" + .string "steadily drops.\p" + .string "Poison lingers after battles.\n" + .string "Use an ANTIDOTE to cure poison!$" + +gUnknown_819010F:: @ 819010F + .string "A frozen POKéMON becomes\n" + .string "helplessly immobile.\p" + .string "It stays frozen even after the\n" + .string "battle ends.\p" + .string "Use ICE HEAL to thaw out the\n" + .string "suffering POKéMON.$" + +gUnknown_8190199:: @ 8190199 + .string "Paralysis reduces SPEED and may\n" + .string "prevent the POKéMON from moving.\p" + .string "Paralysis remains after battles.\n" + .string "Use PARLYZ HEAL for treatment.$" + diff --git a/data/maps/ViridianCity_Mart/map.json b/data/maps/ViridianCity_Mart/map.json new file mode 100644 index 000000000..3915e053d --- /dev/null +++ b/data/maps/ViridianCity_Mart/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_VIRIDIAN_CITY_MART", + "name": "ViridianCity_Mart", + "layout": "LAYOUT_MART", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "68", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "10", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_Mart_EventScript_16A268", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_Mart_EventScript_16A2B7", + "flag": "0" + }, + { + "graphics_id": "23", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "3", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_Mart_EventScript_16A2AE", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 4 + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 4 + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 4 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ViridianCity_Mart/scripts.inc b/data/maps/ViridianCity_Mart/scripts.inc new file mode 100644 index 000000000..44d9437ea --- /dev/null +++ b/data/maps/ViridianCity_Mart/scripts.inc @@ -0,0 +1,90 @@ +ViridianCity_Mart_MapScripts:: @ 816A1D3 + map_script 1, ViridianCity_Mart_MapScript1_16A1DE + map_script 2, ViridianCity_Mart_MapScript2_16A1FB + .byte 0 + +ViridianCity_Mart_MapScript1_16A1DE:: @ 816A1DE + checkflag FLAG_0x829 + goto_if 0, EventScript_16A1E8 + end + +EventScript_16A1E8:: @ 816A1E8 + setmetatile 1, 3, 703, 1 + setmetatile 1, 4, 704, 1 + end + +ViridianCity_Mart_MapScript2_16A1FB:: @ 816A1FB + map_script_2 VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 0, EventScript_16A205 + .2byte 0 + +EventScript_16A205:: @ 816A205 + lockall + textcolor 0 + applymovement 1, Movement_1A75ED + waitmovement 0 + msgbox gUnknown_819021A + closemessage + applymovement 1, Movement_16A262 + applymovement 255, Movement_16A25C + waitmovement 0 + msgbox gUnknown_819023A + setvar VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1 + additem ITEM_OAKS_PARCEL, 1 + giveitemfanfaremsg gUnknown_8190289, ITEM_OAKS_PARCEL, 1, BGM_FRLG_ME_KEYITEM + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 5 + releaseall + end + +Movement_16A25C:: @ 816A25C + step_11 + step_11 + step_11 + step_11 + step_2f + step_end + +Movement_16A262:: @ 816A262 + step_1c + step_1c + step_1c + step_1c + step_30 + step_end + +ViridianCity_Mart_EventScript_16A268:: @ 816A268 + lock + faceplayer + compare_var_to_value VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1 + goto_if_eq EventScript_16A2A4 + special sub_8110AB4 + compare_var_to_value VAR_RESULT, 2 + goto_if_eq EventScript_1A7AE0 + message Text_1A6211 + waitmessage + pokemart Items_16A298 + msgbox gUnknown_81A5190 + release + end + + .align 2 +Items_16A298:: @ 816A298 + .2byte ITEM_POKE_BALL + .2byte ITEM_POTION + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_NONE + release + end + +EventScript_16A2A4:: @ 816A2A4 + msgbox Text_1902BF + release + end + +ViridianCity_Mart_EventScript_16A2AE:: @ 816A2AE + msgbox gUnknown_81902F5, 2 + end + +ViridianCity_Mart_EventScript_16A2B7:: @ 816A2B7 + msgbox gUnknown_819032C, 2 + end diff --git a/data/maps/ViridianCity_Mart/text.inc b/data/maps/ViridianCity_Mart/text.inc new file mode 100644 index 000000000..a610e83cd --- /dev/null +++ b/data/maps/ViridianCity_Mart/text.inc @@ -0,0 +1,26 @@ +gUnknown_819021A:: @ 819021A + .string "Hey!\n" + .string "You came from PALLET TOWN?$" + +gUnknown_819023A:: @ 819023A + .string "You know PROF. OAK, right?\p" + .string "His order came in.\n" + .string "Can I get you to take it to him?$" + +gUnknown_8190289:: @ 8190289 + .string "{PLAYER} received OAK'S PARCEL\n" + .string "from the POKéMON MART clerk.$" + +Text_1902BF:: @ 81902BF + .string "Okay, thanks! Please say hi to\n" + .string "PROF. OAK for me, too.$" + +gUnknown_81902F5:: @ 81902F5 + .string "This shop does good business in\n" + .string "ANTIDOTES, I've heard.$" + +gUnknown_819032C:: @ 819032C + .string "I've got to buy some POTIONS.\p" + .string "You never know when your POKéMON\n" + .string "will need quick healing.$" + diff --git a/data/maps/ViridianCity_PokemonCenter_1F/map.json b/data/maps/ViridianCity_PokemonCenter_1F/map.json new file mode 100644 index 000000000..a63b5d733 --- /dev/null +++ b/data/maps/ViridianCity_PokemonCenter_1F/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", + "name": "ViridianCity_PokemonCenter_1F", + "layout": "LAYOUT_POKEMON_CENTER_1F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "64", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_PokemonCenter_1F_EventScript_16A2CF", + "flag": "0" + }, + { + "graphics_id": "61", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_PokemonCenter_1F_EventScript_16A2E1", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "1", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_PokemonCenter_1F_EventScript_16A2D8", + "flag": "0" + }, + { + "graphics_id": "18", + "x": 2, + "y": 3, + "elevation": 3, + "movement_type": "2", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_PokemonCenter_1F_EventScript_16A2EA", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 0 + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 0 + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": 0 + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ViridianCity_PokemonCenter_1F/scripts.inc b/data/maps/ViridianCity_PokemonCenter_1F/scripts.inc new file mode 100644 index 000000000..507b2bfe4 --- /dev/null +++ b/data/maps/ViridianCity_PokemonCenter_1F/scripts.inc @@ -0,0 +1,27 @@ +ViridianCity_PokemonCenter_1F_MapScripts:: @ 816A2C0 + map_script 3, ViridianCity_PokemonCenter_1F_MapScript1_16A2CB + map_script 5, ViridianCity_PokemonCenter_1F_MapScript2_1BC05C + .byte 0 + +ViridianCity_PokemonCenter_1F_MapScript1_16A2CB:: @ 816A2CB + setrespawn SPAWN_VIRIDIAN_CITY + end + +ViridianCity_PokemonCenter_1F_EventScript_16A2CF:: @ 816A2CF + lock + faceplayer + call EventScript_1A6578 + release + end + +ViridianCity_PokemonCenter_1F_EventScript_16A2D8:: @ 816A2D8 + msgbox gUnknown_81903E5, 2 + end + +ViridianCity_PokemonCenter_1F_EventScript_16A2E1:: @ 816A2E1 + msgbox gUnknown_8190384, 2 + end + +ViridianCity_PokemonCenter_1F_EventScript_16A2EA:: @ 816A2EA + msgbox gUnknown_8190450, 2 + end diff --git a/data/maps/ViridianCity_PokemonCenter_1F/text.inc b/data/maps/ViridianCity_PokemonCenter_1F/text.inc new file mode 100644 index 000000000..18b535a45 --- /dev/null +++ b/data/maps/ViridianCity_PokemonCenter_1F/text.inc @@ -0,0 +1,18 @@ +gUnknown_8190384:: @ 8190384 + .string "Please feel free to use that PC in\n" + .string "the corner.\p" + .string "The receptionist told me so.\n" + .string "It's so kind of her!$" + +gUnknown_81903E5:: @ 81903E5 + .string "There's a POKéMON CENTER in every\n" + .string "town ahead.\p" + .string "They charge no money, so don't\n" + .string "be shy about healing POKéMON.$" + +gUnknown_8190450:: @ 8190450 + .string "POKéMON CENTERS heal your tired,\n" + .string "hurt, or fainted POKéMON.\p" + .string "They make all POKéMON completely\n" + .string "healthy.$" + diff --git a/data/maps/ViridianCity_PokemonCenter_2F/map.json b/data/maps/ViridianCity_PokemonCenter_2F/map.json new file mode 100644 index 000000000..5d66d7096 --- /dev/null +++ b/data/maps/ViridianCity_PokemonCenter_2F/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F", + "name": "ViridianCity_PokemonCenter_2F", + "layout": "LAYOUT_POKEMON_CENTER_2F", + "music": "BGM_FRLG_POKEMON_CENTER", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_8", + "unknown_18": 0, + "unknown_19": 0, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "65", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_PokemonCenter_2F_EventScript_1A8CF6", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_PokemonCenter_2F_EventScript_1A8CFC", + "flag": "0" + }, + { + "graphics_id": "65", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_PokemonCenter_2F_EventScript_1A8D02", + "flag": "0" + }, + { + "graphics_id": "69", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianCity_PokemonCenter_2F_EventScript_1BB1D2", + "flag": "112" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_04", + "dest_warp_id": 0 + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNKNOWN_MAP_00_01", + "dest_warp_id": 0 + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ViridianCity_PokemonCenter_2F/scripts.inc b/data/maps/ViridianCity_PokemonCenter_2F/scripts.inc new file mode 100644 index 000000000..18e0018ba --- /dev/null +++ b/data/maps/ViridianCity_PokemonCenter_2F/scripts.inc @@ -0,0 +1,18 @@ +ViridianCity_PokemonCenter_2F_MapScripts:: @ 816A2F3 + map_script 2, ViridianCity_PokemonCenter_2F_MapScript1_1BB2A3 + map_script 4, ViridianCity_PokemonCenter_2F_MapScript2_1BB1ED + map_script 1, ViridianCity_PokemonCenter_2F_MapScript3_1BB237 + map_script 3, ViridianCity_PokemonCenter_2F_MapScript4_1BB1B4 + .byte 0 + +ViridianCity_PokemonCenter_2F_EventScript_16A308:: @ 816A308 + call EventScript_1BB4A3 + end + +EventScript_16A30E:: @ 816A30E + call EventScript_1BB6AB + end + +EventScript_16A314:: @ 816A314 + call EventScript_1BB7DE + end diff --git a/data/maps/ViridianForest/map.json b/data/maps/ViridianForest/map.json new file mode 100644 index 000000000..ca91c7017 --- /dev/null +++ b/data/maps/ViridianForest/map.json @@ -0,0 +1,267 @@ +{ + "id": "MAP_VIRIDIAN_FOREST", + "name": "ViridianForest", + "layout": "LAYOUT_VIRIDIAN_FOREST", + "music": "BGM_FRLG_VIRIDIAN_FOREST", + "region_map_section": "MAPSEC_VIRIDIAN_FOREST", + "requires_flash": false, + "weather": "WEATHER_CLOUDY", + "map_type": "MAP_TYPE_3", + "unknown_18": 1, + "unknown_19": 7, + "elevator_flag": 0, + "battle_scene": "BATTLE_SCENE_0", + "connections": null, + "object_events": [ + { + "graphics_id": "18", + "x": 29, + "y": 58, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianForest_EventScript_160529", + "flag": "0" + }, + { + "graphics_id": "19", + "x": 45, + "y": 58, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianForest_EventScript_160532", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 47, + "y": 45, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 5, + "script": "ViridianForest_EventScript_160571", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 47, + "y": 29, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "ViridianForest_EventScript_160588", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 7, + "y": 22, + "elevation": 3, + "movement_type": "9", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 4, + "script": "ViridianForest_EventScript_16059F", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 5, + "y": 41, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianForest_EventScript_1BE5A8", + "flag": "342" + }, + { + "graphics_id": "92", + "x": 40, + "y": 21, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianForest_EventScript_1BE5B5", + "flag": "343" + }, + { + "graphics_id": "92", + "x": 21, + "y": 34, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianForest_EventScript_1BE5C2", + "flag": "344" + }, + { + "graphics_id": "20", + "x": 43, + "y": 6, + "elevation": 3, + "movement_type": "13", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "ViridianForest_EventScript_1605B6", + "flag": "0" + }, + { + "graphics_id": "20", + "x": 16, + "y": 5, + "elevation": 3, + "movement_type": "7", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 1, + "trainer_sight_or_berry_tree_id": 1, + "script": "ViridianForest_EventScript_1605CD", + "flag": "0" + }, + { + "graphics_id": "92", + "x": 49, + "y": 60, + "elevation": 3, + "movement_type": "8", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": 0, + "trainer_sight_or_berry_tree_id": 0, + "script": "ViridianForest_EventScript_1BEAC9", + "flag": "446" + } + ], + "warp_events": [ + { + "x": 29, + "y": 62, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": 3 + }, + { + "x": 28, + "y": 62, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": 3 + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": 1 + }, + { + "x": 30, + "y": 62, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": 3 + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": 1 + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "bg_event_type_0", + "x": 39, + "y": 59, + "elevation": 3, + "script": "ViridianForest_EventScript_16053B" + }, + { + "type": "bg_event_type_0", + "x": 43, + "y": 26, + "elevation": 0, + "script": "ViridianForest_EventScript_16054D" + }, + { + "type": "bg_event_type_0", + "x": 9, + "y": 29, + "elevation": 0, + "script": "ViridianForest_EventScript_160556" + }, + { + "type": "bg_event_type_0", + "x": 6, + "y": 12, + "elevation": 0, + "script": "ViridianForest_EventScript_160568" + }, + { + "type": "bg_event_type_0", + "x": 28, + "y": 44, + "elevation": 0, + "script": "ViridianForest_EventScript_160544" + }, + { + "type": "bg_event_type_0", + "x": 31, + "y": 60, + "elevation": 0, + "script": "ViridianForest_EventScript_16055F" + }, + { + "type": "hidden_item", + "x": 3, + "y": 22, + "elevation": 3, + "item": "ITEM_POTION", + "flag": "0", + "unknown": 1 + }, + { + "type": "hidden_item", + "x": 28, + "y": 57, + "elevation": 0, + "item": "ITEM_ANTIDOTE", + "flag": "1", + "unknown": 1 + } + ] +} diff --git a/data/maps/ViridianForest/scripts.inc b/data/maps/ViridianForest/scripts.inc new file mode 100644 index 000000000..bf8438d65 --- /dev/null +++ b/data/maps/ViridianForest/scripts.inc @@ -0,0 +1,64 @@ +ViridianForest_MapScripts:: @ 816051F + map_script 3, ViridianForest_MapScript1_160525 + .byte 0 + +ViridianForest_MapScript1_160525:: @ 8160525 + setworldmapflag FLAG_WORLD_MAP_VIRIDIAN_FOREST + end + +ViridianForest_EventScript_160529:: @ 8160529 + msgbox gUnknown_8172255, 2 + end + +ViridianForest_EventScript_160532:: @ 8160532 + msgbox gUnknown_8172559, 2 + end + +ViridianForest_EventScript_16053B:: @ 816053B + msgbox gUnknown_81725C7, 3 + end + +ViridianForest_EventScript_160544:: @ 8160544 + msgbox gUnknown_8172629, 3 + end + +ViridianForest_EventScript_16054D:: @ 816054D + msgbox gUnknown_817265C, 3 + end + +ViridianForest_EventScript_160556:: @ 8160556 + msgbox gUnknown_81726A3, 3 + end + +ViridianForest_EventScript_16055F:: @ 816055F + msgbox gUnknown_817271D, 3 + end + +ViridianForest_EventScript_160568:: @ 8160568 + msgbox gUnknown_8172773, 3 + end + +ViridianForest_EventScript_160571:: @ 8160571 + trainerbattle 0, 102, 0, Text_1722C7, Text_1722F9 + msgbox gUnknown_8172315, 6 + end + +ViridianForest_EventScript_160588:: @ 8160588 + trainerbattle 0, 103, 0, Text_17234A, Text_17237D + msgbox gUnknown_8172398, 6 + end + +ViridianForest_EventScript_16059F:: @ 816059F + trainerbattle 0, 104, 0, Text_1723D4, Text_172402 + msgbox gUnknown_817241F, 6 + end + +ViridianForest_EventScript_1605B6:: @ 81605B6 + trainerbattle 0, 531, 0, Text_172482, Text_1724BF + msgbox gUnknown_81724DC, 6 + end + +ViridianForest_EventScript_1605CD:: @ 81605CD + trainerbattle 0, 532, 0, Text_1724F9, Text_17251B + msgbox gUnknown_8172527, 6 + end diff --git a/data/maps/ViridianForest/text.inc b/data/maps/ViridianForest/text.inc new file mode 100644 index 000000000..e3dc737a2 --- /dev/null +++ b/data/maps/ViridianForest/text.inc @@ -0,0 +1,105 @@ +gUnknown_8172255:: @ 8172255 + .string "I came here with some friends to\n" + .string "catch us some BUG POKéMON!\p" + .string "They're all itching to get into\n" + .string "some POKéMON battles!$" + +Text_1722C7:: @ 81722C7 + .string "Hey! You have POKéMON!\n" + .string "Come on!\l" + .string "Let's battle 'em!$" + +Text_1722F9:: @ 81722F9 + .string "No!\nCATERPIE can't hack it!$" + +gUnknown_8172315:: @ 8172315 + .string "Ssh! You'll scare the bugs away.\n" + .string "Another time, okay?$" + +Text_17234A:: @ 817234A + .string "Yo!\n" + .string "You can't jam out if you're a\l" + .string "POKéMON TRAINER!$" + +Text_17237D:: @ 817237D + .string "Huh?\n" + .string "I ran out of POKéMON!$" + +gUnknown_8172398:: @ 8172398 + .string "That totally stinks! I'm going to\n" + .string "catch some stronger ones!$" + +Text_1723D4:: @ 81723D4 + .string "Hey, wait up!\n" + .string "What's the hurry? Why the rush?$" + +Text_172402:: @ 8172402 + .string "I give!\n" + .string "You're good at this!$" + +gUnknown_817241F:: @ 817241F + .string "Sometimes, you can find stuff on\n" + .string "the ground.\p" + .string "I'm looking for the stuff I\n" + .string "dropped. Can you help me?$" + +Text_172482:: @ 8172482 + .string "I might be little, but I won't like\n" + .string "it if you go easy on me!$" + +Text_1724BF:: @ 81724BF + .string "Oh, boo.\n" + .string "Nothing went right.$" + +gUnknown_81724DC:: @ 81724DC + .string "I lost some of my allowance…$" + +Text_1724F9:: @ 81724F9 + .string "Did you know that POKéMON evolve?$" + +Text_17251B:: @ 817251B + .string "Oh!\n" + .string "I lost!$" + +gUnknown_8172527:: @ 8172527 + .string "BUG POKéMON evolve quickly.\n" + .string "They're a lot of fun!$" + +gUnknown_8172559:: @ 8172559 + .string "I was throwing POKé BALLS to\n" + .string "catch POKéMON, and I ran out.\p" + .string "That's why you can never have too\n" + .string "many POKé BALLS.$" + +gUnknown_81725C7:: @ 81725C7 + .string "TRAINER TIPS\p" + .string "If your POKéMON are weak and you\n" + .string "want to avoid battles, stay away\l" + .string "from grassy areas!$" + +gUnknown_8172629:: @ 8172629 + .string "For poison, use ANTIDOTE!\n" + .string "Get it at POKéMON MARTS!$" + +gUnknown_817265C:: @ 817265C + .string "TRAINER TIPS\p" + .string "Contact PROF. OAK via a PC to\n" + .string "get your POKéDEX evaluated!$" + +gUnknown_81726A3:: @ 81726A3 + .string "TRAINER TIPS\p" + .string "You can't catch a POKéMON that\n" + .string "belongs to someone else.\p" + .string "Throw POKé BALLS only at wild\n" + .string "POKéMON to catch them!$" + +gUnknown_817271D:: @ 817271D + .string "TRAINER TIPS\p" + .string "Weaken POKéMON before attempting\n" + .string "capture!\p" + .string "When healthy, they may escape!$" + +gUnknown_8172773:: @ 8172773 + .string "LEAVING VIRIDIAN FOREST\n" + .string "PEWTER CITY AHEAD$" + diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json new file mode 100644 index 000000000..3f4e458ca --- /dev/null +++ b/data/maps/map_groups.json @@ -0,0 +1,623 @@ +{ + "group_order": [ + "gMapGroup0", + "gMapGroup1", + "gMapGroup2", + "gMapGroup3", + "gMapGroup4", + "gMapGroup5", + "gMapGroup6", + "gMapGroup7", + "gMapGroup8", + "gMapGroup9", + "gMapGroup10", + "gMapGroup11", + "gMapGroup12", + "gMapGroup13", + "gMapGroup14", + "gMapGroup15", + "gMapGroup16", + "gMapGroup17", + "gMapGroup18", + "gMapGroup19", + "gMapGroup20", + "gMapGroup21", + "gMapGroup22", + "gMapGroup23", + "gMapGroup24", + "gMapGroup25", + "gMapGroup26", + "gMapGroup27", + "gMapGroup28", + "gMapGroup29", + "gMapGroup30", + "gMapGroup31", + "gMapGroup32", + "gMapGroup33", + "gMapGroup34", + "gMapGroup35", + "gMapGroup36", + "gMapGroup37", + "gMapGroup38", + "gMapGroup39", + "gMapGroup40", + "gMapGroup41", + "gMapGroup42" + ], + "gMapGroup0": [ + "UnknownMap_00_00", + "UnknownMap_00_01", + "UnknownMap_00_02", + "UnknownMap_00_03", + "UnknownMap_00_04" + ], + "gMapGroup1": [ + "ViridianForest", + "MtMoon_1F", + "MtMoon_B1F", + "MtMoon_B2F", + "SSAnne_Exterior", + "SSAnne_1F_Corridor", + "SSAnne_2F_Corridor", + "SSAnne_3F_Corridor", + "SSAnne_B1F_Corridor", + "SSAnne_Deck", + "SSAnne_Kitchen", + "SSAnne_CaptainsOffice", + "SSAnne_1F_Room1", + "SSAnne_1F_Room2", + "SSAnne_1F_Room3", + "SSAnne_1F_Room4", + "SSAnne_1F_Room5", + "SSAnne_1F_Room7", + "SSAnne_2F_Room1", + "SSAnne_2F_Room2", + "SSAnne_2F_Room3", + "SSAnne_2F_Room4", + "SSAnne_2F_Room5", + "SSAnne_2F_Room6", + "SSAnne_B1F_Room1", + "SSAnne_B1F_Room2", + "SSAnne_B1F_Room3", + "SSAnne_B1F_Room4", + "SSAnne_B1F_Room5", + "SSAnne_1F_Room6", + "UndergroundPath_NorthEntrance", + "UndergroundPath_NorthSouthTunnel", + "UndergroundPath_SouthEntrance", + "UndergroundPath_WestEntrance", + "UndergroundPath_EastWestTunnel", + "UndergroundPath_EastEntrance", + "DiglettsCave_NorthEntrance", + "DiglettsCave_B1F", + "DiglettsCave_SouthEntrance", + "VictoryRoad_1F", + "VictoryRoad_2F", + "VictoryRoad_3F", + "RocketHideout_B1F", + "RocketHideout_B2F", + "RocketHideout_B3F", + "RocketHideout_B4F", + "RocketHideout_Elevator", + "SilphCo_1F", + "SilphCo_2F", + "SilphCo_3F", + "SilphCo_4F", + "SilphCo_5F", + "SilphCo_6F", + "SilphCo_7F", + "SilphCo_8F", + "SilphCo_9F", + "SilphCo_10F", + "SilphCo_11F", + "SilphCo_Elevator", + "PokemonMansion_1F", + "PokemonMansion_2F", + "PokemonMansion_3F", + "PokemonMansion_B1F", + "SafariZone_Center", + "SafariZone_East", + "SafariZone_North", + "SafariZone_West", + "SafariZone_Building1", + "SafariZone_Building2", + "SafariZone_Building3", + "SafariZone_Building4", + "SafariZone_SecretHouse", + "CeruleanCave_1F", + "CeruleanCave_2F", + "CeruleanCave_B1F", + "PokemonLeague_LoreleisRoom", + "PokemonLeague_BrunosRoom", + "PokemonLeague_AgathasRoom", + "PokemonLeague_LancesRoom", + "PokemonLeague_ChampionsRoom", + "PokemonLeague_HallOfFame", + "RockTunnel_1F", + "RockTunnel_B1F", + "SeafoamIslands_1F", + "SeafoamIslands_B1F", + "SeafoamIslands_B2F", + "SeafoamIslands_B3F", + "SeafoamIslands_B4F", + "PokemonTower_1F", + "PokemonTower_2F", + "PokemonTower_3F", + "PokemonTower_4F", + "PokemonTower_5F", + "PokemonTower_6F", + "PokemonTower_7F", + "PowerPlant", + "MtEmber_RubyPath_B4F", + "MtEmber_Exterior", + "MtEmber_SummitPath_1F", + "MtEmber_SummitPath_2F", + "MtEmber_SummitPath_3F", + "MtEmber_Summit", + "MtEmber_RubyPath_B5F", + "MtEmber_RubyPath_1F", + "MtEmber_RubyPath_B1F", + "MtEmber_RubyPath_B2F", + "MtEmber_RubyPath_B3F", + "MtEmber_RubyPath_B1F_Stairs", + "MtEmber_RubyPath_B2F_Stairs", + "ThreeIsland_BerryForest", + "FourIsland_IcefallCave_Entrance", + "FourIsland_IcefallCave_1F", + "FourIsland_IcefallCave_B1F", + "FourIsland_IcefallCave_Back", + "FiveIsland_RocketWarehouse", + "SixIsland_DottedHole_1F", + "SixIsland_DottedHole_B1F", + "SixIsland_DottedHole_B2F", + "SixIsland_DottedHole_B3F", + "SixIsland_DottedHole_B4F", + "SixIsland_DottedHole_SapphireRoom", + "SixIsland_PatternBush", + "SixIsland_AlteringCave" + ], + "gMapGroup2": [ + "NavelRock_Exterior", + "SevenIsland_TrainerTower_1F", + "SevenIsland_TrainerTower_2F", + "SevenIsland_TrainerTower_3F", + "SevenIsland_TrainerTower_4F", + "SevenIsland_TrainerTower_5F", + "SevenIsland_TrainerTower_6F", + "SevenIsland_TrainerTower_7F", + "SevenIsland_TrainerTower_8F", + "SevenIsland_TrainerTower_Roof", + "SevenIsland_TrainerTower_Lobby", + "SevenIsland_TrainerTower_Elevator", + "FiveIsland_LostCave_Entrance", + "FiveIsland_LostCave_Room1", + "FiveIsland_LostCave_Room2", + "FiveIsland_LostCave_Room3", + "FiveIsland_LostCave_Room4", + "FiveIsland_LostCave_Room5", + "FiveIsland_LostCave_Room6", + "FiveIsland_LostCave_Room7", + "FiveIsland_LostCave_Room8", + "FiveIsland_LostCave_Room9", + "FiveIsland_LostCave_Room10", + "FiveIsland_LostCave_Room11", + "FiveIsland_LostCave_Room12", + "FiveIsland_LostCave_Room13", + "FiveIsland_LostCave_Room14", + "SevenIsland_TanobyRuins_MoneanChamber", + "SevenIsland_TanobyRuins_LiptooChamber", + "SevenIsland_TanobyRuins_WeepthChamber", + "SevenIsland_TanobyRuins_DilfordChamber", + "SevenIsland_TanobyRuins_ScufibChamber", + "SevenIsland_TanobyRuins_RixyChamber", + "SevenIsland_TanobyRuins_ViapoisChamber", + "ThreeIsland_DunsparceTunnel", + "SevenIsland_SeavaultCanyon_TanobyKey", + "NavelRock_1F", + "NavelRock_Summit", + "NavelRock_Base", + "NavelRock_SummitPath_2F", + "NavelRock_SummitPath_3F", + "NavelRock_SummitPath_4F", + "NavelRock_SummitPath_5F", + "NavelRock_BasePath_B1F", + "NavelRock_BasePath_B2F", + "NavelRock_BasePath_B3F", + "NavelRock_BasePath_B4F", + "NavelRock_BasePath_B5F", + "NavelRock_BasePath_B6F", + "NavelRock_BasePath_B7F", + "NavelRock_BasePath_B8F", + "NavelRock_BasePath_B9F", + "NavelRock_BasePath_B10F", + "NavelRock_BasePath_B11F", + "NavelRock_B1F", + "NavelRock_Fork", + "BirthIsland_Exterior", + "OneIsland_KindleRoad_EmberSpa", + "BirthIsland_Harbor", + "NavelRock_Harbor" + ], + "gMapGroup3": [ + "PalletTown", + "ViridianCity", + "PewterCity", + "CeruleanCity", + "LavenderTown", + "VermilionCity", + "CeladonCity", + "FuchsiaCity", + "CinnabarIsland", + "IndigoPlateau_Exterior", + "SaffronCity_Duplicate", + "SaffronCity", + "OneIsland", + "TwoIsland", + "ThreeIsland", + "FourIsland", + "FiveIsland", + "SevenIsland", + "SixIsland", + "Route1", + "Route2", + "Route3", + "Route4", + "Route5", + "Route6", + "Route7", + "Route8", + "Route9", + "Route10", + "Route11", + "Route12", + "Route13", + "Route14", + "Route15", + "Route16", + "Route17", + "Route18", + "Route19", + "Route20", + "Route21_North", + "Route21_South", + "Route22", + "Route23", + "Route24", + "Route25", + "OneIsland_KindleRoad", + "OneIsland_TreasureBeach", + "TwoIsland_CapeBrink", + "ThreeIsland_BondBridge", + "ThreeIsland_Port", + "UnknownMap_03_50", + "UnknownMap_03_51", + "UnknownMap_03_52", + "UnknownMap_03_53", + "FiveIsland_ResortGorgeous", + "FiveIsland_WaterLabyrinth", + "FiveIsland_Meadow", + "FiveIsland_MemorialPillar", + "SixIsland_OutcastIsland", + "SixIsland_GreenPath", + "SixIsland_WaterPath", + "SixIsland_RuinValley", + "SevenIsland_TrainerTower", + "SevenIsland_SevaultCanyon_Entrance", + "SevenIsland_SevaultCanyon", + "SevenIsland_TanobyRuins" + ], + "gMapGroup4": [ + "PalletTown_PlayersHouse_1F", + "PalletTown_PlayersHouse_2F", + "PalletTown_GarysHouse", + "PalletTown_ProfessorOaksLab" + ], + "gMapGroup5": [ + "ViridianCity_House1", + "ViridianCity_Gym", + "ViridianCity_House2", + "ViridianCity_Mart", + "ViridianCity_PokemonCenter_1F", + "ViridianCity_PokemonCenter_2F" + ], + "gMapGroup6": [ + "PewterCity_Museum_1F", + "PewterCity_Museum_2F", + "PewterCity_Gym", + "PewterCity_Mart", + "PewterCity_House1", + "PewterCity_PokemonCenter_1F", + "PewterCity_PokemonCenter_2F", + "PewterCity_House2" + ], + "gMapGroup7": [ + "CeruleanCity_House1", + "CeruleanCity_House2", + "CeruleanCity_House3", + "CeruleanCity_PokemonCenter_1F", + "CeruleanCity_PokemonCenter_2F", + "CeruleanCity_Gym", + "CeruleanCity_BikeShop", + "CeruleanCity_Mart", + "CeruleanCity_House4", + "CeruleanCity_House5" + ], + "gMapGroup8": [ + "LavenderTown_PokemonCenter_1F", + "LavenderTown_PokemonCenter_2F", + "LavenderTown_VolunteerPokemonHouse", + "LavenderTown_House1", + "LavenderTown_House2", + "LavenderTown_Mart" + ], + "gMapGroup9": [ + "VermilionCity_House1", + "VermilionCity_PokemonCenter_1F", + "VermilionCity_PokemonCenter_2F", + "VermilionCity_PokemonFanClub", + "VermilionCity_House2", + "VermilionCity_Mart", + "VermilionCity_Gym", + "VermilionCity_House3" + ], + "gMapGroup10": [ + "CeladonCity_DepartmentStore_1F", + "CeladonCity_DepartmentStore_2F", + "CeladonCity_DepartmentStore_3F", + "CeladonCity_DepartmentStore_4F", + "CeladonCity_DepartmentStore_5F", + "CeladonCity_DepartmentStore_Roof", + "CeladonCity_DepartmentStore_Elevator", + "CeladonCity_Condominiums_1F", + "CeladonCity_Condominiums_2F", + "CeladonCity_Condominiums_3F", + "CeladonCity_Condominiums_Roof", + "CeladonCity_Condominiums_RoofRoom", + "CeladonCity_PokemonCenter_1F", + "CeladonCity_PokemonCenter_2F", + "CeladonCity_GameCorner", + "CeladonCity_GameCorner_PrizeRoom", + "CeladonCity_Gym", + "CeladonCity_Restaurant", + "CeladonCity_House1", + "CeladonCity_Hotel" + ], + "gMapGroup11": [ + "FuchsiaCity_SafariZone_Entrance", + "FuchsiaCity_Mart", + "FuchsiaCity_ZooBuilding", + "FuchsiaCity_Gym", + "FuchsiaCity_House1", + "FuchsiaCity_PokemonCenter_1F", + "FuchsiaCity_PokemonCenter_2F", + "FuchsiaCity_Building1", + "FuchsiaCity_House2", + "FuchsiaCity_House3" + ], + "gMapGroup12": [ + "CinnabarIsland_Gym", + "CinnabarIsland_PokemonLab_Entrance", + "CinnabarIsland_PokemonLab_Lounge", + "CinnabarIsland_PokemonLab_ResearchRoom", + "CinnabarIsland_PokemonLab_ExperimentRoom", + "CinnabarIsland_PokemonCenter_1F", + "CinnabarIsland_PokemonCenter_2F", + "CinnabarIsland_Mart" + ], + "gMapGroup13": [ + "IndigoPlateau_PokemonCenter_1F", + "IndigoPlateau_PokemonCenter_2F" + ], + "gMapGroup14": [ + "SaffronCity_House1_1F", + "SaffronCity_House1_2F", + "SaffronCity_Dojo", + "SaffronCity_Gym", + "SaffronCity_House2", + "SaffronCity_Mart", + "SaffronCity_PokemonCenter_1F", + "SaffronCity_PokemonCenter_2F", + "SaffronCity_House3", + "SaffronCity_PokemonTrainerFanClub" + ], + "gMapGroup15": [ + "Route2_ViridianForest_SouthEntrance", + "Route2_House", + "Route2_EastBuilding", + "Route2_ViridianForest_NorthEntrance" + ], + "gMapGroup16": [ + "Route4_PokemonCenter_1F", + "Route4_PokemonCenter_2F" + ], + "gMapGroup17": [ + "Route5_PokemonDayCare", + "Route5_SouthEntrance" + ], + "gMapGroup18": [ + "Route6_NorthEntrance", + "UnknownMap_18_01" + ], + "gMapGroup19": [ + "Route7_EastEntrance" + ], + "gMapGroup20": [ + "Route8_WestEntrance" + ], + "gMapGroup21": [ + "Route10_PokemonCenter_1F", + "Route10_PokemonCenter_2F" + ], + "gMapGroup22": [ + "Route11_EastEntrance_1F", + "Route11_EastEntrance_2F" + ], + "gMapGroup23": [ + "Route12_NorthEntrance_1F", + "Route12_NorthEntrance_2F", + "Route12_FishingHouse" + ], + "gMapGroup24": [ + "Route15_WestEntrance_1F", + "Route15_WestEntrance_2F" + ], + "gMapGroup25": [ + "Route16_House", + "Route16_NorthEntrance_1F", + "Route16_NorthEntrance_2F" + ], + "gMapGroup26": [ + "Route18_EastEntrance_1F", + "Route18_EastEntrance_2F" + ], + "gMapGroup27": [ + "UnusedHouse_27_00" + ], + "gMapGroup28": [ + "Route22_NorthEntrance" + ], + "gMapGroup29": [ + "UnusedHouse_29_00" + ], + "gMapGroup30": [ + "Route25_SeaCottage" + ], + "gMapGroup31": [ + "SevenIsland_House_Room1", + "SevenIsland_House_Room2", + "SevenIsland_Mart", + "SevenIsland_PokemonCenter_1F", + "SevenIsland_PokemonCenter_2F", + "UnusedHouse_31_05", + "SevenIsland_Harbor" + ], + "gMapGroup32": [ + "OneIsland_PokemonCenter_1F", + "OneIsland_PokemonCenter_2F", + "OneIsland_House1", + "OneIsland_House2", + "OneIsland_Harbor" + ], + "gMapGroup33": [ + "TwoIsland_JoyfulGameCorner", + "TwoIsland_House", + "TwoIsland_PokemonCenter_1F", + "TwoIsland_PokemonCenter_2F", + "TwoIsland_Harbor" + ], + "gMapGroup34": [ + "ThreeIsland_House1", + "ThreeIsland_PokemonCenter_1F", + "ThreeIsland_PokemonCenter_2F", + "ThreeIsland_Mart", + "ThreeIsland_House2", + "ThreeIsland_House3", + "ThreeIsland_House4", + "ThreeIsland_House5" + ], + "gMapGroup35": [ + "FourIsland_PokemonDayCare", + "FourIsland_PokemonCenter_1F", + "FourIsland_PokemonCenter_2F", + "FourIsland_House1", + "FourIsland_LoreleisHouse", + "FourIsland_Harbor", + "FourIsland_House2", + "FourIsland_Mart" + ], + "gMapGroup36": [ + "FiveIsland_PokemonCenter_1F", + "FiveIsland_PokemonCenter_2F", + "FiveIsland_Harbor", + "FiveIsland_House1", + "FiveIsland_House2" + ], + "gMapGroup37": [ + "SixIsland_PokemonCenter_1F", + "SixIsland_PokemonCenter_2F", + "SixIsland_Harbor", + "SixIsland_House", + "SixIsland_Mart" + ], + "gMapGroup38": [ + "ThreeIsland_Harbor" + ], + "gMapGroup39": [ + "FiveIsland_ResortGorgeous_House" + ], + "gMapGroup40": [ + "TwoIsland_CapeBrink_House" + ], + "gMapGroup41": [ + "SixIsland_WaterPath_House1", + "SixIsland_WaterPath_House2" + ], + "gMapGroup42": [ + "SevenIsland_SevaultCanyon_House" + ], + "connections_include_order": [ + "PalletTown", + "ViridianCity", + "PewterCity", + "CeruleanCity", + "LavenderTown", + "VermilionCity", + "CeladonCity", + "FuchsiaCity", + "CinnabarIsland", + "IndigoPlateau_Exterior", + "SaffronCity_Duplicate", + "SaffronCity", + "OneIsland", + "TwoIsland", + "ThreeIsland", + "FiveIsland", + "SevenIsland", + "SixIsland", + "Route1", + "Route2", + "Route3", + "Route4", + "Route5", + "Route6", + "Route7", + "Route8", + "Route9", + "Route10", + "Route11", + "Route12", + "Route13", + "Route14", + "Route15", + "Route16", + "Route17", + "Route18", + "Route19", + "Route20", + "Route21_North", + "Route21_South", + "Route22", + "Route23", + "Route24", + "Route25", + "OneIsland_KindleRoad", + "OneIsland_TreasureBeach", + "TwoIsland_CapeBrink", + "ThreeIsland_BondBridge", + "ThreeIsland_Port", + "UnknownMap_03_50", + "UnknownMap_03_51", + "FiveIsland_ResortGorgeous", + "FiveIsland_WaterLabyrinth", + "FiveIsland_Meadow", + "FiveIsland_MemorialPillar", + "SixIsland_OutcastIsland", + "SixIsland_GreenPath", + "SixIsland_WaterPath", + "SixIsland_RuinValley", + "SevenIsland_TrainerTower", + "SevenIsland_SevaultCanyon_Entrance", + "SevenIsland_SevaultCanyon", + "SevenIsland_TanobyRuins" + ] +} \ No newline at end of file diff --git a/data/menu_indicators.s b/data/menu_indicators.s new file mode 100644 index 000000000..dd8911c7d --- /dev/null +++ b/data/menu_indicators.s @@ -0,0 +1,46 @@ + .section .rodata + .align 2 +gUnknown_846325C:: @ 846325C + .incbin "baserom.gba", 0x46325C, 0x48 + +gUnknown_84632A4:: @ 84632A4 + .incbin "baserom.gba", 0x4632A4, 0x18 + +gUnknown_84632BC:: @ 84632BC + .incbin "baserom.gba", 0x4632BC, 0x4 + +gUnknown_84632C0:: @ 84632C0 + .incbin "baserom.gba", 0x4632C0, 0x4 + +gUnknown_84632C4:: @ 84632C4 + .incbin "baserom.gba", 0x4632C4, 0x4 + +gUnknown_84632C8:: @ 84632C8 + .incbin "baserom.gba", 0x4632C8, 0x4 + +gUnknown_84632CC:: @ 84632CC + .incbin "baserom.gba", 0x4632CC, 0x4 + +gUnknown_84632D0:: @ 84632D0 + .incbin "baserom.gba", 0x4632D0, 0x4 + +gUnknown_84632D4:: @ 84632D4 + .incbin "baserom.gba", 0x4632D4, 0x4 + +gUnknown_84632D8:: @ 84632D8 + .incbin "baserom.gba", 0x4632D8, 0x18 + +gUnknown_84632F0:: @ 84632F0 + .incbin "baserom.gba", 0x4632F0, 0x18 + +gUnknown_8463308:: @ 8463308 + .incbin "baserom.gba", 0x463308, 0x20 + +gUnknown_8463328:: @ 8463328 + .incbin "baserom.gba", 0x463328, 0x70 + +gUnknown_8463398:: @ 8463398 + .incbin "baserom.gba", 0x463398, 0x40 + +gUnknown_84633D8:: @ 84633D8 + .incbin "baserom.gba", 0x4633D8, 0x44 diff --git a/data/mystery_event_msg.s b/data/mystery_event_msg.s index 48be143d7..c33228bb6 100644 --- a/data/mystery_event_msg.s +++ b/data/mystery_event_msg.s @@ -215,7 +215,7 @@ MysteryEventScript_StampCard:: @ 8488E2 @ .string "Thank you for using the MYSTERY\nGIFT System.$" @ @ sText_AuroraTicketNoPlace: -@ .string "Oh, I’m sorry, {PLAYER}.\nYour BAG’s KEY ITEMS POCKET is full.\pPlease store something on your PC,\nthen come back for this.$" +@ .string "Oh, I'm sorry, {PLAYER}.\nYour BAG’s KEY ITEMS POCKET is full.\pPlease store something on your PC,\nthen come back for this.$" @ @ MysteryEventScript_MysticTicket:: @ 867550B @ setvaddress MysteryEventScript_MysticTicket @@ -269,7 +269,7 @@ MysteryEventScript_StampCard:: @ 8488E2 @ .string "Thank you for using the MYSTERY\nGIFT System.$" @ @ sText_MysticTicketNoPlace: -@ .string "Oh, I’m sorry, {PLAYER}.\nYour BAG’s KEY ITEMS POCKET is full.\pPlease store something on your PC,\nthen come back for this.$" +@ .string "Oh, I'm sorry, {PLAYER}.\nYour BAG’s KEY ITEMS POCKET is full.\pPlease store something on your PC,\nthen come back for this.$" @ @ MysteryEventScript_AlteringCave:: @ 86756E3 @ setvaddress MysteryEventScript_AlteringCave @@ -339,4 +339,4 @@ MysteryEventScript_StampCard:: @ 8488E2 @ .string "Thank you for using the MYSTERY\nGIFT System.$" @ @ sText_MysteryGiftOldSeaMap_3: -@ .string "Oh, I’m sorry, {PLAYER}.\nYour BAG’s KEY ITEMS POCKET is full.\pPlease store something on your PC,\nthen come back for this.$" +@ .string "Oh, I'm sorry, {PLAYER}.\nYour BAG’s KEY ITEMS POCKET is full.\pPlease store something on your PC,\nthen come back for this.$" diff --git a/data/mystery_event_script_cmd_table.s b/data/mystery_event_script_cmd_table.s index 5dbcf50ee..9d74b6282 100644 --- a/data/mystery_event_script_cmd_table.s +++ b/data/mystery_event_script_cmd_table.s @@ -1,5 +1,6 @@ .section script_data, "aw", %progbits + .align 2 gMysteryEventScriptCmdTable:: @ 81DBCF0 .4byte MEScrCmd_nop .4byte MEScrCmd_checkcompat diff --git a/data/oak_speech/help_docs_page2_tilemap.bin b/data/oak_speech/help_docs_page2_tilemap.bin new file mode 100644 index 000000000..6d3cd42f1 Binary files /dev/null and b/data/oak_speech/help_docs_page2_tilemap.bin differ diff --git a/data/oak_speech/help_docs_page3_tilemap.bin b/data/oak_speech/help_docs_page3_tilemap.bin new file mode 100644 index 000000000..24805c96e Binary files /dev/null and b/data/oak_speech/help_docs_page3_tilemap.bin differ diff --git a/data/oak_speech/help_docs_palette.pal b/data/oak_speech/help_docs_palette.pal new file mode 100644 index 000000000..b6905b913 --- /dev/null +++ b/data/oak_speech/help_docs_palette.pal @@ -0,0 +1,67 @@ +JASC-PAL +0100 +64 +16 115 230 +65 139 131 +82 148 139 +106 164 156 +131 180 172 +156 197 189 +180 213 205 +205 230 222 +230 246 238 +255 0 255 +255 0 255 +0 90 16 +255 0 0 +49 82 205 +255 255 255 +32 32 32 +16 115 230 +255 255 164 +255 255 106 +222 222 90 +189 189 74 +156 156 57 +156 156 57 +123 123 49 +90 90 32 +57 57 16 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +0 0 0 +238 230 172 +115 180 197 +156 213 238 +205 238 246 +246 255 255 +230 246 246 +106 106 106 +74 82 106 +82 98 180 +230 246 246 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 74 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 0 255 +123 123 123 +172 172 156 +197 197 197 +222 222 222 +238 238 238 +255 255 255 diff --git a/data/oak_speech/new_game_adventure_intro_tilemap.bin b/data/oak_speech/new_game_adventure_intro_tilemap.bin new file mode 100644 index 000000000..ad1c8216c --- /dev/null +++ b/data/oak_speech/new_game_adventure_intro_tilemap.bin @@ -0,0 +1,2 @@ +^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^                                ` `   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` `   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (`   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (`   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` `   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` ` a b c d e f   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (p q r s t u v   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` g h i j k l m   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (w x y z { | }   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` n o   ` ~    + \ No newline at end of file diff --git a/data/oak_speech/oak_speech_background_tilemap.bin b/data/oak_speech/oak_speech_background_tilemap.bin new file mode 100644 index 000000000..64374cd24 Binary files /dev/null and b/data/oak_speech/oak_speech_background_tilemap.bin differ diff --git a/data/oak_speech/oak_speech_gfx_game_start_help_u_i.png b/data/oak_speech/oak_speech_gfx_game_start_help_u_i.png new file mode 100644 index 000000000..419858b1b Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_game_start_help_u_i.png differ diff --git a/data/oak_speech/oak_speech_gfx_grass_platform.png b/data/oak_speech/oak_speech_gfx_grass_platform.png new file mode 100644 index 000000000..2c8e425d2 Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_grass_platform.png differ diff --git a/data/oak_speech/oak_speech_gfx_leaf_pal.pal b/data/oak_speech/oak_speech_gfx_leaf_pal.pal new file mode 100644 index 000000000..feb1214a1 --- /dev/null +++ b/data/oak_speech/oak_speech_gfx_leaf_pal.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +115 197 164 +255 238 205 +246 205 180 +213 164 148 +172 131 106 +106 74 65 +205 164 139 +164 123 98 +115 74 49 +74 41 16 +222 222 222 +180 180 180 +131 131 131 +82 82 90 +41 41 49 +255 255 255 +0 0 0 +131 189 213 +106 156 180 +82 131 156 +49 90 115 +32 65 90 +0 0 255 +255 255 189 +222 222 82 +172 172 57 +98 98 0 +213 131 123 +189 106 98 +164 82 74 +139 57 49 +98 24 16 diff --git a/data/oak_speech/oak_speech_gfx_leaf_pic.png b/data/oak_speech/oak_speech_gfx_leaf_pic.png new file mode 100644 index 000000000..1825f9960 Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_leaf_pic.png differ diff --git a/data/oak_speech/oak_speech_gfx_oak_pal.pal b/data/oak_speech/oak_speech_gfx_oak_pal.pal new file mode 100644 index 000000000..a0b648b2b --- /dev/null +++ b/data/oak_speech/oak_speech_gfx_oak_pal.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +115 197 164 +255 230 205 +222 189 156 +197 148 115 +106 74 65 +238 222 148 +205 189 115 +172 156 90 +139 123 65 +98 90 49 +255 0 255 +205 205 222 +123 131 156 +57 74 106 +255 255 255 +0 0 0 +0 0 255 +172 148 222 +131 115 172 +82 65 115 +230 222 180 +205 197 156 +180 172 139 +164 156 123 +123 115 90 +82 57 49 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/oak_speech/oak_speech_gfx_oak_pic.png b/data/oak_speech/oak_speech_gfx_oak_pic.png new file mode 100644 index 000000000..9ac602944 Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_oak_pic.png differ diff --git a/data/oak_speech/oak_speech_gfx_pika1.png b/data/oak_speech/oak_speech_gfx_pika1.png new file mode 100644 index 000000000..71644c355 Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_pika1.png differ diff --git a/data/oak_speech/oak_speech_gfx_pika2.png b/data/oak_speech/oak_speech_gfx_pika2.png new file mode 100644 index 000000000..e85cbfa9c Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_pika2.png differ diff --git a/data/oak_speech/oak_speech_gfx_pika_eyes.png b/data/oak_speech/oak_speech_gfx_pika_eyes.png new file mode 100644 index 000000000..5e2fd80c0 Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_pika_eyes.png differ diff --git a/data/oak_speech/oak_speech_gfx_red_pal.pal b/data/oak_speech/oak_speech_gfx_red_pal.pal new file mode 100644 index 000000000..7eec09831 --- /dev/null +++ b/data/oak_speech/oak_speech_gfx_red_pal.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +115 197 164 +255 230 205 +222 189 156 +197 148 131 +148 106 90 +106 74 65 +205 164 139 +164 123 98 +115 74 49 +82 65 32 +222 222 222 +180 180 180 +131 131 131 +82 82 90 +57 57 65 +255 255 255 +0 0 0 +131 189 213 +106 156 180 +82 131 156 +49 90 115 +32 65 90 +0 0 255 +238 238 74 +205 205 49 +164 164 32 +98 98 0 +213 131 123 +189 106 98 +164 82 74 +139 57 49 +98 24 16 diff --git a/data/oak_speech/oak_speech_gfx_red_pic.png b/data/oak_speech/oak_speech_gfx_red_pic.png new file mode 100644 index 000000000..edf5cf9b1 Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_red_pic.png differ diff --git a/data/oak_speech/oak_speech_gfx_rival_pal.pal b/data/oak_speech/oak_speech_gfx_rival_pal.pal new file mode 100644 index 000000000..8240527a6 --- /dev/null +++ b/data/oak_speech/oak_speech_gfx_rival_pal.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +115 197 164 +255 230 205 +222 189 156 +197 148 115 +106 74 65 +238 189 74 +213 156 57 +189 123 41 +139 82 41 +164 123 106 +222 222 222 +197 197 197 +139 139 139 +98 98 98 +65 65 65 +255 255 255 +0 0 0 +180 148 180 +139 106 139 +106 74 106 +82 49 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +246 131 131 +205 82 82 diff --git a/data/oak_speech/oak_speech_gfx_rival_pic.png b/data/oak_speech/oak_speech_gfx_rival_pic.png new file mode 100644 index 000000000..317cbc038 Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_rival_pic.png differ diff --git a/data/oak_speech/oak_speech_gfx_solid_colors.png b/data/oak_speech/oak_speech_gfx_solid_colors.png new file mode 100644 index 000000000..30066cdd8 Binary files /dev/null and b/data/oak_speech/oak_speech_gfx_solid_colors.png differ diff --git a/data/oak_speech/oak_speech_grass_platform_palette.pal b/data/oak_speech/oak_speech_grass_platform_palette.pal new file mode 100644 index 000000000..4fb339128 --- /dev/null +++ b/data/oak_speech/oak_speech_grass_platform_palette.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 189 164 +65 139 131 +82 148 139 +106 164 156 +131 180 172 +156 197 189 +180 213 205 +205 230 222 +230 246 238 +0 0 0 +255 0 255 +139 189 164 +156 205 172 +180 222 197 +205 238 222 +115 172 156 diff --git a/data/oak_speech/oak_speech_pika_palette.pal b/data/oak_speech/oak_speech_pika_palette.pal new file mode 100644 index 000000000..4d2e92c74 --- /dev/null +++ b/data/oak_speech/oak_speech_pika_palette.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 180 +255 255 255 +255 246 106 +246 213 0 +238 172 0 +197 139 0 +131 82 0 +255 0 255 +255 0 255 +180 180 180 +255 74 74 +230 0 0 +180 0 0 +106 106 106 +16 16 16 +255 0 255 diff --git a/data/palette.s b/data/palette.s new file mode 100644 index 000000000..67a6fcb0c --- /dev/null +++ b/data/palette.s @@ -0,0 +1,7 @@ + .section .rodata + .align 2 +gUnknown_83AC960:: @ 83AC960 + .incbin "baserom.gba", 0x3AC960, 0x10 + +gUnknown_83AC970:: @ 83AC970 + .incbin "baserom.gba", 0x3AC970, 0x20 diff --git a/data/pokedex_area_markers.s b/data/pokedex_area_markers.s new file mode 100644 index 000000000..bf63a3210 --- /dev/null +++ b/data/pokedex_area_markers.s @@ -0,0 +1,14 @@ + .section .rodata + .align 2 + +gUnknown_846341C:: @ 846341C + .incbin "baserom.gba", 0x46341C, 0x20 + +gUnknown_846343C:: @ 846343C + .incbin "baserom.gba", 0x46343C, 0x128 + +gUnknown_8463564:: @ 8463564 + .incbin "baserom.gba", 0x463564, 0x1C + +gUnknown_8463580:: @ 8463580 + .incbin "baserom.gba", 0x463580, 0x140 diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s new file mode 100644 index 000000000..be7c0de93 --- /dev/null +++ b/data/pokemon_summary_screen.s @@ -0,0 +1,134 @@ + .section .rodata + .align 2 + +gUnknown_84636C0:: @ 84636C0 + .incbin "baserom.gba", 0x4636C0, 0x20 + +gUnknown_84636E0:: @ 84636E0 + .incbin "baserom.gba", 0x4636E0, 0x20 + +gUnknown_8463700:: @ 8463700 + .incbin "baserom.gba", 0x463700, 0x20 + +gUnknown_8463720:: @ 8463720 + .incbin "baserom.gba", 0x463720, 0x20 + +gUnknown_8463740:: @ 8463740 + .incbin "baserom.gba", 0x463740, 0x12C + +gUnknown_846386C:: @ 846386C + .incbin "baserom.gba", 0x46386C, 0x120 + +gUnknown_846398C:: @ 846398C + .incbin "baserom.gba", 0x46398C, 0x18 + +gUnknown_84639A4:: @ 84639A4 + .incbin "baserom.gba", 0x4639A4, 0x8 + +gUnknown_84639AC:: @ 84639AC + .incbin "baserom.gba", 0x4639AC, 0x48 + +gUnknown_84639F4:: @ 84639F4 + .incbin "baserom.gba", 0x4639F4, 0x20 + +gUnknown_8463A14:: @ 8463A14 + .incbin "baserom.gba", 0x463A14, 0x68 + +gUnknown_8463A7C:: @ 8463A7C + .incbin "baserom.gba", 0x463A7C, 0x70 + +gUnknown_8463AEC:: @ 8463AEC + .incbin "baserom.gba", 0x463AEC, 0x10 + +gUnknown_8463AFC:: @ 8463AFC + .incbin "baserom.gba", 0x463AFC, 0x4 + +gUnknown_8463B00:: @ 8463B00 + .incbin "baserom.gba", 0x463B00, 0x20 + +gUnknown_8463B20:: @ 8463B20 + .incbin "baserom.gba", 0x463B20, 0x10 + +gUnknown_8463B30:: @ 8463B30 + .incbin "baserom.gba", 0x463B30, 0x10 + +gUnknown_8463B40:: @ 8463B40 + .incbin "baserom.gba", 0x463B40, 0x4 + +gUnknown_8463B44:: @ 8463B44 + .incbin "baserom.gba", 0x463B44, 0x20 + +gUnknown_8463B64:: @ 8463B64 + .incbin "baserom.gba", 0x463B64, 0x24 + +gUnknown_8463B88:: @ 8463B88 + .incbin "baserom.gba", 0x463B88, 0xF8 + +gUnknown_8463C80:: @ 8463C80 + .incbin "baserom.gba", 0x463C80, 0x1E0 + +gUnknown_8463E60:: @ 8463E60 + .incbin "baserom.gba", 0x463E60, 0x64 + +gUnknown_8463EC4:: @ 8463EC4 + .incbin "baserom.gba", 0x463EC4, 0x10 + +gUnknown_8463ED4:: @ 8463ED4 + .incbin "baserom.gba", 0x463ED4, 0x1C + +gUnknown_8463EF0:: @ 8463EF0 + .incbin "baserom.gba", 0x463EF0, 0xC + +gUnknown_8463EFC:: @ 8463EFC + .incbin "baserom.gba", 0x463EFC, 0x10 + +gUnknown_8463F0C:: @ 8463F0C + .incbin "baserom.gba", 0x463F0C, 0x18 + +gUnknown_8463F24:: @ 8463F24 + .incbin "baserom.gba", 0x463F24, 0x18 + +gUnknown_8463F3C:: @ 8463F3C + .incbin "baserom.gba", 0x463F3C, 0x20 + +gUnknown_8463F5C:: @ 8463F5C + .incbin "baserom.gba", 0x463F5C, 0x20 + +gUnknown_8463F7C:: @ 8463F7C + .incbin "baserom.gba", 0x463F7C, 0x20 + +gUnknown_8463F9C:: @ 8463F9C + .incbin "baserom.gba", 0x463F9C, 0x8 + +gUnknown_8463FA4:: @ 8463FA4 + .incbin "baserom.gba", 0x463FA4, 0x3 + +gUnknown_8463FA7:: @ 8463FA7 + .incbin "baserom.gba", 0x463FA7, 0x11 + +gUnknown_8463FB8:: @ 8463FB8 + .incbin "baserom.gba", 0x463FB8, 0x6 + +gUnknown_8463FBE:: @ 8463FBE + .incbin "baserom.gba", 0x463FBE, 0x3 + +gUnknown_8463FC1:: @ 8463FC1 + .incbin "baserom.gba", 0x463FC1, 0x5 + +gUnknown_8463FC6:: @ 8463FC6 + .incbin "baserom.gba", 0x463FC6, 0x7 + +gUnknown_8463FCD:: @ 8463FCD + .incbin "baserom.gba", 0x463FCD, 0x7 + +gUnknown_8463FD4:: @ 8463FD4 + .incbin "baserom.gba", 0x463FD4, 0xB + +gUnknown_8463FDF:: @ 8463FDF + .incbin "baserom.gba", 0x463FDF, 0xB + +gUnknown_8463FEA:: @ 8463FEA + .incbin "baserom.gba", 0x463FEA, 0x12 + +gUnknown_8463FFC:: @ 8463FFC + .incbin "baserom.gba", 0x463FFC, 0xC diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index 29850d685..23cd757c2 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -1,8 +1,8 @@ - .align 2 + .align 2 gScriptCmdTable:: @ 815F9B4 - .4byte sub_8069ED0 - .4byte sub_8069ED4 + .4byte ScrCmd_nop + .4byte ScrCmd_nop1 .4byte ScrCmd_end .4byte ScrCmd_return .4byte ScrCmd_call @@ -38,48 +38,48 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_compare_var_to_var .4byte ScrCmd_callnative .4byte ScrCmd_gotonative - .4byte sub_8069EFC - .4byte sub_8069F3C - .4byte sub_8069FA4 + .4byte ScrCmd_special + .4byte ScrCmd_specialvar + .4byte ScrCmd_waitstate .4byte ScrCmd_delay .4byte ScrCmd_setflag .4byte ScrCmd_clearflag .4byte ScrCmd_checkflag - .4byte sub_806A9D4 - .4byte sub_806A9D8 - .4byte sub_806A9DC + .4byte ScrCmd_initclock + .4byte ScrCmd_dodailyevents + .4byte ScrCmd_gettime .4byte ScrCmd_playse - .4byte sub_806B094 + .4byte ScrCmd_waitse .4byte ScrCmd_playfanfare - .4byte sub_806B0CC - .4byte sub_806B0E0 - .4byte sub_806B120 - .4byte sub_806B134 - .4byte sub_806B154 - .4byte sub_806B17C - .4byte sub_806B1C8 + .4byte ScrCmd_waitfanfare + .4byte ScrCmd_playbgm + .4byte ScrCmd_savebgm + .4byte ScrCmd_fadedefaultbgm + .4byte ScrCmd_fadenewbgm + .4byte ScrCmd_fadeoutbgm + .4byte ScrCmd_fadeinbgm .4byte ScrCmd_warp .4byte ScrCmd_warpsilent .4byte ScrCmd_warpdoor .4byte ScrCmd_warphole - .4byte sub_806AC70 + .4byte ScrCmd_warpteleport .4byte ScrCmd_setwarp .4byte ScrCmd_setdynamicwarp - .4byte sub_806AE90 - .4byte sub_806AF10 + .4byte ScrCmd_setdivewarp + .4byte ScrCmd_setholewarp .4byte ScrCmd_getplayerxy .4byte ScrCmd_getpartysize - .4byte sub_806A610 + .4byte ScrCmd_giveitem .4byte ScrCmd_takeitem - .4byte sub_806A6A0 - .4byte sub_806A6E4 + .4byte ScrCmd_checkitemspace + .4byte ScrCmd_checkitem .4byte ScrCmd_checkitemtype .4byte ScrCmd_givepcitem .4byte ScrCmd_checkpcitem - .4byte sub_806A7DC - .4byte sub_806A7F0 - .4byte sub_806A818 - .4byte sub_806A804 + .4byte ScrCmd_givedecoration + .4byte ScrCmd_takedecoration + .4byte ScrCmd_checkdecor + .4byte ScrCmd_checkdecorspace .4byte ScrCmd_applymovement .4byte ScrCmd_applymovement_at .4byte ScrCmd_waitmovement @@ -94,34 +94,34 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_faceplayer .4byte ScrCmd_turnobject .4byte ScrCmd_trainerbattle - .4byte sub_806C2D8 - .4byte ScrCmd_ontrainerbattleend - .4byte ScrCmd_ontrainerbattleendgoto + .4byte ScrCmd_dotrainerbattle + .4byte ScrCmd_gotopostbattlescript + .4byte ScrCmd_gotobeatenscript .4byte ScrCmd_checktrainerflag .4byte ScrCmd_settrainerflag .4byte ScrCmd_cleartrainerflag .4byte ScrCmd_setobjectxyperm .4byte ScrCmd_moveobjectoffscreen .4byte ScrCmd_setobjectmovementtype - .4byte sub_806B878 - .4byte sub_806B80C - .4byte sub_806B88C + .4byte ScrCmd_waitmessage + .4byte ScrCmd_message + .4byte ScrCmd_closemessage .4byte ScrCmd_lockall .4byte ScrCmd_lock .4byte ScrCmd_releaseall .4byte ScrCmd_release - .4byte sub_806BA3C + .4byte ScrCmd_waitbuttonpress .4byte ScrCmd_yesnobox .4byte ScrCmd_multichoice .4byte ScrCmd_multichoicedefault .4byte ScrCmd_multichoicegrid - .4byte sub_806BB38 - .4byte sub_806BB8C - .4byte sub_806BB98 - .4byte sub_806BB9C - .4byte sub_806BBD8 - .4byte sub_806BBF8 - .4byte sub_806BC04 + .4byte ScrCmd_drawbox + .4byte ScrCmd_erasebox + .4byte ScrCmd_drawboxtext + .4byte ScrCmd_showmonpic + .4byte ScrCmd_hidemonpic + .4byte ScrCmd_showcontestwinner + .4byte ScrCmd_braillemessage .4byte ScrCmd_givemon .4byte ScrCmd_giveegg .4byte ScrCmd_setmonmove @@ -130,33 +130,33 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_bufferleadmonspeciesname .4byte ScrCmd_bufferpartymonnick .4byte ScrCmd_bufferitemname - .4byte sub_806BE34 + .4byte ScrCmd_bufferdecorationname .4byte ScrCmd_buffermovename .4byte ScrCmd_buffernumberstring .4byte ScrCmd_bufferstdstring .4byte ScrCmd_bufferstring - .4byte sub_806C3AC - .4byte sub_806C3C0 - .4byte sub_806C3D4 + .4byte ScrCmd_pokemart + .4byte ScrCmd_pokemartdecoration + .4byte ScrCmd_pokemartdecoration2 .4byte ScrCmd_playslotmachine - .4byte sub_806C410 - .4byte sub_806C418 - .4byte sub_806C424 - .4byte sub_806C428 - .4byte sub_806C42C + .4byte ScrCmd_setberrytree + .4byte ScrCmd_choosecontestmon + .4byte ScrCmd_startcontest + .4byte ScrCmd_showcontestresults + .4byte ScrCmd_contestlinktransfer .4byte ScrCmd_random .4byte ScrCmd_givemoney .4byte ScrCmd_takemoney .4byte ScrCmd_checkmoney - .4byte sub_806C1CC - .4byte sub_806C21C - .4byte sub_806C228 - .4byte sub_806C414 + .4byte ScrCmd_showmoneybox + .4byte ScrCmd_hidemoneybox + .4byte ScrCmd_updatemoneybox + .4byte ScrCmd_getpricereduction .4byte ScrCmd_fadescreen .4byte ScrCmd_fadescreenspeed .4byte ScrCmd_setflashradius .4byte ScrCmd_animateflash - .4byte sub_806B85C + .4byte ScrCmd_messageautoscroll .4byte ScrCmd_dofieldeffect .4byte ScrCmd_setfieldeffectarg .4byte ScrCmd_waitfieldeffect @@ -175,16 +175,16 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_turnvobject .4byte ScrCmd_opendoor .4byte ScrCmd_closedoor - .4byte sub_806C688 + .4byte ScrCmd_waitdooranim .4byte ScrCmd_setdooropen .4byte ScrCmd_setdoorclosed - .4byte sub_806C724 - .4byte sub_806C728 + .4byte ScrCmd_addelevmenuitem + .4byte ScrCmd_showelevmenu .4byte ScrCmd_checkcoins .4byte ScrCmd_givecoins .4byte ScrCmd_takecoins .4byte ScrCmd_setwildbattle - .4byte sub_806C39C + .4byte ScrCmd_dowildbattle .4byte ScrCmd_setvaddress .4byte ScrCmd_vgoto .4byte ScrCmd_vcall @@ -193,27 +193,27 @@ gScriptCmdTable:: @ 815F9B4 .4byte ScrCmd_vmessage .4byte ScrCmd_vloadword .4byte ScrCmd_vbufferstring - .4byte sub_806C258 + .4byte ScrCmd_showcoinsbox .4byte ScrCmd_hidecoinsbox .4byte ScrCmd_updatecoinsbox .4byte ScrCmd_incrementgamestat .4byte ScrCmd_setescapewarp - .4byte sub_806C540 + .4byte ScrCmd_waitmoncry .4byte ScrCmd_bufferboxname - .4byte sub_806B7EC - .4byte sub_806B828 - .4byte sub_806B850 - .4byte sub_806C7BC - .4byte sub_806C7C8 - .4byte sub_806A888 + .4byte ScrCmd_textcolor + .4byte ScrCmd_loadhelp + .4byte ScrCmd_unloadhelp + .4byte ScrCmd_signmsg + .4byte ScrCmd_normalmsg + .4byte ScrCmd_comparestattoword .4byte ScrCmd_setmonobedient .4byte ScrCmd_checkmonobedience - .4byte sub_806A28C - .4byte sub_806A8C0 - .4byte sub_806ACF8 - .4byte sub_806C844 - .4byte sub_806BC40 - .4byte sub_806BD90 + .4byte ScrCmd_execram + .4byte ScrCmd_setworldmapflag + .4byte ScrCmd_warpteleport2 + .4byte ScrCmd_setmonmetlocation + .4byte ScrCmd_getbraillestringwidth + .4byte ScrCmd_bufferitemnameplural gScriptCmdTableEnd:: @ 815FD08 - .4byte sub_8069ED0 + .4byte ScrCmd_nop diff --git a/data/seagallop/eb_tilemap.bin b/data/seagallop/eb_tilemap.bin new file mode 100644 index 000000000..2f912fb18 Binary files /dev/null and b/data/seagallop/eb_tilemap.bin differ diff --git a/data/seagallop/ferry_and_wake.pal b/data/seagallop/ferry_and_wake.pal new file mode 100644 index 000000000..c25501332 --- /dev/null +++ b/data/seagallop/ferry_and_wake.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 123 180 +238 246 255 +222 230 238 +189 205 230 +156 164 189 +139 139 156 +98 98 123 +57 57 106 +197 98 98 +172 65 106 +32 74 156 +197 148 0 +246 213 24 +222 238 255 +255 255 255 +74 106 139 diff --git a/data/seagallop/ferry_sprite.png b/data/seagallop/ferry_sprite.png new file mode 100644 index 000000000..cc06fbffa Binary files /dev/null and b/data/seagallop/ferry_sprite.png differ diff --git a/data/seagallop/wake.png b/data/seagallop/wake.png new file mode 100644 index 000000000..a5ff28c6e Binary files /dev/null and b/data/seagallop/wake.png differ diff --git a/data/seagallop/water.png b/data/seagallop/water.png new file mode 100644 index 000000000..ccf64591a Binary files /dev/null and b/data/seagallop/water.png differ diff --git a/data/seagallop/wb_tilemap.bin b/data/seagallop/wb_tilemap.bin new file mode 100644 index 000000000..a3c27d319 Binary files /dev/null and b/data/seagallop/wb_tilemap.bin differ diff --git a/data/slot_machine.s b/data/slot_machine.s new file mode 100644 index 000000000..dac396602 --- /dev/null +++ b/data/slot_machine.s @@ -0,0 +1,94 @@ + .section .rodata + .align 2 +gUnknown_8464890:: @ 8464890 + .incbin "baserom.gba", 0x464890, 0x1E + +gUnknown_84648AE:: @ 84648AE + .incbin "baserom.gba", 0x4648AE, 0xF + +gUnknown_84648BD:: @ 84648BD + .incbin "baserom.gba", 0x4648BD, 0x15 + +gUnknown_84648D2:: @ 84648D2 + .incbin "baserom.gba", 0x4648D2, 0x54 + +gUnknown_8464926:: @ 8464926 + .incbin "baserom.gba", 0x464926, 0x40 + +gUnknown_8464966:: @ 8464966 + .incbin "baserom.gba", 0x464966, 0xC4A + +gUnknown_84655B0:: @ 84655B0 + .incbin "baserom.gba", 0x4655B0, 0x18 + +gUnknown_84655C8:: @ 84655C8 + .incbin "baserom.gba", 0x4655C8, 0x40 + +gUnknown_8465608:: @ 8465608 + .incbin "baserom.gba", 0x465608, 0xE + +gUnknown_8465616:: @ 8465616 + .incbin "baserom.gba", 0x465616, 0xC0 + +gUnknown_84656D6:: @ 84656D6 + .incbin "baserom.gba", 0x4656D6, 0x10E + +gUnknown_84657E4:: @ 84657E4 + .incbin "baserom.gba", 0x4657E4, 0x98 + +gUnknown_846587C:: @ 846587C + .incbin "baserom.gba", 0x46587C, 0x5C + +gUnknown_84658D8:: @ 84658D8 + .incbin "baserom.gba", 0x4658D8, 0x18 + +gUnknown_84658F0:: @ 84658F0 + .incbin "baserom.gba", 0x4658F0, 0x40 + +gUnknown_8465930:: @ 8465930 + .incbin "baserom.gba", 0x465930, 0x20 + +gUnknown_8465950:: @ 8465950 + .incbin "baserom.gba", 0x465950, 0x80 + +gUnknown_84659D0:: @ 84659D0 + .incbin "baserom.gba", 0x4659D0, 0x804 + +gUnknown_84661D4:: @ 84661D4 + .incbin "baserom.gba", 0x4661D4, 0x2E8 + +gUnknown_84664BC:: @ 84664BC + .incbin "baserom.gba", 0x4664BC, 0x20 + +gUnknown_84664DC:: @ 84664DC + .incbin "baserom.gba", 0x4664DC, 0x60 + +gUnknown_846653C:: @ 846653C + .incbin "baserom.gba", 0x46653C, 0x84 + +gUnknown_84665C0:: @ 84665C0 + .incbin "baserom.gba", 0x4665C0, 0x60 + +gUnknown_8466620:: @ 8466620 + .incbin "baserom.gba", 0x466620, 0x378 + +gUnknown_8466998:: @ 8466998 + .incbin "baserom.gba", 0x466998, 0x178 + +gUnknown_8466B10:: @ 8466B10 + .incbin "baserom.gba", 0x466B10, 0x10 + +gUnknown_8466B20:: @ 8466B20 + .incbin "baserom.gba", 0x466B20, 0xEC + +gUnknown_8466C0C:: @ 8466C0C + .incbin "baserom.gba", 0x466C0C, 0x28 + +gUnknown_8466C34:: @ 8466C34 + .incbin "baserom.gba", 0x466C34, 0x4 + +gUnknown_8466C38:: @ 8466C38 + .incbin "baserom.gba", 0x466C38, 0x8 + +gUnknown_8466C40:: @ 8466C40 + .incbin "baserom.gba", 0x466C40, 0x18 diff --git a/data/sound_data.s b/data/sound_data.s index 4bbe6ce75..472c25ee1 100644 --- a/data/sound_data.s +++ b/data/sound_data.s @@ -1,37 +1,3394 @@ + .include "asm/macros/m4a.inc" + .include "asm/macros/music_voice.inc" .section .rodata voicegroup_pokemon_cry:: @ 8489C8C .incbin "baserom.gba", 0x489C8C, 0x2C88 + .align 2 gCryTable:: @ 848C914 - .incbin "baserom.gba", 0x48C914, 0x600 - -gUnknown_848CF14:: @ 848CF14 - .incbin "baserom.gba", 0x48CF14, 0x600 - -gUnknown_848D514:: @ 848D514 - .incbin "baserom.gba", 0x48D514, 0x600 - -gUnknown_848DB14:: @ 848DB14 - .incbin "baserom.gba", 0x48DB14, 0x30 + cry Cry_Bulbasaur + cry Cry_Ivysaur + cry Cry_Venusaur + cry Cry_Charmander + cry Cry_Charmeleon + cry Cry_Charizard + cry Cry_Squirtle + cry Cry_Wartortle + cry Cry_Blastoise + cry Cry_Caterpie + cry Cry_Metapod + cry Cry_Butterfree + cry Cry_Weedle + cry Cry_Kakuna + cry Cry_Beedrill + cry Cry_Pidgey + cry Cry_Pidgeotto + cry Cry_Pidgeot + cry Cry_Rattata + cry Cry_Raticate + cry Cry_Spearow + cry Cry_Fearow + cry Cry_Ekans + cry Cry_Arbok + cry Cry_Pikachu + cry Cry_Raichu + cry Cry_Sandshrew + cry Cry_Sandslash + cry Cry_NidoranF + cry Cry_Nidorina + cry Cry_Nidoqueen + cry Cry_NidoranM + cry Cry_Nidorino + cry Cry_Nidoking + cry Cry_Clefairy + cry Cry_Clefable + cry Cry_Vulpix + cry Cry_Ninetales + cry Cry_Jigglypuff + cry Cry_Wigglytuff + cry Cry_Zubat + cry Cry_Golbat + cry Cry_Oddish + cry Cry_Gloom + cry Cry_Vileplume + cry Cry_Paras + cry Cry_Parasect + cry Cry_Venonat + cry Cry_Venomoth + cry Cry_Diglett + cry Cry_Dugtrio + cry Cry_Meowth + cry Cry_Persian + cry Cry_Psyduck + cry Cry_Golduck + cry Cry_Mankey + cry Cry_Primeape + cry Cry_Growlithe + cry Cry_Arcanine + cry Cry_Poliwag + cry Cry_Poliwhirl + cry Cry_Poliwrath + cry Cry_Abra + cry Cry_Kadabra + cry Cry_Alakazam + cry Cry_Machop + cry Cry_Machoke + cry Cry_Machamp + cry Cry_Bellsprout + cry Cry_Weepinbell + cry Cry_Victreebel + cry Cry_Tentacool + cry Cry_Tentacruel + cry Cry_Geodude + cry Cry_Graveler + cry Cry_Golem + cry Cry_Ponyta + cry Cry_Rapidash + cry Cry_Slowpoke + cry Cry_Slowbro + cry Cry_Magnemite + cry Cry_Magneton + cry Cry_Farfetchd + cry Cry_Doduo + cry Cry_Dodrio + cry Cry_Seel + cry Cry_Dewgong + cry Cry_Grimer + cry Cry_Muk + cry Cry_Shellder + cry Cry_Cloyster + cry Cry_Gastly + cry Cry_Haunter + cry Cry_Gengar + cry Cry_Onix + cry Cry_Drowzee + cry Cry_Hypno + cry Cry_Krabby + cry Cry_Kingler + cry Cry_Voltorb + cry Cry_Electrode + cry Cry_Exeggcute + cry Cry_Exeggutor + cry Cry_Cubone + cry Cry_Marowak + cry Cry_Hitmonlee + cry Cry_Hitmonchan + cry Cry_Lickitung + cry Cry_Koffing + cry Cry_Weezing + cry Cry_Rhyhorn + cry Cry_Rhydon + cry Cry_Chansey + cry Cry_Tangela + cry Cry_Kangaskhan + cry Cry_Horsea + cry Cry_Seadra + cry Cry_Goldeen + cry Cry_Seaking + cry Cry_Staryu + cry Cry_Starmie + cry Cry_MrMime + cry Cry_Scyther + cry Cry_Jynx + cry Cry_Electabuzz + cry Cry_Magmar + cry Cry_Pinsir + cry Cry_Tauros + cry Cry_Magikarp + cry Cry_Gyarados + cry Cry_Lapras + cry Cry_Ditto + cry Cry_Eevee + cry Cry_Vaporeon + cry Cry_Jolteon + cry Cry_Flareon + cry Cry_Porygon + cry Cry_Omanyte + cry Cry_Omastar + cry Cry_Kabuto + cry Cry_Kabutops + cry Cry_Aerodactyl + cry Cry_Snorlax + cry Cry_Articuno + cry Cry_Zapdos + cry Cry_Moltres + cry Cry_Dratini + cry Cry_Dragonair + cry Cry_Dragonite + cry Cry_Mewtwo + cry Cry_Mew + cry Cry_Chikorita + cry Cry_Bayleef + cry Cry_Meganium + cry Cry_Cyndaquil + cry Cry_Quilava + cry Cry_Typhlosion + cry Cry_Totodile + cry Cry_Croconaw + cry Cry_Feraligatr + cry Cry_Sentret + cry Cry_Furret + cry Cry_Hoothoot + cry Cry_Noctowl + cry Cry_Ledyba + cry Cry_Ledian + cry Cry_Spinarak + cry Cry_Ariados + cry Cry_Crobat + cry Cry_Chinchou + cry Cry_Lanturn + cry Cry_Pichu + cry Cry_Cleffa + cry Cry_Igglybuff + cry Cry_Togepi + cry Cry_Togetic + cry Cry_Natu + cry Cry_Xatu + cry Cry_Mareep + cry Cry_Flaaffy + cry Cry_Ampharos + cry Cry_Bellossom + cry Cry_Marill + cry Cry_Azumarill + cry Cry_Sudowoodo + cry Cry_Politoed + cry Cry_Hoppip + cry Cry_Skiploom + cry Cry_Jumpluff + cry Cry_Aipom + cry Cry_Sunkern + cry Cry_Sunflora + cry Cry_Yanma + cry Cry_Wooper + cry Cry_Quagsire + cry Cry_Espeon + cry Cry_Umbreon + cry Cry_Murkrow + cry Cry_Slowking + cry Cry_Misdreavus + cry Cry_Unown + cry Cry_Wobbuffet + cry Cry_Girafarig + cry Cry_Pineco + cry Cry_Forretress + cry Cry_Dunsparce + cry Cry_Gligar + cry Cry_Steelix + cry Cry_Snubbull + cry Cry_Granbull + cry Cry_Qwilfish + cry Cry_Scizor + cry Cry_Shuckle + cry Cry_Heracross + cry Cry_Sneasel + cry Cry_Teddiursa + cry Cry_Ursaring + cry Cry_Slugma + cry Cry_Magcargo + cry Cry_Swinub + cry Cry_Piloswine + cry Cry_Corsola + cry Cry_Remoraid + cry Cry_Octillery + cry Cry_Delibird + cry Cry_Mantine + cry Cry_Skarmory + cry Cry_Houndour + cry Cry_Houndoom + cry Cry_Kingdra + cry Cry_Phanpy + cry Cry_Donphan + cry Cry_Porygon2 + cry Cry_Stantler + cry Cry_Smeargle + cry Cry_Tyrogue + cry Cry_Hitmontop + cry Cry_Smoochum + cry Cry_Elekid + cry Cry_Magby + cry Cry_Miltank + cry Cry_Blissey + cry Cry_Raikou + cry Cry_Entei + cry Cry_Suicune + cry Cry_Larvitar + cry Cry_Pupitar + cry Cry_Tyranitar + cry Cry_Lugia + cry Cry_HoOh + cry Cry_Celebi + cry Cry_Kecleon + cry Cry_Roselia + cry Cry_Torkoal + cry Cry_Electrike + cry Cry_Manectric + cry Cry_Duskull + cry Cry_Latias + cry Cry_Wynaut + cry Cry_Seviper + cry Cry_Sharpedo + cry Cry_Zangoose + cry Cry_Azurill + cry Cry_Swablu + cry Cry_Altaria + cry Cry_Unused265 + cry Cry_Taillow + cry Cry_Swellow + cry Cry_Unused268 + cry Cry_Spinda + cry Cry_Torchic + cry Cry_Combusken + cry Cry_Blaziken + cry Cry_Treecko + cry Cry_Grovyle + cry Cry_Sceptile + cry Cry_Mudkip + cry Cry_Marshtomp + cry Cry_Swampert + cry Cry_Pelipper + cry Cry_Wingull + cry Cry_Banette + cry Cry_Shuppet + cry Cry_Lotad + cry Cry_Lombre + cry Cry_Ludicolo + cry Cry_Seedot + cry Cry_Nuzleaf + cry Cry_Shiftry + cry Cry_Carvanha + cry Cry_Wurmple + cry Cry_Silcoon + cry Cry_Beautifly + cry Cry_Cascoon + cry Cry_Dustox + cry Cry_Ralts + cry Cry_Kirlia + cry Cry_Gardevoir + cry Cry_Slakoth + cry Cry_Vigoroth + cry Cry_Slaking + cry Cry_Nincada + cry Cry_Ninjask + cry Cry_Shedinja + cry Cry_Makuhita + cry Cry_Hariyama + cry Cry_Nosepass + cry Cry_Glalie + cry Cry_Plusle + cry Cry_Minun + cry Cry_Surskit + cry Cry_Masquerain + cry Cry_Skitty + cry Cry_Delcatty + cry Cry_Gulpin + cry Cry_Swalot + cry Cry_Numel + cry Cry_Camerupt + cry Cry_Barboach + cry Cry_Whiscash + cry Cry_Corphish + cry Cry_Crawdaunt + cry Cry_Spoink + cry Cry_Grumpig + cry Cry_Trapinch + cry Cry_Vibrava + cry Cry_Flygon + cry Cry_Cacnea + cry Cry_Cacturne + cry Cry_Baltoy + cry Cry_Claydol + cry Cry_Lunatone + cry Cry_Solrock + cry Cry_Feebas + cry Cry_Milotic + cry Cry_Absol + cry Cry_Meditite + cry Cry_Medicham + cry Cry_Spheal + cry Cry_Sealeo + cry Cry_Walrein + cry Cry_Clamperl + cry Cry_Huntail + cry Cry_Gorebyss + cry Cry_Lileep + cry Cry_Cradily + cry Cry_Anorith + cry Cry_Armaldo + cry Cry_Beldum + cry Cry_Metang + cry Cry_Metagross + cry Cry_Bagon + cry Cry_Shelgon + cry Cry_Regirock + cry Cry_Regice + cry Cry_Registeel + cry Cry_Castform + cry Cry_Volbeat + cry Cry_Illumise + cry Cry_Poochyena + cry Cry_Mightyena + cry Cry_Dusclops + cry Cry_Sableye + cry Cry_Mawile + cry Cry_Aron + cry Cry_Lairon + cry Cry_Aggron + cry Cry_Relicanth + cry Cry_Luvdisc + cry Cry_Groudon + cry Cry_Kyogre + cry Cry_Rayquaza + cry Cry_Salamence + cry Cry_Breloom + cry Cry_Shroomish + cry Cry_Linoone + cry Cry_Tropius + cry Cry_Wailmer + cry Cry_Zigzagoon + cry Cry_Exploud + cry Cry_Loudred + cry Cry_Wailord + cry Cry_Whismur + cry Cry_Snorunt + cry Cry_Latios + cry Cry_Jirachi + cry Cry_Deoxys + cry Cry_Chimecho + .align 2 gCryTable2:: @ 848DB44 - .incbin "baserom.gba", 0x48DB44, 0x600 + cry2 Cry_Bulbasaur + cry2 Cry_Ivysaur + cry2 Cry_Venusaur + cry2 Cry_Charmander + cry2 Cry_Charmeleon + cry2 Cry_Charizard + cry2 Cry_Squirtle + cry2 Cry_Wartortle + cry2 Cry_Blastoise + cry2 Cry_Caterpie + cry2 Cry_Metapod + cry2 Cry_Butterfree + cry2 Cry_Weedle + cry2 Cry_Kakuna + cry2 Cry_Beedrill + cry2 Cry_Pidgey + cry2 Cry_Pidgeotto + cry2 Cry_Pidgeot + cry2 Cry_Rattata + cry2 Cry_Raticate + cry2 Cry_Spearow + cry2 Cry_Fearow + cry2 Cry_Ekans + cry2 Cry_Arbok + cry2 Cry_Pikachu + cry2 Cry_Raichu + cry2 Cry_Sandshrew + cry2 Cry_Sandslash + cry2 Cry_NidoranF + cry2 Cry_Nidorina + cry2 Cry_Nidoqueen + cry2 Cry_NidoranM + cry2 Cry_Nidorino + cry2 Cry_Nidoking + cry2 Cry_Clefairy + cry2 Cry_Clefable + cry2 Cry_Vulpix + cry2 Cry_Ninetales + cry2 Cry_Jigglypuff + cry2 Cry_Wigglytuff + cry2 Cry_Zubat + cry2 Cry_Golbat + cry2 Cry_Oddish + cry2 Cry_Gloom + cry2 Cry_Vileplume + cry2 Cry_Paras + cry2 Cry_Parasect + cry2 Cry_Venonat + cry2 Cry_Venomoth + cry2 Cry_Diglett + cry2 Cry_Dugtrio + cry2 Cry_Meowth + cry2 Cry_Persian + cry2 Cry_Psyduck + cry2 Cry_Golduck + cry2 Cry_Mankey + cry2 Cry_Primeape + cry2 Cry_Growlithe + cry2 Cry_Arcanine + cry2 Cry_Poliwag + cry2 Cry_Poliwhirl + cry2 Cry_Poliwrath + cry2 Cry_Abra + cry2 Cry_Kadabra + cry2 Cry_Alakazam + cry2 Cry_Machop + cry2 Cry_Machoke + cry2 Cry_Machamp + cry2 Cry_Bellsprout + cry2 Cry_Weepinbell + cry2 Cry_Victreebel + cry2 Cry_Tentacool + cry2 Cry_Tentacruel + cry2 Cry_Geodude + cry2 Cry_Graveler + cry2 Cry_Golem + cry2 Cry_Ponyta + cry2 Cry_Rapidash + cry2 Cry_Slowpoke + cry2 Cry_Slowbro + cry2 Cry_Magnemite + cry2 Cry_Magneton + cry2 Cry_Farfetchd + cry2 Cry_Doduo + cry2 Cry_Dodrio + cry2 Cry_Seel + cry2 Cry_Dewgong + cry2 Cry_Grimer + cry2 Cry_Muk + cry2 Cry_Shellder + cry2 Cry_Cloyster + cry2 Cry_Gastly + cry2 Cry_Haunter + cry2 Cry_Gengar + cry2 Cry_Onix + cry2 Cry_Drowzee + cry2 Cry_Hypno + cry2 Cry_Krabby + cry2 Cry_Kingler + cry2 Cry_Voltorb + cry2 Cry_Electrode + cry2 Cry_Exeggcute + cry2 Cry_Exeggutor + cry2 Cry_Cubone + cry2 Cry_Marowak + cry2 Cry_Hitmonlee + cry2 Cry_Hitmonchan + cry2 Cry_Lickitung + cry2 Cry_Koffing + cry2 Cry_Weezing + cry2 Cry_Rhyhorn + cry2 Cry_Rhydon + cry2 Cry_Chansey + cry2 Cry_Tangela + cry2 Cry_Kangaskhan + cry2 Cry_Horsea + cry2 Cry_Seadra + cry2 Cry_Goldeen + cry2 Cry_Seaking + cry2 Cry_Staryu + cry2 Cry_Starmie + cry2 Cry_MrMime + cry2 Cry_Scyther + cry2 Cry_Jynx + cry2 Cry_Electabuzz + cry2 Cry_Magmar + cry2 Cry_Pinsir + cry2 Cry_Tauros + cry2 Cry_Magikarp + cry2 Cry_Gyarados + cry2 Cry_Lapras + cry2 Cry_Ditto + cry2 Cry_Eevee + cry2 Cry_Vaporeon + cry2 Cry_Jolteon + cry2 Cry_Flareon + cry2 Cry_Porygon + cry2 Cry_Omanyte + cry2 Cry_Omastar + cry2 Cry_Kabuto + cry2 Cry_Kabutops + cry2 Cry_Aerodactyl + cry2 Cry_Snorlax + cry2 Cry_Articuno + cry2 Cry_Zapdos + cry2 Cry_Moltres + cry2 Cry_Dratini + cry2 Cry_Dragonair + cry2 Cry_Dragonite + cry2 Cry_Mewtwo + cry2 Cry_Mew + cry2 Cry_Chikorita + cry2 Cry_Bayleef + cry2 Cry_Meganium + cry2 Cry_Cyndaquil + cry2 Cry_Quilava + cry2 Cry_Typhlosion + cry2 Cry_Totodile + cry2 Cry_Croconaw + cry2 Cry_Feraligatr + cry2 Cry_Sentret + cry2 Cry_Furret + cry2 Cry_Hoothoot + cry2 Cry_Noctowl + cry2 Cry_Ledyba + cry2 Cry_Ledian + cry2 Cry_Spinarak + cry2 Cry_Ariados + cry2 Cry_Crobat + cry2 Cry_Chinchou + cry2 Cry_Lanturn + cry2 Cry_Pichu + cry2 Cry_Cleffa + cry2 Cry_Igglybuff + cry2 Cry_Togepi + cry2 Cry_Togetic + cry2 Cry_Natu + cry2 Cry_Xatu + cry2 Cry_Mareep + cry2 Cry_Flaaffy + cry2 Cry_Ampharos + cry2 Cry_Bellossom + cry2 Cry_Marill + cry2 Cry_Azumarill + cry2 Cry_Sudowoodo + cry2 Cry_Politoed + cry2 Cry_Hoppip + cry2 Cry_Skiploom + cry2 Cry_Jumpluff + cry2 Cry_Aipom + cry2 Cry_Sunkern + cry2 Cry_Sunflora + cry2 Cry_Yanma + cry2 Cry_Wooper + cry2 Cry_Quagsire + cry2 Cry_Espeon + cry2 Cry_Umbreon + cry2 Cry_Murkrow + cry2 Cry_Slowking + cry2 Cry_Misdreavus + cry2 Cry_Unown + cry2 Cry_Wobbuffet + cry2 Cry_Girafarig + cry2 Cry_Pineco + cry2 Cry_Forretress + cry2 Cry_Dunsparce + cry2 Cry_Gligar + cry2 Cry_Steelix + cry2 Cry_Snubbull + cry2 Cry_Granbull + cry2 Cry_Qwilfish + cry2 Cry_Scizor + cry2 Cry_Shuckle + cry2 Cry_Heracross + cry2 Cry_Sneasel + cry2 Cry_Teddiursa + cry2 Cry_Ursaring + cry2 Cry_Slugma + cry2 Cry_Magcargo + cry2 Cry_Swinub + cry2 Cry_Piloswine + cry2 Cry_Corsola + cry2 Cry_Remoraid + cry2 Cry_Octillery + cry2 Cry_Delibird + cry2 Cry_Mantine + cry2 Cry_Skarmory + cry2 Cry_Houndour + cry2 Cry_Houndoom + cry2 Cry_Kingdra + cry2 Cry_Phanpy + cry2 Cry_Donphan + cry2 Cry_Porygon2 + cry2 Cry_Stantler + cry2 Cry_Smeargle + cry2 Cry_Tyrogue + cry2 Cry_Hitmontop + cry2 Cry_Smoochum + cry2 Cry_Elekid + cry2 Cry_Magby + cry2 Cry_Miltank + cry2 Cry_Blissey + cry2 Cry_Raikou + cry2 Cry_Entei + cry2 Cry_Suicune + cry2 Cry_Larvitar + cry2 Cry_Pupitar + cry2 Cry_Tyranitar + cry2 Cry_Lugia + cry2 Cry_HoOh + cry2 Cry_Celebi + cry2 Cry_Kecleon + cry2 Cry_Roselia + cry2 Cry_Torkoal + cry2 Cry_Electrike + cry2 Cry_Manectric + cry2 Cry_Duskull + cry2 Cry_Latias + cry2 Cry_Wynaut + cry2 Cry_Seviper + cry2 Cry_Sharpedo + cry2 Cry_Zangoose + cry2 Cry_Azurill + cry2 Cry_Swablu + cry2 Cry_Altaria + cry2 Cry_Unused265 + cry2 Cry_Taillow + cry2 Cry_Swellow + cry2 Cry_Unused268 + cry2 Cry_Spinda + cry2 Cry_Torchic + cry2 Cry_Combusken + cry2 Cry_Blaziken + cry2 Cry_Treecko + cry2 Cry_Grovyle + cry2 Cry_Sceptile + cry2 Cry_Mudkip + cry2 Cry_Marshtomp + cry2 Cry_Swampert + cry2 Cry_Pelipper + cry2 Cry_Wingull + cry2 Cry_Banette + cry2 Cry_Shuppet + cry2 Cry_Lotad + cry2 Cry_Lombre + cry2 Cry_Ludicolo + cry2 Cry_Seedot + cry2 Cry_Nuzleaf + cry2 Cry_Shiftry + cry2 Cry_Carvanha + cry2 Cry_Wurmple + cry2 Cry_Silcoon + cry2 Cry_Beautifly + cry2 Cry_Cascoon + cry2 Cry_Dustox + cry2 Cry_Ralts + cry2 Cry_Kirlia + cry2 Cry_Gardevoir + cry2 Cry_Slakoth + cry2 Cry_Vigoroth + cry2 Cry_Slaking + cry2 Cry_Nincada + cry2 Cry_Ninjask + cry2 Cry_Shedinja + cry2 Cry_Makuhita + cry2 Cry_Hariyama + cry2 Cry_Nosepass + cry2 Cry_Glalie + cry2 Cry_Plusle + cry2 Cry_Minun + cry2 Cry_Surskit + cry2 Cry_Masquerain + cry2 Cry_Skitty + cry2 Cry_Delcatty + cry2 Cry_Gulpin + cry2 Cry_Swalot + cry2 Cry_Numel + cry2 Cry_Camerupt + cry2 Cry_Barboach + cry2 Cry_Whiscash + cry2 Cry_Corphish + cry2 Cry_Crawdaunt + cry2 Cry_Spoink + cry2 Cry_Grumpig + cry2 Cry_Trapinch + cry2 Cry_Vibrava + cry2 Cry_Flygon + cry2 Cry_Cacnea + cry2 Cry_Cacturne + cry2 Cry_Baltoy + cry2 Cry_Claydol + cry2 Cry_Lunatone + cry2 Cry_Solrock + cry2 Cry_Feebas + cry2 Cry_Milotic + cry2 Cry_Absol + cry2 Cry_Meditite + cry2 Cry_Medicham + cry2 Cry_Spheal + cry2 Cry_Sealeo + cry2 Cry_Walrein + cry2 Cry_Clamperl + cry2 Cry_Huntail + cry2 Cry_Gorebyss + cry2 Cry_Lileep + cry2 Cry_Cradily + cry2 Cry_Anorith + cry2 Cry_Armaldo + cry2 Cry_Beldum + cry2 Cry_Metang + cry2 Cry_Metagross + cry2 Cry_Bagon + cry2 Cry_Shelgon + cry2 Cry_Regirock + cry2 Cry_Regice + cry2 Cry_Registeel + cry2 Cry_Castform + cry2 Cry_Volbeat + cry2 Cry_Illumise + cry2 Cry_Poochyena + cry2 Cry_Mightyena + cry2 Cry_Dusclops + cry2 Cry_Sableye + cry2 Cry_Mawile + cry2 Cry_Aron + cry2 Cry_Lairon + cry2 Cry_Aggron + cry2 Cry_Relicanth + cry2 Cry_Luvdisc + cry2 Cry_Groudon + cry2 Cry_Kyogre + cry2 Cry_Rayquaza + cry2 Cry_Salamence + cry2 Cry_Breloom + cry2 Cry_Shroomish + cry2 Cry_Linoone + cry2 Cry_Tropius + cry2 Cry_Wailmer + cry2 Cry_Zigzagoon + cry2 Cry_Exploud + cry2 Cry_Loudred + cry2 Cry_Wailord + cry2 Cry_Whismur + cry2 Cry_Snorunt + cry2 Cry_Latios + cry2 Cry_Jirachi + cry2 Cry_Deoxys + cry2 Cry_Chimecho -gUnknown_848E144:: @ 848E144 - .incbin "baserom.gba", 0x48E144, 0x600 +gUnknown_848ED74:: @ 848ED74 + .incbin "baserom.gba", 0x48ED74, 0x14528 -gUnknown_848E744:: @ 848E744 - .incbin "baserom.gba", 0x48E744, 0x600 + .include "sound/music_player_table.inc" + .include "sound/song_table.inc" -gUnknown_848ED44:: @ 848ED44 - .incbin "baserom.gba", 0x48ED44, 0x14558 + .align 2 +gDirectSoundWaveData_0:: @ 84A3DA8 + .incbin "baserom.gba", 0x4A3DA8, 0x6BE1C -gMPlayTable:: @ 84A329C - .incbin "baserom.gba", 0x4A329C, 0x30 + .align 2 +Cry_Bulbasaur:: @ 850FBC4 + .incbin "sound/direct_sound_samples/cry_bulbasaur.bin" -gSongTable:: @ 84A32CC - .incbin "baserom.gba", 0x4A32CC, 0x243840 + .align 2 +Cry_Ivysaur:: @ 8510C50 + .incbin "sound/direct_sound_samples/cry_ivysaur.bin" -gUnknown_86E6B0C:: @ 86E6B0C - .incbin "baserom.gba", 0x6E6B0C, 0x15398 + .align 2 +Cry_Venusaur:: @ 8511CE0 + .incbin "sound/direct_sound_samples/cry_venusaur.bin" + + .align 2 +Cry_Charmander:: @ 8513038 + .incbin "sound/direct_sound_samples/cry_charmander.bin" + + .align 2 +Cry_Charmeleon:: @ 8513EA8 + .incbin "sound/direct_sound_samples/cry_charmeleon.bin" + + .align 2 +Cry_Charizard:: @ 8514D28 + .incbin "sound/direct_sound_samples/cry_charizard.bin" + + .align 2 +Cry_Squirtle:: @ 8516070 + .incbin "sound/direct_sound_samples/cry_squirtle.bin" + + .align 2 +Cry_Wartortle:: @ 8516EE4 + .incbin "sound/direct_sound_samples/cry_wartortle.bin" + + .align 2 +Cry_Blastoise:: @ 8518024 + .incbin "sound/direct_sound_samples/cry_blastoise.bin" + + .align 2 +Cry_Caterpie:: @ 851936C + .incbin "sound/direct_sound_samples/cry_caterpie.bin" + + .align 2 +Cry_Metapod:: @ 8519BC4 + .incbin "sound/direct_sound_samples/cry_metapod.bin" + + .align 2 +Cry_Butterfree:: @ 851B314 + .incbin "sound/direct_sound_samples/cry_butterfree.bin" + + .align 2 +Cry_Weedle:: @ 851BD1C + .incbin "sound/direct_sound_samples/cry_weedle.bin" + + .align 2 +Cry_Kakuna:: @ 851CD60 + .incbin "sound/direct_sound_samples/cry_kakuna.bin" + + .align 2 +Cry_Beedrill:: @ 851DF9C + .incbin "sound/direct_sound_samples/cry_beedrill.bin" + + .align 2 +Cry_Pidgey:: @ 851F2F8 + .incbin "sound/direct_sound_samples/cry_pidgey.bin" + + .align 2 +Cry_Pidgeotto:: @ 851F6E0 + .incbin "sound/direct_sound_samples/cry_pidgeotto.bin" + + .align 2 +Cry_Pidgeot:: @ 85205E8 + .incbin "sound/direct_sound_samples/cry_pidgeot.bin" + + .align 2 +Cry_Rattata:: @ 852171C + .incbin "sound/direct_sound_samples/cry_rattata.bin" + + .align 2 +Cry_Raticate:: @ 8521EFC + .incbin "sound/direct_sound_samples/cry_raticate.bin" + + .align 2 +Cry_Spearow:: @ 8522880 + .incbin "sound/direct_sound_samples/cry_spearow.bin" + + .align 2 +Cry_Fearow:: @ 8523A24 + .incbin "sound/direct_sound_samples/cry_fearow.bin" + + .align 2 +Cry_Ekans:: @ 8524B60 + .incbin "sound/direct_sound_samples/cry_ekans.bin" + + .align 2 +Cry_Arbok:: @ 8525EAC + .incbin "sound/direct_sound_samples/cry_arbok.bin" + + .align 2 +Cry_Pikachu:: @ 8527204 + .incbin "sound/direct_sound_samples/cry_pikachu.bin" + + .align 2 +Cry_Raichu:: @ 85282AC + .incbin "sound/direct_sound_samples/cry_raichu.bin" + + .align 2 +Cry_Sandshrew:: @ 8529A6C + .incbin "sound/direct_sound_samples/cry_sandshrew.bin" + + .align 2 +Cry_Sandslash:: @ 852A3C0 + .incbin "sound/direct_sound_samples/cry_sandslash.bin" + + .align 2 +Cry_NidoranF:: @ 852B150 + .incbin "sound/direct_sound_samples/cry_nidoran_f.bin" + + .align 2 +Cry_Nidorina:: @ 852BB00 + .incbin "sound/direct_sound_samples/cry_nidorina.bin" + + .align 2 +Cry_Nidoqueen:: @ 852C7C8 + .incbin "sound/direct_sound_samples/cry_nidoqueen.bin" + + .align 2 +Cry_NidoranM:: @ 852D8A8 + .incbin "sound/direct_sound_samples/cry_nidoran_m.bin" + + .align 2 +Cry_Nidorino:: @ 852E310 + .incbin "sound/direct_sound_samples/cry_nidorino.bin" + + .align 2 +Cry_Nidoking:: @ 852EF24 + .incbin "sound/direct_sound_samples/cry_nidoking.bin" + + .align 2 +Cry_Clefairy:: @ 8530790 + .incbin "sound/direct_sound_samples/cry_clefairy.bin" + + .align 2 +Cry_Clefable:: @ 8531000 + .incbin "sound/direct_sound_samples/cry_clefable.bin" + + .align 2 +Cry_Vulpix:: @ 8531A90 + .incbin "sound/direct_sound_samples/cry_vulpix.bin" + + .align 2 +Cry_Ninetales:: @ 8533260 + .incbin "sound/direct_sound_samples/cry_ninetales.bin" + + .align 2 +Cry_Jigglypuff:: @ 8534ACC + .incbin "sound/direct_sound_samples/cry_jigglypuff.bin" + + .align 2 +Cry_Wigglytuff:: @ 8535030 + .incbin "sound/direct_sound_samples/cry_wigglytuff.bin" + + .align 2 +Cry_Zubat:: @ 85356F8 + .incbin "sound/direct_sound_samples/cry_zubat.bin" + + .align 2 +Cry_Golbat:: @ 8536A64 + .incbin "sound/direct_sound_samples/cry_golbat.bin" + + .align 2 +Cry_Oddish:: @ 8537DC8 + .incbin "sound/direct_sound_samples/cry_oddish.bin" + + .align 2 +Cry_Gloom:: @ 8538C64 + .incbin "sound/direct_sound_samples/cry_gloom.bin" + + .align 2 +Cry_Vileplume:: @ 85398E0 + .incbin "sound/direct_sound_samples/cry_vileplume.bin" + + .align 2 +Cry_Paras:: @ 853B27C + .incbin "sound/direct_sound_samples/cry_paras.bin" + + .align 2 +Cry_Parasect:: @ 853CE70 + .incbin "sound/direct_sound_samples/cry_parasect.bin" + + .align 2 +Cry_Venonat:: @ 853ECD8 + .incbin "sound/direct_sound_samples/cry_venonat.bin" + + .align 2 +Cry_Venomoth:: @ 853FC58 + .incbin "sound/direct_sound_samples/cry_venomoth.bin" + + .align 2 +Cry_Diglett:: @ 8540C5C + .incbin "sound/direct_sound_samples/cry_diglett.bin" + + .align 2 +Cry_Dugtrio:: @ 8541FCC + .incbin "sound/direct_sound_samples/cry_dugtrio.bin" + + .align 2 +Cry_Meowth:: @ 8543338 + .incbin "sound/direct_sound_samples/cry_meowth.bin" + + .align 2 +Cry_Persian:: @ 8543CC8 + .incbin "sound/direct_sound_samples/cry_persian.bin" + + .align 2 +Cry_Psyduck:: @ 8544FA4 + .incbin "sound/direct_sound_samples/cry_psyduck.bin" + + .align 2 +Cry_Golduck:: @ 8545CCC + .incbin "sound/direct_sound_samples/cry_golduck.bin" + + .align 2 +Cry_Mankey:: @ 8546814 + .incbin "sound/direct_sound_samples/cry_mankey.bin" + + .align 2 +Cry_Primeape:: @ 8547874 + .incbin "sound/direct_sound_samples/cry_primeape.bin" + + .align 2 +Cry_Growlithe:: @ 85488A4 + .incbin "sound/direct_sound_samples/cry_growlithe.bin" + + .align 2 +Cry_Arcanine:: @ 8549608 + .incbin "sound/direct_sound_samples/cry_arcanine.bin" + + .align 2 +Cry_Poliwag:: @ 854A744 + .incbin "sound/direct_sound_samples/cry_poliwag.bin" + + .align 2 +Cry_Poliwhirl:: @ 854B260 + .incbin "sound/direct_sound_samples/cry_poliwhirl.bin" + + .align 2 +Cry_Poliwrath:: @ 854B908 + .incbin "sound/direct_sound_samples/cry_poliwrath.bin" + + .align 2 +Cry_Abra:: @ 854C42C + .incbin "sound/direct_sound_samples/cry_abra.bin" + + .align 2 +Cry_Kadabra:: @ 854DB90 + .incbin "sound/direct_sound_samples/cry_kadabra.bin" + + .align 2 +Cry_Alakazam:: @ 854F678 + .incbin "sound/direct_sound_samples/cry_alakazam.bin" + + .align 2 +Cry_Machop:: @ 8551614 + .incbin "sound/direct_sound_samples/cry_machop.bin" + + .align 2 +Cry_Machoke:: @ 8552378 + .incbin "sound/direct_sound_samples/cry_machoke.bin" + + .align 2 +Cry_Machamp:: @ 8553108 + .incbin "sound/direct_sound_samples/cry_machamp.bin" + + .align 2 +Cry_Bellsprout:: @ 8554190 + .incbin "sound/direct_sound_samples/cry_bellsprout.bin" + + .align 2 +Cry_Weepinbell:: @ 855491C + .incbin "sound/direct_sound_samples/cry_weepinbell.bin" + + .align 2 +Cry_Victreebel:: @ 85557BC + .incbin "sound/direct_sound_samples/cry_victreebel.bin" + + .align 2 +Cry_Tentacool:: @ 8556B08 + .incbin "sound/direct_sound_samples/cry_tentacool.bin" + + .align 2 +Cry_Tentacruel:: @ 8557AF8 + .incbin "sound/direct_sound_samples/cry_tentacruel.bin" + + .align 2 +Cry_Geodude:: @ 85591F4 + .incbin "sound/direct_sound_samples/cry_geodude.bin" + + .align 2 +Cry_Graveler:: @ 855A9A8 + .incbin "sound/direct_sound_samples/cry_graveler.bin" + + .align 2 +Cry_Golem:: @ 855C590 + .incbin "sound/direct_sound_samples/cry_golem.bin" + + .align 2 +Cry_Ponyta:: @ 855D3BC + .incbin "sound/direct_sound_samples/cry_ponyta.bin" + + .align 2 +Cry_Rapidash:: @ 855E2CC + .incbin "sound/direct_sound_samples/cry_rapidash.bin" + + .align 2 +Cry_Slowpoke:: @ 855F56C + .incbin "sound/direct_sound_samples/cry_slowpoke.bin" + + .align 2 +Cry_Slowbro:: @ 855FCD4 + .incbin "sound/direct_sound_samples/cry_slowbro.bin" + + .align 2 +Cry_Magnemite:: @ 8560A44 + .incbin "sound/direct_sound_samples/cry_magnemite.bin" + + .align 2 +Cry_Magneton:: @ 8561D88 + .incbin "sound/direct_sound_samples/cry_magneton.bin" + + .align 2 +Cry_Farfetchd:: @ 8563570 + .incbin "sound/direct_sound_samples/cry_farfetchd.bin" + + .align 2 +Cry_Doduo:: @ 8563CEC + .incbin "sound/direct_sound_samples/cry_doduo.bin" + + .align 2 +Cry_Dodrio:: @ 8565030 + .incbin "sound/direct_sound_samples/cry_dodrio.bin" + + .align 2 +Cry_Seel:: @ 85663A8 + .incbin "sound/direct_sound_samples/cry_seel.bin" + + .align 2 +Cry_Dewgong:: @ 8567598 + .incbin "sound/direct_sound_samples/cry_dewgong.bin" + + .align 2 +Cry_Grimer:: @ 8568ABC + .incbin "sound/direct_sound_samples/cry_grimer.bin" + + .align 2 +Cry_Muk:: @ 8569544 + .incbin "sound/direct_sound_samples/cry_muk.bin" + + .align 2 +Cry_Shellder:: @ 856A404 + .incbin "sound/direct_sound_samples/cry_shellder.bin" + + .align 2 +Cry_Cloyster:: @ 856B378 + .incbin "sound/direct_sound_samples/cry_cloyster.bin" + + .align 2 +Cry_Gastly:: @ 856C83C + .incbin "sound/direct_sound_samples/cry_gastly.bin" + + .align 2 +Cry_Haunter:: @ 856DF8C + .incbin "sound/direct_sound_samples/cry_haunter.bin" + + .align 2 +Cry_Gengar:: @ 856F70C + .incbin "sound/direct_sound_samples/cry_gengar.bin" + + .align 2 +Cry_Onix:: @ 85705CC + .incbin "sound/direct_sound_samples/cry_onix.bin" + + .align 2 +Cry_Drowzee:: @ 8571E90 + .incbin "sound/direct_sound_samples/cry_drowzee.bin" + + .align 2 +Cry_Hypno:: @ 8573BA8 + .incbin "sound/direct_sound_samples/cry_hypno.bin" + + .align 2 +Cry_Krabby:: @ 85758AC + .incbin "sound/direct_sound_samples/cry_krabby.bin" + + .align 2 +Cry_Kingler:: @ 85770F8 + .incbin "sound/direct_sound_samples/cry_kingler.bin" + + .align 2 +Cry_Voltorb:: @ 8578950 + .incbin "sound/direct_sound_samples/cry_voltorb.bin" + + .align 2 +Cry_Electrode:: @ 857A214 + .incbin "sound/direct_sound_samples/cry_electrode.bin" + + .align 2 +Cry_Exeggcute:: @ 857BB4C + .incbin "sound/direct_sound_samples/cry_exeggcute.bin" + + .align 2 +Cry_Exeggutor:: @ 857CE2C + .incbin "sound/direct_sound_samples/cry_exeggutor.bin" + + .align 2 +Cry_Cubone:: @ 857EE10 + .incbin "sound/direct_sound_samples/cry_cubone.bin" + + .align 2 +Cry_Marowak:: @ 857FD30 + .incbin "sound/direct_sound_samples/cry_marowak.bin" + + .align 2 +Cry_Hitmonlee:: @ 8580BA0 + .incbin "sound/direct_sound_samples/cry_hitmonlee.bin" + + .align 2 +Cry_Hitmonchan:: @ 8581E4C + .incbin "sound/direct_sound_samples/cry_hitmonchan.bin" + + .align 2 +Cry_Lickitung:: @ 8583024 + .incbin "sound/direct_sound_samples/cry_lickitung.bin" + + .align 2 +Cry_Koffing:: @ 8583F4C + .incbin "sound/direct_sound_samples/cry_koffing.bin" + + .align 2 +Cry_Weezing:: @ 85853A8 + .incbin "sound/direct_sound_samples/cry_weezing.bin" + + .align 2 +Cry_Rhyhorn:: @ 8586954 + .incbin "sound/direct_sound_samples/cry_rhyhorn.bin" + + .align 2 +Cry_Rhydon:: @ 8587CC0 + .incbin "sound/direct_sound_samples/cry_rhydon.bin" + + .align 2 +Cry_Chansey:: @ 858912C + .incbin "sound/direct_sound_samples/cry_chansey.bin" + + .align 2 +Cry_Tangela:: @ 8589FF8 + .incbin "sound/direct_sound_samples/cry_tangela.bin" + + .align 2 +Cry_Kangaskhan:: @ 858AF14 + .incbin "sound/direct_sound_samples/cry_kangaskhan.bin" + + .align 2 +Cry_Horsea:: @ 858C1C8 + .incbin "sound/direct_sound_samples/cry_horsea.bin" + + .align 2 +Cry_Seadra:: @ 858CB44 + .incbin "sound/direct_sound_samples/cry_seadra.bin" + + .align 2 +Cry_Goldeen:: @ 858D3B0 + .incbin "sound/direct_sound_samples/cry_goldeen.bin" + + .align 2 +Cry_Seaking:: @ 858DD88 + .incbin "sound/direct_sound_samples/cry_seaking.bin" + + .align 2 +Cry_Staryu:: @ 858F0E0 + .incbin "sound/direct_sound_samples/cry_staryu.bin" + + .align 2 +Cry_Starmie:: @ 85904C8 + .incbin "sound/direct_sound_samples/cry_starmie.bin" + + .align 2 +Cry_MrMime:: @ 85919A4 + .incbin "sound/direct_sound_samples/cry_mr_mime.bin" + + .align 2 +Cry_Scyther:: @ 8592C94 + .incbin "sound/direct_sound_samples/cry_scyther.bin" + + .align 2 +Cry_Jynx:: @ 85939F0 + .incbin "sound/direct_sound_samples/cry_jynx.bin" + + .align 2 +Cry_Electabuzz:: @ 8596964 + .incbin "sound/direct_sound_samples/cry_electabuzz.bin" + + .align 2 +Cry_Magmar:: @ 8598848 + .incbin "sound/direct_sound_samples/cry_magmar.bin" + + .align 2 +Cry_Pinsir:: @ 85997C4 + .incbin "sound/direct_sound_samples/cry_pinsir.bin" + + .align 2 +Cry_Tauros:: @ 859A420 + .incbin "sound/direct_sound_samples/cry_tauros.bin" + + .align 2 +Cry_Magikarp:: @ 859B674 + .incbin "sound/direct_sound_samples/cry_magikarp.bin" + + .align 2 +Cry_Gyarados:: @ 859C97C + .incbin "sound/direct_sound_samples/cry_gyarados.bin" + + .align 2 +Cry_Lapras:: @ 859DDB0 + .incbin "sound/direct_sound_samples/cry_lapras.bin" + + .align 2 +Cry_Ditto:: @ 859EC84 + .incbin "sound/direct_sound_samples/cry_ditto.bin" + + .align 2 +Cry_Eevee:: @ 859F7A0 + .incbin "sound/direct_sound_samples/cry_eevee.bin" + + .align 2 +Cry_Vaporeon:: @ 85A05D8 + .incbin "sound/direct_sound_samples/cry_vaporeon.bin" + + .align 2 +Cry_Jolteon:: @ 85A1BF0 + .incbin "sound/direct_sound_samples/cry_jolteon.bin" + + .align 2 +Cry_Flareon:: @ 85A2BC4 + .incbin "sound/direct_sound_samples/cry_flareon.bin" + + .align 2 +Cry_Porygon:: @ 85A3B48 + .incbin "sound/direct_sound_samples/cry_porygon.bin" + + .align 2 +Cry_Omanyte:: @ 85A4F54 + .incbin "sound/direct_sound_samples/cry_omanyte.bin" + + .align 2 +Cry_Omastar:: @ 85A5CAC + .incbin "sound/direct_sound_samples/cry_omastar.bin" + + .align 2 +Cry_Kabuto:: @ 85A6A00 + .incbin "sound/direct_sound_samples/cry_kabuto.bin" + + .align 2 +Cry_Kabutops:: @ 85A7654 + .incbin "sound/direct_sound_samples/cry_kabutops.bin" + + .align 2 +Cry_Aerodactyl:: @ 85A8410 + .incbin "sound/direct_sound_samples/cry_aerodactyl.bin" + + .align 2 +Cry_Snorlax:: @ 85A9C6C + .incbin "sound/direct_sound_samples/cry_snorlax.bin" + + .align 2 +Cry_Articuno:: @ 85AA1A8 + .incbin "sound/direct_sound_samples/cry_articuno.bin" + + .align 2 +Cry_Zapdos:: @ 85AB950 + .incbin "sound/direct_sound_samples/cry_zapdos.bin" + + .align 2 +Cry_Moltres:: @ 85AC8C8 + .incbin "sound/direct_sound_samples/cry_moltres.bin" + + .align 2 +Cry_Dratini:: @ 85AE074 + .incbin "sound/direct_sound_samples/cry_dratini.bin" + + .align 2 +Cry_Dragonair:: @ 85AEC10 + .incbin "sound/direct_sound_samples/cry_dragonair.bin" + + .align 2 +Cry_Dragonite:: @ 85AFCB8 + .incbin "sound/direct_sound_samples/cry_dragonite.bin" + + .align 2 +Cry_Mewtwo:: @ 85B0FC4 + .incbin "sound/direct_sound_samples/cry_mewtwo.bin" + + .align 2 +Cry_Mew:: @ 85B2E2C + .incbin "sound/direct_sound_samples/cry_mew.bin" + + .align 2 +Cry_Chikorita:: @ 85B4C94 + .incbin "sound/direct_sound_samples/cry_chikorita.bin" + + .align 2 +Cry_Bayleef:: @ 85B51D4 + .incbin "sound/direct_sound_samples/cry_bayleef.bin" + + .align 2 +Cry_Meganium:: @ 85B5AA0 + .incbin "sound/direct_sound_samples/cry_meganium.bin" + + .align 2 +Cry_Cyndaquil:: @ 85B6AD8 + .incbin "sound/direct_sound_samples/cry_cyndaquil.bin" + + .align 2 +Cry_Quilava:: @ 85B71DC + .incbin "sound/direct_sound_samples/cry_quilava.bin" + + .align 2 +Cry_Typhlosion:: @ 85B7DC4 + .incbin "sound/direct_sound_samples/cry_typhlosion.bin" + + .align 2 +Cry_Totodile:: @ 85BA3D4 + .incbin "sound/direct_sound_samples/cry_totodile.bin" + + .align 2 +Cry_Croconaw:: @ 85BB62C + .incbin "sound/direct_sound_samples/cry_croconaw.bin" + + .align 2 +Cry_Feraligatr:: @ 85BCA68 + .incbin "sound/direct_sound_samples/cry_feraligatr.bin" + + .align 2 +Cry_Sentret:: @ 85BE3EC + .incbin "sound/direct_sound_samples/cry_sentret.bin" + + .align 2 +Cry_Furret:: @ 85BE814 + .incbin "sound/direct_sound_samples/cry_furret.bin" + + .align 2 +Cry_Hoothoot:: @ 85BEE5C + .incbin "sound/direct_sound_samples/cry_hoothoot.bin" + + .align 2 +Cry_Noctowl:: @ 85BF940 + .incbin "sound/direct_sound_samples/cry_noctowl.bin" + + .align 2 +Cry_Ledyba:: @ 85C0E70 + .incbin "sound/direct_sound_samples/cry_ledyba.bin" + + .align 2 +Cry_Ledian:: @ 85C1568 + .incbin "sound/direct_sound_samples/cry_ledian.bin" + + .align 2 +Cry_Spinarak:: @ 85C1DCC + .incbin "sound/direct_sound_samples/cry_spinarak.bin" + + .align 2 +Cry_Ariados:: @ 85C2B30 + .incbin "sound/direct_sound_samples/cry_ariados.bin" + + .align 2 +Cry_Crobat:: @ 85C3784 + .incbin "sound/direct_sound_samples/cry_crobat.bin" + + .align 2 +Cry_Chinchou:: @ 85C4EB4 + .incbin "sound/direct_sound_samples/cry_chinchou.bin" + + .align 2 +Cry_Lanturn:: @ 85C5B64 + .incbin "sound/direct_sound_samples/cry_lanturn.bin" + + .align 2 +Cry_Pichu:: @ 85C65F0 + .incbin "sound/direct_sound_samples/cry_pichu.bin" + + .align 2 +Cry_Cleffa:: @ 85C6D44 + .incbin "sound/direct_sound_samples/cry_cleffa.bin" + + .align 2 +Cry_Igglybuff:: @ 85C7334 + .incbin "sound/direct_sound_samples/cry_igglybuff.bin" + + .align 2 +Cry_Togepi:: @ 85C7A30 + .incbin "sound/direct_sound_samples/cry_togepi.bin" + + .align 2 +Cry_Togetic:: @ 85C8518 + .incbin "sound/direct_sound_samples/cry_togetic.bin" + + .align 2 +Cry_Natu:: @ 85C8C18 + .incbin "sound/direct_sound_samples/cry_natu.bin" + + .align 2 +Cry_Xatu:: @ 85C96A8 + .incbin "sound/direct_sound_samples/cry_xatu.bin" + + .align 2 +Cry_Mareep:: @ 85CA574 + .incbin "sound/direct_sound_samples/cry_mareep.bin" + + .align 2 +Cry_Flaaffy:: @ 85CACCC + .incbin "sound/direct_sound_samples/cry_flaaffy.bin" + + .align 2 +Cry_Ampharos:: @ 85CBA80 + .incbin "sound/direct_sound_samples/cry_ampharos.bin" + + .align 2 +Cry_Bellossom:: @ 85CCB00 + .incbin "sound/direct_sound_samples/cry_bellossom.bin" + + .align 2 +Cry_Marill:: @ 85CD918 + .incbin "sound/direct_sound_samples/cry_marill.bin" + + .align 2 +Cry_Azumarill:: @ 85CE62C + .incbin "sound/direct_sound_samples/cry_azumarill.bin" + + .align 2 +Cry_Sudowoodo:: @ 85CF718 + .incbin "sound/direct_sound_samples/cry_sudowoodo.bin" + + .align 2 +Cry_Politoed:: @ 85D0748 + .incbin "sound/direct_sound_samples/cry_politoed.bin" + + .align 2 +Cry_Hoppip:: @ 85D198C + .incbin "sound/direct_sound_samples/cry_hoppip.bin" + + .align 2 +Cry_Skiploom:: @ 85D21F8 + .incbin "sound/direct_sound_samples/cry_skiploom.bin" + + .align 2 +Cry_Jumpluff:: @ 85D2F00 + .incbin "sound/direct_sound_samples/cry_jumpluff.bin" + + .align 2 +Cry_Aipom:: @ 85D3F3C + .incbin "sound/direct_sound_samples/cry_aipom.bin" + + .align 2 +Cry_Sunkern:: @ 85D4D5C + .incbin "sound/direct_sound_samples/cry_sunkern.bin" + + .align 2 +Cry_Sunflora:: @ 85D5570 + .incbin "sound/direct_sound_samples/cry_sunflora.bin" + + .align 2 +Cry_Yanma:: @ 85D6550 + .incbin "sound/direct_sound_samples/cry_yanma.bin" + + .align 2 +Cry_Wooper:: @ 85D7658 + .incbin "sound/direct_sound_samples/cry_wooper.bin" + + .align 2 +Cry_Quagsire:: @ 85D7DB8 + .incbin "sound/direct_sound_samples/cry_quagsire.bin" + + .align 2 +Cry_Espeon:: @ 85D8B18 + .incbin "sound/direct_sound_samples/cry_espeon.bin" + + .align 2 +Cry_Umbreon:: @ 85D9ECC + .incbin "sound/direct_sound_samples/cry_umbreon.bin" + + .align 2 +Cry_Murkrow:: @ 85DAE4C + .incbin "sound/direct_sound_samples/cry_murkrow.bin" + + .align 2 +Cry_Slowking:: @ 85DBF10 + .incbin "sound/direct_sound_samples/cry_slowking.bin" + + .align 2 +Cry_Misdreavus:: @ 85DD6F4 + .incbin "sound/direct_sound_samples/cry_misdreavus.bin" + + .align 2 +Cry_Unown:: @ 85DE294 + .incbin "sound/direct_sound_samples/cry_unown.bin" + + .align 2 +Cry_Wobbuffet:: @ 85DEFBC + .incbin "sound/direct_sound_samples/cry_wobbuffet.bin" + + .align 2 +Cry_Girafarig:: @ 85E0458 + .incbin "sound/direct_sound_samples/cry_girafarig.bin" + + .align 2 +Cry_Pineco:: @ 85E130C + .incbin "sound/direct_sound_samples/cry_pineco.bin" + + .align 2 +Cry_Forretress:: @ 85E206C + .incbin "sound/direct_sound_samples/cry_forretress.bin" + + .align 2 +Cry_Dunsparce:: @ 85E3474 + .incbin "sound/direct_sound_samples/cry_dunsparce.bin" + + .align 2 +Cry_Gligar:: @ 85E4454 + .incbin "sound/direct_sound_samples/cry_gligar.bin" + + .align 2 +Cry_Steelix:: @ 85E5074 + .incbin "sound/direct_sound_samples/cry_steelix.bin" + + .align 2 +Cry_Snubbull:: @ 85E769C + .incbin "sound/direct_sound_samples/cry_snubbull.bin" + + .align 2 +Cry_Granbull:: @ 85E8510 + .incbin "sound/direct_sound_samples/cry_granbull.bin" + + .align 2 +Cry_Qwilfish:: @ 85E9CB4 + .incbin "sound/direct_sound_samples/cry_qwilfish.bin" + + .align 2 +Cry_Scizor:: @ 85EA850 + .incbin "sound/direct_sound_samples/cry_scizor.bin" + + .align 2 +Cry_Shuckle:: @ 85EBF4C + .incbin "sound/direct_sound_samples/cry_shuckle.bin" + + .align 2 +Cry_Heracross:: @ 85EC980 + .incbin "sound/direct_sound_samples/cry_heracross.bin" + + .align 2 +Cry_Sneasel:: @ 85EDBD4 + .incbin "sound/direct_sound_samples/cry_sneasel.bin" + + .align 2 +Cry_Teddiursa:: @ 85EE4F8 + .incbin "sound/direct_sound_samples/cry_teddiursa.bin" + + .align 2 +Cry_Ursaring:: @ 85EF584 + .incbin "sound/direct_sound_samples/cry_ursaring.bin" + + .align 2 +Cry_Slugma:: @ 85F135C + .incbin "sound/direct_sound_samples/cry_slugma.bin" + + .align 2 +Cry_Magcargo:: @ 85F2474 + .incbin "sound/direct_sound_samples/cry_magcargo.bin" + + .align 2 +Cry_Swinub:: @ 85F397C + .incbin "sound/direct_sound_samples/cry_swinub.bin" + + .align 2 +Cry_Piloswine:: @ 85F4624 + .incbin "sound/direct_sound_samples/cry_piloswine.bin" + + .align 2 +Cry_Corsola:: @ 85F5318 + .incbin "sound/direct_sound_samples/cry_corsola.bin" + + .align 2 +Cry_Remoraid:: @ 85F5FF8 + .incbin "sound/direct_sound_samples/cry_remoraid.bin" + + .align 2 +Cry_Octillery:: @ 85F6A88 + .incbin "sound/direct_sound_samples/cry_octillery.bin" + + .align 2 +Cry_Delibird:: @ 85F84CC + .incbin "sound/direct_sound_samples/cry_delibird.bin" + + .align 2 +Cry_Mantine:: @ 85F9500 + .incbin "sound/direct_sound_samples/cry_mantine.bin" + + .align 2 +Cry_Skarmory:: @ 85FA4C8 + .incbin "sound/direct_sound_samples/cry_skarmory.bin" + + .align 2 +Cry_Houndour:: @ 85FBCD0 + .incbin "sound/direct_sound_samples/cry_houndour.bin" + + .align 2 +Cry_Houndoom:: @ 85FC978 + .incbin "sound/direct_sound_samples/cry_houndoom.bin" + + .align 2 +Cry_Kingdra:: @ 85FDD28 + .incbin "sound/direct_sound_samples/cry_kingdra.bin" + + .align 2 +Cry_Phanpy:: @ 85FEB00 + .incbin "sound/direct_sound_samples/cry_phanpy.bin" + + .align 2 +Cry_Donphan:: @ 85FF650 + .incbin "sound/direct_sound_samples/cry_donphan.bin" + + .align 2 +Cry_Porygon2:: @ 8600774 + .incbin "sound/direct_sound_samples/cry_porygon2.bin" + + .align 2 +Cry_Stantler:: @ 860172C + .incbin "sound/direct_sound_samples/cry_stantler.bin" + + .align 2 +Cry_Smeargle:: @ 8602DA8 + .incbin "sound/direct_sound_samples/cry_smeargle.bin" + + .align 2 +Cry_Tyrogue:: @ 86037DC + .incbin "sound/direct_sound_samples/cry_tyrogue.bin" + + .align 2 +Cry_Hitmontop:: @ 8604804 + .incbin "sound/direct_sound_samples/cry_hitmontop.bin" + + .align 2 +Cry_Smoochum:: @ 86055E4 + .incbin "sound/direct_sound_samples/cry_smoochum.bin" + + .align 2 +Cry_Elekid:: @ 8606198 + .incbin "sound/direct_sound_samples/cry_elekid.bin" + + .align 2 +Cry_Magby:: @ 8606C24 + .incbin "sound/direct_sound_samples/cry_magby.bin" + + .align 2 +Cry_Miltank:: @ 8607A94 + .incbin "sound/direct_sound_samples/cry_miltank.bin" + + .align 2 +Cry_Blissey:: @ 8608970 + .incbin "sound/direct_sound_samples/cry_blissey.bin" + + .align 2 +Cry_Raikou:: @ 8609A04 + .incbin "sound/direct_sound_samples/cry_raikou.bin" + + .align 2 +Cry_Entei:: @ 860AB74 + .incbin "sound/direct_sound_samples/cry_entei.bin" + + .align 2 +Cry_Suicune:: @ 860BFE8 + .incbin "sound/direct_sound_samples/cry_suicune.bin" + + .align 2 +Cry_Larvitar:: @ 860D230 + .incbin "sound/direct_sound_samples/cry_larvitar.bin" + + .align 2 +Cry_Pupitar:: @ 860DEE0 + .incbin "sound/direct_sound_samples/cry_pupitar.bin" + + .align 2 +Cry_Tyranitar:: @ 860E750 + .incbin "sound/direct_sound_samples/cry_tyranitar.bin" + + .align 2 +Cry_Lugia:: @ 860FEB0 + .incbin "sound/direct_sound_samples/cry_lugia.bin" + + .align 2 +Cry_HoOh:: @ 86124A8 + .incbin "sound/direct_sound_samples/cry_ho_oh.bin" + + .align 2 +Cry_Celebi:: @ 8613B3C + .incbin "sound/direct_sound_samples/cry_celebi.bin" + + .align 2 +Cry_Kecleon:: @ 86149B4 + .incbin "sound/direct_sound_samples/cry_kecleon.bin" + + .align 2 +Cry_Roselia:: @ 8615214 + .incbin "sound/direct_sound_samples/cry_roselia.bin" + + .align 2 +Cry_Torkoal:: @ 8615CD4 + .incbin "sound/direct_sound_samples/cry_torkoal.bin" + + .align 2 +Cry_Electrike:: @ 8616620 + .incbin "sound/direct_sound_samples/cry_electrike.bin" + + .align 2 +Cry_Manectric:: @ 861727C + .incbin "sound/direct_sound_samples/cry_manectric.bin" + + .align 2 +Cry_Duskull:: @ 8618784 + .incbin "sound/direct_sound_samples/cry_duskull.bin" + + .align 2 +Cry_Latias:: @ 861921C + .incbin "sound/direct_sound_samples/cry_latias.bin" + + .align 2 +Cry_Wynaut:: @ 8619E4C + .incbin "sound/direct_sound_samples/cry_wynaut.bin" + + .align 2 +Cry_Seviper:: @ 861AC2C + .incbin "sound/direct_sound_samples/cry_seviper.bin" + + .align 2 +Cry_Sharpedo:: @ 861B7CC + .incbin "sound/direct_sound_samples/cry_sharpedo.bin" + + .align 2 +Cry_Zangoose:: @ 861CED8 + .incbin "sound/direct_sound_samples/cry_zangoose.bin" + + .align 2 +Cry_Azurill:: @ 861D868 + .incbin "sound/direct_sound_samples/cry_azurill.bin" + + .align 2 +Cry_Swablu:: @ 861E2D0 + .incbin "sound/direct_sound_samples/cry_swablu.bin" + + .align 2 +Cry_Altaria:: @ 861E868 + .incbin "sound/direct_sound_samples/cry_altaria.bin" + + .align 2 +Cry_Unused265:: @ 861F384 + .incbin "sound/direct_sound_samples/cry_unused_265.bin" + + .align 2 +Cry_Taillow:: @ 861FCD8 + .incbin "sound/direct_sound_samples/cry_taillow.bin" + + .align 2 +Cry_Swellow:: @ 86202D8 + .incbin "sound/direct_sound_samples/cry_swellow.bin" + + .align 2 +Cry_Unused268:: @ 8620BDC + .incbin "sound/direct_sound_samples/cry_unused_268.bin" + + .align 2 +Cry_Spinda:: @ 8621D8C + .incbin "sound/direct_sound_samples/cry_spinda.bin" + + .align 2 +Cry_Torchic:: @ 86229F8 + .incbin "sound/direct_sound_samples/cry_torchic.bin" + + .align 2 +Cry_Combusken:: @ 86233A0 + .incbin "sound/direct_sound_samples/cry_combusken.bin" + + .align 2 +Cry_Blaziken:: @ 8625074 + .incbin "sound/direct_sound_samples/cry_blaziken.bin" + + .align 2 +Cry_Treecko:: @ 8626FF4 + .incbin "sound/direct_sound_samples/cry_treecko.bin" + + .align 2 +Cry_Grovyle:: @ 8627B9C + .incbin "sound/direct_sound_samples/cry_grovyle.bin" + + .align 2 +Cry_Sceptile:: @ 8629010 + .incbin "sound/direct_sound_samples/cry_sceptile.bin" + + .align 2 +Cry_Mudkip:: @ 862AA2C + .incbin "sound/direct_sound_samples/cry_mudkip.bin" + + .align 2 +Cry_Marshtomp:: @ 862B1B0 + .incbin "sound/direct_sound_samples/cry_marshtomp.bin" + + .align 2 +Cry_Swampert:: @ 862C2B4 + .incbin "sound/direct_sound_samples/cry_swampert.bin" + + .align 2 +Cry_Pelipper:: @ 862D934 + .incbin "sound/direct_sound_samples/cry_pelipper.bin" + + .align 2 +Cry_Wingull:: @ 862E4FC + .incbin "sound/direct_sound_samples/cry_wingull.bin" + + .align 2 +Cry_Banette:: @ 862F13C + .incbin "sound/direct_sound_samples/cry_banette.bin" + + .align 2 +Cry_Shuppet:: @ 862FDE4 + .incbin "sound/direct_sound_samples/cry_shuppet.bin" + + .align 2 +Cry_Lotad:: @ 8630624 + .incbin "sound/direct_sound_samples/cry_lotad.bin" + + .align 2 +Cry_Lombre:: @ 8630A8C + .incbin "sound/direct_sound_samples/cry_lombre.bin" + + .align 2 +Cry_Ludicolo:: @ 8631920 + .incbin "sound/direct_sound_samples/cry_ludicolo.bin" + + .align 2 +Cry_Seedot:: @ 86329F0 + .incbin "sound/direct_sound_samples/cry_seedot.bin" + + .align 2 +Cry_Nuzleaf:: @ 863321C + .incbin "sound/direct_sound_samples/cry_nuzleaf.bin" + + .align 2 +Cry_Shiftry:: @ 8633D84 + .incbin "sound/direct_sound_samples/cry_shiftry.bin" + + .align 2 +Cry_Carvanha:: @ 8635148 + .incbin "sound/direct_sound_samples/cry_carvanha.bin" + + .align 2 +Cry_Wurmple:: @ 8635B5C + .incbin "sound/direct_sound_samples/cry_wurmple.bin" + + .align 2 +Cry_Silcoon:: @ 8636428 + .incbin "sound/direct_sound_samples/cry_silcoon.bin" + + .align 2 +Cry_Beautifly:: @ 8637454 + .incbin "sound/direct_sound_samples/cry_beautifly.bin" + + .align 2 +Cry_Cascoon:: @ 8637C8C + .incbin "sound/direct_sound_samples/cry_cascoon.bin" + + .align 2 +Cry_Dustox:: @ 8638CD0 + .incbin "sound/direct_sound_samples/cry_dustox.bin" + + .align 2 +Cry_Ralts:: @ 863997C + .incbin "sound/direct_sound_samples/cry_ralts.bin" + + .align 2 +Cry_Kirlia:: @ 863A398 + .incbin "sound/direct_sound_samples/cry_kirlia.bin" + + .align 2 +Cry_Gardevoir:: @ 863AFC8 + .incbin "sound/direct_sound_samples/cry_gardevoir.bin" + + .align 2 +Cry_Slakoth:: @ 863C82C + .incbin "sound/direct_sound_samples/cry_slakoth.bin" + + .align 2 +Cry_Vigoroth:: @ 863D0B0 + .incbin "sound/direct_sound_samples/cry_vigoroth.bin" + + .align 2 +Cry_Slaking:: @ 863DF08 + .incbin "sound/direct_sound_samples/cry_slaking.bin" + + .align 2 +Cry_Nincada:: @ 863E8F4 + .incbin "sound/direct_sound_samples/cry_nincada.bin" + + .align 2 +Cry_Ninjask:: @ 863EF64 + .incbin "sound/direct_sound_samples/cry_ninjask.bin" + + .align 2 +Cry_Shedinja:: @ 863FB8C + .incbin "sound/direct_sound_samples/cry_shedinja.bin" + + .align 2 +Cry_Makuhita:: @ 8640344 + .incbin "sound/direct_sound_samples/cry_makuhita.bin" + + .align 2 +Cry_Hariyama:: @ 8640AA0 + .incbin "sound/direct_sound_samples/cry_hariyama.bin" + + .align 2 +Cry_Nosepass:: @ 8641B58 + .incbin "sound/direct_sound_samples/cry_nosepass.bin" + + .align 2 +Cry_Glalie:: @ 86428BC + .incbin "sound/direct_sound_samples/cry_glalie.bin" + + .align 2 +Cry_Plusle:: @ 8643DA0 + .incbin "sound/direct_sound_samples/cry_plusle.bin" + + .align 2 +Cry_Minun:: @ 864469C + .incbin "sound/direct_sound_samples/cry_minun.bin" + + .align 2 +Cry_Surskit:: @ 86456A4 + .incbin "sound/direct_sound_samples/cry_surskit.bin" + + .align 2 +Cry_Masquerain:: @ 8646124 + .incbin "sound/direct_sound_samples/cry_masquerain.bin" + + .align 2 +Cry_Skitty:: @ 86474D8 + .incbin "sound/direct_sound_samples/cry_skitty.bin" + + .align 2 +Cry_Delcatty:: @ 8647BEC + .incbin "sound/direct_sound_samples/cry_delcatty.bin" + + .align 2 +Cry_Gulpin:: @ 8649104 + .incbin "sound/direct_sound_samples/cry_gulpin.bin" + + .align 2 +Cry_Swalot:: @ 8649908 + .incbin "sound/direct_sound_samples/cry_swalot.bin" + + .align 2 +Cry_Numel:: @ 864AA68 + .incbin "sound/direct_sound_samples/cry_numel.bin" + + .align 2 +Cry_Camerupt:: @ 864B3B4 + .incbin "sound/direct_sound_samples/cry_camerupt.bin" + + .align 2 +Cry_Barboach:: @ 864CAD4 + .incbin "sound/direct_sound_samples/cry_barboach.bin" + + .align 2 +Cry_Whiscash:: @ 864D410 + .incbin "sound/direct_sound_samples/cry_whiscash.bin" + + .align 2 +Cry_Corphish:: @ 864E50C + .incbin "sound/direct_sound_samples/cry_corphish.bin" + + .align 2 +Cry_Crawdaunt:: @ 864F110 + .incbin "sound/direct_sound_samples/cry_crawdaunt.bin" + + .align 2 +Cry_Spoink:: @ 86509C8 + .incbin "sound/direct_sound_samples/cry_spoink.bin" + + .align 2 +Cry_Grumpig:: @ 8651108 + .incbin "sound/direct_sound_samples/cry_grumpig.bin" + + .align 2 +Cry_Trapinch:: @ 8651DA8 + .incbin "sound/direct_sound_samples/cry_trapinch.bin" + + .align 2 +Cry_Vibrava:: @ 86527CC + .incbin "sound/direct_sound_samples/cry_vibrava.bin" + + .align 2 +Cry_Flygon:: @ 86535D0 + .incbin "sound/direct_sound_samples/cry_flygon.bin" + + .align 2 +Cry_Cacnea:: @ 8654FD8 + .incbin "sound/direct_sound_samples/cry_cacnea.bin" + + .align 2 +Cry_Cacturne:: @ 86558C8 + .incbin "sound/direct_sound_samples/cry_cacturne.bin" + + .align 2 +Cry_Baltoy:: @ 8656F78 + .incbin "sound/direct_sound_samples/cry_baltoy.bin" + + .align 2 +Cry_Claydol:: @ 8657BFC + .incbin "sound/direct_sound_samples/cry_claydol.bin" + + .align 2 +Cry_Lunatone:: @ 8658F5C + .incbin "sound/direct_sound_samples/cry_lunatone.bin" + + .align 2 +Cry_Solrock:: @ 865A758 + .incbin "sound/direct_sound_samples/cry_solrock.bin" + + .align 2 +Cry_Feebas:: @ 865B784 + .incbin "sound/direct_sound_samples/cry_feebas.bin" + + .align 2 +Cry_Milotic:: @ 865BF58 + .incbin "sound/direct_sound_samples/cry_milotic.bin" + + .align 2 +Cry_Absol:: @ 865E69C + .incbin "sound/direct_sound_samples/cry_absol.bin" + + .align 2 +Cry_Meditite:: @ 865F118 + .incbin "sound/direct_sound_samples/cry_meditite.bin" + + .align 2 +Cry_Medicham:: @ 865F938 + .incbin "sound/direct_sound_samples/cry_medicham.bin" + + .align 2 +Cry_Spheal:: @ 86609BC + .incbin "sound/direct_sound_samples/cry_spheal.bin" + + .align 2 +Cry_Sealeo:: @ 8660F70 + .incbin "sound/direct_sound_samples/cry_sealeo.bin" + + .align 2 +Cry_Walrein:: @ 8661B48 + .incbin "sound/direct_sound_samples/cry_walrein.bin" + + .align 2 +Cry_Clamperl:: @ 8663F94 + .incbin "sound/direct_sound_samples/cry_clamperl.bin" + + .align 2 +Cry_Huntail:: @ 86651E4 + .incbin "sound/direct_sound_samples/cry_huntail.bin" + + .align 2 +Cry_Gorebyss:: @ 86661CC + .incbin "sound/direct_sound_samples/cry_gorebyss.bin" + + .align 2 +Cry_Lileep:: @ 8667838 + .incbin "sound/direct_sound_samples/cry_lileep.bin" + + .align 2 +Cry_Cradily:: @ 86681E0 + .incbin "sound/direct_sound_samples/cry_cradily.bin" + + .align 2 +Cry_Anorith:: @ 8669F10 + .incbin "sound/direct_sound_samples/cry_anorith.bin" + + .align 2 +Cry_Armaldo:: @ 866AAC8 + .incbin "sound/direct_sound_samples/cry_armaldo.bin" + + .align 2 +Cry_Beldum:: @ 866C19C + .incbin "sound/direct_sound_samples/cry_beldum.bin" + + .align 2 +Cry_Metang:: @ 866CB3C + .incbin "sound/direct_sound_samples/cry_metang.bin" + + .align 2 +Cry_Metagross:: @ 866DE10 + .incbin "sound/direct_sound_samples/cry_metagross.bin" + + .align 2 +Cry_Bagon:: @ 8670588 + .incbin "sound/direct_sound_samples/cry_bagon.bin" + + .align 2 +Cry_Shelgon:: @ 8670D5C + .incbin "sound/direct_sound_samples/cry_shelgon.bin" + + .align 2 +Cry_Regirock:: @ 8672164 + .incbin "sound/direct_sound_samples/cry_regirock.bin" + + .align 2 +Cry_Regice:: @ 8674140 + .incbin "sound/direct_sound_samples/cry_regice.bin" + + .align 2 +Cry_Registeel:: @ 8676140 + .incbin "sound/direct_sound_samples/cry_registeel.bin" + + .align 2 +Cry_Castform:: @ 8677844 + .incbin "sound/direct_sound_samples/cry_castform.bin" + + .align 2 +Cry_Volbeat:: @ 86784DC + .incbin "sound/direct_sound_samples/cry_volbeat.bin" + + .align 2 +Cry_Illumise:: @ 8679064 + .incbin "sound/direct_sound_samples/cry_illumise.bin" + + .align 2 +Cry_Poochyena:: @ 867A17C + .incbin "sound/direct_sound_samples/cry_poochyena.bin" + + .align 2 +Cry_Mightyena:: @ 867AAC4 + .incbin "sound/direct_sound_samples/cry_mightyena.bin" + + .align 2 +Cry_Dusclops:: @ 867BE50 + .incbin "sound/direct_sound_samples/cry_dusclops.bin" + + .align 2 +Cry_Sableye:: @ 867CC08 + .incbin "sound/direct_sound_samples/cry_sableye.bin" + + .align 2 +Cry_Mawile:: @ 867D7AC + .incbin "sound/direct_sound_samples/cry_mawile.bin" + + .align 2 +Cry_Aron:: @ 867E32C + .incbin "sound/direct_sound_samples/cry_aron.bin" + + .align 2 +Cry_Lairon:: @ 867EC58 + .incbin "sound/direct_sound_samples/cry_lairon.bin" + + .align 2 +Cry_Aggron:: @ 8680130 + .incbin "sound/direct_sound_samples/cry_aggron.bin" + + .align 2 +Cry_Relicanth:: @ 8681AD4 + .incbin "sound/direct_sound_samples/cry_relicanth.bin" + + .align 2 +Cry_Luvdisc:: @ 8682F04 + .incbin "sound/direct_sound_samples/cry_luvdisc.bin" + + .align 2 +Cry_Groudon:: @ 86833E0 + .incbin "sound/direct_sound_samples/cry_groudon.bin" + + .align 2 +Cry_Kyogre:: @ 86858EC + .incbin "sound/direct_sound_samples/cry_kyogre.bin" + + .align 2 +Cry_Rayquaza:: @ 8687CA4 + .incbin "sound/direct_sound_samples/cry_rayquaza.bin" + + .align 2 +Cry_Salamence:: @ 86899D0 + .incbin "sound/direct_sound_samples/cry_salamence.bin" + + .align 2 +Cry_Breloom:: @ 868B2EC + .incbin "sound/direct_sound_samples/cry_breloom.bin" + + .align 2 +Cry_Shroomish:: @ 868BFAC + .incbin "sound/direct_sound_samples/cry_shroomish.bin" + + .align 2 +Cry_Linoone:: @ 868C884 + .incbin "sound/direct_sound_samples/cry_linoone.bin" + + .align 2 +Cry_Tropius:: @ 868E720 + .incbin "sound/direct_sound_samples/cry_tropius.bin" + + .align 2 +Cry_Wailmer:: @ 86907E4 + .incbin "sound/direct_sound_samples/cry_wailmer.bin" + + .align 2 +Cry_Zigzagoon:: @ 8692444 + .incbin "sound/direct_sound_samples/cry_zigzagoon.bin" + + .align 2 +Cry_Exploud:: @ 8692FD4 + .incbin "sound/direct_sound_samples/cry_exploud.bin" + + .align 2 +Cry_Loudred:: @ 8694C1C + .incbin "sound/direct_sound_samples/cry_loudred.bin" + + .align 2 +Cry_Wailord:: @ 8695944 + .incbin "sound/direct_sound_samples/cry_wailord.bin" + + .align 2 +Cry_Whismur:: @ 8698354 + .incbin "sound/direct_sound_samples/cry_whismur.bin" + + .align 2 +Cry_Snorunt:: @ 8698B78 + .incbin "sound/direct_sound_samples/cry_snorunt.bin" + + .align 2 +Cry_Latios:: @ 8699C80 + .incbin "sound/direct_sound_samples/cry_latios.bin" + + .align 2 +Cry_Jirachi:: @ 869B278 + .incbin "sound/direct_sound_samples/cry_jirachi.bin" + + .align 2 +Cry_Deoxys:: @ 869BFFC + .incbin "sound/direct_sound_samples/cry_deoxys.bin" + + .align 2 +Cry_Chimecho:: @ 869D4D0 + .incbin "sound/direct_sound_samples/cry_chimecho.bin" + + .align 2 + .incbin "baserom.gba", 0x69DEE0, 0x17760 + +gSong_86B5640:: @ 0x86B5640 + .incbin "baserom.gba", 0x6B5640, 0x20 + +gSong_86B5660:: @ 0x86B5660 + .incbin "baserom.gba", 0x6B5660, 0x2C + +gSong_86B568C:: @ 0x86B568C + .incbin "baserom.gba", 0x6B568C, 0x24 + +gSong_86B56B0:: @ 0x86B56B0 + .incbin "baserom.gba", 0x6B56B0, 0x44 + +gSong_86B56F4:: @ 0x86B56F4 + .incbin "baserom.gba", 0x6B56F4, 0x2C + +gSong_86B5720:: @ 0x86B5720 + .incbin "baserom.gba", 0x6B5720, 0x1C + +gSong_86B573C:: @ 0x86B573C + .incbin "baserom.gba", 0x6B573C, 0x1C + +gSong_86B5758:: @ 0x86B5758 + .incbin "baserom.gba", 0x6B5758, 0x1C + +gSong_86B5774:: @ 0x86B5774 + .incbin "baserom.gba", 0x6B5774, 0x34 + +gSong_86B57A8:: @ 0x86B57A8 + .incbin "baserom.gba", 0x6B57A8, 0x24 + +gSong_86B57CC:: @ 0x86B57CC + .incbin "baserom.gba", 0x6B57CC, 0x1C + +gSong_86B57E8:: @ 0x86B57E8 + .incbin "baserom.gba", 0x6B57E8, 0x2C + +gSong_86B5814:: @ 0x86B5814 + .incbin "baserom.gba", 0x6B5814, 0x4C + +gSong_86B5860:: @ 0x86B5860 + .incbin "baserom.gba", 0x6B5860, 0x7C + +gSong_86B58DC:: @ 0x86B58DC + .incbin "baserom.gba", 0x6B58DC, 0x54 + +gSong_86B5930:: @ 0x86B5930 + .incbin "baserom.gba", 0x6B5930, 0x54 + +gSong_86B5984:: @ 0x86B5984 + .incbin "baserom.gba", 0x6B5984, 0x50 + +gSong_86B59D4:: @ 0x86B59D4 + .incbin "baserom.gba", 0x6B59D4, 0x1C + +gSong_86B59F0:: @ 0x86B59F0 + .incbin "baserom.gba", 0x6B59F0, 0x54 + +gSong_86B5A44:: @ 0x86B5A44 + .incbin "baserom.gba", 0x6B5A44, 0x48 + +gSong_86B5A8C:: @ 0x86B5A8C + .incbin "baserom.gba", 0x6B5A8C, 0x2C + +gSong_86B5AB8:: @ 0x86B5AB8 + .incbin "baserom.gba", 0x6B5AB8, 0x24 + +gSong_86B5ADC:: @ 0x86B5ADC + .incbin "baserom.gba", 0x6B5ADC, 0x24 + +gSong_86B5B00:: @ 0x86B5B00 + .incbin "baserom.gba", 0x6B5B00, 0x84 + +gSong_86B5B84:: @ 0x86B5B84 + .incbin "baserom.gba", 0x6B5B84, 0x2C + +gSong_86B5BB0:: @ 0x86B5BB0 + .incbin "baserom.gba", 0x6B5BB0, 0x30 + +gSong_86B5BE0:: @ 0x86B5BE0 + .incbin "baserom.gba", 0x6B5BE0, 0x180 + +gSong_86B5D60:: @ 0x86B5D60 + .incbin "baserom.gba", 0x6B5D60, 0x24 + +gSong_86B5D84:: @ 0x86B5D84 + .incbin "baserom.gba", 0x6B5D84, 0x24 + +gSong_86B5DA8:: @ 0x86B5DA8 + .incbin "baserom.gba", 0x6B5DA8, 0x24 + +gSong_86B5DCC:: @ 0x86B5DCC + .incbin "baserom.gba", 0x6B5DCC, 0x30 + +gSong_86B5DFC:: @ 0x86B5DFC + .incbin "baserom.gba", 0x6B5DFC, 0x24 + +gSong_86B5E20:: @ 0x86B5E20 + .incbin "baserom.gba", 0x6B5E20, 0x4C + +gSong_86B5E6C:: @ 0x86B5E6C + .incbin "baserom.gba", 0x6B5E6C, 0x38 + +gSong_86B5EA4:: @ 0x86B5EA4 + .incbin "baserom.gba", 0x6B5EA4, 0x54 + +gSong_86B5EF8:: @ 0x86B5EF8 + .incbin "baserom.gba", 0x6B5EF8, 0x3C + +gSong_86B5F34:: @ 0x86B5F34 + .incbin "baserom.gba", 0x6B5F34, 0x58 + +gSong_86B5F8C:: @ 0x86B5F8C + .incbin "baserom.gba", 0x6B5F8C, 0x44 + +gSong_86B5FD0:: @ 0x86B5FD0 + .incbin "baserom.gba", 0x6B5FD0, 0x3C + +gSong_86B600C:: @ 0x86B600C + .incbin "baserom.gba", 0x6B600C, 0x40 + +gSong_86B604C:: @ 0x86B604C + .incbin "baserom.gba", 0x6B604C, 0x2C + +gSong_86B6078:: @ 0x86B6078 + .incbin "baserom.gba", 0x6B6078, 0x3C + +gSong_86B60B4:: @ 0x86B60B4 + .incbin "baserom.gba", 0x6B60B4, 0xAC + +gSong_86B6160:: @ 0x86B6160 + .incbin "baserom.gba", 0x6B6160, 0x78 + +gSong_86B61D8:: @ 0x86B61D8 + .incbin "baserom.gba", 0x6B61D8, 0x2C + +gSong_86B6204:: @ 0x86B6204 + .incbin "baserom.gba", 0x6B6204, 0x34 + +gSong_86B6238:: @ 0x86B6238 + .incbin "baserom.gba", 0x6B6238, 0x2C + +gSong_86B6264:: @ 0x86B6264 + .incbin "baserom.gba", 0x6B6264, 0x44 + +gSong_86B62A8:: @ 0x86B62A8 + .incbin "baserom.gba", 0x6B62A8, 0x2C + +gSong_86B62D4:: @ 0x86B62D4 + .incbin "baserom.gba", 0x6B62D4, 0x2C + +gSong_86B6300:: @ 0x86B6300 + .incbin "baserom.gba", 0x6B6300, 0x2C + +gSong_86B632C:: @ 0x86B632C + .incbin "baserom.gba", 0x6B632C, 0x2C + +gSong_86B6358:: @ 0x86B6358 + .incbin "baserom.gba", 0x6B6358, 0x54 + +gSong_86B63AC:: @ 0x86B63AC + .incbin "baserom.gba", 0x6B63AC, 0x44 + +gSong_86B63F0:: @ 0x86B63F0 + .incbin "baserom.gba", 0x6B63F0, 0x34 + +gSong_86B6424:: @ 0x86B6424 + .incbin "baserom.gba", 0x6B6424, 0x38 + +gSong_86B645C:: @ 0x86B645C + .incbin "baserom.gba", 0x6B645C, 0x38 + +gSong_86B6494:: @ 0x86B6494 + .incbin "baserom.gba", 0x6B6494, 0x38 + +gSong_86B64CC:: @ 0x86B64CC + .incbin "baserom.gba", 0x6B64CC, 0x38 + +gSong_86B6504:: @ 0x86B6504 + .incbin "baserom.gba", 0x6B6504, 0x38 + +gSong_86B653C:: @ 0x86B653C + .incbin "baserom.gba", 0x6B653C, 0x38 + +gSong_86B6574:: @ 0x86B6574 + .incbin "baserom.gba", 0x6B6574, 0x38 + +gSong_86B65AC:: @ 0x86B65AC + .incbin "baserom.gba", 0x6B65AC, 0x34 + +gSong_86B65E0:: @ 0x86B65E0 + .incbin "baserom.gba", 0x6B65E0, 0x24 + +gSong_86B6604:: @ 0x86B6604 + .incbin "baserom.gba", 0x6B6604, 0x4C + +gSong_86B6650:: @ 0x86B6650 + .incbin "baserom.gba", 0x6B6650, 0x60 + +gSong_86B66B0:: @ 0x86B66B0 + .incbin "baserom.gba", 0x6B66B0, 0x34 + +gSong_86B66E4:: @ 0x86B66E4 + .incbin "baserom.gba", 0x6B66E4, 0x30 + +gSong_86B6714:: @ 0x86B6714 + .incbin "baserom.gba", 0x6B6714, 0x38 + +gSong_86B674C:: @ 0x86B674C + .incbin "baserom.gba", 0x6B674C, 0x44 + +gSong_86B6790:: @ 0x86B6790 + .incbin "baserom.gba", 0x6B6790, 0x30 + +gSong_86B67C0:: @ 0x86B67C0 + .incbin "baserom.gba", 0x6B67C0, 0x28 + +gSong_86B67E8:: @ 0x86B67E8 + .incbin "baserom.gba", 0x6B67E8, 0x68 + +gSong_86B6850:: @ 0x86B6850 + .incbin "baserom.gba", 0x6B6850, 0x3C + +gSong_86B688C:: @ 0x86B688C + .incbin "baserom.gba", 0x6B688C, 0x40 + +gSong_86B68CC:: @ 0x86B68CC + .incbin "baserom.gba", 0x6B68CC, 0x3C + +gSong_86B6908:: @ 0x86B6908 + .incbin "baserom.gba", 0x6B6908, 0x40 + +gSong_86B6948:: @ 0x86B6948 + .incbin "baserom.gba", 0x6B6948, 0x3C + +gSong_86B6984:: @ 0x86B6984 + .incbin "baserom.gba", 0x6B6984, 0x40 + +gSong_86B69C4:: @ 0x86B69C4 + .incbin "baserom.gba", 0x6B69C4, 0x68 + +gSong_86B6A2C:: @ 0x86B6A2C + .incbin "baserom.gba", 0x6B6A2C, 0x50 + +gSong_86B6A7C:: @ 0x86B6A7C + .incbin "baserom.gba", 0x6B6A7C, 0x3C + +gSong_86B6AB8:: @ 0x86B6AB8 + .incbin "baserom.gba", 0x6B6AB8, 0x30 + +gSong_86B6AE8:: @ 0x86B6AE8 + .incbin "baserom.gba", 0x6B6AE8, 0x4C + +gSong_86B6B34:: @ 0x86B6B34 + .incbin "baserom.gba", 0x6B6B34, 0x24 + +gSong_86B6B58:: @ 0x86B6B58 + .incbin "baserom.gba", 0x6B6B58, 0x54 + +gSong_86B6BAC:: @ 0x86B6BAC + .incbin "baserom.gba", 0x6B6BAC, 0x94 + +gSong_86B6C40:: @ 0x86B6C40 + .incbin "baserom.gba", 0x6B6C40, 0x3C + +gSong_86B6C7C:: @ 0x86B6C7C + .incbin "baserom.gba", 0x6B6C7C, 0x24 + +gSong_86B6CA0:: @ 0x86B6CA0 + .incbin "baserom.gba", 0x6B6CA0, 0x64 + +gSong_86B6D04:: @ 0x86B6D04 + .incbin "baserom.gba", 0x6B6D04, 0x68 + +gSong_86B6D6C:: @ 0x86B6D6C + .incbin "baserom.gba", 0x6B6D6C, 0x28 + +gSong_86B6D94:: @ 0x86B6D94 + .incbin "baserom.gba", 0x6B6D94, 0x34 + +gSong_86B6DC8:: @ 0x86B6DC8 + .incbin "baserom.gba", 0x6B6DC8, 0x2C + +gSong_86B6DF4:: @ 0x86B6DF4 + .incbin "baserom.gba", 0x6B6DF4, 0x7C + +gSong_86B6E70:: @ 0x86B6E70 + .incbin "baserom.gba", 0x6B6E70, 0xC0 + +gSong_86B6F30:: @ 0x86B6F30 + .incbin "baserom.gba", 0x6B6F30, 0xE8 + +gSong_86B7018:: @ 0x86B7018 + .incbin "baserom.gba", 0x6B7018, 0x118 + +gSong_86B7130:: @ 0x86B7130 + .incbin "baserom.gba", 0x6B7130, 0x24 + +gSong_86B7154:: @ 0x86B7154 + .incbin "baserom.gba", 0x6B7154, 0x114 + +gSong_86B7268:: @ 0x86B7268 + .incbin "baserom.gba", 0x6B7268, 0x2C + +gSong_86B7294:: @ 0x86B7294 + .incbin "baserom.gba", 0x6B7294, 0x34 + +gSong_86B72C8:: @ 0x86B72C8 + .incbin "baserom.gba", 0x6B72C8, 0x64 + +gSong_86B732C:: @ 0x86B732C + .incbin "baserom.gba", 0x6B732C, 0x68 + +gSong_86B7394:: @ 0x86B7394 + .incbin "baserom.gba", 0x6B7394, 0x1FC + +gSong_86B7590:: @ 0x86B7590 + .incbin "baserom.gba", 0x6B7590, 0x8C + +gSong_86B761C:: @ 0x86B761C + .incbin "baserom.gba", 0x6B761C, 0x50 + +gSong_86B766C:: @ 0x86B766C + .incbin "baserom.gba", 0x6B766C, 0x2C + +gSong_86B7698:: @ 0x86B7698 + .incbin "baserom.gba", 0x6B7698, 0x20 + +gSong_86B76B8:: @ 0x86B76B8 + .incbin "baserom.gba", 0x6B76B8, 0x3C + +gSong_86B76F4:: @ 0x86B76F4 + .incbin "baserom.gba", 0x6B76F4, 0x94 + +gSong_86B7788:: @ 0x86B7788 + .incbin "baserom.gba", 0x6B7788, 0x6C + +gSong_86B77F4:: @ 0x86B77F4 + .incbin "baserom.gba", 0x6B77F4, 0x48 + +gSong_86B783C:: @ 0x86B783C + .incbin "baserom.gba", 0x6B783C, 0xC4 + +gSong_86B7900:: @ 0x86B7900 + .incbin "baserom.gba", 0x6B7900, 0x54 + +gSong_86B7954:: @ 0x86B7954 + .incbin "baserom.gba", 0x6B7954, 0x80 + +gSong_86B79D4:: @ 0x86B79D4 + .incbin "baserom.gba", 0x6B79D4, 0x38 + +gSong_86B7A0C:: @ 0x86B7A0C + .incbin "baserom.gba", 0x6B7A0C, 0x34 + +gSong_86B7A40:: @ 0x86B7A40 + .incbin "baserom.gba", 0x6B7A40, 0x40 + +gSong_86B7A80:: @ 0x86B7A80 + .incbin "baserom.gba", 0x6B7A80, 0x78 + +gSong_86B7AF8:: @ 0x86B7AF8 + .incbin "baserom.gba", 0x6B7AF8, 0x80 + +gSong_86B7B78:: @ 0x86B7B78 + .incbin "baserom.gba", 0x6B7B78, 0x58 + +gSong_86B7BD0:: @ 0x86B7BD0 + .incbin "baserom.gba", 0x6B7BD0, 0xA4 + +gSong_86B7C74:: @ 0x86B7C74 + .incbin "baserom.gba", 0x6B7C74, 0x4C + +gSong_86B7CC0:: @ 0x86B7CC0 + .incbin "baserom.gba", 0x6B7CC0, 0x7C + +gSong_86B7D3C:: @ 0x86B7D3C + .incbin "baserom.gba", 0x6B7D3C, 0x4C + +gSong_86B7D88:: @ 0x86B7D88 + .incbin "baserom.gba", 0x6B7D88, 0x34 + +gSong_86B7DBC:: @ 0x86B7DBC + .incbin "baserom.gba", 0x6B7DBC, 0x4C + +gSong_86B7E08:: @ 0x86B7E08 + .incbin "baserom.gba", 0x6B7E08, 0x60 + +gSong_86B7E68:: @ 0x86B7E68 + .incbin "baserom.gba", 0x6B7E68, 0x4C + +gSong_86B7EB4:: @ 0x86B7EB4 + .incbin "baserom.gba", 0x6B7EB4, 0x84 + +gSong_86B7F38:: @ 0x86B7F38 + .incbin "baserom.gba", 0x6B7F38, 0x54 + +gSong_86B7F8C:: @ 0x86B7F8C + .incbin "baserom.gba", 0x6B7F8C, 0xCC + +gSong_86B8058:: @ 0x86B8058 + .incbin "baserom.gba", 0x6B8058, 0xA0 + +gSong_86B80F8:: @ 0x86B80F8 + .incbin "baserom.gba", 0x6B80F8, 0x3C + +gSong_86B8134:: @ 0x86B8134 + .incbin "baserom.gba", 0x6B8134, 0x4C + +gSong_86B8180:: @ 0x86B8180 + .incbin "baserom.gba", 0x6B8180, 0x84 + +gSong_86B8204:: @ 0x86B8204 + .incbin "baserom.gba", 0x6B8204, 0x70 + +gSong_86B8274:: @ 0x86B8274 + .incbin "baserom.gba", 0x6B8274, 0xD4 + +gSong_86B8348:: @ 0x86B8348 + .incbin "baserom.gba", 0x6B8348, 0xA4 + +gSong_86B83EC:: @ 0x86B83EC + .incbin "baserom.gba", 0x6B83EC, 0x70 + +gSong_86B845C:: @ 0x86B845C + .incbin "baserom.gba", 0x6B845C, 0x74 + +gSong_86B84D0:: @ 0x86B84D0 + .incbin "baserom.gba", 0x6B84D0, 0xE0 + +gSong_86B85B0:: @ 0x86B85B0 + .incbin "baserom.gba", 0x6B85B0, 0x3C + +gSong_86B85EC:: @ 0x86B85EC + .incbin "baserom.gba", 0x6B85EC, 0x68 + +gSong_86B8654:: @ 0x86B8654 + .incbin "baserom.gba", 0x6B8654, 0x7C + +gSong_86B86D0:: @ 0x86B86D0 + .incbin "baserom.gba", 0x6B86D0, 0x4C + +gSong_86B871C:: @ 0x86B871C + .incbin "baserom.gba", 0x6B871C, 0x48 + +gSong_86B8764:: @ 0x86B8764 + .incbin "baserom.gba", 0x6B8764, 0x68 + +gSong_86B87CC:: @ 0x86B87CC + .incbin "baserom.gba", 0x6B87CC, 0x9C + +gSong_86B8868:: @ 0x86B8868 + .incbin "baserom.gba", 0x6B8868, 0x164 + +gSong_86B89CC:: @ 0x86B89CC + .incbin "baserom.gba", 0x6B89CC, 0x68 + +gSong_86B8A34:: @ 0x86B8A34 + .incbin "baserom.gba", 0x6B8A34, 0x44 + +gSong_86B8A78:: @ 0x86B8A78 + .incbin "baserom.gba", 0x6B8A78, 0x7C + +gSong_86B8AF4:: @ 0x86B8AF4 + .incbin "baserom.gba", 0x6B8AF4, 0x6C + +gSong_86B8B60:: @ 0x86B8B60 + .incbin "baserom.gba", 0x6B8B60, 0x80 + +gSong_86B8BE0:: @ 0x86B8BE0 + .incbin "baserom.gba", 0x6B8BE0, 0x80 + +gSong_86B8C60:: @ 0x86B8C60 + .incbin "baserom.gba", 0x6B8C60, 0x9C + +gSong_86B8CFC:: @ 0x86B8CFC + .incbin "baserom.gba", 0x6B8CFC, 0x4C + +gSong_86B8D48:: @ 0x86B8D48 + .incbin "baserom.gba", 0x6B8D48, 0x40 + +gSong_86B8D88:: @ 0x86B8D88 + .incbin "baserom.gba", 0x6B8D88, 0x78 + +gSong_86B8E00:: @ 0x86B8E00 + .incbin "baserom.gba", 0x6B8E00, 0x3C + +gSong_86B8E3C:: @ 0x86B8E3C + .incbin "baserom.gba", 0x6B8E3C, 0x58 + +gSong_86B8E94:: @ 0x86B8E94 + .incbin "baserom.gba", 0x6B8E94, 0xC8 + +gSong_86B8F5C:: @ 0x86B8F5C + .incbin "baserom.gba", 0x6B8F5C, 0xF4 + +gSong_86B9050:: @ 0x86B9050 + .incbin "baserom.gba", 0x6B9050, 0x110 + +gSong_86B9160:: @ 0x86B9160 + .incbin "baserom.gba", 0x6B9160, 0x88 + +gSong_86B91E8:: @ 0x86B91E8 + .incbin "baserom.gba", 0x6B91E8, 0x48 + +gSong_86B9230:: @ 0x86B9230 + .incbin "baserom.gba", 0x6B9230, 0x60 + +gSong_86B9290:: @ 0x86B9290 + .incbin "baserom.gba", 0x6B9290, 0x4C + +gSong_86B92DC:: @ 0x86B92DC + .incbin "baserom.gba", 0x6B92DC, 0x88 + +gSong_86B9364:: @ 0x86B9364 + .incbin "baserom.gba", 0x6B9364, 0xBC + +gSong_86B9420:: @ 0x86B9420 + .incbin "baserom.gba", 0x6B9420, 0x58 + +gSong_86B9478:: @ 0x86B9478 + .incbin "baserom.gba", 0x6B9478, 0x7C + +gSong_86B94F4:: @ 0x86B94F4 + .incbin "baserom.gba", 0x6B94F4, 0xC8 + +gSong_86B95BC:: @ 0x86B95BC + .incbin "baserom.gba", 0x6B95BC, 0xBC + +gSong_86B9678:: @ 0x86B9678 + .incbin "baserom.gba", 0x6B9678, 0xEC + +gSong_86B9764:: @ 0x86B9764 + .incbin "baserom.gba", 0x6B9764, 0x40 + +gSong_86B97A4:: @ 0x86B97A4 + .incbin "baserom.gba", 0x6B97A4, 0x5C + +gSong_86B9800:: @ 0x86B9800 + .incbin "baserom.gba", 0x6B9800, 0x38 + +gSong_86B9838:: @ 0x86B9838 + .incbin "baserom.gba", 0x6B9838, 0xB4 + +gSong_86B98EC:: @ 0x86B98EC + .incbin "baserom.gba", 0x6B98EC, 0xA0 + +gSong_86B998C:: @ 0x86B998C + .incbin "baserom.gba", 0x6B998C, 0x68 + +gSong_86B99F4:: @ 0x86B99F4 + .incbin "baserom.gba", 0x6B99F4, 0x124 + +gSong_86B9B18:: @ 0x86B9B18 + .incbin "baserom.gba", 0x6B9B18, 0x7C + +gSong_86B9B94:: @ 0x86B9B94 + .incbin "baserom.gba", 0x6B9B94, 0x5C + +gSong_86B9BF0:: @ 0x86B9BF0 + .incbin "baserom.gba", 0x6B9BF0, 0x38 + +gSong_86B9C28:: @ 0x86B9C28 + .incbin "baserom.gba", 0x6B9C28, 0x50 + +gSong_86B9C78:: @ 0x86B9C78 + .incbin "baserom.gba", 0x6B9C78, 0x8C + +gSong_86B9D04:: @ 0x86B9D04 + .incbin "baserom.gba", 0x6B9D04, 0x64 + +gSong_86B9D68:: @ 0x86B9D68 + .incbin "baserom.gba", 0x6B9D68, 0x78 + +gSong_86B9DE0:: @ 0x86B9DE0 + .incbin "baserom.gba", 0x6B9DE0, 0x68 + +gSong_86B9E48:: @ 0x86B9E48 + .incbin "baserom.gba", 0x6B9E48, 0x154 + +gSong_86B9F9C:: @ 0x86B9F9C + .incbin "baserom.gba", 0x6B9F9C, 0xD4 + +gSong_86BA070:: @ 0x86BA070 + .incbin "baserom.gba", 0x6BA070, 0x110 + +gSong_86BA180:: @ 0x86BA180 + .incbin "baserom.gba", 0x6BA180, 0xE4 + +gSong_86BA264:: @ 0x86BA264 + .incbin "baserom.gba", 0x6BA264, 0xE0 + +gSong_86BA344:: @ 0x86BA344 + .incbin "baserom.gba", 0x6BA344, 0x4C + +gSong_86BA390:: @ 0x86BA390 + .incbin "baserom.gba", 0x6BA390, 0x8C + +gSong_86BA41C:: @ 0x86BA41C + .incbin "baserom.gba", 0x6BA41C, 0x190 + +gSong_86BA5AC:: @ 0x86BA5AC + .incbin "baserom.gba", 0x6BA5AC, 0x1A0 + +gSong_86BA74C:: @ 0x86BA74C + .incbin "baserom.gba", 0x6BA74C, 0x70 + +gSong_86BA7BC:: @ 0x86BA7BC + .incbin "baserom.gba", 0x6BA7BC, 0x50 + +gSong_86BA80C:: @ 0x86BA80C + .incbin "baserom.gba", 0x6BA80C, 0x124 + +gSong_86BA930:: @ 0x86BA930 + .incbin "baserom.gba", 0x6BA930, 0x80 + +gSong_86BA9B0:: @ 0x86BA9B0 + .incbin "baserom.gba", 0x6BA9B0, 0xF0 + +gSong_86BAAA0:: @ 0x86BAAA0 + .incbin "baserom.gba", 0x6BAAA0, 0x64 + +gSong_86BAB04:: @ 0x86BAB04 + .incbin "baserom.gba", 0x6BAB04, 0x5C + +gSong_86BAB60:: @ 0x86BAB60 + .incbin "baserom.gba", 0x6BAB60, 0xB4 + +gSong_86BAC14:: @ 0x86BAC14 + .incbin "baserom.gba", 0x6BAC14, 0x1FC + +gSong_86BAE10:: @ 0x86BAE10 + .incbin "baserom.gba", 0x6BAE10, 0x120 + +gSong_86BAF30:: @ 0x86BAF30 + .incbin "baserom.gba", 0x6BAF30, 0x170 + +gSong_86BB0A0:: @ 0x86BB0A0 + .incbin "baserom.gba", 0x6BB0A0, 0x70 + +gSong_86BB110:: @ 0x86BB110 + .incbin "baserom.gba", 0x6BB110, 0x98 + +gSong_86BB1A8:: @ 0x86BB1A8 + .incbin "baserom.gba", 0x6BB1A8, 0x38 + +gSong_86BB1E0:: @ 0x86BB1E0 + .incbin "baserom.gba", 0x6BB1E0, 0xD8 + +gSong_86BB2B8:: @ 0x86BB2B8 + .incbin "baserom.gba", 0x6BB2B8, 0xD8 + +gSong_86BB390:: @ 0x86BB390 + .incbin "baserom.gba", 0x6BB390, 0xAC + +gSong_86BB43C:: @ 0x86BB43C + .incbin "baserom.gba", 0x6BB43C, 0x98 + +gSong_86BB4D4:: @ 0x86BB4D4 + .incbin "baserom.gba", 0x6BB4D4, 0x98 + +gSong_86BB56C:: @ 0x86BB56C + .incbin "baserom.gba", 0x6BB56C, 0xA8 + +gSong_86BB614:: @ 0x86BB614 + .incbin "baserom.gba", 0x6BB614, 0x4C + +gSong_86BB660:: @ 0x86BB660 + .incbin "baserom.gba", 0x6BB660, 0xFC + +gSong_86BB75C:: @ 0x86BB75C + .incbin "baserom.gba", 0x6BB75C, 0x94 + +gSong_86BB7F0:: @ 0x86BB7F0 + .incbin "baserom.gba", 0x6BB7F0, 0x64 + +gSong_86BB854:: @ 0x86BB854 + .incbin "baserom.gba", 0x6BB854, 0x9C + +gSong_86BB8F0:: @ 0x86BB8F0 + .incbin "baserom.gba", 0x6BB8F0, 0x208 + +gSong_86BBAF8:: @ 0x86BBAF8 + .incbin "baserom.gba", 0x6BBAF8, 0xFC + +gSong_86BBBF4:: @ 0x86BBBF4 + .incbin "baserom.gba", 0x6BBBF4, 0xF0 + +gSong_86BBCE4:: @ 0x86BBCE4 + .incbin "baserom.gba", 0x6BBCE4, 0x84 + +gSong_86BBD68:: @ 0x86BBD68 + .incbin "baserom.gba", 0x6BBD68, 0x74 + +gSong_86BBDDC:: @ 0x86BBDDC + .incbin "baserom.gba", 0x6BBDDC, 0x180 + +gSong_86BBF5C:: @ 0x86BBF5C + .incbin "baserom.gba", 0x6BBF5C, 0x104 + +gSong_86BC060:: @ 0x86BC060 + .incbin "baserom.gba", 0x6BC060, 0x60 + +gSong_86BC0C0:: @ 0x86BC0C0 + .incbin "baserom.gba", 0x6BC0C0, 0x70 + +gSong_86BC130:: @ 0x86BC130 + .incbin "baserom.gba", 0x6BC130, 0x11C + +gSong_86BC24C:: @ 0x86BC24C + .incbin "baserom.gba", 0x6BC24C, 0xA4 + +gSong_86BC2F0:: @ 0x86BC2F0 + .incbin "baserom.gba", 0x6BC2F0, 0x170 + +gSong_86BC460:: @ 0x86BC460 + .incbin "baserom.gba", 0x6BC460, 0x134 + +gSong_86BC594:: @ 0x86BC594 + .incbin "baserom.gba", 0x6BC594, 0x84 + +gSong_86BC618:: @ 0x86BC618 + .incbin "baserom.gba", 0x6BC618, 0x58 + +gSong_86BC670:: @ 0x86BC670 + .incbin "baserom.gba", 0x6BC670, 0x30 + +gSong_86BC6A0:: @ 0x86BC6A0 + .incbin "baserom.gba", 0x6BC6A0, 0x38 + +gSong_86BC6D8:: @ 0x86BC6D8 + .incbin "baserom.gba", 0x6BC6D8, 0x8C + +gSong_86BC764:: @ 0x86BC764 + .incbin "baserom.gba", 0x6BC764, 0x38 + +gSong_86BC79C:: @ 0x86BC79C + .incbin "baserom.gba", 0x6BC79C, 0x44 + +gSong_86BC7E0:: @ 0x86BC7E0 + .incbin "baserom.gba", 0x6BC7E0, 0x40 + +gSong_86BC820:: @ 0x86BC820 + .incbin "baserom.gba", 0x6BC820, 0x28 + +gSong_86BC848:: @ 0x86BC848 + .incbin "baserom.gba", 0x6BC848, 0xB8 + +gSong_86BC900:: @ 0x86BC900 + .incbin "baserom.gba", 0x6BC900, 0x74 + +gSong_86BC974:: @ 0x86BC974 + .incbin "baserom.gba", 0x6BC974, 0x6C + +gSong_86BC9E0:: @ 0x86BC9E0 + .incbin "baserom.gba", 0x6BC9E0, 0x48 + +gSong_86BCA28:: @ 0x86BCA28 + .incbin "baserom.gba", 0x6BCA28, 0xE0 + +gSong_86BCB08:: @ 0x86BCB08 + .incbin "baserom.gba", 0x6BCB08, 0xC0 + +gSong_86BCBC8:: @ 0x86BCBC8 + .incbin "baserom.gba", 0x6BCBC8, 0x34 + +gSong_86BCBFC:: @ 0x86BCBFC + .incbin "baserom.gba", 0x6BCBFC, 0xBC + +gSong_86BCCB8:: @ 0x86BCCB8 + .incbin "baserom.gba", 0x6BCCB8, 0xE0 + +gSong_86BCD98:: @ 0x86BCD98 + .incbin "baserom.gba", 0x6BCD98, 0x14C + +gSong_86BCEE4:: @ 0x86BCEE4 + .incbin "baserom.gba", 0x6BCEE4, 0x19C + +gSong_86BD080:: @ 0x86BD080 + .incbin "baserom.gba", 0x6BD080, 0x2D8 + +gSong_86BD358:: @ 0x86BD358 + .incbin "baserom.gba", 0x6BD358, 0x18C + +gSong_86BD4E4:: @ 0x86BD4E4 + .incbin "baserom.gba", 0x6BD4E4, 0xD8 + +gSong_86BD5BC:: @ 0x86BD5BC + .incbin "baserom.gba", 0x6BD5BC, 0x6C + +gSong_86BD628:: @ 0x86BD628 + .incbin "baserom.gba", 0x6BD628, 0x570 + +gSong_86BDB98:: @ 0x86BDB98 + .incbin "baserom.gba", 0x6BDB98, 0xE2C + +gSong_86BE9C4:: @ 0x86BE9C4 + .incbin "baserom.gba", 0x6BE9C4, 0x10A4 + +gSong_86BFA68:: @ 0x86BFA68 + .incbin "baserom.gba", 0x6BFA68, 0x358 + +gSong_86BFDC0:: @ 0x86BFDC0 + .incbin "baserom.gba", 0x6BFDC0, 0x220 + +gSong_86BFFE0:: @ 0x86BFFE0 + .incbin "baserom.gba", 0x6BFFE0, 0x140 + +gSong_86C0120:: @ 0x86C0120 + .incbin "baserom.gba", 0x6C0120, 0xE4 + +gSong_86C0204:: @ 0x86C0204 + .incbin "baserom.gba", 0x6C0204, 0xF8 + +gSong_86C02FC:: @ 0x86C02FC + .incbin "baserom.gba", 0x6C02FC, 0x4E8 + +gSong_86C07E4:: @ 0x86C07E4 + .incbin "baserom.gba", 0x6C07E4, 0xF3C + +gSong_86C1720:: @ 0x86C1720 + .incbin "baserom.gba", 0x6C1720, 0x1C24 + +gSong_86C3344:: @ 0x86C3344 + .incbin "baserom.gba", 0x6C3344, 0xA0C + +gSong_86C3D50:: @ 0x86C3D50 + .incbin "baserom.gba", 0x6C3D50, 0x298 + +gSong_86C3FE8:: @ 0x86C3FE8 + .incbin "baserom.gba", 0x6C3FE8, 0xB00 + +gSong_86C4AE8:: @ 0x86C4AE8 + .incbin "baserom.gba", 0x6C4AE8, 0x1074 + +gSong_86C5B5C:: @ 0x86C5B5C + .incbin "baserom.gba", 0x6C5B5C, 0xED4 + +gSong_86C6A30:: @ 0x86C6A30 + .incbin "baserom.gba", 0x6C6A30, 0xD2C + +gSong_86C775C:: @ 0x86C775C + .incbin "baserom.gba", 0x6C775C, 0x54 + +gSong_86C77B0:: @ 0x86C77B0 + .incbin "baserom.gba", 0x6C77B0, 0xC14 + +gSong_86C83C4:: @ 0x86C83C4 + .incbin "baserom.gba", 0x6C83C4, 0x3C0 + +gSong_86C8784:: @ 0x86C8784 + .incbin "baserom.gba", 0x6C8784, 0x3B8 + +gSong_86C8B3C:: @ 0x86C8B3C + .incbin "baserom.gba", 0x6C8B3C, 0x4A8 + +gSong_86C8FE4:: @ 0x86C8FE4 + .incbin "baserom.gba", 0x6C8FE4, 0xABC + +gSong_86C9AA0:: @ 0x86C9AA0 + .incbin "baserom.gba", 0x6C9AA0, 0x1218 + +gSong_86CACB8:: @ 0x86CACB8 + .incbin "baserom.gba", 0x6CACB8, 0x1450 + +gSong_86CC108:: @ 0x86CC108 + .incbin "baserom.gba", 0x6CC108, 0x123C + +gSong_86CD344:: @ 0x86CD344 + .incbin "baserom.gba", 0x6CD344, 0x4010 + +gSong_86D1354:: @ 0x86D1354 + .incbin "baserom.gba", 0x6D1354, 0xA88 + +gSong_86D1DDC:: @ 0x86D1DDC + .incbin "baserom.gba", 0x6D1DDC, 0x870 + +gSong_86D264C:: @ 0x86D264C + .incbin "baserom.gba", 0x6D264C, 0xF3C + +gSong_86D3588:: @ 0x86D3588 + .incbin "baserom.gba", 0x6D3588, 0xD74 + +gSong_86D42FC:: @ 0x86D42FC + .incbin "baserom.gba", 0x6D42FC, 0xD40 + +gSong_86D503C:: @ 0x86D503C + .incbin "baserom.gba", 0x6D503C, 0x1AE4 + +gSong_86D6B20:: @ 0x86D6B20 + .incbin "baserom.gba", 0x6D6B20, 0x2B74 + +gSong_86D9694:: @ 0x86D9694 + .incbin "baserom.gba", 0x6D9694, 0x117C + +gSong_86DA810:: @ 0x86DA810 + .incbin "baserom.gba", 0x6DA810, 0x27D0 + +gSong_86DCFE0:: @ 0x86DCFE0 + .incbin "baserom.gba", 0x6DCFE0, 0x864 + +gSong_86DD844:: @ 0x86DD844 + .incbin "baserom.gba", 0x6DD844, 0x79C + +gSong_86DDFE0:: @ 0x86DDFE0 + .incbin "baserom.gba", 0x6DDFE0, 0x98C + +gSong_86DE96C:: @ 0x86DE96C + .incbin "baserom.gba", 0x6DE96C, 0xA60 + +gSong_86DF3CC:: @ 0x86DF3CC + .incbin "baserom.gba", 0x6DF3CC, 0x12A4 + +gSong_86E0670:: @ 0x86E0670 + .incbin "baserom.gba", 0x6E0670, 0x978 + +gSong_86E0FE8:: @ 0x86E0FE8 + .incbin "baserom.gba", 0x6E0FE8, 0x8CC + +gSong_86E18B4:: @ 0x86E18B4 + .incbin "baserom.gba", 0x6E18B4, 0x16F4 + +gSong_86E2FA8:: @ 0x86E2FA8 + .incbin "baserom.gba", 0x6E2FA8, 0xA3C + +gSong_86E39E4:: @ 0x86E39E4 + .incbin "baserom.gba", 0x6E39E4, 0xB80 + +gSong_86E4564:: @ 0x86E4564 + .incbin "baserom.gba", 0x6E4564, 0x1180 + +gSong_86E56E4:: @ 0x86E56E4 + .incbin "baserom.gba", 0x6E56E4, 0x538 + +gSong_86E5C1C:: @ 0x86E5C1C + .incbin "baserom.gba", 0x6E5C1C, 0xEF0 + +gSong_86E6B0C:: @ 0x86E6B0C + .incbin "baserom.gba", 0x6E6B0C, 0xE14 + +gSong_86E7920:: @ 0x86E7920 + .incbin "baserom.gba", 0x6E7920, 0xEF0 + +gSong_86E8810:: @ 0x86E8810 + .incbin "baserom.gba", 0x6E8810, 0x83C + +gSong_86E904C:: @ 0x86E904C + .incbin "baserom.gba", 0x6E904C, 0x7D4 + +gSong_86E9820:: @ 0x86E9820 + .incbin "baserom.gba", 0x6E9820, 0x200 + +gSong_86E9A20:: @ 0x86E9A20 + .incbin "baserom.gba", 0x6E9A20, 0x200 + +gSong_86E9C20:: @ 0x86E9C20 + .incbin "baserom.gba", 0x6E9C20, 0x370 + +gSong_86E9F90:: @ 0x86E9F90 + .incbin "baserom.gba", 0x6E9F90, 0x170 + +gSong_86EA100:: @ 0x86EA100 + .incbin "baserom.gba", 0x6EA100, 0x904 + +gSong_86EAA04:: @ 0x86EAA04 + .incbin "baserom.gba", 0x6EAA04, 0x438 + +gSong_86EAE3C:: @ 0x86EAE3C + .incbin "baserom.gba", 0x6EAE3C, 0x8C + +gSong_86EAEC8:: @ 0x86EAEC8 + .incbin "baserom.gba", 0x6EAEC8, 0x1D0 + +gSong_86EB098:: @ 0x86EB098 + .incbin "baserom.gba", 0x6EB098, 0xBC + +gSong_86EB154:: @ 0x86EB154 + .incbin "baserom.gba", 0x6EB154, 0xF74 + +gSong_86EC0C8:: @ 0x86EC0C8 + .incbin "baserom.gba", 0x6EC0C8, 0xF7C + +gSong_86ED044:: @ 0x86ED044 + .incbin "baserom.gba", 0x6ED044, 0xA5C + +gSong_86EDAA0:: @ 0x86EDAA0 + .incbin "baserom.gba", 0x6EDAA0, 0x480 + +gSong_86EDF20:: @ 0x86EDF20 + .incbin "baserom.gba", 0x6EDF20, 0xF2C + +gSong_86EEE4C:: @ 0x86EEE4C + .incbin "baserom.gba", 0x6EEE4C, 0x1404 + +gSong_86F0250:: @ 0x86F0250 + .incbin "baserom.gba", 0x6F0250, 0x4F0 + +gSong_86F0740:: @ 0x86F0740 + .incbin "baserom.gba", 0x6F0740, 0xEC0 + +gSong_86F1600:: @ 0x86F1600 + .incbin "baserom.gba", 0x6F1600, 0x121C + +gSong_86F281C:: @ 0x86F281C + .incbin "baserom.gba", 0x6F281C, 0xEF4 + +gSong_86F3710:: @ 0x86F3710 + .incbin "baserom.gba", 0x6F3710, 0x1028 + +gSong_86F4738:: @ 0x86F4738 + .incbin "baserom.gba", 0x6F4738, 0xF30 + +gSong_86F5668:: @ 0x86F5668 + .incbin "baserom.gba", 0x6F5668, 0x1C4 + +gSong_86F582C:: @ 0x86F582C + .incbin "baserom.gba", 0x6F582C, 0x2188 + +gSong_86F79B4:: @ 0x86F79B4 + .incbin "baserom.gba", 0x6F79B4, 0x1178 + +gSong_86F8B2C:: @ 0x86F8B2C + .incbin "baserom.gba", 0x6F8B2C, 0x12B8 + +gSong_86F9DE4:: @ 0x86F9DE4 + .incbin "baserom.gba", 0x6F9DE4, 0x444 + +gSong_86FA228:: @ 0x86FA228 + .incbin "baserom.gba", 0x6FA228, 0x948 + +gSong_86FAB70:: @ 0x86FAB70 + .incbin "baserom.gba", 0x6FAB70, 0xA00 + +gSong_86FB570:: @ 0x86FB570 + .incbin "baserom.gba", 0x6FB570, 0x840 + +gSong_86FBDB0:: @ 0x86FBDB0 + .incbin "baserom.gba", 0x6FBDB0, 0xDC + +gSong_86FBE8C:: @ 0x86FBE8C + .incbin "baserom.gba", 0x6FBE8C, 0x18 diff --git a/data/specials.inc b/data/specials.inc index 171a6fd8e..96d0ef253 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -2,11 +2,11 @@ .global SPECIAL_\ptr .set SPECIAL_\ptr, __special__ .set __special__, __special__ + 1 - .4byte \ptr - .endm + .4byte \ptr + .endm .set __special__, 0 - .align 2 + .align 2 gSpecials:: @ 815FD60 def_special sp000_heal_pokemon @@ -40,7 +40,7 @@ gSpecials:: @ 815FD60 def_special sub_8081064 def_special sub_80810CC def_special sub_80810F4 - def_special sub_80098B8 + def_special CloseLink def_special sub_80819C8 def_special sub_8081978 def_special sub_80819B8 @@ -139,7 +139,7 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special sub_80BDB1C def_special nullsub_75 - def_special sub_809A540 + def_special RegisteredItemHandleBikeSwap def_special CalculatePlayerPartyCount def_special CountPartyNonEggMons def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot @@ -191,7 +191,7 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special sub_80CA74C def_special GetDaycareMonNicknames - def_special sub_80464B4 + def_special GetDaycareState def_special RejectEggFromDayCare def_special GiveEggFromDaycare def_special SetDaycareCompatibilityString @@ -203,7 +203,7 @@ gSpecials:: @ 815FD60 def_special GetDaycareCost def_special TakePokemonFromDaycare def_special ScriptHatchMon - def_special sub_8046FD4 + def_special EggHatch def_special sub_8046EAC def_special sub_80CD228 def_special IsEnoughForCostInVar0x8005 @@ -221,7 +221,7 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 - def_special sub_80CA3D8 + def_special Special_GetPokedexCount def_special sub_80CA524 def_special sub_80CA86C def_special sub_80CA9A8 @@ -306,7 +306,7 @@ gSpecials:: @ 815FD60 def_special ScrSpecial_AreLeadMonEVsMaxedOut def_special sub_8069740 def_special sub_8069768 - def_special sub_8141D9C + def_special InitRoamer def_special nullsub_75 def_special sub_80CA804 def_special nullsub_75 @@ -327,8 +327,8 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special sub_807B6C0 - def_special sp13E_warp_to_last_warp - def_special sp13F_fall_to_last_warp + def_special DoDiveWarp + def_special DoFallWarp def_special nullsub_75 def_special nullsub_75 def_special sub_80E5E70 @@ -363,7 +363,7 @@ gSpecials:: @ 815FD60 def_special GetDaycarePokemonCount def_special sub_80CB63C def_special sub_80CBD80 - def_special sub_80CBDB0 + def_special ScrSpecial_GetStarter def_special sub_80CBDCC def_special sub_810C444 def_special sub_80CC7B4 @@ -383,17 +383,17 @@ gSpecials:: @ 815FD60 def_special SetFlavorTextFlagFromSpecialVars def_special UpdatePickStateFromSpecialVar8005 def_special sub_8054C48 - def_special sub_8046B40 - def_special sub_8046B70 - def_special sub_8046B94 - def_special sub_8046BBC - def_special sub_8046BDC - def_special sub_8146E78 + def_special PutMonInRoute5Daycare + def_special GetCostToWithdrawRoute5DaycareMon + def_special IsThereMonInRoute5Daycare + def_special GetNumLevelsGainedForRoute5DaycareMon + def_special TakePokemonFromRoute5Daycare + def_special ScrSpecial_SeaGallopFerry def_special sub_80CC48C def_special sub_812B220 def_special sub_812B234 def_special sub_812B248 - def_special sub_8143FC8 + def_special ValidateReceivedWonderCard def_special sub_810B810 def_special sub_811999C def_special sp182_move_string @@ -410,7 +410,7 @@ gSpecials:: @ 815FD60 def_special sub_8127888 def_special sub_80803FC def_special sub_812B35C - def_special sub_815D334 + def_special Special_SSAnneDepartureCutscene def_special sub_8149A18 def_special sub_806E25C def_special sub_815D9E8 @@ -420,7 +420,7 @@ gSpecials:: @ 815FD60 def_special sub_812B478 def_special sub_812B484 def_special sub_810B82C - def_special sub_8099FAC + def_special CheckHasAtLeastOneBerry def_special sub_815F094 def_special sub_815F114 def_special sub_815EEB0 diff --git a/data/start_menu.s b/data/start_menu.s new file mode 100644 index 000000000..e004a6628 --- /dev/null +++ b/data/start_menu.s @@ -0,0 +1,28 @@ + .section .rodata + .align 2 +gUnknown_83A7344:: @ 83A7344 + .incbin "baserom.gba", 0x3A7344, 0x48 + +gUnknown_83A738C:: @ 83A738C + .incbin "baserom.gba", 0x3A738C, 0x8 + +gUnknown_83A7394:: @ 83A7394 + .incbin "baserom.gba", 0x3A7394, 0x24 + +gUnknown_83A73B8:: @ 83A73B8 + .incbin "baserom.gba", 0x3A73B8, 0x4 + +gUnknown_83A73BC:: @ 83A73BC + .incbin "baserom.gba", 0x3A73BC, 0x10 + +gUnknown_83A73CC:: @ 83A73CC + .incbin "baserom.gba", 0x3A73CC, 0x8 + +gUnknown_83A73D4:: @ 83A73D4 + .incbin "baserom.gba", 0x3A73D4, 0x4 + +gUnknown_83A73D8:: @ 83A73D8 + .incbin "baserom.gba", 0x3A73D8, 0x4 + +gUnknown_83A73DC:: @ 83A73DC + .incbin "baserom.gba", 0x3A73DC, 0x284 diff --git a/data/strings.s b/data/strings.s new file mode 100644 index 000000000..9490372e7 --- /dev/null +++ b/data/strings.s @@ -0,0 +1,2191 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 +gExpandedPlaceholder_Empty:: @ 8415A20 + .incbin "baserom.gba", 0x415A20, 0x1 + +gExpandedPlaceholder_Kun:: @ 8415A21 + .incbin "baserom.gba", 0x415A21, 0x1 + +gExpandedPlaceholder_Chan:: @ 8415A22 + .incbin "baserom.gba", 0x415A22, 0xA + +gExpandedPlaceholder_Ruby:: @ 8415A2C + .incbin "baserom.gba", 0x415A2C, 0x5 + +gExpandedPlaceholder_Aqua:: @ 8415A31 + .incbin "baserom.gba", 0x415A31, 0x5 + +gExpandedPlaceholder_Magma:: @ 8415A36 + .incbin "baserom.gba", 0x415A36, 0x6 + +gExpandedPlaceholder_Archie:: @ 8415A3C + .incbin "baserom.gba", 0x415A3C, 0x7 + +gExpandedPlaceholder_Maxie:: @ 8415A43 + .incbin "baserom.gba", 0x415A43, 0x6 + +gExpandedPlaceholder_Kyogre:: @ 8415A49 + .incbin "baserom.gba", 0x415A49, 0x7 + +gExpandedPlaceholder_Groudon:: @ 8415A50 + .incbin "baserom.gba", 0x415A50, 0x8 + +gExpandedPlaceholder_Red:: @ 8415A58 + .incbin "baserom.gba", 0x415A58, 0x4 + +gExpandedPlaceholder_Green:: @ 8415A5C + .incbin "baserom.gba", 0x415A5C, 0x6 + +gText_EggNickname:: @ 8415A62 + .incbin "baserom.gba", 0x415A62, 0x4 + +gText_Pokemon:: @ 8415A66 + .incbin "baserom.gba", 0x415A66, 0x8 + +gUnknown_8415A6E:: @ 8415A6E + .incbin "baserom.gba", 0x415A6E, 0x9 + +gUnknown_8415A77:: @ 8415A77 + .incbin "baserom.gba", 0x415A77, 0x20 + +gUnknown_8415A97:: @ 8415A97 + .incbin "baserom.gba", 0x415A97, 0xD + +gUnknown_8415AA4:: @ 8415AA4 + .incbin "baserom.gba", 0x415AA4, 0x27 + +gUnknown_8415ACB:: @ 8415ACB + .incbin "baserom.gba", 0x415ACB, 0x134 + +gUnknown_8415BFF:: @ 8415BFF + .incbin "baserom.gba", 0x415BFF, 0x43 + +gUnknown_8415C42:: @ 8415C42 + .incbin "baserom.gba", 0x415C42, 0x22 + +gUnknown_8415C64:: @ 8415C64 + .incbin "baserom.gba", 0x415C64, 0x84 + +gUnknown_8415CE8:: @ 8415CE8 + .incbin "baserom.gba", 0x415CE8, 0x44 + +gText_Controls:: @ 8415D2C + .string "CONTROLS$" + + .align 2 +gUnknown_8415D38:: @ 8415D2C + .string "{KEYGFX_DPAD_UP_DOWN}えらぶ {KEYGFX_A_BUTTON}けってい$" + + .align 2 +gText_ABUTTONNext:: @ 8415D48 + .string "{KEYGFX_A_BUTTON}NEXT$" + + .align 2 +gText_ABUTTONNext_BBUTTONBack:: @ 8415D50 + .string "{KEYGFX_A_BUTTON}NEXT {KEYGFX_B_BUTTON}BACK$" + + .align 2 +gText_UPDOWNPick_ABUTTONNext_BBUTTONBack:: @ 8415D60 + .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}NEXT {KEYGFX_B_BUTTON}CANCEL$" + + .align 2 +gText_UPDOWNPick_ABUTTONBBUTTONCancel:: @ 8415D78 + .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}{KEYGFX_B_BUTTON}CANCEL$" + + .align 2 +gText_ABUTTONExit:: @ 8415D8C + .string "{KEYGFX_A_BUTTON}EXIT$" + +gText_Boy:: @ 8415D93 + .string "BOY$" + +gText_Girl:: @ 8415D97 + .string "GIRL$" + +gUnknown_8415D9C:: @ 8415D9C + .incbin "baserom.gba", 0x415D9C, 0x1C + +gUnknown_8415DB8:: @ 8415DB8 + .incbin "baserom.gba", 0x415DB8, 0xC + +gUnknown_8415DC4:: @ 8415DC4 + .incbin "baserom.gba", 0x415DC4, 0x6 + +gUnknown_8415DCA:: @ 8415DCA + .incbin "baserom.gba", 0x415DCA, 0x7 + +gUnknown_8415DD1:: @ 8415DD1 + .incbin "baserom.gba", 0x415DD1, 0x6 + +gUnknown_8415DD7:: @ 8415DD7 + .incbin "baserom.gba", 0x415DD7, 0x166 + +gUnknown_8415F3D:: @ 8415F3D + .incbin "baserom.gba", 0x415F3D, 0xD + +gUnknown_8415F4A:: @ 8415F4A + .incbin "baserom.gba", 0x415F4A, 0x7 + +gText_PickOKExit:: @ 8415F51 + .incbin "baserom.gba", 0x415F51, 0x15 + +gUnknown_8415F66:: @ 8415F66 + .incbin "baserom.gba", 0x415F66, 0x6 + +gUnknown_8415F6C:: @ 8415F6C + .incbin "baserom.gba", 0x415F6C, 0x23 + +gUnknown_8415F8F:: @ 8415F8F + .incbin "baserom.gba", 0x415F8F, 0x9 + +gUnknown_8415F98:: @ 8415F98 + .incbin "baserom.gba", 0x415F98, 0x3 + +gUnknown_8415F9B:: @ 8415F9B + .incbin "baserom.gba", 0x415F9B, 0x5 + +gUnknown_8415FA0:: @ 8415FA0 + .incbin "baserom.gba", 0x415FA0, 0xD + +gUnknown_8415FAD:: @ 8415FAD + .incbin "baserom.gba", 0x415FAD, 0x6 + +gUnknown_8415FB3:: @ 8415FB3 + .incbin "baserom.gba", 0x415FB3, 0x15 + +gUnknown_8415FC8:: @ 8415FC8 + .incbin "baserom.gba", 0x415FC8, 0x7 + +gUnknown_8415FCF:: @ 8415FCF + .incbin "baserom.gba", 0x415FCF, 0x19 + +gUnknown_8415FE8:: @ 8415FE8 + .incbin "baserom.gba", 0x415FE8, 0x5 + +gUnknown_8415FED:: @ 8415FED + .incbin "baserom.gba", 0x415FED, 0x5 + +gUnknown_8415FF2:: @ 8415FF2 + .incbin "baserom.gba", 0x415FF2, 0xD + +gUnknown_8415FFF:: @ 8415FFF + .incbin "baserom.gba", 0x415FFF, 0x3 + +gUnknown_8416002:: @ 8416002 + .incbin "baserom.gba", 0x416002, 0x6 + +gUnknown_8416008:: @ 8416008 + .incbin "baserom.gba", 0x416008, 0x88 + +gUnknown_8416090:: @ 8416090 + .incbin "baserom.gba", 0x416090, 0x24 + +gUnknown_84160B4:: @ 84160B4 + .incbin "baserom.gba", 0x4160B4, 0x14 + +gUnknown_84160C8:: @ 84160C8 + .incbin "baserom.gba", 0x4160C8, 0x24 + +gUnknown_84160EC:: @ 84160EC + .incbin "baserom.gba", 0x4160EC, 0x8 + +gUnknown_84160F4:: @ 84160F4 + .incbin "baserom.gba", 0x4160F4, 0x8 + +gUnknown_84160FC:: @ 84160FC + .incbin "baserom.gba", 0x4160FC, 0x8 + +gUnknown_8416104:: @ 8416104 + .incbin "baserom.gba", 0x416104, 0x47 + +gUnknown_841614B:: @ 841614B + .incbin "baserom.gba", 0x41614B, 0x2F + +gUnknown_841617A:: @ 841617A + .incbin "baserom.gba", 0x41617A, 0x7 + +gUnknown_8416181:: @ 8416181 + .incbin "baserom.gba", 0x416181, 0x7 + +gUnknown_8416188:: @ 8416188 + .incbin "baserom.gba", 0x416188, 0x8 + +gUnknown_8416190:: @ 8416190 + .string "TIME$" + +gUnknown_8416195:: + .string "どこへ とびますか?$" + +gOtherText_Use:: + .string "USE$" + +gUnknown_84161A4:: + .string "TOSS$" + +gUnknown_84161A9:: + .string "REGISTER$" + +gOtherText_Give:: + .string "GIVE$" + +gUnknown_84161B7:: + .string "けってい$" + +gUnknown_84161BC:: + .string "WALK$" + +gFameCheckerText_Cancel:: @ 84161C1 + .string "CANCEL$" + +gOtherText_Exit:: @ 84161C8 + .string "EXIT$" + +gUnknown_84161CD:: @ 84161CD + .string "$" + +gUnknown_84161CE:: + .string "キャンセル$" + +gUnknown_84161D4:: + .string "ITEM$" + +gUnknown_84161D9:: + .string "MAIL$" + +gUnknown_84161DE:: + .string "TAKE$" + +gUnknown_84161E3:: + .string "STORE$" + +gUnknown_84161E9:: + .string "CHECK$" + +gUnknown_84161EF:: @ 84161EF + .string "NONE$" + +gUnknown_84161F4:: + .string "OPEN$" + +gUnknown_84161F9:: + .string "DESELECT$" + +gUnknown_8416202:: @ 8416202 + .string "???$" + +gUnknown_8416206:: + .string "?????$" + +gUnknown_841620C:: @ 841620C + .string "/$" + +gUnknown_841620E:: @ 841620E + .string "-$" + +gUnknown_8416210:: @ 8416210 + .string "--$" + +gText_ThreeHyphens:: @ 8416213 + .string "---$" + +gUnknown_8416217:: @ 8416217 + .string "-------$" + +gUnknown_841621F:: @ 841621F + .string "♂$" + +gUnknown_8416221:: @ 8416221 + .string "♀$" + +gText_Lv:: @ 8416223 + .string "{EXTRA_LV}$" + +gOtherText_UnkF9_08_Clear_01:: @ 8416226 + .string "{EXTRA_NO}{CLEAR 0x01}$" + +gUnknown_841622C:: + .string "{EXTRA_PLUS}$" + +gUnknown_841622F:: + .string "{ESCAPE 0x03}$" + +gUnknown_8416233:: + .string "{EXTRA_ID}{EXTRA_NO}$" + +gUnknown_8416238:: @ 8416238 + .string "{EXTRA_PP}$" + +gFameCheckerText_ListMenuCursor:: @ 841623B + .string "▶$" + +gUnknown_841623D:: @ 841623D + .string "YES\n" + .string "NO$" + +gUnknown_8416244:: + .string "Go back to the\n" + .string "previous menu.$" + +gUnknown_8416262:: @ 8416262 + .string "What would you like to do?$" + +gUnknown_841627D:: + .string "POKéDEX$" + +gUnknown_8416285:: @ 8416285 + .string "BAG$" + +gUnknown_8416289:: + .string "ポケナビ$" + +gUnknown_841628E:: + .string "{PLAYER}$" + +gUnknown_8416291:: + .string "SAVE$" + +gUnknown_8416296:: + .string "OPTION$" + +gUnknown_841629D:: + .string "EXIT$" + +gUnknown_84162A2:: + .string "RETIRE$" + +gUnknown_84162A9:: @ 84162A9 + .string "{STR_VAR_1}/{STR_VAR_2}\n" + .string "BALLS {STR_VAR_3}$" + +gText_TimesStrVar1:: @ 84162B9 + .string "×{STR_VAR_1}$" + +gUnknown_84162BD:: @ 84162BD + .string " BERRY$" + +gText_Coins:: @ 84162C4 + .incbin "baserom.gba", 0x4162C4, 0x24 + +gText_DepositItem:: @ 84162E8 + .string "DEPOSIT ITEM$" + +gUnknown_84162F5:: @ 84162F5 + .incbin "baserom.gba", 0x4162F5, 0xA + +gOtherText_StrVar1:: @ 84162FF + .string "{STR_VAR_1}" + +gText_IsSelected:: @ 8416301 + .string " is\n" + .string "selected.$" + +gUnknown_841630F:: @ 841630F + .incbin "baserom.gba", 0x41630F, 0x1B + +gText_ThereIsNoPokemon:: @ 841632A + .string "There is no\n" + .string "POKéMON.$" + +gOtherText_WhereShouldTheStrVar1BePlaced:: @ 841633F + .string "Where should the {STR_VAR_1}\n" + .string "be placed?$" + +gText_ItemCantBeHeld:: @ 841635E + .string "The {STR_VAR_1} can't be held.$" + +gUnknown_8416374:: @ 8416374 + .incbin "baserom.gba", 0x416374, 0x1B + +gUnknown_841638F:: @ 841638F + .incbin "baserom.gba", 0x41638F, 0x18 + +gUnknown_84163A7:: @ 84163A7 + .incbin "baserom.gba", 0x4163A7, 0x14 + +gUnknown_84163BB:: @ 84163BB + .incbin "baserom.gba", 0x4163BB, 0x20 + +gUnknown_84163DB:: @ 84163DB + .incbin "baserom.gba", 0x4163DB, 0x19 + +gUnknown_84163F4:: @ 84163F4 + .incbin "baserom.gba", 0x4163F4, 0x15 + +gUnknown_8416409:: @ 8416409 + .incbin "baserom.gba", 0x416409, 0x1C + +gUnknown_8416425:: @ 8416425 + .incbin "baserom.gba", 0x416425, 0x2C + +gUnknown_8416451:: @ 8416451 + .incbin "baserom.gba", 0x416451, 0x25 + +gUnknown_8416476:: @ 8416476 + .incbin "baserom.gba", 0x416476, 0x48 + +gUnknown_84164BE:: @ 84164BE + .incbin "baserom.gba", 0x4164BE, 0x55 + +gUnknown_8416513:: @ 8416513 + .incbin "baserom.gba", 0x416513, 0x24 + +gUnknown_8416537:: @ 8416537 + .incbin "baserom.gba", 0x416537, 0x55 + +gUnknown_841658C:: @ 841658C + .incbin "baserom.gba", 0x41658C, 0x12 + +gUnknown_841659E:: @ 841659E + .incbin "baserom.gba", 0x41659E, 0x34 + +gUnknown_84165D2:: @ 84165D2 + .incbin "baserom.gba", 0x4165D2, 0x2E + +gUnknown_8416600:: @ 8416600 + .incbin "baserom.gba", 0x416600, 0x31 + +gUnknown_8416631:: @ 8416631 + .incbin "baserom.gba", 0x416631, 0x13 + +gUnknown_8416644:: @ 8416644 + .incbin "baserom.gba", 0x416644, 0x11 + +gOtherText_Powder:: @ 8416655 + .string "POWDER$" + +gUnknown_841665C:: @ 841665C + .string "Played the POKé FLUTE.\p" + .string "Now, that's a catchy tune!{PAUSE_UNTIL_PRESS}$" + +gUnknown_8416690:: @ 8416690 + .string "Played the POKé FLUTE.$" + +gUnknown_84166A7:: @ 84166A7 + .string "The POKé FLUTE awakened sleeping\n" + .string "POKéMON.{PAUSE_UNTIL_PRESS}$" + +gText_TMCase:: @ 84166D3 + .string "TM CASE$" + +gText_Close:: @ 84166DB + .string "CLOSE$" + +gText_TMCaseWillBePutAway:: @ 84166E1 + .string "The TM CASE will be\n" + .string "put away.$" + +gText_FontSize0:: @ 84166FF + .string "{SIZE 0}$" + +gText_FontSize2:: @ 8416703 + .string "{SIZE 2}$" + +gUnknown_8416707:: @ 8416707 + .string " $" + +gUnknown_841670A:: @ 841670A + .incbin "baserom.gba", 0x41670A, 0xC + +gUnknown_8416716:: @ 8416716 + .incbin "baserom.gba", 0x416716, 0x33 + +gUnknown_8416749:: @ 8416749 + .incbin "baserom.gba", 0x416749, 0xE + +gUnknown_8416757:: @ 8416757 + .incbin "baserom.gba", 0x416757, 0xF + +gUnknown_8416766:: @ 8416766 + .incbin "baserom.gba", 0x416766, 0x28 + +gUnknown_841678E:: @ 841678E + .incbin "baserom.gba", 0x41678E, 0x59 + +gUnknown_84167E7:: @ 84167E7 + .incbin "baserom.gba", 0x4167E7, 0x5B + +gUnknown_8416842:: @ 8416842 + .incbin "baserom.gba", 0x416842, 0x1F + +gUnknown_8416861:: @ 8416861 + .incbin "baserom.gba", 0x416861, 0x3D + +gUnknown_841689E:: @ 841689E + .incbin "baserom.gba", 0x41689E, 0x53 + +gText_OhNoICantBuyThat:: @ 84168F1 + .string "{STR_VAR_1}? Oh, no.\n" + .string "I can't buy that.{PAUSE_UNTIL_PRESS}$" + +gText_HowManyWouldYouLikeToSell:: @ 8416911 + .string "{STR_VAR_1}?\n" + .string "How many would you like to sell?$" + +gText_ICanPayThisMuch_WouldThatBeOkay:: @ 8416936 + .string "I can pay ¥{STR_VAR_3}.\n" + .string "Would that be okay?$" + +gText_TurnedOverItemsWorthYen:: @ 8416959 + .incbin "baserom.gba", 0x416959, 0x21 + +gText_PokedollarVar1:: @ 841697A + .incbin "baserom.gba", 0x41697A, 0x48 + +gUnknown_84169C2:: @ 84169C2 + .incbin "baserom.gba", 0x4169C2, 0x3 + +gUnknown_84169C5:: @ 84169C5 + .incbin "baserom.gba", 0x4169C5, 0x8 + +gUnknown_84169CD:: @ 84169CD + .incbin "baserom.gba", 0x4169CD, 0x8 + +gUnknown_84169D5:: @ 84169D5 + .incbin "baserom.gba", 0x4169D5, 0x4 + +gUnknown_84169D9:: @ 84169D9 + .incbin "baserom.gba", 0x4169D9, 0x3 + +gUnknown_84169DC:: @ 84169DC + .incbin "baserom.gba", 0x4169DC, 0x1C + +gUnknown_84169F8:: @ 84169F8 + .string "This can't be used on\n" + .string "that POKéMON.{PAUSE_UNTIL_PRESS}$" + +gUnknown_8416A1E:: @ 8416A1E + .incbin "baserom.gba", 0x416A1E, 0x1C + +gUnknown_8416A3A:: @ 8416A3A + .incbin "baserom.gba", 0x416A3A, 0x1B + +gUnknown_8416A55:: @ 8416A55 + .incbin "baserom.gba", 0x416A55, 0x20 + +gUnknown_8416A75:: @ 8416A75 + .incbin "baserom.gba", 0x416A75, 0x23 + +gUnknown_8416A98:: @ 8416A98 + .incbin "baserom.gba", 0x416A98, 0x33 + +gUnknown_8416ACB:: @ 8416ACB + .incbin "baserom.gba", 0x416ACB, 0x17 + +gUnknown_8416AE2:: @ 8416AE2 + .incbin "baserom.gba", 0x416AE2, 0x34 + +gUnknown_8416B16:: @ 8416B16 + .incbin "baserom.gba", 0x416B16, 0x28 + +gUnknown_8416B3E:: @ 8416B3E + .incbin "baserom.gba", 0x416B3E, 0x26 + +gUnknown_8416B64:: @ 8416B64 + .incbin "baserom.gba", 0x416B64, 0x22 + +gUnknown_8416B86:: @ 8416B86 + .incbin "baserom.gba", 0x416B86, 0x20 + +gUnknown_8416BA6:: @ 8416BA6 + .incbin "baserom.gba", 0x416BA6, 0x1D + +gUnknown_8416BC3:: @ 8416BC3 + .incbin "baserom.gba", 0x416BC3, 0x38 + +gUnknown_8416BFB:: @ 8416BFB + .incbin "baserom.gba", 0x416BFB, 0x2F + +gUnknown_8416C2A:: @ 8416C2A + .incbin "baserom.gba", 0x416C2A, 0x1F + +gUnknown_8416C49:: @ 8416C49 + .incbin "baserom.gba", 0x416C49, 0x46 + +gUnknown_8416C8F:: @ 8416C8F + .incbin "baserom.gba", 0x416C8F, 0x1D + +gUnknown_8416CAC:: @ 8416CAC + .incbin "baserom.gba", 0x416CAC, 0x1B + +gUnknown_8416CC7:: @ 8416CC7 + .incbin "baserom.gba", 0x416CC7, 0x23 + +gUnknown_8416CEA:: @ 8416CEA + .incbin "baserom.gba", 0x416CEA, 0x2D + +gUnknown_8416D17:: @ 8416D17 + .incbin "baserom.gba", 0x416D17, 0x38 + +gUnknown_8416D4F:: @ 8416D4F + .incbin "baserom.gba", 0x416D4F, 0x29 + +gUnknown_8416D78:: @ 8416D78 + .incbin "baserom.gba", 0x416D78, 0x3B + +gUnknown_8416DB3:: @ 8416DB3 + .incbin "baserom.gba", 0x416DB3, 0xF + +gUnknown_8416DC2:: @ 8416DC2 + .incbin "baserom.gba", 0x416DC2, 0x35 + +gUnknown_8416DF7:: @ 8416DF7 + .incbin "baserom.gba", 0x416DF7, 0x74 + +gUnknown_8416E6B:: @ 8416E6B + .incbin "baserom.gba", 0x416E6B, 0x19 + +gUnknown_8416E84:: @ 8416E84 + .incbin "baserom.gba", 0x416E84, 0x20 + +gUnknown_8416EA4:: @ 8416EA4 + .incbin "baserom.gba", 0x416EA4, 0x22 + +gUnknown_8416EC6:: @ 8416EC6 + .incbin "baserom.gba", 0x416EC6, 0x4A + +gUnknown_8416F10:: @ 8416F10 + .incbin "baserom.gba", 0x416F10, 0x17 + +gUnknown_8416F27:: @ 8416F27 + .string "{STR_VAR_1}'s HP was restored\n" + .string "by {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}$" + +gUnknown_8416F4E:: @ 8416F4E + .incbin "baserom.gba", 0x416F4E, 0x21 + +gUnknown_8416F6F:: @ 8416F6F + .incbin "baserom.gba", 0x416F6F, 0x1D + +gUnknown_8416F8C:: @ 8416F8C + .incbin "baserom.gba", 0x416F8C, 0xE + +gUnknown_8416F9A:: @ 8416F9A + .incbin "baserom.gba", 0x416F9A, 0x18 + +gUnknown_8416FB2:: @ 8416FB2 + .incbin "baserom.gba", 0x416FB2, 0x15 + +gUnknown_8416FC7:: @ 8416FC7 + .incbin "baserom.gba", 0x416FC7, 0x26 + +gUnknown_8416FED:: @ 8416FED + .incbin "baserom.gba", 0x416FED, 0x15 + +gUnknown_8417002:: @ 8417002 + .incbin "baserom.gba", 0x417002, 0x15 + +gUnknown_8417017:: @ 8417017 + .incbin "baserom.gba", 0x417017, 0x1B + +gUnknown_8417032:: @ 8417032 + .incbin "baserom.gba", 0x417032, 0x20 + +gUnknown_8417052:: @ 8417052 + .incbin "baserom.gba", 0x417052, 0x23 + +gUnknown_8417075:: @ 8417075 + .incbin "baserom.gba", 0x417075, 0x47 + +gUnknown_84170BC:: @ 84170BC + .incbin "baserom.gba", 0x4170BC, 0x24 + +gUnknown_84170E0:: @ 84170E0 + .incbin "baserom.gba", 0x4170E0, 0x377 + +gUnknown_8417457:: @ 8417457 + .incbin "baserom.gba", 0x417457, 0x3D + +gUnknown_8417494:: @ 8417494 + .incbin "baserom.gba", 0x417494, 0x181 + +gUnknown_8417615:: @ 8417615 + .incbin "baserom.gba", 0x417615, 0x2B + +gUnknown_8417640:: @ 8417640 + .incbin "baserom.gba", 0x417640, 0x34 + +gUnknown_8417674:: @ 8417674 + .incbin "baserom.gba", 0x417674, 0x7 + +gUnknown_841767B:: @ 841767B + .incbin "baserom.gba", 0x41767B, 0x12 + +gUnknown_841768D:: @ 841768D + .incbin "baserom.gba", 0x41768D, 0x9 + +gUnknown_8417696:: @ 8417696 + .incbin "baserom.gba", 0x417696, 0x22 + +gUnknown_84176B8:: @ 84176B8 + .incbin "baserom.gba", 0x4176B8, 0x17 + +gUnknown_84176CF:: @ 84176CF + .incbin "baserom.gba", 0x4176CF, 0x2F + +gUnknown_84176FE:: @ 84176FE + .incbin "baserom.gba", 0x4176FE, 0x76 + +gUnknown_8417774:: @ 8417774 + .incbin "baserom.gba", 0x417774, 0x16 + +gText_NoMoreRoomInBag:: @ 841778A + .string "There is no more\n" + .string "room in the BAG.$" + +gText_WithdrawHowMany:: @ 84177AC + .string "Withdraw how many\n" + .string "{STR_VAR_1}(s)?$" + +gText_WithdrewQuantItem:: @ 84177C5 + .string "Withdrew {STR_VAR_2}\n" + .string "{STR_VAR_1}(s).$" + +gOtherText_Read:: + .string "READ$" + +gOtherText_MoveToBag:: + .string "MOVE TO BAG$" + +gOtherText_Give2:: + .string "GIVE$" + +gUnknown_84177EE:: @ 84177EE + .incbin "baserom.gba", 0x4177EE, 0x18 + +gUnknown_8417806:: @ 8417806 + .incbin "baserom.gba", 0x417806, 0x2A + +gUnknown_8417830:: @ 8417830 + .incbin "baserom.gba", 0x417830, 0x28 + +gUnknown_8417858:: @ 8417858 + .incbin "baserom.gba", 0x417858, 0x13 + +gUnknown_841786B:: @ 841786B + .incbin "baserom.gba", 0x41786B, 0x3C + +gText_WithdrawItem:: @ 84178A7 + .string "WITHDRAW\n" + .string "ITEM$" + +gText_Withdraw:: + .string "WITHDRAW$" + +gText_ReturnToPC:: @ 84178BE + .string "Return to the PC.$" + +gUnknown_84178D0:: @ 84178D0 + .incbin "baserom.gba", 0x4178D0, 0xA + +gUnknown_84178DA:: @ 84178DA + .incbin "baserom.gba", 0x4178DA, 0x5E + +gUnknown_8417938:: @ 8417938 + .incbin "baserom.gba", 0x417938, 0x4 + +gUnknown_841793C:: @ 841793C + .incbin "baserom.gba", 0x41793C, 0x263 + +gUnknown_8417B9F:: @ 8417B9F + .incbin "baserom.gba", 0x417B9F, 0xD + +gUnknown_8417BAC:: @ 8417BAC + .incbin "baserom.gba", 0x417BAC, 0xA + +gUnknown_8417BB6:: @ 8417BB6 + .incbin "baserom.gba", 0x417BB6, 0x8 + +gUnknown_8417BBE:: @ 8417BBE + .incbin "baserom.gba", 0x417BBE, 0xD + +gUnknown_8417BCB:: @ 8417BCB + .incbin "baserom.gba", 0x417BCB, 0x8 + +gUnknown_8417BD3:: @ 8417BD3 + .incbin "baserom.gba", 0x417BD3, 0x5A + +gUnknown_8417C2D:: @ 8417C2D + .incbin "baserom.gba", 0x417C2D, 0x1C0 + +gUnknown_8417DED:: @ 8417DED + .incbin "baserom.gba", 0x417DED, 0x1CC + +gUnknown_8417FB9:: @ 8417FB9 + .incbin "baserom.gba", 0x417FB9, 0x2 + +gUnknown_8417FBB:: @ 8417FBB + .incbin "baserom.gba", 0x417FBB, 0x8 + +gUnknown_8417FC3:: @ 8417FC3 + .incbin "baserom.gba", 0x417FC3, 0x9 + +gUnknown_8417FCC:: @ 8417FCC + .incbin "baserom.gba", 0x417FCC, 0x4 + +gUnknown_8417FD0:: @ 8417FD0 + .incbin "baserom.gba", 0x417FD0, 0xA5 + +gUnknown_8418075:: @ 8418075 + .incbin "baserom.gba", 0x418075, 0xFF + +gUnknown_8418174:: @ 8418174 + .incbin "baserom.gba", 0x418174, 0x14 + +gUnknown_8418188:: @ 8418188 + .incbin "baserom.gba", 0x418188, 0x1C + +gUnknown_84181A4:: @ 84181A4 + .incbin "baserom.gba", 0x4181A4, 0x12 + +gUnknown_84181B6:: @ 84181B6 + .incbin "baserom.gba", 0x4181B6, 0x8 + +gUnknown_84181BE:: @ 84181BE + .incbin "baserom.gba", 0x4181BE, 0x5 + +gFameCheckerText_FameCheckerWillBeClosed:: @ 84181C3 + .string "The FAME CHECKER will be closed.$" + +gFameCheckerText_ClearTextbox:: @ 84181E4 + .string "\n" + .string " $" + +gUnknown_8418204:: @ 8418204 + .incbin "baserom.gba", 0x00418204, 0x48c + +gUnknown_8418690:: @ 8418690 + .incbin "baserom.gba", 0x418690, 0x20 + +gUnknown_84186B0:: @ 84186B0 + .incbin "baserom.gba", 0x4186B0, 0x1D + +gUnknown_84186CD:: @ 84186CD + .incbin "baserom.gba", 0x4186CD, 0x26A + +gUnknown_8418937:: @ 8418937 + .incbin "baserom.gba", 0x418937, 0x1F + +gUnknown_8418956:: @ 8418956 + .incbin "baserom.gba", 0x418956, 0x8A + +gUnknown_84189E0:: @ 84189E0 + .incbin "baserom.gba", 0x4189E0, 0xE + +gUnknown_84189EE:: @ 84189EE + .incbin "baserom.gba", 0x4189EE, 0x22D + +gUnknown_8418C1B:: @ 8418C1B + .string "POKéMON CENTER$" + +gUnknown_8418C2A:: @ 8418C2A + .incbin "baserom.gba", 0x418C2A, 0x59 + +gUnknown_8418C83:: @ 8418C83 + .incbin "baserom.gba", 0x418C83, 0x56 + +gUnknown_8418CD9:: @ 8418CD9 + .string "The backup memory is damaged or\n" + .string "the game's battery has run dry.\n" + .string "The game can be played, but its\n" + .string "progress cannot be saved.\n" + .string "“Please press the A Button.”$" + +gUnknown_8418D70:: @ 8418D70 + .incbin "baserom.gba", 0x418D70, 0x99 + +gUnknown_8418E09:: @ 8418E09 + .incbin "baserom.gba", 0x418E09, 0x6E + +gUnknown_8418E77:: @ 8418E77 + .incbin "baserom.gba", 0x418E77, 0x13 + +gUnknown_8418E8A:: @ 8418E8A + .incbin "baserom.gba", 0x418E8A, 0x1 + +gUnknown_8418E8B:: @ 8418E8B + .incbin "baserom.gba", 0x418E8B, 0x2 + +gUnknown_8418E8D:: @ 8418E8D + .incbin "baserom.gba", 0x418E8D, 0x8 + +gUnknown_8418E95:: @ 8418E95 + .incbin "baserom.gba", 0x418E95, 0x9 + +gUnknown_8418E9E:: @ 8418E9E + .incbin "baserom.gba", 0x418E9E, 0x9 + +gUnknown_8418EA7:: @ 8418EA7 + .incbin "baserom.gba", 0x418EA7, 0x9 + +gUnknown_8418EB0:: @ 8418EB0 + .incbin "baserom.gba", 0x418EB0, 0x5 + +gUnknown_8418EB5:: @ 8418EB5 + .incbin "baserom.gba", 0x418EB5, 0x7 + +gUnknown_8418EBC:: @ 8418EBC + .incbin "baserom.gba", 0x418EBC, 0x7 + +gUnknown_8418EC3:: @ 8418EC3 + .string "No data$" + +gUnknown_8418ECB:: @ 8418ECB + @ Viridian Forest + .string "A deep and sprawling forest that\n" + .string "extends around VIRIDIAN CITY.\n" + .string "A natural maze, many people\n" + .string "become lost inside.$" + +gUnknown_8418F3A:: @ 8418F3A + @ Mt. Moon + .string "A mystical mountain that is known\n" + .string "for its frequent meteor falls.\n" + .string "The shards of stars that fall\n" + .string "here are known as MOON STONES.$" + +gUnknown_8418FB8:: @ 8418FB8 + @ Diglett's Cave + .string "A seemingly plain tunnel that was\n" + .string "dug by wild DIGLETT.\n" + .string "It is famous for connecting\n" + .string "ROUTES 2 and 11.$" + +gUnknown_841901C:: @ 841901C + @ Victory Road + .string "A tunnel situated on ROUTE 23.\n" + .string "It earned its name because it\n" + .string "must be traveled by all TRAINERS\n" + .string "aiming for the top.$" + +gUnknown_841908E:: @ 841908E + @ Pokémon Mansion + .string "A decrepit, burned-down mansion\n" + .string "on CINNABAR ISLAND.\n" + .string "It got its name because a famous\n" + .string "POKéMON researcher lived there.$" + +gUnknown_8419103:: @ 8419103 + @ Safari Zone + .string "An amusement park outside FUCHSIA\n" + .string "CITY where many rare POKéMON can\n" + .string "be observed in the wild.\n" + .string "Catch them in a popular game!$" + +gUnknown_841917D:: @ 841917D + @ Rock Tunnel + .string "A naturally formed underground\n" + .string "tunnel. Because it has not been\n" + .string "developed, it is inky dark inside.\n" + .string "A light is needed to get through.$" + +gUnknown_8419201:: @ 8419201 + @ Seafoam Islands + .string "A pair of islands that is situated\n" + .string "on ROUTE 20.\n" + .string "The two islands are shaped the\n" + .string "same, as if they were twins.$" + +gUnknown_841926D:: @ 841926D + @ Pokémon Tower + .string "A tower that houses the graves of\n" + .string "countless POKéMON.\n" + .string "Many people visit it daily to pay\n" + .string "their respects to the fallen.$" + +gUnknown_84192E2:: @ 84192E2 + @ Cerulean Cave + .string "A mysterious cave that is filled\n" + .string "with terribly tough POKéMON.\n" + .string "It is so dangerous, the POKéMON\n" + .string "LEAGUE is in charge of it.$" + +gUnknown_841935B:: @ 841935B + @ Power Plant + .string "A power plant that was abandoned\n" + .string "years ago, though some of the\n" + .string "machines still work. It is infested\n" + .string "with electric POKéMON.$" + +gUnknown_84193D5:: @ 84193D5 + @ Mt. Ember + .string "Supposedly an inactive volcano.\n" + .string "However, there are persistent\n" + .string "reports that the peak blazes\n" + .string "with fire at night.$" + +gUnknown_8419444:: @ 8419444 + @ Berry Forest + .string "A forest on a small islet off the\n" + .string "coast of THREE ISLAND. BERRIES\n" + .string "grow wildly in profusion, quickly\n" + .string "replenishing those that fall off.$" + +gUnknown_84194C9:: @ 84194C9 + @ Icefall Cave + .string "A cave which is covered by water\n" + .string "and ice on FOUR ISLAND.\n" + .string "It seems like the end of the cave\n" + .string "is connected to the ocean.$" + +gUnknown_841953F:: @ 841953F + @ Lost Cave + .string "A bewildering cave off the coast\n" + .string "of RESORT GORGEOUS.\n" + .string "Some curious thrill seekers have\n" + .string "never emerged from it.$" + +gUnknown_84195AC:: @ 84195AC + @ Tanoby Ruins + .string "An ancient ruin that is rumored to\n" + .string "be home to a peculiar POKéMON.\n" + .string "However, so far, the POKéMON\n" + .string "remains an unconfirmed rumor.$" + +gUnknown_8419629:: @ 8419629 + @ Altering Cave + .string "This island has been known by this\n" + .string "name since the distant past.\n" + .string "No one today knows where it got\n" + .string "this name, however.$" + +gUnknown_841969D:: @ 841969D + @ Pattern Bush + .string "A lush and bush-like area. \n" + .string "In it are patterns where no grass\n" + .string "grows. Some study it in the belief\n" + .string "that a secret is concealed.$" + +gUnknown_841971A:: @ 841971A + @ Dotted Hole + .string "A mysterious, just-discovered\n" + .string "ruin from an ancient time.\n" + .string "It got its name from the six dots\n" + .string "on its door.$" + +gUnknown_8419782:: @ 8419782 + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Met in a trade.$" + +gUnknown_841979D:: @ 841979D + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Met in a trade.$" + +gUnknown_84197B8:: @ 84197B8 + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Met in a fateful encounter when\n" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" + +gUnknown_84197ED:: @ 84197ED + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Met in a fateful encounter when\n" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" + +gUnknown_8419822:: @ 8419822 + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Met in {UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" + +gUnknown_8419841:: @ 8419841 + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Met in {UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" + +gUnknown_8419860:: @ 8419860 + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Apparently met in {UNKNOWN_F7 0x02}\n" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" + +gUnknown_841988A:: @ 841988A + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Apparently met in {UNKNOWN_F7 0x02}\n" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" + +gUnknown_84198B4:: @ 84198B4 + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Hatched: {UNKNOWN_F7 0x02}\n" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" + +gUnknown_84198D5:: @ 84198D5 + .string "{UNKNOWN_F7 0x00} nature.\n" + .string "Hatched: {UNKNOWN_F7 0x02}\n" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" + +@ TODO: Replace this gibberish with the proper Hiragana +gUnknown_84198F6:: @ 84198F6 + .string "{UNKNOWN_F7 0x00}ßÓÁÉË {EXTRA_LV}{UNKNOWN_F7 0x01}çÑÊ\n" + .string "{UNKNOWN_F7 0x02}で ÉÇっŒ ùÂだ$" + +gUnknown_8419913:: @ 8419913 + .string "{UNKNOWN_F7 0x00}ÓÁÉË {EXTRA_LV}{UNKNOWN_F7 0x01}çÑÊ\n" + .string "{UNKNOWN_F7 0x02}で ÉÇっŒ ùÂだ$" + +gUnknown_841992F:: @ 841992F + .string "{UNKNOWN_F7 0x00} nature. Met in a fateful\n" + .string "encounter (hatched: {UNKNOWN_F7 0x02}\n" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}).$" + +gUnknown_841996D:: @ 841996D + .string "{UNKNOWN_F7 0x00} nature. Met in a fateful\n" + .string "encounter (hatched: {UNKNOWN_F7 0x02}\n" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}).$" + +gUnknown_84199AB:: @ 84199AB + .string "{UNKNOWN_F7 0x00} nature. Apparently met in\n" + .string "a fateful encounter (hatched:\n" + .string "{UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}).$" + +gUnknown_84199F4:: @ 84199F4 + .incbin "baserom.gba", 0x4199F4, 0x217 + +gUnknown_8419C0B:: @ 8419C0B + .incbin "baserom.gba", 0x419C0B, 0x8 + +gUnknown_8419C13:: @ 8419C13 + .incbin "baserom.gba", 0x419C13, 0xA + +gUnknown_8419C1D:: @ 8419C1D + .incbin "baserom.gba", 0x419C1D, 0xD + +gUnknown_8419C2A:: @ 8419C2A + .incbin "baserom.gba", 0x419C2A, 0xF + +gUnknown_8419C39:: @ 8419C39 + .incbin "baserom.gba", 0x419C39, 0xC + +gUnknown_8419C45:: @ 8419C45 + .incbin "baserom.gba", 0x419C45, 0x8 + +gUnknown_8419C4D:: @ 8419C4D + .incbin "baserom.gba", 0x419C4D, 0xC + +gUnknown_8419C59:: @ 8419C59 + .incbin "baserom.gba", 0x419C59, 0x9 + +gUnknown_8419C62:: @ 8419C62 + .incbin "baserom.gba", 0x419C62, 0x10 + +gUnknown_8419C72:: @ 8419C72 + .incbin "baserom.gba", 0x419C72, 0x9 + +gUnknown_8419C7B:: @ 8419C7B + .incbin "baserom.gba", 0x419C7B, 0x7 + +gUnknown_8419C82:: @ 8419C82 + .incbin "baserom.gba", 0x419C82, 0x10 + +gUnknown_8419C92:: @ 8419C92 + .incbin "baserom.gba", 0x419C92, 0x10 + +gUnknown_8419CA2:: @ 8419CA2 + .incbin "baserom.gba", 0x419CA2, 0x7 + +gUnknown_8419CA9:: @ 8419CA9 + .incbin "baserom.gba", 0x419CA9, 0x10 + +gUnknown_8419CB9:: @ 8419CB9 + .incbin "baserom.gba", 0x419CB9, 0x21 + +gUnknown_8419CDA:: @ 8419CDA + .incbin "baserom.gba", 0x419CDA, 0x7 + +gUnknown_8419CE1:: @ 8419CE1 + .incbin "baserom.gba", 0x419CE1, 0x6 + +gUnknown_8419CE7:: @ 8419CE7 + .incbin "baserom.gba", 0x419CE7, 0x6 + +gUnknown_8419CED:: @ 8419CED + .incbin "baserom.gba", 0x419CED, 0x2 + +gUnknown_8419CEF:: @ 8419CEF + .incbin "baserom.gba", 0x419CEF, 0x8 + +gUnknown_8419CF7:: @ 8419CF7 + .incbin "baserom.gba", 0x419CF7, 0x1 + +gUnknown_8419CF8:: @ 8419CF8 + .incbin "baserom.gba", 0x419CF8, 0x5 + +gUnknown_8419CFD:: @ 8419CFD + .incbin "baserom.gba", 0x419CFD, 0xD + +gUnknown_8419D0A:: @ 8419D0A + .incbin "baserom.gba", 0x419D0A, 0x10 + +gUnknown_8419D1A:: @ 8419D1A + .incbin "baserom.gba", 0x419D1A, 0x35 + +gUnknown_8419D4F:: @ 8419D4F + .incbin "baserom.gba", 0x419D4F, 0x8 + +gUnknown_8419D57:: @ 8419D57 + .incbin "baserom.gba", 0x419D57, 0xF + +gUnknown_8419D66:: @ 8419D66 + .incbin "baserom.gba", 0x419D66, 0x17 + +gUnknown_8419D7D:: @ 8419D7D + .incbin "baserom.gba", 0x419D7D, 0xC + +gUnknown_8419D89:: @ 8419D89 + .incbin "baserom.gba", 0x419D89, 0x43 + +gUnknown_8419DCC:: @ 8419DCC + .incbin "baserom.gba", 0x419DCC, 0x86 + +gUnknown_8419E52:: @ 8419E52 + .incbin "baserom.gba", 0x419E52, 0x5 + +gUnknown_8419E57:: @ 8419E57 + .incbin "baserom.gba", 0x419E57, 0xFD + +gUnknown_8419F54:: @ 8419F54 + .string "SAVING…\n" + .string "DON'T TURN OFF THE POWER.$" + +// Start menu option descriptions +gUnknown_8419F76:: @ 8419F76 // Pokedex + .string "A device that records POKéMON secrets\n" + .string "upon meeting or catching them.$" + +gUnknown_8419FBB:: @ 8419FBB // Pokemon + .string "Check and organize POKéMON that are\n" + .string "traveling with you in your party.$" + +gUnknown_841A001:: @ 841A001 // Bag + .string "Equipped with pockets for storing items\n" + .string "you bought, received, or found.$" + +gUnknown_841A049:: @ 841A049 // {PLAYER} + .string "Check your money and other game data.$" + +gUnknown_841A06F:: @ 841A06F // Save + .string "Save your game with a complete record\n" + .string "of your progress to take a break.$" + +gUnknown_841A0B7:: @ 841A0B7 // Options + .string "Adjust various game settings such as text\n" + .string "speed, game rules, etc.$" + +gUnknown_841A0F9:: @ 841A0F9 // Quit + .string "Close this MENU window.$" + +gUnknown_841A111:: @ 841A111 // Retire + .string "Retire from the SAFARI GAME and return to\n" + .string "the registration counter.$" + + .include "data/text/quest_log.inc" + +gUnknown_841B285:: @ 841B285 + .incbin "baserom.gba", 0x41B285, 0xE + +gUnknown_841B293:: @ 841B293 + .incbin "baserom.gba", 0x41B293, 0x2 + +gUnknown_841B295:: @ 841B295 + .incbin "baserom.gba", 0x41B295, 0x12 + +gUnknown_841B2A7:: @ 841B2A7 + .incbin "baserom.gba", 0x41B2A7, 0x35 + +gUnknown_841B2DC:: @ 841B2DC + .incbin "baserom.gba", 0x41B2DC, 0x9 + +gUnknown_841B2E5:: @ 841B2E5 + .incbin "baserom.gba", 0x41B2E5, 0x8 + +gUnknown_841B2ED:: @ 841B2ED + .incbin "baserom.gba", 0x41B2ED, 0x4 + +gUnknown_841B2F1:: @ 841B2F1 + .incbin "baserom.gba", 0x41B2F1, 0x15 + +gUnknown_841B306:: @ 841B306 + .incbin "baserom.gba", 0x41B306, 0xF + +gUnknown_841B315:: @ 841B315 + .incbin "baserom.gba", 0x41B315, 0x6 + +gUnknown_841B31B:: @ 841B31B + .incbin "baserom.gba", 0x41B31B, 0xE + +gUnknown_841B329:: @ 841B329 + .incbin "baserom.gba", 0x41B329, 0x5 + +gUnknown_841B32E:: @ 841B32E + .incbin "baserom.gba", 0x41B32E, 0x7C + +gUnknown_841B3AA:: @ 841B3AA + .incbin "baserom.gba", 0x41B3AA, 0x14 + +gUnknown_841B3BE:: @ 841B3BE + .incbin "baserom.gba", 0x41B3BE, 0x152 + +gUnknown_841B510:: @ 841B510 + .incbin "baserom.gba", 0x41B510, 0x6 + +gUnknown_841B516:: @ 841B516 + .incbin "baserom.gba", 0x41B516, 0x8 + +gUnknown_841B51E:: @ 841B51E + .incbin "baserom.gba", 0x41B51E, 0x6 + +gUnknown_841B524:: @ 841B524 + .incbin "baserom.gba", 0x41B524, 0x7 + +gUnknown_841B52B:: @ 841B52B + .incbin "baserom.gba", 0x41B52B, 0x6 + +gUnknown_841B531:: @ 841B531 + .incbin "baserom.gba", 0x41B531, 0x4 + +gUnknown_841B535:: @ 841B535 + .incbin "baserom.gba", 0x41B535, 0x6 + +gUnknown_841B53B:: @ 841B53B + .incbin "baserom.gba", 0x41B53B, 0x6 + +gUnknown_841B541:: @ 841B541 + .incbin "baserom.gba", 0x41B541, 0xA + +gUnknown_841B54B:: @ 841B54B + .incbin "baserom.gba", 0x41B54B, 0x9 + +gUnknown_841B554:: @ 841B554 + .incbin "baserom.gba", 0x41B554, 0x62 + +gUnknown_841B5B6:: @ 841B5B6 + .incbin "baserom.gba", 0x41B5B6, 0x58 + +gUnknown_841B60E:: @ 841B60E + .incbin "baserom.gba", 0x41B60E, 0xB + +gUnknown_841B619:: @ 841B619 + .incbin "baserom.gba", 0x41B619, 0x6B + +gUnknown_841B684:: @ 841B684 + .incbin "baserom.gba", 0x41B684, 0xB + +gUnknown_841B68F:: @ 841B68F + .incbin "baserom.gba", 0x41B68F, 0x9 + +gUnknown_841B698:: @ 841B698 + .incbin "baserom.gba", 0x41B698, 0x6 + +gUnknown_841B69E:: @ 841B69E + .incbin "baserom.gba", 0x41B69E, 0x1B + +gUnknown_841B6B9:: @ 841B6B9 + .incbin "baserom.gba", 0x41B6B9, 0x1C + +gUnknown_841B6D5:: @ 841B6D5 + .incbin "baserom.gba", 0x41B6D5, 0x7 + +gUnknown_841B6DC:: @ 841B6DC + .incbin "baserom.gba", 0x41B6DC, 0x7 + +gUnknown_841B6E3:: @ 841B6E3 + .incbin "baserom.gba", 0x41B6E3, 0x8 + +gUnknown_841B6EB:: @ 841B6EB + .incbin "baserom.gba", 0x41B6EB, 0x1 + +gUnknown_841B6EC:: @ 841B6EC + .incbin "baserom.gba", 0x41B6EC, 0x7 + +gUnknown_841B6F3:: @ 841B6F3 + .incbin "baserom.gba", 0x41B6F3, 0xA + +gText_HatchedFromEgg:: @ 841B6FD + .incbin "baserom.gba", 0x41B6FD, 0x19 + +gText_NickHatchPrompt:: @ 841B716 + .incbin "baserom.gba", 0x41B716, 0x31 + +gUnknown_841B747:: @ 841B747 + .incbin "baserom.gba", 0x41B747, 0x24 + +gUnknown_841B76B:: @ 841B76B + .incbin "baserom.gba", 0x41B76B, 0xE + +gUnknown_841B779:: @ 841B779 + .incbin "baserom.gba", 0x41B779, 0x2B + + .include "data/text/teachy_tv.inc" + +gString_Bill:: @ 841CB3C + .string "BILL$" + +gString_Someone:: @ 841CB41 + .string "SOMEONE$" + +gString_Help:: @ 841CB49 + .string "HELP$" + +gString_HelpSystem_ClearTo8:: @ 841CB4E + .string "{CLEAR_TO 8}$" + +gUnknown_841CB52:: @ 841CB52 + .string " points$" + +gUnknown_841CB5A:: @ 841CB5A + .string " time(s)$" + +gUnknown_841CB63:: @ 841CB63 + .string "POKéMON JUMP RECORDS$" + + .string "Jumps in a row:$" + + .string "Best score:$" + + .string "EXCELLENTS in a row:$" + +gUnknown_841CBA9:: @ 841CBA9 + .string "Awesome score! You've\n" + .string "won {UNKNOWN_F7 01} {UNKNOWN_F7 00}!$" + +gUnknown_841CBCA:: @ 841CBCA + .string "There's no room left now.$" + +gUnknown_841CBE4:: @ 841CBE4 + .string "You can't hold any more!$" + +gUnknown_841CBFD:: @ 841CBFD + .string "Want to play again?$" + +gUnknown_841CC11:: @ 841CC11 + .string "Somebody dropped out.\n" + .string "The link will be canceled.$" + +gUnknown_841CC42:: @ 841CC42 + .string "SAVING…\n" + .string "DON'T TURN OFF THE POWER.$" + +gUnknown_841CC64:: @ 841CC64 + .string "Communication standby…$" + + .string "SAVING...\n" + .string "DON'T TURN OFF THE POWER.$" + + .string "DODRIO BERRY-PICKING RECORDS$" + + .string "BERRIES picked:$" + + .string "Best score:$" + + .string "BERRIES picked in a row with\n" + .string "five players:$" + +gUnknown_841CD03:: @ 841CD03 + .string "Announcing BERRY-PICKING results!$" + +gUnknown_841CD25:: @ 841CD25 + .string "10P 30P 50P {EXTRA 0xDD}50P$" + +gUnknown_841CD43:: @ 841CD43 + .string "Announcing rankings!$" + +gUnknown_841CD58:: @ 841CD58 + .string "Announcing prizes!$" + + .string "1:$" + + .string "2:$" + + .string "3:$" + + .string "4:$" + + .string "5:$" + +gUnknown_841CD7A:: @ 841CD7A + .string "The first-place winner gets\n" + .string "this {UNKNOWN_F7 00}!$" + +gUnknown_841CD9F:: @ 841CD9F + .string "You can't hold any more...$" + +gUnknown_841CDBA:: @ 841CDBA + .string "It filled its storage space.$" + +gUnknown_841CDD7:: @ 841CDD7 + .string "Want to play again?$" + +gUnknown_841CDEB:: @ 841CDEB + .string "Somebody dropped out.\n" + .string "The link will be canceled.$" + +gUnknown_841CE1C:: @ 841CE1C + .string " points$" + +gUnknown_841CE24:: @ 841CE24 + .string "Communication standby…$" + + .string " Are you ready to BERRY-CRUSH?\n" + .string "Please pick a BERRY for use.\p" + .string "$" + + .string "Please wait while each member\n" + .string "chooses a BERRY.$" + + .string " {PAUSE_MUSIC}{PLAY_BGM MUS_FANFA1}You ended up with {STR_VAR_1} units of\n" + .string "silky-smooth BERRY POWDER.{RESUME_MUSIC}\p" + .string "Your total amount of BERRY POWDER\n" + .string "is {STR_VAR_2}.\p" + .string "$" + + .string " Recording your game results in the\n" + .string "save file.\n" + .string "Please wait.$" + + .string " Want to play BERRY CRUSH again?$" + + .string "You have no BERRIES.\n" + .string "The game will be canceled.$" + + .string "A member dropped out.\n" + .string "The game will be canceled.$" + + .string " Time's up.\p" + .string "Good BERRY POWDER could not be\n" + .string "made…\p" + .string "$" + + .string " Communication standby…$" + + .align 2 +gUnknown_841D020:: @ 841D020 + .incbin "baserom.gba", 0x41D020, 0xC + +gUnknown_841D02C:: @ 841D02C + .incbin "baserom.gba", 0x41D02C, 0x24 + +gUnknown_841D050:: @ 841D050 + .incbin "baserom.gba", 0x41D050, 0x8 + +gUnknown_841D058:: @ 841D058 + .incbin "baserom.gba", 0x41D058, 0x10 + +gUnknown_841D068:: @ 841D068 + .incbin "baserom.gba", 0x41D068, 0xC + +gUnknown_841D074:: @ 841D074 + .incbin "baserom.gba", 0x41D074, 0x4 + +gUnknown_841D078:: @ 841D078 + .incbin "baserom.gba", 0x41D078, 0x8 + +gUnknown_841D080:: @ 841D080 + .incbin "baserom.gba", 0x41D080, 0x8 + +gUnknown_841D088:: @ 841D088 + .incbin "baserom.gba", 0x41D088, 0x8 + +gUnknown_841D090:: @ 841D090 + .incbin "baserom.gba", 0x41D090, 0x8 + +gUnknown_841D098:: @ 841D098 + .incbin "baserom.gba", 0x41D098, 0xC + +gUnknown_841D0A4:: @ 841D0A4 + .incbin "baserom.gba", 0x41D0A4, 0x4 + +gUnknown_841D0A8:: @ 841D0A8 + .incbin "baserom.gba", 0x41D0A8, 0x18 + +gUnknown_841D0C0:: @ 841D0C0 + .incbin "baserom.gba", 0x41D0C0, 0x58 + +gUnknown_841D118:: @ 841D118 + .incbin "baserom.gba", 0x41D118, 0xC + +gUnknown_841D124:: @ 841D124 + .incbin "baserom.gba", 0x41D124, 0x18 + +gUnknown_841D13C:: @ 841D13C + .incbin "baserom.gba", 0x41D13C, 0xC + +gUnknown_841D148:: @ 841D148 + .incbin "baserom.gba", 0x41D148, 0x6 + +gUnknown_841D14E:: @ 841D14E + .incbin "baserom.gba", 0x41D14E, 0x1B + +gUnknown_841D169:: @ 841D169 + .incbin "baserom.gba", 0x41D169, 0x15 + +gUnknown_841D17E:: @ 841D17E + .incbin "baserom.gba", 0x41D17E, 0xF + +gUnknown_841D18D:: @ 841D18D + .incbin "baserom.gba", 0x41D18D, 0xB + +gUnknown_841D198:: @ 841D198 + .incbin "baserom.gba", 0x41D198, 0xCB8 + +gJPText_MysteryGift:: @ 841DE50 + .string "$" + +gJPText_DecideStop:: @ 841DE51 + .string "$" + +gUnknown_841DE52:: @ 841DE52 + .string "$" + +gUnknown_841DE53:: @ 841DE53 + .string "$" + +gUnknown_841DE54:: @ 841DE54 + .string "$" + +gUnknown_841DE55:: @ 841DE55 + .incbin "baserom.gba", 0x41DE55, 0x27 @ japanese + +gUnknown_841DE7C:: @ 841DE7C + .string "$" + +gUnknown_841DE7D:: @ 841DE7D + .string "$" + +gUnknown_841DE7E:: @ 841DE7E + .incbin "baserom.gba", 0x0041de7e, 0x17 @ japanese + +gUnknown_841DE95:: @ 841DE95 + .string "$" + +gUnknown_841DE96:: @ 841DE96 + .string "$" + +gUnknown_841DE97:: @ 841DE97 + .string "$" + +gUnknown_841DE98:: @ 841DE98 + .string "$" + +gUnknown_841DE99:: @ 841DE99 + .string "$" + +gUnknown_841DE9A:: @ 841DE9A + .string "$" + +gUnknown_841DE9B:: @ 841DE9B + .string "$" + +gUnknown_841DE9C:: @ 841DE9C + .string "$" + +gUnknown_841DE9D:: @ 841DE9D + .string "Communication error…\n" + .string "Please check all connections,\n" + .string "then turn the power OFF and ON.$" + +gUnknown_841DEF0:: @ 841DEF0 + .string "Communication error…$" + +gUnknown_841DF05:: @ 841DF05 + .string "Move closer to your link partner(s).\n" + .string "Avoid obstacles between partners.$" + +gUnknown_841DF4C:: @ 841DF4C + .string "A Button: Registration Counter$" + +gUnknown_841DF6B:: @ 841DF6B + .string "A Button: Title Screen$" + +gUnknown_841DF82:: @ 841DF82 + .string "{STR_VAR_1}P LINK$" + +gUnknown_841DF8B:: @ 841DF8B + .string "BRONZE$" + +gUnknown_841DF92:: @ 841DF92 + .string "COPPER$" + +gUnknown_841DF99:: @ 841DF99 + .string "SILVER$" + +gUnknown_841DFA0:: @ 841DFA0 + .string "GOLD$" + +gUnknown_841DFA5:: @ 841DFA5 + .string "{KEYGFX_A_BUTTON}NEXT$" + +gUnknown_841DFAC:: @ 841DFAC + .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}OK {KEYGFX_B_BUTTON}END$" + +gUnknown_841DFBE:: @ 841DFBE + .string "{KEYGFX_A_BUTTON}{KEYGFX_B_BUTTON}CANCEL$" + +gUnknown_841DFC9:: @ 841DFC9 + .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}OK {KEYGFX_B_BUTTON}CANCEL$" + + @ easy chat categories + .string "POKéMON$" + + .string "TRAINER$" + + .string "STATUS$" + + .string "BATTLE$" + + .string "GREETINGS$" + + .string "PEOPLE$" + + .string "VOICES$" + + .string "SPEECH$" + + .string "ENDINGS$" + + .string "FEELINGS$" + + .string "CONDITIONS$" + + .string "ACTIONS$" + + .string "LIFESTYLE$" + + .string "HOBBIES$" + + .string "TIME$" + + .string "MISC.$" + + .string "ADJECTIVES$" + + .string "EVENTS$" + + .string "MOVE 1$" + + .string "MOVE 2$" + + .string "TRENDY SAYING$" + + .string "POKéMON2$" + + @ trade-related +gUnknown_841E093:: @ 841E093 + .string "???$" + + .string "$" + + .string "Lv$" + + .string "---$" + +gUnknown_841E09F:: @ 841E09F + .string "????$" + + .string "$" + +gUnknown_841E0A5:: @ 841E0A5 + .string "Is this trade okay?$" + + .string "CANCEL$" + + .string "Choose a POKéMON.$" + + .string "SUMMARY$" + + .string "TRADE$" + + .string "Cancel trade?$" + + .string "Press the B Button to exit.$" + + .string "SUMMARY$" + + .string "TRADE$" + + .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}Communication standby…\n" + .string "Please wait.$" + + .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}The trade has been canceled.$" + + .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}That's your only POKéMON\n" + .string "for battle.$" + + .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}Waiting for your friend\n" + .string "to finish…$" + + .string "Your friend wants\n" + .string "to trade POKéMON.$" + +gUnknown_841E1E9:: @ 841E1E9 + .string "{STR_VAR_2} will be\n" + .string "sent to {STR_VAR_1}.$" + +gUnknown_841E200:: @ 841E200 + .string "Bye-bye, {STR_VAR_2}!$" + +gUnknown_841E20D:: @ 841E20D + .string "{STR_VAR_1} sent over {STR_VAR_3}.$" + +gUnknown_841E21E:: @ 841E21E + .string "Take good care of {STR_VAR_3}!$" + +gUnknown_841E234:: @ 841E234 + .string "From $" + +gUnknown_841E23A:: @ 841E23A + .string "$" + +gUnknown_841E23B:: @ 841E23B + .string "$" + +gUnknown_841E23C:: @ 841E23C + .string "$" + +gUnknown_841E23D:: @ 841E23D + .string "$" + +gUnknown_841E23E:: @ 841E23E + .string "$" + +gUnknown_841E23F:: @ 841E23F + .string "$" + +gUnknown_841E240:: @ 841E240 + .string "$" + +gUnknown_841E241:: @ 841E241 + .string "$" + +gUnknown_841E242:: @ 841E242 + .string "$" + +gUnknown_841E243:: @ 841E243 + .string "$" + +gUnknown_841E244:: @ 841E244 + .string "$" + +gUnknown_841E245:: @ 841E245 + .string "Wireless Communication Status$" + +gUnknown_841E263:: @ 841E263 + .string "People trading:$" + +gUnknown_841E273:: @ 841E273 + .string "People battling:$" + +gUnknown_841E284:: @ 841E284 + .string "People in the UNION ROOM:$" + +gUnknown_841E29E:: @ 841E29E + .string "People communicating:$" + +gUnknown_841E2B4:: @ 841E2B4 + .string "{UNKNOWN_F7 0x00} players$" + +gUnknown_841E2BF:: @ 841E2BF + .string "{UNKNOWN_F7 0x01} player$" + +gUnknown_841E2C9:: @ 841E2C9 + .string "{UNKNOWN_F7 0x02} players$" + +gUnknown_841E2D4:: @ 841E2D4 + .string "{UNKNOWN_F7 0x03} players$" + +gUnknown_841E2DF:: @ 841E2DF + .incbin "baserom.gba", 0x41e2df, 0xd + +gUnknown_841E2EC:: @ 841E2EC + .incbin "baserom.gba", 0x41e2ec, 0x9 + +gUnknown_841E2F5:: @ 841E2F5 + .incbin "baserom.gba", 0x41e2f5, 0x2d + +gUnknown_841E322:: @ 841E322 + .string "{EXTRA_ID}$" + +gUnknown_841E325:: @ 841E325 + .string "Communication standby…$" + +gDaycareText_GetAlongVeryWell:: @ 841E33C + .string "The two seem to get along\n" + .string "very well.$" + +gDaycareText_GetAlong:: @ 841E361 + .string "The two seem to get along.$" + +gDaycareText_DontLikeOther:: @ 841E37C + .string "The two don't seem to like\n" + .string "each other much.$" + +gDaycareText_PlayOther:: @ 841E3A8 + .string "The two prefer to play with other\n" + .string "POKéMON than each other.$" + +gUnknown_841E3E3:: @ 841E3E3 + .incbin "baserom.gba", 0x41E3E3, 0x18 + +gUnknown_841E3FB:: @ 841E3FB + .incbin "baserom.gba", 0x41E3FB, 0xA + +gUnknown_841E405:: @ 841E405 + .incbin "baserom.gba", 0x41E405, 0xF + +gUnknown_841E414:: @ 841E414 + .incbin "baserom.gba", 0x41E414, 0x6D + +gUnknown_841E481:: @ 841E481 + .incbin "baserom.gba", 0x41E481, 0x12 + +gUnknown_841E493:: @ 841E493 + .incbin "baserom.gba", 0x41E493, 0x2D + +gUnknown_841E4C0:: @ 841E4C0 + .incbin "baserom.gba", 0x41E4C0, 0x22 + +gUnknown_841E4E2:: @ 841E4E2 + .incbin "baserom.gba", 0x41E4E2, 0x2A + +gUnknown_841E50C:: @ 841E50C + .incbin "baserom.gba", 0x41E50C, 0x2C + +gUnknown_841E538:: @ 841E538 + .incbin "baserom.gba", 0x41E538, 0x3A + +gUnknown_841E572:: @ 841E572 + .incbin "baserom.gba", 0x41E572, 0x1B + +gUnknown_841E58D:: @ 841E58D + .incbin "baserom.gba", 0x41E58D, 0x17 + +gFameCheckerText_MainScreenUI:: @ 841E5A4 + .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" + +gFameCheckerText_PickScreenUI:: @ 841E5B9 + .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" + +gFameCheckerText_FlavorTextUI:: @ 841E5D2 + .string "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$" + +gFameCheckerOakName:: @ 841E5E9 + .string "OAK$" + +gFameCheckerDaisyName:: @ 841E5ED + .string "DAISY$" + +gFameCheckerBillName:: @ 841E5F3 + .string "BILL$" + +gFameCheckerMrFujiName:: @ 841E5F8 + .string "FUJI$" + +gText_VarietyOfEventsImportedWireless:: @ 841E5FD + .string "A variety of events will be imported\n" + .string "over Wireless Communication.$" + +gText_WonderCardsInPossession:: @ 841E63F + .string "Read the WONDER CARDS in your\n" + .string "possession.$" + +gText_ReadNewsThatArrived:: @ 841E669 + .string "Read the NEWS that arrived.$" + +gText_ReturnToTitle:: @ 841E685 + .string "Return to the title screen.$" + +gText_DontHaveCardNewOneInput:: @ 841E6A1 + .string "You don't have a WONDER CARD,\n" + .string "so a new CARD will be input.$" + +gText_DontHaveNewsNewOneInput:: @ 841E6DC + .string "You don't have any WONDER NEWS,\n" + .string "so new NEWS will be input.$" + +gText_WhereShouldCardBeAccessed:: @ 841E717 + .string "Where should the WONDER CARD\n" + .string "be accessed?$" + +gText_WhereShouldNewsBeAccessed:: @ 841E741 + .string "Where should the WONDER NEWS\n" + .string "be accessed?$" + +gUnknown_841E76B:: @ 841E76B + .string "Link standby...\n" + .string "... ... B Button: Cancel$" + +gText_Communicating:: @ 841E794 + .string "Communicating…$" + +gText_CommunicationCompleted:: @ 841E7A3 + .string "Communication completed.$" + +gText_CommunicationError:: @ 841E7BC + .string "Communication error.$" + +gText_CommunicationCanceled:: @ 841E7D1 + .string "Communication has been canceled.$" + +gText_ThrowAwayWonderCard:: @ 841E7F2 + .string "Throw away the WONDER CARD\n" + .string "and input a new CARD?$" + +gText_HaventReceivedCardsGift:: @ 841E823 + .string "You haven't received the CARD's gift\n" + .string "yet. Input a new CARD anyway?$" + +gText_WonderCardReceivedFrom:: @ 841E866 + .string "A WONDER CARD has been received\n" + .string "from {STR_VAR_1}.$" + +gText_WonderNewsReceivedFrom:: @ 841E88F + .string "A WONDER NEWS item has been\n" + .string "received from {STR_VAR_1}.$" + +gText_WonderCardReceived:: @ 841E8BD + .string "A new WONDER CARD has been\n" + .string "received.$" + +gText_WonderNewsReceived:: @ 841E8E2 + .string "A new WONDER NEWS item has been\n" + .string "received.$" + +gText_NewStampReceived:: @ 841E90C + .string "A new STAMP has been received.$" + +gText_NewTrainerReceived:: @ 841E92B + .string "A new TRAINER has arrived.$" + +gText_AlreadyHadCard:: @ 841E946 + .string "You already had that\n" + .string "WONDER CARD.$" + +gText_AlreadyHadNews:: @ 841E968 + .string "You already had that\n" + .string "WONDER NEWS item.$" + +gText_AlreadyHadStamp:: @ 841E98F + .string "You already had that\n" + .string "STAMP.$" + +gText_NoMoreRoomForStamps:: @ 841E9AB + .string "There's no more room for adding\n" + .string "STAMPS.$" + +gText_RecordUploadedViaWireless:: @ 841E9D3 + .string "Your record has been uploaded via\n" + .string "WIRELESS COMMUNICATION.$" + +gText_CantAcceptCardFromTrainer:: @ 841EA0D + .string "You can't accept a WONDER CARD\n" + .string "from this TRAINER.$" + +gText_CantAcceptNewsFromTrainer:: @ 841EA3F + .string "You can't accept WONDER NEWS\n" + .string "from this TRAINER.$" + +gText_NothingSentOver:: @ 841EA6F + .string "Nothing was sent over…$" + +gText_WhatToDoWithCards:: @ 841EA86 + .string "What would you like to do\n" + .string "with the WONDER CARDS?$" + +gText_WhatToDoWithNews:: @ 841EAB7 + .string "What would you like to do\n" + .string "with the WONDER NEWS?$" + +gText_SendingWonderCard:: @ 841EAE7 + .string "Sending your WONDER CARD…$" + +gText_SendingWonderNews:: @ 841EB01 + .string "Sending your WONDER NEWS item…$" + +gText_WonderCardSentTo:: @ 841EB20 + .string "Your WONDER CARD has been sent\n" + .string "to {STR_VAR_1}.$" + +gText_WonderNewsSentTo:: @ 841EB46 + .string "Your WONDER NEWS item has been\n" + .string "sent to {STR_VAR_1}.$" + +gText_StampSentTo:: @ 841EB71 + .string "A STAMP has been sent to {STR_VAR_1}.$" + +gText_GiftSentTo:: @ 841EB8E + .string "A GIFT has been sent to {STR_VAR_1}.$" + +gText_OtherTrainerHasCard:: @ 841EBAA + .string "The other TRAINER has the same\n" + .string "WONDER CARD already.$" + +gText_OtherTrainerHasNews:: @ 841EBDE + .string "The other TRAINER has the same\n" + .string "WONDER NEWS already.$" + +gText_OtherTrainerHasStamp:: @ 841EC12 + .string "The other TRAINER has the same\n" + .string "STAMP already.$" + +gText_OtherTrainerCanceled:: @ 841EC40 + .string "The other TRAINER canceled\n" + .string "communication.$" + +gText_CantSendGiftToTrainer:: @ 841EC6A + .string "You can't send a MYSTERY GIFT to\n" + .string "this TRAINER.$" + +gText_IfThrowAwayCardEventWontHappen:: @ 841EC99 + .string "If you throw away the CARD,\n" + .string "its event won't happen. Okay?$" + +gText_OkayToDiscardNews:: @ 841ECD3 + .string "Is it okay to discard this\n" + .string "NEWS item?$" + +gText_HaventReceivedGiftOkayToDiscard:: @ 841ECF9 + .string "You haven't received the\n" + .string "GIFT. Is it okay to discard?$" + +gText_DataWillBeSaved:: @ 841ED2F + .string "Data will be saved.\n" + .string "Please wait.$" + +gText_SaveCompletedPressA:: @ 841ED50 + .string "Save completed.\n" + .string "Please press the A Button.$" + +gText_WonderCardThrownAway:: @ 841ED7B + .string "The WONDER CARD was thrown away.$" + +gText_WonderNewsThrownAway:: @ 841ED9C + .string "The WONDER NEWS was thrown away.$" + +gText_MysteryGift:: @ 841EDBD + .string "MYSTERY GIFT$" + +gText_PickOKCancel:: @ 841EDCA + .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}OK {KEYGFX_B_BUTTON}EXIT$" + +gText_WonderCards:: + .string "WONDER CARDS$" + +gText_WonderNews:: + .string "WONDER NEWS$" + +gText_WirelessCommunication:: + .string "WIRELESS COMMUNICATION$" + +gText_Friend2:: + .string "FRIEND$" + +gText_Exit3:: + .string "EXIT$" + +gText_Receive:: + .string "RECEIVE$" + +gText_Send:: + .string "SEND$" + +gText_Toss:: + .string "TOSS$" + +gUnknown_841EE2B:: @ 841EE2B + .incbin "baserom.gba", 0x41EE2B, 0x17 diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc index d73c05dbd..8da7dded8 100644 --- a/data/text/fame_checker.inc +++ b/data/text/fame_checker.inc @@ -11,7 +11,7 @@ gFameCheckerFlavorText_ProfOak1:: @ 0x81AD145 gFameCheckerFlavorText_ProfOak2:: @ 0x81AD1BB .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}PROF. OAK may not look like much,\n" - .string "but he’s the authority on POKéMON.\p" + .string "but he's the authority on POKéMON.\p" .string "Many POKéMON TRAINERS hold him in\n" .string "high regard.$" @@ -22,19 +22,19 @@ gFameCheckerFlavorText_ProfOak3:: @ 0x81AD258 gFameCheckerFlavorText_ProfOak4:: @ 0x81AD2B9 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" - .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I hear OAK’s taken a lot of\n" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I hear OAK's taken a lot of\n" .string "interest in you, child.\p" .string "That old duff was once tough and\n" .string "handsome.\p" .string "But that was decades ago.\n" - .string "He’s a shadow of his former self.$" + .string "He's a shadow of his former self.$" gFameCheckerFlavorText_ProfOak5:: @ 0x81AD377 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}PROF. OAK is going to have his own\n" .string "radio show soon.\p" .string "The program will be called PROF.\n" - .string "OAK’S POKéMON SEMINAR.$" + .string "OAK'S POKéMON SEMINAR.$" gFameCheckerFlavorText_Daisy0:: @ 0x81AD40C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" @@ -52,7 +52,7 @@ gFameCheckerFlavorText_Daisy2:: @ 0x81AD516 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}She was gently grooming POKéMON…\n" .string "She was a little angel.\p" - .string "That little girl’s name…\n" + .string "That little girl's name…\n" .string "I think it was DAISY.$" gFameCheckerFlavorText_Daisy3:: @ 0x81AD5A7 @@ -68,8 +68,8 @@ gFameCheckerFlavorText_Daisy4:: @ 0x81AD608 .string "to buy some TEA.$" gFameCheckerFlavorText_Daisy5:: @ 0x81AD69F - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" - .string "{COLOR RED}{SHADOW GREEN}The Spring POKéMON CONTEST’s\n" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" + .string "{COLOR RED}{SHADOW GREEN}The Spring POKéMON CONTEST's\n" .string "Grand Champion is DAISY OAK of\l" .string "PALLET TOWN!$" @@ -85,28 +85,28 @@ gFameCheckerFlavorText_Brock1:: @ 0x81AD771 .string "in even my POKéMON.\p" .string "My POKéMON are all rock hard and\n" .string "have true-grit determination.\p" - .string "That’s right - my POKéMON are all\n" + .string "That's right - my POKéMON are all\n" .string "the ROCK type!$" gFameCheckerFlavorText_Brock2:: @ 0x81AD840 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}There aren’t many serious POKéMON\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}There aren't many serious POKéMON\n" .string "TRAINERS here.\p" - .string "They’re all like BUG CATCHERS,\n" + .string "They're all like BUG CATCHERS,\n" .string "you know, just hobbyists.\p" - .string "But PEWTER GYM’s BROCK isn’t like\n" + .string "But PEWTER GYM's BROCK isn't like\n" .string "that, not one bit.$" gFameCheckerFlavorText_Brock3:: @ 0x81AD908 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BROCK is cool. He’s not just tough.\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BROCK is cool. He's not just tough.\n" .string "People like and respect him.\p" .string "I want to become a GYM LEADER\n" .string "like him.$" gFameCheckerFlavorText_Brock4:: @ 0x81AD99A .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hi, I’m excavating for fossils here\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hi, I'm excavating for fossils here\n" .string "under MT. MOON.\p" .string "Sometimes, BROCK of PEWTER GYM\n" .string "lends me a hand.$" @@ -129,25 +129,25 @@ gFameCheckerFlavorText_Misty1:: @ 0x81ADAF6 gFameCheckerFlavorText_Misty2:: @ 0x81ADB5A .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}MISTY is a TRAINER who’s going to\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}MISTY is a TRAINER who's going to\n" .string "keep improving.\p" - .string "She won’t lose to someone like you!$" + .string "She won't lose to someone like you!$" gFameCheckerFlavorText_Misty3:: @ 0x81ADBD9 - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Strong TRAINERS and WATER POKéMON\n" .string "are common sights in these parts.\p" .string "They say that MISTY of the\n" .string "CERULEAN GYM trains here.$" gFameCheckerFlavorText_Misty4:: @ 0x81ADC72 - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}This cape is a famous date spot.\p" .string "MISTY, the GYM LEADER, has high\n" .string "hopes about this place.$" gFameCheckerFlavorText_Misty5:: @ 0x81ADCEB - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}MISTY is said to worship LORELEI\n" .string "of the ELITE FOUR.$" @@ -180,7 +180,7 @@ gFameCheckerFlavorText_LtSurge4:: @ 0x81ADEEC .string "He set up double locks everywhere.$" gFameCheckerFlavorText_LtSurge5:: @ 0x81ADF6A - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}LT. SURGE is rumored to have been\n" .string "a pilot while home in America.\p" .string "He used the electricity generated\n" @@ -202,7 +202,7 @@ gFameCheckerFlavorText_Erika1:: @ 0x81AE072 gFameCheckerFlavorText_Erika2:: @ 0x81AE0F3 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}Our LEADER ERIKA might be quiet,\n" - .string "but she’s famous around here.$" + .string "but she's famous around here.$" gFameCheckerFlavorText_Erika3:: @ 0x81AE15B .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" @@ -217,7 +217,7 @@ gFameCheckerFlavorText_Erika4:: @ 0x81AE1E5 .string "they were unattractive.$" gFameCheckerFlavorText_Erika5:: @ 0x81AE247 - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}Rumor has it that if you peek into\n" .string "CELADON GYM, you can often\l" .string "see ERIKA snoozing.$" @@ -235,7 +235,7 @@ gFameCheckerFlavorText_Koga1:: @ 0x81AE31D gFameCheckerFlavorText_Koga2:: @ 0x81AE37D .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Even though I’ve lost, I will keep\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Even though I've lost, I will keep\n" .string "training according to the teachings\l" .string "of KOGA, my ninja master.$" @@ -243,11 +243,11 @@ gFameCheckerFlavorText_Koga3:: @ 0x81AE407 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}My father is the GYM LEADER of\n" .string "this town.\p" - .string "I’m training to use POISON POKéMON\n" + .string "I'm training to use POISON POKéMON\n" .string "as well as my father.$" gFameCheckerFlavorText_Koga4:: @ 0x81AE48D - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}KOGA is said to have a thorough\n" .string "knowledge of medicine.\p" .string "He even concocts medicine to nurse\n" @@ -255,12 +255,12 @@ gFameCheckerFlavorText_Koga4:: @ 0x81AE48D gFameCheckerFlavorText_Koga5:: @ 0x81AE51B .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}The SAFARI ZONE’s huge, wouldn’t\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}The SAFARI ZONE's huge, wouldn't\n" .string "you say?\p" - .string "FUCHSIA’s GYM LEADER, KOGA, \n" + .string "FUCHSIA's GYM LEADER, KOGA, \n" .string "patrols the grounds every so often.\p" .string "Thanks to him, we can play here\n" - .string "knowing that we’re safe.$" + .string "knowing that we're safe.$" gFameCheckerFlavorText_Sabrina0:: @ 0x81AE5E8 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" @@ -288,7 +288,7 @@ gFameCheckerFlavorText_Sabrina3:: @ 0x81AE762 .string "I will show you my powers!$" gFameCheckerFlavorText_Sabrina4:: @ 0x81AE7CB - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}People say that SABRINA can\n" .string "communicate with her POKéMON\l" .string "during battle without speaking.$" @@ -321,20 +321,20 @@ gFameCheckerFlavorText_Blaine2:: @ 0x81AE990 gFameCheckerFlavorText_Blaine3:: @ 0x81AEA59 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" - .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}CINNABAR GYM’s BLAINE is quite the\n" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}CINNABAR GYM's BLAINE is quite the\n" .string "odd fellow.\p" - .string "He’s lived on the island since way\n" + .string "He's lived on the island since way\n" .string "before the LAB was built.$" gFameCheckerFlavorText_Blaine4:: @ 0x81AEAEE .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" - .string "{COLOR RED}{SHADOW GREEN}It’s a photo of BLAINE and\n" + .string "{COLOR RED}{SHADOW GREEN}It's a photo of BLAINE and\n" .string "MR. FUJI.\p" - .string "They’re standing shoulder to\n" + .string "They're standing shoulder to\n" .string "shoulder with big grins.$" gFameCheckerFlavorText_Blaine5:: @ 0x81AEB69 - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}BLAINE is said to remove his dark\n" .string "shades only when he is thinking up\l" .string "new quiz questions.$" @@ -350,10 +350,10 @@ gFameCheckerFlavorText_Lorelei1:: @ 0x81AEC28 gFameCheckerFlavorText_Lorelei2:: @ 0x81AEC82 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Where was this person born?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}We’ve had a great and powerful\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}We've had a great and powerful\n" .string "TRAINER grow up on this island.\p" - .string "I bet even you’d know her.\n" - .string "It’s LORELEI of the ELITE FOUR!$" + .string "I bet even you'd know her.\n" + .string "It's LORELEI of the ELITE FOUR!$" gFameCheckerFlavorText_Lorelei3:: @ 0x81AED27 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" @@ -383,7 +383,7 @@ gFameCheckerFlavorText_Bruno0:: @ 0x81AEF25 gFameCheckerFlavorText_Bruno1:: @ 0x81AEF6C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I’ve lived and trained with my\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I've lived and trained with my\n" .string "fighting POKéMON!$" gFameCheckerFlavorText_Bruno2:: @ 0x81AEFC6 @@ -394,14 +394,14 @@ gFameCheckerFlavorText_Bruno2:: @ 0x81AEFC6 gFameCheckerFlavorText_Bruno3:: @ 0x81AF04C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BRUNO, who’s a senior ahead of me,\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BRUNO, who's a senior ahead of me,\n" .string "visits the SPA on occasion.\p" .string "He comes to rehab injuries, both\n" - .string "his own and his POKéMON’s.$" + .string "his own and his POKéMON's.$" gFameCheckerFlavorText_Bruno4:: @ 0x81AF0F0 - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" - .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He’s one of the ELITE FOUR.\n" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He's one of the ELITE FOUR.\n" .string "His name is BRUNO.\p" .string "He went away disappointed when he\n" .string "found out that they were all sold\l" @@ -419,30 +419,30 @@ gFameCheckerFlavorText_Agatha0:: @ 0x81AF200 gFameCheckerFlavorText_Agatha1:: @ 0x81AF248 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}AGATHA’s GHOST-type POKéMON are\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}AGATHA's GHOST-type POKéMON are\n" .string "horrifically terrifying in toughness.$" gFameCheckerFlavorText_Agatha2:: @ 0x81AF2B7 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}That old lady’s also got a really\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}That old lady's also got a really\n" .string "short fuse, too.\p" - .string "It doesn’t take anything to get\n" + .string "It doesn't take anything to get\n" .string "that scary lady hollering.$" gFameCheckerFlavorText_Agatha3:: @ 0x81AF34E - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}In her youth, AGATHA and PROF.\n" .string "OAK were rivals who vied for\l" .string "supremacy as TRAINERS.$" gFameCheckerFlavorText_Agatha4:: @ 0x81AF3BE .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" - .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I hear OAK’s taken a lot of\n" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I hear OAK's taken a lot of\n" .string "interest in you, child.\p" .string "That old duff was once tough and\n" .string "handsome.\p" .string "But that was decades ago.\n" - .string "He’s a shadow of his former self.$" + .string "He's a shadow of his former self.$" gFameCheckerFlavorText_Agatha5:: @ 0x81AF47C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" @@ -460,19 +460,19 @@ gFameCheckerFlavorText_Lance1:: @ 0x81AF567 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You know that dragons are\n" .string "mythical POKéMON.\p" - .string "They’re hard to catch and raise,\n" + .string "They're hard to catch and raise,\n" .string "but their powers are superior.\p" - .string "They’re virtually indestructible.\n" - .string "There’s no being clever with them.$" + .string "They're virtually indestructible.\n" + .string "There's no being clever with them.$" gFameCheckerFlavorText_Lance2:: @ 0x81AF641 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He stands for justice!\n" - .string "He’s cool, and yet passionate!\l" - .string "He’s the greatest, LANCE!$" + .string "He's cool, and yet passionate!\l" + .string "He's the greatest, LANCE!$" gFameCheckerFlavorText_Lance3:: @ 0x81AF6BA - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}We have a customer, LANCE, who\n" .string "occasionally comes.\p" .string "He always buys capes.\p" @@ -481,19 +481,19 @@ gFameCheckerFlavorText_Lance3:: @ 0x81AF6BA gFameCheckerFlavorText_Lance4:: @ 0x81AF758 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" - .string "{COLOR RED}{SHADOW GREEN}LANCE’s grandfather is thought to\n" + .string "{COLOR RED}{SHADOW GREEN}LANCE's grandfather is thought to\n" .string "be the elder of a famous clan of\l" .string "dragon masters.$" gFameCheckerFlavorText_Lance5:: @ 0x81AF7CB .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}From what I’ve heard, LANCE has\n" - .string "a cousin who’s a GYM LEADER\l" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}From what I've heard, LANCE has\n" + .string "a cousin who's a GYM LEADER\l" .string "somewhere far away.$" gFameCheckerFlavorText_Bill0:: @ 0x81AF83E .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}After all, BILL’s world-famous as a\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}After all, BILL's world-famous as a\n" .string "POKéMANIAC.\p" .string "He invented the POKéMON Storage\n" .string "System on PC, too.$" @@ -505,7 +505,7 @@ gFameCheckerFlavorText_Bill1:: @ 0x81AF8CA gFameCheckerFlavorText_Bill2:: @ 0x81AF929 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}He’s my grandson!\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}He's my grandson!\p" .string "He always liked collecting things,\n" .string "even as a child!$" @@ -518,19 +518,19 @@ gFameCheckerFlavorText_Bill3:: @ 0x81AF998 gFameCheckerFlavorText_Bill4:: @ 0x81AFA20 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BILL’s hometown is GOLDENROD CITY,\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BILL's hometown is GOLDENROD CITY,\n" .string "where his folks still live.\p" - .string "I’ve heard that it’s quite the\n" + .string "I've heard that it's quite the\n" .string "festive, bustling city.$" gFameCheckerFlavorText_Bill5:: @ 0x81AFAB9 - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Apparently, BILL simply can’t\n" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Apparently, BILL simply can't\n" .string "stomach milk at all.$" gFameCheckerFlavorText_MrFuji0:: @ 0x81AFB0C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" - .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He’s really kind.\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He's really kind.\p" .string "He looks after abandoned and\n" .string "orphaned POKéMON.$" @@ -539,8 +539,8 @@ gFameCheckerFlavorText_MrFuji1:: @ 0x81AFB76 .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}This old guy marched right up to\n" .string "our HIDEOUT.\p" .string "Then, he starts ranting about how\n" - .string "TEAM ROCKET’s abusing POKéMON.\p" - .string "So, we’re just talking it over as\n" + .string "TEAM ROCKET's abusing POKéMON.\p" + .string "So, we're just talking it over as\n" .string "adults.$" gFameCheckerFlavorText_MrFuji2:: @ 0x81AFC38 @@ -548,19 +548,19 @@ gFameCheckerFlavorText_MrFuji2:: @ 0x81AFC38 .string "{COLOR RED}{SHADOW GREEN}POKéMON FAN MAGAZINE\n" .string "Monthly Grand Prize Drawing!\p" .string "The application form is…\p" - .string "Gone! It’s been clipped out.\n" + .string "Gone! It's been clipped out.\n" .string "Someone must have applied already.$" gFameCheckerFlavorText_MrFuji3:: @ 0x81AFCE9 - .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I hear that MR. FUJI’s not from\n" + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There's a rumor…\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I hear that MR. FUJI's not from\n" .string "these parts originally, either.$" gFameCheckerFlavorText_MrFuji4:: @ 0x81AFD49 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" - .string "{COLOR RED}{SHADOW GREEN}It’s a photo of BLAINE and\n" + .string "{COLOR RED}{SHADOW GREEN}It's a photo of BLAINE and\n" .string "MR. FUJI.\p" - .string "They’re standing shoulder to\n" + .string "They're standing shoulder to\n" .string "shoulder with big grins.$" gFameCheckerFlavorText_MrFuji5:: @ 0x81AFDC4 @@ -574,7 +574,7 @@ gFameCheckerFlavorText_Giovanni0:: @ 0x81AFE68 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}TEAM ROCKET captures POKéMON from\n" .string "around the world.\p" - .string "They’re important tools for keeping\n" + .string "They're important tools for keeping\n" .string "our criminal enterprise going.\p" .string "I am the leader, GIOVANNI!$" @@ -587,7 +587,7 @@ gFameCheckerFlavorText_Giovanni1:: @ 0x81AFF23 gFameCheckerFlavorText_Giovanni2:: @ 0x81AFFA8 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}TEAM ROCKET’s BOSS is terribly\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}TEAM ROCKET's BOSS is terribly\n" .string "cruel!\p" .string "To him, POKéMON are just tools to\n" .string "be used.$" @@ -605,10 +605,10 @@ gFameCheckerFlavorText_Giovanni4:: @ 0x81B00A6 gFameCheckerFlavorText_Giovanni5:: @ 0x81B0106 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You… You’re not GIOVANNI’s kid,\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You… You're not GIOVANNI's kid,\n" .string "are you?\p" - .string "No, that can’t be right.\n" - .string "GIOVANNI’s kid has red hair.$" + .string "No, that can't be right.\n" + .string "GIOVANNI's kid has red hair.$" gFameCheckerPersonName_ProfOak:: @ 0x81B0188 @@ -631,9 +631,9 @@ gFameCheckerPersonQuote_Daisy:: @ 0x81B025D .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: DAISY\n" .string "To: {PLAYER}\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}While I was comfortably enjoying\n" - .string "my tea breaks, you’ve grown very\l" + .string "my tea breaks, you've grown very\l" .string "skilled and powerful.\p" - .string "I hope you’ll remain a good rival\n" + .string "I hope you'll remain a good rival\n" .string "to my little brother.$" gFameCheckerPersonName_Brock:: @ 0x81B030F @@ -644,7 +644,7 @@ gFameCheckerPersonQuote_Brock:: @ 0x81B031B .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}In this big world of ours, there\n" .string "must be many tough TRAINERS.\p" - .string "Let’s both keep training and\n" + .string "Let's both keep training and\n" .string "making ourselves stronger!$" gFameCheckerPersonName_Misty:: @ 0x81B03B3 @@ -653,9 +653,9 @@ gFameCheckerPersonName_Misty:: @ 0x81B03B3 gFameCheckerPersonQuote_Misty:: @ 0x81B03BF .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: MISTY\n" .string "To: {PLAYER}\p" - .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I’m going to keep training here at\n" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I'm going to keep training here at\n" .string "this GYM.\p" - .string "When I get better, I’d love to hit\n" + .string "When I get better, I'd love to hit\n" .string "the road and travel.$" gFameCheckerPersonName_LtSurge:: @ 0x81B0446 @@ -666,7 +666,7 @@ gFameCheckerPersonQuote_LtSurge:: @ 0x81B0456 .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hey, kid!\n" .string "You electrified me in our battle!\p" - .string "I didn’t know that there were\n" + .string "I didn't know that there were\n" .string "gutsy TRAINERS like you.\p" .string "It made me change my mind about\n" .string "you!$" @@ -713,7 +713,7 @@ gFameCheckerPersonQuote_Blaine:: @ 0x81B0708 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BLAINE\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}My fire POKéMON!\n" - .string "They’ll become even more powerful!\p" + .string "They'll become even more powerful!\p" .string "And now, a quiz. How many kinds of\n" .string "FIRE-type POKéMON are there?$" @@ -727,7 +727,7 @@ gFameCheckerPersonQuote_Lorelei:: @ 0x81B07AD .string "help.\p" .string "But that has nothing to do with our\n" .string "battles.\p" - .string "You’d better watch out next time!$" + .string "You'd better watch out next time!$" gFameCheckerPersonName_Bruno:: @ 0x81B0845 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BRUNO$" @@ -736,7 +736,7 @@ gFameCheckerPersonQuote_Bruno:: @ 0x81B0851 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BRUNO\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}The super power of your POKéMON\n" - .string "and you I’ve experienced myself.\p" + .string "and you I've experienced myself.\p" .string "Next time, maybe I should show you\n" .string "how to train yourself.$" @@ -746,7 +746,7 @@ gFameCheckerPersonName_Agatha:: @ 0x81B08EE gFameCheckerPersonQuote_Agatha:: @ 0x81B08FB .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: AGATHA\n" .string "To: {PLAYER}\p" - .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}When you grow older, don’t you\n" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}When you grow older, don't you\n" .string "dare go soft like that coot OAK!\p" .string "Be like me and keep battling on!$" @@ -756,11 +756,11 @@ gFameCheckerPersonName_Lance:: @ 0x81B097F gFameCheckerPersonQuote_Lance:: @ 0x81B098B .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LANCE\n" .string "To: {PLAYER}\p" - .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I’m considering going back to my\n" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I'm considering going back to my\n" .string "hometown.\p" .string "I want to retrain my DRAGON-type\n" .string "POKéMON and strengthen them.\p" - .string "I’d like to invite you to my\n" + .string "I'd like to invite you to my\n" .string "hometown one day.$" gFameCheckerPersonName_Bill:: @ 0x81B0A45 @@ -1432,7 +1432,7 @@ gUnknown_81B17E9:: @ 81B17E9 gUnknown_81B187F:: @ 81B187F .string "POKéMON JOURNAL\p" .string "Special Feature:\n" - .string "ELITE FOUR’s LORELEI!\p" + .string "ELITE FOUR's LORELEI!\p" .string "Known for her logical, calculated,\n" .string "and cool battling style, LORELEI\l" .string "has a surprising secret!$" @@ -1440,7 +1440,7 @@ gUnknown_81B187F:: @ 81B187F gUnknown_81B1913:: @ 81B1913 .string "POKéMON JOURNAL\p" .string "Special Feature:\n" - .string "ELITE FOUR’s BRUNO!\p" + .string "ELITE FOUR's BRUNO!\p" .string "BRUNO apparently joined the ELITE\n" .string "FOUR out of his burning ambition to\l" .string "battle the best TRAINERS.$" @@ -1448,7 +1448,7 @@ gUnknown_81B1913:: @ 81B1913 gUnknown_81B19A8:: @ 81B19A8 .string "POKéMON JOURNAL\p" .string "Special Feature:\n" - .string "ELITE FOUR’s AGATHA!\p" + .string "ELITE FOUR's AGATHA!\p" .string "In her youth, AGATHA and PROF.\n" .string "OAK were rivals who vied for\l" .string "supremacy as TRAINERS.$" @@ -1456,8 +1456,8 @@ gUnknown_81B19A8:: @ 81B19A8 gUnknown_81B1A31:: @ 81B1A31 .string "POKéMON JOURNAL\p" .string "Special Feature:\n" - .string "ELITE FOUR’s LANCE!\p" - .string "LANCE’s grandfather is thought to\n" + .string "ELITE FOUR's LANCE!\p" + .string "LANCE's grandfather is thought to\n" .string "be the elder of a famous clan of\l" .string "dragon masters.$" @@ -1473,7 +1473,7 @@ gUnknown_81B1B3D:: @ 81B1B3D .string "years ago…\p" .string "POKéMON JOURNAL\n" .string "CONTEST Special!\p" - .string "The Spring POKéMON CONTEST’s\n" + .string "The Spring POKéMON CONTEST's\n" .string "Grand Champion is DAISY OAK of\l" .string "PALLET TOWN!$" @@ -1502,7 +1502,7 @@ gUnknown_81B1CC1:: @ 81B1CC1 .string "Press START to open the MENU!$" gUnknown_81B1CEC:: @ 81B1CEC - .string "Signs are useful, aren’t they?$" + .string "Signs are useful, aren't they?$" gUnknown_81B1D0B:: @ 81B1D0B .string "Look, look!\p" @@ -1514,14 +1514,14 @@ gUnknown_81B1D51:: @ 81B1D51 .string "Press START to open the MENU!$" gUnknown_81B1D7D:: @ 81B1D7D - .string "It’s a POKéMON PRINTER!\p" + .string "It's a POKéMON PRINTER!\p" .string "It can put a print of your POKéMON\n" .string "on the back of your TRAINER CARD.\p" .string "It costs only ¥50.\n" .string "Would you like to try it?$" gUnknown_81B1E07:: @ 81B1E07 - .string "You don’t have enough money.$" + .string "You don't have enough money.$" gUnknown_81B1E24:: @ 81B1E24 .string "Please choose the print type.$" @@ -1542,20 +1542,20 @@ gUnknown_81B1EB3:: @ 81B1EB3 gUnknown_81B1EF8:: @ 81B1EF8 .string "Oh, excellent!\n" - .string "You’ve come to the right place!\p" + .string "You've come to the right place!\p" .string "Look, look! See? See?\n" .string "These are my STICKERS!\l" .string "Look how many I got!\p" .string "I bet you want some.\n" .string "I bet you do!\p" - .string "I’ll give a STICKER if you can tell\n" + .string "I'll give a STICKER if you can tell\n" .string "me something awesome about\l" .string "yourself.\p" .string "What will you brag about?$" gUnknown_81B1FEF:: @ 81B1FEF .string "Brag about something for me.\n" - .string "I’ll give you a STICKER.$" + .string "I'll give you a STICKER.$" gUnknown_81B2025:: @ 81B2025 .string "Oh, hi!\n" @@ -1566,27 +1566,27 @@ gUnknown_81B2025:: @ 81B2025 gUnknown_81B206E:: @ 81B206E .string "Oh, wow, you made it into the\n" .string "HALL OF FAME.\p" - .string "That’s pretty good, yup!\n" - .string "I’ll give you one of these.$" + .string "That's pretty good, yup!\n" + .string "I'll give you one of these.$" gUnknown_81B20CF:: @ 81B20CF - .string "Oh, wow, you’ve entered the\n" + .string "Oh, wow, you've entered the\n" .string "HALL OF FAME often!\p" - .string "That’s impressive, yup!\n" - .string "I’ll give you one of these.$" + .string "That's impressive, yup!\n" + .string "I'll give you one of these.$" gUnknown_81B2133:: @ 81B2133 - .string "Whoa! You’ve made it into the\n" + .string "Whoa! You've made it into the\n" .string "HALL OF FAME that often?\l" - .string "That’s seriously incredible, yup!\p" + .string "That's seriously incredible, yup!\p" .string "You own the POKéMON LEAGUE!\n" - .string "I’ll give you one of these.$" + .string "I'll give you one of these.$" gUnknown_81B21C4:: @ 81B21C4 - .string "No way! You’ve gone into the\n" + .string "No way! You've gone into the\n" .string "HALL OF FAME that many times?\p" - .string "You’re beyond incredible, yup!\n" - .string "That’s it, I have to give you this.$" + .string "You're beyond incredible, yup!\n" + .string "That's it, I have to give you this.$" gUnknown_81B2242:: @ 81B2242 .string "The HALL OF FAME STICKER was\n" @@ -1599,33 +1599,33 @@ gUnknown_81B227C:: @ 81B227C gUnknown_81B22B0:: @ 81B22B0 .string "Oh, no, no can do.\p" - .string "You’re practically a living legend.\n" + .string "You're practically a living legend.\n" .string "I have no SITCKERS left to give.$" gUnknown_81B2308:: @ 81B2308 .string "Oh, wow, there are POKéMON EGGS?\n" - .string "I didn’t know that!\p" - .string "That’s pretty good, yup!\n" - .string "I’ll give you one of these.$" + .string "I didn't know that!\p" + .string "That's pretty good, yup!\n" + .string "I'll give you one of these.$" gUnknown_81B2372:: @ 81B2372 - .string "You’ve hatched that many EGGS?\n" + .string "You've hatched that many EGGS?\n" .string "You really must like them!\p" - .string "That’s impressive, yup!\n" - .string "I’ll give you one of these.$" + .string "That's impressive, yup!\n" + .string "I'll give you one of these.$" gUnknown_81B23E0:: @ 81B23E0 - .string "Whoa! You’ve hatched a whole\n" + .string "Whoa! You've hatched a whole\n" .string "bunch of EGGS!\p" - .string "You’re an EGG-hatching machine!\n" - .string "I’ll give you one of these.$" + .string "You're an EGG-hatching machine!\n" + .string "I'll give you one of these.$" gUnknown_81B2448:: @ 81B2448 .string "Wh… You hatched that many EGGS?\p" - .string "What’s behind your love of EGGS?\n" - .string "It’s beyond incredible, yup!\p" - .string "You’re too awesome, I tell you.\n" - .string "That’s it, I have to give you this.$" + .string "What's behind your love of EGGS?\n" + .string "It's beyond incredible, yup!\p" + .string "You're too awesome, I tell you.\n" + .string "That's it, I have to give you this.$" gUnknown_81B24EA:: @ 81B24EA .string "The EGG STICKER was applied\n" @@ -1638,34 +1638,34 @@ gUnknown_81B251B:: @ 81B251B gUnknown_81B254F:: @ 81B254F .string "Oh, no, no can do.\p" - .string "You’re practically a living legend.\n" + .string "You're practically a living legend.\n" .string "I have no SITCKERS left to give.$" gUnknown_81B25A7:: @ 81B25A7 - .string "Oh, wow, you’ve had success\n" + .string "Oh, wow, you've had success\n" .string "link battling?\p" - .string "You’re pretty strong, yup!\n" - .string "I’ll give you one of these.$" + .string "You're pretty strong, yup!\n" + .string "I'll give you one of these.$" gUnknown_81B2609:: @ 81B2609 - .string "You’ve beaten your friends a lot\n" + .string "You've beaten your friends a lot\n" .string "link battling, huh?\p" - .string "You’re impressively strong, yup!\n" - .string "I’ll give you one of these.$" + .string "You're impressively strong, yup!\n" + .string "I'll give you one of these.$" gUnknown_81B267B:: @ 81B267B - .string "Whoa! You’ve beaten your friends\n" + .string "Whoa! You've beaten your friends\n" .string "a frightful number of times.\p" .string "Have you lost friends over this?\n" - .string "I’ll give you one of these.$" + .string "I'll give you one of these.$" gUnknown_81B26F6:: @ 81B26F6 .string "Wh… Wickedly whoa!\n" - .string "You’ve won mind-blowingly often!\p" + .string "You've won mind-blowingly often!\p" .string "It just knocks me out thinking\n" .string "about how tough you are.\p" - .string "You’re the stuff of nightmares!\n" - .string "That’s it, I have to give you this.$" + .string "You're the stuff of nightmares!\n" + .string "That's it, I have to give you this.$" gUnknown_81B27A6:: @ 81B27A6 .string "The VICTORY STICKER was applied\n" @@ -1678,23 +1678,5 @@ gUnknown_81B27DB:: @ 81B27DB gUnknown_81B280F:: @ 81B280F .string "Oh, no, no can do.\p" - .string "You’re practically a living legend.\n" + .string "You're practically a living legend.\n" .string "I have no SITCKERS left to give.$" - -gUnknown_81B2867:: @ 81B2867 - -gUnknown_81B2E1C:: @ 81B2E1C - .incbin "baserom.gba", 0x001b2867, 0x5b5 - .string "How do I do this?$" - -gUnknown_81B2E2E:: @ 81B2E2E - .string "What does this term mean?$" - -gUnknown_81B2E48:: @ 81B2E48 - .string "About this game$" - -gUnknown_81B2E58:: @ 81B2E58 - .string "Type Matchup List$" - -gUnknown_81B2E6A:: @ 81B2E6A - .string "EXIT$" diff --git a/data/text/help_system.inc b/data/text/help_system.inc new file mode 100644 index 000000000..a85af88a8 --- /dev/null +++ b/data/text/help_system.inc @@ -0,0 +1,1879 @@ +gUnknown_81B2DF8:: @ 81B2DF8 + .string "What should I do in this situation?$" + +gUnknown_81B2E1C:: @ 81B2E1C + .string "How do I do this?$" + +gUnknown_81B2E2E:: @ 81B2E2E + .string "What does this term mean?$" + +gUnknown_81B2E48:: @ 81B2E48 + .string "About this game$" + +gUnknown_81B2E58:: @ 81B2E58 + .string "Type Matchup List$" + +gUnknown_81B2E6A:: @ 81B2E6A + .string "EXIT$" + +gUnknown_81B2E6F:: @ 81B2E6F + .string "CANCEL$" + +gUnknown_81B2E76:: + .string "じぶんの ちからで やってみよう!$" + +gUnknown_81B2E88:: @ 81B2E88 + .string "Select to obtain hints for getting\n" + .string "over challenging situations.$" + +gUnknown_81B2EC8:: @ 81B2EC8 + .string "Detailed instructions are given for\n" + .string "various operations.$" + +gUnknown_81B2F00:: @ 81B2F00 + .string "Detailed descriptions are given for\n" + .string "terms that appear in the game.$" + +gUnknown_81B2F43:: @ 81B2F43 + .string "Detailed descriptions are given\n" + .string "about this game.$" + +gUnknown_81B2F74:: @ 81B2F74 + .string "The matchups of POKéMON types\n" + .string "and moves are listed.$" + +gUnknown_81B2FA9:: @ 81B2FA9 + .string "Select to exit the HELP System.$" + +gUnknown_81B2FC9:: @ 81B2FC9 + .string "Greetings! This is the HELP System.\n" + .string "Call me up whenever and wherever you\l" + .string "need by p" + +gUnknown_81B301B:: @ 81B301B + .string "ressing the L or R Button.\l" + .string "The help messages change to suit the\l" + .string "situation, so check them often, please.$" + +gUnknown_81B3083:: @ 81B3083 + .string "I'm playing for the first time. Help!$" + +gUnknown_81B30A9:: @ 81B30A9 + .string "What should I be doing?$" + +gUnknown_81B30C1:: @ 81B30C1 + .string "I can't get out of a room!$" + +gUnknown_81B30DC:: @ 81B30DC + .string "I can't find the person I want.$" + +gUnknown_81B30FC:: @ 81B30FC + .string "I've talked to everyone. Now what?$" + +gUnknown_81B311F:: @ 81B311F + .string "There's someone blocking my way!$" + +gUnknown_81B3140:: @ 81B3140 + .string "I can't go on!$" + +gUnknown_81B314F:: @ 81B314F + .string "I'm out of things to do.$" + +gUnknown_81B3168:: @ 81B3168 + .string "What happened to the item I got?$" + +gUnknown_81B3189:: @ 81B3189 + .string "What are the basics of my adventure?$" + +gUnknown_81B31AE:: @ 81B31AE + .string "How are roads and forests different?$" + +gUnknown_81B31D3:: @ 81B31D3 + .string "How are caves different?$" + +gUnknown_81B31EC:: @ 81B31EC + .string "How do I progress?$" + +gUnknown_81B31FF:: @ 81B31FF + .string "When can I use items?$" + +gUnknown_81B3215:: @ 81B3215 + .string "What's a battle?$" + +gUnknown_81B3226:: @ 81B3226 + .string "How do I prepare for battle?$" + +gUnknown_81B3243:: @ 81B3243 + .string "What is a POKéMON's vitality?$" + +gUnknown_81B3261:: @ 81B3261 + .string "My POKéMON are hurt!$" + +gUnknown_81B3276:: @ 81B3276 + .string "What is a status problem?$" + +gUnknown_81B3290:: @ 81B3290 + .string "What happens if all my POKéMON faint?$" + +gUnknown_81B32B6:: @ 81B32B6 + .string "I can't catch POKéMON!$" + +gUnknown_81B32CD:: @ 81B32CD + .string "I ran out of POTIONS.$" + +gUnknown_81B32E3:: @ 81B32E3 + .string "Can I buy POKé BALLS?$" + +gUnknown_81B32F9:: @ 81B32F9 + .string "What's a TRAINER?$" + +gUnknown_81B330B:: @ 81B330B + .string "How do I win against a TRAINER?$" + +gUnknown_81B332B:: @ 81B332B + .string "Where do POKéMON appear?$" + +gUnknown_81B3344:: @ 81B3344 + .string "What are POKéMON moves?$" + +gUnknown_81B335C:: @ 81B335C + .string "What are HIDDEN moves?$" + +gUnknown_81B3373:: @ 81B3373 + .string "What moves should I use?$" + +gUnknown_81B338C:: @ 81B338C + .string "I want to add more moves.$" + +gUnknown_81B33A6:: @ 81B33A6 + .string "I want to make my POKéMON stronger.$" + +gUnknown_81B33CA:: @ 81B33CA + .string "The foe POKéMON are too strong!$" + +gUnknown_81B33EA:: @ 81B33EA + .string "What do I do in a cave?$" + +gUnknown_81B3402:: @ 81B3402 + .string "There's nothing that I want to know!$" + +gUnknown_81B3427:: @ 81B3427 + .string "What's a POKéMON CENTER?$" + +gUnknown_81B3440:: @ 81B3440 + .string "What's a POKéMON MART?$" + +gUnknown_81B3457:: @ 81B3457 + .string "I want to end the game.$" + +gUnknown_81B346F:: @ 81B346F + .string "What's a POKéMON?$" + +gUnknown_81B3481:: @ 81B3481 + .string "What is that person like?$" + +gUnknown_81B349B:: @ 81B349B + .string "What does a HIDDEN move do?$" + +gUnknown_81B34B7:: @ 81B34B7 + .string "What do I do in a SAFARI GAME?$" + +gUnknown_81B34D6:: @ 81B34D6 + .string "What are the SAFARI GAME rules?$" + +gUnknown_81B34F6:: @ 81B34F6 + .string "I want to end this SAFARI GAME!$" + +gUnknown_81B3516:: @ 81B3516 + .string "What is a GYM?$" + +gUnknown_81B3525:: @ 81B3525 + .string "You become the main character,\n" + .string "exploring the world of POKéMON.\l" + .string "By talking to people and solving\l" + .string "mysteries, new paths will open to you.\l" + .string "Strive for the goal together with your\l" + .string "wonderful POKéMON.$" + +gUnknown_81B35E6:: @ 81B35E6 + .string "When you come across another person,\n" + .string "go up to them and press the A Button.\l" + .string "That will get them to talk and interact\l" + .string "with your character. You may also\l" + .string "examine various items and objects in\l" + .string "the same way. Talk to people and check\l" + .string "things often to obtain information.$" + +gUnknown_81B36EB:: @ 81B36EB + .string "On the stairs or the exits of a\n" + .string "building is a red mat. Move your\l" + .string "character to stand on top of the\l" + .string "red mat. Press the {EXTRA_PLUS} Control Pad \l" + .string "toward the stairs or the exit to\l" + .string "advance.$" + +gUnknown_81B379A:: @ 81B379A + .string "This isn't something you should worry\n" + .string "about too much.\l" + .string "Talk to other people, check signs,\l" + .string "check things, and so on.\l" + .string "Sometimes, you may need to just move\l" + .string "to a new town or place.$" + +gUnknown_81B3849:: @ 81B3849 + .string "Try moving on to a new road, town, or\n" + .string "place.$" + +gUnknown_81B3876:: @ 81B3876 + .string "There could be something in the town\n" + .string "or inside a building that is the cause.\l" + .string "Try talking to the people in the area\l" + .string "again. If there is a problem that they\l" + .string "need solved, you may have to help.\l" + .string "Afterwards, try talking to the person\l" + .string "blocking your way again.$" + +gUnknown_81B3972:: @ 81B3972 + .string "Try talking to people by going up to\n" + .string "them and pressing the A Button.\l" + .string "Also, try checking things like odd trees\l" + .string "and strange rocks with the A Button.\l" + .string "Press the {EXTRA_PLUS} Control Pad and try going\l" + .string "to places that look impassable, too.$" + +gUnknown_81B3A51:: @ 81B3A51 + .string "Try going to places where you \n" + .string "haven't visited yet.\l" + .string "Also, check everything that looks\l" + .string "suspicious by pressing the A Button.$" + +gUnknown_81B3ACC:: @ 81B3ACC + .string "Any item that you are given by another\n" + .string "character goes in your BAG.\l" + .string "The item is automatically sorted and\l" + .string "placed in one of three pockets.\l" + .string "For instructions on the BAG's use,\l" + .string "please refer to the HELP System's\l" + .string "“How do I do this?” heading.$" + +gUnknown_81B3BB6:: @ 81B3BB6 + .string "If POKéMON are hurt in battle,\n" + .string "take them to a POKéMON CENTER and\l" + .string "have them healed by the staff.\l" + .string "Get in the habit of saving your\l" + .string "game and recording your progress.\l" + .string "Stock up on healing items at\l" + .string "POKéMON MARTS before traveling far.$" + +gUnknown_81B3C99:: @ 81B3C99 + .string "Forests are basically the same as\n" + .string "roads but they can be like mazes.\l" + .string "All forests have a way out, so don't\l" + .string "give up if you get lost.$" + +gUnknown_81B3D1B:: @ 81B3D1B + .string "Caves are dark and dangerous. Wild\n" + .string "POKéMON can appear anywhere in them.\l" + .string "If there is an emergency, rush to a\l" + .string "POKéMON CENTER or use items.\l" + .string "New towns await discovery beyond some\l" + .string "caves, so don't give up.$" + +gUnknown_81B3DE3:: @ 81B3DE3 + .string "The object of the game is to train\n" + .string "your POKéMON and move forward.\l" + .string "You must collect info and solve\l" + .string "problems. For example, what do you\l" + .string "need to get around an obstacle?\l" + .string "What would get that impeding\l" + .string "person out of the way?$" + +gUnknown_81B3EBC:: @ 81B3EBC + .string "There are several kinds of items.\n" + .string "Some can be used only on the field.\l" + .string "Some are only for use during battle.\l" + .string "Some can be used anytime.\l" + .string "Try using an item - if it can't be used,\l" + .string "you will be alerted.$" + +gUnknown_81B3F7F:: @ 81B3F7F + .string "In a battle, POKéMON try to reduce\n" + .string "one another's vitality, expressed as\l" + .string "HP. If a POKéMON's HP falls to zero,\l" + .string "it faints, and the other POKéMON\l" + .string "wins. By winning a battle, POKéMON\l" + .string "earn EXP. Points, which help them\l" + .string "level up (grow stronger).$" + +gUnknown_81B406C:: @ 81B406C + .string "First, fully heal the POKéMON in your\n" + .string "party (the POKéMON with you) at any\l" + .string "POKéMON CENTER.\l" + .string "You should also buy healing items for\l" + .string "emergencies at a POKéMON MART.$" + +gUnknown_81B410B:: @ 81B410B + .string "A POKéMON's vitality is expressed in HP.\n" + .string "If a POKéMON is hurt in battle, HP is\l" + .string "subtracted. If its HP drops to zero,\l" + .string "the POKéMON faints.\l" + .string "Heal hurt or fainted POKéMON at a\l" + .string "POKéMON CENTER or by using items.$" + +gUnknown_81B41D7:: @ 81B41D7 + .string "A POKéMON CENTER is like an inn for\n" + .string "POKéMON. It will fully heal POKéMON of\l" + .string "any status problems and fully restore\l" + .string "their HP using a special machine.\l" + .string "This service is free, so get in the\l" + .string "habit of healing your POKéMON often.$" + +gUnknown_81B42B3:: @ 81B42B3 + .string "A status problem refers to an ailment\n" + .string "that is inflicted on a POKéMON by its\l" + .string "foe's attack. These include burns,\l" + .string "paralysis, poisoning, sleep, and\l" + .string "freezing. These can be healed by\l" + .string "visiting a POKéMON CENTER or using\l" + .string "the appropriate item.$" + +gUnknown_81B439D:: @ 81B439D + .string "If all the POKéMON in your party\n" + .string "(all the POKéMON with you) faint, you\l" + .string "lose some MONEY, and you are\l" + .string "returned home or to a POKéMON\l" + .string "CENTER. To reduce that chance, visit\l" + .string "POKéMON CENTERS often. Also, get\l" + .string "in the habit of saving often.$" + +gUnknown_81B4483:: @ 81B4483 + .string "If a wild POKéMON escapes from a POKé\n" + .string "BALL, it's obviously still feisty.\l" + .string "Try reducing its HP some more, and\l" + .string "try to weaken it with paralysis or sleep\l" + .string "before trying to catch it.\l" + .string "If the POKé BALL rocks for a while,\l" + .string "the quarry is close to being caught!$" + +gUnknown_81B457C:: @ 81B457C + .string "There are shops, known as POKéMON\n" + .string "MARTS, that sell items.\l" + .string "You will not find POKéMON MARTS on\l" + .string "roads, in forests, or in caves.\l" + .string "Stock up on needed items while you are\l" + .string "visiting a town with a POKéMON MART.$" + +gUnknown_81B4645:: @ 81B4645 + .string "You may buy POKé BALLS at any\n" + .string "POKéMON MART in any town.\l" + .string "You will not find POKéMON MARTS on\l" + .string "roads, in forests, or in caves.\l" + .string "Stock up on POKé BALLS while you are\l" + .string "visiting a town with a POKéMON MART.$" + +gUnknown_81B470A:: @ 81B470A + .string "A TRAINER is a person who raises\n" + .string "POKéMON through battling.\l" + .string "TRAINERS will challenge you \l" + .string "wherever they are - it could be on\l" + .string "a road, in forests, caves, anywhere.\l" + .string "If your eyes meet, you have to accept\l" + .string "their challenge. So be careful!$" + +gUnknown_81B47F0:: @ 81B47F0 + .string "To beat a TRAINER in battle, use\n" + .string "POKéMON that have type advantages\l" + .string "over the foe's POKéMON. You may also\l" + .string "use highly trained POKéMON with\l" + .string "overwhelming power. Outnumbering the\l" + .string "foe's POKéMON is another obvious\l" + .string "tactic.$" + +gUnknown_81B48C6:: @ 81B48C6 + .string "Wild POKéMON will appear in tall grass,\n" + .string "on roads, and in forests. They will\l" + .string "appear anywhere in dark caves.\l" + .string "There are no wild POKéMON or TRAINERS\l" + .string "in towns, so they are safe places.$" + +gUnknown_81B497A:: @ 81B497A + .string "POKéMON may learn up to four different\n" + .string "techniques, or moves. There is a great\l" + .string "variety of moves including attacks and\l" + .string "those with special effects. The kinds\l" + .string "of moves that can be learned vary\l" + .string "for each POKéMON. Some moves\l" + .string "can be learned from machines.$" + +gUnknown_81B4A72:: @ 81B4A72 + .string "HIDDEN moves are those that are\n" + .string "especially important for your\l" + .string "adventure. To use such a move outside\l" + .string "of battle, open the “POKéMON” MENU\l" + .string "and make the POKéMON that knows the\l" + .string "move use it. A fainted POKéMON may use\l" + .string "a HIDDEN move outside of battle.$" + +gUnknown_81B4B65:: @ 81B4B65 + .string "Select “FIGHT,” and the MENU of moves\n" + .string "will appear. Consider the type\l" + .string "matchups, and use the most effective\l" + .string "moves. You can check the effects of\l" + .string "moves by opening “POKéMON,”\l" + .string "picking a POKéMON, opening “SUMMARY,”\l" + .string "then opening “POKéMON SKILLS.”$" + +gUnknown_81B4C54:: @ 81B4C54 + .string "The most a POKéMON can learn is four\n" + .string "moves. They are learned as the\l" + .string "POKéMON levels up. It can also be\l" + .string "taught a move using a TM (Technical\l" + .string "Machine) or HM (Hidden Machine).\l" + .string "There are also people who teach moves.$" + +gUnknown_81B4D26:: @ 81B4D26 + .string "The key to making your POKéMON\n" + .string "strong is to battle and win often.\l" + .string "The EXP. (Experience) Points earned\l" + .string "by winning battles accumulate to\l" + .string "level up POKéMON that participated in\l" + .string "them. Battle wild POKéMON often to\l" + .string "level up your party.$" + +gUnknown_81B4E0B:: @ 81B4E0B + .string "If your foes are too strong, try\n" + .string "leveling up your POKéMON some more.\l" + .string "Go back the way you came and battle\l" + .string "wild POKéMON to level up your party.\l" + .string "You may also battle TRAINERS whom you\l" + .string "have not battled before.$" + +gUnknown_81B4ED8:: @ 81B4ED8 + .string "Unlike roads and forests, wild POKéMON\n" + .string "can appear anywhere in caves.\l" + .string "If your POKéMON are hurt in a cave,\l" + .string "rush to a POKéMON CENTER or use items\l" + .string "to heal them right away. It is very\l" + .string "dangerous to force your luck in caves.$" + +gUnknown_81B4FB2:: @ 81B4FB2 + .string "Trust your own knowledge and power.\n" + .string "Believe in yourself and find your way!$" + +gUnknown_81B4FFD:: @ 81B4FFD + .string "A POKéMON CENTER is identified by its\n" + .string "red roof and a “P.C” sign. Every\l" + .string "POKéMON CENTER offers such services as\l" + .string "fully healing POKéMON and free PC use,\l" + .string "making it essential for your travels.\l" + .string "On the upper floor are facilities for\l" + .string "linking with friends and others.$" + +gUnknown_81B50FF:: @ 81B50FF + .string "A POKéMON MART is identified by its\n" + .string "blue roof and a “MART” sign.\l" + .string "Items can be bought and sold at any\l" + .string "POKéMON MART. Some MARTS carry items\l" + .string "that are available only in their towns.$" + +gUnknown_81B51B1:: @ 81B51B1 + .string "You can safely end your game by\n" + .string "selecting “SAVE” on the MENU.\l" + .string "Once you have saved, the game can be\l" + .string "safely turned off. When the game is\l" + .string "turned back on, you can resume from\l" + .string "where you last saved.$" + +gUnknown_81B5272:: @ 81B5272 + .string "POKéMON are living beings about which\n" + .string "many mysteries still remain. You may\l" + .string "see them in grass, the sea, and caves.\l" + .string "They appear to obey the wishes of the\l" + .string "TRAINERS that caught them.$" + +gUnknown_81B5325:: @ 81B5325 + .string "Use the FAME CHECKER among the\n" + .string "KEY ITEMS in your BAG.\l" + .string "It may give you a hint, so try it out.$" + +gUnknown_81B5382:: @ 81B5382 + .string "A HIDDEN move is taught to a POKéMON\n" + .string "using an HM (Hidden Machine).\l" + .string "A HIDDEN move is important for helping\l" + .string "your adventure. For example, one is\l" + .string "used to light up dark caves. Another\l" + .string "cuts down small trees. There is one\l" + .string "for traveling on water, and so on.$" + +gUnknown_81B547C:: @ 81B547C + .string "Try to catch wild POKéMON by throwing\n" + .string "the special SAFARI BALLS.\l" + .string "You may keep any item you find, too.$" + +gUnknown_81B54E1:: @ 81B54E1 + .string "Your SAFARI GAME ends once you have\n" + .string "traveled a certain distance or thrown\l" + .string "all your SAFARI BALLS.\l" + .string "Open the MENU to check the remaining\l" + .string "number of steps and SAFARI BALLS.$" + +gUnknown_81B5589:: @ 81B5589 + .string "If you would like to cut your SAFARI\n" + .string "GAME short, open the MENU and select\l" + .string "“RETIRE” at the top of the list.$" + +gUnknown_81B55F4:: @ 81B55F4 + .string "POKéMON GYMS are operated by the\n" + .string "POKéMON LEAGUE and are training\l" + .string "facilities for TRAINERS. They are all\l" + .string "across the land in cities and towns.\l" + .string "Each one is headed by a LEADER, who\l" + .string "is a very skilled TRAINER. Beat the\l" + .string "LEADER to collect a BADGE.$" + +gUnknown_81B56E3:: @ 81B56E3 + .string " Using “POKéDEX”$" + +gUnknown_81B56F4:: @ 81B56F4 + .string " Using “POKéMON”$" + +gUnknown_81B5705:: @ 81B5705 + .string " Using “SUMMARY”$" + +gUnknown_81B5717:: @ 81B5717 + .string " Using “SWITCH”$" + +gUnknown_81B5728:: @ 81B5728 + .string " Using “ITEM”$" + +gUnknown_81B5737:: @ 81B5737 + .string " Using “BAG”$" + +gUnknown_81B5744:: @ 81B5744 + .string " Using an item$" + +gUnknown_81B5754:: @ 81B5754 + .string " Using a key item$" + +gUnknown_81B5767:: @ 81B5767 + .string " Using a POKé BALL$" + +gUnknown_81B577B:: @ 81B577B + .string " Using “{PLAYER}”$" + +gUnknown_81B5787:: @ 81B5787 + .string " Using “SAVE”$" + +gUnknown_81B5795:: @ 81B5795 + .string " Using “OPTION”$" + +gUnknown_81B57A5:: @ 81B57A5 + .string " Using a POTION$" + +gUnknown_81B57B8:: @ 81B57B8 + .string " Using the TOWN MAP$" + +gUnknown_81B57CF:: @ 81B57CF + .string " Using a TM$" + +gUnknown_81B57DE:: @ 81B57DE + .string " Using an HM$" + +gUnknown_81B57EE:: @ 81B57EE + .string "Using a move outside of battle$" + +gUnknown_81B580D:: @ 81B580D + .string " Riding the BICYCLE$" + +gUnknown_81B5824:: @ 81B5824 + .string "Entering a name$" + +gUnknown_81B5834:: @ 81B5834 + .string "Using a PC$" + +gUnknown_81B583F:: @ 81B583F + .string " Using “{STR_VAR_1}'S PC”$" + +gUnknown_81B5850:: @ 81B5850 + .string " Using “WITHDRAW”$" + +gUnknown_81B5863:: @ 81B5863 + .string " Using “DEPOSIT”$" + +gUnknown_81B5875:: @ 81B5875 + .string " Using “MOVE”$" + +gUnknown_81B5884:: @ 81B5884 + .string " Moving items$" + +gUnknown_81B5893:: @ 81B5893 + .string " Using “{PLAYER}'s PC”$" + +gUnknown_81B58A4:: @ 81B58A4 + .string " Using “WITHDRAW ITEM”$" + +gUnknown_81B58BC:: @ 81B58BC + .string " Using “DEPOSIT ITEM”$" + +gUnknown_81B58D3:: @ 81B58D3 + .string " Using “MAILBOX”$" + +gUnknown_81B58E5:: @ 81B58E5 + .string " Using “PROF. OAK'S PC”$" + +gUnknown_81B58FD:: @ 81B58FD + .string "Opening the MENU$" + +gUnknown_81B590E:: @ 81B590E + .string " Using “FIGHT”$" + +gUnknown_81B591D:: @ 81B591D + .string " Using “POKéMON”$" + +gUnknown_81B592E:: @ 81B592E + .string " Using “SHIFT”$" + +gUnknown_81B593E:: @ 81B593E + .string " Using “SUMMARY”$" + +gUnknown_81B5950:: @ 81B5950 + .string " Using “BAG”$" + +gUnknown_81B595D:: @ 81B595D + .string " Reading the “POKéDEX”$" + +gUnknown_81B5974:: @ 81B5974 + .string "Using the PC at home$" + +gUnknown_81B5989:: @ 81B5989 + .string "Using the Item Storage System$" + +gUnknown_81B59A7:: @ 81B59A7 + .string " Using “WITHDRAW ITEM”$" + +gUnknown_81B59BF:: @ 81B59BF + .string " Using “DEPOSIT ITEM”$" + +gUnknown_81B59D6:: @ 81B59D6 + .string "Using the MAILBOX$" + +gUnknown_81B59E8:: @ 81B59E8 + .string " Using “RUN”$" + +gUnknown_81B59F5:: @ 81B59F5 + .string " “REGISTER” a key item$" + +gUnknown_81B5A0D:: @ 81B5A0D + .string " Using “BALL”$" + +gUnknown_81B5A1B:: @ 81B5A1B + .string " Using “BAIT”$" + +gUnknown_81B5A29:: @ 81B5A29 + .string " Using “ROCK”$" + +gUnknown_81B5A37:: @ 81B5A37 + .string " Using “HALL OF FAME”$" + +gUnknown_81B5A4D:: @ 81B5A4D + .string "{EXTRA_CIRCLE_1} Select “POKéDEX” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Choose POKéMON using commands such\n" + .string " as “POKéMON LIST,”\n" + .string " “HABITATS OF POKéMON,” and\n" + .string " “SEARCH.”\n" + .string "{EXTRA_CIRCLE_3} Select a POKéMON to obtain detailed\n" + .string " information.$" + +gUnknown_81B5B0C:: @ 81B5B0C + .string "{EXTRA_CIRCLE_1} Select “POKéMON” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Choose a POKéMON in your party.\n" + .string "{EXTRA_CIRCLE_3} Select “SUMMARY,” “SWITCH,”\n" + .string " or “ITEM.”$" + +gUnknown_81B5B7D:: @ 81B5B7D + .string "{EXTRA_CIRCLE_1} Select “SUMMARY.”\n" + .string "{EXTRA_CIRCLE_2} Press left or right on the {EXTRA_PLUS} Control\n" + .string " Pad to check the information:\n" + .string " “POKéMON INFO”\n" + .string " “POKéMON SKILLS”\n" + .string " “KNOWN MOVES”$" + +gUnknown_81B5C13:: @ 81B5C13 + .string "{EXTRA_CIRCLE_1} Choose the POKéMON you want to\n" + .string " switch around.\n" + .string "{EXTRA_CIRCLE_2} Select “SWITCH.”\n" + .string "{EXTRA_CIRCLE_3} Select the POKéMON to switch with\n" + .string " the first one.\n" + .string "The POKéMON at the left of the screen\n" + .string "will be the first one out in a battle.$" + +gUnknown_81B5CDF:: @ 81B5CDF + .string "{EXTRA_CIRCLE_1} Select “ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select whether you want to “GIVE”\n" + .string " an item to the POKéMON to hold,\n" + .string " or “TAKE” an item it is holding.\n" + .string "A POKéMON can hold no more than one\n" + .string "item!$" + +gUnknown_81B5D87:: @ 81B5D87 + .string "{EXTRA_CIRCLE_1} Select “BAG” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Press left or right on the {EXTRA_PLUS} Control\n" + .string " Pad to check the data headings:\n" + .string " “ITEMS”\n" + .string " “KEY ITEMS”\n" + .string " “POKé BALLS”\n" + .string " Press up or down to select an item.$" + +gUnknown_81B5E41:: @ 81B5E41 + .string "{EXTRA_CIRCLE_1} Select the “ITEMS” POCKET.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad to select an item.\n" + .string "{EXTRA_CIRCLE_3} Select “USE” to use the selected\n" + .string " item.\n" + .string "Some items may not be used depending\n" + .string "on the place and/or situation.$" + +gUnknown_81B5F10:: @ 81B5F10 + .string "{EXTRA_CIRCLE_1} Select the “KEY ITEMS” POCKET.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad to select a key item.\n" + .string "{EXTRA_CIRCLE_3} Select “USE” to use the selected\n" + .string " key item.$" + +gUnknown_81B5FA6:: @ 81B5FA6 + .string "{EXTRA_CIRCLE_1} While battling a wild POKéMON,\n" + .string " select the BAG's “POKé BALLS”\n" + .string " POCKET.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad to select a POKé BALL.\n" + .string "{EXTRA_CIRCLE_3} Select “USE” to throw the selected\n" + .string " POKé BALL.$" + +gUnknown_81B606C:: @ 81B606C + .string "{EXTRA_CIRCLE_1} Select “{PLAYER}” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Your TRAINER CARD is displayed face\n" + .string " up with basic information. Press the\n" + .string " A Button to turn the CARD over.\n" + .string "{EXTRA_CIRCLE_3} A variety of data can be found on\n" + .string " the reverse side of the CARD.$" + +gUnknown_81B6140:: @ 81B6140 + .string "{EXTRA_CIRCLE_1} Select “SAVE” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Select “YES” and your progress is\n" + .string " recorded in the save file.\n" + .string "Once the game is saved, you may turn\n" + .string "off the game. Your game can be resumed\n" + .string "from where you saved.$" + +gUnknown_81B6203:: @ 81B6203 + .string "{EXTRA_CIRCLE_1} Select “OPTION” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad to select an optional item, then\n" + .string " press left or right to alter the\n" + .string " settings.\n" + .string "{EXTRA_CIRCLE_3} Select “CANCEL” or press the\n" + .string " B Button after making changes.$" + +gUnknown_81B62E4:: @ 81B62E4 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad and select “BAG.”\n" + .string "{EXTRA_CIRCLE_3} Select “POTION” in the “ITEMS”\n" + .string " POCKET.\n" + .string "{EXTRA_CIRCLE_4} Select “USE.”\n" + .string "{EXTRA_CIRCLE_5} Select the POKéMON to be healed.$" + +gUnknown_81B6397:: @ 81B6397 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad and select “BAG.”\n" + .string "{EXTRA_CIRCLE_3} Press left or right to open the\n" + .string " “KEY ITEMS” POCKET, then press\n" + .string " up or down to select “TOWN MAP.” \n" + .string "{EXTRA_CIRCLE_4} Select “USE” to open the TOWN MAP.$" + +gUnknown_81B6478:: @ 81B6478 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Open the “KEY ITEMS” POCKET in the\n" + .string " “BAG.”\n" + .string "{EXTRA_CIRCLE_3} “OPEN” the TM CASE.\n" + .string "{EXTRA_CIRCLE_4} Select and “USE” a TM.\n" + .string "{EXTRA_CIRCLE_5} Select a POKéMON that can learn the\n" + .string " move in the TM.$" + +gUnknown_81B6525:: @ 81B6525 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Open the “KEY ITEMS” POCKET in the\n" + .string " “BAG.”\n" + .string "{EXTRA_CIRCLE_3} “OPEN” the TM CASE.\n" + .string "{EXTRA_CIRCLE_4} Select and “USE” an HM.\n" + .string "{EXTRA_CIRCLE_5} Select a POKéMON that can learn it.\n" + .string "HMs are hard to remove, so be careful!$" + +gUnknown_81B65E7:: @ 81B65E7 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Select “POKéMON.”\n" + .string "{EXTRA_CIRCLE_3} Select a POKéMON that knows an\n" + .string " HM move. The usable HM move(s)\n" + .string " will be shown in blue. Select and\n" + .string " use the desired move to destroy an\n" + .string " obstacle, fly, surf, etc.$" + +gUnknown_81B66BA:: @ 81B66BA + .string "{EXTRA_CIRCLE_1} Open the MENU. Open the\n" + .string " “KEY ITEMS” POCKET in the “BAG”\n" + .string " and select the “BICYCLE.”\n" + .string "{EXTRA_CIRCLE_2} The BICYCLE can be ridden by\n" + .string " selecting “USE.” You may also\n" + .string " “REGISTER” it for instant use by\n" + .string " pressing SELECT.$" + +gUnknown_81B678E:: @ 81B678E + .string "{EXTRA_CIRCLE_1} Move the cursor to the letter you\n" + .string " want with the {EXTRA_PLUS} Control Pad, then\n" + .string " press the A Button to enter it.\n" + .string "{EXTRA_CIRCLE_2} Press the B Button to back up.\n" + .string "{EXTRA_CIRCLE_3} Press SELECT to switch between\n" + .string " uppercase and lowercase letters.\n" + .string "{EXTRA_CIRCLE_4} Press the A Button on “OK.”$" + +gUnknown_81B6883:: @ 81B6883 + .string "{EXTRA_CIRCLE_1} Go to any POKéMON CENTER, go up\n" + .string " to the PC, then press the A Button.$" + +gUnknown_81B68CD:: @ 81B68CD + .string "{EXTRA_CIRCLE_1} Select “{STR_VAR_1}'S PC” on the PC.\n" + .string "{EXTRA_CIRCLE_2} Select from one of the top three\n" + .string " MENU items to access the POKéMON\n" + .string " Storage System.\n" + .string "If you catch a POKéMON when you have\n" + .string "six in your party, the POKéMON is sent\n" + .string "automatically to a BOX in the System!$" + +gUnknown_81B69B9:: @ 81B69B9 + .string "{EXTRA_CIRCLE_1} Select a POKéMON in the open BOX\n" + .string " with the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_2} Select “WITHDRAW” to remove the\n" + .string " POKéMON from the BOX and add it to\n" + .string " your party.\n" + .string "You may not withdraw a POKéMON if you\n" + .string "already have six POKéMON with you!$" + +gUnknown_81B6A9A:: @ 81B6A9A + .string "{EXTRA_CIRCLE_1} Select a POKéMON in your party with\n" + .string " the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_2} Select “DEPOSIT.”\n" + .string "{EXTRA_CIRCLE_3} Select the BOX, then press the\n" + .string " A Button to store the POKéMON.\n" + .string "If you have only one POKéMON with you,\n" + .string "it may not be stored!$" + +gUnknown_81B6B6E:: @ 81B6B6E + .string "{EXTRA_CIRCLE_1} Select a POKéMON in the open BOX.\n" + .string "{EXTRA_CIRCLE_2} Pick up the POKéMON by selecting\n" + .string " “MOVE” and move it anywhere with\n" + .string " the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_3} Move the POKéMON to the BOX name\n" + .string " and press left or right to move it\n" + .string " to another BOX.$" + +gUnknown_81B6C4F:: @ 81B6C4F + .string "{EXTRA_CIRCLE_1} Faintly shown POKéMON can be made\n" + .string " to hold an item by selecting it and\n" + .string " pressing the A Button.\n" + .string "{EXTRA_CIRCLE_2} Clearly shown POKéMON can be made\n" + .string " to give the item they are holding to\n" + .string " another POKéMON, or return the item\n" + .string " to the BAG with the A Button.$" + +gUnknown_81B6D4A:: @ 81B6D4A + .string "{EXTRA_CIRCLE_1} Select “{PLAYER}'s PC” on the PC.\n" + .string "{EXTRA_CIRCLE_2} Select either “ITEM STORAGE” or\n" + .string " “MAILBOX.”\n" + .string "You may store things in your own PC\n" + .string "if your BAG is full. You may also\n" + .string "withdraw items stored in your PC.$" + +gUnknown_81B6E02:: @ 81B6E02 + .string "{EXTRA_CIRCLE_1} Select “WITHDRAW ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select the item to be withdrawn.\n" + .string "{EXTRA_CIRCLE_3} The item can be withdrawn and\n" + .string " placed in the BAG's ITEMS POCKET.\n" + .string " It may also be directly given to a\n" + .string " POKéMON to hold.$" + +gUnknown_81B6EC1:: @ 81B6EC1 + .string "{EXTRA_CIRCLE_1} Select “DEPOSIT ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select the item in the BAG to be\n" + .string " deposited using the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_3} If there is more than one \n" + .string " item to be deposited, enter the\n" + .string " quantity with the {EXTRA_PLUS} Control Pad,\n" + .string " then press the A Button.$" + +gUnknown_81B6FA8:: @ 81B6FA8 + .string "When MAIL is taken from a POKéMON,\n" + .string "it is moved to the MAILBOX. If it has\n" + .string "no MAIL, the MAILBOX can't be used.\n" + .string "{EXTRA_CIRCLE_1} Select “{PLAYER}'S PC” on the PC.\n" + .string "{EXTRA_CIRCLE_2} Select “MAILBOX” to read MAIL or\n" + .string " make a POKéMON hold MAIL.$" + +gUnknown_81B7075:: @ 81B7075 + .string "{EXTRA_CIRCLE_1} Select “PROF. OAK'S PC” on the PC.\n" + .string "{EXTRA_CIRCLE_2} PROF. OAK will evaluate your\n" + .string " POKéDEX.\n" + .string "His evaluations should give you hints\n" + .string "for catching more POKéMON!$" + +gUnknown_81B7108:: @ 81B7108 + .string "{EXTRA_CIRCLE_1} Press START.\n" + .string "{EXTRA_CIRCLE_2} The MENU will open on the right.\n" + .string "{EXTRA_CIRCLE_3} Depending on the situation, the MENU\n" + .string " may feature different headings.\n" + .string "The MENU will not open in certain\n" + .string "situations such as when talking, doing\n" + .string "something, battling, etc.$" + +gUnknown_81B71EA:: @ 81B71EA + .string "{EXTRA_CIRCLE_1} Select “FIGHT.”\n" + .string "{EXTRA_CIRCLE_2} Select one of the moves shown,\n" + .string "and that move will be used!$" + +gUnknown_81B723B:: @ 81B723B + .string "{EXTRA_CIRCLE_1} Select “POKéMON.”\n" + .string "{EXTRA_CIRCLE_2} Select the POKéMON in your party\n" + .string " that you want to use.\n" + .string "{EXTRA_CIRCLE_3} If you have two or more POKéMON\n" + .string " with you, they may be switched by\n" + .string " selecting “SHIFT.” Check POKéMON\n" + .string " data by selecting “SUMMARY.”$" + +gUnknown_81B7319:: @ 81B7319 + .string "This command switches the POKéMON in\n" + .string "battle with another one in your party.\n" + .string "{EXTRA_CIRCLE_1} Select the POKéMON to be sent out.\n" + .string "{EXTRA_CIRCLE_2} Select “SHIFT.”\n" + .string "{EXTRA_CIRCLE_3} The selected POKéMON will switch\n" + .string " places with the POKéMON in battle!$" + +gUnknown_81B73E8:: @ 81B73E8 + .string "{EXTRA_CIRCLE_1} Select “SUMMARY.”\n" + .string "{EXTRA_CIRCLE_2} Press left or right on the {EXTRA_PLUS} Control\n" + .string " Pad to check the information:\n" + .string " “POKéMON INFO”\n" + .string " “POKéMON SKILLS”\n" + .string " “KNOWN MOVES”$" + +gUnknown_81B747E:: @ 81B747E + .string "{EXTRA_CIRCLE_1} Select “BAG.”\n" + .string "{EXTRA_CIRCLE_2} Press left or right on the {EXTRA_PLUS} Control\n" + .string " Pad to check the data headings:\n" + .string " “ITEMS”\n" + .string " “KEY ITEMS”\n" + .string " “POKé BALLS”\n" + .string " Press up or down to select an item.$" + +gUnknown_81B752C:: @ 81B752C + .string "{EXTRA_CIRCLE_1} POKéMON that you have caught are\n" + .string " identified by a POKé BALL mark on\n" + .string " the POKéDEX list.\n" + .string "{EXTRA_CIRCLE_2} A caught POKéMON will provide a\n" + .string " large amount of data.\n" + .string "{EXTRA_CIRCLE_3} Select “AREA” to display the TOWN\n" + .string " MAP with the POKéMON's habitat(s).$" + +gUnknown_81B7611:: @ 81B7611 + .string "{EXTRA_CIRCLE_1} Go up to the PC at home, then press\n" + .string " the A Button.\n" + .string "{EXTRA_CIRCLE_2} The PC will turn on.\n" + .string "{EXTRA_CIRCLE_3} Select either “ITEM STORAGE” or\n" + .string " “MAILBOX.”$" + +gUnknown_81B7692:: @ 81B7692 + .string "{EXTRA_CIRCLE_1} Select “WITHDRAW ITEM” to withdraw\n" + .string " an item stored on your PC.\n" + .string "{EXTRA_CIRCLE_2} Select “DEPOSIT ITEM” to put \n" + .string " an item from your BAG into your PC.$" + +gUnknown_81B771E:: @ 81B771E + .string "{EXTRA_CIRCLE_1} Select “WITHDRAW ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select the item to be withdrawn.\n" + .string "{EXTRA_CIRCLE_3} The item can be withdrawn and\n" + .string " placed in the BAG's ITEMS POCKET.\n" + .string " It may also be directly given to a\n" + .string " POKéMON to hold.$" + +gUnknown_81B77DD:: @ 81B77DD + .string "{EXTRA_CIRCLE_1} Select “DEPOSIT ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select the item in the BAG to be\n" + .string " deposited using the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_3} If there is nothing in the BAG, this\n" + .string " command can't be used!$" + +gUnknown_81B7884:: @ 81B7884 + .string "When MAIL is taken from a POKéMON,\n" + .string "it is moved to the MAILBOX. If it has\n" + .string "no MAIL, the MAILBOX can't be used.\n" + .string "{EXTRA_CIRCLE_1} Select MAIL by name to read it or\n" + .string " make a POKéMON hold it.$" + +gUnknown_81B7931:: @ 81B7931 + .string "You may not “RUN” from a TRAINER\n" + .string "battle!\n" + .string "{EXTRA_CIRCLE_1} You may “RUN” from a wild POKéMON.\n" + .string "{EXTRA_CIRCLE_2} Your chance of escape is improved\n" + .string " if your POKéMON in battle is fast.$" + +gUnknown_81B79CB:: @ 81B79CB + .string "You may “REGISTER” a key item for\n" + .string "instant use by pressing SELECT!\n" + .string "{EXTRA_CIRCLE_1} Open the “KEY ITEMS” POCKET.\n" + .string "{EXTRA_CIRCLE_2} Select the key item, then select\n" + .string " “REGISTER.”$" + +gUnknown_81B7A60:: @ 81B7A60 + .string "{EXTRA_CIRCLE_1} Select to throw the special POKé\n" + .string " BALL used only in the SAFARI ZONE.\n" + .string "When wild POKéMON appear, throw lots\n" + .string "of SAFARI BALLS to catch them!$" + +gUnknown_81B7AEE:: @ 81B7AEE + .string "{EXTRA_CIRCLE_1} Select to throw the special food\n" + .string " used only in the SAFARI ZONE.\n" + .string "It is POKéMON food rolled up into\n" + .string "a ball for easy eating. When BAIT is\n" + .string "thrown, the wild POKéMON may get\n" + .string "attracted by it, and may not flee!$" + +gUnknown_81B7BBE:: @ 81B7BBE + .string "{EXTRA_CIRCLE_1} Select to throw a rock lying on\n" + .string " the ground in the SAFARI ZONE.\n" + .string "Throwing a rock at a POKéMON may \n" + .string "make it run away, but it becomes easier\n" + .string "to catch!$" + +gUnknown_81B7C57:: @ 81B7C57 + .string "{EXTRA_CIRCLE_1} Select “HALL OF FAME” on the PC.\n" + .string "{EXTRA_CIRCLE_2} The POKéMON that have entered the\n" + .string " HALL OF FAME can be examined.$" + +gUnknown_81B7CC1:: @ 81B7CC1 + .string "HP$" + +gUnknown_81B7CC4:: @ 81B7CC4 + .string "EXP. {EXTRA_LEFT_PAREN}EXP. Points{EXTRA_RIGHT_PAREN}$" + +gUnknown_81B7CD9:: @ 81B7CD9 + .string "MOVES$" + +gUnknown_81B7CDF:: @ 81B7CDF + .string "ATTACK$" + +gUnknown_81B7CE6:: @ 81B7CE6 + .string "DEFENSE$" + +gUnknown_81B7CEE:: @ 81B7CEE + .string "SP. ATK$" + +gUnknown_81B7CF6:: @ 81B7CF6 + .string "SP. DEF$" + +gUnknown_81B7CFE:: @ 81B7CFE + .string "SPEED$" + +gUnknown_81B7D04:: @ 81B7D04 + .string "Lv. {EXTRA_LEFT_PAREN}Level{EXTRA_RIGHT_PAREN}$" + +gUnknown_81B7D12:: @ 81B7D12 + .string "TYPE$" + +gUnknown_81B7D17:: @ 81B7D17 + .string "OT$" + +gUnknown_81B7D1A:: @ 81B7D1A + .string "ITEM$" + +gUnknown_81B7D1F:: @ 81B7D1F + .string "ABILITY$" + +gUnknown_81B7D27:: @ 81B7D27 + .string "MONEY$" + +gUnknown_81B7D2D:: @ 81B7D2D + .string "MOVE TYPE$" + +gUnknown_81B7D37:: @ 81B7D37 + .string "NATURE$" + +gUnknown_81B7D3E:: @ 81B7D3E + .string "ID No.$" + +gUnknown_81B7D45:: @ 81B7D45 + .string "PP$" + +gUnknown_81B7D48:: @ 81B7D48 + .string "POWER$" + +gUnknown_81B7D4E:: @ 81B7D4E + .string "ACCURACY$" + +gUnknown_81B7D57:: @ 81B7D57 + .string "FNT$" + +gUnknown_81B7D5B:: @ 81B7D5B + .string "ITEMS$" + +gUnknown_81B7D61:: @ 81B7D61 + .string "KEY ITEMS$" + +gUnknown_81B7D6B:: @ 81B7D6B + .string "POKé BALLS$" + +gUnknown_81B7D76:: @ 81B7D76 + .string "POKéDEX$" + +gUnknown_81B7D7E:: @ 81B7D7E + .string "PLAY TIME$" + +gUnknown_81B7D88:: @ 81B7D88 + .string "BADGES$" + +gUnknown_81B7D8F:: @ 81B7D8F + .string "TEXT SPEED$" + +gUnknown_81B7D9A:: @ 81B7D9A + .string "BATTLE SCENE$" + +gUnknown_81B7DA7:: @ 81B7DA7 + .string "BATTLE STYLE$" + +gUnknown_81B7DB4:: @ 81B7DB4 + .string "SOUND$" + +gUnknown_81B7DBA:: @ 81B7DBA + .string "BUTTON MODE$" + +gUnknown_81B7DC6:: @ 81B7DC6 + .string "FRAME$" + +gUnknown_81B7DCC:: @ 81B7DCC + .string "CANCEL$" + +gUnknown_81B7DD3:: @ 81B7DD3 + .string "TM$" + +gUnknown_81B7DD6:: @ 81B7DD6 + .string "HM$" + +gUnknown_81B7DD9:: @ 81B7DD9 + .string "HM MOVE$" + +gUnknown_81B7DE1:: @ 81B7DE1 + .string "EVOLUTION$" + +gUnknown_81B7DEB:: @ 81B7DEB + .string "STATUS PROBLEM$" + +gUnknown_81B7DFA:: @ 81B7DFA + .string "POKéMON$" + +gUnknown_81B7E02:: @ 81B7E02 + .string "ID No.$" + +gUnknown_81B7E09:: @ 81B7E09 + .string "MONEY$" + +gUnknown_81B7E0F:: @ 81B7E0F + .string "BADGES$" + +gUnknown_81B7E16:: @ 81B7E16 + .string "HP indicates a POKéMON's vitality.\n" + .string "If a POKéMON's HP drops to zero, it\l" + .string "faints and is unable to battle.\l" + .string "So, the key in battle is to try to\l" + .string "reduce the foe's HP to zero.\l" + .string "If your POKéMON are hurt, restore their\l" + .string "HP at a POKéMON CENTER or use items.$" + +gUnknown_81B7F0A:: @ 81B7F0A + .string "EXP. Points stands for “Experience\n" + .string "Points.” POKéMON gain EXP. Points by\l" + .string "participating in winning battles.\l" + .string "When a POKéMON accumulates sufficient\l" + .string "EXP. Points, it levels up. The EXP. Bar\l" + .string "indicates accumulated EXP. Points.\l" + .string "It returns to zero upon leveling up.$" + +gUnknown_81B800A:: @ 81B800A + .string "POKéMON may learn up to four different\n" + .string "moves. There are many kinds of moves\l" + .string "including attacks and those with\l" + .string "special effects. The kinds of moves\l" + .string "that can be learned vary for each\l" + .string "POKéMON. Some moves can be learned\l" + .string "from items.$" + +gUnknown_81B80EC:: @ 81B80EC + .string "ATTACK indicates the power of an\n" + .string "offensive move. The higher this stat,\l" + .string "the more powerful the move.\l" + .string "It is applied for the following move\l" + .string "types: NORMAL, POISON, GROUND,\l" + .string "FLYING, BUG, FIGHTING, ROCK, GHOST,\l" + .string "and STEEL.$" + +gUnknown_81B81C2:: @ 81B81C2 + .string "DEFENSE indicates the resistance a\n" + .string "POKéMON has against physical attacks.\l" + .string "The higher this stat, the less damage\l" + .string "sustained from a foe's physical hit.$" + +gUnknown_81B8256:: @ 81B8256 + .string "SP. ATK (Special Attack) indicates the\n" + .string "power of a special attack move.\l" + .string "The higher this stat, the more powerful\l" + .string "the special attack move.\l" + .string "It is applied for the following move\l" + .string "types: FIRE, WATER, ELECTRIC, GRASS,\l" + .string "ICE, PSYCHIC, DRAGON, and DARK.$" + +gUnknown_81B8348:: @ 81B8348 + .string "SP. DEF (Special Defense) indicates\n" + .string "the resistance a POKéMON has against\l" + .string "special attacks.\l" + .string "The higher this stat, the less damage\l" + .string "sustained from a foe's special attack.$" + +gUnknown_81B83EF:: @ 81B83EF + .string "SPEED indicates the agility of a\n" + .string "POKéMON. If this stat exceeds the foe's\l" + .string "in battle, the POKéMON can make a move\l" + .string "before its slower opponent.$" + +gUnknown_81B847B:: @ 81B847B + .string "Lv. (Level) indicates the growth and\n" + .string "strength of a POKéMON.\l" + .string "In general, when a POKéMON levels up,\l" + .string "its stats such as HP, ATTACK, and\l" + .string "DEFENSE rise, making it stronger.\l" + .string "POKéMON may learn a new move upon\l" + .string "leveling up.$" + +gUnknown_81B8550:: @ 81B8550 + .string "POKéMON and moves are classified by\n" + .string "type. Every type has advantageous and\l" + .string "disadvantageous matchups against\l" + .string "other types. For example, like a rock-\l" + .string "paper-scissors game, the WATER type is\l" + .string "strong against the FIRE type and weak\l" + .string "against the GRASS type.$" + +gUnknown_81B8647:: @ 81B8647 + .string "OT stands for “Original TRAINER,”\n" + .string "the first TRAINER to have caught the\l" + .string "selected POKéMON.\l" + .string "Even if the POKéMON is traded, the OT\l" + .string "name will remain unchanged.$" + +gUnknown_81B86E2:: @ 81B86E2 + .string "All POKéMON can be made to hold one\n" + .string "item each. Some items will be used by\l" + .string "the POKéMON automatically in certain\l" + .string "situations. To make a POKéMON hold an\l" + .string "item, select the item from the BAG and\l" + .string "“GIVE” it to the POKéMON.$" + +gUnknown_81B87B8:: @ 81B87B8 + .string "All POKéMON have a special ABILITY.\n" + .string "There are many different kinds of these\l" + .string "abilities, some used in battle, some\l" + .string "elsewhere. The abilities differ from\l" + .string "species to species. Some species may\l" + .string "have more than one kind of ability.$" + +gUnknown_81B8897:: @ 81B8897 + .string "Whenever you win a battle against a\n" + .string "TRAINER, you are given prize money.\l" + .string "Save up your prize money so you can\l" + .string "enjoy shopping at POKéMON MARTS!$" + +gUnknown_81B8924:: @ 81B8924 + .string "Moves are also classified by types.\n" + .string "If a POKéMON of a certain type uses\l" + .string "a move of the same type, the move's\l" + .string "power is boosted. If the move's type\l" + .string "has a matchup advantage against the\l" + .string "target, its effectiveness is also\l" + .string "boosted.$" + +gUnknown_81B8A04:: @ 81B8A04 + .string "All POKéMON have a personality,\n" + .string "or “NATURE.” The POKéMON's\l" + .string "nature appears to affect how the\l" + .string "POKéMON will grow upon leveling up.$" + +gUnknown_81B8A84:: @ 81B8A84 + .string "The ID No. is a special number assigned\n" + .string "specifically to you as a TRAINER.\l" + .string "Together with the OT name, the ID No.\l" + .string "is used to precisely identify the\l" + .string "Original TRAINER.\l" + .string "The ID No. does not change even if the\l" + .string "POKéMON is traded.$" + +gUnknown_81B8B62:: @ 81B8B62 + .string "PP stands for “Power Points.”\n" + .string "It indicates the number of times a\l" + .string "certain move can be used in battle.\l" + .string "Like HP, PP can be restored by visiting\l" + .string "a POKéMON CENTER or using certain\l" + .string "items.$" + +gUnknown_81B8C18:: @ 81B8C18 + .string "POWER indicates the strength of an\n" + .string "attack. The higher this number, the\l" + .string "greater the damage that can be\l" + .string "inflicted on the foe!$" + +gUnknown_81B8C94:: @ 81B8C94 + .string "ACCURACY indicates the probability of\n" + .string "the move hitting the foe.\l" + .string "The higher this number, the more likely\l" + .string "the move will strike the target.$" + +gUnknown_81B8D1D:: @ 81B8D1D + .string "FNT stands for “fainted.”\n" + .string "A POKéMON faints if its HP is reduced\l" + .string "to zero. It becomes incapable of taking\l" + .string "part in battle.\l" + .string "Restore a fainted POKéMON at a POKéMON\l" + .string "CENTER, or use an item.$" + +gUnknown_81B8DD4:: @ 81B8DD4 + .string "Ordinary items bought at any POKéMON\n" + .string "MART are placed in the ITEMS POCKET.\l" + .string "Items may be used, given to a POKéMON\l" + .string "to hold, or tossed out as garbage.$" + +gUnknown_81B8E67:: @ 81B8E67 + .string "Important items that you find or \n" + .string "receive from people are placed in the\l" + .string "KEY ITEMS POCKET.\l" + .string "Key items may be used, or registered\l" + .string "for use instantly with SELECT. Once\l" + .string "registered, the item can be used\l" + .string "without opening the MENU and BAG.$" + +gUnknown_81B8F4D:: @ 81B8F4D + .string "POKé BALLS, which are used for\n" + .string "catching wild POKéMON, are placed in\l" + .string "the POKé BALLS POCKET.\l" + .string "POKé BALLS may be bought at POKéMON\l" + .string "MARTS. They may be used, given to a\l" + .string "POKéMON to hold, or tossed out as\l" + .string "garbage.$" + +gUnknown_81B901B:: @ 81B901B + .string "This indicates the number of species of\n" + .string "POKéMON you have caught and/or\l" + .string "evolved to fill the POKéDEX.\l" + .string "Try hard to catch all sorts of\l" + .string "POKéMON!$" + +gUnknown_81B90A7:: @ 81B90A7 + .string "This is the total amount of time that\n" + .string "you have played this game.$" + +gUnknown_81B90E8:: @ 81B90E8 + .string "The POKéMON LEAGUE BADGES that you\n" + .string "have won are registered and shown.\l" + .string "Earn BADGES by defeating GYM LEADERS\l" + .string "in various cities and towns.$" + +gUnknown_81B9170:: @ 81B9170 + .string "You can adjust how quickly the text is\n" + .string "displayed. Choose one: SLOW, MID,\l" + .string "or FAST.$" + +gUnknown_81B91C2:: @ 81B91C2 + .string "You can choose to turn the battle\n" + .string "animation ON or OFF.$" + +gUnknown_81B91F9:: @ 81B91F9 + .string "You can choose whether or not a\n" + .string "TRAINER can switch a POKéMON after\l" + .string "it has made its foe faint.\l" + .string "Set to “SHIFT” if you would like the\l" + .string "chance to switch a POKéMON after it\l" + .string "has made its foe faint.$" + +gUnknown_81B92B8:: @ 81B92B8 + .string "You can choose between MONO and\n" + .string "STEREO sound output.$" + +gUnknown_81B92ED:: @ 81B92ED + .string "Set to “HELP” to display help messages\n" + .string "by pressing the L or R Button.\l" + .string "Set to “LR” to enable the switching\l" + .string "of the POKéDEX pages and BAG POCKETS\l" + .string "using the L and R Buttons.\l" + .string "Set to “L=A” to make the L Button\l" + .string "work the same as the A Button.$" + +gUnknown_81B93D8:: @ 81B93D8 + .string "You may choose the design of the frame\n" + .string "around certain menus. Try them out and\l" + .string "see what you like.$" + +gUnknown_81B9439:: @ 81B9439 + .string "The settings will be changed to the\n" + .string "selections shown in red, and you will\l" + .string "return to the MENU.$" + +gUnknown_81B9497:: @ 81B9497 + .string "A TM (Technical Machine) is a device\n" + .string "used to teach a move to a POKéMON.\l" + .string "There are many different kinds.\l" + .string "Moves can be taught only to those\l" + .string "POKéMON capable of using them.\l" + .string "A TM breaks after a single use.$" + +gUnknown_81B9560:: @ 81B9560 + .string "An HM (Hidden Machine) is a device used\n" + .string "to teach a HIDDEN move to a POKéMON.\l" + .string "A HIDDEN move can be taught only to\l" + .string "those POKéMON capable of using it.\l" + .string "Unlike a TM, an HM can be used over\l" + .string "and over. A HIDDEN move can be tough\l" + .string "for a POKéMON to forget.$" + +gUnknown_81B9656:: @ 81B9656 + .string "HIDDEN moves are those that are\n" + .string "especially important for your\l" + .string "adventure. To use such a move outside\l" + .string "of battle, open the “POKéMON” MENU\l" + .string "and make the POKéMON that knows the\l" + .string "move use it. A fainted POKéMON may use\l" + .string "a HIDDEN move outside of battle.$" + +gUnknown_81B9749:: @ 81B9749 + .string "Among POKéMON, there are some that\n" + .string "undergo major changes (evolution) upon\l" + .string "growing to certain levels. Evolution\l" + .string "causes a POKéMON to alter form, change\l" + .string "its name, and perhaps change the moves\l" + .string "it may learn. Some POKéMON evolve\l" + .string "due to reasons other than leveling up.$" + +gUnknown_81B984F:: @ 81B984F + .string "Status problems include:\n" + .string "Sleep: Can't use moves.\l" + .string "Poison: Causes steady HP loss.\l" + .string "Paralysis: May prevent moves.\l" + .string "Burn: HP loss and lowers ATTACK.\l" + .string "Freeze: Can't use moves.\l" + .string "These can be healed with items, etc.$" + +gUnknown_81B991C:: @ 81B991C + .string "POKéMON is a name given to describe\n" + .string "wondrous creatures that inhabit all\l" + .string "corners of this world.\l" + .string "People raise POKéMON to be their pets,\l" + .string "use them for battling, and so on.$" + +gUnknown_81B99C4:: @ 81B99C4 + .string "The ID No. is a special number assigned\n" + .string "specifically to you as a TRAINER.\l" + .string "Together with the OT name, the ID No.\l" + .string "is used to precisely identify the\l" + .string "Original TRAINER.\l" + .string "The ID No. does not change even if the\l" + .string "POKéMON is traded.$" + +gUnknown_81B9AA2:: @ 81B9AA2 + .string "Whenever you win a battle against a\n" + .string "TRAINER, you are given prize money.\l" + .string "Save up your prize money so you can\l" + .string "enjoy shopping at POKéMON MARTS!$" + +gUnknown_81B9B2F:: @ 81B9B2F + .string "This indicates the number of POKéMON\n" + .string "LEAGUE BADGES that you have won.\l" + .string "Earn BADGES by defeating GYM LEADERS\l" + .string "in various cities and towns.$" + +gUnknown_81B9BB7:: @ 81B9BB7 + .string "The HELP System$" + +gUnknown_81B9BC7:: @ 81B9BC7 + .string "The game$" + +gUnknown_81B9BD0:: @ 81B9BD0 + .string "Wireless Adapter$" + +gUnknown_81B9BE1:: @ 81B9BE1 + .string "Game fundamentals 1$" + +gUnknown_81B9BF5:: @ 81B9BF5 + .string "Game fundamentals 2$" + +gUnknown_81B9C09:: @ 81B9C09 + .string "Game fundamentals 3$" + +gUnknown_81B9C1D:: @ 81B9C1D + .string "What are POKéMON?$" + +gUnknown_81B9C2F:: @ 81B9C2F + .string "The help messages change depending on\n" + .string "how much you have progressed in the\l" + .string "game. They are designed to support you\l" + .string "when you need them. If there is\l" + .string "anything that you don't understand,\l" + .string "please look up the HELP System!$" + +gUnknown_81B9D04:: @ 81B9D04 + .string "You become the main character to\n" + .string "explore the world of POKéMON!\l" + .string "By talking to people and solving\l" + .string "mysteries, new paths will open to you.\l" + .string "Strive for the goal together with your\l" + .string "wonderful POKéMON!$" + +gUnknown_81B9DC5:: @ 81B9DC5 + .string "This game communicates over a wireless\n" + .string "link using the Wireless Adapter.\p" + .string "Go wireless anywhere, anytime, and\n" + .string "with anybody!\p" + .string "Try playing with the Wireless Adapter\n" + .string "always attached!$" + +gUnknown_81B9E75:: @ 81B9E75 + .string "Visit every city and town, travel every\n" + .string "road, explore every cave, and face\l" + .string "every challenge as you strive to\l" + .string "become the greatest TRAINER of\l" + .string "POKéMON!$" + +gUnknown_81B9F09:: @ 81B9F09 + .string "On your adventure, you will be faced\n" + .string "with many obstacles. Every obstacle\l" + .string "can be overcome by doing something\l" + .string "or by solving mysteries. Some obstacles\l" + .string "are affected by something that happens\l" + .string "far away.$" + +gUnknown_81B9FCE:: @ 81B9FCE + .string "Some of the obstacles in your way can\n" + .string "be removed once your POKéMON learn\l" + .string "specific moves.$" + +gUnknown_81BA027:: @ 81BA027 + .string "POKéMON are wondrous creatures that\n" + .string "are shrouded in mystery. You may meet\l" + .string "them all over the world…in tall\l" + .string "grass, caves, the sea, and more.\l" + .string "They appear to grow obedient to the\l" + .string "TRAINERS that caught them.$" + +gUnknown_81BA0F1:: @ 81BA0F1 + .string "Using the Type Matchup List$" + +gUnknown_81BA10D:: @ 81BA10D + .string "Own move type: DARK$" + +gUnknown_81BA121:: @ 81BA121 + .string "Own POKéMON type: DARK$" + +gUnknown_81BA138:: @ 81BA138 + .string "Own move type: ROCK$" + +gUnknown_81BA14C:: @ 81BA14C + .string "Own POKéMON type: ROCK$" + +gUnknown_81BA163:: @ 81BA163 + .string "Own move type: PSYCHIC$" + +gUnknown_81BA17A:: @ 81BA17A + .string "Own POKéMON type: PSYCHIC$" + +gUnknown_81BA194:: @ 81BA194 + .string "Own move type: FIGHTING$" + +gUnknown_81BA1AC:: @ 81BA1AC + .string "Own POKéMON type: FIGHTING$" + +gUnknown_81BA1C7:: @ 81BA1C7 + .string "Own move type: GRASS$" + +gUnknown_81BA1DC:: @ 81BA1DC + .string "Own POKéMON type: GRASS$" + +gUnknown_81BA1F4:: @ 81BA1F4 + .string "Own move type: GHOST$" + +gUnknown_81BA209:: @ 81BA209 + .string "Own POKéMON type: GHOST$" + +gUnknown_81BA221:: @ 81BA221 + .string "Own move type: ICE$" + +gUnknown_81BA234:: @ 81BA234 + .string "Own POKéMON type: ICE$" + +gUnknown_81BA24A:: @ 81BA24A + .string "Own move type: GROUND$" + +gUnknown_81BA260:: @ 81BA260 + .string "Own POKéMON type: GROUND$" + +gUnknown_81BA279:: @ 81BA279 + .string "Own move type: ELECTRIC$" + +gUnknown_81BA291:: @ 81BA291 + .string "Own POKéMON type: ELECTRIC$" + +gUnknown_81BA2AC:: @ 81BA2AC + .string "Own move type: POISON$" + +gUnknown_81BA2C2:: @ 81BA2C2 + .string "Own POKéMON type: POISON$" + +gUnknown_81BA2DB:: @ 81BA2DB + .string "Own move type: DRAGON$" + +gUnknown_81BA2F1:: @ 81BA2F1 + .string "Own POKéMON type: DRAGON$" + +gUnknown_81BA30A:: @ 81BA30A + .string "Own move type: NORMAL$" + +gUnknown_81BA320:: @ 81BA320 + .string "Own POKéMON type: NORMAL$" + +gUnknown_81BA339:: @ 81BA339 + .string "Own move type: STEEL$" + +gUnknown_81BA34E:: @ 81BA34E + .string "Own POKéMON type: STEEL$" + +gUnknown_81BA366:: @ 81BA366 + .string "Own move type: FLYING$" + +gUnknown_81BA37C:: @ 81BA37C + .string "Own POKéMON type: FLYING$" + +gUnknown_81BA395:: @ 81BA395 + .string "Own move type: FIRE$" + +gUnknown_81BA3A9:: @ 81BA3A9 + .string "Own POKéMON type: FIRE$" + +gUnknown_81BA3C0:: @ 81BA3C0 + .string "Own move type: WATER$" + +gUnknown_81BA3D5:: @ 81BA3D5 + .string "Own POKéMON type: WATER$" + +gUnknown_81BA3ED:: @ 81BA3ED + .string "Own move type: BUG$" + +gUnknown_81BA400:: @ 81BA400 + .string "Own POKéMON type: BUG$" + +gUnknown_81BA416:: @ 81BA416 + .string "Depending on the matchup of the\n" + .string "move type and the target POKéMON's\l" + .string "type, the move's effectiveness varies:\l" + .string "{EXTRA_TARGET}: Super effective!\l" + .string "{EXTRA_TRIANGLE}: Not very effective\l" + .string "{EXTRA_X}: Not effective at all\l" + .string "(No changes for other matchups.)$" + +gUnknown_81BA4E6:: @ 81BA4E6 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: PSYCHIC, GHOST\p" + .string " {EXTRA_TRIANGLE}: FIGHTING, DARK, STEEL$" + +gUnknown_81BA539:: @ 81BA539 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIGHTING, BUG\p" + .string " {EXTRA_TRIANGLE}: GHOST, DARK\p" + .string " {EXTRA_X}: PSYCHIC$" + +gUnknown_81BA595:: @ 81BA595 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, ICE, FLYING, BUG\p" + .string " {EXTRA_TRIANGLE}: FIGHTING, GROUND, STEEL$" + +gUnknown_81BA5F2:: @ 81BA5F2 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, GRASS, FIGHTING,\n" + .string " GROUND, STEEL\p" + .string " {EXTRA_TRIANGLE}: NORMAL, FIRE, POISON, FLYING$" + +gUnknown_81BA66F:: @ 81BA66F + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: FIGHTING, POISON\p" + .string " {EXTRA_TRIANGLE}: PSYCHIC, STEEL\p" + .string " {EXTRA_X}: DARK$" + +gUnknown_81BA6C9:: @ 81BA6C9 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: BUG, GHOST, DARK\p" + .string " {EXTRA_TRIANGLE}: FIGHTING, PSYCHIC$" + +gUnknown_81BA71F:: @ 81BA71F + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: NORMAL, ICE, ROCK, DARK, STEEL\p" + .string " {EXTRA_TRIANGLE}: POISON, FLYING, PSYCHIC, BUG\p" + .string " {EXTRA_X}: GHOST$" + +gUnknown_81BA796:: @ 81BA796 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FLYING, PSYCHIC\p" + .string " {EXTRA_TRIANGLE}: BUG, ROCK, DARK$" + +gUnknown_81BA7E9:: @ 81BA7E9 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, GROUND, ROCK\p" + .string " {EXTRA_TRIANGLE}: FIRE, GRASS, POISON, FLYING,\n" + .string " BUG, DRAGON, STEEL$" + +gUnknown_81BA862:: @ 81BA862 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, ICE, POISON, FLYING, BUG\p" + .string " {EXTRA_TRIANGLE}: WATER, ELECTRIC, GRASS, GROUND$" + +gUnknown_81BA8D3:: @ 81BA8D3 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: PSYCHIC, GHOST\p" + .string " {EXTRA_TRIANGLE}: DARK, STEEL\p" + .string " {EXTRA_X}: NORMAL$" + +gUnknown_81BA92A:: @ 81BA92A + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: GHOST, DARK\p" + .string " {EXTRA_TRIANGLE}: POISON, BUG\p" + .string " {EXTRA_X}: NORMAL, FIGHTING$" + +gUnknown_81BA98D:: @ 81BA98D + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS, GROUND, FLYING, DRAGON\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ICE, STEEL$" + +gUnknown_81BA9F1:: @ 81BA9F1 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, FIGHTING, ROCK, STEEL\p" + .string " {EXTRA_TRIANGLE}: ICE$" + +gUnknown_81BAA44:: @ 81BAA44 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, ELECTRIC, POISON, ROCK,\n" + .string " STEEL\p" + .string " {EXTRA_TRIANGLE}: GRASS, BUG\n" + .string " {EXTRA_X}: FLYING$" + +gUnknown_81BAAB6:: @ 81BAAB6 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, GRASS, ICE\p" + .string " {EXTRA_TRIANGLE}: POISON, ROCK\p" + .string " {EXTRA_X}: ELECTRIC$" + +gUnknown_81BAB18:: @ 81BAB18 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, FLYING\p" + .string " {EXTRA_TRIANGLE}: ELECTRIC, GRASS, DRAGON\p" + .string " {EXTRA_X}: GROUND$" + +gUnknown_81BAB7A:: @ 81BAB7A + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: GROUND\p" + .string " {EXTRA_TRIANGLE}: ELECTRIC, FLYING, STEEL$" + +gUnknown_81BABCC:: @ 81BABCC + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS\p" + .string " {EXTRA_TRIANGLE}: POISON, GROUND, ROCK, GHOST\p" + .string " {EXTRA_X}: STEEL$" + +gUnknown_81BAC29:: @ 81BAC29 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: GROUND, PSYCHIC\p" + .string " {EXTRA_TRIANGLE}: GRASS, FIGHTING, POISON, BUG$" + +gUnknown_81BAC89:: @ 81BAC89 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: DRAGON\p" + .string " {EXTRA_TRIANGLE}: STEEL$" + +gUnknown_81BACC4:: @ 81BACC4 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: ICE, DRAGON\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ELECTRIC, GRASS$" + +gUnknown_81BAD20:: @ 81BAD20 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TRIANGLE}: ROCK, STEEL\p" + .string " {EXTRA_X}: GHOST$" + +gUnknown_81BAD60:: @ 81BAD60 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIGHTING\p" + .string " {EXTRA_X}: GHOST$" + +gUnknown_81BADA2:: @ 81BADA2 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: ICE, ROCK\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ELECTRIC, STEEL$" + +gUnknown_81BADF7:: @ 81BADF7 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, FIGHTING, GROUND\n" + .string " {EXTRA_TRIANGLE}: NORMAL, GRASS, ICE, FLYING,\l" + .string " PSYCHIC, BUG, ROCK, GHOST,\l" + .string " DRAGON, DARK, STEEL\l" + .string " {EXTRA_X}: POISON$" + +gUnknown_81BAEA8:: @ 81BAEA8 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS, FIGHTING, BUG\p" + .string " {EXTRA_TRIANGLE}: ELECTRIC, ROCK, STEEL$" + +gUnknown_81BAF01:: @ 81BAF01 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: ELECTRIC, ICE, ROCK\p" + .string " {EXTRA_TRIANGLE}: GRASS, FIGHTING, BUG\p" + .string " {EXTRA_X}: GROUND$" + +gUnknown_81BAF6B:: @ 81BAF6B + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS, ICE, BUG, STEEL\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ROCK, DRAGON$" + +gUnknown_81BAFCA:: @ 81BAFCA + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, GROUND, ROCK\p" + .string " {EXTRA_TRIANGLE}: FIRE, GRASS, ICE, BUG, STEEL$" + +gUnknown_81BB02E:: @ 81BB02E + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, GROUND, ROCK\p" + .string " {EXTRA_TRIANGLE}: WATER, GRASS, DRAGON$" + +gUnknown_81BB084:: @ 81BB084 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: ELECTRIC, GRASS\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ICE, STEEL$" + +gUnknown_81BB0DF:: @ 81BB0DF + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS, PSYCHIC, DARK\p" + .string " {EXTRA_TRIANGLE}: FIRE, FIGHTING, POISON,\n" + .string " FLYING, GHOST, STEEL$" + +gUnknown_81BB156:: @ 81BB156 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, FLYING, ROCK\p" + .string " {EXTRA_TRIANGLE}: GRASS, FIGHTING, GROUND$" + diff --git a/data/text/map_section_names.inc b/data/text/map_section_names.inc index e91368a40..070375510 100644 --- a/data/text/map_section_names.inc +++ b/data/text/map_section_names.inc @@ -128,7 +128,7 @@ gMapSecName_UndergroundPath_2:: .string "UNDERGROUND PATH$" gMapSecName_DiglettsCave:: - .string "DIGLETT’S CAVE$" + .string "DIGLETT'S CAVE$" gMapSecName_VictoryRoad:: .string "VICTORY ROAD$" diff --git a/data/text/move_descriptions.inc b/data/text/move_descriptions.inc index 78822e1d8..94a4d0ca8 100644 --- a/data/text/move_descriptions.inc +++ b/data/text/move_descriptions.inc @@ -1,1065 +1,1062 @@ -gUnknown_8482834:: +gMoveDescription_Pound:: .string "A physical attack\ndelivered with a\nlong tail or a\nforeleg, etc.$" -gUnknown_8482874:: @ 8482874 +gMoveDescription_KarateChop:: @ 8482874 .string "The foe is attacked\nwith a sharp chop.\nIt has a high\ncritical-hit ratio.$" -gUnknown_84828BD:: @ 84828BD +gMoveDescription_DoubleSlap:: @ 84828BD .string "The foe is slapped\nrepeatedly, back\nand forth, two to\nfive times.$" -gUnknown_84828FF:: @ 84828FF +gMoveDescription_CometPunch:: @ 84828FF .string "The foe is hit with\na flurry of punches\nthat strike two to\nfive times.$" -gUnknown_8482946:: @ 8482946 +gMoveDescription_MegaPunch:: @ 8482946 .string "The foe is slugged\nby a punch thrown\nwith muscle-packed\npower.$" -gUnknown_8482985:: @ 8482985 +gMoveDescription_PayDay:: @ 8482985 .string "Numerous coins are\nhurled at the foe.\nMoney is earned\nafter battle.$" -gUnknown_84829C9:: @ 84829C9 +gMoveDescription_FirePunch:: @ 84829C9 .string "The foe is punched\nwith a fiery fist.\nIt may leave the\nfoe with a burn.$" -gUnknown_8482A11:: @ 8482A11 +gMoveDescription_IcePunch:: @ 8482A11 .string "The foe is punched\nwith an icy fist.\nIt may leave the\nfoe frozen.$" -gUnknown_8482A53:: @ 8482A53 +gMoveDescription_ThunderPunch:: @ 8482A53 .string "The foe is punched\nwith an electrified\nfist. It may leave\nthe foe paralyzed.$" -gUnknown_8482AA0:: @ 8482AA0 +gMoveDescription_Scratch:: @ 8482AA0 .string "Hard, pointed, and\nsharp claws rake\nthe foe.$" -gUnknown_8482ACD:: @ 8482ACD +gMoveDescription_ViceGrip:: @ 8482ACD .string "Huge, impressive\npincers grip and\nsqueeze the foe.$" -gUnknown_8482B00:: @ 8482B00 +gMoveDescription_Guillotine:: @ 8482B00 .string "A vicious tearing\nattack with pincers.\nThe foe will faint\nif it hits.$" -gUnknown_8482B46:: @ 8482B46 +gMoveDescription_RazorWind:: @ 8482B46 .string "Blades of wind hit\nthe foe on the 2nd\nturn. It has a high\ncritical-hit ratio.$" -gUnknown_8482B94:: @ 8482B94 +gMoveDescription_SwordsDance:: @ 8482B94 .string "A frenetic dance of\nfighting. It sharply\nraises the ATTACK\nstat.$" -gUnknown_8482BD5:: @ 8482BD5 +gMoveDescription_Cut:: @ 8482BD5 .string "A basic attack.\nIt can be used to\ncut down thin trees\nand grass.$" -gUnknown_8482C16:: @ 8482C16 +gMoveDescription_Gust:: @ 8482C16 .string "Strikes the foe\nwith a gust of wind\nwhipped up by\nwings.$" -gUnknown_8482C4F:: @ 8482C4F +gMoveDescription_WingAttack:: @ 8482C4F .string "The foe is struck\nwith large, imposing\nwings spread wide.$" -gUnknown_8482C89:: @ 8482C89 +gMoveDescription_Whirlwind:: @ 8482C89 .string "The foe is made to\nswitch out with an\nally. In the wild,\nthe battle ends.$" -gUnknown_8482CD3:: @ 8482CD3 +gMoveDescription_Fly:: @ 8482CD3 .string "A 2-turn move that\nhits on the 2nd\nturn. Use it to fly\nto any known town.$" -gUnknown_8482D1D:: @ 8482D1D +gMoveDescription_Bind:: @ 8482D1D .string "A long body or\ntentacles are used\nto bind the foe for\ntwo to five turns.$" -gUnknown_8482D66:: @ 8482D66 +gMoveDescription_Slam:: @ 8482D66 .string "The foe is struck\nwith a long tail,\nvines, etc.$" -gUnknown_8482D96:: @ 8482D96 +gMoveDescription_VineWhip:: @ 8482D96 .string "The foe is struck\nwith slender, whip-\nlike vines.$" -gUnknown_8482DC8:: @ 8482DC8 +gMoveDescription_Stomp:: @ 8482DC8 .string "The foe is stomped\nwith a big foot.\nIt may make the\nfoe flinch.$" -gUnknown_8482E08:: @ 8482E08 +gMoveDescription_DoubleKick:: @ 8482E08 .string "Two legs are used\nto quickly kick the\nfoe twice in one\nturn.$" -gUnknown_8482E45:: @ 8482E45 +gMoveDescription_MegaKick:: @ 8482E45 .string "The foe is attacked\nby a kick fired\nwith muscle-packed\npower.$" -gUnknown_8482E83:: @ 8482E83 +gMoveDescription_JumpKick:: @ 8482E83 .string "The user jumps up\nhigh, then kicks.\nIf it misses, the\nuser hurts itself.$" -gUnknown_8482ECC:: @ 8482ECC +gMoveDescription_RollingKick:: @ 8482ECC .string "A quick kick from a\nrolling spin.\nIt may make the\nfoe flinch.$" -gUnknown_8482F0A:: @ 8482F0A - .string "A lot of sand is\nhurled in the foe’s\nface, reducing its\naccuracy.$" +gMoveDescription_SandAttack:: @ 8482F0A + .string "A lot of sand is\nhurled in the foe's\nface, reducing its\naccuracy.$" -gUnknown_8482F4C:: @ 8482F4C +gMoveDescription_Headbutt:: @ 8482F4C .string "The user sticks its\nhead out and rams.\nIt may make the\nfoe flinch.$" -gUnknown_8482F8F:: @ 8482F8F +gMoveDescription_HornAttack:: @ 8482F8F .string "The foe is jabbed\nwith a sharply\npointed horn to\ninflict damage.$" -gUnknown_8482FD0:: @ 8482FD0 +gMoveDescription_FuryAttack:: @ 8482FD0 .string "The foe is jabbed\nrepeatedly with a\nhorn or beak two to\nfive times.$" -gUnknown_8483014:: @ 8483014 +gMoveDescription_HornDrill:: @ 8483014 .string "The horn is rotated\nlike a drill to ram.\nThe foe will faint\nif it hits.$" -gUnknown_848305C:: @ 848305C +gMoveDescription_Tackle:: @ 848305C .string "A physical attack\nin which the user\ncharges, full body,\ninto the foe.$" -gUnknown_84830A2:: @ 84830A2 +gMoveDescription_BodySlam:: @ 84830A2 .string "The user drops its\nfull body on the\nfoe. It may leave\nthe foe paralyzed.$" -gUnknown_84830EB:: @ 84830EB +gMoveDescription_Wrap:: @ 84830EB .string "A long body or\nvines are used to\nwrap the foe for\ntwo to five turns.$" -gUnknown_8483130:: @ 8483130 +gMoveDescription_TakeDown:: @ 8483130 .string "A reckless, full-\nbody charge attack\nthat also hurts the\nuser a little.$" -gUnknown_8483178:: @ 8483178 +gMoveDescription_Thrash:: @ 8483178 .string "The user rampages\nabout for two to\nthree turns, then\nbecomes confused.$" -gUnknown_84831BF:: @ 84831BF +gMoveDescription_DoubleEdge:: @ 84831BF .string "A reckless, life-\nrisking tackle that\nalso hurts the user\na little.$" -gUnknown_8483203:: @ 8483203 +gMoveDescription_TailWhip:: @ 8483203 .string "The user wags its\ntail cutely, making\nthe foe lower its\nDEFENSE stat.$" -gUnknown_8483249:: @ 8483249 +gMoveDescription_PoisonSting:: @ 8483249 .string "The foe is stabbed\nwith a toxic barb,\netc. It may poison\nthe foe.$" -gUnknown_848328B:: @ 848328B +gMoveDescription_Twineedle:: @ 848328B .string "The foe is stabbed\ntwice with foreleg\nstingers. It may\npoison the foe.$" -gUnknown_84832D2:: @ 84832D2 +gMoveDescription_PinMissile:: @ 84832D2 .string "Sharp pins are shot\nat the foe and hit\ntwo to five times\nat once.$" -gUnknown_8483314:: @ 8483314 +gMoveDescription_Leer:: @ 8483314 .string "The foe is given an\nintimidating look\nthat lowers its\nDEFENSE stat.$" -gUnknown_8483358:: @ 8483358 +gMoveDescription_Bite:: @ 8483358 .string "The user bites with\nvicious fangs.\nIt may make the\nfoe flinch.$" -gUnknown_8483397:: @ 8483397 +gMoveDescription_Growl:: @ 8483397 .string "The user growls in\na cute way, making\nthe foe lower its\nATTACK stat.$" -gUnknown_84833DC:: @ 84833DC +gMoveDescription_Roar:: @ 84833DC .string "The foe is made to\nswitch out with an\nally. In the wild,\nthe battle ends.$" -gUnknown_8483426:: @ 8483426 +gMoveDescription_Sing:: @ 8483426 .string "A soothing song\nin a calming voice\nlulls the foe into\na deep slumber.$" -gUnknown_848346C:: @ 848346C +gMoveDescription_Supersonic:: @ 848346C .string "The user generates\nodd sound waves.\nIt may confuse the\nfoe.$" -gUnknown_84834A8:: @ 84834A8 +gMoveDescription_SonicBoom:: @ 84834A8 .string "The foe is hit with\na shock wave that\nalways inflicts 20-\nHP damage.$" -gUnknown_84834ED:: @ 84834ED +gMoveDescription_Disable:: @ 84834ED .string "For a few turns,\nit prevents the foe\nfrom using the move\nit last used.$" -gUnknown_8483534:: @ 8483534 +gMoveDescription_Acid:: @ 8483534 .string "The foe is sprayed\nwith a harsh, hide-\nmelting acid that\nmay lower DEFENSE.$" -gUnknown_8483580:: @ 8483580 +gMoveDescription_Ember:: @ 8483580 .string "The foe is attacked\nwith small flames.\nThe foe may suffer\na burn.$" -gUnknown_84835C2:: @ 84835C2 +gMoveDescription_Flamethrower:: @ 84835C2 .string "The foe is scorched\nwith intense flames.\nThe foe may suffer\na burn.$" -gUnknown_8483606:: @ 8483606 +gMoveDescription_Mist:: @ 8483606 .string "The ally party is\nprotected by a\nmist that prevents\nstat reductions.$" -gUnknown_848364B:: @ 848364B +gMoveDescription_WaterGun:: @ 848364B .string "The foe is struck\nwith a lot of water\nexpelled forcibly\nfrom the mouth.$" -gUnknown_8483693:: @ 8483693 +gMoveDescription_HydroPump:: @ 8483693 .string "A high volume of\nwater is blasted at\nthe foe under great\npressure.$" -gUnknown_84836D6:: @ 84836D6 +gMoveDescription_Surf:: @ 84836D6 .string "A big wave crashes\ndown on the foe.\nCan also be used\nfor crossing water.$" -gUnknown_848371F:: @ 848371F +gMoveDescription_IceBeam:: @ 848371F .string "The foe is struck\nwith an icy beam.\nIt may freeze the\nfoe solid.$" -gUnknown_8483760:: @ 8483760 +gMoveDescription_Blizzard:: @ 8483760 .string "The foe is blasted\nwith a blizzard.\nIt may freeze the\nfoe solid.$" -gUnknown_84837A1:: @ 84837A1 +gMoveDescription_Psybeam:: @ 84837A1 .string "A peculiar ray is\nshot at the foe.\nIt may leave the\nfoe confused.$" -gUnknown_84837E3:: @ 84837E3 - .string "A spray of bubbles\nstrikes the foe.\nIt may lower the\nfoe’s SPEED stat.$" +gMoveDescription_BubbleBeam:: @ 84837E3 + .string "A spray of bubbles\nstrikes the foe.\nIt may lower the\nfoe's SPEED stat.$" -gUnknown_848382A:: @ 848382A - .string "A rainbow-colored\nattack beam.\nIt may lower the\nfoe’s ATTACK stat.$" +gMoveDescription_AuroraBeam:: @ 848382A + .string "A rainbow-colored\nattack beam.\nIt may lower the\nfoe's ATTACK stat.$" -gUnknown_848386D:: @ 848386D +gMoveDescription_HyperBeam:: @ 848386D .string "A severely damaging\nattack that makes\nthe user rest on\nthe next turn.$" -gUnknown_84838B3:: @ 84838B3 +gMoveDescription_Peck:: @ 84838B3 .string "The foe is jabbed\nwith a sharply\npointed beak or\nhorn.$" -gUnknown_84838EA:: @ 84838EA +gMoveDescription_DrillPeck:: @ 84838EA .string "A corkscrewing\nattack with the\nsharp beak acting\nas a drill.$" -gUnknown_8483927:: @ 8483927 +gMoveDescription_Submission:: @ 8483927 .string "A reckless, full-\nbody throw attack\nthat also hurts the\nuser a little.$" -gUnknown_848396E:: @ 848396E +gMoveDescription_LowKick:: @ 848396E .string "A low, tripping kick\nthat inflicts more\ndamage on heavier\nfoes.$" -gUnknown_84839AE:: @ 84839AE +gMoveDescription_Counter:: @ 84839AE .string "A retaliation move\nthat counters any\nphysical hit with\ndouble the damage.$" -gUnknown_84839F8:: @ 84839F8 - .string "A gravity-fed throw\nthat causes damage\nmatching the user’s\nlevel.$" +gMoveDescription_SeismicToss:: @ 84839F8 + .string "A gravity-fed throw\nthat causes damage\nmatching the user's\nlevel.$" -gUnknown_8483A3A:: @ 8483A3A +gMoveDescription_Strength:: @ 8483A3A .string "The foe is slugged\nat maximum power.\nCan also be used\nto move boulders.$" -gUnknown_8483A82:: @ 8483A82 +gMoveDescription_Absorb:: @ 8483A82 .string "An attack that\nabsorbs half the\ndamage it inflicted\nto restore HP.$" -gUnknown_8483AC5:: @ 8483AC5 +gMoveDescription_MegaDrain:: @ 8483AC5 .string "A tough attack that\ndrains half the\ndamage it inflicted\nto restore HP.$" -gUnknown_8483B0C:: @ 8483B0C +gMoveDescription_LeechSeed:: @ 8483B0C .string "A seed is planted\non the foe to steal\nsome HP for the \nuser on every turn.$" -gUnknown_8483B57:: @ 8483B57 - .string "The user’s body is\nforced to grow,\nraising the SP.\nATK stat.$" +gMoveDescription_Growth:: @ 8483B57 + .string "The user's body is\nforced to grow,\nraising the SP.\nATK stat.$" -gUnknown_8483B94:: @ 8483B94 +gMoveDescription_RazorLeaf:: @ 8483B94 .string "The foe is hit with\na cutting leaf.\nIt has a high\ncritical-hit ratio.$" -gUnknown_8483BDA:: @ 8483BDA +gMoveDescription_SolarBeam:: @ 8483BDA .string "A 2-turn move that\nblasts the foe with\nabsorbed energy in\nthe 2nd turn.$" -gUnknown_8483C22:: @ 8483C22 +gMoveDescription_PoisonPowder:: @ 8483C22 .string "A cloud of toxic\ndust is scattered.\nIt may poison the\nfoe.$" -gUnknown_8483C5D:: @ 8483C5D +gMoveDescription_StunSpore:: @ 8483C5D .string "Paralyzing dust is\nscattered wildly.\nIt may paralyze\nthe foe.$" -gUnknown_8483C9B:: @ 8483C9B +gMoveDescription_SleepPowder:: @ 8483C9B .string "A sleep-inducing\ndust is scattered\nin high volume\naround a foe.$" -gUnknown_8483CDB:: @ 8483CDB +gMoveDescription_PetalDance:: @ 8483CDB .string "The user attacks\nwith petals for two\nto three turns,\nthen gets confused.$" -gUnknown_8483D24:: @ 8483D24 +gMoveDescription_StringShot:: @ 8483D24 .string "The foe is bound\nwith strings shot\nfrom the mouth to\nreduce its SPEED.$" -gUnknown_8483D6B:: @ 8483D6B +gMoveDescription_DragonRage:: @ 8483D6B .string "The foe is hit with\na shock wave that\nalways inflicts 40-\nHP damage.$" -gUnknown_8483DB0:: @ 8483DB0 +gMoveDescription_FireSpin:: @ 8483DB0 .string "The foe is trapped\nin an intense spiral\nof fire that rages\ntwo to five turns.$" -gUnknown_8483DFE:: @ 8483DFE +gMoveDescription_ThunderShock:: @ 8483DFE .string "An electric shock\nattack that may\nalso leave the foe\nparalyzed.$" -gUnknown_8483E3E:: @ 8483E3E +gMoveDescription_Thunderbolt:: @ 8483E3E .string "A strong electrical\nattack that may\nalso leave the foe\nparalyzed.$" -gUnknown_8483E80:: @ 8483E80 +gMoveDescription_ThunderWave:: @ 8483E80 .string "A weak electric\nshock that is sure\nto cause paralysis\nif it hits.$" -gUnknown_8483EC2:: @ 8483EC2 +gMoveDescription_Thunder:: @ 8483EC2 .string "A brutal lightning\nattack that may\nalso leave the foe\nparalyzed.$" -gUnknown_8483F03:: @ 8483F03 +gMoveDescription_RockThrow:: @ 8483F03 .string "The foe is attacked\nwith a shower of\nsmall, easily\nthrown rocks.$" -gUnknown_8483F44:: @ 8483F44 +gMoveDescription_Earthquake:: @ 8483F44 .string "An earthquake that\nstrikes all POKéMON\nin battle excluding\nthe user.$" -gUnknown_8483F89:: @ 8483F89 +gMoveDescription_Fissure:: @ 8483F89 .string "The foe is dropped\ninto a fissure.\nThe foe faints if it\nhits.$" -gUnknown_8483FC7:: @ 8483FC7 +gMoveDescription_Dig:: @ 8483FC7 .string "An attack that hits\non the 2nd turn.\nCan also be used\nto exit dungeons.$" -gUnknown_848400F:: @ 848400F +gMoveDescription_Toxic:: @ 848400F .string "A move that badly\npoisons the foe.\nIts poison damage\nworsens every turn.$" -gUnknown_8484058:: @ 8484058 +gMoveDescription_Confusion:: @ 8484058 .string "A weak telekinetic\nattack that may\nalso leave the foe\nconfused.$" -gUnknown_8484098:: @ 8484098 - .string "A strong telekinetic\nattack. It may also\nlower the foe’s\nSP. DEF stat.$" +gMoveDescription_Psychic:: @ 8484098 + .string "A strong telekinetic\nattack. It may also\nlower the foe's\nSP. DEF stat.$" -gUnknown_84840DF:: @ 84840DF +gMoveDescription_Hypnosis:: @ 84840DF .string "Hypnotic suggestion\nis used to make the\nfoe fall into a\ndeep sleep.$" -gUnknown_8484123:: @ 8484123 +gMoveDescription_Meditate:: @ 8484123 .string "The user meditates\nto awaken its power\nand raise its\nATTACK stat.$" -gUnknown_8484165:: @ 8484165 +gMoveDescription_Agility:: @ 8484165 .string "The user relaxes\nand lightens its\nbody to sharply\nboost its SPEED.$" -gUnknown_84841A8:: @ 84841A8 +gMoveDescription_QuickAttack:: @ 84841A8 .string "An almost invisibly\nfast attack that\nis certain to strike\nfirst.$" -gUnknown_84841E9:: @ 84841E9 +gMoveDescription_Rage:: @ 84841E9 .string "An attack that\nbecomes stronger\neach time the user\nis hit in battle.$" -gUnknown_848422E:: @ 848422E +gMoveDescription_Teleport:: @ 848422E .string "Use it to flee from\nany wild POKéMON.\nAlso warps to the\nlast POKé CENTER.$" -gUnknown_8484278:: @ 8484278 - .string "An attack with a\nmirage that inflicts\ndamage matching\nthe user’s level.$" +gMoveDescription_NightShade:: @ 8484278 + .string "An attack with a\nmirage that inflicts\ndamage matching\nthe user's level.$" -gUnknown_84842C0:: @ 84842C0 +gMoveDescription_Mimic:: @ 84842C0 .string "The user copies the\nmove last used by\nthe foe for the\nrest of the battle.$" -gUnknown_848430A:: @ 848430A - .string "An ear-splitting\nscreech is emitted\nto sharply reduce\nthe foe’s DEFENSE.$" +gMoveDescription_Screech:: @ 848430A + .string "An ear-splitting\nscreech is emitted\nto sharply reduce\nthe foe's DEFENSE.$" -gUnknown_8484353:: @ 8484353 +gMoveDescription_DoubleTeam:: @ 8484353 .string "The user creates\nillusory copies of\nitself to raise its\nevasiveness.$" -gUnknown_8484398:: @ 8484398 - .string "A self-healing move\nthat restores HP by\nup to half of the\nuser’s maximum HP.$" +gMoveDescription_Recover:: @ 8484398 + .string "A self-healing move\nthat restores HP by\nup to half of the\nuser's maximum HP.$" -gUnknown_84843E5:: @ 84843E5 +gMoveDescription_Harden:: @ 84843E5 .string "The user stiffens\nall the muscles in\nits body to raise\nits DEFENSE stat.$" -gUnknown_848442E:: @ 848442E +gMoveDescription_Minimize:: @ 848442E .string "The user compresses\nall the cells in its\nbody to raise its\nevasiveness.$" -gUnknown_8484476:: @ 8484476 - .string "An obscuring cloud\nof smoke or ink\nreduces the foe’s\naccuracy.$" +gMoveDescription_Smokescreen:: @ 8484476 + .string "An obscuring cloud\nof smoke or ink\nreduces the foe's\naccuracy.$" -gUnknown_84844B5:: @ 84844B5 +gMoveDescription_ConfuseRay:: @ 84844B5 .string "The foe is exposed\nto a sinister ray\nthat triggers\nconfusion.$" -gUnknown_84844F3:: @ 84844F3 +gMoveDescription_Withdraw:: @ 84844F3 .string "The user withdraws\nits body in its hard\nshell, raising its\nDEFENSE stat.$" -gUnknown_848453C:: @ 848453C +gMoveDescription_DefenseCurl:: @ 848453C .string "The user curls up\nto conceal weak\nspots and raise its\nDEFENSE stat.$" -gUnknown_8484580:: @ 8484580 +gMoveDescription_Barrier:: @ 8484580 .string "The user creates a\nsturdy wall that\nsharply raises its\nDEFENSE stat.$" -gUnknown_84845C5:: @ 84845C5 +gMoveDescription_LightScreen:: @ 84845C5 .string "A wall of light\ncuts damage from\nSP. ATK attacks\nfor five turns.$" -gUnknown_8484606:: @ 8484606 +gMoveDescription_Haze:: @ 8484606 .string "Eliminates all stat\nchanges among all\nPOKéMON engaged in\nbattle.$" -gUnknown_8484647:: @ 8484647 +gMoveDescription_Reflect:: @ 8484647 .string "A wall of light\ncuts damage from\nphysical attacks\nfor five turns.$" -gUnknown_8484689:: @ 8484689 +gMoveDescription_FocusEnergy:: @ 8484689 .string "The user takes a\ndeep breath and\nfocuses to raise its\ncritical-hit ratio.$" -gUnknown_84846D3:: @ 84846D3 +gMoveDescription_Bide:: @ 84846D3 .string "The user endures\nattacks for two\nturns, then strikes\nback double.$" -gUnknown_8484715:: @ 8484715 +gMoveDescription_Metronome:: @ 8484715 .string "Waggles a finger\nand stimulates the\nbrain into using any\nmove at random.$" -gUnknown_848475E:: @ 848475E +gMoveDescription_MirrorMove:: @ 848475E .string "The user counters\nthe move last used\nby the foe with the\nsame move.$" -gUnknown_84847A2:: @ 84847A2 +gMoveDescription_SelfDestruct:: @ 84847A2 .string "The user blows up\nto inflict severe\ndamage, even\nmaking itself faint.$" -gUnknown_84847E8:: @ 84847E8 +gMoveDescription_EggBomb:: @ 84847E8 .string "A large egg is\nhurled with great\nforce at the foe to\ninflict damage.$" -gUnknown_848482D:: @ 848482D +gMoveDescription_Lick:: @ 848482D .string "The foe is licked\nand hit with a long\ntongue. It may\nalso paralyze.$" -gUnknown_8484871:: @ 8484871 +gMoveDescription_Smog:: @ 8484871 .string "The foe is attacked\nwith exhaust gases.\nIt may also poison\nthe foe.$" -gUnknown_84848B5:: @ 84848B5 +gMoveDescription_Sludge:: @ 84848B5 .string "Toxic sludge is\nhurled at the foe.\nIt may poison the\ntarget.$" -gUnknown_84848F2:: @ 84848F2 +gMoveDescription_BoneClub:: @ 84848F2 .string "The foe is clubbed\nwith a bone held in\nhand. It may make\nthe foe flinch.$" -gUnknown_848493B:: @ 848493B +gMoveDescription_FireBlast:: @ 848493B .string "The foe is hit with\nan intense flame.\nIt may leave the\ntarget with a burn.$" -gUnknown_8484986:: @ 8484986 +gMoveDescription_Waterfall:: @ 8484986 .string "A powerful charge\nattack. It can also\nbe used to climb\na waterfall.$" -gUnknown_84849CA:: @ 84849CA - .string "The foe is clamped\nand squeezed by\nthe user’s shell for\ntwo to five turns.$" +gMoveDescription_Clamp:: @ 84849CA + .string "The foe is clamped\nand squeezed by\nthe user's shell for\ntwo to five turns.$" -gUnknown_8484A15:: @ 8484A15 +gMoveDescription_Swift:: @ 8484A15 .string "Star-shaped rays\nthat never miss are\nfired at all foes in\nbattle.$" -gUnknown_8484A57:: @ 8484A57 +gMoveDescription_SkullBash:: @ 8484A57 .string "The user raises its\nDEFENSE in the 1st\nturn, then attacks\nin the 2nd turn.$" -gUnknown_8484AA2:: @ 8484AA2 +gMoveDescription_SpikeCannon:: @ 8484AA2 .string "Sharp spikes are\nfired at the foe to\nstrike two to five\ntimes.$" -gUnknown_8484AE1:: @ 8484AE1 +gMoveDescription_Constrict:: @ 8484AE1 .string "The foe is attacked\nwith long tentacles\nor vines. It may\nlower SPEED.$" -gUnknown_8484B27:: @ 8484B27 +gMoveDescription_Amnesia:: @ 8484B27 .string "Forgets about\nsomething and\nsharply raises\nSP. DEF.$" -gUnknown_8484B5B:: @ 8484B5B +gMoveDescription_Kinesis:: @ 8484B5B .string "The user distracts\nthe foe by bending\na spoon. It may\nlower accuracy.$" -gUnknown_8484BA1:: @ 8484BA1 +gMoveDescription_SoftBoiled:: @ 8484BA1 .string "Heals the user by\nup to half its full\nHP. It can be used\nto heal an ally.$" -gUnknown_8484BEB:: @ 8484BEB +gMoveDescription_HiJumpKick:: @ 8484BEB .string "A strong jumping\nknee kick. If it\nmisses, the user is\nhurt.$" -gUnknown_8484C27:: @ 8484C27 +gMoveDescription_Glare:: @ 8484C27 .string "The user intimidates\nthe foe with the\ndesign on its belly\nto cause paralysis.$" -gUnknown_8484C75:: @ 8484C75 +gMoveDescription_DreamEater:: @ 8484C75 .string "Absorbs half the\ndamage it inflicted\non a sleeping foe\nto restore HP.$" -gUnknown_8484CBB:: @ 8484CBB +gMoveDescription_PoisonGas:: @ 8484CBB .string "The foe is sprayed\nwith a cloud of\ntoxic gas that may\npoison the foe.$" -gUnknown_8484D01:: @ 8484D01 +gMoveDescription_Barrage:: @ 8484D01 .string "Round objects are\nhurled at the foe\nto strike two to\nfive times.$" -gUnknown_8484D42:: @ 8484D42 +gMoveDescription_LeechLife:: @ 8484D42 .string "An attack that\nabsorbs half the\ndamage it inflicted\nto restore HP.$" -gUnknown_8484D85:: @ 8484D85 +gMoveDescription_LovelyKiss:: @ 8484D85 .string "The user forces a\nkiss on the foe\nwith a scary face\nthat induces sleep.$" -gUnknown_8484DCD:: @ 8484DCD +gMoveDescription_SkyAttack:: @ 8484DCD .string "A 2nd-turn attack\nmove with a high\ncritical-hit ratio.\nThe foe may flinch.$" -gUnknown_8484E18:: @ 8484E18 +gMoveDescription_Transform:: @ 8484E18 .string "The user transforms\ninto a copy of the\nfoe with even the\nsame move set.$" -gUnknown_8484E60:: @ 8484E60 - .string "A spray of bubbles\nhits the foe.\nIt may lower the\nfoe’s SPEED stat.$" +gMoveDescription_Bubble:: @ 8484E60 + .string "A spray of bubbles\nhits the foe.\nIt may lower the\nfoe's SPEED stat.$" -gUnknown_8484EA4:: @ 8484EA4 +gMoveDescription_DizzyPunch:: @ 8484EA4 .string "The foe is hit with\na rhythmic punch\nthat may leave it\nconfused.$" -gUnknown_8484EE5:: @ 8484EE5 +gMoveDescription_Spore:: @ 8484EE5 .string "The user scatters\nbursts of fine\nspores that induce\nsleep.$" -gUnknown_8484F20:: @ 8484F20 - .string "A blast of light\nthat cuts the foe’s\naccuracy. It also\nilluminates caves.$" +gMoveDescription_Flash:: @ 8484F20 + .string "A blast of light\nthat cuts the foe's\naccuracy. It also\nilluminates caves.$" -gUnknown_8484F6A:: @ 8484F6A +gMoveDescription_Psywave:: @ 8484F6A .string "The foe is attacked\nwith an odd, hot\nenergy wave that\nvaries in intensity.$" -gUnknown_8484FB5:: @ 8484FB5 +gMoveDescription_Splash:: @ 8484FB5 .string "The user just flops\nand splashes around\nwithout having any\neffect.$" -gUnknown_8484FF8:: @ 8484FF8 +gMoveDescription_AcidArmor:: @ 8484FF8 .string "The user alters its\ncells to liquefy\nitself and sharply\nraise DEFENSE.$" -gUnknown_848503F:: @ 848503F +gMoveDescription_Crabhammer:: @ 848503F .string "A large pincer is\nused to hammer the\nfoe. It has a high\ncritical-hit ratio.$" -gUnknown_848508B:: @ 848508B +gMoveDescription_Explosion:: @ 848508B .string "The user explodes\nto inflict terrible\ndamage even while\nfainting itself.$" -gUnknown_84850D4:: @ 84850D4 +gMoveDescription_FurySwipes:: @ 84850D4 .string "The foe is raked\nwith sharp claws or\nscythes two to five\ntimes.$" -gUnknown_8485114:: @ 8485114 +gMoveDescription_Bonemerang:: @ 8485114 .string "The user throws a\nbone that hits the\nfoe once, then once\nagain on return.$" -gUnknown_848515E:: @ 848515E +gMoveDescription_Rest:: @ 848515E .string "The user sleeps for\ntwo turns to fully\nrestore HP and heal\nany status problem.$" -gUnknown_84851AD:: @ 84851AD +gMoveDescription_RockSlide:: @ 84851AD .string "Large boulders are\nhurled at the foe.\nIt may make the\nfoe flinch.$" -gUnknown_84851EF:: @ 84851EF +gMoveDescription_HyperFang:: @ 84851EF .string "The foe is attacked\nwith sharp fangs.\nIt may make the\nfoe flinch.$" -gUnknown_8485231:: @ 8485231 +gMoveDescription_Sharpen:: @ 8485231 .string "The user reduces\nits polygon count\nto sharpen edges\nand raise ATTACK.$" -gUnknown_8485277:: @ 8485277 +gMoveDescription_Conversion:: @ 8485277 .string "The user changes\nits type to match\nthe type of one of\nits moves.$" -gUnknown_84852B8:: @ 84852B8 +gMoveDescription_TriAttack:: @ 84852B8 .string "A simultaneous\n3-beam attack that\nmay paralyze, burn,\nor freeze the foe.$" -gUnknown_8485301:: @ 8485301 - .string "The user attacks\nwith sharp fangs\nand halves the\nfoe’s HP.$" +gMoveDescription_SuperFang:: @ 8485301 + .string "The user attacks\nwith sharp fangs\nand halves the\nfoe's HP.$" -gUnknown_848533C:: @ 848533C +gMoveDescription_Slash:: @ 848533C .string "The foe is slashed\nwith claws, etc.\nIt has a high\ncritical-hit ratio.$" -gUnknown_8485382:: @ 8485382 +gMoveDescription_Substitute:: @ 8485382 .string "The user creates a\ndecoy using one-\nquarter of its full\nHP.$" -gUnknown_84853BE:: @ 84853BE +gMoveDescription_Struggle:: @ 84853BE .string "An attack that is\nused only if there\nis no PP. It also\nhurts the user.$" -gUnknown_8485405:: @ 8485405 +gMoveDescription_Sketch:: @ 8485405 .string "This move copies\nthe move last used\nby the foe, then\ndisappears.$" -gUnknown_8485446:: @ 8485446 +gMoveDescription_TripleKick:: @ 8485446 .string "A 3-kick attack\nthat becomes more\npowerful with each\nsuccessive hit.$" -gUnknown_848548B:: @ 848548B - .string "An attack that may\ntake the foe’s held\nitem if the user\nisn’t holding one.$" +gMoveDescription_Thief:: @ 848548B + .string "An attack that may\ntake the foe's held\nitem if the user\nisn't holding one.$" -gUnknown_84854D6:: @ 84854D6 - .string "Ensnares the foe \nwith sticky string\nso it doesn’t flee\nor switch out.$" +gMoveDescription_SpiderWeb:: @ 84854D6 + .string "Ensnares the foe \nwith sticky string\nso it doesn't flee\nor switch out.$" -gUnknown_848551D:: @ 848551D - .string "The user predicts\nthe foe’s action to\nensure its next\nattack hits.$" +gMoveDescription_MindReader:: @ 848551D + .string "The user predicts\nthe foe's action to\nensure its next\nattack hits.$" -gUnknown_8485560:: @ 8485560 +gMoveDescription_Nightmare:: @ 8485560 .string "A sleeping foe is\nshown a nightmare\nthat inflicts some\ndamage every turn.$" -gUnknown_84855AA:: @ 84855AA +gMoveDescription_FlameWheel:: @ 84855AA .string "The user makes a\nfiery charge at the\nfoe. It may cause\na burn.$" -gUnknown_84855E9:: @ 84855E9 +gMoveDescription_Snore:: @ 84855E9 .string "An attack that can\nbe used only while\nasleep. It may\ncause flinching.$" -gUnknown_848562F:: @ 848562F +gMoveDescription_Curse:: @ 848562F .string "A move that works\ndifferently for the\nGHOST-type and all\nthe other types.$" -gUnknown_8485679:: @ 8485679 +gMoveDescription_Flail:: @ 8485679 .string "A desperate attack\nthat becomes more\npowerful the less\nHP the user has.$" -gUnknown_84856C1:: @ 84856C1 +gMoveDescription_Conversion2:: @ 84856C1 .string "The user changes\ntype to make itself\nresistant to the\nlast attack it took.$" -gUnknown_848570C:: @ 848570C +gMoveDescription_Aeroblast:: @ 848570C .string "A vortex of air is\nshot at the foe.\nIt has a high\ncritical-hit ratio.$" -gUnknown_8485752:: @ 8485752 +gMoveDescription_CottonSpore:: @ 8485752 .string "Cotton-like spores\ncling to the foe,\nsharply reducing\nits SPEED stat.$" -gUnknown_8485798:: @ 8485798 +gMoveDescription_Reversal:: @ 8485798 .string "An all-out attack\nthat becomes more\npowerful the less\nHP the user has.$" -gUnknown_84857DF:: @ 84857DF +gMoveDescription_Spite:: @ 84857DF .string "A move that cuts\n2 to 5 PP from the\nmove last used by\nthe foe.$" -gUnknown_848581E:: @ 848581E +gMoveDescription_PowderSnow:: @ 848581E .string "Blasts the foe with\na snowy gust.\nIt may cause\nfreezing.$" -gUnknown_8485857:: @ 8485857 +gMoveDescription_Protect:: @ 8485857 .string "Enables the user to\nevade all attacks.\nIt may fail if used\nin succession.$" -gUnknown_84858A1:: @ 84858A1 +gMoveDescription_MachPunch:: @ 84858A1 .string "A punch thrown at\nblinding speed.\nIt is certain to\nstrike first.$" -gUnknown_84858E2:: @ 84858E2 +gMoveDescription_ScaryFace:: @ 84858E2 .string "Frightens the foe\nwith a scary face\nto sharply reduce\nits SPEED.$" -gUnknown_8485923:: @ 8485923 +gMoveDescription_FaintAttack:: @ 8485923 .string "The user draws up\nclose to the foe\ndisarmingly, then\nhits without fail.$" -gUnknown_848596B:: @ 848596B +gMoveDescription_SweetKiss:: @ 848596B .string "The user kisses\nthe foe with sweet\ncuteness that\ncauses confusion.$" -gUnknown_84859AE:: @ 84859AE +gMoveDescription_BellyDrum:: @ 84859AE .string "The user maximizes\nits ATTACK stat at\nthe cost of half\nits full HP.$" -gUnknown_84859F2:: @ 84859F2 +gMoveDescription_SludgeBomb:: @ 84859F2 .string "Filthy sludge is\nhurled at the foe.\nIt may poison the\ntarget.$" -gUnknown_8485A30:: @ 8485A30 - .string "Mud is hurled in\nthe foe’s face to\ninflict damage and\nlower its accuracy.$" +gMoveDescription_MudSlap:: @ 8485A30 + .string "Mud is hurled in\nthe foe's face to\ninflict damage and\nlower its accuracy.$" -gUnknown_8485A7A:: @ 8485A7A - .string "Ink is blasted in\nthe foe’s face or\neyes to damage and\nlower accuracy.$" +gMoveDescription_Octazooka:: @ 8485A7A + .string "Ink is blasted in\nthe foe's face or\neyes to damage and\nlower accuracy.$" -gUnknown_8485AC1:: @ 8485AC1 - .string "A trap of spikes is\nlaid around the\nfoe’s party to hurt\nfoes switching in.$" +gMoveDescription_Spikes:: @ 8485AC1 + .string "A trap of spikes is\nlaid around the\nfoe's party to hurt\nfoes switching in.$" -gUnknown_8485B0C:: @ 8485B0C +gMoveDescription_ZapCannon:: @ 8485B0C .string "An electric blast is\nfired like a cannon\nto inflict damage\nand paralyze.$" -gUnknown_8485B55:: @ 8485B55 - .string "Completely negates\nthe foe’s efforts to\nheighten its ability\nto evade.$" +gMoveDescription_Foresight:: @ 8485B55 + .string "Completely negates\nthe foe's efforts to\nheighten its ability\nto evade.$" -gUnknown_8485B9C:: @ 8485B9C +gMoveDescription_DestinyBond:: @ 8485B9C .string "If the user faints,\nthe foe delivering\nthe final hit also\nfaints.$" -gUnknown_8485BDE:: @ 8485BDE +gMoveDescription_PerishSong:: @ 8485BDE .string "Any battler that\nhears this faints\nin three turns\nunless it switches.$" -gUnknown_8485C24:: @ 8485C24 +gMoveDescription_IcyWind:: @ 8485C24 .string "A chilling wind is\nused to attack.\nIt also lowers the\nSPEED stat.$" -gUnknown_8485C66:: @ 8485C66 +gMoveDescription_Detect:: @ 8485C66 .string "Enables the user to\nevade all attacks.\nIt may fail if used\nin succession.$" -gUnknown_8485CB0:: @ 8485CB0 +gMoveDescription_BoneRush:: @ 8485CB0 .string "The user strikes\nthe foe with a bone\nin hand two to five\ntimes.$" -gUnknown_8485CF0:: @ 8485CF0 +gMoveDescription_LockOn:: @ 8485CF0 .string "The user locks on\nto the foe, making\nthe next move sure\nto hit.$" -gUnknown_8485D30:: @ 8485D30 +gMoveDescription_Outrage:: @ 8485D30 .string "The user thrashes\nabout for two to\nthree turns, then\nbecomes confused.$" -gUnknown_8485D77:: @ 8485D77 +gMoveDescription_Sandstorm:: @ 8485D77 .string "A 5-turn sandstorm\nthat damages all\ntypes except ROCK,\nGROUND, and STEEL.$" -gUnknown_8485DC1:: @ 8485DC1 +gMoveDescription_GigaDrain:: @ 8485DC1 .string "A harsh attack that\nabsorbs half the\ndamage it inflicted\nto restore HP.$" -gUnknown_8485E09:: @ 8485E09 +gMoveDescription_Endure:: @ 8485E09 .string "The user endures\nany hit with 1 HP\nleft. It may fail if\nused in succession.$" -gUnknown_8485E55:: @ 8485E55 - .string "The foe is charmed\nby the user’s cute\nappeals, sharply\ncutting its ATTACK.$" +gMoveDescription_Charm:: @ 8485E55 + .string "The foe is charmed\nby the user's cute\nappeals, sharply\ncutting its ATTACK.$" -gUnknown_8485EA0:: @ 8485EA0 +gMoveDescription_Rollout:: @ 8485EA0 .string "A 5-turn rolling\nattack that becomes\nstronger each time\nit hits.$" -gUnknown_8485EE1:: @ 8485EE1 +gMoveDescription_FalseSwipe:: @ 8485EE1 .string "A restrained attack\nthat always leaves\nthe foe with at\nleast 1 HP.$" -gUnknown_8485F24:: @ 8485F24 +gMoveDescription_Swagger:: @ 8485F24 .string "A move that makes\nthe foe confused,\nbut also sharply\nraises its ATTACK.$" -gUnknown_8485F6C:: @ 8485F6C +gMoveDescription_MilkDrink:: @ 8485F6C .string "Heals the user by\nup to half its full\nHP. It can be used\nto heal an ally.$" -gUnknown_8485FB6:: @ 8485FB6 +gMoveDescription_Spark:: @ 8485FB6 .string "An electrically\ncharged tackle that\nmay also paralyze\nthe foe.$" -gUnknown_8485FF5:: @ 8485FF5 +gMoveDescription_FuryCutter:: @ 8485FF5 .string "An attack that\ngrows stronger on\neach successive\nhit.$" -gUnknown_848602B:: @ 848602B - .string "The foe is hit with\nwings of steel.\nIt may also raise\nthe user’s DEFENSE.$" +gMoveDescription_SteelWing:: @ 848602B + .string "The foe is hit with\nwings of steel.\nIt may also raise\nthe user's DEFENSE.$" -gUnknown_8486075:: @ 8486075 +gMoveDescription_MeanLook:: @ 8486075 .string "The foe is fixed\nwith a mean look\nthat prevents it\nfrom escaping.$" -gUnknown_84860B7:: @ 84860B7 +gMoveDescription_Attract:: @ 84860B7 .string "If it is the other\ngender, the foe is\nmade infatuated and\nunlikely to attack.$" -gUnknown_8486105:: @ 8486105 +gMoveDescription_SleepTalk:: @ 8486105 .string "While asleep, the\nuser randomly uses\none of the moves it\nknows.$" -gUnknown_8486145:: @ 8486145 +gMoveDescription_HealBell:: @ 8486145 .string "A soothing bell\nchimes to heal the\nstatus problems of\nall allies.$" -gUnknown_8486187:: @ 8486187 +gMoveDescription_Return:: @ 8486187 .string "This attack move\ngrows more powerful\nthe more the user\nlikes its TRAINER.$" -gUnknown_84861D1:: @ 84861D1 +gMoveDescription_Present:: @ 84861D1 .string "The foe is given a\nbooby-trapped gift.\nIt restores HP\nsometimes, however.$" -gUnknown_848621B:: @ 848621B +gMoveDescription_Frustration:: @ 848621B .string "This attack move\ngrows more powerful\nthe less the user\nlikes its TRAINER.$" -gUnknown_8486265:: @ 8486265 - .string "It protects the\nuser’s party from\nall status problems\nfor five turns.$" +gMoveDescription_Safeguard:: @ 8486265 + .string "It protects the\nuser's party from\nall status problems\nfor five turns.$" -gUnknown_84862AB:: @ 84862AB - .string "The user adds its\nHP to the foe’s HP,\nthen equally shares\nthe total HP.$" +gMoveDescription_PainSplit:: @ 84862AB + .string "The user adds its\nHP to the foe's HP,\nthen equally shares\nthe total HP.$" -gUnknown_84862F3:: @ 84862F3 +gMoveDescription_SacredFire:: @ 84862F3 .string "A mystical and\npowerful fire\nattack that may\ninflict a burn.$" -gUnknown_8486330:: @ 8486330 +gMoveDescription_Magnitude:: @ 8486330 .string "A ground-shaking\nattack against all\nstanding POKéMON.\nIts power varies.$" -gUnknown_8486378:: @ 8486378 - .string "The foe is punched\nwith the user’s full\npower. It confuses\nthe foe if it hits.$" +gMoveDescription_DynamicPunch:: @ 8486378 + .string "The foe is punched\nwith the user's full\npower. It confuses\nthe foe if it hits.$" -gUnknown_84863C7:: @ 84863C7 +gMoveDescription_Megahorn:: @ 84863C7 .string "A brutal ramming\nattack delivered\nwith a tough and\nimpressive horn.$" -gUnknown_848640B:: @ 848640B +gMoveDescription_DragonBreath:: @ 848640B .string "The foe is hit with\nan incredible blast\nof breath that may\nalso paralyze.$" -gUnknown_8486455:: @ 8486455 +gMoveDescription_BatonPass:: @ 8486455 .string "The user switches\nout, passing along\nany stat changes\nto the new battler.$" -gUnknown_848649F:: @ 848649F +gMoveDescription_Encore:: @ 848649F .string "Makes the foe use\nthe move it last\nused repeatedly for\ntwo to six turns.$" -gUnknown_84864E8:: @ 84864E8 +gMoveDescription_Pursuit:: @ 84864E8 .string "An attack move that\nworks especially\nwell on a foe that\nis switching out.$" -gUnknown_8486532:: @ 8486532 +gMoveDescription_RapidSpin:: @ 8486532 .string "An attack that\nfrees the user from\nBIND, WRAP, LEECH\nSEED, and SPIKES.$" -gUnknown_8486579:: @ 8486579 +gMoveDescription_SweetScent:: @ 8486579 .string "Allures the foe to\nreduce evasiveness.\nIt also attracts\nwild POKéMON.$" -gUnknown_84865BF:: @ 84865BF - .string "An attack with a\nsteel-hard tail.\nIt may lower the\nfoe’s DEFENSE stat.$" +gMoveDescription_IronTail:: @ 84865BF + .string "An attack with a\nsteel-hard tail.\nIt may lower the\nfoe's DEFENSE stat.$" -gUnknown_8486606:: @ 8486606 - .string "The foe is attacked\nwith steel claws.\nIt may also raise\nthe user’s ATTACK.$" +gMoveDescription_MetalClaw:: @ 8486606 + .string "The foe is attacked\nwith steel claws.\nIt may also raise\nthe user's ATTACK.$" -gUnknown_8486651:: @ 8486651 +gMoveDescription_VitalThrow:: @ 8486651 .string "Makes the user\nattack after the\nfoe. In return,\nit will not miss.$" -gUnknown_8486693:: @ 8486693 - .string "Restores the user’s\nHP. The amount of\nHP regained varies\nwith the weather.$" +gMoveDescription_MorningSun:: @ 8486693 + .string "Restores the user's\nHP. The amount of\nHP regained varies\nwith the weather.$" -gUnknown_84866DE:: @ 84866DE - .string "Restores the user’s\nHP. The amount of\nHP regained varies\nwith the weather.$" +gMoveDescription_Synthesis:: @ 84866DE + .string "Restores the user's\nHP. The amount of\nHP regained varies\nwith the weather.$" -gUnknown_8486729:: @ 8486729 - .string "Restores the user’s\nHP. The amount of\nHP regained varies\nwith the weather.$" +gMoveDescription_Moonlight:: @ 8486729 + .string "Restores the user's\nHP. The amount of\nHP regained varies\nwith the weather.$" -gUnknown_8486774:: @ 8486774 +gMoveDescription_HiddenPower:: @ 8486774 .string "An attack that\nvaries in type and\nintensity depending\non the user.$" -gUnknown_84867B7:: @ 84867B7 +gMoveDescription_CrossChop:: @ 84867B7 .string "The foe is hit with\ndouble chops.\nIt has a high\ncritical-hit ratio.$" -gUnknown_84867FB:: @ 84867FB +gMoveDescription_Twister:: @ 84867FB .string "A vicious twister\nattacks the foe.\nIt may make the\nfoe flinch.$" -gUnknown_848683A:: @ 848683A +gMoveDescription_RainDance:: @ 848683A .string "A heavy rain falls\nfor five turns,\npowering up WATER-\ntype moves.$" -gUnknown_848687C:: @ 848687C +gMoveDescription_SunnyDay:: @ 848687C .string "The sun blazes for\nfive turns, powering\nup FIRE-type\nmoves.$" -gUnknown_84868B8:: @ 84868B8 - .string "The foe is crunched\nwith sharp fangs.\nIt may lower the\nfoe’s SP. DEF.$" +gMoveDescription_Crunch:: @ 84868B8 + .string "The foe is crunched\nwith sharp fangs.\nIt may lower the\nfoe's SP. DEF.$" -gUnknown_84868FE:: @ 84868FE - .string "A retaliation move\nthat pays back the\nfoe’s special attack\ndouble.$" +gMoveDescription_MirrorCoat:: @ 84868FE + .string "A retaliation move\nthat pays back the\nfoe's special attack\ndouble.$" -gUnknown_8486941:: @ 8486941 +gMoveDescription_PsychUp:: @ 8486941 .string "The user hypnotizes\nitself into copying\nany stat change\nmade by the foe.$" -gUnknown_848698A:: @ 848698A +gMoveDescription_ExtremeSpeed:: @ 848698A .string "A blindingly speedy\ncharge attack that\nalways goes before\nany other.$" -gUnknown_84869CF:: @ 84869CF - .string "An ancient power is\nused to attack. It\nmay also raise all\nthe user’s stats.$" +gMoveDescription_AncientPower:: @ 84869CF + .string "An ancient power is\nused to attack. It\nmay also raise all\nthe user's stats.$" -gUnknown_8486A1B:: @ 8486A1B - .string "A shadowy blob is\nhurled at the foe.\nMay also lower the\nfoe’s SP. DEF.$" +gMoveDescription_ShadowBall:: @ 8486A1B + .string "A shadowy blob is\nhurled at the foe.\nMay also lower the\nfoe's SP. DEF.$" -gUnknown_8486A62:: @ 8486A62 +gMoveDescription_FutureSight:: @ 8486A62 .string "Two turns after\nthis move is used,\nthe foe is attacked\npsychically.$" -gUnknown_8486AA6:: @ 8486AA6 +gMoveDescription_RockSmash:: @ 8486AA6 .string "An attack that may\nalso cut DEFENSE.\nIt can also smash\ncracked boulders.$" -gUnknown_8486AEF:: @ 8486AEF +gMoveDescription_Whirlpool:: @ 8486AEF .string "The foe is trapped\nin a fast, vicious\nwhirlpool for two\nto five turns.$" -gUnknown_8486B36:: @ 8486B36 +gMoveDescription_BeatUp:: @ 8486B36 .string "All party POKéMON\njoin in the attack.\nThe more allies,\nthe more damage.$" -gUnknown_8486B7E:: @ 8486B7E +gMoveDescription_FakeOut:: @ 8486B7E .string "An attack that hits\nfirst and causes\nflinching. Usable\nonly on 1st turn.$" -gUnknown_8486BC7:: @ 8486BC7 +gMoveDescription_Uproar:: @ 8486BC7 .string "The user attacks in\nan uproar that\nprevents sleep for\ntwo to five turns.$" -gUnknown_8486C10:: @ 8486C10 +gMoveDescription_Stockpile:: @ 8486C10 .string "The user charges\nup power for use\nlater. It can be\nused three times.$" -gUnknown_8486C55:: @ 8486C55 +gMoveDescription_SpitUp:: @ 8486C55 .string "The power built\nusing STOCKPILE is\nreleased at once\nfor attack.$" -gUnknown_8486C95:: @ 8486C95 +gMoveDescription_Swallow:: @ 8486C95 .string "The energy it built\nusing STOCKPILE is\nabsorbed to restore\nHP.$" -gUnknown_8486CD4:: @ 8486CD4 +gMoveDescription_HeatWave:: @ 8486CD4 .string "The user exhales a\nheated breath to\nattack. It may also\ninflict a burn.$" -gUnknown_8486D1C:: @ 8486D1C +gMoveDescription_Hail:: @ 8486D1C .string "A hailstorm lasting\nfive turns damages\nall POKéMON except\nthe ICE-type.$" -gUnknown_8486D64:: @ 8486D64 +gMoveDescription_Torment:: @ 8486D64 .string "It enrages the foe,\nmaking it incapable\nof using the same\nmove successively.$" -gUnknown_8486DB1:: @ 8486DB1 +gMoveDescription_Flatter:: @ 8486DB1 .string "Flattery is used to\nconfuse the foe,\nbut its SP. ATK\nalso rises.$" -gUnknown_8486DF2:: @ 8486DF2 +gMoveDescription_WillOWisp:: @ 8486DF2 .string "A sinister, bluish\nwhite flame is shot\nat the foe to\ninflict a burn.$" -gUnknown_8486E37:: @ 8486E37 - .string "The user faints,\nbut sharply lowers\nthe foe’s ATTACK\nand SP. ATK.$" +gMoveDescription_Memento:: @ 8486E37 + .string "The user faints,\nbut sharply lowers\nthe foe's ATTACK\nand SP. ATK.$" -gUnknown_8486E79:: @ 8486E79 +gMoveDescription_Facade:: @ 8486E79 .string "An attack that is\nboosted if user is\nburned, poisoned,\nor paralyzed.$" -gUnknown_8486EBE:: @ 8486EBE +gMoveDescription_FocusPunch:: @ 8486EBE .string "An attack that is\nexecuted last.\nThe user flinches\nif hit beforehand.$" -gUnknown_8486F04:: @ 8486F04 - .string "Doubly effective on\na paralyzed foe,\nbut it also cures\nthe foe’s paralysis.$" +gMoveDescription_SmellingSalt:: @ 8486F04 + .string "Doubly effective on\na paralyzed foe,\nbut it also cures\nthe foe's paralysis.$" -gUnknown_8486F50:: @ 8486F50 +gMoveDescription_FollowMe:: @ 8486F50 .string "The user draws\nattention to itself,\nmaking foes attack\nonly the user.$" -gUnknown_8486F96:: @ 8486F96 - .string "An attack that\nchanges type\ndepending on the\nuser’s location.$" +gMoveDescription_NaturePower:: @ 8486F96 + .string "An attack that\nchanges type\ndepending on the\nuser's location.$" -gUnknown_8486FD4:: @ 8486FD4 +gMoveDescription_Charge:: @ 8486FD4 .string "The user charges\npower to boost the\nELECTRIC move it\nuses next.$" -gUnknown_8487014:: @ 8487014 +gMoveDescription_Taunt:: @ 8487014 .string "The foe is taunted\ninto a rage that\nallows it to use\nonly attack moves.$" -gUnknown_848705C:: @ 848705C - .string "A move that boosts\nthe power of the\nally’s attack in a\nbattle.$" +gMoveDescription_HelpingHand:: @ 848705C + .string "A move that boosts\nthe power of the\nally's attack in a\nbattle.$" -gUnknown_848709B:: @ 848709B +gMoveDescription_Trick:: @ 848709B .string "A move that tricks\nthe foe into\ntrading held items\nwith the user.$" -gUnknown_84870DD:: @ 84870DD - .string "The user mimics the\nfoe completely and\ncopies the foe’s\nability.$" +gMoveDescription_RolePlay:: @ 84870DD + .string "The user mimics the\nfoe completely and\ncopies the foe's\nability.$" -gUnknown_848711E:: @ 848711E +gMoveDescription_Wish:: @ 848711E .string "A self-healing move\nthat restores half\nthe full HP on the\nnext turn.$" -gUnknown_8487163:: @ 8487163 +gMoveDescription_Assist:: @ 8487163 .string "The user randomly\npicks and uses a\nmove of an allied\nPOKéMON.$" -gUnknown_84871A1:: @ 84871A1 - .string "The user lays roots\nthat restore HP on\nevery turn.\nIt can’t switch out.$" +gMoveDescription_Ingrain:: @ 84871A1 + .string "The user lays roots\nthat restore HP on\nevery turn.\nIt can't switch out.$" -gUnknown_84871E9:: @ 84871E9 - .string "A powerful attack,\nbut it also lowers\nthe user’s ATTACK\nand DEFENSE stats.$" +gMoveDescription_Superpower:: @ 84871E9 + .string "A powerful attack,\nbut it also lowers\nthe user's ATTACK\nand DEFENSE stats.$" -gUnknown_8487234:: @ 8487234 - .string "Reflects back the\nfoe’s LEECH SEED\nand any status-\ndamaging move.$" +gMoveDescription_MagicCoat:: @ 8487234 + .string "Reflects back the\nfoe's LEECH SEED\nand any status-\ndamaging move.$" -gUnknown_8487276:: @ 8487276 +gMoveDescription_Recycle:: @ 8487276 .string "A move that\nrecycles a used\nitem for use once\nmore.$" -gUnknown_84872AA:: @ 84872AA +gMoveDescription_Revenge:: @ 84872AA .string "An attack move that\ngains in intensity if\nthe target has hurt\nthe user.$" -gUnknown_84872F2:: @ 84872F2 +gMoveDescription_BrickBreak:: @ 84872F2 .string "An attack that also\nbreaks any barrier\nlike LIGHT SCREEN\nand REFLECT.$" -gUnknown_8487338:: @ 8487338 +gMoveDescription_Yawn:: @ 8487338 .string "A huge yawn lulls\nthe foe into falling\nasleep on the next\nturn.$" -gUnknown_8487378:: @ 8487378 - .string "Knocks down the\nfoe’s held item to\nprevent its use\nduring the battle.$" +gMoveDescription_KnockOff:: @ 8487378 + .string "Knocks down the\nfoe's held item to\nprevent its use\nduring the battle.$" -gUnknown_84873BE:: @ 84873BE +gMoveDescription_Endeavor:: @ 84873BE .string "Gains power the\nfewer HP the user\nhas compared with\nthe foe.$" -gUnknown_84873FB:: @ 84873FB - .string "The higher the\nuser’s HP, the more\npowerful this\nattack becomes.$" +gMoveDescription_Eruption:: @ 84873FB + .string "The higher the\nuser's HP, the more\npowerful this\nattack becomes.$" -gUnknown_848743C:: @ 848743C +gMoveDescription_SkillSwap:: @ 848743C .string "The user employs\nits psychic power\nto swap abilities\nwith the foe.$" -gUnknown_848747F:: @ 848747F +gMoveDescription_Imprison:: @ 848747F .string "Prevents foes from\nusing any move\nthat is also known\nby the user.$" -gUnknown_84874C1:: @ 84874C1 +gMoveDescription_Refresh:: @ 84874C1 .string "A self-healing move\nthat cures the user\nof a poisoning,\nburn, or paralysis.$" -gUnknown_848750D:: @ 848750D +gMoveDescription_Grudge:: @ 848750D .string "If the user faints,\nthis move deletes\nthe PP of the move\nthat finished it.$" -gUnknown_8487558:: @ 8487558 - .string "Steals the effects\nof the foe’s\nhealing or status-\nchanging move.$" +gMoveDescription_Snatch:: @ 8487558 + .string "Steals the effects\nof the foe's\nhealing or status-\nchanging move.$" -gUnknown_848759A:: @ 848759A +gMoveDescription_SecretPower:: @ 848759A .string "An attack that may\nhave an additional\neffect that varies\nwith the terrain.$" -gUnknown_84875E5:: @ 84875E5 +gMoveDescription_Dive:: @ 84875E5 .string "The user dives\nunderwater on the\nfirst turn and\nstrikes next turn.$" -gUnknown_8487628:: @ 8487628 +gMoveDescription_ArmThrust:: @ 8487628 .string "A quick flurry of\nstraight-arm\npunches that hit\ntwo to five times.$" -gUnknown_848766B:: @ 848766B - .string "Alters the user’s\ntype depending on\nthe location’s\nterrain.$" +gMoveDescription_Camouflage:: @ 848766B + .string "Alters the user's\ntype depending on\nthe location's\nterrain.$" -gUnknown_84876A7:: @ 84876A7 +gMoveDescription_TailGlow:: @ 84876A7 .string "The user flashes a\nlight that sharply\nraises its SP. ATK\nstat.$" -gUnknown_84876E6:: @ 84876E6 - .string "A burst of light\ninjures the foe. It\nmay also lower the\nfoe’s SP. DEF.$" +gMoveDescription_LusterPurge:: @ 84876E6 + .string "A burst of light\ninjures the foe. It\nmay also lower the\nfoe's SP. DEF.$" -gUnknown_848772D:: @ 848772D - .string "A flurry of down\nhits the foe. It\nmay also lower the\nfoe’s SP. ATK.$" +gMoveDescription_MistBall:: @ 848772D + .string "A flurry of down\nhits the foe. It\nmay also lower the\nfoe's SP. ATK.$" -gUnknown_8487771:: @ 8487771 +gMoveDescription_FeatherDance:: @ 8487771 .string "The foe is covered\nwith a mass of down\nthat sharply cuts\nthe ATTACK stat.$" -gUnknown_84877BB:: @ 84877BB +gMoveDescription_TeeterDance:: @ 84877BB .string "A wobbly dance\nthat confuses all\nthe POKéMON in\nbattle.$" -gUnknown_84877F3:: @ 84877F3 +gMoveDescription_BlazeKick:: @ 84877F3 .string "A fiery kick with a\nhigh critical-hit\nratio. It may also\nburn the foe.$" -gUnknown_848783A:: @ 848783A +gMoveDescription_MudSport:: @ 848783A .string "Weakens ELECTRIC-\ntype attacks while\nthe user is in the\nbattle.$" -gUnknown_848787A:: @ 848787A +gMoveDescription_IceBall:: @ 848787A .string "A 5-turn rolling\nattack that becomes\nstronger each time\nit rolls.$" -gUnknown_84878BC:: @ 84878BC +gMoveDescription_NeedleArm:: @ 84878BC .string "An attack using\nthorny arms.\nIt may make the\nfoe flinch.$" -gUnknown_84878F5:: @ 84878F5 +gMoveDescription_SlackOff:: @ 84878F5 .string "The user slacks off\nand restores its HP\nby half its full\nHP.$" -gUnknown_8487932:: @ 8487932 +gMoveDescription_HyperVoice:: @ 8487932 .string "The user lets loose\na horribly loud\nshout with the\npower to damage.$" -gUnknown_8487976:: @ 8487976 +gMoveDescription_PoisonFang:: @ 8487976 .string "The foe is bitten\nwith toxic fangs.\nIt may also badly\npoison the foe.$" -gUnknown_84879BC:: @ 84879BC - .string "The foe is attacked\nwith sharp claws.\nIt may also lower\nthe foe’s DEFENSE.$" +gMoveDescription_CrushClaw:: @ 84879BC + .string "The foe is attacked\nwith sharp claws.\nIt may also lower\nthe foe's DEFENSE.$" -gUnknown_8487A07:: @ 8487A07 - .string "The foe is hit with\na huge explosion.\nThe user can’t move\non the next turn.$" +gMoveDescription_BlastBurn:: @ 8487A07 + .string "The foe is hit with\na huge explosion.\nThe user can't move\non the next turn.$" -gUnknown_8487A53:: @ 8487A53 - .string "The foe is hit with\na watery cannon.\nThe user can’t move\non the next turn.$" +gMoveDescription_HydroCannon:: @ 8487A53 + .string "The foe is hit with\na watery cannon.\nThe user can't move\non the next turn.$" -gUnknown_8487A9E:: @ 8487A9E - .string "The foe is hit with\na hard, fast punch.\nIt may also raise\nthe user’s ATTACK.$" +gMoveDescription_MeteorMash:: @ 8487A9E + .string "The foe is hit with\na hard, fast punch.\nIt may also raise\nthe user's ATTACK.$" -gUnknown_8487AEB:: @ 8487AEB +gMoveDescription_Astonish:: @ 8487AEB .string "An attack using a\nstartling shout.\nIt also may make\nthe foe flinch.$" -gUnknown_8487B2F:: @ 8487B2F +gMoveDescription_WeatherBall:: @ 8487B2F .string "An attack that\nvaries in power and\ntype depending on\nthe weather.$" -gUnknown_8487B71:: @ 8487B71 - .string "A soothing scent is\nreleased to heal\nall status problems\nin the user’s party.$" +gMoveDescription_Aromatherapy:: @ 8487B71 + .string "A soothing scent is\nreleased to heal\nall status problems\nin the user's party.$" -gUnknown_8487BBF:: @ 8487BBF - .string "The user feigns\ncrying to sharply\nlower the foe’s\nSP. DEF stat.$" +gMoveDescription_FakeTears:: @ 8487BBF + .string "The user feigns\ncrying to sharply\nlower the foe's\nSP. DEF stat.$" -gUnknown_8487BFF:: @ 8487BFF +gMoveDescription_AirCutter:: @ 8487BFF .string "The foe is hit with\nrazor-like wind.\nIt has a high\ncritical-hit ratio.$" -gUnknown_8487C46:: @ 8487C46 - .string "An intense attack\nthat also sharply\nreduces the user’s\nSP. ATK stat.$" +gMoveDescription_Overheat:: @ 8487C46 + .string "An intense attack\nthat also sharply\nreduces the user's\nSP. ATK stat.$" -gUnknown_8487C8B:: @ 8487C8B - .string "Completely negates\nthe foe’s efforts to\nheighten its ability\nto evade.$" +gMoveDescription_OdorSleuth:: @ 8487C8B + .string "Completely negates\nthe foe's efforts to\nheighten its ability\nto evade.$" -gUnknown_8487CD2:: @ 8487CD2 - .string "Boulders are hurled\nat the foe. It also\nlowers the foe’s\nSPEED if it hits.$" +gMoveDescription_RockTomb:: @ 8487CD2 + .string "Boulders are hurled\nat the foe. It also\nlowers the foe's\nSPEED if it hits.$" -gUnknown_8487D1D:: @ 8487D1D - .string "The foe is attacked\nwith a silver dust.\nIt may raise all\nthe user’s stats.$" +gMoveDescription_SilverWind:: @ 8487D1D + .string "The foe is attacked\nwith a silver dust.\nIt may raise all\nthe user's stats.$" -gUnknown_8487D68:: @ 8487D68 - .string "A horrible metallic\nscreech is used to\nsharply lower the\nfoe’s SP. DEF.$" +gMoveDescription_MetalSound:: @ 8487D68 + .string "A horrible metallic\nscreech is used to\nsharply lower the\nfoe's SP. DEF.$" -gUnknown_8487DB0:: @ 8487DB0 +gMoveDescription_GrassWhistle:: @ 8487DB0 .string "A pleasant melody\nis played to lull\nthe foe into a deep\nsleep.$" -gUnknown_8487DEF:: @ 8487DEF +gMoveDescription_Tickle:: @ 8487DEF .string "The foe is made to\nlaugh, reducing its\nATTACK and DEFENSE\nstats.$" -gUnknown_8487E30:: @ 8487E30 +gMoveDescription_CosmicPower:: @ 8487E30 .string "The user absorbs a\nmystic power to\nraise its DEFENSE\nand SP. DEF.$" -gUnknown_8487E72:: @ 8487E72 - .string "The higher the\nuser’s HP, the more\npowerful this\nattack becomes.$" +gMoveDescription_WaterSpout:: @ 8487E72 + .string "The higher the\nuser's HP, the more\npowerful this\nattack becomes.$" -gUnknown_8487EB3:: @ 8487EB3 +gMoveDescription_SignalBeam:: @ 8487EB3 .string "The foe is hit with\na flashing beam\nthat may also\ncause confusion.$" -gUnknown_8487EF6:: @ 8487EF6 +gMoveDescription_ShadowPunch:: @ 8487EF6 .string "The user throws a\npunch from the\nshadows. It cannot\nbe evaded.$" -gUnknown_8487F35:: @ 8487F35 +gMoveDescription_Extrasensory:: @ 8487F35 .string "The user attacks\nwith an odd power\nthat may make the\nfoe flinch.$" -gUnknown_8487F76:: @ 8487F76 +gMoveDescription_SkyUppercut:: @ 8487F76 .string "The user attacks\nwith an uppercut\nthrown skywards\nwith force.$" -gUnknown_8487FB4:: @ 8487FB4 +gMoveDescription_SandTomb:: @ 8487FB4 .string "The foe is trapped\ninside a painful\nsandstorm for two\nto five turns.$" -gUnknown_8487FF9:: @ 8487FF9 +gMoveDescription_SheerCold:: @ 8487FF9 .string "The foe is attacked\nwith ultimate cold\nthat causes fainting\nif it hits.$" -gUnknown_8488041:: @ 8488041 - .string "The user attacks\nwith muddy water.\nIt may also lower\nthe foe’s accuracy.$" +gMoveDescription_MuddyWater:: @ 8488041 + .string "The user attacks\nwith muddy water.\nIt may also lower\nthe foe's accuracy.$" -gUnknown_848808A:: @ 848808A +gMoveDescription_BulletSeed:: @ 848808A .string "The user shoots\nseeds at the foe.\nTwo to five seeds\nare shot at once.$" -gUnknown_84880D0:: @ 84880D0 - .string "An extremely fast\nattack against one\ntarget. It can’t be\nevaded.$" +gMoveDescription_AerialAce:: @ 84880D0 + .string "An extremely fast\nattack against one\ntarget. It can't be\nevaded.$" -gUnknown_8488111:: @ 8488111 +gMoveDescription_IcicleSpear:: @ 8488111 .string "Sharp icicles are\nfired at the foe.\nIt strikes two to\nfive times.$" -gUnknown_8488153:: @ 8488153 - .string "The user hardens\nits body’s surface\nto sharply raise its\nDEFENSE stat.$" +gMoveDescription_IronDefense:: @ 8488153 + .string "The user hardens\nits body's surface\nto sharply raise its\nDEFENSE stat.$" -gUnknown_848819A:: @ 848819A - .string "The user blocks the\nfoe’s way with arms\nspread wide to\nprevent escape.$" +gMoveDescription_Block:: @ 848819A + .string "The user blocks the\nfoe's way with arms\nspread wide to\nprevent escape.$" -gUnknown_84881E1:: @ 84881E1 +gMoveDescription_Howl:: @ 84881E1 .string "The user howls to\nraise its spirit and\nboost its ATTACK\nstat.$" -gUnknown_848821F:: @ 848821F +gMoveDescription_DragonClaw:: @ 848821F .string "Sharp, huge claws\nhook and slash the\nfoe quickly and\nwith great power.$" -gUnknown_8488266:: @ 8488266 - .string "The foe is hit with\nan enormous branch.\nThe user can’t move\non the next turn.$" +gMoveDescription_FrenzyPlant:: @ 8488266 + .string "The foe is hit with\nan enormous branch.\nThe user can't move\non the next turn.$" -gUnknown_84882B4:: @ 84882B4 +gMoveDescription_BulkUp:: @ 84882B4 .string "The user bulks up\nits body to boost\nboth its ATTACK and\nDEFENSE stats.$" -gUnknown_84882FB:: @ 84882FB +gMoveDescription_Bounce:: @ 84882FB .string "The user bounces\non the foe on the\n2nd turn. It may\nparalyze the foe.$" -gUnknown_8488341:: @ 8488341 - .string "The user attacks by\nhurling mud.\nIt also reduces the\nfoe’s SPEED.$" +gMoveDescription_MudShot:: @ 8488341 + .string "The user attacks by\nhurling mud.\nIt also reduces the\nfoe's SPEED.$" -gUnknown_8488383:: @ 8488383 +gMoveDescription_PoisonTail:: @ 8488383 .string "An attack with a\nhigh critical-hit\nratio. It may also\npoison the foe.$" -gUnknown_84883C9:: @ 84883C9 - .string "A cutely executed\nattack that also\nsteals the foe’s\nhold item.$" +gMoveDescription_Covet:: @ 84883C9 + .string "A cutely executed\nattack that also\nsteals the foe's\nhold item.$" -gUnknown_8488408:: @ 8488408 +gMoveDescription_VoltTackle:: @ 8488408 .string "The user throws an\nelectrified tackle.\nIt hurts the user\na little.$" -gUnknown_848844B:: @ 848844B +gMoveDescription_MagicalLeaf:: @ 848844B .string "The foe is attacked\nwith a strange leaf\nthat cannot be\nevaded.$" -gUnknown_848848A:: @ 848848A +gMoveDescription_WaterSport:: @ 848848A .string "Weakens FIRE-type\nattacks while the\nuser is in the\nbattle.$" -gUnknown_84884C5:: @ 84884C5 +gMoveDescription_CalmMind:: @ 84884C5 .string "The user focuses\nits mind to raise\nthe SP. ATK and\nSP. DEF stats.$" -gUnknown_8488507:: @ 8488507 +gMoveDescription_LeafBlade:: @ 8488507 .string "The foe is slashed\nwith a sharp leaf.\nIt has a high\ncritical-hit ratio.$" -gUnknown_848854F:: @ 848854F - .string "A mystic, powerful\ndance that boosts\nthe user’s ATTACK\nand SPEED stats.$" +gMoveDescription_DragonDance:: @ 848854F + .string "A mystic, powerful\ndance that boosts\nthe user's ATTACK\nand SPEED stats.$" -gUnknown_8488597:: @ 8488597 +gMoveDescription_RockBlast:: @ 8488597 .string "The user hurls two\nto five hard rocks\nat the foe to\nattack.$" -gUnknown_84885D3:: @ 84885D3 - .string "A rapid jolt of\nelectricity strikes\nthe foe. It can’t\nbe evaded.$" +gMoveDescription_ShockWave:: @ 84885D3 + .string "A rapid jolt of\nelectricity strikes\nthe foe. It can't\nbe evaded.$" -gUnknown_8488614:: @ 8488614 +gMoveDescription_WaterPulse:: @ 8488614 .string "An attack with a\npulsing blast of\nwater. It may also\nconfuse the foe.$" -gUnknown_848865A:: @ 848865A +gMoveDescription_DoomDesire:: @ 848865A .string "A move that attacks\nthe foe with a\nblast of light two\nturns after use.$" -gUnknown_84886A1:: @ 84886A1 - .string "An intense attack\nthat also sharply\nreduces the user’s\nSP. ATK stat.$" - -gUnknown_84886E6:: @ 84886E6 - .string " " +gMoveDescription_PsychoBoost:: @ 84886A1 + .string "An intense attack\nthat also sharply\nreduces the user's\nSP. ATK stat.$" diff --git a/data/text/quest_log.inc b/data/text/quest_log.inc index 58c9cf66e..62315aed3 100644 --- a/data/text/quest_log.inc +++ b/data/text/quest_log.inc @@ -55,7 +55,7 @@ gUnknown_841A349:: @ 841A349 gUnknown_841A391:: @ 841A391 .string "Removed the item {STR_VAR_1} from\n" - .string "the BAG’s ITEMS POCKET and stored it\n" + .string "the BAG's ITEMS POCKET and stored it\n" .string "on the PC.$" gUnknown_841A3DA:: @ 841A3DA @@ -64,7 +64,7 @@ gUnknown_841A3DA:: @ 841A3DA gUnknown_841A3FF:: @ 841A3FF .string "Traded {STR_VAR_3} in exchange for\n" - .string "{STR_VAR_1}’s {STR_VAR_2}.$" + .string "{STR_VAR_1}'s {STR_VAR_2}.$" gUnknown_841A422:: @ 841A422 .string "Took on {UNKNOWN_F7 0x00} in a SINGLE BATTLE.\n" @@ -134,7 +134,7 @@ gUnknown_841A694:: @ 841A694 gUnknown_841A6A5:: @ 841A6A5 .string "Removed the item {STR_VAR_1} from\n" - .string "{PLAYER}’s PC and gave it to {STR_VAR_2}\n" + .string "{PLAYER}'s PC and gave it to {STR_VAR_2}\n" .string "to hold.$" gUnknown_841A6E1:: @ 841A6E1 @@ -156,7 +156,7 @@ gUnknown_841A762:: gUnknown_841A76A:: @ 841A76A .string "Met and traded with {STR_VAR_1}.\n" - .string "Obtained the TRAINER’s {STR_VAR_2} in\n" + .string "Obtained the TRAINER's {STR_VAR_2} in\n" .string "exchange for {STR_VAR_3}.$" gUnknown_841A7B0:: @ 841A7B0 @@ -295,11 +295,11 @@ gUnknown_841AD3C:: @ 841AD3C gUnknown_841AD69:: @ 841AD69 .string "{STR_VAR_1} used TELEPORT, transporting\n" - .string "the party to {STR_VAR_2}’s\n" + .string "the party to {STR_VAR_2}'s\n" .string "{STR_VAR_3}.$" gUnknown_841AD9E:: @ 841AD9E - .string "{PLAYER} left {STR_VAR_1}’s\n" + .string "{PLAYER} left {STR_VAR_1}'s\n" .string "{STR_VAR_2} for the next\n" .string "destination.$" @@ -311,7 +311,7 @@ gUnknown_841ADFF:: @ 841ADFF .string "{PLAYER} rested comfortably at home.$" gUnknown_841AE1E:: @ 841AE1E - .string "{PLAYER} left PROF. OAK’s POKéMON\n" + .string "{PLAYER} left PROF. OAK's POKéMON\n" .string "RESEARCH LAB.$" gUnknown_841AE48:: @ 841AE48 @@ -332,17 +332,17 @@ gUnknown_841AEDC:: @ 841AEDC gUnknown_841AF0C:: @ 841AF0C .string "Took on {UNKNOWN_F7 0x00} GYM LEADER\n" - .string "{UNKNOWN_F7 0x01}’s {UNKNOWN_F7 0x02} with {UNKNOWN_F7 0x03}\n" + .string "{UNKNOWN_F7 0x01}'s {UNKNOWN_F7 0x02} with {UNKNOWN_F7 0x03}\n" .string "and won {UNKNOWN_F7 0x04}!$" gUnknown_841AF3E:: @ 841AF3E - .string "Took on ELITE FOUR {UNKNOWN_F7 0x00}’s\n" + .string "Took on ELITE FOUR {UNKNOWN_F7 0x00}'s\n" .string "{UNKNOWN_F7 0x01} with {UNKNOWN_F7 0x02} and\n" .string "won {UNKNOWN_F7 0x03}!$" gUnknown_841AF6D:: @ 841AF6D .string "In {UNKNOWN_F7 0x00}, took on\n" - .string "{UNKNOWN_F7 0x01}’s {UNKNOWN_F7 0x02} with {UNKNOWN_F7 0x03}\n" + .string "{UNKNOWN_F7 0x01}'s {UNKNOWN_F7 0x02} with {UNKNOWN_F7 0x03}\n" .string "and won {UNKNOWN_F7 0x04}!$" gUnknown_841AF98:: @ 841AF98 @@ -403,7 +403,7 @@ gUnknown_841B0FF:: @ 841B0FF .string "BIKE SHOP$" gUnknown_841B109:: @ 841B109 - .string "BILL’S HOUSE$" + .string "BILL'S HOUSE$" gUnknown_841B116:: @ 841B116 .string "DAY CARE$" @@ -418,7 +418,7 @@ gUnknown_841B141:: @ 841B141 .string "S.S. ANNE$" gUnknown_841B14B:: @ 841B14B - .string "DIGLETT’S CAVE$" + .string "DIGLETT'S CAVE$" gUnknown_841B15A:: @ 841B15A .string "ROCK TUNNEL$" @@ -433,7 +433,7 @@ gUnknown_841B180:: @ 841B180 .string "VOLUNTEER HOUSE$" gUnknown_841B190:: @ 841B190 - .string "NAME RATER’S HOUSE$" + .string "NAME RATER'S HOUSE$" gUnknown_841B1A3:: @ 841B1A3 .string "CELADON DEPT. STORE$" @@ -454,7 +454,7 @@ gUnknown_841B1F4:: @ 841B1F4 .string "SAFARI ZONE$" gUnknown_841B200:: @ 841B200 - .string "WARDEN’S HOME$" + .string "WARDEN'S HOME$" gUnknown_841B20E:: @ 841B20E .string "FIGHTING DOJO$" diff --git a/data/text/species_names.inc b/data/text/species_names.inc new file mode 100644 index 000000000..04907c86e --- /dev/null +++ b/data/text/species_names.inc @@ -0,0 +1,412 @@ + .string "??????????$", 11 + .string "BULBASAUR$", 11 + .string "IVYSAUR$", 11 + .string "VENUSAUR$", 11 + .string "CHARMANDER$", 11 + .string "CHARMELEON$", 11 + .string "CHARIZARD$", 11 + .string "SQUIRTLE$", 11 + .string "WARTORTLE$", 11 + .string "BLASTOISE$", 11 + .string "CATERPIE$", 11 + .string "METAPOD$", 11 + .string "BUTTERFREE$", 11 + .string "WEEDLE$", 11 + .string "KAKUNA$", 11 + .string "BEEDRILL$", 11 + .string "PIDGEY$", 11 + .string "PIDGEOTTO$", 11 + .string "PIDGEOT$", 11 + .string "RATTATA$", 11 + .string "RATICATE$", 11 + .string "SPEAROW$", 11 + .string "FEAROW$", 11 + .string "EKANS$", 11 + .string "ARBOK$", 11 + .string "PIKACHU$", 11 + .string "RAICHU$", 11 + .string "SANDSHREW$", 11 + .string "SANDSLASH$", 11 + .string "NIDORAN♀$", 11 + .string "NIDORINA$", 11 + .string "NIDOQUEEN$", 11 + .string "NIDORAN♂$", 11 + .string "NIDORINO$", 11 + .string "NIDOKING$", 11 + .string "CLEFAIRY$", 11 + .string "CLEFABLE$", 11 + .string "VULPIX$", 11 + .string "NINETALES$", 11 + .string "JIGGLYPUFF$", 11 + .string "WIGGLYTUFF$", 11 + .string "ZUBAT$", 11 + .string "GOLBAT$", 11 + .string "ODDISH$", 11 + .string "GLOOM$", 11 + .string "VILEPLUME$", 11 + .string "PARAS$", 11 + .string "PARASECT$", 11 + .string "VENONAT$", 11 + .string "VENOMOTH$", 11 + .string "DIGLETT$", 11 + .string "DUGTRIO$", 11 + .string "MEOWTH$", 11 + .string "PERSIAN$", 11 + .string "PSYDUCK$", 11 + .string "GOLDUCK$", 11 + .string "MANKEY$", 11 + .string "PRIMEAPE$", 11 + .string "GROWLITHE$", 11 + .string "ARCANINE$", 11 + .string "POLIWAG$", 11 + .string "POLIWHIRL$", 11 + .string "POLIWRATH$", 11 + .string "ABRA$", 11 + .string "KADABRA$", 11 + .string "ALAKAZAM$", 11 + .string "MACHOP$", 11 + .string "MACHOKE$", 11 + .string "MACHAMP$", 11 + .string "BELLSPROUT$", 11 + .string "WEEPINBELL$", 11 + .string "VICTREEBEL$", 11 + .string "TENTACOOL$", 11 + .string "TENTACRUEL$", 11 + .string "GEODUDE$", 11 + .string "GRAVELER$", 11 + .string "GOLEM$", 11 + .string "PONYTA$", 11 + .string "RAPIDASH$", 11 + .string "SLOWPOKE$", 11 + .string "SLOWBRO$", 11 + .string "MAGNEMITE$", 11 + .string "MAGNETON$", 11 + .string "FARFETCH'D$", 11 + .string "DODUO$", 11 + .string "DODRIO$", 11 + .string "SEEL$", 11 + .string "DEWGONG$", 11 + .string "GRIMER$", 11 + .string "MUK$", 11 + .string "SHELLDER$", 11 + .string "CLOYSTER$", 11 + .string "GASTLY$", 11 + .string "HAUNTER$", 11 + .string "GENGAR$", 11 + .string "ONIX$", 11 + .string "DROWZEE$", 11 + .string "HYPNO$", 11 + .string "KRABBY$", 11 + .string "KINGLER$", 11 + .string "VOLTORB$", 11 + .string "ELECTRODE$", 11 + .string "EXEGGCUTE$", 11 + .string "EXEGGUTOR$", 11 + .string "CUBONE$", 11 + .string "MAROWAK$", 11 + .string "HITMONLEE$", 11 + .string "HITMONCHAN$", 11 + .string "LICKITUNG$", 11 + .string "KOFFING$", 11 + .string "WEEZING$", 11 + .string "RHYHORN$", 11 + .string "RHYDON$", 11 + .string "CHANSEY$", 11 + .string "TANGELA$", 11 + .string "KANGASKHAN$", 11 + .string "HORSEA$", 11 + .string "SEADRA$", 11 + .string "GOLDEEN$", 11 + .string "SEAKING$", 11 + .string "STARYU$", 11 + .string "STARMIE$", 11 + .string "MR. MIME$", 11 + .string "SCYTHER$", 11 + .string "JYNX$", 11 + .string "ELECTABUZZ$", 11 + .string "MAGMAR$", 11 + .string "PINSIR$", 11 + .string "TAUROS$", 11 + .string "MAGIKARP$", 11 + .string "GYARADOS$", 11 + .string "LAPRAS$", 11 + .string "DITTO$", 11 + .string "EEVEE$", 11 + .string "VAPOREON$", 11 + .string "JOLTEON$", 11 + .string "FLAREON$", 11 + .string "PORYGON$", 11 + .string "OMANYTE$", 11 + .string "OMASTAR$", 11 + .string "KABUTO$", 11 + .string "KABUTOPS$", 11 + .string "AERODACTYL$", 11 + .string "SNORLAX$", 11 + .string "ARTICUNO$", 11 + .string "ZAPDOS$", 11 + .string "MOLTRES$", 11 + .string "DRATINI$", 11 + .string "DRAGONAIR$", 11 + .string "DRAGONITE$", 11 + .string "MEWTWO$", 11 + .string "MEW$", 11 + .string "CHIKORITA$", 11 + .string "BAYLEEF$", 11 + .string "MEGANIUM$", 11 + .string "CYNDAQUIL$", 11 + .string "QUILAVA$", 11 + .string "TYPHLOSION$", 11 + .string "TOTODILE$", 11 + .string "CROCONAW$", 11 + .string "FERALIGATR$", 11 + .string "SENTRET$", 11 + .string "FURRET$", 11 + .string "HOOTHOOT$", 11 + .string "NOCTOWL$", 11 + .string "LEDYBA$", 11 + .string "LEDIAN$", 11 + .string "SPINARAK$", 11 + .string "ARIADOS$", 11 + .string "CROBAT$", 11 + .string "CHINCHOU$", 11 + .string "LANTURN$", 11 + .string "PICHU$", 11 + .string "CLEFFA$", 11 + .string "IGGLYBUFF$", 11 + .string "TOGEPI$", 11 + .string "TOGETIC$", 11 + .string "NATU$", 11 + .string "XATU$", 11 + .string "MAREEP$", 11 + .string "FLAAFFY$", 11 + .string "AMPHAROS$", 11 + .string "BELLOSSOM$", 11 + .string "MARILL$", 11 + .string "AZUMARILL$", 11 + .string "SUDOWOODO$", 11 + .string "POLITOED$", 11 + .string "HOPPIP$", 11 + .string "SKIPLOOM$", 11 + .string "JUMPLUFF$", 11 + .string "AIPOM$", 11 + .string "SUNKERN$", 11 + .string "SUNFLORA$", 11 + .string "YANMA$", 11 + .string "WOOPER$", 11 + .string "QUAGSIRE$", 11 + .string "ESPEON$", 11 + .string "UMBREON$", 11 + .string "MURKROW$", 11 + .string "SLOWKING$", 11 + .string "MISDREAVUS$", 11 + .string "UNOWN$", 11 + .string "WOBBUFFET$", 11 + .string "GIRAFARIG$", 11 + .string "PINECO$", 11 + .string "FORRETRESS$", 11 + .string "DUNSPARCE$", 11 + .string "GLIGAR$", 11 + .string "STEELIX$", 11 + .string "SNUBBULL$", 11 + .string "GRANBULL$", 11 + .string "QWILFISH$", 11 + .string "SCIZOR$", 11 + .string "SHUCKLE$", 11 + .string "HERACROSS$", 11 + .string "SNEASEL$", 11 + .string "TEDDIURSA$", 11 + .string "URSARING$", 11 + .string "SLUGMA$", 11 + .string "MAGCARGO$", 11 + .string "SWINUB$", 11 + .string "PILOSWINE$", 11 + .string "CORSOLA$", 11 + .string "REMORAID$", 11 + .string "OCTILLERY$", 11 + .string "DELIBIRD$", 11 + .string "MANTINE$", 11 + .string "SKARMORY$", 11 + .string "HOUNDOUR$", 11 + .string "HOUNDOOM$", 11 + .string "KINGDRA$", 11 + .string "PHANPY$", 11 + .string "DONPHAN$", 11 + .string "PORYGON2$", 11 + .string "STANTLER$", 11 + .string "SMEARGLE$", 11 + .string "TYROGUE$", 11 + .string "HITMONTOP$", 11 + .string "SMOOCHUM$", 11 + .string "ELEKID$", 11 + .string "MAGBY$", 11 + .string "MILTANK$", 11 + .string "BLISSEY$", 11 + .string "RAIKOU$", 11 + .string "ENTEI$", 11 + .string "SUICUNE$", 11 + .string "LARVITAR$", 11 + .string "PUPITAR$", 11 + .string "TYRANITAR$", 11 + .string "LUGIA$", 11 + .string "HO-OH$", 11 + .string "CELEBI$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "?$", 11 + .string "TREECKO$", 11 + .string "GROVYLE$", 11 + .string "SCEPTILE$", 11 + .string "TORCHIC$", 11 + .string "COMBUSKEN$", 11 + .string "BLAZIKEN$", 11 + .string "MUDKIP$", 11 + .string "MARSHTOMP$", 11 + .string "SWAMPERT$", 11 + .string "POOCHYENA$", 11 + .string "MIGHTYENA$", 11 + .string "ZIGZAGOON$", 11 + .string "LINOONE$", 11 + .string "WURMPLE$", 11 + .string "SILCOON$", 11 + .string "BEAUTIFLY$", 11 + .string "CASCOON$", 11 + .string "DUSTOX$", 11 + .string "LOTAD$", 11 + .string "LOMBRE$", 11 + .string "LUDICOLO$", 11 + .string "SEEDOT$", 11 + .string "NUZLEAF$", 11 + .string "SHIFTRY$", 11 + .string "NINCADA$", 11 + .string "NINJASK$", 11 + .string "SHEDINJA$", 11 + .string "TAILLOW$", 11 + .string "SWELLOW$", 11 + .string "SHROOMISH$", 11 + .string "BRELOOM$", 11 + .string "SPINDA$", 11 + .string "WINGULL$", 11 + .string "PELIPPER$", 11 + .string "SURSKIT$", 11 + .string "MASQUERAIN$", 11 + .string "WAILMER$", 11 + .string "WAILORD$", 11 + .string "SKITTY$", 11 + .string "DELCATTY$", 11 + .string "KECLEON$", 11 + .string "BALTOY$", 11 + .string "CLAYDOL$", 11 + .string "NOSEPASS$", 11 + .string "TORKOAL$", 11 + .string "SABLEYE$", 11 + .string "BARBOACH$", 11 + .string "WHISCASH$", 11 + .string "LUVDISC$", 11 + .string "CORPHISH$", 11 + .string "CRAWDAUNT$", 11 + .string "FEEBAS$", 11 + .string "MILOTIC$", 11 + .string "CARVANHA$", 11 + .string "SHARPEDO$", 11 + .string "TRAPINCH$", 11 + .string "VIBRAVA$", 11 + .string "FLYGON$", 11 + .string "MAKUHITA$", 11 + .string "HARIYAMA$", 11 + .string "ELECTRIKE$", 11 + .string "MANECTRIC$", 11 + .string "NUMEL$", 11 + .string "CAMERUPT$", 11 + .string "SPHEAL$", 11 + .string "SEALEO$", 11 + .string "WALREIN$", 11 + .string "CACNEA$", 11 + .string "CACTURNE$", 11 + .string "SNORUNT$", 11 + .string "GLALIE$", 11 + .string "LUNATONE$", 11 + .string "SOLROCK$", 11 + .string "AZURILL$", 11 + .string "SPOINK$", 11 + .string "GRUMPIG$", 11 + .string "PLUSLE$", 11 + .string "MINUN$", 11 + .string "MAWILE$", 11 + .string "MEDITITE$", 11 + .string "MEDICHAM$", 11 + .string "SWABLU$", 11 + .string "ALTARIA$", 11 + .string "WYNAUT$", 11 + .string "DUSKULL$", 11 + .string "DUSCLOPS$", 11 + .string "ROSELIA$", 11 + .string "SLAKOTH$", 11 + .string "VIGOROTH$", 11 + .string "SLAKING$", 11 + .string "GULPIN$", 11 + .string "SWALOT$", 11 + .string "TROPIUS$", 11 + .string "WHISMUR$", 11 + .string "LOUDRED$", 11 + .string "EXPLOUD$", 11 + .string "CLAMPERL$", 11 + .string "HUNTAIL$", 11 + .string "GOREBYSS$", 11 + .string "ABSOL$", 11 + .string "SHUPPET$", 11 + .string "BANETTE$", 11 + .string "SEVIPER$", 11 + .string "ZANGOOSE$", 11 + .string "RELICANTH$", 11 + .string "ARON$", 11 + .string "LAIRON$", 11 + .string "AGGRON$", 11 + .string "CASTFORM$", 11 + .string "VOLBEAT$", 11 + .string "ILLUMISE$", 11 + .string "LILEEP$", 11 + .string "CRADILY$", 11 + .string "ANORITH$", 11 + .string "ARMALDO$", 11 + .string "RALTS$", 11 + .string "KIRLIA$", 11 + .string "GARDEVOIR$", 11 + .string "BAGON$", 11 + .string "SHELGON$", 11 + .string "SALAMENCE$", 11 + .string "BELDUM$", 11 + .string "METANG$", 11 + .string "METAGROSS$", 11 + .string "REGIROCK$", 11 + .string "REGICE$", 11 + .string "REGISTEEL$", 11 + .string "KYOGRE$", 11 + .string "GROUDON$", 11 + .string "RAYQUAZA$", 11 + .string "LATIAS$", 11 + .string "LATIOS$", 11 + .string "JIRACHI$", 11 + .string "DEOXYS$", 11 + .string "CHIMECHO$", 11 diff --git a/data/text/teachy_tv.inc b/data/text/teachy_tv.inc new file mode 100644 index 000000000..3989aa5d1 --- /dev/null +++ b/data/text/teachy_tv.inc @@ -0,0 +1,227 @@ +gTeachyTvString_TeachBattle:: @ 841B7A4 + .string "Teach me how to battle.$" + +gTeachyTvString_StatusProblems:: @ 841B7BC + .string "What are status problems?$" + +gTeachyTvString_TypeMatchups:: @ 841B7D6 + .string "What are type matchups?$" + +gTeachyTvString_CatchPkmn:: @ 841B7EE + .string "I want to catch POKéMON.$" + +gTeachyTvString_AboutTMs:: @ 841B807 + .string "Teach me about TMs.$" + +gTeachyTvString_RegisterItem:: @ 841B81B + .string "How do I register an item?$" + +gTeachyTvString_Cancel:: @ 841B836 + .string "CANCEL$" + +gTeachyTvText_PokeDudeSaysHello:: @ 841B83D + .string "Hey, all you TRAINERS out there!\n" + .string "HELLO, TRAINERS!\p" + .string "……… ……… ………\p" + .string "Come on, let me hear you!\n" + .string "HELLO, TRAINERS!\l" + .string "It's me, the POKé DUDE!\p" + .string "$" + +gTeachyTvText_BattleScript1:: @ 841B8BF + .string "Today, the POKé DUDE's here to\n" + .string "tell you about how you can battle\l" + .string "POKéMON!\p" + .string "Say you're out for a stroll when,\n" + .string "suddenly, a wild POKéMON appears!\p" + .string "It's up to you to smartly use your\n" + .string "POKéMON and their moves to reduce\l" + .string "the opponent's HP to nothing, and\l" + .string "claim victory!\p" + .string "I'll show you how to do that in\n" + .string "person and for sure!\p" + .string "All righty, here goes!\p" + .string "Keep your eyes glued to the super\n" + .string "POKé DUDE SHOW!$" + +gTeachyTvText_BattleScript2:: @ 841BA41 + .string "Well, did you get that?\p" + .string "Even if your own POKéMON's HP\n" + .string "falls to zero, and it becomes\l" + .string "unable to battle, not to worry!\p" + .string "Just take it to any POKéMON\n" + .string "CENTER and heal it!\p" + .string "All righty, be seeing you!\p" + .string "Remember, TRAINERS, a good deed\n" + .string "a day brings happiness to stay!$" + +gTeachyTvText_StatusScript1:: @ 841BB40 + .string "Today, the POKé DUDE's here to\n" + .string "tell you about status problems!\p" + .string "Status problems include poisoning,\n" + .string "paralysis, sleep, burn…\p" + .string "There are a couple others, but\n" + .string "they really are trouble.\p" + .string "Get any one, and your POKéMON\n" + .string "may become useless in battle.\p" + .string "You know, it hurts the POKé DUDE\n" + .string "to see a POKéMON suffer…\p" + .string "So, what should you do if your\n" + .string "POKéMON gets a status problem?\p" + .string "Well, you've got me to show you!\p" + .string "All righty, here goes!\p" + .string "Keep your eyes glued to the super\n" + .string "POKé DUDE SHOW!$" + +gTeachyTvText_StatusScript2:: @ 841BD10 + .string "Poisoning or paralysis don't go\n" + .string "away after a battle.\p" + .string "If a POKéMON is poisoned, it loses\n" + .string "HP even while you're walking.\p" + .string "You should heal POKéMON of these\n" + .string "kinds of problems right away.\p" + .string "Use an item, or try to get to a\n" + .string "POKéMON CENTER for healing.\p" + .string "That wasn't hard, was it?\n" + .string "All righty, be seeing you!\p" + .string "Remember, TRAINERS, a good deed\n" + .string "a day brings happiness to stay!$" + +gTeachyTvText_MatchupsScript1:: @ 841BE76 + .string "Does everyone know about type\n" + .string "matchups?\p" + .string "POKéMON and their moves all\n" + .string "belong to certain types.\p" + .string "For example, there are such types\n" + .string "as GRASS and WATER.\p" + .string "You need to consider the type of\n" + .string "the move used to attack…\p" + .string "And, the type of the POKéMON that\n" + .string "is hit by that attack.\p" + .string "Depending on how those two types\n" + .string "match up, the damage can change.\p" + .string "You see, it depends on whether\n" + .string "the type matchup is good or bad.\p" + .string "If you don't know how matchups\n" + .string "work, battles will be tough.\p" + .string "So, let me demonstrate exactly\n" + .string "what I mean.\p" + .string "All righty, here goes!\p" + .string "Keep your eyes glued to the super\n" + .string "POKé DUDE SHOW!$" + +gTeachyTvText_MatchupsScript2:: @ 841C0AF + .string "Is it possible to launch an attack\n" + .string "that will inflict heavy damage?\p" + .string "Does the opposing POKéMON pose\n" + .string "a threat to your POKéMON?\p" + .string "Is there any chance that it may\n" + .string "have disastrously tough moves?\p" + .string "Watch the type matchups to gain\n" + .string "the upper hand!\p" + .string "All righty, be seeing you!\p" + .string "Oh, for the COOL-type POKé DUDE,\n" + .string "AWESOME-type kids like you match\l" + .string "up perfectly!\p" + .string "Remember, a good deed a day\n" + .string "brings happiness to stay!$" + +gTeachyTvText_CatchingScript1:: @ 841C23B + .string "Today, the POKé DUDE's going to\n" + .string "show you how to catch POKéMON!\p" + .string "Just imagine… A groovy POKéMON\n" + .string "suddenly appearing in the wild!\p" + .string "Oh, you want it!\n" + .string "You just can't help it!\p" + .string "Oh, you have to catch it!\n" + .string "You gotta have it!\p" + .string "Let me show you how you can make\n" + .string "it happen!\p" + .string "All righty, here goes!\p" + .string "Keep your eyes glued to the super\n" + .string "POKé DUDE SHOW!$" + +gTeachyTvText_CatchingScript2:: @ 841C384 + .string "If your first POKé BALL fails to\n" + .string "catch the POKéMON, don't give up!\p" + .string "Keep throwing POKé BALLS…\n" + .string "It's bound to work sometime!\p" + .string "All righty, be seeing you!\p" + .string "Remember, TRAINERS, a good deed\n" + .string "a day brings happiness to stay!$" + +gTeachyTvText_TMsScript1:: @ 841C459 + .string "Hey, everyone!\n" + .string "Do you all have TMs?\p" + .string "A TM, Technical Machine, is an\n" + .string "amazingly great item!\p" + .string "It teaches POKéMON a move that\n" + .string "it may not learn when leveling up!\p" + .string "Isn't that just great? What a\n" + .string "convenient world we live in!\p" + .string "Open the TM CASE and check out\n" + .string "the TMs you have.\p" + .string "You can check them out in detail,\n" + .string "too.$" + +gPokeDudeText_TMTypes:: @ 841C587 + .string "POKé DUDE: NORMAL, WATER, GRASS…\n" + .string "TMs also come in types.\p" + .string "Check the type and teach it to\n" + .string "a POKéMON that matches up well.\p" + .string "For example, WATER PULSE is\n" + .string "suitable for WATER-type POKéMON.\p" + .string "BULLET SEED is a move that most\n" + .string "GRASS-type POKéMON can learn.\p" + .string "There's one other thing!$" + +gPokeDudeText_ReadTMDescription:: @ 841C693 + .string "Don't just look at the type, read\n" + .string "the description, too.\p" + .string "It will contain hints about what\n" + .string "POKéMON might learn the move.\p" + .string "For example, take a move like\n" + .string "FOCUS PUNCH.\p" + .string "It doesn't sound like anything a\n" + .string "bird or fish POKéMON can learn.\p" + .string "So, try using it on POKéMON with\n" + .string "arms that can throw punches!$" + +gTeachyTvText_TMsScript2:: @ 841C7B4 + .string "Wow, I talked a lot today!\n" + .string "All righty, be seeing you!\p" + .string "Remember, TRAINERS, a good deed\n" + .string "a day brings happiness to stay!$" + +gTeachyTvText_RegisterScript1:: @ 841C82A + .string "A TRAINER's BAG has a bunch of\n" + .string "nifty, convenient features!\p" + .string "Take stuff in the KEY ITEMS\n" + .string "POCKET, for instance.\p" + .string "You can use a key item without\n" + .string "opening the BAG every time.\p" + .string "For example, let's pretend I have\n" + .string "a TEACHY TV in my BAG.\p" + .string "I can register it for instant use,\n" + .string "and I'll show you how!\p" + .string "All righty, here goes!\p" + .string "Keep your eyes glued to the sorta\n" + .string "super POKé DUDE SHOW!$" + +gTeachyTvText_RegisterScript2:: @ 841C994 + .string "And now, your TEACHY TV is\n" + .string "registered.\p" + .string "How do you use it?\n" + .string "Well, here's how it works.\p" + .string "Once an item in the KEY ITEMS\n" + .string "POKCET is registered, you can use\l" + .string "it by pressing SELECT.\p" + .string "So, you've given yourself\n" + .string "one-touch access to TEACHY TV.\p" + .string "All it takes for you to see me is\n" + .string "pressing one button!\p" + .string "That kind of attention is a little\n" + .string "embarrassing!\p" + .string "All righty, be seeing you!\p" + .string "Remember, TRAINERS, a good deed\n" + .string "a day brings happiness to stay!$" diff --git a/data/tileset_anims.s b/data/tileset_anims.s new file mode 100644 index 000000000..9881cdd3f --- /dev/null +++ b/data/tileset_anims.s @@ -0,0 +1,25 @@ + .section .rodata + .align 2 +gUnknown_83A7660:: @ 83A7660 + .incbin "baserom.gba", 0x3A7660, 0x2FF4 + +gUnknown_83AA654:: @ 83AA654 + .incbin "baserom.gba", 0x3AA654, 0x1220 + +gUnknown_83AB874:: @ 83AB874 + .incbin "baserom.gba", 0x3AB874, 0x540 + +gUnknown_83ABDB4:: @ 83ABDB4 + .incbin "baserom.gba", 0x3ABDB4, 0x434 + +gUnknown_83AC1E8:: @ 83AC1E8 + .incbin "baserom.gba", 0x3AC1E8, 0x410 + +gUnknown_83AC5F8:: @ 83AC5F8 + .incbin "baserom.gba", 0x3AC5F8, 0x1D0 + +gUnknown_83AC7C8:: @ 83AC7C8 + .incbin "baserom.gba", 0x3AC7C8, 0x188 + +gUnknown_83AC950:: @ 83AC950 + .incbin "baserom.gba", 0x3AC950, 0x10 diff --git a/data/tilesets.s b/data/tilesets.s new file mode 100644 index 000000000..b8b50e652 --- /dev/null +++ b/data/tilesets.s @@ -0,0 +1,8 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .include "data/tilesets/graphics.inc" + .include "data/tilesets/metatiles.inc" + .include "data/tilesets/headers.inc" diff --git a/data/tilesets/graphics.inc b/data/tilesets/graphics.inc new file mode 100644 index 000000000..a23f73322 --- /dev/null +++ b/data/tilesets/graphics.inc @@ -0,0 +1,1471 @@ + .align 2 +gTilesetTiles_826D37C:: @ 826D37C + .incbin "data/tilesets/secondary/82D4AAC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_826D7C0:: @ 826D7C0 + .incbin "data/tilesets/secondary/82D4AAC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4AAC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_826D9C0:: @ 826D9C0 + .incbin "data/tilesets/secondary/82D4AC4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_826DFC0:: @ 826DFC0 + .incbin "data/tilesets/secondary/82D4AC4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4AC4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_826E1C0:: @ 826E1C0 + .incbin "data/tilesets/secondary/82D4ADC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_826EAB8:: @ 826EAB8 + .incbin "data/tilesets/secondary/82D4ADC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4ADC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_826ECB8:: @ 826ECB8 + .incbin "data/tilesets/secondary/82D4AF4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_826F4B8:: @ 826F4B8 + .incbin "data/tilesets/secondary/82D4AF4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4AF4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_826F6B8:: @ 826F6B8 + .incbin "data/tilesets/secondary/82D4B0C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8270438:: @ 8270438 + .incbin "data/tilesets/secondary/82D4B0C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4B0C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8270638:: @ 8270638 + .incbin "data/tilesets/secondary/82D4B24/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8270DA0:: @ 8270DA0 + .incbin "data/tilesets/secondary/82D4B24/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4B24/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8270FA0:: @ 8270FA0 + .incbin "data/tilesets/secondary/82D4B3C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8271C74:: @ 8271C74 + .incbin "data/tilesets/secondary/82D4B3C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4B3C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8271E74:: @ 8271E74 + .incbin "data/tilesets/secondary/82D4B54/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8272A5C:: @ 8272A5C + .incbin "data/tilesets/secondary/82D4B54/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4B54/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8272C5C:: @ 8272C5C + .incbin "data/tilesets/secondary/82D4B6C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8273358:: @ 8273358 + .incbin "data/tilesets/secondary/82D4B6C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4B6C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8273558:: @ 8273558 + .incbin "data/tilesets/secondary/82D4B84/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82742D0:: @ 82742D0 + .incbin "data/tilesets/secondary/82D4B84/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4B84/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82744D0:: @ 82744D0 + .incbin "data/tilesets/secondary/82D4B9C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8275094:: @ 8275094 + .incbin "data/tilesets/secondary/82D4B9C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4B9C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8275294:: @ 8275294 + .incbin "data/tilesets/primary/82D4BB4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8277694:: @ 8277694 + .incbin "data/tilesets/primary/82D4BB4/palettes/0.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/1.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/2.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/3.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/4.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/5.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/6.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/7.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/8.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/9.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/10.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/11.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/12.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/13.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/14.gbapal" + .incbin "data/tilesets/primary/82D4BB4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8277894:: @ 8277894 + .incbin "data/tilesets/secondary/82D4BCC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8277A5C:: @ 8277A5C + .incbin "data/tilesets/secondary/82D4BCC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4BCC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8277C5C:: @ 8277C5C + .incbin "data/tilesets/secondary/82D4BE4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8278CC4:: @ 8278CC4 + .incbin "data/tilesets/secondary/82D4BE4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4BE4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8278EC4:: @ 8278EC4 + .incbin "data/tilesets/secondary/82D4BFC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_827A1A8:: @ 827A1A8 + .incbin "data/tilesets/secondary/82D4BFC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4BFC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_827A3A8:: @ 827A3A8 + .incbin "data/tilesets/secondary/82D4C14/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_827A3B8:: @ 827A3B8 + .incbin "data/tilesets/secondary/82D4C14/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4C14/palettes/15.gbapal" + + .align 2 +gTilesetTiles_827A5B8:: @ 827A5B8 + .incbin "data/tilesets/secondary/82D4C2C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_827AE14:: @ 827AE14 + .incbin "data/tilesets/secondary/82D4C2C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4C2C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_827B014:: @ 827B014 + .incbin "data/tilesets/secondary/82D4C44/tiles.4bpp" + + .align 2 +gTilesetPalettes_827FF14:: @ 827FF14 + .incbin "data/tilesets/secondary/82D4C44/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4C44/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8280114:: @ 8280114 + .incbin "data/tilesets/secondary/82D4C5C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82804EC:: @ 82804EC + .incbin "data/tilesets/secondary/82D4C5C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4C5C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82806EC:: @ 82806EC + .incbin "data/tilesets/secondary/82D4C8C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8280D00:: @ 8280D00 + .incbin "data/tilesets/secondary/82D4C8C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4C8C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8280F00:: @ 8280F00 + .incbin "data/tilesets/secondary/82D4CD4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82823A4:: @ 82823A4 + .incbin "data/tilesets/secondary/82D4CD4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4CD4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82825A4:: @ 82825A4 + .incbin "data/tilesets/secondary/82D4CEC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8282FBC:: @ 8282FBC + .incbin "data/tilesets/secondary/82D4CEC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4CEC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82831BC:: @ 82831BC + .incbin "data/tilesets/secondary/82D4D04/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82839B0:: @ 82839B0 + .incbin "data/tilesets/secondary/82D4D04/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4D04/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8283BB0:: @ 8283BB0 + .incbin "data/tilesets/secondary/82D4D1C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8283FF8:: @ 8283FF8 + .incbin "data/tilesets/secondary/82D4D1C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4D1C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82841F8:: @ 82841F8 + .incbin "data/tilesets/secondary/82D4D34/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82849B8:: @ 82849B8 + .incbin "data/tilesets/secondary/82D4D34/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4D34/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8284BB8:: @ 8284BB8 + .incbin "data/tilesets/secondary/82D4D4C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8285150:: @ 8285150 + .incbin "data/tilesets/secondary/82D4D4C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4D4C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8285350:: @ 8285350 + .incbin "data/tilesets/secondary/82D4CA4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82857A4:: @ 82857A4 + .incbin "data/tilesets/secondary/82D4CA4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4CA4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82859A4:: @ 82859A4 + .incbin "data/tilesets/secondary/82D4D64/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8285D90:: @ 8285D90 + .incbin "data/tilesets/secondary/82D4D64/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4D64/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8285F90:: @ 8285F90 + .incbin "data/tilesets/secondary/82D4D7C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82865D4:: @ 82865D4 + .incbin "data/tilesets/secondary/82D4D7C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4D7C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82867D4:: @ 82867D4 + .incbin "data/tilesets/secondary/82D4CBC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8286BC8:: @ 8286BC8 + .incbin "data/tilesets/secondary/82D4CBC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4CBC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8286DC8:: @ 8286DC8 + .incbin "data/tilesets/secondary/82D4D94/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8287B80:: @ 8287B80 + .incbin "data/tilesets/secondary/82D4D94/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4D94/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8287D80:: @ 8287D80 + .incbin "data/tilesets/secondary/82D4DAC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8287D94:: @ 8287D94 + .incbin "data/tilesets/secondary/82D4DAC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4DAC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8287F94:: @ 8287F94 + .incbin "data/tilesets/secondary/82D4DC4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8288444:: @ 8288444 + .incbin "data/tilesets/secondary/82D4DC4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4DC4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8288644:: @ 8288644 + .incbin "data/tilesets/secondary/82D4DDC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8288C60:: @ 8288C60 + .incbin "data/tilesets/secondary/82D4DDC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4DDC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8288E60:: @ 8288E60 + .incbin "data/tilesets/secondary/82D4DF4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8289FC8:: @ 8289FC8 + .incbin "data/tilesets/secondary/82D4DF4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4DF4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_828A1C8:: @ 828A1C8 + .incbin "data/tilesets/secondary/82D4E0C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_828B250:: @ 828B250 + .incbin "data/tilesets/secondary/82D4E0C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4E0C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_828B450:: @ 828B450 + .incbin "data/tilesets/secondary/82D4E24/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_828CAA0:: @ 828CAA0 + .incbin "data/tilesets/secondary/82D4E24/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4E24/palettes/15.gbapal" + + .align 2 +gTilesetTiles_828CCA0:: @ 828CCA0 + .incbin "data/tilesets/secondary/82D4E3C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_828D2BC:: @ 828D2BC + .incbin "data/tilesets/secondary/82D4E3C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4E3C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_828D4BC:: @ 828D4BC + .incbin "data/tilesets/secondary/82D4E54/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_828E3A4:: @ 828E3A4 + .incbin "data/tilesets/secondary/82D4E54/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4E54/palettes/15.gbapal" + + .align 2 +gTilesetTiles_828E5A4:: @ 828E5A4 + .incbin "data/tilesets/secondary/82D4E84/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_828EC70:: @ 828EC70 + .incbin "data/tilesets/secondary/82D4E84/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4E84/palettes/15.gbapal" + + .align 2 +gTilesetTiles_828EE70:: @ 828EE70 + .incbin "data/tilesets/secondary/82D4E9C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_828F378:: @ 828F378 + .incbin "data/tilesets/secondary/82D4E9C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4E9C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_828F578:: @ 828F578 + .incbin "data/tilesets/secondary/82D4EB4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_828F9D8:: @ 828F9D8 + .incbin "data/tilesets/secondary/82D4EB4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4EB4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_828FBD8:: @ 828FBD8 + .incbin "data/tilesets/secondary/82D4F8C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8290DD0:: @ 8290DD0 + .incbin "data/tilesets/secondary/82D4F8C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4F8C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8290FD0:: @ 8290FD0 + .incbin "data/tilesets/secondary/82D4EE4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8291274:: @ 8291274 + .incbin "data/tilesets/secondary/82D4EE4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4EE4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8291474:: @ 8291474 + .incbin "data/tilesets/secondary/82D4EFC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8291AFC:: @ 8291AFC + .incbin "data/tilesets/secondary/82D4EFC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4EFC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8291CFC:: @ 8291CFC + .incbin "data/tilesets/secondary/82D4F14/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82920F0:: @ 82920F0 + .incbin "data/tilesets/secondary/82D4F14/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4F14/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82922F0:: @ 82922F0 + .incbin "data/tilesets/secondary/82D4F2C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8292FF0:: @ 8292FF0 + .incbin "data/tilesets/secondary/82D4F2C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4F2C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82931F0:: @ 82931F0 + .incbin "data/tilesets/secondary/82D4F44/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8293660:: @ 8293660 + .incbin "data/tilesets/secondary/82D4F44/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4F44/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8293860:: @ 8293860 + .incbin "data/tilesets/secondary/82D4F5C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8293B0C:: @ 8293B0C + .incbin "data/tilesets/secondary/82D4F5C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4F5C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8293D0C:: @ 8293D0C + .incbin "data/tilesets/secondary/82D4F74/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8294144:: @ 8294144 + .incbin "data/tilesets/secondary/82D4F74/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4F74/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8294344:: @ 8294344 + .incbin "data/tilesets/secondary/82D4FA4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8294D08:: @ 8294D08 + .incbin "data/tilesets/secondary/82D4FA4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4FA4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8294F08:: @ 8294F08 + .incbin "data/tilesets/secondary/82D4FBC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8294F18:: @ 8294F18 + .incbin "data/tilesets/secondary/82D4FBC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4FBC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8295118:: @ 8295118 + .incbin "data/tilesets/secondary/82D4FD4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_829512C:: @ 829512C + .incbin "data/tilesets/secondary/82D4FD4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4FD4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_829532C:: @ 829532C + .incbin "data/tilesets/secondary/82D4FEC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82967D4:: @ 82967D4 + .incbin "data/tilesets/secondary/82D4FEC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D4FEC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82969D4:: @ 82969D4 + .incbin "data/tilesets/secondary/82D5004/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8296E90:: @ 8296E90 + .incbin "data/tilesets/secondary/82D5004/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D5004/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8297090:: @ 8297090 + .incbin "data/tilesets/secondary/82D501C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_82983BC:: @ 82983BC + .incbin "data/tilesets/secondary/82D501C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D501C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_82985BC:: @ 82985BC + .incbin "data/tilesets/secondary/82D5034/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8298970:: @ 8298970 + .incbin "data/tilesets/secondary/82D5034/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D5034/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8298B70:: @ 8298B70 + .incbin "data/tilesets/secondary/82D504C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_8299AA4:: @ 8299AA4 + .incbin "data/tilesets/secondary/82D504C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D504C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_8299CA4:: @ 8299CA4 + .incbin "data/tilesets/secondary/82D5064/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_829AB04:: @ 829AB04 + .incbin "data/tilesets/secondary/82D5064/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D5064/palettes/15.gbapal" + + .align 2 +gTilesetTiles_829AD04:: @ 829AD04 + .incbin "data/tilesets/secondary/82D507C/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_829BD64:: @ 829BD64 + .incbin "data/tilesets/secondary/82D507C/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D507C/palettes/15.gbapal" + + .align 2 +gTilesetTiles_829BF64:: @ 829BF64 + .incbin "data/tilesets/secondary/82D5094/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_829CEE4:: @ 829CEE4 + .incbin "data/tilesets/secondary/82D5094/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D5094/palettes/15.gbapal" + + .align 2 +gTilesetTiles_829D0E4:: @ 829D0E4 + .incbin "data/tilesets/secondary/82D50AC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_829D894:: @ 829D894 + .incbin "data/tilesets/secondary/82D50AC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D50AC/palettes/15.gbapal" + + .align 2 +gTilesetTiles_829DA94:: @ 829DA94 + .incbin "data/tilesets/secondary/82D50C4/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_829EA50:: @ 829EA50 + .incbin "data/tilesets/secondary/82D50C4/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D50C4/palettes/15.gbapal" + + .align 2 +gTilesetTiles_829EC50:: @ 829EC50 + .incbin "data/tilesets/secondary/82D50DC/tiles.4bpp.lz" + + .align 2 +gTilesetPalettes_829F4C8:: @ 829F4C8 + .incbin "data/tilesets/secondary/82D50DC/palettes/0.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/1.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/2.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/3.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/4.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/5.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/6.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/7.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/8.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/9.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/10.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/11.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/12.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/13.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/14.gbapal" + .incbin "data/tilesets/secondary/82D50DC/palettes/15.gbapal" diff --git a/data/tilesets/headers.inc b/data/tilesets/headers.inc new file mode 100644 index 000000000..d40b3a5e6 --- /dev/null +++ b/data/tilesets/headers.inc @@ -0,0 +1,749 @@ + + .align 2 +gTileset_82D4A94:: + .byte TRUE @ is compressed + .byte FALSE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8EA1D68 + .4byte gTilesetPalettes_8EA1B68 + .4byte gMetatiles_829F6C8 + .4byte sub_8070154 + .4byte gMetatileAttributes_82A1EC8 + + .align 2 +gTileset_82D4AAC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_826D37C + .4byte gTilesetPalettes_826D7C0 + .4byte gMetatiles_82A28C8 + .4byte 0x0 + .4byte gMetatileAttributes_82A2E58 + + .align 2 +gTileset_82D4AC4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_826D9C0 + .4byte gTilesetPalettes_826DFC0 + .4byte gMetatiles_82A2FBC + .4byte 0x0 + .4byte gMetatileAttributes_82A35AC + + .align 2 +gTileset_82D4ADC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_826E1C0 + .4byte gTilesetPalettes_826EAB8 + .4byte gMetatiles_82A3728 + .4byte 0x0 + .4byte gMetatileAttributes_82A3C18 + + .align 2 +gTileset_82D4AF4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_826ECB8 + .4byte gTilesetPalettes_826F4B8 + .4byte gMetatiles_82A3D54 + .4byte 0x0 + .4byte gMetatileAttributes_82A45B4 + + .align 2 +gTileset_82D4B0C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_826F6B8 + .4byte gTilesetPalettes_8270438 + .4byte gMetatiles_82A47CC + .4byte 0x0 + .4byte gMetatileAttributes_82A556C + + .align 2 +gTileset_82D4B24:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8270638 + .4byte gTilesetPalettes_8270DA0 + .4byte gMetatiles_82A58D4 + .4byte 0x0 + .4byte gMetatileAttributes_82A6354 + + .align 2 +gTileset_82D4B3C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8270FA0 + .4byte gTilesetPalettes_8271C74 + .4byte gMetatiles_82A65F4 + .4byte sub_80701D8 + .4byte gMetatileAttributes_82A74F4 + + .align 2 +gTileset_82D4B54:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8271E74 + .4byte gTilesetPalettes_8272A5C + .4byte gMetatiles_82A78B4 + .4byte 0x0 + .4byte gMetatileAttributes_82A84B4 + + .align 2 +gTileset_82D4B6C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8272C5C + .4byte gTilesetPalettes_8273358 + .4byte gMetatiles_82A87B4 + .4byte 0x0 + .4byte gMetatileAttributes_82A8BB4 + + .align 2 +gTileset_82D4B84:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8273558 + .4byte gTilesetPalettes_82742D0 + .4byte gMetatiles_82A8CB4 + .4byte 0x0 + .4byte gMetatileAttributes_82A97B4 + + .align 2 +gTileset_82D4B9C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82744D0 + .4byte gTilesetPalettes_8275094 + .4byte gMetatiles_82A9A74 + .4byte 0x0 + .4byte gMetatileAttributes_82AA6F4 + + .align 2 +gTileset_82D4BB4:: + .byte TRUE @ is compressed + .byte FALSE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8275294 + .4byte gTilesetPalettes_8277694 + .4byte gMetatiles_82AD7B4 + .4byte 0x0 + .4byte gMetatileAttributes_82AFFB4 + + .align 2 +gTileset_82D4BCC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8277894 + .4byte gTilesetPalettes_8277A5C + .4byte gMetatiles_82B3524 + .4byte 0x0 + .4byte gMetatileAttributes_82B3954 + + .align 2 +gTileset_82D4BE4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8277C5C + .4byte gTilesetPalettes_8278CC4 + .4byte gMetatiles_82B3A60 + .4byte 0x0 + .4byte gMetatileAttributes_82B4A50 + + .align 2 +gTileset_82D4BFC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8278EC4 + .4byte gTilesetPalettes_827A1A8 + .4byte gMetatiles_82B502C + .4byte 0x0 + .4byte gMetatileAttributes_82B5A3C + + .align 2 +gTileset_82D4C14:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_827A3A8 + .4byte gTilesetPalettes_827A3B8 + .4byte gMetatiles_82B09B4 + .4byte 0x0 + .4byte gMetatileAttributes_82B09D4 + + .align 2 +gTileset_82D4C2C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_827A5B8 + .4byte gTilesetPalettes_827AE14 + .4byte gMetatiles_82C5738 + .4byte 0x0 + .4byte gMetatileAttributes_82C5FA8 + + .align 2 +gTileset_82D4C44:: + .byte FALSE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_827B014 + .4byte gTilesetPalettes_827FF14 + .4byte gMetatiles_82C61C4 + .4byte 0x0 + .4byte gMetatileAttributes_82C71C4 + + .align 2 +gTileset_82D4C5C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8280114 + .4byte gTilesetPalettes_82804EC + .4byte gMetatiles_82B31DC + .4byte 0x0 + .4byte gMetatileAttributes_82B347C + + .align 2 +gTileset_82D4C74:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8EA99F4 + .4byte gTilesetPalettes_8EA97F4 + .4byte gMetatiles_82B4E4C + .4byte 0x0 + .4byte gMetatileAttributes_82B4FCC + + .align 2 +gTileset_82D4C8C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82806EC + .4byte gTilesetPalettes_8280D00 + .4byte gMetatiles_82B68A0 + .4byte 0x0 + .4byte gMetatileAttributes_82B7390 + + .align 2 +gTileset_82D4CA4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8285350 + .4byte gTilesetPalettes_82857A4 + .4byte gMetatiles_82AC364 + .4byte 0x0 + .4byte gMetatileAttributes_82AC584 + + .align 2 +gTileset_82D4CBC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82867D4 + .4byte gTilesetPalettes_8286BC8 + .4byte gMetatiles_82AD124 + .4byte 0x0 + .4byte gMetatileAttributes_82AD664 + + .align 2 +gTileset_82D4CD4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8280F00 + .4byte gTilesetPalettes_82823A4 + .4byte gMetatiles_82B09DC + .4byte 0x0 + .4byte gMetatileAttributes_82B29DC + + .align 2 +gTileset_82D4CEC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82825A4 + .4byte gTilesetPalettes_8282FBC + .4byte gMetatiles_82B5CC0 + .4byte 0x0 + .4byte gMetatileAttributes_82B6640 + + .align 2 +gTileset_82D4D04:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82831BC + .4byte gTilesetPalettes_82839B0 + .4byte gMetatiles_82AAA14 + .4byte 0x0 + .4byte gMetatileAttributes_82AB064 + + .align 2 +gTileset_82D4D1C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8283BB0 + .4byte gTilesetPalettes_8283FF8 + .4byte gMetatiles_82AB1F8 + .4byte 0x0 + .4byte gMetatileAttributes_82AB738 + + .align 2 +gTileset_82D4D34:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82841F8 + .4byte gTilesetPalettes_82849B8 + .4byte gMetatiles_82AB888 + .4byte sub_807031C + .4byte gMetatileAttributes_82ABD38 + + .align 2 +gTileset_82D4D4C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8284BB8 + .4byte gTilesetPalettes_8285150 + .4byte gMetatiles_82ABE64 + .4byte sub_8070380 + .4byte gMetatileAttributes_82AC264 + + .align 2 +gTileset_82D4D64:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82859A4 + .4byte gTilesetPalettes_8285D90 + .4byte gMetatiles_82AC60C + .4byte 0x0 + .4byte gMetatileAttributes_82AC8EC + + .align 2 +gTileset_82D4D7C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8285F90 + .4byte gTilesetPalettes_82865D4 + .4byte gMetatiles_82AC9A4 + .4byte 0x0 + .4byte gMetatileAttributes_82ACFA4 + + .align 2 +gTileset_82D4D94:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8286DC8 + .4byte gTilesetPalettes_8287B80 + .4byte gMetatiles_82B764C + .4byte 0x0 + .4byte gMetatileAttributes_82B8B4C + + .align 2 +gTileset_82D4DAC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8287D80 + .4byte gTilesetPalettes_8287D94 + .4byte gMetatiles_82B908C + .4byte 0x0 + .4byte gMetatileAttributes_82B90AC + + .align 2 +gTileset_82D4DC4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8287F94 + .4byte gTilesetPalettes_8288444 + .4byte gMetatiles_82B90B4 + .4byte 0x0 + .4byte gMetatileAttributes_82B9364 + + .align 2 +gTileset_82D4DDC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8288644 + .4byte gTilesetPalettes_8288C60 + .4byte gMetatiles_82B9410 + .4byte 0x0 + .4byte gMetatileAttributes_82B9B30 + + .align 2 +gTileset_82D4DF4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8288E60 + .4byte gTilesetPalettes_8289FC8 + .4byte gMetatiles_82B9CF8 + .4byte 0x0 + .4byte gMetatileAttributes_82BA678 + + .align 2 +gTileset_82D4E0C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_828A1C8 + .4byte gTilesetPalettes_828B250 + .4byte gMetatiles_82BA8D8 + .4byte 0x0 + .4byte gMetatileAttributes_82BB2A8 + + .align 2 +gTileset_82D4E24:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_828B450 + .4byte gTilesetPalettes_828CAA0 + .4byte gMetatiles_82BB51C + .4byte 0x0 + .4byte gMetatileAttributes_82BC49C + + .align 2 +gTileset_82D4E3C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_828CCA0 + .4byte gTilesetPalettes_828D2BC + .4byte gMetatiles_82BC87C + .4byte 0x0 + .4byte gMetatileAttributes_82BCF9C + + .align 2 +gTileset_82D4E54:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_828D4BC + .4byte gTilesetPalettes_828E3A4 + .4byte gMetatiles_82BD164 + .4byte 0x0 + .4byte gMetatileAttributes_82BD9C4 + + .align 2 +gTileset_82D4E6C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8EA9F88 + .4byte gTilesetPalettes_8EA9D88 + .4byte gMetatiles_82BDBDC + .4byte 0x0 + .4byte gMetatileAttributes_82BEB3C + + .align 2 +gTileset_82D4E84:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_828E5A4 + .4byte gTilesetPalettes_828EC70 + .4byte gMetatiles_82BEF14 + .4byte 0x0 + .4byte gMetatileAttributes_82BFA94 + + .align 2 +gTileset_82D4E9C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_828EE70 + .4byte gTilesetPalettes_828F378 + .4byte gMetatiles_82BFD74 + .4byte 0x0 + .4byte gMetatileAttributes_82C0704 + + .align 2 +gTileset_82D4EB4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_828F578 + .4byte gTilesetPalettes_828F9D8 + .4byte gMetatiles_82C0968 + .4byte 0x0 + .4byte gMetatileAttributes_82C0D18 + + .align 2 +gTileset_82D4ECC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_828FBD8 + .4byte gTilesetPalettes_8290DD0 + .4byte gMetatiles_82C0E04 + .4byte sub_8070250 + .4byte gMetatileAttributes_82C25A4 + + .align 2 +gTileset_82D4EE4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8290FD0 + .4byte gTilesetPalettes_8291274 + .4byte gMetatiles_82C2B8C + .4byte 0x0 + .4byte gMetatileAttributes_82C300C + + .align 2 +gTileset_82D4EFC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8291474 + .4byte gTilesetPalettes_8291AFC + .4byte gMetatiles_82C312C + .4byte 0x0 + .4byte gMetatileAttributes_82C377C + + .align 2 +gTileset_82D4F14:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8291CFC + .4byte gTilesetPalettes_82920F0 + .4byte gMetatiles_82C3910 + .4byte 0x0 + .4byte gMetatileAttributes_82C4110 + + .align 2 +gTileset_82D4F2C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82922F0 + .4byte gTilesetPalettes_8292FF0 + .4byte gMetatiles_82C4310 + .4byte 0x0 + .4byte gMetatileAttributes_82C5330 + + .align 2 +gTileset_82D4F44:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82931F0 + .4byte gTilesetPalettes_8293660 + .4byte gMetatiles_82C75C4 + .4byte 0x0 + .4byte gMetatileAttributes_82C7C44 + + .align 2 +gTileset_82D4F5C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8293860 + .4byte gTilesetPalettes_8293B0C + .4byte gMetatiles_82C7DE4 + .4byte 0x0 + .4byte gMetatileAttributes_82C80C4 + + .align 2 +gTileset_82D4F74:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8293D0C + .4byte gTilesetPalettes_8294144 + .4byte gMetatiles_82C817C + .4byte 0x0 + .4byte gMetatileAttributes_82C8C1C + + .align 2 +gTileset_82D4F8C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_828FBD8 + .4byte gTilesetPalettes_8290DD0 + .4byte gMetatiles_82C8EC4 + .4byte 0x0 + .4byte gMetatileAttributes_82C9C34 + + .align 2 +gTileset_82D4FA4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8294344 + .4byte gTilesetPalettes_8294D08 + .4byte gMetatiles_82C9F90 + .4byte 0x0 + .4byte gMetatileAttributes_82CA320 + + .align 2 +gTileset_82D4FBC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8294F08 + .4byte gTilesetPalettes_8294F18 + .4byte gMetatiles_82CA404 + .4byte 0x0 + .4byte gMetatileAttributes_82CA424 + + .align 2 +gTileset_82D4FD4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8295118 + .4byte gTilesetPalettes_829512C + .4byte gMetatiles_82CA42C + .4byte 0x0 + .4byte gMetatileAttributes_82CA44C + + .align 2 +gTileset_82D4FEC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_829532C + .4byte gTilesetPalettes_82967D4 + .4byte gMetatiles_82CA454 + .4byte sub_80702B4 + .4byte gMetatileAttributes_82CB274 + + .align 2 +gTileset_82D5004:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82969D4 + .4byte gTilesetPalettes_8296E90 + .4byte gMetatiles_82CB5FC + .4byte 0x0 + .4byte gMetatileAttributes_82CB89C + + .align 2 +gTileset_82D501C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8297090 + .4byte gTilesetPalettes_82983BC + .4byte gMetatiles_82CB944 + .4byte 0x0 + .4byte gMetatileAttributes_82CC704 + + .align 2 +gTileset_82D5034:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_82985BC + .4byte gTilesetPalettes_8298970 + .4byte gMetatiles_82CCA74 + .4byte 0x0 + .4byte gMetatileAttributes_82CD054 + + .align 2 +gTileset_82D504C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8298B70 + .4byte gTilesetPalettes_8299AA4 + .4byte gMetatiles_82CD1CC + .4byte 0x0 + .4byte gMetatileAttributes_82CE39C + + .align 2 +gTileset_82D5064:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_8299CA4 + .4byte gTilesetPalettes_829AB04 + .4byte gMetatiles_82CE810 + .4byte 0x0 + .4byte gMetatileAttributes_82CF190 + + .align 2 +gTileset_82D507C:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_829AD04 + .4byte gTilesetPalettes_829BD64 + .4byte gMetatiles_82CF3F0 + .4byte 0x0 + .4byte gMetatileAttributes_82D02F0 + + .align 2 +gTileset_82D5094:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_829BF64 + .4byte gTilesetPalettes_829CEE4 + .4byte gMetatiles_82D06B0 + .4byte 0x0 + .4byte gMetatileAttributes_82D18B0 + + .align 2 +gTileset_82D50AC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_829D0E4 + .4byte gTilesetPalettes_829D894 + .4byte gMetatiles_82D1D30 + .4byte 0x0 + .4byte gMetatileAttributes_82D2220 + + .align 2 +gTileset_82D50C4:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_829DA94 + .4byte gTilesetPalettes_829EA50 + .4byte gMetatiles_82D235C + .4byte 0x0 + .4byte gMetatileAttributes_82D3B5C + + .align 2 +gTileset_82D50DC:: + .byte TRUE @ is compressed + .byte TRUE @ is secondary + .2byte 0 @ padding + .4byte gTilesetTiles_829EC50 + .4byte gTilesetPalettes_829F4C8 + .4byte gMetatiles_82D415C + .4byte 0x0 + .4byte gMetatileAttributes_82D48BC + diff --git a/data/tilesets/metatiles.inc b/data/tilesets/metatiles.inc new file mode 100644 index 000000000..50c849648 --- /dev/null +++ b/data/tilesets/metatiles.inc @@ -0,0 +1,543 @@ + .align 1 +gMetatiles_829F6C8:: @ 829F6C8 + .incbin "data/tilesets/primary/82D4A94/metatiles.bin" + + .align 1 +gMetatileAttributes_82A1EC8:: @ 82A1EC8 + .incbin "data/tilesets/primary/82D4A94/metatile_attributes.bin" + + .align 1 +gMetatiles_82A28C8:: @ 82A28C8 + .incbin "data/tilesets/secondary/82D4AAC/metatiles.bin" + + .align 1 +gMetatileAttributes_82A2E58:: @ 82A2E58 + .incbin "data/tilesets/secondary/82D4AAC/metatile_attributes.bin" + + .align 1 +gMetatiles_82A2FBC:: @ 82A2FBC + .incbin "data/tilesets/secondary/82D4AC4/metatiles.bin" + + .align 1 +gMetatileAttributes_82A35AC:: @ 82A35AC + .incbin "data/tilesets/secondary/82D4AC4/metatile_attributes.bin" + + .align 1 +gMetatiles_82A3728:: @ 82A3728 + .incbin "data/tilesets/secondary/82D4ADC/metatiles.bin" + + .align 1 +gMetatileAttributes_82A3C18:: @ 82A3C18 + .incbin "data/tilesets/secondary/82D4ADC/metatile_attributes.bin" + + .align 1 +gMetatiles_82A3D54:: @ 82A3D54 + .incbin "data/tilesets/secondary/82D4AF4/metatiles.bin" + + .align 1 +gMetatileAttributes_82A45B4:: @ 82A45B4 + .incbin "data/tilesets/secondary/82D4AF4/metatile_attributes.bin" + + .align 1 +gMetatiles_82A47CC:: @ 82A47CC + .incbin "data/tilesets/secondary/82D4B0C/metatiles.bin" + + .align 1 +gMetatileAttributes_82A556C:: @ 82A556C + .incbin "data/tilesets/secondary/82D4B0C/metatile_attributes.bin" + + .align 1 +gMetatiles_82A58D4:: @ 82A58D4 + .incbin "data/tilesets/secondary/82D4B24/metatiles.bin" + + .align 1 +gMetatileAttributes_82A6354:: @ 82A6354 + .incbin "data/tilesets/secondary/82D4B24/metatile_attributes.bin" + + .align 1 +gMetatiles_82A65F4:: @ 82A65F4 + .incbin "data/tilesets/secondary/82D4B3C/metatiles.bin" + + .align 1 +gMetatileAttributes_82A74F4:: @ 82A74F4 + .incbin "data/tilesets/secondary/82D4B3C/metatile_attributes.bin" + + .align 1 +gMetatiles_82A78B4:: @ 82A78B4 + .incbin "data/tilesets/secondary/82D4B54/metatiles.bin" + + .align 1 +gMetatileAttributes_82A84B4:: @ 82A84B4 + .incbin "data/tilesets/secondary/82D4B54/metatile_attributes.bin" + + .align 1 +gMetatiles_82A87B4:: @ 82A87B4 + .incbin "data/tilesets/secondary/82D4B6C/metatiles.bin" + + .align 1 +gMetatileAttributes_82A8BB4:: @ 82A8BB4 + .incbin "data/tilesets/secondary/82D4B6C/metatile_attributes.bin" + + .align 1 +gMetatiles_82A8CB4:: @ 82A8CB4 + .incbin "data/tilesets/secondary/82D4B84/metatiles.bin" + + .align 1 +gMetatileAttributes_82A97B4:: @ 82A97B4 + .incbin "data/tilesets/secondary/82D4B84/metatile_attributes.bin" + + .align 1 +gMetatiles_82A9A74:: @ 82A9A74 + .incbin "data/tilesets/secondary/82D4B9C/metatiles.bin" + + .align 1 +gMetatileAttributes_82AA6F4:: @ 82AA6F4 + .incbin "data/tilesets/secondary/82D4B9C/metatile_attributes.bin" + + .align 1 +gMetatiles_82AAA14:: @ 82AAA14 + .incbin "data/tilesets/secondary/82D4D04/metatiles.bin" + + .align 1 +gMetatileAttributes_82AB064:: @ 82AB064 + .incbin "data/tilesets/secondary/82D4D04/metatile_attributes.bin" + + .align 1 +gMetatiles_82AB1F8:: @ 82AB1F8 + .incbin "data/tilesets/secondary/82D4D1C/metatiles.bin" + + .align 1 +gMetatileAttributes_82AB738:: @ 82AB738 + .incbin "data/tilesets/secondary/82D4D1C/metatile_attributes.bin" + + .align 1 +gMetatiles_82AB888:: @ 82AB888 + .incbin "data/tilesets/secondary/82D4D34/metatiles.bin" + + .align 1 +gMetatileAttributes_82ABD38:: @ 82ABD38 + .incbin "data/tilesets/secondary/82D4D34/metatile_attributes.bin" + + .align 1 +gMetatiles_82ABE64:: @ 82ABE64 + .incbin "data/tilesets/secondary/82D4D4C/metatiles.bin" + + .align 1 +gMetatileAttributes_82AC264:: @ 82AC264 + .incbin "data/tilesets/secondary/82D4D4C/metatile_attributes.bin" + + .align 1 +gMetatiles_82AC364:: @ 82AC364 + .incbin "data/tilesets/secondary/82D4CA4/metatiles.bin" + + .align 1 +gMetatileAttributes_82AC584:: @ 82AC584 + .incbin "data/tilesets/secondary/82D4CA4/metatile_attributes.bin" + + .align 1 +gMetatiles_82AC60C:: @ 82AC60C + .incbin "data/tilesets/secondary/82D4D64/metatiles.bin" + + .align 1 +gMetatileAttributes_82AC8EC:: @ 82AC8EC + .incbin "data/tilesets/secondary/82D4D64/metatile_attributes.bin" + + .align 1 +gMetatiles_82AC9A4:: @ 82AC9A4 + .incbin "data/tilesets/secondary/82D4D7C/metatiles.bin" + + .align 1 +gMetatileAttributes_82ACFA4:: @ 82ACFA4 + .incbin "data/tilesets/secondary/82D4D7C/metatile_attributes.bin" + + .align 1 +gMetatiles_82AD124:: @ 82AD124 + .incbin "data/tilesets/secondary/82D4CBC/metatiles.bin" + + .align 1 +gMetatileAttributes_82AD664:: @ 82AD664 + .incbin "data/tilesets/secondary/82D4CBC/metatile_attributes.bin" + + .align 1 +gMetatiles_82AD7B4:: @ 82AD7B4 + .incbin "data/tilesets/primary/82D4BB4/metatiles.bin" + + .align 1 +gMetatileAttributes_82AFFB4:: @ 82AFFB4 + .incbin "data/tilesets/primary/82D4BB4/metatile_attributes.bin" + + .align 1 +gMetatiles_82B09B4:: @ 82B09B4 + .incbin "data/tilesets/secondary/82D4C14/metatiles.bin" + + .align 1 +gMetatileAttributes_82B09D4:: @ 82B09D4 + .incbin "data/tilesets/secondary/82D4C14/metatile_attributes.bin" + + .align 1 +gMetatiles_82B09DC:: @ 82B09DC + .incbin "data/tilesets/secondary/82D4CD4/metatiles.bin" + + .align 1 +gMetatileAttributes_82B29DC:: @ 82B29DC + .incbin "data/tilesets/secondary/82D4CD4/metatile_attributes.bin" + + .align 1 +gMetatiles_82B31DC:: @ 82B31DC + .incbin "data/tilesets/secondary/82D4C5C/metatiles.bin" + + .align 1 +gMetatileAttributes_82B347C:: @ 82B347C + .incbin "data/tilesets/secondary/82D4C5C/metatile_attributes.bin" + + .align 1 +gMetatiles_82B3524:: @ 82B3524 + .incbin "data/tilesets/secondary/82D4BCC/metatiles.bin" + + .align 1 +gMetatileAttributes_82B3954:: @ 82B3954 + .incbin "data/tilesets/secondary/82D4BCC/metatile_attributes.bin" + + .align 1 +gMetatiles_82B3A60:: @ 82B3A60 + .incbin "data/tilesets/secondary/82D4BE4/metatiles.bin" + + .align 1 +gMetatileAttributes_82B4A50:: @ 82B4A50 + .incbin "data/tilesets/secondary/82D4BE4/metatile_attributes.bin" + + .align 1 +gMetatiles_82B4E4C:: @ 82B4E4C + .incbin "data/tilesets/secondary/82D4C74/metatiles.bin" + + .align 1 +gMetatileAttributes_82B4FCC:: @ 82B4FCC + .incbin "data/tilesets/secondary/82D4C74/metatile_attributes.bin" + + .align 1 +gMetatiles_82B502C:: @ 82B502C + .incbin "data/tilesets/secondary/82D4BFC/metatiles.bin" + + .align 1 +gMetatileAttributes_82B5A3C:: @ 82B5A3C + .incbin "data/tilesets/secondary/82D4BFC/metatile_attributes.bin" + + .align 1 +gMetatiles_82B5CC0:: @ 82B5CC0 + .incbin "data/tilesets/secondary/82D4CEC/metatiles.bin" + + .align 1 +gMetatileAttributes_82B6640:: @ 82B6640 + .incbin "data/tilesets/secondary/82D4CEC/metatile_attributes.bin" + + .align 1 +gMetatiles_82B68A0:: @ 82B68A0 + .incbin "data/tilesets/secondary/82D4C8C/metatiles.bin" + + .align 1 +gMetatileAttributes_82B7390:: @ 82B7390 + .incbin "data/tilesets/secondary/82D4C8C/metatile_attributes.bin" + + .align 1 +gMetatiles_82B764C:: @ 82B764C + .incbin "data/tilesets/secondary/82D4D94/metatiles.bin" + + .align 1 +gMetatileAttributes_82B8B4C:: @ 82B8B4C + .incbin "data/tilesets/secondary/82D4D94/metatile_attributes.bin" + + .align 1 +gMetatiles_82B908C:: @ 82B908C + .incbin "data/tilesets/secondary/82D4DAC/metatiles.bin" + + .align 1 +gMetatileAttributes_82B90AC:: @ 82B90AC + .incbin "data/tilesets/secondary/82D4DAC/metatile_attributes.bin" + + .align 1 +gMetatiles_82B90B4:: @ 82B90B4 + .incbin "data/tilesets/secondary/82D4DC4/metatiles.bin" + + .align 1 +gMetatileAttributes_82B9364:: @ 82B9364 + .incbin "data/tilesets/secondary/82D4DC4/metatile_attributes.bin" + + .align 1 +gMetatiles_82B9410:: @ 82B9410 + .incbin "data/tilesets/secondary/82D4DDC/metatiles.bin" + + .align 1 +gMetatileAttributes_82B9B30:: @ 82B9B30 + .incbin "data/tilesets/secondary/82D4DDC/metatile_attributes.bin" + + .align 1 +gMetatiles_82B9CF8:: @ 82B9CF8 + .incbin "data/tilesets/secondary/82D4DF4/metatiles.bin" + + .align 1 +gMetatileAttributes_82BA678:: @ 82BA678 + .incbin "data/tilesets/secondary/82D4DF4/metatile_attributes.bin" + + .align 1 +gMetatiles_82BA8D8:: @ 82BA8D8 + .incbin "data/tilesets/secondary/82D4E0C/metatiles.bin" + + .align 1 +gMetatileAttributes_82BB2A8:: @ 82BB2A8 + .incbin "data/tilesets/secondary/82D4E0C/metatile_attributes.bin" + + .align 1 +gMetatiles_82BB51C:: @ 82BB51C + .incbin "data/tilesets/secondary/82D4E24/metatiles.bin" + + .align 1 +gMetatileAttributes_82BC49C:: @ 82BC49C + .incbin "data/tilesets/secondary/82D4E24/metatile_attributes.bin" + + .align 1 +gMetatiles_82BC87C:: @ 82BC87C + .incbin "data/tilesets/secondary/82D4E3C/metatiles.bin" + + .align 1 +gMetatileAttributes_82BCF9C:: @ 82BCF9C + .incbin "data/tilesets/secondary/82D4E3C/metatile_attributes.bin" + + .align 1 +gMetatiles_82BD164:: @ 82BD164 + .incbin "data/tilesets/secondary/82D4E54/metatiles.bin" + + .align 1 +gMetatileAttributes_82BD9C4:: @ 82BD9C4 + .incbin "data/tilesets/secondary/82D4E54/metatile_attributes.bin" + + .align 1 +gMetatiles_82BDBDC:: @ 82BDBDC + .incbin "data/tilesets/secondary/82D4E6C/metatiles.bin" + + .align 1 +gMetatileAttributes_82BEB3C:: @ 82BEB3C + .incbin "data/tilesets/secondary/82D4E6C/metatile_attributes.bin" + + .align 1 +gMetatiles_82BEF14:: @ 82BEF14 + .incbin "data/tilesets/secondary/82D4E84/metatiles.bin" + + .align 1 +gMetatileAttributes_82BFA94:: @ 82BFA94 + .incbin "data/tilesets/secondary/82D4E84/metatile_attributes.bin" + + .align 1 +gMetatiles_82BFD74:: @ 82BFD74 + .incbin "data/tilesets/secondary/82D4E9C/metatiles.bin" + + .align 1 +gMetatileAttributes_82C0704:: @ 82C0704 + .incbin "data/tilesets/secondary/82D4E9C/metatile_attributes.bin" + + .align 1 +gMetatiles_82C0968:: @ 82C0968 + .incbin "data/tilesets/secondary/82D4EB4/metatiles.bin" + + .align 1 +gMetatileAttributes_82C0D18:: @ 82C0D18 + .incbin "data/tilesets/secondary/82D4EB4/metatile_attributes.bin" + + .align 1 +gMetatiles_82C0E04:: @ 82C0E04 + .incbin "data/tilesets/secondary/82D4ECC/metatiles.bin" + + .align 1 +gMetatileAttributes_82C25A4:: @ 82C25A4 + .incbin "data/tilesets/secondary/82D4ECC/metatile_attributes.bin" + + .align 1 +gMetatiles_82C2B8C:: @ 82C2B8C + .incbin "data/tilesets/secondary/82D4EE4/metatiles.bin" + + .align 1 +gMetatileAttributes_82C300C:: @ 82C300C + .incbin "data/tilesets/secondary/82D4EE4/metatile_attributes.bin" + + .align 1 +gMetatiles_82C312C:: @ 82C312C + .incbin "data/tilesets/secondary/82D4EFC/metatiles.bin" + + .align 1 +gMetatileAttributes_82C377C:: @ 82C377C + .incbin "data/tilesets/secondary/82D4EFC/metatile_attributes.bin" + + .align 1 +gMetatiles_82C3910:: @ 82C3910 + .incbin "data/tilesets/secondary/82D4F14/metatiles.bin" + + .align 1 +gMetatileAttributes_82C4110:: @ 82C4110 + .incbin "data/tilesets/secondary/82D4F14/metatile_attributes.bin" + + .align 1 +gMetatiles_82C4310:: @ 82C4310 + .incbin "data/tilesets/secondary/82D4F2C/metatiles.bin" + + .align 1 +gMetatileAttributes_82C5330:: @ 82C5330 + .incbin "data/tilesets/secondary/82D4F2C/metatile_attributes.bin" + + .align 1 +gMetatiles_82C5738:: @ 82C5738 + .incbin "data/tilesets/secondary/82D4C2C/metatiles.bin" + + .align 1 +gMetatileAttributes_82C5FA8:: @ 82C5FA8 + .incbin "data/tilesets/secondary/82D4C2C/metatile_attributes.bin" + + .align 1 +gMetatiles_82C61C4:: @ 82C61C4 + .incbin "data/tilesets/secondary/82D4C44/metatiles.bin" + + .align 1 +gMetatileAttributes_82C71C4:: @ 82C71C4 + .incbin "data/tilesets/secondary/82D4C44/metatile_attributes.bin" + + .align 1 +gMetatiles_82C75C4:: @ 82C75C4 + .incbin "data/tilesets/secondary/82D4F44/metatiles.bin" + + .align 1 +gMetatileAttributes_82C7C44:: @ 82C7C44 + .incbin "data/tilesets/secondary/82D4F44/metatile_attributes.bin" + + .align 1 +gMetatiles_82C7DE4:: @ 82C7DE4 + .incbin "data/tilesets/secondary/82D4F5C/metatiles.bin" + + .align 1 +gMetatileAttributes_82C80C4:: @ 82C80C4 + .incbin "data/tilesets/secondary/82D4F5C/metatile_attributes.bin" + + .align 1 +gMetatiles_82C817C:: @ 82C817C + .incbin "data/tilesets/secondary/82D4F74/metatiles.bin" + + .align 1 +gMetatileAttributes_82C8C1C:: @ 82C8C1C + .incbin "data/tilesets/secondary/82D4F74/metatile_attributes.bin" + + .align 1 +gMetatiles_82C8EC4:: @ 82C8EC4 + .incbin "data/tilesets/secondary/82D4F8C/metatiles.bin" + + .align 1 +gMetatileAttributes_82C9C34:: @ 82C9C34 + .incbin "data/tilesets/secondary/82D4F8C/metatile_attributes.bin" + + .align 1 +gMetatiles_82C9F90:: @ 82C9F90 + .incbin "data/tilesets/secondary/82D4FA4/metatiles.bin" + + .align 1 +gMetatileAttributes_82CA320:: @ 82CA320 + .incbin "data/tilesets/secondary/82D4FA4/metatile_attributes.bin" + + .align 1 +gMetatiles_82CA404:: @ 82CA404 + .incbin "data/tilesets/secondary/82D4FBC/metatiles.bin" + + .align 1 +gMetatileAttributes_82CA424:: @ 82CA424 + .incbin "data/tilesets/secondary/82D4FBC/metatile_attributes.bin" + + .align 1 +gMetatiles_82CA42C:: @ 82CA42C + .incbin "data/tilesets/secondary/82D4FD4/metatiles.bin" + + .align 1 +gMetatileAttributes_82CA44C:: @ 82CA44C + .incbin "data/tilesets/secondary/82D4FD4/metatile_attributes.bin" + + .align 1 +gMetatiles_82CA454:: @ 82CA454 + .incbin "data/tilesets/secondary/82D4FEC/metatiles.bin" + + .align 1 +gMetatileAttributes_82CB274:: @ 82CB274 + .incbin "data/tilesets/secondary/82D4FEC/metatile_attributes.bin" + + .align 1 +gMetatiles_82CB5FC:: @ 82CB5FC + .incbin "data/tilesets/secondary/82D5004/metatiles.bin" + + .align 1 +gMetatileAttributes_82CB89C:: @ 82CB89C + .incbin "data/tilesets/secondary/82D5004/metatile_attributes.bin" + + .align 1 +gMetatiles_82CB944:: @ 82CB944 + .incbin "data/tilesets/secondary/82D501C/metatiles.bin" + + .align 1 +gMetatileAttributes_82CC704:: @ 82CC704 + .incbin "data/tilesets/secondary/82D501C/metatile_attributes.bin" + + .align 1 +gMetatiles_82CCA74:: @ 82CCA74 + .incbin "data/tilesets/secondary/82D5034/metatiles.bin" + + .align 1 +gMetatileAttributes_82CD054:: @ 82CD054 + .incbin "data/tilesets/secondary/82D5034/metatile_attributes.bin" + + .align 1 +gMetatiles_82CD1CC:: @ 82CD1CC + .incbin "data/tilesets/secondary/82D504C/metatiles.bin" + + .align 1 +gMetatileAttributes_82CE39C:: @ 82CE39C + .incbin "data/tilesets/secondary/82D504C/metatile_attributes.bin" + + .align 1 +gMetatiles_82CE810:: @ 82CE810 + .incbin "data/tilesets/secondary/82D5064/metatiles.bin" + + .align 1 +gMetatileAttributes_82CF190:: @ 82CF190 + .incbin "data/tilesets/secondary/82D5064/metatile_attributes.bin" + + .align 1 +gMetatiles_82CF3F0:: @ 82CF3F0 + .incbin "data/tilesets/secondary/82D507C/metatiles.bin" + + .align 1 +gMetatileAttributes_82D02F0:: @ 82D02F0 + .incbin "data/tilesets/secondary/82D507C/metatile_attributes.bin" + + .align 1 +gMetatiles_82D06B0:: @ 82D06B0 + .incbin "data/tilesets/secondary/82D5094/metatiles.bin" + + .align 1 +gMetatileAttributes_82D18B0:: @ 82D18B0 + .incbin "data/tilesets/secondary/82D5094/metatile_attributes.bin" + + .align 1 +gMetatiles_82D1D30:: @ 82D1D30 + .incbin "data/tilesets/secondary/82D50AC/metatiles.bin" + + .align 1 +gMetatileAttributes_82D2220:: @ 82D2220 + .incbin "data/tilesets/secondary/82D50AC/metatile_attributes.bin" + + .align 1 +gMetatiles_82D235C:: @ 82D235C + .incbin "data/tilesets/secondary/82D50C4/metatiles.bin" + + .align 1 +gMetatileAttributes_82D3B5C:: @ 82D3B5C + .incbin "data/tilesets/secondary/82D50C4/metatile_attributes.bin" + + .align 1 +gMetatiles_82D415C:: @ 82D415C + .incbin "data/tilesets/secondary/82D50DC/metatiles.bin" + + .align 1 +gMetatileAttributes_82D48BC:: @ 82D48BC + .incbin "data/tilesets/secondary/82D50DC/metatile_attributes.bin" diff --git a/data/tilesets/primary/82D4A94/metatile_attributes.bin b/data/tilesets/primary/82D4A94/metatile_attributes.bin new file mode 100644 index 000000000..45f6f352e Binary files /dev/null and b/data/tilesets/primary/82D4A94/metatile_attributes.bin differ diff --git a/data/tilesets/primary/82D4A94/metatiles.bin b/data/tilesets/primary/82D4A94/metatiles.bin new file mode 100644 index 000000000..7a228eeae Binary files /dev/null and b/data/tilesets/primary/82D4A94/metatiles.bin differ diff --git a/data/tilesets/primary/82D4A94/palettes/0.pal b/data/tilesets/primary/82D4A94/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/primary/82D4A94/palettes/1.pal b/data/tilesets/primary/82D4A94/palettes/1.pal new file mode 100644 index 000000000..09828f4f1 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +32 49 57 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +123 74 74 +90 57 65 +115 205 164 diff --git a/data/tilesets/primary/82D4A94/palettes/10.pal b/data/tilesets/primary/82D4A94/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4A94/palettes/11.pal b/data/tilesets/primary/82D4A94/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4A94/palettes/12.pal b/data/tilesets/primary/82D4A94/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4A94/palettes/13.pal b/data/tilesets/primary/82D4A94/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4A94/palettes/14.pal b/data/tilesets/primary/82D4A94/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4A94/palettes/15.pal b/data/tilesets/primary/82D4A94/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4A94/palettes/2.pal b/data/tilesets/primary/82D4A94/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/primary/82D4A94/palettes/3.pal b/data/tilesets/primary/82D4A94/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/primary/82D4A94/palettes/4.pal b/data/tilesets/primary/82D4A94/palettes/4.pal new file mode 100644 index 000000000..9b094a6aa --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 0 +230 246 255 +189 222 255 +139 164 255 +106 164 230 +74 148 222 +74 123 222 +82 156 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/primary/82D4A94/palettes/5.pal b/data/tilesets/primary/82D4A94/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/primary/82D4A94/palettes/6.pal b/data/tilesets/primary/82D4A94/palettes/6.pal new file mode 100644 index 000000000..cdf41b298 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 0 +205 230 246 +180 213 255 +123 156 238 +98 139 213 +65 123 189 +49 98 180 +82 123 205 +238 246 246 +205 222 238 +49 115 197 +139 189 255 +115 164 255 +65 139 222 +57 115 222 +82 148 230 diff --git a/data/tilesets/primary/82D4A94/palettes/7.pal b/data/tilesets/primary/82D4A94/palettes/7.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4A94/palettes/8.pal b/data/tilesets/primary/82D4A94/palettes/8.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4A94/palettes/9.pal b/data/tilesets/primary/82D4A94/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/primary/82D4A94/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4A94/tiles.png b/data/tilesets/primary/82D4A94/tiles.png new file mode 100644 index 000000000..84ba7b2f9 Binary files /dev/null and b/data/tilesets/primary/82D4A94/tiles.png differ diff --git a/data/tilesets/primary/82D4BB4/metatile_attributes.bin b/data/tilesets/primary/82D4BB4/metatile_attributes.bin new file mode 100644 index 000000000..3dbc31883 Binary files /dev/null and b/data/tilesets/primary/82D4BB4/metatile_attributes.bin differ diff --git a/data/tilesets/primary/82D4BB4/metatiles.bin b/data/tilesets/primary/82D4BB4/metatiles.bin new file mode 100644 index 000000000..024797c8e Binary files /dev/null and b/data/tilesets/primary/82D4BB4/metatiles.bin differ diff --git a/data/tilesets/primary/82D4BB4/palettes/0.pal b/data/tilesets/primary/82D4BB4/palettes/0.pal new file mode 100644 index 000000000..3b6416376 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +156 213 255 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/primary/82D4BB4/palettes/1.pal b/data/tilesets/primary/82D4BB4/palettes/1.pal new file mode 100644 index 000000000..66561f6d3 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/primary/82D4BB4/palettes/10.pal b/data/tilesets/primary/82D4BB4/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4BB4/palettes/11.pal b/data/tilesets/primary/82D4BB4/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4BB4/palettes/12.pal b/data/tilesets/primary/82D4BB4/palettes/12.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4BB4/palettes/13.pal b/data/tilesets/primary/82D4BB4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4BB4/palettes/14.pal b/data/tilesets/primary/82D4BB4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4BB4/palettes/15.pal b/data/tilesets/primary/82D4BB4/palettes/15.pal new file mode 100644 index 000000000..92e7ed309 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/primary/82D4BB4/palettes/2.pal b/data/tilesets/primary/82D4BB4/palettes/2.pal new file mode 100644 index 000000000..87a022102 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/primary/82D4BB4/palettes/3.pal b/data/tilesets/primary/82D4BB4/palettes/3.pal new file mode 100644 index 000000000..783496dcd --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/primary/82D4BB4/palettes/4.pal b/data/tilesets/primary/82D4BB4/palettes/4.pal new file mode 100644 index 000000000..89eace605 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/primary/82D4BB4/palettes/5.pal b/data/tilesets/primary/82D4BB4/palettes/5.pal new file mode 100644 index 000000000..c7780e5c7 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/primary/82D4BB4/palettes/6.pal b/data/tilesets/primary/82D4BB4/palettes/6.pal new file mode 100644 index 000000000..1d08ce9a2 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4BB4/palettes/7.pal b/data/tilesets/primary/82D4BB4/palettes/7.pal new file mode 100644 index 000000000..c1e7c3d5c --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/primary/82D4BB4/palettes/8.pal b/data/tilesets/primary/82D4BB4/palettes/8.pal new file mode 100644 index 000000000..c1e7c3d5c --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/primary/82D4BB4/palettes/9.pal b/data/tilesets/primary/82D4BB4/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/primary/82D4BB4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/82D4BB4/tiles.png b/data/tilesets/primary/82D4BB4/tiles.png new file mode 100644 index 000000000..8d864f27e Binary files /dev/null and b/data/tilesets/primary/82D4BB4/tiles.png differ diff --git a/data/tilesets/secondary/82D4AAC/metatile_attributes.bin b/data/tilesets/secondary/82D4AAC/metatile_attributes.bin new file mode 100644 index 000000000..2ba2894bc Binary files /dev/null and b/data/tilesets/secondary/82D4AAC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4AAC/metatiles.bin b/data/tilesets/secondary/82D4AAC/metatiles.bin new file mode 100644 index 000000000..41db27015 Binary files /dev/null and b/data/tilesets/secondary/82D4AAC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4AAC/palettes/0.pal b/data/tilesets/secondary/82D4AAC/palettes/0.pal new file mode 100644 index 000000000..42246e9ea --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 139 49 +57 82 0 +115 98 98 +65 57 49 +255 255 255 +139 213 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 189 139 +24 172 106 diff --git a/data/tilesets/secondary/82D4AAC/palettes/1.pal b/data/tilesets/secondary/82D4AAC/palettes/1.pal new file mode 100644 index 000000000..28db536cb --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +238 238 238 +222 222 230 +172 189 205 +131 131 139 +65 49 65 +139 230 189 +74 205 131 +65 172 115 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/82D4AAC/palettes/10.pal b/data/tilesets/secondary/82D4AAC/palettes/10.pal new file mode 100644 index 000000000..1958eff11 --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 205 148 +246 246 255 +189 197 222 +156 172 189 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +98 156 238 +205 139 148 +189 123 131 +164 90 106 +139 65 82 +32 172 98 diff --git a/data/tilesets/secondary/82D4AAC/palettes/11.pal b/data/tilesets/secondary/82D4AAC/palettes/11.pal new file mode 100644 index 000000000..896c79281 --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +238 255 255 +156 230 197 +148 222 189 +139 213 189 +255 0 255 +255 0 255 +255 0 255 +189 238 213 +115 205 164 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4AAC/palettes/12.pal b/data/tilesets/secondary/82D4AAC/palettes/12.pal new file mode 100644 index 000000000..2bfc45b6d --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +156 230 197 +148 222 189 +139 213 189 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +189 238 213 diff --git a/data/tilesets/secondary/82D4AAC/palettes/13.pal b/data/tilesets/secondary/82D4AAC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AAC/palettes/14.pal b/data/tilesets/secondary/82D4AAC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AAC/palettes/15.pal b/data/tilesets/secondary/82D4AAC/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AAC/palettes/2.pal b/data/tilesets/secondary/82D4AAC/palettes/2.pal new file mode 100644 index 000000000..937cec4da --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +115 82 74 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +197 172 139 diff --git a/data/tilesets/secondary/82D4AAC/palettes/3.pal b/data/tilesets/secondary/82D4AAC/palettes/3.pal new file mode 100644 index 000000000..6d1dfb5af --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 238 246 +189 139 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +172 32 41 diff --git a/data/tilesets/secondary/82D4AAC/palettes/4.pal b/data/tilesets/secondary/82D4AAC/palettes/4.pal new file mode 100644 index 000000000..cde020d4e --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +222 230 238 +230 213 164 +205 197 148 +222 180 164 +156 164 189 +82 106 213 +65 90 189 +57 82 156 +41 65 139 +172 197 230 +139 164 222 +106 131 213 +82 106 213 +189 148 139 diff --git a/data/tilesets/secondary/82D4AAC/palettes/5.pal b/data/tilesets/secondary/82D4AAC/palettes/5.pal new file mode 100644 index 000000000..bdcc7b8ed --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +238 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 172 +246 238 205 +222 205 131 +255 0 255 +65 189 139 +115 205 164 diff --git a/data/tilesets/secondary/82D4AAC/palettes/6.pal b/data/tilesets/secondary/82D4AAC/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AAC/palettes/7.pal b/data/tilesets/secondary/82D4AAC/palettes/7.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AAC/palettes/8.pal b/data/tilesets/secondary/82D4AAC/palettes/8.pal new file mode 100644 index 000000000..dcecb9c40 --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +222 230 246 +189 197 222 +156 172 189 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +57 123 222 +255 205 180 +246 164 131 +222 139 106 +189 98 74 +123 205 164 diff --git a/data/tilesets/secondary/82D4AAC/palettes/9.pal b/data/tilesets/secondary/82D4AAC/palettes/9.pal new file mode 100644 index 000000000..90bb77517 --- /dev/null +++ b/data/tilesets/secondary/82D4AAC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +222 230 246 +189 197 222 +156 172 189 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +57 123 222 +246 238 197 +230 222 148 +213 189 106 +197 148 74 +222 205 123 diff --git a/data/tilesets/secondary/82D4AAC/tiles.png b/data/tilesets/secondary/82D4AAC/tiles.png new file mode 100644 index 000000000..771eed906 Binary files /dev/null and b/data/tilesets/secondary/82D4AAC/tiles.png differ diff --git a/data/tilesets/secondary/82D4AC4/metatile_attributes.bin b/data/tilesets/secondary/82D4AC4/metatile_attributes.bin new file mode 100644 index 000000000..ee2d7d5b3 Binary files /dev/null and b/data/tilesets/secondary/82D4AC4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4AC4/metatiles.bin b/data/tilesets/secondary/82D4AC4/metatiles.bin new file mode 100644 index 000000000..297673a4b Binary files /dev/null and b/data/tilesets/secondary/82D4AC4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4AC4/palettes/0.pal b/data/tilesets/secondary/82D4AC4/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4AC4/palettes/1.pal b/data/tilesets/secondary/82D4AC4/palettes/1.pal new file mode 100644 index 000000000..cf1123812 --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4AC4/palettes/10.pal b/data/tilesets/secondary/82D4AC4/palettes/10.pal new file mode 100644 index 000000000..4baf904ae --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 65 82 +74 74 90 +123 123 131 +106 139 205 +172 213 230 +115 98 65 +148 123 65 +238 172 65 +230 213 74 +65 123 123 +65 156 131 +65 205 156 +74 123 65 +90 172 74 +123 213 98 +172 238 106 diff --git a/data/tilesets/secondary/82D4AC4/palettes/11.pal b/data/tilesets/secondary/82D4AC4/palettes/11.pal new file mode 100644 index 000000000..2e92b3cc3 --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +246 246 205 +213 213 213 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +246 230 131 +222 205 65 +172 238 106 +123 213 98 +106 197 82 +90 172 74 +74 123 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4AC4/palettes/12.pal b/data/tilesets/secondary/82D4AC4/palettes/12.pal new file mode 100644 index 000000000..70ed40322 --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +213 230 197 +156 172 139 +123 123 131 +90 90 115 +65 74 106 +222 172 65 +180 98 0 +131 65 0 +205 205 123 +164 164 57 +115 189 246 +74 148 213 +49 115 180 +189 197 164 diff --git a/data/tilesets/secondary/82D4AC4/palettes/13.pal b/data/tilesets/secondary/82D4AC4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AC4/palettes/14.pal b/data/tilesets/secondary/82D4AC4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AC4/palettes/15.pal b/data/tilesets/secondary/82D4AC4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AC4/palettes/2.pal b/data/tilesets/secondary/82D4AC4/palettes/2.pal new file mode 100644 index 000000000..372fb5d7c --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4AC4/palettes/3.pal b/data/tilesets/secondary/82D4AC4/palettes/3.pal new file mode 100644 index 000000000..5a5e60211 --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4AC4/palettes/4.pal b/data/tilesets/secondary/82D4AC4/palettes/4.pal new file mode 100644 index 000000000..229f9132c --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 255 +197 213 255 +164 197 238 +123 172 230 +90 148 197 +65 123 180 +90 164 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +32 98 139 +238 230 139 +222 197 139 +205 180 106 diff --git a/data/tilesets/secondary/82D4AC4/palettes/5.pal b/data/tilesets/secondary/82D4AC4/palettes/5.pal new file mode 100644 index 000000000..215dd1272 --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4AC4/palettes/6.pal b/data/tilesets/secondary/82D4AC4/palettes/6.pal new file mode 100644 index 000000000..7e7862a19 --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 255 +197 213 255 +164 197 238 +123 172 230 +41 82 164 +41 57 131 +74 123 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +32 98 139 +238 230 139 +222 197 139 +205 180 106 diff --git a/data/tilesets/secondary/82D4AC4/palettes/7.pal b/data/tilesets/secondary/82D4AC4/palettes/7.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4AC4/palettes/8.pal b/data/tilesets/secondary/82D4AC4/palettes/8.pal new file mode 100644 index 000000000..219129eba --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 65 82 +74 74 90 +123 123 131 +106 139 205 +115 197 238 +164 230 238 +131 115 57 +180 172 65 +222 205 65 +246 246 205 +213 205 205 +90 90 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4AC4/palettes/9.pal b/data/tilesets/secondary/82D4AC4/palettes/9.pal new file mode 100644 index 000000000..0aa2b58dc --- /dev/null +++ b/data/tilesets/secondary/82D4AC4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 205 65 +222 172 65 +180 98 0 +213 213 139 +189 189 115 +148 148 82 +255 0 255 +115 205 164 diff --git a/data/tilesets/secondary/82D4AC4/tiles.png b/data/tilesets/secondary/82D4AC4/tiles.png new file mode 100644 index 000000000..39b80d8f9 Binary files /dev/null and b/data/tilesets/secondary/82D4AC4/tiles.png differ diff --git a/data/tilesets/secondary/82D4ADC/metatile_attributes.bin b/data/tilesets/secondary/82D4ADC/metatile_attributes.bin new file mode 100644 index 000000000..4e19ca185 Binary files /dev/null and b/data/tilesets/secondary/82D4ADC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4ADC/metatiles.bin b/data/tilesets/secondary/82D4ADC/metatiles.bin new file mode 100644 index 000000000..a23224773 Binary files /dev/null and b/data/tilesets/secondary/82D4ADC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4ADC/palettes/0.pal b/data/tilesets/secondary/82D4ADC/palettes/0.pal new file mode 100644 index 000000000..620015e77 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 139 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4ADC/palettes/1.pal b/data/tilesets/secondary/82D4ADC/palettes/1.pal new file mode 100644 index 000000000..60de8c7ad --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +255 0 255 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/82D4ADC/palettes/10.pal b/data/tilesets/secondary/82D4ADC/palettes/10.pal new file mode 100644 index 000000000..76fda8006 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +230 238 255 +180 197 213 +131 148 164 +123 123 131 +90 90 115 +57 65 98 +255 246 238 +213 197 189 +172 156 148 +131 123 115 +246 213 246 +238 189 213 +197 115 180 +172 106 131 diff --git a/data/tilesets/secondary/82D4ADC/palettes/11.pal b/data/tilesets/secondary/82D4ADC/palettes/11.pal new file mode 100644 index 000000000..3f8fdc519 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +123 123 131 +230 238 255 +197 205 222 +164 180 197 +156 205 246 +98 156 238 +57 65 98 +255 246 238 +213 197 189 +172 156 148 +131 123 115 +57 123 222 +238 238 246 +213 222 222 +197 197 213 diff --git a/data/tilesets/secondary/82D4ADC/palettes/12.pal b/data/tilesets/secondary/82D4ADC/palettes/12.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4ADC/palettes/13.pal b/data/tilesets/secondary/82D4ADC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4ADC/palettes/14.pal b/data/tilesets/secondary/82D4ADC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4ADC/palettes/15.pal b/data/tilesets/secondary/82D4ADC/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4ADC/palettes/2.pal b/data/tilesets/secondary/82D4ADC/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4ADC/palettes/3.pal b/data/tilesets/secondary/82D4ADC/palettes/3.pal new file mode 100644 index 000000000..9581f2cd8 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4ADC/palettes/4.pal b/data/tilesets/secondary/82D4ADC/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4ADC/palettes/5.pal b/data/tilesets/secondary/82D4ADC/palettes/5.pal new file mode 100644 index 000000000..3a2db72a7 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4ADC/palettes/6.pal b/data/tilesets/secondary/82D4ADC/palettes/6.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4ADC/palettes/7.pal b/data/tilesets/secondary/82D4ADC/palettes/7.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4ADC/palettes/8.pal b/data/tilesets/secondary/82D4ADC/palettes/8.pal new file mode 100644 index 000000000..d404706ab --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +246 246 255 +230 238 255 +197 205 222 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +57 123 222 +222 106 98 +205 82 74 +222 230 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4ADC/palettes/9.pal b/data/tilesets/secondary/82D4ADC/palettes/9.pal new file mode 100644 index 000000000..cacf892a6 --- /dev/null +++ b/data/tilesets/secondary/82D4ADC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +57 123 222 +222 197 139 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4ADC/tiles.png b/data/tilesets/secondary/82D4ADC/tiles.png new file mode 100644 index 000000000..d3148ba5a Binary files /dev/null and b/data/tilesets/secondary/82D4ADC/tiles.png differ diff --git a/data/tilesets/secondary/82D4AF4/metatile_attributes.bin b/data/tilesets/secondary/82D4AF4/metatile_attributes.bin new file mode 100644 index 000000000..7de4de077 Binary files /dev/null and b/data/tilesets/secondary/82D4AF4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4AF4/metatiles.bin b/data/tilesets/secondary/82D4AF4/metatiles.bin new file mode 100644 index 000000000..b810e7996 Binary files /dev/null and b/data/tilesets/secondary/82D4AF4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4AF4/palettes/0.pal b/data/tilesets/secondary/82D4AF4/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4AF4/palettes/1.pal b/data/tilesets/secondary/82D4AF4/palettes/1.pal new file mode 100644 index 000000000..31a636983 --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4AF4/palettes/10.pal b/data/tilesets/secondary/82D4AF4/palettes/10.pal new file mode 100644 index 000000000..536972f8f --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +255 238 197 +222 205 172 +180 164 123 +123 123 131 +90 90 115 +65 74 106 +123 180 222 +180 222 255 +255 213 164 +230 189 82 +213 164 57 +205 139 32 +172 90 16 +115 205 164 diff --git a/data/tilesets/secondary/82D4AF4/palettes/11.pal b/data/tilesets/secondary/82D4AF4/palettes/11.pal new file mode 100644 index 000000000..986335b74 --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +255 238 197 +222 205 172 +180 164 123 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +189 180 82 +180 230 172 +139 213 131 +106 180 106 +90 164 90 +57 131 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4AF4/palettes/12.pal b/data/tilesets/secondary/82D4AF4/palettes/12.pal new file mode 100644 index 000000000..c44bc32b5 --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +238 222 180 +205 189 156 +180 164 123 +123 123 131 +90 90 115 +65 74 106 +139 197 98 +106 164 65 +172 222 238 +148 197 213 +115 164 189 +90 139 164 +74 123 148 +115 205 164 diff --git a/data/tilesets/secondary/82D4AF4/palettes/13.pal b/data/tilesets/secondary/82D4AF4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AF4/palettes/14.pal b/data/tilesets/secondary/82D4AF4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AF4/palettes/15.pal b/data/tilesets/secondary/82D4AF4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4AF4/palettes/2.pal b/data/tilesets/secondary/82D4AF4/palettes/2.pal new file mode 100644 index 000000000..372fb5d7c --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4AF4/palettes/3.pal b/data/tilesets/secondary/82D4AF4/palettes/3.pal new file mode 100644 index 000000000..973765509 --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4AF4/palettes/4.pal b/data/tilesets/secondary/82D4AF4/palettes/4.pal new file mode 100644 index 000000000..91fdcabdf --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +74 139 189 +65 123 189 +82 139 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D4AF4/palettes/5.pal b/data/tilesets/secondary/82D4AF4/palettes/5.pal new file mode 100644 index 000000000..0edb843f5 --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4AF4/palettes/6.pal b/data/tilesets/secondary/82D4AF4/palettes/6.pal new file mode 100644 index 000000000..f8ebbc6dc --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +65 123 172 +41 98 156 +74 115 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D4AF4/palettes/7.pal b/data/tilesets/secondary/82D4AF4/palettes/7.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4AF4/palettes/8.pal b/data/tilesets/secondary/82D4AF4/palettes/8.pal new file mode 100644 index 000000000..ae3dd3f0d --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +90 139 164 +115 164 189 +139 189 213 +172 222 238 +139 197 98 +156 222 106 +189 230 139 +222 205 172 +246 230 189 +255 246 213 +164 164 180 +82 82 106 +123 123 139 +205 205 222 +255 255 255 diff --git a/data/tilesets/secondary/82D4AF4/palettes/9.pal b/data/tilesets/secondary/82D4AF4/palettes/9.pal new file mode 100644 index 000000000..3ed18e08f --- /dev/null +++ b/data/tilesets/secondary/82D4AF4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +180 106 90 +222 180 65 +238 164 156 +246 238 131 +230 205 98 +205 131 123 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +164 164 180 +82 82 106 +123 123 139 +205 205 222 +255 255 255 diff --git a/data/tilesets/secondary/82D4AF4/tiles.png b/data/tilesets/secondary/82D4AF4/tiles.png new file mode 100644 index 000000000..737d3dd7f Binary files /dev/null and b/data/tilesets/secondary/82D4AF4/tiles.png differ diff --git a/data/tilesets/secondary/82D4B0C/metatile_attributes.bin b/data/tilesets/secondary/82D4B0C/metatile_attributes.bin new file mode 100644 index 000000000..d103d7155 Binary files /dev/null and b/data/tilesets/secondary/82D4B0C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4B0C/metatiles.bin b/data/tilesets/secondary/82D4B0C/metatiles.bin new file mode 100644 index 000000000..f69885645 Binary files /dev/null and b/data/tilesets/secondary/82D4B0C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4B0C/palettes/0.pal b/data/tilesets/secondary/82D4B0C/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4B0C/palettes/1.pal b/data/tilesets/secondary/82D4B0C/palettes/1.pal new file mode 100644 index 000000000..d8a4e7757 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4B0C/palettes/10.pal b/data/tilesets/secondary/82D4B0C/palettes/10.pal new file mode 100644 index 000000000..b97e9df4b --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +213 230 222 +148 164 180 +123 123 131 +90 90 115 +82 82 106 +213 238 255 +164 189 222 +123 148 180 +255 238 139 +222 180 65 +255 255 189 +164 98 98 +213 148 148 +197 123 131 diff --git a/data/tilesets/secondary/82D4B0C/palettes/11.pal b/data/tilesets/secondary/82D4B0C/palettes/11.pal new file mode 100644 index 000000000..f71181976 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +255 0 255 +255 0 255 +123 123 131 +255 0 255 +82 82 106 +213 238 255 +164 189 222 +123 148 180 +255 238 139 +222 180 65 +255 255 189 +156 213 255 +115 189 246 +98 164 222 diff --git a/data/tilesets/secondary/82D4B0C/palettes/12.pal b/data/tilesets/secondary/82D4B0C/palettes/12.pal new file mode 100644 index 000000000..0cdcab8c2 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +222 205 246 +205 172 255 +172 139 213 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +213 189 98 +222 197 255 +172 139 213 +148 115 189 +139 106 180 +255 246 164 +172 148 82 diff --git a/data/tilesets/secondary/82D4B0C/palettes/13.pal b/data/tilesets/secondary/82D4B0C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B0C/palettes/14.pal b/data/tilesets/secondary/82D4B0C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B0C/palettes/15.pal b/data/tilesets/secondary/82D4B0C/palettes/15.pal new file mode 100644 index 000000000..3973e491a --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +246 230 172 +246 213 180 +222 189 164 +180 148 123 +139 98 90 +90 57 74 +123 123 131 +65 74 106 +205 222 238 diff --git a/data/tilesets/secondary/82D4B0C/palettes/2.pal b/data/tilesets/secondary/82D4B0C/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4B0C/palettes/3.pal b/data/tilesets/secondary/82D4B0C/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B0C/palettes/4.pal b/data/tilesets/secondary/82D4B0C/palettes/4.pal new file mode 100644 index 000000000..07dcd957c --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 255 255 +172 222 255 +148 189 238 +106 156 230 +57 148 197 +32 131 172 +82 148 213 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +230 213 148 +238 230 139 +222 197 139 +213 189 106 diff --git a/data/tilesets/secondary/82D4B0C/palettes/5.pal b/data/tilesets/secondary/82D4B0C/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B0C/palettes/6.pal b/data/tilesets/secondary/82D4B0C/palettes/6.pal new file mode 100644 index 000000000..0dba59a72 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 255 255 +172 222 255 +148 189 238 +106 156 230 +41 90 172 +41 57 148 +74 123 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +230 213 148 +238 230 139 +222 197 139 +213 189 106 diff --git a/data/tilesets/secondary/82D4B0C/palettes/7.pal b/data/tilesets/secondary/82D4B0C/palettes/7.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4B0C/palettes/8.pal b/data/tilesets/secondary/82D4B0C/palettes/8.pal new file mode 100644 index 000000000..376749664 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +115 205 164 +148 164 180 +123 123 131 +65 74 106 +205 82 74 +172 32 41 +255 246 189 +238 230 156 +222 205 131 +189 164 90 +148 131 49 +123 90 24 +123 123 131 +65 74 106 +205 222 238 diff --git a/data/tilesets/secondary/82D4B0C/palettes/9.pal b/data/tilesets/secondary/82D4B0C/palettes/9.pal new file mode 100644 index 000000000..82b469a66 --- /dev/null +++ b/data/tilesets/secondary/82D4B0C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +230 246 238 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +172 172 106 +213 213 148 +180 205 180 +148 180 148 +131 164 131 +106 139 106 +197 222 197 +139 172 139 +90 115 90 diff --git a/data/tilesets/secondary/82D4B0C/tiles.png b/data/tilesets/secondary/82D4B0C/tiles.png new file mode 100644 index 000000000..66bd81f8b Binary files /dev/null and b/data/tilesets/secondary/82D4B0C/tiles.png differ diff --git a/data/tilesets/secondary/82D4B24/metatile_attributes.bin b/data/tilesets/secondary/82D4B24/metatile_attributes.bin new file mode 100644 index 000000000..1136f644a Binary files /dev/null and b/data/tilesets/secondary/82D4B24/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4B24/metatiles.bin b/data/tilesets/secondary/82D4B24/metatiles.bin new file mode 100644 index 000000000..c7978128e Binary files /dev/null and b/data/tilesets/secondary/82D4B24/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4B24/palettes/0.pal b/data/tilesets/secondary/82D4B24/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4B24/palettes/1.pal b/data/tilesets/secondary/82D4B24/palettes/1.pal new file mode 100644 index 000000000..09828f4f1 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +32 49 57 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +123 74 74 +90 57 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4B24/palettes/10.pal b/data/tilesets/secondary/82D4B24/palettes/10.pal new file mode 100644 index 000000000..892aae6ed --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +115 82 41 +255 189 32 +222 156 0 +189 106 57 +123 123 131 +90 90 115 +65 74 106 +189 255 139 +131 213 98 +106 180 98 +255 230 131 +238 205 123 +197 164 90 +131 164 197 +255 0 255 diff --git a/data/tilesets/secondary/82D4B24/palettes/11.pal b/data/tilesets/secondary/82D4B24/palettes/11.pal new file mode 100644 index 000000000..b2a405273 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4B24/palettes/12.pal b/data/tilesets/secondary/82D4B24/palettes/12.pal new file mode 100644 index 000000000..f124929b4 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 238 189 +222 205 131 +205 180 106 +180 139 74 +246 246 255 +172 189 205 +222 106 98 +213 164 156 +213 148 49 +65 74 106 +123 123 131 +16 123 74 +49 148 106 +98 189 148 +164 230 197 diff --git a/data/tilesets/secondary/82D4B24/palettes/13.pal b/data/tilesets/secondary/82D4B24/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B24/palettes/14.pal b/data/tilesets/secondary/82D4B24/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B24/palettes/15.pal b/data/tilesets/secondary/82D4B24/palettes/15.pal new file mode 100644 index 000000000..ac0d32eb0 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +246 222 90 +246 197 65 +238 164 57 +172 189 205 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B24/palettes/2.pal b/data/tilesets/secondary/82D4B24/palettes/2.pal new file mode 100644 index 000000000..372fb5d7c --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4B24/palettes/3.pal b/data/tilesets/secondary/82D4B24/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B24/palettes/4.pal b/data/tilesets/secondary/82D4B24/palettes/4.pal new file mode 100644 index 000000000..5871a448c --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 246 255 +189 222 255 +139 189 255 +115 164 255 +65 139 222 +57 115 222 +82 148 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D4B24/palettes/5.pal b/data/tilesets/secondary/82D4B24/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B24/palettes/6.pal b/data/tilesets/secondary/82D4B24/palettes/6.pal new file mode 100644 index 000000000..9bad44649 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +205 230 246 +180 213 255 +123 180 246 +98 148 230 +65 123 189 +49 98 180 +82 131 222 +213 230 238 +172 189 205 +123 123 131 +90 90 115 +238 246 246 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D4B24/palettes/7.pal b/data/tilesets/secondary/82D4B24/palettes/7.pal new file mode 100644 index 000000000..17b1a0ed2 --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4B24/palettes/8.pal b/data/tilesets/secondary/82D4B24/palettes/8.pal new file mode 100644 index 000000000..7179b91bd --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 246 172 +255 189 32 +222 156 0 +189 106 57 +123 123 131 +90 90 115 +65 74 106 +255 255 255 +205 205 222 +255 230 131 +238 205 123 +197 164 90 +131 164 197 +255 0 255 +180 156 49 diff --git a/data/tilesets/secondary/82D4B24/palettes/9.pal b/data/tilesets/secondary/82D4B24/palettes/9.pal new file mode 100644 index 000000000..746dac7da --- /dev/null +++ b/data/tilesets/secondary/82D4B24/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +74 123 180 +90 164 213 +57 90 148 +213 148 49 +238 180 82 +205 205 222 +115 189 246 +74 131 197 diff --git a/data/tilesets/secondary/82D4B24/tiles.png b/data/tilesets/secondary/82D4B24/tiles.png new file mode 100644 index 000000000..8cfa9b4dd Binary files /dev/null and b/data/tilesets/secondary/82D4B24/tiles.png differ diff --git a/data/tilesets/secondary/82D4B3C/metatile_attributes.bin b/data/tilesets/secondary/82D4B3C/metatile_attributes.bin new file mode 100644 index 000000000..5dd139155 Binary files /dev/null and b/data/tilesets/secondary/82D4B3C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4B3C/metatiles.bin b/data/tilesets/secondary/82D4B3C/metatiles.bin new file mode 100644 index 000000000..3bfb9d239 Binary files /dev/null and b/data/tilesets/secondary/82D4B3C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4B3C/palettes/0.pal b/data/tilesets/secondary/82D4B3C/palettes/0.pal new file mode 100644 index 000000000..7af5bb7d2 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4B3C/palettes/1.pal b/data/tilesets/secondary/82D4B3C/palettes/1.pal new file mode 100644 index 000000000..391d1e3d1 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/82D4B3C/palettes/10.pal b/data/tilesets/secondary/82D4B3C/palettes/10.pal new file mode 100644 index 000000000..361b133e6 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +222 222 230 +123 123 131 +82 82 106 +238 230 255 +222 197 255 +180 148 222 +131 106 172 +255 0 255 +115 189 246 +74 148 205 +41 115 172 +148 164 180 +246 238 148 +213 172 74 diff --git a/data/tilesets/secondary/82D4B3C/palettes/11.pal b/data/tilesets/secondary/82D4B3C/palettes/11.pal new file mode 100644 index 000000000..00caf8dfc --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +180 205 213 +148 164 180 +123 123 131 +82 82 106 +205 222 238 +197 213 222 +164 180 197 +222 180 82 +230 238 238 +255 205 139 +222 106 98 +197 74 65 +98 189 148 +115 205 164 diff --git a/data/tilesets/secondary/82D4B3C/palettes/12.pal b/data/tilesets/secondary/82D4B3C/palettes/12.pal new file mode 100644 index 000000000..4257575ae --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +213 222 164 +180 189 131 +139 148 90 +123 123 131 +90 90 115 +65 74 106 +180 148 222 +131 106 172 +189 230 222 +148 205 180 +115 172 148 +106 148 139 +74 115 106 +115 205 164 diff --git a/data/tilesets/secondary/82D4B3C/palettes/13.pal b/data/tilesets/secondary/82D4B3C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B3C/palettes/14.pal b/data/tilesets/secondary/82D4B3C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B3C/palettes/15.pal b/data/tilesets/secondary/82D4B3C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B3C/palettes/2.pal b/data/tilesets/secondary/82D4B3C/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4B3C/palettes/3.pal b/data/tilesets/secondary/82D4B3C/palettes/3.pal new file mode 100644 index 000000000..973765509 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B3C/palettes/4.pal b/data/tilesets/secondary/82D4B3C/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4B3C/palettes/5.pal b/data/tilesets/secondary/82D4B3C/palettes/5.pal new file mode 100644 index 000000000..3a2db72a7 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B3C/palettes/6.pal b/data/tilesets/secondary/82D4B3C/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B3C/palettes/7.pal b/data/tilesets/secondary/82D4B3C/palettes/7.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B3C/palettes/8.pal b/data/tilesets/secondary/82D4B3C/palettes/8.pal new file mode 100644 index 000000000..86930c1d1 --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +222 222 230 +123 123 131 +82 82 106 +197 238 255 +172 213 255 +123 164 222 +98 139 189 +246 230 139 +197 180 115 +172 156 90 +123 164 189 +148 189 238 +255 205 139 +230 131 115 diff --git a/data/tilesets/secondary/82D4B3C/palettes/9.pal b/data/tilesets/secondary/82D4B3C/palettes/9.pal new file mode 100644 index 000000000..5dc82505a --- /dev/null +++ b/data/tilesets/secondary/82D4B3C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +222 222 230 +123 123 131 +82 82 106 +197 197 205 +255 213 164 +222 123 82 +189 90 57 +189 230 222 +131 189 164 +106 148 139 +246 238 189 +222 213 156 +213 189 123 +197 180 106 diff --git a/data/tilesets/secondary/82D4B3C/tiles.png b/data/tilesets/secondary/82D4B3C/tiles.png new file mode 100644 index 000000000..db18cb938 Binary files /dev/null and b/data/tilesets/secondary/82D4B3C/tiles.png differ diff --git a/data/tilesets/secondary/82D4B54/metatile_attributes.bin b/data/tilesets/secondary/82D4B54/metatile_attributes.bin new file mode 100644 index 000000000..3e370a747 Binary files /dev/null and b/data/tilesets/secondary/82D4B54/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4B54/metatiles.bin b/data/tilesets/secondary/82D4B54/metatiles.bin new file mode 100644 index 000000000..0e0e722da Binary files /dev/null and b/data/tilesets/secondary/82D4B54/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4B54/palettes/0.pal b/data/tilesets/secondary/82D4B54/palettes/0.pal new file mode 100644 index 000000000..5fb8bdb01 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 255 139 +131 213 98 +57 139 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4B54/palettes/1.pal b/data/tilesets/secondary/82D4B54/palettes/1.pal new file mode 100644 index 000000000..391d1e3d1 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/82D4B54/palettes/10.pal b/data/tilesets/secondary/82D4B54/palettes/10.pal new file mode 100644 index 000000000..d82bb0391 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +65 74 106 +123 123 131 +180 164 90 +0 0 255 +255 238 197 +238 238 205 +189 180 172 +172 172 156 +205 205 172 +139 123 49 +164 148 74 +205 197 123 +230 213 139 +106 172 123 +123 197 139 diff --git a/data/tilesets/secondary/82D4B54/palettes/11.pal b/data/tilesets/secondary/82D4B54/palettes/11.pal new file mode 100644 index 000000000..cc0cf52cf --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 197 +180 238 82 +139 213 82 +90 164 49 +57 90 90 +74 123 74 +90 98 49 +139 131 49 +65 57 49 +57 139 98 +123 197 49 +123 197 82 +57 139 49 +115 205 164 +57 172 156 +255 0 255 diff --git a/data/tilesets/secondary/82D4B54/palettes/12.pal b/data/tilesets/secondary/82D4B54/palettes/12.pal new file mode 100644 index 000000000..ebcfeb596 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +238 180 139 +222 148 131 +189 123 115 +139 90 82 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B54/palettes/13.pal b/data/tilesets/secondary/82D4B54/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B54/palettes/14.pal b/data/tilesets/secondary/82D4B54/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B54/palettes/15.pal b/data/tilesets/secondary/82D4B54/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B54/palettes/2.pal b/data/tilesets/secondary/82D4B54/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4B54/palettes/3.pal b/data/tilesets/secondary/82D4B54/palettes/3.pal new file mode 100644 index 000000000..9581f2cd8 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B54/palettes/4.pal b/data/tilesets/secondary/82D4B54/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4B54/palettes/5.pal b/data/tilesets/secondary/82D4B54/palettes/5.pal new file mode 100644 index 000000000..3a2db72a7 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B54/palettes/6.pal b/data/tilesets/secondary/82D4B54/palettes/6.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4B54/palettes/7.pal b/data/tilesets/secondary/82D4B54/palettes/7.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4B54/palettes/8.pal b/data/tilesets/secondary/82D4B54/palettes/8.pal new file mode 100644 index 000000000..8a0a9a1e0 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +65 74 106 +123 123 131 +98 90 82 +115 106 98 +148 131 131 +180 156 131 +189 172 98 +213 205 131 +238 222 139 +90 106 164 +98 139 230 +115 205 255 +255 0 255 +255 0 255 +98 106 115 diff --git a/data/tilesets/secondary/82D4B54/palettes/9.pal b/data/tilesets/secondary/82D4B54/palettes/9.pal new file mode 100644 index 000000000..d39bbb454 --- /dev/null +++ b/data/tilesets/secondary/82D4B54/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +65 74 106 +123 123 131 +139 90 82 +189 123 115 +222 148 131 +255 197 156 +156 156 172 +189 197 213 +230 238 238 +49 98 90 +74 148 131 +82 197 148 +106 230 172 +164 238 172 +98 106 115 diff --git a/data/tilesets/secondary/82D4B54/tiles.png b/data/tilesets/secondary/82D4B54/tiles.png new file mode 100644 index 000000000..a9e9e13e8 Binary files /dev/null and b/data/tilesets/secondary/82D4B54/tiles.png differ diff --git a/data/tilesets/secondary/82D4B6C/metatile_attributes.bin b/data/tilesets/secondary/82D4B6C/metatile_attributes.bin new file mode 100644 index 000000000..d2c655c41 Binary files /dev/null and b/data/tilesets/secondary/82D4B6C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4B6C/metatiles.bin b/data/tilesets/secondary/82D4B6C/metatiles.bin new file mode 100644 index 000000000..0abe4b18d Binary files /dev/null and b/data/tilesets/secondary/82D4B6C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4B6C/palettes/0.pal b/data/tilesets/secondary/82D4B6C/palettes/0.pal new file mode 100644 index 000000000..9dcb673aa --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4B6C/palettes/1.pal b/data/tilesets/secondary/82D4B6C/palettes/1.pal new file mode 100644 index 000000000..391d1e3d1 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/82D4B6C/palettes/10.pal b/data/tilesets/secondary/82D4B6C/palettes/10.pal new file mode 100644 index 000000000..608bbc2cf --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B6C/palettes/11.pal b/data/tilesets/secondary/82D4B6C/palettes/11.pal new file mode 100644 index 000000000..608bbc2cf --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B6C/palettes/12.pal b/data/tilesets/secondary/82D4B6C/palettes/12.pal new file mode 100644 index 000000000..608bbc2cf --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B6C/palettes/13.pal b/data/tilesets/secondary/82D4B6C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B6C/palettes/14.pal b/data/tilesets/secondary/82D4B6C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B6C/palettes/15.pal b/data/tilesets/secondary/82D4B6C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B6C/palettes/2.pal b/data/tilesets/secondary/82D4B6C/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4B6C/palettes/3.pal b/data/tilesets/secondary/82D4B6C/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B6C/palettes/4.pal b/data/tilesets/secondary/82D4B6C/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4B6C/palettes/5.pal b/data/tilesets/secondary/82D4B6C/palettes/5.pal new file mode 100644 index 000000000..3a2db72a7 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B6C/palettes/6.pal b/data/tilesets/secondary/82D4B6C/palettes/6.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4B6C/palettes/7.pal b/data/tilesets/secondary/82D4B6C/palettes/7.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4B6C/palettes/8.pal b/data/tilesets/secondary/82D4B6C/palettes/8.pal new file mode 100644 index 000000000..f734cd166 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +139 82 57 +164 106 82 +205 148 123 +222 164 139 +172 189 238 +213 222 246 +156 131 90 +189 164 115 +222 205 156 +255 238 189 +164 164 180 +82 82 106 +123 123 139 +205 205 222 +255 255 255 diff --git a/data/tilesets/secondary/82D4B6C/palettes/9.pal b/data/tilesets/secondary/82D4B6C/palettes/9.pal new file mode 100644 index 000000000..ca26d1b08 --- /dev/null +++ b/data/tilesets/secondary/82D4B6C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 246 +230 230 189 +197 197 156 +172 172 131 +123 123 82 +65 74 106 +123 123 131 +123 123 131 +98 164 222 +74 131 197 +139 222 189 +106 189 156 +106 189 156 +74 156 123 +90 90 115 diff --git a/data/tilesets/secondary/82D4B6C/tiles.png b/data/tilesets/secondary/82D4B6C/tiles.png new file mode 100644 index 000000000..ddb9ad0cb Binary files /dev/null and b/data/tilesets/secondary/82D4B6C/tiles.png differ diff --git a/data/tilesets/secondary/82D4B84/metatile_attributes.bin b/data/tilesets/secondary/82D4B84/metatile_attributes.bin new file mode 100644 index 000000000..f840f6486 Binary files /dev/null and b/data/tilesets/secondary/82D4B84/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4B84/metatiles.bin b/data/tilesets/secondary/82D4B84/metatiles.bin new file mode 100644 index 000000000..bbb7ffbee Binary files /dev/null and b/data/tilesets/secondary/82D4B84/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4B84/palettes/0.pal b/data/tilesets/secondary/82D4B84/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4B84/palettes/1.pal b/data/tilesets/secondary/82D4B84/palettes/1.pal new file mode 100644 index 000000000..cf1123812 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4B84/palettes/10.pal b/data/tilesets/secondary/82D4B84/palettes/10.pal new file mode 100644 index 000000000..70ed40322 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +213 230 197 +156 172 139 +123 123 131 +90 90 115 +65 74 106 +222 172 65 +180 98 0 +131 65 0 +205 205 123 +164 164 57 +115 189 246 +74 148 213 +49 115 180 +189 197 164 diff --git a/data/tilesets/secondary/82D4B84/palettes/11.pal b/data/tilesets/secondary/82D4B84/palettes/11.pal new file mode 100644 index 000000000..7b47acf60 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 255 255 +213 213 222 +180 180 164 +148 148 139 +123 123 131 +82 82 106 +197 222 205 +148 172 156 +98 131 106 +230 139 24 +197 98 0 +172 65 0 +230 213 139 +205 180 106 +172 148 82 diff --git a/data/tilesets/secondary/82D4B84/palettes/12.pal b/data/tilesets/secondary/82D4B84/palettes/12.pal new file mode 100644 index 000000000..f5ff3dddf --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +148 148 139 +222 222 230 +205 205 213 +180 180 164 +255 0 255 +222 222 205 +205 205 189 +172 172 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +230 213 139 +205 180 106 +115 205 164 diff --git a/data/tilesets/secondary/82D4B84/palettes/13.pal b/data/tilesets/secondary/82D4B84/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B84/palettes/14.pal b/data/tilesets/secondary/82D4B84/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B84/palettes/15.pal b/data/tilesets/secondary/82D4B84/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B84/palettes/2.pal b/data/tilesets/secondary/82D4B84/palettes/2.pal new file mode 100644 index 000000000..372fb5d7c --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4B84/palettes/3.pal b/data/tilesets/secondary/82D4B84/palettes/3.pal new file mode 100644 index 000000000..5a5e60211 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B84/palettes/4.pal b/data/tilesets/secondary/82D4B84/palettes/4.pal new file mode 100644 index 000000000..229f9132c --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 255 +197 213 255 +164 197 238 +123 172 230 +90 148 197 +65 123 180 +90 164 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +32 98 139 +238 230 139 +222 197 139 +205 180 106 diff --git a/data/tilesets/secondary/82D4B84/palettes/5.pal b/data/tilesets/secondary/82D4B84/palettes/5.pal new file mode 100644 index 000000000..215dd1272 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B84/palettes/6.pal b/data/tilesets/secondary/82D4B84/palettes/6.pal new file mode 100644 index 000000000..7e7862a19 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 255 +197 213 255 +164 197 238 +123 172 230 +41 82 164 +41 57 131 +74 123 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +32 98 139 +238 230 139 +222 197 139 +205 180 106 diff --git a/data/tilesets/secondary/82D4B84/palettes/7.pal b/data/tilesets/secondary/82D4B84/palettes/7.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B84/palettes/8.pal b/data/tilesets/secondary/82D4B84/palettes/8.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B84/palettes/9.pal b/data/tilesets/secondary/82D4B84/palettes/9.pal new file mode 100644 index 000000000..3ff6139ac --- /dev/null +++ b/data/tilesets/secondary/82D4B84/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 205 65 +222 172 65 +180 98 0 +213 213 139 +189 189 115 +148 148 82 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4B84/tiles.png b/data/tilesets/secondary/82D4B84/tiles.png new file mode 100644 index 000000000..4a938b4c5 Binary files /dev/null and b/data/tilesets/secondary/82D4B84/tiles.png differ diff --git a/data/tilesets/secondary/82D4B9C/metatile_attributes.bin b/data/tilesets/secondary/82D4B9C/metatile_attributes.bin new file mode 100644 index 000000000..c6f6551c0 Binary files /dev/null and b/data/tilesets/secondary/82D4B9C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4B9C/metatiles.bin b/data/tilesets/secondary/82D4B9C/metatiles.bin new file mode 100644 index 000000000..dd43794df Binary files /dev/null and b/data/tilesets/secondary/82D4B9C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4B9C/palettes/0.pal b/data/tilesets/secondary/82D4B9C/palettes/0.pal new file mode 100644 index 000000000..9dcb673aa --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4B9C/palettes/1.pal b/data/tilesets/secondary/82D4B9C/palettes/1.pal new file mode 100644 index 000000000..391d1e3d1 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/82D4B9C/palettes/10.pal b/data/tilesets/secondary/82D4B9C/palettes/10.pal new file mode 100644 index 000000000..ce671fee4 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 255 82 +238 238 238 +222 222 230 +123 123 131 +172 189 205 +65 74 106 +222 222 205 +205 205 189 +180 180 164 +213 213 164 +189 189 139 +148 148 98 +32 82 164 +156 205 246 +82 164 205 +115 205 164 diff --git a/data/tilesets/secondary/82D4B9C/palettes/11.pal b/data/tilesets/secondary/82D4B9C/palettes/11.pal new file mode 100644 index 000000000..d1ae629c8 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +197 197 205 +49 98 164 +172 222 180 +139 189 148 +106 156 115 +82 131 90 +65 115 74 +255 0 255 diff --git a/data/tilesets/secondary/82D4B9C/palettes/12.pal b/data/tilesets/secondary/82D4B9C/palettes/12.pal new file mode 100644 index 000000000..b66bd774a --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +222 222 230 +139 156 172 +123 123 131 +82 82 106 +213 205 32 +246 238 74 +164 131 205 +164 156 16 +205 197 106 +255 255 148 +139 189 148 +74 131 197 +197 197 205 +115 189 246 diff --git a/data/tilesets/secondary/82D4B9C/palettes/13.pal b/data/tilesets/secondary/82D4B9C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B9C/palettes/14.pal b/data/tilesets/secondary/82D4B9C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B9C/palettes/15.pal b/data/tilesets/secondary/82D4B9C/palettes/15.pal new file mode 100644 index 000000000..3ffc684ac --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +230 222 164 +222 205 131 +205 180 106 +213 213 197 +197 197 180 +164 164 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4B9C/palettes/2.pal b/data/tilesets/secondary/82D4B9C/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4B9C/palettes/3.pal b/data/tilesets/secondary/82D4B9C/palettes/3.pal new file mode 100644 index 000000000..973765509 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B9C/palettes/4.pal b/data/tilesets/secondary/82D4B9C/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4B9C/palettes/5.pal b/data/tilesets/secondary/82D4B9C/palettes/5.pal new file mode 100644 index 000000000..3a2db72a7 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4B9C/palettes/6.pal b/data/tilesets/secondary/82D4B9C/palettes/6.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4B9C/palettes/7.pal b/data/tilesets/secondary/82D4B9C/palettes/7.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4B9C/palettes/8.pal b/data/tilesets/secondary/82D4B9C/palettes/8.pal new file mode 100644 index 000000000..b1e168855 --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +197 197 197 +222 222 230 +148 164 180 +123 123 131 +65 74 106 +246 246 255 +205 164 255 +164 131 205 +123 90 164 +255 0 255 +255 0 255 +255 0 255 +164 131 205 +205 164 255 +90 90 115 diff --git a/data/tilesets/secondary/82D4B9C/palettes/9.pal b/data/tilesets/secondary/82D4B9C/palettes/9.pal new file mode 100644 index 000000000..7a88fdbbf --- /dev/null +++ b/data/tilesets/secondary/82D4B9C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +205 205 213 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 238 246 +255 238 139 +230 189 82 +238 148 115 +222 246 255 +172 230 255 +123 205 213 +197 106 74 diff --git a/data/tilesets/secondary/82D4B9C/tiles.png b/data/tilesets/secondary/82D4B9C/tiles.png new file mode 100644 index 000000000..ea835f8dd Binary files /dev/null and b/data/tilesets/secondary/82D4B9C/tiles.png differ diff --git a/data/tilesets/secondary/82D4BCC/metatile_attributes.bin b/data/tilesets/secondary/82D4BCC/metatile_attributes.bin new file mode 100644 index 000000000..31fdb5cc0 Binary files /dev/null and b/data/tilesets/secondary/82D4BCC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4BCC/metatiles.bin b/data/tilesets/secondary/82D4BCC/metatiles.bin new file mode 100644 index 000000000..1c00836c1 Binary files /dev/null and b/data/tilesets/secondary/82D4BCC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4BCC/palettes/0.pal b/data/tilesets/secondary/82D4BCC/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4BCC/palettes/1.pal b/data/tilesets/secondary/82D4BCC/palettes/1.pal new file mode 100644 index 000000000..3a16a45c7 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/82D4BCC/palettes/10.pal b/data/tilesets/secondary/82D4BCC/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/11.pal b/data/tilesets/secondary/82D4BCC/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/12.pal b/data/tilesets/secondary/82D4BCC/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/13.pal b/data/tilesets/secondary/82D4BCC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/14.pal b/data/tilesets/secondary/82D4BCC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/15.pal b/data/tilesets/secondary/82D4BCC/palettes/15.pal new file mode 100644 index 000000000..92e7ed309 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/2.pal b/data/tilesets/secondary/82D4BCC/palettes/2.pal new file mode 100644 index 000000000..cc3a9457d --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4BCC/palettes/3.pal b/data/tilesets/secondary/82D4BCC/palettes/3.pal new file mode 100644 index 000000000..e1b56cd57 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +164 172 164 +180 189 189 +238 246 246 +238 246 238 +213 230 222 +197 205 197 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4BCC/palettes/4.pal b/data/tilesets/secondary/82D4BCC/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/5.pal b/data/tilesets/secondary/82D4BCC/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/6.pal b/data/tilesets/secondary/82D4BCC/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/7.pal b/data/tilesets/secondary/82D4BCC/palettes/7.pal new file mode 100644 index 000000000..0a07057ec --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4BCC/palettes/8.pal b/data/tilesets/secondary/82D4BCC/palettes/8.pal new file mode 100644 index 000000000..06fcc911b --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +115 189 139 +172 230 172 +205 246 205 +0 0 0 diff --git a/data/tilesets/secondary/82D4BCC/palettes/9.pal b/data/tilesets/secondary/82D4BCC/palettes/9.pal new file mode 100644 index 000000000..ea018609b --- /dev/null +++ b/data/tilesets/secondary/82D4BCC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +164 172 164 +180 189 189 +238 246 246 +238 246 238 +213 230 222 +197 205 197 +255 0 255 +255 0 255 +156 205 255 +106 164 238 +74 139 230 +57 131 205 +41 98 189 +255 0 255 diff --git a/data/tilesets/secondary/82D4BCC/tiles.png b/data/tilesets/secondary/82D4BCC/tiles.png new file mode 100644 index 000000000..2bfeb4080 Binary files /dev/null and b/data/tilesets/secondary/82D4BCC/tiles.png differ diff --git a/data/tilesets/secondary/82D4BE4/metatile_attributes.bin b/data/tilesets/secondary/82D4BE4/metatile_attributes.bin new file mode 100644 index 000000000..f9bd3d289 Binary files /dev/null and b/data/tilesets/secondary/82D4BE4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4BE4/metatiles.bin b/data/tilesets/secondary/82D4BE4/metatiles.bin new file mode 100644 index 000000000..2ec8817bc Binary files /dev/null and b/data/tilesets/secondary/82D4BE4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4BE4/palettes/0.pal b/data/tilesets/secondary/82D4BE4/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4BE4/palettes/1.pal b/data/tilesets/secondary/82D4BE4/palettes/1.pal new file mode 100644 index 000000000..d99adafff --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4BE4/palettes/10.pal b/data/tilesets/secondary/82D4BE4/palettes/10.pal new file mode 100644 index 000000000..62e3e6d6b --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +189 98 74 +255 131 115 +255 0 255 +255 0 255 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +189 230 255 +189 230 255 +156 189 213 +90 131 180 diff --git a/data/tilesets/secondary/82D4BE4/palettes/11.pal b/data/tilesets/secondary/82D4BE4/palettes/11.pal new file mode 100644 index 000000000..7ba7bccca --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 222 156 +82 82 106 +123 123 123 +180 180 164 +222 230 230 +180 213 230 +131 180 205 +98 156 164 +57 115 139 +255 65 0 +205 49 0 +8 90 255 +0 57 197 +255 180 0 +0 230 115 +255 255 255 diff --git a/data/tilesets/secondary/82D4BE4/palettes/12.pal b/data/tilesets/secondary/82D4BE4/palettes/12.pal new file mode 100644 index 000000000..0f1f36738 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +164 172 164 +180 189 189 +255 255 255 +115 115 123 +213 205 156 +238 238 172 +197 180 139 +230 222 156 +246 246 205 +0 82 123 +57 139 180 +115 197 238 +222 230 222 +131 131 139 diff --git a/data/tilesets/secondary/82D4BE4/palettes/13.pal b/data/tilesets/secondary/82D4BE4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BE4/palettes/14.pal b/data/tilesets/secondary/82D4BE4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BE4/palettes/15.pal b/data/tilesets/secondary/82D4BE4/palettes/15.pal new file mode 100644 index 000000000..92e7ed309 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4BE4/palettes/2.pal b/data/tilesets/secondary/82D4BE4/palettes/2.pal new file mode 100644 index 000000000..cc3a9457d --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4BE4/palettes/3.pal b/data/tilesets/secondary/82D4BE4/palettes/3.pal new file mode 100644 index 000000000..7ec794ae5 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4BE4/palettes/4.pal b/data/tilesets/secondary/82D4BE4/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BE4/palettes/5.pal b/data/tilesets/secondary/82D4BE4/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BE4/palettes/6.pal b/data/tilesets/secondary/82D4BE4/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BE4/palettes/7.pal b/data/tilesets/secondary/82D4BE4/palettes/7.pal new file mode 100644 index 000000000..27ca86ca3 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 222 205 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4BE4/palettes/8.pal b/data/tilesets/secondary/82D4BE4/palettes/8.pal new file mode 100644 index 000000000..6b6a0f25f --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +131 205 139 +230 189 115 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4BE4/palettes/9.pal b/data/tilesets/secondary/82D4BE4/palettes/9.pal new file mode 100644 index 000000000..4b279ecf9 --- /dev/null +++ b/data/tilesets/secondary/82D4BE4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 0 +82 82 106 +148 148 164 +205 189 197 +255 255 255 +189 148 49 +156 115 90 +197 238 148 +156 197 74 +106 164 41 +197 222 205 +139 180 172 +172 205 180 +123 123 139 +255 98 49 +238 222 164 diff --git a/data/tilesets/secondary/82D4BE4/tiles.png b/data/tilesets/secondary/82D4BE4/tiles.png new file mode 100644 index 000000000..92d0112f3 Binary files /dev/null and b/data/tilesets/secondary/82D4BE4/tiles.png differ diff --git a/data/tilesets/secondary/82D4BFC/metatile_attributes.bin b/data/tilesets/secondary/82D4BFC/metatile_attributes.bin new file mode 100644 index 000000000..510f0fdf1 Binary files /dev/null and b/data/tilesets/secondary/82D4BFC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4BFC/metatiles.bin b/data/tilesets/secondary/82D4BFC/metatiles.bin new file mode 100644 index 000000000..9f35adc11 Binary files /dev/null and b/data/tilesets/secondary/82D4BFC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4BFC/palettes/0.pal b/data/tilesets/secondary/82D4BFC/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4BFC/palettes/1.pal b/data/tilesets/secondary/82D4BFC/palettes/1.pal new file mode 100644 index 000000000..09828f4f1 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +32 49 57 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +123 74 74 +90 57 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4BFC/palettes/10.pal b/data/tilesets/secondary/82D4BFC/palettes/10.pal new file mode 100644 index 000000000..937405d15 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 164 +230 197 139 +205 172 123 +172 139 106 +213 197 189 +205 180 156 +189 148 139 +148 115 106 +115 65 74 +82 49 65 +90 90 98 diff --git a/data/tilesets/secondary/82D4BFC/palettes/11.pal b/data/tilesets/secondary/82D4BFC/palettes/11.pal new file mode 100644 index 000000000..bb4f4867c --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +238 222 148 +222 205 115 +205 180 98 +189 172 98 diff --git a/data/tilesets/secondary/82D4BFC/palettes/12.pal b/data/tilesets/secondary/82D4BFC/palettes/12.pal new file mode 100644 index 000000000..583384664 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4BFC/palettes/13.pal b/data/tilesets/secondary/82D4BFC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BFC/palettes/14.pal b/data/tilesets/secondary/82D4BFC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BFC/palettes/15.pal b/data/tilesets/secondary/82D4BFC/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BFC/palettes/2.pal b/data/tilesets/secondary/82D4BFC/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4BFC/palettes/3.pal b/data/tilesets/secondary/82D4BFC/palettes/3.pal new file mode 100644 index 000000000..ef7460f41 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +123 197 255 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4BFC/palettes/4.pal b/data/tilesets/secondary/82D4BFC/palettes/4.pal new file mode 100644 index 000000000..e83c6b367 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 246 255 +189 222 255 +139 189 255 +115 164 255 +65 139 222 +57 115 205 +82 148 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D4BFC/palettes/5.pal b/data/tilesets/secondary/82D4BFC/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4BFC/palettes/6.pal b/data/tilesets/secondary/82D4BFC/palettes/6.pal new file mode 100644 index 000000000..9bad44649 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +205 230 246 +180 213 255 +123 180 246 +98 148 230 +65 123 189 +49 98 180 +82 131 222 +213 230 238 +172 189 205 +123 123 131 +90 90 115 +238 246 246 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D4BFC/palettes/7.pal b/data/tilesets/secondary/82D4BFC/palettes/7.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4BFC/palettes/8.pal b/data/tilesets/secondary/82D4BFC/palettes/8.pal new file mode 100644 index 000000000..1c8d33fac --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +32 49 57 +255 0 255 +255 0 255 +255 0 255 +222 197 189 +205 180 156 +189 148 139 +148 115 106 +115 65 74 +82 49 65 +90 90 98 diff --git a/data/tilesets/secondary/82D4BFC/palettes/9.pal b/data/tilesets/secondary/82D4BFC/palettes/9.pal new file mode 100644 index 000000000..3795f6c6a --- /dev/null +++ b/data/tilesets/secondary/82D4BFC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 222 213 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 238 164 +230 197 139 +205 172 123 +164 123 90 +148 115 74 +106 65 41 +74 74 57 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/82D4BFC/tiles.png b/data/tilesets/secondary/82D4BFC/tiles.png new file mode 100644 index 000000000..8e0f64a78 Binary files /dev/null and b/data/tilesets/secondary/82D4BFC/tiles.png differ diff --git a/data/tilesets/secondary/82D4C14/metatile_attributes.bin b/data/tilesets/secondary/82D4C14/metatile_attributes.bin new file mode 100644 index 000000000..1b1cb4d44 Binary files /dev/null and b/data/tilesets/secondary/82D4C14/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4C14/metatiles.bin b/data/tilesets/secondary/82D4C14/metatiles.bin new file mode 100644 index 000000000..274da22a6 Binary files /dev/null and b/data/tilesets/secondary/82D4C14/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4C14/palettes/0.pal b/data/tilesets/secondary/82D4C14/palettes/0.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/1.pal b/data/tilesets/secondary/82D4C14/palettes/1.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/10.pal b/data/tilesets/secondary/82D4C14/palettes/10.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/11.pal b/data/tilesets/secondary/82D4C14/palettes/11.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/12.pal b/data/tilesets/secondary/82D4C14/palettes/12.pal new file mode 100644 index 000000000..97d3f20bd --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +156 156 139 +164 148 65 +213 164 106 +230 213 131 +246 238 205 +0 0 0 +197 189 123 +222 213 139 +246 238 180 +238 205 172 +205 205 213 +255 148 131 +255 255 115 +156 197 230 diff --git a/data/tilesets/secondary/82D4C14/palettes/13.pal b/data/tilesets/secondary/82D4C14/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/14.pal b/data/tilesets/secondary/82D4C14/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/15.pal b/data/tilesets/secondary/82D4C14/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/2.pal b/data/tilesets/secondary/82D4C14/palettes/2.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/3.pal b/data/tilesets/secondary/82D4C14/palettes/3.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/4.pal b/data/tilesets/secondary/82D4C14/palettes/4.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/5.pal b/data/tilesets/secondary/82D4C14/palettes/5.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/6.pal b/data/tilesets/secondary/82D4C14/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/7.pal b/data/tilesets/secondary/82D4C14/palettes/7.pal new file mode 100644 index 000000000..4172436d0 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +246 246 255 +205 197 213 +156 156 164 +222 230 255 +172 205 213 +156 189 172 +189 230 148 +139 205 123 +106 131 98 +238 131 106 +205 106 106 +255 246 41 +255 205 148 +189 197 115 diff --git a/data/tilesets/secondary/82D4C14/palettes/8.pal b/data/tilesets/secondary/82D4C14/palettes/8.pal new file mode 100644 index 000000000..7fd087b3b --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +172 172 189 +222 213 205 +238 238 238 +123 139 74 +148 205 98 +205 246 123 +255 238 230 +222 222 189 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/palettes/9.pal b/data/tilesets/secondary/82D4C14/palettes/9.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C14/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C14/tiles.png b/data/tilesets/secondary/82D4C14/tiles.png new file mode 100644 index 000000000..d4b21f3e4 Binary files /dev/null and b/data/tilesets/secondary/82D4C14/tiles.png differ diff --git a/data/tilesets/secondary/82D4C2C/metatile_attributes.bin b/data/tilesets/secondary/82D4C2C/metatile_attributes.bin new file mode 100644 index 000000000..097e93ce1 Binary files /dev/null and b/data/tilesets/secondary/82D4C2C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4C2C/metatiles.bin b/data/tilesets/secondary/82D4C2C/metatiles.bin new file mode 100644 index 000000000..993b73cbd Binary files /dev/null and b/data/tilesets/secondary/82D4C2C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4C2C/palettes/0.pal b/data/tilesets/secondary/82D4C2C/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4C2C/palettes/1.pal b/data/tilesets/secondary/82D4C2C/palettes/1.pal new file mode 100644 index 000000000..69f3f0b9e --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +180 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/82D4C2C/palettes/10.pal b/data/tilesets/secondary/82D4C2C/palettes/10.pal new file mode 100644 index 000000000..fc8da5d40 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +98 98 74 +164 139 82 +222 205 74 +65 123 164 +82 139 197 +98 189 213 +148 213 213 +180 238 230 +189 197 205 +238 246 238 +222 222 172 +205 131 82 +246 172 106 diff --git a/data/tilesets/secondary/82D4C2C/palettes/11.pal b/data/tilesets/secondary/82D4C2C/palettes/11.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C2C/palettes/12.pal b/data/tilesets/secondary/82D4C2C/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C2C/palettes/13.pal b/data/tilesets/secondary/82D4C2C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C2C/palettes/14.pal b/data/tilesets/secondary/82D4C2C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C2C/palettes/15.pal b/data/tilesets/secondary/82D4C2C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C2C/palettes/2.pal b/data/tilesets/secondary/82D4C2C/palettes/2.pal new file mode 100644 index 000000000..330e35b02 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +213 131 82 +156 205 246 +98 156 238 +57 123 222 +222 139 106 +189 98 74 diff --git a/data/tilesets/secondary/82D4C2C/palettes/3.pal b/data/tilesets/secondary/82D4C2C/palettes/3.pal new file mode 100644 index 000000000..1520bed0b --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +148 148 148 +180 180 180 +255 255 255 +238 246 238 +222 238 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +90 90 90 +115 106 98 +148 123 98 diff --git a/data/tilesets/secondary/82D4C2C/palettes/4.pal b/data/tilesets/secondary/82D4C2C/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C2C/palettes/5.pal b/data/tilesets/secondary/82D4C2C/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C2C/palettes/6.pal b/data/tilesets/secondary/82D4C2C/palettes/6.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C2C/palettes/7.pal b/data/tilesets/secondary/82D4C2C/palettes/7.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C2C/palettes/8.pal b/data/tilesets/secondary/82D4C2C/palettes/8.pal new file mode 100644 index 000000000..223737ab6 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +106 98 74 +139 123 74 +164 139 74 +222 205 74 +123 123 123 +189 197 205 +238 246 238 +98 90 98 +156 131 106 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4C2C/palettes/9.pal b/data/tilesets/secondary/82D4C2C/palettes/9.pal new file mode 100644 index 000000000..6de173f90 --- /dev/null +++ b/data/tilesets/secondary/82D4C2C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +98 98 74 +164 139 82 +222 205 74 +255 0 255 +255 0 255 +213 213 156 +222 230 172 +246 246 238 +90 90 98 +115 115 106 +156 131 106 +205 131 82 +238 164 106 diff --git a/data/tilesets/secondary/82D4C2C/tiles.png b/data/tilesets/secondary/82D4C2C/tiles.png new file mode 100644 index 000000000..9be5ebca9 Binary files /dev/null and b/data/tilesets/secondary/82D4C2C/tiles.png differ diff --git a/data/tilesets/secondary/82D4C44/metatile_attributes.bin b/data/tilesets/secondary/82D4C44/metatile_attributes.bin new file mode 100644 index 000000000..53505839d Binary files /dev/null and b/data/tilesets/secondary/82D4C44/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4C44/metatiles.bin b/data/tilesets/secondary/82D4C44/metatiles.bin new file mode 100644 index 000000000..0e2f2a6c3 Binary files /dev/null and b/data/tilesets/secondary/82D4C44/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4C44/palettes/0.pal b/data/tilesets/secondary/82D4C44/palettes/0.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/1.pal b/data/tilesets/secondary/82D4C44/palettes/1.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/10.pal b/data/tilesets/secondary/82D4C44/palettes/10.pal new file mode 100644 index 000000000..ab8f75e5a --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +123 123 148 +246 255 255 +205 213 213 +0 0 0 +255 123 123 +172 123 115 +139 230 98 +115 189 57 +246 230 24 +189 180 49 +148 148 246 +123 123 180 +222 222 255 +180 172 213 diff --git a/data/tilesets/secondary/82D4C44/palettes/11.pal b/data/tilesets/secondary/82D4C44/palettes/11.pal new file mode 100644 index 000000000..468d7212c --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +49 57 74 +172 164 255 +131 123 230 +106 98 172 +82 74 180 +82 74 98 +246 255 255 +115 172 65 +123 189 74 +148 205 90 +98 90 148 +139 156 213 +57 57 106 +148 205 90 +0 255 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/12.pal b/data/tilesets/secondary/82D4C44/palettes/12.pal new file mode 100644 index 000000000..05794ac82 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +197 238 255 +172 205 213 +131 164 180 +123 156 180 +98 139 148 +246 255 255 +164 123 115 +180 74 24 +213 98 49 +98 139 148 +172 205 213 +197 238 255 +156 222 115 +148 189 98 diff --git a/data/tilesets/secondary/82D4C44/palettes/13.pal b/data/tilesets/secondary/82D4C44/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/14.pal b/data/tilesets/secondary/82D4C44/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/15.pal b/data/tilesets/secondary/82D4C44/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/2.pal b/data/tilesets/secondary/82D4C44/palettes/2.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/3.pal b/data/tilesets/secondary/82D4C44/palettes/3.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/4.pal b/data/tilesets/secondary/82D4C44/palettes/4.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/5.pal b/data/tilesets/secondary/82D4C44/palettes/5.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/6.pal b/data/tilesets/secondary/82D4C44/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C44/palettes/7.pal b/data/tilesets/secondary/82D4C44/palettes/7.pal new file mode 100644 index 000000000..00ca6903f --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +255 213 131 +246 180 82 +213 148 41 +180 172 148 +148 139 123 +255 255 222 +230 230 197 +180 74 24 +213 98 49 +90 156 139 +131 197 180 +172 230 205 +156 222 115 +148 189 106 diff --git a/data/tilesets/secondary/82D4C44/palettes/8.pal b/data/tilesets/secondary/82D4C44/palettes/8.pal new file mode 100644 index 000000000..43d6db90d --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +230 238 255 +213 205 246 +164 164 180 +156 197 156 +106 156 139 +246 255 255 +0 0 0 +180 74 24 +213 98 49 +123 106 164 +156 156 197 +197 197 230 +156 222 115 +148 189 106 diff --git a/data/tilesets/secondary/82D4C44/palettes/9.pal b/data/tilesets/secondary/82D4C44/palettes/9.pal new file mode 100644 index 000000000..87857607f --- /dev/null +++ b/data/tilesets/secondary/82D4C44/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +238 255 255 +213 222 238 +189 205 197 +156 164 172 +0 0 0 +189 139 90 +222 172 106 +246 189 115 +82 156 164 +115 197 222 +213 98 82 +246 148 131 +148 205 90 +49 131 24 diff --git a/data/tilesets/secondary/82D4C44/tiles.png b/data/tilesets/secondary/82D4C44/tiles.png new file mode 100644 index 000000000..f71f29432 Binary files /dev/null and b/data/tilesets/secondary/82D4C44/tiles.png differ diff --git a/data/tilesets/secondary/82D4C5C/metatile_attributes.bin b/data/tilesets/secondary/82D4C5C/metatile_attributes.bin new file mode 100644 index 000000000..d1a4900c5 Binary files /dev/null and b/data/tilesets/secondary/82D4C5C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4C5C/metatiles.bin b/data/tilesets/secondary/82D4C5C/metatiles.bin new file mode 100644 index 000000000..f1c0ab02d Binary files /dev/null and b/data/tilesets/secondary/82D4C5C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4C5C/palettes/0.pal b/data/tilesets/secondary/82D4C5C/palettes/0.pal new file mode 100644 index 000000000..4b44e19f4 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4C5C/palettes/1.pal b/data/tilesets/secondary/82D4C5C/palettes/1.pal new file mode 100644 index 000000000..a39ca6aa8 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4C5C/palettes/10.pal b/data/tilesets/secondary/82D4C5C/palettes/10.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/11.pal b/data/tilesets/secondary/82D4C5C/palettes/11.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/12.pal b/data/tilesets/secondary/82D4C5C/palettes/12.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/13.pal b/data/tilesets/secondary/82D4C5C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/14.pal b/data/tilesets/secondary/82D4C5C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/15.pal b/data/tilesets/secondary/82D4C5C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/2.pal b/data/tilesets/secondary/82D4C5C/palettes/2.pal new file mode 100644 index 000000000..5a4f127be --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4C5C/palettes/3.pal b/data/tilesets/secondary/82D4C5C/palettes/3.pal new file mode 100644 index 000000000..c84fa4a58 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4C5C/palettes/4.pal b/data/tilesets/secondary/82D4C5C/palettes/4.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/5.pal b/data/tilesets/secondary/82D4C5C/palettes/5.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/6.pal b/data/tilesets/secondary/82D4C5C/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/7.pal b/data/tilesets/secondary/82D4C5C/palettes/7.pal new file mode 100644 index 000000000..a71b8fee2 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +172 172 139 +205 205 180 +238 238 222 +131 148 139 +172 189 172 +205 205 205 +213 222 213 +255 255 255 +164 123 74 +189 148 98 +222 172 123 +172 180 106 +197 205 131 diff --git a/data/tilesets/secondary/82D4C5C/palettes/8.pal b/data/tilesets/secondary/82D4C5C/palettes/8.pal new file mode 100644 index 000000000..0a666a9c9 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +65 74 106 +139 139 131 +197 197 197 +255 255 255 +0 0 0 +246 197 197 +74 74 213 +123 123 246 +180 180 0 +213 197 65 +246 246 32 +148 82 74 +205 49 41 +255 123 74 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/palettes/9.pal b/data/tilesets/secondary/82D4C5C/palettes/9.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4C5C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C5C/tiles.png b/data/tilesets/secondary/82D4C5C/tiles.png new file mode 100644 index 000000000..90124ff4a Binary files /dev/null and b/data/tilesets/secondary/82D4C5C/tiles.png differ diff --git a/data/tilesets/secondary/82D4C74/metatile_attributes.bin b/data/tilesets/secondary/82D4C74/metatile_attributes.bin new file mode 100644 index 000000000..be95e451c Binary files /dev/null and b/data/tilesets/secondary/82D4C74/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4C74/metatiles.bin b/data/tilesets/secondary/82D4C74/metatiles.bin new file mode 100644 index 000000000..806d040ce Binary files /dev/null and b/data/tilesets/secondary/82D4C74/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4C74/palettes/0.pal b/data/tilesets/secondary/82D4C74/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4C74/palettes/1.pal b/data/tilesets/secondary/82D4C74/palettes/1.pal new file mode 100644 index 000000000..69f3f0b9e --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +180 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/82D4C74/palettes/10.pal b/data/tilesets/secondary/82D4C74/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/11.pal b/data/tilesets/secondary/82D4C74/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/12.pal b/data/tilesets/secondary/82D4C74/palettes/12.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/13.pal b/data/tilesets/secondary/82D4C74/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/14.pal b/data/tilesets/secondary/82D4C74/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/15.pal b/data/tilesets/secondary/82D4C74/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/2.pal b/data/tilesets/secondary/82D4C74/palettes/2.pal new file mode 100644 index 000000000..c8ee236d7 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +255 0 255 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4C74/palettes/3.pal b/data/tilesets/secondary/82D4C74/palettes/3.pal new file mode 100644 index 000000000..b17dbb054 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +164 164 164 +180 189 189 +255 255 255 +238 246 238 +213 230 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/4.pal b/data/tilesets/secondary/82D4C74/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/5.pal b/data/tilesets/secondary/82D4C74/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/6.pal b/data/tilesets/secondary/82D4C74/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/palettes/7.pal b/data/tilesets/secondary/82D4C74/palettes/7.pal new file mode 100644 index 000000000..c1e7c3d5c --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/82D4C74/palettes/8.pal b/data/tilesets/secondary/82D4C74/palettes/8.pal new file mode 100644 index 000000000..18480092b --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 222 156 +82 82 106 +115 123 131 +98 90 65 +139 123 82 +197 172 90 +230 230 238 +205 115 74 +238 172 82 +238 213 82 +131 189 57 +164 222 82 +156 139 172 +205 172 222 +213 205 230 +246 255 255 diff --git a/data/tilesets/secondary/82D4C74/palettes/9.pal b/data/tilesets/secondary/82D4C74/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4C74/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C74/tiles.png b/data/tilesets/secondary/82D4C74/tiles.png new file mode 100644 index 000000000..191287197 Binary files /dev/null and b/data/tilesets/secondary/82D4C74/tiles.png differ diff --git a/data/tilesets/secondary/82D4C8C/metatile_attributes.bin b/data/tilesets/secondary/82D4C8C/metatile_attributes.bin new file mode 100644 index 000000000..0d685881c Binary files /dev/null and b/data/tilesets/secondary/82D4C8C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4C8C/metatiles.bin b/data/tilesets/secondary/82D4C8C/metatiles.bin new file mode 100644 index 000000000..a7833446f Binary files /dev/null and b/data/tilesets/secondary/82D4C8C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4C8C/palettes/0.pal b/data/tilesets/secondary/82D4C8C/palettes/0.pal new file mode 100644 index 000000000..9fc16da3b --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 246 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4C8C/palettes/1.pal b/data/tilesets/secondary/82D4C8C/palettes/1.pal new file mode 100644 index 000000000..76403e6d6 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4C8C/palettes/10.pal b/data/tilesets/secondary/82D4C8C/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C8C/palettes/11.pal b/data/tilesets/secondary/82D4C8C/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C8C/palettes/12.pal b/data/tilesets/secondary/82D4C8C/palettes/12.pal new file mode 100644 index 000000000..3c32c9fd4 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 246 +82 82 106 +139 131 148 +180 172 180 +189 197 213 +255 255 255 +139 197 139 +156 205 246 +98 156 238 +90 123 180 +222 205 106 +213 230 246 +255 189 180 +230 106 65 +255 131 115 +246 238 148 diff --git a/data/tilesets/secondary/82D4C8C/palettes/13.pal b/data/tilesets/secondary/82D4C8C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C8C/palettes/14.pal b/data/tilesets/secondary/82D4C8C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C8C/palettes/15.pal b/data/tilesets/secondary/82D4C8C/palettes/15.pal new file mode 100644 index 000000000..92e7ed309 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4C8C/palettes/2.pal b/data/tilesets/secondary/82D4C8C/palettes/2.pal new file mode 100644 index 000000000..b1ecd71dc --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4C8C/palettes/3.pal b/data/tilesets/secondary/82D4C8C/palettes/3.pal new file mode 100644 index 000000000..43d9b60e3 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/82D4C8C/palettes/4.pal b/data/tilesets/secondary/82D4C8C/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C8C/palettes/5.pal b/data/tilesets/secondary/82D4C8C/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C8C/palettes/6.pal b/data/tilesets/secondary/82D4C8C/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C8C/palettes/7.pal b/data/tilesets/secondary/82D4C8C/palettes/7.pal new file mode 100644 index 000000000..3d7f8bd89 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 131 148 +180 172 180 +189 197 213 +255 255 255 +255 205 139 +230 164 98 +197 131 65 +172 90 24 +82 148 197 +131 189 222 +189 230 255 +123 123 123 +197 180 74 +246 238 148 diff --git a/data/tilesets/secondary/82D4C8C/palettes/8.pal b/data/tilesets/secondary/82D4C8C/palettes/8.pal new file mode 100644 index 000000000..7fce49d06 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 131 148 +180 172 180 +189 197 213 +255 255 255 +222 222 180 +197 197 148 +156 156 106 +230 164 98 +172 90 24 +172 164 65 +139 123 24 +246 238 148 +0 0 0 +246 238 148 diff --git a/data/tilesets/secondary/82D4C8C/palettes/9.pal b/data/tilesets/secondary/82D4C8C/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4C8C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4C8C/tiles.png b/data/tilesets/secondary/82D4C8C/tiles.png new file mode 100644 index 000000000..6caeac8a8 Binary files /dev/null and b/data/tilesets/secondary/82D4C8C/tiles.png differ diff --git a/data/tilesets/secondary/82D4CA4/metatile_attributes.bin b/data/tilesets/secondary/82D4CA4/metatile_attributes.bin new file mode 100644 index 000000000..1b7a02c1f Binary files /dev/null and b/data/tilesets/secondary/82D4CA4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4CA4/metatiles.bin b/data/tilesets/secondary/82D4CA4/metatiles.bin new file mode 100644 index 000000000..25e3b6297 Binary files /dev/null and b/data/tilesets/secondary/82D4CA4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4CA4/palettes/0.pal b/data/tilesets/secondary/82D4CA4/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4CA4/palettes/1.pal b/data/tilesets/secondary/82D4CA4/palettes/1.pal new file mode 100644 index 000000000..d99adafff --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4CA4/palettes/10.pal b/data/tilesets/secondary/82D4CA4/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CA4/palettes/11.pal b/data/tilesets/secondary/82D4CA4/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CA4/palettes/12.pal b/data/tilesets/secondary/82D4CA4/palettes/12.pal new file mode 100644 index 000000000..ebfedc7d5 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +172 131 115 +197 156 148 +238 180 164 +255 222 197 +255 238 238 +230 164 98 +255 197 98 +205 164 156 +180 139 123 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4CA4/palettes/13.pal b/data/tilesets/secondary/82D4CA4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CA4/palettes/14.pal b/data/tilesets/secondary/82D4CA4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CA4/palettes/15.pal b/data/tilesets/secondary/82D4CA4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CA4/palettes/2.pal b/data/tilesets/secondary/82D4CA4/palettes/2.pal new file mode 100644 index 000000000..cc3a9457d --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4CA4/palettes/3.pal b/data/tilesets/secondary/82D4CA4/palettes/3.pal new file mode 100644 index 000000000..7ec794ae5 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4CA4/palettes/4.pal b/data/tilesets/secondary/82D4CA4/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CA4/palettes/5.pal b/data/tilesets/secondary/82D4CA4/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CA4/palettes/6.pal b/data/tilesets/secondary/82D4CA4/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CA4/palettes/7.pal b/data/tilesets/secondary/82D4CA4/palettes/7.pal new file mode 100644 index 000000000..9020b628f --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 131 57 +213 197 106 +246 238 148 +213 222 238 +222 230 255 +41 106 82 +57 131 115 +172 131 115 +197 156 148 +238 180 164 +180 139 123 diff --git a/data/tilesets/secondary/82D4CA4/palettes/8.pal b/data/tilesets/secondary/82D4CA4/palettes/8.pal new file mode 100644 index 000000000..1873ad439 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 131 57 +213 197 106 +246 238 148 +156 205 246 +115 172 222 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4CA4/palettes/9.pal b/data/tilesets/secondary/82D4CA4/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4CA4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CA4/tiles.png b/data/tilesets/secondary/82D4CA4/tiles.png new file mode 100644 index 000000000..cf2fa4ff7 Binary files /dev/null and b/data/tilesets/secondary/82D4CA4/tiles.png differ diff --git a/data/tilesets/secondary/82D4CBC/metatile_attributes.bin b/data/tilesets/secondary/82D4CBC/metatile_attributes.bin new file mode 100644 index 000000000..a84364708 Binary files /dev/null and b/data/tilesets/secondary/82D4CBC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4CBC/metatiles.bin b/data/tilesets/secondary/82D4CBC/metatiles.bin new file mode 100644 index 000000000..2980877c1 Binary files /dev/null and b/data/tilesets/secondary/82D4CBC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4CBC/palettes/0.pal b/data/tilesets/secondary/82D4CBC/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4CBC/palettes/1.pal b/data/tilesets/secondary/82D4CBC/palettes/1.pal new file mode 100644 index 000000000..3a16a45c7 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/82D4CBC/palettes/10.pal b/data/tilesets/secondary/82D4CBC/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/palettes/11.pal b/data/tilesets/secondary/82D4CBC/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/palettes/12.pal b/data/tilesets/secondary/82D4CBC/palettes/12.pal new file mode 100644 index 000000000..d2c6cb089 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +230 230 230 +255 255 255 +180 115 82 +213 156 123 +123 123 123 +106 156 148 +139 189 180 +180 222 213 +255 0 255 +213 213 213 +230 189 123 +246 197 156 diff --git a/data/tilesets/secondary/82D4CBC/palettes/13.pal b/data/tilesets/secondary/82D4CBC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/palettes/14.pal b/data/tilesets/secondary/82D4CBC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/palettes/15.pal b/data/tilesets/secondary/82D4CBC/palettes/15.pal new file mode 100644 index 000000000..92e7ed309 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/palettes/2.pal b/data/tilesets/secondary/82D4CBC/palettes/2.pal new file mode 100644 index 000000000..c8ee236d7 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +255 0 255 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4CBC/palettes/3.pal b/data/tilesets/secondary/82D4CBC/palettes/3.pal new file mode 100644 index 000000000..b17dbb054 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +164 164 164 +180 189 189 +255 255 255 +238 246 238 +213 230 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/palettes/4.pal b/data/tilesets/secondary/82D4CBC/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/palettes/5.pal b/data/tilesets/secondary/82D4CBC/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/palettes/6.pal b/data/tilesets/secondary/82D4CBC/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/palettes/7.pal b/data/tilesets/secondary/82D4CBC/palettes/7.pal new file mode 100644 index 000000000..f55e52fe2 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +197 189 213 +255 255 255 +205 197 106 +246 238 148 +255 255 222 +98 98 123 +238 238 238 +82 222 123 +131 255 164 +82 164 57 +255 0 255 +255 0 255 +172 106 74 diff --git a/data/tilesets/secondary/82D4CBC/palettes/8.pal b/data/tilesets/secondary/82D4CBC/palettes/8.pal new file mode 100644 index 000000000..3a7dbc274 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +197 189 213 +255 255 255 +222 222 238 +230 205 131 +189 197 82 +222 230 115 +238 230 148 +74 123 180 +131 131 139 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4CBC/palettes/9.pal b/data/tilesets/secondary/82D4CBC/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4CBC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CBC/tiles.png b/data/tilesets/secondary/82D4CBC/tiles.png new file mode 100644 index 000000000..b53b94b96 Binary files /dev/null and b/data/tilesets/secondary/82D4CBC/tiles.png differ diff --git a/data/tilesets/secondary/82D4CD4/metatile_attributes.bin b/data/tilesets/secondary/82D4CD4/metatile_attributes.bin new file mode 100644 index 000000000..6c4ffed21 Binary files /dev/null and b/data/tilesets/secondary/82D4CD4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4CD4/metatiles.bin b/data/tilesets/secondary/82D4CD4/metatiles.bin new file mode 100644 index 000000000..af8effb11 Binary files /dev/null and b/data/tilesets/secondary/82D4CD4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4CD4/palettes/0.pal b/data/tilesets/secondary/82D4CD4/palettes/0.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/1.pal b/data/tilesets/secondary/82D4CD4/palettes/1.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/10.pal b/data/tilesets/secondary/82D4CD4/palettes/10.pal new file mode 100644 index 000000000..432f42149 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +123 123 131 +189 189 164 +255 255 255 +213 197 74 +213 180 131 +148 115 41 +172 139 57 +213 213 180 +106 139 49 +131 172 74 +164 205 106 +197 255 172 +115 90 57 +255 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/11.pal b/data/tilesets/secondary/82D4CD4/palettes/11.pal new file mode 100644 index 000000000..8c2460403 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 139 +189 189 164 +255 255 255 +222 197 74 +230 230 106 +230 222 246 +148 98 123 +197 131 156 +197 164 189 +123 164 189 +131 197 98 +172 238 139 +90 156 57 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/12.pal b/data/tilesets/secondary/82D4CD4/palettes/12.pal new file mode 100644 index 000000000..920ad12c9 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 139 +180 180 164 +255 255 255 +189 180 49 +222 213 82 +123 115 49 +156 148 16 +213 213 180 +98 156 139 +123 180 189 +172 222 230 +255 205 139 +246 246 164 +222 131 90 diff --git a/data/tilesets/secondary/82D4CD4/palettes/13.pal b/data/tilesets/secondary/82D4CD4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/14.pal b/data/tilesets/secondary/82D4CD4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/15.pal b/data/tilesets/secondary/82D4CD4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/2.pal b/data/tilesets/secondary/82D4CD4/palettes/2.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/3.pal b/data/tilesets/secondary/82D4CD4/palettes/3.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/4.pal b/data/tilesets/secondary/82D4CD4/palettes/4.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/5.pal b/data/tilesets/secondary/82D4CD4/palettes/5.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/6.pal b/data/tilesets/secondary/82D4CD4/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/7.pal b/data/tilesets/secondary/82D4CD4/palettes/7.pal new file mode 100644 index 000000000..533778712 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 139 +189 189 164 +255 255 255 +230 222 246 +255 238 213 +255 0 0 +115 115 164 +131 139 230 +164 164 255 +156 106 16 +115 115 139 +213 213 172 +222 172 82 +189 139 49 diff --git a/data/tilesets/secondary/82D4CD4/palettes/8.pal b/data/tilesets/secondary/82D4CD4/palettes/8.pal new file mode 100644 index 000000000..0b01f1a0f --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 148 +180 180 164 +255 255 255 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +172 90 49 +205 98 57 +246 139 98 +255 205 139 +255 0 0 +255 0 0 +255 0 0 diff --git a/data/tilesets/secondary/82D4CD4/palettes/9.pal b/data/tilesets/secondary/82D4CD4/palettes/9.pal new file mode 100644 index 000000000..371e5a211 --- /dev/null +++ b/data/tilesets/secondary/82D4CD4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 139 +189 189 164 +255 255 255 +230 222 246 +148 148 197 +189 189 246 +205 106 49 +246 180 49 +255 246 131 +255 0 0 +189 172 82 +213 205 98 +148 115 41 +172 139 57 diff --git a/data/tilesets/secondary/82D4CD4/tiles.png b/data/tilesets/secondary/82D4CD4/tiles.png new file mode 100644 index 000000000..ef8a943fa Binary files /dev/null and b/data/tilesets/secondary/82D4CD4/tiles.png differ diff --git a/data/tilesets/secondary/82D4CEC/metatile_attributes.bin b/data/tilesets/secondary/82D4CEC/metatile_attributes.bin new file mode 100644 index 000000000..a2bcd959e Binary files /dev/null and b/data/tilesets/secondary/82D4CEC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4CEC/metatiles.bin b/data/tilesets/secondary/82D4CEC/metatiles.bin new file mode 100644 index 000000000..1529f8582 Binary files /dev/null and b/data/tilesets/secondary/82D4CEC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4CEC/palettes/0.pal b/data/tilesets/secondary/82D4CEC/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4CEC/palettes/1.pal b/data/tilesets/secondary/82D4CEC/palettes/1.pal new file mode 100644 index 000000000..d99adafff --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4CEC/palettes/10.pal b/data/tilesets/secondary/82D4CEC/palettes/10.pal new file mode 100644 index 000000000..6d76050a9 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +230 230 230 +172 148 197 +205 164 230 +230 197 255 +238 230 123 +189 172 98 +255 255 148 +131 255 255 +74 131 197 +230 189 164 +255 0 255 diff --git a/data/tilesets/secondary/82D4CEC/palettes/11.pal b/data/tilesets/secondary/82D4CEC/palettes/11.pal new file mode 100644 index 000000000..9359b8858 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +172 172 156 +230 230 205 +197 197 172 +172 172 164 +189 189 164 +255 0 255 +131 172 238 +106 197 106 +197 180 74 +255 0 255 +222 222 222 +213 139 57 +255 255 255 diff --git a/data/tilesets/secondary/82D4CEC/palettes/12.pal b/data/tilesets/secondary/82D4CEC/palettes/12.pal new file mode 100644 index 000000000..61b3764be --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +222 238 255 +255 0 255 +255 0 255 +32 156 222 +139 197 255 +180 98 0 +197 123 0 +205 139 0 +213 164 0 +230 180 0 +230 197 65 diff --git a/data/tilesets/secondary/82D4CEC/palettes/13.pal b/data/tilesets/secondary/82D4CEC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CEC/palettes/14.pal b/data/tilesets/secondary/82D4CEC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CEC/palettes/15.pal b/data/tilesets/secondary/82D4CEC/palettes/15.pal new file mode 100644 index 000000000..3bb14e445 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +230 230 205 +205 205 180 +172 172 148 +222 222 222 +156 115 197 +131 172 238 +106 197 106 +197 180 74 +0 0 0 +213 139 57 +238 222 131 +255 255 255 diff --git a/data/tilesets/secondary/82D4CEC/palettes/2.pal b/data/tilesets/secondary/82D4CEC/palettes/2.pal new file mode 100644 index 000000000..cc3a9457d --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4CEC/palettes/3.pal b/data/tilesets/secondary/82D4CEC/palettes/3.pal new file mode 100644 index 000000000..7ec794ae5 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4CEC/palettes/4.pal b/data/tilesets/secondary/82D4CEC/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CEC/palettes/5.pal b/data/tilesets/secondary/82D4CEC/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CEC/palettes/6.pal b/data/tilesets/secondary/82D4CEC/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4CEC/palettes/7.pal b/data/tilesets/secondary/82D4CEC/palettes/7.pal new file mode 100644 index 000000000..b3612e537 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +255 164 115 +255 222 189 +123 164 238 +172 205 238 +213 230 238 +164 255 180 +238 164 0 +139 90 197 +213 156 255 +255 255 148 +255 0 255 diff --git a/data/tilesets/secondary/82D4CEC/palettes/8.pal b/data/tilesets/secondary/82D4CEC/palettes/8.pal new file mode 100644 index 000000000..e58f94305 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 0 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +255 255 123 +205 180 98 +246 230 172 +74 131 197 +139 197 255 +164 255 180 +238 246 246 +164 74 32 +213 115 57 +238 148 98 +255 189 98 diff --git a/data/tilesets/secondary/82D4CEC/palettes/9.pal b/data/tilesets/secondary/82D4CEC/palettes/9.pal new file mode 100644 index 000000000..75f1d81b5 --- /dev/null +++ b/data/tilesets/secondary/82D4CEC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +255 0 255 +255 0 255 +255 255 255 +255 0 255 +131 172 238 +246 230 172 +82 180 172 +32 115 123 +255 148 115 +230 106 90 +90 213 156 +255 189 82 +16 123 255 +131 189 246 diff --git a/data/tilesets/secondary/82D4CEC/tiles.png b/data/tilesets/secondary/82D4CEC/tiles.png new file mode 100644 index 000000000..b5b249d0a Binary files /dev/null and b/data/tilesets/secondary/82D4CEC/tiles.png differ diff --git a/data/tilesets/secondary/82D4D04/metatile_attributes.bin b/data/tilesets/secondary/82D4D04/metatile_attributes.bin new file mode 100644 index 000000000..ead3610f0 Binary files /dev/null and b/data/tilesets/secondary/82D4D04/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4D04/metatiles.bin b/data/tilesets/secondary/82D4D04/metatiles.bin new file mode 100644 index 000000000..7034bb6d6 Binary files /dev/null and b/data/tilesets/secondary/82D4D04/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4D04/palettes/0.pal b/data/tilesets/secondary/82D4D04/palettes/0.pal new file mode 100644 index 000000000..8db07d418 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4D04/palettes/1.pal b/data/tilesets/secondary/82D4D04/palettes/1.pal new file mode 100644 index 000000000..66561f6d3 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4D04/palettes/10.pal b/data/tilesets/secondary/82D4D04/palettes/10.pal new file mode 100644 index 000000000..131aaa71c --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4D04/palettes/11.pal b/data/tilesets/secondary/82D4D04/palettes/11.pal new file mode 100644 index 000000000..131aaa71c --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4D04/palettes/12.pal b/data/tilesets/secondary/82D4D04/palettes/12.pal new file mode 100644 index 000000000..c8dfac7d2 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 131 131 +98 74 49 +131 106 82 +164 139 115 +197 189 139 +148 148 156 +172 172 172 +172 189 115 +205 222 148 +98 131 131 +131 164 164 +164 197 197 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/82D4D04/palettes/13.pal b/data/tilesets/secondary/82D4D04/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D04/palettes/14.pal b/data/tilesets/secondary/82D4D04/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D04/palettes/15.pal b/data/tilesets/secondary/82D4D04/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D04/palettes/2.pal b/data/tilesets/secondary/82D4D04/palettes/2.pal new file mode 100644 index 000000000..87a022102 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4D04/palettes/3.pal b/data/tilesets/secondary/82D4D04/palettes/3.pal new file mode 100644 index 000000000..783496dcd --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/82D4D04/palettes/4.pal b/data/tilesets/secondary/82D4D04/palettes/4.pal new file mode 100644 index 000000000..89eace605 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/82D4D04/palettes/5.pal b/data/tilesets/secondary/82D4D04/palettes/5.pal new file mode 100644 index 000000000..0eef3df8e --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4D04/palettes/6.pal b/data/tilesets/secondary/82D4D04/palettes/6.pal new file mode 100644 index 000000000..1d08ce9a2 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D04/palettes/7.pal b/data/tilesets/secondary/82D4D04/palettes/7.pal new file mode 100644 index 000000000..34c0ddd17 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 131 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/82D4D04/palettes/8.pal b/data/tilesets/secondary/82D4D04/palettes/8.pal new file mode 100644 index 000000000..77e03a48c --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +172 172 164 +222 213 139 +180 172 98 +156 148 82 +213 255 197 +164 230 148 +123 172 148 +148 213 164 +156 74 41 +180 90 65 +213 131 106 +238 164 139 +246 238 205 diff --git a/data/tilesets/secondary/82D4D04/palettes/9.pal b/data/tilesets/secondary/82D4D04/palettes/9.pal new file mode 100644 index 000000000..ef91ae987 --- /dev/null +++ b/data/tilesets/secondary/82D4D04/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +172 172 164 +156 189 131 +222 205 115 +156 148 82 +123 106 57 +74 131 164 +98 172 205 +49 139 49 +106 205 164 +156 148 82 +115 164 106 +205 230 197 +238 255 238 diff --git a/data/tilesets/secondary/82D4D04/tiles.png b/data/tilesets/secondary/82D4D04/tiles.png new file mode 100644 index 000000000..6e97a68a1 Binary files /dev/null and b/data/tilesets/secondary/82D4D04/tiles.png differ diff --git a/data/tilesets/secondary/82D4D1C/metatile_attributes.bin b/data/tilesets/secondary/82D4D1C/metatile_attributes.bin new file mode 100644 index 000000000..84b5e2049 Binary files /dev/null and b/data/tilesets/secondary/82D4D1C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4D1C/metatiles.bin b/data/tilesets/secondary/82D4D1C/metatiles.bin new file mode 100644 index 000000000..c026eb65a Binary files /dev/null and b/data/tilesets/secondary/82D4D1C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4D1C/palettes/0.pal b/data/tilesets/secondary/82D4D1C/palettes/0.pal new file mode 100644 index 000000000..4b44e19f4 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4D1C/palettes/1.pal b/data/tilesets/secondary/82D4D1C/palettes/1.pal new file mode 100644 index 000000000..a39ca6aa8 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4D1C/palettes/10.pal b/data/tilesets/secondary/82D4D1C/palettes/10.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/palettes/11.pal b/data/tilesets/secondary/82D4D1C/palettes/11.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/palettes/12.pal b/data/tilesets/secondary/82D4D1C/palettes/12.pal new file mode 100644 index 000000000..419c00911 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +123 164 172 +222 189 172 +246 213 189 +246 230 180 +255 246 213 +164 189 213 +189 205 230 +222 230 246 +98 123 148 +123 148 172 +148 172 197 +98 98 123 +148 139 131 +205 189 197 +255 255 255 diff --git a/data/tilesets/secondary/82D4D1C/palettes/13.pal b/data/tilesets/secondary/82D4D1C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/palettes/14.pal b/data/tilesets/secondary/82D4D1C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/palettes/15.pal b/data/tilesets/secondary/82D4D1C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/palettes/2.pal b/data/tilesets/secondary/82D4D1C/palettes/2.pal new file mode 100644 index 000000000..5a4f127be --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4D1C/palettes/3.pal b/data/tilesets/secondary/82D4D1C/palettes/3.pal new file mode 100644 index 000000000..c84fa4a58 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4D1C/palettes/4.pal b/data/tilesets/secondary/82D4D1C/palettes/4.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/palettes/5.pal b/data/tilesets/secondary/82D4D1C/palettes/5.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/palettes/6.pal b/data/tilesets/secondary/82D4D1C/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/palettes/7.pal b/data/tilesets/secondary/82D4D1C/palettes/7.pal new file mode 100644 index 000000000..aac016a72 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +156 205 246 +98 156 238 +0 0 0 +0 0 0 +123 164 172 +148 189 197 +172 205 213 +205 222 230 +98 123 148 +123 148 172 +148 172 197 +98 98 123 +148 139 131 +222 205 213 +255 255 255 diff --git a/data/tilesets/secondary/82D4D1C/palettes/8.pal b/data/tilesets/secondary/82D4D1C/palettes/8.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/palettes/9.pal b/data/tilesets/secondary/82D4D1C/palettes/9.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4D1C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D1C/tiles.png b/data/tilesets/secondary/82D4D1C/tiles.png new file mode 100644 index 000000000..44b7c0c34 Binary files /dev/null and b/data/tilesets/secondary/82D4D1C/tiles.png differ diff --git a/data/tilesets/secondary/82D4D34/metatile_attributes.bin b/data/tilesets/secondary/82D4D34/metatile_attributes.bin new file mode 100644 index 000000000..a5e733de0 Binary files /dev/null and b/data/tilesets/secondary/82D4D34/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4D34/metatiles.bin b/data/tilesets/secondary/82D4D34/metatiles.bin new file mode 100644 index 000000000..25a46724b Binary files /dev/null and b/data/tilesets/secondary/82D4D34/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4D34/palettes/0.pal b/data/tilesets/secondary/82D4D34/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4D34/palettes/1.pal b/data/tilesets/secondary/82D4D34/palettes/1.pal new file mode 100644 index 000000000..d99adafff --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4D34/palettes/10.pal b/data/tilesets/secondary/82D4D34/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/palettes/11.pal b/data/tilesets/secondary/82D4D34/palettes/11.pal new file mode 100644 index 000000000..9fa42f21f --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +65 74 106 +90 90 115 +123 123 131 +148 164 180 +172 189 205 +205 222 238 +246 246 255 +255 0 255 +255 0 255 +205 82 65 +255 131 115 +230 172 57 +222 213 0 +222 180 65 +255 222 98 diff --git a/data/tilesets/secondary/82D4D34/palettes/12.pal b/data/tilesets/secondary/82D4D34/palettes/12.pal new file mode 100644 index 000000000..5e2756cc9 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +222 180 65 +238 197 82 +189 148 49 +246 238 164 +213 213 222 +156 156 205 +180 180 246 +82 106 156 +123 148 197 +189 197 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/palettes/13.pal b/data/tilesets/secondary/82D4D34/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/palettes/14.pal b/data/tilesets/secondary/82D4D34/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/palettes/15.pal b/data/tilesets/secondary/82D4D34/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/palettes/2.pal b/data/tilesets/secondary/82D4D34/palettes/2.pal new file mode 100644 index 000000000..cc3a9457d --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4D34/palettes/3.pal b/data/tilesets/secondary/82D4D34/palettes/3.pal new file mode 100644 index 000000000..7ec794ae5 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4D34/palettes/4.pal b/data/tilesets/secondary/82D4D34/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/palettes/5.pal b/data/tilesets/secondary/82D4D34/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/palettes/6.pal b/data/tilesets/secondary/82D4D34/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/palettes/7.pal b/data/tilesets/secondary/82D4D34/palettes/7.pal new file mode 100644 index 000000000..efd64bcc5 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +32 180 230 +172 255 230 +189 189 115 +238 222 164 +255 255 180 +205 82 65 +255 131 115 +189 180 106 +205 197 123 +222 222 148 +164 164 98 diff --git a/data/tilesets/secondary/82D4D34/palettes/8.pal b/data/tilesets/secondary/82D4D34/palettes/8.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/palettes/9.pal b/data/tilesets/secondary/82D4D34/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4D34/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D34/tiles.png b/data/tilesets/secondary/82D4D34/tiles.png new file mode 100644 index 000000000..1baac0893 Binary files /dev/null and b/data/tilesets/secondary/82D4D34/tiles.png differ diff --git a/data/tilesets/secondary/82D4D4C/metatile_attributes.bin b/data/tilesets/secondary/82D4D4C/metatile_attributes.bin new file mode 100644 index 000000000..def1ee695 Binary files /dev/null and b/data/tilesets/secondary/82D4D4C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4D4C/metatiles.bin b/data/tilesets/secondary/82D4D4C/metatiles.bin new file mode 100644 index 000000000..f3f58a44d Binary files /dev/null and b/data/tilesets/secondary/82D4D4C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4D4C/palettes/0.pal b/data/tilesets/secondary/82D4D4C/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4D4C/palettes/1.pal b/data/tilesets/secondary/82D4D4C/palettes/1.pal new file mode 100644 index 000000000..69f3f0b9e --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +180 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/82D4D4C/palettes/10.pal b/data/tilesets/secondary/82D4D4C/palettes/10.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D4C/palettes/11.pal b/data/tilesets/secondary/82D4D4C/palettes/11.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D4C/palettes/12.pal b/data/tilesets/secondary/82D4D4C/palettes/12.pal new file mode 100644 index 000000000..041512724 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +41 123 123 +41 156 156 +49 189 172 +65 230 189 +65 246 230 +106 90 74 +131 106 74 +156 131 65 +172 156 74 +172 156 106 +205 180 106 +222 205 98 +230 222 106 diff --git a/data/tilesets/secondary/82D4D4C/palettes/13.pal b/data/tilesets/secondary/82D4D4C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D4C/palettes/14.pal b/data/tilesets/secondary/82D4D4C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D4C/palettes/15.pal b/data/tilesets/secondary/82D4D4C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D4C/palettes/2.pal b/data/tilesets/secondary/82D4D4C/palettes/2.pal new file mode 100644 index 000000000..330e35b02 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +213 131 82 +156 205 246 +98 156 238 +57 123 222 +222 139 106 +189 98 74 diff --git a/data/tilesets/secondary/82D4D4C/palettes/3.pal b/data/tilesets/secondary/82D4D4C/palettes/3.pal new file mode 100644 index 000000000..eac8236f1 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +148 148 148 +180 180 180 +255 255 255 +238 246 238 +222 238 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D4C/palettes/4.pal b/data/tilesets/secondary/82D4D4C/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D4C/palettes/5.pal b/data/tilesets/secondary/82D4D4C/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D4C/palettes/6.pal b/data/tilesets/secondary/82D4D4C/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D4C/palettes/7.pal b/data/tilesets/secondary/82D4D4C/palettes/7.pal new file mode 100644 index 000000000..9d84ecaba --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +74 156 90 +65 139 139 +115 205 90 +148 238 74 +189 255 98 +156 131 82 +197 115 123 +255 164 123 +238 238 172 +82 115 82 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4D4C/palettes/8.pal b/data/tilesets/secondary/82D4D4C/palettes/8.pal new file mode 100644 index 000000000..085c49344 --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +222 213 246 +238 238 255 +123 156 246 +106 197 255 +131 222 255 +156 230 255 +115 90 98 +189 115 131 +246 189 115 +222 189 246 +255 230 115 +90 98 213 +255 172 197 diff --git a/data/tilesets/secondary/82D4D4C/palettes/9.pal b/data/tilesets/secondary/82D4D4C/palettes/9.pal new file mode 100644 index 000000000..9020b628f --- /dev/null +++ b/data/tilesets/secondary/82D4D4C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 131 57 +213 197 106 +246 238 148 +213 222 238 +222 230 255 +41 106 82 +57 131 115 +172 131 115 +197 156 148 +238 180 164 +180 139 123 diff --git a/data/tilesets/secondary/82D4D4C/tiles.png b/data/tilesets/secondary/82D4D4C/tiles.png new file mode 100644 index 000000000..ef08ccc83 Binary files /dev/null and b/data/tilesets/secondary/82D4D4C/tiles.png differ diff --git a/data/tilesets/secondary/82D4D64/metatile_attributes.bin b/data/tilesets/secondary/82D4D64/metatile_attributes.bin new file mode 100644 index 000000000..ee895c35a Binary files /dev/null and b/data/tilesets/secondary/82D4D64/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4D64/metatiles.bin b/data/tilesets/secondary/82D4D64/metatiles.bin new file mode 100644 index 000000000..e0fdb79fb Binary files /dev/null and b/data/tilesets/secondary/82D4D64/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4D64/palettes/0.pal b/data/tilesets/secondary/82D4D64/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4D64/palettes/1.pal b/data/tilesets/secondary/82D4D64/palettes/1.pal new file mode 100644 index 000000000..3a16a45c7 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/82D4D64/palettes/10.pal b/data/tilesets/secondary/82D4D64/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/11.pal b/data/tilesets/secondary/82D4D64/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/12.pal b/data/tilesets/secondary/82D4D64/palettes/12.pal new file mode 100644 index 000000000..702c67ecb --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 131 +197 189 213 +255 255 255 +148 148 156 +180 139 222 +205 172 246 +222 205 255 +106 123 172 +131 148 197 +156 172 230 +65 205 82 +180 255 197 +246 164 115 +255 230 148 diff --git a/data/tilesets/secondary/82D4D64/palettes/13.pal b/data/tilesets/secondary/82D4D64/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/14.pal b/data/tilesets/secondary/82D4D64/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/15.pal b/data/tilesets/secondary/82D4D64/palettes/15.pal new file mode 100644 index 000000000..92e7ed309 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/2.pal b/data/tilesets/secondary/82D4D64/palettes/2.pal new file mode 100644 index 000000000..c8ee236d7 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +255 0 255 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4D64/palettes/3.pal b/data/tilesets/secondary/82D4D64/palettes/3.pal new file mode 100644 index 000000000..b17dbb054 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +164 164 164 +180 189 189 +255 255 255 +238 246 238 +213 230 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/4.pal b/data/tilesets/secondary/82D4D64/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/5.pal b/data/tilesets/secondary/82D4D64/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/6.pal b/data/tilesets/secondary/82D4D64/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/7.pal b/data/tilesets/secondary/82D4D64/palettes/7.pal new file mode 100644 index 000000000..c66eaedff --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 131 +197 189 213 +255 255 255 +180 123 148 +230 139 230 +255 222 255 +213 213 222 +213 98 65 +246 139 106 +255 0 255 +255 0 255 +255 0 255 +205 246 255 +98 197 238 diff --git a/data/tilesets/secondary/82D4D64/palettes/8.pal b/data/tilesets/secondary/82D4D64/palettes/8.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/palettes/9.pal b/data/tilesets/secondary/82D4D64/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4D64/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D64/tiles.png b/data/tilesets/secondary/82D4D64/tiles.png new file mode 100644 index 000000000..87641a309 Binary files /dev/null and b/data/tilesets/secondary/82D4D64/tiles.png differ diff --git a/data/tilesets/secondary/82D4D7C/metatile_attributes.bin b/data/tilesets/secondary/82D4D7C/metatile_attributes.bin new file mode 100644 index 000000000..1d68a40a4 Binary files /dev/null and b/data/tilesets/secondary/82D4D7C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4D7C/metatiles.bin b/data/tilesets/secondary/82D4D7C/metatiles.bin new file mode 100644 index 000000000..7a5532619 Binary files /dev/null and b/data/tilesets/secondary/82D4D7C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4D7C/palettes/0.pal b/data/tilesets/secondary/82D4D7C/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4D7C/palettes/1.pal b/data/tilesets/secondary/82D4D7C/palettes/1.pal new file mode 100644 index 000000000..69f3f0b9e --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +180 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/82D4D7C/palettes/10.pal b/data/tilesets/secondary/82D4D7C/palettes/10.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/palettes/11.pal b/data/tilesets/secondary/82D4D7C/palettes/11.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/palettes/12.pal b/data/tilesets/secondary/82D4D7C/palettes/12.pal new file mode 100644 index 000000000..3f9aa94d6 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +106 90 82 +148 115 82 +172 131 90 +213 172 90 +230 180 90 +164 90 172 +197 115 205 +230 148 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4D7C/palettes/13.pal b/data/tilesets/secondary/82D4D7C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/palettes/14.pal b/data/tilesets/secondary/82D4D7C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/palettes/15.pal b/data/tilesets/secondary/82D4D7C/palettes/15.pal new file mode 100644 index 000000000..92e7ed309 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/palettes/2.pal b/data/tilesets/secondary/82D4D7C/palettes/2.pal new file mode 100644 index 000000000..330e35b02 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +213 131 82 +156 205 246 +98 156 238 +57 123 222 +222 139 106 +189 98 74 diff --git a/data/tilesets/secondary/82D4D7C/palettes/3.pal b/data/tilesets/secondary/82D4D7C/palettes/3.pal new file mode 100644 index 000000000..eac8236f1 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +148 148 148 +180 180 180 +255 255 255 +238 246 238 +222 238 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/palettes/4.pal b/data/tilesets/secondary/82D4D7C/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/palettes/5.pal b/data/tilesets/secondary/82D4D7C/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/palettes/6.pal b/data/tilesets/secondary/82D4D7C/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/palettes/7.pal b/data/tilesets/secondary/82D4D7C/palettes/7.pal new file mode 100644 index 000000000..5b659ef1b --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +180 156 172 +205 189 189 +230 222 189 +90 115 90 +131 197 115 +205 238 115 +123 82 74 +180 98 98 +255 139 74 +238 246 172 +255 230 74 +106 90 82 +255 0 255 diff --git a/data/tilesets/secondary/82D4D7C/palettes/8.pal b/data/tilesets/secondary/82D4D7C/palettes/8.pal new file mode 100644 index 000000000..f5a4ee678 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +205 189 189 +246 246 255 +148 131 180 +205 189 230 +123 98 255 +82 172 148 +255 98 98 +90 115 90 +131 197 115 +205 238 115 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4D7C/palettes/9.pal b/data/tilesets/secondary/82D4D7C/palettes/9.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D7C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D7C/tiles.png b/data/tilesets/secondary/82D4D7C/tiles.png new file mode 100644 index 000000000..213799158 Binary files /dev/null and b/data/tilesets/secondary/82D4D7C/tiles.png differ diff --git a/data/tilesets/secondary/82D4D94/metatile_attributes.bin b/data/tilesets/secondary/82D4D94/metatile_attributes.bin new file mode 100644 index 000000000..949846f90 Binary files /dev/null and b/data/tilesets/secondary/82D4D94/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4D94/metatiles.bin b/data/tilesets/secondary/82D4D94/metatiles.bin new file mode 100644 index 000000000..a976297b3 Binary files /dev/null and b/data/tilesets/secondary/82D4D94/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4D94/palettes/0.pal b/data/tilesets/secondary/82D4D94/palettes/0.pal new file mode 100644 index 000000000..28232d99e --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4D94/palettes/1.pal b/data/tilesets/secondary/82D4D94/palettes/1.pal new file mode 100644 index 000000000..b43532470 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4D94/palettes/10.pal b/data/tilesets/secondary/82D4D94/palettes/10.pal new file mode 100644 index 000000000..2a1743eaa --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4D94/palettes/11.pal b/data/tilesets/secondary/82D4D94/palettes/11.pal new file mode 100644 index 000000000..307e0ea7e --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4D94/palettes/12.pal b/data/tilesets/secondary/82D4D94/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D94/palettes/13.pal b/data/tilesets/secondary/82D4D94/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D94/palettes/14.pal b/data/tilesets/secondary/82D4D94/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D94/palettes/15.pal b/data/tilesets/secondary/82D4D94/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4D94/palettes/2.pal b/data/tilesets/secondary/82D4D94/palettes/2.pal new file mode 100644 index 000000000..e267ae90e --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4D94/palettes/3.pal b/data/tilesets/secondary/82D4D94/palettes/3.pal new file mode 100644 index 000000000..503f22878 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4D94/palettes/4.pal b/data/tilesets/secondary/82D4D94/palettes/4.pal new file mode 100644 index 000000000..cdf1b6190 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 255 255 +172 222 255 +148 189 238 +106 156 230 +57 148 197 +32 131 172 +82 148 213 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +230 213 148 +238 230 139 +222 197 139 +213 189 106 diff --git a/data/tilesets/secondary/82D4D94/palettes/5.pal b/data/tilesets/secondary/82D4D94/palettes/5.pal new file mode 100644 index 000000000..09555ded5 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4D94/palettes/6.pal b/data/tilesets/secondary/82D4D94/palettes/6.pal new file mode 100644 index 000000000..0dba59a72 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 255 255 +172 222 255 +148 189 238 +106 156 230 +41 90 172 +41 57 148 +74 123 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +230 213 148 +238 230 139 +222 197 139 +213 189 106 diff --git a/data/tilesets/secondary/82D4D94/palettes/7.pal b/data/tilesets/secondary/82D4D94/palettes/7.pal new file mode 100644 index 000000000..e9848a1c0 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +82 82 106 +115 115 139 +148 148 172 +189 189 205 +222 222 230 +255 255 255 +180 180 74 +205 205 98 +255 255 98 +98 98 172 +131 131 213 +164 164 255 +131 98 41 +164 139 82 +205 180 123 diff --git a/data/tilesets/secondary/82D4D94/palettes/8.pal b/data/tilesets/secondary/82D4D94/palettes/8.pal new file mode 100644 index 000000000..b5c80c8f4 --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +90 156 57 +131 180 49 +172 205 49 +197 230 98 +222 255 148 +222 172 98 +255 197 98 +255 222 156 +131 98 41 +164 139 82 +205 180 123 diff --git a/data/tilesets/secondary/82D4D94/palettes/9.pal b/data/tilesets/secondary/82D4D94/palettes/9.pal new file mode 100644 index 000000000..b66b2399a --- /dev/null +++ b/data/tilesets/secondary/82D4D94/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +255 0 255 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +255 0 255 +255 0 255 +255 0 255 +131 98 41 +164 139 82 +205 180 123 diff --git a/data/tilesets/secondary/82D4D94/tiles.png b/data/tilesets/secondary/82D4D94/tiles.png new file mode 100644 index 000000000..280f3e227 Binary files /dev/null and b/data/tilesets/secondary/82D4D94/tiles.png differ diff --git a/data/tilesets/secondary/82D4DAC/metatile_attributes.bin b/data/tilesets/secondary/82D4DAC/metatile_attributes.bin new file mode 100644 index 000000000..1b1cb4d44 Binary files /dev/null and b/data/tilesets/secondary/82D4DAC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4DAC/metatiles.bin b/data/tilesets/secondary/82D4DAC/metatiles.bin new file mode 100644 index 000000000..c15edf653 Binary files /dev/null and b/data/tilesets/secondary/82D4DAC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4DAC/palettes/0.pal b/data/tilesets/secondary/82D4DAC/palettes/0.pal new file mode 100644 index 000000000..0fd74602e --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +255 255 255 +222 230 238 +189 205 230 +156 180 222 +131 131 139 +98 98 123 +65 74 106 +189 189 131 +115 189 246 +98 172 238 +115 189 246 +98 164 222 +82 139 197 +74 115 172 +115 197 164 diff --git a/data/tilesets/secondary/82D4DAC/palettes/1.pal b/data/tilesets/secondary/82D4DAC/palettes/1.pal new file mode 100644 index 000000000..3c6e40c2e --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +255 255 255 +222 230 238 +189 205 230 +156 180 222 +131 131 139 +98 98 123 +65 74 106 +41 49 90 +115 189 246 +98 172 238 +255 189 131 +238 148 115 +222 106 98 +205 65 82 +115 197 164 diff --git a/data/tilesets/secondary/82D4DAC/palettes/10.pal b/data/tilesets/secondary/82D4DAC/palettes/10.pal new file mode 100644 index 000000000..cd86ca4ae --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +82 82 106 +148 148 164 +205 189 197 +255 255 255 +222 213 230 +189 172 180 +255 205 106 +230 189 106 +205 156 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +57 139 49 +106 106 123 diff --git a/data/tilesets/secondary/82D4DAC/palettes/11.pal b/data/tilesets/secondary/82D4DAC/palettes/11.pal new file mode 100644 index 000000000..ec8e2f42d --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 74 98 +106 106 115 +0 0 0 +0 0 0 +148 106 57 +189 139 57 +213 189 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DAC/palettes/12.pal b/data/tilesets/secondary/82D4DAC/palettes/12.pal new file mode 100644 index 000000000..5caa038ad --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 255 255 +213 222 246 +164 172 222 +98 98 123 +65 74 106 +238 213 205 +222 172 164 +205 131 123 +189 98 82 +222 222 222 +172 180 189 +139 148 164 +106 123 123 +222 74 0 +213 213 57 diff --git a/data/tilesets/secondary/82D4DAC/palettes/13.pal b/data/tilesets/secondary/82D4DAC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DAC/palettes/14.pal b/data/tilesets/secondary/82D4DAC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DAC/palettes/15.pal b/data/tilesets/secondary/82D4DAC/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DAC/palettes/2.pal b/data/tilesets/secondary/82D4DAC/palettes/2.pal new file mode 100644 index 000000000..4c41030f6 --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +180 255 131 +131 197 98 +57 139 49 +57 82 0 +222 148 115 +106 90 90 +164 98 90 +65 57 49 +255 197 148 +222 106 98 +205 65 82 +164 213 197 +115 197 164 +65 180 131 +24 164 106 diff --git a/data/tilesets/secondary/82D4DAC/palettes/3.pal b/data/tilesets/secondary/82D4DAC/palettes/3.pal new file mode 100644 index 000000000..5665ddc22 --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +255 255 255 +213 213 213 +189 189 189 +164 164 164 +131 131 139 +65 180 131 +164 213 197 +65 49 65 +238 213 205 +222 180 164 +189 148 139 +156 115 115 +131 90 90 +98 65 82 +115 197 164 diff --git a/data/tilesets/secondary/82D4DAC/palettes/4.pal b/data/tilesets/secondary/82D4DAC/palettes/4.pal new file mode 100644 index 000000000..d8051b7ba --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +255 255 255 +222 230 238 +255 0 255 +255 0 255 +255 0 255 +156 164 189 +82 106 213 +65 90 189 +57 82 156 +41 65 139 +172 197 230 +139 164 222 +106 131 213 +82 106 213 +115 197 164 diff --git a/data/tilesets/secondary/82D4DAC/palettes/5.pal b/data/tilesets/secondary/82D4DAC/palettes/5.pal new file mode 100644 index 000000000..4e684594c --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +255 255 255 +222 230 238 +189 205 230 +156 180 222 +131 131 139 +98 98 123 +65 74 106 +41 49 90 +131 197 246 +106 180 222 +238 230 164 +222 205 131 +213 180 106 +205 156 82 +115 197 164 diff --git a/data/tilesets/secondary/82D4DAC/palettes/6.pal b/data/tilesets/secondary/82D4DAC/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DAC/palettes/7.pal b/data/tilesets/secondary/82D4DAC/palettes/7.pal new file mode 100644 index 000000000..2064b3bd2 --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 255 255 +238 222 172 +230 156 98 +197 90 65 +65 74 106 +106 106 123 +131 90 49 +90 65 49 +57 57 57 +222 222 197 +172 180 148 +131 148 115 +106 123 65 +156 205 230 +156 156 156 diff --git a/data/tilesets/secondary/82D4DAC/palettes/8.pal b/data/tilesets/secondary/82D4DAC/palettes/8.pal new file mode 100644 index 000000000..42a3483c0 --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 255 255 +213 222 246 +131 131 139 +98 98 123 +65 74 106 +164 205 189 +139 180 172 +115 156 139 +98 139 131 +189 172 180 +156 139 148 +230 106 57 +205 49 24 +148 57 24 +0 0 0 diff --git a/data/tilesets/secondary/82D4DAC/palettes/9.pal b/data/tilesets/secondary/82D4DAC/palettes/9.pal new file mode 100644 index 000000000..b06dfbda7 --- /dev/null +++ b/data/tilesets/secondary/82D4DAC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 255 255 +213 222 246 +164 172 222 +98 98 123 +65 74 106 +98 98 123 +65 74 106 +115 123 164 +49 49 74 +189 238 180 +106 222 115 +74 180 98 +57 131 82 +131 197 230 +98 156 172 diff --git a/data/tilesets/secondary/82D4DAC/tiles.png b/data/tilesets/secondary/82D4DAC/tiles.png new file mode 100644 index 000000000..c00ba0d61 Binary files /dev/null and b/data/tilesets/secondary/82D4DAC/tiles.png differ diff --git a/data/tilesets/secondary/82D4DC4/metatile_attributes.bin b/data/tilesets/secondary/82D4DC4/metatile_attributes.bin new file mode 100644 index 000000000..990d6861c Binary files /dev/null and b/data/tilesets/secondary/82D4DC4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4DC4/metatiles.bin b/data/tilesets/secondary/82D4DC4/metatiles.bin new file mode 100644 index 000000000..cd0bd5f53 Binary files /dev/null and b/data/tilesets/secondary/82D4DC4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4DC4/palettes/0.pal b/data/tilesets/secondary/82D4DC4/palettes/0.pal new file mode 100644 index 000000000..7af5bb7d2 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4DC4/palettes/1.pal b/data/tilesets/secondary/82D4DC4/palettes/1.pal new file mode 100644 index 000000000..391d1e3d1 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/82D4DC4/palettes/10.pal b/data/tilesets/secondary/82D4DC4/palettes/10.pal new file mode 100644 index 000000000..746437492 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +222 230 246 +189 197 222 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +49 139 49 +57 82 0 +49 180 98 +238 230 164 +222 205 131 +213 180 106 +205 156 82 +106 205 164 diff --git a/data/tilesets/secondary/82D4DC4/palettes/11.pal b/data/tilesets/secondary/82D4DC4/palettes/11.pal new file mode 100644 index 000000000..410d5193a --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4DC4/palettes/12.pal b/data/tilesets/secondary/82D4DC4/palettes/12.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DC4/palettes/13.pal b/data/tilesets/secondary/82D4DC4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DC4/palettes/14.pal b/data/tilesets/secondary/82D4DC4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DC4/palettes/15.pal b/data/tilesets/secondary/82D4DC4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DC4/palettes/2.pal b/data/tilesets/secondary/82D4DC4/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4DC4/palettes/3.pal b/data/tilesets/secondary/82D4DC4/palettes/3.pal new file mode 100644 index 000000000..9581f2cd8 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4DC4/palettes/4.pal b/data/tilesets/secondary/82D4DC4/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4DC4/palettes/5.pal b/data/tilesets/secondary/82D4DC4/palettes/5.pal new file mode 100644 index 000000000..3a2db72a7 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4DC4/palettes/6.pal b/data/tilesets/secondary/82D4DC4/palettes/6.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4DC4/palettes/7.pal b/data/tilesets/secondary/82D4DC4/palettes/7.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DC4/palettes/8.pal b/data/tilesets/secondary/82D4DC4/palettes/8.pal new file mode 100644 index 000000000..650a35cc8 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +57 115 24 +98 65 74 +131 106 82 +65 57 49 +255 0 255 +255 0 255 +255 0 255 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4DC4/palettes/9.pal b/data/tilesets/secondary/82D4DC4/palettes/9.pal new file mode 100644 index 000000000..df2d04037 --- /dev/null +++ b/data/tilesets/secondary/82D4DC4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 230 189 +57 172 131 +222 230 246 +230 172 123 +106 205 164 diff --git a/data/tilesets/secondary/82D4DC4/tiles.png b/data/tilesets/secondary/82D4DC4/tiles.png new file mode 100644 index 000000000..451eb8d5a Binary files /dev/null and b/data/tilesets/secondary/82D4DC4/tiles.png differ diff --git a/data/tilesets/secondary/82D4DDC/metatile_attributes.bin b/data/tilesets/secondary/82D4DDC/metatile_attributes.bin new file mode 100644 index 000000000..3549eaa93 Binary files /dev/null and b/data/tilesets/secondary/82D4DDC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4DDC/metatiles.bin b/data/tilesets/secondary/82D4DDC/metatiles.bin new file mode 100644 index 000000000..ea1398be3 Binary files /dev/null and b/data/tilesets/secondary/82D4DDC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4DDC/palettes/0.pal b/data/tilesets/secondary/82D4DDC/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4DDC/palettes/1.pal b/data/tilesets/secondary/82D4DDC/palettes/1.pal new file mode 100644 index 000000000..d99adafff --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4DDC/palettes/10.pal b/data/tilesets/secondary/82D4DDC/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DDC/palettes/11.pal b/data/tilesets/secondary/82D4DDC/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DDC/palettes/12.pal b/data/tilesets/secondary/82D4DDC/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DDC/palettes/13.pal b/data/tilesets/secondary/82D4DDC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DDC/palettes/14.pal b/data/tilesets/secondary/82D4DDC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DDC/palettes/15.pal b/data/tilesets/secondary/82D4DDC/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DDC/palettes/2.pal b/data/tilesets/secondary/82D4DDC/palettes/2.pal new file mode 100644 index 000000000..cc3a9457d --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4DDC/palettes/3.pal b/data/tilesets/secondary/82D4DDC/palettes/3.pal new file mode 100644 index 000000000..7ec794ae5 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4DDC/palettes/4.pal b/data/tilesets/secondary/82D4DDC/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DDC/palettes/5.pal b/data/tilesets/secondary/82D4DDC/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DDC/palettes/6.pal b/data/tilesets/secondary/82D4DDC/palettes/6.pal new file mode 100644 index 000000000..2903bb074 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +189 164 82 +222 197 106 +230 222 156 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 +213 131 65 +222 230 222 +246 238 189 diff --git a/data/tilesets/secondary/82D4DDC/palettes/7.pal b/data/tilesets/secondary/82D4DDC/palettes/7.pal new file mode 100644 index 000000000..c62a40b0d --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +148 172 139 +180 197 164 +213 222 197 +238 255 213 +115 156 180 +197 222 238 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4DDC/palettes/8.pal b/data/tilesets/secondary/82D4DDC/palettes/8.pal new file mode 100644 index 000000000..8c66b4998 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +230 222 156 +189 98 74 +230 156 98 +213 205 156 +115 156 180 +246 238 189 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4DDC/palettes/9.pal b/data/tilesets/secondary/82D4DDC/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4DDC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DDC/tiles.png b/data/tilesets/secondary/82D4DDC/tiles.png new file mode 100644 index 000000000..6d376f447 Binary files /dev/null and b/data/tilesets/secondary/82D4DDC/tiles.png differ diff --git a/data/tilesets/secondary/82D4DF4/metatile_attributes.bin b/data/tilesets/secondary/82D4DF4/metatile_attributes.bin new file mode 100644 index 000000000..96ef6a853 Binary files /dev/null and b/data/tilesets/secondary/82D4DF4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4DF4/metatiles.bin b/data/tilesets/secondary/82D4DF4/metatiles.bin new file mode 100644 index 000000000..0ee478c87 Binary files /dev/null and b/data/tilesets/secondary/82D4DF4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4DF4/palettes/0.pal b/data/tilesets/secondary/82D4DF4/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4DF4/palettes/1.pal b/data/tilesets/secondary/82D4DF4/palettes/1.pal new file mode 100644 index 000000000..d8a4e7757 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4DF4/palettes/10.pal b/data/tilesets/secondary/82D4DF4/palettes/10.pal new file mode 100644 index 000000000..4235579fc --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +238 238 180 +230 213 123 +205 180 98 +156 156 115 +197 230 230 +180 213 213 +172 189 197 +131 156 156 +90 115 115 +74 82 82 +49 57 57 diff --git a/data/tilesets/secondary/82D4DF4/palettes/11.pal b/data/tilesets/secondary/82D4DF4/palettes/11.pal new file mode 100644 index 000000000..277172976 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +205 189 115 +172 172 115 +156 156 115 +131 131 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 156 98 +148 139 98 +115 123 98 diff --git a/data/tilesets/secondary/82D4DF4/palettes/12.pal b/data/tilesets/secondary/82D4DF4/palettes/12.pal new file mode 100644 index 000000000..2fa21e9fb --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4DF4/palettes/13.pal b/data/tilesets/secondary/82D4DF4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DF4/palettes/14.pal b/data/tilesets/secondary/82D4DF4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DF4/palettes/15.pal b/data/tilesets/secondary/82D4DF4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DF4/palettes/2.pal b/data/tilesets/secondary/82D4DF4/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4DF4/palettes/3.pal b/data/tilesets/secondary/82D4DF4/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4DF4/palettes/4.pal b/data/tilesets/secondary/82D4DF4/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4DF4/palettes/5.pal b/data/tilesets/secondary/82D4DF4/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4DF4/palettes/6.pal b/data/tilesets/secondary/82D4DF4/palettes/6.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DF4/palettes/7.pal b/data/tilesets/secondary/82D4DF4/palettes/7.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4DF4/palettes/8.pal b/data/tilesets/secondary/82D4DF4/palettes/8.pal new file mode 100644 index 000000000..34a637b1a --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +205 189 115 +172 172 115 +156 156 115 +131 131 115 +98 106 90 +255 0 255 +255 0 255 +255 0 255 +197 230 230 +180 213 213 +172 189 197 +131 156 156 +90 115 115 +74 82 82 +49 57 57 diff --git a/data/tilesets/secondary/82D4DF4/palettes/9.pal b/data/tilesets/secondary/82D4DF4/palettes/9.pal new file mode 100644 index 000000000..f10a94f7c --- /dev/null +++ b/data/tilesets/secondary/82D4DF4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +205 189 115 +172 172 115 +156 156 115 +131 131 115 +238 222 123 +255 0 255 +222 180 57 +189 148 57 +148 115 74 +106 106 82 +74 74 74 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/82D4DF4/tiles.png b/data/tilesets/secondary/82D4DF4/tiles.png new file mode 100644 index 000000000..cb4078fa9 Binary files /dev/null and b/data/tilesets/secondary/82D4DF4/tiles.png differ diff --git a/data/tilesets/secondary/82D4E0C/metatile_attributes.bin b/data/tilesets/secondary/82D4E0C/metatile_attributes.bin new file mode 100644 index 000000000..2b24a5266 Binary files /dev/null and b/data/tilesets/secondary/82D4E0C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4E0C/metatiles.bin b/data/tilesets/secondary/82D4E0C/metatiles.bin new file mode 100644 index 000000000..37ef8fe34 Binary files /dev/null and b/data/tilesets/secondary/82D4E0C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4E0C/palettes/0.pal b/data/tilesets/secondary/82D4E0C/palettes/0.pal new file mode 100644 index 000000000..a3fab1c2f --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4E0C/palettes/1.pal b/data/tilesets/secondary/82D4E0C/palettes/1.pal new file mode 100644 index 000000000..d8a4e7757 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4E0C/palettes/10.pal b/data/tilesets/secondary/82D4E0C/palettes/10.pal new file mode 100644 index 000000000..5ccabc5a0 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 180 +222 205 148 +197 172 123 +172 139 90 +222 222 156 +189 189 123 +148 148 106 +115 106 90 +82 74 65 +57 49 41 +65 65 74 diff --git a/data/tilesets/secondary/82D4E0C/palettes/11.pal b/data/tilesets/secondary/82D4E0C/palettes/11.pal new file mode 100644 index 000000000..fa0038726 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 172 123 +172 139 90 +148 106 65 +123 74 41 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +230 222 164 +213 197 131 +197 172 106 +172 148 74 diff --git a/data/tilesets/secondary/82D4E0C/palettes/12.pal b/data/tilesets/secondary/82D4E0C/palettes/12.pal new file mode 100644 index 000000000..c19d59bd0 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +180 180 98 +164 164 74 +139 139 49 +123 115 41 +255 238 180 +222 205 148 +197 172 123 +172 139 90 +222 222 156 +189 189 123 +148 148 82 +115 106 49 +90 82 41 +57 49 41 +65 65 74 diff --git a/data/tilesets/secondary/82D4E0C/palettes/13.pal b/data/tilesets/secondary/82D4E0C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E0C/palettes/14.pal b/data/tilesets/secondary/82D4E0C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E0C/palettes/15.pal b/data/tilesets/secondary/82D4E0C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E0C/palettes/2.pal b/data/tilesets/secondary/82D4E0C/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4E0C/palettes/3.pal b/data/tilesets/secondary/82D4E0C/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4E0C/palettes/4.pal b/data/tilesets/secondary/82D4E0C/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4E0C/palettes/5.pal b/data/tilesets/secondary/82D4E0C/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4E0C/palettes/6.pal b/data/tilesets/secondary/82D4E0C/palettes/6.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E0C/palettes/7.pal b/data/tilesets/secondary/82D4E0C/palettes/7.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E0C/palettes/8.pal b/data/tilesets/secondary/82D4E0C/palettes/8.pal new file mode 100644 index 000000000..74cbc54c6 --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 172 123 +172 139 90 +148 106 65 +123 74 41 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 222 156 +189 189 123 +148 148 106 +115 106 90 +82 74 65 +57 49 41 +65 65 74 diff --git a/data/tilesets/secondary/82D4E0C/palettes/9.pal b/data/tilesets/secondary/82D4E0C/palettes/9.pal new file mode 100644 index 000000000..def7acffc --- /dev/null +++ b/data/tilesets/secondary/82D4E0C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 172 123 +172 139 90 +148 106 65 +123 74 41 +164 180 230 +139 156 222 +98 106 139 +65 65 57 +255 0 255 +255 0 255 +65 65 74 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/82D4E0C/tiles.png b/data/tilesets/secondary/82D4E0C/tiles.png new file mode 100644 index 000000000..77b767b79 Binary files /dev/null and b/data/tilesets/secondary/82D4E0C/tiles.png differ diff --git a/data/tilesets/secondary/82D4E24/metatile_attributes.bin b/data/tilesets/secondary/82D4E24/metatile_attributes.bin new file mode 100644 index 000000000..87564066c Binary files /dev/null and b/data/tilesets/secondary/82D4E24/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4E24/metatiles.bin b/data/tilesets/secondary/82D4E24/metatiles.bin new file mode 100644 index 000000000..8f8bd569b Binary files /dev/null and b/data/tilesets/secondary/82D4E24/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4E24/palettes/0.pal b/data/tilesets/secondary/82D4E24/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4E24/palettes/1.pal b/data/tilesets/secondary/82D4E24/palettes/1.pal new file mode 100644 index 000000000..d8a4e7757 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4E24/palettes/10.pal b/data/tilesets/secondary/82D4E24/palettes/10.pal new file mode 100644 index 000000000..7116e91ff --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +238 238 180 +238 222 148 +189 222 156 +205 230 238 +238 238 246 +180 205 238 +123 180 230 +90 156 197 +98 123 172 +82 98 131 +65 74 82 diff --git a/data/tilesets/secondary/82D4E24/palettes/11.pal b/data/tilesets/secondary/82D4E24/palettes/11.pal new file mode 100644 index 000000000..b237ef1c8 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 213 230 +189 197 230 +172 180 213 +148 156 172 +156 238 255 +164 246 255 +213 255 255 +106 230 255 +41 205 255 +32 131 255 +32 82 197 +32 74 131 +205 230 172 +189 213 172 +0 0 0 diff --git a/data/tilesets/secondary/82D4E24/palettes/12.pal b/data/tilesets/secondary/82D4E24/palettes/12.pal new file mode 100644 index 000000000..ed56edee1 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4E24/palettes/13.pal b/data/tilesets/secondary/82D4E24/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E24/palettes/14.pal b/data/tilesets/secondary/82D4E24/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E24/palettes/15.pal b/data/tilesets/secondary/82D4E24/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E24/palettes/2.pal b/data/tilesets/secondary/82D4E24/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4E24/palettes/3.pal b/data/tilesets/secondary/82D4E24/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4E24/palettes/4.pal b/data/tilesets/secondary/82D4E24/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4E24/palettes/5.pal b/data/tilesets/secondary/82D4E24/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4E24/palettes/6.pal b/data/tilesets/secondary/82D4E24/palettes/6.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E24/palettes/7.pal b/data/tilesets/secondary/82D4E24/palettes/7.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E24/palettes/8.pal b/data/tilesets/secondary/82D4E24/palettes/8.pal new file mode 100644 index 000000000..d96f3f0fc --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 213 230 +189 197 230 +172 180 213 +148 156 172 +156 238 255 +164 246 255 +213 255 255 +205 230 238 +238 238 246 +180 205 238 +123 180 230 +90 156 197 +98 123 172 +82 98 131 +65 74 82 diff --git a/data/tilesets/secondary/82D4E24/palettes/9.pal b/data/tilesets/secondary/82D4E24/palettes/9.pal new file mode 100644 index 000000000..1a1dc881b --- /dev/null +++ b/data/tilesets/secondary/82D4E24/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 213 230 +189 197 230 +172 180 213 +148 156 172 +255 238 164 +238 230 139 +230 205 90 +197 172 74 +156 123 57 +106 82 115 +65 57 74 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/82D4E24/tiles.png b/data/tilesets/secondary/82D4E24/tiles.png new file mode 100644 index 000000000..e085d8e33 Binary files /dev/null and b/data/tilesets/secondary/82D4E24/tiles.png differ diff --git a/data/tilesets/secondary/82D4E3C/metatile_attributes.bin b/data/tilesets/secondary/82D4E3C/metatile_attributes.bin new file mode 100644 index 000000000..3549eaa93 Binary files /dev/null and b/data/tilesets/secondary/82D4E3C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4E3C/metatiles.bin b/data/tilesets/secondary/82D4E3C/metatiles.bin new file mode 100644 index 000000000..ea1398be3 Binary files /dev/null and b/data/tilesets/secondary/82D4E3C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4E3C/palettes/0.pal b/data/tilesets/secondary/82D4E3C/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4E3C/palettes/1.pal b/data/tilesets/secondary/82D4E3C/palettes/1.pal new file mode 100644 index 000000000..d99adafff --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4E3C/palettes/10.pal b/data/tilesets/secondary/82D4E3C/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E3C/palettes/11.pal b/data/tilesets/secondary/82D4E3C/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E3C/palettes/12.pal b/data/tilesets/secondary/82D4E3C/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E3C/palettes/13.pal b/data/tilesets/secondary/82D4E3C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E3C/palettes/14.pal b/data/tilesets/secondary/82D4E3C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E3C/palettes/15.pal b/data/tilesets/secondary/82D4E3C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E3C/palettes/2.pal b/data/tilesets/secondary/82D4E3C/palettes/2.pal new file mode 100644 index 000000000..cc3a9457d --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4E3C/palettes/3.pal b/data/tilesets/secondary/82D4E3C/palettes/3.pal new file mode 100644 index 000000000..7ec794ae5 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E3C/palettes/4.pal b/data/tilesets/secondary/82D4E3C/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E3C/palettes/5.pal b/data/tilesets/secondary/82D4E3C/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E3C/palettes/6.pal b/data/tilesets/secondary/82D4E3C/palettes/6.pal new file mode 100644 index 000000000..2903bb074 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +189 164 82 +222 197 106 +230 222 156 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 +213 131 65 +222 230 222 +246 238 189 diff --git a/data/tilesets/secondary/82D4E3C/palettes/7.pal b/data/tilesets/secondary/82D4E3C/palettes/7.pal new file mode 100644 index 000000000..c62a40b0d --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +148 172 139 +180 197 164 +213 222 197 +238 255 213 +115 156 180 +197 222 238 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E3C/palettes/8.pal b/data/tilesets/secondary/82D4E3C/palettes/8.pal new file mode 100644 index 000000000..8c66b4998 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +230 222 156 +189 98 74 +230 156 98 +213 205 156 +115 156 180 +246 238 189 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E3C/palettes/9.pal b/data/tilesets/secondary/82D4E3C/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4E3C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E3C/tiles.png b/data/tilesets/secondary/82D4E3C/tiles.png new file mode 100644 index 000000000..6d376f447 Binary files /dev/null and b/data/tilesets/secondary/82D4E3C/tiles.png differ diff --git a/data/tilesets/secondary/82D4E54/metatile_attributes.bin b/data/tilesets/secondary/82D4E54/metatile_attributes.bin new file mode 100644 index 000000000..45b5bef90 Binary files /dev/null and b/data/tilesets/secondary/82D4E54/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4E54/metatiles.bin b/data/tilesets/secondary/82D4E54/metatiles.bin new file mode 100644 index 000000000..249addbc7 Binary files /dev/null and b/data/tilesets/secondary/82D4E54/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4E54/palettes/0.pal b/data/tilesets/secondary/82D4E54/palettes/0.pal new file mode 100644 index 000000000..a3fab1c2f --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4E54/palettes/1.pal b/data/tilesets/secondary/82D4E54/palettes/1.pal new file mode 100644 index 000000000..d8a4e7757 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4E54/palettes/10.pal b/data/tilesets/secondary/82D4E54/palettes/10.pal new file mode 100644 index 000000000..eb9198b0a --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 180 +230 205 164 +189 180 164 +172 164 156 +205 246 172 +172 213 148 +139 180 131 +115 156 106 +82 123 90 +57 98 74 +65 65 74 diff --git a/data/tilesets/secondary/82D4E54/palettes/11.pal b/data/tilesets/secondary/82D4E54/palettes/11.pal new file mode 100644 index 000000000..9afe8750d --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 205 222 +172 180 197 +156 164 180 +115 123 139 +148 156 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +123 189 156 +106 156 139 +98 123 123 +90 98 115 diff --git a/data/tilesets/secondary/82D4E54/palettes/12.pal b/data/tilesets/secondary/82D4E54/palettes/12.pal new file mode 100644 index 000000000..aced117f7 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 205 222 +197 205 222 +172 180 197 +156 164 180 +115 123 139 +238 238 164 +205 205 106 +172 172 90 +123 131 74 +115 123 139 +82 90 32 +65 65 74 +16 16 24 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E54/palettes/13.pal b/data/tilesets/secondary/82D4E54/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E54/palettes/14.pal b/data/tilesets/secondary/82D4E54/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E54/palettes/15.pal b/data/tilesets/secondary/82D4E54/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E54/palettes/2.pal b/data/tilesets/secondary/82D4E54/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4E54/palettes/3.pal b/data/tilesets/secondary/82D4E54/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4E54/palettes/4.pal b/data/tilesets/secondary/82D4E54/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4E54/palettes/5.pal b/data/tilesets/secondary/82D4E54/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4E54/palettes/6.pal b/data/tilesets/secondary/82D4E54/palettes/6.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E54/palettes/7.pal b/data/tilesets/secondary/82D4E54/palettes/7.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E54/palettes/8.pal b/data/tilesets/secondary/82D4E54/palettes/8.pal new file mode 100644 index 000000000..db2216a05 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 205 222 +172 180 197 +156 164 180 +115 123 139 +148 156 164 +255 0 255 +255 0 255 +255 0 255 +205 246 172 +172 213 148 +139 180 131 +115 156 106 +82 123 90 +57 98 74 +65 65 74 diff --git a/data/tilesets/secondary/82D4E54/palettes/9.pal b/data/tilesets/secondary/82D4E54/palettes/9.pal new file mode 100644 index 000000000..c1a5d4f29 --- /dev/null +++ b/data/tilesets/secondary/82D4E54/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 205 222 +197 205 222 +172 180 197 +156 164 180 +115 123 139 +255 246 164 +205 189 106 +156 131 57 +82 74 32 +90 106 115 +255 0 255 +65 65 74 +16 16 24 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/82D4E54/tiles.png b/data/tilesets/secondary/82D4E54/tiles.png new file mode 100644 index 000000000..d53a0cf17 Binary files /dev/null and b/data/tilesets/secondary/82D4E54/tiles.png differ diff --git a/data/tilesets/secondary/82D4E6C/metatile_attributes.bin b/data/tilesets/secondary/82D4E6C/metatile_attributes.bin new file mode 100644 index 000000000..5eca0b5c7 Binary files /dev/null and b/data/tilesets/secondary/82D4E6C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4E6C/metatiles.bin b/data/tilesets/secondary/82D4E6C/metatiles.bin new file mode 100644 index 000000000..053045190 Binary files /dev/null and b/data/tilesets/secondary/82D4E6C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4E6C/palettes/0.pal b/data/tilesets/secondary/82D4E6C/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4E6C/palettes/1.pal b/data/tilesets/secondary/82D4E6C/palettes/1.pal new file mode 100644 index 000000000..30be2fbe3 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4E6C/palettes/10.pal b/data/tilesets/secondary/82D4E6C/palettes/10.pal new file mode 100644 index 000000000..c6e769ccc --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 222 156 +82 82 106 +131 131 131 +57 106 82 +41 156 98 +90 205 115 +197 172 90 +156 131 82 +213 205 106 +230 197 238 +180 189 164 +213 222 189 +156 172 172 +205 180 213 +189 197 213 +230 246 238 diff --git a/data/tilesets/secondary/82D4E6C/palettes/11.pal b/data/tilesets/secondary/82D4E6C/palettes/11.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E6C/palettes/12.pal b/data/tilesets/secondary/82D4E6C/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E6C/palettes/13.pal b/data/tilesets/secondary/82D4E6C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E6C/palettes/14.pal b/data/tilesets/secondary/82D4E6C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E6C/palettes/15.pal b/data/tilesets/secondary/82D4E6C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E6C/palettes/2.pal b/data/tilesets/secondary/82D4E6C/palettes/2.pal new file mode 100644 index 000000000..cc3a9457d --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4E6C/palettes/3.pal b/data/tilesets/secondary/82D4E6C/palettes/3.pal new file mode 100644 index 000000000..7ec794ae5 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E6C/palettes/4.pal b/data/tilesets/secondary/82D4E6C/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E6C/palettes/5.pal b/data/tilesets/secondary/82D4E6C/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E6C/palettes/6.pal b/data/tilesets/secondary/82D4E6C/palettes/6.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E6C/palettes/7.pal b/data/tilesets/secondary/82D4E6C/palettes/7.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E6C/palettes/8.pal b/data/tilesets/secondary/82D4E6C/palettes/8.pal new file mode 100644 index 000000000..18480092b --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 222 156 +82 82 106 +115 123 131 +98 90 65 +139 123 82 +197 172 90 +230 230 238 +205 115 74 +238 172 82 +238 213 82 +131 189 57 +164 222 82 +156 139 172 +205 172 222 +213 205 230 +246 255 255 diff --git a/data/tilesets/secondary/82D4E6C/palettes/9.pal b/data/tilesets/secondary/82D4E6C/palettes/9.pal new file mode 100644 index 000000000..dd18b9d07 --- /dev/null +++ b/data/tilesets/secondary/82D4E6C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 222 156 +82 82 106 +131 131 131 +172 123 82 +205 131 65 +213 148 65 +205 148 82 +238 164 82 +238 180 82 +148 106 74 +189 197 213 +222 230 230 +156 172 172 +90 131 238 +106 164 255 +156 189 255 diff --git a/data/tilesets/secondary/82D4E6C/tiles.png b/data/tilesets/secondary/82D4E6C/tiles.png new file mode 100644 index 000000000..421932118 Binary files /dev/null and b/data/tilesets/secondary/82D4E6C/tiles.png differ diff --git a/data/tilesets/secondary/82D4E84/metatile_attributes.bin b/data/tilesets/secondary/82D4E84/metatile_attributes.bin new file mode 100644 index 000000000..18d7517d9 Binary files /dev/null and b/data/tilesets/secondary/82D4E84/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4E84/metatiles.bin b/data/tilesets/secondary/82D4E84/metatiles.bin new file mode 100644 index 000000000..0943dc7af Binary files /dev/null and b/data/tilesets/secondary/82D4E84/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4E84/palettes/0.pal b/data/tilesets/secondary/82D4E84/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4E84/palettes/1.pal b/data/tilesets/secondary/82D4E84/palettes/1.pal new file mode 100644 index 000000000..d99adafff --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4E84/palettes/10.pal b/data/tilesets/secondary/82D4E84/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E84/palettes/11.pal b/data/tilesets/secondary/82D4E84/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E84/palettes/12.pal b/data/tilesets/secondary/82D4E84/palettes/12.pal new file mode 100644 index 000000000..2903bb074 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +189 164 82 +222 197 106 +230 222 156 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 +213 131 65 +222 230 222 +246 238 189 diff --git a/data/tilesets/secondary/82D4E84/palettes/13.pal b/data/tilesets/secondary/82D4E84/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E84/palettes/14.pal b/data/tilesets/secondary/82D4E84/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E84/palettes/15.pal b/data/tilesets/secondary/82D4E84/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E84/palettes/2.pal b/data/tilesets/secondary/82D4E84/palettes/2.pal new file mode 100644 index 000000000..cc3a9457d --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4E84/palettes/3.pal b/data/tilesets/secondary/82D4E84/palettes/3.pal new file mode 100644 index 000000000..7ec794ae5 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E84/palettes/4.pal b/data/tilesets/secondary/82D4E84/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E84/palettes/5.pal b/data/tilesets/secondary/82D4E84/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E84/palettes/6.pal b/data/tilesets/secondary/82D4E84/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E84/palettes/7.pal b/data/tilesets/secondary/82D4E84/palettes/7.pal new file mode 100644 index 000000000..c62a40b0d --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +148 172 139 +180 197 164 +213 222 197 +238 255 213 +115 156 180 +197 222 238 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E84/palettes/8.pal b/data/tilesets/secondary/82D4E84/palettes/8.pal new file mode 100644 index 000000000..8c66b4998 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +230 222 156 +189 98 74 +230 156 98 +213 205 156 +115 156 180 +246 238 189 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E84/palettes/9.pal b/data/tilesets/secondary/82D4E84/palettes/9.pal new file mode 100644 index 000000000..25d5d7019 --- /dev/null +++ b/data/tilesets/secondary/82D4E84/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +156 213 255 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +0 0 0 diff --git a/data/tilesets/secondary/82D4E84/tiles.png b/data/tilesets/secondary/82D4E84/tiles.png new file mode 100644 index 000000000..ca6e21f03 Binary files /dev/null and b/data/tilesets/secondary/82D4E84/tiles.png differ diff --git a/data/tilesets/secondary/82D4E9C/metatile_attributes.bin b/data/tilesets/secondary/82D4E9C/metatile_attributes.bin new file mode 100644 index 000000000..1105056c9 Binary files /dev/null and b/data/tilesets/secondary/82D4E9C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4E9C/metatiles.bin b/data/tilesets/secondary/82D4E9C/metatiles.bin new file mode 100644 index 000000000..7d1e15676 Binary files /dev/null and b/data/tilesets/secondary/82D4E9C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4E9C/palettes/0.pal b/data/tilesets/secondary/82D4E9C/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4E9C/palettes/1.pal b/data/tilesets/secondary/82D4E9C/palettes/1.pal new file mode 100644 index 000000000..30be2fbe3 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4E9C/palettes/10.pal b/data/tilesets/secondary/82D4E9C/palettes/10.pal new file mode 100644 index 000000000..2a1743eaa --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E9C/palettes/11.pal b/data/tilesets/secondary/82D4E9C/palettes/11.pal new file mode 100644 index 000000000..307e0ea7e --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4E9C/palettes/12.pal b/data/tilesets/secondary/82D4E9C/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E9C/palettes/13.pal b/data/tilesets/secondary/82D4E9C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E9C/palettes/14.pal b/data/tilesets/secondary/82D4E9C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E9C/palettes/15.pal b/data/tilesets/secondary/82D4E9C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E9C/palettes/2.pal b/data/tilesets/secondary/82D4E9C/palettes/2.pal new file mode 100644 index 000000000..e7c4b911a --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4E9C/palettes/3.pal b/data/tilesets/secondary/82D4E9C/palettes/3.pal new file mode 100644 index 000000000..54b77e0c8 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E9C/palettes/4.pal b/data/tilesets/secondary/82D4E9C/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E9C/palettes/5.pal b/data/tilesets/secondary/82D4E9C/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E9C/palettes/6.pal b/data/tilesets/secondary/82D4E9C/palettes/6.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4E9C/palettes/7.pal b/data/tilesets/secondary/82D4E9C/palettes/7.pal new file mode 100644 index 000000000..b69e6cfa4 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +156 65 65 +57 106 16 +0 0 139 +98 123 156 +131 156 180 +164 189 213 +197 197 148 +213 205 172 +230 222 197 +164 156 164 +205 197 189 +82 82 106 +123 123 139 +246 238 222 +255 255 255 diff --git a/data/tilesets/secondary/82D4E9C/palettes/8.pal b/data/tilesets/secondary/82D4E9C/palettes/8.pal new file mode 100644 index 000000000..3cada9fa1 --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +180 180 90 +222 222 148 +246 246 180 +156 65 65 +222 131 131 +189 98 98 +255 0 255 +255 0 255 +255 0 255 +164 156 164 +205 197 189 +82 82 106 +123 123 139 +246 238 222 +255 255 255 diff --git a/data/tilesets/secondary/82D4E9C/palettes/9.pal b/data/tilesets/secondary/82D4E9C/palettes/9.pal new file mode 100644 index 000000000..2a1743eaa --- /dev/null +++ b/data/tilesets/secondary/82D4E9C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4E9C/tiles.png b/data/tilesets/secondary/82D4E9C/tiles.png new file mode 100644 index 000000000..d252dbcd3 Binary files /dev/null and b/data/tilesets/secondary/82D4E9C/tiles.png differ diff --git a/data/tilesets/secondary/82D4EB4/metatile_attributes.bin b/data/tilesets/secondary/82D4EB4/metatile_attributes.bin new file mode 100644 index 000000000..05caeb58b Binary files /dev/null and b/data/tilesets/secondary/82D4EB4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4EB4/metatiles.bin b/data/tilesets/secondary/82D4EB4/metatiles.bin new file mode 100644 index 000000000..6ac3cbf98 Binary files /dev/null and b/data/tilesets/secondary/82D4EB4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4EB4/palettes/0.pal b/data/tilesets/secondary/82D4EB4/palettes/0.pal new file mode 100644 index 000000000..ed708dd79 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4EB4/palettes/1.pal b/data/tilesets/secondary/82D4EB4/palettes/1.pal new file mode 100644 index 000000000..4d2b48991 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/82D4EB4/palettes/10.pal b/data/tilesets/secondary/82D4EB4/palettes/10.pal new file mode 100644 index 000000000..e8624e82f --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +139 164 164 +164 189 189 +205 222 222 +205 238 238 +90 139 115 +0 0 0 +0 0 0 +82 180 106 +115 222 148 +205 197 57 +230 230 139 +238 131 74 +255 180 98 diff --git a/data/tilesets/secondary/82D4EB4/palettes/11.pal b/data/tilesets/secondary/82D4EB4/palettes/11.pal new file mode 100644 index 000000000..9cec1272b --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +0 0 0 +0 0 0 +0 0 0 +205 238 238 +222 255 255 +0 0 0 +106 189 197 +106 246 230 +164 255 238 +0 0 0 +131 123 57 +197 106 74 +238 148 74 diff --git a/data/tilesets/secondary/82D4EB4/palettes/12.pal b/data/tilesets/secondary/82D4EB4/palettes/12.pal new file mode 100644 index 000000000..600d8f469 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +255 255 255 +90 230 255 +213 255 255 +148 238 255 +90 139 115 +0 0 0 +0 0 0 +82 180 106 +115 222 148 +148 246 180 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EB4/palettes/13.pal b/data/tilesets/secondary/82D4EB4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EB4/palettes/14.pal b/data/tilesets/secondary/82D4EB4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EB4/palettes/15.pal b/data/tilesets/secondary/82D4EB4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EB4/palettes/2.pal b/data/tilesets/secondary/82D4EB4/palettes/2.pal new file mode 100644 index 000000000..878c13c95 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4EB4/palettes/3.pal b/data/tilesets/secondary/82D4EB4/palettes/3.pal new file mode 100644 index 000000000..bed4c20c3 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4EB4/palettes/4.pal b/data/tilesets/secondary/82D4EB4/palettes/4.pal new file mode 100644 index 000000000..b77ba3e87 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4EB4/palettes/5.pal b/data/tilesets/secondary/82D4EB4/palettes/5.pal new file mode 100644 index 000000000..74a2a9ed0 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4EB4/palettes/6.pal b/data/tilesets/secondary/82D4EB4/palettes/6.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D4EB4/palettes/7.pal b/data/tilesets/secondary/82D4EB4/palettes/7.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EB4/palettes/8.pal b/data/tilesets/secondary/82D4EB4/palettes/8.pal new file mode 100644 index 000000000..370a3d2db --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +139 164 164 +164 189 189 +205 222 222 +205 238 238 +90 139 115 +139 148 115 +106 189 197 +82 180 106 +115 222 148 +148 246 180 +131 123 57 +197 106 74 +238 148 74 diff --git a/data/tilesets/secondary/82D4EB4/palettes/9.pal b/data/tilesets/secondary/82D4EB4/palettes/9.pal new file mode 100644 index 000000000..1193cc807 --- /dev/null +++ b/data/tilesets/secondary/82D4EB4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +98 106 148 +115 131 197 +139 164 230 +164 213 246 +197 197 197 +238 230 205 +255 0 255 +106 98 90 +131 115 90 +156 139 90 +131 139 90 +164 156 90 +189 172 90 diff --git a/data/tilesets/secondary/82D4EB4/tiles.png b/data/tilesets/secondary/82D4EB4/tiles.png new file mode 100644 index 000000000..42d557bcf Binary files /dev/null and b/data/tilesets/secondary/82D4EB4/tiles.png differ diff --git a/data/tilesets/secondary/82D4ECC/metatile_attributes.bin b/data/tilesets/secondary/82D4ECC/metatile_attributes.bin new file mode 100644 index 000000000..a118a0181 Binary files /dev/null and b/data/tilesets/secondary/82D4ECC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4ECC/metatiles.bin b/data/tilesets/secondary/82D4ECC/metatiles.bin new file mode 100644 index 000000000..c86070668 Binary files /dev/null and b/data/tilesets/secondary/82D4ECC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4EE4/metatile_attributes.bin b/data/tilesets/secondary/82D4EE4/metatile_attributes.bin new file mode 100644 index 000000000..29caa862d Binary files /dev/null and b/data/tilesets/secondary/82D4EE4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4EE4/metatiles.bin b/data/tilesets/secondary/82D4EE4/metatiles.bin new file mode 100644 index 000000000..2010e1eca Binary files /dev/null and b/data/tilesets/secondary/82D4EE4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4EE4/palettes/0.pal b/data/tilesets/secondary/82D4EE4/palettes/0.pal new file mode 100644 index 000000000..6d876039d --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4EE4/palettes/1.pal b/data/tilesets/secondary/82D4EE4/palettes/1.pal new file mode 100644 index 000000000..66561f6d3 --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4EE4/palettes/10.pal b/data/tilesets/secondary/82D4EE4/palettes/10.pal new file mode 100644 index 000000000..e12b8edac --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4EE4/palettes/11.pal b/data/tilesets/secondary/82D4EE4/palettes/11.pal new file mode 100644 index 000000000..e12b8edac --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4EE4/palettes/12.pal b/data/tilesets/secondary/82D4EE4/palettes/12.pal new file mode 100644 index 000000000..e12b8edac --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4EE4/palettes/13.pal b/data/tilesets/secondary/82D4EE4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EE4/palettes/14.pal b/data/tilesets/secondary/82D4EE4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EE4/palettes/15.pal b/data/tilesets/secondary/82D4EE4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EE4/palettes/2.pal b/data/tilesets/secondary/82D4EE4/palettes/2.pal new file mode 100644 index 000000000..87a022102 --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4EE4/palettes/3.pal b/data/tilesets/secondary/82D4EE4/palettes/3.pal new file mode 100644 index 000000000..783496dcd --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/82D4EE4/palettes/4.pal b/data/tilesets/secondary/82D4EE4/palettes/4.pal new file mode 100644 index 000000000..89eace605 --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/82D4EE4/palettes/5.pal b/data/tilesets/secondary/82D4EE4/palettes/5.pal new file mode 100644 index 000000000..0eef3df8e --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4EE4/palettes/6.pal b/data/tilesets/secondary/82D4EE4/palettes/6.pal new file mode 100644 index 000000000..1d08ce9a2 --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EE4/palettes/7.pal b/data/tilesets/secondary/82D4EE4/palettes/7.pal new file mode 100644 index 000000000..23e995640 --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +148 148 156 +205 205 197 +148 139 90 +172 164 106 +197 189 131 +82 139 148 +115 164 172 +156 189 197 +180 90 74 +205 115 90 +238 156 123 diff --git a/data/tilesets/secondary/82D4EE4/palettes/8.pal b/data/tilesets/secondary/82D4EE4/palettes/8.pal new file mode 100644 index 000000000..3ce3570a1 --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +255 255 156 +197 197 156 +172 172 139 +148 148 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4EE4/palettes/9.pal b/data/tilesets/secondary/82D4EE4/palettes/9.pal new file mode 100644 index 000000000..e12b8edac --- /dev/null +++ b/data/tilesets/secondary/82D4EE4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4EE4/tiles.png b/data/tilesets/secondary/82D4EE4/tiles.png new file mode 100644 index 000000000..b8865022d Binary files /dev/null and b/data/tilesets/secondary/82D4EE4/tiles.png differ diff --git a/data/tilesets/secondary/82D4EFC/metatile_attributes.bin b/data/tilesets/secondary/82D4EFC/metatile_attributes.bin new file mode 100644 index 000000000..8c16318f0 Binary files /dev/null and b/data/tilesets/secondary/82D4EFC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4EFC/metatiles.bin b/data/tilesets/secondary/82D4EFC/metatiles.bin new file mode 100644 index 000000000..d4216989e Binary files /dev/null and b/data/tilesets/secondary/82D4EFC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4EFC/palettes/0.pal b/data/tilesets/secondary/82D4EFC/palettes/0.pal new file mode 100644 index 000000000..8db07d418 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4EFC/palettes/1.pal b/data/tilesets/secondary/82D4EFC/palettes/1.pal new file mode 100644 index 000000000..30be2fbe3 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4EFC/palettes/10.pal b/data/tilesets/secondary/82D4EFC/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EFC/palettes/11.pal b/data/tilesets/secondary/82D4EFC/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EFC/palettes/12.pal b/data/tilesets/secondary/82D4EFC/palettes/12.pal new file mode 100644 index 000000000..fa56f966e --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 106 189 +156 123 205 +230 230 255 +115 115 123 +106 156 106 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +106 82 156 +156 131 205 +205 172 246 +189 164 230 +115 115 123 diff --git a/data/tilesets/secondary/82D4EFC/palettes/13.pal b/data/tilesets/secondary/82D4EFC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EFC/palettes/14.pal b/data/tilesets/secondary/82D4EFC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EFC/palettes/15.pal b/data/tilesets/secondary/82D4EFC/palettes/15.pal new file mode 100644 index 000000000..92e7ed309 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4EFC/palettes/2.pal b/data/tilesets/secondary/82D4EFC/palettes/2.pal new file mode 100644 index 000000000..e7c4b911a --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4EFC/palettes/3.pal b/data/tilesets/secondary/82D4EFC/palettes/3.pal new file mode 100644 index 000000000..54b77e0c8 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4EFC/palettes/4.pal b/data/tilesets/secondary/82D4EFC/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EFC/palettes/5.pal b/data/tilesets/secondary/82D4EFC/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EFC/palettes/6.pal b/data/tilesets/secondary/82D4EFC/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4EFC/palettes/7.pal b/data/tilesets/secondary/82D4EFC/palettes/7.pal new file mode 100644 index 000000000..241a2678c --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +115 115 115 +180 180 164 +238 238 246 +82 123 82 +90 131 90 +106 156 106 +131 172 131 +180 156 222 +106 82 156 +139 115 189 +213 189 255 +255 0 255 +65 106 65 +255 255 255 diff --git a/data/tilesets/secondary/82D4EFC/palettes/8.pal b/data/tilesets/secondary/82D4EFC/palettes/8.pal new file mode 100644 index 000000000..ebd9e912c --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +115 115 115 +180 180 164 +238 238 246 +98 139 98 +106 156 106 +131 172 131 +148 189 148 +180 156 222 +205 139 32 +222 172 57 +246 238 164 +255 0 255 +82 123 82 +255 255 255 diff --git a/data/tilesets/secondary/82D4EFC/palettes/9.pal b/data/tilesets/secondary/82D4EFC/palettes/9.pal new file mode 100644 index 000000000..51daf6701 --- /dev/null +++ b/data/tilesets/secondary/82D4EFC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +115 115 115 +180 180 164 +238 238 246 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +172 123 32 +238 189 74 +74 205 205 +164 255 255 +255 255 255 diff --git a/data/tilesets/secondary/82D4EFC/tiles.png b/data/tilesets/secondary/82D4EFC/tiles.png new file mode 100644 index 000000000..b8f8c6a4d Binary files /dev/null and b/data/tilesets/secondary/82D4EFC/tiles.png differ diff --git a/data/tilesets/secondary/82D4F14/metatile_attributes.bin b/data/tilesets/secondary/82D4F14/metatile_attributes.bin new file mode 100644 index 000000000..9656d8ed7 Binary files /dev/null and b/data/tilesets/secondary/82D4F14/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4F14/metatiles.bin b/data/tilesets/secondary/82D4F14/metatiles.bin new file mode 100644 index 000000000..3337a5393 Binary files /dev/null and b/data/tilesets/secondary/82D4F14/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4F14/palettes/0.pal b/data/tilesets/secondary/82D4F14/palettes/0.pal new file mode 100644 index 000000000..620015e77 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 139 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4F14/palettes/1.pal b/data/tilesets/secondary/82D4F14/palettes/1.pal new file mode 100644 index 000000000..66561f6d3 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4F14/palettes/10.pal b/data/tilesets/secondary/82D4F14/palettes/10.pal new file mode 100644 index 000000000..1f08b0f6f --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +238 172 115 +205 156 115 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +156 148 98 diff --git a/data/tilesets/secondary/82D4F14/palettes/11.pal b/data/tilesets/secondary/82D4F14/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F14/palettes/12.pal b/data/tilesets/secondary/82D4F14/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F14/palettes/13.pal b/data/tilesets/secondary/82D4F14/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F14/palettes/14.pal b/data/tilesets/secondary/82D4F14/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F14/palettes/15.pal b/data/tilesets/secondary/82D4F14/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F14/palettes/2.pal b/data/tilesets/secondary/82D4F14/palettes/2.pal new file mode 100644 index 000000000..ddec077d0 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +115 82 74 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +197 172 139 diff --git a/data/tilesets/secondary/82D4F14/palettes/3.pal b/data/tilesets/secondary/82D4F14/palettes/3.pal new file mode 100644 index 000000000..6d1dfb5af --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 238 246 +189 139 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +172 32 41 diff --git a/data/tilesets/secondary/82D4F14/palettes/4.pal b/data/tilesets/secondary/82D4F14/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4F14/palettes/5.pal b/data/tilesets/secondary/82D4F14/palettes/5.pal new file mode 100644 index 000000000..9de0ef422 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 238 164 +255 0 255 +255 0 255 +180 222 164 +131 213 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4F14/palettes/6.pal b/data/tilesets/secondary/82D4F14/palettes/6.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F14/palettes/7.pal b/data/tilesets/secondary/82D4F14/palettes/7.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F14/palettes/8.pal b/data/tilesets/secondary/82D4F14/palettes/8.pal new file mode 100644 index 000000000..eed6dbc35 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 197 180 +74 74 90 +123 123 131 +189 197 189 +255 0 255 +205 222 222 +90 90 65 +131 115 74 +148 148 115 +189 189 131 +238 238 139 +238 238 246 +74 98 65 +74 156 65 +115 197 98 +156 230 98 diff --git a/data/tilesets/secondary/82D4F14/palettes/9.pal b/data/tilesets/secondary/82D4F14/palettes/9.pal new file mode 100644 index 000000000..e9b93cfd2 --- /dev/null +++ b/data/tilesets/secondary/82D4F14/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 197 180 +74 74 90 +123 123 131 +205 213 213 +205 156 115 +238 172 115 +106 123 74 +156 148 98 +197 172 115 +222 205 139 +230 222 156 +90 90 49 +213 180 230 +164 139 197 +148 115 172 +123 98 131 diff --git a/data/tilesets/secondary/82D4F14/tiles.png b/data/tilesets/secondary/82D4F14/tiles.png new file mode 100644 index 000000000..6c8d53e34 Binary files /dev/null and b/data/tilesets/secondary/82D4F14/tiles.png differ diff --git a/data/tilesets/secondary/82D4F2C/metatile_attributes.bin b/data/tilesets/secondary/82D4F2C/metatile_attributes.bin new file mode 100644 index 000000000..91b8105d3 Binary files /dev/null and b/data/tilesets/secondary/82D4F2C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4F2C/metatiles.bin b/data/tilesets/secondary/82D4F2C/metatiles.bin new file mode 100644 index 000000000..5caba25a7 Binary files /dev/null and b/data/tilesets/secondary/82D4F2C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4F2C/palettes/0.pal b/data/tilesets/secondary/82D4F2C/palettes/0.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/1.pal b/data/tilesets/secondary/82D4F2C/palettes/1.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/10.pal b/data/tilesets/secondary/82D4F2C/palettes/10.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/11.pal b/data/tilesets/secondary/82D4F2C/palettes/11.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/12.pal b/data/tilesets/secondary/82D4F2C/palettes/12.pal new file mode 100644 index 000000000..9c9a571ef --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 148 +164 98 74 +222 148 123 +255 189 164 +139 82 57 +189 131 156 +246 205 238 +139 115 49 +156 131 90 +189 164 115 +222 205 156 +255 238 189 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/82D4F2C/palettes/13.pal b/data/tilesets/secondary/82D4F2C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/14.pal b/data/tilesets/secondary/82D4F2C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/15.pal b/data/tilesets/secondary/82D4F2C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/2.pal b/data/tilesets/secondary/82D4F2C/palettes/2.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/3.pal b/data/tilesets/secondary/82D4F2C/palettes/3.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/4.pal b/data/tilesets/secondary/82D4F2C/palettes/4.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/5.pal b/data/tilesets/secondary/82D4F2C/palettes/5.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/6.pal b/data/tilesets/secondary/82D4F2C/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/palettes/7.pal b/data/tilesets/secondary/82D4F2C/palettes/7.pal new file mode 100644 index 000000000..4d22869cd --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 148 +82 131 106 +131 180 156 +180 230 205 +180 0 0 +255 0 0 +148 148 156 +172 172 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/82D4F2C/palettes/8.pal b/data/tilesets/secondary/82D4F2C/palettes/8.pal new file mode 100644 index 000000000..2a9d791a4 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 148 +164 98 74 +222 148 123 +255 189 164 +139 82 57 +172 197 230 +213 222 238 +0 0 0 +0 0 0 +189 164 115 +0 0 0 +255 238 189 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/82D4F2C/palettes/9.pal b/data/tilesets/secondary/82D4F2C/palettes/9.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F2C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F2C/tiles.png b/data/tilesets/secondary/82D4F2C/tiles.png new file mode 100644 index 000000000..3e69db5c3 Binary files /dev/null and b/data/tilesets/secondary/82D4F2C/tiles.png differ diff --git a/data/tilesets/secondary/82D4F44/metatile_attributes.bin b/data/tilesets/secondary/82D4F44/metatile_attributes.bin new file mode 100644 index 000000000..a2ac291b5 Binary files /dev/null and b/data/tilesets/secondary/82D4F44/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4F44/metatiles.bin b/data/tilesets/secondary/82D4F44/metatiles.bin new file mode 100644 index 000000000..5cddd954c Binary files /dev/null and b/data/tilesets/secondary/82D4F44/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4F44/palettes/0.pal b/data/tilesets/secondary/82D4F44/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4F44/palettes/1.pal b/data/tilesets/secondary/82D4F44/palettes/1.pal new file mode 100644 index 000000000..30be2fbe3 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4F44/palettes/10.pal b/data/tilesets/secondary/82D4F44/palettes/10.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F44/palettes/11.pal b/data/tilesets/secondary/82D4F44/palettes/11.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F44/palettes/12.pal b/data/tilesets/secondary/82D4F44/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F44/palettes/13.pal b/data/tilesets/secondary/82D4F44/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F44/palettes/14.pal b/data/tilesets/secondary/82D4F44/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F44/palettes/15.pal b/data/tilesets/secondary/82D4F44/palettes/15.pal new file mode 100644 index 000000000..71b5ee827 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/82D4F44/palettes/2.pal b/data/tilesets/secondary/82D4F44/palettes/2.pal new file mode 100644 index 000000000..e7c4b911a --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4F44/palettes/3.pal b/data/tilesets/secondary/82D4F44/palettes/3.pal new file mode 100644 index 000000000..54b77e0c8 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4F44/palettes/4.pal b/data/tilesets/secondary/82D4F44/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F44/palettes/5.pal b/data/tilesets/secondary/82D4F44/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F44/palettes/6.pal b/data/tilesets/secondary/82D4F44/palettes/6.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F44/palettes/7.pal b/data/tilesets/secondary/82D4F44/palettes/7.pal new file mode 100644 index 000000000..5e3bac102 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +255 205 90 +82 148 197 +189 230 255 +139 98 41 +156 123 65 +180 148 90 +205 172 115 +246 213 172 +205 106 90 +255 148 131 diff --git a/data/tilesets/secondary/82D4F44/palettes/8.pal b/data/tilesets/secondary/82D4F44/palettes/8.pal new file mode 100644 index 000000000..2257c0006 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +230 222 246 +255 255 255 +255 205 98 +255 255 148 +189 230 255 +180 148 90 +255 139 180 +197 180 131 +213 213 164 +238 238 213 +106 197 106 +205 106 90 +131 115 16 diff --git a/data/tilesets/secondary/82D4F44/palettes/9.pal b/data/tilesets/secondary/82D4F44/palettes/9.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4F44/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F44/tiles.png b/data/tilesets/secondary/82D4F44/tiles.png new file mode 100644 index 000000000..5c8a38b9e Binary files /dev/null and b/data/tilesets/secondary/82D4F44/tiles.png differ diff --git a/data/tilesets/secondary/82D4F5C/metatile_attributes.bin b/data/tilesets/secondary/82D4F5C/metatile_attributes.bin new file mode 100644 index 000000000..cdcb96c53 Binary files /dev/null and b/data/tilesets/secondary/82D4F5C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4F5C/metatiles.bin b/data/tilesets/secondary/82D4F5C/metatiles.bin new file mode 100644 index 000000000..35009a690 Binary files /dev/null and b/data/tilesets/secondary/82D4F5C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4F5C/palettes/0.pal b/data/tilesets/secondary/82D4F5C/palettes/0.pal new file mode 100644 index 000000000..88e712348 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4F5C/palettes/1.pal b/data/tilesets/secondary/82D4F5C/palettes/1.pal new file mode 100644 index 000000000..30be2fbe3 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4F5C/palettes/10.pal b/data/tilesets/secondary/82D4F5C/palettes/10.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/palettes/11.pal b/data/tilesets/secondary/82D4F5C/palettes/11.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/palettes/12.pal b/data/tilesets/secondary/82D4F5C/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/palettes/13.pal b/data/tilesets/secondary/82D4F5C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/palettes/14.pal b/data/tilesets/secondary/82D4F5C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/palettes/15.pal b/data/tilesets/secondary/82D4F5C/palettes/15.pal new file mode 100644 index 000000000..71b5ee827 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/82D4F5C/palettes/2.pal b/data/tilesets/secondary/82D4F5C/palettes/2.pal new file mode 100644 index 000000000..e7c4b911a --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4F5C/palettes/3.pal b/data/tilesets/secondary/82D4F5C/palettes/3.pal new file mode 100644 index 000000000..54b77e0c8 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D4F5C/palettes/4.pal b/data/tilesets/secondary/82D4F5C/palettes/4.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/palettes/5.pal b/data/tilesets/secondary/82D4F5C/palettes/5.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/palettes/6.pal b/data/tilesets/secondary/82D4F5C/palettes/6.pal new file mode 100644 index 000000000..6f31ca776 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/palettes/7.pal b/data/tilesets/secondary/82D4F5C/palettes/7.pal new file mode 100644 index 000000000..6c1a5b096 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +172 148 90 +213 189 131 +255 230 172 +255 255 98 +255 197 197 +98 156 74 +148 205 123 +98 156 172 +123 180 197 +156 205 222 +189 230 246 diff --git a/data/tilesets/secondary/82D4F5C/palettes/8.pal b/data/tilesets/secondary/82D4F5C/palettes/8.pal new file mode 100644 index 000000000..1557a55f0 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +123 131 82 +139 148 82 +156 164 90 +172 180 106 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/palettes/9.pal b/data/tilesets/secondary/82D4F5C/palettes/9.pal new file mode 100644 index 000000000..c06a049b0 --- /dev/null +++ b/data/tilesets/secondary/82D4F5C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F5C/tiles.png b/data/tilesets/secondary/82D4F5C/tiles.png new file mode 100644 index 000000000..935afccd2 Binary files /dev/null and b/data/tilesets/secondary/82D4F5C/tiles.png differ diff --git a/data/tilesets/secondary/82D4F74/metatile_attributes.bin b/data/tilesets/secondary/82D4F74/metatile_attributes.bin new file mode 100644 index 000000000..8255cca20 Binary files /dev/null and b/data/tilesets/secondary/82D4F74/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4F74/metatiles.bin b/data/tilesets/secondary/82D4F74/metatiles.bin new file mode 100644 index 000000000..63ddd975b Binary files /dev/null and b/data/tilesets/secondary/82D4F74/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4F74/palettes/0.pal b/data/tilesets/secondary/82D4F74/palettes/0.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/1.pal b/data/tilesets/secondary/82D4F74/palettes/1.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/10.pal b/data/tilesets/secondary/82D4F74/palettes/10.pal new file mode 100644 index 000000000..afe462f8e --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 197 +82 82 106 +131 131 131 +123 189 222 +123 156 189 +164 222 246 +189 238 238 +74 139 98 +106 172 106 +123 205 123 +90 148 115 +139 197 131 +197 238 123 +197 172 74 +255 0 255 +230 230 106 diff --git a/data/tilesets/secondary/82D4F74/palettes/11.pal b/data/tilesets/secondary/82D4F74/palettes/11.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/12.pal b/data/tilesets/secondary/82D4F74/palettes/12.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/13.pal b/data/tilesets/secondary/82D4F74/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/14.pal b/data/tilesets/secondary/82D4F74/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/15.pal b/data/tilesets/secondary/82D4F74/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/2.pal b/data/tilesets/secondary/82D4F74/palettes/2.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/3.pal b/data/tilesets/secondary/82D4F74/palettes/3.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/4.pal b/data/tilesets/secondary/82D4F74/palettes/4.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/5.pal b/data/tilesets/secondary/82D4F74/palettes/5.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/6.pal b/data/tilesets/secondary/82D4F74/palettes/6.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/7.pal b/data/tilesets/secondary/82D4F74/palettes/7.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F74/palettes/8.pal b/data/tilesets/secondary/82D4F74/palettes/8.pal new file mode 100644 index 000000000..4b7de8012 --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 197 +82 82 106 +131 131 131 +131 115 90 +189 131 90 +205 156 90 +238 180 90 +172 172 131 +222 222 172 +172 180 205 +238 230 172 +255 255 246 +255 255 246 +197 205 222 +205 213 230 +230 230 246 diff --git a/data/tilesets/secondary/82D4F74/palettes/9.pal b/data/tilesets/secondary/82D4F74/palettes/9.pal new file mode 100644 index 000000000..8fe0861de --- /dev/null +++ b/data/tilesets/secondary/82D4F74/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 197 +82 82 106 +131 131 131 +246 246 189 +180 180 139 +205 156 90 +230 230 131 +222 213 131 +205 205 115 +197 180 115 +255 0 255 +123 123 98 +156 156 98 +205 148 197 +90 164 205 +90 189 246 diff --git a/data/tilesets/secondary/82D4F74/tiles.png b/data/tilesets/secondary/82D4F74/tiles.png new file mode 100644 index 000000000..b8a2a1a4f Binary files /dev/null and b/data/tilesets/secondary/82D4F74/tiles.png differ diff --git a/data/tilesets/secondary/82D4F8C/metatile_attributes.bin b/data/tilesets/secondary/82D4F8C/metatile_attributes.bin new file mode 100644 index 000000000..aa43d15ee Binary files /dev/null and b/data/tilesets/secondary/82D4F8C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4F8C/metatiles.bin b/data/tilesets/secondary/82D4F8C/metatiles.bin new file mode 100644 index 000000000..117c036fa Binary files /dev/null and b/data/tilesets/secondary/82D4F8C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4F8C/palettes/0.pal b/data/tilesets/secondary/82D4F8C/palettes/0.pal new file mode 100644 index 000000000..5867e5ba6 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +156 213 255 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4F8C/palettes/1.pal b/data/tilesets/secondary/82D4F8C/palettes/1.pal new file mode 100644 index 000000000..66561f6d3 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4F8C/palettes/10.pal b/data/tilesets/secondary/82D4F8C/palettes/10.pal new file mode 100644 index 000000000..3c091df8b --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +148 148 164 +205 189 197 +255 255 255 +255 213 115 +189 148 49 +139 98 74 +90 106 180 +255 205 139 +230 172 90 +230 148 65 +180 98 24 +238 213 172 +222 156 139 +123 123 123 diff --git a/data/tilesets/secondary/82D4F8C/palettes/11.pal b/data/tilesets/secondary/82D4F8C/palettes/11.pal new file mode 100644 index 000000000..79494336b --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +115 115 115 +180 180 164 +238 238 238 +213 222 164 +115 156 148 +230 213 115 +180 172 90 +139 148 90 +98 123 180 +148 156 156 +189 197 197 +246 230 164 +180 189 131 +205 213 213 diff --git a/data/tilesets/secondary/82D4F8C/palettes/12.pal b/data/tilesets/secondary/82D4F8C/palettes/12.pal new file mode 100644 index 000000000..b9b1e6061 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +131 131 82 +164 164 98 +197 197 156 +106 164 172 +197 205 213 +205 156 32 +172 148 197 +205 164 230 +230 197 255 +205 197 106 +230 230 230 diff --git a/data/tilesets/secondary/82D4F8C/palettes/13.pal b/data/tilesets/secondary/82D4F8C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F8C/palettes/14.pal b/data/tilesets/secondary/82D4F8C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F8C/palettes/15.pal b/data/tilesets/secondary/82D4F8C/palettes/15.pal new file mode 100644 index 000000000..093fbdd6c --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +213 222 164 +180 189 131 +139 148 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F8C/palettes/2.pal b/data/tilesets/secondary/82D4F8C/palettes/2.pal new file mode 100644 index 000000000..87a022102 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4F8C/palettes/3.pal b/data/tilesets/secondary/82D4F8C/palettes/3.pal new file mode 100644 index 000000000..783496dcd --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/82D4F8C/palettes/4.pal b/data/tilesets/secondary/82D4F8C/palettes/4.pal new file mode 100644 index 000000000..89eace605 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/82D4F8C/palettes/5.pal b/data/tilesets/secondary/82D4F8C/palettes/5.pal new file mode 100644 index 000000000..c7780e5c7 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/82D4F8C/palettes/6.pal b/data/tilesets/secondary/82D4F8C/palettes/6.pal new file mode 100644 index 000000000..1d08ce9a2 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4F8C/palettes/7.pal b/data/tilesets/secondary/82D4F8C/palettes/7.pal new file mode 100644 index 000000000..35987db53 --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +180 180 164 +255 255 255 +205 197 106 +246 238 148 +255 255 222 +98 98 123 +238 238 238 +82 222 123 +131 255 164 +82 164 57 +230 139 98 +189 98 74 +213 213 213 diff --git a/data/tilesets/secondary/82D4F8C/palettes/8.pal b/data/tilesets/secondary/82D4F8C/palettes/8.pal new file mode 100644 index 000000000..7f33e006f --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +148 148 164 +180 180 164 +255 255 255 +213 213 213 +106 156 164 +131 189 197 +172 222 230 +238 180 222 +180 115 164 +213 213 180 +255 0 255 +156 205 246 +98 156 238 diff --git a/data/tilesets/secondary/82D4F8C/palettes/9.pal b/data/tilesets/secondary/82D4F8C/palettes/9.pal new file mode 100644 index 000000000..75022050d --- /dev/null +++ b/data/tilesets/secondary/82D4F8C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +148 148 164 +180 180 164 +255 255 255 +213 213 213 +148 205 180 +115 172 148 +106 148 139 +197 238 255 +172 213 255 +123 164 222 +98 139 189 +123 164 189 +148 189 238 diff --git a/data/tilesets/secondary/82D4F8C/tiles.png b/data/tilesets/secondary/82D4F8C/tiles.png new file mode 100644 index 000000000..324b42c9f Binary files /dev/null and b/data/tilesets/secondary/82D4F8C/tiles.png differ diff --git a/data/tilesets/secondary/82D4FA4/metatile_attributes.bin b/data/tilesets/secondary/82D4FA4/metatile_attributes.bin new file mode 100644 index 000000000..db0f7817e Binary files /dev/null and b/data/tilesets/secondary/82D4FA4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4FA4/metatiles.bin b/data/tilesets/secondary/82D4FA4/metatiles.bin new file mode 100644 index 000000000..dfe78c910 Binary files /dev/null and b/data/tilesets/secondary/82D4FA4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4FA4/palettes/0.pal b/data/tilesets/secondary/82D4FA4/palettes/0.pal new file mode 100644 index 000000000..6d876039d --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D4FA4/palettes/1.pal b/data/tilesets/secondary/82D4FA4/palettes/1.pal new file mode 100644 index 000000000..66561f6d3 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D4FA4/palettes/10.pal b/data/tilesets/secondary/82D4FA4/palettes/10.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FA4/palettes/11.pal b/data/tilesets/secondary/82D4FA4/palettes/11.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FA4/palettes/12.pal b/data/tilesets/secondary/82D4FA4/palettes/12.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FA4/palettes/13.pal b/data/tilesets/secondary/82D4FA4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FA4/palettes/14.pal b/data/tilesets/secondary/82D4FA4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FA4/palettes/15.pal b/data/tilesets/secondary/82D4FA4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FA4/palettes/2.pal b/data/tilesets/secondary/82D4FA4/palettes/2.pal new file mode 100644 index 000000000..87a022102 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D4FA4/palettes/3.pal b/data/tilesets/secondary/82D4FA4/palettes/3.pal new file mode 100644 index 000000000..783496dcd --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/82D4FA4/palettes/4.pal b/data/tilesets/secondary/82D4FA4/palettes/4.pal new file mode 100644 index 000000000..89eace605 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/82D4FA4/palettes/5.pal b/data/tilesets/secondary/82D4FA4/palettes/5.pal new file mode 100644 index 000000000..0eef3df8e --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4FA4/palettes/6.pal b/data/tilesets/secondary/82D4FA4/palettes/6.pal new file mode 100644 index 000000000..1d08ce9a2 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FA4/palettes/7.pal b/data/tilesets/secondary/82D4FA4/palettes/7.pal new file mode 100644 index 000000000..c1e7c3d5c --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/82D4FA4/palettes/8.pal b/data/tilesets/secondary/82D4FA4/palettes/8.pal new file mode 100644 index 000000000..c1e7c3d5c --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/82D4FA4/palettes/9.pal b/data/tilesets/secondary/82D4FA4/palettes/9.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D4FA4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FA4/tiles.png b/data/tilesets/secondary/82D4FA4/tiles.png new file mode 100644 index 000000000..9fcf94314 Binary files /dev/null and b/data/tilesets/secondary/82D4FA4/tiles.png differ diff --git a/data/tilesets/secondary/82D4FBC/metatile_attributes.bin b/data/tilesets/secondary/82D4FBC/metatile_attributes.bin new file mode 100644 index 000000000..1b1cb4d44 Binary files /dev/null and b/data/tilesets/secondary/82D4FBC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4FBC/metatiles.bin b/data/tilesets/secondary/82D4FBC/metatiles.bin new file mode 100644 index 000000000..274da22a6 Binary files /dev/null and b/data/tilesets/secondary/82D4FBC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4FBC/palettes/0.pal b/data/tilesets/secondary/82D4FBC/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4FBC/palettes/1.pal b/data/tilesets/secondary/82D4FBC/palettes/1.pal new file mode 100644 index 000000000..d8a4e7757 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4FBC/palettes/10.pal b/data/tilesets/secondary/82D4FBC/palettes/10.pal new file mode 100644 index 000000000..937405d15 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 164 +230 197 139 +205 172 123 +172 139 106 +213 197 189 +205 180 156 +189 148 139 +148 115 106 +115 65 74 +82 49 65 +90 90 98 diff --git a/data/tilesets/secondary/82D4FBC/palettes/11.pal b/data/tilesets/secondary/82D4FBC/palettes/11.pal new file mode 100644 index 000000000..bb4f4867c --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +238 222 148 +222 205 115 +205 180 98 +189 172 98 diff --git a/data/tilesets/secondary/82D4FBC/palettes/12.pal b/data/tilesets/secondary/82D4FBC/palettes/12.pal new file mode 100644 index 000000000..583384664 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4FBC/palettes/13.pal b/data/tilesets/secondary/82D4FBC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FBC/palettes/14.pal b/data/tilesets/secondary/82D4FBC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FBC/palettes/15.pal b/data/tilesets/secondary/82D4FBC/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FBC/palettes/2.pal b/data/tilesets/secondary/82D4FBC/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4FBC/palettes/3.pal b/data/tilesets/secondary/82D4FBC/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4FBC/palettes/4.pal b/data/tilesets/secondary/82D4FBC/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4FBC/palettes/5.pal b/data/tilesets/secondary/82D4FBC/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4FBC/palettes/6.pal b/data/tilesets/secondary/82D4FBC/palettes/6.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FBC/palettes/7.pal b/data/tilesets/secondary/82D4FBC/palettes/7.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FBC/palettes/8.pal b/data/tilesets/secondary/82D4FBC/palettes/8.pal new file mode 100644 index 000000000..6774e407f --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 197 189 +205 180 156 +189 148 139 +148 115 106 +115 65 74 +82 49 65 +90 90 98 diff --git a/data/tilesets/secondary/82D4FBC/palettes/9.pal b/data/tilesets/secondary/82D4FBC/palettes/9.pal new file mode 100644 index 000000000..3795f6c6a --- /dev/null +++ b/data/tilesets/secondary/82D4FBC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 222 213 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 238 164 +230 197 139 +205 172 123 +164 123 90 +148 115 74 +106 65 41 +74 74 57 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/82D4FBC/tiles.png b/data/tilesets/secondary/82D4FBC/tiles.png new file mode 100644 index 000000000..b2d960c60 Binary files /dev/null and b/data/tilesets/secondary/82D4FBC/tiles.png differ diff --git a/data/tilesets/secondary/82D4FD4/metatile_attributes.bin b/data/tilesets/secondary/82D4FD4/metatile_attributes.bin new file mode 100644 index 000000000..1b1cb4d44 Binary files /dev/null and b/data/tilesets/secondary/82D4FD4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4FD4/metatiles.bin b/data/tilesets/secondary/82D4FD4/metatiles.bin new file mode 100644 index 000000000..8f740f6af Binary files /dev/null and b/data/tilesets/secondary/82D4FD4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4FD4/palettes/0.pal b/data/tilesets/secondary/82D4FD4/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4FD4/palettes/1.pal b/data/tilesets/secondary/82D4FD4/palettes/1.pal new file mode 100644 index 000000000..d8a4e7757 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4FD4/palettes/10.pal b/data/tilesets/secondary/82D4FD4/palettes/10.pal new file mode 100644 index 000000000..937405d15 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 164 +230 197 139 +205 172 123 +172 139 106 +213 197 189 +205 180 156 +189 148 139 +148 115 106 +115 65 74 +82 49 65 +90 90 98 diff --git a/data/tilesets/secondary/82D4FD4/palettes/11.pal b/data/tilesets/secondary/82D4FD4/palettes/11.pal new file mode 100644 index 000000000..bb4f4867c --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +238 222 148 +222 205 115 +205 180 98 +189 172 98 diff --git a/data/tilesets/secondary/82D4FD4/palettes/12.pal b/data/tilesets/secondary/82D4FD4/palettes/12.pal new file mode 100644 index 000000000..583384664 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/82D4FD4/palettes/13.pal b/data/tilesets/secondary/82D4FD4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FD4/palettes/14.pal b/data/tilesets/secondary/82D4FD4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FD4/palettes/15.pal b/data/tilesets/secondary/82D4FD4/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FD4/palettes/2.pal b/data/tilesets/secondary/82D4FD4/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4FD4/palettes/3.pal b/data/tilesets/secondary/82D4FD4/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4FD4/palettes/4.pal b/data/tilesets/secondary/82D4FD4/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D4FD4/palettes/5.pal b/data/tilesets/secondary/82D4FD4/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4FD4/palettes/6.pal b/data/tilesets/secondary/82D4FD4/palettes/6.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FD4/palettes/7.pal b/data/tilesets/secondary/82D4FD4/palettes/7.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FD4/palettes/8.pal b/data/tilesets/secondary/82D4FD4/palettes/8.pal new file mode 100644 index 000000000..6774e407f --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 197 189 +205 180 156 +189 148 139 +148 115 106 +115 65 74 +82 49 65 +90 90 98 diff --git a/data/tilesets/secondary/82D4FD4/palettes/9.pal b/data/tilesets/secondary/82D4FD4/palettes/9.pal new file mode 100644 index 000000000..3795f6c6a --- /dev/null +++ b/data/tilesets/secondary/82D4FD4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 222 213 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 238 164 +230 197 139 +205 172 123 +164 123 90 +148 115 74 +106 65 41 +74 74 57 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/82D4FD4/tiles.png b/data/tilesets/secondary/82D4FD4/tiles.png new file mode 100644 index 000000000..201df80fb Binary files /dev/null and b/data/tilesets/secondary/82D4FD4/tiles.png differ diff --git a/data/tilesets/secondary/82D4FEC/metatile_attributes.bin b/data/tilesets/secondary/82D4FEC/metatile_attributes.bin new file mode 100644 index 000000000..45432b773 Binary files /dev/null and b/data/tilesets/secondary/82D4FEC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D4FEC/metatiles.bin b/data/tilesets/secondary/82D4FEC/metatiles.bin new file mode 100644 index 000000000..b80796821 Binary files /dev/null and b/data/tilesets/secondary/82D4FEC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D4FEC/palettes/0.pal b/data/tilesets/secondary/82D4FEC/palettes/0.pal new file mode 100644 index 000000000..30ff4070a --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D4FEC/palettes/1.pal b/data/tilesets/secondary/82D4FEC/palettes/1.pal new file mode 100644 index 000000000..e15d979f1 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +65 49 65 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D4FEC/palettes/10.pal b/data/tilesets/secondary/82D4FEC/palettes/10.pal new file mode 100644 index 000000000..fc340ed15 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 164 +230 197 139 +205 172 123 +172 139 106 +213 172 172 +197 156 148 +172 123 123 +131 82 74 +115 49 49 +90 24 24 +90 90 98 diff --git a/data/tilesets/secondary/82D4FEC/palettes/11.pal b/data/tilesets/secondary/82D4FEC/palettes/11.pal new file mode 100644 index 000000000..e07ce6909 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 197 180 +172 172 156 +148 148 123 +123 123 106 +164 172 172 +255 230 65 +123 123 106 +255 255 255 +74 65 74 +238 238 230 +189 189 180 +230 230 205 +205 205 180 +180 180 164 +164 164 148 diff --git a/data/tilesets/secondary/82D4FEC/palettes/12.pal b/data/tilesets/secondary/82D4FEC/palettes/12.pal new file mode 100644 index 000000000..cc53a5940 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +139 205 246 +98 172 197 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +139 90 90 +106 65 65 +82 49 49 +49 32 32 +24 16 16 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FEC/palettes/13.pal b/data/tilesets/secondary/82D4FEC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FEC/palettes/14.pal b/data/tilesets/secondary/82D4FEC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FEC/palettes/15.pal b/data/tilesets/secondary/82D4FEC/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D4FEC/palettes/2.pal b/data/tilesets/secondary/82D4FEC/palettes/2.pal new file mode 100644 index 000000000..372fb5d7c --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D4FEC/palettes/3.pal b/data/tilesets/secondary/82D4FEC/palettes/3.pal new file mode 100644 index 000000000..973765509 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4FEC/palettes/4.pal b/data/tilesets/secondary/82D4FEC/palettes/4.pal new file mode 100644 index 000000000..91fdcabdf --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +74 139 189 +65 123 189 +82 139 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D4FEC/palettes/5.pal b/data/tilesets/secondary/82D4FEC/palettes/5.pal new file mode 100644 index 000000000..0edb843f5 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D4FEC/palettes/6.pal b/data/tilesets/secondary/82D4FEC/palettes/6.pal new file mode 100644 index 000000000..32afdccbb --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +65 123 172 +41 98 156 +74 115 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D4FEC/palettes/7.pal b/data/tilesets/secondary/82D4FEC/palettes/7.pal new file mode 100644 index 000000000..fa9d5d633 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +172 123 123 +139 98 98 +115 74 74 +90 49 49 +65 24 24 +41 0 0 +41 41 49 diff --git a/data/tilesets/secondary/82D4FEC/palettes/8.pal b/data/tilesets/secondary/82D4FEC/palettes/8.pal new file mode 100644 index 000000000..f4a797b87 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 197 180 +172 172 156 +148 148 123 +123 123 106 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 172 172 +197 156 148 +172 123 123 +131 82 74 +115 49 49 +90 24 24 +90 90 98 diff --git a/data/tilesets/secondary/82D4FEC/palettes/9.pal b/data/tilesets/secondary/82D4FEC/palettes/9.pal new file mode 100644 index 000000000..0a2109195 --- /dev/null +++ b/data/tilesets/secondary/82D4FEC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 197 180 +172 172 156 +148 148 123 +123 123 106 +255 238 164 +230 197 139 +205 172 123 +164 123 90 +148 115 74 +106 65 41 +74 74 57 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/82D4FEC/tiles.png b/data/tilesets/secondary/82D4FEC/tiles.png new file mode 100644 index 000000000..04d2b7b67 Binary files /dev/null and b/data/tilesets/secondary/82D4FEC/tiles.png differ diff --git a/data/tilesets/secondary/82D5004/metatile_attributes.bin b/data/tilesets/secondary/82D5004/metatile_attributes.bin new file mode 100644 index 000000000..6d6c6d544 Binary files /dev/null and b/data/tilesets/secondary/82D5004/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D5004/metatiles.bin b/data/tilesets/secondary/82D5004/metatiles.bin new file mode 100644 index 000000000..fb47747c4 Binary files /dev/null and b/data/tilesets/secondary/82D5004/metatiles.bin differ diff --git a/data/tilesets/secondary/82D5004/palettes/0.pal b/data/tilesets/secondary/82D5004/palettes/0.pal new file mode 100644 index 000000000..7af5bb7d2 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D5004/palettes/1.pal b/data/tilesets/secondary/82D5004/palettes/1.pal new file mode 100644 index 000000000..391d1e3d1 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/82D5004/palettes/10.pal b/data/tilesets/secondary/82D5004/palettes/10.pal new file mode 100644 index 000000000..746437492 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +222 230 246 +189 197 222 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +49 139 49 +57 82 0 +49 180 98 +238 230 164 +222 205 131 +213 180 106 +205 156 82 +106 205 164 diff --git a/data/tilesets/secondary/82D5004/palettes/11.pal b/data/tilesets/secondary/82D5004/palettes/11.pal new file mode 100644 index 000000000..6fe747b2d --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 148 +222 213 98 +57 148 49 +57 82 0 +57 115 24 +98 65 74 +131 106 82 +65 57 49 +164 164 49 +115 106 49 +255 0 255 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D5004/palettes/12.pal b/data/tilesets/secondary/82D5004/palettes/12.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5004/palettes/13.pal b/data/tilesets/secondary/82D5004/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5004/palettes/14.pal b/data/tilesets/secondary/82D5004/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5004/palettes/15.pal b/data/tilesets/secondary/82D5004/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5004/palettes/2.pal b/data/tilesets/secondary/82D5004/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D5004/palettes/3.pal b/data/tilesets/secondary/82D5004/palettes/3.pal new file mode 100644 index 000000000..9581f2cd8 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D5004/palettes/4.pal b/data/tilesets/secondary/82D5004/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D5004/palettes/5.pal b/data/tilesets/secondary/82D5004/palettes/5.pal new file mode 100644 index 000000000..3a2db72a7 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D5004/palettes/6.pal b/data/tilesets/secondary/82D5004/palettes/6.pal new file mode 100644 index 000000000..93518605a --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/82D5004/palettes/7.pal b/data/tilesets/secondary/82D5004/palettes/7.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5004/palettes/8.pal b/data/tilesets/secondary/82D5004/palettes/8.pal new file mode 100644 index 000000000..650a35cc8 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +57 115 24 +98 65 74 +131 106 82 +65 57 49 +255 0 255 +255 0 255 +255 0 255 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D5004/palettes/9.pal b/data/tilesets/secondary/82D5004/palettes/9.pal new file mode 100644 index 000000000..df2d04037 --- /dev/null +++ b/data/tilesets/secondary/82D5004/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 230 189 +57 172 131 +222 230 246 +230 172 123 +106 205 164 diff --git a/data/tilesets/secondary/82D5004/tiles.png b/data/tilesets/secondary/82D5004/tiles.png new file mode 100644 index 000000000..dacbc0120 Binary files /dev/null and b/data/tilesets/secondary/82D5004/tiles.png differ diff --git a/data/tilesets/secondary/82D501C/metatile_attributes.bin b/data/tilesets/secondary/82D501C/metatile_attributes.bin new file mode 100644 index 000000000..6e3d955e2 Binary files /dev/null and b/data/tilesets/secondary/82D501C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D501C/metatiles.bin b/data/tilesets/secondary/82D501C/metatiles.bin new file mode 100644 index 000000000..7fdc5c55d Binary files /dev/null and b/data/tilesets/secondary/82D501C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D501C/palettes/0.pal b/data/tilesets/secondary/82D501C/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D501C/palettes/1.pal b/data/tilesets/secondary/82D501C/palettes/1.pal new file mode 100644 index 000000000..d8a4e7757 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D501C/palettes/10.pal b/data/tilesets/secondary/82D501C/palettes/10.pal new file mode 100644 index 000000000..334da8f23 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +238 238 230 +172 172 164 +74 74 74 +0 0 0 +255 246 180 +238 222 123 +197 205 123 +197 213 205 +255 255 255 +255 255 255 +246 246 238 +222 222 213 +189 189 180 +156 156 139 +98 98 90 diff --git a/data/tilesets/secondary/82D501C/palettes/11.pal b/data/tilesets/secondary/82D501C/palettes/11.pal new file mode 100644 index 000000000..0c3d2870e --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +230 197 65 +197 213 205 +180 197 189 +164 172 172 +205 205 197 +255 230 65 +123 123 131 +255 255 255 +74 65 74 +238 238 230 +189 189 180 +238 238 230 +222 222 213 +205 205 197 +156 156 164 diff --git a/data/tilesets/secondary/82D501C/palettes/12.pal b/data/tilesets/secondary/82D501C/palettes/12.pal new file mode 100644 index 000000000..a68c94c2c --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +197 213 205 +180 197 189 +164 172 172 +131 148 139 +255 0 255 +255 0 255 +255 0 255 +139 156 180 +139 139 164 +131 139 148 +115 115 131 +90 90 106 +82 82 82 +57 65 65 diff --git a/data/tilesets/secondary/82D501C/palettes/13.pal b/data/tilesets/secondary/82D501C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D501C/palettes/14.pal b/data/tilesets/secondary/82D501C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D501C/palettes/15.pal b/data/tilesets/secondary/82D501C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D501C/palettes/2.pal b/data/tilesets/secondary/82D501C/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D501C/palettes/3.pal b/data/tilesets/secondary/82D501C/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D501C/palettes/4.pal b/data/tilesets/secondary/82D501C/palettes/4.pal new file mode 100644 index 000000000..702db8a90 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/82D501C/palettes/5.pal b/data/tilesets/secondary/82D501C/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D501C/palettes/6.pal b/data/tilesets/secondary/82D501C/palettes/6.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D501C/palettes/7.pal b/data/tilesets/secondary/82D501C/palettes/7.pal new file mode 100644 index 000000000..364379ad9 --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 0 255 +197 213 205 +180 197 189 +164 172 172 +131 148 139 +255 0 255 +246 205 74 +255 0 255 +180 189 197 +180 189 197 +189 197 197 +164 172 172 +131 139 139 +106 106 106 +90 90 82 diff --git a/data/tilesets/secondary/82D501C/palettes/8.pal b/data/tilesets/secondary/82D501C/palettes/8.pal new file mode 100644 index 000000000..102aaaf2c --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 0 255 +197 213 205 +180 197 189 +164 172 172 +131 148 139 +255 0 255 +255 0 255 +255 0 255 +255 255 255 +255 255 255 +246 246 238 +222 222 213 +189 189 180 +156 156 139 +98 98 90 diff --git a/data/tilesets/secondary/82D501C/palettes/9.pal b/data/tilesets/secondary/82D501C/palettes/9.pal new file mode 100644 index 000000000..91329f82e --- /dev/null +++ b/data/tilesets/secondary/82D501C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +238 238 164 +197 213 205 +180 197 189 +164 172 172 +205 205 106 +205 205 197 +172 172 90 +123 131 74 +82 90 32 +106 106 82 +74 74 74 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/82D501C/tiles.png b/data/tilesets/secondary/82D501C/tiles.png new file mode 100644 index 000000000..cbce25763 Binary files /dev/null and b/data/tilesets/secondary/82D501C/tiles.png differ diff --git a/data/tilesets/secondary/82D5034/metatile_attributes.bin b/data/tilesets/secondary/82D5034/metatile_attributes.bin new file mode 100644 index 000000000..5fe7d59fc Binary files /dev/null and b/data/tilesets/secondary/82D5034/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D5034/metatiles.bin b/data/tilesets/secondary/82D5034/metatiles.bin new file mode 100644 index 000000000..2b3a9543e Binary files /dev/null and b/data/tilesets/secondary/82D5034/metatiles.bin differ diff --git a/data/tilesets/secondary/82D5034/palettes/0.pal b/data/tilesets/secondary/82D5034/palettes/0.pal new file mode 100644 index 000000000..83b30fc17 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D5034/palettes/1.pal b/data/tilesets/secondary/82D5034/palettes/1.pal new file mode 100644 index 000000000..66561f6d3 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D5034/palettes/10.pal b/data/tilesets/secondary/82D5034/palettes/10.pal new file mode 100644 index 000000000..fb565545b --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +90 0 255 +222 222 230 diff --git a/data/tilesets/secondary/82D5034/palettes/11.pal b/data/tilesets/secondary/82D5034/palettes/11.pal new file mode 100644 index 000000000..e637019c6 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +90 0 255 +139 148 139 diff --git a/data/tilesets/secondary/82D5034/palettes/12.pal b/data/tilesets/secondary/82D5034/palettes/12.pal new file mode 100644 index 000000000..775369fed --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +90 0 255 +156 197 213 diff --git a/data/tilesets/secondary/82D5034/palettes/13.pal b/data/tilesets/secondary/82D5034/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5034/palettes/14.pal b/data/tilesets/secondary/82D5034/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5034/palettes/15.pal b/data/tilesets/secondary/82D5034/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5034/palettes/2.pal b/data/tilesets/secondary/82D5034/palettes/2.pal new file mode 100644 index 000000000..87a022102 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D5034/palettes/3.pal b/data/tilesets/secondary/82D5034/palettes/3.pal new file mode 100644 index 000000000..783496dcd --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/82D5034/palettes/4.pal b/data/tilesets/secondary/82D5034/palettes/4.pal new file mode 100644 index 000000000..89eace605 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/82D5034/palettes/5.pal b/data/tilesets/secondary/82D5034/palettes/5.pal new file mode 100644 index 000000000..c7780e5c7 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/82D5034/palettes/6.pal b/data/tilesets/secondary/82D5034/palettes/6.pal new file mode 100644 index 000000000..1d08ce9a2 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5034/palettes/7.pal b/data/tilesets/secondary/82D5034/palettes/7.pal new file mode 100644 index 000000000..dfa779635 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +131 131 131 +98 131 131 +139 172 172 +164 205 189 +98 106 131 +90 98 106 +98 156 197 +164 172 139 +139 156 139 +115 123 123 +205 213 156 +180 197 156 +164 172 156 +90 0 255 diff --git a/data/tilesets/secondary/82D5034/palettes/8.pal b/data/tilesets/secondary/82D5034/palettes/8.pal new file mode 100644 index 000000000..fd7d8a9d7 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +205 139 189 +213 148 74 diff --git a/data/tilesets/secondary/82D5034/palettes/9.pal b/data/tilesets/secondary/82D5034/palettes/9.pal new file mode 100644 index 000000000..0d43d6ef9 --- /dev/null +++ b/data/tilesets/secondary/82D5034/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +131 205 82 +230 213 82 diff --git a/data/tilesets/secondary/82D5034/tiles.png b/data/tilesets/secondary/82D5034/tiles.png new file mode 100644 index 000000000..c61f91c47 Binary files /dev/null and b/data/tilesets/secondary/82D5034/tiles.png differ diff --git a/data/tilesets/secondary/82D504C/metatile_attributes.bin b/data/tilesets/secondary/82D504C/metatile_attributes.bin new file mode 100644 index 000000000..62eb1b917 Binary files /dev/null and b/data/tilesets/secondary/82D504C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D504C/metatiles.bin b/data/tilesets/secondary/82D504C/metatiles.bin new file mode 100644 index 000000000..52d2f020d Binary files /dev/null and b/data/tilesets/secondary/82D504C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D504C/palettes/0.pal b/data/tilesets/secondary/82D504C/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D504C/palettes/1.pal b/data/tilesets/secondary/82D504C/palettes/1.pal new file mode 100644 index 000000000..e15d979f1 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +65 49 65 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D504C/palettes/10.pal b/data/tilesets/secondary/82D504C/palettes/10.pal new file mode 100644 index 000000000..265fb0625 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +205 222 238 +156 172 189 +123 123 131 +90 90 115 +65 74 106 +255 255 180 +255 238 123 +156 115 65 +238 197 246 +213 156 213 +189 106 172 +238 230 74 +238 189 0 +222 156 0 +255 255 255 diff --git a/data/tilesets/secondary/82D504C/palettes/11.pal b/data/tilesets/secondary/82D504C/palettes/11.pal new file mode 100644 index 000000000..9e1e423c6 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +238 238 246 +197 205 222 +172 172 197 +139 156 172 +123 123 131 +90 90 115 +65 74 106 +123 139 222 +115 189 246 +255 230 156 +255 189 65 +238 164 41 +213 131 16 +180 82 0 +255 205 106 diff --git a/data/tilesets/secondary/82D504C/palettes/12.pal b/data/tilesets/secondary/82D504C/palettes/12.pal new file mode 100644 index 000000000..375e3914b --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +65 49 65 +230 238 238 +90 189 139 +90 90 115 +230 230 222 +213 213 197 +180 180 164 +148 148 131 +123 123 90 +98 98 74 +115 205 164 diff --git a/data/tilesets/secondary/82D504C/palettes/13.pal b/data/tilesets/secondary/82D504C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D504C/palettes/14.pal b/data/tilesets/secondary/82D504C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D504C/palettes/15.pal b/data/tilesets/secondary/82D504C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D504C/palettes/2.pal b/data/tilesets/secondary/82D504C/palettes/2.pal new file mode 100644 index 000000000..372fb5d7c --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D504C/palettes/3.pal b/data/tilesets/secondary/82D504C/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D504C/palettes/4.pal b/data/tilesets/secondary/82D504C/palettes/4.pal new file mode 100644 index 000000000..fca4a2623 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +74 139 189 +65 123 189 +82 139 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D504C/palettes/5.pal b/data/tilesets/secondary/82D504C/palettes/5.pal new file mode 100644 index 000000000..09555ded5 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D504C/palettes/6.pal b/data/tilesets/secondary/82D504C/palettes/6.pal new file mode 100644 index 000000000..f8ebbc6dc --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +65 123 172 +41 98 156 +74 115 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D504C/palettes/7.pal b/data/tilesets/secondary/82D504C/palettes/7.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D504C/palettes/8.pal b/data/tilesets/secondary/82D504C/palettes/8.pal new file mode 100644 index 000000000..4d9ab6348 --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +131 197 164 +98 164 131 +123 123 131 +90 90 115 +65 74 106 +222 230 238 +197 213 230 +164 180 197 +255 222 255 +222 172 230 +172 123 189 +148 98 164 +115 65 131 +238 213 156 +205 189 123 diff --git a/data/tilesets/secondary/82D504C/palettes/9.pal b/data/tilesets/secondary/82D504C/palettes/9.pal new file mode 100644 index 000000000..b66fdcdbf --- /dev/null +++ b/data/tilesets/secondary/82D504C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +115 189 246 +98 164 222 +123 123 131 +90 90 115 +65 74 106 +246 246 213 +230 230 189 +189 189 148 +172 172 131 +156 156 115 +230 222 115 +246 156 115 +222 115 98 +131 230 180 +49 164 123 diff --git a/data/tilesets/secondary/82D504C/tiles.png b/data/tilesets/secondary/82D504C/tiles.png new file mode 100644 index 000000000..ad8f73a2c Binary files /dev/null and b/data/tilesets/secondary/82D504C/tiles.png differ diff --git a/data/tilesets/secondary/82D5064/metatile_attributes.bin b/data/tilesets/secondary/82D5064/metatile_attributes.bin new file mode 100644 index 000000000..d67c4690c Binary files /dev/null and b/data/tilesets/secondary/82D5064/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D5064/metatiles.bin b/data/tilesets/secondary/82D5064/metatiles.bin new file mode 100644 index 000000000..7613f3702 Binary files /dev/null and b/data/tilesets/secondary/82D5064/metatiles.bin differ diff --git a/data/tilesets/secondary/82D5064/palettes/0.pal b/data/tilesets/secondary/82D5064/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D5064/palettes/1.pal b/data/tilesets/secondary/82D5064/palettes/1.pal new file mode 100644 index 000000000..d8a4e7757 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D5064/palettes/10.pal b/data/tilesets/secondary/82D5064/palettes/10.pal new file mode 100644 index 000000000..86502dd48 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +205 222 230 +164 180 197 +123 123 131 +90 90 115 +65 74 106 +205 197 148 +180 172 123 +156 148 106 +230 156 106 +197 115 74 +172 98 49 +148 82 32 +205 222 230 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5064/palettes/11.pal b/data/tilesets/secondary/82D5064/palettes/11.pal new file mode 100644 index 000000000..b05410cba --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 0 +0 0 0 +0 0 0 +131 131 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +0 0 0 diff --git a/data/tilesets/secondary/82D5064/palettes/12.pal b/data/tilesets/secondary/82D5064/palettes/12.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5064/palettes/13.pal b/data/tilesets/secondary/82D5064/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5064/palettes/14.pal b/data/tilesets/secondary/82D5064/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5064/palettes/15.pal b/data/tilesets/secondary/82D5064/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5064/palettes/2.pal b/data/tilesets/secondary/82D5064/palettes/2.pal new file mode 100644 index 000000000..372fb5d7c --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D5064/palettes/3.pal b/data/tilesets/secondary/82D5064/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D5064/palettes/4.pal b/data/tilesets/secondary/82D5064/palettes/4.pal new file mode 100644 index 000000000..fca4a2623 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +74 139 189 +65 123 189 +82 139 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D5064/palettes/5.pal b/data/tilesets/secondary/82D5064/palettes/5.pal new file mode 100644 index 000000000..09555ded5 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D5064/palettes/6.pal b/data/tilesets/secondary/82D5064/palettes/6.pal new file mode 100644 index 000000000..f8ebbc6dc --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +65 123 172 +41 98 156 +74 115 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D5064/palettes/7.pal b/data/tilesets/secondary/82D5064/palettes/7.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5064/palettes/8.pal b/data/tilesets/secondary/82D5064/palettes/8.pal new file mode 100644 index 000000000..4d9ab6348 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +131 197 164 +98 164 131 +123 123 131 +90 90 115 +65 74 106 +222 230 238 +197 213 230 +164 180 197 +255 222 255 +222 172 230 +172 123 189 +148 98 164 +115 65 131 +238 213 156 +205 189 123 diff --git a/data/tilesets/secondary/82D5064/palettes/9.pal b/data/tilesets/secondary/82D5064/palettes/9.pal new file mode 100644 index 000000000..5ac617b25 --- /dev/null +++ b/data/tilesets/secondary/82D5064/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +156 156 222 +255 238 189 +123 123 131 +90 90 115 +65 74 106 +222 230 238 +197 213 230 +164 180 197 +255 222 139 +230 172 98 +213 139 74 +197 115 49 +156 90 16 +115 189 246 +74 131 197 diff --git a/data/tilesets/secondary/82D5064/tiles.png b/data/tilesets/secondary/82D5064/tiles.png new file mode 100644 index 000000000..744b38638 Binary files /dev/null and b/data/tilesets/secondary/82D5064/tiles.png differ diff --git a/data/tilesets/secondary/82D507C/metatile_attributes.bin b/data/tilesets/secondary/82D507C/metatile_attributes.bin new file mode 100644 index 000000000..edf192276 Binary files /dev/null and b/data/tilesets/secondary/82D507C/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D507C/metatiles.bin b/data/tilesets/secondary/82D507C/metatiles.bin new file mode 100644 index 000000000..13f97073b Binary files /dev/null and b/data/tilesets/secondary/82D507C/metatiles.bin differ diff --git a/data/tilesets/secondary/82D507C/palettes/0.pal b/data/tilesets/secondary/82D507C/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D507C/palettes/1.pal b/data/tilesets/secondary/82D507C/palettes/1.pal new file mode 100644 index 000000000..09828f4f1 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +32 49 57 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +123 74 74 +90 57 65 +115 205 164 diff --git a/data/tilesets/secondary/82D507C/palettes/10.pal b/data/tilesets/secondary/82D507C/palettes/10.pal new file mode 100644 index 000000000..d26d003af --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +238 246 255 +197 213 222 +172 189 197 +139 156 172 +123 123 131 +90 90 115 +65 74 106 +255 0 255 +131 172 148 +189 180 164 +172 164 156 +148 139 139 +123 115 115 +106 98 106 +115 205 164 diff --git a/data/tilesets/secondary/82D507C/palettes/11.pal b/data/tilesets/secondary/82D507C/palettes/11.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D507C/palettes/12.pal b/data/tilesets/secondary/82D507C/palettes/12.pal new file mode 100644 index 000000000..995731c23 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D507C/palettes/13.pal b/data/tilesets/secondary/82D507C/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D507C/palettes/14.pal b/data/tilesets/secondary/82D507C/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D507C/palettes/15.pal b/data/tilesets/secondary/82D507C/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D507C/palettes/2.pal b/data/tilesets/secondary/82D507C/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D507C/palettes/3.pal b/data/tilesets/secondary/82D507C/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D507C/palettes/4.pal b/data/tilesets/secondary/82D507C/palettes/4.pal new file mode 100644 index 000000000..5871a448c --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 246 255 +189 222 255 +139 189 255 +115 164 255 +65 139 222 +57 115 222 +82 148 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D507C/palettes/5.pal b/data/tilesets/secondary/82D507C/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D507C/palettes/6.pal b/data/tilesets/secondary/82D507C/palettes/6.pal new file mode 100644 index 000000000..9bad44649 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +205 230 246 +180 213 255 +123 180 246 +98 148 230 +65 123 189 +49 98 180 +82 131 222 +213 230 238 +172 189 205 +123 123 131 +90 90 115 +238 246 246 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D507C/palettes/7.pal b/data/tilesets/secondary/82D507C/palettes/7.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D507C/palettes/8.pal b/data/tilesets/secondary/82D507C/palettes/8.pal new file mode 100644 index 000000000..4d9ab6348 --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +131 197 164 +98 164 131 +123 123 131 +90 90 115 +65 74 106 +222 230 238 +197 213 230 +164 180 197 +255 222 255 +222 172 230 +172 123 189 +148 98 164 +115 65 131 +238 213 156 +205 189 123 diff --git a/data/tilesets/secondary/82D507C/palettes/9.pal b/data/tilesets/secondary/82D507C/palettes/9.pal new file mode 100644 index 000000000..edc5961bb --- /dev/null +++ b/data/tilesets/secondary/82D507C/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +238 246 255 +197 213 222 +139 156 172 +123 123 131 +90 90 115 +65 74 106 +115 172 246 +65 123 172 +49 90 139 +32 74 123 +189 230 164 +115 156 90 +148 131 74 +156 213 255 +98 164 230 diff --git a/data/tilesets/secondary/82D507C/tiles.png b/data/tilesets/secondary/82D507C/tiles.png new file mode 100644 index 000000000..d40c92649 Binary files /dev/null and b/data/tilesets/secondary/82D507C/tiles.png differ diff --git a/data/tilesets/secondary/82D5094/metatile_attributes.bin b/data/tilesets/secondary/82D5094/metatile_attributes.bin new file mode 100644 index 000000000..96b25bb0f Binary files /dev/null and b/data/tilesets/secondary/82D5094/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D5094/metatiles.bin b/data/tilesets/secondary/82D5094/metatiles.bin new file mode 100644 index 000000000..f045f57e8 Binary files /dev/null and b/data/tilesets/secondary/82D5094/metatiles.bin differ diff --git a/data/tilesets/secondary/82D5094/palettes/0.pal b/data/tilesets/secondary/82D5094/palettes/0.pal new file mode 100644 index 000000000..8db07d418 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D5094/palettes/1.pal b/data/tilesets/secondary/82D5094/palettes/1.pal new file mode 100644 index 000000000..66561f6d3 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D5094/palettes/10.pal b/data/tilesets/secondary/82D5094/palettes/10.pal new file mode 100644 index 000000000..ab3a7d14f --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +172 213 255 +139 189 246 +123 172 222 +98 180 230 +106 148 213 +255 0 255 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +189 230 255 +189 230 255 +156 189 213 +90 131 180 diff --git a/data/tilesets/secondary/82D5094/palettes/11.pal b/data/tilesets/secondary/82D5094/palettes/11.pal new file mode 100644 index 000000000..bb88b4d57 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +148 148 148 +123 123 123 +98 98 98 +82 82 106 +255 213 90 +230 164 74 +255 0 255 +222 230 238 +197 205 156 +205 139 115 +172 172 172 +222 230 189 +230 172 139 +0 0 0 +255 255 255 diff --git a/data/tilesets/secondary/82D5094/palettes/12.pal b/data/tilesets/secondary/82D5094/palettes/12.pal new file mode 100644 index 000000000..b0d005f21 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +205 205 205 +255 131 65 +222 98 32 +255 0 255 +222 213 90 +197 189 65 +189 180 49 +172 164 32 +213 205 90 +148 148 148 +230 230 230 diff --git a/data/tilesets/secondary/82D5094/palettes/13.pal b/data/tilesets/secondary/82D5094/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5094/palettes/14.pal b/data/tilesets/secondary/82D5094/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5094/palettes/15.pal b/data/tilesets/secondary/82D5094/palettes/15.pal new file mode 100644 index 000000000..6a17f18dc --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +172 222 172 +189 238 197 +139 189 139 +205 246 213 +172 222 172 +74 106 156 +90 131 180 +213 222 222 +156 189 213 +238 139 98 +189 98 74 +156 65 49 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5094/palettes/2.pal b/data/tilesets/secondary/82D5094/palettes/2.pal new file mode 100644 index 000000000..87a022102 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D5094/palettes/3.pal b/data/tilesets/secondary/82D5094/palettes/3.pal new file mode 100644 index 000000000..783496dcd --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/82D5094/palettes/4.pal b/data/tilesets/secondary/82D5094/palettes/4.pal new file mode 100644 index 000000000..89eace605 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/82D5094/palettes/5.pal b/data/tilesets/secondary/82D5094/palettes/5.pal new file mode 100644 index 000000000..c7780e5c7 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/82D5094/palettes/6.pal b/data/tilesets/secondary/82D5094/palettes/6.pal new file mode 100644 index 000000000..1d08ce9a2 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D5094/palettes/7.pal b/data/tilesets/secondary/82D5094/palettes/7.pal new file mode 100644 index 000000000..edc5961bb --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +238 246 255 +197 213 222 +139 156 172 +123 123 131 +90 90 115 +65 74 106 +115 172 246 +65 123 172 +49 90 139 +32 74 123 +189 230 164 +115 156 90 +148 131 74 +156 213 255 +98 164 230 diff --git a/data/tilesets/secondary/82D5094/palettes/8.pal b/data/tilesets/secondary/82D5094/palettes/8.pal new file mode 100644 index 000000000..317213c42 --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +123 74 148 +148 106 180 +230 213 246 +205 172 213 +222 213 90 +197 189 65 +189 180 49 +172 164 32 +213 205 90 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/82D5094/palettes/9.pal b/data/tilesets/secondary/82D5094/palettes/9.pal new file mode 100644 index 000000000..19dc9a47e --- /dev/null +++ b/data/tilesets/secondary/82D5094/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +255 0 255 +255 131 115 +106 197 106 +164 255 180 +238 197 115 +213 131 74 +189 213 230 +123 156 180 +90 123 156 +156 180 205 +222 230 238 diff --git a/data/tilesets/secondary/82D5094/tiles.png b/data/tilesets/secondary/82D5094/tiles.png new file mode 100644 index 000000000..f74f7c9f7 Binary files /dev/null and b/data/tilesets/secondary/82D5094/tiles.png differ diff --git a/data/tilesets/secondary/82D50AC/metatile_attributes.bin b/data/tilesets/secondary/82D50AC/metatile_attributes.bin new file mode 100644 index 000000000..9dd5f613d Binary files /dev/null and b/data/tilesets/secondary/82D50AC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D50AC/metatiles.bin b/data/tilesets/secondary/82D50AC/metatiles.bin new file mode 100644 index 000000000..d5916a2cf Binary files /dev/null and b/data/tilesets/secondary/82D50AC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D50AC/palettes/0.pal b/data/tilesets/secondary/82D50AC/palettes/0.pal new file mode 100644 index 000000000..2f3f97d6f --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/82D50AC/palettes/1.pal b/data/tilesets/secondary/82D50AC/palettes/1.pal new file mode 100644 index 000000000..22eb1667c --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +65 49 65 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/82D50AC/palettes/10.pal b/data/tilesets/secondary/82D50AC/palettes/10.pal new file mode 100644 index 000000000..3c091df8b --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +148 148 164 +205 189 197 +255 255 255 +255 213 115 +189 148 49 +139 98 74 +90 106 180 +255 205 139 +230 172 90 +230 148 65 +180 98 24 +238 213 172 +222 156 139 +123 123 123 diff --git a/data/tilesets/secondary/82D50AC/palettes/11.pal b/data/tilesets/secondary/82D50AC/palettes/11.pal new file mode 100644 index 000000000..c42eeb7e1 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +148 148 164 +172 172 164 +164 222 255 +115 180 205 +65 139 164 +41 106 148 +205 213 213 +238 230 139 +189 180 98 +139 131 65 +0 0 0 +255 255 255 +230 172 90 +189 246 255 diff --git a/data/tilesets/secondary/82D50AC/palettes/12.pal b/data/tilesets/secondary/82D50AC/palettes/12.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50AC/palettes/13.pal b/data/tilesets/secondary/82D50AC/palettes/13.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50AC/palettes/14.pal b/data/tilesets/secondary/82D50AC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50AC/palettes/15.pal b/data/tilesets/secondary/82D50AC/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50AC/palettes/2.pal b/data/tilesets/secondary/82D50AC/palettes/2.pal new file mode 100644 index 000000000..6b019b884 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/82D50AC/palettes/3.pal b/data/tilesets/secondary/82D50AC/palettes/3.pal new file mode 100644 index 000000000..205c464c7 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/82D50AC/palettes/4.pal b/data/tilesets/secondary/82D50AC/palettes/4.pal new file mode 100644 index 000000000..5871a448c --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 246 255 +189 222 255 +139 189 255 +115 164 255 +65 139 222 +57 115 222 +82 148 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D50AC/palettes/5.pal b/data/tilesets/secondary/82D50AC/palettes/5.pal new file mode 100644 index 000000000..c5a653979 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/82D50AC/palettes/6.pal b/data/tilesets/secondary/82D50AC/palettes/6.pal new file mode 100644 index 000000000..9bad44649 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +205 230 246 +180 213 255 +123 180 246 +98 148 230 +65 123 189 +49 98 180 +82 131 222 +213 230 238 +172 189 205 +123 123 131 +90 90 115 +238 246 246 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/82D50AC/palettes/7.pal b/data/tilesets/secondary/82D50AC/palettes/7.pal new file mode 100644 index 000000000..6b0281bd6 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50AC/palettes/8.pal b/data/tilesets/secondary/82D50AC/palettes/8.pal new file mode 100644 index 000000000..5c1251024 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +172 172 164 +205 213 213 +180 189 189 +148 156 156 +106 115 115 +197 246 230 +106 205 164 +57 156 115 +222 106 98 +222 213 123 +255 180 148 +197 189 98 +238 246 255 diff --git a/data/tilesets/secondary/82D50AC/palettes/9.pal b/data/tilesets/secondary/82D50AC/palettes/9.pal new file mode 100644 index 000000000..c25501332 --- /dev/null +++ b/data/tilesets/secondary/82D50AC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 123 180 +238 246 255 +222 230 238 +189 205 230 +156 164 189 +139 139 156 +98 98 123 +57 57 106 +197 98 98 +172 65 106 +32 74 156 +197 148 0 +246 213 24 +222 238 255 +255 255 255 +74 106 139 diff --git a/data/tilesets/secondary/82D50AC/tiles.png b/data/tilesets/secondary/82D50AC/tiles.png new file mode 100644 index 000000000..166ae2e18 Binary files /dev/null and b/data/tilesets/secondary/82D50AC/tiles.png differ diff --git a/data/tilesets/secondary/82D50C4/metatile_attributes.bin b/data/tilesets/secondary/82D50C4/metatile_attributes.bin new file mode 100644 index 000000000..bcc2fedb4 Binary files /dev/null and b/data/tilesets/secondary/82D50C4/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D50C4/metatiles.bin b/data/tilesets/secondary/82D50C4/metatiles.bin new file mode 100644 index 000000000..7cdfa846a Binary files /dev/null and b/data/tilesets/secondary/82D50C4/metatiles.bin differ diff --git a/data/tilesets/secondary/82D50C4/palettes/0.pal b/data/tilesets/secondary/82D50C4/palettes/0.pal new file mode 100644 index 000000000..8db07d418 --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D50C4/palettes/1.pal b/data/tilesets/secondary/82D50C4/palettes/1.pal new file mode 100644 index 000000000..fc945ef6c --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D50C4/palettes/10.pal b/data/tilesets/secondary/82D50C4/palettes/10.pal new file mode 100644 index 000000000..18908d2ef --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +222 222 222 +106 115 115 +230 197 246 +180 82 205 +148 57 180 +230 222 123 +189 180 82 +230 230 172 +222 213 139 +222 164 164 +205 139 139 +205 180 238 +189 148 230 +164 131 205 diff --git a/data/tilesets/secondary/82D50C4/palettes/11.pal b/data/tilesets/secondary/82D50C4/palettes/11.pal new file mode 100644 index 000000000..edc05893b --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 164 164 +255 255 255 +230 230 230 +123 123 123 +189 189 197 +148 148 156 +213 213 222 +98 98 106 +180 180 164 +230 172 164 +197 131 131 +180 82 205 +148 57 180 +106 189 189 +82 164 164 +57 139 139 diff --git a/data/tilesets/secondary/82D50C4/palettes/12.pal b/data/tilesets/secondary/82D50C4/palettes/12.pal new file mode 100644 index 000000000..36807053a --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 90 98 +98 123 139 +164 197 197 +222 238 238 +255 255 255 +123 123 123 +180 82 205 +131 49 164 +131 164 164 +230 213 156 +255 0 255 +213 131 222 +255 246 156 +90 16 131 +41 49 57 diff --git a/data/tilesets/secondary/82D50C4/palettes/13.pal b/data/tilesets/secondary/82D50C4/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50C4/palettes/14.pal b/data/tilesets/secondary/82D50C4/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50C4/palettes/15.pal b/data/tilesets/secondary/82D50C4/palettes/15.pal new file mode 100644 index 000000000..0b5e86def --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +131 230 255 diff --git a/data/tilesets/secondary/82D50C4/palettes/2.pal b/data/tilesets/secondary/82D50C4/palettes/2.pal new file mode 100644 index 000000000..87a022102 --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D50C4/palettes/3.pal b/data/tilesets/secondary/82D50C4/palettes/3.pal new file mode 100644 index 000000000..783496dcd --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/82D50C4/palettes/4.pal b/data/tilesets/secondary/82D50C4/palettes/4.pal new file mode 100644 index 000000000..89eace605 --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/82D50C4/palettes/5.pal b/data/tilesets/secondary/82D50C4/palettes/5.pal new file mode 100644 index 000000000..34ef2f2d2 --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +222 164 115 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/82D50C4/palettes/6.pal b/data/tilesets/secondary/82D50C4/palettes/6.pal new file mode 100644 index 000000000..1d08ce9a2 --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50C4/palettes/7.pal b/data/tilesets/secondary/82D50C4/palettes/7.pal new file mode 100644 index 000000000..6528f9f75 --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 diff --git a/data/tilesets/secondary/82D50C4/palettes/8.pal b/data/tilesets/secondary/82D50C4/palettes/8.pal new file mode 100644 index 000000000..6b56cd49e --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +222 222 222 +106 115 115 +189 230 255 +123 205 255 +98 180 246 +49 139 213 +180 180 164 +172 213 222 +156 197 205 +180 156 222 +156 131 205 +139 197 230 +131 172 222 +98 148 197 diff --git a/data/tilesets/secondary/82D50C4/palettes/9.pal b/data/tilesets/secondary/82D50C4/palettes/9.pal new file mode 100644 index 000000000..5c2ed43a0 --- /dev/null +++ b/data/tilesets/secondary/82D50C4/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +222 222 222 +106 115 115 +222 230 238 +180 197 205 +148 164 180 +131 139 139 +238 238 238 +230 230 230 +213 213 213 +139 213 156 +123 189 139 +230 222 123 +213 205 106 +189 180 90 diff --git a/data/tilesets/secondary/82D50C4/tiles.png b/data/tilesets/secondary/82D50C4/tiles.png new file mode 100644 index 000000000..0f65e1ff3 Binary files /dev/null and b/data/tilesets/secondary/82D50C4/tiles.png differ diff --git a/data/tilesets/secondary/82D50DC/metatile_attributes.bin b/data/tilesets/secondary/82D50DC/metatile_attributes.bin new file mode 100644 index 000000000..2fa59412a Binary files /dev/null and b/data/tilesets/secondary/82D50DC/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/82D50DC/metatiles.bin b/data/tilesets/secondary/82D50DC/metatiles.bin new file mode 100644 index 000000000..6f4e8a22e Binary files /dev/null and b/data/tilesets/secondary/82D50DC/metatiles.bin differ diff --git a/data/tilesets/secondary/82D50DC/palettes/0.pal b/data/tilesets/secondary/82D50DC/palettes/0.pal new file mode 100644 index 000000000..8db07d418 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/82D50DC/palettes/1.pal b/data/tilesets/secondary/82D50DC/palettes/1.pal new file mode 100644 index 000000000..66561f6d3 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/82D50DC/palettes/10.pal b/data/tilesets/secondary/82D50DC/palettes/10.pal new file mode 100644 index 000000000..6ea570459 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +238 230 156 +230 189 131 +131 189 172 +205 82 65 +255 148 0 +106 164 148 +82 139 123 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 213 197 +164 172 139 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/82D50DC/palettes/11.pal b/data/tilesets/secondary/82D50DC/palettes/11.pal new file mode 100644 index 000000000..008f150c7 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +148 148 164 +205 189 197 +255 255 255 +115 115 131 +255 0 255 +0 255 156 +106 164 148 +82 139 123 +255 0 255 +255 255 172 +255 213 115 +213 180 106 +164 131 74 +222 213 230 diff --git a/data/tilesets/secondary/82D50DC/palettes/12.pal b/data/tilesets/secondary/82D50DC/palettes/12.pal new file mode 100644 index 000000000..c1e7c3d5c --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/82D50DC/palettes/13.pal b/data/tilesets/secondary/82D50DC/palettes/13.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50DC/palettes/14.pal b/data/tilesets/secondary/82D50DC/palettes/14.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50DC/palettes/15.pal b/data/tilesets/secondary/82D50DC/palettes/15.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50DC/palettes/2.pal b/data/tilesets/secondary/82D50DC/palettes/2.pal new file mode 100644 index 000000000..87a022102 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/82D50DC/palettes/3.pal b/data/tilesets/secondary/82D50DC/palettes/3.pal new file mode 100644 index 000000000..783496dcd --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/82D50DC/palettes/4.pal b/data/tilesets/secondary/82D50DC/palettes/4.pal new file mode 100644 index 000000000..89eace605 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/82D50DC/palettes/5.pal b/data/tilesets/secondary/82D50DC/palettes/5.pal new file mode 100644 index 000000000..c7780e5c7 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/82D50DC/palettes/6.pal b/data/tilesets/secondary/82D50DC/palettes/6.pal new file mode 100644 index 000000000..1d08ce9a2 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/82D50DC/palettes/7.pal b/data/tilesets/secondary/82D50DC/palettes/7.pal new file mode 100644 index 000000000..f0c97cf87 --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 189 255 +82 123 197 +49 90 156 +106 164 148 +82 139 123 +106 164 222 +222 230 148 +189 197 115 +90 148 197 +222 164 32 +189 230 255 diff --git a/data/tilesets/secondary/82D50DC/palettes/8.pal b/data/tilesets/secondary/82D50DC/palettes/8.pal new file mode 100644 index 000000000..33b52bbbd --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +213 222 222 +180 197 213 +156 172 197 +230 106 90 +189 65 49 +255 131 115 +139 41 24 +197 255 205 +238 197 106 +255 255 213 +255 246 172 diff --git a/data/tilesets/secondary/82D50DC/palettes/9.pal b/data/tilesets/secondary/82D50DC/palettes/9.pal new file mode 100644 index 000000000..3a2cf3b7a --- /dev/null +++ b/data/tilesets/secondary/82D50DC/palettes/9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +139 222 148 +156 238 164 +197 255 205 +172 246 180 +238 238 197 +255 0 255 +255 0 255 +0 255 156 +189 65 49 +255 222 123 +246 197 0 diff --git a/data/tilesets/secondary/82D50DC/tiles.png b/data/tilesets/secondary/82D50DC/tiles.png new file mode 100644 index 000000000..f5ab3a9cb Binary files /dev/null and b/data/tilesets/secondary/82D50DC/tiles.png differ diff --git a/data/title_screen.s b/data/title_screen.s new file mode 100644 index 000000000..93d0f2f83 --- /dev/null +++ b/data/title_screen.s @@ -0,0 +1,34 @@ + .section .rodata + .align 2 +gUnknown_83BF58C:: @ 83BF58C + .incbin "baserom.gba", 0x3BF58C, 0x1C + +gUnknown_83BF5A8:: @ 83BF5A8 + .incbin "baserom.gba", 0x3BF5A8, 0x55C + +gUnknown_83BFB04:: @ 83BFB04 + .incbin "baserom.gba", 0x3BFB04, 0x18 + +gUnknown_83BFB1C:: @ 83BFB1C + .incbin "baserom.gba", 0x3BFB1C, 0x20 + +gUnknown_83BFB3C:: @ 83BFB3C + .incbin "baserom.gba", 0x3BFB3C, 0x20 + +gUnknown_83BFB5C:: @ 83BFB5C + .incbin "baserom.gba", 0x3BFB5C, 0x18 + +gUnknown_83BFB74:: @ 83BFB74 + .incbin "baserom.gba", 0x3BFB74, 0x10 + +gUnknown_83BFB84:: @ 83BFB84 + .incbin "baserom.gba", 0x3BFB84, 0x18 + +gUnknown_83BFB9C:: @ 83BFB9C + .incbin "baserom.gba", 0x3BFB9C, 0x20 + +gUnknown_83BFBBC:: @ 83BFBBC + .incbin "baserom.gba", 0x3BFBBC, 0x18 + +gUnknown_83BFBD4:: @ 83BFBD4 + .incbin "baserom.gba", 0x3BFBD4, 0x2FE8 diff --git a/data/trainer_tower.s b/data/trainer_tower.s deleted file mode 100644 index f90d1dd2b..000000000 --- a/data/trainer_tower.s +++ /dev/null @@ -1,616 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_8479D34:: - .byte 0x03, 0x26 - .align 2 - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0x99, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x27 - .align 2 - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0x9a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x01, 0x1f - .align 2 - .byte 0x4c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x01, 0x22 - .align 2 - .byte 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x41 - .align 2 - .byte 0x40, 0x41, 0x42, 0x43, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x01, 0x02 - .align 2 - .byte 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0xff, 0xff - .byte 0x54, 0x55, 0x56, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x01, 0x6d - .align 2 - .byte 0x5b, 0x5d, 0x5e, 0x5f, 0x63, 0x64, 0x65, 0x66 - .byte 0x5b, 0x5d, 0x5e, 0x5f, 0x63, 0x64, 0x65, 0xff - .byte 0x5a, 0x5c, 0x60, 0x61, 0x62, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x2e - .align 2 - .byte 0x6b, 0x6c, 0x6d, 0x6e, 0xff, 0xff, 0xff, 0xff - .byte 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0xff, 0xff - .byte 0x6b, 0x6c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x30 - .align 2 - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xa6, 0xa7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x0f - .align 2 - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x39 - .align 2 - .byte 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x36 - .align 2 - .byte 0xae, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xaf, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x3a - .align 2 - .byte 0xb2, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x3b - .align 2 - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xb4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 - .byte 0x03, 0x3e - .align 2 - .byte 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - -gUnknown_8479ED8:: @ 8479ED8 - .align 2 - .byte 0x1c, 0x03, 0x01 - .align 2 - .byte 0x38, 0x04, 0x00 - .align 2 - .byte 0x25, 0x06, 0x01 - .align 2 - .byte 0x26, 0x07, 0x00 - .align 2 - .byte 0x29, 0x08, 0x00 - .align 2 - .byte 0x2a, 0x09, 0x01 - .align 2 - .byte 0x34, 0x0a, 0x00 - .align 2 - .byte 0x1c, 0x0b, 0x01 - .align 2 - .byte 0x1d, 0x0c, 0x01 - .align 2 - .byte 0x13, 0x0d, 0x00 - .align 2 - .byte 0x34, 0x0e, 0x00 - .align 2 - .byte 0x2d, 0x0f, 0x00 - .align 2 - .byte 0x36, 0x10, 0x00 - .align 2 - .byte 0x1a, 0x11, 0x00 - .align 2 - .byte 0x1a, 0x12, 0x00 - .align 2 - .byte 0x27, 0x13, 0x00 - .align 2 - .byte 0x34, 0x14, 0x00 - .align 2 - .byte 0x13, 0x15, 0x00 - .align 2 - .byte 0x17, 0x16, 0x01 - .align 2 - .byte 0x3d, 0x17, 0x00 - .align 2 - .byte 0x13, 0x1d, 0x00 - .align 2 - .byte 0x17, 0x1e, 0x01 - .align 2 - .byte 0x1e, 0x20, 0x00 - .align 2 - .byte 0x1f, 0x21, 0x01 - .align 2 - .byte 0x20, 0x22, 0x00 - .align 2 - .byte 0x23, 0x23, 0x01 - .align 2 - .byte 0x12, 0x24, 0x00 - .align 2 - .byte 0x39, 0x26, 0x00 - .align 2 - .byte 0x29, 0x2d, 0x00 - .align 2 - .byte 0x1a, 0x2e, 0x00 - .align 2 - .byte 0x10, 0x2f, 0x00 - .align 2 - .byte 0x18, 0x30, 0x01 - .align 2 - .byte 0x1d, 0x31, 0x01 - .align 2 - .byte 0x2e, 0x32, 0x01 - .align 2 - .byte 0x28, 0x33, 0x01 - .align 2 - .byte 0x3e, 0x35, 0x00 - .align 2 - .byte 0x1b, 0x38, 0x00 - .align 2 - .byte 0x19, 0x40, 0x00 - .align 2 - .byte 0x1c, 0x41, 0x01 - .align 2 - .byte 0x27, 0x42, 0x00 - .align 2 - .byte 0x28, 0x43, 0x01 - .align 2 - .byte 0x16, 0x47, 0x01 - .align 2 - .byte 0x14, 0x48, 0x00 - .align 2 - .byte 0x38, 0x49, 0x00 - .align 2 - .byte 0x12, 0x58, 0x00 - .align 2 - .byte 0x14, 0x59, 0x00 - .align 2 - .byte 0x16, 0x5a, 0x01 - .align 2 - .byte 0x3e, 0x5b, 0x00 - .align 2 - .byte 0x27, 0x5c, 0x00 - .align 2 - .byte 0x28, 0x5d, 0x01 - .align 2 - .byte 0x34, 0x5e, 0x00 - .align 2 - .byte 0x34, 0x5f, 0x00 - .align 2 - .byte 0x38, 0x60, 0x00 - .align 2 - .byte 0x35, 0x61, 0x00 - .align 2 - .byte 0x34, 0x62, 0x00 - .align 2 - .byte 0x1e, 0x63, 0x00 - .align 2 - .byte 0x39, 0x64, 0x00 - .align 2 - .byte 0x2d, 0x65, 0x00 - .align 2 - .byte 0x35, 0x66, 0x00 - .align 2 - .byte 0x20, 0x67, 0x00 - .align 2 - .byte 0x1d, 0x68, 0x01 - .align 2 - .byte 0x2e, 0x69, 0x01 - .align 2 - .byte 0x13, 0x6a, 0x00 - .align 2 - .byte 0x1a, 0x6b, 0x00 - .align 2 - .byte 0x1a, 0x6c, 0x00 - .align 2 - .byte 0x19, 0x6d, 0x00 - .align 2 - .byte 0x1a, 0x6e, 0x00 - .align 2 - .byte 0x36, 0x6f, 0x00 - .align 2 - .byte 0x37, 0x71, 0x00 - .align 2 - .byte 0x29, 0x74, 0x00 - .align 2 - .byte 0x2a, 0x75, 0x01 - .align 2 - .byte 0x3d, 0x7a, 0x00 - .align 2 - .byte 0x3a, 0x7d, 0x01 - .align 2 - .byte 0x17, 0x89, 0x01 - .align 2 - .byte 0x18, 0x8a, 0x01 - .align 2 - .byte 0x25, 0x8b, 0x01 - .align 2 - .byte 0x1c, 0x8c, 0x01 - .align 2 - .byte 0x27, 0x8d, 0x00 - .align 2 - .byte 0x28, 0x8e, 0x01 - .align 2 - .byte 0x1c, 0x8f, 0x01 - .align 2 - .byte 0x38, 0x90, 0x00 - .align 2 - .byte 0x1c, 0x91, 0x01 - .align 2 - .byte 0x16, 0x92, 0x01 - .align 2 - -gUnknown_847A024:: @ 847A024 - .byte 0x1d, 0x17, 0x1f, 0x01, 0x01 - .align 2 - .byte 0x11, 0x11, 0x34, 0x01, 0x01 - .align 2 - .byte 0x1d, 0x19, 0x4a, 0x01, 0x00 - .align 2 - .byte 0x20, 0x23, 0x4b, 0x00, 0x01 - .align 2 - .byte 0x26, 0x2e, 0x4c, 0x00, 0x01 - .align 2 - .byte 0x11, 0x11, 0x7e, 0x01, 0x01 - .align 2 - .byte 0x29, 0x2a, 0x7f, 0x00, 0x01 - .align 2 - .byte 0x1d, 0x19, 0x80, 0x01, 0x00 - .align 2 - .byte 0x18, 0x36, 0x81, 0x01, 0x00 - .align 2 - .byte 0x2e, 0x26, 0x82, 0x01, 0x00 - - .align 2 -gUnknown_847A074:: @ 847A074 - .byte 0x03, 0x06 - .align 2 - .byte 0x37, 0x06 - .align 2 - .byte 0x02, 0x06 - .align 2 - .byte 0x67, 0x01 - .align 2 - .byte 0x04, 0x01 - .align 2 - .byte 0x24, 0x04 - .align 2 - .byte 0x4a, 0x01 - .align 2 - .byte 0x26, 0x01 - .align 2 - .byte 0x2a, 0x00 - .align 2 - .byte 0x42, 0x03 - .align 2 - .byte 0x1b, 0x09 - .align 2 - .byte 0x4c, 0x03 - .align 2 - .byte 0x44, 0x03 - .align 2 - .byte 0x21, 0x04 - .align 2 - .byte 0x43, 0x03 - .align 2 - .byte 0x6a, 0x01 - .align 2 - .byte 0x5d, 0x05 - .align 2 - .byte 0x56, 0x05 - .align 2 - .byte 0x09, 0x05 - .align 2 - .byte 0x11, 0x04 - .align 2 - .byte 0x48, 0x03 - .align 2 - .byte 0x3c, 0x00 - .align 2 - .byte 0x29, 0x00 - .align 2 - .byte 0x5c, 0x09 - .align 2 - .byte 0x28, 0x09 - .align 2 - .byte 0x06, 0x0c - .align 2 - .byte 0x68, 0x0b - .align 2 - .byte 0x05, 0x0b - .align 2 - .byte 0x58, 0x0d - .align 2 - .byte 0x16, 0x0d - .align 2 - .byte 0x46, 0x08 - .align 2 - .byte 0x0f, 0x01 - .align 2 - .byte 0x3f, 0x03 - .align 2 - .byte 0x0e, 0x03 - .align 2 - .byte 0x5f, 0x04 - .align 2 - .byte 0x63, 0x04 - .align 2 - .byte 0x50, 0x04 - .align 2 - .byte 0x10, 0x04 - .align 2 - .byte 0x52, 0x03 - .align 2 - .byte 0x35, 0x04 - .align 2 - .byte 0x5b, 0x03 - .align 2 - .byte 0x14, 0x03 - .align 2 - .byte 0x3d, 0x00 - .align 2 - .byte 0x13, 0x00 - .align 2 - .byte 0x12, 0x0b - .align 2 - .byte 0x30, 0x07 - .align 2 - .byte 0x38, 0x07 - .align 2 - .byte 0x2f, 0x07 - .align 2 - .byte 0x3b, 0x01 - .align 2 - .byte 0x31, 0x01 - .align 2 - .byte 0x4e, 0x0b - .align 2 - .byte 0x3a, 0x00 - .align 2 - .byte 0x32, 0x00 - .align 2 - .byte 0x23, 0x03 - .align 2 - .byte 0x0d, 0x0d - .align 2 - .byte 0x0a, 0x03 - .align 2 - .byte 0x49, 0x01 - .align 2 - .byte 0x0c, 0x01 - .align 2 - .byte 0x69, 0x01 - .align 2 - .byte 0x0b, 0x01 - .align 2 - .byte 0x25, 0x01 - .align 2 - .byte 0x3e, 0x02 - .align 2 - .byte 0x27, 0x02 - .align 2 - .byte 0x65, 0x01 - .align 2 - .byte 0x2d, 0x01 - .align 2 - .byte 0x61, 0x01 - .align 2 - .byte 0x2b, 0x03 - .align 2 - .byte 0x66, 0x05 - .align 2 - .byte 0x2e, 0x05 - .align 2 - .byte 0x2c, 0x00 - .align 2 - .byte 0x5e, 0x02 - .align 2 - .byte 0x34, 0x02 - .align 2 - .byte 0x51, 0x00 - .align 2 - .byte 0x59, 0x00 - .align 2 - .byte 0x40, 0x03 - .align 2 - .byte 0x55, 0x06 - .align 2 - .byte 0x53, 0x06 - .align 2 - .byte 0x4b, 0x04 - .align 2 - .byte 0x15, 0x04 - .align 2 - .byte 0x1a, 0x09 - .align 2 - .byte 0x57, 0x0a - .align 2 - .byte 0x17, 0x01 - .align 2 - .byte 0x47, 0x03 - .align 2 - .byte 0x62, 0x01 - .align 2 - .byte 0x39, 0x00 - .align 2 - .byte 0x1d, 0x00 - .align 2 - .byte 0x1c, 0x04 - .align 2 - .byte 0x20, 0x00 - .align 2 - .byte 0x4f, 0x05 - .align 2 - .byte 0x22, 0x05 - .align 2 - .byte 0x45, 0x0b - .align 2 - .byte 0x1f, 0x0b - .align 2 - .byte 0x5a, 0x00 - .align 2 - .byte 0x1e, 0x00 - .align 2 - .byte 0x08, 0x00 - .align 2 - .byte 0x64, 0x02 - .align 2 - .byte 0x07, 0x02 - .align 2 - .byte 0x60, 0x08 - .align 2 - .byte 0x36, 0x08 - .align 2 - .byte 0x41, 0x0b - .align 2 - .byte 0x33, 0x0b - .align 2 - .byte 0x54, 0x00 - .align 2 - .byte 0x18, 0x01 - .align 2 - .byte 0x4d, 0x0b - .align 2 - .byte 0x19, 0x00 - - .align 2 -gUnknown_847A218:: @ 847A218 - @ window template - .byte 0x00, 0x03, 0x01, 0x1b, 0x12, 0x0f - .2byte 0x0001 - -gUnknown_847A220:: @ 847A220 - .byte 0xFF, 0, 0, 0, 0, 0 - .2byte 0 - -gUnknown_847A228:: - .4byte 0x70 - -gUnknown_847A22C:: @ 847A22C - .byte 0x00, 0x02, 0x03 - - .align 2 -gUnknown_847A230:: @ 847A230 - .4byte sub_815DD44 - .4byte sub_815DF54 - .4byte sub_815E160 - .4byte sub_815E1C0 - .4byte sub_815E1F0 - .4byte sub_815E218 - .4byte sub_815E28C - .4byte sub_815E394 - .4byte sub_815E408 - .4byte sub_815E4B0 - .4byte sub_815E56C - .4byte sub_815E5C4 - .4byte sub_815E5F0 - .4byte sub_815E658 - .4byte sub_815E720 - .4byte sub_815E88C - .4byte sub_815E8B4 - .4byte sub_815E8CC - .4byte sub_815E908 - .4byte sub_815E948 - .4byte sub_815E9C8 - -gUnknown_847A284:: @ 847A284 - .2byte 0x012a, 0x016e, 0x0176 - .2byte 0x012b, 0x016f, 0x0177 - .2byte 0x012c, 0x0170, 0x0178 - .2byte 0x012d, 0x0171, 0x0179 - .2byte 0x012e, 0x0172, 0x017a - .2byte 0x012f, 0x0173, 0x017b - .2byte 0x0130, 0x0174, 0x017c - .2byte 0x0131, 0x0175, 0x017d - -gUnknown_847A2B4:: @ 847A2B4 - .2byte 0x3f, 0x40, 0x41, 0x42, 0x43, 0x46, 0xb3, 0xb4, 0xb9, 0xba, 0xbb, 0xc6, 0xc7, 0xc9, 0xda - -gUnknown_847A2D2:: @ 847A2D2 - .2byte 0x011d - .2byte 0x011c - .2byte 0x011c - .2byte 0x011b - .2byte 0x011d - .2byte 0x011d - .2byte 0x011b - .2byte 0x011b - .2byte 0x011d - .2byte 0x011c - .2byte 0x011d - .2byte 0x011d - .2byte 0x011d - .2byte 0x011d - -gUnknown_847A2EE:: @ 847A2EE - .byte 0x00, 0x02 - .byte 0x01, 0x03 - .byte 0x02, 0x04 - .byte 0x03, 0x05 - .byte 0x04, 0x01 - .byte 0x05, 0x02 - .byte 0x00, 0x03 - .byte 0x01, 0x04 - -gUnknown_847A2FE:: @ 847A2FE - .byte 0x00, 0x01 - .byte 0x01, 0x03 - .byte 0x02, 0x00 - .byte 0x03, 0x04 - .byte 0x04, 0x02 - .byte 0x05, 0x02 - .byte 0x00, 0x03 - .byte 0x01, 0x05 - -gUnknown_847A30E:: @ 847A30E - .byte 0x00, 0x02 - .byte 0x04, 0x01 - .byte 0x03, 0x05 - .byte 0x02, 0x03 - .byte 0x01, 0x03 - .byte 0x04, 0x00 - .byte 0x04, 0x01 - .byte 0x02, 0x05 - .byte 0x00, 0x03 - .byte 0x00, 0x05 - .byte 0x02, 0x01 - .byte 0x04, 0x05 - .byte 0x00, 0x00 diff --git a/data/trainer_tower/trainers.inc b/data/trainer_tower/trainers.inc index e2f7dd121..5f9b0f49b 100644 --- a/data/trainer_tower/trainers.inc +++ b/data/trainer_tower/trainers.inc @@ -22,8 +22,8 @@ .macro dummy_tower_team .string "$", 11 - .byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00 - + .byte FACILITY_CLASS_AQUA_LEADER, 0x01 + .align 1 .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -41,8 +41,8 @@ gUnknown_847ABAC:: .byte 0x01, 0x08, 0x00, 0x07 .string "COLE$", 11 - .byte FACILITY_CLASS_YOUNGSTER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_YOUNGSTER_2, 0x01 + .align 1 .2byte EC_WORD_AHAHA, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_ANYWHERE, EC_WORD_EXCL .2byte EC_WORD_ALL_RIGHT, EC_WORD_EXCL, EC_WORD_BYE_BYE, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_HIYAH, EC_WORD_EXCL_EXCL, EC_WORD_DONE, EC_WORD_IN, EC_WORD_TOTALLY, EC_WORD_EXCL_EXCL @@ -128,8 +128,8 @@ gUnknown_847ABAC:: gUnknown_847AF8C:: .byte 0x02, 0x08, 0x00, 0x0d .string "JAC$", 11 - .byte FACILITY_CLASS_BURGLAR, 0x01, 0x00 - + .byte FACILITY_CLASS_BURGLAR, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_A, EC_MOVE2(THIEF), EC_WORD_EXCL, EC_WORD_GIVE_ME, EC_WORD_SOMETHING .2byte EC_WORD_YOU_VE, EC_WORD_GOT, EC_WORD_NOTHING, EC_WORD_THAT, EC_WORD_I, EC_WORD_WANT .2byte EC_WORD_EEK, EC_WORD_EXCL_EXCL, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_I, EC_WORD_SURRENDER @@ -192,7 +192,7 @@ gUnknown_847AF8C:: trainerid 133, 0 @ OT ID ivs 10, 10, 10, 10, 10, 10, 1 @ IVs, ability .4byte 0x00000085 @ personality - .string "FARFETCH’D$", 11 + .string "FARFETCH'D$", 11 .byte 255 @ friendship .align 2 @@ -215,8 +215,8 @@ gUnknown_847AF8C:: gUnknown_847B36C:: .byte 0x03, 0x08, 0x00, 0x02 .string "MILY$", 11 - .byte FACILITY_CLASS_PSYCHIC_4, 0x01, 0x00 - + .byte FACILITY_CLASS_PSYCHIC_4, 0x01 + .align 1 .2byte EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(SUPERPOWER), EC_WORD_EXCL .2byte EC_WORD_ISN_T, EC_WORD_IT, EC_WORD_INCREDIBLE, EC_WORD_QUES, EC_WORD_POKEMON, EC_WORD_POWER .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWFUL, EC_MOVE(NIGHTMARE), EC_WORD_ELLIPSIS_EXCL @@ -302,8 +302,8 @@ gUnknown_847B36C:: gUnknown_847B74C:: .byte 0x04, 0x08, 0x01, 0x09 .string "JOS & ANNE$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE, EC_WORD_TO, EC_WORD_YOU, EC_WORD_HERE .2byte EC_WORD_VERY, EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, EC_WORD_GOOD, EC_WORD_BATTLE .2byte EC_WORD_UNBELIEVABLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -382,8 +382,8 @@ gUnknown_847B74C:: .byte 255 @ friendship .string "JOS & ANNE$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_HERE_GOES, EC_WORD_EXCL_EXCL, EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_LOSE .2byte EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_WE, EC_WORD_GET, EC_WORD_THE, EC_WORD_WIN .2byte EC_WORD_LOST, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_MUST_BE, EC_WORD_JOKING, EC_WORD_EXCL @@ -468,8 +468,8 @@ gUnknown_847B74C:: gUnknown_847BB2C:: .byte 0x05, 0x08, 0x01, 0x04 .string "EMY & ALEK$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_SO, EC_WORD_LOST, EC_WORD_IN, EC_WORD_LOVEY_DOVEY, EC_WORD_HAPPINESS .2byte EC_WORD_OH, EC_WORD_OH, EC_WORD_HE, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME .2byte EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_SERIOUS, EC_WORD_QUES @@ -548,8 +548,8 @@ gUnknown_847BB2C:: .byte 255 @ friendship .string "EMY & ALEK$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_GIDDY, EC_WORD_WITH, EC_WORD_LOVEY_DOVEY, EC_WORD_JOY, EC_WORD_EXCL_EXCL .2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_IS, EC_WORD_CUTE .2byte EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_SERIOUS @@ -634,8 +634,8 @@ gUnknown_847BB2C:: gUnknown_847BF0C:: .byte 0x06, 0x08, 0x01, 0x00 .string "JO & HALEY$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_WE_RE, EC_WORD_USING, EC_WORD_THAT, EC_WORD_STRATEGY, EC_WORD_OKAY, EC_WORD_QUES .2byte EC_WORD_YAY, EC_WORD_WE, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_SORRY, EC_WORD_EXCL .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TERRIBLE, EC_WORD_EXCL @@ -714,8 +714,8 @@ gUnknown_847BF0C:: .byte 255 @ friendship .string "JO & HALEY$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_YOU, EC_WORD_YOU, EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_WORD_WIN .2byte EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_JOKING, EC_WORD_QUES, EC_WORD_WE, EC_WORD_WON .2byte EC_WORD_WIMPY, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_WERE, EC_WORD_WEAK, EC_WORD_ELLIPSIS @@ -800,8 +800,8 @@ gUnknown_847BF0C:: gUnknown_847C2EC:: .byte 0x07, 0x08, 0x02, 0x0c .string "JORDY$", 11 - .byte FACILITY_CLASS_BIKER, 0x03, 0x00 - + .byte FACILITY_CLASS_BIKER, 0x03 + .align 1 .2byte EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GIGGLE, EC_WORD_YOU, EC_WORD_PUSHOVER .2byte EC_WORD_WHAT, EC_WORD_A_LITTLE, EC_WORD_PUSHOVER, EC_WORD_YOU, EC_WORD_ARE, EC_WORD_EXCL .2byte EC_WORD_YOU, EC_WORD_WERE, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK, EC_WORD_EXCL @@ -880,8 +880,8 @@ gUnknown_847C2EC:: .byte 0 @ friendship .string "ERNEST$", 11 - .byte FACILITY_CLASS_BIKER, 0x01, 0x00 - + .byte FACILITY_CLASS_BIKER, 0x01 + .align 1 .2byte EC_WORD_IT_S, EC_WORD_SLEEP, EC_WORD_TIME, EC_WORD_FOR, EC_WORD_CHILDREN, EC_WORD_EXCL .2byte EC_WORD_NOT, EC_WORD_GUTSY, EC_WORD_ENOUGH, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_WHY, EC_WORD_DID, EC_WORD_YOU, EC_WORD_CRUSH, EC_WORD_ME, EC_WORD_QUES @@ -960,8 +960,8 @@ gUnknown_847C2EC:: .byte 0 @ friendship .string "GABRIEL$", 11 - .byte FACILITY_CLASS_CUE_BALL, 0x01, 0x00 - + .byte FACILITY_CLASS_CUE_BALL, 0x01 + .align 1 .2byte EC_WORD_YAHOO, EC_WORD_EXCL, EC_WORD_HERE_I_COME, EC_WORD_TO, EC_WORD_SWARM, EC_WORD_YOU .2byte EC_WORD_I_AM, EC_WORD_INVINCIBLE, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_THAT, EC_WORD_QUES .2byte EC_WORD_WHAT, EC_WORD_WAS, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF, 0xFFFF @@ -1045,8 +1045,8 @@ gUnknown_847C2EC:: gUnknown_847C6CC:: .byte 0x08, 0x08, 0x02, 0x0e .string "MIKE$", 11 - .byte FACILITY_CLASS_HIKER_2, 0x05, 0x00 - + .byte FACILITY_CLASS_HIKER_2, 0x05 + .align 1 .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_FULL, EC_WORD_OF, EC_WORD_POWER .2byte EC_WORD_WHAT_S_UP_QUES, EC_WORD_WHERE, EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_QUES .2byte EC_WORD_YOU, EC_WORD_GOT, EC_WORD_ME, EC_WORD_WITH, EC_WORD_YOUR, EC_MOVE2(FAKE_OUT) @@ -1125,8 +1125,8 @@ gUnknown_847C6CC:: .byte 255 @ friendship .string "REBECCA$", 11 - .byte FACILITY_CLASS_CRUSH_GIRL, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_GIRL, 0x05 + .align 1 .2byte EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_OVERWHELMING .2byte EC_WORD_ARRGH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -1205,8 +1205,8 @@ gUnknown_847C6CC:: .byte 255 @ friendship .string "NICOLAS$", 11 - .byte FACILITY_CLASS_BLACK_BELT_2, 0x05, 0x00 - + .byte FACILITY_CLASS_BLACK_BELT_2, 0x05 + .align 1 .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_WHERE, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_EXCL .2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_EVER, EC_WORD_BEAT, EC_WORD_ME .2byte EC_WORD_WHY, EC_WORD_COULDN_T, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_QUES @@ -1290,8 +1290,8 @@ gUnknown_847C6CC:: gUnknown_847CAAC:: .byte 0x09, 0x08, 0x00, 0x00 .string "JOEY$", 11 - .byte FACILITY_CLASS_CAMPER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_CAMPER_2, 0x01 + .align 1 .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SCARY, EC_WORD_STRONG, EC_WORD_EXCL .2byte EC_WORD_WERE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES .2byte EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WAY, EC_WORD_TOO_STRONG, EC_WORD_EXCL @@ -1377,8 +1377,8 @@ gUnknown_847CAAC:: gUnknown_847CE8C:: .byte 0x0a, 0x08, 0x00, 0x0c .string "LILY$", 11 - .byte FACILITY_CLASS_PKMN_BREEDER_3, 0x01, 0x00 - + .byte FACILITY_CLASS_PKMN_BREEDER_3, 0x01 + .align 1 .2byte EC_WORD_I, EC_WORD_WANT, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_ELLIPSIS @@ -1464,8 +1464,8 @@ gUnknown_847CE8C:: gUnknown_847D26C:: .byte 0x0b, 0x08, 0x00, 0x0e .string "BRANDON$", 11 - .byte FACILITY_CLASS_BUG_CATCHER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_BUG_CATCHER_2, 0x01 + .align 1 .2byte EC_WORD_POISON, EC_WORD_IS, EC_WORD_JUST, EC_WORD_SO, EC_WORD_AWFUL, EC_WORD_ISN_T_IT_QUES .2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_ISN_T, EC_WORD_POISON, EC_WORD_TERRIBLE, EC_WORD_QUES .2byte EC_WORD_HUH_QUES, EC_WORD_OUR, EC_WORD_POISON, EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_QUES @@ -1551,8 +1551,8 @@ gUnknown_847D26C:: gUnknown_847D64C:: .byte 0x0c, 0x08, 0x01, 0x02 .string "RIC & RENE$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_TOO, EC_WORD_AWESOME .2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_ISN_T, EC_WORD_AWESOME, EC_WORD_QUES @@ -1631,8 +1631,8 @@ gUnknown_847D64C:: .byte 255 @ friendship .string "RIC & RENE$", 11 - .byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00 - + .byte FACILITY_CLASS_CRUSH_KIN, 0x05 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_HUH_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_NOT_VERY, EC_WORD_AWESOME, EC_WORD_QUES @@ -1717,8 +1717,8 @@ gUnknown_847D64C:: gUnknown_847DA2C:: .byte 0x0d, 0x08, 0x01, 0x0d .string "JEN & KIRA$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x05, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x05 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL .2byte EC_WORD_EHEHE, EC_WORD_YAY, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -1797,8 +1797,8 @@ gUnknown_847DA2C:: .byte 255 @ friendship .string "JEN & KIRA$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x03, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x03 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL, 0xFFFF, 0xFFFF .2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -1883,8 +1883,8 @@ gUnknown_847DA2C:: gUnknown_847DE0C:: .byte 0x0e, 0x08, 0x01, 0x08 .string "ISAC & MAG$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x01 + .align 1 .2byte EC_WORD_OUR, EC_MOVE(EARTHQUAKE), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SHAKY .2byte EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_I_AM, EC_WORD_ALL, EC_WORD_SHAKY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF @@ -1963,8 +1963,8 @@ gUnknown_847DE0C:: .byte 255 @ friendship .string "ISAC & MAG$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x01 + .align 1 .2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_DOESN_T, EC_WORD_GET, EC_WORD_ALL, EC_WORD_SHAKY .2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_LIE, EC_WORD_EXCL .2byte EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SHAKY @@ -2049,8 +2049,8 @@ gUnknown_847DE0C:: gUnknown_847E1EC:: .byte 0x0f, 0x08, 0x02, 0x06 .string "CHELSEA$", 11 - .byte FACILITY_CLASS_PKMN_RANGER_4, 0x07, 0x00 - + .byte FACILITY_CLASS_PKMN_RANGER_4, 0x07 + .align 1 .2byte EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, EC_WORD_IS, EC_WORD_IMPORTANT, EC_WORD_ISN_T_IT_QUES .2byte EC_WORD_YOU, EC_WORD_TAKE, EC_WORD_THE, EC_WORD_LOSS, 0xFFFF, 0xFFFF .2byte EC_WORD_BE, EC_WORD_KIND, EC_WORD_TO, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD @@ -2129,8 +2129,8 @@ gUnknown_847E1EC:: .byte 255 @ friendship .string "TRENTON$", 11 - .byte FACILITY_CLASS_PKMN_RANGER_3, 0x07, 0x00 - + .byte FACILITY_CLASS_PKMN_RANGER_3, 0x07 + .align 1 .2byte EC_WORD_I, EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREAT, EC_WORD_GREEN, EC_WORD_WORLD .2byte EC_WORD_TAKE_THAT, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_YOURS .2byte EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, 0xFFFF, 0xFFFF @@ -2209,8 +2209,8 @@ gUnknown_847E1EC:: .byte 255 @ friendship .string "ALBERT$", 11 - .byte FACILITY_CLASS_COOLTRAINER_3, 0x07, 0x00 - + .byte FACILITY_CLASS_COOLTRAINER_3, 0x07 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_TIME, EC_WORD_HERE .2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_THINGS, EC_WORD_EXCITING .2byte EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_THAT_WAS, EC_WORD_WILD, EC_WORD_AND, EC_WORD_EXCITING @@ -2294,8 +2294,8 @@ gUnknown_847E1EC:: gUnknown_847E5CC:: .byte 0x10, 0x08, 0x02, 0x04 .string "CAMRYN$", 11 - .byte FACILITY_CLASS_PICNICKER_2, 0x01, 0x00 - + .byte FACILITY_CLASS_PICNICKER_2, 0x01 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_I, EC_WORD_WON_T, EC_WORD_LOSE, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_I, EC_WORD_WOULD, EC_WORD_WIN .2byte EC_WORD_OH_QUES, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_DID, EC_WORD_I, EC_WORD_LOSE, EC_WORD_QUES @@ -2374,8 +2374,8 @@ gUnknown_847E5CC:: .byte 255 @ friendship .string "NATALIA$", 11 - .byte FACILITY_CLASS_AROMA_LADY_2, 0x01, 0x00 - + .byte FACILITY_CLASS_AROMA_LADY_2, 0x01 + .align 1 .2byte EC_WORD_THIS, EC_MOVE(SWEET_SCENT), EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_IT, EC_WORD_QUES .2byte EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_NICE, EC_WORD_QUES, 0xFFFF, 0xFFFF .2byte EC_WORD_THAT, EC_WORD_WASN_T, EC_WORD_GOOD, EC_WORD_QUES, 0xFFFF, 0xFFFF @@ -2454,8 +2454,8 @@ gUnknown_847E5CC:: .byte 255 @ friendship .string "KATHLEEN$", 11 - .byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00 - + .byte FACILITY_CLASS_COOLTRAINER_4, 0x07 + .align 1 .2byte EC_WORD_TOO, EC_WORD_BAD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_FOR, EC_WORD_YOU .2byte EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_HARD, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_ELLIPSIS @@ -2539,8 +2539,8 @@ gUnknown_847E5CC:: gUnknown_847E9AC:: .byte 0x11, 0x08, 0x00, 0x03 .string "BRADEN$", 11 - .byte FACILITY_CLASS_SWIMMER_MALE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_SWIMMER_MALE_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_PRETTY, EC_WORD_HAPPY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_TOUGHNESS .2byte EC_WORD_WROOOAAR_EXCL, 0xFFFF, EC_WORD_SERIOUSLY, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES .2byte EC_WORD_YOU, EC_WORD_SHOCKED, EC_WORD_ME, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HAPPINESS @@ -2626,8 +2626,8 @@ gUnknown_847E9AC:: gUnknown_847ED8C:: .byte 0x12, 0x08, 0x00, 0x0a .string "ALLYSON$", 11 - .byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00 - + .byte FACILITY_CLASS_COOLTRAINER_4, 0x07 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_ABOUT, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_TODAY .2byte EC_WORD_YES, EC_WORD_EXCL_EXCL, EC_WORD_I, EC_WORD_ADORE, EC_WORD_MYSELF, EC_WORD_TODAY .2byte EC_WORD_I_WAS, EC_WORD_CONFUSED, EC_WORD_ABOUT, EC_WORD_THINGS, EC_WORD_I, EC_WORD_THINK @@ -2713,8 +2713,8 @@ gUnknown_847ED8C:: gUnknown_847F16C:: .byte 0x13, 0x08, 0x00, 0x0e .string "ALBERTO$", 11 - .byte FACILITY_CLASS_SAILOR_2, 0x05, 0x00 - + .byte FACILITY_CLASS_SAILOR_2, 0x05 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_GET, EC_WORD_WITH, EC_WORD_IT, EC_WORD_RIGHT, EC_WORD_AWAY .2byte EC_WORD_YO, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_NOW, EC_WORD_EH_QUES .2byte EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_OVER, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SURRENDER @@ -2800,8 +2800,8 @@ gUnknown_847F16C:: gUnknown_847F54C:: .byte 0x14, 0x08, 0x01, 0x0c .string "KAT & KIPP$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_MY, EC_WORD_BEST .2byte EC_WORD_WAY, EC_WORD_TO, EC_WORD_GO, EC_WORD_MY, EC_WORD_AWESOME, EC_WORD_BROTHER .2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_IT, EC_WORD_GOES @@ -2880,8 +2880,8 @@ gUnknown_847F54C:: .byte 255 @ friendship .string "KAT & KIPP$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04 + .align 1 .2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_NEVER, EC_WORD_LOSE, EC_WORD_EXCL .2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE_RE, EC_WORD_TOO_STRONG, EC_WORD_TO, EC_WORD_LOSE .2byte EC_WORD_WHAT, EC_WORD_HUH_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_JOKING, EC_WORD_QUES @@ -2966,8 +2966,8 @@ gUnknown_847F54C:: gUnknown_847F92C:: .byte 0x15, 0x08, 0x01, 0x08 .string "GEB&MEGAN$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_OPPONENT, EC_WORD_QUES, EC_WORD_PUSHOVER, EC_WORD_HAHAHA .2byte EC_WORD_HAHAHA, EC_WORD_SORRY, EC_WORD_MY, EC_WORD_FRIEND, EC_WORD_TOUGH, EC_WORD_LOSS .2byte EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_FRIEND, EC_WORD_QUES @@ -3046,8 +3046,8 @@ gUnknown_847F92C:: .byte 255 @ friendship .string "GEB&MEGAN$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x07 + .align 1 .2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_FOE, EC_WORD_QUES, EC_WORD_GIGGLE, EC_WORD_ELLIPSIS .2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, 0xFFFF .2byte EC_WORD_MY, EC_WORD_WORD, EC_WORD_THIS, EC_WORD_IS, EC_WORD_JUST, EC_WORD_INCREDIBLE @@ -3132,8 +3132,8 @@ gUnknown_847F92C:: gUnknown_847FD0C:: .byte 0x16, 0x08, 0x01, 0x05 .string "LISA&LEAH$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x01, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x01 + .align 1 .2byte EC_WORD_ABSOLUTELY, EC_WORD_WE_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL .2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF @@ -3212,8 +3212,8 @@ gUnknown_847FD0C:: .byte 255 @ friendship .string "LISA&LEAH$", 11 - .byte FACILITY_CLASS_TWINS_2, 0x01, 0x00 - + .byte FACILITY_CLASS_TWINS_2, 0x01 + .align 1 .2byte EC_WORD_CAN, EC_WORD_WE, EC_WORD_WIN, EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_EXCITING .2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY .2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF @@ -3292,8 +3292,8 @@ gUnknown_847FD0C:: .byte 255 @ friendship .string "$", 11 - .byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00 - + .byte FACILITY_CLASS_AQUA_LEADER, 0x01 + .align 1 .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF .2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF @@ -3377,8 +3377,8 @@ gUnknown_847FD0C:: gUnknown_84800EC:: .byte 0x17, 0x08, 0x02, 0x01 .string "PRISCILLA$", 11 - .byte FACILITY_CLASS_TUBER_3, 0x01, 0x00 - + .byte FACILITY_CLASS_TUBER_3, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_A_LITTLE, EC_WORD_POKEMON, EC_WORD_GIRL, EC_WORD_HERE_I_COME, EC_WORD_EXCL .2byte EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DID, EC_WORD_I, EC_WORD_WIN, EC_WORD_QUES .2byte EC_WORD_OH_DEAR, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_ELLIPSIS @@ -3457,8 +3457,8 @@ gUnknown_84800EC:: .byte 0 @ friendship .string "CHARLOTTE$", 11 - .byte FACILITY_CLASS_LADY_2, 0x01, 0x00 - + .byte FACILITY_CLASS_LADY_2, 0x01 + .align 1 .2byte EC_WORD_HELLO, EC_WORD_THERE, EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY .2byte EC_WORD_OH, EC_WORD_MY, EC_WORD_MY, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SORRY .2byte EC_WORD_YOU_RE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY @@ -3537,8 +3537,8 @@ gUnknown_84800EC:: .byte 255 @ friendship .string "SHANIA$", 11 - .byte FACILITY_CLASS_SWIMMER_FEMALE_2, 0x01, 0x00 - + .byte FACILITY_CLASS_SWIMMER_FEMALE_2, 0x01 + .align 1 .2byte EC_WORD_A, EC_WORD_POKEMON, EC_WORD_HEROINE, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM .2byte EC_WORD_AHAHA, EC_WORD_NO, EC_WORD_WAY, EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_SERIOUSLY .2byte EC_WORD_WHY, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_LIE @@ -3622,8 +3622,8 @@ gUnknown_84800EC:: gUnknown_84804CC:: .byte 0x18, 0x08, 0x02, 0x0d .string "BRENNAN$", 11 - .byte FACILITY_CLASS_SAILOR_2, 0x01, 0x00 - + .byte FACILITY_CLASS_SAILOR_2, 0x01 + .align 1 .2byte EC_WORD_TAKE, EC_WORD_THINGS, EC_WORD_EASY, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_IMPORTANT .2byte EC_WORD_YOU, EC_WORD_LOSE, EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_EXCL .2byte EC_WORD_OOPS, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_AN, EC_WORD_EASY, EC_WORD_WIN @@ -3702,8 +3702,8 @@ gUnknown_84804CC:: .byte 255 @ friendship .string "KADEN$", 11 - .byte FACILITY_CLASS_FISHERMAN_2, 0x01, 0x00 - + .byte FACILITY_CLASS_FISHERMAN_2, 0x01 + .align 1 .2byte EC_WORD_MY, EC_WORD_FISHING, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_IS, EC_WORD_FANTASTIC .2byte EC_WORD_MY, EC_WORD_FANTASTIC, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_WINS, EC_WORD_OUT .2byte EC_WORD_UH_OH, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_LOST @@ -3782,8 +3782,8 @@ gUnknown_84804CC:: .byte 255 @ friendship .string "EMANUEL$", 11 - .byte FACILITY_CLASS_GENTLEMAN_2, 0x01, 0x00 - + .byte FACILITY_CLASS_GENTLEMAN_2, 0x01 + .align 1 .2byte EC_WORD_HMM, EC_WORD_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_SKILLED, EC_WORD_QUES .2byte EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_RIGHT, EC_WORD_ELLIPSIS .2byte EC_WORD_YOU, EC_WORD_TRULY, EC_WORD_ARE, EC_WORD_A, EC_WORD_MASTER, EC_WORD_TRAINER @@ -3867,8 +3867,8 @@ gUnknown_84804CC:: gUnknown_84808AC:: .byte 0x19, 0x08, 0x00, 0x0c .string "JARRETT$", 11 - .byte FACILITY_CLASS_JUGGLER, 0x02, 0x00 - + .byte FACILITY_CLASS_JUGGLER, 0x02 + .align 1 .2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_MOVE2(EXPLOSION), EC_WORD_PARTY, EC_WORD_EXCL .2byte EC_WORD_CONGRATS, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS, EC_WORD_PARTY, EC_WORD_KID .2byte EC_WORD_NICE, EC_MOVE(SELF_DESTRUCT), EC_WORD_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_PERFECT @@ -3954,8 +3954,8 @@ gUnknown_84808AC:: gUnknown_8480C8C:: .byte 0x1a, 0x08, 0x00, 0x0d .string "OWEN$", 11 - .byte FACILITY_CLASS_SUPER_NERD, 0x02, 0x00 - + .byte FACILITY_CLASS_SUPER_NERD, 0x02 + .align 1 .2byte EC_WORD_HERE_IT_IS, EC_MOVE2(THUNDER_WAVE), EC_WORD_DON_T, EC_MOVE2(WRAP), EC_WORD_ME, EC_WORD_EXCL .2byte EC_WORD_ACCEPT, EC_WORD_MY, EC_MOVE2(PRESENT), EC_WORD_OF, EC_MOVE2(THUNDER_WAVE), EC_WORD_EXCL .2byte EC_MOVE2(WRAP), EC_MOVE(BIND), EC_WORD_ELECTRIC, EC_MOVE2(WHIRLWIND), EC_WORD_SPIRALING, EC_WORD_AROUND @@ -4041,8 +4041,8 @@ gUnknown_8480C8C:: gUnknown_848106C:: .byte 0x1b, 0x08, 0x00, 0x01 .string "LORENZO$", 11 - .byte FACILITY_CLASS_PSYCHIC_3, 0x01, 0x00 - + .byte FACILITY_CLASS_PSYCHIC_3, 0x01 + .align 1 .2byte EC_WORD_THIS, EC_WORD_POWER, EC_WORD_IS, EC_WORD_NOW, EC_WORD_COMPLETE, EC_WORD_EXCL .2byte EC_WORD_NO, EC_WORD_KEEN_EYE, EC_WORD_CAN, EC_WORD_STOP, EC_WORD_MY, EC_WORD_POWER .2byte EC_WORD_HERE_IT_IS, EC_WORD_EXCL, EC_MOVE(KINESIS), EC_WORD_EXCL, EC_WORD_ELLIPSIS, EC_WORD_WHAT @@ -4128,8 +4128,8 @@ gUnknown_848106C:: gUnknown_848144C:: .byte 0x1c, 0x08, 0x01, 0x0b .string "NIA & CARL$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x04 + .align 1 .2byte EC_WORD_HERE_GOES, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_ROMANTIC, EC_WORD_HERO, EC_WORD_STRATEGY .2byte EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_DIGITAL, EC_WORD_HYPER, EC_WORD_MODE, EC_WORD_POWER .2byte EC_WORD_MY, EC_WORD_PERFECT, EC_WORD_STRATEGY, EC_WORD_WAS, EC_MOVE2(BEAT_UP), EC_WORD_QUES @@ -4208,8 +4208,8 @@ gUnknown_848144C:: .byte 255 @ friendship .string "NIA & CARL$", 11 - .byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00 - + .byte FACILITY_CLASS_COOL_COUPLE, 0x04 + .align 1 .2byte EC_WORD_MASTER, EC_WORD_COMPLETE, EC_WORD_FASHION, EC_WORD_SYSTEM, EC_WORD_START, EC_WORD_EXCL .2byte EC_WORD_THAT_S_IT_EXCL, EC_WORD_THE, EC_WORD_POWER, EC_WORD_OF, EC_WORD_OUR, EC_WORD_SYSTEM .2byte EC_WORD_OKAY, EC_WORD_EXCL, EC_MOVE(THUNDERBOLT), EC_WORD_RUN_AWAY, EC_WORD_SYSTEM, EC_WORD_START @@ -4294,8 +4294,8 @@ gUnknown_848144C:: gUnknown_848182C:: .byte 0x1d, 0x08, 0x01, 0x03 .string "AXE & REN$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02 + .align 1 .2byte EC_WORD_IT_S, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_WORD_AWFULLY, EC_WORD_COLD .2byte EC_WORD_THAT_S, EC_WORD_THAT, EC_WORD_MAN, EC_WORD_I_AM, EC_WORD_COLD, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SHEER_COLD), EC_WORD_ELLIPSIS @@ -4374,8 +4374,8 @@ gUnknown_848182C:: .byte 255 @ friendship .string "AXE & REN$", 11 - .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00 - + .byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02 + .align 1 .2byte EC_WORD_OUR, EC_WORD_SWIFT_SWIM, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_COLD .2byte EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_HOT .2byte EC_WORD_I_AM, EC_WORD_HUNGRY, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_HOT, EC_WORD_EATS @@ -4460,8 +4460,8 @@ gUnknown_848182C:: gUnknown_8481C0C:: .byte 0x1e, 0x08, 0x01, 0x05 .string "KATI & GEB$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02 + .align 1 .2byte EC_WORD_WELCOME, EC_WORD_TO, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_MOVE2(THUNDER_WAVE), EC_MOVE(SANDSTORM) .2byte EC_WORD_LALALA, EC_WORD_LALALA, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LALALA, EC_WORD_LIFE .2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_MY, EC_MOVE2(FRUSTRATION) @@ -4540,8 +4540,8 @@ gUnknown_8481C0C:: .byte 255 @ friendship .string "KATI & GEB$", 11 - .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00 - + .byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_PLUS, EC_WORD_YOU_RE, EC_WORD_MINUS, EC_WORD_LOVEY_DOVEY, EC_WORD_MAGNET_PULL .2byte EC_WORD_DON_T, EC_WORD_STOP, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LOCOMOTIVE, EC_WORD_EXCL .2byte EC_WORD_HIS, EC_WORD_CRY, EC_WORD_HAS, EC_WORD_CUTE_CHARM, EC_WORD_TOO, EC_WORD_EXCL @@ -4626,8 +4626,8 @@ gUnknown_8481C0C:: gUnknown_8481FEC:: .byte 0x1f, 0x08, 0x02, 0x07 .string "BEN$", 11 - .byte FACILITY_CLASS_ROCKER, 0x01, 0x00 - + .byte FACILITY_CLASS_ROCKER, 0x01 + .align 1 .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER .2byte EC_WORD_STATIC, EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YES, EC_WORD_IT, EC_WORD_IS .2byte EC_WORD_ELECTRIC, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_TELEVISION, EC_WORD_I_AM @@ -4706,8 +4706,8 @@ gUnknown_8481FEC:: .byte 255 @ friendship .string "CAMDEN$", 11 - .byte FACILITY_CLASS_ENGINEER, 0x01, 0x00 - + .byte FACILITY_CLASS_ENGINEER, 0x01 + .align 1 .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER .2byte EC_WORD_A, EC_MOVE(THUNDERBOLT), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_TOO, EC_WORD_EXCL .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_WIRELESS, EC_WORD_LINK @@ -4786,8 +4786,8 @@ gUnknown_8481FEC:: .byte 255 @ friendship .string "ZACKERY$", 11 - .byte FACILITY_CLASS_SCIENTIST, 0x01, 0x00 - + .byte FACILITY_CLASS_SCIENTIST, 0x01 + .align 1 .2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER .2byte EC_MOVE2(THUNDER_SHOCK), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_QUES .2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_WORD_EXCL_EXCL @@ -4871,8 +4871,8 @@ gUnknown_8481FEC:: gUnknown_84823CC:: .byte 0x20, 0x08, 0x02, 0x0e .string "MAURA$", 11 - .byte FACILITY_CLASS_BEAUTY_2, 0x02, 0x00 - + .byte FACILITY_CLASS_BEAUTY_2, 0x02 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_THE, EC_WORD_GROUP, EC_WORD_LEADER, EC_WORD_EXCL, 0xFFFF .2byte EC_WORD_WHAT, EC_WORD_AM, EC_WORD_I, EC_WORD_LEADER, EC_WORD_OF, EC_WORD_QUES .2byte EC_WORD_I_AM, EC_WORD_NO, EC_WORD_LEADER, EC_WORD_IT_S, EC_WORD_A_LITTLE, EC_WORD_LIE @@ -4951,8 +4951,8 @@ gUnknown_84823CC:: .byte 255 @ friendship .string "MIKAELA$", 11 - .byte FACILITY_CLASS_LASS_2, 0x01, 0x00 - + .byte FACILITY_CLASS_LASS_2, 0x01 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_THE, EC_WORD_NO_1, EC_WORD_TRAINER, EC_WORD_HERE .2byte EC_WORD_NEVER, EC_WORD_SAID, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_AT .2byte EC_WORD_NEXT, EC_WORD_TIME, EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_OVERWHELMING @@ -5031,8 +5031,8 @@ gUnknown_84823CC:: .byte 255 @ friendship .string "FLINT$", 11 - .byte FACILITY_CLASS_ENGINEER, 0x04, 0x00 - + .byte FACILITY_CLASS_ENGINEER, 0x04 + .align 1 .2byte EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(MILK_DRINK), EC_WORD_WORLD, EC_WORD_LEADER, EC_WORD_EXCL .2byte EC_WORD_I_VE, EC_WORD_WON, EC_WORD_THIS, EC_MOVE2(MILK_DRINK), EC_WORD_MATCH, EC_WORD_EXCL .2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_DRINK, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_DRINKS diff --git a/data/unk_text_util.s b/data/unk_text_util.s new file mode 100644 index 000000000..5e5ce1a5d --- /dev/null +++ b/data/unk_text_util.s @@ -0,0 +1,5 @@ + .section .rodata + .align 2 + +gUnknown_8464300:: @ 8464300 + .incbin "baserom.gba", 0x464300, 0x4C diff --git a/data/wild_pokemon_area.s b/data/wild_pokemon_area.s new file mode 100644 index 000000000..26913b7c6 --- /dev/null +++ b/data/wild_pokemon_area.s @@ -0,0 +1,14 @@ + .section .rodata + .align 2 + +gUnknown_8464148:: @ 8464148 + .incbin "baserom.gba", 0x464148, 0x174 + +gUnknown_84642BC:: @ 84642BC + .incbin "baserom.gba", 0x4642BC, 0x4 + +gUnknown_84642C0:: @ 84642C0 + .incbin "baserom.gba", 0x4642C0, 0x34 + +gUnknown_84642F4:: @ 84642F4 + .incbin "baserom.gba", 0x4642F4, 0xC diff --git a/graphics/help_system/unk_845BCB0.bin b/graphics/help_system/unk_845BCB0.bin new file mode 100644 index 000000000..b7ceb5080 Binary files /dev/null and b/graphics/help_system/unk_845BCB0.bin differ diff --git a/graphics/help_system/unk_8464008.png b/graphics/help_system/unk_8464008.png new file mode 100644 index 000000000..339a685d5 Binary files /dev/null and b/graphics/help_system/unk_8464008.png differ diff --git a/graphics/interface/unk_textbox_border.png b/graphics/interface/unk_textbox_border.png new file mode 100644 index 000000000..6cc6a64ac Binary files /dev/null and b/graphics/interface/unk_textbox_border.png differ diff --git a/graphics/item_pc/unk_8E85090.png b/graphics/item_pc/unk_8E85090.png new file mode 100644 index 000000000..6c6748683 Binary files /dev/null and b/graphics/item_pc/unk_8E85090.png differ diff --git a/graphics/item_pc/unk_8E85408.pal b/graphics/item_pc/unk_8E85408.pal new file mode 100644 index 000000000..b873bd0f6 --- /dev/null +++ b/graphics/item_pc/unk_8E85408.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +148 189 246 +106 172 230 +238 246 246 +222 230 230 +255 189 74 +230 131 41 +172 74 8 +156 164 172 +115 123 139 +164 255 139 +139 238 106 +115 222 82 +98 205 57 +230 230 238 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +189 213 213 +238 255 255 +222 246 255 +255 255 255 +164 222 255 +16 172 222 +0 82 115 +0 115 139 +0 123 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +189 213 213 +238 255 255 +222 246 255 +255 255 255 +164 222 255 +24 82 180 +0 90 131 +24 82 180 +24 82 180 diff --git a/graphics/item_pc/unk_8E85458.bin b/graphics/item_pc/unk_8E85458.bin new file mode 100644 index 000000000..046ef83b4 Binary files /dev/null and b/graphics/item_pc/unk_8E85458.bin differ diff --git a/graphics/misc/egg_hatch.png b/graphics/misc/egg_hatch.png new file mode 100644 index 000000000..d8a3e432c Binary files /dev/null and b/graphics/misc/egg_hatch.png differ diff --git a/graphics/misc/egg_shard.png b/graphics/misc/egg_shard.png new file mode 100644 index 000000000..0d88590dc Binary files /dev/null and b/graphics/misc/egg_shard.png differ diff --git a/graphics/misc/unk_8.pal b/graphics/misc/unk_8.pal new file mode 100644 index 000000000..d7d8f43b7 --- /dev/null +++ b/graphics/misc/unk_8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 24 0 +0 131 213 +32 205 255 +115 106 164 +74 156 49 +16 106 65 +238 8 8 +16 164 16 +32 32 205 +74 65 90 +139 0 74 +90 32 49 +0 115 0 +255 90 65 +24 172 164 +246 106 49 diff --git a/graphics/misc/unk_846B008.png b/graphics/misc/unk_846B008.png new file mode 100644 index 000000000..4fed89d24 Binary files /dev/null and b/graphics/misc/unk_846B008.png differ diff --git a/graphics/misc/unk_846f4d0.pal b/graphics/misc/unk_846f4d0.pal new file mode 100644 index 000000000..dd11346b7 --- /dev/null +++ b/graphics/misc/unk_846f4d0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f4f0.pal b/graphics/misc/unk_846f4f0.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/graphics/misc/unk_846f4f0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/misc/unk_846f510.pal b/graphics/misc/unk_846f510.pal new file mode 100644 index 000000000..7779155a6 --- /dev/null +++ b/graphics/misc/unk_846f510.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +74 246 255 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f530.pal b/graphics/misc/unk_846f530.pal new file mode 100644 index 000000000..30040b471 --- /dev/null +++ b/graphics/misc/unk_846f530.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +74 246 255 +57 213 230 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f550.pal b/graphics/misc/unk_846f550.pal new file mode 100644 index 000000000..3b40e7681 --- /dev/null +++ b/graphics/misc/unk_846f550.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +74 246 255 +57 213 230 +49 180 205 +0 32 98 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f570.pal b/graphics/misc/unk_846f570.pal new file mode 100644 index 000000000..b0756a995 --- /dev/null +++ b/graphics/misc/unk_846f570.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +90 90 90 +90 90 90 +90 90 90 +74 246 255 +57 213 230 +49 180 205 +41 148 180 +0 32 98 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f590.pal b/graphics/misc/unk_846f590.pal new file mode 100644 index 000000000..60916f08c --- /dev/null +++ b/graphics/misc/unk_846f590.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +90 90 90 +90 90 90 +74 246 255 +57 213 230 +49 180 205 +41 148 180 +24 123 164 +0 32 98 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f5b0.pal b/graphics/misc/unk_846f5b0.pal new file mode 100644 index 000000000..b59dc5901 --- /dev/null +++ b/graphics/misc/unk_846f5b0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +90 90 90 +74 246 255 +57 213 230 +49 180 205 +41 148 180 +24 123 164 +16 90 139 +0 32 98 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f5d0.pal b/graphics/misc/unk_846f5d0.pal new file mode 100644 index 000000000..3f14d81e7 --- /dev/null +++ b/graphics/misc/unk_846f5d0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 246 255 +57 213 230 +49 180 205 +41 148 180 +24 123 164 +16 90 139 +8 57 115 +0 32 98 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f5f0.pal b/graphics/misc/unk_846f5f0.pal new file mode 100644 index 000000000..e3da8baa6 --- /dev/null +++ b/graphics/misc/unk_846f5f0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +57 213 230 +49 180 205 +41 148 180 +24 123 164 +16 90 139 +8 57 115 +8 57 115 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f610.pal b/graphics/misc/unk_846f610.pal new file mode 100644 index 000000000..1544a2303 --- /dev/null +++ b/graphics/misc/unk_846f610.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +49 180 205 +41 148 180 +24 123 164 +16 90 139 +8 57 115 +8 57 115 +90 90 90 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f630.pal b/graphics/misc/unk_846f630.pal new file mode 100644 index 000000000..8d3b1d4bc --- /dev/null +++ b/graphics/misc/unk_846f630.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +41 148 180 +24 123 164 +16 90 139 +8 57 115 +8 57 115 +90 90 90 +90 90 90 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f650.pal b/graphics/misc/unk_846f650.pal new file mode 100644 index 000000000..5ab981ba3 --- /dev/null +++ b/graphics/misc/unk_846f650.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +24 123 164 +16 90 139 +8 57 115 +8 57 115 +90 90 90 +90 90 90 +90 90 90 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f670.pal b/graphics/misc/unk_846f670.pal new file mode 100644 index 000000000..46ad15269 --- /dev/null +++ b/graphics/misc/unk_846f670.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +16 90 139 +8 57 115 +8 57 115 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f690.pal b/graphics/misc/unk_846f690.pal new file mode 100644 index 000000000..d1e4bdd02 --- /dev/null +++ b/graphics/misc/unk_846f690.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +8 57 115 +8 57 115 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f6b0.pal b/graphics/misc/unk_846f6b0.pal new file mode 100644 index 000000000..dd11346b7 --- /dev/null +++ b/graphics/misc/unk_846f6b0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +90 90 90 +57 57 57 +172 123 0 +90 90 90 +57 57 57 +164 164 164 +255 180 0 +106 106 106 +74 74 74 diff --git a/graphics/misc/unk_846f6d0.png b/graphics/misc/unk_846f6d0.png new file mode 100644 index 000000000..4c453cf1a Binary files /dev/null and b/graphics/misc/unk_846f6d0.png differ diff --git a/graphics/misc/unk_846f8e0.bin b/graphics/misc/unk_846f8e0.bin new file mode 100644 index 000000000..1665bdff1 Binary files /dev/null and b/graphics/misc/unk_846f8e0.bin differ diff --git a/graphics/misc/unk_8479688.png b/graphics/misc/unk_8479688.png new file mode 100644 index 000000000..9c84eaf1e Binary files /dev/null and b/graphics/misc/unk_8479688.png differ diff --git a/graphics/misc/unk_8479748.png b/graphics/misc/unk_8479748.png new file mode 100644 index 000000000..29b9ee764 Binary files /dev/null and b/graphics/misc/unk_8479748.png differ diff --git a/graphics/pokemon/back_pics/abra_back_pic.png b/graphics/pokemon/abra/back.png similarity index 100% rename from graphics/pokemon/back_pics/abra_back_pic.png rename to graphics/pokemon/abra/back.png diff --git a/graphics/pokemon/footprints/abra_footprint.png b/graphics/pokemon/abra/footprint.png similarity index 100% rename from graphics/pokemon/footprints/abra_footprint.png rename to graphics/pokemon/abra/footprint.png diff --git a/graphics/pokemon/front_pics/abra_still_front_pic.png b/graphics/pokemon/abra/front.png similarity index 100% rename from graphics/pokemon/front_pics/abra_still_front_pic.png rename to graphics/pokemon/abra/front.png diff --git a/graphics/pokemon/icons/abra_icon.png b/graphics/pokemon/abra/icon.png similarity index 100% rename from graphics/pokemon/icons/abra_icon.png rename to graphics/pokemon/abra/icon.png diff --git a/graphics/pokemon/palettes/abra_palette.pal b/graphics/pokemon/abra/normal.pal similarity index 100% rename from graphics/pokemon/palettes/abra_palette.pal rename to graphics/pokemon/abra/normal.pal diff --git a/graphics/pokemon/palettes/abra_shiny_palette.pal b/graphics/pokemon/abra/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/abra_shiny_palette.pal rename to graphics/pokemon/abra/shiny.pal diff --git a/graphics/pokemon/back_pics/absol_back_pic.png b/graphics/pokemon/absol/back.png similarity index 100% rename from graphics/pokemon/back_pics/absol_back_pic.png rename to graphics/pokemon/absol/back.png diff --git a/graphics/pokemon/footprints/absol_footprint.png b/graphics/pokemon/absol/footprint.png similarity index 100% rename from graphics/pokemon/footprints/absol_footprint.png rename to graphics/pokemon/absol/footprint.png diff --git a/graphics/pokemon/front_pics/absol_still_front_pic.png b/graphics/pokemon/absol/front.png similarity index 100% rename from graphics/pokemon/front_pics/absol_still_front_pic.png rename to graphics/pokemon/absol/front.png diff --git a/graphics/pokemon/icons/absol_icon.png b/graphics/pokemon/absol/icon.png similarity index 100% rename from graphics/pokemon/icons/absol_icon.png rename to graphics/pokemon/absol/icon.png diff --git a/graphics/pokemon/palettes/absol_palette.pal b/graphics/pokemon/absol/normal.pal similarity index 100% rename from graphics/pokemon/palettes/absol_palette.pal rename to graphics/pokemon/absol/normal.pal diff --git a/graphics/pokemon/palettes/absol_shiny_palette.pal b/graphics/pokemon/absol/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/absol_shiny_palette.pal rename to graphics/pokemon/absol/shiny.pal diff --git a/graphics/pokemon/back_pics/aerodactyl_back_pic.png b/graphics/pokemon/aerodactyl/back.png similarity index 100% rename from graphics/pokemon/back_pics/aerodactyl_back_pic.png rename to graphics/pokemon/aerodactyl/back.png diff --git a/graphics/pokemon/footprints/aerodactyl_footprint.png b/graphics/pokemon/aerodactyl/footprint.png similarity index 100% rename from graphics/pokemon/footprints/aerodactyl_footprint.png rename to graphics/pokemon/aerodactyl/footprint.png diff --git a/graphics/pokemon/front_pics/aerodactyl_still_front_pic.png b/graphics/pokemon/aerodactyl/front.png similarity index 100% rename from graphics/pokemon/front_pics/aerodactyl_still_front_pic.png rename to graphics/pokemon/aerodactyl/front.png diff --git a/graphics/pokemon/icons/aerodactyl_icon.png b/graphics/pokemon/aerodactyl/icon.png similarity index 100% rename from graphics/pokemon/icons/aerodactyl_icon.png rename to graphics/pokemon/aerodactyl/icon.png diff --git a/graphics/pokemon/palettes/aerodactyl_palette.pal b/graphics/pokemon/aerodactyl/normal.pal similarity index 100% rename from graphics/pokemon/palettes/aerodactyl_palette.pal rename to graphics/pokemon/aerodactyl/normal.pal diff --git a/graphics/pokemon/palettes/aerodactyl_shiny_palette.pal b/graphics/pokemon/aerodactyl/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/aerodactyl_shiny_palette.pal rename to graphics/pokemon/aerodactyl/shiny.pal diff --git a/graphics/pokemon/back_pics/aggron_back_pic.png b/graphics/pokemon/aggron/back.png similarity index 100% rename from graphics/pokemon/back_pics/aggron_back_pic.png rename to graphics/pokemon/aggron/back.png diff --git a/graphics/pokemon/footprints/aggron_footprint.png b/graphics/pokemon/aggron/footprint.png similarity index 100% rename from graphics/pokemon/footprints/aggron_footprint.png rename to graphics/pokemon/aggron/footprint.png diff --git a/graphics/pokemon/front_pics/aggron_still_front_pic.png b/graphics/pokemon/aggron/front.png similarity index 100% rename from graphics/pokemon/front_pics/aggron_still_front_pic.png rename to graphics/pokemon/aggron/front.png diff --git a/graphics/pokemon/icons/aggron_icon.png b/graphics/pokemon/aggron/icon.png similarity index 100% rename from graphics/pokemon/icons/aggron_icon.png rename to graphics/pokemon/aggron/icon.png diff --git a/graphics/pokemon/palettes/aggron_palette.pal b/graphics/pokemon/aggron/normal.pal similarity index 100% rename from graphics/pokemon/palettes/aggron_palette.pal rename to graphics/pokemon/aggron/normal.pal diff --git a/graphics/pokemon/palettes/aggron_shiny_palette.pal b/graphics/pokemon/aggron/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/aggron_shiny_palette.pal rename to graphics/pokemon/aggron/shiny.pal diff --git a/graphics/pokemon/back_pics/aipom_back_pic.png b/graphics/pokemon/aipom/back.png similarity index 100% rename from graphics/pokemon/back_pics/aipom_back_pic.png rename to graphics/pokemon/aipom/back.png diff --git a/graphics/pokemon/footprints/aipom_footprint.png b/graphics/pokemon/aipom/footprint.png similarity index 100% rename from graphics/pokemon/footprints/aipom_footprint.png rename to graphics/pokemon/aipom/footprint.png diff --git a/graphics/pokemon/front_pics/aipom_still_front_pic.png b/graphics/pokemon/aipom/front.png similarity index 100% rename from graphics/pokemon/front_pics/aipom_still_front_pic.png rename to graphics/pokemon/aipom/front.png diff --git a/graphics/pokemon/icons/aipom_icon.png b/graphics/pokemon/aipom/icon.png similarity index 100% rename from graphics/pokemon/icons/aipom_icon.png rename to graphics/pokemon/aipom/icon.png diff --git a/graphics/pokemon/palettes/aipom_palette.pal b/graphics/pokemon/aipom/normal.pal similarity index 100% rename from graphics/pokemon/palettes/aipom_palette.pal rename to graphics/pokemon/aipom/normal.pal diff --git a/graphics/pokemon/palettes/aipom_shiny_palette.pal b/graphics/pokemon/aipom/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/aipom_shiny_palette.pal rename to graphics/pokemon/aipom/shiny.pal diff --git a/graphics/pokemon/back_pics/alakazam_back_pic.png b/graphics/pokemon/alakazam/back.png similarity index 100% rename from graphics/pokemon/back_pics/alakazam_back_pic.png rename to graphics/pokemon/alakazam/back.png diff --git a/graphics/pokemon/footprints/alakazam_footprint.png b/graphics/pokemon/alakazam/footprint.png similarity index 100% rename from graphics/pokemon/footprints/alakazam_footprint.png rename to graphics/pokemon/alakazam/footprint.png diff --git a/graphics/pokemon/front_pics/alakazam_still_front_pic.png b/graphics/pokemon/alakazam/front.png similarity index 100% rename from graphics/pokemon/front_pics/alakazam_still_front_pic.png rename to graphics/pokemon/alakazam/front.png diff --git a/graphics/pokemon/icons/alakazam_icon.png b/graphics/pokemon/alakazam/icon.png similarity index 100% rename from graphics/pokemon/icons/alakazam_icon.png rename to graphics/pokemon/alakazam/icon.png diff --git a/graphics/pokemon/palettes/alakazam_palette.pal b/graphics/pokemon/alakazam/normal.pal similarity index 100% rename from graphics/pokemon/palettes/alakazam_palette.pal rename to graphics/pokemon/alakazam/normal.pal diff --git a/graphics/pokemon/palettes/alakazam_shiny_palette.pal b/graphics/pokemon/alakazam/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/alakazam_shiny_palette.pal rename to graphics/pokemon/alakazam/shiny.pal diff --git a/graphics/pokemon/back_pics/altaria_back_pic.png b/graphics/pokemon/altaria/back.png similarity index 100% rename from graphics/pokemon/back_pics/altaria_back_pic.png rename to graphics/pokemon/altaria/back.png diff --git a/graphics/pokemon/footprints/altaria_footprint.png b/graphics/pokemon/altaria/footprint.png similarity index 100% rename from graphics/pokemon/footprints/altaria_footprint.png rename to graphics/pokemon/altaria/footprint.png diff --git a/graphics/pokemon/front_pics/altaria_still_front_pic.png b/graphics/pokemon/altaria/front.png similarity index 100% rename from graphics/pokemon/front_pics/altaria_still_front_pic.png rename to graphics/pokemon/altaria/front.png diff --git a/graphics/pokemon/icons/altaria_icon.png b/graphics/pokemon/altaria/icon.png similarity index 100% rename from graphics/pokemon/icons/altaria_icon.png rename to graphics/pokemon/altaria/icon.png diff --git a/graphics/pokemon/palettes/altaria_palette.pal b/graphics/pokemon/altaria/normal.pal similarity index 100% rename from graphics/pokemon/palettes/altaria_palette.pal rename to graphics/pokemon/altaria/normal.pal diff --git a/graphics/pokemon/palettes/altaria_shiny_palette.pal b/graphics/pokemon/altaria/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/altaria_shiny_palette.pal rename to graphics/pokemon/altaria/shiny.pal diff --git a/graphics/pokemon/back_pics/ampharos_back_pic.png b/graphics/pokemon/ampharos/back.png similarity index 100% rename from graphics/pokemon/back_pics/ampharos_back_pic.png rename to graphics/pokemon/ampharos/back.png diff --git a/graphics/pokemon/footprints/ampharos_footprint.png b/graphics/pokemon/ampharos/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ampharos_footprint.png rename to graphics/pokemon/ampharos/footprint.png diff --git a/graphics/pokemon/front_pics/ampharos_still_front_pic.png b/graphics/pokemon/ampharos/front.png similarity index 100% rename from graphics/pokemon/front_pics/ampharos_still_front_pic.png rename to graphics/pokemon/ampharos/front.png diff --git a/graphics/pokemon/icons/ampharos_icon.png b/graphics/pokemon/ampharos/icon.png similarity index 100% rename from graphics/pokemon/icons/ampharos_icon.png rename to graphics/pokemon/ampharos/icon.png diff --git a/graphics/pokemon/palettes/ampharos_palette.pal b/graphics/pokemon/ampharos/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ampharos_palette.pal rename to graphics/pokemon/ampharos/normal.pal diff --git a/graphics/pokemon/palettes/ampharos_shiny_palette.pal b/graphics/pokemon/ampharos/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ampharos_shiny_palette.pal rename to graphics/pokemon/ampharos/shiny.pal diff --git a/graphics/pokemon/back_pics/anorith_back_pic.png b/graphics/pokemon/anorith/back.png similarity index 100% rename from graphics/pokemon/back_pics/anorith_back_pic.png rename to graphics/pokemon/anorith/back.png diff --git a/graphics/pokemon/footprints/anorith_footprint.png b/graphics/pokemon/anorith/footprint.png similarity index 100% rename from graphics/pokemon/footprints/anorith_footprint.png rename to graphics/pokemon/anorith/footprint.png diff --git a/graphics/pokemon/front_pics/anorith_still_front_pic.png b/graphics/pokemon/anorith/front.png similarity index 100% rename from graphics/pokemon/front_pics/anorith_still_front_pic.png rename to graphics/pokemon/anorith/front.png diff --git a/graphics/pokemon/icons/anorith_icon.png b/graphics/pokemon/anorith/icon.png similarity index 100% rename from graphics/pokemon/icons/anorith_icon.png rename to graphics/pokemon/anorith/icon.png diff --git a/graphics/pokemon/palettes/anorith_palette.pal b/graphics/pokemon/anorith/normal.pal similarity index 100% rename from graphics/pokemon/palettes/anorith_palette.pal rename to graphics/pokemon/anorith/normal.pal diff --git a/graphics/pokemon/palettes/anorith_shiny_palette.pal b/graphics/pokemon/anorith/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/anorith_shiny_palette.pal rename to graphics/pokemon/anorith/shiny.pal diff --git a/graphics/pokemon/back_pics/arbok_back_pic.png b/graphics/pokemon/arbok/back.png similarity index 100% rename from graphics/pokemon/back_pics/arbok_back_pic.png rename to graphics/pokemon/arbok/back.png diff --git a/graphics/pokemon/footprints/arbok_footprint.png b/graphics/pokemon/arbok/footprint.png similarity index 100% rename from graphics/pokemon/footprints/arbok_footprint.png rename to graphics/pokemon/arbok/footprint.png diff --git a/graphics/pokemon/front_pics/arbok_still_front_pic.png b/graphics/pokemon/arbok/front.png similarity index 100% rename from graphics/pokemon/front_pics/arbok_still_front_pic.png rename to graphics/pokemon/arbok/front.png diff --git a/graphics/pokemon/icons/arbok_icon.png b/graphics/pokemon/arbok/icon.png similarity index 100% rename from graphics/pokemon/icons/arbok_icon.png rename to graphics/pokemon/arbok/icon.png diff --git a/graphics/pokemon/palettes/arbok_palette.pal b/graphics/pokemon/arbok/normal.pal similarity index 100% rename from graphics/pokemon/palettes/arbok_palette.pal rename to graphics/pokemon/arbok/normal.pal diff --git a/graphics/pokemon/palettes/arbok_shiny_palette.pal b/graphics/pokemon/arbok/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/arbok_shiny_palette.pal rename to graphics/pokemon/arbok/shiny.pal diff --git a/graphics/pokemon/back_pics/arcanine_back_pic.png b/graphics/pokemon/arcanine/back.png similarity index 100% rename from graphics/pokemon/back_pics/arcanine_back_pic.png rename to graphics/pokemon/arcanine/back.png diff --git a/graphics/pokemon/footprints/arcanine_footprint.png b/graphics/pokemon/arcanine/footprint.png similarity index 100% rename from graphics/pokemon/footprints/arcanine_footprint.png rename to graphics/pokemon/arcanine/footprint.png diff --git a/graphics/pokemon/front_pics/arcanine_still_front_pic.png b/graphics/pokemon/arcanine/front.png similarity index 100% rename from graphics/pokemon/front_pics/arcanine_still_front_pic.png rename to graphics/pokemon/arcanine/front.png diff --git a/graphics/pokemon/icons/arcanine_icon.png b/graphics/pokemon/arcanine/icon.png similarity index 100% rename from graphics/pokemon/icons/arcanine_icon.png rename to graphics/pokemon/arcanine/icon.png diff --git a/graphics/pokemon/palettes/arcanine_palette.pal b/graphics/pokemon/arcanine/normal.pal similarity index 100% rename from graphics/pokemon/palettes/arcanine_palette.pal rename to graphics/pokemon/arcanine/normal.pal diff --git a/graphics/pokemon/palettes/arcanine_shiny_palette.pal b/graphics/pokemon/arcanine/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/arcanine_shiny_palette.pal rename to graphics/pokemon/arcanine/shiny.pal diff --git a/graphics/pokemon/back_pics/ariados_back_pic.png b/graphics/pokemon/ariados/back.png similarity index 100% rename from graphics/pokemon/back_pics/ariados_back_pic.png rename to graphics/pokemon/ariados/back.png diff --git a/graphics/pokemon/footprints/ariados_footprint.png b/graphics/pokemon/ariados/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ariados_footprint.png rename to graphics/pokemon/ariados/footprint.png diff --git a/graphics/pokemon/front_pics/ariados_still_front_pic.png b/graphics/pokemon/ariados/front.png similarity index 100% rename from graphics/pokemon/front_pics/ariados_still_front_pic.png rename to graphics/pokemon/ariados/front.png diff --git a/graphics/pokemon/icons/ariados_icon.png b/graphics/pokemon/ariados/icon.png similarity index 100% rename from graphics/pokemon/icons/ariados_icon.png rename to graphics/pokemon/ariados/icon.png diff --git a/graphics/pokemon/palettes/ariados_palette.pal b/graphics/pokemon/ariados/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ariados_palette.pal rename to graphics/pokemon/ariados/normal.pal diff --git a/graphics/pokemon/palettes/ariados_shiny_palette.pal b/graphics/pokemon/ariados/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ariados_shiny_palette.pal rename to graphics/pokemon/ariados/shiny.pal diff --git a/graphics/pokemon/back_pics/armaldo_back_pic.png b/graphics/pokemon/armaldo/back.png similarity index 100% rename from graphics/pokemon/back_pics/armaldo_back_pic.png rename to graphics/pokemon/armaldo/back.png diff --git a/graphics/pokemon/footprints/armaldo_footprint.png b/graphics/pokemon/armaldo/footprint.png similarity index 100% rename from graphics/pokemon/footprints/armaldo_footprint.png rename to graphics/pokemon/armaldo/footprint.png diff --git a/graphics/pokemon/front_pics/armaldo_still_front_pic.png b/graphics/pokemon/armaldo/front.png similarity index 100% rename from graphics/pokemon/front_pics/armaldo_still_front_pic.png rename to graphics/pokemon/armaldo/front.png diff --git a/graphics/pokemon/icons/armaldo_icon.png b/graphics/pokemon/armaldo/icon.png similarity index 100% rename from graphics/pokemon/icons/armaldo_icon.png rename to graphics/pokemon/armaldo/icon.png diff --git a/graphics/pokemon/palettes/armaldo_palette.pal b/graphics/pokemon/armaldo/normal.pal similarity index 100% rename from graphics/pokemon/palettes/armaldo_palette.pal rename to graphics/pokemon/armaldo/normal.pal diff --git a/graphics/pokemon/palettes/armaldo_shiny_palette.pal b/graphics/pokemon/armaldo/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/armaldo_shiny_palette.pal rename to graphics/pokemon/armaldo/shiny.pal diff --git a/graphics/pokemon/back_pics/aron_back_pic.png b/graphics/pokemon/aron/back.png similarity index 100% rename from graphics/pokemon/back_pics/aron_back_pic.png rename to graphics/pokemon/aron/back.png diff --git a/graphics/pokemon/footprints/aron_footprint.png b/graphics/pokemon/aron/footprint.png similarity index 100% rename from graphics/pokemon/footprints/aron_footprint.png rename to graphics/pokemon/aron/footprint.png diff --git a/graphics/pokemon/front_pics/aron_still_front_pic.png b/graphics/pokemon/aron/front.png similarity index 100% rename from graphics/pokemon/front_pics/aron_still_front_pic.png rename to graphics/pokemon/aron/front.png diff --git a/graphics/pokemon/icons/aron_icon.png b/graphics/pokemon/aron/icon.png similarity index 100% rename from graphics/pokemon/icons/aron_icon.png rename to graphics/pokemon/aron/icon.png diff --git a/graphics/pokemon/palettes/aron_palette.pal b/graphics/pokemon/aron/normal.pal similarity index 100% rename from graphics/pokemon/palettes/aron_palette.pal rename to graphics/pokemon/aron/normal.pal diff --git a/graphics/pokemon/palettes/aron_shiny_palette.pal b/graphics/pokemon/aron/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/aron_shiny_palette.pal rename to graphics/pokemon/aron/shiny.pal diff --git a/graphics/pokemon/back_pics/articuno_back_pic.png b/graphics/pokemon/articuno/back.png similarity index 100% rename from graphics/pokemon/back_pics/articuno_back_pic.png rename to graphics/pokemon/articuno/back.png diff --git a/graphics/pokemon/footprints/articuno_footprint.png b/graphics/pokemon/articuno/footprint.png similarity index 100% rename from graphics/pokemon/footprints/articuno_footprint.png rename to graphics/pokemon/articuno/footprint.png diff --git a/graphics/pokemon/front_pics/articuno_still_front_pic.png b/graphics/pokemon/articuno/front.png similarity index 100% rename from graphics/pokemon/front_pics/articuno_still_front_pic.png rename to graphics/pokemon/articuno/front.png diff --git a/graphics/pokemon/icons/articuno_icon.png b/graphics/pokemon/articuno/icon.png similarity index 100% rename from graphics/pokemon/icons/articuno_icon.png rename to graphics/pokemon/articuno/icon.png diff --git a/graphics/pokemon/palettes/articuno_palette.pal b/graphics/pokemon/articuno/normal.pal similarity index 100% rename from graphics/pokemon/palettes/articuno_palette.pal rename to graphics/pokemon/articuno/normal.pal diff --git a/graphics/pokemon/palettes/articuno_shiny_palette.pal b/graphics/pokemon/articuno/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/articuno_shiny_palette.pal rename to graphics/pokemon/articuno/shiny.pal diff --git a/graphics/pokemon/back_pics/azumarill_back_pic.png b/graphics/pokemon/azumarill/back.png similarity index 100% rename from graphics/pokemon/back_pics/azumarill_back_pic.png rename to graphics/pokemon/azumarill/back.png diff --git a/graphics/pokemon/footprints/azumarill_footprint.png b/graphics/pokemon/azumarill/footprint.png similarity index 100% rename from graphics/pokemon/footprints/azumarill_footprint.png rename to graphics/pokemon/azumarill/footprint.png diff --git a/graphics/pokemon/front_pics/azumarill_still_front_pic.png b/graphics/pokemon/azumarill/front.png similarity index 100% rename from graphics/pokemon/front_pics/azumarill_still_front_pic.png rename to graphics/pokemon/azumarill/front.png diff --git a/graphics/pokemon/icons/azumarill_icon.png b/graphics/pokemon/azumarill/icon.png similarity index 100% rename from graphics/pokemon/icons/azumarill_icon.png rename to graphics/pokemon/azumarill/icon.png diff --git a/graphics/pokemon/palettes/azumarill_palette.pal b/graphics/pokemon/azumarill/normal.pal similarity index 100% rename from graphics/pokemon/palettes/azumarill_palette.pal rename to graphics/pokemon/azumarill/normal.pal diff --git a/graphics/pokemon/palettes/azumarill_shiny_palette.pal b/graphics/pokemon/azumarill/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/azumarill_shiny_palette.pal rename to graphics/pokemon/azumarill/shiny.pal diff --git a/graphics/pokemon/back_pics/azurill_back_pic.png b/graphics/pokemon/azurill/back.png similarity index 100% rename from graphics/pokemon/back_pics/azurill_back_pic.png rename to graphics/pokemon/azurill/back.png diff --git a/graphics/pokemon/footprints/azurill_footprint.png b/graphics/pokemon/azurill/footprint.png similarity index 100% rename from graphics/pokemon/footprints/azurill_footprint.png rename to graphics/pokemon/azurill/footprint.png diff --git a/graphics/pokemon/front_pics/azurill_still_front_pic.png b/graphics/pokemon/azurill/front.png similarity index 100% rename from graphics/pokemon/front_pics/azurill_still_front_pic.png rename to graphics/pokemon/azurill/front.png diff --git a/graphics/pokemon/icons/azurill_icon.png b/graphics/pokemon/azurill/icon.png similarity index 100% rename from graphics/pokemon/icons/azurill_icon.png rename to graphics/pokemon/azurill/icon.png diff --git a/graphics/pokemon/palettes/azurill_palette.pal b/graphics/pokemon/azurill/normal.pal similarity index 100% rename from graphics/pokemon/palettes/azurill_palette.pal rename to graphics/pokemon/azurill/normal.pal diff --git a/graphics/pokemon/palettes/azurill_shiny_palette.pal b/graphics/pokemon/azurill/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/azurill_shiny_palette.pal rename to graphics/pokemon/azurill/shiny.pal diff --git a/graphics/pokemon/back_pics/bagon_back_pic.png b/graphics/pokemon/bagon/back.png similarity index 100% rename from graphics/pokemon/back_pics/bagon_back_pic.png rename to graphics/pokemon/bagon/back.png diff --git a/graphics/pokemon/footprints/bagon_footprint.png b/graphics/pokemon/bagon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/bagon_footprint.png rename to graphics/pokemon/bagon/footprint.png diff --git a/graphics/pokemon/front_pics/bagon_still_front_pic.png b/graphics/pokemon/bagon/front.png similarity index 100% rename from graphics/pokemon/front_pics/bagon_still_front_pic.png rename to graphics/pokemon/bagon/front.png diff --git a/graphics/pokemon/icons/bagon_icon.png b/graphics/pokemon/bagon/icon.png similarity index 100% rename from graphics/pokemon/icons/bagon_icon.png rename to graphics/pokemon/bagon/icon.png diff --git a/graphics/pokemon/palettes/bagon_palette.pal b/graphics/pokemon/bagon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/bagon_palette.pal rename to graphics/pokemon/bagon/normal.pal diff --git a/graphics/pokemon/palettes/bagon_shiny_palette.pal b/graphics/pokemon/bagon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/bagon_shiny_palette.pal rename to graphics/pokemon/bagon/shiny.pal diff --git a/graphics/pokemon/back_pics/baltoy_back_pic.png b/graphics/pokemon/baltoy/back.png similarity index 100% rename from graphics/pokemon/back_pics/baltoy_back_pic.png rename to graphics/pokemon/baltoy/back.png diff --git a/graphics/pokemon/footprints/baltoy_footprint.png b/graphics/pokemon/baltoy/footprint.png similarity index 100% rename from graphics/pokemon/footprints/baltoy_footprint.png rename to graphics/pokemon/baltoy/footprint.png diff --git a/graphics/pokemon/front_pics/baltoy_still_front_pic.png b/graphics/pokemon/baltoy/front.png similarity index 100% rename from graphics/pokemon/front_pics/baltoy_still_front_pic.png rename to graphics/pokemon/baltoy/front.png diff --git a/graphics/pokemon/icons/baltoy_icon.png b/graphics/pokemon/baltoy/icon.png similarity index 100% rename from graphics/pokemon/icons/baltoy_icon.png rename to graphics/pokemon/baltoy/icon.png diff --git a/graphics/pokemon/palettes/baltoy_palette.pal b/graphics/pokemon/baltoy/normal.pal similarity index 100% rename from graphics/pokemon/palettes/baltoy_palette.pal rename to graphics/pokemon/baltoy/normal.pal diff --git a/graphics/pokemon/palettes/baltoy_shiny_palette.pal b/graphics/pokemon/baltoy/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/baltoy_shiny_palette.pal rename to graphics/pokemon/baltoy/shiny.pal diff --git a/graphics/pokemon/back_pics/banette_back_pic.png b/graphics/pokemon/banette/back.png similarity index 100% rename from graphics/pokemon/back_pics/banette_back_pic.png rename to graphics/pokemon/banette/back.png diff --git a/graphics/pokemon/footprints/banette_footprint.png b/graphics/pokemon/banette/footprint.png similarity index 100% rename from graphics/pokemon/footprints/banette_footprint.png rename to graphics/pokemon/banette/footprint.png diff --git a/graphics/pokemon/front_pics/banette_still_front_pic.png b/graphics/pokemon/banette/front.png similarity index 100% rename from graphics/pokemon/front_pics/banette_still_front_pic.png rename to graphics/pokemon/banette/front.png diff --git a/graphics/pokemon/icons/banette_icon.png b/graphics/pokemon/banette/icon.png similarity index 100% rename from graphics/pokemon/icons/banette_icon.png rename to graphics/pokemon/banette/icon.png diff --git a/graphics/pokemon/palettes/banette_palette.pal b/graphics/pokemon/banette/normal.pal similarity index 100% rename from graphics/pokemon/palettes/banette_palette.pal rename to graphics/pokemon/banette/normal.pal diff --git a/graphics/pokemon/palettes/banette_shiny_palette.pal b/graphics/pokemon/banette/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/banette_shiny_palette.pal rename to graphics/pokemon/banette/shiny.pal diff --git a/graphics/pokemon/back_pics/barboach_back_pic.png b/graphics/pokemon/barboach/back.png similarity index 100% rename from graphics/pokemon/back_pics/barboach_back_pic.png rename to graphics/pokemon/barboach/back.png diff --git a/graphics/pokemon/footprints/barboach_footprint.png b/graphics/pokemon/barboach/footprint.png similarity index 100% rename from graphics/pokemon/footprints/barboach_footprint.png rename to graphics/pokemon/barboach/footprint.png diff --git a/graphics/pokemon/front_pics/barboach_still_front_pic.png b/graphics/pokemon/barboach/front.png similarity index 100% rename from graphics/pokemon/front_pics/barboach_still_front_pic.png rename to graphics/pokemon/barboach/front.png diff --git a/graphics/pokemon/icons/barboach_icon.png b/graphics/pokemon/barboach/icon.png similarity index 100% rename from graphics/pokemon/icons/barboach_icon.png rename to graphics/pokemon/barboach/icon.png diff --git a/graphics/pokemon/palettes/barboach_palette.pal b/graphics/pokemon/barboach/normal.pal similarity index 100% rename from graphics/pokemon/palettes/barboach_palette.pal rename to graphics/pokemon/barboach/normal.pal diff --git a/graphics/pokemon/palettes/barboach_shiny_palette.pal b/graphics/pokemon/barboach/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/barboach_shiny_palette.pal rename to graphics/pokemon/barboach/shiny.pal diff --git a/graphics/pokemon/back_pics/bayleef_back_pic.png b/graphics/pokemon/bayleef/back.png similarity index 100% rename from graphics/pokemon/back_pics/bayleef_back_pic.png rename to graphics/pokemon/bayleef/back.png diff --git a/graphics/pokemon/footprints/bayleef_footprint.png b/graphics/pokemon/bayleef/footprint.png similarity index 100% rename from graphics/pokemon/footprints/bayleef_footprint.png rename to graphics/pokemon/bayleef/footprint.png diff --git a/graphics/pokemon/front_pics/bayleef_still_front_pic.png b/graphics/pokemon/bayleef/front.png similarity index 100% rename from graphics/pokemon/front_pics/bayleef_still_front_pic.png rename to graphics/pokemon/bayleef/front.png diff --git a/graphics/pokemon/icons/bayleef_icon.png b/graphics/pokemon/bayleef/icon.png similarity index 100% rename from graphics/pokemon/icons/bayleef_icon.png rename to graphics/pokemon/bayleef/icon.png diff --git a/graphics/pokemon/palettes/bayleef_palette.pal b/graphics/pokemon/bayleef/normal.pal similarity index 100% rename from graphics/pokemon/palettes/bayleef_palette.pal rename to graphics/pokemon/bayleef/normal.pal diff --git a/graphics/pokemon/palettes/bayleef_shiny_palette.pal b/graphics/pokemon/bayleef/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/bayleef_shiny_palette.pal rename to graphics/pokemon/bayleef/shiny.pal diff --git a/graphics/pokemon/back_pics/beautifly_back_pic.png b/graphics/pokemon/beautifly/back.png similarity index 100% rename from graphics/pokemon/back_pics/beautifly_back_pic.png rename to graphics/pokemon/beautifly/back.png diff --git a/graphics/pokemon/footprints/beautifly_footprint.png b/graphics/pokemon/beautifly/footprint.png similarity index 100% rename from graphics/pokemon/footprints/beautifly_footprint.png rename to graphics/pokemon/beautifly/footprint.png diff --git a/graphics/pokemon/front_pics/beautifly_still_front_pic.png b/graphics/pokemon/beautifly/front.png similarity index 100% rename from graphics/pokemon/front_pics/beautifly_still_front_pic.png rename to graphics/pokemon/beautifly/front.png diff --git a/graphics/pokemon/icons/beautifly_icon.png b/graphics/pokemon/beautifly/icon.png similarity index 100% rename from graphics/pokemon/icons/beautifly_icon.png rename to graphics/pokemon/beautifly/icon.png diff --git a/graphics/pokemon/palettes/beautifly_palette.pal b/graphics/pokemon/beautifly/normal.pal similarity index 100% rename from graphics/pokemon/palettes/beautifly_palette.pal rename to graphics/pokemon/beautifly/normal.pal diff --git a/graphics/pokemon/palettes/beautifly_shiny_palette.pal b/graphics/pokemon/beautifly/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/beautifly_shiny_palette.pal rename to graphics/pokemon/beautifly/shiny.pal diff --git a/graphics/pokemon/back_pics/beedrill_back_pic.png b/graphics/pokemon/beedrill/back.png similarity index 100% rename from graphics/pokemon/back_pics/beedrill_back_pic.png rename to graphics/pokemon/beedrill/back.png diff --git a/graphics/pokemon/footprints/beedrill_footprint.png b/graphics/pokemon/beedrill/footprint.png similarity index 100% rename from graphics/pokemon/footprints/beedrill_footprint.png rename to graphics/pokemon/beedrill/footprint.png diff --git a/graphics/pokemon/front_pics/beedrill_still_front_pic.png b/graphics/pokemon/beedrill/front.png similarity index 100% rename from graphics/pokemon/front_pics/beedrill_still_front_pic.png rename to graphics/pokemon/beedrill/front.png diff --git a/graphics/pokemon/icons/beedrill_icon.png b/graphics/pokemon/beedrill/icon.png similarity index 100% rename from graphics/pokemon/icons/beedrill_icon.png rename to graphics/pokemon/beedrill/icon.png diff --git a/graphics/pokemon/palettes/beedrill_palette.pal b/graphics/pokemon/beedrill/normal.pal similarity index 100% rename from graphics/pokemon/palettes/beedrill_palette.pal rename to graphics/pokemon/beedrill/normal.pal diff --git a/graphics/pokemon/palettes/beedrill_shiny_palette.pal b/graphics/pokemon/beedrill/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/beedrill_shiny_palette.pal rename to graphics/pokemon/beedrill/shiny.pal diff --git a/graphics/pokemon/back_pics/beldum_back_pic.png b/graphics/pokemon/beldum/back.png similarity index 100% rename from graphics/pokemon/back_pics/beldum_back_pic.png rename to graphics/pokemon/beldum/back.png diff --git a/graphics/pokemon/footprints/beldum_footprint.png b/graphics/pokemon/beldum/footprint.png similarity index 100% rename from graphics/pokemon/footprints/beldum_footprint.png rename to graphics/pokemon/beldum/footprint.png diff --git a/graphics/pokemon/front_pics/beldum_still_front_pic.png b/graphics/pokemon/beldum/front.png similarity index 100% rename from graphics/pokemon/front_pics/beldum_still_front_pic.png rename to graphics/pokemon/beldum/front.png diff --git a/graphics/pokemon/icons/beldum_icon.png b/graphics/pokemon/beldum/icon.png similarity index 100% rename from graphics/pokemon/icons/beldum_icon.png rename to graphics/pokemon/beldum/icon.png diff --git a/graphics/pokemon/palettes/beldum_palette.pal b/graphics/pokemon/beldum/normal.pal similarity index 100% rename from graphics/pokemon/palettes/beldum_palette.pal rename to graphics/pokemon/beldum/normal.pal diff --git a/graphics/pokemon/palettes/beldum_shiny_palette.pal b/graphics/pokemon/beldum/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/beldum_shiny_palette.pal rename to graphics/pokemon/beldum/shiny.pal diff --git a/graphics/pokemon/back_pics/bellossom_back_pic.png b/graphics/pokemon/bellossom/back.png similarity index 100% rename from graphics/pokemon/back_pics/bellossom_back_pic.png rename to graphics/pokemon/bellossom/back.png diff --git a/graphics/pokemon/footprints/bellossom_footprint.png b/graphics/pokemon/bellossom/footprint.png similarity index 100% rename from graphics/pokemon/footprints/bellossom_footprint.png rename to graphics/pokemon/bellossom/footprint.png diff --git a/graphics/pokemon/front_pics/bellossom_still_front_pic.png b/graphics/pokemon/bellossom/front.png similarity index 100% rename from graphics/pokemon/front_pics/bellossom_still_front_pic.png rename to graphics/pokemon/bellossom/front.png diff --git a/graphics/pokemon/icons/bellossom_icon.png b/graphics/pokemon/bellossom/icon.png similarity index 100% rename from graphics/pokemon/icons/bellossom_icon.png rename to graphics/pokemon/bellossom/icon.png diff --git a/graphics/pokemon/palettes/bellossom_palette.pal b/graphics/pokemon/bellossom/normal.pal similarity index 100% rename from graphics/pokemon/palettes/bellossom_palette.pal rename to graphics/pokemon/bellossom/normal.pal diff --git a/graphics/pokemon/palettes/bellossom_shiny_palette.pal b/graphics/pokemon/bellossom/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/bellossom_shiny_palette.pal rename to graphics/pokemon/bellossom/shiny.pal diff --git a/graphics/pokemon/back_pics/bellsprout_back_pic.png b/graphics/pokemon/bellsprout/back.png similarity index 100% rename from graphics/pokemon/back_pics/bellsprout_back_pic.png rename to graphics/pokemon/bellsprout/back.png diff --git a/graphics/pokemon/footprints/bellsprout_footprint.png b/graphics/pokemon/bellsprout/footprint.png similarity index 100% rename from graphics/pokemon/footprints/bellsprout_footprint.png rename to graphics/pokemon/bellsprout/footprint.png diff --git a/graphics/pokemon/front_pics/bellsprout_still_front_pic.png b/graphics/pokemon/bellsprout/front.png similarity index 100% rename from graphics/pokemon/front_pics/bellsprout_still_front_pic.png rename to graphics/pokemon/bellsprout/front.png diff --git a/graphics/pokemon/icons/bellsprout_icon.png b/graphics/pokemon/bellsprout/icon.png similarity index 100% rename from graphics/pokemon/icons/bellsprout_icon.png rename to graphics/pokemon/bellsprout/icon.png diff --git a/graphics/pokemon/palettes/bellsprout_palette.pal b/graphics/pokemon/bellsprout/normal.pal similarity index 100% rename from graphics/pokemon/palettes/bellsprout_palette.pal rename to graphics/pokemon/bellsprout/normal.pal diff --git a/graphics/pokemon/palettes/bellsprout_shiny_palette.pal b/graphics/pokemon/bellsprout/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/bellsprout_shiny_palette.pal rename to graphics/pokemon/bellsprout/shiny.pal diff --git a/graphics/pokemon/back_pics/blastoise_back_pic.png b/graphics/pokemon/blastoise/back.png similarity index 100% rename from graphics/pokemon/back_pics/blastoise_back_pic.png rename to graphics/pokemon/blastoise/back.png diff --git a/graphics/pokemon/footprints/blastoise_footprint.png b/graphics/pokemon/blastoise/footprint.png similarity index 100% rename from graphics/pokemon/footprints/blastoise_footprint.png rename to graphics/pokemon/blastoise/footprint.png diff --git a/graphics/pokemon/front_pics/blastoise_still_front_pic.png b/graphics/pokemon/blastoise/front.png similarity index 100% rename from graphics/pokemon/front_pics/blastoise_still_front_pic.png rename to graphics/pokemon/blastoise/front.png diff --git a/graphics/pokemon/icons/blastoise_icon.png b/graphics/pokemon/blastoise/icon.png similarity index 100% rename from graphics/pokemon/icons/blastoise_icon.png rename to graphics/pokemon/blastoise/icon.png diff --git a/graphics/pokemon/palettes/blastoise_palette.pal b/graphics/pokemon/blastoise/normal.pal similarity index 100% rename from graphics/pokemon/palettes/blastoise_palette.pal rename to graphics/pokemon/blastoise/normal.pal diff --git a/graphics/pokemon/palettes/blastoise_shiny_palette.pal b/graphics/pokemon/blastoise/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/blastoise_shiny_palette.pal rename to graphics/pokemon/blastoise/shiny.pal diff --git a/graphics/pokemon/back_pics/blaziken_back_pic.png b/graphics/pokemon/blaziken/back.png similarity index 100% rename from graphics/pokemon/back_pics/blaziken_back_pic.png rename to graphics/pokemon/blaziken/back.png diff --git a/graphics/pokemon/footprints/blaziken_footprint.png b/graphics/pokemon/blaziken/footprint.png similarity index 100% rename from graphics/pokemon/footprints/blaziken_footprint.png rename to graphics/pokemon/blaziken/footprint.png diff --git a/graphics/pokemon/front_pics/blaziken_still_front_pic.png b/graphics/pokemon/blaziken/front.png similarity index 100% rename from graphics/pokemon/front_pics/blaziken_still_front_pic.png rename to graphics/pokemon/blaziken/front.png diff --git a/graphics/pokemon/icons/blaziken_icon.png b/graphics/pokemon/blaziken/icon.png similarity index 100% rename from graphics/pokemon/icons/blaziken_icon.png rename to graphics/pokemon/blaziken/icon.png diff --git a/graphics/pokemon/palettes/blaziken_palette.pal b/graphics/pokemon/blaziken/normal.pal similarity index 100% rename from graphics/pokemon/palettes/blaziken_palette.pal rename to graphics/pokemon/blaziken/normal.pal diff --git a/graphics/pokemon/palettes/blaziken_shiny_palette.pal b/graphics/pokemon/blaziken/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/blaziken_shiny_palette.pal rename to graphics/pokemon/blaziken/shiny.pal diff --git a/graphics/pokemon/back_pics/blissey_back_pic.png b/graphics/pokemon/blissey/back.png similarity index 100% rename from graphics/pokemon/back_pics/blissey_back_pic.png rename to graphics/pokemon/blissey/back.png diff --git a/graphics/pokemon/footprints/blissey_footprint.png b/graphics/pokemon/blissey/footprint.png similarity index 100% rename from graphics/pokemon/footprints/blissey_footprint.png rename to graphics/pokemon/blissey/footprint.png diff --git a/graphics/pokemon/front_pics/blissey_still_front_pic.png b/graphics/pokemon/blissey/front.png similarity index 100% rename from graphics/pokemon/front_pics/blissey_still_front_pic.png rename to graphics/pokemon/blissey/front.png diff --git a/graphics/pokemon/icons/blissey_icon.png b/graphics/pokemon/blissey/icon.png similarity index 100% rename from graphics/pokemon/icons/blissey_icon.png rename to graphics/pokemon/blissey/icon.png diff --git a/graphics/pokemon/palettes/blissey_palette.pal b/graphics/pokemon/blissey/normal.pal similarity index 100% rename from graphics/pokemon/palettes/blissey_palette.pal rename to graphics/pokemon/blissey/normal.pal diff --git a/graphics/pokemon/palettes/blissey_shiny_palette.pal b/graphics/pokemon/blissey/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/blissey_shiny_palette.pal rename to graphics/pokemon/blissey/shiny.pal diff --git a/graphics/pokemon/back_pics/breloom_back_pic.png b/graphics/pokemon/breloom/back.png similarity index 100% rename from graphics/pokemon/back_pics/breloom_back_pic.png rename to graphics/pokemon/breloom/back.png diff --git a/graphics/pokemon/footprints/breloom_footprint.png b/graphics/pokemon/breloom/footprint.png similarity index 100% rename from graphics/pokemon/footprints/breloom_footprint.png rename to graphics/pokemon/breloom/footprint.png diff --git a/graphics/pokemon/front_pics/breloom_still_front_pic.png b/graphics/pokemon/breloom/front.png similarity index 100% rename from graphics/pokemon/front_pics/breloom_still_front_pic.png rename to graphics/pokemon/breloom/front.png diff --git a/graphics/pokemon/icons/breloom_icon.png b/graphics/pokemon/breloom/icon.png similarity index 100% rename from graphics/pokemon/icons/breloom_icon.png rename to graphics/pokemon/breloom/icon.png diff --git a/graphics/pokemon/palettes/breloom_palette.pal b/graphics/pokemon/breloom/normal.pal similarity index 100% rename from graphics/pokemon/palettes/breloom_palette.pal rename to graphics/pokemon/breloom/normal.pal diff --git a/graphics/pokemon/palettes/breloom_shiny_palette.pal b/graphics/pokemon/breloom/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/breloom_shiny_palette.pal rename to graphics/pokemon/breloom/shiny.pal diff --git a/graphics/pokemon/back_pics/bulbasaur_back_pic.png b/graphics/pokemon/bulbasaur/back.png similarity index 100% rename from graphics/pokemon/back_pics/bulbasaur_back_pic.png rename to graphics/pokemon/bulbasaur/back.png diff --git a/graphics/pokemon/footprints/bulbasaur_footprint.png b/graphics/pokemon/bulbasaur/footprint.png similarity index 100% rename from graphics/pokemon/footprints/bulbasaur_footprint.png rename to graphics/pokemon/bulbasaur/footprint.png diff --git a/graphics/pokemon/front_pics/bulbasaur_still_front_pic.png b/graphics/pokemon/bulbasaur/front.png similarity index 100% rename from graphics/pokemon/front_pics/bulbasaur_still_front_pic.png rename to graphics/pokemon/bulbasaur/front.png diff --git a/graphics/pokemon/icons/bulbasaur_icon.png b/graphics/pokemon/bulbasaur/icon.png similarity index 100% rename from graphics/pokemon/icons/bulbasaur_icon.png rename to graphics/pokemon/bulbasaur/icon.png diff --git a/graphics/pokemon/palettes/bulbasaur_palette.pal b/graphics/pokemon/bulbasaur/normal.pal similarity index 100% rename from graphics/pokemon/palettes/bulbasaur_palette.pal rename to graphics/pokemon/bulbasaur/normal.pal diff --git a/graphics/pokemon/palettes/bulbasaur_shiny_palette.pal b/graphics/pokemon/bulbasaur/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/bulbasaur_shiny_palette.pal rename to graphics/pokemon/bulbasaur/shiny.pal diff --git a/graphics/pokemon/back_pics/butterfree_back_pic.png b/graphics/pokemon/butterfree/back.png similarity index 100% rename from graphics/pokemon/back_pics/butterfree_back_pic.png rename to graphics/pokemon/butterfree/back.png diff --git a/graphics/pokemon/footprints/butterfree_footprint.png b/graphics/pokemon/butterfree/footprint.png similarity index 100% rename from graphics/pokemon/footprints/butterfree_footprint.png rename to graphics/pokemon/butterfree/footprint.png diff --git a/graphics/pokemon/front_pics/butterfree_still_front_pic.png b/graphics/pokemon/butterfree/front.png similarity index 100% rename from graphics/pokemon/front_pics/butterfree_still_front_pic.png rename to graphics/pokemon/butterfree/front.png diff --git a/graphics/pokemon/icons/butterfree_icon.png b/graphics/pokemon/butterfree/icon.png similarity index 100% rename from graphics/pokemon/icons/butterfree_icon.png rename to graphics/pokemon/butterfree/icon.png diff --git a/graphics/pokemon/palettes/butterfree_palette.pal b/graphics/pokemon/butterfree/normal.pal similarity index 100% rename from graphics/pokemon/palettes/butterfree_palette.pal rename to graphics/pokemon/butterfree/normal.pal diff --git a/graphics/pokemon/palettes/butterfree_shiny_palette.pal b/graphics/pokemon/butterfree/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/butterfree_shiny_palette.pal rename to graphics/pokemon/butterfree/shiny.pal diff --git a/graphics/pokemon/back_pics/cacnea_back_pic.png b/graphics/pokemon/cacnea/back.png similarity index 100% rename from graphics/pokemon/back_pics/cacnea_back_pic.png rename to graphics/pokemon/cacnea/back.png diff --git a/graphics/pokemon/footprints/cacnea_footprint.png b/graphics/pokemon/cacnea/footprint.png similarity index 100% rename from graphics/pokemon/footprints/cacnea_footprint.png rename to graphics/pokemon/cacnea/footprint.png diff --git a/graphics/pokemon/front_pics/cacnea_still_front_pic.png b/graphics/pokemon/cacnea/front.png similarity index 100% rename from graphics/pokemon/front_pics/cacnea_still_front_pic.png rename to graphics/pokemon/cacnea/front.png diff --git a/graphics/pokemon/icons/cacnea_icon.png b/graphics/pokemon/cacnea/icon.png similarity index 100% rename from graphics/pokemon/icons/cacnea_icon.png rename to graphics/pokemon/cacnea/icon.png diff --git a/graphics/pokemon/palettes/cacnea_palette.pal b/graphics/pokemon/cacnea/normal.pal similarity index 100% rename from graphics/pokemon/palettes/cacnea_palette.pal rename to graphics/pokemon/cacnea/normal.pal diff --git a/graphics/pokemon/palettes/cacnea_shiny_palette.pal b/graphics/pokemon/cacnea/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/cacnea_shiny_palette.pal rename to graphics/pokemon/cacnea/shiny.pal diff --git a/graphics/pokemon/back_pics/cacturne_back_pic.png b/graphics/pokemon/cacturne/back.png similarity index 100% rename from graphics/pokemon/back_pics/cacturne_back_pic.png rename to graphics/pokemon/cacturne/back.png diff --git a/graphics/pokemon/footprints/cacturne_footprint.png b/graphics/pokemon/cacturne/footprint.png similarity index 100% rename from graphics/pokemon/footprints/cacturne_footprint.png rename to graphics/pokemon/cacturne/footprint.png diff --git a/graphics/pokemon/front_pics/cacturne_still_front_pic.png b/graphics/pokemon/cacturne/front.png similarity index 100% rename from graphics/pokemon/front_pics/cacturne_still_front_pic.png rename to graphics/pokemon/cacturne/front.png diff --git a/graphics/pokemon/icons/cacturne_icon.png b/graphics/pokemon/cacturne/icon.png similarity index 100% rename from graphics/pokemon/icons/cacturne_icon.png rename to graphics/pokemon/cacturne/icon.png diff --git a/graphics/pokemon/palettes/cacturne_palette.pal b/graphics/pokemon/cacturne/normal.pal similarity index 100% rename from graphics/pokemon/palettes/cacturne_palette.pal rename to graphics/pokemon/cacturne/normal.pal diff --git a/graphics/pokemon/palettes/cacturne_shiny_palette.pal b/graphics/pokemon/cacturne/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/cacturne_shiny_palette.pal rename to graphics/pokemon/cacturne/shiny.pal diff --git a/graphics/pokemon/back_pics/camerupt_back_pic.png b/graphics/pokemon/camerupt/back.png similarity index 100% rename from graphics/pokemon/back_pics/camerupt_back_pic.png rename to graphics/pokemon/camerupt/back.png diff --git a/graphics/pokemon/footprints/camerupt_footprint.png b/graphics/pokemon/camerupt/footprint.png similarity index 100% rename from graphics/pokemon/footprints/camerupt_footprint.png rename to graphics/pokemon/camerupt/footprint.png diff --git a/graphics/pokemon/front_pics/camerupt_still_front_pic.png b/graphics/pokemon/camerupt/front.png similarity index 100% rename from graphics/pokemon/front_pics/camerupt_still_front_pic.png rename to graphics/pokemon/camerupt/front.png diff --git a/graphics/pokemon/icons/camerupt_icon.png b/graphics/pokemon/camerupt/icon.png similarity index 100% rename from graphics/pokemon/icons/camerupt_icon.png rename to graphics/pokemon/camerupt/icon.png diff --git a/graphics/pokemon/palettes/camerupt_palette.pal b/graphics/pokemon/camerupt/normal.pal similarity index 100% rename from graphics/pokemon/palettes/camerupt_palette.pal rename to graphics/pokemon/camerupt/normal.pal diff --git a/graphics/pokemon/palettes/camerupt_shiny_palette.pal b/graphics/pokemon/camerupt/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/camerupt_shiny_palette.pal rename to graphics/pokemon/camerupt/shiny.pal diff --git a/graphics/pokemon/back_pics/carvanha_back_pic.png b/graphics/pokemon/carvanha/back.png similarity index 100% rename from graphics/pokemon/back_pics/carvanha_back_pic.png rename to graphics/pokemon/carvanha/back.png diff --git a/graphics/pokemon/footprints/carvanha_footprint.png b/graphics/pokemon/carvanha/footprint.png similarity index 100% rename from graphics/pokemon/footprints/carvanha_footprint.png rename to graphics/pokemon/carvanha/footprint.png diff --git a/graphics/pokemon/front_pics/carvanha_still_front_pic.png b/graphics/pokemon/carvanha/front.png similarity index 100% rename from graphics/pokemon/front_pics/carvanha_still_front_pic.png rename to graphics/pokemon/carvanha/front.png diff --git a/graphics/pokemon/icons/carvanha_icon.png b/graphics/pokemon/carvanha/icon.png similarity index 100% rename from graphics/pokemon/icons/carvanha_icon.png rename to graphics/pokemon/carvanha/icon.png diff --git a/graphics/pokemon/palettes/carvanha_palette.pal b/graphics/pokemon/carvanha/normal.pal similarity index 100% rename from graphics/pokemon/palettes/carvanha_palette.pal rename to graphics/pokemon/carvanha/normal.pal diff --git a/graphics/pokemon/palettes/carvanha_shiny_palette.pal b/graphics/pokemon/carvanha/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/carvanha_shiny_palette.pal rename to graphics/pokemon/carvanha/shiny.pal diff --git a/graphics/pokemon/back_pics/cascoon_back_pic.png b/graphics/pokemon/cascoon/back.png similarity index 100% rename from graphics/pokemon/back_pics/cascoon_back_pic.png rename to graphics/pokemon/cascoon/back.png diff --git a/graphics/pokemon/footprints/cascoon_footprint.png b/graphics/pokemon/cascoon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/cascoon_footprint.png rename to graphics/pokemon/cascoon/footprint.png diff --git a/graphics/pokemon/front_pics/cascoon_still_front_pic.png b/graphics/pokemon/cascoon/front.png similarity index 100% rename from graphics/pokemon/front_pics/cascoon_still_front_pic.png rename to graphics/pokemon/cascoon/front.png diff --git a/graphics/pokemon/icons/cascoon_icon.png b/graphics/pokemon/cascoon/icon.png similarity index 100% rename from graphics/pokemon/icons/cascoon_icon.png rename to graphics/pokemon/cascoon/icon.png diff --git a/graphics/pokemon/palettes/cascoon_palette.pal b/graphics/pokemon/cascoon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/cascoon_palette.pal rename to graphics/pokemon/cascoon/normal.pal diff --git a/graphics/pokemon/palettes/cascoon_shiny_palette.pal b/graphics/pokemon/cascoon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/cascoon_shiny_palette.pal rename to graphics/pokemon/cascoon/shiny.pal diff --git a/graphics/pokemon/footprints/castform_footprint.png b/graphics/pokemon/castform/footprint.png similarity index 100% rename from graphics/pokemon/footprints/castform_footprint.png rename to graphics/pokemon/castform/footprint.png diff --git a/graphics/pokemon/icons/castform_icon.png b/graphics/pokemon/castform/icon.png similarity index 100% rename from graphics/pokemon/icons/castform_icon.png rename to graphics/pokemon/castform/icon.png diff --git a/graphics/pokemon/back_pics/castform_normal_form_back_pic.png b/graphics/pokemon/castform/normal/back.png similarity index 100% rename from graphics/pokemon/back_pics/castform_normal_form_back_pic.png rename to graphics/pokemon/castform/normal/back.png diff --git a/graphics/pokemon/front_pics/castform_normal_form_still_front_pic.png b/graphics/pokemon/castform/normal/front.png similarity index 100% rename from graphics/pokemon/front_pics/castform_normal_form_still_front_pic.png rename to graphics/pokemon/castform/normal/front.png diff --git a/graphics/pokemon/palettes/castform_normal_form_palette.pal b/graphics/pokemon/castform/normal/normal.pal similarity index 100% rename from graphics/pokemon/palettes/castform_normal_form_palette.pal rename to graphics/pokemon/castform/normal/normal.pal diff --git a/graphics/pokemon/palettes/castform_normal_form_shiny_palette.pal b/graphics/pokemon/castform/normal/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/castform_normal_form_shiny_palette.pal rename to graphics/pokemon/castform/normal/shiny.pal diff --git a/graphics/pokemon/back_pics/castform_rainy_form_back_pic.png b/graphics/pokemon/castform/rainy/back.png similarity index 100% rename from graphics/pokemon/back_pics/castform_rainy_form_back_pic.png rename to graphics/pokemon/castform/rainy/back.png diff --git a/graphics/pokemon/front_pics/castform_rainy_form_still_front_pic.png b/graphics/pokemon/castform/rainy/front.png similarity index 100% rename from graphics/pokemon/front_pics/castform_rainy_form_still_front_pic.png rename to graphics/pokemon/castform/rainy/front.png diff --git a/graphics/pokemon/palettes/castform_rainy_form_palette.pal b/graphics/pokemon/castform/rainy/normal.pal similarity index 100% rename from graphics/pokemon/palettes/castform_rainy_form_palette.pal rename to graphics/pokemon/castform/rainy/normal.pal diff --git a/graphics/pokemon/palettes/castform_rainy_form_shiny_palette.pal b/graphics/pokemon/castform/rainy/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/castform_rainy_form_shiny_palette.pal rename to graphics/pokemon/castform/rainy/shiny.pal diff --git a/graphics/pokemon/back_pics/castform_snowy_form_back_pic.png b/graphics/pokemon/castform/snowy/back.png similarity index 100% rename from graphics/pokemon/back_pics/castform_snowy_form_back_pic.png rename to graphics/pokemon/castform/snowy/back.png diff --git a/graphics/pokemon/front_pics/castform_snowy_form_still_front_pic.png b/graphics/pokemon/castform/snowy/front.png similarity index 100% rename from graphics/pokemon/front_pics/castform_snowy_form_still_front_pic.png rename to graphics/pokemon/castform/snowy/front.png diff --git a/graphics/pokemon/palettes/castform_snowy_form_palette.pal b/graphics/pokemon/castform/snowy/normal.pal similarity index 100% rename from graphics/pokemon/palettes/castform_snowy_form_palette.pal rename to graphics/pokemon/castform/snowy/normal.pal diff --git a/graphics/pokemon/palettes/castform_snowy_form_shiny_palette.pal b/graphics/pokemon/castform/snowy/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/castform_snowy_form_shiny_palette.pal rename to graphics/pokemon/castform/snowy/shiny.pal diff --git a/graphics/pokemon/back_pics/castform_sunny_form_back_pic.png b/graphics/pokemon/castform/sunny/back.png similarity index 100% rename from graphics/pokemon/back_pics/castform_sunny_form_back_pic.png rename to graphics/pokemon/castform/sunny/back.png diff --git a/graphics/pokemon/front_pics/castform_sunny_form_still_front_pic.png b/graphics/pokemon/castform/sunny/front.png similarity index 100% rename from graphics/pokemon/front_pics/castform_sunny_form_still_front_pic.png rename to graphics/pokemon/castform/sunny/front.png diff --git a/graphics/pokemon/palettes/castform_sunny_form_palette.pal b/graphics/pokemon/castform/sunny/normal.pal similarity index 100% rename from graphics/pokemon/palettes/castform_sunny_form_palette.pal rename to graphics/pokemon/castform/sunny/normal.pal diff --git a/graphics/pokemon/palettes/castform_sunny_form_shiny_palette.pal b/graphics/pokemon/castform/sunny/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/castform_sunny_form_shiny_palette.pal rename to graphics/pokemon/castform/sunny/shiny.pal diff --git a/graphics/pokemon/back_pics/caterpie_back_pic.png b/graphics/pokemon/caterpie/back.png similarity index 100% rename from graphics/pokemon/back_pics/caterpie_back_pic.png rename to graphics/pokemon/caterpie/back.png diff --git a/graphics/pokemon/footprints/caterpie_footprint.png b/graphics/pokemon/caterpie/footprint.png similarity index 100% rename from graphics/pokemon/footprints/caterpie_footprint.png rename to graphics/pokemon/caterpie/footprint.png diff --git a/graphics/pokemon/front_pics/caterpie_still_front_pic.png b/graphics/pokemon/caterpie/front.png similarity index 100% rename from graphics/pokemon/front_pics/caterpie_still_front_pic.png rename to graphics/pokemon/caterpie/front.png diff --git a/graphics/pokemon/icons/caterpie_icon.png b/graphics/pokemon/caterpie/icon.png similarity index 100% rename from graphics/pokemon/icons/caterpie_icon.png rename to graphics/pokemon/caterpie/icon.png diff --git a/graphics/pokemon/palettes/caterpie_palette.pal b/graphics/pokemon/caterpie/normal.pal similarity index 100% rename from graphics/pokemon/palettes/caterpie_palette.pal rename to graphics/pokemon/caterpie/normal.pal diff --git a/graphics/pokemon/palettes/caterpie_shiny_palette.pal b/graphics/pokemon/caterpie/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/caterpie_shiny_palette.pal rename to graphics/pokemon/caterpie/shiny.pal diff --git a/graphics/pokemon/back_pics/celebi_back_pic.png b/graphics/pokemon/celebi/back.png similarity index 100% rename from graphics/pokemon/back_pics/celebi_back_pic.png rename to graphics/pokemon/celebi/back.png diff --git a/graphics/pokemon/footprints/celebi_footprint.png b/graphics/pokemon/celebi/footprint.png similarity index 100% rename from graphics/pokemon/footprints/celebi_footprint.png rename to graphics/pokemon/celebi/footprint.png diff --git a/graphics/pokemon/front_pics/celebi_still_front_pic.png b/graphics/pokemon/celebi/front.png similarity index 100% rename from graphics/pokemon/front_pics/celebi_still_front_pic.png rename to graphics/pokemon/celebi/front.png diff --git a/graphics/pokemon/icons/celebi_icon.png b/graphics/pokemon/celebi/icon.png similarity index 100% rename from graphics/pokemon/icons/celebi_icon.png rename to graphics/pokemon/celebi/icon.png diff --git a/graphics/pokemon/palettes/celebi_palette.pal b/graphics/pokemon/celebi/normal.pal similarity index 100% rename from graphics/pokemon/palettes/celebi_palette.pal rename to graphics/pokemon/celebi/normal.pal diff --git a/graphics/pokemon/palettes/celebi_shiny_palette.pal b/graphics/pokemon/celebi/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/celebi_shiny_palette.pal rename to graphics/pokemon/celebi/shiny.pal diff --git a/graphics/pokemon/back_pics/chansey_back_pic.png b/graphics/pokemon/chansey/back.png similarity index 100% rename from graphics/pokemon/back_pics/chansey_back_pic.png rename to graphics/pokemon/chansey/back.png diff --git a/graphics/pokemon/footprints/chansey_footprint.png b/graphics/pokemon/chansey/footprint.png similarity index 100% rename from graphics/pokemon/footprints/chansey_footprint.png rename to graphics/pokemon/chansey/footprint.png diff --git a/graphics/pokemon/front_pics/chansey_still_front_pic.png b/graphics/pokemon/chansey/front.png similarity index 100% rename from graphics/pokemon/front_pics/chansey_still_front_pic.png rename to graphics/pokemon/chansey/front.png diff --git a/graphics/pokemon/icons/chansey_icon.png b/graphics/pokemon/chansey/icon.png similarity index 100% rename from graphics/pokemon/icons/chansey_icon.png rename to graphics/pokemon/chansey/icon.png diff --git a/graphics/pokemon/palettes/chansey_palette.pal b/graphics/pokemon/chansey/normal.pal similarity index 100% rename from graphics/pokemon/palettes/chansey_palette.pal rename to graphics/pokemon/chansey/normal.pal diff --git a/graphics/pokemon/palettes/chansey_shiny_palette.pal b/graphics/pokemon/chansey/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/chansey_shiny_palette.pal rename to graphics/pokemon/chansey/shiny.pal diff --git a/graphics/pokemon/back_pics/charizard_back_pic.png b/graphics/pokemon/charizard/back.png similarity index 100% rename from graphics/pokemon/back_pics/charizard_back_pic.png rename to graphics/pokemon/charizard/back.png diff --git a/graphics/pokemon/footprints/charizard_footprint.png b/graphics/pokemon/charizard/footprint.png similarity index 100% rename from graphics/pokemon/footprints/charizard_footprint.png rename to graphics/pokemon/charizard/footprint.png diff --git a/graphics/pokemon/front_pics/charizard_still_front_pic.png b/graphics/pokemon/charizard/front.png similarity index 100% rename from graphics/pokemon/front_pics/charizard_still_front_pic.png rename to graphics/pokemon/charizard/front.png diff --git a/graphics/pokemon/icons/charizard_icon.png b/graphics/pokemon/charizard/icon.png similarity index 100% rename from graphics/pokemon/icons/charizard_icon.png rename to graphics/pokemon/charizard/icon.png diff --git a/graphics/pokemon/palettes/charizard_palette.pal b/graphics/pokemon/charizard/normal.pal similarity index 100% rename from graphics/pokemon/palettes/charizard_palette.pal rename to graphics/pokemon/charizard/normal.pal diff --git a/graphics/pokemon/palettes/charizard_shiny_palette.pal b/graphics/pokemon/charizard/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/charizard_shiny_palette.pal rename to graphics/pokemon/charizard/shiny.pal diff --git a/graphics/pokemon/back_pics/charmander_back_pic.png b/graphics/pokemon/charmander/back.png similarity index 100% rename from graphics/pokemon/back_pics/charmander_back_pic.png rename to graphics/pokemon/charmander/back.png diff --git a/graphics/pokemon/footprints/charmander_footprint.png b/graphics/pokemon/charmander/footprint.png similarity index 100% rename from graphics/pokemon/footprints/charmander_footprint.png rename to graphics/pokemon/charmander/footprint.png diff --git a/graphics/pokemon/front_pics/charmander_still_front_pic.png b/graphics/pokemon/charmander/front.png similarity index 100% rename from graphics/pokemon/front_pics/charmander_still_front_pic.png rename to graphics/pokemon/charmander/front.png diff --git a/graphics/pokemon/icons/charmander_icon.png b/graphics/pokemon/charmander/icon.png similarity index 100% rename from graphics/pokemon/icons/charmander_icon.png rename to graphics/pokemon/charmander/icon.png diff --git a/graphics/pokemon/palettes/charmander_palette.pal b/graphics/pokemon/charmander/normal.pal similarity index 100% rename from graphics/pokemon/palettes/charmander_palette.pal rename to graphics/pokemon/charmander/normal.pal diff --git a/graphics/pokemon/palettes/charmander_shiny_palette.pal b/graphics/pokemon/charmander/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/charmander_shiny_palette.pal rename to graphics/pokemon/charmander/shiny.pal diff --git a/graphics/pokemon/back_pics/charmeleon_back_pic.png b/graphics/pokemon/charmeleon/back.png similarity index 100% rename from graphics/pokemon/back_pics/charmeleon_back_pic.png rename to graphics/pokemon/charmeleon/back.png diff --git a/graphics/pokemon/footprints/charmeleon_footprint.png b/graphics/pokemon/charmeleon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/charmeleon_footprint.png rename to graphics/pokemon/charmeleon/footprint.png diff --git a/graphics/pokemon/front_pics/charmeleon_still_front_pic.png b/graphics/pokemon/charmeleon/front.png similarity index 100% rename from graphics/pokemon/front_pics/charmeleon_still_front_pic.png rename to graphics/pokemon/charmeleon/front.png diff --git a/graphics/pokemon/icons/charmeleon_icon.png b/graphics/pokemon/charmeleon/icon.png similarity index 100% rename from graphics/pokemon/icons/charmeleon_icon.png rename to graphics/pokemon/charmeleon/icon.png diff --git a/graphics/pokemon/palettes/charmeleon_palette.pal b/graphics/pokemon/charmeleon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/charmeleon_palette.pal rename to graphics/pokemon/charmeleon/normal.pal diff --git a/graphics/pokemon/palettes/charmeleon_shiny_palette.pal b/graphics/pokemon/charmeleon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/charmeleon_shiny_palette.pal rename to graphics/pokemon/charmeleon/shiny.pal diff --git a/graphics/pokemon/back_pics/chikorita_back_pic.png b/graphics/pokemon/chikorita/back.png similarity index 100% rename from graphics/pokemon/back_pics/chikorita_back_pic.png rename to graphics/pokemon/chikorita/back.png diff --git a/graphics/pokemon/footprints/chikorita_footprint.png b/graphics/pokemon/chikorita/footprint.png similarity index 100% rename from graphics/pokemon/footprints/chikorita_footprint.png rename to graphics/pokemon/chikorita/footprint.png diff --git a/graphics/pokemon/front_pics/chikorita_still_front_pic.png b/graphics/pokemon/chikorita/front.png similarity index 100% rename from graphics/pokemon/front_pics/chikorita_still_front_pic.png rename to graphics/pokemon/chikorita/front.png diff --git a/graphics/pokemon/icons/chikorita_icon.png b/graphics/pokemon/chikorita/icon.png similarity index 100% rename from graphics/pokemon/icons/chikorita_icon.png rename to graphics/pokemon/chikorita/icon.png diff --git a/graphics/pokemon/palettes/chikorita_palette.pal b/graphics/pokemon/chikorita/normal.pal similarity index 100% rename from graphics/pokemon/palettes/chikorita_palette.pal rename to graphics/pokemon/chikorita/normal.pal diff --git a/graphics/pokemon/palettes/chikorita_shiny_palette.pal b/graphics/pokemon/chikorita/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/chikorita_shiny_palette.pal rename to graphics/pokemon/chikorita/shiny.pal diff --git a/graphics/pokemon/back_pics/chimecho_back_pic.png b/graphics/pokemon/chimecho/back.png similarity index 100% rename from graphics/pokemon/back_pics/chimecho_back_pic.png rename to graphics/pokemon/chimecho/back.png diff --git a/graphics/pokemon/footprints/chimecho_footprint.png b/graphics/pokemon/chimecho/footprint.png similarity index 100% rename from graphics/pokemon/footprints/chimecho_footprint.png rename to graphics/pokemon/chimecho/footprint.png diff --git a/graphics/pokemon/front_pics/chimecho_still_front_pic.png b/graphics/pokemon/chimecho/front.png similarity index 100% rename from graphics/pokemon/front_pics/chimecho_still_front_pic.png rename to graphics/pokemon/chimecho/front.png diff --git a/graphics/pokemon/icons/chimecho_icon.png b/graphics/pokemon/chimecho/icon.png similarity index 100% rename from graphics/pokemon/icons/chimecho_icon.png rename to graphics/pokemon/chimecho/icon.png diff --git a/graphics/pokemon/palettes/chimecho_palette.pal b/graphics/pokemon/chimecho/normal.pal similarity index 100% rename from graphics/pokemon/palettes/chimecho_palette.pal rename to graphics/pokemon/chimecho/normal.pal diff --git a/graphics/pokemon/palettes/chimecho_shiny_palette.pal b/graphics/pokemon/chimecho/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/chimecho_shiny_palette.pal rename to graphics/pokemon/chimecho/shiny.pal diff --git a/graphics/pokemon/back_pics/chinchou_back_pic.png b/graphics/pokemon/chinchou/back.png similarity index 100% rename from graphics/pokemon/back_pics/chinchou_back_pic.png rename to graphics/pokemon/chinchou/back.png diff --git a/graphics/pokemon/footprints/chinchou_footprint.png b/graphics/pokemon/chinchou/footprint.png similarity index 100% rename from graphics/pokemon/footprints/chinchou_footprint.png rename to graphics/pokemon/chinchou/footprint.png diff --git a/graphics/pokemon/front_pics/chinchou_still_front_pic.png b/graphics/pokemon/chinchou/front.png similarity index 100% rename from graphics/pokemon/front_pics/chinchou_still_front_pic.png rename to graphics/pokemon/chinchou/front.png diff --git a/graphics/pokemon/icons/chinchou_icon.png b/graphics/pokemon/chinchou/icon.png similarity index 100% rename from graphics/pokemon/icons/chinchou_icon.png rename to graphics/pokemon/chinchou/icon.png diff --git a/graphics/pokemon/palettes/chinchou_palette.pal b/graphics/pokemon/chinchou/normal.pal similarity index 100% rename from graphics/pokemon/palettes/chinchou_palette.pal rename to graphics/pokemon/chinchou/normal.pal diff --git a/graphics/pokemon/palettes/chinchou_shiny_palette.pal b/graphics/pokemon/chinchou/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/chinchou_shiny_palette.pal rename to graphics/pokemon/chinchou/shiny.pal diff --git a/graphics/pokemon/back_pics/clamperl_back_pic.png b/graphics/pokemon/clamperl/back.png similarity index 100% rename from graphics/pokemon/back_pics/clamperl_back_pic.png rename to graphics/pokemon/clamperl/back.png diff --git a/graphics/pokemon/footprints/clamperl_footprint.png b/graphics/pokemon/clamperl/footprint.png similarity index 100% rename from graphics/pokemon/footprints/clamperl_footprint.png rename to graphics/pokemon/clamperl/footprint.png diff --git a/graphics/pokemon/front_pics/clamperl_still_front_pic.png b/graphics/pokemon/clamperl/front.png similarity index 100% rename from graphics/pokemon/front_pics/clamperl_still_front_pic.png rename to graphics/pokemon/clamperl/front.png diff --git a/graphics/pokemon/icons/clamperl_icon.png b/graphics/pokemon/clamperl/icon.png similarity index 100% rename from graphics/pokemon/icons/clamperl_icon.png rename to graphics/pokemon/clamperl/icon.png diff --git a/graphics/pokemon/palettes/clamperl_palette.pal b/graphics/pokemon/clamperl/normal.pal similarity index 100% rename from graphics/pokemon/palettes/clamperl_palette.pal rename to graphics/pokemon/clamperl/normal.pal diff --git a/graphics/pokemon/palettes/clamperl_shiny_palette.pal b/graphics/pokemon/clamperl/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/clamperl_shiny_palette.pal rename to graphics/pokemon/clamperl/shiny.pal diff --git a/graphics/pokemon/back_pics/claydol_back_pic.png b/graphics/pokemon/claydol/back.png similarity index 100% rename from graphics/pokemon/back_pics/claydol_back_pic.png rename to graphics/pokemon/claydol/back.png diff --git a/graphics/pokemon/footprints/claydol_footprint.png b/graphics/pokemon/claydol/footprint.png similarity index 100% rename from graphics/pokemon/footprints/claydol_footprint.png rename to graphics/pokemon/claydol/footprint.png diff --git a/graphics/pokemon/front_pics/claydol_still_front_pic.png b/graphics/pokemon/claydol/front.png similarity index 100% rename from graphics/pokemon/front_pics/claydol_still_front_pic.png rename to graphics/pokemon/claydol/front.png diff --git a/graphics/pokemon/icons/claydol_icon.png b/graphics/pokemon/claydol/icon.png similarity index 100% rename from graphics/pokemon/icons/claydol_icon.png rename to graphics/pokemon/claydol/icon.png diff --git a/graphics/pokemon/palettes/claydol_palette.pal b/graphics/pokemon/claydol/normal.pal similarity index 100% rename from graphics/pokemon/palettes/claydol_palette.pal rename to graphics/pokemon/claydol/normal.pal diff --git a/graphics/pokemon/palettes/claydol_shiny_palette.pal b/graphics/pokemon/claydol/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/claydol_shiny_palette.pal rename to graphics/pokemon/claydol/shiny.pal diff --git a/graphics/pokemon/back_pics/clefable_back_pic.png b/graphics/pokemon/clefable/back.png similarity index 100% rename from graphics/pokemon/back_pics/clefable_back_pic.png rename to graphics/pokemon/clefable/back.png diff --git a/graphics/pokemon/footprints/clefable_footprint.png b/graphics/pokemon/clefable/footprint.png similarity index 100% rename from graphics/pokemon/footprints/clefable_footprint.png rename to graphics/pokemon/clefable/footprint.png diff --git a/graphics/pokemon/front_pics/clefable_still_front_pic.png b/graphics/pokemon/clefable/front.png similarity index 100% rename from graphics/pokemon/front_pics/clefable_still_front_pic.png rename to graphics/pokemon/clefable/front.png diff --git a/graphics/pokemon/icons/clefable_icon.png b/graphics/pokemon/clefable/icon.png similarity index 100% rename from graphics/pokemon/icons/clefable_icon.png rename to graphics/pokemon/clefable/icon.png diff --git a/graphics/pokemon/palettes/clefable_palette.pal b/graphics/pokemon/clefable/normal.pal similarity index 100% rename from graphics/pokemon/palettes/clefable_palette.pal rename to graphics/pokemon/clefable/normal.pal diff --git a/graphics/pokemon/palettes/clefable_shiny_palette.pal b/graphics/pokemon/clefable/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/clefable_shiny_palette.pal rename to graphics/pokemon/clefable/shiny.pal diff --git a/graphics/pokemon/back_pics/clefairy_back_pic.png b/graphics/pokemon/clefairy/back.png similarity index 100% rename from graphics/pokemon/back_pics/clefairy_back_pic.png rename to graphics/pokemon/clefairy/back.png diff --git a/graphics/pokemon/footprints/clefairy_footprint.png b/graphics/pokemon/clefairy/footprint.png similarity index 100% rename from graphics/pokemon/footprints/clefairy_footprint.png rename to graphics/pokemon/clefairy/footprint.png diff --git a/graphics/pokemon/front_pics/clefairy_still_front_pic.png b/graphics/pokemon/clefairy/front.png similarity index 100% rename from graphics/pokemon/front_pics/clefairy_still_front_pic.png rename to graphics/pokemon/clefairy/front.png diff --git a/graphics/pokemon/icons/clefairy_icon.png b/graphics/pokemon/clefairy/icon.png similarity index 100% rename from graphics/pokemon/icons/clefairy_icon.png rename to graphics/pokemon/clefairy/icon.png diff --git a/graphics/pokemon/palettes/clefairy_palette.pal b/graphics/pokemon/clefairy/normal.pal similarity index 100% rename from graphics/pokemon/palettes/clefairy_palette.pal rename to graphics/pokemon/clefairy/normal.pal diff --git a/graphics/pokemon/palettes/clefairy_shiny_palette.pal b/graphics/pokemon/clefairy/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/clefairy_shiny_palette.pal rename to graphics/pokemon/clefairy/shiny.pal diff --git a/graphics/pokemon/back_pics/cleffa_back_pic.png b/graphics/pokemon/cleffa/back.png similarity index 100% rename from graphics/pokemon/back_pics/cleffa_back_pic.png rename to graphics/pokemon/cleffa/back.png diff --git a/graphics/pokemon/footprints/cleffa_footprint.png b/graphics/pokemon/cleffa/footprint.png similarity index 100% rename from graphics/pokemon/footprints/cleffa_footprint.png rename to graphics/pokemon/cleffa/footprint.png diff --git a/graphics/pokemon/front_pics/cleffa_still_front_pic.png b/graphics/pokemon/cleffa/front.png similarity index 100% rename from graphics/pokemon/front_pics/cleffa_still_front_pic.png rename to graphics/pokemon/cleffa/front.png diff --git a/graphics/pokemon/icons/cleffa_icon.png b/graphics/pokemon/cleffa/icon.png similarity index 100% rename from graphics/pokemon/icons/cleffa_icon.png rename to graphics/pokemon/cleffa/icon.png diff --git a/graphics/pokemon/palettes/cleffa_palette.pal b/graphics/pokemon/cleffa/normal.pal similarity index 100% rename from graphics/pokemon/palettes/cleffa_palette.pal rename to graphics/pokemon/cleffa/normal.pal diff --git a/graphics/pokemon/palettes/cleffa_shiny_palette.pal b/graphics/pokemon/cleffa/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/cleffa_shiny_palette.pal rename to graphics/pokemon/cleffa/shiny.pal diff --git a/graphics/pokemon/back_pics/cloyster_back_pic.png b/graphics/pokemon/cloyster/back.png similarity index 100% rename from graphics/pokemon/back_pics/cloyster_back_pic.png rename to graphics/pokemon/cloyster/back.png diff --git a/graphics/pokemon/footprints/cloyster_footprint.png b/graphics/pokemon/cloyster/footprint.png similarity index 100% rename from graphics/pokemon/footprints/cloyster_footprint.png rename to graphics/pokemon/cloyster/footprint.png diff --git a/graphics/pokemon/front_pics/cloyster_still_front_pic.png b/graphics/pokemon/cloyster/front.png similarity index 100% rename from graphics/pokemon/front_pics/cloyster_still_front_pic.png rename to graphics/pokemon/cloyster/front.png diff --git a/graphics/pokemon/icons/cloyster_icon.png b/graphics/pokemon/cloyster/icon.png similarity index 100% rename from graphics/pokemon/icons/cloyster_icon.png rename to graphics/pokemon/cloyster/icon.png diff --git a/graphics/pokemon/palettes/cloyster_palette.pal b/graphics/pokemon/cloyster/normal.pal similarity index 100% rename from graphics/pokemon/palettes/cloyster_palette.pal rename to graphics/pokemon/cloyster/normal.pal diff --git a/graphics/pokemon/palettes/cloyster_shiny_palette.pal b/graphics/pokemon/cloyster/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/cloyster_shiny_palette.pal rename to graphics/pokemon/cloyster/shiny.pal diff --git a/graphics/pokemon/back_pics/combusken_back_pic.png b/graphics/pokemon/combusken/back.png similarity index 100% rename from graphics/pokemon/back_pics/combusken_back_pic.png rename to graphics/pokemon/combusken/back.png diff --git a/graphics/pokemon/footprints/combusken_footprint.png b/graphics/pokemon/combusken/footprint.png similarity index 100% rename from graphics/pokemon/footprints/combusken_footprint.png rename to graphics/pokemon/combusken/footprint.png diff --git a/graphics/pokemon/front_pics/combusken_still_front_pic.png b/graphics/pokemon/combusken/front.png similarity index 100% rename from graphics/pokemon/front_pics/combusken_still_front_pic.png rename to graphics/pokemon/combusken/front.png diff --git a/graphics/pokemon/icons/combusken_icon.png b/graphics/pokemon/combusken/icon.png similarity index 100% rename from graphics/pokemon/icons/combusken_icon.png rename to graphics/pokemon/combusken/icon.png diff --git a/graphics/pokemon/palettes/combusken_palette.pal b/graphics/pokemon/combusken/normal.pal similarity index 100% rename from graphics/pokemon/palettes/combusken_palette.pal rename to graphics/pokemon/combusken/normal.pal diff --git a/graphics/pokemon/palettes/combusken_shiny_palette.pal b/graphics/pokemon/combusken/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/combusken_shiny_palette.pal rename to graphics/pokemon/combusken/shiny.pal diff --git a/graphics/pokemon/back_pics/corphish_back_pic.png b/graphics/pokemon/corphish/back.png similarity index 100% rename from graphics/pokemon/back_pics/corphish_back_pic.png rename to graphics/pokemon/corphish/back.png diff --git a/graphics/pokemon/footprints/corphish_footprint.png b/graphics/pokemon/corphish/footprint.png similarity index 100% rename from graphics/pokemon/footprints/corphish_footprint.png rename to graphics/pokemon/corphish/footprint.png diff --git a/graphics/pokemon/front_pics/corphish_still_front_pic.png b/graphics/pokemon/corphish/front.png similarity index 100% rename from graphics/pokemon/front_pics/corphish_still_front_pic.png rename to graphics/pokemon/corphish/front.png diff --git a/graphics/pokemon/icons/corphish_icon.png b/graphics/pokemon/corphish/icon.png similarity index 100% rename from graphics/pokemon/icons/corphish_icon.png rename to graphics/pokemon/corphish/icon.png diff --git a/graphics/pokemon/palettes/corphish_palette.pal b/graphics/pokemon/corphish/normal.pal similarity index 100% rename from graphics/pokemon/palettes/corphish_palette.pal rename to graphics/pokemon/corphish/normal.pal diff --git a/graphics/pokemon/palettes/corphish_shiny_palette.pal b/graphics/pokemon/corphish/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/corphish_shiny_palette.pal rename to graphics/pokemon/corphish/shiny.pal diff --git a/graphics/pokemon/back_pics/corsola_back_pic.png b/graphics/pokemon/corsola/back.png similarity index 100% rename from graphics/pokemon/back_pics/corsola_back_pic.png rename to graphics/pokemon/corsola/back.png diff --git a/graphics/pokemon/footprints/corsola_footprint.png b/graphics/pokemon/corsola/footprint.png similarity index 100% rename from graphics/pokemon/footprints/corsola_footprint.png rename to graphics/pokemon/corsola/footprint.png diff --git a/graphics/pokemon/front_pics/corsola_still_front_pic.png b/graphics/pokemon/corsola/front.png similarity index 100% rename from graphics/pokemon/front_pics/corsola_still_front_pic.png rename to graphics/pokemon/corsola/front.png diff --git a/graphics/pokemon/icons/corsola_icon.png b/graphics/pokemon/corsola/icon.png similarity index 100% rename from graphics/pokemon/icons/corsola_icon.png rename to graphics/pokemon/corsola/icon.png diff --git a/graphics/pokemon/palettes/corsola_palette.pal b/graphics/pokemon/corsola/normal.pal similarity index 100% rename from graphics/pokemon/palettes/corsola_palette.pal rename to graphics/pokemon/corsola/normal.pal diff --git a/graphics/pokemon/palettes/corsola_shiny_palette.pal b/graphics/pokemon/corsola/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/corsola_shiny_palette.pal rename to graphics/pokemon/corsola/shiny.pal diff --git a/graphics/pokemon/back_pics/cradily_back_pic.png b/graphics/pokemon/cradily/back.png similarity index 100% rename from graphics/pokemon/back_pics/cradily_back_pic.png rename to graphics/pokemon/cradily/back.png diff --git a/graphics/pokemon/footprints/cradily_footprint.png b/graphics/pokemon/cradily/footprint.png similarity index 100% rename from graphics/pokemon/footprints/cradily_footprint.png rename to graphics/pokemon/cradily/footprint.png diff --git a/graphics/pokemon/front_pics/cradily_still_front_pic.png b/graphics/pokemon/cradily/front.png similarity index 100% rename from graphics/pokemon/front_pics/cradily_still_front_pic.png rename to graphics/pokemon/cradily/front.png diff --git a/graphics/pokemon/icons/cradily_icon.png b/graphics/pokemon/cradily/icon.png similarity index 100% rename from graphics/pokemon/icons/cradily_icon.png rename to graphics/pokemon/cradily/icon.png diff --git a/graphics/pokemon/palettes/cradily_palette.pal b/graphics/pokemon/cradily/normal.pal similarity index 100% rename from graphics/pokemon/palettes/cradily_palette.pal rename to graphics/pokemon/cradily/normal.pal diff --git a/graphics/pokemon/palettes/cradily_shiny_palette.pal b/graphics/pokemon/cradily/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/cradily_shiny_palette.pal rename to graphics/pokemon/cradily/shiny.pal diff --git a/graphics/pokemon/back_pics/crawdaunt_back_pic.png b/graphics/pokemon/crawdaunt/back.png similarity index 100% rename from graphics/pokemon/back_pics/crawdaunt_back_pic.png rename to graphics/pokemon/crawdaunt/back.png diff --git a/graphics/pokemon/footprints/crawdaunt_footprint.png b/graphics/pokemon/crawdaunt/footprint.png similarity index 100% rename from graphics/pokemon/footprints/crawdaunt_footprint.png rename to graphics/pokemon/crawdaunt/footprint.png diff --git a/graphics/pokemon/front_pics/crawdaunt_still_front_pic.png b/graphics/pokemon/crawdaunt/front.png similarity index 100% rename from graphics/pokemon/front_pics/crawdaunt_still_front_pic.png rename to graphics/pokemon/crawdaunt/front.png diff --git a/graphics/pokemon/icons/crawdaunt_icon.png b/graphics/pokemon/crawdaunt/icon.png similarity index 100% rename from graphics/pokemon/icons/crawdaunt_icon.png rename to graphics/pokemon/crawdaunt/icon.png diff --git a/graphics/pokemon/palettes/crawdaunt_palette.pal b/graphics/pokemon/crawdaunt/normal.pal similarity index 100% rename from graphics/pokemon/palettes/crawdaunt_palette.pal rename to graphics/pokemon/crawdaunt/normal.pal diff --git a/graphics/pokemon/palettes/crawdaunt_shiny_palette.pal b/graphics/pokemon/crawdaunt/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/crawdaunt_shiny_palette.pal rename to graphics/pokemon/crawdaunt/shiny.pal diff --git a/graphics/pokemon/back_pics/crobat_back_pic.png b/graphics/pokemon/crobat/back.png similarity index 100% rename from graphics/pokemon/back_pics/crobat_back_pic.png rename to graphics/pokemon/crobat/back.png diff --git a/graphics/pokemon/footprints/crobat_footprint.png b/graphics/pokemon/crobat/footprint.png similarity index 100% rename from graphics/pokemon/footprints/crobat_footprint.png rename to graphics/pokemon/crobat/footprint.png diff --git a/graphics/pokemon/front_pics/crobat_still_front_pic.png b/graphics/pokemon/crobat/front.png similarity index 100% rename from graphics/pokemon/front_pics/crobat_still_front_pic.png rename to graphics/pokemon/crobat/front.png diff --git a/graphics/pokemon/icons/crobat_icon.png b/graphics/pokemon/crobat/icon.png similarity index 100% rename from graphics/pokemon/icons/crobat_icon.png rename to graphics/pokemon/crobat/icon.png diff --git a/graphics/pokemon/palettes/crobat_palette.pal b/graphics/pokemon/crobat/normal.pal similarity index 100% rename from graphics/pokemon/palettes/crobat_palette.pal rename to graphics/pokemon/crobat/normal.pal diff --git a/graphics/pokemon/palettes/crobat_shiny_palette.pal b/graphics/pokemon/crobat/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/crobat_shiny_palette.pal rename to graphics/pokemon/crobat/shiny.pal diff --git a/graphics/pokemon/back_pics/croconaw_back_pic.png b/graphics/pokemon/croconaw/back.png similarity index 100% rename from graphics/pokemon/back_pics/croconaw_back_pic.png rename to graphics/pokemon/croconaw/back.png diff --git a/graphics/pokemon/footprints/croconaw_footprint.png b/graphics/pokemon/croconaw/footprint.png similarity index 100% rename from graphics/pokemon/footprints/croconaw_footprint.png rename to graphics/pokemon/croconaw/footprint.png diff --git a/graphics/pokemon/front_pics/croconaw_still_front_pic.png b/graphics/pokemon/croconaw/front.png similarity index 100% rename from graphics/pokemon/front_pics/croconaw_still_front_pic.png rename to graphics/pokemon/croconaw/front.png diff --git a/graphics/pokemon/icons/croconaw_icon.png b/graphics/pokemon/croconaw/icon.png similarity index 100% rename from graphics/pokemon/icons/croconaw_icon.png rename to graphics/pokemon/croconaw/icon.png diff --git a/graphics/pokemon/palettes/croconaw_palette.pal b/graphics/pokemon/croconaw/normal.pal similarity index 100% rename from graphics/pokemon/palettes/croconaw_palette.pal rename to graphics/pokemon/croconaw/normal.pal diff --git a/graphics/pokemon/palettes/croconaw_shiny_palette.pal b/graphics/pokemon/croconaw/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/croconaw_shiny_palette.pal rename to graphics/pokemon/croconaw/shiny.pal diff --git a/graphics/pokemon/back_pics/cubone_back_pic.png b/graphics/pokemon/cubone/back.png similarity index 100% rename from graphics/pokemon/back_pics/cubone_back_pic.png rename to graphics/pokemon/cubone/back.png diff --git a/graphics/pokemon/footprints/cubone_footprint.png b/graphics/pokemon/cubone/footprint.png similarity index 100% rename from graphics/pokemon/footprints/cubone_footprint.png rename to graphics/pokemon/cubone/footprint.png diff --git a/graphics/pokemon/front_pics/cubone_still_front_pic.png b/graphics/pokemon/cubone/front.png similarity index 100% rename from graphics/pokemon/front_pics/cubone_still_front_pic.png rename to graphics/pokemon/cubone/front.png diff --git a/graphics/pokemon/icons/cubone_icon.png b/graphics/pokemon/cubone/icon.png similarity index 100% rename from graphics/pokemon/icons/cubone_icon.png rename to graphics/pokemon/cubone/icon.png diff --git a/graphics/pokemon/palettes/cubone_palette.pal b/graphics/pokemon/cubone/normal.pal similarity index 100% rename from graphics/pokemon/palettes/cubone_palette.pal rename to graphics/pokemon/cubone/normal.pal diff --git a/graphics/pokemon/palettes/cubone_shiny_palette.pal b/graphics/pokemon/cubone/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/cubone_shiny_palette.pal rename to graphics/pokemon/cubone/shiny.pal diff --git a/graphics/pokemon/back_pics/cyndaquil_back_pic.png b/graphics/pokemon/cyndaquil/back.png similarity index 100% rename from graphics/pokemon/back_pics/cyndaquil_back_pic.png rename to graphics/pokemon/cyndaquil/back.png diff --git a/graphics/pokemon/footprints/cyndaquil_footprint.png b/graphics/pokemon/cyndaquil/footprint.png similarity index 100% rename from graphics/pokemon/footprints/cyndaquil_footprint.png rename to graphics/pokemon/cyndaquil/footprint.png diff --git a/graphics/pokemon/front_pics/cyndaquil_still_front_pic.png b/graphics/pokemon/cyndaquil/front.png similarity index 100% rename from graphics/pokemon/front_pics/cyndaquil_still_front_pic.png rename to graphics/pokemon/cyndaquil/front.png diff --git a/graphics/pokemon/icons/cyndaquil_icon.png b/graphics/pokemon/cyndaquil/icon.png similarity index 100% rename from graphics/pokemon/icons/cyndaquil_icon.png rename to graphics/pokemon/cyndaquil/icon.png diff --git a/graphics/pokemon/palettes/cyndaquil_palette.pal b/graphics/pokemon/cyndaquil/normal.pal similarity index 100% rename from graphics/pokemon/palettes/cyndaquil_palette.pal rename to graphics/pokemon/cyndaquil/normal.pal diff --git a/graphics/pokemon/palettes/cyndaquil_shiny_palette.pal b/graphics/pokemon/cyndaquil/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/cyndaquil_shiny_palette.pal rename to graphics/pokemon/cyndaquil/shiny.pal diff --git a/graphics/pokemon/back_pics/delcatty_back_pic.png b/graphics/pokemon/delcatty/back.png similarity index 100% rename from graphics/pokemon/back_pics/delcatty_back_pic.png rename to graphics/pokemon/delcatty/back.png diff --git a/graphics/pokemon/footprints/delcatty_footprint.png b/graphics/pokemon/delcatty/footprint.png similarity index 100% rename from graphics/pokemon/footprints/delcatty_footprint.png rename to graphics/pokemon/delcatty/footprint.png diff --git a/graphics/pokemon/front_pics/delcatty_still_front_pic.png b/graphics/pokemon/delcatty/front.png similarity index 100% rename from graphics/pokemon/front_pics/delcatty_still_front_pic.png rename to graphics/pokemon/delcatty/front.png diff --git a/graphics/pokemon/icons/delcatty_icon.png b/graphics/pokemon/delcatty/icon.png similarity index 100% rename from graphics/pokemon/icons/delcatty_icon.png rename to graphics/pokemon/delcatty/icon.png diff --git a/graphics/pokemon/palettes/delcatty_palette.pal b/graphics/pokemon/delcatty/normal.pal similarity index 100% rename from graphics/pokemon/palettes/delcatty_palette.pal rename to graphics/pokemon/delcatty/normal.pal diff --git a/graphics/pokemon/palettes/delcatty_shiny_palette.pal b/graphics/pokemon/delcatty/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/delcatty_shiny_palette.pal rename to graphics/pokemon/delcatty/shiny.pal diff --git a/graphics/pokemon/back_pics/delibird_back_pic.png b/graphics/pokemon/delibird/back.png similarity index 100% rename from graphics/pokemon/back_pics/delibird_back_pic.png rename to graphics/pokemon/delibird/back.png diff --git a/graphics/pokemon/footprints/delibird_footprint.png b/graphics/pokemon/delibird/footprint.png similarity index 100% rename from graphics/pokemon/footprints/delibird_footprint.png rename to graphics/pokemon/delibird/footprint.png diff --git a/graphics/pokemon/front_pics/delibird_still_front_pic.png b/graphics/pokemon/delibird/front.png similarity index 100% rename from graphics/pokemon/front_pics/delibird_still_front_pic.png rename to graphics/pokemon/delibird/front.png diff --git a/graphics/pokemon/icons/delibird_icon.png b/graphics/pokemon/delibird/icon.png similarity index 100% rename from graphics/pokemon/icons/delibird_icon.png rename to graphics/pokemon/delibird/icon.png diff --git a/graphics/pokemon/palettes/delibird_palette.pal b/graphics/pokemon/delibird/normal.pal similarity index 100% rename from graphics/pokemon/palettes/delibird_palette.pal rename to graphics/pokemon/delibird/normal.pal diff --git a/graphics/pokemon/palettes/delibird_shiny_palette.pal b/graphics/pokemon/delibird/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/delibird_shiny_palette.pal rename to graphics/pokemon/delibird/shiny.pal diff --git a/graphics/pokemon/back_pics/deoxys_back_pic.png b/graphics/pokemon/deoxys/back.png similarity index 100% rename from graphics/pokemon/back_pics/deoxys_back_pic.png rename to graphics/pokemon/deoxys/back.png diff --git a/graphics/pokemon/footprints/deoxys_footprint.png b/graphics/pokemon/deoxys/footprint.png similarity index 100% rename from graphics/pokemon/footprints/deoxys_footprint.png rename to graphics/pokemon/deoxys/footprint.png diff --git a/graphics/pokemon/front_pics/deoxys_still_front_pic.png b/graphics/pokemon/deoxys/front.png similarity index 100% rename from graphics/pokemon/front_pics/deoxys_still_front_pic.png rename to graphics/pokemon/deoxys/front.png diff --git a/graphics/pokemon/icons/deoxys_icon.png b/graphics/pokemon/deoxys/icon.png similarity index 100% rename from graphics/pokemon/icons/deoxys_icon.png rename to graphics/pokemon/deoxys/icon.png diff --git a/graphics/pokemon/palettes/deoxys_palette.pal b/graphics/pokemon/deoxys/normal.pal similarity index 100% rename from graphics/pokemon/palettes/deoxys_palette.pal rename to graphics/pokemon/deoxys/normal.pal diff --git a/graphics/pokemon/palettes/deoxys_shiny_palette.pal b/graphics/pokemon/deoxys/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/deoxys_shiny_palette.pal rename to graphics/pokemon/deoxys/shiny.pal diff --git a/graphics/pokemon/icons/deoxys_speed_icon.png b/graphics/pokemon/deoxys/speed_icon.png similarity index 100% rename from graphics/pokemon/icons/deoxys_speed_icon.png rename to graphics/pokemon/deoxys/speed_icon.png diff --git a/graphics/pokemon/back_pics/dewgong_back_pic.png b/graphics/pokemon/dewgong/back.png similarity index 100% rename from graphics/pokemon/back_pics/dewgong_back_pic.png rename to graphics/pokemon/dewgong/back.png diff --git a/graphics/pokemon/footprints/dewgong_footprint.png b/graphics/pokemon/dewgong/footprint.png similarity index 100% rename from graphics/pokemon/footprints/dewgong_footprint.png rename to graphics/pokemon/dewgong/footprint.png diff --git a/graphics/pokemon/front_pics/dewgong_still_front_pic.png b/graphics/pokemon/dewgong/front.png similarity index 100% rename from graphics/pokemon/front_pics/dewgong_still_front_pic.png rename to graphics/pokemon/dewgong/front.png diff --git a/graphics/pokemon/icons/dewgong_icon.png b/graphics/pokemon/dewgong/icon.png similarity index 100% rename from graphics/pokemon/icons/dewgong_icon.png rename to graphics/pokemon/dewgong/icon.png diff --git a/graphics/pokemon/palettes/dewgong_palette.pal b/graphics/pokemon/dewgong/normal.pal similarity index 100% rename from graphics/pokemon/palettes/dewgong_palette.pal rename to graphics/pokemon/dewgong/normal.pal diff --git a/graphics/pokemon/palettes/dewgong_shiny_palette.pal b/graphics/pokemon/dewgong/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/dewgong_shiny_palette.pal rename to graphics/pokemon/dewgong/shiny.pal diff --git a/graphics/pokemon/back_pics/diglett_back_pic.png b/graphics/pokemon/diglett/back.png similarity index 100% rename from graphics/pokemon/back_pics/diglett_back_pic.png rename to graphics/pokemon/diglett/back.png diff --git a/graphics/pokemon/footprints/diglett_footprint.png b/graphics/pokemon/diglett/footprint.png similarity index 100% rename from graphics/pokemon/footprints/diglett_footprint.png rename to graphics/pokemon/diglett/footprint.png diff --git a/graphics/pokemon/front_pics/diglett_still_front_pic.png b/graphics/pokemon/diglett/front.png similarity index 100% rename from graphics/pokemon/front_pics/diglett_still_front_pic.png rename to graphics/pokemon/diglett/front.png diff --git a/graphics/pokemon/icons/diglett_icon.png b/graphics/pokemon/diglett/icon.png similarity index 100% rename from graphics/pokemon/icons/diglett_icon.png rename to graphics/pokemon/diglett/icon.png diff --git a/graphics/pokemon/palettes/diglett_palette.pal b/graphics/pokemon/diglett/normal.pal similarity index 100% rename from graphics/pokemon/palettes/diglett_palette.pal rename to graphics/pokemon/diglett/normal.pal diff --git a/graphics/pokemon/palettes/diglett_shiny_palette.pal b/graphics/pokemon/diglett/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/diglett_shiny_palette.pal rename to graphics/pokemon/diglett/shiny.pal diff --git a/graphics/pokemon/back_pics/ditto_back_pic.png b/graphics/pokemon/ditto/back.png similarity index 100% rename from graphics/pokemon/back_pics/ditto_back_pic.png rename to graphics/pokemon/ditto/back.png diff --git a/graphics/pokemon/footprints/ditto_footprint.png b/graphics/pokemon/ditto/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ditto_footprint.png rename to graphics/pokemon/ditto/footprint.png diff --git a/graphics/pokemon/front_pics/ditto_still_front_pic.png b/graphics/pokemon/ditto/front.png similarity index 100% rename from graphics/pokemon/front_pics/ditto_still_front_pic.png rename to graphics/pokemon/ditto/front.png diff --git a/graphics/pokemon/icons/ditto_icon.png b/graphics/pokemon/ditto/icon.png similarity index 100% rename from graphics/pokemon/icons/ditto_icon.png rename to graphics/pokemon/ditto/icon.png diff --git a/graphics/pokemon/palettes/ditto_palette.pal b/graphics/pokemon/ditto/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ditto_palette.pal rename to graphics/pokemon/ditto/normal.pal diff --git a/graphics/pokemon/palettes/ditto_shiny_palette.pal b/graphics/pokemon/ditto/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ditto_shiny_palette.pal rename to graphics/pokemon/ditto/shiny.pal diff --git a/graphics/pokemon/back_pics/dodrio_back_pic.png b/graphics/pokemon/dodrio/back.png similarity index 100% rename from graphics/pokemon/back_pics/dodrio_back_pic.png rename to graphics/pokemon/dodrio/back.png diff --git a/graphics/pokemon/footprints/dodrio_footprint.png b/graphics/pokemon/dodrio/footprint.png similarity index 100% rename from graphics/pokemon/footprints/dodrio_footprint.png rename to graphics/pokemon/dodrio/footprint.png diff --git a/graphics/pokemon/front_pics/dodrio_still_front_pic.png b/graphics/pokemon/dodrio/front.png similarity index 100% rename from graphics/pokemon/front_pics/dodrio_still_front_pic.png rename to graphics/pokemon/dodrio/front.png diff --git a/graphics/pokemon/icons/dodrio_icon.png b/graphics/pokemon/dodrio/icon.png similarity index 100% rename from graphics/pokemon/icons/dodrio_icon.png rename to graphics/pokemon/dodrio/icon.png diff --git a/graphics/pokemon/palettes/dodrio_palette.pal b/graphics/pokemon/dodrio/normal.pal similarity index 100% rename from graphics/pokemon/palettes/dodrio_palette.pal rename to graphics/pokemon/dodrio/normal.pal diff --git a/graphics/pokemon/palettes/dodrio_shiny_palette.pal b/graphics/pokemon/dodrio/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/dodrio_shiny_palette.pal rename to graphics/pokemon/dodrio/shiny.pal diff --git a/graphics/pokemon/back_pics/doduo_back_pic.png b/graphics/pokemon/doduo/back.png similarity index 100% rename from graphics/pokemon/back_pics/doduo_back_pic.png rename to graphics/pokemon/doduo/back.png diff --git a/graphics/pokemon/footprints/doduo_footprint.png b/graphics/pokemon/doduo/footprint.png similarity index 100% rename from graphics/pokemon/footprints/doduo_footprint.png rename to graphics/pokemon/doduo/footprint.png diff --git a/graphics/pokemon/front_pics/doduo_still_front_pic.png b/graphics/pokemon/doduo/front.png similarity index 100% rename from graphics/pokemon/front_pics/doduo_still_front_pic.png rename to graphics/pokemon/doduo/front.png diff --git a/graphics/pokemon/icons/doduo_icon.png b/graphics/pokemon/doduo/icon.png similarity index 100% rename from graphics/pokemon/icons/doduo_icon.png rename to graphics/pokemon/doduo/icon.png diff --git a/graphics/pokemon/palettes/doduo_palette.pal b/graphics/pokemon/doduo/normal.pal similarity index 100% rename from graphics/pokemon/palettes/doduo_palette.pal rename to graphics/pokemon/doduo/normal.pal diff --git a/graphics/pokemon/palettes/doduo_shiny_palette.pal b/graphics/pokemon/doduo/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/doduo_shiny_palette.pal rename to graphics/pokemon/doduo/shiny.pal diff --git a/graphics/pokemon/back_pics/donphan_back_pic.png b/graphics/pokemon/donphan/back.png similarity index 100% rename from graphics/pokemon/back_pics/donphan_back_pic.png rename to graphics/pokemon/donphan/back.png diff --git a/graphics/pokemon/footprints/donphan_footprint.png b/graphics/pokemon/donphan/footprint.png similarity index 100% rename from graphics/pokemon/footprints/donphan_footprint.png rename to graphics/pokemon/donphan/footprint.png diff --git a/graphics/pokemon/front_pics/donphan_still_front_pic.png b/graphics/pokemon/donphan/front.png similarity index 100% rename from graphics/pokemon/front_pics/donphan_still_front_pic.png rename to graphics/pokemon/donphan/front.png diff --git a/graphics/pokemon/icons/donphan_icon.png b/graphics/pokemon/donphan/icon.png similarity index 100% rename from graphics/pokemon/icons/donphan_icon.png rename to graphics/pokemon/donphan/icon.png diff --git a/graphics/pokemon/palettes/donphan_palette.pal b/graphics/pokemon/donphan/normal.pal similarity index 100% rename from graphics/pokemon/palettes/donphan_palette.pal rename to graphics/pokemon/donphan/normal.pal diff --git a/graphics/pokemon/palettes/donphan_shiny_palette.pal b/graphics/pokemon/donphan/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/donphan_shiny_palette.pal rename to graphics/pokemon/donphan/shiny.pal diff --git a/graphics/pokemon/back_pics/dragonair_back_pic.png b/graphics/pokemon/dragonair/back.png similarity index 100% rename from graphics/pokemon/back_pics/dragonair_back_pic.png rename to graphics/pokemon/dragonair/back.png diff --git a/graphics/pokemon/footprints/dragonair_footprint.png b/graphics/pokemon/dragonair/footprint.png similarity index 100% rename from graphics/pokemon/footprints/dragonair_footprint.png rename to graphics/pokemon/dragonair/footprint.png diff --git a/graphics/pokemon/front_pics/dragonair_still_front_pic.png b/graphics/pokemon/dragonair/front.png similarity index 100% rename from graphics/pokemon/front_pics/dragonair_still_front_pic.png rename to graphics/pokemon/dragonair/front.png diff --git a/graphics/pokemon/icons/dragonair_icon.png b/graphics/pokemon/dragonair/icon.png similarity index 100% rename from graphics/pokemon/icons/dragonair_icon.png rename to graphics/pokemon/dragonair/icon.png diff --git a/graphics/pokemon/palettes/dragonair_palette.pal b/graphics/pokemon/dragonair/normal.pal similarity index 100% rename from graphics/pokemon/palettes/dragonair_palette.pal rename to graphics/pokemon/dragonair/normal.pal diff --git a/graphics/pokemon/palettes/dragonair_shiny_palette.pal b/graphics/pokemon/dragonair/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/dragonair_shiny_palette.pal rename to graphics/pokemon/dragonair/shiny.pal diff --git a/graphics/pokemon/back_pics/dragonite_back_pic.png b/graphics/pokemon/dragonite/back.png similarity index 100% rename from graphics/pokemon/back_pics/dragonite_back_pic.png rename to graphics/pokemon/dragonite/back.png diff --git a/graphics/pokemon/footprints/dragonite_footprint.png b/graphics/pokemon/dragonite/footprint.png similarity index 100% rename from graphics/pokemon/footprints/dragonite_footprint.png rename to graphics/pokemon/dragonite/footprint.png diff --git a/graphics/pokemon/front_pics/dragonite_still_front_pic.png b/graphics/pokemon/dragonite/front.png similarity index 100% rename from graphics/pokemon/front_pics/dragonite_still_front_pic.png rename to graphics/pokemon/dragonite/front.png diff --git a/graphics/pokemon/icons/dragonite_icon.png b/graphics/pokemon/dragonite/icon.png similarity index 100% rename from graphics/pokemon/icons/dragonite_icon.png rename to graphics/pokemon/dragonite/icon.png diff --git a/graphics/pokemon/palettes/dragonite_palette.pal b/graphics/pokemon/dragonite/normal.pal similarity index 100% rename from graphics/pokemon/palettes/dragonite_palette.pal rename to graphics/pokemon/dragonite/normal.pal diff --git a/graphics/pokemon/palettes/dragonite_shiny_palette.pal b/graphics/pokemon/dragonite/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/dragonite_shiny_palette.pal rename to graphics/pokemon/dragonite/shiny.pal diff --git a/graphics/pokemon/back_pics/dratini_back_pic.png b/graphics/pokemon/dratini/back.png similarity index 100% rename from graphics/pokemon/back_pics/dratini_back_pic.png rename to graphics/pokemon/dratini/back.png diff --git a/graphics/pokemon/footprints/dratini_footprint.png b/graphics/pokemon/dratini/footprint.png similarity index 100% rename from graphics/pokemon/footprints/dratini_footprint.png rename to graphics/pokemon/dratini/footprint.png diff --git a/graphics/pokemon/front_pics/dratini_still_front_pic.png b/graphics/pokemon/dratini/front.png similarity index 100% rename from graphics/pokemon/front_pics/dratini_still_front_pic.png rename to graphics/pokemon/dratini/front.png diff --git a/graphics/pokemon/icons/dratini_icon.png b/graphics/pokemon/dratini/icon.png similarity index 100% rename from graphics/pokemon/icons/dratini_icon.png rename to graphics/pokemon/dratini/icon.png diff --git a/graphics/pokemon/palettes/dratini_palette.pal b/graphics/pokemon/dratini/normal.pal similarity index 100% rename from graphics/pokemon/palettes/dratini_palette.pal rename to graphics/pokemon/dratini/normal.pal diff --git a/graphics/pokemon/palettes/dratini_shiny_palette.pal b/graphics/pokemon/dratini/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/dratini_shiny_palette.pal rename to graphics/pokemon/dratini/shiny.pal diff --git a/graphics/pokemon/back_pics/drowzee_back_pic.png b/graphics/pokemon/drowzee/back.png similarity index 100% rename from graphics/pokemon/back_pics/drowzee_back_pic.png rename to graphics/pokemon/drowzee/back.png diff --git a/graphics/pokemon/footprints/drowzee_footprint.png b/graphics/pokemon/drowzee/footprint.png similarity index 100% rename from graphics/pokemon/footprints/drowzee_footprint.png rename to graphics/pokemon/drowzee/footprint.png diff --git a/graphics/pokemon/front_pics/drowzee_still_front_pic.png b/graphics/pokemon/drowzee/front.png similarity index 100% rename from graphics/pokemon/front_pics/drowzee_still_front_pic.png rename to graphics/pokemon/drowzee/front.png diff --git a/graphics/pokemon/icons/drowzee_icon.png b/graphics/pokemon/drowzee/icon.png similarity index 100% rename from graphics/pokemon/icons/drowzee_icon.png rename to graphics/pokemon/drowzee/icon.png diff --git a/graphics/pokemon/palettes/drowzee_palette.pal b/graphics/pokemon/drowzee/normal.pal similarity index 100% rename from graphics/pokemon/palettes/drowzee_palette.pal rename to graphics/pokemon/drowzee/normal.pal diff --git a/graphics/pokemon/palettes/drowzee_shiny_palette.pal b/graphics/pokemon/drowzee/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/drowzee_shiny_palette.pal rename to graphics/pokemon/drowzee/shiny.pal diff --git a/graphics/pokemon/back_pics/dugtrio_back_pic.png b/graphics/pokemon/dugtrio/back.png similarity index 100% rename from graphics/pokemon/back_pics/dugtrio_back_pic.png rename to graphics/pokemon/dugtrio/back.png diff --git a/graphics/pokemon/footprints/dugtrio_footprint.png b/graphics/pokemon/dugtrio/footprint.png similarity index 100% rename from graphics/pokemon/footprints/dugtrio_footprint.png rename to graphics/pokemon/dugtrio/footprint.png diff --git a/graphics/pokemon/front_pics/dugtrio_still_front_pic.png b/graphics/pokemon/dugtrio/front.png similarity index 100% rename from graphics/pokemon/front_pics/dugtrio_still_front_pic.png rename to graphics/pokemon/dugtrio/front.png diff --git a/graphics/pokemon/icons/dugtrio_icon.png b/graphics/pokemon/dugtrio/icon.png similarity index 100% rename from graphics/pokemon/icons/dugtrio_icon.png rename to graphics/pokemon/dugtrio/icon.png diff --git a/graphics/pokemon/palettes/dugtrio_palette.pal b/graphics/pokemon/dugtrio/normal.pal similarity index 100% rename from graphics/pokemon/palettes/dugtrio_palette.pal rename to graphics/pokemon/dugtrio/normal.pal diff --git a/graphics/pokemon/palettes/dugtrio_shiny_palette.pal b/graphics/pokemon/dugtrio/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/dugtrio_shiny_palette.pal rename to graphics/pokemon/dugtrio/shiny.pal diff --git a/graphics/pokemon/back_pics/dunsparce_back_pic.png b/graphics/pokemon/dunsparce/back.png similarity index 100% rename from graphics/pokemon/back_pics/dunsparce_back_pic.png rename to graphics/pokemon/dunsparce/back.png diff --git a/graphics/pokemon/footprints/dunsparce_footprint.png b/graphics/pokemon/dunsparce/footprint.png similarity index 100% rename from graphics/pokemon/footprints/dunsparce_footprint.png rename to graphics/pokemon/dunsparce/footprint.png diff --git a/graphics/pokemon/front_pics/dunsparce_still_front_pic.png b/graphics/pokemon/dunsparce/front.png similarity index 100% rename from graphics/pokemon/front_pics/dunsparce_still_front_pic.png rename to graphics/pokemon/dunsparce/front.png diff --git a/graphics/pokemon/icons/dunsparce_icon.png b/graphics/pokemon/dunsparce/icon.png similarity index 100% rename from graphics/pokemon/icons/dunsparce_icon.png rename to graphics/pokemon/dunsparce/icon.png diff --git a/graphics/pokemon/palettes/dunsparce_palette.pal b/graphics/pokemon/dunsparce/normal.pal similarity index 100% rename from graphics/pokemon/palettes/dunsparce_palette.pal rename to graphics/pokemon/dunsparce/normal.pal diff --git a/graphics/pokemon/palettes/dunsparce_shiny_palette.pal b/graphics/pokemon/dunsparce/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/dunsparce_shiny_palette.pal rename to graphics/pokemon/dunsparce/shiny.pal diff --git a/graphics/pokemon/back_pics/dusclops_back_pic.png b/graphics/pokemon/dusclops/back.png similarity index 100% rename from graphics/pokemon/back_pics/dusclops_back_pic.png rename to graphics/pokemon/dusclops/back.png diff --git a/graphics/pokemon/footprints/dusclops_footprint.png b/graphics/pokemon/dusclops/footprint.png similarity index 100% rename from graphics/pokemon/footprints/dusclops_footprint.png rename to graphics/pokemon/dusclops/footprint.png diff --git a/graphics/pokemon/front_pics/dusclops_still_front_pic.png b/graphics/pokemon/dusclops/front.png similarity index 100% rename from graphics/pokemon/front_pics/dusclops_still_front_pic.png rename to graphics/pokemon/dusclops/front.png diff --git a/graphics/pokemon/icons/dusclops_icon.png b/graphics/pokemon/dusclops/icon.png similarity index 100% rename from graphics/pokemon/icons/dusclops_icon.png rename to graphics/pokemon/dusclops/icon.png diff --git a/graphics/pokemon/palettes/dusclops_palette.pal b/graphics/pokemon/dusclops/normal.pal similarity index 100% rename from graphics/pokemon/palettes/dusclops_palette.pal rename to graphics/pokemon/dusclops/normal.pal diff --git a/graphics/pokemon/palettes/dusclops_shiny_palette.pal b/graphics/pokemon/dusclops/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/dusclops_shiny_palette.pal rename to graphics/pokemon/dusclops/shiny.pal diff --git a/graphics/pokemon/back_pics/duskull_back_pic.png b/graphics/pokemon/duskull/back.png similarity index 100% rename from graphics/pokemon/back_pics/duskull_back_pic.png rename to graphics/pokemon/duskull/back.png diff --git a/graphics/pokemon/footprints/duskull_footprint.png b/graphics/pokemon/duskull/footprint.png similarity index 100% rename from graphics/pokemon/footprints/duskull_footprint.png rename to graphics/pokemon/duskull/footprint.png diff --git a/graphics/pokemon/front_pics/duskull_still_front_pic.png b/graphics/pokemon/duskull/front.png similarity index 100% rename from graphics/pokemon/front_pics/duskull_still_front_pic.png rename to graphics/pokemon/duskull/front.png diff --git a/graphics/pokemon/icons/duskull_icon.png b/graphics/pokemon/duskull/icon.png similarity index 100% rename from graphics/pokemon/icons/duskull_icon.png rename to graphics/pokemon/duskull/icon.png diff --git a/graphics/pokemon/palettes/duskull_palette.pal b/graphics/pokemon/duskull/normal.pal similarity index 100% rename from graphics/pokemon/palettes/duskull_palette.pal rename to graphics/pokemon/duskull/normal.pal diff --git a/graphics/pokemon/palettes/duskull_shiny_palette.pal b/graphics/pokemon/duskull/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/duskull_shiny_palette.pal rename to graphics/pokemon/duskull/shiny.pal diff --git a/graphics/pokemon/back_pics/dustox_back_pic.png b/graphics/pokemon/dustox/back.png similarity index 100% rename from graphics/pokemon/back_pics/dustox_back_pic.png rename to graphics/pokemon/dustox/back.png diff --git a/graphics/pokemon/footprints/dustox_footprint.png b/graphics/pokemon/dustox/footprint.png similarity index 100% rename from graphics/pokemon/footprints/dustox_footprint.png rename to graphics/pokemon/dustox/footprint.png diff --git a/graphics/pokemon/front_pics/dustox_still_front_pic.png b/graphics/pokemon/dustox/front.png similarity index 100% rename from graphics/pokemon/front_pics/dustox_still_front_pic.png rename to graphics/pokemon/dustox/front.png diff --git a/graphics/pokemon/icons/dustox_icon.png b/graphics/pokemon/dustox/icon.png similarity index 100% rename from graphics/pokemon/icons/dustox_icon.png rename to graphics/pokemon/dustox/icon.png diff --git a/graphics/pokemon/palettes/dustox_palette.pal b/graphics/pokemon/dustox/normal.pal similarity index 100% rename from graphics/pokemon/palettes/dustox_palette.pal rename to graphics/pokemon/dustox/normal.pal diff --git a/graphics/pokemon/palettes/dustox_shiny_palette.pal b/graphics/pokemon/dustox/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/dustox_shiny_palette.pal rename to graphics/pokemon/dustox/shiny.pal diff --git a/graphics/pokemon/back_pics/eevee_back_pic.png b/graphics/pokemon/eevee/back.png similarity index 100% rename from graphics/pokemon/back_pics/eevee_back_pic.png rename to graphics/pokemon/eevee/back.png diff --git a/graphics/pokemon/footprints/eevee_footprint.png b/graphics/pokemon/eevee/footprint.png similarity index 100% rename from graphics/pokemon/footprints/eevee_footprint.png rename to graphics/pokemon/eevee/footprint.png diff --git a/graphics/pokemon/front_pics/eevee_still_front_pic.png b/graphics/pokemon/eevee/front.png similarity index 100% rename from graphics/pokemon/front_pics/eevee_still_front_pic.png rename to graphics/pokemon/eevee/front.png diff --git a/graphics/pokemon/icons/eevee_icon.png b/graphics/pokemon/eevee/icon.png similarity index 100% rename from graphics/pokemon/icons/eevee_icon.png rename to graphics/pokemon/eevee/icon.png diff --git a/graphics/pokemon/palettes/eevee_palette.pal b/graphics/pokemon/eevee/normal.pal similarity index 100% rename from graphics/pokemon/palettes/eevee_palette.pal rename to graphics/pokemon/eevee/normal.pal diff --git a/graphics/pokemon/palettes/eevee_shiny_palette.pal b/graphics/pokemon/eevee/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/eevee_shiny_palette.pal rename to graphics/pokemon/eevee/shiny.pal diff --git a/graphics/pokemon/front_pics/egg_still_front_pic.png b/graphics/pokemon/egg/front.png similarity index 100% rename from graphics/pokemon/front_pics/egg_still_front_pic.png rename to graphics/pokemon/egg/front.png diff --git a/graphics/pokemon/icons/egg_icon.png b/graphics/pokemon/egg/icon.png similarity index 100% rename from graphics/pokemon/icons/egg_icon.png rename to graphics/pokemon/egg/icon.png diff --git a/graphics/pokemon/palettes/egg_palette.pal b/graphics/pokemon/egg/normal.pal similarity index 100% rename from graphics/pokemon/palettes/egg_palette.pal rename to graphics/pokemon/egg/normal.pal diff --git a/graphics/pokemon/back_pics/ekans_back_pic.png b/graphics/pokemon/ekans/back.png similarity index 100% rename from graphics/pokemon/back_pics/ekans_back_pic.png rename to graphics/pokemon/ekans/back.png diff --git a/graphics/pokemon/footprints/ekans_footprint.png b/graphics/pokemon/ekans/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ekans_footprint.png rename to graphics/pokemon/ekans/footprint.png diff --git a/graphics/pokemon/front_pics/ekans_still_front_pic.png b/graphics/pokemon/ekans/front.png similarity index 100% rename from graphics/pokemon/front_pics/ekans_still_front_pic.png rename to graphics/pokemon/ekans/front.png diff --git a/graphics/pokemon/icons/ekans_icon.png b/graphics/pokemon/ekans/icon.png similarity index 100% rename from graphics/pokemon/icons/ekans_icon.png rename to graphics/pokemon/ekans/icon.png diff --git a/graphics/pokemon/palettes/ekans_palette.pal b/graphics/pokemon/ekans/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ekans_palette.pal rename to graphics/pokemon/ekans/normal.pal diff --git a/graphics/pokemon/palettes/ekans_shiny_palette.pal b/graphics/pokemon/ekans/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ekans_shiny_palette.pal rename to graphics/pokemon/ekans/shiny.pal diff --git a/graphics/pokemon/back_pics/electabuzz_back_pic.png b/graphics/pokemon/electabuzz/back.png similarity index 100% rename from graphics/pokemon/back_pics/electabuzz_back_pic.png rename to graphics/pokemon/electabuzz/back.png diff --git a/graphics/pokemon/footprints/electabuzz_footprint.png b/graphics/pokemon/electabuzz/footprint.png similarity index 100% rename from graphics/pokemon/footprints/electabuzz_footprint.png rename to graphics/pokemon/electabuzz/footprint.png diff --git a/graphics/pokemon/front_pics/electabuzz_still_front_pic.png b/graphics/pokemon/electabuzz/front.png similarity index 100% rename from graphics/pokemon/front_pics/electabuzz_still_front_pic.png rename to graphics/pokemon/electabuzz/front.png diff --git a/graphics/pokemon/icons/electabuzz_icon.png b/graphics/pokemon/electabuzz/icon.png similarity index 100% rename from graphics/pokemon/icons/electabuzz_icon.png rename to graphics/pokemon/electabuzz/icon.png diff --git a/graphics/pokemon/palettes/electabuzz_palette.pal b/graphics/pokemon/electabuzz/normal.pal similarity index 100% rename from graphics/pokemon/palettes/electabuzz_palette.pal rename to graphics/pokemon/electabuzz/normal.pal diff --git a/graphics/pokemon/palettes/electabuzz_shiny_palette.pal b/graphics/pokemon/electabuzz/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/electabuzz_shiny_palette.pal rename to graphics/pokemon/electabuzz/shiny.pal diff --git a/graphics/pokemon/back_pics/electrike_back_pic.png b/graphics/pokemon/electrike/back.png similarity index 100% rename from graphics/pokemon/back_pics/electrike_back_pic.png rename to graphics/pokemon/electrike/back.png diff --git a/graphics/pokemon/footprints/electrike_footprint.png b/graphics/pokemon/electrike/footprint.png similarity index 100% rename from graphics/pokemon/footprints/electrike_footprint.png rename to graphics/pokemon/electrike/footprint.png diff --git a/graphics/pokemon/front_pics/electrike_still_front_pic.png b/graphics/pokemon/electrike/front.png similarity index 100% rename from graphics/pokemon/front_pics/electrike_still_front_pic.png rename to graphics/pokemon/electrike/front.png diff --git a/graphics/pokemon/icons/electrike_icon.png b/graphics/pokemon/electrike/icon.png similarity index 100% rename from graphics/pokemon/icons/electrike_icon.png rename to graphics/pokemon/electrike/icon.png diff --git a/graphics/pokemon/palettes/electrike_palette.pal b/graphics/pokemon/electrike/normal.pal similarity index 100% rename from graphics/pokemon/palettes/electrike_palette.pal rename to graphics/pokemon/electrike/normal.pal diff --git a/graphics/pokemon/palettes/electrike_shiny_palette.pal b/graphics/pokemon/electrike/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/electrike_shiny_palette.pal rename to graphics/pokemon/electrike/shiny.pal diff --git a/graphics/pokemon/back_pics/electrode_back_pic.png b/graphics/pokemon/electrode/back.png similarity index 100% rename from graphics/pokemon/back_pics/electrode_back_pic.png rename to graphics/pokemon/electrode/back.png diff --git a/graphics/pokemon/footprints/electrode_footprint.png b/graphics/pokemon/electrode/footprint.png similarity index 100% rename from graphics/pokemon/footprints/electrode_footprint.png rename to graphics/pokemon/electrode/footprint.png diff --git a/graphics/pokemon/front_pics/electrode_still_front_pic.png b/graphics/pokemon/electrode/front.png similarity index 100% rename from graphics/pokemon/front_pics/electrode_still_front_pic.png rename to graphics/pokemon/electrode/front.png diff --git a/graphics/pokemon/icons/electrode_icon.png b/graphics/pokemon/electrode/icon.png similarity index 100% rename from graphics/pokemon/icons/electrode_icon.png rename to graphics/pokemon/electrode/icon.png diff --git a/graphics/pokemon/palettes/electrode_palette.pal b/graphics/pokemon/electrode/normal.pal similarity index 100% rename from graphics/pokemon/palettes/electrode_palette.pal rename to graphics/pokemon/electrode/normal.pal diff --git a/graphics/pokemon/palettes/electrode_shiny_palette.pal b/graphics/pokemon/electrode/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/electrode_shiny_palette.pal rename to graphics/pokemon/electrode/shiny.pal diff --git a/graphics/pokemon/back_pics/elekid_back_pic.png b/graphics/pokemon/elekid/back.png similarity index 100% rename from graphics/pokemon/back_pics/elekid_back_pic.png rename to graphics/pokemon/elekid/back.png diff --git a/graphics/pokemon/footprints/elekid_footprint.png b/graphics/pokemon/elekid/footprint.png similarity index 100% rename from graphics/pokemon/footprints/elekid_footprint.png rename to graphics/pokemon/elekid/footprint.png diff --git a/graphics/pokemon/front_pics/elekid_still_front_pic.png b/graphics/pokemon/elekid/front.png similarity index 100% rename from graphics/pokemon/front_pics/elekid_still_front_pic.png rename to graphics/pokemon/elekid/front.png diff --git a/graphics/pokemon/icons/elekid_icon.png b/graphics/pokemon/elekid/icon.png similarity index 100% rename from graphics/pokemon/icons/elekid_icon.png rename to graphics/pokemon/elekid/icon.png diff --git a/graphics/pokemon/palettes/elekid_palette.pal b/graphics/pokemon/elekid/normal.pal similarity index 100% rename from graphics/pokemon/palettes/elekid_palette.pal rename to graphics/pokemon/elekid/normal.pal diff --git a/graphics/pokemon/palettes/elekid_shiny_palette.pal b/graphics/pokemon/elekid/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/elekid_shiny_palette.pal rename to graphics/pokemon/elekid/shiny.pal diff --git a/graphics/pokemon/back_pics/entei_back_pic.png b/graphics/pokemon/entei/back.png similarity index 100% rename from graphics/pokemon/back_pics/entei_back_pic.png rename to graphics/pokemon/entei/back.png diff --git a/graphics/pokemon/footprints/entei_footprint.png b/graphics/pokemon/entei/footprint.png similarity index 100% rename from graphics/pokemon/footprints/entei_footprint.png rename to graphics/pokemon/entei/footprint.png diff --git a/graphics/pokemon/front_pics/entei_still_front_pic.png b/graphics/pokemon/entei/front.png similarity index 100% rename from graphics/pokemon/front_pics/entei_still_front_pic.png rename to graphics/pokemon/entei/front.png diff --git a/graphics/pokemon/icons/entei_icon.png b/graphics/pokemon/entei/icon.png similarity index 100% rename from graphics/pokemon/icons/entei_icon.png rename to graphics/pokemon/entei/icon.png diff --git a/graphics/pokemon/palettes/entei_palette.pal b/graphics/pokemon/entei/normal.pal similarity index 100% rename from graphics/pokemon/palettes/entei_palette.pal rename to graphics/pokemon/entei/normal.pal diff --git a/graphics/pokemon/palettes/entei_shiny_palette.pal b/graphics/pokemon/entei/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/entei_shiny_palette.pal rename to graphics/pokemon/entei/shiny.pal diff --git a/graphics/pokemon/back_pics/espeon_back_pic.png b/graphics/pokemon/espeon/back.png similarity index 100% rename from graphics/pokemon/back_pics/espeon_back_pic.png rename to graphics/pokemon/espeon/back.png diff --git a/graphics/pokemon/footprints/espeon_footprint.png b/graphics/pokemon/espeon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/espeon_footprint.png rename to graphics/pokemon/espeon/footprint.png diff --git a/graphics/pokemon/front_pics/espeon_still_front_pic.png b/graphics/pokemon/espeon/front.png similarity index 100% rename from graphics/pokemon/front_pics/espeon_still_front_pic.png rename to graphics/pokemon/espeon/front.png diff --git a/graphics/pokemon/icons/espeon_icon.png b/graphics/pokemon/espeon/icon.png similarity index 100% rename from graphics/pokemon/icons/espeon_icon.png rename to graphics/pokemon/espeon/icon.png diff --git a/graphics/pokemon/palettes/espeon_palette.pal b/graphics/pokemon/espeon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/espeon_palette.pal rename to graphics/pokemon/espeon/normal.pal diff --git a/graphics/pokemon/palettes/espeon_shiny_palette.pal b/graphics/pokemon/espeon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/espeon_shiny_palette.pal rename to graphics/pokemon/espeon/shiny.pal diff --git a/graphics/pokemon/back_pics/exeggcute_back_pic.png b/graphics/pokemon/exeggcute/back.png similarity index 100% rename from graphics/pokemon/back_pics/exeggcute_back_pic.png rename to graphics/pokemon/exeggcute/back.png diff --git a/graphics/pokemon/footprints/exeggcute_footprint.png b/graphics/pokemon/exeggcute/footprint.png similarity index 100% rename from graphics/pokemon/footprints/exeggcute_footprint.png rename to graphics/pokemon/exeggcute/footprint.png diff --git a/graphics/pokemon/front_pics/exeggcute_still_front_pic.png b/graphics/pokemon/exeggcute/front.png similarity index 100% rename from graphics/pokemon/front_pics/exeggcute_still_front_pic.png rename to graphics/pokemon/exeggcute/front.png diff --git a/graphics/pokemon/icons/exeggcute_icon.png b/graphics/pokemon/exeggcute/icon.png similarity index 100% rename from graphics/pokemon/icons/exeggcute_icon.png rename to graphics/pokemon/exeggcute/icon.png diff --git a/graphics/pokemon/palettes/exeggcute_palette.pal b/graphics/pokemon/exeggcute/normal.pal similarity index 100% rename from graphics/pokemon/palettes/exeggcute_palette.pal rename to graphics/pokemon/exeggcute/normal.pal diff --git a/graphics/pokemon/palettes/exeggcute_shiny_palette.pal b/graphics/pokemon/exeggcute/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/exeggcute_shiny_palette.pal rename to graphics/pokemon/exeggcute/shiny.pal diff --git a/graphics/pokemon/back_pics/exeggutor_back_pic.png b/graphics/pokemon/exeggutor/back.png similarity index 100% rename from graphics/pokemon/back_pics/exeggutor_back_pic.png rename to graphics/pokemon/exeggutor/back.png diff --git a/graphics/pokemon/footprints/exeggutor_footprint.png b/graphics/pokemon/exeggutor/footprint.png similarity index 100% rename from graphics/pokemon/footprints/exeggutor_footprint.png rename to graphics/pokemon/exeggutor/footprint.png diff --git a/graphics/pokemon/front_pics/exeggutor_still_front_pic.png b/graphics/pokemon/exeggutor/front.png similarity index 100% rename from graphics/pokemon/front_pics/exeggutor_still_front_pic.png rename to graphics/pokemon/exeggutor/front.png diff --git a/graphics/pokemon/icons/exeggutor_icon.png b/graphics/pokemon/exeggutor/icon.png similarity index 100% rename from graphics/pokemon/icons/exeggutor_icon.png rename to graphics/pokemon/exeggutor/icon.png diff --git a/graphics/pokemon/palettes/exeggutor_palette.pal b/graphics/pokemon/exeggutor/normal.pal similarity index 100% rename from graphics/pokemon/palettes/exeggutor_palette.pal rename to graphics/pokemon/exeggutor/normal.pal diff --git a/graphics/pokemon/palettes/exeggutor_shiny_palette.pal b/graphics/pokemon/exeggutor/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/exeggutor_shiny_palette.pal rename to graphics/pokemon/exeggutor/shiny.pal diff --git a/graphics/pokemon/back_pics/exploud_back_pic.png b/graphics/pokemon/exploud/back.png similarity index 100% rename from graphics/pokemon/back_pics/exploud_back_pic.png rename to graphics/pokemon/exploud/back.png diff --git a/graphics/pokemon/footprints/exploud_footprint.png b/graphics/pokemon/exploud/footprint.png similarity index 100% rename from graphics/pokemon/footprints/exploud_footprint.png rename to graphics/pokemon/exploud/footprint.png diff --git a/graphics/pokemon/front_pics/exploud_still_front_pic.png b/graphics/pokemon/exploud/front.png similarity index 100% rename from graphics/pokemon/front_pics/exploud_still_front_pic.png rename to graphics/pokemon/exploud/front.png diff --git a/graphics/pokemon/icons/exploud_icon.png b/graphics/pokemon/exploud/icon.png similarity index 100% rename from graphics/pokemon/icons/exploud_icon.png rename to graphics/pokemon/exploud/icon.png diff --git a/graphics/pokemon/palettes/exploud_palette.pal b/graphics/pokemon/exploud/normal.pal similarity index 100% rename from graphics/pokemon/palettes/exploud_palette.pal rename to graphics/pokemon/exploud/normal.pal diff --git a/graphics/pokemon/palettes/exploud_shiny_palette.pal b/graphics/pokemon/exploud/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/exploud_shiny_palette.pal rename to graphics/pokemon/exploud/shiny.pal diff --git a/graphics/pokemon/back_pics/farfetch_d_back_pic.png b/graphics/pokemon/farfetch_d/back.png similarity index 100% rename from graphics/pokemon/back_pics/farfetch_d_back_pic.png rename to graphics/pokemon/farfetch_d/back.png diff --git a/graphics/pokemon/footprints/farfetch_d_footprint.png b/graphics/pokemon/farfetch_d/footprint.png similarity index 100% rename from graphics/pokemon/footprints/farfetch_d_footprint.png rename to graphics/pokemon/farfetch_d/footprint.png diff --git a/graphics/pokemon/front_pics/farfetch_d_still_front_pic.png b/graphics/pokemon/farfetch_d/front.png similarity index 100% rename from graphics/pokemon/front_pics/farfetch_d_still_front_pic.png rename to graphics/pokemon/farfetch_d/front.png diff --git a/graphics/pokemon/icons/farfetch_d_icon.png b/graphics/pokemon/farfetch_d/icon.png similarity index 100% rename from graphics/pokemon/icons/farfetch_d_icon.png rename to graphics/pokemon/farfetch_d/icon.png diff --git a/graphics/pokemon/palettes/farfetch_d_palette.pal b/graphics/pokemon/farfetch_d/normal.pal similarity index 100% rename from graphics/pokemon/palettes/farfetch_d_palette.pal rename to graphics/pokemon/farfetch_d/normal.pal diff --git a/graphics/pokemon/palettes/farfetch_d_shiny_palette.pal b/graphics/pokemon/farfetch_d/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/farfetch_d_shiny_palette.pal rename to graphics/pokemon/farfetch_d/shiny.pal diff --git a/graphics/pokemon/back_pics/fearow_back_pic.png b/graphics/pokemon/fearow/back.png similarity index 100% rename from graphics/pokemon/back_pics/fearow_back_pic.png rename to graphics/pokemon/fearow/back.png diff --git a/graphics/pokemon/footprints/fearow_footprint.png b/graphics/pokemon/fearow/footprint.png similarity index 100% rename from graphics/pokemon/footprints/fearow_footprint.png rename to graphics/pokemon/fearow/footprint.png diff --git a/graphics/pokemon/front_pics/fearow_still_front_pic.png b/graphics/pokemon/fearow/front.png similarity index 100% rename from graphics/pokemon/front_pics/fearow_still_front_pic.png rename to graphics/pokemon/fearow/front.png diff --git a/graphics/pokemon/icons/fearow_icon.png b/graphics/pokemon/fearow/icon.png similarity index 100% rename from graphics/pokemon/icons/fearow_icon.png rename to graphics/pokemon/fearow/icon.png diff --git a/graphics/pokemon/palettes/fearow_palette.pal b/graphics/pokemon/fearow/normal.pal similarity index 100% rename from graphics/pokemon/palettes/fearow_palette.pal rename to graphics/pokemon/fearow/normal.pal diff --git a/graphics/pokemon/palettes/fearow_shiny_palette.pal b/graphics/pokemon/fearow/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/fearow_shiny_palette.pal rename to graphics/pokemon/fearow/shiny.pal diff --git a/graphics/pokemon/back_pics/feebas_back_pic.png b/graphics/pokemon/feebas/back.png similarity index 100% rename from graphics/pokemon/back_pics/feebas_back_pic.png rename to graphics/pokemon/feebas/back.png diff --git a/graphics/pokemon/footprints/feebas_footprint.png b/graphics/pokemon/feebas/footprint.png similarity index 100% rename from graphics/pokemon/footprints/feebas_footprint.png rename to graphics/pokemon/feebas/footprint.png diff --git a/graphics/pokemon/front_pics/feebas_still_front_pic.png b/graphics/pokemon/feebas/front.png similarity index 100% rename from graphics/pokemon/front_pics/feebas_still_front_pic.png rename to graphics/pokemon/feebas/front.png diff --git a/graphics/pokemon/icons/feebas_icon.png b/graphics/pokemon/feebas/icon.png similarity index 100% rename from graphics/pokemon/icons/feebas_icon.png rename to graphics/pokemon/feebas/icon.png diff --git a/graphics/pokemon/palettes/feebas_palette.pal b/graphics/pokemon/feebas/normal.pal similarity index 100% rename from graphics/pokemon/palettes/feebas_palette.pal rename to graphics/pokemon/feebas/normal.pal diff --git a/graphics/pokemon/palettes/feebas_shiny_palette.pal b/graphics/pokemon/feebas/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/feebas_shiny_palette.pal rename to graphics/pokemon/feebas/shiny.pal diff --git a/graphics/pokemon/back_pics/feraligatr_back_pic.png b/graphics/pokemon/feraligatr/back.png similarity index 100% rename from graphics/pokemon/back_pics/feraligatr_back_pic.png rename to graphics/pokemon/feraligatr/back.png diff --git a/graphics/pokemon/footprints/feraligatr_footprint.png b/graphics/pokemon/feraligatr/footprint.png similarity index 100% rename from graphics/pokemon/footprints/feraligatr_footprint.png rename to graphics/pokemon/feraligatr/footprint.png diff --git a/graphics/pokemon/front_pics/feraligatr_still_front_pic.png b/graphics/pokemon/feraligatr/front.png similarity index 100% rename from graphics/pokemon/front_pics/feraligatr_still_front_pic.png rename to graphics/pokemon/feraligatr/front.png diff --git a/graphics/pokemon/icons/feraligatr_icon.png b/graphics/pokemon/feraligatr/icon.png similarity index 100% rename from graphics/pokemon/icons/feraligatr_icon.png rename to graphics/pokemon/feraligatr/icon.png diff --git a/graphics/pokemon/palettes/feraligatr_palette.pal b/graphics/pokemon/feraligatr/normal.pal similarity index 100% rename from graphics/pokemon/palettes/feraligatr_palette.pal rename to graphics/pokemon/feraligatr/normal.pal diff --git a/graphics/pokemon/palettes/feraligatr_shiny_palette.pal b/graphics/pokemon/feraligatr/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/feraligatr_shiny_palette.pal rename to graphics/pokemon/feraligatr/shiny.pal diff --git a/graphics/pokemon/back_pics/flaaffy_back_pic.png b/graphics/pokemon/flaaffy/back.png similarity index 100% rename from graphics/pokemon/back_pics/flaaffy_back_pic.png rename to graphics/pokemon/flaaffy/back.png diff --git a/graphics/pokemon/footprints/flaaffy_footprint.png b/graphics/pokemon/flaaffy/footprint.png similarity index 100% rename from graphics/pokemon/footprints/flaaffy_footprint.png rename to graphics/pokemon/flaaffy/footprint.png diff --git a/graphics/pokemon/front_pics/flaaffy_still_front_pic.png b/graphics/pokemon/flaaffy/front.png similarity index 100% rename from graphics/pokemon/front_pics/flaaffy_still_front_pic.png rename to graphics/pokemon/flaaffy/front.png diff --git a/graphics/pokemon/icons/flaaffy_icon.png b/graphics/pokemon/flaaffy/icon.png similarity index 100% rename from graphics/pokemon/icons/flaaffy_icon.png rename to graphics/pokemon/flaaffy/icon.png diff --git a/graphics/pokemon/palettes/flaaffy_palette.pal b/graphics/pokemon/flaaffy/normal.pal similarity index 100% rename from graphics/pokemon/palettes/flaaffy_palette.pal rename to graphics/pokemon/flaaffy/normal.pal diff --git a/graphics/pokemon/palettes/flaaffy_shiny_palette.pal b/graphics/pokemon/flaaffy/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/flaaffy_shiny_palette.pal rename to graphics/pokemon/flaaffy/shiny.pal diff --git a/graphics/pokemon/back_pics/flareon_back_pic.png b/graphics/pokemon/flareon/back.png similarity index 100% rename from graphics/pokemon/back_pics/flareon_back_pic.png rename to graphics/pokemon/flareon/back.png diff --git a/graphics/pokemon/footprints/flareon_footprint.png b/graphics/pokemon/flareon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/flareon_footprint.png rename to graphics/pokemon/flareon/footprint.png diff --git a/graphics/pokemon/front_pics/flareon_still_front_pic.png b/graphics/pokemon/flareon/front.png similarity index 100% rename from graphics/pokemon/front_pics/flareon_still_front_pic.png rename to graphics/pokemon/flareon/front.png diff --git a/graphics/pokemon/icons/flareon_icon.png b/graphics/pokemon/flareon/icon.png similarity index 100% rename from graphics/pokemon/icons/flareon_icon.png rename to graphics/pokemon/flareon/icon.png diff --git a/graphics/pokemon/palettes/flareon_palette.pal b/graphics/pokemon/flareon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/flareon_palette.pal rename to graphics/pokemon/flareon/normal.pal diff --git a/graphics/pokemon/palettes/flareon_shiny_palette.pal b/graphics/pokemon/flareon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/flareon_shiny_palette.pal rename to graphics/pokemon/flareon/shiny.pal diff --git a/graphics/pokemon/back_pics/flygon_back_pic.png b/graphics/pokemon/flygon/back.png similarity index 100% rename from graphics/pokemon/back_pics/flygon_back_pic.png rename to graphics/pokemon/flygon/back.png diff --git a/graphics/pokemon/footprints/flygon_footprint.png b/graphics/pokemon/flygon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/flygon_footprint.png rename to graphics/pokemon/flygon/footprint.png diff --git a/graphics/pokemon/front_pics/flygon_still_front_pic.png b/graphics/pokemon/flygon/front.png similarity index 100% rename from graphics/pokemon/front_pics/flygon_still_front_pic.png rename to graphics/pokemon/flygon/front.png diff --git a/graphics/pokemon/icons/flygon_icon.png b/graphics/pokemon/flygon/icon.png similarity index 100% rename from graphics/pokemon/icons/flygon_icon.png rename to graphics/pokemon/flygon/icon.png diff --git a/graphics/pokemon/palettes/flygon_palette.pal b/graphics/pokemon/flygon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/flygon_palette.pal rename to graphics/pokemon/flygon/normal.pal diff --git a/graphics/pokemon/palettes/flygon_shiny_palette.pal b/graphics/pokemon/flygon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/flygon_shiny_palette.pal rename to graphics/pokemon/flygon/shiny.pal diff --git a/graphics/pokemon/back_pics/forretress_back_pic.png b/graphics/pokemon/forretress/back.png similarity index 100% rename from graphics/pokemon/back_pics/forretress_back_pic.png rename to graphics/pokemon/forretress/back.png diff --git a/graphics/pokemon/footprints/forretress_footprint.png b/graphics/pokemon/forretress/footprint.png similarity index 100% rename from graphics/pokemon/footprints/forretress_footprint.png rename to graphics/pokemon/forretress/footprint.png diff --git a/graphics/pokemon/front_pics/forretress_still_front_pic.png b/graphics/pokemon/forretress/front.png similarity index 100% rename from graphics/pokemon/front_pics/forretress_still_front_pic.png rename to graphics/pokemon/forretress/front.png diff --git a/graphics/pokemon/icons/forretress_icon.png b/graphics/pokemon/forretress/icon.png similarity index 100% rename from graphics/pokemon/icons/forretress_icon.png rename to graphics/pokemon/forretress/icon.png diff --git a/graphics/pokemon/palettes/forretress_palette.pal b/graphics/pokemon/forretress/normal.pal similarity index 100% rename from graphics/pokemon/palettes/forretress_palette.pal rename to graphics/pokemon/forretress/normal.pal diff --git a/graphics/pokemon/palettes/forretress_shiny_palette.pal b/graphics/pokemon/forretress/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/forretress_shiny_palette.pal rename to graphics/pokemon/forretress/shiny.pal diff --git a/graphics/pokemon/back_pics/furret_back_pic.png b/graphics/pokemon/furret/back.png similarity index 100% rename from graphics/pokemon/back_pics/furret_back_pic.png rename to graphics/pokemon/furret/back.png diff --git a/graphics/pokemon/footprints/furret_footprint.png b/graphics/pokemon/furret/footprint.png similarity index 100% rename from graphics/pokemon/footprints/furret_footprint.png rename to graphics/pokemon/furret/footprint.png diff --git a/graphics/pokemon/front_pics/furret_still_front_pic.png b/graphics/pokemon/furret/front.png similarity index 100% rename from graphics/pokemon/front_pics/furret_still_front_pic.png rename to graphics/pokemon/furret/front.png diff --git a/graphics/pokemon/icons/furret_icon.png b/graphics/pokemon/furret/icon.png similarity index 100% rename from graphics/pokemon/icons/furret_icon.png rename to graphics/pokemon/furret/icon.png diff --git a/graphics/pokemon/palettes/furret_palette.pal b/graphics/pokemon/furret/normal.pal similarity index 100% rename from graphics/pokemon/palettes/furret_palette.pal rename to graphics/pokemon/furret/normal.pal diff --git a/graphics/pokemon/palettes/furret_shiny_palette.pal b/graphics/pokemon/furret/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/furret_shiny_palette.pal rename to graphics/pokemon/furret/shiny.pal diff --git a/graphics/pokemon/back_pics/gardevoir_back_pic.png b/graphics/pokemon/gardevoir/back.png similarity index 100% rename from graphics/pokemon/back_pics/gardevoir_back_pic.png rename to graphics/pokemon/gardevoir/back.png diff --git a/graphics/pokemon/footprints/gardevoir_footprint.png b/graphics/pokemon/gardevoir/footprint.png similarity index 100% rename from graphics/pokemon/footprints/gardevoir_footprint.png rename to graphics/pokemon/gardevoir/footprint.png diff --git a/graphics/pokemon/front_pics/gardevoir_still_front_pic.png b/graphics/pokemon/gardevoir/front.png similarity index 100% rename from graphics/pokemon/front_pics/gardevoir_still_front_pic.png rename to graphics/pokemon/gardevoir/front.png diff --git a/graphics/pokemon/icons/gardevoir_icon.png b/graphics/pokemon/gardevoir/icon.png similarity index 100% rename from graphics/pokemon/icons/gardevoir_icon.png rename to graphics/pokemon/gardevoir/icon.png diff --git a/graphics/pokemon/palettes/gardevoir_palette.pal b/graphics/pokemon/gardevoir/normal.pal similarity index 100% rename from graphics/pokemon/palettes/gardevoir_palette.pal rename to graphics/pokemon/gardevoir/normal.pal diff --git a/graphics/pokemon/palettes/gardevoir_shiny_palette.pal b/graphics/pokemon/gardevoir/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/gardevoir_shiny_palette.pal rename to graphics/pokemon/gardevoir/shiny.pal diff --git a/graphics/pokemon/back_pics/gastly_back_pic.png b/graphics/pokemon/gastly/back.png similarity index 100% rename from graphics/pokemon/back_pics/gastly_back_pic.png rename to graphics/pokemon/gastly/back.png diff --git a/graphics/pokemon/footprints/gastly_footprint.png b/graphics/pokemon/gastly/footprint.png similarity index 100% rename from graphics/pokemon/footprints/gastly_footprint.png rename to graphics/pokemon/gastly/footprint.png diff --git a/graphics/pokemon/front_pics/gastly_still_front_pic.png b/graphics/pokemon/gastly/front.png similarity index 100% rename from graphics/pokemon/front_pics/gastly_still_front_pic.png rename to graphics/pokemon/gastly/front.png diff --git a/graphics/pokemon/icons/gastly_icon.png b/graphics/pokemon/gastly/icon.png similarity index 100% rename from graphics/pokemon/icons/gastly_icon.png rename to graphics/pokemon/gastly/icon.png diff --git a/graphics/pokemon/palettes/gastly_palette.pal b/graphics/pokemon/gastly/normal.pal similarity index 100% rename from graphics/pokemon/palettes/gastly_palette.pal rename to graphics/pokemon/gastly/normal.pal diff --git a/graphics/pokemon/palettes/gastly_shiny_palette.pal b/graphics/pokemon/gastly/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/gastly_shiny_palette.pal rename to graphics/pokemon/gastly/shiny.pal diff --git a/graphics/pokemon/back_pics/gengar_back_pic.png b/graphics/pokemon/gengar/back.png similarity index 100% rename from graphics/pokemon/back_pics/gengar_back_pic.png rename to graphics/pokemon/gengar/back.png diff --git a/graphics/pokemon/footprints/gengar_footprint.png b/graphics/pokemon/gengar/footprint.png similarity index 100% rename from graphics/pokemon/footprints/gengar_footprint.png rename to graphics/pokemon/gengar/footprint.png diff --git a/graphics/pokemon/front_pics/gengar_still_front_pic.png b/graphics/pokemon/gengar/front.png similarity index 100% rename from graphics/pokemon/front_pics/gengar_still_front_pic.png rename to graphics/pokemon/gengar/front.png diff --git a/graphics/pokemon/icons/gengar_icon.png b/graphics/pokemon/gengar/icon.png similarity index 100% rename from graphics/pokemon/icons/gengar_icon.png rename to graphics/pokemon/gengar/icon.png diff --git a/graphics/pokemon/palettes/gengar_palette.pal b/graphics/pokemon/gengar/normal.pal similarity index 100% rename from graphics/pokemon/palettes/gengar_palette.pal rename to graphics/pokemon/gengar/normal.pal diff --git a/graphics/pokemon/palettes/gengar_shiny_palette.pal b/graphics/pokemon/gengar/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/gengar_shiny_palette.pal rename to graphics/pokemon/gengar/shiny.pal diff --git a/graphics/pokemon/back_pics/geodude_back_pic.png b/graphics/pokemon/geodude/back.png similarity index 100% rename from graphics/pokemon/back_pics/geodude_back_pic.png rename to graphics/pokemon/geodude/back.png diff --git a/graphics/pokemon/footprints/geodude_footprint.png b/graphics/pokemon/geodude/footprint.png similarity index 100% rename from graphics/pokemon/footprints/geodude_footprint.png rename to graphics/pokemon/geodude/footprint.png diff --git a/graphics/pokemon/front_pics/geodude_still_front_pic.png b/graphics/pokemon/geodude/front.png similarity index 100% rename from graphics/pokemon/front_pics/geodude_still_front_pic.png rename to graphics/pokemon/geodude/front.png diff --git a/graphics/pokemon/icons/geodude_icon.png b/graphics/pokemon/geodude/icon.png similarity index 100% rename from graphics/pokemon/icons/geodude_icon.png rename to graphics/pokemon/geodude/icon.png diff --git a/graphics/pokemon/palettes/geodude_palette.pal b/graphics/pokemon/geodude/normal.pal similarity index 100% rename from graphics/pokemon/palettes/geodude_palette.pal rename to graphics/pokemon/geodude/normal.pal diff --git a/graphics/pokemon/palettes/geodude_shiny_palette.pal b/graphics/pokemon/geodude/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/geodude_shiny_palette.pal rename to graphics/pokemon/geodude/shiny.pal diff --git a/graphics/pokemon/back_pics/girafarig_back_pic.png b/graphics/pokemon/girafarig/back.png similarity index 100% rename from graphics/pokemon/back_pics/girafarig_back_pic.png rename to graphics/pokemon/girafarig/back.png diff --git a/graphics/pokemon/footprints/girafarig_footprint.png b/graphics/pokemon/girafarig/footprint.png similarity index 100% rename from graphics/pokemon/footprints/girafarig_footprint.png rename to graphics/pokemon/girafarig/footprint.png diff --git a/graphics/pokemon/front_pics/girafarig_still_front_pic.png b/graphics/pokemon/girafarig/front.png similarity index 100% rename from graphics/pokemon/front_pics/girafarig_still_front_pic.png rename to graphics/pokemon/girafarig/front.png diff --git a/graphics/pokemon/icons/girafarig_icon.png b/graphics/pokemon/girafarig/icon.png similarity index 100% rename from graphics/pokemon/icons/girafarig_icon.png rename to graphics/pokemon/girafarig/icon.png diff --git a/graphics/pokemon/palettes/girafarig_palette.pal b/graphics/pokemon/girafarig/normal.pal similarity index 100% rename from graphics/pokemon/palettes/girafarig_palette.pal rename to graphics/pokemon/girafarig/normal.pal diff --git a/graphics/pokemon/palettes/girafarig_shiny_palette.pal b/graphics/pokemon/girafarig/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/girafarig_shiny_palette.pal rename to graphics/pokemon/girafarig/shiny.pal diff --git a/graphics/pokemon/back_pics/glalie_back_pic.png b/graphics/pokemon/glalie/back.png similarity index 100% rename from graphics/pokemon/back_pics/glalie_back_pic.png rename to graphics/pokemon/glalie/back.png diff --git a/graphics/pokemon/footprints/glalie_footprint.png b/graphics/pokemon/glalie/footprint.png similarity index 100% rename from graphics/pokemon/footprints/glalie_footprint.png rename to graphics/pokemon/glalie/footprint.png diff --git a/graphics/pokemon/front_pics/glalie_still_front_pic.png b/graphics/pokemon/glalie/front.png similarity index 100% rename from graphics/pokemon/front_pics/glalie_still_front_pic.png rename to graphics/pokemon/glalie/front.png diff --git a/graphics/pokemon/icons/glalie_icon.png b/graphics/pokemon/glalie/icon.png similarity index 100% rename from graphics/pokemon/icons/glalie_icon.png rename to graphics/pokemon/glalie/icon.png diff --git a/graphics/pokemon/palettes/glalie_palette.pal b/graphics/pokemon/glalie/normal.pal similarity index 100% rename from graphics/pokemon/palettes/glalie_palette.pal rename to graphics/pokemon/glalie/normal.pal diff --git a/graphics/pokemon/palettes/glalie_shiny_palette.pal b/graphics/pokemon/glalie/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/glalie_shiny_palette.pal rename to graphics/pokemon/glalie/shiny.pal diff --git a/graphics/pokemon/back_pics/gligar_back_pic.png b/graphics/pokemon/gligar/back.png similarity index 100% rename from graphics/pokemon/back_pics/gligar_back_pic.png rename to graphics/pokemon/gligar/back.png diff --git a/graphics/pokemon/footprints/gligar_footprint.png b/graphics/pokemon/gligar/footprint.png similarity index 100% rename from graphics/pokemon/footprints/gligar_footprint.png rename to graphics/pokemon/gligar/footprint.png diff --git a/graphics/pokemon/front_pics/gligar_still_front_pic.png b/graphics/pokemon/gligar/front.png similarity index 100% rename from graphics/pokemon/front_pics/gligar_still_front_pic.png rename to graphics/pokemon/gligar/front.png diff --git a/graphics/pokemon/icons/gligar_icon.png b/graphics/pokemon/gligar/icon.png similarity index 100% rename from graphics/pokemon/icons/gligar_icon.png rename to graphics/pokemon/gligar/icon.png diff --git a/graphics/pokemon/palettes/gligar_palette.pal b/graphics/pokemon/gligar/normal.pal similarity index 100% rename from graphics/pokemon/palettes/gligar_palette.pal rename to graphics/pokemon/gligar/normal.pal diff --git a/graphics/pokemon/palettes/gligar_shiny_palette.pal b/graphics/pokemon/gligar/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/gligar_shiny_palette.pal rename to graphics/pokemon/gligar/shiny.pal diff --git a/graphics/pokemon/back_pics/gloom_back_pic.png b/graphics/pokemon/gloom/back.png similarity index 100% rename from graphics/pokemon/back_pics/gloom_back_pic.png rename to graphics/pokemon/gloom/back.png diff --git a/graphics/pokemon/footprints/gloom_footprint.png b/graphics/pokemon/gloom/footprint.png similarity index 100% rename from graphics/pokemon/footprints/gloom_footprint.png rename to graphics/pokemon/gloom/footprint.png diff --git a/graphics/pokemon/front_pics/gloom_still_front_pic.png b/graphics/pokemon/gloom/front.png similarity index 100% rename from graphics/pokemon/front_pics/gloom_still_front_pic.png rename to graphics/pokemon/gloom/front.png diff --git a/graphics/pokemon/icons/gloom_icon.png b/graphics/pokemon/gloom/icon.png similarity index 100% rename from graphics/pokemon/icons/gloom_icon.png rename to graphics/pokemon/gloom/icon.png diff --git a/graphics/pokemon/palettes/gloom_palette.pal b/graphics/pokemon/gloom/normal.pal similarity index 100% rename from graphics/pokemon/palettes/gloom_palette.pal rename to graphics/pokemon/gloom/normal.pal diff --git a/graphics/pokemon/palettes/gloom_shiny_palette.pal b/graphics/pokemon/gloom/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/gloom_shiny_palette.pal rename to graphics/pokemon/gloom/shiny.pal diff --git a/graphics/pokemon/back_pics/golbat_back_pic.png b/graphics/pokemon/golbat/back.png similarity index 100% rename from graphics/pokemon/back_pics/golbat_back_pic.png rename to graphics/pokemon/golbat/back.png diff --git a/graphics/pokemon/footprints/golbat_footprint.png b/graphics/pokemon/golbat/footprint.png similarity index 100% rename from graphics/pokemon/footprints/golbat_footprint.png rename to graphics/pokemon/golbat/footprint.png diff --git a/graphics/pokemon/front_pics/golbat_still_front_pic.png b/graphics/pokemon/golbat/front.png similarity index 100% rename from graphics/pokemon/front_pics/golbat_still_front_pic.png rename to graphics/pokemon/golbat/front.png diff --git a/graphics/pokemon/icons/golbat_icon.png b/graphics/pokemon/golbat/icon.png similarity index 100% rename from graphics/pokemon/icons/golbat_icon.png rename to graphics/pokemon/golbat/icon.png diff --git a/graphics/pokemon/palettes/golbat_palette.pal b/graphics/pokemon/golbat/normal.pal similarity index 100% rename from graphics/pokemon/palettes/golbat_palette.pal rename to graphics/pokemon/golbat/normal.pal diff --git a/graphics/pokemon/palettes/golbat_shiny_palette.pal b/graphics/pokemon/golbat/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/golbat_shiny_palette.pal rename to graphics/pokemon/golbat/shiny.pal diff --git a/graphics/pokemon/back_pics/goldeen_back_pic.png b/graphics/pokemon/goldeen/back.png similarity index 100% rename from graphics/pokemon/back_pics/goldeen_back_pic.png rename to graphics/pokemon/goldeen/back.png diff --git a/graphics/pokemon/footprints/goldeen_footprint.png b/graphics/pokemon/goldeen/footprint.png similarity index 100% rename from graphics/pokemon/footprints/goldeen_footprint.png rename to graphics/pokemon/goldeen/footprint.png diff --git a/graphics/pokemon/front_pics/goldeen_still_front_pic.png b/graphics/pokemon/goldeen/front.png similarity index 100% rename from graphics/pokemon/front_pics/goldeen_still_front_pic.png rename to graphics/pokemon/goldeen/front.png diff --git a/graphics/pokemon/icons/goldeen_icon.png b/graphics/pokemon/goldeen/icon.png similarity index 100% rename from graphics/pokemon/icons/goldeen_icon.png rename to graphics/pokemon/goldeen/icon.png diff --git a/graphics/pokemon/palettes/goldeen_palette.pal b/graphics/pokemon/goldeen/normal.pal similarity index 100% rename from graphics/pokemon/palettes/goldeen_palette.pal rename to graphics/pokemon/goldeen/normal.pal diff --git a/graphics/pokemon/palettes/goldeen_shiny_palette.pal b/graphics/pokemon/goldeen/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/goldeen_shiny_palette.pal rename to graphics/pokemon/goldeen/shiny.pal diff --git a/graphics/pokemon/back_pics/golduck_back_pic.png b/graphics/pokemon/golduck/back.png similarity index 100% rename from graphics/pokemon/back_pics/golduck_back_pic.png rename to graphics/pokemon/golduck/back.png diff --git a/graphics/pokemon/footprints/golduck_footprint.png b/graphics/pokemon/golduck/footprint.png similarity index 100% rename from graphics/pokemon/footprints/golduck_footprint.png rename to graphics/pokemon/golduck/footprint.png diff --git a/graphics/pokemon/front_pics/golduck_still_front_pic.png b/graphics/pokemon/golduck/front.png similarity index 100% rename from graphics/pokemon/front_pics/golduck_still_front_pic.png rename to graphics/pokemon/golduck/front.png diff --git a/graphics/pokemon/icons/golduck_icon.png b/graphics/pokemon/golduck/icon.png similarity index 100% rename from graphics/pokemon/icons/golduck_icon.png rename to graphics/pokemon/golduck/icon.png diff --git a/graphics/pokemon/palettes/golduck_palette.pal b/graphics/pokemon/golduck/normal.pal similarity index 100% rename from graphics/pokemon/palettes/golduck_palette.pal rename to graphics/pokemon/golduck/normal.pal diff --git a/graphics/pokemon/palettes/golduck_shiny_palette.pal b/graphics/pokemon/golduck/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/golduck_shiny_palette.pal rename to graphics/pokemon/golduck/shiny.pal diff --git a/graphics/pokemon/back_pics/golem_back_pic.png b/graphics/pokemon/golem/back.png similarity index 100% rename from graphics/pokemon/back_pics/golem_back_pic.png rename to graphics/pokemon/golem/back.png diff --git a/graphics/pokemon/footprints/golem_footprint.png b/graphics/pokemon/golem/footprint.png similarity index 100% rename from graphics/pokemon/footprints/golem_footprint.png rename to graphics/pokemon/golem/footprint.png diff --git a/graphics/pokemon/front_pics/golem_still_front_pic.png b/graphics/pokemon/golem/front.png similarity index 100% rename from graphics/pokemon/front_pics/golem_still_front_pic.png rename to graphics/pokemon/golem/front.png diff --git a/graphics/pokemon/icons/golem_icon.png b/graphics/pokemon/golem/icon.png similarity index 100% rename from graphics/pokemon/icons/golem_icon.png rename to graphics/pokemon/golem/icon.png diff --git a/graphics/pokemon/palettes/golem_palette.pal b/graphics/pokemon/golem/normal.pal similarity index 100% rename from graphics/pokemon/palettes/golem_palette.pal rename to graphics/pokemon/golem/normal.pal diff --git a/graphics/pokemon/palettes/golem_shiny_palette.pal b/graphics/pokemon/golem/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/golem_shiny_palette.pal rename to graphics/pokemon/golem/shiny.pal diff --git a/graphics/pokemon/back_pics/gorebyss_back_pic.png b/graphics/pokemon/gorebyss/back.png similarity index 100% rename from graphics/pokemon/back_pics/gorebyss_back_pic.png rename to graphics/pokemon/gorebyss/back.png diff --git a/graphics/pokemon/footprints/gorebyss_footprint.png b/graphics/pokemon/gorebyss/footprint.png similarity index 100% rename from graphics/pokemon/footprints/gorebyss_footprint.png rename to graphics/pokemon/gorebyss/footprint.png diff --git a/graphics/pokemon/front_pics/gorebyss_still_front_pic.png b/graphics/pokemon/gorebyss/front.png similarity index 100% rename from graphics/pokemon/front_pics/gorebyss_still_front_pic.png rename to graphics/pokemon/gorebyss/front.png diff --git a/graphics/pokemon/icons/gorebyss_icon.png b/graphics/pokemon/gorebyss/icon.png similarity index 100% rename from graphics/pokemon/icons/gorebyss_icon.png rename to graphics/pokemon/gorebyss/icon.png diff --git a/graphics/pokemon/palettes/gorebyss_palette.pal b/graphics/pokemon/gorebyss/normal.pal similarity index 100% rename from graphics/pokemon/palettes/gorebyss_palette.pal rename to graphics/pokemon/gorebyss/normal.pal diff --git a/graphics/pokemon/palettes/gorebyss_shiny_palette.pal b/graphics/pokemon/gorebyss/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/gorebyss_shiny_palette.pal rename to graphics/pokemon/gorebyss/shiny.pal diff --git a/graphics/pokemon/back_pics/granbull_back_pic.png b/graphics/pokemon/granbull/back.png similarity index 100% rename from graphics/pokemon/back_pics/granbull_back_pic.png rename to graphics/pokemon/granbull/back.png diff --git a/graphics/pokemon/footprints/granbull_footprint.png b/graphics/pokemon/granbull/footprint.png similarity index 100% rename from graphics/pokemon/footprints/granbull_footprint.png rename to graphics/pokemon/granbull/footprint.png diff --git a/graphics/pokemon/front_pics/granbull_still_front_pic.png b/graphics/pokemon/granbull/front.png similarity index 100% rename from graphics/pokemon/front_pics/granbull_still_front_pic.png rename to graphics/pokemon/granbull/front.png diff --git a/graphics/pokemon/icons/granbull_icon.png b/graphics/pokemon/granbull/icon.png similarity index 100% rename from graphics/pokemon/icons/granbull_icon.png rename to graphics/pokemon/granbull/icon.png diff --git a/graphics/pokemon/palettes/granbull_palette.pal b/graphics/pokemon/granbull/normal.pal similarity index 100% rename from graphics/pokemon/palettes/granbull_palette.pal rename to graphics/pokemon/granbull/normal.pal diff --git a/graphics/pokemon/palettes/granbull_shiny_palette.pal b/graphics/pokemon/granbull/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/granbull_shiny_palette.pal rename to graphics/pokemon/granbull/shiny.pal diff --git a/graphics/pokemon/back_pics/graveler_back_pic.png b/graphics/pokemon/graveler/back.png similarity index 100% rename from graphics/pokemon/back_pics/graveler_back_pic.png rename to graphics/pokemon/graveler/back.png diff --git a/graphics/pokemon/footprints/graveler_footprint.png b/graphics/pokemon/graveler/footprint.png similarity index 100% rename from graphics/pokemon/footprints/graveler_footprint.png rename to graphics/pokemon/graveler/footprint.png diff --git a/graphics/pokemon/front_pics/graveler_still_front_pic.png b/graphics/pokemon/graveler/front.png similarity index 100% rename from graphics/pokemon/front_pics/graveler_still_front_pic.png rename to graphics/pokemon/graveler/front.png diff --git a/graphics/pokemon/icons/graveler_icon.png b/graphics/pokemon/graveler/icon.png similarity index 100% rename from graphics/pokemon/icons/graveler_icon.png rename to graphics/pokemon/graveler/icon.png diff --git a/graphics/pokemon/palettes/graveler_palette.pal b/graphics/pokemon/graveler/normal.pal similarity index 100% rename from graphics/pokemon/palettes/graveler_palette.pal rename to graphics/pokemon/graveler/normal.pal diff --git a/graphics/pokemon/palettes/graveler_shiny_palette.pal b/graphics/pokemon/graveler/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/graveler_shiny_palette.pal rename to graphics/pokemon/graveler/shiny.pal diff --git a/graphics/pokemon/back_pics/grimer_back_pic.png b/graphics/pokemon/grimer/back.png similarity index 100% rename from graphics/pokemon/back_pics/grimer_back_pic.png rename to graphics/pokemon/grimer/back.png diff --git a/graphics/pokemon/footprints/grimer_footprint.png b/graphics/pokemon/grimer/footprint.png similarity index 100% rename from graphics/pokemon/footprints/grimer_footprint.png rename to graphics/pokemon/grimer/footprint.png diff --git a/graphics/pokemon/front_pics/grimer_still_front_pic.png b/graphics/pokemon/grimer/front.png similarity index 100% rename from graphics/pokemon/front_pics/grimer_still_front_pic.png rename to graphics/pokemon/grimer/front.png diff --git a/graphics/pokemon/icons/grimer_icon.png b/graphics/pokemon/grimer/icon.png similarity index 100% rename from graphics/pokemon/icons/grimer_icon.png rename to graphics/pokemon/grimer/icon.png diff --git a/graphics/pokemon/palettes/grimer_palette.pal b/graphics/pokemon/grimer/normal.pal similarity index 100% rename from graphics/pokemon/palettes/grimer_palette.pal rename to graphics/pokemon/grimer/normal.pal diff --git a/graphics/pokemon/palettes/grimer_shiny_palette.pal b/graphics/pokemon/grimer/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/grimer_shiny_palette.pal rename to graphics/pokemon/grimer/shiny.pal diff --git a/graphics/pokemon/back_pics/groudon_back_pic.png b/graphics/pokemon/groudon/back.png similarity index 100% rename from graphics/pokemon/back_pics/groudon_back_pic.png rename to graphics/pokemon/groudon/back.png diff --git a/graphics/pokemon/footprints/groudon_footprint.png b/graphics/pokemon/groudon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/groudon_footprint.png rename to graphics/pokemon/groudon/footprint.png diff --git a/graphics/pokemon/front_pics/groudon_still_front_pic.png b/graphics/pokemon/groudon/front.png similarity index 100% rename from graphics/pokemon/front_pics/groudon_still_front_pic.png rename to graphics/pokemon/groudon/front.png diff --git a/graphics/pokemon/icons/groudon_icon.png b/graphics/pokemon/groudon/icon.png similarity index 100% rename from graphics/pokemon/icons/groudon_icon.png rename to graphics/pokemon/groudon/icon.png diff --git a/graphics/pokemon/palettes/groudon_palette.pal b/graphics/pokemon/groudon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/groudon_palette.pal rename to graphics/pokemon/groudon/normal.pal diff --git a/graphics/pokemon/palettes/groudon_shiny_palette.pal b/graphics/pokemon/groudon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/groudon_shiny_palette.pal rename to graphics/pokemon/groudon/shiny.pal diff --git a/graphics/pokemon/back_pics/grovyle_back_pic.png b/graphics/pokemon/grovyle/back.png similarity index 100% rename from graphics/pokemon/back_pics/grovyle_back_pic.png rename to graphics/pokemon/grovyle/back.png diff --git a/graphics/pokemon/footprints/grovyle_footprint.png b/graphics/pokemon/grovyle/footprint.png similarity index 100% rename from graphics/pokemon/footprints/grovyle_footprint.png rename to graphics/pokemon/grovyle/footprint.png diff --git a/graphics/pokemon/front_pics/grovyle_still_front_pic.png b/graphics/pokemon/grovyle/front.png similarity index 100% rename from graphics/pokemon/front_pics/grovyle_still_front_pic.png rename to graphics/pokemon/grovyle/front.png diff --git a/graphics/pokemon/icons/grovyle_icon.png b/graphics/pokemon/grovyle/icon.png similarity index 100% rename from graphics/pokemon/icons/grovyle_icon.png rename to graphics/pokemon/grovyle/icon.png diff --git a/graphics/pokemon/palettes/grovyle_palette.pal b/graphics/pokemon/grovyle/normal.pal similarity index 100% rename from graphics/pokemon/palettes/grovyle_palette.pal rename to graphics/pokemon/grovyle/normal.pal diff --git a/graphics/pokemon/palettes/grovyle_shiny_palette.pal b/graphics/pokemon/grovyle/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/grovyle_shiny_palette.pal rename to graphics/pokemon/grovyle/shiny.pal diff --git a/graphics/pokemon/back_pics/growlithe_back_pic.png b/graphics/pokemon/growlithe/back.png similarity index 100% rename from graphics/pokemon/back_pics/growlithe_back_pic.png rename to graphics/pokemon/growlithe/back.png diff --git a/graphics/pokemon/footprints/growlithe_footprint.png b/graphics/pokemon/growlithe/footprint.png similarity index 100% rename from graphics/pokemon/footprints/growlithe_footprint.png rename to graphics/pokemon/growlithe/footprint.png diff --git a/graphics/pokemon/front_pics/growlithe_still_front_pic.png b/graphics/pokemon/growlithe/front.png similarity index 100% rename from graphics/pokemon/front_pics/growlithe_still_front_pic.png rename to graphics/pokemon/growlithe/front.png diff --git a/graphics/pokemon/icons/growlithe_icon.png b/graphics/pokemon/growlithe/icon.png similarity index 100% rename from graphics/pokemon/icons/growlithe_icon.png rename to graphics/pokemon/growlithe/icon.png diff --git a/graphics/pokemon/palettes/growlithe_palette.pal b/graphics/pokemon/growlithe/normal.pal similarity index 100% rename from graphics/pokemon/palettes/growlithe_palette.pal rename to graphics/pokemon/growlithe/normal.pal diff --git a/graphics/pokemon/palettes/growlithe_shiny_palette.pal b/graphics/pokemon/growlithe/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/growlithe_shiny_palette.pal rename to graphics/pokemon/growlithe/shiny.pal diff --git a/graphics/pokemon/back_pics/grumpig_back_pic.png b/graphics/pokemon/grumpig/back.png similarity index 100% rename from graphics/pokemon/back_pics/grumpig_back_pic.png rename to graphics/pokemon/grumpig/back.png diff --git a/graphics/pokemon/footprints/grumpig_footprint.png b/graphics/pokemon/grumpig/footprint.png similarity index 100% rename from graphics/pokemon/footprints/grumpig_footprint.png rename to graphics/pokemon/grumpig/footprint.png diff --git a/graphics/pokemon/front_pics/grumpig_still_front_pic.png b/graphics/pokemon/grumpig/front.png similarity index 100% rename from graphics/pokemon/front_pics/grumpig_still_front_pic.png rename to graphics/pokemon/grumpig/front.png diff --git a/graphics/pokemon/icons/grumpig_icon.png b/graphics/pokemon/grumpig/icon.png similarity index 100% rename from graphics/pokemon/icons/grumpig_icon.png rename to graphics/pokemon/grumpig/icon.png diff --git a/graphics/pokemon/palettes/grumpig_palette.pal b/graphics/pokemon/grumpig/normal.pal similarity index 100% rename from graphics/pokemon/palettes/grumpig_palette.pal rename to graphics/pokemon/grumpig/normal.pal diff --git a/graphics/pokemon/palettes/grumpig_shiny_palette.pal b/graphics/pokemon/grumpig/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/grumpig_shiny_palette.pal rename to graphics/pokemon/grumpig/shiny.pal diff --git a/graphics/pokemon/back_pics/gulpin_back_pic.png b/graphics/pokemon/gulpin/back.png similarity index 100% rename from graphics/pokemon/back_pics/gulpin_back_pic.png rename to graphics/pokemon/gulpin/back.png diff --git a/graphics/pokemon/footprints/gulpin_footprint.png b/graphics/pokemon/gulpin/footprint.png similarity index 100% rename from graphics/pokemon/footprints/gulpin_footprint.png rename to graphics/pokemon/gulpin/footprint.png diff --git a/graphics/pokemon/front_pics/gulpin_still_front_pic.png b/graphics/pokemon/gulpin/front.png similarity index 100% rename from graphics/pokemon/front_pics/gulpin_still_front_pic.png rename to graphics/pokemon/gulpin/front.png diff --git a/graphics/pokemon/icons/gulpin_icon.png b/graphics/pokemon/gulpin/icon.png similarity index 100% rename from graphics/pokemon/icons/gulpin_icon.png rename to graphics/pokemon/gulpin/icon.png diff --git a/graphics/pokemon/palettes/gulpin_palette.pal b/graphics/pokemon/gulpin/normal.pal similarity index 100% rename from graphics/pokemon/palettes/gulpin_palette.pal rename to graphics/pokemon/gulpin/normal.pal diff --git a/graphics/pokemon/palettes/gulpin_shiny_palette.pal b/graphics/pokemon/gulpin/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/gulpin_shiny_palette.pal rename to graphics/pokemon/gulpin/shiny.pal diff --git a/graphics/pokemon/back_pics/gyarados_back_pic.png b/graphics/pokemon/gyarados/back.png similarity index 100% rename from graphics/pokemon/back_pics/gyarados_back_pic.png rename to graphics/pokemon/gyarados/back.png diff --git a/graphics/pokemon/footprints/gyarados_footprint.png b/graphics/pokemon/gyarados/footprint.png similarity index 100% rename from graphics/pokemon/footprints/gyarados_footprint.png rename to graphics/pokemon/gyarados/footprint.png diff --git a/graphics/pokemon/front_pics/gyarados_still_front_pic.png b/graphics/pokemon/gyarados/front.png similarity index 100% rename from graphics/pokemon/front_pics/gyarados_still_front_pic.png rename to graphics/pokemon/gyarados/front.png diff --git a/graphics/pokemon/icons/gyarados_icon.png b/graphics/pokemon/gyarados/icon.png similarity index 100% rename from graphics/pokemon/icons/gyarados_icon.png rename to graphics/pokemon/gyarados/icon.png diff --git a/graphics/pokemon/palettes/gyarados_palette.pal b/graphics/pokemon/gyarados/normal.pal similarity index 100% rename from graphics/pokemon/palettes/gyarados_palette.pal rename to graphics/pokemon/gyarados/normal.pal diff --git a/graphics/pokemon/palettes/gyarados_shiny_palette.pal b/graphics/pokemon/gyarados/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/gyarados_shiny_palette.pal rename to graphics/pokemon/gyarados/shiny.pal diff --git a/graphics/pokemon/back_pics/hariyama_back_pic.png b/graphics/pokemon/hariyama/back.png similarity index 100% rename from graphics/pokemon/back_pics/hariyama_back_pic.png rename to graphics/pokemon/hariyama/back.png diff --git a/graphics/pokemon/footprints/hariyama_footprint.png b/graphics/pokemon/hariyama/footprint.png similarity index 100% rename from graphics/pokemon/footprints/hariyama_footprint.png rename to graphics/pokemon/hariyama/footprint.png diff --git a/graphics/pokemon/front_pics/hariyama_still_front_pic.png b/graphics/pokemon/hariyama/front.png similarity index 100% rename from graphics/pokemon/front_pics/hariyama_still_front_pic.png rename to graphics/pokemon/hariyama/front.png diff --git a/graphics/pokemon/icons/hariyama_icon.png b/graphics/pokemon/hariyama/icon.png similarity index 100% rename from graphics/pokemon/icons/hariyama_icon.png rename to graphics/pokemon/hariyama/icon.png diff --git a/graphics/pokemon/palettes/hariyama_palette.pal b/graphics/pokemon/hariyama/normal.pal similarity index 100% rename from graphics/pokemon/palettes/hariyama_palette.pal rename to graphics/pokemon/hariyama/normal.pal diff --git a/graphics/pokemon/palettes/hariyama_shiny_palette.pal b/graphics/pokemon/hariyama/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/hariyama_shiny_palette.pal rename to graphics/pokemon/hariyama/shiny.pal diff --git a/graphics/pokemon/back_pics/haunter_back_pic.png b/graphics/pokemon/haunter/back.png similarity index 100% rename from graphics/pokemon/back_pics/haunter_back_pic.png rename to graphics/pokemon/haunter/back.png diff --git a/graphics/pokemon/footprints/haunter_footprint.png b/graphics/pokemon/haunter/footprint.png similarity index 100% rename from graphics/pokemon/footprints/haunter_footprint.png rename to graphics/pokemon/haunter/footprint.png diff --git a/graphics/pokemon/front_pics/haunter_still_front_pic.png b/graphics/pokemon/haunter/front.png similarity index 100% rename from graphics/pokemon/front_pics/haunter_still_front_pic.png rename to graphics/pokemon/haunter/front.png diff --git a/graphics/pokemon/icons/haunter_icon.png b/graphics/pokemon/haunter/icon.png similarity index 100% rename from graphics/pokemon/icons/haunter_icon.png rename to graphics/pokemon/haunter/icon.png diff --git a/graphics/pokemon/palettes/haunter_palette.pal b/graphics/pokemon/haunter/normal.pal similarity index 100% rename from graphics/pokemon/palettes/haunter_palette.pal rename to graphics/pokemon/haunter/normal.pal diff --git a/graphics/pokemon/palettes/haunter_shiny_palette.pal b/graphics/pokemon/haunter/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/haunter_shiny_palette.pal rename to graphics/pokemon/haunter/shiny.pal diff --git a/graphics/pokemon/back_pics/heracross_back_pic.png b/graphics/pokemon/heracross/back.png similarity index 100% rename from graphics/pokemon/back_pics/heracross_back_pic.png rename to graphics/pokemon/heracross/back.png diff --git a/graphics/pokemon/footprints/heracross_footprint.png b/graphics/pokemon/heracross/footprint.png similarity index 100% rename from graphics/pokemon/footprints/heracross_footprint.png rename to graphics/pokemon/heracross/footprint.png diff --git a/graphics/pokemon/front_pics/heracross_still_front_pic.png b/graphics/pokemon/heracross/front.png similarity index 100% rename from graphics/pokemon/front_pics/heracross_still_front_pic.png rename to graphics/pokemon/heracross/front.png diff --git a/graphics/pokemon/icons/heracross_icon.png b/graphics/pokemon/heracross/icon.png similarity index 100% rename from graphics/pokemon/icons/heracross_icon.png rename to graphics/pokemon/heracross/icon.png diff --git a/graphics/pokemon/palettes/heracross_palette.pal b/graphics/pokemon/heracross/normal.pal similarity index 100% rename from graphics/pokemon/palettes/heracross_palette.pal rename to graphics/pokemon/heracross/normal.pal diff --git a/graphics/pokemon/palettes/heracross_shiny_palette.pal b/graphics/pokemon/heracross/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/heracross_shiny_palette.pal rename to graphics/pokemon/heracross/shiny.pal diff --git a/graphics/pokemon/back_pics/hitmonchan_back_pic.png b/graphics/pokemon/hitmonchan/back.png similarity index 100% rename from graphics/pokemon/back_pics/hitmonchan_back_pic.png rename to graphics/pokemon/hitmonchan/back.png diff --git a/graphics/pokemon/footprints/hitmonchan_footprint.png b/graphics/pokemon/hitmonchan/footprint.png similarity index 100% rename from graphics/pokemon/footprints/hitmonchan_footprint.png rename to graphics/pokemon/hitmonchan/footprint.png diff --git a/graphics/pokemon/front_pics/hitmonchan_still_front_pic.png b/graphics/pokemon/hitmonchan/front.png similarity index 100% rename from graphics/pokemon/front_pics/hitmonchan_still_front_pic.png rename to graphics/pokemon/hitmonchan/front.png diff --git a/graphics/pokemon/icons/hitmonchan_icon.png b/graphics/pokemon/hitmonchan/icon.png similarity index 100% rename from graphics/pokemon/icons/hitmonchan_icon.png rename to graphics/pokemon/hitmonchan/icon.png diff --git a/graphics/pokemon/palettes/hitmonchan_palette.pal b/graphics/pokemon/hitmonchan/normal.pal similarity index 100% rename from graphics/pokemon/palettes/hitmonchan_palette.pal rename to graphics/pokemon/hitmonchan/normal.pal diff --git a/graphics/pokemon/palettes/hitmonchan_shiny_palette.pal b/graphics/pokemon/hitmonchan/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/hitmonchan_shiny_palette.pal rename to graphics/pokemon/hitmonchan/shiny.pal diff --git a/graphics/pokemon/back_pics/hitmonlee_back_pic.png b/graphics/pokemon/hitmonlee/back.png similarity index 100% rename from graphics/pokemon/back_pics/hitmonlee_back_pic.png rename to graphics/pokemon/hitmonlee/back.png diff --git a/graphics/pokemon/footprints/hitmonlee_footprint.png b/graphics/pokemon/hitmonlee/footprint.png similarity index 100% rename from graphics/pokemon/footprints/hitmonlee_footprint.png rename to graphics/pokemon/hitmonlee/footprint.png diff --git a/graphics/pokemon/front_pics/hitmonlee_still_front_pic.png b/graphics/pokemon/hitmonlee/front.png similarity index 100% rename from graphics/pokemon/front_pics/hitmonlee_still_front_pic.png rename to graphics/pokemon/hitmonlee/front.png diff --git a/graphics/pokemon/icons/hitmonlee_icon.png b/graphics/pokemon/hitmonlee/icon.png similarity index 100% rename from graphics/pokemon/icons/hitmonlee_icon.png rename to graphics/pokemon/hitmonlee/icon.png diff --git a/graphics/pokemon/palettes/hitmonlee_palette.pal b/graphics/pokemon/hitmonlee/normal.pal similarity index 100% rename from graphics/pokemon/palettes/hitmonlee_palette.pal rename to graphics/pokemon/hitmonlee/normal.pal diff --git a/graphics/pokemon/palettes/hitmonlee_shiny_palette.pal b/graphics/pokemon/hitmonlee/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/hitmonlee_shiny_palette.pal rename to graphics/pokemon/hitmonlee/shiny.pal diff --git a/graphics/pokemon/back_pics/hitmontop_back_pic.png b/graphics/pokemon/hitmontop/back.png similarity index 100% rename from graphics/pokemon/back_pics/hitmontop_back_pic.png rename to graphics/pokemon/hitmontop/back.png diff --git a/graphics/pokemon/footprints/hitmontop_footprint.png b/graphics/pokemon/hitmontop/footprint.png similarity index 100% rename from graphics/pokemon/footprints/hitmontop_footprint.png rename to graphics/pokemon/hitmontop/footprint.png diff --git a/graphics/pokemon/front_pics/hitmontop_still_front_pic.png b/graphics/pokemon/hitmontop/front.png similarity index 100% rename from graphics/pokemon/front_pics/hitmontop_still_front_pic.png rename to graphics/pokemon/hitmontop/front.png diff --git a/graphics/pokemon/icons/hitmontop_icon.png b/graphics/pokemon/hitmontop/icon.png similarity index 100% rename from graphics/pokemon/icons/hitmontop_icon.png rename to graphics/pokemon/hitmontop/icon.png diff --git a/graphics/pokemon/palettes/hitmontop_palette.pal b/graphics/pokemon/hitmontop/normal.pal similarity index 100% rename from graphics/pokemon/palettes/hitmontop_palette.pal rename to graphics/pokemon/hitmontop/normal.pal diff --git a/graphics/pokemon/palettes/hitmontop_shiny_palette.pal b/graphics/pokemon/hitmontop/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/hitmontop_shiny_palette.pal rename to graphics/pokemon/hitmontop/shiny.pal diff --git a/graphics/pokemon/back_pics/ho_oh_back_pic.png b/graphics/pokemon/ho_oh/back.png similarity index 100% rename from graphics/pokemon/back_pics/ho_oh_back_pic.png rename to graphics/pokemon/ho_oh/back.png diff --git a/graphics/pokemon/footprints/ho_oh_footprint.png b/graphics/pokemon/ho_oh/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ho_oh_footprint.png rename to graphics/pokemon/ho_oh/footprint.png diff --git a/graphics/pokemon/front_pics/ho_oh_still_front_pic.png b/graphics/pokemon/ho_oh/front.png similarity index 100% rename from graphics/pokemon/front_pics/ho_oh_still_front_pic.png rename to graphics/pokemon/ho_oh/front.png diff --git a/graphics/pokemon/icons/ho_oh_icon.png b/graphics/pokemon/ho_oh/icon.png similarity index 100% rename from graphics/pokemon/icons/ho_oh_icon.png rename to graphics/pokemon/ho_oh/icon.png diff --git a/graphics/pokemon/palettes/ho_oh_palette.pal b/graphics/pokemon/ho_oh/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ho_oh_palette.pal rename to graphics/pokemon/ho_oh/normal.pal diff --git a/graphics/pokemon/palettes/ho_oh_shiny_palette.pal b/graphics/pokemon/ho_oh/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ho_oh_shiny_palette.pal rename to graphics/pokemon/ho_oh/shiny.pal diff --git a/graphics/pokemon/back_pics/hoothoot_back_pic.png b/graphics/pokemon/hoothoot/back.png similarity index 100% rename from graphics/pokemon/back_pics/hoothoot_back_pic.png rename to graphics/pokemon/hoothoot/back.png diff --git a/graphics/pokemon/footprints/hoothoot_footprint.png b/graphics/pokemon/hoothoot/footprint.png similarity index 100% rename from graphics/pokemon/footprints/hoothoot_footprint.png rename to graphics/pokemon/hoothoot/footprint.png diff --git a/graphics/pokemon/front_pics/hoothoot_still_front_pic.png b/graphics/pokemon/hoothoot/front.png similarity index 100% rename from graphics/pokemon/front_pics/hoothoot_still_front_pic.png rename to graphics/pokemon/hoothoot/front.png diff --git a/graphics/pokemon/icons/hoothoot_icon.png b/graphics/pokemon/hoothoot/icon.png similarity index 100% rename from graphics/pokemon/icons/hoothoot_icon.png rename to graphics/pokemon/hoothoot/icon.png diff --git a/graphics/pokemon/palettes/hoothoot_palette.pal b/graphics/pokemon/hoothoot/normal.pal similarity index 100% rename from graphics/pokemon/palettes/hoothoot_palette.pal rename to graphics/pokemon/hoothoot/normal.pal diff --git a/graphics/pokemon/palettes/hoothoot_shiny_palette.pal b/graphics/pokemon/hoothoot/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/hoothoot_shiny_palette.pal rename to graphics/pokemon/hoothoot/shiny.pal diff --git a/graphics/pokemon/back_pics/hoppip_back_pic.png b/graphics/pokemon/hoppip/back.png similarity index 100% rename from graphics/pokemon/back_pics/hoppip_back_pic.png rename to graphics/pokemon/hoppip/back.png diff --git a/graphics/pokemon/footprints/hoppip_footprint.png b/graphics/pokemon/hoppip/footprint.png similarity index 100% rename from graphics/pokemon/footprints/hoppip_footprint.png rename to graphics/pokemon/hoppip/footprint.png diff --git a/graphics/pokemon/front_pics/hoppip_still_front_pic.png b/graphics/pokemon/hoppip/front.png similarity index 100% rename from graphics/pokemon/front_pics/hoppip_still_front_pic.png rename to graphics/pokemon/hoppip/front.png diff --git a/graphics/pokemon/icons/hoppip_icon.png b/graphics/pokemon/hoppip/icon.png similarity index 100% rename from graphics/pokemon/icons/hoppip_icon.png rename to graphics/pokemon/hoppip/icon.png diff --git a/graphics/pokemon/palettes/hoppip_palette.pal b/graphics/pokemon/hoppip/normal.pal similarity index 100% rename from graphics/pokemon/palettes/hoppip_palette.pal rename to graphics/pokemon/hoppip/normal.pal diff --git a/graphics/pokemon/palettes/hoppip_shiny_palette.pal b/graphics/pokemon/hoppip/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/hoppip_shiny_palette.pal rename to graphics/pokemon/hoppip/shiny.pal diff --git a/graphics/pokemon/back_pics/horsea_back_pic.png b/graphics/pokemon/horsea/back.png similarity index 100% rename from graphics/pokemon/back_pics/horsea_back_pic.png rename to graphics/pokemon/horsea/back.png diff --git a/graphics/pokemon/footprints/horsea_footprint.png b/graphics/pokemon/horsea/footprint.png similarity index 100% rename from graphics/pokemon/footprints/horsea_footprint.png rename to graphics/pokemon/horsea/footprint.png diff --git a/graphics/pokemon/front_pics/horsea_still_front_pic.png b/graphics/pokemon/horsea/front.png similarity index 100% rename from graphics/pokemon/front_pics/horsea_still_front_pic.png rename to graphics/pokemon/horsea/front.png diff --git a/graphics/pokemon/icons/horsea_icon.png b/graphics/pokemon/horsea/icon.png similarity index 100% rename from graphics/pokemon/icons/horsea_icon.png rename to graphics/pokemon/horsea/icon.png diff --git a/graphics/pokemon/palettes/horsea_palette.pal b/graphics/pokemon/horsea/normal.pal similarity index 100% rename from graphics/pokemon/palettes/horsea_palette.pal rename to graphics/pokemon/horsea/normal.pal diff --git a/graphics/pokemon/palettes/horsea_shiny_palette.pal b/graphics/pokemon/horsea/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/horsea_shiny_palette.pal rename to graphics/pokemon/horsea/shiny.pal diff --git a/graphics/pokemon/back_pics/houndoom_back_pic.png b/graphics/pokemon/houndoom/back.png similarity index 100% rename from graphics/pokemon/back_pics/houndoom_back_pic.png rename to graphics/pokemon/houndoom/back.png diff --git a/graphics/pokemon/footprints/houndoom_footprint.png b/graphics/pokemon/houndoom/footprint.png similarity index 100% rename from graphics/pokemon/footprints/houndoom_footprint.png rename to graphics/pokemon/houndoom/footprint.png diff --git a/graphics/pokemon/front_pics/houndoom_still_front_pic.png b/graphics/pokemon/houndoom/front.png similarity index 100% rename from graphics/pokemon/front_pics/houndoom_still_front_pic.png rename to graphics/pokemon/houndoom/front.png diff --git a/graphics/pokemon/icons/houndoom_icon.png b/graphics/pokemon/houndoom/icon.png similarity index 100% rename from graphics/pokemon/icons/houndoom_icon.png rename to graphics/pokemon/houndoom/icon.png diff --git a/graphics/pokemon/palettes/houndoom_palette.pal b/graphics/pokemon/houndoom/normal.pal similarity index 100% rename from graphics/pokemon/palettes/houndoom_palette.pal rename to graphics/pokemon/houndoom/normal.pal diff --git a/graphics/pokemon/palettes/houndoom_shiny_palette.pal b/graphics/pokemon/houndoom/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/houndoom_shiny_palette.pal rename to graphics/pokemon/houndoom/shiny.pal diff --git a/graphics/pokemon/back_pics/houndour_back_pic.png b/graphics/pokemon/houndour/back.png similarity index 100% rename from graphics/pokemon/back_pics/houndour_back_pic.png rename to graphics/pokemon/houndour/back.png diff --git a/graphics/pokemon/footprints/houndour_footprint.png b/graphics/pokemon/houndour/footprint.png similarity index 100% rename from graphics/pokemon/footprints/houndour_footprint.png rename to graphics/pokemon/houndour/footprint.png diff --git a/graphics/pokemon/front_pics/houndour_still_front_pic.png b/graphics/pokemon/houndour/front.png similarity index 100% rename from graphics/pokemon/front_pics/houndour_still_front_pic.png rename to graphics/pokemon/houndour/front.png diff --git a/graphics/pokemon/icons/houndour_icon.png b/graphics/pokemon/houndour/icon.png similarity index 100% rename from graphics/pokemon/icons/houndour_icon.png rename to graphics/pokemon/houndour/icon.png diff --git a/graphics/pokemon/palettes/houndour_palette.pal b/graphics/pokemon/houndour/normal.pal similarity index 100% rename from graphics/pokemon/palettes/houndour_palette.pal rename to graphics/pokemon/houndour/normal.pal diff --git a/graphics/pokemon/palettes/houndour_shiny_palette.pal b/graphics/pokemon/houndour/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/houndour_shiny_palette.pal rename to graphics/pokemon/houndour/shiny.pal diff --git a/graphics/pokemon/back_pics/huntail_back_pic.png b/graphics/pokemon/huntail/back.png similarity index 100% rename from graphics/pokemon/back_pics/huntail_back_pic.png rename to graphics/pokemon/huntail/back.png diff --git a/graphics/pokemon/footprints/huntail_footprint.png b/graphics/pokemon/huntail/footprint.png similarity index 100% rename from graphics/pokemon/footprints/huntail_footprint.png rename to graphics/pokemon/huntail/footprint.png diff --git a/graphics/pokemon/front_pics/huntail_still_front_pic.png b/graphics/pokemon/huntail/front.png similarity index 100% rename from graphics/pokemon/front_pics/huntail_still_front_pic.png rename to graphics/pokemon/huntail/front.png diff --git a/graphics/pokemon/icons/huntail_icon.png b/graphics/pokemon/huntail/icon.png similarity index 100% rename from graphics/pokemon/icons/huntail_icon.png rename to graphics/pokemon/huntail/icon.png diff --git a/graphics/pokemon/palettes/huntail_palette.pal b/graphics/pokemon/huntail/normal.pal similarity index 100% rename from graphics/pokemon/palettes/huntail_palette.pal rename to graphics/pokemon/huntail/normal.pal diff --git a/graphics/pokemon/palettes/huntail_shiny_palette.pal b/graphics/pokemon/huntail/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/huntail_shiny_palette.pal rename to graphics/pokemon/huntail/shiny.pal diff --git a/graphics/pokemon/back_pics/hypno_back_pic.png b/graphics/pokemon/hypno/back.png similarity index 100% rename from graphics/pokemon/back_pics/hypno_back_pic.png rename to graphics/pokemon/hypno/back.png diff --git a/graphics/pokemon/footprints/hypno_footprint.png b/graphics/pokemon/hypno/footprint.png similarity index 100% rename from graphics/pokemon/footprints/hypno_footprint.png rename to graphics/pokemon/hypno/footprint.png diff --git a/graphics/pokemon/front_pics/hypno_still_front_pic.png b/graphics/pokemon/hypno/front.png similarity index 100% rename from graphics/pokemon/front_pics/hypno_still_front_pic.png rename to graphics/pokemon/hypno/front.png diff --git a/graphics/pokemon/icons/hypno_icon.png b/graphics/pokemon/hypno/icon.png similarity index 100% rename from graphics/pokemon/icons/hypno_icon.png rename to graphics/pokemon/hypno/icon.png diff --git a/graphics/pokemon/palettes/hypno_palette.pal b/graphics/pokemon/hypno/normal.pal similarity index 100% rename from graphics/pokemon/palettes/hypno_palette.pal rename to graphics/pokemon/hypno/normal.pal diff --git a/graphics/pokemon/palettes/hypno_shiny_palette.pal b/graphics/pokemon/hypno/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/hypno_shiny_palette.pal rename to graphics/pokemon/hypno/shiny.pal diff --git a/graphics/pokemon/back_pics/igglybuff_back_pic.png b/graphics/pokemon/igglybuff/back.png similarity index 100% rename from graphics/pokemon/back_pics/igglybuff_back_pic.png rename to graphics/pokemon/igglybuff/back.png diff --git a/graphics/pokemon/footprints/igglybuff_footprint.png b/graphics/pokemon/igglybuff/footprint.png similarity index 100% rename from graphics/pokemon/footprints/igglybuff_footprint.png rename to graphics/pokemon/igglybuff/footprint.png diff --git a/graphics/pokemon/front_pics/igglybuff_still_front_pic.png b/graphics/pokemon/igglybuff/front.png similarity index 100% rename from graphics/pokemon/front_pics/igglybuff_still_front_pic.png rename to graphics/pokemon/igglybuff/front.png diff --git a/graphics/pokemon/icons/igglybuff_icon.png b/graphics/pokemon/igglybuff/icon.png similarity index 100% rename from graphics/pokemon/icons/igglybuff_icon.png rename to graphics/pokemon/igglybuff/icon.png diff --git a/graphics/pokemon/palettes/igglybuff_palette.pal b/graphics/pokemon/igglybuff/normal.pal similarity index 100% rename from graphics/pokemon/palettes/igglybuff_palette.pal rename to graphics/pokemon/igglybuff/normal.pal diff --git a/graphics/pokemon/palettes/igglybuff_shiny_palette.pal b/graphics/pokemon/igglybuff/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/igglybuff_shiny_palette.pal rename to graphics/pokemon/igglybuff/shiny.pal diff --git a/graphics/pokemon/back_pics/illumise_back_pic.png b/graphics/pokemon/illumise/back.png similarity index 100% rename from graphics/pokemon/back_pics/illumise_back_pic.png rename to graphics/pokemon/illumise/back.png diff --git a/graphics/pokemon/footprints/illumise_footprint.png b/graphics/pokemon/illumise/footprint.png similarity index 100% rename from graphics/pokemon/footprints/illumise_footprint.png rename to graphics/pokemon/illumise/footprint.png diff --git a/graphics/pokemon/front_pics/illumise_still_front_pic.png b/graphics/pokemon/illumise/front.png similarity index 100% rename from graphics/pokemon/front_pics/illumise_still_front_pic.png rename to graphics/pokemon/illumise/front.png diff --git a/graphics/pokemon/icons/illumise_icon.png b/graphics/pokemon/illumise/icon.png similarity index 100% rename from graphics/pokemon/icons/illumise_icon.png rename to graphics/pokemon/illumise/icon.png diff --git a/graphics/pokemon/palettes/illumise_palette.pal b/graphics/pokemon/illumise/normal.pal similarity index 100% rename from graphics/pokemon/palettes/illumise_palette.pal rename to graphics/pokemon/illumise/normal.pal diff --git a/graphics/pokemon/palettes/illumise_shiny_palette.pal b/graphics/pokemon/illumise/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/illumise_shiny_palette.pal rename to graphics/pokemon/illumise/shiny.pal diff --git a/graphics/pokemon/back_pics/ivysaur_back_pic.png b/graphics/pokemon/ivysaur/back.png similarity index 100% rename from graphics/pokemon/back_pics/ivysaur_back_pic.png rename to graphics/pokemon/ivysaur/back.png diff --git a/graphics/pokemon/footprints/ivysaur_footprint.png b/graphics/pokemon/ivysaur/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ivysaur_footprint.png rename to graphics/pokemon/ivysaur/footprint.png diff --git a/graphics/pokemon/front_pics/ivysaur_still_front_pic.png b/graphics/pokemon/ivysaur/front.png similarity index 100% rename from graphics/pokemon/front_pics/ivysaur_still_front_pic.png rename to graphics/pokemon/ivysaur/front.png diff --git a/graphics/pokemon/icons/ivysaur_icon.png b/graphics/pokemon/ivysaur/icon.png similarity index 100% rename from graphics/pokemon/icons/ivysaur_icon.png rename to graphics/pokemon/ivysaur/icon.png diff --git a/graphics/pokemon/palettes/ivysaur_palette.pal b/graphics/pokemon/ivysaur/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ivysaur_palette.pal rename to graphics/pokemon/ivysaur/normal.pal diff --git a/graphics/pokemon/palettes/ivysaur_shiny_palette.pal b/graphics/pokemon/ivysaur/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ivysaur_shiny_palette.pal rename to graphics/pokemon/ivysaur/shiny.pal diff --git a/graphics/pokemon/back_pics/jigglypuff_back_pic.png b/graphics/pokemon/jigglypuff/back.png similarity index 100% rename from graphics/pokemon/back_pics/jigglypuff_back_pic.png rename to graphics/pokemon/jigglypuff/back.png diff --git a/graphics/pokemon/footprints/jigglypuff_footprint.png b/graphics/pokemon/jigglypuff/footprint.png similarity index 100% rename from graphics/pokemon/footprints/jigglypuff_footprint.png rename to graphics/pokemon/jigglypuff/footprint.png diff --git a/graphics/pokemon/front_pics/jigglypuff_still_front_pic.png b/graphics/pokemon/jigglypuff/front.png similarity index 100% rename from graphics/pokemon/front_pics/jigglypuff_still_front_pic.png rename to graphics/pokemon/jigglypuff/front.png diff --git a/graphics/pokemon/icons/jigglypuff_icon.png b/graphics/pokemon/jigglypuff/icon.png similarity index 100% rename from graphics/pokemon/icons/jigglypuff_icon.png rename to graphics/pokemon/jigglypuff/icon.png diff --git a/graphics/pokemon/palettes/jigglypuff_palette.pal b/graphics/pokemon/jigglypuff/normal.pal similarity index 100% rename from graphics/pokemon/palettes/jigglypuff_palette.pal rename to graphics/pokemon/jigglypuff/normal.pal diff --git a/graphics/pokemon/palettes/jigglypuff_shiny_palette.pal b/graphics/pokemon/jigglypuff/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/jigglypuff_shiny_palette.pal rename to graphics/pokemon/jigglypuff/shiny.pal diff --git a/graphics/pokemon/back_pics/jirachi_back_pic.png b/graphics/pokemon/jirachi/back.png similarity index 100% rename from graphics/pokemon/back_pics/jirachi_back_pic.png rename to graphics/pokemon/jirachi/back.png diff --git a/graphics/pokemon/footprints/jirachi_footprint.png b/graphics/pokemon/jirachi/footprint.png similarity index 100% rename from graphics/pokemon/footprints/jirachi_footprint.png rename to graphics/pokemon/jirachi/footprint.png diff --git a/graphics/pokemon/front_pics/jirachi_still_front_pic.png b/graphics/pokemon/jirachi/front.png similarity index 100% rename from graphics/pokemon/front_pics/jirachi_still_front_pic.png rename to graphics/pokemon/jirachi/front.png diff --git a/graphics/pokemon/icons/jirachi_icon.png b/graphics/pokemon/jirachi/icon.png similarity index 100% rename from graphics/pokemon/icons/jirachi_icon.png rename to graphics/pokemon/jirachi/icon.png diff --git a/graphics/pokemon/palettes/jirachi_palette.pal b/graphics/pokemon/jirachi/normal.pal similarity index 100% rename from graphics/pokemon/palettes/jirachi_palette.pal rename to graphics/pokemon/jirachi/normal.pal diff --git a/graphics/pokemon/palettes/jirachi_shiny_palette.pal b/graphics/pokemon/jirachi/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/jirachi_shiny_palette.pal rename to graphics/pokemon/jirachi/shiny.pal diff --git a/graphics/pokemon/back_pics/jolteon_back_pic.png b/graphics/pokemon/jolteon/back.png similarity index 100% rename from graphics/pokemon/back_pics/jolteon_back_pic.png rename to graphics/pokemon/jolteon/back.png diff --git a/graphics/pokemon/footprints/jolteon_footprint.png b/graphics/pokemon/jolteon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/jolteon_footprint.png rename to graphics/pokemon/jolteon/footprint.png diff --git a/graphics/pokemon/front_pics/jolteon_still_front_pic.png b/graphics/pokemon/jolteon/front.png similarity index 100% rename from graphics/pokemon/front_pics/jolteon_still_front_pic.png rename to graphics/pokemon/jolteon/front.png diff --git a/graphics/pokemon/icons/jolteon_icon.png b/graphics/pokemon/jolteon/icon.png similarity index 100% rename from graphics/pokemon/icons/jolteon_icon.png rename to graphics/pokemon/jolteon/icon.png diff --git a/graphics/pokemon/palettes/jolteon_palette.pal b/graphics/pokemon/jolteon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/jolteon_palette.pal rename to graphics/pokemon/jolteon/normal.pal diff --git a/graphics/pokemon/palettes/jolteon_shiny_palette.pal b/graphics/pokemon/jolteon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/jolteon_shiny_palette.pal rename to graphics/pokemon/jolteon/shiny.pal diff --git a/graphics/pokemon/back_pics/jumpluff_back_pic.png b/graphics/pokemon/jumpluff/back.png similarity index 100% rename from graphics/pokemon/back_pics/jumpluff_back_pic.png rename to graphics/pokemon/jumpluff/back.png diff --git a/graphics/pokemon/footprints/jumpluff_footprint.png b/graphics/pokemon/jumpluff/footprint.png similarity index 100% rename from graphics/pokemon/footprints/jumpluff_footprint.png rename to graphics/pokemon/jumpluff/footprint.png diff --git a/graphics/pokemon/front_pics/jumpluff_still_front_pic.png b/graphics/pokemon/jumpluff/front.png similarity index 100% rename from graphics/pokemon/front_pics/jumpluff_still_front_pic.png rename to graphics/pokemon/jumpluff/front.png diff --git a/graphics/pokemon/icons/jumpluff_icon.png b/graphics/pokemon/jumpluff/icon.png similarity index 100% rename from graphics/pokemon/icons/jumpluff_icon.png rename to graphics/pokemon/jumpluff/icon.png diff --git a/graphics/pokemon/palettes/jumpluff_palette.pal b/graphics/pokemon/jumpluff/normal.pal similarity index 100% rename from graphics/pokemon/palettes/jumpluff_palette.pal rename to graphics/pokemon/jumpluff/normal.pal diff --git a/graphics/pokemon/palettes/jumpluff_shiny_palette.pal b/graphics/pokemon/jumpluff/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/jumpluff_shiny_palette.pal rename to graphics/pokemon/jumpluff/shiny.pal diff --git a/graphics/pokemon/back_pics/jynx_back_pic.png b/graphics/pokemon/jynx/back.png similarity index 100% rename from graphics/pokemon/back_pics/jynx_back_pic.png rename to graphics/pokemon/jynx/back.png diff --git a/graphics/pokemon/footprints/jynx_footprint.png b/graphics/pokemon/jynx/footprint.png similarity index 100% rename from graphics/pokemon/footprints/jynx_footprint.png rename to graphics/pokemon/jynx/footprint.png diff --git a/graphics/pokemon/front_pics/jynx_still_front_pic.png b/graphics/pokemon/jynx/front.png similarity index 100% rename from graphics/pokemon/front_pics/jynx_still_front_pic.png rename to graphics/pokemon/jynx/front.png diff --git a/graphics/pokemon/icons/jynx_icon.png b/graphics/pokemon/jynx/icon.png similarity index 100% rename from graphics/pokemon/icons/jynx_icon.png rename to graphics/pokemon/jynx/icon.png diff --git a/graphics/pokemon/palettes/jynx_palette.pal b/graphics/pokemon/jynx/normal.pal similarity index 100% rename from graphics/pokemon/palettes/jynx_palette.pal rename to graphics/pokemon/jynx/normal.pal diff --git a/graphics/pokemon/palettes/jynx_shiny_palette.pal b/graphics/pokemon/jynx/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/jynx_shiny_palette.pal rename to graphics/pokemon/jynx/shiny.pal diff --git a/graphics/pokemon/back_pics/kabuto_back_pic.png b/graphics/pokemon/kabuto/back.png similarity index 100% rename from graphics/pokemon/back_pics/kabuto_back_pic.png rename to graphics/pokemon/kabuto/back.png diff --git a/graphics/pokemon/footprints/kabuto_footprint.png b/graphics/pokemon/kabuto/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kabuto_footprint.png rename to graphics/pokemon/kabuto/footprint.png diff --git a/graphics/pokemon/front_pics/kabuto_still_front_pic.png b/graphics/pokemon/kabuto/front.png similarity index 100% rename from graphics/pokemon/front_pics/kabuto_still_front_pic.png rename to graphics/pokemon/kabuto/front.png diff --git a/graphics/pokemon/icons/kabuto_icon.png b/graphics/pokemon/kabuto/icon.png similarity index 100% rename from graphics/pokemon/icons/kabuto_icon.png rename to graphics/pokemon/kabuto/icon.png diff --git a/graphics/pokemon/palettes/kabuto_palette.pal b/graphics/pokemon/kabuto/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kabuto_palette.pal rename to graphics/pokemon/kabuto/normal.pal diff --git a/graphics/pokemon/palettes/kabuto_shiny_palette.pal b/graphics/pokemon/kabuto/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kabuto_shiny_palette.pal rename to graphics/pokemon/kabuto/shiny.pal diff --git a/graphics/pokemon/back_pics/kabutops_back_pic.png b/graphics/pokemon/kabutops/back.png similarity index 100% rename from graphics/pokemon/back_pics/kabutops_back_pic.png rename to graphics/pokemon/kabutops/back.png diff --git a/graphics/pokemon/footprints/kabutops_footprint.png b/graphics/pokemon/kabutops/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kabutops_footprint.png rename to graphics/pokemon/kabutops/footprint.png diff --git a/graphics/pokemon/front_pics/kabutops_still_front_pic.png b/graphics/pokemon/kabutops/front.png similarity index 100% rename from graphics/pokemon/front_pics/kabutops_still_front_pic.png rename to graphics/pokemon/kabutops/front.png diff --git a/graphics/pokemon/icons/kabutops_icon.png b/graphics/pokemon/kabutops/icon.png similarity index 100% rename from graphics/pokemon/icons/kabutops_icon.png rename to graphics/pokemon/kabutops/icon.png diff --git a/graphics/pokemon/palettes/kabutops_palette.pal b/graphics/pokemon/kabutops/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kabutops_palette.pal rename to graphics/pokemon/kabutops/normal.pal diff --git a/graphics/pokemon/palettes/kabutops_shiny_palette.pal b/graphics/pokemon/kabutops/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kabutops_shiny_palette.pal rename to graphics/pokemon/kabutops/shiny.pal diff --git a/graphics/pokemon/back_pics/kadabra_back_pic.png b/graphics/pokemon/kadabra/back.png similarity index 100% rename from graphics/pokemon/back_pics/kadabra_back_pic.png rename to graphics/pokemon/kadabra/back.png diff --git a/graphics/pokemon/footprints/kadabra_footprint.png b/graphics/pokemon/kadabra/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kadabra_footprint.png rename to graphics/pokemon/kadabra/footprint.png diff --git a/graphics/pokemon/front_pics/kadabra_still_front_pic.png b/graphics/pokemon/kadabra/front.png similarity index 100% rename from graphics/pokemon/front_pics/kadabra_still_front_pic.png rename to graphics/pokemon/kadabra/front.png diff --git a/graphics/pokemon/icons/kadabra_icon.png b/graphics/pokemon/kadabra/icon.png similarity index 100% rename from graphics/pokemon/icons/kadabra_icon.png rename to graphics/pokemon/kadabra/icon.png diff --git a/graphics/pokemon/palettes/kadabra_palette.pal b/graphics/pokemon/kadabra/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kadabra_palette.pal rename to graphics/pokemon/kadabra/normal.pal diff --git a/graphics/pokemon/palettes/kadabra_shiny_palette.pal b/graphics/pokemon/kadabra/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kadabra_shiny_palette.pal rename to graphics/pokemon/kadabra/shiny.pal diff --git a/graphics/pokemon/back_pics/kakuna_back_pic.png b/graphics/pokemon/kakuna/back.png similarity index 100% rename from graphics/pokemon/back_pics/kakuna_back_pic.png rename to graphics/pokemon/kakuna/back.png diff --git a/graphics/pokemon/footprints/kakuna_footprint.png b/graphics/pokemon/kakuna/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kakuna_footprint.png rename to graphics/pokemon/kakuna/footprint.png diff --git a/graphics/pokemon/front_pics/kakuna_still_front_pic.png b/graphics/pokemon/kakuna/front.png similarity index 100% rename from graphics/pokemon/front_pics/kakuna_still_front_pic.png rename to graphics/pokemon/kakuna/front.png diff --git a/graphics/pokemon/icons/kakuna_icon.png b/graphics/pokemon/kakuna/icon.png similarity index 100% rename from graphics/pokemon/icons/kakuna_icon.png rename to graphics/pokemon/kakuna/icon.png diff --git a/graphics/pokemon/palettes/kakuna_palette.pal b/graphics/pokemon/kakuna/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kakuna_palette.pal rename to graphics/pokemon/kakuna/normal.pal diff --git a/graphics/pokemon/palettes/kakuna_shiny_palette.pal b/graphics/pokemon/kakuna/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kakuna_shiny_palette.pal rename to graphics/pokemon/kakuna/shiny.pal diff --git a/graphics/pokemon/back_pics/kangaskhan_back_pic.png b/graphics/pokemon/kangaskhan/back.png similarity index 100% rename from graphics/pokemon/back_pics/kangaskhan_back_pic.png rename to graphics/pokemon/kangaskhan/back.png diff --git a/graphics/pokemon/footprints/kangaskhan_footprint.png b/graphics/pokemon/kangaskhan/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kangaskhan_footprint.png rename to graphics/pokemon/kangaskhan/footprint.png diff --git a/graphics/pokemon/front_pics/kangaskhan_still_front_pic.png b/graphics/pokemon/kangaskhan/front.png similarity index 100% rename from graphics/pokemon/front_pics/kangaskhan_still_front_pic.png rename to graphics/pokemon/kangaskhan/front.png diff --git a/graphics/pokemon/icons/kangaskhan_icon.png b/graphics/pokemon/kangaskhan/icon.png similarity index 100% rename from graphics/pokemon/icons/kangaskhan_icon.png rename to graphics/pokemon/kangaskhan/icon.png diff --git a/graphics/pokemon/palettes/kangaskhan_palette.pal b/graphics/pokemon/kangaskhan/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kangaskhan_palette.pal rename to graphics/pokemon/kangaskhan/normal.pal diff --git a/graphics/pokemon/palettes/kangaskhan_shiny_palette.pal b/graphics/pokemon/kangaskhan/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kangaskhan_shiny_palette.pal rename to graphics/pokemon/kangaskhan/shiny.pal diff --git a/graphics/pokemon/back_pics/kecleon_back_pic.png b/graphics/pokemon/kecleon/back.png similarity index 100% rename from graphics/pokemon/back_pics/kecleon_back_pic.png rename to graphics/pokemon/kecleon/back.png diff --git a/graphics/pokemon/footprints/kecleon_footprint.png b/graphics/pokemon/kecleon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kecleon_footprint.png rename to graphics/pokemon/kecleon/footprint.png diff --git a/graphics/pokemon/front_pics/kecleon_still_front_pic.png b/graphics/pokemon/kecleon/front.png similarity index 100% rename from graphics/pokemon/front_pics/kecleon_still_front_pic.png rename to graphics/pokemon/kecleon/front.png diff --git a/graphics/pokemon/icons/kecleon_icon.png b/graphics/pokemon/kecleon/icon.png similarity index 100% rename from graphics/pokemon/icons/kecleon_icon.png rename to graphics/pokemon/kecleon/icon.png diff --git a/graphics/pokemon/palettes/kecleon_palette.pal b/graphics/pokemon/kecleon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kecleon_palette.pal rename to graphics/pokemon/kecleon/normal.pal diff --git a/graphics/pokemon/palettes/kecleon_shiny_palette.pal b/graphics/pokemon/kecleon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kecleon_shiny_palette.pal rename to graphics/pokemon/kecleon/shiny.pal diff --git a/graphics/pokemon/back_pics/kingdra_back_pic.png b/graphics/pokemon/kingdra/back.png similarity index 100% rename from graphics/pokemon/back_pics/kingdra_back_pic.png rename to graphics/pokemon/kingdra/back.png diff --git a/graphics/pokemon/footprints/kingdra_footprint.png b/graphics/pokemon/kingdra/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kingdra_footprint.png rename to graphics/pokemon/kingdra/footprint.png diff --git a/graphics/pokemon/front_pics/kingdra_still_front_pic.png b/graphics/pokemon/kingdra/front.png similarity index 100% rename from graphics/pokemon/front_pics/kingdra_still_front_pic.png rename to graphics/pokemon/kingdra/front.png diff --git a/graphics/pokemon/icons/kingdra_icon.png b/graphics/pokemon/kingdra/icon.png similarity index 100% rename from graphics/pokemon/icons/kingdra_icon.png rename to graphics/pokemon/kingdra/icon.png diff --git a/graphics/pokemon/palettes/kingdra_palette.pal b/graphics/pokemon/kingdra/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kingdra_palette.pal rename to graphics/pokemon/kingdra/normal.pal diff --git a/graphics/pokemon/palettes/kingdra_shiny_palette.pal b/graphics/pokemon/kingdra/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kingdra_shiny_palette.pal rename to graphics/pokemon/kingdra/shiny.pal diff --git a/graphics/pokemon/back_pics/kingler_back_pic.png b/graphics/pokemon/kingler/back.png similarity index 100% rename from graphics/pokemon/back_pics/kingler_back_pic.png rename to graphics/pokemon/kingler/back.png diff --git a/graphics/pokemon/footprints/kingler_footprint.png b/graphics/pokemon/kingler/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kingler_footprint.png rename to graphics/pokemon/kingler/footprint.png diff --git a/graphics/pokemon/front_pics/kingler_still_front_pic.png b/graphics/pokemon/kingler/front.png similarity index 100% rename from graphics/pokemon/front_pics/kingler_still_front_pic.png rename to graphics/pokemon/kingler/front.png diff --git a/graphics/pokemon/icons/kingler_icon.png b/graphics/pokemon/kingler/icon.png similarity index 100% rename from graphics/pokemon/icons/kingler_icon.png rename to graphics/pokemon/kingler/icon.png diff --git a/graphics/pokemon/palettes/kingler_palette.pal b/graphics/pokemon/kingler/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kingler_palette.pal rename to graphics/pokemon/kingler/normal.pal diff --git a/graphics/pokemon/palettes/kingler_shiny_palette.pal b/graphics/pokemon/kingler/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kingler_shiny_palette.pal rename to graphics/pokemon/kingler/shiny.pal diff --git a/graphics/pokemon/back_pics/kirlia_back_pic.png b/graphics/pokemon/kirlia/back.png similarity index 100% rename from graphics/pokemon/back_pics/kirlia_back_pic.png rename to graphics/pokemon/kirlia/back.png diff --git a/graphics/pokemon/footprints/kirlia_footprint.png b/graphics/pokemon/kirlia/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kirlia_footprint.png rename to graphics/pokemon/kirlia/footprint.png diff --git a/graphics/pokemon/front_pics/kirlia_still_front_pic.png b/graphics/pokemon/kirlia/front.png similarity index 100% rename from graphics/pokemon/front_pics/kirlia_still_front_pic.png rename to graphics/pokemon/kirlia/front.png diff --git a/graphics/pokemon/icons/kirlia_icon.png b/graphics/pokemon/kirlia/icon.png similarity index 100% rename from graphics/pokemon/icons/kirlia_icon.png rename to graphics/pokemon/kirlia/icon.png diff --git a/graphics/pokemon/palettes/kirlia_palette.pal b/graphics/pokemon/kirlia/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kirlia_palette.pal rename to graphics/pokemon/kirlia/normal.pal diff --git a/graphics/pokemon/palettes/kirlia_shiny_palette.pal b/graphics/pokemon/kirlia/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kirlia_shiny_palette.pal rename to graphics/pokemon/kirlia/shiny.pal diff --git a/graphics/pokemon/back_pics/koffing_back_pic.png b/graphics/pokemon/koffing/back.png similarity index 100% rename from graphics/pokemon/back_pics/koffing_back_pic.png rename to graphics/pokemon/koffing/back.png diff --git a/graphics/pokemon/footprints/koffing_footprint.png b/graphics/pokemon/koffing/footprint.png similarity index 100% rename from graphics/pokemon/footprints/koffing_footprint.png rename to graphics/pokemon/koffing/footprint.png diff --git a/graphics/pokemon/front_pics/koffing_still_front_pic.png b/graphics/pokemon/koffing/front.png similarity index 100% rename from graphics/pokemon/front_pics/koffing_still_front_pic.png rename to graphics/pokemon/koffing/front.png diff --git a/graphics/pokemon/icons/koffing_icon.png b/graphics/pokemon/koffing/icon.png similarity index 100% rename from graphics/pokemon/icons/koffing_icon.png rename to graphics/pokemon/koffing/icon.png diff --git a/graphics/pokemon/palettes/koffing_palette.pal b/graphics/pokemon/koffing/normal.pal similarity index 100% rename from graphics/pokemon/palettes/koffing_palette.pal rename to graphics/pokemon/koffing/normal.pal diff --git a/graphics/pokemon/palettes/koffing_shiny_palette.pal b/graphics/pokemon/koffing/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/koffing_shiny_palette.pal rename to graphics/pokemon/koffing/shiny.pal diff --git a/graphics/pokemon/back_pics/krabby_back_pic.png b/graphics/pokemon/krabby/back.png similarity index 100% rename from graphics/pokemon/back_pics/krabby_back_pic.png rename to graphics/pokemon/krabby/back.png diff --git a/graphics/pokemon/footprints/krabby_footprint.png b/graphics/pokemon/krabby/footprint.png similarity index 100% rename from graphics/pokemon/footprints/krabby_footprint.png rename to graphics/pokemon/krabby/footprint.png diff --git a/graphics/pokemon/front_pics/krabby_still_front_pic.png b/graphics/pokemon/krabby/front.png similarity index 100% rename from graphics/pokemon/front_pics/krabby_still_front_pic.png rename to graphics/pokemon/krabby/front.png diff --git a/graphics/pokemon/icons/krabby_icon.png b/graphics/pokemon/krabby/icon.png similarity index 100% rename from graphics/pokemon/icons/krabby_icon.png rename to graphics/pokemon/krabby/icon.png diff --git a/graphics/pokemon/palettes/krabby_palette.pal b/graphics/pokemon/krabby/normal.pal similarity index 100% rename from graphics/pokemon/palettes/krabby_palette.pal rename to graphics/pokemon/krabby/normal.pal diff --git a/graphics/pokemon/palettes/krabby_shiny_palette.pal b/graphics/pokemon/krabby/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/krabby_shiny_palette.pal rename to graphics/pokemon/krabby/shiny.pal diff --git a/graphics/pokemon/back_pics/kyogre_back_pic.png b/graphics/pokemon/kyogre/back.png similarity index 100% rename from graphics/pokemon/back_pics/kyogre_back_pic.png rename to graphics/pokemon/kyogre/back.png diff --git a/graphics/pokemon/footprints/kyogre_footprint.png b/graphics/pokemon/kyogre/footprint.png similarity index 100% rename from graphics/pokemon/footprints/kyogre_footprint.png rename to graphics/pokemon/kyogre/footprint.png diff --git a/graphics/pokemon/front_pics/kyogre_still_front_pic.png b/graphics/pokemon/kyogre/front.png similarity index 100% rename from graphics/pokemon/front_pics/kyogre_still_front_pic.png rename to graphics/pokemon/kyogre/front.png diff --git a/graphics/pokemon/icons/kyogre_icon.png b/graphics/pokemon/kyogre/icon.png similarity index 100% rename from graphics/pokemon/icons/kyogre_icon.png rename to graphics/pokemon/kyogre/icon.png diff --git a/graphics/pokemon/palettes/kyogre_palette.pal b/graphics/pokemon/kyogre/normal.pal similarity index 100% rename from graphics/pokemon/palettes/kyogre_palette.pal rename to graphics/pokemon/kyogre/normal.pal diff --git a/graphics/pokemon/palettes/kyogre_shiny_palette.pal b/graphics/pokemon/kyogre/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/kyogre_shiny_palette.pal rename to graphics/pokemon/kyogre/shiny.pal diff --git a/graphics/pokemon/back_pics/lairon_back_pic.png b/graphics/pokemon/lairon/back.png similarity index 100% rename from graphics/pokemon/back_pics/lairon_back_pic.png rename to graphics/pokemon/lairon/back.png diff --git a/graphics/pokemon/footprints/lairon_footprint.png b/graphics/pokemon/lairon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/lairon_footprint.png rename to graphics/pokemon/lairon/footprint.png diff --git a/graphics/pokemon/front_pics/lairon_still_front_pic.png b/graphics/pokemon/lairon/front.png similarity index 100% rename from graphics/pokemon/front_pics/lairon_still_front_pic.png rename to graphics/pokemon/lairon/front.png diff --git a/graphics/pokemon/icons/lairon_icon.png b/graphics/pokemon/lairon/icon.png similarity index 100% rename from graphics/pokemon/icons/lairon_icon.png rename to graphics/pokemon/lairon/icon.png diff --git a/graphics/pokemon/palettes/lairon_palette.pal b/graphics/pokemon/lairon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/lairon_palette.pal rename to graphics/pokemon/lairon/normal.pal diff --git a/graphics/pokemon/palettes/lairon_shiny_palette.pal b/graphics/pokemon/lairon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/lairon_shiny_palette.pal rename to graphics/pokemon/lairon/shiny.pal diff --git a/graphics/pokemon/back_pics/lanturn_back_pic.png b/graphics/pokemon/lanturn/back.png similarity index 100% rename from graphics/pokemon/back_pics/lanturn_back_pic.png rename to graphics/pokemon/lanturn/back.png diff --git a/graphics/pokemon/footprints/lanturn_footprint.png b/graphics/pokemon/lanturn/footprint.png similarity index 100% rename from graphics/pokemon/footprints/lanturn_footprint.png rename to graphics/pokemon/lanturn/footprint.png diff --git a/graphics/pokemon/front_pics/lanturn_still_front_pic.png b/graphics/pokemon/lanturn/front.png similarity index 100% rename from graphics/pokemon/front_pics/lanturn_still_front_pic.png rename to graphics/pokemon/lanturn/front.png diff --git a/graphics/pokemon/icons/lanturn_icon.png b/graphics/pokemon/lanturn/icon.png similarity index 100% rename from graphics/pokemon/icons/lanturn_icon.png rename to graphics/pokemon/lanturn/icon.png diff --git a/graphics/pokemon/palettes/lanturn_palette.pal b/graphics/pokemon/lanturn/normal.pal similarity index 100% rename from graphics/pokemon/palettes/lanturn_palette.pal rename to graphics/pokemon/lanturn/normal.pal diff --git a/graphics/pokemon/palettes/lanturn_shiny_palette.pal b/graphics/pokemon/lanturn/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/lanturn_shiny_palette.pal rename to graphics/pokemon/lanturn/shiny.pal diff --git a/graphics/pokemon/back_pics/lapras_back_pic.png b/graphics/pokemon/lapras/back.png similarity index 100% rename from graphics/pokemon/back_pics/lapras_back_pic.png rename to graphics/pokemon/lapras/back.png diff --git a/graphics/pokemon/footprints/lapras_footprint.png b/graphics/pokemon/lapras/footprint.png similarity index 100% rename from graphics/pokemon/footprints/lapras_footprint.png rename to graphics/pokemon/lapras/footprint.png diff --git a/graphics/pokemon/front_pics/lapras_still_front_pic.png b/graphics/pokemon/lapras/front.png similarity index 100% rename from graphics/pokemon/front_pics/lapras_still_front_pic.png rename to graphics/pokemon/lapras/front.png diff --git a/graphics/pokemon/icons/lapras_icon.png b/graphics/pokemon/lapras/icon.png similarity index 100% rename from graphics/pokemon/icons/lapras_icon.png rename to graphics/pokemon/lapras/icon.png diff --git a/graphics/pokemon/palettes/lapras_palette.pal b/graphics/pokemon/lapras/normal.pal similarity index 100% rename from graphics/pokemon/palettes/lapras_palette.pal rename to graphics/pokemon/lapras/normal.pal diff --git a/graphics/pokemon/palettes/lapras_shiny_palette.pal b/graphics/pokemon/lapras/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/lapras_shiny_palette.pal rename to graphics/pokemon/lapras/shiny.pal diff --git a/graphics/pokemon/back_pics/larvitar_back_pic.png b/graphics/pokemon/larvitar/back.png similarity index 100% rename from graphics/pokemon/back_pics/larvitar_back_pic.png rename to graphics/pokemon/larvitar/back.png diff --git a/graphics/pokemon/footprints/larvitar_footprint.png b/graphics/pokemon/larvitar/footprint.png similarity index 100% rename from graphics/pokemon/footprints/larvitar_footprint.png rename to graphics/pokemon/larvitar/footprint.png diff --git a/graphics/pokemon/front_pics/larvitar_still_front_pic.png b/graphics/pokemon/larvitar/front.png similarity index 100% rename from graphics/pokemon/front_pics/larvitar_still_front_pic.png rename to graphics/pokemon/larvitar/front.png diff --git a/graphics/pokemon/icons/larvitar_icon.png b/graphics/pokemon/larvitar/icon.png similarity index 100% rename from graphics/pokemon/icons/larvitar_icon.png rename to graphics/pokemon/larvitar/icon.png diff --git a/graphics/pokemon/palettes/larvitar_palette.pal b/graphics/pokemon/larvitar/normal.pal similarity index 100% rename from graphics/pokemon/palettes/larvitar_palette.pal rename to graphics/pokemon/larvitar/normal.pal diff --git a/graphics/pokemon/palettes/larvitar_shiny_palette.pal b/graphics/pokemon/larvitar/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/larvitar_shiny_palette.pal rename to graphics/pokemon/larvitar/shiny.pal diff --git a/graphics/pokemon/back_pics/latias_back_pic.png b/graphics/pokemon/latias/back.png similarity index 100% rename from graphics/pokemon/back_pics/latias_back_pic.png rename to graphics/pokemon/latias/back.png diff --git a/graphics/pokemon/footprints/latias_footprint.png b/graphics/pokemon/latias/footprint.png similarity index 100% rename from graphics/pokemon/footprints/latias_footprint.png rename to graphics/pokemon/latias/footprint.png diff --git a/graphics/pokemon/front_pics/latias_still_front_pic.png b/graphics/pokemon/latias/front.png similarity index 100% rename from graphics/pokemon/front_pics/latias_still_front_pic.png rename to graphics/pokemon/latias/front.png diff --git a/graphics/pokemon/icons/latias_icon.png b/graphics/pokemon/latias/icon.png similarity index 100% rename from graphics/pokemon/icons/latias_icon.png rename to graphics/pokemon/latias/icon.png diff --git a/graphics/pokemon/palettes/latias_palette.pal b/graphics/pokemon/latias/normal.pal similarity index 100% rename from graphics/pokemon/palettes/latias_palette.pal rename to graphics/pokemon/latias/normal.pal diff --git a/graphics/pokemon/palettes/latias_shiny_palette.pal b/graphics/pokemon/latias/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/latias_shiny_palette.pal rename to graphics/pokemon/latias/shiny.pal diff --git a/graphics/pokemon/back_pics/latios_back_pic.png b/graphics/pokemon/latios/back.png similarity index 100% rename from graphics/pokemon/back_pics/latios_back_pic.png rename to graphics/pokemon/latios/back.png diff --git a/graphics/pokemon/footprints/latios_footprint.png b/graphics/pokemon/latios/footprint.png similarity index 100% rename from graphics/pokemon/footprints/latios_footprint.png rename to graphics/pokemon/latios/footprint.png diff --git a/graphics/pokemon/front_pics/latios_still_front_pic.png b/graphics/pokemon/latios/front.png similarity index 100% rename from graphics/pokemon/front_pics/latios_still_front_pic.png rename to graphics/pokemon/latios/front.png diff --git a/graphics/pokemon/icons/latios_icon.png b/graphics/pokemon/latios/icon.png similarity index 100% rename from graphics/pokemon/icons/latios_icon.png rename to graphics/pokemon/latios/icon.png diff --git a/graphics/pokemon/palettes/latios_palette.pal b/graphics/pokemon/latios/normal.pal similarity index 100% rename from graphics/pokemon/palettes/latios_palette.pal rename to graphics/pokemon/latios/normal.pal diff --git a/graphics/pokemon/palettes/latios_shiny_palette.pal b/graphics/pokemon/latios/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/latios_shiny_palette.pal rename to graphics/pokemon/latios/shiny.pal diff --git a/graphics/pokemon/back_pics/ledian_back_pic.png b/graphics/pokemon/ledian/back.png similarity index 100% rename from graphics/pokemon/back_pics/ledian_back_pic.png rename to graphics/pokemon/ledian/back.png diff --git a/graphics/pokemon/footprints/ledian_footprint.png b/graphics/pokemon/ledian/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ledian_footprint.png rename to graphics/pokemon/ledian/footprint.png diff --git a/graphics/pokemon/front_pics/ledian_still_front_pic.png b/graphics/pokemon/ledian/front.png similarity index 100% rename from graphics/pokemon/front_pics/ledian_still_front_pic.png rename to graphics/pokemon/ledian/front.png diff --git a/graphics/pokemon/icons/ledian_icon.png b/graphics/pokemon/ledian/icon.png similarity index 100% rename from graphics/pokemon/icons/ledian_icon.png rename to graphics/pokemon/ledian/icon.png diff --git a/graphics/pokemon/palettes/ledian_palette.pal b/graphics/pokemon/ledian/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ledian_palette.pal rename to graphics/pokemon/ledian/normal.pal diff --git a/graphics/pokemon/palettes/ledian_shiny_palette.pal b/graphics/pokemon/ledian/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ledian_shiny_palette.pal rename to graphics/pokemon/ledian/shiny.pal diff --git a/graphics/pokemon/back_pics/ledyba_back_pic.png b/graphics/pokemon/ledyba/back.png similarity index 100% rename from graphics/pokemon/back_pics/ledyba_back_pic.png rename to graphics/pokemon/ledyba/back.png diff --git a/graphics/pokemon/footprints/ledyba_footprint.png b/graphics/pokemon/ledyba/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ledyba_footprint.png rename to graphics/pokemon/ledyba/footprint.png diff --git a/graphics/pokemon/front_pics/ledyba_still_front_pic.png b/graphics/pokemon/ledyba/front.png similarity index 100% rename from graphics/pokemon/front_pics/ledyba_still_front_pic.png rename to graphics/pokemon/ledyba/front.png diff --git a/graphics/pokemon/icons/ledyba_icon.png b/graphics/pokemon/ledyba/icon.png similarity index 100% rename from graphics/pokemon/icons/ledyba_icon.png rename to graphics/pokemon/ledyba/icon.png diff --git a/graphics/pokemon/palettes/ledyba_palette.pal b/graphics/pokemon/ledyba/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ledyba_palette.pal rename to graphics/pokemon/ledyba/normal.pal diff --git a/graphics/pokemon/palettes/ledyba_shiny_palette.pal b/graphics/pokemon/ledyba/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ledyba_shiny_palette.pal rename to graphics/pokemon/ledyba/shiny.pal diff --git a/graphics/pokemon/back_pics/lickitung_back_pic.png b/graphics/pokemon/lickitung/back.png similarity index 100% rename from graphics/pokemon/back_pics/lickitung_back_pic.png rename to graphics/pokemon/lickitung/back.png diff --git a/graphics/pokemon/footprints/lickitung_footprint.png b/graphics/pokemon/lickitung/footprint.png similarity index 100% rename from graphics/pokemon/footprints/lickitung_footprint.png rename to graphics/pokemon/lickitung/footprint.png diff --git a/graphics/pokemon/front_pics/lickitung_still_front_pic.png b/graphics/pokemon/lickitung/front.png similarity index 100% rename from graphics/pokemon/front_pics/lickitung_still_front_pic.png rename to graphics/pokemon/lickitung/front.png diff --git a/graphics/pokemon/icons/lickitung_icon.png b/graphics/pokemon/lickitung/icon.png similarity index 100% rename from graphics/pokemon/icons/lickitung_icon.png rename to graphics/pokemon/lickitung/icon.png diff --git a/graphics/pokemon/palettes/lickitung_palette.pal b/graphics/pokemon/lickitung/normal.pal similarity index 100% rename from graphics/pokemon/palettes/lickitung_palette.pal rename to graphics/pokemon/lickitung/normal.pal diff --git a/graphics/pokemon/palettes/lickitung_shiny_palette.pal b/graphics/pokemon/lickitung/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/lickitung_shiny_palette.pal rename to graphics/pokemon/lickitung/shiny.pal diff --git a/graphics/pokemon/back_pics/lileep_back_pic.png b/graphics/pokemon/lileep/back.png similarity index 100% rename from graphics/pokemon/back_pics/lileep_back_pic.png rename to graphics/pokemon/lileep/back.png diff --git a/graphics/pokemon/footprints/lileep_footprint.png b/graphics/pokemon/lileep/footprint.png similarity index 100% rename from graphics/pokemon/footprints/lileep_footprint.png rename to graphics/pokemon/lileep/footprint.png diff --git a/graphics/pokemon/front_pics/lileep_still_front_pic.png b/graphics/pokemon/lileep/front.png similarity index 100% rename from graphics/pokemon/front_pics/lileep_still_front_pic.png rename to graphics/pokemon/lileep/front.png diff --git a/graphics/pokemon/icons/lileep_icon.png b/graphics/pokemon/lileep/icon.png similarity index 100% rename from graphics/pokemon/icons/lileep_icon.png rename to graphics/pokemon/lileep/icon.png diff --git a/graphics/pokemon/palettes/lileep_palette.pal b/graphics/pokemon/lileep/normal.pal similarity index 100% rename from graphics/pokemon/palettes/lileep_palette.pal rename to graphics/pokemon/lileep/normal.pal diff --git a/graphics/pokemon/palettes/lileep_shiny_palette.pal b/graphics/pokemon/lileep/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/lileep_shiny_palette.pal rename to graphics/pokemon/lileep/shiny.pal diff --git a/graphics/pokemon/back_pics/linoone_back_pic.png b/graphics/pokemon/linoone/back.png similarity index 100% rename from graphics/pokemon/back_pics/linoone_back_pic.png rename to graphics/pokemon/linoone/back.png diff --git a/graphics/pokemon/footprints/linoone_footprint.png b/graphics/pokemon/linoone/footprint.png similarity index 100% rename from graphics/pokemon/footprints/linoone_footprint.png rename to graphics/pokemon/linoone/footprint.png diff --git a/graphics/pokemon/front_pics/linoone_still_front_pic.png b/graphics/pokemon/linoone/front.png similarity index 100% rename from graphics/pokemon/front_pics/linoone_still_front_pic.png rename to graphics/pokemon/linoone/front.png diff --git a/graphics/pokemon/icons/linoone_icon.png b/graphics/pokemon/linoone/icon.png similarity index 100% rename from graphics/pokemon/icons/linoone_icon.png rename to graphics/pokemon/linoone/icon.png diff --git a/graphics/pokemon/palettes/linoone_palette.pal b/graphics/pokemon/linoone/normal.pal similarity index 100% rename from graphics/pokemon/palettes/linoone_palette.pal rename to graphics/pokemon/linoone/normal.pal diff --git a/graphics/pokemon/palettes/linoone_shiny_palette.pal b/graphics/pokemon/linoone/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/linoone_shiny_palette.pal rename to graphics/pokemon/linoone/shiny.pal diff --git a/graphics/pokemon/back_pics/lombre_back_pic.png b/graphics/pokemon/lombre/back.png similarity index 100% rename from graphics/pokemon/back_pics/lombre_back_pic.png rename to graphics/pokemon/lombre/back.png diff --git a/graphics/pokemon/footprints/lombre_footprint.png b/graphics/pokemon/lombre/footprint.png similarity index 100% rename from graphics/pokemon/footprints/lombre_footprint.png rename to graphics/pokemon/lombre/footprint.png diff --git a/graphics/pokemon/front_pics/lombre_still_front_pic.png b/graphics/pokemon/lombre/front.png similarity index 100% rename from graphics/pokemon/front_pics/lombre_still_front_pic.png rename to graphics/pokemon/lombre/front.png diff --git a/graphics/pokemon/icons/lombre_icon.png b/graphics/pokemon/lombre/icon.png similarity index 100% rename from graphics/pokemon/icons/lombre_icon.png rename to graphics/pokemon/lombre/icon.png diff --git a/graphics/pokemon/palettes/lombre_palette.pal b/graphics/pokemon/lombre/normal.pal similarity index 100% rename from graphics/pokemon/palettes/lombre_palette.pal rename to graphics/pokemon/lombre/normal.pal diff --git a/graphics/pokemon/palettes/lombre_shiny_palette.pal b/graphics/pokemon/lombre/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/lombre_shiny_palette.pal rename to graphics/pokemon/lombre/shiny.pal diff --git a/graphics/pokemon/back_pics/lotad_back_pic.png b/graphics/pokemon/lotad/back.png similarity index 100% rename from graphics/pokemon/back_pics/lotad_back_pic.png rename to graphics/pokemon/lotad/back.png diff --git a/graphics/pokemon/footprints/lotad_footprint.png b/graphics/pokemon/lotad/footprint.png similarity index 100% rename from graphics/pokemon/footprints/lotad_footprint.png rename to graphics/pokemon/lotad/footprint.png diff --git a/graphics/pokemon/front_pics/lotad_still_front_pic.png b/graphics/pokemon/lotad/front.png similarity index 100% rename from graphics/pokemon/front_pics/lotad_still_front_pic.png rename to graphics/pokemon/lotad/front.png diff --git a/graphics/pokemon/icons/lotad_icon.png b/graphics/pokemon/lotad/icon.png similarity index 100% rename from graphics/pokemon/icons/lotad_icon.png rename to graphics/pokemon/lotad/icon.png diff --git a/graphics/pokemon/palettes/lotad_palette.pal b/graphics/pokemon/lotad/normal.pal similarity index 100% rename from graphics/pokemon/palettes/lotad_palette.pal rename to graphics/pokemon/lotad/normal.pal diff --git a/graphics/pokemon/palettes/lotad_shiny_palette.pal b/graphics/pokemon/lotad/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/lotad_shiny_palette.pal rename to graphics/pokemon/lotad/shiny.pal diff --git a/graphics/pokemon/back_pics/loudred_back_pic.png b/graphics/pokemon/loudred/back.png similarity index 100% rename from graphics/pokemon/back_pics/loudred_back_pic.png rename to graphics/pokemon/loudred/back.png diff --git a/graphics/pokemon/footprints/loudred_footprint.png b/graphics/pokemon/loudred/footprint.png similarity index 100% rename from graphics/pokemon/footprints/loudred_footprint.png rename to graphics/pokemon/loudred/footprint.png diff --git a/graphics/pokemon/front_pics/loudred_still_front_pic.png b/graphics/pokemon/loudred/front.png similarity index 100% rename from graphics/pokemon/front_pics/loudred_still_front_pic.png rename to graphics/pokemon/loudred/front.png diff --git a/graphics/pokemon/icons/loudred_icon.png b/graphics/pokemon/loudred/icon.png similarity index 100% rename from graphics/pokemon/icons/loudred_icon.png rename to graphics/pokemon/loudred/icon.png diff --git a/graphics/pokemon/palettes/loudred_palette.pal b/graphics/pokemon/loudred/normal.pal similarity index 100% rename from graphics/pokemon/palettes/loudred_palette.pal rename to graphics/pokemon/loudred/normal.pal diff --git a/graphics/pokemon/palettes/loudred_shiny_palette.pal b/graphics/pokemon/loudred/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/loudred_shiny_palette.pal rename to graphics/pokemon/loudred/shiny.pal diff --git a/graphics/pokemon/back_pics/ludicolo_back_pic.png b/graphics/pokemon/ludicolo/back.png similarity index 100% rename from graphics/pokemon/back_pics/ludicolo_back_pic.png rename to graphics/pokemon/ludicolo/back.png diff --git a/graphics/pokemon/footprints/ludicolo_footprint.png b/graphics/pokemon/ludicolo/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ludicolo_footprint.png rename to graphics/pokemon/ludicolo/footprint.png diff --git a/graphics/pokemon/front_pics/ludicolo_still_front_pic.png b/graphics/pokemon/ludicolo/front.png similarity index 100% rename from graphics/pokemon/front_pics/ludicolo_still_front_pic.png rename to graphics/pokemon/ludicolo/front.png diff --git a/graphics/pokemon/icons/ludicolo_icon.png b/graphics/pokemon/ludicolo/icon.png similarity index 100% rename from graphics/pokemon/icons/ludicolo_icon.png rename to graphics/pokemon/ludicolo/icon.png diff --git a/graphics/pokemon/palettes/ludicolo_palette.pal b/graphics/pokemon/ludicolo/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ludicolo_palette.pal rename to graphics/pokemon/ludicolo/normal.pal diff --git a/graphics/pokemon/palettes/ludicolo_shiny_palette.pal b/graphics/pokemon/ludicolo/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ludicolo_shiny_palette.pal rename to graphics/pokemon/ludicolo/shiny.pal diff --git a/graphics/pokemon/back_pics/lugia_back_pic.png b/graphics/pokemon/lugia/back.png similarity index 100% rename from graphics/pokemon/back_pics/lugia_back_pic.png rename to graphics/pokemon/lugia/back.png diff --git a/graphics/pokemon/footprints/lugia_footprint.png b/graphics/pokemon/lugia/footprint.png similarity index 100% rename from graphics/pokemon/footprints/lugia_footprint.png rename to graphics/pokemon/lugia/footprint.png diff --git a/graphics/pokemon/front_pics/lugia_still_front_pic.png b/graphics/pokemon/lugia/front.png similarity index 100% rename from graphics/pokemon/front_pics/lugia_still_front_pic.png rename to graphics/pokemon/lugia/front.png diff --git a/graphics/pokemon/icons/lugia_icon.png b/graphics/pokemon/lugia/icon.png similarity index 100% rename from graphics/pokemon/icons/lugia_icon.png rename to graphics/pokemon/lugia/icon.png diff --git a/graphics/pokemon/palettes/lugia_palette.pal b/graphics/pokemon/lugia/normal.pal similarity index 100% rename from graphics/pokemon/palettes/lugia_palette.pal rename to graphics/pokemon/lugia/normal.pal diff --git a/graphics/pokemon/palettes/lugia_shiny_palette.pal b/graphics/pokemon/lugia/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/lugia_shiny_palette.pal rename to graphics/pokemon/lugia/shiny.pal diff --git a/graphics/pokemon/back_pics/lunatone_back_pic.png b/graphics/pokemon/lunatone/back.png similarity index 100% rename from graphics/pokemon/back_pics/lunatone_back_pic.png rename to graphics/pokemon/lunatone/back.png diff --git a/graphics/pokemon/footprints/lunatone_footprint.png b/graphics/pokemon/lunatone/footprint.png similarity index 100% rename from graphics/pokemon/footprints/lunatone_footprint.png rename to graphics/pokemon/lunatone/footprint.png diff --git a/graphics/pokemon/front_pics/lunatone_still_front_pic.png b/graphics/pokemon/lunatone/front.png similarity index 100% rename from graphics/pokemon/front_pics/lunatone_still_front_pic.png rename to graphics/pokemon/lunatone/front.png diff --git a/graphics/pokemon/icons/lunatone_icon.png b/graphics/pokemon/lunatone/icon.png similarity index 100% rename from graphics/pokemon/icons/lunatone_icon.png rename to graphics/pokemon/lunatone/icon.png diff --git a/graphics/pokemon/palettes/lunatone_palette.pal b/graphics/pokemon/lunatone/normal.pal similarity index 100% rename from graphics/pokemon/palettes/lunatone_palette.pal rename to graphics/pokemon/lunatone/normal.pal diff --git a/graphics/pokemon/palettes/lunatone_shiny_palette.pal b/graphics/pokemon/lunatone/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/lunatone_shiny_palette.pal rename to graphics/pokemon/lunatone/shiny.pal diff --git a/graphics/pokemon/back_pics/luvdisc_back_pic.png b/graphics/pokemon/luvdisc/back.png similarity index 100% rename from graphics/pokemon/back_pics/luvdisc_back_pic.png rename to graphics/pokemon/luvdisc/back.png diff --git a/graphics/pokemon/footprints/luvdisc_footprint.png b/graphics/pokemon/luvdisc/footprint.png similarity index 100% rename from graphics/pokemon/footprints/luvdisc_footprint.png rename to graphics/pokemon/luvdisc/footprint.png diff --git a/graphics/pokemon/front_pics/luvdisc_still_front_pic.png b/graphics/pokemon/luvdisc/front.png similarity index 100% rename from graphics/pokemon/front_pics/luvdisc_still_front_pic.png rename to graphics/pokemon/luvdisc/front.png diff --git a/graphics/pokemon/icons/luvdisc_icon.png b/graphics/pokemon/luvdisc/icon.png similarity index 100% rename from graphics/pokemon/icons/luvdisc_icon.png rename to graphics/pokemon/luvdisc/icon.png diff --git a/graphics/pokemon/palettes/luvdisc_palette.pal b/graphics/pokemon/luvdisc/normal.pal similarity index 100% rename from graphics/pokemon/palettes/luvdisc_palette.pal rename to graphics/pokemon/luvdisc/normal.pal diff --git a/graphics/pokemon/palettes/luvdisc_shiny_palette.pal b/graphics/pokemon/luvdisc/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/luvdisc_shiny_palette.pal rename to graphics/pokemon/luvdisc/shiny.pal diff --git a/graphics/pokemon/back_pics/machamp_back_pic.png b/graphics/pokemon/machamp/back.png similarity index 100% rename from graphics/pokemon/back_pics/machamp_back_pic.png rename to graphics/pokemon/machamp/back.png diff --git a/graphics/pokemon/footprints/machamp_footprint.png b/graphics/pokemon/machamp/footprint.png similarity index 100% rename from graphics/pokemon/footprints/machamp_footprint.png rename to graphics/pokemon/machamp/footprint.png diff --git a/graphics/pokemon/front_pics/machamp_still_front_pic.png b/graphics/pokemon/machamp/front.png similarity index 100% rename from graphics/pokemon/front_pics/machamp_still_front_pic.png rename to graphics/pokemon/machamp/front.png diff --git a/graphics/pokemon/icons/machamp_icon.png b/graphics/pokemon/machamp/icon.png similarity index 100% rename from graphics/pokemon/icons/machamp_icon.png rename to graphics/pokemon/machamp/icon.png diff --git a/graphics/pokemon/palettes/machamp_palette.pal b/graphics/pokemon/machamp/normal.pal similarity index 100% rename from graphics/pokemon/palettes/machamp_palette.pal rename to graphics/pokemon/machamp/normal.pal diff --git a/graphics/pokemon/palettes/machamp_shiny_palette.pal b/graphics/pokemon/machamp/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/machamp_shiny_palette.pal rename to graphics/pokemon/machamp/shiny.pal diff --git a/graphics/pokemon/back_pics/machoke_back_pic.png b/graphics/pokemon/machoke/back.png similarity index 100% rename from graphics/pokemon/back_pics/machoke_back_pic.png rename to graphics/pokemon/machoke/back.png diff --git a/graphics/pokemon/footprints/machoke_footprint.png b/graphics/pokemon/machoke/footprint.png similarity index 100% rename from graphics/pokemon/footprints/machoke_footprint.png rename to graphics/pokemon/machoke/footprint.png diff --git a/graphics/pokemon/front_pics/machoke_still_front_pic.png b/graphics/pokemon/machoke/front.png similarity index 100% rename from graphics/pokemon/front_pics/machoke_still_front_pic.png rename to graphics/pokemon/machoke/front.png diff --git a/graphics/pokemon/icons/machoke_icon.png b/graphics/pokemon/machoke/icon.png similarity index 100% rename from graphics/pokemon/icons/machoke_icon.png rename to graphics/pokemon/machoke/icon.png diff --git a/graphics/pokemon/palettes/machoke_palette.pal b/graphics/pokemon/machoke/normal.pal similarity index 100% rename from graphics/pokemon/palettes/machoke_palette.pal rename to graphics/pokemon/machoke/normal.pal diff --git a/graphics/pokemon/palettes/machoke_shiny_palette.pal b/graphics/pokemon/machoke/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/machoke_shiny_palette.pal rename to graphics/pokemon/machoke/shiny.pal diff --git a/graphics/pokemon/back_pics/machop_back_pic.png b/graphics/pokemon/machop/back.png similarity index 100% rename from graphics/pokemon/back_pics/machop_back_pic.png rename to graphics/pokemon/machop/back.png diff --git a/graphics/pokemon/footprints/machop_footprint.png b/graphics/pokemon/machop/footprint.png similarity index 100% rename from graphics/pokemon/footprints/machop_footprint.png rename to graphics/pokemon/machop/footprint.png diff --git a/graphics/pokemon/front_pics/machop_still_front_pic.png b/graphics/pokemon/machop/front.png similarity index 100% rename from graphics/pokemon/front_pics/machop_still_front_pic.png rename to graphics/pokemon/machop/front.png diff --git a/graphics/pokemon/icons/machop_icon.png b/graphics/pokemon/machop/icon.png similarity index 100% rename from graphics/pokemon/icons/machop_icon.png rename to graphics/pokemon/machop/icon.png diff --git a/graphics/pokemon/palettes/machop_palette.pal b/graphics/pokemon/machop/normal.pal similarity index 100% rename from graphics/pokemon/palettes/machop_palette.pal rename to graphics/pokemon/machop/normal.pal diff --git a/graphics/pokemon/palettes/machop_shiny_palette.pal b/graphics/pokemon/machop/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/machop_shiny_palette.pal rename to graphics/pokemon/machop/shiny.pal diff --git a/graphics/pokemon/back_pics/magby_back_pic.png b/graphics/pokemon/magby/back.png similarity index 100% rename from graphics/pokemon/back_pics/magby_back_pic.png rename to graphics/pokemon/magby/back.png diff --git a/graphics/pokemon/footprints/magby_footprint.png b/graphics/pokemon/magby/footprint.png similarity index 100% rename from graphics/pokemon/footprints/magby_footprint.png rename to graphics/pokemon/magby/footprint.png diff --git a/graphics/pokemon/front_pics/magby_still_front_pic.png b/graphics/pokemon/magby/front.png similarity index 100% rename from graphics/pokemon/front_pics/magby_still_front_pic.png rename to graphics/pokemon/magby/front.png diff --git a/graphics/pokemon/icons/magby_icon.png b/graphics/pokemon/magby/icon.png similarity index 100% rename from graphics/pokemon/icons/magby_icon.png rename to graphics/pokemon/magby/icon.png diff --git a/graphics/pokemon/palettes/magby_palette.pal b/graphics/pokemon/magby/normal.pal similarity index 100% rename from graphics/pokemon/palettes/magby_palette.pal rename to graphics/pokemon/magby/normal.pal diff --git a/graphics/pokemon/palettes/magby_shiny_palette.pal b/graphics/pokemon/magby/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/magby_shiny_palette.pal rename to graphics/pokemon/magby/shiny.pal diff --git a/graphics/pokemon/back_pics/magcargo_back_pic.png b/graphics/pokemon/magcargo/back.png similarity index 100% rename from graphics/pokemon/back_pics/magcargo_back_pic.png rename to graphics/pokemon/magcargo/back.png diff --git a/graphics/pokemon/footprints/magcargo_footprint.png b/graphics/pokemon/magcargo/footprint.png similarity index 100% rename from graphics/pokemon/footprints/magcargo_footprint.png rename to graphics/pokemon/magcargo/footprint.png diff --git a/graphics/pokemon/front_pics/magcargo_still_front_pic.png b/graphics/pokemon/magcargo/front.png similarity index 100% rename from graphics/pokemon/front_pics/magcargo_still_front_pic.png rename to graphics/pokemon/magcargo/front.png diff --git a/graphics/pokemon/icons/magcargo_icon.png b/graphics/pokemon/magcargo/icon.png similarity index 100% rename from graphics/pokemon/icons/magcargo_icon.png rename to graphics/pokemon/magcargo/icon.png diff --git a/graphics/pokemon/palettes/magcargo_palette.pal b/graphics/pokemon/magcargo/normal.pal similarity index 100% rename from graphics/pokemon/palettes/magcargo_palette.pal rename to graphics/pokemon/magcargo/normal.pal diff --git a/graphics/pokemon/palettes/magcargo_shiny_palette.pal b/graphics/pokemon/magcargo/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/magcargo_shiny_palette.pal rename to graphics/pokemon/magcargo/shiny.pal diff --git a/graphics/pokemon/back_pics/magikarp_back_pic.png b/graphics/pokemon/magikarp/back.png similarity index 100% rename from graphics/pokemon/back_pics/magikarp_back_pic.png rename to graphics/pokemon/magikarp/back.png diff --git a/graphics/pokemon/footprints/magikarp_footprint.png b/graphics/pokemon/magikarp/footprint.png similarity index 100% rename from graphics/pokemon/footprints/magikarp_footprint.png rename to graphics/pokemon/magikarp/footprint.png diff --git a/graphics/pokemon/front_pics/magikarp_still_front_pic.png b/graphics/pokemon/magikarp/front.png similarity index 100% rename from graphics/pokemon/front_pics/magikarp_still_front_pic.png rename to graphics/pokemon/magikarp/front.png diff --git a/graphics/pokemon/icons/magikarp_icon.png b/graphics/pokemon/magikarp/icon.png similarity index 100% rename from graphics/pokemon/icons/magikarp_icon.png rename to graphics/pokemon/magikarp/icon.png diff --git a/graphics/pokemon/palettes/magikarp_palette.pal b/graphics/pokemon/magikarp/normal.pal similarity index 100% rename from graphics/pokemon/palettes/magikarp_palette.pal rename to graphics/pokemon/magikarp/normal.pal diff --git a/graphics/pokemon/palettes/magikarp_shiny_palette.pal b/graphics/pokemon/magikarp/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/magikarp_shiny_palette.pal rename to graphics/pokemon/magikarp/shiny.pal diff --git a/graphics/pokemon/back_pics/magmar_back_pic.png b/graphics/pokemon/magmar/back.png similarity index 100% rename from graphics/pokemon/back_pics/magmar_back_pic.png rename to graphics/pokemon/magmar/back.png diff --git a/graphics/pokemon/footprints/magmar_footprint.png b/graphics/pokemon/magmar/footprint.png similarity index 100% rename from graphics/pokemon/footprints/magmar_footprint.png rename to graphics/pokemon/magmar/footprint.png diff --git a/graphics/pokemon/front_pics/magmar_still_front_pic.png b/graphics/pokemon/magmar/front.png similarity index 100% rename from graphics/pokemon/front_pics/magmar_still_front_pic.png rename to graphics/pokemon/magmar/front.png diff --git a/graphics/pokemon/icons/magmar_icon.png b/graphics/pokemon/magmar/icon.png similarity index 100% rename from graphics/pokemon/icons/magmar_icon.png rename to graphics/pokemon/magmar/icon.png diff --git a/graphics/pokemon/palettes/magmar_palette.pal b/graphics/pokemon/magmar/normal.pal similarity index 100% rename from graphics/pokemon/palettes/magmar_palette.pal rename to graphics/pokemon/magmar/normal.pal diff --git a/graphics/pokemon/palettes/magmar_shiny_palette.pal b/graphics/pokemon/magmar/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/magmar_shiny_palette.pal rename to graphics/pokemon/magmar/shiny.pal diff --git a/graphics/pokemon/back_pics/magnemite_back_pic.png b/graphics/pokemon/magnemite/back.png similarity index 100% rename from graphics/pokemon/back_pics/magnemite_back_pic.png rename to graphics/pokemon/magnemite/back.png diff --git a/graphics/pokemon/footprints/magnemite_footprint.png b/graphics/pokemon/magnemite/footprint.png similarity index 100% rename from graphics/pokemon/footprints/magnemite_footprint.png rename to graphics/pokemon/magnemite/footprint.png diff --git a/graphics/pokemon/front_pics/magnemite_still_front_pic.png b/graphics/pokemon/magnemite/front.png similarity index 100% rename from graphics/pokemon/front_pics/magnemite_still_front_pic.png rename to graphics/pokemon/magnemite/front.png diff --git a/graphics/pokemon/icons/magnemite_icon.png b/graphics/pokemon/magnemite/icon.png similarity index 100% rename from graphics/pokemon/icons/magnemite_icon.png rename to graphics/pokemon/magnemite/icon.png diff --git a/graphics/pokemon/palettes/magnemite_palette.pal b/graphics/pokemon/magnemite/normal.pal similarity index 100% rename from graphics/pokemon/palettes/magnemite_palette.pal rename to graphics/pokemon/magnemite/normal.pal diff --git a/graphics/pokemon/palettes/magnemite_shiny_palette.pal b/graphics/pokemon/magnemite/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/magnemite_shiny_palette.pal rename to graphics/pokemon/magnemite/shiny.pal diff --git a/graphics/pokemon/back_pics/magneton_back_pic.png b/graphics/pokemon/magneton/back.png similarity index 100% rename from graphics/pokemon/back_pics/magneton_back_pic.png rename to graphics/pokemon/magneton/back.png diff --git a/graphics/pokemon/footprints/magneton_footprint.png b/graphics/pokemon/magneton/footprint.png similarity index 100% rename from graphics/pokemon/footprints/magneton_footprint.png rename to graphics/pokemon/magneton/footprint.png diff --git a/graphics/pokemon/front_pics/magneton_still_front_pic.png b/graphics/pokemon/magneton/front.png similarity index 100% rename from graphics/pokemon/front_pics/magneton_still_front_pic.png rename to graphics/pokemon/magneton/front.png diff --git a/graphics/pokemon/icons/magneton_icon.png b/graphics/pokemon/magneton/icon.png similarity index 100% rename from graphics/pokemon/icons/magneton_icon.png rename to graphics/pokemon/magneton/icon.png diff --git a/graphics/pokemon/palettes/magneton_palette.pal b/graphics/pokemon/magneton/normal.pal similarity index 100% rename from graphics/pokemon/palettes/magneton_palette.pal rename to graphics/pokemon/magneton/normal.pal diff --git a/graphics/pokemon/palettes/magneton_shiny_palette.pal b/graphics/pokemon/magneton/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/magneton_shiny_palette.pal rename to graphics/pokemon/magneton/shiny.pal diff --git a/graphics/pokemon/back_pics/makuhita_back_pic.png b/graphics/pokemon/makuhita/back.png similarity index 100% rename from graphics/pokemon/back_pics/makuhita_back_pic.png rename to graphics/pokemon/makuhita/back.png diff --git a/graphics/pokemon/footprints/makuhita_footprint.png b/graphics/pokemon/makuhita/footprint.png similarity index 100% rename from graphics/pokemon/footprints/makuhita_footprint.png rename to graphics/pokemon/makuhita/footprint.png diff --git a/graphics/pokemon/front_pics/makuhita_still_front_pic.png b/graphics/pokemon/makuhita/front.png similarity index 100% rename from graphics/pokemon/front_pics/makuhita_still_front_pic.png rename to graphics/pokemon/makuhita/front.png diff --git a/graphics/pokemon/icons/makuhita_icon.png b/graphics/pokemon/makuhita/icon.png similarity index 100% rename from graphics/pokemon/icons/makuhita_icon.png rename to graphics/pokemon/makuhita/icon.png diff --git a/graphics/pokemon/palettes/makuhita_palette.pal b/graphics/pokemon/makuhita/normal.pal similarity index 100% rename from graphics/pokemon/palettes/makuhita_palette.pal rename to graphics/pokemon/makuhita/normal.pal diff --git a/graphics/pokemon/palettes/makuhita_shiny_palette.pal b/graphics/pokemon/makuhita/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/makuhita_shiny_palette.pal rename to graphics/pokemon/makuhita/shiny.pal diff --git a/graphics/pokemon/back_pics/manectric_back_pic.png b/graphics/pokemon/manectric/back.png similarity index 100% rename from graphics/pokemon/back_pics/manectric_back_pic.png rename to graphics/pokemon/manectric/back.png diff --git a/graphics/pokemon/footprints/manectric_footprint.png b/graphics/pokemon/manectric/footprint.png similarity index 100% rename from graphics/pokemon/footprints/manectric_footprint.png rename to graphics/pokemon/manectric/footprint.png diff --git a/graphics/pokemon/front_pics/manectric_still_front_pic.png b/graphics/pokemon/manectric/front.png similarity index 100% rename from graphics/pokemon/front_pics/manectric_still_front_pic.png rename to graphics/pokemon/manectric/front.png diff --git a/graphics/pokemon/icons/manectric_icon.png b/graphics/pokemon/manectric/icon.png similarity index 100% rename from graphics/pokemon/icons/manectric_icon.png rename to graphics/pokemon/manectric/icon.png diff --git a/graphics/pokemon/palettes/manectric_palette.pal b/graphics/pokemon/manectric/normal.pal similarity index 100% rename from graphics/pokemon/palettes/manectric_palette.pal rename to graphics/pokemon/manectric/normal.pal diff --git a/graphics/pokemon/palettes/manectric_shiny_palette.pal b/graphics/pokemon/manectric/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/manectric_shiny_palette.pal rename to graphics/pokemon/manectric/shiny.pal diff --git a/graphics/pokemon/back_pics/mankey_back_pic.png b/graphics/pokemon/mankey/back.png similarity index 100% rename from graphics/pokemon/back_pics/mankey_back_pic.png rename to graphics/pokemon/mankey/back.png diff --git a/graphics/pokemon/footprints/mankey_footprint.png b/graphics/pokemon/mankey/footprint.png similarity index 100% rename from graphics/pokemon/footprints/mankey_footprint.png rename to graphics/pokemon/mankey/footprint.png diff --git a/graphics/pokemon/front_pics/mankey_still_front_pic.png b/graphics/pokemon/mankey/front.png similarity index 100% rename from graphics/pokemon/front_pics/mankey_still_front_pic.png rename to graphics/pokemon/mankey/front.png diff --git a/graphics/pokemon/icons/mankey_icon.png b/graphics/pokemon/mankey/icon.png similarity index 100% rename from graphics/pokemon/icons/mankey_icon.png rename to graphics/pokemon/mankey/icon.png diff --git a/graphics/pokemon/palettes/mankey_palette.pal b/graphics/pokemon/mankey/normal.pal similarity index 100% rename from graphics/pokemon/palettes/mankey_palette.pal rename to graphics/pokemon/mankey/normal.pal diff --git a/graphics/pokemon/palettes/mankey_shiny_palette.pal b/graphics/pokemon/mankey/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/mankey_shiny_palette.pal rename to graphics/pokemon/mankey/shiny.pal diff --git a/graphics/pokemon/back_pics/mantine_back_pic.png b/graphics/pokemon/mantine/back.png similarity index 100% rename from graphics/pokemon/back_pics/mantine_back_pic.png rename to graphics/pokemon/mantine/back.png diff --git a/graphics/pokemon/footprints/mantine_footprint.png b/graphics/pokemon/mantine/footprint.png similarity index 100% rename from graphics/pokemon/footprints/mantine_footprint.png rename to graphics/pokemon/mantine/footprint.png diff --git a/graphics/pokemon/front_pics/mantine_still_front_pic.png b/graphics/pokemon/mantine/front.png similarity index 100% rename from graphics/pokemon/front_pics/mantine_still_front_pic.png rename to graphics/pokemon/mantine/front.png diff --git a/graphics/pokemon/icons/mantine_icon.png b/graphics/pokemon/mantine/icon.png similarity index 100% rename from graphics/pokemon/icons/mantine_icon.png rename to graphics/pokemon/mantine/icon.png diff --git a/graphics/pokemon/palettes/mantine_palette.pal b/graphics/pokemon/mantine/normal.pal similarity index 100% rename from graphics/pokemon/palettes/mantine_palette.pal rename to graphics/pokemon/mantine/normal.pal diff --git a/graphics/pokemon/palettes/mantine_shiny_palette.pal b/graphics/pokemon/mantine/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/mantine_shiny_palette.pal rename to graphics/pokemon/mantine/shiny.pal diff --git a/graphics/pokemon/back_pics/mareep_back_pic.png b/graphics/pokemon/mareep/back.png similarity index 100% rename from graphics/pokemon/back_pics/mareep_back_pic.png rename to graphics/pokemon/mareep/back.png diff --git a/graphics/pokemon/footprints/mareep_footprint.png b/graphics/pokemon/mareep/footprint.png similarity index 100% rename from graphics/pokemon/footprints/mareep_footprint.png rename to graphics/pokemon/mareep/footprint.png diff --git a/graphics/pokemon/front_pics/mareep_still_front_pic.png b/graphics/pokemon/mareep/front.png similarity index 100% rename from graphics/pokemon/front_pics/mareep_still_front_pic.png rename to graphics/pokemon/mareep/front.png diff --git a/graphics/pokemon/icons/mareep_icon.png b/graphics/pokemon/mareep/icon.png similarity index 100% rename from graphics/pokemon/icons/mareep_icon.png rename to graphics/pokemon/mareep/icon.png diff --git a/graphics/pokemon/palettes/mareep_palette.pal b/graphics/pokemon/mareep/normal.pal similarity index 100% rename from graphics/pokemon/palettes/mareep_palette.pal rename to graphics/pokemon/mareep/normal.pal diff --git a/graphics/pokemon/palettes/mareep_shiny_palette.pal b/graphics/pokemon/mareep/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/mareep_shiny_palette.pal rename to graphics/pokemon/mareep/shiny.pal diff --git a/graphics/pokemon/back_pics/marill_back_pic.png b/graphics/pokemon/marill/back.png similarity index 100% rename from graphics/pokemon/back_pics/marill_back_pic.png rename to graphics/pokemon/marill/back.png diff --git a/graphics/pokemon/footprints/marill_footprint.png b/graphics/pokemon/marill/footprint.png similarity index 100% rename from graphics/pokemon/footprints/marill_footprint.png rename to graphics/pokemon/marill/footprint.png diff --git a/graphics/pokemon/front_pics/marill_still_front_pic.png b/graphics/pokemon/marill/front.png similarity index 100% rename from graphics/pokemon/front_pics/marill_still_front_pic.png rename to graphics/pokemon/marill/front.png diff --git a/graphics/pokemon/icons/marill_icon.png b/graphics/pokemon/marill/icon.png similarity index 100% rename from graphics/pokemon/icons/marill_icon.png rename to graphics/pokemon/marill/icon.png diff --git a/graphics/pokemon/palettes/marill_palette.pal b/graphics/pokemon/marill/normal.pal similarity index 100% rename from graphics/pokemon/palettes/marill_palette.pal rename to graphics/pokemon/marill/normal.pal diff --git a/graphics/pokemon/palettes/marill_shiny_palette.pal b/graphics/pokemon/marill/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/marill_shiny_palette.pal rename to graphics/pokemon/marill/shiny.pal diff --git a/graphics/pokemon/back_pics/marowak_back_pic.png b/graphics/pokemon/marowak/back.png similarity index 100% rename from graphics/pokemon/back_pics/marowak_back_pic.png rename to graphics/pokemon/marowak/back.png diff --git a/graphics/pokemon/footprints/marowak_footprint.png b/graphics/pokemon/marowak/footprint.png similarity index 100% rename from graphics/pokemon/footprints/marowak_footprint.png rename to graphics/pokemon/marowak/footprint.png diff --git a/graphics/pokemon/front_pics/marowak_still_front_pic.png b/graphics/pokemon/marowak/front.png similarity index 100% rename from graphics/pokemon/front_pics/marowak_still_front_pic.png rename to graphics/pokemon/marowak/front.png diff --git a/graphics/pokemon/icons/marowak_icon.png b/graphics/pokemon/marowak/icon.png similarity index 100% rename from graphics/pokemon/icons/marowak_icon.png rename to graphics/pokemon/marowak/icon.png diff --git a/graphics/pokemon/palettes/marowak_palette.pal b/graphics/pokemon/marowak/normal.pal similarity index 100% rename from graphics/pokemon/palettes/marowak_palette.pal rename to graphics/pokemon/marowak/normal.pal diff --git a/graphics/pokemon/palettes/marowak_shiny_palette.pal b/graphics/pokemon/marowak/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/marowak_shiny_palette.pal rename to graphics/pokemon/marowak/shiny.pal diff --git a/graphics/pokemon/back_pics/marshtomp_back_pic.png b/graphics/pokemon/marshtomp/back.png similarity index 100% rename from graphics/pokemon/back_pics/marshtomp_back_pic.png rename to graphics/pokemon/marshtomp/back.png diff --git a/graphics/pokemon/footprints/marshtomp_footprint.png b/graphics/pokemon/marshtomp/footprint.png similarity index 100% rename from graphics/pokemon/footprints/marshtomp_footprint.png rename to graphics/pokemon/marshtomp/footprint.png diff --git a/graphics/pokemon/front_pics/marshtomp_still_front_pic.png b/graphics/pokemon/marshtomp/front.png similarity index 100% rename from graphics/pokemon/front_pics/marshtomp_still_front_pic.png rename to graphics/pokemon/marshtomp/front.png diff --git a/graphics/pokemon/icons/marshtomp_icon.png b/graphics/pokemon/marshtomp/icon.png similarity index 100% rename from graphics/pokemon/icons/marshtomp_icon.png rename to graphics/pokemon/marshtomp/icon.png diff --git a/graphics/pokemon/palettes/marshtomp_palette.pal b/graphics/pokemon/marshtomp/normal.pal similarity index 100% rename from graphics/pokemon/palettes/marshtomp_palette.pal rename to graphics/pokemon/marshtomp/normal.pal diff --git a/graphics/pokemon/palettes/marshtomp_shiny_palette.pal b/graphics/pokemon/marshtomp/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/marshtomp_shiny_palette.pal rename to graphics/pokemon/marshtomp/shiny.pal diff --git a/graphics/pokemon/back_pics/masquerain_back_pic.png b/graphics/pokemon/masquerain/back.png similarity index 100% rename from graphics/pokemon/back_pics/masquerain_back_pic.png rename to graphics/pokemon/masquerain/back.png diff --git a/graphics/pokemon/footprints/masquerain_footprint.png b/graphics/pokemon/masquerain/footprint.png similarity index 100% rename from graphics/pokemon/footprints/masquerain_footprint.png rename to graphics/pokemon/masquerain/footprint.png diff --git a/graphics/pokemon/front_pics/masquerain_still_front_pic.png b/graphics/pokemon/masquerain/front.png similarity index 100% rename from graphics/pokemon/front_pics/masquerain_still_front_pic.png rename to graphics/pokemon/masquerain/front.png diff --git a/graphics/pokemon/icons/masquerain_icon.png b/graphics/pokemon/masquerain/icon.png similarity index 100% rename from graphics/pokemon/icons/masquerain_icon.png rename to graphics/pokemon/masquerain/icon.png diff --git a/graphics/pokemon/palettes/masquerain_palette.pal b/graphics/pokemon/masquerain/normal.pal similarity index 100% rename from graphics/pokemon/palettes/masquerain_palette.pal rename to graphics/pokemon/masquerain/normal.pal diff --git a/graphics/pokemon/palettes/masquerain_shiny_palette.pal b/graphics/pokemon/masquerain/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/masquerain_shiny_palette.pal rename to graphics/pokemon/masquerain/shiny.pal diff --git a/graphics/pokemon/back_pics/mawile_back_pic.png b/graphics/pokemon/mawile/back.png similarity index 100% rename from graphics/pokemon/back_pics/mawile_back_pic.png rename to graphics/pokemon/mawile/back.png diff --git a/graphics/pokemon/footprints/mawile_footprint.png b/graphics/pokemon/mawile/footprint.png similarity index 100% rename from graphics/pokemon/footprints/mawile_footprint.png rename to graphics/pokemon/mawile/footprint.png diff --git a/graphics/pokemon/front_pics/mawile_still_front_pic.png b/graphics/pokemon/mawile/front.png similarity index 100% rename from graphics/pokemon/front_pics/mawile_still_front_pic.png rename to graphics/pokemon/mawile/front.png diff --git a/graphics/pokemon/icons/mawile_icon.png b/graphics/pokemon/mawile/icon.png similarity index 100% rename from graphics/pokemon/icons/mawile_icon.png rename to graphics/pokemon/mawile/icon.png diff --git a/graphics/pokemon/palettes/mawile_palette.pal b/graphics/pokemon/mawile/normal.pal similarity index 100% rename from graphics/pokemon/palettes/mawile_palette.pal rename to graphics/pokemon/mawile/normal.pal diff --git a/graphics/pokemon/palettes/mawile_shiny_palette.pal b/graphics/pokemon/mawile/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/mawile_shiny_palette.pal rename to graphics/pokemon/mawile/shiny.pal diff --git a/graphics/pokemon/back_pics/medicham_back_pic.png b/graphics/pokemon/medicham/back.png similarity index 100% rename from graphics/pokemon/back_pics/medicham_back_pic.png rename to graphics/pokemon/medicham/back.png diff --git a/graphics/pokemon/footprints/medicham_footprint.png b/graphics/pokemon/medicham/footprint.png similarity index 100% rename from graphics/pokemon/footprints/medicham_footprint.png rename to graphics/pokemon/medicham/footprint.png diff --git a/graphics/pokemon/front_pics/medicham_still_front_pic.png b/graphics/pokemon/medicham/front.png similarity index 100% rename from graphics/pokemon/front_pics/medicham_still_front_pic.png rename to graphics/pokemon/medicham/front.png diff --git a/graphics/pokemon/icons/medicham_icon.png b/graphics/pokemon/medicham/icon.png similarity index 100% rename from graphics/pokemon/icons/medicham_icon.png rename to graphics/pokemon/medicham/icon.png diff --git a/graphics/pokemon/palettes/medicham_palette.pal b/graphics/pokemon/medicham/normal.pal similarity index 100% rename from graphics/pokemon/palettes/medicham_palette.pal rename to graphics/pokemon/medicham/normal.pal diff --git a/graphics/pokemon/palettes/medicham_shiny_palette.pal b/graphics/pokemon/medicham/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/medicham_shiny_palette.pal rename to graphics/pokemon/medicham/shiny.pal diff --git a/graphics/pokemon/back_pics/meditite_back_pic.png b/graphics/pokemon/meditite/back.png similarity index 100% rename from graphics/pokemon/back_pics/meditite_back_pic.png rename to graphics/pokemon/meditite/back.png diff --git a/graphics/pokemon/footprints/meditite_footprint.png b/graphics/pokemon/meditite/footprint.png similarity index 100% rename from graphics/pokemon/footprints/meditite_footprint.png rename to graphics/pokemon/meditite/footprint.png diff --git a/graphics/pokemon/front_pics/meditite_still_front_pic.png b/graphics/pokemon/meditite/front.png similarity index 100% rename from graphics/pokemon/front_pics/meditite_still_front_pic.png rename to graphics/pokemon/meditite/front.png diff --git a/graphics/pokemon/icons/meditite_icon.png b/graphics/pokemon/meditite/icon.png similarity index 100% rename from graphics/pokemon/icons/meditite_icon.png rename to graphics/pokemon/meditite/icon.png diff --git a/graphics/pokemon/palettes/meditite_palette.pal b/graphics/pokemon/meditite/normal.pal similarity index 100% rename from graphics/pokemon/palettes/meditite_palette.pal rename to graphics/pokemon/meditite/normal.pal diff --git a/graphics/pokemon/palettes/meditite_shiny_palette.pal b/graphics/pokemon/meditite/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/meditite_shiny_palette.pal rename to graphics/pokemon/meditite/shiny.pal diff --git a/graphics/pokemon/back_pics/meganium_back_pic.png b/graphics/pokemon/meganium/back.png similarity index 100% rename from graphics/pokemon/back_pics/meganium_back_pic.png rename to graphics/pokemon/meganium/back.png diff --git a/graphics/pokemon/footprints/meganium_footprint.png b/graphics/pokemon/meganium/footprint.png similarity index 100% rename from graphics/pokemon/footprints/meganium_footprint.png rename to graphics/pokemon/meganium/footprint.png diff --git a/graphics/pokemon/front_pics/meganium_still_front_pic.png b/graphics/pokemon/meganium/front.png similarity index 100% rename from graphics/pokemon/front_pics/meganium_still_front_pic.png rename to graphics/pokemon/meganium/front.png diff --git a/graphics/pokemon/icons/meganium_icon.png b/graphics/pokemon/meganium/icon.png similarity index 100% rename from graphics/pokemon/icons/meganium_icon.png rename to graphics/pokemon/meganium/icon.png diff --git a/graphics/pokemon/palettes/meganium_palette.pal b/graphics/pokemon/meganium/normal.pal similarity index 100% rename from graphics/pokemon/palettes/meganium_palette.pal rename to graphics/pokemon/meganium/normal.pal diff --git a/graphics/pokemon/palettes/meganium_shiny_palette.pal b/graphics/pokemon/meganium/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/meganium_shiny_palette.pal rename to graphics/pokemon/meganium/shiny.pal diff --git a/graphics/pokemon/back_pics/meowth_back_pic.png b/graphics/pokemon/meowth/back.png similarity index 100% rename from graphics/pokemon/back_pics/meowth_back_pic.png rename to graphics/pokemon/meowth/back.png diff --git a/graphics/pokemon/footprints/meowth_footprint.png b/graphics/pokemon/meowth/footprint.png similarity index 100% rename from graphics/pokemon/footprints/meowth_footprint.png rename to graphics/pokemon/meowth/footprint.png diff --git a/graphics/pokemon/front_pics/meowth_still_front_pic.png b/graphics/pokemon/meowth/front.png similarity index 100% rename from graphics/pokemon/front_pics/meowth_still_front_pic.png rename to graphics/pokemon/meowth/front.png diff --git a/graphics/pokemon/icons/meowth_icon.png b/graphics/pokemon/meowth/icon.png similarity index 100% rename from graphics/pokemon/icons/meowth_icon.png rename to graphics/pokemon/meowth/icon.png diff --git a/graphics/pokemon/palettes/meowth_palette.pal b/graphics/pokemon/meowth/normal.pal similarity index 100% rename from graphics/pokemon/palettes/meowth_palette.pal rename to graphics/pokemon/meowth/normal.pal diff --git a/graphics/pokemon/palettes/meowth_shiny_palette.pal b/graphics/pokemon/meowth/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/meowth_shiny_palette.pal rename to graphics/pokemon/meowth/shiny.pal diff --git a/graphics/pokemon/back_pics/metagross_back_pic.png b/graphics/pokemon/metagross/back.png similarity index 100% rename from graphics/pokemon/back_pics/metagross_back_pic.png rename to graphics/pokemon/metagross/back.png diff --git a/graphics/pokemon/footprints/metagross_footprint.png b/graphics/pokemon/metagross/footprint.png similarity index 100% rename from graphics/pokemon/footprints/metagross_footprint.png rename to graphics/pokemon/metagross/footprint.png diff --git a/graphics/pokemon/front_pics/metagross_still_front_pic.png b/graphics/pokemon/metagross/front.png similarity index 100% rename from graphics/pokemon/front_pics/metagross_still_front_pic.png rename to graphics/pokemon/metagross/front.png diff --git a/graphics/pokemon/icons/metagross_icon.png b/graphics/pokemon/metagross/icon.png similarity index 100% rename from graphics/pokemon/icons/metagross_icon.png rename to graphics/pokemon/metagross/icon.png diff --git a/graphics/pokemon/palettes/metagross_palette.pal b/graphics/pokemon/metagross/normal.pal similarity index 100% rename from graphics/pokemon/palettes/metagross_palette.pal rename to graphics/pokemon/metagross/normal.pal diff --git a/graphics/pokemon/palettes/metagross_shiny_palette.pal b/graphics/pokemon/metagross/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/metagross_shiny_palette.pal rename to graphics/pokemon/metagross/shiny.pal diff --git a/graphics/pokemon/back_pics/metang_back_pic.png b/graphics/pokemon/metang/back.png similarity index 100% rename from graphics/pokemon/back_pics/metang_back_pic.png rename to graphics/pokemon/metang/back.png diff --git a/graphics/pokemon/footprints/metang_footprint.png b/graphics/pokemon/metang/footprint.png similarity index 100% rename from graphics/pokemon/footprints/metang_footprint.png rename to graphics/pokemon/metang/footprint.png diff --git a/graphics/pokemon/front_pics/metang_still_front_pic.png b/graphics/pokemon/metang/front.png similarity index 100% rename from graphics/pokemon/front_pics/metang_still_front_pic.png rename to graphics/pokemon/metang/front.png diff --git a/graphics/pokemon/icons/metang_icon.png b/graphics/pokemon/metang/icon.png similarity index 100% rename from graphics/pokemon/icons/metang_icon.png rename to graphics/pokemon/metang/icon.png diff --git a/graphics/pokemon/palettes/metang_palette.pal b/graphics/pokemon/metang/normal.pal similarity index 100% rename from graphics/pokemon/palettes/metang_palette.pal rename to graphics/pokemon/metang/normal.pal diff --git a/graphics/pokemon/palettes/metang_shiny_palette.pal b/graphics/pokemon/metang/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/metang_shiny_palette.pal rename to graphics/pokemon/metang/shiny.pal diff --git a/graphics/pokemon/back_pics/metapod_back_pic.png b/graphics/pokemon/metapod/back.png similarity index 100% rename from graphics/pokemon/back_pics/metapod_back_pic.png rename to graphics/pokemon/metapod/back.png diff --git a/graphics/pokemon/footprints/metapod_footprint.png b/graphics/pokemon/metapod/footprint.png similarity index 100% rename from graphics/pokemon/footprints/metapod_footprint.png rename to graphics/pokemon/metapod/footprint.png diff --git a/graphics/pokemon/front_pics/metapod_still_front_pic.png b/graphics/pokemon/metapod/front.png similarity index 100% rename from graphics/pokemon/front_pics/metapod_still_front_pic.png rename to graphics/pokemon/metapod/front.png diff --git a/graphics/pokemon/icons/metapod_icon.png b/graphics/pokemon/metapod/icon.png similarity index 100% rename from graphics/pokemon/icons/metapod_icon.png rename to graphics/pokemon/metapod/icon.png diff --git a/graphics/pokemon/palettes/metapod_palette.pal b/graphics/pokemon/metapod/normal.pal similarity index 100% rename from graphics/pokemon/palettes/metapod_palette.pal rename to graphics/pokemon/metapod/normal.pal diff --git a/graphics/pokemon/palettes/metapod_shiny_palette.pal b/graphics/pokemon/metapod/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/metapod_shiny_palette.pal rename to graphics/pokemon/metapod/shiny.pal diff --git a/graphics/pokemon/back_pics/mew_back_pic.png b/graphics/pokemon/mew/back.png similarity index 100% rename from graphics/pokemon/back_pics/mew_back_pic.png rename to graphics/pokemon/mew/back.png diff --git a/graphics/pokemon/footprints/mew_footprint.png b/graphics/pokemon/mew/footprint.png similarity index 100% rename from graphics/pokemon/footprints/mew_footprint.png rename to graphics/pokemon/mew/footprint.png diff --git a/graphics/pokemon/front_pics/mew_still_front_pic.png b/graphics/pokemon/mew/front.png similarity index 100% rename from graphics/pokemon/front_pics/mew_still_front_pic.png rename to graphics/pokemon/mew/front.png diff --git a/graphics/pokemon/icons/mew_icon.png b/graphics/pokemon/mew/icon.png similarity index 100% rename from graphics/pokemon/icons/mew_icon.png rename to graphics/pokemon/mew/icon.png diff --git a/graphics/pokemon/palettes/mew_palette.pal b/graphics/pokemon/mew/normal.pal similarity index 100% rename from graphics/pokemon/palettes/mew_palette.pal rename to graphics/pokemon/mew/normal.pal diff --git a/graphics/pokemon/palettes/mew_shiny_palette.pal b/graphics/pokemon/mew/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/mew_shiny_palette.pal rename to graphics/pokemon/mew/shiny.pal diff --git a/graphics/pokemon/back_pics/mewtwo_back_pic.png b/graphics/pokemon/mewtwo/back.png similarity index 100% rename from graphics/pokemon/back_pics/mewtwo_back_pic.png rename to graphics/pokemon/mewtwo/back.png diff --git a/graphics/pokemon/footprints/mewtwo_footprint.png b/graphics/pokemon/mewtwo/footprint.png similarity index 100% rename from graphics/pokemon/footprints/mewtwo_footprint.png rename to graphics/pokemon/mewtwo/footprint.png diff --git a/graphics/pokemon/front_pics/mewtwo_still_front_pic.png b/graphics/pokemon/mewtwo/front.png similarity index 100% rename from graphics/pokemon/front_pics/mewtwo_still_front_pic.png rename to graphics/pokemon/mewtwo/front.png diff --git a/graphics/pokemon/icons/mewtwo_icon.png b/graphics/pokemon/mewtwo/icon.png similarity index 100% rename from graphics/pokemon/icons/mewtwo_icon.png rename to graphics/pokemon/mewtwo/icon.png diff --git a/graphics/pokemon/palettes/mewtwo_palette.pal b/graphics/pokemon/mewtwo/normal.pal similarity index 100% rename from graphics/pokemon/palettes/mewtwo_palette.pal rename to graphics/pokemon/mewtwo/normal.pal diff --git a/graphics/pokemon/palettes/mewtwo_shiny_palette.pal b/graphics/pokemon/mewtwo/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/mewtwo_shiny_palette.pal rename to graphics/pokemon/mewtwo/shiny.pal diff --git a/graphics/pokemon/back_pics/mightyena_back_pic.png b/graphics/pokemon/mightyena/back.png similarity index 100% rename from graphics/pokemon/back_pics/mightyena_back_pic.png rename to graphics/pokemon/mightyena/back.png diff --git a/graphics/pokemon/footprints/mightyena_footprint.png b/graphics/pokemon/mightyena/footprint.png similarity index 100% rename from graphics/pokemon/footprints/mightyena_footprint.png rename to graphics/pokemon/mightyena/footprint.png diff --git a/graphics/pokemon/front_pics/mightyena_still_front_pic.png b/graphics/pokemon/mightyena/front.png similarity index 100% rename from graphics/pokemon/front_pics/mightyena_still_front_pic.png rename to graphics/pokemon/mightyena/front.png diff --git a/graphics/pokemon/icons/mightyena_icon.png b/graphics/pokemon/mightyena/icon.png similarity index 100% rename from graphics/pokemon/icons/mightyena_icon.png rename to graphics/pokemon/mightyena/icon.png diff --git a/graphics/pokemon/palettes/mightyena_palette.pal b/graphics/pokemon/mightyena/normal.pal similarity index 100% rename from graphics/pokemon/palettes/mightyena_palette.pal rename to graphics/pokemon/mightyena/normal.pal diff --git a/graphics/pokemon/palettes/mightyena_shiny_palette.pal b/graphics/pokemon/mightyena/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/mightyena_shiny_palette.pal rename to graphics/pokemon/mightyena/shiny.pal diff --git a/graphics/pokemon/back_pics/milotic_back_pic.png b/graphics/pokemon/milotic/back.png similarity index 100% rename from graphics/pokemon/back_pics/milotic_back_pic.png rename to graphics/pokemon/milotic/back.png diff --git a/graphics/pokemon/footprints/milotic_footprint.png b/graphics/pokemon/milotic/footprint.png similarity index 100% rename from graphics/pokemon/footprints/milotic_footprint.png rename to graphics/pokemon/milotic/footprint.png diff --git a/graphics/pokemon/front_pics/milotic_still_front_pic.png b/graphics/pokemon/milotic/front.png similarity index 100% rename from graphics/pokemon/front_pics/milotic_still_front_pic.png rename to graphics/pokemon/milotic/front.png diff --git a/graphics/pokemon/icons/milotic_icon.png b/graphics/pokemon/milotic/icon.png similarity index 100% rename from graphics/pokemon/icons/milotic_icon.png rename to graphics/pokemon/milotic/icon.png diff --git a/graphics/pokemon/palettes/milotic_palette.pal b/graphics/pokemon/milotic/normal.pal similarity index 100% rename from graphics/pokemon/palettes/milotic_palette.pal rename to graphics/pokemon/milotic/normal.pal diff --git a/graphics/pokemon/palettes/milotic_shiny_palette.pal b/graphics/pokemon/milotic/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/milotic_shiny_palette.pal rename to graphics/pokemon/milotic/shiny.pal diff --git a/graphics/pokemon/back_pics/miltank_back_pic.png b/graphics/pokemon/miltank/back.png similarity index 100% rename from graphics/pokemon/back_pics/miltank_back_pic.png rename to graphics/pokemon/miltank/back.png diff --git a/graphics/pokemon/footprints/miltank_footprint.png b/graphics/pokemon/miltank/footprint.png similarity index 100% rename from graphics/pokemon/footprints/miltank_footprint.png rename to graphics/pokemon/miltank/footprint.png diff --git a/graphics/pokemon/front_pics/miltank_still_front_pic.png b/graphics/pokemon/miltank/front.png similarity index 100% rename from graphics/pokemon/front_pics/miltank_still_front_pic.png rename to graphics/pokemon/miltank/front.png diff --git a/graphics/pokemon/icons/miltank_icon.png b/graphics/pokemon/miltank/icon.png similarity index 100% rename from graphics/pokemon/icons/miltank_icon.png rename to graphics/pokemon/miltank/icon.png diff --git a/graphics/pokemon/palettes/miltank_palette.pal b/graphics/pokemon/miltank/normal.pal similarity index 100% rename from graphics/pokemon/palettes/miltank_palette.pal rename to graphics/pokemon/miltank/normal.pal diff --git a/graphics/pokemon/palettes/miltank_shiny_palette.pal b/graphics/pokemon/miltank/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/miltank_shiny_palette.pal rename to graphics/pokemon/miltank/shiny.pal diff --git a/graphics/pokemon/back_pics/minun_back_pic.png b/graphics/pokemon/minun/back.png similarity index 100% rename from graphics/pokemon/back_pics/minun_back_pic.png rename to graphics/pokemon/minun/back.png diff --git a/graphics/pokemon/footprints/minun_footprint.png b/graphics/pokemon/minun/footprint.png similarity index 100% rename from graphics/pokemon/footprints/minun_footprint.png rename to graphics/pokemon/minun/footprint.png diff --git a/graphics/pokemon/front_pics/minun_still_front_pic.png b/graphics/pokemon/minun/front.png similarity index 100% rename from graphics/pokemon/front_pics/minun_still_front_pic.png rename to graphics/pokemon/minun/front.png diff --git a/graphics/pokemon/icons/minun_icon.png b/graphics/pokemon/minun/icon.png similarity index 100% rename from graphics/pokemon/icons/minun_icon.png rename to graphics/pokemon/minun/icon.png diff --git a/graphics/pokemon/palettes/minun_palette.pal b/graphics/pokemon/minun/normal.pal similarity index 100% rename from graphics/pokemon/palettes/minun_palette.pal rename to graphics/pokemon/minun/normal.pal diff --git a/graphics/pokemon/palettes/minun_shiny_palette.pal b/graphics/pokemon/minun/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/minun_shiny_palette.pal rename to graphics/pokemon/minun/shiny.pal diff --git a/graphics/pokemon/back_pics/misdreavus_back_pic.png b/graphics/pokemon/misdreavus/back.png similarity index 100% rename from graphics/pokemon/back_pics/misdreavus_back_pic.png rename to graphics/pokemon/misdreavus/back.png diff --git a/graphics/pokemon/footprints/misdreavus_footprint.png b/graphics/pokemon/misdreavus/footprint.png similarity index 100% rename from graphics/pokemon/footprints/misdreavus_footprint.png rename to graphics/pokemon/misdreavus/footprint.png diff --git a/graphics/pokemon/front_pics/misdreavus_still_front_pic.png b/graphics/pokemon/misdreavus/front.png similarity index 100% rename from graphics/pokemon/front_pics/misdreavus_still_front_pic.png rename to graphics/pokemon/misdreavus/front.png diff --git a/graphics/pokemon/icons/misdreavus_icon.png b/graphics/pokemon/misdreavus/icon.png similarity index 100% rename from graphics/pokemon/icons/misdreavus_icon.png rename to graphics/pokemon/misdreavus/icon.png diff --git a/graphics/pokemon/palettes/misdreavus_palette.pal b/graphics/pokemon/misdreavus/normal.pal similarity index 100% rename from graphics/pokemon/palettes/misdreavus_palette.pal rename to graphics/pokemon/misdreavus/normal.pal diff --git a/graphics/pokemon/palettes/misdreavus_shiny_palette.pal b/graphics/pokemon/misdreavus/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/misdreavus_shiny_palette.pal rename to graphics/pokemon/misdreavus/shiny.pal diff --git a/graphics/pokemon/back_pics/moltres_back_pic.png b/graphics/pokemon/moltres/back.png similarity index 100% rename from graphics/pokemon/back_pics/moltres_back_pic.png rename to graphics/pokemon/moltres/back.png diff --git a/graphics/pokemon/footprints/moltres_footprint.png b/graphics/pokemon/moltres/footprint.png similarity index 100% rename from graphics/pokemon/footprints/moltres_footprint.png rename to graphics/pokemon/moltres/footprint.png diff --git a/graphics/pokemon/front_pics/moltres_still_front_pic.png b/graphics/pokemon/moltres/front.png similarity index 100% rename from graphics/pokemon/front_pics/moltres_still_front_pic.png rename to graphics/pokemon/moltres/front.png diff --git a/graphics/pokemon/icons/moltres_icon.png b/graphics/pokemon/moltres/icon.png similarity index 100% rename from graphics/pokemon/icons/moltres_icon.png rename to graphics/pokemon/moltres/icon.png diff --git a/graphics/pokemon/palettes/moltres_palette.pal b/graphics/pokemon/moltres/normal.pal similarity index 100% rename from graphics/pokemon/palettes/moltres_palette.pal rename to graphics/pokemon/moltres/normal.pal diff --git a/graphics/pokemon/palettes/moltres_shiny_palette.pal b/graphics/pokemon/moltres/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/moltres_shiny_palette.pal rename to graphics/pokemon/moltres/shiny.pal diff --git a/graphics/pokemon/back_pics/mr_mime_back_pic.png b/graphics/pokemon/mr_mime/back.png similarity index 100% rename from graphics/pokemon/back_pics/mr_mime_back_pic.png rename to graphics/pokemon/mr_mime/back.png diff --git a/graphics/pokemon/footprints/mr_mime_footprint.png b/graphics/pokemon/mr_mime/footprint.png similarity index 100% rename from graphics/pokemon/footprints/mr_mime_footprint.png rename to graphics/pokemon/mr_mime/footprint.png diff --git a/graphics/pokemon/front_pics/mr_mime_still_front_pic.png b/graphics/pokemon/mr_mime/front.png similarity index 100% rename from graphics/pokemon/front_pics/mr_mime_still_front_pic.png rename to graphics/pokemon/mr_mime/front.png diff --git a/graphics/pokemon/icons/mr_mime_icon.png b/graphics/pokemon/mr_mime/icon.png similarity index 100% rename from graphics/pokemon/icons/mr_mime_icon.png rename to graphics/pokemon/mr_mime/icon.png diff --git a/graphics/pokemon/palettes/mr_mime_palette.pal b/graphics/pokemon/mr_mime/normal.pal similarity index 100% rename from graphics/pokemon/palettes/mr_mime_palette.pal rename to graphics/pokemon/mr_mime/normal.pal diff --git a/graphics/pokemon/palettes/mr_mime_shiny_palette.pal b/graphics/pokemon/mr_mime/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/mr_mime_shiny_palette.pal rename to graphics/pokemon/mr_mime/shiny.pal diff --git a/graphics/pokemon/back_pics/mudkip_back_pic.png b/graphics/pokemon/mudkip/back.png similarity index 100% rename from graphics/pokemon/back_pics/mudkip_back_pic.png rename to graphics/pokemon/mudkip/back.png diff --git a/graphics/pokemon/footprints/mudkip_footprint.png b/graphics/pokemon/mudkip/footprint.png similarity index 100% rename from graphics/pokemon/footprints/mudkip_footprint.png rename to graphics/pokemon/mudkip/footprint.png diff --git a/graphics/pokemon/front_pics/mudkip_still_front_pic.png b/graphics/pokemon/mudkip/front.png similarity index 100% rename from graphics/pokemon/front_pics/mudkip_still_front_pic.png rename to graphics/pokemon/mudkip/front.png diff --git a/graphics/pokemon/icons/mudkip_icon.png b/graphics/pokemon/mudkip/icon.png similarity index 100% rename from graphics/pokemon/icons/mudkip_icon.png rename to graphics/pokemon/mudkip/icon.png diff --git a/graphics/pokemon/palettes/mudkip_palette.pal b/graphics/pokemon/mudkip/normal.pal similarity index 100% rename from graphics/pokemon/palettes/mudkip_palette.pal rename to graphics/pokemon/mudkip/normal.pal diff --git a/graphics/pokemon/palettes/mudkip_shiny_palette.pal b/graphics/pokemon/mudkip/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/mudkip_shiny_palette.pal rename to graphics/pokemon/mudkip/shiny.pal diff --git a/graphics/pokemon/back_pics/muk_back_pic.png b/graphics/pokemon/muk/back.png similarity index 100% rename from graphics/pokemon/back_pics/muk_back_pic.png rename to graphics/pokemon/muk/back.png diff --git a/graphics/pokemon/footprints/muk_footprint.png b/graphics/pokemon/muk/footprint.png similarity index 100% rename from graphics/pokemon/footprints/muk_footprint.png rename to graphics/pokemon/muk/footprint.png diff --git a/graphics/pokemon/front_pics/muk_still_front_pic.png b/graphics/pokemon/muk/front.png similarity index 100% rename from graphics/pokemon/front_pics/muk_still_front_pic.png rename to graphics/pokemon/muk/front.png diff --git a/graphics/pokemon/icons/muk_icon.png b/graphics/pokemon/muk/icon.png similarity index 100% rename from graphics/pokemon/icons/muk_icon.png rename to graphics/pokemon/muk/icon.png diff --git a/graphics/pokemon/palettes/muk_palette.pal b/graphics/pokemon/muk/normal.pal similarity index 100% rename from graphics/pokemon/palettes/muk_palette.pal rename to graphics/pokemon/muk/normal.pal diff --git a/graphics/pokemon/palettes/muk_shiny_palette.pal b/graphics/pokemon/muk/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/muk_shiny_palette.pal rename to graphics/pokemon/muk/shiny.pal diff --git a/graphics/pokemon/back_pics/murkrow_back_pic.png b/graphics/pokemon/murkrow/back.png similarity index 100% rename from graphics/pokemon/back_pics/murkrow_back_pic.png rename to graphics/pokemon/murkrow/back.png diff --git a/graphics/pokemon/footprints/murkrow_footprint.png b/graphics/pokemon/murkrow/footprint.png similarity index 100% rename from graphics/pokemon/footprints/murkrow_footprint.png rename to graphics/pokemon/murkrow/footprint.png diff --git a/graphics/pokemon/front_pics/murkrow_still_front_pic.png b/graphics/pokemon/murkrow/front.png similarity index 100% rename from graphics/pokemon/front_pics/murkrow_still_front_pic.png rename to graphics/pokemon/murkrow/front.png diff --git a/graphics/pokemon/icons/murkrow_icon.png b/graphics/pokemon/murkrow/icon.png similarity index 100% rename from graphics/pokemon/icons/murkrow_icon.png rename to graphics/pokemon/murkrow/icon.png diff --git a/graphics/pokemon/palettes/murkrow_palette.pal b/graphics/pokemon/murkrow/normal.pal similarity index 100% rename from graphics/pokemon/palettes/murkrow_palette.pal rename to graphics/pokemon/murkrow/normal.pal diff --git a/graphics/pokemon/palettes/murkrow_shiny_palette.pal b/graphics/pokemon/murkrow/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/murkrow_shiny_palette.pal rename to graphics/pokemon/murkrow/shiny.pal diff --git a/graphics/pokemon/back_pics/natu_back_pic.png b/graphics/pokemon/natu/back.png similarity index 100% rename from graphics/pokemon/back_pics/natu_back_pic.png rename to graphics/pokemon/natu/back.png diff --git a/graphics/pokemon/footprints/natu_footprint.png b/graphics/pokemon/natu/footprint.png similarity index 100% rename from graphics/pokemon/footprints/natu_footprint.png rename to graphics/pokemon/natu/footprint.png diff --git a/graphics/pokemon/front_pics/natu_still_front_pic.png b/graphics/pokemon/natu/front.png similarity index 100% rename from graphics/pokemon/front_pics/natu_still_front_pic.png rename to graphics/pokemon/natu/front.png diff --git a/graphics/pokemon/icons/natu_icon.png b/graphics/pokemon/natu/icon.png similarity index 100% rename from graphics/pokemon/icons/natu_icon.png rename to graphics/pokemon/natu/icon.png diff --git a/graphics/pokemon/palettes/natu_palette.pal b/graphics/pokemon/natu/normal.pal similarity index 100% rename from graphics/pokemon/palettes/natu_palette.pal rename to graphics/pokemon/natu/normal.pal diff --git a/graphics/pokemon/palettes/natu_shiny_palette.pal b/graphics/pokemon/natu/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/natu_shiny_palette.pal rename to graphics/pokemon/natu/shiny.pal diff --git a/graphics/pokemon/back_pics/nidoking_back_pic.png b/graphics/pokemon/nidoking/back.png similarity index 100% rename from graphics/pokemon/back_pics/nidoking_back_pic.png rename to graphics/pokemon/nidoking/back.png diff --git a/graphics/pokemon/footprints/nidoking_footprint.png b/graphics/pokemon/nidoking/footprint.png similarity index 100% rename from graphics/pokemon/footprints/nidoking_footprint.png rename to graphics/pokemon/nidoking/footprint.png diff --git a/graphics/pokemon/front_pics/nidoking_still_front_pic.png b/graphics/pokemon/nidoking/front.png similarity index 100% rename from graphics/pokemon/front_pics/nidoking_still_front_pic.png rename to graphics/pokemon/nidoking/front.png diff --git a/graphics/pokemon/icons/nidoking_icon.png b/graphics/pokemon/nidoking/icon.png similarity index 100% rename from graphics/pokemon/icons/nidoking_icon.png rename to graphics/pokemon/nidoking/icon.png diff --git a/graphics/pokemon/palettes/nidoking_palette.pal b/graphics/pokemon/nidoking/normal.pal similarity index 100% rename from graphics/pokemon/palettes/nidoking_palette.pal rename to graphics/pokemon/nidoking/normal.pal diff --git a/graphics/pokemon/palettes/nidoking_shiny_palette.pal b/graphics/pokemon/nidoking/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/nidoking_shiny_palette.pal rename to graphics/pokemon/nidoking/shiny.pal diff --git a/graphics/pokemon/back_pics/nidoqueen_back_pic.png b/graphics/pokemon/nidoqueen/back.png similarity index 100% rename from graphics/pokemon/back_pics/nidoqueen_back_pic.png rename to graphics/pokemon/nidoqueen/back.png diff --git a/graphics/pokemon/footprints/nidoqueen_footprint.png b/graphics/pokemon/nidoqueen/footprint.png similarity index 100% rename from graphics/pokemon/footprints/nidoqueen_footprint.png rename to graphics/pokemon/nidoqueen/footprint.png diff --git a/graphics/pokemon/front_pics/nidoqueen_still_front_pic.png b/graphics/pokemon/nidoqueen/front.png similarity index 100% rename from graphics/pokemon/front_pics/nidoqueen_still_front_pic.png rename to graphics/pokemon/nidoqueen/front.png diff --git a/graphics/pokemon/icons/nidoqueen_icon.png b/graphics/pokemon/nidoqueen/icon.png similarity index 100% rename from graphics/pokemon/icons/nidoqueen_icon.png rename to graphics/pokemon/nidoqueen/icon.png diff --git a/graphics/pokemon/palettes/nidoqueen_palette.pal b/graphics/pokemon/nidoqueen/normal.pal similarity index 100% rename from graphics/pokemon/palettes/nidoqueen_palette.pal rename to graphics/pokemon/nidoqueen/normal.pal diff --git a/graphics/pokemon/palettes/nidoqueen_shiny_palette.pal b/graphics/pokemon/nidoqueen/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/nidoqueen_shiny_palette.pal rename to graphics/pokemon/nidoqueen/shiny.pal diff --git a/graphics/pokemon/back_pics/nidoran_f_back_pic.png b/graphics/pokemon/nidoran_f/back.png similarity index 100% rename from graphics/pokemon/back_pics/nidoran_f_back_pic.png rename to graphics/pokemon/nidoran_f/back.png diff --git a/graphics/pokemon/footprints/nidoran_f_footprint.png b/graphics/pokemon/nidoran_f/footprint.png similarity index 100% rename from graphics/pokemon/footprints/nidoran_f_footprint.png rename to graphics/pokemon/nidoran_f/footprint.png diff --git a/graphics/pokemon/front_pics/nidoran_f_still_front_pic.png b/graphics/pokemon/nidoran_f/front.png similarity index 100% rename from graphics/pokemon/front_pics/nidoran_f_still_front_pic.png rename to graphics/pokemon/nidoran_f/front.png diff --git a/graphics/pokemon/icons/nidoran_f_icon.png b/graphics/pokemon/nidoran_f/icon.png similarity index 100% rename from graphics/pokemon/icons/nidoran_f_icon.png rename to graphics/pokemon/nidoran_f/icon.png diff --git a/graphics/pokemon/palettes/nidoran_f_palette.pal b/graphics/pokemon/nidoran_f/normal.pal similarity index 100% rename from graphics/pokemon/palettes/nidoran_f_palette.pal rename to graphics/pokemon/nidoran_f/normal.pal diff --git a/graphics/pokemon/palettes/nidoran_f_shiny_palette.pal b/graphics/pokemon/nidoran_f/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/nidoran_f_shiny_palette.pal rename to graphics/pokemon/nidoran_f/shiny.pal diff --git a/graphics/pokemon/back_pics/nidoran_m_back_pic.png b/graphics/pokemon/nidoran_m/back.png similarity index 100% rename from graphics/pokemon/back_pics/nidoran_m_back_pic.png rename to graphics/pokemon/nidoran_m/back.png diff --git a/graphics/pokemon/footprints/nidoran_m_footprint.png b/graphics/pokemon/nidoran_m/footprint.png similarity index 100% rename from graphics/pokemon/footprints/nidoran_m_footprint.png rename to graphics/pokemon/nidoran_m/footprint.png diff --git a/graphics/pokemon/front_pics/nidoran_m_still_front_pic.png b/graphics/pokemon/nidoran_m/front.png similarity index 100% rename from graphics/pokemon/front_pics/nidoran_m_still_front_pic.png rename to graphics/pokemon/nidoran_m/front.png diff --git a/graphics/pokemon/icons/nidoran_m_icon.png b/graphics/pokemon/nidoran_m/icon.png similarity index 100% rename from graphics/pokemon/icons/nidoran_m_icon.png rename to graphics/pokemon/nidoran_m/icon.png diff --git a/graphics/pokemon/palettes/nidoran_m_palette.pal b/graphics/pokemon/nidoran_m/normal.pal similarity index 100% rename from graphics/pokemon/palettes/nidoran_m_palette.pal rename to graphics/pokemon/nidoran_m/normal.pal diff --git a/graphics/pokemon/palettes/nidoran_m_shiny_palette.pal b/graphics/pokemon/nidoran_m/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/nidoran_m_shiny_palette.pal rename to graphics/pokemon/nidoran_m/shiny.pal diff --git a/graphics/pokemon/back_pics/nidorina_back_pic.png b/graphics/pokemon/nidorina/back.png similarity index 100% rename from graphics/pokemon/back_pics/nidorina_back_pic.png rename to graphics/pokemon/nidorina/back.png diff --git a/graphics/pokemon/footprints/nidorina_footprint.png b/graphics/pokemon/nidorina/footprint.png similarity index 100% rename from graphics/pokemon/footprints/nidorina_footprint.png rename to graphics/pokemon/nidorina/footprint.png diff --git a/graphics/pokemon/front_pics/nidorina_still_front_pic.png b/graphics/pokemon/nidorina/front.png similarity index 100% rename from graphics/pokemon/front_pics/nidorina_still_front_pic.png rename to graphics/pokemon/nidorina/front.png diff --git a/graphics/pokemon/icons/nidorina_icon.png b/graphics/pokemon/nidorina/icon.png similarity index 100% rename from graphics/pokemon/icons/nidorina_icon.png rename to graphics/pokemon/nidorina/icon.png diff --git a/graphics/pokemon/palettes/nidorina_palette.pal b/graphics/pokemon/nidorina/normal.pal similarity index 100% rename from graphics/pokemon/palettes/nidorina_palette.pal rename to graphics/pokemon/nidorina/normal.pal diff --git a/graphics/pokemon/palettes/nidorina_shiny_palette.pal b/graphics/pokemon/nidorina/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/nidorina_shiny_palette.pal rename to graphics/pokemon/nidorina/shiny.pal diff --git a/graphics/pokemon/back_pics/nidorino_back_pic.png b/graphics/pokemon/nidorino/back.png similarity index 100% rename from graphics/pokemon/back_pics/nidorino_back_pic.png rename to graphics/pokemon/nidorino/back.png diff --git a/graphics/pokemon/footprints/nidorino_footprint.png b/graphics/pokemon/nidorino/footprint.png similarity index 100% rename from graphics/pokemon/footprints/nidorino_footprint.png rename to graphics/pokemon/nidorino/footprint.png diff --git a/graphics/pokemon/front_pics/nidorino_still_front_pic.png b/graphics/pokemon/nidorino/front.png similarity index 100% rename from graphics/pokemon/front_pics/nidorino_still_front_pic.png rename to graphics/pokemon/nidorino/front.png diff --git a/graphics/pokemon/icons/nidorino_icon.png b/graphics/pokemon/nidorino/icon.png similarity index 100% rename from graphics/pokemon/icons/nidorino_icon.png rename to graphics/pokemon/nidorino/icon.png diff --git a/graphics/pokemon/palettes/nidorino_palette.pal b/graphics/pokemon/nidorino/normal.pal similarity index 100% rename from graphics/pokemon/palettes/nidorino_palette.pal rename to graphics/pokemon/nidorino/normal.pal diff --git a/graphics/pokemon/palettes/nidorino_shiny_palette.pal b/graphics/pokemon/nidorino/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/nidorino_shiny_palette.pal rename to graphics/pokemon/nidorino/shiny.pal diff --git a/graphics/pokemon/back_pics/nincada_back_pic.png b/graphics/pokemon/nincada/back.png similarity index 100% rename from graphics/pokemon/back_pics/nincada_back_pic.png rename to graphics/pokemon/nincada/back.png diff --git a/graphics/pokemon/footprints/nincada_footprint.png b/graphics/pokemon/nincada/footprint.png similarity index 100% rename from graphics/pokemon/footprints/nincada_footprint.png rename to graphics/pokemon/nincada/footprint.png diff --git a/graphics/pokemon/front_pics/nincada_still_front_pic.png b/graphics/pokemon/nincada/front.png similarity index 100% rename from graphics/pokemon/front_pics/nincada_still_front_pic.png rename to graphics/pokemon/nincada/front.png diff --git a/graphics/pokemon/icons/nincada_icon.png b/graphics/pokemon/nincada/icon.png similarity index 100% rename from graphics/pokemon/icons/nincada_icon.png rename to graphics/pokemon/nincada/icon.png diff --git a/graphics/pokemon/palettes/nincada_palette.pal b/graphics/pokemon/nincada/normal.pal similarity index 100% rename from graphics/pokemon/palettes/nincada_palette.pal rename to graphics/pokemon/nincada/normal.pal diff --git a/graphics/pokemon/palettes/nincada_shiny_palette.pal b/graphics/pokemon/nincada/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/nincada_shiny_palette.pal rename to graphics/pokemon/nincada/shiny.pal diff --git a/graphics/pokemon/back_pics/ninetales_back_pic.png b/graphics/pokemon/ninetales/back.png similarity index 100% rename from graphics/pokemon/back_pics/ninetales_back_pic.png rename to graphics/pokemon/ninetales/back.png diff --git a/graphics/pokemon/footprints/ninetales_footprint.png b/graphics/pokemon/ninetales/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ninetales_footprint.png rename to graphics/pokemon/ninetales/footprint.png diff --git a/graphics/pokemon/front_pics/ninetales_still_front_pic.png b/graphics/pokemon/ninetales/front.png similarity index 100% rename from graphics/pokemon/front_pics/ninetales_still_front_pic.png rename to graphics/pokemon/ninetales/front.png diff --git a/graphics/pokemon/icons/ninetales_icon.png b/graphics/pokemon/ninetales/icon.png similarity index 100% rename from graphics/pokemon/icons/ninetales_icon.png rename to graphics/pokemon/ninetales/icon.png diff --git a/graphics/pokemon/palettes/ninetales_palette.pal b/graphics/pokemon/ninetales/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ninetales_palette.pal rename to graphics/pokemon/ninetales/normal.pal diff --git a/graphics/pokemon/palettes/ninetales_shiny_palette.pal b/graphics/pokemon/ninetales/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ninetales_shiny_palette.pal rename to graphics/pokemon/ninetales/shiny.pal diff --git a/graphics/pokemon/back_pics/ninjask_back_pic.png b/graphics/pokemon/ninjask/back.png similarity index 100% rename from graphics/pokemon/back_pics/ninjask_back_pic.png rename to graphics/pokemon/ninjask/back.png diff --git a/graphics/pokemon/footprints/ninjask_footprint.png b/graphics/pokemon/ninjask/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ninjask_footprint.png rename to graphics/pokemon/ninjask/footprint.png diff --git a/graphics/pokemon/front_pics/ninjask_still_front_pic.png b/graphics/pokemon/ninjask/front.png similarity index 100% rename from graphics/pokemon/front_pics/ninjask_still_front_pic.png rename to graphics/pokemon/ninjask/front.png diff --git a/graphics/pokemon/icons/ninjask_icon.png b/graphics/pokemon/ninjask/icon.png similarity index 100% rename from graphics/pokemon/icons/ninjask_icon.png rename to graphics/pokemon/ninjask/icon.png diff --git a/graphics/pokemon/palettes/ninjask_palette.pal b/graphics/pokemon/ninjask/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ninjask_palette.pal rename to graphics/pokemon/ninjask/normal.pal diff --git a/graphics/pokemon/palettes/ninjask_shiny_palette.pal b/graphics/pokemon/ninjask/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ninjask_shiny_palette.pal rename to graphics/pokemon/ninjask/shiny.pal diff --git a/graphics/pokemon/back_pics/noctowl_back_pic.png b/graphics/pokemon/noctowl/back.png similarity index 100% rename from graphics/pokemon/back_pics/noctowl_back_pic.png rename to graphics/pokemon/noctowl/back.png diff --git a/graphics/pokemon/footprints/noctowl_footprint.png b/graphics/pokemon/noctowl/footprint.png similarity index 100% rename from graphics/pokemon/footprints/noctowl_footprint.png rename to graphics/pokemon/noctowl/footprint.png diff --git a/graphics/pokemon/front_pics/noctowl_still_front_pic.png b/graphics/pokemon/noctowl/front.png similarity index 100% rename from graphics/pokemon/front_pics/noctowl_still_front_pic.png rename to graphics/pokemon/noctowl/front.png diff --git a/graphics/pokemon/icons/noctowl_icon.png b/graphics/pokemon/noctowl/icon.png similarity index 100% rename from graphics/pokemon/icons/noctowl_icon.png rename to graphics/pokemon/noctowl/icon.png diff --git a/graphics/pokemon/palettes/noctowl_palette.pal b/graphics/pokemon/noctowl/normal.pal similarity index 100% rename from graphics/pokemon/palettes/noctowl_palette.pal rename to graphics/pokemon/noctowl/normal.pal diff --git a/graphics/pokemon/palettes/noctowl_shiny_palette.pal b/graphics/pokemon/noctowl/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/noctowl_shiny_palette.pal rename to graphics/pokemon/noctowl/shiny.pal diff --git a/graphics/pokemon/back_pics/nosepass_back_pic.png b/graphics/pokemon/nosepass/back.png similarity index 100% rename from graphics/pokemon/back_pics/nosepass_back_pic.png rename to graphics/pokemon/nosepass/back.png diff --git a/graphics/pokemon/footprints/nosepass_footprint.png b/graphics/pokemon/nosepass/footprint.png similarity index 100% rename from graphics/pokemon/footprints/nosepass_footprint.png rename to graphics/pokemon/nosepass/footprint.png diff --git a/graphics/pokemon/front_pics/nosepass_still_front_pic.png b/graphics/pokemon/nosepass/front.png similarity index 100% rename from graphics/pokemon/front_pics/nosepass_still_front_pic.png rename to graphics/pokemon/nosepass/front.png diff --git a/graphics/pokemon/icons/nosepass_icon.png b/graphics/pokemon/nosepass/icon.png similarity index 100% rename from graphics/pokemon/icons/nosepass_icon.png rename to graphics/pokemon/nosepass/icon.png diff --git a/graphics/pokemon/palettes/nosepass_palette.pal b/graphics/pokemon/nosepass/normal.pal similarity index 100% rename from graphics/pokemon/palettes/nosepass_palette.pal rename to graphics/pokemon/nosepass/normal.pal diff --git a/graphics/pokemon/palettes/nosepass_shiny_palette.pal b/graphics/pokemon/nosepass/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/nosepass_shiny_palette.pal rename to graphics/pokemon/nosepass/shiny.pal diff --git a/graphics/pokemon/back_pics/numel_back_pic.png b/graphics/pokemon/numel/back.png similarity index 100% rename from graphics/pokemon/back_pics/numel_back_pic.png rename to graphics/pokemon/numel/back.png diff --git a/graphics/pokemon/footprints/numel_footprint.png b/graphics/pokemon/numel/footprint.png similarity index 100% rename from graphics/pokemon/footprints/numel_footprint.png rename to graphics/pokemon/numel/footprint.png diff --git a/graphics/pokemon/front_pics/numel_still_front_pic.png b/graphics/pokemon/numel/front.png similarity index 100% rename from graphics/pokemon/front_pics/numel_still_front_pic.png rename to graphics/pokemon/numel/front.png diff --git a/graphics/pokemon/icons/numel_icon.png b/graphics/pokemon/numel/icon.png similarity index 100% rename from graphics/pokemon/icons/numel_icon.png rename to graphics/pokemon/numel/icon.png diff --git a/graphics/pokemon/palettes/numel_palette.pal b/graphics/pokemon/numel/normal.pal similarity index 100% rename from graphics/pokemon/palettes/numel_palette.pal rename to graphics/pokemon/numel/normal.pal diff --git a/graphics/pokemon/palettes/numel_shiny_palette.pal b/graphics/pokemon/numel/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/numel_shiny_palette.pal rename to graphics/pokemon/numel/shiny.pal diff --git a/graphics/pokemon/back_pics/nuzleaf_back_pic.png b/graphics/pokemon/nuzleaf/back.png similarity index 100% rename from graphics/pokemon/back_pics/nuzleaf_back_pic.png rename to graphics/pokemon/nuzleaf/back.png diff --git a/graphics/pokemon/footprints/nuzleaf_footprint.png b/graphics/pokemon/nuzleaf/footprint.png similarity index 100% rename from graphics/pokemon/footprints/nuzleaf_footprint.png rename to graphics/pokemon/nuzleaf/footprint.png diff --git a/graphics/pokemon/front_pics/nuzleaf_still_front_pic.png b/graphics/pokemon/nuzleaf/front.png similarity index 100% rename from graphics/pokemon/front_pics/nuzleaf_still_front_pic.png rename to graphics/pokemon/nuzleaf/front.png diff --git a/graphics/pokemon/icons/nuzleaf_icon.png b/graphics/pokemon/nuzleaf/icon.png similarity index 100% rename from graphics/pokemon/icons/nuzleaf_icon.png rename to graphics/pokemon/nuzleaf/icon.png diff --git a/graphics/pokemon/palettes/nuzleaf_palette.pal b/graphics/pokemon/nuzleaf/normal.pal similarity index 100% rename from graphics/pokemon/palettes/nuzleaf_palette.pal rename to graphics/pokemon/nuzleaf/normal.pal diff --git a/graphics/pokemon/palettes/nuzleaf_shiny_palette.pal b/graphics/pokemon/nuzleaf/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/nuzleaf_shiny_palette.pal rename to graphics/pokemon/nuzleaf/shiny.pal diff --git a/graphics/pokemon/back_pics/octillery_back_pic.png b/graphics/pokemon/octillery/back.png similarity index 100% rename from graphics/pokemon/back_pics/octillery_back_pic.png rename to graphics/pokemon/octillery/back.png diff --git a/graphics/pokemon/footprints/octillery_footprint.png b/graphics/pokemon/octillery/footprint.png similarity index 100% rename from graphics/pokemon/footprints/octillery_footprint.png rename to graphics/pokemon/octillery/footprint.png diff --git a/graphics/pokemon/front_pics/octillery_still_front_pic.png b/graphics/pokemon/octillery/front.png similarity index 100% rename from graphics/pokemon/front_pics/octillery_still_front_pic.png rename to graphics/pokemon/octillery/front.png diff --git a/graphics/pokemon/icons/octillery_icon.png b/graphics/pokemon/octillery/icon.png similarity index 100% rename from graphics/pokemon/icons/octillery_icon.png rename to graphics/pokemon/octillery/icon.png diff --git a/graphics/pokemon/palettes/octillery_palette.pal b/graphics/pokemon/octillery/normal.pal similarity index 100% rename from graphics/pokemon/palettes/octillery_palette.pal rename to graphics/pokemon/octillery/normal.pal diff --git a/graphics/pokemon/palettes/octillery_shiny_palette.pal b/graphics/pokemon/octillery/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/octillery_shiny_palette.pal rename to graphics/pokemon/octillery/shiny.pal diff --git a/graphics/pokemon/back_pics/oddish_back_pic.png b/graphics/pokemon/oddish/back.png similarity index 100% rename from graphics/pokemon/back_pics/oddish_back_pic.png rename to graphics/pokemon/oddish/back.png diff --git a/graphics/pokemon/footprints/oddish_footprint.png b/graphics/pokemon/oddish/footprint.png similarity index 100% rename from graphics/pokemon/footprints/oddish_footprint.png rename to graphics/pokemon/oddish/footprint.png diff --git a/graphics/pokemon/front_pics/oddish_still_front_pic.png b/graphics/pokemon/oddish/front.png similarity index 100% rename from graphics/pokemon/front_pics/oddish_still_front_pic.png rename to graphics/pokemon/oddish/front.png diff --git a/graphics/pokemon/icons/oddish_icon.png b/graphics/pokemon/oddish/icon.png similarity index 100% rename from graphics/pokemon/icons/oddish_icon.png rename to graphics/pokemon/oddish/icon.png diff --git a/graphics/pokemon/palettes/oddish_palette.pal b/graphics/pokemon/oddish/normal.pal similarity index 100% rename from graphics/pokemon/palettes/oddish_palette.pal rename to graphics/pokemon/oddish/normal.pal diff --git a/graphics/pokemon/palettes/oddish_shiny_palette.pal b/graphics/pokemon/oddish/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/oddish_shiny_palette.pal rename to graphics/pokemon/oddish/shiny.pal diff --git a/graphics/pokemon/back_pics/omanyte_back_pic.png b/graphics/pokemon/omanyte/back.png similarity index 100% rename from graphics/pokemon/back_pics/omanyte_back_pic.png rename to graphics/pokemon/omanyte/back.png diff --git a/graphics/pokemon/footprints/omanyte_footprint.png b/graphics/pokemon/omanyte/footprint.png similarity index 100% rename from graphics/pokemon/footprints/omanyte_footprint.png rename to graphics/pokemon/omanyte/footprint.png diff --git a/graphics/pokemon/front_pics/omanyte_still_front_pic.png b/graphics/pokemon/omanyte/front.png similarity index 100% rename from graphics/pokemon/front_pics/omanyte_still_front_pic.png rename to graphics/pokemon/omanyte/front.png diff --git a/graphics/pokemon/icons/omanyte_icon.png b/graphics/pokemon/omanyte/icon.png similarity index 100% rename from graphics/pokemon/icons/omanyte_icon.png rename to graphics/pokemon/omanyte/icon.png diff --git a/graphics/pokemon/palettes/omanyte_palette.pal b/graphics/pokemon/omanyte/normal.pal similarity index 100% rename from graphics/pokemon/palettes/omanyte_palette.pal rename to graphics/pokemon/omanyte/normal.pal diff --git a/graphics/pokemon/palettes/omanyte_shiny_palette.pal b/graphics/pokemon/omanyte/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/omanyte_shiny_palette.pal rename to graphics/pokemon/omanyte/shiny.pal diff --git a/graphics/pokemon/back_pics/omastar_back_pic.png b/graphics/pokemon/omastar/back.png similarity index 100% rename from graphics/pokemon/back_pics/omastar_back_pic.png rename to graphics/pokemon/omastar/back.png diff --git a/graphics/pokemon/footprints/omastar_footprint.png b/graphics/pokemon/omastar/footprint.png similarity index 100% rename from graphics/pokemon/footprints/omastar_footprint.png rename to graphics/pokemon/omastar/footprint.png diff --git a/graphics/pokemon/front_pics/omastar_still_front_pic.png b/graphics/pokemon/omastar/front.png similarity index 100% rename from graphics/pokemon/front_pics/omastar_still_front_pic.png rename to graphics/pokemon/omastar/front.png diff --git a/graphics/pokemon/icons/omastar_icon.png b/graphics/pokemon/omastar/icon.png similarity index 100% rename from graphics/pokemon/icons/omastar_icon.png rename to graphics/pokemon/omastar/icon.png diff --git a/graphics/pokemon/palettes/omastar_palette.pal b/graphics/pokemon/omastar/normal.pal similarity index 100% rename from graphics/pokemon/palettes/omastar_palette.pal rename to graphics/pokemon/omastar/normal.pal diff --git a/graphics/pokemon/palettes/omastar_shiny_palette.pal b/graphics/pokemon/omastar/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/omastar_shiny_palette.pal rename to graphics/pokemon/omastar/shiny.pal diff --git a/graphics/pokemon/back_pics/onix_back_pic.png b/graphics/pokemon/onix/back.png similarity index 100% rename from graphics/pokemon/back_pics/onix_back_pic.png rename to graphics/pokemon/onix/back.png diff --git a/graphics/pokemon/footprints/onix_footprint.png b/graphics/pokemon/onix/footprint.png similarity index 100% rename from graphics/pokemon/footprints/onix_footprint.png rename to graphics/pokemon/onix/footprint.png diff --git a/graphics/pokemon/front_pics/onix_still_front_pic.png b/graphics/pokemon/onix/front.png similarity index 100% rename from graphics/pokemon/front_pics/onix_still_front_pic.png rename to graphics/pokemon/onix/front.png diff --git a/graphics/pokemon/icons/onix_icon.png b/graphics/pokemon/onix/icon.png similarity index 100% rename from graphics/pokemon/icons/onix_icon.png rename to graphics/pokemon/onix/icon.png diff --git a/graphics/pokemon/palettes/onix_palette.pal b/graphics/pokemon/onix/normal.pal similarity index 100% rename from graphics/pokemon/palettes/onix_palette.pal rename to graphics/pokemon/onix/normal.pal diff --git a/graphics/pokemon/palettes/onix_shiny_palette.pal b/graphics/pokemon/onix/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/onix_shiny_palette.pal rename to graphics/pokemon/onix/shiny.pal diff --git a/graphics/pokemon/back_pics/paras_back_pic.png b/graphics/pokemon/paras/back.png similarity index 100% rename from graphics/pokemon/back_pics/paras_back_pic.png rename to graphics/pokemon/paras/back.png diff --git a/graphics/pokemon/footprints/paras_footprint.png b/graphics/pokemon/paras/footprint.png similarity index 100% rename from graphics/pokemon/footprints/paras_footprint.png rename to graphics/pokemon/paras/footprint.png diff --git a/graphics/pokemon/front_pics/paras_still_front_pic.png b/graphics/pokemon/paras/front.png similarity index 100% rename from graphics/pokemon/front_pics/paras_still_front_pic.png rename to graphics/pokemon/paras/front.png diff --git a/graphics/pokemon/icons/paras_icon.png b/graphics/pokemon/paras/icon.png similarity index 100% rename from graphics/pokemon/icons/paras_icon.png rename to graphics/pokemon/paras/icon.png diff --git a/graphics/pokemon/palettes/paras_palette.pal b/graphics/pokemon/paras/normal.pal similarity index 100% rename from graphics/pokemon/palettes/paras_palette.pal rename to graphics/pokemon/paras/normal.pal diff --git a/graphics/pokemon/palettes/paras_shiny_palette.pal b/graphics/pokemon/paras/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/paras_shiny_palette.pal rename to graphics/pokemon/paras/shiny.pal diff --git a/graphics/pokemon/back_pics/parasect_back_pic.png b/graphics/pokemon/parasect/back.png similarity index 100% rename from graphics/pokemon/back_pics/parasect_back_pic.png rename to graphics/pokemon/parasect/back.png diff --git a/graphics/pokemon/footprints/parasect_footprint.png b/graphics/pokemon/parasect/footprint.png similarity index 100% rename from graphics/pokemon/footprints/parasect_footprint.png rename to graphics/pokemon/parasect/footprint.png diff --git a/graphics/pokemon/front_pics/parasect_still_front_pic.png b/graphics/pokemon/parasect/front.png similarity index 100% rename from graphics/pokemon/front_pics/parasect_still_front_pic.png rename to graphics/pokemon/parasect/front.png diff --git a/graphics/pokemon/icons/parasect_icon.png b/graphics/pokemon/parasect/icon.png similarity index 100% rename from graphics/pokemon/icons/parasect_icon.png rename to graphics/pokemon/parasect/icon.png diff --git a/graphics/pokemon/palettes/parasect_palette.pal b/graphics/pokemon/parasect/normal.pal similarity index 100% rename from graphics/pokemon/palettes/parasect_palette.pal rename to graphics/pokemon/parasect/normal.pal diff --git a/graphics/pokemon/palettes/parasect_shiny_palette.pal b/graphics/pokemon/parasect/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/parasect_shiny_palette.pal rename to graphics/pokemon/parasect/shiny.pal diff --git a/graphics/pokemon/back_pics/pelipper_back_pic.png b/graphics/pokemon/pelipper/back.png similarity index 100% rename from graphics/pokemon/back_pics/pelipper_back_pic.png rename to graphics/pokemon/pelipper/back.png diff --git a/graphics/pokemon/footprints/pelipper_footprint.png b/graphics/pokemon/pelipper/footprint.png similarity index 100% rename from graphics/pokemon/footprints/pelipper_footprint.png rename to graphics/pokemon/pelipper/footprint.png diff --git a/graphics/pokemon/front_pics/pelipper_still_front_pic.png b/graphics/pokemon/pelipper/front.png similarity index 100% rename from graphics/pokemon/front_pics/pelipper_still_front_pic.png rename to graphics/pokemon/pelipper/front.png diff --git a/graphics/pokemon/icons/pelipper_icon.png b/graphics/pokemon/pelipper/icon.png similarity index 100% rename from graphics/pokemon/icons/pelipper_icon.png rename to graphics/pokemon/pelipper/icon.png diff --git a/graphics/pokemon/palettes/pelipper_palette.pal b/graphics/pokemon/pelipper/normal.pal similarity index 100% rename from graphics/pokemon/palettes/pelipper_palette.pal rename to graphics/pokemon/pelipper/normal.pal diff --git a/graphics/pokemon/palettes/pelipper_shiny_palette.pal b/graphics/pokemon/pelipper/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/pelipper_shiny_palette.pal rename to graphics/pokemon/pelipper/shiny.pal diff --git a/graphics/pokemon/back_pics/persian_back_pic.png b/graphics/pokemon/persian/back.png similarity index 100% rename from graphics/pokemon/back_pics/persian_back_pic.png rename to graphics/pokemon/persian/back.png diff --git a/graphics/pokemon/footprints/persian_footprint.png b/graphics/pokemon/persian/footprint.png similarity index 100% rename from graphics/pokemon/footprints/persian_footprint.png rename to graphics/pokemon/persian/footprint.png diff --git a/graphics/pokemon/front_pics/persian_still_front_pic.png b/graphics/pokemon/persian/front.png similarity index 100% rename from graphics/pokemon/front_pics/persian_still_front_pic.png rename to graphics/pokemon/persian/front.png diff --git a/graphics/pokemon/icons/persian_icon.png b/graphics/pokemon/persian/icon.png similarity index 100% rename from graphics/pokemon/icons/persian_icon.png rename to graphics/pokemon/persian/icon.png diff --git a/graphics/pokemon/palettes/persian_palette.pal b/graphics/pokemon/persian/normal.pal similarity index 100% rename from graphics/pokemon/palettes/persian_palette.pal rename to graphics/pokemon/persian/normal.pal diff --git a/graphics/pokemon/palettes/persian_shiny_palette.pal b/graphics/pokemon/persian/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/persian_shiny_palette.pal rename to graphics/pokemon/persian/shiny.pal diff --git a/graphics/pokemon/back_pics/phanpy_back_pic.png b/graphics/pokemon/phanpy/back.png similarity index 100% rename from graphics/pokemon/back_pics/phanpy_back_pic.png rename to graphics/pokemon/phanpy/back.png diff --git a/graphics/pokemon/footprints/phanpy_footprint.png b/graphics/pokemon/phanpy/footprint.png similarity index 100% rename from graphics/pokemon/footprints/phanpy_footprint.png rename to graphics/pokemon/phanpy/footprint.png diff --git a/graphics/pokemon/front_pics/phanpy_still_front_pic.png b/graphics/pokemon/phanpy/front.png similarity index 100% rename from graphics/pokemon/front_pics/phanpy_still_front_pic.png rename to graphics/pokemon/phanpy/front.png diff --git a/graphics/pokemon/icons/phanpy_icon.png b/graphics/pokemon/phanpy/icon.png similarity index 100% rename from graphics/pokemon/icons/phanpy_icon.png rename to graphics/pokemon/phanpy/icon.png diff --git a/graphics/pokemon/palettes/phanpy_palette.pal b/graphics/pokemon/phanpy/normal.pal similarity index 100% rename from graphics/pokemon/palettes/phanpy_palette.pal rename to graphics/pokemon/phanpy/normal.pal diff --git a/graphics/pokemon/palettes/phanpy_shiny_palette.pal b/graphics/pokemon/phanpy/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/phanpy_shiny_palette.pal rename to graphics/pokemon/phanpy/shiny.pal diff --git a/graphics/pokemon/back_pics/pichu_back_pic.png b/graphics/pokemon/pichu/back.png similarity index 100% rename from graphics/pokemon/back_pics/pichu_back_pic.png rename to graphics/pokemon/pichu/back.png diff --git a/graphics/pokemon/footprints/pichu_footprint.png b/graphics/pokemon/pichu/footprint.png similarity index 100% rename from graphics/pokemon/footprints/pichu_footprint.png rename to graphics/pokemon/pichu/footprint.png diff --git a/graphics/pokemon/front_pics/pichu_still_front_pic.png b/graphics/pokemon/pichu/front.png similarity index 100% rename from graphics/pokemon/front_pics/pichu_still_front_pic.png rename to graphics/pokemon/pichu/front.png diff --git a/graphics/pokemon/icons/pichu_icon.png b/graphics/pokemon/pichu/icon.png similarity index 100% rename from graphics/pokemon/icons/pichu_icon.png rename to graphics/pokemon/pichu/icon.png diff --git a/graphics/pokemon/palettes/pichu_palette.pal b/graphics/pokemon/pichu/normal.pal similarity index 100% rename from graphics/pokemon/palettes/pichu_palette.pal rename to graphics/pokemon/pichu/normal.pal diff --git a/graphics/pokemon/palettes/pichu_shiny_palette.pal b/graphics/pokemon/pichu/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/pichu_shiny_palette.pal rename to graphics/pokemon/pichu/shiny.pal diff --git a/graphics/pokemon/back_pics/pidgeot_back_pic.png b/graphics/pokemon/pidgeot/back.png similarity index 100% rename from graphics/pokemon/back_pics/pidgeot_back_pic.png rename to graphics/pokemon/pidgeot/back.png diff --git a/graphics/pokemon/footprints/pidgeot_footprint.png b/graphics/pokemon/pidgeot/footprint.png similarity index 100% rename from graphics/pokemon/footprints/pidgeot_footprint.png rename to graphics/pokemon/pidgeot/footprint.png diff --git a/graphics/pokemon/front_pics/pidgeot_still_front_pic.png b/graphics/pokemon/pidgeot/front.png similarity index 100% rename from graphics/pokemon/front_pics/pidgeot_still_front_pic.png rename to graphics/pokemon/pidgeot/front.png diff --git a/graphics/pokemon/icons/pidgeot_icon.png b/graphics/pokemon/pidgeot/icon.png similarity index 100% rename from graphics/pokemon/icons/pidgeot_icon.png rename to graphics/pokemon/pidgeot/icon.png diff --git a/graphics/pokemon/palettes/pidgeot_palette.pal b/graphics/pokemon/pidgeot/normal.pal similarity index 100% rename from graphics/pokemon/palettes/pidgeot_palette.pal rename to graphics/pokemon/pidgeot/normal.pal diff --git a/graphics/pokemon/palettes/pidgeot_shiny_palette.pal b/graphics/pokemon/pidgeot/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/pidgeot_shiny_palette.pal rename to graphics/pokemon/pidgeot/shiny.pal diff --git a/graphics/pokemon/back_pics/pidgeotto_back_pic.png b/graphics/pokemon/pidgeotto/back.png similarity index 100% rename from graphics/pokemon/back_pics/pidgeotto_back_pic.png rename to graphics/pokemon/pidgeotto/back.png diff --git a/graphics/pokemon/footprints/pidgeotto_footprint.png b/graphics/pokemon/pidgeotto/footprint.png similarity index 100% rename from graphics/pokemon/footprints/pidgeotto_footprint.png rename to graphics/pokemon/pidgeotto/footprint.png diff --git a/graphics/pokemon/front_pics/pidgeotto_still_front_pic.png b/graphics/pokemon/pidgeotto/front.png similarity index 100% rename from graphics/pokemon/front_pics/pidgeotto_still_front_pic.png rename to graphics/pokemon/pidgeotto/front.png diff --git a/graphics/pokemon/icons/pidgeotto_icon.png b/graphics/pokemon/pidgeotto/icon.png similarity index 100% rename from graphics/pokemon/icons/pidgeotto_icon.png rename to graphics/pokemon/pidgeotto/icon.png diff --git a/graphics/pokemon/palettes/pidgeotto_palette.pal b/graphics/pokemon/pidgeotto/normal.pal similarity index 100% rename from graphics/pokemon/palettes/pidgeotto_palette.pal rename to graphics/pokemon/pidgeotto/normal.pal diff --git a/graphics/pokemon/palettes/pidgeotto_shiny_palette.pal b/graphics/pokemon/pidgeotto/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/pidgeotto_shiny_palette.pal rename to graphics/pokemon/pidgeotto/shiny.pal diff --git a/graphics/pokemon/back_pics/pidgey_back_pic.png b/graphics/pokemon/pidgey/back.png similarity index 100% rename from graphics/pokemon/back_pics/pidgey_back_pic.png rename to graphics/pokemon/pidgey/back.png diff --git a/graphics/pokemon/footprints/pidgey_footprint.png b/graphics/pokemon/pidgey/footprint.png similarity index 100% rename from graphics/pokemon/footprints/pidgey_footprint.png rename to graphics/pokemon/pidgey/footprint.png diff --git a/graphics/pokemon/front_pics/pidgey_still_front_pic.png b/graphics/pokemon/pidgey/front.png similarity index 100% rename from graphics/pokemon/front_pics/pidgey_still_front_pic.png rename to graphics/pokemon/pidgey/front.png diff --git a/graphics/pokemon/icons/pidgey_icon.png b/graphics/pokemon/pidgey/icon.png similarity index 100% rename from graphics/pokemon/icons/pidgey_icon.png rename to graphics/pokemon/pidgey/icon.png diff --git a/graphics/pokemon/palettes/pidgey_palette.pal b/graphics/pokemon/pidgey/normal.pal similarity index 100% rename from graphics/pokemon/palettes/pidgey_palette.pal rename to graphics/pokemon/pidgey/normal.pal diff --git a/graphics/pokemon/palettes/pidgey_shiny_palette.pal b/graphics/pokemon/pidgey/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/pidgey_shiny_palette.pal rename to graphics/pokemon/pidgey/shiny.pal diff --git a/graphics/pokemon/back_pics/pikachu_back_pic.png b/graphics/pokemon/pikachu/back.png similarity index 100% rename from graphics/pokemon/back_pics/pikachu_back_pic.png rename to graphics/pokemon/pikachu/back.png diff --git a/graphics/pokemon/footprints/pikachu_footprint.png b/graphics/pokemon/pikachu/footprint.png similarity index 100% rename from graphics/pokemon/footprints/pikachu_footprint.png rename to graphics/pokemon/pikachu/footprint.png diff --git a/graphics/pokemon/front_pics/pikachu_still_front_pic.png b/graphics/pokemon/pikachu/front.png similarity index 100% rename from graphics/pokemon/front_pics/pikachu_still_front_pic.png rename to graphics/pokemon/pikachu/front.png diff --git a/graphics/pokemon/icons/pikachu_icon.png b/graphics/pokemon/pikachu/icon.png similarity index 100% rename from graphics/pokemon/icons/pikachu_icon.png rename to graphics/pokemon/pikachu/icon.png diff --git a/graphics/pokemon/palettes/pikachu_palette.pal b/graphics/pokemon/pikachu/normal.pal similarity index 100% rename from graphics/pokemon/palettes/pikachu_palette.pal rename to graphics/pokemon/pikachu/normal.pal diff --git a/graphics/pokemon/palettes/pikachu_shiny_palette.pal b/graphics/pokemon/pikachu/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/pikachu_shiny_palette.pal rename to graphics/pokemon/pikachu/shiny.pal diff --git a/graphics/pokemon/back_pics/piloswine_back_pic.png b/graphics/pokemon/piloswine/back.png similarity index 100% rename from graphics/pokemon/back_pics/piloswine_back_pic.png rename to graphics/pokemon/piloswine/back.png diff --git a/graphics/pokemon/footprints/piloswine_footprint.png b/graphics/pokemon/piloswine/footprint.png similarity index 100% rename from graphics/pokemon/footprints/piloswine_footprint.png rename to graphics/pokemon/piloswine/footprint.png diff --git a/graphics/pokemon/front_pics/piloswine_still_front_pic.png b/graphics/pokemon/piloswine/front.png similarity index 100% rename from graphics/pokemon/front_pics/piloswine_still_front_pic.png rename to graphics/pokemon/piloswine/front.png diff --git a/graphics/pokemon/icons/piloswine_icon.png b/graphics/pokemon/piloswine/icon.png similarity index 100% rename from graphics/pokemon/icons/piloswine_icon.png rename to graphics/pokemon/piloswine/icon.png diff --git a/graphics/pokemon/palettes/piloswine_palette.pal b/graphics/pokemon/piloswine/normal.pal similarity index 100% rename from graphics/pokemon/palettes/piloswine_palette.pal rename to graphics/pokemon/piloswine/normal.pal diff --git a/graphics/pokemon/palettes/piloswine_shiny_palette.pal b/graphics/pokemon/piloswine/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/piloswine_shiny_palette.pal rename to graphics/pokemon/piloswine/shiny.pal diff --git a/graphics/pokemon/back_pics/pineco_back_pic.png b/graphics/pokemon/pineco/back.png similarity index 100% rename from graphics/pokemon/back_pics/pineco_back_pic.png rename to graphics/pokemon/pineco/back.png diff --git a/graphics/pokemon/footprints/pineco_footprint.png b/graphics/pokemon/pineco/footprint.png similarity index 100% rename from graphics/pokemon/footprints/pineco_footprint.png rename to graphics/pokemon/pineco/footprint.png diff --git a/graphics/pokemon/front_pics/pineco_still_front_pic.png b/graphics/pokemon/pineco/front.png similarity index 100% rename from graphics/pokemon/front_pics/pineco_still_front_pic.png rename to graphics/pokemon/pineco/front.png diff --git a/graphics/pokemon/icons/pineco_icon.png b/graphics/pokemon/pineco/icon.png similarity index 100% rename from graphics/pokemon/icons/pineco_icon.png rename to graphics/pokemon/pineco/icon.png diff --git a/graphics/pokemon/palettes/pineco_palette.pal b/graphics/pokemon/pineco/normal.pal similarity index 100% rename from graphics/pokemon/palettes/pineco_palette.pal rename to graphics/pokemon/pineco/normal.pal diff --git a/graphics/pokemon/palettes/pineco_shiny_palette.pal b/graphics/pokemon/pineco/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/pineco_shiny_palette.pal rename to graphics/pokemon/pineco/shiny.pal diff --git a/graphics/pokemon/back_pics/pinsir_back_pic.png b/graphics/pokemon/pinsir/back.png similarity index 100% rename from graphics/pokemon/back_pics/pinsir_back_pic.png rename to graphics/pokemon/pinsir/back.png diff --git a/graphics/pokemon/footprints/pinsir_footprint.png b/graphics/pokemon/pinsir/footprint.png similarity index 100% rename from graphics/pokemon/footprints/pinsir_footprint.png rename to graphics/pokemon/pinsir/footprint.png diff --git a/graphics/pokemon/front_pics/pinsir_still_front_pic.png b/graphics/pokemon/pinsir/front.png similarity index 100% rename from graphics/pokemon/front_pics/pinsir_still_front_pic.png rename to graphics/pokemon/pinsir/front.png diff --git a/graphics/pokemon/icons/pinsir_icon.png b/graphics/pokemon/pinsir/icon.png similarity index 100% rename from graphics/pokemon/icons/pinsir_icon.png rename to graphics/pokemon/pinsir/icon.png diff --git a/graphics/pokemon/palettes/pinsir_palette.pal b/graphics/pokemon/pinsir/normal.pal similarity index 100% rename from graphics/pokemon/palettes/pinsir_palette.pal rename to graphics/pokemon/pinsir/normal.pal diff --git a/graphics/pokemon/palettes/pinsir_shiny_palette.pal b/graphics/pokemon/pinsir/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/pinsir_shiny_palette.pal rename to graphics/pokemon/pinsir/shiny.pal diff --git a/graphics/pokemon/back_pics/plusle_back_pic.png b/graphics/pokemon/plusle/back.png similarity index 100% rename from graphics/pokemon/back_pics/plusle_back_pic.png rename to graphics/pokemon/plusle/back.png diff --git a/graphics/pokemon/footprints/plusle_footprint.png b/graphics/pokemon/plusle/footprint.png similarity index 100% rename from graphics/pokemon/footprints/plusle_footprint.png rename to graphics/pokemon/plusle/footprint.png diff --git a/graphics/pokemon/front_pics/plusle_still_front_pic.png b/graphics/pokemon/plusle/front.png similarity index 100% rename from graphics/pokemon/front_pics/plusle_still_front_pic.png rename to graphics/pokemon/plusle/front.png diff --git a/graphics/pokemon/icons/plusle_icon.png b/graphics/pokemon/plusle/icon.png similarity index 100% rename from graphics/pokemon/icons/plusle_icon.png rename to graphics/pokemon/plusle/icon.png diff --git a/graphics/pokemon/palettes/plusle_palette.pal b/graphics/pokemon/plusle/normal.pal similarity index 100% rename from graphics/pokemon/palettes/plusle_palette.pal rename to graphics/pokemon/plusle/normal.pal diff --git a/graphics/pokemon/palettes/plusle_shiny_palette.pal b/graphics/pokemon/plusle/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/plusle_shiny_palette.pal rename to graphics/pokemon/plusle/shiny.pal diff --git a/graphics/pokemon/back_pics/politoed_back_pic.png b/graphics/pokemon/politoed/back.png similarity index 100% rename from graphics/pokemon/back_pics/politoed_back_pic.png rename to graphics/pokemon/politoed/back.png diff --git a/graphics/pokemon/footprints/politoed_footprint.png b/graphics/pokemon/politoed/footprint.png similarity index 100% rename from graphics/pokemon/footprints/politoed_footprint.png rename to graphics/pokemon/politoed/footprint.png diff --git a/graphics/pokemon/front_pics/politoed_still_front_pic.png b/graphics/pokemon/politoed/front.png similarity index 100% rename from graphics/pokemon/front_pics/politoed_still_front_pic.png rename to graphics/pokemon/politoed/front.png diff --git a/graphics/pokemon/icons/politoed_icon.png b/graphics/pokemon/politoed/icon.png similarity index 100% rename from graphics/pokemon/icons/politoed_icon.png rename to graphics/pokemon/politoed/icon.png diff --git a/graphics/pokemon/palettes/politoed_palette.pal b/graphics/pokemon/politoed/normal.pal similarity index 100% rename from graphics/pokemon/palettes/politoed_palette.pal rename to graphics/pokemon/politoed/normal.pal diff --git a/graphics/pokemon/palettes/politoed_shiny_palette.pal b/graphics/pokemon/politoed/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/politoed_shiny_palette.pal rename to graphics/pokemon/politoed/shiny.pal diff --git a/graphics/pokemon/back_pics/poliwag_back_pic.png b/graphics/pokemon/poliwag/back.png similarity index 100% rename from graphics/pokemon/back_pics/poliwag_back_pic.png rename to graphics/pokemon/poliwag/back.png diff --git a/graphics/pokemon/footprints/poliwag_footprint.png b/graphics/pokemon/poliwag/footprint.png similarity index 100% rename from graphics/pokemon/footprints/poliwag_footprint.png rename to graphics/pokemon/poliwag/footprint.png diff --git a/graphics/pokemon/front_pics/poliwag_still_front_pic.png b/graphics/pokemon/poliwag/front.png similarity index 100% rename from graphics/pokemon/front_pics/poliwag_still_front_pic.png rename to graphics/pokemon/poliwag/front.png diff --git a/graphics/pokemon/icons/poliwag_icon.png b/graphics/pokemon/poliwag/icon.png similarity index 100% rename from graphics/pokemon/icons/poliwag_icon.png rename to graphics/pokemon/poliwag/icon.png diff --git a/graphics/pokemon/palettes/poliwag_palette.pal b/graphics/pokemon/poliwag/normal.pal similarity index 100% rename from graphics/pokemon/palettes/poliwag_palette.pal rename to graphics/pokemon/poliwag/normal.pal diff --git a/graphics/pokemon/palettes/poliwag_shiny_palette.pal b/graphics/pokemon/poliwag/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/poliwag_shiny_palette.pal rename to graphics/pokemon/poliwag/shiny.pal diff --git a/graphics/pokemon/back_pics/poliwhirl_back_pic.png b/graphics/pokemon/poliwhirl/back.png similarity index 100% rename from graphics/pokemon/back_pics/poliwhirl_back_pic.png rename to graphics/pokemon/poliwhirl/back.png diff --git a/graphics/pokemon/footprints/poliwhirl_footprint.png b/graphics/pokemon/poliwhirl/footprint.png similarity index 100% rename from graphics/pokemon/footprints/poliwhirl_footprint.png rename to graphics/pokemon/poliwhirl/footprint.png diff --git a/graphics/pokemon/front_pics/poliwhirl_still_front_pic.png b/graphics/pokemon/poliwhirl/front.png similarity index 100% rename from graphics/pokemon/front_pics/poliwhirl_still_front_pic.png rename to graphics/pokemon/poliwhirl/front.png diff --git a/graphics/pokemon/icons/poliwhirl_icon.png b/graphics/pokemon/poliwhirl/icon.png similarity index 100% rename from graphics/pokemon/icons/poliwhirl_icon.png rename to graphics/pokemon/poliwhirl/icon.png diff --git a/graphics/pokemon/palettes/poliwhirl_palette.pal b/graphics/pokemon/poliwhirl/normal.pal similarity index 100% rename from graphics/pokemon/palettes/poliwhirl_palette.pal rename to graphics/pokemon/poliwhirl/normal.pal diff --git a/graphics/pokemon/palettes/poliwhirl_shiny_palette.pal b/graphics/pokemon/poliwhirl/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/poliwhirl_shiny_palette.pal rename to graphics/pokemon/poliwhirl/shiny.pal diff --git a/graphics/pokemon/back_pics/poliwrath_back_pic.png b/graphics/pokemon/poliwrath/back.png similarity index 100% rename from graphics/pokemon/back_pics/poliwrath_back_pic.png rename to graphics/pokemon/poliwrath/back.png diff --git a/graphics/pokemon/footprints/poliwrath_footprint.png b/graphics/pokemon/poliwrath/footprint.png similarity index 100% rename from graphics/pokemon/footprints/poliwrath_footprint.png rename to graphics/pokemon/poliwrath/footprint.png diff --git a/graphics/pokemon/front_pics/poliwrath_still_front_pic.png b/graphics/pokemon/poliwrath/front.png similarity index 100% rename from graphics/pokemon/front_pics/poliwrath_still_front_pic.png rename to graphics/pokemon/poliwrath/front.png diff --git a/graphics/pokemon/icons/poliwrath_icon.png b/graphics/pokemon/poliwrath/icon.png similarity index 100% rename from graphics/pokemon/icons/poliwrath_icon.png rename to graphics/pokemon/poliwrath/icon.png diff --git a/graphics/pokemon/palettes/poliwrath_palette.pal b/graphics/pokemon/poliwrath/normal.pal similarity index 100% rename from graphics/pokemon/palettes/poliwrath_palette.pal rename to graphics/pokemon/poliwrath/normal.pal diff --git a/graphics/pokemon/palettes/poliwrath_shiny_palette.pal b/graphics/pokemon/poliwrath/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/poliwrath_shiny_palette.pal rename to graphics/pokemon/poliwrath/shiny.pal diff --git a/graphics/pokemon/back_pics/ponyta_back_pic.png b/graphics/pokemon/ponyta/back.png similarity index 100% rename from graphics/pokemon/back_pics/ponyta_back_pic.png rename to graphics/pokemon/ponyta/back.png diff --git a/graphics/pokemon/footprints/ponyta_footprint.png b/graphics/pokemon/ponyta/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ponyta_footprint.png rename to graphics/pokemon/ponyta/footprint.png diff --git a/graphics/pokemon/front_pics/ponyta_still_front_pic.png b/graphics/pokemon/ponyta/front.png similarity index 100% rename from graphics/pokemon/front_pics/ponyta_still_front_pic.png rename to graphics/pokemon/ponyta/front.png diff --git a/graphics/pokemon/icons/ponyta_icon.png b/graphics/pokemon/ponyta/icon.png similarity index 100% rename from graphics/pokemon/icons/ponyta_icon.png rename to graphics/pokemon/ponyta/icon.png diff --git a/graphics/pokemon/palettes/ponyta_palette.pal b/graphics/pokemon/ponyta/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ponyta_palette.pal rename to graphics/pokemon/ponyta/normal.pal diff --git a/graphics/pokemon/palettes/ponyta_shiny_palette.pal b/graphics/pokemon/ponyta/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ponyta_shiny_palette.pal rename to graphics/pokemon/ponyta/shiny.pal diff --git a/graphics/pokemon/back_pics/poochyena_back_pic.png b/graphics/pokemon/poochyena/back.png similarity index 100% rename from graphics/pokemon/back_pics/poochyena_back_pic.png rename to graphics/pokemon/poochyena/back.png diff --git a/graphics/pokemon/footprints/poochyena_footprint.png b/graphics/pokemon/poochyena/footprint.png similarity index 100% rename from graphics/pokemon/footprints/poochyena_footprint.png rename to graphics/pokemon/poochyena/footprint.png diff --git a/graphics/pokemon/front_pics/poochyena_still_front_pic.png b/graphics/pokemon/poochyena/front.png similarity index 100% rename from graphics/pokemon/front_pics/poochyena_still_front_pic.png rename to graphics/pokemon/poochyena/front.png diff --git a/graphics/pokemon/icons/poochyena_icon.png b/graphics/pokemon/poochyena/icon.png similarity index 100% rename from graphics/pokemon/icons/poochyena_icon.png rename to graphics/pokemon/poochyena/icon.png diff --git a/graphics/pokemon/palettes/poochyena_palette.pal b/graphics/pokemon/poochyena/normal.pal similarity index 100% rename from graphics/pokemon/palettes/poochyena_palette.pal rename to graphics/pokemon/poochyena/normal.pal diff --git a/graphics/pokemon/palettes/poochyena_shiny_palette.pal b/graphics/pokemon/poochyena/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/poochyena_shiny_palette.pal rename to graphics/pokemon/poochyena/shiny.pal diff --git a/graphics/pokemon/back_pics/porygon_back_pic.png b/graphics/pokemon/porygon/back.png similarity index 100% rename from graphics/pokemon/back_pics/porygon_back_pic.png rename to graphics/pokemon/porygon/back.png diff --git a/graphics/pokemon/footprints/porygon_footprint.png b/graphics/pokemon/porygon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/porygon_footprint.png rename to graphics/pokemon/porygon/footprint.png diff --git a/graphics/pokemon/front_pics/porygon_still_front_pic.png b/graphics/pokemon/porygon/front.png similarity index 100% rename from graphics/pokemon/front_pics/porygon_still_front_pic.png rename to graphics/pokemon/porygon/front.png diff --git a/graphics/pokemon/icons/porygon_icon.png b/graphics/pokemon/porygon/icon.png similarity index 100% rename from graphics/pokemon/icons/porygon_icon.png rename to graphics/pokemon/porygon/icon.png diff --git a/graphics/pokemon/palettes/porygon_palette.pal b/graphics/pokemon/porygon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/porygon_palette.pal rename to graphics/pokemon/porygon/normal.pal diff --git a/graphics/pokemon/palettes/porygon_shiny_palette.pal b/graphics/pokemon/porygon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/porygon_shiny_palette.pal rename to graphics/pokemon/porygon/shiny.pal diff --git a/graphics/pokemon/back_pics/porygon2_back_pic.png b/graphics/pokemon/porygon2/back.png similarity index 100% rename from graphics/pokemon/back_pics/porygon2_back_pic.png rename to graphics/pokemon/porygon2/back.png diff --git a/graphics/pokemon/footprints/porygon2_footprint.png b/graphics/pokemon/porygon2/footprint.png similarity index 100% rename from graphics/pokemon/footprints/porygon2_footprint.png rename to graphics/pokemon/porygon2/footprint.png diff --git a/graphics/pokemon/front_pics/porygon2_still_front_pic.png b/graphics/pokemon/porygon2/front.png similarity index 100% rename from graphics/pokemon/front_pics/porygon2_still_front_pic.png rename to graphics/pokemon/porygon2/front.png diff --git a/graphics/pokemon/icons/porygon2_icon.png b/graphics/pokemon/porygon2/icon.png similarity index 100% rename from graphics/pokemon/icons/porygon2_icon.png rename to graphics/pokemon/porygon2/icon.png diff --git a/graphics/pokemon/palettes/porygon2_palette.pal b/graphics/pokemon/porygon2/normal.pal similarity index 100% rename from graphics/pokemon/palettes/porygon2_palette.pal rename to graphics/pokemon/porygon2/normal.pal diff --git a/graphics/pokemon/palettes/porygon2_shiny_palette.pal b/graphics/pokemon/porygon2/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/porygon2_shiny_palette.pal rename to graphics/pokemon/porygon2/shiny.pal diff --git a/graphics/pokemon/back_pics/primeape_back_pic.png b/graphics/pokemon/primeape/back.png similarity index 100% rename from graphics/pokemon/back_pics/primeape_back_pic.png rename to graphics/pokemon/primeape/back.png diff --git a/graphics/pokemon/footprints/primeape_footprint.png b/graphics/pokemon/primeape/footprint.png similarity index 100% rename from graphics/pokemon/footprints/primeape_footprint.png rename to graphics/pokemon/primeape/footprint.png diff --git a/graphics/pokemon/front_pics/primeape_still_front_pic.png b/graphics/pokemon/primeape/front.png similarity index 100% rename from graphics/pokemon/front_pics/primeape_still_front_pic.png rename to graphics/pokemon/primeape/front.png diff --git a/graphics/pokemon/icons/primeape_icon.png b/graphics/pokemon/primeape/icon.png similarity index 100% rename from graphics/pokemon/icons/primeape_icon.png rename to graphics/pokemon/primeape/icon.png diff --git a/graphics/pokemon/palettes/primeape_palette.pal b/graphics/pokemon/primeape/normal.pal similarity index 100% rename from graphics/pokemon/palettes/primeape_palette.pal rename to graphics/pokemon/primeape/normal.pal diff --git a/graphics/pokemon/palettes/primeape_shiny_palette.pal b/graphics/pokemon/primeape/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/primeape_shiny_palette.pal rename to graphics/pokemon/primeape/shiny.pal diff --git a/graphics/pokemon/back_pics/psyduck_back_pic.png b/graphics/pokemon/psyduck/back.png similarity index 100% rename from graphics/pokemon/back_pics/psyduck_back_pic.png rename to graphics/pokemon/psyduck/back.png diff --git a/graphics/pokemon/footprints/psyduck_footprint.png b/graphics/pokemon/psyduck/footprint.png similarity index 100% rename from graphics/pokemon/footprints/psyduck_footprint.png rename to graphics/pokemon/psyduck/footprint.png diff --git a/graphics/pokemon/front_pics/psyduck_still_front_pic.png b/graphics/pokemon/psyduck/front.png similarity index 100% rename from graphics/pokemon/front_pics/psyduck_still_front_pic.png rename to graphics/pokemon/psyduck/front.png diff --git a/graphics/pokemon/icons/psyduck_icon.png b/graphics/pokemon/psyduck/icon.png similarity index 100% rename from graphics/pokemon/icons/psyduck_icon.png rename to graphics/pokemon/psyduck/icon.png diff --git a/graphics/pokemon/palettes/psyduck_palette.pal b/graphics/pokemon/psyduck/normal.pal similarity index 100% rename from graphics/pokemon/palettes/psyduck_palette.pal rename to graphics/pokemon/psyduck/normal.pal diff --git a/graphics/pokemon/palettes/psyduck_shiny_palette.pal b/graphics/pokemon/psyduck/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/psyduck_shiny_palette.pal rename to graphics/pokemon/psyduck/shiny.pal diff --git a/graphics/pokemon/back_pics/pupitar_back_pic.png b/graphics/pokemon/pupitar/back.png similarity index 100% rename from graphics/pokemon/back_pics/pupitar_back_pic.png rename to graphics/pokemon/pupitar/back.png diff --git a/graphics/pokemon/footprints/pupitar_footprint.png b/graphics/pokemon/pupitar/footprint.png similarity index 100% rename from graphics/pokemon/footprints/pupitar_footprint.png rename to graphics/pokemon/pupitar/footprint.png diff --git a/graphics/pokemon/front_pics/pupitar_still_front_pic.png b/graphics/pokemon/pupitar/front.png similarity index 100% rename from graphics/pokemon/front_pics/pupitar_still_front_pic.png rename to graphics/pokemon/pupitar/front.png diff --git a/graphics/pokemon/icons/pupitar_icon.png b/graphics/pokemon/pupitar/icon.png similarity index 100% rename from graphics/pokemon/icons/pupitar_icon.png rename to graphics/pokemon/pupitar/icon.png diff --git a/graphics/pokemon/palettes/pupitar_palette.pal b/graphics/pokemon/pupitar/normal.pal similarity index 100% rename from graphics/pokemon/palettes/pupitar_palette.pal rename to graphics/pokemon/pupitar/normal.pal diff --git a/graphics/pokemon/palettes/pupitar_shiny_palette.pal b/graphics/pokemon/pupitar/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/pupitar_shiny_palette.pal rename to graphics/pokemon/pupitar/shiny.pal diff --git a/graphics/pokemon/back_pics/quagsire_back_pic.png b/graphics/pokemon/quagsire/back.png similarity index 100% rename from graphics/pokemon/back_pics/quagsire_back_pic.png rename to graphics/pokemon/quagsire/back.png diff --git a/graphics/pokemon/footprints/quagsire_footprint.png b/graphics/pokemon/quagsire/footprint.png similarity index 100% rename from graphics/pokemon/footprints/quagsire_footprint.png rename to graphics/pokemon/quagsire/footprint.png diff --git a/graphics/pokemon/front_pics/quagsire_still_front_pic.png b/graphics/pokemon/quagsire/front.png similarity index 100% rename from graphics/pokemon/front_pics/quagsire_still_front_pic.png rename to graphics/pokemon/quagsire/front.png diff --git a/graphics/pokemon/icons/quagsire_icon.png b/graphics/pokemon/quagsire/icon.png similarity index 100% rename from graphics/pokemon/icons/quagsire_icon.png rename to graphics/pokemon/quagsire/icon.png diff --git a/graphics/pokemon/palettes/quagsire_palette.pal b/graphics/pokemon/quagsire/normal.pal similarity index 100% rename from graphics/pokemon/palettes/quagsire_palette.pal rename to graphics/pokemon/quagsire/normal.pal diff --git a/graphics/pokemon/palettes/quagsire_shiny_palette.pal b/graphics/pokemon/quagsire/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/quagsire_shiny_palette.pal rename to graphics/pokemon/quagsire/shiny.pal diff --git a/graphics/pokemon/back_pics/circled_question_mark_back_pic.png b/graphics/pokemon/question_mark/circled/back.png similarity index 100% rename from graphics/pokemon/back_pics/circled_question_mark_back_pic.png rename to graphics/pokemon/question_mark/circled/back.png diff --git a/graphics/pokemon/front_pics/circled_question_mark_still_front_pic.png b/graphics/pokemon/question_mark/circled/front.png similarity index 100% rename from graphics/pokemon/front_pics/circled_question_mark_still_front_pic.png rename to graphics/pokemon/question_mark/circled/front.png diff --git a/graphics/pokemon/palettes/circled_question_mark_palette.pal b/graphics/pokemon/question_mark/circled/normal.pal similarity index 100% rename from graphics/pokemon/palettes/circled_question_mark_palette.pal rename to graphics/pokemon/question_mark/circled/normal.pal diff --git a/graphics/pokemon/palettes/circled_question_mark_shiny_palette.pal b/graphics/pokemon/question_mark/circled/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/circled_question_mark_shiny_palette.pal rename to graphics/pokemon/question_mark/circled/shiny.pal diff --git a/graphics/pokemon/back_pics/double_question_mark_back_pic.png b/graphics/pokemon/question_mark/double/back.png similarity index 100% rename from graphics/pokemon/back_pics/double_question_mark_back_pic.png rename to graphics/pokemon/question_mark/double/back.png diff --git a/graphics/pokemon/front_pics/double_question_mark_still_front_pic.png b/graphics/pokemon/question_mark/double/front.png similarity index 100% rename from graphics/pokemon/front_pics/double_question_mark_still_front_pic.png rename to graphics/pokemon/question_mark/double/front.png diff --git a/graphics/pokemon/palettes/double_question_mark_palette.pal b/graphics/pokemon/question_mark/double/normal.pal similarity index 100% rename from graphics/pokemon/palettes/double_question_mark_palette.pal rename to graphics/pokemon/question_mark/double/normal.pal diff --git a/graphics/pokemon/palettes/double_question_mark_shiny_palette.pal b/graphics/pokemon/question_mark/double/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/double_question_mark_shiny_palette.pal rename to graphics/pokemon/question_mark/double/shiny.pal diff --git a/graphics/pokemon/footprints/question_mark_footprint.png b/graphics/pokemon/question_mark/footprint.png similarity index 100% rename from graphics/pokemon/footprints/question_mark_footprint.png rename to graphics/pokemon/question_mark/footprint.png diff --git a/graphics/pokemon/icons/question_mark_icon.png b/graphics/pokemon/question_mark/icon.png similarity index 100% rename from graphics/pokemon/icons/question_mark_icon.png rename to graphics/pokemon/question_mark/icon.png diff --git a/graphics/pokemon/back_pics/quilava_back_pic.png b/graphics/pokemon/quilava/back.png similarity index 100% rename from graphics/pokemon/back_pics/quilava_back_pic.png rename to graphics/pokemon/quilava/back.png diff --git a/graphics/pokemon/footprints/quilava_footprint.png b/graphics/pokemon/quilava/footprint.png similarity index 100% rename from graphics/pokemon/footprints/quilava_footprint.png rename to graphics/pokemon/quilava/footprint.png diff --git a/graphics/pokemon/front_pics/quilava_still_front_pic.png b/graphics/pokemon/quilava/front.png similarity index 100% rename from graphics/pokemon/front_pics/quilava_still_front_pic.png rename to graphics/pokemon/quilava/front.png diff --git a/graphics/pokemon/icons/quilava_icon.png b/graphics/pokemon/quilava/icon.png similarity index 100% rename from graphics/pokemon/icons/quilava_icon.png rename to graphics/pokemon/quilava/icon.png diff --git a/graphics/pokemon/palettes/quilava_palette.pal b/graphics/pokemon/quilava/normal.pal similarity index 100% rename from graphics/pokemon/palettes/quilava_palette.pal rename to graphics/pokemon/quilava/normal.pal diff --git a/graphics/pokemon/palettes/quilava_shiny_palette.pal b/graphics/pokemon/quilava/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/quilava_shiny_palette.pal rename to graphics/pokemon/quilava/shiny.pal diff --git a/graphics/pokemon/back_pics/qwilfish_back_pic.png b/graphics/pokemon/qwilfish/back.png similarity index 100% rename from graphics/pokemon/back_pics/qwilfish_back_pic.png rename to graphics/pokemon/qwilfish/back.png diff --git a/graphics/pokemon/footprints/qwilfish_footprint.png b/graphics/pokemon/qwilfish/footprint.png similarity index 100% rename from graphics/pokemon/footprints/qwilfish_footprint.png rename to graphics/pokemon/qwilfish/footprint.png diff --git a/graphics/pokemon/front_pics/qwilfish_still_front_pic.png b/graphics/pokemon/qwilfish/front.png similarity index 100% rename from graphics/pokemon/front_pics/qwilfish_still_front_pic.png rename to graphics/pokemon/qwilfish/front.png diff --git a/graphics/pokemon/icons/qwilfish_icon.png b/graphics/pokemon/qwilfish/icon.png similarity index 100% rename from graphics/pokemon/icons/qwilfish_icon.png rename to graphics/pokemon/qwilfish/icon.png diff --git a/graphics/pokemon/palettes/qwilfish_palette.pal b/graphics/pokemon/qwilfish/normal.pal similarity index 100% rename from graphics/pokemon/palettes/qwilfish_palette.pal rename to graphics/pokemon/qwilfish/normal.pal diff --git a/graphics/pokemon/palettes/qwilfish_shiny_palette.pal b/graphics/pokemon/qwilfish/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/qwilfish_shiny_palette.pal rename to graphics/pokemon/qwilfish/shiny.pal diff --git a/graphics/pokemon/back_pics/raichu_back_pic.png b/graphics/pokemon/raichu/back.png similarity index 100% rename from graphics/pokemon/back_pics/raichu_back_pic.png rename to graphics/pokemon/raichu/back.png diff --git a/graphics/pokemon/footprints/raichu_footprint.png b/graphics/pokemon/raichu/footprint.png similarity index 100% rename from graphics/pokemon/footprints/raichu_footprint.png rename to graphics/pokemon/raichu/footprint.png diff --git a/graphics/pokemon/front_pics/raichu_still_front_pic.png b/graphics/pokemon/raichu/front.png similarity index 100% rename from graphics/pokemon/front_pics/raichu_still_front_pic.png rename to graphics/pokemon/raichu/front.png diff --git a/graphics/pokemon/icons/raichu_icon.png b/graphics/pokemon/raichu/icon.png similarity index 100% rename from graphics/pokemon/icons/raichu_icon.png rename to graphics/pokemon/raichu/icon.png diff --git a/graphics/pokemon/palettes/raichu_palette.pal b/graphics/pokemon/raichu/normal.pal similarity index 100% rename from graphics/pokemon/palettes/raichu_palette.pal rename to graphics/pokemon/raichu/normal.pal diff --git a/graphics/pokemon/palettes/raichu_shiny_palette.pal b/graphics/pokemon/raichu/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/raichu_shiny_palette.pal rename to graphics/pokemon/raichu/shiny.pal diff --git a/graphics/pokemon/back_pics/raikou_back_pic.png b/graphics/pokemon/raikou/back.png similarity index 100% rename from graphics/pokemon/back_pics/raikou_back_pic.png rename to graphics/pokemon/raikou/back.png diff --git a/graphics/pokemon/footprints/raikou_footprint.png b/graphics/pokemon/raikou/footprint.png similarity index 100% rename from graphics/pokemon/footprints/raikou_footprint.png rename to graphics/pokemon/raikou/footprint.png diff --git a/graphics/pokemon/front_pics/raikou_still_front_pic.png b/graphics/pokemon/raikou/front.png similarity index 100% rename from graphics/pokemon/front_pics/raikou_still_front_pic.png rename to graphics/pokemon/raikou/front.png diff --git a/graphics/pokemon/icons/raikou_icon.png b/graphics/pokemon/raikou/icon.png similarity index 100% rename from graphics/pokemon/icons/raikou_icon.png rename to graphics/pokemon/raikou/icon.png diff --git a/graphics/pokemon/palettes/raikou_palette.pal b/graphics/pokemon/raikou/normal.pal similarity index 100% rename from graphics/pokemon/palettes/raikou_palette.pal rename to graphics/pokemon/raikou/normal.pal diff --git a/graphics/pokemon/palettes/raikou_shiny_palette.pal b/graphics/pokemon/raikou/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/raikou_shiny_palette.pal rename to graphics/pokemon/raikou/shiny.pal diff --git a/graphics/pokemon/back_pics/ralts_back_pic.png b/graphics/pokemon/ralts/back.png similarity index 100% rename from graphics/pokemon/back_pics/ralts_back_pic.png rename to graphics/pokemon/ralts/back.png diff --git a/graphics/pokemon/footprints/ralts_footprint.png b/graphics/pokemon/ralts/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ralts_footprint.png rename to graphics/pokemon/ralts/footprint.png diff --git a/graphics/pokemon/front_pics/ralts_still_front_pic.png b/graphics/pokemon/ralts/front.png similarity index 100% rename from graphics/pokemon/front_pics/ralts_still_front_pic.png rename to graphics/pokemon/ralts/front.png diff --git a/graphics/pokemon/icons/ralts_icon.png b/graphics/pokemon/ralts/icon.png similarity index 100% rename from graphics/pokemon/icons/ralts_icon.png rename to graphics/pokemon/ralts/icon.png diff --git a/graphics/pokemon/palettes/ralts_palette.pal b/graphics/pokemon/ralts/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ralts_palette.pal rename to graphics/pokemon/ralts/normal.pal diff --git a/graphics/pokemon/palettes/ralts_shiny_palette.pal b/graphics/pokemon/ralts/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ralts_shiny_palette.pal rename to graphics/pokemon/ralts/shiny.pal diff --git a/graphics/pokemon/back_pics/rapidash_back_pic.png b/graphics/pokemon/rapidash/back.png similarity index 100% rename from graphics/pokemon/back_pics/rapidash_back_pic.png rename to graphics/pokemon/rapidash/back.png diff --git a/graphics/pokemon/footprints/rapidash_footprint.png b/graphics/pokemon/rapidash/footprint.png similarity index 100% rename from graphics/pokemon/footprints/rapidash_footprint.png rename to graphics/pokemon/rapidash/footprint.png diff --git a/graphics/pokemon/front_pics/rapidash_still_front_pic.png b/graphics/pokemon/rapidash/front.png similarity index 100% rename from graphics/pokemon/front_pics/rapidash_still_front_pic.png rename to graphics/pokemon/rapidash/front.png diff --git a/graphics/pokemon/icons/rapidash_icon.png b/graphics/pokemon/rapidash/icon.png similarity index 100% rename from graphics/pokemon/icons/rapidash_icon.png rename to graphics/pokemon/rapidash/icon.png diff --git a/graphics/pokemon/palettes/rapidash_palette.pal b/graphics/pokemon/rapidash/normal.pal similarity index 100% rename from graphics/pokemon/palettes/rapidash_palette.pal rename to graphics/pokemon/rapidash/normal.pal diff --git a/graphics/pokemon/palettes/rapidash_shiny_palette.pal b/graphics/pokemon/rapidash/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/rapidash_shiny_palette.pal rename to graphics/pokemon/rapidash/shiny.pal diff --git a/graphics/pokemon/back_pics/raticate_back_pic.png b/graphics/pokemon/raticate/back.png similarity index 100% rename from graphics/pokemon/back_pics/raticate_back_pic.png rename to graphics/pokemon/raticate/back.png diff --git a/graphics/pokemon/footprints/raticate_footprint.png b/graphics/pokemon/raticate/footprint.png similarity index 100% rename from graphics/pokemon/footprints/raticate_footprint.png rename to graphics/pokemon/raticate/footprint.png diff --git a/graphics/pokemon/front_pics/raticate_still_front_pic.png b/graphics/pokemon/raticate/front.png similarity index 100% rename from graphics/pokemon/front_pics/raticate_still_front_pic.png rename to graphics/pokemon/raticate/front.png diff --git a/graphics/pokemon/icons/raticate_icon.png b/graphics/pokemon/raticate/icon.png similarity index 100% rename from graphics/pokemon/icons/raticate_icon.png rename to graphics/pokemon/raticate/icon.png diff --git a/graphics/pokemon/palettes/raticate_palette.pal b/graphics/pokemon/raticate/normal.pal similarity index 100% rename from graphics/pokemon/palettes/raticate_palette.pal rename to graphics/pokemon/raticate/normal.pal diff --git a/graphics/pokemon/palettes/raticate_shiny_palette.pal b/graphics/pokemon/raticate/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/raticate_shiny_palette.pal rename to graphics/pokemon/raticate/shiny.pal diff --git a/graphics/pokemon/back_pics/rattata_back_pic.png b/graphics/pokemon/rattata/back.png similarity index 100% rename from graphics/pokemon/back_pics/rattata_back_pic.png rename to graphics/pokemon/rattata/back.png diff --git a/graphics/pokemon/footprints/rattata_footprint.png b/graphics/pokemon/rattata/footprint.png similarity index 100% rename from graphics/pokemon/footprints/rattata_footprint.png rename to graphics/pokemon/rattata/footprint.png diff --git a/graphics/pokemon/front_pics/rattata_still_front_pic.png b/graphics/pokemon/rattata/front.png similarity index 100% rename from graphics/pokemon/front_pics/rattata_still_front_pic.png rename to graphics/pokemon/rattata/front.png diff --git a/graphics/pokemon/icons/rattata_icon.png b/graphics/pokemon/rattata/icon.png similarity index 100% rename from graphics/pokemon/icons/rattata_icon.png rename to graphics/pokemon/rattata/icon.png diff --git a/graphics/pokemon/palettes/rattata_palette.pal b/graphics/pokemon/rattata/normal.pal similarity index 100% rename from graphics/pokemon/palettes/rattata_palette.pal rename to graphics/pokemon/rattata/normal.pal diff --git a/graphics/pokemon/palettes/rattata_shiny_palette.pal b/graphics/pokemon/rattata/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/rattata_shiny_palette.pal rename to graphics/pokemon/rattata/shiny.pal diff --git a/graphics/pokemon/back_pics/rayquaza_back_pic.png b/graphics/pokemon/rayquaza/back.png similarity index 100% rename from graphics/pokemon/back_pics/rayquaza_back_pic.png rename to graphics/pokemon/rayquaza/back.png diff --git a/graphics/pokemon/footprints/rayquaza_footprint.png b/graphics/pokemon/rayquaza/footprint.png similarity index 100% rename from graphics/pokemon/footprints/rayquaza_footprint.png rename to graphics/pokemon/rayquaza/footprint.png diff --git a/graphics/pokemon/front_pics/rayquaza_still_front_pic.png b/graphics/pokemon/rayquaza/front.png similarity index 100% rename from graphics/pokemon/front_pics/rayquaza_still_front_pic.png rename to graphics/pokemon/rayquaza/front.png diff --git a/graphics/pokemon/icons/rayquaza_icon.png b/graphics/pokemon/rayquaza/icon.png similarity index 100% rename from graphics/pokemon/icons/rayquaza_icon.png rename to graphics/pokemon/rayquaza/icon.png diff --git a/graphics/pokemon/palettes/rayquaza_palette.pal b/graphics/pokemon/rayquaza/normal.pal similarity index 100% rename from graphics/pokemon/palettes/rayquaza_palette.pal rename to graphics/pokemon/rayquaza/normal.pal diff --git a/graphics/pokemon/palettes/rayquaza_shiny_palette.pal b/graphics/pokemon/rayquaza/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/rayquaza_shiny_palette.pal rename to graphics/pokemon/rayquaza/shiny.pal diff --git a/graphics/pokemon/back_pics/regice_back_pic.png b/graphics/pokemon/regice/back.png similarity index 100% rename from graphics/pokemon/back_pics/regice_back_pic.png rename to graphics/pokemon/regice/back.png diff --git a/graphics/pokemon/footprints/regice_footprint.png b/graphics/pokemon/regice/footprint.png similarity index 100% rename from graphics/pokemon/footprints/regice_footprint.png rename to graphics/pokemon/regice/footprint.png diff --git a/graphics/pokemon/front_pics/regice_still_front_pic.png b/graphics/pokemon/regice/front.png similarity index 100% rename from graphics/pokemon/front_pics/regice_still_front_pic.png rename to graphics/pokemon/regice/front.png diff --git a/graphics/pokemon/icons/regice_icon.png b/graphics/pokemon/regice/icon.png similarity index 100% rename from graphics/pokemon/icons/regice_icon.png rename to graphics/pokemon/regice/icon.png diff --git a/graphics/pokemon/palettes/regice_palette.pal b/graphics/pokemon/regice/normal.pal similarity index 100% rename from graphics/pokemon/palettes/regice_palette.pal rename to graphics/pokemon/regice/normal.pal diff --git a/graphics/pokemon/palettes/regice_shiny_palette.pal b/graphics/pokemon/regice/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/regice_shiny_palette.pal rename to graphics/pokemon/regice/shiny.pal diff --git a/graphics/pokemon/back_pics/regirock_back_pic.png b/graphics/pokemon/regirock/back.png similarity index 100% rename from graphics/pokemon/back_pics/regirock_back_pic.png rename to graphics/pokemon/regirock/back.png diff --git a/graphics/pokemon/footprints/regirock_footprint.png b/graphics/pokemon/regirock/footprint.png similarity index 100% rename from graphics/pokemon/footprints/regirock_footprint.png rename to graphics/pokemon/regirock/footprint.png diff --git a/graphics/pokemon/front_pics/regirock_still_front_pic.png b/graphics/pokemon/regirock/front.png similarity index 100% rename from graphics/pokemon/front_pics/regirock_still_front_pic.png rename to graphics/pokemon/regirock/front.png diff --git a/graphics/pokemon/icons/regirock_icon.png b/graphics/pokemon/regirock/icon.png similarity index 100% rename from graphics/pokemon/icons/regirock_icon.png rename to graphics/pokemon/regirock/icon.png diff --git a/graphics/pokemon/palettes/regirock_palette.pal b/graphics/pokemon/regirock/normal.pal similarity index 100% rename from graphics/pokemon/palettes/regirock_palette.pal rename to graphics/pokemon/regirock/normal.pal diff --git a/graphics/pokemon/palettes/regirock_shiny_palette.pal b/graphics/pokemon/regirock/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/regirock_shiny_palette.pal rename to graphics/pokemon/regirock/shiny.pal diff --git a/graphics/pokemon/back_pics/registeel_back_pic.png b/graphics/pokemon/registeel/back.png similarity index 100% rename from graphics/pokemon/back_pics/registeel_back_pic.png rename to graphics/pokemon/registeel/back.png diff --git a/graphics/pokemon/footprints/registeel_footprint.png b/graphics/pokemon/registeel/footprint.png similarity index 100% rename from graphics/pokemon/footprints/registeel_footprint.png rename to graphics/pokemon/registeel/footprint.png diff --git a/graphics/pokemon/front_pics/registeel_still_front_pic.png b/graphics/pokemon/registeel/front.png similarity index 100% rename from graphics/pokemon/front_pics/registeel_still_front_pic.png rename to graphics/pokemon/registeel/front.png diff --git a/graphics/pokemon/icons/registeel_icon.png b/graphics/pokemon/registeel/icon.png similarity index 100% rename from graphics/pokemon/icons/registeel_icon.png rename to graphics/pokemon/registeel/icon.png diff --git a/graphics/pokemon/palettes/registeel_palette.pal b/graphics/pokemon/registeel/normal.pal similarity index 100% rename from graphics/pokemon/palettes/registeel_palette.pal rename to graphics/pokemon/registeel/normal.pal diff --git a/graphics/pokemon/palettes/registeel_shiny_palette.pal b/graphics/pokemon/registeel/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/registeel_shiny_palette.pal rename to graphics/pokemon/registeel/shiny.pal diff --git a/graphics/pokemon/back_pics/relicanth_back_pic.png b/graphics/pokemon/relicanth/back.png similarity index 100% rename from graphics/pokemon/back_pics/relicanth_back_pic.png rename to graphics/pokemon/relicanth/back.png diff --git a/graphics/pokemon/footprints/relicanth_footprint.png b/graphics/pokemon/relicanth/footprint.png similarity index 100% rename from graphics/pokemon/footprints/relicanth_footprint.png rename to graphics/pokemon/relicanth/footprint.png diff --git a/graphics/pokemon/front_pics/relicanth_still_front_pic.png b/graphics/pokemon/relicanth/front.png similarity index 100% rename from graphics/pokemon/front_pics/relicanth_still_front_pic.png rename to graphics/pokemon/relicanth/front.png diff --git a/graphics/pokemon/icons/relicanth_icon.png b/graphics/pokemon/relicanth/icon.png similarity index 100% rename from graphics/pokemon/icons/relicanth_icon.png rename to graphics/pokemon/relicanth/icon.png diff --git a/graphics/pokemon/palettes/relicanth_palette.pal b/graphics/pokemon/relicanth/normal.pal similarity index 100% rename from graphics/pokemon/palettes/relicanth_palette.pal rename to graphics/pokemon/relicanth/normal.pal diff --git a/graphics/pokemon/palettes/relicanth_shiny_palette.pal b/graphics/pokemon/relicanth/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/relicanth_shiny_palette.pal rename to graphics/pokemon/relicanth/shiny.pal diff --git a/graphics/pokemon/back_pics/remoraid_back_pic.png b/graphics/pokemon/remoraid/back.png similarity index 100% rename from graphics/pokemon/back_pics/remoraid_back_pic.png rename to graphics/pokemon/remoraid/back.png diff --git a/graphics/pokemon/footprints/remoraid_footprint.png b/graphics/pokemon/remoraid/footprint.png similarity index 100% rename from graphics/pokemon/footprints/remoraid_footprint.png rename to graphics/pokemon/remoraid/footprint.png diff --git a/graphics/pokemon/front_pics/remoraid_still_front_pic.png b/graphics/pokemon/remoraid/front.png similarity index 100% rename from graphics/pokemon/front_pics/remoraid_still_front_pic.png rename to graphics/pokemon/remoraid/front.png diff --git a/graphics/pokemon/icons/remoraid_icon.png b/graphics/pokemon/remoraid/icon.png similarity index 100% rename from graphics/pokemon/icons/remoraid_icon.png rename to graphics/pokemon/remoraid/icon.png diff --git a/graphics/pokemon/palettes/remoraid_palette.pal b/graphics/pokemon/remoraid/normal.pal similarity index 100% rename from graphics/pokemon/palettes/remoraid_palette.pal rename to graphics/pokemon/remoraid/normal.pal diff --git a/graphics/pokemon/palettes/remoraid_shiny_palette.pal b/graphics/pokemon/remoraid/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/remoraid_shiny_palette.pal rename to graphics/pokemon/remoraid/shiny.pal diff --git a/graphics/pokemon/back_pics/rhydon_back_pic.png b/graphics/pokemon/rhydon/back.png similarity index 100% rename from graphics/pokemon/back_pics/rhydon_back_pic.png rename to graphics/pokemon/rhydon/back.png diff --git a/graphics/pokemon/footprints/rhydon_footprint.png b/graphics/pokemon/rhydon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/rhydon_footprint.png rename to graphics/pokemon/rhydon/footprint.png diff --git a/graphics/pokemon/front_pics/rhydon_still_front_pic.png b/graphics/pokemon/rhydon/front.png similarity index 100% rename from graphics/pokemon/front_pics/rhydon_still_front_pic.png rename to graphics/pokemon/rhydon/front.png diff --git a/graphics/pokemon/icons/rhydon_icon.png b/graphics/pokemon/rhydon/icon.png similarity index 100% rename from graphics/pokemon/icons/rhydon_icon.png rename to graphics/pokemon/rhydon/icon.png diff --git a/graphics/pokemon/palettes/rhydon_palette.pal b/graphics/pokemon/rhydon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/rhydon_palette.pal rename to graphics/pokemon/rhydon/normal.pal diff --git a/graphics/pokemon/palettes/rhydon_shiny_palette.pal b/graphics/pokemon/rhydon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/rhydon_shiny_palette.pal rename to graphics/pokemon/rhydon/shiny.pal diff --git a/graphics/pokemon/back_pics/rhyhorn_back_pic.png b/graphics/pokemon/rhyhorn/back.png similarity index 100% rename from graphics/pokemon/back_pics/rhyhorn_back_pic.png rename to graphics/pokemon/rhyhorn/back.png diff --git a/graphics/pokemon/footprints/rhyhorn_footprint.png b/graphics/pokemon/rhyhorn/footprint.png similarity index 100% rename from graphics/pokemon/footprints/rhyhorn_footprint.png rename to graphics/pokemon/rhyhorn/footprint.png diff --git a/graphics/pokemon/front_pics/rhyhorn_still_front_pic.png b/graphics/pokemon/rhyhorn/front.png similarity index 100% rename from graphics/pokemon/front_pics/rhyhorn_still_front_pic.png rename to graphics/pokemon/rhyhorn/front.png diff --git a/graphics/pokemon/icons/rhyhorn_icon.png b/graphics/pokemon/rhyhorn/icon.png similarity index 100% rename from graphics/pokemon/icons/rhyhorn_icon.png rename to graphics/pokemon/rhyhorn/icon.png diff --git a/graphics/pokemon/palettes/rhyhorn_palette.pal b/graphics/pokemon/rhyhorn/normal.pal similarity index 100% rename from graphics/pokemon/palettes/rhyhorn_palette.pal rename to graphics/pokemon/rhyhorn/normal.pal diff --git a/graphics/pokemon/palettes/rhyhorn_shiny_palette.pal b/graphics/pokemon/rhyhorn/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/rhyhorn_shiny_palette.pal rename to graphics/pokemon/rhyhorn/shiny.pal diff --git a/graphics/pokemon/back_pics/roselia_back_pic.png b/graphics/pokemon/roselia/back.png similarity index 100% rename from graphics/pokemon/back_pics/roselia_back_pic.png rename to graphics/pokemon/roselia/back.png diff --git a/graphics/pokemon/footprints/roselia_footprint.png b/graphics/pokemon/roselia/footprint.png similarity index 100% rename from graphics/pokemon/footprints/roselia_footprint.png rename to graphics/pokemon/roselia/footprint.png diff --git a/graphics/pokemon/front_pics/roselia_still_front_pic.png b/graphics/pokemon/roselia/front.png similarity index 100% rename from graphics/pokemon/front_pics/roselia_still_front_pic.png rename to graphics/pokemon/roselia/front.png diff --git a/graphics/pokemon/icons/roselia_icon.png b/graphics/pokemon/roselia/icon.png similarity index 100% rename from graphics/pokemon/icons/roselia_icon.png rename to graphics/pokemon/roselia/icon.png diff --git a/graphics/pokemon/palettes/roselia_palette.pal b/graphics/pokemon/roselia/normal.pal similarity index 100% rename from graphics/pokemon/palettes/roselia_palette.pal rename to graphics/pokemon/roselia/normal.pal diff --git a/graphics/pokemon/palettes/roselia_shiny_palette.pal b/graphics/pokemon/roselia/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/roselia_shiny_palette.pal rename to graphics/pokemon/roselia/shiny.pal diff --git a/graphics/pokemon/back_pics/sableye_back_pic.png b/graphics/pokemon/sableye/back.png similarity index 100% rename from graphics/pokemon/back_pics/sableye_back_pic.png rename to graphics/pokemon/sableye/back.png diff --git a/graphics/pokemon/footprints/sableye_footprint.png b/graphics/pokemon/sableye/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sableye_footprint.png rename to graphics/pokemon/sableye/footprint.png diff --git a/graphics/pokemon/front_pics/sableye_still_front_pic.png b/graphics/pokemon/sableye/front.png similarity index 100% rename from graphics/pokemon/front_pics/sableye_still_front_pic.png rename to graphics/pokemon/sableye/front.png diff --git a/graphics/pokemon/icons/sableye_icon.png b/graphics/pokemon/sableye/icon.png similarity index 100% rename from graphics/pokemon/icons/sableye_icon.png rename to graphics/pokemon/sableye/icon.png diff --git a/graphics/pokemon/palettes/sableye_palette.pal b/graphics/pokemon/sableye/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sableye_palette.pal rename to graphics/pokemon/sableye/normal.pal diff --git a/graphics/pokemon/palettes/sableye_shiny_palette.pal b/graphics/pokemon/sableye/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sableye_shiny_palette.pal rename to graphics/pokemon/sableye/shiny.pal diff --git a/graphics/pokemon/back_pics/salamence_back_pic.png b/graphics/pokemon/salamence/back.png similarity index 100% rename from graphics/pokemon/back_pics/salamence_back_pic.png rename to graphics/pokemon/salamence/back.png diff --git a/graphics/pokemon/footprints/salamence_footprint.png b/graphics/pokemon/salamence/footprint.png similarity index 100% rename from graphics/pokemon/footprints/salamence_footprint.png rename to graphics/pokemon/salamence/footprint.png diff --git a/graphics/pokemon/front_pics/salamence_still_front_pic.png b/graphics/pokemon/salamence/front.png similarity index 100% rename from graphics/pokemon/front_pics/salamence_still_front_pic.png rename to graphics/pokemon/salamence/front.png diff --git a/graphics/pokemon/icons/salamence_icon.png b/graphics/pokemon/salamence/icon.png similarity index 100% rename from graphics/pokemon/icons/salamence_icon.png rename to graphics/pokemon/salamence/icon.png diff --git a/graphics/pokemon/palettes/salamence_palette.pal b/graphics/pokemon/salamence/normal.pal similarity index 100% rename from graphics/pokemon/palettes/salamence_palette.pal rename to graphics/pokemon/salamence/normal.pal diff --git a/graphics/pokemon/palettes/salamence_shiny_palette.pal b/graphics/pokemon/salamence/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/salamence_shiny_palette.pal rename to graphics/pokemon/salamence/shiny.pal diff --git a/graphics/pokemon/back_pics/sandshrew_back_pic.png b/graphics/pokemon/sandshrew/back.png similarity index 100% rename from graphics/pokemon/back_pics/sandshrew_back_pic.png rename to graphics/pokemon/sandshrew/back.png diff --git a/graphics/pokemon/footprints/sandshrew_footprint.png b/graphics/pokemon/sandshrew/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sandshrew_footprint.png rename to graphics/pokemon/sandshrew/footprint.png diff --git a/graphics/pokemon/front_pics/sandshrew_still_front_pic.png b/graphics/pokemon/sandshrew/front.png similarity index 100% rename from graphics/pokemon/front_pics/sandshrew_still_front_pic.png rename to graphics/pokemon/sandshrew/front.png diff --git a/graphics/pokemon/icons/sandshrew_icon.png b/graphics/pokemon/sandshrew/icon.png similarity index 100% rename from graphics/pokemon/icons/sandshrew_icon.png rename to graphics/pokemon/sandshrew/icon.png diff --git a/graphics/pokemon/palettes/sandshrew_palette.pal b/graphics/pokemon/sandshrew/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sandshrew_palette.pal rename to graphics/pokemon/sandshrew/normal.pal diff --git a/graphics/pokemon/palettes/sandshrew_shiny_palette.pal b/graphics/pokemon/sandshrew/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sandshrew_shiny_palette.pal rename to graphics/pokemon/sandshrew/shiny.pal diff --git a/graphics/pokemon/back_pics/sandslash_back_pic.png b/graphics/pokemon/sandslash/back.png similarity index 100% rename from graphics/pokemon/back_pics/sandslash_back_pic.png rename to graphics/pokemon/sandslash/back.png diff --git a/graphics/pokemon/footprints/sandslash_footprint.png b/graphics/pokemon/sandslash/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sandslash_footprint.png rename to graphics/pokemon/sandslash/footprint.png diff --git a/graphics/pokemon/front_pics/sandslash_still_front_pic.png b/graphics/pokemon/sandslash/front.png similarity index 100% rename from graphics/pokemon/front_pics/sandslash_still_front_pic.png rename to graphics/pokemon/sandslash/front.png diff --git a/graphics/pokemon/icons/sandslash_icon.png b/graphics/pokemon/sandslash/icon.png similarity index 100% rename from graphics/pokemon/icons/sandslash_icon.png rename to graphics/pokemon/sandslash/icon.png diff --git a/graphics/pokemon/palettes/sandslash_palette.pal b/graphics/pokemon/sandslash/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sandslash_palette.pal rename to graphics/pokemon/sandslash/normal.pal diff --git a/graphics/pokemon/palettes/sandslash_shiny_palette.pal b/graphics/pokemon/sandslash/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sandslash_shiny_palette.pal rename to graphics/pokemon/sandslash/shiny.pal diff --git a/graphics/pokemon/back_pics/sceptile_back_pic.png b/graphics/pokemon/sceptile/back.png similarity index 100% rename from graphics/pokemon/back_pics/sceptile_back_pic.png rename to graphics/pokemon/sceptile/back.png diff --git a/graphics/pokemon/footprints/sceptile_footprint.png b/graphics/pokemon/sceptile/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sceptile_footprint.png rename to graphics/pokemon/sceptile/footprint.png diff --git a/graphics/pokemon/front_pics/sceptile_still_front_pic.png b/graphics/pokemon/sceptile/front.png similarity index 100% rename from graphics/pokemon/front_pics/sceptile_still_front_pic.png rename to graphics/pokemon/sceptile/front.png diff --git a/graphics/pokemon/icons/sceptile_icon.png b/graphics/pokemon/sceptile/icon.png similarity index 100% rename from graphics/pokemon/icons/sceptile_icon.png rename to graphics/pokemon/sceptile/icon.png diff --git a/graphics/pokemon/palettes/sceptile_palette.pal b/graphics/pokemon/sceptile/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sceptile_palette.pal rename to graphics/pokemon/sceptile/normal.pal diff --git a/graphics/pokemon/palettes/sceptile_shiny_palette.pal b/graphics/pokemon/sceptile/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sceptile_shiny_palette.pal rename to graphics/pokemon/sceptile/shiny.pal diff --git a/graphics/pokemon/back_pics/scizor_back_pic.png b/graphics/pokemon/scizor/back.png similarity index 100% rename from graphics/pokemon/back_pics/scizor_back_pic.png rename to graphics/pokemon/scizor/back.png diff --git a/graphics/pokemon/footprints/scizor_footprint.png b/graphics/pokemon/scizor/footprint.png similarity index 100% rename from graphics/pokemon/footprints/scizor_footprint.png rename to graphics/pokemon/scizor/footprint.png diff --git a/graphics/pokemon/front_pics/scizor_still_front_pic.png b/graphics/pokemon/scizor/front.png similarity index 100% rename from graphics/pokemon/front_pics/scizor_still_front_pic.png rename to graphics/pokemon/scizor/front.png diff --git a/graphics/pokemon/icons/scizor_icon.png b/graphics/pokemon/scizor/icon.png similarity index 100% rename from graphics/pokemon/icons/scizor_icon.png rename to graphics/pokemon/scizor/icon.png diff --git a/graphics/pokemon/palettes/scizor_palette.pal b/graphics/pokemon/scizor/normal.pal similarity index 100% rename from graphics/pokemon/palettes/scizor_palette.pal rename to graphics/pokemon/scizor/normal.pal diff --git a/graphics/pokemon/palettes/scizor_shiny_palette.pal b/graphics/pokemon/scizor/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/scizor_shiny_palette.pal rename to graphics/pokemon/scizor/shiny.pal diff --git a/graphics/pokemon/back_pics/scyther_back_pic.png b/graphics/pokemon/scyther/back.png similarity index 100% rename from graphics/pokemon/back_pics/scyther_back_pic.png rename to graphics/pokemon/scyther/back.png diff --git a/graphics/pokemon/footprints/scyther_footprint.png b/graphics/pokemon/scyther/footprint.png similarity index 100% rename from graphics/pokemon/footprints/scyther_footprint.png rename to graphics/pokemon/scyther/footprint.png diff --git a/graphics/pokemon/front_pics/scyther_still_front_pic.png b/graphics/pokemon/scyther/front.png similarity index 100% rename from graphics/pokemon/front_pics/scyther_still_front_pic.png rename to graphics/pokemon/scyther/front.png diff --git a/graphics/pokemon/icons/scyther_icon.png b/graphics/pokemon/scyther/icon.png similarity index 100% rename from graphics/pokemon/icons/scyther_icon.png rename to graphics/pokemon/scyther/icon.png diff --git a/graphics/pokemon/palettes/scyther_palette.pal b/graphics/pokemon/scyther/normal.pal similarity index 100% rename from graphics/pokemon/palettes/scyther_palette.pal rename to graphics/pokemon/scyther/normal.pal diff --git a/graphics/pokemon/palettes/scyther_shiny_palette.pal b/graphics/pokemon/scyther/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/scyther_shiny_palette.pal rename to graphics/pokemon/scyther/shiny.pal diff --git a/graphics/pokemon/back_pics/seadra_back_pic.png b/graphics/pokemon/seadra/back.png similarity index 100% rename from graphics/pokemon/back_pics/seadra_back_pic.png rename to graphics/pokemon/seadra/back.png diff --git a/graphics/pokemon/footprints/seadra_footprint.png b/graphics/pokemon/seadra/footprint.png similarity index 100% rename from graphics/pokemon/footprints/seadra_footprint.png rename to graphics/pokemon/seadra/footprint.png diff --git a/graphics/pokemon/front_pics/seadra_still_front_pic.png b/graphics/pokemon/seadra/front.png similarity index 100% rename from graphics/pokemon/front_pics/seadra_still_front_pic.png rename to graphics/pokemon/seadra/front.png diff --git a/graphics/pokemon/icons/seadra_icon.png b/graphics/pokemon/seadra/icon.png similarity index 100% rename from graphics/pokemon/icons/seadra_icon.png rename to graphics/pokemon/seadra/icon.png diff --git a/graphics/pokemon/palettes/seadra_palette.pal b/graphics/pokemon/seadra/normal.pal similarity index 100% rename from graphics/pokemon/palettes/seadra_palette.pal rename to graphics/pokemon/seadra/normal.pal diff --git a/graphics/pokemon/palettes/seadra_shiny_palette.pal b/graphics/pokemon/seadra/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/seadra_shiny_palette.pal rename to graphics/pokemon/seadra/shiny.pal diff --git a/graphics/pokemon/back_pics/seaking_back_pic.png b/graphics/pokemon/seaking/back.png similarity index 100% rename from graphics/pokemon/back_pics/seaking_back_pic.png rename to graphics/pokemon/seaking/back.png diff --git a/graphics/pokemon/footprints/seaking_footprint.png b/graphics/pokemon/seaking/footprint.png similarity index 100% rename from graphics/pokemon/footprints/seaking_footprint.png rename to graphics/pokemon/seaking/footprint.png diff --git a/graphics/pokemon/front_pics/seaking_still_front_pic.png b/graphics/pokemon/seaking/front.png similarity index 100% rename from graphics/pokemon/front_pics/seaking_still_front_pic.png rename to graphics/pokemon/seaking/front.png diff --git a/graphics/pokemon/icons/seaking_icon.png b/graphics/pokemon/seaking/icon.png similarity index 100% rename from graphics/pokemon/icons/seaking_icon.png rename to graphics/pokemon/seaking/icon.png diff --git a/graphics/pokemon/palettes/seaking_palette.pal b/graphics/pokemon/seaking/normal.pal similarity index 100% rename from graphics/pokemon/palettes/seaking_palette.pal rename to graphics/pokemon/seaking/normal.pal diff --git a/graphics/pokemon/palettes/seaking_shiny_palette.pal b/graphics/pokemon/seaking/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/seaking_shiny_palette.pal rename to graphics/pokemon/seaking/shiny.pal diff --git a/graphics/pokemon/back_pics/sealeo_back_pic.png b/graphics/pokemon/sealeo/back.png similarity index 100% rename from graphics/pokemon/back_pics/sealeo_back_pic.png rename to graphics/pokemon/sealeo/back.png diff --git a/graphics/pokemon/footprints/sealeo_footprint.png b/graphics/pokemon/sealeo/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sealeo_footprint.png rename to graphics/pokemon/sealeo/footprint.png diff --git a/graphics/pokemon/front_pics/sealeo_still_front_pic.png b/graphics/pokemon/sealeo/front.png similarity index 100% rename from graphics/pokemon/front_pics/sealeo_still_front_pic.png rename to graphics/pokemon/sealeo/front.png diff --git a/graphics/pokemon/icons/sealeo_icon.png b/graphics/pokemon/sealeo/icon.png similarity index 100% rename from graphics/pokemon/icons/sealeo_icon.png rename to graphics/pokemon/sealeo/icon.png diff --git a/graphics/pokemon/palettes/sealeo_palette.pal b/graphics/pokemon/sealeo/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sealeo_palette.pal rename to graphics/pokemon/sealeo/normal.pal diff --git a/graphics/pokemon/palettes/sealeo_shiny_palette.pal b/graphics/pokemon/sealeo/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sealeo_shiny_palette.pal rename to graphics/pokemon/sealeo/shiny.pal diff --git a/graphics/pokemon/back_pics/seedot_back_pic.png b/graphics/pokemon/seedot/back.png similarity index 100% rename from graphics/pokemon/back_pics/seedot_back_pic.png rename to graphics/pokemon/seedot/back.png diff --git a/graphics/pokemon/footprints/seedot_footprint.png b/graphics/pokemon/seedot/footprint.png similarity index 100% rename from graphics/pokemon/footprints/seedot_footprint.png rename to graphics/pokemon/seedot/footprint.png diff --git a/graphics/pokemon/front_pics/seedot_still_front_pic.png b/graphics/pokemon/seedot/front.png similarity index 100% rename from graphics/pokemon/front_pics/seedot_still_front_pic.png rename to graphics/pokemon/seedot/front.png diff --git a/graphics/pokemon/icons/seedot_icon.png b/graphics/pokemon/seedot/icon.png similarity index 100% rename from graphics/pokemon/icons/seedot_icon.png rename to graphics/pokemon/seedot/icon.png diff --git a/graphics/pokemon/palettes/seedot_palette.pal b/graphics/pokemon/seedot/normal.pal similarity index 100% rename from graphics/pokemon/palettes/seedot_palette.pal rename to graphics/pokemon/seedot/normal.pal diff --git a/graphics/pokemon/palettes/seedot_shiny_palette.pal b/graphics/pokemon/seedot/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/seedot_shiny_palette.pal rename to graphics/pokemon/seedot/shiny.pal diff --git a/graphics/pokemon/back_pics/seel_back_pic.png b/graphics/pokemon/seel/back.png similarity index 100% rename from graphics/pokemon/back_pics/seel_back_pic.png rename to graphics/pokemon/seel/back.png diff --git a/graphics/pokemon/footprints/seel_footprint.png b/graphics/pokemon/seel/footprint.png similarity index 100% rename from graphics/pokemon/footprints/seel_footprint.png rename to graphics/pokemon/seel/footprint.png diff --git a/graphics/pokemon/front_pics/seel_still_front_pic.png b/graphics/pokemon/seel/front.png similarity index 100% rename from graphics/pokemon/front_pics/seel_still_front_pic.png rename to graphics/pokemon/seel/front.png diff --git a/graphics/pokemon/icons/seel_icon.png b/graphics/pokemon/seel/icon.png similarity index 100% rename from graphics/pokemon/icons/seel_icon.png rename to graphics/pokemon/seel/icon.png diff --git a/graphics/pokemon/palettes/seel_palette.pal b/graphics/pokemon/seel/normal.pal similarity index 100% rename from graphics/pokemon/palettes/seel_palette.pal rename to graphics/pokemon/seel/normal.pal diff --git a/graphics/pokemon/palettes/seel_shiny_palette.pal b/graphics/pokemon/seel/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/seel_shiny_palette.pal rename to graphics/pokemon/seel/shiny.pal diff --git a/graphics/pokemon/back_pics/sentret_back_pic.png b/graphics/pokemon/sentret/back.png similarity index 100% rename from graphics/pokemon/back_pics/sentret_back_pic.png rename to graphics/pokemon/sentret/back.png diff --git a/graphics/pokemon/footprints/sentret_footprint.png b/graphics/pokemon/sentret/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sentret_footprint.png rename to graphics/pokemon/sentret/footprint.png diff --git a/graphics/pokemon/front_pics/sentret_still_front_pic.png b/graphics/pokemon/sentret/front.png similarity index 100% rename from graphics/pokemon/front_pics/sentret_still_front_pic.png rename to graphics/pokemon/sentret/front.png diff --git a/graphics/pokemon/icons/sentret_icon.png b/graphics/pokemon/sentret/icon.png similarity index 100% rename from graphics/pokemon/icons/sentret_icon.png rename to graphics/pokemon/sentret/icon.png diff --git a/graphics/pokemon/palettes/sentret_palette.pal b/graphics/pokemon/sentret/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sentret_palette.pal rename to graphics/pokemon/sentret/normal.pal diff --git a/graphics/pokemon/palettes/sentret_shiny_palette.pal b/graphics/pokemon/sentret/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sentret_shiny_palette.pal rename to graphics/pokemon/sentret/shiny.pal diff --git a/graphics/pokemon/back_pics/seviper_back_pic.png b/graphics/pokemon/seviper/back.png similarity index 100% rename from graphics/pokemon/back_pics/seviper_back_pic.png rename to graphics/pokemon/seviper/back.png diff --git a/graphics/pokemon/footprints/seviper_footprint.png b/graphics/pokemon/seviper/footprint.png similarity index 100% rename from graphics/pokemon/footprints/seviper_footprint.png rename to graphics/pokemon/seviper/footprint.png diff --git a/graphics/pokemon/front_pics/seviper_still_front_pic.png b/graphics/pokemon/seviper/front.png similarity index 100% rename from graphics/pokemon/front_pics/seviper_still_front_pic.png rename to graphics/pokemon/seviper/front.png diff --git a/graphics/pokemon/icons/seviper_icon.png b/graphics/pokemon/seviper/icon.png similarity index 100% rename from graphics/pokemon/icons/seviper_icon.png rename to graphics/pokemon/seviper/icon.png diff --git a/graphics/pokemon/palettes/seviper_palette.pal b/graphics/pokemon/seviper/normal.pal similarity index 100% rename from graphics/pokemon/palettes/seviper_palette.pal rename to graphics/pokemon/seviper/normal.pal diff --git a/graphics/pokemon/palettes/seviper_shiny_palette.pal b/graphics/pokemon/seviper/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/seviper_shiny_palette.pal rename to graphics/pokemon/seviper/shiny.pal diff --git a/graphics/pokemon/back_pics/sharpedo_back_pic.png b/graphics/pokemon/sharpedo/back.png similarity index 100% rename from graphics/pokemon/back_pics/sharpedo_back_pic.png rename to graphics/pokemon/sharpedo/back.png diff --git a/graphics/pokemon/footprints/sharpedo_footprint.png b/graphics/pokemon/sharpedo/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sharpedo_footprint.png rename to graphics/pokemon/sharpedo/footprint.png diff --git a/graphics/pokemon/front_pics/sharpedo_still_front_pic.png b/graphics/pokemon/sharpedo/front.png similarity index 100% rename from graphics/pokemon/front_pics/sharpedo_still_front_pic.png rename to graphics/pokemon/sharpedo/front.png diff --git a/graphics/pokemon/icons/sharpedo_icon.png b/graphics/pokemon/sharpedo/icon.png similarity index 100% rename from graphics/pokemon/icons/sharpedo_icon.png rename to graphics/pokemon/sharpedo/icon.png diff --git a/graphics/pokemon/palettes/sharpedo_palette.pal b/graphics/pokemon/sharpedo/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sharpedo_palette.pal rename to graphics/pokemon/sharpedo/normal.pal diff --git a/graphics/pokemon/palettes/sharpedo_shiny_palette.pal b/graphics/pokemon/sharpedo/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sharpedo_shiny_palette.pal rename to graphics/pokemon/sharpedo/shiny.pal diff --git a/graphics/pokemon/back_pics/shedinja_back_pic.png b/graphics/pokemon/shedinja/back.png similarity index 100% rename from graphics/pokemon/back_pics/shedinja_back_pic.png rename to graphics/pokemon/shedinja/back.png diff --git a/graphics/pokemon/footprints/shedinja_footprint.png b/graphics/pokemon/shedinja/footprint.png similarity index 100% rename from graphics/pokemon/footprints/shedinja_footprint.png rename to graphics/pokemon/shedinja/footprint.png diff --git a/graphics/pokemon/front_pics/shedinja_still_front_pic.png b/graphics/pokemon/shedinja/front.png similarity index 100% rename from graphics/pokemon/front_pics/shedinja_still_front_pic.png rename to graphics/pokemon/shedinja/front.png diff --git a/graphics/pokemon/icons/shedinja_icon.png b/graphics/pokemon/shedinja/icon.png similarity index 100% rename from graphics/pokemon/icons/shedinja_icon.png rename to graphics/pokemon/shedinja/icon.png diff --git a/graphics/pokemon/palettes/shedinja_palette.pal b/graphics/pokemon/shedinja/normal.pal similarity index 100% rename from graphics/pokemon/palettes/shedinja_palette.pal rename to graphics/pokemon/shedinja/normal.pal diff --git a/graphics/pokemon/palettes/shedinja_shiny_palette.pal b/graphics/pokemon/shedinja/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/shedinja_shiny_palette.pal rename to graphics/pokemon/shedinja/shiny.pal diff --git a/graphics/pokemon/back_pics/shelgon_back_pic.png b/graphics/pokemon/shelgon/back.png similarity index 100% rename from graphics/pokemon/back_pics/shelgon_back_pic.png rename to graphics/pokemon/shelgon/back.png diff --git a/graphics/pokemon/footprints/shelgon_footprint.png b/graphics/pokemon/shelgon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/shelgon_footprint.png rename to graphics/pokemon/shelgon/footprint.png diff --git a/graphics/pokemon/front_pics/shelgon_still_front_pic.png b/graphics/pokemon/shelgon/front.png similarity index 100% rename from graphics/pokemon/front_pics/shelgon_still_front_pic.png rename to graphics/pokemon/shelgon/front.png diff --git a/graphics/pokemon/icons/shelgon_icon.png b/graphics/pokemon/shelgon/icon.png similarity index 100% rename from graphics/pokemon/icons/shelgon_icon.png rename to graphics/pokemon/shelgon/icon.png diff --git a/graphics/pokemon/palettes/shelgon_palette.pal b/graphics/pokemon/shelgon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/shelgon_palette.pal rename to graphics/pokemon/shelgon/normal.pal diff --git a/graphics/pokemon/palettes/shelgon_shiny_palette.pal b/graphics/pokemon/shelgon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/shelgon_shiny_palette.pal rename to graphics/pokemon/shelgon/shiny.pal diff --git a/graphics/pokemon/back_pics/shellder_back_pic.png b/graphics/pokemon/shellder/back.png similarity index 100% rename from graphics/pokemon/back_pics/shellder_back_pic.png rename to graphics/pokemon/shellder/back.png diff --git a/graphics/pokemon/footprints/shellder_footprint.png b/graphics/pokemon/shellder/footprint.png similarity index 100% rename from graphics/pokemon/footprints/shellder_footprint.png rename to graphics/pokemon/shellder/footprint.png diff --git a/graphics/pokemon/front_pics/shellder_still_front_pic.png b/graphics/pokemon/shellder/front.png similarity index 100% rename from graphics/pokemon/front_pics/shellder_still_front_pic.png rename to graphics/pokemon/shellder/front.png diff --git a/graphics/pokemon/icons/shellder_icon.png b/graphics/pokemon/shellder/icon.png similarity index 100% rename from graphics/pokemon/icons/shellder_icon.png rename to graphics/pokemon/shellder/icon.png diff --git a/graphics/pokemon/palettes/shellder_palette.pal b/graphics/pokemon/shellder/normal.pal similarity index 100% rename from graphics/pokemon/palettes/shellder_palette.pal rename to graphics/pokemon/shellder/normal.pal diff --git a/graphics/pokemon/palettes/shellder_shiny_palette.pal b/graphics/pokemon/shellder/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/shellder_shiny_palette.pal rename to graphics/pokemon/shellder/shiny.pal diff --git a/graphics/pokemon/back_pics/shiftry_back_pic.png b/graphics/pokemon/shiftry/back.png similarity index 100% rename from graphics/pokemon/back_pics/shiftry_back_pic.png rename to graphics/pokemon/shiftry/back.png diff --git a/graphics/pokemon/footprints/shiftry_footprint.png b/graphics/pokemon/shiftry/footprint.png similarity index 100% rename from graphics/pokemon/footprints/shiftry_footprint.png rename to graphics/pokemon/shiftry/footprint.png diff --git a/graphics/pokemon/front_pics/shiftry_still_front_pic.png b/graphics/pokemon/shiftry/front.png similarity index 100% rename from graphics/pokemon/front_pics/shiftry_still_front_pic.png rename to graphics/pokemon/shiftry/front.png diff --git a/graphics/pokemon/icons/shiftry_icon.png b/graphics/pokemon/shiftry/icon.png similarity index 100% rename from graphics/pokemon/icons/shiftry_icon.png rename to graphics/pokemon/shiftry/icon.png diff --git a/graphics/pokemon/palettes/shiftry_palette.pal b/graphics/pokemon/shiftry/normal.pal similarity index 100% rename from graphics/pokemon/palettes/shiftry_palette.pal rename to graphics/pokemon/shiftry/normal.pal diff --git a/graphics/pokemon/palettes/shiftry_shiny_palette.pal b/graphics/pokemon/shiftry/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/shiftry_shiny_palette.pal rename to graphics/pokemon/shiftry/shiny.pal diff --git a/graphics/pokemon/back_pics/shroomish_back_pic.png b/graphics/pokemon/shroomish/back.png similarity index 100% rename from graphics/pokemon/back_pics/shroomish_back_pic.png rename to graphics/pokemon/shroomish/back.png diff --git a/graphics/pokemon/footprints/shroomish_footprint.png b/graphics/pokemon/shroomish/footprint.png similarity index 100% rename from graphics/pokemon/footprints/shroomish_footprint.png rename to graphics/pokemon/shroomish/footprint.png diff --git a/graphics/pokemon/front_pics/shroomish_still_front_pic.png b/graphics/pokemon/shroomish/front.png similarity index 100% rename from graphics/pokemon/front_pics/shroomish_still_front_pic.png rename to graphics/pokemon/shroomish/front.png diff --git a/graphics/pokemon/icons/shroomish_icon.png b/graphics/pokemon/shroomish/icon.png similarity index 100% rename from graphics/pokemon/icons/shroomish_icon.png rename to graphics/pokemon/shroomish/icon.png diff --git a/graphics/pokemon/palettes/shroomish_palette.pal b/graphics/pokemon/shroomish/normal.pal similarity index 100% rename from graphics/pokemon/palettes/shroomish_palette.pal rename to graphics/pokemon/shroomish/normal.pal diff --git a/graphics/pokemon/palettes/shroomish_shiny_palette.pal b/graphics/pokemon/shroomish/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/shroomish_shiny_palette.pal rename to graphics/pokemon/shroomish/shiny.pal diff --git a/graphics/pokemon/back_pics/shuckle_back_pic.png b/graphics/pokemon/shuckle/back.png similarity index 100% rename from graphics/pokemon/back_pics/shuckle_back_pic.png rename to graphics/pokemon/shuckle/back.png diff --git a/graphics/pokemon/footprints/shuckle_footprint.png b/graphics/pokemon/shuckle/footprint.png similarity index 100% rename from graphics/pokemon/footprints/shuckle_footprint.png rename to graphics/pokemon/shuckle/footprint.png diff --git a/graphics/pokemon/front_pics/shuckle_still_front_pic.png b/graphics/pokemon/shuckle/front.png similarity index 100% rename from graphics/pokemon/front_pics/shuckle_still_front_pic.png rename to graphics/pokemon/shuckle/front.png diff --git a/graphics/pokemon/icons/shuckle_icon.png b/graphics/pokemon/shuckle/icon.png similarity index 100% rename from graphics/pokemon/icons/shuckle_icon.png rename to graphics/pokemon/shuckle/icon.png diff --git a/graphics/pokemon/palettes/shuckle_palette.pal b/graphics/pokemon/shuckle/normal.pal similarity index 100% rename from graphics/pokemon/palettes/shuckle_palette.pal rename to graphics/pokemon/shuckle/normal.pal diff --git a/graphics/pokemon/palettes/shuckle_shiny_palette.pal b/graphics/pokemon/shuckle/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/shuckle_shiny_palette.pal rename to graphics/pokemon/shuckle/shiny.pal diff --git a/graphics/pokemon/back_pics/shuppet_back_pic.png b/graphics/pokemon/shuppet/back.png similarity index 100% rename from graphics/pokemon/back_pics/shuppet_back_pic.png rename to graphics/pokemon/shuppet/back.png diff --git a/graphics/pokemon/footprints/shuppet_footprint.png b/graphics/pokemon/shuppet/footprint.png similarity index 100% rename from graphics/pokemon/footprints/shuppet_footprint.png rename to graphics/pokemon/shuppet/footprint.png diff --git a/graphics/pokemon/front_pics/shuppet_still_front_pic.png b/graphics/pokemon/shuppet/front.png similarity index 100% rename from graphics/pokemon/front_pics/shuppet_still_front_pic.png rename to graphics/pokemon/shuppet/front.png diff --git a/graphics/pokemon/icons/shuppet_icon.png b/graphics/pokemon/shuppet/icon.png similarity index 100% rename from graphics/pokemon/icons/shuppet_icon.png rename to graphics/pokemon/shuppet/icon.png diff --git a/graphics/pokemon/palettes/shuppet_palette.pal b/graphics/pokemon/shuppet/normal.pal similarity index 100% rename from graphics/pokemon/palettes/shuppet_palette.pal rename to graphics/pokemon/shuppet/normal.pal diff --git a/graphics/pokemon/palettes/shuppet_shiny_palette.pal b/graphics/pokemon/shuppet/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/shuppet_shiny_palette.pal rename to graphics/pokemon/shuppet/shiny.pal diff --git a/graphics/pokemon/back_pics/silcoon_back_pic.png b/graphics/pokemon/silcoon/back.png similarity index 100% rename from graphics/pokemon/back_pics/silcoon_back_pic.png rename to graphics/pokemon/silcoon/back.png diff --git a/graphics/pokemon/footprints/silcoon_footprint.png b/graphics/pokemon/silcoon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/silcoon_footprint.png rename to graphics/pokemon/silcoon/footprint.png diff --git a/graphics/pokemon/front_pics/silcoon_still_front_pic.png b/graphics/pokemon/silcoon/front.png similarity index 100% rename from graphics/pokemon/front_pics/silcoon_still_front_pic.png rename to graphics/pokemon/silcoon/front.png diff --git a/graphics/pokemon/icons/silcoon_icon.png b/graphics/pokemon/silcoon/icon.png similarity index 100% rename from graphics/pokemon/icons/silcoon_icon.png rename to graphics/pokemon/silcoon/icon.png diff --git a/graphics/pokemon/palettes/silcoon_palette.pal b/graphics/pokemon/silcoon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/silcoon_palette.pal rename to graphics/pokemon/silcoon/normal.pal diff --git a/graphics/pokemon/palettes/silcoon_shiny_palette.pal b/graphics/pokemon/silcoon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/silcoon_shiny_palette.pal rename to graphics/pokemon/silcoon/shiny.pal diff --git a/graphics/pokemon/back_pics/skarmory_back_pic.png b/graphics/pokemon/skarmory/back.png similarity index 100% rename from graphics/pokemon/back_pics/skarmory_back_pic.png rename to graphics/pokemon/skarmory/back.png diff --git a/graphics/pokemon/footprints/skarmory_footprint.png b/graphics/pokemon/skarmory/footprint.png similarity index 100% rename from graphics/pokemon/footprints/skarmory_footprint.png rename to graphics/pokemon/skarmory/footprint.png diff --git a/graphics/pokemon/front_pics/skarmory_still_front_pic.png b/graphics/pokemon/skarmory/front.png similarity index 100% rename from graphics/pokemon/front_pics/skarmory_still_front_pic.png rename to graphics/pokemon/skarmory/front.png diff --git a/graphics/pokemon/icons/skarmory_icon.png b/graphics/pokemon/skarmory/icon.png similarity index 100% rename from graphics/pokemon/icons/skarmory_icon.png rename to graphics/pokemon/skarmory/icon.png diff --git a/graphics/pokemon/palettes/skarmory_palette.pal b/graphics/pokemon/skarmory/normal.pal similarity index 100% rename from graphics/pokemon/palettes/skarmory_palette.pal rename to graphics/pokemon/skarmory/normal.pal diff --git a/graphics/pokemon/palettes/skarmory_shiny_palette.pal b/graphics/pokemon/skarmory/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/skarmory_shiny_palette.pal rename to graphics/pokemon/skarmory/shiny.pal diff --git a/graphics/pokemon/back_pics/skiploom_back_pic.png b/graphics/pokemon/skiploom/back.png similarity index 100% rename from graphics/pokemon/back_pics/skiploom_back_pic.png rename to graphics/pokemon/skiploom/back.png diff --git a/graphics/pokemon/footprints/skiploom_footprint.png b/graphics/pokemon/skiploom/footprint.png similarity index 100% rename from graphics/pokemon/footprints/skiploom_footprint.png rename to graphics/pokemon/skiploom/footprint.png diff --git a/graphics/pokemon/front_pics/skiploom_still_front_pic.png b/graphics/pokemon/skiploom/front.png similarity index 100% rename from graphics/pokemon/front_pics/skiploom_still_front_pic.png rename to graphics/pokemon/skiploom/front.png diff --git a/graphics/pokemon/icons/skiploom_icon.png b/graphics/pokemon/skiploom/icon.png similarity index 100% rename from graphics/pokemon/icons/skiploom_icon.png rename to graphics/pokemon/skiploom/icon.png diff --git a/graphics/pokemon/palettes/skiploom_palette.pal b/graphics/pokemon/skiploom/normal.pal similarity index 100% rename from graphics/pokemon/palettes/skiploom_palette.pal rename to graphics/pokemon/skiploom/normal.pal diff --git a/graphics/pokemon/palettes/skiploom_shiny_palette.pal b/graphics/pokemon/skiploom/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/skiploom_shiny_palette.pal rename to graphics/pokemon/skiploom/shiny.pal diff --git a/graphics/pokemon/back_pics/skitty_back_pic.png b/graphics/pokemon/skitty/back.png similarity index 100% rename from graphics/pokemon/back_pics/skitty_back_pic.png rename to graphics/pokemon/skitty/back.png diff --git a/graphics/pokemon/footprints/skitty_footprint.png b/graphics/pokemon/skitty/footprint.png similarity index 100% rename from graphics/pokemon/footprints/skitty_footprint.png rename to graphics/pokemon/skitty/footprint.png diff --git a/graphics/pokemon/front_pics/skitty_still_front_pic.png b/graphics/pokemon/skitty/front.png similarity index 100% rename from graphics/pokemon/front_pics/skitty_still_front_pic.png rename to graphics/pokemon/skitty/front.png diff --git a/graphics/pokemon/icons/skitty_icon.png b/graphics/pokemon/skitty/icon.png similarity index 100% rename from graphics/pokemon/icons/skitty_icon.png rename to graphics/pokemon/skitty/icon.png diff --git a/graphics/pokemon/palettes/skitty_palette.pal b/graphics/pokemon/skitty/normal.pal similarity index 100% rename from graphics/pokemon/palettes/skitty_palette.pal rename to graphics/pokemon/skitty/normal.pal diff --git a/graphics/pokemon/palettes/skitty_shiny_palette.pal b/graphics/pokemon/skitty/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/skitty_shiny_palette.pal rename to graphics/pokemon/skitty/shiny.pal diff --git a/graphics/pokemon/back_pics/slaking_back_pic.png b/graphics/pokemon/slaking/back.png similarity index 100% rename from graphics/pokemon/back_pics/slaking_back_pic.png rename to graphics/pokemon/slaking/back.png diff --git a/graphics/pokemon/footprints/slaking_footprint.png b/graphics/pokemon/slaking/footprint.png similarity index 100% rename from graphics/pokemon/footprints/slaking_footprint.png rename to graphics/pokemon/slaking/footprint.png diff --git a/graphics/pokemon/front_pics/slaking_still_front_pic.png b/graphics/pokemon/slaking/front.png similarity index 100% rename from graphics/pokemon/front_pics/slaking_still_front_pic.png rename to graphics/pokemon/slaking/front.png diff --git a/graphics/pokemon/icons/slaking_icon.png b/graphics/pokemon/slaking/icon.png similarity index 100% rename from graphics/pokemon/icons/slaking_icon.png rename to graphics/pokemon/slaking/icon.png diff --git a/graphics/pokemon/palettes/slaking_palette.pal b/graphics/pokemon/slaking/normal.pal similarity index 100% rename from graphics/pokemon/palettes/slaking_palette.pal rename to graphics/pokemon/slaking/normal.pal diff --git a/graphics/pokemon/palettes/slaking_shiny_palette.pal b/graphics/pokemon/slaking/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/slaking_shiny_palette.pal rename to graphics/pokemon/slaking/shiny.pal diff --git a/graphics/pokemon/back_pics/slakoth_back_pic.png b/graphics/pokemon/slakoth/back.png similarity index 100% rename from graphics/pokemon/back_pics/slakoth_back_pic.png rename to graphics/pokemon/slakoth/back.png diff --git a/graphics/pokemon/footprints/slakoth_footprint.png b/graphics/pokemon/slakoth/footprint.png similarity index 100% rename from graphics/pokemon/footprints/slakoth_footprint.png rename to graphics/pokemon/slakoth/footprint.png diff --git a/graphics/pokemon/front_pics/slakoth_still_front_pic.png b/graphics/pokemon/slakoth/front.png similarity index 100% rename from graphics/pokemon/front_pics/slakoth_still_front_pic.png rename to graphics/pokemon/slakoth/front.png diff --git a/graphics/pokemon/icons/slakoth_icon.png b/graphics/pokemon/slakoth/icon.png similarity index 100% rename from graphics/pokemon/icons/slakoth_icon.png rename to graphics/pokemon/slakoth/icon.png diff --git a/graphics/pokemon/palettes/slakoth_palette.pal b/graphics/pokemon/slakoth/normal.pal similarity index 100% rename from graphics/pokemon/palettes/slakoth_palette.pal rename to graphics/pokemon/slakoth/normal.pal diff --git a/graphics/pokemon/palettes/slakoth_shiny_palette.pal b/graphics/pokemon/slakoth/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/slakoth_shiny_palette.pal rename to graphics/pokemon/slakoth/shiny.pal diff --git a/graphics/pokemon/back_pics/slowbro_back_pic.png b/graphics/pokemon/slowbro/back.png similarity index 100% rename from graphics/pokemon/back_pics/slowbro_back_pic.png rename to graphics/pokemon/slowbro/back.png diff --git a/graphics/pokemon/footprints/slowbro_footprint.png b/graphics/pokemon/slowbro/footprint.png similarity index 100% rename from graphics/pokemon/footprints/slowbro_footprint.png rename to graphics/pokemon/slowbro/footprint.png diff --git a/graphics/pokemon/front_pics/slowbro_still_front_pic.png b/graphics/pokemon/slowbro/front.png similarity index 100% rename from graphics/pokemon/front_pics/slowbro_still_front_pic.png rename to graphics/pokemon/slowbro/front.png diff --git a/graphics/pokemon/icons/slowbro_icon.png b/graphics/pokemon/slowbro/icon.png similarity index 100% rename from graphics/pokemon/icons/slowbro_icon.png rename to graphics/pokemon/slowbro/icon.png diff --git a/graphics/pokemon/palettes/slowbro_palette.pal b/graphics/pokemon/slowbro/normal.pal similarity index 100% rename from graphics/pokemon/palettes/slowbro_palette.pal rename to graphics/pokemon/slowbro/normal.pal diff --git a/graphics/pokemon/palettes/slowbro_shiny_palette.pal b/graphics/pokemon/slowbro/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/slowbro_shiny_palette.pal rename to graphics/pokemon/slowbro/shiny.pal diff --git a/graphics/pokemon/back_pics/slowking_back_pic.png b/graphics/pokemon/slowking/back.png similarity index 100% rename from graphics/pokemon/back_pics/slowking_back_pic.png rename to graphics/pokemon/slowking/back.png diff --git a/graphics/pokemon/footprints/slowking_footprint.png b/graphics/pokemon/slowking/footprint.png similarity index 100% rename from graphics/pokemon/footprints/slowking_footprint.png rename to graphics/pokemon/slowking/footprint.png diff --git a/graphics/pokemon/front_pics/slowking_still_front_pic.png b/graphics/pokemon/slowking/front.png similarity index 100% rename from graphics/pokemon/front_pics/slowking_still_front_pic.png rename to graphics/pokemon/slowking/front.png diff --git a/graphics/pokemon/icons/slowking_icon.png b/graphics/pokemon/slowking/icon.png similarity index 100% rename from graphics/pokemon/icons/slowking_icon.png rename to graphics/pokemon/slowking/icon.png diff --git a/graphics/pokemon/palettes/slowking_palette.pal b/graphics/pokemon/slowking/normal.pal similarity index 100% rename from graphics/pokemon/palettes/slowking_palette.pal rename to graphics/pokemon/slowking/normal.pal diff --git a/graphics/pokemon/palettes/slowking_shiny_palette.pal b/graphics/pokemon/slowking/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/slowking_shiny_palette.pal rename to graphics/pokemon/slowking/shiny.pal diff --git a/graphics/pokemon/back_pics/slowpoke_back_pic.png b/graphics/pokemon/slowpoke/back.png similarity index 100% rename from graphics/pokemon/back_pics/slowpoke_back_pic.png rename to graphics/pokemon/slowpoke/back.png diff --git a/graphics/pokemon/footprints/slowpoke_footprint.png b/graphics/pokemon/slowpoke/footprint.png similarity index 100% rename from graphics/pokemon/footprints/slowpoke_footprint.png rename to graphics/pokemon/slowpoke/footprint.png diff --git a/graphics/pokemon/front_pics/slowpoke_still_front_pic.png b/graphics/pokemon/slowpoke/front.png similarity index 100% rename from graphics/pokemon/front_pics/slowpoke_still_front_pic.png rename to graphics/pokemon/slowpoke/front.png diff --git a/graphics/pokemon/icons/slowpoke_icon.png b/graphics/pokemon/slowpoke/icon.png similarity index 100% rename from graphics/pokemon/icons/slowpoke_icon.png rename to graphics/pokemon/slowpoke/icon.png diff --git a/graphics/pokemon/palettes/slowpoke_palette.pal b/graphics/pokemon/slowpoke/normal.pal similarity index 100% rename from graphics/pokemon/palettes/slowpoke_palette.pal rename to graphics/pokemon/slowpoke/normal.pal diff --git a/graphics/pokemon/palettes/slowpoke_shiny_palette.pal b/graphics/pokemon/slowpoke/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/slowpoke_shiny_palette.pal rename to graphics/pokemon/slowpoke/shiny.pal diff --git a/graphics/pokemon/back_pics/slugma_back_pic.png b/graphics/pokemon/slugma/back.png similarity index 100% rename from graphics/pokemon/back_pics/slugma_back_pic.png rename to graphics/pokemon/slugma/back.png diff --git a/graphics/pokemon/footprints/slugma_footprint.png b/graphics/pokemon/slugma/footprint.png similarity index 100% rename from graphics/pokemon/footprints/slugma_footprint.png rename to graphics/pokemon/slugma/footprint.png diff --git a/graphics/pokemon/front_pics/slugma_still_front_pic.png b/graphics/pokemon/slugma/front.png similarity index 100% rename from graphics/pokemon/front_pics/slugma_still_front_pic.png rename to graphics/pokemon/slugma/front.png diff --git a/graphics/pokemon/icons/slugma_icon.png b/graphics/pokemon/slugma/icon.png similarity index 100% rename from graphics/pokemon/icons/slugma_icon.png rename to graphics/pokemon/slugma/icon.png diff --git a/graphics/pokemon/palettes/slugma_palette.pal b/graphics/pokemon/slugma/normal.pal similarity index 100% rename from graphics/pokemon/palettes/slugma_palette.pal rename to graphics/pokemon/slugma/normal.pal diff --git a/graphics/pokemon/palettes/slugma_shiny_palette.pal b/graphics/pokemon/slugma/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/slugma_shiny_palette.pal rename to graphics/pokemon/slugma/shiny.pal diff --git a/graphics/pokemon/back_pics/smeargle_back_pic.png b/graphics/pokemon/smeargle/back.png similarity index 100% rename from graphics/pokemon/back_pics/smeargle_back_pic.png rename to graphics/pokemon/smeargle/back.png diff --git a/graphics/pokemon/footprints/smeargle_footprint.png b/graphics/pokemon/smeargle/footprint.png similarity index 100% rename from graphics/pokemon/footprints/smeargle_footprint.png rename to graphics/pokemon/smeargle/footprint.png diff --git a/graphics/pokemon/front_pics/smeargle_still_front_pic.png b/graphics/pokemon/smeargle/front.png similarity index 100% rename from graphics/pokemon/front_pics/smeargle_still_front_pic.png rename to graphics/pokemon/smeargle/front.png diff --git a/graphics/pokemon/icons/smeargle_icon.png b/graphics/pokemon/smeargle/icon.png similarity index 100% rename from graphics/pokemon/icons/smeargle_icon.png rename to graphics/pokemon/smeargle/icon.png diff --git a/graphics/pokemon/palettes/smeargle_palette.pal b/graphics/pokemon/smeargle/normal.pal similarity index 100% rename from graphics/pokemon/palettes/smeargle_palette.pal rename to graphics/pokemon/smeargle/normal.pal diff --git a/graphics/pokemon/palettes/smeargle_shiny_palette.pal b/graphics/pokemon/smeargle/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/smeargle_shiny_palette.pal rename to graphics/pokemon/smeargle/shiny.pal diff --git a/graphics/pokemon/back_pics/smoochum_back_pic.png b/graphics/pokemon/smoochum/back.png similarity index 100% rename from graphics/pokemon/back_pics/smoochum_back_pic.png rename to graphics/pokemon/smoochum/back.png diff --git a/graphics/pokemon/footprints/smoochum_footprint.png b/graphics/pokemon/smoochum/footprint.png similarity index 100% rename from graphics/pokemon/footprints/smoochum_footprint.png rename to graphics/pokemon/smoochum/footprint.png diff --git a/graphics/pokemon/front_pics/smoochum_still_front_pic.png b/graphics/pokemon/smoochum/front.png similarity index 100% rename from graphics/pokemon/front_pics/smoochum_still_front_pic.png rename to graphics/pokemon/smoochum/front.png diff --git a/graphics/pokemon/icons/smoochum_icon.png b/graphics/pokemon/smoochum/icon.png similarity index 100% rename from graphics/pokemon/icons/smoochum_icon.png rename to graphics/pokemon/smoochum/icon.png diff --git a/graphics/pokemon/palettes/smoochum_palette.pal b/graphics/pokemon/smoochum/normal.pal similarity index 100% rename from graphics/pokemon/palettes/smoochum_palette.pal rename to graphics/pokemon/smoochum/normal.pal diff --git a/graphics/pokemon/palettes/smoochum_shiny_palette.pal b/graphics/pokemon/smoochum/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/smoochum_shiny_palette.pal rename to graphics/pokemon/smoochum/shiny.pal diff --git a/graphics/pokemon/back_pics/sneasel_back_pic.png b/graphics/pokemon/sneasel/back.png similarity index 100% rename from graphics/pokemon/back_pics/sneasel_back_pic.png rename to graphics/pokemon/sneasel/back.png diff --git a/graphics/pokemon/footprints/sneasel_footprint.png b/graphics/pokemon/sneasel/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sneasel_footprint.png rename to graphics/pokemon/sneasel/footprint.png diff --git a/graphics/pokemon/front_pics/sneasel_still_front_pic.png b/graphics/pokemon/sneasel/front.png similarity index 100% rename from graphics/pokemon/front_pics/sneasel_still_front_pic.png rename to graphics/pokemon/sneasel/front.png diff --git a/graphics/pokemon/icons/sneasel_icon.png b/graphics/pokemon/sneasel/icon.png similarity index 100% rename from graphics/pokemon/icons/sneasel_icon.png rename to graphics/pokemon/sneasel/icon.png diff --git a/graphics/pokemon/palettes/sneasel_palette.pal b/graphics/pokemon/sneasel/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sneasel_palette.pal rename to graphics/pokemon/sneasel/normal.pal diff --git a/graphics/pokemon/palettes/sneasel_shiny_palette.pal b/graphics/pokemon/sneasel/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sneasel_shiny_palette.pal rename to graphics/pokemon/sneasel/shiny.pal diff --git a/graphics/pokemon/back_pics/snorlax_back_pic.png b/graphics/pokemon/snorlax/back.png similarity index 100% rename from graphics/pokemon/back_pics/snorlax_back_pic.png rename to graphics/pokemon/snorlax/back.png diff --git a/graphics/pokemon/footprints/snorlax_footprint.png b/graphics/pokemon/snorlax/footprint.png similarity index 100% rename from graphics/pokemon/footprints/snorlax_footprint.png rename to graphics/pokemon/snorlax/footprint.png diff --git a/graphics/pokemon/front_pics/snorlax_still_front_pic.png b/graphics/pokemon/snorlax/front.png similarity index 100% rename from graphics/pokemon/front_pics/snorlax_still_front_pic.png rename to graphics/pokemon/snorlax/front.png diff --git a/graphics/pokemon/icons/snorlax_icon.png b/graphics/pokemon/snorlax/icon.png similarity index 100% rename from graphics/pokemon/icons/snorlax_icon.png rename to graphics/pokemon/snorlax/icon.png diff --git a/graphics/pokemon/palettes/snorlax_palette.pal b/graphics/pokemon/snorlax/normal.pal similarity index 100% rename from graphics/pokemon/palettes/snorlax_palette.pal rename to graphics/pokemon/snorlax/normal.pal diff --git a/graphics/pokemon/palettes/snorlax_shiny_palette.pal b/graphics/pokemon/snorlax/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/snorlax_shiny_palette.pal rename to graphics/pokemon/snorlax/shiny.pal diff --git a/graphics/pokemon/back_pics/snorunt_back_pic.png b/graphics/pokemon/snorunt/back.png similarity index 100% rename from graphics/pokemon/back_pics/snorunt_back_pic.png rename to graphics/pokemon/snorunt/back.png diff --git a/graphics/pokemon/footprints/snorunt_footprint.png b/graphics/pokemon/snorunt/footprint.png similarity index 100% rename from graphics/pokemon/footprints/snorunt_footprint.png rename to graphics/pokemon/snorunt/footprint.png diff --git a/graphics/pokemon/front_pics/snorunt_still_front_pic.png b/graphics/pokemon/snorunt/front.png similarity index 100% rename from graphics/pokemon/front_pics/snorunt_still_front_pic.png rename to graphics/pokemon/snorunt/front.png diff --git a/graphics/pokemon/icons/snorunt_icon.png b/graphics/pokemon/snorunt/icon.png similarity index 100% rename from graphics/pokemon/icons/snorunt_icon.png rename to graphics/pokemon/snorunt/icon.png diff --git a/graphics/pokemon/palettes/snorunt_palette.pal b/graphics/pokemon/snorunt/normal.pal similarity index 100% rename from graphics/pokemon/palettes/snorunt_palette.pal rename to graphics/pokemon/snorunt/normal.pal diff --git a/graphics/pokemon/palettes/snorunt_shiny_palette.pal b/graphics/pokemon/snorunt/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/snorunt_shiny_palette.pal rename to graphics/pokemon/snorunt/shiny.pal diff --git a/graphics/pokemon/back_pics/snubbull_back_pic.png b/graphics/pokemon/snubbull/back.png similarity index 100% rename from graphics/pokemon/back_pics/snubbull_back_pic.png rename to graphics/pokemon/snubbull/back.png diff --git a/graphics/pokemon/footprints/snubbull_footprint.png b/graphics/pokemon/snubbull/footprint.png similarity index 100% rename from graphics/pokemon/footprints/snubbull_footprint.png rename to graphics/pokemon/snubbull/footprint.png diff --git a/graphics/pokemon/front_pics/snubbull_still_front_pic.png b/graphics/pokemon/snubbull/front.png similarity index 100% rename from graphics/pokemon/front_pics/snubbull_still_front_pic.png rename to graphics/pokemon/snubbull/front.png diff --git a/graphics/pokemon/icons/snubbull_icon.png b/graphics/pokemon/snubbull/icon.png similarity index 100% rename from graphics/pokemon/icons/snubbull_icon.png rename to graphics/pokemon/snubbull/icon.png diff --git a/graphics/pokemon/palettes/snubbull_palette.pal b/graphics/pokemon/snubbull/normal.pal similarity index 100% rename from graphics/pokemon/palettes/snubbull_palette.pal rename to graphics/pokemon/snubbull/normal.pal diff --git a/graphics/pokemon/palettes/snubbull_shiny_palette.pal b/graphics/pokemon/snubbull/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/snubbull_shiny_palette.pal rename to graphics/pokemon/snubbull/shiny.pal diff --git a/graphics/pokemon/back_pics/solrock_back_pic.png b/graphics/pokemon/solrock/back.png similarity index 100% rename from graphics/pokemon/back_pics/solrock_back_pic.png rename to graphics/pokemon/solrock/back.png diff --git a/graphics/pokemon/footprints/solrock_footprint.png b/graphics/pokemon/solrock/footprint.png similarity index 100% rename from graphics/pokemon/footprints/solrock_footprint.png rename to graphics/pokemon/solrock/footprint.png diff --git a/graphics/pokemon/front_pics/solrock_still_front_pic.png b/graphics/pokemon/solrock/front.png similarity index 100% rename from graphics/pokemon/front_pics/solrock_still_front_pic.png rename to graphics/pokemon/solrock/front.png diff --git a/graphics/pokemon/icons/solrock_icon.png b/graphics/pokemon/solrock/icon.png similarity index 100% rename from graphics/pokemon/icons/solrock_icon.png rename to graphics/pokemon/solrock/icon.png diff --git a/graphics/pokemon/palettes/solrock_palette.pal b/graphics/pokemon/solrock/normal.pal similarity index 100% rename from graphics/pokemon/palettes/solrock_palette.pal rename to graphics/pokemon/solrock/normal.pal diff --git a/graphics/pokemon/palettes/solrock_shiny_palette.pal b/graphics/pokemon/solrock/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/solrock_shiny_palette.pal rename to graphics/pokemon/solrock/shiny.pal diff --git a/graphics/pokemon/back_pics/spearow_back_pic.png b/graphics/pokemon/spearow/back.png similarity index 100% rename from graphics/pokemon/back_pics/spearow_back_pic.png rename to graphics/pokemon/spearow/back.png diff --git a/graphics/pokemon/footprints/spearow_footprint.png b/graphics/pokemon/spearow/footprint.png similarity index 100% rename from graphics/pokemon/footprints/spearow_footprint.png rename to graphics/pokemon/spearow/footprint.png diff --git a/graphics/pokemon/front_pics/spearow_still_front_pic.png b/graphics/pokemon/spearow/front.png similarity index 100% rename from graphics/pokemon/front_pics/spearow_still_front_pic.png rename to graphics/pokemon/spearow/front.png diff --git a/graphics/pokemon/icons/spearow_icon.png b/graphics/pokemon/spearow/icon.png similarity index 100% rename from graphics/pokemon/icons/spearow_icon.png rename to graphics/pokemon/spearow/icon.png diff --git a/graphics/pokemon/palettes/spearow_palette.pal b/graphics/pokemon/spearow/normal.pal similarity index 100% rename from graphics/pokemon/palettes/spearow_palette.pal rename to graphics/pokemon/spearow/normal.pal diff --git a/graphics/pokemon/palettes/spearow_shiny_palette.pal b/graphics/pokemon/spearow/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/spearow_shiny_palette.pal rename to graphics/pokemon/spearow/shiny.pal diff --git a/graphics/pokemon/back_pics/spheal_back_pic.png b/graphics/pokemon/spheal/back.png similarity index 100% rename from graphics/pokemon/back_pics/spheal_back_pic.png rename to graphics/pokemon/spheal/back.png diff --git a/graphics/pokemon/footprints/spheal_footprint.png b/graphics/pokemon/spheal/footprint.png similarity index 100% rename from graphics/pokemon/footprints/spheal_footprint.png rename to graphics/pokemon/spheal/footprint.png diff --git a/graphics/pokemon/front_pics/spheal_still_front_pic.png b/graphics/pokemon/spheal/front.png similarity index 100% rename from graphics/pokemon/front_pics/spheal_still_front_pic.png rename to graphics/pokemon/spheal/front.png diff --git a/graphics/pokemon/icons/spheal_icon.png b/graphics/pokemon/spheal/icon.png similarity index 100% rename from graphics/pokemon/icons/spheal_icon.png rename to graphics/pokemon/spheal/icon.png diff --git a/graphics/pokemon/palettes/spheal_palette.pal b/graphics/pokemon/spheal/normal.pal similarity index 100% rename from graphics/pokemon/palettes/spheal_palette.pal rename to graphics/pokemon/spheal/normal.pal diff --git a/graphics/pokemon/palettes/spheal_shiny_palette.pal b/graphics/pokemon/spheal/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/spheal_shiny_palette.pal rename to graphics/pokemon/spheal/shiny.pal diff --git a/graphics/pokemon/back_pics/spinarak_back_pic.png b/graphics/pokemon/spinarak/back.png similarity index 100% rename from graphics/pokemon/back_pics/spinarak_back_pic.png rename to graphics/pokemon/spinarak/back.png diff --git a/graphics/pokemon/footprints/spinarak_footprint.png b/graphics/pokemon/spinarak/footprint.png similarity index 100% rename from graphics/pokemon/footprints/spinarak_footprint.png rename to graphics/pokemon/spinarak/footprint.png diff --git a/graphics/pokemon/front_pics/spinarak_still_front_pic.png b/graphics/pokemon/spinarak/front.png similarity index 100% rename from graphics/pokemon/front_pics/spinarak_still_front_pic.png rename to graphics/pokemon/spinarak/front.png diff --git a/graphics/pokemon/icons/spinarak_icon.png b/graphics/pokemon/spinarak/icon.png similarity index 100% rename from graphics/pokemon/icons/spinarak_icon.png rename to graphics/pokemon/spinarak/icon.png diff --git a/graphics/pokemon/palettes/spinarak_palette.pal b/graphics/pokemon/spinarak/normal.pal similarity index 100% rename from graphics/pokemon/palettes/spinarak_palette.pal rename to graphics/pokemon/spinarak/normal.pal diff --git a/graphics/pokemon/palettes/spinarak_shiny_palette.pal b/graphics/pokemon/spinarak/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/spinarak_shiny_palette.pal rename to graphics/pokemon/spinarak/shiny.pal diff --git a/graphics/pokemon/back_pics/spinda_back_pic.png b/graphics/pokemon/spinda/back.png similarity index 100% rename from graphics/pokemon/back_pics/spinda_back_pic.png rename to graphics/pokemon/spinda/back.png diff --git a/graphics/pokemon/footprints/spinda_footprint.png b/graphics/pokemon/spinda/footprint.png similarity index 100% rename from graphics/pokemon/footprints/spinda_footprint.png rename to graphics/pokemon/spinda/footprint.png diff --git a/graphics/pokemon/front_pics/spinda_still_front_pic.png b/graphics/pokemon/spinda/front.png similarity index 100% rename from graphics/pokemon/front_pics/spinda_still_front_pic.png rename to graphics/pokemon/spinda/front.png diff --git a/graphics/pokemon/icons/spinda_icon.png b/graphics/pokemon/spinda/icon.png similarity index 100% rename from graphics/pokemon/icons/spinda_icon.png rename to graphics/pokemon/spinda/icon.png diff --git a/graphics/pokemon/palettes/spinda_palette.pal b/graphics/pokemon/spinda/normal.pal similarity index 100% rename from graphics/pokemon/palettes/spinda_palette.pal rename to graphics/pokemon/spinda/normal.pal diff --git a/graphics/pokemon/palettes/spinda_shiny_palette.pal b/graphics/pokemon/spinda/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/spinda_shiny_palette.pal rename to graphics/pokemon/spinda/shiny.pal diff --git a/graphics/pokemon/back_pics/spoink_back_pic.png b/graphics/pokemon/spoink/back.png similarity index 100% rename from graphics/pokemon/back_pics/spoink_back_pic.png rename to graphics/pokemon/spoink/back.png diff --git a/graphics/pokemon/footprints/spoink_footprint.png b/graphics/pokemon/spoink/footprint.png similarity index 100% rename from graphics/pokemon/footprints/spoink_footprint.png rename to graphics/pokemon/spoink/footprint.png diff --git a/graphics/pokemon/front_pics/spoink_still_front_pic.png b/graphics/pokemon/spoink/front.png similarity index 100% rename from graphics/pokemon/front_pics/spoink_still_front_pic.png rename to graphics/pokemon/spoink/front.png diff --git a/graphics/pokemon/icons/spoink_icon.png b/graphics/pokemon/spoink/icon.png similarity index 100% rename from graphics/pokemon/icons/spoink_icon.png rename to graphics/pokemon/spoink/icon.png diff --git a/graphics/pokemon/palettes/spoink_palette.pal b/graphics/pokemon/spoink/normal.pal similarity index 100% rename from graphics/pokemon/palettes/spoink_palette.pal rename to graphics/pokemon/spoink/normal.pal diff --git a/graphics/pokemon/palettes/spoink_shiny_palette.pal b/graphics/pokemon/spoink/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/spoink_shiny_palette.pal rename to graphics/pokemon/spoink/shiny.pal diff --git a/graphics/pokemon/back_pics/squirtle_back_pic.png b/graphics/pokemon/squirtle/back.png similarity index 100% rename from graphics/pokemon/back_pics/squirtle_back_pic.png rename to graphics/pokemon/squirtle/back.png diff --git a/graphics/pokemon/footprints/squirtle_footprint.png b/graphics/pokemon/squirtle/footprint.png similarity index 100% rename from graphics/pokemon/footprints/squirtle_footprint.png rename to graphics/pokemon/squirtle/footprint.png diff --git a/graphics/pokemon/front_pics/squirtle_still_front_pic.png b/graphics/pokemon/squirtle/front.png similarity index 100% rename from graphics/pokemon/front_pics/squirtle_still_front_pic.png rename to graphics/pokemon/squirtle/front.png diff --git a/graphics/pokemon/icons/squirtle_icon.png b/graphics/pokemon/squirtle/icon.png similarity index 100% rename from graphics/pokemon/icons/squirtle_icon.png rename to graphics/pokemon/squirtle/icon.png diff --git a/graphics/pokemon/palettes/squirtle_palette.pal b/graphics/pokemon/squirtle/normal.pal similarity index 100% rename from graphics/pokemon/palettes/squirtle_palette.pal rename to graphics/pokemon/squirtle/normal.pal diff --git a/graphics/pokemon/palettes/squirtle_shiny_palette.pal b/graphics/pokemon/squirtle/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/squirtle_shiny_palette.pal rename to graphics/pokemon/squirtle/shiny.pal diff --git a/graphics/pokemon/back_pics/stantler_back_pic.png b/graphics/pokemon/stantler/back.png similarity index 100% rename from graphics/pokemon/back_pics/stantler_back_pic.png rename to graphics/pokemon/stantler/back.png diff --git a/graphics/pokemon/footprints/stantler_footprint.png b/graphics/pokemon/stantler/footprint.png similarity index 100% rename from graphics/pokemon/footprints/stantler_footprint.png rename to graphics/pokemon/stantler/footprint.png diff --git a/graphics/pokemon/front_pics/stantler_still_front_pic.png b/graphics/pokemon/stantler/front.png similarity index 100% rename from graphics/pokemon/front_pics/stantler_still_front_pic.png rename to graphics/pokemon/stantler/front.png diff --git a/graphics/pokemon/icons/stantler_icon.png b/graphics/pokemon/stantler/icon.png similarity index 100% rename from graphics/pokemon/icons/stantler_icon.png rename to graphics/pokemon/stantler/icon.png diff --git a/graphics/pokemon/palettes/stantler_palette.pal b/graphics/pokemon/stantler/normal.pal similarity index 100% rename from graphics/pokemon/palettes/stantler_palette.pal rename to graphics/pokemon/stantler/normal.pal diff --git a/graphics/pokemon/palettes/stantler_shiny_palette.pal b/graphics/pokemon/stantler/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/stantler_shiny_palette.pal rename to graphics/pokemon/stantler/shiny.pal diff --git a/graphics/pokemon/back_pics/starmie_back_pic.png b/graphics/pokemon/starmie/back.png similarity index 100% rename from graphics/pokemon/back_pics/starmie_back_pic.png rename to graphics/pokemon/starmie/back.png diff --git a/graphics/pokemon/footprints/starmie_footprint.png b/graphics/pokemon/starmie/footprint.png similarity index 100% rename from graphics/pokemon/footprints/starmie_footprint.png rename to graphics/pokemon/starmie/footprint.png diff --git a/graphics/pokemon/front_pics/starmie_still_front_pic.png b/graphics/pokemon/starmie/front.png similarity index 100% rename from graphics/pokemon/front_pics/starmie_still_front_pic.png rename to graphics/pokemon/starmie/front.png diff --git a/graphics/pokemon/icons/starmie_icon.png b/graphics/pokemon/starmie/icon.png similarity index 100% rename from graphics/pokemon/icons/starmie_icon.png rename to graphics/pokemon/starmie/icon.png diff --git a/graphics/pokemon/palettes/starmie_palette.pal b/graphics/pokemon/starmie/normal.pal similarity index 100% rename from graphics/pokemon/palettes/starmie_palette.pal rename to graphics/pokemon/starmie/normal.pal diff --git a/graphics/pokemon/palettes/starmie_shiny_palette.pal b/graphics/pokemon/starmie/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/starmie_shiny_palette.pal rename to graphics/pokemon/starmie/shiny.pal diff --git a/graphics/pokemon/back_pics/staryu_back_pic.png b/graphics/pokemon/staryu/back.png similarity index 100% rename from graphics/pokemon/back_pics/staryu_back_pic.png rename to graphics/pokemon/staryu/back.png diff --git a/graphics/pokemon/footprints/staryu_footprint.png b/graphics/pokemon/staryu/footprint.png similarity index 100% rename from graphics/pokemon/footprints/staryu_footprint.png rename to graphics/pokemon/staryu/footprint.png diff --git a/graphics/pokemon/front_pics/staryu_still_front_pic.png b/graphics/pokemon/staryu/front.png similarity index 100% rename from graphics/pokemon/front_pics/staryu_still_front_pic.png rename to graphics/pokemon/staryu/front.png diff --git a/graphics/pokemon/icons/staryu_icon.png b/graphics/pokemon/staryu/icon.png similarity index 100% rename from graphics/pokemon/icons/staryu_icon.png rename to graphics/pokemon/staryu/icon.png diff --git a/graphics/pokemon/palettes/staryu_palette.pal b/graphics/pokemon/staryu/normal.pal similarity index 100% rename from graphics/pokemon/palettes/staryu_palette.pal rename to graphics/pokemon/staryu/normal.pal diff --git a/graphics/pokemon/palettes/staryu_shiny_palette.pal b/graphics/pokemon/staryu/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/staryu_shiny_palette.pal rename to graphics/pokemon/staryu/shiny.pal diff --git a/graphics/pokemon/back_pics/steelix_back_pic.png b/graphics/pokemon/steelix/back.png similarity index 100% rename from graphics/pokemon/back_pics/steelix_back_pic.png rename to graphics/pokemon/steelix/back.png diff --git a/graphics/pokemon/footprints/steelix_footprint.png b/graphics/pokemon/steelix/footprint.png similarity index 100% rename from graphics/pokemon/footprints/steelix_footprint.png rename to graphics/pokemon/steelix/footprint.png diff --git a/graphics/pokemon/front_pics/steelix_still_front_pic.png b/graphics/pokemon/steelix/front.png similarity index 100% rename from graphics/pokemon/front_pics/steelix_still_front_pic.png rename to graphics/pokemon/steelix/front.png diff --git a/graphics/pokemon/icons/steelix_icon.png b/graphics/pokemon/steelix/icon.png similarity index 100% rename from graphics/pokemon/icons/steelix_icon.png rename to graphics/pokemon/steelix/icon.png diff --git a/graphics/pokemon/palettes/steelix_palette.pal b/graphics/pokemon/steelix/normal.pal similarity index 100% rename from graphics/pokemon/palettes/steelix_palette.pal rename to graphics/pokemon/steelix/normal.pal diff --git a/graphics/pokemon/palettes/steelix_shiny_palette.pal b/graphics/pokemon/steelix/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/steelix_shiny_palette.pal rename to graphics/pokemon/steelix/shiny.pal diff --git a/graphics/pokemon/back_pics/sudowoodo_back_pic.png b/graphics/pokemon/sudowoodo/back.png similarity index 100% rename from graphics/pokemon/back_pics/sudowoodo_back_pic.png rename to graphics/pokemon/sudowoodo/back.png diff --git a/graphics/pokemon/footprints/sudowoodo_footprint.png b/graphics/pokemon/sudowoodo/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sudowoodo_footprint.png rename to graphics/pokemon/sudowoodo/footprint.png diff --git a/graphics/pokemon/front_pics/sudowoodo_still_front_pic.png b/graphics/pokemon/sudowoodo/front.png similarity index 100% rename from graphics/pokemon/front_pics/sudowoodo_still_front_pic.png rename to graphics/pokemon/sudowoodo/front.png diff --git a/graphics/pokemon/icons/sudowoodo_icon.png b/graphics/pokemon/sudowoodo/icon.png similarity index 100% rename from graphics/pokemon/icons/sudowoodo_icon.png rename to graphics/pokemon/sudowoodo/icon.png diff --git a/graphics/pokemon/palettes/sudowoodo_palette.pal b/graphics/pokemon/sudowoodo/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sudowoodo_palette.pal rename to graphics/pokemon/sudowoodo/normal.pal diff --git a/graphics/pokemon/palettes/sudowoodo_shiny_palette.pal b/graphics/pokemon/sudowoodo/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sudowoodo_shiny_palette.pal rename to graphics/pokemon/sudowoodo/shiny.pal diff --git a/graphics/pokemon/back_pics/suicune_back_pic.png b/graphics/pokemon/suicune/back.png similarity index 100% rename from graphics/pokemon/back_pics/suicune_back_pic.png rename to graphics/pokemon/suicune/back.png diff --git a/graphics/pokemon/footprints/suicune_footprint.png b/graphics/pokemon/suicune/footprint.png similarity index 100% rename from graphics/pokemon/footprints/suicune_footprint.png rename to graphics/pokemon/suicune/footprint.png diff --git a/graphics/pokemon/front_pics/suicune_still_front_pic.png b/graphics/pokemon/suicune/front.png similarity index 100% rename from graphics/pokemon/front_pics/suicune_still_front_pic.png rename to graphics/pokemon/suicune/front.png diff --git a/graphics/pokemon/icons/suicune_icon.png b/graphics/pokemon/suicune/icon.png similarity index 100% rename from graphics/pokemon/icons/suicune_icon.png rename to graphics/pokemon/suicune/icon.png diff --git a/graphics/pokemon/palettes/suicune_palette.pal b/graphics/pokemon/suicune/normal.pal similarity index 100% rename from graphics/pokemon/palettes/suicune_palette.pal rename to graphics/pokemon/suicune/normal.pal diff --git a/graphics/pokemon/palettes/suicune_shiny_palette.pal b/graphics/pokemon/suicune/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/suicune_shiny_palette.pal rename to graphics/pokemon/suicune/shiny.pal diff --git a/graphics/pokemon/back_pics/sunflora_back_pic.png b/graphics/pokemon/sunflora/back.png similarity index 100% rename from graphics/pokemon/back_pics/sunflora_back_pic.png rename to graphics/pokemon/sunflora/back.png diff --git a/graphics/pokemon/footprints/sunflora_footprint.png b/graphics/pokemon/sunflora/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sunflora_footprint.png rename to graphics/pokemon/sunflora/footprint.png diff --git a/graphics/pokemon/front_pics/sunflora_still_front_pic.png b/graphics/pokemon/sunflora/front.png similarity index 100% rename from graphics/pokemon/front_pics/sunflora_still_front_pic.png rename to graphics/pokemon/sunflora/front.png diff --git a/graphics/pokemon/icons/sunflora_icon.png b/graphics/pokemon/sunflora/icon.png similarity index 100% rename from graphics/pokemon/icons/sunflora_icon.png rename to graphics/pokemon/sunflora/icon.png diff --git a/graphics/pokemon/palettes/sunflora_palette.pal b/graphics/pokemon/sunflora/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sunflora_palette.pal rename to graphics/pokemon/sunflora/normal.pal diff --git a/graphics/pokemon/palettes/sunflora_shiny_palette.pal b/graphics/pokemon/sunflora/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sunflora_shiny_palette.pal rename to graphics/pokemon/sunflora/shiny.pal diff --git a/graphics/pokemon/back_pics/sunkern_back_pic.png b/graphics/pokemon/sunkern/back.png similarity index 100% rename from graphics/pokemon/back_pics/sunkern_back_pic.png rename to graphics/pokemon/sunkern/back.png diff --git a/graphics/pokemon/footprints/sunkern_footprint.png b/graphics/pokemon/sunkern/footprint.png similarity index 100% rename from graphics/pokemon/footprints/sunkern_footprint.png rename to graphics/pokemon/sunkern/footprint.png diff --git a/graphics/pokemon/front_pics/sunkern_still_front_pic.png b/graphics/pokemon/sunkern/front.png similarity index 100% rename from graphics/pokemon/front_pics/sunkern_still_front_pic.png rename to graphics/pokemon/sunkern/front.png diff --git a/graphics/pokemon/icons/sunkern_icon.png b/graphics/pokemon/sunkern/icon.png similarity index 100% rename from graphics/pokemon/icons/sunkern_icon.png rename to graphics/pokemon/sunkern/icon.png diff --git a/graphics/pokemon/palettes/sunkern_palette.pal b/graphics/pokemon/sunkern/normal.pal similarity index 100% rename from graphics/pokemon/palettes/sunkern_palette.pal rename to graphics/pokemon/sunkern/normal.pal diff --git a/graphics/pokemon/palettes/sunkern_shiny_palette.pal b/graphics/pokemon/sunkern/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/sunkern_shiny_palette.pal rename to graphics/pokemon/sunkern/shiny.pal diff --git a/graphics/pokemon/back_pics/surskit_back_pic.png b/graphics/pokemon/surskit/back.png similarity index 100% rename from graphics/pokemon/back_pics/surskit_back_pic.png rename to graphics/pokemon/surskit/back.png diff --git a/graphics/pokemon/footprints/surskit_footprint.png b/graphics/pokemon/surskit/footprint.png similarity index 100% rename from graphics/pokemon/footprints/surskit_footprint.png rename to graphics/pokemon/surskit/footprint.png diff --git a/graphics/pokemon/front_pics/surskit_still_front_pic.png b/graphics/pokemon/surskit/front.png similarity index 100% rename from graphics/pokemon/front_pics/surskit_still_front_pic.png rename to graphics/pokemon/surskit/front.png diff --git a/graphics/pokemon/icons/surskit_icon.png b/graphics/pokemon/surskit/icon.png similarity index 100% rename from graphics/pokemon/icons/surskit_icon.png rename to graphics/pokemon/surskit/icon.png diff --git a/graphics/pokemon/palettes/surskit_palette.pal b/graphics/pokemon/surskit/normal.pal similarity index 100% rename from graphics/pokemon/palettes/surskit_palette.pal rename to graphics/pokemon/surskit/normal.pal diff --git a/graphics/pokemon/palettes/surskit_shiny_palette.pal b/graphics/pokemon/surskit/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/surskit_shiny_palette.pal rename to graphics/pokemon/surskit/shiny.pal diff --git a/graphics/pokemon/back_pics/swablu_back_pic.png b/graphics/pokemon/swablu/back.png similarity index 100% rename from graphics/pokemon/back_pics/swablu_back_pic.png rename to graphics/pokemon/swablu/back.png diff --git a/graphics/pokemon/footprints/swablu_footprint.png b/graphics/pokemon/swablu/footprint.png similarity index 100% rename from graphics/pokemon/footprints/swablu_footprint.png rename to graphics/pokemon/swablu/footprint.png diff --git a/graphics/pokemon/front_pics/swablu_still_front_pic.png b/graphics/pokemon/swablu/front.png similarity index 100% rename from graphics/pokemon/front_pics/swablu_still_front_pic.png rename to graphics/pokemon/swablu/front.png diff --git a/graphics/pokemon/icons/swablu_icon.png b/graphics/pokemon/swablu/icon.png similarity index 100% rename from graphics/pokemon/icons/swablu_icon.png rename to graphics/pokemon/swablu/icon.png diff --git a/graphics/pokemon/palettes/swablu_palette.pal b/graphics/pokemon/swablu/normal.pal similarity index 100% rename from graphics/pokemon/palettes/swablu_palette.pal rename to graphics/pokemon/swablu/normal.pal diff --git a/graphics/pokemon/palettes/swablu_shiny_palette.pal b/graphics/pokemon/swablu/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/swablu_shiny_palette.pal rename to graphics/pokemon/swablu/shiny.pal diff --git a/graphics/pokemon/back_pics/swalot_back_pic.png b/graphics/pokemon/swalot/back.png similarity index 100% rename from graphics/pokemon/back_pics/swalot_back_pic.png rename to graphics/pokemon/swalot/back.png diff --git a/graphics/pokemon/footprints/swalot_footprint.png b/graphics/pokemon/swalot/footprint.png similarity index 100% rename from graphics/pokemon/footprints/swalot_footprint.png rename to graphics/pokemon/swalot/footprint.png diff --git a/graphics/pokemon/front_pics/swalot_still_front_pic.png b/graphics/pokemon/swalot/front.png similarity index 100% rename from graphics/pokemon/front_pics/swalot_still_front_pic.png rename to graphics/pokemon/swalot/front.png diff --git a/graphics/pokemon/icons/swalot_icon.png b/graphics/pokemon/swalot/icon.png similarity index 100% rename from graphics/pokemon/icons/swalot_icon.png rename to graphics/pokemon/swalot/icon.png diff --git a/graphics/pokemon/palettes/swalot_palette.pal b/graphics/pokemon/swalot/normal.pal similarity index 100% rename from graphics/pokemon/palettes/swalot_palette.pal rename to graphics/pokemon/swalot/normal.pal diff --git a/graphics/pokemon/palettes/swalot_shiny_palette.pal b/graphics/pokemon/swalot/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/swalot_shiny_palette.pal rename to graphics/pokemon/swalot/shiny.pal diff --git a/graphics/pokemon/back_pics/swampert_back_pic.png b/graphics/pokemon/swampert/back.png similarity index 100% rename from graphics/pokemon/back_pics/swampert_back_pic.png rename to graphics/pokemon/swampert/back.png diff --git a/graphics/pokemon/footprints/swampert_footprint.png b/graphics/pokemon/swampert/footprint.png similarity index 100% rename from graphics/pokemon/footprints/swampert_footprint.png rename to graphics/pokemon/swampert/footprint.png diff --git a/graphics/pokemon/front_pics/swampert_still_front_pic.png b/graphics/pokemon/swampert/front.png similarity index 100% rename from graphics/pokemon/front_pics/swampert_still_front_pic.png rename to graphics/pokemon/swampert/front.png diff --git a/graphics/pokemon/icons/swampert_icon.png b/graphics/pokemon/swampert/icon.png similarity index 100% rename from graphics/pokemon/icons/swampert_icon.png rename to graphics/pokemon/swampert/icon.png diff --git a/graphics/pokemon/palettes/swampert_palette.pal b/graphics/pokemon/swampert/normal.pal similarity index 100% rename from graphics/pokemon/palettes/swampert_palette.pal rename to graphics/pokemon/swampert/normal.pal diff --git a/graphics/pokemon/palettes/swampert_shiny_palette.pal b/graphics/pokemon/swampert/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/swampert_shiny_palette.pal rename to graphics/pokemon/swampert/shiny.pal diff --git a/graphics/pokemon/back_pics/swellow_back_pic.png b/graphics/pokemon/swellow/back.png similarity index 100% rename from graphics/pokemon/back_pics/swellow_back_pic.png rename to graphics/pokemon/swellow/back.png diff --git a/graphics/pokemon/footprints/swellow_footprint.png b/graphics/pokemon/swellow/footprint.png similarity index 100% rename from graphics/pokemon/footprints/swellow_footprint.png rename to graphics/pokemon/swellow/footprint.png diff --git a/graphics/pokemon/front_pics/swellow_still_front_pic.png b/graphics/pokemon/swellow/front.png similarity index 100% rename from graphics/pokemon/front_pics/swellow_still_front_pic.png rename to graphics/pokemon/swellow/front.png diff --git a/graphics/pokemon/icons/swellow_icon.png b/graphics/pokemon/swellow/icon.png similarity index 100% rename from graphics/pokemon/icons/swellow_icon.png rename to graphics/pokemon/swellow/icon.png diff --git a/graphics/pokemon/palettes/swellow_palette.pal b/graphics/pokemon/swellow/normal.pal similarity index 100% rename from graphics/pokemon/palettes/swellow_palette.pal rename to graphics/pokemon/swellow/normal.pal diff --git a/graphics/pokemon/palettes/swellow_shiny_palette.pal b/graphics/pokemon/swellow/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/swellow_shiny_palette.pal rename to graphics/pokemon/swellow/shiny.pal diff --git a/graphics/pokemon/back_pics/swinub_back_pic.png b/graphics/pokemon/swinub/back.png similarity index 100% rename from graphics/pokemon/back_pics/swinub_back_pic.png rename to graphics/pokemon/swinub/back.png diff --git a/graphics/pokemon/footprints/swinub_footprint.png b/graphics/pokemon/swinub/footprint.png similarity index 100% rename from graphics/pokemon/footprints/swinub_footprint.png rename to graphics/pokemon/swinub/footprint.png diff --git a/graphics/pokemon/front_pics/swinub_still_front_pic.png b/graphics/pokemon/swinub/front.png similarity index 100% rename from graphics/pokemon/front_pics/swinub_still_front_pic.png rename to graphics/pokemon/swinub/front.png diff --git a/graphics/pokemon/icons/swinub_icon.png b/graphics/pokemon/swinub/icon.png similarity index 100% rename from graphics/pokemon/icons/swinub_icon.png rename to graphics/pokemon/swinub/icon.png diff --git a/graphics/pokemon/palettes/swinub_palette.pal b/graphics/pokemon/swinub/normal.pal similarity index 100% rename from graphics/pokemon/palettes/swinub_palette.pal rename to graphics/pokemon/swinub/normal.pal diff --git a/graphics/pokemon/palettes/swinub_shiny_palette.pal b/graphics/pokemon/swinub/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/swinub_shiny_palette.pal rename to graphics/pokemon/swinub/shiny.pal diff --git a/graphics/pokemon/back_pics/taillow_back_pic.png b/graphics/pokemon/taillow/back.png similarity index 100% rename from graphics/pokemon/back_pics/taillow_back_pic.png rename to graphics/pokemon/taillow/back.png diff --git a/graphics/pokemon/footprints/taillow_footprint.png b/graphics/pokemon/taillow/footprint.png similarity index 100% rename from graphics/pokemon/footprints/taillow_footprint.png rename to graphics/pokemon/taillow/footprint.png diff --git a/graphics/pokemon/front_pics/taillow_still_front_pic.png b/graphics/pokemon/taillow/front.png similarity index 100% rename from graphics/pokemon/front_pics/taillow_still_front_pic.png rename to graphics/pokemon/taillow/front.png diff --git a/graphics/pokemon/icons/taillow_icon.png b/graphics/pokemon/taillow/icon.png similarity index 100% rename from graphics/pokemon/icons/taillow_icon.png rename to graphics/pokemon/taillow/icon.png diff --git a/graphics/pokemon/palettes/taillow_palette.pal b/graphics/pokemon/taillow/normal.pal similarity index 100% rename from graphics/pokemon/palettes/taillow_palette.pal rename to graphics/pokemon/taillow/normal.pal diff --git a/graphics/pokemon/palettes/taillow_shiny_palette.pal b/graphics/pokemon/taillow/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/taillow_shiny_palette.pal rename to graphics/pokemon/taillow/shiny.pal diff --git a/graphics/pokemon/back_pics/tangela_back_pic.png b/graphics/pokemon/tangela/back.png similarity index 100% rename from graphics/pokemon/back_pics/tangela_back_pic.png rename to graphics/pokemon/tangela/back.png diff --git a/graphics/pokemon/footprints/tangela_footprint.png b/graphics/pokemon/tangela/footprint.png similarity index 100% rename from graphics/pokemon/footprints/tangela_footprint.png rename to graphics/pokemon/tangela/footprint.png diff --git a/graphics/pokemon/front_pics/tangela_still_front_pic.png b/graphics/pokemon/tangela/front.png similarity index 100% rename from graphics/pokemon/front_pics/tangela_still_front_pic.png rename to graphics/pokemon/tangela/front.png diff --git a/graphics/pokemon/icons/tangela_icon.png b/graphics/pokemon/tangela/icon.png similarity index 100% rename from graphics/pokemon/icons/tangela_icon.png rename to graphics/pokemon/tangela/icon.png diff --git a/graphics/pokemon/palettes/tangela_palette.pal b/graphics/pokemon/tangela/normal.pal similarity index 100% rename from graphics/pokemon/palettes/tangela_palette.pal rename to graphics/pokemon/tangela/normal.pal diff --git a/graphics/pokemon/palettes/tangela_shiny_palette.pal b/graphics/pokemon/tangela/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/tangela_shiny_palette.pal rename to graphics/pokemon/tangela/shiny.pal diff --git a/graphics/pokemon/back_pics/tauros_back_pic.png b/graphics/pokemon/tauros/back.png similarity index 100% rename from graphics/pokemon/back_pics/tauros_back_pic.png rename to graphics/pokemon/tauros/back.png diff --git a/graphics/pokemon/footprints/tauros_footprint.png b/graphics/pokemon/tauros/footprint.png similarity index 100% rename from graphics/pokemon/footprints/tauros_footprint.png rename to graphics/pokemon/tauros/footprint.png diff --git a/graphics/pokemon/front_pics/tauros_still_front_pic.png b/graphics/pokemon/tauros/front.png similarity index 100% rename from graphics/pokemon/front_pics/tauros_still_front_pic.png rename to graphics/pokemon/tauros/front.png diff --git a/graphics/pokemon/icons/tauros_icon.png b/graphics/pokemon/tauros/icon.png similarity index 100% rename from graphics/pokemon/icons/tauros_icon.png rename to graphics/pokemon/tauros/icon.png diff --git a/graphics/pokemon/palettes/tauros_palette.pal b/graphics/pokemon/tauros/normal.pal similarity index 100% rename from graphics/pokemon/palettes/tauros_palette.pal rename to graphics/pokemon/tauros/normal.pal diff --git a/graphics/pokemon/palettes/tauros_shiny_palette.pal b/graphics/pokemon/tauros/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/tauros_shiny_palette.pal rename to graphics/pokemon/tauros/shiny.pal diff --git a/graphics/pokemon/back_pics/teddiursa_back_pic.png b/graphics/pokemon/teddiursa/back.png similarity index 100% rename from graphics/pokemon/back_pics/teddiursa_back_pic.png rename to graphics/pokemon/teddiursa/back.png diff --git a/graphics/pokemon/footprints/teddiursa_footprint.png b/graphics/pokemon/teddiursa/footprint.png similarity index 100% rename from graphics/pokemon/footprints/teddiursa_footprint.png rename to graphics/pokemon/teddiursa/footprint.png diff --git a/graphics/pokemon/front_pics/teddiursa_still_front_pic.png b/graphics/pokemon/teddiursa/front.png similarity index 100% rename from graphics/pokemon/front_pics/teddiursa_still_front_pic.png rename to graphics/pokemon/teddiursa/front.png diff --git a/graphics/pokemon/icons/teddiursa_icon.png b/graphics/pokemon/teddiursa/icon.png similarity index 100% rename from graphics/pokemon/icons/teddiursa_icon.png rename to graphics/pokemon/teddiursa/icon.png diff --git a/graphics/pokemon/palettes/teddiursa_palette.pal b/graphics/pokemon/teddiursa/normal.pal similarity index 100% rename from graphics/pokemon/palettes/teddiursa_palette.pal rename to graphics/pokemon/teddiursa/normal.pal diff --git a/graphics/pokemon/palettes/teddiursa_shiny_palette.pal b/graphics/pokemon/teddiursa/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/teddiursa_shiny_palette.pal rename to graphics/pokemon/teddiursa/shiny.pal diff --git a/graphics/pokemon/back_pics/tentacool_back_pic.png b/graphics/pokemon/tentacool/back.png similarity index 100% rename from graphics/pokemon/back_pics/tentacool_back_pic.png rename to graphics/pokemon/tentacool/back.png diff --git a/graphics/pokemon/footprints/tentacool_footprint.png b/graphics/pokemon/tentacool/footprint.png similarity index 100% rename from graphics/pokemon/footprints/tentacool_footprint.png rename to graphics/pokemon/tentacool/footprint.png diff --git a/graphics/pokemon/front_pics/tentacool_still_front_pic.png b/graphics/pokemon/tentacool/front.png similarity index 100% rename from graphics/pokemon/front_pics/tentacool_still_front_pic.png rename to graphics/pokemon/tentacool/front.png diff --git a/graphics/pokemon/icons/tentacool_icon.png b/graphics/pokemon/tentacool/icon.png similarity index 100% rename from graphics/pokemon/icons/tentacool_icon.png rename to graphics/pokemon/tentacool/icon.png diff --git a/graphics/pokemon/palettes/tentacool_palette.pal b/graphics/pokemon/tentacool/normal.pal similarity index 100% rename from graphics/pokemon/palettes/tentacool_palette.pal rename to graphics/pokemon/tentacool/normal.pal diff --git a/graphics/pokemon/palettes/tentacool_shiny_palette.pal b/graphics/pokemon/tentacool/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/tentacool_shiny_palette.pal rename to graphics/pokemon/tentacool/shiny.pal diff --git a/graphics/pokemon/back_pics/tentacruel_back_pic.png b/graphics/pokemon/tentacruel/back.png similarity index 100% rename from graphics/pokemon/back_pics/tentacruel_back_pic.png rename to graphics/pokemon/tentacruel/back.png diff --git a/graphics/pokemon/footprints/tentacruel_footprint.png b/graphics/pokemon/tentacruel/footprint.png similarity index 100% rename from graphics/pokemon/footprints/tentacruel_footprint.png rename to graphics/pokemon/tentacruel/footprint.png diff --git a/graphics/pokemon/front_pics/tentacruel_still_front_pic.png b/graphics/pokemon/tentacruel/front.png similarity index 100% rename from graphics/pokemon/front_pics/tentacruel_still_front_pic.png rename to graphics/pokemon/tentacruel/front.png diff --git a/graphics/pokemon/icons/tentacruel_icon.png b/graphics/pokemon/tentacruel/icon.png similarity index 100% rename from graphics/pokemon/icons/tentacruel_icon.png rename to graphics/pokemon/tentacruel/icon.png diff --git a/graphics/pokemon/palettes/tentacruel_palette.pal b/graphics/pokemon/tentacruel/normal.pal similarity index 100% rename from graphics/pokemon/palettes/tentacruel_palette.pal rename to graphics/pokemon/tentacruel/normal.pal diff --git a/graphics/pokemon/palettes/tentacruel_shiny_palette.pal b/graphics/pokemon/tentacruel/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/tentacruel_shiny_palette.pal rename to graphics/pokemon/tentacruel/shiny.pal diff --git a/graphics/pokemon/back_pics/togepi_back_pic.png b/graphics/pokemon/togepi/back.png similarity index 100% rename from graphics/pokemon/back_pics/togepi_back_pic.png rename to graphics/pokemon/togepi/back.png diff --git a/graphics/pokemon/footprints/togepi_footprint.png b/graphics/pokemon/togepi/footprint.png similarity index 100% rename from graphics/pokemon/footprints/togepi_footprint.png rename to graphics/pokemon/togepi/footprint.png diff --git a/graphics/pokemon/front_pics/togepi_still_front_pic.png b/graphics/pokemon/togepi/front.png similarity index 100% rename from graphics/pokemon/front_pics/togepi_still_front_pic.png rename to graphics/pokemon/togepi/front.png diff --git a/graphics/pokemon/icons/togepi_icon.png b/graphics/pokemon/togepi/icon.png similarity index 100% rename from graphics/pokemon/icons/togepi_icon.png rename to graphics/pokemon/togepi/icon.png diff --git a/graphics/pokemon/palettes/togepi_palette.pal b/graphics/pokemon/togepi/normal.pal similarity index 100% rename from graphics/pokemon/palettes/togepi_palette.pal rename to graphics/pokemon/togepi/normal.pal diff --git a/graphics/pokemon/palettes/togepi_shiny_palette.pal b/graphics/pokemon/togepi/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/togepi_shiny_palette.pal rename to graphics/pokemon/togepi/shiny.pal diff --git a/graphics/pokemon/back_pics/togetic_back_pic.png b/graphics/pokemon/togetic/back.png similarity index 100% rename from graphics/pokemon/back_pics/togetic_back_pic.png rename to graphics/pokemon/togetic/back.png diff --git a/graphics/pokemon/footprints/togetic_footprint.png b/graphics/pokemon/togetic/footprint.png similarity index 100% rename from graphics/pokemon/footprints/togetic_footprint.png rename to graphics/pokemon/togetic/footprint.png diff --git a/graphics/pokemon/front_pics/togetic_still_front_pic.png b/graphics/pokemon/togetic/front.png similarity index 100% rename from graphics/pokemon/front_pics/togetic_still_front_pic.png rename to graphics/pokemon/togetic/front.png diff --git a/graphics/pokemon/icons/togetic_icon.png b/graphics/pokemon/togetic/icon.png similarity index 100% rename from graphics/pokemon/icons/togetic_icon.png rename to graphics/pokemon/togetic/icon.png diff --git a/graphics/pokemon/palettes/togetic_palette.pal b/graphics/pokemon/togetic/normal.pal similarity index 100% rename from graphics/pokemon/palettes/togetic_palette.pal rename to graphics/pokemon/togetic/normal.pal diff --git a/graphics/pokemon/palettes/togetic_shiny_palette.pal b/graphics/pokemon/togetic/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/togetic_shiny_palette.pal rename to graphics/pokemon/togetic/shiny.pal diff --git a/graphics/pokemon/back_pics/torchic_back_pic.png b/graphics/pokemon/torchic/back.png similarity index 100% rename from graphics/pokemon/back_pics/torchic_back_pic.png rename to graphics/pokemon/torchic/back.png diff --git a/graphics/pokemon/footprints/torchic_footprint.png b/graphics/pokemon/torchic/footprint.png similarity index 100% rename from graphics/pokemon/footprints/torchic_footprint.png rename to graphics/pokemon/torchic/footprint.png diff --git a/graphics/pokemon/front_pics/torchic_still_front_pic.png b/graphics/pokemon/torchic/front.png similarity index 100% rename from graphics/pokemon/front_pics/torchic_still_front_pic.png rename to graphics/pokemon/torchic/front.png diff --git a/graphics/pokemon/icons/torchic_icon.png b/graphics/pokemon/torchic/icon.png similarity index 100% rename from graphics/pokemon/icons/torchic_icon.png rename to graphics/pokemon/torchic/icon.png diff --git a/graphics/pokemon/palettes/torchic_palette.pal b/graphics/pokemon/torchic/normal.pal similarity index 100% rename from graphics/pokemon/palettes/torchic_palette.pal rename to graphics/pokemon/torchic/normal.pal diff --git a/graphics/pokemon/palettes/torchic_shiny_palette.pal b/graphics/pokemon/torchic/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/torchic_shiny_palette.pal rename to graphics/pokemon/torchic/shiny.pal diff --git a/graphics/pokemon/back_pics/torkoal_back_pic.png b/graphics/pokemon/torkoal/back.png similarity index 100% rename from graphics/pokemon/back_pics/torkoal_back_pic.png rename to graphics/pokemon/torkoal/back.png diff --git a/graphics/pokemon/footprints/torkoal_footprint.png b/graphics/pokemon/torkoal/footprint.png similarity index 100% rename from graphics/pokemon/footprints/torkoal_footprint.png rename to graphics/pokemon/torkoal/footprint.png diff --git a/graphics/pokemon/front_pics/torkoal_still_front_pic.png b/graphics/pokemon/torkoal/front.png similarity index 100% rename from graphics/pokemon/front_pics/torkoal_still_front_pic.png rename to graphics/pokemon/torkoal/front.png diff --git a/graphics/pokemon/icons/torkoal_icon.png b/graphics/pokemon/torkoal/icon.png similarity index 100% rename from graphics/pokemon/icons/torkoal_icon.png rename to graphics/pokemon/torkoal/icon.png diff --git a/graphics/pokemon/palettes/torkoal_palette.pal b/graphics/pokemon/torkoal/normal.pal similarity index 100% rename from graphics/pokemon/palettes/torkoal_palette.pal rename to graphics/pokemon/torkoal/normal.pal diff --git a/graphics/pokemon/palettes/torkoal_shiny_palette.pal b/graphics/pokemon/torkoal/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/torkoal_shiny_palette.pal rename to graphics/pokemon/torkoal/shiny.pal diff --git a/graphics/pokemon/back_pics/totodile_back_pic.png b/graphics/pokemon/totodile/back.png similarity index 100% rename from graphics/pokemon/back_pics/totodile_back_pic.png rename to graphics/pokemon/totodile/back.png diff --git a/graphics/pokemon/footprints/totodile_footprint.png b/graphics/pokemon/totodile/footprint.png similarity index 100% rename from graphics/pokemon/footprints/totodile_footprint.png rename to graphics/pokemon/totodile/footprint.png diff --git a/graphics/pokemon/front_pics/totodile_still_front_pic.png b/graphics/pokemon/totodile/front.png similarity index 100% rename from graphics/pokemon/front_pics/totodile_still_front_pic.png rename to graphics/pokemon/totodile/front.png diff --git a/graphics/pokemon/icons/totodile_icon.png b/graphics/pokemon/totodile/icon.png similarity index 100% rename from graphics/pokemon/icons/totodile_icon.png rename to graphics/pokemon/totodile/icon.png diff --git a/graphics/pokemon/palettes/totodile_palette.pal b/graphics/pokemon/totodile/normal.pal similarity index 100% rename from graphics/pokemon/palettes/totodile_palette.pal rename to graphics/pokemon/totodile/normal.pal diff --git a/graphics/pokemon/palettes/totodile_shiny_palette.pal b/graphics/pokemon/totodile/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/totodile_shiny_palette.pal rename to graphics/pokemon/totodile/shiny.pal diff --git a/graphics/pokemon/back_pics/trapinch_back_pic.png b/graphics/pokemon/trapinch/back.png similarity index 100% rename from graphics/pokemon/back_pics/trapinch_back_pic.png rename to graphics/pokemon/trapinch/back.png diff --git a/graphics/pokemon/footprints/trapinch_footprint.png b/graphics/pokemon/trapinch/footprint.png similarity index 100% rename from graphics/pokemon/footprints/trapinch_footprint.png rename to graphics/pokemon/trapinch/footprint.png diff --git a/graphics/pokemon/front_pics/trapinch_still_front_pic.png b/graphics/pokemon/trapinch/front.png similarity index 100% rename from graphics/pokemon/front_pics/trapinch_still_front_pic.png rename to graphics/pokemon/trapinch/front.png diff --git a/graphics/pokemon/icons/trapinch_icon.png b/graphics/pokemon/trapinch/icon.png similarity index 100% rename from graphics/pokemon/icons/trapinch_icon.png rename to graphics/pokemon/trapinch/icon.png diff --git a/graphics/pokemon/palettes/trapinch_palette.pal b/graphics/pokemon/trapinch/normal.pal similarity index 100% rename from graphics/pokemon/palettes/trapinch_palette.pal rename to graphics/pokemon/trapinch/normal.pal diff --git a/graphics/pokemon/palettes/trapinch_shiny_palette.pal b/graphics/pokemon/trapinch/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/trapinch_shiny_palette.pal rename to graphics/pokemon/trapinch/shiny.pal diff --git a/graphics/pokemon/back_pics/treecko_back_pic.png b/graphics/pokemon/treecko/back.png similarity index 100% rename from graphics/pokemon/back_pics/treecko_back_pic.png rename to graphics/pokemon/treecko/back.png diff --git a/graphics/pokemon/footprints/treecko_footprint.png b/graphics/pokemon/treecko/footprint.png similarity index 100% rename from graphics/pokemon/footprints/treecko_footprint.png rename to graphics/pokemon/treecko/footprint.png diff --git a/graphics/pokemon/front_pics/treecko_still_front_pic.png b/graphics/pokemon/treecko/front.png similarity index 100% rename from graphics/pokemon/front_pics/treecko_still_front_pic.png rename to graphics/pokemon/treecko/front.png diff --git a/graphics/pokemon/icons/treecko_icon.png b/graphics/pokemon/treecko/icon.png similarity index 100% rename from graphics/pokemon/icons/treecko_icon.png rename to graphics/pokemon/treecko/icon.png diff --git a/graphics/pokemon/palettes/treecko_palette.pal b/graphics/pokemon/treecko/normal.pal similarity index 100% rename from graphics/pokemon/palettes/treecko_palette.pal rename to graphics/pokemon/treecko/normal.pal diff --git a/graphics/pokemon/palettes/treecko_shiny_palette.pal b/graphics/pokemon/treecko/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/treecko_shiny_palette.pal rename to graphics/pokemon/treecko/shiny.pal diff --git a/graphics/pokemon/back_pics/tropius_back_pic.png b/graphics/pokemon/tropius/back.png similarity index 100% rename from graphics/pokemon/back_pics/tropius_back_pic.png rename to graphics/pokemon/tropius/back.png diff --git a/graphics/pokemon/footprints/tropius_footprint.png b/graphics/pokemon/tropius/footprint.png similarity index 100% rename from graphics/pokemon/footprints/tropius_footprint.png rename to graphics/pokemon/tropius/footprint.png diff --git a/graphics/pokemon/front_pics/tropius_still_front_pic.png b/graphics/pokemon/tropius/front.png similarity index 100% rename from graphics/pokemon/front_pics/tropius_still_front_pic.png rename to graphics/pokemon/tropius/front.png diff --git a/graphics/pokemon/icons/tropius_icon.png b/graphics/pokemon/tropius/icon.png similarity index 100% rename from graphics/pokemon/icons/tropius_icon.png rename to graphics/pokemon/tropius/icon.png diff --git a/graphics/pokemon/palettes/tropius_palette.pal b/graphics/pokemon/tropius/normal.pal similarity index 100% rename from graphics/pokemon/palettes/tropius_palette.pal rename to graphics/pokemon/tropius/normal.pal diff --git a/graphics/pokemon/palettes/tropius_shiny_palette.pal b/graphics/pokemon/tropius/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/tropius_shiny_palette.pal rename to graphics/pokemon/tropius/shiny.pal diff --git a/graphics/pokemon/back_pics/typhlosion_back_pic.png b/graphics/pokemon/typhlosion/back.png similarity index 100% rename from graphics/pokemon/back_pics/typhlosion_back_pic.png rename to graphics/pokemon/typhlosion/back.png diff --git a/graphics/pokemon/footprints/typhlosion_footprint.png b/graphics/pokemon/typhlosion/footprint.png similarity index 100% rename from graphics/pokemon/footprints/typhlosion_footprint.png rename to graphics/pokemon/typhlosion/footprint.png diff --git a/graphics/pokemon/front_pics/typhlosion_still_front_pic.png b/graphics/pokemon/typhlosion/front.png similarity index 100% rename from graphics/pokemon/front_pics/typhlosion_still_front_pic.png rename to graphics/pokemon/typhlosion/front.png diff --git a/graphics/pokemon/icons/typhlosion_icon.png b/graphics/pokemon/typhlosion/icon.png similarity index 100% rename from graphics/pokemon/icons/typhlosion_icon.png rename to graphics/pokemon/typhlosion/icon.png diff --git a/graphics/pokemon/palettes/typhlosion_palette.pal b/graphics/pokemon/typhlosion/normal.pal similarity index 100% rename from graphics/pokemon/palettes/typhlosion_palette.pal rename to graphics/pokemon/typhlosion/normal.pal diff --git a/graphics/pokemon/palettes/typhlosion_shiny_palette.pal b/graphics/pokemon/typhlosion/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/typhlosion_shiny_palette.pal rename to graphics/pokemon/typhlosion/shiny.pal diff --git a/graphics/pokemon/back_pics/tyranitar_back_pic.png b/graphics/pokemon/tyranitar/back.png similarity index 100% rename from graphics/pokemon/back_pics/tyranitar_back_pic.png rename to graphics/pokemon/tyranitar/back.png diff --git a/graphics/pokemon/footprints/tyranitar_footprint.png b/graphics/pokemon/tyranitar/footprint.png similarity index 100% rename from graphics/pokemon/footprints/tyranitar_footprint.png rename to graphics/pokemon/tyranitar/footprint.png diff --git a/graphics/pokemon/front_pics/tyranitar_still_front_pic.png b/graphics/pokemon/tyranitar/front.png similarity index 100% rename from graphics/pokemon/front_pics/tyranitar_still_front_pic.png rename to graphics/pokemon/tyranitar/front.png diff --git a/graphics/pokemon/icons/tyranitar_icon.png b/graphics/pokemon/tyranitar/icon.png similarity index 100% rename from graphics/pokemon/icons/tyranitar_icon.png rename to graphics/pokemon/tyranitar/icon.png diff --git a/graphics/pokemon/palettes/tyranitar_palette.pal b/graphics/pokemon/tyranitar/normal.pal similarity index 100% rename from graphics/pokemon/palettes/tyranitar_palette.pal rename to graphics/pokemon/tyranitar/normal.pal diff --git a/graphics/pokemon/palettes/tyranitar_shiny_palette.pal b/graphics/pokemon/tyranitar/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/tyranitar_shiny_palette.pal rename to graphics/pokemon/tyranitar/shiny.pal diff --git a/graphics/pokemon/back_pics/tyrogue_back_pic.png b/graphics/pokemon/tyrogue/back.png similarity index 100% rename from graphics/pokemon/back_pics/tyrogue_back_pic.png rename to graphics/pokemon/tyrogue/back.png diff --git a/graphics/pokemon/footprints/tyrogue_footprint.png b/graphics/pokemon/tyrogue/footprint.png similarity index 100% rename from graphics/pokemon/footprints/tyrogue_footprint.png rename to graphics/pokemon/tyrogue/footprint.png diff --git a/graphics/pokemon/front_pics/tyrogue_still_front_pic.png b/graphics/pokemon/tyrogue/front.png similarity index 100% rename from graphics/pokemon/front_pics/tyrogue_still_front_pic.png rename to graphics/pokemon/tyrogue/front.png diff --git a/graphics/pokemon/icons/tyrogue_icon.png b/graphics/pokemon/tyrogue/icon.png similarity index 100% rename from graphics/pokemon/icons/tyrogue_icon.png rename to graphics/pokemon/tyrogue/icon.png diff --git a/graphics/pokemon/palettes/tyrogue_palette.pal b/graphics/pokemon/tyrogue/normal.pal similarity index 100% rename from graphics/pokemon/palettes/tyrogue_palette.pal rename to graphics/pokemon/tyrogue/normal.pal diff --git a/graphics/pokemon/palettes/tyrogue_shiny_palette.pal b/graphics/pokemon/tyrogue/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/tyrogue_shiny_palette.pal rename to graphics/pokemon/tyrogue/shiny.pal diff --git a/graphics/pokemon/back_pics/umbreon_back_pic.png b/graphics/pokemon/umbreon/back.png similarity index 100% rename from graphics/pokemon/back_pics/umbreon_back_pic.png rename to graphics/pokemon/umbreon/back.png diff --git a/graphics/pokemon/footprints/umbreon_footprint.png b/graphics/pokemon/umbreon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/umbreon_footprint.png rename to graphics/pokemon/umbreon/footprint.png diff --git a/graphics/pokemon/front_pics/umbreon_still_front_pic.png b/graphics/pokemon/umbreon/front.png similarity index 100% rename from graphics/pokemon/front_pics/umbreon_still_front_pic.png rename to graphics/pokemon/umbreon/front.png diff --git a/graphics/pokemon/icons/umbreon_icon.png b/graphics/pokemon/umbreon/icon.png similarity index 100% rename from graphics/pokemon/icons/umbreon_icon.png rename to graphics/pokemon/umbreon/icon.png diff --git a/graphics/pokemon/palettes/umbreon_palette.pal b/graphics/pokemon/umbreon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/umbreon_palette.pal rename to graphics/pokemon/umbreon/normal.pal diff --git a/graphics/pokemon/palettes/umbreon_shiny_palette.pal b/graphics/pokemon/umbreon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/umbreon_shiny_palette.pal rename to graphics/pokemon/umbreon/shiny.pal diff --git a/graphics/pokemon/back_pics/unown_a_back_pic.png b/graphics/pokemon/unown/a/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_a_back_pic.png rename to graphics/pokemon/unown/a/back.png diff --git a/graphics/pokemon/front_pics/unown_a_still_front_pic.png b/graphics/pokemon/unown/a/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_a_still_front_pic.png rename to graphics/pokemon/unown/a/front.png diff --git a/graphics/pokemon/icons/unown_a_icon.png b/graphics/pokemon/unown/a/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_a_icon.png rename to graphics/pokemon/unown/a/icon.png diff --git a/graphics/pokemon/back_pics/unown_b_back_pic.png b/graphics/pokemon/unown/b/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_b_back_pic.png rename to graphics/pokemon/unown/b/back.png diff --git a/graphics/pokemon/front_pics/unown_b_still_front_pic.png b/graphics/pokemon/unown/b/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_b_still_front_pic.png rename to graphics/pokemon/unown/b/front.png diff --git a/graphics/pokemon/icons/unown_B_icon.png b/graphics/pokemon/unown/b/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_B_icon.png rename to graphics/pokemon/unown/b/icon.png diff --git a/graphics/pokemon/back_pics/unown_c_back_pic.png b/graphics/pokemon/unown/c/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_c_back_pic.png rename to graphics/pokemon/unown/c/back.png diff --git a/graphics/pokemon/front_pics/unown_c_still_front_pic.png b/graphics/pokemon/unown/c/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_c_still_front_pic.png rename to graphics/pokemon/unown/c/front.png diff --git a/graphics/pokemon/icons/unown_C_icon.png b/graphics/pokemon/unown/c/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_C_icon.png rename to graphics/pokemon/unown/c/icon.png diff --git a/graphics/pokemon/back_pics/unown_d_back_pic.png b/graphics/pokemon/unown/d/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_d_back_pic.png rename to graphics/pokemon/unown/d/back.png diff --git a/graphics/pokemon/front_pics/unown_d_still_front_pic.png b/graphics/pokemon/unown/d/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_d_still_front_pic.png rename to graphics/pokemon/unown/d/front.png diff --git a/graphics/pokemon/icons/unown_D_icon.png b/graphics/pokemon/unown/d/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_D_icon.png rename to graphics/pokemon/unown/d/icon.png diff --git a/graphics/pokemon/back_pics/unown_e_back_pic.png b/graphics/pokemon/unown/e/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_e_back_pic.png rename to graphics/pokemon/unown/e/back.png diff --git a/graphics/pokemon/front_pics/unown_e_still_front_pic.png b/graphics/pokemon/unown/e/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_e_still_front_pic.png rename to graphics/pokemon/unown/e/front.png diff --git a/graphics/pokemon/icons/unown_E_icon.png b/graphics/pokemon/unown/e/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_E_icon.png rename to graphics/pokemon/unown/e/icon.png diff --git a/graphics/pokemon/back_pics/unown_exclamation_mark_back_pic.png b/graphics/pokemon/unown/exclamation_mark/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_exclamation_mark_back_pic.png rename to graphics/pokemon/unown/exclamation_mark/back.png diff --git a/graphics/pokemon/front_pics/unown_exclamation_mark_still_front_pic.png b/graphics/pokemon/unown/exclamation_mark/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_exclamation_mark_still_front_pic.png rename to graphics/pokemon/unown/exclamation_mark/front.png diff --git a/graphics/pokemon/icons/unown_exclamation_mark_icon.png b/graphics/pokemon/unown/exclamation_mark/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_exclamation_mark_icon.png rename to graphics/pokemon/unown/exclamation_mark/icon.png diff --git a/graphics/pokemon/back_pics/unown_f_back_pic.png b/graphics/pokemon/unown/f/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_f_back_pic.png rename to graphics/pokemon/unown/f/back.png diff --git a/graphics/pokemon/front_pics/unown_f_still_front_pic.png b/graphics/pokemon/unown/f/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_f_still_front_pic.png rename to graphics/pokemon/unown/f/front.png diff --git a/graphics/pokemon/icons/unown_F_icon.png b/graphics/pokemon/unown/f/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_F_icon.png rename to graphics/pokemon/unown/f/icon.png diff --git a/graphics/pokemon/footprints/unown_footprint.png b/graphics/pokemon/unown/footprint.png similarity index 100% rename from graphics/pokemon/footprints/unown_footprint.png rename to graphics/pokemon/unown/footprint.png diff --git a/graphics/pokemon/back_pics/unown_g_back_pic.png b/graphics/pokemon/unown/g/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_g_back_pic.png rename to graphics/pokemon/unown/g/back.png diff --git a/graphics/pokemon/front_pics/unown_g_still_front_pic.png b/graphics/pokemon/unown/g/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_g_still_front_pic.png rename to graphics/pokemon/unown/g/front.png diff --git a/graphics/pokemon/icons/unown_G_icon.png b/graphics/pokemon/unown/g/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_G_icon.png rename to graphics/pokemon/unown/g/icon.png diff --git a/graphics/pokemon/back_pics/unown_h_back_pic.png b/graphics/pokemon/unown/h/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_h_back_pic.png rename to graphics/pokemon/unown/h/back.png diff --git a/graphics/pokemon/front_pics/unown_h_still_front_pic.png b/graphics/pokemon/unown/h/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_h_still_front_pic.png rename to graphics/pokemon/unown/h/front.png diff --git a/graphics/pokemon/icons/unown_H_icon.png b/graphics/pokemon/unown/h/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_H_icon.png rename to graphics/pokemon/unown/h/icon.png diff --git a/graphics/pokemon/back_pics/unown_i_back_pic.png b/graphics/pokemon/unown/i/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_i_back_pic.png rename to graphics/pokemon/unown/i/back.png diff --git a/graphics/pokemon/front_pics/unown_i_still_front_pic.png b/graphics/pokemon/unown/i/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_i_still_front_pic.png rename to graphics/pokemon/unown/i/front.png diff --git a/graphics/pokemon/icons/unown_I_icon.png b/graphics/pokemon/unown/i/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_I_icon.png rename to graphics/pokemon/unown/i/icon.png diff --git a/graphics/pokemon/back_pics/unown_j_back_pic.png b/graphics/pokemon/unown/j/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_j_back_pic.png rename to graphics/pokemon/unown/j/back.png diff --git a/graphics/pokemon/front_pics/unown_j_still_front_pic.png b/graphics/pokemon/unown/j/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_j_still_front_pic.png rename to graphics/pokemon/unown/j/front.png diff --git a/graphics/pokemon/icons/unown_J_icon.png b/graphics/pokemon/unown/j/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_J_icon.png rename to graphics/pokemon/unown/j/icon.png diff --git a/graphics/pokemon/back_pics/unown_k_back_pic.png b/graphics/pokemon/unown/k/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_k_back_pic.png rename to graphics/pokemon/unown/k/back.png diff --git a/graphics/pokemon/front_pics/unown_k_still_front_pic.png b/graphics/pokemon/unown/k/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_k_still_front_pic.png rename to graphics/pokemon/unown/k/front.png diff --git a/graphics/pokemon/icons/unown_K_icon.png b/graphics/pokemon/unown/k/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_K_icon.png rename to graphics/pokemon/unown/k/icon.png diff --git a/graphics/pokemon/back_pics/unown_l_back_pic.png b/graphics/pokemon/unown/l/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_l_back_pic.png rename to graphics/pokemon/unown/l/back.png diff --git a/graphics/pokemon/front_pics/unown_l_still_front_pic.png b/graphics/pokemon/unown/l/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_l_still_front_pic.png rename to graphics/pokemon/unown/l/front.png diff --git a/graphics/pokemon/icons/unown_L_icon.png b/graphics/pokemon/unown/l/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_L_icon.png rename to graphics/pokemon/unown/l/icon.png diff --git a/graphics/pokemon/back_pics/unown_m_back_pic.png b/graphics/pokemon/unown/m/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_m_back_pic.png rename to graphics/pokemon/unown/m/back.png diff --git a/graphics/pokemon/front_pics/unown_m_still_front_pic.png b/graphics/pokemon/unown/m/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_m_still_front_pic.png rename to graphics/pokemon/unown/m/front.png diff --git a/graphics/pokemon/icons/unown_M_icon.png b/graphics/pokemon/unown/m/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_M_icon.png rename to graphics/pokemon/unown/m/icon.png diff --git a/graphics/pokemon/back_pics/unown_n_back_pic.png b/graphics/pokemon/unown/n/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_n_back_pic.png rename to graphics/pokemon/unown/n/back.png diff --git a/graphics/pokemon/front_pics/unown_n_still_front_pic.png b/graphics/pokemon/unown/n/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_n_still_front_pic.png rename to graphics/pokemon/unown/n/front.png diff --git a/graphics/pokemon/icons/unown_N_icon.png b/graphics/pokemon/unown/n/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_N_icon.png rename to graphics/pokemon/unown/n/icon.png diff --git a/graphics/pokemon/palettes/unown_palette.pal b/graphics/pokemon/unown/normal.pal similarity index 100% rename from graphics/pokemon/palettes/unown_palette.pal rename to graphics/pokemon/unown/normal.pal diff --git a/graphics/pokemon/back_pics/unown_o_back_pic.png b/graphics/pokemon/unown/o/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_o_back_pic.png rename to graphics/pokemon/unown/o/back.png diff --git a/graphics/pokemon/front_pics/unown_o_still_front_pic.png b/graphics/pokemon/unown/o/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_o_still_front_pic.png rename to graphics/pokemon/unown/o/front.png diff --git a/graphics/pokemon/icons/unown_O_icon.png b/graphics/pokemon/unown/o/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_O_icon.png rename to graphics/pokemon/unown/o/icon.png diff --git a/graphics/pokemon/back_pics/unown_p_back_pic.png b/graphics/pokemon/unown/p/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_p_back_pic.png rename to graphics/pokemon/unown/p/back.png diff --git a/graphics/pokemon/front_pics/unown_p_still_front_pic.png b/graphics/pokemon/unown/p/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_p_still_front_pic.png rename to graphics/pokemon/unown/p/front.png diff --git a/graphics/pokemon/icons/unown_P_icon.png b/graphics/pokemon/unown/p/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_P_icon.png rename to graphics/pokemon/unown/p/icon.png diff --git a/graphics/pokemon/back_pics/unown_q_back_pic.png b/graphics/pokemon/unown/q/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_q_back_pic.png rename to graphics/pokemon/unown/q/back.png diff --git a/graphics/pokemon/front_pics/unown_q_still_front_pic.png b/graphics/pokemon/unown/q/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_q_still_front_pic.png rename to graphics/pokemon/unown/q/front.png diff --git a/graphics/pokemon/icons/unown_Q_icon.png b/graphics/pokemon/unown/q/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_Q_icon.png rename to graphics/pokemon/unown/q/icon.png diff --git a/graphics/pokemon/back_pics/unown_question_mark_back_pic.png b/graphics/pokemon/unown/question_mark/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_question_mark_back_pic.png rename to graphics/pokemon/unown/question_mark/back.png diff --git a/graphics/pokemon/front_pics/unown_question_mark_still_front_pic.png b/graphics/pokemon/unown/question_mark/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_question_mark_still_front_pic.png rename to graphics/pokemon/unown/question_mark/front.png diff --git a/graphics/pokemon/icons/unown_question_mark_icon.png b/graphics/pokemon/unown/question_mark/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_question_mark_icon.png rename to graphics/pokemon/unown/question_mark/icon.png diff --git a/graphics/pokemon/back_pics/unown_r_back_pic.png b/graphics/pokemon/unown/r/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_r_back_pic.png rename to graphics/pokemon/unown/r/back.png diff --git a/graphics/pokemon/front_pics/unown_r_still_front_pic.png b/graphics/pokemon/unown/r/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_r_still_front_pic.png rename to graphics/pokemon/unown/r/front.png diff --git a/graphics/pokemon/icons/unown_R_icon.png b/graphics/pokemon/unown/r/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_R_icon.png rename to graphics/pokemon/unown/r/icon.png diff --git a/graphics/pokemon/back_pics/unown_s_back_pic.png b/graphics/pokemon/unown/s/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_s_back_pic.png rename to graphics/pokemon/unown/s/back.png diff --git a/graphics/pokemon/front_pics/unown_s_still_front_pic.png b/graphics/pokemon/unown/s/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_s_still_front_pic.png rename to graphics/pokemon/unown/s/front.png diff --git a/graphics/pokemon/icons/unown_S_icon.png b/graphics/pokemon/unown/s/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_S_icon.png rename to graphics/pokemon/unown/s/icon.png diff --git a/graphics/pokemon/palettes/unown_shiny_palette.pal b/graphics/pokemon/unown/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/unown_shiny_palette.pal rename to graphics/pokemon/unown/shiny.pal diff --git a/graphics/pokemon/back_pics/unown_t_back_pic.png b/graphics/pokemon/unown/t/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_t_back_pic.png rename to graphics/pokemon/unown/t/back.png diff --git a/graphics/pokemon/front_pics/unown_t_still_front_pic.png b/graphics/pokemon/unown/t/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_t_still_front_pic.png rename to graphics/pokemon/unown/t/front.png diff --git a/graphics/pokemon/icons/unown_T_icon.png b/graphics/pokemon/unown/t/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_T_icon.png rename to graphics/pokemon/unown/t/icon.png diff --git a/graphics/pokemon/back_pics/unown_u_back_pic.png b/graphics/pokemon/unown/u/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_u_back_pic.png rename to graphics/pokemon/unown/u/back.png diff --git a/graphics/pokemon/front_pics/unown_u_still_front_pic.png b/graphics/pokemon/unown/u/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_u_still_front_pic.png rename to graphics/pokemon/unown/u/front.png diff --git a/graphics/pokemon/icons/unown_U_icon.png b/graphics/pokemon/unown/u/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_U_icon.png rename to graphics/pokemon/unown/u/icon.png diff --git a/graphics/pokemon/back_pics/unown_v_back_pic.png b/graphics/pokemon/unown/v/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_v_back_pic.png rename to graphics/pokemon/unown/v/back.png diff --git a/graphics/pokemon/front_pics/unown_v_still_front_pic.png b/graphics/pokemon/unown/v/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_v_still_front_pic.png rename to graphics/pokemon/unown/v/front.png diff --git a/graphics/pokemon/icons/unown_V_icon.png b/graphics/pokemon/unown/v/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_V_icon.png rename to graphics/pokemon/unown/v/icon.png diff --git a/graphics/pokemon/back_pics/unown_w_back_pic.png b/graphics/pokemon/unown/w/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_w_back_pic.png rename to graphics/pokemon/unown/w/back.png diff --git a/graphics/pokemon/front_pics/unown_w_still_front_pic.png b/graphics/pokemon/unown/w/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_w_still_front_pic.png rename to graphics/pokemon/unown/w/front.png diff --git a/graphics/pokemon/icons/unown_W_icon.png b/graphics/pokemon/unown/w/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_W_icon.png rename to graphics/pokemon/unown/w/icon.png diff --git a/graphics/pokemon/back_pics/unown_x_back_pic.png b/graphics/pokemon/unown/x/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_x_back_pic.png rename to graphics/pokemon/unown/x/back.png diff --git a/graphics/pokemon/front_pics/unown_x_still_front_pic.png b/graphics/pokemon/unown/x/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_x_still_front_pic.png rename to graphics/pokemon/unown/x/front.png diff --git a/graphics/pokemon/icons/unown_X_icon.png b/graphics/pokemon/unown/x/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_X_icon.png rename to graphics/pokemon/unown/x/icon.png diff --git a/graphics/pokemon/back_pics/unown_y_back_pic.png b/graphics/pokemon/unown/y/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_y_back_pic.png rename to graphics/pokemon/unown/y/back.png diff --git a/graphics/pokemon/front_pics/unown_y_still_front_pic.png b/graphics/pokemon/unown/y/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_y_still_front_pic.png rename to graphics/pokemon/unown/y/front.png diff --git a/graphics/pokemon/icons/unown_Y_icon.png b/graphics/pokemon/unown/y/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_Y_icon.png rename to graphics/pokemon/unown/y/icon.png diff --git a/graphics/pokemon/back_pics/unown_z_back_pic.png b/graphics/pokemon/unown/z/back.png similarity index 100% rename from graphics/pokemon/back_pics/unown_z_back_pic.png rename to graphics/pokemon/unown/z/back.png diff --git a/graphics/pokemon/front_pics/unown_z_still_front_pic.png b/graphics/pokemon/unown/z/front.png similarity index 100% rename from graphics/pokemon/front_pics/unown_z_still_front_pic.png rename to graphics/pokemon/unown/z/front.png diff --git a/graphics/pokemon/icons/unown_Z_icon.png b/graphics/pokemon/unown/z/icon.png similarity index 100% rename from graphics/pokemon/icons/unown_Z_icon.png rename to graphics/pokemon/unown/z/icon.png diff --git a/graphics/pokemon/back_pics/ursaring_back_pic.png b/graphics/pokemon/ursaring/back.png similarity index 100% rename from graphics/pokemon/back_pics/ursaring_back_pic.png rename to graphics/pokemon/ursaring/back.png diff --git a/graphics/pokemon/footprints/ursaring_footprint.png b/graphics/pokemon/ursaring/footprint.png similarity index 100% rename from graphics/pokemon/footprints/ursaring_footprint.png rename to graphics/pokemon/ursaring/footprint.png diff --git a/graphics/pokemon/front_pics/ursaring_still_front_pic.png b/graphics/pokemon/ursaring/front.png similarity index 100% rename from graphics/pokemon/front_pics/ursaring_still_front_pic.png rename to graphics/pokemon/ursaring/front.png diff --git a/graphics/pokemon/icons/ursaring_icon.png b/graphics/pokemon/ursaring/icon.png similarity index 100% rename from graphics/pokemon/icons/ursaring_icon.png rename to graphics/pokemon/ursaring/icon.png diff --git a/graphics/pokemon/palettes/ursaring_palette.pal b/graphics/pokemon/ursaring/normal.pal similarity index 100% rename from graphics/pokemon/palettes/ursaring_palette.pal rename to graphics/pokemon/ursaring/normal.pal diff --git a/graphics/pokemon/palettes/ursaring_shiny_palette.pal b/graphics/pokemon/ursaring/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/ursaring_shiny_palette.pal rename to graphics/pokemon/ursaring/shiny.pal diff --git a/graphics/pokemon/back_pics/vaporeon_back_pic.png b/graphics/pokemon/vaporeon/back.png similarity index 100% rename from graphics/pokemon/back_pics/vaporeon_back_pic.png rename to graphics/pokemon/vaporeon/back.png diff --git a/graphics/pokemon/footprints/vaporeon_footprint.png b/graphics/pokemon/vaporeon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/vaporeon_footprint.png rename to graphics/pokemon/vaporeon/footprint.png diff --git a/graphics/pokemon/front_pics/vaporeon_still_front_pic.png b/graphics/pokemon/vaporeon/front.png similarity index 100% rename from graphics/pokemon/front_pics/vaporeon_still_front_pic.png rename to graphics/pokemon/vaporeon/front.png diff --git a/graphics/pokemon/icons/vaporeon_icon.png b/graphics/pokemon/vaporeon/icon.png similarity index 100% rename from graphics/pokemon/icons/vaporeon_icon.png rename to graphics/pokemon/vaporeon/icon.png diff --git a/graphics/pokemon/palettes/vaporeon_palette.pal b/graphics/pokemon/vaporeon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/vaporeon_palette.pal rename to graphics/pokemon/vaporeon/normal.pal diff --git a/graphics/pokemon/palettes/vaporeon_shiny_palette.pal b/graphics/pokemon/vaporeon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/vaporeon_shiny_palette.pal rename to graphics/pokemon/vaporeon/shiny.pal diff --git a/graphics/pokemon/back_pics/venomoth_back_pic.png b/graphics/pokemon/venomoth/back.png similarity index 100% rename from graphics/pokemon/back_pics/venomoth_back_pic.png rename to graphics/pokemon/venomoth/back.png diff --git a/graphics/pokemon/footprints/venomoth_footprint.png b/graphics/pokemon/venomoth/footprint.png similarity index 100% rename from graphics/pokemon/footprints/venomoth_footprint.png rename to graphics/pokemon/venomoth/footprint.png diff --git a/graphics/pokemon/front_pics/venomoth_still_front_pic.png b/graphics/pokemon/venomoth/front.png similarity index 100% rename from graphics/pokemon/front_pics/venomoth_still_front_pic.png rename to graphics/pokemon/venomoth/front.png diff --git a/graphics/pokemon/icons/venomoth_icon.png b/graphics/pokemon/venomoth/icon.png similarity index 100% rename from graphics/pokemon/icons/venomoth_icon.png rename to graphics/pokemon/venomoth/icon.png diff --git a/graphics/pokemon/palettes/venomoth_palette.pal b/graphics/pokemon/venomoth/normal.pal similarity index 100% rename from graphics/pokemon/palettes/venomoth_palette.pal rename to graphics/pokemon/venomoth/normal.pal diff --git a/graphics/pokemon/palettes/venomoth_shiny_palette.pal b/graphics/pokemon/venomoth/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/venomoth_shiny_palette.pal rename to graphics/pokemon/venomoth/shiny.pal diff --git a/graphics/pokemon/back_pics/venonat_back_pic.png b/graphics/pokemon/venonat/back.png similarity index 100% rename from graphics/pokemon/back_pics/venonat_back_pic.png rename to graphics/pokemon/venonat/back.png diff --git a/graphics/pokemon/footprints/venonat_footprint.png b/graphics/pokemon/venonat/footprint.png similarity index 100% rename from graphics/pokemon/footprints/venonat_footprint.png rename to graphics/pokemon/venonat/footprint.png diff --git a/graphics/pokemon/front_pics/venonat_still_front_pic.png b/graphics/pokemon/venonat/front.png similarity index 100% rename from graphics/pokemon/front_pics/venonat_still_front_pic.png rename to graphics/pokemon/venonat/front.png diff --git a/graphics/pokemon/icons/venonat_icon.png b/graphics/pokemon/venonat/icon.png similarity index 100% rename from graphics/pokemon/icons/venonat_icon.png rename to graphics/pokemon/venonat/icon.png diff --git a/graphics/pokemon/palettes/venonat_palette.pal b/graphics/pokemon/venonat/normal.pal similarity index 100% rename from graphics/pokemon/palettes/venonat_palette.pal rename to graphics/pokemon/venonat/normal.pal diff --git a/graphics/pokemon/palettes/venonat_shiny_palette.pal b/graphics/pokemon/venonat/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/venonat_shiny_palette.pal rename to graphics/pokemon/venonat/shiny.pal diff --git a/graphics/pokemon/back_pics/venusaur_back_pic.png b/graphics/pokemon/venusaur/back.png similarity index 100% rename from graphics/pokemon/back_pics/venusaur_back_pic.png rename to graphics/pokemon/venusaur/back.png diff --git a/graphics/pokemon/footprints/venusaur_footprint.png b/graphics/pokemon/venusaur/footprint.png similarity index 100% rename from graphics/pokemon/footprints/venusaur_footprint.png rename to graphics/pokemon/venusaur/footprint.png diff --git a/graphics/pokemon/front_pics/venusaur_still_front_pic.png b/graphics/pokemon/venusaur/front.png similarity index 100% rename from graphics/pokemon/front_pics/venusaur_still_front_pic.png rename to graphics/pokemon/venusaur/front.png diff --git a/graphics/pokemon/icons/venusaur_icon.png b/graphics/pokemon/venusaur/icon.png similarity index 100% rename from graphics/pokemon/icons/venusaur_icon.png rename to graphics/pokemon/venusaur/icon.png diff --git a/graphics/pokemon/palettes/venusaur_palette.pal b/graphics/pokemon/venusaur/normal.pal similarity index 100% rename from graphics/pokemon/palettes/venusaur_palette.pal rename to graphics/pokemon/venusaur/normal.pal diff --git a/graphics/pokemon/palettes/venusaur_shiny_palette.pal b/graphics/pokemon/venusaur/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/venusaur_shiny_palette.pal rename to graphics/pokemon/venusaur/shiny.pal diff --git a/graphics/pokemon/back_pics/vibrava_back_pic.png b/graphics/pokemon/vibrava/back.png similarity index 100% rename from graphics/pokemon/back_pics/vibrava_back_pic.png rename to graphics/pokemon/vibrava/back.png diff --git a/graphics/pokemon/footprints/vibrava_footprint.png b/graphics/pokemon/vibrava/footprint.png similarity index 100% rename from graphics/pokemon/footprints/vibrava_footprint.png rename to graphics/pokemon/vibrava/footprint.png diff --git a/graphics/pokemon/front_pics/vibrava_still_front_pic.png b/graphics/pokemon/vibrava/front.png similarity index 100% rename from graphics/pokemon/front_pics/vibrava_still_front_pic.png rename to graphics/pokemon/vibrava/front.png diff --git a/graphics/pokemon/icons/vibrava_icon.png b/graphics/pokemon/vibrava/icon.png similarity index 100% rename from graphics/pokemon/icons/vibrava_icon.png rename to graphics/pokemon/vibrava/icon.png diff --git a/graphics/pokemon/palettes/vibrava_palette.pal b/graphics/pokemon/vibrava/normal.pal similarity index 100% rename from graphics/pokemon/palettes/vibrava_palette.pal rename to graphics/pokemon/vibrava/normal.pal diff --git a/graphics/pokemon/palettes/vibrava_shiny_palette.pal b/graphics/pokemon/vibrava/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/vibrava_shiny_palette.pal rename to graphics/pokemon/vibrava/shiny.pal diff --git a/graphics/pokemon/back_pics/victreebel_back_pic.png b/graphics/pokemon/victreebel/back.png similarity index 100% rename from graphics/pokemon/back_pics/victreebel_back_pic.png rename to graphics/pokemon/victreebel/back.png diff --git a/graphics/pokemon/footprints/victreebel_footprint.png b/graphics/pokemon/victreebel/footprint.png similarity index 100% rename from graphics/pokemon/footprints/victreebel_footprint.png rename to graphics/pokemon/victreebel/footprint.png diff --git a/graphics/pokemon/front_pics/victreebel_still_front_pic.png b/graphics/pokemon/victreebel/front.png similarity index 100% rename from graphics/pokemon/front_pics/victreebel_still_front_pic.png rename to graphics/pokemon/victreebel/front.png diff --git a/graphics/pokemon/icons/victreebel_icon.png b/graphics/pokemon/victreebel/icon.png similarity index 100% rename from graphics/pokemon/icons/victreebel_icon.png rename to graphics/pokemon/victreebel/icon.png diff --git a/graphics/pokemon/palettes/victreebel_palette.pal b/graphics/pokemon/victreebel/normal.pal similarity index 100% rename from graphics/pokemon/palettes/victreebel_palette.pal rename to graphics/pokemon/victreebel/normal.pal diff --git a/graphics/pokemon/palettes/victreebel_shiny_palette.pal b/graphics/pokemon/victreebel/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/victreebel_shiny_palette.pal rename to graphics/pokemon/victreebel/shiny.pal diff --git a/graphics/pokemon/back_pics/vigoroth_back_pic.png b/graphics/pokemon/vigoroth/back.png similarity index 100% rename from graphics/pokemon/back_pics/vigoroth_back_pic.png rename to graphics/pokemon/vigoroth/back.png diff --git a/graphics/pokemon/footprints/vigoroth_footprint.png b/graphics/pokemon/vigoroth/footprint.png similarity index 100% rename from graphics/pokemon/footprints/vigoroth_footprint.png rename to graphics/pokemon/vigoroth/footprint.png diff --git a/graphics/pokemon/front_pics/vigoroth_still_front_pic.png b/graphics/pokemon/vigoroth/front.png similarity index 100% rename from graphics/pokemon/front_pics/vigoroth_still_front_pic.png rename to graphics/pokemon/vigoroth/front.png diff --git a/graphics/pokemon/icons/vigoroth_icon.png b/graphics/pokemon/vigoroth/icon.png similarity index 100% rename from graphics/pokemon/icons/vigoroth_icon.png rename to graphics/pokemon/vigoroth/icon.png diff --git a/graphics/pokemon/palettes/vigoroth_palette.pal b/graphics/pokemon/vigoroth/normal.pal similarity index 100% rename from graphics/pokemon/palettes/vigoroth_palette.pal rename to graphics/pokemon/vigoroth/normal.pal diff --git a/graphics/pokemon/palettes/vigoroth_shiny_palette.pal b/graphics/pokemon/vigoroth/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/vigoroth_shiny_palette.pal rename to graphics/pokemon/vigoroth/shiny.pal diff --git a/graphics/pokemon/back_pics/vileplume_back_pic.png b/graphics/pokemon/vileplume/back.png similarity index 100% rename from graphics/pokemon/back_pics/vileplume_back_pic.png rename to graphics/pokemon/vileplume/back.png diff --git a/graphics/pokemon/footprints/vileplume_footprint.png b/graphics/pokemon/vileplume/footprint.png similarity index 100% rename from graphics/pokemon/footprints/vileplume_footprint.png rename to graphics/pokemon/vileplume/footprint.png diff --git a/graphics/pokemon/front_pics/vileplume_still_front_pic.png b/graphics/pokemon/vileplume/front.png similarity index 100% rename from graphics/pokemon/front_pics/vileplume_still_front_pic.png rename to graphics/pokemon/vileplume/front.png diff --git a/graphics/pokemon/icons/vileplume_icon.png b/graphics/pokemon/vileplume/icon.png similarity index 100% rename from graphics/pokemon/icons/vileplume_icon.png rename to graphics/pokemon/vileplume/icon.png diff --git a/graphics/pokemon/palettes/vileplume_palette.pal b/graphics/pokemon/vileplume/normal.pal similarity index 100% rename from graphics/pokemon/palettes/vileplume_palette.pal rename to graphics/pokemon/vileplume/normal.pal diff --git a/graphics/pokemon/palettes/vileplume_shiny_palette.pal b/graphics/pokemon/vileplume/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/vileplume_shiny_palette.pal rename to graphics/pokemon/vileplume/shiny.pal diff --git a/graphics/pokemon/back_pics/volbeat_back_pic.png b/graphics/pokemon/volbeat/back.png similarity index 100% rename from graphics/pokemon/back_pics/volbeat_back_pic.png rename to graphics/pokemon/volbeat/back.png diff --git a/graphics/pokemon/footprints/volbeat_footprint.png b/graphics/pokemon/volbeat/footprint.png similarity index 100% rename from graphics/pokemon/footprints/volbeat_footprint.png rename to graphics/pokemon/volbeat/footprint.png diff --git a/graphics/pokemon/front_pics/volbeat_still_front_pic.png b/graphics/pokemon/volbeat/front.png similarity index 100% rename from graphics/pokemon/front_pics/volbeat_still_front_pic.png rename to graphics/pokemon/volbeat/front.png diff --git a/graphics/pokemon/icons/volbeat_icon.png b/graphics/pokemon/volbeat/icon.png similarity index 100% rename from graphics/pokemon/icons/volbeat_icon.png rename to graphics/pokemon/volbeat/icon.png diff --git a/graphics/pokemon/palettes/volbeat_palette.pal b/graphics/pokemon/volbeat/normal.pal similarity index 100% rename from graphics/pokemon/palettes/volbeat_palette.pal rename to graphics/pokemon/volbeat/normal.pal diff --git a/graphics/pokemon/palettes/volbeat_shiny_palette.pal b/graphics/pokemon/volbeat/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/volbeat_shiny_palette.pal rename to graphics/pokemon/volbeat/shiny.pal diff --git a/graphics/pokemon/back_pics/voltorb_back_pic.png b/graphics/pokemon/voltorb/back.png similarity index 100% rename from graphics/pokemon/back_pics/voltorb_back_pic.png rename to graphics/pokemon/voltorb/back.png diff --git a/graphics/pokemon/footprints/voltorb_footprint.png b/graphics/pokemon/voltorb/footprint.png similarity index 100% rename from graphics/pokemon/footprints/voltorb_footprint.png rename to graphics/pokemon/voltorb/footprint.png diff --git a/graphics/pokemon/front_pics/voltorb_still_front_pic.png b/graphics/pokemon/voltorb/front.png similarity index 100% rename from graphics/pokemon/front_pics/voltorb_still_front_pic.png rename to graphics/pokemon/voltorb/front.png diff --git a/graphics/pokemon/icons/voltorb_icon.png b/graphics/pokemon/voltorb/icon.png similarity index 100% rename from graphics/pokemon/icons/voltorb_icon.png rename to graphics/pokemon/voltorb/icon.png diff --git a/graphics/pokemon/palettes/voltorb_palette.pal b/graphics/pokemon/voltorb/normal.pal similarity index 100% rename from graphics/pokemon/palettes/voltorb_palette.pal rename to graphics/pokemon/voltorb/normal.pal diff --git a/graphics/pokemon/palettes/voltorb_shiny_palette.pal b/graphics/pokemon/voltorb/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/voltorb_shiny_palette.pal rename to graphics/pokemon/voltorb/shiny.pal diff --git a/graphics/pokemon/back_pics/vulpix_back_pic.png b/graphics/pokemon/vulpix/back.png similarity index 100% rename from graphics/pokemon/back_pics/vulpix_back_pic.png rename to graphics/pokemon/vulpix/back.png diff --git a/graphics/pokemon/footprints/vulpix_footprint.png b/graphics/pokemon/vulpix/footprint.png similarity index 100% rename from graphics/pokemon/footprints/vulpix_footprint.png rename to graphics/pokemon/vulpix/footprint.png diff --git a/graphics/pokemon/front_pics/vulpix_still_front_pic.png b/graphics/pokemon/vulpix/front.png similarity index 100% rename from graphics/pokemon/front_pics/vulpix_still_front_pic.png rename to graphics/pokemon/vulpix/front.png diff --git a/graphics/pokemon/icons/vulpix_icon.png b/graphics/pokemon/vulpix/icon.png similarity index 100% rename from graphics/pokemon/icons/vulpix_icon.png rename to graphics/pokemon/vulpix/icon.png diff --git a/graphics/pokemon/palettes/vulpix_palette.pal b/graphics/pokemon/vulpix/normal.pal similarity index 100% rename from graphics/pokemon/palettes/vulpix_palette.pal rename to graphics/pokemon/vulpix/normal.pal diff --git a/graphics/pokemon/palettes/vulpix_shiny_palette.pal b/graphics/pokemon/vulpix/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/vulpix_shiny_palette.pal rename to graphics/pokemon/vulpix/shiny.pal diff --git a/graphics/pokemon/back_pics/wailmer_back_pic.png b/graphics/pokemon/wailmer/back.png similarity index 100% rename from graphics/pokemon/back_pics/wailmer_back_pic.png rename to graphics/pokemon/wailmer/back.png diff --git a/graphics/pokemon/footprints/wailmer_footprint.png b/graphics/pokemon/wailmer/footprint.png similarity index 100% rename from graphics/pokemon/footprints/wailmer_footprint.png rename to graphics/pokemon/wailmer/footprint.png diff --git a/graphics/pokemon/front_pics/wailmer_still_front_pic.png b/graphics/pokemon/wailmer/front.png similarity index 100% rename from graphics/pokemon/front_pics/wailmer_still_front_pic.png rename to graphics/pokemon/wailmer/front.png diff --git a/graphics/pokemon/icons/wailmer_icon.png b/graphics/pokemon/wailmer/icon.png similarity index 100% rename from graphics/pokemon/icons/wailmer_icon.png rename to graphics/pokemon/wailmer/icon.png diff --git a/graphics/pokemon/palettes/wailmer_palette.pal b/graphics/pokemon/wailmer/normal.pal similarity index 100% rename from graphics/pokemon/palettes/wailmer_palette.pal rename to graphics/pokemon/wailmer/normal.pal diff --git a/graphics/pokemon/palettes/wailmer_shiny_palette.pal b/graphics/pokemon/wailmer/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/wailmer_shiny_palette.pal rename to graphics/pokemon/wailmer/shiny.pal diff --git a/graphics/pokemon/back_pics/wailord_back_pic.png b/graphics/pokemon/wailord/back.png similarity index 100% rename from graphics/pokemon/back_pics/wailord_back_pic.png rename to graphics/pokemon/wailord/back.png diff --git a/graphics/pokemon/footprints/wailord_footprint.png b/graphics/pokemon/wailord/footprint.png similarity index 100% rename from graphics/pokemon/footprints/wailord_footprint.png rename to graphics/pokemon/wailord/footprint.png diff --git a/graphics/pokemon/front_pics/wailord_still_front_pic.png b/graphics/pokemon/wailord/front.png similarity index 100% rename from graphics/pokemon/front_pics/wailord_still_front_pic.png rename to graphics/pokemon/wailord/front.png diff --git a/graphics/pokemon/icons/wailord_icon.png b/graphics/pokemon/wailord/icon.png similarity index 100% rename from graphics/pokemon/icons/wailord_icon.png rename to graphics/pokemon/wailord/icon.png diff --git a/graphics/pokemon/palettes/wailord_palette.pal b/graphics/pokemon/wailord/normal.pal similarity index 100% rename from graphics/pokemon/palettes/wailord_palette.pal rename to graphics/pokemon/wailord/normal.pal diff --git a/graphics/pokemon/palettes/wailord_shiny_palette.pal b/graphics/pokemon/wailord/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/wailord_shiny_palette.pal rename to graphics/pokemon/wailord/shiny.pal diff --git a/graphics/pokemon/back_pics/walrein_back_pic.png b/graphics/pokemon/walrein/back.png similarity index 100% rename from graphics/pokemon/back_pics/walrein_back_pic.png rename to graphics/pokemon/walrein/back.png diff --git a/graphics/pokemon/footprints/walrein_footprint.png b/graphics/pokemon/walrein/footprint.png similarity index 100% rename from graphics/pokemon/footprints/walrein_footprint.png rename to graphics/pokemon/walrein/footprint.png diff --git a/graphics/pokemon/front_pics/walrein_still_front_pic.png b/graphics/pokemon/walrein/front.png similarity index 100% rename from graphics/pokemon/front_pics/walrein_still_front_pic.png rename to graphics/pokemon/walrein/front.png diff --git a/graphics/pokemon/icons/walrein_icon.png b/graphics/pokemon/walrein/icon.png similarity index 100% rename from graphics/pokemon/icons/walrein_icon.png rename to graphics/pokemon/walrein/icon.png diff --git a/graphics/pokemon/palettes/walrein_palette.pal b/graphics/pokemon/walrein/normal.pal similarity index 100% rename from graphics/pokemon/palettes/walrein_palette.pal rename to graphics/pokemon/walrein/normal.pal diff --git a/graphics/pokemon/palettes/walrein_shiny_palette.pal b/graphics/pokemon/walrein/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/walrein_shiny_palette.pal rename to graphics/pokemon/walrein/shiny.pal diff --git a/graphics/pokemon/back_pics/wartortle_back_pic.png b/graphics/pokemon/wartortle/back.png similarity index 100% rename from graphics/pokemon/back_pics/wartortle_back_pic.png rename to graphics/pokemon/wartortle/back.png diff --git a/graphics/pokemon/footprints/wartortle_footprint.png b/graphics/pokemon/wartortle/footprint.png similarity index 100% rename from graphics/pokemon/footprints/wartortle_footprint.png rename to graphics/pokemon/wartortle/footprint.png diff --git a/graphics/pokemon/front_pics/wartortle_still_front_pic.png b/graphics/pokemon/wartortle/front.png similarity index 100% rename from graphics/pokemon/front_pics/wartortle_still_front_pic.png rename to graphics/pokemon/wartortle/front.png diff --git a/graphics/pokemon/icons/wartortle_icon.png b/graphics/pokemon/wartortle/icon.png similarity index 100% rename from graphics/pokemon/icons/wartortle_icon.png rename to graphics/pokemon/wartortle/icon.png diff --git a/graphics/pokemon/palettes/wartortle_palette.pal b/graphics/pokemon/wartortle/normal.pal similarity index 100% rename from graphics/pokemon/palettes/wartortle_palette.pal rename to graphics/pokemon/wartortle/normal.pal diff --git a/graphics/pokemon/palettes/wartortle_shiny_palette.pal b/graphics/pokemon/wartortle/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/wartortle_shiny_palette.pal rename to graphics/pokemon/wartortle/shiny.pal diff --git a/graphics/pokemon/back_pics/weedle_back_pic.png b/graphics/pokemon/weedle/back.png similarity index 100% rename from graphics/pokemon/back_pics/weedle_back_pic.png rename to graphics/pokemon/weedle/back.png diff --git a/graphics/pokemon/footprints/weedle_footprint.png b/graphics/pokemon/weedle/footprint.png similarity index 100% rename from graphics/pokemon/footprints/weedle_footprint.png rename to graphics/pokemon/weedle/footprint.png diff --git a/graphics/pokemon/front_pics/weedle_still_front_pic.png b/graphics/pokemon/weedle/front.png similarity index 100% rename from graphics/pokemon/front_pics/weedle_still_front_pic.png rename to graphics/pokemon/weedle/front.png diff --git a/graphics/pokemon/icons/weedle_icon.png b/graphics/pokemon/weedle/icon.png similarity index 100% rename from graphics/pokemon/icons/weedle_icon.png rename to graphics/pokemon/weedle/icon.png diff --git a/graphics/pokemon/palettes/weedle_palette.pal b/graphics/pokemon/weedle/normal.pal similarity index 100% rename from graphics/pokemon/palettes/weedle_palette.pal rename to graphics/pokemon/weedle/normal.pal diff --git a/graphics/pokemon/palettes/weedle_shiny_palette.pal b/graphics/pokemon/weedle/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/weedle_shiny_palette.pal rename to graphics/pokemon/weedle/shiny.pal diff --git a/graphics/pokemon/back_pics/weepinbell_back_pic.png b/graphics/pokemon/weepinbell/back.png similarity index 100% rename from graphics/pokemon/back_pics/weepinbell_back_pic.png rename to graphics/pokemon/weepinbell/back.png diff --git a/graphics/pokemon/footprints/weepinbell_footprint.png b/graphics/pokemon/weepinbell/footprint.png similarity index 100% rename from graphics/pokemon/footprints/weepinbell_footprint.png rename to graphics/pokemon/weepinbell/footprint.png diff --git a/graphics/pokemon/front_pics/weepinbell_still_front_pic.png b/graphics/pokemon/weepinbell/front.png similarity index 100% rename from graphics/pokemon/front_pics/weepinbell_still_front_pic.png rename to graphics/pokemon/weepinbell/front.png diff --git a/graphics/pokemon/icons/weepinbell_icon.png b/graphics/pokemon/weepinbell/icon.png similarity index 100% rename from graphics/pokemon/icons/weepinbell_icon.png rename to graphics/pokemon/weepinbell/icon.png diff --git a/graphics/pokemon/palettes/weepinbell_palette.pal b/graphics/pokemon/weepinbell/normal.pal similarity index 100% rename from graphics/pokemon/palettes/weepinbell_palette.pal rename to graphics/pokemon/weepinbell/normal.pal diff --git a/graphics/pokemon/palettes/weepinbell_shiny_palette.pal b/graphics/pokemon/weepinbell/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/weepinbell_shiny_palette.pal rename to graphics/pokemon/weepinbell/shiny.pal diff --git a/graphics/pokemon/back_pics/weezing_back_pic.png b/graphics/pokemon/weezing/back.png similarity index 100% rename from graphics/pokemon/back_pics/weezing_back_pic.png rename to graphics/pokemon/weezing/back.png diff --git a/graphics/pokemon/footprints/weezing_footprint.png b/graphics/pokemon/weezing/footprint.png similarity index 100% rename from graphics/pokemon/footprints/weezing_footprint.png rename to graphics/pokemon/weezing/footprint.png diff --git a/graphics/pokemon/front_pics/weezing_still_front_pic.png b/graphics/pokemon/weezing/front.png similarity index 100% rename from graphics/pokemon/front_pics/weezing_still_front_pic.png rename to graphics/pokemon/weezing/front.png diff --git a/graphics/pokemon/icons/weezing_icon.png b/graphics/pokemon/weezing/icon.png similarity index 100% rename from graphics/pokemon/icons/weezing_icon.png rename to graphics/pokemon/weezing/icon.png diff --git a/graphics/pokemon/palettes/weezing_palette.pal b/graphics/pokemon/weezing/normal.pal similarity index 100% rename from graphics/pokemon/palettes/weezing_palette.pal rename to graphics/pokemon/weezing/normal.pal diff --git a/graphics/pokemon/palettes/weezing_shiny_palette.pal b/graphics/pokemon/weezing/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/weezing_shiny_palette.pal rename to graphics/pokemon/weezing/shiny.pal diff --git a/graphics/pokemon/back_pics/whiscash_back_pic.png b/graphics/pokemon/whiscash/back.png similarity index 100% rename from graphics/pokemon/back_pics/whiscash_back_pic.png rename to graphics/pokemon/whiscash/back.png diff --git a/graphics/pokemon/footprints/whiscash_footprint.png b/graphics/pokemon/whiscash/footprint.png similarity index 100% rename from graphics/pokemon/footprints/whiscash_footprint.png rename to graphics/pokemon/whiscash/footprint.png diff --git a/graphics/pokemon/front_pics/whiscash_still_front_pic.png b/graphics/pokemon/whiscash/front.png similarity index 100% rename from graphics/pokemon/front_pics/whiscash_still_front_pic.png rename to graphics/pokemon/whiscash/front.png diff --git a/graphics/pokemon/icons/whiscash_icon.png b/graphics/pokemon/whiscash/icon.png similarity index 100% rename from graphics/pokemon/icons/whiscash_icon.png rename to graphics/pokemon/whiscash/icon.png diff --git a/graphics/pokemon/palettes/whiscash_palette.pal b/graphics/pokemon/whiscash/normal.pal similarity index 100% rename from graphics/pokemon/palettes/whiscash_palette.pal rename to graphics/pokemon/whiscash/normal.pal diff --git a/graphics/pokemon/palettes/whiscash_shiny_palette.pal b/graphics/pokemon/whiscash/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/whiscash_shiny_palette.pal rename to graphics/pokemon/whiscash/shiny.pal diff --git a/graphics/pokemon/back_pics/whismur_back_pic.png b/graphics/pokemon/whismur/back.png similarity index 100% rename from graphics/pokemon/back_pics/whismur_back_pic.png rename to graphics/pokemon/whismur/back.png diff --git a/graphics/pokemon/footprints/whismur_footprint.png b/graphics/pokemon/whismur/footprint.png similarity index 100% rename from graphics/pokemon/footprints/whismur_footprint.png rename to graphics/pokemon/whismur/footprint.png diff --git a/graphics/pokemon/front_pics/whismur_still_front_pic.png b/graphics/pokemon/whismur/front.png similarity index 100% rename from graphics/pokemon/front_pics/whismur_still_front_pic.png rename to graphics/pokemon/whismur/front.png diff --git a/graphics/pokemon/icons/whismur_icon.png b/graphics/pokemon/whismur/icon.png similarity index 100% rename from graphics/pokemon/icons/whismur_icon.png rename to graphics/pokemon/whismur/icon.png diff --git a/graphics/pokemon/palettes/whismur_palette.pal b/graphics/pokemon/whismur/normal.pal similarity index 100% rename from graphics/pokemon/palettes/whismur_palette.pal rename to graphics/pokemon/whismur/normal.pal diff --git a/graphics/pokemon/palettes/whismur_shiny_palette.pal b/graphics/pokemon/whismur/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/whismur_shiny_palette.pal rename to graphics/pokemon/whismur/shiny.pal diff --git a/graphics/pokemon/back_pics/wigglytuff_back_pic.png b/graphics/pokemon/wigglytuff/back.png similarity index 100% rename from graphics/pokemon/back_pics/wigglytuff_back_pic.png rename to graphics/pokemon/wigglytuff/back.png diff --git a/graphics/pokemon/footprints/wigglytuff_footprint.png b/graphics/pokemon/wigglytuff/footprint.png similarity index 100% rename from graphics/pokemon/footprints/wigglytuff_footprint.png rename to graphics/pokemon/wigglytuff/footprint.png diff --git a/graphics/pokemon/front_pics/wigglytuff_still_front_pic.png b/graphics/pokemon/wigglytuff/front.png similarity index 100% rename from graphics/pokemon/front_pics/wigglytuff_still_front_pic.png rename to graphics/pokemon/wigglytuff/front.png diff --git a/graphics/pokemon/icons/wigglytuff_icon.png b/graphics/pokemon/wigglytuff/icon.png similarity index 100% rename from graphics/pokemon/icons/wigglytuff_icon.png rename to graphics/pokemon/wigglytuff/icon.png diff --git a/graphics/pokemon/palettes/wigglytuff_palette.pal b/graphics/pokemon/wigglytuff/normal.pal similarity index 100% rename from graphics/pokemon/palettes/wigglytuff_palette.pal rename to graphics/pokemon/wigglytuff/normal.pal diff --git a/graphics/pokemon/palettes/wigglytuff_shiny_palette.pal b/graphics/pokemon/wigglytuff/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/wigglytuff_shiny_palette.pal rename to graphics/pokemon/wigglytuff/shiny.pal diff --git a/graphics/pokemon/back_pics/wingull_back_pic.png b/graphics/pokemon/wingull/back.png similarity index 100% rename from graphics/pokemon/back_pics/wingull_back_pic.png rename to graphics/pokemon/wingull/back.png diff --git a/graphics/pokemon/footprints/wingull_footprint.png b/graphics/pokemon/wingull/footprint.png similarity index 100% rename from graphics/pokemon/footprints/wingull_footprint.png rename to graphics/pokemon/wingull/footprint.png diff --git a/graphics/pokemon/front_pics/wingull_still_front_pic.png b/graphics/pokemon/wingull/front.png similarity index 100% rename from graphics/pokemon/front_pics/wingull_still_front_pic.png rename to graphics/pokemon/wingull/front.png diff --git a/graphics/pokemon/icons/wingull_icon.png b/graphics/pokemon/wingull/icon.png similarity index 100% rename from graphics/pokemon/icons/wingull_icon.png rename to graphics/pokemon/wingull/icon.png diff --git a/graphics/pokemon/palettes/wingull_palette.pal b/graphics/pokemon/wingull/normal.pal similarity index 100% rename from graphics/pokemon/palettes/wingull_palette.pal rename to graphics/pokemon/wingull/normal.pal diff --git a/graphics/pokemon/palettes/wingull_shiny_palette.pal b/graphics/pokemon/wingull/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/wingull_shiny_palette.pal rename to graphics/pokemon/wingull/shiny.pal diff --git a/graphics/pokemon/back_pics/wobbuffet_back_pic.png b/graphics/pokemon/wobbuffet/back.png similarity index 100% rename from graphics/pokemon/back_pics/wobbuffet_back_pic.png rename to graphics/pokemon/wobbuffet/back.png diff --git a/graphics/pokemon/footprints/wobbuffet_footprint.png b/graphics/pokemon/wobbuffet/footprint.png similarity index 100% rename from graphics/pokemon/footprints/wobbuffet_footprint.png rename to graphics/pokemon/wobbuffet/footprint.png diff --git a/graphics/pokemon/front_pics/wobbuffet_still_front_pic.png b/graphics/pokemon/wobbuffet/front.png similarity index 100% rename from graphics/pokemon/front_pics/wobbuffet_still_front_pic.png rename to graphics/pokemon/wobbuffet/front.png diff --git a/graphics/pokemon/icons/wobbuffet_icon.png b/graphics/pokemon/wobbuffet/icon.png similarity index 100% rename from graphics/pokemon/icons/wobbuffet_icon.png rename to graphics/pokemon/wobbuffet/icon.png diff --git a/graphics/pokemon/palettes/wobbuffet_palette.pal b/graphics/pokemon/wobbuffet/normal.pal similarity index 100% rename from graphics/pokemon/palettes/wobbuffet_palette.pal rename to graphics/pokemon/wobbuffet/normal.pal diff --git a/graphics/pokemon/palettes/wobbuffet_shiny_palette.pal b/graphics/pokemon/wobbuffet/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/wobbuffet_shiny_palette.pal rename to graphics/pokemon/wobbuffet/shiny.pal diff --git a/graphics/pokemon/back_pics/wooper_back_pic.png b/graphics/pokemon/wooper/back.png similarity index 100% rename from graphics/pokemon/back_pics/wooper_back_pic.png rename to graphics/pokemon/wooper/back.png diff --git a/graphics/pokemon/footprints/wooper_footprint.png b/graphics/pokemon/wooper/footprint.png similarity index 100% rename from graphics/pokemon/footprints/wooper_footprint.png rename to graphics/pokemon/wooper/footprint.png diff --git a/graphics/pokemon/front_pics/wooper_still_front_pic.png b/graphics/pokemon/wooper/front.png similarity index 100% rename from graphics/pokemon/front_pics/wooper_still_front_pic.png rename to graphics/pokemon/wooper/front.png diff --git a/graphics/pokemon/icons/wooper_icon.png b/graphics/pokemon/wooper/icon.png similarity index 100% rename from graphics/pokemon/icons/wooper_icon.png rename to graphics/pokemon/wooper/icon.png diff --git a/graphics/pokemon/palettes/wooper_palette.pal b/graphics/pokemon/wooper/normal.pal similarity index 100% rename from graphics/pokemon/palettes/wooper_palette.pal rename to graphics/pokemon/wooper/normal.pal diff --git a/graphics/pokemon/palettes/wooper_shiny_palette.pal b/graphics/pokemon/wooper/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/wooper_shiny_palette.pal rename to graphics/pokemon/wooper/shiny.pal diff --git a/graphics/pokemon/back_pics/wurmple_back_pic.png b/graphics/pokemon/wurmple/back.png similarity index 100% rename from graphics/pokemon/back_pics/wurmple_back_pic.png rename to graphics/pokemon/wurmple/back.png diff --git a/graphics/pokemon/footprints/wurmple_footprint.png b/graphics/pokemon/wurmple/footprint.png similarity index 100% rename from graphics/pokemon/footprints/wurmple_footprint.png rename to graphics/pokemon/wurmple/footprint.png diff --git a/graphics/pokemon/front_pics/wurmple_still_front_pic.png b/graphics/pokemon/wurmple/front.png similarity index 100% rename from graphics/pokemon/front_pics/wurmple_still_front_pic.png rename to graphics/pokemon/wurmple/front.png diff --git a/graphics/pokemon/icons/wurmple_icon.png b/graphics/pokemon/wurmple/icon.png similarity index 100% rename from graphics/pokemon/icons/wurmple_icon.png rename to graphics/pokemon/wurmple/icon.png diff --git a/graphics/pokemon/palettes/wurmple_palette.pal b/graphics/pokemon/wurmple/normal.pal similarity index 100% rename from graphics/pokemon/palettes/wurmple_palette.pal rename to graphics/pokemon/wurmple/normal.pal diff --git a/graphics/pokemon/palettes/wurmple_shiny_palette.pal b/graphics/pokemon/wurmple/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/wurmple_shiny_palette.pal rename to graphics/pokemon/wurmple/shiny.pal diff --git a/graphics/pokemon/back_pics/wynaut_back_pic.png b/graphics/pokemon/wynaut/back.png similarity index 100% rename from graphics/pokemon/back_pics/wynaut_back_pic.png rename to graphics/pokemon/wynaut/back.png diff --git a/graphics/pokemon/footprints/wynaut_footprint.png b/graphics/pokemon/wynaut/footprint.png similarity index 100% rename from graphics/pokemon/footprints/wynaut_footprint.png rename to graphics/pokemon/wynaut/footprint.png diff --git a/graphics/pokemon/front_pics/wynaut_still_front_pic.png b/graphics/pokemon/wynaut/front.png similarity index 100% rename from graphics/pokemon/front_pics/wynaut_still_front_pic.png rename to graphics/pokemon/wynaut/front.png diff --git a/graphics/pokemon/icons/wynaut_icon.png b/graphics/pokemon/wynaut/icon.png similarity index 100% rename from graphics/pokemon/icons/wynaut_icon.png rename to graphics/pokemon/wynaut/icon.png diff --git a/graphics/pokemon/palettes/wynaut_palette.pal b/graphics/pokemon/wynaut/normal.pal similarity index 100% rename from graphics/pokemon/palettes/wynaut_palette.pal rename to graphics/pokemon/wynaut/normal.pal diff --git a/graphics/pokemon/palettes/wynaut_shiny_palette.pal b/graphics/pokemon/wynaut/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/wynaut_shiny_palette.pal rename to graphics/pokemon/wynaut/shiny.pal diff --git a/graphics/pokemon/back_pics/xatu_back_pic.png b/graphics/pokemon/xatu/back.png similarity index 100% rename from graphics/pokemon/back_pics/xatu_back_pic.png rename to graphics/pokemon/xatu/back.png diff --git a/graphics/pokemon/footprints/xatu_footprint.png b/graphics/pokemon/xatu/footprint.png similarity index 100% rename from graphics/pokemon/footprints/xatu_footprint.png rename to graphics/pokemon/xatu/footprint.png diff --git a/graphics/pokemon/front_pics/xatu_still_front_pic.png b/graphics/pokemon/xatu/front.png similarity index 100% rename from graphics/pokemon/front_pics/xatu_still_front_pic.png rename to graphics/pokemon/xatu/front.png diff --git a/graphics/pokemon/icons/xatu_icon.png b/graphics/pokemon/xatu/icon.png similarity index 100% rename from graphics/pokemon/icons/xatu_icon.png rename to graphics/pokemon/xatu/icon.png diff --git a/graphics/pokemon/palettes/xatu_palette.pal b/graphics/pokemon/xatu/normal.pal similarity index 100% rename from graphics/pokemon/palettes/xatu_palette.pal rename to graphics/pokemon/xatu/normal.pal diff --git a/graphics/pokemon/palettes/xatu_shiny_palette.pal b/graphics/pokemon/xatu/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/xatu_shiny_palette.pal rename to graphics/pokemon/xatu/shiny.pal diff --git a/graphics/pokemon/back_pics/yanma_back_pic.png b/graphics/pokemon/yanma/back.png similarity index 100% rename from graphics/pokemon/back_pics/yanma_back_pic.png rename to graphics/pokemon/yanma/back.png diff --git a/graphics/pokemon/footprints/yanma_footprint.png b/graphics/pokemon/yanma/footprint.png similarity index 100% rename from graphics/pokemon/footprints/yanma_footprint.png rename to graphics/pokemon/yanma/footprint.png diff --git a/graphics/pokemon/front_pics/yanma_still_front_pic.png b/graphics/pokemon/yanma/front.png similarity index 100% rename from graphics/pokemon/front_pics/yanma_still_front_pic.png rename to graphics/pokemon/yanma/front.png diff --git a/graphics/pokemon/icons/yanma_icon.png b/graphics/pokemon/yanma/icon.png similarity index 100% rename from graphics/pokemon/icons/yanma_icon.png rename to graphics/pokemon/yanma/icon.png diff --git a/graphics/pokemon/palettes/yanma_palette.pal b/graphics/pokemon/yanma/normal.pal similarity index 100% rename from graphics/pokemon/palettes/yanma_palette.pal rename to graphics/pokemon/yanma/normal.pal diff --git a/graphics/pokemon/palettes/yanma_shiny_palette.pal b/graphics/pokemon/yanma/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/yanma_shiny_palette.pal rename to graphics/pokemon/yanma/shiny.pal diff --git a/graphics/pokemon/back_pics/zangoose_back_pic.png b/graphics/pokemon/zangoose/back.png similarity index 100% rename from graphics/pokemon/back_pics/zangoose_back_pic.png rename to graphics/pokemon/zangoose/back.png diff --git a/graphics/pokemon/footprints/zangoose_footprint.png b/graphics/pokemon/zangoose/footprint.png similarity index 100% rename from graphics/pokemon/footprints/zangoose_footprint.png rename to graphics/pokemon/zangoose/footprint.png diff --git a/graphics/pokemon/front_pics/zangoose_still_front_pic.png b/graphics/pokemon/zangoose/front.png similarity index 100% rename from graphics/pokemon/front_pics/zangoose_still_front_pic.png rename to graphics/pokemon/zangoose/front.png diff --git a/graphics/pokemon/icons/zangoose_icon.png b/graphics/pokemon/zangoose/icon.png similarity index 100% rename from graphics/pokemon/icons/zangoose_icon.png rename to graphics/pokemon/zangoose/icon.png diff --git a/graphics/pokemon/palettes/zangoose_palette.pal b/graphics/pokemon/zangoose/normal.pal similarity index 100% rename from graphics/pokemon/palettes/zangoose_palette.pal rename to graphics/pokemon/zangoose/normal.pal diff --git a/graphics/pokemon/palettes/zangoose_shiny_palette.pal b/graphics/pokemon/zangoose/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/zangoose_shiny_palette.pal rename to graphics/pokemon/zangoose/shiny.pal diff --git a/graphics/pokemon/back_pics/zapdos_back_pic.png b/graphics/pokemon/zapdos/back.png similarity index 100% rename from graphics/pokemon/back_pics/zapdos_back_pic.png rename to graphics/pokemon/zapdos/back.png diff --git a/graphics/pokemon/footprints/zapdos_footprint.png b/graphics/pokemon/zapdos/footprint.png similarity index 100% rename from graphics/pokemon/footprints/zapdos_footprint.png rename to graphics/pokemon/zapdos/footprint.png diff --git a/graphics/pokemon/front_pics/zapdos_still_front_pic.png b/graphics/pokemon/zapdos/front.png similarity index 100% rename from graphics/pokemon/front_pics/zapdos_still_front_pic.png rename to graphics/pokemon/zapdos/front.png diff --git a/graphics/pokemon/icons/zapdos_icon.png b/graphics/pokemon/zapdos/icon.png similarity index 100% rename from graphics/pokemon/icons/zapdos_icon.png rename to graphics/pokemon/zapdos/icon.png diff --git a/graphics/pokemon/palettes/zapdos_palette.pal b/graphics/pokemon/zapdos/normal.pal similarity index 100% rename from graphics/pokemon/palettes/zapdos_palette.pal rename to graphics/pokemon/zapdos/normal.pal diff --git a/graphics/pokemon/palettes/zapdos_shiny_palette.pal b/graphics/pokemon/zapdos/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/zapdos_shiny_palette.pal rename to graphics/pokemon/zapdos/shiny.pal diff --git a/graphics/pokemon/back_pics/zigzagoon_back_pic.png b/graphics/pokemon/zigzagoon/back.png similarity index 100% rename from graphics/pokemon/back_pics/zigzagoon_back_pic.png rename to graphics/pokemon/zigzagoon/back.png diff --git a/graphics/pokemon/footprints/zigzagoon_footprint.png b/graphics/pokemon/zigzagoon/footprint.png similarity index 100% rename from graphics/pokemon/footprints/zigzagoon_footprint.png rename to graphics/pokemon/zigzagoon/footprint.png diff --git a/graphics/pokemon/front_pics/zigzagoon_still_front_pic.png b/graphics/pokemon/zigzagoon/front.png similarity index 100% rename from graphics/pokemon/front_pics/zigzagoon_still_front_pic.png rename to graphics/pokemon/zigzagoon/front.png diff --git a/graphics/pokemon/icons/zigzagoon_icon.png b/graphics/pokemon/zigzagoon/icon.png similarity index 100% rename from graphics/pokemon/icons/zigzagoon_icon.png rename to graphics/pokemon/zigzagoon/icon.png diff --git a/graphics/pokemon/palettes/zigzagoon_palette.pal b/graphics/pokemon/zigzagoon/normal.pal similarity index 100% rename from graphics/pokemon/palettes/zigzagoon_palette.pal rename to graphics/pokemon/zigzagoon/normal.pal diff --git a/graphics/pokemon/palettes/zigzagoon_shiny_palette.pal b/graphics/pokemon/zigzagoon/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/zigzagoon_shiny_palette.pal rename to graphics/pokemon/zigzagoon/shiny.pal diff --git a/graphics/pokemon/back_pics/zubat_back_pic.png b/graphics/pokemon/zubat/back.png similarity index 100% rename from graphics/pokemon/back_pics/zubat_back_pic.png rename to graphics/pokemon/zubat/back.png diff --git a/graphics/pokemon/footprints/zubat_footprint.png b/graphics/pokemon/zubat/footprint.png similarity index 100% rename from graphics/pokemon/footprints/zubat_footprint.png rename to graphics/pokemon/zubat/footprint.png diff --git a/graphics/pokemon/front_pics/zubat_still_front_pic.png b/graphics/pokemon/zubat/front.png similarity index 100% rename from graphics/pokemon/front_pics/zubat_still_front_pic.png rename to graphics/pokemon/zubat/front.png diff --git a/graphics/pokemon/icons/zubat_icon.png b/graphics/pokemon/zubat/icon.png similarity index 100% rename from graphics/pokemon/icons/zubat_icon.png rename to graphics/pokemon/zubat/icon.png diff --git a/graphics/pokemon/palettes/zubat_palette.pal b/graphics/pokemon/zubat/normal.pal similarity index 100% rename from graphics/pokemon/palettes/zubat_palette.pal rename to graphics/pokemon/zubat/normal.pal diff --git a/graphics/pokemon/palettes/zubat_shiny_palette.pal b/graphics/pokemon/zubat/shiny.pal similarity index 100% rename from graphics/pokemon/palettes/zubat_shiny_palette.pal rename to graphics/pokemon/zubat/shiny.pal diff --git a/graphics/ss_anne/unk_8479838.png b/graphics/ss_anne/unk_8479838.png new file mode 100644 index 000000000..e7d0d8c44 Binary files /dev/null and b/graphics/ss_anne/unk_8479838.png differ diff --git a/graphics/ss_anne/unk_8479A38.png b/graphics/ss_anne/unk_8479A38.png new file mode 100644 index 000000000..98fbc8d97 Binary files /dev/null and b/graphics/ss_anne/unk_8479A38.png differ diff --git a/graphics/teachy_tv/bg1_tilemap.bin b/graphics/teachy_tv/bg1_tilemap.bin new file mode 100644 index 000000000..34dc439bc Binary files /dev/null and b/graphics/teachy_tv/bg1_tilemap.bin differ diff --git a/graphics/teachy_tv/bg2_tilemap.bin b/graphics/teachy_tv/bg2_tilemap.bin new file mode 100644 index 000000000..f51b3695f Binary files /dev/null and b/graphics/teachy_tv/bg2_tilemap.bin differ diff --git a/graphics/teachy_tv/palettes.pal b/graphics/teachy_tv/palettes.pal new file mode 100644 index 000000000..22808d3de --- /dev/null +++ b/graphics/teachy_tv/palettes.pal @@ -0,0 +1,67 @@ +JASC-PAL +0100 +64 +115 205 164 +255 255 255 +98 98 98 +255 230 90 +246 180 0 +189 115 0 +123 123 255 +74 65 74 +49 49 57 +98 106 106 +131 139 139 +255 0 255 +255 0 255 +255 255 180 +246 205 41 +213 156 16 +115 205 164 +255 255 255 +230 230 238 +205 213 222 +180 197 205 +164 180 189 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +115 205 164 +156 255 255 +255 255 255 +255 222 32 +246 230 164 +255 74 24 +255 148 139 +255 156 24 +131 230 222 +24 32 32 +156 189 213 +74 131 189 +90 222 164 +205 238 139 +255 0 255 +255 0 255 +115 205 164 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +255 0 255 +255 0 255 +74 65 74 +164 164 164 +197 197 205 +230 230 238 diff --git a/graphics/teachy_tv/tiles.png b/graphics/teachy_tv/tiles.png new file mode 100644 index 000000000..e867de82b Binary files /dev/null and b/graphics/teachy_tv/tiles.png differ diff --git a/graphics/text_window/stdpal_0.pal b/graphics/text_window/stdpal_0.pal new file mode 100644 index 000000000..c64668073 --- /dev/null +++ b/graphics/text_window/stdpal_0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +255 255 255 +213 230 246 +164 213 230 +230 246 255 +115 164 197 +74 115 164 diff --git a/graphics/text_window/stdpal_1.pal b/graphics/text_window/stdpal_1.pal new file mode 100644 index 000000000..df5d3c337 --- /dev/null +++ b/graphics/text_window/stdpal_1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +255 255 255 +205 205 222 +205 205 222 +230 246 255 +205 205 222 +106 115 123 diff --git a/graphics/text_window/stdpal_2.pal b/graphics/text_window/stdpal_2.pal new file mode 100644 index 000000000..6a14d67f0 --- /dev/null +++ b/graphics/text_window/stdpal_2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +255 255 255 +74 205 238 +16 172 222 +0 82 115 +0 115 139 +0 123 197 diff --git a/graphics/text_window/stdpal_3.pal b/graphics/text_window/stdpal_3.pal new file mode 100644 index 000000000..9cbcdad4c --- /dev/null +++ b/graphics/text_window/stdpal_3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +255 0 255 +205 213 213 +156 205 222 +98 115 123 +65 172 230 +131 164 180 diff --git a/graphics/text_window/stdpal_4.pal b/graphics/text_window/stdpal_4.pal new file mode 100644 index 000000000..a004a081a --- /dev/null +++ b/graphics/text_window/stdpal_4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +57 98 115 +131 131 131 +164 164 164 +197 197 205 +230 230 238 +65 90 106 diff --git a/graphics/text_window/unk_841F1C8.png b/graphics/text_window/unk_841F1C8.png new file mode 100644 index 000000000..5bdff868a Binary files /dev/null and b/graphics/text_window/unk_841F1C8.png differ diff --git a/graphics/text_window/unk_8470B0C.png b/graphics/text_window/unk_8470B0C.png new file mode 100644 index 000000000..a37c7d17c Binary files /dev/null and b/graphics/text_window/unk_8470B0C.png differ diff --git a/graphics/text_window/unk_8470D6C.png b/graphics/text_window/unk_8470D6C.png new file mode 100644 index 000000000..d14130f9a Binary files /dev/null and b/graphics/text_window/unk_8470D6C.png differ diff --git a/graphics/text_window/unk_8470E8C.png b/graphics/text_window/unk_8470E8C.png new file mode 100644 index 000000000..747e243eb Binary files /dev/null and b/graphics/text_window/unk_8470E8C.png differ diff --git a/graphics/text_window/unk_8470FCC.png b/graphics/text_window/unk_8470FCC.png new file mode 100644 index 000000000..c8b21542d Binary files /dev/null and b/graphics/text_window/unk_8470FCC.png differ diff --git a/graphics/text_window/unk_84710EC.png b/graphics/text_window/unk_84710EC.png new file mode 100644 index 000000000..cb7e5383d Binary files /dev/null and b/graphics/text_window/unk_84710EC.png differ diff --git a/graphics/text_window/unk_847120C.png b/graphics/text_window/unk_847120C.png new file mode 100644 index 000000000..dc7e1951c Binary files /dev/null and b/graphics/text_window/unk_847120C.png differ diff --git a/graphics/text_window/unk_847132C.png b/graphics/text_window/unk_847132C.png new file mode 100644 index 000000000..ec72b2756 Binary files /dev/null and b/graphics/text_window/unk_847132C.png differ diff --git a/graphics/text_window/unk_847144C.png b/graphics/text_window/unk_847144C.png new file mode 100644 index 000000000..804df1a8b Binary files /dev/null and b/graphics/text_window/unk_847144C.png differ diff --git a/graphics/text_window/unk_847156C.png b/graphics/text_window/unk_847156C.png new file mode 100644 index 000000000..b1292016f Binary files /dev/null and b/graphics/text_window/unk_847156C.png differ diff --git a/graphics/text_window/unk_84716AC.png b/graphics/text_window/unk_84716AC.png new file mode 100644 index 000000000..94ec70d6e Binary files /dev/null and b/graphics/text_window/unk_84716AC.png differ diff --git a/graphics/text_window/unk_84717CC.png b/graphics/text_window/unk_84717CC.png new file mode 100644 index 000000000..0ea4b9a45 Binary files /dev/null and b/graphics/text_window/unk_84717CC.png differ diff --git a/graphics/text_window/unk_8471A4C.png b/graphics/text_window/unk_8471A4C.png new file mode 100644 index 000000000..ed43f0c4a Binary files /dev/null and b/graphics/text_window/unk_8471A4C.png differ diff --git a/graphics/text_window/unk_8471B6C.png b/graphics/text_window/unk_8471B6C.png new file mode 100644 index 000000000..c1fba5919 Binary files /dev/null and b/graphics/text_window/unk_8471B6C.png differ diff --git a/graphics/tm_case/unk_841F408.pal b/graphics/tm_case/unk_841F408.pal new file mode 100644 index 000000000..25a3ac1d2 --- /dev/null +++ b/graphics/tm_case/unk_841F408.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/tm_case/unk_8E845D8.png b/graphics/tm_case/unk_8E845D8.png new file mode 100644 index 000000000..2729ac568 Binary files /dev/null and b/graphics/tm_case/unk_8E845D8.png differ diff --git a/graphics/tm_case/unk_8E84A24.bin b/graphics/tm_case/unk_8E84A24.bin new file mode 100644 index 000000000..a4962cbaa Binary files /dev/null and b/graphics/tm_case/unk_8E84A24.bin differ diff --git a/graphics/tm_case/unk_8E84B70.bin b/graphics/tm_case/unk_8E84B70.bin new file mode 100644 index 000000000..0b13dc93a Binary files /dev/null and b/graphics/tm_case/unk_8E84B70.bin differ diff --git a/graphics/tm_case/unk_8E84CB0.pal b/graphics/tm_case/unk_8E84CB0.pal new file mode 100644 index 000000000..2464f7026 --- /dev/null +++ b/graphics/tm_case/unk_8E84CB0.pal @@ -0,0 +1,67 @@ +JASC-PAL +0100 +64 +0 65 90 +255 0 255 +41 57 82 +65 180 164 +255 0 255 +255 0 255 +106 205 197 +197 230 205 +238 230 172 +255 255 197 +180 180 180 +230 255 238 +139 106 172 +115 115 115 +164 205 172 +148 180 156 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +189 213 213 +238 255 255 +222 246 255 +255 255 255 +164 222 255 +16 172 222 +0 82 115 +0 115 139 +0 123 197 +205 164 238 +106 164 222 +82 123 197 +164 172 131 +106 205 197 +238 238 238 +90 90 65 +115 115 90 +189 189 164 +65 180 164 +222 156 0 +238 180 16 +246 213 57 +255 246 123 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +189 213 213 +238 255 255 +222 246 255 +255 255 255 +164 222 255 +24 82 180 +0 90 131 +24 82 180 +24 82 180 diff --git a/graphics/tm_case/unk_8E84D20.pal b/graphics/tm_case/unk_8E84D20.pal new file mode 100644 index 000000000..99fd00240 --- /dev/null +++ b/graphics/tm_case/unk_8E84D20.pal @@ -0,0 +1,67 @@ +JASC-PAL +0100 +64 +0 65 90 +255 0 255 +41 57 82 +213 139 115 +255 0 255 +255 0 255 +255 172 148 +197 230 205 +238 230 172 +255 255 197 +180 180 180 +230 255 238 +139 106 172 +115 115 115 +164 205 172 +148 180 156 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +189 213 213 +238 255 255 +222 246 255 +255 255 255 +164 222 255 +16 172 222 +0 82 115 +0 115 139 +0 123 197 +205 164 238 +106 164 222 +82 123 197 +164 172 131 +255 172 148 +238 238 238 +90 90 65 +115 115 90 +189 189 164 +213 139 115 +222 156 0 +238 180 16 +246 213 57 +255 246 123 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +189 213 213 +238 255 255 +222 246 255 +255 255 255 +164 222 255 +24 82 180 +0 90 131 +24 82 180 +24 82 180 diff --git a/graphics/tm_case/unk_8E84D90.png b/graphics/tm_case/unk_8E84D90.png new file mode 100644 index 000000000..a26831822 Binary files /dev/null and b/graphics/tm_case/unk_8E84D90.png differ diff --git a/graphics/tm_case/unk_8E84F20.pal b/graphics/tm_case/unk_8E84F20.pal new file mode 100644 index 000000000..c7f6d1d50 --- /dev/null +++ b/graphics/tm_case/unk_8E84F20.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +205 164 238 +74 74 98 +238 238 238 +230 230 238 +230 230 230 +222 222 222 +213 213 213 +205 205 205 +197 197 197 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +255 255 255 +205 164 238 +0 0 0 +74 74 98 +255 230 189 +255 222 156 +255 205 131 +255 197 98 +255 189 65 +255 180 41 +238 172 32 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +255 238 222 +205 164 238 +0 0 0 +74 74 98 +205 230 246 +180 213 246 +164 205 246 +139 197 238 +115 180 238 +90 172 238 +74 164 238 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +205 205 205 +238 246 246 +205 164 238 +0 0 0 +74 74 98 +213 246 230 +197 246 213 +180 246 205 +156 238 197 +139 238 180 +123 238 172 +106 238 164 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +238 246 246 +205 164 238 +0 0 0 +74 74 98 +255 255 189 +255 238 156 +255 230 123 +255 222 90 +255 205 57 +255 197 24 +255 197 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +255 255 222 +205 164 238 +0 0 0 +74 74 98 +246 238 222 +238 230 197 +238 222 172 +230 213 148 +222 197 115 +222 189 90 +213 180 65 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +255 255 255 +205 164 238 +0 0 0 +74 74 98 +255 255 189 +255 255 156 +255 255 123 +255 255 90 +246 238 90 +230 213 82 +222 197 65 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +255 255 222 +205 164 238 +0 0 0 +74 74 98 +230 246 255 +213 246 255 +197 246 255 +172 238 255 +156 238 255 +139 230 246 +131 213 238 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +205 205 205 +255 255 255 +205 164 238 +0 0 0 +74 74 98 +213 246 255 +189 238 255 +172 238 255 +156 238 255 +172 222 238 +180 205 222 +197 197 197 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +246 246 255 +205 164 238 +0 0 0 +74 74 98 +246 213 189 +238 197 156 +238 180 123 +238 164 90 +230 148 57 +230 131 24 +230 115 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +172 172 172 +255 238 230 +205 164 238 +0 0 0 +74 74 98 +238 222 246 +230 205 246 +230 189 246 +222 172 246 +213 148 246 +197 123 238 +180 98 222 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +255 238 255 +205 164 238 +0 0 0 +74 74 98 +255 255 189 +255 255 156 +255 255 123 +255 255 90 +255 238 57 +255 238 24 +255 222 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +255 255 222 +205 164 238 +0 0 0 +74 74 98 +255 222 197 +255 205 172 +255 189 148 +255 180 123 +230 148 156 +205 123 189 +180 98 222 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +255 238 230 +205 164 238 +0 0 0 +74 74 98 +255 230 230 +255 222 213 +255 213 205 +255 197 197 +255 189 180 +255 180 172 +255 172 164 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +255 246 246 +205 164 238 +0 0 0 +74 74 98 +222 222 222 +213 213 213 +197 197 197 +189 189 189 +148 172 180 +115 164 172 +82 156 164 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +238 246 246 +205 164 238 +0 0 0 +74 74 98 +205 230 230 +189 213 213 +164 205 205 +139 189 197 +123 180 180 +98 164 172 +82 156 164 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +238 246 246 +205 164 238 diff --git a/graphics/tm_case/unk_8E85068.pal b/graphics/tm_case/unk_8E85068.pal new file mode 100644 index 000000000..9e3e5e6f5 --- /dev/null +++ b/graphics/tm_case/unk_8E85068.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 74 98 +205 230 255 +180 213 255 +156 197 255 +139 189 255 +172 180 213 +213 180 172 +255 180 131 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +189 189 189 +230 246 255 +205 164 238 diff --git a/graphics/tm_case/unk_8E99118.png b/graphics/tm_case/unk_8E99118.png new file mode 100644 index 000000000..426e404fe Binary files /dev/null and b/graphics/tm_case/unk_8E99118.png differ diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index c34f43baa..dfe15881a 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -1,7 +1,3 @@ -MONSTILLFRONTGFXDIR := graphics/pokemon/front_pics -MONBACKGFXDIR := graphics/pokemon/back_pics -MONFRONTGFXDIR := graphics/pokemon/anim_front_pics -MONPALDIR := graphics/pokemon/palettes TILESETGFXDIR := data/tilesets GLOBALGFXDIR := data/graphics FONTGFXDIR := $(GLOBALGFXDIR)/fonts @@ -22,232 +18,39 @@ PKNAVOPTIONSGFXDIR := graphics/pokenav/options PSSGFXDIR := graphics/pokemon_storage EVENTOBJGFXDIR := graphics/event_objects MISCGFXDIR := graphics/misc +TEXTWINDOWGFXDIR := graphics/text_window +TEACHYTVGFXDIR := graphics/teachy_tv +SSANNEGFXDIR := graphics/ss_anne +ITEMPCGFXDIR := graphics/item_pc types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark contest_types := cool beauty cute smart tough -$(MONSTILLFRONTGFXDIR)/castform_still_front_pic.4bpp: $(MONSTILLFRONTGFXDIR)/castform_normal_form_still_front_pic.4bpp \ - $(MONSTILLFRONTGFXDIR)/castform_sunny_form_still_front_pic.4bpp \ - $(MONSTILLFRONTGFXDIR)/castform_rainy_form_still_front_pic.4bpp \ - $(MONSTILLFRONTGFXDIR)/castform_snowy_form_still_front_pic.4bpp +CASTFORMGFXDIR := graphics/pokemon/castform +$(CASTFORMGFXDIR)/front.4bpp: $(CASTFORMGFXDIR)/normal/front.4bpp \ + $(CASTFORMGFXDIR)/sunny/front.4bpp \ + $(CASTFORMGFXDIR)/rainy/front.4bpp \ + $(CASTFORMGFXDIR)/snowy/front.4bpp @cat $^ >$@ -$(MONBACKGFXDIR)/castform_back_pic.4bpp: $(MONBACKGFXDIR)/castform_normal_form_back_pic.4bpp \ - $(MONBACKGFXDIR)/castform_sunny_form_back_pic.4bpp \ - $(MONBACKGFXDIR)/castform_rainy_form_back_pic.4bpp \ - $(MONBACKGFXDIR)/castform_snowy_form_back_pic.4bpp +$(CASTFORMGFXDIR)/back.4bpp: $(CASTFORMGFXDIR)/normal/back.4bpp \ + $(CASTFORMGFXDIR)/sunny/back.4bpp \ + $(CASTFORMGFXDIR)/rainy/back.4bpp \ + $(CASTFORMGFXDIR)/snowy/back.4bpp @cat $^ >$@ -$(MONFRONTGFXDIR)/castform_front_pic.4bpp: $(MONFRONTGFXDIR)/castform_normal_form_front_pic.4bpp \ - $(MONFRONTGFXDIR)/castform_sunny_form_front_pic.4bpp \ - $(MONFRONTGFXDIR)/castform_rainy_form_front_pic.4bpp \ - $(MONFRONTGFXDIR)/castform_snowy_form_front_pic.4bpp +$(CASTFORMGFXDIR)/normal.gbapal: $(CASTFORMGFXDIR)/normal/normal.gbapal \ + $(CASTFORMGFXDIR)/sunny/normal.gbapal \ + $(CASTFORMGFXDIR)/rainy/normal.gbapal \ + $(CASTFORMGFXDIR)/snowy/normal.gbapal @cat $^ >$@ -$(MONPALDIR)/castform_palette.gbapal: $(MONPALDIR)/castform_normal_form_palette.gbapal \ - $(MONPALDIR)/castform_sunny_form_palette.gbapal \ - $(MONPALDIR)/castform_rainy_form_palette.gbapal \ - $(MONPALDIR)/castform_snowy_form_palette.gbapal +$(CASTFORMGFXDIR)/shiny.gbapal: $(CASTFORMGFXDIR)/normal/shiny.gbapal \ + $(CASTFORMGFXDIR)/sunny/shiny.gbapal \ + $(CASTFORMGFXDIR)/rainy/shiny.gbapal \ + $(CASTFORMGFXDIR)/snowy/shiny.gbapal @cat $^ >$@ -$(MONPALDIR)/castform_shiny_palette.gbapal: $(MONPALDIR)/castform_normal_form_shiny_palette.gbapal \ - $(MONPALDIR)/castform_sunny_form_shiny_palette.gbapal \ - $(MONPALDIR)/castform_rainy_form_shiny_palette.gbapal \ - $(MONPALDIR)/castform_snowy_form_shiny_palette.gbapal - @cat $^ >$@ - -$(TILESETGFXDIR)/secondary/petalburg/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 159 - -$(TILESETGFXDIR)/secondary/rustboro/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 498 - -$(TILESETGFXDIR)/secondary/dewford/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 503 - -$(TILESETGFXDIR)/secondary/slateport/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 504 - -$(TILESETGFXDIR)/secondary/mauville/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 503 - -$(TILESETGFXDIR)/secondary/lavaridge/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 450 - -$(TILESETGFXDIR)/secondary/fortree/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 493 - -$(TILESETGFXDIR)/secondary/pacifidlog/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 504 - -$(TILESETGFXDIR)/secondary/sootopolis/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 328 - -$(TILESETGFXDIR)/secondary/battle_frontier_outside_west/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 508 - -$(TILESETGFXDIR)/secondary/battle_frontier_outside_east/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 508 - -$(TILESETGFXDIR)/primary/building/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 502 - -$(TILESETGFXDIR)/secondary/shop/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 502 - -$(TILESETGFXDIR)/secondary/pokemon_center/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 478 - -$(TILESETGFXDIR)/secondary/cave/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 425 - -$(TILESETGFXDIR)/secondary/pokemon_school/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 278 - -$(TILESETGFXDIR)/secondary/pokemon_fan_club/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 319 - -$(TILESETGFXDIR)/secondary/unused_1/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 17 - -$(TILESETGFXDIR)/secondary/meteor_falls/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 460 - -$(TILESETGFXDIR)/secondary/oceanic_museum/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 319 - -$(TILESETGFXDIR)/secondary/cable_club/unknown_tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 120 - -$(TILESETGFXDIR)/secondary/seashore_house/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 312 - -$(TILESETGFXDIR)/secondary/pretty_petal_flower_shop/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 345 - -$(TILESETGFXDIR)/secondary/pokemon_day_care/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 355 - -$(TILESETGFXDIR)/secondary/secret_base/brown_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/brown_cave/tiles.png - $(GFX) $< $@ -num_tiles 82 - -$(TILESETGFXDIR)/secondary/secret_base/tree/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/tree/tiles.png - $(GFX) $< $@ -num_tiles 82 - -$(TILESETGFXDIR)/secondary/secret_base/shrub/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/shrub/tiles.png - $(GFX) $< $@ -num_tiles 82 - -$(TILESETGFXDIR)/secondary/secret_base/blue_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/blue_cave/tiles.png - $(GFX) $< $@ -num_tiles 82 - -$(TILESETGFXDIR)/secondary/secret_base/yellow_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/yellow_cave/tiles.png - $(GFX) $< $@ -num_tiles 82 - -$(TILESETGFXDIR)/secondary/secret_base/red_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/red_cave/tiles.png - $(GFX) $< $@ -num_tiles 82 - -$(TILESETGFXDIR)/secondary/secret_base/brown_cave/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 83 - -$(TILESETGFXDIR)/secondary/secret_base/tree/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 83 - -$(TILESETGFXDIR)/secondary/secret_base/shrub/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 83 - -$(TILESETGFXDIR)/secondary/secret_base/blue_cave/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 83 - -$(TILESETGFXDIR)/secondary/secret_base/yellow_cave/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 83 - -$(TILESETGFXDIR)/secondary/secret_base/red_cave/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 83 - -$(TILESETGFXDIR)/secondary/inside_of_truck/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 62 - -$(TILESETGFXDIR)/secondary/contest/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 430 - -$(TILESETGFXDIR)/secondary/lilycove_museum/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 431 - -$(TILESETGFXDIR)/secondary/lab/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 500 - -$(TILESETGFXDIR)/secondary/underwater/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 500 - -$(TILESETGFXDIR)/secondary/generic_building/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 509 - -$(TILESETGFXDIR)/secondary/mauville_game_corner/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 469 - -$(TILESETGFXDIR)/secondary/unused_2/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 150 - -$(TILESETGFXDIR)/secondary/rustboro_gym/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 60 - -$(TILESETGFXDIR)/secondary/dewford_gym/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 61 - -$(TILESETGFXDIR)/secondary/lavaridge_gym/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 54 - -$(TILESETGFXDIR)/secondary/petalburg_gym/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 148 - -$(TILESETGFXDIR)/secondary/fortree_gym/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 61 - -$(TILESETGFXDIR)/secondary/mossdeep_gym/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 82 - -$(TILESETGFXDIR)/secondary/sootopolis_gym/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 484 - -$(TILESETGFXDIR)/secondary/trick_house_puzzle/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 294 - -$(TILESETGFXDIR)/secondary/inside_ship/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 342 - -$(TILESETGFXDIR)/secondary/elite_four/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 505 - -$(TILESETGFXDIR)/secondary/battle_frontier/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 310 - -$(TILESETGFXDIR)/secondary/battle_factory/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 424 - -$(TILESETGFXDIR)/secondary/battle_pike/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 382 - -$(TILESETGFXDIR)/secondary/mirage_tower/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 420 - -$(TILESETGFXDIR)/secondary/mossdeep_game_corner/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 95 - -$(TILESETGFXDIR)/secondary/island_harbor/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 503 - -$(TILESETGFXDIR)/secondary/trainer_hill/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 374 - -$(TILESETGFXDIR)/secondary/navel_rock/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 420 - -$(TILESETGFXDIR)/secondary/battle_frontier_ranking_hall/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 136 - -$(TILESETGFXDIR)/secondary/mystery_events_house/tiles.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 509 - $(FONTGFXDIR)/font0_latin.latfont: $(FONTGFXDIR)/font0_latin.png $(GFX) $< $@ @@ -278,6 +81,9 @@ $(FONTGFXDIR)/font5_latin.latfont: $(FONTGFXDIR)/font5_latin.png $(FONTGFXDIR)/font5_jap.fwjpnfont: $(FONTGFXDIR)/font5_jap.png $(GFX) $< $@ +$(FONTGFXDIR)/font6.fwjpnfont: $(FONTGFXDIR)/font6_braille.png + $(GFX) $< $@ + $(FONTGFXDIR)/font9_jap.fwjpnfont: $(FONTGFXDIR)/font9_jap.png $(GFX) $< $@ @@ -620,6 +426,9 @@ $(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png $(BATTRANSGFXDIR)/frontier_transition.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 43 + +graphics/tm_case/unk_8E845D8.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 91 $(PKNAVOPTIONSGFXDIR)/options.4bpp: $(PKNAVOPTIONSGFXDIR)/hoenn_map.4bpp \ $(PKNAVOPTIONSGFXDIR)/condition.4bpp \ @@ -659,3 +468,21 @@ $(FAMECHECKERGFXDIR)/img_845cf00.4bpp: %.4bpp: %.png $(GLOBALGFXDIR)/fame_checker_bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 165 + +data/seagallop/water.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 41 + +$(MISCGFXDIR)/unk_846B008.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(TEXTWINDOWGFXDIR)/unk_8470B0C.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 19 + +$(TEACHYTVGFXDIR)/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 233 + +$(SSANNEGFXDIR)/unk_8479A38.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 17 + +$(ITEMPCGFXDIR)/unk_8E85090.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 82 diff --git a/include/bag.h b/include/bag.h new file mode 100644 index 000000000..f82531778 --- /dev/null +++ b/include/bag.h @@ -0,0 +1,18 @@ +#ifndef GUARD_BAG_H +#define GUARD_BAG_H + +void sub_810B858(void); +void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx); +void sub_810B958(const u8 * str); +void sub_810B994(void); +u8 sub_810B9DC(u8 a0, u8 a1); +void sub_810BA3C(u8 a0); +u8 sub_810BA70(u8 a0); +void sub_810BA9C(u8 a0); +u8 sub_810BAD8(u8 a0); +void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs); +void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs); +void sub_810BB40(void); +void sub_810BB74(u8 windowId); + +#endif //GUARD_BAG_H diff --git a/include/battle.h b/include/battle.h index c86bc9232..2e6d251c3 100644 --- a/include/battle.h +++ b/include/battle.h @@ -983,6 +983,6 @@ extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern s32 gBattleMoveDamage; -extern u8 gUnknown_2023E8A; +extern u8 gBattleOutcome; #endif // GUARD_BATTLE_H diff --git a/include/battle_2.h b/include/battle_2.h index ca8b78805..1f7a2304d 100644 --- a/include/battle_2.h +++ b/include/battle_2.h @@ -43,6 +43,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves); void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); bool8 TryRunFromBattle(u8 bank); +void sub_800FD9C(void); extern const u8 gStatusConditionString_PoisonJpn[8]; extern const u8 gStatusConditionString_SleepJpn[8]; diff --git a/include/battle_anim.h b/include/battle_anim.h index 4ea3bdead..5929a318e 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -59,10 +59,13 @@ extern u8 gAnimFriendship; extern u16 gWeatherMoveAnim; extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT]; extern u8 gAnimMoveTurn; -extern u8 gAnimBankAttacker; -extern u8 gAnimBankTarget; +extern u8 gBattleAnimAttacker; +extern u8 gBattleAnimTarget; extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT]; extern u8 gUnknown_02038440; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; +extern u16 gUnknown_2037EEC; +extern s32 gUnknown_2037EE8; void ClearBattleAnimationVars(void); void DoMoveAnim(u16 move); @@ -77,6 +80,7 @@ s8 BattleAnimAdjustPanning(s8 pan); s8 BattleAnimAdjustPanning2(s8 pan); s16 sub_80A52EC(s16 a); s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); +bool8 sub_8072DF0(u8 battlerId); // battle_anim_80FE840.s void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); @@ -121,4 +125,14 @@ u8 ItemIdToBallId(u16 itemId); u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 bank, u32 arg2, u8 ballId); +// battle_anim_mons.s +void sub_8074DC4(struct Sprite * sprite); +void sub_8074E14(struct Sprite * sprite); +void sub_80754B8(struct Sprite * sprite); +void sub_80758E0(u8 spriteId, u8 b); +void sub_8075980(u8 spriteId); +void obj_id_set_rotscale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation); +bool8 sub_8073788(void); +void sub_80759DC(u8 spriteId); + #endif // GUARD_BATTLE_ANIM_H diff --git a/include/battle_setup.h b/include/battle_setup.h index 2806295ca..61395811b 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -11,11 +11,12 @@ void BattleSetup_StartWildBattle(void); void BattleSetup_StartRoamerBattle(void); u8 HasTrainerAlreadyBeenFought(u16); -void trainer_flag_set(u16); -void trainer_flag_clear(u16); +void SetTrainerFlag(u16); +void ClearTrainerFlag(u16); void BattleSetup_StartTrainerBattle(void); u8 *BattleSetup_GetScriptAddrAfterBattle(void); u8 *BattleSetup_GetTrainerPostBattleScript(void); void sub_80803FC(void); +u8 sub_8080060(void); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/battle_transition.h b/include/battle_transition.h index eba76fd61..91e564790 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -3,6 +3,8 @@ #include "global.h" -void sub_8149DFC(u8 a1); +void sub_8149DFC(u8 a0); +bool8 sub_80D08F8(void); +void sub_80D08B8(u8 a0); #endif // GUARD_BATTLE_TRANSITION_H diff --git a/include/berry.h b/include/berry.h index 40715868b..c5a132ccb 100644 --- a/include/berry.h +++ b/include/berry.h @@ -62,6 +62,7 @@ void FieldObjectInteractionPickBerryTree(void); void FieldObjectInteractionRemoveBerryTree(void); u8 PlayerHasBerries(void); void ResetBerryTreeSparkleFlags(void); +const struct Berry * sub_809C8A0(u8 berryIdx); extern const struct Berry gBerries[]; diff --git a/include/berry_pouch.h b/include/berry_pouch.h new file mode 100644 index 000000000..8e652225b --- /dev/null +++ b/include/berry_pouch.h @@ -0,0 +1,12 @@ +#ifndef GUARD_BERRY_POUCH_H +#define GUARD_BERRY_POUCH_H + +#include "task.h" + +void BerryPouch_StartFadeToExitCallback(u8 taskId); +void BerryPouch_SetExitCallback(void (*)(void)); +void InitBerryPouch(u8, void (*)(void), u8); +void DisplayItemMessageInBerryPouch(u8 taskId, u8 bgId, const u8 * str, TaskFunc followUpFunc); +void sub_813E2B8(u8 taskId); + +#endif //GUARD_BERRY_POUCH_H diff --git a/include/berry_powder.h b/include/berry_powder.h new file mode 100644 index 000000000..89582aacc --- /dev/null +++ b/include/berry_powder.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BERRY_POWDER_H +#define GUARD_BERRY_POWDER_H + +u32 GetBerryPowder(void); + +#endif //GUARD_BERRY_POWDER_H diff --git a/include/bike.h b/include/bike.h index 468c48273..68cc5f5c9 100644 --- a/include/bike.h +++ b/include/bike.h @@ -2,5 +2,7 @@ #define GUARD_BIKE_H void sub_80BD620(u32 unkC, u32 unk10); +bool8 sub_80BD540(void); +void StartTransitionToFlipBikeState(u8 flags); #endif //GUARD_BIKE_H diff --git a/include/blit.h b/include/blit.h new file mode 100644 index 000000000..78f67766e --- /dev/null +++ b/include/blit.h @@ -0,0 +1,17 @@ +#ifndef GUARD_BLIT_H +#define GUARD_BLIT_H + +struct Bitmap +{ + u8 *pixels; + u32 width:16; + u32 height:16; +}; + +void BlitBitmapRect4BitWithoutColorKey(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height); +void BlitBitmapRect4Bit(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey); +void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); +void BlitBitmapRect4BitTo8Bit(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey, u8 paletteOffset); +void FillBitmapRect8Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); + +#endif // GUARD_BLIT_H diff --git a/include/cereader_tool.h b/include/cereader_tool.h index 05677dc79..f223bdaa5 100644 --- a/include/cereader_tool.h +++ b/include/cereader_tool.h @@ -3,7 +3,45 @@ #include "global.h" -bool32 sub_815D794(u8 *); -bool32 sub_815D6B4(u8 *); +struct TrainerTowerTrainer_004 +{ + /* 0x000 */ u8 unk_000[11]; + /* 0x00B */ u8 unk_00B; + /* 0x00C */ u8 unk_00C; + /* 0x00E */ u16 unk_00E[6]; + /* 0x01A */ u16 unk_01A[6]; + /* 0x026 */ u16 unk_026[6]; + /* 0x032 */ u16 unk_032[6]; + /* 0x040 */ struct BattleTowerPokemon unk_040[PARTY_SIZE]; +}; // size: 328 + +struct TrainerTowerTrainer +{ + /* 0x000 */ u8 unk_000; + /* 0x000 */ u8 unk_001; + /* 0x002 */ u8 unk_002; + /* 0x003 */ u8 unk_003; + /* 0x004 */ struct TrainerTowerTrainer_004 unk_004[3]; + /* 0x3DC */ u32 checksum; +}; + +struct Unk_203F458_Header +{ + u8 unk0; + u8 unk1; + u32 unk4; +}; + +struct TrainerTowerData +{ + u8 count; + u8 id; + u16 dummy; + u32 checksum; + struct TrainerTowerTrainer trainers[8]; +}; + +bool32 ValidateTrainerTowerData(struct TrainerTowerData * a0); +bool32 CEReaderTool_SaveTrainerTower(struct TrainerTowerData * a0); #endif //GUARD_CEREADER_TOOL_H diff --git a/include/constants/battle.h b/include/constants/battle.h index 25544ba3d..074c0d0cd 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -207,12 +207,12 @@ #define WEATHER_SANDSTORM_TEMPORARY (1 << 3) #define WEATHER_SANDSTORM_PERMANENT (1 << 4) #define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT) -#define WEATHER_SUN_TEMPORARY (1 << 5) -#define WEATHER_SUN_PERMANENT (1 << 6) -#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT) +#define WEATHER_SUNNY_TEMPORARY (1 << 5) +#define WEATHER_SUNNY_PERMANENT (1 << 6) +#define WEATHER_SUNNY_ANY (WEATHER_SUNNY_TEMPORARY | WEATHER_SUNNY_PERMANENT) #define WEATHER_HAIL (1 << 7) #define WEATHER_HAIL_ANY (WEATHER_HAIL) -#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY) +#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUNNY_ANY | WEATHER_HAIL_ANY) // Move Effects #define MOVE_EFFECT_SLEEP 0x1 diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 4c3a45dc6..f55661b91 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -23,10 +23,10 @@ #define AI_EFFECTIVENESS_x0 0 // ai weather -#define AI_WEATHER_SUN 0 -#define AI_WEATHER_RAIN 1 +#define AI_WEATHER_SUNNY 0 +#define AI_WEATHER_RAIN 1 #define AI_WEATHER_SANDSTORM 2 -#define AI_WEATHER_HAIL 3 +#define AI_WEATHER_HAIL 3 // get_how_powerful_move_is #define MOVE_POWER_DISCOURAGED 0 diff --git a/include/constants/fanfares.h b/include/constants/fanfares.h new file mode 100644 index 000000000..21d3af79c --- /dev/null +++ b/include/constants/fanfares.h @@ -0,0 +1,22 @@ +#ifndef GUARD_CONSTANTS_FANFARES_H +#define GUARD_CONSTANTS_FANFARES_H + +enum Fanfares +{ + FANFARE_00, + FANFARE_01, + FANFARE_02, + FANFARE_03, + FANFARE_04, + FANFARE_05, + FANFARE_06, + FANFARE_07, + FANFARE_08, + FANFARE_09, + FANFARE_10, + FANFARE_POKEFLUTE, + FANFARE_KEY_ITEM, + FANFARE_DEX_EVAL +}; + +#endif //GUARD_CONSTANTS_FANFARES_H diff --git a/include/constants/flags.h b/include/constants/flags.h index daa8b3132..209e68aee 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1,6 +1,92 @@ #ifndef GUARD_CONSTANTS_FLAGS_H #define GUARD_CONSTANTS_FLAGS_H +// Sys Flags Maybe +#define FLAG_WHITE_FLUTE_ACTIVE 0x803 +#define FLAG_BLACK_FLUTE_ACTIVE 0x804 + +// World Map Flags +#define FLAG_WORLD_MAP_PALLET_TOWN 0x890 +#define FLAG_WORLD_MAP_VIRIDIAN_CITY 0x891 +#define FLAG_WORLD_MAP_PEWTER_CITY 0x892 +#define FLAG_WORLD_MAP_CERULEAN_CITY 0x893 +#define FLAG_WORLD_MAP_LAVENDER_TOWN 0x894 +#define FLAG_WORLD_MAP_VERMILION_CITY 0x895 +#define FLAG_WORLD_MAP_CELADON_CITY 0x896 +#define FLAG_WORLD_MAP_FUCHSIA_CITY 0x897 +#define FLAG_WORLD_MAP_CINNABAR_ISLAND 0x898 +#define FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR 0x899 +#define FLAG_WORLD_MAP_SAFFRON_CITY_DUPLICATE 0x89a +#define FLAG_WORLD_MAP_ONE_ISLAND 0x89b +#define FLAG_WORLD_MAP_TWO_ISLAND 0x89c +#define FLAG_WORLD_MAP_THREE_ISLAND 0x89d +#define FLAG_WORLD_MAP_FOUR_ISLAND 0x89e +#define FLAG_WORLD_MAP_FIVE_ISLAND 0x89f +#define FLAG_WORLD_MAP_SEVEN_ISLAND 0x8a0 +#define FLAG_WORLD_MAP_SIX_ISLAND 0x8a1 +#define FLAG_WORLD_MAP_ROUTE4_POKEMON_CENTER_1F 0x8a2 +#define FLAG_WORLD_MAP_ROUTE10_POKEMON_CENTER_1F 0x8a3 +#define FLAG_WORLD_MAP_VIRIDIAN_FOREST 0x8a4 +#define FLAG_WORLD_MAP_MT_MOON_1F 0x8a5 +#define FLAG_WORLD_MAP_SSANNE_EXTERIOR 0x8a6 +#define FLAG_WORLD_MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL 0x8a7 +#define FLAG_WORLD_MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL 0x8a8 +#define FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F 0x8a9 +#define FLAG_WORLD_MAP_VICTORY_ROAD_1F 0x8aa +#define FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F 0x8ab +#define FLAG_WORLD_MAP_SILPH_CO_1F 0x8ac +#define FLAG_WORLD_MAP_POKEMON_MANSION_1F 0x8ad +#define FLAG_WORLD_MAP_SAFARI_ZONE_CENTER 0x8ae +#define FLAG_WORLD_MAP_POKEMON_LEAGUE_LORELEIS_ROOM 0x8af +#define FLAG_WORLD_MAP_ROCK_TUNNEL_1F 0x8b0 +#define FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F 0x8b1 +#define FLAG_WORLD_MAP_POKEMON_TOWER_1F 0x8b2 +#define FLAG_WORLD_MAP_CERULEAN_CAVE_1F 0x8b3 +#define FLAG_WORLD_MAP_POWER_PLANT 0x8b4 +#define FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR 0x8b5 +#define FLAG_WORLD_MAP_MT_EMBER_EXTERIOR 0x8b6 +#define FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST 0x8b7 +#define FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE 0x8b8 +#define FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE 0x8b9 +#define FLAG_WORLD_MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY 0x8ba +#define FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F 0x8bb +#define FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE 0x8bc +#define FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH 0x8bd +#define FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE 0x8be +#define FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER 0x8bf +#define FLAG_WORLD_MAP_THREE_ISLAND_DUNSPARCE_TUNNEL 0x8c0 +#define FLAG_WORLD_MAP_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY 0x8c1 +#define FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR 0x8c2 + +// Unknown + +#define FLAG_0x807 0x807 +#define FLAG_0x821 0x821 +#define FLAG_0x822 0x822 +#define FLAG_0x823 0x823 +#define FLAG_0x825 0x825 +#define FLAG_0x827 0x827 +#define FLAG_0x828 0x828 +#define FLAG_0x829 0x829 +#define FLAG_0x82C 0x82C +#define FLAG_0x82F 0x82F +#define FLAG_0x830 0x830 +#define FLAG_SYS_NOT_SOMEONES_PC 0x834 +#define FLAG_0x83C 0x83C +#define FLAG_0x83E 0x83E +#define FLAG_0x841 0x841 +#define FLAG_0x844 0x844 +#define FLAG_0x845 0x845 +#define FLAG_0x846 0x846 +#define FLAG_0x847 0x847 +#define FLAG_0x848 0x848 +#define FLAG_0x849 0x849 +#define FLAG_0x84A 0x84A +#define FLAG_0x84B 0x84B + + +// Emerald Flags + // TODO: Get correct names and numbers #define FLAG_0x001 0x1 @@ -136,7 +222,7 @@ #define FLAG_0x083 0x83 #define FLAG_0x084 0x84 #define FLAG_0x085 0x85 -#define FLAG_PENDING_DAYCARE_EGG 0x86 +#define FLAG_0x086 0x86 #define FLAG_0x087 0x87 #define FLAG_0x088 0x88 #define FLAG_0x089 0x89 @@ -616,7 +702,7 @@ #define FLAG_0x263 0x263 #define FLAG_0x264 0x264 #define FLAG_0x265 0x265 -#define FLAG_0x266 0x266 +#define FLAG_PENDING_DAYCARE_EGG 0x266 #define FLAG_0x267 0x267 #define FLAG_0x268 0x268 #define FLAG_0x269 0x269 diff --git a/include/constants/global.h b/include/constants/global.h new file mode 100644 index 000000000..b1c8fed3e --- /dev/null +++ b/include/constants/global.h @@ -0,0 +1,81 @@ +#ifndef GUARD_CONSTANTS_GLOBAL_H +#define GUARD_CONSTANTS_GLOBAL_H + +#define POKEMON_SLOTS_NUMBER 412 + +#define ITEM_NAME_LENGTH 14 +#define POKEMON_NAME_LENGTH 10 +#define OT_NAME_LENGTH 7 + +enum +{ + VERSION_SAPPHIRE = 1, + VERSION_RUBY = 2, + VERSION_EMERALD = 3, + VERSION_FIRE_RED = 4, + VERSION_LEAF_GREEN = 5, +}; + +enum LanguageId { + LANGUAGE_JAPANESE = 1, + LANGUAGE_ENGLISH = 2, + LANGUAGE_FRENCH = 3, + LANGUAGE_ITALIAN = 4, + LANGUAGE_GERMAN = 5, + // 6 goes unused but the theory is it was meant to be Korean + LANGUAGE_SPANISH = 7, +}; + +#define GAME_LANGUAGE (LANGUAGE_ENGLISH) + +#define PC_ITEMS_COUNT 30 +#define BAG_ITEMS_COUNT 42 +#define BAG_KEYITEMS_COUNT 30 +#define BAG_POKEBALLS_COUNT 13 +#define BAG_TMHM_COUNT 58 +#define BAG_BERRIES_COUNT 43 + +enum +{ + MALE, + FEMALE +}; + +enum +{ + OPTIONS_BUTTON_MODE_NORMAL, + OPTIONS_BUTTON_MODE_LR, + OPTIONS_BUTTON_MODE_L_EQUALS_A +}; + +enum +{ + OPTIONS_TEXT_SPEED_SLOW, + OPTIONS_TEXT_SPEED_MID, + OPTIONS_TEXT_SPEED_FAST +}; + +enum +{ + OPTIONS_SOUND_MONO, + OPTIONS_SOUND_STEREO +}; + +enum +{ + OPTIONS_BATTLE_STYLE_SHIFT, + OPTIONS_BATTLE_STYLE_SET +}; + +enum +{ + POCKET_ITEMS = 1, + POCKET_KEY_ITEMS, + POCKET_POKE_BALLS, + POCKET_TM_CASE, + POCKET_BERRY_POUCH, +}; + +#define NUM_BAG_POCKETS 5 + +#endif //GUARD_CONSTANTS_GLOBAL_H diff --git a/include/constants/items.h b/include/constants/items.h index 64fed0e4c..6959ad358 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -379,6 +379,8 @@ #define ITEM_RUBY 373 #define ITEM_SAPPHIRE 374 +#define ITEM_N_A 375 + // Emerald #define ITEM_MAGMA_EMBLEM 375 #define ITEM_OLD_SEA_MAP 376 @@ -393,11 +395,4 @@ // Check if the item is one that can be used on a Pokemon. #define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) -// POCKETS -#define POCKET_ITEMS 1 -#define POCKET_KEY_ITEMS 2 -#define POCKET_POKE_BALLS 3 -#define POCKET_TM_CASE 4 -#define POCKET_BERRY_POUCH 5 - #endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/constants/layouts.h b/include/constants/layouts.h new file mode 100644 index 000000000..b97ef69cb --- /dev/null +++ b/include/constants/layouts.h @@ -0,0 +1,370 @@ +#ifndef GUARD_CONSTANTS_LAYOUTS_H +#define GUARD_CONSTANTS_LAYOUTS_H + +#define LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_1F 1 +#define LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_2F 2 +#define LAYOUT_PALLET_TOWN_GARYS_HOUSE 3 +#define LAYOUT_UNUSED_LAYOUT_82D54D8 4 +#define LAYOUT_PALLET_TOWN_PROFESSOR_OAKS_LAB 5 +#define LAYOUT_HOUSE1 6 +#define LAYOUT_HOUSE2 7 +#define LAYOUT_POKEMON_CENTER_1F 8 +#define LAYOUT_POKEMON_CENTER_2F 9 +#define LAYOUT_MART 10 +#define LAYOUT_HOUSE3 11 +#define LAYOUT_CERULEAN_CITY_GYM 12 +#define LAYOUT_HOUSE4 13 +#define LAYOUT_UNUSED_LAYOUT_82D6144 14 +#define LAYOUT_CELADON_CITY_GYM 15 +#define LAYOUT_UNUSED_LAYOUT_82D6490 16 +#define LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE 17 +#define LAYOUT_UNUSED_LAYOUT_82D6654 18 +#define LAYOUT_UNUSED_LAYOUT_82D672C 19 +#define LAYOUT_FUCHSIA_CITY_GYM 20 +#define LAYOUT_HOUSE5 21 +#define LAYOUT_UNUSED_LAYOUT_82D6C34 24 +#define LAYOUT_VERMILION_CITY_GYM 25 +#define LAYOUT_CERULEAN_CITY_BIKE_SHOP 26 +#define LAYOUT_CELADON_CITY_GAME_CORNER 27 +#define LAYOUT_PEWTER_CITY_GYM 28 +#define LAYOUT_FOUR_ISLAND_LORELEIS_HOUSE 30 +#define LAYOUT_THREE_ISLAND_HOUSE1 31 +#define LAYOUT_UNUSED_LAYOUT_82D75F0 32 +#define LAYOUT_UNUSED_LAYOUT_82D7674 33 +#define LAYOUT_SAFFRON_CITY_GYM 34 +#define LAYOUT_UNUSED_LAYOUT_82D7CC8 35 +#define LAYOUT_CINNABAR_ISLAND_GYM 36 +#define LAYOUT_VIRIDIAN_CITY_GYM 37 +#define LAYOUT_UNUSED_LAYOUT_82D88C8 46 +#define LAYOUT_UNKNOWN_MAP_00_00 47 +#define LAYOUT_UNKNOWN_MAP_00_01 48 +#define LAYOUT_UNKNOWN_MAP_00_02 49 +#define LAYOUT_UNKNOWN_MAP_00_03 50 +#define LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE 51 +#define LAYOUT_UNUSED_LAYOUT_82D9B24 52 +#define LAYOUT_UNUSED_LAYOUT_82DA7C8 53 +#define LAYOUT_UNUSED_LAYOUT_82DB46C 54 +#define LAYOUT_UNUSED_LAYOUT_82DB4F0 55 +#define LAYOUT_UNUSED_LAYOUT_82DBBE0 57 +#define LAYOUT_UNUSED_LAYOUT_82DBDD8 62 +#define LAYOUT_UNUSED_LAYOUT_82DBFB8 63 +#define LAYOUT_UNUSED_LAYOUT_82DC4EC 64 +#define LAYOUT_UNUSED_LAYOUT_82DC60C 65 +#define LAYOUT_UNUSED_LAYOUT_82DC72C 66 +#define LAYOUT_UNUSED_LAYOUT_82DC84C 67 +#define LAYOUT_UNUSED_LAYOUT_82DCA70 68 +#define LAYOUT_UNUSED_LAYOUT_82DCB44 69 +#define LAYOUT_UNUSED_LAYOUT_82DCC40 70 +#define LAYOUT_UNUSED_LAYOUT_82DCCD4 71 +#define LAYOUT_UNUSED_LAYOUT_82DCD68 72 +#define LAYOUT_UNUSED_LAYOUT_82DCDFC 73 +#define LAYOUT_UNUSED_LAYOUT_82DCF00 74 +#define LAYOUT_UNUSED_LAYOUT_82DD004 75 +#define LAYOUT_UNUSED_LAYOUT_82DD0DC 77 +#define LAYOUT_PALLET_TOWN 78 +#define LAYOUT_VIRIDIAN_CITY 79 +#define LAYOUT_PEWTER_CITY 80 +#define LAYOUT_CERULEAN_CITY 81 +#define LAYOUT_LAVENDER_TOWN 82 +#define LAYOUT_VERMILION_CITY 83 +#define LAYOUT_CELADON_CITY 84 +#define LAYOUT_FUCHSIA_CITY 85 +#define LAYOUT_CINNABAR_ISLAND 86 +#define LAYOUT_INDIGO_PLATEAU_EXTERIOR 87 +#define LAYOUT_SAFFRON_CITY 88 +#define LAYOUT_ROUTE1 89 +#define LAYOUT_ROUTE2 90 +#define LAYOUT_ROUTE3 91 +#define LAYOUT_ROUTE4 92 +#define LAYOUT_ROUTE5 93 +#define LAYOUT_ROUTE6 94 +#define LAYOUT_ROUTE7 95 +#define LAYOUT_ROUTE8 96 +#define LAYOUT_ROUTE9 97 +#define LAYOUT_ROUTE10 98 +#define LAYOUT_ROUTE11 99 +#define LAYOUT_ROUTE12 100 +#define LAYOUT_ROUTE13 101 +#define LAYOUT_ROUTE14 102 +#define LAYOUT_ROUTE15 103 +#define LAYOUT_ROUTE16 104 +#define LAYOUT_ROUTE17 105 +#define LAYOUT_ROUTE18 106 +#define LAYOUT_ROUTE19 107 +#define LAYOUT_ROUTE20 108 +#define LAYOUT_ROUTE21_NORTH 109 +#define LAYOUT_ROUTE22 110 +#define LAYOUT_ROUTE23 111 +#define LAYOUT_ROUTE24 112 +#define LAYOUT_ROUTE25 113 +#define LAYOUT_MT_MOON_1F 114 +#define LAYOUT_MT_MOON_B1F 115 +#define LAYOUT_MT_MOON_B2F 116 +#define LAYOUT_VIRIDIAN_FOREST 117 +#define LAYOUT_SSANNE_EXTERIOR 118 +#define LAYOUT_SSANNE_1F_CORRIDOR 119 +#define LAYOUT_SSANNE_2F_CORRIDOR 120 +#define LAYOUT_SSANNE_3F_CORRIDOR 121 +#define LAYOUT_SSANNE_B1F_CORRIDOR 122 +#define LAYOUT_SSANNE_DECK 123 +#define LAYOUT_DIGLETTS_CAVE_B1F 124 +#define LAYOUT_VICTORY_ROAD_1F 125 +#define LAYOUT_VICTORY_ROAD_2F 126 +#define LAYOUT_VICTORY_ROAD_3F 127 +#define LAYOUT_ROCKET_HIDEOUT_B1F 128 +#define LAYOUT_ROCKET_HIDEOUT_B2F 129 +#define LAYOUT_ROCKET_HIDEOUT_B3F 130 +#define LAYOUT_ROCKET_HIDEOUT_B4F 131 +#define LAYOUT_SILPH_CO_1F 132 +#define LAYOUT_SILPH_CO_2F 133 +#define LAYOUT_SILPH_CO_3F 134 +#define LAYOUT_SILPH_CO_4F 135 +#define LAYOUT_SILPH_CO_5F 136 +#define LAYOUT_SILPH_CO_6F 137 +#define LAYOUT_SILPH_CO_7F 138 +#define LAYOUT_SILPH_CO_8F 139 +#define LAYOUT_SILPH_CO_9F 140 +#define LAYOUT_SILPH_CO_10F 141 +#define LAYOUT_SILPH_CO_11F 142 +#define LAYOUT_POKEMON_MANSION_1F 143 +#define LAYOUT_POKEMON_MANSION_2F 144 +#define LAYOUT_POKEMON_MANSION_3F 145 +#define LAYOUT_POKEMON_MANSION_B1F 146 +#define LAYOUT_SAFARI_ZONE_CENTER 147 +#define LAYOUT_SAFARI_ZONE_EAST 148 +#define LAYOUT_SAFARI_ZONE_NORTH 149 +#define LAYOUT_SAFARI_ZONE_WEST 150 +#define LAYOUT_CERULEAN_CAVE_1F 151 +#define LAYOUT_CERULEAN_CAVE_2F 152 +#define LAYOUT_CERULEAN_CAVE_B1F 153 +#define LAYOUT_ROCK_TUNNEL_1F 154 +#define LAYOUT_ROCK_TUNNEL_B1F 155 +#define LAYOUT_SEAFOAM_ISLANDS_1F 156 +#define LAYOUT_SEAFOAM_ISLANDS_B1F 157 +#define LAYOUT_SEAFOAM_ISLANDS_B2F 158 +#define LAYOUT_SEAFOAM_ISLANDS_B3F 159 +#define LAYOUT_SEAFOAM_ISLANDS_B4F 160 +#define LAYOUT_POKEMON_TOWER_1F 161 +#define LAYOUT_POKEMON_TOWER_2F 162 +#define LAYOUT_POKEMON_TOWER_3F 163 +#define LAYOUT_POKEMON_TOWER_4F 164 +#define LAYOUT_POKEMON_TOWER_5F 165 +#define LAYOUT_POKEMON_TOWER_6F 166 +#define LAYOUT_POKEMON_TOWER_7F 167 +#define LAYOUT_POWER_PLANT 168 +#define LAYOUT_ROUTE25_SEA_COTTAGE 169 +#define LAYOUT_SSANNE_KITCHEN 170 +#define LAYOUT_SSANNE_CAPTAINS_OFFICE 171 +#define LAYOUT_UNDERGROUND_PATH_ENTRANCE 172 +#define LAYOUT_UNDERGROUND_PATH_EAST_WEST_TUNNEL 173 +#define LAYOUT_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL 174 +#define LAYOUT_ROUTE12_NORTH_ENTRANCE_1F 176 +#define LAYOUT_SSANNE_ROOM1 177 +#define LAYOUT_SSANNE_ROOM2 178 +#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR 179 +#define LAYOUT_PEWTER_CITY_MUSEUM_1F 180 +#define LAYOUT_PEWTER_CITY_MUSEUM_2F 181 +#define LAYOUT_CERULEAN_CITY_HOUSE2 182 +#define LAYOUT_CERULEAN_CITY_HOUSE1 183 +#define LAYOUT_CELADON_CITY_CONDOMINIUMS_1F 184 +#define LAYOUT_CELADON_CITY_CONDOMINIUMS_2F 185 +#define LAYOUT_CELADON_CITY_CONDOMINIUMS_3F 186 +#define LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF 187 +#define LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM 188 +#define LAYOUT_CELADON_CITY_GAME_CORNER_PRIZE_ROOM 189 +#define LAYOUT_CELADON_CITY_RESTAURANT 190 +#define LAYOUT_CELADON_CITY_HOTEL 191 +#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_1F 192 +#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_2F 193 +#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_3F 194 +#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_4F 195 +#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_5F 196 +#define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ROOF 197 +#define LAYOUT_SAFARI_ZONE_BUILDING 198 +#define LAYOUT_SAFARI_ZONE_SECRET_HOUSE 199 +#define LAYOUT_FUCHSIA_CITY_ZOO_BUILDING 200 +#define LAYOUT_FUCHSIA_CITY_BUILDING1 201 +#define LAYOUT_FUCHSIA_CITY_HOUSE2 202 +#define LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE 203 +#define LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE 204 +#define LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM 205 +#define LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM 206 +#define LAYOUT_SAFFRON_CITY_DUPLICATE 207 +#define LAYOUT_SAFFRON_CITY_NORTH_SOUTH_ENTRANCE 208 +#define LAYOUT_SAFFRON_CITY_EAST_WEST_ENTRANCE 209 +#define LAYOUT_DIGLETTS_CAVE_NORTH_ENTRANCE 210 +#define LAYOUT_DIGLETTS_CAVE_SOUTH_ENTRANCE 211 +#define LAYOUT_INDIGO_PLATEAU_POKEMON_CENTER_1F 212 +#define LAYOUT_POKEMON_LEAGUE_LORELEIS_ROOM 213 +#define LAYOUT_POKEMON_LEAGUE_BRUNOS_ROOM 214 +#define LAYOUT_POKEMON_LEAGUE_AGATHAS_ROOM 215 +#define LAYOUT_POKEMON_LEAGUE_LANCES_ROOM 216 +#define LAYOUT_POKEMON_LEAGUE_CHAMPIONS_ROOM 217 +#define LAYOUT_POKEMON_LEAGUE_HALL_OF_FAME 218 +#define LAYOUT_ROUTE21_SOUTH 219 +#define LAYOUT_ENTRANCE_2F 220 +#define LAYOUT_ROUTE2_ENTRANCE 221 +#define LAYOUT_ROUTE22_NORTH_ENTRANCE 222 +#define LAYOUT_ROUTE16_NORTH_ENTRANCE_1F 223 +#define LAYOUT_ENTRANCE_1F 224 +#define LAYOUT_ROCKET_HIDEOUT_ELEVATOR 225 +#define LAYOUT_SAFFRON_CITY_HOUSE1_1F 226 +#define LAYOUT_SAFFRON_CITY_HOUSE1_2F 227 +#define LAYOUT_SAFFRON_CITY_DOJO 228 +#define LAYOUT_SILPH_CO_ELEVATOR 229 +#define LAYOUT_ONE_ISLAND 230 +#define LAYOUT_TWO_ISLAND 231 +#define LAYOUT_THREE_ISLAND 232 +#define LAYOUT_FOUR_ISLAND 233 +#define LAYOUT_FIVE_ISLAND 234 +#define LAYOUT_SEVEN_ISLAND 235 +#define LAYOUT_SIX_ISLAND 236 +#define LAYOUT_ONE_ISLAND_KINDLE_ROAD 237 +#define LAYOUT_ONE_ISLAND_TREASURE_BEACH 238 +#define LAYOUT_TWO_ISLAND_CAPE_BRINK 239 +#define LAYOUT_THREE_ISLAND_BOND_BRIDGE 240 +#define LAYOUT_THREE_ISLAND_PORT 241 +#define LAYOUT_UNKNOWN_MAP_03_50 242 +#define LAYOUT_UNKNOWN_MAP_03_51 243 +#define LAYOUT_UNKNOWN_MAP_03_52 244 +#define LAYOUT_UNKNOWN_MAP_03_53 245 +#define LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS 246 +#define LAYOUT_FIVE_ISLAND_WATER_LABYRINTH 247 +#define LAYOUT_FIVE_ISLAND_MEADOW 248 +#define LAYOUT_FIVE_ISLAND_MEMORIAL_PILLAR 249 +#define LAYOUT_SIX_ISLAND_OUTCAST_ISLAND 250 +#define LAYOUT_SIX_ISLAND_GREEN_PATH 251 +#define LAYOUT_SIX_ISLAND_WATER_PATH 252 +#define LAYOUT_SIX_ISLAND_RUIN_VALLEY 253 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER 254 +#define LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE 255 +#define LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON 256 +#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS 257 +#define LAYOUT_UNUSED_LAYOUT_833614C 258 +#define LAYOUT_UNUSED_LAYOUT_83377F0 259 +#define LAYOUT_UNUSED_LAYOUT_8338354 260 +#define LAYOUT_UNUSED_LAYOUT_8338738 261 +#define LAYOUT_UNKNOWN_MAP_00_04 262 +#define LAYOUT_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB 263 +#define LAYOUT_UNUSED_LAYOUT_8338B4C 264 +#define LAYOUT_SEVEN_ISLAND_HOUSE_ROOM2 265 +#define LAYOUT_VIRIDIAN_CITY_HOUSE2 266 +#define LAYOUT_UNUSED_LAYOUT_8338E90 267 +#define LAYOUT_UNUSED_LAYOUT_833902C 268 +#define LAYOUT_MT_EMBER_RUBY_PATH_B4F 269 +#define LAYOUT_THREE_ISLAND_BERRY_FOREST 270 +#define LAYOUT_ONE_ISLAND_POKEMON_CENTER_1F 271 +#define LAYOUT_TWO_ISLAND_JOYFUL_GAME_CORNER 272 +#define LAYOUT_VERMILION_CITY_POKEMON_FAN_CLUB 273 +#define LAYOUT_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE 274 +#define LAYOUT_ROUTE5_POKEMON_DAY_CARE 275 +#define LAYOUT_VIRIDIAN_CITY_HOUSE1 276 +#define LAYOUT_FOUR_ISLAND_POKEMON_DAY_CARE 277 +#define LAYOUT_UNUSED_LAYOUT_833B6EC 278 +#define LAYOUT_UNUSED_LAYOUT_833BE30 279 +#define LAYOUT_MT_EMBER_EXTERIOR 280 +#define LAYOUT_MT_EMBER_SUMMIT 281 +#define LAYOUT_MT_EMBER_SUMMIT_PATH_1F 282 +#define LAYOUT_MT_EMBER_SUMMIT_PATH_2F 283 +#define LAYOUT_MT_EMBER_SUMMIT_PATH_3F 284 +#define LAYOUT_MT_EMBER_RUBY_PATH_1F 285 +#define LAYOUT_MT_EMBER_RUBY_PATH_B1F 286 +#define LAYOUT_MT_EMBER_RUBY_PATH_B2F 287 +#define LAYOUT_MT_EMBER_RUBY_PATH_B3F 288 +#define LAYOUT_MT_EMBER_RUBY_PATH_B1F_STAIRS 289 +#define LAYOUT_MT_EMBER_RUBY_PATH_B2F_STAIRS 290 +#define LAYOUT_MT_EMBER_RUBY_PATH_B5F 291 +#define LAYOUT_FIVE_ISLAND_ROCKET_WAREHOUSE 292 +#define LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE 293 +#define LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_1F 294 +#define LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_B1F 295 +#define LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_BACK 296 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY 297 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_1F 298 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_2F 299 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_3F 300 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_4F 301 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_5F 302 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_6F 303 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_7F 304 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_8F 305 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_ROOF 306 +#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR 307 +#define LAYOUT_CERULEAN_CITY_HOUSE5 308 +#define LAYOUT_SIX_ISLAND_DOTTED_HOLE_1F 309 +#define LAYOUT_SIX_ISLAND_DOTTED_HOLE_B1F 310 +#define LAYOUT_SIX_ISLAND_DOTTED_HOLE_B2F 311 +#define LAYOUT_SIX_ISLAND_DOTTED_HOLE_B3F 312 +#define LAYOUT_SIX_ISLAND_DOTTED_HOLE_B4F 313 +#define LAYOUT_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM 314 +#define LAYOUT_ISLAND_HARBOR 315 +#define LAYOUT_ONE_ISLAND_POKEMON_CENTER_2F 316 +#define LAYOUT_SIX_ISLAND_PATTERN_BUSH 317 +#define LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL 318 +#define LAYOUT_UNUSED_LAYOUT_83453C0 319 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ENTRANCE 320 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM1 321 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM2 322 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM3 323 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM4 324 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM5 325 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM6 326 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM7 327 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM8 328 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM9 329 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM10 330 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM11 331 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM12 332 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM13 333 +#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM14 334 +#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER 335 +#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER 336 +#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER 337 +#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER 338 +#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER 339 +#define LAYOUT_SIX_ISLAND_ALTERING_CAVE 340 +#define LAYOUT_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY 341 +#define LAYOUT_BIRTH_ISLAND_EXTERIOR 342 +#define LAYOUT_NAVEL_ROCK_EXTERIOR 343 +#define LAYOUT_NAVEL_ROCK_1F 344 +#define LAYOUT_NAVEL_ROCK_SUMMIT 345 +#define LAYOUT_NAVEL_ROCK_BASE 346 +#define LAYOUT_NAVEL_ROCK_SUMMIT_PATH_2F 347 +#define LAYOUT_NAVEL_ROCK_SUMMIT_PATH_3F 348 +#define LAYOUT_NAVEL_ROCK_SUMMIT_PATH_4F 349 +#define LAYOUT_NAVEL_ROCK_SUMMIT_PATH_5F 350 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B1F 351 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B2F 352 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B3F 353 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B4F 354 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B5F 355 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B6F 356 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B7F 357 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B8F 358 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B9F 359 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B10F 360 +#define LAYOUT_NAVEL_ROCK_BASE_PATH_B11F 361 +#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER 362 +#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER 363 +#define LAYOUT_NAVEL_ROCK_B1F 364 +#define LAYOUT_NAVEL_ROCK_FORK 365 +#define LAYOUT_UNUSED_LAYOUT_834BC2C 366 +#define LAYOUT_UNUSED_LAYOUT_834BEB4 367 +#define LAYOUT_UNUSED_LAYOUT_834C13C 368 +#define LAYOUT_UNUSED_LAYOUT_834C3C4 369 +#define LAYOUT_UNUSED_LAYOUT_834C64C 370 +#define LAYOUT_UNUSED_LAYOUT_834C8D4 371 +#define LAYOUT_UNUSED_LAYOUT_834CB5C 372 +#define LAYOUT_UNUSED_LAYOUT_834CDE4 373 +#define LAYOUT_UNUSED_LAYOUT_834D06C 374 +#define LAYOUT_UNUSED_LAYOUT_834D2F4 375 +#define LAYOUT_UNUSED_LAYOUT_834D57C 376 +#define LAYOUT_UNUSED_LAYOUT_834D804 377 +#define LAYOUT_UNUSED_LAYOUT_834DA8C 378 +#define LAYOUT_UNUSED_LAYOUT_834DD14 379 +#define LAYOUT_UNUSED_LAYOUT_834DF9C 380 +#define LAYOUT_UNUSED_LAYOUT_834E224 381 +#define LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1 382 +#define LAYOUT_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA 383 + +#endif // GUARD_CONSTANTS_LAYOUTS_H diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h new file mode 100644 index 000000000..d769520ca --- /dev/null +++ b/include/constants/map_groups.h @@ -0,0 +1,517 @@ +#ifndef GUARD_CONSTANTS_MAP_GROUPS_H +#define GUARD_CONSTANTS_MAP_GROUPS_H + +// Map Group 0 +#define MAP_UNKNOWN_MAP_00_00 (0 | (0 << 8)) +#define MAP_UNKNOWN_MAP_00_01 (1 | (0 << 8)) +#define MAP_UNKNOWN_MAP_00_02 (2 | (0 << 8)) +#define MAP_UNKNOWN_MAP_00_03 (3 | (0 << 8)) +#define MAP_UNKNOWN_MAP_00_04 (4 | (0 << 8)) + +// Map Group 1 +#define MAP_VIRIDIAN_FOREST (0 | (1 << 8)) +#define MAP_MT_MOON_1F (1 | (1 << 8)) +#define MAP_MT_MOON_B1F (2 | (1 << 8)) +#define MAP_MT_MOON_B2F (3 | (1 << 8)) +#define MAP_SSANNE_EXTERIOR (4 | (1 << 8)) +#define MAP_SSANNE_1F_CORRIDOR (5 | (1 << 8)) +#define MAP_SSANNE_2F_CORRIDOR (6 | (1 << 8)) +#define MAP_SSANNE_3F_CORRIDOR (7 | (1 << 8)) +#define MAP_SSANNE_B1F_CORRIDOR (8 | (1 << 8)) +#define MAP_SSANNE_DECK (9 | (1 << 8)) +#define MAP_SSANNE_KITCHEN (10 | (1 << 8)) +#define MAP_SSANNE_CAPTAINS_OFFICE (11 | (1 << 8)) +#define MAP_SSANNE_1F_ROOM1 (12 | (1 << 8)) +#define MAP_SSANNE_1F_ROOM2 (13 | (1 << 8)) +#define MAP_SSANNE_1F_ROOM3 (14 | (1 << 8)) +#define MAP_SSANNE_1F_ROOM4 (15 | (1 << 8)) +#define MAP_SSANNE_1F_ROOM5 (16 | (1 << 8)) +#define MAP_SSANNE_1F_ROOM7 (17 | (1 << 8)) +#define MAP_SSANNE_2F_ROOM1 (18 | (1 << 8)) +#define MAP_SSANNE_2F_ROOM2 (19 | (1 << 8)) +#define MAP_SSANNE_2F_ROOM3 (20 | (1 << 8)) +#define MAP_SSANNE_2F_ROOM4 (21 | (1 << 8)) +#define MAP_SSANNE_2F_ROOM5 (22 | (1 << 8)) +#define MAP_SSANNE_2F_ROOM6 (23 | (1 << 8)) +#define MAP_SSANNE_B1F_ROOM1 (24 | (1 << 8)) +#define MAP_SSANNE_B1F_ROOM2 (25 | (1 << 8)) +#define MAP_SSANNE_B1F_ROOM3 (26 | (1 << 8)) +#define MAP_SSANNE_B1F_ROOM4 (27 | (1 << 8)) +#define MAP_SSANNE_B1F_ROOM5 (28 | (1 << 8)) +#define MAP_SSANNE_1F_ROOM6 (29 | (1 << 8)) +#define MAP_UNDERGROUND_PATH_NORTH_ENTRANCE (30 | (1 << 8)) +#define MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL (31 | (1 << 8)) +#define MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE (32 | (1 << 8)) +#define MAP_UNDERGROUND_PATH_WEST_ENTRANCE (33 | (1 << 8)) +#define MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL (34 | (1 << 8)) +#define MAP_UNDERGROUND_PATH_EAST_ENTRANCE (35 | (1 << 8)) +#define MAP_DIGLETTS_CAVE_NORTH_ENTRANCE (36 | (1 << 8)) +#define MAP_DIGLETTS_CAVE_B1F (37 | (1 << 8)) +#define MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE (38 | (1 << 8)) +#define MAP_VICTORY_ROAD_1F (39 | (1 << 8)) +#define MAP_VICTORY_ROAD_2F (40 | (1 << 8)) +#define MAP_VICTORY_ROAD_3F (41 | (1 << 8)) +#define MAP_ROCKET_HIDEOUT_B1F (42 | (1 << 8)) +#define MAP_ROCKET_HIDEOUT_B2F (43 | (1 << 8)) +#define MAP_ROCKET_HIDEOUT_B3F (44 | (1 << 8)) +#define MAP_ROCKET_HIDEOUT_B4F (45 | (1 << 8)) +#define MAP_ROCKET_HIDEOUT_ELEVATOR (46 | (1 << 8)) +#define MAP_SILPH_CO_1F (47 | (1 << 8)) +#define MAP_SILPH_CO_2F (48 | (1 << 8)) +#define MAP_SILPH_CO_3F (49 | (1 << 8)) +#define MAP_SILPH_CO_4F (50 | (1 << 8)) +#define MAP_SILPH_CO_5F (51 | (1 << 8)) +#define MAP_SILPH_CO_6F (52 | (1 << 8)) +#define MAP_SILPH_CO_7F (53 | (1 << 8)) +#define MAP_SILPH_CO_8F (54 | (1 << 8)) +#define MAP_SILPH_CO_9F (55 | (1 << 8)) +#define MAP_SILPH_CO_10F (56 | (1 << 8)) +#define MAP_SILPH_CO_11F (57 | (1 << 8)) +#define MAP_SILPH_CO_ELEVATOR (58 | (1 << 8)) +#define MAP_POKEMON_MANSION_1F (59 | (1 << 8)) +#define MAP_POKEMON_MANSION_2F (60 | (1 << 8)) +#define MAP_POKEMON_MANSION_3F (61 | (1 << 8)) +#define MAP_POKEMON_MANSION_B1F (62 | (1 << 8)) +#define MAP_SAFARI_ZONE_CENTER (63 | (1 << 8)) +#define MAP_SAFARI_ZONE_EAST (64 | (1 << 8)) +#define MAP_SAFARI_ZONE_NORTH (65 | (1 << 8)) +#define MAP_SAFARI_ZONE_WEST (66 | (1 << 8)) +#define MAP_SAFARI_ZONE_BUILDING1 (67 | (1 << 8)) +#define MAP_SAFARI_ZONE_BUILDING2 (68 | (1 << 8)) +#define MAP_SAFARI_ZONE_BUILDING3 (69 | (1 << 8)) +#define MAP_SAFARI_ZONE_BUILDING4 (70 | (1 << 8)) +#define MAP_SAFARI_ZONE_SECRET_HOUSE (71 | (1 << 8)) +#define MAP_CERULEAN_CAVE_1F (72 | (1 << 8)) +#define MAP_CERULEAN_CAVE_2F (73 | (1 << 8)) +#define MAP_CERULEAN_CAVE_B1F (74 | (1 << 8)) +#define MAP_POKEMON_LEAGUE_LORELEIS_ROOM (75 | (1 << 8)) +#define MAP_POKEMON_LEAGUE_BRUNOS_ROOM (76 | (1 << 8)) +#define MAP_POKEMON_LEAGUE_AGATHAS_ROOM (77 | (1 << 8)) +#define MAP_POKEMON_LEAGUE_LANCES_ROOM (78 | (1 << 8)) +#define MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM (79 | (1 << 8)) +#define MAP_POKEMON_LEAGUE_HALL_OF_FAME (80 | (1 << 8)) +#define MAP_ROCK_TUNNEL_1F (81 | (1 << 8)) +#define MAP_ROCK_TUNNEL_B1F (82 | (1 << 8)) +#define MAP_SEAFOAM_ISLANDS_1F (83 | (1 << 8)) +#define MAP_SEAFOAM_ISLANDS_B1F (84 | (1 << 8)) +#define MAP_SEAFOAM_ISLANDS_B2F (85 | (1 << 8)) +#define MAP_SEAFOAM_ISLANDS_B3F (86 | (1 << 8)) +#define MAP_SEAFOAM_ISLANDS_B4F (87 | (1 << 8)) +#define MAP_POKEMON_TOWER_1F (88 | (1 << 8)) +#define MAP_POKEMON_TOWER_2F (89 | (1 << 8)) +#define MAP_POKEMON_TOWER_3F (90 | (1 << 8)) +#define MAP_POKEMON_TOWER_4F (91 | (1 << 8)) +#define MAP_POKEMON_TOWER_5F (92 | (1 << 8)) +#define MAP_POKEMON_TOWER_6F (93 | (1 << 8)) +#define MAP_POKEMON_TOWER_7F (94 | (1 << 8)) +#define MAP_POWER_PLANT (95 | (1 << 8)) +#define MAP_MT_EMBER_RUBY_PATH_B4F (96 | (1 << 8)) +#define MAP_MT_EMBER_EXTERIOR (97 | (1 << 8)) +#define MAP_MT_EMBER_SUMMIT_PATH_1F (98 | (1 << 8)) +#define MAP_MT_EMBER_SUMMIT_PATH_2F (99 | (1 << 8)) +#define MAP_MT_EMBER_SUMMIT_PATH_3F (100 | (1 << 8)) +#define MAP_MT_EMBER_SUMMIT (101 | (1 << 8)) +#define MAP_MT_EMBER_RUBY_PATH_B5F (102 | (1 << 8)) +#define MAP_MT_EMBER_RUBY_PATH_1F (103 | (1 << 8)) +#define MAP_MT_EMBER_RUBY_PATH_B1F (104 | (1 << 8)) +#define MAP_MT_EMBER_RUBY_PATH_B2F (105 | (1 << 8)) +#define MAP_MT_EMBER_RUBY_PATH_B3F (106 | (1 << 8)) +#define MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS (107 | (1 << 8)) +#define MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS (108 | (1 << 8)) +#define MAP_THREE_ISLAND_BERRY_FOREST (109 | (1 << 8)) +#define MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE (110 | (1 << 8)) +#define MAP_FOUR_ISLAND_ICEFALL_CAVE_1F (111 | (1 << 8)) +#define MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F (112 | (1 << 8)) +#define MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK (113 | (1 << 8)) +#define MAP_FIVE_ISLAND_ROCKET_WAREHOUSE (114 | (1 << 8)) +#define MAP_SIX_ISLAND_DOTTED_HOLE_1F (115 | (1 << 8)) +#define MAP_SIX_ISLAND_DOTTED_HOLE_B1F (116 | (1 << 8)) +#define MAP_SIX_ISLAND_DOTTED_HOLE_B2F (117 | (1 << 8)) +#define MAP_SIX_ISLAND_DOTTED_HOLE_B3F (118 | (1 << 8)) +#define MAP_SIX_ISLAND_DOTTED_HOLE_B4F (119 | (1 << 8)) +#define MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM (120 | (1 << 8)) +#define MAP_SIX_ISLAND_PATTERN_BUSH (121 | (1 << 8)) +#define MAP_SIX_ISLAND_ALTERING_CAVE (122 | (1 << 8)) + +// Map Group 2 +#define MAP_NAVEL_ROCK_EXTERIOR (0 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_1F (1 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_2F (2 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_3F (3 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_4F (4 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_5F (5 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_6F (6 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_7F (7 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_8F (8 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_ROOF (9 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY (10 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR (11 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE (12 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM1 (13 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM2 (14 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM3 (15 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM4 (16 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM5 (17 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM6 (18 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM7 (19 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM8 (20 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM9 (21 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM10 (22 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM11 (23 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM12 (24 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM13 (25 | (2 << 8)) +#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM14 (26 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER (27 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER (28 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER (29 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER (30 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER (31 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER (32 | (2 << 8)) +#define MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER (33 | (2 << 8)) +#define MAP_THREE_ISLAND_DUNSPARCE_TUNNEL (34 | (2 << 8)) +#define MAP_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY (35 | (2 << 8)) +#define MAP_NAVEL_ROCK_1F (36 | (2 << 8)) +#define MAP_NAVEL_ROCK_SUMMIT (37 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE (38 | (2 << 8)) +#define MAP_NAVEL_ROCK_SUMMIT_PATH_2F (39 | (2 << 8)) +#define MAP_NAVEL_ROCK_SUMMIT_PATH_3F (40 | (2 << 8)) +#define MAP_NAVEL_ROCK_SUMMIT_PATH_4F (41 | (2 << 8)) +#define MAP_NAVEL_ROCK_SUMMIT_PATH_5F (42 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B1F (43 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B2F (44 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B3F (45 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B4F (46 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B5F (47 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B6F (48 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B7F (49 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B8F (50 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B9F (51 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B10F (52 | (2 << 8)) +#define MAP_NAVEL_ROCK_BASE_PATH_B11F (53 | (2 << 8)) +#define MAP_NAVEL_ROCK_B1F (54 | (2 << 8)) +#define MAP_NAVEL_ROCK_FORK (55 | (2 << 8)) +#define MAP_BIRTH_ISLAND_EXTERIOR (56 | (2 << 8)) +#define MAP_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA (57 | (2 << 8)) +#define MAP_BIRTH_ISLAND_HARBOR (58 | (2 << 8)) +#define MAP_NAVEL_ROCK_HARBOR (59 | (2 << 8)) + +// Map Group 3 +#define MAP_PALLET_TOWN (0 | (3 << 8)) +#define MAP_VIRIDIAN_CITY (1 | (3 << 8)) +#define MAP_PEWTER_CITY (2 | (3 << 8)) +#define MAP_CERULEAN_CITY (3 | (3 << 8)) +#define MAP_LAVENDER_TOWN (4 | (3 << 8)) +#define MAP_VERMILION_CITY (5 | (3 << 8)) +#define MAP_CELADON_CITY (6 | (3 << 8)) +#define MAP_FUCHSIA_CITY (7 | (3 << 8)) +#define MAP_CINNABAR_ISLAND (8 | (3 << 8)) +#define MAP_INDIGO_PLATEAU_EXTERIOR (9 | (3 << 8)) +#define MAP_SAFFRON_CITY_DUPLICATE (10 | (3 << 8)) +#define MAP_SAFFRON_CITY (11 | (3 << 8)) +#define MAP_ONE_ISLAND (12 | (3 << 8)) +#define MAP_TWO_ISLAND (13 | (3 << 8)) +#define MAP_THREE_ISLAND (14 | (3 << 8)) +#define MAP_FOUR_ISLAND (15 | (3 << 8)) +#define MAP_FIVE_ISLAND (16 | (3 << 8)) +#define MAP_SEVEN_ISLAND (17 | (3 << 8)) +#define MAP_SIX_ISLAND (18 | (3 << 8)) +#define MAP_ROUTE1 (19 | (3 << 8)) +#define MAP_ROUTE2 (20 | (3 << 8)) +#define MAP_ROUTE3 (21 | (3 << 8)) +#define MAP_ROUTE4 (22 | (3 << 8)) +#define MAP_ROUTE5 (23 | (3 << 8)) +#define MAP_ROUTE6 (24 | (3 << 8)) +#define MAP_ROUTE7 (25 | (3 << 8)) +#define MAP_ROUTE8 (26 | (3 << 8)) +#define MAP_ROUTE9 (27 | (3 << 8)) +#define MAP_ROUTE10 (28 | (3 << 8)) +#define MAP_ROUTE11 (29 | (3 << 8)) +#define MAP_ROUTE12 (30 | (3 << 8)) +#define MAP_ROUTE13 (31 | (3 << 8)) +#define MAP_ROUTE14 (32 | (3 << 8)) +#define MAP_ROUTE15 (33 | (3 << 8)) +#define MAP_ROUTE16 (34 | (3 << 8)) +#define MAP_ROUTE17 (35 | (3 << 8)) +#define MAP_ROUTE18 (36 | (3 << 8)) +#define MAP_ROUTE19 (37 | (3 << 8)) +#define MAP_ROUTE20 (38 | (3 << 8)) +#define MAP_ROUTE21_NORTH (39 | (3 << 8)) +#define MAP_ROUTE21_SOUTH (40 | (3 << 8)) +#define MAP_ROUTE22 (41 | (3 << 8)) +#define MAP_ROUTE23 (42 | (3 << 8)) +#define MAP_ROUTE24 (43 | (3 << 8)) +#define MAP_ROUTE25 (44 | (3 << 8)) +#define MAP_ONE_ISLAND_KINDLE_ROAD (45 | (3 << 8)) +#define MAP_ONE_ISLAND_TREASURE_BEACH (46 | (3 << 8)) +#define MAP_TWO_ISLAND_CAPE_BRINK (47 | (3 << 8)) +#define MAP_THREE_ISLAND_BOND_BRIDGE (48 | (3 << 8)) +#define MAP_THREE_ISLAND_PORT (49 | (3 << 8)) +#define MAP_UNKNOWN_MAP_03_50 (50 | (3 << 8)) +#define MAP_UNKNOWN_MAP_03_51 (51 | (3 << 8)) +#define MAP_UNKNOWN_MAP_03_52 (52 | (3 << 8)) +#define MAP_UNKNOWN_MAP_03_53 (53 | (3 << 8)) +#define MAP_FIVE_ISLAND_RESORT_GORGEOUS (54 | (3 << 8)) +#define MAP_FIVE_ISLAND_WATER_LABYRINTH (55 | (3 << 8)) +#define MAP_FIVE_ISLAND_MEADOW (56 | (3 << 8)) +#define MAP_FIVE_ISLAND_MEMORIAL_PILLAR (57 | (3 << 8)) +#define MAP_SIX_ISLAND_OUTCAST_ISLAND (58 | (3 << 8)) +#define MAP_SIX_ISLAND_GREEN_PATH (59 | (3 << 8)) +#define MAP_SIX_ISLAND_WATER_PATH (60 | (3 << 8)) +#define MAP_SIX_ISLAND_RUIN_VALLEY (61 | (3 << 8)) +#define MAP_SEVEN_ISLAND_TRAINER_TOWER (62 | (3 << 8)) +#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE (63 | (3 << 8)) +#define MAP_SEVEN_ISLAND_SEVAULT_CANYON (64 | (3 << 8)) +#define MAP_SEVEN_ISLAND_TANOBY_RUINS (65 | (3 << 8)) + +// Map Group 4 +#define MAP_PALLET_TOWN_PLAYERS_HOUSE_1F (0 | (4 << 8)) +#define MAP_PALLET_TOWN_PLAYERS_HOUSE_2F (1 | (4 << 8)) +#define MAP_PALLET_TOWN_GARYS_HOUSE (2 | (4 << 8)) +#define MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB (3 | (4 << 8)) + +// Map Group 5 +#define MAP_VIRIDIAN_CITY_HOUSE1 (0 | (5 << 8)) +#define MAP_VIRIDIAN_CITY_GYM (1 | (5 << 8)) +#define MAP_VIRIDIAN_CITY_HOUSE2 (2 | (5 << 8)) +#define MAP_VIRIDIAN_CITY_MART (3 | (5 << 8)) +#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F (4 | (5 << 8)) +#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F (5 | (5 << 8)) + +// Map Group 6 +#define MAP_PEWTER_CITY_MUSEUM_1F (0 | (6 << 8)) +#define MAP_PEWTER_CITY_MUSEUM_2F (1 | (6 << 8)) +#define MAP_PEWTER_CITY_GYM (2 | (6 << 8)) +#define MAP_PEWTER_CITY_MART (3 | (6 << 8)) +#define MAP_PEWTER_CITY_HOUSE1 (4 | (6 << 8)) +#define MAP_PEWTER_CITY_POKEMON_CENTER_1F (5 | (6 << 8)) +#define MAP_PEWTER_CITY_POKEMON_CENTER_2F (6 | (6 << 8)) +#define MAP_PEWTER_CITY_HOUSE2 (7 | (6 << 8)) + +// Map Group 7 +#define MAP_CERULEAN_CITY_HOUSE1 (0 | (7 << 8)) +#define MAP_CERULEAN_CITY_HOUSE2 (1 | (7 << 8)) +#define MAP_CERULEAN_CITY_HOUSE3 (2 | (7 << 8)) +#define MAP_CERULEAN_CITY_POKEMON_CENTER_1F (3 | (7 << 8)) +#define MAP_CERULEAN_CITY_POKEMON_CENTER_2F (4 | (7 << 8)) +#define MAP_CERULEAN_CITY_GYM (5 | (7 << 8)) +#define MAP_CERULEAN_CITY_BIKE_SHOP (6 | (7 << 8)) +#define MAP_CERULEAN_CITY_MART (7 | (7 << 8)) +#define MAP_CERULEAN_CITY_HOUSE4 (8 | (7 << 8)) +#define MAP_CERULEAN_CITY_HOUSE5 (9 | (7 << 8)) + +// Map Group 8 +#define MAP_LAVENDER_TOWN_POKEMON_CENTER_1F (0 | (8 << 8)) +#define MAP_LAVENDER_TOWN_POKEMON_CENTER_2F (1 | (8 << 8)) +#define MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE (2 | (8 << 8)) +#define MAP_LAVENDER_TOWN_HOUSE1 (3 | (8 << 8)) +#define MAP_LAVENDER_TOWN_HOUSE2 (4 | (8 << 8)) +#define MAP_LAVENDER_TOWN_MART (5 | (8 << 8)) + +// Map Group 9 +#define MAP_VERMILION_CITY_HOUSE1 (0 | (9 << 8)) +#define MAP_VERMILION_CITY_POKEMON_CENTER_1F (1 | (9 << 8)) +#define MAP_VERMILION_CITY_POKEMON_CENTER_2F (2 | (9 << 8)) +#define MAP_VERMILION_CITY_POKEMON_FAN_CLUB (3 | (9 << 8)) +#define MAP_VERMILION_CITY_HOUSE2 (4 | (9 << 8)) +#define MAP_VERMILION_CITY_MART (5 | (9 << 8)) +#define MAP_VERMILION_CITY_GYM (6 | (9 << 8)) +#define MAP_VERMILION_CITY_HOUSE3 (7 | (9 << 8)) + +// Map Group 10 +#define MAP_CELADON_CITY_DEPARTMENT_STORE_1F (0 | (10 << 8)) +#define MAP_CELADON_CITY_DEPARTMENT_STORE_2F (1 | (10 << 8)) +#define MAP_CELADON_CITY_DEPARTMENT_STORE_3F (2 | (10 << 8)) +#define MAP_CELADON_CITY_DEPARTMENT_STORE_4F (3 | (10 << 8)) +#define MAP_CELADON_CITY_DEPARTMENT_STORE_5F (4 | (10 << 8)) +#define MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF (5 | (10 << 8)) +#define MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR (6 | (10 << 8)) +#define MAP_CELADON_CITY_CONDOMINIUMS_1F (7 | (10 << 8)) +#define MAP_CELADON_CITY_CONDOMINIUMS_2F (8 | (10 << 8)) +#define MAP_CELADON_CITY_CONDOMINIUMS_3F (9 | (10 << 8)) +#define MAP_CELADON_CITY_CONDOMINIUMS_ROOF (10 | (10 << 8)) +#define MAP_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM (11 | (10 << 8)) +#define MAP_CELADON_CITY_POKEMON_CENTER_1F (12 | (10 << 8)) +#define MAP_CELADON_CITY_POKEMON_CENTER_2F (13 | (10 << 8)) +#define MAP_CELADON_CITY_GAME_CORNER (14 | (10 << 8)) +#define MAP_CELADON_CITY_GAME_CORNER_PRIZE_ROOM (15 | (10 << 8)) +#define MAP_CELADON_CITY_GYM (16 | (10 << 8)) +#define MAP_CELADON_CITY_RESTAURANT (17 | (10 << 8)) +#define MAP_CELADON_CITY_HOUSE1 (18 | (10 << 8)) +#define MAP_CELADON_CITY_HOTEL (19 | (10 << 8)) + +// Map Group 11 +#define MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE (0 | (11 << 8)) +#define MAP_FUCHSIA_CITY_MART (1 | (11 << 8)) +#define MAP_FUCHSIA_CITY_ZOO_BUILDING (2 | (11 << 8)) +#define MAP_FUCHSIA_CITY_GYM (3 | (11 << 8)) +#define MAP_FUCHSIA_CITY_HOUSE1 (4 | (11 << 8)) +#define MAP_FUCHSIA_CITY_POKEMON_CENTER_1F (5 | (11 << 8)) +#define MAP_FUCHSIA_CITY_POKEMON_CENTER_2F (6 | (11 << 8)) +#define MAP_FUCHSIA_CITY_BUILDING1 (7 | (11 << 8)) +#define MAP_FUCHSIA_CITY_HOUSE2 (8 | (11 << 8)) +#define MAP_FUCHSIA_CITY_HOUSE3 (9 | (11 << 8)) + +// Map Group 12 +#define MAP_CINNABAR_ISLAND_GYM (0 | (12 << 8)) +#define MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE (1 | (12 << 8)) +#define MAP_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE (2 | (12 << 8)) +#define MAP_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM (3 | (12 << 8)) +#define MAP_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM (4 | (12 << 8)) +#define MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F (5 | (12 << 8)) +#define MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F (6 | (12 << 8)) +#define MAP_CINNABAR_ISLAND_MART (7 | (12 << 8)) + +// Map Group 13 +#define MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F (0 | (13 << 8)) +#define MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F (1 | (13 << 8)) + +// Map Group 14 +#define MAP_SAFFRON_CITY_HOUSE1_1F (0 | (14 << 8)) +#define MAP_SAFFRON_CITY_HOUSE1_2F (1 | (14 << 8)) +#define MAP_SAFFRON_CITY_DOJO (2 | (14 << 8)) +#define MAP_SAFFRON_CITY_GYM (3 | (14 << 8)) +#define MAP_SAFFRON_CITY_HOUSE2 (4 | (14 << 8)) +#define MAP_SAFFRON_CITY_MART (5 | (14 << 8)) +#define MAP_SAFFRON_CITY_POKEMON_CENTER_1F (6 | (14 << 8)) +#define MAP_SAFFRON_CITY_POKEMON_CENTER_2F (7 | (14 << 8)) +#define MAP_SAFFRON_CITY_HOUSE3 (8 | (14 << 8)) +#define MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (14 << 8)) + +// Map Group 15 +#define MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE (0 | (15 << 8)) +#define MAP_ROUTE2_HOUSE (1 | (15 << 8)) +#define MAP_ROUTE2_EAST_BUILDING (2 | (15 << 8)) +#define MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE (3 | (15 << 8)) + +// Map Group 16 +#define MAP_ROUTE4_POKEMON_CENTER_1F (0 | (16 << 8)) +#define MAP_ROUTE4_POKEMON_CENTER_2F (1 | (16 << 8)) + +// Map Group 17 +#define MAP_ROUTE5_POKEMON_DAY_CARE (0 | (17 << 8)) +#define MAP_ROUTE5_SOUTH_ENTRANCE (1 | (17 << 8)) + +// Map Group 18 +#define MAP_ROUTE6_NORTH_ENTRANCE (0 | (18 << 8)) +#define MAP_UNKNOWN_MAP_18_01 (1 | (18 << 8)) + +// Map Group 19 +#define MAP_ROUTE7_EAST_ENTRANCE (0 | (19 << 8)) + +// Map Group 20 +#define MAP_ROUTE8_WEST_ENTRANCE (0 | (20 << 8)) + +// Map Group 21 +#define MAP_ROUTE10_POKEMON_CENTER_1F (0 | (21 << 8)) +#define MAP_ROUTE10_POKEMON_CENTER_2F (1 | (21 << 8)) + +// Map Group 22 +#define MAP_ROUTE11_EAST_ENTRANCE_1F (0 | (22 << 8)) +#define MAP_ROUTE11_EAST_ENTRANCE_2F (1 | (22 << 8)) + +// Map Group 23 +#define MAP_ROUTE12_NORTH_ENTRANCE_1F (0 | (23 << 8)) +#define MAP_ROUTE12_NORTH_ENTRANCE_2F (1 | (23 << 8)) +#define MAP_ROUTE12_FISHING_HOUSE (2 | (23 << 8)) + +// Map Group 24 +#define MAP_ROUTE15_WEST_ENTRANCE_1F (0 | (24 << 8)) +#define MAP_ROUTE15_WEST_ENTRANCE_2F (1 | (24 << 8)) + +// Map Group 25 +#define MAP_ROUTE16_HOUSE (0 | (25 << 8)) +#define MAP_ROUTE16_NORTH_ENTRANCE_1F (1 | (25 << 8)) +#define MAP_ROUTE16_NORTH_ENTRANCE_2F (2 | (25 << 8)) + +// Map Group 26 +#define MAP_ROUTE18_EAST_ENTRANCE_1F (0 | (26 << 8)) +#define MAP_ROUTE18_EAST_ENTRANCE_2F (1 | (26 << 8)) + +// Map Group 27 +#define MAP_UNUSED_HOUSE_27_00 (0 | (27 << 8)) + +// Map Group 28 +#define MAP_ROUTE22_NORTH_ENTRANCE (0 | (28 << 8)) + +// Map Group 29 +#define MAP_UNUSED_HOUSE_29_00 (0 | (29 << 8)) + +// Map Group 30 +#define MAP_ROUTE25_SEA_COTTAGE (0 | (30 << 8)) + +// Map Group 31 +#define MAP_SEVEN_ISLAND_HOUSE_ROOM1 (0 | (31 << 8)) +#define MAP_SEVEN_ISLAND_HOUSE_ROOM2 (1 | (31 << 8)) +#define MAP_SEVEN_ISLAND_MART (2 | (31 << 8)) +#define MAP_SEVEN_ISLAND_POKEMON_CENTER_1F (3 | (31 << 8)) +#define MAP_SEVEN_ISLAND_POKEMON_CENTER_2F (4 | (31 << 8)) +#define MAP_UNUSED_HOUSE_31_05 (5 | (31 << 8)) +#define MAP_SEVEN_ISLAND_HARBOR (6 | (31 << 8)) + +// Map Group 32 +#define MAP_ONE_ISLAND_POKEMON_CENTER_1F (0 | (32 << 8)) +#define MAP_ONE_ISLAND_POKEMON_CENTER_2F (1 | (32 << 8)) +#define MAP_ONE_ISLAND_HOUSE1 (2 | (32 << 8)) +#define MAP_ONE_ISLAND_HOUSE2 (3 | (32 << 8)) +#define MAP_ONE_ISLAND_HARBOR (4 | (32 << 8)) + +// Map Group 33 +#define MAP_TWO_ISLAND_JOYFUL_GAME_CORNER (0 | (33 << 8)) +#define MAP_TWO_ISLAND_HOUSE (1 | (33 << 8)) +#define MAP_TWO_ISLAND_POKEMON_CENTER_1F (2 | (33 << 8)) +#define MAP_TWO_ISLAND_POKEMON_CENTER_2F (3 | (33 << 8)) +#define MAP_TWO_ISLAND_HARBOR (4 | (33 << 8)) + +// Map Group 34 +#define MAP_THREE_ISLAND_HOUSE1 (0 | (34 << 8)) +#define MAP_THREE_ISLAND_POKEMON_CENTER_1F (1 | (34 << 8)) +#define MAP_THREE_ISLAND_POKEMON_CENTER_2F (2 | (34 << 8)) +#define MAP_THREE_ISLAND_MART (3 | (34 << 8)) +#define MAP_THREE_ISLAND_HOUSE2 (4 | (34 << 8)) +#define MAP_THREE_ISLAND_HOUSE3 (5 | (34 << 8)) +#define MAP_THREE_ISLAND_HOUSE4 (6 | (34 << 8)) +#define MAP_THREE_ISLAND_HOUSE5 (7 | (34 << 8)) + +// Map Group 35 +#define MAP_FOUR_ISLAND_POKEMON_DAY_CARE (0 | (35 << 8)) +#define MAP_FOUR_ISLAND_POKEMON_CENTER_1F (1 | (35 << 8)) +#define MAP_FOUR_ISLAND_POKEMON_CENTER_2F (2 | (35 << 8)) +#define MAP_FOUR_ISLAND_HOUSE1 (3 | (35 << 8)) +#define MAP_FOUR_ISLAND_LORELEIS_HOUSE (4 | (35 << 8)) +#define MAP_FOUR_ISLAND_HARBOR (5 | (35 << 8)) +#define MAP_FOUR_ISLAND_HOUSE2 (6 | (35 << 8)) +#define MAP_FOUR_ISLAND_MART (7 | (35 << 8)) + +// Map Group 36 +#define MAP_FIVE_ISLAND_POKEMON_CENTER_1F (0 | (36 << 8)) +#define MAP_FIVE_ISLAND_POKEMON_CENTER_2F (1 | (36 << 8)) +#define MAP_FIVE_ISLAND_HARBOR (2 | (36 << 8)) +#define MAP_FIVE_ISLAND_HOUSE1 (3 | (36 << 8)) +#define MAP_FIVE_ISLAND_HOUSE2 (4 | (36 << 8)) + +// Map Group 37 +#define MAP_SIX_ISLAND_POKEMON_CENTER_1F (0 | (37 << 8)) +#define MAP_SIX_ISLAND_POKEMON_CENTER_2F (1 | (37 << 8)) +#define MAP_SIX_ISLAND_HARBOR (2 | (37 << 8)) +#define MAP_SIX_ISLAND_HOUSE (3 | (37 << 8)) +#define MAP_SIX_ISLAND_MART (4 | (37 << 8)) + +// Map Group 38 +#define MAP_THREE_ISLAND_HARBOR (0 | (38 << 8)) + +// Map Group 39 +#define MAP_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE (0 | (39 << 8)) + +// Map Group 40 +#define MAP_TWO_ISLAND_CAPE_BRINK_HOUSE (0 | (40 << 8)) + +// Map Group 41 +#define MAP_SIX_ISLAND_WATER_PATH_HOUSE1 (0 | (41 << 8)) +#define MAP_SIX_ISLAND_WATER_PATH_HOUSE2 (1 | (41 << 8)) + +// Map Group 42 +#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE (0 | (42 << 8)) + +#define MAP_GROUPS_COUNT 43 + +#endif // GUARD_CONSTANTS_MAP_GROUPS_H diff --git a/include/constants/maps.h b/include/constants/maps.h index 737edd7de..db8ee451c 100644 --- a/include/constants/maps.h +++ b/include/constants/maps.h @@ -1,595 +1,43 @@ #ifndef GUARD_CONSTANTS_MAPS_H #define GUARD_CONSTANTS_MAPS_H -// Map Group 0 -#define MAP_PETALBURG_CITY (0 | (0 << 8)) -#define MAP_SLATEPORT_CITY (1 | (0 << 8)) -#define MAP_MAUVILLE_CITY (2 | (0 << 8)) -#define MAP_RUSTBORO_CITY (3 | (0 << 8)) -#define MAP_FORTREE_CITY (4 | (0 << 8)) -#define MAP_LILYCOVE_CITY (5 | (0 << 8)) -#define MAP_MOSSDEEP_CITY (6 | (0 << 8)) -#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8)) -#define MAP_EVER_GRANDE_CITY (8 | (0 << 8)) -#define MAP_LITTLEROOT_TOWN (9 | (0 << 8)) -#define MAP_OLDALE_TOWN (10 | (0 << 8)) -#define MAP_DEWFORD_TOWN (11 | (0 << 8)) -#define MAP_LAVARIDGE_TOWN (12 | (0 << 8)) -#define MAP_FALLARBOR_TOWN (13 | (0 << 8)) -#define MAP_VERDANTURF_TOWN (14 | (0 << 8)) -#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8)) -#define MAP_ROUTE101 (16 | (0 << 8)) -#define MAP_ROUTE102 (17 | (0 << 8)) -#define MAP_ROUTE103 (18 | (0 << 8)) -#define MAP_ROUTE104 (19 | (0 << 8)) -#define MAP_ROUTE105 (20 | (0 << 8)) -#define MAP_ROUTE106 (21 | (0 << 8)) -#define MAP_ROUTE107 (22 | (0 << 8)) -#define MAP_ROUTE108 (23 | (0 << 8)) -#define MAP_ROUTE109 (24 | (0 << 8)) -#define MAP_ROUTE110 (25 | (0 << 8)) -#define MAP_ROUTE111 (26 | (0 << 8)) -#define MAP_ROUTE112 (27 | (0 << 8)) -#define MAP_ROUTE113 (28 | (0 << 8)) -#define MAP_ROUTE114 (29 | (0 << 8)) -#define MAP_ROUTE115 (30 | (0 << 8)) -#define MAP_ROUTE116 (31 | (0 << 8)) -#define MAP_ROUTE117 (32 | (0 << 8)) -#define MAP_ROUTE118 (33 | (0 << 8)) -#define MAP_ROUTE119 (34 | (0 << 8)) -#define MAP_ROUTE120 (35 | (0 << 8)) -#define MAP_ROUTE121 (36 | (0 << 8)) -#define MAP_ROUTE122 (37 | (0 << 8)) -#define MAP_ROUTE123 (38 | (0 << 8)) -#define MAP_ROUTE124 (39 | (0 << 8)) -#define MAP_ROUTE125 (40 | (0 << 8)) -#define MAP_ROUTE126 (41 | (0 << 8)) -#define MAP_ROUTE127 (42 | (0 << 8)) -#define MAP_ROUTE128 (43 | (0 << 8)) -#define MAP_ROUTE129 (44 | (0 << 8)) -#define MAP_ROUTE130 (45 | (0 << 8)) -#define MAP_ROUTE131 (46 | (0 << 8)) -#define MAP_ROUTE132 (47 | (0 << 8)) -#define MAP_ROUTE133 (48 | (0 << 8)) -#define MAP_ROUTE134 (49 | (0 << 8)) -#define MAP_UNDERWATER1 (50 | (0 << 8)) -#define MAP_UNDERWATER2 (51 | (0 << 8)) -#define MAP_UNDERWATER3 (52 | (0 << 8)) -#define MAP_UNDERWATER4 (53 | (0 << 8)) - -// Map Group 1 -#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8)) - -// Map Group 2 -#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8)) -#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8)) -#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8)) -#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8)) -#define MAP_OLDALE_TOWN_MART (4 | (2 << 8)) - -// Map Group 3 -#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8)) -#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8)) -#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8)) -#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8)) -#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8)) -#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8)) - -// Map Group 4 -#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8)) - -// Map Group 5 -#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8)) - -// Map Group 6 -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8)) - -// Map Group 7 -#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8)) - -// Map Group 8 -#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8)) -#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8)) -#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8)) -#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8)) -#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8)) -#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8)) -#define MAP_PETALBURG_CITY_MART (6 | (8 << 8)) - -// Map Group 9 -#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8)) -#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HOUSE1 (5 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8)) -#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8)) -#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HOUSE2 (10 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8)) -#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8)) - -// Map Group 10 -#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8)) -#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8)) -#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8)) -#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8)) -#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8)) -#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8)) -#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8)) -#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8)) - -// Map Group 11 -#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8)) -#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8)) -#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8)) -#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8)) -#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8)) -#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8)) - -// Map Group 12 -#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8)) -#define MAP_FORTREE_CITY_GYM (1 | (12 << 8)) -#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8)) -#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8)) -#define MAP_FORTREE_CITY_MART (4 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8)) -#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8)) - -// Map Group 13 -#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8)) -#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8)) -#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8)) -#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8)) -#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8)) -#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8)) -#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8)) -#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8)) - -// Map Group 14 -#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8)) - -// Map Group 15 -#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE9_1F (13 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE9_B1F (14 | (15 << 8)) - -// Map Group 16 -#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8)) - -// Map Group 17 -#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8)) -#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) - -// Map Group 18 -#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8)) -#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8)) - -// Map Group 19 -#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8)) -#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) - -// Map Group 20 -#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8)) -#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8)) -#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8)) - -// Map Group 21 -#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) - -// Map Group 22 -#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) - -// Map Group 23 -#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) - -// Map Group 24 -#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8)) -#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8)) -#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8)) -#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8)) -#define MAP_RUSTURF_TUNNEL (4 | (24 << 8)) -#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8)) -#define MAP_DESERT_RUINS (6 | (24 << 8)) -#define MAP_GRANITE_CAVE_1F (7 | (24 << 8)) -#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8)) -#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8)) -#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8)) -#define MAP_PETALBURG_WOODS (11 | (24 << 8)) -#define MAP_MT_CHIMNEY (12 | (24 << 8)) -#define MAP_JAGGED_PASS (13 | (24 << 8)) -#define MAP_FIERY_PATH (14 | (24 << 8)) -#define MAP_MT_PYRE_1F (15 | (24 << 8)) -#define MAP_MT_PYRE_2F (16 | (24 << 8)) -#define MAP_MT_PYRE_3F (17 | (24 << 8)) -#define MAP_MT_PYRE_4F (18 | (24 << 8)) -#define MAP_MT_PYRE_5F (19 | (24 << 8)) -#define MAP_MT_PYRE_6F (20 | (24 << 8)) -#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8)) -#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8)) -#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B1F (39 | (24 << 8)) // -#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B2F (40 | (24 << 8)) // Ruby/Sapphire leftovers -#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B3F (41 | (24 << 8)) // -#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8)) -#define MAP_VICTORY_ROAD_1F (43 | (24 << 8)) -#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8)) -#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8)) -#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8)) -#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8)) -#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8)) -#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8)) -#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8)) -#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8)) -#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8)) -#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8)) -#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8)) -#define MAP_ISLAND_CAVE (67 | (24 << 8)) -#define MAP_ANCIENT_TOMB (68 | (24 << 8)) -#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8)) -#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8)) -#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8)) -#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8)) -#define MAP_SCORCHED_SLAB (73 | (24 << 8)) -#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_1F (74 | (24 << 8)) // -#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B1F (75 | (24 << 8)) // Ruby/Sapphire leftovers -#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B2F (76 | (24 << 8)) // -#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8)) -#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8)) -#define MAP_SKY_PILLAR_1F (79 | (24 << 8)) -#define MAP_SKY_PILLAR_2F (80 | (24 << 8)) -#define MAP_SKY_PILLAR_3F (81 | (24 << 8)) -#define MAP_SKY_PILLAR_4F (82 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8)) -#define MAP_SKY_PILLAR_5F (84 | (24 << 8)) -#define MAP_SKY_PILLAR_TOP (85 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8)) -#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8)) -#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8)) -#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8)) -#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8)) -#define MAP_DESERT_UNDERPASS (98 | (24 << 8)) -#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8)) -#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8)) -#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8)) -#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8)) -#define MAP_MARINE_CAVE_END (103 | (24 << 8)) -#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8)) -#define MAP_TERRA_CAVE_END (105 | (24 << 8)) -#define MAP_ALTERING_CAVE (106 | (24 << 8)) -#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) - -// Map Group 25 -#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) -#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) -#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) -#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) -#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) -#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8)) -#define MAP_TRADE_CENTER (25 | (25 << 8)) -#define MAP_RECORD_CORNER (26 | (25 << 8)) -#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8)) -#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) -#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) -#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) -#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_01 (44 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_02 (45 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_03 (46 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_04 (47 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_05 (48 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_06 (49 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_07 (50 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_08 (51 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_09 (52 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_10 (53 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_11 (54 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_12 (55 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_13 (56 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_14 (57 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_15 (58 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE_16 (59 | (25 << 8)) -#define MAP_UNION_ROOM (60 | (25 << 8)) - -// Map Group 26 -#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) -#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8)) -#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8)) -#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8)) -#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8)) -#define MAP_SAFARI_ZONE_EM_1 (12 | (26 << 8)) -#define MAP_SAFARI_ZONE_EM_2 (13 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR_2 (16 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM_2 (17 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_1 (37 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_2 (38 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_3 (39 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE_1 (41 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE_2 (43 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE_3 (44 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE_4 (45 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE_5 (47 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE_6 (48 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE_7 (49 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE_8 (51 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE_9 (52 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8)) -#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8)) -#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8)) -#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8)) -#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8)) -#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8)) -#define MAP_TRAINER_HILL_1F (61 | (26 << 8)) -#define MAP_TRAINER_HILL_2F (62 | (26 << 8)) -#define MAP_TRAINER_HILL_3F (63 | (26 << 8)) -#define MAP_TRAINER_HILL_4F (64 | (26 << 8)) -#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8)) -#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8)) -#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8)) -#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8)) -#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8)) -#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP_1 (71 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP_2 (72 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP_3 (73 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP_4 (74 | (26 << 8)) -#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_01 (76 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_02 (77 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_03 (78 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_04 (79 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_05 (80 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_06 (81 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_07 (82 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_08 (83 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_09 (84 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_10 (85 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN_11 (86 | (26 << 8)) -#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8)) -#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8)) - -// Map Group 27 -#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8)) -#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) - -// Map Group 28 -#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) - -// Map Group 29 -#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8)) -#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8)) -#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8)) - -// Map Group 30 -#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) - -// Map Group 31 -#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) - -// Map Group 32 -#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8)) -#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8)) -#define MAP_ROUTE119_HOUSE (2 | (32 << 8)) - -// Map Group 33 -#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) - +#include "constants/map_groups.h" #define MAP_NONE (0x7F | (0x7F << 8)) #define MAP_UNDEFINED (0xFF | (0xFF << 8)) - #define MAP_GROUP(map) (MAP_##map >> 8) #define MAP_NUM(map) (MAP_##map & 0xFF) +#define MAP(map) MAP_GROUP(map), MAP_NUM(map) + +// temporary map constants +#define BATTLE_SCENE_0 0 +#define BATTLE_SCENE_1 1 +#define BATTLE_SCENE_2 2 +#define BATTLE_SCENE_3 3 +#define BATTLE_SCENE_4 4 +#define BATTLE_SCENE_5 5 +#define BATTLE_SCENE_6 6 +#define BATTLE_SCENE_7 7 +#define BATTLE_SCENE_8 8 +#define BATTLE_SCENE_9 9 +#define BATTLE_SCENE_10 10 +#define BATTLE_SCENE_11 11 +#define BATTLE_SCENE_12 12 +#define BATTLE_SCENE_13 13 +#define BATTLE_SCENE_14 14 +#define BATTLE_SCENE_15 15 + +#define MAP_TYPE_0 0 +#define MAP_TYPE_1 1 +#define MAP_TYPE_2 2 +#define MAP_TYPE_3 3 +#define MAP_TYPE_4 4 +#define MAP_TYPE_5 5 +#define MAP_TYPE_6 6 +#define MAP_TYPE_7 7 +#define MAP_TYPE_8 8 +#define MAP_TYPE_9 9 + #endif // GUARD_CONSTANTS_MAPS_H diff --git a/include/constants/region_map.h b/include/constants/region_map.h index 87203f538..527acf2c9 100644 --- a/include/constants/region_map.h +++ b/include/constants/region_map.h @@ -1,115 +1,203 @@ #ifndef GUARD_CONSTANTS_REGION_MAP_H #define GUARD_CONSTANTS_REGION_MAP_H -#define MAPSEC_PALLET_TOWN 0x0 -#define MAPSEC_VIRIDIAN_CITY 0x1 -#define MAPSEC_PEWTER_CITY 0x2 -#define MAPSEC_CERULEAN_CITY 0x3 -#define MAPSEC_LAVENDER_TOWN 0x4 -#define MAPSEC_VERMILION_CITY 0x5 -#define MAPSEC_CELADON_CITY 0x6 -#define MAPSEC_FUCHSIA_CITY 0x7 -#define MAPSEC_CINNABAR_ISLAND 0x8 -#define MAPSEC_INDIGO_PLATEAU 0x9 -#define MAPSEC_SAFFRON_CITY 0xA -#define MAPSEC_ROUTE_4 0xB -#define MAPSEC_ROUTE_10 0xC -#define MAPSEC_ROUTE_1 0xD -#define MAPSEC_ROUTE_2 0xE -#define MAPSEC_ROUTE_3 0xF -#define MAPSEC_ROUTE_4_2 0x10 -#define MAPSEC_ROUTE_5 0x11 -#define MAPSEC_ROUTE_6 0x12 -#define MAPSEC_ROUTE_7 0x13 -#define MAPSEC_ROUTE_8 0x14 -#define MAPSEC_ROUTE_9 0x15 -#define MAPSEC_ROUTE_10_2 0x16 -#define MAPSEC_ROUTE_11 0x17 -#define MAPSEC_ROUTE_12 0x18 -#define MAPSEC_ROUTE_13 0x19 -#define MAPSEC_ROUTE_14 0x1A -#define MAPSEC_ROUTE_15 0x1B -#define MAPSEC_ROUTE_16 0x1C -#define MAPSEC_ROUTE_17 0x1D -#define MAPSEC_ROUTE_18 0x1E -#define MAPSEC_ROUTE_19 0x1F -#define MAPSEC_ROUTE_20 0x20 -#define MAPSEC_ROUTE_21 0x21 -#define MAPSEC_ROUTE_22 0x22 -#define MAPSEC_ROUTE_23 0x23 -#define MAPSEC_ROUTE_24 0x24 -#define MAPSEC_ROUTE_25 0x25 -#define MAPSEC_VIRIDIAN_FOREST 0x26 -#define MAPSEC_MT_MOON 0x27 -#define MAPSEC_S_S_ANNE 0x28 -#define MAPSEC_UNDERGROUND_PATH 0x29 -#define MAPSEC_UNDERGROUND_PATH_2 0x2A -#define MAPSEC_DIGLETTS_CAVE 0x2B -#define MAPSEC_KANTO_VICTORY_ROAD 0x2C -#define MAPSEC_ROCKET_HIDEOUT 0x2D -#define MAPSEC_SILPH_CO 0x2E -#define MAPSEC_POKEMON_MANSION 0x2F -#define MAPSEC_KANTO_SAFARI_ZONE 0x30 -#define MAPSEC_POKEMON_LEAGUE 0x31 -#define MAPSEC_ROCK_TUNNEL 0x32 -#define MAPSEC_SEAFOAM_ISLANDS 0x33 -#define MAPSEC_POKEMON_TOWER 0x34 -#define MAPSEC_CERULEAN_CAVE 0x35 -#define MAPSEC_POWER_PLANT 0x36 -#define MAPSEC_ONE_ISLAND 0x37 -#define MAPSEC_TWO_ISLAND 0x38 -#define MAPSEC_THREE_ISLAND 0x39 -#define MAPSEC_FOUR_ISLAND 0x3A -#define MAPSEC_FIVE_ISLAND 0x3B -#define MAPSEC_SEVEN_ISLAND 0x3C -#define MAPSEC_SIX_ISLAND 0x3D -#define MAPSEC_KINDLE_ROAD 0x3E -#define MAPSEC_TREASURE_BEACH 0x3F -#define MAPSEC_CAPE_BRINK 0x40 -#define MAPSEC_BOND_BRIDGE 0x41 -#define MAPSEC_THREE_ISLE_PORT 0x42 -#define MAPSEC_SEVII_ISLE_6 0x43 -#define MAPSEC_SEVII_ISLE_7 0x44 -#define MAPSEC_SEVII_ISLE_8 0x45 -#define MAPSEC_SEVII_ISLE_9 0x46 -#define MAPSEC_RESORT_GORGEOUS 0x47 -#define MAPSEC_WATER_LABYRINTH 0x48 -#define MAPSEC_FIVE_ISLE_MEADOW 0x49 -#define MAPSEC_MEMORIAL_PILLAR 0x4A -#define MAPSEC_OUTCAST_ISLAND 0x4B -#define MAPSEC_GREEN_PATH 0x4C -#define MAPSEC_WATER_PATH 0x4D -#define MAPSEC_RUIN_VALLEY 0x4E -#define MAPSEC_TRAINER_TOWER 0x4F -#define MAPSEC_CANYON_ENTRANCE 0x50 -#define MAPSEC_SEVAULT_CANYON 0x51 -#define MAPSEC_TANOBY_RUINS 0x52 -#define MAPSEC_SEVII_ISLE_22 0x53 -#define MAPSEC_SEVII_ISLE_23 0x54 -#define MAPSEC_SEVII_ISLE_24 0x55 -#define MAPSEC_NAVEL_ROCK 0x56 -#define MAPSEC_MT_EMBER 0x57 -#define MAPSEC_BERRY_FOREST 0x58 -#define MAPSEC_ICEFALL_CAVE 0x59 -#define MAPSEC_ROCKET_WAREHOUSE 0x5A -#define MAPSEC_TRAINER_TOWER_2 0x5B -#define MAPSEC_DOTTED_HOLE 0x5C -#define MAPSEC_LOST_CAVE 0x5D -#define MAPSEC_PATTERN_BUSH 0x5E -#define MAPSEC_ALTERING_CAVE 0x5F -#define MAPSEC_TANOBY_CHAMBERS 0x60 -#define MAPSEC_THREE_ISLE_PATH 0x61 -#define MAPSEC_TANOBY_KEY 0x62 -#define MAPSEC_BIRTH_ISLAND 0x63 -#define MAPSEC_MONEAN_CHAMBER 0x64 -#define MAPSEC_LIPTOO_CHAMBER 0x65 -#define MAPSEC_WEEPTH_CHAMBER 0x66 -#define MAPSEC_DILFORD_CHAMBER 0x67 -#define MAPSEC_SCUFIB_CHAMBER 0x68 -#define MAPSEC_RIXY_CHAMBER 0x69 -#define MAPSEC_VIAPOIS_CHAMBER 0x6A -#define MAPSEC_EMBER_SPA 0x6B -#define MAPSEC_CELADON_DEPT 0x6C -#define MAPSEC_NONE 0x6D +#define MAPSEC_LITTLEROOT_TOWN 0x00 +#define MAPSEC_OLDALE_TOWN 0x01 +#define MAPSEC_DEWFORD_TOWN 0x02 +#define MAPSEC_LAVARIDGE_TOWN 0x03 +#define MAPSEC_FALLARBOR_TOWN 0x04 +#define MAPSEC_VERDANTURF_TOWN 0x05 +#define MAPSEC_PACIFIDLOG_TOWN 0x06 +#define MAPSEC_PETALBURG_CITY 0x07 +#define MAPSEC_SLATEPORT_CITY 0x08 +#define MAPSEC_MAUVILLE_CITY 0x09 +#define MAPSEC_RUSTBORO_CITY 0x0A +#define MAPSEC_FORTREE_CITY 0x0B +#define MAPSEC_LILYCOVE_CITY 0x0C +#define MAPSEC_MOSSDEEP_CITY 0x0D +#define MAPSEC_SOOTOPOLIS_CITY 0x0E +#define MAPSEC_EVER_GRANDE_CITY 0x0F +#define MAPSEC_ROUTE_101 0x10 +#define MAPSEC_ROUTE_102 0x11 +#define MAPSEC_ROUTE_103 0x12 +#define MAPSEC_ROUTE_104 0x13 +#define MAPSEC_ROUTE_105 0x14 +#define MAPSEC_ROUTE_106 0x15 +#define MAPSEC_ROUTE_107 0x16 +#define MAPSEC_ROUTE_108 0x17 +#define MAPSEC_ROUTE_109 0x18 +#define MAPSEC_ROUTE_110 0x19 +#define MAPSEC_ROUTE_111 0x1A +#define MAPSEC_ROUTE_112 0x1B +#define MAPSEC_ROUTE_113 0x1C +#define MAPSEC_ROUTE_114 0x1D +#define MAPSEC_ROUTE_115 0x1E +#define MAPSEC_ROUTE_116 0x1F +#define MAPSEC_ROUTE_117 0x20 +#define MAPSEC_ROUTE_118 0x21 +#define MAPSEC_ROUTE_119 0x22 +#define MAPSEC_ROUTE_120 0x23 +#define MAPSEC_ROUTE_121 0x24 +#define MAPSEC_ROUTE_122 0x25 +#define MAPSEC_ROUTE_123 0x26 +#define MAPSEC_ROUTE_124 0x27 +#define MAPSEC_ROUTE_125 0x28 +#define MAPSEC_ROUTE_126 0x29 +#define MAPSEC_ROUTE_127 0x2A +#define MAPSEC_ROUTE_128 0x2B +#define MAPSEC_ROUTE_129 0x2C +#define MAPSEC_ROUTE_130 0x2D +#define MAPSEC_ROUTE_131 0x2E +#define MAPSEC_ROUTE_132 0x2F +#define MAPSEC_ROUTE_133 0x30 +#define MAPSEC_ROUTE_134 0x31 +#define MAPSEC_UNDERWATER_124 0x32 +#define MAPSEC_UNDERWATER_125 0x33 +#define MAPSEC_UNDERWATER_126 0x34 +#define MAPSEC_UNDERWATER_127 0x35 +#define MAPSEC_UNDERWATER_SOOTOPOLIS 0x36 +#define MAPSEC_GRANITE_CAVE 0x37 +#define MAPSEC_MT_CHIMNEY 0x38 +#define MAPSEC_SAFARI_ZONE 0x39 +#define MAPSEC_BATTLE_FRONTIER 0x3A +#define MAPSEC_PETALBURG_WOODS 0x3B +#define MAPSEC_RUSTURF_TUNNEL 0x3C +#define MAPSEC_ABANDONED_SHIP 0x3D +#define MAPSEC_NEW_MAUVILLE 0x3E +#define MAPSEC_METEOR_FALLS 0x3F +#define MAPSEC_METEOR_FALLS2 0x40 +#define MAPSEC_MT_PYRE 0x41 +#define MAPSEC_AQUA_HIDEOUT_OLD 0x42 +#define MAPSEC_SHOAL_CAVE 0x43 +#define MAPSEC_SEAFLOOR_CAVERN 0x44 +#define MAPSEC_UNDERWATER_128 0x45 +#define MAPSEC_VICTORY_ROAD 0x46 +#define MAPSEC_MIRAGE_ISLAND 0x47 +#define MAPSEC_CAVE_OF_ORIGIN 0x48 +#define MAPSEC_SOUTHERN_ISLAND 0x49 +#define MAPSEC_FIERY_PATH 0x4A +#define MAPSEC_FIERY_PATH2 0x4B +#define MAPSEC_JAGGED_PASS 0x4C +#define MAPSEC_JAGGED_PASS2 0x4D +#define MAPSEC_SEALED_CHAMBER 0x4E +#define MAPSEC_UNDERWATER_SEALED_CHAMBER 0x4F +#define MAPSEC_SCORCHED_SLAB 0x50 +#define MAPSEC_ISLAND_CAVE 0x51 +#define MAPSEC_DESERT_RUINS 0x52 +#define MAPSEC_ANCIENT_TOMB 0x53 +#define MAPSEC_INSIDE_OF_TRUCK 0x54 +#define MAPSEC_SKY_PILLAR 0x55 +#define MAPSEC_SECRET_BASE 0x56 +#define MAPSEC_DYNAMIC 0x57 +#define MAPSEC_PALLET_TOWN 0x58 +#define MAPSEC_VIRIDIAN_CITY 0x59 +#define MAPSEC_PEWTER_CITY 0x5A +#define MAPSEC_CERULEAN_CITY 0x5B +#define MAPSEC_LAVENDER_TOWN 0x5C +#define MAPSEC_VERMILION_CITY 0x5D +#define MAPSEC_CELADON_CITY 0x5E +#define MAPSEC_FUCHSIA_CITY 0x5F +#define MAPSEC_CINNABAR_ISLAND 0x60 +#define MAPSEC_INDIGO_PLATEAU 0x61 +#define MAPSEC_SAFFRON_CITY 0x62 +#define MAPSEC_ROUTE_4_FLYDUP 0x63 +#define MAPSEC_ROUTE_10_FLYDUP 0x64 +#define MAPSEC_ROUTE_1 0x65 +#define MAPSEC_ROUTE_2 0x66 +#define MAPSEC_ROUTE_3 0x67 +#define MAPSEC_ROUTE_4 0x68 +#define MAPSEC_ROUTE_5 0x69 +#define MAPSEC_ROUTE_6 0x6A +#define MAPSEC_ROUTE_7 0x6B +#define MAPSEC_ROUTE_8 0x6C +#define MAPSEC_ROUTE_9 0x6D +#define MAPSEC_ROUTE_10 0x6E +#define MAPSEC_ROUTE_11 0x6F +#define MAPSEC_ROUTE_12 0x70 +#define MAPSEC_ROUTE_13 0x71 +#define MAPSEC_ROUTE_14 0x72 +#define MAPSEC_ROUTE_15 0x73 +#define MAPSEC_ROUTE_16 0x74 +#define MAPSEC_ROUTE_17 0x75 +#define MAPSEC_ROUTE_18 0x76 +#define MAPSEC_ROUTE_19 0x77 +#define MAPSEC_ROUTE_20 0x78 +#define MAPSEC_ROUTE_21 0x79 +#define MAPSEC_ROUTE_22 0x7A +#define MAPSEC_ROUTE_23 0x7B +#define MAPSEC_ROUTE_24 0x7C +#define MAPSEC_ROUTE_25 0x7D +#define MAPSEC_VIRIDIAN_FOREST 0x7E +#define MAPSEC_MT_MOON 0x7F +#define MAPSEC_S_S_ANNE 0x80 +#define MAPSEC_UNDERGROUND_PATH 0x81 +#define MAPSEC_UNDERGROUND_PATH_2 0x82 +#define MAPSEC_DIGLETTS_CAVE 0x83 +#define MAPSEC_KANTO_VICTORY_ROAD 0x84 +#define MAPSEC_ROCKET_HIDEOUT 0x85 +#define MAPSEC_SILPH_CO 0x86 +#define MAPSEC_POKEMON_MANSION 0x87 +#define MAPSEC_KANTO_SAFARI_ZONE 0x88 +#define MAPSEC_POKEMON_LEAGUE 0x89 +#define MAPSEC_ROCK_TUNNEL 0x8A +#define MAPSEC_SEAFOAM_ISLANDS 0x8B +#define MAPSEC_POKEMON_TOWER 0x8C +#define MAPSEC_CERULEAN_CAVE 0x8D +#define MAPSEC_POWER_PLANT 0x8E +#define MAPSEC_ONE_ISLAND 0x8F +#define MAPSEC_TWO_ISLAND 0x90 +#define MAPSEC_THREE_ISLAND 0x91 +#define MAPSEC_FOUR_ISLAND 0x92 +#define MAPSEC_FIVE_ISLAND 0x93 +#define MAPSEC_SEVEN_ISLAND 0x94 +#define MAPSEC_SIX_ISLAND 0x95 +#define MAPSEC_KINDLE_ROAD 0x96 +#define MAPSEC_TREASURE_BEACH 0x97 +#define MAPSEC_CAPE_BRINK 0x98 +#define MAPSEC_BOND_BRIDGE 0x99 +#define MAPSEC_THREE_ISLE_PORT 0x9A +#define MAPSEC_SEVII_ISLE_6 0x9B +#define MAPSEC_SEVII_ISLE_7 0x9C +#define MAPSEC_SEVII_ISLE_8 0x9D +#define MAPSEC_SEVII_ISLE_9 0x9E +#define MAPSEC_RESORT_GORGEOUS 0x9F +#define MAPSEC_WATER_LABYRINTH 0xA0 +#define MAPSEC_FIVE_ISLE_MEADOW 0xA1 +#define MAPSEC_MEMORIAL_PILLAR 0xA2 +#define MAPSEC_OUTCAST_ISLAND 0xA3 +#define MAPSEC_GREEN_PATH 0xA4 +#define MAPSEC_WATER_PATH 0xA5 +#define MAPSEC_RUIN_VALLEY 0xA6 +#define MAPSEC_TRAINER_TOWER 0xA7 +#define MAPSEC_CANYON_ENTRANCE 0xA8 +#define MAPSEC_SEVAULT_CANYON 0xA9 +#define MAPSEC_TANOBY_RUINS 0xAA +#define MAPSEC_SEVII_ISLE_22 0xAB +#define MAPSEC_SEVII_ISLE_23 0xAC +#define MAPSEC_SEVII_ISLE_24 0xAD +#define MAPSEC_NAVEL_ROCK 0xAE +#define MAPSEC_MT_EMBER 0xAF +#define MAPSEC_BERRY_FOREST 0xB0 +#define MAPSEC_ICEFALL_CAVE 0xB1 +#define MAPSEC_ROCKET_WAREHOUSE 0xB2 +#define MAPSEC_TRAINER_TOWER_2 0xB3 +#define MAPSEC_DOTTED_HOLE 0xB4 +#define MAPSEC_LOST_CAVE 0xB5 +#define MAPSEC_PATTERN_BUSH 0xB6 +#define MAPSEC_ALTERING_CAVE 0xB7 +#define MAPSEC_TANOBY_CHAMBERS 0xB8 +#define MAPSEC_THREE_ISLE_PATH 0xB9 +#define MAPSEC_TANOBY_KEY 0xBA +#define MAPSEC_BIRTH_ISLAND 0xBB +#define MAPSEC_MONEAN_CHAMBER 0xBC +#define MAPSEC_LIPTOO_CHAMBER 0xBD +#define MAPSEC_WEEPTH_CHAMBER 0xBE +#define MAPSEC_DILFORD_CHAMBER 0xBF +#define MAPSEC_SCUFIB_CHAMBER 0xC0 +#define MAPSEC_RIXY_CHAMBER 0xC1 +#define MAPSEC_VIAPOIS_CHAMBER 0xC2 +#define MAPSEC_EMBER_SPA 0xC3 +#define MAPSEC_SPECIAL_AREA 0xC4 +#define MAPSEC_NONE 0xC5 #endif //GUARD_CONSTANTS_REGION_MAP_H diff --git a/include/constants/songs.h b/include/constants/songs.h index e31a38fdc..193a57756 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -250,6 +250,103 @@ #define SE_W287B 245 #define SE_W114 246 #define SE_W063B 247 +#define SE_CASHIER 248 +#define SE_SHIP_HORN 249 +#define SE_HELP_OPEN 250 +#define SE_HELP_CLOSE 251 +#define SE_HELP_PAGE 252 + +#define MUS_ME_ASA 256 +#define MUS_FANFA1 257 +#define MUS_FANFA4 258 +#define MUS_FANFA5 259 +#define MUS_ME_BACHI 260 +#define MUS_ME_WAZA 261 +#define MUS_ME_KINOMI 262 +#define MUS_ME_SHINKA 263 +#define BGM_FRLG_SAFARI_ZONE 264 +#define MUS_SHINKA BGM_FRLG_SAFARI_ZONE +#define BGM_FRLG_CHANSEY_DANCE 267 +#define MUS_ME_B_BIG 268 +#define MUS_ME_B_SMALL 269 +#define MUS_ME_WASURE 270 +#define MUS_ME_ZANNEN 271 +#define BGM_FRLG_FOLLOW_ME 272 +#define BGM_FRLG_GAMECORNER 273 +#define BGM_FRLG_ROCKET_HIDEOUT 274 +#define BGM_FRLG_GYM 275 +#define BGM_FRLG_JIGGLYPUFF 276 +#define BGM_FRLG_OPENING 277 +#define BGM_FRLG_TITLE 278 +#define BGM_FRLG_CINNABAR_ISLAND 279 +#define BGM_FRLG_LAVENDER_TOWN 280 +#define BGM_FRLG_HEALING_TEST 281 +#define BGM_FRLG_BICYCLE 282 +#define BGM_FRLG_SUSPICIOUS_EYE 283 +#define BGM_FRLG_GIRL_EYE 284 +#define BGM_FRLG_BOY_EYE 285 +#define BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME 286 +#define BGM_FRLG_VIRIDIAN_FOREST 287 +#define BGM_FRLG_MT_MOON 288 +#define BGM_FRLG_POKEMON_MANSION 289 +#define BGM_FRLG_CREDITS 290 +#define BGM_FRLG_ROUTE_1 291 +#define BGM_FRLG_ROUTE_24 292 +#define BGM_FRLG_ROUTE_3 293 +#define BGM_FRLG_ROUTE_11 294 +#define BGM_FRLG_INDIGO_PLATEAU 295 +#define BGM_FRLG_BATTLE_LEADER 296 +#define BGM_FRLG_BATTLE_TRAINER 297 +#define BGM_FRLG_BATTLE_WILD_POKEMON 298 +#define BGM_FRLG_BATTLE_CHAMPION 299 +#define BGM_FRLG_PALLET_TOWN 300 +#define BGM_FRLG_OAK_LAB 301 +#define BGM_FRLG_PROF_OAK 302 +#define BGM_FRLG_POKEMON_CENTER 303 +#define BGM_FRLG_SS_ANNE 304 +#define BGM_FRLG_SURF 305 +#define BGM_FRLG_POKEMON_TOWER 306 +#define BGM_FRLG_SILPH 307 +#define BGM_FRLG_CERULEAN_CITY 308 +#define BGM_FRLG_CELADON_CITY 309 +#define BGM_FRLG_KACHI_TRAINER 310 +#define BGM_FRLG_KACHI_WILD_POKEMON 311 +#define BGM_FRLG_KACHI_LEADER 312 +#define BGM_FRLG_VERMILION_CITY 313 +#define BGM_FRLG_VIRIDIAN_CITY 314 +#define BGM_FRLG_RIVAL 315 +#define BGM_FRLG_RIVAL_POSTBATTLE 316 +#define BGM_FRLG_ME_POKEDEX_EVAL 317 +#define BGM_FRLG_ME_KEYITEM 318 +#define BGM_FRLG_FANFA_POKEMON_CAUGHT 319 +#define BGM_FRLG_FANFA_TRAINERCARD_PHOTO 320 +#define BGM_FRLG_GAMEFREAK_LOGO 321 +#define BGM_FRLG_CAUGHT_POKEMON 322 +#define BGM_FRLG_GAME_EXPLANATION_START 323 +#define BGM_FRLG_GAME_EXPLANATION_MIDDLE 324 +#define BGM_FRLG_GAME_EXPLANATION_END 325 +#define BGM_FRLG_POKEMON_JUMP 326 +#define BGM_FRLG_UNION_ROOM 327 +#define BGM_FRLG_POKEMON_NETWORK_CENTER 328 +#define BGM_FRLG_MYSTERY_GIFT 329 +#define BGM_FRLG_DODRIO_BERRY_PICK 330 +#define BGM_FRLG_MT_EMBER 331 +#define BGM_FRLG_TEACHY_TV_EPISODE 332 +#define BGM_FRLG_SEVII_ISLANDS 333 +#define BGM_FRLG_TANOBY_RUINS 334 +#define BGM_FRLG_ISLAND_ONE 335 +#define BGM_FRLG_ISLAND_FOUR 336 +#define BGM_FRLG_ISLAND_SIX 337 +#define BGM_FRLG_FLUTE 338 +#define BGM_FRLG_BATTLE_DEOXYS 339 +#define BGM_FRLG_BATTLE_MEWTWO 340 +#define BGM_FRLG_BATTLE_LEGENDARY 341 +#define BGM_FRLG_LEADER_EYE 342 +#define BGM_FRLG_DEOXYS_EYE 343 +#define BGM_FRLG_TRAINER_TOWER 344 +#define BGM_FRLG_HALL_OF_FAME_PALLET_TOWN 345 +#define BGM_FRLG_TEACHY_TV 346 + #define BGM_STOP 349 #define BGM_TETSUJI 350 #define BGM_FIELD13 351 @@ -385,82 +482,6 @@ #define BGM_BATTLE35 481 #define BGM_BATTLE38 482 #define BGM_BATTLE30 483 -#define BGM_FRLG_FOLLOW_ME 484 -#define BGM_FRLG_GAMECORNER 485 -#define BGM_FRLG_ROCKET_HIDEOUT 486 -#define BGM_FRLG_GYM 487 -#define BGM_FRLG_JIGGLYPUFF 488 -#define BGM_FRLG_OPENING 489 -#define BGM_FRLG_TITLE 490 -#define BGM_FRLG_CINNABAR_ISLAND 491 -#define BGM_FRLG_LAVENDER_TOWN 492 -#define BGM_FRLG_HEALING_TEST 493 -#define BGM_FRLG_BICYCLE 494 -#define BGM_FRLG_SUSPICIOUS_EYE 495 -#define BGM_FRLG_GIRL_EYE 496 -#define BGM_FRLG_BOY_EYE 497 -#define BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME 498 -#define BGM_FRLG_VIRIDIAN_FOREST 499 -#define BGM_FRLG_MT_MOON 500 -#define BGM_FRLG_POKEMON_MANSION 501 -#define BGM_FRLG_CREDITS 502 -#define BGM_FRLG_ROUTE_1 503 -#define BGM_FRLG_ROUTE_24 504 -#define BGM_FRLG_ROUTE_3 505 -#define BGM_FRLG_ROUTE_11 506 -#define BGM_FRLG_INDIGO_PLATEAU 507 -#define BGM_FRLG_BATTLE_LEADER 508 -#define BGM_FRLG_BATTLE_TRAINER 509 -#define BGM_FRLG_BATTLE_WILD_POKEMON 510 -#define BGM_FRLG_BATTLE_CHAMPION 511 -#define BGM_FRLG_PALLET_TOWN 512 -#define BGM_FRLG_OAK_LAB 513 -#define BGM_FRLG_PROF_OAK 514 -#define BGM_FRLG_POKEMON_CENTER 515 -#define BGM_FRLG_SS_ANNE 516 -#define BGM_FRLG_SURF 517 -#define BGM_FRLG_POKEMON_TOWER 518 -#define BGM_FRLG_SILPH 519 -#define BGM_FRLG_CERULEAN_CITY 520 -#define BGM_FRLG_CELADON_CITY 521 -#define BGM_FRLG_KACHI_TRAINER 522 -#define BGM_FRLG_KACHI_WILD_POKEMON 523 -#define BGM_FRLG_KACHI_LEADER 524 -#define BGM_FRLG_VERMILION_CITY 525 -#define BGM_FRLG_VIRIDIAN_CITY 526 -#define BGM_FRLG_RIVAL 527 -#define BGM_FRLG_RIVAL_POSTBATTLE 528 -#define BGM_FRLG_ME_POKEDEX_EVAL 529 -#define BGM_FRLG_ME_KEYITEM 530 -#define BGM_FRLG_FANFA_POKEMON_CAUGHT 531 -#define BGM_FRLG_FANFA_TRAINERCARD_PHOTO 532 -#define BGM_FRLG_GAMEFREAK_LOGO 533 -#define BGM_FRLG_CAUGHT_POKEMON 534 -#define BGM_FRLG_GAME_EXPLANATION_START 535 -#define BGM_FRLG_GAME_EXPLANATION_MIDDLE 536 -#define BGM_FRLG_GAME_EXPLANATION_END 537 -#define BGM_FRLG_POKEMON_JUMP 538 -#define BGM_FRLG_UNION_ROOM 539 -#define BGM_FRLG_POKEMON_NETWORK_CENTER 540 -#define BGM_FRLG_MYSTERY_GIFT 541 -#define BGM_FRLG_DODRIO_BERRY_PICK 542 -#define BGM_FRLG_MT_EMBER 543 -#define BGM_FRLG_TEACHY_TV_EPISODE 544 -#define BGM_FRLG_SEVII_ISLANDS 545 -#define BGM_FRLG_TANOBY_RUINS 546 -#define BGM_FRLG_ISLAND_ONE 547 -#define BGM_FRLG_ISLAND_FOUR 548 -#define BGM_FRLG_ISLAND_SIX 549 -#define BGM_FRLG_FLUTE 550 -#define BGM_FRLG_BATTLE_DEOXYS 551 -#define BGM_FRLG_BATTLE_MEWTWO 552 -#define BGM_FRLG_BATTLE_LEGENDARY 553 -#define BGM_FRLG_LEADER_EYE 554 -#define BGM_FRLG_DEOXYS_EYE 555 -#define BGM_FRLG_TRAINER_TOWER 556 -#define BGM_FRLG_HALL_OF_FAME_PALLET_TOWN 557 -#define BGM_FRLG_TEACHY_TV 558 - #define BGM_ROUTE_118 0x7FFF // What is this for? #endif // GUARD_CONSTANTS_SONGS_H diff --git a/include/constants/spawn_points.h b/include/constants/spawn_points.h new file mode 100644 index 000000000..eea133bd1 --- /dev/null +++ b/include/constants/spawn_points.h @@ -0,0 +1,26 @@ +#ifndef GUARD_CONSTANTS_SPAWN_POINTS_H +#define GUARD_CONSTANTS_SPAWN_POINTS_H + +#define SPAWN_PALLET_TOWN 1 +#define SPAWN_VIRIDIAN_CITY 2 +#define SPAWN_PEWTER_CITY 3 +#define SPAWN_CERULEAN_CITY 4 +#define SPAWN_LAVENDER_TOWN 5 +#define SPAWN_VERMILION_CITY 6 +#define SPAWN_CELADON_CITY 7 +#define SPAWN_FUCHSIA_CITY 8 +#define SPAWN_CINNABAR_ISLAND 9 +#define SPAWN_INDIGO_PLATEAU 10 +#define SPAWN_SAFFRON_CITY 11 +#define SPAWN_ROUTE4 12 +#define SPAWN_ROUTE10 13 +#define SPAWN_ONE_ISLAND 14 +#define SPAWN_TWO_ISLAND 15 +#define SPAWN_THREE_ISLAND 16 +#define SPAWN_FOUR_ISLAND 17 +#define SPAWN_FIVE_ISLAND 18 +#define SPAWN_SEVEN_ISLAND 19 +#define SPAWN_SIX_ISLAND 20 +#define NUM_SPAWN_POINTS 20 + +#endif //GUARD_CONSTANTS_SPAWN_POINTS_H diff --git a/include/constants/species.h b/include/constants/species.h index f698ada14..9cb239799 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -445,6 +445,9 @@ #define SPECIES_UNOWN_EMARK 438 #define SPECIES_UNOWN_QMARK 439 +#define SPECIES_OLD_UNOWN_EMARK 412 +#define SPECIES_OLD_UNOWN_QMARK 413 + #define NUM_SPECIES SPECIES_EGG #endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 886bae93c..989b27387 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -35,8 +35,8 @@ #define VAR_0x401D 0x401D #define VAR_0x401E 0x401E #define VAR_0x401F 0x401F -#define VAR_RECYCLE_GOODS 0x4020 -#define VAR_REPEL_STEP_COUNT 0x4021 +#define VAR_REPEL_STEP_COUNT 0x4020 +#define VAR_0x4021 0x4021 #define VAR_ICE_STEP_COUNT 0x4022 #define VAR_0x4023 0x4023 #define VAR_MIRAGE_RND_H 0x4024 @@ -54,7 +54,7 @@ #define VAR_0x402F 0x402F #define VAR_0x4030 0x4030 -#define VAR_0x4031 0x4031 +#define VAR_STARTER_MON 0x4031 #define VAR_0x4032 0x4032 #define VAR_ENIGMA_BERRY_AVAILABLE 0x4033 @@ -86,26 +86,26 @@ #define VAR_0x404D 0x404D #define VAR_0x404E 0x404E #define VAR_LOTAD_SIZE_RECORD 0x404F -#define VAR_0x4050 0x4050 +#define VAR_MAP_SCENE_PALLET_TOWN 0x4050 #define VAR_0x4051 0x4051 #define VAR_0x4052 0x4052 -#define VAR_0x4053 0x4053 +#define VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER 0x4053 #define VAR_0x4054 0x4054 -#define VAR_0x4055 0x4055 -#define VAR_0x4056 0x4056 -#define VAR_0x4057 0x4057 +#define VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB 0x4055 +#define VAR_MAP_SCENE_PALLET_TOWN_PLAYERS_HOUSE_2F 0x4056 +#define VAR_MAP_SCENE_VIRIDIAN_CITY_MART 0x4057 #define VAR_0x4058 0x4058 #define VAR_0x4059 0x4059 #define VAR_0x405A 0x405A #define VAR_0x405B 0x405B #define VAR_0x405C 0x405C #define VAR_0x405D 0x405D -#define VAR_0x405E 0x405E +#define VAR_MAP_SCENE_ROUTE16 0x405E #define VAR_0x405F 0x405F #define VAR_0x4060 0x4060 #define VAR_0x4061 0x4061 #define VAR_0x4062 0x4062 -#define VAR_0x4063 0x4063 +#define VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F 0x4063 #define VAR_0x4064 0x4064 #define VAR_0x4065 0x4065 #define VAR_0x4066 0x4066 @@ -116,35 +116,35 @@ #define VAR_0x406B 0x406B #define VAR_0x406C 0x406C #define VAR_0x406D 0x406D -#define VAR_0x406E 0x406E +#define VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE 0x406E #define VAR_0x406F 0x406F #define VAR_0x4070 0x4070 #define VAR_0x4071 0x4071 #define VAR_0x4072 0x4072 -#define VAR_0x4073 0x4073 -#define VAR_0x4074 0x4074 -#define VAR_0x4075 0x4075 -#define VAR_0x4076 0x4076 +#define VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB 0x4073 +#define VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1 0x4074 +#define VAR_MAP_SCENE_ONE_ISLAND_HARBOR 0x4075 +#define VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F 0x4076 #define VAR_0x4077 0x4077 #define VAR_0x4078 0x4078 -#define VAR_0x4079 0x4079 +#define VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER 0x4079 #define VAR_0x407A 0x407A #define VAR_0x407B 0x407B #define VAR_0x407C 0x407C #define VAR_0x407D 0x407D -#define VAR_0x407E 0x407E +#define VAR_MAP_SCENE_VERMILION_CITY 0x407E #define VAR_0x407F 0x407F #define VAR_0x4080 0x4080 #define VAR_0x4081 0x4081 #define VAR_0x4082 0x4082 -#define VAR_0x4083 0x4083 -#define VAR_0x4084 0x4084 -#define VAR_0x4085 0x4085 -#define VAR_0x4086 0x4086 +#define VAR_MAP_SCENE_FIVE_ISLAND_LOST_CAVE_ROOM10 0x4083 +#define VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS 0x4084 +#define VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR 0x4085 +#define VAR_MAP_SCENE_FOUR_ISLAND 0x4086 #define VAR_0x4087 0x4087 #define VAR_0x4088 0x4088 -#define VAR_0x4089 0x4089 -#define VAR_0x408A 0x408A +#define VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F 0x4089 +#define VAR_MAP_SCENE_CINNABAR_ISLAND 0x408A #define VAR_0x408B 0x408B #define VAR_0x408C 0x408C #define VAR_0x408D 0x408D diff --git a/include/constants/weather.h b/include/constants/weather.h new file mode 100644 index 000000000..a45d2e523 --- /dev/null +++ b/include/constants/weather.h @@ -0,0 +1,20 @@ +#ifndef GUARD_CONSTANTS_WEATHER_H +#define GUARD_CONSTANTS_WEATHER_H + +#define WEATHER_NONE 0 +#define WEATHER_SUNNY_CLOUDS 1 // unused +#define WEATHER_SUNNY 2 +#define WEATHER_RAIN 3 // unused +#define WEATHER_SNOW 4 // unused +#define WEATHER_RAIN_THUNDERSTORM 5 // unused +#define WEATHER_FOG_HORIZONTAL 6 +#define WEATHER_VOLCANIC_ASH 7 // unused +#define WEATHER_SANDSTORM 8 // unused +#define WEATHER_FOG_DIAGONAL 9 // unused +#define WEATHER_UNDERWATER 10 // unused +#define WEATHER_CLOUDY 11 +#define WEATHER_DROUGHT 12 // unused and broken in overworld +#define WEATHER_DOWNPOUR 13 // unused +#define WEATHER_UNDERWATER_BUBBLES 14 // unused + +#endif // GUARD_CONSTANTS_WEATHER_H diff --git a/include/daycare.h b/include/daycare.h index 6544ba21a..08ca11187 100644 --- a/include/daycare.h +++ b/include/daycare.h @@ -26,4 +26,10 @@ bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio); void ShowDaycareLevelMenu(void); void ChooseSendDaycareMon(void); +void ScriptHatchMon(void); +bool8 sub_8071614(void); +void EggHatch(void); +u8 GetEggStepsToSubtract(void); +u16 sub_80722E0(void); + #endif // GUARD_DAYCARE_H diff --git a/include/decompress.h b/include/decompress.h index 36672dcfd..19b507525 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -18,6 +18,8 @@ void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src); void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer); bool8 LoadCompressedObjectPaletteUsingHeap(const struct CompressedSpritePalette *src); +bool8 sub_800F078(const struct CompressedSpritePalette *src); + void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species); void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species); void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species); @@ -25,6 +27,7 @@ void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); +void sub_800ECC4(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); @@ -33,5 +36,6 @@ void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src u32 sub_8034974(const u8 *ptr); void sub_800F034(const struct CompressedSpriteSheet *src); +u32 GetDecompressedDataSize(const u8 *ptr); #endif // GUARD_DECOMPRESS_H diff --git a/include/event_data.h b/include/event_data.h index 13e388bf2..013579ab5 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -36,6 +36,7 @@ bool32 sub_806E2BC(void); void sub_806E6FC(void); void sub_806E2D0(void); void sub_806E370(void); +bool32 sub_806E25C(void); extern u16 gSpecialVar_0x8000; extern u16 gSpecialVar_0x8001; @@ -59,4 +60,7 @@ extern u16 gSpecialVar_0x8014; extern u16 gSpecialVar_Result; extern u16 gSpecialVar_0x8004; +extern u16 gUnknown_20370DA; +extern u16 gUnknown_20370DC; + #endif // GUARD_EVENT_DATA_H diff --git a/include/event_scripts.h b/include/event_scripts.h index b909566d0..d5ee57d56 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -705,4 +705,443 @@ extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni3[]; extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni4[]; extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni5[]; +extern const u8 gOtherText_NewName[]; +extern const u8 gNameChoice_Green[]; +extern const u8 gNameChoice_Red[]; +extern const u8 gNameChoice_Red[]; +extern const u8 gNameChoice_Fire[]; +extern const u8 gNameChoice_Fire[]; +extern const u8 gNameChoice_Gary[]; +extern const u8 gNameChoice_Kaz[]; +extern const u8 gNameChoice_Toru[]; +extern const u8 gNameChoice_Ash[]; +extern const u8 gNameChoice_Kene[]; +extern const u8 gNameChoice_Geki[]; +extern const u8 gNameChoice_Jak[]; +extern const u8 gNameChoice_Janne[]; +extern const u8 gNameChoice_Jonn[]; +extern const u8 gNameChoice_Kamon[]; +extern const u8 gNameChoice_Karl[]; +extern const u8 gNameChoice_Taylor[]; +extern const u8 gNameChoice_Oscar[]; +extern const u8 gNameChoice_Hiro[]; +extern const u8 gNameChoice_Max[]; +extern const u8 gNameChoice_Jon[]; +extern const u8 gNameChoice_Ralph[]; +extern const u8 gNameChoice_Kay[]; +extern const u8 gNameChoice_Tosh[]; +extern const u8 gNameChoice_Roak[]; +extern const u8 gNameChoice_Omi[]; +extern const u8 gNameChoice_Jodi[]; +extern const u8 gNameChoice_Amanda[]; +extern const u8 gNameChoice_Hillary[]; +extern const u8 gNameChoice_Makey[]; +extern const u8 gNameChoice_Michi[]; +extern const u8 gNameChoice_Paula[]; +extern const u8 gNameChoice_June[]; +extern const u8 gNameChoice_Cassie[]; +extern const u8 gNameChoice_Rey[]; +extern const u8 gNameChoice_Seda[]; +extern const u8 gNameChoice_Kiko[]; +extern const u8 gNameChoice_Mina[]; +extern const u8 gNameChoice_Norie[]; +extern const u8 gNameChoice_Sai[]; +extern const u8 gNameChoice_Momo[]; +extern const u8 gNameChoice_Suzi[]; +extern const u8 gNewGame_HelpDocs1[]; +extern const u8 gNewGame_HelpDocs2[]; +extern const u8 gNewGame_HelpDocs3[]; +extern const u8 gNewGame_HelpDocs4[]; +extern const u8 gNewGame_HelpDocs5[]; +extern const u8 gNewGame_HelpDocs6[]; +extern const u8 gNewGame_HelpDocs7[]; +extern const u8 gOakText_AskPlayerGender[]; +extern const u8 gNewGameAdventureIntro1[]; +extern const u8 gNewGameAdventureIntro2[]; +extern const u8 gNewGameAdventureIntro3[]; +extern const u8 gOakText_WelcomeToTheWorld[]; +extern const u8 gOakText_WorldInhabited1[]; +extern const u8 gOakText_WorldInhabited2[]; +extern const u8 gOakText_PetsBattlingStudy[]; +extern const u8 gOakText_TellMeALittleAboutYourself[]; +extern const u8 gOakText_AskPlayerName[]; +extern const u8 gOakText_FinalizePlayerName[]; +extern const u8 gOakText_IntroduceRival[]; +extern const u8 gOakText_AskRivalName[]; +extern const u8 gOakText_ConfirmRivalName[]; +extern const u8 gOakText_RememberRivalName[]; +extern const u8 gOakText_LegendAboutToUnfold[]; + +// Help System +extern const u8 gUnknown_81B2DF8[]; +extern const u8 gUnknown_81B2E1C[]; +extern const u8 gUnknown_81B2E2E[]; +extern const u8 gUnknown_81B2E48[]; +extern const u8 gUnknown_81B2E58[]; +extern const u8 gUnknown_81B2E6A[]; +extern const u8 gUnknown_81B2E6F[]; +extern const u8 gUnknown_81B2E76[]; +extern const u8 gUnknown_81B2E88[]; +extern const u8 gUnknown_81B2EC8[]; +extern const u8 gUnknown_81B2F00[]; +extern const u8 gUnknown_81B2F43[]; +extern const u8 gUnknown_81B2F74[]; +extern const u8 gUnknown_81B2FA9[]; +extern const u8 gUnknown_81B2FC9[]; +extern const u8 gUnknown_81B301B[]; +extern const u8 gUnknown_81B3083[]; +extern const u8 gUnknown_81B30A9[]; +extern const u8 gUnknown_81B30C1[]; +extern const u8 gUnknown_81B30DC[]; +extern const u8 gUnknown_81B30FC[]; +extern const u8 gUnknown_81B311F[]; +extern const u8 gUnknown_81B3140[]; +extern const u8 gUnknown_81B314F[]; +extern const u8 gUnknown_81B3168[]; +extern const u8 gUnknown_81B3189[]; +extern const u8 gUnknown_81B31AE[]; +extern const u8 gUnknown_81B31D3[]; +extern const u8 gUnknown_81B31EC[]; +extern const u8 gUnknown_81B31FF[]; +extern const u8 gUnknown_81B3215[]; +extern const u8 gUnknown_81B3226[]; +extern const u8 gUnknown_81B3243[]; +extern const u8 gUnknown_81B3261[]; +extern const u8 gUnknown_81B3276[]; +extern const u8 gUnknown_81B3290[]; +extern const u8 gUnknown_81B32B6[]; +extern const u8 gUnknown_81B32CD[]; +extern const u8 gUnknown_81B32E3[]; +extern const u8 gUnknown_81B32F9[]; +extern const u8 gUnknown_81B330B[]; +extern const u8 gUnknown_81B332B[]; +extern const u8 gUnknown_81B3344[]; +extern const u8 gUnknown_81B335C[]; +extern const u8 gUnknown_81B3373[]; +extern const u8 gUnknown_81B338C[]; +extern const u8 gUnknown_81B33A6[]; +extern const u8 gUnknown_81B33CA[]; +extern const u8 gUnknown_81B33EA[]; +extern const u8 gUnknown_81B3402[]; +extern const u8 gUnknown_81B3427[]; +extern const u8 gUnknown_81B3440[]; +extern const u8 gUnknown_81B3457[]; +extern const u8 gUnknown_81B346F[]; +extern const u8 gUnknown_81B3481[]; +extern const u8 gUnknown_81B349B[]; +extern const u8 gUnknown_81B34B7[]; +extern const u8 gUnknown_81B34D6[]; +extern const u8 gUnknown_81B34F6[]; +extern const u8 gUnknown_81B3516[]; +extern const u8 gUnknown_81B3525[]; +extern const u8 gUnknown_81B35E6[]; +extern const u8 gUnknown_81B36EB[]; +extern const u8 gUnknown_81B379A[]; +extern const u8 gUnknown_81B3849[]; +extern const u8 gUnknown_81B3876[]; +extern const u8 gUnknown_81B3972[]; +extern const u8 gUnknown_81B3A51[]; +extern const u8 gUnknown_81B3ACC[]; +extern const u8 gUnknown_81B3BB6[]; +extern const u8 gUnknown_81B3C99[]; +extern const u8 gUnknown_81B3D1B[]; +extern const u8 gUnknown_81B3DE3[]; +extern const u8 gUnknown_81B3EBC[]; +extern const u8 gUnknown_81B3F7F[]; +extern const u8 gUnknown_81B406C[]; +extern const u8 gUnknown_81B410B[]; +extern const u8 gUnknown_81B41D7[]; +extern const u8 gUnknown_81B42B3[]; +extern const u8 gUnknown_81B439D[]; +extern const u8 gUnknown_81B4483[]; +extern const u8 gUnknown_81B457C[]; +extern const u8 gUnknown_81B4645[]; +extern const u8 gUnknown_81B470A[]; +extern const u8 gUnknown_81B47F0[]; +extern const u8 gUnknown_81B48C6[]; +extern const u8 gUnknown_81B497A[]; +extern const u8 gUnknown_81B4A72[]; +extern const u8 gUnknown_81B4B65[]; +extern const u8 gUnknown_81B4C54[]; +extern const u8 gUnknown_81B4D26[]; +extern const u8 gUnknown_81B4E0B[]; +extern const u8 gUnknown_81B4ED8[]; +extern const u8 gUnknown_81B4FB2[]; +extern const u8 gUnknown_81B4FFD[]; +extern const u8 gUnknown_81B50FF[]; +extern const u8 gUnknown_81B51B1[]; +extern const u8 gUnknown_81B5272[]; +extern const u8 gUnknown_81B5325[]; +extern const u8 gUnknown_81B5382[]; +extern const u8 gUnknown_81B547C[]; +extern const u8 gUnknown_81B54E1[]; +extern const u8 gUnknown_81B5589[]; +extern const u8 gUnknown_81B55F4[]; +extern const u8 gUnknown_81B56E3[]; +extern const u8 gUnknown_81B56F4[]; +extern const u8 gUnknown_81B5705[]; +extern const u8 gUnknown_81B5717[]; +extern const u8 gUnknown_81B5728[]; +extern const u8 gUnknown_81B5737[]; +extern const u8 gUnknown_81B5744[]; +extern const u8 gUnknown_81B5754[]; +extern const u8 gUnknown_81B5767[]; +extern const u8 gUnknown_81B577B[]; +extern const u8 gUnknown_81B5787[]; +extern const u8 gUnknown_81B5795[]; +extern const u8 gUnknown_81B57A5[]; +extern const u8 gUnknown_81B57B8[]; +extern const u8 gUnknown_81B57CF[]; +extern const u8 gUnknown_81B57DE[]; +extern const u8 gUnknown_81B57EE[]; +extern const u8 gUnknown_81B580D[]; +extern const u8 gUnknown_81B5824[]; +extern const u8 gUnknown_81B5834[]; +extern const u8 gUnknown_81B583F[]; +extern const u8 gUnknown_81B5850[]; +extern const u8 gUnknown_81B5863[]; +extern const u8 gUnknown_81B5875[]; +extern const u8 gUnknown_81B5884[]; +extern const u8 gUnknown_81B5893[]; +extern const u8 gUnknown_81B58A4[]; +extern const u8 gUnknown_81B58BC[]; +extern const u8 gUnknown_81B58D3[]; +extern const u8 gUnknown_81B58E5[]; +extern const u8 gUnknown_81B58FD[]; +extern const u8 gUnknown_81B590E[]; +extern const u8 gUnknown_81B591D[]; +extern const u8 gUnknown_81B592E[]; +extern const u8 gUnknown_81B593E[]; +extern const u8 gUnknown_81B5950[]; +extern const u8 gUnknown_81B595D[]; +extern const u8 gUnknown_81B5974[]; +extern const u8 gUnknown_81B5989[]; +extern const u8 gUnknown_81B59A7[]; +extern const u8 gUnknown_81B59BF[]; +extern const u8 gUnknown_81B59D6[]; +extern const u8 gUnknown_81B59E8[]; +extern const u8 gUnknown_81B59F5[]; +extern const u8 gUnknown_81B5A0D[]; +extern const u8 gUnknown_81B5A1B[]; +extern const u8 gUnknown_81B5A29[]; +extern const u8 gUnknown_81B5A37[]; +extern const u8 gUnknown_81B5A4D[]; +extern const u8 gUnknown_81B5B0C[]; +extern const u8 gUnknown_81B5B7D[]; +extern const u8 gUnknown_81B5C13[]; +extern const u8 gUnknown_81B5CDF[]; +extern const u8 gUnknown_81B5D87[]; +extern const u8 gUnknown_81B5E41[]; +extern const u8 gUnknown_81B5F10[]; +extern const u8 gUnknown_81B5FA6[]; +extern const u8 gUnknown_81B606C[]; +extern const u8 gUnknown_81B6140[]; +extern const u8 gUnknown_81B6203[]; +extern const u8 gUnknown_81B62E4[]; +extern const u8 gUnknown_81B6397[]; +extern const u8 gUnknown_81B6478[]; +extern const u8 gUnknown_81B6525[]; +extern const u8 gUnknown_81B65E7[]; +extern const u8 gUnknown_81B66BA[]; +extern const u8 gUnknown_81B678E[]; +extern const u8 gUnknown_81B6883[]; +extern const u8 gUnknown_81B68CD[]; +extern const u8 gUnknown_81B69B9[]; +extern const u8 gUnknown_81B6A9A[]; +extern const u8 gUnknown_81B6B6E[]; +extern const u8 gUnknown_81B6C4F[]; +extern const u8 gUnknown_81B6D4A[]; +extern const u8 gUnknown_81B6E02[]; +extern const u8 gUnknown_81B6EC1[]; +extern const u8 gUnknown_81B6FA8[]; +extern const u8 gUnknown_81B7075[]; +extern const u8 gUnknown_81B7108[]; +extern const u8 gUnknown_81B71EA[]; +extern const u8 gUnknown_81B723B[]; +extern const u8 gUnknown_81B7319[]; +extern const u8 gUnknown_81B73E8[]; +extern const u8 gUnknown_81B747E[]; +extern const u8 gUnknown_81B752C[]; +extern const u8 gUnknown_81B7611[]; +extern const u8 gUnknown_81B7692[]; +extern const u8 gUnknown_81B771E[]; +extern const u8 gUnknown_81B77DD[]; +extern const u8 gUnknown_81B7884[]; +extern const u8 gUnknown_81B7931[]; +extern const u8 gUnknown_81B79CB[]; +extern const u8 gUnknown_81B7A60[]; +extern const u8 gUnknown_81B7AEE[]; +extern const u8 gUnknown_81B7BBE[]; +extern const u8 gUnknown_81B7C57[]; +extern const u8 gUnknown_81B7CC1[]; +extern const u8 gUnknown_81B7CC4[]; +extern const u8 gUnknown_81B7CD9[]; +extern const u8 gUnknown_81B7CDF[]; +extern const u8 gUnknown_81B7CE6[]; +extern const u8 gUnknown_81B7CEE[]; +extern const u8 gUnknown_81B7CF6[]; +extern const u8 gUnknown_81B7CFE[]; +extern const u8 gUnknown_81B7D04[]; +extern const u8 gUnknown_81B7D12[]; +extern const u8 gUnknown_81B7D17[]; +extern const u8 gUnknown_81B7D1A[]; +extern const u8 gUnknown_81B7D1F[]; +extern const u8 gUnknown_81B7D27[]; +extern const u8 gUnknown_81B7D2D[]; +extern const u8 gUnknown_81B7D37[]; +extern const u8 gUnknown_81B7D3E[]; +extern const u8 gUnknown_81B7D45[]; +extern const u8 gUnknown_81B7D48[]; +extern const u8 gUnknown_81B7D4E[]; +extern const u8 gUnknown_81B7D57[]; +extern const u8 gUnknown_81B7D5B[]; +extern const u8 gUnknown_81B7D61[]; +extern const u8 gUnknown_81B7D6B[]; +extern const u8 gUnknown_81B7D76[]; +extern const u8 gUnknown_81B7D7E[]; +extern const u8 gUnknown_81B7D88[]; +extern const u8 gUnknown_81B7D8F[]; +extern const u8 gUnknown_81B7D9A[]; +extern const u8 gUnknown_81B7DA7[]; +extern const u8 gUnknown_81B7DB4[]; +extern const u8 gUnknown_81B7DBA[]; +extern const u8 gUnknown_81B7DC6[]; +extern const u8 gUnknown_81B7DCC[]; +extern const u8 gUnknown_81B7DD3[]; +extern const u8 gUnknown_81B7DD6[]; +extern const u8 gUnknown_81B7DD9[]; +extern const u8 gUnknown_81B7DE1[]; +extern const u8 gUnknown_81B7DEB[]; +extern const u8 gUnknown_81B7DFA[]; +extern const u8 gUnknown_81B7E02[]; +extern const u8 gUnknown_81B7E09[]; +extern const u8 gUnknown_81B7E0F[]; +extern const u8 gUnknown_81B7E16[]; +extern const u8 gUnknown_81B7F0A[]; +extern const u8 gUnknown_81B800A[]; +extern const u8 gUnknown_81B80EC[]; +extern const u8 gUnknown_81B81C2[]; +extern const u8 gUnknown_81B8256[]; +extern const u8 gUnknown_81B8348[]; +extern const u8 gUnknown_81B83EF[]; +extern const u8 gUnknown_81B847B[]; +extern const u8 gUnknown_81B8550[]; +extern const u8 gUnknown_81B8647[]; +extern const u8 gUnknown_81B86E2[]; +extern const u8 gUnknown_81B87B8[]; +extern const u8 gUnknown_81B8897[]; +extern const u8 gUnknown_81B8924[]; +extern const u8 gUnknown_81B8A04[]; +extern const u8 gUnknown_81B8A84[]; +extern const u8 gUnknown_81B8B62[]; +extern const u8 gUnknown_81B8C18[]; +extern const u8 gUnknown_81B8C94[]; +extern const u8 gUnknown_81B8D1D[]; +extern const u8 gUnknown_81B8DD4[]; +extern const u8 gUnknown_81B8E67[]; +extern const u8 gUnknown_81B8F4D[]; +extern const u8 gUnknown_81B901B[]; +extern const u8 gUnknown_81B90A7[]; +extern const u8 gUnknown_81B90E8[]; +extern const u8 gUnknown_81B9170[]; +extern const u8 gUnknown_81B91C2[]; +extern const u8 gUnknown_81B91F9[]; +extern const u8 gUnknown_81B92B8[]; +extern const u8 gUnknown_81B92ED[]; +extern const u8 gUnknown_81B93D8[]; +extern const u8 gUnknown_81B9439[]; +extern const u8 gUnknown_81B9497[]; +extern const u8 gUnknown_81B9560[]; +extern const u8 gUnknown_81B9656[]; +extern const u8 gUnknown_81B9749[]; +extern const u8 gUnknown_81B984F[]; +extern const u8 gUnknown_81B991C[]; +extern const u8 gUnknown_81B99C4[]; +extern const u8 gUnknown_81B9AA2[]; +extern const u8 gUnknown_81B9B2F[]; +extern const u8 gUnknown_81B9BB7[]; +extern const u8 gUnknown_81B9BC7[]; +extern const u8 gUnknown_81B9BD0[]; +extern const u8 gUnknown_81B9BE1[]; +extern const u8 gUnknown_81B9BF5[]; +extern const u8 gUnknown_81B9C09[]; +extern const u8 gUnknown_81B9C1D[]; +extern const u8 gUnknown_81B9C2F[]; +extern const u8 gUnknown_81B9D04[]; +extern const u8 gUnknown_81B9DC5[]; +extern const u8 gUnknown_81B9E75[]; +extern const u8 gUnknown_81B9F09[]; +extern const u8 gUnknown_81B9FCE[]; +extern const u8 gUnknown_81BA027[]; +extern const u8 gUnknown_81BA0F1[]; +extern const u8 gUnknown_81BA10D[]; +extern const u8 gUnknown_81BA121[]; +extern const u8 gUnknown_81BA138[]; +extern const u8 gUnknown_81BA14C[]; +extern const u8 gUnknown_81BA163[]; +extern const u8 gUnknown_81BA17A[]; +extern const u8 gUnknown_81BA194[]; +extern const u8 gUnknown_81BA1AC[]; +extern const u8 gUnknown_81BA1C7[]; +extern const u8 gUnknown_81BA1DC[]; +extern const u8 gUnknown_81BA1F4[]; +extern const u8 gUnknown_81BA209[]; +extern const u8 gUnknown_81BA221[]; +extern const u8 gUnknown_81BA234[]; +extern const u8 gUnknown_81BA24A[]; +extern const u8 gUnknown_81BA260[]; +extern const u8 gUnknown_81BA279[]; +extern const u8 gUnknown_81BA291[]; +extern const u8 gUnknown_81BA2AC[]; +extern const u8 gUnknown_81BA2C2[]; +extern const u8 gUnknown_81BA2DB[]; +extern const u8 gUnknown_81BA2F1[]; +extern const u8 gUnknown_81BA30A[]; +extern const u8 gUnknown_81BA320[]; +extern const u8 gUnknown_81BA339[]; +extern const u8 gUnknown_81BA34E[]; +extern const u8 gUnknown_81BA366[]; +extern const u8 gUnknown_81BA37C[]; +extern const u8 gUnknown_81BA395[]; +extern const u8 gUnknown_81BA3A9[]; +extern const u8 gUnknown_81BA3C0[]; +extern const u8 gUnknown_81BA3D5[]; +extern const u8 gUnknown_81BA3ED[]; +extern const u8 gUnknown_81BA400[]; +extern const u8 gUnknown_81BA416[]; +extern const u8 gUnknown_81BA4E6[]; +extern const u8 gUnknown_81BA539[]; +extern const u8 gUnknown_81BA595[]; +extern const u8 gUnknown_81BA5F2[]; +extern const u8 gUnknown_81BA66F[]; +extern const u8 gUnknown_81BA6C9[]; +extern const u8 gUnknown_81BA71F[]; +extern const u8 gUnknown_81BA796[]; +extern const u8 gUnknown_81BA7E9[]; +extern const u8 gUnknown_81BA862[]; +extern const u8 gUnknown_81BA8D3[]; +extern const u8 gUnknown_81BA92A[]; +extern const u8 gUnknown_81BA98D[]; +extern const u8 gUnknown_81BA9F1[]; +extern const u8 gUnknown_81BAA44[]; +extern const u8 gUnknown_81BAAB6[]; +extern const u8 gUnknown_81BAB18[]; +extern const u8 gUnknown_81BAB7A[]; +extern const u8 gUnknown_81BABCC[]; +extern const u8 gUnknown_81BAC29[]; +extern const u8 gUnknown_81BAC89[]; +extern const u8 gUnknown_81BACC4[]; +extern const u8 gUnknown_81BAD20[]; +extern const u8 gUnknown_81BAD60[]; +extern const u8 gUnknown_81BADA2[]; +extern const u8 gUnknown_81BADF7[]; +extern const u8 gUnknown_81BAEA8[]; +extern const u8 gUnknown_81BAF01[]; +extern const u8 gUnknown_81BAF6B[]; +extern const u8 gUnknown_81BAFCA[]; +extern const u8 gUnknown_81BB02E[]; +extern const u8 gUnknown_81BB084[]; +extern const u8 gUnknown_81BB0DF[]; +extern const u8 gUnknown_81BB156[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/field_effect.h b/include/field_effect.h index bb5e0f1d5..426f77510 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -74,9 +74,14 @@ enum FieldEffectScriptIdx }; extern u32 gFieldEffectArguments[8]; +extern void (*gPostMenuFieldCallback)(void); +extern bool8 (*gFieldCallback2)(void); u8 FieldEffectStart(u8); bool8 FieldEffectActiveListContains(u8 id); void sub_80B69DC(void); +void CreateTeleportFieldEffectTask(void); +void FieldEffectActiveListRemove(u8 id); +void sub_8085620(void); #endif //GUARD_FIELD_EFFECTS_H diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h index 051865210..4ba350491 100644 --- a/include/field_fadetransition.h +++ b/include/field_fadetransition.h @@ -3,14 +3,17 @@ #include "global.h" -void sub_80AF734(void); -void sp13E_warp_to_last_warp(void); -void sub_80AF7D0(void); -void sp13F_fall_to_last_warp(void); - -void sub_80AF848(void); -void sub_80AF87C(void); -void sub_807DF64(void); void sub_807DF7C(void); +void DoWarp(void); +void DoDiveWarp(void); +void DoDoorWarp(void); + +void DoFallWarp(void); +void sub_807E59C(void); +void sub_807E500(void); +void sub_807DF64(void); +void sub_807DC18(void); +void FieldCallback_ReturnToEventScript2(void); +void sub_807DC00(void); #endif // GUARD_FIELD_FADETRANSITION_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index d2ec58979..27a7f23d7 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -35,7 +35,7 @@ u8 sub_808D4F4(void); void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); void npc_load_two_palettes__no_record(u16, u8); void npc_load_two_palettes__and_record(u16, u8); -void sub_808EBA8(u8, u8, u8, s16, s16); +void sub_805F7C4(u8, u8, u8, s16, s16); void pal_patch_for_npc(u16, u8); void sub_808E16C(s16, s16); void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat); @@ -46,9 +46,9 @@ void FieldObjectClearAnim(struct MapObject *); void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); void SpawnFieldObjectsInView(s16, s16); u8 sprite_new(u8, u8, s16, s16, u8, u8); -u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8); +u8 AddPseudoEventObject(u16, SpriteCallback, s16, s16, u8); u8 show_sprite(u8, u8, u8); -u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); +u8 SpawnSpecialFieldObjectParameterized(u8, u8, u8, s16, s16, u8); u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); void sub_8093038(s16, s16, s16 *, s16 *); void CameraObjectReset1(void); @@ -59,13 +59,13 @@ const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); void gpu_pal_allocator_reset__manage_upper_four(void); void sub_808E82C(u8, u8, u8, s16, s16); -void sub_808E7E4(u8, u8, u8); -void sub_808E78C(u8, u8, u8, u8); +void sub_805F400(u8, u8, u8); +void sub_805F3A8(u8, u8, u8, u8); void sub_808E75C(s16, s16); void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); void npc_coords_shift(struct MapObject *, s16, s16); void sub_808EB08(struct MapObject *, s16, s16); -void sub_808F254(u8, u8, u8); +void sub_805FE94(u8, u8, u8); void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *)); u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8); u8 GetOppositeDirection(u8); @@ -92,5 +92,7 @@ void npc_paltag_set_load(u8 mode); // Exported data declarations extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; +extern const struct SpritePalette gUnknown_83A5348; +extern const struct SpriteTemplate * const gUnknown_83A0010[]; #endif //GUARD_FIELD_MAP_OBJ_H diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h index 2d3f69d95..cd1b19eaf 100644 --- a/include/field_map_obj_helpers.h +++ b/include/field_map_obj_helpers.h @@ -4,6 +4,6 @@ #include "global.h" void UnfreezeMapObjects(void); -void sub_8097B78(u8, u8); +void sub_8069058(u8, u8); #endif diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 297d66441..4871bd082 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -20,5 +20,9 @@ u8 sub_805C808(u8); void SetPlayerAvatarStateMask(u8 mask); void sub_805D9C4(struct Sprite *sprite); void sub_805D154(u8 direction); +void sub_805DAE4(u8 direction); +void SetPlayerAvatarTransitionFlags(u16 a); +bool8 IsPlayerFacingSurfableFishableWater(void); +void sub_805D2C0(u8 secondaryId); #endif //GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index add61d57c..14d7e5d81 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -4,7 +4,7 @@ #include "global.h" void sub_80AF79C(void); -void sub_80B009C(u8); +void sub_807F028(u8); void sub_80B0244(void); #endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/include/field_specials.h b/include/field_specials.h index 2b7991b55..a12fee575 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -4,6 +4,9 @@ #include "global.h" u8 GetLeadMonIndex(void); +u8 CountDigits(u16 number); void TV_PrintIntToStringVar(u8, int); +u16 ScrSpecial_GetStarter(void); +void sub_80CCB68(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/field_weather.h b/include/field_weather.h index b896259e9..13a1b4fcb 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -10,6 +10,9 @@ u8 GetSav1Weather(void); void sub_80AEDBC(void); void DoCurrentWeather(void); +void SetSav1WeatherFromCurrMapHeader(void); void sub_807B0C4(u16 *, u16 *, u32); +void PlayRainStoppingSoundEffect(void); +bool8 sub_807AA70(void); #endif // GUARD_WEATHER_H diff --git a/include/fieldmap.h b/include/fieldmap.h index c5abdb2e1..9903962a1 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -3,19 +3,25 @@ #include "global.h" -extern struct MapCoords { - int width; - int height; -} gUnknown_03005DC0; +#define NUM_TILES_IN_PRIMARY 640 +#define NUM_TILES_TOTAL 1024 +#define NUM_METATILES_IN_PRIMARY 640 +#define NUM_METATILES_TOTAL 1024 +#define NUM_PALS_IN_PRIMARY 7 +#define NUM_PALS_TOTAL 13 +#define VIRTUAL_MAP_SIZE 0x2800 + +extern struct BackupMapData VMap; +extern const struct MapData Route1_Layout; u32 MapGridGetMetatileIdAt(int, int); u32 MapGridGetMetatileBehaviorAt(int, int); void MapGridSetMetatileIdAt(int, int, u16); void MapGridSetMetatileEntryAt(int, int, u16); void GetCameraCoords(u16*, u16*); -bool8 MapGridIsImpassableAt(s16, s16); -s32 GetMapBorderIdAt(s16, s16); -bool32 CanCameraMoveInDirection(u8); -u16 GetBehaviorByMetatileId(u16 metatileId); +bool8 MapGridIsImpassableAt(s32, s32); +s32 GetMapBorderIdAt(s32, s32); +bool32 CanCameraMoveInDirection(s32); +u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr); #endif //GUARD_FIELDMAP_H diff --git a/include/fldeff.h b/include/fldeff.h new file mode 100644 index 000000000..364cb7550 --- /dev/null +++ b/include/fldeff.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLDEFF_H +#define GUARD_FLDEFF_H + +// rock smash +u8 oei_task_add(void); + +#endif // GUARD_FLDEFF_H diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index 89d5c1f5a..6f05a176a 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -100,7 +100,7 @@ struct CgbChannel u8 le; u8 sw; u32 fr; - u32 wp; + u32 * wp; u32 cp; u32 tp; u32 pp; diff --git a/include/gba/types.h b/include/gba/types.h index 480619d21..9f2594703 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -28,29 +28,42 @@ typedef u8 bool8; typedef u16 bool16; typedef u32 bool32; +struct BgCnt +{ + u16 priority:2; + u16 charBaseBlock:2; + u16 dummy:2; + u16 mosaic:1; + u16 palettes:1; + u16 screenBaseBlock:5; + u16 areaOverflowMode:1; + u16 screenSize:2; +}; +typedef volatile struct BgCnt vBgCnt; + struct PlttData { u16 r:5; // red u16 g:5; // green u16 b:5; // blue u16 unused_15:1; -} /*__attribute__((packed))*/; +}; struct OamData { /*0x00*/ u32 y:8; - /*0x01*/ u32 affineMode:2; // 0x1, 0x2 = 0x3 - u32 objMode:2; // 0x4, 0x8 = 0xC + /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4 + u32 objMode:2; // 0x4, 0x8 -> 0xC u32 mosaic:1; // 0x10 u32 bpp:1; // 0x20 - u32 shape:2; // 0x40, 0x80 + u32 shape:2; // 0x40, 0x80 -> 0xC0 /*0x02*/ u32 x:9; - u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode - u32 size:2; + u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode + u32 size:2; // 0x4000, 0x8000 -> 0xC000 - /*0x04*/ u16 tileNum:10; - u16 priority:2; + /*0x04*/ u16 tileNum:10; // 0x3FF + u16 priority:2; // 0x400, 0x800 -> 0xC00 u16 paletteNum:4; /*0x06*/ u16 affineParam; }; @@ -74,6 +87,29 @@ struct OamData #define ST_OAM_H_RECTANGLE 1 #define ST_OAM_V_RECTANGLE 2 +#define ST_OAM_SIZE_0 0 +#define ST_OAM_SIZE_1 1 +#define ST_OAM_SIZE_2 2 +#define ST_OAM_SIZE_3 3 + +#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE)) + +#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE)) + +#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE)) + +#define SPRITE_SIZE(dim) ((SPRITE_SIZE_##dim >> 2) & 0x03) +#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0x03) + struct BgAffineSrcData { s32 texX; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index ed5054b7d..3623737ea 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -51,8 +51,8 @@ struct Tileset /*0x04*/ void *tiles; /*0x08*/ void *palettes; /*0x0c*/ void *metatiles; - /*0x10*/ void *metatileAttributes; - /*0x14*/ TilesetCB callback; + /*0x10*/ TilesetCB callback; + /*0x14*/ void *metatileAttributes; }; struct MapData @@ -63,15 +63,25 @@ struct MapData /*0x0c*/ u16 *map; /*0x10*/ struct Tileset *primaryTileset; /*0x14*/ struct Tileset *secondaryTileset; + /*0x18*/ u8 unk18; + /*0x19*/ u8 unk19; }; struct BackupMapData { - s32 width; - s32 height; + s32 Xsize; + s32 Ysize; u16 *map; }; +union __attribute__((packed)) MapObjectRange { + u8 as_byte; + struct __attribute__((packed)) { + u8 x:4; + u8 y:4; + } __attribute__((aligned (1))) as_nybbles; +} __attribute__((aligned (1))); + struct MapObjectTemplate { /*0x00*/ u8 localId; @@ -81,8 +91,7 @@ struct MapObjectTemplate /*0x06*/ s16 y; /*0x08*/ u8 elevation; /*0x09*/ u8 movementType; - /*0x0A*/ u8 unkA_0:4; - u8 unkA_4:4; + /*0x0A*/ union MapObjectRange range; ///*0x0B*/ u8 fillerB[1]; /*0x0C*/ u16 unkC; /*0x0E*/ u16 unkE; @@ -149,9 +158,9 @@ struct MapEvents struct MapConnection { /*0x00*/ u8 direction; - /*0x01*/ u32 offset; - /*0x05*/ u8 mapGroup; - /*0x06*/ u8 mapNum; + /*0x04*/ u32 offset; + /*0x08*/ u8 mapGroup; + /*0x09*/ u8 mapNum; }; struct MapConnections @@ -226,13 +235,7 @@ struct MapObject /*0x14*/ struct Coords16 coords3; /*0x18*/ u8 mapobj_unk_18:4; //current direction? /*0x18*/ u8 placeholder18:4; - /*0x19*/ union __attribute__((packed)) { - u8 as_byte; - struct __attribute__((packed)) { - u8 x:4; - u8 y:4; - } __attribute__((aligned (1))) as_nybbles; - } __attribute__((aligned (1))) range; + /*0x19*/ union MapObjectRange range; /*0x1A*/ u8 mapobj_unk_1A; /*0x1B*/ u8 mapobj_unk_1B; /*0x1C*/ u8 mapobj_unk_1C; @@ -328,7 +331,7 @@ struct Camera }; extern struct MapObject gMapObjects[NUM_FIELD_OBJECTS]; -extern u8 gSelectedMapObject; +extern u8 gSelectedEventObject; extern struct MapHeader gMapHeader; extern struct PlayerAvatar gPlayerAvatar; extern struct Camera gCamera; diff --git a/include/global.h b/include/global.h index 858d95831..050c311e4 100644 --- a/include/global.h +++ b/include/global.h @@ -4,6 +4,7 @@ #include "config.h" #include "gba/gba.h" #include +#include "constants/global.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); @@ -39,10 +40,6 @@ // Converts a number to Q4.12 fixed-point format #define Q_4_12(n) ((s16)((n) * 4096)) -#define POKEMON_SLOTS_NUMBER 412 -#define POKEMON_NAME_LENGTH 10 -#define OT_NAME_LENGTH 7 - #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) >= (b) ? (a) : (b)) @@ -72,81 +69,13 @@ #define TEST_BUTTON(field, button) ({(field) & (button);}) #define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button) #define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button) +#define JOY_REPT(button) TEST_BUTTON(gMain.newAndRepeatedKeys, button) extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; extern u8 gStringVar4[]; -enum -{ - VERSION_SAPPHIRE = 1, - VERSION_RUBY = 2, - VERSION_EMERALD = 3, - VERSION_FIRE_RED = 4, - VERSION_LEAF_GREEN = 5, -}; - -enum LanguageId { - LANGUAGE_JAPANESE = 1, - LANGUAGE_ENGLISH = 2, - LANGUAGE_FRENCH = 3, - LANGUAGE_ITALIAN = 4, - LANGUAGE_GERMAN = 5, - // 6 goes unused but the theory is it was meant to be Korean - LANGUAGE_SPANISH = 7, -}; - -#define GAME_LANGUAGE (LANGUAGE_ENGLISH) - -#define PC_ITEMS_COUNT 30 -#define BAG_ITEMS_COUNT 42 -#define BAG_KEYITEMS_COUNT 30 -#define BAG_POKEBALLS_COUNT 13 -#define BAG_TMHM_COUNT 58 -#define BAG_BERRIES_COUNT 43 - -enum -{ - MALE, - FEMALE -}; - -enum -{ - OPTIONS_BUTTON_MODE_NORMAL, - OPTIONS_BUTTON_MODE_LR, - OPTIONS_BUTTON_MODE_L_EQUALS_A -}; - -enum -{ - OPTIONS_TEXT_SPEED_SLOW, - OPTIONS_TEXT_SPEED_MID, - OPTIONS_TEXT_SPEED_FAST -}; - -enum -{ - OPTIONS_SOUND_MONO, - OPTIONS_SOUND_STEREO -}; - -enum -{ - OPTIONS_BATTLE_STYLE_SHIFT, - OPTIONS_BATTLE_STYLE_SET -}; - -enum -{ - BAG_ITEMS = 1, - BAG_POKEBALLS, - BAG_TMsHMs, - BAG_BERRIES, - BAG_KEYITEMS -}; - struct Coords16 { s16 x; @@ -241,33 +170,6 @@ struct LinkBattleRecords u8 languages[LINK_B_RECORDS_COUNT]; }; -struct BattleTowerPokemon -{ - u16 species; - u16 heldItem; - u16 moves[4]; - u8 level; - u8 ppBonuses; - u8 hpEV; - u8 attackEV; - u8 defenseEV; - u8 speedEV; - u8 spAttackEV; - u8 spDefenseEV; - u32 otId; - u32 hpIV:5; - u32 attackIV:5; - u32 defenseIV:5; - u32 speedIV:5; - u32 spAttackIV:5; - u32 spDefenseIV:5; - u32 gap:1; - u32 altAbility:1; - u32 personality; - u8 nickname[POKEMON_NAME_LENGTH + 1]; - u8 friendship; -}; - struct UnknownSaveBlock2Struct { u8 field_0; @@ -328,7 +230,8 @@ struct SaveBlock2 /*0x0AC*/ u8 filler_AC[0x3F4]; /*0x4A0*/ u32 unk_4A0[0x2F]; /*0x55c*/ struct UnkSaveBlock2Substruct_55C unk_55C; - /*0x574*/ u8 filler_574[0x524]; + /*0x574*/ u8 filler_574[0x324]; + /*0x898*/ u16 mapView[0x100]; /*0xA98*/ struct LinkBattleRecords linkBattleRecords; /*0xAF0*/ struct BerryCrush berryCrush; /*0xB00*/ u8 filler_B00[0x420]; @@ -524,9 +427,9 @@ struct ContestWinner u8 contestRank; }; -struct DaycareMiscMon +struct DayCareMail { - struct MailStruct mail; + struct MailStruct message; u8 OT_name[OT_NAME_LENGTH + 1]; u8 monName[POKEMON_NAME_LENGTH + 1]; u8 gameLanguage:4; @@ -536,7 +439,7 @@ struct DaycareMiscMon struct DaycareMon { struct BoxPokemon mon; - struct DaycareMiscMon misc; + struct DayCareMail mail; u32 steps; }; @@ -545,14 +448,8 @@ struct DaycareMon struct DayCare { struct DaycareMon mons[DAYCARE_MON_COUNT]; - u16 unk_118; - u8 unk_11A; -}; - -struct DayCareMail -{ - /*0x00*/ struct MailStruct message; - /*0x24*/ u8 names[19]; + u16 offspringPersonality; + u8 stepCounter; }; struct RecordMixingDayCareMail @@ -597,6 +494,12 @@ typedef union QuestLogScene QuestLogScene; // This name is a complete guess and may change. +#define MAP_OBJECTS_COUNT 16 +#define BERRY_TREES_COUNT 128 +#define FLAGS_COUNT 288 // 300 +#define VARS_COUNT 256 +#define MAIL_COUNT 16 + // Declare here so that it can be recursively referenced. union QuestLogMovement; @@ -610,6 +513,43 @@ union QuestLogMovement } ident_struct; }; +struct QuestLogMapObject +{ + /*0x00*/ u8 active:1; + /*0x00*/ u8 mapobj_bit_3:1; + /*0x00*/ u8 mapobj_bit_4:1; + /*0x00*/ u8 mapobj_bit_5:1; + /*0x00*/ u8 mapobj_bit_8:1; + /*0x00*/ u8 mapobj_bit_9:1; + /*0x00*/ u8 mapobj_bit_10:1; + /*0x00*/ u8 mapobj_bit_11:1; + /*0x01*/ u8 mapobj_bit_12:1; + /*0x01*/ u8 mapobj_bit_13:1; + /*0x01*/ u8 mapobj_bit_14:1; + /*0x01*/ u8 mapobj_bit_15:1; + /*0x01*/ u8 mapobj_bit_16:1; + /*0x01*/ u8 mapobj_bit_23:1; + /*0x01*/ u8 mapobj_bit_24:1; + /*0x01*/ u8 mapobj_bit_25:1; + /*0x02*/ u8 mapobj_bit_26:1; + /*0x02*/ u8 mapobj_unk_18:4; + /*0x02*/ u8 unused_02_5:3; + /*0x03*/ u8 mapobj_unk_0B_0:4; + /*0x03*/ u8 elevation:4; + /*0x04*/ u8 graphicsId; + /*0x05*/ u8 animPattern; + /*0x06*/ u8 trainerType; + /*0x07*/ u8 localId; + /*0x08*/ u8 mapNum; + /*0x09*/ u8 mapGroup; + /*0x0a*/ s16 x; + /*0x0c*/ s16 y; + /*0x0e*/ u8 trainerRange_berryTreeId; + /*0x0f*/ u8 mapobj_unk_1F; + /*0x10*/ u8 mapobj_unk_21; + /*0x11*/ u8 animId; +}; + struct QuestLog { /*0x0000*/ u8 unk_000; @@ -618,7 +558,7 @@ struct QuestLog /*0x0003*/ s8 unk_003; /*0x0004*/ s16 unk_004; /*0x0006*/ s16 unk_006; - /*0x0008*/ u8 filler_008[0x140]; + /*0x0008*/ struct QuestLogMapObject unk_008[MAP_OBJECTS_COUNT]; // These arrays hold the game state for // playing back the quest log @@ -638,12 +578,6 @@ struct FameCheckerSaveData u16 unk_0_E:2; }; -#define MAP_OBJECTS_COUNT 16 -#define BERRY_TREES_COUNT 128 -#define FLAGS_COUNT 288 // 300 -#define VARS_COUNT 256 -#define MAIL_COUNT 16 - #define NUM_EASY_CHAT_EXTRA_PHRASES 33 #define EASY_CHAT_EXTRA_PHRASES_SIZE ((NUM_EASY_CHAT_EXTRA_PHRASES >> 3) + (NUM_EASY_CHAT_EXTRA_PHRASES % 8 ? 1 : 0)) @@ -709,6 +643,27 @@ struct MEventBuffers /*0x344 0x3464*/ u32 unk_344[2][5]; }; // 0x36C 0x348C +struct TrainerTowerLog +{ + u32 unk0; + u32 unk4; + u8 unk8; + u8 unk9; + u8 unkA_0:1; + u8 unkA_1:1; + u8 unkA_2:1; + u8 unkA_3:1; + u8 unkA_4:1; + u8 unkA_5:1; + u8 unkA_6:2; +}; + +struct TrainerRematchState +{ + u16 stepCounter; + u8 rematches[100]; +}; + struct SaveBlock1 { /*0x0000*/ struct Coords16 pos; @@ -736,7 +691,7 @@ struct SaveBlock1 /*0x05F8*/ u8 seen1[DEX_FLAGS_NO]; /*0x062C*/ u16 berryBlenderRecords[3]; // unused /*0x0632*/ u8 field_632[6]; // unused? - /*0x0638*/ u8 trainerRematchStepCounter; + /*0x0638*/ u16 trainerRematchStepCounter; /*0x063A*/ u8 ALIGNED(2) trainerRematches[100]; /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; @@ -764,20 +719,15 @@ struct SaveBlock1 /*0x3A48*/ u8 filler_3a48[4]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; - /*0x3A94*/ u8 filler3A94[0x2A0]; + /*0x3A94*/ u8 filler3A94[0x204]; + /*0x3C98*/ struct DaycareMon route5DayCareMon; + /*0x3D24*/ u8 filler3D24[0x10]; /*0x3D34*/ u32 unkArrayIdx; - /*0x3D38*/ u32 unkArray[4][3]; + /*0x3D38*/ struct TrainerTowerLog unkArray[4]; }; extern struct SaveBlock1* gSaveBlock1Ptr; -struct Bitmap // TODO: Find a better spot for this -{ - u8* pixels; - u32 width:16; - u32 height:16; -}; - extern u8 gReservedSpritePaletteCount; #endif // GUARD_GLOBAL_H diff --git a/include/graphics.h b/include/graphics.h index d249ece10..1b2913164 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -150,4 +150,814 @@ extern const u16 gFameCheckerBgTiles[0xa50]; extern const u16 gFameCheckerBg3Tilemap[0x400]; extern const u16 gFameCheckerBg2Tilemap[0x400]; +// tm_case +extern const u32 gUnknown_8E845D8[]; +extern const u32 gUnknown_8E84A24[]; +extern const u32 gUnknown_8E84B70[]; +extern const u32 gUnknown_8E84CB0[]; +extern const u32 gUnknown_8E84D20[]; +extern const u32 gTMCase_TMSpriteGfx[]; +extern const u32 gUnknown_8E84F20[]; +extern const u32 gUnknown_8E85068[]; +extern const u8 gUnknown_8E99118[]; +extern const u16 gTMCaseMainWindowPalette[]; + +// egg_hatch +extern const u32 gBattleTextboxTiles[]; +extern const u32 gFile_graphics_interface_menu_map_tilemap[]; +extern const u32 gBattleTextboxPalette[]; +extern const u32 gTradeGba2_Pal[]; +extern const u32 gTradeGba_Gfx[]; + +// teachy_tv +extern const u8 gUnknown_8E86240[]; +extern const u8 gUnknown_8E86BE8[]; +extern const u8 gUnknown_8E86D6C[]; +extern const u8 gUnknown_8E86F98[]; + +// berry_fix_program +extern const u8 gBerryFixGameboy_Gfx[]; +extern const u8 gBerryFixGameboy_Tilemap[]; +extern const u8 gBerryFixGameboy_Pal[]; +extern const u8 gBerryFixGameboyLogo_Gfx[]; +extern const u8 gBerryFixGameboyLogo_Tilemap[]; +extern const u8 gBerryFixGameboyLogo_Pal[]; +extern const u8 gBerryFixGbaTransfer_Gfx[]; +extern const u8 gBerryFixGbaTransfer_Tilemap[]; +extern const u8 gBerryFixGbaTransfer_Pal[]; +extern const u8 gBerryFixGbaTransferHighlight_Gfx[]; +extern const u8 gBerryFixGbaTransferHighlight_Tilemap[]; +extern const u8 gBerryFixGbaTransferHighlight_Pal[]; +extern const u8 gBerryFixGbaTransferError_Gfx[]; +extern const u8 gBerryFixGbaTransferError_Tilemap[]; +extern const u8 gBerryFixGbaTransferError_Pal[]; +extern const u8 gBerryFixWindow_Gfx[]; +extern const u8 gBerryFixWindow_Tilemap[]; +extern const u8 gBerryFixWindow_Pal[]; + +// item_pc + +extern const u8 gItemPcTiles[]; +extern const u8 gItemPcBgPals[]; +extern const u8 gItemPcTilemap[]; + +// item_menu_icons +extern const u8 gUnknown_8E8362C[]; +extern const u8 gUnknown_8E83DBC[]; +extern const u8 gUnknown_8E84560[]; +extern const u8 gFile_graphics_interface_bag_swap_sheet[]; +extern const u8 gFile_graphics_interface_bag_swap_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_master_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_master_ball_palette[]; +extern const u8 gFile_graphics_items_icons_ultra_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ultra_ball_palette[]; +extern const u8 gFile_graphics_items_icons_great_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_great_ball_palette[]; +extern const u8 gFile_graphics_items_icons_poke_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_poke_ball_palette[]; +extern const u8 gFile_graphics_items_icons_safari_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_safari_ball_palette[]; +extern const u8 gFile_graphics_items_icons_net_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_net_ball_palette[]; +extern const u8 gFile_graphics_items_icons_dive_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dive_ball_palette[]; +extern const u8 gFile_graphics_items_icons_nest_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_nest_ball_palette[]; +extern const u8 gFile_graphics_items_icons_repeat_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_repeat_ball_palette[]; +extern const u8 gFile_graphics_items_icons_timer_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_repeat_ball_palette[]; +extern const u8 gFile_graphics_items_icons_luxury_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_luxury_ball_palette[]; +extern const u8 gFile_graphics_items_icons_premier_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_luxury_ball_palette[]; +extern const u8 gFile_graphics_items_icons_potion_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_potion_palette[]; +extern const u8 gFile_graphics_items_icons_antidote_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_antidote_palette[]; +extern const u8 gFile_graphics_items_icons_status_heal_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_burn_heal_palette[]; +extern const u8 gFile_graphics_items_icons_status_heal_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ice_heal_palette[]; +extern const u8 gFile_graphics_items_icons_status_heal_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_awakening_palette[]; +extern const u8 gFile_graphics_items_icons_status_heal_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_paralyze_heal_palette[]; +extern const u8 gFile_graphics_items_icons_large_potion_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_full_restore_palette[]; +extern const u8 gFile_graphics_items_icons_large_potion_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_max_potion_palette[]; +extern const u8 gFile_graphics_items_icons_potion_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_hyper_potion_palette[]; +extern const u8 gFile_graphics_items_icons_potion_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_super_potion_palette[]; +extern const u8 gFile_graphics_items_icons_full_heal_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_full_heal_palette[]; +extern const u8 gFile_graphics_items_icons_revive_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_revive_palette[]; +extern const u8 gFile_graphics_items_icons_max_revive_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_revive_palette[]; +extern const u8 gFile_graphics_items_icons_fresh_water_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fresh_water_palette[]; +extern const u8 gFile_graphics_items_icons_soda_pop_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_soda_pop_palette[]; +extern const u8 gFile_graphics_items_icons_lemonade_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_lemonade_palette[]; +extern const u8 gFile_graphics_items_icons_moomoo_milk_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_moomoo_milk_palette[]; +extern const u8 gFile_graphics_items_icons_powder_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_energy_powder_palette[]; +extern const u8 gFile_graphics_items_icons_energy_root_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_energy_root_palette[]; +extern const u8 gFile_graphics_items_icons_powder_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_heal_powder_palette[]; +extern const u8 gFile_graphics_items_icons_revival_herb_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_revival_herb_palette[]; +extern const u8 gFile_graphics_items_icons_ether_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ether_palette[]; +extern const u8 gFile_graphics_items_icons_ether_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_max_ether_palette[]; +extern const u8 gFile_graphics_items_icons_ether_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_elixir_palette[]; +extern const u8 gFile_graphics_items_icons_ether_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_max_elixir_palette[]; +extern const u8 gFile_graphics_items_icons_lava_cookie_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette[]; +extern const u8 gFile_graphics_items_icons_flute_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_blue_flute_palette[]; +extern const u8 gFile_graphics_items_icons_flute_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_yellow_flute_palette[]; +extern const u8 gFile_graphics_items_icons_flute_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_red_flute_palette[]; +extern const u8 gFile_graphics_items_icons_flute_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_black_flute_palette[]; +extern const u8 gFile_graphics_items_icons_flute_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_white_flute_palette[]; +extern const u8 gFile_graphics_items_icons_berry_juice_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_berry_juice_palette[]; +extern const u8 gFile_graphics_items_icons_sacred_ash_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_sacred_ash_palette[]; +extern const u8 gFile_graphics_items_icons_powder_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_shoal_salt_palette[]; +extern const u8 gFile_graphics_items_icons_shoal_shell_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_shell_palette[]; +extern const u8 gFile_graphics_items_icons_shard_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_red_shard_palette[]; +extern const u8 gFile_graphics_items_icons_shard_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_blue_shard_palette[]; +extern const u8 gFile_graphics_items_icons_shard_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_yellow_shard_palette[]; +extern const u8 gFile_graphics_items_icons_shard_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_green_shard_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_hp_up_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_hp_up_palette[]; +extern const u8 gFile_graphics_items_icons_vitamin_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_protein_palette[]; +extern const u8 gFile_graphics_items_icons_vitamin_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_iron_palette[]; +extern const u8 gFile_graphics_items_icons_vitamin_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_carbos_palette[]; +extern const u8 gFile_graphics_items_icons_vitamin_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_calcium_palette[]; +extern const u8 gFile_graphics_items_icons_rare_candy_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_rare_candy_palette[]; +extern const u8 gFile_graphics_items_icons_pp_up_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pp_up_palette[]; +extern const u8 gFile_graphics_items_icons_vitamin_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_zinc_palette[]; +extern const u8 gFile_graphics_items_icons_pp_max_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pp_max_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_battle_stat_item_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_guard_spec_palette[]; +extern const u8 gFile_graphics_items_icons_battle_stat_item_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dire_hit_palette[]; +extern const u8 gFile_graphics_items_icons_battle_stat_item_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_x_attack_palette[]; +extern const u8 gFile_graphics_items_icons_battle_stat_item_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_x_defend_palette[]; +extern const u8 gFile_graphics_items_icons_battle_stat_item_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_x_speed_palette[]; +extern const u8 gFile_graphics_items_icons_battle_stat_item_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_x_accuracy_palette[]; +extern const u8 gFile_graphics_items_icons_battle_stat_item_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_x_special_palette[]; +extern const u8 gFile_graphics_items_icons_poke_doll_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_poke_doll_palette[]; +extern const u8 gFile_graphics_items_icons_fluffy_tail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fluffy_tail_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_repel_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_super_repel_palette[]; +extern const u8 gFile_graphics_items_icons_repel_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_max_repel_palette[]; +extern const u8 gFile_graphics_items_icons_escape_rope_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_escape_rope_palette[]; +extern const u8 gFile_graphics_items_icons_repel_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_repel_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_sun_stone_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_sun_stone_palette[]; +extern const u8 gFile_graphics_items_icons_moon_stone_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_moon_stone_palette[]; +extern const u8 gFile_graphics_items_icons_fire_stone_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fire_stone_palette[]; +extern const u8 gFile_graphics_items_icons_thunder_stone_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_thunder_stone_palette[]; +extern const u8 gFile_graphics_items_icons_water_stone_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_water_stone_palette[]; +extern const u8 gFile_graphics_items_icons_leaf_stone_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_leaf_stone_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_tiny_mushroom_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_mushroom_palette[]; +extern const u8 gFile_graphics_items_icons_big_mushroom_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_mushroom_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_pearl_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pearl_palette[]; +extern const u8 gFile_graphics_items_icons_big_pearl_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pearl_palette[]; +extern const u8 gFile_graphics_items_icons_stardust_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_star_palette[]; +extern const u8 gFile_graphics_items_icons_star_piece_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_star_palette[]; +extern const u8 gFile_graphics_items_icons_nugget_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_nugget_palette[]; +extern const u8 gFile_graphics_items_icons_heart_scale_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_heart_scale_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_orange_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_orange_mail_palette[]; +extern const u8 gFile_graphics_items_icons_harbor_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_harbor_mail_palette[]; +extern const u8 gFile_graphics_items_icons_glitter_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_glitter_mail_palette[]; +extern const u8 gFile_graphics_items_icons_mech_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_mech_mail_palette[]; +extern const u8 gFile_graphics_items_icons_wood_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_wood_mail_palette[]; +extern const u8 gFile_graphics_items_icons_wave_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_wave_mail_palette[]; +extern const u8 gFile_graphics_items_icons_bead_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_bead_mail_palette[]; +extern const u8 gFile_graphics_items_icons_shadow_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_shadow_mail_palette[]; +extern const u8 gFile_graphics_items_icons_tropic_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_tropic_mail_palette[]; +extern const u8 gFile_graphics_items_icons_dream_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dream_mail_palette[]; +extern const u8 gFile_graphics_items_icons_fab_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fab_mail_palette[]; +extern const u8 gFile_graphics_items_icons_retro_mail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_retro_mail_palette[]; +extern const u8 gFile_graphics_items_icons_cheri_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_cheri_berry_palette[]; +extern const u8 gFile_graphics_items_icons_chesto_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_chesto_berry_palette[]; +extern const u8 gFile_graphics_items_icons_pecha_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pecha_berry_palette[]; +extern const u8 gFile_graphics_items_icons_rawst_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_rawst_berry_palette[]; +extern const u8 gFile_graphics_items_icons_aspear_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_aspear_berry_palette[]; +extern const u8 gFile_graphics_items_icons_leppa_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_leppa_berry_palette[]; +extern const u8 gFile_graphics_items_icons_oran_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_oran_berry_palette[]; +extern const u8 gFile_graphics_items_icons_persim_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_persim_berry_palette[]; +extern const u8 gFile_graphics_items_icons_lum_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_lum_berry_palette[]; +extern const u8 gFile_graphics_items_icons_sitrus_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_sitrus_berry_palette[]; +extern const u8 gFile_graphics_items_icons_figy_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_figy_berry_palette[]; +extern const u8 gFile_graphics_items_icons_wiki_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_wiki_berry_palette[]; +extern const u8 gFile_graphics_items_icons_mago_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_mago_berry_palette[]; +extern const u8 gFile_graphics_items_icons_aguav_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_aguav_berry_palette[]; +extern const u8 gFile_graphics_items_icons_iapapa_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_iapapa_berry_palette[]; +extern const u8 gFile_graphics_items_icons_razz_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_razz_berry_palette[]; +extern const u8 gFile_graphics_items_icons_bluk_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_bluk_berry_palette[]; +extern const u8 gFile_graphics_items_icons_nanab_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_nanab_berry_palette[]; +extern const u8 gFile_graphics_items_icons_wepear_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_wepear_berry_palette[]; +extern const u8 gFile_graphics_items_icons_pinap_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pinap_berry_palette[]; +extern const u8 gFile_graphics_items_icons_pomeg_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pomeg_berry_palette[]; +extern const u8 gFile_graphics_items_icons_kelpsy_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_kelpsy_berry_palette[]; +extern const u8 gFile_graphics_items_icons_qualot_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_qualot_berry_palette[]; +extern const u8 gFile_graphics_items_icons_hondew_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_hondew_berry_palette[]; +extern const u8 gFile_graphics_items_icons_grepa_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_grepa_berry_palette[]; +extern const u8 gFile_graphics_items_icons_tamato_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_tamato_berry_palette[]; +extern const u8 gFile_graphics_items_icons_cornn_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_cornn_berry_palette[]; +extern const u8 gFile_graphics_items_icons_magost_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_magost_berry_palette[]; +extern const u8 gFile_graphics_items_icons_rabuta_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_rabuta_berry_palette[]; +extern const u8 gFile_graphics_items_icons_nomel_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_nomel_berry_palette[]; +extern const u8 gFile_graphics_items_icons_spelon_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_spelon_berry_palette[]; +extern const u8 gFile_graphics_items_icons_pamtre_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pamtre_berry_palette[]; +extern const u8 gFile_graphics_items_icons_watmel_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_watmel_berry_palette[]; +extern const u8 gFile_graphics_items_icons_durin_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_durin_berry_palette[]; +extern const u8 gFile_graphics_items_icons_belue_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_belue_berry_palette[]; +extern const u8 gFile_graphics_items_icons_liechi_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_liechi_berry_palette[]; +extern const u8 gFile_graphics_items_icons_ganlon_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ganlon_berry_palette[]; +extern const u8 gFile_graphics_items_icons_salac_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_salac_berry_palette[]; +extern const u8 gFile_graphics_items_icons_petaya_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_petaya_berry_palette[]; +extern const u8 gFile_graphics_items_icons_apicot_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_apicot_berry_palette[]; +extern const u8 gFile_graphics_items_icons_lansat_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_lansat_berry_palette[]; +extern const u8 gFile_graphics_items_icons_starf_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_starf_berry_palette[]; +extern const u8 gFile_graphics_items_icons_enigma_berry_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_enigma_berry_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_bright_powder_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_bright_powder_palette[]; +extern const u8 gFile_graphics_items_icons_in_battle_herb_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_white_herb_palette[]; +extern const u8 gFile_graphics_items_icons_macho_brace_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_macho_brace_palette[]; +extern const u8 gFile_graphics_items_icons_exp_share_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_exp_share_palette[]; +extern const u8 gFile_graphics_items_icons_quick_claw_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_quick_claw_palette[]; +extern const u8 gFile_graphics_items_icons_soothe_bell_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_soothe_bell_palette[]; +extern const u8 gFile_graphics_items_icons_in_battle_herb_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_mental_herb_palette[]; +extern const u8 gFile_graphics_items_icons_choice_band_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_choice_band_palette[]; +extern const u8 gFile_graphics_items_icons_kings_rock_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_kings_rock_palette[]; +extern const u8 gFile_graphics_items_icons_silver_powder_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_silver_powder_palette[]; +extern const u8 gFile_graphics_items_icons_amulet_coin_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_amulet_coin_palette[]; +extern const u8 gFile_graphics_items_icons_cleanse_tag_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_cleanse_tag_palette[]; +extern const u8 gFile_graphics_items_icons_soul_dew_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_soul_dew_palette[]; +extern const u8 gFile_graphics_items_icons_deep_sea_tooth_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_deep_sea_tooth_palette[]; +extern const u8 gFile_graphics_items_icons_deep_sea_scale_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_deep_sea_scale_palette[]; +extern const u8 gFile_graphics_items_icons_smoke_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_smoke_ball_palette[]; +extern const u8 gFile_graphics_items_icons_everstone_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_everstone_palette[]; +extern const u8 gFile_graphics_items_icons_focus_band_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_focus_band_palette[]; +extern const u8 gFile_graphics_items_icons_lucky_egg_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_lucky_egg_palette[]; +extern const u8 gFile_graphics_items_icons_scope_lens_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_scope_lens_palette[]; +extern const u8 gFile_graphics_items_icons_metal_coat_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_metal_coat_palette[]; +extern const u8 gFile_graphics_items_icons_leftovers_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_leftovers_palette[]; +extern const u8 gFile_graphics_items_icons_dragon_scale_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dragon_scale_palette[]; +extern const u8 gFile_graphics_items_icons_light_ball_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_light_ball_palette[]; +extern const u8 gFile_graphics_items_icons_soft_sand_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_soft_sand_palette[]; +extern const u8 gFile_graphics_items_icons_hard_stone_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_hard_stone_palette[]; +extern const u8 gFile_graphics_items_icons_miracle_seed_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_miracle_seed_palette[]; +extern const u8 gFile_graphics_items_icons_black_glasses_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette[]; +extern const u8 gFile_graphics_items_icons_black_belt_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette[]; +extern const u8 gFile_graphics_items_icons_magnet_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_magnet_palette[]; +extern const u8 gFile_graphics_items_icons_mystic_water_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_mystic_water_palette[]; +extern const u8 gFile_graphics_items_icons_sharp_beak_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_sharp_beak_palette[]; +extern const u8 gFile_graphics_items_icons_poison_barb_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_poison_barb_palette[]; +extern const u8 gFile_graphics_items_icons_never_melt_ice_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_never_melt_ice_palette[]; +extern const u8 gFile_graphics_items_icons_spell_tag_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_spell_tag_palette[]; +extern const u8 gFile_graphics_items_icons_twisted_spoon_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_twisted_spoon_palette[]; +extern const u8 gFile_graphics_items_icons_charcoal_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_charcoal_palette[]; +extern const u8 gFile_graphics_items_icons_dragon_fang_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dragon_fang_palette[]; +extern const u8 gFile_graphics_items_icons_silk_scarf_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_silk_scarf_palette[]; +extern const u8 gFile_graphics_items_icons_up_grade_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_up_grade_palette[]; +extern const u8 gFile_graphics_items_icons_shell_bell_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_shell_palette[]; +extern const u8 gFile_graphics_items_icons_sea_incense_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_sea_incense_palette[]; +extern const u8 gFile_graphics_items_icons_lax_incense_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_lax_incense_palette[]; +extern const u8 gFile_graphics_items_icons_lucky_punch_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_lucky_punch_palette[]; +extern const u8 gFile_graphics_items_icons_metal_powder_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_metal_powder_palette[]; +extern const u8 gFile_graphics_items_icons_thick_club_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_thick_club_palette[]; +extern const u8 gFile_graphics_items_icons_stick_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_stick_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_scarf_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_red_scarf_palette[]; +extern const u8 gFile_graphics_items_icons_scarf_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_blue_scarf_palette[]; +extern const u8 gFile_graphics_items_icons_scarf_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pink_scarf_palette[]; +extern const u8 gFile_graphics_items_icons_scarf_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_green_scarf_palette[]; +extern const u8 gFile_graphics_items_icons_scarf_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_yellow_scarf_palette[]; +extern const u8 gFile_graphics_items_icons_mach_bike_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_mach_bike_palette[]; +extern const u8 gFile_graphics_items_icons_coin_case_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_coin_case_palette[]; +extern const u8 gFile_graphics_items_icons_itemfinder_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_itemfinder_palette[]; +extern const u8 gFile_graphics_items_icons_old_rod_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_old_rod_palette[]; +extern const u8 gFile_graphics_items_icons_good_rod_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_good_rod_palette[]; +extern const u8 gFile_graphics_items_icons_super_rod_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_super_rod_palette[]; +extern const u8 gFile_graphics_items_icons_ss_ticket_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ss_ticket_palette[]; +extern const u8 gFile_graphics_items_icons_contest_pass_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_contest_pass_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_wailmer_pail_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_wailmer_pail_palette[]; +extern const u8 gFile_graphics_items_icons_devon_goods_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_devon_goods_palette[]; +extern const u8 gFile_graphics_items_icons_soot_sack_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_soot_sack_palette[]; +extern const u8 gFile_graphics_items_icons_basement_key_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_old_key_palette[]; +extern const u8 gFile_graphics_items_icons_acro_bike_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_acro_bike_palette[]; +extern const u8 gFile_graphics_items_icons_pokeblock_case_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_pokeblock_case_palette[]; +extern const u8 gFile_graphics_items_icons_letter_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette[]; +extern const u8 gFile_graphics_items_icons_eon_ticket_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_eon_ticket_palette[]; +extern const u8 gFile_graphics_items_icons_orb_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_red_orb_palette[]; +extern const u8 gFile_graphics_items_icons_orb_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_blue_orb_palette[]; +extern const u8 gFile_graphics_items_icons_scanner_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_scanner_palette[]; +extern const u8 gFile_graphics_items_icons_go_goggles_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_go_goggles_palette[]; +extern const u8 gFile_graphics_items_icons_meteorite_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_meteorite_palette[]; +extern const u8 gFile_graphics_items_icons_room1_key_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_key_palette[]; +extern const u8 gFile_graphics_items_icons_room2_key_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_key_palette[]; +extern const u8 gFile_graphics_items_icons_room4_key_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_key_palette[]; +extern const u8 gFile_graphics_items_icons_room6_key_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_key_palette[]; +extern const u8 gFile_graphics_items_icons_storage_key_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_old_key_palette[]; +extern const u8 gFile_graphics_items_icons_root_fossil_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_hoenn_fossil_palette[]; +extern const u8 gFile_graphics_items_icons_claw_fossil_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_hoenn_fossil_palette[]; +extern const u8 gFile_graphics_items_icons_devon_scope_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_devon_scope_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fighting_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dragon_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_water_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_psychic_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_poison_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ice_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fighting_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_grass_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fire_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dark_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ice_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ice_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_psychic_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_water_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_grass_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_grass_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_steel_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_electric_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_electric_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ground_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ground_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_psychic_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ghost_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fighting_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_psychic_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_electric_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fire_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_poison_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_rock_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fire_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_rock_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_flying_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dark_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_psychic_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dark_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_steel_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_psychic_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_dark_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fire_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_flying_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_water_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_normal_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fighting_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_water_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_tm_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_water_tm_hm_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; +extern const u8 gFile_graphics_items_icons_oaks_parcel_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_oaks_parcel_palette[]; +extern const u8 gFile_graphics_items_icons_poke_flute_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_poke_flute_palette[]; +extern const u8 gFile_graphics_items_icons_secret_key_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_secret_key_palette[]; +extern const u8 gFile_graphics_items_icons_bike_voucher_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_bike_voucher_palette[]; +extern const u8 gFile_graphics_items_icons_gold_teeth_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_gold_teeth_palette[]; +extern const u8 gFile_graphics_items_icons_old_amber_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_old_amber_palette[]; +extern const u8 gFile_graphics_items_icons_card_key_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_card_key_palette[]; +extern const u8 gFile_graphics_items_icons_lift_key_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_key_palette[]; +extern const u8 gFile_graphics_items_icons_helix_fossil_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_kanto_fossil_palette[]; +extern const u8 gFile_graphics_items_icons_dome_fossil_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_kanto_fossil_palette[]; +extern const u8 gFile_graphics_items_icons_silph_scope_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_silph_scope_palette[]; +extern const u8 gFile_graphics_items_icons_bicycle_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_bicycle_palette[]; +extern const u8 gFile_graphics_items_icons_town_map_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_town_map_palette[]; +extern const u8 gFile_graphics_items_icons_vs_seeker_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_vs_seeker_palette[]; +extern const u8 gFile_graphics_items_icons_fame_checker_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_fame_checker_palette[]; +extern const u8 gFile_graphics_items_icons_tm_case_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_tm_case_palette[]; +extern const u8 gFile_graphics_items_icons_berry_pouch_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_berry_pouch_palette[]; +extern const u8 gFile_graphics_items_icons_teachy_tv_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_teachy_tv_palette[]; +extern const u8 gFile_graphics_items_icons_tri_pass_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_tri_pass_palette[]; +extern const u8 gFile_graphics_items_icons_rainbow_pass_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_rainbow_pass_palette[]; +extern const u8 gFile_graphics_items_icons_tea_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_tea_palette[]; +extern const u8 gFile_graphics_items_icons_mystic_ticket_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_mystic_ticket_palette[]; +extern const u8 gFile_graphics_items_icons_aurora_ticket_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_aurora_ticket_palette[]; +extern const u8 gFile_graphics_items_icons_powder_jar_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_powder_jar_palette[]; +extern const u8 gFile_graphics_items_icons_gem_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_ruby_palette[]; +extern const u8 gFile_graphics_items_icons_gem_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_sapphire_palette[]; +extern const u8 gFile_graphics_items_icons_return_to_field_arrow_sheet[]; +extern const u8 gFile_graphics_items_icon_palettes_return_to_field_arrow_palette[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/help_system.h b/include/help_system.h index 632788148..3ba0cf475 100644 --- a/include/help_system.h +++ b/include/help_system.h @@ -2,9 +2,92 @@ #define GUARD_HELP_SYSTEM_H #include "global.h" +#include "list_menu.h" +#include "blit.h" +struct HelpSystemListMenu_sub +{ + struct ListMenuItem * items; + u16 totalItems; + u16 maxShowed; + u8 left; + u8 top; +}; + +struct HelpSystemListMenu +{ + struct HelpSystemListMenu_sub sub; + u8 field_0C; + u8 field_0D; + u8 field_0E; + u8 filler_10[0xC]; +}; + +extern struct HelpSystemListMenu gHelpSystemListMenu; +extern struct ListMenuItem gHelpSystemListMenuItems[]; extern bool8 gUnknown_3005ECC; +extern u8 gUnknown_203F175; +// help_system_812B1E0 +void sub_812B1E0(u8); +void HelpSystem_SetSomeVariable2(u8); +bool8 sub_812B40C(void); +bool8 sub_812B45C(void); +void sub_812B478(void); void sub_812B484(void); +void sub_812B4B8(void); +bool8 sub_812BB9C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BC54(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BC80(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BCA8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BCD0(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BD2C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BD64(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BD98(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +void sub_812BDEC(void); +bool8 sub_812BE10(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BEEC(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BF18(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +bool8 sub_812BF88(void); + +// help_system +bool8 RunHelpSystemCallback(void); +void SaveCallbacks(void); +void SaveMapGPURegs(void); +void SaveMapTiles(void); +void SaveMapTextColors(void); +void RestoreCallbacks(void); +void RestoreGPURegs(void); +void RestoreMapTiles(void); +void RestoreMapTextColors(void); +void CommitTilemap(void); +void sub_813BCF4(void); +void sub_813BD14(u8); +void sub_813BD5C(u8); +void sub_813BDA4(u8); +void sub_813BDE8(u8); +void sub_813BE30(u8); +void sub_813BE78(u8); +void sub_813BEE4(u8); +void sub_813BF50(u8); +void sub_813BFC0(u8); +void sub_813C004(u8, u8); +void HelpSystem_PrintTextRightAlign_Row52(const u8 *str); +void HelpSystem_PrintTextAt(const u8 *, u8, u8); +void HelpSystem_PrintTwoStrings(const u8 *a0, const u8 *a1); +void HelpSystem_PrintText_813C584(const u8 *str); +void HelpSystem_FillPanel2(void); +void HelpSystem_FillPanel1(void); +void HelpSystem_InitListMenuController(struct HelpSystemListMenu *, u8, u8); +void HelpSystem_SetInputDelay(u8); +s32 HelpSystem_GetMenuInput(void); +void sub_813C75C(void); + +void DecompressAndRenderGlyph(u8 font, u16 glyph, struct Bitmap *srcBlit, struct Bitmap *destBlit, u8 *destBuffer, u8 x, u8 y, u8 width, u8 height); +void HelpSystem_PrintText_Row61(const u8 * str); +void HelpSystem_FillPanel3(void); +void PrintListMenuItems(void); +void PlaceListMenuCursor(void); +bool8 MoveCursor(u8 by, u8 dirn); #endif //GUARD_HELP_SYSTEM_H diff --git a/include/item.h b/include/item.h index 75c56c94d..0f0adbca8 100644 --- a/include/item.h +++ b/include/item.h @@ -1,18 +1,20 @@ -#ifndef ITEM_H -#define ITEM_H +#ifndef GUARD_ITEM_H +#define GUARD_ITEM_H + +#include "global.h" typedef void (*ItemUseFunc)(u8); struct Item { - u8 name[14]; + u8 name[ITEM_NAME_LENGTH]; u16 itemId; u16 price; u8 holdEffect; u8 holdEffectParam; const u8 *description; u8 importance; - u8 unk19; + u8 exitsBagOnUse; u8 pocket; u8 type; ItemUseFunc fieldUseFunc; @@ -44,7 +46,7 @@ bool8 CheckPCHasItem(u16 itemId, u16 count); bool8 AddPCItem(u16 itemId, u16 count); void RemovePCItem(u8 index, u16 count); void SwapRegisteredBike(void); -const struct Item *ItemId_GetItem(u16 itemId); +const u8 *ItemId_GetName(u16 itemId); u16 ItemId_GetId(u16 itemId); u16 ItemId_GetPrice(u16 itemId); u8 ItemId_GetHoldEffect(u16 itemId); @@ -60,8 +62,20 @@ u8 ItemId_GetBattleUsage(u16 itemId); ItemUseFunc ItemId_GetBattleFunc(u16 itemId); u8 ItemId_GetSecondaryId(u16 itemId); u16 itemid_get_market_price(u16 itemId); -void sub_809A2DC(void); -void sub_809A2A4(void); -void sub_8099E90(u16, u8 *); +void ClearItemSlotsInAllBagPockets(void); +void ClearPCItemSlots(void); +void CopyItemName(u16, u8 *); +void sub_809A824(u16 itemId); +bool8 AddBagItem(u16 itemId, u16 amount); -#endif // ITEM_H +void SortPocketAndPlaceHMsFirst(struct BagPocket *); +u16 BagGetItemIdByPocketPosition(u8 a0, u16 a1); +u16 BagGetQuantityByPocketPosition(u8 a0, u16 a1); +bool8 itemid_is_unique(u16 itemId); +void BagPocketCompaction(struct ItemSlot * slots, u8 capacity); +u16 GetPcItemQuantity(u16 *); + +void ItemPcCompaction(void); +void RemoveItemFromPC(u16 itemId, u16 quantity); + +#endif // GUARD_ITEM_H diff --git a/include/item_icon.h b/include/item_icon.h deleted file mode 100644 index 75e2475f3..000000000 --- a/include/item_icon.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Created by scott on 10/20/2017. -// - -#ifndef GUARD_ITEM_ICON_H -#define GUARD_ITEM_ICON_H - -#include "global.h" - -extern EWRAM_DATA void *gUnknown_0203CEBC; -extern EWRAM_DATA void *gUnknown_0203CEC0; - -extern const struct SpriteTemplate gUnknown_08614FF4; - -bool8 AllocItemIconTemporaryBuffers(void); -void CopyItemIconPicTo4x4Buffer(void *src, void *dest); -void FreeItemIconTemporaryBuffers(void); - -#endif //GUARD_ITEM_ICON_H diff --git a/include/item_menu.h b/include/item_menu.h index a6128b9fb..2e83ed1f4 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -2,16 +2,40 @@ #define GUARD_ITEM_MENU_H #include "global.h" +#include "task.h" // Exported type declarations // Exported RAM declarations +struct BagStruct +{ + void (*bagCallback)(void); + u8 location; + u8 pocket; + u16 unk6; + u8 cursorPosition[6]; + u8 scrollPosition[6]; +}; + +extern struct BagStruct gUnknown_203ACFC; + extern u16 gSpecialVar_ItemId; // Exported ROM declarations void sub_81AAC50(void); void sub_81AAC70(void); -void UseFameCheckerFromMenu(void); +void sub_8108CF0(void); +void sub_810B108(u8); +void ReturnToBagFromKeyItem(void); +void ItemMenu_MoveItemSlotToNewPositionInArray(struct ItemSlot * slots, int pos1, int pos2); +void ItemMenu_StartFadeToExitCallback(u8 taskId); +void sub_8108CB4(void); +void ItemMenu_SetExitCallback(void (*)(void)); +void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc); +void sub_810A1F8(u8 taskId); +void sub_8107ECC(void); +void sub_8108DC8(u8 pocketId); +void sub_81089F4(u8 pocketId); #endif //GUARD_ITEM_MENU_H diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index 7fcd6d5e1..b5b5c6b0b 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -3,6 +3,28 @@ #include "global.h" -u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3); +extern void * gUnknown_2039884; + +extern const struct CompressedSpriteSheet gUnknown_83D41E4; +extern const struct CompressedSpriteSheet gUnknown_83D41EC; +extern const struct CompressedSpritePalette gUnknown_83D41F4; + +extern const struct CompressedSpriteSheet gBagSwapSpriteSheet; +extern const struct CompressedSpritePalette gBagSwapSpritePalette; + +void ResetItemMenuIconState(void); +void sub_80985E4(void); +void DestroyItemMenuIcon(bool8 a0); +void CreateItemMenuIcon(u16 itemId, bool8 a0); +void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); +u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId); +u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); +void sub_80989A0(u16 itemId, u8 idx); +void sub_80986A8(s16 x, u16 y); +void sub_8098660(u8); +void sub_8098528(u8); +void sub_8098580(void); +const void * sub_8098974(u16 itemId, u8 ptrId); +void sub_80984FC(u8 animNum); #endif // GUARD_ITEM_MENU_ICONS diff --git a/include/item_pc.h b/include/item_pc.h new file mode 100644 index 000000000..2fecf69a8 --- /dev/null +++ b/include/item_pc.h @@ -0,0 +1,7 @@ +#ifndef GUARD_ITEM_PC_H +#define GUARD_ITEM_PC_H + +void ItemPc_Init(u8 a0, MainCallback callback); +void ItemPc_SetInitializedFlag(u8); + +#endif //GUARD_ITEM_PC_H diff --git a/include/item_use.h b/include/item_use.h index 5ec5f2b33..0a45762f7 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -4,6 +4,39 @@ #include "global.h" void sub_80A1E0C(u8); -void sub_80A2294(u8, u8, u16, u16); +void ItemUse_SetQuestLogEvent(u8, struct Pokemon *, u16, u16); + +void FieldUseFunc_OrangeMail(u8 taskId); +void FieldUseFunc_MachBike(u8 taskId); +void FieldUseFunc_OldRod(u8 taskId); +void FieldUseFunc_CoinCase(u8 taskId); +void FieldUseFunc_PowderJar(u8 taskId); +void FieldUseFunc_PokeFlute(u8 taskId); +void FieldUseFunc_Medicine(u8 taskId); +void FieldUseFunc_Ether(u8 taskId); +void FieldUseFunc_PpUp(u8 taskId); +void FieldUseFunc_RareCandy(u8 taskId); +void FieldUseFunc_EvoItem(u8 taskId); +void FieldUseFunc_SacredAsh(u8 taskId); +void FieldUseFunc_TmCase(u8 taskId); +void FieldUseFunc_BerryPouch(u8 taskId); +void BattleUseFunc_BerryPouch(u8 taskId); +void FieldUseFunc_TeachyTv(u8 taskId); +void FieldUseFunc_SuperRepel(u8 taskId); +void FieldUseFunc_BlackFlute(u8 taskId); +void FieldUseFunc_TownMap(u8 taskId); +void FieldUseFunc_FameChecker(u8 taskId); +void FieldUseFunc_VsSeeker(u8 taskId); +void BattleUseFunc_PokeBallEtc(u8 taskId); +void BattleUseFunc_PokeFlute(u8 taskId); +void BattleUseFunc_GuardSpec(u8 taskId); +void BattleUseFunc_Medicine(u8 taskId); +void BattleUseFunc_Ether(u8 taskId); +void BattleUseFunc_PokeDoll(u8 taskId); +void FieldUseFunc_OakStopsYou(u8 taskId); +void ItemUseOutOfBattle_EscapeRope(u8 taskId); +void ItemUseOutOfBattle_EnigmaBerry(u8 taskId); +void ItemUseInBattle_EnigmaBerry(u8 taskId); +void ItemUseOutOfBattle_Itemfinder(u8 taskId); #endif //GUARD_ITEM_USE_H diff --git a/include/itemfinder.h b/include/itemfinder.h new file mode 100644 index 000000000..2b882b144 --- /dev/null +++ b/include/itemfinder.h @@ -0,0 +1,6 @@ +#ifndef GUARD_ITEMFINDER_H +#define GUARD_ITEMFINDER_H + +void sub_813EC8C(u8 taskId); + +#endif //GUARD_ITEMFINDER_H diff --git a/include/librfu.h b/include/librfu.h index dbc8a41a6..90f69cb5a 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -67,6 +67,33 @@ union RfuPacket struct RfuPacket8 rfuPacket8; }; +struct UnkLinkRfuStruct_02022B14Substruct +{ + u16 unk_00_0:4; + u16 unk_00_4:1; + u16 unk_00_5:1; + u16 unk_00_6:1; + u16 unk_00_7:1; + u16 unk_01_0:1; + u16 unk_01_1:1; + u16 unk_01_2:4; + u16 unk_01_6:2; + u8 playerTrainerId[2]; +}; + +struct __attribute__((packed, aligned(2))) UnkLinkRfuStruct_02022B14 +{ + struct UnkLinkRfuStruct_02022B14Substruct unk_00; + u8 unk_04[4]; + u16 species:10; + u16 type:6; + u8 unk_0a_0:7; + u8 unk_0a_7:1; + u8 playerGender:1; + u8 unk_0b_1:7; + u8 unk_0c; +}; + struct RfuStruct { vs32 unk_0; diff --git a/include/link.h b/include/link.h index 93ad9dfe1..33f04a42a 100644 --- a/include/link.h +++ b/include/link.h @@ -147,7 +147,7 @@ extern bool8 gReceivedRemoteLinkPlayers; extern bool8 gLinkVSyncDisabled; extern u8 gUnknown_3003F84; -extern u64 gUnknown_3003FB4; +extern u64 gSioMlt_Recv; void Task_DestroySelf(u8); void OpenLink(void); @@ -204,7 +204,7 @@ bool8 sub_800AA48(void); void sub_800A5BC(void); void sub_800AA80(u8); void sub_80098D8(void); -void sub_80098B8(void); +void CloseLink(void); bool8 sub_800A4BC(void); #endif // GUARD_LINK_H diff --git a/include/link_rfu.h b/include/link_rfu.h index 6e54fcc6c..7e0ea2068 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -1,9 +1,22 @@ #ifndef GUARD_LINK_RFU_H #define GUARD_LINK_RFU_H -void sub_8142504(const u8 *str); -bool32 mevent_0814257C(u8 * cmdPtr, const u8 * src); +struct Padded_U8 +{ + u8 value; +}; + +void AddTextPrinterToWindow1(const u8 *str); +bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src); void sub_80FA190(void); -void sub_8142420(void); +void MG_DrawCheckerboardPattern(void); +void task_add_05_task_del_08FA224_when_no_RfuFunc(void); +bool8 IsNoOneConnected(void); +void DestroyWirelessStatusIndicatorSprite(void); +void MEvent_CreateTask_CardOrNewsWithFriend(u8); +void MEvent_CreateTask_CardOrNewsOverWireless(u8); +void MEvent_CreateTask_Leader(u8); +void sub_80F9E2C(void * data); +u8 sub_8116DE0(void); #endif //GUARD_LINK_RFU_H diff --git a/include/list_menu.h b/include/list_menu.h index 8834e5215..290b1d925 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -2,6 +2,7 @@ #define GUARD_LIST_MENU_H #include "global.h" +#include "window.h" // Exported type declarations @@ -9,8 +10,8 @@ struct ListMenuItem { - const u8 *unk_00; - s32 unk_04; + const u8 *label; + s32 index; }; struct ListMenu; @@ -43,19 +44,24 @@ struct ListMenu { u16 selectedRow; u8 unk_1C; u8 unk_1D; - u8 unk_1E; + u8 taskId; u8 unk_1F; }; extern struct ListMenuTemplate gUnknown_03006310; +extern struct ListMenuTemplate gMultiuseListMenuTemplate; // Exported ROM declarations u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2); s32 ListMenuHandleInput(u8 id); -void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2); +void ListMenuGetScrollAndRow(u8 a0, u16 *a1, u16 *a2); void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2); -void sub_810713C(u8, u8, u8); +void DestroyListMenu(u8, u16 *, u16 *); u16 ListMenuGetYCoordForPrintingArrowCursor(u8); +void sub_8107D38(u8, u8); +s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum); +void ListMenuDefaultCursorMoveFunc(s32, u8, struct ListMenu *); +void sub_8107BD0(u8 taskId, u8 attr, s32 value); #endif //GUARD_LIST_MENU_H diff --git a/include/load_save.h b/include/load_save.h index 064e6dff2..bd33f89c8 100644 --- a/include/load_save.h +++ b/include/load_save.h @@ -24,5 +24,7 @@ void SetSaveBlocksPointers(void); void MoveSaveBlocks_ResetHeap(void); void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey); void ApplyNewEncryptionKeyToBagItems(u32 encryptionKey); +void ApplyNewEncryptionKeyToWord(u32 * word, u32 encryptionKey); +void ApplyNewEncryptionKeyToHword(u16 * hword, u32 encryptionKey); #endif // GUARD_LOAD_SAVE_H diff --git a/include/m4a.h b/include/m4a.h index 24b454104..2bb7f2124 100644 --- a/include/m4a.h +++ b/include/m4a.h @@ -5,6 +5,11 @@ #include "gba/m4a_internal.h" +extern struct MusicPlayerInfo gMPlayInfo_BGM; +extern struct MusicPlayerInfo gMPlayInfo_SE1; +extern struct MusicPlayerInfo gMPlayInfo_SE2; +extern struct MusicPlayerInfo gMPlayInfo_SE3; + void m4aSoundVSync(void); void m4aSoundVSyncOn(void); diff --git a/include/mail.h b/include/mail.h index 5d6ad559b..9ffccbb5b 100644 --- a/include/mail.h +++ b/include/mail.h @@ -21,5 +21,6 @@ bool8 MonHasMail(struct Pokemon *mon); void TakeMailFromMon(struct Pokemon *mon); u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail); void ClearMailStruct(struct MailStruct *mail); +void sub_80BEBEC(struct MailStruct * mail, void (* callback)(void), u8 a2); #endif // GUARD_MAIL_H diff --git a/include/main.h b/include/main.h index 3fb254c95..a250475cb 100644 --- a/include/main.h +++ b/include/main.h @@ -3,8 +3,6 @@ #include "global.h" -#include "global.h" - typedef void (*MainCallback)(void); typedef void (*IntrCallback)(void); typedef void (*IntrFunc)(void); @@ -66,6 +64,7 @@ void DoSoftReset(void); void ClearPokemonCrySongs(void); void RestoreSerialTimer3IntrHandlers(void); void SetVBlankCounter1Ptr(u32 *ptr); +void DisableVBlankCounter1(void); extern const char RomHeaderGameCode[4]; extern const char RomHeaderSoftwareVersion; diff --git a/include/map_obj_80688E4.h b/include/map_obj_80688E4.h index 9ab76646d..bfac00378 100644 --- a/include/map_obj_80688E4.h +++ b/include/map_obj_80688E4.h @@ -4,5 +4,7 @@ #include "global.h" void player_bitmagic(void); +void FreezeMapObject(struct MapObject *); +void FreezeMapObjectsExceptOne(u8 mapObjectId); #endif //GUARD_MAP_OBJ_80688E4_H diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h index c8e075658..0d130973b 100644 --- a/include/map_obj_lock.h +++ b/include/map_obj_lock.h @@ -3,12 +3,13 @@ #include "global.h" -bool8 sub_80983C4(void); +bool8 sub_8069590(void); void ScriptFreezeMapObjects(void); -bool8 sub_809847C(void); +bool8 sub_8069648(void); void LockSelectedMapObject(void); void sub_8098630(void); bool8 sub_8098734(void); void sub_80696C0(void); +bool8 walkrun_is_standing_still(void); #endif // GUARD_MAP_OBJ_LOCK_H diff --git a/include/map_preview_screen.h b/include/map_preview_screen.h new file mode 100644 index 000000000..8d9114b82 --- /dev/null +++ b/include/map_preview_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_MAP_PREVIEW_SCREEN_H +#define GUARD_MAP_PREVIEW_SCREEN_H + +void sub_80F85BC(u16 a0); + +#endif //GUARD_MAP_PREVIEW_SCREEN_H diff --git a/include/math_util.h b/include/math_util.h new file mode 100644 index 000000000..74dbbe98e --- /dev/null +++ b/include/math_util.h @@ -0,0 +1,6 @@ +#ifndef GUARD_MATH_UTIL_H +#define GUARD_MATH_UTIL_H + +s16 sub_80D8B90(s16 y); + +#endif //GUARD_MATH_UTIL_H diff --git a/include/menews_jisan.h b/include/menews_jisan.h index 4db5a7be2..ca09d4347 100644 --- a/include/menews_jisan.h +++ b/include/menews_jisan.h @@ -3,7 +3,7 @@ #include "global.h" -void sub_8146C30(u32 a0); +void GenerateRandomNews(u32 a0); void sub_8146C88(void); void sub_8146CA4(void); diff --git a/include/menu.h b/include/menu.h index b932693f7..fa8552484 100644 --- a/include/menu.h +++ b/include/menu.h @@ -15,7 +15,7 @@ struct MenuAction } func; }; -void box_print(u8, u8, u8, u8, const void *, s8, const u8 *); +void AddTextPrinterParameterized3(u8, u8, u8, u8, const void *, s8, const u8 *); void sub_8198070(u8 windowId, bool8 copyToVram); void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock); void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette); @@ -30,12 +30,26 @@ void reset_temp_tile_data_buffers(void); int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode); bool8 free_temp_tile_data_buffers_if_possible(void); u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd -void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); -s8 ProcessMenuInputNoWrap_(void); +//void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); +s8 Menu_ProcessInputNoWrapClearOnChoose(void); void do_scheduled_bg_tilemap_copies_to_vram(void); void clear_scheduled_bg_copies_to_vram(void); -void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str); +void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str); void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3); -void sub_810F4D8(u8 windowId, bool32 someBool); +void ClearMenuWindow(u8 windowId, bool8 copyToVram); +void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); +void CreateWindow_SnapRight_StdPal(u8, u8, u8, u8, u16); +void Menu_PrintHelpSystemUIHeader(const u8 *, const u8 *, u8, u32, u8); +void PrintTextOnRightSnappedWindow(const u8 *, u32, u8); +void sub_810F71C(void); +void sub_810F740(void); +u8 ProgramAndPlaceMenuCursorOnWindow(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPosition); +void CreateYesNoMenu(const struct WindowTemplate *, u8, u8, u8, u16, u8, u8); + +void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); +bool8 IsBlendTaskActive(void); +void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); +void ClearMenuWindow_BorderThickness2(u8 windowId, u8 a1); +void PrintTextArray(u8, u8, u8, u8, u8, u8, const struct MenuAction *); #endif // GUARD_MENU_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index b193388e5..25ef3252e 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -2,6 +2,7 @@ #define GUARD_MENU_HELPERS_H #include "global.h" +#include "task.h" // Exported type declarations @@ -18,6 +19,14 @@ void sub_812225C(u16 *, u16 *, u8, u8); void sub_8122298(u16 *, u16 *, u8, u8, u8); void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data); bool8 sub_81221AC(void); -bool8 sub_80BF708(void); +bool16 sub_80BF518(u8 textPrinterId); +bool8 sub_80BF72C(void); +bool8 MenuHelpers_LinkSomething(void); +void VblankHblankHandlerSetZero(void); +void InitBgReg(void); +u8 sub_80BF8E4(void); +u8 sub_80BF848(s16 * a0, u16 a1); +void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc); +void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate * unk1, u8 unk2, u8 unk3, u8 unk4, u8 unk5, u8 unk6, const struct YesNoFuncTable *ptrs); #endif //GUARD_MENU_HELPERS_H diff --git a/include/menu_indicators.h b/include/menu_indicators.h index f195ceb6d..76f25224c 100644 --- a/include/menu_indicators.h +++ b/include/menu_indicators.h @@ -7,25 +7,24 @@ // Exported RAM declarations -struct ScrollIndicatorArrowPairTemplate +struct ScrollArrowsTemplate { - u8 unk_00; - u8 unk_01; - u8 unk_02; - u8 unk_03; - u8 unk_04; - u8 unk_05; - u16 unk_06; - u16 unk_08; - u16 unk_0a; - u16 unk_0c; - u16 unk_0e_0:4; - u16 unk_0e_4:12; + u8 firstArrowType; + u8 firstX; + u8 firstY; + u8 secondArrowType; + u8 secondX; + u8 secondY; + u16 fullyUpThreshold; + u16 fullyDownThreshold; + u16 tileTag; + u16 palTag; + u8 palNum; }; // Exported ROM declarations -u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *); -u8 AddScrollIndicatorArrowPair(const struct ScrollIndicatorArrowPairTemplate * template, u16 * a1); +u8 AddScrollIndicatorArrowPairParameterized(u8, u8, u8, u8, s32, u16, u16, u16 *); +u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate * template, u16 * a1); void RemoveScrollIndicatorArrowPair(u8); #endif //GUARD_MENU_INDICATORS_H diff --git a/include/mevent.h b/include/mevent.h index d940b212c..b61fa732d 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -23,9 +23,9 @@ struct MEventStruct_Unk1442CC struct MEvent_Str_1 { - u16 unk_000; - size_t unk_004; - const void * unk_008; + u16 status; + size_t size; + const void * data; }; struct MEvent_Str_2 @@ -33,12 +33,13 @@ struct MEvent_Str_2 u8 fill_00[0x40]; }; -struct MEventBuffer_3120_Sub * sub_8143D58(void); -struct MEventBuffer_32E0_Sub * sav1_get_mevent_buffer_1(void); +struct MEventBuffer_3120_Sub * GetSavedWonderNews(void); +struct MEventBuffer_32E0_Sub * GetSavedWonderCard(void); struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void); struct MysteryEventStruct * sub_8143D94(void); bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src); -bool32 sub_8143E1C(void); +bool32 ValidateReceivedWonderNews(void); +bool32 ValidateReceivedWonderCard(void); bool32 sub_8143EF4(const u8 * src); bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data); void sub_814410C(struct MEventBuffer_32E0_Sub * buffer); @@ -49,5 +50,21 @@ u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * u32 sub_8144434(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused); bool32 sub_8144474(const struct MEventStruct_Unk1442CC * a0, const u16 * a1); u16 sub_81444B0(const struct MEventStruct_Unk1442CC * a0, u32 command); +bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6); +bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0); +s32 FadeToWonderCardMenu(void); +s32 FadeToWonderNewsMenu(void); +void DestroyWonderCard(void); +void DestroyWonderNews(void); +void DestroyWonderCardResources(void); +void DestroyWonderNewsResources(void); +s32 FadeOutFromWonderCard(bool32 flag); +s32 FadeOutFromWonderNews(bool32 flag); +bool32 CheckReceivedGiftFromWonderCard(void); +void MENews_AddScrollIndicatorArrowPair(void); +void MENews_RemoveScrollIndicatorArrowPair(void); +bool32 WonderNews_Test_Unk_02(void); +bool32 WonderCard_Test_Unk_08_6(void); +u32 MENews_GetInput(u16 input); #endif //GUARD_MEVENT_H diff --git a/include/mevent_server.h b/include/mevent_server.h index e593b5dbd..10ee96401 100644 --- a/include/mevent_server.h +++ b/include/mevent_server.h @@ -37,7 +37,7 @@ struct mevent_cmd_ish u32 parameter; }; -struct mevent_srv_ish +struct mevent_client { u32 unk_00; u32 param; @@ -83,13 +83,13 @@ void mevent_srv_sub_init(struct mevent_srv_sub * svr, u32 sendPlayerNo, u32 recv void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void * src, u32 size); void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void * dest); -void mevent_srv_ish_do_init(void); -u32 mevent_srv_ish_do_exec(u16 * a0); -void mevent_srv_ish_inc_flag(void); -void * mevent_srv_ish_get_buffer(void); -void mevent_srv_ish_set_param(u32 a0); -void mevent_srv_common_do_init_1(void); -void mevent_srv_common_do_init_2(void); -u32 mevent_srv_init_do_exec(u16 * a0); +void mevent_client_do_init(void); +u32 mevent_client_do_exec(u16 * a0); +void mevent_client_inc_flag(void); +void * mevent_client_get_buffer(void); +void mevent_client_set_param(u32 a0); +void mevent_srv_init_wnews(void); +void mevent_srv_new_wcard(void); +u32 mevent_srv_common_do_exec(u16 * a0); #endif //GUARD_MEVENT_SERVER_H diff --git a/include/money.h b/include/money.h index fa63e321c..5bcef18d4 100644 --- a/include/money.h +++ b/include/money.h @@ -10,13 +10,14 @@ void AddMoney(u32* moneyPtr, u32 toAdd); void RemoveMoney(u32* moneyPtr, u32 toSub); bool8 IsEnoughForCostInVar0x8005(void); void SubtractMoneyFromVar0x8005(void); -void PrintMoneyAmountInMoneyBoxInMoneyBox(u8 windowId, int amount, u8 speed); -void PrintMoneyAmountInMoneyBox(u8 windowId, u8 x, u8 y, int amount, u8 speed); -void PrintMoneyAmountInMoneyBoxInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount); +void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed); +void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed); +void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount); void ChangeAmountInMoneyBox(int amount); void DrawMoneyBox(int amount, u8 x, u8 y); void HideMoneyBox(void); void AddMoneyLabelObject(u16 x, u16 y); void RemoveMoneyLabelObject(void); +void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed); #endif // GUARD_MONEY_H diff --git a/include/mystery_event_msg.h b/include/mystery_event_msg.h index e96c3069b..ac228576d 100644 --- a/include/mystery_event_msg.h +++ b/include/mystery_event_msg.h @@ -1,7 +1,7 @@ #ifndef GUARD_MYSTERY_EVENT_MSG_H #define GUARD_MYSTERY_EVENT_MSG_H -#include +#include "gba/gba.h" extern const u8 gText_MysteryGiftBerry[]; extern const u8 gText_MysteryGiftBerryTransform[]; diff --git a/include/mystery_gift_menu.h b/include/mystery_gift_menu.h index 24bf85a13..c7b047f56 100644 --- a/include/mystery_gift_menu.h +++ b/include/mystery_gift_menu.h @@ -1,9 +1,9 @@ #ifndef GUARD_MYSTERY_GIFT_MENU_H #define GUARD_MYSTERY_GIFT_MENU_H -extern bool8 gUnknown_203F3B8; +extern bool8 gGiftIsFromEReader; -void sub_81422FC(void); -void sub_8142344(bool8, bool32); +void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void); +void PrintMysteryGiftOrEReaderTopMenu(bool8, bool32); #endif //GUARD_MYSTERY_GIFT_MENU_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 2a68a35e6..ed933089f 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -9,15 +9,28 @@ void sub_81973A4(void); void sub_81973C4(u8, u8); void sub_819746C(u8 windowId, bool8 copyToVram); void sub_81973FC(u8, u8); -u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor); +u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor); void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *src, TaskFunc callback); void sub_8197434(u8 a0, u8 a1); void SetStandardWindowBorderStyle(u8 a0, u8 a1); void sub_8197930(void); u8 GetPlayerTextSpeed(void); -void sub_80F6F54(u8, u8); -u8 sub_80F78A8(void); +void ClearDialogWindowAndFrame(u8, u8); +u8 GetTextSpeedSetting(void); void sub_80F6E9C(void); -void sub_80F6EE4(u8 windowId, bool8 transfer); +void DrawDialogueFrame(u8 windowId, bool8 transfer); +void sub_80F7974(const u8 *); +u8 GetStartMenuWindowId(void); +void sub_80F7998(void); +void sub_80F69E8(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); +void DrawStdWindowFrame(u8 windowId, bool8 copyNow); +void InitStandardTextBoxWindows(void); +void ResetBg0(void); +void Menu_LoadStdPalAt(u16); +void * malloc_and_decompress(const void * src, u32 * size); +u16 sub_80F796C(void); +void SetBgRectPal(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette); +void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void * gfx, u32 size, u16 a3, u8 a4); +void ClearStdWindowAndFrame(u8 taskId, bool8 copyNow); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/include/oak_speech.h b/include/oak_speech.h new file mode 100644 index 000000000..d5d94bc83 --- /dev/null +++ b/include/oak_speech.h @@ -0,0 +1,6 @@ +#ifndef GUARD_OAK_SPEECH_H +#define GUARD_OAK_SPEECH_H + +void StartNewGameScene(void); + +#endif //GUARD_OAK_SPEECH_H diff --git a/include/overworld.h b/include/overworld.h index 50ac09d9e..ab77542c2 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -24,9 +24,15 @@ struct UCoords32 u32 x, y; }; +extern struct UCoords32 gDirectionToVectors[]; + extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; extern MainCallback gFieldCallback; +extern struct WarpData gUnknown_2031DBC; + +extern u8 gUnknown_2031DE0; + void IncrementGameStat(u8 index); void Overworld_SetMapObjTemplateCoords(u8, s16, s16); @@ -35,7 +41,10 @@ void Overworld_SetMapObjTemplateMovementType(u8, u8); void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); -void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetDynamicWarpWithCoords(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void SetEscapeWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void Overworld_SetHealLocationWarp(u8); void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void sub_8084E2C(s8, s8, s8, s8, s8); @@ -58,7 +67,7 @@ void strange_npc_table_clear(void); const struct MapHeader *get_mapheader_by_bank_and_number(u16, u16); void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); void sub_8086230(void); -void c2_exit_to_overworld_2_switch(void); +void CB2_ReturnToField(void); bool32 sub_8087598(void); void c2_exit_to_overworld_1_continue_scripts_restart_music(void); void warp_in(void); @@ -79,13 +88,33 @@ void sub_805726C(void); void sub_8057430(void); void sub_8055DC4(void); -u8 sav1_map_get_name(void); +u8 GetCurrentRegionMapSectionId(void); +void SetCurrentMapLayout(u16 mapDataId); +void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y); + +void ResetInitialPlayerAvatarState(void); void sub_8055D40(u16 mapDataId); +void CleanupOverworldWindowsAndTilemaps(void); extern u8 gUnknown_2031DD8; extern u8 gUnknown_2036E28; -extern bool8 (* gUnknown_3005024)(void); +extern void (*gFieldCallback)(void); +extern bool8 (* gFieldCallback2)(void); + +void SetLastHealLocationWarp(u8 healLocaionId); +void sub_8055864(u8 mapGroup, u8 mapNum); +void CB2_NewGame(void); +bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); +void Overworld_ResetStateAfterTeleport(void); + +void Overworld_FadeOutMapMusic(void); +void sub_805671C(void); +void sub_8055DC4(void); +bool8 sub_8055FC4(void); +bool8 is_light_level_8_or_9(u8 mapType); +bool32 sub_8055C9C(void); +void sub_8054D70(void); #endif //GUARD_ROM4_H diff --git a/include/palette.h b/include/palette.h index 3af0d5d7b..31c8ffefe 100644 --- a/include/palette.h +++ b/include/palette.h @@ -70,6 +70,8 @@ void BeginHardwarePaletteFade(u8, u8, u8, u8, u8); void BlendPalettes(u32, u8, u16); void BlendPalettesUnfaded(u32, u8, u16); void sub_80716F8(const u16 *, u16 *, u16, u8); +void TintPalette_GrayScale(u16 *, u16); +void TintPalette_SepiaTone(u16 *, u16); extern struct PaletteFadeControl gPaletteFade; diff --git a/include/party_menu.h b/include/party_menu.h index 19e1f7d4e..3b620c3b0 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -1,7 +1,8 @@ #ifndef GUARD_PARTY_MENU_H #define GUARD_PARTY_MENU_H -#include "global.h" +#include "main.h" +#include "task.h" enum { AILMENT_NONE, @@ -12,10 +13,53 @@ enum { AILMENT_BRN }; -bool8 pokemon_has_move(struct Pokemon *, u16); +struct Struct203B0A0 +{ + MainCallback exitCallback; + TaskFunc unk4; + u8 unk8_0:4; + u8 mode:2; + u8 unk8_2:2; + s8 unk9; + s8 unkA; + u8 unkB; + u16 unkC; + s16 unkE; + s16 unk10; +}; + +extern struct Struct203B0A0 gUnknown_203B0A0; + +extern void (*gUnknown_3005E98)(u8 taskId, TaskFunc func); + +bool8 FieldCallback_PrepareFadeInFromMenu(void); +bool8 MonKnowsMove(struct Pokemon *, u16); void sub_81B58A8(void); void DoWallyTutorialBagMenu(void); u8 pokemon_ailments_get_primary(u32 status); u16 ItemIdToBattleMoveId(u16 itemId); +void sub_8125B40(u8 taskId, TaskFunc func); +void sub_8124C8C(void); +void sub_8126EDC(void); +void c2_8123744(void); +u8 GetCursorSelectionMonId(void); +void sub_8128370(void); +void sub_811F818(u8 monId, u8 a1); +void sub_8121D0C(u8); +void sub_811FB28(u8 taskId); +void sub_8120760(u8 taskId, u8 a1, s8 a2, s16 amount, TaskFunc followupFunc); +void GetMonNickname(const struct Pokemon * mon, u8 * dest); +void sub_81202F8(const u8 * src, u8 a1); +bool8 sub_8120370(void); +void PartyMenuInit(u8 a, u8 b, u8 c, u8 d, u8 messageId, TaskFunc task, MainCallback callback); +void sub_81252D0(u8 taskId, TaskFunc followUpFunc); +void ItemUseCB_PpRestore(u8 taskId, TaskFunc followUpFunc); +void dp05_pp_up(u8 taskId, TaskFunc followUpFunc); +void dp05_rare_candy(u8 taskId, TaskFunc followUpFunc); +void sub_8126B60(u8 taskId, TaskFunc followUpFunc); +void sub_8126894(u8 taskId, TaskFunc followUpFunc); +void sub_81279E0(void); +void ItemUseCB_Medicine(u8 taskId, TaskFunc followUpFunc); +u8 GetItemEffectType(u16 itemId); #endif // GUARD_PARTY_MENU_H diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h new file mode 100644 index 000000000..6d68de2d3 --- /dev/null +++ b/include/pc_screen_effect.h @@ -0,0 +1,9 @@ +#ifndef GUARD_PC_SCREEN_EFFECT_H +#define GUARD_PC_SCREEN_EFFECT_H + +void sub_80A0A48(u16, u16, u8); +void sub_80A0A70(u16, u16, u8); +bool8 sub_80A0AAC(void); +bool8 sub_80A0A98(void); + +#endif //GUARD_PC_SCREEN_EFFECT_H diff --git a/include/pokeball.h b/include/pokeball.h index 10a9529b9..5545f8870 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -24,7 +24,8 @@ enum #define POKEBALL_OPPONENT_SENDOUT 0xFE u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow); -void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species); +void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h); +u8 sub_804BB98(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h); u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h); void sub_8076918(u8 bank); void DoHitAnimHealthboxEffect(u8 bank); diff --git a/include/pokedex.h b/include/pokedex.h index ca642ed1a..b389bf821 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -21,5 +21,6 @@ enum s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); u16 pokedex_count(u8); u16 sub_80C0844(u8); +u16 sub_8088EDC(u8); #endif // GUARD_POKEDEX_H diff --git a/include/pokemon.h b/include/pokemon.h index e8782af98..ed0108159 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -7,9 +7,9 @@ #define MON_DATA_OT_ID 1 #define MON_DATA_NICKNAME 2 #define MON_DATA_LANGUAGE 3 -#define MON_DATA_SANITY_BIT1 4 -#define MON_DATA_SANITY_BIT2 5 -#define MON_DATA_SANITY_BIT3 6 +#define MON_DATA_SANITY_IS_BAD_EGG 4 +#define MON_DATA_SANITY_HAS_SPECIES 5 +#define MON_DATA_SANITY_IS_EGG 6 #define MON_DATA_OT_NAME 7 #define MON_DATA_MARKINGS 8 #define MON_DATA_CHECKSUM 9 @@ -310,31 +310,31 @@ struct PokemonStorage /*0x83C2*/ u8 boxWallpapers[14]; }; -struct UnknownPokemonStruct +struct BattleTowerPokemon { - u16 species; - u16 heldItem; - u16 moves[4]; - u8 level; - u8 ppBonuses; - u8 hpEV; - u8 attackEV; - u8 defenseEV; - u8 speedEV; - u8 spAttackEV; - u8 spDefenseEV; - u32 otId; - u32 hpIV:5; - u32 attackIV:5; - u32 defenseIV:5; - u32 speedIV:5; - u32 spAttackIV:5; - u32 spDefenseIV:5; - u32 gap:1; - u32 altAbility:1; - u32 personality; - u8 nickname[POKEMON_NAME_LENGTH + 1]; - u8 friendship; + /*0x00*/ u16 species; + /*0x02*/ u16 heldItem; + /*0x04*/ u16 moves[4]; + /*0x0C*/ u8 level; + /*0x0D*/ u8 ppBonuses; + /*0x0E*/ u8 hpEV; + /*0x0F*/ u8 attackEV; + /*0x10*/ u8 defenseEV; + /*0x11*/ u8 speedEV; + /*0x12*/ u8 spAttackEV; + /*0x13*/ u8 spDefenseEV; + /*0x14*/ u32 otId; + /*0x18*/ u32 hpIV:5; + u32 attackIV:5; + u32 defenseIV:5; + u32 speedIV:5; + u32 spAttackIV:5; + u32 spDefenseIV:5; + u32 gap:1; + u32 altAbility:1; + /*0x1C*/ u32 personality; + /*0x20*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; + /*0x2B*/ u8 friendship; }; #define BATTLE_STATS_NO 8 @@ -445,6 +445,8 @@ struct BattleMove u8 flags; }; +extern const struct BattleMove gBattleMoves[]; + #define FLAG_MAKES_CONTACT 0x1 #define FLAG_PROTECT_AFFECTED 0x2 #define FLAG_MAGICCOAT_AFFECTED 0x4 @@ -631,6 +633,7 @@ void SetWildMonHeldItem(void); u16 GetMonEVCount(struct Pokemon *); const struct CompressedSpritePalette *sub_806E794(struct Pokemon *mon); +const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon); const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality); bool32 IsHMMove2(u16 move); bool8 IsPokeSpriteNotFlipped(u16 species); @@ -670,4 +673,11 @@ void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); void BattleAnimateBackSprite(struct Sprite* sprite, u16 species); +void PlayMapChosenOrBattleBGM(u16 songId); +u8 GetMonsStateToDoubles(void); +void sub_803E0A4(struct Pokemon *mon, struct BattleTowerPokemon *src); +void SetMultiuseSpriteTemplateToPokemon(u16 trainerSpriteId, u8 battlerPosition); + +const u8 * Battle_PrintStatBoosterEffectMessage(u16 itemId); + #endif // GUARD_POKEMON_H diff --git a/include/pokemon_3.h b/include/pokemon_3.h index cffc9780b..e65bc85fc 100644 --- a/include/pokemon_3.h +++ b/include/pokemon_3.h @@ -5,5 +5,8 @@ const u8* GetTrainerClassNameFromId(u16 trainerId); const u8* GetTrainerNameFromId(u16 trainerId); +void * SetUpMonSpriteManagerMaybe(u8, u8); +void sub_8044D80(void); +void * sub_8044E00(u8 buffId); #endif // GUARD_POKEMON_3_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 5b2d2052b..f2fbe85a7 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -12,5 +12,7 @@ void SetBoxMonNickFromAnyBox(u8 boxId, u8 monPosition, u8 * newNick); void CompactPartySlots(void); u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); void sub_808BCB4(u8 boxId, u8 monPosition); +u8 * GetBoxNamePtr(u8 boxId); +void sub_808CE60(void); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/quest_log.h b/include/quest_log.h index 9f8a0ea21..cdd28371f 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -18,8 +18,15 @@ extern u8 gUnknown_3005E88; extern u16 gUnknown_3005E8C; extern struct UnkStruct_3005E90 gUnknown_3005E90; extern struct UnkStruct_203AE98 * gUnknown_3005E94; +extern const u16 gUnknown_84566A8[]; void sub_8112720(u8); void sub_8113550(u16, const u16 *); +void sub_8115748(u16); +u8 sub_8112CAC(void); +bool8 sub_81119D4(void (*func)(void)); +void sub_8111F38(u16, u16); + +extern u8 gUnknown_203ADFA; #endif //GUARD_QUEST_LOG_H diff --git a/include/region_map.h b/include/region_map.h index ea8a8130e..394fee469 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -95,5 +95,6 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag); u8 *GetMapName(u8 *, u16, u16); bool32 sub_8124668(u8 mapSecId); void sub_80C4DF8(u8 *, u8); +void sub_80BFF50(u8 a0, void (*a1)(void)); #endif //GUARD_REGION_MAP_H diff --git a/include/roulette_util.h b/include/roulette_util.h new file mode 100644 index 000000000..764a3df10 --- /dev/null +++ b/include/roulette_util.h @@ -0,0 +1,84 @@ +#ifndef GUARD_ROULETTE_H +#define GUARD_ROULETTE_H + +struct UnkStruct1 +{ + u16 var00; + u16 var02; + u8 var04; + u8 var05; + u8 var06; + s8 var07_0:5; + s8 var07_5:2; + s8 var07_7:1; +}; + +struct UnkStruct3 +{ + u8 var00_0:7; + u8 var00_7:1; + u8 var01; + s8 var02; + s8 var03; + struct UnkStruct1 var04; +}; + +struct UnkStruct0 +{ + u8 var00; + u8 var01; + u16 var02; //flag for each UnkStruct3 + struct UnkStruct3 var04[0x10]; +}; + +struct PulseBlendSettings +{ + u16 blendColor; + u16 paletteOffset; + u8 numColors; + u8 delay; + u8 numFadeCycles; + s8 maxBlendCoeff:4; + s8 fadeType:2; + s8 restorePaletteOnUnload:1; + s8 unk7_7:1; +}; + +struct PulseBlendPalette +{ + u8 paletteSelector; + u8 blendCoeff:4; + u8 fadeDirection:1; + s8 unk1_5:1; + s8 available:1; + u32 inUse:1; + u8 delayCounter; + u8 fadeCycleCounter; + struct PulseBlendSettings pulseBlendSettings; +}; + +struct PulseBlend +{ + u16 usedPulseBlendPalettes; + struct PulseBlendPalette pulseBlendPalettes[16]; +}; + +void sub_80D8BE4(struct UnkStruct0 *); +u8 sub_80D8BF8(struct UnkStruct0 *, u8, const struct UnkStruct1 *); +u8 sub_80D8C7C(struct UnkStruct0 *, u8); +u8 sub_80D8CB0(struct UnkStruct3 *); +u8 sub_80D8EB8(struct UnkStruct3 *); +void task_tutorial_controls_fadein(struct UnkStruct0 *); +void sub_80D8FB4(struct UnkStruct0 *, u16); +void sub_80D9008(struct UnkStruct0 *, u16); +void InitPulseBlend(struct PulseBlend *); +int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *); +static void ClearPulseBlendPalettesSettings(struct PulseBlendPalette *); +void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void UpdatePulseBlend(struct PulseBlend *); +void sub_80D9574(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); +void sub_80D95C4(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); + +#endif // GUARD_ROULETTE_H diff --git a/include/save.h b/include/save.h index f547230b9..7a74373c8 100644 --- a/include/save.h +++ b/include/save.h @@ -121,7 +121,7 @@ u8 Save_LoadGameData(u8 a1); u32 TryCopySpecialSaveSection(u8 sector, u8* dst); u32 sub_8153634(u8 sector, u8* src); void sub_8153688(u8 taskId); -u32 sub_80DA5E0(u8 sector, u8* src); +u32 TryWriteSpecialSaveSection(u8 sector, u8* src); void sub_80DA634(u8 taskId); #endif // GUARD_SAVE_H diff --git a/include/save_location.h b/include/save_location.h index 69b39ea53..cd499643e 100644 --- a/include/save_location.h +++ b/include/save_location.h @@ -7,5 +7,6 @@ bool32 sub_81AFCEC(void); void TrySetMapSaveWarpStatus(void); void sub_81AFDA0(void); void sub_81AFDD0(void); +bool32 IsCurMapPokeCenter(void); #endif // GUARD_SAVE_LOCATION_H diff --git a/include/scanline_effect.h b/include/scanline_effect.h index d49f5b4d6..5bd8b5546 100644 --- a/include/scanline_effect.h +++ b/include/scanline_effect.h @@ -1,6 +1,48 @@ #ifndef GUARD_SCANLINE_EFFECT_H #define GUARD_SCANLINE_EFFECT_H -void remove_some_task(void); +// DMA control value to transfer a single 16-bit value at HBlank +#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1) +#define SCANLINE_EFFECT_DMACNT_32BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_32BIT | DMA_DEST_RELOAD) << 16) | 1) -#endif //GUARD_SCANLINE_EFFECT_H +#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG0VOFS (REG_ADDR_BG0VOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG1HOFS (REG_ADDR_BG1HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG1VOFS (REG_ADDR_BG1VOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG2HOFS (REG_ADDR_BG2HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG2VOFS (REG_ADDR_BG2VOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG3HOFS (REG_ADDR_BG3HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG3VOFS (REG_ADDR_BG3VOFS - REG_ADDR_BG0HOFS) + +struct ScanlineEffectParams +{ + volatile void *dmaDest; + u32 dmaControl; + u8 initState; + u8 unused9; +}; + +struct ScanlineEffect +{ + void *dmaSrcBuffers[2]; + volatile void *dmaDest; + u32 dmaControl; + void (*setFirstScanlineReg)(void); + u8 srcBuffer; + u8 state; + u8 unused16; + u8 unused17; + u8 waveTaskId; +}; + +extern struct ScanlineEffect gScanlineEffect; + +extern u16 gScanlineEffectRegBuffers[2][0x3C0]; + +void ScanlineEffect_Stop(void); +void ScanlineEffect_Clear(void); +void ScanlineEffect_SetParams(struct ScanlineEffectParams); +void ScanlineEffect_InitHBlankDmaTransfer(void); +u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 a7); + +#endif // GUARD_SCANLINE_EFFECT_H diff --git a/include/scrcmd.h b/include/scrcmd.h new file mode 100644 index 000000000..0ef357ece --- /dev/null +++ b/include/scrcmd.h @@ -0,0 +1,6 @@ +#ifndef GUARD_SCRCMD_H +#define GUARD_SCRCMD_H + +extern struct ScriptContext * gUnknown_3005070; + +#endif //GUARD_SCRCMD_H diff --git a/include/script.h b/include/script.h index ebb4caa86..8ffbe1563 100644 --- a/include/script.h +++ b/include/script.h @@ -65,5 +65,14 @@ void sub_80992A0(u8 *script, u16 scriptSize); bool32 sub_8069DFC(void); void sub_8069EA4(u8 * script, u16 scriptSize); u8 * sub_8069E48(void); +void sub_8069998(u8 var); +void sub_80699F8(void); +void sub_8069964(void); +void sub_80699A4(void); +void sub_8069970(void); +void sub_8069A20(void); +void sub_8069A2C(void); + +extern const u8 *gRAMScriptPtr; #endif // GUARD_SCRIPT_H diff --git a/include/script_menu.h b/include/script_menu.h index 1e95570b3..f82b061a5 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -3,7 +3,7 @@ #include "global.h" -extern const u8 *const gUnknown_0858BAF0[9]; +extern const u8 *const gStdStringPtrs[9]; bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4); bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5); @@ -11,5 +11,6 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2); bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount); bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); +void sub_809D6D4(void); #endif //GUARD_SCRIPT_MENU_H diff --git a/include/script_movement.h b/include/script_movement.h index ae446812e..2a6dbd2a7 100644 --- a/include/script_movement.h +++ b/include/script_movement.h @@ -5,6 +5,6 @@ bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *); bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8); -void sub_80D338C(void); +void sub_80974D8(void); #endif // GUARD_SCRIPT_MOVEMENT_H diff --git a/include/script_pokemon_util_80A0058.h b/include/script_pokemon_util_80A0058.h new file mode 100644 index 000000000..e1d228589 --- /dev/null +++ b/include/script_pokemon_util_80A0058.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SCRIPT_POKEMON_UTIL_80A0058_H +#define GUARD_SCRIPT_POKEMON_UTIL_80A0058_H + +bool8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unk1, u32 unk2, u8 unk3); +bool8 ScriptGiveEgg(u16 species); +void ScriptSetMonMoveSlot(u8 partyIdx, u16 move, u8 slot); + +#endif //GUARD_SCRIPT_POKEMON_UTIL_80A0058_H diff --git a/include/seagallop.h b/include/seagallop.h new file mode 100644 index 000000000..cce6da8ff --- /dev/null +++ b/include/seagallop.h @@ -0,0 +1,21 @@ +#ifndef GUARD_SEAGALLOP_H +#define GUARD_SEAGALLOP_H + +enum SeaGallopDestinations +{ + SEAGALLOP_VERMILION_CITY, + SEAGALLOP_ONE_ISLAND, + SEAGALLOP_TWO_ISLAND, + SEAGALLOP_THREE_ISLAND, + SEAGALLOP_FOUR_ISLAND, + SEAGALLOP_FIVE_ISLAND, + SEAGALLOP_SIX_ISLAND, + SEAGALLOP_SEVEN_ISLAND, + SEAGALLOP_CINNABAR_ISLAND, + SEAGALLOP_NAVEL_ROCK, + SEAGALLOP_BIRTH_ISLAND +}; + +void ScrSpecial_SeaGallopFerry(void); + +#endif //GUARD_SEAGALLOP_H diff --git a/include/shop.h b/include/shop.h index 1046a590a..05f5160e6 100644 --- a/include/shop.h +++ b/include/shop.h @@ -8,5 +8,6 @@ extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3]; void CreatePokemartMenu(const u16 *); void CreateDecorationShop1Menu(const u16 *); void CreateDecorationShop2Menu(const u16 *); +void sub_809C09C(u16, u16, u8); #endif // GUARD_SHOP_H diff --git a/include/songs.h b/include/songs.h deleted file mode 100644 index f8d0fbf5b..000000000 --- a/include/songs.h +++ /dev/null @@ -1,468 +0,0 @@ -#ifndef GUARD_SONGS_H -#define GUARD_SONGS_H - -#include "global.h" - -enum -{ - /*0x00*/ SE_STOP, - /*0x01*/ SE_KAIFUKU, - /*0x02*/ SE_PC_LOGON, - /*0x03*/ SE_PC_OFF, - /*0x04*/ SE_PC_ON, - /*0x05*/ SE_SELECT, - /*0x06*/ SE_WIN_OPEN, - /*0x07*/ SE_WALL_HIT, - /*0x08*/ SE_DOOR, - /*0x09*/ SE_KAIDAN, - /*0x0A*/ SE_DANSA, - /*0x0B*/ SE_JITENSYA, - /*0x0C*/ SE_KOUKA_L, // Goggle told me Kouka means 'effectiveness' which makes sense, because - /*0x0D*/ SE_KOUKA_M, // those three sounds play whenever you use a move - /*0x0E*/ SE_KOUKA_H, - /*0x0F*/ SE_BOWA2, - /*0x10*/ SE_POKE_DEAD, - /*0x11*/ SE_NIGERU, - /*0x12*/ SE_JIDO_DOA, - /*0x13*/ SE_NAMINORI, - /*0x14*/ SE_BAN, - /*0x15*/ SE_PIN, - /*0x16*/ SE_BOO, - /*0x17*/ SE_BOWA, - /*0x18*/ SE_JYUNI, - /*0x19*/ SE_A, - /*0x1A*/ SE_I, - /*0x1B*/ SE_U, - /*0x1C*/ SE_E, - /*0x1D*/ SE_O, - /*0x1E*/ SE_N, - /*0x1F*/ SE_SEIKAI, - /*0x20*/ SE_HAZURE, - /*0x21*/ SE_EXP, - /*0x22*/ SE_JITE_PYOKO, - /*0x23*/ SE_MU_PACHI, - /*0x24*/ SE_TK_KASYA, - /*0x25*/ SE_FU_ZAKU, - /*0x26*/ SE_FU_ZAKU2, - /*0x27*/ SE_FU_ZUZUZU, - /*0x28*/ SE_RU_GASHIN, - /*0x29*/ SE_RU_GASYAN, - /*0x2A*/ SE_RU_BARI, - /*0x2B*/ SE_RU_HYUU, - /*0x2C*/ SE_KI_GASYAN, - /*0x2D*/ SE_TK_WARPIN, - /*0x2E*/ SE_TK_WARPOUT, - /*0x2F*/ SE_TU_SAA, - /*0x30*/ SE_HI_TURUN, - /*0x31*/ SE_TRACK_MOVE, - /*0x32*/ SE_TRACK_STOP, - /*0x33*/ SE_TRACK_HAIK, - /*0x34*/ SE_TRACK_DOOR, - /*0x35*/ SE_MOTER, - /*0x36*/ SE_CARD, - /*0x37*/ SE_SAVE, - /*0x38*/ SE_KON, - /*0x39*/ SE_KON2, - /*0x3A*/ SE_KON3, - /*0x3B*/ SE_KON4, - /*0x3C*/ SE_SUIKOMU, - /*0x3D*/ SE_NAGERU, - SE_TOY_C, - SE_TOY_D, - SE_TOY_E, - SE_TOY_F, - SE_TOY_G, - SE_TOY_A, - SE_TOY_B, - SE_TOY_C1, - SE_MIZU, - SE_HASHI, - SE_DAUGI, - SE_PINPON, - SE_FUUSEN1, - SE_FUUSEN2, - SE_FUUSEN3, - SE_TOY_KABE, - SE_TOY_DANGO, - SE_DOKU, - SE_ESUKA, - SE_T_AME, - SE_T_AME_E, - SE_T_OOAME, - SE_T_OOAME_E, - SE_T_KOAME, - SE_T_KOAME_E, - SE_T_KAMI, - SE_T_KAMI2, - SE_ELEBETA, - /*0x5A*/ SE_HINSI, - /*0x5B*/ SE_EXPMAX, - /*0x5C*/ SE_TAMAKORO, - /*0x5D*/ SE_TAMAKORO_E, - /*0x5E*/ SE_BASABASA, - /*0x5F*/ SE_REGI, - SE_C_GAJI, - SE_C_MAKU_U, - SE_C_MAKU_D, - SE_C_PASI, - SE_C_SYU, - SE_C_PIKON, - /*0x66*/ SE_REAPOKE, - /*0x67*/ SE_OP_BASYU, - /*0x68*/ SE_BT_START, - SE_DENDOU, - SE_JIHANKI, - SE_TAMA, - SE_Z_SCROLL, - /*0x6D*/ SE_Z_PAGE, - /*0x6E*/ SE_PN_ON, - /*0x6F*/ SE_PN_OFF, - /*0x70*/ SE_Z_SEARCH, - /*0x71*/ SE_TAMAGO, - /*0x72*/ SE_TB_START, - /*0x73*/ SE_TB_KON, - /*0x74*/ SE_TB_KARA, - /*0x75*/ SE_BIDORO, - /*0x76*/ SE_W085, - /*0x77*/ SE_W085B, - /*0x78*/ SE_W231, - /*0x79*/ SE_W171, - /*0x7A*/ SE_W233, - /*0x7B*/ SE_W233B, - /*0x7C*/ SE_W145, - /*0x7D*/ SE_W145B, - /*0x7E*/ SE_W145C, - /*0x7F*/ SE_W240, - /*0x80*/ SE_W015, - /*0x81*/ SE_W081, - /*0x82*/ SE_W081B, - /*0x83*/ SE_W088, - /*0x84*/ SE_W016, - /*0x85*/ SE_W016B, - /*0x86*/ SE_W003, - /*0x87*/ SE_W104, - /*0x88*/ SE_W013, - /*0x89*/ SE_W196, - /*0x8A*/ SE_W086, - /*0x8B*/ SE_W004, - /*0x8C*/ SE_W025, - /*0x8D*/ SE_W025B, - SE_W152, - SE_W026, - SE_W172, - SE_W172B, - SE_W053, - SE_W007, - SE_W092, - SE_W221, - SE_W221B, - SE_W052, - SE_W036, - SE_W059, - SE_W059B, - SE_W010, - SE_W011, - SE_W017, - SE_W019, - SE_W028, - SE_W013B, - SE_W044, - SE_W029, - SE_W057, - SE_W056, - SE_W250, - SE_W030, - SE_W039, - SE_W054, - SE_W077, - SE_W020, - SE_W082, - SE_W047, - SE_W195, - SE_W006, - SE_W091, - SE_W146, - SE_W120, - SE_W153, - SE_W071B, - SE_W071, - SE_W103, - /*0xB6*/ SE_W062, - /*0xB7*/ SE_W062B, - /*0xB8*/ SE_W048, - /*0xB9*/ SE_W187, - /*0xBA*/ SE_W118, - /*0xBB*/ SE_W155, - /*0xBC*/ SE_W122, - /*0xBD*/ SE_W060, - /*0xBE*/ SE_W185, - /*0xBF*/ SE_W014, - /*0xC0*/ SE_W043, - /*0xC1*/ SE_W207, - /*0xC2*/ SE_W207B, - /*0xC3*/ SE_W215, - /*0xC4*/ SE_W109, - /*0xC5*/ SE_W173, - /*0xC6*/ SE_W280, - /*0xC7*/ SE_W202, - /*0xC8*/ SE_W060B, - /*0xC9*/ SE_W076, - /*0xCA*/ SE_W080, - /*0xCB*/ SE_W100, - /*0xCC*/ SE_W107, - SE_W166, - SE_W129, - SE_W115, - SE_W112, - SE_W197, - SE_W199, - SE_W236, - SE_W204, - SE_W268, - SE_W070, - SE_W063, - SE_W127, - SE_W179, - SE_W151, - SE_W201, - SE_W161, - SE_W161B, - SE_W227, - SE_W227B, - SE_W226, - SE_W208, - SE_W213, - SE_W213B, - SE_W234, - SE_W260, - SE_W328, - SE_W320, - SE_W255, - SE_W291, - SE_W089, - SE_W239, - SE_W230, - SE_W281, - SE_W327, - SE_W287, - SE_W257, - SE_W253, - SE_W258, - SE_W322, - SE_W298, - SE_W287B, - SE_W114, - SE_W063B, - BGM_STOP = 349, - /*0x15E*/ BGM_TETSUJI, - /*0x15F*/ BGM_FIELD13, - /*0x160*/ BGM_KACHI22, - /*0x161*/ BGM_KACHI2, - /*0x162*/ BGM_KACHI3, - /*0x163*/ BGM_KACHI5, - /*0x164*/ BGM_PCC, - /*0x165*/ BGM_NIBI, - /*0x166*/ BGM_SUIKUN, - /*0x167*/ BGM_DOORO1, - /*0x168*/ BGM_DOORO_X1, - /*0x169*/ BGM_DOORO_X3, - /*0x16A*/ BGM_MACHI_S2, - /*0x16B*/ BGM_MACHI_S4, - /*0x16C*/ BGM_GIM, - /*0x16D*/ BGM_NAMINORI, - /*0x16E*/ BGM_DAN01, - /*0x16F*/ BGM_FANFA1, - /*0x170*/ BGM_ME_ASA, - /*0x171*/ BGM_ME_BACHI, - /*0x172*/ BGM_FANFA4, - /*0x173*/ BGM_FANFA5, - /*0x174*/ BGM_ME_WAZA, - /*0x175*/ BGM_BIJYUTU, - /*0x176*/ BGM_DOORO_X4, - /*0x177*/ BGM_FUNE_KAN, - /*0x178*/ BGM_ME_SHINKA, - /*0x179*/ BGM_SHINKA, - /*0x17A*/ BGM_ME_WASURE, - /*0x17B*/ BGM_SYOUJOEYE, - /*0x17C*/ BGM_BOYEYE, - /*0x17D*/ BGM_DAN02, - /*0x17E*/ BGM_MACHI_S3, - /*0x17F*/ BGM_ODAMAKI, - /*0x180*/ BGM_B_TOWER, - /*0x181*/ BGM_SWIMEYE, - /*0x182*/ BGM_DAN03, - /*0x183*/ BGM_ME_KINOMI, - /*0x184*/ BGM_ME_TAMA, - /*0x185*/ BGM_ME_B_BIG, - /*0x186*/ BGM_ME_B_SMALL, - /*0x187*/ BGM_ME_ZANNEN, - /*0x188*/ BGM_BD_TIME, - /*0x189*/ BGM_TEST1, - /*0x18A*/ BGM_TEST2, - /*0x18B*/ BGM_TEST3, - /*0x18C*/ BGM_TEST4, - /*0x18D*/ BGM_TEST, - /*0x18E*/ BGM_GOMACHI0, - /*0x18F*/ BGM_GOTOWN, - /*0x190*/ BGM_POKECEN, - /*0x191*/ BGM_NEXTROAD, - /*0x192*/ BGM_GRANROAD, - /*0x193*/ BGM_CYCLING, - /*0x194*/ BGM_FRIENDLY, - /*0x195*/ BGM_MISHIRO, - /*0x196*/ BGM_TOZAN, - /*0x197*/ BGM_GIRLEYE, - /*0x198*/ BGM_MINAMO, - /*0x199*/ BGM_ASHROAD, - /*0x19A*/ BGM_EVENT0, - /*0x19B*/ BGM_DEEPDEEP, - /*0x19C*/ BGM_KACHI1, - /*0x19D*/ BGM_TITLE3, - /*0x19E*/ BGM_DEMO1, - /*0x19F*/ BGM_GIRL_SUP, - /*0x1A0*/ BGM_HAGESHII, - /*0x1A1*/ BGM_KAKKOII, - /*0x1A2*/ BGM_KAZANBAI, - /*0x1A3*/ BGM_AQA_0, - /*0x1A4*/ BGM_TSURETEK, - /*0x1A5*/ BGM_BOY_SUP, - /*0x1A6*/ BGM_RAINBOW, - /*0x1A7*/ BGM_AYASII, - /*0x1A8*/ BGM_KACHI4, - /*0x1A9*/ BGM_ROPEWAY, - /*0x1AA*/ BGM_CASINO, - /*0x1AB*/ BGM_HIGHTOWN, - /*0x1AC*/ BGM_SAFARI, - BGM_C_ROAD, - BGM_AJITO, - BGM_M_BOAT, - BGM_M_DUNGON, - BGM_FINECITY, - BGM_MACHUPI, - BGM_P_SCHOOL, - BGM_DENDOU, - BGM_TONEKUSA, - BGM_MABOROSI, - BGM_CON_FAN, - BGM_CONTEST0, - BGM_MGM0, - BGM_T_BATTLE, - BGM_OOAME, - BGM_HIDERI, - BGM_RUNECITY, - BGM_CON_K, - BGM_EIKOU_R, - BGM_KARAKURI, - BGM_HUTAGO, - BGM_SITENNOU, - BGM_YAMA_EYE, - BGM_CONLOBBY, - BGM_INTER_V, - BGM_DAIGO, - BGM_THANKFOR, - BGM_END, - /*0x1C9*/ BGM_BATTLE_FRONTIER, // human-readable names start here because we don't know the actual filenames - BGM_BATTLE_ARENA, - BGM_ME_BATTLE_POINTS, // ME_ as in messagebox? Used for KINOMI (berries) and stuff above - BGM_ME_MATCH_CALL, - BGM_BATTLE_PYRAMID, - BGM_BATTLE_PYRAMID_SUMMIT, - BGM_BATTLE_PALACE, - BGM_FANFA_RAYQUAZA, - BGM_BATTLE_TOWER, - BGM_ME_BATTLE_SYMBOL, - BGM_BATTLE_DOME_TOURNAMENT, - BGM_BATTLE_PIKE, - BGM_BATTLE_FACTORY, - BGM_BATTLE_LEGENDARY, - BGM_BATTLE_FRONTIER_BRAIN, - BGM_BATTLE_MEW, - BGM_BATTLE_DOME, // end of the human-readable names - /*0x1DA*/ BGM_BATTLE27, // wild - BGM_BATTLE31, // aqua/magma grunt - BGM_BATTLE20, // trainer - BGM_BATTLE32, // gym leader - BGM_BATTLE33, // champion - BGM_BATTLE36, // regi - BGM_BATTLE34, // weather trio - BGM_BATTLE35, // rival - BGM_BATTLE38, // elite four - BGM_BATTLE30, // aqua/magma leader - /*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again! - BGM_FRLG_GAMECORNER, - BGM_FRLG_ROCKET_HIDEOUT, - BGM_FRLG_GYM, - BGM_FRLG_JIGGLYPUFF, - BGM_FRLG_OPENING, - BGM_FRLG_TITLE, - BGM_FRLG_CINNABAR_ISLAND, - BGM_FRLG_LAVENDER_TOWN, - BGM_FRLG_HEALING_TEST, - BGM_FRLG_BICYCLE, - BGM_FRLG_SUSPICIOUS_EYE, - BGM_FRLG_GIRL_EYE, - BGM_FRLG_BOY_EYE, - BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME, - BGM_FRLG_VIRIDIAN_FOREST, - BGM_FRLG_MT_MOON, - BGM_FRLG_POKEMON_MANSION, - BGM_FRLG_CREDITS, - BGM_FRLG_ROUTE_1, - BGM_FRLG_ROUTE_24, - BGM_FRLG_ROUTE_3, - BGM_FRLG_ROUTE_11, - BGM_FRLG_INDIGO_PLATEAU, - BGM_FRLG_BATTLE_LEADER, - BGM_FRLG_BATTLE_TRAINER, - BGM_FRLG_BATTLE_WILD_POKEMON, - BGM_FRLG_BATTLE_CHAMPION, - BGM_FRLG_PALLET_TOWN, - BGM_FRLG_OAK_LAB, - BGM_FRLG_PROF_OAK, - BGM_FRLG_POKEMON_CENTER, - BGM_FRLG_SS_ANNE, - BGM_FRLG_SURF, - BGM_FRLG_POKEMON_TOWER, - BGM_FRLG_SILPH, - BGM_FRLG_CERULEAN_CITY, - BGM_FRLG_CELADON_CITY, - BGM_FRLG_KACHI_TRAINER, // KACHI used in RS test - victory - BGM_FRLG_KACHI_WILD_POKEMON, - BGM_FRLG_KACHI_LEADER, - BGM_FRLG_VERMILION_CITY, - BGM_FRLG_VIRIDIAN_CITY, - BGM_FRLG_RIVAL, - BGM_FRLG_RIVAL_POSTBATTLE, - BGM_FRLG_ME_POKEDEX_EVAL, - BGM_FRLG_ME_KEYITEM, - BGM_FRLG_FANFA_POKEMON_CAUGHT, - BGM_FRLG_FANFA_TRAINERCARD_PHOTO, - BGM_FRLG_GAMEFREAK_LOGO, - BGM_FRLG_CAUGHT_POKEMON, - BGM_FRLG_GAME_EXPLANATION_START, - BGM_FRLG_GAME_EXPLANATION_MIDDLE, - BGM_FRLG_GAME_EXPLANATION_END, - BGM_FRLG_POKEMON_JUMP, - BGM_FRLG_UNION_ROOM, - BGM_FRLG_POKEMON_NETWORK_CENTER, - BGM_FRLG_MYSTERY_GIFT, - BGM_FRLG_DODRIO_BERRY_PICK, - BGM_FRLG_MT_EMBER, - BGM_FRLG_TEACHY_TV_EPISODE, - BGM_FRLG_SEVII_ISLANDS, - BGM_FRLG_TANOBY_RUINS, - BGM_FRLG_ISLAND_ONE, - BGM_FRLG_ISLAND_FOUR, - BGM_FRLG_ISLAND_SIX, - BGM_FRLG_FLUTE, - BGM_FRLG_BATTLE_DEOXYS, - BGM_FRLG_BATTLE_MEWTWO, - BGM_FRLG_BATTLE_LEGENDARY, - BGM_FRLG_LEADER_EYE, - BGM_FRLG_DEOXYS_EYE, - BGM_FRLG_TRAINER_TOWER, - BGM_FRLG_HALL_OF_FAME_PALLET_TOWN, - /*0x22E*/BGM_FRLG_TEACHY_TV, -}; - -#endif // GUARD_SONGS_H diff --git a/include/sound.h b/include/sound.h index 34fdfc839..e720fc1a2 100644 --- a/include/sound.h +++ b/include/sound.h @@ -31,6 +31,7 @@ void PlayCry3(u16 species, s8 pan, u8 mode); void PlayCry4(u16 species, s8 pan, u8 mode); void PlayCry5(u16 species, u8 mode); void PlayCry6(u16 species, s8 pan, u8 mode); +void PlayCry7(u16 species, u8 mode); void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode); bool8 IsCryFinished(void); void StopCryAndClearCrySongs(void); diff --git a/include/sprite.h b/include/sprite.h index bc47f7100..5fa85ee21 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -232,6 +232,8 @@ struct OamMatrix s16 d; }; +typedef void (*SpriteCallback)(struct Sprite *); + extern const struct OamData gDummyOamData; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; @@ -300,5 +302,6 @@ void CopyFromSprites(u8 *dest); u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); void ClearSpriteCopyRequests(void); void ResetAffineAnimData(void); +void sub_8007FFC(struct Sprite* sprite, s16 a2, s16 a3); #endif //GUARD_SPRITE_H diff --git a/include/strings.h b/include/strings.h index 40021a01d..1aa858e82 100644 --- a/include/strings.h +++ b/include/strings.h @@ -92,4 +92,89 @@ extern const u8 gText_Coins[]; extern const u8 gText_EggNickname[]; extern const u8 gText_Pokemon[]; +extern const u8 gOtherText_Use[]; +extern const u8 gOtherText_Give[]; +extern const u8 gOtherText_Exit[]; +extern const u8 gText_ThreeHyphens[]; +extern const u8 gOtherText_UnkF9_08_Clear_01[]; +extern const u8 gFameCheckerText_ListMenuCursor[]; +extern const u8 gText_TimesStrVar1[]; +extern const u8 gText_IsSelected[]; +extern const u8 gText_ThereIsNoPokemon[]; +extern const u8 gText_ItemCantBeHeld[]; +extern const u8 gText_TMCase[]; +extern const u8 gText_Close[]; +extern const u8 gText_TMCaseWillBePutAway[]; +extern const u8 gText_FontSize0[]; +extern const u8 gText_FontSize2[]; +extern const u8 gText_OhNoICantBuyThat[]; +extern const u8 gText_HowManyWouldYouLikeToSell[]; +extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[]; +extern const u8 gText_TurnedOverItemsWorthYen[]; +extern const u8 gPokeDudeText_TMTypes[]; +extern const u8 gPokeDudeText_ReadTMDescription[]; +extern const u8 gFameCheckerText_Cancel[]; + +// teachy_tv +extern const u8 gTeachyTvString_TeachBattle[]; +extern const u8 gTeachyTvString_StatusProblems[]; +extern const u8 gTeachyTvString_TypeMatchups[]; +extern const u8 gTeachyTvString_CatchPkmn[]; +extern const u8 gTeachyTvString_AboutTMs[]; +extern const u8 gTeachyTvString_RegisterItem[]; +extern const u8 gTeachyTvString_Cancel[]; +extern const u8 gTeachyTvText_PokeDudeSaysHello[]; +extern const u8 gTeachyTvText_BattleScript1[]; +extern const u8 gTeachyTvText_StatusScript1[]; +extern const u8 gTeachyTvText_MatchupsScript1[]; +extern const u8 gTeachyTvText_CatchingScript1[]; +extern const u8 gTeachyTvText_TMsScript1[]; +extern const u8 gTeachyTvText_RegisterScript1[]; +extern const u8 gTeachyTvText_BattleScript2[]; +extern const u8 gTeachyTvText_StatusScript2[]; +extern const u8 gTeachyTvText_MatchupsScript2[]; +extern const u8 gTeachyTvText_CatchingScript2[]; +extern const u8 gTeachyTvText_TMsScript2[]; +extern const u8 gTeachyTvText_RegisterScript2[]; + +// help_system_812B1E0 +extern const u8 gUnknown_841DFA5[]; +extern const u8 gUnknown_841DFAC[]; +extern const u8 gUnknown_841DFBE[]; +extern const u8 gUnknown_841DFC9[]; + +// help_system +extern const u8 gString_Bill[]; +extern const u8 gString_Someone[]; +extern const u8 gString_Help[]; +extern const u8 gString_HelpSystem_ClearTo8[]; + +extern const u8 gOtherText_Give[]; +extern const u8 gFameCheckerText_Cancel[]; +extern const u8 gOtherText_StrVar1[]; +extern const u8 gOtherText_WhereShouldTheStrVar1BePlaced[]; +extern const u8 gOtherText_Powder[]; +extern const u8 gText_NoMoreRoomInBag[]; +extern const u8 gText_WithdrawHowMany[]; +extern const u8 gText_WithdrewQuantItem[]; +extern const u8 gText_WithdrawItem[]; +extern const u8 gText_Withdraw[]; +extern const u8 gText_ReturnToPC[]; + +extern const u8 gUnknown_8416425[]; +extern const u8 gUnknown_8416451[]; +extern const u8 gUnknown_8416537[]; +extern const u8 gUnknown_841658C[]; +extern const u8 gUnknown_841659E[]; +extern const u8 gUnknown_84165D2[]; +extern const u8 gUnknown_8416600[]; +extern const u8 gUnknown_8416631[]; +extern const u8 gUnknown_8416644[]; +extern const u8 gUnknown_841665C[]; +extern const u8 gUnknown_8416690[]; +extern const u8 gUnknown_84166A7[]; +extern const u8 gUnknown_84169DC[]; + +extern const u8 gUnknown_84162BD[]; + #endif //GUARD_STRINGS_H diff --git a/include/teachy_tv.h b/include/teachy_tv.h new file mode 100644 index 000000000..36bac6a67 --- /dev/null +++ b/include/teachy_tv.h @@ -0,0 +1,8 @@ +#ifndef GUARD_TEACHY_TV_H +#define GUARD_TEACHY_TV_H + +void InitTeachyTvController(u8 mode, void (*cb)()); +void CB2_ReturnToTeachyTV(void); +void SetTeachyTvControllerModeToResume(void); + +#endif //GUARD_TEACHY_TV_H diff --git a/include/text.h b/include/text.h index e127f103a..2e6a8c837 100644 --- a/include/text.h +++ b/include/text.h @@ -68,7 +68,8 @@ #define CHAR_y 0xED #define CHAR_z 0xEE #define CHAR_SPECIAL_F7 0xF7 -#define CHAR_SPECIAL_F9 0xF9 +#define CHAR_KEYPAD_ICON 0xF8 +#define CHAR_EXTRA_EMOJI 0xF9 #define CHAR_COLON 0xF0 #define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog #define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog @@ -90,6 +91,18 @@ #define TEXT_SPEED_FF 0xFF +enum +{ + FONTATTR_MAX_LETTER_WIDTH, + FONTATTR_MAX_LETTER_HEIGHT, + FONTATTR_LETTER_SPACING, + FONTATTR_LINE_SPACING, + FONTATTR_UNKNOWN, // dunno what this is yet + FONTATTR_COLOR_FOREGROUND, + FONTATTR_COLOR_BACKGROUND, + FONTATTR_COLOR_SHADOW +}; + struct TextPrinterSubStruct { u8 font_type:4; // 0x14 @@ -106,9 +119,9 @@ struct TextPrinterSubStruct u8 active; }; -struct TextSubPrinter // TODO: Better name +struct TextPrinterTemplate // TODO: Better name { - const u8* current_text_offset; + const u8* currentChar; u8 windowId; u8 fontId; u8 x; @@ -117,17 +130,17 @@ struct TextSubPrinter // TODO: Better name u8 currentY; u8 letterSpacing; u8 lineSpacing; - u8 fontColor_l:4; // 0xC - u8 fontColor_h:4; + u8 unk:4; // 0xC + u8 fgColor:4; u8 bgColor:4; u8 shadowColor:4; }; struct TextPrinter { - struct TextSubPrinter subPrinter; + struct TextPrinterTemplate subPrinter; - void (*callback)(struct TextSubPrinter *, u16); // 0x10 + void (*callback)(struct TextPrinterTemplate *, u16); // 0x10 union { struct TextPrinterSubStruct sub; @@ -150,8 +163,8 @@ struct FontInfo u8 maxLetterHeight; u8 letterSpacing; u8 lineSpacing; - u8 fontColor_l:4; - u8 fontColor_h:4; + u8 unk:4; + u8 fgColor:4; u8 bgColor:4; u8 shadowColor:4; }; @@ -172,10 +185,10 @@ struct KeypadIcon }; typedef struct { - u8 flag_0:1; - u8 flag_1:1; - u8 flag_2:1; - u8 flag_3:1; + u8 canABSpeedUpPrint:1; + u8 useAlternateDownArrow:1; + u8 autoScroll:1; + u8 forceMidTextSpeed:1; } TextFlags; extern TextFlags gTextFlags; @@ -192,10 +205,12 @@ extern u8 gStringVar2[]; extern u8 gStringVar3[]; extern u8 gStringVar4[]; +extern const u8 gKeypadIconTiles[]; + void SetFontsPointer(const struct FontInfo *fonts); void DeactivateAllTextPrinters(void); -u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); -bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); +u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)); +bool16 AddTextPrinter(struct TextPrinterTemplate *textSubPrinter, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)); void RunTextPrinters(void); bool16 IsTextPrinterActive(u8 id); u32 RenderFont(struct TextPrinter *textPrinter); @@ -248,7 +263,10 @@ s32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont9(u16 glyphId); s32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese); s32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese); +void DecompressGlyphFont5(u16 glyphId, bool32 isJapanese); s32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese); void sub_80062B0(struct Sprite *sprite); +u8 CreateTextCursorSpriteForOakSpeech(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority); +void sub_8006398(u8 spriteId); #endif // GUARD_TEXT_H diff --git a/include/text_window.h b/include/text_window.h index 72ce50efc..cc1de56ae 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -20,6 +20,11 @@ void rbox_fill_rectangle(u8 windowId); const u16* stdpal_get(u8 id); const u16* GetOverworldTextboxPalettePtr(void); void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset); -void sub_814FF2C(u8 windowId, u16 tileStart, u8 palette); +void TextWindow_SetBubbleFrame_841F1C8(u8 windowId, u16 tileStart, u8 palette); +void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 tileStart, u8 palette); +void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette); +void LoadUserWindowBorderGfx(u8 windowId, u16 tileStart, u8 palette); +void sub_814FDA0(u8 windowId, u16 tileStart, u8 palette); +void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette); #endif // GUARD_TEXT_WINDOW_H diff --git a/include/text_window_graphics.h b/include/text_window_graphics.h new file mode 100644 index 000000000..17e919705 --- /dev/null +++ b/include/text_window_graphics.h @@ -0,0 +1,19 @@ +#ifndef GUARD_TEXT_WINDOW_GRAPHICS_H +#define GUARD_TEXT_WINDOW_GRAPHICS_H + +struct TextWindowGraphics +{ + const void * tiles; + const void * palette; +}; + +extern const u16 gUnknown_8470B0C[]; +extern const u16 gStdFrame0[]; +extern const u16 gStdFrame1[]; +extern const u16 gUnknown_8471DEC[][16]; + +extern const struct TextWindowGraphics gUserFrames[]; + +const struct TextWindowGraphics * sub_8069788(u8 idx); + +#endif //GUARD_TEXT_WINDOW_GRAPHICS_H diff --git a/include/title_screen.h b/include/title_screen.h new file mode 100644 index 000000000..8e7a6a275 --- /dev/null +++ b/include/title_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_TITLE_SCREEN_H +#define GUARD_TITLE_SCREEN_H + +void CB2_InitTitleScreen(void); + +#endif //GUARD_TITLE_SCREEN_H diff --git a/include/tm_case.h b/include/tm_case.h new file mode 100644 index 000000000..f77eae457 --- /dev/null +++ b/include/tm_case.h @@ -0,0 +1,8 @@ +#ifndef GUARD_TM_CASE_H +#define GUARD_TM_CASE_H + +void InitTMCase(u8 a0, void (* a1)(void), u8 a2); +void ResetTMCaseCursorPos(void); +void PokeDude_InitTMCase(void); + +#endif //GUARD_TM_CASE_H diff --git a/include/battle_dome_cards.h b/include/trainer_pokemon_sprites.h similarity index 78% rename from include/battle_dome_cards.h rename to include/trainer_pokemon_sprites.h index 94c9876f3..3ae75ed0f 100644 --- a/include/battle_dome_cards.h +++ b/include/trainer_pokemon_sprites.h @@ -3,7 +3,7 @@ #include "global.h" -bool16 dp13_810BB8C(void); +bool16 ResetAllPicSprites(void); u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 sub_818D820(u16 spriteId); @@ -11,7 +11,7 @@ u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 u16 sub_818D8F0(u16 spriteId); u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); u8 sub_818D97C(u8 a0, u8 a1); -u8 sub_810C2A4(u16, u8, s16, s16, u8, u16); -void sub_810C2E8(u16); +u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 FreeAndDestroyTrainerPicSprite(u16); #endif //GUARD_BATTLE_DOME_CARDS_H diff --git a/include/union_room.h b/include/union_room.h new file mode 100644 index 000000000..2e97d87f4 --- /dev/null +++ b/include/union_room.h @@ -0,0 +1,149 @@ +#ifndef GUARD_UNION_ROOM_H +#define GUARD_UNION_ROOM_H + +struct UnkStruct_Shared +{ + struct UnkLinkRfuStruct_02022B14 field_0; + u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH]; +}; + +struct UnkStruct_x1C +{ + struct UnkStruct_Shared unk0; + u8 unk18:1; +}; + +struct UnkStruct_x20 +{ + struct UnkStruct_Shared unk; + u16 field_18; + u8 field_1A_0:2; + u8 field_1A_1:1; + u8 field_1B; + u8 field_1D; + u8 field_1E; + u8 field_1F; +}; + +struct UnkStruct_Main0 +{ + struct UnkStruct_x20 arr[8]; +}; + +struct UnkStruct_Main4 +{ + struct UnkStruct_x1C arr[5]; +}; + +struct UnkStruct_Main8 +{ + struct UnkStruct_x20 arr[5]; +}; + +struct UnkStruct_Leader +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + struct UnkStruct_Main8 *field_8; + u8 state; + u8 textState; + u8 field_E; + u8 listWindowId; + u8 field_10; + u8 field_11; + u8 listTaskId; + u8 field_13; + u8 field_14; + u8 field_15; + u8 field_16; + u8 field_17; + u8 field_18; + u8 field_19; + u16 field_1A; +}; + +struct UnkStruct_Group +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + u8 state; + u8 textState; + u8 field_A; + u8 listWindowId; + u8 field_C; + u8 field_D; + u8 listTaskId; + u8 field_F; + u8 field_10; + u8 field_11; + u8 field_12; + u8 field_13; + u8 field_14; + u8 field_15; +}; + +struct UnkStruct_8019BA8 +{ + u8 field_0; + u8 field_1; + s8 field_2; + u8 field_3; +}; + +struct UnkStruct_URoom +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + struct UnkStruct_Main0 *field_8; + struct UnkStruct_Main4 *field_C; + u16 field_10; + u16 field_12; + u8 state; + u8 stateAfterPrint; + u8 textState; + u8 field_17; + u8 field_18; + u8 field_19; + u8 field_1A; + u8 field_1B; + u8 field_1C; + u8 field_1D; + u8 field_1E; + u8 field_1F; + u8 field_20; + u8 spriteIds[40]; + u8 field_49; + u8 field_4A; + u16 field_4C[6]; + u8 field_58[0x98 - 0x58]; + u16 field_98; + u16 field_9A[3]; + struct UnkStruct_8019BA8 field_A0[8]; + u8 field_C0[12][15]; + u8 field_174[48]; + u8 field_1A4[200]; +}; + +union UnkUnion_Main +{ + struct UnkStruct_Leader *leader; + struct UnkStruct_Group *group; + struct UnkStruct_URoom *uRoom; +}; + +struct TradeUnkStruct +{ + u16 field_0; + u16 type; + u32 playerPersonality; + u8 field_8; + u8 field_9; + u16 playerSpecies; + u16 playerLevel; + u16 species; + u16 level; + u16 field_12; + u32 personality; +}; + +#endif //GUARD_UNION_ROOM_H diff --git a/include/unk_810c3a4.h b/include/unk_810c3a4.h index 3f85ab00f..11a91b5ef 100644 --- a/include/unk_810c3a4.h +++ b/include/unk_810c3a4.h @@ -1,6 +1,25 @@ #ifndef GUARD_UNK_810C3A4_H #define GUARD_UNK_810C3A4_H +#define GET_VS_SEEKER_COUNTER_0() (gSaveBlock1Ptr->trainerRematch.stepCounter & 0xFF) +#define GET_VS_SEEKER_COUNTER_1() (gSaveBlock1Ptr->trainerRematch.stepCounter >> 8) +#define SET_VS_SEEKER_COUNTER_0(x) ({\ + gSaveBlock1Ptr->trainerRematch.stepCounter &= 0xFF00;\ + gSaveBlock1Ptr->trainerRematch.stepCounter |= (x);\ +}) +#define SET_VS_SEEKER_COUNTER_1(x) ({\ + gSaveBlock1Ptr->trainerRematch.stepCounter &= 0x00FF;\ + gSaveBlock1Ptr->trainerRematch.stepCounter |= ((x) << 8);\ +}) +#define INC_VS_SEEKER_COUNTER_0() ({\ + u8 x = GET_VS_SEEKER_COUNTER_0();\ + if (x < 100) gSaveBlock1Ptr->trainerRematch.stepCounter++;\ +}) +#define INC_VS_SEEKER_COUNTER_1() ({\ + u8 x = GET_VS_SEEKER_COUNTER_1();\ + if (x < 100) {x++; SET_VS_SEEKER_COUNTER_1(x);}\ +}) + void sub_810C604(void); void sub_810C640(void); diff --git a/include/unk_8159F40.h b/include/unk_8159F40.h index f0e85d416..7f6a98c3a 100644 --- a/include/unk_8159F40.h +++ b/include/unk_8159F40.h @@ -3,6 +3,7 @@ #include "global.h" +void sub_8159F40(void); void sub_815A008(struct QuestLog *); void sub_815A1F8(struct QuestLog *, struct MapObjectTemplate *); diff --git a/include/unk_815C980.h b/include/unk_815C980.h new file mode 100644 index 000000000..a3249a8e2 --- /dev/null +++ b/include/unk_815C980.h @@ -0,0 +1,24 @@ +#ifndef GUARD_UNK_815C980_H +#define GUARD_UNK_815C980_H + +struct UnkStruct3 +{ + u8 field_0_0:2; + u8 shape:2; + u8 size:2; + u8 priority:2; + u8 field_1; + u8 xDelta; + s16 x; + s16 y; + const struct SpriteSheet *spriteSheet; + const struct SpritePalette *spritePal; +}; + +void sub_815C9F4(void); +void sub_815D108(u32 id); +void sub_815D1A8(u32 id, bool32 arg1); +bool32 sub_815CA40(u32 id, s32 arg1, const struct UnkStruct3 *arg2); +void sub_815CD70(u32 id, s32 arg1); + +#endif //GUARD_UNK_815C980_H diff --git a/include/unk_815c27c.h b/include/unk_815c27c.h index cc1cbb7ce..02c886895 100644 --- a/include/unk_815c27c.h +++ b/include/unk_815c27c.h @@ -1,11 +1,11 @@ #ifndef GUARD_UNK_815C27C_H #define GUARD_UNK_815C27C_H -void sub_815C6D4(void); -void sub_815C6C4(void); -void sub_815C8C8(void); -void sub_815C960(void); -void sub_815C91C(void); -u16 sub_815C498(u8, size_t, const void *, u8); +void EReaderHelper_SerialCallback(void); +void EReaderHelper_Timer3Callback(void); +void EReaderHelper_SaveRegsState(void); +void EReaderHelper_ClearsSendRecvMgr(void); +void EReaderHelper_RestoreRegsState(void); +u16 EReaderHandleTransfer(u8, size_t, const void *, void *); #endif //GUARD_UNK_815C27C_H diff --git a/include/unknown_task.h b/include/unknown_task.h deleted file mode 100644 index 429e58aad..000000000 --- a/include/unknown_task.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef GUARD_unknown_task_H -#define GUARD_unknown_task_H - -#include "global.h" - -// Exported type declarations -struct UnknownTaskStruct -{ - volatile void *dest; - u32 control; - u8 unk8; - u8 unk9; -}; - -extern struct UnknownTaskStruct gUnknown_0831AC70; - -// Exported RAM declarations - -// Exported ROM declarations -void remove_some_task(void); -void sub_80BA038(struct UnknownTaskStruct arg0); -void sub_80BA0A8(void); - -#endif // GUARD_unknown_task_H diff --git a/include/util.h b/include/util.h index e0034d816..3884ab21c 100644 --- a/include/util.h +++ b/include/util.h @@ -12,8 +12,9 @@ u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); void StoreWordInTwoHalfwords(u16 *, u32); void LoadWordFromTwoHalfwords(u16 *, u32 *); int CountTrailingZeroBits(u32 value); -u16 CalcCRC16(const u8 *data, s32 length); +u16 CalcCRC16(const u8 *data, u32 length); u16 CalcCRC16WithTable(const u8 *data, u32 length); u32 CalcByteArraySum(const u8* data, u32 length); +void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor); #endif // GUARD_UTIL_H diff --git a/include/wild_encounter.h b/include/wild_encounter.h index 2186e0b4f..b4c42116a 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -43,5 +43,6 @@ u16 GetLocalWildMon(bool8 *isWaterMon); u16 GetLocalWaterMon(void); bool8 UpdateRepelCounter(void); void sub_8082740(u8); +u8 GetUnownLetterByPersonality(u32 personality); #endif // GUARD_WILD_ENCOUNTER_H diff --git a/include/window.h b/include/window.h index 2705a7895..30e73dd32 100644 --- a/include/window.h +++ b/include/window.h @@ -3,9 +3,11 @@ #include "global.h" +#define PIXEL_FILL(num) ((num) | ((num) << 4)) + enum { - WINDOW_PRIORITY, + WINDOW_BG, WINDOW_TILEMAP_LEFT, WINDOW_TILEMAP_TOP, WINDOW_WIDTH, @@ -17,7 +19,7 @@ enum struct WindowTemplate { - u8 priority; + u8 bg; u8 tilemapLeft; u8 tilemapTop; u8 width; @@ -45,6 +47,8 @@ struct Window u8 *tileData; }; +typedef void (*WindowFunc)(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum); + bool16 InitWindows(const struct WindowTemplate *templates); u16 AddWindow(const struct WindowTemplate *template); int AddWindowWithoutTileMap(const struct WindowTemplate *template); @@ -56,13 +60,13 @@ void PutWindowTilemap(u8 windowId); void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette); void ClearWindowTilemap(u8 windowId); void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height); -void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height); +void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height); void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight); void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height); void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset); void FillWindowPixelBuffer(u8 windowId, u8 fillValue); void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue); -void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8)); +void CallWindowFunction(u8 windowId, WindowFunc func); bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value); u32 GetWindowAttribute(u8 windowId, u8 attributeId); u16 AddWindow8Bit(struct WindowTemplate *template); diff --git a/json_data_rules.mk b/json_data_rules.mk new file mode 100644 index 000000000..980e63e88 --- /dev/null +++ b/json_data_rules.mk @@ -0,0 +1,9 @@ +# JSON files are run through jsonproc, which is a tool that converts JSON data to an output file +# based on an Inja template. https://github.com/pantor/inja + +AUTO_GEN_TARGETS += src/data/items.h + +src/data/items.h: src/data/items.json src/data/items.json.txt + $(JSONPROC) $^ $@ + +$(C_BUILDDIR)/item.o: c_dep += src/data/items.h diff --git a/ld_script.txt b/ld_script.txt index 8d188156b..3ba67bffe 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -30,7 +30,7 @@ SECTIONS { /* .bss.code starts at 0x30028E0 */ - src/m4a_2.o(.bss.code); + src/m4a.o(.bss.code); /* COMMON starts at 0x30030E0 */ @@ -55,7 +55,7 @@ SECTIONS { src/text_printer.o(.text); asm/text_printer.o(.text); src/window.o(.text); - asm/blit.o(.text); + src/blit.o(.text); src/window_8bpp.o(.text); src/text.o(.text); src/sprite.o(.text); @@ -77,12 +77,11 @@ SECTIONS { asm/battle_controller_link_opponent.o(.text); src/pokemon.o(.text); asm/pokemon_3.o(.text); - asm/trig.o(.text); + src/trig.o(.text); src/random.o(.text); - asm/util.o(.text); - asm/blend_palette.o(.text); - asm/daycare.o(.text); - asm/egg_hatch.o(.text); + src/util.o(.text); + src/blend_palette.o(.text); + src/daycare.o(.text); asm/battle_interface.o(.text); asm/smokescreen.o(.text); asm/pokeball.o(.text); @@ -91,7 +90,7 @@ SECTIONS { asm/play_time.o(.text); asm/new_game.o(.text); asm/overworld.o(.text); - asm/fieldmap.o(.text); + src/fieldmap.o(.text); src/metatile_behavior.o(.text); asm/field_camera.o(.text); asm/field_door.o(.text); @@ -100,23 +99,23 @@ SECTIONS { asm/field_ground_effect.o(.text); asm/map_obj_80688E4.o(.text); asm/field_message_box.o(.text); - asm/map_obj_lock.o(.text); - asm/text_window_graphics.o(.text); + src/map_obj_lock.o(.text); + src/text_window_graphics.o(.text); src/script.o(.text); - asm/scrcmd.o(.text); + src/scrcmd.o(.text); asm/field_control_avatar.o(.text); asm/event_data.o(.text); - asm/coord_event_weather.o(.text); + src/coord_event_weather.o(.text); asm/field_tasks.o(.text); asm/start_menu.o(.text); asm/tileset_anims.o(.text); asm/palette.o(.text); src/sound.o(.text); asm/battle_anim.o(.text); - asm/battle_anim_8074480.o(.text); + asm/battle_anim_mons.o(.text); src/task.o(.text); asm/reshow_battle_screen.o(.text); - asm/battle_anim_8078178.o(.text); + asm/battle_anim_status_effects.o(.text); asm/title_screen.o(.text); asm/reset_save_heap.o(.text); asm/field_weather.o(.text); @@ -128,7 +127,7 @@ SECTIONS { asm/trainer_see.o(.text); asm/wild_encounter.o(.text); asm/field_effect.o(.text); - asm/unknown_task.o(.text); + src/scanline_effect.o(.text); asm/option_menu.o(.text); asm/pokedex.o(.text); asm/trainer_card.o(.text); @@ -138,11 +137,11 @@ SECTIONS { asm/fldeff_cut.o(.text); asm/mail_data.o(.text); asm/map_name_popup.o(.text); - asm/item_menu_icons.o(.text); - asm/battle_anim_80989F8.o(.text); - asm/item.o(.text); + src/item_menu_icons.o(.text); + src/battle_anim_mon_movement.o(.text); + src/item.o(.text); asm/shop.o(.text); - asm/berry.o(.text); + src/berry.o(.text); asm/script_menu.o(.text); asm/naming_screen.o(.text); src/money.o(.text); @@ -151,24 +150,42 @@ SECTIONS { asm/pokemon_size_record.o(.text); asm/pc_screen_effect.o(.text); asm/fldeff_poison.o(.text); - asm/fldeff_berrytree.o(.text); + src/fldeff_berrytree.o(.text); asm/field_special_scene.o(.text); asm/safari_zone.o(.text); - asm/item_use.o(.text); - asm/battle_anim_80A22E8.o(.text); + src/item_use.o(.text); + asm/battle_anim_effects_1.o(.text); + asm/battle_anim_effects_2.o(.text); + asm/water.o(.text); + asm/fire.o(.text); + asm/electric.o(.text); + asm/ice.o(.text); + asm/fighting.o(.text); + asm/poison.o(.text); + asm/flying.o(.text); + asm/psychic.o(.text); + asm/bug.o(.text); + asm/rock.o(.text); + asm/ghost.o(.text); + asm/dragon.o(.text); + asm/dark.o(.text); + asm/ground.o(.text); + asm/normal.o(.text); + asm/battle_anim_utility_funcs.o(.text); + src/bike.o(.text); asm/bike.o(.text); asm/easy_chat.o(.text); asm/mon_markings.o(.text); asm/mail.o(.text); asm/menu_helpers.o(.text); asm/script_pokemon_util_80BF8FC.o(.text); - asm/heal_location.o(.text); + src/heal_location.o(.text); asm/region_map.o(.text); src/battle_ai_script_commands.o(.text); asm/rom6.o(.text); asm/fldeff_flash.o(.text); asm/post_battle_event_funcs.o(.text); - asm/prof_pc.o(.text); + src/prof_pc.o(.text); asm/hof_pc.o(.text); asm/field_specials.o(.text); asm/battle_records.o(.text); @@ -179,7 +196,7 @@ SECTIONS { asm/battle_controller_link_partner.o(.text); asm/battle_message.o(.text); src/math_util.o(.text); - asm/roulette_util.o(.text); + src/roulette_util.o(.text); asm/cable_car_util.o(.text); src/save.o(.text); src/mystery_event_script.o(.text); @@ -187,21 +204,21 @@ SECTIONS { asm/battle_anim_sound_tasks.o(.text); asm/battle_controller_safari.o(.text); asm/fldeff_sweetscent.o(.text); - asm/battle_anim_80DE2C0.o(.text); + asm/battle_anim_effects_3.o(.text); asm/learn_move.o(.text); - asm/fldeff_softboiled.o(.text); + src/fldeff_softboiled.o(.text); asm/battle_tower.o(.text); asm/battle_controller_oak.o(.text); asm/player_pc.o(.text); asm/intro.o(.text); - asm/battle_anim_80EEC0C.o(.text); + asm/battle_anim_special.o(.text); asm/hall_of_fame.o(.text); asm/credits.o(.text); asm/diploma.o(.text); asm/save_failed_screen.o(.text); asm/clear_save_data_screen.o(.text); asm/evolution_graphics.o(.text); - asm/fldeff_teleport.o(.text); + src/fldeff_teleport.o(.text); asm/new_menu_helpers.o(.text); asm/box_party_pokemon_dropdown.o(.text); asm/save_menu_util.o(.text); @@ -212,11 +229,10 @@ SECTIONS { asm/list_menu.o(.text); asm/item_menu.o(.text); asm/save_location.o(.text); - asm/bag.o(.text); - asm/battle_dome_cards.o(.text); - asm/unk_810C3A4.o(.text); + src/bag.o(.text); + src/trainer_pokemon_sprites.o(.text); src/vs_seeker.o(.text); - asm/item_pc.o(.text); + src/item_pc.o(.text); asm/mailbox_pc.o(.text); asm/menu.o(.text); src/quest_log.o(.text); @@ -224,53 +240,53 @@ SECTIONS { asm/pokemon_special_anim.o(.text); asm/party_menu.o(.text); asm/union_room_chat.o(.text); - asm/help_system_812B1E0.o(.text); + src/help_system_812B1E0.o(.text); src/quest_log_battle.o(.text); src/fame_checker.o(.text); - asm/menu2.o(.text); - asm/oak_speech.o(.text); - asm/tm_case.o(.text); + src/menu2.o(.text); + src/oak_speech.o(.text); + src/tm_case.o(.text); asm/menu_indicators.o(.text); asm/pokedex_area_markers.o(.text); asm/pokemon_summary_screen.o(.text); - asm/help_system.o(.text); + src/help_system.o(.text); asm/wild_pokemon_area.o(.text); asm/unk_text_util.o(.text); asm/berry_pouch.o(.text); asm/itemfinder.o(.text); asm/buy_menu_helpers.o(.text); asm/slot_machine.o(.text); - asm/roamer.o(.text); - asm/mystery_gift_menu.o(.text); - asm/link_rfu_4.o(.text); + src/roamer.o(.text); + src/mystery_gift_menu.o(.text); src/mevent.o(.text); src/mevent_server_helpers.o(.text); src/mevent_server.o(.text); src/mevent_8145654.o(.text); src/menews_jisan.o(.text); - asm/seagallop.o(.text); - asm/unk_8147500.o(.text); - asm/unk_8147AA8.o(.text); - asm/unk_814B6F0.o(.text); - asm/unk_814BB4C.o(.text); - asm/unk_814D5C8.o(.text); - asm/wireless_communication_status_screen.o(.text); - asm/braille_text.o(.text); - asm/text_window.o(.text); + src/seagallop.o(.text); + asm/pokemon_jump.o(.text); + asm/pokemon_jump_2.o(.text); + asm/berry_crush.o(.text); + asm/berry_crush_2.o(.text); + asm/berry_crush_3.o(.text); + src/wireless_communication_status_screen.o(.text); + src/braille_text.o(.text); + src/text_window.o(.text); src/quest_log_8150454.o(.text); - asm/unk_81507FC.o(.text); + asm/dodrio_berry_picking.o(.text); asm/battle_controller_pokedude.o(.text); - asm/unk_8159F40.o(.text); - asm/teachy_tv.o(.text); - asm/unk_815C27C.o(.text); - asm/unk_815C980.o(.text); - asm/ss_anne.o(.text); - asm/cereader_tool.o(.text); + src/unk_8159F40.o(.text); + src/dodrio_berry_picking_2.o(.text); + asm/dodrio_berry_picking_2.o(.text); + src/teachy_tv.o(.text); + src/ereader_helpers.o(.text); + src/unk_815C980.o(.text); + src/ss_anne.o(.text); + src/cereader_tool.o(.text); src/trainer_tower.o(.text); - asm/trainer_tower.o(.text); - asm/unk_815EDDC.o(.text); - asm/unk_815F138.o(.text); - asm/berry_fix_program.o(.text); + src/berry_powder.o(.text); + src/unk_815F138.o(.text); + src/berry_fix_program.o(.text); } =0 script_data : @@ -290,9 +306,7 @@ SECTIONS { { asm/libgcnmultiboot.o(.text); asm/m4a_1.o(.text); - src/m4a_2.o(.text); - asm/m4a_3.o(.text); - src/m4a_4.o(.text); + src/m4a.o(.text); src/agb_flash.o(.text); src/agb_flash_1m.o(.text); src/agb_flash_mx.o(.text); @@ -367,19 +381,69 @@ SECTIONS { src/bg_regs.o(.rodata); src/string_util.o(.rodata); data/data.o(.rodata); + src/trig.o(.rodata); + src/util.o(.rodata); + src/daycare.o(.rodata); + data/data.o(.rodata.825EF0C); + data/tilesets.o(.rodata); + data/maps.o(.rodata); + src/fieldmap.o(.rodata); src/metatile_behavior.o(.rodata); data/metatile_behavior.o(.rodata); + data/field_door.o(.rodata); + data/field_player_avatar.o(.rodata); + data/field_map_obj.o(.rodata); + data/field_ground_effect.o(.rodata); + data/map_obj_80688E4.o(.rodata); + src/scrcmd.o(.rodata); + src/coord_event_weather.o(.rodata); + data/field_tasks.o(.rodata); + data/start_menu.o(.rodata); + data/tileset_anims.o(.rodata); + data/palette.o(.rodata); + src/sound.o(.rodata); + data/battle_anim.o(.rodata); + data/map_events.o(.rodata); + data/battle_anim_status_effects.o(.rodata); + data/title_screen.o(.rodata); + data/field_weather.o(.rodata); data/data_835B488.o(.rodata); + src/item_menu_icons.o(.rodata); + src/battle_anim_mon_movement.o(.rodata); + src/item.o(.rodata); + data/data_835B488.o(.rodata.83DF09C); + src/heal_location.o(.rodata); + data/data_835B488.o(.rodata.83EEC98); src/battle_ai_script_commands.o(.rodata); data/data_83F5738.o(.rodata); src/save.o(.rodata); data/data_83FECCC.o(.rodata); + data/strings.o(.rodata); + data/data_83FECCC.o(.rodata.841EE44); + src/bag.o(.rodata); + src/trainer_pokemon_sprites.o(.rodata); src/vs_seeker.o(.rodata); + src/item_pc.o(.rodata); data/data_83FECCC.o(.rodata.8453F6C); src/quest_log.o(.rodata); data/data_83FECCC.o(.rodata.8456C74); + src/help_system_812B1E0.o(.rodata); src/fame_checker.o(.rodata); - data/data_845FD54.o(.rodata); + src/menu2.o(.rodata); + src/oak_speech.o(.rodata); + src/tm_case.o(.rodata); + data/menu_indicators.o(.rodata); + data/pokedex_area_markers.o(.rodata); + data/pokemon_summary_screen.o(.rodata); + src/help_system.o(.rodata); + data/wild_pokemon_area.o(.rodata); + data/unk_text_util.o(.rodata); + data/berry_pouch.o(.rodata); + data/itemfinder.o(.rodata); + data/buy_menu_helpers.o(.rodata); + data/slot_machine.o(.rodata); + src/roamer.o(.rodata); + src/mystery_gift_menu.o(.rodata); src/mevent.o(.rodata); src/mevent_server_helpers.o(.rodata); src/mevent_server.o(.rodata); @@ -387,11 +451,22 @@ SECTIONS { data/data_8466FB8.o(.rodata); src/menews_jisan.o(.rodata); src/menews_jisan.o(.rodata.str1.4); + . = ALIGN(4); + src/seagallop.o(.rodata); data/data_8468C98.o(.rodata); + src/wireless_communication_status_screen.o(.rodata); + src/braille_text.o(.rodata); + src/text_window_graphics.o(.rodata); src/quest_log_8150454.o(.rodata); data/data_8471F00.o(.rodata); + src/teachy_tv.o(.rodata); + src/unk_815C980.o(.rodata); + data/data_8471F00.o(.rodata.8479668); + src/ss_anne.o(.rodata); + src/cereader_tool.o(.rodata); src/trainer_tower.o(.rodata); - data/trainer_tower.o(.rodata); + src/unk_815F138.o(.rodata); + src/berry_fix_program.o(.rodata); data/data_8471F00.o(.rodata.after_trainer_tower); src/mystery_event_msg.o(.rodata); data/mystery_event_msg.o(.rodata); diff --git a/map_data_rules.mk b/map_data_rules.mk new file mode 100644 index 000000000..7ba6bceb5 --- /dev/null +++ b/map_data_rules.mk @@ -0,0 +1,32 @@ +# Map JSON data + +MAPS_DIR = $(DATA_ASM_SUBDIR)/maps +LAYOUTS_DIR = $(DATA_ASM_SUBDIR)/layouts + +MAP_DIRS := $(dir $(wildcard $(MAPS_DIR)/*/map.json)) +MAP_CONNECTIONS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/connections.inc,$(MAP_DIRS)) +MAP_EVENTS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/events.inc,$(MAP_DIRS)) +MAP_HEADERS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/header.inc,$(MAP_DIRS)) + +$(MAPS_DIR)/%/header.inc: $(MAPS_DIR)/%/map.json + $(MAPJSON) map firered $< $(LAYOUTS_DIR)/layouts.json +$(MAPS_DIR)/%/events.inc: $(MAPS_DIR)/%/header.inc ; +$(MAPS_DIR)/%/connections.inc: $(MAPS_DIR)/%/events.inc ; + +$(MAPS_DIR)/groups.inc: $(MAPS_DIR)/map_groups.json + $(MAPJSON) groups firered $< +$(MAPS_DIR)/connections.inc: $(MAPS_DIR)/groups.inc ; +$(MAPS_DIR)/events.inc: $(MAPS_DIR)/connections.inc ; +$(MAPS_DIR)/headers.inc: $(MAPS_DIR)/events.inc ; +include/constants/map_groups.h: $(MAPS_DIR)/headers.inc ; + +$(LAYOUTS_DIR)/layouts.inc: $(LAYOUTS_DIR)/layouts.json + $(MAPJSON) layouts firered $< +$(LAYOUTS_DIR)/layouts_table.inc: $(LAYOUTS_DIR)/layouts.inc ; +include/constants/layouts.h: $(LAYOUTS_DIR)/layouts_table.inc ; + +$(DATA_ASM_BUILDDIR)/maps.o: $(DATA_ASM_SUBDIR)/maps.s $(LAYOUTS_DIR)/layouts.inc $(LAYOUTS_DIR)/layouts_table.inc $(MAPS_DIR)/headers.inc $(MAPS_DIR)/groups.inc $(MAPS_DIR)/connections.inc $(MAP_CONNECTIONS) $(MAP_HEADERS) + $(PREPROC) $< charmap.txt | $(CPP) -I include -nostdinc -undef -Wno-unicode - | $(AS) $(ASFLAGS) -o $@ +$(DATA_ASM_BUILDDIR)/map_events.o: $(DATA_ASM_SUBDIR)/map_events.s $(MAPS_DIR)/events.inc $(MAP_EVENTS) + $(PREPROC) $< charmap.txt | $(CPP) -I include -nostdinc -undef -Wno-unicode - | $(AS) $(ASFLAGS) -o $@ + diff --git a/sound/direct_sound_samples/cry_abra.aif b/sound/direct_sound_samples/cry_abra.aif new file mode 100644 index 000000000..7df4446db Binary files /dev/null and b/sound/direct_sound_samples/cry_abra.aif differ diff --git a/sound/direct_sound_samples/cry_absol.aif b/sound/direct_sound_samples/cry_absol.aif new file mode 100644 index 000000000..884ab22b3 Binary files /dev/null and b/sound/direct_sound_samples/cry_absol.aif differ diff --git a/sound/direct_sound_samples/cry_aerodactyl.aif b/sound/direct_sound_samples/cry_aerodactyl.aif new file mode 100644 index 000000000..c0e40f6d1 Binary files /dev/null and b/sound/direct_sound_samples/cry_aerodactyl.aif differ diff --git a/sound/direct_sound_samples/cry_aggron.aif b/sound/direct_sound_samples/cry_aggron.aif new file mode 100644 index 000000000..b89ea1222 Binary files /dev/null and b/sound/direct_sound_samples/cry_aggron.aif differ diff --git a/sound/direct_sound_samples/cry_aipom.aif b/sound/direct_sound_samples/cry_aipom.aif new file mode 100644 index 000000000..5ca276de2 Binary files /dev/null and b/sound/direct_sound_samples/cry_aipom.aif differ diff --git a/sound/direct_sound_samples/cry_alakazam.aif b/sound/direct_sound_samples/cry_alakazam.aif new file mode 100644 index 000000000..920e2ff94 Binary files /dev/null and b/sound/direct_sound_samples/cry_alakazam.aif differ diff --git a/sound/direct_sound_samples/cry_altaria.aif b/sound/direct_sound_samples/cry_altaria.aif new file mode 100644 index 000000000..3e8e35e8e Binary files /dev/null and b/sound/direct_sound_samples/cry_altaria.aif differ diff --git a/sound/direct_sound_samples/cry_ampharos.aif b/sound/direct_sound_samples/cry_ampharos.aif new file mode 100644 index 000000000..4f6e255a0 Binary files /dev/null and b/sound/direct_sound_samples/cry_ampharos.aif differ diff --git a/sound/direct_sound_samples/cry_anorith.aif b/sound/direct_sound_samples/cry_anorith.aif new file mode 100644 index 000000000..96e87e919 Binary files /dev/null and b/sound/direct_sound_samples/cry_anorith.aif differ diff --git a/sound/direct_sound_samples/cry_arbok.aif b/sound/direct_sound_samples/cry_arbok.aif new file mode 100644 index 000000000..6ccace9f9 Binary files /dev/null and b/sound/direct_sound_samples/cry_arbok.aif differ diff --git a/sound/direct_sound_samples/cry_arcanine.aif b/sound/direct_sound_samples/cry_arcanine.aif new file mode 100644 index 000000000..61d802153 Binary files /dev/null and b/sound/direct_sound_samples/cry_arcanine.aif differ diff --git a/sound/direct_sound_samples/cry_ariados.aif b/sound/direct_sound_samples/cry_ariados.aif new file mode 100644 index 000000000..1748624fb Binary files /dev/null and b/sound/direct_sound_samples/cry_ariados.aif differ diff --git a/sound/direct_sound_samples/cry_armaldo.aif b/sound/direct_sound_samples/cry_armaldo.aif new file mode 100644 index 000000000..756bf0842 Binary files /dev/null and b/sound/direct_sound_samples/cry_armaldo.aif differ diff --git a/sound/direct_sound_samples/cry_aron.aif b/sound/direct_sound_samples/cry_aron.aif new file mode 100644 index 000000000..cce70b73b Binary files /dev/null and b/sound/direct_sound_samples/cry_aron.aif differ diff --git a/sound/direct_sound_samples/cry_articuno.aif b/sound/direct_sound_samples/cry_articuno.aif new file mode 100644 index 000000000..4f237dd0f Binary files /dev/null and b/sound/direct_sound_samples/cry_articuno.aif differ diff --git a/sound/direct_sound_samples/cry_azumarill.aif b/sound/direct_sound_samples/cry_azumarill.aif new file mode 100644 index 000000000..18411f93c Binary files /dev/null and b/sound/direct_sound_samples/cry_azumarill.aif differ diff --git a/sound/direct_sound_samples/cry_azurill.aif b/sound/direct_sound_samples/cry_azurill.aif new file mode 100644 index 000000000..7f651c3d3 Binary files /dev/null and b/sound/direct_sound_samples/cry_azurill.aif differ diff --git a/sound/direct_sound_samples/cry_bagon.aif b/sound/direct_sound_samples/cry_bagon.aif new file mode 100644 index 000000000..3843fb9f4 Binary files /dev/null and b/sound/direct_sound_samples/cry_bagon.aif differ diff --git a/sound/direct_sound_samples/cry_baltoy.aif b/sound/direct_sound_samples/cry_baltoy.aif new file mode 100644 index 000000000..25e1a708a Binary files /dev/null and b/sound/direct_sound_samples/cry_baltoy.aif differ diff --git a/sound/direct_sound_samples/cry_banette.aif b/sound/direct_sound_samples/cry_banette.aif new file mode 100644 index 000000000..23713f1b5 Binary files /dev/null and b/sound/direct_sound_samples/cry_banette.aif differ diff --git a/sound/direct_sound_samples/cry_barboach.aif b/sound/direct_sound_samples/cry_barboach.aif new file mode 100644 index 000000000..4b9228259 Binary files /dev/null and b/sound/direct_sound_samples/cry_barboach.aif differ diff --git a/sound/direct_sound_samples/cry_bayleef.aif b/sound/direct_sound_samples/cry_bayleef.aif new file mode 100644 index 000000000..8cef22df3 Binary files /dev/null and b/sound/direct_sound_samples/cry_bayleef.aif differ diff --git a/sound/direct_sound_samples/cry_beautifly.aif b/sound/direct_sound_samples/cry_beautifly.aif new file mode 100644 index 000000000..0924b6c55 Binary files /dev/null and b/sound/direct_sound_samples/cry_beautifly.aif differ diff --git a/sound/direct_sound_samples/cry_beedrill.aif b/sound/direct_sound_samples/cry_beedrill.aif new file mode 100644 index 000000000..00d0bc96c Binary files /dev/null and b/sound/direct_sound_samples/cry_beedrill.aif differ diff --git a/sound/direct_sound_samples/cry_beldum.aif b/sound/direct_sound_samples/cry_beldum.aif new file mode 100644 index 000000000..76435a6a8 Binary files /dev/null and b/sound/direct_sound_samples/cry_beldum.aif differ diff --git a/sound/direct_sound_samples/cry_bellossom.aif b/sound/direct_sound_samples/cry_bellossom.aif new file mode 100644 index 000000000..86580df65 Binary files /dev/null and b/sound/direct_sound_samples/cry_bellossom.aif differ diff --git a/sound/direct_sound_samples/cry_bellsprout.aif b/sound/direct_sound_samples/cry_bellsprout.aif new file mode 100644 index 000000000..cfdd7aed2 Binary files /dev/null and b/sound/direct_sound_samples/cry_bellsprout.aif differ diff --git a/sound/direct_sound_samples/cry_blastoise.aif b/sound/direct_sound_samples/cry_blastoise.aif new file mode 100644 index 000000000..76dac2bcc Binary files /dev/null and b/sound/direct_sound_samples/cry_blastoise.aif differ diff --git a/sound/direct_sound_samples/cry_blaziken.aif b/sound/direct_sound_samples/cry_blaziken.aif new file mode 100644 index 000000000..83e5ccf23 Binary files /dev/null and b/sound/direct_sound_samples/cry_blaziken.aif differ diff --git a/sound/direct_sound_samples/cry_blissey.aif b/sound/direct_sound_samples/cry_blissey.aif new file mode 100644 index 000000000..897eb3d69 Binary files /dev/null and b/sound/direct_sound_samples/cry_blissey.aif differ diff --git a/sound/direct_sound_samples/cry_breloom.aif b/sound/direct_sound_samples/cry_breloom.aif new file mode 100644 index 000000000..ea3f1bb66 Binary files /dev/null and b/sound/direct_sound_samples/cry_breloom.aif differ diff --git a/sound/direct_sound_samples/cry_bulbasaur.aif b/sound/direct_sound_samples/cry_bulbasaur.aif new file mode 100644 index 000000000..040fb1df7 Binary files /dev/null and b/sound/direct_sound_samples/cry_bulbasaur.aif differ diff --git a/sound/direct_sound_samples/cry_butterfree.aif b/sound/direct_sound_samples/cry_butterfree.aif new file mode 100644 index 000000000..f27616395 Binary files /dev/null and b/sound/direct_sound_samples/cry_butterfree.aif differ diff --git a/sound/direct_sound_samples/cry_cacnea.aif b/sound/direct_sound_samples/cry_cacnea.aif new file mode 100644 index 000000000..4fd5acd36 Binary files /dev/null and b/sound/direct_sound_samples/cry_cacnea.aif differ diff --git a/sound/direct_sound_samples/cry_cacturne.aif b/sound/direct_sound_samples/cry_cacturne.aif new file mode 100644 index 000000000..d9fb8fda8 Binary files /dev/null and b/sound/direct_sound_samples/cry_cacturne.aif differ diff --git a/sound/direct_sound_samples/cry_camerupt.aif b/sound/direct_sound_samples/cry_camerupt.aif new file mode 100644 index 000000000..325df1220 Binary files /dev/null and b/sound/direct_sound_samples/cry_camerupt.aif differ diff --git a/sound/direct_sound_samples/cry_carvanha.aif b/sound/direct_sound_samples/cry_carvanha.aif new file mode 100644 index 000000000..c7cdedf91 Binary files /dev/null and b/sound/direct_sound_samples/cry_carvanha.aif differ diff --git a/sound/direct_sound_samples/cry_cascoon.aif b/sound/direct_sound_samples/cry_cascoon.aif new file mode 100644 index 000000000..17eef0ee9 Binary files /dev/null and b/sound/direct_sound_samples/cry_cascoon.aif differ diff --git a/sound/direct_sound_samples/cry_castform.aif b/sound/direct_sound_samples/cry_castform.aif new file mode 100644 index 000000000..c10745640 Binary files /dev/null and b/sound/direct_sound_samples/cry_castform.aif differ diff --git a/sound/direct_sound_samples/cry_caterpie.aif b/sound/direct_sound_samples/cry_caterpie.aif new file mode 100644 index 000000000..b0b246b4f Binary files /dev/null and b/sound/direct_sound_samples/cry_caterpie.aif differ diff --git a/sound/direct_sound_samples/cry_celebi.aif b/sound/direct_sound_samples/cry_celebi.aif new file mode 100644 index 000000000..9f9f3ea39 Binary files /dev/null and b/sound/direct_sound_samples/cry_celebi.aif differ diff --git a/sound/direct_sound_samples/cry_chansey.aif b/sound/direct_sound_samples/cry_chansey.aif new file mode 100644 index 000000000..d764c86ce Binary files /dev/null and b/sound/direct_sound_samples/cry_chansey.aif differ diff --git a/sound/direct_sound_samples/cry_charizard.aif b/sound/direct_sound_samples/cry_charizard.aif new file mode 100644 index 000000000..48321b792 Binary files /dev/null and b/sound/direct_sound_samples/cry_charizard.aif differ diff --git a/sound/direct_sound_samples/cry_charmander.aif b/sound/direct_sound_samples/cry_charmander.aif new file mode 100644 index 000000000..d72c0f9e0 Binary files /dev/null and b/sound/direct_sound_samples/cry_charmander.aif differ diff --git a/sound/direct_sound_samples/cry_charmeleon.aif b/sound/direct_sound_samples/cry_charmeleon.aif new file mode 100644 index 000000000..8e84af0d8 Binary files /dev/null and b/sound/direct_sound_samples/cry_charmeleon.aif differ diff --git a/sound/direct_sound_samples/cry_chikorita.aif b/sound/direct_sound_samples/cry_chikorita.aif new file mode 100644 index 000000000..67ceafdc3 Binary files /dev/null and b/sound/direct_sound_samples/cry_chikorita.aif differ diff --git a/sound/direct_sound_samples/cry_chimecho.aif b/sound/direct_sound_samples/cry_chimecho.aif new file mode 100644 index 000000000..87ee2faee Binary files /dev/null and b/sound/direct_sound_samples/cry_chimecho.aif differ diff --git a/sound/direct_sound_samples/cry_chinchou.aif b/sound/direct_sound_samples/cry_chinchou.aif new file mode 100644 index 000000000..356475678 Binary files /dev/null and b/sound/direct_sound_samples/cry_chinchou.aif differ diff --git a/sound/direct_sound_samples/cry_clamperl.aif b/sound/direct_sound_samples/cry_clamperl.aif new file mode 100644 index 000000000..7250bd703 Binary files /dev/null and b/sound/direct_sound_samples/cry_clamperl.aif differ diff --git a/sound/direct_sound_samples/cry_claydol.aif b/sound/direct_sound_samples/cry_claydol.aif new file mode 100644 index 000000000..b89772021 Binary files /dev/null and b/sound/direct_sound_samples/cry_claydol.aif differ diff --git a/sound/direct_sound_samples/cry_clefable.aif b/sound/direct_sound_samples/cry_clefable.aif new file mode 100644 index 000000000..9c2d8c664 Binary files /dev/null and b/sound/direct_sound_samples/cry_clefable.aif differ diff --git a/sound/direct_sound_samples/cry_clefairy.aif b/sound/direct_sound_samples/cry_clefairy.aif new file mode 100644 index 000000000..c370c4a9b Binary files /dev/null and b/sound/direct_sound_samples/cry_clefairy.aif differ diff --git a/sound/direct_sound_samples/cry_cleffa.aif b/sound/direct_sound_samples/cry_cleffa.aif new file mode 100644 index 000000000..b27cdeca9 Binary files /dev/null and b/sound/direct_sound_samples/cry_cleffa.aif differ diff --git a/sound/direct_sound_samples/cry_cloyster.aif b/sound/direct_sound_samples/cry_cloyster.aif new file mode 100644 index 000000000..b406deab0 Binary files /dev/null and b/sound/direct_sound_samples/cry_cloyster.aif differ diff --git a/sound/direct_sound_samples/cry_combusken.aif b/sound/direct_sound_samples/cry_combusken.aif new file mode 100644 index 000000000..7d4b0d4cc Binary files /dev/null and b/sound/direct_sound_samples/cry_combusken.aif differ diff --git a/sound/direct_sound_samples/cry_corphish.aif b/sound/direct_sound_samples/cry_corphish.aif new file mode 100644 index 000000000..f0f5ca01e Binary files /dev/null and b/sound/direct_sound_samples/cry_corphish.aif differ diff --git a/sound/direct_sound_samples/cry_corsola.aif b/sound/direct_sound_samples/cry_corsola.aif new file mode 100644 index 000000000..68e743bfd Binary files /dev/null and b/sound/direct_sound_samples/cry_corsola.aif differ diff --git a/sound/direct_sound_samples/cry_cradily.aif b/sound/direct_sound_samples/cry_cradily.aif new file mode 100644 index 000000000..197dc8d92 Binary files /dev/null and b/sound/direct_sound_samples/cry_cradily.aif differ diff --git a/sound/direct_sound_samples/cry_crawdaunt.aif b/sound/direct_sound_samples/cry_crawdaunt.aif new file mode 100644 index 000000000..a203ce2fb Binary files /dev/null and b/sound/direct_sound_samples/cry_crawdaunt.aif differ diff --git a/sound/direct_sound_samples/cry_crobat.aif b/sound/direct_sound_samples/cry_crobat.aif new file mode 100644 index 000000000..75d039bd8 Binary files /dev/null and b/sound/direct_sound_samples/cry_crobat.aif differ diff --git a/sound/direct_sound_samples/cry_croconaw.aif b/sound/direct_sound_samples/cry_croconaw.aif new file mode 100644 index 000000000..afb7f3fdc Binary files /dev/null and b/sound/direct_sound_samples/cry_croconaw.aif differ diff --git a/sound/direct_sound_samples/cry_cubone.aif b/sound/direct_sound_samples/cry_cubone.aif new file mode 100644 index 000000000..170745da1 Binary files /dev/null and b/sound/direct_sound_samples/cry_cubone.aif differ diff --git a/sound/direct_sound_samples/cry_cyndaquil.aif b/sound/direct_sound_samples/cry_cyndaquil.aif new file mode 100644 index 000000000..4aa580199 Binary files /dev/null and b/sound/direct_sound_samples/cry_cyndaquil.aif differ diff --git a/sound/direct_sound_samples/cry_delcatty.aif b/sound/direct_sound_samples/cry_delcatty.aif new file mode 100644 index 000000000..dd665b110 Binary files /dev/null and b/sound/direct_sound_samples/cry_delcatty.aif differ diff --git a/sound/direct_sound_samples/cry_delibird.aif b/sound/direct_sound_samples/cry_delibird.aif new file mode 100644 index 000000000..dbedc42d4 Binary files /dev/null and b/sound/direct_sound_samples/cry_delibird.aif differ diff --git a/sound/direct_sound_samples/cry_deoxys.aif b/sound/direct_sound_samples/cry_deoxys.aif new file mode 100644 index 000000000..b9623b337 Binary files /dev/null and b/sound/direct_sound_samples/cry_deoxys.aif differ diff --git a/sound/direct_sound_samples/cry_dewgong.aif b/sound/direct_sound_samples/cry_dewgong.aif new file mode 100644 index 000000000..72d69b773 Binary files /dev/null and b/sound/direct_sound_samples/cry_dewgong.aif differ diff --git a/sound/direct_sound_samples/cry_diglett.aif b/sound/direct_sound_samples/cry_diglett.aif new file mode 100644 index 000000000..b116af7f2 Binary files /dev/null and b/sound/direct_sound_samples/cry_diglett.aif differ diff --git a/sound/direct_sound_samples/cry_ditto.aif b/sound/direct_sound_samples/cry_ditto.aif new file mode 100644 index 000000000..2c797f4c4 Binary files /dev/null and b/sound/direct_sound_samples/cry_ditto.aif differ diff --git a/sound/direct_sound_samples/cry_dodrio.aif b/sound/direct_sound_samples/cry_dodrio.aif new file mode 100644 index 000000000..111d8bf3e Binary files /dev/null and b/sound/direct_sound_samples/cry_dodrio.aif differ diff --git a/sound/direct_sound_samples/cry_doduo.aif b/sound/direct_sound_samples/cry_doduo.aif new file mode 100644 index 000000000..5700b91d9 Binary files /dev/null and b/sound/direct_sound_samples/cry_doduo.aif differ diff --git a/sound/direct_sound_samples/cry_donphan.aif b/sound/direct_sound_samples/cry_donphan.aif new file mode 100644 index 000000000..a41c124b1 Binary files /dev/null and b/sound/direct_sound_samples/cry_donphan.aif differ diff --git a/sound/direct_sound_samples/cry_dragonair.aif b/sound/direct_sound_samples/cry_dragonair.aif new file mode 100644 index 000000000..38c3955ef Binary files /dev/null and b/sound/direct_sound_samples/cry_dragonair.aif differ diff --git a/sound/direct_sound_samples/cry_dragonite.aif b/sound/direct_sound_samples/cry_dragonite.aif new file mode 100644 index 000000000..d1e7b11cf Binary files /dev/null and b/sound/direct_sound_samples/cry_dragonite.aif differ diff --git a/sound/direct_sound_samples/cry_dratini.aif b/sound/direct_sound_samples/cry_dratini.aif new file mode 100644 index 000000000..298497480 Binary files /dev/null and b/sound/direct_sound_samples/cry_dratini.aif differ diff --git a/sound/direct_sound_samples/cry_drowzee.aif b/sound/direct_sound_samples/cry_drowzee.aif new file mode 100644 index 000000000..0d53eb2ff Binary files /dev/null and b/sound/direct_sound_samples/cry_drowzee.aif differ diff --git a/sound/direct_sound_samples/cry_dugtrio.aif b/sound/direct_sound_samples/cry_dugtrio.aif new file mode 100644 index 000000000..dff573dfe Binary files /dev/null and b/sound/direct_sound_samples/cry_dugtrio.aif differ diff --git a/sound/direct_sound_samples/cry_dunsparce.aif b/sound/direct_sound_samples/cry_dunsparce.aif new file mode 100644 index 000000000..454617c05 Binary files /dev/null and b/sound/direct_sound_samples/cry_dunsparce.aif differ diff --git a/sound/direct_sound_samples/cry_dusclops.aif b/sound/direct_sound_samples/cry_dusclops.aif new file mode 100644 index 000000000..de9657e4f Binary files /dev/null and b/sound/direct_sound_samples/cry_dusclops.aif differ diff --git a/sound/direct_sound_samples/cry_duskull.aif b/sound/direct_sound_samples/cry_duskull.aif new file mode 100644 index 000000000..d84ea274e Binary files /dev/null and b/sound/direct_sound_samples/cry_duskull.aif differ diff --git a/sound/direct_sound_samples/cry_dustox.aif b/sound/direct_sound_samples/cry_dustox.aif new file mode 100644 index 000000000..56d8eb336 Binary files /dev/null and b/sound/direct_sound_samples/cry_dustox.aif differ diff --git a/sound/direct_sound_samples/cry_eevee.aif b/sound/direct_sound_samples/cry_eevee.aif new file mode 100644 index 000000000..8711a1470 Binary files /dev/null and b/sound/direct_sound_samples/cry_eevee.aif differ diff --git a/sound/direct_sound_samples/cry_ekans.aif b/sound/direct_sound_samples/cry_ekans.aif new file mode 100644 index 000000000..9eb396735 Binary files /dev/null and b/sound/direct_sound_samples/cry_ekans.aif differ diff --git a/sound/direct_sound_samples/cry_electabuzz.aif b/sound/direct_sound_samples/cry_electabuzz.aif new file mode 100644 index 000000000..5abdb49b7 Binary files /dev/null and b/sound/direct_sound_samples/cry_electabuzz.aif differ diff --git a/sound/direct_sound_samples/cry_electrike.aif b/sound/direct_sound_samples/cry_electrike.aif new file mode 100644 index 000000000..56c9666df Binary files /dev/null and b/sound/direct_sound_samples/cry_electrike.aif differ diff --git a/sound/direct_sound_samples/cry_electrode.aif b/sound/direct_sound_samples/cry_electrode.aif new file mode 100644 index 000000000..cbd7f0971 Binary files /dev/null and b/sound/direct_sound_samples/cry_electrode.aif differ diff --git a/sound/direct_sound_samples/cry_elekid.aif b/sound/direct_sound_samples/cry_elekid.aif new file mode 100644 index 000000000..839bdee17 Binary files /dev/null and b/sound/direct_sound_samples/cry_elekid.aif differ diff --git a/sound/direct_sound_samples/cry_entei.aif b/sound/direct_sound_samples/cry_entei.aif new file mode 100644 index 000000000..56a740207 Binary files /dev/null and b/sound/direct_sound_samples/cry_entei.aif differ diff --git a/sound/direct_sound_samples/cry_espeon.aif b/sound/direct_sound_samples/cry_espeon.aif new file mode 100644 index 000000000..53dc62f4d Binary files /dev/null and b/sound/direct_sound_samples/cry_espeon.aif differ diff --git a/sound/direct_sound_samples/cry_exeggcute.aif b/sound/direct_sound_samples/cry_exeggcute.aif new file mode 100644 index 000000000..147912c2f Binary files /dev/null and b/sound/direct_sound_samples/cry_exeggcute.aif differ diff --git a/sound/direct_sound_samples/cry_exeggutor.aif b/sound/direct_sound_samples/cry_exeggutor.aif new file mode 100644 index 000000000..c0b9177bf Binary files /dev/null and b/sound/direct_sound_samples/cry_exeggutor.aif differ diff --git a/sound/direct_sound_samples/cry_exploud.aif b/sound/direct_sound_samples/cry_exploud.aif new file mode 100644 index 000000000..5b80870cc Binary files /dev/null and b/sound/direct_sound_samples/cry_exploud.aif differ diff --git a/sound/direct_sound_samples/cry_farfetchd.aif b/sound/direct_sound_samples/cry_farfetchd.aif new file mode 100644 index 000000000..f1db556dc Binary files /dev/null and b/sound/direct_sound_samples/cry_farfetchd.aif differ diff --git a/sound/direct_sound_samples/cry_fearow.aif b/sound/direct_sound_samples/cry_fearow.aif new file mode 100644 index 000000000..74a76f6d4 Binary files /dev/null and b/sound/direct_sound_samples/cry_fearow.aif differ diff --git a/sound/direct_sound_samples/cry_feebas.aif b/sound/direct_sound_samples/cry_feebas.aif new file mode 100644 index 000000000..c386522f1 Binary files /dev/null and b/sound/direct_sound_samples/cry_feebas.aif differ diff --git a/sound/direct_sound_samples/cry_feraligatr.aif b/sound/direct_sound_samples/cry_feraligatr.aif new file mode 100644 index 000000000..9fcd93cff Binary files /dev/null and b/sound/direct_sound_samples/cry_feraligatr.aif differ diff --git a/sound/direct_sound_samples/cry_flaaffy.aif b/sound/direct_sound_samples/cry_flaaffy.aif new file mode 100644 index 000000000..93dfacfaf Binary files /dev/null and b/sound/direct_sound_samples/cry_flaaffy.aif differ diff --git a/sound/direct_sound_samples/cry_flareon.aif b/sound/direct_sound_samples/cry_flareon.aif new file mode 100644 index 000000000..58d28e60a Binary files /dev/null and b/sound/direct_sound_samples/cry_flareon.aif differ diff --git a/sound/direct_sound_samples/cry_flygon.aif b/sound/direct_sound_samples/cry_flygon.aif new file mode 100644 index 000000000..c8c377016 Binary files /dev/null and b/sound/direct_sound_samples/cry_flygon.aif differ diff --git a/sound/direct_sound_samples/cry_forretress.aif b/sound/direct_sound_samples/cry_forretress.aif new file mode 100644 index 000000000..288dacbea Binary files /dev/null and b/sound/direct_sound_samples/cry_forretress.aif differ diff --git a/sound/direct_sound_samples/cry_furret.aif b/sound/direct_sound_samples/cry_furret.aif new file mode 100644 index 000000000..6b4e9ce11 Binary files /dev/null and b/sound/direct_sound_samples/cry_furret.aif differ diff --git a/sound/direct_sound_samples/cry_gardevoir.aif b/sound/direct_sound_samples/cry_gardevoir.aif new file mode 100644 index 000000000..a14780990 Binary files /dev/null and b/sound/direct_sound_samples/cry_gardevoir.aif differ diff --git a/sound/direct_sound_samples/cry_gastly.aif b/sound/direct_sound_samples/cry_gastly.aif new file mode 100644 index 000000000..93cef851d Binary files /dev/null and b/sound/direct_sound_samples/cry_gastly.aif differ diff --git a/sound/direct_sound_samples/cry_gengar.aif b/sound/direct_sound_samples/cry_gengar.aif new file mode 100644 index 000000000..379b5d37e Binary files /dev/null and b/sound/direct_sound_samples/cry_gengar.aif differ diff --git a/sound/direct_sound_samples/cry_geodude.aif b/sound/direct_sound_samples/cry_geodude.aif new file mode 100644 index 000000000..143b9031c Binary files /dev/null and b/sound/direct_sound_samples/cry_geodude.aif differ diff --git a/sound/direct_sound_samples/cry_girafarig.aif b/sound/direct_sound_samples/cry_girafarig.aif new file mode 100644 index 000000000..1dd5f93e2 Binary files /dev/null and b/sound/direct_sound_samples/cry_girafarig.aif differ diff --git a/sound/direct_sound_samples/cry_glalie.aif b/sound/direct_sound_samples/cry_glalie.aif new file mode 100644 index 000000000..e4e896547 Binary files /dev/null and b/sound/direct_sound_samples/cry_glalie.aif differ diff --git a/sound/direct_sound_samples/cry_gligar.aif b/sound/direct_sound_samples/cry_gligar.aif new file mode 100644 index 000000000..4050f08b0 Binary files /dev/null and b/sound/direct_sound_samples/cry_gligar.aif differ diff --git a/sound/direct_sound_samples/cry_gloom.aif b/sound/direct_sound_samples/cry_gloom.aif new file mode 100644 index 000000000..e930328ac Binary files /dev/null and b/sound/direct_sound_samples/cry_gloom.aif differ diff --git a/sound/direct_sound_samples/cry_golbat.aif b/sound/direct_sound_samples/cry_golbat.aif new file mode 100644 index 000000000..11413df3a Binary files /dev/null and b/sound/direct_sound_samples/cry_golbat.aif differ diff --git a/sound/direct_sound_samples/cry_goldeen.aif b/sound/direct_sound_samples/cry_goldeen.aif new file mode 100644 index 000000000..81fd1ecdf Binary files /dev/null and b/sound/direct_sound_samples/cry_goldeen.aif differ diff --git a/sound/direct_sound_samples/cry_golduck.aif b/sound/direct_sound_samples/cry_golduck.aif new file mode 100644 index 000000000..b6b71a7a4 Binary files /dev/null and b/sound/direct_sound_samples/cry_golduck.aif differ diff --git a/sound/direct_sound_samples/cry_golem.aif b/sound/direct_sound_samples/cry_golem.aif new file mode 100644 index 000000000..0d2c4515e Binary files /dev/null and b/sound/direct_sound_samples/cry_golem.aif differ diff --git a/sound/direct_sound_samples/cry_gorebyss.aif b/sound/direct_sound_samples/cry_gorebyss.aif new file mode 100644 index 000000000..b7605062c Binary files /dev/null and b/sound/direct_sound_samples/cry_gorebyss.aif differ diff --git a/sound/direct_sound_samples/cry_granbull.aif b/sound/direct_sound_samples/cry_granbull.aif new file mode 100644 index 000000000..146b3bd0c Binary files /dev/null and b/sound/direct_sound_samples/cry_granbull.aif differ diff --git a/sound/direct_sound_samples/cry_graveler.aif b/sound/direct_sound_samples/cry_graveler.aif new file mode 100644 index 000000000..773994228 Binary files /dev/null and b/sound/direct_sound_samples/cry_graveler.aif differ diff --git a/sound/direct_sound_samples/cry_grimer.aif b/sound/direct_sound_samples/cry_grimer.aif new file mode 100644 index 000000000..95eed1061 Binary files /dev/null and b/sound/direct_sound_samples/cry_grimer.aif differ diff --git a/sound/direct_sound_samples/cry_groudon.aif b/sound/direct_sound_samples/cry_groudon.aif new file mode 100644 index 000000000..62452b4d9 Binary files /dev/null and b/sound/direct_sound_samples/cry_groudon.aif differ diff --git a/sound/direct_sound_samples/cry_grovyle.aif b/sound/direct_sound_samples/cry_grovyle.aif new file mode 100644 index 000000000..983bcfff3 Binary files /dev/null and b/sound/direct_sound_samples/cry_grovyle.aif differ diff --git a/sound/direct_sound_samples/cry_growlithe.aif b/sound/direct_sound_samples/cry_growlithe.aif new file mode 100644 index 000000000..134e29834 Binary files /dev/null and b/sound/direct_sound_samples/cry_growlithe.aif differ diff --git a/sound/direct_sound_samples/cry_grumpig.aif b/sound/direct_sound_samples/cry_grumpig.aif new file mode 100644 index 000000000..97c372076 Binary files /dev/null and b/sound/direct_sound_samples/cry_grumpig.aif differ diff --git a/sound/direct_sound_samples/cry_gulpin.aif b/sound/direct_sound_samples/cry_gulpin.aif new file mode 100644 index 000000000..f3043b422 Binary files /dev/null and b/sound/direct_sound_samples/cry_gulpin.aif differ diff --git a/sound/direct_sound_samples/cry_gyarados.aif b/sound/direct_sound_samples/cry_gyarados.aif new file mode 100644 index 000000000..238b6d721 Binary files /dev/null and b/sound/direct_sound_samples/cry_gyarados.aif differ diff --git a/sound/direct_sound_samples/cry_hariyama.aif b/sound/direct_sound_samples/cry_hariyama.aif new file mode 100644 index 000000000..1ac1f3f7e Binary files /dev/null and b/sound/direct_sound_samples/cry_hariyama.aif differ diff --git a/sound/direct_sound_samples/cry_haunter.aif b/sound/direct_sound_samples/cry_haunter.aif new file mode 100644 index 000000000..60ec72171 Binary files /dev/null and b/sound/direct_sound_samples/cry_haunter.aif differ diff --git a/sound/direct_sound_samples/cry_heracross.aif b/sound/direct_sound_samples/cry_heracross.aif new file mode 100644 index 000000000..a0734748f Binary files /dev/null and b/sound/direct_sound_samples/cry_heracross.aif differ diff --git a/sound/direct_sound_samples/cry_hitmonchan.aif b/sound/direct_sound_samples/cry_hitmonchan.aif new file mode 100644 index 000000000..40479452c Binary files /dev/null and b/sound/direct_sound_samples/cry_hitmonchan.aif differ diff --git a/sound/direct_sound_samples/cry_hitmonlee.aif b/sound/direct_sound_samples/cry_hitmonlee.aif new file mode 100644 index 000000000..3a4bcddca Binary files /dev/null and b/sound/direct_sound_samples/cry_hitmonlee.aif differ diff --git a/sound/direct_sound_samples/cry_hitmontop.aif b/sound/direct_sound_samples/cry_hitmontop.aif new file mode 100644 index 000000000..3fbee8041 Binary files /dev/null and b/sound/direct_sound_samples/cry_hitmontop.aif differ diff --git a/sound/direct_sound_samples/cry_ho_oh.aif b/sound/direct_sound_samples/cry_ho_oh.aif new file mode 100644 index 000000000..52f8dd307 Binary files /dev/null and b/sound/direct_sound_samples/cry_ho_oh.aif differ diff --git a/sound/direct_sound_samples/cry_hoothoot.aif b/sound/direct_sound_samples/cry_hoothoot.aif new file mode 100644 index 000000000..59e685dcc Binary files /dev/null and b/sound/direct_sound_samples/cry_hoothoot.aif differ diff --git a/sound/direct_sound_samples/cry_hoppip.aif b/sound/direct_sound_samples/cry_hoppip.aif new file mode 100644 index 000000000..ea47877d0 Binary files /dev/null and b/sound/direct_sound_samples/cry_hoppip.aif differ diff --git a/sound/direct_sound_samples/cry_horsea.aif b/sound/direct_sound_samples/cry_horsea.aif new file mode 100644 index 000000000..e41eff4b1 Binary files /dev/null and b/sound/direct_sound_samples/cry_horsea.aif differ diff --git a/sound/direct_sound_samples/cry_houndoom.aif b/sound/direct_sound_samples/cry_houndoom.aif new file mode 100644 index 000000000..6fec16d39 Binary files /dev/null and b/sound/direct_sound_samples/cry_houndoom.aif differ diff --git a/sound/direct_sound_samples/cry_houndour.aif b/sound/direct_sound_samples/cry_houndour.aif new file mode 100644 index 000000000..7431bbf29 Binary files /dev/null and b/sound/direct_sound_samples/cry_houndour.aif differ diff --git a/sound/direct_sound_samples/cry_huntail.aif b/sound/direct_sound_samples/cry_huntail.aif new file mode 100644 index 000000000..f1d3b29d9 Binary files /dev/null and b/sound/direct_sound_samples/cry_huntail.aif differ diff --git a/sound/direct_sound_samples/cry_hypno.aif b/sound/direct_sound_samples/cry_hypno.aif new file mode 100644 index 000000000..32672a3c3 Binary files /dev/null and b/sound/direct_sound_samples/cry_hypno.aif differ diff --git a/sound/direct_sound_samples/cry_igglybuff.aif b/sound/direct_sound_samples/cry_igglybuff.aif new file mode 100644 index 000000000..8de8394d5 Binary files /dev/null and b/sound/direct_sound_samples/cry_igglybuff.aif differ diff --git a/sound/direct_sound_samples/cry_illumise.aif b/sound/direct_sound_samples/cry_illumise.aif new file mode 100644 index 000000000..75e03efc8 Binary files /dev/null and b/sound/direct_sound_samples/cry_illumise.aif differ diff --git a/sound/direct_sound_samples/cry_ivysaur.aif b/sound/direct_sound_samples/cry_ivysaur.aif new file mode 100644 index 000000000..ea474ff88 Binary files /dev/null and b/sound/direct_sound_samples/cry_ivysaur.aif differ diff --git a/sound/direct_sound_samples/cry_jigglypuff.aif b/sound/direct_sound_samples/cry_jigglypuff.aif new file mode 100644 index 000000000..780424b4f Binary files /dev/null and b/sound/direct_sound_samples/cry_jigglypuff.aif differ diff --git a/sound/direct_sound_samples/cry_jirachi.aif b/sound/direct_sound_samples/cry_jirachi.aif new file mode 100644 index 000000000..ea8a5c8ad Binary files /dev/null and b/sound/direct_sound_samples/cry_jirachi.aif differ diff --git a/sound/direct_sound_samples/cry_jolteon.aif b/sound/direct_sound_samples/cry_jolteon.aif new file mode 100644 index 000000000..013369158 Binary files /dev/null and b/sound/direct_sound_samples/cry_jolteon.aif differ diff --git a/sound/direct_sound_samples/cry_jumpluff.aif b/sound/direct_sound_samples/cry_jumpluff.aif new file mode 100644 index 000000000..13b0fd315 Binary files /dev/null and b/sound/direct_sound_samples/cry_jumpluff.aif differ diff --git a/sound/direct_sound_samples/cry_jynx.aif b/sound/direct_sound_samples/cry_jynx.aif new file mode 100644 index 000000000..7394a48a2 Binary files /dev/null and b/sound/direct_sound_samples/cry_jynx.aif differ diff --git a/sound/direct_sound_samples/cry_kabuto.aif b/sound/direct_sound_samples/cry_kabuto.aif new file mode 100644 index 000000000..6ae9801b5 Binary files /dev/null and b/sound/direct_sound_samples/cry_kabuto.aif differ diff --git a/sound/direct_sound_samples/cry_kabutops.aif b/sound/direct_sound_samples/cry_kabutops.aif new file mode 100644 index 000000000..f23778e57 Binary files /dev/null and b/sound/direct_sound_samples/cry_kabutops.aif differ diff --git a/sound/direct_sound_samples/cry_kadabra.aif b/sound/direct_sound_samples/cry_kadabra.aif new file mode 100644 index 000000000..bfcc18031 Binary files /dev/null and b/sound/direct_sound_samples/cry_kadabra.aif differ diff --git a/sound/direct_sound_samples/cry_kakuna.aif b/sound/direct_sound_samples/cry_kakuna.aif new file mode 100644 index 000000000..7c4e9d7a8 Binary files /dev/null and b/sound/direct_sound_samples/cry_kakuna.aif differ diff --git a/sound/direct_sound_samples/cry_kangaskhan.aif b/sound/direct_sound_samples/cry_kangaskhan.aif new file mode 100644 index 000000000..643e81eb7 Binary files /dev/null and b/sound/direct_sound_samples/cry_kangaskhan.aif differ diff --git a/sound/direct_sound_samples/cry_kecleon.aif b/sound/direct_sound_samples/cry_kecleon.aif new file mode 100644 index 000000000..f27ae1832 Binary files /dev/null and b/sound/direct_sound_samples/cry_kecleon.aif differ diff --git a/sound/direct_sound_samples/cry_kingdra.aif b/sound/direct_sound_samples/cry_kingdra.aif new file mode 100644 index 000000000..ade230c82 Binary files /dev/null and b/sound/direct_sound_samples/cry_kingdra.aif differ diff --git a/sound/direct_sound_samples/cry_kingler.aif b/sound/direct_sound_samples/cry_kingler.aif new file mode 100644 index 000000000..a1d845f45 Binary files /dev/null and b/sound/direct_sound_samples/cry_kingler.aif differ diff --git a/sound/direct_sound_samples/cry_kirlia.aif b/sound/direct_sound_samples/cry_kirlia.aif new file mode 100644 index 000000000..692e03e5f Binary files /dev/null and b/sound/direct_sound_samples/cry_kirlia.aif differ diff --git a/sound/direct_sound_samples/cry_koffing.aif b/sound/direct_sound_samples/cry_koffing.aif new file mode 100644 index 000000000..7ca9de088 Binary files /dev/null and b/sound/direct_sound_samples/cry_koffing.aif differ diff --git a/sound/direct_sound_samples/cry_krabby.aif b/sound/direct_sound_samples/cry_krabby.aif new file mode 100644 index 000000000..6b7692f21 Binary files /dev/null and b/sound/direct_sound_samples/cry_krabby.aif differ diff --git a/sound/direct_sound_samples/cry_kyogre.aif b/sound/direct_sound_samples/cry_kyogre.aif new file mode 100644 index 000000000..290948319 Binary files /dev/null and b/sound/direct_sound_samples/cry_kyogre.aif differ diff --git a/sound/direct_sound_samples/cry_lairon.aif b/sound/direct_sound_samples/cry_lairon.aif new file mode 100644 index 000000000..b487165bf Binary files /dev/null and b/sound/direct_sound_samples/cry_lairon.aif differ diff --git a/sound/direct_sound_samples/cry_lanturn.aif b/sound/direct_sound_samples/cry_lanturn.aif new file mode 100644 index 000000000..dfeac1fbd Binary files /dev/null and b/sound/direct_sound_samples/cry_lanturn.aif differ diff --git a/sound/direct_sound_samples/cry_lapras.aif b/sound/direct_sound_samples/cry_lapras.aif new file mode 100644 index 000000000..61de32408 Binary files /dev/null and b/sound/direct_sound_samples/cry_lapras.aif differ diff --git a/sound/direct_sound_samples/cry_larvitar.aif b/sound/direct_sound_samples/cry_larvitar.aif new file mode 100644 index 000000000..1ab0e1d5f Binary files /dev/null and b/sound/direct_sound_samples/cry_larvitar.aif differ diff --git a/sound/direct_sound_samples/cry_latias.aif b/sound/direct_sound_samples/cry_latias.aif new file mode 100644 index 000000000..46f7235f3 Binary files /dev/null and b/sound/direct_sound_samples/cry_latias.aif differ diff --git a/sound/direct_sound_samples/cry_latios.aif b/sound/direct_sound_samples/cry_latios.aif new file mode 100644 index 000000000..b8ace2a30 Binary files /dev/null and b/sound/direct_sound_samples/cry_latios.aif differ diff --git a/sound/direct_sound_samples/cry_ledian.aif b/sound/direct_sound_samples/cry_ledian.aif new file mode 100644 index 000000000..baefb5fa3 Binary files /dev/null and b/sound/direct_sound_samples/cry_ledian.aif differ diff --git a/sound/direct_sound_samples/cry_ledyba.aif b/sound/direct_sound_samples/cry_ledyba.aif new file mode 100644 index 000000000..4f26859a7 Binary files /dev/null and b/sound/direct_sound_samples/cry_ledyba.aif differ diff --git a/sound/direct_sound_samples/cry_lickitung.aif b/sound/direct_sound_samples/cry_lickitung.aif new file mode 100644 index 000000000..ef889a275 Binary files /dev/null and b/sound/direct_sound_samples/cry_lickitung.aif differ diff --git a/sound/direct_sound_samples/cry_lileep.aif b/sound/direct_sound_samples/cry_lileep.aif new file mode 100644 index 000000000..ed8258eb7 Binary files /dev/null and b/sound/direct_sound_samples/cry_lileep.aif differ diff --git a/sound/direct_sound_samples/cry_linoone.aif b/sound/direct_sound_samples/cry_linoone.aif new file mode 100644 index 000000000..4e5e7d3b5 Binary files /dev/null and b/sound/direct_sound_samples/cry_linoone.aif differ diff --git a/sound/direct_sound_samples/cry_lombre.aif b/sound/direct_sound_samples/cry_lombre.aif new file mode 100644 index 000000000..abafe4321 Binary files /dev/null and b/sound/direct_sound_samples/cry_lombre.aif differ diff --git a/sound/direct_sound_samples/cry_lotad.aif b/sound/direct_sound_samples/cry_lotad.aif new file mode 100644 index 000000000..2596f4390 Binary files /dev/null and b/sound/direct_sound_samples/cry_lotad.aif differ diff --git a/sound/direct_sound_samples/cry_loudred.aif b/sound/direct_sound_samples/cry_loudred.aif new file mode 100644 index 000000000..fed7ebec8 Binary files /dev/null and b/sound/direct_sound_samples/cry_loudred.aif differ diff --git a/sound/direct_sound_samples/cry_ludicolo.aif b/sound/direct_sound_samples/cry_ludicolo.aif new file mode 100644 index 000000000..7cf670f38 Binary files /dev/null and b/sound/direct_sound_samples/cry_ludicolo.aif differ diff --git a/sound/direct_sound_samples/cry_lugia.aif b/sound/direct_sound_samples/cry_lugia.aif new file mode 100644 index 000000000..45890a2fc Binary files /dev/null and b/sound/direct_sound_samples/cry_lugia.aif differ diff --git a/sound/direct_sound_samples/cry_lunatone.aif b/sound/direct_sound_samples/cry_lunatone.aif new file mode 100644 index 000000000..42cbc5e3c Binary files /dev/null and b/sound/direct_sound_samples/cry_lunatone.aif differ diff --git a/sound/direct_sound_samples/cry_luvdisc.aif b/sound/direct_sound_samples/cry_luvdisc.aif new file mode 100644 index 000000000..3cc0cc744 Binary files /dev/null and b/sound/direct_sound_samples/cry_luvdisc.aif differ diff --git a/sound/direct_sound_samples/cry_machamp.aif b/sound/direct_sound_samples/cry_machamp.aif new file mode 100644 index 000000000..ddeaf22c8 Binary files /dev/null and b/sound/direct_sound_samples/cry_machamp.aif differ diff --git a/sound/direct_sound_samples/cry_machoke.aif b/sound/direct_sound_samples/cry_machoke.aif new file mode 100644 index 000000000..97065ee09 Binary files /dev/null and b/sound/direct_sound_samples/cry_machoke.aif differ diff --git a/sound/direct_sound_samples/cry_machop.aif b/sound/direct_sound_samples/cry_machop.aif new file mode 100644 index 000000000..d92419e84 Binary files /dev/null and b/sound/direct_sound_samples/cry_machop.aif differ diff --git a/sound/direct_sound_samples/cry_magby.aif b/sound/direct_sound_samples/cry_magby.aif new file mode 100644 index 000000000..12f3dc889 Binary files /dev/null and b/sound/direct_sound_samples/cry_magby.aif differ diff --git a/sound/direct_sound_samples/cry_magcargo.aif b/sound/direct_sound_samples/cry_magcargo.aif new file mode 100644 index 000000000..bef0351c0 Binary files /dev/null and b/sound/direct_sound_samples/cry_magcargo.aif differ diff --git a/sound/direct_sound_samples/cry_magikarp.aif b/sound/direct_sound_samples/cry_magikarp.aif new file mode 100644 index 000000000..f4f9219c5 Binary files /dev/null and b/sound/direct_sound_samples/cry_magikarp.aif differ diff --git a/sound/direct_sound_samples/cry_magmar.aif b/sound/direct_sound_samples/cry_magmar.aif new file mode 100644 index 000000000..b79c8b9a1 Binary files /dev/null and b/sound/direct_sound_samples/cry_magmar.aif differ diff --git a/sound/direct_sound_samples/cry_magnemite.aif b/sound/direct_sound_samples/cry_magnemite.aif new file mode 100644 index 000000000..ebb9103d9 Binary files /dev/null and b/sound/direct_sound_samples/cry_magnemite.aif differ diff --git a/sound/direct_sound_samples/cry_magneton.aif b/sound/direct_sound_samples/cry_magneton.aif new file mode 100644 index 000000000..53083ac62 Binary files /dev/null and b/sound/direct_sound_samples/cry_magneton.aif differ diff --git a/sound/direct_sound_samples/cry_makuhita.aif b/sound/direct_sound_samples/cry_makuhita.aif new file mode 100644 index 000000000..38d7f4b44 Binary files /dev/null and b/sound/direct_sound_samples/cry_makuhita.aif differ diff --git a/sound/direct_sound_samples/cry_manectric.aif b/sound/direct_sound_samples/cry_manectric.aif new file mode 100644 index 000000000..18a8f4666 Binary files /dev/null and b/sound/direct_sound_samples/cry_manectric.aif differ diff --git a/sound/direct_sound_samples/cry_mankey.aif b/sound/direct_sound_samples/cry_mankey.aif new file mode 100644 index 000000000..dda929d4c Binary files /dev/null and b/sound/direct_sound_samples/cry_mankey.aif differ diff --git a/sound/direct_sound_samples/cry_mantine.aif b/sound/direct_sound_samples/cry_mantine.aif new file mode 100644 index 000000000..d1840aafa Binary files /dev/null and b/sound/direct_sound_samples/cry_mantine.aif differ diff --git a/sound/direct_sound_samples/cry_mareep.aif b/sound/direct_sound_samples/cry_mareep.aif new file mode 100644 index 000000000..2615b9def Binary files /dev/null and b/sound/direct_sound_samples/cry_mareep.aif differ diff --git a/sound/direct_sound_samples/cry_marill.aif b/sound/direct_sound_samples/cry_marill.aif new file mode 100644 index 000000000..48d936e7d Binary files /dev/null and b/sound/direct_sound_samples/cry_marill.aif differ diff --git a/sound/direct_sound_samples/cry_marowak.aif b/sound/direct_sound_samples/cry_marowak.aif new file mode 100644 index 000000000..279381bb5 Binary files /dev/null and b/sound/direct_sound_samples/cry_marowak.aif differ diff --git a/sound/direct_sound_samples/cry_marshtomp.aif b/sound/direct_sound_samples/cry_marshtomp.aif new file mode 100644 index 000000000..c0106ff6c Binary files /dev/null and b/sound/direct_sound_samples/cry_marshtomp.aif differ diff --git a/sound/direct_sound_samples/cry_masquerain.aif b/sound/direct_sound_samples/cry_masquerain.aif new file mode 100644 index 000000000..107bed2f7 Binary files /dev/null and b/sound/direct_sound_samples/cry_masquerain.aif differ diff --git a/sound/direct_sound_samples/cry_mawile.aif b/sound/direct_sound_samples/cry_mawile.aif new file mode 100644 index 000000000..81b252b57 Binary files /dev/null and b/sound/direct_sound_samples/cry_mawile.aif differ diff --git a/sound/direct_sound_samples/cry_medicham.aif b/sound/direct_sound_samples/cry_medicham.aif new file mode 100644 index 000000000..dc85dd3b5 Binary files /dev/null and b/sound/direct_sound_samples/cry_medicham.aif differ diff --git a/sound/direct_sound_samples/cry_meditite.aif b/sound/direct_sound_samples/cry_meditite.aif new file mode 100644 index 000000000..8ac680f79 Binary files /dev/null and b/sound/direct_sound_samples/cry_meditite.aif differ diff --git a/sound/direct_sound_samples/cry_meganium.aif b/sound/direct_sound_samples/cry_meganium.aif new file mode 100644 index 000000000..ea1e1aa51 Binary files /dev/null and b/sound/direct_sound_samples/cry_meganium.aif differ diff --git a/sound/direct_sound_samples/cry_meowth.aif b/sound/direct_sound_samples/cry_meowth.aif new file mode 100644 index 000000000..aaf3825d5 Binary files /dev/null and b/sound/direct_sound_samples/cry_meowth.aif differ diff --git a/sound/direct_sound_samples/cry_metagross.aif b/sound/direct_sound_samples/cry_metagross.aif new file mode 100644 index 000000000..b96e6647c Binary files /dev/null and b/sound/direct_sound_samples/cry_metagross.aif differ diff --git a/sound/direct_sound_samples/cry_metang.aif b/sound/direct_sound_samples/cry_metang.aif new file mode 100644 index 000000000..da544ce4d Binary files /dev/null and b/sound/direct_sound_samples/cry_metang.aif differ diff --git a/sound/direct_sound_samples/cry_metapod.aif b/sound/direct_sound_samples/cry_metapod.aif new file mode 100644 index 000000000..ddba3ed44 Binary files /dev/null and b/sound/direct_sound_samples/cry_metapod.aif differ diff --git a/sound/direct_sound_samples/cry_mew.aif b/sound/direct_sound_samples/cry_mew.aif new file mode 100644 index 000000000..2651b96ca Binary files /dev/null and b/sound/direct_sound_samples/cry_mew.aif differ diff --git a/sound/direct_sound_samples/cry_mewtwo.aif b/sound/direct_sound_samples/cry_mewtwo.aif new file mode 100644 index 000000000..8e1e6c7f1 Binary files /dev/null and b/sound/direct_sound_samples/cry_mewtwo.aif differ diff --git a/sound/direct_sound_samples/cry_mightyena.aif b/sound/direct_sound_samples/cry_mightyena.aif new file mode 100644 index 000000000..53a645edc Binary files /dev/null and b/sound/direct_sound_samples/cry_mightyena.aif differ diff --git a/sound/direct_sound_samples/cry_milotic.aif b/sound/direct_sound_samples/cry_milotic.aif new file mode 100644 index 000000000..93a14161b Binary files /dev/null and b/sound/direct_sound_samples/cry_milotic.aif differ diff --git a/sound/direct_sound_samples/cry_miltank.aif b/sound/direct_sound_samples/cry_miltank.aif new file mode 100644 index 000000000..ad8a41a45 Binary files /dev/null and b/sound/direct_sound_samples/cry_miltank.aif differ diff --git a/sound/direct_sound_samples/cry_minun.aif b/sound/direct_sound_samples/cry_minun.aif new file mode 100644 index 000000000..a55aa5631 Binary files /dev/null and b/sound/direct_sound_samples/cry_minun.aif differ diff --git a/sound/direct_sound_samples/cry_misdreavus.aif b/sound/direct_sound_samples/cry_misdreavus.aif new file mode 100644 index 000000000..39a09f4d0 Binary files /dev/null and b/sound/direct_sound_samples/cry_misdreavus.aif differ diff --git a/sound/direct_sound_samples/cry_moltres.aif b/sound/direct_sound_samples/cry_moltres.aif new file mode 100644 index 000000000..2e038a3d7 Binary files /dev/null and b/sound/direct_sound_samples/cry_moltres.aif differ diff --git a/sound/direct_sound_samples/cry_mr_mime.aif b/sound/direct_sound_samples/cry_mr_mime.aif new file mode 100644 index 000000000..ff870dbc4 Binary files /dev/null and b/sound/direct_sound_samples/cry_mr_mime.aif differ diff --git a/sound/direct_sound_samples/cry_mudkip.aif b/sound/direct_sound_samples/cry_mudkip.aif new file mode 100644 index 000000000..e8fa5c212 Binary files /dev/null and b/sound/direct_sound_samples/cry_mudkip.aif differ diff --git a/sound/direct_sound_samples/cry_muk.aif b/sound/direct_sound_samples/cry_muk.aif new file mode 100644 index 000000000..f61ff4075 Binary files /dev/null and b/sound/direct_sound_samples/cry_muk.aif differ diff --git a/sound/direct_sound_samples/cry_murkrow.aif b/sound/direct_sound_samples/cry_murkrow.aif new file mode 100644 index 000000000..4beddff1e Binary files /dev/null and b/sound/direct_sound_samples/cry_murkrow.aif differ diff --git a/sound/direct_sound_samples/cry_natu.aif b/sound/direct_sound_samples/cry_natu.aif new file mode 100644 index 000000000..e6e38d5cc Binary files /dev/null and b/sound/direct_sound_samples/cry_natu.aif differ diff --git a/sound/direct_sound_samples/cry_nidoking.aif b/sound/direct_sound_samples/cry_nidoking.aif new file mode 100644 index 000000000..a0c86f9ab Binary files /dev/null and b/sound/direct_sound_samples/cry_nidoking.aif differ diff --git a/sound/direct_sound_samples/cry_nidoqueen.aif b/sound/direct_sound_samples/cry_nidoqueen.aif new file mode 100644 index 000000000..6c8f5254b Binary files /dev/null and b/sound/direct_sound_samples/cry_nidoqueen.aif differ diff --git a/sound/direct_sound_samples/cry_nidoran_f.aif b/sound/direct_sound_samples/cry_nidoran_f.aif new file mode 100644 index 000000000..b7c8a5317 Binary files /dev/null and b/sound/direct_sound_samples/cry_nidoran_f.aif differ diff --git a/sound/direct_sound_samples/cry_nidoran_m.aif b/sound/direct_sound_samples/cry_nidoran_m.aif new file mode 100644 index 000000000..08fc81c8b Binary files /dev/null and b/sound/direct_sound_samples/cry_nidoran_m.aif differ diff --git a/sound/direct_sound_samples/cry_nidorina.aif b/sound/direct_sound_samples/cry_nidorina.aif new file mode 100644 index 000000000..91e293a50 Binary files /dev/null and b/sound/direct_sound_samples/cry_nidorina.aif differ diff --git a/sound/direct_sound_samples/cry_nidorino.aif b/sound/direct_sound_samples/cry_nidorino.aif new file mode 100644 index 000000000..959351363 Binary files /dev/null and b/sound/direct_sound_samples/cry_nidorino.aif differ diff --git a/sound/direct_sound_samples/cry_nincada.aif b/sound/direct_sound_samples/cry_nincada.aif new file mode 100644 index 000000000..5f96bda50 Binary files /dev/null and b/sound/direct_sound_samples/cry_nincada.aif differ diff --git a/sound/direct_sound_samples/cry_ninetales.aif b/sound/direct_sound_samples/cry_ninetales.aif new file mode 100644 index 000000000..70c8cf528 Binary files /dev/null and b/sound/direct_sound_samples/cry_ninetales.aif differ diff --git a/sound/direct_sound_samples/cry_ninjask.aif b/sound/direct_sound_samples/cry_ninjask.aif new file mode 100644 index 000000000..a6f07e8d3 Binary files /dev/null and b/sound/direct_sound_samples/cry_ninjask.aif differ diff --git a/sound/direct_sound_samples/cry_noctowl.aif b/sound/direct_sound_samples/cry_noctowl.aif new file mode 100644 index 000000000..fe2e63d45 Binary files /dev/null and b/sound/direct_sound_samples/cry_noctowl.aif differ diff --git a/sound/direct_sound_samples/cry_none.aif b/sound/direct_sound_samples/cry_none.aif new file mode 100644 index 000000000..44bb79c3c Binary files /dev/null and b/sound/direct_sound_samples/cry_none.aif differ diff --git a/sound/direct_sound_samples/cry_nosepass.aif b/sound/direct_sound_samples/cry_nosepass.aif new file mode 100644 index 000000000..be65ba082 Binary files /dev/null and b/sound/direct_sound_samples/cry_nosepass.aif differ diff --git a/sound/direct_sound_samples/cry_numel.aif b/sound/direct_sound_samples/cry_numel.aif new file mode 100644 index 000000000..55cce5f2c Binary files /dev/null and b/sound/direct_sound_samples/cry_numel.aif differ diff --git a/sound/direct_sound_samples/cry_nuzleaf.aif b/sound/direct_sound_samples/cry_nuzleaf.aif new file mode 100644 index 000000000..d668f3fd3 Binary files /dev/null and b/sound/direct_sound_samples/cry_nuzleaf.aif differ diff --git a/sound/direct_sound_samples/cry_octillery.aif b/sound/direct_sound_samples/cry_octillery.aif new file mode 100644 index 000000000..75ee28ceb Binary files /dev/null and b/sound/direct_sound_samples/cry_octillery.aif differ diff --git a/sound/direct_sound_samples/cry_oddish.aif b/sound/direct_sound_samples/cry_oddish.aif new file mode 100644 index 000000000..6909a8dad Binary files /dev/null and b/sound/direct_sound_samples/cry_oddish.aif differ diff --git a/sound/direct_sound_samples/cry_omanyte.aif b/sound/direct_sound_samples/cry_omanyte.aif new file mode 100644 index 000000000..15ec2d1ef Binary files /dev/null and b/sound/direct_sound_samples/cry_omanyte.aif differ diff --git a/sound/direct_sound_samples/cry_omastar.aif b/sound/direct_sound_samples/cry_omastar.aif new file mode 100644 index 000000000..e67d5d7fc Binary files /dev/null and b/sound/direct_sound_samples/cry_omastar.aif differ diff --git a/sound/direct_sound_samples/cry_onix.aif b/sound/direct_sound_samples/cry_onix.aif new file mode 100644 index 000000000..aa8a16505 Binary files /dev/null and b/sound/direct_sound_samples/cry_onix.aif differ diff --git a/sound/direct_sound_samples/cry_paras.aif b/sound/direct_sound_samples/cry_paras.aif new file mode 100644 index 000000000..f9d69c21c Binary files /dev/null and b/sound/direct_sound_samples/cry_paras.aif differ diff --git a/sound/direct_sound_samples/cry_parasect.aif b/sound/direct_sound_samples/cry_parasect.aif new file mode 100644 index 000000000..d6d9433e9 Binary files /dev/null and b/sound/direct_sound_samples/cry_parasect.aif differ diff --git a/sound/direct_sound_samples/cry_pelipper.aif b/sound/direct_sound_samples/cry_pelipper.aif new file mode 100644 index 000000000..26718f848 Binary files /dev/null and b/sound/direct_sound_samples/cry_pelipper.aif differ diff --git a/sound/direct_sound_samples/cry_persian.aif b/sound/direct_sound_samples/cry_persian.aif new file mode 100644 index 000000000..40b3a2c56 Binary files /dev/null and b/sound/direct_sound_samples/cry_persian.aif differ diff --git a/sound/direct_sound_samples/cry_phanpy.aif b/sound/direct_sound_samples/cry_phanpy.aif new file mode 100644 index 000000000..2fcab3c82 Binary files /dev/null and b/sound/direct_sound_samples/cry_phanpy.aif differ diff --git a/sound/direct_sound_samples/cry_pichu.aif b/sound/direct_sound_samples/cry_pichu.aif new file mode 100644 index 000000000..de47bbab8 Binary files /dev/null and b/sound/direct_sound_samples/cry_pichu.aif differ diff --git a/sound/direct_sound_samples/cry_pidgeot.aif b/sound/direct_sound_samples/cry_pidgeot.aif new file mode 100644 index 000000000..af400cdc6 Binary files /dev/null and b/sound/direct_sound_samples/cry_pidgeot.aif differ diff --git a/sound/direct_sound_samples/cry_pidgeotto.aif b/sound/direct_sound_samples/cry_pidgeotto.aif new file mode 100644 index 000000000..7c71c8f3e Binary files /dev/null and b/sound/direct_sound_samples/cry_pidgeotto.aif differ diff --git a/sound/direct_sound_samples/cry_pidgey.aif b/sound/direct_sound_samples/cry_pidgey.aif new file mode 100644 index 000000000..b9c3a5d2a Binary files /dev/null and b/sound/direct_sound_samples/cry_pidgey.aif differ diff --git a/sound/direct_sound_samples/cry_pikachu.aif b/sound/direct_sound_samples/cry_pikachu.aif new file mode 100644 index 000000000..690bf5e1d Binary files /dev/null and b/sound/direct_sound_samples/cry_pikachu.aif differ diff --git a/sound/direct_sound_samples/cry_piloswine.aif b/sound/direct_sound_samples/cry_piloswine.aif new file mode 100644 index 000000000..b1f34d3b5 Binary files /dev/null and b/sound/direct_sound_samples/cry_piloswine.aif differ diff --git a/sound/direct_sound_samples/cry_pineco.aif b/sound/direct_sound_samples/cry_pineco.aif new file mode 100644 index 000000000..80292bda0 Binary files /dev/null and b/sound/direct_sound_samples/cry_pineco.aif differ diff --git a/sound/direct_sound_samples/cry_pinsir.aif b/sound/direct_sound_samples/cry_pinsir.aif new file mode 100644 index 000000000..cf27a11de Binary files /dev/null and b/sound/direct_sound_samples/cry_pinsir.aif differ diff --git a/sound/direct_sound_samples/cry_plusle.aif b/sound/direct_sound_samples/cry_plusle.aif new file mode 100644 index 000000000..d68984263 Binary files /dev/null and b/sound/direct_sound_samples/cry_plusle.aif differ diff --git a/sound/direct_sound_samples/cry_politoed.aif b/sound/direct_sound_samples/cry_politoed.aif new file mode 100644 index 000000000..38b1883b4 Binary files /dev/null and b/sound/direct_sound_samples/cry_politoed.aif differ diff --git a/sound/direct_sound_samples/cry_poliwag.aif b/sound/direct_sound_samples/cry_poliwag.aif new file mode 100644 index 000000000..8467f0540 Binary files /dev/null and b/sound/direct_sound_samples/cry_poliwag.aif differ diff --git a/sound/direct_sound_samples/cry_poliwhirl.aif b/sound/direct_sound_samples/cry_poliwhirl.aif new file mode 100644 index 000000000..f0851c693 Binary files /dev/null and b/sound/direct_sound_samples/cry_poliwhirl.aif differ diff --git a/sound/direct_sound_samples/cry_poliwrath.aif b/sound/direct_sound_samples/cry_poliwrath.aif new file mode 100644 index 000000000..8d19f1d86 Binary files /dev/null and b/sound/direct_sound_samples/cry_poliwrath.aif differ diff --git a/sound/direct_sound_samples/cry_ponyta.aif b/sound/direct_sound_samples/cry_ponyta.aif new file mode 100644 index 000000000..46feb123d Binary files /dev/null and b/sound/direct_sound_samples/cry_ponyta.aif differ diff --git a/sound/direct_sound_samples/cry_poochyena.aif b/sound/direct_sound_samples/cry_poochyena.aif new file mode 100644 index 000000000..3b464ce13 Binary files /dev/null and b/sound/direct_sound_samples/cry_poochyena.aif differ diff --git a/sound/direct_sound_samples/cry_porygon.aif b/sound/direct_sound_samples/cry_porygon.aif new file mode 100644 index 000000000..ced70b379 Binary files /dev/null and b/sound/direct_sound_samples/cry_porygon.aif differ diff --git a/sound/direct_sound_samples/cry_porygon2.aif b/sound/direct_sound_samples/cry_porygon2.aif new file mode 100644 index 000000000..c08a3caaf Binary files /dev/null and b/sound/direct_sound_samples/cry_porygon2.aif differ diff --git a/sound/direct_sound_samples/cry_primeape.aif b/sound/direct_sound_samples/cry_primeape.aif new file mode 100644 index 000000000..a868b3120 Binary files /dev/null and b/sound/direct_sound_samples/cry_primeape.aif differ diff --git a/sound/direct_sound_samples/cry_psyduck.aif b/sound/direct_sound_samples/cry_psyduck.aif new file mode 100644 index 000000000..d2d0612f2 Binary files /dev/null and b/sound/direct_sound_samples/cry_psyduck.aif differ diff --git a/sound/direct_sound_samples/cry_pupitar.aif b/sound/direct_sound_samples/cry_pupitar.aif new file mode 100644 index 000000000..7386636ce Binary files /dev/null and b/sound/direct_sound_samples/cry_pupitar.aif differ diff --git a/sound/direct_sound_samples/cry_quagsire.aif b/sound/direct_sound_samples/cry_quagsire.aif new file mode 100644 index 000000000..1953d0e42 Binary files /dev/null and b/sound/direct_sound_samples/cry_quagsire.aif differ diff --git a/sound/direct_sound_samples/cry_quilava.aif b/sound/direct_sound_samples/cry_quilava.aif new file mode 100644 index 000000000..efe873229 Binary files /dev/null and b/sound/direct_sound_samples/cry_quilava.aif differ diff --git a/sound/direct_sound_samples/cry_qwilfish.aif b/sound/direct_sound_samples/cry_qwilfish.aif new file mode 100644 index 000000000..268c5c89d Binary files /dev/null and b/sound/direct_sound_samples/cry_qwilfish.aif differ diff --git a/sound/direct_sound_samples/cry_raichu.aif b/sound/direct_sound_samples/cry_raichu.aif new file mode 100644 index 000000000..e59ffbad4 Binary files /dev/null and b/sound/direct_sound_samples/cry_raichu.aif differ diff --git a/sound/direct_sound_samples/cry_raikou.aif b/sound/direct_sound_samples/cry_raikou.aif new file mode 100644 index 000000000..a57a2365c Binary files /dev/null and b/sound/direct_sound_samples/cry_raikou.aif differ diff --git a/sound/direct_sound_samples/cry_ralts.aif b/sound/direct_sound_samples/cry_ralts.aif new file mode 100644 index 000000000..0baef5760 Binary files /dev/null and b/sound/direct_sound_samples/cry_ralts.aif differ diff --git a/sound/direct_sound_samples/cry_rapidash.aif b/sound/direct_sound_samples/cry_rapidash.aif new file mode 100644 index 000000000..920f510e4 Binary files /dev/null and b/sound/direct_sound_samples/cry_rapidash.aif differ diff --git a/sound/direct_sound_samples/cry_raticate.aif b/sound/direct_sound_samples/cry_raticate.aif new file mode 100644 index 000000000..01601cab5 Binary files /dev/null and b/sound/direct_sound_samples/cry_raticate.aif differ diff --git a/sound/direct_sound_samples/cry_rattata.aif b/sound/direct_sound_samples/cry_rattata.aif new file mode 100644 index 000000000..cb0e1f422 Binary files /dev/null and b/sound/direct_sound_samples/cry_rattata.aif differ diff --git a/sound/direct_sound_samples/cry_rayquaza.aif b/sound/direct_sound_samples/cry_rayquaza.aif new file mode 100644 index 000000000..6115e11d8 Binary files /dev/null and b/sound/direct_sound_samples/cry_rayquaza.aif differ diff --git a/sound/direct_sound_samples/cry_regice.aif b/sound/direct_sound_samples/cry_regice.aif new file mode 100644 index 000000000..6fa23dd73 Binary files /dev/null and b/sound/direct_sound_samples/cry_regice.aif differ diff --git a/sound/direct_sound_samples/cry_regirock.aif b/sound/direct_sound_samples/cry_regirock.aif new file mode 100644 index 000000000..ab2a47eb8 Binary files /dev/null and b/sound/direct_sound_samples/cry_regirock.aif differ diff --git a/sound/direct_sound_samples/cry_registeel.aif b/sound/direct_sound_samples/cry_registeel.aif new file mode 100644 index 000000000..f5374e5f0 Binary files /dev/null and b/sound/direct_sound_samples/cry_registeel.aif differ diff --git a/sound/direct_sound_samples/cry_relicanth.aif b/sound/direct_sound_samples/cry_relicanth.aif new file mode 100644 index 000000000..60af9cf4e Binary files /dev/null and b/sound/direct_sound_samples/cry_relicanth.aif differ diff --git a/sound/direct_sound_samples/cry_remoraid.aif b/sound/direct_sound_samples/cry_remoraid.aif new file mode 100644 index 000000000..16d3f1d65 Binary files /dev/null and b/sound/direct_sound_samples/cry_remoraid.aif differ diff --git a/sound/direct_sound_samples/cry_rhydon.aif b/sound/direct_sound_samples/cry_rhydon.aif new file mode 100644 index 000000000..cfa709ee9 Binary files /dev/null and b/sound/direct_sound_samples/cry_rhydon.aif differ diff --git a/sound/direct_sound_samples/cry_rhyhorn.aif b/sound/direct_sound_samples/cry_rhyhorn.aif new file mode 100644 index 000000000..47f344ba2 Binary files /dev/null and b/sound/direct_sound_samples/cry_rhyhorn.aif differ diff --git a/sound/direct_sound_samples/cry_roselia.aif b/sound/direct_sound_samples/cry_roselia.aif new file mode 100644 index 000000000..50b60b77b Binary files /dev/null and b/sound/direct_sound_samples/cry_roselia.aif differ diff --git a/sound/direct_sound_samples/cry_sableye.aif b/sound/direct_sound_samples/cry_sableye.aif new file mode 100644 index 000000000..1b3a9be30 Binary files /dev/null and b/sound/direct_sound_samples/cry_sableye.aif differ diff --git a/sound/direct_sound_samples/cry_salamence.aif b/sound/direct_sound_samples/cry_salamence.aif new file mode 100644 index 000000000..d2957809c Binary files /dev/null and b/sound/direct_sound_samples/cry_salamence.aif differ diff --git a/sound/direct_sound_samples/cry_sandshrew.aif b/sound/direct_sound_samples/cry_sandshrew.aif new file mode 100644 index 000000000..6879be11d Binary files /dev/null and b/sound/direct_sound_samples/cry_sandshrew.aif differ diff --git a/sound/direct_sound_samples/cry_sandslash.aif b/sound/direct_sound_samples/cry_sandslash.aif new file mode 100644 index 000000000..ee4a458ed Binary files /dev/null and b/sound/direct_sound_samples/cry_sandslash.aif differ diff --git a/sound/direct_sound_samples/cry_sceptile.aif b/sound/direct_sound_samples/cry_sceptile.aif new file mode 100644 index 000000000..7252cb85f Binary files /dev/null and b/sound/direct_sound_samples/cry_sceptile.aif differ diff --git a/sound/direct_sound_samples/cry_scizor.aif b/sound/direct_sound_samples/cry_scizor.aif new file mode 100644 index 000000000..f1f7832ce Binary files /dev/null and b/sound/direct_sound_samples/cry_scizor.aif differ diff --git a/sound/direct_sound_samples/cry_scyther.aif b/sound/direct_sound_samples/cry_scyther.aif new file mode 100644 index 000000000..2b8cbc104 Binary files /dev/null and b/sound/direct_sound_samples/cry_scyther.aif differ diff --git a/sound/direct_sound_samples/cry_seadra.aif b/sound/direct_sound_samples/cry_seadra.aif new file mode 100644 index 000000000..2f60cce4a Binary files /dev/null and b/sound/direct_sound_samples/cry_seadra.aif differ diff --git a/sound/direct_sound_samples/cry_seaking.aif b/sound/direct_sound_samples/cry_seaking.aif new file mode 100644 index 000000000..e4fc7e70d Binary files /dev/null and b/sound/direct_sound_samples/cry_seaking.aif differ diff --git a/sound/direct_sound_samples/cry_sealeo.aif b/sound/direct_sound_samples/cry_sealeo.aif new file mode 100644 index 000000000..d9ea50026 Binary files /dev/null and b/sound/direct_sound_samples/cry_sealeo.aif differ diff --git a/sound/direct_sound_samples/cry_seedot.aif b/sound/direct_sound_samples/cry_seedot.aif new file mode 100644 index 000000000..c37b769f8 Binary files /dev/null and b/sound/direct_sound_samples/cry_seedot.aif differ diff --git a/sound/direct_sound_samples/cry_seel.aif b/sound/direct_sound_samples/cry_seel.aif new file mode 100644 index 000000000..84c4a0a94 Binary files /dev/null and b/sound/direct_sound_samples/cry_seel.aif differ diff --git a/sound/direct_sound_samples/cry_sentret.aif b/sound/direct_sound_samples/cry_sentret.aif new file mode 100644 index 000000000..4aed7cd70 Binary files /dev/null and b/sound/direct_sound_samples/cry_sentret.aif differ diff --git a/sound/direct_sound_samples/cry_seviper.aif b/sound/direct_sound_samples/cry_seviper.aif new file mode 100644 index 000000000..6a15dd6e2 Binary files /dev/null and b/sound/direct_sound_samples/cry_seviper.aif differ diff --git a/sound/direct_sound_samples/cry_sharpedo.aif b/sound/direct_sound_samples/cry_sharpedo.aif new file mode 100644 index 000000000..1b02b56ce Binary files /dev/null and b/sound/direct_sound_samples/cry_sharpedo.aif differ diff --git a/sound/direct_sound_samples/cry_shedinja.aif b/sound/direct_sound_samples/cry_shedinja.aif new file mode 100644 index 000000000..6d1d565f3 Binary files /dev/null and b/sound/direct_sound_samples/cry_shedinja.aif differ diff --git a/sound/direct_sound_samples/cry_shelgon.aif b/sound/direct_sound_samples/cry_shelgon.aif new file mode 100644 index 000000000..24f234ffe Binary files /dev/null and b/sound/direct_sound_samples/cry_shelgon.aif differ diff --git a/sound/direct_sound_samples/cry_shellder.aif b/sound/direct_sound_samples/cry_shellder.aif new file mode 100644 index 000000000..b2ea85228 Binary files /dev/null and b/sound/direct_sound_samples/cry_shellder.aif differ diff --git a/sound/direct_sound_samples/cry_shiftry.aif b/sound/direct_sound_samples/cry_shiftry.aif new file mode 100644 index 000000000..c91ece114 Binary files /dev/null and b/sound/direct_sound_samples/cry_shiftry.aif differ diff --git a/sound/direct_sound_samples/cry_shroomish.aif b/sound/direct_sound_samples/cry_shroomish.aif new file mode 100644 index 000000000..9e944ca20 Binary files /dev/null and b/sound/direct_sound_samples/cry_shroomish.aif differ diff --git a/sound/direct_sound_samples/cry_shuckle.aif b/sound/direct_sound_samples/cry_shuckle.aif new file mode 100644 index 000000000..d835d2de6 Binary files /dev/null and b/sound/direct_sound_samples/cry_shuckle.aif differ diff --git a/sound/direct_sound_samples/cry_shuppet.aif b/sound/direct_sound_samples/cry_shuppet.aif new file mode 100644 index 000000000..1cd9a2f14 Binary files /dev/null and b/sound/direct_sound_samples/cry_shuppet.aif differ diff --git a/sound/direct_sound_samples/cry_silcoon.aif b/sound/direct_sound_samples/cry_silcoon.aif new file mode 100644 index 000000000..ff48950ad Binary files /dev/null and b/sound/direct_sound_samples/cry_silcoon.aif differ diff --git a/sound/direct_sound_samples/cry_skarmory.aif b/sound/direct_sound_samples/cry_skarmory.aif new file mode 100644 index 000000000..88d3985a3 Binary files /dev/null and b/sound/direct_sound_samples/cry_skarmory.aif differ diff --git a/sound/direct_sound_samples/cry_skiploom.aif b/sound/direct_sound_samples/cry_skiploom.aif new file mode 100644 index 000000000..201744d12 Binary files /dev/null and b/sound/direct_sound_samples/cry_skiploom.aif differ diff --git a/sound/direct_sound_samples/cry_skitty.aif b/sound/direct_sound_samples/cry_skitty.aif new file mode 100644 index 000000000..7dc4578f4 Binary files /dev/null and b/sound/direct_sound_samples/cry_skitty.aif differ diff --git a/sound/direct_sound_samples/cry_slaking.aif b/sound/direct_sound_samples/cry_slaking.aif new file mode 100644 index 000000000..b6a4160f3 Binary files /dev/null and b/sound/direct_sound_samples/cry_slaking.aif differ diff --git a/sound/direct_sound_samples/cry_slakoth.aif b/sound/direct_sound_samples/cry_slakoth.aif new file mode 100644 index 000000000..0e4bbc3c3 Binary files /dev/null and b/sound/direct_sound_samples/cry_slakoth.aif differ diff --git a/sound/direct_sound_samples/cry_slowbro.aif b/sound/direct_sound_samples/cry_slowbro.aif new file mode 100644 index 000000000..f74b753d2 Binary files /dev/null and b/sound/direct_sound_samples/cry_slowbro.aif differ diff --git a/sound/direct_sound_samples/cry_slowking.aif b/sound/direct_sound_samples/cry_slowking.aif new file mode 100644 index 000000000..245a42023 Binary files /dev/null and b/sound/direct_sound_samples/cry_slowking.aif differ diff --git a/sound/direct_sound_samples/cry_slowpoke.aif b/sound/direct_sound_samples/cry_slowpoke.aif new file mode 100644 index 000000000..82b05a9a7 Binary files /dev/null and b/sound/direct_sound_samples/cry_slowpoke.aif differ diff --git a/sound/direct_sound_samples/cry_slugma.aif b/sound/direct_sound_samples/cry_slugma.aif new file mode 100644 index 000000000..fed42817c Binary files /dev/null and b/sound/direct_sound_samples/cry_slugma.aif differ diff --git a/sound/direct_sound_samples/cry_smeargle.aif b/sound/direct_sound_samples/cry_smeargle.aif new file mode 100644 index 000000000..00dbedead Binary files /dev/null and b/sound/direct_sound_samples/cry_smeargle.aif differ diff --git a/sound/direct_sound_samples/cry_smoochum.aif b/sound/direct_sound_samples/cry_smoochum.aif new file mode 100644 index 000000000..4005b4ad4 Binary files /dev/null and b/sound/direct_sound_samples/cry_smoochum.aif differ diff --git a/sound/direct_sound_samples/cry_sneasel.aif b/sound/direct_sound_samples/cry_sneasel.aif new file mode 100644 index 000000000..54242a23f Binary files /dev/null and b/sound/direct_sound_samples/cry_sneasel.aif differ diff --git a/sound/direct_sound_samples/cry_snorlax.aif b/sound/direct_sound_samples/cry_snorlax.aif new file mode 100644 index 000000000..f95128e3a Binary files /dev/null and b/sound/direct_sound_samples/cry_snorlax.aif differ diff --git a/sound/direct_sound_samples/cry_snorunt.aif b/sound/direct_sound_samples/cry_snorunt.aif new file mode 100644 index 000000000..53b05b229 Binary files /dev/null and b/sound/direct_sound_samples/cry_snorunt.aif differ diff --git a/sound/direct_sound_samples/cry_snubbull.aif b/sound/direct_sound_samples/cry_snubbull.aif new file mode 100644 index 000000000..bbba023fd Binary files /dev/null and b/sound/direct_sound_samples/cry_snubbull.aif differ diff --git a/sound/direct_sound_samples/cry_solrock.aif b/sound/direct_sound_samples/cry_solrock.aif new file mode 100644 index 000000000..64c71f289 Binary files /dev/null and b/sound/direct_sound_samples/cry_solrock.aif differ diff --git a/sound/direct_sound_samples/cry_spearow.aif b/sound/direct_sound_samples/cry_spearow.aif new file mode 100644 index 000000000..7ce86ae29 Binary files /dev/null and b/sound/direct_sound_samples/cry_spearow.aif differ diff --git a/sound/direct_sound_samples/cry_spheal.aif b/sound/direct_sound_samples/cry_spheal.aif new file mode 100644 index 000000000..fb6470210 Binary files /dev/null and b/sound/direct_sound_samples/cry_spheal.aif differ diff --git a/sound/direct_sound_samples/cry_spinarak.aif b/sound/direct_sound_samples/cry_spinarak.aif new file mode 100644 index 000000000..3c4c1eff1 Binary files /dev/null and b/sound/direct_sound_samples/cry_spinarak.aif differ diff --git a/sound/direct_sound_samples/cry_spinda.aif b/sound/direct_sound_samples/cry_spinda.aif new file mode 100644 index 000000000..0217573c7 Binary files /dev/null and b/sound/direct_sound_samples/cry_spinda.aif differ diff --git a/sound/direct_sound_samples/cry_spoink.aif b/sound/direct_sound_samples/cry_spoink.aif new file mode 100644 index 000000000..6cc9bf546 Binary files /dev/null and b/sound/direct_sound_samples/cry_spoink.aif differ diff --git a/sound/direct_sound_samples/cry_squirtle.aif b/sound/direct_sound_samples/cry_squirtle.aif new file mode 100644 index 000000000..43a98a53d Binary files /dev/null and b/sound/direct_sound_samples/cry_squirtle.aif differ diff --git a/sound/direct_sound_samples/cry_stantler.aif b/sound/direct_sound_samples/cry_stantler.aif new file mode 100644 index 000000000..36ba54658 Binary files /dev/null and b/sound/direct_sound_samples/cry_stantler.aif differ diff --git a/sound/direct_sound_samples/cry_starmie.aif b/sound/direct_sound_samples/cry_starmie.aif new file mode 100644 index 000000000..7452a78f9 Binary files /dev/null and b/sound/direct_sound_samples/cry_starmie.aif differ diff --git a/sound/direct_sound_samples/cry_staryu.aif b/sound/direct_sound_samples/cry_staryu.aif new file mode 100644 index 000000000..6ab5584bf Binary files /dev/null and b/sound/direct_sound_samples/cry_staryu.aif differ diff --git a/sound/direct_sound_samples/cry_steelix.aif b/sound/direct_sound_samples/cry_steelix.aif new file mode 100644 index 000000000..aa05e2d4c Binary files /dev/null and b/sound/direct_sound_samples/cry_steelix.aif differ diff --git a/sound/direct_sound_samples/cry_sudowoodo.aif b/sound/direct_sound_samples/cry_sudowoodo.aif new file mode 100644 index 000000000..1af7e18eb Binary files /dev/null and b/sound/direct_sound_samples/cry_sudowoodo.aif differ diff --git a/sound/direct_sound_samples/cry_suicune.aif b/sound/direct_sound_samples/cry_suicune.aif new file mode 100644 index 000000000..697732d68 Binary files /dev/null and b/sound/direct_sound_samples/cry_suicune.aif differ diff --git a/sound/direct_sound_samples/cry_sunflora.aif b/sound/direct_sound_samples/cry_sunflora.aif new file mode 100644 index 000000000..126931adc Binary files /dev/null and b/sound/direct_sound_samples/cry_sunflora.aif differ diff --git a/sound/direct_sound_samples/cry_sunkern.aif b/sound/direct_sound_samples/cry_sunkern.aif new file mode 100644 index 000000000..bede3bf95 Binary files /dev/null and b/sound/direct_sound_samples/cry_sunkern.aif differ diff --git a/sound/direct_sound_samples/cry_surskit.aif b/sound/direct_sound_samples/cry_surskit.aif new file mode 100644 index 000000000..438b5b67a Binary files /dev/null and b/sound/direct_sound_samples/cry_surskit.aif differ diff --git a/sound/direct_sound_samples/cry_swablu.aif b/sound/direct_sound_samples/cry_swablu.aif new file mode 100644 index 000000000..066095f55 Binary files /dev/null and b/sound/direct_sound_samples/cry_swablu.aif differ diff --git a/sound/direct_sound_samples/cry_swalot.aif b/sound/direct_sound_samples/cry_swalot.aif new file mode 100644 index 000000000..518a9bf5a Binary files /dev/null and b/sound/direct_sound_samples/cry_swalot.aif differ diff --git a/sound/direct_sound_samples/cry_swampert.aif b/sound/direct_sound_samples/cry_swampert.aif new file mode 100644 index 000000000..56bd26405 Binary files /dev/null and b/sound/direct_sound_samples/cry_swampert.aif differ diff --git a/sound/direct_sound_samples/cry_swellow.aif b/sound/direct_sound_samples/cry_swellow.aif new file mode 100644 index 000000000..2b94eb432 Binary files /dev/null and b/sound/direct_sound_samples/cry_swellow.aif differ diff --git a/sound/direct_sound_samples/cry_swinub.aif b/sound/direct_sound_samples/cry_swinub.aif new file mode 100644 index 000000000..dc68d62d8 Binary files /dev/null and b/sound/direct_sound_samples/cry_swinub.aif differ diff --git a/sound/direct_sound_samples/cry_taillow.aif b/sound/direct_sound_samples/cry_taillow.aif new file mode 100644 index 000000000..8322a3224 Binary files /dev/null and b/sound/direct_sound_samples/cry_taillow.aif differ diff --git a/sound/direct_sound_samples/cry_tangela.aif b/sound/direct_sound_samples/cry_tangela.aif new file mode 100644 index 000000000..c900b426d Binary files /dev/null and b/sound/direct_sound_samples/cry_tangela.aif differ diff --git a/sound/direct_sound_samples/cry_tauros.aif b/sound/direct_sound_samples/cry_tauros.aif new file mode 100644 index 000000000..84fa9b317 Binary files /dev/null and b/sound/direct_sound_samples/cry_tauros.aif differ diff --git a/sound/direct_sound_samples/cry_teddiursa.aif b/sound/direct_sound_samples/cry_teddiursa.aif new file mode 100644 index 000000000..ba5cb5bc3 Binary files /dev/null and b/sound/direct_sound_samples/cry_teddiursa.aif differ diff --git a/sound/direct_sound_samples/cry_tentacool.aif b/sound/direct_sound_samples/cry_tentacool.aif new file mode 100644 index 000000000..332bec4b2 Binary files /dev/null and b/sound/direct_sound_samples/cry_tentacool.aif differ diff --git a/sound/direct_sound_samples/cry_tentacruel.aif b/sound/direct_sound_samples/cry_tentacruel.aif new file mode 100644 index 000000000..e8ec1b14c Binary files /dev/null and b/sound/direct_sound_samples/cry_tentacruel.aif differ diff --git a/sound/direct_sound_samples/cry_togepi.aif b/sound/direct_sound_samples/cry_togepi.aif new file mode 100644 index 000000000..87ef6ef2d Binary files /dev/null and b/sound/direct_sound_samples/cry_togepi.aif differ diff --git a/sound/direct_sound_samples/cry_togetic.aif b/sound/direct_sound_samples/cry_togetic.aif new file mode 100644 index 000000000..8aa18ac41 Binary files /dev/null and b/sound/direct_sound_samples/cry_togetic.aif differ diff --git a/sound/direct_sound_samples/cry_torchic.aif b/sound/direct_sound_samples/cry_torchic.aif new file mode 100644 index 000000000..185a79499 Binary files /dev/null and b/sound/direct_sound_samples/cry_torchic.aif differ diff --git a/sound/direct_sound_samples/cry_torkoal.aif b/sound/direct_sound_samples/cry_torkoal.aif new file mode 100644 index 000000000..9e56d3810 Binary files /dev/null and b/sound/direct_sound_samples/cry_torkoal.aif differ diff --git a/sound/direct_sound_samples/cry_totodile.aif b/sound/direct_sound_samples/cry_totodile.aif new file mode 100644 index 000000000..dbf2179a7 Binary files /dev/null and b/sound/direct_sound_samples/cry_totodile.aif differ diff --git a/sound/direct_sound_samples/cry_trapinch.aif b/sound/direct_sound_samples/cry_trapinch.aif new file mode 100644 index 000000000..01664b72e Binary files /dev/null and b/sound/direct_sound_samples/cry_trapinch.aif differ diff --git a/sound/direct_sound_samples/cry_treecko.aif b/sound/direct_sound_samples/cry_treecko.aif new file mode 100644 index 000000000..a7416e8da Binary files /dev/null and b/sound/direct_sound_samples/cry_treecko.aif differ diff --git a/sound/direct_sound_samples/cry_tropius.aif b/sound/direct_sound_samples/cry_tropius.aif new file mode 100644 index 000000000..bbb52787b Binary files /dev/null and b/sound/direct_sound_samples/cry_tropius.aif differ diff --git a/sound/direct_sound_samples/cry_typhlosion.aif b/sound/direct_sound_samples/cry_typhlosion.aif new file mode 100644 index 000000000..f0238d066 Binary files /dev/null and b/sound/direct_sound_samples/cry_typhlosion.aif differ diff --git a/sound/direct_sound_samples/cry_tyranitar.aif b/sound/direct_sound_samples/cry_tyranitar.aif new file mode 100644 index 000000000..557f61769 Binary files /dev/null and b/sound/direct_sound_samples/cry_tyranitar.aif differ diff --git a/sound/direct_sound_samples/cry_tyrogue.aif b/sound/direct_sound_samples/cry_tyrogue.aif new file mode 100644 index 000000000..e5065f58b Binary files /dev/null and b/sound/direct_sound_samples/cry_tyrogue.aif differ diff --git a/sound/direct_sound_samples/cry_umbreon.aif b/sound/direct_sound_samples/cry_umbreon.aif new file mode 100644 index 000000000..38129b1a7 Binary files /dev/null and b/sound/direct_sound_samples/cry_umbreon.aif differ diff --git a/sound/direct_sound_samples/cry_unown.aif b/sound/direct_sound_samples/cry_unown.aif new file mode 100644 index 000000000..8339ccb6b Binary files /dev/null and b/sound/direct_sound_samples/cry_unown.aif differ diff --git a/sound/direct_sound_samples/cry_unused_265.aif b/sound/direct_sound_samples/cry_unused_265.aif new file mode 100644 index 000000000..7f5965f06 Binary files /dev/null and b/sound/direct_sound_samples/cry_unused_265.aif differ diff --git a/sound/direct_sound_samples/cry_unused_268.aif b/sound/direct_sound_samples/cry_unused_268.aif new file mode 100644 index 000000000..5cae364c3 Binary files /dev/null and b/sound/direct_sound_samples/cry_unused_268.aif differ diff --git a/sound/direct_sound_samples/cry_ursaring.aif b/sound/direct_sound_samples/cry_ursaring.aif new file mode 100644 index 000000000..fcc748bd1 Binary files /dev/null and b/sound/direct_sound_samples/cry_ursaring.aif differ diff --git a/sound/direct_sound_samples/cry_vaporeon.aif b/sound/direct_sound_samples/cry_vaporeon.aif new file mode 100644 index 000000000..4967cfdeb Binary files /dev/null and b/sound/direct_sound_samples/cry_vaporeon.aif differ diff --git a/sound/direct_sound_samples/cry_venomoth.aif b/sound/direct_sound_samples/cry_venomoth.aif new file mode 100644 index 000000000..bc291ec33 Binary files /dev/null and b/sound/direct_sound_samples/cry_venomoth.aif differ diff --git a/sound/direct_sound_samples/cry_venonat.aif b/sound/direct_sound_samples/cry_venonat.aif new file mode 100644 index 000000000..e89d87fa8 Binary files /dev/null and b/sound/direct_sound_samples/cry_venonat.aif differ diff --git a/sound/direct_sound_samples/cry_venusaur.aif b/sound/direct_sound_samples/cry_venusaur.aif new file mode 100644 index 000000000..8a1f69e6e Binary files /dev/null and b/sound/direct_sound_samples/cry_venusaur.aif differ diff --git a/sound/direct_sound_samples/cry_vibrava.aif b/sound/direct_sound_samples/cry_vibrava.aif new file mode 100644 index 000000000..3e3180219 Binary files /dev/null and b/sound/direct_sound_samples/cry_vibrava.aif differ diff --git a/sound/direct_sound_samples/cry_victreebel.aif b/sound/direct_sound_samples/cry_victreebel.aif new file mode 100644 index 000000000..d6e6a4fe9 Binary files /dev/null and b/sound/direct_sound_samples/cry_victreebel.aif differ diff --git a/sound/direct_sound_samples/cry_vigoroth.aif b/sound/direct_sound_samples/cry_vigoroth.aif new file mode 100644 index 000000000..fc414f33d Binary files /dev/null and b/sound/direct_sound_samples/cry_vigoroth.aif differ diff --git a/sound/direct_sound_samples/cry_vileplume.aif b/sound/direct_sound_samples/cry_vileplume.aif new file mode 100644 index 000000000..723eec697 Binary files /dev/null and b/sound/direct_sound_samples/cry_vileplume.aif differ diff --git a/sound/direct_sound_samples/cry_volbeat.aif b/sound/direct_sound_samples/cry_volbeat.aif new file mode 100644 index 000000000..6f765081e Binary files /dev/null and b/sound/direct_sound_samples/cry_volbeat.aif differ diff --git a/sound/direct_sound_samples/cry_voltorb.aif b/sound/direct_sound_samples/cry_voltorb.aif new file mode 100644 index 000000000..96e3bff31 Binary files /dev/null and b/sound/direct_sound_samples/cry_voltorb.aif differ diff --git a/sound/direct_sound_samples/cry_vulpix.aif b/sound/direct_sound_samples/cry_vulpix.aif new file mode 100644 index 000000000..20da23fb4 Binary files /dev/null and b/sound/direct_sound_samples/cry_vulpix.aif differ diff --git a/sound/direct_sound_samples/cry_wailmer.aif b/sound/direct_sound_samples/cry_wailmer.aif new file mode 100644 index 000000000..e8de91333 Binary files /dev/null and b/sound/direct_sound_samples/cry_wailmer.aif differ diff --git a/sound/direct_sound_samples/cry_wailord.aif b/sound/direct_sound_samples/cry_wailord.aif new file mode 100644 index 000000000..2c0468010 Binary files /dev/null and b/sound/direct_sound_samples/cry_wailord.aif differ diff --git a/sound/direct_sound_samples/cry_walrein.aif b/sound/direct_sound_samples/cry_walrein.aif new file mode 100644 index 000000000..24c00a596 Binary files /dev/null and b/sound/direct_sound_samples/cry_walrein.aif differ diff --git a/sound/direct_sound_samples/cry_wartortle.aif b/sound/direct_sound_samples/cry_wartortle.aif new file mode 100644 index 000000000..5dab7fd93 Binary files /dev/null and b/sound/direct_sound_samples/cry_wartortle.aif differ diff --git a/sound/direct_sound_samples/cry_weedle.aif b/sound/direct_sound_samples/cry_weedle.aif new file mode 100644 index 000000000..773c2c8ae Binary files /dev/null and b/sound/direct_sound_samples/cry_weedle.aif differ diff --git a/sound/direct_sound_samples/cry_weepinbell.aif b/sound/direct_sound_samples/cry_weepinbell.aif new file mode 100644 index 000000000..cdd61380a Binary files /dev/null and b/sound/direct_sound_samples/cry_weepinbell.aif differ diff --git a/sound/direct_sound_samples/cry_weezing.aif b/sound/direct_sound_samples/cry_weezing.aif new file mode 100644 index 000000000..2e4a7fe13 Binary files /dev/null and b/sound/direct_sound_samples/cry_weezing.aif differ diff --git a/sound/direct_sound_samples/cry_whiscash.aif b/sound/direct_sound_samples/cry_whiscash.aif new file mode 100644 index 000000000..219737f32 Binary files /dev/null and b/sound/direct_sound_samples/cry_whiscash.aif differ diff --git a/sound/direct_sound_samples/cry_whismur.aif b/sound/direct_sound_samples/cry_whismur.aif new file mode 100644 index 000000000..4da92ca6a Binary files /dev/null and b/sound/direct_sound_samples/cry_whismur.aif differ diff --git a/sound/direct_sound_samples/cry_wigglytuff.aif b/sound/direct_sound_samples/cry_wigglytuff.aif new file mode 100644 index 000000000..90aa90a23 Binary files /dev/null and b/sound/direct_sound_samples/cry_wigglytuff.aif differ diff --git a/sound/direct_sound_samples/cry_wingull.aif b/sound/direct_sound_samples/cry_wingull.aif new file mode 100644 index 000000000..182ef18e6 Binary files /dev/null and b/sound/direct_sound_samples/cry_wingull.aif differ diff --git a/sound/direct_sound_samples/cry_wobbuffet.aif b/sound/direct_sound_samples/cry_wobbuffet.aif new file mode 100644 index 000000000..70ee1f704 Binary files /dev/null and b/sound/direct_sound_samples/cry_wobbuffet.aif differ diff --git a/sound/direct_sound_samples/cry_wooper.aif b/sound/direct_sound_samples/cry_wooper.aif new file mode 100644 index 000000000..51a6b627e Binary files /dev/null and b/sound/direct_sound_samples/cry_wooper.aif differ diff --git a/sound/direct_sound_samples/cry_wurmple.aif b/sound/direct_sound_samples/cry_wurmple.aif new file mode 100644 index 000000000..6442a4063 Binary files /dev/null and b/sound/direct_sound_samples/cry_wurmple.aif differ diff --git a/sound/direct_sound_samples/cry_wynaut.aif b/sound/direct_sound_samples/cry_wynaut.aif new file mode 100644 index 000000000..798732c74 Binary files /dev/null and b/sound/direct_sound_samples/cry_wynaut.aif differ diff --git a/sound/direct_sound_samples/cry_xatu.aif b/sound/direct_sound_samples/cry_xatu.aif new file mode 100644 index 000000000..ac758fdbf Binary files /dev/null and b/sound/direct_sound_samples/cry_xatu.aif differ diff --git a/sound/direct_sound_samples/cry_yanma.aif b/sound/direct_sound_samples/cry_yanma.aif new file mode 100644 index 000000000..df76534c5 Binary files /dev/null and b/sound/direct_sound_samples/cry_yanma.aif differ diff --git a/sound/direct_sound_samples/cry_zangoose.aif b/sound/direct_sound_samples/cry_zangoose.aif new file mode 100644 index 000000000..ce1622043 Binary files /dev/null and b/sound/direct_sound_samples/cry_zangoose.aif differ diff --git a/sound/direct_sound_samples/cry_zapdos.aif b/sound/direct_sound_samples/cry_zapdos.aif new file mode 100644 index 000000000..a8d914d14 Binary files /dev/null and b/sound/direct_sound_samples/cry_zapdos.aif differ diff --git a/sound/direct_sound_samples/cry_zigzagoon.aif b/sound/direct_sound_samples/cry_zigzagoon.aif new file mode 100644 index 000000000..52b9bb4f4 Binary files /dev/null and b/sound/direct_sound_samples/cry_zigzagoon.aif differ diff --git a/sound/direct_sound_samples/cry_zubat.aif b/sound/direct_sound_samples/cry_zubat.aif new file mode 100644 index 000000000..45036d072 Binary files /dev/null and b/sound/direct_sound_samples/cry_zubat.aif differ diff --git a/sound/music_player_table.inc b/sound/music_player_table.inc new file mode 100644 index 000000000..a82eef72b --- /dev/null +++ b/sound/music_player_table.inc @@ -0,0 +1,6 @@ + .align 2 +gMPlayTable:: @ 84A329C + music_player gMPlayInfo_BGM, gMPlayTrack_BGM, 10, 0 + music_player gMPlayInfo_SE1, gMPlayTrack_SE1, 3, 1 + music_player gMPlayInfo_SE2, gMPlayTrack_SE2, 9, 1 + music_player gMPlayInfo_SE3, gMPlayTrack_SE3, 1, 0 diff --git a/sound/song_table.inc b/sound/song_table.inc new file mode 100644 index 000000000..39f1a795e --- /dev/null +++ b/sound/song_table.inc @@ -0,0 +1,351 @@ +gSongTable:: @ 84A32CC + song gSong_86B5640, 0, 0 + song gSong_86B5660, 1, 1 + song gSong_86B568C, 1, 1 + song gSong_86B56B0, 1, 1 + song gSong_86B56F4, 1, 1 + song gSong_86B5720, 2, 2 + song gSong_86B573C, 1, 1 + song gSong_86B5758, 2, 2 + song gSong_86B5774, 1, 1 + song gSong_86B57A8, 1, 1 + song gSong_86B57CC, 1, 1 + song gSong_86B57E8, 1, 1 + song gSong_86B5814, 1, 1 + song gSong_86B5860, 1, 1 + song gSong_86B58DC, 1, 1 + song gSong_86B5930, 1, 1 + song gSong_86B5984, 1, 1 + song gSong_86B59D4, 1, 1 + song gSong_86B59F0, 1, 1 + song gSong_86B5A44, 1, 1 + song gSong_86B5A8C, 1, 1 + song gSong_86B5AB8, 1, 1 + song gSong_86B5ADC, 1, 1 + song gSong_86B5B00, 1, 1 + song gSong_86B5B84, 2, 2 + song gSong_86B5BB0, 1, 1 + song gSong_86B5BE0, 1, 1 + song gSong_86B5D60, 1, 1 + song gSong_86B5D84, 1, 1 + song gSong_86B5DA8, 1, 1 + song gSong_86B5DCC, 1, 1 + song gSong_86B5DFC, 1, 1 + song gSong_86B5E20, 1, 1 + song gSong_86B5E6C, 1, 1 + song gSong_86B5EA4, 1, 1 + song gSong_86B5EF8, 1, 1 + song gSong_86B5F34, 1, 1 + song gSong_86B5F8C, 1, 1 + song gSong_86B5FD0, 2, 2 + song gSong_86B600C, 1, 1 + song gSong_86B604C, 1, 1 + song gSong_86B6078, 1, 1 + song gSong_86B60B4, 1, 1 + song gSong_86B6160, 1, 1 + song gSong_86B61D8, 1, 1 + song gSong_86B6204, 2, 2 + song gSong_86B6238, 1, 1 + song gSong_86B6264, 2, 2 + song gSong_86B62A8, 1, 1 + song gSong_86B62D4, 1, 1 + song gSong_86B6300, 1, 1 + song gSong_86B632C, 1, 1 + song gSong_86B6358, 1, 1 + song gSong_86B63AC, 2, 2 + song gSong_86B63F0, 1, 1 + song gSong_86B6424, 2, 2 + song gSong_86B645C, 2, 2 + song gSong_86B6494, 2, 2 + song gSong_86B64CC, 2, 2 + song gSong_86B6504, 2, 2 + song gSong_86B653C, 2, 2 + song gSong_86B6574, 2, 2 + song gSong_86B65AC, 2, 2 + song gSong_86B65E0, 2, 2 + song gSong_86B6604, 2, 2 + song gSong_86B6650, 1, 1 + song gSong_86B66B0, 1, 1 + song gSong_86B66E4, 2, 2 + song gSong_86B6714, 2, 2 + song gSong_86B674C, 2, 2 + song gSong_86B6790, 2, 2 + song gSong_86B67C0, 2, 2 + song gSong_86B67E8, 1, 1 + song gSong_86B6850, 1, 1 + song gSong_86B688C, 3, 3 + song gSong_86B68CC, 3, 3 + song gSong_86B6908, 3, 3 + song gSong_86B6948, 3, 3 + song gSong_86B6984, 3, 3 + song gSong_86B69C4, 3, 3 + song gSong_86B6A2C, 1, 1 + song gSong_86B6A7C, 1, 1 + song gSong_86B6AB8, 1, 1 + song gSong_86B6AE8, 3, 3 + song gSong_86B6B34, 1, 1 + song gSong_86B6B58, 2, 2 + song gSong_86B6BAC, 2, 2 + song gSong_86B6C40, 1, 1 + song gSong_86B6C7C, 1, 1 + song gSong_86B6CA0, 1, 1 + song gSong_86B6D04, 1, 1 + song gSong_86B6D6C, 1, 1 + song gSong_86B6D94, 1, 1 + song gSong_86B6DC8, 1, 1 + song gSong_86B6DF4, 1, 1 + song gSong_86B6E70, 1, 1 + song gSong_86B6F30, 1, 1 + song gSong_86B7018, 1, 1 + song gSong_86B7130, 1, 1 + song gSong_86B7154, 1, 1 + song gSong_86B7268, 1, 1 + song gSong_86B7294, 1, 1 + song gSong_86B72C8, 1, 1 + song gSong_86B732C, 1, 1 + song gSong_86B7394, 1, 1 + song gSong_86B7590, 1, 1 + song gSong_86B761C, 1, 1 + song gSong_86B766C, 1, 1 + song gSong_86B7698, 1, 1 + song gSong_86B76B8, 2, 2 + song gSong_86B76F4, 1, 1 + song gSong_86B7788, 2, 2 + song gSong_86B77F4, 1, 1 + song gSong_86B783C, 1, 1 + song gSong_86B7900, 1, 1 + song gSong_86B7954, 1, 1 + song gSong_86B79D4, 1, 1 + song gSong_86B7A0C, 1, 1 + song gSong_86B7A40, 1, 1 + song gSong_86B7A80, 1, 1 + song gSong_86B7AF8, 1, 1 + song gSong_86B7B78, 1, 1 + song gSong_86B7BD0, 1, 1 + song gSong_86B7C74, 1, 1 + song gSong_86B7CC0, 1, 1 + song gSong_86B7D3C, 2, 2 + song gSong_86B7D88, 2, 2 + song gSong_86B7DBC, 1, 1 + song gSong_86B7E08, 1, 1 + song gSong_86B7E68, 1, 1 + song gSong_86B7EB4, 1, 1 + song gSong_86B7F38, 1, 1 + song gSong_86B7F8C, 1, 1 + song gSong_86B8058, 1, 1 + song gSong_86B80F8, 1, 1 + song gSong_86B8134, 1, 1 + song gSong_86B8180, 1, 1 + song gSong_86B8204, 1, 1 + song gSong_86B8274, 1, 1 + song gSong_86B8348, 1, 1 + song gSong_86B83EC, 1, 1 + song gSong_86B845C, 1, 1 + song gSong_86B84D0, 1, 1 + song gSong_86B85B0, 2, 2 + song gSong_86B85EC, 1, 1 + song gSong_86B8654, 2, 2 + song gSong_86B86D0, 1, 1 + song gSong_86B871C, 1, 1 + song gSong_86B8764, 1, 1 + song gSong_86B87CC, 1, 1 + song gSong_86B8868, 1, 1 + song gSong_86B89CC, 1, 1 + song gSong_86B8A34, 1, 1 + song gSong_86B8A78, 1, 1 + song gSong_86B8AF4, 1, 1 + song gSong_86B8B60, 1, 1 + song gSong_86B8BE0, 1, 1 + song gSong_86B8C60, 1, 1 + song gSong_86B8CFC, 1, 1 + song gSong_86B8D48, 1, 1 + song gSong_86B8D88, 2, 2 + song gSong_86B8E00, 1, 1 + song gSong_86B8E3C, 1, 1 + song gSong_86B8E94, 2, 2 + song gSong_86B8F5C, 1, 1 + song gSong_86B9050, 1, 1 + song gSong_86B9160, 1, 1 + song gSong_86B91E8, 1, 1 + song gSong_86B9230, 1, 1 + song gSong_86B9290, 1, 1 + song gSong_86B92DC, 1, 1 + song gSong_86B9364, 1, 1 + song gSong_86B9420, 1, 1 + song gSong_86B9478, 1, 1 + song gSong_86B94F4, 1, 1 + song gSong_86B95BC, 1, 1 + song gSong_86B9678, 1, 1 + song gSong_86B9764, 1, 1 + song gSong_86B97A4, 1, 1 + song gSong_86B9800, 1, 1 + song gSong_86B9838, 1, 1 + song gSong_86B98EC, 1, 1 + song gSong_86B998C, 1, 1 + song gSong_86B99F4, 1, 1 + song gSong_86B9B18, 1, 1 + song gSong_86B9B94, 1, 1 + song gSong_86B9BF0, 1, 1 + song gSong_86B9C28, 1, 1 + song gSong_86B9C78, 1, 1 + song gSong_86B9D04, 1, 1 + song gSong_86B9D68, 1, 1 + song gSong_86B9DE0, 1, 1 + song gSong_86B9E48, 1, 1 + song gSong_86B9F9C, 1, 1 + song gSong_86BA070, 2, 2 + song gSong_86BA180, 1, 1 + song gSong_86BA264, 1, 1 + song gSong_86BA344, 1, 1 + song gSong_86BA390, 1, 1 + song gSong_86BA41C, 1, 1 + song gSong_86BA5AC, 1, 1 + song gSong_86BA74C, 1, 1 + song gSong_86BA7BC, 2, 2 + song gSong_86BA80C, 1, 1 + song gSong_86BA930, 1, 1 + song gSong_86BA9B0, 1, 1 + song gSong_86BAAA0, 1, 1 + song gSong_86BAB04, 1, 1 + song gSong_86BAB60, 1, 1 + song gSong_86BAC14, 1, 1 + song gSong_86BAE10, 1, 1 + song gSong_86BAF30, 1, 1 + song gSong_86BB0A0, 1, 1 + song gSong_86BB110, 1, 1 + song gSong_86BB1A8, 1, 1 + song gSong_86BB1E0, 1, 1 + song gSong_86BB2B8, 2, 2 + song gSong_86BB390, 1, 1 + song gSong_86BB43C, 1, 1 + song gSong_86BB4D4, 1, 1 + song gSong_86BB56C, 1, 1 + song gSong_86BB614, 1, 1 + song gSong_86BB660, 1, 1 + song gSong_86BB75C, 1, 1 + song gSong_86BB7F0, 1, 1 + song gSong_86BB854, 1, 1 + song gSong_86BB8F0, 1, 1 + song gSong_86BBAF8, 2, 2 + song gSong_86BBBF4, 2, 2 + song gSong_86BBCE4, 1, 1 + song gSong_86BBD68, 1, 1 + song gSong_86BBDDC, 2, 2 + song gSong_86BBF5C, 1, 1 + song gSong_86BC060, 1, 1 + song gSong_86BC0C0, 1, 1 + song gSong_86BC130, 1, 1 + song gSong_86BC24C, 2, 2 + song gSong_86BC2F0, 1, 1 + song gSong_86BC460, 1, 1 + song gSong_86BC594, 1, 1 + song gSong_86BC618, 1, 1 + song gSong_86BC670, 1, 1 + song gSong_86BC6A0, 1, 1 + song gSong_86BC6D8, 1, 1 + song gSong_86BC764, 1, 1 + song gSong_86BC79C, 1, 1 + song gSong_86BC7E0, 1, 1 + song gSong_86BC820, 1, 1 + song gSong_86BC848, 1, 1 + song gSong_86BC900, 1, 1 + song gSong_86BC974, 1, 1 + song gSong_86BC9E0, 1, 1 + song gSong_86BCA28, 1, 1 + song gSong_86BCB08, 1, 1 + song gSong_86BCBC8, 1, 1 + song gSong_86BCBFC, 1, 1 + song gSong_86BCCB8, 2, 2 + song gSong_86BCD98, 2, 2 + song gSong_86BCEE4, 2, 2 + song gSong_86BD080, 2, 2 + song gSong_86BD358, 2, 2 + song gSong_86BD4E4, 2, 2 + song gSong_86BD5BC, 2, 2 + song gSong_86BD628, 2, 2 + song gSong_86BDB98, 0, 0 + song gSong_86BE9C4, 0, 0 + song gSong_86BFA68, 0, 0 + song gSong_86BFDC0, 0, 0 + song gSong_86BFFE0, 2, 2 + song gSong_86C0120, 2, 2 + song gSong_86C0204, 2, 2 + song gSong_86C02FC, 2, 2 + song gSong_86C07E4, 0, 0 + song gSong_86C1720, 0, 0 + song gSong_86C3344, 0, 0 + song gSong_86C3D50, 0, 0 + song gSong_86C3FE8, 2, 2 + song gSong_86C4AE8, 0, 0 + song gSong_86C5B5C, 0, 0 + song gSong_86C6A30, 0, 0 + song gSong_86C775C, 0, 0 + song gSong_86C77B0, 0, 0 + song gSong_86C83C4, 0, 0 + song gSong_86C8784, 0, 0 + song gSong_86C8B3C, 0, 0 + song gSong_86C8FE4, 0, 0 + song gSong_86C9AA0, 0, 0 + song gSong_86CACB8, 0, 0 + song gSong_86CC108, 0, 0 + song gSong_86CD344, 0, 0 + song gSong_86D1354, 0, 0 + song gSong_86D1DDC, 0, 0 + song gSong_86D264C, 0, 0 + song gSong_86D3588, 0, 0 + song gSong_86D42FC, 0, 0 + song gSong_86D503C, 0, 0 + song gSong_86D6B20, 0, 0 + song gSong_86D9694, 0, 0 + song gSong_86DA810, 0, 0 + song gSong_86DCFE0, 0, 0 + song gSong_86DD844, 0, 0 + song gSong_86DDFE0, 0, 0 + song gSong_86DE96C, 0, 0 + song gSong_86DF3CC, 0, 0 + song gSong_86E0670, 0, 0 + song gSong_86E0FE8, 0, 0 + song gSong_86E18B4, 0, 0 + song gSong_86E2FA8, 0, 0 + song gSong_86E39E4, 0, 0 + song gSong_86E4564, 0, 0 + song gSong_86E56E4, 0, 0 + song gSong_86E5C1C, 0, 0 + song gSong_86E6B0C, 0, 0 + song gSong_86E7920, 0, 0 + song gSong_86E8810, 0, 0 + song gSong_86E904C, 0, 0 + song gSong_86E9820, 0, 0 + song gSong_86E9A20, 2, 2 + song gSong_86E9C20, 2, 2 + song gSong_86E9F90, 2, 2 + song gSong_86EA100, 2, 2 + song gSong_86EAA04, 0, 0 + song gSong_86EAE3C, 0, 0 + song gSong_86EAEC8, 0, 0 + song gSong_86EB098, 0, 0 + song gSong_86EB154, 0, 0 + song gSong_86EC0C8, 0, 0 + song gSong_86ED044, 0, 0 + song gSong_86EDAA0, 0, 0 + song gSong_86EDF20, 0, 0 + song gSong_86EEE4C, 0, 0 + song gSong_86F0250, 0, 0 + song gSong_86F0740, 0, 0 + song gSong_86F1600, 0, 0 + song gSong_86F281C, 0, 0 + song gSong_86F3710, 0, 0 + song gSong_86F4738, 0, 0 + song gSong_86F5668, 0, 0 + song gSong_86F582C, 2, 2 + song gSong_86F79B4, 0, 0 + song gSong_86F8B2C, 0, 0 + song gSong_86F9DE4, 0, 0 + song gSong_86FA228, 0, 0 + song gSong_86FAB70, 0, 0 + song gSong_86FB570, 0, 0 + song gSong_86FBDB0, 0, 0 + song gSong_86FBE8C, 0, 0 + +dummy_song_header: @ 84A3DA4 + .byte 0, 0, 0, 0 diff --git a/src/bag.c b/src/bag.c new file mode 100644 index 000000000..f2fc40d93 --- /dev/null +++ b/src/bag.c @@ -0,0 +1,321 @@ +#include "global.h" +#include "task.h" +#include "palette.h" +#include "item_menu.h" +#include "text.h" +#include "window.h" +#include "text_window.h" +#include "menu_helpers.h" +#include "menu.h" +#include "money.h" +#include "bag.h" + +extern const u8 gText_DepositItem[]; + +const u16 gUnknown_8453098[] = INCBIN_U16("data/bag/bag_window_pal.gbapal"); +const struct TextColor gUnknown_84530B8[] = { + {0, 1, 2}, + {0, 2, 3}, + {0, 3, 2}, + {0, 8, 9} +}; +const struct WindowTemplate gUnknown_84530C4[] = { + { + .bg = 0, + .tilemapLeft = 0x0b, + .tilemapTop = 0x01, + .width = 0x12, + .height = 0x0c, + .paletteNum = 0x0f, + .baseBlock = 0x008a + }, { + .bg = 0, + .tilemapLeft = 0x05, + .tilemapTop = 0x0e, + .width = 0x19, + .height = 0x06, + .paletteNum = 0x0f, + .baseBlock = 0x0162 + }, { + .bg = 0, + .tilemapLeft = 0x01, + .tilemapTop = 0x01, + .width = 0x09, + .height = 0x02, + .paletteNum = 0x0f, + .baseBlock = 0x01f8 + }, DUMMY_WIN_TEMPLATE +}; +const struct WindowTemplate gUnknown_84530E4[] = { + { + .bg = 0, + .tilemapLeft = 0x0b, + .tilemapTop = 0x01, + .width = 0x12, + .height = 0x0c, + .paletteNum = 0x0f, + .baseBlock = 0x008a + }, { + .bg = 0, + .tilemapLeft = 0x05, + .tilemapTop = 0x0e, + .width = 0x19, + .height = 0x06, + .paletteNum = 0x0f, + .baseBlock = 0x0162 + }, { + .bg = 0, + .tilemapLeft = 0x01, + .tilemapTop = 0x01, + .width = 0x08, + .height = 0x02, + .paletteNum = 0x0C, + .baseBlock = 0x01f8 + }, DUMMY_WIN_TEMPLATE +}; +const struct WindowTemplate gUnknown_8453104[] = { + { + .bg = 0, + .tilemapLeft = 24, + .tilemapTop = 15, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x242 + }, { + .bg = 0, + .tilemapLeft = 17, + .tilemapTop = 9, + .width = 12, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x242 + }, { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 8, + .height = 3, + .paletteNum = 0xC, + .baseBlock = 0x272 + } +}; + +const struct WindowTemplate gUnknown_845311C = { + .bg = 0, + .tilemapLeft = 23, + .tilemapTop = 15, + .width = 6, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x28a +}; + +const struct WindowTemplate gUnknown_8453124 = { + .bg = 0, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 6, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x28a +}; + +const struct WindowTemplate gUnknown_845312C[] = { + { + .bg = 0x00, + .tilemapLeft = 0x02, + .tilemapTop = 0x0f, + .width = 0x1a, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x02a2 + }, { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x0e, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x02a2 + }, { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x0f, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x02da + }, { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x10, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x0316 + }, { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x17, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x0356 + }, { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x11, + .width = 0x07, + .height = 0x02, + .paletteNum = 0x0f, + .baseBlock = 0x020a + }, { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0f, + .width = 0x07, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x020a + }, { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0d, + .width = 0x07, + .height = 0x06, + .paletteNum = 0x0f, + .baseBlock = 0x020a + }, { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0b, + .width = 0x07, + .height = 0x08, + .paletteNum = 0x0f, + .baseBlock = 0x020a + } +}; + +const u8 gUnknown_8453174[] = {16, 8, 4}; + +EWRAM_DATA u8 gUnknown_203AD34[11] = {}; + +void sub_810B858(void) +{ + u8 i; + + if (gUnknown_203ACFC.location != 3) + InitWindows(gUnknown_84530C4); + else + InitWindows(gUnknown_84530E4); + DeactivateAllTextPrinters(); + TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0); + TextWindow_SetBubbleFrame_841F1C8(0, 0x6D, 0xD0); + TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0); + LoadPalette(gUnknown_8453098, 0xF0, 0x20); + for (i = 0; i < 3; i++) + { + FillWindowPixelBuffer(i, 0x00); + PutWindowTilemap(i); + } + schedule_bg_copy_tilemap_to_vram(0); + for (i = 0; i < 11; i++) + { + gUnknown_203AD34[i] = 0xFF; + } +} + +void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx) +{ + AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, &gUnknown_84530B8[colorIdx], speed, str); +} + +void sub_810B958(const u8 * str) +{ + u32 x = 0x48 - GetStringWidth(1, str, 0); + AddTextPrinterParameterized3(2, 1, x / 2, 1, &gUnknown_84530B8[0], 0, str); +} + +void sub_810B994(void) +{ + u32 x; + SetWindowBorderStyle(2, FALSE, 0x081, 0x0C); + x = 0x40 - GetStringWidth(0, gText_DepositItem, 0); + AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL); +} + +u8 sub_810B9DC(u8 a0, u8 a1) +{ + if (gUnknown_203AD34[a0] == 0xFF) + { + gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]); + if (a0 != 6) + { + SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E); + } + else + { + SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C); + } + schedule_bg_copy_tilemap_to_vram(0); + } + return gUnknown_203AD34[a0]; +} + +void sub_810BA3C(u8 a0) +{ + ClearMenuWindow(gUnknown_203AD34[a0], FALSE); + ClearWindowTilemap(gUnknown_203AD34[a0]); + RemoveWindow(gUnknown_203AD34[a0]); + schedule_bg_copy_tilemap_to_vram(0); + gUnknown_203AD34[a0] = 0xFF; +} + +u8 sub_810BA70(u8 a0) +{ + if (gUnknown_203AD34[a0] == 0xFF) + { + gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0]); + } + return gUnknown_203AD34[a0]; +} + +void sub_810BA9C(u8 a0) +{ + if (gUnknown_203AD34[a0] != 0xFF) + { + ClearMenuWindow_BorderThickness2(gUnknown_203AD34[a0], FALSE); + ClearWindowTilemap(gUnknown_203AD34[a0]); + RemoveWindow(gUnknown_203AD34[a0]); + PutWindowTilemap(1); + schedule_bg_copy_tilemap_to_vram(0); + gUnknown_203AD34[a0] = 0xFF; + + } +} + +u8 sub_810BAD8(u8 a0) +{ + return gUnknown_203AD34[a0]; +} + +void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs) +{ + CreateYesNoMenuWithCallbacks(taskId, &gUnknown_845311C, 2, 0, 2, 0x64, 0x0E, ptrs); +} + +void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs) +{ + CreateYesNoMenuWithCallbacks(taskId, &gUnknown_8453124, 2, 0, 2, 0x064, 0x0E, ptrs); +} + +void sub_810BB40(void) +{ + PrintMoneyAmountInMoneyBoxWithBorder(sub_810B9DC(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money)); +} + +void sub_810BB74(u8 windowId) +{ + DrawTextBorderOuter(windowId, 0x064, 0x0E); +} diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 6f5577f70..6343b55cd 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -1623,7 +1623,7 @@ static void BattleAICmd_if_status_not_in_party(void) enum { - WEATHER_TYPE_SUN, + WEATHER_TYPE_SUNNY, WEATHER_TYPE_RAIN, WEATHER_TYPE_SANDSTORM, WEATHER_TYPE_HAIL, @@ -1637,8 +1637,8 @@ static void BattleAICmd_get_weather(void) AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_RAIN; if (gBattleWeather & WEATHER_SANDSTORM_ANY) AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_SANDSTORM; - if (gBattleWeather & WEATHER_SUN_ANY) - AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_SUN; + if (gBattleWeather & WEATHER_SUNNY_ANY) + AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_SUNNY; if (gBattleWeather & WEATHER_HAIL) AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_HAIL; diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c new file mode 100644 index 000000000..27e6ef28c --- /dev/null +++ b/src/battle_anim_mon_movement.c @@ -0,0 +1,809 @@ +#include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "task.h" +#include "trig.h" + +#define abs(x) ((x) < 0 ? -(x) : (x)) + +void sub_8098A6C(u8 taskId); +void sub_8098C08(u8 taskId); +void sub_8098D54(u8 taskId); +void sub_8098EF0(u8 taskId); +void sub_8099004(u8 taskId); +void sub_80990AC(struct Sprite * sprite); +void sub_8099120(struct Sprite * sprite); +void sub_8099144(struct Sprite * sprite); +void sub_8099190(struct Sprite * sprite); +void sub_80991B4(struct Sprite * sprite); +void sub_8099270(struct Sprite * sprite); +void sub_80992E0(struct Sprite * sprite); +void sub_8099394(struct Sprite * sprite); +void sub_809946C(struct Sprite * sprite); +void sub_8099530(u8 taskId); +void sub_8099594(u8 taskId); +void sub_80996B8(u8 taskId); +void sub_8099788(u8 taskId); +void sub_8099908(u8 taskId); +void sub_8099B54(u8 taskId); +void sub_8099CB8(u8 taskId); + +const struct SpriteTemplate gUnknown_83D4E4C[] = { + { + 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80990AC + }, { + 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8099144 + }, { + 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80991B4 + }, { + 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80992E0 + }, { + 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8099394 + } +}; + +void sub_80989F8(u8 taskId) +{ + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + + if (spriteId == 0xFF) + DestroyAnimVisualTask(taskId); + else + { + gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; + gSprites[spriteId].pos2.y = gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[4]; + gTasks[taskId].data[3] = gBattleAnimArgs[4]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = gBattleAnimArgs[2]; + gTasks[taskId].func = sub_8098A6C; + gTasks[taskId].func(taskId); + } +} + +void sub_8098A6C(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + if (gSprites[gTasks[taskId].data[0]].pos2.x == 0) + gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4]; + else + gSprites[gTasks[taskId].data[0]].pos2.x = 0; + if (gSprites[gTasks[taskId].data[0]].pos2.y == 0) + gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5]; + else + gSprites[gTasks[taskId].data[0]].pos2.y = 0; + gTasks[taskId].data[3] = gTasks[taskId].data[2]; + if (--gTasks[taskId].data[1] == 0) + { + gSprites[gTasks[taskId].data[0]].pos2.x = 0; + gSprites[gTasks[taskId].data[0]].pos2.y = 0; + DestroyAnimVisualTask(taskId); + } + } + else + gTasks[taskId].data[3]--; +} + +void sub_8098B1C(u8 taskId) +{ + bool8 abort = FALSE; + u8 spriteId; + u8 battlerId; + + if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT) + { + spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + if (spriteId == 0xFF) + abort = TRUE; + } + else if (gBattleAnimArgs[0] != 8) + { + switch (gBattleAnimArgs[0]) + { + case 4: + battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + break; + case 5: + battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + break; + case 6: + battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + break; + default: + battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + break; + } + if (!sub_8072DF0(battlerId)) + abort = TRUE; + spriteId = gBattlerSpriteIds[battlerId]; + } + else + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + if (abort) + DestroyAnimVisualTask(taskId); + else + { + gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; + gSprites[spriteId].pos2.y = gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[4]; + gTasks[taskId].data[3] = gBattleAnimArgs[4]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = gBattleAnimArgs[2]; + gTasks[taskId].func = sub_8098C08; + gTasks[taskId].func(taskId); + } +} + +void sub_8098C08(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + if (gSprites[gTasks[taskId].data[0]].pos2.x == gTasks[taskId].data[4]) + gSprites[gTasks[taskId].data[0]].pos2.x = -gTasks[taskId].data[4]; + else + gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4]; + if (gSprites[gTasks[taskId].data[0]].pos2.y == gTasks[taskId].data[5]) + gSprites[gTasks[taskId].data[0]].pos2.y = -gTasks[taskId].data[5]; + else + gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5]; + gTasks[taskId].data[3] = gTasks[taskId].data[2]; + if (--gTasks[taskId].data[1] == 0) + { + gSprites[gTasks[taskId].data[0]].pos2.x = 0; + gSprites[gTasks[taskId].data[0]].pos2.y = 0; + DestroyAnimVisualTask(taskId); + } + } + else + gTasks[taskId].data[3]--; +} + +void sub_8098CD0(u8 taskId) +{ + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + + if (spriteId == 0xFF) + DestroyAnimVisualTask(taskId); + else + { + gSprites[spriteId].pos2.x += gBattleAnimArgs[1]; + gSprites[spriteId].pos2.y += gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gBattleAnimArgs[3]; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[4] = gBattleAnimArgs[4]; + gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2; + gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2; + gTasks[taskId].func = sub_8098D54; + gTasks[taskId].func(taskId); + } +} + +void sub_8098D54(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + if (gTasks[taskId].data[1] & 1) + { + gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5]; + gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6]; + } + else + { + gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5]; + gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6]; + } + gTasks[taskId].data[3] = gTasks[taskId].data[4]; + if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2]) + { + if (gTasks[taskId].data[1] & 1) + { + gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5] / 2; + gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6] / 2; + } + else + { + gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5] / 2; + gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6] / 2; + } + DestroyAnimVisualTask(taskId); + } + } + else + gTasks[taskId].data[3]--; +} + +void sub_8098E90(u8 taskId) +{ + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + + gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[3]; + gTasks[taskId].data[4] = gBattleAnimArgs[4]; + gTasks[taskId].func = sub_8098EF0; + gTasks[taskId].func(taskId); +} + +void sub_8098EF0(u8 taskId) +{ + u8 spriteId = gTasks[taskId].data[0]; + s16 data1 = gTasks[taskId].data[1]; + if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++) + { + gTasks[taskId].data[8] = 0; + if (gSprites[spriteId].pos2.x == data1) + data1 = -data1; + gSprites[spriteId].pos2.x += data1; + } + gTasks[taskId].data[1] = data1; + gTasks[taskId].data[9] += gTasks[taskId].data[3]; + gSprites[spriteId].pos2.y = gTasks[taskId].data[9] >> 8; + if (--gTasks[taskId].data[4] == 0) + DestroyAnimVisualTask(taskId); +} + +void sub_8098F84(u8 taskId) +{ + u8 r6 = 1; + u8 i; + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + if (gBattleAnimArgs[4] > 5) + gBattleAnimArgs[4] = 5; + for (i = 0; i < gBattleAnimArgs[4]; i++) + r6 *= 2; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[3]; + gTasks[taskId].data[4] = r6; + gTasks[taskId].func = sub_8099004; + gTasks[taskId].func(taskId); +} + +void sub_8099004(u8 taskId) +{ + u8 spriteId = gTasks[taskId].data[0]; + gSprites[spriteId].pos2.x = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]); + gSprites[spriteId].pos2.y = -Cos(gTasks[taskId].data[5], gTasks[taskId].data[2]); + gSprites[spriteId].pos2.y += gTasks[taskId].data[2]; + gTasks[taskId].data[5] += gTasks[taskId].data[4]; + gTasks[taskId].data[5] &= 0xFF; + if (gTasks[taskId].data[5] == 0) + gTasks[taskId].data[3]--; + if (gTasks[taskId].data[3] == 0) + { + gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].pos2.y = 0; + DestroyAnimVisualTask(taskId); + } +} + +void sub_809907C(u8 taskId) +{ + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + sub_8098F84(taskId); +} + +void sub_80990AC(struct Sprite * sprite) +{ + sprite->invisible = TRUE; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + sprite->data[1] = -gBattleAnimArgs[1]; + else + sprite->data[1] = gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[0]; + sprite->data[2] = 0; + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; + sprite->data[4] = gBattleAnimArgs[0]; + StoreSpriteCallbackInData6(sprite, sub_8099120); + sprite->callback = sub_8074DC4; +} + +void sub_8099120(struct Sprite * sprite) +{ + sprite->data[0] = sprite->data[4]; + sprite->data[1] = -sprite->data[1]; + sprite->callback = sub_8074DC4; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +void sub_8099144(struct Sprite * sprite) +{ + u8 spriteId; + sprite->invisible = TRUE; + spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]); + sprite->data[0] = gBattleAnimArgs[0]; + sprite->data[1] = 0; + sprite->data[2] = gBattleAnimArgs[1]; + sprite->data[3] = spriteId; + sprite->data[4] = gBattleAnimArgs[0]; + StoreSpriteCallbackInData6(sprite, sub_8099190); + sprite->callback = sub_8074DC4; +} + +void sub_8099190(struct Sprite * sprite) +{ + sprite->data[0] = sprite->data[4]; + sprite->data[2] = -sprite->data[2]; + sprite->callback = sub_8074DC4; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +void sub_80991B4(struct Sprite * sprite) +{ + u8 spriteId; + if (gBattleAnimArgs[0] == 0) + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + else + spriteId = gBattlerSpriteIds[gBattleAnimTarget]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; + sprite->data[2] = gSprites[spriteId].pos1.x; + sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y; + sprite->data[4] = gSprites[spriteId].pos1.y; + sub_80754B8(sprite); + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = gSprites[spriteId].pos2.x; + sprite->data[6] = gSprites[spriteId].pos2.y; + sprite->invisible = TRUE; + if (gBattleAnimArgs[1] == 1) + sprite->data[2] = 0; + else if (gBattleAnimArgs[1] == 2) + sprite->data[1] = 0; + sprite->data[7] = gBattleAnimArgs[1]; + sprite->data[7] |= spriteId << 8; + sprite->callback = sub_8099270; +} + +void sub_8099270(struct Sprite * sprite) +{ + u8 data7 = sprite->data[7]; + struct Sprite *otherSprite = &gSprites[sprite->data[7] >> 8]; + if (sprite->data[0] == 0) + { + if (data7 == 1 || data7 == 0) + otherSprite->pos2.x = 0; + if (data7 == 2 || data7 == 0) + otherSprite->pos2.y = 0; + DestroyAnimSprite(sprite); + } + else + { + sprite->data[0]--; + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + otherSprite->pos2.x = (sprite->data[3] >> 8) + sprite->data[5]; + otherSprite->pos2.y = (sprite->data[4] >> 8) + sprite->data[6]; + } +} + +void sub_80992E0(struct Sprite * sprite) +{ + u8 battlerId; + u8 spriteId; + if (gBattleAnimArgs[0] == 0) + battlerId = gBattleAnimAttacker; + else + battlerId = gBattleAnimTarget; + spriteId = gBattlerSpriteIds[battlerId]; + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + if (gBattleAnimArgs[3] == 1) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + } + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = gSprites[spriteId].pos1.x; + sprite->data[2] = gSprites[spriteId].pos1.x + gBattleAnimArgs[1]; + sprite->data[3] = gSprites[spriteId].pos1.y; + sprite->data[4] = gSprites[spriteId].pos1.y + gBattleAnimArgs[2]; + sub_80754B8(sprite); + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = spriteId; + sprite->invisible = TRUE; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + sprite->callback = sub_8074E14; +} + +void sub_8099394(struct Sprite * sprite) +{ + u8 battlerId; + u8 spriteId; + sprite->invisible = TRUE; + if (gBattleAnimArgs[0] == 0) + battlerId = gBattleAnimAttacker; + else + battlerId = gBattleAnimTarget; + spriteId = gBattlerSpriteIds[battlerId]; + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + if (gBattleAnimArgs[3] == 1) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + } + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; + sprite->data[2] = sprite->data[1] + gBattleAnimArgs[1]; + sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y; + sprite->data[4] = sprite->data[3] + gBattleAnimArgs[2]; + sub_80754B8(sprite); + sprite->data[3] = gSprites[spriteId].pos2.x << 8; + sprite->data[4] = gSprites[spriteId].pos2.y << 8; + sprite->data[5] = spriteId; + sprite->data[6] = gBattleAnimArgs[5]; + if (gBattleAnimArgs[5] == 0) + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + else + StoreSpriteCallbackInData6(sprite, sub_809946C); + sprite->callback = sub_8074E14; +} + +void sub_809946C(struct Sprite * sprite) +{ + gSprites[sprite->data[5]].pos2.x = 0; + gSprites[sprite->data[5]].pos2.y = 0; + DestroyAnimSprite(sprite); +} + +void sub_809949C(u8 taskId) +{ + u16 r7 = 0x8000 / gBattleAnimArgs[3]; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + gBattleAnimArgs[5] = -gBattleAnimArgs[5]; + } + gTasks[taskId].data[0] = GetAnimBankSpriteId(gBattleAnimArgs[0]); + gTasks[taskId].data[1] = gBattleAnimArgs[1] * 256 / gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[3]; + gTasks[taskId].data[4] = gBattleAnimArgs[4]; + gTasks[taskId].data[5] = gBattleAnimArgs[5] * 256 / gBattleAnimArgs[6]; + gTasks[taskId].data[6] = gBattleAnimArgs[6]; + gTasks[taskId].data[7] = r7; + gTasks[taskId].func = sub_8099530; +} + +void sub_8099530(u8 taskId) +{ + u8 spriteId = gTasks[taskId].data[0]; + gTasks[taskId].data[11] += gTasks[taskId].data[1]; + gSprites[spriteId].pos2.x = gTasks[taskId].data[11] >> 8; + gSprites[spriteId].pos2.y = Sin((u8)(gTasks[taskId].data[10] >> 8), gTasks[taskId].data[2]); + gTasks[taskId].data[10] += gTasks[taskId].data[7]; + if (--gTasks[taskId].data[3] == 0) + gTasks[taskId].func = sub_8099594; +} + +void sub_8099594(u8 taskId) +{ + u8 spriteId; + + if (gTasks[taskId].data[4] > 0) + gTasks[taskId].data[4]--; + else + { + spriteId = gTasks[taskId].data[0]; + gTasks[taskId].data[12] += gTasks[taskId].data[5]; + gSprites[spriteId].pos2.x = (gTasks[taskId].data[12] >> 8) + (gTasks[taskId].data[11] >> 8); + if (--gTasks[taskId].data[6] == 0) + DestroyAnimVisualTask(taskId); + } +} + +void sub_80995FC(u8 taskId) +{ + u8 spriteId; + + switch (gBattleAnimArgs[0]) + { + case 0: + case 1: + spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + break; + case 2: + if (!sub_8072DF0(gBattleAnimAttacker ^ BIT_FLANK)) + { + DestroyAnimVisualTask(taskId); + return; + } + spriteId = gBattlerSpriteIds[gBattleAnimAttacker ^ BIT_FLANK]; + break; + case 3: + if (!sub_8072DF0(gBattleAnimTarget ^ BIT_FLANK)) + { + DestroyAnimVisualTask(taskId); + return; + } + spriteId = gBattlerSpriteIds[gBattleAnimTarget ^ BIT_FLANK]; + break; + default: + DestroyAnimVisualTask(taskId); + return; + } + gTasks[taskId].data[0] = spriteId; + if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER) + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + else + gTasks[taskId].data[1] = -gBattleAnimArgs[1]; + gTasks[taskId].func = sub_80996B8; +} + +void sub_80996B8(u8 taskId) +{ + u8 spriteId = gTasks[taskId].data[0]; + gSprites[spriteId].pos2.x += gTasks[taskId].data[1]; + if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x < -0x20 || gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x > 0x110) + DestroyAnimVisualTask(taskId); +} + +void sub_8099704(u8 taskId) +{ + u8 spriteId; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + spriteId = GetAnimBankSpriteId(gBattleAnimArgs[4]); + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[3]; + gTasks[taskId].data[4] = spriteId; + if (gBattleAnimArgs[4] == 0) + gTasks[taskId].data[5] = gBattleAnimAttacker; + else + gTasks[taskId].data[5] = gBattleAnimTarget; + gTasks[taskId].data[12] = 1; + gTasks[taskId].func = sub_8099788; +} + +void sub_8099788(u8 taskId) +{ + u8 spriteId; + u32 r8; + s16 r5; + u16 tmp; + + spriteId = gTasks[taskId].data[4]; + tmp = gTasks[taskId].data[10] + gTasks[taskId].data[2]; + gTasks[taskId].data[10] = tmp; + r8 = tmp >> 8; + r5 = Sin(r8, gTasks[taskId].data[1]); + if (gTasks[taskId].data[0] == 0) + { + gSprites[spriteId].pos2.x = r5; + } + else if (GetBattlerSide(gTasks[taskId].data[5]) == B_SIDE_PLAYER) + { + gSprites[spriteId].pos2.y = abs(r5); + } + else + gSprites[spriteId].pos2.y = -abs(r5); + if ((r8 > 0x7F && gTasks[taskId].data[11] == 0 && gTasks[taskId].data[12] == 1) || (r8 < 0x7F && gTasks[taskId].data[11] == 1 && gTasks[taskId].data[12] == 0)) + { + gTasks[taskId].data[11] ^= 1; + gTasks[taskId].data[12] ^= 1; + if (--gTasks[taskId].data[3] == 0) + { + gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].pos2.y = 0; + DestroyAnimVisualTask(taskId); + } + } +} + +void sub_80998B0(u8 taskId) +{ + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[3]); + sub_80758E0(spriteId, gBattleAnimArgs[4]); + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[2]; + gTasks[taskId].data[4] = spriteId; + gTasks[taskId].data[10] = 0x100; + gTasks[taskId].data[11] = 0x100; + gTasks[taskId].func = sub_8099908; +} + +void sub_8099908(u8 taskId) +{ + u8 spriteId; + gTasks[taskId].data[10] += gTasks[taskId].data[0]; + gTasks[taskId].data[11] += gTasks[taskId].data[1]; + spriteId = gTasks[taskId].data[4]; + obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0); + if (--gTasks[taskId].data[2] == 0) + { + if (gTasks[taskId].data[3] > 0) + { + gTasks[taskId].data[0] = -gTasks[taskId].data[0]; + gTasks[taskId].data[1] = -gTasks[taskId].data[1]; + gTasks[taskId].data[2] = gTasks[taskId].data[3]; + gTasks[taskId].data[3] = 0; + } + else + { + sub_8075980(spriteId); + DestroyAnimVisualTask(taskId); + } + } +} + +void sub_8099980(u8 taskId) +{ + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]); + sub_80758E0(spriteId, 0); + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gBattleAnimArgs[0]; + if (gBattleAnimArgs[3] != 1) + gTasks[taskId].data[3] = 0; + else + gTasks[taskId].data[3] = gBattleAnimArgs[0] * gBattleAnimArgs[1]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = spriteId; + gTasks[taskId].data[6] = gBattleAnimArgs[3]; + if (sub_8073788()) + gTasks[taskId].data[7] = 1; + else + { + if (gBattleAnimArgs[2] == 0) + gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : 0; + else + gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER ? 1 : 0; + } + if (gTasks[taskId].data[7] && !sub_8073788()) + { + s16 tmp; + tmp = gTasks[taskId].data[3]; + gTasks[taskId].data[3] = -tmp; + tmp = gTasks[taskId].data[4]; + gTasks[taskId].data[4] = -tmp; + } + gTasks[taskId].func = sub_8099B54; +} + +void sub_8099A78(u8 taskId) +{ + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]); + sub_80758E0(spriteId, 0); + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gBattleAnimArgs[0]; + if (gBattleAnimArgs[2] == 0) + { + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + } + else + { + if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER) + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + } + if (gBattleAnimArgs[3] != 1) + gTasks[taskId].data[3] = 0; + else + gTasks[taskId].data[3] = gBattleAnimArgs[0] * gBattleAnimArgs[1]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = spriteId; + gTasks[taskId].data[6] = gBattleAnimArgs[3]; + gTasks[taskId].data[7] = 1; + if (gTasks[taskId].data[7] ) + { + s16 tmp; + tmp = gTasks[taskId].data[3]; + gTasks[taskId].data[3] = -tmp; + tmp = gTasks[taskId].data[4]; + gTasks[taskId].data[4] = -tmp; + } + gTasks[taskId].func = sub_8099B54; +} + +void sub_8099B54(u8 taskId) +{ + s16 tmp; + gTasks[taskId].data[3] += gTasks[taskId].data[4]; + obj_id_set_rotscale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]); + if (gTasks[taskId].data[7]) + sub_80759DC(gTasks[taskId].data[5]); + if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2]) + { + switch (gTasks[taskId].data[6]) + { + case 1: + sub_8075980(gTasks[taskId].data[5]); + // fallthrough + case 0: + default: + DestroyAnimVisualTask(taskId); + break; + case 2: + gTasks[taskId].data[1] = 0; + tmp = gTasks[taskId].data[4]; + gTasks[taskId].data[4] = -tmp; + gTasks[taskId].data[6] = 1; + break; + } + } +} + +void sub_8099BD4(u8 taskId) +{ + if (gBattleAnimArgs[0] == 0) + { + gTasks[taskId].data[15] = gUnknown_2037EEC / 12; + if (gTasks[taskId].data[15] < 1) + gTasks[taskId].data[15] = 1; + if (gTasks[taskId].data[15] > 16) + gTasks[taskId].data[15] = 16; + } + else + { + gTasks[taskId].data[15] = gUnknown_2037EE8 / 12; + if (gTasks[taskId].data[15] < 1) + gTasks[taskId].data[15] = 1; + if (gTasks[taskId].data[15] > 16) + gTasks[taskId].data[15] = 16; + } + gTasks[taskId].data[14] = gTasks[taskId].data[15] / 2; + gTasks[taskId].data[13] = gTasks[taskId].data[14] + (gTasks[taskId].data[15] & 1); + gTasks[taskId].data[12] = 0; + gTasks[taskId].data[10] = gBattleAnimArgs[3]; + gTasks[taskId].data[11] = gBattleAnimArgs[4]; + gTasks[taskId].data[7] = GetAnimBankSpriteId(1); + gTasks[taskId].data[8] = gSprites[gTasks[taskId].data[7]].pos2.x; + gTasks[taskId].data[9] = gSprites[gTasks[taskId].data[7]].pos2.y; + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].func = sub_8099CB8; +} + +void sub_8099CB8(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (++task->data[0] > task->data[1]) + { + task->data[0] = 0; + task->data[12] = (task->data[12] + 1) & 1; + if (task->data[10]) + { + if (task->data[12]) + { + gSprites[task->data[7]].pos2.x = task->data[8] + task->data[13]; + } + else + { + gSprites[task->data[7]].pos2.x = task->data[8] - task->data[14]; + } + } + if (task->data[11]) + { + if (task->data[12]) + { + gSprites[task->data[7]].pos2.y = task->data[15]; + } + else + { + gSprites[task->data[7]].pos2.y = 0; + } + } + if (!--task->data[2]) + { + gSprites[task->data[7]].pos2.x = 0; + gSprites[task->data[7]].pos2.y = 0; + DestroyAnimVisualTask(taskId); + return; + } + } +} diff --git a/src/berry.c b/src/berry.c new file mode 100644 index 000000000..91d83f40c --- /dev/null +++ b/src/berry.c @@ -0,0 +1,169 @@ +#include "global.h" +#include "berry.h" +#include "text.h" +#include "constants/items.h" + +extern const struct Berry sBerries[]; + +#define ENIGMA_BERRY_STRUCT ({const struct Berry2 *berries = (const struct Berry2 *)sBerries;berries[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX];}) + +void sub_809C718(void) +{ + s32 i; + + gSaveBlock1Ptr->enigmaBerry.berry = ENIGMA_BERRY_STRUCT; + for (i = 0; i < 18; i++) + gSaveBlock1Ptr->enigmaBerry.itemEffect[i] = 0; + gSaveBlock1Ptr->enigmaBerry.holdEffect = 0; + gSaveBlock1Ptr->enigmaBerry.holdEffectParam = 0; + gSaveBlock1Ptr->enigmaBerry.checksum = GetEnigmaBerryChecksum(&gSaveBlock1Ptr->enigmaBerry); +} + +void sub_809C794(void) +{ + CpuFill16(0, &gSaveBlock1Ptr->enigmaBerry, sizeof(gSaveBlock1Ptr->enigmaBerry)); + sub_809C718(); +} + +#ifdef NONMATCHING +void SetEnigmaBerry(u8 * berry) +{ + struct EnigmaBerry * enigmaBerry; + + sub_809C794(); + + { + const struct Berry2 * src = (const struct Berry2 *)berry; + struct Berry2 * dest = &gSaveBlock1Ptr->enigmaBerry.berry; + *dest = *src; + } + + enigmaBerry = &gSaveBlock1Ptr->enigmaBerry; + { + s32 i = 0; + u8 * dest = gSaveBlock1Ptr->enigmaBerry.itemEffect; + const u8 * src = berry + 0x516; + + for (i = 0; i < 18; i++) dest[i] = src[i]; + } + enigmaBerry->holdEffect = berry[0x528]; + enigmaBerry->holdEffectParam = berry[0x529]; + enigmaBerry->checksum = GetEnigmaBerryChecksum(enigmaBerry); +} +#else +NAKED +void SetEnigmaBerry(u8 * berry) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tadds r4, r0, 0\n" + "\tbl sub_809C794\n" + "\tadds r5, r4, 0\n" + "\tldr r0, _0809C824 @ =gSaveBlock1Ptr\n" + "\tldr r2, [r0]\n" + "\tldr r0, _0809C828 @ =0x000030ec\n" + "\tadds r4, r2, r0\n" + "\tadds r1, r4, 0\n" + "\tadds r0, r5, 0\n" + "\tldm r0!, {r3,r6,r7}\n" + "\tstm r1!, {r3,r6,r7}\n" + "\tldm r0!, {r3,r6,r7}\n" + "\tstm r1!, {r3,r6,r7}\n" + "\tldr r0, [r0]\n" + "\tstr r0, [r1]\n" + "\tmovs r3, 0\n" + "\tldr r0, _0809C82C @ =0x00003108\n" + "\tadds r6, r2, r0\n" + "\tldr r1, _0809C830 @ =0x00000516\n" + "\tadds r2, r5, r1\n" + "_0809C7F0:\n" + "\tadds r0, r6, r3\n" + "\tadds r1, r2, r3\n" + "\tldrb r1, [r1]\n" + "\tstrb r1, [r0]\n" + "\tadds r3, 0x1\n" + "\tcmp r3, 0x11\n" + "\tble _0809C7F0\n" + "\tmovs r3, 0xA5\n" + "\tlsls r3, 3\n" + "\tadds r0, r5, r3\n" + "\tldrb r0, [r0]\n" + "\tadds r1, r4, 0\n" + "\tadds r1, 0x2E\n" + "\tstrb r0, [r1]\n" + "\tldr r6, _0809C834 @ =0x00000529\n" + "\tadds r0, r5, r6\n" + "\tldrb r0, [r0]\n" + "\tadds r1, 0x1\n" + "\tstrb r0, [r1]\n" + "\tadds r0, r4, 0\n" + "\tbl GetEnigmaBerryChecksum\n" + "\tstr r0, [r4, 0x30]\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0809C824: .4byte gSaveBlock1Ptr\n" + "_0809C828: .4byte 0x000030ec\n" + "_0809C82C: .4byte 0x00003108\n" + "_0809C830: .4byte 0x00000516\n" + "_0809C834: .4byte 0x00000529"); +} +#endif + +u32 GetEnigmaBerryChecksum(struct EnigmaBerry * enigmaBerry) +{ + const u8 * src = (const u8 *)enigmaBerry; + u32 result = 0; + u32 i; + + for (i = 0; i < offsetof(struct EnigmaBerry, checksum); i++) + result += src[i]; + + return result; +} + +bool32 IsEnigmaBerryValid(void) +{ + if (gSaveBlock1Ptr->enigmaBerry.berry.stageDuration == 0) + return FALSE; + if (gSaveBlock1Ptr->enigmaBerry.berry.maxYield == 0) + return FALSE; + if (GetEnigmaBerryChecksum(&gSaveBlock1Ptr->enigmaBerry) != gSaveBlock1Ptr->enigmaBerry.checksum) + return FALSE; + + return TRUE; +} + +const struct Berry * sub_809C8A0(u8 berryIdx) +{ + if (berryIdx == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) && IsEnigmaBerryValid()) + return (struct Berry *)&gSaveBlock1Ptr->enigmaBerry.berry; + + if (berryIdx == 0 || berryIdx > ITEM_TO_BERRY(ITEM_ENIGMA_BERRY)) + berryIdx = 1; + + return &sBerries[berryIdx - 1]; +} + +u8 ItemIdToBerryType(u16 itemId) +{ + if (itemId - FIRST_BERRY_INDEX < 0 || itemId - FIRST_BERRY_INDEX > ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX) + return 1; + + return ITEM_TO_BERRY(itemId); +} + +u16 BerryTypeToItemId(u16 berryType) +{ + if (berryType - 1 < 0 || berryType - 1 > ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX) + return FIRST_BERRY_INDEX; + + return berryType + FIRST_BERRY_INDEX - 1; +} + +void GetBerryNameByBerryType(u8 berryType, u8 * dest) +{ + const struct Berry * berry = sub_809C8A0(berryType); + memcpy(dest, berry->name, 6); + dest[6] = EOS; +} diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c new file mode 100644 index 000000000..f224bbc47 --- /dev/null +++ b/src/berry_fix_program.c @@ -0,0 +1,191 @@ +#include "global.h" +#include "gpu_regs.h" +#include "multiboot.h" +#include "malloc.h" +#include "bg.h" +#include "graphics.h" +#include "main.h" +#include "sprite.h" +#include "task.h" +#include "scanline_effect.h" +#include "window.h" +#include "text.h" +#include "help_system.h" +#include "menu.h" +#include "m4a.h" + +// Static type declarations + +typedef struct { + u8 state; + u8 unk1; + u16 unk2; + struct MultiBootParam mb; +} berryfix_t; + +// Static RAM declarations + +const void * gUnknown_3005EF0; +int gUnknown_3005EF4; +size_t gUnknown_3005EF8; +struct MultiBootParam gUnknown_3005F00; + +// Static ROM declarations + +static void mb_berry_fix_maincb(void); +static void mb_berry_fix_task(u8 taskId); + +// .rodata + +static const void *const gUnknown_847A890[][3] = { + { + gBerryFixGameboy_Gfx, + gBerryFixGameboy_Tilemap, + gBerryFixGameboy_Pal + }, { + gBerryFixGameboyLogo_Gfx, + gBerryFixGameboyLogo_Tilemap, + gBerryFixGameboyLogo_Pal + }, { + gBerryFixGbaTransfer_Gfx, + gBerryFixGbaTransfer_Tilemap, + gBerryFixGbaTransfer_Pal + }, { + gBerryFixGbaTransferHighlight_Gfx, + gBerryFixGbaTransferHighlight_Tilemap, + gBerryFixGbaTransferHighlight_Pal + }, { + gBerryFixGbaTransferError_Gfx, + gBerryFixGbaTransferError_Tilemap, + gBerryFixGbaTransferError_Pal + }, { + gBerryFixWindow_Gfx, + gBerryFixWindow_Tilemap, + gBerryFixWindow_Pal + }, +}; + +extern const u8 gMultiBootProgram_BerryGlitchFix_Start[0x3BF4]; +extern const u8 gMultiBootProgram_BerryGlitchFix_End[]; + +// .text + +static void mb_berry_fix_print(int scene) +{ + REG_DISPCNT = 0; + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + REG_BLDCNT = 0; + LZ77UnCompVram(gUnknown_847A890[scene][0], (void *)BG_CHAR_ADDR(0)); + LZ77UnCompVram(gUnknown_847A890[scene][1], (void *)BG_SCREEN_ADDR(31)); + CpuCopy16(gUnknown_847A890[scene][2], (void *)BG_PLTT, 0x200); + REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(31) | BGCNT_TXT256x256; + REG_DISPCNT = DISPCNT_BG0_ON; +} + +void mb_berry_fix_serve(void) // noreturn +{ + u8 taskId; + DisableInterrupts(0xFFFF); + EnableInterrupts(INTR_FLAG_VBLANK); + m4aSoundVSyncOff(); + SetVBlankCallback(NULL); + DmaFill32(3, 0, (void *)VRAM, VRAM_SIZE); + DmaFill32(3, 0, (void *)PLTT, PLTT_SIZE); + ResetSpriteData(); + ResetTasks(); + ScanlineEffect_Stop(); + gUnknown_3005ECC = 0; + taskId = CreateTask(mb_berry_fix_task, 0); + gTasks[taskId].data[0] = 0; + SetMainCallback2(mb_berry_fix_maincb); +} + +static void mb_berry_fix_maincb(void) +{ + RunTasks(); +} + +static void mb_berry_fix_task(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + mb_berry_fix_print(5); + data[0] = 1; + break; + case 1: + if (JOY_NEW(A_BUTTON)) + { + mb_berry_fix_print(0); + data[0] = 2; + } + break; + case 2: + if (JOY_NEW(A_BUTTON)) + { + mb_berry_fix_print(1); + data[0] = 4; + } + break; + case 4: + gUnknown_3005EF0 = gMultiBootProgram_BerryGlitchFix_Start; + gUnknown_3005EF8 = gMultiBootProgram_BerryGlitchFix_End - gMultiBootProgram_BerryGlitchFix_Start; + gUnknown_3005F00.masterp = (void *)gMultiBootProgram_BerryGlitchFix_Start; + gUnknown_3005F00.server_type = MULTIBOOT_SERVER_TYPE_NORMAL; + MultiBootInit(&gUnknown_3005F00); + data[1] = 0; + data[0] = 5; + break; + case 5: + if (gUnknown_3005F00.probe_count == 0 && gUnknown_3005F00.response_bit & 0x2 && gUnknown_3005F00.client_bit & 0x2) + { + data[1]++; + if (data[1] > 180) + { + mb_berry_fix_print(2); + MultiBootStartMaster(&gUnknown_3005F00, gUnknown_3005EF0 + MULTIBOOT_HEADER_SIZE, gUnknown_3005EF8 - MULTIBOOT_HEADER_SIZE, 4, 1); + data[1] = 0; + data[0] = 6; + } + else + gUnknown_3005EF4 = MultiBootMain(&gUnknown_3005F00); + } + else + { + data[1] = 0; + gUnknown_3005EF4 = MultiBootMain(&gUnknown_3005F00); + } + break; + case 6: + gUnknown_3005EF4 = MultiBootMain(&gUnknown_3005F00); + if (MultiBootCheckComplete(&gUnknown_3005F00)) + { + mb_berry_fix_print(3); + data[0] = 7; + } + else if (!(gUnknown_3005F00.client_bit & 2)) + data[0] = 9; + break; + case 7: + data[0] = 8; + break; + case 8: + if (JOY_NEW(A_BUTTON)) + { + DestroyTask(taskId); + DoSoftReset(); + } + break; + case 9: + mb_berry_fix_print(4); + data[0] = 10; + break; + case 10: + if (JOY_NEW(A_BUTTON)) + data[0] = 0; + break; + } +} diff --git a/src/berry_powder.c b/src/berry_powder.c new file mode 100644 index 000000000..b3069d697 --- /dev/null +++ b/src/berry_powder.c @@ -0,0 +1,132 @@ +#include "global.h" +#include "event_data.h" +#include "load_save.h" +#include "menu.h" +#include "quest_log.h" +#include "script_menu.h" +#include "string_util.h" +#include "strings.h" +#include "text.h" +#include "text_window.h" + +EWRAM_DATA u8 gUnknown_203F464 = 0; + +u32 sub_815EE3C(u32 * a0) +{ + return *a0 ^ gSaveBlock2Ptr->encryptionKey; +} + +void sub_815EE54(u32 * a0, u32 a1) +{ + *a0 = gSaveBlock2Ptr->encryptionKey ^ a1; +} + +void sub_815EE6C(u32 a0) +{ + ApplyNewEncryptionKeyToWord(&gSaveBlock2Ptr->berryCrush.berryPowderAmount, a0); +} + +bool8 sub_815EE88(u32 a0) +{ + if (sub_815EE3C(&gSaveBlock2Ptr->berryCrush.berryPowderAmount) < a0) + return FALSE; + else + return TRUE; +} + +bool8 sub_815EEB0(void) +{ + if (sub_815EE3C(&gSaveBlock2Ptr->berryCrush.berryPowderAmount) < gSpecialVar_0x8004) + return FALSE; + else + return TRUE; +} + +bool8 sub_815EEE0(u32 a0) +{ + u32 * ptr = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + u32 amount = sub_815EE3C(ptr) + a0; + if (amount > 99999) + { + sub_815EE54(ptr, 99999); + return FALSE; + } + else + { + sub_815EE54(ptr, amount); + return TRUE; + } +} + +bool8 sub_815EF20(u32 a0) +{ + u32 * ptr = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + if (!sub_815EE88(a0)) + return FALSE; + else + { + u32 amount = sub_815EE3C(ptr); + sub_815EE54(ptr, amount - a0); + return TRUE; + } +} + +bool8 sub_815EF5C(void) +{ + u32 * ptr = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + if (!sub_815EE88(gSpecialVar_0x8004)) + return FALSE; + else + { + u32 amount = sub_815EE3C(ptr); + sub_815EE54(ptr, amount - gSpecialVar_0x8004); + return TRUE; + } +} + +u32 GetBerryPowder(void) +{ + return sub_815EE3C(&gSaveBlock2Ptr->berryCrush.berryPowderAmount); +} + +void sub_815EFBC(u8 windowId, u32 powder, u8 x, u8 y, u8 speed) +{ + ConvertIntToDecimalStringN(gStringVar1, powder, STR_CONV_MODE_RIGHT_ALIGN, 5); + AddTextPrinterParameterized(windowId, 0, gStringVar1, x, y, speed, NULL); +} + +void sub_815F014(u8 windowId, u16 baseBlock, u8 palette, u32 powder) +{ + SetWindowBorderStyle(windowId, FALSE, baseBlock, palette); + AddTextPrinterParameterized(windowId, 0, gOtherText_Powder, 0, 0, -1, NULL); + sub_815EFBC(windowId, powder, 39, 12, 0); +} + +void sub_815F070(void) +{ + sub_815EFBC(gUnknown_203F464, GetBerryPowder(), 39, 12, 0); +} + +void sub_815F094(void) +{ + struct WindowTemplate template; + struct WindowTemplate template2; + + if (sub_81119D4(sub_809D6D4) != TRUE) + { + SetWindowTemplateFields(&template, 0, 1, 1, 8, 3, 15, 32); + template2 = template; + gUnknown_203F464 = AddWindow(&template2); + FillWindowPixelBuffer(gUnknown_203F464, 0); + PutWindowTilemap(gUnknown_203F464); + TextWindow_SetStdFrame0_WithPal(gUnknown_203F464, 0x21D, 0xD0); + sub_815F014(gUnknown_203F464, 0x21D, 0xD, GetBerryPowder()); + } +} + +void sub_815F114(void) +{ + ClearWindowTilemap(gUnknown_203F464); + ClearMenuWindow(gUnknown_203F464, 1); + RemoveWindow(gUnknown_203F464); +} diff --git a/src/blend_palette.c b/src/blend_palette.c new file mode 100644 index 000000000..8cd65ae4b --- /dev/null +++ b/src/blend_palette.c @@ -0,0 +1,46 @@ +#include "global.h" +#include "blend_palette.h" +#include "palette.h" + +void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor) +{ + u16 i; + for (i = 0; i < numEntries; i++) + { + u16 index = i + palOffset; + struct PlttData *data1 = (struct PlttData *)&gPlttBufferUnfaded[index]; + s8 r = data1->r; + s8 g = data1->g; + s8 b = data1->b; + struct PlttData *data2 = (struct PlttData *)&blendColor; + gPlttBufferFaded[index] = ((r + (((data2->r - r) * coeff) >> 4)) << 0) + | ((g + (((data2->g - g) * coeff) >> 4)) << 5) + | ((b + (((data2->b - b) * coeff) >> 4)) << 10); + } +} + +void sub_8045314(u16 * palbuff, u16 blend_pal, u32 coefficient, s32 size) +{ + if (coefficient == 16) + { + while (--size != -1) + { + *palbuff++ = blend_pal; + } + } + else + { + u16 r = (blend_pal >> 0) & 0x1F; + u16 g = (blend_pal >> 5) & 0x1F; + u16 b = (blend_pal >> 10) & 0x1F; + while (--size != -1) + { + u16 r2 = (*palbuff >> 0) & 0x1F; + u16 g2 = (*palbuff >> 5) & 0x1F; + u16 b2 = (*palbuff >> 10) & 0x1F; + *palbuff++ = ((r2 + (((r - r2) * coefficient) >> 4)) << 0) + | ((g2 + (((g - g2) * coefficient) >> 4)) << 5) + | ((b2 + (((b - b2) * coefficient) >> 4)) << 10); + } + } +} diff --git a/src/blit.c b/src/blit.c new file mode 100644 index 000000000..969f89900 --- /dev/null +++ b/src/blit.c @@ -0,0 +1,212 @@ +#include "global.h" +#include "blit.h" + +void BlitBitmapRect4BitWithoutColorKey(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height) +{ + BlitBitmapRect4Bit(src, dst, srcX, srcY, dstX, dstY, width, height, 0xFF); +} + +void BlitBitmapRect4Bit(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey) +{ + s32 xEnd; + s32 yEnd; + s32 multiplierSrcY; + s32 multiplierDstY; + s32 loopSrcY, loopDstY; + s32 loopSrcX, loopDstX; + const u8 *pixelsSrc; + u8 *pixelsDst; + s32 toOrr; + s32 toAnd; + s32 toShift; + + if (dst->width - dstX < width) + xEnd = (dst->width - dstX) + srcX; + else + xEnd = srcX + width; + + if (dst->height - dstY < height) + yEnd = (dst->height - dstY) + srcY; + else + yEnd = height + srcY; + + multiplierSrcY = (src->width + (src->width & 7)) >> 3; + multiplierDstY = (dst->width + (dst->width & 7)) >> 3; + + if (colorKey == 0xFF) + { + for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++) + { + for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++) + { + pixelsSrc = src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 0x1d) >> 0x1B); + pixelsDst = dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX >> 3) << 5) + (((loopDstY >> 3) * multiplierDstY) << 5) + ((u32)(loopDstY << 0x1d) >> 0x1B); + toOrr = ((*pixelsSrc >> ((loopSrcX & 1) << 2)) & 0xF); + toShift = ((loopDstX & 1) << 2); + toOrr <<= toShift; + toAnd = 0xF0 >> (toShift); + *pixelsDst = toOrr | (*pixelsDst & toAnd); + } + } + } + else + { + for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++) + { + for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++) + { + pixelsSrc = src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 0x1d) >> 0x1B); + pixelsDst = dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX >> 3) << 5) + (((loopDstY >> 3) * multiplierDstY) << 5) + ((u32)(loopDstY << 0x1d) >> 0x1B); + toOrr = ((*pixelsSrc >> ((loopSrcX & 1) << 2)) & 0xF); + if (toOrr != colorKey) + { + toShift = ((loopDstX & 1) << 2); + toOrr <<= toShift; + toAnd = 0xF0 >> (toShift); + *pixelsDst = toOrr | (*pixelsDst & toAnd); + } + } + } + } +} + +void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue) +{ + s32 xEnd; + s32 yEnd; + s32 multiplierY; + s32 loopX, loopY; + + xEnd = x + width; + if (xEnd > surface->width) + xEnd = surface->width; + + yEnd = y + height; + if (yEnd > surface->height) + yEnd = surface->height; + + multiplierY = (surface->width + (surface->width & 7)) >> 3; + + for (loopY = y; loopY < yEnd; loopY++) + { + for (loopX = x; loopX < xEnd; loopX++) + { + u8 *pixels = surface->pixels + ((loopX >> 1) & 3) + ((loopX >> 3) << 5) + (((loopY >> 3) * multiplierY) << 5) + ((u32)(loopY << 0x1d) >> 0x1B); + if ((loopX & 1) != 0) + { + *pixels &= 0xF; + *pixels |= fillValue << 4; + } + else + { + *pixels &= 0xF0; + *pixels |= fillValue; + } + } + } +} + +void BlitBitmapRect4BitTo8Bit(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey, u8 paletteOffset) +{ + s32 palOffsetBits; + s32 xEnd; + s32 yEnd; + s32 multiplierSrcY; + s32 multiplierDstY; + s32 loopSrcY, loopDstY; + s32 loopSrcX, loopDstX; + const u8 *pixelsSrc; + u8 *pixelsDst; + s32 colorKeyBits; + + palOffsetBits = (u32)(paletteOffset << 0x1C) >> 0x18; + colorKeyBits = (u32)(colorKey << 0x1C) >> 0x18; + + if (dst->width - dstX < width) + xEnd = (dst->width - dstX) + srcX; + else + xEnd = width + srcX; + + if (dst->height - dstY < height) + yEnd = (srcY + dst->height) - dstY; + else + yEnd = srcY + height; + + multiplierSrcY = (src->width + (src->width & 7)) >> 3; + multiplierDstY = (dst->width + (dst->width & 7)) >> 3; + + if (colorKey == 0xFF) + { + for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++) + { + pixelsSrc = src->pixels + ((srcX >> 1) & 3) + ((srcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 0x1d) >> 0x1b); + for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++) + { + pixelsDst = dst->pixels + (loopDstX & 7) + ((loopDstX >> 3) << 6) + (((loopDstY >> 3) * multiplierDstY) << 6) + ((u32)(loopDstY << 0x1d) >> 0x1a); + if (loopSrcX & 1) + { + *pixelsDst = palOffsetBits + (*pixelsSrc >> 4); + } + else + { + pixelsSrc = src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 0x1d) >> 0x1b); + *pixelsDst = palOffsetBits + (*pixelsSrc & 0xF); + } + } + } + } + else + { + for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++) + { + pixelsSrc = src->pixels + ((srcX >> 1) & 3) + ((srcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 0x1d) >> 0x1b); + for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++) + { + if (loopSrcX & 1) + { + if ((*pixelsSrc & 0xF0) != colorKeyBits) + { + pixelsDst = dst->pixels + (loopDstX & 7) + ((loopDstX >> 3) << 6) + (((loopDstY >> 3) * multiplierDstY) << 6) + ((u32)(loopDstY << 0x1d) >> 0x1a); + *pixelsDst = palOffsetBits + (*pixelsSrc >> 4); + } + } + else + { + pixelsSrc = src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 0x1d) >> 0x1b); + if ((*pixelsSrc & 0xF) != colorKey) + { + pixelsDst = dst->pixels + (loopDstX & 7) + ((loopDstX >> 3) << 6) + (((loopDstY >> 3) * multiplierDstY) << 6) + ((u32)(loopDstY << 0x1d) >> 0x1a); + *pixelsDst = palOffsetBits + (*pixelsSrc & 0xF); + } + } + } + } + } +} + +void FillBitmapRect8Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue) +{ + s32 xEnd; + s32 yEnd; + s32 multiplierY; + s32 loopX, loopY; + + xEnd = x + width; + if (xEnd > surface->width) + xEnd = surface->width; + + yEnd = y + height; + if (yEnd > surface->height) + yEnd = surface->height; + + multiplierY = (surface->width + (surface->width & 7)) >> 3; + + for (loopY = y; loopY < yEnd; loopY++) + { + for (loopX = x; loopX < xEnd; loopX++) + { + u8 *pixels = surface->pixels + (loopX & 7) + ((loopX >> 3) << 6) + (((loopY >> 3) * multiplierY) << 6) + ((u32)(loopY << 0x1d) >> 0x1a); + *pixels = fillValue; + } + } +} diff --git a/src/braille_text.c b/src/braille_text.c new file mode 100644 index 000000000..047fcab08 --- /dev/null +++ b/src/braille_text.c @@ -0,0 +1,222 @@ +#include "global.h" +#include "main.h" +#include "window.h" +#include "text.h" +#include "sound.h" + +extern u8 gGlyphInfo[]; + +ALIGNED(4) +static const u8 gUnknown_846FB08[] = {1, 2, 4}; +static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("data/graphics/fonts/font6.fwjpnfont"); + +static void DecompressGlyphFont6(u16); + +u16 Font6Func(struct TextPrinter *textPrinter) +{ + u16 char_; + struct TextPrinterSubStruct *sub; + + sub = &textPrinter->sub_union.sub; + switch (textPrinter->state) + { + case 0: + if (gMain.heldKeys & (A_BUTTON | B_BUTTON) && sub->font_type_upper) + { + textPrinter->delayCounter = 0; + } + if (textPrinter->delayCounter && textPrinter->text_speed) + { + textPrinter->delayCounter --; + if (gTextFlags.canABSpeedUpPrint && gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub->font_type_upper = TRUE; + textPrinter->delayCounter = 0; + } + return 3; + } + if (gTextFlags.autoScroll) + { + textPrinter->delayCounter = 1; + } + else + { + textPrinter->delayCounter = textPrinter->text_speed; + } + char_ = *textPrinter->subPrinter.currentChar++; + switch (char_) + { + case EOS: + return 1; + case CHAR_NEWLINE: + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY += gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing; + return 2; + case PLACEHOLDER_BEGIN: + textPrinter->subPrinter.currentChar++; + return 2; + case EXT_CTRL_CODE_BEGIN: + char_ = *textPrinter->subPrinter.currentChar++; + switch (char_) + { + case 1: + textPrinter->subPrinter.fgColor = *textPrinter->subPrinter.currentChar++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fgColor, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 2: + textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.currentChar++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fgColor, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 3: + textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.currentChar++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fgColor, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 4: + textPrinter->subPrinter.fgColor = *textPrinter->subPrinter.currentChar; + textPrinter->subPrinter.bgColor = *++textPrinter->subPrinter.currentChar; + textPrinter->subPrinter.shadowColor = *++textPrinter->subPrinter.currentChar; + textPrinter->subPrinter.currentChar++; + + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fgColor, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 5: + textPrinter->subPrinter.currentChar++; + return 2; + case 6: + sub->font_type = *textPrinter->subPrinter.currentChar; + textPrinter->subPrinter.currentChar++; + return 2; + case 7: + return 2; + case 8: + textPrinter->delayCounter = *textPrinter->subPrinter.currentChar++; + textPrinter->state = 6; + return 2; + case 9: + textPrinter->state = 1; + if (gTextFlags.autoScroll) + { + sub->frames_visible_counter = 0; + } + return 3; + case 10: + textPrinter->state = 5; + return 3; + case 11: + case 16: + textPrinter->subPrinter.currentChar += 2; + return 2; + case 12: + char_ = *++textPrinter->subPrinter.currentChar; + break; + case 13: + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x + *textPrinter->subPrinter.currentChar++; + return 2; + case 14: + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y + *textPrinter->subPrinter.currentChar++; + return 2; + case 15: + FillWindowPixelBuffer(textPrinter->subPrinter.windowId, PIXEL_FILL(textPrinter->subPrinter.bgColor)); + return 2; + } + break; + case CHAR_PROMPT_CLEAR: + textPrinter->state = 2; + TextPrinterInitDownArrowCounters(textPrinter); + return 3; + case CHAR_PROMPT_SCROLL: + textPrinter->state = 3; + TextPrinterInitDownArrowCounters(textPrinter); + return 3; + case 0xF9: + char_ = *textPrinter->subPrinter.currentChar++| 0x100; + break; + case 0xF8: + textPrinter->subPrinter.currentChar++; + return 0; + } + DecompressGlyphFont6(char_); + CopyGlyphToWindow(textPrinter); + textPrinter->subPrinter.currentX += gGlyphInfo[0x80] + textPrinter->subPrinter.letterSpacing; + return 0; + case 1: + if (TextPrinterWait(textPrinter)) + { + textPrinter->state = 0; + } + return 3; + case 2: + if (TextPrinterWaitWithDownArrow(textPrinter)) + { + FillWindowPixelBuffer(textPrinter->subPrinter.windowId, PIXEL_FILL(textPrinter->subPrinter.bgColor)); + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y; + textPrinter->state = 0; + } + return 3; + case 3: + if (TextPrinterWaitWithDownArrow(textPrinter)) + { + TextPrinterClearDownArrow(textPrinter); + textPrinter->scrollDistance = gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing; + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->state = 4; + } + return 3; + case 4: + if (textPrinter->scrollDistance) + { + if (textPrinter->scrollDistance < gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed]) + { + ScrollWindow(textPrinter->subPrinter.windowId, 0, textPrinter->scrollDistance, PIXEL_FILL(textPrinter->subPrinter.bgColor)); + textPrinter->scrollDistance = 0; + } + else + { + ScrollWindow(textPrinter->subPrinter.windowId, 0, gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->subPrinter.bgColor)); + textPrinter->scrollDistance -= gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed]; + } + CopyWindowToVram(textPrinter->subPrinter.windowId, 2); + } + else + { + textPrinter->state = 0; + } + return 3; + case 5: + if (!IsSEPlaying()) + { + textPrinter->state = 0; + } + return 3; + case 6: + if (textPrinter->delayCounter) + { + textPrinter->delayCounter --; + } + else + { + textPrinter->state = 0; + } + return 3; + } + return 1; +} + +static void DecompressGlyphFont6(u16 glyph) +{ + const u16 *glyphs; + + glyphs = sFont6BrailleGlyphs + 0x100 * (glyph / 8) + 0x10 * (glyph % 8); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x20)); + DecompressGlyphTile(glyphs + 0x80, (u16 *)(gGlyphInfo + 0x40)); + DecompressGlyphTile(glyphs + 0x88, (u16 *)(gGlyphInfo + 0x60)); + gGlyphInfo[0x80] = 0x10; + gGlyphInfo[0x81] = 0x10; +} + +u32 GetGlyphWidthFont6(u16 font_type, bool32 isJapanese) +{ + return 0x10; +} diff --git a/src/cereader_tool.c b/src/cereader_tool.c new file mode 100644 index 000000000..1b25f4828 --- /dev/null +++ b/src/cereader_tool.c @@ -0,0 +1,88 @@ +#include "global.h" +#include "util.h" +#include "save.h" +#include "malloc.h" +#include "cereader_tool.h" + +u8 sub_815D654(void) +{ + return (gSaveBlock1Ptr->unkArray[0].unk9 + 1) % 256; +} + +static bool32 ValidateTrainerTowerTrainer(struct TrainerTowerTrainer * trainer) +{ + if (trainer->unk_001 < 1 || trainer->unk_001 > 8) + return FALSE; + if (trainer->unk_002 > 2) + return FALSE; + if (CalcByteArraySum((const u8 *)trainer, offsetof(typeof(*trainer), checksum)) != trainer->checksum) + return FALSE; + return TRUE; +} + +bool32 ValidateTrainerTowerData(struct TrainerTowerData * ttdata) +{ + u32 count = ttdata->count; + s32 i; + if (count < 1 || count > 8) + return FALSE; + for (i = 0; i < count; i++) + { + if (!ValidateTrainerTowerTrainer(&ttdata->trainers[i])) + return FALSE; + } + if (CalcByteArraySum((const u8 *)ttdata->trainers, count * sizeof(ttdata->trainers[0])) != ttdata->checksum) + return FALSE; + return TRUE; +} + +#define SEC30_SIZE (offsetof(struct TrainerTowerData, trainers[4])) +#define SEC31_SIZE (sizeof(struct TrainerTowerData) - SEC30_SIZE) + +static bool32 CEReaderTool_SaveTrainerTower_r(struct TrainerTowerData * ttdata, u8 * buffer) +{ + AGB_ASSERT_EX(ttdata->dummy == 0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c", 198); + AGB_ASSERT_EX(ttdata->id == 0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c", 199) + + memset(buffer, 0, 0x1000); + memcpy(buffer, ttdata, SEC30_SIZE); + buffer[1] = sub_815D654(); + if (TryWriteSpecialSaveSection(30, buffer) != TRUE) + return FALSE; + memset(buffer, 0, 0x1000); + memcpy(buffer, (u8 *)ttdata + SEC30_SIZE, SEC31_SIZE); + if (TryWriteSpecialSaveSection(31, buffer) != TRUE) + return FALSE; + return TRUE; +} + +bool32 CEReaderTool_SaveTrainerTower(struct TrainerTowerData * ttdata) +{ + u8 * buffer = AllocZeroed(0x1000); + bool32 result = CEReaderTool_SaveTrainerTower_r(ttdata, buffer); + Free(buffer); + return result; +} + +static bool32 CEReaderTool_LoadTrainerTower_r(struct TrainerTowerData * ttdata, void * buffer) +{ + if (TryCopySpecialSaveSection(30, buffer) != 1) + return FALSE; + memcpy(ttdata + 0x000, buffer, SEC30_SIZE); + + if (TryCopySpecialSaveSection(31, buffer) != 1) + return FALSE; + memcpy((u8 *)ttdata + SEC30_SIZE, buffer, SEC31_SIZE); + + if (!ValidateTrainerTowerData(ttdata)) + return FALSE; + return TRUE; +} + +bool32 CEReaderTool_LoadTrainerTower(struct TrainerTowerData * ttdata) +{ + void * buffer = AllocZeroed(0x1000); + bool32 success = CEReaderTool_LoadTrainerTower_r(ttdata, buffer); + Free(buffer); + return success; +} diff --git a/src/coins.c b/src/coins.c index 08646e2f9..3a51f6813 100644 --- a/src/coins.c +++ b/src/coins.c @@ -3,8 +3,8 @@ #include "text.h" #include "menu.h" #include "text_window.h" +#include "strings.h" -extern const u8 gText_Coins[]; extern const u8 gUnknown_8417C2D[]; EWRAM_DATA static u8 sCoinsWindowId = 0; @@ -87,7 +87,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) sCoinsWindowId = AddWindow(&template2); FillWindowPixelBuffer(sCoinsWindowId, 0); PutWindowTilemap(sCoinsWindowId); - sub_814FF2C(sCoinsWindowId, 0x21D, 0xD0); + TextWindow_SetStdFrame0_WithPal(sCoinsWindowId, 0x21D, 0xD0); SetWindowBorderStyle(sCoinsWindowId, FALSE, 0x21D, 0xD); AddTextPrinterParameterized(sCoinsWindowId, 2, gUnknown_8417C2D, 0, 0, 0xFF, 0); PrintCoinsString(coinAmount); @@ -96,6 +96,6 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) void HideCoinsWindow(void) { ClearWindowTilemap(sCoinsWindowId); - sub_810F4D8(sCoinsWindowId, TRUE); + ClearMenuWindow(sCoinsWindowId, TRUE); RemoveWindow(sCoinsWindowId); } diff --git a/src/coord_event_weather.c b/src/coord_event_weather.c new file mode 100644 index 000000000..4dbdd574b --- /dev/null +++ b/src/coord_event_weather.c @@ -0,0 +1,47 @@ +#include "global.h" + +void nullsub_27(void) {} +void nullsub_28(void) {} +void nullsub_29(void) {} +void nullsub_30(void) {} +void nullsub_31(void) {} +void nullsub_32(void) {} +void nullsub_33(void) {} +void nullsub_34(void) {} +void nullsub_35(void) {} +void nullsub_36(void) {} +void nullsub_37(void) {} +void nullsub_38(void) {} +void nullsub_39(void) {} + +struct { + u8 weatherId; + void (*callback)(void); +} const gUnknown_83A72A8[] = { + {0x01, nullsub_27}, + {0x02, nullsub_28}, + {0x03, nullsub_29}, + {0x04, nullsub_30}, + {0x05, nullsub_31}, + {0x06, nullsub_32}, + {0x07, nullsub_33}, + {0x08, nullsub_34}, + {0x09, nullsub_35}, + {0x0a, nullsub_36}, + {0x0b, nullsub_37}, + {0x14, nullsub_38}, + {0x15, nullsub_39} +}; + +void trigger_activate_weather(u8 weatherId) +{ + u8 i; + for (i = 0; i < NELEMS(gUnknown_83A72A8); i++) + { + if (gUnknown_83A72A8[i].weatherId == weatherId) + { + gUnknown_83A72A8[i].callback(); + return; + } + } +} diff --git a/src/data/items.json b/src/data/items.json new file mode 100644 index 000000000..b976e4c3e --- /dev/null +++ b/src/data/items.json @@ -0,0 +1,6062 @@ +{ + "items": [ + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MASTER BALL", + "itemId": "ITEM_MASTER_BALL", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The best BALL with the ultimate\\nperformance. It will catch any wild\\nPOKéMON without fail.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 0, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 0 + }, + { + "english": "ULTRA BALL", + "itemId": "ITEM_ULTRA_BALL", + "price": 1200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A very high-grade BALL that offers\\na higher POKéMON catch rate than\\na GREAT BALL.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 1 + }, + { + "english": "GREAT BALL", + "itemId": "ITEM_GREAT_BALL", + "price": 600, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A good, quality BALL that offers\\na higher POKéMON catch rate than\\na standard POKé BALL.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 2, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 2 + }, + { + "english": "POK\u00e9 BALL", + "itemId": "ITEM_POKE_BALL", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A BALL thrown to catch a wild\\nPOKéMON. It is designed in a\\ncapsule style.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 3, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 3 + }, + { + "english": "SAFARI BALL", + "itemId": "ITEM_SAFARI_BALL", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A special BALL that is used only in\\nthe SAFARI ZONE. It is finished in\\na camouflage pattern.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 4, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 4 + }, + { + "english": "NET BALL", + "itemId": "ITEM_NET_BALL", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A somewhat different BALL that\\nworks especially well on WATER- and\\nBUG-type POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 5, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 5 + }, + { + "english": "DIVE BALL", + "itemId": "ITEM_DIVE_BALL", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A somewhat different BALL that\\nworks especially well on POKéMON\\ndeep in the sea.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 6, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 6 + }, + { + "english": "NEST BALL", + "itemId": "ITEM_NEST_BALL", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A somewhat different BALL that\\nworks especially well on weaker\\nPOKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 7, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 7 + }, + { + "english": "REPEAT BALL", + "itemId": "ITEM_REPEAT_BALL", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A somewhat different BALL that\\nworks especially well on POKéMON\\ncaught before.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 8, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 8 + }, + { + "english": "TIMER BALL", + "itemId": "ITEM_TIMER_BALL", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A somewhat different BALL that\\nbecomes progressively better the\\nmore turns there are in a battle.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 9, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 9 + }, + { + "english": "LUXURY BALL", + "itemId": "ITEM_LUXURY_BALL", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A comfortable BALL that makes a\\ncaptured wild POKéMON quickly grow\\nfriendly.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 10, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 10 + }, + { + "english": "PREMIER BALL", + "itemId": "ITEM_PREMIER_BALL", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A rare BALL that has been\\nspecially made to commemorate an\\nevent of some sort.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_POKE_BALLS", + "type": 11, + "fieldUseFunc": "NULL", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeBallEtc", + "secondaryId": 11 + }, + { + "english": "POTION", + "itemId": "ITEM_POTION", + "price": 300, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 20, + "description_english": "A spray-type wound medicine.\\nIt restores the HP of one POKéMON\\nby 20 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "ANTIDOTE", + "itemId": "ITEM_ANTIDOTE", + "price": 100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A spray-type medicine.\\nIt heals one POKéMON from a\\npoisoning.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "BURN HEAL", + "itemId": "ITEM_BURN_HEAL", + "price": 250, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A spray-type medicine.\\nIt heals one POKéMON of a burn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "ICE HEAL", + "itemId": "ITEM_ICE_HEAL", + "price": 250, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A spray-type medicine.\\nIt defrosts a frozen POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "AWAKENING", + "itemId": "ITEM_AWAKENING", + "price": 250, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A spray-type medicine.\\nIt awakens a sleeping POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "PARLYZ HEAL", + "itemId": "ITEM_PARALYZE_HEAL", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A spray-type medicine.\\nIt heals one POKéMON from\\nparalysis.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "FULL RESTORE", + "itemId": "ITEM_FULL_RESTORE", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 255, + "description_english": "A medicine that fully restores the\\nHP and heals any status problems\\nof one POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "MAX POTION", + "itemId": "ITEM_MAX_POTION", + "price": 2500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 255, + "description_english": "A spray-type wound medicine.\\nIt fully restores the HP of one\\nPOKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "HYPER POTION", + "itemId": "ITEM_HYPER_POTION", + "price": 1200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 200, + "description_english": "A spray-type wound medicine.\\nIt restores the HP of one POKéMON\\nby 200 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "SUPER POTION", + "itemId": "ITEM_SUPER_POTION", + "price": 700, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 50, + "description_english": "A spray-type wound medicine.\\nIt restores the HP of one POKéMON\\nby 50 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "FULL HEAL", + "itemId": "ITEM_FULL_HEAL", + "price": 600, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A spray-type medicine.\\nIt heals all the status problems of\\none POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "REVIVE", + "itemId": "ITEM_REVIVE", + "price": 1500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A medicine that revives a fainted\\nPOKéMON, restoring HP by half the\\nmaximum amount.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "MAX REVIVE", + "itemId": "ITEM_MAX_REVIVE", + "price": 4000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A medicine that revives a fainted\\nPOKéMON, restoring HP fully.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "FRESH WATER", + "itemId": "ITEM_FRESH_WATER", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 50, + "description_english": "Water with a high mineral content.\\nIt restores the HP of one POKéMON\\nby 50 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "SODA POP", + "itemId": "ITEM_SODA_POP", + "price": 300, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 60, + "description_english": "A fizzy soda drink.\\nIt restores the HP of one POKéMON\\nby 60 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "LEMONADE", + "itemId": "ITEM_LEMONADE", + "price": 350, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 80, + "description_english": "A very sweet drink.\\nIt restores the HP of one POKéMON\\nby 80 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "MOOMOO MILK", + "itemId": "ITEM_MOOMOO_MILK", + "price": 500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 100, + "description_english": "Highly nutritious milk.\\nIt restores the HP of one POKéMON\\nby 100 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "ENERGYPOWDER", + "itemId": "ITEM_ENERGY_POWDER", + "price": 500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A very bitter medicine powder.\\nIt restores the HP of one POKéMON\\nby 50 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "ENERGY ROOT", + "itemId": "ITEM_ENERGY_ROOT", + "price": 800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A very bitter root.\\nIt restores the HP of one POKéMON\\nby 200 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "HEAL POWDER", + "itemId": "ITEM_HEAL_POWDER", + "price": 450, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A very bitter medicine powder.\\nIt heals all the status problems of\\none POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "REVIVAL HERB", + "itemId": "ITEM_REVIVAL_HERB", + "price": 2800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A very bitter medicinal herb.\\nIt revives a fainted POKéMON,\\nrestoring HP fully.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "ETHER", + "itemId": "ITEM_ETHER", + "price": 1200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 10, + "description_english": "Restores a selected move's PP by\\n10 points for one POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Ether", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Ether", + "secondaryId": 0 + }, + { + "english": "MAX ETHER", + "itemId": "ITEM_MAX_ETHER", + "price": 2000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 255, + "description_english": "Fully restores a selected move's PP\\nfor one POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Ether", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Ether", + "secondaryId": 0 + }, + { + "english": "ELIXIR", + "itemId": "ITEM_ELIXIR", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 10, + "description_english": "Restores the PP of all moves for\\none POKéMON by 10 points each.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Ether", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Ether", + "secondaryId": 0 + }, + { + "english": "MAX ELIXIR", + "itemId": "ITEM_MAX_ELIXIR", + "price": 4500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 255, + "description_english": "Fully restores the PP of all moves\\nfor one POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Ether", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Ether", + "secondaryId": 0 + }, + { + "english": "LAVA COOKIE", + "itemId": "ITEM_LAVA_COOKIE", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "LAVARIDGE TOWN's local specialty.\\nIt heals all the status problems of\\none POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "BLUE FLUTE", + "itemId": "ITEM_BLUE_FLUTE", + "price": 100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A blue glass flute that awakens\\na sleeping POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "YELLOW FLUTE", + "itemId": "ITEM_YELLOW_FLUTE", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A yellow glass flute that snaps one\\nPOKéMON out of confusion.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "RED FLUTE", + "itemId": "ITEM_RED_FLUTE", + "price": 300, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A red glass flute that snaps one\\nPOKéMON out of infatuation.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "BLACK FLUTE", + "itemId": "ITEM_BLACK_FLUTE", + "price": 400, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 50, + "description_english": "A black glass flute.\\nWhen blown, it makes wild POKéMON\\nless likely to appear.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_BlackFlute", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "WHITE FLUTE", + "itemId": "ITEM_WHITE_FLUTE", + "price": 500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 150, + "description_english": "A white glass flute.\\nWhen blown, it makes wild POKéMON\\nmore likely to appear.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_BlackFlute", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BERRY JUICE", + "itemId": "ITEM_BERRY_JUICE", + "price": 100, + "holdEffect": "HOLD_EFFECT_RESTORE_HP", + "holdEffectParam": 20, + "description_english": "A 100% pure juice.\\nIt restores the HP of one POKéMON\\nby 20 points.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "SACRED ASH", + "itemId": "ITEM_SACRED_ASH", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Revives all fainted POKéMON,\\nrestoring HP fully.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_SacredAsh", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SHOAL SALT", + "itemId": "ITEM_SHOAL_SALT", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Pure salt obtained from deep inside\\nthe SHOAL CAVE. It is extremely\\nsalty.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SHOAL SHELL", + "itemId": "ITEM_SHOAL_SHELL", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A pretty seashell found deep inside\\nthe SHOAL CAVE. It is striped in\\nblue and white.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RED SHARD", + "itemId": "ITEM_RED_SHARD", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A small red shard.\\nIt appears to be from some sort of\\na tool made long ago.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BLUE SHARD", + "itemId": "ITEM_BLUE_SHARD", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A small blue shard.\\nIt appears to be from some sort of\\na tool made long ago.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "YELLOW SHARD", + "itemId": "ITEM_YELLOW_SHARD", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A small yellow shard.\\nIt appears to be from some sort of\\na tool made long ago.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "GREEN SHARD", + "itemId": "ITEM_GREEN_SHARD", + "price": 200, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A small green shard.\\nIt appears to be from some sort of\\na tool made long ago.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "HP UP", + "itemId": "ITEM_HP_UP", + "price": 9800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A nutritious drink for POKéMON.\\nIt raises the base HP of one\\nPOKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "PROTEIN", + "itemId": "ITEM_PROTEIN", + "price": 9800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A nutritious drink for POKéMON.\\nIt raises the base ATTACK stat of\\none POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "IRON", + "itemId": "ITEM_IRON", + "price": 9800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A nutritious drink for POKéMON.\\nIt raises the base DEFENSE stat of\\none POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "CARBOS", + "itemId": "ITEM_CARBOS", + "price": 9800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A nutritious drink for POKéMON.\\nIt raises the base SPEED stat of\\none POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "CALCIUM", + "itemId": "ITEM_CALCIUM", + "price": 9800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A nutritious drink for POKéMON.\\nIt raises the base SP. ATK stat\\nof one POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RARE CANDY", + "itemId": "ITEM_RARE_CANDY", + "price": 4800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A candy that is packed with energy.\\nIt raises the level of a POKéMON\\nby one.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_RareCandy", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "PP UP", + "itemId": "ITEM_PP_UP", + "price": 9800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Slightly raises the maximum PP of\\na selected move for one POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_PpUp", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "ZINC", + "itemId": "ITEM_ZINC", + "price": 9800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A nutritious drink for POKéMON.\\nIt raises the base SP. DEF stat\\nof one POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "PP MAX", + "itemId": "ITEM_PP_MAX", + "price": 9800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Raises the PP of a selected move\\nto its maximum level for one\\nPOKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_PpUp", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "GUARD SPEC.", + "itemId": "ITEM_GUARD_SPEC", + "price": 700, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An item that prevents stat reduction\\namong party POKéMON for five turns\\nafter use.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_GuardSpec", + "secondaryId": 0 + }, + { + "english": "DIRE HIT", + "itemId": "ITEM_DIRE_HIT", + "price": 650, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Raises the critical-hit ratio of\\nPOKéMON in battle. Wears off if the\\nPOKéMON is withdrawn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_GuardSpec", + "secondaryId": 0 + }, + { + "english": "X ATTACK", + "itemId": "ITEM_X_ATTACK", + "price": 500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Raises the ATTACK stat of POKéMON\\nin battle. Wears off if the POKéMON\\nis withdrawn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_GuardSpec", + "secondaryId": 0 + }, + { + "english": "X DEFEND", + "itemId": "ITEM_X_DEFEND", + "price": 550, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Raises the DEFENSE stat of POKéMON\\nin battle. Wears off if the POKéMON\\nis withdrawn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_GuardSpec", + "secondaryId": 0 + }, + { + "english": "X SPEED", + "itemId": "ITEM_X_SPEED", + "price": 350, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Raises the SPEED stat of POKéMON\\nin battle. Wears off if the POKéMON\\nis withdrawn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_GuardSpec", + "secondaryId": 0 + }, + { + "english": "X ACCURACY", + "itemId": "ITEM_X_ACCURACY", + "price": 950, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Raises the accuracy stat of\\nPOKéMON in battle. Wears off if the\\nPOKéMON is withdrawn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_GuardSpec", + "secondaryId": 0 + }, + { + "english": "X SPECIAL", + "itemId": "ITEM_X_SPECIAL", + "price": 350, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Raises the SP. ATK stat of\\nPOKéMON in battle. Wears off if the\\nPOKéMON is withdrawn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_GuardSpec", + "secondaryId": 0 + }, + { + "english": "POK\u00e9 DOLL", + "itemId": "ITEM_POKE_DOLL", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An attractive doll.\\nUse it to flee from any battle with\\na wild POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeDoll", + "secondaryId": 0 + }, + { + "english": "FLUFFY TAIL", + "itemId": "ITEM_FLUFFY_TAIL", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An attractive item.\\nUse it to flee from any battle with\\na wild POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeDoll", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SUPER REPEL", + "itemId": "ITEM_SUPER_REPEL", + "price": 500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 200, + "description_english": "Prevents weak wild POKéMON from\\nappearing for 200 steps.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_SuperRepel", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MAX REPEL", + "itemId": "ITEM_MAX_REPEL", + "price": 700, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 250, + "description_english": "Prevents weak wild POKéMON from\\nappearing for 250 steps.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_SuperRepel", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "ESCAPE ROPE", + "itemId": "ITEM_ESCAPE_ROPE", + "price": 550, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A long, durable rope.\\nUse it to escape instantly from a\\ncave or a dungeon.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 2, + "fieldUseFunc": "ItemUseOutOfBattle_EscapeRope", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "REPEL", + "itemId": "ITEM_REPEL", + "price": 350, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 100, + "description_english": "Prevents weak wild POKéMON from\\nappearing for 100 steps.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_SuperRepel", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SUN STONE", + "itemId": "ITEM_SUN_STONE", + "price": 2100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A peculiar stone that makes certain\\nspecies of POKéMON evolve.\\nIt is as red as the sun.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_EvoItem", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MOON STONE", + "itemId": "ITEM_MOON_STONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A peculiar stone that makes certain\\nspecies of POKéMON evolve.\\nIt is as black as the night sky.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_EvoItem", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "FIRE STONE", + "itemId": "ITEM_FIRE_STONE", + "price": 2100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A peculiar stone that makes certain\\nspecies of POKéMON evolve.\\nIt is colored orange.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_EvoItem", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "THUNDERSTONE", + "itemId": "ITEM_THUNDER_STONE", + "price": 2100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A peculiar stone that makes certain\\nspecies of POKéMON evolve.\\nIt has a thunderbolt pattern.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_EvoItem", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "WATER STONE", + "itemId": "ITEM_WATER_STONE", + "price": 2100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A peculiar stone that makes certain\\nspecies of POKéMON evolve.\\nIt is a clear light blue.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_EvoItem", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LEAF STONE", + "itemId": "ITEM_LEAF_STONE", + "price": 2100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A peculiar stone that makes certain\\nspecies of POKéMON evolve.\\nIt has a leaf pattern.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 1, + "fieldUseFunc": "FieldUseFunc_EvoItem", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "TINYMUSHROOM", + "itemId": "ITEM_TINY_MUSHROOM", + "price": 500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A small and rare mushroom.\\nIt is quite popular among certain\\npeople.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BIG MUSHROOM", + "itemId": "ITEM_BIG_MUSHROOM", + "price": 5000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A large and rare mushroom.\\nIt is very popular among certain\\npeople.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "PEARL", + "itemId": "ITEM_PEARL", + "price": 1400, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A relatively small pearl that\\nsparkles in a pretty silver color.\\nIt can be sold cheaply.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BIG PEARL", + "itemId": "ITEM_BIG_PEARL", + "price": 7500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A quite-large pearl that sparkles\\nin a pretty silver color.\\nIt can be sold at a high price.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "STARDUST", + "itemId": "ITEM_STARDUST", + "price": 2000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A pretty red sand with a loose,\\nsilky feel.\\nIt can be sold at a high price.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "STAR PIECE", + "itemId": "ITEM_STAR_PIECE", + "price": 9800, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A shard of a pretty gem that\\nsparkles in a red color.\\nIt can be sold at a high price.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "NUGGET", + "itemId": "ITEM_NUGGET", + "price": 10000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A nugget of pure gold that gives\\noff a lustrous gleam.\\nIt can be sold at a high price.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "HEART SCALE", + "itemId": "ITEM_HEART_SCALE", + "price": 100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A pretty, heart-shaped scale that\\nis extremely rare. It glows faintly\\nin the colors of a rainbow.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "ORANGE MAIL", + "itemId": "ITEM_ORANGE_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a cute\\nZIGZAGOON print.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "HARBOR MAIL", + "itemId": "ITEM_HARBOR_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a cute\\nWINGULL print.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 1 + }, + { + "english": "GLITTER MAIL", + "itemId": "ITEM_GLITTER_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a cute\\nPIKACHU print.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 2 + }, + { + "english": "MECH MAIL", + "itemId": "ITEM_MECH_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a cute\\nMAGNEMITE print.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 3 + }, + { + "english": "WOOD MAIL", + "itemId": "ITEM_WOOD_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a cute\\nSLAKOTH print.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 4 + }, + { + "english": "WAVE MAIL", + "itemId": "ITEM_WAVE_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a cute\\nWAILMER print.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 5 + }, + { + "english": "BEAD MAIL", + "itemId": "ITEM_BEAD_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL to be held by a\\nPOKéMON. It will bear the print of\\nthe POKéMON holding it.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 6 + }, + { + "english": "SHADOW MAIL", + "itemId": "ITEM_SHADOW_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a cute\\nDUSKULL print.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 7 + }, + { + "english": "TROPIC MAIL", + "itemId": "ITEM_TROPIC_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a cute\\nBELLOSSOM print.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 8 + }, + { + "english": "DREAM MAIL", + "itemId": "ITEM_DREAM_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL to be held by a\\nPOKéMON. It will bear the print of\\nthe POKéMON holding it.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 9 + }, + { + "english": "FAB MAIL", + "itemId": "ITEM_FAB_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a\\ngorgeous, extravagant print.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 10 + }, + { + "english": "RETRO MAIL", + "itemId": "ITEM_RETRO_MAIL", + "price": 50, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of MAIL featuring a print\\nof three cute POKéMON.\\nIt is to be held by a POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 0, + "fieldUseFunc": "FieldUseFunc_OrangeMail", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 11 + }, + { + "english": "CHERI BERRY", + "itemId": "ITEM_CHERI_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CURE_PAR", + "holdEffectParam": 0, + "description_english": "When held by a POKéMON, it will be\\nused in battle to heal paralysis.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "CHESTO BERRY", + "itemId": "ITEM_CHESTO_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CURE_SLP", + "holdEffectParam": 0, + "description_english": "When held by a POKéMON, it will be\\nused in battle to wake up.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "PECHA BERRY", + "itemId": "ITEM_PECHA_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CURE_PSN", + "holdEffectParam": 0, + "description_english": "When held by a POKéMON, it will be\\nused in battle to cure poison.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "RAWST BERRY", + "itemId": "ITEM_RAWST_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CURE_BRN", + "holdEffectParam": 0, + "description_english": "When held by a POKéMON, it will be\\nused in battle to heal a burn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "ASPEAR BERRY", + "itemId": "ITEM_ASPEAR_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CURE_FRZ", + "holdEffectParam": 0, + "description_english": "When held by a POKéMON, it will be\\nused in battle for defrosting.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "LEPPA BERRY", + "itemId": "ITEM_LEPPA_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_RESTORE_PP", + "holdEffectParam": 10, + "description_english": "When held by a POKéMON, it will be\\nused in battle to restore 10 PP.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Ether", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Ether", + "secondaryId": 0 + }, + { + "english": "ORAN BERRY", + "itemId": "ITEM_ORAN_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_RESTORE_HP", + "holdEffectParam": 10, + "description_english": "When held by a POKéMON, it will be\\nused in battle to restore 10 HP.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "PERSIM BERRY", + "itemId": "ITEM_PERSIM_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CURE_CONFUSION", + "holdEffectParam": 0, + "description_english": "When held by a POKéMON, it will be\\nused in battle to lift confusion.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "LUM BERRY", + "itemId": "ITEM_LUM_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CURE_STATUS", + "holdEffectParam": 0, + "description_english": "When held by a POKéMON, it will be\\nused in battle to heal any problem.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "SITRUS BERRY", + "itemId": "ITEM_SITRUS_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_RESTORE_HP", + "holdEffectParam": 30, + "description_english": "When held by a POKéMON, it will be\\nused in battle to restore 30 HP.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 1, + "fieldUseFunc": "FieldUseFunc_Medicine", + "battleUsage": 1, + "battleUseFunc": "BattleUseFunc_Medicine", + "secondaryId": 0 + }, + { + "english": "FIGY BERRY", + "itemId": "ITEM_FIGY_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CONFUSE_SPICY", + "holdEffectParam": 8, + "description_english": "A hold item that restores HP but\\nmay cause confusion when used.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "WIKI BERRY", + "itemId": "ITEM_WIKI_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CONFUSE_DRY", + "holdEffectParam": 8, + "description_english": "A hold item that restores HP but\\nmay cause confusion when used.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MAGO BERRY", + "itemId": "ITEM_MAGO_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CONFUSE_SWEET", + "holdEffectParam": 8, + "description_english": "A hold item that restores HP but\\nmay cause confusion when used.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "AGUAV BERRY", + "itemId": "ITEM_AGUAV_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CONFUSE_BITTER", + "holdEffectParam": 8, + "description_english": "A hold item that restores HP but\\nmay cause confusion when used.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "IAPAPA BERRY", + "itemId": "ITEM_IAPAPA_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CONFUSE_SOUR", + "holdEffectParam": 8, + "description_english": "A hold item that restores HP but\\nmay cause confusion when used.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RAZZ BERRY", + "itemId": "ITEM_RAZZ_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BLUK BERRY", + "itemId": "ITEM_BLUK_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "NANAB BERRY", + "itemId": "ITEM_NANAB_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "WEPEAR BERRY", + "itemId": "ITEM_WEPEAR_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "PINAP BERRY", + "itemId": "ITEM_PINAP_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "POMEG BERRY", + "itemId": "ITEM_POMEG_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "KELPSY BERRY", + "itemId": "ITEM_KELPSY_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "QUALOT BERRY", + "itemId": "ITEM_QUALOT_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "HONDEW BERRY", + "itemId": "ITEM_HONDEW_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "GREPA BERRY", + "itemId": "ITEM_GREPA_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "TAMATO BERRY", + "itemId": "ITEM_TAMATO_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "CORNN BERRY", + "itemId": "ITEM_CORNN_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MAGOST BERRY", + "itemId": "ITEM_MAGOST_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RABUTA BERRY", + "itemId": "ITEM_RABUTA_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "NOMEL BERRY", + "itemId": "ITEM_NOMEL_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SPELON BERRY", + "itemId": "ITEM_SPELON_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "PAMTRE BERRY", + "itemId": "ITEM_PAMTRE_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "WATMEL BERRY", + "itemId": "ITEM_WATMEL_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "DURIN BERRY", + "itemId": "ITEM_DURIN_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BELUE BERRY", + "itemId": "ITEM_BELUE_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LIECHI BERRY", + "itemId": "ITEM_LIECHI_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_ATTACK_UP", + "holdEffectParam": 4, + "description_english": "When held by a POKéMON, it raises\\nthe ATTACK stat in a pinch.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "GANLON BERRY", + "itemId": "ITEM_GANLON_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_DEFENSE_UP", + "holdEffectParam": 4, + "description_english": "When held by a POKéMON, it raises\\nthe DEFENSE stat in a pinch.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SALAC BERRY", + "itemId": "ITEM_SALAC_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_SPEED_UP", + "holdEffectParam": 4, + "description_english": "When held by a POKéMON, it raises\\nthe SPEED stat in a pinch.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "PETAYA BERRY", + "itemId": "ITEM_PETAYA_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_SP_ATTACK_UP", + "holdEffectParam": 4, + "description_english": "When held by a POKéMON, it raises\\nthe SP. ATK stat in a pinch.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "APICOT BERRY", + "itemId": "ITEM_APICOT_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_SP_DEFENSE_UP", + "holdEffectParam": 4, + "description_english": "When held by a POKéMON, it raises\\nthe SP. DEF stat in a pinch.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LANSAT BERRY", + "itemId": "ITEM_LANSAT_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_CRITICAL_UP", + "holdEffectParam": 4, + "description_english": "When held by a POKéMON, it raises\\nthe critical-hit ratio in a pinch.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "STARF BERRY", + "itemId": "ITEM_STARF_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_RANDOM_STAT_UP", + "holdEffectParam": 4, + "description_english": "When held by a POKéMON, it sharply\\nraises one stat in a pinch.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "ENIGMA BERRY", + "itemId": "ITEM_ENIGMA_BERRY", + "price": 20, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Can be ground up into a powder as\\nan ingredient for medicine.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_BERRY_POUCH", + "type": 4, + "fieldUseFunc": "ItemUseOutOfBattle_EnigmaBerry", + "battleUsage": 1, + "battleUseFunc": "ItemUseInBattle_EnigmaBerry", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BRIGHTPOWDER", + "itemId": "ITEM_BRIGHT_POWDER", + "price": 10, + "holdEffect": "HOLD_EFFECT_EVASION_UP", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nIt casts a tricky glare that lowers\\nthe opponent's accuracy.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "WHITE HERB", + "itemId": "ITEM_WHITE_HERB", + "price": 100, + "holdEffect": "HOLD_EFFECT_RESTORE_STATS", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt restores any lowered stat in\\nbattle. It can be used only once.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MACHO BRACE", + "itemId": "ITEM_MACHO_BRACE", + "price": 3000, + "holdEffect": "HOLD_EFFECT_MACHO_BRACE", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt promotes strong growth but\\nlowers SPEED while it is held.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "EXP. SHARE", + "itemId": "ITEM_EXP_SHARE", + "price": 3000, + "holdEffect": "HOLD_EFFECT_EXP_SHARE", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nThe holder gets a share of EXP.\\npoints without having to battle.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "QUICK CLAW", + "itemId": "ITEM_QUICK_CLAW", + "price": 100, + "holdEffect": "HOLD_EFFECT_QUICK_CLAW", + "holdEffectParam": 20, + "description_english": "An item to be held by a POKéMON.\\nA light and sharp claw. The holder\\nmay be able to strike first.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SOOTHE BELL", + "itemId": "ITEM_SOOTHE_BELL", + "price": 100, + "holdEffect": "HOLD_EFFECT_HAPPINESS_UP", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nA bell with a comforting chime that\\nmakes the holder calm and friendly.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MENTAL HERB", + "itemId": "ITEM_MENTAL_HERB", + "price": 100, + "holdEffect": "HOLD_EFFECT_CURE_ATTRACT", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt snaps the holder out of\\ninfatuation. It can be used once.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "CHOICE BAND", + "itemId": "ITEM_CHOICE_BAND", + "price": 100, + "holdEffect": "HOLD_EFFECT_CHOICE_BAND", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt powers up one move, which\\nbecomes the only usable one.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "KING'S ROCK", + "itemId": "ITEM_KINGS_ROCK", + "price": 100, + "holdEffect": "HOLD_EFFECT_FLINCH", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nIt may cause the foe to flinch\\nupon taking damage.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SILVERPOWDER", + "itemId": "ITEM_SILVER_POWDER", + "price": 100, + "holdEffect": "HOLD_EFFECT_BUG_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA shiny silver powder that boosts\\nthe power of BUG-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "AMULET COIN", + "itemId": "ITEM_AMULET_COIN", + "price": 100, + "holdEffect": "HOLD_EFFECT_DOUBLE_PRIZE", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nIt doubles the battle money if the\\nholding POKéMON takes part.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "CLEANSE TAG", + "itemId": "ITEM_CLEANSE_TAG", + "price": 200, + "holdEffect": "HOLD_EFFECT_REPEL", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt repels wild POKéMON if the\\nholder is first in the party.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SOUL DEW", + "itemId": "ITEM_SOUL_DEW", + "price": 200, + "holdEffect": "HOLD_EFFECT_SOUL_DEW", + "holdEffectParam": 0, + "description_english": "An orb to be held by a LATIOS or\\nLATIAS. It raises the SP. ATK\\nand SP. DEF stats.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "DEEPSEATOOTH", + "itemId": "ITEM_DEEP_SEA_TOOTH", + "price": 200, + "holdEffect": "HOLD_EFFECT_DEEP_SEA_TOOTH", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nA fang that gleams a sharp silver.\\nIt raises the SP. ATK stat.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "DEEPSEASCALE", + "itemId": "ITEM_DEEP_SEA_SCALE", + "price": 200, + "holdEffect": "HOLD_EFFECT_DEEP_SEA_SCALE", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nA scale that shines a faint pink.\\nIt raises the SP. DEF stat.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SMOKE BALL", + "itemId": "ITEM_SMOKE_BALL", + "price": 200, + "holdEffect": "HOLD_EFFECT_CAN_ALWAYS_RUN", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nThe holding POKéMON can flee from\\nany wild POKéMON for sure.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "EVERSTONE", + "itemId": "ITEM_EVERSTONE", + "price": 200, + "holdEffect": "HOLD_EFFECT_PREVENT_EVOLVE", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nThe holding POKéMON is prevented\\nfrom evolving.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "FOCUS BAND", + "itemId": "ITEM_FOCUS_BAND", + "price": 200, + "holdEffect": "HOLD_EFFECT_FOCUS_BAND", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nThe holding POKéMON may endure an\\nattack, leaving just 1 HP.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LUCKY EGG", + "itemId": "ITEM_LUCKY_EGG", + "price": 200, + "holdEffect": "HOLD_EFFECT_LUCKY_EGG", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nAn egg filled with happiness that\\nearns extra EXP. points in battle.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SCOPE LENS", + "itemId": "ITEM_SCOPE_LENS", + "price": 200, + "holdEffect": "HOLD_EFFECT_SCOPE_LENS", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nA lens that boosts the critical-hit\\nratio of the holding POKéMON.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "METAL COAT", + "itemId": "ITEM_METAL_COAT", + "price": 100, + "holdEffect": "HOLD_EFFECT_STEEL_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA special metallic film that boosts\\nthe power of STEEL-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LEFTOVERS", + "itemId": "ITEM_LEFTOVERS", + "price": 200, + "holdEffect": "HOLD_EFFECT_LEFTOVERS", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nThe holding POKéMON gradually\\nregains HP during battle.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "DRAGON SCALE", + "itemId": "ITEM_DRAGON_SCALE", + "price": 2100, + "holdEffect": "HOLD_EFFECT_DRAGON_SCALE", + "holdEffectParam": 10, + "description_english": "A thick and tough scale.\\nA DRAGON-type POKéMON may be\\nholding it.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LIGHT BALL", + "itemId": "ITEM_LIGHT_BALL", + "price": 100, + "holdEffect": "HOLD_EFFECT_LIGHT_BALL", + "holdEffectParam": 0, + "description_english": "An orb to be held by a PIKACHU\\nthat raises the SP. ATK stat.\\nTouching it may cause a shock.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SOFT SAND", + "itemId": "ITEM_SOFT_SAND", + "price": 100, + "holdEffect": "HOLD_EFFECT_GROUND_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA loose, silky sand that boosts the\\npower of GROUND-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "HARD STONE", + "itemId": "ITEM_HARD_STONE", + "price": 100, + "holdEffect": "HOLD_EFFECT_ROCK_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nAn unbreakable stone that boosts\\nthe power of ROCK-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MIRACLE SEED", + "itemId": "ITEM_MIRACLE_SEED", + "price": 100, + "holdEffect": "HOLD_EFFECT_GRASS_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA seed imbued with life that boosts\\nthe power of GRASS-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BLACKGLASSES", + "itemId": "ITEM_BLACK_GLASSES", + "price": 100, + "holdEffect": "HOLD_EFFECT_DARK_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA shady-looking pair of glasses\\nthat boosts DARK-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BLACK BELT", + "itemId": "ITEM_BLACK_BELT", + "price": 100, + "holdEffect": "HOLD_EFFECT_FIGHTING_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA belt that boosts determination\\nand FIGHTING-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MAGNET", + "itemId": "ITEM_MAGNET", + "price": 100, + "holdEffect": "HOLD_EFFECT_ELECTRIC_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA powerful magnet that boosts the\\npower of ELECTRIC-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MYSTIC WATER", + "itemId": "ITEM_MYSTIC_WATER", + "price": 100, + "holdEffect": "HOLD_EFFECT_WATER_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA teardrop-shaped gem that boosts\\nthe power of WATER-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SHARP BEAK", + "itemId": "ITEM_SHARP_BEAK", + "price": 100, + "holdEffect": "HOLD_EFFECT_FLYING_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA long, sharp beak that boosts the\\npower of FLYING-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "POISON BARB", + "itemId": "ITEM_POISON_BARB", + "price": 100, + "holdEffect": "HOLD_EFFECT_POISON_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA small, poisonous barb that boosts\\nthe power of POISON-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "NEVERMELTICE", + "itemId": "ITEM_NEVER_MELT_ICE", + "price": 100, + "holdEffect": "HOLD_EFFECT_ICE_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA piece of ice that repels heat\\nand boosts ICE-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SPELL TAG", + "itemId": "ITEM_SPELL_TAG", + "price": 100, + "holdEffect": "HOLD_EFFECT_GHOST_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA sinister, eerie tag that boosts\\nGHOST-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "TWISTEDSPOON", + "itemId": "ITEM_TWISTED_SPOON", + "price": 100, + "holdEffect": "HOLD_EFFECT_PSYCHIC_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA spoon imbued with telekinetic\\npower boosts PSYCHIC-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "CHARCOAL", + "itemId": "ITEM_CHARCOAL", + "price": 9800, + "holdEffect": "HOLD_EFFECT_FIRE_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA combustible fuel that boosts the\\npower of FIRE-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "DRAGON FANG", + "itemId": "ITEM_DRAGON_FANG", + "price": 100, + "holdEffect": "HOLD_EFFECT_DRAGON_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA hard and sharp fang that boosts\\nthe power of DRAGON-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SILK SCARF", + "itemId": "ITEM_SILK_SCARF", + "price": 100, + "holdEffect": "HOLD_EFFECT_NORMAL_POWER", + "holdEffectParam": 10, + "description_english": "An item to be held by a POKéMON.\\nA sumptuous scarf that boosts the\\npower of NORMAL-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "UP-GRADE", + "itemId": "ITEM_UP_GRADE", + "price": 2100, + "holdEffect": "HOLD_EFFECT_UP_GRADE", + "holdEffectParam": 0, + "description_english": "A transparent device filled with all\\nsorts of data.\\nIt is made by SILPH CO.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SHELL BELL", + "itemId": "ITEM_SHELL_BELL", + "price": 200, + "holdEffect": "HOLD_EFFECT_SHELL_BELL", + "holdEffectParam": 8, + "description_english": "An item to be held by a POKéMON.\\nThe holding POKéMON regains some\\nHP upon striking the foe.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SEA INCENSE", + "itemId": "ITEM_SEA_INCENSE", + "price": 9600, + "holdEffect": "HOLD_EFFECT_WATER_POWER", + "holdEffectParam": 5, + "description_english": "An item to be held by a POKéMON.\\nIt slightly boosts the power of\\nWATER-type moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LAX INCENSE", + "itemId": "ITEM_LAX_INCENSE", + "price": 9600, + "holdEffect": "HOLD_EFFECT_EVASION_UP", + "holdEffectParam": 5, + "description_english": "An item to be held by a POKéMON.\\nIts tricky aroma slightly reduces\\nthe foe's accuracy.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LUCKY PUNCH", + "itemId": "ITEM_LUCKY_PUNCH", + "price": 10, + "holdEffect": "HOLD_EFFECT_LUCKY_PUNCH", + "holdEffectParam": 0, + "description_english": "A glove to be held by a CHANSEY.\\nIt raises CHANSEY's critical-hit\\nratio.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "METAL POWDER", + "itemId": "ITEM_METAL_POWDER", + "price": 10, + "holdEffect": "HOLD_EFFECT_METAL_POWDER", + "holdEffectParam": 0, + "description_english": "A fine, hard powder to be held by\\na DITTO.\\nIt raises DITTO's DEFENSE stat.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "THICK CLUB", + "itemId": "ITEM_THICK_CLUB", + "price": 500, + "holdEffect": "HOLD_EFFECT_THICK_CLUB", + "holdEffectParam": 0, + "description_english": "A hard bone of some sort to be\\nheld by a CUBONE or MAROWAK.\\nIt raises the ATTACK stat.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "STICK", + "itemId": "ITEM_STICK", + "price": 200, + "holdEffect": "HOLD_EFFECT_STICK", + "holdEffectParam": 0, + "description_english": "A stick of leek to be held by a\\nFARFETCH'D. It raises FARFETCH'D's\\ncritical-hit ratio.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RED SCARF", + "itemId": "ITEM_RED_SCARF", + "price": 100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt boosts the holding POKéMON's\\nCOOL condition in CONTESTS.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BLUE SCARF", + "itemId": "ITEM_BLUE_SCARF", + "price": 100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt boosts the holding POKéMON's\\nBEAUTY condition in CONTESTS.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "PINK SCARF", + "itemId": "ITEM_PINK_SCARF", + "price": 100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt boosts the holding POKéMON's\\nCUTE condition in CONTESTS.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "GREEN SCARF", + "itemId": "ITEM_GREEN_SCARF", + "price": 100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt boosts the holding POKéMON's\\nSMART condition in CONTESTS.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "YELLOW SCARF", + "itemId": "ITEM_YELLOW_SCARF", + "price": 100, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An item to be held by a POKéMON.\\nIt boosts the holding POKéMON's\\nTOUGH condition in CONTESTS.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MACH BIKE", + "itemId": "ITEM_MACH_BIKE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A folding bicycle that is at least\\ntwice as fast as walking.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 2, + "fieldUseFunc": "FieldUseFunc_MachBike", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "COIN CASE", + "itemId": "ITEM_COIN_CASE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A case for holding COINS obtained\\nat the GAME CORNER.\\nIt holds up to 9,999 COINS.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_CoinCase", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "ITEMFINDER", + "itemId": "ITEM_ITEMFINDER", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A device used for finding items.\\nIf there is a hidden item nearby\\nwhen it is used, it emits a signal.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 2, + "fieldUseFunc": "ItemUseOutOfBattle_Itemfinder", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "OLD ROD", + "itemId": "ITEM_OLD_ROD", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An old and beat-up fishing rod.\\nUse it by any body of water to \\nfish for wild POKéMON.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 2, + "fieldUseFunc": "FieldUseFunc_OldRod", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "GOOD ROD", + "itemId": "ITEM_GOOD_ROD", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A new, good-quality fishing rod.\\nUse it by any body of water to \\nfish for wild POKéMON.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 2, + "fieldUseFunc": "FieldUseFunc_OldRod", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 1 + }, + { + "english": "SUPER ROD", + "itemId": "ITEM_SUPER_ROD", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An awesome, high-tech fishing rod.\\nUse it by any body of water to fish\\nfor wild POKéMON.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 2, + "fieldUseFunc": "FieldUseFunc_OldRod", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 2 + }, + { + "english": "S.S. TICKET", + "itemId": "ITEM_SS_TICKET", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The ticket required for sailing on\\nthe ferry S.S. ANNE.\\nIt has a drawing of a ship on it.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "CONTEST PASS", + "itemId": "ITEM_CONTEST_PASS", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The pass required for entering\\nPOKéMON CONTESTS. It has a\\ndrawing of an award ribbon on it.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "WAILMER PAIL", + "itemId": "ITEM_WAILMER_PAIL", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A nifty watering pail.\\nUse it to promote strong growth in\\nBERRIES planted in soft soil.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "DEVON GOODS", + "itemId": "ITEM_DEVON_GOODS", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A package that contains mechanical\\nparts of some sort made by the\\nDEVON CORPORATION.", + "importance": 2, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SOOT SACK", + "itemId": "ITEM_SOOT_SACK", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A sack used to collect volcanic\\nash automatically during walks\\nover deep ash.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BASEMENT KEY", + "itemId": "ITEM_BASEMENT_KEY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The key to NEW MAUVILLE, which\\nwas constructed beneath MAUVILLE\\nCITY.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "ACRO BIKE", + "itemId": "ITEM_ACRO_BIKE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A folding bicycle that is capable\\nof stunts like jumps and wheelies.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 2, + "fieldUseFunc": "FieldUseFunc_MachBike", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 1 + }, + { + "english": "{POKEBLOCK} CASE", + "itemId": "ITEM_POKEBLOCK_CASE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A case for holding {POKEBLOCK}S made\\nwith a BERRY BLENDER. It releases\\none {POKEBLOCK} when shaken.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LETTER", + "itemId": "ITEM_LETTER", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An extremely important letter to\\nSTEVEN from the PRESIDENT of the\\nDEVON CORPORATION.", + "importance": 2, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "EON TICKET", + "itemId": "ITEM_EON_TICKET", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The ticket required for sailing on a\\nferry to a distant southern island.\\nIt features a drawing of an island.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 1 + }, + { + "english": "RED ORB", + "itemId": "ITEM_RED_ORB", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An orb that glows red.\\nIt is said to contain an incredible\\npower from ancient times.", + "importance": 2, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BLUE ORB", + "itemId": "ITEM_BLUE_ORB", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An orb that glows blue.\\nIt is said to contain an incredible\\npower from ancient times.", + "importance": 2, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SCANNER", + "itemId": "ITEM_SCANNER", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A device used to search for\\nlife-forms in water.\\nIt looks too difficult to use.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "GO-GOGGLES", + "itemId": "ITEM_GO_GOGGLES", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A pair of protective goggles.\\nThey enable a TRAINER to travel\\nthrough even desert sandstorms.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "METEORITE", + "itemId": "ITEM_METEORITE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A meteorite that fell from space\\nonto MT. MOON long ago.\\nIt is very lumpy and hard.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RM. 1 KEY", + "itemId": "ITEM_ROOM_1_KEY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A key that opens the door to Room\\n1 inside the ABANDONED SHIP.\\nIt is old and looks easily broken.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RM. 2 KEY", + "itemId": "ITEM_ROOM_2_KEY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A key that opens the door to Room\\n2 inside the ABANDONED SHIP.\\nIt is old and looks easily broken.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RM. 4 KEY", + "itemId": "ITEM_ROOM_4_KEY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A key that opens the door to Room\\n4 inside the ABANDONED SHIP.\\nIt is old and looks easily broken.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RM. 6 KEY", + "itemId": "ITEM_ROOM_6_KEY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A key that opens the door to Room\\n6 inside the ABANDONED SHIP.\\nIt is old and looks easily broken.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "STORAGE KEY", + "itemId": "ITEM_STORAGE_KEY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A key that opens the storage hold\\ninside the ABANDONED SHIP.\\nIt is old and looks easily broken.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "ROOT FOSSIL", + "itemId": "ITEM_ROOT_FOSSIL", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A fossil of an ancient, seafloor-\\ndwelling POKéMON. It appears to be\\npart of a plant root.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "CLAW FOSSIL", + "itemId": "ITEM_CLAW_FOSSIL", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A fossil of an ancient, seafloor-\\ndwelling POKéMON. It appears to be\\npart of a claw.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "DEVON SCOPE", + "itemId": "ITEM_DEVON_SCOPE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A scope that signals the presence\\nof any unseeable POKéMON.\\nIt is made by the DEVON CORP.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "TM01", + "itemId": "ITEM_TM01", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An extremely powerful attack.\\nHowever, if the user is hit before\\nusing the move, they will flinch.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "FocusPunch" + }, + { + "english": "TM02", + "itemId": "ITEM_TM02", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Sharp, huge claws hook and slash\\nthe foe quickly and with great\\npower.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "DragonClaw" + }, + { + "english": "TM03", + "itemId": "ITEM_TM03", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The foe is hit with a pulsing blast\\nof water. It may also confuse the\\ntarget.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "WaterPulse" + }, + { + "english": "TM04", + "itemId": "ITEM_TM04", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The user calms its spirit and\\nfocuses its mind to raise its\\nSP. ATK and SP. DEF stats.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "CalmMind" + }, + { + "english": "TM05", + "itemId": "ITEM_TM05", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A savage roar that causes the foe\\nto switch out of battle. In the\\nwild, ROAR ends the battle.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Roar" + }, + { + "english": "TM06", + "itemId": "ITEM_TM06", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A move that leaves the foe badly\\npoisoned. Its poison damage worsens\\nevery turn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Toxic" + }, + { + "english": "TM07", + "itemId": "ITEM_TM07", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Summons a hailstorm that lasts for\\nfive turns. The hailstorm damages\\nall types except the ICE type.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Hail" + }, + { + "english": "TM08", + "itemId": "ITEM_TM08", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The user tightens all its muscles\\nand bulks up, boosting both its\\nATTACK and DEFENSE stats.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "BulkUp" + }, + { + "english": "TM09", + "itemId": "ITEM_TM09", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The user shoots seeds at the foe\\nin rapid succession. Two to five\\nseeds are shot at once.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "BulletSeed" + }, + { + "english": "TM10", + "itemId": "ITEM_TM10", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A variable move that changes type\\nand power depending on the POKéMON\\nusing it.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "HiddenPower" + }, + { + "english": "TM11", + "itemId": "ITEM_TM11", + "price": 2000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The weather is turned sunny for\\nfive turns. Over that time, FIRE-\\ntype moves are powered up.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "SunnyDay" + }, + { + "english": "TM12", + "itemId": "ITEM_TM12", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A taunted foe may become enraged.\\nIt will then only be able to use\\nattack moves.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Taunt" + }, + { + "english": "TM13", + "itemId": "ITEM_TM13", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An icy-cold beam is shot at the\\nfoe. It may leave the target\\nfrozen.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "IceBeam" + }, + { + "english": "TM14", + "itemId": "ITEM_TM14", + "price": 5500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A vicious snow-and-wind attack that\\nstrikes all foes in battle. It may\\ncause freezing.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Blizzard" + }, + { + "english": "TM15", + "itemId": "ITEM_TM15", + "price": 7500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A harsh attack that inflicts severe\\ndamage on the foe. However, the\\nuser must rest the next turn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "HyperBeam" + }, + { + "english": "TM16", + "itemId": "ITEM_TM16", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A wall of light is created over\\nfive turns. It reduces damage from\\nSP. ATK attacks.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "LightScreen" + }, + { + "english": "TM17", + "itemId": "ITEM_TM17", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The user is completely protected\\nfrom attack in the turn it is used.\\nIt may fail if used in succession.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Protect" + }, + { + "english": "TM18", + "itemId": "ITEM_TM18", + "price": 2000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A heavy rain is summoned for five\\nturns. Over that time, WATER-type\\nmoves are powered up.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "RainDance" + }, + { + "english": "TM19", + "itemId": "ITEM_TM19", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The user strikes the foe with\\ntentacles or roots, stealing the\\ntarget's HP and healing itself.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "GigaDrain" + }, + { + "english": "TM20", + "itemId": "ITEM_TM20", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Protects the party with a shield\\nagainst all status problems over\\nfive turns.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Safeguard" + }, + { + "english": "TM21", + "itemId": "ITEM_TM21", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "This attack move grows more\\npowerful the more the POKéMON\\ndislikes its TRAINER.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Frustration" + }, + { + "english": "TM22", + "itemId": "ITEM_TM22", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A 2-turn attack that uses the first\\nturn for absorbing sunlight, then\\nblasting the foe in the next turn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "SolarBeam" + }, + { + "english": "TM23", + "itemId": "ITEM_TM23", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The foe is slammed with a sturdy\\ntail of steel. It may lower the\\ntarget's DEFENSE stat.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "IronTail" + }, + { + "english": "TM24", + "itemId": "ITEM_TM24", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A massive jolt of electricity is\\nlaunched at the foe. It may cause\\nparalysis.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Thunderbolt" + }, + { + "english": "TM25", + "itemId": "ITEM_TM25", + "price": 5500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Strikes the foe with a huge\\nthunderbolt. It may cause\\nparalysis.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Thunder" + }, + { + "english": "TM26", + "itemId": "ITEM_TM26", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Causes an earthquake that strikes\\nall POKéMON in battle, excluding\\nthe user.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Earthquake" + }, + { + "english": "TM27", + "itemId": "ITEM_TM27", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "This attack move grows more\\npowerful the more the POKéMON\\nlikes its TRAINER.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Return" + }, + { + "english": "TM28", + "itemId": "ITEM_TM28", + "price": 2000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A 2-turn attack in which the user\\ndigs underground, then strikes.\\nIt can be used to exit dungeons.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Dig" + }, + { + "english": "TM29", + "itemId": "ITEM_TM29", + "price": 2000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A powerful blast of telekinetic\\nenergy strikes the foe. It may\\nlower the target's SP. DEF stat.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Psychic" + }, + { + "english": "TM30", + "itemId": "ITEM_TM30", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The foe is attacked with a shadowy\\nlump. It may lower the target's\\nSP. DEF stat.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "ShadowBall" + }, + { + "english": "TM31", + "itemId": "ITEM_TM31", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Strikes the foe with a rock-hard\\nfist, etc. It shatters barriers such\\nas REFLECT and LIGHT SCREEN.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "BrickBreak" + }, + { + "english": "TM32", + "itemId": "ITEM_TM32", + "price": 2000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The user begins moving so quickly\\nthat it creates illusory copies to\\nraise its evasiveness.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "DoubleTeam" + }, + { + "english": "TM33", + "itemId": "ITEM_TM33", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A tough barrier is put up over five\\nturns. It reduces damage from\\nphysical attacks over that time.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Reflect" + }, + { + "english": "TM34", + "itemId": "ITEM_TM34", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A rapid jolt of electricity strikes\\nthe foe. This attack is impossible\\nto evade.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "ShockWave" + }, + { + "english": "TM35", + "itemId": "ITEM_TM35", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The foe is roasted with a heavy\\nblast of fire. It may leave the\\ntarget with a burn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Flamethrower" + }, + { + "english": "TM36", + "itemId": "ITEM_TM36", + "price": 1000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Toxic sludge is hurled at the foe\\nwith great force. It may also\\npoison the target.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "SludgeBomb" + }, + { + "english": "TM37", + "itemId": "ITEM_TM37", + "price": 2000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Summons a sandstorm that lasts for\\nfive turns. It damages all types\\nexcept ROCK, GROUND, and STEEL.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Sandstorm" + }, + { + "english": "TM38", + "itemId": "ITEM_TM38", + "price": 5500, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The foe is incinerated with an\\nintense flame. It may leave the\\ntarget with a burn.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "FireBlast" + }, + { + "english": "TM39", + "itemId": "ITEM_TM39", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Boulders are hurled at the foe.\\nIt also lowers the target's SPEED\\nstat if it hits.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "RockTomb" + }, + { + "english": "TM40", + "itemId": "ITEM_TM40", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An extremely fast attack against\\none target. It is impossible to\\nevade.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "AerialAce" + }, + { + "english": "TM41", + "itemId": "ITEM_TM41", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "If enraged by this move, the target\\nbecomes incapable of using the same\\nmove twice in a row.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Torment" + }, + { + "english": "TM42", + "itemId": "ITEM_TM42", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An attack move that becomes very\\npowerful if the user is poisoned,\\nburned, or paralyzed.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Facade" + }, + { + "english": "TM43", + "itemId": "ITEM_TM43", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An attack move that may have an\\nadditional effect depending on the\\nbattle terrain.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "SecretPower" + }, + { + "english": "TM44", + "itemId": "ITEM_TM44", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A move that makes the user fall\\nasleep over two turns to restore HP\\nand heal any status problems.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Rest" + }, + { + "english": "TM45", + "itemId": "ITEM_TM45", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The foe, if it is the opposite\\ngender as the user, becomes\\ninfatuated and may not attack.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Attract" + }, + { + "english": "TM46", + "itemId": "ITEM_TM46", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An attack that gives the user an\\nopportunity to steal the foe's hold\\nitem.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Thief" + }, + { + "english": "TM47", + "itemId": "ITEM_TM47", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The foe is struck with steel-hard\\nwings. It may also raise the user's\\nDEFENSE stat.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "SteelWing" + }, + { + "english": "TM48", + "itemId": "ITEM_TM48", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A special power is transmitted to\\nthe foe, causing it to switch\\nabilities with the user.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "SkillSwap" + }, + { + "english": "TM49", + "itemId": "ITEM_TM49", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A move that steals the effects of\\nany status-changing or healing move\\nthat the foe tries to use.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Snatch" + }, + { + "english": "TM50", + "itemId": "ITEM_TM50", + "price": 3000, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A maximum-power attack of great\\nferocity, but one that also sharply\\nreduces the user's SP. ATK stat.", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Overheat" + }, + { + "english": "HM01", + "itemId": "ITEM_HM01", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Attacks the foe with sharp blades\\nor claws. It can also cut down thin\\ntrees and grass outside of battle.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Cut" + }, + { + "english": "HM02", + "itemId": "ITEM_HM02", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The user flies up on the first turn,\\nthen attacks next turn. It can be\\nused to fly to any known town.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Fly" + }, + { + "english": "HM03", + "itemId": "ITEM_HM03", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Creates a huge wave, then crashes\\nit down on the foe. It can be used\\nfor traveling on water.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Surf" + }, + { + "english": "HM04", + "itemId": "ITEM_HM04", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The user builds enormous power,\\nthen slams the foe. It can be used\\nfor moving large, round boulders.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Strength" + }, + { + "english": "HM05", + "itemId": "ITEM_HM05", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Looses a powerful blast of light\\nthat reduces the foe's accuracy.\\nIt also lights up dark caves.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Flash" + }, + { + "english": "HM06", + "itemId": "ITEM_HM06", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Hits the foe with a rock-crushingly\\ntough attack. It can smash cracked\\nboulders.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "RockSmash" + }, + { + "english": "HM07", + "itemId": "ITEM_HM07", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A powerful charge attack. It can\\nbe used for climbing a torrential\\nwaterfall.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Waterfall" + }, + { + "english": "HM08", + "itemId": "ITEM_HM08", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A 2-turn attack in which the user\\ndives underwater on the first turn,\\nthen strikes in the next turn.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_TM_CASE", + "type": 1, + "fieldUseFunc": "NULL", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0, + "moveId": "Dive" + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "????????", + "itemId": "ITEM_NONE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "?????", + "importance": 0, + "exitsBagOnUse": 0, + "pocket": "POCKET_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "OAK'S PARCEL", + "itemId": "ITEM_OAKS_PARCEL", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A parcel to be delivered to PROF.\\nOAK from VIRIDIAN CITY's POKéMON\\nMART.", + "importance": 2, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "POK\u00e9 FLUTE", + "itemId": "ITEM_POKE_FLUTE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A flute that is said to instantly\\nawaken any POKéMON. It has a\\nlovely tone.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_PokeFlute", + "battleUsage": 2, + "battleUseFunc": "BattleUseFunc_PokeFlute", + "secondaryId": 0 + }, + { + "english": "SECRET KEY", + "itemId": "ITEM_SECRET_KEY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "The key to CINNABAR ISLAND GYM's\\nfront door. It is colored red and\\ndecorated.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BIKE VOUCHER", + "itemId": "ITEM_BIKE_VOUCHER", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "Take this voucher to the BIKE SHOP\\nin CERULEAN CITY and exchange it\\nfor a bicycle.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "GOLD TEETH", + "itemId": "ITEM_GOLD_TEETH", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A set of false teeth lost by the\\nSAFARI ZONE'S WARDEN. It makes his\\nsmile sparkle.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "OLD AMBER", + "itemId": "ITEM_OLD_AMBER", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A piece of amber that contains\\nthe genes of an ancient POKéMON.\\nIt is clear with a reddish tint.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "CARD KEY", + "itemId": "ITEM_CARD_KEY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A card-type key that unlocks doors\\nin SILPH CO.'s HEAD OFFICE in\\nSAFFRON CITY.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "LIFT KEY", + "itemId": "ITEM_LIFT_KEY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A key that operates the elevator\\nin TEAM ROCKET's HIDEOUT.\\nIt bears the TEAM ROCKET logo.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "HELIX FOSSIL", + "itemId": "ITEM_HELIX_FOSSIL", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A fossil of an ancient, seafloor-\\ndwelling POKéMON. It appears to be\\npart of a seashell.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "DOME FOSSIL", + "itemId": "ITEM_DOME_FOSSIL", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A fossil of an ancient, seafloor-\\ndwelling POKéMON. It appears to be\\npart of a shell.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SILPH SCOPE", + "itemId": "ITEM_SILPH_SCOPE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A scope that makes unseeable\\nPOKéMON visible.\\nIt is made by SILPH CO.", + "importance": 1, + "exitsBagOnUse": 0, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BICYCLE", + "itemId": "ITEM_BICYCLE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A folding bicycle that allows\\nfaster movement than the RUNNING\\nSHOES.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 2, + "fieldUseFunc": "FieldUseFunc_MachBike", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "TOWN MAP", + "itemId": "ITEM_TOWN_MAP", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A very convenient map that can be\\nviewed anytime. It even shows your \\npresent location.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_TownMap", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "VS SEEKER", + "itemId": "ITEM_VS_SEEKER", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A device that indicates TRAINERS\\nwho want to battle. The battery\\ncharges while traveling.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 2, + "fieldUseFunc": "FieldUseFunc_VsSeeker", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "FAME CHECKER", + "itemId": "ITEM_FAME_CHECKER", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A device that enables you to\\nrecall what you've heard and seen\\nabout famous people.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_FameChecker", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "TM CASE", + "itemId": "ITEM_TM_CASE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A case that holds TMs and HMs.\\nIt is attached to the BAG's\\ncompartment for important items.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_TmCase", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "BERRY POUCH", + "itemId": "ITEM_BERRY_POUCH", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A pouch for carrying BERRIES.\\nIt is attached to the BAG's\\ncompartment for important items.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_BerryPouch", + "battleUsage": 3, + "battleUseFunc": "BattleUseFunc_BerryPouch", + "secondaryId": 0 + }, + { + "english": "TEACHY TV", + "itemId": "ITEM_TEACHY_TV", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A television set that is tuned to\\na program with useful tips for\\nnovice TRAINERS.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 2, + "fieldUseFunc": "FieldUseFunc_TeachyTv", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "TRI-PASS", + "itemId": "ITEM_TRI_PASS", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A pass for ferries between ONE,\\nTWO, and THREE ISLAND.\\nIt has a drawing of three islands.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RAINBOW PASS", + "itemId": "ITEM_RAINBOW_PASS", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A pass for ferries between\\nVERMILION and the SEVII ISLANDS.\\nIt features a drawing of a rainbow.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "TEA", + "itemId": "ITEM_TEA", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An aromatic tea prepared by an old\\nlady. It will slake even the worst\\nthirst.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "MYSTICTICKET", + "itemId": "ITEM_MYSTIC_TICKET", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A ticket required to board the ship\\nto NAVEL ROCK.\\nIt glows with a mystic light.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "AURORATICKET", + "itemId": "ITEM_AURORA_TICKET", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A ticket required to board the ship\\nto BIRTH ISLAND.\\nIt glows beautifully.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "POWDER JAR", + "itemId": "ITEM_POWDER_JAR", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "A jar for storing BERRY POWDER\\nmade using a BERRY CRUSHER.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_PowderJar", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "RUBY", + "itemId": "ITEM_RUBY", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An exquisitely beautiful gem that\\nhas a red glow.\\nIt symbolizes passion.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + }, + { + "english": "SAPPHIRE", + "itemId": "ITEM_SAPPHIRE", + "price": 0, + "holdEffect": "HOLD_EFFECT_NONE", + "holdEffectParam": 0, + "description_english": "An exquisitely beautiful gem that\\nhas a blue glow.\\nIt symbolizes honesty.", + "importance": 1, + "exitsBagOnUse": 1, + "pocket": "POCKET_KEY_ITEMS", + "type": 4, + "fieldUseFunc": "FieldUseFunc_OakStopsYou", + "battleUsage": 0, + "battleUseFunc": "NULL", + "secondaryId": 0 + } + ] +} \ No newline at end of file diff --git a/src/data/items.json.txt b/src/data/items.json.txt new file mode 100644 index 000000000..0daa783aa --- /dev/null +++ b/src/data/items.json.txt @@ -0,0 +1,31 @@ +{{ doNotModifyHeader }} +## for item in items +## if item.pocket == "POCKET_TM_CASE" +extern const u8 gMoveDescription_{{ item.moveId }}[]; +## endif +{% if item.itemId != "ITEM_NONE" %}const u8 gItemDescription_{{ item.itemId }}[] = _("{{ item.description_english }}");{% endif %} +## endfor +const u8 gItemDescription_ITEM_NONE[] = _("?????"); + +const struct Item gItems[] = { + {% for item in items %}{ + .name = _("{{ item.english }}"), + .itemId = {{ item.itemId }}, + .price = {{ item.price }}, + .holdEffect = {{ item.holdEffect }}, + .holdEffectParam = {{ item.holdEffectParam }}, +## if item.pocket == "POCKET_TM_CASE" + .description = gMoveDescription_{{ item.moveId }}, +## else + .description = gItemDescription_{{ item.itemId }}, +## endif + .importance = {{ item.importance }}, + .exitsBagOnUse = {{ item.exitsBagOnUse }}, + .pocket = {{ item.pocket }}, + .type = {{ item.type }}, + .fieldUseFunc = {{ item.fieldUseFunc }}, + .battleUsage = {{ item.battleUsage }}, + .battleUseFunc = {{ item.battleUseFunc }}, + .secondaryId = {{ item.secondaryId }} + }, {% endfor %} +}; diff --git a/src/data/pokemon/egg_moves.h b/src/data/pokemon/egg_moves.h new file mode 100644 index 000000000..f8c250c6d --- /dev/null +++ b/src/data/pokemon/egg_moves.h @@ -0,0 +1,1310 @@ +#define EGG_MOVES_SPECIES_OFFSET 20000 +#define EGG_MOVES_TERMINATOR 0xFFFF +#define egg_moves(species, moves...) (SPECIES_##species + EGG_MOVES_SPECIES_OFFSET), moves + +const u16 gEggMoves[] = { + egg_moves(BULBASAUR, + MOVE_LIGHT_SCREEN, + MOVE_SKULL_BASH, + MOVE_SAFEGUARD, + MOVE_CHARM, + MOVE_PETAL_DANCE, + MOVE_MAGICAL_LEAF, + MOVE_GRASS_WHISTLE, + MOVE_CURSE), + + egg_moves(CHARMANDER, + MOVE_BELLY_DRUM, + MOVE_ANCIENT_POWER, + MOVE_ROCK_SLIDE, + MOVE_BITE, + MOVE_OUTRAGE, + MOVE_BEAT_UP, + MOVE_SWORDS_DANCE, + MOVE_DRAGON_DANCE), + + egg_moves(SQUIRTLE, + MOVE_MIRROR_COAT, + MOVE_HAZE, + MOVE_MIST, + MOVE_FORESIGHT, + MOVE_FLAIL, + MOVE_REFRESH, + MOVE_MUD_SPORT, + MOVE_YAWN), + + egg_moves(PIDGEY, + MOVE_PURSUIT, + MOVE_FAINT_ATTACK, + MOVE_FORESIGHT, + MOVE_STEEL_WING, + MOVE_AIR_CUTTER), + + egg_moves(RATTATA, + MOVE_SCREECH, + MOVE_FLAME_WHEEL, + MOVE_FURY_SWIPES, + MOVE_BITE, + MOVE_COUNTER, + MOVE_REVERSAL, + MOVE_UPROAR, + MOVE_SWAGGER), + + egg_moves(SPEAROW, + MOVE_FAINT_ATTACK, + MOVE_FALSE_SWIPE, + MOVE_SCARY_FACE, + MOVE_QUICK_ATTACK, + MOVE_TRI_ATTACK, + MOVE_ASTONISH, + MOVE_SKY_ATTACK), + + egg_moves(EKANS, + MOVE_PURSUIT, + MOVE_SLAM, + MOVE_SPITE, + MOVE_BEAT_UP, + MOVE_POISON_FANG), + + egg_moves(SANDSHREW, + MOVE_FLAIL, + MOVE_SAFEGUARD, + MOVE_COUNTER, + MOVE_RAPID_SPIN, + MOVE_ROCK_SLIDE, + MOVE_METAL_CLAW, + MOVE_SWORDS_DANCE, + MOVE_CRUSH_CLAW), + + egg_moves(NIDORAN_F, + MOVE_SUPERSONIC, + MOVE_DISABLE, + MOVE_TAKE_DOWN, + MOVE_FOCUS_ENERGY, + MOVE_CHARM, + MOVE_COUNTER, + MOVE_BEAT_UP), + + egg_moves(NIDORAN_M, + MOVE_COUNTER, + MOVE_DISABLE, + MOVE_SUPERSONIC, + MOVE_TAKE_DOWN, + MOVE_AMNESIA, + MOVE_CONFUSION, + MOVE_BEAT_UP), + + egg_moves(VULPIX, + MOVE_FAINT_ATTACK, + MOVE_HYPNOSIS, + MOVE_FLAIL, + MOVE_SPITE, + MOVE_DISABLE, + MOVE_HOWL, + MOVE_PSYCH_UP, + MOVE_HEAT_WAVE), + + egg_moves(ZUBAT, + MOVE_QUICK_ATTACK, + MOVE_PURSUIT, + MOVE_FAINT_ATTACK, + MOVE_GUST, + MOVE_WHIRLWIND, + MOVE_CURSE), + + egg_moves(ODDISH, + MOVE_SWORDS_DANCE, + MOVE_RAZOR_LEAF, + MOVE_FLAIL, + MOVE_SYNTHESIS, + MOVE_CHARM, + MOVE_INGRAIN), + + egg_moves(PARAS, + MOVE_FALSE_SWIPE, + MOVE_SCREECH, + MOVE_COUNTER, + MOVE_PSYBEAM, + MOVE_FLAIL, + MOVE_SWEET_SCENT, + MOVE_LIGHT_SCREEN, + MOVE_PURSUIT), + + egg_moves(VENONAT, + MOVE_BATON_PASS, + MOVE_SCREECH, + MOVE_GIGA_DRAIN, + MOVE_SIGNAL_BEAM), + + egg_moves(DIGLETT, + MOVE_FAINT_ATTACK, + MOVE_SCREECH, + MOVE_ANCIENT_POWER, + MOVE_PURSUIT, + MOVE_BEAT_UP, + MOVE_UPROAR, + MOVE_ROCK_SLIDE), + + egg_moves(MEOWTH, + MOVE_SPITE, + MOVE_CHARM, + MOVE_HYPNOSIS, + MOVE_AMNESIA, + MOVE_PSYCH_UP, + MOVE_ASSIST), + + egg_moves(PSYDUCK, + MOVE_HYPNOSIS, + MOVE_PSYBEAM, + MOVE_FORESIGHT, + MOVE_LIGHT_SCREEN, + MOVE_FUTURE_SIGHT, + MOVE_PSYCHIC, + MOVE_CROSS_CHOP, + MOVE_REFRESH), + + egg_moves(MANKEY, + MOVE_ROCK_SLIDE, + MOVE_FORESIGHT, + MOVE_MEDITATE, + MOVE_COUNTER, + MOVE_REVERSAL, + MOVE_BEAT_UP, + MOVE_REVENGE, + MOVE_SMELLING_SALT), + + egg_moves(GROWLITHE, + MOVE_BODY_SLAM, + MOVE_SAFEGUARD, + MOVE_CRUNCH, + MOVE_THRASH, + MOVE_FIRE_SPIN, + MOVE_HOWL, + MOVE_HEAT_WAVE), + + egg_moves(POLIWAG, + MOVE_MIST, + MOVE_SPLASH, + MOVE_BUBBLE_BEAM, + MOVE_HAZE, + MOVE_MIND_READER, + MOVE_WATER_SPORT, + MOVE_ICE_BALL), + + egg_moves(ABRA, + MOVE_ENCORE, + MOVE_BARRIER, + MOVE_KNOCK_OFF, + MOVE_FIRE_PUNCH, + MOVE_THUNDER_PUNCH, + MOVE_ICE_PUNCH), + + egg_moves(MACHOP, + MOVE_LIGHT_SCREEN, + MOVE_MEDITATE, + MOVE_ROLLING_KICK, + MOVE_ENCORE, + MOVE_SMELLING_SALT, + MOVE_COUNTER, + MOVE_ROCK_SLIDE), + + egg_moves(BELLSPROUT, + MOVE_SWORDS_DANCE, + MOVE_ENCORE, + MOVE_REFLECT, + MOVE_SYNTHESIS, + MOVE_LEECH_LIFE, + MOVE_INGRAIN, + MOVE_MAGICAL_LEAF), + + egg_moves(TENTACOOL, + MOVE_AURORA_BEAM, + MOVE_MIRROR_COAT, + MOVE_RAPID_SPIN, + MOVE_HAZE, + MOVE_SAFEGUARD, + MOVE_CONFUSE_RAY), + + egg_moves(GEODUDE, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_BLOCK), + + egg_moves(PONYTA, + MOVE_FLAME_WHEEL, + MOVE_THRASH, + MOVE_DOUBLE_KICK, + MOVE_HYPNOSIS, + MOVE_CHARM, + MOVE_DOUBLE_EDGE), + + egg_moves(SLOWPOKE, + MOVE_SAFEGUARD, + MOVE_BELLY_DRUM, + MOVE_FUTURE_SIGHT, + MOVE_STOMP, + MOVE_MUD_SPORT, + MOVE_SLEEP_TALK, + MOVE_SNORE), + + egg_moves(FARFETCHD, + MOVE_STEEL_WING, + MOVE_FORESIGHT, + MOVE_MIRROR_MOVE, + MOVE_GUST, + MOVE_QUICK_ATTACK, + MOVE_FLAIL, + MOVE_FEATHER_DANCE, + MOVE_CURSE), + + egg_moves(DODUO, + MOVE_QUICK_ATTACK, + MOVE_SUPERSONIC, + MOVE_HAZE, + MOVE_FAINT_ATTACK, + MOVE_FLAIL, + MOVE_ENDEAVOR), + + egg_moves(SEEL, + MOVE_LICK, + MOVE_PERISH_SONG, + MOVE_DISABLE, + MOVE_HORN_DRILL, + MOVE_SLAM, + MOVE_ENCORE, + MOVE_FAKE_OUT, + MOVE_ICICLE_SPEAR), + + egg_moves(GRIMER, + MOVE_HAZE, + MOVE_MEAN_LOOK, + MOVE_LICK, + MOVE_IMPRISON, + MOVE_CURSE, + MOVE_SHADOW_PUNCH, + MOVE_EXPLOSION), + + egg_moves(SHELLDER, + MOVE_BUBBLE_BEAM, + MOVE_TAKE_DOWN, + MOVE_BARRIER, + MOVE_RAPID_SPIN, + MOVE_SCREECH, + MOVE_ICICLE_SPEAR), + + egg_moves(GASTLY, + MOVE_PSYWAVE, + MOVE_PERISH_SONG, + MOVE_HAZE, + MOVE_ASTONISH, + MOVE_WILL_O_WISP, + MOVE_GRUDGE, + MOVE_EXPLOSION), + + egg_moves(ONIX, + MOVE_ROCK_SLIDE, + MOVE_FLAIL, + MOVE_EXPLOSION, + MOVE_BLOCK), + + egg_moves(DROWZEE, + MOVE_BARRIER, + MOVE_ASSIST, + MOVE_ROLE_PLAY, + MOVE_FIRE_PUNCH, + MOVE_THUNDER_PUNCH, + MOVE_ICE_PUNCH), + + egg_moves(KRABBY, + MOVE_DIG, + MOVE_HAZE, + MOVE_AMNESIA, + MOVE_FLAIL, + MOVE_SLAM, + MOVE_KNOCK_OFF, + MOVE_SWORDS_DANCE), + + egg_moves(EXEGGCUTE, + MOVE_SYNTHESIS, + MOVE_MOONLIGHT, + MOVE_REFLECT, + MOVE_ANCIENT_POWER, + MOVE_PSYCH_UP, + MOVE_INGRAIN, + MOVE_CURSE), + + egg_moves(CUBONE, + MOVE_ROCK_SLIDE, + MOVE_ANCIENT_POWER, + MOVE_BELLY_DRUM, + MOVE_SCREECH, + MOVE_SKULL_BASH, + MOVE_PERISH_SONG, + MOVE_SWORDS_DANCE), + + egg_moves(LICKITUNG, + MOVE_BELLY_DRUM, + MOVE_MAGNITUDE, + MOVE_BODY_SLAM, + MOVE_CURSE, + MOVE_SMELLING_SALT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE), + + egg_moves(KOFFING, + MOVE_SCREECH, + MOVE_PSYWAVE, + MOVE_PSYBEAM, + MOVE_DESTINY_BOND, + MOVE_PAIN_SPLIT, + MOVE_WILL_O_WISP), + + egg_moves(RHYHORN, + MOVE_CRUNCH, + MOVE_REVERSAL, + MOVE_ROCK_SLIDE, + MOVE_COUNTER, + MOVE_MAGNITUDE, + MOVE_SWORDS_DANCE, + MOVE_CURSE, + MOVE_CRUSH_CLAW), + + egg_moves(CHANSEY, + MOVE_PRESENT, + MOVE_METRONOME, + MOVE_HEAL_BELL, + MOVE_AROMATHERAPY, + MOVE_SUBSTITUTE), + + egg_moves(TANGELA, + MOVE_FLAIL, + MOVE_CONFUSION, + MOVE_MEGA_DRAIN, + MOVE_REFLECT, + MOVE_AMNESIA, + MOVE_LEECH_SEED, + MOVE_NATURE_POWER), + + egg_moves(KANGASKHAN, + MOVE_STOMP, + MOVE_FORESIGHT, + MOVE_FOCUS_ENERGY, + MOVE_SAFEGUARD, + MOVE_DISABLE, + MOVE_COUNTER, + MOVE_CRUSH_CLAW, + MOVE_SUBSTITUTE), + + egg_moves(HORSEA, + MOVE_FLAIL, + MOVE_AURORA_BEAM, + MOVE_OCTAZOOKA, + MOVE_DISABLE, + MOVE_SPLASH, + MOVE_DRAGON_RAGE, + MOVE_DRAGON_BREATH), + + egg_moves(GOLDEEN, + MOVE_PSYBEAM, + MOVE_HAZE, + MOVE_HYDRO_PUMP, + MOVE_SLEEP_TALK, + MOVE_MUD_SPORT), + + egg_moves(MR_MIME, + MOVE_FUTURE_SIGHT, + MOVE_HYPNOSIS, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_FAKE_OUT, + MOVE_TRICK), + + egg_moves(SCYTHER, + MOVE_COUNTER, + MOVE_SAFEGUARD, + MOVE_BATON_PASS, + MOVE_RAZOR_WIND, + MOVE_REVERSAL, + MOVE_LIGHT_SCREEN, + MOVE_ENDURE, + MOVE_SILVER_WIND), + + egg_moves(PINSIR, + MOVE_FURY_ATTACK, + MOVE_FLAIL, + MOVE_FALSE_SWIPE, + MOVE_FAINT_ATTACK), + + egg_moves(LAPRAS, + MOVE_FORESIGHT, + MOVE_SUBSTITUTE, + MOVE_TICKLE, + MOVE_REFRESH, + MOVE_DRAGON_DANCE, + MOVE_CURSE, + MOVE_SLEEP_TALK, + MOVE_HORN_DRILL), + + egg_moves(EEVEE, + MOVE_CHARM, + MOVE_FLAIL, + MOVE_ENDURE, + MOVE_CURSE, + MOVE_TICKLE, + MOVE_WISH), + + egg_moves(OMANYTE, + MOVE_BUBBLE_BEAM, + MOVE_AURORA_BEAM, + MOVE_SLAM, + MOVE_SUPERSONIC, + MOVE_HAZE, + MOVE_ROCK_SLIDE, + MOVE_SPIKES), + + egg_moves(KABUTO, + MOVE_BUBBLE_BEAM, + MOVE_AURORA_BEAM, + MOVE_RAPID_SPIN, + MOVE_DIG, + MOVE_FLAIL, + MOVE_KNOCK_OFF, + MOVE_CONFUSE_RAY), + + egg_moves(AERODACTYL, + MOVE_WHIRLWIND, + MOVE_PURSUIT, + MOVE_FORESIGHT, + MOVE_STEEL_WING, + MOVE_DRAGON_BREATH, + MOVE_CURSE), + + egg_moves(SNORLAX, + MOVE_LICK, + MOVE_CHARM, + MOVE_DOUBLE_EDGE, + MOVE_CURSE, + MOVE_FISSURE, + MOVE_SUBSTITUTE), + + egg_moves(DRATINI, + MOVE_LIGHT_SCREEN, + MOVE_MIST, + MOVE_HAZE, + MOVE_SUPERSONIC, + MOVE_DRAGON_BREATH, + MOVE_DRAGON_DANCE), + + egg_moves(CHIKORITA, + MOVE_VINE_WHIP, + MOVE_LEECH_SEED, + MOVE_COUNTER, + MOVE_ANCIENT_POWER, + MOVE_FLAIL, + MOVE_NATURE_POWER, + MOVE_INGRAIN, + MOVE_GRASS_WHISTLE), + + egg_moves(CYNDAQUIL, + MOVE_FURY_SWIPES, + MOVE_QUICK_ATTACK, + MOVE_REVERSAL, + MOVE_THRASH, + MOVE_FORESIGHT, + MOVE_COVET, + MOVE_HOWL, + MOVE_CRUSH_CLAW), + + egg_moves(TOTODILE, + MOVE_CRUNCH, + MOVE_THRASH, + MOVE_HYDRO_PUMP, + MOVE_ANCIENT_POWER, + MOVE_ROCK_SLIDE, + MOVE_MUD_SPORT, + MOVE_WATER_SPORT, + MOVE_DRAGON_CLAW), + + egg_moves(SENTRET, + MOVE_DOUBLE_EDGE, + MOVE_PURSUIT, + MOVE_SLASH, + MOVE_FOCUS_ENERGY, + MOVE_REVERSAL, + MOVE_SUBSTITUTE, + MOVE_TRICK, + MOVE_ASSIST), + + egg_moves(HOOTHOOT, + MOVE_MIRROR_MOVE, + MOVE_SUPERSONIC, + MOVE_FAINT_ATTACK, + MOVE_WING_ATTACK, + MOVE_WHIRLWIND, + MOVE_SKY_ATTACK, + MOVE_FEATHER_DANCE), + + egg_moves(LEDYBA, + MOVE_PSYBEAM, + MOVE_BIDE, + MOVE_SILVER_WIND), + + egg_moves(SPINARAK, + MOVE_PSYBEAM, + MOVE_DISABLE, + MOVE_SONIC_BOOM, + MOVE_BATON_PASS, + MOVE_PURSUIT, + MOVE_SIGNAL_BEAM), + + egg_moves(CHINCHOU, + MOVE_FLAIL, + MOVE_SCREECH, + MOVE_AMNESIA), + + egg_moves(PICHU, + MOVE_REVERSAL, + MOVE_BIDE, + MOVE_PRESENT, + MOVE_ENCORE, + MOVE_DOUBLE_SLAP, + MOVE_WISH, + MOVE_CHARGE), + + egg_moves(CLEFFA, + MOVE_PRESENT, + MOVE_METRONOME, + MOVE_AMNESIA, + MOVE_BELLY_DRUM, + MOVE_SPLASH, + MOVE_MIMIC, + MOVE_WISH, + MOVE_SUBSTITUTE), + + egg_moves(IGGLYBUFF, + MOVE_PERISH_SONG, + MOVE_PRESENT, + MOVE_FAINT_ATTACK, + MOVE_WISH, + MOVE_FAKE_TEARS), + + egg_moves(TOGEPI, + MOVE_PRESENT, + MOVE_MIRROR_MOVE, + MOVE_PECK, + MOVE_FORESIGHT, + MOVE_FUTURE_SIGHT, + MOVE_SUBSTITUTE, + MOVE_PSYCH_UP), + + egg_moves(NATU, + MOVE_HAZE, + MOVE_DRILL_PECK, + MOVE_QUICK_ATTACK, + MOVE_FAINT_ATTACK, + MOVE_STEEL_WING, + MOVE_PSYCH_UP, + MOVE_FEATHER_DANCE, + MOVE_REFRESH), + + egg_moves(MAREEP, + MOVE_TAKE_DOWN, + MOVE_BODY_SLAM, + MOVE_SAFEGUARD, + MOVE_SCREECH, + MOVE_REFLECT, + MOVE_ODOR_SLEUTH, + MOVE_CHARGE), + + egg_moves(MARILL, + MOVE_LIGHT_SCREEN, + MOVE_PRESENT, + MOVE_AMNESIA, + MOVE_FUTURE_SIGHT, + MOVE_BELLY_DRUM, + MOVE_PERISH_SONG, + MOVE_SUPERSONIC, + MOVE_SUBSTITUTE), + + egg_moves(SUDOWOODO, + MOVE_SELF_DESTRUCT), + + egg_moves(HOPPIP, + MOVE_CONFUSION, + MOVE_ENCORE, + MOVE_DOUBLE_EDGE, + MOVE_REFLECT, + MOVE_AMNESIA, + MOVE_HELPING_HAND, + MOVE_PSYCH_UP), + + egg_moves(AIPOM, + MOVE_COUNTER, + MOVE_SCREECH, + MOVE_PURSUIT, + MOVE_AGILITY, + MOVE_SPITE, + MOVE_SLAM, + MOVE_DOUBLE_SLAP, + MOVE_BEAT_UP), + + egg_moves(SUNKERN, + MOVE_GRASS_WHISTLE, + MOVE_ENCORE, + MOVE_LEECH_SEED, + MOVE_NATURE_POWER, + MOVE_CURSE, + MOVE_HELPING_HAND), + + egg_moves(YANMA, + MOVE_WHIRLWIND, + MOVE_REVERSAL, + MOVE_LEECH_LIFE, + MOVE_SIGNAL_BEAM, + MOVE_SILVER_WIND), + + egg_moves(WOOPER, + MOVE_BODY_SLAM, + MOVE_ANCIENT_POWER, + MOVE_SAFEGUARD, + MOVE_CURSE, + MOVE_MUD_SPORT, + MOVE_STOCKPILE, + MOVE_SWALLOW, + MOVE_SPIT_UP), + + egg_moves(MURKROW, + MOVE_WHIRLWIND, + MOVE_DRILL_PECK, + MOVE_MIRROR_MOVE, + MOVE_WING_ATTACK, + MOVE_SKY_ATTACK, + MOVE_CONFUSE_RAY, + MOVE_FEATHER_DANCE, + MOVE_PERISH_SONG), + + egg_moves(MISDREAVUS, + MOVE_SCREECH, + MOVE_DESTINY_BOND, + MOVE_PSYCH_UP, + MOVE_IMPRISON), + + egg_moves(GIRAFARIG, + MOVE_TAKE_DOWN, + MOVE_AMNESIA, + MOVE_FORESIGHT, + MOVE_FUTURE_SIGHT, + MOVE_BEAT_UP, + MOVE_PSYCH_UP, + MOVE_WISH, + MOVE_MAGIC_COAT), + + egg_moves(PINECO, + MOVE_REFLECT, + MOVE_PIN_MISSILE, + MOVE_FLAIL, + MOVE_SWIFT, + MOVE_COUNTER, + MOVE_SAND_TOMB), + + egg_moves(DUNSPARCE, + MOVE_BIDE, + MOVE_ANCIENT_POWER, + MOVE_ROCK_SLIDE, + MOVE_BITE, + MOVE_HEADBUTT, + MOVE_ASTONISH, + MOVE_CURSE), + + egg_moves(GLIGAR, + MOVE_METAL_CLAW, + MOVE_WING_ATTACK, + MOVE_RAZOR_WIND, + MOVE_COUNTER, + MOVE_SAND_TOMB), + + egg_moves(SNUBBULL, + MOVE_METRONOME, + MOVE_FAINT_ATTACK, + MOVE_REFLECT, + MOVE_PRESENT, + MOVE_CRUNCH, + MOVE_HEAL_BELL, + MOVE_SNORE, + MOVE_SMELLING_SALT), + + egg_moves(QWILFISH, + MOVE_FLAIL, + MOVE_HAZE, + MOVE_BUBBLE_BEAM, + MOVE_SUPERSONIC, + MOVE_ASTONISH), + + egg_moves(SHUCKLE, + MOVE_SWEET_SCENT), + + egg_moves(HERACROSS, + MOVE_HARDEN, + MOVE_BIDE, + MOVE_FLAIL, + MOVE_FALSE_SWIPE), + + egg_moves(SNEASEL, + MOVE_COUNTER, + MOVE_SPITE, + MOVE_FORESIGHT, + MOVE_REFLECT, + MOVE_BITE, + MOVE_CRUSH_CLAW, + MOVE_FAKE_OUT), + + egg_moves(TEDDIURSA, + MOVE_CRUNCH, + MOVE_TAKE_DOWN, + MOVE_SEISMIC_TOSS, + MOVE_COUNTER, + MOVE_METAL_CLAW, + MOVE_FAKE_TEARS, + MOVE_YAWN, + MOVE_SLEEP_TALK), + + egg_moves(SLUGMA, + MOVE_ACID_ARMOR, + MOVE_HEAT_WAVE), + + egg_moves(SWINUB, + MOVE_TAKE_DOWN, + MOVE_BITE, + MOVE_BODY_SLAM, + MOVE_ROCK_SLIDE, + MOVE_ANCIENT_POWER, + MOVE_MUD_SHOT, + MOVE_ICICLE_SPEAR, + MOVE_DOUBLE_EDGE), + + egg_moves(CORSOLA, + MOVE_ROCK_SLIDE, + MOVE_SCREECH, + MOVE_MIST, + MOVE_AMNESIA, + MOVE_BARRIER, + MOVE_INGRAIN, + MOVE_CONFUSE_RAY, + MOVE_ICICLE_SPEAR), + + egg_moves(REMORAID, + MOVE_AURORA_BEAM, + MOVE_OCTAZOOKA, + MOVE_SUPERSONIC, + MOVE_HAZE, + MOVE_SCREECH, + MOVE_THUNDER_WAVE, + MOVE_ROCK_BLAST), + + egg_moves(DELIBIRD, + MOVE_AURORA_BEAM, + MOVE_QUICK_ATTACK, + MOVE_FUTURE_SIGHT, + MOVE_SPLASH, + MOVE_RAPID_SPIN, + MOVE_ICE_BALL), + + egg_moves(MANTINE, + MOVE_TWISTER, + MOVE_HYDRO_PUMP, + MOVE_HAZE, + MOVE_SLAM, + MOVE_MUD_SPORT, + MOVE_ROCK_SLIDE), + + egg_moves(SKARMORY, + MOVE_DRILL_PECK, + MOVE_PURSUIT, + MOVE_WHIRLWIND, + MOVE_SKY_ATTACK, + MOVE_CURSE), + + egg_moves(HOUNDOUR, + MOVE_FIRE_SPIN, + MOVE_RAGE, + MOVE_PURSUIT, + MOVE_COUNTER, + MOVE_SPITE, + MOVE_REVERSAL, + MOVE_BEAT_UP, + MOVE_WILL_O_WISP), + + egg_moves(PHANPY, + MOVE_FOCUS_ENERGY, + MOVE_BODY_SLAM, + MOVE_ANCIENT_POWER, + MOVE_SNORE, + MOVE_COUNTER, + MOVE_FISSURE), + + egg_moves(STANTLER, + MOVE_SPITE, + MOVE_DISABLE, + MOVE_BITE, + MOVE_SWAGGER, + MOVE_PSYCH_UP, + MOVE_EXTRASENSORY), + + egg_moves(TYROGUE, + MOVE_RAPID_SPIN, + MOVE_HI_JUMP_KICK, + MOVE_MACH_PUNCH, + MOVE_MIND_READER, + MOVE_HELPING_HAND), + + egg_moves(SMOOCHUM, + MOVE_MEDITATE, + MOVE_PSYCH_UP, + MOVE_FAKE_OUT, + MOVE_WISH, + MOVE_ICE_PUNCH), + + egg_moves(ELEKID, + MOVE_KARATE_CHOP, + MOVE_BARRIER, + MOVE_ROLLING_KICK, + MOVE_MEDITATE, + MOVE_CROSS_CHOP, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH), + + egg_moves(MAGBY, + MOVE_KARATE_CHOP, + MOVE_MEGA_PUNCH, + MOVE_BARRIER, + MOVE_SCREECH, + MOVE_CROSS_CHOP, + MOVE_THUNDER_PUNCH), + + egg_moves(MILTANK, + MOVE_PRESENT, + MOVE_REVERSAL, + MOVE_SEISMIC_TOSS, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_CURSE, + MOVE_HELPING_HAND, + MOVE_SLEEP_TALK), + + egg_moves(LARVITAR, + MOVE_PURSUIT, + MOVE_STOMP, + MOVE_OUTRAGE, + MOVE_FOCUS_ENERGY, + MOVE_ANCIENT_POWER, + MOVE_DRAGON_DANCE, + MOVE_CURSE), + + egg_moves(TREECKO, + MOVE_CRUNCH, + MOVE_MUD_SPORT, + MOVE_ENDEAVOR, + MOVE_LEECH_SEED, + MOVE_DRAGON_BREATH, + MOVE_CRUSH_CLAW), + + egg_moves(TORCHIC, + MOVE_COUNTER, + MOVE_REVERSAL, + MOVE_ENDURE, + MOVE_SWAGGER, + MOVE_ROCK_SLIDE, + MOVE_SMELLING_SALT), + + egg_moves(MUDKIP, + MOVE_REFRESH, + MOVE_UPROAR, + MOVE_CURSE, + MOVE_STOMP, + MOVE_ICE_BALL, + MOVE_MIRROR_COAT), + + egg_moves(POOCHYENA, + MOVE_ASTONISH, + MOVE_POISON_FANG, + MOVE_COVET, + MOVE_LEER, + MOVE_YAWN), + + egg_moves(ZIGZAGOON, + MOVE_CHARM, + MOVE_PURSUIT, + MOVE_SUBSTITUTE, + MOVE_TICKLE, + MOVE_TRICK), + + egg_moves(LOTAD, + MOVE_SYNTHESIS, + MOVE_RAZOR_LEAF, + MOVE_SWEET_SCENT, + MOVE_LEECH_SEED, + MOVE_FLAIL, + MOVE_WATER_GUN), + + egg_moves(SEEDOT, + MOVE_LEECH_SEED, + MOVE_AMNESIA, + MOVE_QUICK_ATTACK, + MOVE_RAZOR_WIND, + MOVE_TAKE_DOWN, + MOVE_FALSE_SWIPE), + + egg_moves(NINCADA, + MOVE_ENDURE, + MOVE_FAINT_ATTACK, + MOVE_GUST, + MOVE_SILVER_WIND), + + egg_moves(TAILLOW, + MOVE_PURSUIT, + MOVE_SUPERSONIC, + MOVE_REFRESH, + MOVE_MIRROR_MOVE, + MOVE_RAGE, + MOVE_SKY_ATTACK), + + egg_moves(SHROOMISH, + MOVE_FAKE_TEARS, + MOVE_SWAGGER, + MOVE_CHARM, + MOVE_FALSE_SWIPE, + MOVE_HELPING_HAND), + + egg_moves(SPINDA, + MOVE_ENCORE, + MOVE_ROCK_SLIDE, + MOVE_ASSIST, + MOVE_DISABLE, + MOVE_BATON_PASS, + MOVE_WISH, + MOVE_TRICK, + MOVE_SMELLING_SALT), + + egg_moves(WINGULL, + MOVE_MIST, + MOVE_TWISTER, + MOVE_AGILITY, + MOVE_GUST, + MOVE_WATER_SPORT), + + egg_moves(SURSKIT, + MOVE_FORESIGHT, + MOVE_MUD_SHOT, + MOVE_PSYBEAM, + MOVE_HYDRO_PUMP, + MOVE_MIND_READER), + + egg_moves(WAILMER, + MOVE_DOUBLE_EDGE, + MOVE_THRASH, + MOVE_SWAGGER, + MOVE_SNORE, + MOVE_SLEEP_TALK, + MOVE_CURSE, + MOVE_FISSURE, + MOVE_TICKLE), + + egg_moves(SKITTY, + MOVE_HELPING_HAND, + MOVE_PSYCH_UP, + MOVE_UPROAR, + MOVE_FAKE_TEARS, + MOVE_WISH, + MOVE_BATON_PASS, + MOVE_SUBSTITUTE, + MOVE_TICKLE), + + egg_moves(KECLEON, + MOVE_DISABLE, + MOVE_MAGIC_COAT, + MOVE_TRICK), + + egg_moves(NOSEPASS, + MOVE_MAGNITUDE, + MOVE_ROLLOUT, + MOVE_EXPLOSION), + + egg_moves(TORKOAL, + MOVE_ERUPTION, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_YAWN), + + egg_moves(SABLEYE, + MOVE_PSYCH_UP, + MOVE_RECOVER, + MOVE_MOONLIGHT), + + egg_moves(BARBOACH, + MOVE_THRASH, + MOVE_WHIRLPOOL, + MOVE_SPARK), + + egg_moves(LUVDISC, + MOVE_SPLASH, + MOVE_SUPERSONIC, + MOVE_WATER_SPORT, + MOVE_MUD_SPORT), + + egg_moves(CORPHISH, + MOVE_MUD_SPORT, + MOVE_ENDEAVOR, + MOVE_BODY_SLAM, + MOVE_ANCIENT_POWER), + + egg_moves(FEEBAS, + MOVE_MIRROR_COAT, + MOVE_DRAGON_BREATH, + MOVE_MUD_SPORT, + MOVE_HYPNOSIS, + MOVE_LIGHT_SCREEN, + MOVE_CONFUSE_RAY), + + egg_moves(CARVANHA, + MOVE_HYDRO_PUMP, + MOVE_DOUBLE_EDGE, + MOVE_THRASH), + + egg_moves(TRAPINCH, + MOVE_FOCUS_ENERGY, + MOVE_QUICK_ATTACK, + MOVE_GUST), + + egg_moves(MAKUHITA, + MOVE_FAINT_ATTACK, + MOVE_DETECT, + MOVE_FORESIGHT, + MOVE_HELPING_HAND, + MOVE_CROSS_CHOP, + MOVE_REVENGE, + MOVE_DYNAMIC_PUNCH, + MOVE_COUNTER), + + egg_moves(ELECTRIKE, + MOVE_CRUNCH, + MOVE_HEADBUTT, + MOVE_UPROAR, + MOVE_CURSE, + MOVE_SWIFT), + + egg_moves(NUMEL, + MOVE_HOWL, + MOVE_SCARY_FACE, + MOVE_BODY_SLAM, + MOVE_ROLLOUT, + MOVE_DEFENSE_CURL, + MOVE_STOMP), + + egg_moves(SPHEAL, + MOVE_WATER_SPORT, + MOVE_STOCKPILE, + MOVE_SWALLOW, + MOVE_SPIT_UP, + MOVE_YAWN, + MOVE_ROCK_SLIDE, + MOVE_CURSE, + MOVE_FISSURE), + + egg_moves(CACNEA, + MOVE_GRASS_WHISTLE, + MOVE_ACID, + MOVE_TEETER_DANCE, + MOVE_DYNAMIC_PUNCH, + MOVE_COUNTER), + + egg_moves(SNORUNT, + MOVE_BLOCK, + MOVE_SPIKES), + + egg_moves(AZURILL, + MOVE_ENCORE, + MOVE_SING, + MOVE_REFRESH, + MOVE_SLAM, + MOVE_TICKLE), + + egg_moves(SPOINK, + MOVE_FUTURE_SIGHT, + MOVE_EXTRASENSORY, + MOVE_SUBSTITUTE, + MOVE_TRICK), + + egg_moves(PLUSLE, + MOVE_SUBSTITUTE, + MOVE_WISH), + + egg_moves(MINUN, + MOVE_SUBSTITUTE, + MOVE_WISH), + + egg_moves(MAWILE, + MOVE_SWORDS_DANCE, + MOVE_FALSE_SWIPE, + MOVE_POISON_FANG, + MOVE_PSYCH_UP, + MOVE_ANCIENT_POWER, + MOVE_TICKLE), + + egg_moves(MEDITITE, + MOVE_FIRE_PUNCH, + MOVE_THUNDER_PUNCH, + MOVE_ICE_PUNCH, + MOVE_FORESIGHT, + MOVE_FAKE_OUT, + MOVE_BATON_PASS, + MOVE_DYNAMIC_PUNCH), + + egg_moves(SWABLU, + MOVE_AGILITY, + MOVE_HAZE, + MOVE_PURSUIT, + MOVE_RAGE), + + egg_moves(DUSKULL, + MOVE_IMPRISON, + MOVE_DESTINY_BOND, + MOVE_PAIN_SPLIT, + MOVE_GRUDGE, + MOVE_MEMENTO, + MOVE_FAINT_ATTACK), + + egg_moves(ROSELIA, + MOVE_SPIKES, + MOVE_SYNTHESIS, + MOVE_PIN_MISSILE, + MOVE_COTTON_SPORE), + + egg_moves(SLAKOTH, + MOVE_PURSUIT, + MOVE_SLASH, + MOVE_BODY_SLAM, + MOVE_SNORE, + MOVE_CRUSH_CLAW, + MOVE_CURSE, + MOVE_SLEEP_TALK), + + egg_moves(GULPIN, + MOVE_DREAM_EATER, + MOVE_ACID_ARMOR, + MOVE_SMOG, + MOVE_PAIN_SPLIT), + + egg_moves(TROPIUS, + MOVE_HEADBUTT, + MOVE_SLAM, + MOVE_RAZOR_WIND, + MOVE_LEECH_SEED, + MOVE_NATURE_POWER), + + egg_moves(WHISMUR, + MOVE_TAKE_DOWN, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_EXTRASENSORY, + MOVE_SMELLING_SALT), + + egg_moves(CLAMPERL, + MOVE_REFRESH, + MOVE_MUD_SPORT, + MOVE_BODY_SLAM, + MOVE_SUPERSONIC, + MOVE_BARRIER, + MOVE_CONFUSE_RAY), + + egg_moves(ABSOL, + MOVE_BATON_PASS, + MOVE_FAINT_ATTACK, + MOVE_DOUBLE_EDGE, + MOVE_MAGIC_COAT, + MOVE_CURSE, + MOVE_SUBSTITUTE), + + egg_moves(SHUPPET, + MOVE_DISABLE, + MOVE_DESTINY_BOND, + MOVE_FORESIGHT, + MOVE_ASTONISH, + MOVE_IMPRISON), + + egg_moves(SEVIPER, + MOVE_STOCKPILE, + MOVE_SWALLOW, + MOVE_SPIT_UP, + MOVE_BODY_SLAM), + + egg_moves(ZANGOOSE, + MOVE_FLAIL, + MOVE_DOUBLE_KICK, + MOVE_RAZOR_WIND, + MOVE_COUNTER, + MOVE_ROAR, + MOVE_CURSE), + + egg_moves(RELICANTH, + MOVE_MAGNITUDE, + MOVE_SKULL_BASH, + MOVE_WATER_SPORT, + MOVE_AMNESIA, + MOVE_SLEEP_TALK, + MOVE_ROCK_SLIDE), + + egg_moves(ARON, + MOVE_ENDEAVOR, + MOVE_BODY_SLAM, + MOVE_STOMP, + MOVE_SMELLING_SALT), + + egg_moves(CASTFORM, + MOVE_FUTURE_SIGHT, + MOVE_PSYCH_UP), + + egg_moves(VOLBEAT, + MOVE_BATON_PASS, + MOVE_SILVER_WIND, + MOVE_TRICK), + + egg_moves(ILLUMISE, + MOVE_BATON_PASS, + MOVE_SILVER_WIND, + MOVE_GROWTH), + + egg_moves(LILEEP, + MOVE_BARRIER, + MOVE_RECOVER, + MOVE_MIRROR_COAT, + MOVE_ROCK_SLIDE), + + egg_moves(ANORITH, + MOVE_RAPID_SPIN, + MOVE_KNOCK_OFF, + MOVE_SWORDS_DANCE, + MOVE_ROCK_SLIDE), + + egg_moves(RALTS, + MOVE_DISABLE, + MOVE_WILL_O_WISP, + MOVE_MEAN_LOOK, + MOVE_MEMENTO, + MOVE_DESTINY_BOND), + + egg_moves(BAGON, + MOVE_HYDRO_PUMP, + MOVE_THRASH, + MOVE_DRAGON_RAGE, + MOVE_TWISTER, + MOVE_DRAGON_DANCE), + + egg_moves(CHIMECHO, + MOVE_DISABLE, + MOVE_CURSE, + MOVE_HYPNOSIS, + MOVE_DREAM_EATER), + + EGG_MOVES_TERMINATOR +}; diff --git a/src/daycare.c b/src/daycare.c new file mode 100644 index 000000000..206e0b383 --- /dev/null +++ b/src/daycare.c @@ -0,0 +1,2209 @@ +#include "global.h" +#include "pokemon.h" +#include "battle.h" +#include "daycare.h" +#include "string_util.h" +#include "constants/species.h" +#include "constants/items.h" +#include "mail.h" +#include "pokemon_storage_system.h" +#include "event_data.h" +#include "random.h" +#include "main.h" +#include "constants/moves.h" +#include "text.h" +#include "menu.h" +#include "new_menu_helpers.h" +#include "international_string_util.h" +#include "script.h" +#include "strings.h" +#include "task.h" +#include "window.h" +#include "party_menu.h" +#include "list_menu.h" +#include "overworld.h" +#include "pokedex.h" +#include "decompress.h" +#include "task.h" +#include "palette.h" +#include "main.h" +#include "sound.h" +#include "constants/songs.h" +#include "text_window.h" +#include "trig.h" +#include "malloc.h" +#include "dma3.h" +#include "gpu_regs.h" +#include "bg.h" +#include "m4a.h" +#include "graphics.h" +#include "constants/abilities.h" +#include "constants/species.h" +#include "scanline_effect.h" +#include "field_weather.h" +#include "naming_screen.h" +#include "field_screen_effect.h" +#include "help_system.h" +#include "field_fadetransition.h" + +#define EGG_MOVES_ARRAY_COUNT 10 +#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50 + +struct EggHatchData +{ + u8 eggSpriteID; + u8 pokeSpriteID; + u8 CB2_state; + u8 CB2_PalCounter; + u8 eggPartyID; + u8 unused_5; + u8 unused_6; + u8 eggShardVelocityID; + u8 windowId; + u8 unused_9; + u8 unused_A; + u16 species; + struct TextColor textColor; +}; + +extern const u8 gText_MaleSymbol4[]; +extern const u8 gText_FemaleSymbol4[]; +extern const u8 gText_GenderlessSymbol[]; +extern const u8 gText_Lv[]; +extern const u8 gDaycareText_GetAlongVeryWell[]; +extern const u8 gDaycareText_GetAlong[]; +extern const u8 gDaycareText_DontLikeOther[]; +extern const u8 gDaycareText_PlayOther[]; +extern const u8 gExpandedPlaceholder_Empty[]; + +extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle +extern const u8 gText_HatchedFromEgg[]; +extern const u8 gText_NickHatchPrompt[]; + +// this file's functions +static void ClearDaycareMonMail(struct DayCareMail *mail); +static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare); +static u8 GetDaycareCompatibilityScore(struct DayCare *daycare); +static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y); + +static void Task_EggHatch(u8 taskID); +static void CB2_EggHatch_0(void); +static void CB2_EggHatch_1(void); +static void SpriteCB_Egg_0(struct Sprite* sprite); +static void SpriteCB_Egg_1(struct Sprite* sprite); +static void SpriteCB_Egg_2(struct Sprite* sprite); +static void SpriteCB_Egg_3(struct Sprite* sprite); +static void SpriteCB_Egg_4(struct Sprite* sprite); +static void SpriteCB_Egg_5(struct Sprite* sprite); +static void SpriteCB_EggShard(struct Sprite* sprite); +static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed); +static void CreateRandomEggShardSprite(void); +static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex); + +// IWRAM bss +static IWRAM_DATA struct EggHatchData *sEggHatchData; + +// RAM buffers used to assist with BuildEggMoveset() +EWRAM_DATA static u16 sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0}; +EWRAM_DATA static u16 sHatchedEggFatherMoves[4] = {0}; +EWRAM_DATA static u16 sHatchedEggFinalMoves[4] = {0}; +EWRAM_DATA static u16 sHatchedEggEggMoves[EGG_MOVES_ARRAY_COUNT] = {0}; +EWRAM_DATA static u16 sHatchedEggMotherMoves[4] = {0}; + +#include "data/pokemon/egg_moves.h" + +static const struct WindowTemplate sDaycareLevelMenuWindowTemplate = +{ + .bg = 0, + .tilemapLeft = 12, + .tilemapTop = 1, + .width = 17, + .height = 5, + .paletteNum = 15, + .baseBlock = 8 +}; + +static const struct ListMenuItem sLevelMenuItems[] = +{ + {gExpandedPlaceholder_Empty, 0}, + {gExpandedPlaceholder_Empty, 1}, + {gOtherText_Exit, 5} +}; + +static const struct ListMenuTemplate sDaycareListMenuLevelTemplate = +{ + .items = sLevelMenuItems, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = DaycarePrintMonInfo, + .totalItems = 3, + .maxShowed = 3, + .windowId = 0, + .header_X = 2, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 0, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 1, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 3, + .cursorKind = 0 +}; + +static const u8 *const sCompatibilityMessages[] = +{ + gDaycareText_GetAlongVeryWell, + gDaycareText_GetAlong, + gDaycareText_DontLikeOther, + gDaycareText_PlayOther +}; + +static const u8 sNewLineText[] = _("\n"); +static const u8 sJapaneseEggNickname[] = _("タマゴ"); // "tamago" ("egg" in Japanese) + +static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/egg/normal.gbapal"); +static const u8 sEggHatchTiles[] = INCBIN_U8("graphics/misc/egg_hatch.4bpp"); +static const u8 sEggShardTiles[] = INCBIN_U8("graphics/misc/egg_shard.4bpp"); + +static const struct OamData sOamData_EggHatch = + { + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, + }; + +static const union AnimCmd sSpriteAnim_EggHatch0[] = + { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggHatch1[] = + { + ANIMCMD_FRAME(16, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggHatch2[] = + { + ANIMCMD_FRAME(32, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggHatch3[] = + { + ANIMCMD_FRAME(48, 5), + ANIMCMD_END + }; + +static const union AnimCmd *const sSpriteAnimTable_EggHatch[] = + { + sSpriteAnim_EggHatch0, + sSpriteAnim_EggHatch1, + sSpriteAnim_EggHatch2, + sSpriteAnim_EggHatch3, + }; + +static const struct SpriteSheet sEggHatch_Sheet = + { + .data = sEggHatchTiles, + .size = 2048, + .tag = 12345, + }; + +static const struct SpriteSheet sEggShards_Sheet = + { + .data = sEggShardTiles, + .size = 128, + .tag = 23456, + }; + +static const struct SpritePalette sEgg_SpritePalette = + { + .data = sEggPalette, + .tag = 54321 + }; + +static const struct SpriteTemplate sSpriteTemplate_EggHatch = + { + .tileTag = 12345, + .paletteTag = 54321, + .oam = &sOamData_EggHatch, + .anims = sSpriteAnimTable_EggHatch, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy + }; + +static const struct OamData sOamData_EggShard = + { + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, + }; + +static const union AnimCmd sSpriteAnim_EggShard0[] = + { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggShard1[] = + { + ANIMCMD_FRAME(1, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggShard2[] = + { + ANIMCMD_FRAME(2, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggShard3[] = + { + ANIMCMD_FRAME(3, 5), + ANIMCMD_END + }; + +static const union AnimCmd *const sSpriteAnimTable_EggShard[] = + { + sSpriteAnim_EggShard0, + sSpriteAnim_EggShard1, + sSpriteAnim_EggShard2, + sSpriteAnim_EggShard3, + }; + +static const struct SpriteTemplate sSpriteTemplate_EggShard = + { + .tileTag = 23456, + .paletteTag = 54321, + .oam = &sOamData_EggShard, + .anims = sSpriteAnimTable_EggShard, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_EggShard + }; + +static const struct BgTemplate sBgTemplates_EggHatch[2] = + { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 24, + .screenSize = 3, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 8, + .screenSize = 1, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + }; + +static const struct WindowTemplate sWinTemplates_EggHatch[2] = + { + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0, + .baseBlock = 64 + }, + DUMMY_WIN_TEMPLATE + }; + +static const struct WindowTemplate sYesNoWinTemplate = + { + .bg = 0, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 6, + .height = 4, + .paletteNum = 15, + .baseBlock = 424 + }; + +static const s16 sEggShardVelocities[][2] = + { + {Q_8_8(-1.5), Q_8_8(-3.75)}, + {Q_8_8(-5), Q_8_8(-3)}, + {Q_8_8(3.5), Q_8_8(-3)}, + {Q_8_8(-4), Q_8_8(-3.75)}, + {Q_8_8(2), Q_8_8(-1.5)}, + {Q_8_8(-0.5), Q_8_8(-6.75)}, + {Q_8_8(5), Q_8_8(-2.25)}, + {Q_8_8(-1.5), Q_8_8(-3.75)}, + {Q_8_8(4.5), Q_8_8(-1.5)}, + {Q_8_8(-1), Q_8_8(-6.75)}, + {Q_8_8(4), Q_8_8(-2.25)}, + {Q_8_8(-3.5), Q_8_8(-3.75)}, + {Q_8_8(1), Q_8_8(-1.5)}, + {Q_8_8(-3.515625), Q_8_8(-6.75)}, + {Q_8_8(4.5), Q_8_8(-2.25)}, + {Q_8_8(-0.5), Q_8_8(-7.5)}, + {Q_8_8(1), Q_8_8(-4.5)}, + {Q_8_8(-2.5), Q_8_8(-2.25)}, + {Q_8_8(2.5), Q_8_8(-7.5)}, + }; + +// code + +u8 *GetMonNick(struct Pokemon *mon, u8 *dest) +{ + u8 nickname[POKEMON_NAME_LENGTH * 2]; + + GetMonData(mon, MON_DATA_NICKNAME, nickname); + return StringCopy10(dest, nickname); +} + +u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest) +{ + u8 nickname[POKEMON_NAME_LENGTH * 2]; + + GetBoxMonData(mon, MON_DATA_NICKNAME, nickname); + return StringCopy10(dest, nickname); +} + +u8 CountPokemonInDaycare(struct DayCare *daycare) +{ + u8 i, count; + count = 0; + + for (i = 0; i < DAYCARE_MON_COUNT; i++) + { + if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES) != 0) + count++; + } + + return count; +} + +void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail) +{ + u8 i; + u8 numDaycareMons = 0; + + for (i = 0; i < DAYCARE_MON_COUNT; i++) + { + if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES) != SPECIES_NONE) + { + numDaycareMons++; + if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_HELD_ITEM) == ITEM_NONE) + { + daycareMail->holdsItem[i] = FALSE; + } + else + { + daycareMail->holdsItem[i] = TRUE; + } + } + else + { + daycareMail->holdsItem[i] = TRUE; + } + } + + daycareMail->numDaycareMons = numDaycareMons; +} + +static s8 Daycare_FindEmptySpot(struct DayCare *daycare) +{ + u8 i; + + for (i = 0; i < DAYCARE_MON_COUNT; i++) + { + if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES) == 0) + return i; + } + + return -1; +} + +static void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycareMon) +{ + if (MonHasMail(mon)) + { + u8 mailId; + + StringCopy(daycareMon->mail.OT_name, gSaveBlock2Ptr->playerName); + GetMonNick(mon, daycareMon->mail.monName); +// StripExtCtrlCodes(daycareMon->mail.monName); +// daycareMon->mail.gameLanguage = LANGUAGE_ENGLISH; +// daycareMon->mail.monLanguage = GetMonData(mon, MON_DATA_LANGUAGE); + mailId = GetMonData(mon, MON_DATA_MAIL); + daycareMon->mail.message = gSaveBlock1Ptr->mail[mailId]; + TakeMailFromMon(mon); + } + + daycareMon->mon = mon->box; + BoxMonRestorePP(&daycareMon->mon); + daycareMon->steps = 0; + ZeroMonData(mon); + CompactPartySlots(); + CalculatePlayerPartyCount(); +} + +static void StorePokemonInEmptyDaycareSlot(struct Pokemon *mon, struct DayCare *daycare) +{ + s8 slotId = Daycare_FindEmptySpot(daycare); + StorePokemonInDaycare(mon, &daycare->mons[slotId]); +} + +void StoreSelectedPokemonInDaycare(void) +{ + u8 monId = GetCursorSelectionMonId(); + StorePokemonInEmptyDaycareSlot(&gPlayerParty[monId], &gSaveBlock1Ptr->daycare); +} + +// Shifts the second daycare pokemon slot into the first slot. +static void ShiftDaycareSlots(struct DayCare *daycare) +{ + // This condition is only satisfied when the player takes out the first pokemon from the daycare. + if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != 0 + && GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) == 0) + { + daycare->mons[0].mon = daycare->mons[1].mon; + ZeroBoxMonData(&daycare->mons[1].mon); + + daycare->mons[0].mail = daycare->mons[1].mail; + daycare->mons[0].steps = daycare->mons[1].steps; + daycare->mons[1].steps = 0; + ClearDaycareMonMail(&daycare->mons[1].mail); + } +} + +static void ApplyDaycareExperience(struct Pokemon *mon) +{ + s32 i; + bool8 firstMove; + u16 learnedMove; + + for (i = 0; i < MAX_MON_LEVEL; i++) + { + // Add the mon's gained daycare experience level by level until it can't level up anymore. + if (TryIncrementMonLevel(mon)) + { + // Teach the mon new moves it learned while in the daycare. + firstMove = TRUE; + while ((learnedMove = MonTryLearningNewMove(mon, firstMove)) != 0) + { + firstMove = FALSE; + if (learnedMove == 0xFFFF) + { + // Mon already knows 4 moves. + DeleteFirstMoveAndGiveMoveToMon(mon, gMoveToLearn); + } + } + } + else + { + break; + } + } + + // Re-calculate the mons stats at its new level. + CalculateMonStats(mon); +} + +static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon) +{ + u16 species; + u32 experience; + struct Pokemon pokemon; + + GetBoxMonNick(&daycareMon->mon, gStringVar1); + species = GetBoxMonData(&daycareMon->mon, MON_DATA_SPECIES); + BoxMonToMon(&daycareMon->mon, &pokemon); + + if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_MON_LEVEL) + { + experience = GetMonData(&pokemon, MON_DATA_EXP) + daycareMon->steps; + SetMonData(&pokemon, MON_DATA_EXP, &experience); + ApplyDaycareExperience(&pokemon); + } + + gPlayerParty[PARTY_SIZE - 1] = pokemon; + if (daycareMon->mail.message.itemId) + { + GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycareMon->mail.message); + ClearDaycareMonMail(&daycareMon->mail); + } + + ZeroBoxMonData(&daycareMon->mon); + daycareMon->steps = 0; + CompactPartySlots(); + CalculatePlayerPartyCount(); + return species; +} + +static u16 TakeSelectedPokemonMonFromDaycareShiftSlots(struct DayCare *daycare, u8 slotId) +{ + u16 species = TakeSelectedPokemonFromDaycare(&daycare->mons[slotId]); + ShiftDaycareSlots(daycare); + return species; +} + +u16 TakePokemonFromDaycare(void) +{ + return TakeSelectedPokemonMonFromDaycareShiftSlots(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004); +} + +static u8 GetLevelAfterDaycareSteps(struct BoxPokemon *mon, u32 steps) +{ + struct BoxPokemon tempMon = *mon; + + u32 experience = GetBoxMonData(mon, MON_DATA_EXP) + steps; + SetBoxMonData(&tempMon, MON_DATA_EXP, &experience); + return GetLevelFromBoxMonExp(&tempMon); +} + +static u8 GetNumLevelsGainedFromSteps(struct DaycareMon *daycareMon) +{ + u8 levelBefore; + u8 levelAfter; + + levelBefore = GetLevelFromBoxMonExp(&daycareMon->mon); + levelAfter = GetLevelAfterDaycareSteps(&daycareMon->mon, daycareMon->steps); + return levelAfter - levelBefore; +} + +static u8 GetNumLevelsGainedForDaycareMon(struct DaycareMon *daycareMon) +{ + u8 numLevelsGained = GetNumLevelsGainedFromSteps(daycareMon); + ConvertIntToDecimalStringN(gStringVar2, numLevelsGained, STR_CONV_MODE_LEFT_ALIGN, 2); + GetBoxMonNick(&daycareMon->mon, gStringVar1); + return numLevelsGained; +} + +static u32 GetDaycareCostForSelectedMon(struct DaycareMon *daycareMon) +{ + u32 cost; + + u8 numLevelsGained = GetNumLevelsGainedFromSteps(daycareMon); + GetBoxMonNick(&daycareMon->mon, gStringVar1); + cost = 100 + 100 * numLevelsGained; + ConvertIntToDecimalStringN(gStringVar2, cost, STR_CONV_MODE_LEFT_ALIGN, 5); + return cost; +} + +static u16 GetDaycareCostForMon(struct DayCare *daycare, u8 slotId) +{ + return GetDaycareCostForSelectedMon(&daycare->mons[slotId]); +} + +void GetDaycareCost(void) +{ + gSpecialVar_0x8005 = GetDaycareCostForMon(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004); +} + +static void Debug_AddDaycareSteps(u16 numSteps) +{ + gSaveBlock1Ptr->daycare.mons[0].steps += numSteps; + gSaveBlock1Ptr->daycare.mons[1].steps += numSteps; + gSaveBlock1Ptr->route5DayCareMon.steps += numSteps; +} + +u8 GetNumLevelsGainedFromDaycare(void) +{ + if (GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[gSpecialVar_0x8004], MON_DATA_SPECIES) != 0) + return GetNumLevelsGainedForDaycareMon(&gSaveBlock1Ptr->daycare.mons[gSpecialVar_0x8004]); + + return 0; +} + +static void ClearDaycareMonMail(struct DayCareMail *mail) +{ + s32 i; + + for (i = 0; i < PLAYER_NAME_LENGTH; i++) + mail->OT_name[i] = 0; + for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++) + mail->monName[i] = 0; + + ClearMailStruct(&mail->message); +} + +static void ClearDaycareMon(struct DaycareMon *daycareMon) +{ + ZeroBoxMonData(&daycareMon->mon); + daycareMon->steps = 0; + ClearDaycareMonMail(&daycareMon->mail); +} + +static void ClearAllDaycareData(struct DayCare *daycare) +{ + u8 i; + + for (i = 0; i < DAYCARE_MON_COUNT; i++) + ClearDaycareMon(&daycare->mons[i]); + + daycare->offspringPersonality = 0; + daycare->stepCounter = 0; +} + +// Determines what the species of an Egg would be based on the given species. +// It determines this by working backwards through the evolution chain of the +// given species. +static u16 GetEggSpecies(u16 species) +{ + int i, j, k; + bool8 found; + + // Working backwards up to 5 times seems arbitrary, since the maximum number + // of times would only be 3 for 3-stage evolutions. + for (i = 0; i < EVOS_PER_MON; i++) + { + found = FALSE; + for (j = 1; j < NUM_SPECIES; j++) + { + for (k = 0; k < EVOS_PER_MON; k++) + { + if (gEvolutionTable[j][k].targetSpecies == species) + { + species = j; + found = TRUE; + break; + } + } + + if (found) + break; + } + + if (j == NUM_SPECIES) + break; + } + + return species; +} +// +//static s32 GetSlotToInheritNature(struct DayCare *daycare) +//{ +// u32 species[DAYCARE_MON_COUNT]; +// s32 i; +// s32 dittoCount; +// s32 slot = -1; +// +// // search for female gender +// for (i = 0; i < DAYCARE_MON_COUNT; i++) +// { +// if (GetBoxMonGender(&daycare->mons[i].mon) == MON_FEMALE) +// slot = i; +// } +// +// // search for ditto +// for (dittoCount = 0, i = 0; i < DAYCARE_MON_COUNT; i++) +// { +// species[i] = GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES); +// if (species[i] == SPECIES_DITTO) +// dittoCount++, slot = i; +// } +// +// // coin flip on ...two Dittos +// if (dittoCount == 2) +// { +// if (Random() >= USHRT_MAX / 2) +// slot = 0; +// else +// slot = 1; +// } +// +// // nature inheritance only if holds everstone +// if (GetBoxMonData(&daycare->mons[slot].mon, MON_DATA_HELD_ITEM) != ITEM_EVERSTONE +// || Random() >= USHRT_MAX / 2) +// { +// return -1; +// } +// +// return slot; +//} + +static void _TriggerPendingDaycareEgg(struct DayCare *daycare) +{ +// s32 natureSlot; +// s32 natureTries = 0; +// +// SeedRng2(gMain.vblankCounter2); +// natureSlot = GetSlotToInheritNature(daycare); +// +// if (natureSlot < 0) +// { +// daycare->offspringPersonality = (Random2() << 0x10) | ((Random() % 0xfffe) + 1); +// } +// else +// { +// u8 wantedNature = GetNatureFromPersonality(GetBoxMonData(&daycare->mons[natureSlot].mon, MON_DATA_PERSONALITY, NULL)); +// u32 personality; +// +// do +// { +// personality = (Random2() << 0x10) | (Random()); +// if (wantedNature == GetNatureFromPersonality(personality) && personality != 0) +// break; // we found a personality with the same nature +// +// natureTries++; +// } while (natureTries <= 2400); +// +// daycare->offspringPersonality = personality; +// } + + daycare->offspringPersonality = ((Random()) % 0xFFFE) + 1; + FlagSet(FLAG_PENDING_DAYCARE_EGG); +} + +static void _TriggerPendingDaycareMaleEgg(struct DayCare *daycare) +{ + daycare->offspringPersonality = (Random()) | (0x8000); + FlagSet(FLAG_PENDING_DAYCARE_EGG); +} + +void TriggerPendingDaycareEgg(void) +{ + _TriggerPendingDaycareEgg(&gSaveBlock1Ptr->daycare); +} + +static void TriggerPendingDaycareMaleEgg(void) +{ + _TriggerPendingDaycareMaleEgg(&gSaveBlock1Ptr->daycare); +} + +// Removes the selected index from the given IV list and shifts the remaining +// elements to the left. +static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv) +{ + s32 i, j; + u8 temp[NUM_STATS]; + + ivs[selectedIv] = 0xFF; + for (i = 0; i < NUM_STATS; i++) + { + temp[i] = ivs[i]; + } + + j = 0; + for (i = 0; i < NUM_STATS; i++) + { + if (temp[i] != 0xFF) + ivs[j++] = temp[i]; + } +} + +static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare) +{ + u8 i; + u8 selectedIvs[3]; + u8 availableIVs[NUM_STATS]; + u8 whichParent[ARRAY_COUNT(selectedIvs)]; + u8 iv; + + // Initialize a list of IV indices. + for (i = 0; i < NUM_STATS; i++) + { + availableIVs[i] = i; + } + + // Select the 3 IVs that will be inherited. + for (i = 0; i < ARRAY_COUNT(selectedIvs); i++) + { + // Randomly pick an IV from the available list. + selectedIvs[i] = availableIVs[Random() % (NUM_STATS - i)]; + + // Remove the selected IV index from the available IV indices. + RemoveIVIndexFromList(availableIVs, selectedIvs[i]); + } + + // Determine which parent each of the selected IVs should inherit from. + for (i = 0; i < ARRAY_COUNT(selectedIvs); i++) + { + whichParent[i] = Random() % 2; + } + + // Set each of inherited IVs on the egg mon. + for (i = 0; i < ARRAY_COUNT(selectedIvs); i++) + { + switch (selectedIvs[i]) + { + case 0: + iv = GetBoxMonData(&daycare->mons[whichParent[i]].mon, MON_DATA_HP_IV); + SetMonData(egg, MON_DATA_HP_IV, &iv); + break; + case 1: + iv = GetBoxMonData(&daycare->mons[whichParent[i]].mon, MON_DATA_ATK_IV); + SetMonData(egg, MON_DATA_ATK_IV, &iv); + break; + case 2: + iv = GetBoxMonData(&daycare->mons[whichParent[i]].mon, MON_DATA_DEF_IV); + SetMonData(egg, MON_DATA_DEF_IV, &iv); + break; + case 3: + iv = GetBoxMonData(&daycare->mons[whichParent[i]].mon, MON_DATA_SPEED_IV); + SetMonData(egg, MON_DATA_SPEED_IV, &iv); + break; + case 4: + iv = GetBoxMonData(&daycare->mons[whichParent[i]].mon, MON_DATA_SPATK_IV); + SetMonData(egg, MON_DATA_SPATK_IV, &iv); + break; + case 5: + iv = GetBoxMonData(&daycare->mons[whichParent[i]].mon, MON_DATA_SPDEF_IV); + SetMonData(egg, MON_DATA_SPDEF_IV, &iv); + break; + } + } +} + +// Counts the number of egg moves a pokemon learns and stores the moves in +// the given array. +static u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves) +{ + u16 eggMoveIdx; + u16 numEggMoves; + u16 species; + u16 i; + + numEggMoves = 0; + eggMoveIdx = 0; + species = GetMonData(pokemon, MON_DATA_SPECIES); + for (i = 0; i < ARRAY_COUNT(gEggMoves) - 1; i++) + { + if (gEggMoves[i] == species + EGG_MOVES_SPECIES_OFFSET) + { + eggMoveIdx = i + 1; + break; + } + } + + for (i = 0; i < EGG_MOVES_ARRAY_COUNT; i++) + { + if (gEggMoves[eggMoveIdx + i] > EGG_MOVES_SPECIES_OFFSET) + { + // TODO: the curly braces around this if statement are required for a matching build. + break; + } + + eggMoves[i] = gEggMoves[eggMoveIdx + i]; + numEggMoves++; + } + + return numEggMoves; +} + +static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, struct BoxPokemon *mother) +{ + u16 numSharedParentMoves; + u32 numLevelUpMoves; + u16 numEggMoves; + u16 i, j; + + numSharedParentMoves = 0; + for (i = 0; i < MAX_MON_MOVES; i++) + { + sHatchedEggMotherMoves[i] = 0; + sHatchedEggFatherMoves[i] = 0; + sHatchedEggFinalMoves[i] = 0; + } + for (i = 0; i < EGG_MOVES_ARRAY_COUNT; i++) + sHatchedEggEggMoves[i] = 0; + for (i = 0; i < EGG_LVL_UP_MOVES_ARRAY_COUNT; i++) + sHatchedEggLevelUpMoves[i] = 0; + + numLevelUpMoves = GetLevelUpMovesBySpecies(GetMonData(egg, MON_DATA_SPECIES), sHatchedEggLevelUpMoves); + for (i = 0; i < MAX_MON_MOVES; i++) + { + sHatchedEggFatherMoves[i] = GetBoxMonData(father, MON_DATA_MOVE1 + i); + sHatchedEggMotherMoves[i] = GetBoxMonData(mother, MON_DATA_MOVE1 + i); + } + + numEggMoves = GetEggMoves(egg, sHatchedEggEggMoves); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (sHatchedEggFatherMoves[i] != MOVE_NONE) + { + for (j = 0; j < numEggMoves; j++) + { + if (sHatchedEggFatherMoves[i] == sHatchedEggEggMoves[j]) + { + if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF) + DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]); + break; + } + } + } + else + { + break; + } + } + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (sHatchedEggFatherMoves[i] != MOVE_NONE) + { + for (j = 0; j < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; j++) + { + if (sHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01/*_FOCUS_PUNCH*/ + j) && CanMonLearnTMHM(egg, j)) + { + if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF) + DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]); + } + } + } + } + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (sHatchedEggFatherMoves[i] == MOVE_NONE) + break; + for (j = 0; j < MAX_MON_MOVES; j++) + { + if (sHatchedEggFatherMoves[i] == sHatchedEggMotherMoves[j] && sHatchedEggFatherMoves[i] != MOVE_NONE) + sHatchedEggFinalMoves[numSharedParentMoves++] = sHatchedEggFatherMoves[i]; + } + } + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (sHatchedEggFinalMoves[i] == MOVE_NONE) + break; + for (j = 0; j < numLevelUpMoves; j++) + { + if (sHatchedEggLevelUpMoves[j] != MOVE_NONE && sHatchedEggFinalMoves[i] == sHatchedEggLevelUpMoves[j]) + { + if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xFFFF) + DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFinalMoves[i]); + break; + } + } + } +} + +static void RemoveEggFromDayCare(struct DayCare *daycare) +{ + daycare->offspringPersonality = 0; + daycare->stepCounter = 0; +} + +void RejectEggFromDayCare(void) +{ + RemoveEggFromDayCare(&gSaveBlock1Ptr->daycare); +} + +static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare) +{ + u16 motherItem, fatherItem; + if (*species == SPECIES_WYNAUT || *species == SPECIES_AZURILL) + { + motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM); + fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM); + if (*species == SPECIES_WYNAUT && motherItem != ITEM_LAX_INCENSE && fatherItem != ITEM_LAX_INCENSE) + { + *species = SPECIES_WOBBUFFET; + } + + if (*species == SPECIES_AZURILL && motherItem != ITEM_SEA_INCENSE && fatherItem != ITEM_SEA_INCENSE) + { + *species = SPECIES_MARILL; + } + } +} + +/*static void GiveVoltTackleIfLightBall(struct Pokemon *mon, struct DayCare *daycare) +{ + u32 motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM); + u32 fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM); + + if (motherItem == ITEM_LIGHT_BALL || fatherItem == ITEM_LIGHT_BALL) + { + if (GiveMoveToMon(mon, MOVE_VOLT_TACKLE) == 0xFFFF) + DeleteFirstMoveAndGiveMoveToMon(mon, MOVE_VOLT_TACKLE); + } +}*/ + +static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots) +{ + u16 i; + u16 species[2]; + u16 eggSpecies; + + // Determine which of the daycare mons is the mother and father of the egg. + // The 0th index of the parentSlots array is considered the mother slot, and the + // 1st index is the father slot. + for (i = 0; i < 2; i++) + { + species[i] = GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES); + if (species[i] == SPECIES_DITTO) + { + parentSlots[0] = i ^ 1; + parentSlots[1] = i; + } + else if (GetBoxMonGender(&daycare->mons[i].mon) == MON_FEMALE) + { + parentSlots[0] = i; + parentSlots[1] = i ^ 1; + } + } + + eggSpecies = GetEggSpecies(species[parentSlots[0]]); + if (eggSpecies == SPECIES_NIDORAN_F && daycare->offspringPersonality & 0x8000) + { + eggSpecies = SPECIES_NIDORAN_M; + } + if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & 0x8000) + { + eggSpecies = SPECIES_VOLBEAT; + } + + // Make Ditto the "mother" slot if the other daycare mon is male. + if (species[parentSlots[1]] == SPECIES_DITTO && GetBoxMonGender(&daycare->mons[parentSlots[0]].mon) != MON_FEMALE) + { + u8 temp = parentSlots[1]; + parentSlots[1] = parentSlots[0]; + parentSlots[0] = temp; + } + + return eggSpecies; +} + +static void _GiveEggFromDaycare(struct DayCare *daycare) // give_egg +{ + struct Pokemon egg; + u16 species; + u8 parentSlots[2]; // 0th index is "mother" daycare slot, 1st is "father" + bool8 isEgg; + + species = DetermineEggSpeciesAndParentSlots(daycare, parentSlots); + AlterEggSpeciesWithIncenseItem(&species, daycare); + SetInitialEggData(&egg, species, daycare); + InheritIVs(&egg, daycare); + BuildEggMoveset(&egg, &daycare->mons[parentSlots[1]].mon, &daycare->mons[parentSlots[0]].mon); + + /*if (species == SPECIES_PICHU) + GiveVoltTackleIfLightBall(&egg, daycare);*/ + + isEgg = TRUE; + SetMonData(&egg, MON_DATA_IS_EGG, &isEgg); + gPlayerParty[PARTY_SIZE - 1] = egg; + CompactPartySlots(); + CalculatePlayerPartyCount(); + RemoveEggFromDayCare(daycare); +} + +void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation) +{ + u8 metLevel; + u16 ball; + u8 language; + u8 metLocation; + u8 isEgg; + + CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, FALSE, 0, FALSE, 0); + metLevel = 0; + ball = ITEM_POKE_BALL; + language = LANGUAGE_JAPANESE; + SetMonData(mon, MON_DATA_POKEBALL, &ball); + SetMonData(mon, MON_DATA_NICKNAME, sJapaneseEggNickname); + SetMonData(mon, MON_DATA_FRIENDSHIP, &gBaseStats[species].eggCycles); + SetMonData(mon, MON_DATA_MET_LEVEL, &metLevel); + SetMonData(mon, MON_DATA_LANGUAGE, &language); + if (setHotSpringsLocation) + { + metLocation = 253; // hot springs; see PokemonSummaryScreen_PrintEggTrainerMemo + SetMonData(mon, MON_DATA_MET_LOCATION, &metLocation); + } + + isEgg = TRUE; + SetMonData(mon, MON_DATA_IS_EGG, &isEgg); +} + +static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare) +{ + u32 personality; + u16 ball; + u8 metLevel; + u8 language; + + personality = daycare->offspringPersonality | (Random() << 16); + CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, TRUE, personality, FALSE, 0); + metLevel = 0; + ball = ITEM_POKE_BALL; + language = LANGUAGE_JAPANESE; + SetMonData(mon, MON_DATA_POKEBALL, &ball); + SetMonData(mon, MON_DATA_NICKNAME, sJapaneseEggNickname); + SetMonData(mon, MON_DATA_FRIENDSHIP, &gBaseStats[species].eggCycles); + SetMonData(mon, MON_DATA_MET_LEVEL, &metLevel); + SetMonData(mon, MON_DATA_LANGUAGE, &language); +} + +void GiveEggFromDaycare(void) +{ + _GiveEggFromDaycare(&gSaveBlock1Ptr->daycare); +} + +static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare) +{ + u32 i, validEggs = 0; + + for (i = 0; i < DAYCARE_MON_COUNT; i++) + { + if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SANITY_HAS_SPECIES)) + daycare->mons[i].steps++, validEggs++; + } + + // try to trigger poke sex + if (daycare->offspringPersonality == 0 && validEggs == 2 && (daycare->mons[1].steps & 0xFF) == 0xFF) + { + u8 loveScore = GetDaycareCompatibilityScore(daycare); + if (loveScore > (Random() * 100u) / USHRT_MAX) + TriggerPendingDaycareEgg(); + } + + if (++daycare->stepCounter == 255) // hatch an egg + { + u32 steps; + + for (i = 0; i < gPlayerPartyCount; i++) + { + if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) + continue; + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_BAD_EGG)) + continue; + + steps = GetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP); + if (steps != 0) // subtract needed steps + { + steps -= 1; + + SetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP, &steps); + } + else // hatch the egg + { + gSpecialVar_0x8004 = i; + return TRUE; + } + } + } + + return FALSE; // no hatching +} + +bool8 ShouldEggHatch(void) +{ + if (GetBoxMonData(&gSaveBlock1Ptr->route5DayCareMon.mon, MON_DATA_SANITY_HAS_SPECIES)) + gSaveBlock1Ptr->route5DayCareMon.steps++; + return _DoEggActions_CheckHatch(&gSaveBlock1Ptr->daycare); +} + +static bool8 IsEggPending(struct DayCare *daycare) +{ + return (daycare->offspringPersonality != 0); +} + +// gStringVar1 = first mon's nickname +// gStringVar2 = second mon's nickname +// gStringVar3 = first mon trainer's name +static void _GetDaycareMonNicknames(struct DayCare *daycare) +{ + u8 text[12]; + if (GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) != 0) + { + GetBoxMonNick(&daycare->mons[0].mon, gStringVar1); + GetBoxMonData(&daycare->mons[0].mon, MON_DATA_OT_NAME, text); + StringCopy(gStringVar3, text); + } + + if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != 0) + { + GetBoxMonNick(&daycare->mons[1].mon, gStringVar2); + } +} + +u16 GetSelectedMonNickAndSpecies(void) +{ + GetBoxMonNick(&gPlayerParty[GetCursorSelectionMonId()].box, gStringVar1); + return GetBoxMonData(&gPlayerParty[GetCursorSelectionMonId()].box, MON_DATA_SPECIES); +} + +void GetDaycareMonNicknames(void) +{ + _GetDaycareMonNicknames(&gSaveBlock1Ptr->daycare); +} + +u8 GetDaycareState(void) +{ + // The daycare can be in 4 possible states: + // 0: default state--no deposited mons, no egg + // 1: there is an egg waiting for the player to pick it up + // 2: there is a single pokemon in the daycare + // 3: there are two pokemon in the daycare, no egg + + u8 numMons; + if (IsEggPending(&gSaveBlock1Ptr->daycare)) + { + // There is an Egg waiting for the player. + return 1; + } + + numMons = CountPokemonInDaycare(&gSaveBlock1Ptr->daycare); + if (numMons != 0) + { + return numMons + 1; + } + + return 0; +} + +u8 GetDaycarePokemonCount(void) +{ + u8 ret = CountPokemonInDaycare(&gSaveBlock1Ptr->daycare); + if (ret) + return ret; + + return 0; +} + +static bool8 EggGroupsOverlap(u16 *eggGroups1, u16 *eggGroups2) +{ + // Determine if the two given egg group lists contain any of the + // same egg groups. + s32 i, j; + + for (i = 0; i < 2; i++) + { + for (j = 0; j < 2; j++) + { + if (eggGroups1[i] == eggGroups2[j]) + return TRUE; + } + } + + return FALSE; +} + +static u8 GetDaycareCompatibilityScore(struct DayCare *daycare) +{ + u32 i; + u16 eggGroups[2][2]; + u16 species[2]; + u32 trainerIds[2]; + u32 genders[2]; + + for (i = 0; i < 2; i++) + { + u32 personality; + + species[i] = GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES); + trainerIds[i] = GetBoxMonData(&daycare->mons[i].mon, MON_DATA_OT_ID); + personality = GetBoxMonData(&daycare->mons[i].mon, MON_DATA_PERSONALITY); + genders[i] = GetGenderFromSpeciesAndPersonality(species[i], personality); + eggGroups[i][0] = gBaseStats[species[i]].eggGroup1; + eggGroups[i][1] = gBaseStats[species[i]].eggGroup2; + } + + // check unbreedable egg group + if (eggGroups[0][0] == EGG_GROUP_UNDISCOVERED || eggGroups[1][0] == EGG_GROUP_UNDISCOVERED) + return 0; + // two Ditto can't breed + if (eggGroups[0][0] == EGG_GROUP_DITTO && eggGroups[1][0] == EGG_GROUP_DITTO) + return 0; + + // now that we checked, one ditto can breed with any other mon + if (eggGroups[0][0] == EGG_GROUP_DITTO || eggGroups[1][0] == EGG_GROUP_DITTO) + { + if (trainerIds[0] == trainerIds[1]) // same trainer + return 20; + + return 50; // different trainers, more chance of poke sex + } + else + { + if (genders[0] == genders[1]) // no homo + return 0; + if (genders[0] == MON_GENDERLESS || genders[1] == MON_GENDERLESS) + return 0; + if (!EggGroupsOverlap(eggGroups[0], eggGroups[1])) // not compatible with each other + return 0; + + if (species[0] == species[1]) // same species + { + if (trainerIds[0] == trainerIds[1]) // same species and trainer + return 50; + + return 70; // different trainers, same species + } + else + { + if (trainerIds[0] != trainerIds[1]) // different trainers, different species + return 50; + + return 20; // different species, same trainer + } + } +} + +static u8 GetDaycareCompatibilityScoreFromSave(void) +{ + return GetDaycareCompatibilityScore(&gSaveBlock1Ptr->daycare); +} + +void SetDaycareCompatibilityString(void) +{ + u8 whichString; + u8 relationshipScore; + + relationshipScore = GetDaycareCompatibilityScoreFromSave(); + whichString = 0; + if (relationshipScore == 0) + whichString = 3; + if (relationshipScore == 20) + whichString = 2; + if (relationshipScore == 50) + whichString = 1; + if (relationshipScore == 70) + whichString = 0; + + StringCopy(gStringVar4, sCompatibilityMessages[whichString]); +} + +bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio) +{ + u8 i; + u8 symbolsCount[2]; // male, female + symbolsCount[0] = symbolsCount[1] = 0; + + for (i = 0; name[i] != EOS; i++) + { + if (name[i] == CHAR_MALE) + symbolsCount[0]++; + if (name[i] == CHAR_FEMALE) + symbolsCount[1]++; + } + + if (genderRatio == MON_MALE && symbolsCount[0] != 0 && symbolsCount[1] == 0) + return TRUE; + if (genderRatio == MON_FEMALE && symbolsCount[1] != 0 && symbolsCount[0] == 0) + return TRUE; + + return FALSE; +} + +static u8 *AppendGenderSymbol(u8 *name, u8 gender) +{ + if (gender == MON_MALE) + { + if (!NameHasGenderSymbol(name, MON_MALE)) + return StringAppend(name, gText_MaleSymbol4); + } + else if (gender == MON_FEMALE) + { + if (!NameHasGenderSymbol(name, MON_FEMALE)) + return StringAppend(name, gText_FemaleSymbol4); + } + + return StringAppend(name, gText_GenderlessSymbol); +} + +static u8 *AppendMonGenderSymbol(u8 *name, struct BoxPokemon *boxMon) +{ + return AppendGenderSymbol(name, GetBoxMonGender(boxMon)); +} + +static void GetDaycareLevelMenuText(struct DayCare *daycare, u8 *dest) +{ + u8 monNames[2][20]; + u8 i; + + *dest = EOS; + for (i = 0; i < 2; i++) + { + GetBoxMonNick(&daycare->mons[i].mon, monNames[i]); + AppendMonGenderSymbol(monNames[i], &daycare->mons[i].mon); + } + + StringCopy(dest, monNames[0]); + StringAppend(dest, sNewLineText); + StringAppend(dest, monNames[1]); + StringAppend(dest, sNewLineText); + StringAppend(dest, gOtherText_Exit); +} + +static void GetDaycareLevelMenuLevelText(struct DayCare *daycare, u8 *dest) +{ + u8 i; + u8 level; + u8 text[20]; + + *dest = EOS; + for (i = 0; i < 2; i++) + { + StringAppend(dest, gText_Lv); + level = GetLevelAfterDaycareSteps(&daycare->mons[i].mon, daycare->mons[i].steps); + ConvertIntToDecimalStringN(text, level, STR_CONV_MODE_LEFT_ALIGN, 3); + StringAppend(dest, text); + StringAppend(dest, sNewLineText); + } +} + +static void DaycareAddTextPrinter(u8 windowId, const u8 *text, u32 x, u32 y) +{ + struct TextPrinterTemplate printer; + + printer.currentChar = text; + printer.windowId = windowId; + printer.fontId = 3; + printer.x = x; + printer.y = y; + printer.currentX = x; + printer.currentY = y; + printer.unk = 0; + gTextFlags.useAlternateDownArrow = 0; + printer.letterSpacing = 1; + printer.lineSpacing = 1; + printer.fgColor = 2; + printer.bgColor = 1; + printer.shadowColor = 3; + + AddTextPrinter(&printer, 0xFF, NULL); +} + +static void DaycarePrintMonNick(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y) +{ + u8 nick[POKEMON_NAME_LENGTH * 2]; + + GetBoxMonNick(&daycare->mons[daycareSlotId].mon, nick); + AppendMonGenderSymbol(nick, &daycare->mons[daycareSlotId].mon); + DaycareAddTextPrinter(windowId, nick, 8, y); +} + +static void DaycarePrintMonLvl(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y) +{ + u8 level; + u32 x; + u8 lvlText[12]; + u8 intText[8]; + + strcpy((char *)lvlText, (const char *)gText_Lv); + level = GetLevelAfterDaycareSteps(&daycare->mons[daycareSlotId].mon, daycare->mons[daycareSlotId].steps); + ConvertIntToDecimalStringN(intText, level, STR_CONV_MODE_LEFT_ALIGN, 3); + StringAppend(lvlText, intText); + x = 132 - GetStringWidth(3, lvlText, 0); + DaycareAddTextPrinter(windowId, lvlText, x, y); +} + +static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y) +{ + if (daycareSlotId < (unsigned) DAYCARE_MON_COUNT) + { + DaycarePrintMonNick(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y); + DaycarePrintMonLvl(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y); + } +} + +#define tMenuListTaskId data[0] +#define tWindowId data[1] + +static void Task_HandleDaycareLevelMenuInput(u8 taskId) +{ + u32 input = ListMenuHandleInput(gTasks[taskId].tMenuListTaskId); + + if (gMain.newKeys & A_BUTTON) + { + switch (input) + { + case 0: + case 1: + gSpecialVar_Result = input; + break; + case 5: + gSpecialVar_Result = 2; + break; + } + DestroyListMenu(gTasks[taskId].tMenuListTaskId, NULL, NULL); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); + DestroyTask(taskId); + EnableBothScriptContexts(); + } + else if (gMain.newKeys & B_BUTTON) + { + gSpecialVar_Result = 2; + DestroyListMenu(gTasks[taskId].tMenuListTaskId, NULL, NULL); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); + DestroyTask(taskId); + EnableBothScriptContexts(); + } +} + +void ShowDaycareLevelMenu(void) +{ + struct ListMenuTemplate menuTemplate; + u8 windowId; + u8 listMenuTaskId; + u8 daycareMenuTaskId; + + windowId = AddWindow(&sDaycareLevelMenuWindowTemplate); + DrawStdWindowFrame(windowId, FALSE); + + menuTemplate = sDaycareListMenuLevelTemplate; + menuTemplate.windowId = windowId; + listMenuTaskId = ListMenuInit(&menuTemplate, 0, 0); + + CopyWindowToVram(windowId, 3); + + daycareMenuTaskId = CreateTask(Task_HandleDaycareLevelMenuInput, 3); + gTasks[daycareMenuTaskId].tMenuListTaskId = listMenuTaskId; + gTasks[daycareMenuTaskId].tWindowId = windowId; +} + +#undef tMenuListTaskId +#undef tWindowId + +void ChooseSendDaycareMon(void) +{ + sub_8128370(); + gMain.savedCallback = CB2_ReturnToField; +} + +// Route 5 Daycare + +void PutMonInRoute5Daycare(void) +{ + u8 monIdx = GetCursorSelectionMonId(); + StorePokemonInDaycare(&gPlayerParty[monIdx], &gSaveBlock1Ptr->route5DayCareMon); +} + +void GetCostToWithdrawRoute5DaycareMon(void) +{ + u16 cost = GetDaycareCostForSelectedMon(&gSaveBlock1Ptr->route5DayCareMon); + gSpecialVar_0x8005 = cost; +} + +bool8 IsThereMonInRoute5Daycare(void) +{ + if (GetBoxMonData(&gSaveBlock1Ptr->route5DayCareMon.mon, MON_DATA_SPECIES) != SPECIES_NONE) + return TRUE; + + return FALSE; +} + +u8 GetNumLevelsGainedForRoute5DaycareMon(void) +{ + return GetNumLevelsGainedForDaycareMon(&gSaveBlock1Ptr->route5DayCareMon); +} + +u16 TakePokemonFromRoute5Daycare(void) +{ + return TakeSelectedPokemonFromDaycare(&gSaveBlock1Ptr->route5DayCareMon); +} + +static void CreatedHatchedMon(struct Pokemon *egg, struct Pokemon *temp) +{ + u16 species; + u32 personality, pokerus; + u8 i, friendship, language, gameMet, markings, obedience; + u16 moves[4]; + u32 ivs[NUM_STATS]; + + + species = GetMonData(egg, MON_DATA_SPECIES); + + for (i = 0; i < 4; i++) + { + moves[i] = GetMonData(egg, MON_DATA_MOVE1 + i); + } + + personality = GetMonData(egg, MON_DATA_PERSONALITY); + + for (i = 0; i < NUM_STATS; i++) + { + ivs[i] = GetMonData(egg, MON_DATA_HP_IV + i); + } + +// language = GetMonData(egg, MON_DATA_LANGUAGE); + gameMet = GetMonData(egg, MON_DATA_MET_GAME); + markings = GetMonData(egg, MON_DATA_MARKINGS); + pokerus = GetMonData(egg, MON_DATA_POKERUS); + obedience = GetMonData(egg, MON_DATA_OBEDIENCE); + + CreateMon(temp, species, EGG_HATCH_LEVEL, 32, TRUE, personality, 0, 0); + + for (i = 0; i < 4; i++) + { + SetMonData(temp, MON_DATA_MOVE1 + i, &moves[i]); + } + + for (i = 0; i < NUM_STATS; i++) + { + SetMonData(temp, MON_DATA_HP_IV + i, &ivs[i]); + } + + language = GAME_LANGUAGE; + SetMonData(temp, MON_DATA_LANGUAGE, &language); + SetMonData(temp, MON_DATA_MET_GAME, &gameMet); + SetMonData(temp, MON_DATA_MARKINGS, &markings); + + friendship = 120; + SetMonData(temp, MON_DATA_FRIENDSHIP, &friendship); + SetMonData(temp, MON_DATA_POKERUS, &pokerus); + SetMonData(temp, MON_DATA_OBEDIENCE, &obedience); + + *egg = *temp; +} + +static void AddHatchedMonToParty(u8 id) +{ + u8 isEgg = 0x46; // ? + u16 pokeNum; + u8 name[12]; + u16 ball; + u16 caughtLvl; + u8 mapNameID; + struct Pokemon* mon = &gPlayerParty[id]; + + CreatedHatchedMon(mon, &gEnemyParty[0]); + SetMonData(mon, MON_DATA_IS_EGG, &isEgg); + + pokeNum = GetMonData(mon, MON_DATA_SPECIES); + GetSpeciesName(name, pokeNum); + SetMonData(mon, MON_DATA_NICKNAME, name); + + pokeNum = SpeciesToNationalPokedexNum(pokeNum); + GetSetPokedexFlag(pokeNum, FLAG_SET_SEEN); + GetSetPokedexFlag(pokeNum, FLAG_SET_CAUGHT); + + GetMonNick(mon, gStringVar1); + + ball = ITEM_POKE_BALL; + SetMonData(mon, MON_DATA_POKEBALL, &ball); + + caughtLvl = 0; + SetMonData(mon, MON_DATA_MET_LEVEL, &caughtLvl); + + mapNameID = GetCurrentRegionMapSectionId(); + SetMonData(mon, MON_DATA_MET_LOCATION, &mapNameID); + + MonRestorePP(mon); + CalculateMonStats(mon); +} + +void ScriptHatchMon(void) +{ + AddHatchedMonToParty(gSpecialVar_0x8004); +} + +static bool8 sub_8046E34(struct DayCare *daycare, u8 daycareId) +{ + u8 nick[0x20]; + struct DaycareMon *daycareMon = &daycare->mons[daycareId]; + + GetBoxMonNick(&daycareMon->mon, nick); + if (daycareMon->mail.message.itemId != 0 + && (StringCompare(nick, daycareMon->mail.monName) != 0 + || StringCompare(gSaveBlock2Ptr->playerName, daycareMon->mail.OT_name) != 0)) + { + StringCopy(gStringVar1, nick); + StringCopy(gStringVar2, daycareMon->mail.OT_name); + StringCopy(gStringVar3, daycareMon->mail.monName); + return TRUE; + } + return FALSE; +} + +bool8 sub_8046EAC(void) +{ + return sub_8046E34(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004); +} + +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; + +static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc) +{ + u8 r4 = 0; + u8 spriteID = 0; // r7 + struct Pokemon* mon = NULL; // r5 + + if (a0 == 0) + { + mon = &gPlayerParty[pokeID]; + r4 = 1; + } + if (a0 == 1) + { + mon = &gPlayerParty[pokeID]; + r4 = 3; + } + switch (switchID) + { + case 0: + { + u16 species = GetMonData(mon, MON_DATA_SPECIES); + u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); + sub_800ECC4(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid); + LoadCompressedObjectPalette(GetMonSpritePalStruct(mon)); + *speciesLoc = species; + } + break; + case 1: + SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, r4); + spriteID = CreateSprite(&gMultiuseSpriteTemplate, 120, 70, 6); + gSprites[spriteID].invisible = TRUE; + gSprites[spriteID].callback = SpriteCallbackDummy; + break; + } + return spriteID; +} + +static void VBlankCB_EggHatch(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void EggHatch(void) +{ + ScriptContext2_Enable(); + CreateTask(Task_EggHatch, 10); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + sub_812B478(); +} + +static void Task_EggHatch(u8 taskID) +{ + if (!gPaletteFade.active) + { + CleanupOverworldWindowsAndTilemaps(); + SetMainCallback2(CB2_EggHatch_0); + gFieldCallback = FieldCallback_ReturnToEventScript2; + DestroyTask(taskID); + } +} + +static void CB2_EggHatch_0(void) +{ + switch (gMain.state) + { + case 0: + SetGpuReg(REG_OFFSET_DISPCNT, 0); + + sEggHatchData = Alloc(sizeof(struct EggHatchData)); + AllocateMonSpritesGfx(); + sEggHatchData->eggPartyID = gSpecialVar_0x8004; + sEggHatchData->eggShardVelocityID = 0; + + SetVBlankCallback(VBlankCB_EggHatch); + gSpecialVar_0x8005 = GetCurrentMapMusic(); + + reset_temp_tile_data_buffers(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBgTemplates_EggHatch, ARRAY_COUNT(sBgTemplates_EggHatch)); + + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + + SetBgAttribute(1, 7, 2); + SetBgTilemapBuffer(1, Alloc(0x1000)); + SetBgTilemapBuffer(0, Alloc(0x2000)); + + DeactivateAllTextPrinters(); + ResetPaletteFade(); + FreeAllSpritePalettes(); + ResetSpriteData(); + ResetTasks(); + ScanlineEffect_Stop(); + m4aSoundVSyncOn(); + gMain.state++; + break; + case 1: + InitWindows(sWinTemplates_EggHatch); + sEggHatchData->windowId = 0; + gMain.state++; + break; + case 2: + DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); + CopyToBgTilemapBuffer(0, gFile_graphics_interface_menu_map_tilemap, 0, 0); + LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20); + gMain.state++; + break; + case 3: + LoadSpriteSheet(&sEggHatch_Sheet); + LoadSpriteSheet(&sEggShards_Sheet); + LoadSpritePalette(&sEgg_SpritePalette); + gMain.state++; + break; + case 4: + CopyBgTilemapBufferToVram(0); + AddHatchedMonToParty(sEggHatchData->eggPartyID); + gMain.state++; + break; + case 5: + EggHatchCreateMonSprite(0, 0, sEggHatchData->eggPartyID, &sEggHatchData->species); + gMain.state++; + break; + case 6: + sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(0, 1, sEggHatchData->eggPartyID, &sEggHatchData->species); + gMain.state++; + break; + case 7: + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + LoadPalette(gTradeGba2_Pal, 0x10, 0xA0); + LoadBgTiles(1, gTradeGba_Gfx, 0x1420, 0); + CopyToBgTilemapBuffer(1, gUnknown_08331F60, 0x1000, 0); + CopyBgTilemapBufferToVram(1); + gMain.state++; + break; + case 8: + SetMainCallback2(CB2_EggHatch_1); + sEggHatchData->CB2_state = 0; + break; + } + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void EggHatchSetMonNickname(void) +{ + SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3); + FreeMonSpritesGfx(); + Free(sEggHatchData); + sub_812B484(); + SetMainCallback2(CB2_ReturnToField); +} + +static void Task_EggHatchPlayBGM(u8 taskID) +{ + if (gTasks[taskID].data[0] == 0) + { + StopMapMusic(); + } + if (gTasks[taskID].data[0] == 1) + PlayBGM(MUS_ME_SHINKA); + if (gTasks[taskID].data[0] > 60) + { + PlayBGM(MUS_SHINKA); + DestroyTask(taskID); + // UB: task is destroyed, yet the value is incremented + } + gTasks[taskID].data[0]++; +} + +static void CB2_EggHatch_1(void) +{ + u16 species; + u8 gender; + u32 personality; + + switch (sEggHatchData->CB2_state) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + sEggHatchData->eggSpriteID = CreateSprite(&sSpriteTemplate_EggHatch, 120, 75, 5); + ShowBg(0); + ShowBg(1); + sEggHatchData->CB2_state++; + CreateTask(Task_EggHatchPlayBGM, 5); + break; + case 1: + if (!gPaletteFade.active) + { + FillWindowPixelBuffer(sEggHatchData->windowId, 0x00); + sEggHatchData->CB2_PalCounter = 0; + sEggHatchData->CB2_state++; + } + break; + case 2: + if (++sEggHatchData->CB2_PalCounter > 30) + { + sEggHatchData->CB2_state++; + gSprites[sEggHatchData->eggSpriteID].callback = SpriteCB_Egg_0; + } + break; + case 3: + if (gSprites[sEggHatchData->eggSpriteID].callback == SpriteCallbackDummy) + { + PlayCry1(sEggHatchData->species, 0); + sEggHatchData->CB2_state++; + } + break; + case 4: + if (IsCryFinished()) + { + sEggHatchData->CB2_state++; + } + break; + case 5: + GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg); + EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF); + PlayFanfare(MUS_FANFA5); + sEggHatchData->CB2_state++; + PutWindowTilemap(sEggHatchData->windowId); + CopyWindowToVram(sEggHatchData->windowId, 3); + break; + case 6: + if (IsFanfareTaskInactive()) + sEggHatchData->CB2_state++; + break; + case 7: + if (IsFanfareTaskInactive()) + sEggHatchData->CB2_state++; + break; + case 8: + GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_NickHatchPrompt); + EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 2, 1); + sEggHatchData->CB2_state++; + break; + case 9: + if (!IsTextPrinterActive(sEggHatchData->windowId)) + { + LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, 0xE0); + CreateYesNoMenu(&sYesNoWinTemplate, 3, 0, 2, 0x140, 0xE, 0); + sEggHatchData->CB2_state++; + } + break; + case 10: + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case 0: + GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3); + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); + gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyID]); + personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_PERSONALITY, 0); + DoNamingScreen(3, gStringVar3, species, gender, personality, EggHatchSetMonNickname); + break; + case 1: + case -1: + sEggHatchData->CB2_state++; + } + break; + case 11: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + sEggHatchData->CB2_state++; + break; + case 12: + if (!gPaletteFade.active) + { + RemoveWindow(sEggHatchData->windowId); + UnsetBgTilemapBuffer(0); + UnsetBgTilemapBuffer(1); + Free(sEggHatchData); + SetMainCallback2(CB2_ReturnToField); + sub_812B484(); + } + break; + } + + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void SpriteCB_Egg_0(struct Sprite* sprite) +{ + if (++sprite->data[0] > 20) + { + sprite->callback = SpriteCB_Egg_1; + sprite->data[0] = 0; + } + else + { + sprite->data[1] = (sprite->data[1] + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 1); + if (sprite->data[0] == 15) + { + PlaySE(SE_BOWA); + StartSpriteAnim(sprite, 1); + CreateRandomEggShardSprite(); + } + } +} + +static void SpriteCB_Egg_1(struct Sprite* sprite) +{ + if (++sprite->data[2] > 30) + { + if (++sprite->data[0] > 20) + { + sprite->callback = SpriteCB_Egg_2; + sprite->data[0] = 0; + sprite->data[2] = 0; + } + else + { + sprite->data[1] = (sprite->data[1] + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 2); + if (sprite->data[0] == 15) + { + PlaySE(SE_BOWA); + StartSpriteAnim(sprite, 2); + } + } + } +} + +struct UnkStruct_82349CC +{ + u8 field_0; + u8 field_1; + u8 field_2; + u8 field_3; +}; + +extern const struct UnkStruct_82349CC gUnknown_82349CC[NUM_SPECIES]; + +static void SpriteCB_Egg_2(struct Sprite* sprite) +{ + if (++sprite->data[2] > 30) + { + if (++sprite->data[0] > 38) + { + u16 species; + + sprite->callback = SpriteCB_Egg_3; + sprite->data[0] = 0; + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); + gSprites[sEggHatchData->pokeSpriteID].pos2.x = 0; + gSprites[sEggHatchData->pokeSpriteID].pos2.y = gUnknown_82349CC[species].field_1; + } + else + { + sprite->data[1] = (sprite->data[1] + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 2); + if (sprite->data[0] == 15) + { + PlaySE(SE_BOWA); + StartSpriteAnim(sprite, 2); + CreateRandomEggShardSprite(); + CreateRandomEggShardSprite(); + } + if (sprite->data[0] == 30) + PlaySE(SE_BOWA); + } + } +} + +static void SpriteCB_Egg_3(struct Sprite* sprite) +{ + if (++sprite->data[0] > 50) + { + sprite->callback = SpriteCB_Egg_4; + sprite->data[0] = 0; + } +} + +static void SpriteCB_Egg_4(struct Sprite* sprite) +{ + s16 i; + if (sprite->data[0] == 0) + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, 0xFFFF); + if (sprite->data[0] < 4u) + { + for (i = 0; i <= 3; i++) + CreateRandomEggShardSprite(); + } + sprite->data[0]++; + if (!gPaletteFade.active) + { + PlaySE(SE_JIHANKI); + sprite->invisible = TRUE; + sprite->callback = SpriteCB_Egg_5; + sprite->data[0] = 0; + } +} + +static void SpriteCB_Egg_5(struct Sprite* sprite) +{ + if (sprite->data[0] == 0) + { + gSprites[sEggHatchData->pokeSpriteID].invisible = FALSE; + StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1); + } + if (sprite->data[0] == 8) + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0x10, 0, 0xFFFF); + if (sprite->data[0] <= 9) + gSprites[sEggHatchData->pokeSpriteID].pos1.y -= 1; + if (sprite->data[0] > 40) + sprite->callback = SpriteCallbackDummy; + sprite->data[0]++; +} + +static void SpriteCB_EggShard(struct Sprite* sprite) +{ + sprite->data[4] += sprite->data[1]; + sprite->data[5] += sprite->data[2]; + + sprite->pos2.x = sprite->data[4] / 256; + sprite->pos2.y = sprite->data[5] / 256; + + sprite->data[2] += sprite->data[3]; + + if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data[2] > 0) + DestroySprite(sprite); +} + +static void CreateRandomEggShardSprite(void) +{ + u16 spriteAnimIndex; + + s16 velocity1 = sEggShardVelocities[sEggHatchData->eggShardVelocityID][0]; + s16 velocity2 = sEggShardVelocities[sEggHatchData->eggShardVelocityID][1]; + sEggHatchData->eggShardVelocityID++; + spriteAnimIndex = Random() % 4; + CreateEggShardSprite(120, 60, velocity1, velocity2, 100, spriteAnimIndex); +} + +static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex) +{ + u8 spriteID = CreateSprite(&sSpriteTemplate_EggShard, x, y, 4); + gSprites[spriteID].data[1] = data1; + gSprites[spriteID].data[2] = data2; + gSprites[spriteID].data[3] = data3; + StartSpriteAnim(&gSprites[spriteID], spriteAnimIndex); +} + +static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) +{ + FillWindowPixelBuffer(windowId, 0xFF); + sEggHatchData->textColor.fgColor = 0; + sEggHatchData->textColor.bgColor = 5; + sEggHatchData->textColor.shadowColor = 6; + AddTextPrinterParameterized4(windowId, 3, x, y, 1, 1, &sEggHatchData->textColor, speed, string); +} diff --git a/src/dodrio_berry_picking_2.c b/src/dodrio_berry_picking_2.c new file mode 100644 index 000000000..fc6aa14c6 --- /dev/null +++ b/src/dodrio_berry_picking_2.c @@ -0,0 +1,23 @@ +#include "global.h" +#include "link.h" +#include "link_rfu.h" + +void sub_815A5BC(s32 a0) +{ + struct Padded_U8 data[2]; + data[0].value = 1; + data[1].value = a0; + sub_80F9E2C(data); +} + +u8 sub_815A5E8(s32 a0) +{ + u8 * r1; + if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00) + return 0; + r1 = (u8 *)&gRecvCmds[a0][1]; + if (r1[0] == 1) + return r1[4]; + return 0; +} + diff --git a/src/egg_hatch.c b/src/egg_hatch.c new file mode 100644 index 000000000..5e27a6482 --- /dev/null +++ b/src/egg_hatch.c @@ -0,0 +1,878 @@ +#include "global.h" +#include "pokemon.h" +#include "egg_hatch.h" +#include "pokedex.h" +#include "constants/items.h" +#include "script.h" +#include "decompress.h" +#include "task.h" +#include "palette.h" +#include "main.h" +#include "event_data.h" +#include "sound.h" +#include "constants/songs.h" +#include "text.h" +#include "text_window.h" +#include "string_util.h" +#include "menu.h" +#include "trig.h" +#include "random.h" +#include "malloc.h" +#include "dma3.h" +#include "gpu_regs.h" +#include "bg.h" +#include "m4a.h" +#include "window.h" +#include "graphics.h" +#include "constants/abilities.h" +#include "constants/species.h" +#include "daycare.h" +#include "overworld.h" +#include "scanline_effect.h" +#include "field_weather.h" +#include "international_string_util.h" +#include "naming_screen.h" +#include "pokemon_storage_system.h" +#include "field_screen_effect.h" +#include "battle.h" // to get rid of later +#include "help_system.h" +#include "field_fadetransition.h" +#include "new_menu_helpers.h" + +struct EggHatchData +{ + u8 eggSpriteID; + u8 pokeSpriteID; + u8 CB2_state; + u8 CB2_PalCounter; + u8 eggPartyID; + u8 unused_5; + u8 unused_6; + u8 eggShardVelocityID; + u8 windowId; + u8 unused_9; + u8 unused_A; + u16 species; + struct TextColor textColor; +}; + +extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle +extern const u8 gText_HatchedFromEgg[]; +extern const u8 gText_NickHatchPrompt[]; + +static void Task_EggHatch(u8 taskID); +static void CB2_EggHatch_0(void); +static void CB2_EggHatch_1(void); +static void SpriteCB_Egg_0(struct Sprite* sprite); +static void SpriteCB_Egg_1(struct Sprite* sprite); +static void SpriteCB_Egg_2(struct Sprite* sprite); +static void SpriteCB_Egg_3(struct Sprite* sprite); +static void SpriteCB_Egg_4(struct Sprite* sprite); +static void SpriteCB_Egg_5(struct Sprite* sprite); +static void SpriteCB_EggShard(struct Sprite* sprite); +static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed); +static void CreateRandomEggShardSprite(void); +static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex); + +// IWRAM bss +static IWRAM_DATA struct EggHatchData *sEggHatchData; + +// rom data +static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/egg/normal.gbapal"); +static const u8 sEggHatchTiles[] = INCBIN_U8("graphics/misc/egg_hatch.4bpp"); +static const u8 sEggShardTiles[] = INCBIN_U8("graphics/misc/egg_shard.4bpp"); + +static const struct OamData sOamData_EggHatch = + { + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, + }; + +static const union AnimCmd sSpriteAnim_EggHatch0[] = + { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggHatch1[] = + { + ANIMCMD_FRAME(16, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggHatch2[] = + { + ANIMCMD_FRAME(32, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggHatch3[] = + { + ANIMCMD_FRAME(48, 5), + ANIMCMD_END + }; + +static const union AnimCmd *const sSpriteAnimTable_EggHatch[] = + { + sSpriteAnim_EggHatch0, + sSpriteAnim_EggHatch1, + sSpriteAnim_EggHatch2, + sSpriteAnim_EggHatch3, + }; + +static const struct SpriteSheet sEggHatch_Sheet = + { + .data = sEggHatchTiles, + .size = 2048, + .tag = 12345, + }; + +static const struct SpriteSheet sEggShards_Sheet = + { + .data = sEggShardTiles, + .size = 128, + .tag = 23456, + }; + +static const struct SpritePalette sEgg_SpritePalette = + { + .data = sEggPalette, + .tag = 54321 + }; + +static const struct SpriteTemplate sSpriteTemplate_EggHatch = + { + .tileTag = 12345, + .paletteTag = 54321, + .oam = &sOamData_EggHatch, + .anims = sSpriteAnimTable_EggHatch, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy + }; + +static const struct OamData sOamData_EggShard = + { + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, + }; + +static const union AnimCmd sSpriteAnim_EggShard0[] = + { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggShard1[] = + { + ANIMCMD_FRAME(1, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggShard2[] = + { + ANIMCMD_FRAME(2, 5), + ANIMCMD_END + }; + +static const union AnimCmd sSpriteAnim_EggShard3[] = + { + ANIMCMD_FRAME(3, 5), + ANIMCMD_END + }; + +static const union AnimCmd *const sSpriteAnimTable_EggShard[] = + { + sSpriteAnim_EggShard0, + sSpriteAnim_EggShard1, + sSpriteAnim_EggShard2, + sSpriteAnim_EggShard3, + }; + +static const struct SpriteTemplate sSpriteTemplate_EggShard = + { + .tileTag = 23456, + .paletteTag = 54321, + .oam = &sOamData_EggShard, + .anims = sSpriteAnimTable_EggShard, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_EggShard + }; + +static const struct BgTemplate sBgTemplates_EggHatch[2] = + { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 24, + .screenSize = 3, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 8, + .screenSize = 1, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + }; + +static const struct WindowTemplate sWinTemplates_EggHatch[2] = + { + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0, + .baseBlock = 64 + }, + DUMMY_WIN_TEMPLATE + }; + +static const struct WindowTemplate sYesNoWinTemplate = + { + .bg = 0, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 424 + }; + +static const s16 sEggShardVelocities[][2] = + { + {Q_8_8(-1.5), Q_8_8(-3.75)}, + {Q_8_8(-5), Q_8_8(-3)}, + {Q_8_8(3.5), Q_8_8(-3)}, + {Q_8_8(-4), Q_8_8(-3.75)}, + {Q_8_8(2), Q_8_8(-1.5)}, + {Q_8_8(-0.5), Q_8_8(-6.75)}, + {Q_8_8(5), Q_8_8(-2.25)}, + {Q_8_8(-1.5), Q_8_8(-3.75)}, + {Q_8_8(4.5), Q_8_8(-1.5)}, + {Q_8_8(-1), Q_8_8(-6.75)}, + {Q_8_8(4), Q_8_8(-2.25)}, + {Q_8_8(-3.5), Q_8_8(-3.75)}, + {Q_8_8(1), Q_8_8(-1.5)}, + {Q_8_8(-3.515625), Q_8_8(-6.75)}, + {Q_8_8(4.5), Q_8_8(-2.25)}, + {Q_8_8(-0.5), Q_8_8(-7.5)}, + {Q_8_8(1), Q_8_8(-4.5)}, + {Q_8_8(-2.5), Q_8_8(-2.25)}, + {Q_8_8(2.5), Q_8_8(-7.5)}, + }; + +// code + +static void CreatedHatchedMon(struct Pokemon *egg, struct Pokemon *temp) +{ + u16 species; + u32 personality, pokerus; + u8 i, friendship, language, gameMet, markings, obedience; + u16 moves[4]; + u32 ivs[NUM_STATS]; + + + species = GetMonData(egg, MON_DATA_SPECIES); + + for (i = 0; i < 4; i++) + { + moves[i] = GetMonData(egg, MON_DATA_MOVE1 + i); + } + + personality = GetMonData(egg, MON_DATA_PERSONALITY); + + for (i = 0; i < NUM_STATS; i++) + { + ivs[i] = GetMonData(egg, MON_DATA_HP_IV + i); + } + +// language = GetMonData(egg, MON_DATA_LANGUAGE); + gameMet = GetMonData(egg, MON_DATA_MET_GAME); + markings = GetMonData(egg, MON_DATA_MARKINGS); + pokerus = GetMonData(egg, MON_DATA_POKERUS); + obedience = GetMonData(egg, MON_DATA_OBEDIENCE); + + CreateMon(temp, species, EGG_HATCH_LEVEL, 32, TRUE, personality, 0, 0); + + for (i = 0; i < 4; i++) + { + SetMonData(temp, MON_DATA_MOVE1 + i, &moves[i]); + } + + for (i = 0; i < NUM_STATS; i++) + { + SetMonData(temp, MON_DATA_HP_IV + i, &ivs[i]); + } + + language = GAME_LANGUAGE; + SetMonData(temp, MON_DATA_LANGUAGE, &language); + SetMonData(temp, MON_DATA_MET_GAME, &gameMet); + SetMonData(temp, MON_DATA_MARKINGS, &markings); + + friendship = 120; + SetMonData(temp, MON_DATA_FRIENDSHIP, &friendship); + SetMonData(temp, MON_DATA_POKERUS, &pokerus); + SetMonData(temp, MON_DATA_OBEDIENCE, &obedience); + + *egg = *temp; +} + +static void AddHatchedMonToParty(u8 id) +{ + u8 isEgg = 0x46; // ? + u16 pokeNum; + u8 name[12]; + u16 ball; + u16 caughtLvl; + u8 mapNameID; + struct Pokemon* mon = &gPlayerParty[id]; + + CreatedHatchedMon(mon, &gEnemyParty[0]); + SetMonData(mon, MON_DATA_IS_EGG, &isEgg); + + pokeNum = GetMonData(mon, MON_DATA_SPECIES); + GetSpeciesName(name, pokeNum); + SetMonData(mon, MON_DATA_NICKNAME, name); + + pokeNum = SpeciesToNationalPokedexNum(pokeNum); + GetSetPokedexFlag(pokeNum, FLAG_SET_SEEN); + GetSetPokedexFlag(pokeNum, FLAG_SET_CAUGHT); + + GetMonNick(mon, gStringVar1); + + ball = ITEM_POKE_BALL; + SetMonData(mon, MON_DATA_POKEBALL, &ball); + + caughtLvl = 0; + SetMonData(mon, MON_DATA_MET_LEVEL, &caughtLvl); + + mapNameID = GetCurrentRegionMapSectionId(); + SetMonData(mon, MON_DATA_MET_LOCATION, &mapNameID); + + MonRestorePP(mon); + CalculateMonStats(mon); +} + +void ScriptHatchMon(void) +{ + AddHatchedMonToParty(gSpecialVar_0x8004); +} + +static bool8 sub_8046E34(struct DayCare *daycare, u8 daycareId) +{ + u8 nick[0x20]; + struct DaycareMon *daycareMon = &daycare->mons[daycareId]; + + GetBoxMonNick(&daycareMon->mon, nick); + if (daycareMon->mail.message.itemId != 0 + && (StringCompare(nick, daycareMon->mail.monName) != 0 + || StringCompare(gSaveBlock2Ptr->playerName, daycareMon->mail.OT_name) != 0)) + { + StringCopy(gStringVar1, nick); + StringCopy(gStringVar2, daycareMon->mail.OT_name); + StringCopy(gStringVar3, daycareMon->mail.monName); + return TRUE; + } + return FALSE; +} + +bool8 sub_8046EAC(void) +{ + return sub_8046E34(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004); +} + +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; + +static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc) +{ + u8 r4 = 0; + u8 spriteID = 0; // r7 + struct Pokemon* mon = NULL; // r5 + + if (a0 == 0) + { + mon = &gPlayerParty[pokeID]; + r4 = 1; + } + if (a0 == 1) + { + mon = &gPlayerParty[pokeID]; + r4 = 3; + } + switch (switchID) + { + case 0: + { + u16 species = GetMonData(mon, MON_DATA_SPECIES); + u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); + sub_800ECC4(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid); + LoadCompressedObjectPalette(GetMonSpritePalStruct(mon)); + *speciesLoc = species; + } + break; + case 1: + SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, r4); + spriteID = CreateSprite(&gMultiuseSpriteTemplate, 120, 70, 6); + gSprites[spriteID].invisible = TRUE; + gSprites[spriteID].callback = SpriteCallbackDummy; + break; + } + return spriteID; +} + +static void VBlankCB_EggHatch(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void EggHatch(void) +{ + ScriptContext2_Enable(); + CreateTask(Task_EggHatch, 10); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + sub_812B478(); +} + +static void Task_EggHatch(u8 taskID) +{ + if (!gPaletteFade.active) + { + CleanupOverworldWindowsAndTilemaps(); + SetMainCallback2(CB2_EggHatch_0); + gFieldCallback = FieldCallback_ReturnToEventScript2; + DestroyTask(taskID); + } +} + +static void CB2_EggHatch_0(void) +{ + switch (gMain.state) + { + case 0: + SetGpuReg(REG_OFFSET_DISPCNT, 0); + + sEggHatchData = Alloc(sizeof(struct EggHatchData)); + AllocateMonSpritesGfx(); + sEggHatchData->eggPartyID = gSpecialVar_0x8004; + sEggHatchData->eggShardVelocityID = 0; + + SetVBlankCallback(VBlankCB_EggHatch); + gSpecialVar_0x8005 = GetCurrentMapMusic(); + + reset_temp_tile_data_buffers(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBgTemplates_EggHatch, ARRAY_COUNT(sBgTemplates_EggHatch)); + + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + + SetBgAttribute(1, 7, 2); + SetBgTilemapBuffer(1, Alloc(0x1000)); + SetBgTilemapBuffer(0, Alloc(0x2000)); + + DeactivateAllTextPrinters(); + ResetPaletteFade(); + FreeAllSpritePalettes(); + ResetSpriteData(); + ResetTasks(); + ScanlineEffect_Stop(); + m4aSoundVSyncOn(); + gMain.state++; + break; + case 1: + InitWindows(sWinTemplates_EggHatch); + sEggHatchData->windowId = 0; + gMain.state++; + break; + case 2: + DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); + CopyToBgTilemapBuffer(0, gFile_graphics_interface_menu_map_tilemap, 0, 0); + LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20); + gMain.state++; + break; + case 3: + LoadSpriteSheet(&sEggHatch_Sheet); + LoadSpriteSheet(&sEggShards_Sheet); + LoadSpritePalette(&sEgg_SpritePalette); + gMain.state++; + break; + case 4: + CopyBgTilemapBufferToVram(0); + AddHatchedMonToParty(sEggHatchData->eggPartyID); + gMain.state++; + break; + case 5: + EggHatchCreateMonSprite(0, 0, sEggHatchData->eggPartyID, &sEggHatchData->species); + gMain.state++; + break; + case 6: + sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(0, 1, sEggHatchData->eggPartyID, &sEggHatchData->species); + gMain.state++; + break; + case 7: + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + LoadPalette(gTradeGba2_Pal, 0x10, 0xA0); + LoadBgTiles(1, gTradeGba_Gfx, 0x1420, 0); + CopyToBgTilemapBuffer(1, gUnknown_08331F60, 0x1000, 0); + CopyBgTilemapBufferToVram(1); + gMain.state++; + break; + case 8: + SetMainCallback2(CB2_EggHatch_1); + sEggHatchData->CB2_state = 0; + break; + } + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void EggHatchSetMonNickname(void) +{ + SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3); + FreeMonSpritesGfx(); + Free(sEggHatchData); + sub_812B484(); + SetMainCallback2(CB2_ReturnToField); +} + +static void Task_EggHatchPlayBGM(u8 taskID) +{ + if (gTasks[taskID].data[0] == 0) + { + StopMapMusic(); + } + if (gTasks[taskID].data[0] == 1) + PlayBGM(MUS_ME_SHINKA); + if (gTasks[taskID].data[0] > 60) + { + PlayBGM(MUS_SHINKA); + DestroyTask(taskID); + // UB: task is destroyed, yet the value is incremented + } + gTasks[taskID].data[0]++; +} + +static void CB2_EggHatch_1(void) +{ + u16 species; + u8 gender; + u32 personality; + + switch (sEggHatchData->CB2_state) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + sEggHatchData->eggSpriteID = CreateSprite(&sSpriteTemplate_EggHatch, 120, 75, 5); + ShowBg(0); + ShowBg(1); + sEggHatchData->CB2_state++; + CreateTask(Task_EggHatchPlayBGM, 5); + break; + case 1: + if (!gPaletteFade.active) + { + FillWindowPixelBuffer(sEggHatchData->windowId, 0x00); + sEggHatchData->CB2_PalCounter = 0; + sEggHatchData->CB2_state++; + } + break; + case 2: + if (++sEggHatchData->CB2_PalCounter > 30) + { + sEggHatchData->CB2_state++; + gSprites[sEggHatchData->eggSpriteID].callback = SpriteCB_Egg_0; + } + break; + case 3: + if (gSprites[sEggHatchData->eggSpriteID].callback == SpriteCallbackDummy) + { + PlayCry1(sEggHatchData->species, 0); + sEggHatchData->CB2_state++; + } + break; + case 4: + if (IsCryFinished()) + { + sEggHatchData->CB2_state++; + } + break; + case 5: + GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg); + EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF); + PlayFanfare(MUS_FANFA5); + sEggHatchData->CB2_state++; + PutWindowTilemap(sEggHatchData->windowId); + CopyWindowToVram(sEggHatchData->windowId, 3); + break; + case 6: + if (IsFanfareTaskInactive()) + sEggHatchData->CB2_state++; + break; + case 7: + if (IsFanfareTaskInactive()) + sEggHatchData->CB2_state++; + break; + case 8: + GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_NickHatchPrompt); + EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 2, 1); + sEggHatchData->CB2_state++; + break; + case 9: + if (!IsTextPrinterActive(sEggHatchData->windowId)) + { + LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, 0xE0); + CreateYesNoMenu(&sYesNoWinTemplate, 3, 0, 2, 0x140, 0xE, 0); + sEggHatchData->CB2_state++; + } + break; + case 10: + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case 0: + GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3); + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); + gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyID]); + personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_PERSONALITY, 0); + DoNamingScreen(3, gStringVar3, species, gender, personality, EggHatchSetMonNickname); + break; + case 1: + case -1: + sEggHatchData->CB2_state++; + } + break; + case 11: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + sEggHatchData->CB2_state++; + break; + case 12: + if (!gPaletteFade.active) + { + RemoveWindow(sEggHatchData->windowId); + UnsetBgTilemapBuffer(0); + UnsetBgTilemapBuffer(1); + Free(sEggHatchData); + SetMainCallback2(CB2_ReturnToField); + sub_812B484(); + } + break; + } + + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void SpriteCB_Egg_0(struct Sprite* sprite) +{ + if (++sprite->data[0] > 20) + { + sprite->callback = SpriteCB_Egg_1; + sprite->data[0] = 0; + } + else + { + sprite->data[1] = (sprite->data[1] + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 1); + if (sprite->data[0] == 15) + { + PlaySE(SE_BOWA); + StartSpriteAnim(sprite, 1); + CreateRandomEggShardSprite(); + } + } +} + +static void SpriteCB_Egg_1(struct Sprite* sprite) +{ + if (++sprite->data[2] > 30) + { + if (++sprite->data[0] > 20) + { + sprite->callback = SpriteCB_Egg_2; + sprite->data[0] = 0; + sprite->data[2] = 0; + } + else + { + sprite->data[1] = (sprite->data[1] + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 2); + if (sprite->data[0] == 15) + { + PlaySE(SE_BOWA); + StartSpriteAnim(sprite, 2); + } + } + } +} + +struct UnkStruct_82349CC +{ + u8 field_0; + u8 field_1; + u8 field_2; + u8 field_3; +}; + +extern const struct UnkStruct_82349CC gUnknown_82349CC[NUM_SPECIES]; + +static void SpriteCB_Egg_2(struct Sprite* sprite) +{ + if (++sprite->data[2] > 30) + { + if (++sprite->data[0] > 38) + { + u16 species; + + sprite->callback = SpriteCB_Egg_3; + sprite->data[0] = 0; + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); + gSprites[sEggHatchData->pokeSpriteID].pos2.x = 0; + gSprites[sEggHatchData->pokeSpriteID].pos2.y = gUnknown_82349CC[species].field_1; + } + else + { + sprite->data[1] = (sprite->data[1] + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 2); + if (sprite->data[0] == 15) + { + PlaySE(SE_BOWA); + StartSpriteAnim(sprite, 2); + CreateRandomEggShardSprite(); + CreateRandomEggShardSprite(); + } + if (sprite->data[0] == 30) + PlaySE(SE_BOWA); + } + } +} + +static void SpriteCB_Egg_3(struct Sprite* sprite) +{ + if (++sprite->data[0] > 50) + { + sprite->callback = SpriteCB_Egg_4; + sprite->data[0] = 0; + } +} + +static void SpriteCB_Egg_4(struct Sprite* sprite) +{ + s16 i; + if (sprite->data[0] == 0) + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, 0xFFFF); + if (sprite->data[0] < 4u) + { + for (i = 0; i <= 3; i++) + CreateRandomEggShardSprite(); + } + sprite->data[0]++; + if (!gPaletteFade.active) + { + PlaySE(SE_JIHANKI); + sprite->invisible = TRUE; + sprite->callback = SpriteCB_Egg_5; + sprite->data[0] = 0; + } +} + +static void SpriteCB_Egg_5(struct Sprite* sprite) +{ + if (sprite->data[0] == 0) + { + gSprites[sEggHatchData->pokeSpriteID].invisible = FALSE; + StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1); + } + if (sprite->data[0] == 8) + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0x10, 0, 0xFFFF); + if (sprite->data[0] <= 9) + gSprites[sEggHatchData->pokeSpriteID].pos1.y -= 1; + if (sprite->data[0] > 40) + sprite->callback = SpriteCallbackDummy; + sprite->data[0]++; +} + +static void SpriteCB_EggShard(struct Sprite* sprite) +{ + sprite->data[4] += sprite->data[1]; + sprite->data[5] += sprite->data[2]; + + sprite->pos2.x = sprite->data[4] / 256; + sprite->pos2.y = sprite->data[5] / 256; + + sprite->data[2] += sprite->data[3]; + + if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data[2] > 0) + DestroySprite(sprite); +} + +static void CreateRandomEggShardSprite(void) +{ + u16 spriteAnimIndex; + + s16 velocity1 = sEggShardVelocities[sEggHatchData->eggShardVelocityID][0]; + s16 velocity2 = sEggShardVelocities[sEggHatchData->eggShardVelocityID][1]; + sEggHatchData->eggShardVelocityID++; + spriteAnimIndex = Random() % 4; + CreateEggShardSprite(120, 60, velocity1, velocity2, 100, spriteAnimIndex); +} + +static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex) +{ + u8 spriteID = CreateSprite(&sSpriteTemplate_EggShard, x, y, 4); + gSprites[spriteID].data[1] = data1; + gSprites[spriteID].data[2] = data2; + gSprites[spriteID].data[3] = data3; + StartSpriteAnim(&gSprites[spriteID], spriteAnimIndex); +} + +static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) +{ + FillWindowPixelBuffer(windowId, 0xFF); + sEggHatchData->textColor.fgColor = 0; + sEggHatchData->textColor.bgColor = 5; + sEggHatchData->textColor.shadowColor = 6; + AddTextPrinterParameterized4(windowId, 3, x, y, 1, 1, &sEggHatchData->textColor, speed, string); +} diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c new file mode 100644 index 000000000..2a9b9ea71 --- /dev/null +++ b/src/ereader_helpers.c @@ -0,0 +1,397 @@ +#include "global.h" +#include "link.h" +#include "unk_815c27c.h" + +enum { + EREADER_XFR_STATE_INIT, + EREADER_XFR_STATE_HANDSHAKE, + EREADER_XFR_STATE_START, + EREADER_XFR_STATE_TRANSFER, +}; + +struct SendRecvMgr +{ + u8 sendOrRecv; + u8 state; + u8 field_02; + u8 field_03; + u8 field_04; + u32 * dataptr; + int cursor; + int size; + u32 checksum; +}; + +static bool16 DetermineSendRecvState(u8); +static void SetUpTransferManager(size_t, const void *, void *); +static void StartTm3(void); +static void EnableSio(void); +static void DisableTm3(void); +static void GetKeyInput(void); + +static struct SendRecvMgr sSendRecvMgr; +static u16 sJoyNewOrRepeated; +static u16 sJoyNew; +static u16 sSendRecvStatus; +static u16 sCounter1; +static u32 sCounter2; +static u16 sSavedIme; +static u16 sSavedIe; +static u16 sSavedTm3Cnt; +static u16 sSavedSioCnt; +static u16 sSavedSioCnt; +static u16 sSavedRCnt; + +int EReader_Send(size_t r6, const void * r5) +{ + int result; + EReaderHelper_SaveRegsState(); + + while (1) + { + GetKeyInput(); + if (TEST_BUTTON(sJoyNew, B_BUTTON)) + gUnknown_3003F84 = 2; + + sSendRecvStatus = EReaderHandleTransfer(1, r6, r5, NULL); + if ((sSendRecvStatus & 0x13) == 0x10) + { + result = 0; + break; + } + else if (sSendRecvStatus & 8) + { + result = 1; + break; + } + else if (sSendRecvStatus & 4) + { + result = 2; + break; + } + else + { + gUnknown_3003F84 = 0; + VBlankIntrWait(); + } + } + + CpuFill32(0, &sSendRecvMgr, sizeof(sSendRecvMgr)); + EReaderHelper_RestoreRegsState(); + return result; +} + +int EReader_Recv(void * r5) +{ + int result; + EReaderHelper_SaveRegsState(); + + while (1) + { + GetKeyInput(); + if (TEST_BUTTON(sJoyNew, B_BUTTON)) + gUnknown_3003F84 = 2; + + sSendRecvStatus = EReaderHandleTransfer(0, 0, NULL, r5); + if ((sSendRecvStatus & 0x13) == 0x10) + { + result = 0; + break; + } + else if (sSendRecvStatus & 8) + { + result = 1; + break; + } + else if (sSendRecvStatus & 4) + { + result = 2; + break; + } + else + { + gUnknown_3003F84 = 0; + VBlankIntrWait(); + } + } + + CpuFill32(0, &sSendRecvMgr, sizeof(sSendRecvMgr)); + EReaderHelper_RestoreRegsState(); + return result; +} + +static void CloseSerial(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_SIOCNT = 0; + REG_TM3CNT_H = 0; + REG_IF = INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL; +} + +static void OpenSerialMulti(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_RCNT = 0; + REG_SIOCNT = SIO_MULTI_MODE; + REG_SIOCNT |= SIO_INTR_ENABLE | SIO_115200_BPS; + REG_IME = 0; + REG_IE |= INTR_FLAG_SERIAL; + REG_IME = 1; + if (sSendRecvMgr.state == 0) + CpuFill32(0, &sSendRecvMgr, sizeof(sSendRecvMgr)); +} + +static void OpenSerial32(void) +{ + REG_RCNT = 0; + REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE; + REG_SIOCNT |= SIO_MULTI_SD; + gUnknown_3003F84 = 0; + sCounter1 = 0; + sCounter2 = 0; +} + +u16 EReaderHandleTransfer(u8 mode, size_t size, const void * data, void * recvBuffer) +{ + switch (sSendRecvMgr.state) + { + case 0: + OpenSerialMulti(); + sSendRecvMgr.field_02 = 1; + sSendRecvMgr.state = 1; + break; + case 1: + if (DetermineSendRecvState(mode)) + EnableSio(); + if (gUnknown_3003F84 == 2) + { + sSendRecvMgr.field_04 = 2; + sSendRecvMgr.state = 6; + } + break; + case 2: + OpenSerial32(); + SetUpTransferManager(size, data, recvBuffer); + sSendRecvMgr.state = 3; + // fallthrough + case 3: + if (gUnknown_3003F84 == 2) + { + sSendRecvMgr.field_04 = 2; + sSendRecvMgr.state = 6; + } + else + { + sCounter1++; + sCounter2++; + if (sSendRecvMgr.sendOrRecv == 0 && sCounter2 > 60) + { + sSendRecvMgr.field_04 = 1; + sSendRecvMgr.state = 6; + } + if (sSendRecvMgr.field_02 != 2) + { + if (sSendRecvMgr.sendOrRecv != 0 && sCounter1 > 2) + { + EnableSio(); + sSendRecvMgr.field_02 = 2; + } + else + { + EnableSio(); + sSendRecvMgr.field_02 = 2; + } + } + } + break; + case 4: + OpenSerialMulti(); + sSendRecvMgr.state = 5; + break; + case 5: + if (sSendRecvMgr.sendOrRecv == 1 && sCounter1 > 2) + EnableSio(); + if (++sCounter1 > 60) + { + sSendRecvMgr.field_04 = 1; + sSendRecvMgr.state = 6; + } + break; + case 6: + if (sSendRecvMgr.field_02 != 0) + { + CloseSerial(); + sSendRecvMgr.field_02 = 0; + } + break; + } + return sSendRecvMgr.field_02 | (sSendRecvMgr.field_04 << 2) | (sSendRecvMgr.field_03 << 4); +} + +static bool16 DetermineSendRecvState(u8 mode) +{ + bool16 resp; + if ((*(vu32 *)REG_ADDR_SIOCNT & (SIO_MULTI_SI | SIO_MULTI_SD)) == SIO_MULTI_SD && mode) + resp = sSendRecvMgr.sendOrRecv = TRUE; + else + resp = sSendRecvMgr.sendOrRecv = FALSE; + return resp; +} + +static void SetUpTransferManager(size_t size, const void * data, void * recvBuffer) +{ + if (sSendRecvMgr.sendOrRecv) + { + REG_SIOCNT |= SIO_38400_BPS; + sSendRecvMgr.dataptr = (void *)data; + REG_SIODATA32 = size; + sSendRecvMgr.size = size / 4 + 1; + StartTm3(); + } + else + { + REG_SIOCNT |= SIO_9600_BPS; + sSendRecvMgr.dataptr = recvBuffer; + } +} + +static void StartTm3(void) +{ + REG_TM3CNT_L = -601; + REG_TM3CNT_H = TIMER_INTR_ENABLE; + REG_IME = 0; + REG_IE |= INTR_FLAG_TIMER3; + REG_IME = 1; +} + +void EReaderHelper_Timer3Callback(void) +{ + DisableTm3(); + EnableSio(); +} + +void EReaderHelper_SerialCallback(void) +{ + u16 recv[4]; + u16 i; + u16 cnt1; + u16 cnt2; + u32 recv32; + + switch (sSendRecvMgr.state) + { + case 1: + REG_SIOMLT_SEND = 0xCCD0; + *(u64 *)recv = REG_SIOMLT_RECV; + for (i = 0, cnt1 = 0, cnt2 = 0; i < 4; i++) + { + if (recv[i] == 0xCCD0) + cnt1++; + else if (recv[i] != 0xFFFF) + cnt2++; + } + if (cnt1 == 2 && cnt2 == 0) + sSendRecvMgr.state = 2; + break; + case 3: + recv32 = REG_SIODATA32; + if (sSendRecvMgr.cursor == 0 && sSendRecvMgr.sendOrRecv == 0) + sSendRecvMgr.size = recv32 / 4 + 1; + if (sSendRecvMgr.sendOrRecv == 1) + { + if (sSendRecvMgr.cursor < sSendRecvMgr.size) + { + REG_SIODATA32 = sSendRecvMgr.dataptr[sSendRecvMgr.cursor]; + sSendRecvMgr.checksum += sSendRecvMgr.dataptr[sSendRecvMgr.cursor]; + } + else + REG_SIODATA32 = sSendRecvMgr.checksum; + } + else + { + if (sSendRecvMgr.cursor > 0 && sSendRecvMgr.cursor < sSendRecvMgr.size + 1) + { + sSendRecvMgr.dataptr[sSendRecvMgr.cursor - 1] = recv32; + sSendRecvMgr.checksum += recv32; + } + else if (sSendRecvMgr.cursor != 0) + { + if (sSendRecvMgr.checksum == recv32) + sSendRecvMgr.field_03 = 1; + else + sSendRecvMgr.field_03 = 2; + } + sCounter2 = 0; + } + sSendRecvMgr.cursor++; + if (sSendRecvMgr.cursor < sSendRecvMgr.size + 2) + { + if (sSendRecvMgr.sendOrRecv != 0) + REG_TM3CNT_H |= TIMER_ENABLE; + else + EnableSio(); + } + else + { + sSendRecvMgr.state = 4; + sCounter1 = 0; + } + break; + case 5: + if (sSendRecvMgr.sendOrRecv == 0) + REG_SIODATA8 = sSendRecvMgr.field_03; + *(vu64 *)recv = REG_SIOMLT_RECV; + if (recv[1] == 1 || recv[1] == 2) + { + if (sSendRecvMgr.sendOrRecv == 1) + sSendRecvMgr.field_03 = recv[1]; + sSendRecvMgr.state = 6; + } + break; + } +} + +static void EnableSio(void) +{ + REG_SIOCNT |= SIO_ENABLE; +} + +static void DisableTm3(void) +{ + REG_TM3CNT_H &= ~TIMER_ENABLE; + REG_TM3CNT_L = -601; +} + +static void GetKeyInput(void) +{ + u16 rawKeys = REG_KEYINPUT ^ 0x3FF; + sJoyNew = rawKeys & ~sJoyNewOrRepeated; + sJoyNewOrRepeated = rawKeys; +} + +void EReaderHelper_SaveRegsState(void) +{ + sSavedIme = REG_IME; + sSavedIe = REG_IE; + sSavedTm3Cnt = REG_TM3CNT_H; + sSavedSioCnt = REG_SIOCNT; + sSavedRCnt = REG_RCNT; +} + +void EReaderHelper_RestoreRegsState(void) +{ + REG_IME = sSavedIme; + REG_IE = sSavedIe; + REG_TM3CNT_H = sSavedTm3Cnt; + REG_SIOCNT = sSavedSioCnt; + REG_RCNT = sSavedRCnt; +} + +void EReaderHelper_ClearsSendRecvMgr(void) +{ + CpuFill32(0, &sSendRecvMgr, sizeof(sSendRecvMgr)); +} diff --git a/src/fame_checker.c b/src/fame_checker.c index bbbe02c58..bf99bdf56 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -8,7 +8,7 @@ #include "battle.h" #include "battle_setup.h" #include "menu.h" -#include "battle_dome_cards.h" +#include "trainer_pokemon_sprites.h" #include "scanline_effect.h" #include "new_menu_helpers.h" #include "item_menu.h" @@ -127,9 +127,9 @@ extern const u8 gFameCheckerText_Cancel[]; extern const u8 gFameCheckerText_ListMenuCursor[]; extern const u8 gFameCheckerText_FameCheckerWillBeClosed[]; extern const u8 gFameCheckerText_ClearTextbox[]; -extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" -extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" -extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$" +extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" +extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" +extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$" extern const u8 gFameCheckerOakName[]; // "OAK$" extern const u8 gFameCheckerDaisyName[]; // "DAISY$" extern const u8 gFameCheckerBillName[]; // "BILL$" @@ -552,7 +552,7 @@ static void Task_TopMenuHandleInput(u8 taskId) if (FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox) == 0xFF) { RunTextPrinters(); - if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != UseFameCheckerFromMenu) + if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != ReturnToBagFromKeyItem) task->func = Task_StartToCloseFameChecker; else if (JOY_NEW(START_BUTTON)) { @@ -639,7 +639,7 @@ static bool8 TryExitPickMode(u8 taskId) static void MessageBoxPrintEmptyText(void) { - AddTextPrinterParametrized(2, 2, gFameCheckerText_ClearTextbox, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(2, 2, gFameCheckerText_ClearTextbox, 0, NULL, 2, 1, 3); } static void Task_EnterPickMode(u8 taskId) @@ -779,7 +779,7 @@ static void GetPickModeText(void) if (HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE) offset = NUM_FAMECHECKER_PERSONS; StringExpandPlaceholders(gStringVar4, sFameCheckerNameAndQuotesPointers[sFameCheckerData->unlockedPersons[who] + offset]); - AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); + AddTextPrinterParameterized2(FCWINDOWID_MSGBOX, 2, gStringVar4, GetTextSpeedSetting(), NULL, 2, 1, 3); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } } @@ -790,7 +790,7 @@ static void PrintSelectedNameInBrightGreen(u8 taskId) u16 cursorPos = FameCheckerGetCursorY(); FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); StringExpandPlaceholders(gStringVar4, sFameCheckerFlavorTextPointers[sFameCheckerData->unlockedPersons[cursorPos] * 6 + data[1]]); - AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); + AddTextPrinterParameterized2(FCWINDOWID_MSGBOX, 2, gStringVar4, GetTextSpeedSetting(), NULL, 2, 1, 3); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } @@ -803,7 +803,7 @@ static void WipeMsgBoxAndTransfer(void) static void Setup_DrawMsgAndListBoxes(void) { sub_80F6E9C(); - sub_80F6EE4(FCWINDOWID_MSGBOX, TRUE); + DrawDialogueFrame(FCWINDOWID_MSGBOX, TRUE); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_LIST); } @@ -853,7 +853,7 @@ static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId) FreeQuestionMarkSpriteResources(); FreeListMenuSelectorArrowPairResources(); SetMainCallback2(sFameCheckerData->savedCallback); - sub_810713C(sFameCheckerData->listMenuTaskId, 0, 0); + DestroyListMenu(sFameCheckerData->listMenuTaskId, NULL, NULL); Free(sBg3TilemapBuffer); Free(sBg1TilemapBuffer); Free(sBg2TilemapBuffer); @@ -900,7 +900,7 @@ static void PrintUIHelp(u8 state) } width = GetStringWidth(0, src, 0); FillWindowPixelRect(FCWINDOWID_UIHELP, 0x00, 0, 0, 0xc0, 0x10); - AddTextPrinterParametrized2(FCWINDOWID_UIHELP, 0, 188 - width, 0, 0, 2, &sTextColor_White, -1, src); + AddTextPrinterParameterized4(FCWINDOWID_UIHELP, 0, 188 - width, 0, 0, 2, &sTextColor_White, -1, src); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_UIHELP); } @@ -1009,10 +1009,10 @@ static void FCSetup_ClearVideoRegisters(void) static void FCSetup_ResetTasksAndSpriteResources(void) { - remove_some_task(); + ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); - dp13_810BB8C(); + ResetAllPicSprites(); ResetPaletteFade(); npc_paltag_set_load(0); gReservedSpritePaletteCount = 7; @@ -1181,7 +1181,7 @@ static u8 CreatePersonPicSprite(u8 fcPersonIdx) } else { - spriteId = sub_810C2A4(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF); + spriteId = CreateTrainerPicSprite(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF); } gSprites[spriteId].callback = SpriteCB_FCSpinningPokeball; if (gSaveBlock1Ptr->fameChecker[fcPersonIdx].pickState == FCPICKSTATE_SILHOUETTE) @@ -1202,7 +1202,7 @@ static void DestroyPersonPicSprite(u8 taskId, u16 who) ) DestroySprite(&gSprites[data[2]]); else - sub_810C2E8(data[2]); + FreeAndDestroyTrainerPicSprite(data[2]); } static void UpdateIconDescriptionBox(u8 whichText) @@ -1213,10 +1213,10 @@ static void UpdateIconDescriptionBox(u8 whichText) gIconDescriptionBoxIsOpen = 1; FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 0x58, 0x20); width = (0x54 - GetStringWidth(0, sFlavorTextOriginLocationTexts[idx], 0)) / 2; - AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &sTextColor_DkGrey, -1, sFlavorTextOriginLocationTexts[idx]); + AddTextPrinterParameterized4(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &sTextColor_DkGrey, -1, sFlavorTextOriginLocationTexts[idx]); StringExpandPlaceholders(gStringVar1, sFlavorTextOriginObjectNameTexts[idx]); width = (0x54 - GetStringWidth(0, gStringVar1, 0)) / 2; - AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 10, 0, 2, &sTextColor_DkGrey, -1, gStringVar1); + AddTextPrinterParameterized4(FCWINDOWID_ICONDESC, 0, width, 10, 0, 2, &sTextColor_DkGrey, -1, gStringVar1); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); } @@ -1270,7 +1270,7 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listMenuTopIdx, NULL); + ListMenuGetScrollAndRow(sFameCheckerData->listMenuTaskId, &listMenuTopIdx, NULL); sFameCheckerData->listMenuTopIdx = listMenuTopIdx; if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) { @@ -1330,7 +1330,7 @@ static void Task_SwitchToPickMode(u8 taskId) static void PrintCancelDescription(void) { FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); - AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gFameCheckerText_FameCheckerWillBeClosed, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(FCWINDOWID_MSGBOX, 2, gFameCheckerText_FameCheckerWillBeClosed, 0, NULL, 2, 1, 3); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } @@ -1339,16 +1339,16 @@ static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit) u16 listY; u16 cursorY; u16 who; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listY, &cursorY); + ListMenuGetScrollAndRow(sFameCheckerData->listMenuTaskId, &listY, &cursorY); who = listY + cursorY; - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * cursorY + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].unk_00); + AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * cursorY + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].label); if (!onInit) { if (listY < sFameCheckerData->listMenuTopIdx2) sFameCheckerData->listMenuDrawnSelIdx++; else if (listY > sFameCheckerData->listMenuTopIdx2 && who != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->listMenuDrawnSelIdx--; - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); + AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].label); } sFameCheckerData->listMenuCurIdx = itemIndex; @@ -1368,20 +1368,20 @@ static u8 FC_PopulateListMenu(void) { if (sTrainerIdxs[fameCheckerIdx] < FC_NONTRAINER_START) { - sListMenuItems[nitems].unk_00 = gTrainers[sTrainerIdxs[fameCheckerIdx]].trainerName; - sListMenuItems[nitems].unk_04 = nitems; + sListMenuItems[nitems].label = gTrainers[sTrainerIdxs[fameCheckerIdx]].trainerName; + sListMenuItems[nitems].index = nitems; } else { - sListMenuItems[nitems].unk_00 = sNonTrainerNamePointers[sTrainerIdxs[fameCheckerIdx] - FC_NONTRAINER_START]; - sListMenuItems[nitems].unk_04 = nitems; + sListMenuItems[nitems].label = sNonTrainerNamePointers[sTrainerIdxs[fameCheckerIdx] - FC_NONTRAINER_START]; + sListMenuItems[nitems].index = nitems; } sFameCheckerData->unlockedPersons[nitems] = fameCheckerIdx; nitems++; } } - sListMenuItems[nitems].unk_00 = gFameCheckerText_Cancel; - sListMenuItems[nitems].unk_04 = nitems; + sListMenuItems[nitems].label = gFameCheckerText_Cancel; + sListMenuItems[nitems].index = nitems; sFameCheckerData->unlockedPersons[nitems] = 0xFF; nitems++; gFameChecker_ListMenuTemplate.totalItems = nitems; @@ -1400,7 +1400,7 @@ static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId) static void FC_CreateScrollIndicatorArrowPair(void) { - struct ScrollIndicatorArrowPairTemplate template = { + struct ScrollArrowsTemplate template = { 2, 40, 26, @@ -1412,13 +1412,12 @@ static void FC_CreateScrollIndicatorArrowPair(void) SPRITETAG_SCROLL_INDICATORS, 0xFFFF, 1, - 0 }; if (sFameCheckerData->numUnlockedPersons > 5) { - template.unk_06 = 0; - template.unk_08 = sFameCheckerData->numUnlockedPersons - 5; + template.fullyUpThreshold = 0; + template.fullyDownThreshold = sFameCheckerData->numUnlockedPersons - 5; sFameCheckerData->scrollIndicatorPairTaskId = AddScrollIndicatorArrowPair(&template, &sFameCheckerData->listMenuTopIdx); } } @@ -1432,7 +1431,7 @@ static void FreeListMenuSelectorArrowPairResources(void) static u16 FameCheckerGetCursorY(void) { u16 listY, cursorY; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listY, &cursorY); + ListMenuGetScrollAndRow(sFameCheckerData->listMenuTaskId, &listY, &cursorY); return listY + cursorY; } @@ -1547,7 +1546,7 @@ static void PlaceListMenuCursor(bool8 isActive) { u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->listMenuTaskId); if (isActive == TRUE) - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_DkGrey, 0, gFameCheckerText_ListMenuCursor); + AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_DkGrey, 0, gFameCheckerText_ListMenuCursor); else - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_White, 0, gFameCheckerText_ListMenuCursor); + AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_White, 0, gFameCheckerText_ListMenuCursor); } diff --git a/src/fieldmap.c b/src/fieldmap.c new file mode 100644 index 000000000..5d11c7d99 --- /dev/null +++ b/src/fieldmap.c @@ -0,0 +1,1025 @@ +#include "global.h" +#include "bg.h" +#include "palette.h" +#include "overworld.h" +#include "script.h" +#include "menu.h" +#include "new_menu_helpers.h" +#include "quest_log.h" +#include "fieldmap.h" + +struct ConnectionFlags +{ + u8 south:1; + u8 north:1; + u8 west:1; + u8 east:1; +}; + +void sub_8058A00(struct MapHeader *mapHeader); +void map_copy_with_padding(u16 *map, u16 width, u16 height); +void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader); +void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset); +void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset); +void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset); +void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset); +void LoadSavedMapView(void); +struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y); +bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection); +bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset); + +struct BackupMapData VMap; +EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {}; +EWRAM_DATA struct MapHeader gMapHeader = {}; +EWRAM_DATA struct Camera gCamera = {}; +EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {}; + +const struct ConnectionFlags sDummyConnectionFlags = {}; + +const u32 gUnknown_8352EF0[] = { + 0x1ff, + 0x3e00, + 0x3c000, + 0xfc0000, + 0x7000000, + 0x18000000, + 0x60000000, + 0x80000000 +}; + +const u8 gUnknown_8352F10[] = { + 0, + 9, + 14, + 18, + 24, + 27, + 29, + 31 +}; + +const struct MapHeader * mapconnection_get_mapheader(struct MapConnection * connection) +{ + return get_mapheader_by_bank_and_number(connection->mapGroup, connection->mapNum); +} + +void not_trainer_hill_battle_pyramid(void) +{ + sub_8058A00(&gMapHeader); + mapheader_run_script_with_tag_x1(); +} + +void sub_80589E8(void) +{ + sub_8058A00(&gMapHeader); + LoadSavedMapView(); + mapheader_run_script_with_tag_x1(); +} + +void sub_8058A00(struct MapHeader * mapHeader) +{ + const struct MapData * mapData = mapHeader->mapData; + CpuFastFill(0x03FF03FF, gBackupMapData, sizeof(gBackupMapData)); + VMap.map = gBackupMapData; + VMap.Xsize = mapData->width + 15; + VMap.Ysize = mapData->height + 14; + AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c", 158); + map_copy_with_padding(mapData->map, mapData->width, mapData->height); + mapheader_copy_mapdata_of_adjacent_maps(mapHeader); +} + +void map_copy_with_padding(u16 *map, u16 width, u16 height) +{ + s32 y; + u16 *dest = VMap.map; + dest += VMap.Xsize * 7 + 7; + + for (y = 0; y < height; y++) + { + CpuCopy16(map, dest, width * sizeof(u16)); + dest += width + 15; + map += width; + } +} + +void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader) +{ + s32 count; + struct MapConnection *connection; + s32 i; + + gMapConnectionFlags = sDummyConnectionFlags; + + /* + * This null pointer check is new to FireRed. It was kept in + * Emerald, with the above struct assignment moved to after + * this check. + */ + if (mapHeader->connections) + { + count = mapHeader->connections->count; + connection = mapHeader->connections->connections; + // Emerald puts this line here instead: + // gMapConnectionFlags = sDummyConnectionFlags; + for (i = 0; i < count; i++, connection++) + { + struct MapHeader const *cMap = mapconnection_get_mapheader(connection); + u32 offset = connection->offset; + switch (connection->direction) + { + case CONNECTION_SOUTH: + fillSouthConnection(mapHeader, cMap, offset); + gMapConnectionFlags.south = 1; + break; + case CONNECTION_NORTH: + fillNorthConnection(mapHeader, cMap, offset); + gMapConnectionFlags.north = 1; + break; + case CONNECTION_WEST: + fillWestConnection(mapHeader, cMap, offset); + gMapConnectionFlags.west = 1; + break; + case CONNECTION_EAST: + fillEastConnection(mapHeader, cMap, offset); + gMapConnectionFlags.east = 1; + break; + } + } + } +} + +void sub_8058B54(s32 x, s32 y, const struct MapHeader *connectedMapHeader, s32 x2, s32 y2, s32 width, s32 height) +{ + s32 i; + u16 *src; + u16 *dest; + s32 mapWidth; + + mapWidth = connectedMapHeader->mapData->width; + src = &connectedMapHeader->mapData->map[mapWidth * y2 + x2]; + dest = &VMap.map[VMap.Xsize * y + x]; + + for (i = 0; i < height; i++) + { + CpuCopy16(src, dest, width * 2); + dest += VMap.Xsize; + src += mapWidth; + } +} + +void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset) +{ + s32 x, y; + s32 x2; + s32 width; + s32 cWidth; + + if (connectedMapHeader) + { + cWidth = connectedMapHeader->mapData->width; + x = offset + 7; + y = mapHeader->mapData->height + 7; + if (x < 0) + { + x2 = -x; + x += cWidth; + if (x < VMap.Xsize) + { + width = x; + } + else + { + width = VMap.Xsize; + } + x = 0; + } + else + { + x2 = 0; + if (x + cWidth < VMap.Xsize) + { + width = cWidth; + } + else + { + width = VMap.Xsize - x; + } + } + + sub_8058B54( + x, y, + connectedMapHeader, + x2, /*y2*/ 0, + width, /*height*/ 7); + } +} + +void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset) +{ + s32 x; + s32 x2, y2; + s32 width; + s32 cWidth, cHeight; + + if (connectedMapHeader) + { + cWidth = connectedMapHeader->mapData->width; + cHeight = connectedMapHeader->mapData->height; + x = offset + 7; + y2 = cHeight - 7; + if (x < 0) + { + x2 = -x; + x += cWidth; + if (x < VMap.Xsize) + { + width = x; + } + else + { + width = VMap.Xsize; + } + x = 0; + } + else + { + x2 = 0; + if (x + cWidth < VMap.Xsize) + { + width = cWidth; + } + else + { + width = VMap.Xsize - x; + } + } + + sub_8058B54( + x, /*y*/ 0, + connectedMapHeader, + x2, y2, + width, /*height*/ 7); + + } +} + +void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset) +{ + s32 y; + s32 x2, y2; + s32 height; + s32 cWidth, cHeight; + if (connectedMapHeader) + { + cWidth = connectedMapHeader->mapData->width; + cHeight = connectedMapHeader->mapData->height; + y = offset + 7; + x2 = cWidth - 7; + if (y < 0) + { + y2 = -y; + if (y + cHeight < VMap.Ysize) + { + height = y + cHeight; + } + else + { + height = VMap.Ysize; + } + y = 0; + } + else + { + y2 = 0; + if (y + cHeight < VMap.Ysize) + { + height = cHeight; + } + else + { + height = VMap.Ysize - y; + } + } + + sub_8058B54( + /*x*/ 0, y, + connectedMapHeader, + x2, y2, + /*width*/ 7, height); + } +} + +void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset) +{ + s32 x, y; + s32 y2; + s32 height; + s32 cHeight; + if (connectedMapHeader) + { + cHeight = connectedMapHeader->mapData->height; + x = mapHeader->mapData->width + 7; + y = offset + 7; + if (y < 0) + { + y2 = -y; + if (y + cHeight < VMap.Ysize) + { + height = y + cHeight; + } + else + { + height = VMap.Ysize; + } + y = 0; + } + else + { + y2 = 0; + if (y + cHeight < VMap.Ysize) + { + height = cHeight; + } + else + { + height = VMap.Ysize - y; + } + } + + sub_8058B54( + x, y, + connectedMapHeader, + /*x2*/ 0, y2, + /*width*/ 8, height); + } +} + +union Block +{ + struct + { + u16 block:10; + u16 collision:2; + u16 elevation:4; + } block; + u16 value; +}; + +#define MapGridGetBorderTileAt(x, y) ({ \ + u16 block; \ + s32 xprime; \ + s32 yprime; \ + \ + struct MapData *mapData = gMapHeader.mapData; \ + \ + xprime = x - 7; \ + xprime += 8 * mapData->unk18; \ + xprime %= mapData->unk18; \ + \ + yprime = y - 7; \ + yprime += 8 * mapData->unk19; \ + yprime %= mapData->unk19; \ + \ + block = mapData->border[xprime + yprime * mapData->unk18]; \ + block |= 0xC00; \ + block; \ +}) + +#define MapGridGetBorderTileAt2(x, y) ({ \ + u16 block; \ + s32 xprime; \ + s32 yprime; \ + \ + struct MapData *mapData = gMapHeader.mapData; \ + \ + xprime = x - 7; \ + xprime += 8 * mapData->unk18; \ + xprime %= mapData->unk18; \ + \ + yprime = y - 7; \ + yprime += 8 * mapData->unk19; \ + yprime %= mapData->unk19; \ + \ + block = mapData->border[xprime + yprime * mapData->unk18] | 0xC00; \ + block; \ +}) + +#define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < VMap.Xsize && y >= 0 && y < VMap.Ysize) + +#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : MapGridGetBorderTileAt2(x, y)) + +u8 MapGridGetZCoordAt(s32 x, s32 y) +{ + u16 block = MapGridGetTileAt(x, y); + + if (block == 0x3ff) + { + return 0; + } + + return block >> 12; +} + +u8 MapGridIsImpassableAt(s32 x, s32 y) +{ + + u16 block = MapGridGetTileAt(x, y); + + if (block == 0x3ff) + { + return 1; + } + + return (block & 0xc00) >> 10; +} + +u32 MapGridGetMetatileIdAt(s32 x, s32 y) +{ + u16 block = MapGridGetTileAt(x, y); + + if (block == 0x3FF) + { + return MapGridGetBorderTileAt(x, y) & 0x3FF; + } + return block & 0x3FF; +} + +u32 sub_8058F1C(u32 original, u8 bit) +{ + if (bit >= 8) + return original; + + return (original & gUnknown_8352EF0[bit]) >> gUnknown_8352F10[bit]; +} + +u32 sub_8058F48(s16 x, s16 y, u8 z) +{ + u16 metatileId = MapGridGetMetatileIdAt(x, y); + return GetBehaviorByMetatileIdAndMapData(gMapHeader.mapData, metatileId, z); +} + +u32 MapGridGetMetatileBehaviorAt(s32 x, s32 y) +{ + return sub_8058F48(x, y, 0); +} + +u8 MapGridGetMetatileLayerTypeAt(s32 x, s32 y) +{ + return sub_8058F48(x, y, 6); +} + +void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile) +{ + s32 i; + if (x >= 0 && x < VMap.Xsize + && y >= 0 && y < VMap.Ysize) + { + i = x + y * VMap.Xsize; + VMap.map[i] = (VMap.map[i] & 0xf000) | (metatile & 0xfff); + } +} + +void MapGridSetMetatileEntryAt(s32 x, s32 y, u16 metatile) +{ + s32 i; + if (x >= 0 && x < VMap.Xsize + && y >= 0 && y < VMap.Ysize) + { + i = x + VMap.Xsize * y; + VMap.map[i] = metatile; + } +} + +void sub_8059024(s32 x, s32 y, bool32 arg2) +{ + if (x >= 0 && x < VMap.Xsize + && y >= 0 && y < VMap.Ysize) + { + if (arg2) + { + VMap.map[x + VMap.Xsize * y] |= 0x0C00; + } + else + { + VMap.map[x + VMap.Xsize * y] &= ~0x0C00; + } + } +} + +u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr) +{ + u32 * attributes; + + if (metatile < NUM_METATILES_IN_PRIMARY) + { + attributes = mapData->primaryTileset->metatileAttributes; + return sub_8058F1C(attributes[metatile], attr); + } + else if (metatile < 0x400) + { + attributes = mapData->secondaryTileset->metatileAttributes; + return sub_8058F1C(attributes[metatile - NUM_METATILES_IN_PRIMARY], attr); + } + else + { + return 0xFF; + } +} + +void save_serialize_map(void) +{ + s32 i, j; + s32 x, y; + u16 *mapView; + s32 width; + mapView = gSaveBlock2Ptr->mapView; + width = VMap.Xsize; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y; + for (i = y; i < y + 14; i++) + { + for (j = x; j < x + 15; j++) + { + *mapView++ = gBackupMapData[width * i + j]; + } + } +} + +bool32 SavedMapViewIsEmpty(void) +{ + u16 i; + u32 marker = 0; + + // BUG: This loop extends past the bounds of the mapView array. Its size is only 0x100. + for (i = 0; i < 0x200; i++) + marker |= gSaveBlock2Ptr->mapView[i]; + + if (marker == 0) + return TRUE; + else + return FALSE; +} + +void ClearSavedMapView(void) +{ + CpuFill16(0, gSaveBlock2Ptr->mapView, sizeof(gSaveBlock2Ptr->mapView)); +} + +void LoadSavedMapView(void) +{ + s32 i, j; + s32 x, y; + u16 *mapView; + s32 width; + mapView = gSaveBlock2Ptr->mapView; + if (!SavedMapViewIsEmpty()) + { + width = VMap.Xsize; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y; + for (i = y; i < y + 14; i++) + { + for (j = x; j < x + 15; j++) + { + gBackupMapData[j + width * i] = *mapView; + mapView++; + } + } + ClearSavedMapView(); + } +} + +void sub_8059250(u8 a1) +{ + s32 width; + u16 *mapView; + s32 x0, y0; + s32 x2, y2; + u16 *src, *dest; + s32 srci, desti; + s32 r9, r8; + s32 x, y; + s32 i, j; + mapView = gSaveBlock2Ptr->mapView; + width = VMap.Xsize; + r9 = 0; + r8 = 0; + x0 = gSaveBlock1Ptr->pos.x; + y0 = gSaveBlock1Ptr->pos.y; + x2 = 15; + y2 = 14; + switch (a1) + { + case CONNECTION_NORTH: + y0 += 1; + y2 = 13; + break; + case CONNECTION_SOUTH: + r8 = 1; + y2 = 13; + break; + case CONNECTION_WEST: + x0 += 1; + x2 = 14; + break; + case CONNECTION_EAST: + r9 = 1; + x2 = 14; + break; + } + for (y = 0; y < y2; y++) + { + i = 0; + j = 0; + for (x = 0; x < x2; x++) + { + desti = width * (y + y0); + srci = (y + r8) * 15 + r9; + src = &mapView[srci + i]; + dest = &gBackupMapData[x0 + desti + j]; + *dest = *src; + i++; + j++; + } + } + ClearSavedMapView(); +} + +s32 GetMapBorderIdAt(s32 x, s32 y) +{ + if (MapGridGetTileAt(x, y) == 0x3FF) + { + return -1; + } + + if (x >= VMap.Xsize - 8) + { + if (!gMapConnectionFlags.east) + { + return -1; + } + return CONNECTION_EAST; + } + + if (x < 7) + { + if (!gMapConnectionFlags.west) + { + return -1; + } + return CONNECTION_WEST; + } + + if (y >= VMap.Ysize - 7) + { + if (!gMapConnectionFlags.south) + { + return -1; + } + return CONNECTION_SOUTH; + } + + if (y < 7) + { + if (!gMapConnectionFlags.north) + { + return -1; + } + return CONNECTION_NORTH; + } + + return 0; +} + +s32 GetPostCameraMoveMapBorderId(s32 x, s32 y) +{ + return GetMapBorderIdAt(7 + gSaveBlock1Ptr->pos.x + x, 7 + gSaveBlock1Ptr->pos.y + y); +} + +bool32 CanCameraMoveInDirection(s32 direction) +{ + s32 x, y; + + x = gSaveBlock1Ptr->pos.x + 7 + gDirectionToVectors[direction].x; + y = gSaveBlock1Ptr->pos.y + 7 + gDirectionToVectors[direction].y; + if (GetMapBorderIdAt(x, y) == -1) + { + return FALSE; + } + return TRUE; +} + +void sub_80594AC(struct MapConnection *connection, int direction, s32 x, s32 y) +{ + struct MapHeader const *mapHeader; + mapHeader = mapconnection_get_mapheader(connection); + switch (direction) + { + case CONNECTION_EAST: + gSaveBlock1Ptr->pos.x = -x; + gSaveBlock1Ptr->pos.y -= connection->offset; + break; + case CONNECTION_WEST: + gSaveBlock1Ptr->pos.x = mapHeader->mapData->width; + gSaveBlock1Ptr->pos.y -= connection->offset; + break; + case CONNECTION_SOUTH: + gSaveBlock1Ptr->pos.x -= connection->offset; + gSaveBlock1Ptr->pos.y = -y; + break; + case CONNECTION_NORTH: + gSaveBlock1Ptr->pos.x -= connection->offset; + gSaveBlock1Ptr->pos.y = mapHeader->mapData->height; + break; + } +} + +bool8 CameraMove(s32 x, s32 y) +{ + u32 direction; + struct MapConnection *connection; + s32 old_x, old_y; + gCamera.active = FALSE; + direction = GetPostCameraMoveMapBorderId(x, y); + if (direction + 1 <= 1) + { + gSaveBlock1Ptr->pos.x += x; + gSaveBlock1Ptr->pos.y += y; + } + else + { + save_serialize_map(); + old_x = gSaveBlock1Ptr->pos.x; + old_y = gSaveBlock1Ptr->pos.y; + connection = sub_8059600(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y); + sub_80594AC(connection, direction, x, y); + sub_8055864(connection->mapGroup, connection->mapNum); + gCamera.active = TRUE; + gCamera.x = old_x - gSaveBlock1Ptr->pos.x; + gCamera.y = old_y - gSaveBlock1Ptr->pos.y; + gSaveBlock1Ptr->pos.x += x; + gSaveBlock1Ptr->pos.y += y; + sub_8059250(direction); + } + return gCamera.active; +} + +struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y) +{ + s32 count; + struct MapConnection *connection; + s32 i; + count = gMapHeader.connections->count; + connection = gMapHeader.connections->connections; + for (i = 0; i < count; i++, connection++) + { + if (connection->direction == direction && sub_8059658(direction, x, y, connection) == TRUE) + return connection; + } + return NULL; + +} + +bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection) +{ + struct MapHeader const *mapHeader; + mapHeader = mapconnection_get_mapheader(connection); + switch (direction) + { + case CONNECTION_SOUTH: + case CONNECTION_NORTH: + return sub_80596BC(x, gMapHeader.mapData->width, mapHeader->mapData->width, connection->offset); + case CONNECTION_WEST: + case CONNECTION_EAST: + return sub_80596BC(y, gMapHeader.mapData->height, mapHeader->mapData->height, connection->offset); + } + return FALSE; +} + +bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset) +{ + s32 offset2 = max(offset, 0); + + if (dest_width + offset < src_width) + src_width = dest_width + offset; + + if (offset2 <= x && x <= src_width) + return TRUE; + + return FALSE; +} + +bool32 sub_80596E8(s32 x, s32 width) +{ + if (x >= 0 && x < width) + return TRUE; + + return FALSE; +} + +s32 sub_80596FC(struct MapConnection *connection, s32 x, s32 y) +{ + struct MapHeader const *mapHeader; + mapHeader = mapconnection_get_mapheader(connection); + switch (connection->direction) + { + case CONNECTION_SOUTH: + case CONNECTION_NORTH: + return sub_80596E8(x - connection->offset, mapHeader->mapData->width); + case CONNECTION_WEST: + case CONNECTION_EAST: + return sub_80596E8(y - connection->offset, mapHeader->mapData->height); + } + return FALSE; +} + +struct MapConnection *sub_805973C(s16 x, s16 y) +{ + s32 count; + struct MapConnection *connection; + s32 i; + u8 direction; + if (!gMapHeader.connections) + { + return NULL; + } + else + { + count = gMapHeader.connections->count; + connection = gMapHeader.connections->connections; + for (i = 0; i < count; i++, connection++) + { + direction = connection->direction; + if ((direction == CONNECTION_DIVE || direction == CONNECTION_EMERGE) + || (direction == CONNECTION_NORTH && y > 6) + || (direction == CONNECTION_SOUTH && y < gMapHeader.mapData->height + 7) + || (direction == CONNECTION_WEST && x > 6) + || (direction == CONNECTION_EAST && x < gMapHeader.mapData->width + 7)) + { + continue; + } + if (sub_80596FC(connection, x - 7, y - 7) == TRUE) + { + return connection; + } + } + } + return NULL; +} + +void SetCameraFocusCoords(u16 x, u16 y) +{ + gSaveBlock1Ptr->pos.x = x - 7; + gSaveBlock1Ptr->pos.y = y - 7; +} + +void GetCameraFocusCoords(u16 *x, u16 *y) +{ + *x = gSaveBlock1Ptr->pos.x + 7; + *y = gSaveBlock1Ptr->pos.y + 7; +} + +void SetCameraCoords(u16 x, u16 y) +{ + gSaveBlock1Ptr->pos.x = x; + gSaveBlock1Ptr->pos.y = y; +} + +void GetCameraCoords(u16 *x, u16 *y) +{ + *x = gSaveBlock1Ptr->pos.x; + *y = gSaveBlock1Ptr->pos.y; +} +void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, u16 offset) +{ + if (tileset) + { + if (!tileset->isCompressed) + LoadBgTiles(2, tileset->tiles, numTiles * 32, offset); + else + sub_80F68F0(2, tileset->tiles, numTiles * 32, offset, 0); + } +} + +void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, u16 offset) +{ + if (tileset) + { + if (!tileset->isCompressed) + LoadBgTiles(2, tileset->tiles, numTiles * 32, offset); + else + sub_80F69E8(2, tileset->tiles, numTiles * 32, offset, 0); + } +} + +void sub_80598CC(u16 a0, u16 a1) +{ + switch (gUnknown_2036E28) + { + case 0: + return; + case 1: + TintPalette_GrayScale(gPlttBufferUnfaded + a0, a1); + break; + case 2: + TintPalette_SepiaTone(gPlttBufferUnfaded + a0, a1); + break; + case 3: + sub_8111F38(a0, a1); + TintPalette_GrayScale(gPlttBufferUnfaded + a0, a1); + break; + default: + return; + } + CpuCopy16(gPlttBufferUnfaded + a0, gPlttBufferFaded + a0, a1 * sizeof(u16)); +} + +void sub_8059948(u8 a0, u8 a1) +{ + switch (gUnknown_2036E28) + { + case 0: + return; + case 1: + TintPalette_GrayScale(gPlttBufferUnfaded + a0 * 16, a1 * 16); + break; + case 2: + TintPalette_SepiaTone(gPlttBufferUnfaded + a0 * 16, a1 * 16); + break; + case 3: + sub_8111F38(a0 * 16, a1 * 16); + TintPalette_GrayScale(gPlttBufferUnfaded + a0 * 16, a1 * 16); + break; + default: + return; + } + CpuFastCopy(gPlttBufferUnfaded + a0 * 16, gPlttBufferFaded + a0 * 16, a1 * 16 * sizeof(u16)); +} + +void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u16 size) +{ + u16 black = RGB_BLACK; + + if (tileset) + { + if (tileset->isSecondary == FALSE) + { + LoadPalette(&black, destOffset, 2); + LoadPalette(((u16*)tileset->palettes) + 1, destOffset + 1, size - 2); + sub_80598CC(destOffset + 1, (size - 2) >> 1); + } + else if (tileset->isSecondary == TRUE) + { + LoadPalette(((u16*)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size); + sub_80598CC(destOffset, size >> 1); + } + else + { + LoadCompressedPalette((u32*)tileset->palettes, destOffset, size); + sub_80598CC(destOffset, size >> 1); + } + } +} + +void copy_map_tileset1_to_vram(const struct MapData *mapData) +{ + copy_tileset_patterns_to_vram(mapData->primaryTileset, NUM_TILES_IN_PRIMARY, 0); +} + +void copy_map_tileset2_to_vram(const struct MapData *mapData) +{ + copy_tileset_patterns_to_vram(mapData->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); +} + +void copy_map_tileset2_to_vram_2(const struct MapData *mapData) +{ + copy_tileset_patterns_to_vram2(mapData->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); +} + +void apply_map_tileset1_palette(const struct MapData *mapData) +{ + apply_map_tileset_palette(mapData->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2); +} + +void apply_map_tileset2_palette(const struct MapData *mapData) +{ + apply_map_tileset_palette(mapData->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2); +} + +void copy_map_tileset1_tileset2_to_vram(struct MapData const *mapData) +{ + if (mapData) + { + copy_tileset_patterns_to_vram2(mapData->primaryTileset, NUM_TILES_IN_PRIMARY, 0); + copy_tileset_patterns_to_vram2(mapData->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); + } +} + +void apply_map_tileset1_tileset2_palette(struct MapData const *mapData) +{ + if (mapData) + { + apply_map_tileset1_palette(mapData); + apply_map_tileset2_palette(mapData); + } +} diff --git a/src/fldeff_berrytree.c b/src/fldeff_berrytree.c new file mode 100644 index 000000000..90ca36508 --- /dev/null +++ b/src/fldeff_berrytree.c @@ -0,0 +1,4 @@ +void nullsub_56(void) +{ + +} diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c new file mode 100644 index 000000000..50c715388 --- /dev/null +++ b/src/fldeff_softboiled.c @@ -0,0 +1,109 @@ +#include "global.h" +#include "party_menu.h" +#include "sound.h" +#include "string_util.h" +#include "menu.h" +#include "constants/songs.h" + +void sub_80E57E8(u8 taskId); +void sub_80E583C(u8 taskId); +void sub_80E58A0(u8 taskId); +void sub_80E5934(u8 taskId); + +extern const u8 gUnknown_84169F8[]; +extern const u8 gUnknown_8416F27[]; + +bool8 hm_prepare_dive_probably(void) +{ + u16 maxHp = GetMonData(&gPlayerParty[GetCursorSelectionMonId()], MON_DATA_MAX_HP); + u16 curHp = GetMonData(&gPlayerParty[GetCursorSelectionMonId()], MON_DATA_HP); + + if (curHp > maxHp / 5) + return TRUE; + else + return FALSE; +} + +void sub_80E56DC(u8 taskId) +{ + gUnknown_203B0A0.unkB = 10; + gUnknown_203B0A0.unkA = gUnknown_203B0A0.unk9; + sub_811F818(GetCursorSelectionMonId(), 1); + sub_8121D0C(5); + gTasks[taskId].func = sub_811FB28; +} + +void sub_80E5724(u8 taskId) +{ + u8 r8 = gUnknown_203B0A0.unk9; + u8 r5 = gUnknown_203B0A0.unkA; + u16 curHp; + s16 delta; + + if (r5 > 6) + { + gUnknown_203B0A0.unkB = 0; + sub_8121D0C(0); + gTasks[taskId].func = sub_811FB28; + } + else + { + curHp = GetMonData(&gPlayerParty[r5], MON_DATA_HP); + if (curHp == 0 || r8 == r5 || GetMonData(&gPlayerParty[r5], MON_DATA_MAX_HP) == curHp) + { + sub_80E5934(taskId); + } + else + { + PlaySE(SE_KAIFUKU); + sub_8120760(taskId, r8, -1, GetMonData(&gPlayerParty[r8], MON_DATA_MAX_HP) / 5, sub_80E57E8); + } + } +} + +void sub_80E57E8(u8 taskId) +{ + PlaySE(SE_KAIFUKU); + sub_8120760(taskId, gUnknown_203B0A0.unkA, 1, GetMonData(&gPlayerParty[gUnknown_203B0A0.unk9], MON_DATA_MAX_HP) / 5, sub_80E583C); +} + +void sub_80E583C(u8 taskId) +{ + GetMonNickname(&gPlayerParty[gUnknown_203B0A0.unkA], gStringVar1); + StringExpandPlaceholders(gStringVar4, gUnknown_8416F27); + sub_81202F8(gStringVar4, 0); + schedule_bg_copy_tilemap_to_vram(2); + gTasks[taskId].func = sub_80E58A0; +} + +void sub_80E58A0(u8 taskId) +{ + if (sub_8120370() != TRUE) + { + gUnknown_203B0A0.unkB = 0; + sub_811F818(gUnknown_203B0A0.unk9, 0); + gUnknown_203B0A0.unk9 = gUnknown_203B0A0.unkA; + sub_811F818(gUnknown_203B0A0.unkA, 1); + ClearMenuWindow(6, 0); + ClearWindowTilemap(6); + sub_8121D0C(0); + gTasks[taskId].func = sub_811FB28; + } +} + +void sub_80E5900(u8 taskId) +{ + if (sub_8120370() != TRUE) + { + sub_8121D0C(5); + gTasks[taskId].func = sub_811FB28; + } +} + +void sub_80E5934(u8 taskId) +{ + PlaySE(SE_SELECT); + sub_81202F8(gUnknown_84169F8, 0); + schedule_bg_copy_tilemap_to_vram(2); + gTasks[taskId].func = sub_80E5900; +} diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c new file mode 100644 index 000000000..74fad1110 --- /dev/null +++ b/src/fldeff_teleport.c @@ -0,0 +1,42 @@ +#include "global.h" +#include "field_effect.h" +#include "field_player_avatar.h" +#include "fldeff.h" +#include "party_menu.h" +#include "overworld.h" + +static void FieldCallback_Teleport(void); +static void StartTeleportFieldEffect(void); + +bool8 SetUpFieldMove_Teleport(void) +{ + if (Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) == TRUE) + { + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_Teleport; + return TRUE; + } + return FALSE; +} + +static void FieldCallback_Teleport(void) +{ + Overworld_ResetStateAfterTeleport(); + FieldEffectStart(FLDEFF_USE_TELEPORT); + gFieldEffectArguments[0] = (u32)GetCursorSelectionMonId(); +} + +bool8 FldEff_UseTeleport(void) +{ + u8 taskId = oei_task_add(); + gTasks[taskId].data[8] = (u32)StartTeleportFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartTeleportFieldEffect; + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); + return FALSE; +} + +static void StartTeleportFieldEffect(void) +{ + FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT); + CreateTeleportFieldEffectTask(); +} diff --git a/src/heal_location.c b/src/heal_location.c new file mode 100644 index 000000000..9756f0951 --- /dev/null +++ b/src/heal_location.c @@ -0,0 +1,176 @@ +#include "global.h" +#include "heal_location.h" +#include "event_data.h" +#include "constants/vars.h" +#include "constants/maps.h" +#include "constants/spawn_points.h" + +void SetBlackoutRespawnHealerNpcAsLastTalked(u32 healLocationIdx); + +// This array defines the fly points for unlocked spawns. +static const struct HealLocation sSpawnPoints[] = { + [SPAWN_PALLET_TOWN - 1] = {MAP_GROUP(PALLET_TOWN), MAP_NUM(PALLET_TOWN), 0x06, 0x08}, + [SPAWN_VIRIDIAN_CITY - 1] = {MAP_GROUP(VIRIDIAN_CITY), MAP_NUM(VIRIDIAN_CITY), 0x1a, 0x1b}, + [SPAWN_PEWTER_CITY - 1] = {MAP_GROUP(PEWTER_CITY), MAP_NUM(PEWTER_CITY), 0x11, 0x1a}, + [SPAWN_CERULEAN_CITY - 1] = {MAP_GROUP(CERULEAN_CITY), MAP_NUM(CERULEAN_CITY), 0x16, 0x14}, + [SPAWN_LAVENDER_TOWN - 1] = {MAP_GROUP(LAVENDER_TOWN), MAP_NUM(LAVENDER_TOWN), 0x06, 0x06}, + [SPAWN_VERMILION_CITY - 1] = {MAP_GROUP(VERMILION_CITY), MAP_NUM(VERMILION_CITY), 0x0f, 0x07}, + [SPAWN_CELADON_CITY - 1] = {MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY), 0x30, 0x0c}, + [SPAWN_FUCHSIA_CITY - 1] = {MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY), 0x19, 0x20}, + [SPAWN_CINNABAR_ISLAND - 1] = {MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND), 0x0e, 0x0c}, + [SPAWN_INDIGO_PLATEAU - 1] = {MAP_GROUP(INDIGO_PLATEAU_EXTERIOR), MAP_NUM(INDIGO_PLATEAU_EXTERIOR), 0x0b, 0x07}, + [SPAWN_SAFFRON_CITY - 1] = {MAP_GROUP(SAFFRON_CITY_DUPLICATE), MAP_NUM(SAFFRON_CITY_DUPLICATE), 0x18, 0x27}, + [SPAWN_ROUTE4 - 1] = {MAP_GROUP(ROUTE4), MAP_NUM(ROUTE4), 0x0c, 0x06}, + [SPAWN_ROUTE10 - 1] = {MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10), 0x0d, 0x15}, + [SPAWN_ONE_ISLAND - 1] = {MAP_GROUP(ONE_ISLAND), MAP_NUM(ONE_ISLAND), 0x0e, 0x06}, + [SPAWN_TWO_ISLAND - 1] = {MAP_GROUP(TWO_ISLAND), MAP_NUM(TWO_ISLAND), 0x15, 0x08}, + [SPAWN_THREE_ISLAND - 1] = {MAP_GROUP(THREE_ISLAND), MAP_NUM(THREE_ISLAND), 0x0e, 0x1c}, + [SPAWN_FOUR_ISLAND - 1] = {MAP_GROUP(FOUR_ISLAND), MAP_NUM(FOUR_ISLAND), 0x12, 0x15}, + [SPAWN_FIVE_ISLAND - 1] = {MAP_GROUP(FIVE_ISLAND), MAP_NUM(FIVE_ISLAND), 0x12, 0x07}, + [SPAWN_SEVEN_ISLAND - 1] = {MAP_GROUP(SEVEN_ISLAND), MAP_NUM(SEVEN_ISLAND), 0x0c, 0x04}, + [SPAWN_SIX_ISLAND - 1] = {MAP_GROUP(SIX_ISLAND), MAP_NUM(SIX_ISLAND), 0x0b, 0x0c}, +}; + +// This array defines the map where you actually respawn when you black out, +// based on where you last checkpointed. +// This is either the player's house or a Pokémon Center. +// The data are u16 instead of u8 for reasons unknown. +const u16 sBlackoutRespawnHealCenterMapIdxs[][2] = { + [SPAWN_PALLET_TOWN - 1] = {MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F)}, + [SPAWN_VIRIDIAN_CITY - 1] = {MAP_GROUP(VIRIDIAN_CITY_POKEMON_CENTER_1F), MAP_NUM(VIRIDIAN_CITY_POKEMON_CENTER_1F)}, + [SPAWN_PEWTER_CITY - 1] = {MAP_GROUP(PEWTER_CITY_POKEMON_CENTER_1F), MAP_NUM(PEWTER_CITY_POKEMON_CENTER_1F)}, + [SPAWN_CERULEAN_CITY - 1] = {MAP_GROUP(CERULEAN_CITY_POKEMON_CENTER_1F), MAP_NUM(CERULEAN_CITY_POKEMON_CENTER_1F)}, + [SPAWN_LAVENDER_TOWN - 1] = {MAP_GROUP(LAVENDER_TOWN_POKEMON_CENTER_1F), MAP_NUM(LAVENDER_TOWN_POKEMON_CENTER_1F)}, + [SPAWN_VERMILION_CITY - 1] = {MAP_GROUP(VERMILION_CITY_POKEMON_CENTER_1F), MAP_NUM(VERMILION_CITY_POKEMON_CENTER_1F)}, + [SPAWN_CELADON_CITY - 1] = {MAP_GROUP(CELADON_CITY_POKEMON_CENTER_1F), MAP_NUM(CELADON_CITY_POKEMON_CENTER_1F)}, + [SPAWN_FUCHSIA_CITY - 1] = {MAP_GROUP(FUCHSIA_CITY_POKEMON_CENTER_1F), MAP_NUM(FUCHSIA_CITY_POKEMON_CENTER_1F)}, + [SPAWN_CINNABAR_ISLAND - 1] = {MAP_GROUP(CINNABAR_ISLAND_POKEMON_CENTER_1F), MAP_NUM(CINNABAR_ISLAND_POKEMON_CENTER_1F)}, + [SPAWN_INDIGO_PLATEAU - 1] = {MAP_GROUP(INDIGO_PLATEAU_POKEMON_CENTER_1F), MAP_NUM(INDIGO_PLATEAU_POKEMON_CENTER_1F)}, + [SPAWN_SAFFRON_CITY - 1] = {MAP_GROUP(SAFFRON_CITY_POKEMON_CENTER_1F), MAP_NUM(SAFFRON_CITY_POKEMON_CENTER_1F)}, + [SPAWN_ROUTE4 - 1] = {MAP_GROUP(ROUTE4_POKEMON_CENTER_1F), MAP_NUM(ROUTE4_POKEMON_CENTER_1F)}, + [SPAWN_ROUTE10 - 1] = {MAP_GROUP(ROUTE10_POKEMON_CENTER_1F), MAP_NUM(ROUTE10_POKEMON_CENTER_1F)}, + [SPAWN_ONE_ISLAND - 1] = {MAP_GROUP(ONE_ISLAND_POKEMON_CENTER_1F), MAP_NUM(ONE_ISLAND_POKEMON_CENTER_1F)}, + [SPAWN_TWO_ISLAND - 1] = {MAP_GROUP(TWO_ISLAND_POKEMON_CENTER_1F), MAP_NUM(TWO_ISLAND_POKEMON_CENTER_1F)}, + [SPAWN_THREE_ISLAND - 1] = {MAP_GROUP(THREE_ISLAND_POKEMON_CENTER_1F), MAP_NUM(THREE_ISLAND_POKEMON_CENTER_1F)}, + [SPAWN_FOUR_ISLAND - 1] = {MAP_GROUP(FOUR_ISLAND_POKEMON_CENTER_1F), MAP_NUM(FOUR_ISLAND_POKEMON_CENTER_1F)}, + [SPAWN_FIVE_ISLAND - 1] = {MAP_GROUP(FIVE_ISLAND_POKEMON_CENTER_1F), MAP_NUM(FIVE_ISLAND_POKEMON_CENTER_1F)}, + [SPAWN_SEVEN_ISLAND - 1] = {MAP_GROUP(SEVEN_ISLAND_POKEMON_CENTER_1F), MAP_NUM(SEVEN_ISLAND_POKEMON_CENTER_1F)}, + [SPAWN_SIX_ISLAND - 1] = {MAP_GROUP(SIX_ISLAND_POKEMON_CENTER_1F), MAP_NUM(SIX_ISLAND_POKEMON_CENTER_1F)} +}; + +// When you respawn, your character scurries back to either their house +// or a Pokémon Center, and hands their fainted Pokémon to their mother +// or the Nurse for healing. +// This array defines the index of the NPC on the map defined above +// with whom your character interacts in this cutscene. +static const u8 sBlackoutRespawnHealerNpcIds[] = { + [SPAWN_PALLET_TOWN - 1] = 1, + [SPAWN_VIRIDIAN_CITY - 1] = 1, + [SPAWN_PEWTER_CITY - 1] = 3, + [SPAWN_CERULEAN_CITY - 1] = 1, + [SPAWN_LAVENDER_TOWN - 1] = 1, + [SPAWN_VERMILION_CITY - 1] = 1, + [SPAWN_CELADON_CITY - 1] = 1, + [SPAWN_FUCHSIA_CITY - 1] = 1, + [SPAWN_CINNABAR_ISLAND - 1] = 1, + [SPAWN_INDIGO_PLATEAU - 1] = 2, + [SPAWN_SAFFRON_CITY - 1] = 1, + [SPAWN_ROUTE4 - 1] = 1, + [SPAWN_ROUTE10 - 1] = 1, + [SPAWN_ONE_ISLAND - 1] = 1, + [SPAWN_TWO_ISLAND - 1] = 1, + [SPAWN_THREE_ISLAND - 1] = 1, + [SPAWN_FOUR_ISLAND - 1] = 1, + [SPAWN_FIVE_ISLAND - 1] = 1, + [SPAWN_SEVEN_ISLAND - 1] = 1, + [SPAWN_SIX_ISLAND - 1] = 1 +}; + +u32 GetHealLocationIndexFromMapGroupAndNum(u16 mapGroup, u16 mapNum) +{ + u32 i; + + for (i = 0; i < NELEMS(sSpawnPoints); i++) { + if (sSpawnPoints[i].group == mapGroup && sSpawnPoints[i].map == mapNum) + { + return i + 1; + } + } + + return 0; +} + +const struct HealLocation * GetHealLocationPointerFromMapGroupAndNum(u16 mapGroup, u16 mapNum) +{ + u32 i = GetHealLocationIndexFromMapGroupAndNum(mapGroup, mapNum); + if (i == 0) + return NULL; + + return &sSpawnPoints[i - 1]; +} + +const struct HealLocation * GetHealLocationPointer(u32 idx) +{ + if (idx == 0) + return NULL; + if (idx > NELEMS(sSpawnPoints)) + return NULL; + return &sSpawnPoints[idx - 1]; +} + +void SetBlackoutRespawnWarpAndHealerNpc(struct WarpData * warp) +{ + u32 healLocationIdx; + + if (VarGet(VAR_0x4082) == 1) + { + if (!gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2) + VarSet(VAR_0x4082, 0); + gSpecialVar_LastTalked = 1; + warp->x = 4; + warp->y = 11; + warp->mapGroup = MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_LOBBY); + warp->mapNum = MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY); + warp->warpId = 0xFF; + } + else + { + healLocationIdx = GetHealLocationIndexFromMapGroupAndNum(gSaveBlock1Ptr->lastHealLocation.mapGroup, gSaveBlock1Ptr->lastHealLocation.mapNum); + warp->mapGroup = sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][0]; + warp->mapNum = sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][1]; + warp->warpId = 0xFF; + + if (sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][0] == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F) && sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][1] == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F)) + { + warp->x = 8; + warp->y = 5; + } + else if (sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][0] == MAP_GROUP(INDIGO_PLATEAU_POKEMON_CENTER_1F) && sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][1] == MAP_NUM(INDIGO_PLATEAU_POKEMON_CENTER_1F)) + { + warp->x = 13; + warp->y = 12; + } + else if (sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][0] == MAP_GROUP(ONE_ISLAND_POKEMON_CENTER_1F) && sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][1] == MAP_NUM(ONE_ISLAND_POKEMON_CENTER_1F)) + { + warp->x = 5; + warp->y = 4; + } + else if (sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][0] == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_LOBBY) && sBlackoutRespawnHealCenterMapIdxs[healLocationIdx - 1][1] == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY)) + { + warp->x = 4; + warp->y = 11; + VarSet(VAR_0x4082, 0); + } + else + { + warp->x = 7; + warp->y = 4; + } + SetBlackoutRespawnHealerNpcAsLastTalked(healLocationIdx); + } +} + +void SetBlackoutRespawnHealerNpcAsLastTalked(u32 healLocationIdx) +{ + gSpecialVar_LastTalked = sBlackoutRespawnHealerNpcIds[healLocationIdx - 1]; +} diff --git a/src/help_system.c b/src/help_system.c new file mode 100644 index 000000000..1fd43fffa --- /dev/null +++ b/src/help_system.c @@ -0,0 +1,1202 @@ +#include "global.h" +#include "decompress.h" +#include "gpu_regs.h" +#include "main.h" +#include "m4a.h" +#include "dma3.h" +#include "help_system.h" +#include "list_menu.h" +#include "sound.h" +#include "strings.h" +#include "text.h" +#include "blit.h" +#include "event_data.h" +#include "constants/songs.h" +#include "constants/flags.h" + +extern u8 gGlyphInfo[]; + +struct HelpSystemVideoState +{ + /*0x00*/ MainCallback savedVblankCb; + /*0x04*/ MainCallback savedHblankCb; + /*0x08*/ u16 savedDispCnt; + /*0x0a*/ u16 savedBg0Cnt; + /*0x0c*/ u16 savedBg0Hofs; + /*0x0e*/ u16 savedBg0Vofs; + /*0x10*/ u16 savedBldCnt; + /*0x12*/ struct TextColor savedTextColor; + /*0x15*/ u8 state; +}; + +static EWRAM_DATA u8 sMapTilesBackup[BG_CHAR_SIZE] = {0}; +EWRAM_DATA u8 gUnknown_203F174 = 0; +EWRAM_DATA u8 gUnknown_203F175 = 0; +static EWRAM_DATA u8 sDelayTimer = 0; +static EWRAM_DATA u8 sInHelpSystem = 0; +static EWRAM_DATA struct HelpSystemVideoState sVideoState = {0}; +EWRAM_DATA struct HelpSystemListMenu gHelpSystemListMenu = {0}; +EWRAM_DATA struct ListMenuItem gHelpSystemListMenuItems[52] = {0}; + +static const u16 sTiles[] = INCBIN_U16("graphics/help_system/unk_8464008.4bpp"); +static const u16 sPals[] = INCBIN_U16("graphics/help_system/unk_8464008.gbapal"); + +u8 RunHelpSystemCallback(void) +{ + s32 i; + + switch (sVideoState.state) + { + case 0: + sInHelpSystem = 0; + if (gSaveBlock2Ptr->optionsButtonMode != OPTIONS_BUTTON_MODE_NORMAL) + return 0; + if (JOY_NEW(R_BUTTON) && gUnknown_203F175 == 1) + return 0; + if (JOY_NEW(L_BUTTON | R_BUTTON)) + { + if (!sub_812B45C() || !gUnknown_3005ECC) + { + PlaySE(SE_HELP_PAGE); + return 0; + } + m4aMPlayStop(&gMPlayInfo_SE1); + m4aMPlayStop(&gMPlayInfo_SE2); + PlaySE(SE_HELP_OPEN); + if (!gUnknown_203F174) + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x80); + SaveCallbacks(); + sInHelpSystem = 1; + sVideoState.state = 1; + } + break; + case 1: + SaveMapTiles(); + SaveMapGPURegs(); + SaveMapTextColors(); + (*(vu16 *)PLTT) = sPals[15]; + SetGpuReg(REG_OFFSET_DISPCNT, 0); + sVideoState.state = 2; + break; + case 2: + RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); + RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), 0); + RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), 0); + sVideoState.state = 3; + break; + case 3: + sub_813BCF4(); + HelpSystem_FillPanel3(); + HelpSystem_FillPanel2(); + HelpSystem_PrintText_Row61(gString_Help); + sub_813BD14(1); + if (sub_812B40C() == TRUE) + sub_812BC54(&gHelpSystemListMenu, gHelpSystemListMenuItems); + else + sub_812BCA8(&gHelpSystemListMenu, gHelpSystemListMenuItems); + sub_813BE78(1); + sub_813BF50(1); + CommitTilemap(); + sVideoState.state = 4; + break; + case 4: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(31)); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG0_ON); + sVideoState.state = 5; + break; + case 5: + if (!sub_812BB9C(&gHelpSystemListMenu, gHelpSystemListMenuItems)) + { + PlaySE(SE_HELP_CLOSE); + sVideoState.state = 6; + } + break; + case 6: + SetGpuReg(REG_OFFSET_DISPCNT, 0); + RestoreMapTiles(); + for (i = 0; i < 0x200; i += 2) + { + *((vu16 *)(PLTT + 0x000 + i)) = sPals[15]; + *((vu16 *)(PLTT + 0x200 + i)) = sPals[15]; + } + sVideoState.state = 7; + break; + case 7: + if (!gUnknown_203F174) + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); + RestoreMapTextColors(); + RestoreGPURegs(); + sVideoState.state = 8; + break; + case 8: + RestoreCallbacks(); + sInHelpSystem = 0; + sVideoState.state = 0; + break; + } + return sVideoState.state; +} + +void SaveCallbacks(void) +{ + vu16 * dma; + sVideoState.savedVblankCb = gMain.vblankCallback; + sVideoState.savedHblankCb = gMain.hblankCallback; + gMain.vblankCallback = NULL; + gMain.hblankCallback = NULL; + + dma = (void *)REG_ADDR_DMA0; + dma[5] &= ~(DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT); + dma[5] &= ~DMA_ENABLE; + dma[5]; +} + +void SaveMapGPURegs(void) +{ + sVideoState.savedDispCnt = GetGpuReg(REG_OFFSET_DISPCNT); + sVideoState.savedBg0Cnt = GetGpuReg(REG_OFFSET_BG0CNT); + sVideoState.savedBg0Hofs = GetGpuReg(REG_OFFSET_BG0HOFS); + sVideoState.savedBg0Vofs = GetGpuReg(REG_OFFSET_BG0VOFS); + sVideoState.savedBldCnt = GetGpuReg(REG_OFFSET_BLDCNT); +} + +void SaveMapTiles(void) +{ + RequestDma3Copy((void *)BG_CHAR_ADDR(3), sMapTilesBackup, BG_CHAR_SIZE, 0); +} + +void SaveMapTextColors(void) +{ + SaveTextColors( + &sVideoState.savedTextColor.fgColor, + &sVideoState.savedTextColor.bgColor, + &sVideoState.savedTextColor.shadowColor + ); +} + +void RestoreCallbacks(void) +{ + gMain.vblankCallback = sVideoState.savedVblankCb; + gMain.hblankCallback = sVideoState.savedHblankCb; +} + +void RestoreGPURegs(void) +{ + SetGpuReg(REG_OFFSET_BLDCNT, sVideoState.savedBldCnt); + SetGpuReg(REG_OFFSET_BG0HOFS, sVideoState.savedBg0Hofs); + SetGpuReg(REG_OFFSET_BG0VOFS, sVideoState.savedBg0Vofs); + SetGpuReg(REG_OFFSET_BG0CNT, sVideoState.savedBg0Cnt); + SetGpuReg(REG_OFFSET_DISPCNT, sVideoState.savedDispCnt); +} + +void RestoreMapTiles(void) +{ + RequestDma3Copy(sMapTilesBackup, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); +} + +void RestoreMapTextColors(void) +{ + RestoreTextColors( + &sVideoState.savedTextColor.fgColor, + &sVideoState.savedTextColor.bgColor, + &sVideoState.savedTextColor.shadowColor + ); +} + +void CommitTilemap(void) +{ + RequestDma3Copy(gDecompressionBuffer, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); +} + +void HS_DrawBgTilemapRect(u16 baseTile, u8 left, u8 top, u8 width, u8 height, u16 increment) +{ + u16 i, j; + + for (i = top; i < top + height; i++) + { + for (j = left; j < left + width; j++) + { + *((u16 *)(gDecompressionBuffer + 0x3800 + 64 * i + 2 * j)) = baseTile; + baseTile += increment; + } + } + + CommitTilemap(); +} + +void sub_813BCF4(void) +{ + HS_DrawBgTilemapRect(0x1FF, 0, 0, 30, 20, 0); +} + +void sub_813BD14(u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 1, 0, 7, 2, 0); + break; + case 1: + HS_DrawBgTilemapRect(0x1E8, 1, 0, 7, 2, 1); + break; + } +} + +void sub_813BD5C(u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 13, 0, 16, 2, 0); + break; + case 1: + HS_DrawBgTilemapRect(0x1A0, 13, 0, 16, 2, 1); + break; + } +} + +void sub_813BDA4(u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 2, 3, 26, 16, 0); + break; + case 1: + HS_DrawBgTilemapRect(0x000, 2, 3, 26, 16, 1); + break; + } +} + +void sub_813BDE8(u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 1, 3, 28, 16, 0); + break; + case 1: + HS_DrawBgTilemapRect(0x1FA, 1, 3, 28, 17, 0); + break; + } +} + +void sub_813BE30(u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 2, 14, 26, 5, 0); + break; + case 1: + HS_DrawBgTilemapRect(0x11E, 2, 14, 26, 5, 1); + break; + } +} + +void sub_813BE78(u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 1, 2, 28, 1, 0); + HS_DrawBgTilemapRect(0x1FF, 1, 19, 28, 1, 0); + break; + case 1: + HS_DrawBgTilemapRect(0x1F7, 1, 2, 28, 1, 0); + HS_DrawBgTilemapRect(0x1F8, 1, 19, 28, 1, 0); + break; + } +} + +void sub_813BEE4(u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 1, 2, 28, 1, 0); + HS_DrawBgTilemapRect(0x1FF, 1, 19, 28, 1, 0); + break; + case 1: + HS_DrawBgTilemapRect(0x1FB, 1, 2, 28, 1, 0); + HS_DrawBgTilemapRect(0x1FC, 1, 19, 28, 1, 0); + break; + } +} + +void sub_813BF50(u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 0, 0, 1, 20, 0); + HS_DrawBgTilemapRect(0x1FF, 29, 0, 1, 20, 0); + break; + case 1: + HS_DrawBgTilemapRect(0x1F9, 0, 0, 1, 20, 0); + HS_DrawBgTilemapRect(0x1F9, 29, 0, 1, 20, 0); + break; + } +} + +void sub_813BFC0(u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 1, 5, 28, 1, 0); + break; + case 1: + HS_DrawBgTilemapRect(0x1FC, 1, 5, 28, 1, 0); + break; + } +} + +void sub_813C004(u8 a0, u8 mode) +{ + switch (mode) + { + case 0: + HS_DrawBgTilemapRect(0x1FF, 28, 3, 1, 1, 0); + HS_DrawBgTilemapRect(0x1FF, 28, 18, 1, 1, 0); + break; + case 1: + if (a0 == 0) + HS_DrawBgTilemapRect(0x1FE, 28, 3, 1, 1, 0); + else + HS_DrawBgTilemapRect(0x1FD, 28, 18, 1, 1, 0); + break; + } +} + +#define HelpSystemHandleRenderGlyph(character) ({\ + do {DecompressAndRenderGlyph(font, character, &srcBlit, &destBlit, dest, x, y, width, height);} while (0); font;\ +}) + +#ifdef NONMATCHING +void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height) +{ + // font -> sp+24 + // dest -> sp+28 + // src -> r9 + // x -> sp+34 + // y -> r10 + // width -> sp+2C + // height -> sp+30 + struct Bitmap srcBlit; + struct Bitmap destBlit; + u8 i; + u8 orig_x = x; + s32 clearPixels; + + while (1) + { + u16 curChar = *src++; + switch (curChar) + { + case EOS: + return; + case PLACEHOLDER_BEGIN: + curChar = *src++; + if (curChar == 1) { + for (i = 0; i < 10; i++) + { + if (gSaveBlock2Ptr->playerName[i] == EOS) + break; + HelpSystemHandleRenderGlyph(gSaveBlock2Ptr->playerName[i]); + x += gGlyphInfo[0x80]; + } + } + else if (curChar == 2) + { + for (i = 0; ; i++) + { + if (FlagGet(FLAG_SYS_NOT_SOMEONES_PC) == TRUE) + { + if (gString_Bill[i] == EOS) + break; + HelpSystemHandleRenderGlyph(gString_Bill[i]); + } + else + { + if (gString_Someone[i] == EOS) + break; + HelpSystemHandleRenderGlyph(gString_Someone[i]); + } + x += gGlyphInfo[0x80]; + } + } + break; + case CHAR_PROMPT_SCROLL: + case CHAR_PROMPT_CLEAR: + case CHAR_NEWLINE: + x = orig_x; + y += gGlyphInfo[0x81] + 1; + break; + case EXT_CTRL_CODE_BEGIN: + curChar = *src++; + switch (curChar) + { + case 4: + src++; + //fallthrough + case 11: + case 16: + src++; + //fallthrough + case 1: + case 2: + case 3: + case 5: + case 6: + case 8: + case 12: + case 13: + case 14: + src++; + break; + case 19: + clearPixels = *src + orig_x - x; + if (clearPixels > 0) + { + destBlit.pixels = dest; + destBlit.width = width * 8; + destBlit.height = height * 8; + FillBitmapRect4Bit(&destBlit, x, y, clearPixels, GetFontAttribute(font, 1), 0); + x += clearPixels; + } + src++; + break; + case 17: + case 18: + case 20: + src++; + break; + case 7: + case 9: + case 10: + case 15: + case 21: + case 22: + break; + } + break; + case CHAR_KEYPAD_ICON: + curChar = *src++; + srcBlit.pixels = (u8 *)gKeypadIconTiles + 0x20 * GetKeypadIconTileOffset(curChar); + srcBlit.width = 0x80; + srcBlit.height = 0x80; + destBlit.pixels = dest; + destBlit.width = width * 8; + destBlit.height = height * 8; + BlitBitmapRect4Bit(&srcBlit, &destBlit, 0, 0, x, y, GetKeypadIconWidth(curChar), GetKeypadIconHeight(curChar), 0); + x += GetKeypadIconWidth(curChar); + break; + case CHAR_EXTRA_EMOJI: + curChar = 0x100 | *src++; + //fallthrough + default: + if (curChar == CHAR_SPACE) + { + if (font == 0) + x += 5; + else + x += 4; + } + else + { + HelpSystemHandleRenderGlyph(curChar); + x += gGlyphInfo[0x80]; + } + break; + } + } +} +#else +NAKED +void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x38\n" + "\tstr r1, [sp, 0x28]\n" + "\tmov r9, r2\n" + "\tldr r1, [sp, 0x58]\n" + "\tldr r2, [sp, 0x5C]\n" + "\tldr r4, [sp, 0x60]\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tstr r0, [sp, 0x24]\n" + "\tlsls r3, 24\n" + "\tlsrs r7, r3, 24\n" + "\tlsls r1, 24\n" + "\tlsrs r1, 24\n" + "\tmov r10, r1\n" + "\tlsls r2, 24\n" + "\tlsrs r2, 24\n" + "\tstr r2, [sp, 0x2C]\n" + "\tlsls r4, 24\n" + "\tlsrs r4, 24\n" + "\tstr r4, [sp, 0x30]\n" + "\tstr r7, [sp, 0x34]\n" + "_0813C0AC_masterLoop:\n" + "\tmov r0, r9\n" + "\tldrb r1, [r0]\n" + "\tmovs r2, 0x1\n" + "\tadd r9, r2\n" + "\tadds r0, r1, 0\n" + "\tsubs r0, 0xF8\n" + "\tcmp r0, 0x7\n" + "\tbls _0813C0BE\n" + "\tb _0813C358\n" + "_0813C0BE:\n" + "\tlsls r0, 2\n" + "\tldr r1, _0813C0C8 @ =_0813C0CC\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_0813C0C8: .4byte _0813C0CC\n" + "\t.align 2, 0\n" + "_0813C0CC:\n" + "\t.4byte _0813C2D4\n" + "\t.4byte _0813C348\n" + "\t.4byte _0813C1E4\n" + "\t.4byte _0813C1E4\n" + "\t.4byte _0813C200\n" + "\t.4byte _0813C0EC\n" + "\t.4byte _0813C1E4\n" + "\t.4byte _0813C39C\n" + "_0813C0EC:\n" + "\tmov r0, r9\n" + "\tldrb r1, [r0]\n" + "\tmovs r2, 0x1\n" + "\tadd r9, r2\n" + "\tcmp r1, 0x1\n" + "\tbne _0813C154\n" + "\tmovs r4, 0\n" + "\tldr r0, _0813C14C @ =gSaveBlock2Ptr\n" + "\tldr r1, [r0]\n" + "\tldrb r1, [r1]\n" + "\tcmp r1, 0xFF\n" + "\tbeq _0813C0AC_masterLoop\n" + "\tldr r5, _0813C150 @ =gGlyphInfo + 0x80\n" + "_0813C106:\n" + "\tldr r0, [r0]\n" + "\tadds r0, r4\n" + "\tldrb r1, [r0]\n" + "\tldr r0, [sp, 0x28]\n" + "\tstr r0, [sp]\n" + "\tstr r7, [sp, 0x4]\n" + "\tmov r2, r10\n" + "\tstr r2, [sp, 0x8]\n" + "\tldr r0, [sp, 0x2C]\n" + "\tstr r0, [sp, 0xC]\n" + "\tldr r2, [sp, 0x30]\n" + "\tstr r2, [sp, 0x10]\n" + "\tldr r0, [sp, 0x24]\n" + "\tadd r2, sp, 0x14\n" + "\tadd r3, sp, 0x1C\n" + "\tbl DecompressAndRenderGlyph\n" + "\tldr r0, [sp, 0x24]\n" + "\tldrb r0, [r5]\n" + "\tadds r0, r7, r0\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tadds r0, r4, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0x9\n" + "\tbhi _0813C0AC_masterLoop\n" + "\tldr r0, _0813C14C @ =gSaveBlock2Ptr\n" + "\tldr r1, [r0]\n" + "\tadds r1, r4\n" + "\tldrb r1, [r1]\n" + "\tcmp r1, 0xFF\n" + "\tbne _0813C106\n" + "\tb _0813C0AC_masterLoop\n" + "\t.align 2, 0\n" + "_0813C14C: .4byte gSaveBlock2Ptr\n" + "_0813C150: .4byte gGlyphInfo + 0x80\n" + "_0813C154:\n" + "\tcmp r1, 0x2\n" + "\tbne _0813C0AC_masterLoop\n" + "\tmovs r4, 0\n" + "\tldr r5, _0813C160 @ =gGlyphInfo + 0x80\n" + "\tb _0813C1BC\n" + "\t.align 2, 0\n" + "_0813C160: .4byte gGlyphInfo + 0x80\n" + "_0813C164:\n" + "\tldrb r1, [r1]\n" + "\tldr r2, [sp, 0x28]\n" + "\tstr r2, [sp]\n" + "\tstr r7, [sp, 0x4]\n" + "\tmov r0, r10\n" + "\tstr r0, [sp, 0x8]\n" + "\tldr r2, [sp, 0x2C]\n" + "\tstr r2, [sp, 0xC]\n" + "\tldr r0, [sp, 0x30]\n" + "\tstr r0, [sp, 0x10]\n" + "\tldr r0, [sp, 0x24]\n" + "\tadd r2, sp, 0x14\n" + "\tadd r3, sp, 0x1C\n" + "\tbl DecompressAndRenderGlyph\n" + "\tb _0813C1AC\n" + "_0813C184:\n" + "\tldr r0, _0813C1D8 @ =gString_Someone\n" + "\tadds r1, r4, r0\n" + "\tldrb r0, [r1]\n" + "\tcmp r0, 0xFF\n" + "\tbeq _0813C0AC_masterLoop\n" + "\tadds r1, r0, 0\n" + "\tldr r2, [sp, 0x28]\n" + "\tstr r2, [sp]\n" + "\tstr r7, [sp, 0x4]\n" + "\tmov r0, r10\n" + "\tstr r0, [sp, 0x8]\n" + "\tldr r2, [sp, 0x2C]\n" + "\tstr r2, [sp, 0xC]\n" + "\tldr r0, [sp, 0x30]\n" + "\tstr r0, [sp, 0x10]\n" + "\tldr r0, [sp, 0x24]\n" + "\tadd r2, sp, 0x14\n" + "\tadd r3, sp, 0x1C\n" + "\tbl DecompressAndRenderGlyph\n" + "_0813C1AC:\n" + "\tldr r1, [sp, 0x24]\n" + "\tldrb r0, [r5]\n" + "\tadds r0, r7, r0\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tadds r0, r4, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "_0813C1BC:\n" + "\tldr r0, _0813C1DC @ =0x00000834\n" + "\tbl FlagGet\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x1\n" + "\tbne _0813C184\n" + "\tldr r0, _0813C1E0 @ =gString_Bill\n" + "\tadds r1, r4, r0\n" + "\tldrb r0, [r1]\n" + "\tcmp r0, 0xFF\n" + "\tbne _0813C164\n" + "\tb _0813C0AC_masterLoop\n" + "\t.align 2, 0\n" + "_0813C1D8: .4byte gString_Someone\n" + "_0813C1DC: .4byte 0x00000834\n" + "_0813C1E0: .4byte gString_Bill\n" + "_0813C1E4:\n" + "\tldr r7, [sp, 0x34]\n" + "\tldr r1, _0813C1FC @ =gGlyphInfo\n" + "\tadds r1, 0x81\n" + "\tmov r0, r10\n" + "\tadds r0, 0x1\n" + "\tldrb r1, [r1]\n" + "\tadds r0, r1\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tmov r10, r0\n" + "\tb _0813C0AC_masterLoop\n" + "\t.align 2, 0\n" + "_0813C1FC: .4byte gGlyphInfo\n" + "_0813C200:\n" + "\tmov r2, r9\n" + "\tldrb r1, [r2]\n" + "\tmovs r0, 0x1\n" + "\tadd r9, r0\n" + "\tsubs r0, r1, 0x1\n" + "\tcmp r0, 0x15\n" + "\tbls _0813C210\n" + "\tb _0813C0AC_masterLoop\n" + "_0813C210:\n" + "\tlsls r0, 2\n" + "\tldr r1, _0813C21C @ =_0813C220\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_0813C21C: .4byte _0813C220\n" + "\t.align 2, 0\n" + "_0813C220:\n" + "\t.4byte _0813C2C8\n" + "\t.4byte _0813C2C8\n" + "\t.4byte _0813C2C8\n" + "\t.4byte _0813C278\n" + "\t.4byte _0813C2C8\n" + "\t.4byte _0813C2C8\n" + "\t.4byte _0813C0AC_masterLoop\n" + "\t.4byte _0813C2C8\n" + "\t.4byte _0813C0AC_masterLoop\n" + "\t.4byte _0813C0AC_masterLoop\n" + "\t.4byte _0813C27C\n" + "\t.4byte _0813C2C8\n" + "\t.4byte _0813C2C8\n" + "\t.4byte _0813C2C8\n" + "\t.4byte _0813C0AC_masterLoop\n" + "\t.4byte _0813C27C\n" + "\t.4byte _0813C2CE\n" + "\t.4byte _0813C2CE\n" + "\t.4byte _0813C282\n" + "\t.4byte _0813C2CE\n" + "\t.4byte _0813C0AC_masterLoop\n" + "\t.4byte _0813C0AC_masterLoop\n" + "_0813C278:\n" + "\tmovs r1, 0x1\n" + "\tadd r9, r1\n" + "_0813C27C:\n" + "\tmovs r2, 0x1\n" + "\tadd r9, r2\n" + "\tb _0813C2C8\n" + "_0813C282:\n" + "\tmov r2, r9\n" + "\tldrb r0, [r2]\n" + "\tldr r1, [sp, 0x34]\n" + "\tadds r0, r1\n" + "\tsubs r6, r0, r7\n" + "\tcmp r6, 0\n" + "\tble _0813C2C8\n" + "\tldr r2, [sp, 0x28]\n" + "\tstr r2, [sp, 0x1C]\n" + "\tldr r1, [sp, 0x2C]\n" + "\tlsls r0, r1, 3\n" + "\tadd r4, sp, 0x1C\n" + "\tmovs r5, 0\n" + "\tstrh r0, [r4, 0x4]\n" + "\tldr r2, [sp, 0x30]\n" + "\tlsls r0, r2, 3\n" + "\tstrh r0, [r4, 0x6]\n" + "\tldr r0, [sp, 0x24]\n" + "\tmovs r1, 0x1\n" + "\tbl GetFontAttribute\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tlsls r3, r6, 16\n" + "\tlsrs r3, 16\n" + "\tstr r0, [sp]\n" + "\tstr r5, [sp, 0x4]\n" + "\tadds r0, r4, 0\n" + "\tadds r1, r7, 0\n" + "\tmov r2, r10\n" + "\tbl FillBitmapRect4Bit\n" + "\tadds r0, r7, r6\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "_0813C2C8:\n" + "\tmovs r0, 0x1\n" + "\tadd r9, r0\n" + "\tb _0813C0AC_masterLoop\n" + "_0813C2CE:\n" + "\tmovs r1, 0x1\n" + "\tadd r9, r1\n" + "\tb _0813C0AC_masterLoop\n" + "_0813C2D4:\n" + "\tmov r2, r9\n" + "\tldrb r1, [r2]\n" + "\tmovs r0, 0x1\n" + "\tadd r9, r0\n" + "\tadds r6, r1, 0\n" + "\tadds r0, r6, 0\n" + "\tbl GetKeypadIconTileOffset\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 19\n" + "\tldr r1, _0813C344 @ =gKeypadIconTiles\n" + "\tadds r0, r1\n" + "\tstr r0, [sp, 0x14]\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r2, 0\n" + "\tmov r8, r2\n" + "\tmovs r0, 0x80\n" + "\tstrh r0, [r1, 0x4]\n" + "\tstrh r0, [r1, 0x6]\n" + "\tldr r0, [sp, 0x28]\n" + "\tstr r0, [sp, 0x1C]\n" + "\tldr r1, [sp, 0x2C]\n" + "\tlsls r0, r1, 3\n" + "\tadd r5, sp, 0x1C\n" + "\tstrh r0, [r5, 0x4]\n" + "\tldr r2, [sp, 0x30]\n" + "\tlsls r0, r2, 3\n" + "\tstrh r0, [r5, 0x6]\n" + "\tadds r0, r6, 0\n" + "\tbl GetKeypadIconWidth\n" + "\tadds r4, r0, 0\n" + "\tlsls r4, 24\n" + "\tlsrs r4, 24\n" + "\tadds r0, r6, 0\n" + "\tbl GetKeypadIconHeight\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tstr r7, [sp]\n" + "\tmov r1, r10\n" + "\tstr r1, [sp, 0x4]\n" + "\tstr r4, [sp, 0x8]\n" + "\tstr r0, [sp, 0xC]\n" + "\tmov r2, r8\n" + "\tstr r2, [sp, 0x10]\n" + "\tadd r0, sp, 0x14\n" + "\tadds r1, r5, 0\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0\n" + "\tbl BlitBitmapRect4Bit\n" + "\tadds r0, r6, 0\n" + "\tbl GetKeypadIconWidth\n" + "\tb _0813C38E\n" + "\t.align 2, 0\n" + "_0813C344: .4byte gKeypadIconTiles\n" + "_0813C348:\n" + "\tmov r0, r9\n" + "\tldrb r1, [r0]\n" + "\tmovs r2, 0x80\n" + "\tlsls r2, 1\n" + "\tadds r0, r2, 0\n" + "\torrs r1, r0\n" + "\tmovs r0, 0x1\n" + "\tadd r9, r0\n" + "_0813C358:\n" + "\tcmp r1, 0\n" + "\tbne _0813C36A\n" + "\tldr r1, [sp, 0x24]\n" + "\tcmp r1, 0\n" + "\tbne _0813C366\n" + "\tadds r0, r7, 0x5\n" + "\tb _0813C390\n" + "_0813C366:\n" + "\tadds r0, r7, 0x4\n" + "\tb _0813C390\n" + "_0813C36A:\n" + "\tadd r3, sp, 0x1C\n" + "\tldr r2, [sp, 0x28]\n" + "\tstr r2, [sp]\n" + "\tstr r7, [sp, 0x4]\n" + "\tmov r0, r10\n" + "\tstr r0, [sp, 0x8]\n" + "\tldr r2, [sp, 0x2C]\n" + "\tstr r2, [sp, 0xC]\n" + "\tldr r0, [sp, 0x30]\n" + "\tstr r0, [sp, 0x10]\n" + "\tldr r0, [sp, 0x24]\n" + "\tadd r2, sp, 0x14\n" + "\tbl DecompressAndRenderGlyph\n" + "\tldr r1, [sp, 0x24]\n" + "\tldr r0, _0813C398 @ =gGlyphInfo\n" + "\tadds r0, 0x80\n" + "\tldrb r0, [r0]\n" + "_0813C38E:\n" + "\tadds r0, r7, r0\n" + "_0813C390:\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tb _0813C0AC_masterLoop\n" + "\t.align 2, 0\n" + "_0813C398: .4byte gGlyphInfo\n" + "_0813C39C:\n" + "\tadd sp, 0x38\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0"); +} +#endif //NONMATCHING + +void DecompressAndRenderGlyph(u8 font, u16 glyph, struct Bitmap *srcBlit, struct Bitmap *destBlit, u8 *destBuffer, u8 x, u8 y, u8 width, u8 height) +{ + if (font == 0) + DecompressGlyphFont0(glyph, FALSE); + else if (font == 5) + DecompressGlyphFont5(glyph, FALSE); + else + DecompressGlyphFont2(glyph, FALSE); + srcBlit->pixels = gGlyphInfo; + srcBlit->width = 16; + srcBlit->height = 16; + destBlit->pixels = destBuffer; + destBlit->width = width * 8; + destBlit->height = height * 8; + BlitBitmapRect4Bit(srcBlit, destBlit, 0, 0, x, y, gGlyphInfo[0x80], gGlyphInfo[0x81], 0); +} + +void HelpSystem_PrintText_Row61(const u8 * str) +{ + GenerateFontHalfRowLookupTable(1, 15, 2); + HelpSystemRenderText(5, gDecompressionBuffer + 0x3D00, str, 6, 2, 7, 2); +} + +void HelpSystem_PrintTextRightAlign_Row52(const u8 * str) +{ + s32 left = 0x7C - GetStringWidth(0, str, 0); + GenerateFontHalfRowLookupTable(1, 15, 2); + HelpSystemRenderText(0, gDecompressionBuffer + 0x3400, str, left, 2, 16, 2); +} + +void HelpSystem_PrintTextAt(const u8 * str, u8 x, u8 y) +{ + GenerateFontHalfRowLookupTable(1, 15, 2); + HelpSystemRenderText(2, gDecompressionBuffer + 0x0000, str, x, y, 26, 16); +} + +void HelpSystem_PrintTwoStrings(const u8 * str1, const u8 * str2) +{ + CpuFill16(0xEEEE, gDecompressionBuffer + 0x0000, 0x3400); + GenerateFontHalfRowLookupTable(1, 14, 2); + HelpSystemRenderText(2, gDecompressionBuffer + 0x0000, str1, 0, 0, 26, 16); + HelpSystemRenderText(2, gDecompressionBuffer + 0x09C0, str2, 0, 0, 26, 13); +} + +void HelpSystem_PrintText_813C584(const u8 * str) +{ + CpuFill16(0x1111, gDecompressionBuffer + 0x23C0, 0x1040); + GenerateFontHalfRowLookupTable(2, 1, 3); + HelpSystemRenderText(2, gDecompressionBuffer + 0x23C0, str, 2, 6, 26, 5); +} + +void HelpSystem_FillPanel3(void) +{ + CpuFill16(0xFFFF, gDecompressionBuffer + 0x3D00, 0x1C0); +} + +void HelpSystem_FillPanel2(void) +{ + CpuFill16(0xFFFF, gDecompressionBuffer + 0x3400, 0x400); +} + +void HelpSystem_FillPanel1(void) +{ + CpuFill16(0xFFFF, gDecompressionBuffer + 0x0000, 0x3400); +} + +void HelpSystem_InitListMenuController(struct HelpSystemListMenu * a0, u8 a1, u8 a2) +{ + gHelpSystemListMenu.sub = a0->sub; + gHelpSystemListMenu.field_0C = a1; + gHelpSystemListMenu.field_0D = a2; + gHelpSystemListMenu.field_0E = 0; + if (gHelpSystemListMenu.sub.totalItems < gHelpSystemListMenu.sub.maxShowed) + gHelpSystemListMenu.sub.maxShowed = gHelpSystemListMenu.sub.totalItems; + sub_813BDA4(0); + HelpSystem_FillPanel1(); + PrintListMenuItems(); + PlaceListMenuCursor(); +} + +void HelpSystem_SetInputDelay(u8 a0) +{ + sDelayTimer = a0; +} + +s32 HelpSystem_GetMenuInput(void) +{ + if (sDelayTimer != 0) + { + sDelayTimer--; + return -1; + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + return gHelpSystemListMenu.sub.items[gHelpSystemListMenu.field_0C + gHelpSystemListMenu.field_0D].index; + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + return -2; + } + else if (JOY_NEW(L_BUTTON | R_BUTTON)) + { + return -6; + } + else if (JOY_REPT(DPAD_UP)) + { + if (!MoveCursor(1, 0)) + PlaySE(SE_SELECT); + return -4; + } + else if (JOY_REPT(DPAD_DOWN)) + { + if (!MoveCursor(1, 1)) + PlaySE(SE_SELECT); + return -5; + } + else if (JOY_REPT(DPAD_LEFT)) + { + if (!MoveCursor(7, 0)) + PlaySE(SE_SELECT); + return -4; + } + else if (JOY_REPT(DPAD_RIGHT)) + { + if (!MoveCursor(7, 1)) + PlaySE(SE_SELECT); + return -5; + } + else + return -1; +} + +void sub_813C75C(void) +{ + u8 r6 = gHelpSystemListMenu.sub.totalItems - 7; + if (gHelpSystemListMenu.sub.totalItems > 7) + { + s32 r4 = gHelpSystemListMenu.field_0C + gHelpSystemListMenu.field_0D; + sub_813C004(0, 0); + if (r4 == 0) + sub_813C004(1, 1); + else if (gHelpSystemListMenu.field_0C == 0 && gHelpSystemListMenu.field_0D != 0) + sub_813C004(1, 1); + else if (gHelpSystemListMenu.field_0C == r6) + sub_813C004(0, 1); + else if (gHelpSystemListMenu.field_0C != 0) + { + sub_813C004(0, 1); + sub_813C004(1, 1); + } + } +} + +void PrintListMenuItems(void) +{ + u8 glyphHeight = GetFontAttribute(2, 1) + 1; + s32 i; + s32 r5 = gHelpSystemListMenu.field_0C; + + for (i = 0; i < gHelpSystemListMenu.sub.maxShowed; i++) + { + u8 x = gHelpSystemListMenu.sub.left + 8; + u8 y = gHelpSystemListMenu.sub.top + glyphHeight * i; + HelpSystem_PrintTextAt(gHelpSystemListMenu.sub.items[r5].label, x, y); + r5++; + } +} + +void PlaceListMenuCursor(void) +{ + u8 glyphHeight = GetFontAttribute(2, 1) + 1; + u8 x = gHelpSystemListMenu.sub.left; + u8 y = gHelpSystemListMenu.sub.top + glyphHeight * gHelpSystemListMenu.field_0D; + HelpSystem_PrintTextAt(gFameCheckerText_ListMenuCursor, x, y); +} + +void sub_813C860(u8 i) +{ + u8 glyphHeight = GetFontAttribute(2, 1) + 1; + u8 x = gHelpSystemListMenu.sub.left; + u8 y = gHelpSystemListMenu.sub.top + i * glyphHeight; + HelpSystem_PrintTextAt(gString_HelpSystem_ClearTo8, x, y); +} + +u8 TryMoveCursor1(u8 dirn) +{ + u16 r4; + if (dirn == 0) + { + if (gHelpSystemListMenu.sub.maxShowed == 1) + r4 = 0; + else + r4 = gHelpSystemListMenu.sub.maxShowed - (gHelpSystemListMenu.sub.maxShowed / 2 + (gHelpSystemListMenu.sub.maxShowed & 1)) - 1; + if (gHelpSystemListMenu.field_0C == 0) + { + if (gHelpSystemListMenu.field_0D != 0) + { + gHelpSystemListMenu.field_0D--; + return 1; + } + else + return 0; + } + if (gHelpSystemListMenu.field_0D > r4) + { + gHelpSystemListMenu.field_0D--; + return 1; + } + else + { + gHelpSystemListMenu.field_0C--; + return 2; + } + } + else + { + if (gHelpSystemListMenu.sub.maxShowed == 1) + r4 = 0; + else + r4 = gHelpSystemListMenu.sub.maxShowed / 2 + (gHelpSystemListMenu.sub.maxShowed & 1); + if (gHelpSystemListMenu.field_0C == gHelpSystemListMenu.sub.totalItems - gHelpSystemListMenu.sub.maxShowed) + { + if (gHelpSystemListMenu.field_0D < gHelpSystemListMenu.sub.maxShowed - 1) + { + gHelpSystemListMenu.field_0D++; + return 1; + } + else + return 0; + } + else if (gHelpSystemListMenu.field_0D < r4) + { + gHelpSystemListMenu.field_0D++; + return 1; + } + else + { + gHelpSystemListMenu.field_0C++; + return 2; + } + } +} + +bool8 MoveCursor(u8 by, u8 dirn) +{ + u8 r7 = gHelpSystemListMenu.field_0D; + u8 flags = 0; + s32 i; + for (i = 0; i < by; i++) + flags |= TryMoveCursor1(dirn); + + switch (flags) + { + case 0: + default: + // neither changed + return TRUE; + case 1: + // changed field_0D only + sub_813C860(r7); + PlaceListMenuCursor(); + CommitTilemap(); + break; + case 2: + case 3: + // changed field_0C + if (sub_812BF88() == TRUE) + { + HelpSystem_SetInputDelay(2); + HelpSystem_FillPanel1(); + PrintListMenuItems(); + PlaceListMenuCursor(); + sub_812BDEC(); + sub_813C75C(); + } + else + { + sub_813BDA4(0); + HelpSystem_FillPanel1(); + PrintListMenuItems(); + PlaceListMenuCursor(); + sub_813BDA4(1); + } + CommitTilemap(); + break; + } + return FALSE; +} diff --git a/src/help_system_812B1E0.c b/src/help_system_812B1E0.c new file mode 100644 index 000000000..98d6ce8be --- /dev/null +++ b/src/help_system_812B1E0.c @@ -0,0 +1,1580 @@ +#include "global.h" +#include "event_data.h" +#include "event_scripts.h" +#include "field_player_avatar.h" +#include "help_system.h" +#include "item.h" +#include "link.h" +#include "overworld.h" +#include "pokedex.h" +#include "quest_log.h" +#include "save.h" +#include "save_location.h" +#include "sound.h" +#include "strings.h" +#include "constants/items.h" +#include "constants/maps.h" +#include "constants/songs.h" + +static EWRAM_DATA u16 gUnknown_203B0EC = 0; +static EWRAM_DATA u8 gUnknown_203B0EE = 0; + +u8 gUnknown_3005E9C[4]; +u16 gUnknown_3005EA0; + +static bool32 sub_812B27C(const u16 * mapIdxs); +static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); +static bool8 sub_812B754(void); +static bool8 sub_812B780(u8); +static bool8 sub_812BB10(void); + +static void sub_812BF5C(void); +static void sub_812BF74(const u8 *); +static void sub_812BF94(struct HelpSystemListMenu * a0); +static void sub_812BF9C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); + +static const u8 *const gUnknown_845B080[] = { + gUnknown_81B2DF8, + gUnknown_81B2E1C, + gUnknown_81B2E2E, + gUnknown_81B2E48, + gUnknown_81B2E58, + gUnknown_81B2E6A +}; + +static const u8 *const gUnknown_845B098[] = { + gUnknown_81B2E88, + gUnknown_81B2EC8, + gUnknown_81B2F00, + gUnknown_81B2F43, + gUnknown_81B2F74, + gUnknown_81B2FA9 +}; + +static const u8 *const gUnknown_845B0B0[] = { + NULL, + gUnknown_81B3083, + gUnknown_81B30A9, + gUnknown_81B30C1, + gUnknown_81B30DC, + gUnknown_81B30FC, + gUnknown_81B311F, + gUnknown_81B3140, + gUnknown_81B314F, + gUnknown_81B3168, + gUnknown_81B3189, + gUnknown_81B31AE, + gUnknown_81B31D3, + gUnknown_81B31EC, + gUnknown_81B31FF, + gUnknown_81B3215, + gUnknown_81B3226, + gUnknown_81B3243, + gUnknown_81B3261, + gUnknown_81B3276, + gUnknown_81B3290, + gUnknown_81B32B6, + gUnknown_81B32CD, + gUnknown_81B32E3, + gUnknown_81B32F9, + gUnknown_81B330B, + gUnknown_81B332B, + gUnknown_81B3344, + gUnknown_81B335C, + gUnknown_81B3373, + gUnknown_81B338C, + gUnknown_81B33A6, + gUnknown_81B33CA, + gUnknown_81B33EA, + gUnknown_81B3402, + gUnknown_81B3427, + gUnknown_81B3440, + gUnknown_81B3457, + gUnknown_81B346F, + gUnknown_81B3481, + gUnknown_81B349B, + gUnknown_81B34B7, + gUnknown_81B34D6, + gUnknown_81B34F6, + gUnknown_81B3516 +}; + +static const u8 *const gUnknown_845B164[] = { + NULL, + gUnknown_81B3525, + gUnknown_81B35E6, + gUnknown_81B36EB, + gUnknown_81B379A, + gUnknown_81B3849, + gUnknown_81B3876, + gUnknown_81B3972, + gUnknown_81B3A51, + gUnknown_81B3ACC, + gUnknown_81B3BB6, + gUnknown_81B3C99, + gUnknown_81B3D1B, + gUnknown_81B3DE3, + gUnknown_81B3EBC, + gUnknown_81B3F7F, + gUnknown_81B406C, + gUnknown_81B410B, + gUnknown_81B41D7, + gUnknown_81B42B3, + gUnknown_81B439D, + gUnknown_81B4483, + gUnknown_81B457C, + gUnknown_81B4645, + gUnknown_81B470A, + gUnknown_81B47F0, + gUnknown_81B48C6, + gUnknown_81B497A, + gUnknown_81B4A72, + gUnknown_81B4B65, + gUnknown_81B4C54, + gUnknown_81B4D26, + gUnknown_81B4E0B, + gUnknown_81B4ED8, + gUnknown_81B4FB2, + gUnknown_81B4FFD, + gUnknown_81B50FF, + gUnknown_81B51B1, + gUnknown_81B5272, + gUnknown_81B5325, + gUnknown_81B5382, + gUnknown_81B547C, + gUnknown_81B54E1, + gUnknown_81B5589, + gUnknown_81B55F4 +}; + +static const u8 *const gUnknown_845B218[] = { + NULL, + gUnknown_81B56E3, + gUnknown_81B56F4, + gUnknown_81B5705, + gUnknown_81B5717, + gUnknown_81B5728, + gUnknown_81B5737, + gUnknown_81B5744, + gUnknown_81B5754, + gUnknown_81B5767, + gUnknown_81B577B, + gUnknown_81B5787, + gUnknown_81B5795, + gUnknown_81B57A5, + gUnknown_81B57B8, + gUnknown_81B57CF, + gUnknown_81B57DE, + gUnknown_81B57EE, + gUnknown_81B580D, + gUnknown_81B5824, + gUnknown_81B5834, + gUnknown_81B583F, + gUnknown_81B5850, + gUnknown_81B5863, + gUnknown_81B5875, + gUnknown_81B5884, + gUnknown_81B5893, + gUnknown_81B58A4, + gUnknown_81B58BC, + gUnknown_81B58D3, + gUnknown_81B58E5, + gUnknown_81B58FD, + gUnknown_81B590E, + gUnknown_81B591D, + gUnknown_81B592E, + gUnknown_81B593E, + gUnknown_81B5950, + gUnknown_81B595D, + gUnknown_81B5974, + gUnknown_81B5989, + gUnknown_81B59A7, + gUnknown_81B59BF, + gUnknown_81B59D6, + gUnknown_81B59E8, + gUnknown_81B59F5, + gUnknown_81B5A0D, + gUnknown_81B5A1B, + gUnknown_81B5A29, + gUnknown_81B5A37 +}; + +static const u8 *const gUnknown_845B2DC[] = { + NULL, + gUnknown_81B5A4D, + gUnknown_81B5B0C, + gUnknown_81B5B7D, + gUnknown_81B5C13, + gUnknown_81B5CDF, + gUnknown_81B5D87, + gUnknown_81B5E41, + gUnknown_81B5F10, + gUnknown_81B5FA6, + gUnknown_81B606C, + gUnknown_81B6140, + gUnknown_81B6203, + gUnknown_81B62E4, + gUnknown_81B6397, + gUnknown_81B6478, + gUnknown_81B6525, + gUnknown_81B65E7, + gUnknown_81B66BA, + gUnknown_81B678E, + gUnknown_81B6883, + gUnknown_81B68CD, + gUnknown_81B69B9, + gUnknown_81B6A9A, + gUnknown_81B6B6E, + gUnknown_81B6C4F, + gUnknown_81B6D4A, + gUnknown_81B6E02, + gUnknown_81B6EC1, + gUnknown_81B6FA8, + gUnknown_81B7075, + gUnknown_81B7108, + gUnknown_81B71EA, + gUnknown_81B723B, + gUnknown_81B7319, + gUnknown_81B73E8, + gUnknown_81B747E, + gUnknown_81B752C, + gUnknown_81B7611, + gUnknown_81B7692, + gUnknown_81B771E, + gUnknown_81B77DD, + gUnknown_81B7884, + gUnknown_81B7931, + gUnknown_81B79CB, + gUnknown_81B7A60, + gUnknown_81B7AEE, + gUnknown_81B7BBE, + gUnknown_81B7C57 +}; + +static const u8 *const gUnknown_845B3A0[] = { + NULL, + gUnknown_81B7CC1, + gUnknown_81B7CC4, + gUnknown_81B7CD9, + gUnknown_81B7CDF, + gUnknown_81B7CE6, + gUnknown_81B7CEE, + gUnknown_81B7CF6, + gUnknown_81B7CFE, + gUnknown_81B7D04, + gUnknown_81B7D12, + gUnknown_81B7D17, + gUnknown_81B7D1A, + gUnknown_81B7D1F, + gUnknown_81B7D27, + gUnknown_81B7D2D, + gUnknown_81B7D37, + gUnknown_81B7D3E, + gUnknown_81B7D45, + gUnknown_81B7D48, + gUnknown_81B7D4E, + gUnknown_81B7D57, + gUnknown_81B7D5B, + gUnknown_81B7D61, + gUnknown_81B7D6B, + gUnknown_81B7D76, + gUnknown_81B7D7E, + gUnknown_81B7D88, + gUnknown_81B7D8F, + gUnknown_81B7D9A, + gUnknown_81B7DA7, + gUnknown_81B7DB4, + gUnknown_81B7DBA, + gUnknown_81B7DC6, + gUnknown_81B7DCC, + gUnknown_81B7DD3, + gUnknown_81B7DD6, + gUnknown_81B7DD9, + gUnknown_81B7DE1, + gUnknown_81B7DEB, + gUnknown_81B7DFA, + gUnknown_81B7E02, + gUnknown_81B7E09, + gUnknown_81B7E0F +}; + +static const u8 *const gUnknown_845B450[] = { + NULL, + gUnknown_81B7E16, + gUnknown_81B7F0A, + gUnknown_81B800A, + gUnknown_81B80EC, + gUnknown_81B81C2, + gUnknown_81B8256, + gUnknown_81B8348, + gUnknown_81B83EF, + gUnknown_81B847B, + gUnknown_81B8550, + gUnknown_81B8647, + gUnknown_81B86E2, + gUnknown_81B87B8, + gUnknown_81B8897, + gUnknown_81B8924, + gUnknown_81B8A04, + gUnknown_81B8A84, + gUnknown_81B8B62, + gUnknown_81B8C18, + gUnknown_81B8C94, + gUnknown_81B8D1D, + gUnknown_81B8DD4, + gUnknown_81B8E67, + gUnknown_81B8F4D, + gUnknown_81B901B, + gUnknown_81B90A7, + gUnknown_81B90E8, + gUnknown_81B9170, + gUnknown_81B91C2, + gUnknown_81B91F9, + gUnknown_81B92B8, + gUnknown_81B92ED, + gUnknown_81B93D8, + gUnknown_81B9439, + gUnknown_81B9497, + gUnknown_81B9560, + gUnknown_81B9656, + gUnknown_81B9749, + gUnknown_81B984F, + gUnknown_81B991C, + gUnknown_81B99C4, + gUnknown_81B9AA2, + gUnknown_81B9B2F +}; + +static const u8 *const gUnknown_845B500[] = { + NULL, + gUnknown_81B9BB7, + gUnknown_81B9BC7, + gUnknown_81B9BD0, + gUnknown_81B9BE1, + gUnknown_81B9BF5, + gUnknown_81B9C09, + gUnknown_81B9C1D +}; + +static const u8 *const gUnknown_845B520[] = { + NULL, + gUnknown_81B9C2F, + gUnknown_81B9D04, + gUnknown_81B9DC5, + gUnknown_81B9E75, + gUnknown_81B9F09, + gUnknown_81B9FCE, + gUnknown_81BA027 +}; + +static const u8 *const gUnknown_845B540[] = { + NULL, + gUnknown_81BA0F1, + gUnknown_81BA10D, + gUnknown_81BA121, + gUnknown_81BA138, + gUnknown_81BA14C, + gUnknown_81BA163, + gUnknown_81BA17A, + gUnknown_81BA194, + gUnknown_81BA1AC, + gUnknown_81BA1C7, + gUnknown_81BA1DC, + gUnknown_81BA1F4, + gUnknown_81BA209, + gUnknown_81BA221, + gUnknown_81BA234, + gUnknown_81BA24A, + gUnknown_81BA260, + gUnknown_81BA279, + gUnknown_81BA291, + gUnknown_81BA2AC, + gUnknown_81BA2C2, + gUnknown_81BA2DB, + gUnknown_81BA2F1, + gUnknown_81BA30A, + gUnknown_81BA320, + gUnknown_81BA339, + gUnknown_81BA34E, + gUnknown_81BA366, + gUnknown_81BA37C, + gUnknown_81BA395, + gUnknown_81BA3A9, + gUnknown_81BA3C0, + gUnknown_81BA3D5, + gUnknown_81BA3ED, + gUnknown_81BA400 +}; + +static const u8 *const gUnknown_845B5D0[] = { + NULL, + gUnknown_81BA416, + gUnknown_81BA4E6, + gUnknown_81BA539, + gUnknown_81BA595, + gUnknown_81BA5F2, + gUnknown_81BA66F, + gUnknown_81BA6C9, + gUnknown_81BA71F, + gUnknown_81BA796, + gUnknown_81BA7E9, + gUnknown_81BA862, + gUnknown_81BA8D3, + gUnknown_81BA92A, + gUnknown_81BA98D, + gUnknown_81BA9F1, + gUnknown_81BAA44, + gUnknown_81BAAB6, + gUnknown_81BAB18, + gUnknown_81BAB7A, + gUnknown_81BABCC, + gUnknown_81BAC29, + gUnknown_81BAC89, + gUnknown_81BACC4, + gUnknown_81BAD20, + gUnknown_81BAD60, + gUnknown_81BADA2, + gUnknown_81BADF7, + gUnknown_81BAEA8, + gUnknown_81BAF01, + gUnknown_81BAF6B, + gUnknown_81BAFCA, + gUnknown_81BB02E, + gUnknown_81BB084, + gUnknown_81BB0DF, + gUnknown_81BB156 +}; + + +static const u8 gUnknown_845B660[] = { + 0x01, 0x02, 0x03, 0xff +}; + +static const u8 gUnknown_845B664[] = { + 0x01, 0x02, 0x03, 0xff +}; + +static const u8 gUnknown_845B668[] = { + 0x13, 0xff +}; + +static const u8 gUnknown_845B66A[] = { + 0x01, 0x02, 0x03, 0xff +}; + +static const u8 gUnknown_845B66E[] = { + 0x01, 0x25, 0xff +}; + +static const u8 gUnknown_845B671[] = { + 0x02, 0x03, 0x04, 0x05, 0x11, 0xff +}; + +static const u8 gUnknown_845B677[] = { + 0x09, 0x01, 0xff +}; + +static const u8 gUnknown_845B67A[] = { + 0x02, 0x03, 0xff +}; + +static const u8 gUnknown_845B67D[] = { + 0x09, 0x0a, 0x0b, 0x11, 0x0c, 0x10, 0xff +}; + +static const u8 gUnknown_845B684[] = { + 0x09, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x02, 0x0d, 0xff +}; + +static const u8 gUnknown_845B68E[] = { + 0x09, 0x03, 0x0a, 0x0f, 0x12, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B696[] = { + 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x12, 0xff +}; + +static const u8 gUnknown_845B6A1[] = { + 0x16, 0x17, 0x18, 0xff +}; + +static const u8 gUnknown_845B6A5[] = { + 0x0a, 0xff +}; + +static const u8 gUnknown_845B6A7[] = { + 0x11, 0x0e, 0x19, 0x1a, 0x1b, 0xff +}; + +static const u8 gUnknown_845B6AD[] = { + 0x0a, 0xff +}; + +static const u8 gUnknown_845B6AF[] = { + 0x0b, 0xff +}; + +static const u8 gUnknown_845B6B1[] = { + 0x2b, 0x19, 0x1a, 0xff +}; + +static const u8 gUnknown_845B6B5[] = { + 0x0c, 0xff +}; + +static const u8 gUnknown_845B6B7[] = { + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0xff +}; + +static const u8 gUnknown_845B6BF[] = { + 0x02, 0x03, 0x04, 0xff +}; + +static const u8 gUnknown_845B6C3[] = { + 0x01, 0x02, 0x03, 0x07, 0xff +}; + +static const u8 gUnknown_845B6C8[] = { + 0x02, 0x04, 0x05, 0x09, 0x25, 0xff +}; + +static const u8 gUnknown_845B6CE[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B6E2[] = { + 0x09, 0x01, 0x02, 0x03, 0x0a, 0x28, 0xff +}; + +static const u8 gUnknown_845B6E9[] = { + 0x02, 0x05, 0x06, 0x0a, 0x23, 0x24, 0x09, 0x25, 0xff +}; + +static const u8 gUnknown_845B6F2[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0x14, 0xff +}; + +static const u8 gUnknown_845B707[] = { + 0x09, 0x01, 0x02, 0x03, 0x0a, 0x28, 0xff +}; + +static const u8 gUnknown_845B70E[] = { + 0x03, 0x07, 0x04, 0x05, 0x06, 0xff +}; + +static const u8 gUnknown_845B714[] = { + 0x02, 0x05, 0x06, 0x0a, 0x23, 0x24, 0x09, 0x25, 0xff +}; + +static const u8 gUnknown_845B71D[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B731[] = { + 0x09, 0x01, 0x02, 0x03, 0x0a, 0x0c, 0x0e, 0x16, 0x17, 0x18, 0x15, 0xff +}; + +static const u8 gUnknown_845B73D[] = { + 0x06, 0x0a, 0x23, 0x24, 0x09, 0x25, 0xff +}; + +static const u8 gUnknown_845B744[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B758[] = { + 0x09, 0x01, 0x02, 0x03, 0x0a, 0x15, 0xff +}; + +static const u8 gUnknown_845B75F[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B783[] = { + 0x02, 0x0a, 0x04, 0x05, 0x06, 0x07, 0x0d, 0x27, 0x08, 0x0b, 0x21, 0x23, 0x24, 0x2c, 0x09, 0x0e, 0x16, 0x17, 0x0f, 0x10, 0x11, 0x1a, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff +}; + +static const u8 gUnknown_845B7A7[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B7BB[] = { + 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0xff +}; + +static const u8 gUnknown_845B7C4[] = { + 0x02, 0x0a, 0x04, 0x05, 0x06, 0x07, 0x0d, 0x27, 0x08, 0x0b, 0x21, 0x23, 0x24, 0x2c, 0x09, 0x0e, 0x16, 0x17, 0x0f, 0x10, 0x11, 0x1a, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff +}; + +static const u8 gUnknown_845B7E8[] = { + 0x1f, 0x01, 0x02, 0x06, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B7F1[] = { + 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0x28, 0xff +}; + +static const u8 gUnknown_845B7FB[] = { + 0x0a, 0x07, 0x0d, 0x27, 0x08, 0x0b, 0x21, 0x23, 0x24, 0x2c, 0x09, 0x0e, 0x16, 0x0f, 0x10, 0x11, 0x1a, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff +}; + +static const u8 gUnknown_845B81A[] = { + 0x1f, 0x01, 0x02, 0x06, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B823[] = { + 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0xff +}; + +static const u8 gUnknown_845B82C[] = { + 0x07, 0x27, 0x08, 0x2c, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff +}; + +static const u8 gUnknown_845B83E[] = { + 0x1f, 0x01, 0x02, 0x06, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B847[] = { + 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0xff +}; + +static const u8 gUnknown_845B850[] = { + 0x0f, 0x1b, 0x1d, 0x11, 0x12, 0x15, 0x17, 0x16, 0x1f, 0x20, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B85D[] = { + 0x20, 0x21, 0x22, 0x23, 0x24, 0x07, 0x09, 0x2b, 0xff +}; + +static const u8 gUnknown_845B866[] = { + 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0x27, 0x15, 0xff +}; + +static const u8 gUnknown_845B878[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B89C[] = { + 0x0f, 0x1b, 0x1d, 0x11, 0x12, 0x16, 0x1f, 0x20, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B8A7[] = { + 0x20, 0x21, 0x22, 0x23, 0x24, 0x07, 0x2b, 0xff +}; + +static const u8 gUnknown_845B8AF[] = { + 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0x27, 0x15, 0xff +}; + +static const u8 gUnknown_845B8C1[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B8E5[] = { + 0x0f, 0x1b, 0x1d, 0x11, 0x12, 0x16, 0x1f, 0x20, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B8F0[] = { + 0x20, 0x21, 0x22, 0x23, 0x24, 0x07, 0x2b, 0xff +}; + +static const u8 gUnknown_845B8F8[] = { + 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0x27, 0x15, 0xff +}; + +static const u8 gUnknown_845B90A[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B92E[] = { + 0x29, 0x2a, 0x2b, 0xff +}; + +static const u8 gUnknown_845B932[] = { + 0x2d, 0x2e, 0x2f, 0x2b, 0xff +}; + +static const u8 gUnknown_845B937[] = { + 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B947[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B96B[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B978[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B985[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B992[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B99F[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B9AC[] = { + 0x26, 0x27, 0x28, 0x29, 0x2a, 0xff +}; + +static const u8 gUnknown_845B9B2[] = { + 0x26, 0x27, 0x28, 0x29, 0x2a, 0xff +}; + +static const u8 gUnknown_845B9B8[] = { + 0x26, 0x27, 0x28, 0x29, 0x2a, 0xff +}; + +static const u8 gUnknown_845B9BE[] = { + 0x09, 0x01, 0x02, 0x03, 0x23, 0x25, 0x24, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x27, 0x15, 0x26, 0x16, 0x17, 0x18, 0x1a, 0x0e, 0x1b, 0xff +}; + +static const u8 *const gUnknown_845B9E0[] = { + NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, gUnknown_845B660, NULL, + NULL, NULL, NULL, gUnknown_845B664, NULL, + NULL, gUnknown_845B668, NULL, gUnknown_845B66A, NULL, + NULL, gUnknown_845B66E, NULL, NULL, NULL, + NULL, gUnknown_845B671, gUnknown_845B677, NULL, NULL, + NULL, gUnknown_845B67A, gUnknown_845B67D, NULL, NULL, + NULL, NULL, gUnknown_845B684, NULL, NULL, + NULL, NULL, gUnknown_845B68E, NULL, NULL, + NULL, gUnknown_845B696, gUnknown_845B6A1, NULL, NULL, + NULL, gUnknown_845B6A5, gUnknown_845B6A7, NULL, NULL, + NULL, gUnknown_845B6AD, NULL, NULL, NULL, + NULL, gUnknown_845B6AF, gUnknown_845B6B1, NULL, NULL, + NULL, gUnknown_845B6B5, gUnknown_845B6B7, NULL, NULL, + gUnknown_845B6BF, NULL, NULL, gUnknown_845B6C3, NULL, + gUnknown_845B6C8, gUnknown_845B6CE, gUnknown_845B6E2, NULL, NULL, + gUnknown_845B6E9, gUnknown_845B6F2, gUnknown_845B707, gUnknown_845B70E, NULL, + gUnknown_845B714, gUnknown_845B71D, gUnknown_845B731, NULL, NULL, + gUnknown_845B73D, gUnknown_845B744, gUnknown_845B758, NULL, gUnknown_845B75F, + gUnknown_845B783, gUnknown_845B7A7, gUnknown_845B7BB, NULL, NULL, + gUnknown_845B7C4, gUnknown_845B7E8, gUnknown_845B7F1, NULL, NULL, + gUnknown_845B7FB, gUnknown_845B81A, gUnknown_845B823, NULL, NULL, + gUnknown_845B82C, gUnknown_845B83E, gUnknown_845B847, NULL, NULL, + gUnknown_845B850, gUnknown_845B85D, gUnknown_845B866, NULL, gUnknown_845B878, + gUnknown_845B89C, gUnknown_845B8A7, gUnknown_845B8AF, NULL, gUnknown_845B8C1, + gUnknown_845B8E5, gUnknown_845B8F0, gUnknown_845B8F8, NULL, gUnknown_845B90A, + gUnknown_845B92E, gUnknown_845B932, gUnknown_845B937, NULL, gUnknown_845B947, + NULL, gUnknown_845B96B, NULL, NULL, NULL, + NULL, gUnknown_845B978, NULL, NULL, NULL, + NULL, gUnknown_845B985, NULL, NULL, NULL, + NULL, gUnknown_845B992, NULL, NULL, NULL, + NULL, gUnknown_845B99F, NULL, NULL, NULL, + NULL, gUnknown_845B9AC, NULL, NULL, NULL, + NULL, gUnknown_845B9B2, NULL, NULL, NULL, + NULL, gUnknown_845B9B8, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL +}; + +static const u16 unref_845BCB0[] = INCBIN_U16("graphics/help_system/unk_845BCB0.bin"); + +static const u8 gUnknown_845C4B0[] = { + 3, 0, 1, 2, 4, 5 +}; + +static const u8 gUnknown_845C4B6[][6] = { + {0, 0, 0, 0, 0, 1}, + {0, 0, 0, 1, 0, 1}, + {0, 0, 0, 1, 0, 1}, + {0, 1, 0, 1, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 0, 1, 0, 0, 1}, + {0, 0, 1, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {1, 0, 0, 1, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 1, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 1, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 1, 1}, + {1, 1, 1, 0, 1, 1}, + {1, 1, 1, 0, 1, 1}, + {1, 1, 1, 0, 1, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0} +}; + +static const u16 gUnknown_845C594[] = { + MAP_VIRIDIAN_CITY_MART, + MAP_PEWTER_CITY_MART, + MAP_CERULEAN_CITY_MART, + MAP_LAVENDER_TOWN_MART, + MAP_VERMILION_CITY_MART, + MAP_CELADON_CITY_DEPARTMENT_STORE_1F, + MAP_CELADON_CITY_DEPARTMENT_STORE_2F, + MAP_CELADON_CITY_DEPARTMENT_STORE_3F, + MAP_CELADON_CITY_DEPARTMENT_STORE_4F, + MAP_CELADON_CITY_DEPARTMENT_STORE_5F, + MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF, + MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR, + MAP_FUCHSIA_CITY_MART, + MAP_CINNABAR_ISLAND_MART, + MAP_SAFFRON_CITY_MART, + MAP_THREE_ISLAND_MART, + MAP_FOUR_ISLAND_MART, + MAP_SEVEN_ISLAND_MART, + MAP_SIX_ISLAND_MART, + MAP_UNDEFINED +}; + +static const u16 gUnknown_845C5BC[] = { + MAP_PEWTER_CITY_GYM, + MAP_CERULEAN_CITY_GYM, + MAP_VERMILION_CITY_GYM, + MAP_CELADON_CITY_GYM, + MAP_FUCHSIA_CITY_GYM, + MAP_SAFFRON_CITY_GYM, + MAP_CINNABAR_ISLAND_GYM, + MAP_VIRIDIAN_CITY_GYM, + MAP_UNDEFINED +}; + +static const u8 gUnknown_845C5CE[][3] = { + { MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), 1 }, + { MAP_GROUP(MT_MOON_1F), MAP_NUM(MT_MOON_1F), 3 }, + { MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), 2 }, + { MAP_GROUP(DIGLETTS_CAVE_NORTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_NORTH_ENTRANCE), 3 }, + { MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), 5 }, + { MAP_GROUP(VICTORY_ROAD_1F), MAP_NUM(VICTORY_ROAD_1F), 3 }, + { MAP_GROUP(CERULEAN_CAVE_1F), MAP_NUM(CERULEAN_CAVE_1F), 3 }, + { MAP_GROUP(MT_EMBER_RUBY_PATH_B4F), MAP_NUM(MT_EMBER_RUBY_PATH_B4F), 1 }, + { MAP_GROUP(MT_EMBER_SUMMIT_PATH_1F), MAP_NUM(MT_EMBER_SUMMIT_PATH_1F), 3 }, + { MAP_GROUP(MT_EMBER_RUBY_PATH_B5F), MAP_NUM(MT_EMBER_RUBY_PATH_B5F), 7 }, + { MAP_GROUP(THREE_ISLAND_BERRY_FOREST), MAP_NUM(THREE_ISLAND_BERRY_FOREST), 1 }, + { MAP_GROUP(SIX_ISLAND_PATTERN_BUSH), MAP_NUM(SIX_ISLAND_PATTERN_BUSH), 1 }, + { MAP_GROUP(FIVE_ISLAND_LOST_CAVE_ENTRANCE), MAP_NUM(FIVE_ISLAND_LOST_CAVE_ENTRANCE), 15 }, + { MAP_GROUP(FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE), MAP_NUM(FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE), 4 }, + { MAP_GROUP(SIX_ISLAND_ALTERING_CAVE), MAP_NUM(SIX_ISLAND_ALTERING_CAVE), 1 }, + { MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), 7 } +}; + +void sub_812B1E0(u8 a0) +{ + gUnknown_203B0EC = a0; +} + +void HelpSystem_SetSomeVariable2(u8 a0) +{ + switch (gUnknown_203B0EC) + { + case 23: + case 24: + case 25: + case 26: + if (a0 == 9 || a0 == 5 || a0 == 6 || a0 == 7 || a0 == 8) + break; + // fallthrough + default: + gUnknown_203B0EC = a0; + break; + } +} + +void sub_812B220(void) +{ + gUnknown_203B0EC = gSpecialVar_0x8004; +} + +void sub_812B234(void) +{ + gUnknown_3005EA0 = gUnknown_203B0EC; +} + +void sub_812B248(void) +{ + gUnknown_203B0EC = gUnknown_3005EA0; +} + +static bool32 sub_812B25C(void) +{ + return sub_812B27C(gUnknown_845C594); +} + +static bool32 sub_812B26C(void) +{ + return sub_812B27C(gUnknown_845C5BC); +} + +static bool32 sub_812B27C(const u16 * mapIdxs) +{ + u16 mapIdx = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum; + s32 i; + + for (i = 0; mapIdxs[i] != MAP_UNDEFINED; i++) + { + if (mapIdxs[i] == mapIdx) + return TRUE; + } + + return FALSE; +} + +static bool8 sub_812B2C4(void) +{ + u8 i, j; + + for (i = 0; i < 16; i++) + { + for (j = 0; j < gUnknown_845C5CE[i][2]; j++) + { + if ( + gUnknown_845C5CE[i][0] == gSaveBlock1Ptr->location.mapGroup + && gUnknown_845C5CE[i][1] + j == gSaveBlock1Ptr->location.mapNum + && (i != 15 || FlagGet(FLAG_0x849) == TRUE) + ) + return TRUE; + } + } + + return FALSE; +} + +void sub_812B35C(void) +{ + sub_812B4B8(); + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) + HelpSystem_SetSomeVariable2(0x16); + else if (sub_812B2C4()) + HelpSystem_SetSomeVariable2(0x15); + else if (is_light_level_8_or_9(gMapHeader.mapType)) + { + if ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F)) || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_2F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_2F))) + HelpSystem_SetSomeVariable2(0x0E); + else if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB)) + HelpSystem_SetSomeVariable2(0x0F); + else if (IsCurMapPokeCenter() == TRUE) + HelpSystem_SetSomeVariable2(0x10); + else if (sub_812B25C() == TRUE) + HelpSystem_SetSomeVariable2(0x11); + else if (sub_812B26C() == TRUE) + HelpSystem_SetSomeVariable2(0x12); + else + HelpSystem_SetSomeVariable2(0x13); + } + else + HelpSystem_SetSomeVariable2(0x14); +} + +bool8 sub_812B40C(void) +{ + if (gUnknown_203B0EE == 1) + return FALSE; + + if (gSaveFileStatus != SAVE_STATUS_EMPTY && gSaveFileStatus != SAVE_STATUS_INVALID && FlagGet(FLAG_0x83C)) + return FALSE; + + FlagSet(FLAG_0x83C); + gUnknown_203B0EE = 1; + return TRUE; +} + +bool8 sub_812B45C(void) +{ + if (gReceivedRemoteLinkPlayers == 1) + return FALSE; + return TRUE; +} + +void sub_812B478(void) +{ + gUnknown_3005ECC = 0; +} + +void sub_812B484(void) +{ + if (gUnknown_203ADFA != 2 && gUnknown_203ADFA != 3) + { + gUnknown_3005ECC = 1; + sub_812B4B8(); + } +} + +void sub_812B4AC(void) +{ + gUnknown_203F175 = 1; +} + +void sub_812B4B8(void) +{ + gUnknown_203F175 = 0; +} + +static void sub_812B4C4(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + a0->sub.items = a1; + a0->sub.totalItems = 1; + a0->sub.maxShowed = 1; + a0->sub.left = 1; + a0->sub.top = 4; +} + +static void sub_812B4D8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + sub_812B4C4(a0, a1); + sub_812B520(a0, a1); + sub_812BF74(gUnknown_841DFAC); + HelpSystem_InitListMenuController(a0, 0, gUnknown_3005E9C[2]); + sub_812BF9C(a0, a1); + sub_813BDA4(1); + sub_813BD5C(1); +} + +static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + u8 i; + u8 r4 = 0; + for (i = 0; i < 6; i++) + { + if (gUnknown_845C4B6[gUnknown_203B0EC][gUnknown_845C4B0[i]] == 1) + { + a1[r4].label = gUnknown_845B080[gUnknown_845C4B0[i]]; + a1[r4].index = gUnknown_845C4B0[i]; + r4++; + } + } + a1[r4 - 1].index = -2; + a0->sub.totalItems = r4; + a0->sub.maxShowed = r4; + a0->sub.left = 0; +} + +static void sub_812B5A8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + sub_813BDE8(0); + sub_813BFC0(0); + sub_813BE78(1); + sub_812B4C4(a0, a1); + sub_812B614(a0, a1); + sub_812BF74(gUnknown_841DFC9); + HelpSystem_InitListMenuController(a0, a0->field_0C, a0->field_0D); + HelpSystem_PrintTextAt(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0); + sub_813BDA4(1); + sub_813BD5C(1); +} + +static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + u8 r6 = 0; + const u8 * r3 = gUnknown_845B9E0[gUnknown_203B0EC * 5 + gUnknown_3005E9C[1]]; + u8 i; + for (i = 0; r3[i] != 0xFF; i++) + { + if (sub_812B780(r3[i]) == TRUE) + { + if (gUnknown_3005E9C[1] == 0) + a1[r6].label = gUnknown_845B0B0[r3[i]]; + else if (gUnknown_3005E9C[1] == 1) + a1[r6].label = gUnknown_845B218[r3[i]]; + else if (gUnknown_3005E9C[1] == 2) + a1[r6].label = gUnknown_845B3A0[r3[i]]; + else if (gUnknown_3005E9C[1] == 3) + a1[r6].label = gUnknown_845B500[r3[i]]; + else + a1[r6].label = gUnknown_845B540[r3[i]]; + a1[r6].index = r3[i]; + r6++; + } + } + if (sub_812B754() == TRUE) + { + for (i = 0, r3 = gUnknown_845B9BE; r3[i] != 0xFF; i++) + { + a1[r6].label = gUnknown_845B3A0[r3[i]]; + a1[r6].index = r3[i]; + r6++; + } + } + a1[r6].label = gUnknown_81B2E6F; + a1[r6].index = -2; + r6++; + a0->sub.totalItems = r6; + a0->sub.maxShowed = 7; + a0->sub.left = 0; + a0->sub.top = 21; +} + +static bool8 sub_812B754(void) +{ + if (FlagGet(FLAG_0x4B0) == TRUE && gUnknown_3005E9C[1] == 2) + return TRUE; + return FALSE; +} + +static bool8 sub_812B780(u8 id) +{ + u8 i = 0; + + if (gUnknown_3005E9C[1] == 0) + { + switch (id) + { + case 1: + case 2: + case 3: + case 5: + case 8: + case 34: + case 38: + case 41: + case 42: + case 43: + return TRUE; + case 4: + return FlagGet(FLAG_0x2CF); + case 6: + case 10: + case 16: + case 19: + case 22: + case 35: + case 36: + return FlagGet(FLAG_WORLD_MAP_VIRIDIAN_CITY); + case 7: + return FlagGet(FLAG_WORLD_MAP_VERMILION_CITY); + case 11: + case 24: + return FlagGet(FLAG_0x8A4); + case 9: + case 13: + case 14: + case 15: + case 17: + case 18: + case 20: + case 26: + case 29: + case 31: + case 37: + return FlagGet(FLAG_0x828); + case 21: + case 23: + return FlagGet(FLAG_0x829); + case 12: + case 25: + case 27: + case 30: + case 32: + case 33: + return FlagGet(FLAG_UNK820); + case 28: + case 40: + return sub_812BB10(); + case 39: + return FlagGet(FLAG_0x29B); + case 44: + return FlagGet(FLAG_WORLD_MAP_PEWTER_CITY); + } + return FALSE; + } + if (gUnknown_3005E9C[1] == 1) + { + switch (id) + { + case 06: + case 10: + case 11: + case 12: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 31: + case 36: + case 38: + case 39: + case 40: + case 41: + case 42: + case 45: + case 46: + case 47: + return TRUE; + case 1: + case 30: + case 37: + return FlagGet(FLAG_0x829); + case 14: + return CheckBagHasItem(ITEM_TOWN_MAP, 1); + case 2: + case 3: + case 5: + case 7: + case 8: + case 9: + case 13: + case 32: + case 33: + case 35: + case 43: + case 44: + return FlagGet(FLAG_0x828); + case 4: + case 34: + if (sub_8088EDC(1) > 1) + return TRUE; + return FALSE; + case 15: + return FlagGet(FLAG_UNK820); + case 16: + case 17: + return sub_812BB10(); + case 18: + return FlagGet(FLAG_0x271); + case 48: + return FlagGet(FLAG_0x82C); + } + return FALSE; + } + if (gUnknown_3005E9C[1] == 2) + { + if (sub_812B754() == TRUE) + { + for (i = 0; gUnknown_845B9BE[i] != 0xFF; i++) + { + if (gUnknown_845B9BE[i] == id) + return FALSE; + } + } + switch (id) + { + case 14: + case 17: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 38: + return TRUE; + case 1: + case 2: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 16: + case 19: + case 20: + case 21: + return FlagGet(FLAG_0x828); + case 36: + case 37: + return sub_812BB10(); + case 3: + case 15: + case 18: + case 39: + return FlagGet(FLAG_0x8A4); + } + return TRUE; + } + if (gUnknown_3005E9C[1] == 3) + { + switch (id) + { + case 5: + return FlagGet(FLAG_UNK820); + case 6: + return FlagGet(FLAG_0x821); + } + return TRUE; + } + if (gUnknown_3005E9C[1] == 4) + { + return TRUE; + } + + return FALSE; +} + +static bool8 sub_812BB10(void) +{ + if (FlagGet(FLAG_0x237) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x238) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x239) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x23A) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x23B) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x2EF) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x1F1) == TRUE) + return TRUE; + return FALSE; +} + +bool8 sub_812BB9C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + switch (a0->field_0E) + { + case 8: + return sub_812BC54(a0, a1); + case 9: + return sub_812BC80(a0, a1); + case 10: + return sub_812BCA8(a0, a1); + case 0: + return sub_812BCD0(a0, a1); + case 1: + return sub_812BD2C(a0, a1); + case 2: + return sub_812BD64(a0, a1); + case 3: + return sub_812BD98(a0, a1); + case 4: + return sub_812BE10(a0, a1); + case 5: + return sub_812BEEC(a0, a1); + case 6: + return sub_812BF18(a0, a1); + } + return FALSE; +} + +bool8 sub_812BC54(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + sub_812BF74(gUnknown_841DFA5); + sub_812BF5C(); + sub_813BDA4(1); + sub_813BD5C(1); + a0->field_0E = 9; + return TRUE; +} + +bool8 sub_812BC80(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + a0->field_0E = 10; + } + return TRUE; +} + +bool8 sub_812BCA8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + gUnknown_3005E9C[2] = 0; + sub_812BF94(a0); + sub_812B4D8(a0, a1); + a0->field_0E = 0; + return TRUE; +} + +bool8 sub_812BCD0(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + s32 v0 = HelpSystem_GetMenuInput(); + switch (v0) + { + case -6: + case -2: + return FALSE; + case -5: + case -4: + sub_812BF9C(a0, a1); + break; + case -3: + case -1: + break; + default: + gUnknown_3005E9C[1] = v0; + a0->field_0E = 1; + break; + } + return TRUE; +} + +bool8 sub_812BD2C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + gUnknown_3005E9C[0] = 1; + gUnknown_3005E9C[2] = a0->field_0D; + sub_812BF94(a0); + sub_812B5A8(a0, a1); + sub_813C75C(); + HelpSystem_SetInputDelay(2); + a0->field_0E = 3; + return TRUE; +} + +bool8 sub_812BD64(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + sub_813C004(0, 0); + sub_813C004(1, 0); + gUnknown_3005E9C[0] = 0; + sub_812B4D8(a0, a1); + a0->field_0E = 0; + return TRUE; +} + +bool8 sub_812BD98(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + s32 v0 = HelpSystem_GetMenuInput(); + switch (v0) + { + case -6: + return FALSE; + case -2: + a0->field_0E = 2; + break; + case -5: + case -4: + case -3: + case -1: + break; + default: + gUnknown_3005E9C[3] = v0; + a0->field_0E = 4; + break; + } + return TRUE; +} + +void sub_812BDEC(void) +{ + HelpSystem_PrintTextAt(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0); +} + +bool8 sub_812BE10(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + gUnknown_3005E9C[0] = 2; + sub_813BDA4(0); + HelpSystem_FillPanel1(); + sub_812BF74(gUnknown_841DFBE); + sub_813BDE8(1); + sub_813BEE4(1); + + if (gUnknown_3005E9C[1] == 0) + { + HelpSystem_PrintTwoStrings(gUnknown_845B0B0[gUnknown_3005E9C[3]], gUnknown_845B164[gUnknown_3005E9C[3]]); + } + else if (gUnknown_3005E9C[1] == 1) + { + HelpSystem_PrintTwoStrings(gUnknown_845B218[gUnknown_3005E9C[3]], gUnknown_845B2DC[gUnknown_3005E9C[3]]); + } + else if (gUnknown_3005E9C[1] == 2) + { + HelpSystem_PrintTwoStrings(gUnknown_845B3A0[gUnknown_3005E9C[3]], gUnknown_845B450[gUnknown_3005E9C[3]]); + } + else if (gUnknown_3005E9C[1] == 3) + { + HelpSystem_PrintTwoStrings(gUnknown_845B500[gUnknown_3005E9C[3]], gUnknown_845B520[gUnknown_3005E9C[3]]); + } + else + { + HelpSystem_PrintTwoStrings(gUnknown_845B540[gUnknown_3005E9C[3]], gUnknown_845B5D0[gUnknown_3005E9C[3]]); + } + sub_813BDA4(1); + sub_813BD5C(1); + a0->field_0E = 6; + return TRUE; +} + +bool8 sub_812BEEC(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + gUnknown_3005E9C[0] = 1; + sub_812B5A8(a0, a1); + sub_813C75C(); + HelpSystem_SetInputDelay(2); + a0->field_0E = 3; + return TRUE; +} + +bool8 sub_812BF18(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + if (JOY_NEW(B_BUTTON) || JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + a0->field_0E = 5; + return TRUE; + } + if (JOY_NEW(L_BUTTON | R_BUTTON)) + return FALSE; + return TRUE; +} + +static void sub_812BF5C(void) +{ + HelpSystem_FillPanel1(); + HelpSystem_PrintTextAt(gUnknown_81B2FC9, 0, 0); +} + +static void sub_812BF74(const u8 * str) +{ + HelpSystem_FillPanel2(); + HelpSystem_PrintTextRightAlign_Row52(str); +} + +u8 sub_812BF88(void) +{ + return gUnknown_3005E9C[0]; +} + +static void sub_812BF94(struct HelpSystemListMenu * a0) +{ + a0->field_0C = 0; + a0->field_0D = 0; +} + +static void sub_812BF9C(struct HelpSystemListMenu * a0, struct ListMenuItem * a1) +{ + s32 index = a1[a0->field_0C + a0->field_0D].index; + if (index == -2) + HelpSystem_PrintText_813C584(gUnknown_845B098[5]); + else + HelpSystem_PrintText_813C584(gUnknown_845B098[index]); + sub_813BE30(1); +} diff --git a/src/item.c b/src/item.c new file mode 100644 index 000000000..3f33f464d --- /dev/null +++ b/src/item.c @@ -0,0 +1,684 @@ +#include "global.h" +#include "berry.h" +#include "event_data.h" +#include "item.h" +#include "item_use.h" +#include "load_save.h" +#include "malloc.h" +#include "quest_log.h" +#include "string_util.h" +#include "strings.h" +#include "constants/hold_effects.h" +#include "constants/items.h" +#include "constants/maps.h" + +void SortAndCompactBagPocket(struct BagPocket * pocket); + +// Item descriptions and data +#include "data/items.h" + +u16 GetBagItemQuantity(u16 * ptr) +{ + return gSaveBlock2Ptr->encryptionKey ^ *ptr; +} + +void SetBagItemQuantity(u16 * ptr, u16 value) +{ + *ptr = value ^ gSaveBlock2Ptr->encryptionKey; +} + +u16 GetPcItemQuantity(u16 * ptr) +{ + return 0 ^ *ptr; +} + +void SetPcItemQuantity(u16 * ptr, u16 value) +{ + *ptr = value ^ 0; +} + +void ApplyNewEncryptionKeyToBagItems(u32 key) +{ + u32 i, j; + + for (i = 0; i < NUM_BAG_POCKETS; i++) + { + for (j = 0; j < gBagPockets[i].capacity; j++) + { + ApplyNewEncryptionKeyToHword(&gBagPockets[i].itemSlots[j].quantity, key); + } + } +} + +void ApplyNewEncryptionKeyToBagItems_(u32 key) +{ + ApplyNewEncryptionKeyToBagItems(key); +} + +void SetBagPocketsPointers(void) +{ + gBagPockets[POCKET_ITEMS - 1].itemSlots = gSaveBlock1Ptr->bagPocket_Items; + gBagPockets[POCKET_ITEMS - 1].capacity = BAG_ITEMS_COUNT; + gBagPockets[POCKET_KEY_ITEMS - 1].itemSlots = gSaveBlock1Ptr->bagPocket_KeyItems; + gBagPockets[POCKET_KEY_ITEMS - 1].capacity = BAG_KEYITEMS_COUNT; + gBagPockets[POCKET_POKE_BALLS - 1].itemSlots = gSaveBlock1Ptr->bagPocket_PokeBalls; + gBagPockets[POCKET_POKE_BALLS - 1].capacity = BAG_POKEBALLS_COUNT; + gBagPockets[POCKET_TM_CASE - 1].itemSlots = gSaveBlock1Ptr->bagPocket_TMHM; + gBagPockets[POCKET_TM_CASE - 1].capacity = BAG_TMHM_COUNT; + gBagPockets[POCKET_BERRY_POUCH - 1].itemSlots = gSaveBlock1Ptr->bagPocket_Berries; + gBagPockets[POCKET_BERRY_POUCH - 1].capacity = BAG_BERRIES_COUNT; +} + +void CopyItemName(u16 itemId, u8 * dest) +{ + if (itemId == ITEM_ENIGMA_BERRY) + { + StringCopy(dest, sub_809C8A0(43)->name); + StringAppend(dest, gUnknown_84162BD); + } + else + { + StringCopy(dest, ItemId_GetName(itemId)); + } +} + +s8 BagPocketGetFirstEmptySlot(u8 pocketId) +{ + u16 i; + + for (i = 0; i < gBagPockets[pocketId].capacity; i++) + { + if (gBagPockets[pocketId].itemSlots[i].itemId == ITEM_NONE) + return i; + } + + return -1; +} + +bool8 IsPocketNotEmpty(u8 pocketId) +{ + u8 i; + + for (i = 0; i < gBagPockets[pocketId - 1].capacity; i++) + { + if (gBagPockets[pocketId - 1].itemSlots[i].itemId != ITEM_NONE) + return TRUE; + } + + return FALSE; +} + +bool8 CheckBagHasItem(u16 itemId, u16 count) +{ + u8 i; + u8 pocket; + + if (ItemId_GetPocket(itemId) == 0) + return FALSE; + + pocket = ItemId_GetPocket(itemId) - 1; + // Check for item slots that contain the item + for (i = 0; i < gBagPockets[pocket].capacity; i++) + { + if (gBagPockets[pocket].itemSlots[i].itemId == itemId) + { + u16 quantity; + // Does this item slot contain enough of the item? + quantity = GetBagItemQuantity(&gBagPockets[pocket].itemSlots[i].quantity); + if (quantity >= count) + return TRUE; + // RS and Emerald check whether there is enough of the + // item across all stacks. + // For whatever reason, FR/LG assume there's only one + // stack of the item. + else + return FALSE; + } + } + return FALSE; +} + +bool8 CheckHasAtLeastOneBerry(void) +{ + u8 itemId; + bool8 exists; + + exists = CheckBagHasItem(ITEM_BERRY_POUCH, 1); + if (!exists) + { + gSpecialVar_Result = FALSE; + return FALSE; + } + for (itemId = FIRST_BERRY_INDEX; itemId <= LAST_BERRY_INDEX; itemId++) + { + exists = CheckBagHasItem(itemId, 1); + if (exists) + { + gSpecialVar_Result = TRUE; + return TRUE; + } + } + + gSpecialVar_Result = FALSE; + return FALSE; +} + +bool8 CheckBagHasSpace(u16 itemId, u16 count) +{ + u8 i; + u8 pocket; + + if (ItemId_GetPocket(itemId) == 0) + return FALSE; + + pocket = ItemId_GetPocket(itemId) - 1; + // Check for item slots that contain the item + for (i = 0; i < gBagPockets[pocket].capacity; i++) + { + if (gBagPockets[pocket].itemSlots[i].itemId == itemId) + { + u16 quantity; + // Does this stack have room for more?? + quantity = GetBagItemQuantity(&gBagPockets[pocket].itemSlots[i].quantity); + if (quantity + count <= 999) + return TRUE; + // RS and Emerald check whether there is enough of the + // item across all stacks. + // For whatever reason, FR/LG assume there's only one + // stack of the item. + else + return FALSE; + } + } + + if (BagPocketGetFirstEmptySlot(pocket) != -1) + return TRUE; + + return FALSE; +} + +bool8 AddBagItem(u16 itemId, u16 count) +{ + u8 i; + u8 pocket; + s8 idx; + + if (ItemId_GetPocket(itemId) == 0) + return FALSE; + + pocket = ItemId_GetPocket(itemId) - 1; + for (i = 0; i < gBagPockets[pocket].capacity; i++) + { + if (gBagPockets[pocket].itemSlots[i].itemId == itemId) + { + u16 quantity; + // Does this stack have room for more?? + quantity = GetBagItemQuantity(&gBagPockets[pocket].itemSlots[i].quantity); + if (quantity + count <= 999) + { + quantity += count; + SetBagItemQuantity(&gBagPockets[pocket].itemSlots[i].quantity, quantity); + return TRUE; + } + // RS and Emerald check whether there is enough of the + // item across all stacks. + // For whatever reason, FR/LG assume there's only one + // stack of the item. + else + return FALSE; + } + } + + if (pocket == POCKET_TM_CASE - 1 && !CheckBagHasItem(ITEM_TM_CASE, 1)) + { + idx = BagPocketGetFirstEmptySlot(POCKET_KEY_ITEMS - 1); + if (idx == -1) + return FALSE; + gBagPockets[POCKET_KEY_ITEMS - 1].itemSlots[idx].itemId = ITEM_TM_CASE; + SetBagItemQuantity(&gBagPockets[POCKET_KEY_ITEMS - 1].itemSlots[idx].quantity, 1); + } + + if (pocket == POCKET_BERRY_POUCH - 1 && !CheckBagHasItem(ITEM_BERRY_POUCH, 1)) + { + idx = BagPocketGetFirstEmptySlot(POCKET_KEY_ITEMS - 1); + if (idx == -1) + return FALSE; + gBagPockets[POCKET_KEY_ITEMS - 1].itemSlots[idx].itemId = ITEM_BERRY_POUCH; + SetBagItemQuantity(&gBagPockets[POCKET_KEY_ITEMS - 1].itemSlots[idx].quantity, 1); + FlagSet(FLAG_0x847); + } + + if (itemId == ITEM_BERRY_POUCH) + FlagSet(FLAG_0x847); + + idx = BagPocketGetFirstEmptySlot(pocket); + if (idx == -1) + return FALSE; + + gBagPockets[pocket].itemSlots[idx].itemId = itemId; + SetBagItemQuantity(&gBagPockets[pocket].itemSlots[idx].quantity, count); + return TRUE; +} + +bool8 RemoveBagItem(u16 itemId, u16 count) +{ + u8 i; + u8 pocket; + + if (ItemId_GetPocket(itemId) == 0) + return FALSE; + + if (itemId == ITEM_NONE) + return FALSE; + + pocket = ItemId_GetPocket(itemId) - 1; + // Check for item slots that contain the item + for (i = 0; i < gBagPockets[pocket].capacity; i++) + { + if (gBagPockets[pocket].itemSlots[i].itemId == itemId) + { + u16 quantity; + // Does this item slot contain enough of the item? + quantity = GetBagItemQuantity(&gBagPockets[pocket].itemSlots[i].quantity); + if (quantity >= count) + { + quantity -= count; + SetBagItemQuantity(&gBagPockets[pocket].itemSlots[i].quantity, quantity); + if (quantity == 0) + gBagPockets[pocket].itemSlots[i].itemId = ITEM_NONE; + return TRUE; + } + // RS and Emerald check whether there is enough of the + // item across all stacks. + // For whatever reason, FR/LG assume there's only one + // stack of the item. + else + return FALSE; + } + } + return FALSE; +} + +u8 GetPocketByItemId(u16 itemId) +{ + return ItemId_GetPocket(itemId); // wow such important +} + +void ClearItemSlots(struct ItemSlot * slots, u8 capacity) +{ + u16 i; + + for (i = 0; i < capacity; i++) + { + slots[i].itemId = ITEM_NONE; + SetBagItemQuantity(&slots[i].quantity, 0); + } +} + +void ClearPCItemSlots(void) +{ + u16 i; + + for (i = 0; i < PC_ITEMS_COUNT; i++) + { + gSaveBlock1Ptr->pcItems[i].itemId = ITEM_NONE; + SetPcItemQuantity(&gSaveBlock1Ptr->pcItems[i].quantity, 0); + } +} + +void ClearItemSlotsInAllBagPockets(void) +{ + u16 i; + + for (i = 0; i < 5; i++) + { + ClearItemSlots(gBagPockets[i].itemSlots, gBagPockets[i].capacity); + } +} + +s8 PCItemsGetFirstEmptySlot(void) +{ + s8 i; + + for (i = 0; i < PC_ITEMS_COUNT; i++) + { + if (gSaveBlock1Ptr->pcItems[i].itemId == ITEM_NONE) + return i; + } + + return -1; +} + +u8 CountItemsInPC(void) +{ + u8 count = 0; + u8 i; + + for (i = 0; i < PC_ITEMS_COUNT; i++) + { + if (gSaveBlock1Ptr->pcItems[i].itemId != ITEM_NONE) + count++; + } + + return count; +} + +bool8 CheckPCHasItem(u16 itemId, u16 count) +{ + u8 i; + u16 quantity; + + for (i = 0; i < PC_ITEMS_COUNT; i++) + { + if (gSaveBlock1Ptr->pcItems[i].itemId == itemId) + { + quantity = GetPcItemQuantity(&gSaveBlock1Ptr->pcItems[i].quantity); + if (quantity >= count) + return TRUE; + } + } + + return FALSE; +} + +bool8 AddPCItem(u16 itemId, u16 count) +{ + u8 i; + u16 quantity; + s8 idx; + + for (i = 0; i < PC_ITEMS_COUNT; i++) + { + if (gSaveBlock1Ptr->pcItems[i].itemId == itemId) + { + quantity = GetPcItemQuantity(&gSaveBlock1Ptr->pcItems[i].quantity); + if (quantity + count <= 999) + { + quantity += count; + SetPcItemQuantity(&gSaveBlock1Ptr->pcItems[i].quantity, quantity); + return TRUE; + } + else + return FALSE; + } + } + + idx = PCItemsGetFirstEmptySlot(); + if (idx == -1) + return FALSE; + + gSaveBlock1Ptr->pcItems[idx].itemId = itemId; + SetPcItemQuantity(&gSaveBlock1Ptr->pcItems[idx].quantity, count); + return TRUE; +} + +void RemoveItemFromPC(u16 itemId, u16 count) +{ + u32 i; + u16 quantity; + + if (itemId == ITEM_NONE) + return; + + for (i = 0; i < PC_ITEMS_COUNT; i++) + { + if (gSaveBlock1Ptr->pcItems[i].itemId == itemId) + break; + } + + if (i != PC_ITEMS_COUNT) + { + quantity = GetPcItemQuantity(&gSaveBlock1Ptr->pcItems[i].quantity) - count; + SetPcItemQuantity(&gSaveBlock1Ptr->pcItems[i].quantity, quantity); + if (quantity == 0) + gSaveBlock1Ptr->pcItems[i].itemId = ITEM_NONE; + } +} + +void ItemPcCompaction(void) +{ + u16 i, j; + struct ItemSlot tmp; + + for (i = 0; i < PC_ITEMS_COUNT - 1; i++) + { + for (j = i + 1; j < PC_ITEMS_COUNT; j++) + { + if (gSaveBlock1Ptr->pcItems[i].itemId == ITEM_NONE) + { + tmp = gSaveBlock1Ptr->pcItems[i]; + gSaveBlock1Ptr->pcItems[i] = gSaveBlock1Ptr->pcItems[j]; + gSaveBlock1Ptr->pcItems[j] = tmp; + } + } + } +} + +void RegisteredItemHandleBikeSwap(void) +{ + switch (gSaveBlock1Ptr->registeredItem) + { + case ITEM_MACH_BIKE: + gSaveBlock1Ptr->registeredItem = ITEM_ACRO_BIKE; + break; + case ITEM_ACRO_BIKE: + gSaveBlock1Ptr->registeredItem = ITEM_MACH_BIKE; + break; + } +} + +void SwapItemSlots(struct ItemSlot * a, struct ItemSlot * b) +{ + struct ItemSlot c; + c = *a; + *a = *b; + *b = c; +} + +void BagPocketCompaction(struct ItemSlot * slots, u8 capacity) +{ + u16 i, j; + + for (i = 0; i < capacity - 1; i++) + { + for (j = i + 1; j < capacity; j++) + { + if (GetBagItemQuantity(&slots[i].quantity) == 0) + { + SwapItemSlots(&slots[i], &slots[j]); + } + } + } +} + +void SortPocketAndPlaceHMsFirst(struct BagPocket * pocket) +{ + u16 i; + u16 j = 0; + u16 k; + struct ItemSlot * buff; + + SortAndCompactBagPocket(pocket); + + for (i = 0; i < pocket->capacity; i++) + { + if (pocket->itemSlots[i].itemId == ITEM_NONE && GetBagItemQuantity(&pocket->itemSlots[i].quantity) == 0) + return; + if (pocket->itemSlots[i].itemId >= ITEM_HM01 && GetBagItemQuantity(&pocket->itemSlots[i].quantity) != 0) + { + for (j = i + 1; j < pocket->capacity; j++) + { + if (pocket->itemSlots[j].itemId == ITEM_NONE && GetBagItemQuantity(&pocket->itemSlots[j].quantity) == 0) + break; + } + break; + } + } + + for (k = 0; k < pocket->capacity; k++) + pocket->itemSlots[k].quantity = GetBagItemQuantity(&pocket->itemSlots[k].quantity); + buff = AllocZeroed(pocket->capacity * sizeof(struct ItemSlot)); + CpuCopy16(pocket->itemSlots + i, buff, (j - i) * sizeof(struct ItemSlot)); + CpuCopy16(pocket->itemSlots, buff + (j - i), i * sizeof(struct ItemSlot)); + CpuCopy16(buff, pocket->itemSlots, pocket->capacity * sizeof(struct ItemSlot)); + for (k = 0; k < pocket->capacity; k++) + SetBagItemQuantity(&pocket->itemSlots[k].quantity, pocket->itemSlots[k].quantity); + Free(buff); +} + +void SortAndCompactBagPocket(struct BagPocket * pocket) +{ + u16 i, j; + + for (i = 0; i < pocket->capacity; i++) + { + for (j = i + 1; j < pocket->capacity; j++) + { + if (GetBagItemQuantity(&pocket->itemSlots[i].quantity) == 0 || (GetBagItemQuantity(&pocket->itemSlots[j].quantity) != 0 && pocket->itemSlots[i].itemId > pocket->itemSlots[j].itemId)) + SwapItemSlots(&pocket->itemSlots[i], &pocket->itemSlots[j]); + } + } +} + +u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 slotId) +{ + return gBagPockets[pocketId - 1].itemSlots[slotId].itemId; +} + +u16 BagGetQuantityByPocketPosition(u8 pocketId, u16 slotId) +{ + return GetBagItemQuantity(&gBagPockets[pocketId - 1].itemSlots[slotId].quantity); +} + +u16 BagGetQuantityByItemId(u16 itemId) +{ + u16 i; + struct BagPocket * pocket = &gBagPockets[ItemId_GetPocket(itemId) - 1]; + + for (i = 0; i < pocket->capacity; i++) + { + if (pocket->itemSlots[i].itemId == itemId) + return GetBagItemQuantity(&pocket->itemSlots[i].quantity); + } + + return 0; +} + +void sub_809A824(u16 itemId) +{ + struct QuestLogStruct_809A824 + { + u16 itemId; + u8 mapSectionId; + } * ptr; + if + ( + itemId == ITEM_OAKS_PARCEL + || itemId == ITEM_POKE_FLUTE + || itemId == ITEM_SECRET_KEY + || itemId == ITEM_BIKE_VOUCHER + || itemId == ITEM_GOLD_TEETH + || itemId == ITEM_OLD_AMBER + || itemId == ITEM_CARD_KEY + || itemId == ITEM_LIFT_KEY + || itemId == ITEM_HELIX_FOSSIL + || itemId == ITEM_DOME_FOSSIL + || itemId == ITEM_SILPH_SCOPE + || itemId == ITEM_BICYCLE + || itemId == ITEM_TOWN_MAP + || itemId == ITEM_VS_SEEKER + || itemId == ITEM_TEACHY_TV + || itemId == ITEM_RAINBOW_PASS + || itemId == ITEM_TEA + || itemId == ITEM_POWDER_JAR + || itemId == ITEM_RUBY + || itemId == ITEM_SAPPHIRE + ) + { + if (itemId != ITEM_TOWN_MAP || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_GARYS_HOUSE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_GARYS_HOUSE))) + { + ptr = malloc(sizeof(*ptr)); + ptr->itemId = itemId; + ptr->mapSectionId = gMapHeader.regionMapSectionId; + sub_8113550(40, (void *)ptr); + free(ptr); + } + } +} + +u16 SanitizeItemId(u16 itemId) +{ + if (itemId >= ITEM_N_A) + return ITEM_NONE; + return itemId; +} + +const u8 * ItemId_GetName(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].name; +} + +u16 itemid_get_number(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].itemId; +} + +u16 itemid_get_market_price(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].price; +} + +u8 ItemId_GetHoldEffect(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].holdEffect; +} + +u8 ItemId_GetHoldEffectParam(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].holdEffectParam; +} + +const u8 * ItemId_GetDescription(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].description; +} + +bool8 itemid_is_unique(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].importance; +} + +u8 itemid_get_x19(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].exitsBagOnUse; +} + +u8 ItemId_GetPocket(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].pocket; +} + +u8 ItemId_GetType(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].type; +} + +ItemUseFunc ItemId_GetFieldFunc(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].fieldUseFunc; +} + +bool8 ItemId_GetBattleUsage(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].battleUsage; +} + +ItemUseFunc ItemId_GetBattleFunc(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].battleUseFunc; +} + +u8 ItemId_GetSecondaryId(u16 itemId) +{ + return gItems[SanitizeItemId(itemId)].secondaryId; +} diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c new file mode 100644 index 000000000..a244a1075 --- /dev/null +++ b/src/item_menu_icons.c @@ -0,0 +1,783 @@ +#include "global.h" +#include "decompress.h" +#include "graphics.h" +#include "item_menu_icons.h" +#include "malloc.h" +#include "constants/items.h" + +static EWRAM_DATA u8 gUnknown_2039878[12] = {0}; +EWRAM_DATA void * gUnknown_2039884 = NULL; +static EWRAM_DATA void * gUnknown_2039888 = NULL; + +static void sub_8098560(struct Sprite * sprite); +static void sub_80985BC(struct Sprite * sprite); + +static const struct OamData gUnknown_83D416C = { + .affineMode = ST_OAM_AFFINE_NORMAL, + .shape = ST_OAM_SQUARE, + .size = 3, + .priority = 1, + .paletteNum = 0 +}; + +static const union AnimCmd gUnknown_83D4174[] = { + ANIMCMD_FRAME( 0, 5), + ANIMCMD_FRAME(0x40, 0), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_83D4180[] = { + ANIMCMD_FRAME( 0, 5), + ANIMCMD_FRAME(0x80, 0), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_83D418C[] = { + ANIMCMD_FRAME( 0, 5), + ANIMCMD_FRAME(0xc0, 0), + ANIMCMD_END +}; + +static const union AnimCmd *const gUnknown_83D4198[] = { + gUnknown_83D4180, + gUnknown_83D418C, + gUnknown_83D4174 +}; + +static const union AffineAnimCmd gUnknown_83D41A4[] = { + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd gUnknown_83D41B4[] = { + AFFINEANIMCMD_FRAME(0, 0, -2, 2), + AFFINEANIMCMD_FRAME(0, 0, 2, 4), + AFFINEANIMCMD_FRAME(0, 0, -2, 4), + AFFINEANIMCMD_FRAME(0, 0, 2, 2), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd *const gUnknown_83D41DC[] = { + gUnknown_83D41A4, + gUnknown_83D41B4 +}; + +const struct CompressedSpriteSheet gUnknown_83D41E4 = { + gUnknown_8E8362C, + 0x2000, + 100 +}; + +const struct CompressedSpriteSheet gUnknown_83D41EC = { + gUnknown_8E83DBC, + 0x2000, + 100 +}; + +const struct CompressedSpritePalette gUnknown_83D41F4 = { + gUnknown_8E84560, + 100 +}; + +static const struct SpriteTemplate gUnknown_83D41FC = { + 100, + 100, + &gUnknown_83D416C, + gUnknown_83D4198, + NULL, + gUnknown_83D41DC, + SpriteCallbackDummy +}; + +static const struct OamData gUnknown_83D4214 = { + .affineMode = ST_OAM_AFFINE_OFF, + .shape = ST_OAM_SQUARE, + .size = 1, + .priority = 1, + .paletteNum = 1 +}; + +static const union AnimCmd gUnknown_83D421C[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_83D4224[] = { + ANIMCMD_FRAME(4, 0), + ANIMCMD_END +}; + +static const union AnimCmd gUnknown_83D422C[] = { + ANIMCMD_FRAME(0, 0, .hFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd *const gUnknown_83D4234[] = { + gUnknown_83D421C, + gUnknown_83D4224, + gUnknown_83D422C +}; + +const struct CompressedSpriteSheet gBagSwapSpriteSheet = { + gFile_graphics_interface_bag_swap_sheet, + 0x100, + 101 +}; + +const struct CompressedSpritePalette gBagSwapSpritePalette = { + gFile_graphics_interface_bag_swap_palette, + 101 +}; + +static const struct SpriteTemplate gUnknown_83D4250 = { + 101, + 101, + &gUnknown_83D4214, + gUnknown_83D4234, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +static const struct OamData gUnknown_83D4268 = { + .affineMode = ST_OAM_AFFINE_OFF, + .shape = ST_OAM_SQUARE, + .size = 2, + .priority = 1, + .paletteNum = 2 +}; + +static const union AnimCmd gUnknown_83D4270[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END +}; + +static const union AnimCmd *const gUnknown_83D4278[] = { + gUnknown_83D4270 +}; + +static const struct SpriteTemplate gUnknown_83D427C = { + 102, + 102, + &gUnknown_83D4268, + gUnknown_83D4278, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +static const void *const gUnknown_83D4294[][2] = { + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette}, + {gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette}, + {gFile_graphics_items_icons_great_ball_sheet, gFile_graphics_items_icon_palettes_great_ball_palette}, + {gFile_graphics_items_icons_poke_ball_sheet, gFile_graphics_items_icon_palettes_poke_ball_palette}, + {gFile_graphics_items_icons_safari_ball_sheet, gFile_graphics_items_icon_palettes_safari_ball_palette}, + {gFile_graphics_items_icons_net_ball_sheet, gFile_graphics_items_icon_palettes_net_ball_palette}, + {gFile_graphics_items_icons_dive_ball_sheet, gFile_graphics_items_icon_palettes_dive_ball_palette}, + {gFile_graphics_items_icons_nest_ball_sheet, gFile_graphics_items_icon_palettes_nest_ball_palette}, + {gFile_graphics_items_icons_repeat_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, + {gFile_graphics_items_icons_timer_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, + {gFile_graphics_items_icons_luxury_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, + {gFile_graphics_items_icons_premier_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, + {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_potion_palette}, + {gFile_graphics_items_icons_antidote_sheet, gFile_graphics_items_icon_palettes_antidote_palette}, + {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_burn_heal_palette}, + {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_ice_heal_palette}, + {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_awakening_palette}, + {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_paralyze_heal_palette}, + {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_full_restore_palette}, + {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_max_potion_palette}, + {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_hyper_potion_palette}, + {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_super_potion_palette}, + {gFile_graphics_items_icons_full_heal_sheet, gFile_graphics_items_icon_palettes_full_heal_palette}, + {gFile_graphics_items_icons_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, + {gFile_graphics_items_icons_max_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, + {gFile_graphics_items_icons_fresh_water_sheet, gFile_graphics_items_icon_palettes_fresh_water_palette}, + {gFile_graphics_items_icons_soda_pop_sheet, gFile_graphics_items_icon_palettes_soda_pop_palette}, + {gFile_graphics_items_icons_lemonade_sheet, gFile_graphics_items_icon_palettes_lemonade_palette}, + {gFile_graphics_items_icons_moomoo_milk_sheet, gFile_graphics_items_icon_palettes_moomoo_milk_palette}, + {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_energy_powder_palette}, + {gFile_graphics_items_icons_energy_root_sheet, gFile_graphics_items_icon_palettes_energy_root_palette}, + {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_heal_powder_palette}, + {gFile_graphics_items_icons_revival_herb_sheet, gFile_graphics_items_icon_palettes_revival_herb_palette}, + {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_ether_palette}, + {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_ether_palette}, + {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_elixir_palette}, + {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_elixir_palette}, + {gFile_graphics_items_icons_lava_cookie_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, + {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_blue_flute_palette}, + {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_yellow_flute_palette}, + {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_red_flute_palette}, + {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_black_flute_palette}, + {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_white_flute_palette}, + {gFile_graphics_items_icons_berry_juice_sheet, gFile_graphics_items_icon_palettes_berry_juice_palette}, + {gFile_graphics_items_icons_sacred_ash_sheet, gFile_graphics_items_icon_palettes_sacred_ash_palette}, + {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_shoal_salt_palette}, + {gFile_graphics_items_icons_shoal_shell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, + {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_red_shard_palette}, + {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_blue_shard_palette}, + {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_yellow_shard_palette}, + {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_green_shard_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_hp_up_sheet, gFile_graphics_items_icon_palettes_hp_up_palette}, + {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_protein_palette}, + {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_iron_palette}, + {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_carbos_palette}, + {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_calcium_palette}, + {gFile_graphics_items_icons_rare_candy_sheet, gFile_graphics_items_icon_palettes_rare_candy_palette}, + {gFile_graphics_items_icons_pp_up_sheet, gFile_graphics_items_icon_palettes_pp_up_palette}, + {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_zinc_palette}, + {gFile_graphics_items_icons_pp_max_sheet, gFile_graphics_items_icon_palettes_pp_max_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_guard_spec_palette}, + {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_dire_hit_palette}, + {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_attack_palette}, + {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_defend_palette}, + {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_speed_palette}, + {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_accuracy_palette}, + {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_special_palette}, + {gFile_graphics_items_icons_poke_doll_sheet, gFile_graphics_items_icon_palettes_poke_doll_palette}, + {gFile_graphics_items_icons_fluffy_tail_sheet, gFile_graphics_items_icon_palettes_fluffy_tail_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_super_repel_palette}, + {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_max_repel_palette}, + {gFile_graphics_items_icons_escape_rope_sheet, gFile_graphics_items_icon_palettes_escape_rope_palette}, + {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_repel_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_sun_stone_sheet, gFile_graphics_items_icon_palettes_sun_stone_palette}, + {gFile_graphics_items_icons_moon_stone_sheet, gFile_graphics_items_icon_palettes_moon_stone_palette}, + {gFile_graphics_items_icons_fire_stone_sheet, gFile_graphics_items_icon_palettes_fire_stone_palette}, + {gFile_graphics_items_icons_thunder_stone_sheet, gFile_graphics_items_icon_palettes_thunder_stone_palette}, + {gFile_graphics_items_icons_water_stone_sheet, gFile_graphics_items_icon_palettes_water_stone_palette}, + {gFile_graphics_items_icons_leaf_stone_sheet, gFile_graphics_items_icon_palettes_leaf_stone_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_tiny_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, + {gFile_graphics_items_icons_big_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, + {gFile_graphics_items_icons_big_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, + {gFile_graphics_items_icons_stardust_sheet, gFile_graphics_items_icon_palettes_star_palette}, + {gFile_graphics_items_icons_star_piece_sheet, gFile_graphics_items_icon_palettes_star_palette}, + {gFile_graphics_items_icons_nugget_sheet, gFile_graphics_items_icon_palettes_nugget_palette}, + {gFile_graphics_items_icons_heart_scale_sheet, gFile_graphics_items_icon_palettes_heart_scale_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_orange_mail_sheet, gFile_graphics_items_icon_palettes_orange_mail_palette}, + {gFile_graphics_items_icons_harbor_mail_sheet, gFile_graphics_items_icon_palettes_harbor_mail_palette}, + {gFile_graphics_items_icons_glitter_mail_sheet, gFile_graphics_items_icon_palettes_glitter_mail_palette}, + {gFile_graphics_items_icons_mech_mail_sheet, gFile_graphics_items_icon_palettes_mech_mail_palette}, + {gFile_graphics_items_icons_wood_mail_sheet, gFile_graphics_items_icon_palettes_wood_mail_palette}, + {gFile_graphics_items_icons_wave_mail_sheet, gFile_graphics_items_icon_palettes_wave_mail_palette}, + {gFile_graphics_items_icons_bead_mail_sheet, gFile_graphics_items_icon_palettes_bead_mail_palette}, + {gFile_graphics_items_icons_shadow_mail_sheet, gFile_graphics_items_icon_palettes_shadow_mail_palette}, + {gFile_graphics_items_icons_tropic_mail_sheet, gFile_graphics_items_icon_palettes_tropic_mail_palette}, + {gFile_graphics_items_icons_dream_mail_sheet, gFile_graphics_items_icon_palettes_dream_mail_palette}, + {gFile_graphics_items_icons_fab_mail_sheet, gFile_graphics_items_icon_palettes_fab_mail_palette}, + {gFile_graphics_items_icons_retro_mail_sheet, gFile_graphics_items_icon_palettes_retro_mail_palette}, + {gFile_graphics_items_icons_cheri_berry_sheet, gFile_graphics_items_icon_palettes_cheri_berry_palette}, + {gFile_graphics_items_icons_chesto_berry_sheet, gFile_graphics_items_icon_palettes_chesto_berry_palette}, + {gFile_graphics_items_icons_pecha_berry_sheet, gFile_graphics_items_icon_palettes_pecha_berry_palette}, + {gFile_graphics_items_icons_rawst_berry_sheet, gFile_graphics_items_icon_palettes_rawst_berry_palette}, + {gFile_graphics_items_icons_aspear_berry_sheet, gFile_graphics_items_icon_palettes_aspear_berry_palette}, + {gFile_graphics_items_icons_leppa_berry_sheet, gFile_graphics_items_icon_palettes_leppa_berry_palette}, + {gFile_graphics_items_icons_oran_berry_sheet, gFile_graphics_items_icon_palettes_oran_berry_palette}, + {gFile_graphics_items_icons_persim_berry_sheet, gFile_graphics_items_icon_palettes_persim_berry_palette}, + {gFile_graphics_items_icons_lum_berry_sheet, gFile_graphics_items_icon_palettes_lum_berry_palette}, + {gFile_graphics_items_icons_sitrus_berry_sheet, gFile_graphics_items_icon_palettes_sitrus_berry_palette}, + {gFile_graphics_items_icons_figy_berry_sheet, gFile_graphics_items_icon_palettes_figy_berry_palette}, + {gFile_graphics_items_icons_wiki_berry_sheet, gFile_graphics_items_icon_palettes_wiki_berry_palette}, + {gFile_graphics_items_icons_mago_berry_sheet, gFile_graphics_items_icon_palettes_mago_berry_palette}, + {gFile_graphics_items_icons_aguav_berry_sheet, gFile_graphics_items_icon_palettes_aguav_berry_palette}, + {gFile_graphics_items_icons_iapapa_berry_sheet, gFile_graphics_items_icon_palettes_iapapa_berry_palette}, + {gFile_graphics_items_icons_razz_berry_sheet, gFile_graphics_items_icon_palettes_razz_berry_palette}, + {gFile_graphics_items_icons_bluk_berry_sheet, gFile_graphics_items_icon_palettes_bluk_berry_palette}, + {gFile_graphics_items_icons_nanab_berry_sheet, gFile_graphics_items_icon_palettes_nanab_berry_palette}, + {gFile_graphics_items_icons_wepear_berry_sheet, gFile_graphics_items_icon_palettes_wepear_berry_palette}, + {gFile_graphics_items_icons_pinap_berry_sheet, gFile_graphics_items_icon_palettes_pinap_berry_palette}, + {gFile_graphics_items_icons_pomeg_berry_sheet, gFile_graphics_items_icon_palettes_pomeg_berry_palette}, + {gFile_graphics_items_icons_kelpsy_berry_sheet, gFile_graphics_items_icon_palettes_kelpsy_berry_palette}, + {gFile_graphics_items_icons_qualot_berry_sheet, gFile_graphics_items_icon_palettes_qualot_berry_palette}, + {gFile_graphics_items_icons_hondew_berry_sheet, gFile_graphics_items_icon_palettes_hondew_berry_palette}, + {gFile_graphics_items_icons_grepa_berry_sheet, gFile_graphics_items_icon_palettes_grepa_berry_palette}, + {gFile_graphics_items_icons_tamato_berry_sheet, gFile_graphics_items_icon_palettes_tamato_berry_palette}, + {gFile_graphics_items_icons_cornn_berry_sheet, gFile_graphics_items_icon_palettes_cornn_berry_palette}, + {gFile_graphics_items_icons_magost_berry_sheet, gFile_graphics_items_icon_palettes_magost_berry_palette}, + {gFile_graphics_items_icons_rabuta_berry_sheet, gFile_graphics_items_icon_palettes_rabuta_berry_palette}, + {gFile_graphics_items_icons_nomel_berry_sheet, gFile_graphics_items_icon_palettes_nomel_berry_palette}, + {gFile_graphics_items_icons_spelon_berry_sheet, gFile_graphics_items_icon_palettes_spelon_berry_palette}, + {gFile_graphics_items_icons_pamtre_berry_sheet, gFile_graphics_items_icon_palettes_pamtre_berry_palette}, + {gFile_graphics_items_icons_watmel_berry_sheet, gFile_graphics_items_icon_palettes_watmel_berry_palette}, + {gFile_graphics_items_icons_durin_berry_sheet, gFile_graphics_items_icon_palettes_durin_berry_palette}, + {gFile_graphics_items_icons_belue_berry_sheet, gFile_graphics_items_icon_palettes_belue_berry_palette}, + {gFile_graphics_items_icons_liechi_berry_sheet, gFile_graphics_items_icon_palettes_liechi_berry_palette}, + {gFile_graphics_items_icons_ganlon_berry_sheet, gFile_graphics_items_icon_palettes_ganlon_berry_palette}, + {gFile_graphics_items_icons_salac_berry_sheet, gFile_graphics_items_icon_palettes_salac_berry_palette}, + {gFile_graphics_items_icons_petaya_berry_sheet, gFile_graphics_items_icon_palettes_petaya_berry_palette}, + {gFile_graphics_items_icons_apicot_berry_sheet, gFile_graphics_items_icon_palettes_apicot_berry_palette}, + {gFile_graphics_items_icons_lansat_berry_sheet, gFile_graphics_items_icon_palettes_lansat_berry_palette}, + {gFile_graphics_items_icons_starf_berry_sheet, gFile_graphics_items_icon_palettes_starf_berry_palette}, + {gFile_graphics_items_icons_enigma_berry_sheet, gFile_graphics_items_icon_palettes_enigma_berry_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_bright_powder_sheet, gFile_graphics_items_icon_palettes_bright_powder_palette}, + {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_white_herb_palette}, + {gFile_graphics_items_icons_macho_brace_sheet, gFile_graphics_items_icon_palettes_macho_brace_palette}, + {gFile_graphics_items_icons_exp_share_sheet, gFile_graphics_items_icon_palettes_exp_share_palette}, + {gFile_graphics_items_icons_quick_claw_sheet, gFile_graphics_items_icon_palettes_quick_claw_palette}, + {gFile_graphics_items_icons_soothe_bell_sheet, gFile_graphics_items_icon_palettes_soothe_bell_palette}, + {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_mental_herb_palette}, + {gFile_graphics_items_icons_choice_band_sheet, gFile_graphics_items_icon_palettes_choice_band_palette}, + {gFile_graphics_items_icons_kings_rock_sheet, gFile_graphics_items_icon_palettes_kings_rock_palette}, + {gFile_graphics_items_icons_silver_powder_sheet, gFile_graphics_items_icon_palettes_silver_powder_palette}, + {gFile_graphics_items_icons_amulet_coin_sheet, gFile_graphics_items_icon_palettes_amulet_coin_palette}, + {gFile_graphics_items_icons_cleanse_tag_sheet, gFile_graphics_items_icon_palettes_cleanse_tag_palette}, + {gFile_graphics_items_icons_soul_dew_sheet, gFile_graphics_items_icon_palettes_soul_dew_palette}, + {gFile_graphics_items_icons_deep_sea_tooth_sheet, gFile_graphics_items_icon_palettes_deep_sea_tooth_palette}, + {gFile_graphics_items_icons_deep_sea_scale_sheet, gFile_graphics_items_icon_palettes_deep_sea_scale_palette}, + {gFile_graphics_items_icons_smoke_ball_sheet, gFile_graphics_items_icon_palettes_smoke_ball_palette}, + {gFile_graphics_items_icons_everstone_sheet, gFile_graphics_items_icon_palettes_everstone_palette}, + {gFile_graphics_items_icons_focus_band_sheet, gFile_graphics_items_icon_palettes_focus_band_palette}, + {gFile_graphics_items_icons_lucky_egg_sheet, gFile_graphics_items_icon_palettes_lucky_egg_palette}, + {gFile_graphics_items_icons_scope_lens_sheet, gFile_graphics_items_icon_palettes_scope_lens_palette}, + {gFile_graphics_items_icons_metal_coat_sheet, gFile_graphics_items_icon_palettes_metal_coat_palette}, + {gFile_graphics_items_icons_leftovers_sheet, gFile_graphics_items_icon_palettes_leftovers_palette}, + {gFile_graphics_items_icons_dragon_scale_sheet, gFile_graphics_items_icon_palettes_dragon_scale_palette}, + {gFile_graphics_items_icons_light_ball_sheet, gFile_graphics_items_icon_palettes_light_ball_palette}, + {gFile_graphics_items_icons_soft_sand_sheet, gFile_graphics_items_icon_palettes_soft_sand_palette}, + {gFile_graphics_items_icons_hard_stone_sheet, gFile_graphics_items_icon_palettes_hard_stone_palette}, + {gFile_graphics_items_icons_miracle_seed_sheet, gFile_graphics_items_icon_palettes_miracle_seed_palette}, + {gFile_graphics_items_icons_black_glasses_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, + {gFile_graphics_items_icons_black_belt_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, + {gFile_graphics_items_icons_magnet_sheet, gFile_graphics_items_icon_palettes_magnet_palette}, + {gFile_graphics_items_icons_mystic_water_sheet, gFile_graphics_items_icon_palettes_mystic_water_palette}, + {gFile_graphics_items_icons_sharp_beak_sheet, gFile_graphics_items_icon_palettes_sharp_beak_palette}, + {gFile_graphics_items_icons_poison_barb_sheet, gFile_graphics_items_icon_palettes_poison_barb_palette}, + {gFile_graphics_items_icons_never_melt_ice_sheet, gFile_graphics_items_icon_palettes_never_melt_ice_palette}, + {gFile_graphics_items_icons_spell_tag_sheet, gFile_graphics_items_icon_palettes_spell_tag_palette}, + {gFile_graphics_items_icons_twisted_spoon_sheet, gFile_graphics_items_icon_palettes_twisted_spoon_palette}, + {gFile_graphics_items_icons_charcoal_sheet, gFile_graphics_items_icon_palettes_charcoal_palette}, + {gFile_graphics_items_icons_dragon_fang_sheet, gFile_graphics_items_icon_palettes_dragon_fang_palette}, + {gFile_graphics_items_icons_silk_scarf_sheet, gFile_graphics_items_icon_palettes_silk_scarf_palette}, + {gFile_graphics_items_icons_up_grade_sheet, gFile_graphics_items_icon_palettes_up_grade_palette}, + {gFile_graphics_items_icons_shell_bell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, + {gFile_graphics_items_icons_sea_incense_sheet, gFile_graphics_items_icon_palettes_sea_incense_palette}, + {gFile_graphics_items_icons_lax_incense_sheet, gFile_graphics_items_icon_palettes_lax_incense_palette}, + {gFile_graphics_items_icons_lucky_punch_sheet, gFile_graphics_items_icon_palettes_lucky_punch_palette}, + {gFile_graphics_items_icons_metal_powder_sheet, gFile_graphics_items_icon_palettes_metal_powder_palette}, + {gFile_graphics_items_icons_thick_club_sheet, gFile_graphics_items_icon_palettes_thick_club_palette}, + {gFile_graphics_items_icons_stick_sheet, gFile_graphics_items_icon_palettes_stick_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_red_scarf_palette}, + {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_blue_scarf_palette}, + {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_pink_scarf_palette}, + {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_green_scarf_palette}, + {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_yellow_scarf_palette}, + {gFile_graphics_items_icons_mach_bike_sheet, gFile_graphics_items_icon_palettes_mach_bike_palette}, + {gFile_graphics_items_icons_coin_case_sheet, gFile_graphics_items_icon_palettes_coin_case_palette}, + {gFile_graphics_items_icons_itemfinder_sheet, gFile_graphics_items_icon_palettes_itemfinder_palette}, + {gFile_graphics_items_icons_old_rod_sheet, gFile_graphics_items_icon_palettes_old_rod_palette}, + {gFile_graphics_items_icons_good_rod_sheet, gFile_graphics_items_icon_palettes_good_rod_palette}, + {gFile_graphics_items_icons_super_rod_sheet, gFile_graphics_items_icon_palettes_super_rod_palette}, + {gFile_graphics_items_icons_ss_ticket_sheet, gFile_graphics_items_icon_palettes_ss_ticket_palette}, + {gFile_graphics_items_icons_contest_pass_sheet, gFile_graphics_items_icon_palettes_contest_pass_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_wailmer_pail_sheet, gFile_graphics_items_icon_palettes_wailmer_pail_palette}, + {gFile_graphics_items_icons_devon_goods_sheet, gFile_graphics_items_icon_palettes_devon_goods_palette}, + {gFile_graphics_items_icons_soot_sack_sheet, gFile_graphics_items_icon_palettes_soot_sack_palette}, + {gFile_graphics_items_icons_basement_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, + {gFile_graphics_items_icons_acro_bike_sheet, gFile_graphics_items_icon_palettes_acro_bike_palette}, + {gFile_graphics_items_icons_pokeblock_case_sheet, gFile_graphics_items_icon_palettes_pokeblock_case_palette}, + {gFile_graphics_items_icons_letter_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, + {gFile_graphics_items_icons_eon_ticket_sheet, gFile_graphics_items_icon_palettes_eon_ticket_palette}, + {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_red_orb_palette}, + {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_blue_orb_palette}, + {gFile_graphics_items_icons_scanner_sheet, gFile_graphics_items_icon_palettes_scanner_palette}, + {gFile_graphics_items_icons_go_goggles_sheet, gFile_graphics_items_icon_palettes_go_goggles_palette}, + {gFile_graphics_items_icons_meteorite_sheet, gFile_graphics_items_icon_palettes_meteorite_palette}, + {gFile_graphics_items_icons_room1_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + {gFile_graphics_items_icons_room2_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + {gFile_graphics_items_icons_room4_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + {gFile_graphics_items_icons_room6_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + {gFile_graphics_items_icons_storage_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, + {gFile_graphics_items_icons_root_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, + {gFile_graphics_items_icons_claw_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, + {gFile_graphics_items_icons_devon_scope_sheet, gFile_graphics_items_icon_palettes_devon_scope_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dragon_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ghost_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + {gFile_graphics_items_icons_oaks_parcel_sheet, gFile_graphics_items_icon_palettes_oaks_parcel_palette}, + {gFile_graphics_items_icons_poke_flute_sheet, gFile_graphics_items_icon_palettes_poke_flute_palette}, + {gFile_graphics_items_icons_secret_key_sheet, gFile_graphics_items_icon_palettes_secret_key_palette}, + {gFile_graphics_items_icons_bike_voucher_sheet, gFile_graphics_items_icon_palettes_bike_voucher_palette}, + {gFile_graphics_items_icons_gold_teeth_sheet, gFile_graphics_items_icon_palettes_gold_teeth_palette}, + {gFile_graphics_items_icons_old_amber_sheet, gFile_graphics_items_icon_palettes_old_amber_palette}, + {gFile_graphics_items_icons_card_key_sheet, gFile_graphics_items_icon_palettes_card_key_palette}, + {gFile_graphics_items_icons_lift_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + {gFile_graphics_items_icons_helix_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, + {gFile_graphics_items_icons_dome_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, + {gFile_graphics_items_icons_silph_scope_sheet, gFile_graphics_items_icon_palettes_silph_scope_palette}, + {gFile_graphics_items_icons_bicycle_sheet, gFile_graphics_items_icon_palettes_bicycle_palette}, + {gFile_graphics_items_icons_town_map_sheet, gFile_graphics_items_icon_palettes_town_map_palette}, + {gFile_graphics_items_icons_vs_seeker_sheet, gFile_graphics_items_icon_palettes_vs_seeker_palette}, + {gFile_graphics_items_icons_fame_checker_sheet, gFile_graphics_items_icon_palettes_fame_checker_palette}, + {gFile_graphics_items_icons_tm_case_sheet, gFile_graphics_items_icon_palettes_tm_case_palette}, + {gFile_graphics_items_icons_berry_pouch_sheet, gFile_graphics_items_icon_palettes_berry_pouch_palette}, + {gFile_graphics_items_icons_teachy_tv_sheet, gFile_graphics_items_icon_palettes_teachy_tv_palette}, + {gFile_graphics_items_icons_tri_pass_sheet, gFile_graphics_items_icon_palettes_tri_pass_palette}, + {gFile_graphics_items_icons_rainbow_pass_sheet, gFile_graphics_items_icon_palettes_rainbow_pass_palette}, + {gFile_graphics_items_icons_tea_sheet, gFile_graphics_items_icon_palettes_tea_palette}, + {gFile_graphics_items_icons_mystic_ticket_sheet, gFile_graphics_items_icon_palettes_mystic_ticket_palette}, + {gFile_graphics_items_icons_aurora_ticket_sheet, gFile_graphics_items_icon_palettes_aurora_ticket_palette}, + {gFile_graphics_items_icons_powder_jar_sheet, gFile_graphics_items_icon_palettes_powder_jar_palette}, + {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_ruby_palette}, + {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_sapphire_palette}, + {gFile_graphics_items_icons_return_to_field_arrow_sheet, gFile_graphics_items_icon_palettes_return_to_field_arrow_palette} +}; + +void ResetItemMenuIconState(void) +{ + u16 i; + + for (i = 0; i < NELEMS(gUnknown_2039878); i++) + gUnknown_2039878[i] = 0xFF; +} + +void sub_80984FC(u8 animNum) +{ + gUnknown_2039878[0] = CreateSprite(&gUnknown_83D41FC, 40, 68, 0); + sub_8098528(animNum); +} + +void sub_8098528(u8 animNum) +{ + struct Sprite * sprite = &gSprites[gUnknown_2039878[0]]; + sprite->pos2.y = -5; + sprite->callback = sub_8098560; + StartSpriteAnim(sprite, animNum); +} + +static void sub_8098560(struct Sprite * sprite) +{ + if (sprite->pos2.y != 0) + sprite->pos2.y++; + else + sprite->callback = SpriteCallbackDummy; +} + +void sub_8098580(void) +{ + struct Sprite * sprite = &gSprites[gUnknown_2039878[0]]; + if (sprite->affineAnimEnded) + { + StartSpriteAffineAnim(sprite, 1); + sprite->callback = sub_80985BC; + } +} + +static void sub_80985BC(struct Sprite * sprite) +{ + if (sprite->affineAnimEnded) + { + StartSpriteAffineAnim(sprite, 0); + sprite->callback = SpriteCallbackDummy; + } +} + +void sub_80985E4(void) +{ + u8 i; + u8 * ptr = &gUnknown_2039878[1]; + + for (i = 0; i < 9; i++) + { + ptr[i] = CreateSprite(&gUnknown_83D4250, i * 16 + 0x60, 7, 0); + if (i != 0) + { + if (i == 8) + StartSpriteAnim(&gSprites[ptr[i]], 2); + else + StartSpriteAnim(&gSprites[ptr[i]], 1); + } + gSprites[ptr[i]].invisible = TRUE; + } +} + +void sub_8098660(u8 flag) +{ + u8 i; + u8 * ptr = &gUnknown_2039878[1]; + + for (i = 0; i < 9; i++) + { + gSprites[ptr[i]].invisible = flag; + } +} + +void sub_80986A8(s16 x, u16 y) +{ + u8 i; + u8 * ptr = &gUnknown_2039878[1]; + + for (i = 0; i < 9; i++) + { + gSprites[ptr[i]].pos2.x = x; + gSprites[ptr[i]].pos1.y = y + 7; + } +} + +static bool8 sub_80986EC(void) +{ + void ** ptr1, ** ptr2; + + ptr1 = &gUnknown_2039884; + *ptr1 = Alloc(0x120); + if (*ptr1 == NULL) + return FALSE; + ptr2 = &gUnknown_2039888; + *ptr2 = AllocZeroed(0x200); + if (*ptr2 == NULL) + { + Free(*ptr1); + return FALSE; + } + return TRUE; +} + +void CopyItemIconPicTo4x4Buffer(const void * src, void * dest) +{ + u8 i; + + for (i = 0; i < 3; i++) + { + CpuCopy16(src + 0x60 * i, dest + 0x80 * i, 0x60); + } +} + +u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) +{ + struct SpriteTemplate template; + struct SpriteSheet spriteSheet; + struct CompressedSpritePalette spritePalette; + u8 spriteId; + + if (!sub_80986EC()) + return MAX_SPRITES; + + LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884); + CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888); + spriteSheet.data = gUnknown_2039888; + spriteSheet.size = 0x200; + spriteSheet.tag = tilesTag; + LoadSpriteSheet(&spriteSheet); + + spritePalette.data = sub_8098974(itemId, 1); + spritePalette.tag = paletteTag; + LoadCompressedObjectPalette(&spritePalette); + + CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate)); + template.tileTag = tilesTag; + template.paletteTag = paletteTag; + spriteId = CreateSprite(&template, 0, 0, 0); + + Free(gUnknown_2039884); + Free(gUnknown_2039888); + return spriteId; +} + +u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) +{ + struct SpriteTemplate template; + struct SpriteSheet spriteSheet; + struct CompressedSpritePalette spritePalette; + u8 spriteId; + + if (!sub_80986EC()) + return MAX_SPRITES; + + LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884); + CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888); + spriteSheet.data = gUnknown_2039888; + spriteSheet.size = 0x200; + spriteSheet.tag = tilesTag; + LoadSpriteSheet(&spriteSheet); + + spritePalette.data = sub_8098974(itemId, 1); + spritePalette.tag = paletteTag; + LoadCompressedObjectPalette(&spritePalette); + + CpuCopy16(origTemplate, &template, sizeof(struct SpriteTemplate)); + template.tileTag = tilesTag; + template.paletteTag = paletteTag; + spriteId = CreateSprite(&template, 0, 0, 0); + + Free(gUnknown_2039884); + Free(gUnknown_2039888); + return spriteId; +} + +void CreateItemMenuIcon(u16 itemId, u8 idx) +{ + u8 * ptr = &gUnknown_2039878[10]; + u8 spriteId; + + if (ptr[idx] == 0xFF) + { + FreeSpriteTilesByTag(102 + idx); + FreeSpritePaletteByTag(102 + idx); + spriteId = AddItemIconObject(102 + idx, 102 + idx, itemId); + if (spriteId != MAX_SPRITES) + { + ptr[idx] = spriteId; + gSprites[spriteId].pos2.x = 24; + gSprites[spriteId].pos2.y = 140; + } + } +} + +void DestroyItemMenuIcon(u8 idx) +{ + u8 * ptr = &gUnknown_2039878[10]; + + if (ptr[idx] != 0xFF) + { + DestroySpriteAndFreeResources(&gSprites[ptr[idx]]); + ptr[idx] = 0xFF; + } +} + +const void * sub_8098974(u16 itemId, u8 attrId) +{ + if (itemId > ITEM_N_A) + itemId = ITEM_NONE; + return gUnknown_83D4294[itemId][attrId]; +} + +void sub_80989A0(u16 itemId, u8 idx) +{ + u8 * ptr = &gUnknown_2039878[10]; + u8 spriteId; + + if (ptr[idx] == 0xFF) + { + FreeSpriteTilesByTag(102 + idx); + FreeSpritePaletteByTag(102 + idx); + spriteId = AddItemIconObject(102 + idx, 102 + idx, itemId); + if (spriteId != MAX_SPRITES) + { + ptr[idx] = spriteId; + gSprites[spriteId].pos2.x = 24; + gSprites[spriteId].pos2.y = 147; + } + } +} diff --git a/src/item_pc.c b/src/item_pc.c new file mode 100644 index 000000000..e2fa33f0a --- /dev/null +++ b/src/item_pc.c @@ -0,0 +1,1150 @@ +#include "global.h" +#include "bg.h" +#include "data2.h" +#include "decompress.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "help_system.h" +#include "item.h" +#include "item_menu.h" +#include "item_menu_icons.h" +#include "list_menu.h" +#include "item_pc.h" +#include "item_use.h" +#include "main.h" +#include "malloc.h" +#include "menu.h" +#include "menu_helpers.h" +#include "menu_indicators.h" +#include "new_menu_helpers.h" +#include "palette.h" +#include "party_menu.h" +#include "pc_screen_effect.h" +#include "scanline_effect.h" +#include "sound.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text_window.h" +#include "constants/items.h" +#include "constants/songs.h" + +struct ItemPcResources +{ + MainCallback savedCallback; + u8 moveModeOrigPos; + u8 itemMenuIconSlot; + u8 maxShowed; + u8 nItems; + u8 scrollIndicatorArrowPairId; + u16 withdrawQuantitySubmenuCursorPos; + s16 data[3]; +}; + +struct ItemPcStaticResources +{ + MainCallback savedCallback; + u16 scroll; + u16 row; + u8 initialized; +}; + +static EWRAM_DATA struct ItemPcResources * sStateDataPtr = NULL; +static EWRAM_DATA u8 * sBg1TilemapBuffer = NULL; +static EWRAM_DATA struct ListMenuItem * sListMenuItems = NULL; +static EWRAM_DATA u8 * sUnusedStringAllocation = NULL; +static EWRAM_DATA struct ItemPcStaticResources sListMenuState = {}; +static EWRAM_DATA u8 sSubmenuWindowIds[3] = {}; + +extern const struct CompressedSpriteSheet gBagSwapSpriteSheet; +extern const struct CompressedSpritePalette gBagSwapSpritePalette; + +static void ItemPc_RunSetup(void); +static bool8 ItemPc_DoGfxSetup(void); +static void ItemPc_FadeAndBail(void); +static void Task_ItemPcWaitFadeAndBail(u8 taskId); +static bool8 ItemPc_InitBgs(void); +static bool8 ItemPc_LoadGraphics(void); +static bool8 ItemPc_AllocateResourcesForListMenu(void); +static void ItemPc_BuildListMenuTemplate(void); +static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list); +static void ItemPc_ItemPrintFunc(u8 windowId, s32 itemId, u8 y); +static void ItemPc_PrintOrRemoveCursorAt(u8 y, u8 state); +static void ItemPc_PrintWithdrawItem(void); +static void ItemPc_PlaceTopMenuScrollIndicatorArrows(void); +static void ItemPc_SetCursorPosition(void); +static void ItemPc_FreeResources(void); +static void Task_ItemPcTurnOff2(u8 taskId); +static u16 ItemPc_GetItemIdBySlotId(u16 itemIndex); +static u16 ItemPc_GetItemQuantityBySlotId(u16 itemIndex); +static void ItemPc_CountPcItems(void); +static void ItemPc_SetScrollPosition(void); +static void Task_ItemPcMain(u8 taskId); +static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos); +static void Task_ItemPcMoveItemModeRun(u8 taskId); +static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos); +static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos); +static void Task_ItemPcSubmenuInit(u8 taskId); +static void Task_ItemPcSubmenuRun(u8 taskId); +static void Task_ItemPcWithdraw(u8 taskId); +static void ItemPc_DoWithdraw(u8 taskId); +static void Task_ItemPcWaitButtonAndFinishWithdrawMultiple(u8 taskId); +static void Task_ItemPcWaitButtonWithdrawMultipleFailed(u8 taskId); +static void Task_ItemPcCleanUpWithdraw(u8 taskId); +static void ItemPc_WithdrawMultipleInitWindow(u16 slotId); +static void Task_ItemPcHandleWithdrawMultiple(u8 taskId); +static void Task_ItemPcGive(u8 taskId); +static void ItemPc_CB2_SwitchToPartyMenu(void); +static void ItemPc_CB2_ReturnFromPartyMenu(void); +static void gTask_ItemPcWaitButtonAndExitSubmenu(u8 taskId); +static void Task_ItemPcCancel(u8 taskId); +static void ItemPc_InitWindows(void); +static void ItemPc_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); +static void ItemPc_SetBorderStyleOnWindow(u8 windowId); +static u8 ItemPc_GetOrCreateSubwindow(u8 idx); +static void ItemPc_DestroySubwindow(u8 idx); +static void ItemPc_PrintOnWindow5WithContinueTask(u8 taskId, const u8 * str, TaskFunc taskFunc); + +static const struct BgTemplate sBgTemplates[2] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .priority = 0 + }, { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 30, + .priority = 1 + } +}; + +static const struct MenuAction sItemPcSubmenuOptions[] = { + {gText_Withdraw, {.void_u8 = Task_ItemPcWithdraw}}, + {gOtherText_Give, {.void_u8 = Task_ItemPcGive}}, + {gFameCheckerText_Cancel, {.void_u8 = Task_ItemPcCancel}} +}; + +static const struct TextColor gUnknown_8453F8C[] = { + {0, 1, 2}, + {0, 2, 3}, + {0, 3, 2}, + {0, 10, 2} +}; + +static const struct WindowTemplate gUnknown_8453F98[] = { + { + .bg = 0, + .tilemapLeft = 0x07, + .tilemapTop = 0x01, + .width = 0x13, + .height = 0x0c, + .paletteNum = 0x0f, + .baseBlock = 0x02bf + }, { + .bg = 0, + .tilemapLeft = 0x05, + .tilemapTop = 0x0e, + .width = 0x19, + .height = 0x06, + .paletteNum = 0x0d, + .baseBlock = 0x0229 + }, { + .bg = 0, + .tilemapLeft = 0x01, + .tilemapTop = 0x01, + .width = 0x05, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x0215 + }, { + .bg = 0, + .tilemapLeft = 0x18, + .tilemapTop = 0x0f, + .width = 0x05, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x0201 + }, { + .bg = 0, + .tilemapLeft = 0x16, + .tilemapTop = 0x0d, + .width = 0x07, + .height = 0x06, + .paletteNum = 0x0f, + .baseBlock = 0x01d7 + }, { + .bg = 0, + .tilemapLeft = 0x02, + .tilemapTop = 0x0f, + .width = 0x1a, + .height = 0x04, + .paletteNum = 0x0b, + .baseBlock = 0x016f + }, DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate gUnknown_8453FD0[] = { + { + .bg = 0, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x0e, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x0137 + }, { + .bg = 0, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x10, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x0137 + }, { + .bg = 0, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x17, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x009b + } +}; + +void ItemPc_Init(u8 a0, MainCallback callback) +{ + u8 i; + + if (a0 >= 2) + { + SetMainCallback2(callback); + return; + } + if ((sStateDataPtr = Alloc(sizeof(struct ItemPcResources))) == NULL) + { + SetMainCallback2(callback); + return; + } + if (a0 != 1) + { + sListMenuState.savedCallback = callback; + sListMenuState.scroll = sListMenuState.row = 0; + } + sStateDataPtr->moveModeOrigPos = 0xFF; + sStateDataPtr->itemMenuIconSlot = 0; + sStateDataPtr->scrollIndicatorArrowPairId = 0xFF; + sStateDataPtr->savedCallback = 0; + for (i = 0; i < 3; i++) + { + sStateDataPtr->data[i] = 0; + } + SetMainCallback2(ItemPc_RunSetup); +} + +static void ItemPc_MainCB(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void ItemPc_VBlankCB(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void ItemPc_RunSetup(void) +{ + while (1) + { + if (ItemPc_DoGfxSetup() == TRUE) + break; + if (MenuHelpers_LinkSomething() == TRUE) + break; + } +} + +static bool8 ItemPc_DoGfxSetup(void) +{ + u8 taskId; + switch (gMain.state) + { + case 0: + VblankHblankHandlerSetZero(); + clear_scheduled_bg_copies_to_vram(); + gMain.state++; + break; + case 1: + ScanlineEffect_Stop(); + gMain.state++; + break; + case 2: + FreeAllSpritePalettes(); + gMain.state++; + break; + case 3: + ResetPaletteFade(); + gMain.state++; + break; + case 4: + ResetSpriteData(); + gMain.state++; + break; + case 5: + ResetItemMenuIconState(); + gMain.state++; + break; + case 6: + ResetTasks(); + gMain.state++; + break; + case 7: + if (ItemPc_InitBgs()) + { + sStateDataPtr->data[0] = 0; + gMain.state++; + } + else + { + ItemPc_FadeAndBail(); + return TRUE; + } + break; + case 8: + if (ItemPc_LoadGraphics() == TRUE) + gMain.state++; + break; + case 9: + ItemPc_InitWindows(); + gMain.state++; + break; + case 10: + ItemPc_CountPcItems(); + ItemPc_SetCursorPosition(); + ItemPc_SetScrollPosition(); + gMain.state++; + break; + case 11: + if (ItemPc_AllocateResourcesForListMenu()) + gMain.state++; + else + { + ItemPc_FadeAndBail(); + return TRUE; + } + break; + case 12: + ItemPc_BuildListMenuTemplate(); + gMain.state++; + break; + case 13: + ItemPc_PrintWithdrawItem(); + gMain.state++; + break; + case 14: + sub_80985E4(); + gMain.state++; + break; + case 15: + taskId = CreateTask(Task_ItemPcMain, 0); + gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); + gMain.state++; + break; + case 16: + ItemPc_PlaceTopMenuScrollIndicatorArrows(); + gMain.state++; + break; + case 17: + HelpSystem_SetSomeVariable2(29); + gMain.state++; + break; + case 18: + if (sListMenuState.initialized == 1) + { + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + } + gMain.state++; + break; + case 19: + if (sListMenuState.initialized == 1) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + } + else + { + sub_80A0A48(0, 0, 0); + ItemPc_SetInitializedFlag(1); + PlaySE(SE_PC_LOGON); + } + gMain.state++; + break; + case 20: + if (sub_80BF72C() != TRUE) + gMain.state++; + break; + default: + SetVBlankCallback(ItemPc_VBlankCB); + SetMainCallback2(ItemPc_MainCB); + return TRUE; + } + return FALSE; +} + +static void ItemPc_FadeAndBail(void) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + CreateTask(Task_ItemPcWaitFadeAndBail, 0); + SetVBlankCallback(ItemPc_VBlankCB); + SetMainCallback2(ItemPc_MainCB); +} + +static void Task_ItemPcWaitFadeAndBail(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(sListMenuState.savedCallback); + ItemPc_FreeResources(); + DestroyTask(taskId); + } +} + +static bool8 ItemPc_InitBgs(void) +{ + InitBgReg(); + sBg1TilemapBuffer = Alloc(0x800); + if (sBg1TilemapBuffer == NULL) + return FALSE; + memset(sBg1TilemapBuffer, 0, 0x800); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates)); + SetBgTilemapBuffer(1, sBg1TilemapBuffer); + schedule_bg_copy_tilemap_to_vram(1); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + SetGpuReg(REG_OFFSET_BLDCNT , 0); + ShowBg(0); + ShowBg(1); + return TRUE; +} + +static bool8 ItemPc_LoadGraphics(void) +{ + switch (sStateDataPtr->data[0]) + { + case 0: + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(1, gItemPcTiles, 0, 0, 0); + sStateDataPtr->data[0]++; + break; + case 1: + if (free_temp_tile_data_buffers_if_possible() != TRUE) + { + LZDecompressWram(gItemPcTilemap, sBg1TilemapBuffer); + sStateDataPtr->data[0]++; + } + break; + case 2: + LoadCompressedPalette(gItemPcBgPals, 0x00, 0x60); + sStateDataPtr->data[0]++; + break; + case 3: + LoadCompressedObjectPic(&gBagSwapSpriteSheet); + sStateDataPtr->data[0]++; + break; + default: + LoadCompressedObjectPalette(&gBagSwapSpritePalette); + sStateDataPtr->data[0] = 0; + return TRUE; + } + return FALSE; +} + +#define try_alloc(ptr__, size) ({ \ + void ** ptr = (void **)&(ptr__); \ + *ptr = Alloc(size); \ + if (*ptr == NULL) \ + { \ + ItemPc_FreeResources(); \ + ItemPc_FadeAndBail(); \ + return FALSE; \ + } \ +}) + +static bool8 ItemPc_AllocateResourcesForListMenu(void) +{ + try_alloc(sListMenuItems, sizeof(struct ListMenuItem) * (PC_ITEMS_COUNT + 1)); + try_alloc(sUnusedStringAllocation, 14 * (PC_ITEMS_COUNT + 1)); + return TRUE; +} + +static void ItemPc_BuildListMenuTemplate(void) +{ + u16 i; + + for (i = 0; i < sStateDataPtr->nItems; i++) + { + sListMenuItems[i].label = ItemId_GetName(gSaveBlock1Ptr->pcItems[i].itemId); + sListMenuItems[i].index = i; + } + sListMenuItems[i].label = gFameCheckerText_Cancel; + sListMenuItems[i].index = -2; + + gMultiuseListMenuTemplate.items = sListMenuItems; + gMultiuseListMenuTemplate.totalItems = sStateDataPtr->nItems + 1; + gMultiuseListMenuTemplate.windowId = 0; + gMultiuseListMenuTemplate.header_X = 0; + gMultiuseListMenuTemplate.item_X = 9; + gMultiuseListMenuTemplate.cursor_X = 1; + gMultiuseListMenuTemplate.lettersSpacing = 1; + gMultiuseListMenuTemplate.itemVerticalPadding = 2; + gMultiuseListMenuTemplate.upText_Y = 2; + gMultiuseListMenuTemplate.maxShowed = sStateDataPtr->maxShowed; + gMultiuseListMenuTemplate.fontId = 2; + gMultiuseListMenuTemplate.cursorPal = 2; + gMultiuseListMenuTemplate.fillValue = 0; + gMultiuseListMenuTemplate.cursorShadowPal = 3; + gMultiuseListMenuTemplate.moveCursorFunc = ItemPc_MoveCursorFunc; + gMultiuseListMenuTemplate.itemPrintFunc = ItemPc_ItemPrintFunc; + gMultiuseListMenuTemplate.scrollMultiple = 0; + gMultiuseListMenuTemplate.cursorKind = 0; +} + +static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list) +{ + u16 itemId; + const u8 * desc; + if (onInit != TRUE) + PlaySE(SE_SELECT); + + if (sStateDataPtr->moveModeOrigPos == 0xFF) + { + DestroyItemMenuIcon(sStateDataPtr->itemMenuIconSlot ^ 1); + if (itemIndex != -2) + { + itemId = ItemPc_GetItemIdBySlotId(itemIndex); + CreateItemMenuIcon(itemId, sStateDataPtr->itemMenuIconSlot); + if (ItemId_GetPocket(itemId) == POCKET_TM_CASE) + desc = gMoveNames[ItemIdToBattleMoveId(itemId)]; + else + desc = ItemId_GetDescription(itemId); + } + else + { + CreateItemMenuIcon(ITEM_N_A, sStateDataPtr->itemMenuIconSlot); + desc = gText_ReturnToPC; + } + sStateDataPtr->itemMenuIconSlot ^= 1; + FillWindowPixelBuffer(1, 0); + ItemPc_AddTextPrinterParameterized(1, 2, desc, 0, 3, 2, 0, 0, 3); + } +} + +static void ItemPc_ItemPrintFunc(u8 windowId, s32 itemId, u8 y) +{ + if (sStateDataPtr->moveModeOrigPos != 0xFF) + { + if (sStateDataPtr->moveModeOrigPos == (u8)itemId) + ItemPc_PrintOrRemoveCursorAt(y, 2); + else + ItemPc_PrintOrRemoveCursorAt(y, 0xFF); + } + if (itemId != -2) + { + u16 quantity = ItemPc_GetItemQuantityBySlotId(itemId); + ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_RIGHT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + ItemPc_AddTextPrinterParameterized(windowId, 0, gStringVar4, 110, y, 0, 0, 0xFF, 1); + } +} + +static void ItemPc_PrintOrRemoveCursor(u8 listMenuId, u8 colorIdx) +{ + ItemPc_PrintOrRemoveCursorAt(ListMenuGetYCoordForPrintingArrowCursor(listMenuId), colorIdx); +} + +static void ItemPc_PrintOrRemoveCursorAt(u8 y, u8 colorIdx) +{ + if (colorIdx == 0xFF) + { + u8 maxWidth = GetFontAttribute(2, FONTATTR_MAX_LETTER_WIDTH); + u8 maxHeight = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT); + FillWindowPixelRect(0, 0, 0, y, maxWidth, maxHeight); + } + else + { + ItemPc_AddTextPrinterParameterized(0, 2, gFameCheckerText_ListMenuCursor, 0, y, 0, 0, 0, colorIdx); + } +} + +static void ItemPc_PrintWithdrawItem(void) +{ + ItemPc_AddTextPrinterParameterized(2, 0, gText_WithdrawItem, 0, 1, 0, 1, 0, 0); +} + +static void ItemPc_PlaceTopMenuScrollIndicatorArrows(void) +{ + sStateDataPtr->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParameterized(2, 128, 8, 104, sStateDataPtr->nItems - sStateDataPtr->maxShowed + 1, 110, 110, &sListMenuState.scroll); +} + +static void ItemPc_PlaceWithdrawQuantityScrollIndicatorArrows(void) +{ + sStateDataPtr->withdrawQuantitySubmenuCursorPos = 1; + sStateDataPtr->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParameterized(2, 212, 120, 152, 2, 110, 110, &sStateDataPtr->withdrawQuantitySubmenuCursorPos); +} + +static void ItemPc_RemoveScrollIndicatorArrowPair(void) +{ + if (sStateDataPtr->scrollIndicatorArrowPairId != 0xFF) + { + RemoveScrollIndicatorArrowPair(sStateDataPtr->scrollIndicatorArrowPairId); + sStateDataPtr->scrollIndicatorArrowPairId = 0xFF; + } +} + +static void ItemPc_SetCursorPosition(void) +{ + if (sListMenuState.scroll != 0 && sListMenuState.scroll + sStateDataPtr->maxShowed > sStateDataPtr->nItems + 1) + sListMenuState.scroll = (sStateDataPtr->nItems + 1) - sStateDataPtr->maxShowed; + if (sListMenuState.scroll + sListMenuState.row >= sStateDataPtr->nItems + 1) + { + if (sStateDataPtr->nItems + 1 < 2) + sListMenuState.row = 0; + else + sListMenuState.row = sStateDataPtr->nItems; + } +} + +#define try_free(ptr) ({ \ + void ** ptr__ = (void **)&(ptr); \ + if (*ptr__ != NULL) \ + Free(*ptr__); \ +}) + +static void ItemPc_FreeResources(void) +{ + try_free(sStateDataPtr); + try_free(sBg1TilemapBuffer); + try_free(sListMenuItems); + try_free(sUnusedStringAllocation); + FreeAllWindowBuffers(); +} + +static void Task_ItemPcTurnOff1(u8 taskId) +{ + if (sListMenuState.initialized == 1) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + } + else + { + sub_80A0A70(0, 0, 0); + PlaySE(SE_PC_OFF); + } + gTasks[taskId].func = Task_ItemPcTurnOff2; +} + +static void Task_ItemPcTurnOff2(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!gPaletteFade.active && !sub_80A0AAC()) + { + DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row); + if (sStateDataPtr->savedCallback != NULL) + SetMainCallback2(sStateDataPtr->savedCallback); + else + SetMainCallback2(sListMenuState.savedCallback); + ItemPc_RemoveScrollIndicatorArrowPair(); + ItemPc_FreeResources(); + DestroyTask(taskId); + } +} + +static u8 ItemPc_GetCursorPosition(void) +{ + return sListMenuState.scroll + sListMenuState.row; +} + +static u16 ItemPc_GetItemIdBySlotId(u16 idx) +{ + return gSaveBlock1Ptr->pcItems[idx].itemId; +} + +static u16 ItemPc_GetItemQuantityBySlotId(u16 idx) +{ + return GetPcItemQuantity(&gSaveBlock1Ptr->pcItems[idx].quantity); +} + +static void ItemPc_CountPcItems(void) +{ + u16 i; + + ItemPcCompaction(); + sStateDataPtr->nItems = 0; + for (i = 0; i < PC_ITEMS_COUNT; sStateDataPtr->nItems++, i++) + { + if (gSaveBlock1Ptr->pcItems[i].itemId == ITEM_NONE) + break; + } + sStateDataPtr->maxShowed = sStateDataPtr->nItems + 1 <= 6 ? sStateDataPtr->nItems + 1 : 6; +} + +static void ItemPc_SetScrollPosition(void) +{ + u8 i; + + if (sListMenuState.row > 3) + { + for (i = 0; i <= sListMenuState.row - 3; sListMenuState.row--, sListMenuState.scroll++, i++) + { + if (sListMenuState.scroll + sStateDataPtr->maxShowed == sStateDataPtr->nItems + 1) + break; + } + } +} + +static void ItemPc_SetMessageWindowPalette(int a0) +{ + SetBgRectPal(1, 0, 14, 30, 6, a0 + 1); + schedule_bg_copy_tilemap_to_vram(1); +} + +void ItemPc_SetInitializedFlag(u8 a0) +{ + sListMenuState.initialized = a0; +} + +static void Task_ItemPcMain(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u16 scroll; + u16 row; + s32 input; + + if (!gPaletteFade.active && !sub_80A0A98()) + { + if (JOY_NEW(SELECT_BUTTON)) + { + ListMenuGetScrollAndRow(data[0], &scroll, &row); + if (scroll + row != sStateDataPtr->nItems) + { + PlaySE(SE_SELECT); + ItemPc_MoveItemModeInit(taskId, scroll + row); + return; + } + } + input = ListMenuHandleInput(data[0]); + ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); + switch (input) + { + case -1: + break; + case -2: + PlaySE(SE_SELECT); + ItemPc_SetInitializedFlag(0); + gTasks[taskId].func = Task_ItemPcTurnOff1; + break; + default: + PlaySE(SE_SELECT); + ItemPc_SetMessageWindowPalette(1); + ItemPc_RemoveScrollIndicatorArrowPair(); + data[1] = input; + data[2] = ItemPc_GetItemQuantityBySlotId(input); + ItemPc_PrintOrRemoveCursor(data[0], 2); + gTasks[taskId].func = Task_ItemPcSubmenuInit; + break; + } + } +} + +static void ItemPc_ReturnFromSubmenu(u8 taskId) +{ + ItemPc_SetMessageWindowPalette(0); + ItemPc_PlaceTopMenuScrollIndicatorArrows(); + gTasks[taskId].func = Task_ItemPcMain; +} + +static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos) +{ + s16 * data = gTasks[taskId].data; + + sub_8107BD0(data[0], 16, 1); + data[1] = pos; + sStateDataPtr->moveModeOrigPos = pos; + StringCopy(gStringVar1, ItemId_GetName(ItemPc_GetItemIdBySlotId(data[1]))); + StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); + FillWindowPixelBuffer(1, 0x00); + ItemPc_AddTextPrinterParameterized(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0); + sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + sub_8098660(0); + ItemPc_PrintOrRemoveCursor(data[0], 2); + gTasks[taskId].func = Task_ItemPcMoveItemModeRun; +} + +static void Task_ItemPcMoveItemModeRun(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + ListMenuHandleInput(data[0]); + ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); + sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + if (JOY_NEW(A_BUTTON | SELECT_BUTTON)) + { + PlaySE(SE_SELECT); + sStateDataPtr->moveModeOrigPos = 0xFF; + ItemPc_InsertItemIntoNewSlot(taskId, sListMenuState.scroll + sListMenuState.row); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + sStateDataPtr->moveModeOrigPos = 0xFF; + ItemPc_MoveItemModeCancel(taskId, sListMenuState.scroll + sListMenuState.row); + } +} + +static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos) +{ + s16 * data = gTasks[taskId].data; + if (data[1] == pos || data[1] == pos - 1) + ItemPc_MoveItemModeCancel(taskId, pos); + else + { + ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos); + DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row); + if (data[1] < pos) + sListMenuState.row--; + ItemPc_BuildListMenuTemplate(); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); + sub_8098660(1); + gTasks[taskId].func = Task_ItemPcMain; + } +} + +static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos) +{ + s16 * data = gTasks[taskId].data; + + DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row); + if (data[1] < pos) + sListMenuState.row--; + ItemPc_BuildListMenuTemplate(); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); + sub_8098660(1); + gTasks[taskId].func = Task_ItemPcMain; +} + +static void Task_ItemPcSubmenuInit(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u8 windowId; + + ItemPc_SetBorderStyleOnWindow(4); + windowId = ItemPc_GetOrCreateSubwindow(0); + PrintTextArray(4, 2, 8, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, 3, sItemPcSubmenuOptions); + ProgramAndPlaceMenuCursorOnWindow(4, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, 3, 0); + CopyItemName(ItemPc_GetItemIdBySlotId(data[1]), gStringVar1); + StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1); + ItemPc_AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 2, 1, 0, 0, 1); + schedule_bg_copy_tilemap_to_vram(0); + gTasks[taskId].func = Task_ItemPcSubmenuRun; +} + +static void Task_ItemPcSubmenuRun(u8 taskId) +{ + s8 input = ProcessMenuInputNoWrapAround(); + switch (input) + { + case -1: + PlaySE(SE_SELECT); + Task_ItemPcCancel(taskId); + break; + case -2: + break; + default: + PlaySE(SE_SELECT); + sItemPcSubmenuOptions[input].func.void_u8(taskId); + } +} + +static void Task_ItemPcWithdraw(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + ClearMenuWindow(4, FALSE); + ItemPc_DestroySubwindow(0); + ClearWindowTilemap(4); + data[8] = 1; + if (ItemPc_GetItemQuantityBySlotId(data[1]) == 1) + { + PutWindowTilemap(0); + schedule_bg_copy_tilemap_to_vram(0); + ItemPc_DoWithdraw(taskId); + } + else + { + PutWindowTilemap(0); + ItemPc_WithdrawMultipleInitWindow(data[1]); + ItemPc_PlaceWithdrawQuantityScrollIndicatorArrows(); + gTasks[taskId].func = Task_ItemPcHandleWithdrawMultiple; + } +} + +static void ItemPc_DoWithdraw(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u16 itemId = ItemPc_GetItemIdBySlotId(data[1]); + u8 windowId; + + if (AddBagItem(itemId, data[8]) == TRUE) + { + ItemUse_SetQuestLogEvent(29, NULL, itemId, 0xFFFF); + CopyItemName(itemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_WithdrewQuantItem); + windowId = ItemPc_GetOrCreateSubwindow(2); + AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 2, 0, NULL); + gTasks[taskId].func = Task_ItemPcWaitButtonAndFinishWithdrawMultiple; + } + else + { + windowId = ItemPc_GetOrCreateSubwindow(2); + AddTextPrinterParameterized(windowId, 2, gText_NoMoreRoomInBag, 0, 2, 0, NULL); + gTasks[taskId].func = Task_ItemPcWaitButtonWithdrawMultipleFailed; + } +} + +static void Task_ItemPcWaitButtonAndFinishWithdrawMultiple(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u16 itemId; + + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + itemId = ItemPc_GetItemIdBySlotId(data[1]); + RemoveItemFromPC(itemId, data[8]); + ItemPcCompaction(); + Task_ItemPcCleanUpWithdraw(taskId); + } +} + +static void Task_ItemPcWaitButtonWithdrawMultipleFailed(u8 taskId) +{ + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + Task_ItemPcCleanUpWithdraw(taskId); + } +} + +static void Task_ItemPcCleanUpWithdraw(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + ItemPc_DestroySubwindow(2); + PutWindowTilemap(1); + DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row); + ItemPc_CountPcItems(); + ItemPc_SetCursorPosition(); + ItemPc_BuildListMenuTemplate(); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); + schedule_bg_copy_tilemap_to_vram(0); + ItemPc_ReturnFromSubmenu(taskId); +} + +static void ItemPc_WithdrawMultipleInitWindow(u16 slotId) +{ + u16 itemId = ItemPc_GetItemIdBySlotId(slotId); + + CopyItemName(itemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_WithdrawHowMany); + AddTextPrinterParameterized(ItemPc_GetOrCreateSubwindow(1), 2, gStringVar4, 0, 2, 0, NULL); + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 3); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + ItemPc_SetBorderStyleOnWindow(3); + ItemPc_AddTextPrinterParameterized(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1); + schedule_bg_copy_tilemap_to_vram(0); +} + +static void sub_810E670(s16 quantity) +{ + FillWindowPixelRect(3, 0x11, 10, 10, 28, 12); + ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 3); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + ItemPc_AddTextPrinterParameterized(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1); +} + +static void Task_ItemPcHandleWithdrawMultiple(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (sub_80BF848(&data[8], data[2]) == TRUE) + sub_810E670(data[8]); + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + ItemPc_DestroySubwindow(1); + ClearWindowTilemap(3); + PutWindowTilemap(0); + ItemPc_PrintOrRemoveCursor(data[0], 1); + schedule_bg_copy_tilemap_to_vram(0); + ItemPc_RemoveScrollIndicatorArrowPair(); + ItemPc_DoWithdraw(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + ClearMenuWindow(3, FALSE); + ItemPc_DestroySubwindow(1); + ClearWindowTilemap(3); + PutWindowTilemap(0); + PutWindowTilemap(1); + ItemPc_PrintOrRemoveCursor(data[0], 1); + schedule_bg_copy_tilemap_to_vram(0); + ItemPc_RemoveScrollIndicatorArrowPair(); + ItemPc_ReturnFromSubmenu(taskId); + } +} + +static void Task_ItemPcGive(u8 taskId) +{ + if (CalculatePlayerPartyCount() == 0) + { + ClearMenuWindow(4, FALSE); + ItemPc_DestroySubwindow(0); + ClearWindowTilemap(4); + PutWindowTilemap(0); + ItemPc_PrintOnWindow5WithContinueTask(taskId, gText_ThereIsNoPokemon, gTask_ItemPcWaitButtonAndExitSubmenu); + } + else + { + sStateDataPtr->savedCallback = ItemPc_CB2_SwitchToPartyMenu; + Task_ItemPcTurnOff1(taskId); + } +} + +static void ItemPc_CB2_SwitchToPartyMenu(void) +{ + PartyMenuInit(0, 0, 6, 0, 6, sub_811FB28, ItemPc_CB2_ReturnFromPartyMenu); + gUnknown_203B0A0.unkC = ItemPc_GetItemIdBySlotId(ItemPc_GetCursorPosition()); +} + +static void ItemPc_CB2_ReturnFromPartyMenu(void) +{ + ItemPc_Init(1, NULL); +} + +static void gTask_ItemPcWaitButtonAndExitSubmenu(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + ClearMenuWindow_BorderThickness2(5, 0); + ClearWindowTilemap(5); + PutWindowTilemap(1); + ItemPc_PrintOrRemoveCursor(data[0], 1); + schedule_bg_copy_tilemap_to_vram(0); + ItemPc_ReturnFromSubmenu(taskId); + } +} + +static void Task_ItemPcCancel(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + ClearMenuWindow(4, FALSE); + ItemPc_DestroySubwindow(0); + ClearWindowTilemap(4); + PutWindowTilemap(0); + PutWindowTilemap(1); + ItemPc_PrintOrRemoveCursor(data[0], 1); + schedule_bg_copy_tilemap_to_vram(0); + ItemPc_ReturnFromSubmenu(taskId); +} + +static void ItemPc_InitWindows(void) +{ + u8 i; + + InitWindows(gUnknown_8453F98); + DeactivateAllTextPrinters(); + TextWindow_SetUserSelectedFrame(0, 0x3C0, 0xE0); + TextWindow_SetStdFrame0_WithPal(0, 0x3A3, 0xC0); + TextWindow_SetBubbleFrame_841F1C8(0, 0x3AC, 0xB0); + LoadPalette(stdpal_get(2), 0xD0, 0x20); + LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); + for (i = 0; i < 3; i++) + { + FillWindowPixelBuffer(i, 0x00); + PutWindowTilemap(i); + } + schedule_bg_copy_tilemap_to_vram(0); + for (i = 0; i < 3; i++) + sSubmenuWindowIds[i] = 0xFF; +} + +static void unused_ItemPc_AddTextPrinterParameterized(u8 windowId, const u8 * string, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed) +{ + struct TextPrinterTemplate template; + + template.currentChar = string; + template.windowId = windowId; + template.fontId = 3; + template.x = x; + template.y = y; + template.currentX = x; + template.currentY = y; + template.fgColor = 2; + template.bgColor = 0; + template.shadowColor = 3; + template.unk = GetFontAttribute(3, FONTATTR_UNKNOWN); + template.letterSpacing = letterSpacing + GetFontAttribute(3, FONTATTR_LETTER_SPACING); + template.lineSpacing = lineSpacing + GetFontAttribute(3, FONTATTR_LINE_SPACING); + AddTextPrinter(&template, speed, NULL); +} + +static void ItemPc_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx) +{ + AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, &gUnknown_8453F8C[colorIdx], speed, str); +} + +static void ItemPc_SetBorderStyleOnWindow(u8 windowId) +{ + SetWindowBorderStyle(windowId, FALSE, 0x3C0, 0x0E); +} + +static u8 ItemPc_GetOrCreateSubwindow(u8 idx) +{ + if (sSubmenuWindowIds[idx] == 0xFF) + { + sSubmenuWindowIds[idx] = AddWindow(&gUnknown_8453FD0[idx]); + SetWindowBorderStyle(sSubmenuWindowIds[idx], TRUE, 0x3A3, 0x0C); + } + + return sSubmenuWindowIds[idx]; +} + +static void ItemPc_DestroySubwindow(u8 idx) +{ + ClearMenuWindow(sSubmenuWindowIds[idx], FALSE); + ClearWindowTilemap(sSubmenuWindowIds[idx]); // redundant + RemoveWindow(sSubmenuWindowIds[idx]); + sSubmenuWindowIds[idx] = 0xFF; +} + +static u8 ItemPc_GetSubwindow(u8 idx) +{ + return sSubmenuWindowIds[idx]; +} + +static void ItemPc_PrintOnWindow5WithContinueTask(u8 taskId, const u8 * str, TaskFunc taskFunc) +{ + DisplayMessageAndContinueTask(taskId, 5, 0x3AC, 0x0B, 2, GetTextSpeedSetting(), str, taskFunc); + schedule_bg_copy_tilemap_to_vram(0); +} diff --git a/src/item_use.c b/src/item_use.c new file mode 100644 index 000000000..a7146b65e --- /dev/null +++ b/src/item_use.c @@ -0,0 +1,880 @@ +#include "global.h" +#include "battle.h" +#include "berry_pouch.h" +#include "berry_powder.h" +#include "bike.h" +#include "coins.h" +#include "event_data.h" +#include "field_effect.h" +#include "field_fadetransition.h" +#include "field_map_obj_helpers.h" +#include "field_player_avatar.h" +#include "field_specials.h" +#include "field_weather.h" +#include "fieldmap.h" +#include "item.h" +#include "item_menu.h" +#include "item_use.h" +#include "itemfinder.h" +#include "mail.h" +#include "main.h" +#include "malloc.h" +#include "map_obj_80688E4.h" +#include "map_obj_lock.h" +#include "metatile_behavior.h" +#include "new_menu_helpers.h" +#include "overworld.h" +#include "palette.h" +#include "party_menu.h" +#include "quest_log.h" +#include "region_map.h" +#include "script.h" +#include "sound.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "teachy_tv.h" +#include "tm_case.h" +#include "vs_seeker.h" +#include "constants/fanfares.h" +#include "constants/flags.h" +#include "constants/items.h" +#include "constants/maps.h" +#include "constants/moves.h" +#include "constants/songs.h" + +EWRAM_DATA void (*sItemUseOnFieldCB)(u8 taskId) = NULL; + +void sub_80A1084(void); +void sub_80A109C(u8 taskId); +void sub_80A112C(u8 taskId); +void sub_80A11C0(u8 taskId); +bool8 sub_80A1194(void); +void sub_80A1208(void); +void ItemUseOnFieldCB_Bicycle(u8 taskId); +bool8 ItemUseCheckFunc_Rod(void); +void ItemUseOnFieldCB_Rod(u8 taskId); +void FieldUseFunc_EvoItem(u8 taskId); +void sub_80A1648(u8 taskId); +void sub_80A1674(u8 taskId); +void InitTMCaseFromBag(void); +void Task_InitTMCaseFromField(u8 taskId); +void InitBerryPouchFromBag(void); +void Task_InitBerryPouchFromField(u8 taskId); +void InitBerryPouchFromBattle(void); +void InitTeachyTvFromBag(void); +void Task_InitTeachyTvFromField(u8 taskId); +void sub_80A19E8(u8 taskId); +void sub_80A1A44(void); +void sub_80A1B48(u8 taskId); +void sub_80A1C08(u8 taskId); +void sub_80A1C44(u8 taskId); +void sub_80A1CAC(void); +void sub_80A1CC0(u8 taskId); +void sub_80A1D58(void); +void sub_80A1D68(u8 taskId); +void Task_BattleUse_StatBooster_DelayAndPrint(u8 taskId); +void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId); + +extern void (*const gUnknown_83E2954[])(void); + +void sub_80A0FBC(u8 taskId) +{ + u8 itemType; + if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY) + itemType = gTasks[taskId].data[4] - 1; + else + itemType = ItemId_GetType(gSpecialVar_ItemId) - 1; + if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH) + { + BerryPouch_SetExitCallback(gUnknown_83E2954[itemType]); + BerryPouch_StartFadeToExitCallback(taskId); + } + else + { + ItemMenu_SetExitCallback(gUnknown_83E2954[itemType]); + if (itemType == 1) + sub_8108CB4(); + ItemMenu_StartFadeToExitCallback(taskId); + } +} + +void sub_80A103C(u8 taskId) +{ + if (gTasks[taskId].data[3] != 1) + { + gFieldCallback = sub_80A1084; + sub_80A0FBC(taskId); + } + else + sItemUseOnFieldCB(taskId); +} + +void sub_80A1084(void) +{ + sub_807DC00(); + CreateTask(sub_80A109C, 8); +} + +void sub_80A109C(u8 taskId) +{ + if (sub_807AA70() == TRUE) + { + sItemUseOnFieldCB(taskId); + } +} + +void sub_80A10C4(u8 taskId, bool8 a1, u8 a2, const u8 * str) +{ + StringExpandPlaceholders(gStringVar4, str); + if (a1 == FALSE) + DisplayItemMessageInBag(taskId, a2, gStringVar4, sub_810A1F8); + else + DisplayItemMessageOnField(taskId, a2, gStringVar4, sub_80A112C); +} + +void sub_80A1110(u8 taskId, bool8 a1) +{ + sub_80A10C4(taskId, a1, 4, gUnknown_8416425); +} + +void sub_80A112C(u8 taskId) +{ + ClearDialogWindowAndFrame(0, 1); + DestroyTask(taskId); + sub_80696C0(); + ScriptContext2_Disable(); +} + +u8 GetItemCompatibilityRule(u16 itemId) +{ + if (ItemId_GetPocket(itemId) == POCKET_TM_CASE) + return 1; + else if (ItemId_GetFieldFunc(itemId) == FieldUseFunc_EvoItem) + return 2; + else + return 0; +} + +void sub_80A1184(void) +{ + gFieldCallback2 = sub_80A1194; +} + +bool8 sub_80A1194(void) +{ + player_bitmagic(); + ScriptContext2_Enable(); + sub_807DC00(); + CreateTask(sub_80A11C0, 10); + gUnknown_2031DE0 = 0; + return TRUE; +} + +void sub_80A11C0(u8 taskId) +{ + if (sub_807AA70() == TRUE) + { + UnfreezeMapObjects(); + ScriptContext2_Disable(); + DestroyTask(taskId); + } +} + +void FieldUseFunc_OrangeMail(u8 taskId) +{ + ItemMenu_SetExitCallback(sub_80A1208); + ItemMenu_StartFadeToExitCallback(taskId); +} + +void sub_80A1208(void) +{ + struct MailStruct mail; + + mail.itemId = gSpecialVar_ItemId; + sub_80BEBEC(&mail, ReturnToBagFromKeyItem, 0); +} + +void FieldUseFunc_MachBike(u8 taskId) +{ + s16 x, y; + u8 behavior; + + PlayerGetDestCoords(&x, &y); + behavior = MapGridGetMetatileBehaviorAt(x, y); + + if (FlagGet(FLAG_0x830) == TRUE + || MetatileBehavior_ReturnFalse_17(behavior) == TRUE + || MetatileBehavior_ReturnFalse_18(behavior) == TRUE + || MetatileBehavior_ReturnFalse_15(behavior) == TRUE + || MetatileBehavior_ReturnFalse_16(behavior) == TRUE) + sub_80A10C4(taskId, gTasks[taskId].data[3], 2, gUnknown_8416451); + else if (sub_8055C9C() == TRUE && !sub_80BD540()) + { + sItemUseOnFieldCB = ItemUseOnFieldCB_Bicycle; + sub_80A103C(taskId); + } + else + sub_80A1110(taskId, gTasks[taskId].data[3]); +} + +void ItemUseOnFieldCB_Bicycle(u8 taskId) +{ + if (!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE)) + PlaySE(SE_JITENSYA); + StartTransitionToFlipBikeState(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE); + sub_80696C0(); + ScriptContext2_Disable(); + DestroyTask(taskId); +} + +void FieldUseFunc_OldRod(u8 taskId) +{ + if (ItemUseCheckFunc_Rod() == TRUE) + { + sItemUseOnFieldCB = ItemUseOnFieldCB_Rod; + sub_80A103C(taskId); + } + else + sub_80A1110(taskId, gTasks[taskId].data[3]); +} + +bool8 ItemUseCheckFunc_Rod(void) +{ + s16 x, y; + u16 behavior; + + GetXYCoordsOneStepInFrontOfPlayer(&x, &y); + behavior = MapGridGetMetatileBehaviorAt(x, y); + + if (MetatileBehavior_IsWaterfall(behavior)) + return FALSE; + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_4)) + return FALSE; + if (!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) + { + if (IsPlayerFacingSurfableFishableWater()) + return TRUE; + } + else + { + if (MetatileBehavior_IsSurfable(behavior) && !MapGridIsImpassableAt(x, y)) + return TRUE; + if (MetatileBehavior_ReturnFalse_6(behavior) == TRUE) + return TRUE; + } + return FALSE; +} + +void ItemUseOnFieldCB_Rod(u8 taskId) +{ + sub_805D2C0(ItemId_GetSecondaryId(gSpecialVar_ItemId)); + DestroyTask(taskId); +} + +void ItemUseOutOfBattle_Itemfinder(u8 taskId) +{ + IncrementGameStat(GAME_STAT_USED_ITEMFINDER); + sItemUseOnFieldCB = sub_813EC8C; + sub_80A103C(taskId); +} + +void FieldUseFunc_CoinCase(u8 taskId) +{ + ConvertIntToDecimalStringN(gStringVar1, GetCoins(), STR_CONV_MODE_LEFT_ALIGN, 4); + StringExpandPlaceholders(gStringVar4, gUnknown_8416537); + ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + if (gTasks[taskId].data[3] == 0) + DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); + else + DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C); +} + +void FieldUseFunc_PowderJar(u8 taskId) +{ + ConvertIntToDecimalStringN(gStringVar1, GetBerryPowder(), STR_CONV_MODE_LEFT_ALIGN, 5); + StringExpandPlaceholders(gStringVar4, gUnknown_8416644); + ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + if (gTasks[taskId].data[3] == 0) + DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); + else + DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C); +} + +void FieldUseFunc_PokeFlute(u8 taskId) +{ + bool8 wokeSomeoneUp = FALSE; + u8 i; + + for (i = 0; i < CalculatePlayerPartyCount(); i++) + { + if (!ExecuteTableBasedItemEffect(&gPlayerParty[i], ITEM_AWAKENING, i, MOVE_NONE)) + wokeSomeoneUp = TRUE; + } + + if (wokeSomeoneUp) + { + ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + if (gTasks[taskId].data[3] == 0) + DisplayItemMessageInBag(taskId, 2, gUnknown_8416690, sub_80A1648); + else + DisplayItemMessageOnField(taskId, 2, gUnknown_8416690, sub_80A1648); + } + else + { + // Now that's a catchy tune! + if (gTasks[taskId].data[3] == 0) + DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, sub_810A1F8); + else + DisplayItemMessageOnField(taskId, 2, gUnknown_841665C, sub_80A112C); + } +} + +void sub_80A1648(u8 taskId) +{ + PlayFanfareByFanfareNum(FANFARE_POKEFLUTE); + gTasks[taskId].func = sub_80A1674; +} + +void sub_80A1674(u8 taskId) +{ + if (WaitFanfare(FALSE)) + { + if (gTasks[taskId].data[3] == 0) + DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, sub_810A1F8); + else + DisplayItemMessageOnField(taskId, 2, gUnknown_84166A7, sub_80A112C); + } +} + +void sub_80A16D0(u8 taskId) +{ + sub_80A0FBC(taskId); +} + +void FieldUseFunc_Medicine(u8 taskId) +{ + gUnknown_3005E98 = sub_81252D0; + sub_80A16D0(taskId); +} + +void FieldUseFunc_Ether(u8 taskId) +{ + gUnknown_3005E98 = ItemUseCB_PpRestore; + sub_80A16D0(taskId); +} + +void FieldUseFunc_PpUp(u8 taskId) +{ + gUnknown_3005E98 = dp05_pp_up; + sub_80A16D0(taskId); +} + +void FieldUseFunc_RareCandy(u8 taskId) +{ + gUnknown_3005E98 = dp05_rare_candy; + sub_80A16D0(taskId); +} + +void FieldUseFunc_EvoItem(u8 taskId) +{ + gUnknown_3005E98 = sub_8126B60; + sub_80A16D0(taskId); +} + +void FieldUseFunc_SacredAsh(u8 taskId) +{ + gUnknown_3005E98 = sub_8126894; + sub_80A0FBC(taskId); +} + +void FieldUseFunc_TmCase(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + ItemMenu_SetExitCallback(InitTMCaseFromBag); + ItemMenu_StartFadeToExitCallback(taskId); + } + else + { + sub_80CCB68(); + fade_screen(1, 0); + gTasks[taskId].func = Task_InitTMCaseFromField; + } +} + +void InitTMCaseFromBag(void) +{ + InitTMCase(0, ReturnToBagFromKeyItem, 0); +} + +void Task_InitTMCaseFromField(u8 taskId) +{ + if (!gPaletteFade.active) + { + CleanupOverworldWindowsAndTilemaps(); + sub_80A1184(); + InitTMCase(0, CB2_ReturnToField, 1); + DestroyTask(taskId); + } +} + +void FieldUseFunc_BerryPouch(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + ItemMenu_SetExitCallback(InitBerryPouchFromBag); + ItemMenu_StartFadeToExitCallback(taskId); + } + else + { + sub_80CCB68(); + fade_screen(1, 0); + gTasks[taskId].func = Task_InitBerryPouchFromField; + } +} + +void InitBerryPouchFromBag(void) +{ + InitBerryPouch(0, ReturnToBagFromKeyItem, 0); +} + +void Task_InitBerryPouchFromField(u8 taskId) +{ + if (!gPaletteFade.active) + { + CleanupOverworldWindowsAndTilemaps(); + sub_80A1184(); + InitBerryPouch(0, CB2_ReturnToField, 1); + DestroyTask(taskId); + } +} + +void BattleUseFunc_BerryPouch(u8 taskId) +{ + ItemMenu_SetExitCallback(InitBerryPouchFromBattle); + ItemMenu_StartFadeToExitCallback(taskId); +} + +void InitBerryPouchFromBattle(void) +{ + InitBerryPouch(4, sub_8107ECC, 0); +} + +void FieldUseFunc_TeachyTv(u8 taskId) +{ + ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + if (gTasks[taskId].data[3] == 0) + { + ItemMenu_SetExitCallback(InitTeachyTvFromBag); + ItemMenu_StartFadeToExitCallback(taskId); + } + else + { + sub_80CCB68(); + fade_screen(1, 0); + gTasks[taskId].func = Task_InitTeachyTvFromField; + } +} + +void InitTeachyTvFromBag(void) +{ + InitTeachyTvController(0, ReturnToBagFromKeyItem); +} + +void Task_InitTeachyTvFromField(u8 taskId) +{ + if (!gPaletteFade.active) + { + CleanupOverworldWindowsAndTilemaps(); + sub_80A1184(); + InitTeachyTvController(0, CB2_ReturnToField); + DestroyTask(taskId); + } +} + +void FieldUseFunc_SuperRepel(u8 taskId) +{ + if (VarGet(VAR_REPEL_STEP_COUNT) == 0) + { + PlaySE(SE_RU_GASYAN); + gTasks[taskId].func = sub_80A19E8; + } + else + // An earlier repel is still in effect + DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, sub_810A1F8); +} + +void sub_80A19E8(u8 taskId) +{ + if (!IsSEPlaying()) + { + ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); + sub_80A1A44(); + DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); + } +} + +void sub_80A1A44(void) +{ + RemoveBagItem(gSpecialVar_ItemId, 1); + sub_8108DC8(ItemId_GetPocket(gSpecialVar_ItemId)); + sub_81089F4(ItemId_GetPocket(gSpecialVar_ItemId)); + CopyItemName(gSpecialVar_ItemId, gStringVar2); + StringExpandPlaceholders(gStringVar4, gUnknown_841658C); +} + +void FieldUseFunc_BlackFlute(u8 taskId) +{ + ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + if (gSpecialVar_ItemId == ITEM_WHITE_FLUTE) + { + FlagSet(FLAG_WHITE_FLUTE_ACTIVE); + FlagClear(FLAG_BLACK_FLUTE_ACTIVE); + CopyItemName(gSpecialVar_ItemId, gStringVar2); + StringExpandPlaceholders(gStringVar4, gUnknown_84165D2); + gTasks[taskId].func = sub_80A1B48; + gTasks[taskId].data[8] = 0; + } + else if (gSpecialVar_ItemId == ITEM_BLACK_FLUTE) + { + FlagSet(FLAG_BLACK_FLUTE_ACTIVE); + FlagClear(FLAG_WHITE_FLUTE_ACTIVE); + CopyItemName(gSpecialVar_ItemId, gStringVar2); + StringExpandPlaceholders(gStringVar4, gUnknown_8416600); + gTasks[taskId].func = sub_80A1B48; + gTasks[taskId].data[8] = 0; + } +} + +void sub_80A1B48(u8 taskId) +{ + if (++gTasks[taskId].data[8] > 7) + { + PlaySE(SE_PN_ON); + DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); + } +} + +bool8 sub_80A1B8C(void) +{ + if (gMapHeader.escapeRope & 1) + return TRUE; + else + return FALSE; +} + +void ItemUseOutOfBattle_EscapeRope(u8 taskId) +{ + if (sub_80A1B8C() == TRUE) + { + ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, gMapHeader.regionMapSectionId); + sItemUseOnFieldCB = sub_80A1C08; + sub_80A103C(taskId); + } + else + sub_80A1110(taskId, gTasks[taskId].data[3]); +} + +void sub_80A1C08(u8 taskId) +{ + sub_8054D70(); + sub_80A1A44(); + gTasks[taskId].data[0] = 0; + DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A1C44); +} + +void sub_80A1C44(u8 taskId) +{ + ResetInitialPlayerAvatarState(); + sub_8085620(); + DestroyTask(taskId); +} + +void FieldUseFunc_TownMap(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + ItemMenu_SetExitCallback(sub_80A1CAC); + ItemMenu_StartFadeToExitCallback(taskId); + } + else + { + sub_80CCB68(); + fade_screen(1, 0); + gTasks[taskId].func = sub_80A1CC0; + } +} + +void sub_80A1CAC(void) +{ + sub_80BFF50(0, ReturnToBagFromKeyItem); +} + +void sub_80A1CC0(u8 taskId) +{ + if (!gPaletteFade.active) + { + CleanupOverworldWindowsAndTilemaps(); + sub_80A1184(); + sub_80BFF50(0, CB2_ReturnToField); + DestroyTask(taskId); + } +} + +void FieldUseFunc_FameChecker(u8 taskId) +{ + ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, 0xFFFF); + if (gTasks[taskId].data[3] == 0) + { + ItemMenu_SetExitCallback(sub_80A1D58); + ItemMenu_StartFadeToExitCallback(taskId); + } + else + { + sub_80CCB68(); + fade_screen(1, 0); + gTasks[taskId].func = sub_80A1D68; + } +} + +void sub_80A1D58(void) +{ + UseFameChecker(ReturnToBagFromKeyItem); +} + +void sub_80A1D68(u8 taskId) +{ + if (!gPaletteFade.active) + { + CleanupOverworldWindowsAndTilemaps(); + sub_80A1184(); + UseFameChecker(CB2_ReturnToField); + DestroyTask(taskId); + } +} + +void FieldUseFunc_VsSeeker(u8 taskId) +{ + if ((gMapHeader.mapType != MAP_TYPE_ROUTE + && gMapHeader.mapType != MAP_TYPE_TOWN + && gMapHeader.mapType != MAP_TYPE_CITY) + || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(VIRIDIAN_FOREST) + && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(VIRIDIAN_FOREST) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(MT_EMBER_EXTERIOR) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(THREE_ISLAND_BERRY_FOREST) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SIX_ISLAND_PATTERN_BUSH)))) + { + sub_80A1110(taskId, gTasks[taskId].data[3]); + } + else + { + sItemUseOnFieldCB = Task_VsSeeker_0; + sub_80A103C(taskId); + } +} + +void sub_80A1E0C(u8 taskId) +{ + sub_80A112C(taskId); +} + +void BattleUseFunc_PokeBallEtc(u8 taskId) +{ + if (!IsPlayerPartyAndPokemonStorageFull()) + { + RemoveBagItem(gSpecialVar_ItemId, 1); + sub_8108CB4(); + ItemMenu_StartFadeToExitCallback(taskId); + } + else + { + DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, sub_810A1F8); + } +} + +void BattleUseFunc_PokeFlute(u8 taskId) +{ + sub_8108CB4(); + ItemMenu_StartFadeToExitCallback(taskId); +} + +void BattleUseFunc_GuardSpec(u8 taskId) +{ + if (ExecuteTableBasedItemEffect(&gPlayerParty[gBattlerPartyIndexes[gBattlerInMenuId]], gSpecialVar_ItemId, gBattlerPartyIndexes[gBattlerInMenuId], 0)) + { + DisplayItemMessageInBag(taskId, 2, gUnknown_84169DC, sub_810A1F8); + } + else + { + gTasks[taskId].data[8] = 0; + gTasks[taskId].func = Task_BattleUse_StatBooster_DelayAndPrint; + } +} + +void Task_BattleUse_StatBooster_DelayAndPrint(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (++data[8] > 7) + { + u16 itemId = gSpecialVar_ItemId; + PlaySE(SE_KAIFUKU); + RemoveBagItem(itemId, 1); + DisplayItemMessageInBag(taskId, 2, Battle_PrintStatBoosterEffectMessage(itemId), Task_BattleUse_StatBooster_WaitButton_ReturnToBattle); + } +} + +void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId) +{ + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + sub_8108CB4(); + ItemMenu_StartFadeToExitCallback(taskId); + } +} + +void ItemUse_SwitchToPartyMenuInBattle(u8 taskId) +{ + if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH) + { + BerryPouch_SetExitCallback(sub_81279E0); + BerryPouch_StartFadeToExitCallback(taskId); + } + else + { + ItemMenu_SetExitCallback(sub_81279E0); + ItemMenu_StartFadeToExitCallback(taskId); + } +} + +void BattleUseFunc_Medicine(u8 taskId) +{ + gUnknown_3005E98 = ItemUseCB_Medicine; + ItemUse_SwitchToPartyMenuInBattle(taskId); +} + +void sub_80A1FD8(u8 taskId) +{ + gUnknown_3005E98 = sub_8126894; + ItemUse_SwitchToPartyMenuInBattle(taskId); +} + +void BattleUseFunc_Ether(u8 taskId) +{ + gUnknown_3005E98 = ItemUseCB_PpRestore; + ItemUse_SwitchToPartyMenuInBattle(taskId); +} + +void BattleUseFunc_PokeDoll(u8 taskId) +{ + if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER)) + { + sub_80A1A44(); + ItemUse_SetQuestLogEvent(4, 0, gSpecialVar_ItemId, 0xFFFF); + DisplayItemMessageInBag(taskId, 2, gStringVar4, ItemMenu_StartFadeToExitCallback); + } + else + sub_80A1110(taskId, 0); +} + +void ItemUseOutOfBattle_EnigmaBerry(u8 taskId) +{ + switch (GetItemEffectType(gSpecialVar_ItemId) - 1) + { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + gTasks[taskId].data[4] = 1; + FieldUseFunc_Medicine(taskId); + break; + case 9: + gTasks[taskId].data[4] = 1; + FieldUseFunc_SacredAsh(taskId); + break; + case 0: + gTasks[taskId].data[4] = 1; + FieldUseFunc_RareCandy(taskId); + break; + case 18: + case 19: + gTasks[taskId].data[4] = 1; + FieldUseFunc_PpUp(taskId); + break; + case 20: + gTasks[taskId].data[4] = 1; + FieldUseFunc_Ether(taskId); + break; + default: + gTasks[taskId].data[4] = 4; + FieldUseFunc_OakStopsYou(taskId); + } +} + +void ItemUseInBattle_EnigmaBerry(u8 taskId) +{ + switch (GetItemEffectType(gSpecialVar_ItemId)) + { + case 0: + BattleUseFunc_GuardSpec(taskId); + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 11: + BattleUseFunc_Medicine(taskId); + break; + case 21: + BattleUseFunc_Ether(taskId); + break; + default: + FieldUseFunc_OakStopsYou(taskId); + } +} + +void FieldUseFunc_OakStopsYou(u8 taskId) +{ + if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH) + { + StringExpandPlaceholders(gStringVar4, gUnknown_8416425); + DisplayItemMessageInBerryPouch(taskId, 4, gStringVar4, sub_813E2B8); + } + else + sub_80A1110(taskId, gTasks[taskId].data[3]); +} + +void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon * pokemon, u16 itemId, u16 param) +{ + struct UnkStruct_ItemUseQuestLog + { + u16 itemId; + u16 unk2; + u16 species; + u16 param; + } * questLog = Alloc(sizeof(*questLog)); + + questLog->itemId = itemId; + questLog->param = param; + if (pokemon != NULL) + questLog->species = GetMonData(pokemon, MON_DATA_SPECIES2); + else + questLog->species = 0xFFFF; + sub_8113550(eventId, (void *)questLog); + Free(questLog); +} diff --git a/src/load_save.c b/src/load_save.c index da55869aa..8d09a86a8 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -7,7 +7,7 @@ #include "malloc.h" #include "item.h" -extern void sub_8099E44(void); +extern void SetBagPocketsPointers(void); extern void sub_8110840(void *oldSave); extern void sub_8055778(int); extern void sub_8054F38(u32 newKey); @@ -80,7 +80,7 @@ void SetSaveBlocksPointers(void) *sav1_LocalVar = (void*)(&gSaveBlock1) + offset; gPokemonStoragePtr = (void*)(&gPokemonStorage) + offset; - sub_8099E44(); + SetBagPocketsPointers(); sub_8110840(oldSave); } @@ -287,7 +287,7 @@ void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey) int i; for(i = 0; i < 4; i++) - ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->unkArray[i][1], encryptionKey); + ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->unkArray[i].unk4, encryptionKey); sub_8054F38(encryptionKey); ApplyNewEncryptionKeyToBagItems_(encryptionKey); diff --git a/src/m4a.c b/src/m4a.c new file mode 100644 index 000000000..7b4441ca4 --- /dev/null +++ b/src/m4a.c @@ -0,0 +1,1779 @@ +#include "gba/m4a_internal.h" + +extern const u8 gCgb3Vol[]; + +#define BSS_CODE __attribute__((section(".bss.code"))) + +BSS_CODE ALIGNED(4) char SoundMainRAM_Buffer[0x800] = {0}; + +struct SoundInfo gSoundInfo; +struct PokemonCrySong gPokemonCrySongs[MAX_POKEMON_CRIES]; +struct MusicPlayerInfo gPokemonCryMusicPlayers[MAX_POKEMON_CRIES]; +void *gMPlayJumpTable[36]; +struct CgbChannel gCgbChans[4]; +struct MusicPlayerTrack gPokemonCryTracks[MAX_POKEMON_CRIES * 2]; +struct PokemonCrySong gPokemonCrySong; +struct MusicPlayerInfo gMPlayInfo_BGM; +struct MusicPlayerInfo gMPlayInfo_SE1; +struct MusicPlayerInfo gMPlayInfo_SE2; +struct MusicPlayerInfo gMPlayInfo_SE3; +u8 gMPlayMemAccArea[0x10]; + +u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust) +{ + u32 val1; + u32 val2; + u32 fineAdjustShifted = fineAdjust << 24; + + if (key > 178) + { + key = 178; + fineAdjustShifted = 255 << 24; + } + + val1 = gScaleTable[key]; + val1 = gFreqTable[val1 & 0xF] >> (val1 >> 4); + + val2 = gScaleTable[key + 1]; + val2 = gFreqTable[val2 & 0xF] >> (val2 >> 4); + + return umul3232H32(wav->freq, val1 + umul3232H32(val2 - val1, fineAdjustShifted)); +} + +void UnusedDummyFunc(void) +{ +} + +void MPlayContinue(struct MusicPlayerInfo *mplayInfo) +{ + if (mplayInfo->ident == ID_NUMBER) + { + mplayInfo->ident++; + mplayInfo->status &= ~MUSICPLAYER_STATUS_PAUSE; + mplayInfo->ident = ID_NUMBER; + } +} + +void MPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed) +{ + if (mplayInfo->ident == ID_NUMBER) + { + mplayInfo->ident++; + mplayInfo->fadeOC = speed; + mplayInfo->fadeOI = speed; + mplayInfo->fadeOV = (64 << FADE_VOL_SHIFT); + mplayInfo->ident = ID_NUMBER; + } +} + +void m4aSoundInit(void) +{ + s32 i; + + CpuCopy32((void *)((s32)SoundMainRAM & ~1), SoundMainRAM_Buffer, sizeof(SoundMainRAM_Buffer)); + + SoundInit(&gSoundInfo); + MPlayExtender(gCgbChans); + m4aSoundMode(SOUND_MODE_DA_BIT_8 + | SOUND_MODE_FREQ_13379 + | (12 << SOUND_MODE_MASVOL_SHIFT) + | (5 << SOUND_MODE_MAXCHN_SHIFT)); + + for (i = 0; i < NUM_MUSIC_PLAYERS; i++) + { + struct MusicPlayerInfo *mplayInfo = gMPlayTable[i].info; + MPlayOpen(mplayInfo, gMPlayTable[i].track, gMPlayTable[i].unk_8); + mplayInfo->unk_B = gMPlayTable[i].unk_A; + mplayInfo->memAccArea = gMPlayMemAccArea; + } + + memcpy(&gPokemonCrySong, &gPokemonCrySongTemplate, sizeof(struct PokemonCrySong)); + + for (i = 0; i < MAX_POKEMON_CRIES; i++) + { + struct MusicPlayerInfo *mplayInfo = &gPokemonCryMusicPlayers[i]; + struct MusicPlayerTrack *track = &gPokemonCryTracks[i * 2]; + MPlayOpen(mplayInfo, track, 2); + track->chan = 0; + } +} + +void m4aSoundMain(void) +{ + SoundMain(); +} + +void m4aSongNumStart(u16 n) +{ + const struct MusicPlayer *mplayTable = gMPlayTable; + const struct Song *songTable = gSongTable; + const struct Song *song = &songTable[n]; + const struct MusicPlayer *mplay = &mplayTable[song->ms]; + + MPlayStart(mplay->info, song->header); +} + +void m4aSongNumStartOrChange(u16 n) +{ + const struct MusicPlayer *mplayTable = gMPlayTable; + const struct Song *songTable = gSongTable; + const struct Song *song = &songTable[n]; + const struct MusicPlayer *mplay = &mplayTable[song->ms]; + + if (mplay->info->songHeader != song->header) + { + MPlayStart(mplay->info, song->header); + } + else + { + if ((mplay->info->status & MUSICPLAYER_STATUS_TRACK) == 0 + || (mplay->info->status & MUSICPLAYER_STATUS_PAUSE)) + { + MPlayStart(mplay->info, song->header); + } + } +} + +void m4aSongNumStartOrContinue(u16 n) +{ + const struct MusicPlayer *mplayTable = gMPlayTable; + const struct Song *songTable = gSongTable; + const struct Song *song = &songTable[n]; + const struct MusicPlayer *mplay = &mplayTable[song->ms]; + + if (mplay->info->songHeader != song->header) + MPlayStart(mplay->info, song->header); + else if ((mplay->info->status & MUSICPLAYER_STATUS_TRACK) == 0) + MPlayStart(mplay->info, song->header); + else if (mplay->info->status & MUSICPLAYER_STATUS_PAUSE) + MPlayContinue(mplay->info); +} + +void m4aSongNumStop(u16 n) +{ + const struct MusicPlayer *mplayTable = gMPlayTable; + const struct Song *songTable = gSongTable; + const struct Song *song = &songTable[n]; + const struct MusicPlayer *mplay = &mplayTable[song->ms]; + + if (mplay->info->songHeader == song->header) + m4aMPlayStop(mplay->info); +} + +void m4aSongNumContinue(u16 n) +{ + const struct MusicPlayer *mplayTable = gMPlayTable; + const struct Song *songTable = gSongTable; + const struct Song *song = &songTable[n]; + const struct MusicPlayer *mplay = &mplayTable[song->ms]; + + if (mplay->info->songHeader == song->header) + MPlayContinue(mplay->info); +} + +void m4aMPlayAllStop(void) +{ + s32 i; + + for (i = 0; i < NUM_MUSIC_PLAYERS; i++) + m4aMPlayStop(gMPlayTable[i].info); + + for (i = 0; i < MAX_POKEMON_CRIES; i++) + m4aMPlayStop(&gPokemonCryMusicPlayers[i]); +} + +void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo) +{ + MPlayContinue(mplayInfo); +} + +void m4aMPlayAllContinue(void) +{ + s32 i; + + for (i = 0; i < NUM_MUSIC_PLAYERS; i++) + MPlayContinue(gMPlayTable[i].info); + + for (i = 0; i < MAX_POKEMON_CRIES; i++) + MPlayContinue(&gPokemonCryMusicPlayers[i]); +} + +void m4aMPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed) +{ + MPlayFadeOut(mplayInfo, speed); +} + +void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed) +{ + if (mplayInfo->ident == ID_NUMBER) + { + mplayInfo->ident++; + mplayInfo->fadeOC = speed; + mplayInfo->fadeOI = speed; + mplayInfo->fadeOV = (64 << FADE_VOL_SHIFT) | TEMPORARY_FADE; + mplayInfo->ident = ID_NUMBER; + } +} + +void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed) +{ + if (mplayInfo->ident == ID_NUMBER) + { + mplayInfo->ident++; + mplayInfo->fadeOC = speed; + mplayInfo->fadeOI = speed; + mplayInfo->fadeOV = (0 << FADE_VOL_SHIFT) | FADE_IN; + mplayInfo->status &= ~MUSICPLAYER_STATUS_PAUSE; + mplayInfo->ident = ID_NUMBER; + } +} + +void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo) +{ + s32 trackCount = mplayInfo->trackCount; + struct MusicPlayerTrack *track = mplayInfo->tracks; + + while (trackCount > 0) + { + if (track->flags & MPT_FLG_EXIST) + { + if (track->flags & MPT_FLG_START) + { + Clear64byte(track); + track->flags = MPT_FLG_EXIST; + track->bendRange = 2; + track->volX = 64; + track->lfoSpeed = 22; + track->tone.type = 1; + } + } + + trackCount--; + track++; + } +} + +void MPlayExtender(struct CgbChannel *cgbChans) +{ + struct SoundInfo *soundInfo; + u32 ident; + + REG_SOUNDCNT_X = SOUND_MASTER_ENABLE + | SOUND_4_ON + | SOUND_3_ON + | SOUND_2_ON + | SOUND_1_ON; + REG_SOUNDCNT_L = 0; // set master volume to zero + REG_NR12 = 0x8; + REG_NR22 = 0x8; + REG_NR42 = 0x8; + REG_NR14 = 0x80; + REG_NR24 = 0x80; + REG_NR44 = 0x80; + REG_NR30 = 0; + REG_NR50 = 0x77; + + soundInfo = SOUND_INFO_PTR; + + ident = soundInfo->ident; + + if (ident != ID_NUMBER) + return; + + soundInfo->ident++; + + gMPlayJumpTable[8] = ply_memacc; + gMPlayJumpTable[17] = ply_lfos; + gMPlayJumpTable[19] = ply_mod; + gMPlayJumpTable[28] = ply_xcmd; + gMPlayJumpTable[29] = ply_endtie; + gMPlayJumpTable[30] = SampleFreqSet; + gMPlayJumpTable[31] = TrackStop; + gMPlayJumpTable[32] = FadeOutBody; + gMPlayJumpTable[33] = TrkVolPitSet; + + soundInfo->cgbChans = (struct CgbChannel *)cgbChans; + soundInfo->CgbSound = CgbSound; + soundInfo->CgbOscOff = CgbOscOff; + soundInfo->MidiKeyToCgbFreq = MidiKeyToCgbFreq; + soundInfo->maxLines = MAX_LINES; + + CpuFill32(0, cgbChans, sizeof(struct CgbChannel) * 4); + + cgbChans[0].ty = 1; + cgbChans[0].panMask = 0x11; + cgbChans[1].ty = 2; + cgbChans[1].panMask = 0x22; + cgbChans[2].ty = 3; + cgbChans[2].panMask = 0x44; + cgbChans[3].ty = 4; + cgbChans[3].panMask = 0x88; + + soundInfo->ident = ident; +} + +void MusicPlayerJumpTableCopy(void) +{ + asm("swi 0x2A"); +} + +void ClearChain(void *x) +{ + void (*func)(void *) = *(&gMPlayJumpTable[34]); + func(x); +} + +void Clear64byte(void *x) +{ + void (*func)(void *) = *(&gMPlayJumpTable[35]); + func(x); +} + +void SoundInit(struct SoundInfo *soundInfo) +{ + soundInfo->ident = 0; + + if (REG_DMA1CNT & (DMA_REPEAT << 16)) + REG_DMA1CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4; + + if (REG_DMA2CNT & (DMA_REPEAT << 16)) + REG_DMA2CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4; + + REG_DMA1CNT_H = DMA_32BIT; + REG_DMA2CNT_H = DMA_32BIT; + REG_SOUNDCNT_X = SOUND_MASTER_ENABLE + | SOUND_4_ON + | SOUND_3_ON + | SOUND_2_ON + | SOUND_1_ON; + REG_SOUNDCNT_H = SOUND_B_FIFO_RESET | SOUND_B_TIMER_0 | SOUND_B_LEFT_OUTPUT + | SOUND_A_FIFO_RESET | SOUND_A_TIMER_0 | SOUND_A_RIGHT_OUTPUT + | SOUND_ALL_MIX_FULL; + REG_SOUNDBIAS_H = (REG_SOUNDBIAS_H & 0x3F) | 0x40; + + REG_DMA1SAD = (s32)soundInfo->pcmBuffer; + REG_DMA1DAD = (s32)®_FIFO_A; + REG_DMA2SAD = (s32)soundInfo->pcmBuffer + PCM_DMA_BUF_SIZE; + REG_DMA2DAD = (s32)®_FIFO_B; + + SOUND_INFO_PTR = soundInfo; + CpuFill32(0, soundInfo, sizeof(struct SoundInfo)); + + soundInfo->maxChans = 8; + soundInfo->masterVolume = 15; + soundInfo->plynote = (u32)ply_note; + soundInfo->CgbSound = DummyFunc; + soundInfo->CgbOscOff = (void (*)(u8))DummyFunc; + soundInfo->MidiKeyToCgbFreq = (u32 (*)(u8, u8, u8))DummyFunc; + soundInfo->ExtVolPit = (u32)DummyFunc; + + MPlayJumpTableCopy(gMPlayJumpTable); + + soundInfo->MPlayJumpTable = (u32)gMPlayJumpTable; + + SampleFreqSet(SOUND_MODE_FREQ_13379); + + soundInfo->ident = ID_NUMBER; +} + +void SampleFreqSet(u32 freq) +{ + struct SoundInfo *soundInfo = SOUND_INFO_PTR; + + freq = (freq & 0xF0000) >> 16; + soundInfo->freq = freq; + soundInfo->pcmSamplesPerVBlank = gPcmSamplesPerVBlankTable[freq - 1]; + soundInfo->pcmDmaPeriod = PCM_DMA_BUF_SIZE / soundInfo->pcmSamplesPerVBlank; + + // LCD refresh rate 59.7275Hz + soundInfo->pcmFreq = (597275 * soundInfo->pcmSamplesPerVBlank + 5000) / 10000; + + // CPU frequency 16.78Mhz + soundInfo->divFreq = (16777216 / soundInfo->pcmFreq + 1) >> 1; + + // Turn off timer 0. + REG_TM0CNT_H = 0; + + // cycles per LCD fresh 280896 + REG_TM0CNT_L = -(280896 / soundInfo->pcmSamplesPerVBlank); + + m4aSoundVSyncOn(); + + while (*(vu8 *)REG_ADDR_VCOUNT == 159) + ; + + while (*(vu8 *)REG_ADDR_VCOUNT != 159) + ; + + REG_TM0CNT_H = TIMER_ENABLE | TIMER_1CLK; +} + +void m4aSoundMode(u32 mode) +{ + struct SoundInfo *soundInfo = SOUND_INFO_PTR; + u32 temp; + + if (soundInfo->ident != ID_NUMBER) + return; + + soundInfo->ident++; + + temp = mode & (SOUND_MODE_REVERB_SET | SOUND_MODE_REVERB_VAL); + + if (temp) + soundInfo->reverb = temp & SOUND_MODE_REVERB_VAL; + + temp = mode & SOUND_MODE_MAXCHN; + + if (temp) + { + struct SoundChannel *chan; + + soundInfo->maxChans = temp >> SOUND_MODE_MAXCHN_SHIFT; + + temp = MAX_DIRECTSOUND_CHANNELS; + chan = &soundInfo->chans[0]; + + while (temp != 0) + { + chan->status = 0; + temp--; + chan++; + } + } + + temp = mode & SOUND_MODE_MASVOL; + + if (temp) + soundInfo->masterVolume = temp >> SOUND_MODE_MASVOL_SHIFT; + + temp = mode & SOUND_MODE_DA_BIT; + + if (temp) + { + temp = (temp & 0x300000) >> 14; + REG_SOUNDBIAS_H = (REG_SOUNDBIAS_H & 0x3F) | temp; + } + + temp = mode & SOUND_MODE_FREQ; + + if (temp) + { + m4aSoundVSyncOff(); + SampleFreqSet(temp); + } + + soundInfo->ident = ID_NUMBER; +} + +void SoundClear(void) +{ + struct SoundInfo *soundInfo = SOUND_INFO_PTR; + s32 i; + void *chan; + + if (soundInfo->ident != ID_NUMBER) + return; + + soundInfo->ident++; + + i = MAX_DIRECTSOUND_CHANNELS; + chan = &soundInfo->chans[0]; + + while (i > 0) + { + ((struct SoundChannel *)chan)->status = 0; + i--; + chan = (void *)((s32)chan + sizeof(struct SoundChannel)); + } + + chan = soundInfo->cgbChans; + + if (chan) + { + i = 1; + + while (i <= 4) + { + soundInfo->CgbOscOff(i); + ((struct CgbChannel *)chan)->sf = 0; + i++; + chan = (void *)((s32)chan + sizeof(struct CgbChannel)); + } + } + + soundInfo->ident = ID_NUMBER; +} + +void m4aSoundVSyncOff(void) +{ + struct SoundInfo *soundInfo = SOUND_INFO_PTR; + + if (soundInfo->ident >= ID_NUMBER && soundInfo->ident <= ID_NUMBER + 1) + { + soundInfo->ident += 10; + + if (REG_DMA1CNT & (DMA_REPEAT << 16)) + REG_DMA1CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4; + + if (REG_DMA2CNT & (DMA_REPEAT << 16)) + REG_DMA2CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4; + + REG_DMA1CNT_H = DMA_32BIT; + REG_DMA2CNT_H = DMA_32BIT; + + CpuFill32(0, soundInfo->pcmBuffer, sizeof(soundInfo->pcmBuffer)); + } +} + +void m4aSoundVSyncOn(void) +{ + struct SoundInfo *soundInfo = SOUND_INFO_PTR; + u32 ident = soundInfo->ident; + + if (ident == ID_NUMBER) + return; + + REG_DMA1CNT_H = DMA_ENABLE | DMA_START_SPECIAL | DMA_32BIT | DMA_REPEAT; + REG_DMA2CNT_H = DMA_ENABLE | DMA_START_SPECIAL | DMA_32BIT | DMA_REPEAT; + + soundInfo->pcmDmaCounter = 0; + soundInfo->ident = ident - 10; +} + +void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *tracks, u8 trackCount) +{ + struct SoundInfo *soundInfo; + + if (trackCount == 0) + return; + + if (trackCount > MAX_MUSICPLAYER_TRACKS) + trackCount = MAX_MUSICPLAYER_TRACKS; + + soundInfo = SOUND_INFO_PTR; + + if (soundInfo->ident != ID_NUMBER) + return; + + soundInfo->ident++; + + Clear64byte(mplayInfo); + + mplayInfo->tracks = tracks; + mplayInfo->trackCount = trackCount; + mplayInfo->status = MUSICPLAYER_STATUS_PAUSE; + + while (trackCount != 0) + { + tracks->flags = 0; + trackCount--; + tracks++; + } + + if (soundInfo->func != 0) + { + mplayInfo->func = soundInfo->func; + mplayInfo->intp = soundInfo->intp; + soundInfo->func = 0; + } + + soundInfo->intp = (u32)mplayInfo; + soundInfo->func = (u32)MPlayMain; + soundInfo->ident = ID_NUMBER; + mplayInfo->ident = ID_NUMBER; +} + +void MPlayStart(struct MusicPlayerInfo *mplayInfo, struct SongHeader *songHeader) +{ + s32 i; + u8 unk_B; + struct MusicPlayerTrack *track; + + if (mplayInfo->ident != ID_NUMBER) + return; + + unk_B = mplayInfo->unk_B; + + if (!unk_B + || ((!mplayInfo->songHeader || !(mplayInfo->tracks[0].flags & MPT_FLG_START)) + && ((mplayInfo->status & MUSICPLAYER_STATUS_TRACK) == 0 + || (mplayInfo->status & MUSICPLAYER_STATUS_PAUSE))) + || (mplayInfo->priority <= songHeader->priority)) + { + mplayInfo->ident++; + mplayInfo->status = 0; + mplayInfo->songHeader = songHeader; + mplayInfo->tone = songHeader->tone; + mplayInfo->priority = songHeader->priority; + mplayInfo->clock = 0; + mplayInfo->tempoD = 150; + mplayInfo->tempoI = 150; + mplayInfo->tempoU = 0x100; + mplayInfo->tempoC = 0; + mplayInfo->fadeOI = 0; + + i = 0; + track = mplayInfo->tracks; + + while (i < songHeader->trackCount && i < mplayInfo->trackCount) + { + TrackStop(mplayInfo, track); + track->flags = MPT_FLG_EXIST | MPT_FLG_START; + track->chan = 0; + track->cmdPtr = songHeader->part[i]; + i++; + track++; + } + + while (i < mplayInfo->trackCount) + { + TrackStop(mplayInfo, track); + track->flags = 0; + i++; + track++; + } + + if (songHeader->reverb & 0x80) + m4aSoundMode(songHeader->reverb); + + mplayInfo->ident = ID_NUMBER; + } +} + +void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo) +{ + s32 i; + struct MusicPlayerTrack *track; + + if (mplayInfo->ident != ID_NUMBER) + return; + + mplayInfo->ident++; + mplayInfo->status |= MUSICPLAYER_STATUS_PAUSE; + + i = mplayInfo->trackCount; + track = mplayInfo->tracks; + + while (i > 0) + { + TrackStop(mplayInfo, track); + i--; + track++; + } + + mplayInfo->ident = ID_NUMBER; +} + +void FadeOutBody(struct MusicPlayerInfo *mplayInfo) +{ + s32 i; + struct MusicPlayerTrack *track; + u16 fadeOV; +#ifdef NONMATCHING + u16 mask; +#else + register u16 mask asm("r2"); +#endif // NONMATCHING + + if (mplayInfo->fadeOI == 0) + return; + + mplayInfo->fadeOC--; + mask = 0xFFFF; + + if (mplayInfo->fadeOC != 0) + return; + + mplayInfo->fadeOC = mplayInfo->fadeOI; + + if (mplayInfo->fadeOV & FADE_IN) + { + mplayInfo->fadeOV += (4 << FADE_VOL_SHIFT); + + if ((u16)(mplayInfo->fadeOV & mask) >= (64 << FADE_VOL_SHIFT)) + { + mplayInfo->fadeOV = (64 << FADE_VOL_SHIFT); + mplayInfo->fadeOI = 0; + } + } + else + { + mplayInfo->fadeOV -= (4 << FADE_VOL_SHIFT); + + if ((s16)(mplayInfo->fadeOV & mask) <= 0) + { + i = mplayInfo->trackCount; + track = mplayInfo->tracks; + + while (i > 0) + { + u32 val; + + TrackStop(mplayInfo, track); + + val = TEMPORARY_FADE; + fadeOV = mplayInfo->fadeOV; + val &= fadeOV; + + if (!val) + track->flags = 0; + + i--; + track++; + } + + if (mplayInfo->fadeOV & TEMPORARY_FADE) + mplayInfo->status |= MUSICPLAYER_STATUS_PAUSE; + else + mplayInfo->status = MUSICPLAYER_STATUS_PAUSE; + + mplayInfo->fadeOI = 0; + return; + } + } + + i = mplayInfo->trackCount; + track = mplayInfo->tracks; + + while (i > 0) + { + if (track->flags & MPT_FLG_EXIST) + { + fadeOV = mplayInfo->fadeOV; + + track->volX = (fadeOV >> FADE_VOL_SHIFT); + track->flags |= MPT_FLG_VOLCHG; + } + + i--; + track++; + } +} + +void TrkVolPitSet(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + if (track->flags & MPT_FLG_VOLSET) + { + s32 x; + s32 y; + + x = (u32)(track->vol * track->volX) >> 5; + + if (track->modT == 1) + x = (u32)(x * (track->modM + 128)) >> 7; + + y = 2 * track->pan + track->panX; + + if (track->modT == 2) + y += track->modM; + + if (y < -128) + y = -128; + else if (y > 127) + y = 127; + + track->volMR = (u32)((y + 128) * x) >> 8; + track->volML = (u32)((127 - y) * x) >> 8; + } + + if (track->flags & MPT_FLG_PITSET) + { + s32 bend = track->bend * track->bendRange; + s32 x = (track->tune + bend) + * 4 + + (track->keyShift << 8) + + (track->keyShiftX << 8) + + track->pitX; + + if (track->modT == 0) + x += 16 * track->modM; + + track->keyM = x >> 8; + track->pitM = x; + } + + track->flags &= ~(MPT_FLG_PITSET | MPT_FLG_VOLSET); +} + +u32 MidiKeyToCgbFreq(u8 chanNum, u8 key, u8 fineAdjust) +{ + if (chanNum == 4) + { + if (key <= 20) + { + key = 0; + } + else + { + key -= 21; + if (key > 59) + key = 59; + } + + return gNoiseTable[key]; + } + else + { + s32 val1; + s32 val2; + + if (key <= 35) + { + fineAdjust = 0; + key = 0; + } + else + { + key -= 36; + if (key > 130) + { + key = 130; + fineAdjust = 255; + } + } + + val1 = gCgbScaleTable[key]; + val1 = gCgbFreqTable[val1 & 0xF] >> (val1 >> 4); + + val2 = gCgbScaleTable[key + 1]; + val2 = gCgbFreqTable[val2 & 0xF] >> (val2 >> 4); + + return val1 + ((fineAdjust * (val2 - val1)) >> 8) + 2048; + } +} + +void CgbOscOff(u8 chanNum) +{ + switch (chanNum) + { + case 1: + REG_NR12 = 8; + REG_NR14 = 0x80; + break; + case 2: + REG_NR22 = 8; + REG_NR24 = 0x80; + break; + case 3: + REG_NR30 = 0; + break; + default: + REG_NR42 = 8; + REG_NR44 = 0x80; + } +} + +static inline int CgbPan(struct CgbChannel *chan) +{ + u32 rightVolume = chan->rightVolume; + u32 leftVolume = chan->leftVolume; + + if ((rightVolume = (u8)rightVolume) >= (leftVolume = (u8)leftVolume)) + { + if (rightVolume / 2 >= leftVolume) + { + chan->pan = 0x0F; + return 1; + } + } + else + { + if (leftVolume / 2 >= rightVolume) + { + chan->pan = 0xF0; + return 1; + } + } + + return 0; +} + +void CgbModVol(struct CgbChannel *chan) +{ + struct SoundInfo *soundInfo = SOUND_INFO_PTR; + + if ((soundInfo->mode & 1) || !CgbPan(chan)) + { + chan->pan = 0xFF; + chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4; + } + else + { + // Force chan->rightVolume and chan->leftVolume to be read from memory again, + // even though there is no reason to do so. + // The command line option "-fno-gcse" achieves the same result as this. + asm("" : : : "memory"); + + chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4; + if (chan->eg > 15) + chan->eg = 15; + } + + chan->sg = (chan->eg * chan->su + 15) >> 4; + chan->pan &= chan->panMask; +} + +void CgbSound(void) +{ + s32 ch; + struct CgbChannel *channels; + s32 evAdd; + s32 prevC15; + struct SoundInfo *soundInfo = SOUND_INFO_PTR; + vu8 *nrx0ptr; + vu8 *nrx1ptr; + vu8 *nrx2ptr; + vu8 *nrx3ptr; + vu8 *nrx4ptr; + + // Most comparision operations that cast to s8 perform 'and' by 0xFF. + int mask = 0xff; + + if (soundInfo->c15) + soundInfo->c15--; + else + soundInfo->c15 = 14; + + for (ch = 1, channels = soundInfo->cgbChans; ch <= 4; ch++, channels++) + { + if (!(channels->sf & 0xc7)) + continue; + + switch (ch) + { + case 1: + nrx0ptr = (vu8 *)(REG_ADDR_NR10); + nrx1ptr = (vu8 *)(REG_ADDR_NR11); + nrx2ptr = (vu8 *)(REG_ADDR_NR12); + nrx3ptr = (vu8 *)(REG_ADDR_NR13); + nrx4ptr = (vu8 *)(REG_ADDR_NR14); + break; + case 2: + nrx0ptr = (vu8 *)(REG_ADDR_NR10+1); + nrx1ptr = (vu8 *)(REG_ADDR_NR21); + nrx2ptr = (vu8 *)(REG_ADDR_NR22); + nrx3ptr = (vu8 *)(REG_ADDR_NR23); + nrx4ptr = (vu8 *)(REG_ADDR_NR24); + break; + case 3: + nrx0ptr = (vu8 *)(REG_ADDR_NR30); + nrx1ptr = (vu8 *)(REG_ADDR_NR31); + nrx2ptr = (vu8 *)(REG_ADDR_NR32); + nrx3ptr = (vu8 *)(REG_ADDR_NR33); + nrx4ptr = (vu8 *)(REG_ADDR_NR34); + break; + default: + nrx0ptr = (vu8 *)(REG_ADDR_NR30+1); + nrx1ptr = (vu8 *)(REG_ADDR_NR41); + nrx2ptr = (vu8 *)(REG_ADDR_NR42); + nrx3ptr = (vu8 *)(REG_ADDR_NR43); + nrx4ptr = (vu8 *)(REG_ADDR_NR44); + break; + } + + prevC15 = soundInfo->c15; + evAdd = *nrx2ptr; + + if (channels->sf & 0x80) + { + if (!(channels->sf & 0x40)) + { + channels->sf = 3; + channels->mo = 3; + CgbModVol(channels); + switch (ch) + { + case 1: + *nrx0ptr = channels->sw; + // fallthrough + case 2: + *nrx1ptr = ((u32)channels->wp << 6) + channels->le; + goto loc_82E0E30; + case 3: + if ((u32)channels->wp != channels->cp) + { + *nrx0ptr = 0x40; + REG_WAVE_RAM0 = channels->wp[0]; + REG_WAVE_RAM1 = channels->wp[1]; + REG_WAVE_RAM2 = channels->wp[2]; + REG_WAVE_RAM3 = channels->wp[3]; + channels->cp = (u32)channels->wp; + } + *nrx0ptr = 0; + *nrx1ptr = channels->le; + if (channels->le) + channels->n4 = -64; + else + channels->n4 = -128; + break; + default: + *nrx1ptr = channels->le; + *nrx3ptr = (u32)channels->wp << 3; + loc_82E0E30: + evAdd = channels->at + 8; + if (channels->le) + channels->n4 = 64; + else + channels->n4 = 0; + break; + } + channels->ec = channels->at; + if ((s8)(channels->at & mask)) + { + channels->ev = 0; + goto EC_MINUS; + } + else + { + goto loc_82E0F96; + } + } + else + { + goto loc_82E0E82; + } + } + else if (channels->sf & 0x04) + { + channels->echoLength--; + if ((s8)(channels->echoLength & mask) <= 0) + { + loc_82E0E82: + CgbOscOff(ch); + channels->sf = 0; + goto LAST_LABEL; + } + goto loc_82E0FD6; + } + else if ((channels->sf & 0x40) && (channels->sf & 0x03)) + { + channels->sf &= 0xfc; + channels->ec = channels->re; + if ((s8)(channels->re & mask)) + { + channels->mo |= 1; + if (ch != 3) + { + evAdd = channels->re; + } + goto EC_MINUS; + } + else + { + goto loc_82E0F02; + } + } + else + { + loc_82E0ED0: + if (channels->ec == 0) + { + if (ch == 3) + { + channels->mo |= 1; + } + CgbModVol(channels); + if ((channels->sf & 0x3) == 0) + { + channels->ev--; + if ((s8)(channels->ev & mask) <= 0) + { + loc_82E0F02: + channels->ev = ((channels->eg * channels->echoVolume) + 0xFF) >> 8; + if (channels->ev) + { + channels->sf |= 0x4; + channels->mo |= 1; + if (ch != 3) + { + evAdd = 8; + } + goto loc_82E0FD6; + } + else + { + goto loc_82E0E82; + } + } + else + { + channels->ec = channels->re; + } + } + else if ((channels->sf & 0x3) == 1) + { + loc_82E0F3A: + channels->ev = channels->sg; + channels->ec = 7; + } + else if ((channels->sf & 0x3) == 2) + { + int ev, sg; + + channels->ev--; + ev = (s8)(channels->ev & mask); + sg = (s8)(channels->sg); + if (ev <= sg) + { + loc_82E0F5A: + if (channels->su == 0) + { + channels->sf &= 0xfc; + goto loc_82E0F02; + } + else + { + channels->sf--; + channels->mo |= 1; + if (ch != 3) + { + evAdd = 8; + } + goto loc_82E0F3A; + } + } + else + { + channels->ec = channels->de; + } + } + else + { + channels->ev++; + if ((u8)(channels->ev & mask) >= channels->eg) + { + loc_82E0F96: + channels->sf--; + channels->ec = channels->de; + if ((u8)(channels->ec & mask)) + { + channels->mo |= 1; + channels->ev = channels->eg; + if (ch != 3) + { + evAdd = channels->de; + } + } + else + { + goto loc_82E0F5A; + } + } + else + { + channels->ec = channels->at; + } + } + } + } + + EC_MINUS: + channels->ec--; + if (prevC15 == 0) + { + prevC15--; + goto loc_82E0ED0; + } + + loc_82E0FD6: + if (channels->mo & 0x2) + { + if (ch < 4 && (channels->ty & 0x08)) + { + int biasH = REG_SOUNDBIAS_H; + + if (biasH < 64) + { + channels->fr = (channels->fr + 2) & 0x7fc; + } + else if (biasH < 128) + { + channels->fr = (channels->fr + 1) & 0x7fe; + } + } + if (ch != 4) + { + *nrx3ptr = channels->fr; + } + else + { + *nrx3ptr = (*nrx3ptr & 0x08) | channels->fr; + } + channels->n4 = (channels->n4 & 0xC0) + (*((u8*)(&channels->fr) + 1)); + *nrx4ptr = (s8)(channels->n4 & mask); + } + + if (channels->mo & 1) + { + REG_NR51 = (REG_NR51 & ~channels->panMask) | channels->pan; + if (ch == 3) + { + *nrx2ptr = gCgb3Vol[channels->ev]; + if (channels->n4 & 0x80) + { + *nrx0ptr = 0x80; + *nrx4ptr = channels->n4; + channels->n4 &= 0x7f; + } + } + else + { + evAdd &= 0xf; + *nrx2ptr = (channels->ev << 4) + evAdd; + *nrx4ptr = channels->n4 | 0x80; + if (ch == 1 && !(*nrx0ptr & 0x08)) + { + *nrx4ptr = channels->n4 | 0x80; + } + } + } + + LAST_LABEL: + channels->mo = 0; + } +} + +void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo) +{ + if (mplayInfo->ident == ID_NUMBER) + { + mplayInfo->ident++; + mplayInfo->tempoU = tempo; + mplayInfo->tempoI = (mplayInfo->tempoD * mplayInfo->tempoU) >> 8; + mplayInfo->ident = ID_NUMBER; + } +} + +void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume) +{ + s32 i; + u32 bit; + struct MusicPlayerTrack *track; + + if (mplayInfo->ident != ID_NUMBER) + return; + + mplayInfo->ident++; + + i = mplayInfo->trackCount; + track = mplayInfo->tracks; + bit = 1; + + while (i > 0) + { + if (trackBits & bit) + { + if (track->flags & MPT_FLG_EXIST) + { + track->volX = volume / 4; + track->flags |= MPT_FLG_VOLCHG; + } + } + + i--; + track++; + bit <<= 1; + } + + mplayInfo->ident = ID_NUMBER; +} + +void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch) +{ + s32 i; + u32 bit; + struct MusicPlayerTrack *track; + + if (mplayInfo->ident != ID_NUMBER) + return; + + mplayInfo->ident++; + + i = mplayInfo->trackCount; + track = mplayInfo->tracks; + bit = 1; + + while (i > 0) + { + if (trackBits & bit) + { + if (track->flags & MPT_FLG_EXIST) + { + track->keyShiftX = pitch >> 8; + track->pitX = pitch; + track->flags |= MPT_FLG_PITCHG; + } + } + + i--; + track++; + bit <<= 1; + } + + mplayInfo->ident = ID_NUMBER; +} + +void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan) +{ + s32 i; + u32 bit; + struct MusicPlayerTrack *track; + + if (mplayInfo->ident != ID_NUMBER) + return; + + mplayInfo->ident++; + + i = mplayInfo->trackCount; + track = mplayInfo->tracks; + bit = 1; + + while (i > 0) + { + if (trackBits & bit) + { + if (track->flags & MPT_FLG_EXIST) + { + track->panX = pan; + track->flags |= MPT_FLG_VOLCHG; + } + } + + i--; + track++; + bit <<= 1; + } + + mplayInfo->ident = ID_NUMBER; +} + +void ClearModM(struct MusicPlayerTrack *track) +{ + track->lfoSpeedC = 0; + track->modM = 0; + + if (track->modT == 0) + track->flags |= MPT_FLG_PITCHG; + else + track->flags |= MPT_FLG_VOLCHG; +} + +void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth) +{ + s32 i; + u32 bit; + struct MusicPlayerTrack *track; + + if (mplayInfo->ident != ID_NUMBER) + return; + + mplayInfo->ident++; + + i = mplayInfo->trackCount; + track = mplayInfo->tracks; + bit = 1; + + while (i > 0) + { + if (trackBits & bit) + { + if (track->flags & MPT_FLG_EXIST) + { + track->mod = modDepth; + + if (!track->mod) + ClearModM(track); + } + } + + i--; + track++; + bit <<= 1; + } + + mplayInfo->ident = ID_NUMBER; +} + +void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed) +{ + s32 i; + u32 bit; + struct MusicPlayerTrack *track; + + if (mplayInfo->ident != ID_NUMBER) + return; + + mplayInfo->ident++; + + i = mplayInfo->trackCount; + track = mplayInfo->tracks; + bit = 1; + + while (i > 0) + { + if (trackBits & bit) + { + if (track->flags & MPT_FLG_EXIST) + { + track->lfoSpeed = lfoSpeed; + + if (!track->lfoSpeed) + ClearModM(track); + } + } + + i--; + track++; + bit <<= 1; + } + + mplayInfo->ident = ID_NUMBER; +} + +#define MEMACC_COND_JUMP(cond) \ +if (cond) \ + goto cond_true; \ +else \ + goto cond_false; \ + +void ply_memacc(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + u32 op; + u8 *addr; + u8 data; + + op = *track->cmdPtr; + track->cmdPtr++; + + addr = mplayInfo->memAccArea + *track->cmdPtr; + track->cmdPtr++; + + data = *track->cmdPtr; + track->cmdPtr++; + + switch (op) + { + case 0: + *addr = data; + return; + case 1: + *addr += data; + return; + case 2: + *addr -= data; + return; + case 3: + *addr = mplayInfo->memAccArea[data]; + return; + case 4: + *addr += mplayInfo->memAccArea[data]; + return; + case 5: + *addr -= mplayInfo->memAccArea[data]; + return; + case 6: + MEMACC_COND_JUMP(*addr == data) + return; + case 7: + MEMACC_COND_JUMP(*addr != data) + return; + case 8: + MEMACC_COND_JUMP(*addr > data) + return; + case 9: + MEMACC_COND_JUMP(*addr >= data) + return; + case 10: + MEMACC_COND_JUMP(*addr <= data) + return; + case 11: + MEMACC_COND_JUMP(*addr < data) + return; + case 12: + MEMACC_COND_JUMP(*addr == mplayInfo->memAccArea[data]) + return; + case 13: + MEMACC_COND_JUMP(*addr != mplayInfo->memAccArea[data]) + return; + case 14: + MEMACC_COND_JUMP(*addr > mplayInfo->memAccArea[data]) + return; + case 15: + MEMACC_COND_JUMP(*addr >= mplayInfo->memAccArea[data]) + return; + case 16: + MEMACC_COND_JUMP(*addr <= mplayInfo->memAccArea[data]) + return; + case 17: + MEMACC_COND_JUMP(*addr < mplayInfo->memAccArea[data]) + return; + default: + return; + } + +cond_true: + { + void (*func)(struct MusicPlayerInfo *, struct MusicPlayerTrack *) = *(&gMPlayJumpTable[1]); + func(mplayInfo, track); + return; + } + +cond_false: + track->cmdPtr += 4; +} + +void ply_xcmd(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + u32 n = *track->cmdPtr; + track->cmdPtr++; + + gXcmdTable[n](mplayInfo, track); +} + +void ply_xxx(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + void (*func)(struct MusicPlayerInfo *, struct MusicPlayerTrack *) = *(&gMPlayJumpTable[0]); + func(mplayInfo, track); +} + +#define READ_XCMD_BYTE(var, n) \ +{ \ + u32 byte = track->cmdPtr[(n)]; \ + byte <<= n * 8; \ + (var) &= ~(0xFF << (n * 8)); \ + (var) |= byte; \ +} + +void ply_xwave(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + u32 wav; + + READ_XCMD_BYTE(wav, 0) // UB: uninitialized variable + READ_XCMD_BYTE(wav, 1) + READ_XCMD_BYTE(wav, 2) + READ_XCMD_BYTE(wav, 3) + + track->tone.wav = (struct WaveData *)wav; + track->cmdPtr += 4; +} + +void ply_xtype(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + track->tone.type = *track->cmdPtr; + track->cmdPtr++; +} + +void ply_xatta(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + track->tone.attack = *track->cmdPtr; + track->cmdPtr++; +} + +void ply_xdeca(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + track->tone.decay = *track->cmdPtr; + track->cmdPtr++; +} + +void ply_xsust(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + track->tone.sustain = *track->cmdPtr; + track->cmdPtr++; +} + +void ply_xrele(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + track->tone.release = *track->cmdPtr; + track->cmdPtr++; +} + +void ply_xiecv(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + track->echoVolume = *track->cmdPtr; + track->cmdPtr++; +} + +void ply_xiecl(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + track->echoLength = *track->cmdPtr; + track->cmdPtr++; +} + +void ply_xleng(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + track->tone.length = *track->cmdPtr; + track->cmdPtr++; +} + +void ply_xswee(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + track->tone.pan_sweep = *track->cmdPtr; + track->cmdPtr++; +} + +void ply_xcmd_0C(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + u32 unk; + + READ_XCMD_BYTE(unk, 0) // UB: uninitialized variable + READ_XCMD_BYTE(unk, 1) + + if (track->unk_3A < (u16)unk) + { + track->unk_3A++; + track->cmdPtr -= 2; + track->wait = 1; + } + else + { + track->unk_3A = 0; + track->cmdPtr += 2; + } +} + +void ply_xcmd_0D(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) +{ + u32 unk; + + READ_XCMD_BYTE(unk, 0) // UB: uninitialized variable + READ_XCMD_BYTE(unk, 1) + READ_XCMD_BYTE(unk, 2) + READ_XCMD_BYTE(unk, 3) + + track->unk_3C = unk; + track->cmdPtr += 4; +} + +void DummyFunc(void) +{ +} + +struct MusicPlayerInfo *SetPokemonCryTone(struct ToneData *tone) +{ + u32 maxClock = 0; + s32 maxClockIndex = 0; + s32 i; + struct MusicPlayerInfo *mplayInfo; + + for (i = 0; i < MAX_POKEMON_CRIES; i++) + { + struct MusicPlayerTrack *track = &gPokemonCryTracks[i * 2]; + + if (!track->flags && (!track->chan || track->chan->track != track)) + goto start_song; + + if (maxClock < gPokemonCryMusicPlayers[i].clock) + { + maxClock = gPokemonCryMusicPlayers[i].clock; + maxClockIndex = i; + } + } + + i = maxClockIndex; + +start_song: + mplayInfo = &gPokemonCryMusicPlayers[i]; + mplayInfo->ident++; + +#define CRY ((s32)&gPokemonCrySongs + i * sizeof(struct PokemonCrySong)) +#define CRY_OFS(field) offsetof(struct PokemonCrySong, field) + + memcpy((void *)CRY, &gPokemonCrySong, sizeof(struct PokemonCrySong)); + + *(u32 *)(CRY + CRY_OFS(tone)) = (u32)tone; + *(u32 *)(CRY + CRY_OFS(part)) = CRY + CRY_OFS(part0); + *(u32 *)(CRY + CRY_OFS(part) + 4) = CRY + CRY_OFS(part1); + *(u32 *)(CRY + CRY_OFS(gotoTarget)) = CRY + CRY_OFS(cont); + +#undef CRY_OFS +#undef CRY + + mplayInfo->ident = ID_NUMBER; + + MPlayStart(mplayInfo, (struct SongHeader *)(&gPokemonCrySongs[i])); + + return mplayInfo; +} + +void SetPokemonCryVolume(u8 val) +{ + gPokemonCrySong.volumeValue = val & 0x7F; +} + +void SetPokemonCryPanpot(s8 val) +{ + gPokemonCrySong.panValue = (val + C_V) & 0x7F; +} + +void SetPokemonCryPitch(s16 val) +{ + s16 b = val + 0x80; + u8 a = gPokemonCrySong.tuneValue2 - gPokemonCrySong.tuneValue; + gPokemonCrySong.tieKeyValue = (b >> 8) & 0x7F; + gPokemonCrySong.tuneValue = (b >> 1) & 0x7F; + gPokemonCrySong.tuneValue2 = (a + ((b >> 1) & 0x7F)) & 0x7F; +} + +void SetPokemonCryLength(u16 val) +{ + gPokemonCrySong.unkCmd0CParam = val; +} + +void SetPokemonCryRelease(u8 val) +{ + gPokemonCrySong.releaseValue = val; +} + +void SetPokemonCryProgress(u32 val) +{ + gPokemonCrySong.unkCmd0DParam = val; +} + +int IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo) +{ + struct MusicPlayerTrack *track = mplayInfo->tracks; + + if (track->chan && track->chan->track == track) + return 1; + else + return 0; +} + +void SetPokemonCryChorus(s8 val) +{ + if (val) + { + gPokemonCrySong.trackCount = 2; + gPokemonCrySong.tuneValue2 = (val + gPokemonCrySong.tuneValue) & 0x7F; + } + else + { + gPokemonCrySong.trackCount = 1; + } +} + +void SetPokemonCryStereo(u32 val) +{ + struct SoundInfo *soundInfo = SOUND_INFO_PTR; + + if (val) + { + REG_SOUNDCNT_H = SOUND_B_TIMER_0 | SOUND_B_LEFT_OUTPUT + | SOUND_A_TIMER_0 | SOUND_A_RIGHT_OUTPUT + | SOUND_ALL_MIX_FULL; + soundInfo->mode &= ~1; + } + else + { + REG_SOUNDCNT_H = SOUND_B_TIMER_0 | SOUND_B_LEFT_OUTPUT | SOUND_B_RIGHT_OUTPUT + | SOUND_A_TIMER_0 | SOUND_A_LEFT_OUTPUT | SOUND_A_RIGHT_OUTPUT + | SOUND_B_MIX_HALF | SOUND_A_MIX_HALF | SOUND_CGB_MIX_FULL; + soundInfo->mode |= 1; + } +} + +void SetPokemonCryPriority(u8 val) +{ + gPokemonCrySong.priority = val; +} diff --git a/src/m4a_2.c b/src/m4a_2.c deleted file mode 100644 index 0625f05d1..000000000 --- a/src/m4a_2.c +++ /dev/null @@ -1,912 +0,0 @@ -#include "gba/m4a_internal.h" - -#define BSS_CODE __attribute__((section(".bss.code"))) - -BSS_CODE ALIGNED(4) char SoundMainRAM_Buffer[0x800] = {0}; - -struct SoundInfo gSoundInfo; -struct PokemonCrySong gPokemonCrySongs[MAX_POKEMON_CRIES]; -struct MusicPlayerInfo gPokemonCryMusicPlayers[MAX_POKEMON_CRIES]; -void *gMPlayJumpTable[36]; -struct CgbChannel gCgbChans[4]; -struct MusicPlayerTrack gPokemonCryTracks[MAX_POKEMON_CRIES * 2]; -struct PokemonCrySong gPokemonCrySong; -struct MusicPlayerInfo gMPlayInfo_BGM; -struct MusicPlayerInfo gMPlayInfo_SE1; -struct MusicPlayerInfo gMPlayInfo_SE2; -struct MusicPlayerInfo gMPlayInfo_SE3; -u8 gMPlayMemAccArea[0x10]; - -u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust) -{ - u32 val1; - u32 val2; - u32 fineAdjustShifted = fineAdjust << 24; - - if (key > 178) - { - key = 178; - fineAdjustShifted = 255 << 24; - } - - val1 = gScaleTable[key]; - val1 = gFreqTable[val1 & 0xF] >> (val1 >> 4); - - val2 = gScaleTable[key + 1]; - val2 = gFreqTable[val2 & 0xF] >> (val2 >> 4); - - return umul3232H32(wav->freq, val1 + umul3232H32(val2 - val1, fineAdjustShifted)); -} - -void UnusedDummyFunc() -{ -} - -void MPlayContinue(struct MusicPlayerInfo *mplayInfo) -{ - if (mplayInfo->ident == ID_NUMBER) - { - mplayInfo->ident++; - mplayInfo->status &= ~MUSICPLAYER_STATUS_PAUSE; - mplayInfo->ident = ID_NUMBER; - } -} - -void MPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed) -{ - if (mplayInfo->ident == ID_NUMBER) - { - mplayInfo->ident++; - mplayInfo->fadeOC = speed; - mplayInfo->fadeOI = speed; - mplayInfo->fadeOV = (64 << FADE_VOL_SHIFT); - mplayInfo->ident = ID_NUMBER; - } -} - -void m4aSoundInit(void) -{ - s32 i; - - CpuCopy32((void *)((s32)SoundMainRAM & ~1), SoundMainRAM_Buffer, sizeof(SoundMainRAM_Buffer)); - - SoundInit(&gSoundInfo); - MPlayExtender(gCgbChans); - m4aSoundMode(SOUND_MODE_DA_BIT_8 - | SOUND_MODE_FREQ_13379 - | (12 << SOUND_MODE_MASVOL_SHIFT) - | (5 << SOUND_MODE_MAXCHN_SHIFT)); - - for (i = 0; i < NUM_MUSIC_PLAYERS; i++) - { - struct MusicPlayerInfo *mplayInfo = gMPlayTable[i].info; - MPlayOpen(mplayInfo, gMPlayTable[i].track, gMPlayTable[i].unk_8); - mplayInfo->unk_B = gMPlayTable[i].unk_A; - mplayInfo->memAccArea = gMPlayMemAccArea; - } - - memcpy(&gPokemonCrySong, &gPokemonCrySongTemplate, sizeof(struct PokemonCrySong)); - - for (i = 0; i < MAX_POKEMON_CRIES; i++) - { - struct MusicPlayerInfo *mplayInfo = &gPokemonCryMusicPlayers[i]; - struct MusicPlayerTrack *track = &gPokemonCryTracks[i * 2]; - MPlayOpen(mplayInfo, track, 2); - track->chan = 0; - } -} - -void m4aSoundMain(void) -{ - SoundMain(); -} - -void m4aSongNumStart(u16 n) -{ - const struct MusicPlayer *mplayTable = gMPlayTable; - const struct Song *songTable = gSongTable; - const struct Song *song = &songTable[n]; - const struct MusicPlayer *mplay = &mplayTable[song->ms]; - - MPlayStart(mplay->info, song->header); -} - -void m4aSongNumStartOrChange(u16 n) -{ - const struct MusicPlayer *mplayTable = gMPlayTable; - const struct Song *songTable = gSongTable; - const struct Song *song = &songTable[n]; - const struct MusicPlayer *mplay = &mplayTable[song->ms]; - - if (mplay->info->songHeader != song->header) - { - MPlayStart(mplay->info, song->header); - } - else - { - if ((mplay->info->status & MUSICPLAYER_STATUS_TRACK) == 0 - || (mplay->info->status & MUSICPLAYER_STATUS_PAUSE)) - { - MPlayStart(mplay->info, song->header); - } - } -} - -void m4aSongNumStartOrContinue(u16 n) -{ - const struct MusicPlayer *mplayTable = gMPlayTable; - const struct Song *songTable = gSongTable; - const struct Song *song = &songTable[n]; - const struct MusicPlayer *mplay = &mplayTable[song->ms]; - - if (mplay->info->songHeader != song->header) - MPlayStart(mplay->info, song->header); - else if ((mplay->info->status & MUSICPLAYER_STATUS_TRACK) == 0) - MPlayStart(mplay->info, song->header); - else if (mplay->info->status & MUSICPLAYER_STATUS_PAUSE) - MPlayContinue(mplay->info); -} - -void m4aSongNumStop(u16 n) -{ - const struct MusicPlayer *mplayTable = gMPlayTable; - const struct Song *songTable = gSongTable; - const struct Song *song = &songTable[n]; - const struct MusicPlayer *mplay = &mplayTable[song->ms]; - - if (mplay->info->songHeader == song->header) - m4aMPlayStop(mplay->info); -} - -void m4aSongNumContinue(u16 n) -{ - const struct MusicPlayer *mplayTable = gMPlayTable; - const struct Song *songTable = gSongTable; - const struct Song *song = &songTable[n]; - const struct MusicPlayer *mplay = &mplayTable[song->ms]; - - if (mplay->info->songHeader == song->header) - MPlayContinue(mplay->info); -} - -void m4aMPlayAllStop(void) -{ - s32 i; - - for (i = 0; i < NUM_MUSIC_PLAYERS; i++) - m4aMPlayStop(gMPlayTable[i].info); - - for (i = 0; i < MAX_POKEMON_CRIES; i++) - m4aMPlayStop(&gPokemonCryMusicPlayers[i]); -} - -void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo) -{ - MPlayContinue(mplayInfo); -} - -void m4aMPlayAllContinue(void) -{ - s32 i; - - for (i = 0; i < NUM_MUSIC_PLAYERS; i++) - MPlayContinue(gMPlayTable[i].info); - - for (i = 0; i < MAX_POKEMON_CRIES; i++) - MPlayContinue(&gPokemonCryMusicPlayers[i]); -} - -void m4aMPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed) -{ - MPlayFadeOut(mplayInfo, speed); -} - -void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed) -{ - if (mplayInfo->ident == ID_NUMBER) - { - mplayInfo->ident++; - mplayInfo->fadeOC = speed; - mplayInfo->fadeOI = speed; - mplayInfo->fadeOV = (64 << FADE_VOL_SHIFT) | TEMPORARY_FADE; - mplayInfo->ident = ID_NUMBER; - } -} - -void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed) -{ - if (mplayInfo->ident == ID_NUMBER) - { - mplayInfo->ident++; - mplayInfo->fadeOC = speed; - mplayInfo->fadeOI = speed; - mplayInfo->fadeOV = (0 << FADE_VOL_SHIFT) | FADE_IN; - mplayInfo->status &= ~MUSICPLAYER_STATUS_PAUSE; - mplayInfo->ident = ID_NUMBER; - } -} - -void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo) -{ - s32 trackCount = mplayInfo->trackCount; - struct MusicPlayerTrack *track = mplayInfo->tracks; - - while (trackCount > 0) - { - if (track->flags & MPT_FLG_EXIST) - { - if (track->flags & MPT_FLG_START) - { - Clear64byte(track); - track->flags = MPT_FLG_EXIST; - track->bendRange = 2; - track->volX = 64; - track->lfoSpeed = 22; - track->tone.type = 1; - } - } - - trackCount--; - track++; - } -} - -void MPlayExtender(struct CgbChannel *cgbChans) -{ - struct SoundInfo *soundInfo; - u32 ident; - - REG_SOUNDCNT_X = SOUND_MASTER_ENABLE - | SOUND_4_ON - | SOUND_3_ON - | SOUND_2_ON - | SOUND_1_ON; - REG_SOUNDCNT_L = 0; // set master volume to zero - REG_NR12 = 0x8; - REG_NR22 = 0x8; - REG_NR42 = 0x8; - REG_NR14 = 0x80; - REG_NR24 = 0x80; - REG_NR44 = 0x80; - REG_NR30 = 0; - REG_NR50 = 0x77; - - soundInfo = SOUND_INFO_PTR; - - ident = soundInfo->ident; - - if (ident != ID_NUMBER) - return; - - soundInfo->ident++; - - gMPlayJumpTable[8] = ply_memacc; - gMPlayJumpTable[17] = ply_lfos; - gMPlayJumpTable[19] = ply_mod; - gMPlayJumpTable[28] = ply_xcmd; - gMPlayJumpTable[29] = ply_endtie; - gMPlayJumpTable[30] = SampleFreqSet; - gMPlayJumpTable[31] = TrackStop; - gMPlayJumpTable[32] = FadeOutBody; - gMPlayJumpTable[33] = TrkVolPitSet; - - soundInfo->cgbChans = (struct CgbChannel *)cgbChans; - soundInfo->CgbSound = CgbSound; - soundInfo->CgbOscOff = CgbOscOff; - soundInfo->MidiKeyToCgbFreq = MidiKeyToCgbFreq; - soundInfo->maxLines = MAX_LINES; - - CpuFill32(0, cgbChans, sizeof(struct CgbChannel) * 4); - - cgbChans[0].ty = 1; - cgbChans[0].panMask = 0x11; - cgbChans[1].ty = 2; - cgbChans[1].panMask = 0x22; - cgbChans[2].ty = 3; - cgbChans[2].panMask = 0x44; - cgbChans[3].ty = 4; - cgbChans[3].panMask = 0x88; - - soundInfo->ident = ident; -} - -void MusicPlayerJumpTableCopy(void) -{ - asm("swi 0x2A"); -} - -void ClearChain(void *x) -{ - void (*func)(void *) = *(&gMPlayJumpTable[34]); - func(x); -} - -void Clear64byte(void *x) -{ - void (*func)(void *) = *(&gMPlayJumpTable[35]); - func(x); -} - -void SoundInit(struct SoundInfo *soundInfo) -{ - soundInfo->ident = 0; - - if (REG_DMA1CNT & (DMA_REPEAT << 16)) - REG_DMA1CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4; - - if (REG_DMA2CNT & (DMA_REPEAT << 16)) - REG_DMA2CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4; - - REG_DMA1CNT_H = DMA_32BIT; - REG_DMA2CNT_H = DMA_32BIT; - REG_SOUNDCNT_X = SOUND_MASTER_ENABLE - | SOUND_4_ON - | SOUND_3_ON - | SOUND_2_ON - | SOUND_1_ON; - REG_SOUNDCNT_H = SOUND_B_FIFO_RESET | SOUND_B_TIMER_0 | SOUND_B_LEFT_OUTPUT - | SOUND_A_FIFO_RESET | SOUND_A_TIMER_0 | SOUND_A_RIGHT_OUTPUT - | SOUND_ALL_MIX_FULL; - REG_SOUNDBIAS_H = (REG_SOUNDBIAS_H & 0x3F) | 0x40; - - REG_DMA1SAD = (s32)soundInfo->pcmBuffer; - REG_DMA1DAD = (s32)®_FIFO_A; - REG_DMA2SAD = (s32)soundInfo->pcmBuffer + PCM_DMA_BUF_SIZE; - REG_DMA2DAD = (s32)®_FIFO_B; - - SOUND_INFO_PTR = soundInfo; - CpuFill32(0, soundInfo, sizeof(struct SoundInfo)); - - soundInfo->maxChans = 8; - soundInfo->masterVolume = 15; - soundInfo->plynote = (u32)ply_note; - soundInfo->CgbSound = DummyFunc; - soundInfo->CgbOscOff = (void (*)(u8))DummyFunc; - soundInfo->MidiKeyToCgbFreq = (u32 (*)(u8, u8, u8))DummyFunc; - soundInfo->ExtVolPit = (u32)DummyFunc; - - MPlayJumpTableCopy(gMPlayJumpTable); - - soundInfo->MPlayJumpTable = (u32)gMPlayJumpTable; - - SampleFreqSet(SOUND_MODE_FREQ_13379); - - soundInfo->ident = ID_NUMBER; -} - -void SampleFreqSet(u32 freq) -{ - struct SoundInfo *soundInfo = SOUND_INFO_PTR; - - freq = (freq & 0xF0000) >> 16; - soundInfo->freq = freq; - soundInfo->pcmSamplesPerVBlank = gPcmSamplesPerVBlankTable[freq - 1]; - soundInfo->pcmDmaPeriod = PCM_DMA_BUF_SIZE / soundInfo->pcmSamplesPerVBlank; - - // LCD refresh rate 59.7275Hz - soundInfo->pcmFreq = (597275 * soundInfo->pcmSamplesPerVBlank + 5000) / 10000; - - // CPU frequency 16.78Mhz - soundInfo->divFreq = (16777216 / soundInfo->pcmFreq + 1) >> 1; - - // Turn off timer 0. - REG_TM0CNT_H = 0; - - // cycles per LCD fresh 280896 - REG_TM0CNT_L = -(280896 / soundInfo->pcmSamplesPerVBlank); - - m4aSoundVSyncOn(); - - while (*(vu8 *)REG_ADDR_VCOUNT == 159) - ; - - while (*(vu8 *)REG_ADDR_VCOUNT != 159) - ; - - REG_TM0CNT_H = TIMER_ENABLE | TIMER_1CLK; -} - -void m4aSoundMode(u32 mode) -{ - struct SoundInfo *soundInfo = SOUND_INFO_PTR; - u32 temp; - - if (soundInfo->ident != ID_NUMBER) - return; - - soundInfo->ident++; - - temp = mode & (SOUND_MODE_REVERB_SET | SOUND_MODE_REVERB_VAL); - - if (temp) - soundInfo->reverb = temp & SOUND_MODE_REVERB_VAL; - - temp = mode & SOUND_MODE_MAXCHN; - - if (temp) - { - struct SoundChannel *chan; - - soundInfo->maxChans = temp >> SOUND_MODE_MAXCHN_SHIFT; - - temp = MAX_DIRECTSOUND_CHANNELS; - chan = &soundInfo->chans[0]; - - while (temp != 0) - { - chan->status = 0; - temp--; - chan++; - } - } - - temp = mode & SOUND_MODE_MASVOL; - - if (temp) - soundInfo->masterVolume = temp >> SOUND_MODE_MASVOL_SHIFT; - - temp = mode & SOUND_MODE_DA_BIT; - - if (temp) - { - temp = (temp & 0x300000) >> 14; - REG_SOUNDBIAS_H = (REG_SOUNDBIAS_H & 0x3F) | temp; - } - - temp = mode & SOUND_MODE_FREQ; - - if (temp) - { - m4aSoundVSyncOff(); - SampleFreqSet(temp); - } - - soundInfo->ident = ID_NUMBER; -} - -void SoundClear(void) -{ - struct SoundInfo *soundInfo = SOUND_INFO_PTR; - s32 i; - void *chan; - - if (soundInfo->ident != ID_NUMBER) - return; - - soundInfo->ident++; - - i = MAX_DIRECTSOUND_CHANNELS; - chan = &soundInfo->chans[0]; - - while (i > 0) - { - ((struct SoundChannel *)chan)->status = 0; - i--; - chan = (void *)((s32)chan + sizeof(struct SoundChannel)); - } - - chan = soundInfo->cgbChans; - - if (chan) - { - i = 1; - - while (i <= 4) - { - soundInfo->CgbOscOff(i); - ((struct CgbChannel *)chan)->sf = 0; - i++; - chan = (void *)((s32)chan + sizeof(struct CgbChannel)); - } - } - - soundInfo->ident = ID_NUMBER; -} - -void m4aSoundVSyncOff(void) -{ - struct SoundInfo *soundInfo = SOUND_INFO_PTR; - - if (soundInfo->ident >= ID_NUMBER && soundInfo->ident <= ID_NUMBER + 1) - { - soundInfo->ident += 10; - - if (REG_DMA1CNT & (DMA_REPEAT << 16)) - REG_DMA1CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4; - - if (REG_DMA2CNT & (DMA_REPEAT << 16)) - REG_DMA2CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4; - - REG_DMA1CNT_H = DMA_32BIT; - REG_DMA2CNT_H = DMA_32BIT; - - CpuFill32(0, soundInfo->pcmBuffer, sizeof(soundInfo->pcmBuffer)); - } -} - -void m4aSoundVSyncOn(void) -{ - struct SoundInfo *soundInfo = SOUND_INFO_PTR; - u32 ident = soundInfo->ident; - - if (ident == ID_NUMBER) - return; - - REG_DMA1CNT_H = DMA_ENABLE | DMA_START_SPECIAL | DMA_32BIT | DMA_REPEAT; - REG_DMA2CNT_H = DMA_ENABLE | DMA_START_SPECIAL | DMA_32BIT | DMA_REPEAT; - - soundInfo->pcmDmaCounter = 0; - soundInfo->ident = ident - 10; -} - -void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *tracks, u8 trackCount) -{ - struct SoundInfo *soundInfo; - - if (trackCount == 0) - return; - - if (trackCount > MAX_MUSICPLAYER_TRACKS) - trackCount = MAX_MUSICPLAYER_TRACKS; - - soundInfo = SOUND_INFO_PTR; - - if (soundInfo->ident != ID_NUMBER) - return; - - soundInfo->ident++; - - Clear64byte(mplayInfo); - - mplayInfo->tracks = tracks; - mplayInfo->trackCount = trackCount; - mplayInfo->status = MUSICPLAYER_STATUS_PAUSE; - - while (trackCount != 0) - { - tracks->flags = 0; - trackCount--; - tracks++; - } - - if (soundInfo->func != 0) - { - mplayInfo->func = soundInfo->func; - mplayInfo->intp = soundInfo->intp; - soundInfo->func = 0; - } - - soundInfo->intp = (u32)mplayInfo; - soundInfo->func = (u32)MPlayMain; - soundInfo->ident = ID_NUMBER; - mplayInfo->ident = ID_NUMBER; -} - -void MPlayStart(struct MusicPlayerInfo *mplayInfo, struct SongHeader *songHeader) -{ - s32 i; - u8 unk_B; - struct MusicPlayerTrack *track; - - if (mplayInfo->ident != ID_NUMBER) - return; - - unk_B = mplayInfo->unk_B; - - if (!unk_B - || ((!mplayInfo->songHeader || !(mplayInfo->tracks[0].flags & MPT_FLG_START)) - && ((mplayInfo->status & MUSICPLAYER_STATUS_TRACK) == 0 - || (mplayInfo->status & MUSICPLAYER_STATUS_PAUSE))) - || (mplayInfo->priority <= songHeader->priority)) - { - mplayInfo->ident++; - mplayInfo->status = 0; - mplayInfo->songHeader = songHeader; - mplayInfo->tone = songHeader->tone; - mplayInfo->priority = songHeader->priority; - mplayInfo->clock = 0; - mplayInfo->tempoD = 150; - mplayInfo->tempoI = 150; - mplayInfo->tempoU = 0x100; - mplayInfo->tempoC = 0; - mplayInfo->fadeOI = 0; - - i = 0; - track = mplayInfo->tracks; - - while (i < songHeader->trackCount && i < mplayInfo->trackCount) - { - TrackStop(mplayInfo, track); - track->flags = MPT_FLG_EXIST | MPT_FLG_START; - track->chan = 0; - track->cmdPtr = songHeader->part[i]; - i++; - track++; - } - - while (i < mplayInfo->trackCount) - { - TrackStop(mplayInfo, track); - track->flags = 0; - i++; - track++; - } - - if (songHeader->reverb & 0x80) - m4aSoundMode(songHeader->reverb); - - mplayInfo->ident = ID_NUMBER; - } -} - -void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo) -{ - s32 i; - struct MusicPlayerTrack *track; - - if (mplayInfo->ident != ID_NUMBER) - return; - - mplayInfo->ident++; - mplayInfo->status |= MUSICPLAYER_STATUS_PAUSE; - - i = mplayInfo->trackCount; - track = mplayInfo->tracks; - - while (i > 0) - { - TrackStop(mplayInfo, track); - i--; - track++; - } - - mplayInfo->ident = ID_NUMBER; -} - -void FadeOutBody(struct MusicPlayerInfo *mplayInfo) -{ - s32 i; - struct MusicPlayerTrack *track; - u16 fadeOI = mplayInfo->fadeOI; - register u32 temp asm("r3"); - register u16 mask asm("r2"); - - if (fadeOI == 0) - return; - - mplayInfo->fadeOC--; - - temp = 0xFFFF; - mask = temp; - - if (mplayInfo->fadeOC != 0) - return; - - mplayInfo->fadeOC = fadeOI; - - if (mplayInfo->fadeOV & FADE_IN) - { - mplayInfo->fadeOV += (4 << FADE_VOL_SHIFT); - - if ((u16)(mplayInfo->fadeOV & mask) >= (64 << FADE_VOL_SHIFT)) - { - mplayInfo->fadeOV = (64 << FADE_VOL_SHIFT); - mplayInfo->fadeOI = 0; - } - } - else - { - mplayInfo->fadeOV -= (4 << FADE_VOL_SHIFT); - - if ((s16)(mplayInfo->fadeOV & mask) <= 0) - { - i = mplayInfo->trackCount; - track = mplayInfo->tracks; - - while (i > 0) - { - register u32 fadeOV asm("r7"); - u32 val; - - TrackStop(mplayInfo, track); - - val = TEMPORARY_FADE; - fadeOV = mplayInfo->fadeOV; - val &= fadeOV; - - if (!val) - track->flags = 0; - - i--; - track++; - } - - if (mplayInfo->fadeOV & TEMPORARY_FADE) - mplayInfo->status |= MUSICPLAYER_STATUS_PAUSE; - else - mplayInfo->status = MUSICPLAYER_STATUS_PAUSE; - - mplayInfo->fadeOI = 0; - return; - } - } - - i = mplayInfo->trackCount; - track = mplayInfo->tracks; - - while (i > 0) - { - if (track->flags & MPT_FLG_EXIST) - { - track->volX = (mplayInfo->fadeOV >> FADE_VOL_SHIFT); - track->flags |= MPT_FLG_VOLCHG; - } - - i--; - track++; - } -} - -void TrkVolPitSet(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - if (track->flags & MPT_FLG_VOLSET) - { - s32 x; - s32 y; - - x = (u32)(track->vol * track->volX) >> 5; - - if (track->modT == 1) - x = (u32)(x * (track->modM + 128)) >> 7; - - y = 2 * track->pan + track->panX; - - if (track->modT == 2) - y += track->modM; - - if (y < -128) - y = -128; - else if (y > 127) - y = 127; - - track->volMR = (u32)((y + 128) * x) >> 8; - track->volML = (u32)((127 - y) * x) >> 8; - } - - if (track->flags & MPT_FLG_PITSET) - { - s32 bend = track->bend * track->bendRange; - register s32 x asm("r1") = track->tune; - x += bend; - x *= 4; - x += (track->keyShift << 8); - x += (track->keyShiftX << 8); - x += track->pitX; - - if (track->modT == 0) - x += 16 * track->modM; - - track->keyM = x >> 8; - track->pitM = x; - } - - track->flags &= ~(MPT_FLG_PITSET | MPT_FLG_VOLSET); -} - -u32 MidiKeyToCgbFreq(u8 chanNum, u8 key, u8 fineAdjust) -{ - if (chanNum == 4) - { - if (key <= 20) - { - key = 0; - } - else - { - key -= 21; - if (key > 59) - key = 59; - } - - return gNoiseTable[key]; - } - else - { - s32 val1; - s32 val2; - - if (key <= 35) - { - fineAdjust = 0; - key = 0; - } - else - { - key -= 36; - if (key > 130) - { - key = 130; - fineAdjust = 255; - } - } - - val1 = gCgbScaleTable[key]; - val1 = gCgbFreqTable[val1 & 0xF] >> (val1 >> 4); - - val2 = gCgbScaleTable[key + 1]; - val2 = gCgbFreqTable[val2 & 0xF] >> (val2 >> 4); - - return val1 + ((fineAdjust * (val2 - val1)) >> 8) + 2048; - } -} - -void CgbOscOff(u8 chanNum) -{ - switch (chanNum) - { - case 1: - REG_NR12 = 8; - REG_NR14 = 0x80; - break; - case 2: - REG_NR22 = 8; - REG_NR24 = 0x80; - break; - case 3: - REG_NR30 = 0; - break; - default: - REG_NR42 = 8; - REG_NR44 = 0x80; - } -} - -static inline int CgbPan(struct CgbChannel *chan) -{ - u32 rightVolume = chan->rightVolume; - u32 leftVolume = chan->leftVolume; - - if ((rightVolume = (u8)rightVolume) >= (leftVolume = (u8)leftVolume)) - { - if (rightVolume / 2 >= leftVolume) - { - chan->pan = 0x0F; - return 1; - } - } - else - { - if (leftVolume / 2 >= rightVolume) - { - chan->pan = 0xF0; - return 1; - } - } - - return 0; -} - -void CgbModVol(struct CgbChannel *chan) -{ - struct SoundInfo *soundInfo = SOUND_INFO_PTR; - - if ((soundInfo->mode & 1) || !CgbPan(chan)) - { - chan->pan = 0xFF; - chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4; - } - else - { - // Force chan->rightVolume and chan->leftVolume to be read from memory again, - // even though there is no reason to do so. - // The command line option "-fno-gcse" achieves the same result as this. - asm("" : : : "memory"); - - chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4; - if (chan->eg > 15) - chan->eg = 15; - } - - chan->sg = (chan->eg * chan->su + 15) >> 4; - chan->pan &= chan->panMask; -} diff --git a/src/m4a_4.c b/src/m4a_4.c deleted file mode 100644 index 2e1d140b4..000000000 --- a/src/m4a_4.c +++ /dev/null @@ -1,545 +0,0 @@ -#include "gba/m4a_internal.h" - -void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo) -{ - if (mplayInfo->ident == ID_NUMBER) - { - mplayInfo->ident++; - mplayInfo->tempoU = tempo; - mplayInfo->tempoI = (mplayInfo->tempoD * mplayInfo->tempoU) >> 8; - mplayInfo->ident = ID_NUMBER; - } -} - -void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume) -{ - s32 i; - u32 bit; - struct MusicPlayerTrack *track; - - if (mplayInfo->ident != ID_NUMBER) - return; - - mplayInfo->ident++; - - i = mplayInfo->trackCount; - track = mplayInfo->tracks; - bit = 1; - - while (i > 0) - { - if (trackBits & bit) - { - if (track->flags & MPT_FLG_EXIST) - { - track->volX = volume / 4; - track->flags |= MPT_FLG_VOLCHG; - } - } - - i--; - track++; - bit <<= 1; - } - - mplayInfo->ident = ID_NUMBER; -} - -void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch) -{ - s32 i; - u32 bit; - struct MusicPlayerTrack *track; - - if (mplayInfo->ident != ID_NUMBER) - return; - - mplayInfo->ident++; - - i = mplayInfo->trackCount; - track = mplayInfo->tracks; - bit = 1; - - while (i > 0) - { - if (trackBits & bit) - { - if (track->flags & MPT_FLG_EXIST) - { - track->keyShiftX = (s16)pitch >> 8; - track->pitX = pitch; - track->flags |= MPT_FLG_PITCHG; - } - } - - i--; - track++; - bit <<= 1; - } - - mplayInfo->ident = ID_NUMBER; -} - -void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan) -{ - s32 i; - u32 bit; - struct MusicPlayerTrack *track; - - if (mplayInfo->ident != ID_NUMBER) - return; - - mplayInfo->ident++; - - i = mplayInfo->trackCount; - track = mplayInfo->tracks; - bit = 1; - - while (i > 0) - { - if (trackBits & bit) - { - if (track->flags & MPT_FLG_EXIST) - { - track->panX = pan; - track->flags |= MPT_FLG_VOLCHG; - } - } - - i--; - track++; - bit <<= 1; - } - - mplayInfo->ident = ID_NUMBER; -} - -void ClearModM(struct MusicPlayerTrack *track) -{ - track->lfoSpeedC = 0; - track->modM = 0; - - if (track->modT == 0) - track->flags |= MPT_FLG_PITCHG; - else - track->flags |= MPT_FLG_VOLCHG; -} - -void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth) -{ - s32 i; - u32 bit; - struct MusicPlayerTrack *track; - - if (mplayInfo->ident != ID_NUMBER) - return; - - mplayInfo->ident++; - - i = mplayInfo->trackCount; - track = mplayInfo->tracks; - bit = 1; - - while (i > 0) - { - if (trackBits & bit) - { - if (track->flags & MPT_FLG_EXIST) - { - track->mod = modDepth; - - if (!track->mod) - ClearModM(track); - } - } - - i--; - track++; - bit <<= 1; - } - - mplayInfo->ident = ID_NUMBER; -} - -void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed) -{ - s32 i; - u32 bit; - struct MusicPlayerTrack *track; - - if (mplayInfo->ident != ID_NUMBER) - return; - - mplayInfo->ident++; - - i = mplayInfo->trackCount; - track = mplayInfo->tracks; - bit = 1; - - while (i > 0) - { - if (trackBits & bit) - { - if (track->flags & MPT_FLG_EXIST) - { - track->lfoSpeed = lfoSpeed; - - if (!track->lfoSpeed) - ClearModM(track); - } - } - - i--; - track++; - bit <<= 1; - } - - mplayInfo->ident = ID_NUMBER; -} - -#define MEMACC_COND_JUMP(cond) \ -if (cond) \ - goto cond_true; \ -else \ - goto cond_false; \ - -void ply_memacc(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - u32 op; - u8 *addr; - u8 data; - - op = *track->cmdPtr; - track->cmdPtr++; - - addr = mplayInfo->memAccArea + *track->cmdPtr; - track->cmdPtr++; - - data = *track->cmdPtr; - track->cmdPtr++; - - switch (op) - { - case 0: - *addr = data; - return; - case 1: - *addr += data; - return; - case 2: - *addr -= data; - return; - case 3: - *addr = mplayInfo->memAccArea[data]; - return; - case 4: - *addr += mplayInfo->memAccArea[data]; - return; - case 5: - *addr -= mplayInfo->memAccArea[data]; - return; - case 6: - MEMACC_COND_JUMP(*addr == data) - return; - case 7: - MEMACC_COND_JUMP(*addr != data) - return; - case 8: - MEMACC_COND_JUMP(*addr > data) - return; - case 9: - MEMACC_COND_JUMP(*addr >= data) - return; - case 10: - MEMACC_COND_JUMP(*addr <= data) - return; - case 11: - MEMACC_COND_JUMP(*addr < data) - return; - case 12: - MEMACC_COND_JUMP(*addr == mplayInfo->memAccArea[data]) - return; - case 13: - MEMACC_COND_JUMP(*addr != mplayInfo->memAccArea[data]) - return; - case 14: - MEMACC_COND_JUMP(*addr > mplayInfo->memAccArea[data]) - return; - case 15: - MEMACC_COND_JUMP(*addr >= mplayInfo->memAccArea[data]) - return; - case 16: - MEMACC_COND_JUMP(*addr <= mplayInfo->memAccArea[data]) - return; - case 17: - MEMACC_COND_JUMP(*addr < mplayInfo->memAccArea[data]) - return; - default: - return; - } - -cond_true: - { - void (*func)(struct MusicPlayerInfo *, struct MusicPlayerTrack *) = *(&gMPlayJumpTable[1]); - func(mplayInfo, track); - return; - } - -cond_false: - track->cmdPtr += 4; -} - -void ply_xcmd(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - u32 n = *track->cmdPtr; - track->cmdPtr++; - - gXcmdTable[n](mplayInfo, track); -} - -void ply_xxx(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - void (*func)(struct MusicPlayerInfo *, struct MusicPlayerTrack *) = *(&gMPlayJumpTable[0]); - func(mplayInfo, track); -} - -#define READ_XCMD_BYTE(var, n) \ -{ \ - u32 byte = track->cmdPtr[(n)]; \ - byte <<= n * 8; \ - (var) &= ~(0xFF << (n * 8)); \ - (var) |= byte; \ -} - -void ply_xwave(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - u32 wav; - - READ_XCMD_BYTE(wav, 0) // UB: uninitialized variable - READ_XCMD_BYTE(wav, 1) - READ_XCMD_BYTE(wav, 2) - READ_XCMD_BYTE(wav, 3) - - track->tone.wav = (struct WaveData *)wav; - track->cmdPtr += 4; -} - -void ply_xtype(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - track->tone.type = *track->cmdPtr; - track->cmdPtr++; -} - -void ply_xatta(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - track->tone.attack = *track->cmdPtr; - track->cmdPtr++; -} - -void ply_xdeca(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - track->tone.decay = *track->cmdPtr; - track->cmdPtr++; -} - -void ply_xsust(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - track->tone.sustain = *track->cmdPtr; - track->cmdPtr++; -} - -void ply_xrele(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - track->tone.release = *track->cmdPtr; - track->cmdPtr++; -} - -void ply_xiecv(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - track->echoVolume = *track->cmdPtr; - track->cmdPtr++; -} - -void ply_xiecl(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - track->echoLength = *track->cmdPtr; - track->cmdPtr++; -} - -void ply_xleng(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - track->tone.length = *track->cmdPtr; - track->cmdPtr++; -} - -void ply_xswee(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - track->tone.pan_sweep = *track->cmdPtr; - track->cmdPtr++; -} - -void ply_xcmd_0C(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - u32 unk; - - READ_XCMD_BYTE(unk, 0) // UB: uninitialized variable - READ_XCMD_BYTE(unk, 1) - - if (track->unk_3A < (u16)unk) - { - track->unk_3A++; - track->cmdPtr -= 2; - track->wait = 1; - } - else - { - track->unk_3A = 0; - track->cmdPtr += 2; - } -} - -void ply_xcmd_0D(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track) -{ - u32 unk; - - READ_XCMD_BYTE(unk, 0) // UB: uninitialized variable - READ_XCMD_BYTE(unk, 1) - READ_XCMD_BYTE(unk, 2) - READ_XCMD_BYTE(unk, 3) - - track->unk_3C = unk; - track->cmdPtr += 4; -} - -void DummyFunc(void) -{ -} - -struct MusicPlayerInfo *SetPokemonCryTone(struct ToneData *tone) -{ - u32 maxClock = 0; - s32 maxClockIndex = 0; - s32 i; - struct MusicPlayerInfo *mplayInfo; - - for (i = 0; i < MAX_POKEMON_CRIES; i++) - { - struct MusicPlayerTrack *track = &gPokemonCryTracks[i * 2]; - - if (!track->flags && (!track->chan || track->chan->track != track)) - goto start_song; - - if (maxClock < gPokemonCryMusicPlayers[i].clock) - { - maxClock = gPokemonCryMusicPlayers[i].clock; - maxClockIndex = i; - } - } - - i = maxClockIndex; - -start_song: - mplayInfo = &gPokemonCryMusicPlayers[i]; - mplayInfo->ident++; - -#define CRY ((s32)&gPokemonCrySongs + i * sizeof(struct PokemonCrySong)) -#define CRY_OFS(field) offsetof(struct PokemonCrySong, field) - - memcpy((void *)CRY, &gPokemonCrySong, sizeof(struct PokemonCrySong)); - - *(u32 *)(CRY + CRY_OFS(tone)) = (u32)tone; - *(u32 *)(CRY + CRY_OFS(part)) = CRY + CRY_OFS(part0); - *(u32 *)(CRY + CRY_OFS(part) + 4) = CRY + CRY_OFS(part1); - *(u32 *)(CRY + CRY_OFS(gotoTarget)) = CRY + CRY_OFS(cont); - -#undef CRY_OFS -#undef CRY - - mplayInfo->ident = ID_NUMBER; - - MPlayStart(mplayInfo, (struct SongHeader *)(&gPokemonCrySongs[i])); - - return mplayInfo; -} - -void SetPokemonCryVolume(u8 val) -{ - gPokemonCrySong.volumeValue = val & 0x7F; -} - -void SetPokemonCryPanpot(s8 val) -{ - gPokemonCrySong.panValue = (val + C_V) & 0x7F; -} - -void SetPokemonCryPitch(s16 val) -{ - s16 b = val + 0x80; - u8 a = gPokemonCrySong.tuneValue2 - gPokemonCrySong.tuneValue; - gPokemonCrySong.tieKeyValue = (b >> 8) & 0x7F; - gPokemonCrySong.tuneValue = (b >> 1) & 0x7F; - gPokemonCrySong.tuneValue2 = (a + ((b >> 1) & 0x7F)) & 0x7F; -} - -void SetPokemonCryLength(u16 val) -{ - gPokemonCrySong.unkCmd0CParam = val; -} - -void SetPokemonCryRelease(u8 val) -{ - gPokemonCrySong.releaseValue = val; -} - -void SetPokemonCryProgress(u32 val) -{ - gPokemonCrySong.unkCmd0DParam = val; -} - -int IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo) -{ - struct MusicPlayerTrack *track = mplayInfo->tracks; - - if (track->chan && track->chan->track == track) - return 1; - else - return 0; -} - -void SetPokemonCryChorus(s8 val) -{ - if (val) - { - gPokemonCrySong.trackCount = 2; - gPokemonCrySong.tuneValue2 = (val + gPokemonCrySong.tuneValue) & 0x7F; - } - else - { - gPokemonCrySong.trackCount = 1; - } -} - -void SetPokemonCryStereo(u32 val) -{ - struct SoundInfo *soundInfo = SOUND_INFO_PTR; - - if (val) - { - REG_SOUNDCNT_H = SOUND_B_TIMER_0 | SOUND_B_LEFT_OUTPUT - | SOUND_A_TIMER_0 | SOUND_A_RIGHT_OUTPUT - | SOUND_ALL_MIX_FULL; - soundInfo->mode &= ~1; - } - else - { - REG_SOUNDCNT_H = SOUND_B_TIMER_0 | SOUND_B_LEFT_OUTPUT | SOUND_B_RIGHT_OUTPUT - | SOUND_A_TIMER_0 | SOUND_A_LEFT_OUTPUT | SOUND_A_RIGHT_OUTPUT - | SOUND_B_MIX_HALF | SOUND_A_MIX_HALF | SOUND_CGB_MIX_FULL; - soundInfo->mode |= 1; - } -} - -void SetPokemonCryPriority(u8 val) -{ - gPokemonCrySong.priority = val; -} diff --git a/src/main.c b/src/main.c index 068cc8578..ae9a33e81 100644 --- a/src/main.c +++ b/src/main.c @@ -5,6 +5,7 @@ #include "dma3.h" #include "gba/flash_internal.h" #include "battle.h" +#include "help_system.h" extern u16 GetGpuReg(u8); extern void SetGpuReg(u8, u16); @@ -29,10 +30,9 @@ extern void MapMusicMain(void); extern void EnableInterrupts(u16); extern void sub_800DD28(void); extern u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)); -extern void remove_some_task(void); +extern void ScanlineEffect_Stop(void); extern void sub_80F50F4(void); extern bool32 sub_80F5118(void); -extern bool8 sub_813B870(void); extern struct SoundInfo gSoundInfo; extern u32 gFlashMemoryPresent; @@ -96,13 +96,13 @@ u8 gUnknown_3003D84; static IntrFunc * const sTimerIntrFunc = gIntrTable + 0x7; -extern u16 gTrainerId; +EWRAM_DATA u8 gDecompressionBuffer[0x4000] = {0}; +EWRAM_DATA u16 gTrainerId = 0; + extern bool8 gUnknown_3005ECC; extern bool8 gWirelessCommType; extern bool8 gUnknown_3005E88; -EWRAM_DATA void (**gFlashTimerIntrFunc)(void) = NULL; - static void UpdateLinkAndCallCallbacks(void); static void InitMainCallbacks(void); static void CallCallbacks(void); @@ -116,7 +116,7 @@ void EnableVCountIntrAtLine150(void); void AgbMain() { RegisterRamReset(RESET_ALL); - *(vu16 *)BG_PLTT = 0x7FFF; + *(vu16 *)BG_PLTT = RGB_WHITE; InitGpuRegManager(); REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3; InitKeys(); @@ -206,7 +206,7 @@ static void InitMainCallbacks(void) static void CallCallbacks(void) { - if (!sub_80F5118() && !sub_813B870()) + if (!sub_80F5118() && !RunHelpSystemCallback()) { if (gMain.callback1) gMain.callback1(); @@ -441,7 +441,7 @@ void DoSoftReset(void) { REG_IME = 0; m4aSoundVSyncOff(); - remove_some_task(); + ScanlineEffect_Stop(); DmaStop(1); DmaStop(2); DmaStop(3); diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c new file mode 100644 index 000000000..cdd74a5b9 --- /dev/null +++ b/src/map_obj_lock.c @@ -0,0 +1,116 @@ +#include "global.h" +#include "task.h" +#include "field_player_avatar.h" +#include "field_map_obj.h" +#include "field_map_obj_helpers.h" +#include "script_movement.h" +#include "map_obj_80688E4.h" +#include "event_data.h" +#include "map_obj_lock.h" + +bool8 walkrun_is_standing_still(void) +{ + if (gPlayerAvatar.running1 == 1) + return FALSE; + else + return TRUE; +} + +void sub_8069570(u8 taskId) +{ + if (walkrun_is_standing_still()) + { + sub_805C270(); + DestroyTask(taskId); + } +} + +bool8 sub_8069590(void) +{ + if (FuncIsActiveTask(sub_8069570)) + return FALSE; + else + { + sub_805C780(); + return TRUE; + } +} + +void ScriptFreezeMapObjects(void) +{ + player_bitmagic(); + CreateTask(sub_8069570, 80); +} + +void sub_80695CC(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + + if (task->data[0] == 0 && walkrun_is_standing_still() == TRUE) + { + sub_805C270(); + task->data[0] = 1; + } + + if (task->data[1] == 0 && !gMapObjects[gSelectedEventObject].mapobj_bit_1) + { + FreezeMapObject(&gMapObjects[gSelectedEventObject]); + task->data[1] = 1; + } + + if (task->data[0] && task->data[1]) + DestroyTask(taskId); +} + +bool8 sub_8069648(void) +{ + if (FuncIsActiveTask(sub_80695CC)) + return FALSE; + else + { + sub_805C780(); + return TRUE; + } +} + +void LockSelectedMapObject(void) +{ + u8 taskId; + + FreezeMapObjectsExceptOne(gSelectedEventObject); + taskId = CreateTask(sub_80695CC, 80); + if (!gMapObjects[gSelectedEventObject].mapobj_bit_1) + { + FreezeMapObject(&gMapObjects[gSelectedEventObject]); + gTasks[taskId].data[1] = 1; + } +} + +void sub_80696C0(void) +{ + u8 fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[fieldObjectId]); + sub_80974D8(); + UnfreezeMapObjects(); +} + +void sub_80696F0(void) +{ + u8 fieldObjectId; + if (gMapObjects[gSelectedEventObject].active) + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]); + fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[fieldObjectId]); + sub_80974D8(); + UnfreezeMapObjects(); +} + +void sub_8069740(void) +{ + FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject], gSpecialVar_Facing); +} + +void sub_8069768(void) +{ + FieldObjectClearAnimIfSpecialAnimActive(&gMapObjects[gSelectedEventObject]); +} diff --git a/src/menews_jisan.c b/src/menews_jisan.c index b4fe080bf..0d406e66a 100644 --- a/src/menews_jisan.c +++ b/src/menews_jisan.c @@ -10,76 +10,24 @@ static u32 sub_8146E0C(struct MysteryEventStruct *); static void sub_8146DA0(struct MysteryEventStruct *); static void sub_8146D94(struct MysteryEventStruct *); -#ifdef NONMATCHING -void sub_8146C30(u32 a0) +void GenerateRandomNews(u32 a0) { struct MysteryEventStruct *r5 = sub_8143D94(); r5->unk_0_0 = a0; - asm_comment("The switch logic does not match. Specifically, the \"bhi\" is replaced with a \"bls\" and the comparisons with 1 and 3 are swapped chronologically."); switch (a0) { - case 0: - r5->unk_1 = (Random() % 15) + 16; - break; - case 1: - break; - case 2: - break; - case 3: - r5->unk_1 = (Random() % 15) + 1; - break; + case 0: + break; + case 1: + case 2: + r5->unk_1 = (Random() % 15) + 16; + break; + case 3: + r5->unk_1 = (Random() % 15) + 1; + break; } } -#else -NAKED -void sub_8146C30(u32 a0) -{ - asm_unified("\tpush {r4,r5,lr}\n" - "\tadds r4, r0, 0\n" - "\tbl sub_8143D94\n" - "\tadds r5, r0, 0\n" - "\tmovs r0, 0x3\n" - "\tadds r1, r4, 0\n" - "\tands r1, r0\n" - "\tldrb r2, [r5]\n" - "\tmovs r0, 0x4\n" - "\tnegs r0, r0\n" - "\tands r0, r2\n" - "\torrs r0, r1\n" - "\tstrb r0, [r5]\n" - "\tcmp r4, 0x2\n" - "\tbhi _08146C56\n" - "\tcmp r4, 0x1\n" - "\tbcs _08146C5C\n" - "\tb _08146C80\n" - "_08146C56:\n" - "\tcmp r4, 0x3\n" - "\tbeq _08146C6E\n" - "\tb _08146C80\n" - "_08146C5C:\n" - "\tbl Random\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tmovs r1, 0xF\n" - "\tbl __umodsi3\n" - "\tadds r0, 0x10\n" - "\tb _08146C7E\n" - "_08146C6E:\n" - "\tbl Random\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tmovs r1, 0xF\n" - "\tbl __umodsi3\n" - "\tadds r0, 0x1\n" - "_08146C7E:\n" - "\tstrb r0, [r5, 0x1]\n" - "_08146C80:\n" - "\tpop {r4,r5}\n" - "\tpop {r0}\n" - "\tbx r0"); -} -#endif void sub_8146C88(void) { @@ -111,33 +59,33 @@ u16 sub_8146CE8(void) struct MysteryEventStruct *r4 = sub_8143D94(); u16 r5; - if (!sub_806E2BC() || !sub_8143E1C()) + if (!sub_806E2BC() || !ValidateReceivedWonderNews()) return 0; r5 = sub_8146E0C(r4); switch (r5) { - case 0: - break; - case 1: - *r6 = sub_8146D74(r4); - break; - case 2: - *r6 = sub_8146D74(r4); - break; - case 3: - break; - case 4: - *r6 = sub_8146D74(r4); - sub_8146DA0(r4); - break; - case 5: - *r6 = sub_8146D74(r4); - sub_8146D94(r4); - break; - case 6: - break; + case 0: + break; + case 1: + *r6 = sub_8146D74(r4); + break; + case 2: + *r6 = sub_8146D74(r4); + break; + case 3: + break; + case 4: + *r6 = sub_8146D74(r4); + sub_8146DA0(r4); + break; + case 5: + *r6 = sub_8146D74(r4); + sub_8146D94(r4); + break; + case 6: + break; } return r5; @@ -182,18 +130,18 @@ static u32 sub_8146E0C(struct MysteryEventStruct *a0) r0 = *a0; switch (r0.unk_0_0) { - case 0: - return 3; - case 1: - return 1; - case 2: - return 2; - case 3: - if ((u8)r0.unk_0_2 < 3) - return 4; - return 5; - default: - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c", 383); - return 0; + case 0: + return 3; + case 1: + return 1; + case 2: + return 2; + case 3: + if ((u8)r0.unk_0_2 < 3) + return 4; + return 5; + default: + AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c", 383); + return 0; } } diff --git a/src/menu2.c b/src/menu2.c new file mode 100644 index 000000000..9a1846c7e --- /dev/null +++ b/src/menu2.c @@ -0,0 +1,851 @@ +#include "global.h" +#include "text.h" +#include "gpu_regs.h" +#include "task.h" +#include "wild_encounter.h" +#include "string_util.h" +#include "constants/species.h" + +static void Task_SmoothBlendLayers(u8 taskId); + +static const u8 gUnknown_845FD54[][5] = { + [SPECIES_BULBASAUR - 1] = {0x16, 0x1b, 0x30, 0x16, 0x29}, + [SPECIES_IVYSAUR - 1] = {0x14, 0x1b, 0x30, 0x15, 0x2a}, + [SPECIES_VENUSAUR - 1] = {0x1b, 0x20, 0x20, 0x1b, 0x33}, + [SPECIES_CHARMANDER - 1] = {0x14, 0x0f, 0x38, 0x13, 0x1e}, + [SPECIES_CHARMELEON - 1] = {0x0d, 0x11, 0x30, 0x0f, 0x22}, + [SPECIES_CHARIZARD - 1] = {0x1b, 0x07, 0x28, 0x1a, 0x19}, + [SPECIES_SQUIRTLE - 1] = {0x19, 0x13, 0x30, 0x1a, 0x22}, + [SPECIES_WARTORTLE - 1] = {0x16, 0x13, 0x30, 0x17, 0x21}, + [SPECIES_BLASTOISE - 1] = {0x12, 0x08, 0x28, 0x15, 0x19}, + [SPECIES_CATERPIE - 1] = {0x15, 0x14, 0x30, 0x13, 0x24}, + [SPECIES_METAPOD - 1] = {0x13, 0x1d, 0x30, 0x18, 0x2a}, + [SPECIES_BUTTERFREE - 1] = {0x12, 0x1b, 0x08, 0x12, 0x2a}, + [SPECIES_WEEDLE - 1] = {0x16, 0x1c, 0x30, 0x15, 0x2b}, + [SPECIES_KAKUNA - 1] = {0x19, 0x13, 0x30, 0x1a, 0x24}, + [SPECIES_BEEDRILL - 1] = {0x19, 0x16, 0x08, 0x19, 0x25}, + [SPECIES_PIDGEY - 1] = {0x15, 0x12, 0x30, 0x12, 0x1e}, + [SPECIES_PIDGEOTTO - 1] = {0x24, 0x0e, 0x30, 0x1f, 0x1e}, + [SPECIES_PIDGEOT - 1] = {0x0c, 0x13, 0x08, 0x0a, 0x23}, + [SPECIES_RATTATA - 1] = {0x17, 0x1e, 0x30, 0x18, 0x2d}, + [SPECIES_RATICATE - 1] = {0x12, 0x14, 0x30, 0x10, 0x26}, + [SPECIES_SPEAROW - 1] = {0x15, 0x14, 0x30, 0x15, 0x1f}, + [SPECIES_FEAROW - 1] = {0x0c, 0x27, 0x00, 0x0b, 0x3f}, + [SPECIES_EKANS - 1] = {0x11, 0x0f, 0x30, 0x14, 0x1d}, + [SPECIES_ARBOK - 1] = {0x1b, 0x01, 0x28, 0x1d, 0x10}, + [SPECIES_PIKACHU - 1] = {0x19, 0x13, 0x30, 0x1a, 0x1f}, + [SPECIES_RAICHU - 1] = {0x19, 0x14, 0x28, 0x1c, 0x22}, + [SPECIES_SANDSHREW - 1] = {0x17, 0x16, 0x30, 0x18, 0x25}, + [SPECIES_SANDSLASH - 1] = {0x11, 0x13, 0x28, 0x13, 0x22}, + [SPECIES_NIDORAN_F - 1] = {0x16, 0x15, 0x30, 0x18, 0x21}, + [SPECIES_NIDORINA - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x28}, + [SPECIES_NIDOQUEEN - 1] = {0x10, 0x0b, 0x28, 0x13, 0x1c}, + [SPECIES_NIDORAN_M - 1] = {0x15, 0x22, 0x28, 0x15, 0x31}, + [SPECIES_NIDORINO - 1] = {0x13, 0x1e, 0x28, 0x1b, 0x2d}, + [SPECIES_NIDOKING - 1] = {0x12, 0x15, 0x28, 0x13, 0x27}, + [SPECIES_CLEFAIRY - 1] = {0x19, 0x14, 0x30, 0x1b, 0x24}, + [SPECIES_CLEFABLE - 1] = {0x1c, 0x12, 0x30, 0x1d, 0x21}, + [SPECIES_VULPIX - 1] = {0x10, 0x16, 0x30, 0x0e, 0x25}, + [SPECIES_NINETALES - 1] = {0x28, 0x10, 0x28, 0x27, 0x1e}, + [SPECIES_JIGGLYPUFF - 1] = {0x1d, 0x15, 0x30, 0x1e, 0x25}, + [SPECIES_WIGGLYTUFF - 1] = {0x1a, 0x12, 0x30, 0x1c, 0x22}, + [SPECIES_ZUBAT - 1] = {0x14, 0x1d, 0x08, 0x14, 0x29}, + [SPECIES_GOLBAT - 1] = {0x23, 0x1a, 0x00, 0x21, 0x2e}, + [SPECIES_ODDISH - 1] = {0x1d, 0x20, 0x28, 0x1d, 0x2b}, + [SPECIES_GLOOM - 1] = {0x1c, 0x18, 0x28, 0x1c, 0x27}, + [SPECIES_VILEPLUME - 1] = {0x1c, 0x1e, 0x28, 0x1d, 0x2a}, + [SPECIES_PARAS - 1] = {0x1d, 0x1a, 0x30, 0x1c, 0x27}, + [SPECIES_PARASECT - 1] = {0x1e, 0x1c, 0x28, 0x20, 0x2e}, + [SPECIES_VENONAT - 1] = {0x1b, 0x16, 0x10, 0x1a, 0x29}, + [SPECIES_VENOMOTH - 1] = {0x12, 0x19, 0x08, 0x16, 0x27}, + [SPECIES_DIGLETT - 1] = {0x1e, 0x16, 0x30, 0x1c, 0x23}, + [SPECIES_DUGTRIO - 1] = {0x1a, 0x11, 0x30, 0x1a, 0x1f}, + [SPECIES_MEOWTH - 1] = {0x1c, 0x16, 0x30, 0x1c, 0x23}, + [SPECIES_PERSIAN - 1] = {0x13, 0x13, 0x30, 0x13, 0x21}, + [SPECIES_PSYDUCK - 1] = {0x1c, 0x13, 0x30, 0x17, 0x29}, + [SPECIES_GOLDUCK - 1] = {0x17, 0x12, 0x28, 0x17, 0x22}, + [SPECIES_MANKEY - 1] = {0x1c, 0x15, 0x30, 0x1b, 0x23}, + [SPECIES_PRIMEAPE - 1] = {0x1e, 0x16, 0x30, 0x1a, 0x27}, + [SPECIES_GROWLITHE - 1] = {0x14, 0x17, 0x30, 0x14, 0x24}, + [SPECIES_ARCANINE - 1] = {0x0f, 0x09, 0x28, 0x0c, 0x19}, + [SPECIES_POLIWAG - 1] = {0x15, 0x14, 0x30, 0x13, 0x1f}, + [SPECIES_POLIWHIRL - 1] = {0x1f, 0x10, 0x30, 0x1e, 0x17}, + [SPECIES_POLIWRATH - 1] = {0x22, 0x0c, 0x30, 0x21, 0x18}, + [SPECIES_ABRA - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x21}, + [SPECIES_KADABRA - 1] = {0x1b, 0x12, 0x30, 0x1c, 0x25}, + [SPECIES_ALAKAZAM - 1] = {0x1c, 0x11, 0x28, 0x1d, 0x26}, + [SPECIES_MACHOP - 1] = {0x1b, 0x11, 0x30, 0x1b, 0x1e}, + [SPECIES_MACHOKE - 1] = {0x1d, 0x11, 0x30, 0x1d, 0x1f}, + [SPECIES_MACHAMP - 1] = {0x1a, 0x0d, 0x28, 0x1c, 0x1b}, + [SPECIES_BELLSPROUT - 1] = {0x15, 0x0e, 0x30, 0x0e, 0x1c}, + [SPECIES_WEEPINBELL - 1] = {0x1a, 0x1c, 0x10, 0x15, 0x32}, + [SPECIES_VICTREEBEL - 1] = {0x1e, 0x0f, 0x30, 0x1c, 0x1b}, + [SPECIES_TENTACOOL - 1] = {0x1a, 0x15, 0x30, 0x1e, 0x26}, + [SPECIES_TENTACRUEL - 1] = {0x1b, 0x10, 0x28, 0x1c, 0x26}, + [SPECIES_GEODUDE - 1] = {0x1c, 0x20, 0x28, 0x1d, 0x2d}, + [SPECIES_GRAVELER - 1] = {0x1d, 0x19, 0x28, 0x1e, 0x26}, + [SPECIES_GOLEM - 1] = {0x19, 0x1b, 0x28, 0x1c, 0x27}, + [SPECIES_PONYTA - 1] = {0x0f, 0x11, 0x30, 0x0e, 0x23}, + [SPECIES_RAPIDASH - 1] = {0x2f, 0x0f, 0x28, 0x2b, 0x1e}, + [SPECIES_SLOWPOKE - 1] = {0x14, 0x1f, 0x28, 0x15, 0x2f}, + [SPECIES_SLOWBRO - 1] = {0x0e, 0x0d, 0x28, 0x0c, 0x1f}, + [SPECIES_MAGNEMITE - 1] = {0x20, 0x1b, 0x10, 0x1f, 0x29}, + [SPECIES_MAGNETON - 1] = {0x1f, 0x14, 0x08, 0x1f, 0x22}, + [SPECIES_FARFETCHD - 1] = {0x16, 0x14, 0x30, 0x16, 0x29}, + [SPECIES_DODUO - 1] = {0x11, 0x16, 0x30, 0x0d, 0x2c}, + [SPECIES_DODRIO - 1] = {0x1d, 0x04, 0x28, 0x0e, 0x07}, + [SPECIES_SEEL - 1] = {0x1b, 0x24, 0x20, 0x17, 0x35}, + [SPECIES_DEWGONG - 1] = {0x12, 0x0a, 0x30, 0x0e, 0x1a}, + [SPECIES_GRIMER - 1] = {0x1f, 0x10, 0x30, 0x1d, 0x25}, + [SPECIES_MUK - 1] = {0x17, 0x0f, 0x30, 0x19, 0x22}, + [SPECIES_SHELLDER - 1] = {0x1a, 0x18, 0x30, 0x17, 0x29}, + [SPECIES_CLOYSTER - 1] = {0x19, 0x1e, 0x28, 0x1d, 0x2c}, + [SPECIES_GASTLY - 1] = {0x1a, 0x1f, 0x08, 0x19, 0x30}, + [SPECIES_HAUNTER - 1] = {0x20, 0x14, 0x08, 0x1d, 0x26}, + [SPECIES_GENGAR - 1] = {0x1a, 0x16, 0x30, 0x19, 0x28}, + [SPECIES_ONIX - 1] = {0x1f, 0x24, 0x20, 0x28, 0x36}, + [SPECIES_DROWZEE - 1] = {0x1a, 0x0e, 0x30, 0x1a, 0x1e}, + [SPECIES_HYPNO - 1] = {0x1c, 0x12, 0x30, 0x19, 0x24}, + [SPECIES_KRABBY - 1] = {0x1d, 0x1d, 0x30, 0x1a, 0x2b}, + [SPECIES_KINGLER - 1] = {0x1e, 0x1f, 0x28, 0x1c, 0x30}, + [SPECIES_VOLTORB - 1] = {0x1c, 0x1b, 0x30, 0x1b, 0x2b}, + [SPECIES_ELECTRODE - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x2e}, + [SPECIES_EXEGGCUTE - 1] = {0x21, 0x17, 0x30, 0x20, 0x24}, + [SPECIES_EXEGGUTOR - 1] = {0x1c, 0x17, 0x28, 0x1b, 0x25}, + [SPECIES_CUBONE - 1] = {0x1b, 0x12, 0x30, 0x1b, 0x22}, + [SPECIES_MAROWAK - 1] = {0x14, 0x0f, 0x30, 0x11, 0x23}, + [SPECIES_HITMONLEE - 1] = {0x2e, 0x11, 0x30, 0x28, 0x22}, + [SPECIES_HITMONCHAN - 1] = {0x22, 0x0e, 0x30, 0x1e, 0x1d}, + [SPECIES_LICKITUNG - 1] = {0x14, 0x11, 0x30, 0x14, 0x24}, + [SPECIES_KOFFING - 1] = {0x1e, 0x14, 0x10, 0x1d, 0x20}, + [SPECIES_WEEZING - 1] = {0x11, 0x0d, 0x10, 0x0f, 0x1c}, + [SPECIES_RHYHORN - 1] = {0x0e, 0x23, 0x20, 0x14, 0x33}, + [SPECIES_RHYDON - 1] = {0x0d, 0x12, 0x28, 0x17, 0x22}, + [SPECIES_CHANSEY - 1] = {0x1a, 0x0d, 0x30, 0x1a, 0x1a}, + [SPECIES_TANGELA - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x29}, + [SPECIES_KANGASKHAN - 1] = {0x1b, 0x06, 0x28, 0x1c, 0x14}, + [SPECIES_HORSEA - 1] = {0x1c, 0x14, 0x30, 0x16, 0x23}, + [SPECIES_SEADRA - 1] = {0x10, 0x17, 0x30, 0x09, 0x2a}, + [SPECIES_GOLDEEN - 1] = {0x16, 0x23, 0x20, 0x15, 0x34}, + [SPECIES_SEAKING - 1] = {0x16, 0x0f, 0x30, 0x10, 0x18}, + [SPECIES_STARYU - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x26}, + [SPECIES_STARMIE - 1] = {0x1d, 0x13, 0x30, 0x1b, 0x20}, + [SPECIES_MR_MIME - 1] = {0x24, 0x11, 0x30, 0x25, 0x1e}, + [SPECIES_SCYTHER - 1] = {0x10, 0x19, 0x28, 0x12, 0x27}, + [SPECIES_JYNX - 1] = {0x1b, 0x0f, 0x30, 0x19, 0x1c}, + [SPECIES_ELECTABUZZ - 1] = {0x14, 0x11, 0x30, 0x17, 0x20}, + [SPECIES_MAGMAR - 1] = {0x10, 0x0e, 0x30, 0x0b, 0x19}, + [SPECIES_PINSIR - 1] = {0x1d, 0x1c, 0x28, 0x20, 0x2b}, + [SPECIES_TAUROS - 1] = {0x11, 0x1d, 0x28, 0x13, 0x2e}, + [SPECIES_MAGIKARP - 1] = {0x16, 0x15, 0x30, 0x13, 0x23}, + [SPECIES_GYARADOS - 1] = {0x0b, 0x18, 0x28, 0x16, 0x29}, + [SPECIES_LAPRAS - 1] = {0x16, 0x08, 0x28, 0x15, 0x16}, + [SPECIES_DITTO - 1] = {0x24, 0x12, 0x30, 0x1f, 0x20}, + [SPECIES_EEVEE - 1] = {0x16, 0x16, 0x30, 0x16, 0x23}, + [SPECIES_VAPOREON - 1] = {0x18, 0x23, 0x28, 0x18, 0x30}, + [SPECIES_JOLTEON - 1] = {0x14, 0x1b, 0x30, 0x16, 0x28}, + [SPECIES_FLAREON - 1] = {0x16, 0x17, 0x30, 0x14, 0x25}, + [SPECIES_PORYGON - 1] = {0x18, 0x12, 0x30, 0x10, 0x23}, + [SPECIES_OMANYTE - 1] = {0x1d, 0x1d, 0x30, 0x1c, 0x2b}, + [SPECIES_OMASTAR - 1] = {0x16, 0x1a, 0x30, 0x19, 0x2d}, + [SPECIES_KABUTO - 1] = {0x1b, 0x16, 0x30, 0x1a, 0x27}, + [SPECIES_KABUTOPS - 1] = {0x15, 0x11, 0x30, 0x15, 0x1f}, + [SPECIES_AERODACTYL - 1] = {0x13, 0x1d, 0x00, 0x14, 0x30}, + [SPECIES_SNORLAX - 1] = {0x35, 0x09, 0x30, 0x2e, 0x14}, + [SPECIES_ARTICUNO - 1] = {0x18, 0x0b, 0x18, 0x17, 0x17}, + [SPECIES_ZAPDOS - 1] = {0x0e, 0x0e, 0x10, 0x04, 0x28}, + [SPECIES_MOLTRES - 1] = {0x0b, 0x2a, 0x08, 0x0b, 0x38}, + [SPECIES_DRATINI - 1] = {0x0d, 0x12, 0x30, 0x0b, 0x21}, + [SPECIES_DRAGONAIR - 1] = {0x18, 0x0e, 0x30, 0x13, 0x1c}, + [SPECIES_DRAGONITE - 1] = {0x1b, 0x07, 0x18, 0x19, 0x17}, + [SPECIES_MEWTWO - 1] = {0x2b, 0x09, 0x28, 0x2c, 0x18}, + [SPECIES_MEW - 1] = {0x19, 0x14, 0x10, 0x1f, 0x21}, + [SPECIES_CHIKORITA - 1] = {0x1b, 0x17, 0x30, 0x1b, 0x24}, + [SPECIES_BAYLEEF - 1] = {0x1d, 0x10, 0x30, 0x20, 0x1d}, + [SPECIES_MEGANIUM - 1] = {0x05, 0x0d, 0x28, 0x0d, 0x1b}, + [SPECIES_CYNDAQUIL - 1] = {0x11, 0x1b, 0x30, 0x14, 0x27}, + [SPECIES_QUILAVA - 1] = {0x25, 0x18, 0x30, 0x27, 0x26}, + [SPECIES_TYPHLOSION - 1] = {0x09, 0x10, 0x28, 0x10, 0x1c}, + [SPECIES_TOTODILE - 1] = {0x16, 0x10, 0x30, 0x19, 0x20}, + [SPECIES_CROCONAW - 1] = {0x16, 0x10, 0x30, 0x18, 0x21}, + [SPECIES_FERALIGATR - 1] = {0x0e, 0x0a, 0x28, 0x08, 0x1a}, + [SPECIES_SENTRET - 1] = {0x1e, 0x0a, 0x30, 0x1d, 0x15}, + [SPECIES_FURRET - 1] = {0x21, 0x0e, 0x30, 0x21, 0x19}, + [SPECIES_HOOTHOOT - 1] = {0x1d, 0x15, 0x30, 0x1c, 0x24}, + [SPECIES_NOCTOWL - 1] = {0x19, 0x0e, 0x30, 0x18, 0x1c}, + [SPECIES_LEDYBA - 1] = {0x1b, 0x15, 0x30, 0x1c, 0x24}, + [SPECIES_LEDIAN - 1] = {0x18, 0x12, 0x10, 0x1c, 0x21}, + [SPECIES_SPINARAK - 1] = {0x20, 0x20, 0x28, 0x20, 0x2d}, + [SPECIES_ARIADOS - 1] = {0x17, 0x23, 0x28, 0x15, 0x30}, + [SPECIES_CROBAT - 1] = {0x22, 0x1e, 0x08, 0x23, 0x2b}, + [SPECIES_CHINCHOU - 1] = {0x1f, 0x1d, 0x30, 0x1f, 0x29}, + [SPECIES_LANTURN - 1] = {0x10, 0x23, 0x28, 0x19, 0x33}, + [SPECIES_PICHU - 1] = {0x1e, 0x17, 0x30, 0x1e, 0x24}, + [SPECIES_CLEFFA - 1] = {0x1c, 0x18, 0x30, 0x1e, 0x26}, + [SPECIES_IGGLYBUFF - 1] = {0x1f, 0x19, 0x30, 0x1f, 0x24}, + [SPECIES_TOGEPI - 1] = {0x21, 0x15, 0x30, 0x1f, 0x20}, + [SPECIES_TOGETIC - 1] = {0x1b, 0x10, 0x30, 0x1c, 0x1c}, + [SPECIES_NATU - 1] = {0x1c, 0x17, 0x30, 0x15, 0x21}, + [SPECIES_XATU - 1] = {0x1b, 0x08, 0x30, 0x19, 0x14}, + [SPECIES_MAREEP - 1] = {0x16, 0x15, 0x30, 0x15, 0x24}, + [SPECIES_FLAAFFY - 1] = {0x19, 0x12, 0x30, 0x18, 0x21}, + [SPECIES_AMPHAROS - 1] = {0x0f, 0x0a, 0x30, 0x10, 0x1b}, + [SPECIES_BELLOSSOM - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x20}, + [SPECIES_MARILL - 1] = {0x1d, 0x15, 0x30, 0x1d, 0x22}, + [SPECIES_AZUMARILL - 1] = {0x1a, 0x12, 0x30, 0x17, 0x1f}, + [SPECIES_SUDOWOODO - 1] = {0x20, 0x10, 0x30, 0x20, 0x1f}, + [SPECIES_POLITOED - 1] = {0x1d, 0x0f, 0x30, 0x1e, 0x20}, + [SPECIES_HOPPIP - 1] = {0x23, 0x25, 0x08, 0x25, 0x33}, + [SPECIES_SKIPLOOM - 1] = {0x1e, 0x18, 0x08, 0x1c, 0x27}, + [SPECIES_JUMPLUFF - 1] = {0x1d, 0x21, 0x08, 0x20, 0x2f}, + [SPECIES_AIPOM - 1] = {0x1e, 0x29, 0x18, 0x1e, 0x35}, + [SPECIES_SUNKERN - 1] = {0x1f, 0x20, 0x08, 0x24, 0x2e}, + [SPECIES_SUNFLORA - 1] = {0x1c, 0x0c, 0x30, 0x1b, 0x19}, + [SPECIES_YANMA - 1] = {0x1b, 0x28, 0x08, 0x16, 0x35}, + [SPECIES_WOOPER - 1] = {0x1d, 0x13, 0x30, 0x1f, 0x21}, + [SPECIES_QUAGSIRE - 1] = {0x15, 0x09, 0x30, 0x12, 0x18}, + [SPECIES_ESPEON - 1] = {0x11, 0x1b, 0x30, 0x11, 0x29}, + [SPECIES_UMBREON - 1] = {0x23, 0x15, 0x30, 0x23, 0x22}, + [SPECIES_MURKROW - 1] = {0x24, 0x13, 0x30, 0x20, 0x22}, + [SPECIES_SLOWKING - 1] = {0x1e, 0x13, 0x28, 0x1d, 0x25}, + [SPECIES_MISDREAVUS - 1] = {0x28, 0x21, 0x08, 0x26, 0x2e}, + [SPECIES_UNOWN - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21}, + [SPECIES_WOBBUFFET - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x1a}, + [SPECIES_GIRAFARIG - 1] = {0x0b, 0x0d, 0x28, 0x11, 0x1d}, + [SPECIES_PINECO - 1] = {0x1d, 0x12, 0x10, 0x19, 0x25}, + [SPECIES_FORRETRESS - 1] = {0x19, 0x17, 0x08, 0x1e, 0x26}, + [SPECIES_DUNSPARCE - 1] = {0x10, 0x1b, 0x30, 0x0c, 0x2d}, + [SPECIES_GLIGAR - 1] = {0x1e, 0x13, 0x08, 0x1d, 0x23}, + [SPECIES_STEELIX - 1] = {0x0c, 0x0d, 0x28, 0x0d, 0x1c}, + [SPECIES_SNUBBULL - 1] = {0x1b, 0x15, 0x30, 0x1a, 0x23}, + [SPECIES_GRANBULL - 1] = {0x1c, 0x09, 0x30, 0x19, 0x18}, + [SPECIES_QWILFISH - 1] = {0x1f, 0x26, 0x20, 0x1d, 0x33}, + [SPECIES_SCIZOR - 1] = {0x15, 0x0f, 0x10, 0x1a, 0x1a}, + [SPECIES_SHUCKLE - 1] = {0x25, 0x0a, 0x30, 0x24, 0x18}, + [SPECIES_HERACROSS - 1] = {0x18, 0x19, 0x28, 0x1a, 0x26}, + [SPECIES_SNEASEL - 1] = {0x1c, 0x13, 0x30, 0x1d, 0x24}, + [SPECIES_TEDDIURSA - 1] = {0x1e, 0x12, 0x30, 0x1b, 0x23}, + [SPECIES_URSARING - 1] = {0x1e, 0x04, 0x28, 0x1d, 0x14}, + [SPECIES_SLUGMA - 1] = {0x20, 0x18, 0x30, 0x20, 0x28}, + [SPECIES_MAGCARGO - 1] = {0x16, 0x11, 0x30, 0x17, 0x23}, + [SPECIES_SWINUB - 1] = {0x1c, 0x18, 0x30, 0x1b, 0x25}, + [SPECIES_PILOSWINE - 1] = {0x18, 0x23, 0x20, 0x18, 0x36}, + [SPECIES_CORSOLA - 1] = {0x19, 0x1d, 0x28, 0x19, 0x2b}, + [SPECIES_REMORAID - 1] = {0x15, 0x1f, 0x28, 0x13, 0x2b}, + [SPECIES_OCTILLERY - 1] = {0x1c, 0x11, 0x30, 0x1a, 0x20}, + [SPECIES_DELIBIRD - 1] = {0x1d, 0x11, 0x30, 0x1b, 0x1f}, + [SPECIES_MANTINE - 1] = {0x16, 0x1e, 0x28, 0x1f, 0x27}, + [SPECIES_SKARMORY - 1] = {0x1e, 0x00, 0x28, 0x13, 0x07}, + [SPECIES_HOUNDOUR - 1] = {0x25, 0x11, 0x30, 0x25, 0x1f}, + [SPECIES_HOUNDOOM - 1] = {0x0d, 0x13, 0x30, 0x0d, 0x24}, + [SPECIES_KINGDRA - 1] = {0x0e, 0x13, 0x28, 0x0a, 0x2c}, + [SPECIES_PHANPY - 1] = {0x1b, 0x11, 0x30, 0x19, 0x24}, + [SPECIES_DONPHAN - 1] = {0x11, 0x15, 0x30, 0x19, 0x2c}, + [SPECIES_PORYGON2 - 1] = {0x18, 0x11, 0x30, 0x11, 0x20}, + [SPECIES_STANTLER - 1] = {0x15, 0x15, 0x28, 0x17, 0x28}, + [SPECIES_SMEARGLE - 1] = {0x18, 0x10, 0x30, 0x1b, 0x25}, + [SPECIES_TYROGUE - 1] = {0x1e, 0x12, 0x30, 0x1f, 0x1f}, + [SPECIES_HITMONTOP - 1] = {0x1a, 0x39, 0x10, 0x1a, 0x2b}, + [SPECIES_SMOOCHUM - 1] = {0x20, 0x18, 0x30, 0x21, 0x26}, + [SPECIES_ELEKID - 1] = {0x1d, 0x14, 0x30, 0x1d, 0x23}, + [SPECIES_MAGBY - 1] = {0x1c, 0x15, 0x30, 0x1a, 0x24}, + [SPECIES_MILTANK - 1] = {0x18, 0x0e, 0x30, 0x18, 0x1e}, + [SPECIES_BLISSEY - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x19}, + [SPECIES_RAIKOU - 1] = {0x29, 0x0c, 0x28, 0x27, 0x1e}, + [SPECIES_ENTEI - 1] = {0x08, 0x09, 0x28, 0x0b, 0x18}, + [SPECIES_SUICUNE - 1] = {0x23, 0x1d, 0x28, 0x26, 0x2c}, + [SPECIES_LARVITAR - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x24}, + [SPECIES_PUPITAR - 1] = {0x1b, 0x19, 0x30, 0x1b, 0x28}, + [SPECIES_TYRANITAR - 1] = {0x06, 0x0b, 0x28, 0x0d, 0x19}, + [SPECIES_LUGIA - 1] = {0x08, 0x2a, 0x08, 0x14, 0x34}, + [SPECIES_HO_OH - 1] = {0x0d, 0x25, 0x08, 0x0e, 0x34}, + [SPECIES_CELEBI - 1] = {0x15, 0x21, 0x08, 0x1a, 0x2b}, + [SPECIES_OLD_UNOWN_B - 1] = {0x1f, 0x12, 0x08, 0x1e, 0x1c}, + [SPECIES_OLD_UNOWN_C - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21}, + [SPECIES_OLD_UNOWN_D - 1] = {0x1c, 0x19, 0x08, 0x1b, 0x23}, + [SPECIES_OLD_UNOWN_E - 1] = {0x21, 0x19, 0x08, 0x20, 0x23}, + [SPECIES_OLD_UNOWN_F - 1] = {0x1b, 0x13, 0x08, 0x1a, 0x1d}, + [SPECIES_OLD_UNOWN_G - 1] = {0x20, 0x16, 0x08, 0x1f, 0x21}, + [SPECIES_OLD_UNOWN_H - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, + [SPECIES_OLD_UNOWN_I - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, + [SPECIES_OLD_UNOWN_J - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20}, + [SPECIES_OLD_UNOWN_K - 1] = {0x1d, 0x1a, 0x08, 0x1c, 0x24}, + [SPECIES_OLD_UNOWN_L - 1] = {0x20, 0x16, 0x08, 0x1f, 0x1f}, + [SPECIES_OLD_UNOWN_M - 1] = {0x20, 0x1c, 0x08, 0x1f, 0x26}, + [SPECIES_OLD_UNOWN_N - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23}, + [SPECIES_OLD_UNOWN_O - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23}, + [SPECIES_OLD_UNOWN_P - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20}, + [SPECIES_OLD_UNOWN_Q - 1] = {0x1d, 0x16, 0x08, 0x1c, 0x20}, + [SPECIES_OLD_UNOWN_R - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f}, + [SPECIES_OLD_UNOWN_S - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, + [SPECIES_OLD_UNOWN_T - 1] = {0x20, 0x1e, 0x08, 0x1f, 0x28}, + [SPECIES_OLD_UNOWN_U - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21}, + [SPECIES_OLD_UNOWN_V - 1] = {0x1e, 0x1e, 0x08, 0x1d, 0x28}, + [SPECIES_OLD_UNOWN_W - 1] = {0x20, 0x1d, 0x08, 0x1f, 0x27}, + [SPECIES_OLD_UNOWN_X - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, + [SPECIES_OLD_UNOWN_Y - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f}, + [SPECIES_OLD_UNOWN_Z - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, + [SPECIES_TREECKO - 1] = {0x1a, 0x0f, 0x30, 0x19, 0x20}, + [SPECIES_GROVYLE - 1] = {0x0d, 0x05, 0x10, 0x05, 0x13}, + [SPECIES_SCEPTILE - 1] = {0x10, 0x04, 0x28, 0x0c, 0x12}, + [SPECIES_TORCHIC - 1] = {0x17, 0x18, 0x30, 0x15, 0x25}, + [SPECIES_COMBUSKEN - 1] = {0x20, 0x12, 0x28, 0x1e, 0x20}, + [SPECIES_BLAZIKEN - 1] = {0x1a, 0x07, 0x28, 0x1d, 0x13}, + [SPECIES_MUDKIP - 1] = {0x1b, 0x1d, 0x28, 0x19, 0x2c}, + [SPECIES_MARSHTOMP - 1] = {0x1d, 0x11, 0x30, 0x1c, 0x20}, + [SPECIES_SWAMPERT - 1] = {0x1b, 0x11, 0x28, 0x1b, 0x23}, + [SPECIES_POOCHYENA - 1] = {0x14, 0x12, 0x30, 0x0f, 0x20}, + [SPECIES_MIGHTYENA - 1] = {0x09, 0x0d, 0x28, 0x09, 0x1c}, + [SPECIES_ZIGZAGOON - 1] = {0x0b, 0x1a, 0x30, 0x09, 0x2b}, + [SPECIES_LINOONE - 1] = {0x0d, 0x28, 0x18, 0x0b, 0x37}, + [SPECIES_WURMPLE - 1] = {0x21, 0x17, 0x30, 0x1f, 0x26}, + [SPECIES_SILCOON - 1] = {0x13, 0x1c, 0x30, 0x11, 0x2a}, + [SPECIES_BEAUTIFLY - 1] = {0x0f, 0x1b, 0x08, 0x0e, 0x28}, + [SPECIES_CASCOON - 1] = {0x14, 0x1d, 0x30, 0x11, 0x2c}, + [SPECIES_DUSTOX - 1] = {0x14, 0x19, 0x08, 0x16, 0x26}, + [SPECIES_LOTAD - 1] = {0x19, 0x25, 0x28, 0x17, 0x32}, + [SPECIES_LOMBRE - 1] = {0x22, 0x10, 0x30, 0x29, 0x1d}, + [SPECIES_LUDICOLO - 1] = {0x1c, 0x0f, 0x28, 0x1b, 0x24}, + [SPECIES_SEEDOT - 1] = {0x1b, 0x17, 0x30, 0x18, 0x28}, + [SPECIES_NUZLEAF - 1] = {0x20, 0x0d, 0x30, 0x1a, 0x1d}, + [SPECIES_SHIFTRY - 1] = {0x32, 0x11, 0x28, 0x2e, 0x23}, + [SPECIES_NINCADA - 1] = {0x18, 0x1a, 0x30, 0x17, 0x28}, + [SPECIES_NINJASK - 1] = {0x17, 0x21, 0x00, 0x17, 0x2f}, + [SPECIES_SHEDINJA - 1] = {0x16, 0x19, 0x08, 0x18, 0x2a}, + [SPECIES_TAILLOW - 1] = {0x17, 0x10, 0x30, 0x14, 0x1e}, + [SPECIES_SWELLOW - 1] = {0x0c, 0x0a, 0x28, 0x05, 0x16}, + [SPECIES_SHROOMISH - 1] = {0x1f, 0x16, 0x30, 0x1d, 0x23}, + [SPECIES_BRELOOM - 1] = {0x25, 0x0c, 0x30, 0x23, 0x19}, + [SPECIES_SPINDA - 1] = {0x21, 0x16, 0x30, 0x1f, 0x27}, + [SPECIES_WINGULL - 1] = {0x1a, 0x16, 0x10, 0x15, 0x26}, + [SPECIES_PELIPPER - 1] = {0x1d, 0x0a, 0x10, 0x09, 0x1b}, + [SPECIES_SURSKIT - 1] = {0x1d, 0x16, 0x30, 0x1c, 0x25}, + [SPECIES_MASQUERAIN - 1] = {0x1a, 0x21, 0x08, 0x14, 0x30}, + [SPECIES_WAILMER - 1] = {0x17, 0x17, 0x30, 0x16, 0x28}, + [SPECIES_WAILORD - 1] = {0x17, 0x03, 0x30, 0x09, 0x13}, + [SPECIES_SKITTY - 1] = {0x24, 0x1a, 0x30, 0x22, 0x2a}, + [SPECIES_DELCATTY - 1] = {0x1e, 0x12, 0x30, 0x1c, 0x21}, + [SPECIES_KECLEON - 1] = {0x19, 0x10, 0x30, 0x13, 0x1e}, + [SPECIES_BALTOY - 1] = {0x1d, 0x15, 0x30, 0x1b, 0x22}, + [SPECIES_CLAYDOL - 1] = {0x1e, 0x0d, 0x28, 0x1d, 0x24}, + [SPECIES_NOSEPASS - 1] = {0x1f, 0x10, 0x30, 0x15, 0x23}, + [SPECIES_TORKOAL - 1] = {0x0e, 0x19, 0x28, 0x0a, 0x27}, + [SPECIES_SABLEYE - 1] = {0x1e, 0x16, 0x30, 0x1d, 0x27}, + [SPECIES_BARBOACH - 1] = {0x17, 0x12, 0x30, 0x15, 0x1e}, + [SPECIES_WHISCASH - 1] = {0x18, 0x20, 0x28, 0x17, 0x31}, + [SPECIES_LUVDISC - 1] = {0x19, 0x0f, 0x30, 0x13, 0x1c}, + [SPECIES_CORPHISH - 1] = {0x1f, 0x14, 0x30, 0x1d, 0x23}, + [SPECIES_CRAWDAUNT - 1] = {0x14, 0x0c, 0x28, 0x18, 0x23}, + [SPECIES_FEEBAS - 1] = {0x18, 0x1e, 0x28, 0x16, 0x2f}, + [SPECIES_MILOTIC - 1] = {0x20, 0x0c, 0x28, 0x1f, 0x1d}, + [SPECIES_CARVANHA - 1] = {0x16, 0x19, 0x30, 0x13, 0x22}, + [SPECIES_SHARPEDO - 1] = {0x19, 0x0c, 0x28, 0x17, 0x27}, + [SPECIES_TRAPINCH - 1] = {0x29, 0x13, 0x30, 0x17, 0x18}, + [SPECIES_VIBRAVA - 1] = {0x10, 0x27, 0x20, 0x0e, 0x34}, + [SPECIES_FLYGON - 1] = {0x22, 0x07, 0x10, 0x21, 0x13}, + [SPECIES_MAKUHITA - 1] = {0x22, 0x13, 0x30, 0x1c, 0x23}, + [SPECIES_HARIYAMA - 1] = {0x24, 0x0f, 0x28, 0x26, 0x1c}, + [SPECIES_ELECTRIKE - 1] = {0x11, 0x18, 0x30, 0x14, 0x27}, + [SPECIES_MANECTRIC - 1] = {0x2f, 0x18, 0x28, 0x2e, 0x29}, + [SPECIES_NUMEL - 1] = {0x10, 0x1a, 0x30, 0x0d, 0x2a}, + [SPECIES_CAMERUPT - 1] = {0x0d, 0x22, 0x28, 0x0e, 0x36}, + [SPECIES_SPHEAL - 1] = {0x1e, 0x0f, 0x30, 0x18, 0x1f}, + [SPECIES_SEALEO - 1] = {0x1c, 0x09, 0x30, 0x1a, 0x18}, + [SPECIES_WALREIN - 1] = {0x19, 0x01, 0x28, 0x10, 0x16}, + [SPECIES_CACNEA - 1] = {0x1f, 0x17, 0x30, 0x1d, 0x29}, + [SPECIES_CACTURNE - 1] = {0x1d, 0x0e, 0x28, 0x1d, 0x1b}, + [SPECIES_SNORUNT - 1] = {0x1e, 0x16, 0x30, 0x1e, 0x26}, + [SPECIES_GLALIE - 1] = {0x1a, 0x1c, 0x08, 0x1a, 0x31}, + [SPECIES_LUNATONE - 1] = {0x1c, 0x16, 0x08, 0x19, 0x2c}, + [SPECIES_SOLROCK - 1] = {0x18, 0x18, 0x10, 0x17, 0x31}, + [SPECIES_AZURILL - 1] = {0x1b, 0x10, 0x30, 0x18, 0x1f}, + [SPECIES_SPOINK - 1] = {0x21, 0x14, 0x30, 0x1b, 0x28}, + [SPECIES_GRUMPIG - 1] = {0x14, 0x10, 0x30, 0x15, 0x20}, + [SPECIES_PLUSLE - 1] = {0x1c, 0x16, 0x08, 0x1d, 0x25}, + [SPECIES_MINUN - 1] = {0x21, 0x16, 0x08, 0x1f, 0x26}, + [SPECIES_MAWILE - 1] = {0x2d, 0x14, 0x30, 0x2f, 0x24}, + [SPECIES_MEDITITE - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x25}, + [SPECIES_MEDICHAM - 1] = {0x21, 0x0f, 0x28, 0x1e, 0x1d}, + [SPECIES_SWABLU - 1] = {0x1b, 0x16, 0x10, 0x17, 0x23}, + [SPECIES_ALTARIA - 1] = {0x1d, 0x0b, 0x10, 0x1a, 0x1a}, + [SPECIES_WYNAUT - 1] = {0x1a, 0x15, 0x30, 0x1b, 0x26}, + [SPECIES_DUSKULL - 1] = {0x10, 0x18, 0x08, 0x14, 0x2e}, + [SPECIES_DUSCLOPS - 1] = {0x1c, 0x0f, 0x30, 0x1a, 0x28}, + [SPECIES_ROSELIA - 1] = {0x1e, 0x11, 0x30, 0x1d, 0x20}, + [SPECIES_SLAKOTH - 1] = {0x19, 0x1e, 0x30, 0x18, 0x2f}, + [SPECIES_VIGOROTH - 1] = {0x10, 0x12, 0x28, 0x14, 0x24}, + [SPECIES_SLAKING - 1] = {0x37, 0x0f, 0x30, 0x29, 0x21}, + [SPECIES_GULPIN - 1] = {0x1b, 0x18, 0x30, 0x17, 0x26}, + [SPECIES_SWALOT - 1] = {0x1f, 0x06, 0x30, 0x15, 0x13}, + [SPECIES_TROPIUS - 1] = {0x18, 0x0a, 0x28, 0x20, 0x18}, + [SPECIES_WHISMUR - 1] = {0x1f, 0x19, 0x30, 0x1d, 0x29}, + [SPECIES_LOUDRED - 1] = {0x1c, 0x12, 0x28, 0x22, 0x27}, + [SPECIES_EXPLOUD - 1] = {0x10, 0x10, 0x28, 0x1a, 0x2a}, + [SPECIES_CLAMPERL - 1] = {0x20, 0x1a, 0x30, 0x1e, 0x26}, + [SPECIES_HUNTAIL - 1] = {0x13, 0x1e, 0x28, 0x15, 0x33}, + [SPECIES_GOREBYSS - 1] = {0x0d, 0x1f, 0x28, 0x03, 0x32}, + [SPECIES_ABSOL - 1] = {0x2a, 0x11, 0x28, 0x2a, 0x22}, + [SPECIES_SHUPPET - 1] = {0x16, 0x19, 0x08, 0x17, 0x27}, + [SPECIES_BANETTE - 1] = {0x1c, 0x14, 0x08, 0x1b, 0x23}, + [SPECIES_SEVIPER - 1] = {0x0e, 0x0d, 0x30, 0x0b, 0x1e}, + [SPECIES_ZANGOOSE - 1] = {0x18, 0x0c, 0x28, 0x15, 0x1a}, + [SPECIES_RELICANTH - 1] = {0x0c, 0x1f, 0x30, 0x09, 0x2d}, + [SPECIES_ARON - 1] = {0x18, 0x1c, 0x30, 0x1a, 0x2c}, + [SPECIES_LAIRON - 1] = {0x0b, 0x21, 0x30, 0x12, 0x2f}, + [SPECIES_AGGRON - 1] = {0x10, 0x0b, 0x28, 0x16, 0x1b}, + [SPECIES_CASTFORM - 1] = {0x1d, 0x18, 0x08, 0x1b, 0x26}, + [SPECIES_VOLBEAT - 1] = {0x25, 0x15, 0x08, 0x21, 0x25}, + [SPECIES_ILLUMISE - 1] = {0x20, 0x12, 0x08, 0x1f, 0x20}, + [SPECIES_LILEEP - 1] = {0x1e, 0x11, 0x30, 0x1f, 0x1e}, + [SPECIES_CRADILY - 1] = {0x12, 0x16, 0x28, 0x15, 0x28}, + [SPECIES_ANORITH - 1] = {0x1c, 0x1e, 0x30, 0x1b, 0x2b}, + [SPECIES_ARMALDO - 1] = {0x15, 0x05, 0x28, 0x14, 0x13}, + [SPECIES_RALTS - 1] = {0x1f, 0x17, 0x30, 0x20, 0x23}, + [SPECIES_KIRLIA - 1] = {0x1c, 0x12, 0x30, 0x1f, 0x1e}, + [SPECIES_GARDEVOIR - 1] = {0x35, 0x07, 0x28, 0x32, 0x14}, + [SPECIES_BAGON - 1] = {0x17, 0x13, 0x30, 0x16, 0x26}, + [SPECIES_SHELGON - 1] = {0x19, 0x1b, 0x30, 0x19, 0x2c}, + [SPECIES_SALAMENCE - 1] = {0x09, 0x11, 0x30, 0x0a, 0x21}, + [SPECIES_BELDUM - 1] = {0x16, 0x19, 0x08, 0x18, 0x23}, + [SPECIES_METANG - 1] = {0x22, 0x0f, 0x10, 0x1f, 0x21}, + [SPECIES_METAGROSS - 1] = {0x24, 0x1b, 0x28, 0x22, 0x2b}, + [SPECIES_REGIROCK - 1] = {0x16, 0x07, 0x28, 0x14, 0x12}, + [SPECIES_REGICE - 1] = {0x19, 0x0c, 0x28, 0x17, 0x19}, + [SPECIES_REGISTEEL - 1] = {0x19, 0x0d, 0x28, 0x19, 0x19}, + [SPECIES_KYOGRE - 1] = {0x0e, 0x19, 0x28, 0x0b, 0x26}, + [SPECIES_GROUDON - 1] = {0x04, 0x0b, 0x28, 0x0a, 0x19}, + [SPECIES_RAYQUAZA - 1] = {0x0c, 0x0e, 0x10, 0x0e, 0x1f}, + [SPECIES_LATIAS - 1] = {0x1e, 0x0c, 0x10, 0x23, 0x19}, + [SPECIES_LATIOS - 1] = {0x05, 0x0e, 0x10, 0x05, 0x1d}, + [SPECIES_JIRACHI - 1] = {0x1c, 0x15, 0x08, 0x1e, 0x22}, + [SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16}, + [SPECIES_CHIMECHO - 1] = {0x1d, 0x0c, 0x08, 0x1c, 0x1a}, + [SPECIES_OLD_UNOWN_EMARK - 1] = {0x20, 0x21, 0x08, 0x20, 0x2b}, + [SPECIES_OLD_UNOWN_QMARK - 1] = {0x20, 0x23, 0x08, 0x20, 0x2d} +}; + +void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 x, u8 y, const struct TextColor * color, s8 speed, const u8 * str) +{ + struct TextPrinterTemplate printer; + + printer.currentChar = str; + printer.windowId = windowId; + printer.fontId = fontId; + printer.x = x; + printer.y = y; + printer.currentX = printer.x; + printer.currentY = printer.y; + printer.letterSpacing = GetFontAttribute(fontId, 2); + printer.lineSpacing = GetFontAttribute(fontId, 3); + printer.unk = 0; + printer.fgColor = color->bgColor; + printer.bgColor = color->fgColor; + printer.shadowColor = color->shadowColor; + AddTextPrinter(&printer, speed, NULL); +} + +void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str) +{ + struct TextPrinterTemplate printer; + + printer.currentChar = str; + printer.windowId = windowId; + printer.fontId = fontId; + printer.x = x; + printer.y = y; + printer.currentX = printer.x; + printer.currentY = printer.y; + printer.letterSpacing = letterSpacing; + printer.lineSpacing = lineSpacing; + printer.unk = 0; + printer.fgColor = color->bgColor; + printer.bgColor = color->fgColor; + printer.shadowColor = color->shadowColor; + AddTextPrinter(&printer, speed, NULL); +} + +void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing) +{ + struct TextPrinterTemplate printer; + + printer.currentChar = str; + printer.windowId = windowId; + printer.fontId = fontId; + printer.x = x; + printer.y = y; + printer.currentX = x; + printer.currentY = y; + printer.letterSpacing = letterSpacing; + printer.lineSpacing = lineSpacing; + printer.unk = 0; + printer.fgColor = GetFontAttribute(fontId, 5); + printer.bgColor = GetFontAttribute(fontId, 6); + printer.shadowColor = GetFontAttribute(fontId, 7); + AddTextPrinter(&printer, speed, callback); +} + +void sub_812E6DC(u8 windowId, const u8 * src, u16 x, u16 y) +{ + s32 i; + + for (i = 0; gSaveBlock2Ptr->playerName[i] != EOS; i++) + ; + + StringExpandPlaceholders(gStringVar4, src); + if (i != 5) + { + AddTextPrinterParameterized(windowId, 2, gStringVar4, x, y, 0xFF, NULL); + } + else + { + AddTextPrinterParameterized5(windowId, 2, gStringVar4, x, y, 0xFF, NULL, 0, 0); + } +} + +// Yeah, no, I'm not bothering with this +NAKED +void sub_819A080(void * a0, void * a1, u16 a2, u16 a3, u16 a4, u16 a5, u16 a6, u16 a7) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x28\n" + "\tstr r0, [sp]\n" + "\tstr r1, [sp, 0x4]\n" + "\tldr r0, [sp, 0x48]\n" + "\tldr r4, [sp, 0x4C]\n" + "\tldr r1, [sp, 0x50]\n" + "\tldr r5, [sp, 0x54]\n" + "\tlsls r2, 16\n" + "\tlsrs r2, 16\n" + "\tstr r2, [sp, 0x8]\n" + "\tlsls r3, 16\n" + "\tlsrs r3, 16\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tstr r0, [sp, 0xC]\n" + "\tlsls r4, 16\n" + "\tlsrs r4, 16\n" + "\tlsls r1, 16\n" + "\tlsrs r1, 16\n" + "\tlsls r5, 16\n" + "\tlsrs r5, 16\n" + "\tldr r2, [sp, 0x4]\n" + "\tldrh r0, [r2, 0x4]\n" + "\tldr r2, [sp, 0xC]\n" + "\tsubs r0, r2\n" + "\tldr r2, [sp, 0x8]\n" + "\tadds r2, r1, r2\n" + "\tstr r2, [sp, 0x10]\n" + "\tcmp r0, r1\n" + "\tbge _0812E7B4\n" + "\tldr r1, [sp, 0x8]\n" + "\tadds r0, r1\n" + "\tstr r0, [sp, 0x10]\n" + "_0812E7B4:\n" + "\tldr r2, [sp, 0x4]\n" + "\tldrh r1, [r2, 0x6]\n" + "\tsubs r0, r1, r4\n" + "\tcmp r0, r5\n" + "\tbge _0812E7C6\n" + "\tadds r0, r3, r1\n" + "\tsubs r0, r4\n" + "\tstr r0, [sp, 0x14]\n" + "\tb _0812E7CA\n" + "_0812E7C6:\n" + "\tadds r5, r3, r5\n" + "\tstr r5, [sp, 0x14]\n" + "_0812E7CA:\n" + "\tldr r0, [sp]\n" + "\tldrh r1, [r0, 0x4]\n" + "\tmovs r2, 0x7\n" + "\tadds r0, r1, 0\n" + "\tands r0, r2\n" + "\tadds r1, r0\n" + "\tasrs r1, 3\n" + "\tstr r1, [sp, 0x18]\n" + "\tldr r0, [sp, 0x4]\n" + "\tldrh r1, [r0, 0x4]\n" + "\tadds r0, r1, 0\n" + "\tands r0, r2\n" + "\tadds r1, r0\n" + "\tasrs r1, 3\n" + "\tstr r1, [sp, 0x1C]\n" + "\tmov r12, r3\n" + "\tmov r8, r4\n" + "\tldr r1, [sp, 0x14]\n" + "\tcmp r12, r1\n" + "\tblt _0812E7F4\n" + "\tb _0812E932\n" + "_0812E7F4:\n" + "\tldr r5, [sp, 0x8]\n" + "\tldr r6, [sp, 0xC]\n" + "\tmov r2, r12\n" + "\tadds r2, 0x1\n" + "\tstr r2, [sp, 0x20]\n" + "\tmov r0, r8\n" + "\tadds r0, 0x1\n" + "\tstr r0, [sp, 0x24]\n" + "\tldr r1, [sp, 0x10]\n" + "\tcmp r5, r1\n" + "\tblt _0812E80C\n" + "\tb _0812E922\n" + "_0812E80C:\n" + "\tmovs r7, 0x1\n" + "\tmovs r2, 0xF0\n" + "\tmov r10, r2\n" + "\tmovs r0, 0xF\n" + "\tmov r9, r0\n" + "_0812E816:\n" + "\tasrs r0, r5, 1\n" + "\tmovs r1, 0x3\n" + "\tands r0, r1\n" + "\tldr r2, [sp]\n" + "\tldr r1, [r2]\n" + "\tadds r1, r0\n" + "\tasrs r0, r5, 3\n" + "\tlsls r0, 5\n" + "\tadds r1, r0\n" + "\tmov r2, r12\n" + "\tasrs r0, r2, 3\n" + "\tldr r2, [sp, 0x18]\n" + "\tmuls r0, r2\n" + "\tlsls r0, 5\n" + "\tadds r1, r0\n" + "\tmov r2, r12\n" + "\tlsls r0, r2, 29\n" + "\tlsrs r0, 27\n" + "\tadds r3, r1, r0\n" + "\tasrs r0, r6, 1\n" + "\tmovs r1, 0x3\n" + "\tands r0, r1\n" + "\tldr r2, [sp, 0x4]\n" + "\tldr r1, [r2]\n" + "\tadds r1, r0\n" + "\tasrs r0, r6, 3\n" + "\tlsls r0, 5\n" + "\tadds r1, r0\n" + "\tmov r2, r8\n" + "\tasrs r0, r2, 3\n" + "\tldr r2, [sp, 0x1C]\n" + "\tmuls r0, r2\n" + "\tlsls r0, 5\n" + "\tadds r1, r0\n" + "\tmov r2, r8\n" + "\tlsls r0, r2, 29\n" + "\tlsrs r0, 27\n" + "\tadds r4, r1, r0\n" + "\tadds r0, r4, 0\n" + "\tands r0, r7\n" + "\tcmp r0, 0\n" + "\tbeq _0812E8C2\n" + "\tsubs r4, 0x1\n" + "\tadds r0, r6, 0\n" + "\tands r0, r7\n" + "\tcmp r0, 0\n" + "\tbeq _0812E89A\n" + "\tldrh r0, [r4]\n" + "\tldr r2, _0812E88C @ =0x00000fff\n" + "\tands r2, r0\n" + "\tadds r0, r5, 0\n" + "\tands r0, r7\n" + "\tcmp r0, 0\n" + "\tbeq _0812E890\n" + "\tldrb r1, [r3]\n" + "\tmov r0, r10\n" + "\tands r0, r1\n" + "\tlsls r0, 8\n" + "\tb _0812E912\n" + "\t.align 2, 0\n" + "_0812E88C: .4byte 0x00000fff\n" + "_0812E890:\n" + "\tldrb r1, [r3]\n" + "\tmov r0, r9\n" + "\tands r0, r1\n" + "\tlsls r0, 12\n" + "\tb _0812E912\n" + "_0812E89A:\n" + "\tldrh r0, [r4]\n" + "\tldr r2, _0812E8B4 @ =0x0000f0ff\n" + "\tands r2, r0\n" + "\tadds r0, r5, 0\n" + "\tands r0, r7\n" + "\tcmp r0, 0\n" + "\tbeq _0812E8B8\n" + "\tldrb r1, [r3]\n" + "\tmov r0, r10\n" + "\tands r0, r1\n" + "\tlsls r0, 4\n" + "\tb _0812E912\n" + "\t.align 2, 0\n" + "_0812E8B4: .4byte 0x0000f0ff\n" + "_0812E8B8:\n" + "\tldrb r1, [r3]\n" + "\tmov r0, r9\n" + "\tands r0, r1\n" + "\tlsls r0, 8\n" + "\tb _0812E912\n" + "_0812E8C2:\n" + "\tadds r0, r6, 0\n" + "\tands r0, r7\n" + "\tcmp r0, 0\n" + "\tbeq _0812E8EE\n" + "\tldrh r0, [r4]\n" + "\tldr r2, _0812E8E0 @ =0x0000ff0f\n" + "\tands r2, r0\n" + "\tadds r0, r5, 0\n" + "\tands r0, r7\n" + "\tcmp r0, 0\n" + "\tbeq _0812E8E4\n" + "\tldrb r1, [r3]\n" + "\tmov r0, r10\n" + "\tb _0812E910\n" + "\t.align 2, 0\n" + "_0812E8E0: .4byte 0x0000ff0f\n" + "_0812E8E4:\n" + "\tldrb r1, [r3]\n" + "\tmov r0, r9\n" + "\tands r0, r1\n" + "\tlsls r0, 4\n" + "\tb _0812E912\n" + "_0812E8EE:\n" + "\tldrh r0, [r4]\n" + "\tldr r2, _0812E908 @ =0x0000fff0\n" + "\tands r2, r0\n" + "\tadds r0, r5, 0\n" + "\tands r0, r7\n" + "\tcmp r0, 0\n" + "\tbeq _0812E90C\n" + "\tldrb r1, [r3]\n" + "\tmov r0, r10\n" + "\tands r0, r1\n" + "\tlsrs r0, 4\n" + "\tb _0812E912\n" + "\t.align 2, 0\n" + "_0812E908: .4byte 0x0000fff0\n" + "_0812E90C:\n" + "\tldrb r1, [r3]\n" + "\tmov r0, r9\n" + "_0812E910:\n" + "\tands r0, r1\n" + "_0812E912:\n" + "\torrs r2, r0\n" + "\tstrh r2, [r4]\n" + "\tadds r5, 0x1\n" + "\tadds r6, 0x1\n" + "\tldr r0, [sp, 0x10]\n" + "\tcmp r5, r0\n" + "\tbge _0812E922\n" + "\tb _0812E816\n" + "_0812E922:\n" + "\tldr r1, [sp, 0x20]\n" + "\tmov r12, r1\n" + "\tldr r2, [sp, 0x24]\n" + "\tmov r8, r2\n" + "\tldr r0, [sp, 0x14]\n" + "\tcmp r12, r0\n" + "\tbge _0812E932\n" + "\tb _0812E7F4\n" + "_0812E932:\n" + "\tadd sp, 0x28\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0"); +} + +#define tEvA data[0] +#define tEvB data[1] +#define tEvAEnd data[2] +#define tEvBEnd data[3] +#define tEvADelta data[4] +#define tEvBDelta data[5] +#define tEvWhich data[6] +#define tEvStepCount data[8] + +void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority) +{ + u8 taskId = CreateTask(Task_SmoothBlendLayers, priority); + gTasks[taskId].tEvA = eva_start << 8; + gTasks[taskId].tEvB = evb_start << 8; + gTasks[taskId].tEvAEnd = eva_end; + gTasks[taskId].tEvBEnd = evb_end; + gTasks[taskId].tEvADelta = (eva_end - eva_start) * 256 / ev_step; + gTasks[taskId].tEvBDelta = (evb_end - evb_start) * 256 / ev_step; + gTasks[taskId].tEvStepCount = ev_step; + SetGpuReg(REG_OFFSET_BLDALPHA, (evb_start << 8) | eva_start); +} + +bool8 IsBlendTaskActive(void) +{ + return FuncIsActiveTask(Task_SmoothBlendLayers); +} + +static void Task_SmoothBlendLayers(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (tEvStepCount != 0) + { + if (tEvWhich == 0) + { + tEvA += tEvADelta; + tEvWhich = 1; + } + else + { + if (--tEvStepCount != 0) + { + tEvB += tEvBDelta; + } + else + { + tEvA = tEvAEnd << 8; + tEvB = tEvBEnd << 8; + } + tEvWhich = 0; + } + SetGpuReg(REG_OFFSET_BLDALPHA, (tEvB & ~0xFF) | ((u16)tEvA >> 8)); + if (tEvStepCount == 0) + DestroyTask(taskId); + } +} + +u8 sub_812EA78(u16 species, u32 personality, u8 a2) +{ + if (species == SPECIES_UNOWN) + { + u8 unownLetter = GetUnownLetterByPersonality(personality); + switch (unownLetter) + { + case 0: + break; + case 26: + species = SPECIES_OLD_UNOWN_EMARK; + break; + case 27: + species = SPECIES_OLD_UNOWN_QMARK; + break; + default: + species = SPECIES_OLD_UNOWN_B + unownLetter - 1; + break; + } + } + if (species != SPECIES_NONE && a2 < 5) + { + species--; + if (gUnknown_845FD54[species][a2] != 0xFF) + return gUnknown_845FD54[species][a2]; + } + return 32; +} + +s8 sub_812EAE4(u16 species, u32 personality, u8 a2) +{ + return sub_812EA78(species, personality, a2) - 32; +} diff --git a/src/mevent.c b/src/mevent.c index a62286f21..fc0c1f2d4 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -28,7 +28,7 @@ struct MEventTaskData1 u16 t02; u16 t04; u16 t06; - u8 t08; + u8 state; u8 t09; u8 t0A; u8 t0B; @@ -91,46 +91,46 @@ struct MEvent_Str_1 gUnknown_3005ED0; static EWRAM_DATA bool32 gUnknown_203F3BC = FALSE; -void sub_81435DC(struct MEvent_Str_1 *a0, size_t a1, const void * a2) +void sub_81435DC(struct MEvent_Str_1 *mgr, size_t size, const void * data) { vu16 imeBak = REG_IME; REG_IME = 0; - gIntrTable[1] = sub_815C6D4; - gIntrTable[2] = sub_815C6C4; - sub_815C8C8(); - sub_815C960(); + gIntrTable[1] = EReaderHelper_SerialCallback; + gIntrTable[2] = EReaderHelper_Timer3Callback; + EReaderHelper_SaveRegsState(); + EReaderHelper_ClearsSendRecvMgr(); REG_IE |= INTR_FLAG_VCOUNT; REG_IME = imeBak; - a0->unk_000 = 0; - a0->unk_004 = a1; - a0->unk_008 = a2; + mgr->status = 0; + mgr->size = size; + mgr->data = data; } void sub_8143644(struct MEvent_Str_1 *unused) { vu16 imeBak = REG_IME; REG_IME = 0; - sub_815C960(); - sub_815C91C(); + EReaderHelper_ClearsSendRecvMgr(); + EReaderHelper_RestoreRegsState(); RestoreSerialTimer3IntrHandlers(); REG_IME = imeBak; } -u8 sub_8143674(struct MEvent_Str_1 *a0) +u8 sub_8143674(struct MEvent_Str_1 *mgr) { u8 resp = 0; - a0->unk_000 = sub_815C498(1, a0->unk_004, a0->unk_008, 0); - if ((a0->unk_000 & 0x13) == 0x10) + mgr->status = EReaderHandleTransfer(1, mgr->size, mgr->data, 0); + if ((mgr->status & 0x13) == 0x10) resp = 1; - if (a0->unk_000 & 8) + if (mgr->status & 8) resp = 2; - if (a0->unk_000 & 4) + if (mgr->status & 4) resp = 3; gUnknown_3003F84 = 0; return resp; } -void sub_81436BC(void) +static void ResetTTDataBuffer(void) { memset(gDecompressionBuffer, 0, 0x2000); gLinkType = 0x5502; @@ -143,7 +143,7 @@ bool32 sub_81436EC(void) vu16 imeBak = REG_IME; u16 data[4]; REG_IME = 0; - *(u64 *)data = gUnknown_3003FB4; + *(u64 *)data = gSioMlt_Recv; REG_IME = imeBak; if ( data[0] == 0xB9A0 && data[1] == 0xCCD0 @@ -154,7 +154,7 @@ bool32 sub_81436EC(void) return FALSE; } -bool32 sub_814374C(void) +static bool32 IsEReaderConnectionSane(void) { if (sub_800AA48() && GetLinkPlayerCount_2() == 2) return TRUE; @@ -240,11 +240,11 @@ u32 sub_8143770(u8 * r4, u16 * r5) return 0; } -void sub_81438A0(void) +void task_add_00_ereader(void) { u8 taskId = CreateTask(sub_8143910, 0); struct MEventTaskData1 *data = (struct MEventTaskData1 *)gTasks[taskId].data; - data->t08 = 0; + data->state = 0; data->t09 = 0; data->t0A = 0; data->t0B = 0; @@ -258,12 +258,12 @@ void sub_81438A0(void) data->t10 = AllocZeroed(sizeof(struct MEvent_Str_2)); } -void sub_81438E8(u16 *a0) +static void ResetDelayTimer(u16 *a0) { *a0 = 0; } -bool32 sub_81438F0(u16 * a0, u16 a1) +static bool32 AdvanceDelayTimerCheckTimeout(u16 * a0, u16 a1) { if (++(*a0) > a1) { @@ -276,114 +276,114 @@ bool32 sub_81438F0(u16 * a0, u16 a1) void sub_8143910(u8 taskId) { struct MEventTaskData1 *data = (struct MEventTaskData1 *)gTasks[taskId].data; - switch (data->t08) + switch (data->state) { case 0: - if (mevent_0814257C(&data->t09, gUnknown_841DE52)) - data->t08 = 1; + if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE52)) + data->state = 1; break; case 1: - sub_81436BC(); - sub_81438E8(&data->t00); - data->t08 = 2; + ResetTTDataBuffer(); + ResetDelayTimer(&data->t00); + data->state = 2; break; case 2: - if (sub_81438F0(&data->t00, 10)) - data->t08 = 3; + if (AdvanceDelayTimerCheckTimeout(&data->t00, 10)) + data->state = 3; break; case 3: - if (!sub_814374C()) + if (!IsEReaderConnectionSane()) { - sub_80098B8(); - data->t08 = 4; + CloseLink(); + data->state = 4; } else - data->t08 = 13; + data->state = 13; break; case 4: - if (mevent_0814257C(&data->t09, gUnknown_841DE53)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE53)) { - sub_8142504(gUnknown_841DE54); - sub_81438E8(&data->t00); - data->t08 = 5; + AddTextPrinterToWindow1(gUnknown_841DE54); + ResetDelayTimer(&data->t00); + data->state = 5; } break; case 5: - if (sub_81438F0(&data->t00, 90)) + if (AdvanceDelayTimerCheckTimeout(&data->t00, 90)) { - sub_81436BC(); - data->t08 = 6; + ResetTTDataBuffer(); + data->state = 6; } else if (JOY_NEW(B_BUTTON)) { - sub_81438E8(&data->t00); + ResetDelayTimer(&data->t00); PlaySE(SE_SELECT); - data->t08 = 23; + data->state = 23; } break; case 6: if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_80098B8(); - sub_81438E8(&data->t00); - data->t08 = 23; + CloseLink(); + ResetDelayTimer(&data->t00); + data->state = 23; } else if (GetLinkPlayerCount_2() > 1) { - sub_81438E8(&data->t00); - sub_80098B8(); - data->t08 = 7; + ResetDelayTimer(&data->t00); + CloseLink(); + data->state = 7; } else if (sub_81436EC()) { PlaySE(SE_SELECT); - sub_80098B8(); - sub_81438E8(&data->t00); - data->t08 = 8; + CloseLink(); + ResetDelayTimer(&data->t00); + data->state = 8; } - else if (sub_81438F0(&data->t00, 10)) + else if (AdvanceDelayTimerCheckTimeout(&data->t00, 10)) { - sub_80098B8(); - sub_81436BC(); - sub_81438E8(&data->t00); + CloseLink(); + ResetTTDataBuffer(); + ResetDelayTimer(&data->t00); } break; case 7: - if (mevent_0814257C(&data->t09, gUnknown_841DE7C)) - data->t08 = 4; + if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE7C)) + data->state = 4; break; case 8: - sub_8142504(gUnknown_841DE95); + AddTextPrinterToWindow1(gUnknown_841DE95); sub_81435DC(&gUnknown_3005ED0, gUnknownSerialData_End - gUnknownSerialData_Start, gUnknownSerialData_Start); - data->t08 = 9; + data->state = 9; break; case 9: data->t0E = sub_8143674(&gUnknown_3005ED0); if (data->t0E != 0) - data->t08 = 10; + data->state = 10; break; case 10: sub_8143644(&gUnknown_3005ED0); if (data->t0E == 3) - data->t08 = 20; + data->state = 20; else if (data->t0E == 1) { - sub_81438E8(&data->t00); - sub_8142504(gUnknown_841DE9B); - data->t08 = 11; + ResetDelayTimer(&data->t00); + AddTextPrinterToWindow1(gUnknown_841DE9B); + data->state = 11; } else - data->t08 = 0; + data->state = 0; break; case 11: - if (sub_81438F0(&data->t00, 840)) - data->t08 = 12; + if (AdvanceDelayTimerCheckTimeout(&data->t00, 840)) + data->state = 12; break; case 12: - sub_81436BC(); - sub_8142504(gUnknown_841DE98); - data->t08 = 13; + ResetTTDataBuffer(); + AddTextPrinterToWindow1(gUnknown_841DE98); + data->state = 13; break; case 13: switch (sub_8143770(&data->t09, &data->t00)) @@ -391,94 +391,94 @@ void sub_8143910(u8 taskId) case 0: break; case 2: - sub_8142504(gUnknown_841DE95); - data->t08 = 14; + AddTextPrinterToWindow1(gUnknown_841DE95); + data->state = 14; break; case 1: PlaySE(SE_SELECT); - sub_80098B8(); - data->t08 = 23; + CloseLink(); + data->state = 23; break; case 5: - sub_80098B8(); - data->t08 = 21; + CloseLink(); + data->state = 21; break; case 3: case 4: - sub_80098B8(); - data->t08 = 20; + CloseLink(); + data->state = 20; break; } break; case 14: if (HasLinkErrorOccurred()) { - sub_80098B8(); - data->t08 = 20; + CloseLink(); + data->state = 20; } else if (GetBlockReceivedStatus()) { ResetBlockReceivedFlags(); - data->t08 = 15; + data->state = 15; } break; case 15: - data->t0E = sub_815D6B4(gDecompressionBuffer); + data->t0E = ValidateTrainerTowerData((struct TrainerTowerData *)gDecompressionBuffer); sub_800AA80(data->t0E); - data->t08 = 16; + data->state = 16; break; case 16: if (!gReceivedRemoteLinkPlayers) { if (data->t0E == 1) - data->t08 = 17; + data->state = 17; else - data->t08 = 20; + data->state = 20; } break; case 17: - if (sub_815D794(gDecompressionBuffer)) + if (CEReaderTool_SaveTrainerTower((struct TrainerTowerData *)gDecompressionBuffer)) { - sub_8142504(gUnknown_841DE99); - sub_81438E8(&data->t00); - data->t08 = 18; + AddTextPrinterToWindow1(gUnknown_841DE99); + ResetDelayTimer(&data->t00); + data->state = 18; } else - data->t08 = 22; + data->state = 22; break; case 18: - if (sub_81438F0(&data->t00, 120)) + if (AdvanceDelayTimerCheckTimeout(&data->t00, 120)) { - sub_8142504(gUnknown_841DE9A); + AddTextPrinterToWindow1(gUnknown_841DE9A); PlayFanfare(258); - data->t08 = 19; + data->state = 19; } break; case 19: if (IsFanfareTaskInactive() &&JOY_NEW(A_BUTTON | B_BUTTON)) - data->t08 = 26; + data->state = 26; break; case 23: - if (mevent_0814257C(&data->t09, gUnknown_841DE7D)) - data->t08 = 26; + if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE7D)) + data->state = 26; break; case 20: - if (mevent_0814257C(&data->t09, gUnknown_841DE96)) - data->t08 = 0; + if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE96)) + data->state = 0; break; case 21: - if (mevent_0814257C(&data->t09, gUnknown_841DE97)) - data->t08 = 0; + if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE97)) + data->state = 0; break; case 22: - if (mevent_0814257C(&data->t09, gUnknown_841DE9C)) - data->t08 = 0; + if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE9C)) + data->state = 0; break; case 26: sub_812B484(); Free(data->t10); DestroyTask(taskId); - SetMainCallback2(sub_81422FC); + SetMainCallback2(MainCB_FreeAllBuffersAndReturnToInitTitleScreen); break; } } @@ -490,12 +490,12 @@ void sub_8143D24(void) sub_80BDE28(); } -struct MEventBuffer_3120_Sub * sub_8143D58(void) +struct MEventBuffer_3120_Sub * GetSavedWonderNews(void) { return &gSaveBlock1Ptr->unk_3120.buffer_000.data; } -struct MEventBuffer_32E0_Sub * sav1_get_mevent_buffer_1(void) +struct MEventBuffer_32E0_Sub * GetSavedWonderCard(void) { return &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; } @@ -515,7 +515,7 @@ u16 * sub_8143DA8(void) return gSaveBlock1Ptr->unk_3120.unk_338; } -void sub_8143DBC(void) +void DestroyWonderNews(void) { sub_8143E9C(); } @@ -530,7 +530,7 @@ bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src) return TRUE; } -bool32 sub_8143E1C(void) +bool32 ValidateReceivedWonderNews(void) { if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)) != gSaveBlock1Ptr->unk_3120.buffer_000.crc) return FALSE; @@ -546,7 +546,7 @@ bool32 sub_8143E64(const struct MEventBuffer_3120_Sub * data) return TRUE; } -bool32 sub_8143E78(void) +bool32 WonderNews_Test_Unk_02(void) { const struct MEventBuffer_3120_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_000.data; if (data->unk_02 == 0) @@ -556,7 +556,7 @@ bool32 sub_8143E78(void) void sub_8143E9C(void) { - CpuFill32(0, sub_8143D58(), sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data)); + CpuFill32(0, GetSavedWonderNews(), sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data)); gSaveBlock1Ptr->unk_3120.buffer_000.crc = 0; } @@ -570,7 +570,7 @@ bool32 sub_8143EF4(const u8 * src) { const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->unk_3120.buffer_000.data; u32 i; - if (!sub_8143E1C()) + if (!ValidateReceivedWonderNews()) return FALSE; for (i = 0; i < sizeof(struct MEventBuffer_3120_Sub); i++) { @@ -580,7 +580,7 @@ bool32 sub_8143EF4(const u8 * src) return TRUE; } -void sub_8143F38(void) +void DestroyWonderCard(void) { sub_814407C(); sub_81440B4(); @@ -597,7 +597,7 @@ bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data) struct MEventBuffer_32E0_Sub * r1; if (!sub_8144018(data)) return FALSE; - sub_8143F38(); + DestroyWonderCard(); memcpy(&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, data, sizeof(struct MEventBuffer_32E0_Sub)); gSaveBlock1Ptr->unk_3120.buffer_1c0.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)); r2 = &gSaveBlock1Ptr->unk_3120.buffer_310.data; @@ -606,7 +606,7 @@ bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data) return TRUE; } -bool32 sub_8143FC8(void) +bool32 ValidateReceivedWonderCard(void) { if (gSaveBlock1Ptr->unk_3120.buffer_1c0.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub))) return FALSE; @@ -632,7 +632,7 @@ bool32 sub_8144018(const struct MEventBuffer_32E0_Sub * data) return TRUE; } -bool32 sub_8144054(void) +bool32 WonderCard_Test_Unk_08_6(void) { const struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; if (data->unk_08_6 == 0) @@ -654,7 +654,7 @@ void sub_81440B4(void) u16 sub_81440E8(void) { - if (sub_8143FC8()) + if (ValidateReceivedWonderCard()) return gSaveBlock1Ptr->unk_3120.buffer_1c0.data.unk_00; return 0; } @@ -672,7 +672,7 @@ bool32 sub_8144124(u16 a0) return FALSE; } -bool32 sub_8144144(void) +bool32 CheckReceivedGiftFromWonderCard(void) { u16 value = sub_81440E8(); if (!sub_8144124(value)) @@ -721,7 +721,7 @@ bool32 sub_81441F0(const u16 * data) s32 sub_8144218(void) { struct MEventBuffer_32E0_Sub * data; - if (!sub_8143FC8()) + if (!ValidateReceivedWonderCard()) return 0; data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; if (data->unk_08_0 != 1) @@ -759,11 +759,11 @@ void sub_81442CC(struct MEventStruct_Unk1442CC * data) data->unk_08 = 1; data->unk_0C = 1; data->unk_10 = 1; - if (sub_8143FC8()) + if (ValidateReceivedWonderCard()) { - data->unk_14 = sav1_get_mevent_buffer_1()->unk_00; + data->unk_14 = GetSavedWonderCard()->unk_00; data->unk_20 = *sav1_get_mevent_buffer_2(); - data->unk_44 = sav1_get_mevent_buffer_1()->unk_09; + data->unk_44 = GetSavedWonderCard()->unk_09; } else data->unk_14 = 0; @@ -945,7 +945,7 @@ bool32 sub_81446D0(u16 a0) gUnknown_203F3BC = FALSE; if (a0 == 0) return FALSE; - if (!sub_8143FC8()) + if (!ValidateReceivedWonderCard()) return FALSE; if (gSaveBlock1Ptr->unk_3120.buffer_1c0.data.unk_00 != a0) return FALSE; diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c index c39d76f25..034a07679 100644 --- a/src/mevent_8145654.c +++ b/src/mevent_8145654.c @@ -58,7 +58,7 @@ void sub_8145D18(u8 whichWindow); void sub_8146060(void); void sub_81461D8(void); -extern const struct OamData gUnknown_83AC9F8; +extern const struct OamData gOamData_83AC9F8; const struct TextColor gUnknown_8467068[] = { {0, 2, 3}, @@ -113,7 +113,7 @@ const struct SpritePalette gUnknown_8467F60[] = { {gUnknown_8467ED4, 0x8000} }; const struct SpriteTemplate gUnknown_8467FA0 = { - 0x8000, 0x8000, &gUnknown_83AC9F8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + 0x8000, 0x8000, &gOamData_83AC9F8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; const struct UnkStruct_8467FB8 gUnknown_8467FB8[8] = { {1, 0, 0, 0, gUnknown_846718C, gUnknown_8467288, gUnknown_846708C}, @@ -126,7 +126,7 @@ const struct UnkStruct_8467FB8 gUnknown_8467FB8[8] = { {1, 0, 0, 7, gUnknown_8467A7C, gUnknown_8467CAC, gUnknown_846716C} }; -bool32 sub_8145654(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6) +bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6) { if (r5 == NULL || r6 == NULL) return FALSE; @@ -145,7 +145,7 @@ bool32 sub_8145654(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_S return TRUE; } -void sub_81456F0(void) +void DestroyWonderCardResources(void) { if (gUnknown_203F3C8 != NULL) { @@ -155,7 +155,7 @@ void sub_81456F0(void) } } -s32 sub_814571C(void) +s32 FadeToWonderCardMenu(void) { if (gUnknown_203F3C8 == NULL) return -1; @@ -219,7 +219,7 @@ s32 sub_814571C(void) return 0; } -s32 sub_814593C(bool32 flag) +s32 FadeOutFromWonderCard(bool32 flag) { if (gUnknown_203F3C8 == NULL) return -1; @@ -252,7 +252,7 @@ s32 sub_814593C(bool32 flag) FreeMonIconPalettes(); break; case 5: - sub_8142344(gUnknown_203F3B8, flag); + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); break; case 6: CopyBgTilemapBufferToVram(0); @@ -347,28 +347,28 @@ void sub_8145D18(u8 whichWindow) case 0: { s32 x; - box_print(windowId, 3, 0, 1, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal1], 0, gUnknown_203F3C8->unk_018B); + AddTextPrinterParameterized3(windowId, 3, 0, 1, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal1], 0, gUnknown_203F3C8->unk_018B); x = 160 - GetStringWidth(3, gUnknown_203F3C8->unk_01B4, GetFontAttribute(3, 2)); if (x < 0) x = 0; - box_print(windowId, 3, x, 17, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal1], 0, gUnknown_203F3C8->unk_01B4); + AddTextPrinterParameterized3(windowId, 3, x, 17, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal1], 0, gUnknown_203F3C8->unk_01B4); if (gUnknown_203F3C8->unk_0000.unk_04 != 0) { - box_print(windowId, 2, 166, 17, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal1], 0, gUnknown_203F3C8->unk_01DD); + AddTextPrinterParameterized3(windowId, 2, 166, 17, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal1], 0, gUnknown_203F3C8->unk_01DD); } break; } case 1: for (; sp0C < 4; sp0C++) { - box_print(windowId, 3, 0, 16 * sp0C + 2, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal2], 0, gUnknown_203F3C8->unk_01E4[sp0C]); + AddTextPrinterParameterized3(windowId, 3, 0, 16 * sp0C + 2, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal2], 0, gUnknown_203F3C8->unk_01E4[sp0C]); } break; case 2: - box_print(windowId, 3, 0, gUnknown_8467070[gUnknown_203F3C8->unk_0000.unk_08_0], &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_0288); + AddTextPrinterParameterized3(windowId, 3, 0, gUnknown_8467070[gUnknown_203F3C8->unk_0000.unk_08_0], &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_0288); if (gUnknown_203F3C8->unk_0000.unk_08_0 != 2) { - box_print(windowId, 3, 0, 16 + gUnknown_8467070[gUnknown_203F3C8->unk_0000.unk_08_0], &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_02B1); + AddTextPrinterParameterized3(windowId, 3, 0, 16 + gUnknown_8467070[gUnknown_203F3C8->unk_0000.unk_08_0], &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_02B1); } else { @@ -377,11 +377,11 @@ void sub_8145D18(u8 whichWindow) s32 spacing = GetFontAttribute(3, 2); for (; sp0C < gUnknown_203F3C8->unk_0175; sp0C++) { - box_print(windowId, 3, x, y, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_02DC[sp0C].unk_01); + AddTextPrinterParameterized3(windowId, 3, x, y, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_02DC[sp0C].unk_01); if (gUnknown_203F3C8->unk_02DC[sp0C].unk_42[0] != EOS) { x += GetStringWidth(3, gUnknown_203F3C8->unk_02DC[sp0C].unk_01, spacing); - box_print(windowId, 2, x, y, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_02DC[sp0C].unk_42); + AddTextPrinterParameterized3(windowId, 2, x, y, &gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_02DC[sp0C].unk_42); x += GetStringWidth(3, gUnknown_203F3C8->unk_02DC[sp0C].unk_42, spacing) + gUnknown_203F3C8->unk_02DC[sp0C].unk_00; } } @@ -460,7 +460,7 @@ struct UnkStruct_203F3CC /*01cc*/ u8 filler_01CC[2]; /*01ce*/ u8 unk_01CE[41]; /*01f7*/ u8 unk_01F7[10][41]; - /*0394*/ struct ScrollIndicatorArrowPairTemplate unk_0394; + /*0394*/ struct ScrollArrowsTemplate unk_0394; /*03a4*/ u8 buffer_03A4[0x1000]; }; @@ -478,9 +478,9 @@ const struct WindowTemplate gUnknown_8468040[] = { {0, 1, 0, 28, 3, 15, 0x000}, {2, 1, 3, 28, 20, 15, 0x000} }; -const struct ScrollIndicatorArrowPairTemplate gUnknown_8468050 = { +const struct ScrollArrowsTemplate gUnknown_8468050 = { 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98, - 0x0000, 0x0002, 0x1000, 0x1000, 0x0, 0x000 + 0x0000, 0x0002, 0x1000, 0x1000, 0x0, }; const u16 gUnknown_8468060[] = INCBIN_U16("data/graphics/mevent/pal_468060.gbapal"); @@ -508,7 +508,7 @@ const struct UnkStruct_8467FB8 gUnknown_8468720[] = { {1, 0, 0, 0, gUnknown_84685B4, gUnknown_8468644, gUnknown_84680A0} }; -bool32 sub_8146288(const struct MEventBuffer_3120_Sub * a0) +bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0) { if (a0 == NULL) return FALSE; @@ -523,7 +523,7 @@ bool32 sub_8146288(const struct MEventBuffer_3120_Sub * a0) return TRUE; } -void sub_81462EC(void) +void DestroyWonderNewsResources(void) { if (gUnknown_203F3CC != NULL) { @@ -533,7 +533,7 @@ void sub_81462EC(void) } } -s32 sub_8146318(void) +s32 FadeToWonderNewsMenu(void) { if (gUnknown_203F3CC == NULL) return -1; @@ -608,7 +608,7 @@ s32 sub_8146318(void) return 0; } -s32 sub_8146604(bool32 flag) +s32 FadeOutFromWonderNews(bool32 flag) { if (gUnknown_203F3CC == NULL) return -1; @@ -653,10 +653,10 @@ s32 sub_8146604(bool32 flag) } break; case 5: - sub_8142344(gUnknown_203F3B8, flag); + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); break; case 6: - sub_8142420(); + MG_DrawCheckerboardPattern(); CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(3); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); @@ -671,7 +671,7 @@ s32 sub_8146604(bool32 flag) return 0; } -void sub_81467EC(void) +void MENews_RemoveScrollIndicatorArrowPair(void) { if (!gUnknown_203F3CC->unk_01C0_0 && gUnknown_203F3CC->unk_01C1 != 0xFF) { @@ -682,7 +682,7 @@ void sub_81467EC(void) } -void sub_8146834(void) +void MENews_AddScrollIndicatorArrowPair(void) { if (gUnknown_203F3CC->unk_01C0_0) { @@ -691,7 +691,7 @@ void sub_8146834(void) } } -u8 sub_8146884(u16 input) +u32 MENews_GetInput(u16 input) { if (gUnknown_203F3CC->unk_01C2_0) { @@ -743,7 +743,7 @@ void sub_8146980(void) ++gUnknown_203F3CC->unk_01C4; } gUnknown_203F3CC->unk_0394 = gUnknown_8468050; - gUnknown_203F3CC->unk_0394.unk_08 = gUnknown_203F3CC->unk_01C4; + gUnknown_203F3CC->unk_0394.fullyDownThreshold = gUnknown_203F3CC->unk_01C4; } void sub_8146A30(void) @@ -757,10 +757,10 @@ void sub_8146A30(void) x = (0xe0 - GetStringWidth(3, gUnknown_203F3CC->unk_01CE, GetFontAttribute(3, 2))) / 2; if (x < 0) x = 0; - box_print(gUnknown_203F3CC->unk_01C8[0], 3, x, 6, &gUnknown_8468038[gUnknown_203F3CC->unk_01BC->textPal1], 0, gUnknown_203F3CC->unk_01CE); + AddTextPrinterParameterized3(gUnknown_203F3CC->unk_01C8[0], 3, x, 6, &gUnknown_8468038[gUnknown_203F3CC->unk_01BC->textPal1], 0, gUnknown_203F3CC->unk_01CE); for (; i < 10; ++i) { - box_print(gUnknown_203F3CC->unk_01C8[1], 3, 0, 16 * i + 2, &gUnknown_8468038[gUnknown_203F3CC->unk_01BC->textPal2], 0, gUnknown_203F3CC->unk_01F7[i]); + AddTextPrinterParameterized3(gUnknown_203F3CC->unk_01C8[1], 3, 0, 16 * i + 2, &gUnknown_8468038[gUnknown_203F3CC->unk_01BC->textPal2], 0, gUnknown_203F3CC->unk_01F7[i]); } CopyWindowToVram(gUnknown_203F3CC->unk_01C8[0], 3); CopyWindowToVram(gUnknown_203F3CC->unk_01C8[1], 3); diff --git a/src/mevent_server.c b/src/mevent_server.c index 5e384ae0b..1c2dc4ced 100644 --- a/src/mevent_server.c +++ b/src/mevent_server.c @@ -11,12 +11,12 @@ #include "mevent.h" #include "mevent_server.h" -EWRAM_DATA struct mevent_srv_ish * s_mevent_srv_ish_ptr = NULL; +EWRAM_DATA struct mevent_client * s_mevent_client_ptr = NULL; EWRAM_DATA struct mevent_srv_common * s_mevent_srv_common_ptr = NULL; -static void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32); -static u32 mevent_srv_ish_exec(struct mevent_srv_ish *); -static void mevent_srv_ish_free_resources(struct mevent_srv_ish *); +static void mevent_client_init(struct mevent_client *, u32, u32); +static u32 mevent_client_exec(struct mevent_client *); +static void mevent_client_free_resources(struct mevent_client *); static void mevent_srv_init_common(struct mevent_srv_common *, const void *, u32, u32); static void mevent_srv_free_resources(struct mevent_srv_common *); static u32 mevent_srv_exec_common(struct mevent_srv_common *); @@ -25,44 +25,44 @@ extern const u8 gUnknown_84687E0[]; extern const struct mevent_cmd gUnknown_8468B6C[]; extern const struct mevent_cmd gUnknown_8468BCC[]; -void mevent_srv_ish_do_init(void) +void mevent_client_do_init(void) { - s_mevent_srv_ish_ptr = AllocZeroed(sizeof(struct mevent_srv_ish)); - mevent_srv_ish_init(s_mevent_srv_ish_ptr, 1, 0); + s_mevent_client_ptr = AllocZeroed(sizeof(struct mevent_client)); + mevent_client_init(s_mevent_client_ptr, 1, 0); } -u32 mevent_srv_ish_do_exec(u16 * a0) +u32 mevent_client_do_exec(u16 * a0) { u32 result; - if (s_mevent_srv_ish_ptr == NULL) + if (s_mevent_client_ptr == NULL) return 6; - result = mevent_srv_ish_exec(s_mevent_srv_ish_ptr); + result = mevent_client_exec(s_mevent_client_ptr); if (result == 6) { - *a0 = s_mevent_srv_ish_ptr->param; - mevent_srv_ish_free_resources(s_mevent_srv_ish_ptr); - Free(s_mevent_srv_ish_ptr); - s_mevent_srv_ish_ptr = NULL; + *a0 = s_mevent_client_ptr->param; + mevent_client_free_resources(s_mevent_client_ptr); + Free(s_mevent_client_ptr); + s_mevent_client_ptr = NULL; } return result; } -void mevent_srv_ish_inc_flag(void) +void mevent_client_inc_flag(void) { - s_mevent_srv_ish_ptr->flag++; + s_mevent_client_ptr->flag++; } -void * mevent_srv_ish_get_buffer(void) +void * mevent_client_get_buffer(void) { - return s_mevent_srv_ish_ptr->buffer; + return s_mevent_client_ptr->buffer; } -void mevent_srv_ish_set_param(u32 a0) +void mevent_client_set_param(u32 a0) { - s_mevent_srv_ish_ptr->param = a0; + s_mevent_client_ptr->param = a0; } -static void mevent_srv_ish_init(struct mevent_srv_ish * svr, u32 sendPlayerNo, u32 recvPlayerNo) +static void mevent_client_init(struct mevent_client * svr, u32 sendPlayerNo, u32 recvPlayerNo) { svr->unk_00 = 0; svr->mainseqno = 0; @@ -74,7 +74,7 @@ static void mevent_srv_ish_init(struct mevent_srv_ish * svr, u32 sendPlayerNo, u mevent_srv_sub_init(&svr->manager, sendPlayerNo, recvPlayerNo); } -static void mevent_srv_ish_free_resources(struct mevent_srv_ish * svr) +static void mevent_client_free_resources(struct mevent_client * svr) { Free(svr->sendBuffer); Free(svr->recvBuffer); @@ -82,20 +82,20 @@ static void mevent_srv_ish_free_resources(struct mevent_srv_ish * svr) Free(svr->buffer); } -static void mevent_srv_ish_jmp_buffer(struct mevent_srv_ish * svr) +static void mevent_client_jmp_buffer(struct mevent_client * svr) { memcpy(svr->cmdBuffer, svr->recvBuffer, ME_SEND_BUF_SIZE); svr->cmdidx = 0; } -static void mevent_srv_ish_send_word(struct mevent_srv_ish * svr, u32 ident, u32 word) +static void mevent_client_send_word(struct mevent_client * svr, u32 ident, u32 word) { CpuFill32(0, svr->sendBuffer, ME_SEND_BUF_SIZE); *(u32 *)svr->sendBuffer = word; mevent_srv_sub_init_send(&svr->manager, ident, svr->sendBuffer, sizeof(u32)); } -static u32 ish_mainseq_0(struct mevent_srv_ish * svr) +static u32 ish_mainseq_0(struct mevent_client * svr) { // init memcpy(svr->cmdBuffer, gUnknown_84687E0, ME_SEND_BUF_SIZE); @@ -105,13 +105,13 @@ static u32 ish_mainseq_0(struct mevent_srv_ish * svr) return 0; } -static u32 ish_mainseq_1(struct mevent_srv_ish * svr) +static u32 ish_mainseq_1(struct mevent_client * svr) { // done return 6; } -static u32 ish_mainseq_2(struct mevent_srv_ish * svr) +static u32 ish_mainseq_2(struct mevent_client * svr) { // do recv if (mevent_srv_sub_recv(&svr->manager)) @@ -122,7 +122,7 @@ static u32 ish_mainseq_2(struct mevent_srv_ish * svr) return 1; } -static u32 ish_mainseq_3(struct mevent_srv_ish * svr) +static u32 ish_mainseq_3(struct mevent_client * svr) { // do send if (mevent_srv_sub_send(&svr->manager)) @@ -133,7 +133,7 @@ static u32 ish_mainseq_3(struct mevent_srv_ish * svr) return 1; } -static u32 ish_mainseq_4(struct mevent_srv_ish * svr) +static u32 ish_mainseq_4(struct mevent_client * svr) { // process command struct mevent_cmd_ish * cmd = &svr->cmdBuffer[svr->cmdidx]; @@ -162,20 +162,20 @@ static u32 ish_mainseq_4(struct mevent_srv_ish * svr) svr->flag = 0; break; case 19: - mevent_srv_ish_send_word(svr, 0x12, GetGameStat(cmd->parameter)); + mevent_client_send_word(svr, 0x12, GetGameStat(cmd->parameter)); svr->mainseqno = 3; svr->flag = 0; break; case 6: if (svr->param == 0) - mevent_srv_ish_jmp_buffer(svr); + mevent_client_jmp_buffer(svr); break; case 7: if (svr->param == 1) - mevent_srv_ish_jmp_buffer(svr); + mevent_client_jmp_buffer(svr); break; case 4: - mevent_srv_ish_jmp_buffer(svr); + mevent_client_jmp_buffer(svr); break; case 5: memcpy(svr->buffer, svr->recvBuffer, 0x40); @@ -201,7 +201,7 @@ static u32 ish_mainseq_4(struct mevent_srv_ish * svr) mevent_srv_sub_init_send(&svr->manager, 0x11, svr->sendBuffer, sizeof(struct MEventStruct_Unk1442CC)); break; case 14: - mevent_srv_ish_send_word(svr, 0x13, svr->param); + mevent_client_send_word(svr, 0x13, svr->param); break; case 10: sub_8143F68(svr->recvBuffer); @@ -210,10 +210,10 @@ static u32 ish_mainseq_4(struct mevent_srv_ish * svr) if (!sub_8143EF4(svr->recvBuffer)) { sub_8143DC8(svr->recvBuffer); - mevent_srv_ish_send_word(svr, 0x13, 0); + mevent_client_send_word(svr, 0x13, 0); } else - mevent_srv_ish_send_word(svr, 0x13, 1); + mevent_client_send_word(svr, 0x13, 1); break; case 15: svr->mainseqno = 6; @@ -239,7 +239,7 @@ static u32 ish_mainseq_4(struct mevent_srv_ish * svr) return 1; } -static u32 ish_mainseq_5(struct mevent_srv_ish * svr) +static u32 ish_mainseq_5(struct mevent_client * svr) { // wait flag if (svr->flag) @@ -250,7 +250,7 @@ static u32 ish_mainseq_5(struct mevent_srv_ish * svr) return 1; } -static u32 ish_mainseq_6(struct mevent_srv_ish * svr) +static u32 ish_mainseq_6(struct mevent_client * svr) { // ??? switch (svr->flag) @@ -270,7 +270,7 @@ static u32 ish_mainseq_6(struct mevent_srv_ish * svr) return 1; } -static u32 ish_mainseq_7(struct mevent_srv_ish * svr) +static u32 ish_mainseq_7(struct mevent_client * svr) { // exec arbitrary code u32 (*func)(u32 *, struct SaveBlock2 *, struct SaveBlock1 *) = (void *)gDecompressionBuffer; @@ -282,9 +282,9 @@ static u32 ish_mainseq_7(struct mevent_srv_ish * svr) return 1; } -static u32 mevent_srv_ish_exec(struct mevent_srv_ish * svr) +static u32 mevent_client_exec(struct mevent_client * svr) { - u32 (*funcs[])(struct mevent_srv_ish *) = { + u32 (*funcs[])(struct mevent_client *) = { ish_mainseq_0, ish_mainseq_1, ish_mainseq_2, @@ -297,19 +297,19 @@ static u32 mevent_srv_ish_exec(struct mevent_srv_ish * svr) return funcs[svr->mainseqno](svr); } -void mevent_srv_common_do_init_1(void) +void mevent_srv_init_wnews(void) { s_mevent_srv_common_ptr = AllocZeroed(sizeof(struct mevent_srv_common)); mevent_srv_init_common(s_mevent_srv_common_ptr, gUnknown_8468B6C, 0, 1); } -void mevent_srv_common_do_init_2(void) +void mevent_srv_new_wcard(void) { s_mevent_srv_common_ptr = AllocZeroed(sizeof(struct mevent_srv_common)); mevent_srv_init_common(s_mevent_srv_common_ptr, gUnknown_8468BCC, 0, 1); } -u32 mevent_srv_init_do_exec(u16 * a0) +u32 mevent_srv_common_do_exec(u16 * a0) { u32 result; if (s_mevent_srv_common_ptr == NULL) @@ -526,12 +526,12 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) break; case 26: AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 506); - memcpy(svr->mevent_32e0, sav1_get_mevent_buffer_1(), 332); + memcpy(svr->mevent_32e0, GetSavedWonderCard(), 332); sub_814410C(svr->mevent_32e0); break; case 27: AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 512); - memcpy(svr->mevent_3120, sub_8143D58(), 444); + memcpy(svr->mevent_3120, GetSavedWonderNews(), 444); break; case 28: AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 517); diff --git a/src/money.c b/src/money.c index 6d9a0fce9..ffaba2e29 100644 --- a/src/money.c +++ b/src/money.c @@ -128,13 +128,13 @@ void DrawMoneyBox(int amount, u8 x, u8 y) sMoneyBoxWindowId = AddWindow(&template2); FillWindowPixelBuffer(sMoneyBoxWindowId, 0); PutWindowTilemap(sMoneyBoxWindowId); - sub_814FF2C(sMoneyBoxWindowId, 0x21D, 0xD0); + TextWindow_SetStdFrame0_WithPal(sMoneyBoxWindowId, 0x21D, 0xD0); PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x21D, 13, amount); } void HideMoneyBox(void) { - sub_810F4D8(sMoneyBoxWindowId, FALSE); + ClearMenuWindow(sMoneyBoxWindowId, FALSE); CopyWindowToVram(sMoneyBoxWindowId, 2); RemoveWindow(sMoneyBoxWindowId); } diff --git a/src/mystery_event_msg.c b/src/mystery_event_msg.c index a21750b7a..7cde2d9f2 100644 --- a/src/mystery_event_msg.c +++ b/src/mystery_event_msg.c @@ -10,4 +10,4 @@ const u8 gText_MysteryGiftSentOver[] = _("{STR_VAR_1} was sent over!"); const u8 gText_MysteryGiftFullParty[] = _("Your party is full.\n{STR_VAR_1} could not be sent over."); const u8 gText_MysteryGiftNewTrainer[] = _("A new TRAINER has arrived in\nHOENN."); const u8 gText_MysteryGiftNewAdversaryInBattleTower[] = _("バトルタワーに あらたな\nたいせんしゃが あらわれた!"); -const u8 gText_MysteryGiftCantBeUsed[] = _("This data can’t be used in\nthis version."); +const u8 gText_MysteryGiftCantBeUsed[] = _("This data can't be used in\nthis version."); diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c new file mode 100644 index 000000000..9ff96eb23 --- /dev/null +++ b/src/mystery_gift_menu.c @@ -0,0 +1,1756 @@ +#include "global.h" +#include "palette.h" +#include "dma3.h" +#include "gpu_regs.h" +#include "bg.h" +#include "task.h" +#include "scanline_effect.h" +#include "malloc.h" +#include "text.h" +#include "window.h" +#include "text_window.h" +#include "menu.h" +#include "new_menu_helpers.h" +#include "sound.h" +#include "mystery_gift_menu.h" +#include "title_screen.h" +#include "list_menu.h" +#include "link_rfu.h" +#include "string_util.h" +#include "mevent.h" +#include "save.h" +#include "link.h" +#include "event_data.h" +#include "mevent_server.h" +#include "menews_jisan.h" +#include "help_system.h" +#include "constants/songs.h" + +EWRAM_DATA u8 sDownArrowCounterAndYCoordIdx[8] = {}; +EWRAM_DATA bool8 gGiftIsFromEReader = FALSE; + +void task_add_00_mystery_gift(void); +void task00_mystery_gift(u8 taskId); +void task_add_00_ereader(void); + +extern const u8 gText_PickOKExit[]; +extern const u8 gText_PickOKCancel[]; +extern const u8 gText_MysteryGift[]; +extern const u8 gJPText_MysteryGift[]; +extern const u8 gJPText_DecideStop[]; +extern const u8 gText_WhatToDoWithCards[]; +extern const u8 gText_WhatToDoWithNews[]; +extern const u8 gText_OkayToDiscardNews[]; +extern const u8 gText_IfThrowAwayCardEventWontHappen[]; +extern const u8 gText_WonderCardThrownAway[]; +extern const u8 gText_WonderNewsThrownAway[]; +extern const u8 gText_DataWillBeSaved[]; +extern const u8 gText_SaveCompletedPressA[]; +extern const u8 gText_WonderCards[]; +extern const u8 gText_WonderNews[]; +extern const u8 gText_Exit3[]; +extern const u8 gText_WirelessCommunication[]; +extern const u8 gText_Friend2[]; +extern const u8 gFameCheckerText_Cancel[]; +extern const u8 gText_Receive[]; +extern const u8 gText_Send[]; +extern const u8 gText_Toss[]; +extern const u8 gText_VarietyOfEventsImportedWireless[]; +extern const u8 gText_WonderCardsInPossession[]; +extern const u8 gText_ReadNewsThatArrived[]; +extern const u8 gText_ReturnToTitle[]; +extern const u8 gText_NothingSentOver[]; +extern const u8 gText_RecordUploadedViaWireless[]; +extern const u8 gText_WonderCardReceived[]; +extern const u8 gText_WonderCardReceivedFrom[]; +extern const u8 gText_WonderNewsReceived[]; +extern const u8 gText_WonderNewsReceivedFrom[]; +extern const u8 gText_NewStampReceived[]; +extern const u8 gText_AlreadyHadCard[]; +extern const u8 gText_AlreadyHadStamp[]; +extern const u8 gText_AlreadyHadNews[]; +extern const u8 gText_NoMoreRoomForStamps[]; +extern const u8 gText_CommunicationCanceled[]; +extern const u8 gText_CantAcceptCardFromTrainer[]; +extern const u8 gText_CantAcceptNewsFromTrainer[]; +extern const u8 gText_CommunicationError[]; +extern const u8 gText_NewTrainerReceived[]; +extern const u8 gText_WonderCardSentTo[]; +extern const u8 gText_WonderNewsSentTo[]; +extern const u8 gText_StampSentTo[]; +extern const u8 gText_OtherTrainerHasCard[]; +extern const u8 gText_OtherTrainerHasStamp[]; +extern const u8 gText_OtherTrainerHasNews[]; +extern const u8 gText_OtherTrainerCanceled[]; +extern const u8 gText_GiftSentTo[]; +extern const u8 gText_CantSendGiftToTrainer[]; +extern const u8 gText_DontHaveCardNewOneInput[]; +extern const u8 gText_DontHaveNewsNewOneInput[]; +extern const u8 gText_WhereShouldCardBeAccessed[]; +extern const u8 gText_WhereShouldNewsBeAccessed[]; +extern const u8 gText_Communicating[]; +extern const u8 gText_ThrowAwayWonderCard[]; +extern const u8 gText_HaventReceivedCardsGift[]; +extern const u8 gText_CommunicationCompleted[]; +extern const u8 gText_HaventReceivedGiftOkayToDiscard[]; +extern const u8 gText_SendingWonderCard[]; +extern const u8 gText_SendingWonderNews[]; + +const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); +const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); + +struct MysteryGiftTaskData +{ + u16 curPromptWindowId; + u16 unk2; + u16 unk4; + u16 unk6; + u8 state; + u8 textState; + u8 unkA; + u8 unkB; + u8 IsCardOrNews; + u8 source; + u8 prevPromptWindowId; + u8 * buffer; +}; + +const struct BgTemplate sBGTemplates[] = { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 15, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + }, { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 14, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x000 + }, { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 13, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x000 + }, { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 12, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0x000 + } +}; + +const struct WindowTemplate sMainWindows[] = { + { + .bg = 0x00, + .tilemapLeft = 0x00, + .tilemapTop = 0x00, + .width = 0x1e, + .height = 0x02, + .paletteNum = 0x0f, + .baseBlock = 0x0013 + }, { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x0f, + .width = 0x1c, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x004f + }, { + .bg = 0x00, + .tilemapLeft = 0x00, + .tilemapTop = 0x0f, + .width = 0x1e, + .height = 0x05, + .paletteNum = 0x0d, + .baseBlock = 0x004f + }, { + 0xFF + } +}; + +const struct WindowTemplate sWindowTemplate_PromptYesOrNo_Width28 = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x0f, + .width = 0x1c, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x00e5 +}; + +const struct WindowTemplate sWindowTemplate_PromptYesOrNo_Width20 = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x0f, + .width = 0x14, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x00e5 +}; + +const struct WindowTemplate sMysteryGiftMenuWindowTemplate = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x0f, + .width = 0x13, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x00e5 +}; + +const struct WindowTemplate sWindowTemplate_ThreeOptions = { + .bg = 0x00, + .tilemapLeft = 0x08, + .tilemapTop = 0x05, + .width = 0x0e, + .height = 0x05, + .paletteNum = 0x0e, + .baseBlock = 0x0155 +}; + +const struct WindowTemplate sWindowTemplate_YesNoBox = { + .bg = 0x00, + .tilemapLeft = 0x17, + .tilemapTop = 0x0f, + .width = 0x06, + .height = 0x04, + .paletteNum = 0x0e, + .baseBlock = 0x0155 +}; + +const struct WindowTemplate sWindowTemplate_7by8 = { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0c, + .width = 0x07, + .height = 0x07, + .paletteNum = 0x0e, + .baseBlock = 0x0155 +}; + +const struct WindowTemplate sWindowTemplate_7by6 = { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0e, + .width = 0x07, + .height = 0x05, + .paletteNum = 0x0e, + .baseBlock = 0x0155 +}; + +const struct WindowTemplate sWindowTemplate_7by4 = { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0f, + .width = 0x07, + .height = 0x04, + .paletteNum = 0x0e, + .baseBlock = 0x0155 +}; + +const struct ListMenuItem sListMenuItems_CardsOrNews[] = { + { gText_WonderCards, 0 }, + { gText_WonderNews, 1 }, + { gText_Exit3, -2 } +}; + +const struct ListMenuItem sListMenuItems_WirelessOrFriend[] = { + { gText_WirelessCommunication, 0 }, + { gText_Friend2, 1 }, + { gFameCheckerText_Cancel, -2 } +}; + +const struct ListMenuTemplate sListMenuTemplate_ThreeOptions = { + .items = NULL, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 3, + .maxShowed = 3, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 0, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 2, + .cursorKind = 0 +}; + +const struct ListMenuItem sListMenuItems_ReceiveSendToss[] = { + { gText_Receive, 0 }, + { gText_Send, 1 }, + { gText_Toss, 2 }, + { gFameCheckerText_Cancel, -2 } +}; + +const struct ListMenuItem sListMenuItems_ReceiveToss[] = { + { gText_Receive, 0 }, + { gText_Toss, 2 }, + { gFameCheckerText_Cancel, -2 } +}; + +const struct ListMenuItem sListMenuItems_ReceiveSend[] = { + { gText_Receive, 0 }, + { gText_Send, 1 }, + { gFameCheckerText_Cancel, -2 } +}; + +const struct ListMenuItem sListMenuItems_Receive[] = { + { gText_Receive, 0 }, + { gFameCheckerText_Cancel, -2 } +}; + +const struct ListMenuTemplate sListMenu_ReceiveSendToss = { + .items = sListMenuItems_ReceiveSendToss, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 4, + .maxShowed = 4, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 2, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 2, + .cursorKind = 0 +}; + +const struct ListMenuTemplate sListMenu_ReceiveToss = { + .items = sListMenuItems_ReceiveToss, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 3, + .maxShowed = 3, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 0, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 2, + .cursorKind = 0 +}; + +const struct ListMenuTemplate sListMenu_ReceiveSend = { + .items = sListMenuItems_ReceiveSend, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 3, + .maxShowed = 3, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 0, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 2, + .cursorKind = 0 +}; + +const struct ListMenuTemplate sListMenu_Receive = { + .items = sListMenuItems_Receive, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 2, + .maxShowed = 2, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 0, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 2, + .scrollMultiple = 0, + .fontId = 2, + .cursorKind = 0 +}; + +const u8 *const Unref_08366ED8[] = { + gText_VarietyOfEventsImportedWireless, + gText_WonderCardsInPossession, + gText_ReadNewsThatArrived, + gText_ReturnToTitle +}; + +ALIGNED(4) const struct TextColor sMG_Ereader_TextColor_1 = { 0, 1, 2 }; +ALIGNED(4) const struct TextColor sMG_Ereader_TextColor_1_Copy = { 0, 1, 2 }; +ALIGNED(4) const struct TextColor sMG_Ereader_TextColor_2 = { 1, 2, 3 }; + +const u8 gUnknown_8466EF3[] = _("テスト"); +const u8 gUnknown_8466EF7[] = _("むげんのチケット"); + +void vblankcb_mystery_gift_e_reader_run(void) +{ + ProcessSpriteCopyRequests(); + LoadOam(); + TransferPlttBuffer(); +} + +void c2_mystery_gift_e_reader_run(void) +{ + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); +} + +bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) +{ + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + ResetPaletteFade(); + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + ScanlineEffect_Stop(); + ResetBgsAndClearDma3BusyFlags(1); + + InitBgsFromTemplates(0, sBGTemplates, ARRAY_COUNT(sBGTemplates)); + 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); + + SetBgTilemapBuffer(3, Alloc(0x800)); + SetBgTilemapBuffer(2, Alloc(0x800)); + SetBgTilemapBuffer(1, Alloc(0x800)); + SetBgTilemapBuffer(0, Alloc(0x800)); + + LoadUserWindowBorderGfx(0, 10, 0xE0); + sub_814FDA0(0, 1, 0xF0); + DecompressAndLoadBgGfxUsingHeap(3, gUnkTextboxBorderGfx, 0x100, 0, 0); + InitWindows(sMainWindows); + DeactivateAllTextPrinters(); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + gMain.state++; + break; + case 1: + LoadPalette(gUnkTextboxBorderPal, 0, 0x20); + LoadPalette(stdpal_get(2), 0xd0, 0x20); + FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0x11); + FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); + FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); + MG_DrawCheckerboardPattern(); + PrintMysteryGiftOrEReaderTopMenu(mg_or_ereader, 0); + gMain.state++; + break; + case 2: + CopyBgTilemapBufferToVram(3); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(0); + gMain.state++; + break; + case 3: + ShowBg(0); + ShowBg(3); + PlayBGM(BGM_FRLG_MYSTERY_GIFT); + SetVBlankCallback(vblankcb_mystery_gift_e_reader_run); + EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + return TRUE; + } + + return FALSE; +} + +void c2_mystery_gift(void) +{ + if (HandleMysteryGiftOrEReaderSetup(0)) + { + SetMainCallback2(c2_mystery_gift_e_reader_run); + gGiftIsFromEReader = FALSE; + task_add_00_mystery_gift(); + } +} + +void c2_ereader(void) +{ + if (HandleMysteryGiftOrEReaderSetup(1)) + { + SetMainCallback2(c2_mystery_gift_e_reader_run); + gGiftIsFromEReader = TRUE; + task_add_00_ereader(); + } +} + +void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void) +{ + gGiftIsFromEReader = FALSE; + FreeAllWindowBuffers(); + Free(GetBgTilemapBuffer(0)); + Free(GetBgTilemapBuffer(1)); + Free(GetBgTilemapBuffer(2)); + Free(GetBgTilemapBuffer(3)); + SetMainCallback2(CB2_InitTitleScreen); +} + +void PrintMysteryGiftOrEReaderTopMenu(bool8 mg_or_ereader, bool32 usePickOkCancel) +{ + const u8 * src; + s32 width; + FillWindowPixelBuffer(0, 0x00); + if (!mg_or_ereader) + { + src = usePickOkCancel == TRUE ? gText_PickOKExit : gText_PickOKCancel; + AddTextPrinterParameterized4(0, 2, 2, 2, 0, 0, &sMG_Ereader_TextColor_1, 0, gText_MysteryGift); + width = 222 - GetStringWidth(0, src, 0); + AddTextPrinterParameterized4(0, 0, width, 2, 0, 0, &sMG_Ereader_TextColor_1, 0, src); + } + else + { + AddTextPrinterParameterized4(0, 2, 2, 2, 0, 0, &sMG_Ereader_TextColor_1, 0, gJPText_MysteryGift); + AddTextPrinterParameterized4(0, 0, 0x78, 2, 0, 0, &sMG_Ereader_TextColor_1, 0, gJPText_DecideStop); + } + CopyWindowToVram(0, 2); + PutWindowTilemap(0); +} + +void MG_DrawTextBorder(u8 windowId) +{ + DrawTextBorderOuter(windowId, 0x01, 0xF); +} + +void MG_DrawCheckerboardPattern(void) +{ + s32 i = 0, j; + + FillBgTilemapBufferRect(3, 0x003, 0, 0, 32, 2, 0x11); + + for (i = 0; i < 18; i++) + { + for (j = 0; j < 32; j++) + { + if ((i & 1) != (j & 1)) + { + FillBgTilemapBufferRect(3, 1, j, i + 2, 1, 1, 0x11); + } + else + { + FillBgTilemapBufferRect(3, 2, j, i + 2, 1, 1, 0x11); + } + } + } +} + +void ClearScreenInBg0(bool32 ignoreTopTwoRows) +{ + switch (ignoreTopTwoRows) + { + case 0: + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x11); + break; + case 1: + FillBgTilemapBufferRect(0, 0, 0, 2, 32, 30, 0x11); + break; + } + CopyBgTilemapBufferToVram(0); +} + +void AddTextPrinterToWindow1(const u8 *str) +{ + StringExpandPlaceholders(gStringVar4, str); + FillWindowPixelBuffer(1, 0x11); + AddTextPrinterParameterized4(1, 2, 0, 2, 0, 2, &sMG_Ereader_TextColor_2, 0, gStringVar4); + DrawTextBorderOuter(1, 0x001, 0xF); + PutWindowTilemap(1); + CopyWindowToVram(1, 3); +} + +void ClearTextWindow(void) +{ + rbox_fill_rectangle(1); + ClearWindowTilemap(1); + CopyWindowToVram(1, 1); +} + +bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str) +{ + switch (*textState) + { + case 0: + AddTextPrinterToWindow1(str); + goto inc; + case 1: + DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); + if (JOY_NEW(A_BUTTON | B_BUTTON)) + { + inc: + (*textState)++; + } + break; + case 2: + DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); + *textState = 0; + ClearTextWindow(); + return TRUE; + case 0xFF: + *textState = 2; + break; + } + return FALSE; +} + +void HideDownArrow(void) +{ + DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); +} + +void ShowDownArrow(void) +{ + DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); +} + +bool32 unref_HideDownArrowAndWaitButton(u8 * textState) +{ + switch (*textState) + { + case 0: + HideDownArrow(); + if (JOY_NEW(A_BUTTON | B_BUTTON)) + { + (*textState)++; + } + break; + case 1: + ShowDownArrow(); + *textState = 0; + return TRUE; + } + return FALSE; +} + +bool32 PrintStringAndWait2Seconds(u8 * counter, const u8 * str) +{ + if (*counter == 0) + { + AddTextPrinterToWindow1(str); + } + if (++(*counter) > 120) + { + *counter = 0; + ClearTextWindow(); + return TRUE; + } + else + { + return FALSE; + } +} + +u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whichMenu) +{ + struct ListMenuTemplate listMenuTemplate = sListMenuTemplate_ThreeOptions; + struct WindowTemplate windowTemplate = sWindowTemplate_ThreeOptions; + u32 width; + s32 finalWidth; + s32 response; + u32 i; + + if (whichMenu == 0) + { + listMenuTemplate.items = sListMenuItems_CardsOrNews; + } + else + { + listMenuTemplate.items = sListMenuItems_WirelessOrFriend; + } + width = 0; + for (i = 0; i < listMenuTemplate.totalItems; i++) + { + u32 curWidth = GetStringWidth(2, listMenuTemplate.items[i].label, listMenuTemplate.lettersSpacing); + if (curWidth > width) + width = curWidth; + } + finalWidth = (((width + 9) / 8) + 2) & ~1; + windowTemplate.width = finalWidth; + windowTemplate.tilemapLeft = (30 - finalWidth) / 2; + response = DoMysteryGiftListMenu(&windowTemplate, &listMenuTemplate, 1, 0x00A, 0xE0); + if (response != -1) + { + ClearWindowTilemap(2); + CopyWindowToVram(2, 1); + } + return response; +} + +s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, const u8 * str) +{ + struct WindowTemplate windowTemplate; + s8 input; + + switch (*textState) + { + case 0: + StringExpandPlaceholders(gStringVar4, str); + if (yesNoBoxPlacement == 0) + { + *windowId = AddWindow(&sWindowTemplate_PromptYesOrNo_Width28); + } + else + { + *windowId = AddWindow(&sWindowTemplate_PromptYesOrNo_Width20); + } + FillWindowPixelBuffer(*windowId, 0x11); + AddTextPrinterParameterized4(*windowId, 2, 0, 2, 0, 2, &sMG_Ereader_TextColor_2, 0, gStringVar4); + DrawTextBorderOuter(*windowId, 0x001, 0x0F); + CopyWindowToVram(*windowId, 2); + PutWindowTilemap(*windowId); + (*textState)++; + break; + case 1: + windowTemplate = sWindowTemplate_YesNoBox; + if (yesNoBoxPlacement == 0) + { + windowTemplate.tilemapTop = 9; + } + else + { + windowTemplate.tilemapTop = 15; + } + CreateYesNoMenu(&windowTemplate, 2, 0, 2, 10, 14, 0); + (*textState)++; + break; + case 2: + input = Menu_ProcessInputNoWrapClearOnChoose(); + if (input == -1 || input == 0 || input == 1) + { + *textState = 0; + rbox_fill_rectangle(*windowId); + ClearWindowTilemap(*windowId); + CopyWindowToVram(*windowId, 1); + RemoveWindow(*windowId); + return input; + } + break; + case 0xFF: + *textState = 0; + rbox_fill_rectangle(*windowId); + ClearWindowTilemap(*windowId); + CopyWindowToVram(*windowId, 1); + RemoveWindow(*windowId); + return -1; + } + + return -2; +} + +s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cannotToss, bool32 cannotSend) +{ + struct WindowTemplate windowTemplate; + s32 input; + + switch (*textState) + { + case 0: + if (cannotToss == 0) + { + StringExpandPlaceholders(gStringVar4, gText_WhatToDoWithCards); + } + else + { + StringExpandPlaceholders(gStringVar4, gText_WhatToDoWithNews); + } + *windowId = AddWindow(&sMysteryGiftMenuWindowTemplate); + FillWindowPixelBuffer(*windowId, 0x11); + AddTextPrinterParameterized4(*windowId, 2, 0, 2, 0, 2, &sMG_Ereader_TextColor_2, 0, gStringVar4); + DrawTextBorderOuter(*windowId, 0x001, 0x0F); + CopyWindowToVram(*windowId, 2); + PutWindowTilemap(*windowId); + (*textState)++; + break; + case 1: + windowTemplate = sWindowTemplate_YesNoBox; + if (cannotSend) + { + if (cannotToss == 0) + { + input = DoMysteryGiftListMenu(&sWindowTemplate_7by6, &sListMenu_ReceiveToss, 1, 0x00A, 0xE0); + } + else + { + input = DoMysteryGiftListMenu(&sWindowTemplate_7by4, &sListMenu_Receive, 1, 0x00A, 0xE0); + } + } + else + { + if (cannotToss == 0) + { + input = DoMysteryGiftListMenu(&sWindowTemplate_7by8, &sListMenu_ReceiveSendToss, 1, 0x00A, 0xE0); + } + else + { + input = DoMysteryGiftListMenu(&sWindowTemplate_7by6, &sListMenu_ReceiveSend, 1, 0x00A, 0xE0); + } + } + if (input != -1) + { + *textState = 0; + rbox_fill_rectangle(*windowId); + ClearWindowTilemap(*windowId); + CopyWindowToVram(*windowId, 1); + RemoveWindow(*windowId); + return input; + } + break; + case 0xFF: + *textState = 0; + rbox_fill_rectangle(*windowId); + ClearWindowTilemap(*windowId); + CopyWindowToVram(*windowId, 1); + RemoveWindow(*windowId); + return -2; + } + + return -1; +} + +bool32 ValidateCardOrNews(bool32 cardOrNews) +{ + if (cardOrNews == 0) + { + return ValidateReceivedWonderCard(); + } + else + { + return ValidateReceivedWonderNews(); + } +} + +bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) +{ + s32 v0; + + switch (*state) + { + case 0: + if (cardOrNews == 0) + { + InitWonderCardResources(GetSavedWonderCard(), sav1_get_mevent_buffer_2()); + } + else + { + InitWonderNewsResources(GetSavedWonderNews()); + } + (*state)++; + break; + case 1: + if (cardOrNews == 0) + { + v0 = FadeToWonderCardMenu(); + check: + if (v0 != 0) + { + goto done; + } + break; + } + else + { + v0 = FadeToWonderNewsMenu(); + goto check; + } + done: + *state = 0; + return TRUE; + } + + return FALSE; +} + +bool32 DestroyNewsOrCard(bool32 cardOrNews) +{ + if (cardOrNews == 0) + { + DestroyWonderCard(); + } + else + { + DestroyWonderNews(); + } + return TRUE; +} + +bool32 TearDownCardOrNews_ReturnToTopMenu(bool32 cardOrNews, bool32 arg1) +{ + if (cardOrNews == 0) + { + if (FadeOutFromWonderCard(arg1) != 0) + { + DestroyWonderCardResources(); + return TRUE; + } + else + { + return FALSE; + } + } + else + { + if (FadeOutFromWonderNews(arg1) != 0) + { + DestroyWonderNewsResources(); + return TRUE; + } + else + { + return FALSE; + } + } +} + +s32 mevent_message_prompt_discard(u8 * textState, u16 * windowId, bool32 cardOrNews) +{ + if (cardOrNews == 0) + { + return mevent_message_print_and_prompt_yes_no(textState, windowId, TRUE, gText_IfThrowAwayCardEventWontHappen); + } + else + { + return mevent_message_print_and_prompt_yes_no(textState, windowId, TRUE, gText_OkayToDiscardNews); + } +} + +bool32 mevent_message_was_thrown_away(u8 * textState, bool32 cardOrNews) +{ + if (cardOrNews == 0) + { + return MG_PrintTextOnWindow1AndWaitButton(textState, gText_WonderCardThrownAway); + } + else + { + return MG_PrintTextOnWindow1AndWaitButton(textState, gText_WonderNewsThrownAway); + } +} + +bool32 mevent_save_game(u8 * state) +{ + switch (*state) + { + case 0: + AddTextPrinterToWindow1(gText_DataWillBeSaved); + (*state)++; + break; + case 1: + TrySavingData(0); + (*state)++; + break; + case 2: + AddTextPrinterToWindow1(gText_SaveCompletedPressA); + (*state)++; + break; + case 3: + if (JOY_NEW(A_BUTTON | B_BUTTON)) + { + (*state)++; + } + break; + case 4: + *state = 0; + ClearTextWindow(); + return TRUE; + } + + return FALSE; +} + +const u8 * mevent_message(u32 * flag_p, u8 cardOrNews, u8 cardOrNewsSource, u32 msgId) +{ + const u8 * msg = NULL; + *flag_p = 0; + + switch (msgId) + { + case 0: + *flag_p = 0; + msg = gText_NothingSentOver; + break; + case 1: + *flag_p = 0; + msg = gText_RecordUploadedViaWireless; + break; + case 2: + *flag_p = 1; + msg = cardOrNewsSource == 0 ? gText_WonderCardReceived : gText_WonderCardReceivedFrom; + break; + case 3: + *flag_p = 1; + msg = cardOrNewsSource == 0 ? gText_WonderNewsReceived : gText_WonderNewsReceivedFrom; + break; + case 4: + *flag_p = 1; + msg = gText_NewStampReceived; + break; + case 5: + *flag_p = 0; + msg = gText_AlreadyHadCard; + break; + case 6: + *flag_p = 0; + msg = gText_AlreadyHadStamp; + break; + case 7: + *flag_p = 0; + msg = gText_AlreadyHadNews; + break; + case 8: + *flag_p = 0; + msg = gText_NoMoreRoomForStamps; + break; + case 9: + *flag_p = 0; + msg = gText_CommunicationCanceled; + break; + case 10: + *flag_p = 0; + msg = cardOrNews == 0 ? gText_CantAcceptCardFromTrainer : gText_CantAcceptNewsFromTrainer; + break; + case 11: + *flag_p = 0; + msg = gText_CommunicationError; + break; + case 12: + *flag_p = 1; + msg = gText_NewTrainerReceived; + break; + case 13: + *flag_p = 1; + break; + case 14: + *flag_p = 0; + break; + } + + return msg; +} + +bool32 PrintMGSuccessMessage(u8 * state, const u8 * arg1, u16 * arg2) +{ + switch (*state) + { + case 0: + if (arg1 != NULL) + { + AddTextPrinterToWindow1(arg1); + } + PlayFanfare(MUS_FANFA4); + *arg2 = 0; + (*state)++; + break; + case 1: + if (++(*arg2) > 0xF0) + { + (*state)++; + } + break; + case 2: + if (IsFanfareTaskInactive()) + { + *state = 0; + ClearTextWindow(); + return TRUE; + } + break; + } + return FALSE; +} + +const u8 * mevent_message_stamp_card_etc_send_status(u32 * a0, u8 unused, u32 msgId) +{ + const u8 * result = gText_CommunicationError; + *a0 = 0; + switch (msgId) + { + case 0: + result = gText_NothingSentOver; + break; + case 1: + result = gText_RecordUploadedViaWireless; + break; + case 2: + result = gText_WonderCardSentTo; + *a0 = 1; + break; + case 3: + result = gText_WonderNewsSentTo; + *a0 = 1; + break; + case 4: + result = gText_StampSentTo; + break; + case 5: + result = gText_OtherTrainerHasCard; + break; + case 6: + result = gText_OtherTrainerHasStamp; + break; + case 7: + result = gText_OtherTrainerHasNews; + break; + case 8: + result = gText_NoMoreRoomForStamps; + break; + case 9: + result = gText_OtherTrainerCanceled; + break; + case 10: + result = gText_CantSendGiftToTrainer; + break; + case 11: + result = gText_CommunicationError; + break; + case 12: + result = gText_GiftSentTo; + break; + case 13: + result = gText_GiftSentTo; + break; + case 14: + result = gText_CantSendGiftToTrainer; + break; + } + return result; +} + +bool32 PrintMGSendStatus(u8 * state, u16 * arg1, u8 arg2, u32 msgId) +{ + u32 flag; + const u8 * str = mevent_message_stamp_card_etc_send_status(&flag, arg2, msgId); + if (flag) + { + return PrintMGSuccessMessage(state, str, arg1); + } + else + { + return MG_PrintTextOnWindow1AndWaitButton(state, str); + } +} + +void task_add_00_mystery_gift(void) +{ + u8 taskId = CreateTask(task00_mystery_gift, 0); + struct MysteryGiftTaskData * data = (void *)gTasks[taskId].data; + data->state = 0; + data->textState = 0; + data->unkA = 0; + data->unkB = 0; + data->IsCardOrNews = 0; + data->source = 0; + data->curPromptWindowId = 0; + data->unk2 = 0; + data->unk4 = 0; + data->unk6 = 0; + data->prevPromptWindowId = 0; + data->buffer = AllocZeroed(0x40); +} + +void task00_mystery_gift(u8 taskId) +{ + struct MysteryGiftTaskData * data = (void *)gTasks[taskId].data; + u32 sp0; + const u8 * r1; + + switch (data->state) + { + case 0: + data->state = 1; + break; + case 1: + switch (MysteryGift_HandleThreeOptionMenu(&data->textState, &data->curPromptWindowId, FALSE)) + { + case 0: + data->IsCardOrNews = 0; + if (ValidateReceivedWonderCard() == TRUE) + { + data->state = 18; + } + else + { + data->state = 2; + } + break; + case 1: + data->IsCardOrNews = 1; + if (ValidateReceivedWonderNews() == TRUE) + { + data->state = 18; + } + else + { + data->state = 2; + } + break; + case -2u: + data->state = 37; + break; + } + break; + case 2: + { + if (data->IsCardOrNews == 0) + { + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_DontHaveCardNewOneInput)) + { + data->state = 3; + PrintMysteryGiftOrEReaderTopMenu(0, 1); + } + } + else + { + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_DontHaveNewsNewOneInput)) + { + data->state = 3; + PrintMysteryGiftOrEReaderTopMenu(0, 1); + } + } + break; + } + case 3: + if (data->IsCardOrNews == 0) + { + AddTextPrinterToWindow1(gText_WhereShouldCardBeAccessed); + } + else + { + AddTextPrinterToWindow1(gText_WhereShouldNewsBeAccessed); + } + data->state = 4; + break; + case 4: + switch (MysteryGift_HandleThreeOptionMenu(&data->textState, &data->curPromptWindowId, TRUE)) + { + case 0: + ClearTextWindow(); + data->state = 5; + data->source = 0; + break; + case 1: + ClearTextWindow(); + data->state = 5; + data->source = 1; + break; + case -2u: + ClearTextWindow(); + if (ValidateCardOrNews(data->IsCardOrNews)) + { + data->state = 18; + } + else + { + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); + } + break; + } + break; + case 5: + { + register u8 eos asm("r1"); + gStringVar1[0] = (eos = EOS); + gStringVar2[0] = eos; + gStringVar3[0] = eos; + } + switch (data->IsCardOrNews) + { + case 0: + if (data->source == 1) + { + MEvent_CreateTask_CardOrNewsWithFriend(0x15); + } + else if (data->source == 0) + { + MEvent_CreateTask_CardOrNewsOverWireless(0x15); + } + break; + case 1: + if (data->source == 1) + { + MEvent_CreateTask_CardOrNewsWithFriend(0x16); + } + else if (data->source == 0) + { + MEvent_CreateTask_CardOrNewsOverWireless(0x16); + } + break; + } + data->state = 6; + break; + case 6: + if (gReceivedRemoteLinkPlayers != 0) + { + ClearScreenInBg0(TRUE); + data->state = 7; + mevent_client_do_init(); + } + else if (gSpecialVar_Result == 5) + { + ClearScreenInBg0(TRUE); + data->state = 3; + } + break; + case 7: + AddTextPrinterToWindow1(gText_Communicating); + data->state = 8; + break; + case 8: + switch (mevent_client_do_exec(&data->curPromptWindowId)) + { + case 6: + task_add_05_task_del_08FA224_when_no_RfuFunc(); + data->prevPromptWindowId = data->curPromptWindowId; + data->state = 13; + break; + case 5: + memcpy(data->buffer, mevent_client_get_buffer(), 0x40); + mevent_client_inc_flag(); + break; + case 3: + data->state = 10; + break; + case 2: + data->state = 9; + break; + case 4: + data->state = 11; + StringCopy(gStringVar1, gLinkPlayers[0].name); + break; + } + break; + case 9: + switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, mevent_client_get_buffer())) + { + case 0: + mevent_client_set_param(0); + mevent_client_inc_flag(); + data->state = 7; + break; + case 1: + mevent_client_set_param(1); + mevent_client_inc_flag(); + data->state = 7; + break; + case -1u: + mevent_client_set_param(1); + mevent_client_inc_flag(); + data->state = 7; + break; + } + break; + case 10: + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, mevent_client_get_buffer())) + { + mevent_client_inc_flag(); + data->state = 7; + } + break; + case 11: + switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, gText_ThrowAwayWonderCard)) + { + case 0: + if (CheckReceivedGiftFromWonderCard() == TRUE) + { + data->state = 12; + } + else + { + mevent_client_set_param(0); + mevent_client_inc_flag(); + data->state = 7; + } + break; + case 1: + mevent_client_set_param(1); + mevent_client_inc_flag(); + data->state = 7; + break; + case -1u: + mevent_client_set_param(1); + mevent_client_inc_flag(); + data->state = 7; + break; + } + break; + case 12: + switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, gText_HaventReceivedCardsGift)) + { + case 0: + mevent_client_set_param(0); + mevent_client_inc_flag(); + data->state = 7; + break; + case 1: + mevent_client_set_param(1); + mevent_client_inc_flag(); + data->state = 7; + break; + case -1u: + mevent_client_set_param(1); + mevent_client_inc_flag(); + data->state = 7; + break; + } + break; + case 13: + if (IsNoOneConnected()) + { + DestroyWirelessStatusIndicatorSprite(); + data->state = 14; + } + break; + case 14: + if (PrintStringAndWait2Seconds(&data->textState, gText_CommunicationCompleted)) + { + if (data->source == 1) + { + StringCopy(gStringVar1, gLinkPlayers[0].name); + } + data->state = 15; + } + break; + case 15: + { + register bool32 flag asm("r1"); + r1 = mevent_message(&sp0, data->IsCardOrNews, data->source, data->prevPromptWindowId); + if (r1 == NULL) + { + r1 = data->buffer; + } + if (sp0) + { + flag = PrintMGSuccessMessage(&data->textState, r1, &data->curPromptWindowId); + } + else + { + flag = MG_PrintTextOnWindow1AndWaitButton(&data->textState, r1); + } + if (flag) + { + if (data->prevPromptWindowId == 3) + { + if (data->source == 1) + { + GenerateRandomNews(1); + } + else + { + GenerateRandomNews(2); + } + } + if (sp0 == 0) + { + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); + } + else + { + data->state = 17; + } + } + break; + } + case 16: + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_CommunicationError)) + { + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); + } + break; + case 17: + if (mevent_save_game(&data->textState)) + { + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); + } + break; + case 18: + if (HandleLoadWonderCardOrNews(&data->textState, data->IsCardOrNews)) + { + data->state = 20; + } + break; + case 20: + if (data->IsCardOrNews == 0) + { + if (JOY_NEW(A_BUTTON)) + { + data->state = 21; + } + if (JOY_NEW(B_BUTTON)) + { + data->state = 27; + } + } + else + { + switch (MENews_GetInput(gMain.newKeys)) + { + case 0: + MENews_RemoveScrollIndicatorArrowPair(); + data->state = 21; + break; + case 1: + data->state = 27; + break; + } + } + break; + case 21: + { + u32 result; + if (data->IsCardOrNews == 0) + { + if (WonderCard_Test_Unk_08_6()) + { + result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, FALSE); + } + else + { + result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, TRUE); + } + } + else + { + if (WonderNews_Test_Unk_02()) + { + result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, FALSE); + } + else + { + result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, TRUE); + } + } + switch (result) + { + case 0: + data->state = 28; + break; + case 1: + data->state = 29; + break; + case 2: + data->state = 22; + break; + case -2u: + if (data->IsCardOrNews == 1) + { + MENews_AddScrollIndicatorArrowPair(); + } + data->state = 20; + break; + } + break; + } + case 22: + switch (mevent_message_prompt_discard(&data->textState, &data->curPromptWindowId, data->IsCardOrNews)) + { + case 0: + if (data->IsCardOrNews == 0 && CheckReceivedGiftFromWonderCard() == TRUE) + { + data->state = 23; + } + else + { + data->state = 24; + } + break; + case 1: + data->state = 21; + break; + case -1: + data->state = 21; + break; + } + break; + case 23: + switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, TRUE, gText_HaventReceivedGiftOkayToDiscard)) + { + case 0: + data->state = 24; + break; + case 1: + data->state = 21; + break; + case -1u: + data->state = 21; + break; + } + break; + case 24: + if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 1)) + { + DestroyNewsOrCard(data->IsCardOrNews); + data->state = 25; + } + break; + case 25: + if (mevent_save_game(&data->textState)) + { + data->state = 26; + } + break; + case 26: + if (mevent_message_was_thrown_away(&data->textState, data->IsCardOrNews)) + { + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); + } + break; + case 27: + if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 0)) + { + data->state = 0; + } + break; + case 28: + if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 1)) + { + data->state = 3; + } + break; + case 29: + if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 1)) + { + switch (data->IsCardOrNews) + { + case 0: + MEvent_CreateTask_Leader(21); + break; + case 1: + MEvent_CreateTask_Leader(22); + break; + } + data->source = 1; + data->state = 30; + } + break; + case 30: + if (gReceivedRemoteLinkPlayers != 0) + { + ClearScreenInBg0(1); + data->state = 31; + } + else if (gSpecialVar_Result == 5) + { + ClearScreenInBg0(1); + data->state = 18; + } + break; + case 31: + { + register u8 eos asm("r1"); + gStringVar1[0] = (eos = EOS); + gStringVar2[0] = eos; + gStringVar3[0] = eos; + } + if (data->IsCardOrNews == 0) + { + AddTextPrinterToWindow1(gText_SendingWonderCard); + mevent_srv_new_wcard(); + } + else + { + AddTextPrinterToWindow1(gText_SendingWonderNews); + mevent_srv_init_wnews(); + } + data->state = 32; + break; + case 32: + if (mevent_srv_common_do_exec(&data->curPromptWindowId) == 3) + { + data->prevPromptWindowId = data->curPromptWindowId; + data->state = 33; + } + break; + case 33: + task_add_05_task_del_08FA224_when_no_RfuFunc(); + StringCopy(gStringVar1, gLinkPlayers[1].name); + data->state = 34; + break; + case 34: + if (IsNoOneConnected()) + { + DestroyWirelessStatusIndicatorSprite(); + data->state = 35; + } + break; + case 35: + if (PrintMGSendStatus(&data->textState, &data->curPromptWindowId, data->source, data->prevPromptWindowId)) + { + if (data->source == 1 && data->prevPromptWindowId == 3) + { + GenerateRandomNews(3); + data->state = 17; + } + else + { + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); + } + } + break; + case 36: + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_CommunicationError)) + { + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); + } + break; + case 37: + CloseLink(); + sub_812B484(); + Free(data->buffer); + DestroyTask(taskId); + SetMainCallback2(MainCB_FreeAllBuffersAndReturnToInitTitleScreen); + break; + } +} + +u16 GetMysteryGiftBaseBlock(void) +{ + return 0x19B; +} diff --git a/src/oak_speech.c b/src/oak_speech.c new file mode 100644 index 000000000..3bf174778 --- /dev/null +++ b/src/oak_speech.c @@ -0,0 +1,1891 @@ +#include "global.h" +#include "main.h" +#include "decompress.h" +#include "task.h" +#include "malloc.h" +#include "gpu_regs.h" +#include "wild_encounter.h" +#include "palette.h" +#include "blend_palette.h" +#include "text.h" +#include "window.h" +#include "text_window.h" +#include "bg.h" +#include "menu.h" +#include "help_system.h" +#include "new_menu_helpers.h" +#include "pokemon_3.h" +#include "sound.h" +#include "event_scripts.h" +#include "scanline_effect.h" +#include "string_util.h" +#include "pokeball.h" +#include "naming_screen.h" +#include "math_util.h" +#include "overworld.h" +#include "random.h" +#include "oak_speech.h" +#include "constants/species.h" +#include "constants/songs.h" + +struct OakSpeechResources +{ + void * solidColorsGfx; + void * trainerPicTilemapBuffer; + void * unk_0008; + u8 filler_000C[4]; + u16 unk_0010; + u16 unk_0012; + u16 unk_0014[4]; + u8 unk_001C[3]; + u8 textSpeed; + u8 filler_0020[0x1800]; + u8 bg2TilemapBuffer[0x400]; + u8 bg1TilemapBuffer[0x800]; +}; //size=0x2420 + +EWRAM_DATA struct OakSpeechResources * sOakSpeechResources = NULL; + +static void Task_OaksSpeech1(u8 taskId); +static void CreateHelpDocsPage1(void); +static void Task_OaksSpeech2(u8 taskId); +static void Task_OakSpeech3(u8 taskId); +static void Task_OakSpeech5(u8 taskId); +static void Task_OakSpeech6(u8 taskId); +static void Task_OakSpeech7(u8 taskId); +static void Task_OakSpeech8(u8 taskId); +static void Task_OakSpeech9(u8 taskId); +static void Task_OakSpeech10(u8 taskId); +static void Task_OakSpeech10(u8 taskId); +static void Task_OakSpeech11(u8 taskId); +static void Task_OakSpeech12(u8 taskId); +static void Task_OakSpeech13(u8 taskId); +static void Task_OakSpeech14(u8 taskId); +static void Task_OakSpeech15(u8 taskId); +static void Task_OakSpeech16(u8 taskId); +static void Task_OakSpeech17(u8 taskId); +static void Task_OakSpeech18(u8 taskId); +static void Task_OakSpeech19(u8 taskId); +static void Task_OakSpeech20(u8 taskId); +static void Task_OakSpeech21(u8 taskId); +static void Task_OakSpeech22(u8 taskId); +static void Task_OakSpeech23(u8 taskId); +static void Task_OakSpeech24(u8 taskId); +static void Task_OakSpeech29(u8 taskId); +static void Task_OakSpeech25(u8 taskId); +static void Task_OakSpeech26(u8 taskId); +static void Task_OakSpeech27(u8 taskId); +static void Task_OakSpeech30(u8 taskId); +static void Task_OakSpeech31(u8 taskId); +static void Task_OakSpeech32(u8 taskId); +static void Task_OakSpeech34(u8 taskId); +static void Task_OakSpeech33(u8 taskId); +static void Task_OakSpeech36(u8 taskId); +static void Task_OakSpeech37(u8 taskId); +static void Task_OakSpeech38(u8 taskId); +static void Task_OakSpeech38_3(u8 taskId); +static void Task_OakSpeech39(u8 taskId); +static void Task_OakSpeech38_1(u8 taskId); +static void Task_OakSpeech38_sub1(u8 taskId); +static void Task_OakSpeech38_2(u8 taskId); +static void Task_OakSpeech38_sub2(u8 taskId); +static void Task_OakSpeech40(u8 taskId); +static void Task_OakSpeech41(u8 taskId); +static void Task_OakSpeech42(u8 taskId); + +static void CB2_ReturnFromNamingScreen(void); +static void CreateNidoranFSprite(u8 taskId); +static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 state); +static void DestroyLinkedPikaOrGrassPlatformSprites(u8 taskId, u8 state); +static void LoadOaksSpeechTrainerPic(u16 whichPic, u16 tileOffset); +static void DestroyOaksSpeechTrainerPic(void); +static void CreateFadeInTask(u8 taskId, u8 state); +static void CreateFadeOutTask(u8 taskId, u8 state); +static void PrintNameChoiceOptions(u8 taskId, u8 state); +static void GetDefaultName(u8 arg0, u8 namePick); + +extern const u8 gText_Controls[]; +extern const u8 gText_ABUTTONNext[]; +extern const u8 gText_ABUTTONNext_BBUTTONBack[]; +extern const u8 gText_Boy[]; +extern const u8 gText_Girl[]; + +extern const struct CompressedSpriteSheet gUnknown_8235194[]; +extern const struct CompressedSpritePalette gUnknown_82373F4; + +ALIGNED(4) static const u16 sHelpDocsPalette[] = INCBIN_U16("data/oak_speech/help_docs_palette.gbapal"); +static const u32 sOakSpeechGfx_GameStartHelpUI[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_game_start_help_u_i.4bpp.lz"); +static const u32 sNewGameAdventureIntroTilemap[] = INCBIN_U32("data/oak_speech/new_game_adventure_intro_tilemap.bin.lz"); +static const u32 sOakSpeechGfx_SolidColors[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_solid_colors.4bpp.lz"); +static const u32 sOakSpeech_BackgroundTilemap[] = INCBIN_U32("data/oak_speech/oak_speech_background_tilemap.bin.lz"); +static const u16 sHelpDocsPage2Tilemap[] = INCBIN_U16("data/oak_speech/help_docs_page2_tilemap.bin"); +static const u16 sHelpDocsPage3Tilemap[] = INCBIN_U16("data/oak_speech/help_docs_page3_tilemap.bin"); +static const u16 sOakSpeechGfx_LeafPal[] = INCBIN_U16("data/oak_speech/oak_speech_gfx_leaf_pal.gbapal"); +static const u32 sOakSpeechGfx_LeafPic[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_leaf_pic.8bpp.lz"); +static const u16 sOakSpeechGfx_RedPal[] = INCBIN_U16("data/oak_speech/oak_speech_gfx_red_pal.gbapal"); +static const u32 sOakSpeechGfx_RedPic[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_red_pic.8bpp.lz"); +static const u16 sOakSpeechGfx_OakPal[] = INCBIN_U16("data/oak_speech/oak_speech_gfx_oak_pal.gbapal"); +static const u32 sOakSpeechGfx_OakPic[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_oak_pic.8bpp.lz"); +static const u16 sOakSpeechGfx_RivalPal[] = INCBIN_U16("data/oak_speech/oak_speech_gfx_rival_pal.gbapal"); +static const u32 sOakSpeechGfx_RivalPic[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_rival_pic.8bpp.lz"); +static const u16 sOakSpeech_GrassPlatformPalette[] = INCBIN_U16("data/oak_speech/oak_speech_grass_platform_palette.gbapal"); +static const u16 sOakSpeech_PikaPalette[] = INCBIN_U16("data/oak_speech/oak_speech_pika_palette.gbapal"); +static const u32 sOakSpeechGfx_GrassPlatform[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_grass_platform.4bpp.lz"); +static const u32 sOakSpeechGfx_Pika1[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_pika1.4bpp.lz"); +static const u32 sOakSpeechGfx_Pika2[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_pika2.4bpp.lz"); +static const u32 sOakSpeechGfx_PikaEyes[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_pika_eyes.4bpp.lz"); + +static const struct BgTemplate sBgTemplates[3] = { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + }, { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x000 + }, { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 28, + .screenSize = 1, + .paletteMode = 1, + .priority = 1, + .baseTile = 0x000 + } +}; + +static const struct WindowTemplate sHelpDocsWindowTemplates1[] = { + { + .bg = 0x00, + .tilemapLeft = 0x00, + .tilemapTop = 0x07, + .width = 0x1e, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x0001 + }, DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sHelpDocsWindowTemplates2[] = { + { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x03, + .width = 0x18, + .height = 0x06, + .paletteNum = 0x0f, + .baseBlock = 0x0001 + }, { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0a, + .width = 0x18, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x0092 + }, { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x18, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x00f3 + }, DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sHelpDocsWindowTemplates3[] = { + { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x03, + .width = 0x18, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x0001 + }, { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x08, + .width = 0x18, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x0062 + }, { + .bg = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0d, + .width = 0x18, + .height = 0x06, + .paletteNum = 0x0f, + .baseBlock = 0x00c3 + }, DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate *const sHelpDocsWindowTemplatePtrs[3] = { + sHelpDocsWindowTemplates1, + sHelpDocsWindowTemplates2, + sHelpDocsWindowTemplates3 +}; + +static const struct WindowTemplate sNewGameAdventureIntroWindowTemplates[] = { + { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x04, + .width = 0x1c, + .height = 0x0f, + .paletteNum = 0x0f, + .baseBlock = 0x0001 + }, { + .bg = 0x00, + .tilemapLeft = 0x12, + .tilemapTop = 0x09, + .width = 0x09, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x0174 + }, { + .bg = 0x00, + .tilemapLeft = 0x02, + .tilemapTop = 0x02, + .width = 0x06, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x0180 + }, { + .bg = 0x00, + .tilemapLeft = 0x02, + .tilemapTop = 0x02, + .width = 0x0c, + .height = 0x0a, + .paletteNum = 0x0f, + .baseBlock = 0x0001 + }, DUMMY_WIN_TEMPLATE +}; + +ALIGNED(4) const struct TextColor sTextColor_HelpSystem = { + 0x00, 0x01, 0x02 +}; + +ALIGNED(4) const struct TextColor sTextColor_OakSpeech = { + 0x00, 0x02, 0x03 +}; + +static const u8 *const sNewGameAdventureIntroTextPointers[] = { + gNewGameAdventureIntro1, + gNewGameAdventureIntro2, + gNewGameAdventureIntro3 +}; + +static const struct CompressedSpriteSheet sOakSpeech_PikaSpriteSheets[3] = { + { (const void *)sOakSpeechGfx_Pika1, 0x0400, 0x1001 }, + { (const void *)sOakSpeechGfx_Pika2, 0x0200, 0x1002 }, + { (const void *)sOakSpeechGfx_PikaEyes, 0x0080, 0x1003 }, +}; + +static const struct CompressedSpriteSheet sOakSpeech_GrassPlatformSpriteSheet = { + (const void *)sOakSpeechGfx_GrassPlatform, 0x0600, 0x1000 +}; + +static const struct SpritePalette sOakSpeech_PikaSpritePal = { + (const void *)sOakSpeech_PikaPalette, 0x1001 +}; + +static const struct SpritePalette sOakSpeech_GrassPlatformSpritePal = { + (const void *)sOakSpeech_GrassPlatformPalette, 0x1000 +}; + +static const union AnimCmd sGrassPlatformAnim1[] = { + ANIMCMD_FRAME( 0, 0), + ANIMCMD_END +}; + +static const union AnimCmd sGrassPlatformAnim2[] = { + ANIMCMD_FRAME(16, 0), + ANIMCMD_END +}; + +static const union AnimCmd sGrassPlatformAnim3[] = { + ANIMCMD_FRAME(32, 0), + ANIMCMD_END +}; + +static const union AnimCmd *const sGrassPlatformAnims1[] = { + sGrassPlatformAnim1 +}; +static const union AnimCmd *const sGrassPlatformAnims2[] = { + sGrassPlatformAnim2 +}; +static const union AnimCmd *const sGrassPlatformAnims3[] = { + sGrassPlatformAnim3 +}; + +extern const struct OamData gOamData_83ACAF8; + +static const struct SpriteTemplate sOakSpeech_GrassPlatformSpriteTemplates[3] = { + { 0x1000, 0x1000, &gOamData_83ACAF8, sGrassPlatformAnims1, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }, + { 0x1000, 0x1000, &gOamData_83ACAF8, sGrassPlatformAnims2, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }, + { 0x1000, 0x1000, &gOamData_83ACAF8, sGrassPlatformAnims3, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }, +}; + +static const union AnimCmd sPikaAnim1[] = { + ANIMCMD_FRAME( 0, 30), + ANIMCMD_FRAME(16, 30), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sPikaAnim2[] = { + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sPikaAnim3[] = { + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(2, 8), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sPikaAnims1[] = { + sPikaAnim1 +}; +static const union AnimCmd *const sPikaAnims2[] = { + sPikaAnim2 +}; +static const union AnimCmd *const sPikaAnims3[] = { + sPikaAnim3 +}; + +extern const struct OamData gOamData_83AC9D8; +extern const struct OamData gOamData_83AC9F8; +extern const struct OamData gOamData_83AC9E8; + +static const struct SpriteTemplate sOakSpeech_PikaSpriteTemplates[3] = { + { 0x1001, 0x1001, &gOamData_83AC9D8, sPikaAnims1, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }, + { 0x1002, 0x1001, &gOamData_83AC9F8, sPikaAnims2, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }, + { 0x1003, 0x1001, &gOamData_83AC9E8, sPikaAnims3, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy } +}; + +static const u8 *const sHelpDocsPtrs[] = { + gNewGame_HelpDocs2, gNewGame_HelpDocs3, gNewGame_HelpDocs4, + gNewGame_HelpDocs5, gNewGame_HelpDocs6, gNewGame_HelpDocs7 +}; + +static const u8 *const sMaleNameChoices[] = { + gNameChoice_Red, + gNameChoice_Fire, + gNameChoice_Ash, + gNameChoice_Kene, + gNameChoice_Geki, + gNameChoice_Jak, + gNameChoice_Janne, + gNameChoice_Jonn, + gNameChoice_Kamon, + gNameChoice_Karl, + gNameChoice_Taylor, + gNameChoice_Oscar, + gNameChoice_Hiro, + gNameChoice_Max, + gNameChoice_Jon, + gNameChoice_Ralph, + gNameChoice_Kay, + gNameChoice_Tosh, + gNameChoice_Roak +}; + +static const u8 *const sFemaleNameChoices[] = { + gNameChoice_Red, + gNameChoice_Fire, + gNameChoice_Omi, + gNameChoice_Jodi, + gNameChoice_Amanda, + gNameChoice_Hillary, + gNameChoice_Makey, + gNameChoice_Michi, + gNameChoice_Paula, + gNameChoice_June, + gNameChoice_Cassie, + gNameChoice_Rey, + gNameChoice_Seda, + gNameChoice_Kiko, + gNameChoice_Mina, + gNameChoice_Norie, + gNameChoice_Sai, + gNameChoice_Momo, + gNameChoice_Suzi +}; + +static const u8 *const sRivalNameChoices[] = { + gNameChoice_Green, + gNameChoice_Gary, + gNameChoice_Kaz, + gNameChoice_Toru +}; + +static void VBlankCB_NewGameOaksSpeech(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void CB2_NewGameOaksSpeech(void) +{ + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void StartNewGameScene(void) +{ + gPlttBufferUnfaded[0] = RGB_BLACK; + gPlttBufferFaded[0] = RGB_BLACK; + CreateTask(Task_OaksSpeech1, 0); + SetMainCallback2(CB2_NewGameOaksSpeech); +} + +static void Task_OaksSpeech1(u8 taskId) +{ + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + SetHBlankCallback(NULL); + DmaFill16(3, 0, VRAM, VRAM_SIZE); + DmaFill32(3, 0, OAM, OAM_SIZE); + DmaFill16(3, 0, PLTT + sizeof(u16), PLTT_SIZE - 2); + ResetPaletteFade(); + ScanlineEffect_Stop(); + ResetSpriteData(); + FreeAllSpritePalettes(); + reset_temp_tile_data_buffers(); + HelpSystem_SetSomeVariable2(2); + break; + case 1: + sOakSpeechResources = AllocZeroed(sizeof(*sOakSpeechResources)); + SetUpMonSpriteManagerMaybe(1, 1); + break; + case 2: + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WIN1H, 0); + SetGpuReg(REG_OFFSET_WIN1V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + break; + case 3: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(1, sBgTemplates, NELEMS(sBgTemplates)); + SetBgTilemapBuffer(1, sOakSpeechResources->bg1TilemapBuffer); + SetBgTilemapBuffer(2, sOakSpeechResources->bg2TilemapBuffer); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + gSpriteCoordOffsetX = 0; + gSpriteCoordOffsetY = 0; + break; + case 4: + gPaletteFade.bufferTransferDisabled = TRUE; + InitStandardTextBoxWindows(); + ResetBg0(); + Menu_LoadStdPalAt(0xD0); + LoadPalette(sHelpDocsPalette, 0x000, 0x080); + LoadPalette(stdpal_get(2) + 15, 0x000, 0x002); + break; + case 5: + sOakSpeechResources->textSpeed = GetTextSpeedSetting(); + gTextFlags.canABSpeedUpPrint = TRUE; + decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_GameStartHelpUI, 0, 0, 0); + break; + case 6: + if (free_temp_tile_data_buffers_if_possible()) + return; + ClearDialogWindowAndFrame(0, 1); + FillBgTilemapBufferRect_Palette0(1, 0x0000, 0, 0, 32, 32); + CopyBgTilemapBufferToVram(1); + break; + case 7: + CreateWindow_SnapRight_StdPal(0, 30, 0, 13, 0x1C4); + FillBgTilemapBufferRect_Palette0(1, 0xD00F, 0, 0, 30, 2); + FillBgTilemapBufferRect_Palette0(1, 0xD002, 0, 2, 30, 1); + FillBgTilemapBufferRect_Palette0(1, 0xD00E, 0, 19, 30, 1); + CreateHelpDocsPage1(); + gPaletteFade.bufferTransferDisabled = FALSE; + gTasks[taskId].data[5] = CreateTextCursorSpriteForOakSpeech(0, 0xE6, 0x95, 0, 0); + BlendPalettes(0xFFFFFFFF, 0x10, 0x00); + break; + case 10: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + SetVBlankCallback(VBlankCB_NewGameOaksSpeech); + PlayBGM(BGM_FRLG_GAME_EXPLANATION_START); + gTasks[taskId].func = Task_OaksSpeech2; + gMain.state = 0; + return; + } + + gMain.state++; +} + +static void CreateHelpDocsPage1(void) +{ + Menu_PrintHelpSystemUIHeader(gText_Controls, gText_ABUTTONNext, 0, 0, 1); + sOakSpeechResources->unk_0014[0] = AddWindow(sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012]); + PutWindowTilemap(sOakSpeechResources->unk_0014[0]); + FillWindowPixelBuffer(sOakSpeechResources->unk_0014[0], 0x00); + AddTextPrinterParameterized4(sOakSpeechResources->unk_0014[0], 2, 2, 0, 1, 1, &sTextColor_HelpSystem, 0, gNewGame_HelpDocs1); + CopyWindowToVram(sOakSpeechResources->unk_0014[0], 3); + FillBgTilemapBufferRect_Palette0(1, 0x3000, 1, 3, 5, 16); + CopyBgTilemapBufferToVram(1); +} + +static void Task_OakSpeech4(u8 taskId) +{ + u8 i = 0; + u8 r7 = sOakSpeechResources->unk_0012 - 1; + if (sOakSpeechResources->unk_0012 == 0) + { + CreateHelpDocsPage1(); + } + else + { + PrintTextOnRightSnappedWindow(gText_ABUTTONNext_BBUTTONBack, 0, 1); + for (i = 0; i < 3; i++) + { + sOakSpeechResources->unk_0014[i] = AddWindow(&sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012][i]); + PutWindowTilemap(sOakSpeechResources->unk_0014[i]); + FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00); + AddTextPrinterParameterized4(sOakSpeechResources->unk_0014[i], 2, 6, 0, 1, 1, &sTextColor_HelpSystem, 0, sHelpDocsPtrs[i + r7 * 3]); + CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3); + } + + if (sOakSpeechResources->unk_0012 == 1) + { + CopyToBgTilemapBufferRect(1, sHelpDocsPage2Tilemap, 1, 3, 5, 16); + } + else + { + CopyToBgTilemapBufferRect(1, sHelpDocsPage3Tilemap, 1, 3, 5, 16); + } + CopyBgTilemapBufferToVram(1); + } + BeginNormalPaletteFade(0xFFFFDFFF, -1, 16, 0, stdpal_get(2)[15]); + gTasks[taskId].func = Task_OaksSpeech2; +} + +static void Task_OaksSpeech2(u8 taskId) +{ + if (!gPaletteFade.active && JOY_NEW((A_BUTTON | B_BUTTON))) + { + if (JOY_NEW(A_BUTTON)) + { + gTasks[taskId].data[15] = 1; + if (sOakSpeechResources->unk_0012 < 2) + { + BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]); + } + } + else + { + if (sOakSpeechResources->unk_0012 != 0) + { + gTasks[taskId].data[15] = -1; + BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]); + } + else + return; + } + } + else + return; + PlaySE(SE_SELECT); + gTasks[taskId].func = Task_OakSpeech3; +} + +static void Task_OakSpeech3(u8 taskId) +{ + u8 r8 = 0; + u8 i; + + if (!gPaletteFade.active) + { + switch (sOakSpeechResources->unk_0012) { + case 0: + r8 = 1; + break; + case 1: + case 2: + r8 = 3; + break; + } + sOakSpeechResources->unk_0012 += gTasks[taskId].data[15]; + if (sOakSpeechResources->unk_0012 < 3) + { + for (i = 0; i < r8; i++) + { + FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00); + ClearWindowTilemap(sOakSpeechResources->unk_0014[i]); + CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3); + RemoveWindow(sOakSpeechResources->unk_0014[i]); + sOakSpeechResources->unk_0014[i] = 0; + } + gTasks[taskId].func = Task_OakSpeech4; + } + else + { + BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, 0); + gTasks[taskId].func = Task_OakSpeech5; + } + } +} + +static void Task_OakSpeech5(u8 taskId) +{ + u8 i = 0; + + if (!gPaletteFade.active) + { + for (i = 0; i < 3; i++) + { + FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00); + ClearWindowTilemap(sOakSpeechResources->unk_0014[i]); + CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3); + RemoveWindow(sOakSpeechResources->unk_0014[i]); + sOakSpeechResources->unk_0014[i] = 0; + } + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 18); + CopyBgTilemapBufferToVram(1); + sub_8006398(gTasks[taskId].data[5]); + sOakSpeechResources->unk_0014[0] = RGB_BLACK; + LoadPalette(sOakSpeechResources->unk_0014, 0, 2); + gTasks[taskId].data[3] = 32; + gTasks[taskId].func = Task_OakSpeech6; + } +} + +static void Task_OakSpeech6(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u32 sp14 = 0; + + if (data[3] != 0) + data[3]--; + else + { + PlayBGM(BGM_FRLG_GAME_EXPLANATION_MIDDLE); + sub_810F71C(); + PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1); + sOakSpeechResources->unk_0008 = malloc_and_decompress(sNewGameAdventureIntroTilemap, &sp14); + CopyToBgTilemapBufferRect(1, sOakSpeechResources->unk_0008, 0, 2, 30, 19); + CopyBgTilemapBufferToVram(1); + Free(sOakSpeechResources->unk_0008); + sOakSpeechResources->unk_0008 = NULL; + data[14] = AddWindow(&sNewGameAdventureIntroWindowTemplates[0]); + PutWindowTilemap(data[14]); + FillWindowPixelBuffer(data[14], 0x00); + CopyWindowToVram(data[14], 3); + sOakSpeechResources->unk_0012 = 0; + gMain.state = 0; + data[15] = 16; + AddTextPrinterParameterized4(data[14], 2, 3, 5, 1, 0, &sTextColor_OakSpeech, 0, sNewGameAdventureIntroTextPointers[0]); + data[5] = CreateTextCursorSpriteForOakSpeech(0, 0xe2, 0x91, 0, 0); + gSprites[data[5]].oam.objMode = ST_OAM_OBJ_BLEND; + gSprites[data[5]].oam.priority = 0; + CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 2, 16, 0, 0); + gTasks[taskId].func = Task_OakSpeech7; + } +} + +static void Task_OakSpeech7(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + switch (gMain.state) + { + case 0: + if (!gPaletteFade.active) + { + SetGpuReg(REG_OFFSET_WIN0H, 0x00F0); + SetGpuReg(REG_OFFSET_WIN0V, 0x10A0); + SetGpuReg(REG_OFFSET_WININ, 0x003F); + SetGpuReg(REG_OFFSET_WINOUT, 0x001F); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + gMain.state = 1; + } + break; + case 1: + if (JOY_NEW((A_BUTTON | B_BUTTON))) + { + if (JOY_NEW(A_BUTTON)) + { + sOakSpeechResources->unk_0012++; + } + else if (sOakSpeechResources->unk_0012 != 0) + { + sOakSpeechResources->unk_0012--; + } + else + { + break; + } + PlaySE(SE_SELECT); + if (sOakSpeechResources->unk_0012 == 3) + { + gMain.state = 4; + } + else + { + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1); + SetGpuReg(REG_OFFSET_BLDALPHA, (16 - data[15]) | data[15]); + gMain.state++; + } + } + break; + case 2: + data[15] -= 2; + SetGpuReg(REG_OFFSET_BLDALPHA, ((16 - data[15]) << 8) | data[15]); + if (data[15] <= 0) + { + FillWindowPixelBuffer(data[14], 0x00); + AddTextPrinterParameterized4(data[14], 2, 3, 5, 1, 0, &sTextColor_OakSpeech, 0, sNewGameAdventureIntroTextPointers[sOakSpeechResources->unk_0012]); + if (sOakSpeechResources->unk_0012 == 0) + { + sub_810F71C(); + PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1); + } + else + { + sub_810F71C(); + PrintTextOnRightSnappedWindow(gText_ABUTTONNext_BBUTTONBack, 0, 1); + } + gMain.state++; + } + break; + case 3: + data[15] += 2; + SetGpuReg(REG_OFFSET_BLDALPHA, ((16 - data[15]) << 8) | data[15]); + if (data[15] >= 16) + { + data[15] = 16; + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + gMain.state = 1; + } + break; + case 4: + sub_8006398(gTasks[taskId].data[5]); + PlayBGM(BGM_FRLG_GAME_EXPLANATION_END); + data[15] = 24; + gMain.state++; + break; + default: + if (data[15] != 0) + data[15]--; + else + { + gMain.state = 0; + sOakSpeechResources->unk_0012 = 0; + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_OakSpeech8; + } + break; + } +} + +static void Task_OakSpeech8(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!gPaletteFade.active) + { + sub_810F740(); + FillWindowPixelBuffer(data[14], 0x00); + ClearWindowTilemap(data[14]); + CopyWindowToVram(data[14], 3); + RemoveWindow(data[14]); + data[14] = 0; + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(1); + DestroyLinkedPikaOrGrassPlatformSprites(taskId, 0); + data[3] = 80; + gTasks[taskId].func = Task_OakSpeech9; + } +} + +static void Task_OakSpeech9(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u32 size = 0; + + if (data[3] != 0) + data[3]--; + else + { + sOakSpeechResources->solidColorsGfx = malloc_and_decompress(sOakSpeechGfx_SolidColors, &size); + LoadBgTiles(1, sOakSpeechResources->solidColorsGfx, size, 0); + CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0); + CopyBgTilemapBufferToVram(1); + CreateNidoranFSprite(taskId); + LoadOaksSpeechTrainerPic(3, 0); + CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1); + PlayBGM(BGM_FRLG_ROUTE_24); + BeginNormalPaletteFade(0xFFFFFFFF, 5, 16, 0, RGB_BLACK); + data[3] = 80; + ShowBg(2); + gTasks[taskId].func = Task_OakSpeech10; + } +} + +#define OaksSpeechPrintMessage(str, speed) ({ \ + DrawDialogueFrame(0, FALSE);\ + if (str != gStringVar4) \ + { \ + StringExpandPlaceholders(gStringVar4, str); \ + AddTextPrinterParameterized2(0, 4, gStringVar4, speed, NULL, 2, 1, 3); \ + } \ + else \ + { \ + AddTextPrinterParameterized2(0, 4, str, speed, NULL, 2, 1, 3); \ + } \ + CopyWindowToVram(0, 3); \ +}) + +static void Task_OakSpeech10(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!gPaletteFade.active) + { + if (data[3] != 0) + data[3]--; + else + { + OaksSpeechPrintMessage(gOakText_WelcomeToTheWorld, sOakSpeechResources->textSpeed); + gTasks[taskId].func = Task_OakSpeech11; + } + } +} + +static void Task_OakSpeech11(u8 taskId) +{ + if (!IsTextPrinterActive(0)) + { + OaksSpeechPrintMessage(gOakText_WorldInhabited1, sOakSpeechResources->textSpeed); + gTasks[taskId].data[3] = 30; + gTasks[taskId].func = Task_OakSpeech12; + } +} + +static void Task_OakSpeech12(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u8 spriteId; + + if (!IsTextPrinterActive(0)) + { + if (data[3] != 0) + data[3]--; + // else { + spriteId = gTasks[taskId].data[4]; + gSprites[spriteId].invisible = FALSE; + gSprites[spriteId].data[0] = 0; + CreatePokeballSpriteToReleaseMon(spriteId, gSprites[spriteId].oam.paletteNum, 0x64, 0x42, 0, 0, 32, 0xFFFF1FFF); + gTasks[taskId].func = Task_OakSpeech13; + gTasks[taskId].data[3] = 0; + // } + } +} + +static void Task_OakSpeech13(u8 taskId) +{ + if (IsCryFinished()) + { + if (gTasks[taskId].data[3] >= 96) + gTasks[taskId].func = Task_OakSpeech14; + } + if (gTasks[taskId].data[3] < 0x4000) + { + gTasks[taskId].data[3]++; + if (gTasks[taskId].data[3] == 32) + { + OaksSpeechPrintMessage(gOakText_WorldInhabited2, sOakSpeechResources->textSpeed); + PlayCry1(SPECIES_NIDORAN_F, 0); + } + } +} + +static void Task_OakSpeech14(u8 taskId) +{ + if (!IsTextPrinterActive(0)) + { + OaksSpeechPrintMessage(gOakText_PetsBattlingStudy, sOakSpeechResources->textSpeed); + gTasks[taskId].func = Task_OakSpeech15; + } +} + +static void Task_OakSpeech15(u8 taskId) +{ + u8 spriteId; + + if (!IsTextPrinterActive(0)) + { + ClearDialogWindowAndFrame(0, 1); + spriteId = gTasks[taskId].data[4]; + gTasks[taskId].data[6] = sub_804BB98(spriteId, gSprites[spriteId].oam.paletteNum, 0x64, 0x42, 0, 0, 32, 0xFFFF1F3F); + gTasks[taskId].data[3] = 48; + gTasks[taskId].data[0] = 64; + gTasks[taskId].func = Task_OakSpeech16; + } +} + +static void Task_OakSpeech16(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[0] != 0) + { + if (data[0] < 24) + { + gSprites[data[4]].pos1.y--; + } + data[0]--; + } + else + { + if (data[3] == 48) + { + DestroySprite(&gSprites[data[4]]); + DestroySprite(&gSprites[data[6]]); + } + if (data[3] != 0) + { + data[3]--; + } + else + { + OaksSpeechPrintMessage(gOakText_TellMeALittleAboutYourself, sOakSpeechResources->textSpeed); + gTasks[taskId].func = Task_OakSpeech17; + } + } +} + +static void Task_OakSpeech17(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!IsTextPrinterActive(0)) + { + ClearDialogWindowAndFrame(0, 1); + CreateFadeInTask(taskId, 2); + data[3] = 48; + gTasks[taskId].func = Task_OakSpeech18; + } +} + +static void Task_OakSpeech18(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[2] != 0) + { + if (data[3] != 0) + data[3]--; + else + { + data[1] = -60; + DestroyOaksSpeechTrainerPic(); + OaksSpeechPrintMessage(gOakText_AskPlayerGender, sOakSpeechResources->textSpeed); + gTasks[taskId].func = Task_OakSpeech19; + } + } +} + +static void Task_OakSpeech19(u8 taskId) +{ + if (!IsTextPrinterActive(0)) + { + gTasks[taskId].data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[1]); + PutWindowTilemap(gTasks[taskId].data[13]); + SetWindowBorderStyle(gTasks[taskId].data[13], 1, sub_80F796C(), 14); + FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11); + sOakSpeechResources->unk_001C[0] = 1; + sOakSpeechResources->unk_001C[1] = 2; + sOakSpeechResources->unk_001C[2] = 3; + AddTextPrinterParameterized3(gTasks[taskId].data[13], 2, 8, 1, sOakSpeechResources->unk_001C, 0, gText_Boy); + sOakSpeechResources->unk_001C[0] = 1; + sOakSpeechResources->unk_001C[1] = 2; + sOakSpeechResources->unk_001C[2] = 3; + AddTextPrinterParameterized3(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->unk_001C, 0, gText_Girl); + ProgramAndPlaceMenuCursorOnWindow(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0); + CopyWindowToVram(gTasks[taskId].data[13], 3); + gTasks[taskId].func = Task_OakSpeech20; + } +} + +static void Task_OakSpeech20(u8 taskId) +{ + s8 input = ProcessMenuInputNoWrapAround(); + switch (input) + { + case 0: + gSaveBlock2Ptr->playerGender = MALE; + break; + case 1: + gSaveBlock2Ptr->playerGender = FEMALE; + break; + case -1: + case -2: + return; + } + gTasks[taskId].func = Task_OakSpeech21; + +} + +static void Task_OakSpeech21(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + ClearMenuWindow(data[13], 1); + RemoveWindow(data[13]); + data[13] = 0; + ClearDialogWindowAndFrame(0, 1); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + gTasks[taskId].func = Task_OakSpeech22; +} + +static void Task_OakSpeech22(u8 taskId) +{ + if (gSaveBlock2Ptr->playerGender == MALE) + LoadOaksSpeechTrainerPic(MALE, 0); + else + LoadOaksSpeechTrainerPic(FEMALE, 0); + CreateFadeOutTask(taskId, 2); + gTasks[taskId].data[3] = 32; + gTasks[taskId].func = Task_OakSpeech23; +} + +static void Task_OakSpeech23(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[2] != 0) + { + if (data[3] != 0) + data[3]--; + else + { + data[1] = 0; + OaksSpeechPrintMessage(gOakText_AskPlayerName, sOakSpeechResources->textSpeed); + gTasks[taskId].func = Task_OakSpeech24; + } + } +} + +static void Task_OakSpeech24(u8 taskId) +{ + if (!IsTextPrinterActive(0)) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + sOakSpeechResources->unk_0010 = 0; + gTasks[taskId].func = Task_OakSpeech25; + } +} +static void Task_OakSpeech35(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!IsTextPrinterActive(0)) + { + if (data[1] > -60) + { + data[1] -= 2; + gSpriteCoordOffsetX += 2; + ChangeBgX(2, 0x200, 2); + } + else + { + data[1] = -60; + PrintNameChoiceOptions(taskId, sOakSpeechResources->unk_0010); + gTasks[taskId].func = Task_OakSpeech29; + } + } +} + +static void Task_OakSpeech28(u8 taskId) +{ + PrintNameChoiceOptions(taskId, sOakSpeechResources->unk_0010); + if (sOakSpeechResources->unk_0010 == 0) + { + OaksSpeechPrintMessage(gOakText_AskPlayerName, 0); + } + else + { + OaksSpeechPrintMessage(gOakText_AskRivalName, 0); + } + gTasks[taskId].func = Task_OakSpeech29; +} + +static void Task_OakSpeech29(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + s8 input = ProcessMenuInput(); + switch (input) + { + case 1: + case 2: + case 3: + case 4: + PlaySE(SE_SELECT); + ClearMenuWindow(data[13], TRUE); + RemoveWindow(data[13]); + GetDefaultName(sOakSpeechResources->unk_0010, input - 1); + data[15] = 1; + gTasks[taskId].func = Task_OakSpeech26; + break; + case 0: + PlaySE(SE_SELECT); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].func = Task_OakSpeech25; + break; + case -1: + break; + } +} + +static void Task_OakSpeech25(u8 taskId) +{ + if (!gPaletteFade.active) + { + GetDefaultName(sOakSpeechResources->unk_0010, 0); + if (sOakSpeechResources->unk_0010 == 0) + { + DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnFromNamingScreen); + } + else + { + ClearMenuWindow(gTasks[taskId].data[13], 1); + RemoveWindow(gTasks[taskId].data[13]); + DoNamingScreen(4, gSaveBlock1Ptr->rivalName, 0, 0, 0, CB2_ReturnFromNamingScreen); + } + DestroyLinkedPikaOrGrassPlatformSprites(taskId, 1); + FreeAllWindowBuffers(); + } +} + +static void Task_OakSpeech26(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!gPaletteFade.active) + { + if (data[15] == 1) + { + if (sOakSpeechResources->unk_0010 == 0) + { + StringExpandPlaceholders(gStringVar4, gOakText_FinalizePlayerName); + } + else + { + StringExpandPlaceholders(gStringVar4, gOakText_ConfirmRivalName); + } + OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed); + data[15] = 0; + data[3] = 25; + } + else if (!IsTextPrinterActive(0)) + { + if (data[3] != 0) + data[3]--; + else + { + CreateYesNoMenu(&sNewGameAdventureIntroWindowTemplates[2], 2, 0, 2, sub_80F796C(), 14, 0); + gTasks[taskId].func = Task_OakSpeech27; + } + } + } +} + +static void Task_OakSpeech27(u8 taskId) +{ + s8 input = Menu_ProcessInputNoWrapClearOnChoose(); + switch (input) + { + case 0: + PlaySE(SE_SELECT); + gTasks[taskId].data[3] = 40; + if (sOakSpeechResources->unk_0010 == 0) + { + ClearDialogWindowAndFrame(0, 1); + CreateFadeInTask(taskId, 2); + gTasks[taskId].func = Task_OakSpeech30; + } + else + { + StringExpandPlaceholders(gStringVar4, gOakText_RememberRivalName); + OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed); + gTasks[taskId].func = Task_OakSpeech31; + } + break; + case 1: + case -1: + PlaySE(SE_SELECT); + if (sOakSpeechResources->unk_0010 == 0) + gTasks[taskId].func = Task_OakSpeech24; + else + gTasks[taskId].func = Task_OakSpeech28; + break; + } +} + +static void Task_OakSpeech30(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[2] != 0) + { + DestroyOaksSpeechTrainerPic(); + if (data[3] != 0) + data[3]--; + else + gTasks[taskId].func = Task_OakSpeech32; + } +} + +static void Task_OakSpeech31(u8 taskId) +{ + if (!IsTextPrinterActive(0)) + { + ClearDialogWindowAndFrame(0, 1); + CreateFadeInTask(taskId, 2); + gTasks[taskId].func = Task_OakSpeech33; + } +} + +static void Task_OakSpeech32(u8 taskId) +{ + ChangeBgX(2, 0, 0); + gTasks[taskId].data[1] = 0; + gSpriteCoordOffsetX = 0; + LoadOaksSpeechTrainerPic(2, 0); + CreateFadeOutTask(taskId, 2); + gTasks[taskId].func = Task_OakSpeech34; +} + +static void Task_OakSpeech34(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[2] != 0) + { + OaksSpeechPrintMessage(gOakText_IntroduceRival, sOakSpeechResources->textSpeed); + sOakSpeechResources->unk_0010 = 1; + gTasks[taskId].func = Task_OakSpeech35; + } +} + +static void Task_OakSpeech33(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[2] != 0) + { + DestroyOaksSpeechTrainerPic(); + if (data[3] != 0) + data[3]--; + else + { + if (gSaveBlock2Ptr->playerGender == MALE) + LoadOaksSpeechTrainerPic(MALE, 0); + else + LoadOaksSpeechTrainerPic(FEMALE, 0); + gTasks[taskId].data[1] = 0; + gSpriteCoordOffsetX = 0; + ChangeBgX(2, 0, 0); + CreateFadeOutTask(taskId, 2); + gTasks[taskId].func = Task_OakSpeech36; + } + } +} + +static void Task_OakSpeech36(u8 taskId) +{ + if (gTasks[taskId].data[2] != 0) + { + StringExpandPlaceholders(gStringVar4, gOakText_LegendAboutToUnfold); + OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed); + gTasks[taskId].data[3] = 30; + gTasks[taskId].func = Task_OakSpeech37; + } +} + +static void Task_OakSpeech37(u8 taskId) +{ + if (!IsTextPrinterActive(0)) + { + if (gTasks[taskId].data[3] != 0) + gTasks[taskId].data[3]--; + else + { + FadeOutBGM(4); + gTasks[taskId].func = Task_OakSpeech38; + } + } +} + +static void Task_OakSpeech38(u8 taskId) +{ + sOakSpeechResources->unk_0012 = 0; + Task_OakSpeech38_1(taskId); + Task_OakSpeech38_2(taskId); + Task_OakSpeech38_3(taskId); +} + +static void Task_OakSpeech38_3(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + SetBgAttribute(2, 6, 1); + data[0] = 0; + data[1] = 0; + data[2] = 256; + data[15] = 0; + gTasks[taskId].func = Task_OakSpeech39; +} + +static void Task_OakSpeech39(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + s16 x, y; + u16 r0; + + sOakSpeechResources->unk_0012++; + if (sOakSpeechResources->unk_0012 % 20 == 0) + { + if (sOakSpeechResources->unk_0012 == 40) + PlaySE(SE_FU_ZUZUZU); + r0 = data[2]; + data[2] -= 32; + x = sub_80D8B90(r0 - 8); + y = sub_80D8B90(data[2] - 16); + SetBgAffine(2, 0x7800, 0x5400, 0x78, 0x54, x, y, 0); + if (data[2] <= 96) + { + data[15] = 1; + data[0] = 36; + gTasks[taskId].func = Task_OakSpeech40; + } + } +} + +static void Task_OakSpeech38_1(u8 taskId) +{ + u8 taskId2 = CreateTask(Task_OakSpeech38_sub1, 1); + s16 * data = gTasks[taskId2].data; + data[0] = 0; + data[1] = 0; + data[2] = 0; + data[15] = 0; + BeginNormalPaletteFade(0xFFFF0FCF, 4, 0, 16, RGB_BLACK); +} + +static void Task_OakSpeech38_sub1(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + if (data[1] != 0) + { + DestroyTask(taskId); + DestroyLinkedPikaOrGrassPlatformSprites(taskId, 1); + } + else + { + data[1]++; + BeginNormalPaletteFade(0x0000F000, 0, 0, 16, RGB_BLACK); + } + } +} + +static void Task_OakSpeech38_2(u8 taskId) +{ + u8 taskId2 = CreateTask(Task_OakSpeech38_sub2, 2); + s16 * data = gTasks[taskId2].data; + data[0] = 8; + data[1] = 0; + data[2] = 8; + data[14] = 0; + data[15] = 0; +} + +static void Task_OakSpeech38_sub2(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u8 i; + + if (data[0] != 0) + data[0]--; + else + { + if (data[1] <= 0 && data[2] != 0) + data[2]--; + BlendPalette(0x40, 0x20, data[14], RGB_WHITE); + data[14]++; + data[1]--; + data[0] = data[2]; + if (data[14] > 14) + { + for (i = 0; i < 32; i++) + { + gPlttBufferFaded[i + 0x40] = RGB_WHITE; + gPlttBufferUnfaded[i + 0x40] = RGB_WHITE; + } + DestroyTask(taskId); + } + } +} + +static void Task_OakSpeech40(u8 taskId) +{ + if (gTasks[taskId].data[0] != 0) + gTasks[taskId].data[0]--; + else + { + BeginNormalPaletteFade(0x00000030, 2, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_OakSpeech41; + } +} + +static void Task_OakSpeech41(u8 taskId) +{ + if (!gPaletteFade.active) + { + gTasks[taskId].func = Task_OakSpeech42; + } +} + +static void Task_OakSpeech42(u8 taskId) +{ + FreeAllWindowBuffers(); + sub_8044D80(); + Free(sOakSpeechResources); + sOakSpeechResources = NULL; + gTextFlags.canABSpeedUpPrint = FALSE; + SetMainCallback2(CB2_NewGame); + DestroyTask(taskId); +} + +static void CB2_ReturnFromNamingScreen(void) +{ + u8 taskId; + + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + DmaFill16(3, 0, VRAM, VRAM_SIZE); + DmaFill32(3, 0, OAM, OAM_SIZE); + DmaFill16(3, RGB_BLACK, PLTT + sizeof(u16), PLTT_SIZE - sizeof(u16)); + ResetPaletteFade(); + ScanlineEffect_Stop(); + ResetSpriteData(); + FreeAllSpritePalettes(); + reset_temp_tile_data_buffers(); + break; + case 1: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(1, sBgTemplates, NELEMS(sBgTemplates)); + SetBgTilemapBuffer(1, sOakSpeechResources->bg1TilemapBuffer); + SetBgTilemapBuffer(2, sOakSpeechResources->bg2TilemapBuffer); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + break; + case 2: + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + break; + case 3: + FreeAllWindowBuffers(); + InitStandardTextBoxWindows(); + ResetBg0(); + LoadPalette(sHelpDocsPalette, 0, 0xe0); + break; + case 4: + decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_SolidColors, 0, 0, 0); + break; + case 5: + if (free_temp_tile_data_buffers_if_possible()) + return; + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + break; + case 6: + taskId = CreateTask(Task_OakSpeech26, 0); + if (sOakSpeechResources->unk_0010 == 0) + { + if (gSaveBlock2Ptr->playerGender == MALE) + LoadOaksSpeechTrainerPic(MALE, 0); + else + LoadOaksSpeechTrainerPic(FEMALE, 0); + } + else + LoadOaksSpeechTrainerPic(2, 0); + gTasks[taskId].data[1] = -60; + gSpriteCoordOffsetX += 60; + ChangeBgX(2, -0x3C00, 0); + CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1); + gTasks[taskId].data[15] = 1; + break; + case 7: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + ShowBg(2); + EnableInterrupts(INTR_FLAG_VBLANK); + SetVBlankCallback(VBlankCB_NewGameOaksSpeech); + gTextFlags.canABSpeedUpPrint = TRUE; + SetMainCallback2(CB2_NewGameOaksSpeech); + return; + } + + gMain.state++; +} + +static void CreateNidoranFSprite(u8 taskId) +{ + u8 spriteId; + + DecompressPicFromTable(gUnknown_8235194, sub_8044E00(0), SPECIES_NIDORAN_F); + sub_800F078(&gUnknown_82373F4); + SetMultiuseSpriteTemplateToPokemon(SPECIES_NIDORAN_F, 0); + spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x60, 0x60, 1); + gSprites[spriteId].callback = SpriteCallbackDummy; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].invisible = TRUE; + gTasks[taskId].data[4] = spriteId; +} + +static void SpriteCB_PikaSync(struct Sprite * sprite) +{ + sprite->pos2.y = gSprites[sprite->data[0]].animCmdIndex; +} + +static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 state) +{ + u8 spriteId; + u8 i = 0; + + switch (state) + { + case 0: + LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[0]); + LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[1]); + LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[2]); + LoadSpritePalette(&sOakSpeech_PikaSpritePal); + spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[0], 0x10, 0x11, 2); + gSprites[spriteId].oam.priority = 0; + gTasks[taskId].data[7] = spriteId; + spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[1], 0x10, 0x09, 3); + gSprites[spriteId].oam.priority = 0; + gSprites[spriteId].data[0] = gTasks[taskId].data[7]; + gSprites[spriteId].callback = SpriteCB_PikaSync; + gTasks[taskId].data[8] = spriteId; + spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[2], 0x18, 0x0D, 1); + gSprites[spriteId].oam.priority = 0; + gSprites[spriteId].data[0] = gTasks[taskId].data[7]; + gSprites[spriteId].callback = SpriteCB_PikaSync; + gTasks[taskId].data[9] = spriteId; + break; + case 1: + LoadCompressedObjectPic(&sOakSpeech_GrassPlatformSpriteSheet); + LoadSpritePalette(&sOakSpeech_GrassPlatformSpritePal); + for (i = 0; i < 3; i++) + { + spriteId = CreateSprite(&sOakSpeech_GrassPlatformSpriteTemplates[i], i * 32 + 88, 0x70, 1); + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].animPaused = TRUE; + gSprites[spriteId].coordOffsetEnabled = TRUE; + gTasks[taskId].data[7 + i] = spriteId; + } + break; + } +} + +static void DestroyLinkedPikaOrGrassPlatformSprites(u8 taskId, u8 state) +{ + u8 i; + + for (i = 0; i < 3; i++) + { + DestroySprite(&gSprites[gTasks[taskId].data[7 + i]]); + } + + switch (state) + { + case 0: + FreeSpriteTilesByTag(0x1003); + FreeSpriteTilesByTag(0x1002); + FreeSpriteTilesByTag(0x1001); + FreeSpritePaletteByTag(0x1001); + break; + case 1: + FreeSpriteTilesByTag(0x1000); + FreeSpritePaletteByTag(0x1000); + break; + } +} + +static void LoadOaksSpeechTrainerPic(u16 whichPic, u16 tileOffset) +{ + u32 i; + + switch (whichPic) + { + case 0: // FIRE + LoadPalette(sOakSpeechGfx_RedPal, 0x40, 0x40); + LZ77UnCompVram(sOakSpeechGfx_RedPic, (void *)0x06000600 + tileOffset); + break; + case 1: // LEAF + LoadPalette(sOakSpeechGfx_LeafPal, 0x40, 0x40); + LZ77UnCompVram(sOakSpeechGfx_LeafPic, (void *)0x06000600 + tileOffset); + break; + case 2: // BLUE + LoadPalette(sOakSpeechGfx_RivalPal, 0x60, 0x40); + LZ77UnCompVram(sOakSpeechGfx_RivalPic, (void *)0x06000600 + tileOffset); + break; + case 3: // OAK + LoadPalette(sOakSpeechGfx_OakPal, 0x60, 0x40); + LZ77UnCompVram(sOakSpeechGfx_OakPic, (void *)0x06000600 + tileOffset); + break; + default: + return; + } + + sOakSpeechResources->trainerPicTilemapBuffer = AllocZeroed(0x60); + for (i = 0; i < 0x60; i++) + ((u8 *)sOakSpeechResources->trainerPicTilemapBuffer)[i] = i; + FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x10); + CopyRectToBgTilemapBufferRect(2, sOakSpeechResources->trainerPicTilemapBuffer, 0, 0, 8, 12, 11, 2, 8, 12, 0x10, (tileOffset / 64) + 0x18, 0x00); + CopyBgTilemapBufferToVram(2); + Free(sOakSpeechResources->trainerPicTilemapBuffer); + sOakSpeechResources->trainerPicTilemapBuffer = 0; +} + +static void DestroyOaksSpeechTrainerPic(void) +{ + FillBgTilemapBufferRect(2, 0x000, 11, 1, 8, 12, 0x10); + CopyBgTilemapBufferToVram(2); +} + +static void Task_SlowFadeIn(u8 taskId) +{ + u8 i = 0; + if (gTasks[taskId].data[1] == 0) + { + gTasks[gTasks[taskId].data[0]].data[2] = 1; + DestroyTask(taskId); + for (i = 0; i < 3; i++) + { + gSprites[gTasks[taskId].data[7 + i]].invisible = TRUE; + } + } + else + { + if (gTasks[taskId].data[4] != 0) + gTasks[taskId].data[4]--; + else + { + gTasks[taskId].data[4] = gTasks[taskId].data[3]; + gTasks[taskId].data[1]--; + gTasks[taskId].data[2]++; + if (gTasks[taskId].data[1] == 8) + { + for (i = 0; i < 3; i++) + { + gSprites[gTasks[taskId].data[7 + i]].invisible ^= TRUE; + } + } + SetGpuReg(REG_OFFSET_BLDALPHA, (gTasks[taskId].data[2] * 256) + gTasks[taskId].data[1]); + } + } +} + +static void CreateFadeInTask(u8 taskId, u8 state) +{ + u8 taskId2; + u8 i = 0; + + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 0); + gTasks[taskId].data[2] = 0; + taskId2 = CreateTask(Task_SlowFadeIn, 0); + gTasks[taskId2].data[0] = taskId; + gTasks[taskId2].data[1] = 16; + gTasks[taskId2].data[2] = 0; + gTasks[taskId2].data[3] = state; + gTasks[taskId2].data[4] = state; + for (i = 0; i < 3; i++) + { + gTasks[taskId2].data[7 + i] = gTasks[taskId].data[7 + i]; + } +} + +static void Task_SlowFadeOut(u8 taskId) +{ + u8 i = 0; + + if (gTasks[taskId].data[1] == 16) + { + if (!gPaletteFade.active) + { + gTasks[gTasks[taskId].data[0]].data[2] = 1; + DestroyTask(taskId); + } + } + else + { + if (gTasks[taskId].data[4] != 0) + gTasks[taskId].data[4]--; + else + { + gTasks[taskId].data[4] = gTasks[taskId].data[3]; + gTasks[taskId].data[1] += 2; + gTasks[taskId].data[2] -= 2; + if (gTasks[taskId].data[1] == 8) + { + for (i = 0; i < 3; i++) + { + gSprites[gTasks[taskId].data[7 + i]].invisible ^= TRUE; + } + } + SetGpuReg(REG_OFFSET_BLDALPHA, (gTasks[taskId].data[2] * 256) + gTasks[taskId].data[1]); + } + } +} + +static void CreateFadeOutTask(u8 taskId, u8 state) +{ + u8 taskId2; + u8 i = 0; + + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x1000); + SetGpuReg(REG_OFFSET_BLDY, 0); + gTasks[taskId].data[2] = 0; + taskId2 = CreateTask(Task_SlowFadeOut, 0); + gTasks[taskId2].data[0] = taskId; + gTasks[taskId2].data[1] = 0; + gTasks[taskId2].data[2] = 16; + gTasks[taskId2].data[3] = state; + gTasks[taskId2].data[4] = state; + for (i = 0; i < 3; i++) + { + gTasks[taskId2].data[7 + i] = gTasks[taskId].data[7 + i]; + } +} + +static void PrintNameChoiceOptions(u8 taskId, u8 state) +{ + s16 * data = gTasks[taskId].data; + const u8 *const * textPtrs; + u8 i; + + data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[3]); + PutWindowTilemap(data[13]); + SetWindowBorderStyle(data[13], 1, sub_80F796C(), 14); + FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11); + AddTextPrinterParameterized(data[13], 2, gOtherText_NewName, 8, 1, 0, NULL); + if (state == 0) + textPtrs = gSaveBlock2Ptr->playerGender == MALE ? sMaleNameChoices : sFemaleNameChoices; + else + textPtrs = sRivalNameChoices; + for (i = 0; i < 4; i++) + { + AddTextPrinterParameterized(data[13], 2, textPtrs[i], 8, 16 * (i + 1) + 1, 0, NULL); + } + ProgramAndPlaceMenuCursorOnWindow(data[13], 2, 0, 1, 16, 5, 0); + CopyWindowToVram(data[13], 3); +} + +static void GetDefaultName(u8 arg0, u8 namePick) +{ + const u8 * src; + u8 * dest; + u8 i; + + if (arg0 == 0) + { + if (gSaveBlock2Ptr->playerGender == MALE) + src = sMaleNameChoices[Random() % 19]; + else + src = sFemaleNameChoices[Random() % 19]; + dest = gSaveBlock2Ptr->playerName; + } + else + { + src = sRivalNameChoices[namePick]; + dest = gSaveBlock1Ptr->rivalName; + } + for (i = 0; i < PLAYER_NAME_LENGTH - 1 && src[i] != EOS; i++) + dest[i] = src[i]; + for (; i < PLAYER_NAME_LENGTH; i++) + dest[i] = EOS; +} diff --git a/src/pokemon.c b/src/pokemon.c index 5cd2cd2d7..906b97cae 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -80,7 +80,7 @@ extern const u16 sHMMoves[]; extern s8 gPokeblockFlavorCompatibilityTable[]; // External functions -extern u8 sav1_map_get_name(void); // overworld +extern u8 GetCurrentRegionMapSectionId(void); // overworld extern const struct BattleMove gBattleMoves[]; extern u8 sBattler_AI; // battle_ai extern void set_unknown_box_id(u8); // field_specials @@ -194,7 +194,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, SetBoxMonData(boxMon, MON_DATA_SPECIES, &species); SetBoxMonData(boxMon, MON_DATA_EXP, &gExperienceTables[gBaseStats[species].growthRate][level]); SetBoxMonData(boxMon, MON_DATA_FRIENDSHIP, &gBaseStats[species].friendship); - value = sav1_map_get_name(); + value = GetCurrentRegionMapSectionId(); SetBoxMonData(boxMon, MON_DATA_MET_LOCATION, &value); SetBoxMonData(boxMon, MON_DATA_MET_LEVEL, &level); SetBoxMonData(boxMon, MON_DATA_MET_GAME, &gGameVersion); @@ -351,7 +351,7 @@ void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedI CalculateMonStats(mon); } -void sub_803E0A4(struct Pokemon *mon, struct UnknownPokemonStruct *src) +void sub_803E0A4(struct Pokemon *mon, struct BattleTowerPokemon *src) { s32 i; u8 value; @@ -410,7 +410,7 @@ void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u SetMonData(mon, MON_DATA_OBEDIENCE, &obedient); } -void sub_803E23C(struct Pokemon *mon, struct UnknownPokemonStruct *dest) +void sub_803E23C(struct Pokemon *mon, struct BattleTowerPokemon *dest) { s32 i; u16 heldItem; @@ -1001,7 +1001,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de damage /= 2; // sunny - if (gBattleWeather & WEATHER_SUN_ANY) + if (gBattleWeather & WEATHER_SUNNY_ANY) { switch (type) { @@ -1122,7 +1122,7 @@ u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality) return MON_MALE; } -void sub_803F7D4(u16 trainerSpriteId, u8 battlerPosition) +void SetMultiuseSpriteTemplateToPokemon(u16 trainerSpriteId, u8 battlerPosition) { if(gMonSpritesGfxPtr != NULL) { @@ -1415,13 +1415,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) case MON_DATA_LANGUAGE: retVal = boxMon->language; break; - case MON_DATA_SANITY_BIT1: + case MON_DATA_SANITY_IS_BAD_EGG: retVal = boxMon->isBadEgg; break; - case MON_DATA_SANITY_BIT2: + case MON_DATA_SANITY_HAS_SPECIES: retVal = boxMon->hasSpecies; break; - case MON_DATA_SANITY_BIT3: + case MON_DATA_SANITY_IS_EGG: retVal = boxMon->isEgg; break; case MON_DATA_OT_NAME: @@ -1809,13 +1809,13 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg) case MON_DATA_LANGUAGE: SET8(boxMon->language); break; - case MON_DATA_SANITY_BIT1: + case MON_DATA_SANITY_IS_BAD_EGG: SET8(boxMon->isBadEgg); break; - case MON_DATA_SANITY_BIT2: + case MON_DATA_SANITY_HAS_SPECIES: SET8(boxMon->hasSpecies); break; - case MON_DATA_SANITY_BIT3: + case MON_DATA_SANITY_IS_EGG: SET8(boxMon->isEgg); break; case MON_DATA_OT_NAME: @@ -2769,7 +2769,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo { if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11) friendship++; - if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name()) + if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) friendship++; } if (friendship < 0) @@ -2794,7 +2794,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo { if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11) friendship++; - if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name()) + if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) friendship++; } if (friendship < 0) @@ -2818,7 +2818,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 mo { if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11) friendship++; - if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name()) + if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) friendship++; } if (friendship < 0) @@ -3320,7 +3320,7 @@ bool8 PokemonUseItemEffects2(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 m { if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11) friendship++; - if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name()) + if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) friendship++; } if (friendship < 0) @@ -3347,7 +3347,7 @@ bool8 PokemonUseItemEffects2(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 m { if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11) friendship++; - if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name()) + if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) friendship++; } if (friendship < 0) @@ -3373,7 +3373,7 @@ bool8 PokemonUseItemEffects2(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 m { if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11) friendship++; - if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name()) + if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) friendship++; } if (friendship < 0) @@ -4526,7 +4526,7 @@ void sub_8042D50(int stat) BattleStringExpandPlaceholdersToDisplayedString(BattleText_UnknownString3); } -u8 *sub_8042DA4(u16 itemId) +const u8 *Battle_PrintStatBoosterEffectMessage(u16 itemId) { int i; const u8 *itemEffect; @@ -5033,7 +5033,7 @@ void AdjustFriendship(struct Pokemon *mon, u8 event) { if (GetMonData(mon, MON_DATA_POKEBALL, 0) == ITEM_LUXURY_BALL) friendship++; - if (GetMonData(mon, MON_DATA_MET_LOCATION, 0) == sav1_map_get_name()) + if (GetMonData(mon, MON_DATA_MET_LOCATION, 0) == GetCurrentRegionMapSectionId()) friendship++; } @@ -5223,7 +5223,7 @@ void sub_8043B48(struct Pokemon *mon, int species, u8 unused, u32 data) } } -bool32 sub_8043B90(struct Pokemon *mon) +bool8 TryIncrementMonLevel(struct Pokemon *mon) { u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL); diff --git a/src/prof_pc.c b/src/prof_pc.c new file mode 100644 index 000000000..cfccbd6e3 --- /dev/null +++ b/src/prof_pc.c @@ -0,0 +1,108 @@ +#include "global.h" +#include "event_data.h" +#include "pokedex.h" +#include "field_message_box.h" +#include "constants/species.h" + +extern const u8 gUnknown_81A6D17[]; +extern const u8 gUnknown_81A6D6D[]; +extern const u8 gUnknown_81A6DDF[]; +extern const u8 gUnknown_81A6E36[]; +extern const u8 gUnknown_81A6EA4[]; +extern const u8 gUnknown_81A6F0B[]; +extern const u8 gUnknown_81A6F71[]; +extern const u8 gUnknown_81A6FAB[]; +extern const u8 gUnknown_81A6FF1[]; +extern const u8 gUnknown_81A7031[]; +extern const u8 gUnknown_81A7063[]; +extern const u8 gUnknown_81A70A5[]; +extern const u8 gUnknown_81A70D8[]; +extern const u8 gUnknown_81A7108[]; +extern const u8 gUnknown_81A7137[]; +extern const u8 gUnknown_81A7175[]; + +u16 Special_GetPokedexCount(void) +{ + if (gSpecialVar_0x8004 == 0) + { + gSpecialVar_0x8005 = sub_8088EDC(0); + gSpecialVar_0x8006 = sub_8088EDC(1); + } + else + { + gSpecialVar_0x8005 = pokedex_count(0); + gSpecialVar_0x8006 = pokedex_count(1); + } + return sub_806E25C(); +} + +const u8 * sub_80CA424(u16 count) +{ + gSpecialVar_Result = FALSE; + + if (count < 10) + return gUnknown_81A6D17; + + if (count < 20) + return gUnknown_81A6D6D; + + if (count < 30) + return gUnknown_81A6DDF; + + if (count < 40) + return gUnknown_81A6E36; + + if (count < 50) + return gUnknown_81A6EA4; + + if (count < 60) + return gUnknown_81A6F0B; + + if (count < 70) + return gUnknown_81A6F71; + + if (count < 80) + return gUnknown_81A6FAB; + + if (count < 90) + return gUnknown_81A6FF1; + + if (count < 100) + return gUnknown_81A7031; + + if (count < 110) + return gUnknown_81A7063; + + if (count < 120) + return gUnknown_81A70A5; + + if (count < 130) + return gUnknown_81A70D8; + + if (count < 140) + return gUnknown_81A7108; + + if (count < 150) + return gUnknown_81A7137; + + if (count == 150) + { + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_MEW), 1)) + return gUnknown_81A7137; + gSpecialVar_Result = TRUE; + return gUnknown_81A7175; + } + + if (count == 151) + { + gSpecialVar_Result = TRUE; + return gUnknown_81A7175; + } + + return gUnknown_81A6D17; +} + +void sub_80CA524(void) +{ + ShowFieldMessage(sub_80CA424(gSpecialVar_0x8004)); +} diff --git a/src/quest_log.c b/src/quest_log.c index 4f462505a..0021ee927 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -922,7 +922,7 @@ void sub_8111070(u8 a0) StringAppend(gStringVar4, gStringVar1); } - AddTextPrinterParametrized2(gUnknown_203ADFE[0], 2, 2, 2, 1, 2, &gUnknown_8456634, 0, gStringVar4); + AddTextPrinterParameterized4(gUnknown_203ADFE[0], 2, 2, 2, 1, 2, &gUnknown_8456634, 0, gStringVar4); PutWindowTilemap(gUnknown_203ADFE[0]); PutWindowTilemap(gUnknown_203ADFE[1]); CopyWindowToVram(gUnknown_203ADFE[0], 2); @@ -985,19 +985,19 @@ void sub_8111368(void) { gUnknown_203ADFA = 2; sub_806E6FC(); - sub_809A2DC(); - sub_809A2A4(); + ClearItemSlotsInAllBagPockets(); + ClearPCItemSlots(); if (sub_8110AC8() == 1) { sub_8111274(gUnknown_203ADF8, 0); - gUnknown_3005024 = sub_8111038; + gFieldCallback2 = sub_8111038; SetMainCallback2(sub_80572A8); } else { sub_8111274(gUnknown_203ADF8, 1); warp_in(); - gUnknown_3005024 = sub_8111000; + gFieldCallback2 = sub_8111000; SetMainCallback2(sub_805726C); } } @@ -1055,7 +1055,7 @@ void sub_8111438(void) { for (r6 = 0; r6 < 30; r6++) { - if (GetBoxMonDataFromAnyBox(r3, r6, MON_DATA_SANITY_BIT2)) + if (GetBoxMonDataFromAnyBox(r3, r6, MON_DATA_SANITY_HAS_SPECIES)) { sub_808BCB4(r3, r6); r5--; @@ -1074,7 +1074,7 @@ void sub_8111438(void) for (r6 = 0; r6 < IN_BOX_COUNT; r6++) { struct BoxPokemon * boxMon = GetBoxedMonPtr(r3, r6); - if (!GetBoxMonData(boxMon, MON_DATA_SANITY_BIT2)) + if (!GetBoxMonData(boxMon, MON_DATA_SANITY_HAS_SPECIES)) { CopyMon(boxMon, &r9->mon.box, sizeof(struct BoxPokemon)); r5++; @@ -1104,7 +1104,7 @@ u16 sub_8111618(void) for (i = 0; i < PARTY_SIZE; i++) { - if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT2)) + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES)) count++; } @@ -1120,7 +1120,7 @@ u16 sub_811164C(void) { for (j = 0; j < IN_BOX_COUNT; j++) { - if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SANITY_BIT2)) + if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SANITY_HAS_SPECIES)) count++; } } @@ -1237,7 +1237,7 @@ void sub_8111984(void) Save_ResetSaveCounters(); Save_LoadGameData(0); SetMainCallback2(sub_8057430); - gUnknown_3005024 = sub_8111F60; + gFieldCallback2 = sub_8111F60; FreeAllWindowBuffers(); gUnknown_203ADFA = 3; gUnknown_203AE8C = NULL; @@ -1417,7 +1417,7 @@ void sub_8111D10(void) PutWindowTilemap(gUnknown_203ADFE[2]); sub_8111D90(gUnknown_203ADFE[2]); - AddTextPrinterParametrized2(gUnknown_203ADFE[2], 2, 2, gUnknown_8456698[count], 1, 0, &gUnknown_8456634, 0, gStringVar4); + AddTextPrinterParameterized4(gUnknown_203ADFE[2], 2, 2, gUnknown_8456698[count], 1, 0, &gUnknown_8456634, 0, gStringVar4); schedule_bg_copy_tilemap_to_vram(0); } @@ -1599,7 +1599,7 @@ void sub_81120AC(u8 taskId) gUnknown_203AE94 = (struct UnkStruct_203AE94){}; sub_80696C0(); ScriptContext2_Disable(); - gTextFlags.flag_2 = FALSE; + gTextFlags.autoScroll = FALSE; gUnknown_2036E28 = 0; sub_8082740(0); gUnknown_3005ECC = 1; @@ -1691,7 +1691,7 @@ void sub_81123BC(void) void sub_8112450(void) { - if (sub_80BF708() != 1) + if (MenuHelpers_LinkSomething() != 1) { sub_8112364(); sub_81123BC(); @@ -2291,7 +2291,7 @@ void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2) } } -const u16 gUnknown_84566A8[][16] = INCBIN_U16("data/graphics/unknown_84566a8.bin"); +const u16 gUnknown_84566A8[] = INCBIN_U16("data/graphics/unknown_84566a8.bin"); const struct WindowTemplate gUnknown_8456928 = { 0x00, 0, 15, 30, 5, 15, 0x008F @@ -2349,7 +2349,7 @@ void sub_8112F18(u8 a0) else k = 5; CpuCopy32( - gUnknown_84566A8[k], // operand swap on "add" instruction + (void *)gUnknown_84566A8 + 32 * k, // operand swap on "add" instruction buffer + 32 * (i * width + j), 32 ); @@ -2468,7 +2468,7 @@ const struct TextColor gUnknown_8456930 = { void sub_8112FE4(const u8 * a0) { - AddTextPrinterParametrized2(gUnknown_203B020, 0x02, 2, 5, 1, 1, &gUnknown_8456930, -1, a0); + AddTextPrinterParameterized4(gUnknown_203B020, 0x02, 2, 5, 1, 1, &gUnknown_8456930, -1, a0); } void sub_8113018(const u8 * a0, u8 a1) @@ -2515,7 +2515,7 @@ void sub_81130BC(struct Var4038Struct * varPtr) FlagClear(FLAG_0x06D); FlagClear(FLAG_0x06E); FlagClear(FLAG_0x06F); - VarSet(VAR_0x4073, 1); + VarSet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 1); } } @@ -2523,7 +2523,7 @@ ALIGNED(4) const u8 gUnknown_8456934[] = {2, 1, 2, 1}; u8 sub_8113114(struct Var4038Struct * a0, u8 a1) { - if (VarGet(VAR_0x4073) == 2) + if (VarGet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) == 2) { if (a0->unk_0_0 + gUnknown_8456934[a1] >= 20) { @@ -2743,10 +2743,10 @@ void sub_81134B8(void) void sub_81134CC(struct Var4038Struct * a0) { - if (VarGet(VAR_0x4073) == 2) + if (VarGet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) == 2) { sub_8113078(a0); - if (gUnknown_2023E8A == 1) + if (gBattleOutcome == B_OUTCOME_WON) sub_8113194(a0); else sub_81131FC(a0); @@ -2842,7 +2842,7 @@ void sub_8113550(u16 a0, const u16 * a1) if (sub_81138A0(a0, a1) == TRUE) return; - if (sub_80BF708() == TRUE) + if (MenuHelpers_LinkSomething() == TRUE) return; // NONMATCHING: branch logic here @@ -2954,7 +2954,7 @@ void sub_8113550(u16 a0, const u16 * a1) "\tbne _081135AA\n" "\tb ._return\n" "_081135AA:\n" - "\tbl sub_80BF708\n" + "\tbl MenuHelpers_LinkSomething\n" "\tlsls r0, 24\n" "\tlsrs r0, 24\n" "\tcmp r0, 0x1\n" @@ -3708,7 +3708,7 @@ const u16 * sub_8113FBC(const u16 * a0) case POCKET_ITEMS: case POCKET_POKE_BALLS: case POCKET_BERRY_POUCH: - StringCopy(gStringVar1, ItemId_GetItem(r5[0])->name); + StringCopy(gStringVar1, ItemId_GetName(r5[0])); if (r5[0] == ITEM_ESCAPE_ROPE) { sub_80C4DF8(gStringVar2, r5[2]); @@ -3725,7 +3725,7 @@ const u16 * sub_8113FBC(const u16 * a0) } break; case POCKET_KEY_ITEMS: - StringCopy(gStringVar1, ItemId_GetItem(r5[0])->name); + StringCopy(gStringVar1, ItemId_GetName(r5[0])); StringExpandPlaceholders(gStringVar4, gUnknown_841A220); break; case POCKET_TM_CASE: @@ -3771,7 +3771,7 @@ const u16 * sub_8114188(const u16 * a0) { const u16 * r4 = sub_8113E88(5, a0); QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0); - StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name); + StringCopy(gStringVar2, ItemId_GetName(r4[0])); StringExpandPlaceholders(gStringVar4, gUnknown_841AB74); r4 += 2; return r4; @@ -3787,7 +3787,7 @@ const u16 * sub_81141E4(const u16 * a0) const u16 * r4 = sub_8113E88(6, a0); QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0); - StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name); + StringCopy(gStringVar2, ItemId_GetName(r4[0])); StringExpandPlaceholders(gStringVar4, gUnknown_841AB8E); r4 += 2; return r4; @@ -3803,7 +3803,7 @@ const u16 * sub_8114240(const u16 * a0) const u16 * r4 = sub_8113E88(7, a0); QuestLog_AutoGetSpeciesName(r4[1], gStringVar2, 0); - StringCopy(gStringVar1, ItemId_GetItem(r4[0])->name); + StringCopy(gStringVar1, ItemId_GetName(r4[0])); StringExpandPlaceholders(gStringVar4, gUnknown_841A6A5); r4 += 2; return r4; @@ -3819,7 +3819,7 @@ const u16 * sub_811429C(const u16 * a0) const u16 * r4 = sub_8113E88(8, a0); QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0); - StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name); + StringCopy(gStringVar2, ItemId_GetName(r4[0])); StringExpandPlaceholders(gStringVar4, gUnknown_841A1CD); r4 += 2; return r4; @@ -3846,8 +3846,8 @@ const u16 * sub_8114324(const u16 * a0) { const u16 * r4 = sub_8113E88(9, a0); QuestLog_AutoGetSpeciesName(r4[2], gStringVar1, 0); - StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name); - StringCopy(gStringVar3, ItemId_GetItem(r4[1])->name); + StringCopy(gStringVar2, ItemId_GetName(r4[0])); + StringCopy(gStringVar3, ItemId_GetName(r4[1])); StringExpandPlaceholders(gStringVar4, gUnknown_841A193); r4 += 3; return r4; @@ -3862,8 +3862,8 @@ const u16 * sub_8114394(const u16 * a0) { const u16 * r4 = sub_8113E88(10, a0); QuestLog_AutoGetSpeciesName(r4[2], gStringVar2, 0); - StringCopy(gStringVar3, ItemId_GetItem(r4[0])->name); - StringCopy(gStringVar1, ItemId_GetItem(r4[1])->name); + StringCopy(gStringVar3, ItemId_GetName(r4[0])); + StringCopy(gStringVar1, ItemId_GetName(r4[1])); StringExpandPlaceholders(gStringVar4, gUnknown_841A6E1); r4 += 3; return r4; @@ -4312,7 +4312,7 @@ u16 * sub_8114C68(u16 * a0, const u16 * a1) const u16 * sub_8114C8C(const u16 * a0) { const u16 *r4 = sub_8113E88(28, a0); - sub_8099E90(r4[0], gStringVar1); + CopyItemName(r4[0], gStringVar1); StringExpandPlaceholders(gStringVar4, gUnknown_841A391); return r4 + 1; } @@ -4329,7 +4329,7 @@ u16 * sub_8114CC0(u16 * a0, const u16 * a1) const u16 * sub_8114CE4(const u16 * a0) { const u16 *r4 = sub_8113E88(29, a0); - sub_8099E90(r4[0], gStringVar1); + CopyItemName(r4[0], gStringVar1); StringExpandPlaceholders(gStringVar4, gUnknown_841A3DA); return r4 + 1; } @@ -4817,7 +4817,7 @@ const u16 * sub_8115518(const u16 * a0) UnkTextUtil_Reset(); sub_80C4DF8(gStringVar1, r7[0]); UnkTextUtil_SetPtrI(0, gStringVar1); - UnkTextUtil_SetPtrI(1, ItemId_GetItem(r4[0])->name); + UnkTextUtil_SetPtrI(1, ItemId_GetName(r4[0])); if (r4[1] < 2) UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A7DD); else @@ -4852,7 +4852,7 @@ const u16 * sub_81155E0(const u16 * a0) { if (r7[1] == 0) { UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName); UnkTextUtil_SetPtrI(1, gStringVar1); - UnkTextUtil_SetPtrI(2, ItemId_GetItem(r5[0])->name); + UnkTextUtil_SetPtrI(2, ItemId_GetName(r5[0])); if (r5[1] == 1) UnkTextUtil_SetPtrI(3, gUnknown_841A8D4); else @@ -4867,7 +4867,7 @@ const u16 * sub_81155E0(const u16 * a0) { else { UnkTextUtil_SetPtrI(0, gStringVar1); - UnkTextUtil_SetPtrI(1, ItemId_GetItem(r5[0])->name); + UnkTextUtil_SetPtrI(1, ItemId_GetName(r5[0])); ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6); UnkTextUtil_SetPtrI(2, gStringVar2); UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A896); @@ -4890,7 +4890,7 @@ const u16 * sub_8115700(const u16 * a0) const u16 * r4 = sub_8113E88(40, a0); const u8 * r5 = (const u8 *)r4 + 2; sub_80C4DF8(gStringVar1, r5[0]); - StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name); + StringCopy(gStringVar2, ItemId_GetName(r4[0])); StringExpandPlaceholders(gStringVar4, gUnknown_841B03F); return (const u16 *)(r5 + 2); } diff --git a/src/quest_log_battle.c b/src/quest_log_battle.c index c702b6a5c..4a63042bf 100644 --- a/src/quest_log_battle.c +++ b/src/quest_log_battle.c @@ -26,7 +26,7 @@ void sub_812C334(s32 *, s32 *); void sub_812BFDC(void) { - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_DOME)) && (gUnknown_2023E8A == 1 || gUnknown_2023E8A == 7)) + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_DOME)) && (gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT)) { struct QuestLogStruct_TrainerBattleRecord * questLogTrainerBattleRecord = Alloc(sizeof(struct QuestLogStruct_TrainerBattleRecord)); struct QuestLogStruct_WildBattleRecord * questLogWildBattleRecord = Alloc(sizeof(struct QuestLogStruct_WildBattleRecord)); @@ -71,7 +71,7 @@ void sub_812BFDC(void) playerEndingHP = gBattleMons[GetBattlerAtPosition(0)].hp; playerMaxHP = gBattleMons[GetBattlerAtPosition(0)].maxHP; } - questLogTrainerBattleRecord->v7 = sav1_map_get_name(); + questLogTrainerBattleRecord->v7 = GetCurrentRegionMapSectionId(); questLogTrainerBattleRecord->v6 = 0; if (playerEndingHP < playerMaxHP / 3 * 2) questLogTrainerBattleRecord->v6 = 1; @@ -81,7 +81,7 @@ void sub_812BFDC(void) } else { - if (gUnknown_2023E8A == 1) + if (gBattleOutcome == B_OUTCOME_WON) { questLogWildBattleRecord->v0 = GetMonData(gEnemyParty + 0, MON_DATA_SPECIES); questLogWildBattleRecord->v2 = SPECIES_NONE; @@ -91,7 +91,7 @@ void sub_812BFDC(void) questLogWildBattleRecord->v0 = SPECIES_NONE; questLogWildBattleRecord->v2 = GetMonData(gEnemyParty + 0, MON_DATA_SPECIES); } - questLogWildBattleRecord->v4 = sav1_map_get_name(); + questLogWildBattleRecord->v4 = GetCurrentRegionMapSectionId(); sub_8113550(31, (const u16 *)questLogWildBattleRecord); } Free(questLogTrainerBattleRecord); @@ -116,7 +116,7 @@ void sub_812C224(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { struct QuestLogStruct_LinkBattleRecord * r5 = Alloc(sizeof(struct QuestLogStruct_LinkBattleRecord)); - r5->v0 = gUnknown_2023E8A - 1; + r5->v0 = gBattleOutcome - 1; // 0 = won, 1 = lost, 2 = drew if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { r8 = 15; diff --git a/src/roamer.c b/src/roamer.c new file mode 100644 index 000000000..b42855644 --- /dev/null +++ b/src/roamer.c @@ -0,0 +1,240 @@ +#include "global.h" +#include "roamer.h" +#include "random.h" +#include "overworld.h" +#include "field_specials.h" +#include "constants/species.h" +#include "constants/maps.h" +#include "constants/region_map.h" + +EWRAM_DATA u8 sLocationHistory[3][2] = {}; +EWRAM_DATA u8 sRoamerLocation[2] = {}; + +#define saveRoamer (*(&gSaveBlock1Ptr->roamer)) + +enum +{ + MAP_GRP = 0, // map group + MAP_NUM = 1, // map number +}; + +const u8 sRoamerLocations[][7] = { + {MAP_NUM(ROUTE1), MAP_NUM(ROUTE2), MAP_NUM(ROUTE21_NORTH), MAP_NUM(ROUTE22), 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE2), MAP_NUM(ROUTE1), MAP_NUM(ROUTE3), MAP_NUM(ROUTE22), 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE3), MAP_NUM(ROUTE2), MAP_NUM(ROUTE4), 0xff, 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE4), MAP_NUM(ROUTE3), MAP_NUM(ROUTE5), MAP_NUM(ROUTE9), MAP_NUM(ROUTE24), 0xff, 0xff}, + {MAP_NUM(ROUTE5), MAP_NUM(ROUTE4), MAP_NUM(ROUTE6), MAP_NUM(ROUTE7), MAP_NUM(ROUTE8), MAP_NUM(ROUTE9), MAP_NUM(ROUTE24)}, + {MAP_NUM(ROUTE6), MAP_NUM(ROUTE5), MAP_NUM(ROUTE7), MAP_NUM(ROUTE8), MAP_NUM(ROUTE11), 0xff, 0xff}, + {MAP_NUM(ROUTE7), MAP_NUM(ROUTE5), MAP_NUM(ROUTE6), MAP_NUM(ROUTE8), MAP_NUM(ROUTE16), 0xff, 0xff}, + {MAP_NUM(ROUTE8), MAP_NUM(ROUTE5), MAP_NUM(ROUTE6), MAP_NUM(ROUTE7), MAP_NUM(ROUTE10), MAP_NUM(ROUTE12), 0xff}, + {MAP_NUM(ROUTE9), MAP_NUM(ROUTE4), MAP_NUM(ROUTE5), MAP_NUM(ROUTE10), MAP_NUM(ROUTE24), 0xff, 0xff}, + {MAP_NUM(ROUTE10), MAP_NUM(ROUTE8), MAP_NUM(ROUTE9), MAP_NUM(ROUTE12), 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE11), MAP_NUM(ROUTE6), MAP_NUM(ROUTE12), 0xff, 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE12), MAP_NUM(ROUTE10), MAP_NUM(ROUTE11), MAP_NUM(ROUTE13), 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE13), MAP_NUM(ROUTE12), MAP_NUM(ROUTE14), 0xff, 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE14), MAP_NUM(ROUTE13), MAP_NUM(ROUTE15), 0xff, 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE15), MAP_NUM(ROUTE14), MAP_NUM(ROUTE18), MAP_NUM(ROUTE19), 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE16), MAP_NUM(ROUTE7), MAP_NUM(ROUTE17), 0xff, 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE17), MAP_NUM(ROUTE16), MAP_NUM(ROUTE18), 0xff, 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE18), MAP_NUM(ROUTE15), MAP_NUM(ROUTE17), MAP_NUM(ROUTE19), 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE19), MAP_NUM(ROUTE15), MAP_NUM(ROUTE18), MAP_NUM(ROUTE20), 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE20), MAP_NUM(ROUTE19), MAP_NUM(ROUTE21_NORTH), 0xff, 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE21_NORTH), MAP_NUM(ROUTE1), MAP_NUM(ROUTE20), 0xff, 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE22), MAP_NUM(ROUTE1), MAP_NUM(ROUTE2), MAP_NUM(ROUTE23), 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE23), MAP_NUM(ROUTE22), MAP_NUM(ROUTE2), 0xff, 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE24), MAP_NUM(ROUTE4), MAP_NUM(ROUTE5), MAP_NUM(ROUTE9), 0xff, 0xff, 0xff}, + {MAP_NUM(ROUTE25), MAP_NUM(ROUTE24), MAP_NUM(ROUTE9), 0xff, 0xff, 0xff, 0xff}, + {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} +}; + +void ClearRoamerData(void) +{ + u32 i; + gSaveBlock1Ptr->roamer = (struct Roamer){}; + sRoamerLocation[MAP_GRP] = 0; + sRoamerLocation[MAP_NUM] = 0; + for (i = 0; i < 3; i++) + { + sLocationHistory[i][MAP_GRP] = 0; + sLocationHistory[i][MAP_NUM] = 0; + } +} + +#define GetRoamerSpecies() ({\ + u16 a;\ + switch (ScrSpecial_GetStarter())\ + {\ + default:\ + a = SPECIES_RAIKOU;\ + break;\ + case SPECIES_BULBASAUR:\ + a = SPECIES_ENTEI;\ + break;\ + case SPECIES_CHARMANDER:\ + a = SPECIES_SUICUNE;\ + break;\ + }\ + a;\ +}) + +void CreateInitialRoamerMon(void) +{ + struct Pokemon * tmpMon = &gEnemyParty[0]; + u16 roamerMon; + + CreateMon(tmpMon, (roamerMon = GetRoamerSpecies()), 50, 0x20, 0, 0, 0, 0); + saveRoamer.species = roamerMon; + saveRoamer.level = 50; + saveRoamer.status = 0; + saveRoamer.active = TRUE; + saveRoamer.ivs = GetMonData(tmpMon, MON_DATA_IVS); + saveRoamer.personality = GetMonData(tmpMon, MON_DATA_PERSONALITY); + saveRoamer.hp = GetMonData(tmpMon, MON_DATA_MAX_HP); + saveRoamer.cool = GetMonData(tmpMon, MON_DATA_COOL); + saveRoamer.beauty = GetMonData(tmpMon, MON_DATA_BEAUTY); + saveRoamer.cute = GetMonData(tmpMon, MON_DATA_CUTE); + saveRoamer.smart = GetMonData(tmpMon, MON_DATA_SMART); + saveRoamer.tough = GetMonData(tmpMon, MON_DATA_TOUGH); + sRoamerLocation[MAP_GRP] = 3; + sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0]; +} + +void InitRoamer(void) +{ + ClearRoamerData(); + CreateInitialRoamerMon(); +} + +void UpdateLocationHistoryForRoamer(void) +{ + sLocationHistory[2][MAP_GRP] = sLocationHistory[1][MAP_GRP]; + sLocationHistory[2][MAP_NUM] = sLocationHistory[1][MAP_NUM]; + sLocationHistory[1][MAP_GRP] = sLocationHistory[0][MAP_GRP]; + sLocationHistory[1][MAP_NUM] = sLocationHistory[0][MAP_NUM]; + sLocationHistory[0][MAP_GRP] = gSaveBlock1Ptr->location.mapGroup; + sLocationHistory[0][MAP_NUM] = gSaveBlock1Ptr->location.mapNum; +} + +void RoamerMoveToOtherLocationSet(void) +{ + u8 mapNum = 0; + struct Roamer *roamer = &saveRoamer; + + if (!roamer->active) + return; + + sRoamerLocation[MAP_GRP] = 3; + + while (1) + { + mapNum = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0]; + if (sRoamerLocation[MAP_NUM] != mapNum) + { + sRoamerLocation[MAP_NUM] = mapNum; + return; + } + } +} + + +void RoamerMove(void) +{ + u8 locSet = 0; + + if ((Random() % 16) == 0) + { + RoamerMoveToOtherLocationSet(); + } + else + { + struct Roamer *roamer = &saveRoamer; + + if (!roamer->active) + return; + + while (locSet < (ARRAY_COUNT(sRoamerLocations) - 1)) + { + if (sRoamerLocation[MAP_NUM] == sRoamerLocations[locSet][0]) + { + u8 mapNum; + while (1) + { + mapNum = sRoamerLocations[locSet][(Random() % 6) + 1]; + if (!(sLocationHistory[2][MAP_GRP] == 3 && sLocationHistory[2][MAP_NUM] == mapNum) && mapNum != 0xFF) + break; + } + sRoamerLocation[MAP_NUM] = mapNum; + return; + } + locSet++; + } + } +} + +bool8 IsRoamerAt(u8 mapGroup, u8 mapNum) +{ + struct Roamer *roamer = &saveRoamer; + + if (roamer->active && mapGroup == sRoamerLocation[MAP_GRP] && mapNum == sRoamerLocation[MAP_NUM]) + return TRUE; + else + return FALSE; +} + +void CreateRoamerMonInstance(void) +{ + struct Pokemon *mon; + struct Roamer *roamer; + + mon = &gEnemyParty[0]; + ZeroEnemyPartyMons(); + roamer = &saveRoamer; + CreateMonWithIVsPersonality(mon, roamer->species, roamer->level, roamer->ivs, roamer->personality); + SetMonData(mon, MON_DATA_STATUS, &gSaveBlock1Ptr->roamer.status); + SetMonData(mon, MON_DATA_HP, &gSaveBlock1Ptr->roamer.hp); + SetMonData(mon, MON_DATA_COOL, &gSaveBlock1Ptr->roamer.cool); + SetMonData(mon, MON_DATA_BEAUTY, &gSaveBlock1Ptr->roamer.beauty); + SetMonData(mon, MON_DATA_CUTE, &gSaveBlock1Ptr->roamer.cute); + SetMonData(mon, MON_DATA_SMART, &gSaveBlock1Ptr->roamer.smart); + SetMonData(mon, MON_DATA_TOUGH, &gSaveBlock1Ptr->roamer.tough); +} + +bool8 TryStartRoamerEncounter(void) +{ + if (IsRoamerAt(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum) == TRUE && (Random() % 4) == 0) + { + CreateRoamerMonInstance(); + return TRUE; + } + else + { + return FALSE; + } +} +void UpdateRoamerHPStatus(struct Pokemon *mon) +{ + saveRoamer.hp = GetMonData(mon, MON_DATA_HP); + saveRoamer.status = GetMonData(mon, MON_DATA_STATUS); + + RoamerMoveToOtherLocationSet(); +} + +void SetRoamerInactive(void) +{ + struct Roamer *roamer = &saveRoamer; + roamer->active = FALSE; +} + +void GetRoamerLocation(u8 *mapGroup, u8 *mapNum) +{ + *mapGroup = sRoamerLocation[MAP_GRP]; + *mapNum = sRoamerLocation[MAP_NUM]; +} + +u16 GetRoamerLocationMapSectionId(void) +{ + struct Roamer *roamer = &saveRoamer; + if (!saveRoamer.active) + return MAPSEC_NONE; + return get_mapheader_by_bank_and_number(sRoamerLocation[MAP_GRP], sRoamerLocation[MAP_NUM])->regionMapSectionId; +} diff --git a/src/roulette_util.c b/src/roulette_util.c new file mode 100644 index 000000000..3c5a3c825 --- /dev/null +++ b/src/roulette_util.c @@ -0,0 +1,463 @@ +#include "global.h" +#include "palette.h" +#include "roulette_util.h" +#include "util.h" + +void sub_80D8BE4(struct UnkStruct0 *r0) +{ + r0->var00 = 0; + r0->var02 = 0; + memset(&r0->var04, 0, sizeof(r0->var04)); +} + +u8 sub_80D8BF8(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2) +{ + if (!(r1 < 16) || (r0->var04[r1].var00_7)) + return 0xFF; + + r0->var04[r1].var04.var00 = r2->var00; + r0->var04[r1].var04.var02 = r2->var02; + r0->var04[r1].var04.var04 = r2->var04; + r0->var04[r1].var04.var05 = r2->var05; + r0->var04[r1].var04.var06 = r2->var06; + r0->var04[r1].var04.var07_0 = r2->var07_0; + r0->var04[r1].var04.var07_5 = r2->var07_5; + r0->var04[r1].var04.var07_7 = r2->var07_7; + r0->var04[r1].var00_0 = 0; + r0->var04[r1].var00_7 = 1; + r0->var04[r1].var02 = 0; + r0->var04[r1].var01 = 0; + if (r0->var04[r1].var04.var07_7 < 0) + r0->var04[r1].var03 = 0xFF; + else + r0->var04[r1].var03 = 1; + + return r1; +} + +u8 sub_80D8C7C(struct UnkStruct0 *r0, u8 r1) +{ + if (r1 >= 16) + return 0xFF; + if (!r0->var04[r1].var00_7) + return 0xFF; + + memset(&r0->var04[r1], 0, sizeof(r0->var04[r1])); + return r1; +} + +u8 sub_80D8CB0(struct UnkStruct3 *r0) +{ + u8 i; + u8 returnval; + + for (i = 0; i < r0->var04.var04; i++) + { + struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[r0->var04.var02 + i]; + struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[r0->var04.var02 + i]; + + switch (r0->var00_0) + { + case 1: + if (faded->r + r0->var03 >= 0 && faded->r + r0->var03 < 32) + faded->r += r0->var03; + if (faded->g + r0->var03 >= 0 && faded->g + r0->var03 < 32) + faded->g += r0->var03; + if (faded->b + r0->var03 >= 0 && faded->b + r0->var03 < 32) + faded->b += r0->var03; + break; + case 2: + if (r0->var03 < 0) + { + if (faded->r + r0->var03 >= unfaded->r) + faded->r += r0->var03; + if (faded->g + r0->var03 >= unfaded->g) + faded->g += r0->var03; + if (faded->b + r0->var03 >= unfaded->b) + faded->b += r0->var03; + } + else + { + if (faded->r + r0->var03 <= unfaded->r) + faded->r += r0->var03; + if (faded->g + r0->var03 <= unfaded->g) + faded->g += r0->var03; + if (faded->b + r0->var03 <= unfaded->b) + faded->b += r0->var03; + } + break; + } + } + if ((u32)r0->var02++ != r0->var04.var07_0) + { + returnval = 0; + } + else + { + r0->var02 = 0; + r0->var03 *= -1; + if (r0->var00_0 == 1) + r0->var00_0++; + else + r0->var00_0--; + returnval = 1; + } + return returnval; +} + +u8 sub_80D8EB8(struct UnkStruct3 *r0) +{ + u8 rg2 = 0; + + switch (r0->var00_0) + { + case 1: + for (rg2 = 0; rg2 < r0->var04.var04; rg2++) + gPlttBufferFaded[r0->var04.var02 + rg2] = r0->var04.var00; + r0->var00_0++; + break; + case 2: + for (rg2 = 0; rg2 < r0->var04.var04; rg2++) + gPlttBufferFaded[r0->var04.var02 + rg2] = gPlttBufferUnfaded[r0->var04.var02 + rg2]; + r0->var00_0--; + break; + } + return 1; +} + +void task_tutorial_controls_fadein(struct UnkStruct0 *r0) +{ + u8 i = 0; + + if (r0->var00) + { + for (i = 0; i < 16; i++) + { + if ((r0->var02 >> i) & 1) + { + if (--r0->var04[i].var01 == 0xFF) // if underflow ? + { + if (r0->var04[i].var04.var00 & 0x8000) // PlttData->unused_15 ? + sub_80D8CB0(&r0->var04[i]); + else + sub_80D8EB8(&r0->var04[i]); + + r0->var04[i].var01 = r0->var04[i].var04.var05; + } + } + } + } +} + +void sub_80D8FB4(struct UnkStruct0 *r0, u16 r1) +{ + u8 i = 0; + + r0->var00++; + for (i = 0; i < 16; i++) + { + if ((r1 >> i) & 1) + { + if (r0->var04[i].var00_7) + { + r0->var02 |= 1 << i; + r0->var04[i].var00_0 = 1; + } + } + } +} + +void sub_80D9008(struct UnkStruct0 *r0, u16 r1) +{ + u8 i; + + for (i = 0; i < 16; i++) + { + if ((r0->var02 >> i) & 1) + { + if (r0->var04[i].var00_7) + { + if ((r1 >> i) & 1) + { + u32 offset = r0->var04[i].var04.var02; + u16 *faded = &gPlttBufferFaded[offset]; + u16 *unfaded = &gPlttBufferUnfaded[offset]; + memcpy(faded, unfaded, r0->var04[i].var04.var04 * 2); + r0->var04[i].var00_0 = 0; + r0->var04[i].var02 = 0; + r0->var04[i].var01 = 0; + if (r0->var04[i].var04.var07_7 < 0) + r0->var04[i].var03 = 0xFF; + else + r0->var04[i].var03 = 0x1; + } + } + } + } + if (r1 == 0xFFFF) + { + r0->var00 = 0; + r0->var02 = 0; + } + else + { + r0->var02 = r0->var02 & ~r1; + } +} + +void InitPulseBlend(struct PulseBlend *pulseBlend) +{ + u8 i = 0; + pulseBlend->usedPulseBlendPalettes = 0; + memset(&pulseBlend->pulseBlendPalettes, 0, sizeof(pulseBlend->pulseBlendPalettes)); + for (; i < 16; i++) + pulseBlend->pulseBlendPalettes[i].paletteSelector = i; +} + +int InitPulseBlendPaletteSettings(struct PulseBlend *pulseBlend, const struct PulseBlendSettings *settings) +{ + u8 i = 0; + struct PulseBlendPalette *pulseBlendPalette = NULL; + + if (!pulseBlend->pulseBlendPalettes[0].inUse) + { + pulseBlendPalette = &pulseBlend->pulseBlendPalettes[0]; + } + else + { + while (++i < 16) + { + if (!pulseBlend->pulseBlendPalettes[i].inUse) + { + pulseBlendPalette = &pulseBlend->pulseBlendPalettes[i]; + break; + } + } + } + + if (pulseBlendPalette == NULL) + return 0xFF; + + pulseBlendPalette->blendCoeff = 0; + pulseBlendPalette->fadeDirection = 0; + pulseBlendPalette->available = 1; + pulseBlendPalette->inUse = 1; + pulseBlendPalette->delayCounter = 0; + pulseBlendPalette->fadeCycleCounter = 0; + memcpy(&pulseBlendPalette->pulseBlendSettings, settings, sizeof(*settings)); + return i; +} + +static void ClearPulseBlendPalettesSettings(struct PulseBlendPalette *pulseBlendPalette) +{ + u16 i; + + if (!pulseBlendPalette->available && pulseBlendPalette->pulseBlendSettings.restorePaletteOnUnload) + { + for (i = pulseBlendPalette->pulseBlendSettings.paletteOffset; i < pulseBlendPalette->pulseBlendSettings.paletteOffset + pulseBlendPalette->pulseBlendSettings.numColors; i++) + gPlttBufferFaded[i] = gPlttBufferUnfaded[i]; + } + + memset(&pulseBlendPalette->pulseBlendSettings, 0, sizeof(pulseBlendPalette->pulseBlendSettings)); + pulseBlendPalette->blendCoeff = 0; + pulseBlendPalette->fadeDirection = 0; + pulseBlendPalette->unk1_5 = 0; + pulseBlendPalette->available = 1; + pulseBlendPalette->inUse = 0; + pulseBlendPalette->fadeCycleCounter = 0; + pulseBlendPalette->delayCounter = 0; +} + +void UnloadUsedPulseBlendPalettes(struct PulseBlend *pulseBlend, u16 pulseBlendPaletteSelector, u8 multiSelection) +{ + u16 i = 0; + + if (!multiSelection) + { + ClearPulseBlendPalettesSettings(&pulseBlend->pulseBlendPalettes[pulseBlendPaletteSelector & 0xF]); + } + else + { + for (i = 0; i < 16; i++) + { + if ((pulseBlendPaletteSelector & 1) && pulseBlend->pulseBlendPalettes[i].inUse) + ClearPulseBlendPalettesSettings(&pulseBlend->pulseBlendPalettes[i]); + + pulseBlendPaletteSelector >>= 1; + } + } +} + +void MarkUsedPulseBlendPalettes(struct PulseBlend *pulseBlend, u16 pulseBlendPaletteSelector, u8 multiSelection) +{ + u8 i = 0; + + if (!multiSelection) + { + i = pulseBlendPaletteSelector & 0xF; + pulseBlend->pulseBlendPalettes[i].available = 0; + pulseBlend->usedPulseBlendPalettes |= 1 << i; + } + else + { + for (i = 0; i < 16; i++) + { + if (!(pulseBlendPaletteSelector & 1) || !pulseBlend->pulseBlendPalettes[i].inUse || !pulseBlend->pulseBlendPalettes[i].available) + { + pulseBlendPaletteSelector <<= 1; + } + else + { + pulseBlend->pulseBlendPalettes[i].available = 0; + pulseBlend->usedPulseBlendPalettes |= 1 << i; + } + } + } +} + +void UnmarkUsedPulseBlendPalettes(struct PulseBlend *pulseBlend, u16 pulseBlendPaletteSelector, u8 multiSelection) +{ + u16 i; + struct PulseBlendPalette *pulseBlendPalette; + u8 j = 0; + + if (!multiSelection) + { + pulseBlendPalette = &pulseBlend->pulseBlendPalettes[pulseBlendPaletteSelector & 0xF]; + if (!pulseBlendPalette->available && pulseBlendPalette->inUse) + { + if (pulseBlendPalette->pulseBlendSettings.restorePaletteOnUnload) + { + for (i = pulseBlendPalette->pulseBlendSettings.paletteOffset; i < pulseBlendPalette->pulseBlendSettings.paletteOffset + pulseBlendPalette->pulseBlendSettings.numColors; i++) + gPlttBufferFaded[i] = gPlttBufferUnfaded[i]; + } + + pulseBlendPalette->available = 1; + pulseBlend->usedPulseBlendPalettes &= ~(1 << j); + } + } + else + { + for (j = 0; j < 16; j++) + { + pulseBlendPalette = &pulseBlend->pulseBlendPalettes[j]; + if (!(pulseBlendPaletteSelector & 1) || pulseBlendPalette->available || !pulseBlendPalette->inUse) + { + pulseBlendPaletteSelector <<= 1; + } + else + { + if (pulseBlendPalette->pulseBlendSettings.restorePaletteOnUnload) + { + for (i = pulseBlendPalette->pulseBlendSettings.paletteOffset; i < pulseBlendPalette->pulseBlendSettings.paletteOffset + pulseBlendPalette->pulseBlendSettings.numColors; i++) + gPlttBufferFaded[i] = gPlttBufferUnfaded[i]; + } + + pulseBlendPalette->available = 1; + pulseBlend->usedPulseBlendPalettes &= ~(1 << j); + } + } + } +} + +void UpdatePulseBlend(struct PulseBlend *pulseBlend) +{ + struct PulseBlendPalette *pulseBlendPalette; + u8 i = 0; + + if (pulseBlend->usedPulseBlendPalettes) + { + for (i = 0; i < 16; i++) + { + pulseBlendPalette = &pulseBlend->pulseBlendPalettes[i]; + if ((!pulseBlendPalette->available && pulseBlendPalette->inUse) && (!gPaletteFade.active || !pulseBlendPalette->pulseBlendSettings.unk7_7)) + { + if (--pulseBlendPalette->delayCounter == 0xFF) + { + pulseBlendPalette->delayCounter = pulseBlendPalette->pulseBlendSettings.delay; + BlendPalette(pulseBlendPalette->pulseBlendSettings.paletteOffset, pulseBlendPalette->pulseBlendSettings.numColors, pulseBlendPalette->blendCoeff, pulseBlendPalette->pulseBlendSettings.blendColor); + switch (pulseBlendPalette->pulseBlendSettings.fadeType) + { + case 0: // Fade all the way to the max blend amount, then wrap around + // BUG: This comparison will never be true for maxBlendCoeff values that are >= 8. This is because + // maxBlendCoeff is a signed 4-bit field, but blendCoeff is an unsigned 4-bit field. This code is never + // reached, anyway, so the bug is not observable in vanilla gameplay. + if (pulseBlendPalette->blendCoeff++ == pulseBlendPalette->pulseBlendSettings.maxBlendCoeff) + { + pulseBlendPalette->fadeCycleCounter++; + pulseBlendPalette->blendCoeff = 0; + } + break; + case 1: // Fade in and out + if (pulseBlendPalette->fadeDirection) + { + if (--pulseBlendPalette->blendCoeff == 0) + { + pulseBlendPalette->fadeCycleCounter++; + pulseBlendPalette->fadeDirection ^= 1; + } + } + else + { + u8 max = (pulseBlendPalette->pulseBlendSettings.maxBlendCoeff - 1) & 0xF; + if (pulseBlendPalette->blendCoeff++ == max) + { + pulseBlendPalette->fadeCycleCounter++; + pulseBlendPalette->fadeDirection ^= 1; + } + } + break; + case 2: // Flip back and forth + if (pulseBlendPalette->fadeDirection) + pulseBlendPalette->blendCoeff = 0; + else + pulseBlendPalette->blendCoeff = pulseBlendPalette->pulseBlendSettings.maxBlendCoeff & 0xF; + + pulseBlendPalette->fadeDirection ^= 1; + pulseBlendPalette->fadeCycleCounter++; + break; + } + + if (pulseBlendPalette->pulseBlendSettings.numFadeCycles != 0xFF + && pulseBlendPalette->fadeCycleCounter == pulseBlendPalette->pulseBlendSettings.numFadeCycles) + UnmarkUsedPulseBlendPalettes(pulseBlend, pulseBlendPalette->paletteSelector, FALSE); + } + } + } + } +} + +void sub_80D9574(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) +{ + u16 *_dest; + u8 i; + u8 j; + i = 0; + dest = &dest[top * 32 + left]; + for (; i < height; i++) + { + _dest = dest + i * 32; + for (j = 0; j < width; j++) + { + *_dest++ = src; + } + } +} + +void sub_80D95C4(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) +{ + u16 *_dest; + u16 *_src = src; + u8 i; + u8 j; + i = 0; + dest = &dest[top * 32 + left]; + for (; i < height; i++) + { + _dest = dest + i * 32; + for (j = 0; j < width; j++) + { + *_dest++ = *_src++; + } + } +} diff --git a/src/save.c b/src/save.c index ef38d8b17..d3d31a22e 100644 --- a/src/save.c +++ b/src/save.c @@ -69,7 +69,7 @@ const struct SaveSectionOffsets gSaveSectionOffsets[] = extern void DoSaveFailedScreen(u8 saveType); // save_failed_screen extern void sub_800AB9C(void); // link extern bool8 sub_800A4BC(void); // link -extern void sub_80590D8(void); // fieldmap +extern void save_serialize_map(void); // fieldmap extern void sub_804C1C0(void); // load_save extern void sav2_gender2_inplace_and_xFE(void); // load_save @@ -828,7 +828,7 @@ u32 TryCopySpecialSaveSection(u8 sector, u8* dst) return 1; } -u32 sub_80DA5E0(u8 sector, u8* src) +u32 TryWriteSpecialSaveSection(u8 sector, u8* src) { s32 i; s32 size; @@ -867,7 +867,7 @@ void sub_80DA634(u8 taskId) case 2: if (sub_800A4BC()) { - sub_80590D8(); + save_serialize_map(); gTasks[taskId].data[0] = 3; } break; diff --git a/src/scanline_effect.c b/src/scanline_effect.c new file mode 100644 index 000000000..22699b96d --- /dev/null +++ b/src/scanline_effect.c @@ -0,0 +1,262 @@ +#include "global.h" +#include "battle.h" +#include "task.h" +#include "trig.h" +#include "scanline_effect.h" + +extern u16 gBattle_BG0_X; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattle_BG3_X; +extern u16 gBattle_BG3_Y; + +static void CopyValue16Bit(void); +static void CopyValue32Bit(void); + +// EWRAM vars + +// Per-scanline register values. +// This is double buffered so that it can be safely written to at any time +// without overwriting the buffer that the DMA is currently reading +EWRAM_DATA u16 gScanlineEffectRegBuffers[2][0x3C0] = {0}; + +EWRAM_DATA struct ScanlineEffect gScanlineEffect = {0}; +EWRAM_DATA static bool8 sShouldStopWaveTask = FALSE; + +void ScanlineEffect_Stop(void) +{ + gScanlineEffect.state = 0; + DmaStop(0); + if (gScanlineEffect.waveTaskId != 0xFF) + { + DestroyTask(gScanlineEffect.waveTaskId); + gScanlineEffect.waveTaskId = 0xFF; + } +} + +void ScanlineEffect_Clear(void) +{ + CpuFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers)); + gScanlineEffect.dmaSrcBuffers[0] = NULL; + gScanlineEffect.dmaSrcBuffers[1] = NULL; + gScanlineEffect.dmaDest = NULL; + gScanlineEffect.dmaControl = 0; + gScanlineEffect.srcBuffer = 0; + gScanlineEffect.state = 0; + gScanlineEffect.unused16 = 0; + gScanlineEffect.unused17 = 0; + gScanlineEffect.waveTaskId = 0xFF; +} + +void ScanlineEffect_SetParams(struct ScanlineEffectParams params) +{ + if (params.dmaControl == SCANLINE_EFFECT_DMACNT_16BIT) // 16-bit + { + // Set the DMA src to the value for the second scanline because the + // first DMA transfer occurs in HBlank *after* the first scanline is drawn + gScanlineEffect.dmaSrcBuffers[0] = (u16 *)gScanlineEffectRegBuffers[0] + 1; + gScanlineEffect.dmaSrcBuffers[1] = (u16 *)gScanlineEffectRegBuffers[1] + 1; + gScanlineEffect.setFirstScanlineReg = CopyValue16Bit; + } + else // assume 32-bit + { + // Set the DMA src to the value for the second scanline because the + // first DMA transfer occurs in HBlank *after* the first scanline is drawn + gScanlineEffect.dmaSrcBuffers[0] = (u32 *)gScanlineEffectRegBuffers[0] + 1; + gScanlineEffect.dmaSrcBuffers[1] = (u32 *)gScanlineEffectRegBuffers[1] + 1; + gScanlineEffect.setFirstScanlineReg = CopyValue32Bit; + } + + gScanlineEffect.dmaControl = params.dmaControl; + gScanlineEffect.dmaDest = params.dmaDest; + gScanlineEffect.state = params.initState; + gScanlineEffect.unused16 = params.unused9; + gScanlineEffect.unused17 = params.unused9; +} + +void ScanlineEffect_InitHBlankDmaTransfer(void) +{ + if (gScanlineEffect.state == 0) + { + return; + } + else if (gScanlineEffect.state == 3) + { + gScanlineEffect.state = 0; + DmaStop(0); + sShouldStopWaveTask = TRUE; + } + else + { + DmaStop(0); + // Set DMA to copy to dest register on each HBlank for the next frame. + // The HBlank DMA transfers do not occurr during VBlank, so the transfer + // will begin on the HBlank after the first scanline + DmaSet(0, gScanlineEffect.dmaSrcBuffers[gScanlineEffect.srcBuffer], gScanlineEffect.dmaDest, gScanlineEffect.dmaControl); + // Manually set the reg for the first scanline + gScanlineEffect.setFirstScanlineReg(); + // Swap current buffer + gScanlineEffect.srcBuffer ^= 1; + } +} + +// These two functions are used to copy the register for the first scanline, +// depending whether it is a 16-bit register or a 32-bit register. + +static void CopyValue16Bit(void) +{ + u16 *dest = (u16 *)gScanlineEffect.dmaDest; + u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer]; + + *dest = *src; +} + +static void CopyValue32Bit(void) +{ + u32 *dest = (u32 *)gScanlineEffect.dmaDest; + u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer]; + + *dest = *src; +} + +#define tStartLine data[0] +#define tEndLine data[1] +#define tWaveLength data[2] +#define tSrcBufferOffset data[3] +#define tFramesUntilMove data[4] +#define tDelayInterval data[5] +#define tRegOffset data[6] +#define tApplyBattleBgOffsets data[7] + +static void TaskFunc_UpdateWavePerFrame(u8 taskId) +{ + int value = 0; + int i; + int offset; + + if (sShouldStopWaveTask) + { + DestroyTask(taskId); + gScanlineEffect.waveTaskId = 0xFF; + } + else + { + if (gTasks[taskId].tApplyBattleBgOffsets) + { + switch (gTasks[taskId].tRegOffset) + { + case SCANLINE_EFFECT_REG_BG0HOFS: + value = gBattle_BG0_X; + break; + case SCANLINE_EFFECT_REG_BG0VOFS: + value = gBattle_BG0_Y; + break; + case SCANLINE_EFFECT_REG_BG1HOFS: + value = gBattle_BG1_X; + break; + case SCANLINE_EFFECT_REG_BG1VOFS: + value = gBattle_BG1_Y; + break; + case SCANLINE_EFFECT_REG_BG2HOFS: + value = gBattle_BG2_X; + break; + case SCANLINE_EFFECT_REG_BG2VOFS: + value = gBattle_BG2_Y; + break; + case SCANLINE_EFFECT_REG_BG3HOFS: + value = gBattle_BG3_X; + break; + case SCANLINE_EFFECT_REG_BG3VOFS: + value = gBattle_BG3_Y; + break; + } + } + if (gTasks[taskId].tFramesUntilMove != 0) + { + gTasks[taskId].tFramesUntilMove--; + offset = gTasks[taskId].tSrcBufferOffset + 320; + for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++) + { + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value; + offset++; + } + } + else + { + gTasks[taskId].tFramesUntilMove = gTasks[taskId].tDelayInterval; + offset = gTasks[taskId].tSrcBufferOffset + 320; + for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++) + { + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value; + offset++; + } + + // increment src buffer offset + gTasks[taskId].tSrcBufferOffset++; + if (gTasks[taskId].tSrcBufferOffset == gTasks[taskId].tWaveLength) + gTasks[taskId].tSrcBufferOffset = 0; + } + } +} + +static void GenerateWave(u16 *buffer, u8 frequency, u8 amplitude, u8 unused) +{ + u16 i = 0; + u8 theta = 0; + + while (i < 256) + { + buffer[i] = (gSineTable[theta] * amplitude) / 256; + theta += frequency; + i++; + } +} + +// Initializes a background "wave" effect that affects scanlines startLine (inclusive) to endLine (exclusive). +// 'frequency' and 'amplitude' control the frequency and amplitude of the wave. +// 'delayInterval' controls how fast the wave travels up the screen. The wave will shift upwards one scanline every 'delayInterval'+1 frames. +// 'regOffset' is the offset of the video register to modify. +u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 applyBattleBgOffsets) +{ + int i; + int offset; + struct ScanlineEffectParams params; + u8 taskId; + + ScanlineEffect_Clear(); + + params.dmaDest = (void *)(REG_ADDR_BG0HOFS + regOffset); + params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + params.initState = 1; + params.unused9 = 0; + ScanlineEffect_SetParams(params); + + taskId = CreateTask(TaskFunc_UpdateWavePerFrame, 0); + + gTasks[taskId].tStartLine = startLine; + gTasks[taskId].tEndLine = endLine; + gTasks[taskId].tWaveLength = 256 / frequency; + gTasks[taskId].tSrcBufferOffset = 0; + gTasks[taskId].tFramesUntilMove = delayInterval; + gTasks[taskId].tDelayInterval = delayInterval; + gTasks[taskId].tRegOffset = regOffset; + gTasks[taskId].tApplyBattleBgOffsets = applyBattleBgOffsets; + + gScanlineEffect.waveTaskId = taskId; + sShouldStopWaveTask = FALSE; + + GenerateWave(&gScanlineEffectRegBuffers[0][320], frequency, amplitude, endLine - startLine); + + offset = 320; + for (i = startLine; i < endLine; i++) + { + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[0][offset]; + gScanlineEffectRegBuffers[1][i] = gScanlineEffectRegBuffers[0][offset]; + offset++; + } + + return taskId; +} diff --git a/src/scrcmd.c b/src/scrcmd.c new file mode 100644 index 000000000..7c27293a7 --- /dev/null +++ b/src/scrcmd.c @@ -0,0 +1,2267 @@ +#include "global.h" +#include "gba/isagbprint.h" +#include "palette.h" +#include "script.h" +#include "mystery_event_script.h" +#include "event_data.h" +#include "random.h" +#include "item.h" +#include "overworld.h" +#include "field_screen_effect.h" +#include "quest_log.h" +#include "map_preview_screen.h" +#include "field_weather.h" +#include "field_tasks.h" +#include "field_fadetransition.h" +#include "field_player_avatar.h" +#include "sound.h" +#include "script_movement.h" +#include "field_map_obj.h" +#include "field_map_obj_helpers.h" +#include "map_obj_lock.h" +#include "field_message_box.h" +#include "new_menu_helpers.h" +#include "window.h" +#include "start_menu.h" +#include "script_menu.h" +#include "string_util.h" +#include "data2.h" +#include "field_specials.h" +#include "constants/items.h" +#include "script_pokemon_util_80A0058.h" +#include "pokemon_storage_system.h" +#include "party_menu.h" +#include "money.h" +#include "coins.h" +#include "battle_setup.h" +#include "shop.h" +#include "script_pokemon_80F8.h" +#include "slot_machine.h" +#include "field_effect.h" +#include "fieldmap.h" +#include "field_door.h" +#include "scrcmd.h" + +extern u16 (*const gSpecials[])(void); +extern u16 (*const gSpecialsEnd[])(void); +extern const u8 *const gStdScripts[]; +extern const u8 *const gStdScriptsEnd[]; + +static bool8 sub_806B93C(struct ScriptContext * ctx); +static u8 sub_806B96C(struct ScriptContext * ctx); + +EWRAM_DATA ptrdiff_t gVScriptOffset = 0; +EWRAM_DATA u8 gUnknown_20370AC = 0; +EWRAM_DATA u16 sPauseCounter = 0; +EWRAM_DATA u16 sMovingNpcId = 0; +EWRAM_DATA u16 sMovingNpcMapBank = 0; +EWRAM_DATA u16 sMovingNpcMapId = 0; +EWRAM_DATA u16 sFieldEffectScriptId = 0; + +IWRAM_DATA struct ScriptContext * gUnknown_3005070; + +extern u8 gSelectedEventObject; + +// This is defined in here so the optimizer can't see its value when compiling +// script.c. +void * const gNullScriptPtr = NULL; + +static const u8 sScriptConditionTable[6][3] = +{ +// < = > + 1, 0, 0, // < + 0, 1, 0, // = + 0, 0, 1, // > + 1, 1, 0, // <= + 0, 1, 1, // >= + 1, 0, 1, // != +}; + +bool8 ScrCmd_nop(struct ScriptContext *ctx) +{ + return FALSE; +} + +bool8 ScrCmd_nop1(struct ScriptContext *ctx) +{ + return FALSE; +} + +bool8 ScrCmd_end(struct ScriptContext *ctx) +{ + StopScript(ctx); + return FALSE; +} + +bool8 ScrCmd_gotonative(struct ScriptContext *ctx) +{ + bool8 (*func)(void) = (bool8 (*)(void))ScriptReadWord(ctx); + SetupNativeScript(ctx, func); + return TRUE; +} + +bool8 ScrCmd_special(struct ScriptContext *ctx) +{ + u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx); + if (specialPtr < gSpecialsEnd) + (*specialPtr)(); + else + AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 241); + return FALSE; +} + +bool8 ScrCmd_specialvar(struct ScriptContext *ctx) +{ + u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx)); + u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx); + if (specialPtr < gSpecialsEnd) + *varPtr = (*specialPtr)(); + else + AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 263); + return FALSE; +} + +bool8 ScrCmd_callnative(struct ScriptContext *ctx) +{ + void (*func )(void) = ((void (*)(void))ScriptReadWord(ctx)); + func(); + return FALSE; +} + +bool8 ScrCmd_waitstate(struct ScriptContext *ctx) +{ + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_goto(struct ScriptContext *ctx) +{ + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + ScriptJump(ctx, scrptr); + return FALSE; +} + +bool8 ScrCmd_return(struct ScriptContext *ctx) +{ + ScriptReturn(ctx); + return FALSE; +} + +bool8 ScrCmd_call(struct ScriptContext *ctx) +{ + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + ScriptCall(ctx, scrptr); + return FALSE; +} + +bool8 ScrCmd_goto_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptJump(ctx, scrptr); + return FALSE; +} + +bool8 ScrCmd_call_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptCall(ctx, scrptr); + return FALSE; +} + +bool8 ScrCmd_setvaddress(struct ScriptContext *ctx) +{ + u32 addr1 = (u32)ctx->scriptPtr - 1; + u32 addr2 = ScriptReadWord(ctx); + + gVScriptOffset = addr2 - addr1; + return FALSE; +} + +bool8 ScrCmd_vgoto(struct ScriptContext *ctx) +{ + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + ScriptJump(ctx, scrptr - gVScriptOffset); + return FALSE; +} + +bool8 ScrCmd_vcall(struct ScriptContext *ctx) +{ + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx); + ScriptCall(ctx, scrptr - gVScriptOffset); + return FALSE; +} + +bool8 ScrCmd_vgoto_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset; + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptJump(ctx, scrptr); + return FALSE; +} + +bool8 ScrCmd_vcall_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset; + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptCall(ctx, scrptr); + return FALSE; +} + +bool8 ScrCmd_gotostd(struct ScriptContext *ctx) +{ + u8 stdIdx = ScriptReadByte(ctx); + const u8 *const * script = gStdScripts + stdIdx; + if (script < gStdScriptsEnd) + ScriptJump(ctx, *script); + return FALSE; +} + +bool8 ScrCmd_callstd(struct ScriptContext *ctx) +{ + u8 stdIdx = ScriptReadByte(ctx); + const u8 *const * script = gStdScripts + stdIdx; + if (script < gStdScriptsEnd) + ScriptCall(ctx, *script); + return FALSE; +} + +bool8 ScrCmd_gotostd_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + u8 stdIdx = ScriptReadByte(ctx); + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + { + const u8 *const * script = gStdScripts + stdIdx; + if (script < gStdScriptsEnd) + ScriptJump(ctx, *script); + } + return FALSE; +} + +bool8 ScrCmd_callstd_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + u8 stdIdx = ScriptReadByte(ctx); + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + { + const u8 *const * script = gStdScripts + stdIdx; + if (script < gStdScriptsEnd) + ScriptCall(ctx, *script); + } + return FALSE; +} + +bool8 ScrCmd_gotoram(struct ScriptContext *ctx) +{ + ScriptJump(ctx, gRAMScriptPtr); + return FALSE; +} + +bool8 ScrCmd_killscript(struct ScriptContext *ctx) +{ + ClearRamScript(); + StopScript(ctx); + return TRUE; +} + +bool8 ScrCmd_setmysteryeventstatus(struct ScriptContext *ctx) +{ + SetMysteryEventScriptStatus(ScriptReadByte(ctx)); + return FALSE; +} + +bool8 ScrCmd_execram(struct ScriptContext *ctx) +{ + const u8 * script = sub_8069E48(); + if (script != NULL) + { + gRAMScriptPtr = ctx->scriptPtr; + ScriptJump(ctx, script); + } + return FALSE; +} + +bool8 ScrCmd_loadword(struct ScriptContext *ctx) +{ + u8 which = ScriptReadByte(ctx); + ctx->data[which] = ScriptReadWord(ctx); + return FALSE; +} + +bool8 ScrCmd_loadbytefromaddr(struct ScriptContext *ctx) +{ + u8 which = ScriptReadByte(ctx); + ctx->data[which] = *(const u8 *)ScriptReadWord(ctx); + return FALSE; +} + +bool8 ScrCmd_writebytetoaddr(struct ScriptContext *ctx) +{ + u8 value = ScriptReadByte(ctx); + *(u8 *)ScriptReadWord(ctx) = value; + return FALSE; +} + +bool8 ScrCmd_loadbyte(struct ScriptContext *ctx) +{ + u8 which = ScriptReadByte(ctx); + ctx->data[which] = ScriptReadByte(ctx); + return FALSE; +} + +bool8 ScrCmd_setptrbyte(struct ScriptContext *ctx) +{ + u8 which = ScriptReadByte(ctx); + *(u8 *)ScriptReadWord(ctx) = ctx->data[which]; + return FALSE; +} + +bool8 ScrCmd_copylocal(struct ScriptContext *ctx) +{ + u8 whichDst = ScriptReadByte(ctx); + u8 whichSrc = ScriptReadByte(ctx); + ctx->data[whichDst] = ctx->data[whichSrc]; + return FALSE; +} + +bool8 ScrCmd_copybyte(struct ScriptContext *ctx) +{ + u8 * dest = (u8 *)ScriptReadWord(ctx); + *dest = *(const u8 *)ScriptReadWord(ctx); + return FALSE; +} + +bool8 ScrCmd_setvar(struct ScriptContext *ctx) +{ + u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx)); + *varPtr = ScriptReadHalfword(ctx); + return FALSE; +} + +bool8 ScrCmd_copyvar(struct ScriptContext *ctx) +{ + u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx)); + u16 * srcPtr = GetVarPointer(ScriptReadHalfword(ctx)); + *destPtr = *srcPtr; + return FALSE; +} + +bool8 ScrCmd_setorcopyvar(struct ScriptContext *ctx) +{ + u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx)); + *destPtr = VarGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +u8 compare_012(u16 left, u16 right) +{ + if (left < right) + return 0; + else if (left == right) + return 1; + else + return 2; +} + +// comparelocaltolocal +bool8 ScrCmd_compare_local_to_local(struct ScriptContext *ctx) +{ + const u8 value1 = ctx->data[ScriptReadByte(ctx)]; + const u8 value2 = ctx->data[ScriptReadByte(ctx)]; + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +// comparelocaltoimm +bool8 ScrCmd_compare_local_to_value(struct ScriptContext *ctx) +{ + const u8 value1 = ctx->data[ScriptReadByte(ctx)]; + const u8 value2 = ScriptReadByte(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx) +{ + const u8 value1 = ctx->data[ScriptReadByte(ctx)]; + const u8 value2 = *(const u8 *)ScriptReadWord(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx) +{ + const u8 value1 = *(const u8 *)ScriptReadWord(ctx); + const u8 value2 = ctx->data[ScriptReadByte(ctx)]; + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx) +{ + const u8 value1 = *(const u8 *)ScriptReadWord(ctx); + const u8 value2 = ScriptReadByte(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_addr_to_addr(struct ScriptContext *ctx) +{ + const u8 value1 = *(const u8 *)ScriptReadWord(ctx); + const u8 value2 = *(const u8 *)ScriptReadWord(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_var_to_value(struct ScriptContext *ctx) +{ + const u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx)); + const u16 value2 = ScriptReadHalfword(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_var_to_var(struct ScriptContext *ctx) +{ + const u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx)); + const u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx)); + + ctx->comparisonResult = compare_012(*ptr1, *ptr2); + return FALSE; +} + +bool8 ScrCmd_addvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr += ScriptReadHalfword(ctx); + return FALSE; +} + +bool8 ScrCmd_subvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr -= VarGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_random(struct ScriptContext *ctx) +{ + u16 max = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = Random() % max; + return FALSE; +} + +bool8 ScrCmd_giveitem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = AddBagItem(itemId, (u8)quantity); + sub_809A824(itemId); + return FALSE; +} + +bool8 ScrCmd_takeitem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = RemoveBagItem(itemId, (u8)quantity); + return FALSE; +} + +bool8 ScrCmd_checkitemspace(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = CheckBagHasSpace(itemId, (u8)quantity); + return FALSE; +} + +bool8 ScrCmd_checkitem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = CheckBagHasItem(itemId, (u8)quantity); + return FALSE; +} + +bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = GetPocketByItemId(itemId); + return FALSE; +} + +bool8 ScrCmd_givepcitem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = AddPCItem(itemId, quantity); + return FALSE; +} + +bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = CheckPCHasItem(itemId, quantity); + return FALSE; +} + +bool8 ScrCmd_givedecoration(struct ScriptContext *ctx) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + +// gSpecialVar_Result = DecorationAdd(decorId); + return FALSE; +} + +bool8 ScrCmd_takedecoration(struct ScriptContext *ctx) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + +// gSpecialVar_Result = DecorationRemove(decorId); + return FALSE; +} + +bool8 ScrCmd_checkdecorspace(struct ScriptContext *ctx) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + +// gSpecialVar_Result = DecorationCheckSpace(decorId); + return FALSE; +} + +bool8 ScrCmd_checkdecor(struct ScriptContext *ctx) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + +// gSpecialVar_Result = CheckHasDecoration(decorId); + return FALSE; +} + +bool8 ScrCmd_setflag(struct ScriptContext *ctx) +{ + FlagSet(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_clearflag(struct ScriptContext *ctx) +{ + FlagClear(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_checkflag(struct ScriptContext *ctx) +{ + ctx->comparisonResult = FlagGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_incrementgamestat(struct ScriptContext *ctx) +{ + IncrementGameStat(ScriptReadByte(ctx)); + return FALSE; +} + +bool8 ScrCmd_comparestattoword(struct ScriptContext *ctx) +{ + u8 statIdx = ScriptReadByte(ctx); + u32 value = ScriptReadWord(ctx); + u32 statValue = GetGameStat(statIdx); + + if (statValue < value) + ctx ->comparisonResult = 0; + else if (statValue == value) + ctx->comparisonResult = 1; + else + ctx->comparisonResult = 2; + return FALSE; +} + +bool8 ScrCmd_setworldmapflag(struct ScriptContext *ctx) +{ + u16 value = ScriptReadHalfword(ctx); + sub_8115748(value); + sub_80F85BC(value); + return FALSE; +} + +bool8 ScrCmd_animateflash(struct ScriptContext *ctx) +{ + sub_807F028(ScriptReadByte(ctx)); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_setflashradius(struct ScriptContext *ctx) +{ + u16 flashLevel = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetFlashLevel(flashLevel); + return FALSE; +} + +static bool8 IsPaletteNotActive(void) +{ + if (!gPaletteFade.active) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_fadescreen(struct ScriptContext *ctx) +{ + fade_screen(ScriptReadByte(ctx), 0); + SetupNativeScript(ctx, IsPaletteNotActive); + return TRUE; +} + +bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx) +{ + u8 mode = ScriptReadByte(ctx); + u8 speed = ScriptReadByte(ctx); + + fade_screen(mode, speed); + SetupNativeScript(ctx, IsPaletteNotActive); + return TRUE; +} + +static bool8 RunPauseTimer(void) +{ + sPauseCounter--; + + if (sPauseCounter == 0) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_delay(struct ScriptContext *ctx) +{ + sPauseCounter = ScriptReadHalfword(ctx); + SetupNativeScript(ctx, RunPauseTimer); + return TRUE; +} + +bool8 ScrCmd_initclock(struct ScriptContext *ctx) +{ +// u8 hour = VarGet(ScriptReadHalfword(ctx)); +// u8 minute = VarGet(ScriptReadHalfword(ctx)); +// +// RtcInitLocalTimeOffset(hour, minute); + return FALSE; +} + +bool8 ScrCmd_dodailyevents(struct ScriptContext *ctx) +{ +// DoTimeBasedEvents(); + return FALSE; +} + +bool8 ScrCmd_gettime(struct ScriptContext *ctx) +{ +// RtcCalcLocalTime(); +// gSpecialVar_0x8000 = gLocalTime.hours; +// gSpecialVar_0x8001 = gLocalTime.minutes; +// gSpecialVar_0x8002 = gLocalTime.seconds; + gSpecialVar_0x8000 = 0; + gSpecialVar_0x8001 = 0; + gSpecialVar_0x8002 = 0; + return FALSE; +} + +bool8 ScrCmd_setweather(struct ScriptContext *ctx) +{ + u16 weather = VarGet(ScriptReadHalfword(ctx)); + + SetSav1Weather(weather); + return FALSE; +} + +bool8 ScrCmd_resetweather(struct ScriptContext *ctx) +{ + SetSav1WeatherFromCurrMapHeader(); + return FALSE; +} + +bool8 ScrCmd_doweather(struct ScriptContext *ctx) +{ + DoCurrentWeather(); + return FALSE; +} + +bool8 ScrCmd_setstepcallback(struct ScriptContext *ctx) +{ + ActivatePerStepCallback(ScriptReadByte(ctx)); + return FALSE; +} + +bool8 ScrCmd_setmaplayoutindex(struct ScriptContext *ctx) +{ + u16 value = VarGet(ScriptReadHalfword(ctx)); + + SetCurrentMapLayout(value); + return FALSE; +} + +bool8 ScrCmd_warp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + DoWarp(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +bool8 ScrCmd_warpsilent(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + DoDiveWarp(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +bool8 ScrCmd_warpdoor(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + DoDoorWarp(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +bool8 ScrCmd_warphole(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u16 x; + u16 y; + + PlayerGetDestCoords(&x, &y); + if (mapGroup == 0xFF && mapNum == 0xFF) + SetWarpDestinationToFixedHoleWarp(x - 7, y - 7); + else + Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7); + DoFallWarp(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +bool8 ScrCmd_warpteleport(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_807E59C(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +bool8 ScrCmd_warpteleport2(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_805DAE4(player_get_direction_lower_nybble()); + sub_807E500(); + ResetInitialPlayerAvatarState(); + return TRUE; +} + +bool8 ScrCmd_setwarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_setdynamicwarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + SetDynamicWarpWithCoords(0, mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_setdivewarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + SetFixedDiveWarp(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_setholewarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + SetFixedHoleWarp(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_setescapewarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + SetEscapeWarp(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_getplayerxy(struct ScriptContext *ctx) +{ + u16 *pX = GetVarPointer(ScriptReadHalfword(ctx)); + u16 *pY = GetVarPointer(ScriptReadHalfword(ctx)); + + *pX = gSaveBlock1Ptr->pos.x; + *pY = gSaveBlock1Ptr->pos.y; + return FALSE; +} + +bool8 ScrCmd_getpartysize(struct ScriptContext *ctx) +{ + gSpecialVar_Result = CalculatePlayerPartyCount(); + return FALSE; +} + +bool8 ScrCmd_playse(struct ScriptContext *ctx) +{ + PlaySE(ScriptReadHalfword(ctx)); + return FALSE; +} + +static bool8 WaitForSoundEffectFinish(void) +{ + if (!IsSEPlaying()) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_waitse(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, WaitForSoundEffectFinish); + return TRUE; +} + +bool8 ScrCmd_playfanfare(struct ScriptContext *ctx) +{ + PlayFanfare(ScriptReadHalfword(ctx)); + return FALSE; +} + +static bool8 WaitForFanfareFinish(void) +{ + return IsFanfareTaskInactive(); +} + +bool8 ScrCmd_waitfanfare(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, WaitForFanfareFinish); + return TRUE; +} + +bool8 ScrCmd_playbgm(struct ScriptContext *ctx) +{ + u16 songId = ScriptReadHalfword(ctx); + bool8 val = ScriptReadByte(ctx); + + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + if (val == TRUE) + Overworld_SetSavedMusic(songId); + PlayNewMapMusic(songId); + return FALSE; +} + +bool8 ScrCmd_savebgm(struct ScriptContext *ctx) +{ + Overworld_SetSavedMusic(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_fadedefaultbgm(struct ScriptContext *ctx) +{ + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + Overworld_ChangeMusicToDefault(); + return FALSE; +} + +bool8 ScrCmd_fadenewbgm(struct ScriptContext *ctx) +{ + u16 music = ScriptReadHalfword(ctx); + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + Overworld_ChangeMusicTo(music); + return FALSE; +} + +bool8 ScrCmd_fadeoutbgm(struct ScriptContext *ctx) +{ + u8 speed = ScriptReadByte(ctx); + + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + if (speed != 0) + FadeOutBGMTemporarily(4 * speed); + else + FadeOutBGMTemporarily(4); + SetupNativeScript(ctx, IsBGMPausedOrStopped); + return TRUE; +} + +bool8 ScrCmd_fadeinbgm(struct ScriptContext *ctx) +{ + u8 speed = ScriptReadByte(ctx); + + if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3) + return FALSE; + if (speed != 0) + FadeInBGM(4 * speed); + else + FadeInBGM(4); + return FALSE; +} + +bool8 ScrCmd_applymovement(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + const void *movementScript = (const void *)ScriptReadWord(ctx); + + ScriptMovement_StartObjectMovementScript(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, movementScript); + sMovingNpcId = localId; + return FALSE; +} + +bool8 ScrCmd_applymovement_at(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + const void *movementScript = (const void *)ScriptReadWord(ctx); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + ScriptMovement_StartObjectMovementScript(localId, mapNum, mapGroup, movementScript); + sMovingNpcId = localId; + return FALSE; +} + +static bool8 WaitForMovementFinish(void) +{ + return ScriptMovement_IsObjectMovementFinished(sMovingNpcId, sMovingNpcMapId, sMovingNpcMapBank); +} + +bool8 ScrCmd_waitmovement(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + + if (localId != 0) + sMovingNpcId = localId; + sMovingNpcMapBank = gSaveBlock1Ptr->location.mapGroup; + sMovingNpcMapId = gSaveBlock1Ptr->location.mapNum; + SetupNativeScript(ctx, WaitForMovementFinish); + return TRUE; +} + +bool8 ScrCmd_waitmovement_at(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapBank; + u8 mapId; + + if (localId != 0) + sMovingNpcId = localId; + mapBank = ScriptReadByte(ctx); + mapId = ScriptReadByte(ctx); + sMovingNpcMapBank = mapBank; + sMovingNpcMapId = mapId; + SetupNativeScript(ctx, WaitForMovementFinish); + return TRUE; +} + +bool8 ScrCmd_removeobject(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + + RemoveFieldObjectByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + return FALSE; +} + +bool8 ScrCmd_removeobject_at(struct ScriptContext *ctx) +{ + u16 objectId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + RemoveFieldObjectByLocalIdAndMap(objectId, mapNum, mapGroup); + return FALSE; +} + +bool8 ScrCmd_addobject(struct ScriptContext *ctx) +{ + u16 objectId = VarGet(ScriptReadHalfword(ctx)); + + show_sprite(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + return FALSE; +} + +bool8 ScrCmd_addobject_at(struct ScriptContext *ctx) +{ + u16 objectId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + show_sprite(objectId, mapNum, mapGroup); + return FALSE; +} + +bool8 ScrCmd_setobjectxy(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + sub_805F7C4(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y); + return FALSE; +} + +bool8 ScrCmd_setobjectxyperm(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetMapObjTemplateCoords(localId, x, y); + return FALSE; +} + +bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + + sub_805FE94(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + return FALSE; +} + +bool8 ScrCmd_showobject_at(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 0); + return FALSE; +} + +bool8 ScrCmd_hideobject_at(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 1); + return FALSE; +} + +bool8 ScrCmd_setobjectpriority(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 priority = ScriptReadByte(ctx); + + sub_805F3A8(localId, mapNum, mapGroup, priority + 83); + return FALSE; +} + +bool8 ScrCmd_resetobjectpriority(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + sub_805F400(localId, mapNum, mapGroup); + return FALSE; +} + +bool8 ScrCmd_faceplayer(struct ScriptContext *ctx) +{ + if (gMapObjects[gSelectedEventObject].active) + { + FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject], + player_get_direction_lower_nybble()); + } + return FALSE; +} + +bool8 ScrCmd_turnobject(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 direction = ScriptReadByte(ctx); + + FieldObjectTurnByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, direction); + return FALSE; +} + +bool8 ScrCmd_setobjectmovementtype(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 movementType = ScriptReadByte(ctx); + + Overworld_SetMapObjTemplateMovementType(localId, movementType); + return FALSE; +} + +bool8 ScrCmd_createvobject(struct ScriptContext *ctx) +{ + u8 graphicsId = ScriptReadByte(ctx); + u8 v2 = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u32 y = VarGet(ScriptReadHalfword(ctx)); + u8 elevation = ScriptReadByte(ctx); + u8 direction = ScriptReadByte(ctx); + + sprite_new(graphicsId, v2, x, y, elevation, direction); + return FALSE; +} + +bool8 ScrCmd_turnvobject(struct ScriptContext *ctx) +{ + u8 v1 = ScriptReadByte(ctx); + u8 direction = ScriptReadByte(ctx); + + sub_8069058(v1, direction); + return FALSE; +} + +bool8 ScrCmd_lockall(struct ScriptContext *ctx) +{ + if (is_c1_link_related_active()) + { + return FALSE; + } + else + { + ScriptFreezeMapObjects(); + SetupNativeScript(ctx, sub_8069590); + return TRUE; + } +} + +bool8 ScrCmd_lock(struct ScriptContext *ctx) +{ + if (is_c1_link_related_active()) + { + return FALSE; + } + else + { + if (gMapObjects[gSelectedEventObject].active) + { + LockSelectedMapObject(); + SetupNativeScript(ctx, sub_8069648); + } + else + { + ScriptFreezeMapObjects(); + SetupNativeScript(ctx, sub_8069590); + } + return TRUE; + } +} + +bool8 ScrCmd_releaseall(struct ScriptContext *ctx) +{ + u8 playerObjectId; + + HideFieldMessageBox(); + playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]); + sub_80974D8(); + UnfreezeMapObjects(); + return FALSE; +} + +bool8 ScrCmd_release(struct ScriptContext *ctx) +{ + u8 playerObjectId; + + HideFieldMessageBox(); + if (gMapObjects[gSelectedEventObject].active) + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]); + playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]); + sub_80974D8(); + UnfreezeMapObjects(); + return FALSE; +} + +bool8 ScrCmd_textcolor(struct ScriptContext *ctx) +{ + gUnknown_20370DC = gUnknown_20370DA; + gUnknown_20370DA = ScriptReadByte(ctx); + return FALSE; +} + +bool8 ScrCmd_message(struct ScriptContext *ctx) +{ + const u8 *msg = (const u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (const u8 *)ctx->data[0]; + ShowFieldMessage(msg); + return FALSE; +} + +bool8 ScrCmd_loadhelp(struct ScriptContext *ctx) +{ + const u8 *msg = (const u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (const u8 *)ctx->data[0]; + sub_80F7974(msg); + CopyWindowToVram(GetStartMenuWindowId(), 1); + return FALSE; +} + +bool8 ScrCmd_unloadhelp(struct ScriptContext *ctx) +{ + sub_80F7998(); + return FALSE; +} + +bool8 ScrCmd_messageautoscroll(struct ScriptContext *ctx) +{ + const u8 *msg = (const u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (const u8 *)ctx->data[0]; + ShowFieldAutoScrollMessage(msg); + return FALSE; +} + +bool8 ScrCmd_waitmessage(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, IsFieldMessageBoxHidden); + return TRUE; +} + +bool8 ScrCmd_closemessage(struct ScriptContext *ctx) +{ + HideFieldMessageBox(); + return FALSE; +} + +static bool8 WaitForAorBPress(void) +{ + if (gMain.newKeys & A_BUTTON) + return TRUE; + if (gMain.newKeys & B_BUTTON) + return TRUE; + + if (sub_806B93C(gUnknown_3005070) == TRUE) + { + u8 r4 = sub_806B96C(gUnknown_3005070); + sub_8069998(r4); + if (r4) + { + if (gUnknown_203ADFA != 2) + { + sub_80699F8(); + if (r4 < 9 || r4 > 10) + sub_8069964(); + else + { + sub_80699A4(); + sub_8069970(); + } + return TRUE; + } + } + } + if (sub_8112CAC() == 1 || gUnknown_203ADFA == 2) + { + if (gUnknown_20370AC == 120) + return TRUE; + else + gUnknown_20370AC++; + } + + return FALSE; +} + +static bool8 sub_806B93C(struct ScriptContext * ctx) +{ + const u8 * script = ctx->scriptPtr; + u8 nextCmd = *script; + if (nextCmd == 3) // return + { + script = ctx->stack[ctx->stackDepth - 1]; + nextCmd = *script; + } + if (nextCmd < 0x6B || nextCmd > 0x6C) // releaseall or release + return FALSE; + else + return TRUE; +} + +static u8 sub_806B96C(struct ScriptContext * ctx) +{ + if (gMain.heldKeys & DPAD_UP && gSpecialVar_Facing != 2) + return 1; + + if (gMain.heldKeys & DPAD_DOWN && gSpecialVar_Facing != 1) + return 2; + + if (gMain.heldKeys & DPAD_LEFT && gSpecialVar_Facing != 3) + return 3; + + if (gMain.heldKeys & DPAD_RIGHT && gSpecialVar_Facing != 4) + return 4; + + if (gMain.newKeys & L_BUTTON) + return 5; + + if (gMain.heldKeys & R_BUTTON) + return 6; + + if (gMain.heldKeys & START_BUTTON) + return 7; + + if (gMain.heldKeys & SELECT_BUTTON) + return 8; + + if (gMain.newKeys & A_BUTTON) + return 9; + + if (gMain.newKeys & B_BUTTON) + return 10; + + return 0; +} + +bool8 ScrCmd_waitbuttonpress(struct ScriptContext *ctx) +{ + gUnknown_3005070 = ctx; + + if (sub_8112CAC() == 1 || gUnknown_203ADFA == 2) + gUnknown_20370AC = 0; + SetupNativeScript(ctx, WaitForAorBPress); + return TRUE; +} + +bool8 ScrCmd_yesnobox(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + + if (ScriptMenu_YesNo(left, top) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 ScrCmd_multichoice(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + if (ScriptMenu_Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 ScrCmd_multichoicedefault(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 defaultChoice = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + if (ScriptMenu_MultichoiceWithDefault(left, top, multichoiceId, ignoreBPress, defaultChoice) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 ScrCmd_drawbox(struct ScriptContext *ctx) +{ + /*u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 right = ScriptReadByte(ctx); + u8 bottom = ScriptReadByte(ctx); + + MenuDrawTextWindow(left, top, right, bottom);*/ + return FALSE; +} + +bool8 ScrCmd_multichoicegrid(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 numColumns = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + if (ScriptMenu_MultichoiceGrid(left, top, multichoiceId, ignoreBPress, numColumns) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 ScrCmd_erasebox(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 right = ScriptReadByte(ctx); + u8 bottom = ScriptReadByte(ctx); + + // MenuZeroFillWindowRect(left, top, right, bottom); + return FALSE; +} + +bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx) +{ +// u8 left = ScriptReadByte(ctx); +// u8 top = ScriptReadByte(ctx); +// u8 multichoiceId = ScriptReadByte(ctx); +// u8 ignoreBPress = ScriptReadByte(ctx); + + /*if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + }*/ + return FALSE; +} + +bool8 ScrCmd_showmonpic(struct ScriptContext *ctx) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + ScriptMenu_ShowPokemonPic(species, x, y); + PlayCry7(species, 0); + return FALSE; +} + +bool8 ScrCmd_hidemonpic(struct ScriptContext *ctx) +{ + bool8 (*func)(void) = ScriptMenu_GetPicboxWaitFunc(); + + if (func == NULL) + return FALSE; + SetupNativeScript(ctx, func); + return TRUE; +} + +bool8 ScrCmd_showcontestwinner(struct ScriptContext *ctx) +{ + u8 v1 = ScriptReadByte(ctx); + + /* + if (v1) + sub_812FDA8(v1); + ShowContestWinner(); + ScriptContext1_Stop(); + return TRUE; + */ + + return FALSE; +} + +bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) +{ + u8 *ptr = (u8 *)ScriptReadWord(ctx); + if (ptr == NULL) + ptr = (u8 *)ctx->data[0]; + + sub_80F6E9C(); + DrawDialogueFrame(0, 1); + AddTextPrinterParameterized(0, 6, ptr, 0, 1, 0, NULL); + return FALSE; +} + +bool8 ScrCmd_getbraillestringwidth(struct ScriptContext *ctx) +{ + u8 *ptr = (u8 *)ScriptReadWord(ctx); + if (ptr == NULL) + ptr = (u8 *)ctx->data[0]; + + gSpecialVar_0x8004 = GetStringWidth(6, ptr, -1); + return FALSE; +} + +bool8 ScrCmd_vmessage(struct ScriptContext *ctx) +{ + u32 v1 = ScriptReadWord(ctx); + + ShowFieldMessage((u8 *)(v1 - gVScriptOffset)); + return FALSE; +} + +u8 * const sScriptStringVars[] = +{ + gStringVar1, + gStringVar2, + gStringVar3, +}; + +bool8 ScrCmd_bufferspeciesname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 species = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gSpeciesNames[species]); + return FALSE; +} + +bool8 ScrCmd_bufferleadmonspeciesname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + + u8 *dest = sScriptStringVars[stringVarIndex]; + u8 partyIndex = GetLeadMonIndex(); + u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL); + StringCopy(dest, gSpeciesNames[species]); + return FALSE; +} + +bool8 ScrCmd_bufferpartymonnick(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]); + StringGetEnd10(sScriptStringVars[stringVarIndex]); + return FALSE; +} + +bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + + CopyItemName(itemId, sScriptStringVars[stringVarIndex]); + return FALSE; +} + +const u8 gUnknown_83A72A0[] = _("S"); +const u8 gUnknown_83A72A2[] = _("IES"); + +bool8 ScrCmd_bufferitemnameplural(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + CopyItemName(itemId, sScriptStringVars[stringVarIndex]); + if (itemId == ITEM_POKE_BALL && quantity >= 2) + StringAppend(sScriptStringVars[stringVarIndex], gUnknown_83A72A0); + else if (itemId >= ITEM_CHERI_BERRY && itemId < ITEM_ENIGMA_BERRY && quantity >= 2) + { + u16 strlength = StringLength(sScriptStringVars[stringVarIndex]); + if (strlength != 0) + { + u8 * endptr = sScriptStringVars[stringVarIndex] + strlength; + endptr[-1] = EOS; + StringAppend(sScriptStringVars[stringVarIndex], gUnknown_83A72A2); + } + } + + return FALSE; +} + +bool8 ScrCmd_bufferdecorationname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 decorId = VarGet(ScriptReadHalfword(ctx)); + +// StringCopy(sScriptStringVars[stringVarIndex], gDecorations[decorId].name); + return FALSE; +} + +bool8 ScrCmd_buffermovename(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 moveId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gMoveNames[moveId]); + return FALSE; +} + +bool8 ScrCmd_buffernumberstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 v1 = VarGet(ScriptReadHalfword(ctx)); + u8 v2 = CountDigits(v1); + + ConvertIntToDecimalStringN(sScriptStringVars[stringVarIndex], v1, 0, v2); + return FALSE; +} + +bool8 ScrCmd_bufferstdstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 index = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gStdStringPtrs[index]); + return FALSE; +} + +/* +bool8 ScrCmd_buffercontesttype(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 index = VarGet(ScriptReadHalfword(ctx)); + + sub_818E868(sScriptStringVars[stringVarIndex], index); + return FALSE; +} +*/ + +bool8 ScrCmd_bufferstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + const u8 *text = (u8 *)ScriptReadWord(ctx); + + StringCopy(sScriptStringVars[stringVarIndex], text); + return FALSE; +} + +bool8 ScrCmd_vloadword(struct ScriptContext *ctx) +{ + const u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gVScriptOffset); + + StringExpandPlaceholders(gStringVar4, ptr); + return FALSE; +} + +bool8 ScrCmd_vbufferstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u32 addr = ScriptReadWord(ctx); + + const u8 *src = (u8 *)(addr - gVScriptOffset); + u8 *dest = sScriptStringVars[stringVarIndex]; + StringCopy(dest, src); + return FALSE; +} + +bool8 ScrCmd_bufferboxname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 boxId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], GetBoxNamePtr(boxId)); + return FALSE; +} + +bool8 ScrCmd_givemon(struct ScriptContext *ctx) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + u8 level = ScriptReadByte(ctx); + u16 item = VarGet(ScriptReadHalfword(ctx)); + u32 unkParam1 = ScriptReadWord(ctx); + u32 unkParam2 = ScriptReadWord(ctx); + u8 unkParam3 = ScriptReadByte(ctx); + + gSpecialVar_Result = ScriptGiveMon(species, level, item, unkParam1, unkParam2, unkParam3); + return FALSE; +} + +bool8 ScrCmd_giveegg(struct ScriptContext *ctx) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = ScriptGiveEgg(species); + return FALSE; +} + +bool8 ScrCmd_setmonmove(struct ScriptContext *ctx) +{ + u8 partyIndex = ScriptReadByte(ctx); + u8 slot = ScriptReadByte(ctx); + u16 move = ScriptReadHalfword(ctx); + + ScriptSetMonMoveSlot(partyIndex, move, slot); + return FALSE; +} + +bool8 ScrCmd_checkpartymove(struct ScriptContext *ctx) +{ + u8 i; + u16 moveId = ScriptReadHalfword(ctx); + + gSpecialVar_Result = PARTY_SIZE; + for (i = 0; i < PARTY_SIZE; i++) + { + u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL); + if (!species) + break; + if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], moveId) == TRUE) + { + gSpecialVar_Result = i; + gSpecialVar_0x8004 = species; + break; + } + } + return FALSE; +} + +bool8 ScrCmd_givemoney(struct ScriptContext *ctx) +{ + u32 amount = ScriptReadWord(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + AddMoney(&gSaveBlock1Ptr->money, amount); + return FALSE; +} + +bool8 ScrCmd_takemoney(struct ScriptContext *ctx) +{ + u32 amount = ScriptReadWord(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + RemoveMoney(&gSaveBlock1Ptr->money, amount); + return FALSE; +} + +bool8 ScrCmd_checkmoney(struct ScriptContext *ctx) +{ + u32 amount = ScriptReadWord(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + gSpecialVar_Result = IsEnoughMoney(&gSaveBlock1Ptr->money, amount); + return FALSE; +} + +bool8 ScrCmd_showmoneybox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore && sub_81119D4(sub_809D6D4) != TRUE) + DrawMoneyBox(GetMoney(&gSaveBlock1Ptr->money), x, y); + return FALSE; +} + +bool8 ScrCmd_hidemoneybox(struct ScriptContext *ctx) +{ + /*u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx);*/ + + HideMoneyBox(); + return FALSE; +} + +bool8 ScrCmd_updatemoneybox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + ChangeAmountInMoneyBox(GetMoney(&gSaveBlock1Ptr->money)); + return FALSE; +} + +bool8 ScrCmd_showcoinsbox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + if (sub_81119D4(sub_809D6D4) != TRUE) + ShowCoinsWindow(GetCoins(), x, y); + return FALSE; +} + +bool8 ScrCmd_hidecoinsbox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + HideCoinsWindow(); + return FALSE; +} + +bool8 ScrCmd_updatecoinsbox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + PrintCoinsString(GetCoins()); + return FALSE; +} + +bool8 ScrCmd_trainerbattle(struct ScriptContext *ctx) +{ + ctx->scriptPtr = BattleSetup_ConfigureTrainerBattle(ctx->scriptPtr); + return FALSE; +} + +bool8 ScrCmd_dotrainerbattle(struct ScriptContext *ctx) +{ + BattleSetup_StartTrainerBattle(); + return TRUE; +} + +bool8 ScrCmd_gotopostbattlescript(struct ScriptContext *ctx) +{ + ctx->scriptPtr = BattleSetup_GetScriptAddrAfterBattle(); + return FALSE; +} + +bool8 ScrCmd_gotobeatenscript(struct ScriptContext *ctx) +{ + ctx->scriptPtr = BattleSetup_GetTrainerPostBattleScript(); + return FALSE; +} + +bool8 ScrCmd_checktrainerflag(struct ScriptContext *ctx) +{ + u16 index = VarGet(ScriptReadHalfword(ctx)); + + ctx->comparisonResult = HasTrainerAlreadyBeenFought(index); + return FALSE; +} + +bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx) +{ + u16 index = VarGet(ScriptReadHalfword(ctx)); + + SetTrainerFlag(index); + return FALSE; +} + +bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx) +{ + u16 index = VarGet(ScriptReadHalfword(ctx)); + + ClearTrainerFlag(index); + return FALSE; +} + +bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx) +{ + u16 species = ScriptReadHalfword(ctx); + u8 level = ScriptReadByte(ctx); + u16 item = ScriptReadHalfword(ctx); + + CreateScriptedWildMon(species, level, item); + return FALSE; +} + +bool8 ScrCmd_dowildbattle(struct ScriptContext *ctx) +{ + BattleSetup_StartScriptedWildBattle(); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_pokemart(struct ScriptContext *ctx) +{ + const void *ptr = (void *)ScriptReadWord(ctx); + + CreatePokemartMenu(ptr); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_pokemartdecoration(struct ScriptContext *ctx) +{ + const void *ptr = (void *)ScriptReadWord(ctx); + + CreateDecorationShop1Menu(ptr); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_pokemartdecoration2(struct ScriptContext *ctx) +{ + const void *ptr = (void *)ScriptReadWord(ctx); + + CreateDecorationShop2Menu(ptr); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx) +{ + u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx)); + + PlaySlotMachine(slotMachineIndex, c2_exit_to_overworld_1_continue_scripts_restart_music); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_setberrytree(struct ScriptContext *ctx) +{ +// u8 treeId = ScriptReadByte(ctx); +// u8 berry = ScriptReadByte(ctx); +// u8 growthStage = ScriptReadByte(ctx); +// +// if (berry == 0) +// PlantBerryTree(treeId, 0, growthStage, FALSE); +// else +// PlantBerryTree(treeId, berry, growthStage, FALSE); + return FALSE; +} + +bool8 ScrCmd_getpricereduction(struct ScriptContext *ctx) +{ +// u16 value = VarGet(ScriptReadHalfword(ctx)); +// +// gSpecialVar_Result = GetPriceReduction(value); + return FALSE; +} + +bool8 ScrCmd_choosecontestmon(struct ScriptContext *ctx) +{ +// sub_81B9404(); + ScriptContext1_Stop(); + return TRUE; +} + + +bool8 ScrCmd_startcontest(struct ScriptContext *ctx) +{ +// sub_80F840C(); +// ScriptContext1_Stop(); +// return TRUE; + return FALSE; +} + +bool8 ScrCmd_showcontestresults(struct ScriptContext *ctx) +{ +// sub_80F8484(); +// ScriptContext1_Stop(); +// return TRUE; + return FALSE; +} + +bool8 ScrCmd_contestlinktransfer(struct ScriptContext *ctx) +{ +// sub_80F84C4(gSpecialVar_ContestCategory); +// ScriptContext1_Stop(); +// return TRUE; + return FALSE; +} + +bool8 ScrCmd_dofieldeffect(struct ScriptContext *ctx) +{ + u16 effectId = VarGet(ScriptReadHalfword(ctx)); + + sFieldEffectScriptId = effectId; + FieldEffectStart(sFieldEffectScriptId); + return FALSE; +} + +bool8 ScrCmd_setfieldeffectarg(struct ScriptContext *ctx) +{ + u8 argNum = ScriptReadByte(ctx); + + gFieldEffectArguments[argNum] = (s16)VarGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +static bool8 WaitForFieldEffectFinish(void) +{ + if (!FieldEffectActiveListContains(sFieldEffectScriptId)) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_waitfieldeffect(struct ScriptContext *ctx) +{ + sFieldEffectScriptId = VarGet(ScriptReadHalfword(ctx)); + SetupNativeScript(ctx, WaitForFieldEffectFinish); + return TRUE; +} + +bool8 ScrCmd_setrespawn(struct ScriptContext *ctx) +{ + u16 healLocationId = VarGet(ScriptReadHalfword(ctx)); + + SetLastHealLocationWarp(healLocationId); + return FALSE; +} + +bool8 ScrCmd_checkplayergender(struct ScriptContext *ctx) +{ + gSpecialVar_Result = gSaveBlock2Ptr->playerGender; + return FALSE; +} + +bool8 ScrCmd_playmoncry(struct ScriptContext *ctx) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + u16 mode = VarGet(ScriptReadHalfword(ctx)); + + PlayCry7(species, mode); + return FALSE; +} + +bool8 ScrCmd_waitmoncry(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, IsCryFinished); + return TRUE; +} + +bool8 ScrCmd_setmetatile(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + u16 tileId = VarGet(ScriptReadHalfword(ctx)); + u16 v8 = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + if (!v8) + MapGridSetMetatileIdAt(x, y, tileId); + else + MapGridSetMetatileIdAt(x, y, tileId | 0xC00); + return FALSE; +} + +bool8 ScrCmd_opendoor(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + PlaySE(GetDoorSoundEffect(x, y)); + FieldAnimateDoorOpen(x, y); + return FALSE; +} + +bool8 ScrCmd_closedoor(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + FieldAnimateDoorClose(x, y); + return FALSE; +} + +static bool8 IsDoorAnimationStopped(void) +{ + if (!FieldIsDoorAnimationRunning()) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_waitdooranim(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, IsDoorAnimationStopped); + return TRUE; +} + +bool8 ScrCmd_setdooropen(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + FieldSetDoorOpened(x, y); + return FALSE; +} + +bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + FieldSetDoorClosed(x, y); + return FALSE; +} + +bool8 ScrCmd_addelevmenuitem(struct ScriptContext *ctx) +{ +// u8 v3 = ScriptReadByte(ctx); +// u16 v5 = VarGet(ScriptReadHalfword(ctx)); +// u16 v7 = VarGet(ScriptReadHalfword(ctx)); +// u16 v9 = VarGet(ScriptReadHalfword(ctx)); + + //ScriptAddElevatorMenuItem(v3, v5, v7, v9); + return FALSE; +} + +bool8 ScrCmd_showelevmenu(struct ScriptContext *ctx) +{ + /*ScriptShowElevatorMenu(); + ScriptContext1_Stop(); + return TRUE;*/ + return FALSE; +} + +bool8 ScrCmd_checkcoins(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr = GetCoins(); + return FALSE; +} + +bool8 ScrCmd_givecoins(struct ScriptContext *ctx) +{ + u16 coins = VarGet(ScriptReadHalfword(ctx)); + + if (GiveCoins(coins) == TRUE) + gSpecialVar_Result = 0; + else + gSpecialVar_Result = 1; + return FALSE; +} + +bool8 ScrCmd_takecoins(struct ScriptContext *ctx) +{ + u16 coins = VarGet(ScriptReadHalfword(ctx)); + + if (TakeCoins(coins) == TRUE) + gSpecialVar_Result = 0; + else + gSpecialVar_Result = 1; + return FALSE; +} + +bool8 ScrCmd_signmsg(struct ScriptContext *ctx) +{ + sub_8069A20(); + return FALSE; +} + +bool8 ScrCmd_normalmsg(struct ScriptContext *ctx) +{ + sub_8069A2C(); + return FALSE; +} + +// This command will force the Pokémon to be obedient, you don't get to make it disobedient. +bool8 ScrCmd_setmonobedient(struct ScriptContext *ctx) +{ + bool8 obedient = TRUE; + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + SetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, &obedient); + return FALSE; +} + +bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx) +{ + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, NULL); + return FALSE; +} + +bool8 ScrCmd_setmonmetlocation(struct ScriptContext *ctx) +{ + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + u8 location = ScriptReadByte(ctx); + + if (partyIndex < PARTY_SIZE) + SetMonData(&gPlayerParty[partyIndex], MON_DATA_MET_LOCATION, &location); + return FALSE; +} diff --git a/src/script.c b/src/script.c index 59ef4e579..608dc6ba0 100644 --- a/src/script.c +++ b/src/script.c @@ -9,7 +9,7 @@ extern u8 gUnknown_203ADFA; extern void sub_80CBDE8(void); // field_specials extern u16 CalcCRC16WithTable(u8 *data, int length); // util -extern bool32 sub_8143FC8(void); // mevent +extern bool32 ValidateReceivedWonderCard(void); // mevent enum { @@ -19,7 +19,7 @@ enum }; EWRAM_DATA u8 gUnknown_20370A0 = 0; -EWRAM_DATA u8 *gUnknown_20370A4 = NULL; +EWRAM_DATA const u8 *gRAMScriptPtr = NULL; // ewram bss /*IWRAM_DATA*/ static u8 sScriptContext1Status; @@ -485,7 +485,7 @@ bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objec u8 *GetRamScript(u8 objectId, u8 *script) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; - gUnknown_20370A4 = NULL; + gRAMScriptPtr = NULL; if (scriptData->magic != RAM_SCRIPT_MAGIC) return script; if (scriptData->mapGroup != gSaveBlock1Ptr->location.mapGroup) @@ -501,7 +501,7 @@ u8 *GetRamScript(u8 objectId, u8 *script) } else { - gUnknown_20370A4 = script; + gRAMScriptPtr = script; return scriptData->script; } } @@ -525,7 +525,7 @@ bool32 sub_8069DFC(void) u8 *sub_8069E48(void) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; - if (!sub_8143FC8()) + if (!ValidateReceivedWonderCard()) return NULL; if (scriptData->magic != RAM_SCRIPT_MAGIC) return NULL; diff --git a/src/seagallop.c b/src/seagallop.c new file mode 100644 index 000000000..ae880b2a3 --- /dev/null +++ b/src/seagallop.c @@ -0,0 +1,499 @@ +#include "global.h" +#include "gpu_regs.h" +#include "bg.h" +#include "palette.h" +#include "malloc.h" +#include "scanline_effect.h" +#include "trainer_pokemon_sprites.h" +#include "window.h" +#include "text_window.h" +#include "sound.h" +#include "task.h" +#include "help_system.h" +#include "overworld.h" +#include "event_data.h" +#include "field_fadetransition.h" +#include "field_weather.h" +#include "constants/songs.h" +#include "constants/maps.h" +#include "seagallop.h" + +#define TILESTAG_FERRY 3000 +#define TILESTAG_WAKE 4000 + +#define PALTAG_FERRY_WAKE 3000 + +static EWRAM_DATA void * sBg3TilemapBuffer = NULL; + +static void CB2_SetUpSeaGallopScene(void); +static void VBlankCB_SeaGallop(void); +static void MainCB2_SeaGallop(void); +static void Task_SeaGallop_0(u8 taskId); +static void Task_SeaGallop_1(u8 taskId); +static void Task_SeaGallop_2(u8 taskId); +static void Task_SeaGallop_3(void); +static void ResetGPU(void); +static void ResetAllAssets(void); +static void SetDispcnt(void); +static void ResetBGPos(void); +static void LoadFerrySpriteResources(void); +static void FreeFerrySpriteResources(void); +static void CreateFerrySprite(void); +static void SpriteCB_Ferry(struct Sprite * sprite); +static void CreateWakeSprite(s16 x); +static void SpriteCB_Wake(struct Sprite * sprite); +static bool8 GetDirectionOfTravel(void); + +static const u16 sWaterTiles[] = INCBIN_U16("data/seagallop/water.4bpp"); +static const u16 sWaterPal[] = INCBIN_U16("data/seagallop/water.gbapal"); +static const u16 sWaterTilemap_WB[] = INCBIN_U16("data/seagallop/wb_tilemap.bin"); +static const u16 sWaterTilemap_EB[] = INCBIN_U16("data/seagallop/eb_tilemap.bin"); +static const u16 sFerrySpriteTiles[] = INCBIN_U16("data/seagallop/ferry_sprite.4bpp"); +static const u16 sFerryAndWakePal[] = INCBIN_U16("data/seagallop/ferry_and_wake.gbapal"); +static const u16 sWakeSpriteTiles[] = INCBIN_U16("data/seagallop/wake.4bpp"); + +static const struct BgTemplate sBGTemplates[] = { + { + .bg = 3, + .charBaseIndex = 3, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0x000 + } +}; + +static const s8 sSeaGallopSpawnTable[][4] = { + // Map X Y + [SEAGALLOP_VERMILION_CITY] = {MAP(VERMILION_CITY), 0x17, 0x20}, + [SEAGALLOP_ONE_ISLAND] = {MAP(ONE_ISLAND_HARBOR), 0x08, 0x05}, + [SEAGALLOP_TWO_ISLAND] = {MAP(TWO_ISLAND_HARBOR), 0x08, 0x05}, + [SEAGALLOP_THREE_ISLAND] = {MAP(THREE_ISLAND_HARBOR), 0x08, 0x05}, + [SEAGALLOP_FOUR_ISLAND] = {MAP(FOUR_ISLAND_HARBOR), 0x08, 0x05}, + [SEAGALLOP_FIVE_ISLAND] = {MAP(FIVE_ISLAND_HARBOR), 0x08, 0x05}, + [SEAGALLOP_SIX_ISLAND] = {MAP(SIX_ISLAND_HARBOR), 0x08, 0x05}, + [SEAGALLOP_SEVEN_ISLAND] = {MAP(SEVEN_ISLAND_HARBOR), 0x08, 0x05}, + [SEAGALLOP_CINNABAR_ISLAND] = {MAP(CINNABAR_ISLAND), 0x15, 0x07}, + [SEAGALLOP_NAVEL_ROCK] = {MAP(NAVEL_ROCK_HARBOR), 0x08, 0x05}, + [SEAGALLOP_BIRTH_ISLAND] = {MAP(BIRTH_ISLAND_HARBOR), 0x08, 0x05} +}; + +// Bitpacked array. In the commented section, right-most bit is the +// flag for traveling from (row port) to Vermilion City, and so on. +// Flags follow these enums: + +enum TravelDirections +{ + DIRN_WESTBOUND = 0, + DIRN_EASTBOUND = 1 +}; + +static const u16 sTravelDirectionMatrix[] = { + [SEAGALLOP_VERMILION_CITY] = 0x6fe, // 11011111110 + [SEAGALLOP_ONE_ISLAND] = 0x6fc, // 11011111100 + [SEAGALLOP_TWO_ISLAND] = 0x6f8, // 11011111000 + [SEAGALLOP_THREE_ISLAND] = 0x6f0, // 11011110000 + [SEAGALLOP_FOUR_ISLAND] = 0x6e0, // 11011100000 + [SEAGALLOP_FIVE_ISLAND] = 0x4c0, // 10011000000 + [SEAGALLOP_SIX_ISLAND] = 0x400, // 10000000000 + [SEAGALLOP_SEVEN_ISLAND] = 0x440, // 10001000000 + [SEAGALLOP_CINNABAR_ISLAND] = 0x7ff, // 11111111111 + [SEAGALLOP_NAVEL_ROCK] = 0x6e0, // 11011100000 + [SEAGALLOP_BIRTH_ISLAND] = 0x000 // 00000000000 +}; + +static const union AnimCmd sSpriteAnims_Ferry_WB[] = { + ANIMCMD_FRAME(0, 10), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnims_Ferry_EB[] = { + ANIMCMD_FRAME(0, 10, .hFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_Ferry[] = { + sSpriteAnims_Ferry_WB, + sSpriteAnims_Ferry_EB +}; + +static const struct OamData sOamData_Ferry = { + .size = 3 +}; + +static const struct SpriteTemplate sFerrySpriteTemplate = { + TILESTAG_FERRY, + PALTAG_FERRY_WAKE, + &sOamData_Ferry, + sSpriteAnimTable_Ferry, + NULL, + gDummySpriteAffineAnimTable, + SpriteCB_Ferry +}; + +static const struct SpriteSheet sFerryAndWakeSpriteSheets[] = { + {(const void *)sWakeSpriteTiles, sizeof(sWakeSpriteTiles), TILESTAG_WAKE}, + {(const void *)sFerrySpriteTiles, sizeof(sFerrySpriteTiles), TILESTAG_FERRY}, + {} +}; + +static const struct SpritePalette sFerryAndWakeSpritePalettes[] = { + {sFerryAndWakePal, PALTAG_FERRY_WAKE}, + {} +}; + +static const union AnimCmd sSpriteAnims_Wake_WB[] = { + ANIMCMD_FRAME(0x00, 0x14), + ANIMCMD_FRAME(0x10, 0x14), + ANIMCMD_FRAME(0x20, 0x0f), + ANIMCMD_END, +}; + +static const union AnimCmd sSpriteAnims_Wake_EB[] = { + ANIMCMD_FRAME(0x00, 0x14, .hFlip = TRUE), + ANIMCMD_FRAME(0x10, 0x14, .hFlip = TRUE), + ANIMCMD_FRAME(0x20, 0x0f, .hFlip = TRUE), + ANIMCMD_END, +}; + +static const union AnimCmd *const sSpriteAnimTable_Wake[] = { + sSpriteAnims_Wake_WB, + sSpriteAnims_Wake_EB +}; + +static const struct OamData sOamData_Wake = { + .size = 2 +}; + +static const struct SpriteTemplate sWakeSpriteTemplate = { + TILESTAG_WAKE, + PALTAG_FERRY_WAKE, + &sOamData_Wake, + sSpriteAnimTable_Wake, + NULL, + gDummySpriteAffineAnimTable, + SpriteCB_Wake +}; + +void ScrSpecial_SeaGallopFerry(void) +{ + SetVBlankCallback(NULL); + sub_812B478(); + SetMainCallback2(CB2_SetUpSeaGallopScene); +} + +static void CB2_SetUpSeaGallopScene(void) +{ + void ** ptr; + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); // redundant since the setup routine already did this + ResetGPU(); + gMain.state++; + break; + case 1: + ResetAllAssets(); + gMain.state++; + break; + case 2: + ptr = &sBg3TilemapBuffer; + *ptr = AllocZeroed(0x800); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBGTemplates, NELEMS(sBGTemplates)); + SetBgTilemapBuffer(3, *ptr); + ResetBGPos(); + gMain.state++; + break; + case 3: + LoadBgTiles(3, sWaterTiles, sizeof(sWaterTiles), 0); + if (GetDirectionOfTravel() == DIRN_EASTBOUND) + { + CopyToBgTilemapBufferRect(3, sWaterTilemap_EB, 0, 0, 32, 32); + } + else + { + CopyToBgTilemapBufferRect(3, sWaterTilemap_WB, 0, 0, 32, 32); + } + LoadPalette(sWaterPal, 0x40, 0x20); + LoadPalette(stdpal_get(2), 0xF0, 0x20); + gMain.state++; + break; + case 4: + if (IsDma3ManagerBusyWithBgCopy() != DIRN_EASTBOUND) + { + ShowBg(0); + ShowBg(3); + CopyBgTilemapBufferToVram(3); + gMain.state++; + } + break; + case 5: + LoadFerrySpriteResources(); + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + gMain.state++; + break; + case 6: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + gMain.state++; + break; + case 7: + SetDispcnt(); + SetVBlankCallback(VBlankCB_SeaGallop); + PlaySE(SE_NAMINORI); + CreateFerrySprite(); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WININ, 0x3F); + SetGpuReg(REG_OFFSET_WINOUT, 0x00); + SetGpuReg(REG_OFFSET_WIN0H, 0x00F0); + SetGpuReg(REG_OFFSET_WIN0V, 0x1888); + CreateTask(Task_SeaGallop_0, 8); + SetMainCallback2(MainCB2_SeaGallop); + gMain.state = 0; + break; + } +} + +static void VBlankCB_SeaGallop(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void MainCB2_SeaGallop(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void Task_SeaGallop_0(u8 taskId) +{ + gTasks[taskId].func = Task_SeaGallop_1; +} + +static void ScrollBG(void) +{ + if (GetDirectionOfTravel() == DIRN_EASTBOUND) + { + ChangeBgX(3, 0x600, 1); + } + else + { + ChangeBgX(3, 0x600, 2); + } +} + +static void Task_SeaGallop_1(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + + ScrollBG(); + if (++task->data[1] == 140) + { + Overworld_FadeOutMapMusic(); + sub_807DC18(); + task->func = Task_SeaGallop_2; + } +} + +static void Task_SeaGallop_2(u8 taskId) +{ + ScrollBG(); + if (sub_8055FC4() && !gPaletteFade.active) + { + Task_SeaGallop_3(); + sub_812B484(); + DestroyTask(taskId); + } +} + +static void Task_SeaGallop_3(void) +{ + const s8 * warpInfo; + + if (gSpecialVar_0x8006 >= NELEMS(sSeaGallopSpawnTable)) + gSpecialVar_0x8006 = 0; + + warpInfo = sSeaGallopSpawnTable[gSpecialVar_0x8006]; + Overworld_SetWarpDestination(warpInfo[0], warpInfo[1], -1, warpInfo[2], warpInfo[3]); + PlayRainStoppingSoundEffect(); + PlaySE(SE_KAIDAN); + gFieldCallback = sub_807DF64; + warp_in(); + SetMainCallback2(sub_805671C); + ResetInitialPlayerAvatarState(); + FreeFerrySpriteResources(); + Free(sBg3TilemapBuffer); + FreeAllWindowBuffers(); +} + +static void ResetGPU(void) +{ + void * dest = (void *) VRAM; + DmaClearLarge16(3, dest, VRAM_SIZE, 0x1000); + + DmaClear32(3, (void *)OAM, OAM_SIZE); + DmaClear16(3, (void *)PLTT, PLTT_SIZE); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3CNT, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); +} + +static void ResetAllAssets(void) +{ + ScanlineEffect_Stop(); + ResetTasks(); + ResetSpriteData(); + ResetAllPicSprites(); + ResetPaletteFade(); + FreeAllSpritePalettes(); +} + +static void SetDispcnt(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON); +} + +static void ResetBGPos(void) +{ + 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); +} + +static void LoadFerrySpriteResources(void) +{ + LoadSpriteSheets(sFerryAndWakeSpriteSheets); + LoadSpritePalettes(sFerryAndWakeSpritePalettes); +} + +static void FreeFerrySpriteResources(void) +{ + FreeSpriteTilesByTag(TILESTAG_FERRY); + FreeSpriteTilesByTag(TILESTAG_WAKE); + FreeSpritePaletteByTag(PALTAG_FERRY_WAKE); +} + +static void CreateFerrySprite(void) +{ + u8 spriteId = CreateSprite(&sFerrySpriteTemplate, 0, 92, 0); + gSprites[spriteId].data[0] = 48; + if (GetDirectionOfTravel() == DIRN_EASTBOUND) + { + StartSpriteAnim(&gSprites[spriteId], 1); + } + else + { + gSprites[spriteId].pos1.x = 240; + gSprites[spriteId].data[0] *= -1; + } +} + +static void SpriteCB_Ferry(struct Sprite * sprite) +{ + sprite->data[1] += sprite->data[0]; + sprite->pos2.x = sprite->data[1] >> 4; + if (sprite->data[2] % 5 == 0) + { + CreateWakeSprite(sprite->pos1.x + sprite->pos2.x); + } + sprite->data[2]++; + if ((u16)(300 + sprite->pos2.x) > 600) + { + DestroySprite(sprite); + } +} + +static void CreateWakeSprite(s16 x) +{ + u8 spriteId = CreateSprite(&sWakeSpriteTemplate, x, 92, 8); + if (spriteId != MAX_SPRITES) + { + if (GetDirectionOfTravel() == DIRN_EASTBOUND) + { + StartSpriteAnim(&gSprites[spriteId], 1); + } + } +} + +static void SpriteCB_Wake(struct Sprite * sprite) +{ + if (sprite->animEnded) + { + DestroySprite(sprite); + } +} + +static bool8 GetDirectionOfTravel(void) +{ + if (gSpecialVar_0x8004 >= NELEMS(sTravelDirectionMatrix)) + { + return DIRN_EASTBOUND; + } + return (sTravelDirectionMatrix[gSpecialVar_0x8004] >> gSpecialVar_0x8006) & 1; +} + +u8 sub_8147500(void) +{ + u16 originId, destId; + + originId = gSpecialVar_0x8004; + destId = gSpecialVar_0x8006; + + if (originId == SEAGALLOP_CINNABAR_ISLAND || destId == SEAGALLOP_CINNABAR_ISLAND) + return 1; + + if (originId == SEAGALLOP_VERMILION_CITY || destId == SEAGALLOP_VERMILION_CITY) + return 7; + + if (originId == SEAGALLOP_NAVEL_ROCK || destId == SEAGALLOP_NAVEL_ROCK) + return 10; + + if (originId == SEAGALLOP_BIRTH_ISLAND || destId == SEAGALLOP_BIRTH_ISLAND) + return 12; + + if ((originId == SEAGALLOP_ONE_ISLAND || originId == SEAGALLOP_TWO_ISLAND || originId == SEAGALLOP_THREE_ISLAND) && (destId == SEAGALLOP_ONE_ISLAND || destId == SEAGALLOP_TWO_ISLAND || destId == SEAGALLOP_THREE_ISLAND)) + return 2; + + if ((originId == SEAGALLOP_FOUR_ISLAND || originId == SEAGALLOP_FIVE_ISLAND) && (destId == SEAGALLOP_FOUR_ISLAND || destId == SEAGALLOP_FIVE_ISLAND)) + return 3; + + if ((originId == SEAGALLOP_SIX_ISLAND || originId == SEAGALLOP_SEVEN_ISLAND) && (destId == SEAGALLOP_SIX_ISLAND || destId == SEAGALLOP_SEVEN_ISLAND)) + return 5; + + return 6; +} + +bool8 sub_8147594(void) +{ + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(VERMILION_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(VERMILION_CITY) && gSaveBlock1Ptr->pos.x < 24) + return TRUE; + + return FALSE; +} diff --git a/src/sound.c b/src/sound.c index f94e44506..ba6511d1c 100644 --- a/src/sound.c +++ b/src/sound.c @@ -40,7 +40,23 @@ extern struct MusicPlayerInfo gMPlayInfo_SE2; extern struct MusicPlayerInfo gMPlayInfo_SE3; extern struct ToneData gCryTable[]; extern struct ToneData gCryTable2[]; -extern const struct Fanfare sFanfares[]; + +static const struct Fanfare sFanfares[] = { + { MUS_FANFA1, 80 }, + { MUS_FANFA4, 160 }, + { MUS_FANFA5, 220 }, + { MUS_ME_WAZA, 220 }, + { MUS_ME_ASA, 160 }, + { MUS_ME_BACHI, 340 }, + { MUS_ME_WASURE, 180 }, + { MUS_ME_KINOMI, 120 }, + { MUS_ME_B_BIG, 250 }, + { MUS_ME_B_SMALL, 150 }, + { MUS_ME_ZANNEN, 160 }, + { BGM_FRLG_FLUTE, 450 }, + { BGM_FRLG_ME_KEYITEM, 170 }, + { BGM_FRLG_ME_POKEDEX_EVAL, 196 } +}; extern u16 SpeciesToCryId(u16); diff --git a/src/ss_anne.c b/src/ss_anne.c new file mode 100644 index 000000000..f59f17a76 --- /dev/null +++ b/src/ss_anne.c @@ -0,0 +1,200 @@ +#include "global.h" +#include "task.h" +#include "sound.h" +#include "field_map_obj.h" +#include "script.h" +#include "constants/songs.h" + +// Tasks governing the ship's departure after you've gotten HM01 CUT + +#define SPRITE_TAG_WAKE 4000 +#define SPRITE_TAG_SMOKE 4001 + +static void Task_SSAnneInit(u8 taskId); +static void Task_SSAnneRun(u8 taskId); +static void Task_SSAnneFinish(u8 taskId); +static void CreateWakeBehindBoat(void); +static void WakeSpriteCallback(struct Sprite * sprite); +static void CreateSmokeSprite(void); +static void SmokeSpriteCallback(struct Sprite * sprite); + +static const u16 sWakeTiles[] = INCBIN_U16("graphics/ss_anne/unk_8479838.4bpp"); +static const u16 sSmokeTiles[] = INCBIN_U16("graphics/ss_anne/unk_8479A38.4bpp"); + +static const struct SpriteSheet sSpriteSheets[] = { + {(const void *)sWakeTiles, sizeof(sWakeTiles), SPRITE_TAG_WAKE}, + {(const void *)sSmokeTiles, sizeof(sSmokeTiles), SPRITE_TAG_SMOKE}, + {0} +}; + +static const union AnimCmd sWakeAnim[] = { + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(8, 12), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sWakeAnimTable[] = { + sWakeAnim +}; + +static const struct OamData sWakeOamData = { + .shape = ST_OAM_V_RECTANGLE, + .size = 2 +}; + +static const struct SpriteTemplate sWakeSpriteTemplate = { + SPRITE_TAG_WAKE, + 0xFFFF, + &sWakeOamData, + sWakeAnimTable, + NULL, + gDummySpriteAffineAnimTable, + WakeSpriteCallback +}; + +static const union AnimCmd sSmokeAnim[] = { + ANIMCMD_FRAME( 0, 10), + ANIMCMD_FRAME( 4, 20), + ANIMCMD_FRAME( 8, 20), + ANIMCMD_FRAME(12, 30), + ANIMCMD_END +}; + +static const union AnimCmd *const sSmokeAnimTable[] = { + sSmokeAnim +}; + +static const struct OamData sSmokeOamData = { + .shape = ST_OAM_SQUARE, + .size = 1 +}; + +static const struct SpriteTemplate sSmokeSpriteTemplate = { + SPRITE_TAG_SMOKE, + 0xFFFF, + &sSmokeOamData, + sSmokeAnimTable, + NULL, + gDummySpriteAffineAnimTable, + SmokeSpriteCallback +}; + +void Special_SSAnneDepartureCutscene(void) +{ + u8 taskId; + + PlaySE(SE_SHIP_HORN); + taskId = CreateTask(Task_SSAnneInit, 8); + gTasks[taskId].data[0] = 50; +} + +static void Task_SSAnneInit(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (--data[0] == 0) + { + LoadSpriteSheets(sSpriteSheets); + CreateWakeBehindBoat(); + gTasks[taskId].func = Task_SSAnneRun; + } +} + +static void Task_SSAnneRun(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u8 mapObjectId; + struct MapObject * boatObject; + s16 x; + + data[1]++; + data[2]++; + if (data[1] == 70) + { + data[1] = 0; + CreateSmokeSprite(); + } + TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId); + boatObject = &gMapObjects[mapObjectId]; + if (gSprites[boatObject->spriteId].pos1.x + gSprites[boatObject->spriteId].pos2.x < -120) + { + PlaySE(SE_SHIP_HORN); + gTasks[taskId].func = Task_SSAnneFinish; + } + else + { + x = data[2] / 5; + gSprites[boatObject->spriteId].pos2.x = -x; + } +} + +static void Task_SSAnneFinish(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (++data[3] == 40) + { + FreeSpriteTilesByTag(SPRITE_TAG_WAKE); + FreeSpriteTilesByTag(SPRITE_TAG_SMOKE); + DestroyTask(taskId); + EnableBothScriptContexts(); + } +} + +static void CreateWakeBehindBoat(void) +{ + u8 mapObjectId; + struct MapObject * boatObject; + u16 x; + u8 spriteId; + + TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId); + boatObject = &gMapObjects[mapObjectId]; + x = gSprites[boatObject->spriteId].pos1.x + gSprites[boatObject->spriteId].pos2.x + 80; + spriteId = CreateSprite(&sWakeSpriteTemplate, x, 109, 0xFF); + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].oam.paletteNum = 10; +} + +static void WakeSpriteCallback(struct Sprite * sprite) +{ + u8 mapObjectId; + struct MapObject * boatObject; + u16 x; + + TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId); + boatObject = &gMapObjects[mapObjectId]; + x = gSprites[boatObject->spriteId].pos1.x + gSprites[boatObject->spriteId].pos2.x + 80; + sprite->pos1.x = x; + if (sprite->data[0] / 6 < 22) + sprite->data[0]++; + sprite->pos2.x = sprite->data[0] / 6; + if (sprite->pos1.x + sprite->pos2.x < -18) + DestroySprite(sprite); +} + +static void CreateSmokeSprite(void) +{ + u8 mapObjectId; + struct MapObject * boatObject; + u16 x; + u8 spriteId; + + TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId); + boatObject = &gMapObjects[mapObjectId]; + x = gSprites[boatObject->spriteId].pos1.x + gSprites[boatObject->spriteId].pos2.x + 49; + if ((s16)x >= -32) + { + spriteId = CreateSprite(&sSmokeSpriteTemplate, x, 78, 8); + if (spriteId != MAX_SPRITES) + gSprites[spriteId].oam.paletteNum = 10; + } +} + +static void SmokeSpriteCallback(struct Sprite * sprite) +{ + sprite->data[0]++; + sprite->pos2.x = sprite->data[0] / 4; + if (sprite->animEnded) + DestroySprite(sprite); +} diff --git a/src/teachy_tv.c b/src/teachy_tv.c new file mode 100644 index 000000000..efffe2840 --- /dev/null +++ b/src/teachy_tv.c @@ -0,0 +1,1416 @@ +#include "task.h" +#include "menu.h" +#include "palette.h" +#include "sprite.h" +#include "menu_helpers.h" +#include "new_menu_helpers.h" +#include "sound.h" +#include "malloc.h" +#include "scanline_effect.h" +#include "bg.h" +#include "gpu_regs.h" +#include "decompress.h" +#include "window.h" +#include "list_menu.h" +#include "item_menu.h" +#include "item.h" +#include "menu_indicators.h" +#include "field_map_obj.h" +#include "random.h" +#include "text.h" +#include "constants/songs.h" +#include "constants/items.h" +#include "event_data.h" +#include "load_save.h" +#include "battle_transition.h" +#include "battle_2.h" +#include "battle.h" +#include "global.fieldmap.h" +#include "teachy_tv.h" +#include "help_system.h" +#include "overworld.h" +#include "unk_8159F40.h" +#include "graphics.h" +#include "fieldmap.h" +#include "strings.h" + +enum TeachyTvScript +{ + TTVSCR_BATTLE, + TTVSCR_STATUS, + TTVSCR_MATCHUPS, + TTVSCR_CATCHING, + TTVSCR_TMS, + TTVSCR_REGISTER +}; + +struct TeachyTvCtrlBlk +{ + MainCallback callback; + u8 mode; + u8 whichScript; + u16 scrollOffset; + u16 selectedRow; +}; + +struct TeachyTvBuf +{ + MainCallback savedCallback; + u16 buffer1[0x800]; + u16 buffer2[0x800]; + u16 buffer3[0x800]; + u16 buffer4[0x800]; + u8 grassAnimCounterLo; + u8 grassAnimCounterHi; + u8 grassAnimDisabled; + u8 scrollIndicatorArrowPairId; +}; + +static EWRAM_DATA struct TeachyTvCtrlBlk sStaticResources = {0}; +static EWRAM_DATA struct TeachyTvBuf * sResources = NULL; + +static void TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId); +static void TTVcmd_ClearBg2TeachyTvGraphic(u8 taskId); +static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId); +static void TTVcmd_IdleIfTextPrinterIsActive(u8 taskId); +static void TTVcmd_TextPrinterSwitchStringByOptionChosen(u8 taskId); +static void TTVcmd_TextPrinterSwitchStringByOptionChosen2(u8 taskId); +static void TTVcmd_IdleIfTextPrinterIsActive2(u8 taskId); +static void TTVcmd_EraseTextWindowIfKeyPressed(u8 taskId); +static void TTVcmd_StartAnimNpcWalkIntoGrass(u8 taskId); +static void TTVcmd_DudeMoveUp(u8 taskId); +static void TTVcmd_DudeMoveRight(u8 taskId); +static void TTVcmd_DudeTurnLeft(u8 taskId); +static void TTVcmd_DudeMoveLeft(u8 taskId); +static void TTVcmd_RenderAndRemoveBg1EndGraphic(u8 taskId); +static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId); +static void TeachyTvCallback(void); +static void TeachyTvMainCallback(void); +static void TeachyTvVblankHandler(void); +static void TeachyTvCreateAndRenderRbox(void); +static void TeachyTvInitIo(void); +static u8 TeachyTvSetupObjEventAndOam(void); +static void TeachyTvSetupPostBattleWindowAndObj(u8); +static u8 TeachyTvSetupWindow(void); +static void TeachyTvSetupScrollIndicatorArrowPair(void); +static void TeachyTvSetWindowRegs(void); +static void TeachyTvSetupBg(void); +static void TeachyTvLoadGraphic(void); +static void TeachyTvPostBattleFadeControl(u8); +static void TeachyTvOptionListController(u8); +static void TeachyTvAudioByInput(s32, bool8, struct ListMenu *); +static void TeachyTvQuitFadeControlAndTaskDel(u8 taskId); +static void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId); +static void TeachyTvClearBg1EndGraphicText(void); +static void TTVcmd_End(u8 taskId); +static void TeachyTvSetupBagItemsByOptionChosen(void); +static void TeachyTvPrepBattle(u8 taskId); +static void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode); +static void TeachyTvLoadBg3Map(u16 *); +static u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y); +static void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite); +static void TeachyTvRestorePlayerPartyCallback(void); +static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId); +static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size); +static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapData *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset); +static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset); +static void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *tileset, u8 metaTile); +static u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile); +static void TeachyTvLoadMapPalette(const struct MapData * mStruct, const u8 *palIndexArray); + +static const struct BgTemplate sBgTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x000, + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000, + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x000, + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0x000, + }, +}; + +static const struct WindowTemplate sWindowTemplates[] = +{ + { + .bg = 1, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0x3, + .baseBlock = 0x0EA, + }, + { + .bg = 0, + .tilemapLeft = 4, + .tilemapTop = 1, + .width = 22, + .height = 12, + .paletteNum = 0x3, + .baseBlock = 0x152, + }, + DUMMY_WIN_TEMPLATE, +}; + +static const struct ListMenuItem sListMenuItems[] = +{ + { + .label = gTeachyTvString_TeachBattle, + .index = TTVSCR_BATTLE + }, + { + .label = gTeachyTvString_StatusProblems, + .index = TTVSCR_STATUS + }, + { + .label = gTeachyTvString_TypeMatchups, + .index = TTVSCR_MATCHUPS + }, + { + .label = gTeachyTvString_CatchPkmn, + .index = TTVSCR_CATCHING + }, + { + .label = gTeachyTvString_AboutTMs, + .index = TTVSCR_TMS + }, + { + .label = gTeachyTvString_RegisterItem, + .index = TTVSCR_REGISTER + }, + + { + .label = gTeachyTvString_Cancel, + .index = -2 + }, +}; + +static const struct ListMenuItem sListMenuItems_NoTMCase[] = +{ + { + .label = gTeachyTvString_TeachBattle, + .index = TTVSCR_BATTLE + }, + { + .label = gTeachyTvString_StatusProblems, + .index = TTVSCR_STATUS + }, + { + .label = gTeachyTvString_TypeMatchups, + .index = TTVSCR_MATCHUPS + }, + { + .label = gTeachyTvString_CatchPkmn, + .index = TTVSCR_CATCHING + }, + { + .label = gTeachyTvString_Cancel, + .index = -2 + }, +}; + +static const struct ListMenuTemplate sListMenuTemplate = +{ + .items = sListMenuItems, + .moveCursorFunc = NULL, + .itemPrintFunc = NULL, + .totalItems = 7, + .maxShowed = 6, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 6, + .cursorPal = 0x1, + .fillValue = 0x0, + .cursorShadowPal = 0x2, + .lettersSpacing = 0x0, + .itemVerticalPadding = 0x0, + .scrollMultiple = 0x1, + .fontId = 0x2, + .cursorKind = 0x0, +}; + +static const struct ScrollArrowsTemplate sScrollIndicatorArrowPair = +{ + .firstArrowType = 0x2, + .firstX = 0x78, + .firstY = 0xC, + .secondArrowType = 0x3, + .secondX = 0x78, + .secondY = 0x64, + .fullyUpThreshold = 0, + .fullyDownThreshold = 1, + .tileTag = 0x800, + .palTag = 0x800, + .palNum = 0x0, +}; + +static const u8 sWhereToReturnToFromBattle[] = +{ + 12, + 12, + 12, + 12, + 9, + 9 +}; + +static void (* const sBattleScript[])(u8) = +{ + TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos, + TTVcmd_ClearBg2TeachyTvGraphic, + TTVcmd_NpcMoveAndSetupTextPrinter, + TTVcmd_IdleIfTextPrinterIsActive, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_TextPrinterSwitchStringByOptionChosen, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_StartAnimNpcWalkIntoGrass, + TTVcmd_DudeMoveUp, + TTVcmd_DudeMoveRight, + TTVcmd_TaskBattleOrFadeByOptionChosen, + TTVcmd_TextPrinterSwitchStringByOptionChosen2, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_DudeTurnLeft, + TTVcmd_DudeMoveLeft, + TTVcmd_RenderAndRemoveBg1EndGraphic, + TTVcmd_End, +}; + +static void (* const sStatusScript[])(u8) = +{ + TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos, + TTVcmd_ClearBg2TeachyTvGraphic, + TTVcmd_NpcMoveAndSetupTextPrinter, + TTVcmd_IdleIfTextPrinterIsActive, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_TextPrinterSwitchStringByOptionChosen, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_StartAnimNpcWalkIntoGrass, + TTVcmd_DudeMoveUp, + TTVcmd_DudeMoveRight, + TTVcmd_TaskBattleOrFadeByOptionChosen, + TTVcmd_TextPrinterSwitchStringByOptionChosen2, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_DudeTurnLeft, + TTVcmd_DudeMoveLeft, + TTVcmd_RenderAndRemoveBg1EndGraphic, + TTVcmd_End, +}; + +static void (* const sMatchupsScript[])(u8) = +{ + TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos, + TTVcmd_ClearBg2TeachyTvGraphic, + TTVcmd_NpcMoveAndSetupTextPrinter, + TTVcmd_IdleIfTextPrinterIsActive, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_TextPrinterSwitchStringByOptionChosen, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_StartAnimNpcWalkIntoGrass, + TTVcmd_DudeMoveUp, + TTVcmd_DudeMoveRight, + TTVcmd_TaskBattleOrFadeByOptionChosen, + TTVcmd_TextPrinterSwitchStringByOptionChosen2, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_DudeTurnLeft, + TTVcmd_DudeMoveLeft, + TTVcmd_RenderAndRemoveBg1EndGraphic, + TTVcmd_End, +}; + +static void (* const sCatchingScript[])(u8) = +{ + TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos, + TTVcmd_ClearBg2TeachyTvGraphic, + TTVcmd_NpcMoveAndSetupTextPrinter, + TTVcmd_IdleIfTextPrinterIsActive, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_TextPrinterSwitchStringByOptionChosen, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_StartAnimNpcWalkIntoGrass, + TTVcmd_DudeMoveUp, + TTVcmd_DudeMoveRight, + TTVcmd_TaskBattleOrFadeByOptionChosen, + TTVcmd_TextPrinterSwitchStringByOptionChosen2, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_DudeTurnLeft, + TTVcmd_DudeMoveLeft, + TTVcmd_RenderAndRemoveBg1EndGraphic, + TTVcmd_End, +}; + +static void (* const sTMsScript[])(u8) = +{ + TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos, + TTVcmd_ClearBg2TeachyTvGraphic, + TTVcmd_NpcMoveAndSetupTextPrinter, + TTVcmd_IdleIfTextPrinterIsActive, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_TextPrinterSwitchStringByOptionChosen, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_TaskBattleOrFadeByOptionChosen, + TTVcmd_TextPrinterSwitchStringByOptionChosen2, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_DudeTurnLeft, + TTVcmd_DudeMoveLeft, + TTVcmd_RenderAndRemoveBg1EndGraphic, + TTVcmd_End, +}; + +static void (* const sRegisterKeyItemScript[])(u8) = +{ + TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos, + TTVcmd_ClearBg2TeachyTvGraphic, + TTVcmd_NpcMoveAndSetupTextPrinter, + TTVcmd_IdleIfTextPrinterIsActive, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_TextPrinterSwitchStringByOptionChosen, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_TaskBattleOrFadeByOptionChosen, + TTVcmd_TextPrinterSwitchStringByOptionChosen2, + TTVcmd_IdleIfTextPrinterIsActive2, + TTVcmd_EraseTextWindowIfKeyPressed, + TTVcmd_DudeTurnLeft, + TTVcmd_DudeMoveLeft, + TTVcmd_RenderAndRemoveBg1EndGraphic, + TTVcmd_End, +}; + +static void TeachyTvCallback(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void TeachyTvVblankHandler(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void InitTeachyTvController(u8 mode, MainCallback cb) +{ + sStaticResources.mode = mode; + sStaticResources.callback = cb; + if (mode == 0) + { + sStaticResources.scrollOffset = 0; + sStaticResources.selectedRow = 0; + sStaticResources.whichScript = TTVSCR_BATTLE; + } + if (mode == 1) + { + sStaticResources.mode = 0; + } + SetMainCallback2(TeachyTvMainCallback); +} + +void CB2_ReturnToTeachyTV(void) +{ + if (sStaticResources.mode == 1) + InitTeachyTvController(1, sStaticResources.callback); + else + InitTeachyTvController(2, sStaticResources.callback); +} + +void SetTeachyTvControllerModeToResume(void) +{ + sStaticResources.mode = 1; +} + +static void TeachyTvMainCallback(void) +{ + u8 taskId; + struct Task *taskAddr; + + switch (gMain.state) + { + case 0: + sResources = AllocZeroed(sizeof(struct TeachyTvBuf)); + sResources->savedCallback = NULL; + sResources->grassAnimDisabled = 0; + sResources->scrollIndicatorArrowPairId = 0xFF; + VblankHblankHandlerSetZero(); + clear_scheduled_bg_copies_to_vram(); + ScanlineEffect_Stop(); + FreeAllSpritePalettes(); + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + TeachyTvSetupBg(); + TeachyTvLoadGraphic(); + ++gMain.state; + break; + case 1: + if (free_temp_tile_data_buffers_if_possible() == TRUE) + return; + TeachyTvCreateAndRenderRbox(); + TeachyTvInitIo(); + if (sStaticResources.mode == 2) + { + taskId = CreateTask(TeachyTvPostBattleFadeControl, 0); + gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam(); + TeachyTvSetupPostBattleWindowAndObj(taskId); + } + else + { + taskId = CreateTask(TeachyTvOptionListController, 0); + gTasks[taskId].data[0] = TeachyTvSetupWindow(); + gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam(); + TeachyTvSetupScrollIndicatorArrowPair(); + PlayNewMapMusic(BGM_FRLG_TEACHY_TV); + TeachyTvSetWindowRegs(); + } + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + schedule_bg_copy_tilemap_to_vram(3); + sub_812B1E0(9); // help system something + BlendPalettes(0xFFFFFFFF, 0x10, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + SetVBlankCallback(TeachyTvVblankHandler); + SetMainCallback2(TeachyTvCallback); + break; + } +} + +static void TeachyTvSetupBg(void) +{ + InitBgReg(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBgTemplates, 4); + SetBgTilemapBuffer(1, sResources->buffer1); + SetBgTilemapBuffer(2, sResources->buffer2); + SetBgTilemapBuffer(3, sResources->buffer3); + SetGpuReg(REG_OFFSET_DISPCNT, 0x3040); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + ChangeBgX(3, 0x1000, 2); + ChangeBgY(3, 0x2800, 1); + sResources->grassAnimCounterLo = 0; + sResources->grassAnimCounterHi = 3; + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +static void TeachyTvLoadGraphic(void) +{ + u16 src = RGB_BLACK; + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(1, gUnknown_8E86240, 0, 0, 0); + LZDecompressWram(gUnknown_8E86BE8, sResources->buffer1); + LZDecompressWram(gUnknown_8E86D6C, sResources->buffer4); + LoadCompressedPalette(gUnknown_8E86F98, 0, 0x80); + LoadPalette(&src, 0, sizeof(src)); + LoadSpritePalette(&gUnknown_83A5348); + TeachyTvLoadBg3Map(sResources->buffer3); +} + +static void TeachyTvCreateAndRenderRbox(void) +{ + InitWindows(sWindowTemplates); + DeactivateAllTextPrinters(); + FillWindowPixelBuffer(0, 0xCC); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 2); +} + +static u8 TeachyTvSetupWindow(void) +{ + gMultiuseListMenuTemplate = sListMenuTemplate; + gMultiuseListMenuTemplate.windowId = 1; + gMultiuseListMenuTemplate.moveCursorFunc = TeachyTvAudioByInput; + if (!CheckBagHasItem(ITEM_TM_CASE, 1)) + { + gMultiuseListMenuTemplate.items = sListMenuItems_NoTMCase; + gMultiuseListMenuTemplate.totalItems = 5; + gMultiuseListMenuTemplate.maxShowed = 5; + gMultiuseListMenuTemplate.upText_Y = (gMultiuseListMenuTemplate.upText_Y + 8) & 0xF; + } + return ListMenuInit( + &gMultiuseListMenuTemplate, + sStaticResources.scrollOffset, + sStaticResources.selectedRow + ); +} + +static void TeachyTvSetupScrollIndicatorArrowPair(void) +{ + if (!CheckBagHasItem(ITEM_TM_CASE, 1)) + { + struct TeachyTvBuf * temp = sResources; + temp->scrollIndicatorArrowPairId = 0xFF; + } + else + { + sResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPair(&sScrollIndicatorArrowPair, &(sStaticResources.scrollOffset)); + } +} + +static void TeachyTvRemoveScrollIndicatorArrowPair(void) +{ + if (sResources->scrollIndicatorArrowPairId != 0xFF) + { + RemoveScrollIndicatorArrowPair(sResources->scrollIndicatorArrowPairId); + sResources->scrollIndicatorArrowPairId = 0xFF; + } +} + +static void TeachyTvAudioByInput(s32 notUsed, bool8 play, struct ListMenu *notUsedAlt) +{ + if (play != TRUE) + PlaySE(SE_SELECT); +} + +static void TeachyTvInitIo(void) +{ + SetGpuReg(REG_OFFSET_WININ, 0x3F); + SetGpuReg(REG_OFFSET_WINOUT, 0x1F); + SetGpuReg(REG_OFFSET_BLDCNT, 0xCC); + SetGpuReg(REG_OFFSET_BLDY, 0x5); +} + +static u8 TeachyTvSetupObjEventAndOam(void) +{ + u8 objId = AddPseudoEventObject(90, SpriteCallbackDummy, 0, 0, 8); + gSprites[objId].oam.priority = 2; + gSprites[objId].invisible = 1; + return objId; +} + +static void TeachyTvSetSpriteCoordsAndSwitchFrame(u8 objId, u16 x, u16 y, u8 frame) +{ + gSprites[objId].pos2.x = x; + gSprites[objId].pos2.y = y; + gSprites[objId].invisible = 0; + StartSpriteAnim(&gSprites[objId], frame); +} + +static void TeachyTvSetWindowRegs(void) +{ + SetGpuReg(REG_OFFSET_WIN0V, 0xC64); + SetGpuReg(REG_OFFSET_WIN0H, 0x1CD4); +} + +static void TeachyTvClearWindowRegs(void) +{ + SetGpuReg(REG_OFFSET_WIN0V, 0x0); + SetGpuReg(REG_OFFSET_WIN0H, 0x0); +} + +static void TeachyTvBg2AnimController(void) +{ + u16 * tilemapBuffer = GetBgTilemapBuffer(2); + u8 i, j; + for (i = 1; i < 13; i++) + { + for (j = 2; j < 28; j++) + { + tilemapBuffer[32 * i + j] = ((Random() & 3) << 10) + 0x301F; + } + } + schedule_bg_copy_tilemap_to_vram(2); +} + +static void TeachyTvSetupPostBattleWindowAndObj(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + struct Sprite *objAddr = &gSprites[data[1]]; + + ClearWindowTilemap(1); + TeachyTvClearWindowRegs(); + switch (sStaticResources.whichScript) + { + case TTVSCR_BATTLE: + case TTVSCR_STATUS: + case TTVSCR_MATCHUPS: + case TTVSCR_CATCHING: + TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 0x78, 0x38, 0); + ChangeBgX(3, 0x3000, 1); + ChangeBgY(3, 0x3000, 2); + sResources->grassAnimCounterLo += 3; + sResources->grassAnimCounterHi -= 3; + break; + case TTVSCR_TMS: + case TTVSCR_REGISTER: + TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 0x78, 0x38, 0); + break; + } + + data[4] = 0; + data[5] = 0; + TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x, objAddr->pos2.y, 0, 1); +} + +static void TeachyTvInitTextPrinter(const u8 *text) +{ + gTextFlags.autoScroll = 0; + AddTextPrinterParameterized2(0, 4, text, GetTextSpeedSetting(), 0, 1, 0xC, 3); +} + +static void TeachyTvFree(void) +{ + Free(sResources); + sResources = NULL; + FreeAllWindowBuffers(); +} + +static void TeachyTvQuitBeginFade(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].func = TeachyTvQuitFadeControlAndTaskDel; +} + +static void TeachyTvQuitFadeControlAndTaskDel(u8 taskId) +{ + if (!(gPaletteFade.active)) + { + if (sResources->savedCallback != NULL) + { + SetMainCallback2(sResources->savedCallback); + } + else + { + sub_8055DC4(); + SetMainCallback2(sStaticResources.callback); + } + TeachyTvFree(); + DestroyTask(taskId); + } +} + +static void TeachyTvOptionListController(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + s32 input; + + TeachyTvBg2AnimController(); + if (!gPaletteFade.active) + { + input = ListMenuHandleInput(data[0]); + ListMenuGetScrollAndRow(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow); + if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != ReturnToBagFromKeyItem)) + { + PlaySE(SE_SELECT); + TeachyTvQuitBeginFade(taskId); + } + else + { + switch (input) + { + case -1: + break; + case -2: + PlaySE(SE_SELECT); + TeachyTvQuitBeginFade(taskId); + break; + default: + PlaySE(SE_SELECT); + sStaticResources.whichScript = input; + DestroyListMenu(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow); + TeachyTvClearWindowRegs(); + ClearWindowTilemap(1); + schedule_bg_copy_tilemap_to_vram(0); + TeachyTvRemoveScrollIndicatorArrowPair(); + data[3] = 0; + data[2] = 0; + gTasks[taskId].func = TeachyTvRenderMsgAndSwitchClusterFuncs; + break; + } + } + } +} + +static void TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + TeachyTvBg2AnimController(); + if (++data[2] > 63) + { + CopyToBgTilemapBufferRect_ChangePalette(2, sResources->buffer4, 0, 0, 0x20, 0x20, 0x11); + TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 8, 0x38, 7); + schedule_bg_copy_tilemap_to_vram(2); + data[2] = 0; + ++data[3]; + PlayNewMapMusic(BGM_FRLG_FOLLOW_ME); + } +} + +static void TTVcmd_ClearBg2TeachyTvGraphic(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (++data[2] == 134) + { + FillBgTilemapBufferRect_Palette0(2, 0, 2, 1, 0x1A, 0xC); + schedule_bg_copy_tilemap_to_vram(2); + data[2] = 0; + ++data[3]; + } +} + +static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + struct Sprite * spriteAddr = &gSprites[data[1]]; + if (data[2] != 35) + ++data[2]; + else { + if (spriteAddr->pos2.x == 0x78) + { + StartSpriteAnim(&gSprites[data[1]], 0); + TeachyTvInitTextPrinter(gTeachyTvText_PokeDudeSaysHello); + data[2] = 0; + ++data[3]; + } + else + ++spriteAddr->pos2.x; + } +} + +static void TTVcmd_IdleIfTextPrinterIsActive(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!sub_80BF518(0)) + ++data[3]; +} + +static void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (JOY_NEW(B_BUTTON)) + { + sResources->grassAnimDisabled = 1; + TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 0, 0, 0); + FillWindowPixelBuffer(0, 0xCC); + CopyWindowToVram(0, 2); + TeachyTvClearBg1EndGraphicText(); + data[2] = 0; + data[3] = 0; + gTasks[taskId].func = TTVcmd_End; + } + else + { + static void (* const * const array[])(u8) = + { + sBattleScript, + sStatusScript, + sMatchupsScript, + sCatchingScript, + sTMsScript, + sRegisterKeyItemScript, + }; + void (*const *cluster)(u8) = array[sStaticResources.whichScript]; + cluster[data[3]](taskId); + } +} + +static void TTVcmd_TextPrinterSwitchStringByOptionChosen(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + static const u8 *const texts[] = { + gTeachyTvText_BattleScript1, + gTeachyTvText_StatusScript1, + gTeachyTvText_MatchupsScript1, + gTeachyTvText_CatchingScript1, + gTeachyTvText_TMsScript1, + gTeachyTvText_RegisterScript1, + }; + TeachyTvInitTextPrinter(texts[sStaticResources.whichScript]); + ++data[3]; +} + +static void TTVcmd_TextPrinterSwitchStringByOptionChosen2(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + static const u8 *const texts[] = + { + gTeachyTvText_BattleScript2, + gTeachyTvText_StatusScript2, + gTeachyTvText_MatchupsScript2, + gTeachyTvText_CatchingScript2, + gTeachyTvText_TMsScript2, + gTeachyTvText_RegisterScript2, + }; + TeachyTvInitTextPrinter(texts[sStaticResources.whichScript]); + ++data[3]; +} + +static const u16 sBg1EndGraphic[] = +{ + 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, + 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, +}; + +static const struct Subsprite sSubspriteArray[] = +{ + { + .x = -0x8, + .y = -0x8, + .shape = 0x1, + .size = 0x0, + .tileOffset = 0x0, + .priority = 0x3, + }, + { + .x = -0x8, + .y = 0x0, + .shape = 0x1, + .size = 0x0, + .tileOffset = 0x2, + .priority = 0x2, + }, +}; + +static const struct SubspriteTable sSubspriteTableArray[] = +{ + { + .subspriteCount = 0, + .subsprites = NULL, + }, + { + .subspriteCount = 2, + .subsprites = sSubspriteArray, + }, +}; + +static const u8 sGrassAnimArray[] = +{ + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, +}; + +static void TTVcmd_IdleIfTextPrinterIsActive2(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!sub_80BF518(0)) + ++data[3]; +} + +static void TTVcmd_EraseTextWindowIfKeyPressed(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (JOY_NEW(A_BUTTON | B_BUTTON)) + { + FillWindowPixelBuffer(0, 0xCC); + CopyWindowToVram(0, 2); + ++data[3]; + } +} + +static void TTVcmd_StartAnimNpcWalkIntoGrass(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + StartSpriteAnim(&gSprites[data[1]], 5); + data[2] = 0; + data[4] = 0; + data[5] = 1; + ++data[3]; +} + +static void TTVcmd_DudeMoveUp(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + struct Sprite *obj = &gSprites[data[1]]; + ChangeBgY(3, 0x100, 2); + if (!(++data[2] & 0xF)) + { + --sResources->grassAnimCounterHi; + TeachyTvGrassAnimationMain(taskId, obj->pos2.x, obj->pos2.y, 0, 0); + } + if (data[2] == 48) + { + data[2] = 0; + data[4] = -1; + data[5] = 0; + StartSpriteAnim(obj, 7); + ++data[3]; + } +} + +static void TTVcmd_DudeMoveRight(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + struct Sprite *obj = &gSprites[data[1]]; + ChangeBgX(3, 0x100, 1); + if (!(++data[2] & 0xF)) + ++sResources->grassAnimCounterLo; + if (!((data[2] + 8) & 0xF)) + TeachyTvGrassAnimationMain(taskId, obj->pos2.x + 8, obj->pos2.y, 0, 0); + if (data[2] == 0x30) + { + data[2] = 0; + data[4] = 0; + data[5] = 0; + StartSpriteAnim(obj, 3); + ++data[3]; + } +} + +static void TTVcmd_DudeTurnLeft(u8 taskId) +{ + + s16 *data = gTasks[taskId].data; + struct Sprite *objAddr = &gSprites[data[1]]; + StartSpriteAnim(objAddr, 6); + ++data[3]; + data[4] = 0; + data[5] = 0; + TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x, objAddr->pos2.y, 0, 0); +} + +static void TTVcmd_DudeMoveLeft(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + struct Sprite *objAddr = &gSprites[data[1]]; + + if (!(objAddr->pos2.x & 0xF)) + TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x - 8, objAddr->pos2.y, 0, 0); + if (objAddr->pos2.x == 8) + ++data[3]; + else + --objAddr->pos2.x; +} + +static void TTVcmd_RenderAndRemoveBg1EndGraphic(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!data[2]) + { + CopyToBgTilemapBufferRect_ChangePalette(1, sBg1EndGraphic, 20, 10, 8, 2, 0x11); + schedule_bg_copy_tilemap_to_vram(1); + } + if (++data[2] > 126) + { + TeachyTvClearBg1EndGraphicText(); + data[2] = 0; + ++data[3]; + } +} + +static void TeachyTvClearBg1EndGraphicText(void) +{ + FillBgTilemapBufferRect_Palette0(1, 0, 20, 10, 8, 2); + schedule_bg_copy_tilemap_to_vram(1); +} + +static void TTVcmd_End(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (data[2] == 0) + PlayNewMapMusic(BGM_FRLG_TEACHY_TV); + TeachyTvBg2AnimController(); + if (++data[2] > 63) + { + data[2] = 0; + data[3] = 0; + data[0] = TeachyTvSetupWindow(); + gTasks[taskId].func = TeachyTvOptionListController; + PutWindowTilemap(0); + TeachyTvSetupScrollIndicatorArrowPair(); + TeachyTvSetWindowRegs(); + schedule_bg_copy_tilemap_to_vram(0); + ChangeBgX(3, 0x0, 0); + ChangeBgY(3, 0x0, 0); + ChangeBgX(3, 0x1000, 2); + ChangeBgY(3, 0x2800, 1); + sResources->grassAnimCounterLo = 0; + sResources->grassAnimCounterHi = 3; + sResources->grassAnimDisabled = 0; + } +} + +static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId) +{ + switch (sStaticResources.whichScript) + { + case TTVSCR_BATTLE: + case TTVSCR_STATUS: + case TTVSCR_MATCHUPS: + case TTVSCR_CATCHING: + TeachyTvPrepBattle(taskId); + break; + case TTVSCR_TMS: + case TTVSCR_REGISTER: + sResources->savedCallback = TeachyTvSetupBagItemsByOptionChosen; + TeachyTvQuitBeginFade(taskId); + break; + } +} + +static void TeachyTvSetupBagItemsByOptionChosen(void) +{ + if (sStaticResources.whichScript == TTVSCR_TMS) + sub_810B108(10); + else + sub_810B108(9); +} + +static void TeachyTvPostBattleFadeControl(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!(gPaletteFade.active)) + { + data[3] = sWhereToReturnToFromBattle[sStaticResources.whichScript]; + gTasks[taskId].func = TeachyTvRenderMsgAndSwitchClusterFuncs; + } +} + +static void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode) +{ + struct Sprite *obj; + u8 spriteId; + + if (sResources->grassAnimDisabled != 1 && TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(x - 0x10, y)) + { + spriteId = CreateSprite(gUnknown_83A0010[4], 0, 0, subpriority); + obj = &gSprites[spriteId]; + obj->pos2.x = x; + obj->pos2.y = y + 8; + obj->callback = TeachyTvGrassAnimationObjCallback; + obj->data[0] = taskId; + if (mode == 1) + { + SeekSpriteAnim(obj, 4); + obj->oam.priority = 2; + } + else + { + SetSubspriteTables(obj, sSubspriteTableArray); + obj->subspriteTableNum = 0; + obj->subspriteMode = 1; + } + } +} + +static void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite) +{ + s16 diff1, diff2; + s16 *data = gTasks[sprite->data[0]].data; + struct Sprite *objAddr = &gSprites[data[1]]; + + if (sResources->grassAnimDisabled == 1) + DestroySprite(sprite); + else + { + if (sprite->animCmdIndex == 0) + sprite->subspriteTableNum = 1; + else + sprite->subspriteTableNum = 0; + sprite->pos2.x += data[4]; + sprite->pos2.y += data[5]; + if (sprite->animEnded) + { + sprite->subpriority = 0; + diff1 = sprite->pos2.x - objAddr->pos2.x; + diff2 = sprite->pos2.y - objAddr->pos2.y; + if (diff1 <= -16 || diff1 >= 16 || diff2 <= -16 || diff2 >= 24) + DestroySprite(sprite); + } + } +} + +static u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y) +{ + const u8 * arr; + struct TeachyTvBuf *ptr; + int high, low; + if ((x < 0) || (y < 0)) + return 0; + arr = sGrassAnimArray; + high = ((y >> 4) + sResources->grassAnimCounterHi) << 4; + low = ((x >> 4) + sResources->grassAnimCounterLo); + return arr[high+low]; +} + +static void TeachyTvPrepBattle(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + TeachyTvFree(); + gSpecialVar_0x8004 = sStaticResources.whichScript; + gMain.savedCallback = TeachyTvRestorePlayerPartyCallback; + SavePlayerParty(); + sub_8159F40(); + PlayMapChosenOrBattleBGM(MUS_DUMMY); + if (sStaticResources.whichScript == TTVSCR_BATTLE) + data[6] = 9; + else + data[6] = 8; + data[7] = 0; + gTasks[taskId].func = TeachyTvPreBattleAnimAndSetBattleCallback; +} + +static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + switch (data[7]) + { + case 0: + sub_80D08B8(data[6]); + ++data[7]; + break; + case 1: + if (sub_80D08F8()) + { + SetMainCallback2(sub_800FD9C); + DestroyTask(taskId); + } + break; + } +} + +static void TeachyTvRestorePlayerPartyCallback(void) +{ + LoadPlayerParty(); + if (gBattleOutcome == B_OUTCOME_DREW) + SetTeachyTvControllerModeToResume(); + else + PlayNewMapMusic(BGM_FRLG_FOLLOW_ME); + CB2_ReturnToTeachyTV(); +} + +static void TeachyTvLoadBg3Map(u16 *buffer) +{ + u16 * bgTilesBuffer; + u8 * mapTilesRowBuffer; + u16 i, j, k; + u16 currentBlockIdx; + void * tilesetsBuffer; + void * palIndicesBuffer; + u16 numMapTilesRows = 0; + const struct MapData *layout = &Route1_Layout; + u16 * blockIndicesBuffer = AllocZeroed(0x800); + tilesetsBuffer = AllocZeroed(0x8000); + palIndicesBuffer = Alloc(16); + memset(palIndicesBuffer, 0xFF, 16); + + TeachyTvLoadMapTilesetToBuffer(layout->primaryTileset, tilesetsBuffer, 0x280); + TeachyTvLoadMapTilesetToBuffer(layout->secondaryTileset, tilesetsBuffer + 0x5000, 0x180); + + for (i = 0; i < 9; i++) + { + for (j = 0; j < 16; j++) + { + currentBlockIdx = layout->map[8 + (i + 6) * layout->width + j] & 0x3FF; + for (k = 0; k < (i << 4) + j; k++) + { + if (blockIndicesBuffer[k] == 0) + break; + if (blockIndicesBuffer[k] == currentBlockIdx) + break; + } + if (blockIndicesBuffer[k] == 0) + { + blockIndicesBuffer[k] = currentBlockIdx; + numMapTilesRows++; + } + TeachyTvPushBackNewMapPalIndexArrayEntry(layout, &buffer[64 * i + 2 * j], palIndicesBuffer, currentBlockIdx, k); + } + } + + bgTilesBuffer = Alloc(numMapTilesRows * 0x80); + mapTilesRowBuffer = Alloc(0x80); + for (i = 0; i < numMapTilesRows; i++) + { + memset(mapTilesRowBuffer, 0, 0x80); + if (blockIndicesBuffer[i] < 0x280) + { + TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->primaryTileset->metatiles + blockIndicesBuffer[i] * 16, mapTilesRowBuffer, tilesetsBuffer); + } + else + { + TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->secondaryTileset->metatiles + (blockIndicesBuffer[i] - 0x280) * 16, mapTilesRowBuffer, tilesetsBuffer); + } + CpuFastCopy(mapTilesRowBuffer, bgTilesBuffer + i * 0x40, 0x80); + } + + LoadBgTiles(3, bgTilesBuffer, numMapTilesRows * 0x80, 0); + TeachyTvLoadMapPalette(layout, palIndicesBuffer); + + Free(mapTilesRowBuffer); + Free(bgTilesBuffer); + Free(palIndicesBuffer); + Free(tilesetsBuffer); + Free(blockIndicesBuffer); +} + +static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size) +{ + if (ts) + { + if (!ts->isCompressed) + CpuFastSet(ts->tiles, dstBuffer, 8 * size); + else + LZDecompressWram(ts->tiles, dstBuffer); + } +} + +static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapData *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset) +{ + u16 * metaTileEntryAddr = mapEntry <= 0x27F ? &((u16*)(mStruct->primaryTileset->metatiles))[8 * mapEntry] : &((u16*)(mStruct->secondaryTileset->metatiles))[8 * (mapEntry - 0x280)]; + buf1[0] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[0]) << 12) + 4 * offset; + buf1[1] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[1]) << 12) + 4 * offset + 1; + buf1[32] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[2]) << 12) + 4 * offset + 2; + buf1[33] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[3]) << 12) + 4 * offset + 3; +} + +static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset) +{ + TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (*metaTilesArray & 0x3FF)], (*metaTilesArray >> 10) & 3); + TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (metaTilesArray[4] & 0x3FF)], (metaTilesArray[4] >> 10) & 3); + TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf + 0x20, &tileset[0x20 * (metaTilesArray[1] & 0x3FF)], (metaTilesArray[1] >> 10) & 3); + TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf + 0x20, &tileset[0x20 * (metaTilesArray[5] & 0x3FF)], (metaTilesArray[5] >> 10) & 3); + TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf + 0x40, &tileset[0x20 * (metaTilesArray[2] & 0x3FF)], (metaTilesArray[2] >> 10) & 3); + TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf + 0x40, &tileset[0x20 * (metaTilesArray[6] & 0x3FF)], (metaTilesArray[6] >> 10) & 3); + blockBuf += 0x60; + TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (metaTilesArray[3] & 0x3FF)], (metaTilesArray[3] >> 10) & 3); + TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (metaTilesArray[7] & 0x3FF)], (metaTilesArray[7] >> 10) & 3); +} + +static void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *tileset, u8 metaTile) +{ + u8 i, j; + u8 * buffer = AllocZeroed(0x20); + u8 * src = AllocZeroed(0x20); + CpuFastSet(tileset, buffer, 8); + if (metaTile & 1) + { + for (i = 0; i < 8; ++i) + { + for (j = 0; j < 4; ++j) + { + u32 offset = j - 3; + u8 value = buffer[(i << 2) - offset]; + src[(i << 2) + j] = ((value & 0xF) << 4) + ((value & 0xF0) >> 4); + } + } + CpuFastSet(src, buffer, 8); + } + if (metaTile & 2) + { + for (i = 0; i < 8; ++i) + memcpy(&src[4 * i], &buffer[4 * (7 - i)], 4); + CpuFastSet(src, buffer, 8); + } + for (i = 0; i < 32; ++i) + { + if (buffer[i] & 0xF0) + blockBuf[i] = (blockBuf[i] & 0xF) + (buffer[i] & 0xF0); + if (buffer[i] & 0xF) + blockBuf[i] = (blockBuf[i] & 0xF0) + (buffer[i] & 0xF); + } + Free(src); + Free(buffer); +} + +static u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile) +{ + u16 i; + int firstEntry; + int temp; + u32 pal = metaTile >> 12; + i = 0; + firstEntry = *palIndexArrayBuf; + if (firstEntry != pal) + { + if (firstEntry == 0xFF) + { + *palIndexArrayBuf = pal; + } + else + { + while (++i < 16) + { + temp = palIndexArrayBuf[i]; + if (temp == pal) + break; + if (temp == 0xFF) + { + palIndexArrayBuf[i] = pal; + break; + } + } + } + } + return (0xF - i); +} + +static void TeachyTvLoadMapPalette(const struct MapData * mStruct, const u8 * palIndexArray) +{ + u8 i; + const struct Tileset * ts; + u16 * dest; + + for (i = 0; i < 16; i++) + { + if (palIndexArray[i] == 0xFF) + break; + if (palIndexArray[i] > 6) + dest = (u16 *)mStruct->secondaryTileset->palettes + 0x10 * palIndexArray[i]; + else + dest = (u16 *)mStruct->primaryTileset->palettes + 0x10 * palIndexArray[i]; + LoadPalette(dest, 0x10 * (15 - i), 0x20); + } +} diff --git a/src/text.c b/src/text.c index 874e12fd5..f84420352 100644 --- a/src/text.c +++ b/src/text.c @@ -5,13 +5,13 @@ #include "window.h" #include "text.h" #include "sprite.h" +#include "blit.h" extern u8 gGlyphInfo[0x90]; extern u8 gUnknown_203ADFA; -extern u16 gUnknown_841F408[]; -extern const struct OamData gUnknown_83AC9D0; +extern u16 gTMCaseMainWindowPalette[]; +extern const struct OamData gOamData_83AC9D0; -extern void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); extern void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height); extern void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight); extern u8 GetKeypadIconWidth(u8 keypadIconId); @@ -52,7 +52,7 @@ const struct SpriteSheet gUnknown_81EA68C[] = const struct SpritePalette gUnknown_81EA6A4[] = { - {gUnknown_841F408, 0x8000}, + {gTMCaseMainWindowPalette, 0x8000}, {NULL} }; @@ -60,7 +60,7 @@ const struct SpriteTemplate gUnknown_81EA6B4 = { .tileTag = 0x8000, .paletteTag = 0x8000, - .oam = &gUnknown_83AC9D0, + .oam = &gOamData_83AC9D0, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -453,7 +453,7 @@ void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; - if (gTextFlags.flag_2 == 1) + if (gTextFlags.autoScroll == 1) subStruct->frames_visible_counter = 0; else { @@ -467,7 +467,7 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter) struct TextPrinterSubStruct *subStruct = &textPrinter->sub_union.sub; const u8 *arrowTiles; - if (gTextFlags.flag_2 == 0) + if (gTextFlags.autoScroll == 0) { if (subStruct->field_1 != 0) { @@ -483,7 +483,7 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter) 10, 12); - switch (gTextFlags.flag_1) + switch (gTextFlags.useAlternateDownArrow) { case 0: default: @@ -544,7 +544,7 @@ bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter) bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) { bool8 result = FALSE; - if (gTextFlags.flag_2 != 0) + if (gTextFlags.autoScroll != 0) { result = TextPrinterWaitAutoMode(textPrinter); } @@ -563,7 +563,7 @@ bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) bool16 TextPrinterWait(struct TextPrinter *textPrinter) { bool16 result = FALSE; - if (gTextFlags.flag_2 != 0) + if (gTextFlags.autoScroll != 0) { result = TextPrinterWaitAutoMode(textPrinter); } @@ -591,7 +591,7 @@ void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *c FillWindowPixelRect(windowId, (bgColor << 4) | bgColor, x, y, 10, 12); if (drawArrow == 0) { - switch (gTextFlags.flag_1) + switch (gTextFlags.useAlternateDownArrow) { case 0: default: @@ -1791,7 +1791,7 @@ void sub_80062B0(struct Sprite *sprite) } } -u8 sub_8006300(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority) +u8 CreateTextCursorSpriteForOakSpeech(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority) { u8 spriteId; LoadSpriteSheet(&gUnknown_81EA68C[sheetId & 1]); diff --git a/src/text_printer.c b/src/text_printer.c index 04de1af4c..6c124b448 100644 --- a/src/text_printer.c +++ b/src/text_printer.c @@ -48,11 +48,11 @@ void DeactivateAllTextPrinters (void) sTextPrinters[printer].sub_union.sub.active = 0; } -u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)) +u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)) { - struct TextSubPrinter subPrinter; + struct TextPrinterTemplate subPrinter; - subPrinter.current_text_offset = str; + subPrinter.currentChar = str; subPrinter.windowId = windowId; subPrinter.fontId = fontId; subPrinter.x = x; @@ -61,14 +61,14 @@ u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 subPrinter.currentY = y; subPrinter.letterSpacing = gFonts[fontId].letterSpacing; subPrinter.lineSpacing = gFonts[fontId].lineSpacing; - subPrinter.fontColor_l = gFonts[fontId].fontColor_l; - subPrinter.fontColor_h = gFonts[fontId].fontColor_h; + subPrinter.unk = gFonts[fontId].unk; + subPrinter.fgColor = gFonts[fontId].fgColor; subPrinter.bgColor = gFonts[fontId].bgColor; subPrinter.shadowColor = gFonts[fontId].shadowColor; return AddTextPrinter(&subPrinter, speed, callback); } -bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16)) +bool16 AddTextPrinter(struct TextPrinterTemplate *textSubPrinter, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)) { int i; u16 j; @@ -92,7 +92,7 @@ bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*ca sTempTextPrinter.minLetterSpacing = 0; sTempTextPrinter.japanese = 0; - GenerateFontHalfRowLookupTable(textSubPrinter->fontColor_h, textSubPrinter->bgColor, textSubPrinter->shadowColor); + GenerateFontHalfRowLookupTable(textSubPrinter->fgColor, textSubPrinter->bgColor, textSubPrinter->shadowColor); if (speed != TEXT_SPEED_FF && speed != 0x0) { --sTempTextPrinter.text_speed; diff --git a/src/text_window.c b/src/text_window.c new file mode 100644 index 000000000..0c562b195 --- /dev/null +++ b/src/text_window.c @@ -0,0 +1,169 @@ +#include "global.h" +#include "bg.h" +#include "palette.h" +#include "text.h" +#include "window.h" +#include "text_window.h" +#include "text_window_graphics.h" +#include "quest_log.h" + +extern const u16 gUnknown_841F1C8[]; + +void sub_814FFC4(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx); + +void sub_814FD04(u8 bgId, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(bgId, gUnknown_84566A8, 0x280, destOffset); + LoadPalette(stdpal_get(2), palIdx, 32); +} + +void sub_814FD38(u8 bgId, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(bgId, gUnknown_841F1C8, 0x280, destOffset); + LoadPalette(stdpal_get(0), palIdx, 32); +} + +void sub_814FD6C(u8 bgId, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(bgId, gUnknown_8470B0C, 0x260, destOffset); + LoadPalette(stdpal_get(1), palIdx, 32); +} + +void sub_814FDA0(u8 bgId, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(bgId, gStdFrame0, 0x120, destOffset); + LoadPalette(stdpal_get(3), palIdx, 32); +} + +void sub_814FDD4(u8 bgId, u16 destOffset) +{ + LoadBgTiles(bgId, gStdFrame1, 0x280, destOffset); +} + +void sub_814FDF4(u8 bgId, u8 frameType, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(bgId, gUserFrames[frameType].tiles, 0x120, destOffset); + LoadPalette(gUserFrames[frameType].palette, palIdx, 32); +} + +void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palIdx) +{ + sub_814FFC4(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); +} + +void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_84566A8, 0x280, destOffset); + LoadPalette(stdpal_get(2), palIdx, 32); +} + +void TextWindow_SetBubbleFrame_841F1C8(u8 windowId, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_841F1C8, 0x280, destOffset); + LoadPalette(stdpal_get(0), palIdx, 32); +} + +void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_8470B0C, 0x260, destOffset); + LoadPalette(stdpal_get(1), palIdx, 32); +} + +void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset); + LoadPalette(stdpal_get(3), palIdx, 32); +} + +void sub_814FF6C(u8 windowId, u16 destOffset) +{ + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset); +} + +void sub_814FF98(u8 windowId, u16 destOffset) +{ + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame1, 0x280, destOffset); +} + +void sub_814FFC4(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx) +{ + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUserFrames[frameType].tiles, 0x120, destOffset); + LoadPalette(gUserFrames[frameType].palette, palIdx, 32); +} + +void TextWindow_SetUserSelectedFrame(u8 windowId, u16 destOffset, u8 palIdx) +{ + sub_814FFC4(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); +} + +void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum) +{ + u8 bgLayer = GetWindowAttribute(windowId, WINDOW_BG); + u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT); + u16 tilemapTop = GetWindowAttribute(windowId, WINDOW_TILEMAP_TOP); + u16 width = GetWindowAttribute(windowId, WINDOW_WIDTH); + u16 height = GetWindowAttribute(windowId, WINDOW_HEIGHT); + + FillBgTilemapBufferRect(bgLayer, tileNum + 0, tilemapLeft - 1, tilemapTop - 1, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 1, tilemapLeft, tilemapTop - 1, width, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 2, tilemapLeft + width, tilemapTop - 1, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 3, tilemapLeft - 1, tilemapTop, 1, height, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 5, tilemapLeft + width, tilemapTop, 1, height, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 6, tilemapLeft - 1, tilemapTop + height, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 7, tilemapLeft, tilemapTop + height, width, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 8, tilemapLeft + width, tilemapTop + height, 1, 1, palNum); +} + +void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum) +{ + u8 bgLayer = GetWindowAttribute(windowId, WINDOW_BG); + u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT); + u16 tilemapTop = GetWindowAttribute(windowId, WINDOW_TILEMAP_TOP); + u16 width = GetWindowAttribute(windowId, WINDOW_WIDTH); + u16 height = GetWindowAttribute(windowId, WINDOW_HEIGHT); + + FillBgTilemapBufferRect(bgLayer, tileNum + 0, tilemapLeft, tilemapTop, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 1, tilemapLeft + 1, tilemapTop, width - 2, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 2, tilemapLeft + width - 1, tilemapTop, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 3, tilemapLeft, tilemapTop + 1, 1, height - 2, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 5, tilemapLeft + width - 1, tilemapTop + 1, 1, height - 2, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 6, tilemapLeft, tilemapTop + height - 1, 1, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 7, tilemapLeft + 1, tilemapTop + height - 1, width - 2, 1, palNum); + FillBgTilemapBufferRect(bgLayer, tileNum + 8, tilemapLeft + width - 1, tilemapTop + height - 1, 1, 1, palNum); +} + +void rbox_fill_rectangle(u8 windowId) +{ + u8 bgLayer = GetWindowAttribute(windowId, WINDOW_BG); + u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT); + u16 tilemapTop = GetWindowAttribute(windowId, WINDOW_TILEMAP_TOP); + u16 width = GetWindowAttribute(windowId, WINDOW_WIDTH); + u16 height = GetWindowAttribute(windowId, WINDOW_HEIGHT); + + FillBgTilemapBufferRect(bgLayer, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0x11); +} + +const u16 *stdpal_get(u8 id) +{ + switch (id) + { + case 0: + id = 0; + break; + case 1: + id = 0x10; + break; + case 2: + id = 0x20; + break; + case 3: + id = 0x30; + break; + case 4: + default: + id = 0x40; + break; + } + + return (const u16 *)(gUnknown_8471DEC) + id; +} diff --git a/src/text_window_graphics.c b/src/text_window_graphics.c new file mode 100644 index 000000000..e16037a34 --- /dev/null +++ b/src/text_window_graphics.c @@ -0,0 +1,60 @@ +#include "global.h" +#include "text_window_graphics.h" + +const u16 gUnknown_8470B0C[] = INCBIN_U16("graphics/text_window/unk_8470B0C.4bpp"); + +static const u16 gUnknown_8470D6C[] = INCBIN_U16("graphics/text_window/unk_8470D6C.4bpp"); +static const u16 gUnknown_8470E8C[] = INCBIN_U16("graphics/text_window/unk_8470E8C.4bpp"); +static const u16 gUnk_Empty_Space_8470FAC[16] = {0}; +static const u16 gUnknown_8470FCC[] = INCBIN_U16("graphics/text_window/unk_8470FCC.4bpp"); +static const u16 gUnknown_84710EC[] = INCBIN_U16("graphics/text_window/unk_84710EC.4bpp"); +static const u16 gUnknown_847120C[] = INCBIN_U16("graphics/text_window/unk_847120C.4bpp"); +static const u16 gUnknown_847132C[] = INCBIN_U16("graphics/text_window/unk_847132C.4bpp"); +static const u16 gUnknown_847144C[] = INCBIN_U16("graphics/text_window/unk_847144C.4bpp"); +static const u16 gUnknown_847156C[] = INCBIN_U16("graphics/text_window/unk_847156C.4bpp"); +static const u16 gUnk_Empty_Space_847168C[16] = {0}; +static const u16 gUnknown_84716AC[] = INCBIN_U16("graphics/text_window/unk_84716AC.4bpp"); +static const u16 gUnknown_84717CC[] = INCBIN_U16("graphics/text_window/unk_84717CC.4bpp"); +static const u16 gUnk_Empty_Space_84718EC[16] = {0}; +static const u16 gUnknown_847190C[] = INCBIN_U16("graphics/text_window/unk_8470D6C.gbapal"); +static const u16 gUnknown_847192C[] = INCBIN_U16("graphics/text_window/unk_8470E8C.gbapal"); +static const u16 gUnknown_847194C[] = INCBIN_U16("graphics/text_window/unk_8470FCC.gbapal"); +static const u16 gUnknown_847196C[] = INCBIN_U16("graphics/text_window/unk_84710EC.gbapal"); +static const u16 gUnknown_847198C[] = INCBIN_U16("graphics/text_window/unk_847120C.gbapal"); +static const u16 gUnknown_84719AC[] = INCBIN_U16("graphics/text_window/unk_847132C.gbapal"); +static const u16 gUnknown_84719CC[] = INCBIN_U16("graphics/text_window/unk_847144C.gbapal"); +static const u16 gUnknown_84719EC[] = INCBIN_U16("graphics/text_window/unk_847156C.gbapal"); +static const u16 gUnknown_8471A0C[] = INCBIN_U16("graphics/text_window/unk_84716AC.gbapal"); +static const u16 gUnknown_8471A2C[] = INCBIN_U16("graphics/text_window/unk_84717CC.gbapal"); + +const u16 gStdFrame0[] = INCBIN_U16("graphics/text_window/unk_8471A4C.4bpp"); +const u16 gStdFrame1[] = INCBIN_U16("graphics/text_window/unk_8471B6C.4bpp"); + +const u16 gUnknown_8471DEC[][16] = { + INCBIN_U16("graphics/text_window/stdpal_0.gbapal"), + INCBIN_U16("graphics/text_window/stdpal_1.gbapal"), + INCBIN_U16("graphics/text_window/stdpal_2.gbapal"), + INCBIN_U16("graphics/text_window/stdpal_3.gbapal"), + INCBIN_U16("graphics/text_window/stdpal_4.gbapal") +}; + +const struct TextWindowGraphics gUserFrames[] = { + {gUnknown_8470D6C, gUnknown_847190C}, + {gUnknown_8470E8C, gUnknown_847192C}, + {gUnknown_8470FCC, gUnknown_847194C}, + {gUnknown_84710EC, gUnknown_847196C}, + {gUnknown_847120C, gUnknown_847198C}, + {gUnknown_847132C, gUnknown_84719AC}, + {gUnknown_847144C, gUnknown_84719CC}, + {gUnknown_847156C, gUnknown_84719EC}, + {gUnknown_84716AC, gUnknown_8471A0C}, + {gUnknown_84717CC, gUnknown_8471A2C} +}; // NELEMS = 10 + +const struct TextWindowGraphics * sub_8069788(u8 idx) +{ + if (idx >= 20) // if (idx >= NELEMS(gUserFrames)) + return &gUserFrames[0]; + else + return &gUserFrames[idx]; +} diff --git a/src/tm_case.c b/src/tm_case.c new file mode 100644 index 000000000..28aba57a0 --- /dev/null +++ b/src/tm_case.c @@ -0,0 +1,1537 @@ +#include "global.h" +#include "malloc.h" +#include "bg.h" +#include "decompress.h" +#include "gpu_regs.h" +#include "palette.h" +#include "graphics.h" +#include "task.h" +#include "text.h" +#include "text_window.h" +#include "menu.h" +#include "menu_helpers.h" +#include "new_menu_helpers.h" +#include "list_menu.h" +#include "item.h" +#include "item_menu.h" +#include "link.h" +#include "money.h" +#include "shop.h" +#include "teachy_tv.h" +#include "pokemon_storage_system.h" +#include "string_util.h" +#include "party_menu.h" +#include "data2.h" +#include "scanline_effect.h" +#include "sound.h" +#include "strings.h" +#include "tm_case.h" +#include "menu_indicators.h" +#include "constants/items.h" +#include "constants/songs.h" + +#define TM_CASE_TM_TAG 400 + +struct UnkStruct_203B10C +{ + void (* savedCallback)(void); + u8 tmCaseMenuType; + u8 unk_05; + u8 unk_06; + u16 selectedRow; + u16 scrollOffset; +}; + +struct UnkStruct_203B118 +{ + void (* savedCallback)(void); + u8 tmSpriteId; + u8 maxTMsShown; + u8 numTMs; + u8 contextMenuWindowId; + u8 scrollIndicatorArrowPairId; + u16 currItem; + const u8 * menuActionIndices; + u8 numMenuActions; + s16 seqId; + u8 filler_14[8]; +}; + +struct UnkStruct_203B11C +{ + struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT]; + struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT]; + u16 unk_160; + u16 unk_162; +}; + +static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {}; +static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL; +static EWRAM_DATA struct UnkStruct_203B11C * sPokeDudePackBackup = NULL; +static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer +static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL; +static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL; +static EWRAM_DATA u16 * sTMSpritePaletteBuffer = NULL; + +static void CB2_SetUpTMCaseUI_Blocking(void); +static bool8 DoSetUpTMCaseUI(void); +static void ResetBufferPointers_NoFree(void); +static void LoadBGTemplates(void); +static bool8 HandleLoadTMCaseGraphicsAndPalettes(void); +static void CreateTMCaseListMenuBuffers(void); +static void InitTMCaseListMenuItems(void); +static void GetTMNumberAndMoveString(u8 * dest, u16 itemId); +static void TMCase_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void TMCase_ItemPrintFunc(u8 windowId, s32 itemId, u8 y); +static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex); +static void PrintListMenuCursorAt_WithColorIdx(u8 a0, u8 a1); +static void CreateTMCaseScrollIndicatorArrowPair_Main(void); +static void TMCaseSetup_GetTMCount(void); +static void TMCaseSetup_InitListMenuPositions(void); +static void TMCaseSetup_UpdateVisualMenuOffset(void); +static void Task_FadeOutAndCloseTMCase(u8 taskId); +static void Task_TMCaseMain(u8 taskId); +static void Task_SelectTMAction_FromFieldBag(u8 taskId); +static void Task_TMContextMenu_HandleInput(u8 taskId); +static void TMHMContextMenuAction_Use(u8 taskId); +static void TMHMContextMenuAction_Give(u8 taskId); +static void PrintError_ThereIsNoPokemon(u8 taskId); +static void PrintError_ItemCantBeHeld(u8 taskId); +static void Task_WaitButtonAfterErrorPrint(u8 taskId); +static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId); +static void TMHMContextMenuAction_Exit(u8 taskId); +static void Task_SelectTMAction_Type1(u8 taskId); +static void Task_SelectTMAction_Type3(u8 taskId); +static void Task_SelectTMAction_FromSellMenu(u8 taskId); +static void Task_AskConfirmSaleWithAmount(u8 taskId); +static void Task_PlaceYesNoBox(u8 taskId); +static void Task_SaleOfTMsCancelled(u8 taskId); +static void Task_InitQuantitySelectUI(u8 taskId); +static void SellTM_PrintQuantityAndSalePrice(s16 quantity, s32 value); +static void Task_QuantitySelect_HandleInput(u8 taskId); +static void Task_PrintSaleConfirmedText(u8 taskId); +static void Task_DoSaleOfTMs(u8 taskId); +static void Task_AfterSale_ReturnToList(u8 taskId); +static void Task_TMCaseDude1(u8 taskId); +static void Task_TMCaseDude_Playback(u8 taskId); +static void InitWindowTemplatesAndPals(void); +static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); +static void TMCase_SetWindowBorder1(u8 windowId); +static void TMCase_SetWindowBorder2(u8 windowId); +static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func); +static void PrintStringTMCaseOnWindow3(void); +static void DrawMoveInfoUIMarkers(void); +static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId); +static void PlaceHMTileInWindow(u8 windowId, u8 x, u8 y); +static void HandlePrintMoneyOnHand(void); +static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable * ptrs); +static u8 AddTMContextMenu(u8 * a0, u8 a1); +static void RemoveTMContextMenu(u8 * a0); +static u8 CreateTMSprite(u16 itemId); +static void SetTMSpriteAnim(struct Sprite * sprite, u8 var); +static void TintTMSpriteByType(u8 type); +static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var); +static void InitSelectedTMSpriteData(u8 a0, u16 itemId); +static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite); +static void LoadTMTypePalettes(void); + +static const struct BgTemplate sBGTemplates[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x000 + }, { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + }, { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x000 + } +}; + +static void (*const sSelectTMActionTasks[])(u8 taskId) = { + Task_SelectTMAction_FromFieldBag, + Task_SelectTMAction_Type1, + Task_SelectTMAction_FromSellMenu, + Task_SelectTMAction_Type3 +}; + +static const struct MenuAction sMenuActions_UseGiveExit[] = { + {gOtherText_Use, TMHMContextMenuAction_Use }, + {gOtherText_Give, TMHMContextMenuAction_Give}, + {gOtherText_Exit, TMHMContextMenuAction_Exit}, +}; + +static const u8 sMenuActionIndices_Field[] = {0, 1, 2}; +static const u8 sMenuActionIndices_UnionRoom[] = {1, 2}; +static const struct YesNoFuncTable sYesNoFuncTable = {Task_PrintSaleConfirmedText, Task_SaleOfTMsCancelled}; + +static const u8 sText_ClearTo18[] = _("{CLEAR_TO 18}"); +static const u8 sText_SingleSpace[] = _(" "); + +static ALIGNED(4) const u16 sPal3Override[] = {RGB(8, 8, 8), RGB(30, 16, 6)}; + +static const struct TextColor sTextColors[] = { + {0, 1, 2}, + {0, 2, 3}, + {0, 3, 6}, + {0, 14, 10} +}; + +static const struct WindowTemplate sWindowTemplates[] = { + {0x00, 0x0a, 0x01, 0x13, 0x0a, 0x0f, 0x0081}, + {0x00, 0x0c, 0x0c, 0x12, 0x08, 0x0a, 0x013f}, + {0x01, 0x05, 0x0f, 0x0f, 0x04, 0x0d, 0x01f9}, + {0x00, 0x00, 0x01, 0x0a, 0x02, 0x0f, 0x0235}, + {0x00, 0x01, 0x0d, 0x05, 0x06, 0x0c, 0x0249}, + {0x00, 0x07, 0x0d, 0x05, 0x06, 0x0c, 0x0267}, + {0x01, 0x02, 0x0f, 0x1a, 0x04, 0x0b, 0x0285}, + {0x01, 0x11, 0x09, 0x0c, 0x04, 0x0f, 0x02ed}, + {0x01, 0x01, 0x01, 0x08, 0x03, 0x0d, 0x031d}, + DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sYesNoWindowTemplate = {0x01, 0x15, 0x09, 0x06, 0x04, 0x0f, 0x0335}; + +static const struct WindowTemplate sTMContextWindowTemplates[] = { + {0x01, 0x16, 0x0d, 0x07, 0x06, 0x0f, 0x01cf}, + {0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01cf} +}; + +static const struct OamData sTMSpriteOamData = { + .size = 2, + .priority = 2 +}; + +static const union AnimCmd sTMSpriteAnim0[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END +}; + +static const union AnimCmd sTMSpriteAnim1[] = { + ANIMCMD_FRAME(16, 0), + ANIMCMD_END +}; + +static const union AnimCmd *const sTMSpriteAnims[] = { + sTMSpriteAnim0, + sTMSpriteAnim1 +}; + +static const struct CompressedSpriteSheet sTMSpriteSheet = { + (const void *)gTMCase_TMSpriteGfx, + 0x400, + TM_CASE_TM_TAG +}; + +static const struct SpriteTemplate sTMSpriteTemplate = { + TM_CASE_TM_TAG, + TM_CASE_TM_TAG, + &sTMSpriteOamData, + sTMSpriteAnims, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +static const u16 sTMSpritePaletteOffsetByType[] = { + [TYPE_NORMAL] = 0x000, + [TYPE_FIRE] = 0x010, + [TYPE_WATER] = 0x020, + [TYPE_GRASS] = 0x030, + [TYPE_ELECTRIC] = 0x040, + [TYPE_ROCK] = 0x050, + [TYPE_GROUND] = 0x060, + [TYPE_ICE] = 0x070, + [TYPE_FLYING] = 0x080, + [TYPE_FIGHTING] = 0x090, + [TYPE_GHOST] = 0x0a0, + [TYPE_BUG] = 0x0b0, + [TYPE_POISON] = 0x0c0, + [TYPE_PSYCHIC] = 0x0d0, + [TYPE_STEEL] = 0x0e0, + [TYPE_DARK] = 0x0f0, + [TYPE_DRAGON] = 0x100 +}; + +void InitTMCase(u8 type, void (* callback)(void), u8 a2) +{ + ResetBufferPointers_NoFree(); + sTMCaseDynamicResources = Alloc(sizeof(struct UnkStruct_203B118)); + sTMCaseDynamicResources->savedCallback = 0; + sTMCaseDynamicResources->scrollIndicatorArrowPairId = 0xFF; + sTMCaseDynamicResources->contextMenuWindowId = 0xFF; + if (type != 5) + sTMCaseStaticResources.tmCaseMenuType = type; + if (callback != NULL) + sTMCaseStaticResources.savedCallback = callback; + if (a2 != 0xFF) + sTMCaseStaticResources.unk_05 = a2; + gTextFlags.autoScroll = FALSE; + SetMainCallback2(CB2_SetUpTMCaseUI_Blocking); +} + +static void CB2_Idle(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void VBlankCB_Idle(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void CB2_SetUpTMCaseUI_Blocking(void) +{ + while (1) + { + if (sub_80BF72C() == TRUE) + break; + if (DoSetUpTMCaseUI() == TRUE) + break; + if (MenuHelpers_LinkSomething() == TRUE) + break; + } +} + +static bool8 DoSetUpTMCaseUI(void) +{ + u8 taskId; + + switch (gMain.state) + { + case 0: + VblankHblankHandlerSetZero(); + clear_scheduled_bg_copies_to_vram(); + gMain.state++; + break; + case 1: + ScanlineEffect_Stop(); + gMain.state++; + break; + case 2: + FreeAllSpritePalettes(); + gMain.state++; + break; + case 3: + ResetPaletteFade(); + gMain.state++; + break; + case 4: + ResetSpriteData(); + gMain.state++; + break; + case 5: + ResetTasks(); + gMain.state++; + break; + case 6: + LoadBGTemplates(); + sTMCaseDynamicResources->seqId = 0; + gMain.state++; + break; + case 7: + InitWindowTemplatesAndPals(); + gMain.state++; + break; + case 8: + if (HandleLoadTMCaseGraphicsAndPalettes()) + gMain.state++; + break; + case 9: + SortPocketAndPlaceHMsFirst(&gBagPockets[POCKET_TM_CASE - 1]); + gMain.state++; + break; + case 10: + TMCaseSetup_GetTMCount(); + TMCaseSetup_InitListMenuPositions(); + TMCaseSetup_UpdateVisualMenuOffset(); + gMain.state++; + break; + case 11: + DrawMoveInfoUIMarkers(); + gMain.state++; + break; + case 12: + CreateTMCaseListMenuBuffers(); + InitTMCaseListMenuItems(); + gMain.state++; + break; + case 13: + PrintStringTMCaseOnWindow3(); + gMain.state++; + break; + case 14: + if (sTMCaseStaticResources.tmCaseMenuType == 4) + taskId = CreateTask(Task_TMCaseDude1, 0); + else + taskId = CreateTask(Task_TMCaseMain, 0); + gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow); + gMain.state++; + break; + case 15: + CreateTMCaseScrollIndicatorArrowPair_Main(); + gMain.state++; + break; + case 16: + sTMCaseDynamicResources->tmSpriteId = CreateTMSprite(BagGetItemIdByPocketPosition(POCKET_TM_CASE, sTMCaseStaticResources.scrollOffset + sTMCaseStaticResources.selectedRow)); + gMain.state++; + break; + case 17: + BlendPalettes(0xFFFFFFFF, 16, 0); + gMain.state++; + break; + case 18: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + gMain.state++; + break; + default: + SetVBlankCallback(VBlankCB_Idle); + SetMainCallback2(CB2_Idle); + return TRUE; + } + + return FALSE; +} + +static void ResetBufferPointers_NoFree(void) +{ + sTMCaseDynamicResources = NULL; + sTilemapBuffer = NULL; + sListMenuItemsBuffer = NULL; + sListMenuStringsBuffer = NULL; + sTMSpritePaletteBuffer = NULL; +} + +static void LoadBGTemplates(void) +{ + void ** ptr; + InitBgReg(); + ptr = &sTilemapBuffer; + *ptr = AllocZeroed(0x800); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBGTemplates, NELEMS(sBGTemplates)); + SetBgTilemapBuffer(2, *ptr); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + ShowBg(0); + ShowBg(1); + ShowBg(2); +} + +static bool8 HandleLoadTMCaseGraphicsAndPalettes(void) +{ + switch (sTMCaseDynamicResources->seqId) + { + case 0: + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(1, gUnknown_8E845D8, 0, 0, 0); + sTMCaseDynamicResources->seqId++; + break; + case 1: + if (free_temp_tile_data_buffers_if_possible() != TRUE) + { + LZDecompressWram(gUnknown_8E84A24, sTilemapBuffer); + sTMCaseDynamicResources->seqId++; + } + break; + case 2: + LZDecompressWram(gUnknown_8E84B70, GetBgTilemapBuffer(1)); + sTMCaseDynamicResources->seqId++; + break; + case 3: + if (gSaveBlock2Ptr->playerGender == MALE) + LoadCompressedPalette(gUnknown_8E84CB0, 0, 0x80); + else + LoadCompressedPalette(gUnknown_8E84D20, 0, 0x80); + sTMCaseDynamicResources->seqId++; + break; + case 4: + LoadCompressedObjectPic(&sTMSpriteSheet); + sTMCaseDynamicResources->seqId++; + break; + default: + LoadTMTypePalettes(); + sTMCaseDynamicResources->seqId = 0; + return TRUE; + } + + return FALSE; +} + +static void CreateTMCaseListMenuBuffers(void) +{ + struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1]; + sListMenuItemsBuffer = Alloc((pocket->capacity + 1) * sizeof(struct ListMenuItem)); + sListMenuStringsBuffer = Alloc(sTMCaseDynamicResources->numTMs * 29); +} + +static void InitTMCaseListMenuItems(void) +{ + struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1]; + u16 i; + + for (i = 0; i < sTMCaseDynamicResources->numTMs; i++) + { + GetTMNumberAndMoveString(sListMenuStringsBuffer[i], pocket->itemSlots[i].itemId); + sListMenuItemsBuffer[i].label = sListMenuStringsBuffer[i]; + sListMenuItemsBuffer[i].index = i; + } + sListMenuItemsBuffer[i].label = gText_Close; + sListMenuItemsBuffer[i].index = -2; + gMultiuseListMenuTemplate.items = sListMenuItemsBuffer; + gMultiuseListMenuTemplate.totalItems = sTMCaseDynamicResources->numTMs + 1; + gMultiuseListMenuTemplate.windowId = 0; + gMultiuseListMenuTemplate.header_X = 0; + gMultiuseListMenuTemplate.item_X = 8; + gMultiuseListMenuTemplate.cursor_X = 0; + gMultiuseListMenuTemplate.lettersSpacing = 0; + gMultiuseListMenuTemplate.itemVerticalPadding = 2; + gMultiuseListMenuTemplate.upText_Y = 2; + gMultiuseListMenuTemplate.maxShowed = sTMCaseDynamicResources->maxTMsShown; + gMultiuseListMenuTemplate.fontId = 2; + gMultiuseListMenuTemplate.cursorPal = 2; + gMultiuseListMenuTemplate.fillValue = 0; + gMultiuseListMenuTemplate.cursorShadowPal = 3; + gMultiuseListMenuTemplate.moveCursorFunc = TMCase_MoveCursorFunc; + gMultiuseListMenuTemplate.itemPrintFunc = TMCase_ItemPrintFunc; + gMultiuseListMenuTemplate.cursorKind = 0; + gMultiuseListMenuTemplate.scrollMultiple = 0; +} + +static void GetTMNumberAndMoveString(u8 * dest, u16 itemId) +{ + StringCopy(gStringVar4, gText_FontSize0); + if (itemId >= ITEM_HM01) + { + StringAppend(gStringVar4, sText_ClearTo18); + StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01); + ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_HM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 1); + StringAppend(gStringVar4, gStringVar1); + } + else + { + StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01); + ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_TM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 2); + StringAppend(gStringVar4, gStringVar1); + } + StringAppend(gStringVar4, sText_SingleSpace); + StringAppend(gStringVar4, gText_FontSize2); + StringAppend(gStringVar4, gMoveNames[ItemIdToBattleMoveId(itemId)]); + StringCopy(dest, gStringVar4); +} + +static void TMCase_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + u16 itemId; + + if (itemIndex == -2) + itemId = 0; + else + itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemIndex); + + if (onInit != TRUE) + { + PlaySE(SE_SELECT); + InitSelectedTMSpriteData(sTMCaseDynamicResources->tmSpriteId, itemId); + } + TMCase_MoveCursor_UpdatePrintedDescription(itemIndex); + TMCase_MoveCursor_UpdatePrintedTMInfo(itemId); +} + +static void TMCase_ItemPrintFunc(u8 windowId, s32 itemId, u8 y) +{ + if (itemId != -2) + { + if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemId))) + { + ConvertIntToDecimalStringN(gStringVar1, BagGetQuantityByPocketPosition(POCKET_TM_CASE, itemId), STR_CONV_MODE_RIGHT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + AddTextPrinterParameterized_ColorByIndex(windowId, 0, gStringVar4, 0x7E, y, 0, 0, 0xFF, 1); + } + else + { + PlaceHMTileInWindow(windowId, 8, y); + } + } +} + +static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex) +{ + const u8 * str; + if (itemIndex != -2) + { + str = ItemId_GetDescription(BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemIndex)); + } + else + { + str = gText_TMCaseWillBePutAway; + } + FillWindowPixelBuffer(1, 0); + AddTextPrinterParameterized_ColorByIndex(1, 2, str, 2, 3, 1, 0, 0, 0); +} + +static void FillBG2RowWithPalette_2timesNplus1(s32 a0) +{ + SetBgRectPal(2, 0, 12, 30, 8, 2 * a0 + 1); + schedule_bg_copy_tilemap_to_vram(2); +} + +static void PrintListMenuCursorByID_WithColorIdx(u8 a0, u8 a1) +{ + PrintListMenuCursorAt_WithColorIdx(ListMenuGetYCoordForPrintingArrowCursor(a0), a1); +} + +static void PrintListMenuCursorAt_WithColorIdx(u8 a0, u8 a1) +{ + if (a1 == 0xFF) + { + FillWindowPixelRect(0, 0, 0, a0, GetFontAttribute(2, 0), GetFontAttribute(2, 1)); + CopyWindowToVram(0, 2); + } + else + { + AddTextPrinterParameterized_ColorByIndex(0, 2, gFameCheckerText_ListMenuCursor, 0, a0, 0, 0, 0, a1); + } +} + +static void CreateTMCaseScrollIndicatorArrowPair_Main(void) +{ + sTMCaseDynamicResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParameterized(2, 0xA0, 0x08, 0x58, sTMCaseDynamicResources->numTMs - sTMCaseDynamicResources->maxTMsShown + 1, 0x6E, 0x6E, &sTMCaseStaticResources.scrollOffset); +} + +static void CreateTMCaseScrollIndicatorArrowPair_SellQuantitySelect(void) +{ + sTMCaseDynamicResources->currItem = 1; + sTMCaseDynamicResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParameterized(2, 0x98, 0x48, 0x68, 2, 0x6E, 0x6E, &sTMCaseDynamicResources->currItem); +} + +static void RemoveTMCaseScrollIndicatorArrowPair(void) +{ + if (sTMCaseDynamicResources->scrollIndicatorArrowPairId != 0xFF) + { + RemoveScrollIndicatorArrowPair(sTMCaseDynamicResources->scrollIndicatorArrowPairId); + sTMCaseDynamicResources->scrollIndicatorArrowPairId = 0xFF; + } +} + +void ResetTMCaseCursorPos(void) +{ + sTMCaseStaticResources.selectedRow = 0; + sTMCaseStaticResources.scrollOffset = 0; +} + +static void TMCaseSetup_GetTMCount(void) +{ + struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1]; + u16 i; + + BagPocketCompaction(pocket->itemSlots, pocket->capacity); + sTMCaseDynamicResources->numTMs = 0; + for (i = 0; i < pocket->capacity; i++) + { + if (pocket->itemSlots[i].itemId == ITEM_NONE) + break; + sTMCaseDynamicResources->numTMs++; + } + sTMCaseDynamicResources->maxTMsShown = min(sTMCaseDynamicResources->numTMs + 1, 5); +} + +static void TMCaseSetup_InitListMenuPositions(void) +{ + if (sTMCaseStaticResources.scrollOffset != 0) + { + if (sTMCaseStaticResources.scrollOffset + sTMCaseDynamicResources->maxTMsShown > sTMCaseDynamicResources->numTMs + 1) + sTMCaseStaticResources.scrollOffset = sTMCaseDynamicResources->numTMs + 1 - sTMCaseDynamicResources->maxTMsShown; + } + if (sTMCaseStaticResources.scrollOffset + sTMCaseStaticResources.selectedRow >= sTMCaseDynamicResources->numTMs + 1) + { + if (sTMCaseDynamicResources->numTMs + 1 < 2) + sTMCaseStaticResources.selectedRow = 0; + else + sTMCaseStaticResources.selectedRow = sTMCaseDynamicResources->numTMs; + } +} + +static void TMCaseSetup_UpdateVisualMenuOffset(void) +{ + u8 i; + if (sTMCaseStaticResources.selectedRow > 3) + { + for (i = 0; i <= sTMCaseStaticResources.selectedRow - 3 && sTMCaseStaticResources.scrollOffset + sTMCaseDynamicResources->maxTMsShown != sTMCaseDynamicResources->numTMs + 1; i++) + { + do {} while (0); + sTMCaseStaticResources.selectedRow--; + sTMCaseStaticResources.scrollOffset++; + } + } +} + +static void DestroyTMCaseBuffers(void) +{ + if (sTMCaseDynamicResources != NULL) + Free(sTMCaseDynamicResources); + if (sTilemapBuffer != NULL) + Free(sTilemapBuffer); + if (sListMenuItemsBuffer != NULL) + Free(sListMenuItemsBuffer); + if (sListMenuStringsBuffer != NULL) + Free(sListMenuStringsBuffer); + if (sTMSpritePaletteBuffer != NULL) + Free(sTMSpritePaletteBuffer); + FreeAllWindowBuffers(); +} + +static void Task_BeginFadeOutFromTMCase(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_FadeOutAndCloseTMCase; +} + +static void Task_FadeOutAndCloseTMCase(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!gPaletteFade.active) + { + DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); + if (sTMCaseDynamicResources->savedCallback != NULL) + SetMainCallback2(sTMCaseDynamicResources->savedCallback); + else + SetMainCallback2(sTMCaseStaticResources.savedCallback); + RemoveTMCaseScrollIndicatorArrowPair(); + DestroyTMCaseBuffers(); + DestroyTask(taskId); + } +} + +static void Task_TMCaseMain(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + s32 input; + + if (!gPaletteFade.active) + { + if (sub_80BF72C() != TRUE) + { + input = ListMenuHandleInput(data[0]); + ListMenuGetScrollAndRow(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); + if (JOY_NEW(SELECT_BUTTON) && sTMCaseStaticResources.unk_05 == 1) + { + PlaySE(SE_SELECT); + gSpecialVar_ItemId = ITEM_NONE; + Task_BeginFadeOutFromTMCase(taskId); + } + else + { + switch (input) + { + case -1: + break; + case -2: + PlaySE(SE_SELECT); + gSpecialVar_ItemId = 0; + Task_BeginFadeOutFromTMCase(taskId); + break; + default: + PlaySE(SE_SELECT); + FillBG2RowWithPalette_2timesNplus1(1); + RemoveTMCaseScrollIndicatorArrowPair(); + PrintListMenuCursorByID_WithColorIdx(data[0], 2); + data[1] = input; + data[2] = BagGetQuantityByPocketPosition(POCKET_TM_CASE, input); + gSpecialVar_ItemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, input); + gTasks[taskId].func = sSelectTMActionTasks[sTMCaseStaticResources.tmCaseMenuType]; + break; + } + } + } + } +} + +static void Subtask_ReturnToTMCaseMain(u8 taskId) +{ + FillBG2RowWithPalette_2timesNplus1(0); + CreateTMCaseScrollIndicatorArrowPair_Main(); + gTasks[taskId].func = Task_TMCaseMain; +} + +static void Task_SelectTMAction_FromFieldBag(u8 taskId) +{ + u8 * strbuf; + TMCase_SetWindowBorder2(2); + if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE) + { + AddTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, 0); + sTMCaseDynamicResources->menuActionIndices = sMenuActionIndices_Field; + sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_Field); + } + else + { + AddTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, 1); + sTMCaseDynamicResources->menuActionIndices = sMenuActionIndices_UnionRoom; + sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_UnionRoom); + } + AddItemMenuActionTextPrinters(sTMCaseDynamicResources->contextMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 0, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, sMenuActions_UseGiveExit, sTMCaseDynamicResources->menuActionIndices); + ProgramAndPlaceMenuCursorOnWindow(sTMCaseDynamicResources->contextMenuWindowId, 2, 0, 2, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, 0); + strbuf = Alloc(256); + GetTMNumberAndMoveString(strbuf, gSpecialVar_ItemId); + StringAppend(strbuf, gText_IsSelected); + AddTextPrinterParameterized_ColorByIndex(2, 2, strbuf, 0, 2, 1, 0, 0, 1); + Free(strbuf); + if (itemid_is_unique(gSpecialVar_ItemId)) + { + PlaceHMTileInWindow(2, 0, 2); + CopyWindowToVram(2, 2); + } + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + gTasks[taskId].func = Task_TMContextMenu_HandleInput; +} + +static void Task_TMContextMenu_HandleInput(u8 taskId) +{ + s8 input; + + if (sub_80BF72C() != TRUE) + { + input = ProcessMenuInputNoWrapAround(); + switch (input) + { + case -1: + PlaySE(SE_SELECT); + sMenuActions_UseGiveExit[sTMCaseDynamicResources->menuActionIndices[sTMCaseDynamicResources->numMenuActions - 1]].func.void_u8(taskId); + break; + case -2: + break; + default: + PlaySE(SE_SELECT); + sMenuActions_UseGiveExit[sTMCaseDynamicResources->menuActionIndices[input]].func.void_u8(taskId); + break; + } + } +} + +static void TMHMContextMenuAction_Use(u8 taskId) +{ + RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId); + ClearMenuWindow(2, 0); + ClearWindowTilemap(2); + PutWindowTilemap(0); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + if (CalculatePlayerPartyCount() == 0) + { + PrintError_ThereIsNoPokemon(taskId); + } + else + { + gUnknown_3005E98 = sub_8125B40; + sTMCaseDynamicResources->savedCallback = sub_8124C8C; + Task_BeginFadeOutFromTMCase(taskId); + } +} + +static void TMHMContextMenuAction_Give(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u16 itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]); + RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId); + ClearMenuWindow(2, 0); + ClearWindowTilemap(2); + PutWindowTilemap(1); + PutWindowTilemap(4); + PutWindowTilemap(5); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + if (!itemid_is_unique(itemId)) + { + if (CalculatePlayerPartyCount() == 0) + { + PrintError_ThereIsNoPokemon(taskId); + } + else + { + sTMCaseDynamicResources->savedCallback = sub_8126EDC; + Task_BeginFadeOutFromTMCase(taskId); + } + } + else + { + PrintError_ItemCantBeHeld(taskId); + } +} + +static void PrintError_ThereIsNoPokemon(u8 taskId) +{ + TMCase_PrintMessageWithFollowupTask(taskId, 2, gText_ThereIsNoPokemon, Task_WaitButtonAfterErrorPrint); +} + +static void PrintError_ItemCantBeHeld(u8 taskId) +{ + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_ItemCantBeHeld); + TMCase_PrintMessageWithFollowupTask(taskId, 2, gStringVar4, Task_WaitButtonAfterErrorPrint); +} + +static void Task_WaitButtonAfterErrorPrint(u8 taskId) +{ + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + Subtask_CloseContextMenuAndReturnToMain(taskId); + } +} + +static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow); + PrintListMenuCursorByID_WithColorIdx(data[0], 1); + ClearMenuWindow_BorderThickness2(6, 0); + ClearWindowTilemap(6); + PutWindowTilemap(1); + PutWindowTilemap(4); + PutWindowTilemap(5); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + Subtask_ReturnToTMCaseMain(taskId); +} + +static void TMHMContextMenuAction_Exit(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId); + ClearMenuWindow(2, 0); + ClearWindowTilemap(2); + PutWindowTilemap(0); + PrintListMenuCursorByID_WithColorIdx(data[0], 1); + PutWindowTilemap(1); + PutWindowTilemap(4); + PutWindowTilemap(5); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + Subtask_ReturnToTMCaseMain(taskId); +} + +static void Task_SelectTMAction_Type1(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]))) + { + sTMCaseDynamicResources->savedCallback = c2_8123744; + Task_BeginFadeOutFromTMCase(taskId); + } + else + { + PrintError_ItemCantBeHeld(taskId); + } +} + +static void Task_SelectTMAction_Type3(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]))) + { + sTMCaseDynamicResources->savedCallback = sub_808CE60; + Task_BeginFadeOutFromTMCase(taskId); + } + else + { + PrintError_ItemCantBeHeld(taskId); + } +} + +static void Task_SelectTMAction_FromSellMenu(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (itemid_get_market_price(gSpecialVar_ItemId) == 0) + { + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat); + TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain); + } + else + { + data[8] = 1; + if (data[2] == 1) + { + HandlePrintMoneyOnHand(); + Task_AskConfirmSaleWithAmount(taskId); + } + else + { + if (data[2] > 99) + data[2] = 99; + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell); + TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_InitQuantitySelectUI); + } + } +} + +static void Task_AskConfirmSaleWithAmount(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay); + TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_PlaceYesNoBox); +} + +static void Task_PlaceYesNoBox(u8 taskId) +{ + HandleCreateYesNoMenu(taskId, &sYesNoFuncTable); +} + +static void Task_SaleOfTMsCancelled(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + ClearMenuWindow(8, 0); + ClearMenuWindow_BorderThickness2(6, 0); + PutWindowTilemap(0); + PutWindowTilemap(1); + PutWindowTilemap(3); + PutWindowTilemap(4); + PutWindowTilemap(5); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + PrintListMenuCursorByID_WithColorIdx(data[0], 1); + Subtask_ReturnToTMCaseMain(taskId); +} + +static void Task_InitQuantitySelectUI(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + TMCase_SetWindowBorder1(7); + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + AddTextPrinterParameterized_ColorByIndex(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1); + SellTM_PrintQuantityAndSalePrice(1, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]); + HandlePrintMoneyOnHand(); + CreateTMCaseScrollIndicatorArrowPair_SellQuantitySelect(); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + gTasks[taskId].func = Task_QuantitySelect_HandleInput; +} + +static void SellTM_PrintQuantityAndSalePrice(s16 quantity, s32 amount) +{ + FillWindowPixelBuffer(7, 0x11); + ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + AddTextPrinterParameterized_ColorByIndex(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1); + PrintMoneyAmount(7, 0x38, 0x0A, amount, 0); +} + +static void Task_QuantitySelect_HandleInput(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (sub_80BF848(&data[8], data[2]) == 1) + { + SellTM_PrintQuantityAndSalePrice(data[8], itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]); + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + ClearMenuWindow(7, 0); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + RemoveTMCaseScrollIndicatorArrowPair(); + Task_AskConfirmSaleWithAmount(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + ClearMenuWindow(7, 0); + ClearMenuWindow(8, 0); + ClearMenuWindow_BorderThickness2(6, 0); + PutWindowTilemap(3); + PutWindowTilemap(0); + PutWindowTilemap(1); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + RemoveTMCaseScrollIndicatorArrowPair(); + PrintListMenuCursorByID_WithColorIdx(data[0], 1); + Subtask_ReturnToTMCaseMain(taskId); + } +} + +static void Task_PrintSaleConfirmedText(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + PutWindowTilemap(0); + schedule_bg_copy_tilemap_to_vram(0); + CopyItemName(gSpecialVar_ItemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen); + TMCase_PrintMessageWithFollowupTask(taskId, 2, gStringVar4, Task_DoSaleOfTMs); +} + +static void Task_DoSaleOfTMs(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + PlaySE(0xF8); + RemoveBagItem(gSpecialVar_ItemId, data[8]); + AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]); + sub_809C09C(gSpecialVar_ItemId, data[8], 2); + DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow); + TMCaseSetup_GetTMCount(); + TMCaseSetup_InitListMenuPositions(); + InitTMCaseListMenuItems(); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow); + PrintListMenuCursorByID_WithColorIdx(data[0], 2); + PrintMoneyAmountInMoneyBox(8, GetMoney(&gSaveBlock1Ptr->money), 0); + gTasks[taskId].func = Task_AfterSale_ReturnToList; +} + +static void Task_AfterSale_ReturnToList(u8 taskId) +{ + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + ClearMenuWindow(8, 0); + ClearMenuWindow_BorderThickness2(6, 0); + PutWindowTilemap(1); + PutWindowTilemap(3); + PutWindowTilemap(4); + PutWindowTilemap(5); + Subtask_CloseContextMenuAndReturnToMain(taskId); + } +} + +void PokeDude_InitTMCase(void) +{ + sPokeDudePackBackup = AllocZeroed(sizeof(*sPokeDudePackBackup)); + memcpy(sPokeDudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); + memcpy(sPokeDudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); + sPokeDudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow; + sPokeDudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset; + ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM)); + ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems)); + ResetTMCaseCursorPos(); + AddBagItem(ITEM_TM01, 1); + AddBagItem(ITEM_TM03, 1); + AddBagItem(ITEM_TM09, 1); + AddBagItem(ITEM_TM35, 1); + InitTMCase(4, CB2_ReturnToTeachyTV, 0); +} + +static void Task_TMCaseDude1(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!gPaletteFade.active) + { + data[8] = 0; + data[9] = 0; + gTasks[taskId].func = Task_TMCaseDude_Playback; + } +} + +static void Task_TMCaseDude_Playback(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (JOY_NEW(B_BUTTON)) + { + if (data[8] < 21) + { + data[8] = 21; + SetTeachyTvControllerModeToResume(); + } + } + + switch (data[8]) + { + case 0: + BeginNormalPaletteFade(0xFFFF8405, 4, 0, 6, 0); + FillBG2RowWithPalette_2timesNplus1(1); + data[8]++; + break; + case 1: + case 11: + if (!gPaletteFade.active) + { + data[9]++; + if (data[9] > 0x65) + { + data[9] = 0; + data[8]++; + } + } + break; + case 2: + case 3: + case 4: + case 12: + case 13: + case 14: + if (data[9] == 0) + { + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = DPAD_DOWN; + ListMenuHandleInput(data[0]); + } + data[9]++; + if (data[9] > 0x65) + { + data[9] = 0; + data[8]++; + } + break; + case 5: + case 6: + case 7: + case 15: + case 16: + case 17: + if (data[9] == 0) + { + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = DPAD_UP; + ListMenuHandleInput(data[0]); + } + data[9]++; + if (data[9] > 0x65) + { + data[9] = 0; + data[8]++; + } + break; + case 8: + FillBG2RowWithPalette_2timesNplus1(1); + TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_TMTypes, 0); + gTasks[taskId].func = Task_TMCaseDude_Playback; + data[8]++; + break; + case 9: + case 19: + RunTextPrinters(); + if (!IsTextPrinterActive(6)) + data[8]++; + break; + case 10: + if (JOY_NEW(A_BUTTON | B_BUTTON)) + { + FillBG2RowWithPalette_2timesNplus1(0); + BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0); + ClearMenuWindow_BorderThickness2(6, 0); + schedule_bg_copy_tilemap_to_vram(1); + data[8]++; + } + break; + case 18: + FillBG2RowWithPalette_2timesNplus1(1); + TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_ReadTMDescription, NULL); + gTasks[taskId].func = Task_TMCaseDude_Playback; // this function + data[8]++; + break; + case 20: + if (JOY_NEW(A_BUTTON | B_BUTTON)) + data[8]++; + break; + case 21: + if (!gPaletteFade.active) + { + memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); + memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); + DestroyListMenu(data[0], NULL, NULL); + sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160; + sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162; + Free(sPokeDudePackBackup); + CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); + sub_8108CF0(); + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0); + data[8]++; + } + break; + default: + if (!gPaletteFade.active) + { + SetMainCallback2(sTMCaseStaticResources.savedCallback); + RemoveTMCaseScrollIndicatorArrowPair(); + DestroyTMCaseBuffers(); + DestroyTask(taskId); + } + break; + } +} + +static void InitWindowTemplatesAndPals(void) +{ + u8 i; + + InitWindows(sWindowTemplates); + DeactivateAllTextPrinters(); + TextWindow_SetUserSelectedFrame(0, 0x5B, 0xE0); + TextWindow_SetBubbleFrame_841F1C8(0, 0x64, 0xB0); + TextWindow_SetStdFrame0_WithPal(0, 0x78, 0xD0); + LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); + LoadPalette(gTMCaseMainWindowPalette, 0xA0, 0x20); + LoadPalette(sPal3Override, 0xF6, 0x04); + LoadPalette(sPal3Override, 0xD6, 0x04); + sub_8107D38(0xc0, 0x01); + for (i = 0; i < 9; i++) + FillWindowPixelBuffer(i, 0x00); + PutWindowTilemap(0); + PutWindowTilemap(1); + PutWindowTilemap(3); + PutWindowTilemap(4); + PutWindowTilemap(5); + schedule_bg_copy_tilemap_to_vram(0); +} + +static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx) +{ + AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, &sTextColors[colorIdx], speed, str); +} + +static void TMCase_SetWindowBorder1(u8 windowId) +{ + SetWindowBorderStyle(windowId, FALSE, 0x5B, 0x0E); +} + +static void TMCase_SetWindowBorder2(u8 windowId) +{ + SetWindowBorderStyle(windowId, FALSE, 0x78, 0x0D); +} + +static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func) +{ + DisplayMessageAndContinueTask(taskId, 6, 0x64, 0x0B, windowId, GetTextSpeedSetting(), str, func); + schedule_bg_copy_tilemap_to_vram(1); +} + +static void PrintStringTMCaseOnWindow3(void) +{ + u32 distance = 72 - GetStringWidth(1, gText_TMCase, 0); + AddTextPrinterParameterized3(3, 1, distance / 2, 1, &sTextColors[0], 0, gText_TMCase); +} + +static void DrawMoveInfoUIMarkers(void) +{ + blit_move_info_icon(4, 19, 0, 0); + blit_move_info_icon(4, 20, 0, 12); + blit_move_info_icon(4, 21, 0, 24); + blit_move_info_icon(4, 22, 0, 36); + CopyWindowToVram(4, 2); +} + +static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId) +{ + u8 i; + u16 move; + const u8 * str; + + FillWindowPixelRect(5, 0, 0, 0, 40, 48); + if (itemId == ITEM_NONE) + { + for (i = 0; i < 4; i++) + { + AddTextPrinterParameterized_ColorByIndex(5, 3, gText_ThreeHyphens, 7, 12 * i, 0, 0, 0xFF, 3); + } + CopyWindowToVram(5, 2); + } + else + { + move = ItemIdToBattleMoveId(itemId); + blit_move_info_icon(5, gBattleMoves[move].type + 1, 0, 0); + if (gBattleMoves[move].power < 2) + str = gText_ThreeHyphens; + else + { + ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].power, STR_CONV_MODE_RIGHT_ALIGN, 3); + str = gStringVar1; + } + AddTextPrinterParameterized_ColorByIndex(5, 3, str, 7, 12, 0, 0, 0xFF, 3); + if (gBattleMoves[move].accuracy == 0) + str = gText_ThreeHyphens; + else + { + ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3); + str = gStringVar1; + } + AddTextPrinterParameterized_ColorByIndex(5, 3, str, 7, 24, 0, 0, 0xFF, 3); + ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].pp, STR_CONV_MODE_RIGHT_ALIGN, 3); + AddTextPrinterParameterized_ColorByIndex(5, 3, gStringVar1, 7, 36, 0, 0, 0xFF, 3); + CopyWindowToVram(5, 2); + } +} + +static void PlaceHMTileInWindow(u8 windowId, u8 x, u8 y) +{ + BlitBitmapToWindow(windowId, gUnknown_8E99118, x, y, 16, 12); +} + +static void HandlePrintMoneyOnHand(void) +{ + PrintMoneyAmountInMoneyBoxWithBorder(8, 0x78, 0xD, GetMoney(&gSaveBlock1Ptr->money)); +} + +static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable *ptrs) +{ + CreateYesNoMenuWithCallbacks(taskId, &sYesNoWindowTemplate, 2, 0, 2, 0x5B, 0x0E, ptrs); +} + +static u8 AddTMContextMenu(u8 * a0, u8 a1) +{ + if (*a0 == 0xFF) + { + *a0 = AddWindow(&sTMContextWindowTemplates[a1]); + TMCase_SetWindowBorder1(*a0); + schedule_bg_copy_tilemap_to_vram(0); + } + return *a0; +} + +static void RemoveTMContextMenu(u8 * a0) +{ + ClearMenuWindow(*a0, FALSE); + ClearWindowTilemap(*a0); + RemoveWindow(*a0); + schedule_bg_copy_tilemap_to_vram(0); + *a0 = 0xFF; +} + +static u8 CreateTMSprite(u16 itemId) +{ + u8 spriteId = CreateSprite(&sTMSpriteTemplate, 0x29, 0x2E, 0); + u8 r5; + if (itemId == ITEM_NONE) + { + UpdateTMSpritePosition(&gSprites[spriteId], 0xFF); + return spriteId; + } + else + { + r5 = itemId - 33; + SetTMSpriteAnim(&gSprites[spriteId], r5); + TintTMSpriteByType(gBattleMoves[ItemIdToBattleMoveId(itemId)].type); + UpdateTMSpritePosition(&gSprites[spriteId], r5); + return spriteId; + } +} + +static void SetTMSpriteAnim(struct Sprite * sprite, u8 idx) +{ + if (idx >= 50) + StartSpriteAnim(sprite, 1); + else + StartSpriteAnim(sprite, 0); +} + +static void TintTMSpriteByType(u8 type) +{ + u8 palIndex = IndexOfSpritePaletteTag(TM_CASE_TM_TAG) << 4; + LoadPalette(sTMSpritePaletteBuffer + sTMSpritePaletteOffsetByType[type], 0x100 | palIndex, 0x20); + if (sTMCaseStaticResources.tmCaseMenuType == 4) + { + BlendPalettes(1 << (0x10 + palIndex), 4, RGB_BLACK); + } +} + +static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var) +{ + s32 x, y; + if (var == 0xFF) + { + x = 0x1B; + y = 0x36; + sprite->pos2.y = 0x14; + } + else + { + if (var >= 50) + var -= 50; + else + var += 8; + x = 0x29 - (((0xE00 * var) / 58) >> 8); + y = 0x2E + (((0x800 * var) / 58) >> 8); + } + sprite->pos1.x = x; + sprite->pos1.y = y; +} + +static void InitSelectedTMSpriteData(u8 spriteId, u16 itemId) +{ + gSprites[spriteId].data[0] = itemId; + gSprites[spriteId].data[1] = 0; + gSprites[spriteId].callback = SpriteCB_MoveTMSpriteInCase; +} + +static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite) +{ + switch (sprite->data[1]) + { + case 0: + if (sprite->pos2.y >= 20) + { + if (sprite->data[0] != ITEM_NONE) + { + sprite->data[1]++; + TintTMSpriteByType(gBattleMoves[ItemIdToBattleMoveId(sprite->data[0])].type); + sprite->data[0] -= ITEM_TM01; + SetTMSpriteAnim(sprite, sprite->data[0]); + UpdateTMSpritePosition(sprite, sprite->data[0]); + } + else + sprite->callback = SpriteCallbackDummy; + } + else + { + sprite->pos2.y += 10; + } + break; + case 1: + if (sprite->pos2.y <= 0) + sprite->callback = SpriteCallbackDummy; + else + sprite->pos2.y -= 10; + } +} + +static void LoadTMTypePalettes(void) +{ + struct SpritePalette spritePalette; + + sTMSpritePaletteBuffer = Alloc(0x110 * sizeof(u16)); + LZDecompressWram(gUnknown_8E84F20, sTMSpritePaletteBuffer); + LZDecompressWram(gUnknown_8E85068, sTMSpritePaletteBuffer + 0x100); + spritePalette.data = sTMSpritePaletteBuffer + 0x110; + spritePalette.tag = TM_CASE_TM_TAG; + LoadSpritePalette(&spritePalette); +} diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c new file mode 100644 index 000000000..ecd889d80 --- /dev/null +++ b/src/trainer_pokemon_sprites.c @@ -0,0 +1,324 @@ +#include "global.h" +#include "sprite.h" +#include "window.h" +#include "malloc.h" +#include "constants/species.h" +#include "palette.h" +#include "decompress.h" +#include "trainer_pokemon_sprites.h" +#include "pokemon.h" +#include "constants/trainer_classes.h" + +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const struct CompressedSpriteSheet gMonBackPicTable[]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; +extern const union AnimCmd *const gUnknown_82349BC[]; +extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; + +// Static type declarations + +struct PicData +{ + u8 *frames; + struct SpriteFrameImage *images; + u16 paletteTag; + u8 spriteId; + u8 active; +}; + +// Static RAM declarations +#define PICS_COUNT 8 + +static EWRAM_DATA struct SpriteTemplate sCreatingSpriteTemplate = {}; +static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {}; + +// Static ROM declarations + +// .rodata + +static const struct PicData gUnknown_8453178 = {}; + +static const struct OamData gUnknown_8453184 = +{ + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64) +}; + +// .text + +void DummyPicSpriteCallback(struct Sprite *sprite) +{ + +} + +bool16 ResetAllPicSprites(void) +{ + int i; + + for (i = 0; i < PICS_COUNT; i ++) + sSpritePics[i] = gUnknown_8453178; + + return FALSE; +} + +static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys) +{ + if (!isTrainer) + { + if (isFrontPic) + { + if (!ignoreDeoxys) + LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic); + else + LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], dest, species, personality, isFrontPic); + } + else + { + if (!ignoreDeoxys) + LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic); + else + LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], dest, species, personality, isFrontPic); + } + } + else + { + if (isFrontPic) + DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species); + else + DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species); + } + return FALSE; +} + +static bool16 DecompressPic_HandleDeoxys(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer) +{ + return DecompressPic(species, personality, isFrontPic, dest, isTrainer, FALSE); +} + +void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +{ + if (!isTrainer) + { + if (paletteTag == 0xFFFF) + { + sCreatingSpriteTemplate.paletteTag = 0xFFFF; + LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20); + } + else + { + sCreatingSpriteTemplate.paletteTag = paletteTag; + LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); + } + } + else + { + if (paletteTag == 0xFFFF) + { + sCreatingSpriteTemplate.paletteTag = 0xFFFF; + LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20); + } + else + { + sCreatingSpriteTemplate.paletteTag = paletteTag; + LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]); + } + } +} + +void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer) +{ + if (!isTrainer) + LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20); + else + LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20); +} + +void AssignSpriteAnimsTable(bool8 isTrainer) +{ + if (!isTrainer) + sCreatingSpriteTemplate.anims = gUnknown_82349BC; + else + sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0]; +} + +u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys) +{ + u8 i; + u8 *framePics; + struct SpriteFrameImage *images; + int j; + u8 spriteId; + + for (i = 0; i < PICS_COUNT; i ++) + { + if (!sSpritePics[i].active) + { + break; + } + } + if (i == PICS_COUNT) + { + return 0xFFFF; + } + framePics = Alloc(4 * 0x800); + if (!framePics) + { + return 0xFFFF; + } + images = Alloc(4 * sizeof(struct SpriteFrameImage)); + if (!images) + { + Free(framePics); + return 0xFFFF; + } + if (DecompressPic(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys)) + { + // debug trap? + return 0xFFFF; + } + for (j = 0; j < 4; j ++) + { + images[j].data = framePics + 0x800 * j; + images[j].size = 0x800; + } + sCreatingSpriteTemplate.tileTag = 0xFFFF; + sCreatingSpriteTemplate.oam = &gUnknown_8453184; + AssignSpriteAnimsTable(isTrainer); + sCreatingSpriteTemplate.images = images; + sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; + sCreatingSpriteTemplate.callback = DummyPicSpriteCallback; + LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, isTrainer); + spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0); + if (paletteTag == 0xFFFF) + { + gSprites[spriteId].oam.paletteNum = paletteSlot; + } + sSpritePics[i].frames = framePics; + sSpritePics[i].images = images; + sSpritePics[i].paletteTag = paletteTag; + sSpritePics[i].spriteId = spriteId; + sSpritePics[i].active = TRUE; + return spriteId; +} + +u16 CreatePicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +{ + return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE); +} + +u16 FreeAndDestroyPicSpriteInternal(u16 spriteId) +{ + u8 i; + u8 *framePics; + struct SpriteFrameImage *images; + + for (i = 0; i < PICS_COUNT; i ++) + { + if (sSpritePics[i].spriteId == spriteId) + { + break; + } + } + if (i == PICS_COUNT) + { + return 0xFFFF; + } + framePics = sSpritePics[i].frames; + images = sSpritePics[i].images; + if (sSpritePics[i].paletteTag != 0xFFFF) + { + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); + } + DestroySprite(&gSprites[spriteId]); + Free(framePics); + Free(images); + sSpritePics[i] = gUnknown_8453178; + return 0; +} + +u16 sub_810C050(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer) +{ + if (DecompressPic_HandleDeoxys(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE)) + { + return 0xFFFF; + } + LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer); + return 0; +} + +u16 sub_810C0C0(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId, bool8 isTrainer) +{ + u8 *framePics; + + framePics = Alloc(4 * 0x800); + if (framePics && !DecompressPic_HandleDeoxys(species, personality, isFrontPic, framePics, isTrainer)) + { + BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40); + LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer); + Free(framePics); + return 0; + } + return 0xFFFF; +} + +u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys) +{ + return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys); +} + +u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + return CreateMonPicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE); +} + +u16 FreeAndDestroyMonPicSprite(u16 spriteId) +{ + return FreeAndDestroyPicSpriteInternal(spriteId); +} + +u16 sub_810C228(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +{ + return sub_810C0C0(species, otId, personality, isFrontPic, 0, 0, paletteSlot, windowId, FALSE); +} + +u16 sub_810C25C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) +{ + return sub_810C0C0(species, otId, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE); +} + +u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + return CreatePicSprite_HandleDeoxys(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE); +} + +u16 FreeAndDestroyTrainerPicSprite(u16 spriteId) +{ + return FreeAndDestroyPicSpriteInternal(spriteId); +} + +u16 sub_810C2FC(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +{ + return sub_810C050(species, 0, 0, isFrontPic, paletteSlot, windowId, TRUE); +} + +u16 sub_810C330(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) +{ + return sub_810C0C0(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE); +} + +u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass) +{ + if (getClass == TRUE) + { + switch (gender) + { + default: + return gFacilityClassToPicIndex[0x87]; + case MALE: + return gFacilityClassToPicIndex[0x86]; + } + } + return gender; +} diff --git a/src/trainer_tower.c b/src/trainer_tower.c index 91132c07b..ef2a12ce0 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -1,7 +1,10 @@ #include "global.h" #include "main.h" +#include "task.h" #include "constants/flags.h" #include "constants/vars.h" +#include "constants/items.h" +#include "constants/species.h" #include "malloc.h" #include "save.h" #include "util.h" @@ -11,7 +14,16 @@ #include "cereader_tool.h" #include "easy_chat.h" #include "text.h" +#include "battle_setup.h" +#include "battle_transition.h" +#include "battle.h" +#include "battle_2.h" #include "overworld.h" +#include "item.h" +#include "window.h" +#include "menu.h" +#include "new_menu_helpers.h" +#include "sound.h" struct UnkStruct_8479D34 { @@ -23,45 +35,10 @@ struct UnkStruct_8479D34 u8 flags3[8]; }; -struct UnkSubstruct_203F458_000C_004 -{ - /* 0x000 */ u8 unk_000[11]; - /* 0x00B */ u8 unk_00B; - /* 0x00C */ u8 unk_00C; - /* 0x00D */ u8 unk_00D; - /* 0x00E */ u16 unk_00E[6]; - /* 0x01A */ u16 unk_01A[6]; - /* 0x026 */ u16 unk_026[6]; - /* 0x032 */ u16 unk_032[6]; - /* 0x040 */ struct BattleTowerPokemon unk_040[PARTY_SIZE]; -}; // size: 328 - -struct UnkSubstruct_203F458_000C -{ - /* 0x000 */ u8 filler_000[2]; - /* 0x002 */ u8 unk_002; - /* 0x003 */ u8 unk_003; - /* 0x004 */ struct UnkSubstruct_203F458_000C_004 unk_004[3]; - /* 0x3DC */ u8 filler_3DC[4]; -}; - -struct Unk_203F458_Header -{ - u8 unk0; - u8 unk1; - u32 unk4; -}; - -struct UnkStruct_203F458_SaveBlock -{ - struct Unk_203F458_Header unk_0000; - struct UnkSubstruct_203F458_000C unk_0008[8]; -}; - struct UnkStruct_203F458 { /* 0x0000 */ u8 unk_0000; - /* 0x0004 */ struct UnkStruct_203F458_SaveBlock unk_0004; + /* 0x0004 */ struct TrainerTowerData unk_0004; }; struct UnkStruct_203F45C @@ -92,8 +69,15 @@ struct UnkStruct_847A024 bool8 unk4; }; +struct UnkStruct_847A074 +{ + u8 unk0; + u8 unk1; +}; + EWRAM_DATA struct UnkStruct_203F458 * gUnknown_203F458 = NULL; EWRAM_DATA struct UnkStruct_203F45C * gUnknown_203F45C = NULL; +EWRAM_DATA u8 unused_variable = 0; void sub_815D96C(void); void sub_815DC8C(void); // setup @@ -122,38 +106,430 @@ void sub_815E8CC(void); void sub_815E908(void); void sub_815E948(void); void sub_815E9C8(void); +void sub_815E9FC(void); +static s32 GetPartyMaxLevel(void); void sub_815EC0C(void); +u32 sub_815EDDC(u32 *); +void sub_815EDF4(u32 *, u32); + +extern const u8 gUnknown_83FE982[]; +extern const u8 gUnknown_83FE998[]; +extern const u8 *const gUnknown_83FE9C4[]; + +const struct UnkStruct_8479D34 gUnknown_8479D34[] = { + { + 0x03, 0x26, + .flags1 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0x99, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x27, + .flags1 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0x9a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x01, 0x1f, + .flags1 = {0x4c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x01, 0x22, + .flags1 = {0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x41, + .flags1 = {0x40, 0x41, 0x42, 0x43, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x01, 0x02, + .flags1 = {0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0xff, 0xff}, + .flags2 = {0x54, 0x55, 0x56, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x01, 0x6d, + .flags1 = {0x5b, 0x5d, 0x5e, 0x5f, 0x63, 0x64, 0x65, 0x66}, + .flags2 = {0x5b, 0x5d, 0x5e, 0x5f, 0x63, 0x64, 0x65, 0xff}, + .flags3 = {0x5a, 0x5c, 0x60, 0x61, 0x62, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x2e, + .flags1 = {0x6b, 0x6c, 0x6d, 0x6e, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0xff, 0xff}, + .flags3 = {0x6b, 0x6c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x30, + .flags1 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0xa6, 0xa7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x0f, + .flags1 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x39, + .flags1 = {0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x36, + .flags1 = {0xae, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0xaf, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x3a, + .flags1 = {0xb2, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x3b, + .flags1 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xb4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, + { + 0x03, 0x3e, + .flags1 = {0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags2 = {0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + .flags3 = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} + }, +}; + +const struct UnkStruct_8479ED8 gUnknown_8479ED8[] = { + {0x1c, 0x03, 0x01}, + {0x38, 0x04, 0x00}, + {0x25, 0x06, 0x01}, + {0x26, 0x07, 0x00}, + {0x29, 0x08, 0x00}, + {0x2a, 0x09, 0x01}, + {0x34, 0x0a, 0x00}, + {0x1c, 0x0b, 0x01}, + {0x1d, 0x0c, 0x01}, + {0x13, 0x0d, 0x00}, + {0x34, 0x0e, 0x00}, + {0x2d, 0x0f, 0x00}, + {0x36, 0x10, 0x00}, + {0x1a, 0x11, 0x00}, + {0x1a, 0x12, 0x00}, + {0x27, 0x13, 0x00}, + {0x34, 0x14, 0x00}, + {0x13, 0x15, 0x00}, + {0x17, 0x16, 0x01}, + {0x3d, 0x17, 0x00}, + {0x13, 0x1d, 0x00}, + {0x17, 0x1e, 0x01}, + {0x1e, 0x20, 0x00}, + {0x1f, 0x21, 0x01}, + {0x20, 0x22, 0x00}, + {0x23, 0x23, 0x01}, + {0x12, 0x24, 0x00}, + {0x39, 0x26, 0x00}, + {0x29, 0x2d, 0x00}, + {0x1a, 0x2e, 0x00}, + {0x10, 0x2f, 0x00}, + {0x18, 0x30, 0x01}, + {0x1d, 0x31, 0x01}, + {0x2e, 0x32, 0x01}, + {0x28, 0x33, 0x01}, + {0x3e, 0x35, 0x00}, + {0x1b, 0x38, 0x00}, + {0x19, 0x40, 0x00}, + {0x1c, 0x41, 0x01}, + {0x27, 0x42, 0x00}, + {0x28, 0x43, 0x01}, + {0x16, 0x47, 0x01}, + {0x14, 0x48, 0x00}, + {0x38, 0x49, 0x00}, + {0x12, 0x58, 0x00}, + {0x14, 0x59, 0x00}, + {0x16, 0x5a, 0x01}, + {0x3e, 0x5b, 0x00}, + {0x27, 0x5c, 0x00}, + {0x28, 0x5d, 0x01}, + {0x34, 0x5e, 0x00}, + {0x34, 0x5f, 0x00}, + {0x38, 0x60, 0x00}, + {0x35, 0x61, 0x00}, + {0x34, 0x62, 0x00}, + {0x1e, 0x63, 0x00}, + {0x39, 0x64, 0x00}, + {0x2d, 0x65, 0x00}, + {0x35, 0x66, 0x00}, + {0x20, 0x67, 0x00}, + {0x1d, 0x68, 0x01}, + {0x2e, 0x69, 0x01}, + {0x13, 0x6a, 0x00}, + {0x1a, 0x6b, 0x00}, + {0x1a, 0x6c, 0x00}, + {0x19, 0x6d, 0x00}, + {0x1a, 0x6e, 0x00}, + {0x36, 0x6f, 0x00}, + {0x37, 0x71, 0x00}, + {0x29, 0x74, 0x00}, + {0x2a, 0x75, 0x01}, + {0x3d, 0x7a, 0x00}, + {0x3a, 0x7d, 0x01}, + {0x17, 0x89, 0x01}, + {0x18, 0x8a, 0x01}, + {0x25, 0x8b, 0x01}, + {0x1c, 0x8c, 0x01}, + {0x27, 0x8d, 0x00}, + {0x28, 0x8e, 0x01}, + {0x1c, 0x8f, 0x01}, + {0x38, 0x90, 0x00}, + {0x1c, 0x91, 0x01}, + {0x16, 0x92, 0x01} +}; + +const struct UnkStruct_847A024 gUnknown_847A024[] = { + {0x1d, 0x17, 0x1f, 0x01, 0x01}, + {0x11, 0x11, 0x34, 0x01, 0x01}, + {0x1d, 0x19, 0x4a, 0x01, 0x00}, + {0x20, 0x23, 0x4b, 0x00, 0x01}, + {0x26, 0x2e, 0x4c, 0x00, 0x01}, + {0x11, 0x11, 0x7e, 0x01, 0x01}, + {0x29, 0x2a, 0x7f, 0x00, 0x01}, + {0x1d, 0x19, 0x80, 0x01, 0x00}, + {0x18, 0x36, 0x81, 0x01, 0x00}, + {0x2e, 0x26, 0x82, 0x01, 0x00} +}; + +const struct UnkStruct_847A074 gUnknown_847A074[105] = { + {0x03, 0x06}, + {0x37, 0x06}, + {0x02, 0x06}, + {0x67, 0x01}, + {0x04, 0x01}, + {0x24, 0x04}, + {0x4a, 0x01}, + {0x26, 0x01}, + {0x2a, 0x00}, + {0x42, 0x03}, + {0x1b, 0x09}, + {0x4c, 0x03}, + {0x44, 0x03}, + {0x21, 0x04}, + {0x43, 0x03}, + {0x6a, 0x01}, + {0x5d, 0x05}, + {0x56, 0x05}, + {0x09, 0x05}, + {0x11, 0x04}, + {0x48, 0x03}, + {0x3c, 0x00}, + {0x29, 0x00}, + {0x5c, 0x09}, + {0x28, 0x09}, + {0x06, 0x0c}, + {0x68, 0x0b}, + {0x05, 0x0b}, + {0x58, 0x0d}, + {0x16, 0x0d}, + {0x46, 0x08}, + {0x0f, 0x01}, + {0x3f, 0x03}, + {0x0e, 0x03}, + {0x5f, 0x04}, + {0x63, 0x04}, + {0x50, 0x04}, + {0x10, 0x04}, + {0x52, 0x03}, + {0x35, 0x04}, + {0x5b, 0x03}, + {0x14, 0x03}, + {0x3d, 0x00}, + {0x13, 0x00}, + {0x12, 0x0b}, + {0x30, 0x07}, + {0x38, 0x07}, + {0x2f, 0x07}, + {0x3b, 0x01}, + {0x31, 0x01}, + {0x4e, 0x0b}, + {0x3a, 0x00}, + {0x32, 0x00}, + {0x23, 0x03}, + {0x0d, 0x0d}, + {0x0a, 0x03}, + {0x49, 0x01}, + {0x0c, 0x01}, + {0x69, 0x01}, + {0x0b, 0x01}, + {0x25, 0x01}, + {0x3e, 0x02}, + {0x27, 0x02}, + {0x65, 0x01}, + {0x2d, 0x01}, + {0x61, 0x01}, + {0x2b, 0x03}, + {0x66, 0x05}, + {0x2e, 0x05}, + {0x2c, 0x00}, + {0x5e, 0x02}, + {0x34, 0x02}, + {0x51, 0x00}, + {0x59, 0x00}, + {0x40, 0x03}, + {0x55, 0x06}, + {0x53, 0x06}, + {0x4b, 0x04}, + {0x15, 0x04}, + {0x1a, 0x09}, + {0x57, 0x0a}, + {0x17, 0x01}, + {0x47, 0x03}, + {0x62, 0x01}, + {0x39, 0x00}, + {0x1d, 0x00}, + {0x1c, 0x04}, + {0x20, 0x00}, + {0x4f, 0x05}, + {0x22, 0x05}, + {0x45, 0x0b}, + {0x1f, 0x0b}, + {0x5a, 0x00}, + {0x1e, 0x00}, + {0x08, 0x00}, + {0x64, 0x02}, + {0x07, 0x02}, + {0x60, 0x08}, + {0x36, 0x08}, + {0x41, 0x0b}, + {0x33, 0x0b}, + {0x54, 0x00}, + {0x18, 0x01}, + {0x4d, 0x0b}, + {0x19, 0x00} +}; + +const struct WindowTemplate gUnknown_847A218[] = { + {0, 3, 1, 27, 18, 15, 0x001}, + DUMMY_WIN_TEMPLATE +}; + +const u32 gUnknown_847A228 = 0x70; // unused + +const struct TextColor gUnknown_847A22C = {0, 2, 3}; + +void (*const gUnknown_847A230[])(void) = { + sub_815DD44, + sub_815DF54, + sub_815E160, + sub_815E1C0, + sub_815E1F0, + sub_815E218, + sub_815E28C, + sub_815E394, + sub_815E408, + sub_815E4B0, + sub_815E56C, + sub_815E5C4, + sub_815E5F0, + sub_815E658, + sub_815E720, + sub_815E88C, + sub_815E8B4, + sub_815E8CC, + sub_815E908, + sub_815E948, + sub_815E9C8 +}; + +const u16 gUnknown_847A284[8][3] = { + {0x012a, 0x016e, 0x0176}, + {0x012b, 0x016f, 0x0177}, + {0x012c, 0x0170, 0x0178}, + {0x012d, 0x0171, 0x0179}, + {0x012e, 0x0172, 0x017a}, + {0x012f, 0x0173, 0x017b}, + {0x0130, 0x0174, 0x017c}, + {0x0131, 0x0175, 0x017d} +}; + +const u16 gUnknown_847A2B4[] = { + ITEM_HP_UP, + ITEM_PROTEIN, + ITEM_IRON, + ITEM_CARBOS, + ITEM_CALCIUM, + ITEM_ZINC, + ITEM_BRIGHT_POWDER, + ITEM_WHITE_HERB, + ITEM_MENTAL_HERB, + ITEM_CHOICE_BAND, + ITEM_KINGS_ROCK, + ITEM_SCOPE_LENS, + ITEM_METAL_COAT, + ITEM_DRAGON_SCALE, + ITEM_UP_GRADE +}; + +const u16 gUnknown_847A2D2[] = { + 0x011d, + 0x011c, + 0x011c, + 0x011b, + 0x011d, + 0x011d, + 0x011b, + 0x011b, + 0x011d, + 0x011c, + 0x011d, + 0x011d, + 0x011d, + 0x011d +}; + +const u8 gUnknown_847A2EE[][2] = { + {0x00, 0x02}, + {0x01, 0x03}, + {0x02, 0x04}, + {0x03, 0x05}, + {0x04, 0x01}, + {0x05, 0x02}, + {0x00, 0x03}, + {0x01, 0x04} +}; + +const u8 gUnknown_847A2FE[][2] = { + {0x00, 0x01}, + {0x01, 0x03}, + {0x02, 0x00}, + {0x03, 0x04}, + {0x04, 0x02}, + {0x05, 0x02}, + {0x00, 0x03}, + {0x01, 0x05} +}; + +const u8 gUnknown_847A30E[][3] = { + {0x00, 0x02, 0x04}, + {0x01, 0x03, 0x05}, + {0x02, 0x03, 0x01}, + {0x03, 0x04, 0x00}, + {0x04, 0x01, 0x02}, + {0x05, 0x00, 0x03}, + {0x00, 0x05, 0x02}, + {0x01, 0x04, 0x05} +}; -extern const struct UnkStruct_8479D34 gUnknown_8479D34[15]; -extern void (*const gUnknown_847A230[])(void); extern const struct Unk_203F458_Header gUnknown_84827AC; -extern const struct UnkSubstruct_203F458_000C *const gUnknown_84827B4[][8]; -extern const u16 gUnknown_847A284[8][3]; -extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83]; -extern const struct UnkStruct_847A024 gUnknown_847A024[10]; - -bool32 sub_815D7BC(void * dest, void * buffer) -{ - if (TryCopySpecialSaveSection(30, buffer) != 1) - return FALSE; - memcpy(dest + 0x000, buffer, 0xF88); - - if (TryCopySpecialSaveSection(31, buffer) != 1) - return FALSE; - memcpy(dest + 0xF88, buffer, 0xF80); - - if (!sub_815D6B4(dest)) - return FALSE; - return TRUE; -} - -bool32 sub_815D80C(void * dest) -{ - void * buffer = AllocZeroed(0x1000); - bool32 success = sub_815D7BC(dest, buffer); - Free(buffer); - return success; -} +extern const struct TrainerTowerTrainer *const gUnknown_84827B4[][8]; bool32 sub_815D834(void) { @@ -263,24 +639,24 @@ void sub_815DA54(void) sub_815DC8C(); gUnknown_203F45C = AllocZeroed(sizeof(*gUnknown_203F45C)); r10 = VarGet(VAR_0x4001); - StringCopyN(gUnknown_203F45C->unk_00, gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_000, 11); + StringCopyN(gUnknown_203F45C->unk_00, gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r10].unk_000, 11); for (r9 = 0; r9 < 6; r9++) { - gUnknown_203F45C->unk_0C[r9] = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_01A[r9]; - gUnknown_203F45C->unk_18[r9] = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_026[r9]; + gUnknown_203F45C->unk_0C[r9] = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r10].unk_01A[r9]; + gUnknown_203F45C->unk_18[r9] = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r10].unk_026[r9]; - if (gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002 == 1) + if (gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_002 == 1) { - gUnknown_203F45C->unk_24[r9] = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10 + 1].unk_01A[r9]; - gUnknown_203F45C->unk_30[r9] = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10 + 1].unk_026[r9]; + gUnknown_203F45C->unk_24[r9] = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r10 + 1].unk_01A[r9]; + gUnknown_203F45C->unk_30[r9] = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r10 + 1].unk_026[r9]; } } - gUnknown_203F45C->unk_3C = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; - gUnknown_203F45C->unk_3D = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00B; - gUnknown_203F45C->unk_3E = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00C; - SetVBlankCounter1Ptr(gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx]); + gUnknown_203F45C->unk_3C = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_002; + gUnknown_203F45C->unk_3D = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r10].unk_00B; + gUnknown_203F45C->unk_3E = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r10].unk_00C; + SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); sub_815DD2C(); } @@ -317,12 +693,12 @@ void sub_815DC8C(void) // fakematching { u32 whichTimer = gSaveBlock1Ptr->unkArrayIdx; s32 r4; - const struct UnkSubstruct_203F458_000C *const * r7; + const struct TrainerTowerTrainer *const * r7; gUnknown_203F458 = AllocZeroed(sizeof(*gUnknown_203F458)); gUnknown_203F458->unk_0000 = gMapHeader.mapDataId - 0x2A; if (sub_815D834() == TRUE) - sub_815D80C(&gUnknown_203F458->unk_0004); + CEReaderTool_LoadTrainerTower(&gUnknown_203F458->unk_0004); else { struct UnkStruct_203F458 * r0_ = gUnknown_203F458; @@ -334,12 +710,12 @@ void sub_815DC8C(void) // fakematching for (r4 = 0; r4 < 8; r4++) { void * r0 = gUnknown_203F458; - r0 = r4 * sizeof(struct UnkSubstruct_203F458_000C) + r0; - r0 += offsetof(struct UnkStruct_203F458, unk_0004.unk_0008); - memcpy(r0, r7[r4], sizeof(struct UnkSubstruct_203F458_000C)); + r0 = r4 * sizeof(struct TrainerTowerTrainer) + r0; + r0 += offsetof(struct UnkStruct_203F458, unk_0004.trainers); + memcpy(r0, r7[r4], sizeof(struct TrainerTowerTrainer)); // r0[r4] = *r7[r4]; } - gUnknown_203F458->unk_0004.unk_0000.unk4 = CalcByteArraySum((void *)gUnknown_203F458->unk_0004.unk_0008, sizeof(gUnknown_203F458->unk_0004.unk_0008)); + gUnknown_203F458->unk_0004.unk4 = CalcByteArraySum((void *)gUnknown_203F458->unk_0004.trainers, sizeof(gUnknown_203F458->unk_0004.trainers)); sub_815EC0C(); } } @@ -366,7 +742,7 @@ void sub_815DC8C(void) "\tbne _0815DCD0\n" "\tldr r0, [r4]\n" "\tadds r0, 0x4\n" - "\tbl sub_815D80C\n" + "\tbl CEReaderTool_LoadTrainerTower\n" "\tb _0815DD18\n" "\t.align 2, 0\n" "_0815DCBC: .4byte gSaveBlock1Ptr\n" @@ -427,15 +803,15 @@ void sub_815DD2C(void) void sub_815DD44(void) { - if (gMapHeader.mapDataId - 0x129 > gUnknown_203F458->unk_0004.unk_0000.unk0) + if (gMapHeader.mapDataId - 0x129 > gUnknown_203F458->unk_0004.count) { gSpecialVar_Result = 3; - sub_8055D40(0x132); + SetCurrentMapLayout(0x132); } else { - gSpecialVar_Result = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; - sub_8055D40(gUnknown_847A284[gUnknown_203F458->unk_0000][gSpecialVar_Result]); + gSpecialVar_Result = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_002; + SetCurrentMapLayout(gUnknown_847A284[gUnknown_203F458->unk_0000][gSpecialVar_Result]); sub_815DDB0(); } } @@ -444,10 +820,10 @@ void sub_815DDB0(void) { s32 r3, r4; u8 r1, r2, r4_; - switch (gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002) + switch (gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_002) { case 0: - r2 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[0].unk_00B; + r2 = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_00B; for (r3 = 0; r3 < NELEMS(gUnknown_8479ED8); r3++) { if (gUnknown_8479ED8[r3].unk1 == r2) @@ -460,7 +836,7 @@ void sub_815DDB0(void) VarSet(VAR_0x4011, r1); break; case 1: - r2 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[0].unk_00B; + r2 = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_00B; for (r3 = 0; r3 < NELEMS(gUnknown_847A024); r3++) { if (gUnknown_847A024[r3].unk2 == r2) @@ -482,7 +858,7 @@ void sub_815DDB0(void) case 2: for (r4 = 0; r4 < 3; r4++) { - r2 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_00B; + r2 = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_00B; for (r3 = 0; r3 < NELEMS(gUnknown_8479ED8); r3++) { if (gUnknown_8479ED8[r3].unk1 == r2) @@ -529,25 +905,25 @@ void sub_815DF54(void) { u16 r4 = gSpecialVar_0x8006; u8 r1; - u8 r5 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002; + u8 r5 = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_002; // HOW DO I MATCH THIS CONTROL FLOW?!?! - r1 = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r5 == 1 ? 0 : r4].unk_00B; + r1 = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r5 == 1 ? 0 : r4].unk_00B; switch (gSpecialVar_0x8005) { case 2: sub_815E068(r5, r1); - sub_815DEFC(gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_00E, gStringVar4); + sub_815DEFC(gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_00E, gStringVar4); break; case 3: sub_815E068(r5, r1); - sub_815DEFC(gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_01A, gStringVar4); + sub_815DEFC(gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_01A, gStringVar4); break; case 4: sub_815E068(r5, r1); - sub_815DEFC(gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_026, gStringVar4); + sub_815DEFC(gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_026, gStringVar4); break; case 5: - sub_815DEFC(gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r4].unk_032, gStringVar4); + sub_815DEFC(gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_032, gStringVar4); break; } } @@ -692,3 +1068,402 @@ void sub_815DF54(void) "_0815E064: .4byte gStringVar4"); } #endif // NONMATCHING + +void sub_815E068(u8 battleType, u8 facilityClass) +{ + u16 r5 = FALSE; + s32 r4; + switch (battleType) + { + case 0: + case 2: + for (r4 = 0; r4 < NELEMS(gUnknown_8479ED8); r4++) + { + if (gUnknown_8479ED8[r4].unk1 == facilityClass) + break; + } + if (r4 != NELEMS(gUnknown_8479ED8)) + r5 = gUnknown_8479ED8[r4].unk2; + break; + case 1: + for (r4 = 0; r4 < NELEMS(gUnknown_847A024); r4++) + { + if (gUnknown_847A024[r4].unk2 == facilityClass) + break; + } + if (r4 != NELEMS(gUnknown_847A024)) + { + if (VarGet(VAR_0x4003)) + r5 = gUnknown_847A024[r4].unk4; + else + r5 = gUnknown_847A024[r4].unk3; + } + break; + } + gUnknown_20370DC = gUnknown_20370DA; + gUnknown_20370DA = r5; +} + +void sub_815E114(void) +{ + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); +} + +void sub_815E124(u8 taskId) +{ + if (sub_80D08F8() == TRUE) + { + gMain.savedCallback = sub_815E114; + CleanupOverworldWindowsAndTilemaps(); + SetMainCallback2(sub_800FD9C); + DestroyTask(taskId); + } +} + +void sub_815E160(void) +{ + gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_FACTORY; + if (gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_002 == 1) + gBattleTypeFlags |= BATTLE_TYPE_DOUBLE; + gTrainerBattleOpponent_A = 0; + sub_815E9FC(); + CreateTask(sub_815E124, 1); + PlayMapChosenOrBattleBGM(0); + sub_80D08B8(sub_8080060()); +} + +void sub_815E1C0(void) +{ + if (!gSpecialVar_0x8005) + gSpecialVar_Result = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_002; +} + +void sub_815E1F0(void) +{ + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8++; +} + +void sub_815E218(void) +{ + u16 mapDataId = gMapHeader.mapDataId; + if (mapDataId - 0x12A == gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 && mapDataId - 0x129 <= gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_001) + gSpecialVar_Result = FALSE; + else + gSpecialVar_Result = TRUE; +} + +void sub_815E28C(void) +{ + gSaveBlock1Ptr->unkArrayIdx = gSpecialVar_0x8005; + if (gSaveBlock1Ptr->unkArrayIdx >= NELEMS(gSaveBlock1Ptr->unkArray)) + gSaveBlock1Ptr->unkArrayIdx = 0; + sub_815EC0C(); + if (!sub_815D834()) + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = TRUE; + else + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = FALSE; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 = 0; + SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 0; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = FALSE; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = FALSE; +} + +void sub_815E394(void) +{ + DisableVBlankCounter1(); + gSpecialVar_Result = 0; + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2) + gSpecialVar_Result++; + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 && gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1) + gSpecialVar_Result++; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = TRUE; +} + +void sub_815E408(void) +{ + u16 itemId = gUnknown_847A2B4[gUnknown_203F458->unk_0004.trainers->unk_003]; + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0) + gSpecialVar_Result = 2; + else if (AddBagItem(itemId, 1) == 1) + { + CopyItemName(itemId, gStringVar2); + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 = TRUE; + gSpecialVar_Result = 0; + } + else + gSpecialVar_Result = 1; +} + +void sub_815E4B0(void) +{ + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1) + gSpecialVar_Result = 2; + else if (sub_815EDDC(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4) > gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0) + { + sub_815EDF4(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4, gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); + gSpecialVar_Result = 0; + } + else + gSpecialVar_Result = 1; + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = TRUE; +} + +void sub_815E56C(void) +{ + if (!gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2) + { + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 >= 215999) + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 215999; + else + SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); + } +} + +void sub_815E5C4(void) +{ + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_3 = 1; +} + +void sub_815E5F0(void) +{ + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_3) + { + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_3 = FALSE; + gSpecialVar_Result = 0; + } + else if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_4) + { + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_4 = FALSE; + gSpecialVar_Result = 1; + } + else + { + gSpecialVar_Result = 2; + } +} + +#define PRINT_TOWER_TIME(src) ({ \ + s32 minutes, seconds, centiseconds, frames; \ + \ + frames = (src); \ + \ + minutes = frames / 3600; \ + frames %= 3600; \ + seconds = frames / 60; \ + frames %= 60; \ + centiseconds = frames * 168 / 100; \ + \ + ConvertIntToDecimalStringN(gStringVar1, minutes, STR_CONV_MODE_RIGHT_ALIGN, 2); \ + ConvertIntToDecimalStringN(gStringVar2, seconds, STR_CONV_MODE_RIGHT_ALIGN, 2); \ + ConvertIntToDecimalStringN(gStringVar3, centiseconds, STR_CONV_MODE_LEADING_ZEROS, 2); \ +}) + +void sub_815E658(void) +{ + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 >= 215999) + { + DisableVBlankCounter1(); + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 215999; + } + + PRINT_TOWER_TIME(gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0); +} + +void sub_815E720(void) +{ + u8 windowId; + s32 i; + s32 minutes, seconds, centiseconds; + + sub_815EC0C(); + windowId = AddWindow(gUnknown_847A218); + sub_80F6E9C(); + DrawStdWindowFrame(windowId, FALSE); + AddTextPrinterParameterized(windowId, 2, gUnknown_83FE982, 0x4A, 0, 0xFF, NULL); + + for (i = 0; i < 4; i++) + { + PRINT_TOWER_TIME(sub_815EDDC(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4)); + + StringExpandPlaceholders(gStringVar4, gUnknown_83FE998); + AddTextPrinterParameterized(windowId, 2, gUnknown_83FE9C4[i - 1], 0x18, 0x24 + 0x14 * i, 0xFF, NULL); + AddTextPrinterParameterized(windowId, 2, gStringVar4, 0x60, 0x2E + 0x14 * i, 0xFF, NULL); + } + + PutWindowTilemap(windowId); + CopyWindowToVram(windowId, 3); + VarSet(VAR_0x4001, windowId); +} + +void sub_815E88C(void) +{ + u8 windowId = VarGet(VAR_0x4001); + ClearMenuWindow(windowId, TRUE); + RemoveWindow(windowId); +} + +void sub_815E8B4(void) +{ + gSpecialVar_Result = GetMonsStateToDoubles(); +} + +void sub_815E8CC(void) +{ + if (gUnknown_203F458->unk_0004.count != gUnknown_203F458->unk_0004.trainers[0].unk_001) + { + ConvertIntToDecimalStringN(gStringVar1, gUnknown_203F458->unk_0004.count, STR_CONV_MODE_LEFT_ALIGN, 1); + gSpecialVar_Result = TRUE; + } + else + { + gSpecialVar_Result = FALSE; + } +} + +void sub_815E908(void) +{ + if (gMapHeader.mapDataId == 0x0129 && VarGet(VAR_0x4082) == 0) + { + gSpecialVar_Result = FALSE; + } + else + { + gSpecialVar_Result = FALSE; + } +} + +void sub_815E948(void) +{ + s32 i; + u16 var_4001 = VarGet(VAR_0x4001); + u8 r1 = gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[var_4001].unk_00B; + + for (i = 0; i < NELEMS(gUnknown_847A074); i++) + { + if (gUnknown_847A074[i].unk0 == gFacilityClassToTrainerClass[r1]) + break; + } + if (i != NELEMS(gUnknown_847A074)) + { + var_4001 = gUnknown_847A074[i].unk1; + } + else + { + var_4001 = 0; + } + PlayNewMapMusic(gUnknown_847A2D2[var_4001]); +} + +void sub_815E9C8(void) +{ + gSpecialVar_Result = gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2; +} + +void sub_815E9FC(void) +{ + u16 r4 = VarGet(VAR_0x4001); + s32 r9 = GetPartyMaxLevel(); + u8 r5 = gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8; + s32 r6; + u8 r2; + + ZeroEnemyPartyMons(); + + switch (gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_002) + { + case 0: + default: + for (r6 = 0; r6 < 2; r6++) + { + r2 = gUnknown_847A2EE[r5][r6]; + gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2].level = r9; + sub_803E0A4(&gEnemyParty[r6], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]); + } + break; + case 1: + r2 = gUnknown_847A2FE[r5][0]; + gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_040[r2].level = r9; + sub_803E0A4(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_040[r2]); + r2 = gUnknown_847A2FE[r5][1]; + gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[1].unk_040[r2].level = r9; + sub_803E0A4(&gEnemyParty[1], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[1].unk_040[r2]); + break; + case 2: + r2 = gUnknown_847A30E[r5][r4]; + gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2].level = r9; + sub_803E0A4(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]); + break; + } +} + +static s32 GetPartyMaxLevel(void) +{ + s32 topLevel = 0; + s32 i; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL) != 0 && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG) + { + s32 currLevel = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL, NULL); + if (currLevel > topLevel) + topLevel = currLevel; + } + } + + return topLevel; +} + +void sub_815EC0C(void) +{ + if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk9 != gUnknown_203F458->unk_0004.id) + { + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk9 = gUnknown_203F458->unk_0004.id; + sub_815EDF4(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4, 215999); + gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 = FALSE; + } +} + +void sub_815EC8C(void) +{ + s32 i; + u8 windowId = 0; + + sub_815DC8C(); + FillWindowPixelRect(0, 0, 0, 0, 0xd8, 0x90); + sub_815EC0C(); + AddTextPrinterParameterized3(0, 2, 0x4a, 0, &gUnknown_847A22C, 0, gUnknown_83FE982); + + for (i = 0; i < 4; i++) + { + PRINT_TOWER_TIME(sub_815EDDC(&gSaveBlock1Ptr->unkArray[i].unk4)); + StringExpandPlaceholders(gStringVar4, gUnknown_83FE998); + AddTextPrinterParameterized3(windowId, 2, 0x18, 0x24 + 0x14 * i, &gUnknown_847A22C, 0, gUnknown_83FE9C4[i]); + AddTextPrinterParameterized3(windowId, 2, 0x60, 0x24 + 0x14 * i, &gUnknown_847A22C, 0, gStringVar4); + } + + PutWindowTilemap(windowId); + CopyWindowToVram(windowId, 3); + sub_815DD2C(); +} + +u32 sub_815EDDC(u32 * counter) +{ + return *counter ^ gSaveBlock2Ptr->encryptionKey; +} + +void sub_815EDF4(u32 * counter, u32 value) +{ + *counter = value ^ gSaveBlock2Ptr->encryptionKey; +} + +void sub_815EE0C(void) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + sub_815EDF4(&gSaveBlock1Ptr->unkArray[i].unk4, 215999); + } +} diff --git a/src/trig.c b/src/trig.c new file mode 100644 index 000000000..c2bca3059 --- /dev/null +++ b/src/trig.c @@ -0,0 +1,543 @@ +#include "global.h" +#include "trig.h" + +// Values of sin(x*(π/128)) as Q8.8 fixed-point numbers from x = 0 to x = 319 +const s16 gSineTable[] = +{ + Q_8_8(0), // sin(0*(π/128)) + Q_8_8(0.0234375), // sin(1*(π/128)) + Q_8_8(0.046875), // sin(2*(π/128)) + Q_8_8(0.0703125), // sin(3*(π/128)) + Q_8_8(0.09765625), // sin(4*(π/128)) + Q_8_8(0.12109375), // sin(5*(π/128)) + Q_8_8(0.14453125), // sin(6*(π/128)) + Q_8_8(0.16796875), // sin(7*(π/128)) + Q_8_8(0.19140625), // sin(8*(π/128)) + Q_8_8(0.21875), // sin(9*(π/128)) + Q_8_8(0.2421875), // sin(10*(π/128)) + Q_8_8(0.265625), // sin(11*(π/128)) + Q_8_8(0.2890625), // sin(12*(π/128)) + Q_8_8(0.3125), // sin(13*(π/128)) + Q_8_8(0.3359375), // sin(14*(π/128)) + Q_8_8(0.359375), // sin(15*(π/128)) + Q_8_8(0.37890625), // sin(16*(π/128)) + Q_8_8(0.40234375), // sin(17*(π/128)) + Q_8_8(0.42578125), // sin(18*(π/128)) + Q_8_8(0.44921875), // sin(19*(π/128)) + Q_8_8(0.46875), // sin(20*(π/128)) + Q_8_8(0.4921875), // sin(21*(π/128)) + Q_8_8(0.51171875), // sin(22*(π/128)) + Q_8_8(0.53125), // sin(23*(π/128)) + Q_8_8(0.5546875), // sin(24*(π/128)) + Q_8_8(0.57421875), // sin(25*(π/128)) + Q_8_8(0.59375), // sin(26*(π/128)) + Q_8_8(0.61328125), // sin(27*(π/128)) + Q_8_8(0.6328125), // sin(28*(π/128)) + Q_8_8(0.65234375), // sin(29*(π/128)) + Q_8_8(0.66796875), // sin(30*(π/128)) + Q_8_8(0.6875), // sin(31*(π/128)) + Q_8_8(0.70703125), // sin(32*(π/128)) + Q_8_8(0.72265625), // sin(33*(π/128)) + Q_8_8(0.73828125), // sin(34*(π/128)) + Q_8_8(0.75390625), // sin(35*(π/128)) + Q_8_8(0.76953125), // sin(36*(π/128)) + Q_8_8(0.78515625), // sin(37*(π/128)) + Q_8_8(0.80078125), // sin(38*(π/128)) + Q_8_8(0.81640625), // sin(39*(π/128)) + Q_8_8(0.828125), // sin(40*(π/128)) + Q_8_8(0.84375), // sin(41*(π/128)) + Q_8_8(0.85546875), // sin(42*(π/128)) + Q_8_8(0.8671875), // sin(43*(π/128)) + Q_8_8(0.87890625), // sin(44*(π/128)) + Q_8_8(0.890625), // sin(45*(π/128)) + Q_8_8(0.90234375), // sin(46*(π/128)) + Q_8_8(0.9140625), // sin(47*(π/128)) + Q_8_8(0.921875), // sin(48*(π/128)) + Q_8_8(0.9296875), // sin(49*(π/128)) + Q_8_8(0.94140625), // sin(50*(π/128)) + Q_8_8(0.94921875), // sin(51*(π/128)) + Q_8_8(0.953125), // sin(52*(π/128)) + Q_8_8(0.9609375), // sin(53*(π/128)) + Q_8_8(0.96875), // sin(54*(π/128)) + Q_8_8(0.97265625), // sin(55*(π/128)) + Q_8_8(0.98046875), // sin(56*(π/128)) + Q_8_8(0.984375), // sin(57*(π/128)) + Q_8_8(0.98828125), // sin(58*(π/128)) + Q_8_8(0.9921875), // sin(59*(π/128)) + Q_8_8(0.9921875), // sin(60*(π/128)) + Q_8_8(0.99609375), // sin(61*(π/128)) + Q_8_8(0.99609375), // sin(62*(π/128)) + Q_8_8(0.99609375), // sin(63*(π/128)) + Q_8_8(1), // sin(64*(π/128)) + Q_8_8(0.99609375), // sin(65*(π/128)) + Q_8_8(0.99609375), // sin(66*(π/128)) + Q_8_8(0.99609375), // sin(67*(π/128)) + Q_8_8(0.9921875), // sin(68*(π/128)) + Q_8_8(0.9921875), // sin(69*(π/128)) + Q_8_8(0.98828125), // sin(70*(π/128)) + Q_8_8(0.984375), // sin(71*(π/128)) + Q_8_8(0.98046875), // sin(72*(π/128)) + Q_8_8(0.97265625), // sin(73*(π/128)) + Q_8_8(0.96875), // sin(74*(π/128)) + Q_8_8(0.9609375), // sin(75*(π/128)) + Q_8_8(0.953125), // sin(76*(π/128)) + Q_8_8(0.94921875), // sin(77*(π/128)) + Q_8_8(0.94140625), // sin(78*(π/128)) + Q_8_8(0.9296875), // sin(79*(π/128)) + Q_8_8(0.921875), // sin(80*(π/128)) + Q_8_8(0.9140625), // sin(81*(π/128)) + Q_8_8(0.90234375), // sin(82*(π/128)) + Q_8_8(0.890625), // sin(83*(π/128)) + Q_8_8(0.87890625), // sin(84*(π/128)) + Q_8_8(0.8671875), // sin(85*(π/128)) + Q_8_8(0.85546875), // sin(86*(π/128)) + Q_8_8(0.84375), // sin(87*(π/128)) + Q_8_8(0.828125), // sin(88*(π/128)) + Q_8_8(0.81640625), // sin(89*(π/128)) + Q_8_8(0.80078125), // sin(90*(π/128)) + Q_8_8(0.78515625), // sin(91*(π/128)) + Q_8_8(0.76953125), // sin(92*(π/128)) + Q_8_8(0.75390625), // sin(93*(π/128)) + Q_8_8(0.73828125), // sin(94*(π/128)) + Q_8_8(0.72265625), // sin(95*(π/128)) + Q_8_8(0.70703125), // sin(96*(π/128)) + Q_8_8(0.6875), // sin(97*(π/128)) + Q_8_8(0.66796875), // sin(98*(π/128)) + Q_8_8(0.65234375), // sin(99*(π/128)) + Q_8_8(0.6328125), // sin(100*(π/128)) + Q_8_8(0.61328125), // sin(101*(π/128)) + Q_8_8(0.59375), // sin(102*(π/128)) + Q_8_8(0.57421875), // sin(103*(π/128)) + Q_8_8(0.5546875), // sin(104*(π/128)) + Q_8_8(0.53125), // sin(105*(π/128)) + Q_8_8(0.51171875), // sin(106*(π/128)) + Q_8_8(0.4921875), // sin(107*(π/128)) + Q_8_8(0.46875), // sin(108*(π/128)) + Q_8_8(0.44921875), // sin(109*(π/128)) + Q_8_8(0.42578125), // sin(110*(π/128)) + Q_8_8(0.40234375), // sin(111*(π/128)) + Q_8_8(0.37890625), // sin(112*(π/128)) + Q_8_8(0.359375), // sin(113*(π/128)) + Q_8_8(0.3359375), // sin(114*(π/128)) + Q_8_8(0.3125), // sin(115*(π/128)) + Q_8_8(0.2890625), // sin(116*(π/128)) + Q_8_8(0.265625), // sin(117*(π/128)) + Q_8_8(0.2421875), // sin(118*(π/128)) + Q_8_8(0.21875), // sin(119*(π/128)) + Q_8_8(0.19140625), // sin(120*(π/128)) + Q_8_8(0.16796875), // sin(121*(π/128)) + Q_8_8(0.14453125), // sin(122*(π/128)) + Q_8_8(0.12109375), // sin(123*(π/128)) + Q_8_8(0.09765625), // sin(124*(π/128)) + Q_8_8(0.0703125), // sin(125*(π/128)) + Q_8_8(0.046875), // sin(126*(π/128)) + Q_8_8(0.0234375), // sin(127*(π/128)) + Q_8_8(0), // sin(128*(π/128)) + Q_8_8(-0.0234375), // sin(129*(π/128)) + Q_8_8(-0.046875), // sin(130*(π/128)) + Q_8_8(-0.0703125), // sin(131*(π/128)) + Q_8_8(-0.09765625), // sin(132*(π/128)) + Q_8_8(-0.12109375), // sin(133*(π/128)) + Q_8_8(-0.14453125), // sin(134*(π/128)) + Q_8_8(-0.16796875), // sin(135*(π/128)) + Q_8_8(-0.19140625), // sin(136*(π/128)) + Q_8_8(-0.21875), // sin(137*(π/128)) + Q_8_8(-0.2421875), // sin(138*(π/128)) + Q_8_8(-0.265625), // sin(139*(π/128)) + Q_8_8(-0.2890625), // sin(140*(π/128)) + Q_8_8(-0.3125), // sin(141*(π/128)) + Q_8_8(-0.3359375), // sin(142*(π/128)) + Q_8_8(-0.359375), // sin(143*(π/128)) + Q_8_8(-0.37890625), // sin(144*(π/128)) + Q_8_8(-0.40234375), // sin(145*(π/128)) + Q_8_8(-0.42578125), // sin(146*(π/128)) + Q_8_8(-0.44921875), // sin(147*(π/128)) + Q_8_8(-0.46875), // sin(148*(π/128)) + Q_8_8(-0.4921875), // sin(149*(π/128)) + Q_8_8(-0.51171875), // sin(150*(π/128)) + Q_8_8(-0.53125), // sin(151*(π/128)) + Q_8_8(-0.5546875), // sin(152*(π/128)) + Q_8_8(-0.57421875), // sin(153*(π/128)) + Q_8_8(-0.59375), // sin(154*(π/128)) + Q_8_8(-0.61328125), // sin(155*(π/128)) + Q_8_8(-0.6328125), // sin(156*(π/128)) + Q_8_8(-0.65234375), // sin(157*(π/128)) + Q_8_8(-0.66796875), // sin(158*(π/128)) + Q_8_8(-0.6875), // sin(159*(π/128)) + Q_8_8(-0.70703125), // sin(160*(π/128)) + Q_8_8(-0.72265625), // sin(161*(π/128)) + Q_8_8(-0.73828125), // sin(162*(π/128)) + Q_8_8(-0.75390625), // sin(163*(π/128)) + Q_8_8(-0.76953125), // sin(164*(π/128)) + Q_8_8(-0.78515625), // sin(165*(π/128)) + Q_8_8(-0.80078125), // sin(166*(π/128)) + Q_8_8(-0.81640625), // sin(167*(π/128)) + Q_8_8(-0.828125), // sin(168*(π/128)) + Q_8_8(-0.84375), // sin(169*(π/128)) + Q_8_8(-0.85546875), // sin(170*(π/128)) + Q_8_8(-0.8671875), // sin(171*(π/128)) + Q_8_8(-0.87890625), // sin(172*(π/128)) + Q_8_8(-0.890625), // sin(173*(π/128)) + Q_8_8(-0.90234375), // sin(174*(π/128)) + Q_8_8(-0.9140625), // sin(175*(π/128)) + Q_8_8(-0.921875), // sin(176*(π/128)) + Q_8_8(-0.9296875), // sin(177*(π/128)) + Q_8_8(-0.94140625), // sin(178*(π/128)) + Q_8_8(-0.94921875), // sin(179*(π/128)) + Q_8_8(-0.953125), // sin(180*(π/128)) + Q_8_8(-0.9609375), // sin(181*(π/128)) + Q_8_8(-0.96875), // sin(182*(π/128)) + Q_8_8(-0.97265625), // sin(183*(π/128)) + Q_8_8(-0.98046875), // sin(184*(π/128)) + Q_8_8(-0.984375), // sin(185*(π/128)) + Q_8_8(-0.98828125), // sin(186*(π/128)) + Q_8_8(-0.9921875), // sin(187*(π/128)) + Q_8_8(-0.9921875), // sin(188*(π/128)) + Q_8_8(-0.99609375), // sin(189*(π/128)) + Q_8_8(-0.99609375), // sin(190*(π/128)) + Q_8_8(-0.99609375), // sin(191*(π/128)) + Q_8_8(-1), // sin(192*(π/128)) + Q_8_8(-0.99609375), // sin(193*(π/128)) + Q_8_8(-0.99609375), // sin(194*(π/128)) + Q_8_8(-0.99609375), // sin(195*(π/128)) + Q_8_8(-0.9921875), // sin(196*(π/128)) + Q_8_8(-0.9921875), // sin(197*(π/128)) + Q_8_8(-0.98828125), // sin(198*(π/128)) + Q_8_8(-0.984375), // sin(199*(π/128)) + Q_8_8(-0.98046875), // sin(200*(π/128)) + Q_8_8(-0.97265625), // sin(201*(π/128)) + Q_8_8(-0.96875), // sin(202*(π/128)) + Q_8_8(-0.9609375), // sin(203*(π/128)) + Q_8_8(-0.953125), // sin(204*(π/128)) + Q_8_8(-0.94921875), // sin(205*(π/128)) + Q_8_8(-0.94140625), // sin(206*(π/128)) + Q_8_8(-0.9296875), // sin(207*(π/128)) + Q_8_8(-0.921875), // sin(208*(π/128)) + Q_8_8(-0.9140625), // sin(209*(π/128)) + Q_8_8(-0.90234375), // sin(210*(π/128)) + Q_8_8(-0.890625), // sin(211*(π/128)) + Q_8_8(-0.87890625), // sin(212*(π/128)) + Q_8_8(-0.8671875), // sin(213*(π/128)) + Q_8_8(-0.85546875), // sin(214*(π/128)) + Q_8_8(-0.84375), // sin(215*(π/128)) + Q_8_8(-0.828125), // sin(216*(π/128)) + Q_8_8(-0.81640625), // sin(217*(π/128)) + Q_8_8(-0.80078125), // sin(218*(π/128)) + Q_8_8(-0.78515625), // sin(219*(π/128)) + Q_8_8(-0.76953125), // sin(220*(π/128)) + Q_8_8(-0.75390625), // sin(221*(π/128)) + Q_8_8(-0.73828125), // sin(222*(π/128)) + Q_8_8(-0.72265625), // sin(223*(π/128)) + Q_8_8(-0.70703125), // sin(224*(π/128)) + Q_8_8(-0.6875), // sin(225*(π/128)) + Q_8_8(-0.66796875), // sin(226*(π/128)) + Q_8_8(-0.65234375), // sin(227*(π/128)) + Q_8_8(-0.6328125), // sin(228*(π/128)) + Q_8_8(-0.61328125), // sin(229*(π/128)) + Q_8_8(-0.59375), // sin(230*(π/128)) + Q_8_8(-0.57421875), // sin(231*(π/128)) + Q_8_8(-0.5546875), // sin(232*(π/128)) + Q_8_8(-0.53125), // sin(233*(π/128)) + Q_8_8(-0.51171875), // sin(234*(π/128)) + Q_8_8(-0.4921875), // sin(235*(π/128)) + Q_8_8(-0.46875), // sin(236*(π/128)) + Q_8_8(-0.44921875), // sin(237*(π/128)) + Q_8_8(-0.42578125), // sin(238*(π/128)) + Q_8_8(-0.40234375), // sin(239*(π/128)) + Q_8_8(-0.37890625), // sin(240*(π/128)) + Q_8_8(-0.359375), // sin(241*(π/128)) + Q_8_8(-0.3359375), // sin(242*(π/128)) + Q_8_8(-0.3125), // sin(243*(π/128)) + Q_8_8(-0.2890625), // sin(244*(π/128)) + Q_8_8(-0.265625), // sin(245*(π/128)) + Q_8_8(-0.2421875), // sin(246*(π/128)) + Q_8_8(-0.21875), // sin(247*(π/128)) + Q_8_8(-0.19140625), // sin(248*(π/128)) + Q_8_8(-0.16796875), // sin(249*(π/128)) + Q_8_8(-0.14453125), // sin(250*(π/128)) + Q_8_8(-0.12109375), // sin(251*(π/128)) + Q_8_8(-0.09765625), // sin(252*(π/128)) + Q_8_8(-0.0703125), // sin(253*(π/128)) + Q_8_8(-0.046875), // sin(254*(π/128)) + Q_8_8(-0.0234375), // sin(255*(π/128)) + Q_8_8(0), // sin(256*(π/128)) + Q_8_8(0.0234375), // sin(257*(π/128)) + Q_8_8(0.046875), // sin(258*(π/128)) + Q_8_8(0.0703125), // sin(259*(π/128)) + Q_8_8(0.09765625), // sin(260*(π/128)) + Q_8_8(0.12109375), // sin(261*(π/128)) + Q_8_8(0.14453125), // sin(262*(π/128)) + Q_8_8(0.16796875), // sin(263*(π/128)) + Q_8_8(0.19140625), // sin(264*(π/128)) + Q_8_8(0.21875), // sin(265*(π/128)) + Q_8_8(0.2421875), // sin(266*(π/128)) + Q_8_8(0.265625), // sin(267*(π/128)) + Q_8_8(0.2890625), // sin(268*(π/128)) + Q_8_8(0.3125), // sin(269*(π/128)) + Q_8_8(0.3359375), // sin(270*(π/128)) + Q_8_8(0.359375), // sin(271*(π/128)) + Q_8_8(0.37890625), // sin(272*(π/128)) + Q_8_8(0.40234375), // sin(273*(π/128)) + Q_8_8(0.42578125), // sin(274*(π/128)) + Q_8_8(0.44921875), // sin(275*(π/128)) + Q_8_8(0.46875), // sin(276*(π/128)) + Q_8_8(0.4921875), // sin(277*(π/128)) + Q_8_8(0.51171875), // sin(278*(π/128)) + Q_8_8(0.53125), // sin(279*(π/128)) + Q_8_8(0.5546875), // sin(280*(π/128)) + Q_8_8(0.57421875), // sin(281*(π/128)) + Q_8_8(0.59375), // sin(282*(π/128)) + Q_8_8(0.61328125), // sin(283*(π/128)) + Q_8_8(0.6328125), // sin(284*(π/128)) + Q_8_8(0.65234375), // sin(285*(π/128)) + Q_8_8(0.66796875), // sin(286*(π/128)) + Q_8_8(0.6875), // sin(287*(π/128)) + Q_8_8(0.70703125), // sin(288*(π/128)) + Q_8_8(0.72265625), // sin(289*(π/128)) + Q_8_8(0.73828125), // sin(290*(π/128)) + Q_8_8(0.75390625), // sin(291*(π/128)) + Q_8_8(0.76953125), // sin(292*(π/128)) + Q_8_8(0.78515625), // sin(293*(π/128)) + Q_8_8(0.80078125), // sin(294*(π/128)) + Q_8_8(0.81640625), // sin(295*(π/128)) + Q_8_8(0.828125), // sin(296*(π/128)) + Q_8_8(0.84375), // sin(297*(π/128)) + Q_8_8(0.85546875), // sin(298*(π/128)) + Q_8_8(0.8671875), // sin(299*(π/128)) + Q_8_8(0.87890625), // sin(300*(π/128)) + Q_8_8(0.890625), // sin(301*(π/128)) + Q_8_8(0.90234375), // sin(302*(π/128)) + Q_8_8(0.9140625), // sin(303*(π/128)) + Q_8_8(0.921875), // sin(304*(π/128)) + Q_8_8(0.9296875), // sin(305*(π/128)) + Q_8_8(0.94140625), // sin(306*(π/128)) + Q_8_8(0.94921875), // sin(307*(π/128)) + Q_8_8(0.953125), // sin(308*(π/128)) + Q_8_8(0.9609375), // sin(309*(π/128)) + Q_8_8(0.96875), // sin(310*(π/128)) + Q_8_8(0.97265625), // sin(311*(π/128)) + Q_8_8(0.98046875), // sin(312*(π/128)) + Q_8_8(0.984375), // sin(313*(π/128)) + Q_8_8(0.98828125), // sin(314*(π/128)) + Q_8_8(0.9921875), // sin(315*(π/128)) + Q_8_8(0.9921875), // sin(316*(π/128)) + Q_8_8(0.99609375), // sin(317*(π/128)) + Q_8_8(0.99609375), // sin(318*(π/128)) + Q_8_8(0.99609375), // sin(319*(π/128)) +}; + +// values of sin(x) as Q4.12 fixed-point numbers from x = 0° to x = 179° +const s16 gSineDegreeTable[] = +{ + Q_4_12(0), // sin(0°) + Q_4_12(0.017333984375), // sin(1°) + Q_4_12(0.034912109375), // sin(2°) + Q_4_12(0.05224609375), // sin(3°) + Q_4_12(0.06982421875), // sin(4°) + Q_4_12(0.087158203125), // sin(5°) + Q_4_12(0.1044921875), // sin(6°) + Q_4_12(0.121826171875), // sin(7°) + Q_4_12(0.13916015625), // sin(8°) + Q_4_12(0.156494140625), // sin(9°) + Q_4_12(0.173583984375), // sin(10°) + Q_4_12(0.19091796875), // sin(11°) + Q_4_12(0.2080078125), // sin(12°) + Q_4_12(0.224853515625), // sin(13°) + Q_4_12(0.241943359375), // sin(14°) + Q_4_12(0.2587890625), // sin(15°) + Q_4_12(0.275634765625), // sin(16°) + Q_4_12(0.29248046875), // sin(17°) + Q_4_12(0.30908203125), // sin(18°) + Q_4_12(0.32568359375), // sin(19°) + Q_4_12(0.342041015625), // sin(20°) + Q_4_12(0.3583984375), // sin(21°) + Q_4_12(0.37451171875), // sin(22°) + Q_4_12(0.390625), // sin(23°) + Q_4_12(0.40673828125), // sin(24°) + Q_4_12(0.422607421875), // sin(25°) + Q_4_12(0.4384765625), // sin(26°) + Q_4_12(0.4541015625), // sin(27°) + Q_4_12(0.469482421875), // sin(28°) + Q_4_12(0.48486328125), // sin(29°) + Q_4_12(0.5), // sin(30°) + Q_4_12(0.51513671875), // sin(31°) + Q_4_12(0.530029296875), // sin(32°) + Q_4_12(0.544677734375), // sin(33°) + Q_4_12(0.55908203125), // sin(34°) + Q_4_12(0.573486328125), // sin(35°) + Q_4_12(0.587890625), // sin(36°) + Q_4_12(0.601806640625), // sin(37°) + Q_4_12(0.61572265625), // sin(38°) + Q_4_12(0.62939453125), // sin(39°) + Q_4_12(0.642822265625), // sin(40°) + Q_4_12(0.656005859375), // sin(41°) + Q_4_12(0.669189453125), // sin(42°) + Q_4_12(0.681884765625), // sin(43°) + Q_4_12(0.694580078125), // sin(44°) + Q_4_12(0.70703125), // sin(45°) + Q_4_12(0.71923828125), // sin(46°) + Q_4_12(0.7314453125), // sin(47°) + Q_4_12(0.7431640625), // sin(48°) + Q_4_12(0.754638671875), // sin(49°) + Q_4_12(0.76611328125), // sin(50°) + Q_4_12(0.777099609375), // sin(51°) + Q_4_12(0.7880859375), // sin(52°) + Q_4_12(0.798583984375), // sin(53°) + Q_4_12(0.80908203125), // sin(54°) + Q_4_12(0.819091796875), // sin(55°) + Q_4_12(0.8291015625), // sin(56°) + Q_4_12(0.838623046875), // sin(57°) + Q_4_12(0.84814453125), // sin(58°) + Q_4_12(0.857177734375), // sin(59°) + Q_4_12(0.865966796875), // sin(60°) + Q_4_12(0.87451171875), // sin(61°) + Q_4_12(0.883056640625), // sin(62°) + Q_4_12(0.89111328125), // sin(63°) + Q_4_12(0.898681640625), // sin(64°) + Q_4_12(0.90625), // sin(65°) + Q_4_12(0.91357421875), // sin(66°) + Q_4_12(0.92041015625), // sin(67°) + Q_4_12(0.92724609375), // sin(68°) + Q_4_12(0.93359375), // sin(69°) + Q_4_12(0.939697265625), // sin(70°) + Q_4_12(0.945556640625), // sin(71°) + Q_4_12(0.951171875), // sin(72°) + Q_4_12(0.956298828125), // sin(73°) + Q_4_12(0.961181640625), // sin(74°) + Q_4_12(0.9658203125), // sin(75°) + Q_4_12(0.97021484375), // sin(76°) + Q_4_12(0.974365234375), // sin(77°) + Q_4_12(0.97802734375), // sin(78°) + Q_4_12(0.981689453125), // sin(79°) + Q_4_12(0.98486328125), // sin(80°) + Q_4_12(0.98779296875), // sin(81°) + Q_4_12(0.990234375), // sin(82°) + Q_4_12(0.992431640625), // sin(83°) + Q_4_12(0.994384765625), // sin(84°) + Q_4_12(0.99609375), // sin(85°) + Q_4_12(0.99755859375), // sin(86°) + Q_4_12(0.99853515625), // sin(87°) + Q_4_12(0.999267578125), // sin(88°) + Q_4_12(0.999755859375), // sin(89°) + Q_4_12(1), // sin(90°) + Q_4_12(0.999755859375), // sin(91°) + Q_4_12(0.999267578125), // sin(92°) + Q_4_12(0.99853515625), // sin(93°) + Q_4_12(0.99755859375), // sin(94°) + Q_4_12(0.99609375), // sin(95°) + Q_4_12(0.994384765625), // sin(96°) + Q_4_12(0.992431640625), // sin(97°) + Q_4_12(0.990234375), // sin(98°) + Q_4_12(0.98779296875), // sin(99°) + Q_4_12(0.98486328125), // sin(100°) + Q_4_12(0.981689453125), // sin(101°) + Q_4_12(0.97802734375), // sin(102°) + Q_4_12(0.974365234375), // sin(103°) + Q_4_12(0.97021484375), // sin(104°) + Q_4_12(0.9658203125), // sin(105°) + Q_4_12(0.961181640625), // sin(106°) + Q_4_12(0.956298828125), // sin(107°) + Q_4_12(0.951171875), // sin(108°) + Q_4_12(0.945556640625), // sin(109°) + Q_4_12(0.939697265625), // sin(110°) + Q_4_12(0.93359375), // sin(111°) + Q_4_12(0.92724609375), // sin(112°) + Q_4_12(0.92041015625), // sin(113°) + Q_4_12(0.91357421875), // sin(114°) + Q_4_12(0.90625), // sin(115°) + Q_4_12(0.898681640625), // sin(116°) + Q_4_12(0.89111328125), // sin(117°) + Q_4_12(0.883056640625), // sin(118°) + Q_4_12(0.87451171875), // sin(119°) + Q_4_12(0.865966796875), // sin(120°) + Q_4_12(0.857177734375), // sin(121°) + Q_4_12(0.84814453125), // sin(122°) + Q_4_12(0.838623046875), // sin(123°) + Q_4_12(0.8291015625), // sin(124°) + Q_4_12(0.819091796875), // sin(125°) + Q_4_12(0.80908203125), // sin(126°) + Q_4_12(0.798583984375), // sin(127°) + Q_4_12(0.7880859375), // sin(128°) + Q_4_12(0.777099609375), // sin(129°) + Q_4_12(0.76611328125), // sin(130°) + Q_4_12(0.754638671875), // sin(131°) + Q_4_12(0.7431640625), // sin(132°) + Q_4_12(0.7314453125), // sin(133°) + Q_4_12(0.71923828125), // sin(134°) + Q_4_12(0.70703125), // sin(135°) + Q_4_12(0.694580078125), // sin(136°) + Q_4_12(0.681884765625), // sin(137°) + Q_4_12(0.669189453125), // sin(138°) + Q_4_12(0.656005859375), // sin(139°) + Q_4_12(0.642822265625), // sin(140°) + Q_4_12(0.62939453125), // sin(141°) + Q_4_12(0.61572265625), // sin(142°) + Q_4_12(0.601806640625), // sin(143°) + Q_4_12(0.587890625), // sin(144°) + Q_4_12(0.573486328125), // sin(145°) + Q_4_12(0.55908203125), // sin(146°) + Q_4_12(0.544677734375), // sin(147°) + Q_4_12(0.530029296875), // sin(148°) + Q_4_12(0.51513671875), // sin(149°) + Q_4_12(0.5), // sin(150°) + Q_4_12(0.48486328125), // sin(151°) + Q_4_12(0.469482421875), // sin(152°) + Q_4_12(0.4541015625), // sin(153°) + Q_4_12(0.4384765625), // sin(154°) + Q_4_12(0.422607421875), // sin(155°) + Q_4_12(0.40673828125), // sin(156°) + Q_4_12(0.390625), // sin(157°) + Q_4_12(0.37451171875), // sin(158°) + Q_4_12(0.3583984375), // sin(159°) + Q_4_12(0.342041015625), // sin(160°) + Q_4_12(0.32568359375), // sin(161°) + Q_4_12(0.30908203125), // sin(162°) + Q_4_12(0.29248046875), // sin(163°) + Q_4_12(0.275634765625), // sin(164°) + Q_4_12(0.2587890625), // sin(165°) + Q_4_12(0.241943359375), // sin(166°) + Q_4_12(0.224853515625), // sin(167°) + Q_4_12(0.2080078125), // sin(168°) + Q_4_12(0.19091796875), // sin(169°) + Q_4_12(0.173583984375), // sin(170°) + Q_4_12(0.156494140625), // sin(171°) + Q_4_12(0.13916015625), // sin(172°) + Q_4_12(0.121826171875), // sin(173°) + Q_4_12(0.1044921875), // sin(174°) + Q_4_12(0.087158203125), // sin(175°) + Q_4_12(0.06982421875), // sin(176°) + Q_4_12(0.05224609375), // sin(177°) + Q_4_12(0.034912109375), // sin(178°) + Q_4_12(0.017333984375), // sin(179°) +}; + +// amplitude * sin(index*(π/128)) +s16 Sin(s16 index, s16 amplitude) +{ + return (amplitude * gSineTable[index]) >> 8; +} + +// amplitude * cos(index*(π/128)) +s16 Cos(s16 index, s16 amplitude) +{ + return (amplitude * gSineTable[index + 64]) >> 8; +} + +// angle in degrees +s16 Sin2(u16 angle) +{ + s32 angleMod = angle % 180; + s32 negate = ((angle / 180) & 1); + s16 value = gSineDegreeTable[angleMod]; + + if (negate) + return -value; + else + return value; +} + +// angle in degrees +s16 Cos2(u16 angle) +{ + return Sin2(angle + 90); +} diff --git a/src/unk_8159F40.c b/src/unk_8159F40.c new file mode 100644 index 000000000..a6f6e67fc --- /dev/null +++ b/src/unk_8159F40.c @@ -0,0 +1,622 @@ +#include "global.h" +#include "battle.h" +#include "event_data.h" +#include "quest_log.h" +#include "fieldmap.h" +#include "field_player_avatar.h" +#include "metatile_behavior.h" +#include "link.h" +#include "link_rfu.h" + +struct UnkStruct_84792D0 +{ + u8 field_0; + u8 field_1; + u16 field_2; + u16 field_4[4]; + u8 field_C; + u8 field_D; +}; + +extern const struct UnkStruct_84792D0 *const gUnknown_84792D0[]; + +void sub_8159F40(void) +{ + s32 i, j; + struct Pokemon *mon; + s32 myIdx = 0; + s32 opIdx = 0; + const struct UnkStruct_84792D0 * data; + + gBattleTypeFlags = BATTLE_TYPE_DOME; + ZeroPlayerPartyMons(); + ZeroEnemyPartyMons(); + data = gUnknown_84792D0[gSpecialVar_0x8004]; + + i = 0; + do + { + if (data[i].field_0 == 0) + { + mon = &gPlayerParty[myIdx]; + myIdx++; + } + else + { + mon = &gEnemyParty[opIdx]; + opIdx++; + } + CreateMonWithGenderNatureLetter(mon, data[i].field_2, data[i].field_1, 0, data[i].field_D, data[i].field_C, 0); + for (j = 0; j < 4; j++) + { + SetMonMoveSlot(mon, data[i].field_4[j], j); + } + i++; + } while (data[i].field_0 != 0xFF); +} + +void sub_815A008(struct QuestLog * questLog) +{ + u32 i; + + for (i = 0; i < MAP_OBJECTS_COUNT; i++) + { + questLog->unk_008[i].active = gMapObjects[i].active; + questLog->unk_008[i].mapobj_bit_3 = gMapObjects[i].mapobj_bit_3; + questLog->unk_008[i].mapobj_bit_4 = gMapObjects[i].mapobj_bit_4; + questLog->unk_008[i].mapobj_bit_5 = gMapObjects[i].mapobj_bit_5; + questLog->unk_008[i].mapobj_bit_8 = gMapObjects[i].mapobj_bit_8; + questLog->unk_008[i].mapobj_bit_9 = gMapObjects[i].mapobj_bit_9; + questLog->unk_008[i].mapobj_bit_10 = gMapObjects[i].mapobj_bit_10; + questLog->unk_008[i].mapobj_bit_11 = gMapObjects[i].mapobj_bit_11; + questLog->unk_008[i].mapobj_bit_12 = gMapObjects[i].mapobj_bit_12; + questLog->unk_008[i].mapobj_bit_13 = gMapObjects[i].mapobj_bit_13; + questLog->unk_008[i].mapobj_bit_14 = gMapObjects[i].mapobj_bit_14; + questLog->unk_008[i].mapobj_bit_15 = gMapObjects[i].mapobj_bit_15; + questLog->unk_008[i].mapobj_bit_16 = gMapObjects[i].mapobj_bit_16; + questLog->unk_008[i].mapobj_bit_23 = gMapObjects[i].mapobj_bit_23; + questLog->unk_008[i].mapobj_bit_24 = gMapObjects[i].mapobj_bit_24; + questLog->unk_008[i].mapobj_bit_25 = gMapObjects[i].mapobj_bit_25; + questLog->unk_008[i].mapobj_bit_26 = gMapObjects[i].mapobj_bit_26; + questLog->unk_008[i].mapobj_unk_18 = gMapObjects[i].mapobj_unk_18; + questLog->unk_008[i].mapobj_unk_0B_0 = gMapObjects[i].mapobj_unk_0B_0; + questLog->unk_008[i].elevation = gMapObjects[i].elevation; + questLog->unk_008[i].graphicsId = gMapObjects[i].graphicsId; + questLog->unk_008[i].animPattern = gMapObjects[i].animPattern; + questLog->unk_008[i].trainerType = gMapObjects[i].trainerType; + questLog->unk_008[i].localId = gMapObjects[i].localId; + questLog->unk_008[i].mapNum = gMapObjects[i].mapNum; + questLog->unk_008[i].mapGroup = gMapObjects[i].mapGroup; + questLog->unk_008[i].x = gMapObjects[i].coords2.x; + questLog->unk_008[i].y = gMapObjects[i].coords2.y; + questLog->unk_008[i].trainerRange_berryTreeId = gMapObjects[i].trainerRange_berryTreeId; + questLog->unk_008[i].mapobj_unk_1F = gMapObjects[i].mapobj_unk_1F; + questLog->unk_008[i].mapobj_unk_21 = gMapObjects[i].mapobj_unk_21; + questLog->unk_008[i].animId = gMapObjects[i].animId; + } +} + +#ifdef NONMATCHING +void sub_815A1F8(const struct QuestLog * questLog, const struct MapObjectTemplate * templates) +{ + u32 i, j; + const struct QuestLogMapObject * questLogMapObjects = questLog->unk_008; + + CpuFill16(0, gMapObjects, sizeof(gMapObjects)); + + for (i = 0; i < MAP_OBJECTS_COUNT; i++) + { + gMapObjects[i].active = questLogMapObjects[i].active; + gMapObjects[i].mapobj_bit_3 = questLogMapObjects[i].mapobj_bit_3; + gMapObjects[i].mapobj_bit_4 = questLogMapObjects[i].mapobj_bit_4; + gMapObjects[i].mapobj_bit_5 = questLogMapObjects[i].mapobj_bit_5; + gMapObjects[i].mapobj_bit_8 = questLogMapObjects[i].mapobj_bit_8; + gMapObjects[i].mapobj_bit_9 = questLogMapObjects[i].mapobj_bit_9; + gMapObjects[i].mapobj_bit_10 = questLogMapObjects[i].mapobj_bit_10; + gMapObjects[i].mapobj_bit_11 = questLogMapObjects[i].mapobj_bit_11; + gMapObjects[i].mapobj_bit_12 = questLogMapObjects[i].mapobj_bit_12; + gMapObjects[i].mapobj_bit_13 = questLogMapObjects[i].mapobj_bit_13; + gMapObjects[i].mapobj_bit_14 = questLogMapObjects[i].mapobj_bit_14; + gMapObjects[i].mapobj_bit_15 = questLogMapObjects[i].mapobj_bit_15; + gMapObjects[i].mapobj_bit_16 = questLogMapObjects[i].mapobj_bit_16; + gMapObjects[i].mapobj_bit_23 = questLogMapObjects[i].mapobj_bit_23; + gMapObjects[i].mapobj_bit_24 = questLogMapObjects[i].mapobj_bit_24; + gMapObjects[i].mapobj_bit_25 = questLogMapObjects[i].mapobj_bit_25; + gMapObjects[i].mapobj_bit_26 = questLogMapObjects[i].mapobj_bit_26; + gMapObjects[i].mapobj_unk_18 = questLogMapObjects[i].mapobj_unk_18; + gMapObjects[i].mapobj_unk_0B_0 = questLogMapObjects[i].mapobj_unk_0B_0; + gMapObjects[i].elevation = questLogMapObjects[i].elevation; + gMapObjects[i].graphicsId = questLogMapObjects[i].graphicsId; + gMapObjects[i].animPattern = questLogMapObjects[i].animPattern; + gMapObjects[i].trainerType = questLogMapObjects[i].trainerType; + gMapObjects[i].localId = questLogMapObjects[i].localId; + gMapObjects[i].mapNum = questLogMapObjects[i].mapNum; + gMapObjects[i].mapGroup = questLogMapObjects[i].mapGroup; + gMapObjects[i].coords2.x = questLogMapObjects[i].x; + gMapObjects[i].coords2.y = questLogMapObjects[i].y; + gMapObjects[i].trainerRange_berryTreeId = questLogMapObjects[i].trainerRange_berryTreeId; + gMapObjects[i].mapobj_unk_1F = questLogMapObjects[i].mapobj_unk_1F; + gMapObjects[i].mapobj_unk_21 = questLogMapObjects[i].mapobj_unk_21; + gMapObjects[i].animId = questLogMapObjects[i].animId; + + for (j = 0; j < 0x40; j++) + { + if (gMapObjects[i].localId == templates[j].localId) + { + gMapObjects[i].coords1.x = templates[j].x + 7; + gMapObjects[i].coords1.y = templates[j].y + 7; + gMapObjects[i].range.as_nybbles.x = templates[j].range.as_nybbles.x; + gMapObjects[i].range.as_nybbles.y = templates[j].range.as_nybbles.y; + } + } + + gMapObjects[i].mapobj_unk_1E = MapGridGetMetatileBehaviorAt(gMapObjects[i].coords2.x, gMapObjects[i].coords2.y); + if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x), (s16)(gMapObjects[i].coords2.y))) + { + gMapObjects[i].coords3.x = gMapObjects[i].coords2.x; + gMapObjects[i].coords3.y = gMapObjects[i].coords2.y; + } + else if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x - 1), (s16)(gMapObjects[i].coords2.y))) + { + gMapObjects[i].coords3.x = gMapObjects[i].coords2.x - 1; + gMapObjects[i].coords3.y = gMapObjects[i].coords2.y; + } + else if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x + 1), (s16)(gMapObjects[i].coords2.y))) + { + gMapObjects[i].coords3.x = gMapObjects[i].coords2.x + 1; + gMapObjects[i].coords3.y = gMapObjects[i].coords2.y; + } + else if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x), (s16)(gMapObjects[i].coords2.y - 1))) + { + gMapObjects[i].coords3.x = gMapObjects[i].coords2.x; + gMapObjects[i].coords3.y = gMapObjects[i].coords2.y - 1; + } + else if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x), (s16)(gMapObjects[i].coords2.y + 1))) + { + gMapObjects[i].coords3.x = gMapObjects[i].coords2.x; + gMapObjects[i].coords3.y = gMapObjects[i].coords2.y + 1; + } + } + + CpuCopy16(gMapObjects, gSaveBlock1Ptr->mapObjects, sizeof(gMapObjects)); +} +#else +NAKED +void sub_815A1F8(const struct QuestLog * questLog, const struct MapObjectTemplate * templates) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x10\n" + "\tstr r1, [sp, 0x4]\n" + "\tadds r0, 0x8\n" + "\tstr r0, [sp, 0x8]\n" + "\tmov r1, sp\n" + "\tmovs r0, 0\n" + "\tstrh r0, [r1]\n" + "\tldr r4, _0815A480 @ =gMapObjects\n" + "\tldr r2, _0815A484 @ =0x01000120\n" + "\tmov r0, sp\n" + "\tadds r1, r4, 0\n" + "\tbl CpuSet\n" + "\tmovs r0, 0\n" + "\tmov r12, r0\n" + "\tmovs r1, 0x1\n" + "\tmov r10, r1\n" + "_0815A224:\n" + "\tmov r2, r12\n" + "\tlsls r7, r2, 3\n" + "\tadds r5, r7, r2\n" + "\tlsls r5, 2\n" + "\tldr r0, _0815A480 @ =gMapObjects\n" + "\tadds r5, r0\n" + "\tlsls r6, r2, 2\n" + "\tadd r6, r12\n" + "\tlsls r6, 2\n" + "\tldr r1, [sp, 0x8]\n" + "\tadds r6, r1\n" + "\tldrb r0, [r6]\n" + "\tlsls r0, 31\n" + "\tlsrs r0, 31\n" + "\tmov r2, r10\n" + "\tands r0, r2\n" + "\tldrb r2, [r5]\n" + "\tmovs r1, 0x2\n" + "\tnegs r1, r1\n" + "\tands r1, r2\n" + "\torrs r1, r0\n" + "\tstrb r1, [r5]\n" + "\tldrb r0, [r6]\n" + "\tlsls r0, 30\n" + "\tlsrs r0, 31\n" + "\tmov r2, r10\n" + "\tands r0, r2\n" + "\tlsls r0, 3\n" + "\tmovs r2, 0x9\n" + "\tnegs r2, r2\n" + "\tands r2, r1\n" + "\torrs r2, r0\n" + "\tstrb r2, [r5]\n" + "\tldrb r0, [r6]\n" + "\tlsls r0, 29\n" + "\tlsrs r0, 31\n" + "\tmov r1, r10\n" + "\tands r0, r1\n" + "\tlsls r0, 4\n" + "\tmovs r1, 0x11\n" + "\tnegs r1, r1\n" + "\tands r1, r2\n" + "\torrs r1, r0\n" + "\tstrb r1, [r5]\n" + "\tldrb r0, [r6]\n" + "\tlsls r0, 28\n" + "\tlsrs r0, 31\n" + "\tmov r2, r10\n" + "\tands r0, r2\n" + "\tlsls r0, 5\n" + "\tmovs r4, 0x21\n" + "\tnegs r4, r4\n" + "\tands r1, r4\n" + "\torrs r1, r0\n" + "\tstrb r1, [r5]\n" + "\tldrb r0, [r6]\n" + "\tlsls r0, 27\n" + "\tlsrs r0, 31\n" + "\tands r0, r2\n" + "\tldrb r1, [r5, 0x1]\n" + "\tmovs r2, 0x2\n" + "\tnegs r2, r2\n" + "\tands r2, r1\n" + "\torrs r2, r0\n" + "\tstrb r2, [r5, 0x1]\n" + "\tldrb r0, [r6]\n" + "\tlsls r0, 26\n" + "\tlsrs r0, 31\n" + "\tmov r1, r10\n" + "\tands r0, r1\n" + "\tlsls r0, 1\n" + "\tmovs r1, 0x3\n" + "\tnegs r1, r1\n" + "\tmov r8, r1\n" + "\tmov r3, r8\n" + "\tands r3, r2\n" + "\torrs r3, r0\n" + "\tstrb r3, [r5, 0x1]\n" + "\tldrb r0, [r6]\n" + "\tlsls r0, 25\n" + "\tlsrs r0, 31\n" + "\tmov r2, r10\n" + "\tands r0, r2\n" + "\tlsls r0, 2\n" + "\tsubs r1, 0x2\n" + "\tmov r9, r1\n" + "\tands r1, r3\n" + "\torrs r1, r0\n" + "\tstrb r1, [r5, 0x1]\n" + "\tldrb r0, [r6]\n" + "\tlsrs r0, 7\n" + "\tands r0, r2\n" + "\tlsls r0, 3\n" + "\tmovs r2, 0x9\n" + "\tnegs r2, r2\n" + "\tands r2, r1\n" + "\torrs r2, r0\n" + "\tstrb r2, [r5, 0x1]\n" + "\tldrb r0, [r6, 0x1]\n" + "\tlsls r0, 31\n" + "\tlsrs r0, 31\n" + "\tmov r1, r10\n" + "\tands r0, r1\n" + "\tlsls r0, 4\n" + "\tmovs r1, 0x11\n" + "\tnegs r1, r1\n" + "\tands r1, r2\n" + "\torrs r1, r0\n" + "\tstrb r1, [r5, 0x1]\n" + "\tldrb r0, [r6, 0x1]\n" + "\tlsls r0, 30\n" + "\tlsrs r0, 31\n" + "\tmov r2, r10\n" + "\tands r0, r2\n" + "\tlsls r0, 5\n" + "\tands r4, r1\n" + "\torrs r4, r0\n" + "\tstrb r4, [r5, 0x1]\n" + "\tldrb r0, [r6, 0x1]\n" + "\tlsls r0, 29\n" + "\tlsrs r0, 31\n" + "\tands r0, r2\n" + "\tlsls r0, 6\n" + "\tmovs r2, 0x41\n" + "\tnegs r2, r2\n" + "\tadds r1, r2, 0\n" + "\tands r4, r1\n" + "\torrs r4, r0\n" + "\tstrb r4, [r5, 0x1]\n" + "\tldrb r0, [r6, 0x1]\n" + "\tlsls r0, 28\n" + "\tlsrs r0, 31\n" + "\tlsls r0, 7\n" + "\tmovs r3, 0x7F\n" + "\tands r4, r3\n" + "\torrs r4, r0\n" + "\tstrb r4, [r5, 0x1]\n" + "\tldrb r0, [r6, 0x1]\n" + "\tlsls r0, 27\n" + "\tlsrs r0, 31\n" + "\tmov r1, r10\n" + "\tands r0, r1\n" + "\tldrb r2, [r5, 0x2]\n" + "\tmovs r1, 0x2\n" + "\tnegs r1, r1\n" + "\tands r1, r2\n" + "\torrs r1, r0\n" + "\tstrb r1, [r5, 0x2]\n" + "\tldrb r0, [r6, 0x1]\n" + "\tlsls r0, 26\n" + "\tlsrs r0, 31\n" + "\tlsls r0, 7\n" + "\tands r1, r3\n" + "\torrs r1, r0\n" + "\tstrb r1, [r5, 0x2]\n" + "\tldrb r0, [r6, 0x1]\n" + "\tlsls r0, 25\n" + "\tlsrs r0, 31\n" + "\tmov r2, r10\n" + "\tands r0, r2\n" + "\tldrb r2, [r5, 0x3]\n" + "\tmovs r1, 0x2\n" + "\tnegs r1, r1\n" + "\tands r1, r2\n" + "\torrs r1, r0\n" + "\tstrb r1, [r5, 0x3]\n" + "\tldrb r0, [r6, 0x1]\n" + "\tlsrs r0, 7\n" + "\tmov r2, r10\n" + "\tands r0, r2\n" + "\tlsls r0, 1\n" + "\tmov r2, r8\n" + "\tands r2, r1\n" + "\torrs r2, r0\n" + "\tmov r8, r2\n" + "\tstrb r2, [r5, 0x3]\n" + "\tldrb r0, [r6, 0x2]\n" + "\tlsls r0, 31\n" + "\tlsrs r0, 31\n" + "\tmov r1, r10\n" + "\tands r0, r1\n" + "\tlsls r0, 2\n" + "\tmov r1, r9\n" + "\tands r2, r1\n" + "\torrs r2, r0\n" + "\tstrb r2, [r5, 0x3]\n" + "\tldrb r1, [r6, 0x2]\n" + "\tlsls r1, 27\n" + "\tlsrs r1, 28\n" + "\tldrb r2, [r5, 0x18]\n" + "\tmovs r4, 0x10\n" + "\tnegs r4, r4\n" + "\tadds r0, r4, 0\n" + "\tands r0, r2\n" + "\torrs r0, r1\n" + "\tstrb r0, [r5, 0x18]\n" + "\tldrb r1, [r6, 0x3]\n" + "\tlsls r1, 28\n" + "\tmovs r3, 0xF\n" + "\tlsrs r1, 28\n" + "\tldrb r2, [r5, 0xB]\n" + "\tadds r0, r4, 0\n" + "\tands r0, r2\n" + "\torrs r0, r1\n" + "\tstrb r0, [r5, 0xB]\n" + "\tldrb r1, [r6, 0x3]\n" + "\tlsrs r1, 4\n" + "\tlsls r1, 4\n" + "\tands r0, r3\n" + "\torrs r0, r1\n" + "\tstrb r0, [r5, 0xB]\n" + "\tldrb r0, [r6, 0x4]\n" + "\tstrb r0, [r5, 0x5]\n" + "\tldrb r0, [r6, 0x5]\n" + "\tstrb r0, [r5, 0x6]\n" + "\tldrb r0, [r6, 0x6]\n" + "\tstrb r0, [r5, 0x7]\n" + "\tldrb r0, [r6, 0x7]\n" + "\tstrb r0, [r5, 0x8]\n" + "\tldrb r0, [r6, 0x8]\n" + "\tstrb r0, [r5, 0x9]\n" + "\tldrb r0, [r6, 0x9]\n" + "\tstrb r0, [r5, 0xA]\n" + "\tldrh r0, [r6, 0xA]\n" + "\tstrh r0, [r5, 0x10]\n" + "\tldrh r0, [r6, 0xC]\n" + "\tstrh r0, [r5, 0x12]\n" + "\tldrb r0, [r6, 0xE]\n" + "\tstrb r0, [r5, 0x1D]\n" + "\tldrb r0, [r6, 0xF]\n" + "\tstrb r0, [r5, 0x1F]\n" + "\tldrb r0, [r6, 0x10]\n" + "\tadds r1, r5, 0\n" + "\tadds r1, 0x21\n" + "\tstrb r0, [r1]\n" + "\tldrb r0, [r6, 0x11]\n" + "\tadds r1, 0x1\n" + "\tstrb r0, [r1]\n" + "\tmovs r6, 0\n" + "\tmov r8, r7\n" + "\tmov r2, r12\n" + "\tadds r2, 0x1\n" + "\tstr r2, [sp, 0xC]\n" + "\tldrb r7, [r5, 0x8]\n" + "\tldr r3, [sp, 0x4]\n" + "\tmovs r0, 0xF\n" + "\tmov r9, r0\n" + "_0815A412:\n" + "\tldrb r1, [r3]\n" + "\tcmp r7, r1\n" + "\tbne _0815A444\n" + "\tldrh r0, [r3, 0x4]\n" + "\tadds r0, 0x7\n" + "\tstrh r0, [r5, 0xC]\n" + "\tldrh r0, [r3, 0x6]\n" + "\tadds r0, 0x7\n" + "\tstrh r0, [r5, 0xE]\n" + "\tldrb r1, [r3, 0xA]\n" + "\tlsls r1, 28\n" + "\tlsrs r1, 28\n" + "\tmov r2, r9\n" + "\tands r1, r2\n" + "\tldrb r0, [r5, 0x19]\n" + "\tands r0, r4\n" + "\torrs r0, r1\n" + "\tstrb r0, [r5, 0x19]\n" + "\tldrb r1, [r3, 0xA]\n" + "\tlsrs r1, 4\n" + "\tlsls r1, 4\n" + "\tmovs r2, 0xF\n" + "\tands r0, r2\n" + "\torrs r0, r1\n" + "\tstrb r0, [r5, 0x19]\n" + "_0815A444:\n" + "\tadds r3, 0x18\n" + "\tadds r6, 0x1\n" + "\tcmp r6, 0x3F\n" + "\tbls _0815A412\n" + "\tmov r0, r8\n" + "\tadd r0, r12\n" + "\tlsls r0, 2\n" + "\tldr r1, _0815A480 @ =gMapObjects\n" + "\tadds r6, r0, r1\n" + "\tmovs r2, 0x10\n" + "\tldrsh r0, [r6, r2]\n" + "\tmovs r2, 0x12\n" + "\tldrsh r1, [r6, r2]\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tstrb r0, [r6, 0x1E]\n" + "\tldrb r4, [r6, 0x1F]\n" + "\tmovs r1, 0x10\n" + "\tldrsh r0, [r6, r1]\n" + "\tmovs r2, 0x12\n" + "\tldrsh r1, [r6, r2]\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tcmp r4, r0\n" + "\tbne _0815A488\n" + "\tldrh r0, [r6, 0x10]\n" + "\tstrh r0, [r6, 0x14]\n" + "\tldrh r0, [r6, 0x12]\n" + "\tb _0815A506\n" + "\t.align 2, 0\n" + "_0815A480: .4byte gMapObjects\n" + "_0815A484: .4byte 0x01000120\n" + "_0815A488:\n" + "\tldrb r4, [r6, 0x1F]\n" + "\tldrh r0, [r6, 0x10]\n" + "\tsubs r0, 0x1\n" + "\tlsls r0, 16\n" + "\tasrs r0, 16\n" + "\tmovs r2, 0x12\n" + "\tldrsh r1, [r6, r2]\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tcmp r4, r0\n" + "\tbne _0815A4A8\n" + "\tldrh r0, [r6, 0x10]\n" + "\tsubs r0, 0x1\n" + "\tstrh r0, [r6, 0x14]\n" + "\tldrh r0, [r6, 0x12]\n" + "\tb _0815A506\n" + "_0815A4A8:\n" + "\tldrb r4, [r6, 0x1F]\n" + "\tldrh r0, [r6, 0x10]\n" + "\tadds r0, 0x1\n" + "\tlsls r0, 16\n" + "\tasrs r0, 16\n" + "\tmovs r2, 0x12\n" + "\tldrsh r1, [r6, r2]\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tcmp r4, r0\n" + "\tbne _0815A4C8\n" + "\tldrh r0, [r6, 0x10]\n" + "\tadds r0, 0x1\n" + "\tstrh r0, [r6, 0x14]\n" + "\tldrh r0, [r6, 0x12]\n" + "\tb _0815A506\n" + "_0815A4C8:\n" + "\tldrb r4, [r6, 0x1F]\n" + "\tmovs r1, 0x10\n" + "\tldrsh r0, [r6, r1]\n" + "\tldrh r1, [r6, 0x12]\n" + "\tsubs r1, 0x1\n" + "\tlsls r1, 16\n" + "\tasrs r1, 16\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tcmp r4, r0\n" + "\tbne _0815A4E8\n" + "\tldrh r0, [r6, 0x10]\n" + "\tstrh r0, [r6, 0x14]\n" + "\tldrh r0, [r6, 0x12]\n" + "\tsubs r0, 0x1\n" + "\tb _0815A506\n" + "_0815A4E8:\n" + "\tldrb r4, [r6, 0x1F]\n" + "\tmovs r2, 0x10\n" + "\tldrsh r0, [r6, r2]\n" + "\tldrh r1, [r6, 0x12]\n" + "\tadds r1, 0x1\n" + "\tlsls r1, 16\n" + "\tasrs r1, 16\n" + "\tbl MapGridGetMetatileBehaviorAt\n" + "\tcmp r4, r0\n" + "\tbne _0815A508\n" + "\tldrh r0, [r6, 0x10]\n" + "\tstrh r0, [r6, 0x14]\n" + "\tldrh r0, [r6, 0x12]\n" + "\tadds r0, 0x1\n" + "_0815A506:\n" + "\tstrh r0, [r6, 0x16]\n" + "_0815A508:\n" + "\tldr r0, [sp, 0xC]\n" + "\tmov r12, r0\n" + "\tcmp r0, 0xF\n" + "\tbhi _0815A512\n" + "\tb _0815A224\n" + "_0815A512:\n" + "\tldr r0, _0815A538 @ =gMapObjects\n" + "\tldr r1, _0815A53C @ =gSaveBlock1Ptr\n" + "\tldr r1, [r1]\n" + "\tmovs r2, 0xD4\n" + "\tlsls r2, 3\n" + "\tadds r1, r2\n" + "\tmovs r2, 0x90\n" + "\tlsls r2, 1\n" + "\tbl CpuSet\n" + "\tadd sp, 0x10\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0815A538: .4byte gMapObjects\n" + "_0815A53C: .4byte gSaveBlock1Ptr"); +} +#endif // NONMATCHING + +void sub_815A540(void) +{ + if (gUnknown_203ADFA == 2) + { + s16 x, y; + + PlayerGetDestCoords(&x, &y); + if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(0x08)) + { + struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + SetPlayerAvatarTransitionFlags(0x01); + DestroySprite(&gSprites[mapObject->mapobj_unk_1A]); + } + } +} diff --git a/src/unk_815C980.c b/src/unk_815C980.c new file mode 100644 index 000000000..b90d2fb03 --- /dev/null +++ b/src/unk_815C980.c @@ -0,0 +1,437 @@ +#include "global.h" +#include "malloc.h" +#include "decompress.h" +#include "unk_815C980.h" +#include "main.h" +#include "battle.h" + +struct UnkStruct2 +{ + bool8 isActive; + u8 firstOamId; + u8 field_2; + u8 oamCount; + u8 palTagIndex; + u8 size; + u8 shape; + u8 priority; + u8 xDelta; + u8 field_9; + u16 tileStart; + s16 x; + s16 y; + u16 tileTag; + u16 palTag; + u32 field_14; + s32 field_18; +}; + +struct UnkStruct1 +{ + u32 count; + struct UnkStruct2 *array; +}; + +// this file's functions +static u8 sub_815D244(u8 arg0);; +static void sub_815CC28(struct UnkStruct2 *arg0); +static void sub_815CDDC(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2); +static void sub_815CE90(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2); +static void sub_815CFEC(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2); +static bool32 SharesTileWithAnyActive(u32 id); +static bool32 SharesPalWithAnyActive(u32 id); +static void sub_8035648(void); +static u8 sub_815D324(u32 shape, u32 size); + +// ewram +static EWRAM_DATA struct UnkStruct1 *gUnknown_203F454 = {0}; + +// const rom data +static const u8 gUnknown_8479658[][4] = +{ + {0x01, 0x04, 0x10, 0x40}, + {0x02, 0x04, 0x08, 0x20}, + {0x02, 0x04, 0x08, 0x20}, + {0x00, 0x00, 0x00, 0x00} +}; + +// code +bool32 sub_815C980(u32 count) +{ + u32 i; + + if (gUnknown_203F454 != NULL) + sub_815C9F4(); + + gUnknown_203F454 = Alloc(sizeof(*gUnknown_203F454)); + if (gUnknown_203F454 == NULL) + return FALSE; + + gUnknown_203F454->array = Alloc(sizeof(struct UnkStruct2) * count); + if (gUnknown_203F454->array == NULL) + { + Free(gUnknown_203F454); + return FALSE; + } + + gUnknown_203F454->count = count; + for (i = 0; i < count; i++) + { + gUnknown_203F454->array[i].isActive = FALSE; + gUnknown_203F454->array[i].firstOamId = 0xFF; + } + + return TRUE; +} + +void sub_815C9F4(void) +{ + if (gUnknown_203F454 != NULL) + { + if (gUnknown_203F454->array != NULL) + { + u32 i; + + for (i = 0; i < gUnknown_203F454->count; i++) + sub_815D108(i); + + Free(gUnknown_203F454->array); + } + + FREE_AND_SET_NULL(gUnknown_203F454); + } +} + +bool32 sub_815CA40(u32 id, s32 arg1, const struct UnkStruct3 *arg2) +{ + u32 i; + + if (gUnknown_203F454 == NULL) + return FALSE; + if (gUnknown_203F454->array[id].isActive) + return FALSE; + + gUnknown_203F454->array[id].firstOamId = sub_815D244(arg2->field_1); + if (gUnknown_203F454->array[id].firstOamId == 0xFF) + return FALSE; + + gUnknown_203F454->array[id].tileStart = GetSpriteTileStartByTag(arg2->spriteSheet->tag); + if (gUnknown_203F454->array[id].tileStart == 0xFFFF) + { + if (arg2->spriteSheet->size != 0) + { + gUnknown_203F454->array[id].tileStart = LoadSpriteSheet(arg2->spriteSheet); + } + else + { + struct CompressedSpriteSheet compObjectPic; + + compObjectPic = *(struct CompressedSpriteSheet*)(arg2->spriteSheet); + compObjectPic.size = GetDecompressedDataSize(arg2->spriteSheet->data); + gUnknown_203F454->array[id].tileStart = LoadCompressedObjectPic(&compObjectPic); + } + + if (gUnknown_203F454->array[id].tileStart == 0xFFFF) + return FALSE; + } + + gUnknown_203F454->array[id].palTagIndex = IndexOfSpritePaletteTag(arg2->spritePal->tag); + if (gUnknown_203F454->array[id].palTagIndex == 0xFF) + gUnknown_203F454->array[id].palTagIndex = LoadSpritePalette(arg2->spritePal); + + gUnknown_203F454->array[id].field_2 = arg2->field_0_0; + gUnknown_203F454->array[id].oamCount = arg2->field_1; + gUnknown_203F454->array[id].x = arg2->x; + gUnknown_203F454->array[id].y = arg2->y; + gUnknown_203F454->array[id].shape = arg2->shape; + gUnknown_203F454->array[id].size = arg2->size; + gUnknown_203F454->array[id].priority = arg2->priority; + gUnknown_203F454->array[id].xDelta = arg2->xDelta; + gUnknown_203F454->array[id].field_9 = sub_815D324(arg2->shape, arg2->size); + gUnknown_203F454->array[id].tileTag = arg2->spriteSheet->tag; + gUnknown_203F454->array[id].palTag = arg2->spritePal->tag; + gUnknown_203F454->array[id].isActive = TRUE; + gUnknown_203F454->array[id].field_14 = 1; + + for (i = 1; i < arg2->field_1; i++) + gUnknown_203F454->array[id].field_14 *= 10; + + sub_815CC28(&gUnknown_203F454->array[id]); + sub_815CD70(id, arg1); + + return TRUE; +} + +static void sub_815CC28(struct UnkStruct2 *arg0) +{ + u32 i; + u32 oamId = arg0->firstOamId; + u32 x = arg0->x; + u32 oamCount = arg0->oamCount + 1; + + CpuFill16(0, &gMain.oamBuffer[oamId], sizeof(struct OamData) * oamCount); + for (i = 0, oamId = arg0->firstOamId; i < oamCount; i++, oamId++) + { + gMain.oamBuffer[oamId].y = arg0->y; + gMain.oamBuffer[oamId].x = x; + gMain.oamBuffer[oamId].shape = arg0->shape; + gMain.oamBuffer[oamId].size = arg0->size; + gMain.oamBuffer[oamId].tileNum = arg0->tileStart; + gMain.oamBuffer[oamId].priority = arg0->priority; + gMain.oamBuffer[oamId].paletteNum = arg0->palTagIndex; + + x += arg0->xDelta; + } + + oamId--; + gMain.oamBuffer[oamId].x = arg0->x - arg0->xDelta; + gMain.oamBuffer[oamId].affineMode = 2; + gMain.oamBuffer[oamId].tileNum = arg0->tileStart + (arg0->field_9 * 10); +} + +void sub_815CD70(u32 id, s32 arg1) +{ + bool32 r2; + + if (gUnknown_203F454 == NULL) + return; + if (!gUnknown_203F454->array[id].isActive) + return; + + gUnknown_203F454->array[id].field_18 = arg1; + if (arg1 < 0) + { + r2 = TRUE; + arg1 *= -1; + } + else + { + r2 = FALSE; + } + + switch (gUnknown_203F454->array[id].field_2) + { + case 0: + default: + sub_815CDDC(&gUnknown_203F454->array[id], arg1, r2); + break; + case 1: + sub_815CE90(&gUnknown_203F454->array[id], arg1, r2); + break; + case 2: + sub_815CFEC(&gUnknown_203F454->array[id], arg1, r2); + break; + } +} + +static void sub_815CDDC(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2) +{ + u32 r5 = arg0->field_14; + u32 oamId = arg0->firstOamId; + + while (r5 != 0) + { + u32 r4 = arg1 / r5; + arg1 -= (r4 * r5); + r5 /= 10; + + gMain.oamBuffer[oamId].tileNum = (r4 * arg0->field_9) + arg0->tileStart; + oamId++; + } + + if (arg2) + gMain.oamBuffer[oamId].affineMode = 0; + else + gMain.oamBuffer[oamId].affineMode = 2; +} + +static void sub_815CE90(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2) +{ + u32 r5 = arg0->field_14; + static int gUnknown_3002078; + static int gUnknown_300207C; + static int gUnknown_3002080; + + gUnknown_3002078 = arg0->firstOamId; + gUnknown_300207C = 0; + gUnknown_3002080 = -1; + + while (r5 != 0) + { + u32 r4 = arg1 / r5; + arg1 -= (r4 * r5); + r5 /= 10; + + if (r4 != 0 || gUnknown_3002080 != -1 || r5 == 0) + { + gMain.oamBuffer[gUnknown_3002078].tileNum = (r4 * arg0->field_9) + arg0->tileStart; + gMain.oamBuffer[gUnknown_3002078].affineMode = 0; + + if (gUnknown_3002080 == -1) + gUnknown_3002080 = gUnknown_300207C; + } + else + { + gMain.oamBuffer[gUnknown_3002078].affineMode = 2; + } + + gUnknown_3002078++; + gUnknown_300207C++; + } + + if (arg2) + { + gMain.oamBuffer[gUnknown_3002078].affineMode = 0; + gMain.oamBuffer[gUnknown_3002078].x = arg0->x + ((gUnknown_3002080 - 1) * arg0->xDelta); + } + else + { + gMain.oamBuffer[gUnknown_3002078].affineMode = 2; + } +} + +static void sub_815CFEC(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2) +{ + u32 r5 = arg0->field_14; + u32 oamId = arg0->firstOamId; + u32 var_28 = 0; + s32 r9 = 0; + + while (r5 != 0) + { + u32 r4 = arg1 / r5; + arg1 -= (r4 * r5); + r5 /= 10; + + if (r4 != 0 || var_28 != 0 || r5 == 0) + { + var_28 = 1; + gMain.oamBuffer[oamId].tileNum = (r4 * arg0->field_9) + arg0->tileStart; + gMain.oamBuffer[oamId].affineMode = 0; + + oamId++; + r9++; + } + } + + while (r9 < arg0->oamCount) + { + gMain.oamBuffer[oamId].affineMode = 2; + oamId++; + r9++; + } + + if (arg2) + gMain.oamBuffer[oamId].affineMode = 0; + else + gMain.oamBuffer[oamId].affineMode = 2; +} + +void sub_815D108(u32 id) +{ + s32 oamId, oamCount, i; + + if (gUnknown_203F454 == NULL) + return; + if (!gUnknown_203F454->array[id].isActive) + return; + + oamCount = gUnknown_203F454->array[id].oamCount + 1; + oamId = gUnknown_203F454->array[id].firstOamId; + + for (i = 0; i < oamCount; i++, oamId++) + gMain.oamBuffer[oamId].affineMode = 2; + + if (!SharesTileWithAnyActive(id)) + FreeSpriteTilesByTag(gUnknown_203F454->array[id].tileTag); + if (!SharesPalWithAnyActive(id)) + FreeSpritePaletteByTag(gUnknown_203F454->array[id].palTag); + + gUnknown_203F454->array[id].isActive = FALSE; +} + +void sub_815D1A8(u32 id, bool32 arg1) +{ + s32 oamId, oamCount, i; + + if (gUnknown_203F454 == NULL) + return; + if (!gUnknown_203F454->array[id].isActive) + return; + + oamCount = gUnknown_203F454->array[id].oamCount + 1; + oamId = gUnknown_203F454->array[id].firstOamId; + if (arg1) + { + for (i = 0; i < oamCount; i++, oamId++) + gMain.oamBuffer[oamId].affineMode = 2; + } + else + { + for (i = 0; i < oamCount; i++, oamId++) + gMain.oamBuffer[oamId].affineMode = 0; + + sub_815CD70(id, gUnknown_203F454->array[id].field_18); + } +} + +static u8 sub_815D244(u8 arg0) +{ + u32 i; + u16 oamCount = 64; + + for (i = 0; i < gUnknown_203F454->count; i++) + { + if (!gUnknown_203F454->array[i].isActive) + { + if (gUnknown_203F454->array[i].firstOamId != 0xFF && gUnknown_203F454->array[i].oamCount <= arg0) + return gUnknown_203F454->array[i].firstOamId; + } + else + { + oamCount += 1 + gUnknown_203F454->array[i].oamCount; + } + } + + if (oamCount + arg0 + 1 > 128) + return 0xFF; + else + return oamCount; +} + +static bool32 SharesTileWithAnyActive(u32 id) +{ + u32 i; + + for (i = 0; i < gUnknown_203F454->count; i++) + { + if (gUnknown_203F454->array[i].isActive && i != id + && gUnknown_203F454->array[i].tileTag == gUnknown_203F454->array[id].tileTag) + { + return TRUE; + } + } + + return FALSE; +} + +static bool32 SharesPalWithAnyActive(u32 id) +{ + u32 i; + + for (i = 0; i < gUnknown_203F454->count; i++) + { + if (gUnknown_203F454->array[i].isActive && i != id + && gUnknown_203F454->array[i].palTag == gUnknown_203F454->array[id].palTag) + { + return TRUE; + } + } + + return FALSE; +} + +static u8 sub_815D324(u32 shape, u32 size) +{ + return gUnknown_8479658[shape][size]; +} diff --git a/src/unk_815F138.c b/src/unk_815F138.c new file mode 100644 index 000000000..8941f1559 --- /dev/null +++ b/src/unk_815F138.c @@ -0,0 +1,322 @@ +#include "global.h" +#include "decompress.h" +#include "sound.h" +#include "task.h" +#include "trig.h" +#include "constants/songs.h" + +void sub_815F1AC(u8 taskId); +bool32 sub_815F2AC(u8 spriteId); +void sub_815F3E0(u8 spriteId1, u8 spriteId2, u8 spriteId3); +bool32 sub_815F444(u8 spriteId); +void sub_815F470(struct Sprite * sprite); +void sub_815F564(u16 tilesTag, u16 palTag); +u8 sub_815F5BC(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority); +void sub_815F610(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 * spriteId2_p, s16 * spriteId3_p); + +void sub_815F138(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority) +{ + u8 taskId = CreateTask(sub_815F1AC, 80); + gTasks[taskId].data[2] = tilesTag; + gTasks[taskId].data[3] = palTag; + gTasks[taskId].data[4] = x; + gTasks[taskId].data[5] = y; + gTasks[taskId].data[6] = subpriority; +} + +bool8 sub_815F198(void) +{ + return FuncIsActiveTask(sub_815F1AC); +} + +void sub_815F1AC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + sub_815F564(data[2], data[3]); + data[7] = sub_815F5BC(data[2], data[3], data[4], data[5], data[6]); + sub_815F610(data[2], data[3], data[4], data[5], data[6], &data[8], &data[9]); + data[0]++; + break; + case 1: + if (!sub_815F2AC(data[7])) + { + sub_815F3E0(data[7], data[8], data[9]); + FreeSpriteOamMatrix(&gSprites[data[7]]); + DestroySprite(&gSprites[data[7]]); + data[0]++; + } + break; + case 2: + if (!sub_815F444(data[8])) + { + DestroySprite(&gSprites[data[8]]); + DestroySprite(&gSprites[data[9]]); + FreeSpriteTilesByTag(data[2]); + FreeSpritePaletteByTag(data[3]); + DestroyTask(taskId); + } + break; + } +} + +bool32 sub_815F2AC(u8 spriteId) +{ + struct Sprite * sprite = &gSprites[spriteId]; + + switch (sprite->data[0]) + { + case 0: + sub_8007FFC(sprite, 0x800, 0x1A); + sprite->data[0]++; + // fallthrough + case 1: + if (sprite->data[2] == 0) + PlaySE(SE_TRACK_STOP); + if (++sprite->data[2] >= 20) + { + sprite->data[2] = 0; + StartSpriteAffineAnim(sprite, 1); + sprite->data[0]++; + } + break; + case 2: + if (sprite->affineAnimEnded) + sprite->data[0]++; + break; + case 3: + if (++sprite->data[2] >= 4) + { + sprite->data[2] = 0; + sprite->data[0]++; + StartSpriteAffineAnim(sprite, 2); + } + break; + case 4: + sprite->pos1.y -= 4; + if (++sprite->data[2] >= 8) + { + if (sprite->data[4] < 2) + { + StartSpriteAnim(sprite, sprite->data[4] + 1); + sprite->data[2] = 0; + sprite->data[0]++; + } + else + { + sprite->data[0] = 7; + return FALSE; + } + } + break; + case 5: + sprite->pos1.y += 4; + if (++sprite->data[2] >= 8) + { + sprite->data[2] = 0; + StartSpriteAffineAnim(sprite, 3); + sprite->data[0]++; + } + break; + case 6: + if (sprite->affineAnimEnded) + { + sprite->data[4]++; + sprite->data[0] = 1; + } + break; + case 7: + return FALSE; + } + return TRUE; +} + +void sub_815F3E0(u8 spriteId1, u8 spriteId2, u8 spriteId3) +{ + gSprites[spriteId2].pos2.y = -40; + gSprites[spriteId3].pos2.y = -40; + gSprites[spriteId2].invisible = FALSE; + gSprites[spriteId3].invisible = FALSE; + gSprites[spriteId2].callback = sub_815F470; + gSprites[spriteId3].callback = sub_815F470; +} + +bool32 sub_815F444(u8 spriteId) +{ + return gSprites[spriteId].callback == sub_815F470; +} + +void sub_815F470(struct Sprite * sprite) +{ + s16 * data = sprite->data; + s32 y; + + switch (sprite->data[0]) + { + case 0: + data[4] = 64; + data[5] = sprite->pos2.y << 4; + data[0]++; + //fallthrough + case 1: + data[5] += data[4]; + data[4]++; + sprite->pos2.y = data[5] >> 4; + if (sprite->pos2.y >= 0) + { + PlaySE(SE_TRACK_STOP); + sprite->pos2.y = 0; + data[0]++; + } + break; + case 2: + data[1] += 12; + if (data[1] >= 128) + { + PlaySE(SE_TRACK_STOP); + data[1] = 0; + data[0]++; + } + y = gSineTable[data[1]]; + sprite->pos2.y = -(y >> 4); + break; + case 3: + data[1] += 16; + if (data[1] >= 128) + { + PlaySE(SE_TRACK_STOP); + data[1] = 0; + data[0]++; + } + sprite->pos2.y = -(gSineTable[data[1]] >> 5); + break; + case 4: + if (++data[1] > 40) + sprite->callback = SpriteCallbackDummy; + break; + } +} + +const u16 gUnknown_847A328[] = INCBIN_U16("data/graphics/unk_847a348.gbapal"); +const u16 gUnknown_847A348[] = INCBIN_U16("data/graphics/unk_847a348.4bpp.lz"); + +void sub_815F564(u16 tilesTag, u16 palTag) +{ + struct CompressedSpriteSheet spriteSheet = {(const void *)gUnknown_847A348, 0xE00}; + struct SpritePalette spritePalette = {gUnknown_847A328}; + spriteSheet.tag = tilesTag; + spritePalette.tag = palTag; + LoadCompressedObjectPic(&spriteSheet); + LoadSpritePalette(&spritePalette); +} + +const struct OamData gOamData_847A7AC = { + .affineMode = ST_OAM_AFFINE_DOUBLE, + .shape = ST_OAM_SQUARE, + .size = 2 +}; + +const struct OamData gOamData_847A7B4 = { + .affineMode = ST_OAM_AFFINE_OFF, + .shape = ST_OAM_H_RECTANGLE, + .size = 3 +}; + +const union AnimCmd gUnknown_847A7BC[] = { + ANIMCMD_FRAME( 0, 1), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_847A7C4[] = { + ANIMCMD_FRAME(16, 1), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_847A7CC[] = { + ANIMCMD_FRAME(32, 1), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_847A7D4[] = { + gUnknown_847A7BC, + gUnknown_847A7C4, + gUnknown_847A7CC +}; + +const union AnimCmd gUnknown_847A7E0[] = { + ANIMCMD_FRAME(48, 1), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_847A7E8[] = { + ANIMCMD_FRAME(80, 1), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_847A7F0[] = { + gUnknown_847A7E0, + gUnknown_847A7E8 +}; + +const union AffineAnimCmd gUnknown_847A7F8[] = { + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd gUnknown_847A808[] = { + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME( 0x10, -0x10, 0, 8), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd gUnknown_847A820[] = { + AFFINEANIMCMD_FRAME(-0x12, 0x12, 0, 8), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd gUnknown_847A830[] = { + AFFINEANIMCMD_FRAME( 0x6, -0x6, 0, 8), + AFFINEANIMCMD_FRAME( -0x4, 0x4, 0, 8), + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd *const gUnknown_847A850[] = { + gUnknown_847A7F8, + gUnknown_847A808, + gUnknown_847A820, + gUnknown_847A830 +}; + +u8 sub_815F5BC(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority) +{ + struct SpriteTemplate spriteTemplate = { + .oam = &gOamData_847A7AC, + .anims = gUnknown_847A7D4, + .affineAnims = gUnknown_847A850, + .callback = SpriteCallbackDummy + }; + spriteTemplate.tileTag = tilesTag; + spriteTemplate.paletteTag = palTag; + return CreateSprite(&spriteTemplate, x, y, subpriority); +} + +void sub_815F610(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 * spriteId2_p, s16 * spriteId3_p) +{ + struct SpriteTemplate spriteTemplate = { + .oam = &gOamData_847A7B4, + .anims = gUnknown_847A7F0, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy + }; + spriteTemplate.tileTag = tilesTag; + spriteTemplate.paletteTag = palTag; + *spriteId2_p = CreateSprite(&spriteTemplate, x - 32, y, subpriority); + *spriteId3_p = CreateSprite(&spriteTemplate, x + 32, y, subpriority); + gSprites[*spriteId2_p].invisible = TRUE; + gSprites[*spriteId3_p].invisible = TRUE; + StartSpriteAnim(&gSprites[*spriteId3_p], 1); +} diff --git a/src/util.c b/src/util.c new file mode 100644 index 000000000..5b5fdbb9d --- /dev/null +++ b/src/util.c @@ -0,0 +1,513 @@ +#include "global.h" +#include "util.h" + +const u32 gBitTable[] = +{ + 1 << 0, + 1 << 1, + 1 << 2, + 1 << 3, + 1 << 4, + 1 << 5, + 1 << 6, + 1 << 7, + 1 << 8, + 1 << 9, + 1 << 10, + 1 << 11, + 1 << 12, + 1 << 13, + 1 << 14, + 1 << 15, + 1 << 16, + 1 << 17, + 1 << 18, + 1 << 19, + 1 << 20, + 1 << 21, + 1 << 22, + 1 << 23, + 1 << 24, + 1 << 25, + 1 << 26, + 1 << 27, + 1 << 28, + 1 << 29, + 1 << 30, + 1 << 31, +}; + +static const struct SpriteTemplate gInvisibleSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const u8 sSpriteDimensions[3][4][2] = +{ + // square + { + {1, 1}, + {2, 2}, + {4, 4}, + {8, 8}, + }, + + // horizontal rectangle + { + {2, 1}, + {4, 1}, + {4, 2}, + {8, 4}, + }, + + // vertical rectangle + { + {1, 2}, + {1, 4}, + {2, 4}, + {4, 8}, + }, +}; + +static const u16 gCrc16Table[] = +{ + 0x0000, 0x1189, 0x2312, 0x329B, 0x4624, 0x57AD, 0x6536, 0x74BF, + 0x8C48, 0x9DC1, 0xAF5A, 0xBED3, 0xCA6C, 0xDBE5, 0xE97E, 0xF8F7, + 0x1081, 0x0108, 0x3393, 0x221A, 0x56A5, 0x472C, 0x75B7, 0x643E, + 0x9CC9, 0x8D40, 0xBFDB, 0xAE52, 0xDAED, 0xCB64, 0xF9FF, 0xE876, + 0x2102, 0x308B, 0x0210, 0x1399, 0x6726, 0x76AF, 0x4434, 0x55BD, + 0xAD4A, 0xBCC3, 0x8E58, 0x9FD1, 0xEB6E, 0xFAE7, 0xC87C, 0xD9F5, + 0x3183, 0x200A, 0x1291, 0x0318, 0x77A7, 0x662E, 0x54B5, 0x453C, + 0xBDCB, 0xAC42, 0x9ED9, 0x8F50, 0xFBEF, 0xEA66, 0xD8FD, 0xC974, + 0x4204, 0x538D, 0x6116, 0x709F, 0x0420, 0x15A9, 0x2732, 0x36BB, + 0xCE4C, 0xDFC5, 0xED5E, 0xFCD7, 0x8868, 0x99E1, 0xAB7A, 0xBAF3, + 0x5285, 0x430C, 0x7197, 0x601E, 0x14A1, 0x0528, 0x37B3, 0x263A, + 0xDECD, 0xCF44, 0xFDDF, 0xEC56, 0x98E9, 0x8960, 0xBBFB, 0xAA72, + 0x6306, 0x728F, 0x4014, 0x519D, 0x2522, 0x34AB, 0x0630, 0x17B9, + 0xEF4E, 0xFEC7, 0xCC5C, 0xDDD5, 0xA96A, 0xB8E3, 0x8A78, 0x9BF1, + 0x7387, 0x620E, 0x5095, 0x411C, 0x35A3, 0x242A, 0x16B1, 0x0738, + 0xFFCF, 0xEE46, 0xDCDD, 0xCD54, 0xB9EB, 0xA862, 0x9AF9, 0x8B70, + 0x8408, 0x9581, 0xA71A, 0xB693, 0xC22C, 0xD3A5, 0xE13E, 0xF0B7, + 0x0840, 0x19C9, 0x2B52, 0x3ADB, 0x4E64, 0x5FED, 0x6D76, 0x7CFF, + 0x9489, 0x8500, 0xB79B, 0xA612, 0xD2AD, 0xC324, 0xF1BF, 0xE036, + 0x18C1, 0x0948, 0x3BD3, 0x2A5A, 0x5EE5, 0x4F6C, 0x7DF7, 0x6C7E, + 0xA50A, 0xB483, 0x8618, 0x9791, 0xE32E, 0xF2A7, 0xC03C, 0xD1B5, + 0x2942, 0x38CB, 0x0A50, 0x1BD9, 0x6F66, 0x7EEF, 0x4C74, 0x5DFD, + 0xB58B, 0xA402, 0x9699, 0x8710, 0xF3AF, 0xE226, 0xD0BD, 0xC134, + 0x39C3, 0x284A, 0x1AD1, 0x0B58, 0x7FE7, 0x6E6E, 0x5CF5, 0x4D7C, + 0xC60C, 0xD785, 0xE51E, 0xF497, 0x8028, 0x91A1, 0xA33A, 0xB2B3, + 0x4A44, 0x5BCD, 0x6956, 0x78DF, 0x0C60, 0x1DE9, 0x2F72, 0x3EFB, + 0xD68D, 0xC704, 0xF59F, 0xE416, 0x90A9, 0x8120, 0xB3BB, 0xA232, + 0x5AC5, 0x4B4C, 0x79D7, 0x685E, 0x1CE1, 0x0D68, 0x3FF3, 0x2E7A, + 0xE70E, 0xF687, 0xC41C, 0xD595, 0xA12A, 0xB0A3, 0x8238, 0x93B1, + 0x6B46, 0x7ACF, 0x4854, 0x59DD, 0x2D62, 0x3CEB, 0x0E70, 0x1FF9, + 0xF78F, 0xE606, 0xD49D, 0xC514, 0xB1AB, 0xA022, 0x92B9, 0x8330, + 0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78, +}; + +const u8 gMiscBlank_Gfx[] = INCBIN_U8("graphics/interface/blank.4bpp"); + +u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)) +{ + u8 sprite = CreateSprite(&gInvisibleSpriteTemplate, 248, 168, 14); + gSprites[sprite].invisible = TRUE; + gSprites[sprite].callback = callback; + return sprite; +} + +void StoreWordInTwoHalfwords(u16 *h, u32 w) +{ + h[0] = (u16)(w); + h[1] = (u16)(w >> 16); +} + +void LoadWordFromTwoHalfwords(u16 *h, u32 *w) +{ + *w = h[0] | (s16)h[1] << 16; +} + +void SetBgAffineStruct(struct BgAffineSrcData *src, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) +{ + src->texX = texX; + src->texY = texY; + src->scrX = scrX; + src->scrY = scrY; + src->sx = sx; + src->sy = sy; + src->alpha = alpha; +} + +void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) +{ + struct BgAffineSrcData src; + + SetBgAffineStruct(&src, texX, texY, scrX, scrY, sx, sy, alpha); + BgAffineSet(&src, dest, 1); +} + +#ifdef NONMATCHING +void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) +{ + u8 x, y; + s8 i, j; + u8 xflip[32]; + u8 h = sSpriteDimensions[shape][size][1]; + u8 w = sSpriteDimensions[shape][size][0]; + + for (y = 0; y < h; y++) + { + int filler = 32 - w; + + for (x = 0; x < w; x++) + { + int tile = (*tilemap & 0x3ff) * 32; + int attr = *tilemap & 0xc00; + + if (attr == 0) + { + DmaCopy32Defvars(3, tiles + tile, output, 32); + } + else if (attr == 0x800) // yflip + { + for (i = 0; i < 8; i++) + { + DmaCopy32Defvars(3, (7 - i) * 4 + tile + tiles, output + i * 4, 4); + } + } + else // xflip + { + for (i = 0; i < 8; i++) + { + for (j = 0; j < 4; j++) + { + u8 i2 = i * 4; + xflip[i2 + (3-j)] = (tiles[tile + i2 + j] & 0xf) << 4; + xflip[i2 + (3-j)] |= tiles[tile + i2 + j] >> 4; + } + } + if (*tilemap & 0x800) // yflip + { + for (i = 0; i < 8; i++) + { + DmaCopy32Defvars(3, (7 - i) * 4 + xflip, output + i * 4, 4); + } + } + else + { + DmaCopy32Defvars(3, xflip, output, 32); + } + } + tilemap++; + output += 32; + } + tilemap += filler; + } +} +#else +NAKED +void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x3C\n" + "\tstr r2, [sp, 0x20]\n" + "\tadds r4, r3, 0\n" + "\tldr r7, [sp, 0x5C]\n" + "\tlsls r0, 24\n" + "\tlsls r1, 24\n" + "\tldr r2, _0804504C @ =sSpriteDimensions\n" + "\tlsrs r1, 23\n" + "\tlsrs r0, 21\n" + "\tadds r1, r0\n" + "\tadds r0, r2, 0x1\n" + "\tadds r0, r1, r0\n" + "\tldrb r0, [r0]\n" + "\tstr r0, [sp, 0x24]\n" + "\tadds r1, r2\n" + "\tldrb r1, [r1]\n" + "\tstr r1, [sp, 0x28]\n" + "\tmovs r1, 0\n" + "\tcmp r1, r0\n" + "\tbcc _08044FF8\n" + "\tb _0804517A\n" + "_08044FF8:\n" + "\tmovs r0, 0x20\n" + "\tldr r2, [sp, 0x28]\n" + "\tsubs r0, r2\n" + "\tlsls r0, 1\n" + "\tstr r0, [sp, 0x2C]\n" + "_08045002:\n" + "\tmovs r2, 0\n" + "\tadds r1, 0x1\n" + "\tstr r1, [sp, 0x34]\n" + "\tldr r3, [sp, 0x28]\n" + "\tcmp r2, r3\n" + "\tbcc _08045010\n" + "\tb _08045168\n" + "_08045010:\n" + "\tldr r0, _08045050 @ =0x040000d4\n" + "\tmov r8, r0\n" + "_08045014:\n" + "\tldrh r1, [r4]\n" + "\tldr r0, _08045054 @ =0x000003ff\n" + "\tands r0, r1\n" + "\tlsls r0, 5\n" + "\tmov r12, r0\n" + "\tmovs r0, 0xC0\n" + "\tlsls r0, 4\n" + "\tands r0, r1\n" + "\tmov r3, sp\n" + "\tstrh r1, [r3, 0x38]\n" + "\tcmp r0, 0\n" + "\tbne _0804505C\n" + "\tldr r0, [sp, 0x20]\n" + "\tadd r0, r12\n" + "\tmov r1, r8\n" + "\tstr r0, [r1]\n" + "\tstr r7, [r1, 0x4]\n" + "\tldr r3, _08045058 @ =0x84000008\n" + "\tstr r3, [r1, 0x8]\n" + "\tldr r0, [r1, 0x8]\n" + "\tadds r4, 0x2\n" + "\tstr r4, [sp, 0x30]\n" + "\tadds r7, 0x20\n" + "\tmov r10, r7\n" + "\tadds r2, 0x1\n" + "\tmov r9, r2\n" + "\tb _08045156\n" + "\t.align 2, 0\n" + "_0804504C: .4byte sSpriteDimensions\n" + "_08045050: .4byte 0x040000d4\n" + "_08045054: .4byte 0x000003ff\n" + "_08045058: .4byte 0x84000008\n" + "_0804505C:\n" + "\tmovs r1, 0x80\n" + "\tlsls r1, 4\n" + "\tcmp r0, r1\n" + "\tbne _080450AC\n" + "\tmovs r3, 0\n" + "\tadds r4, 0x2\n" + "\tstr r4, [sp, 0x30]\n" + "\tmovs r0, 0x20\n" + "\tadds r0, r7\n" + "\tmov r10, r0\n" + "\tadds r2, 0x1\n" + "\tmov r9, r2\n" + "\tldr r4, _080450A4 @ =0x040000d4\n" + "\tldr r6, _080450A8 @ =0x84000001\n" + "\tmovs r5, 0x7\n" + "_0804507A:\n" + "\tlsls r2, r3, 24\n" + "\tasrs r2, 24\n" + "\tsubs r0, r5, r2\n" + "\tlsls r0, 2\n" + "\tadd r0, r12\n" + "\tldr r1, [sp, 0x20]\n" + "\tadds r0, r1, r0\n" + "\tlsls r1, r2, 2\n" + "\tadds r1, r7, r1\n" + "\tstr r0, [r4]\n" + "\tstr r1, [r4, 0x4]\n" + "\tstr r6, [r4, 0x8]\n" + "\tldr r0, [r4, 0x8]\n" + "\tadds r2, 0x1\n" + "\tlsls r2, 24\n" + "\tlsrs r3, r2, 24\n" + "\tasrs r2, 24\n" + "\tcmp r2, 0x7\n" + "\tble _0804507A\n" + "\tb _08045156\n" + "\t.align 2, 0\n" + "_080450A4: .4byte 0x040000d4\n" + "_080450A8: .4byte 0x84000001\n" + "_080450AC:\n" + "\tmovs r3, 0\n" + "\tadds r4, 0x2\n" + "\tstr r4, [sp, 0x30]\n" + "\tmovs r0, 0x20\n" + "\tadds r0, r7\n" + "\tmov r10, r0\n" + "\tadds r2, 0x1\n" + "\tmov r9, r2\n" + "_080450BC:\n" + "\tmovs r2, 0\n" + "\tlsls r4, r3, 24\n" + "\tlsls r0, r4, 2\n" + "\tlsrs r0, 24\n" + "\tadds r6, r0, 0x3\n" + "\tmov r1, r12\n" + "\tadds r5, r1, r0\n" + "_080450CA:\n" + "\tlsls r1, r2, 24\n" + "\tasrs r1, 24\n" + "\tsubs r0, r6, r1\n" + "\tmov r2, sp\n" + "\tadds r3, r2, r0\n" + "\tadds r0, r5, r1\n" + "\tldr r2, [sp, 0x20]\n" + "\tadds r0, r2, r0\n" + "\tldrb r2, [r0]\n" + "\tmovs r0, 0xF\n" + "\tands r0, r2\n" + "\tlsls r0, 4\n" + "\tlsrs r2, 4\n" + "\torrs r0, r2\n" + "\tstrb r0, [r3]\n" + "\tadds r1, 0x1\n" + "\tlsls r1, 24\n" + "\tlsrs r2, r1, 24\n" + "\tasrs r1, 24\n" + "\tcmp r1, 0x3\n" + "\tble _080450CA\n" + "\tmovs r3, 0x80\n" + "\tlsls r3, 17\n" + "\tadds r0, r4, r3\n" + "\tlsrs r3, r0, 24\n" + "\tasrs r0, 24\n" + "\tcmp r0, 0x7\n" + "\tble _080450BC\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 4\n" + "\tmov r1, sp\n" + "\tldrh r1, [r1, 0x38]\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _08045148\n" + "\tmovs r3, 0\n" + "\tldr r4, _08045140 @ =0x040000d4\n" + "\tldr r6, _08045144 @ =0x84000001\n" + "\tmovs r5, 0x7\n" + "_08045118:\n" + "\tlsls r1, r3, 24\n" + "\tasrs r1, 24\n" + "\tsubs r0, r5, r1\n" + "\tlsls r0, 2\n" + "\tmov r3, sp\n" + "\tadds r2, r3, r0\n" + "\tlsls r0, r1, 2\n" + "\tadds r0, r7, r0\n" + "\tstr r2, [r4]\n" + "\tstr r0, [r4, 0x4]\n" + "\tstr r6, [r4, 0x8]\n" + "\tldr r0, [r4, 0x8]\n" + "\tadds r1, 0x1\n" + "\tlsls r1, 24\n" + "\tlsrs r3, r1, 24\n" + "\tasrs r1, 24\n" + "\tcmp r1, 0x7\n" + "\tble _08045118\n" + "\tb _08045156\n" + "\t.align 2, 0\n" + "_08045140: .4byte 0x040000d4\n" + "_08045144: .4byte 0x84000001\n" + "_08045148:\n" + "\tmov r0, sp\n" + "\tmov r1, r8\n" + "\tstr r0, [r1]\n" + "\tstr r7, [r1, 0x4]\n" + "\tldr r2, _0804518C @ =0x84000008\n" + "\tstr r2, [r1, 0x8]\n" + "\tldr r0, [r1, 0x8]\n" + "_08045156:\n" + "\tldr r4, [sp, 0x30]\n" + "\tmov r7, r10\n" + "\tmov r3, r9\n" + "\tlsls r0, r3, 24\n" + "\tlsrs r2, r0, 24\n" + "\tldr r0, [sp, 0x28]\n" + "\tcmp r2, r0\n" + "\tbcs _08045168\n" + "\tb _08045014\n" + "_08045168:\n" + "\tldr r1, [sp, 0x2C]\n" + "\tadds r4, r1\n" + "\tldr r2, [sp, 0x34]\n" + "\tlsls r0, r2, 24\n" + "\tlsrs r1, r0, 24\n" + "\tldr r3, [sp, 0x24]\n" + "\tcmp r1, r3\n" + "\tbcs _0804517A\n" + "\tb _08045002\n" + "_0804517A:\n" + "\tadd sp, 0x3C\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0804518C: .4byte 0x84000008"); +} +#endif // NONMATCHING + +int CountTrailingZeroBits(u32 value) +{ + u8 i; + + for (i = 0; i < 32; i++) + { + if ((value & 1) == 0) + value >>= 1; + else + return i; + } + return 0; +} + +u16 CalcCRC16(const u8 *data, u32 length) +{ + u16 i, j; + u16 crc = 0x1121; + + for (i = 0; i < length; i++) + { + crc ^= data[i]; + for (j = 0; j < 8; j++) + { + if (crc & 1) + crc = (crc >> 1) ^ 0x8408; + else + crc >>= 1; + } + } + return ~crc; +} + +u16 CalcCRC16WithTable(const u8 *data, u32 length) +{ + u16 i; + u16 crc = 0x1121; + u8 byte; + + for (i = 0; i < length; i++) + { + byte = crc >> 8; + crc ^= data[i]; + crc = byte ^ gCrc16Table[(u8)crc]; + } + return ~crc; +} + +u32 CalcByteArraySum(const u8 * array, u32 size) +{ + s32 i; + u32 result = 0; + + for (i = 0; i < size; i++) + { + result += array[i]; + } + + return result; +} diff --git a/src/vs_seeker.c b/src/vs_seeker.c index 4d42f270d..e3df77242 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -1,5 +1,4 @@ #include "global.h" -#include "songs.h" #include "sound.h" #include "task.h" #include "malloc.h" @@ -19,9 +18,11 @@ #include "random.h" #include "field_map_obj.h" #include "field_player_avatar.h" +#include "map_obj_80688E4.h" #include "map_obj_8097404.h" #include "unk_810c3a4.h" #include "constants/movement_commands.h" +#include "constants/songs.h" #include "vs_seeker.h" typedef enum @@ -65,11 +66,13 @@ struct VsSeekerStruct extern u16 gSpecialVar_LastTalked; extern struct MapObject gMapObjects[MAP_OBJECTS_COUNT]; -extern u8 gUnknown_3005074; +extern u8 gSelectedEventObject; // static declarations static EWRAM_DATA struct VsSeekerStruct *sVsSeeker = NULL; +static void sub_810C3B8(u8 taskId); +static void sub_810C594(void); static void Task_VsSeeker_1(u8 taskId); static void Task_VsSeeker_2(u8 taskId); static void GatherNearbyTrainerInfo(void); @@ -565,6 +568,229 @@ static const u8 gUnknown_8453F67[] = { 0x08, 0x08, 0x07, 0x09, 0x0a }; // text + + +void sub_810C3A4(void) +{ + CreateTask(sub_810C3B8, 80); +} + +static void sub_810C3B8(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + u8 i; + + if (task->data[0] == 0 && walkrun_is_standing_still() == TRUE) + { + sub_805C270(); + task->data[0] = 1; + } + + if (task->data[1] == 0) + { + for (i = 0; i < MAP_OBJECTS_COUNT; i++) + { + if (sub_810CF04(i) == TRUE) + { + if (gMapObjects[i].mapobj_bit_1) + return; + FreezeMapObject(&gMapObjects[i]); + } + } + } + + task->data[1] = 1; + if (task->data[0] != 0) + { + DestroyTask(taskId); + sub_805C780(); + EnableBothScriptContexts(); + } +} + +void sub_810C444(void) +{ + struct MapObjectTemplate * templates = gSaveBlock1Ptr->mapObjectTemplates; + u8 i; + u8 r6; + u8 sp0; + struct MapObject * mapObject; + + for (i = 0; i < gMapHeader.events->mapObjectCount; i++) + { + if ((templates[i].unkC == 1 || templates[i].unkC == 3) && (templates[i].movementType == 0x4D || templates[i].movementType == 0x4E || templates[i].movementType == 0x4F)) + { + r6 = sub_810CF54(); + TryGetFieldObjectIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0); + mapObject = &gMapObjects[sp0]; + if (sub_810CF04(sp0) == TRUE) + { + npc_set_running_behaviour_etc(mapObject, r6); + } + templates[i].movementType = r6; + } + } +} + +#ifdef NONMATCHING +bool8 sub_810C4EC(void) +{ + if (CheckBagHasItem(ITEM_VS_SEEKER, 1) == TRUE) + { + if ((gSaveBlock1Ptr->trainerRematchStepCounter & 0xFF) < 100) + gSaveBlock1Ptr->trainerRematchStepCounter++; + } + + if (FlagGet(0x801) == TRUE) + { + u16 x; + do { + x = (gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & 0xFF; + } while (0); + if (x < 100) + { + x++; + gSaveBlock1Ptr->trainerRematchStepCounter = ((u16)(x << 8)) | (gSaveBlock1Ptr->trainerRematchStepCounter & 0xFF); + } + do { + x = (gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & 0xFF; + } while (0); + if (x == 100) + { + FlagClear(0x801); + sub_810C640(); + sub_810D0D0(); + return TRUE; + } + } + + return FALSE; +} +#else +NAKED +bool8 sub_810C4EC(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmovs r0, 0xB5\n" + "\tlsls r0, 1\n" + "\tmovs r1, 0x1\n" + "\tbl CheckBagHasItem\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x1\n" + "\tbne _0810C516\n" + "\tldr r0, _0810C568 @ =gSaveBlock1Ptr\n" + "\tldr r0, [r0]\n" + "\tmovs r2, 0xC7\n" + "\tlsls r2, 3\n" + "\tadds r1, r0, r2\n" + "\tldrh r2, [r1]\n" + "\tldrb r0, [r1]\n" + "\tcmp r0, 0x63\n" + "\tbhi _0810C516\n" + "\tadds r0, r2, 0x1\n" + "\tstrh r0, [r1]\n" + "_0810C516:\n" + "\tldr r7, _0810C56C @ =0x00000801\n" + "\tadds r0, r7, 0\n" + "\tbl FlagGet\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x1\n" + "\tbne _0810C570\n" + "\tldr r6, _0810C568 @ =gSaveBlock1Ptr\n" + "\tldr r0, [r6]\n" + "\tmovs r5, 0xC7\n" + "\tlsls r5, 3\n" + "\tadds r3, r0, r5\n" + "\tldrh r2, [r3]\n" + "\tlsrs r1, r2, 8\n" + "\tmovs r4, 0xFF\n" + "\tcmp r1, 0x63\n" + "\tbhi _0810C548\n" + "\tadds r1, 0x1\n" + "\tlsls r1, 24\n" + "\tmovs r0, 0xFF\n" + "\tands r0, r2\n" + "\tlsrs r1, 16\n" + "\torrs r0, r1\n" + "\tstrh r0, [r3]\n" + "_0810C548:\n" + "\tldr r0, [r6]\n" + "\tadds r0, r5\n" + "\tldrh r0, [r0]\n" + "\tlsrs r0, 8\n" + "\tands r0, r4\n" + "\tcmp r0, 0x64\n" + "\tbne _0810C570\n" + "\tadds r0, r7, 0\n" + "\tbl FlagClear\n" + "\tbl sub_810C640\n" + "\tbl sub_810D0D0\n" + "\tmovs r0, 0x1\n" + "\tb _0810C572\n" + "\t.align 2, 0\n" + "_0810C568: .4byte gSaveBlock1Ptr\n" + "_0810C56C: .4byte 0x00000801\n" + "_0810C570:\n" + "\tmovs r0, 0\n" + "_0810C572:\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1"); +} +#endif + +void sub_810C578(void) +{ + FlagClear(0x801); + sub_810C640(); + sub_810D0D0(); + sub_810C594(); +} + +static void sub_810C594(void) +{ + u8 i; + + for (i = 0; i < MAP_OBJECTS_COUNT; i++) + { + struct MapObject * mapObject = &gMapObjects[i]; + if (mapObject->animPattern == 0x4D || mapObject->animPattern == 0x4E || mapObject->animPattern == 0x4F) + { + u8 r3 = sub_810CF54(); + if (mapObject->active && gSprites[mapObject->spriteId].data[0] == i) + { + gSprites[mapObject->spriteId].pos2.x = 0; + gSprites[mapObject->spriteId].pos2.y = 0; + npc_set_running_behaviour_etc(mapObject, r3); + } + } + } +} + +void sub_810C604(void) +{ + gSaveBlock1Ptr->trainerRematchStepCounter &= 0xFF00; +} + +void sub_810C620(void) +{ + gSaveBlock1Ptr->trainerRematchStepCounter &= 0xFF00; + gSaveBlock1Ptr->trainerRematchStepCounter |= 100; +} + +void sub_810C640(void) +{ + gSaveBlock1Ptr->trainerRematchStepCounter &= 0x00FF; +} + +void sub_810C654(void) +{ + gSaveBlock1Ptr->trainerRematchStepCounter &= 0x00FF; + gSaveBlock1Ptr->trainerRematchStepCounter |= (100 << 8); +} + void Task_VsSeeker_0(u8 taskId) { u8 i; @@ -588,7 +814,7 @@ void Task_VsSeeker_0(u8 taskId) } else if (respval == 2) { - sub_80A2294(4, 0, gSpecialVar_ItemId, 0xffff); + ItemUse_SetQuestLogEvent(4, 0, gSpecialVar_ItemId, 0xffff); FieldEffectStart(FLDEFF_UNK_41); // TODO: name this enum gTasks[taskId].func = Task_VsSeeker_1; gTasks[taskId].data[0] = 15; @@ -663,7 +889,7 @@ static void Task_VsSeeker_3(u8 taskId) { if (sVsSeeker->responseCode == 2) StartAllRespondantIdleMovements(); - sub_80F6F54(0, 1); + ClearDialogWindowAndFrame(0, 1); sub_80696C0(); ScriptContext2_Disable(); DestroyTask(taskId); @@ -1012,7 +1238,7 @@ void sub_810CB90(void) sub_810CF54(&r4[r8]); // You are using this function incorrectly. Please consult the manual. sub_805FE7C(r4_2, gUnknown_8453F67[r4_2->mapobj_unk_18]); gSaveBlock1Ptr->trainerRematches[r4[r8].localId] = 0; - if (gUnknown_3005074 == sp0) + if (gSelectedEventObject == sp0) r4_2->animPattern = gUnknown_8453F67[r4_2->mapobj_unk_18]; else r4_2->animPattern = 0x08; @@ -1225,7 +1451,7 @@ static u16 GetTrainerFlagFromScript(const u8 *script) * because the ARM processor requires shorts to be 16-bit * aligned, this function needs to perform explicit bitwise * operations to get the correct flag. - * + * * 5c XX YY ZZ ... * -- -- */ @@ -1360,7 +1586,7 @@ static void StartAllRespondantIdleMovements(void) u8 dummy = 0; s32 i; s32 j; - + for (i = 0; i < sVsSeeker->numRematchableTrainers; i++) { for (j = 0; sVsSeeker->trainerInfo[j].localId != 0xFF; j++) diff --git a/src/window.c b/src/window.c index e760fc8e4..4c302885c 100644 --- a/src/window.c +++ b/src/window.c @@ -2,17 +2,13 @@ #include "window.h" #include "malloc.h" #include "bg.h" +#include "blit.h" u8 gWindowClearTile; void *gWindowBgTilemapBuffers[4]; EWRAM_DATA struct Window gWindows[WINDOWS_MAX] = {0}; -extern void BlitBitmapRect4Bit(struct Bitmap *src, struct Bitmap *dest, u16 srcX, u16 srcY, u16 destX, u16 destY, u16 width, u16 height, u8 colorKey); -extern void BlitBitmapRect4BitTo8Bit(struct Bitmap *src, struct Bitmap *dest, u16 srcX, u16 srcY, u16 destX, u16 destY, u16 width, u16 height, u8 colorKey, u8 paletteNum); -extern void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); -extern void FillBitmapRect8Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); - static u8 GetNumActiveWindowsOnBg(u8 bgId); static const struct WindowTemplate sDummyWindowTemplate = {0xFF, 0, 0, 0, 0, 0, 0}; @@ -47,7 +43,7 @@ bool16 InitWindows(const struct WindowTemplate *templates) gWindows[i].tileData = NULL; } - for (i = 0, allocatedBaseBlock = 0, bgLayer = templates[i].priority; bgLayer != 0xFF && i < 0x20; ++i, bgLayer = templates[i].priority) + for (i = 0, allocatedBaseBlock = 0, bgLayer = templates[i].bg; bgLayer != 0xFF && i < 0x20; ++i, bgLayer = templates[i].bg) { if (gWindowTileAutoAllocEnabled == TRUE) { @@ -116,14 +112,14 @@ u16 AddWindow(const struct WindowTemplate *template) for (win = 0; win < 0x20; ++win) { - if ((bgLayer = gWindows[win].window.priority) == 0xFF) + if ((bgLayer = gWindows[win].window.bg) == 0xFF) break; } if (win == 0x20) return 0xFF; - bgLayer = template->priority; + bgLayer = template->bg; allocatedBaseBlock = 0; if (gWindowTileAutoAllocEnabled == TRUE) @@ -179,7 +175,7 @@ u16 AddWindow(const struct WindowTemplate *template) void RemoveWindow(u8 windowId) { - u8 bgLayer = gWindows[windowId].window.priority; + u8 bgLayer = gWindows[windowId].window.bg; if (gWindowTileAutoAllocEnabled == TRUE) { @@ -235,14 +231,14 @@ void CopyWindowToVram(u8 windowId, u8 mode) switch (mode) { case 1: - CopyBgTilemapBufferToVram(windowLocal.window.priority); + CopyBgTilemapBufferToVram(windowLocal.window.bg); break; case 2: - LoadBgTiles(windowLocal.window.priority, windowLocal.tileData, windowSize, windowLocal.window.baseBlock); + LoadBgTiles(windowLocal.window.bg, windowLocal.tileData, windowSize, windowLocal.window.baseBlock); break; case 3: - LoadBgTiles(windowLocal.window.priority, windowLocal.tileData, windowSize, windowLocal.window.baseBlock); - CopyBgTilemapBufferToVram(windowLocal.window.priority); + LoadBgTiles(windowLocal.window.bg, windowLocal.tileData, windowSize, windowLocal.window.baseBlock); + CopyBgTilemapBufferToVram(windowLocal.window.bg); break; } } @@ -252,8 +248,8 @@ void PutWindowTilemap(u8 windowId) struct Window windowLocal = gWindows[windowId]; WriteSequenceToBgTilemapBuffer( - windowLocal.window.priority, - GetBgAttribute(windowLocal.window.priority, 0xA) + windowLocal.window.baseBlock, + windowLocal.window.bg, + GetBgAttribute(windowLocal.window.bg, 0xA) + windowLocal.window.baseBlock, windowLocal.window.tilemapLeft, windowLocal.window.tilemapTop, windowLocal.window.width, @@ -265,13 +261,13 @@ void PutWindowTilemap(u8 windowId) void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette) { struct Window windowLocal = gWindows[windowId]; - u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.priority, 0xA); + u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.bg, 0xA); int i; for (i = 0; i < height; ++i) { WriteSequenceToBgTilemapBuffer( - windowLocal.window.priority, + windowLocal.window.bg, currentRow, windowLocal.window.tilemapLeft + x, windowLocal.window.tilemapTop + y + i, @@ -289,7 +285,7 @@ void ClearWindowTilemap(u8 windowId) struct Window windowLocal = gWindows[windowId]; FillBgTilemapBufferRect( - windowLocal.window.priority, + windowLocal.window.bg, gWindowClearTile, windowLocal.window.tilemapLeft, windowLocal.window.tilemapTop, @@ -301,13 +297,13 @@ void ClearWindowTilemap(u8 windowId) void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height) { struct Window windowLocal = gWindows[windowId]; - u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.priority, 0xA); + u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.bg, 0xA); int i; for (i = 0; i < height; ++i) { WriteSequenceToBgTilemapBuffer( - windowLocal.window.priority, + windowLocal.window.bg, currentRow, windowLocal.window.tilemapLeft + x, windowLocal.window.tilemapTop + y + i, @@ -320,7 +316,7 @@ void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height) } } -void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height) +void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height) { BlitBitmapRectToWindow(windowId, pixels, 0, 0, width, height, x, y, width, height); } @@ -1073,10 +1069,10 @@ _08004046:\n\ } #endif // NONMATCHING -void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8)) +void CallWindowFunction(u8 windowId, WindowFunc func) { struct WindowTemplate window = gWindows[windowId].window; - func(window.priority, window.tilemapLeft, window.tilemapTop, window.width, window.height, window.paletteNum); + func(window.bg, window.tilemapLeft, window.tilemapTop, window.width, window.height, window.paletteNum); } bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value) @@ -1096,7 +1092,7 @@ bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value) gWindows[windowId].window.baseBlock = value; return FALSE; case WINDOW_TILE_DATA: - case WINDOW_PRIORITY: + case WINDOW_BG: case WINDOW_WIDTH: case WINDOW_HEIGHT: default: @@ -1108,8 +1104,8 @@ u32 GetWindowAttribute(u8 windowId, u8 attributeId) { switch (attributeId) { - case WINDOW_PRIORITY: - return gWindows[windowId].window.priority; + case WINDOW_BG: + return gWindows[windowId].window.bg; case WINDOW_TILEMAP_LEFT: return gWindows[windowId].window.tilemapLeft; case WINDOW_TILEMAP_TOP: @@ -1135,7 +1131,7 @@ static u8 GetNumActiveWindowsOnBg(u8 bgId) s32 i; for (i = 0; i < WINDOWS_MAX; i++) { - if (gWindows[i].window.priority == bgId) + if (gWindows[i].window.bg == bgId) windowsNum++; } return windowsNum; diff --git a/src/window_8bpp.c b/src/window_8bpp.c index 5eac3c558..c58c13802 100644 --- a/src/window_8bpp.c +++ b/src/window_8bpp.c @@ -2,13 +2,11 @@ #include "window.h" #include "malloc.h" #include "bg.h" +#include "blit.h" EWRAM_DATA static struct Window* sWindowPtr = NULL; EWRAM_DATA static u16 sWindowSize = 0; -extern void BlitBitmapRect4BitTo8Bit(struct Bitmap *src, struct Bitmap *dest, u16 srcX, u16 srcY, u16 destX, u16 destY, u16 width, u16 height, u8 colorKey, u8 paletteNum); -extern void FillBitmapRect8Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); - static u8 GetNumActiveWindowsOnBg8Bit(u8 bgId); static void nullsub_9(void) @@ -23,12 +21,12 @@ u16 AddWindow8Bit(struct WindowTemplate *template) for (windowId = 0; windowId < 32; windowId++) { - if (gWindows[windowId].window.priority == 0xFF) + if (gWindows[windowId].window.bg == 0xFF) break; } if (windowId == WINDOWS_MAX) return 0xFF; - bgLayer = template->priority; + bgLayer = template->bg; if (gWindowBgTilemapBuffers[bgLayer] == 0) { u16 attribute = GetBgAttribute(bgLayer, 8); @@ -107,14 +105,14 @@ void CopyWindowToVram8Bit(u8 windowId, u8 mode) switch (mode) { case 1: - CopyBgTilemapBufferToVram(sWindowPtr->window.priority); + CopyBgTilemapBufferToVram(sWindowPtr->window.bg); break; case 2: - LoadBgTiles(sWindowPtr->window.priority, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock); + LoadBgTiles(sWindowPtr->window.bg, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock); break; case 3: - LoadBgTiles(sWindowPtr->window.priority, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock); - CopyBgTilemapBufferToVram(sWindowPtr->window.priority); + LoadBgTiles(sWindowPtr->window.bg, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock); + CopyBgTilemapBufferToVram(sWindowPtr->window.bg); break; } } @@ -125,7 +123,7 @@ static u8 GetNumActiveWindowsOnBg8Bit(u8 bgId) s32 i; for (i = 0; i < WINDOWS_MAX; i++) { - if (gWindows[i].window.priority == bgId) + if (gWindows[i].window.bg == bgId) windowsNum++; } return windowsNum; diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c new file mode 100644 index 000000000..1eb29be1b --- /dev/null +++ b/src/wireless_communication_status_screen.c @@ -0,0 +1,436 @@ +#include "global.h" +#include "bg.h" +#include "palette.h" +#include "gpu_regs.h" +#include "malloc.h" +#include "task.h" +#include "text.h" +#include "window.h" +#include "new_menu_helpers.h" +#include "scanline_effect.h" +#include "m4a.h" +#include "string_util.h" +#include "unk_text_util.h" +#include "overworld.h" +#include "sound.h" +#include "menu.h" +#include "librfu.h" +#include "link_rfu.h" +#include "union_room.h" +#include "constants/songs.h" + +struct WirelessCommunicationStatusScreenStruct +{ + u32 field_00[4]; + u32 field_10[4]; + u32 field_20[16]; + u8 field_60; + u8 field_61; + u8 filler_62[0xA]; +}; + +struct WirelessCommunicationStatusScreenStruct * gUnknown_3002040; + +extern const u8 gUnknown_841E2B4[]; +extern const u8 gUnknown_841E2BF[]; +extern const u8 gUnknown_841E2C9[]; +extern const u8 gUnknown_841E2D4[]; +extern const u8 gUnknown_841E245[]; +extern const u8 gUnknown_841E263[]; +extern const u8 gUnknown_841E273[]; +extern const u8 gUnknown_841E284[]; +extern const u8 gUnknown_841E29E[]; + +void sub_814F1E4(void); +void sub_814F46C(u8 taskId); +void sub_814F65C(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 palIdx); +bool32 sub_814F7E4(u32 * a0, u32 * a1, u32 * a2, u8 taskId); + +const u16 gUnknown_846F4D0[][16] = { + INCBIN_U16("graphics/misc/unk_846f4d0.gbapal"), + INCBIN_U16("graphics/misc/unk_846f4f0.gbapal"), + INCBIN_U16("graphics/misc/unk_846f510.gbapal"), + INCBIN_U16("graphics/misc/unk_846f530.gbapal"), + INCBIN_U16("graphics/misc/unk_846f550.gbapal"), + INCBIN_U16("graphics/misc/unk_846f570.gbapal"), + INCBIN_U16("graphics/misc/unk_846f590.gbapal"), + INCBIN_U16("graphics/misc/unk_846f5b0.gbapal"), + INCBIN_U16("graphics/misc/unk_846f5d0.gbapal"), + INCBIN_U16("graphics/misc/unk_846f5f0.gbapal"), + INCBIN_U16("graphics/misc/unk_846f610.gbapal"), + INCBIN_U16("graphics/misc/unk_846f630.gbapal"), + INCBIN_U16("graphics/misc/unk_846f650.gbapal"), + INCBIN_U16("graphics/misc/unk_846f670.gbapal"), + INCBIN_U16("graphics/misc/unk_846f690.gbapal"), + INCBIN_U16("graphics/misc/unk_846f6b0.gbapal") +}; + +const u32 gUnknown_846F6D0[] = INCBIN_U32("graphics/misc/unk_846f6d0.4bpp.lz"); +const u16 gUnknown_846F8E0[] = INCBIN_U16("graphics/misc/unk_846f8e0.bin"); + +const struct BgTemplate gUnknown_846FA74[] = { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + }, { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 8, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x000 + } +}; + +const struct WindowTemplate gUnknown_846FA7C[] = { + { + .bg = 0x00, + .tilemapLeft = 0x03, + .tilemapTop = 0x00, + .width = 0x18, + .height = 0x03, + .paletteNum = 0x0f, + .baseBlock = 0x0001 + }, { + .bg = 0x00, + .tilemapLeft = 0x03, + .tilemapTop = 0x04, + .width = 0x16, + .height = 0x0f, + .paletteNum = 0x0f, + .baseBlock = 0x0049 + }, { + .bg = 0x00, + .tilemapLeft = 0x19, + .tilemapTop = 0x04, + .width = 0x02, + .height = 0x0f, + .paletteNum = 0x0f, + .baseBlock = 0x0193 + }, DUMMY_WIN_TEMPLATE +}; + +const u8 *const gUnknown_846FA9C[] = { + gUnknown_841E2B4, + gUnknown_841E2BF, + gUnknown_841E2C9, + gUnknown_841E2D4 +}; +const u8 *const gUnknown_846FAAC[] = { + gUnknown_841E245, + gUnknown_841E263, + gUnknown_841E273, + gUnknown_841E284, + gUnknown_841E29E +}; + +const u8 gUnknown_846FAC0[][3] = { + {0x01, 0x01, 0x02}, + {0x02, 0x01, 0x02}, + {0x03, 0x01, 0x04}, + {0x04, 0x00, 0x02}, + {0x15, 0x03, 0x02}, + {0x16, 0x03, 0x02}, + {0x09, 0x04, 0x00}, + {0x0a, 0x04, 0x00}, + {0x0b, 0x04, 0x00}, + {0x0c, 0xff, 0x00}, + {0x0d, 0x00, 0x00}, + {0x0e, 0xff, 0x00}, + {0x0f, 0x04, 0x00}, + {0x10, 0xff, 0x00}, + {0x40, 0x02, 0x01}, + {0x41, 0x02, 0x02}, + {0x44, 0x02, 0x02}, + {0x45, 0x02, 0x00}, + {0x48, 0x02, 0x02}, + {0x54, 0x02, 0x01}, + {0x53, 0x02, 0x02}, + {0x51, 0x02, 0x01}, + {0x52, 0x02, 0x01} +}; + +void sub_814F19C(void) +{ + if (!IsDma3ManagerBusyWithBgCopy()) + { + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + } +} + +void sub_814F1C0(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_814F1D4(void) +{ + SetMainCallback2(sub_814F1E4); +} + +void sub_814F1E4(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, 0); + gUnknown_3002040 = AllocZeroed(sizeof(*gUnknown_3002040)); + SetVBlankCallback(NULL); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_846FA74, NELEMS(gUnknown_846FA74)); + SetBgTilemapBuffer(1, Alloc(0x800)); + SetBgTilemapBuffer(0, Alloc(0x800)); + DecompressAndLoadBgGfxUsingHeap(1, gUnknown_846F6D0, 0, 0, 0); + CopyToBgTilemapBuffer(1, gUnknown_846F8E0, 0, 0); + InitWindows(gUnknown_846FA7C); + DeactivateAllTextPrinters(); + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + ScanlineEffect_Stop(); + m4aSoundVSyncOn(); + SetVBlankCallback(sub_814F1C0); + gUnknown_3002040->field_60 = CreateTask(sub_814F46C, 0); + gUnknown_3002040->field_61 = sub_8116DE0(); + gUnknown_3002040->field_10[3] = 1; + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + LoadPalette(gUnknown_846F4D0, 0, 0x20); + Menu_LoadStdPalAt(0xf0); + UnkTextUtil_Reset(); + FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0xF); + CopyBgTilemapBufferToVram(1); + SetMainCallback2(sub_814F19C); + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_814F32C(void) +{ + s32 i; + + FreeAllWindowBuffers(); + for (i = 0; i < 2; i++) + { + Free(GetBgTilemapBuffer(i)); + } + Free(gUnknown_3002040); + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); +} + +void sub_814F364(s16 * unk0, s16 * unk1) +{ + s32 idx; + (*unk0)++; + if (*unk0 > 5) + { + (*unk1)++; + if (*unk1 == 14) + { + *unk1 = 0; + } + *unk0 = 0; + } + idx = *unk1 + 2; + LoadPalette(gUnknown_846F4D0[idx], 0, 16); +} + +void sub_814F3A8(void) +{ + s32 i; + u32 width; + + FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(2, 0); + width = 0xC0 - GetStringWidth(3, gUnknown_846FAAC[0], 0); + sub_814F65C(0, 3, gUnknown_846FAAC[0], width / 2, 6, 3); + for (i = 0; i < 3; i++) + { + sub_814F65C(1, 3, gUnknown_846FAAC[i + 1], 0, 30 * i + 10, 1); + } + sub_814F65C(1, 3, gUnknown_846FAAC[i + 1], 0, 30 * i + 10, 2); + PutWindowTilemap(0); + CopyWindowToVram(0, 2); + PutWindowTilemap(1); + CopyWindowToVram(1, 2); +} + +void sub_814F46C(u8 taskId) +{ + s32 i; + switch (gTasks[taskId].data[0]) + { + case 0: + sub_814F3A8(); + gTasks[taskId].data[0]++; + break; + case 1: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + ShowBg(1); + CopyBgTilemapBufferToVram(0); + ShowBg(0); + gTasks[taskId].data[0]++; + break; + case 2: + if (!gPaletteFade.active) + gTasks[taskId].data[0]++; + break; + case 3: + if (sub_814F7E4(gUnknown_3002040->field_00, gUnknown_3002040->field_10, gUnknown_3002040->field_20, gUnknown_3002040->field_61)) + { + FillWindowPixelBuffer(2, 0x00); + for (i = 0; i < 4; i++) + { + ConvertIntToDecimalStringN(gStringVar4, gUnknown_3002040->field_00[i], STR_CONV_MODE_RIGHT_ALIGN, 2); + if (i != 3) + sub_814F65C(2, 3, gStringVar4, 4, 30 * i + 10, 1); + else + sub_814F65C(2, 3, gStringVar4, 4, 100, 2); + } + PutWindowTilemap(2); + CopyWindowToVram(2, 3); + } + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + gTasks[gUnknown_3002040->field_61].data[15] = 0xFF; + gTasks[taskId].data[0]++; + } + sub_814F364(&gTasks[taskId].data[7], &gTasks[taskId].data[8]); + break; + case 4: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gTasks[taskId].data[0]++; + break; + case 5: + if (!gPaletteFade.active) + { + SetMainCallback2(sub_814F32C); + DestroyTask(taskId); + } + break; + } +} + +void sub_814F65C(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 palIdx) +{ + struct TextColor textColor; + switch (palIdx) + { + case 0: + textColor.fgColor = 0; + textColor.bgColor = 2; + textColor.shadowColor = 3; + break; + case 1: + textColor.fgColor = 0; + textColor.bgColor = 1; + textColor.shadowColor = 3; + break; + case 2: + textColor.fgColor = 0; + textColor.bgColor = 4; + textColor.shadowColor = 5; + break; + case 3: + textColor.fgColor = 0; + textColor.bgColor = 7; + textColor.shadowColor = 6; + break; + case 4: + textColor.fgColor = 0; + textColor.bgColor = 1; + textColor.shadowColor = 2; + break; + // default: UB + } + AddTextPrinterParameterized4(windowId, fontId,x, y, fontId == 0 ? 0 : 1, 0, &textColor, -1, str); +} + +u32 sub_814F714(struct UnkStruct_x20 * unk20, u32 * arg1) +{ + u32 r8 = unk20->unk.field_0.unk_0a_0; + s32 i, j, k; + + for (i = 0; i < NELEMS(gUnknown_846FAC0); i++) + { + if (r8 == gUnknown_846FAC0[i][0] && unk20->field_1A_0 == 1) + { + if (gUnknown_846FAC0[i][2] == 0) + { + k = 0; + for (j = 0; j < 4; j++) + { + if (unk20->unk.field_0.unk_04[j] != 0) k++; + } + k++; + arg1[gUnknown_846FAC0[i][1]] += k; + } + else + { + arg1[gUnknown_846FAC0[i][1]] += gUnknown_846FAC0[i][2]; + } + } + } + + return r8; +} + +bool32 sub_814F7BC(const u32 * ptr0, const u32 * ptr1) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + if (ptr0[i] != ptr1[i]) + return TRUE; + } + + return FALSE; +} + +bool32 sub_814F7E4(u32 * a0, u32 * a1, u32 * a2, u8 taskId) +{ + bool32 r8 = FALSE; + u32 sp0[4] = {0, 0, 0, 0}; + struct UnkStruct_Group * group = (void *)gTasks[taskId].data; + s32 i; + + for (i = 0; i < 16; i++) + { + u32 r1 = sub_814F714(&group->field_0->arr[i], sp0); + if (r1 != a2[i]) + { + a2[i] = r1; + r8 = TRUE; + } + } + + if (sub_814F7BC(sp0, a1) == FALSE) + { + if (r8 == TRUE) + return TRUE; + else + return FALSE; + } + + memcpy(a0, sp0, sizeof(sp0)); + memcpy(a1, sp0, sizeof(sp0)); + a0[3] = a0[0] + a0[1] + a0[2]; + return TRUE; +} diff --git a/sym_bss.txt b/sym_bss.txt index 20d8d561d..603da6ddb 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -60,8 +60,7 @@ gUnknown_3000E6B: @ 3000E6B gUnknown_3000E6C: @ 3000E6C .space 0x8 -gUnknown_3000E74: @ 3000E74 - .space 0x4 + .include "src/daycare.o" gUnknown_3000E78: @ 3000E78 .space 0x4 @@ -111,22 +110,22 @@ gUnknown_3000FA9: @ 3000FA9 gUnknown_3000FAC: @ 3000FAC .space 0x2 -gUnknown_3000FAE: @ 3000FAE +sPrimaryTilesetCBCounter: @ 3000FAE .space 0x2 -gUnknown_3000FB0: @ 3000FB0 +sPrimaryTilesetCBBufferSize: @ 3000FB0 .space 0x2 -gUnknown_3000FB2: @ 3000FB2 +sSecondaryTilesetCBCounter: @ 3000FB2 .space 0x2 -gUnknown_3000FB4: @ 3000FB4 +sSecondaryTilesetCBBufferSize: @ 3000FB4 .space 0x4 -gUnknown_3000FB8: @ 3000FB8 +sPrimaryTilesetCB: @ 3000FB8 .space 0x4 -gUnknown_3000FBC: @ 3000FBC +sSecondaryTilesetCB: @ 3000FBC .space 0x4 .include "src/sound.o" @@ -198,48 +197,13 @@ gUnknown_3002040: @ 3002040 gUnknown_3002044: @ 3002044 .space 0x4 -gUnknown_3002048: @ 3002048 - .space 0x18 + .align 3 + .include "src/ereader_helpers.o" -gUnknown_3002060: @ 3002060 - .space 0x2 - -gUnknown_3002062: @ 3002062 - .space 0x2 - -gUnknown_3002064: @ 3002064 - .space 0x2 - -gUnknown_3002066: @ 3002066 - .space 0x2 - -gUnknown_3002068: @ 3002068 - .space 0x4 - -gUnknown_300206C: @ 300206C - .space 0x2 - -gUnknown_300206E: @ 300206E - .space 0x2 - -gUnknown_3002070: @ 3002070 - .space 0x2 - -gUnknown_3002072: @ 3002072 - .space 0x2 - -gUnknown_3002074: @ 3002074 - .space 0x4 - -gUnknown_3002078: @ 3002078 - .space 0x4 - -gUnknown_300207C: @ 300207C - .space 0x4 - -gUnknown_3002080: @ 3002080 - .space 0x8 + .align 3 + .include "src/unk_815C980.o" + .align 3 .include "asm/m4a_1.o" .include "src/agb_flash.o" diff --git a/sym_common.txt b/sym_common.txt index f63c4f277..56eed9a16 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -30,7 +30,7 @@ gUnknown_3003EBC: @ 3003EBC gUnknown_3003EC4: @ 3003EC4 .space 0xC -gUnknown_3003ED0: @ 3003ED0 +gRecvCmds: @ 3003ED0 .space 0x2 gUnknown_3003ED2: @ 3003ED2 @@ -96,7 +96,7 @@ gUnknown_3003FA0: @ 3003FA0 gUnknown_3003FB0: @ 3003FB0 .space 0x4 -gUnknown_3003FB4: @ 3003FB4 +gSioMlt_Recv: @ 3003FB4 .space 0xFBC gUnknown_3004F70: @ 3004F70 @@ -145,10 +145,10 @@ gUnknown_3005018: @ 3005018 gUnknown_300501C: @ 300501C .space 0x4 -gUnknown_3005020: @ 3005020 +gFieldCallback: @ 3005020 .space 0x4 -gUnknown_3005024: @ 3005024 +gFieldCallback2: @ 3005024 .space 0x4 gUnknown_3005028: @ 3005028 @@ -160,9 +160,9 @@ gUnknown_300502C: @ 300502C gUnknown_3005030: @ 3005030 .space 0x10 -gUnknown_3005040: @ 3005040 - .space 0x10 + .include "fieldmap.o" + .align 4 gUnknown_3005050: @ 3005050 .space 0x18 @@ -175,7 +175,7 @@ gUnknown_300506C: @ 300506C gUnknown_3005070: @ 3005070 .space 0x4 -gUnknown_3005074: @ 3005074 +gSelectedEventObject: @ 3005074 .space 0x4 gUnknown_3005078: @ 3005078 @@ -301,7 +301,7 @@ gUnknown_3005E20: @ 3005E20 gUnknown_3005E60: @ 3005E60 .space 0x10 -gUnknown_3005E70: @ 3005E70 +gMultiuseListMenuTemplate: @ 3005E70 .space 0x18 .include "quest_log.o" @@ -318,12 +318,8 @@ gUnknown_3005E94: @ 3005E94 gUnknown_3005E98: @ 3005E98 .space 0x4 -gUnknown_3005E9C: @ 3005E9C - .space 0x4 - -gUnknown_3005EA0: @ 3005EA0 - .space 0x10 - + .include "help_system_812B1E0.o" + .align 4 .include "fame_checker.o" gUnknown_3005ECC: @ 3005ECC @@ -333,21 +329,12 @@ gUnknown_3005ECC: @ 3005ECC .align 4 gUnknown_3005EE0: @ 3005EE0 +@ const u8 *gUnknown_3005EE0[4] .space 0x10 -gUnknown_3005EF0: @ 3005EF0 - .space 0x4 - -gUnknown_3005EF4: @ 3005EF4 - .space 0x4 - -gUnknown_3005EF8: @ 3005EF8 - .space 0x8 - -gUnknown_3005F00: @ 3005F00 - .space 0x50 - - .include "m4a_2.o" + .align 4 + .include "berry_fix_program.o" + .include "m4a.o" .include "agb_flash.o" gRfuState: @ 3007438 diff --git a/sym_ewram.txt b/sym_ewram.txt index f8e0df713..a8672a553 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,37 +1,15 @@ -gDecompressionBuffer: @ 201C000 - .space 0x20 - -gUnknown_201C020: @ 201C020 - .space 0xA8 - -gUnknown_201C0C8: @ 201C0C8 - .space 0x22F8 - -gUnknown_201E3C0: @ 201E3C0 - .space 0x1040 - -gUnknown_201F400: @ 201F400 - .space 0x400 - -gUnknown_201F800: @ 201F800 - .space 0x500 - -gUnknown_201FD00: @ 201FD00 - .space 0x1E0 - -gUnknown_201FEE0: @ 201FEE0 - .space 0x20 - -gUnknown_201FF00: @ 201FF00 - .space 0x100 - -gTrainerId: @ 2020000 - .space 0x4 + .align 2 + .include "src/main.o" + .align 2 .include "src/malloc.o" + .align 2 .include "src/text_printer.o" + .align 2 .include "src/window.o" + .align 2 .include "src/window_8bpp.o" + .align 2 .include "src/sprite.o" .align 2 @@ -116,28 +94,28 @@ gUnknown_2022870: @ 2022870 gUnknown_2022874: @ 2022874 .space 0x100 -gUnknown_2022974: @ 2022974 +gBattle_BG0_X: @ 2022974 .space 0x2 -gUnknown_2022976: @ 2022976 +gBattle_BG0_Y: @ 2022976 .space 0x2 -gUnknown_2022978: @ 2022978 +gBattle_BG1_X: @ 2022978 .space 0x2 -gUnknown_202297A: @ 202297A +gBattle_BG1_Y: @ 202297A .space 0x2 -gUnknown_202297C: @ 202297C +gBattle_BG2_X: @ 202297C .space 0x2 -gUnknown_202297E: @ 202297E +gBattle_BG2_Y: @ 202297E .space 0x2 -gUnknown_2022980: @ 2022980 +gBattle_BG3_X: @ 2022980 .space 0x2 -gUnknown_2022982: @ 2022982 +gBattle_BG3_Y: @ 2022982 .space 0x2 gUnknown_2022984: @ 2022984 @@ -254,7 +232,7 @@ gUnknown_2023C30: @ 2023C30 gUnknown_2023C34: @ 2023C34 .space 0x110 -gUnknown_2023D44: @ 2023D44 +gBattlerSpriteIds: @ 2023D44 .space 0x4 gUnknown_2023D48: @ 2023D48 @@ -386,7 +364,7 @@ gUnknown_2023E82: @ 2023E82 gUnknown_2023E83: @ 2023E83 .space 0x7 -gUnknown_2023E8A: @ 2023E8A +gBattleOutcome: @ 2023E8A .space 0x2 gUnknown_2023E8C: @ 2023E8C @@ -515,21 +493,9 @@ gMultiuseSpriteTemplate: @ 20244DC gUnknown_20244F4: @ 20244F4 .space 0x4 -gUnknown_20244F8: @ 20244F8 - .space 0x64 - -gUnknown_202455C: @ 202455C - .space 0x8 - -gUnknown_2024564: @ 2024564 - .space 0x8 - -gUnknown_202456C: @ 202456C - .space 0x14 - -gUnknown_2024580: @ 2024580 - .space 0x8 - + .align 2 + .include "src/daycare.o" + .align 2 .include "src/load_save.o" .align 2 @@ -593,17 +559,7 @@ gUnknown_2031DEA: @ 2031DEA gUnknown_2031DEC: @ 2031DEC .space 0x10 -gUnknown_2031DFC: @ 2031DFC - .space 0x5000 - -gMapHeader: @ 2036DFC - .space 0x1C - -gUnknown_2036E18: @ 2036E18 - .space 0xC - -gUnknown_2036E24: @ 2036E24 - .space 0x4 + .include "src/fieldmap.o" gUnknown_2036E28: @ 2036E28 .space 0x4 @@ -633,29 +589,9 @@ gUnknown_203709C: @ 203709C .space 0x4 .include "src/script.o" + .include "src/scrcmd.o" - .align 2 -gUnknown_20370A8: @ 20370A8 - .space 0x4 - -gUnknown_20370AC: @ 20370AC - .space 0x2 - -gUnknown_20370AE: @ 20370AE - .space 0x2 - -gUnknown_20370B0: @ 20370B0 - .space 0x2 - -gUnknown_20370B2: @ 20370B2 - .space 0x2 - -gUnknown_20370B4: @ 20370B4 - .space 0x2 - -gUnknown_20370B6: @ 20370B6 - .space 0x2 - + .align 2 gSpecialVar_0x8000: @ 20370B8 .space 0x2 @@ -788,7 +724,7 @@ gUnknown_2037EE2: @ 2037EE2 gUnknown_2037EE3: @ 2037EE3 .space 0x1 -gUnknown_2037EE4: @ 2037EE4 +gAnimDisableStructPtr: @ 2037EE4 .space 0x4 gUnknown_2037EE8: @ 2037EE8 @@ -806,7 +742,7 @@ gUnknown_2037EFE: @ 2037EFE gUnknown_2037F00: @ 2037F00 .space 0x2 -gUnknown_2037F02: @ 2037F02 +gBattleAnimArgs: @ 2037F02 .space 0x10 gUnknown_2037F12: @ 2037F12 @@ -815,7 +751,7 @@ gUnknown_2037F12: @ 2037F12 gUnknown_2037F14: @ 2037F14 .space 0x2 -gUnknown_2037F16: @ 2037F16 +gAnimMoveTurn: @ 2037F16 .space 0x1 gUnknown_2037F17: @ 2037F17 @@ -824,10 +760,10 @@ gUnknown_2037F17: @ 2037F17 gUnknown_2037F18: @ 2037F18 .space 0x2 -gUnknown_2037F1A: @ 2037F1A +gBattleAnimAttacker: @ 2037F1A .space 0x1 -gUnknown_2037F1B: @ 2037F1B +gBattleAnimTarget: @ 2037F1B .space 0x1 gUnknown_2037F1C: @ 2037F1C @@ -899,30 +835,9 @@ gUnknown_20386DC: @ 20386DC gFieldEffectArguments: @ 20386E0 .space 0x20 -gUnknown_2038700: @ 2038700 - .space 0x2 - -gUnknown_2038702: @ 2038702 - .space 0x2 - -gUnknown_2038704: @ 2038704 - .space 0x27C - -gUnknown_2038980: @ 2038980 - .space 0x500 - -gUnknown_2038E80: @ 2038E80 - .space 0x140 - -gUnknown_2038FC0: @ 2038FC0 - .space 0x640 - -gUnknown_2039600: @ 2039600 - .space 0x1C - -gUnknown_203961C: @ 203961C - .space 0x4 + .include "src/scanline_effect.o" + .align 2 gUnknown_2039620: @ 2039620 .space 0x4 @@ -1007,29 +922,11 @@ gUnknown_2039870: @ 2039870 gUnknown_2039874: @ 2039874 .space 0x4 -gUnknown_2039878: @ 2039878 - .space 0x1 + .align 2 + .include "src/item_menu_icons.o" -gUnknown_2039879: @ 2039879 - .space 0x9 - -gUnknown_2039882: @ 2039882 - .space 0x2 - -gUnknown_2039884: @ 2039884 - .space 0x4 - -gUnknown_2039888: @ 2039888 - .space 0x4 - -gUnknown_203988C: @ 203988C - .space 0x18 - -gUnknown_20398A4: @ 20398A4 - .space 0x8 - -gUnknown_20398AC: @ 20398AC - .space 0x8 +gBagPockets: @ 203988C + .space 0x28 gUnknown_20398B4: @ 20398B4 .space 0x4 @@ -1088,9 +985,10 @@ gUnknown_2039994: @ 2039994 gUnknown_2039996: @ 2039996 .space 0x2 -gUnknown_2039998: @ 2039998 - .space 0x4 + .align 2 + .include "src/item_use.o" + .align 2 gUnknown_203999C: @ 203999C .space 0x8 @@ -1400,38 +1298,19 @@ gUnknown_203AD2C: @ 203AD2C gSpecialVar_ItemId: @ 203AD30 .space 0x4 -gUnknown_203AD34: @ 203AD34 - .space 0xC + .align 2 + .include "src/bag.o" -gUnknown_203AD40: @ 203AD40 - .space 0x18 - -gUnknown_203AD58: @ 203AD58 - .space 0x60 + .align 2 + .include "src/trainer_pokemon_sprites.o" + .align 2 .include "src/vs_seeker.o" -gUnknown_203ADBC: @ 203ADBC - .space 0x4 - -gUnknown_203ADC0: @ 203ADC0 - .space 0x4 - -gUnknown_203ADC4: @ 203ADC4 - .space 0x4 - -gUnknown_203ADC8: @ 203ADC8 - .space 0x4 - -gUnknown_203ADCC: @ 203ADCC - .space 0x4 - -gUnknown_203ADD0: @ 203ADD0 - .space 0x8 - -gUnknown_203ADD8: @ 203ADD8 - .space 0x4 + .align 2 + .include "src/item_pc.o" + .align 2 gUnknown_203ADDC: @ 203ADDC .space 0x4 @@ -1524,7 +1403,7 @@ gUnknown_203B0C0: @ 203B0C0 gUnknown_203B0C1: @ 203B0C1 .space 0x3 -gUnknown_203B0C4: @ 203B0C4 +gPostMenuFieldCallback: @ 203B0C4 .space 0x4 gUnknown_203B0C8: @ 203B0C8 @@ -1554,40 +1433,14 @@ gUnknown_203B0E4: @ 203B0E4 gUnknown_203B0E8: @ 203B0E8 .space 0x4 -gUnknown_203B0EC: @ 203B0EC - .space 0x2 - -gUnknown_203B0EE: @ 203B0EE - .space 0x2 - + .align 2 + .include "src/help_system_812B1E0.o" + .align 2 .include "src/fame_checker.o" - -gUnknown_203B108: @ 203B108 - .space 0x4 - -gUnknown_203B10C: @ 203B10C - .space 0xA - -gUnknown_203B116: @ 203B116 - .space 0x2 - -gUnknown_203B118: @ 203B118 - .space 0x4 - -gUnknown_203B11C: @ 203B11C - .space 0x4 - -gUnknown_203B120: @ 203B120 - .space 0x4 - -gUnknown_203B124: @ 203B124 - .space 0x4 - -gUnknown_203B128: @ 203B128 - .space 0x4 - -gUnknown_203B12C: @ 203B12C - .space 0x4 + .align 2 + .include "src/oak_speech.o" + .align 2 + .include "src/tm_case.o" gUnknown_203B130: @ 203B130 .space 0x10 @@ -1628,33 +1481,10 @@ gUnknown_203B16E: @ 203B16E gUnknown_203B170: @ 203B170 .space 0x4 -gUnknown_203B174: @ 203B174 - .space 0x4000 - -gUnknown_203F174: @ 203F174 - .space 0x1 - -gUnknown_203F175: @ 203F175 - .space 0x1 - -gUnknown_203F176: @ 203F176 - .space 0x1 - -gUnknown_203F177: @ 203F177 - .space 0x1 - -gUnknown_203F178: @ 203F178 - .space 0x12 - -gUnknown_203F18A: @ 203F18A - .space 0x6 - -gUnknown_203F190: @ 203F190 - .space 0x1C - -gUnknown_203F1AC: @ 203F1AC - .space 0x1A0 + .align 2 + .include "src/help_system.o" + @ src/unk_text_util.o gUnknown_203F34C: @ 203F34C .space 0x20 @@ -1691,25 +1521,18 @@ gUnknown_203F3A0: @ 203F3A0 gUnknown_203F3A4: @ 203F3A4 .space 0x4 -gUnknown_203F3A8: @ 203F3A8 +sLocationHistory: @ 203F3A8 .space 0x6 -gUnknown_203F3AE: @ 203F3AE +sRoamerLocation: @ 203F3AE .space 0x2 -gUnknown_203F3B0: @ 203F3B0 - .space 0x8 - -gUnknown_203F3B8: @ 203F3B8 - .space 0x4 - + .include "src/mystery_gift_menu.o" .include "src/mevent.o" .include "src/mevent_server_helpers.o" .include "src/mevent_server.o" .include "src/mevent_8145654.o" - -gUnknown_203F3D0: @ 203F3D0 - .space 0x4 + .include "src/seagallop.o" gUnknown_203F3D4: @ 203F3D4 .space 0x4 @@ -1741,22 +1564,11 @@ gUnknown_203F43C: @ 203F43C gUnknown_203F440: @ 203F440 .space 0x4 -gUnknown_203F444: @ 203F444 - .space 0x6 - -gUnknown_203F44A: @ 203F44A - .space 0x6 - -gUnknown_203F450: @ 203F450 - .space 0x4 - -gUnknown_203F454: @ 203F454 - .space 0x4 - + .align 2 + .include "src/teachy_tv.o" + .align 2 + .include "src/unk_815C980.o" + .align 2 .include "src/trainer_tower.o" - -gUnknown_203F460: @ 203F460 - .space 0x4 - -gUnknown_203F464: @ 203F464 - .space 0x1 + .align 2 + .include "src/berry_powder.o" diff --git a/tileset_rules.mk b/tileset_rules.mk new file mode 100644 index 000000000..7e994e24f --- /dev/null +++ b/tileset_rules.mk @@ -0,0 +1,202 @@ +TILESETGFXDIR := data/tilesets + +$(TILESETGFXDIR)/primary/82D4BB4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 640 + +$(TILESETGFXDIR)/primary/82D4A94/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 640 + +$(TILESETGFXDIR)/secondary/82D4AAC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 76 + +$(TILESETGFXDIR)/secondary/82D4B0C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 256 + +$(TILESETGFXDIR)/secondary/82D4B6C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 128 + +$(TILESETGFXDIR)/secondary/82D4BE4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 376 + +$(TILESETGFXDIR)/secondary/82D4C44/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 632 + +$(TILESETGFXDIR)/secondary/82D4CA4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 92 + +$(TILESETGFXDIR)/secondary/82D4D04/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 207 + +$(TILESETGFXDIR)/secondary/82D4D64/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 82 + +$(TILESETGFXDIR)/secondary/82D4DC4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 101 + +$(TILESETGFXDIR)/secondary/82D4E24/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 318 + +$(TILESETGFXDIR)/secondary/82D4E84/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 152 + +$(TILESETGFXDIR)/secondary/82D4EE4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 50 + +$(TILESETGFXDIR)/secondary/82D4F44/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 76 + +$(TILESETGFXDIR)/secondary/82D4FA4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 172 + +$(TILESETGFXDIR)/secondary/82D5004/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 101 + +$(TILESETGFXDIR)/secondary/82D5064/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 374 + +$(TILESETGFXDIR)/secondary/82D50C4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 340 + +$(TILESETGFXDIR)/secondary/82D4AC4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 112 + +$(TILESETGFXDIR)/secondary/82D4B24/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 140 + +$(TILESETGFXDIR)/secondary/82D4B84/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 247 + +$(TILESETGFXDIR)/secondary/82D4BFC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 256 + +$(TILESETGFXDIR)/secondary/82D4C5C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 60 + +$(TILESETGFXDIR)/secondary/82D4CBC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 90 + +$(TILESETGFXDIR)/secondary/82D4D1C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 119 + +$(TILESETGFXDIR)/secondary/82D4D7C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 146 + +$(TILESETGFXDIR)/secondary/82D4DDC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 144 + +$(TILESETGFXDIR)/secondary/82D4E3C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 144 + +$(TILESETGFXDIR)/secondary/82D4E9C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 80 + +$(TILESETGFXDIR)/secondary/82D4EFC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 128 + +$(TILESETGFXDIR)/secondary/82D4F5C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 50 + +$(TILESETGFXDIR)/secondary/82D4FBC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 2 + +$(TILESETGFXDIR)/secondary/82D501C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 282 + +$(TILESETGFXDIR)/secondary/82D507C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 374 + +$(TILESETGFXDIR)/secondary/82D50DC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 208 + +$(TILESETGFXDIR)/secondary/82D4ADC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 280 + +$(TILESETGFXDIR)/secondary/82D4B3C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 244 + +$(TILESETGFXDIR)/secondary/82D4B9C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 262 + +$(TILESETGFXDIR)/secondary/82D4C14/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 2 + +$(TILESETGFXDIR)/secondary/82D4C74/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 63 + +$(TILESETGFXDIR)/secondary/82D4CD4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 383 + +$(TILESETGFXDIR)/secondary/82D4D34/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 247 + +$(TILESETGFXDIR)/secondary/82D4D94/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 245 + +$(TILESETGFXDIR)/secondary/82D4DF4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 256 + +$(TILESETGFXDIR)/secondary/82D4E54/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 246 + +$(TILESETGFXDIR)/secondary/82D4EB4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 68 + +$(TILESETGFXDIR)/secondary/82D4F14/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 90 + +$(TILESETGFXDIR)/secondary/82D4F74/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 85 + +$(TILESETGFXDIR)/secondary/82D4FD4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 2 + +$(TILESETGFXDIR)/secondary/82D5034/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 74 + +$(TILESETGFXDIR)/secondary/82D5094/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 343 + +$(TILESETGFXDIR)/secondary/82D4AF4/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 158 + +$(TILESETGFXDIR)/secondary/82D4B54/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 191 + +$(TILESETGFXDIR)/secondary/82D4BCC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 36 + +$(TILESETGFXDIR)/secondary/82D4C2C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 137 + +$(TILESETGFXDIR)/secondary/82D4C8C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 102 + +$(TILESETGFXDIR)/secondary/82D4CEC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 171 + +$(TILESETGFXDIR)/secondary/82D4D4C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 103 + +$(TILESETGFXDIR)/secondary/82D4DAC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 2 + +$(TILESETGFXDIR)/secondary/82D4E0C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 248 + +$(TILESETGFXDIR)/secondary/82D4E6C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 201 + +$(TILESETGFXDIR)/secondary/82D4F2C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 350 + +$(TILESETGFXDIR)/secondary/82D4F8C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 384 + +$(TILESETGFXDIR)/secondary/82D4FEC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 288 + +$(TILESETGFXDIR)/secondary/82D504C/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 374 + +$(TILESETGFXDIR)/secondary/82D50AC/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 165 diff --git a/tools/gbafix/gbafix.c b/tools/gbafix/gbafix.c index d5e2f62ab..81c8c04c0 100644 --- a/tools/gbafix/gbafix.c +++ b/tools/gbafix/gbafix.c @@ -160,7 +160,7 @@ int main(int argc, char *argv[]) // get filename for (arg=1; arg #include #include -#include #include "global.h" #include "gfx.h" #include "util.h" @@ -19,140 +18,6 @@ #define DOWNCONVERT_BIT_DEPTH(x) ((x) / 8) -static inline void swap_bytes(unsigned char * orig, unsigned char * dest) { - unsigned char tmp = *orig; - *orig = *dest; - *dest = tmp; -} - -static inline unsigned char swap_nybbles(unsigned char orig) -{ - return (orig >> 4) | (orig << 4); -} - -static inline void swap_bytes_nybswap(unsigned char * orig, unsigned char * dest) { - unsigned char tmp = swap_nybbles(*orig); - *orig = swap_nybbles(*dest); - *dest = tmp; -} - -static inline unsigned char reverse_bits(unsigned char orig) { - unsigned char dest = 0; - for (int i = 0; i < 8; i++) - { - dest <<= 1; - dest |= orig & 1; - orig >>= 1; - } - return dest; -} - -static void vflip(unsigned char * tile, int bitDepth) { - for (int x = 0; x < bitDepth; x++) - { - unsigned char * col = tile + x; - swap_bytes(col + 0 * bitDepth, col + 7 * bitDepth); - swap_bytes(col + 1 * bitDepth, col + 6 * bitDepth); - swap_bytes(col + 2 * bitDepth, col + 5 * bitDepth); - swap_bytes(col + 3 * bitDepth, col + 4 * bitDepth); - } -} - -static void hflip(unsigned char * tile, int bitDepth) { - for (int y = 0; y < 8; y++) - { - unsigned char * row = tile + y * bitDepth; - switch (bitDepth) - { - case 1: - *row = reverse_bits(*row); - break; - case 4: - swap_bytes_nybswap(row + 0, row + 3); - swap_bytes_nybswap(row + 1, row + 2); - break; - case 8: - swap_bytes(row + 0, row + 56); - swap_bytes(row + 8, row + 48); - swap_bytes(row + 16, row + 40); - swap_bytes(row + 24, row + 32); - break; - } - } -} - -static unsigned char * ApplyTilemap(struct Image *image, unsigned char * buffer, int bitDepth) -{ - int tileSize = bitDepth * 8; - unsigned char * tiles = calloc(image->tileMap.numTiles, tileSize); - int i; - struct Tile tileInfo; - - for (i = 0; i < image->tileMap.numTiles; i++) { - tileInfo = image->tileMap.data[i]; - unsigned char * tile = tiles + i * tileSize; - memcpy(tile, buffer + tileInfo.index * tileSize, tileSize); - if (tileInfo.xflip) - hflip(tile, bitDepth); - if (tileInfo.yflip) - vflip(tile, bitDepth); - } - free(buffer); - return tiles; -} - -static unsigned char * BuildTilemap(struct Image *image, unsigned char * buffer, int * bufferSize) -{ - int tileSize = image->bitDepth * 8; - unsigned char * outputPixels = calloc(1024, tileSize); - int nTilesIn = image->height * image->width / 64; - image->tileMap.data = calloc(nTilesIn, sizeof(struct Tilemap)); - image->tileMap.numTiles = nTilesIn; - int nTilesOut = 0; - unsigned char curTile1[tileSize]; - unsigned char curTile2[tileSize]; - - for (int i = 0; i < nTilesIn; i++) { - bool xflip = false; - bool yflip = false; - int j; - memcpy(curTile1, buffer + i * tileSize, tileSize); - - for (j = 0; j < nTilesOut; j++) { - memcpy(curTile2, outputPixels + j * tileSize, tileSize); - if (memcmp(curTile1, curTile2, tileSize) == 0) - break; - xflip = true; - hflip(curTile2, image->bitDepth); - if (memcmp(curTile1, curTile2, tileSize) == 0) - break; - yflip = true; - vflip(curTile2, image->bitDepth); - if (memcmp(curTile1, curTile2, tileSize) == 0) - break; - xflip = false; - hflip(curTile2, image->bitDepth); - if (memcmp(curTile1, curTile2, tileSize) == 0) - break; - yflip = false; - } - image->tileMap.data[i].index = j; - image->tileMap.data[i].xflip = xflip; - image->tileMap.data[i].yflip = yflip; - image->tileMap.data[i].palno = 0; - if (j >= nTilesOut) { - if (nTilesOut >= 1024) - FATAL_ERROR("Cannot reduce image to 1024 or fewer tiles.\n"); - memcpy(outputPixels + nTilesOut * tileSize, curTile1, tileSize); - nTilesOut++; - } - } - - free(buffer); - *bufferSize = nTilesOut * tileSize; - return outputPixels; -} - static void AdvanceMetatilePosition(int *subTileX, int *subTileY, int *metatileX, int *metatileY, int metatilesWide, int metatileWidth, int metatileHeight) { (*subTileX)++; @@ -345,21 +210,15 @@ void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int int fileSize; unsigned char *buffer = ReadWholeFile(path, &fileSize); - int numTiles; - if (image->hasTilemap) { - buffer = ApplyTilemap(image, buffer, bitDepth); - numTiles = image->tileMap.numTiles; - } - else - numTiles = fileSize / tileSize; + int numTiles = fileSize / tileSize; int tilesHeight = (numTiles + tilesWidth - 1) / tilesWidth; if (tilesWidth % metatileWidth != 0) - FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)\n", tilesWidth, metatileWidth); + FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)", tilesWidth, metatileWidth); if (tilesHeight % metatileHeight != 0) - FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)\n", tilesHeight, metatileHeight); + FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)", tilesHeight, metatileHeight); image->width = tilesWidth * 8; image->height = tilesHeight * 8; @@ -432,9 +291,6 @@ void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int m break; } - if (image->hasTilemap) - buffer = BuildTilemap(image, buffer, &bufferSize); - WriteWholeFile(path, buffer, bufferSize); free(buffer); @@ -444,11 +300,6 @@ void FreeImage(struct Image *image) { free(image->pixels); image->pixels = NULL; - if (image->hasTilemap && image->tileMap.data != NULL) { - free(image->tileMap.data); - image->tileMap.data = NULL; - image->tileMap.numTiles = 0; - } } void ReadGbaPalette(char *path, struct Palette *palette) @@ -491,45 +342,3 @@ void WriteGbaPalette(char *path, struct Palette *palette) fclose(fp); } - -void ReadGbaTilemap(char *path, struct Tilemap *tileMap) -{ - int fileSize; - unsigned char *data = ReadWholeFile(path, &fileSize); - - if (fileSize % 2 != 0) - FATAL_ERROR("The file size (%d) is not a multiple of 2.\n", fileSize); - - tileMap->numTiles = fileSize / 2; - tileMap->data = malloc(tileMap->numTiles * sizeof(struct Tile)); - - for (int i = 0; i < tileMap->numTiles; i++) - { - uint16_t raw = data[2 * i + 0] | (data[2 * i + 1] << 8); - tileMap->data[i].index = raw & 0x3FF; - tileMap->data[i].xflip = raw & 0x400 ? 1 : 0; - tileMap->data[i].yflip = raw & 0x800 ? 1 : 0; - tileMap->data[i].palno = raw >> 12; - } - - free(data); -} - -void WriteGbaTilemap(char *path, struct Tilemap *tileMap) -{ - FILE *fp = fopen(path, "wb"); - - if (fp == NULL) - FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); - - for (int i = 0; i < tileMap->numTiles; i++) { - uint16_t raw = tileMap->data[i].index - | (tileMap->data[i].xflip << 10) - | (tileMap->data[i].yflip << 11) - | (tileMap->data[i].palno << 12); - fputc(raw & 0xFF, fp); - fputc(raw >> 8, fp); - } - - fclose(fp); -} diff --git a/tools/gbagfx/gfx.h b/tools/gbagfx/gfx.h index 15a3c6a6c..5355ced85 100644 --- a/tools/gbagfx/gfx.h +++ b/tools/gbagfx/gfx.h @@ -17,18 +17,6 @@ struct Palette { int numColors; }; -struct __attribute__((packed)) Tile { - unsigned short index:10; - unsigned short xflip:1; - unsigned short yflip:1; - unsigned short palno:4; -}; - -struct Tilemap { - struct Tile *data; - int numTiles; -}; - struct Image { int width; int height; @@ -37,9 +25,6 @@ struct Image { bool hasPalette; struct Palette palette; bool hasTransparency; - struct Tilemap tileMap; - bool hasTilemap; - }; void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors); @@ -47,7 +32,5 @@ void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int m void FreeImage(struct Image *image); void ReadGbaPalette(char *path, struct Palette *palette); void WriteGbaPalette(char *path, struct Palette *palette); -void ReadGbaTilemap(char *path, struct Tilemap *tileMap); -void WriteGbaTilemap(char *path, struct Tilemap *tileMap); #endif // GFX_H diff --git a/tools/gbagfx/huff.c b/tools/gbagfx/huff.c new file mode 100644 index 000000000..143ed79be --- /dev/null +++ b/tools/gbagfx/huff.c @@ -0,0 +1,398 @@ +#include +#include +#include +#include +#include +#include "global.h" +#include "huff.h" + +static int cmp_tree(const void * a0, const void * b0) { + return ((struct HuffData *)a0)->value - ((struct HuffData *)b0)->value; +} + +typedef int (*cmpfun)(const void *, const void *); + +int msort_r(void * data, size_t count, size_t size, cmpfun cmp, void * buffer) { + /* + * Out-of-place mergesort (stable sort) + * Returns 1 on success, 0 on failure + */ + void * leftPtr; + void * rightPtr; + void * leftEnd; + void * rightEnd; + int i; + + switch (count) { + case 0: + // Should never be here + return 0; + + case 1: + // Nothing to do here + break; + + case 2: + // Swap the two entries if the right one compares higher. + if (cmp(data, data + size) > 0) { + memcpy(buffer, data, size); + memcpy(data, data + size, size); + memcpy(data + size, buffer, size); + } + break; + default: + // Merge sort out-of-place. + leftPtr = data; + leftEnd = rightPtr = data + count / 2 * size; + rightEnd = data + count * size; + + // Sort the left half + if (!msort_r(leftPtr, count / 2, size, cmp, buffer)) + return 0; + + // Sort the right half + if (!msort_r(rightPtr, count / 2 + (count & 1), size, cmp, buffer)) + return 0; + + // Merge the sorted halves out of place + i = 0; + do { + if (cmp(leftPtr, rightPtr) <= 0) { + memcpy(buffer + i * size, leftPtr, size); + leftPtr += size; + } else { + memcpy(buffer + i * size, rightPtr, size); + rightPtr += size; + } + + } while (++i < count && leftPtr < leftEnd && rightPtr < rightEnd); + + // Copy the remainder + if (i < count) { + if (leftPtr < leftEnd) { + memcpy(buffer + i * size, leftPtr, leftEnd - leftPtr); + } + else { + memcpy(buffer + i * size, rightPtr, rightEnd - rightPtr); + } + } + + // Copy the merged data back + memcpy(data, buffer, count * size); + break; + } + + return 1; +} + +int msort(void * data, size_t count, size_t size, cmpfun cmp) { + void * buffer = malloc(count * size); + if (buffer == NULL) return 0; + int result = msort_r(data, count, size, cmp, buffer); + free(buffer); + return result; +} + +static void write_tree(unsigned char * dest, HuffNode_t * tree, int nitems, struct BitEncoding * encoding) { + /* + * The example used to guide this function encodes the tree in a + * breadth-first manner. We attempt to emulate that here. + */ + + int i, j, k; + + // There are (2 * nitems - 1) nodes in the binary tree. Allocate that. + HuffNode_t * traversal = calloc(2 * nitems - 1, sizeof(HuffNode_t)); + if (traversal == NULL) + FATAL_ERROR("Fatal error while compressing Huff file.\n"); + + // The first node is the root of the tree. + traversal[0] = *tree; + i = 1; + + // Copy the tree into a breadth-first ordering using brute force. + for (int depth = 1; i < 2 * nitems - 1; depth++) { + // Consider every possible path up to the current depth. + for (j = 0; i < 2 * nitems - 1 && j < 1 << depth; j++) { + // The index of the path is used to encode the path itself. + // Start from the most significant relevant bit and work our way down. + // Keep track of the current and previous nodes. + HuffNode_t * currNode = traversal; + HuffNode_t * parent = NULL; + for (k = 0; k < depth; k++) { + if (currNode->header.isLeaf) + break; + parent = currNode; + if ((j >> (depth - k - 1)) & 1) + currNode = currNode->branch.right; + else + currNode = currNode->branch.left; + } + // Check that the length of the current path equals the current depth. + if (k == depth) { + // Make sure we can encode the current branch. + // Bail here if we cannot. + // This is only applicable for 8-bit encodings. + if (traversal + i - parent > 128) + FATAL_ERROR("Fatal error while compressing Huff file: unable to encode binary tree.\n"); + // Copy the current node, and update its parent. + traversal[i] = *currNode; + if (parent != NULL) { + if ((j & 1) == 1) + parent->branch.right = traversal + i; + else + parent->branch.left = traversal + i; + } + // Encode the path through the tree in the lookup table + if (traversal[i].header.isLeaf) { + encoding[traversal[i].leaf.key].nbits = depth; + encoding[traversal[i].leaf.key].bitstring = j; + } + i++; + } + } + } + + // Encode the size of the tree. + // This is used by the decompressor to skip the tree. + dest[4] = nitems - 1; + + // Encode each node in the tree. + for (i = 0; i < 2 * nitems - 1; i++) { + HuffNode_t * currNode = traversal + i; + if (currNode->header.isLeaf) { + dest[5 + i] = traversal[i].leaf.key; + } else { + dest[5 + i] = (((currNode->branch.right - traversal - i) / 2) - 1); + if (currNode->branch.left->header.isLeaf) + dest[5 + i] |= 0x80; + if (currNode->branch.right->header.isLeaf) + dest[5 + i] |= 0x40; + } + } + + free(traversal); +} + +static inline void write_32_le(unsigned char * dest, int * destPos, uint32_t * buff, int * buffPos) { + dest[*destPos] = *buff; + dest[*destPos + 1] = *buff >> 8; + dest[*destPos + 2] = *buff >> 16; + dest[*destPos + 3] = *buff >> 24; + *destPos += 4; + *buff = 0; + *buffPos = 0; +} + +static inline void read_32_le(unsigned char * src, int * srcPos, uint32_t * buff) { + uint32_t tmp = src[*srcPos]; + tmp |= src[*srcPos + 1] << 8; + tmp |= src[*srcPos + 2] << 16; + tmp |= src[*srcPos + 3] << 24; + *srcPos += 4; + *buff = tmp; +} + +static void write_bits(unsigned char * dest, int * destPos, struct BitEncoding * encoding, int value, uint32_t * buff, int * buffBits) { + int nbits = encoding[value].nbits; + uint32_t bitstring = encoding[value].bitstring; + + if (*buffBits + nbits >= 32) { + int diff = *buffBits + nbits - 32; + *buff <<= nbits - diff; + *buff |= bitstring >> diff; + bitstring &= ~(1 << diff); + nbits = diff; + write_32_le(dest, destPos, buff, buffBits); + } + if (nbits != 0) { + *buff <<= nbits; + *buff |= bitstring; + *buffBits += nbits; + } +} + +/* +======================================= +MAIN COMPRESSION/DECOMPRESSION ROUTINES +======================================= + */ + +unsigned char * HuffCompress(unsigned char * src, int srcSize, int * compressedSize_p, int bitDepth) { + if (srcSize <= 0) + goto fail; + + int worstCaseDestSize = 4 + (2 << bitDepth) + srcSize * 3; + + unsigned char *dest = malloc(worstCaseDestSize); + if (dest == NULL) + goto fail; + + int nitems = 1 << bitDepth; + + HuffNode_t * freqs = calloc(nitems, sizeof(HuffNode_t)); + if (freqs == NULL) + goto fail; + + struct BitEncoding * encoding = calloc(nitems, sizeof(struct BitEncoding)); + if (encoding == NULL) + goto fail; + + // Set up the frequencies table. This will inform the tree. + for (int i = 0; i < nitems; i++) { + freqs[i].header.isLeaf = 1; + freqs[i].header.value = 0; + freqs[i].leaf.key = i; + } + + // Count each nybble or byte. + for (int i = 0; i < srcSize; i++) { + if (bitDepth == 8) { + freqs[src[i]].header.value++; + } else { + freqs[src[i] >> 4].header.value++; + freqs[src[i] & 0xF].header.value++; + } + } + +#ifdef DEBUG + for (int i = 0; i < nitems; i++) { + fprintf(stderr, "%d: %d\n", i, freqs[i].header.value); + } +#endif // DEBUG + + // Sort the frequency table. + if (!msort(freqs, nitems, sizeof(HuffNode_t), cmp_tree)) + goto fail; + + // Prune zero-frequency values. + for (int i = 0; i < nitems; i++) { + if (freqs[i].header.value != 0) { + if (i > 0) { + for (int j = i; j < nitems; j++) { + freqs[j - i] = freqs[j]; + } + nitems -= i; + } + break; + } + // This should never happen: + if (i == nitems - 1) + goto fail; + } + + HuffNode_t * tree = calloc(nitems * 2 - 1, sizeof(HuffNode_t)); + if (tree == NULL) + goto fail; + + // Iteratively collapse the two least frequent nodes. + HuffNode_t * endptr = freqs + nitems - 2; + + for (int i = 0; i < nitems - 1; i++) { + HuffNode_t * left = freqs; + HuffNode_t * right = freqs + 1; + tree[i * 2] = *right; + tree[i * 2 + 1] = *left; + for (int j = 0; j < nitems - i - 2; j++) + freqs[j] = freqs[j + 2]; + endptr->header.isLeaf = 0; + endptr->header.value = tree[i * 2].header.value + tree[i * 2 + 1].header.value; + endptr->branch.left = tree + i * 2; + endptr->branch.right = tree + i * 2 + 1; + endptr--; + if (i < nitems - 2 && !msort(freqs, nitems - i - 1, sizeof(HuffNode_t), cmp_tree)) + goto fail; + } + + // Write the tree breadth-first, and create the path lookup table. + write_tree(dest, freqs, nitems, encoding); + + free(tree); + free(freqs); + + // Encode the data itself. + int destPos = 4 + nitems * 2; + uint32_t destBuf = 0; + uint32_t srcBuf = 0; + int destBitPos = 0; + + for (int srcPos = 0; srcPos < srcSize;) { + read_32_le(src, &srcPos, &srcBuf); + for (int i = 0; i < 32 / bitDepth; i++) { + write_bits(dest, &destPos, encoding, srcBuf & (0xFF >> (8 - bitDepth)), &destBuf, &destBitPos); + srcBuf >>= bitDepth; + } + } + + if (destBitPos != 0) { + write_32_le(dest, &destPos, &destBuf, &destBitPos); + } + + free(encoding); + + // Write the header. + dest[0] = bitDepth | 0x20; + dest[1] = srcSize; + dest[2] = srcSize >> 8; + dest[3] = srcSize >> 16; + *compressedSize_p = (destPos + 3) & ~3; + return dest; + +fail: + FATAL_ERROR("Fatal error while compressing Huff file.\n"); +} + +unsigned char * HuffDecompress(unsigned char * src, int srcSize, int * uncompressedSize_p) { + if (srcSize < 4) + goto fail; + + int bitDepth = *src & 15; + if (bitDepth != 4 && bitDepth != 8) + goto fail; + + int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; + + unsigned char *dest = malloc(destSize); + + if (dest == NULL) + goto fail; + + int treePos = 5; + int treeSize = (src[4] + 1) * 2; + int srcPos = 4 + treeSize; + int destPos = 0; + int curValPos = 0; + uint32_t destTmp = 0; + uint32_t window; + + for (;;) + { + if (srcPos >= srcSize) + goto fail; + read_32_le(src, &srcPos, &window); + for (int i = 0; i < 32; i++) { + int curBit = (window >> 31) & 1; + unsigned char treeView = src[treePos]; + bool isLeaf = ((treeView << curBit) & 0x80) != 0; + treePos &= ~1; // align + treePos += ((treeView & 0x3F) + 1) * 2 + curBit; + if (isLeaf) { + destTmp >>= bitDepth; + destTmp |= (src[treePos] << (32 - bitDepth)); + curValPos++; + if (curValPos == 32 / bitDepth) { + write_32_le(dest, &destPos, &destTmp, &curValPos); + if (destPos == destSize) { + *uncompressedSize_p = destSize; + return dest; + } + } + treePos = 5; + } + window <<= 1; + } + } + +fail: + FATAL_ERROR("Fatal error while decompressing Huff file.\n"); +} diff --git a/tools/gbagfx/huff.h b/tools/gbagfx/huff.h new file mode 100644 index 000000000..6002fe954 --- /dev/null +++ b/tools/gbagfx/huff.h @@ -0,0 +1,38 @@ +#ifndef HUFF_H +#define HUFF_H + +union HuffNode; + +struct HuffData { + unsigned value:31; + unsigned isLeaf:1; +}; + +struct HuffLeaf { + struct HuffData header; + unsigned char key; +}; + +struct HuffBranch { + struct HuffData header; + union HuffNode * left; + union HuffNode * right; +}; + +union HuffNode { + struct HuffData header; + struct HuffLeaf leaf; + struct HuffBranch branch; +}; + +typedef union HuffNode HuffNode_t; + +struct BitEncoding { + unsigned long long nbits:6; + unsigned long long bitstring:58; +}; + +unsigned char * HuffCompress(unsigned char * buffer, int srcSize, int * compressedSize_p, int bitDepth); +unsigned char * HuffDecompress(unsigned char * buffer, int srcSize, int * uncompressedSize_p); + +#endif //HUFF_H diff --git a/tools/gbagfx/main.c b/tools/gbagfx/main.c index 2174e37a5..aa0681fb6 100644 --- a/tools/gbagfx/main.c +++ b/tools/gbagfx/main.c @@ -12,6 +12,7 @@ #include "lz.h" #include "rl.h" #include "font.h" +#include "huff.h" struct CommandHandler { @@ -34,17 +35,6 @@ void ConvertGbaToPng(char *inputPath, char *outputPath, struct GbaToPngOptions * image.hasPalette = false; } - if (options->tilemapFilePath != NULL) - { - ReadGbaTilemap(options->tilemapFilePath, &image.tileMap); - image.hasTilemap = true; - } - else - { - image.tileMap.data = NULL; - image.hasTilemap = false; - } - ReadImage(inputPath, options->width, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette); image.hasTransparency = options->hasTransparency; @@ -59,17 +49,11 @@ void ConvertPngToGba(char *inputPath, char *outputPath, struct PngToGbaOptions * struct Image image; image.bitDepth = options->bitDepth; - image.hasTilemap = options->tilemapFilePath == NULL ? false : true; - image.tileMap.data = NULL; - image.tileMap.numTiles = 0; ReadPng(inputPath, &image); WriteImage(outputPath, options->numTiles, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette); - if (image.hasTilemap) - WriteGbaTilemap(options->tilemapFilePath, &image.tileMap); - FreeImage(&image); } @@ -78,7 +62,6 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a char *inputFileExtension = GetFileExtension(inputPath); struct GbaToPngOptions options; options.paletteFilePath = NULL; - options.tilemapFilePath = NULL; options.bitDepth = inputFileExtension[0] - '0'; options.hasTransparency = false; options.width = 1; @@ -98,15 +81,6 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a options.paletteFilePath = argv[i]; } - else if (strcmp(option, "-tilemap") == 0) - { - if (i + 1 >= argc) - FATAL_ERROR("No tilemap file path following \"-tilemap\".\n"); - - i++; - - options.tilemapFilePath = argv[i]; - } else if (strcmp(option, "-object") == 0) { options.hasTransparency = true; @@ -171,7 +145,6 @@ void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **a options.bitDepth = bitDepth; options.metatileWidth = 1; options.metatileHeight = 1; - options.tilemapFilePath = NULL; for (int i = 3; i < argc; i++) { @@ -190,14 +163,6 @@ void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **a if (options.numTiles < 1) FATAL_ERROR("Number of tiles must be positive.\n"); } - else if (strcmp(option, "-tilemap") == 0) - { - if (i + 1 >= argc) - FATAL_ERROR("No tilemap path following \"-tilemap\".\n"); - - i++; - options.tilemapFilePath = argv[i]; - } else if (strcmp(option, "-mwidth") == 0) { if (i + 1 >= argc) @@ -290,10 +255,6 @@ void HandleLatinFontToPngCommand(char *inputPath, char *outputPath, int argc UNU { struct Image image; - image.hasTilemap = false; - image.tileMap.data = NULL; - image.tileMap.numTiles = 0; - ReadLatinFont(inputPath, &image); WritePng(outputPath, &image); @@ -304,10 +265,6 @@ void HandlePngToLatinFontCommand(char *inputPath, char *outputPath, int argc UNU { struct Image image; - image.hasTilemap = false; - image.tileMap.data = NULL; - image.tileMap.numTiles = 0; - image.bitDepth = 2; ReadPng(inputPath, &image); @@ -320,10 +277,6 @@ void HandleHalfwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, { struct Image image; - image.hasTilemap = false; - image.tileMap.data = NULL; - image.tileMap.numTiles = 0; - ReadHalfwidthJapaneseFont(inputPath, &image); WritePng(outputPath, &image); @@ -334,10 +287,6 @@ void HandlePngToHalfwidthJapaneseFontCommand(char *inputPath, char *outputPath, { struct Image image; - image.hasTilemap = false; - image.tileMap.data = NULL; - image.tileMap.numTiles = 0; - image.bitDepth = 2; ReadPng(inputPath, &image); @@ -350,10 +299,6 @@ void HandleFullwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, { struct Image image; - image.hasTilemap = false; - image.tileMap.data = NULL; - image.tileMap.numTiles = 0; - ReadFullwidthJapaneseFont(inputPath, &image); WritePng(outputPath, &image); @@ -364,10 +309,6 @@ void HandlePngToFullwidthJapaneseFontCommand(char *inputPath, char *outputPath, { struct Image image; - image.hasTilemap = false; - image.tileMap.data = NULL; - image.tileMap.numTiles = 0; - image.bitDepth = 2; ReadPng(inputPath, &image); @@ -485,6 +426,61 @@ void HandleRLDecompressCommand(char *inputPath, char *outputPath, int argc UNUSE free(uncompressedData); } +void HandleHuffCompressCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int fileSize; + int bitDepth = 4; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-depth") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No size following \"-depth\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &bitDepth)) + FATAL_ERROR("Failed to parse bit depth.\n"); + + if (bitDepth != 4 && bitDepth != 8) + FATAL_ERROR("GBA only supports bit depth of 4 or 8.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int compressedSize; + unsigned char *compressedData = HuffCompress(buffer, fileSize, &compressedSize, bitDepth); + + free(buffer); + + WriteWholeFile(outputPath, compressedData, compressedSize); + + free(compressedData); +} + +void HandleHuffDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int uncompressedSize; + unsigned char *uncompressedData = HuffDecompress(buffer, fileSize, &uncompressedSize); + + free(buffer); + + WriteWholeFile(outputPath, uncompressedData, uncompressedSize); + + free(uncompressedData); +} + int main(int argc, char **argv) { if (argc < 3) @@ -507,7 +503,9 @@ int main(int argc, char **argv) { "png", "hwjpnfont", HandlePngToHalfwidthJapaneseFontCommand }, { "fwjpnfont", "png", HandleFullwidthJapaneseFontToPngCommand }, { "png", "fwjpnfont", HandlePngToFullwidthJapaneseFontCommand }, + { NULL, "huff", HandleHuffCompressCommand }, { NULL, "lz", HandleLZCompressCommand }, + { "huff", NULL, HandleHuffDecompressCommand }, { "lz", NULL, HandleLZDecompressCommand }, { NULL, "rl", HandleRLCompressCommand }, { "rl", NULL, HandleRLDecompressCommand }, diff --git a/tools/gbagfx/options.h b/tools/gbagfx/options.h index 463ee2455..2ff3967a4 100644 --- a/tools/gbagfx/options.h +++ b/tools/gbagfx/options.h @@ -7,7 +7,6 @@ struct GbaToPngOptions { char *paletteFilePath; - char *tilemapFilePath; int bitDepth; bool hasTransparency; int width; @@ -16,7 +15,6 @@ struct GbaToPngOptions { }; struct PngToGbaOptions { - char *tilemapFilePath; int numTiles; int bitDepth; int metatileWidth; diff --git a/tools/jsonproc/.gitignore b/tools/jsonproc/.gitignore new file mode 100644 index 000000000..a613cf2d7 --- /dev/null +++ b/tools/jsonproc/.gitignore @@ -0,0 +1 @@ +jsonproc diff --git a/tools/jsonproc/Makefile b/tools/jsonproc/Makefile new file mode 100644 index 000000000..b415e7b41 --- /dev/null +++ b/tools/jsonproc/Makefile @@ -0,0 +1,20 @@ +CXX := g++ + +CXXFLAGS := -Wall -std=c++11 -O2 + +INCLUDES := -I . + +SRCS := jsonproc.cpp + +HEADERS := jsonproc.h inja.hpp nlohmann/json.hpp + +.PHONY: clean + +all: jsonproc + @: + +jsonproc: $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(INCLUDES) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) jsonproc jsonproc.exe diff --git a/tools/jsonproc/inja.hpp b/tools/jsonproc/inja.hpp new file mode 100644 index 000000000..3b7263546 --- /dev/null +++ b/tools/jsonproc/inja.hpp @@ -0,0 +1,3396 @@ +// MIT License + +// Copyright (c) 2018 lbersch + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + + +// --- + + +// Copyright (c) 2009-2018 FIRST +// All rights reserved. + +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of the FIRST nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. + +// THIS SOFTWARE IS PROVIDED BY FIRST AND CONTRIBUTORS``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY NONINFRINGEMENT AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL FIRST OR CONTRIBUTORS BE LIABLE FOR +// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef PANTOR_INJA_HPP +#define PANTOR_INJA_HPP + +#include +#include +#include +#include +#include +#include +#include + +#include + +// #include "environment.hpp" +#ifndef PANTOR_INJA_ENVIRONMENT_HPP +#define PANTOR_INJA_ENVIRONMENT_HPP + +#include +#include +#include +#include + +#include + +// #include "config.hpp" +#ifndef PANTOR_INJA_CONFIG_HPP +#define PANTOR_INJA_CONFIG_HPP + +#include +#include + +// #include "string_view.hpp" +// Copyright 2017-2019 by Martin Moene +// +// string-view lite, a C++17-like string_view for C++98 and later. +// For more information see https://github.com/martinmoene/string-view-lite +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + + +#ifndef NONSTD_SV_LITE_H_INCLUDED +#define NONSTD_SV_LITE_H_INCLUDED + +#define string_view_lite_MAJOR 1 +#define string_view_lite_MINOR 1 +#define string_view_lite_PATCH 0 + +#define string_view_lite_VERSION nssv_STRINGIFY(string_view_lite_MAJOR) "." nssv_STRINGIFY(string_view_lite_MINOR) "." nssv_STRINGIFY(string_view_lite_PATCH) + +#define nssv_STRINGIFY( x ) nssv_STRINGIFY_( x ) +#define nssv_STRINGIFY_( x ) #x + +// string-view lite configuration: + +#define nssv_STRING_VIEW_DEFAULT 0 +#define nssv_STRING_VIEW_NONSTD 1 +#define nssv_STRING_VIEW_STD 2 + +#if !defined( nssv_CONFIG_SELECT_STRING_VIEW ) +# define nssv_CONFIG_SELECT_STRING_VIEW ( nssv_HAVE_STD_STRING_VIEW ? nssv_STRING_VIEW_STD : nssv_STRING_VIEW_NONSTD ) +#endif + +#if defined( nssv_CONFIG_SELECT_STD_STRING_VIEW ) || defined( nssv_CONFIG_SELECT_NONSTD_STRING_VIEW ) +# error nssv_CONFIG_SELECT_STD_STRING_VIEW and nssv_CONFIG_SELECT_NONSTD_STRING_VIEW are deprecated and removed, please use nssv_CONFIG_SELECT_STRING_VIEW=nssv_STRING_VIEW_... +#endif + +#ifndef nssv_CONFIG_STD_SV_OPERATOR +# define nssv_CONFIG_STD_SV_OPERATOR 0 +#endif + +#ifndef nssv_CONFIG_USR_SV_OPERATOR +# define nssv_CONFIG_USR_SV_OPERATOR 1 +#endif + +#ifdef nssv_CONFIG_CONVERSION_STD_STRING +# define nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS nssv_CONFIG_CONVERSION_STD_STRING +# define nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS nssv_CONFIG_CONVERSION_STD_STRING +#endif + +#ifndef nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS +# define nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS 1 +#endif + +#ifndef nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS +# define nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS 1 +#endif + +// Control presence of exception handling (try and auto discover): + +#ifndef nssv_CONFIG_NO_EXCEPTIONS +# if defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND) +# define nssv_CONFIG_NO_EXCEPTIONS 0 +# else +# define nssv_CONFIG_NO_EXCEPTIONS 1 +# endif +#endif + +// C++ language version detection (C++20 is speculative): +// Note: VC14.0/1900 (VS2015) lacks too much from C++14. + +#ifndef nssv_CPLUSPLUS +# if defined(_MSVC_LANG ) && !defined(__clang__) +# define nssv_CPLUSPLUS (_MSC_VER == 1900 ? 201103L : _MSVC_LANG ) +# else +# define nssv_CPLUSPLUS __cplusplus +# endif +#endif + +#define nssv_CPP98_OR_GREATER ( nssv_CPLUSPLUS >= 199711L ) +#define nssv_CPP11_OR_GREATER ( nssv_CPLUSPLUS >= 201103L ) +#define nssv_CPP11_OR_GREATER_ ( nssv_CPLUSPLUS >= 201103L ) +#define nssv_CPP14_OR_GREATER ( nssv_CPLUSPLUS >= 201402L ) +#define nssv_CPP17_OR_GREATER ( nssv_CPLUSPLUS >= 201703L ) +#define nssv_CPP20_OR_GREATER ( nssv_CPLUSPLUS >= 202000L ) + +// use C++17 std::string_view if available and requested: + +#if nssv_CPP17_OR_GREATER && defined(__has_include ) +# if __has_include( ) +# define nssv_HAVE_STD_STRING_VIEW 1 +# else +# define nssv_HAVE_STD_STRING_VIEW 0 +# endif +#else +# define nssv_HAVE_STD_STRING_VIEW 0 +#endif + +#define nssv_USES_STD_STRING_VIEW ( (nssv_CONFIG_SELECT_STRING_VIEW == nssv_STRING_VIEW_STD) || ((nssv_CONFIG_SELECT_STRING_VIEW == nssv_STRING_VIEW_DEFAULT) && nssv_HAVE_STD_STRING_VIEW) ) + +#define nssv_HAVE_STARTS_WITH ( nssv_CPP20_OR_GREATER || !nssv_USES_STD_STRING_VIEW ) +#define nssv_HAVE_ENDS_WITH nssv_HAVE_STARTS_WITH + +// +// Use C++17 std::string_view: +// + +#if nssv_USES_STD_STRING_VIEW + +#include + +// Extensions for std::string: + +#if nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS + +namespace nonstd { + +template< class CharT, class Traits, class Allocator = std::allocator > +std::basic_string +to_string( std::basic_string_view v, Allocator const & a = Allocator() ) +{ + return std::basic_string( v.begin(), v.end(), a ); +} + +template< class CharT, class Traits, class Allocator > +std::basic_string_view +to_string_view( std::basic_string const & s ) +{ + return std::basic_string_view( s.data(), s.size() ); +} + +// Literal operators sv and _sv: + +#if nssv_CONFIG_STD_SV_OPERATOR + +using namespace std::literals::string_view_literals; + +#endif + +#if nssv_CONFIG_USR_SV_OPERATOR + +inline namespace literals { +inline namespace string_view_literals { + + +constexpr std::string_view operator "" _sv( const char* str, size_t len ) noexcept // (1) +{ + return std::string_view{ str, len }; +} + +constexpr std::u16string_view operator "" _sv( const char16_t* str, size_t len ) noexcept // (2) +{ + return std::u16string_view{ str, len }; +} + +constexpr std::u32string_view operator "" _sv( const char32_t* str, size_t len ) noexcept // (3) +{ + return std::u32string_view{ str, len }; +} + +constexpr std::wstring_view operator "" _sv( const wchar_t* str, size_t len ) noexcept // (4) +{ + return std::wstring_view{ str, len }; +} + +}} // namespace literals::string_view_literals + +#endif // nssv_CONFIG_USR_SV_OPERATOR + +} // namespace nonstd + +#endif // nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS + +namespace nonstd { + +using std::string_view; +using std::wstring_view; +using std::u16string_view; +using std::u32string_view; +using std::basic_string_view; + +// literal "sv" and "_sv", see above + +using std::operator==; +using std::operator!=; +using std::operator<; +using std::operator<=; +using std::operator>; +using std::operator>=; + +using std::operator<<; + +} // namespace nonstd + +#else // nssv_HAVE_STD_STRING_VIEW + +// +// Before C++17: use string_view lite: +// + +// Compiler versions: +// +// MSVC++ 6.0 _MSC_VER == 1200 (Visual Studio 6.0) +// MSVC++ 7.0 _MSC_VER == 1300 (Visual Studio .NET 2002) +// MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio .NET 2003) +// MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005) +// MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008) +// MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010) +// MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012) +// MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013) +// MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015) +// MSVC++ 14.1 _MSC_VER >= 1910 (Visual Studio 2017) + +#if defined(_MSC_VER ) && !defined(__clang__) +# define nssv_COMPILER_MSVC_VER (_MSC_VER ) +# define nssv_COMPILER_MSVC_VERSION (_MSC_VER / 10 - 10 * ( 5 + (_MSC_VER < 1900 ) ) ) +#else +# define nssv_COMPILER_MSVC_VER 0 +# define nssv_COMPILER_MSVC_VERSION 0 +#endif + +#define nssv_COMPILER_VERSION( major, minor, patch ) (10 * ( 10 * major + minor) + patch) + +#if defined(__clang__) +# define nssv_COMPILER_CLANG_VERSION nssv_COMPILER_VERSION(__clang_major__, __clang_minor__, __clang_patchlevel__) +#else +# define nssv_COMPILER_CLANG_VERSION 0 +#endif + +#if defined(__GNUC__) && !defined(__clang__) +# define nssv_COMPILER_GNUC_VERSION nssv_COMPILER_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#else +# define nssv_COMPILER_GNUC_VERSION 0 +#endif + +// half-open range [lo..hi): +#define nssv_BETWEEN( v, lo, hi ) ( (lo) <= (v) && (v) < (hi) ) + +// Presence of language and library features: + +#ifdef _HAS_CPP0X +# define nssv_HAS_CPP0X _HAS_CPP0X +#else +# define nssv_HAS_CPP0X 0 +#endif + +// Unless defined otherwise below, consider VC14 as C++11 for variant-lite: + +#if nssv_COMPILER_MSVC_VER >= 1900 +# undef nssv_CPP11_OR_GREATER +# define nssv_CPP11_OR_GREATER 1 +#endif + +#define nssv_CPP11_90 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1500) +#define nssv_CPP11_100 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1600) +#define nssv_CPP11_110 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1700) +#define nssv_CPP11_120 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1800) +#define nssv_CPP11_140 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1900) +#define nssv_CPP11_141 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1910) + +#define nssv_CPP14_000 (nssv_CPP14_OR_GREATER) +#define nssv_CPP17_000 (nssv_CPP17_OR_GREATER) + +// Presence of C++11 language features: + +#define nssv_HAVE_CONSTEXPR_11 nssv_CPP11_140 +#define nssv_HAVE_EXPLICIT_CONVERSION nssv_CPP11_140 +#define nssv_HAVE_INLINE_NAMESPACE nssv_CPP11_140 +#define nssv_HAVE_NOEXCEPT nssv_CPP11_140 +#define nssv_HAVE_NULLPTR nssv_CPP11_100 +#define nssv_HAVE_REF_QUALIFIER nssv_CPP11_140 +#define nssv_HAVE_UNICODE_LITERALS nssv_CPP11_140 +#define nssv_HAVE_USER_DEFINED_LITERALS nssv_CPP11_140 +#define nssv_HAVE_WCHAR16_T nssv_CPP11_100 +#define nssv_HAVE_WCHAR32_T nssv_CPP11_100 + +#if ! ( ( nssv_CPP11 && nssv_COMPILER_CLANG_VERSION ) || nssv_BETWEEN( nssv_COMPILER_CLANG_VERSION, 300, 400 ) ) +# define nssv_HAVE_STD_DEFINED_LITERALS nssv_CPP11_140 +#endif + +// Presence of C++14 language features: + +#define nssv_HAVE_CONSTEXPR_14 nssv_CPP14_000 + +// Presence of C++17 language features: + +#define nssv_HAVE_NODISCARD nssv_CPP17_000 + +// Presence of C++ library features: + +#define nssv_HAVE_STD_HASH nssv_CPP11_120 + +// C++ feature usage: + +#if nssv_HAVE_CONSTEXPR_11 +# define nssv_constexpr constexpr +#else +# define nssv_constexpr /*constexpr*/ +#endif + +#if nssv_HAVE_CONSTEXPR_14 +# define nssv_constexpr14 constexpr +#else +# define nssv_constexpr14 /*constexpr*/ +#endif + +#if nssv_HAVE_EXPLICIT_CONVERSION +# define nssv_explicit explicit +#else +# define nssv_explicit /*explicit*/ +#endif + +#if nssv_HAVE_INLINE_NAMESPACE +# define nssv_inline_ns inline +#else +# define nssv_inline_ns /*inline*/ +#endif + +#if nssv_HAVE_NOEXCEPT +# define nssv_noexcept noexcept +#else +# define nssv_noexcept /*noexcept*/ +#endif + +//#if nssv_HAVE_REF_QUALIFIER +//# define nssv_ref_qual & +//# define nssv_refref_qual && +//#else +//# define nssv_ref_qual /*&*/ +//# define nssv_refref_qual /*&&*/ +//#endif + +#if nssv_HAVE_NULLPTR +# define nssv_nullptr nullptr +#else +# define nssv_nullptr NULL +#endif + +#if nssv_HAVE_NODISCARD +# define nssv_nodiscard [[nodiscard]] +#else +# define nssv_nodiscard /*[[nodiscard]]*/ +#endif + +// Additional includes: + +#include +#include +#include +#include +#include +#include // std::char_traits<> + +#if ! nssv_CONFIG_NO_EXCEPTIONS +# include +#endif + +#if nssv_CPP11_OR_GREATER +# include +#endif + +// Clang, GNUC, MSVC warning suppression macros: + +#if defined(__clang__) +# pragma clang diagnostic ignored "-Wreserved-user-defined-literal" +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wuser-defined-literals" +#elif defined(__GNUC__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wliteral-suffix" +#endif // __clang__ + +#if nssv_COMPILER_MSVC_VERSION >= 140 +# define nssv_SUPPRESS_MSGSL_WARNING(expr) [[gsl::suppress(expr)]] +# define nssv_SUPPRESS_MSVC_WARNING(code, descr) __pragma(warning(suppress: code) ) +# define nssv_DISABLE_MSVC_WARNINGS(codes) __pragma(warning(push)) __pragma(warning(disable: codes)) +#else +# define nssv_SUPPRESS_MSGSL_WARNING(expr) +# define nssv_SUPPRESS_MSVC_WARNING(code, descr) +# define nssv_DISABLE_MSVC_WARNINGS(codes) +#endif + +#if defined(__clang__) +# define nssv_RESTORE_WARNINGS() _Pragma("clang diagnostic pop") +#elif defined(__GNUC__) +# define nssv_RESTORE_WARNINGS() _Pragma("GCC diagnostic pop") +#elif nssv_COMPILER_MSVC_VERSION >= 140 +# define nssv_RESTORE_WARNINGS() __pragma(warning(pop )) +#else +# define nssv_RESTORE_WARNINGS() +#endif + +// Suppress the following MSVC (GSL) warnings: +// - C4455, non-gsl : 'operator ""sv': literal suffix identifiers that do not +// start with an underscore are reserved +// - C26472, gsl::t.1 : don't use a static_cast for arithmetic conversions; +// use brace initialization, gsl::narrow_cast or gsl::narow +// - C26481: gsl::b.1 : don't use pointer arithmetic. Use span instead + +nssv_DISABLE_MSVC_WARNINGS( 4455 26481 26472 ) +//nssv_DISABLE_CLANG_WARNINGS( "-Wuser-defined-literals" ) +//nssv_DISABLE_GNUC_WARNINGS( -Wliteral-suffix ) + +namespace nonstd { namespace sv_lite { + +template +< + class CharT, + class Traits = std::char_traits +> +class basic_string_view; + +// +// basic_string_view: +// + +template +< + class CharT, + class Traits /* = std::char_traits */ +> +class basic_string_view +{ +public: + // Member types: + + typedef Traits traits_type; + typedef CharT value_type; + + typedef CharT * pointer; + typedef CharT const * const_pointer; + typedef CharT & reference; + typedef CharT const & const_reference; + + typedef const_pointer iterator; + typedef const_pointer const_iterator; + typedef std::reverse_iterator< const_iterator > reverse_iterator; + typedef std::reverse_iterator< const_iterator > const_reverse_iterator; + + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + + // 24.4.2.1 Construction and assignment: + + nssv_constexpr basic_string_view() nssv_noexcept + : data_( nssv_nullptr ) + , size_( 0 ) + {} + +#if nssv_CPP11_OR_GREATER + nssv_constexpr basic_string_view( basic_string_view const & other ) nssv_noexcept = default; +#else + nssv_constexpr basic_string_view( basic_string_view const & other ) nssv_noexcept + : data_( other.data_) + , size_( other.size_) + {} +#endif + + nssv_constexpr basic_string_view( CharT const * s, size_type count ) + : data_( s ) + , size_( count ) + {} + + nssv_constexpr basic_string_view( CharT const * s) + : data_( s ) + , size_( Traits::length(s) ) + {} + + // Assignment: + +#if nssv_CPP11_OR_GREATER + nssv_constexpr14 basic_string_view & operator=( basic_string_view const & other ) nssv_noexcept = default; +#else + nssv_constexpr14 basic_string_view & operator=( basic_string_view const & other ) nssv_noexcept + { + data_ = other.data_; + size_ = other.size_; + return *this; + } +#endif + + // 24.4.2.2 Iterator support: + + nssv_constexpr const_iterator begin() const nssv_noexcept { return data_; } + nssv_constexpr const_iterator end() const nssv_noexcept { return data_ + size_; } + + nssv_constexpr const_iterator cbegin() const nssv_noexcept { return begin(); } + nssv_constexpr const_iterator cend() const nssv_noexcept { return end(); } + + nssv_constexpr const_reverse_iterator rbegin() const nssv_noexcept { return const_reverse_iterator( end() ); } + nssv_constexpr const_reverse_iterator rend() const nssv_noexcept { return const_reverse_iterator( begin() ); } + + nssv_constexpr const_reverse_iterator crbegin() const nssv_noexcept { return rbegin(); } + nssv_constexpr const_reverse_iterator crend() const nssv_noexcept { return rend(); } + + // 24.4.2.3 Capacity: + + nssv_constexpr size_type size() const nssv_noexcept { return size_; } + nssv_constexpr size_type length() const nssv_noexcept { return size_; } + nssv_constexpr size_type max_size() const nssv_noexcept { return (std::numeric_limits< size_type >::max)(); } + + // since C++20 + nssv_nodiscard nssv_constexpr bool empty() const nssv_noexcept + { + return 0 == size_; + } + + // 24.4.2.4 Element access: + + nssv_constexpr const_reference operator[]( size_type pos ) const + { + return data_at( pos ); + } + + nssv_constexpr14 const_reference at( size_type pos ) const + { +#if nssv_CONFIG_NO_EXCEPTIONS + assert( pos < size() ); +#else + if ( pos >= size() ) + { + throw std::out_of_range("nonst::string_view::at()"); + } +#endif + return data_at( pos ); + } + + nssv_constexpr const_reference front() const { return data_at( 0 ); } + nssv_constexpr const_reference back() const { return data_at( size() - 1 ); } + + nssv_constexpr const_pointer data() const nssv_noexcept { return data_; } + + // 24.4.2.5 Modifiers: + + nssv_constexpr14 void remove_prefix( size_type n ) + { + assert( n <= size() ); + data_ += n; + size_ -= n; + } + + nssv_constexpr14 void remove_suffix( size_type n ) + { + assert( n <= size() ); + size_ -= n; + } + + nssv_constexpr14 void swap( basic_string_view & other ) nssv_noexcept + { + using std::swap; + swap( data_, other.data_ ); + swap( size_, other.size_ ); + } + + // 24.4.2.6 String operations: + + size_type copy( CharT * dest, size_type n, size_type pos = 0 ) const + { +#if nssv_CONFIG_NO_EXCEPTIONS + assert( pos <= size() ); +#else + if ( pos > size() ) + { + throw std::out_of_range("nonst::string_view::copy()"); + } +#endif + const size_type rlen = (std::min)( n, size() - pos ); + + (void) Traits::copy( dest, data() + pos, rlen ); + + return rlen; + } + + nssv_constexpr14 basic_string_view substr( size_type pos = 0, size_type n = npos ) const + { +#if nssv_CONFIG_NO_EXCEPTIONS + assert( pos <= size() ); +#else + if ( pos > size() ) + { + throw std::out_of_range("nonst::string_view::substr()"); + } +#endif + return basic_string_view( data() + pos, (std::min)( n, size() - pos ) ); + } + + // compare(), 6x: + + nssv_constexpr14 int compare( basic_string_view other ) const nssv_noexcept // (1) + { + if ( const int result = Traits::compare( data(), other.data(), (std::min)( size(), other.size() ) ) ) + return result; + + return size() == other.size() ? 0 : size() < other.size() ? -1 : 1; + } + + nssv_constexpr int compare( size_type pos1, size_type n1, basic_string_view other ) const // (2) + { + return substr( pos1, n1 ).compare( other ); + } + + nssv_constexpr int compare( size_type pos1, size_type n1, basic_string_view other, size_type pos2, size_type n2 ) const // (3) + { + return substr( pos1, n1 ).compare( other.substr( pos2, n2 ) ); + } + + nssv_constexpr int compare( CharT const * s ) const // (4) + { + return compare( basic_string_view( s ) ); + } + + nssv_constexpr int compare( size_type pos1, size_type n1, CharT const * s ) const // (5) + { + return substr( pos1, n1 ).compare( basic_string_view( s ) ); + } + + nssv_constexpr int compare( size_type pos1, size_type n1, CharT const * s, size_type n2 ) const // (6) + { + return substr( pos1, n1 ).compare( basic_string_view( s, n2 ) ); + } + + // 24.4.2.7 Searching: + + // starts_with(), 3x, since C++20: + + nssv_constexpr bool starts_with( basic_string_view v ) const nssv_noexcept // (1) + { + return size() >= v.size() && compare( 0, v.size(), v ) == 0; + } + + nssv_constexpr bool starts_with( CharT c ) const nssv_noexcept // (2) + { + return starts_with( basic_string_view( &c, 1 ) ); + } + + nssv_constexpr bool starts_with( CharT const * s ) const // (3) + { + return starts_with( basic_string_view( s ) ); + } + + // ends_with(), 3x, since C++20: + + nssv_constexpr bool ends_with( basic_string_view v ) const nssv_noexcept // (1) + { + return size() >= v.size() && compare( size() - v.size(), npos, v ) == 0; + } + + nssv_constexpr bool ends_with( CharT c ) const nssv_noexcept // (2) + { + return ends_with( basic_string_view( &c, 1 ) ); + } + + nssv_constexpr bool ends_with( CharT const * s ) const // (3) + { + return ends_with( basic_string_view( s ) ); + } + + // find(), 4x: + + nssv_constexpr14 size_type find( basic_string_view v, size_type pos = 0 ) const nssv_noexcept // (1) + { + return assert( v.size() == 0 || v.data() != nssv_nullptr ) + , pos >= size() + ? npos + : to_pos( std::search( cbegin() + pos, cend(), v.cbegin(), v.cend(), Traits::eq ) ); + } + + nssv_constexpr14 size_type find( CharT c, size_type pos = 0 ) const nssv_noexcept // (2) + { + return find( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr14 size_type find( CharT const * s, size_type pos, size_type n ) const // (3) + { + return find( basic_string_view( s, n ), pos ); + } + + nssv_constexpr14 size_type find( CharT const * s, size_type pos = 0 ) const // (4) + { + return find( basic_string_view( s ), pos ); + } + + // rfind(), 4x: + + nssv_constexpr14 size_type rfind( basic_string_view v, size_type pos = npos ) const nssv_noexcept // (1) + { + if ( size() < v.size() ) + return npos; + + if ( v.empty() ) + return (std::min)( size(), pos ); + + const_iterator last = cbegin() + (std::min)( size() - v.size(), pos ) + v.size(); + const_iterator result = std::find_end( cbegin(), last, v.cbegin(), v.cend(), Traits::eq ); + + return result != last ? size_type( result - cbegin() ) : npos; + } + + nssv_constexpr14 size_type rfind( CharT c, size_type pos = npos ) const nssv_noexcept // (2) + { + return rfind( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr14 size_type rfind( CharT const * s, size_type pos, size_type n ) const // (3) + { + return rfind( basic_string_view( s, n ), pos ); + } + + nssv_constexpr14 size_type rfind( CharT const * s, size_type pos = npos ) const // (4) + { + return rfind( basic_string_view( s ), pos ); + } + + // find_first_of(), 4x: + + nssv_constexpr size_type find_first_of( basic_string_view v, size_type pos = 0 ) const nssv_noexcept // (1) + { + return pos >= size() + ? npos + : to_pos( std::find_first_of( cbegin() + pos, cend(), v.cbegin(), v.cend(), Traits::eq ) ); + } + + nssv_constexpr size_type find_first_of( CharT c, size_type pos = 0 ) const nssv_noexcept // (2) + { + return find_first_of( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr size_type find_first_of( CharT const * s, size_type pos, size_type n ) const // (3) + { + return find_first_of( basic_string_view( s, n ), pos ); + } + + nssv_constexpr size_type find_first_of( CharT const * s, size_type pos = 0 ) const // (4) + { + return find_first_of( basic_string_view( s ), pos ); + } + + // find_last_of(), 4x: + + nssv_constexpr size_type find_last_of( basic_string_view v, size_type pos = npos ) const nssv_noexcept // (1) + { + return empty() + ? npos + : pos >= size() + ? find_last_of( v, size() - 1 ) + : to_pos( std::find_first_of( const_reverse_iterator( cbegin() + pos + 1 ), crend(), v.cbegin(), v.cend(), Traits::eq ) ); + } + + nssv_constexpr size_type find_last_of( CharT c, size_type pos = npos ) const nssv_noexcept // (2) + { + return find_last_of( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr size_type find_last_of( CharT const * s, size_type pos, size_type count ) const // (3) + { + return find_last_of( basic_string_view( s, count ), pos ); + } + + nssv_constexpr size_type find_last_of( CharT const * s, size_type pos = npos ) const // (4) + { + return find_last_of( basic_string_view( s ), pos ); + } + + // find_first_not_of(), 4x: + + nssv_constexpr size_type find_first_not_of( basic_string_view v, size_type pos = 0 ) const nssv_noexcept // (1) + { + return pos >= size() + ? npos + : to_pos( std::find_if( cbegin() + pos, cend(), not_in_view( v ) ) ); + } + + nssv_constexpr size_type find_first_not_of( CharT c, size_type pos = 0 ) const nssv_noexcept // (2) + { + return find_first_not_of( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr size_type find_first_not_of( CharT const * s, size_type pos, size_type count ) const // (3) + { + return find_first_not_of( basic_string_view( s, count ), pos ); + } + + nssv_constexpr size_type find_first_not_of( CharT const * s, size_type pos = 0 ) const // (4) + { + return find_first_not_of( basic_string_view( s ), pos ); + } + + // find_last_not_of(), 4x: + + nssv_constexpr size_type find_last_not_of( basic_string_view v, size_type pos = npos ) const nssv_noexcept // (1) + { + return empty() + ? npos + : pos >= size() + ? find_last_not_of( v, size() - 1 ) + : to_pos( std::find_if( const_reverse_iterator( cbegin() + pos + 1 ), crend(), not_in_view( v ) ) ); + } + + nssv_constexpr size_type find_last_not_of( CharT c, size_type pos = npos ) const nssv_noexcept // (2) + { + return find_last_not_of( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr size_type find_last_not_of( CharT const * s, size_type pos, size_type count ) const // (3) + { + return find_last_not_of( basic_string_view( s, count ), pos ); + } + + nssv_constexpr size_type find_last_not_of( CharT const * s, size_type pos = npos ) const // (4) + { + return find_last_not_of( basic_string_view( s ), pos ); + } + + // Constants: + +#if nssv_CPP17_OR_GREATER + static nssv_constexpr size_type npos = size_type(-1); +#elif nssv_CPP11_OR_GREATER + enum : size_type { npos = size_type(-1) }; +#else + enum { npos = size_type(-1) }; +#endif + +private: + struct not_in_view + { + const basic_string_view v; + + nssv_constexpr not_in_view( basic_string_view v ) : v( v ) {} + + nssv_constexpr bool operator()( CharT c ) const + { + return npos == v.find_first_of( c ); + } + }; + + nssv_constexpr size_type to_pos( const_iterator it ) const + { + return it == cend() ? npos : size_type( it - cbegin() ); + } + + nssv_constexpr size_type to_pos( const_reverse_iterator it ) const + { + return it == crend() ? npos : size_type( crend() - it - 1 ); + } + + nssv_constexpr const_reference data_at( size_type pos ) const + { +#if nssv_BETWEEN( nssv_COMPILER_GNUC_VERSION, 1, 500 ) + return data_[pos]; +#else + return assert( pos < size() ), data_[pos]; +#endif + } + +private: + const_pointer data_; + size_type size_; + +public: +#if nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS + + template< class Allocator > + basic_string_view( std::basic_string const & s ) nssv_noexcept + : data_( s.data() ) + , size_( s.size() ) + {} + +#if nssv_HAVE_EXPLICIT_CONVERSION + + template< class Allocator > + explicit operator std::basic_string() const + { + return to_string( Allocator() ); + } + +#endif // nssv_HAVE_EXPLICIT_CONVERSION + +#if nssv_CPP11_OR_GREATER + + template< class Allocator = std::allocator > + std::basic_string + to_string( Allocator const & a = Allocator() ) const + { + return std::basic_string( begin(), end(), a ); + } + +#else + + std::basic_string + to_string() const + { + return std::basic_string( begin(), end() ); + } + + template< class Allocator > + std::basic_string + to_string( Allocator const & a ) const + { + return std::basic_string( begin(), end(), a ); + } + +#endif // nssv_CPP11_OR_GREATER + +#endif // nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS +}; + +// +// Non-member functions: +// + +// 24.4.3 Non-member comparison functions: +// lexicographically compare two string views (function template): + +template< class CharT, class Traits > +nssv_constexpr bool operator== ( + basic_string_view lhs, + basic_string_view rhs ) nssv_noexcept +{ return lhs.compare( rhs ) == 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator!= ( + basic_string_view lhs, + basic_string_view rhs ) nssv_noexcept +{ return lhs.compare( rhs ) != 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator< ( + basic_string_view lhs, + basic_string_view rhs ) nssv_noexcept +{ return lhs.compare( rhs ) < 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator<= ( + basic_string_view lhs, + basic_string_view rhs ) nssv_noexcept +{ return lhs.compare( rhs ) <= 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator> ( + basic_string_view lhs, + basic_string_view rhs ) nssv_noexcept +{ return lhs.compare( rhs ) > 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator>= ( + basic_string_view lhs, + basic_string_view rhs ) nssv_noexcept +{ return lhs.compare( rhs ) >= 0 ; } + +// Let S be basic_string_view, and sv be an instance of S. +// Implementations shall provide sufficient additional overloads marked +// constexpr and noexcept so that an object t with an implicit conversion +// to S can be compared according to Table 67. + +#if nssv_CPP11_OR_GREATER && ! nssv_BETWEEN( nssv_COMPILER_MSVC_VERSION, 100, 141 ) + +#define nssv_BASIC_STRING_VIEW_I(T,U) typename std::decay< basic_string_view >::type + +#if nssv_BETWEEN( nssv_COMPILER_MSVC_VERSION, 140, 150 ) +# define nssv_MSVC_ORDER(x) , int=x +#else +# define nssv_MSVC_ORDER(x) /*, int=x*/ +#endif + +// == + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator==( + basic_string_view lhs, + nssv_BASIC_STRING_VIEW_I(CharT, Traits) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) == 0; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator==( + nssv_BASIC_STRING_VIEW_I(CharT, Traits) lhs, + basic_string_view rhs ) nssv_noexcept +{ return lhs.size() == rhs.size() && lhs.compare( rhs ) == 0; } + +// != + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator!= ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.size() != rhs.size() || lhs.compare( rhs ) != 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator!= ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) != 0 ; } + +// < + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator< ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) < 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator< ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) < 0 ; } + +// <= + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator<= ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) <= 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator<= ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) <= 0 ; } + +// > + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator> ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) > 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator> ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) > 0 ; } + +// >= + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator>= ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) >= 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator>= ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) >= 0 ; } + +#undef nssv_MSVC_ORDER +#undef nssv_BASIC_STRING_VIEW_I + +#endif // nssv_CPP11_OR_GREATER + +// 24.4.4 Inserters and extractors: + +namespace detail { + +template< class Stream > +void write_padding( Stream & os, std::streamsize n ) +{ + for ( std::streamsize i = 0; i < n; ++i ) + os.rdbuf()->sputc( os.fill() ); +} + +template< class Stream, class View > +Stream & write_to_stream( Stream & os, View const & sv ) +{ + typename Stream::sentry sentry( os ); + + if ( !os ) + return os; + + const std::streamsize length = static_cast( sv.length() ); + + // Whether, and how, to pad: + const bool pad = ( length < os.width() ); + const bool left_pad = pad && ( os.flags() & std::ios_base::adjustfield ) == std::ios_base::right; + + if ( left_pad ) + write_padding( os, os.width() - length ); + + // Write span characters: + os.rdbuf()->sputn( sv.begin(), length ); + + if ( pad && !left_pad ) + write_padding( os, os.width() - length ); + + // Reset output stream width: + os.width( 0 ); + + return os; +} + +} // namespace detail + +template< class CharT, class Traits > +std::basic_ostream & +operator<<( + std::basic_ostream& os, + basic_string_view sv ) +{ + return detail::write_to_stream( os, sv ); +} + +// Several typedefs for common character types are provided: + +typedef basic_string_view string_view; +typedef basic_string_view wstring_view; +#if nssv_HAVE_WCHAR16_T +typedef basic_string_view u16string_view; +typedef basic_string_view u32string_view; +#endif + +}} // namespace nonstd::sv_lite + +// +// 24.4.6 Suffix for basic_string_view literals: +// + +#if nssv_HAVE_USER_DEFINED_LITERALS + +namespace nonstd { +nssv_inline_ns namespace literals { +nssv_inline_ns namespace string_view_literals { + +#if nssv_CONFIG_STD_SV_OPERATOR && nssv_HAVE_STD_DEFINED_LITERALS + +nssv_constexpr nonstd::sv_lite::string_view operator "" sv( const char* str, size_t len ) nssv_noexcept // (1) +{ + return nonstd::sv_lite::string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::u16string_view operator "" sv( const char16_t* str, size_t len ) nssv_noexcept // (2) +{ + return nonstd::sv_lite::u16string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::u32string_view operator "" sv( const char32_t* str, size_t len ) nssv_noexcept // (3) +{ + return nonstd::sv_lite::u32string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::wstring_view operator "" sv( const wchar_t* str, size_t len ) nssv_noexcept // (4) +{ + return nonstd::sv_lite::wstring_view{ str, len }; +} + +#endif // nssv_CONFIG_STD_SV_OPERATOR && nssv_HAVE_STD_DEFINED_LITERALS + +#if nssv_CONFIG_USR_SV_OPERATOR + +nssv_constexpr nonstd::sv_lite::string_view operator "" _sv( const char* str, size_t len ) nssv_noexcept // (1) +{ + return nonstd::sv_lite::string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::u16string_view operator "" _sv( const char16_t* str, size_t len ) nssv_noexcept // (2) +{ + return nonstd::sv_lite::u16string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::u32string_view operator "" _sv( const char32_t* str, size_t len ) nssv_noexcept // (3) +{ + return nonstd::sv_lite::u32string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::wstring_view operator "" _sv( const wchar_t* str, size_t len ) nssv_noexcept // (4) +{ + return nonstd::sv_lite::wstring_view{ str, len }; +} + +#endif // nssv_CONFIG_USR_SV_OPERATOR + +}}} // namespace nonstd::literals::string_view_literals + +#endif + +// +// Extensions for std::string: +// + +#if nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS + +namespace nonstd { +namespace sv_lite { + +// Exclude MSVC 14 (19.00): it yields ambiguous to_string(): + +#if nssv_CPP11_OR_GREATER && nssv_COMPILER_MSVC_VERSION != 140 + +template< class CharT, class Traits, class Allocator = std::allocator > +std::basic_string +to_string( basic_string_view v, Allocator const & a = Allocator() ) +{ + return std::basic_string( v.begin(), v.end(), a ); +} + +#else + +template< class CharT, class Traits > +std::basic_string +to_string( basic_string_view v ) +{ + return std::basic_string( v.begin(), v.end() ); +} + +template< class CharT, class Traits, class Allocator > +std::basic_string +to_string( basic_string_view v, Allocator const & a ) +{ + return std::basic_string( v.begin(), v.end(), a ); +} + +#endif // nssv_CPP11_OR_GREATER + +template< class CharT, class Traits, class Allocator > +basic_string_view +to_string_view( std::basic_string const & s ) +{ + return basic_string_view( s.data(), s.size() ); +} + +}} // namespace nonstd::sv_lite + +#endif // nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS + +// +// make types and algorithms available in namespace nonstd: +// + +namespace nonstd { + +using sv_lite::basic_string_view; +using sv_lite::string_view; +using sv_lite::wstring_view; + +#if nssv_HAVE_WCHAR16_T +using sv_lite::u16string_view; +#endif +#if nssv_HAVE_WCHAR32_T +using sv_lite::u32string_view; +#endif + +// literal "sv" + +using sv_lite::operator==; +using sv_lite::operator!=; +using sv_lite::operator<; +using sv_lite::operator<=; +using sv_lite::operator>; +using sv_lite::operator>=; + +using sv_lite::operator<<; + +#if nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS +using sv_lite::to_string; +using sv_lite::to_string_view; +#endif + +} // namespace nonstd + +// 24.4.5 Hash support (C++11): + +// Note: The hash value of a string view object is equal to the hash value of +// the corresponding string object. + +#if nssv_HAVE_STD_HASH + +#include + +namespace std { + +template<> +struct hash< nonstd::string_view > +{ +public: + std::size_t operator()( nonstd::string_view v ) const nssv_noexcept + { + return std::hash()( std::string( v.data(), v.size() ) ); + } +}; + +template<> +struct hash< nonstd::wstring_view > +{ +public: + std::size_t operator()( nonstd::wstring_view v ) const nssv_noexcept + { + return std::hash()( std::wstring( v.data(), v.size() ) ); + } +}; + +template<> +struct hash< nonstd::u16string_view > +{ +public: + std::size_t operator()( nonstd::u16string_view v ) const nssv_noexcept + { + return std::hash()( std::u16string( v.data(), v.size() ) ); + } +}; + +template<> +struct hash< nonstd::u32string_view > +{ +public: + std::size_t operator()( nonstd::u32string_view v ) const nssv_noexcept + { + return std::hash()( std::u32string( v.data(), v.size() ) ); + } +}; + +} // namespace std + +#endif // nssv_HAVE_STD_HASH + +nssv_RESTORE_WARNINGS() + +#endif // nssv_HAVE_STD_STRING_VIEW +#endif // NONSTD_SV_LITE_H_INCLUDED + + + +namespace inja { + +enum class ElementNotation { + Dot, + Pointer +}; + +struct LexerConfig { + std::string statement_open {"{%"}; + std::string statement_close {"%}"}; + std::string line_statement {"##"}; + std::string expression_open {"{{"}; + std::string expression_close {"}}"}; + std::string comment_open {"{#"}; + std::string comment_close {"#}"}; + std::string open_chars {"#{"}; + + void update_open_chars() { + open_chars = ""; + if (open_chars.find(line_statement[0]) == std::string::npos) { + open_chars += line_statement[0]; + } + if (open_chars.find(statement_open[0]) == std::string::npos) { + open_chars += statement_open[0]; + } + if (open_chars.find(expression_open[0]) == std::string::npos) { + open_chars += expression_open[0]; + } + if (open_chars.find(comment_open[0]) == std::string::npos) { + open_chars += comment_open[0]; + } + } +}; + +struct ParserConfig { + ElementNotation notation {ElementNotation::Dot}; +}; + +} + +#endif // PANTOR_INJA_CONFIG_HPP + +// #include "function_storage.hpp" +#ifndef PANTOR_INJA_FUNCTION_STORAGE_HPP +#define PANTOR_INJA_FUNCTION_STORAGE_HPP + +// #include "bytecode.hpp" +#ifndef PANTOR_INJA_BYTECODE_HPP +#define PANTOR_INJA_BYTECODE_HPP + +#include + +#include + +// #include "string_view.hpp" + + + +namespace inja { + +using namespace nlohmann; + + +struct Bytecode { + enum class Op : uint8_t { + Nop, + // print StringRef (always immediate) + PrintText, + // print value + PrintValue, + // push value onto stack (always immediate) + Push, + + // builtin functions + // result is pushed to stack + // args specify number of arguments + // all functions can take their "last" argument either immediate + // or popped off stack (e.g. if immediate, it's like the immediate was + // just pushed to the stack) + Not, + And, + Or, + In, + Equal, + Greater, + GreaterEqual, + Less, + LessEqual, + Different, + DivisibleBy, + Even, + First, + Float, + Int, + Last, + Length, + Lower, + Max, + Min, + Odd, + Range, + Result, + Round, + Sort, + Upper, + Exists, + ExistsInObject, + IsBoolean, + IsNumber, + IsInteger, + IsFloat, + IsObject, + IsArray, + IsString, + Default, + + // include another template + // value is the template name + Include, + + // callback function + // str is the function name (this means it cannot be a lookup) + // args specify number of arguments + // as with builtin functions, "last" argument can be immediate + Callback, + + // unconditional jump + // args is the index of the bytecode to jump to. + Jump, + + // conditional jump + // value popped off stack is checked for truthyness + // if false, args is the index of the bytecode to jump to. + // if true, no action is taken (falls through) + ConditionalJump, + + // start loop + // value popped off stack is what is iterated over + // args is index of bytecode after end loop (jumped to if iterable is + // empty) + // immediate value is key name (for maps) + // str is value name + StartLoop, + + // end a loop + // args is index of the first bytecode in the loop body + EndLoop, + }; + + enum Flag { + // location of value for value-taking ops (mask) + ValueMask = 0x03, + // pop value off stack + ValuePop = 0x00, + // value is immediate rather than on stack + ValueImmediate = 0x01, + // lookup immediate str (dot notation) + ValueLookupDot = 0x02, + // lookup immediate str (json pointer notation) + ValueLookupPointer = 0x03, + }; + + Op op {Op::Nop}; + uint32_t args: 30; + uint32_t flags: 2; + + json value; + std::string str; + + Bytecode(): args(0), flags(0) {} + explicit Bytecode(Op op, unsigned int args = 0): op(op), args(args), flags(0) {} + explicit Bytecode(Op op, nonstd::string_view str, unsigned int flags): op(op), args(0), flags(flags), str(str) {} + explicit Bytecode(Op op, json&& value, unsigned int flags): op(op), args(0), flags(flags), value(std::move(value)) {} +}; + +} // namespace inja + +#endif // PANTOR_INJA_BYTECODE_HPP + +// #include "string_view.hpp" + + + +namespace inja { + +using namespace nlohmann; + +using Arguments = std::vector; +using CallbackFunction = std::function; + +class FunctionStorage { + public: + void add_builtin(nonstd::string_view name, unsigned int num_args, Bytecode::Op op) { + auto& data = get_or_new(name, num_args); + data.op = op; + } + + void add_callback(nonstd::string_view name, unsigned int num_args, const CallbackFunction& function) { + auto& data = get_or_new(name, num_args); + data.function = function; + } + + Bytecode::Op find_builtin(nonstd::string_view name, unsigned int num_args) const { + if (auto ptr = get(name, num_args)) { + return ptr->op; + } + return Bytecode::Op::Nop; + } + + CallbackFunction find_callback(nonstd::string_view name, unsigned int num_args) const { + if (auto ptr = get(name, num_args)) { + return ptr->function; + } + return nullptr; + } + + private: + struct FunctionData { + unsigned int num_args {0}; + Bytecode::Op op {Bytecode::Op::Nop}; // for builtins + CallbackFunction function; // for callbacks + }; + + FunctionData& get_or_new(nonstd::string_view name, unsigned int num_args) { + auto &vec = m_map[static_cast(name)]; + for (auto &i: vec) { + if (i.num_args == num_args) return i; + } + vec.emplace_back(); + vec.back().num_args = num_args; + return vec.back(); + } + + const FunctionData* get(nonstd::string_view name, unsigned int num_args) const { + auto it = m_map.find(static_cast(name)); + if (it == m_map.end()) return nullptr; + for (auto &&i: it->second) { + if (i.num_args == num_args) return &i; + } + return nullptr; + } + + std::map> m_map; +}; + +} + +#endif // PANTOR_INJA_FUNCTION_STORAGE_HPP + +// #include "parser.hpp" +#ifndef PANTOR_INJA_PARSER_HPP +#define PANTOR_INJA_PARSER_HPP + +#include + +// #include "bytecode.hpp" + +// #include "config.hpp" + +// #include "function_storage.hpp" + +// #include "lexer.hpp" +#ifndef PANTOR_INJA_LEXER_HPP +#define PANTOR_INJA_LEXER_HPP + +#include +#include + +// #include "config.hpp" + +// #include "token.hpp" +#ifndef PANTOR_INJA_TOKEN_HPP +#define PANTOR_INJA_TOKEN_HPP + +// #include "string_view.hpp" + + + +namespace inja { + +struct Token { + enum class Kind { + Text, + ExpressionOpen, // {{ + ExpressionClose, // }} + LineStatementOpen, // ## + LineStatementClose, // \n + StatementOpen, // {% + StatementClose, // %} + CommentOpen, // {# + CommentClose, // #} + Id, // this, this.foo + Number, // 1, 2, -1, 5.2, -5.3 + String, // "this" + Comma, // , + Colon, // : + LeftParen, // ( + RightParen, // ) + LeftBracket, // [ + RightBracket, // ] + LeftBrace, // { + RightBrace, // } + Equal, // == + GreaterThan, // > + GreaterEqual, // >= + LessThan, // < + LessEqual, // <= + NotEqual, // != + Unknown, + Eof + } kind {Kind::Unknown}; + + nonstd::string_view text; + + constexpr Token() = default; + constexpr Token(Kind kind, nonstd::string_view text): kind(kind), text(text) {} + + std::string describe() const { + switch (kind) { + case Kind::Text: + return ""; + case Kind::LineStatementClose: + return ""; + case Kind::Eof: + return ""; + default: + return static_cast(text); + } + } +}; + +} + +#endif // PANTOR_INJA_TOKEN_HPP + +// #include "utils.hpp" +#ifndef PANTOR_INJA_UTILS_HPP +#define PANTOR_INJA_UTILS_HPP + +#include + +// #include "string_view.hpp" + + + +namespace inja { + +inline void inja_throw(const std::string& type, const std::string& message) { + throw std::runtime_error("[inja.exception." + type + "] " + message); +} + +namespace string_view { + inline nonstd::string_view slice(nonstd::string_view view, size_t start, size_t end) { + start = std::min(start, view.size()); + end = std::min(std::max(start, end), view.size()); + return view.substr(start, end - start); // StringRef(Data + Start, End - Start); + } + + inline std::pair split(nonstd::string_view view, char Separator) { + size_t idx = view.find(Separator); + if (idx == nonstd::string_view::npos) { + return std::make_pair(view, nonstd::string_view()); + } + return std::make_pair(slice(view, 0, idx), slice(view, idx + 1, nonstd::string_view::npos)); + } + + inline bool starts_with(nonstd::string_view view, nonstd::string_view prefix) { + return (view.size() >= prefix.size() && view.compare(0, prefix.size(), prefix) == 0); + } +} // namespace string + +} // namespace inja + +#endif // PANTOR_INJA_UTILS_HPP + + + +namespace inja { + +class Lexer { + enum class State { + Text, + ExpressionStart, + ExpressionBody, + LineStart, + LineBody, + StatementStart, + StatementBody, + CommentStart, + CommentBody + } m_state; + + const LexerConfig& m_config; + nonstd::string_view m_in; + size_t m_tok_start; + size_t m_pos; + + public: + explicit Lexer(const LexerConfig& config) : m_config(config) {} + + void start(nonstd::string_view in) { + m_in = in; + m_tok_start = 0; + m_pos = 0; + m_state = State::Text; + } + + Token scan() { + m_tok_start = m_pos; + + again: + if (m_tok_start >= m_in.size()) return make_token(Token::Kind::Eof); + + switch (m_state) { + default: + case State::Text: { + // fast-scan to first open character + size_t open_start = m_in.substr(m_pos).find_first_of(m_config.open_chars); + if (open_start == nonstd::string_view::npos) { + // didn't find open, return remaining text as text token + m_pos = m_in.size(); + return make_token(Token::Kind::Text); + } + m_pos += open_start; + + // try to match one of the opening sequences, and get the close + nonstd::string_view open_str = m_in.substr(m_pos); + if (inja::string_view::starts_with(open_str, m_config.expression_open)) { + m_state = State::ExpressionStart; + } else if (inja::string_view::starts_with(open_str, m_config.statement_open)) { + m_state = State::StatementStart; + } else if (inja::string_view::starts_with(open_str, m_config.comment_open)) { + m_state = State::CommentStart; + } else if ((m_pos == 0 || m_in[m_pos - 1] == '\n') && + inja::string_view::starts_with(open_str, m_config.line_statement)) { + m_state = State::LineStart; + } else { + m_pos += 1; // wasn't actually an opening sequence + goto again; + } + if (m_pos == m_tok_start) goto again; // don't generate empty token + return make_token(Token::Kind::Text); + } + case State::ExpressionStart: { + m_state = State::ExpressionBody; + m_pos += m_config.expression_open.size(); + return make_token(Token::Kind::ExpressionOpen); + } + case State::LineStart: { + m_state = State::LineBody; + m_pos += m_config.line_statement.size(); + return make_token(Token::Kind::LineStatementOpen); + } + case State::StatementStart: { + m_state = State::StatementBody; + m_pos += m_config.statement_open.size(); + return make_token(Token::Kind::StatementOpen); + } + case State::CommentStart: { + m_state = State::CommentBody; + m_pos += m_config.comment_open.size(); + return make_token(Token::Kind::CommentOpen); + } + case State::ExpressionBody: + return scan_body(m_config.expression_close, Token::Kind::ExpressionClose); + case State::LineBody: + return scan_body("\n", Token::Kind::LineStatementClose); + case State::StatementBody: + return scan_body(m_config.statement_close, Token::Kind::StatementClose); + case State::CommentBody: { + // fast-scan to comment close + size_t end = m_in.substr(m_pos).find(m_config.comment_close); + if (end == nonstd::string_view::npos) { + m_pos = m_in.size(); + return make_token(Token::Kind::Eof); + } + // return the entire comment in the close token + m_state = State::Text; + m_pos += end + m_config.comment_close.size(); + return make_token(Token::Kind::CommentClose); + } + } + } + + const LexerConfig& get_config() const { return m_config; } + + private: + Token scan_body(nonstd::string_view close, Token::Kind closeKind) { + again: + // skip whitespace (except for \n as it might be a close) + if (m_tok_start >= m_in.size()) return make_token(Token::Kind::Eof); + char ch = m_in[m_tok_start]; + if (ch == ' ' || ch == '\t' || ch == '\r') { + m_tok_start += 1; + goto again; + } + + // check for close + if (inja::string_view::starts_with(m_in.substr(m_tok_start), close)) { + m_state = State::Text; + m_pos = m_tok_start + close.size(); + return make_token(closeKind); + } + + // skip \n + if (ch == '\n') { + m_tok_start += 1; + goto again; + } + + m_pos = m_tok_start + 1; + if (std::isalpha(ch)) return scan_id(); + switch (ch) { + case ',': + return make_token(Token::Kind::Comma); + case ':': + return make_token(Token::Kind::Colon); + case '(': + return make_token(Token::Kind::LeftParen); + case ')': + return make_token(Token::Kind::RightParen); + case '[': + return make_token(Token::Kind::LeftBracket); + case ']': + return make_token(Token::Kind::RightBracket); + case '{': + return make_token(Token::Kind::LeftBrace); + case '}': + return make_token(Token::Kind::RightBrace); + case '>': + if (m_pos < m_in.size() && m_in[m_pos] == '=') { + m_pos += 1; + return make_token(Token::Kind::GreaterEqual); + } + return make_token(Token::Kind::GreaterThan); + case '<': + if (m_pos < m_in.size() && m_in[m_pos] == '=') { + m_pos += 1; + return make_token(Token::Kind::LessEqual); + } + return make_token(Token::Kind::LessThan); + case '=': + if (m_pos < m_in.size() && m_in[m_pos] == '=') { + m_pos += 1; + return make_token(Token::Kind::Equal); + } + return make_token(Token::Kind::Unknown); + case '!': + if (m_pos < m_in.size() && m_in[m_pos] == '=') { + m_pos += 1; + return make_token(Token::Kind::NotEqual); + } + return make_token(Token::Kind::Unknown); + case '\"': + return scan_string(); + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '-': + return scan_number(); + case '_': + return scan_id(); + default: + return make_token(Token::Kind::Unknown); + } + } + + Token scan_id() { + for (;;) { + if (m_pos >= m_in.size()) { + break; + } + char ch = m_in[m_pos]; + if (!std::isalnum(ch) && ch != '.' && ch != '/' && ch != '_' && ch != '-') { + break; + } + m_pos += 1; + } + return make_token(Token::Kind::Id); + } + + Token scan_number() { + for (;;) { + if (m_pos >= m_in.size()) { + break; + } + char ch = m_in[m_pos]; + // be very permissive in lexer (we'll catch errors when conversion happens) + if (!std::isdigit(ch) && ch != '.' && ch != 'e' && ch != 'E' && ch != '+' && ch != '-') { + break; + } + m_pos += 1; + } + return make_token(Token::Kind::Number); + } + + Token scan_string() { + bool escape {false}; + for (;;) { + if (m_pos >= m_in.size()) break; + char ch = m_in[m_pos++]; + if (ch == '\\') { + escape = true; + } else if (!escape && ch == m_in[m_tok_start]) { + break; + } else { + escape = false; + } + } + return make_token(Token::Kind::String); + } + + Token make_token(Token::Kind kind) const { + return Token(kind, string_view::slice(m_in, m_tok_start, m_pos)); + } +}; + +} + +#endif // PANTOR_INJA_LEXER_HPP + +// #include "template.hpp" +#ifndef PANTOR_INJA_TEMPLATE_HPP +#define PANTOR_INJA_TEMPLATE_HPP + +#include +#include + +// #include "bytecode.hpp" + + + +namespace inja { + +struct Template { + std::vector bytecodes; + std::string content; +}; + +using TemplateStorage = std::map; + +} + +#endif // PANTOR_INJA_TEMPLATE_HPP + +// #include "token.hpp" + +// #include "utils.hpp" + + +#include + + +namespace inja { + +class ParserStatic { + ParserStatic() { + functions.add_builtin("default", 2, Bytecode::Op::Default); + functions.add_builtin("divisibleBy", 2, Bytecode::Op::DivisibleBy); + functions.add_builtin("even", 1, Bytecode::Op::Even); + functions.add_builtin("first", 1, Bytecode::Op::First); + functions.add_builtin("float", 1, Bytecode::Op::Float); + functions.add_builtin("int", 1, Bytecode::Op::Int); + functions.add_builtin("last", 1, Bytecode::Op::Last); + functions.add_builtin("length", 1, Bytecode::Op::Length); + functions.add_builtin("lower", 1, Bytecode::Op::Lower); + functions.add_builtin("max", 1, Bytecode::Op::Max); + functions.add_builtin("min", 1, Bytecode::Op::Min); + functions.add_builtin("odd", 1, Bytecode::Op::Odd); + functions.add_builtin("range", 1, Bytecode::Op::Range); + functions.add_builtin("round", 2, Bytecode::Op::Round); + functions.add_builtin("sort", 1, Bytecode::Op::Sort); + functions.add_builtin("upper", 1, Bytecode::Op::Upper); + functions.add_builtin("exists", 1, Bytecode::Op::Exists); + functions.add_builtin("existsIn", 2, Bytecode::Op::ExistsInObject); + functions.add_builtin("isBoolean", 1, Bytecode::Op::IsBoolean); + functions.add_builtin("isNumber", 1, Bytecode::Op::IsNumber); + functions.add_builtin("isInteger", 1, Bytecode::Op::IsInteger); + functions.add_builtin("isFloat", 1, Bytecode::Op::IsFloat); + functions.add_builtin("isObject", 1, Bytecode::Op::IsObject); + functions.add_builtin("isArray", 1, Bytecode::Op::IsArray); + functions.add_builtin("isString", 1, Bytecode::Op::IsString); + } + + public: + ParserStatic(const ParserStatic&) = delete; + ParserStatic& operator=(const ParserStatic&) = delete; + + static const ParserStatic& get_instance() { + static ParserStatic inst; + return inst; + } + + FunctionStorage functions; +}; + +class Parser { + public: + explicit Parser(const ParserConfig& parser_config, const LexerConfig& lexer_config, TemplateStorage& included_templates): m_config(parser_config), m_lexer(lexer_config), m_included_templates(included_templates), m_static(ParserStatic::get_instance()) { } + + bool parse_expression(Template& tmpl) { + if (!parse_expression_and(tmpl)) return false; + if (m_tok.kind != Token::Kind::Id || m_tok.text != "or") return true; + get_next_token(); + if (!parse_expression_and(tmpl)) return false; + append_function(tmpl, Bytecode::Op::Or, 2); + return true; + } + + bool parse_expression_and(Template& tmpl) { + if (!parse_expression_not(tmpl)) return false; + if (m_tok.kind != Token::Kind::Id || m_tok.text != "and") return true; + get_next_token(); + if (!parse_expression_not(tmpl)) return false; + append_function(tmpl, Bytecode::Op::And, 2); + return true; + } + + bool parse_expression_not(Template& tmpl) { + if (m_tok.kind == Token::Kind::Id && m_tok.text == "not") { + get_next_token(); + if (!parse_expression_not(tmpl)) return false; + append_function(tmpl, Bytecode::Op::Not, 1); + return true; + } else { + return parse_expression_comparison(tmpl); + } + } + + bool parse_expression_comparison(Template& tmpl) { + if (!parse_expression_datum(tmpl)) return false; + Bytecode::Op op; + switch (m_tok.kind) { + case Token::Kind::Id: + if (m_tok.text == "in") + op = Bytecode::Op::In; + else + return true; + break; + case Token::Kind::Equal: + op = Bytecode::Op::Equal; + break; + case Token::Kind::GreaterThan: + op = Bytecode::Op::Greater; + break; + case Token::Kind::LessThan: + op = Bytecode::Op::Less; + break; + case Token::Kind::LessEqual: + op = Bytecode::Op::LessEqual; + break; + case Token::Kind::GreaterEqual: + op = Bytecode::Op::GreaterEqual; + break; + case Token::Kind::NotEqual: + op = Bytecode::Op::Different; + break; + default: + return true; + } + get_next_token(); + if (!parse_expression_datum(tmpl)) return false; + append_function(tmpl, op, 2); + return true; + } + + bool parse_expression_datum(Template& tmpl) { + nonstd::string_view json_first; + size_t bracket_level = 0; + size_t brace_level = 0; + + for (;;) { + switch (m_tok.kind) { + case Token::Kind::LeftParen: { + get_next_token(); + if (!parse_expression(tmpl)) return false; + if (m_tok.kind != Token::Kind::RightParen) { + inja_throw("parser_error", "unmatched '('"); + } + get_next_token(); + return true; + } + case Token::Kind::Id: + get_peek_token(); + if (m_peek_tok.kind == Token::Kind::LeftParen) { + // function call, parse arguments + Token func_token = m_tok; + get_next_token(); // id + get_next_token(); // leftParen + unsigned int num_args = 0; + if (m_tok.kind == Token::Kind::RightParen) { + // no args + get_next_token(); + } else { + for (;;) { + if (!parse_expression(tmpl)) { + inja_throw("parser_error", "expected expression, got '" + m_tok.describe() + "'"); + } + num_args += 1; + if (m_tok.kind == Token::Kind::RightParen) { + get_next_token(); + break; + } + if (m_tok.kind != Token::Kind::Comma) { + inja_throw("parser_error", "expected ')' or ',', got '" + m_tok.describe() + "'"); + } + get_next_token(); + } + } + + auto op = m_static.functions.find_builtin(func_token.text, num_args); + + if (op != Bytecode::Op::Nop) { + // swap arguments for default(); see comment in RenderTo() + if (op == Bytecode::Op::Default) + std::swap(tmpl.bytecodes.back(), *(tmpl.bytecodes.rbegin() + 1)); + append_function(tmpl, op, num_args); + return true; + } else { + append_callback(tmpl, func_token.text, num_args); + return true; + } + } else if (m_tok.text == "true" || m_tok.text == "false" || m_tok.text == "null") { + // true, false, null are json literals + if (brace_level == 0 && bracket_level == 0) { + json_first = m_tok.text; + goto returnJson; + } + break; + } else { + // normal literal (json read) + tmpl.bytecodes.emplace_back( + Bytecode::Op::Push, m_tok.text, + m_config.notation == ElementNotation::Pointer ? Bytecode::Flag::ValueLookupPointer : Bytecode::Flag::ValueLookupDot); + get_next_token(); + return true; + } + // json passthrough + case Token::Kind::Number: + case Token::Kind::String: + if (brace_level == 0 && bracket_level == 0) { + json_first = m_tok.text; + goto returnJson; + } + break; + case Token::Kind::Comma: + case Token::Kind::Colon: + if (brace_level == 0 && bracket_level == 0) { + inja_throw("parser_error", "unexpected token '" + m_tok.describe() + "'"); + } + break; + case Token::Kind::LeftBracket: + if (brace_level == 0 && bracket_level == 0) { + json_first = m_tok.text; + } + bracket_level += 1; + break; + case Token::Kind::LeftBrace: + if (brace_level == 0 && bracket_level == 0) { + json_first = m_tok.text; + } + brace_level += 1; + break; + case Token::Kind::RightBracket: + if (bracket_level == 0) { + inja_throw("parser_error", "unexpected ']'"); + } + --bracket_level; + if (brace_level == 0 && bracket_level == 0) goto returnJson; + break; + case Token::Kind::RightBrace: + if (brace_level == 0) { + inja_throw("parser_error", "unexpected '}'"); + } + --brace_level; + if (brace_level == 0 && bracket_level == 0) goto returnJson; + break; + default: + if (brace_level != 0) { + inja_throw("parser_error", "unmatched '{'"); + } + if (bracket_level != 0) { + inja_throw("parser_error", "unmatched '['"); + } + return false; + } + + get_next_token(); + } + + returnJson: + // bridge across all intermediate tokens + nonstd::string_view json_text(json_first.data(), m_tok.text.data() - json_first.data() + m_tok.text.size()); + tmpl.bytecodes.emplace_back(Bytecode::Op::Push, json::parse(json_text), Bytecode::Flag::ValueImmediate); + get_next_token(); + return true; + } + + bool parse_statement(Template& tmpl, nonstd::string_view path) { + if (m_tok.kind != Token::Kind::Id) return false; + + if (m_tok.text == "if") { + get_next_token(); + + // evaluate expression + if (!parse_expression(tmpl)) return false; + + // start a new if block on if stack + m_if_stack.emplace_back(tmpl.bytecodes.size()); + + // conditional jump; destination will be filled in by else or endif + tmpl.bytecodes.emplace_back(Bytecode::Op::ConditionalJump); + } else if (m_tok.text == "endif") { + if (m_if_stack.empty()) { + inja_throw("parser_error", "endif without matching if"); + } + auto& if_data = m_if_stack.back(); + get_next_token(); + + // previous conditional jump jumps here + if (if_data.prev_cond_jump != std::numeric_limits::max()) { + tmpl.bytecodes[if_data.prev_cond_jump].args = tmpl.bytecodes.size(); + } + + // update all previous unconditional jumps to here + for (unsigned int i: if_data.uncond_jumps) { + tmpl.bytecodes[i].args = tmpl.bytecodes.size(); + } + + // pop if stack + m_if_stack.pop_back(); + } else if (m_tok.text == "else") { + if (m_if_stack.empty()) + inja_throw("parser_error", "else without matching if"); + auto& if_data = m_if_stack.back(); + get_next_token(); + + // end previous block with unconditional jump to endif; destination will be + // filled in by endif + if_data.uncond_jumps.push_back(tmpl.bytecodes.size()); + tmpl.bytecodes.emplace_back(Bytecode::Op::Jump); + + // previous conditional jump jumps here + tmpl.bytecodes[if_data.prev_cond_jump].args = tmpl.bytecodes.size(); + if_data.prev_cond_jump = std::numeric_limits::max(); + + // chained else if + if (m_tok.kind == Token::Kind::Id && m_tok.text == "if") { + get_next_token(); + + // evaluate expression + if (!parse_expression(tmpl)) return false; + + // update "previous jump" + if_data.prev_cond_jump = tmpl.bytecodes.size(); + + // conditional jump; destination will be filled in by else or endif + tmpl.bytecodes.emplace_back(Bytecode::Op::ConditionalJump); + } + } else if (m_tok.text == "for") { + get_next_token(); + + // options: for a in arr; for a, b in obj + if (m_tok.kind != Token::Kind::Id) + inja_throw("parser_error", "expected id, got '" + m_tok.describe() + "'"); + Token value_token = m_tok; + get_next_token(); + + Token key_token; + if (m_tok.kind == Token::Kind::Comma) { + get_next_token(); + if (m_tok.kind != Token::Kind::Id) + inja_throw("parser_error", "expected id, got '" + m_tok.describe() + "'"); + key_token = std::move(value_token); + value_token = m_tok; + get_next_token(); + } + + if (m_tok.kind != Token::Kind::Id || m_tok.text != "in") + inja_throw("parser_error", + "expected 'in', got '" + m_tok.describe() + "'"); + get_next_token(); + + if (!parse_expression(tmpl)) return false; + + m_loop_stack.push_back(tmpl.bytecodes.size()); + + tmpl.bytecodes.emplace_back(Bytecode::Op::StartLoop); + if (!key_token.text.empty()) { + tmpl.bytecodes.back().value = key_token.text; + } + tmpl.bytecodes.back().str = static_cast(value_token.text); + } else if (m_tok.text == "endfor") { + get_next_token(); + if (m_loop_stack.empty()) { + inja_throw("parser_error", "endfor without matching for"); + } + + // update loop with EndLoop index (for empty case) + tmpl.bytecodes[m_loop_stack.back()].args = tmpl.bytecodes.size(); + + tmpl.bytecodes.emplace_back(Bytecode::Op::EndLoop); + tmpl.bytecodes.back().args = m_loop_stack.back() + 1; // loop body + m_loop_stack.pop_back(); + } else if (m_tok.text == "include") { + get_next_token(); + + if (m_tok.kind != Token::Kind::String) { + inja_throw("parser_error", "expected string, got '" + m_tok.describe() + "'"); + } + + // build the relative path + json json_name = json::parse(m_tok.text); + std::string pathname = static_cast(path); + pathname += json_name.get_ref(); + if (pathname.compare(0, 2, "./") == 0) { + pathname.erase(0, 2); + } + // sys::path::remove_dots(pathname, true, sys::path::Style::posix); + + Template include_template = parse_template(pathname); + m_included_templates.emplace(pathname, include_template); + + // generate a reference bytecode + tmpl.bytecodes.emplace_back(Bytecode::Op::Include, json(pathname), Bytecode::Flag::ValueImmediate); + + get_next_token(); + } else { + return false; + } + return true; + } + + void append_function(Template& tmpl, Bytecode::Op op, unsigned int num_args) { + // we can merge with back-to-back push + if (!tmpl.bytecodes.empty()) { + Bytecode& last = tmpl.bytecodes.back(); + if (last.op == Bytecode::Op::Push) { + last.op = op; + last.args = num_args; + return; + } + } + + // otherwise just add it to the end + tmpl.bytecodes.emplace_back(op, num_args); + } + + void append_callback(Template& tmpl, nonstd::string_view name, unsigned int num_args) { + // we can merge with back-to-back push value (not lookup) + if (!tmpl.bytecodes.empty()) { + Bytecode& last = tmpl.bytecodes.back(); + if (last.op == Bytecode::Op::Push && + (last.flags & Bytecode::Flag::ValueMask) == Bytecode::Flag::ValueImmediate) { + last.op = Bytecode::Op::Callback; + last.args = num_args; + last.str = static_cast(name); + return; + } + } + + // otherwise just add it to the end + tmpl.bytecodes.emplace_back(Bytecode::Op::Callback, num_args); + tmpl.bytecodes.back().str = static_cast(name); + } + + void parse_into(Template& tmpl, nonstd::string_view path) { + m_lexer.start(tmpl.content); + + for (;;) { + get_next_token(); + switch (m_tok.kind) { + case Token::Kind::Eof: + if (!m_if_stack.empty()) inja_throw("parser_error", "unmatched if"); + if (!m_loop_stack.empty()) inja_throw("parser_error", "unmatched for"); + return; + case Token::Kind::Text: + tmpl.bytecodes.emplace_back(Bytecode::Op::PrintText, m_tok.text, 0u); + break; + case Token::Kind::StatementOpen: + get_next_token(); + if (!parse_statement(tmpl, path)) { + inja_throw("parser_error", "expected statement, got '" + m_tok.describe() + "'"); + } + if (m_tok.kind != Token::Kind::StatementClose) { + inja_throw("parser_error", "expected statement close, got '" + m_tok.describe() + "'"); + } + break; + case Token::Kind::LineStatementOpen: + get_next_token(); + parse_statement(tmpl, path); + if (m_tok.kind != Token::Kind::LineStatementClose && + m_tok.kind != Token::Kind::Eof) { + inja_throw("parser_error", "expected line statement close, got '" + m_tok.describe() + "'"); + } + break; + case Token::Kind::ExpressionOpen: + get_next_token(); + if (!parse_expression(tmpl)) { + inja_throw("parser_error", "expected expression, got '" + m_tok.describe() + "'"); + } + append_function(tmpl, Bytecode::Op::PrintValue, 1); + if (m_tok.kind != Token::Kind::ExpressionClose) { + inja_throw("parser_error", "expected expression close, got '" + m_tok.describe() + "'"); + } + break; + case Token::Kind::CommentOpen: + get_next_token(); + if (m_tok.kind != Token::Kind::CommentClose) { + inja_throw("parser_error", "expected comment close, got '" + m_tok.describe() + "'"); + } + break; + default: + inja_throw("parser_error", "unexpected token '" + m_tok.describe() + "'"); + break; + } + } + } + + Template parse(nonstd::string_view input, nonstd::string_view path) { + Template result; + result.content = static_cast(input); + parse_into(result, path); + return result; + } + + Template parse(nonstd::string_view input) { + return parse(input, "./"); + } + + Template parse_template(nonstd::string_view filename) { + Template result; + result.content = load_file(filename); + + nonstd::string_view path = filename.substr(0, filename.find_last_of("/\\") + 1); + // StringRef path = sys::path::parent_path(filename); + Parser(m_config, m_lexer.get_config(), m_included_templates).parse_into(result, path); + return result; + } + + std::string load_file(nonstd::string_view filename) { + std::ifstream file(static_cast(filename)); + std::string text((std::istreambuf_iterator(file)), std::istreambuf_iterator()); + return text; + } + + private: + const ParserConfig& m_config; + Lexer m_lexer; + Token m_tok; + Token m_peek_tok; + bool m_have_peek_tok {false}; + TemplateStorage& m_included_templates; + const ParserStatic& m_static; + + struct IfData { + unsigned int prev_cond_jump; + std::vector uncond_jumps; + + explicit IfData(unsigned int condJump): prev_cond_jump(condJump) {} + }; + + std::vector m_if_stack; + std::vector m_loop_stack; + + void get_next_token() { + if (m_have_peek_tok) { + m_tok = m_peek_tok; + m_have_peek_tok = false; + } else { + m_tok = m_lexer.scan(); + } + } + + void get_peek_token() { + if (!m_have_peek_tok) { + m_peek_tok = m_lexer.scan(); + m_have_peek_tok = true; + } + } +}; + +} // namespace inja + +#endif // PANTOR_INJA_PARSER_HPP + +// #include "polyfill.hpp" +#ifndef PANTOR_INJA_POLYFILL_HPP +#define PANTOR_INJA_POLYFILL_HPP + + +#if __cplusplus < 201402L + +#include +#include +#include + + +namespace stdinja { + template struct _Unique_if { + typedef std::unique_ptr _Single_object; + }; + + template struct _Unique_if { + typedef std::unique_ptr _Unknown_bound; + }; + + template struct _Unique_if { + typedef void _Known_bound; + }; + + template + typename _Unique_if::_Single_object + make_unique(Args&&... args) { + return std::unique_ptr(new T(std::forward(args)...)); + } + + template + typename _Unique_if::_Unknown_bound + make_unique(size_t n) { + typedef typename std::remove_extent::type U; + return std::unique_ptr(new U[n]()); + } + + template + typename _Unique_if::_Known_bound + make_unique(Args&&...) = delete; +} + +#else + +namespace stdinja = std; + +#endif // memory */ + + +#endif // PANTOR_INJA_POLYFILL_HPP + +// #include "renderer.hpp" +#ifndef PANTOR_INJA_RENDERER_HPP +#define PANTOR_INJA_RENDERER_HPP + +#include +#include + +#include + +// #include "bytecode.hpp" + +// #include "template.hpp" + +// #include "utils.hpp" + + + +namespace inja { + +inline nonstd::string_view convert_dot_to_json_pointer(nonstd::string_view dot, std::string& out) { + out.clear(); + do { + nonstd::string_view part; + std::tie(part, dot) = string_view::split(dot, '.'); + out.push_back('/'); + out.append(part.begin(), part.end()); + } while (!dot.empty()); + return nonstd::string_view(out.data(), out.size()); +} + +class Renderer { + std::vector& get_args(const Bytecode& bc) { + m_tmp_args.clear(); + + bool has_imm = ((bc.flags & Bytecode::Flag::ValueMask) != Bytecode::Flag::ValuePop); + + // get args from stack + unsigned int pop_args = bc.args; + if (has_imm) { + pop_args -= 1; + } + + for (auto i = std::prev(m_stack.end(), pop_args); i != m_stack.end(); i++) { + m_tmp_args.push_back(&(*i)); + } + + // get immediate arg + if (has_imm) { + m_tmp_args.push_back(get_imm(bc)); + } + + return m_tmp_args; + } + + void pop_args(const Bytecode& bc) { + unsigned int popArgs = bc.args; + if ((bc.flags & Bytecode::Flag::ValueMask) != Bytecode::Flag::ValuePop) { + popArgs -= 1; + } + for (unsigned int i = 0; i < popArgs; ++i) { + m_stack.pop_back(); + } + } + + const json* get_imm(const Bytecode& bc) { + std::string ptr_buffer; + nonstd::string_view ptr; + switch (bc.flags & Bytecode::Flag::ValueMask) { + case Bytecode::Flag::ValuePop: + return nullptr; + case Bytecode::Flag::ValueImmediate: + return &bc.value; + case Bytecode::Flag::ValueLookupDot: + ptr = convert_dot_to_json_pointer(bc.str, ptr_buffer); + break; + case Bytecode::Flag::ValueLookupPointer: + ptr_buffer += '/'; + ptr_buffer += bc.str; + ptr = ptr_buffer; + break; + } + try { + return &m_data->at(json::json_pointer(ptr.data())); + } catch (std::exception&) { + // try to evaluate as a no-argument callback + if (auto callback = m_callbacks.find_callback(bc.str, 0)) { + std::vector arguments {}; + m_tmp_val = callback(arguments); + return &m_tmp_val; + } + inja_throw("render_error", "variable '" + static_cast(bc.str) + "' not found"); + return nullptr; + } + } + + bool truthy(const json& var) const { + if (var.empty()) { + return false; + } else if (var.is_number()) { + return (var != 0); + } else if (var.is_string()) { + return !var.empty(); + } + + try { + return var.get(); + } catch (json::type_error& e) { + inja_throw("json_error", e.what()); + throw; + } + } + + void update_loop_data() { + LoopLevel& level = m_loop_stack.back(); + + if (level.loop_type == LoopLevel::Type::Array) { + level.data[static_cast(level.value_name)] = level.values.at(level.index); // *level.it; + auto& loopData = level.data["loop"]; + loopData["index"] = level.index; + loopData["index1"] = level.index + 1; + loopData["is_first"] = (level.index == 0); + loopData["is_last"] = (level.index == level.size - 1); + } else { + level.data[static_cast(level.key_name)] = level.map_it->first; + level.data[static_cast(level.value_name)] = *level.map_it->second; + } + } + + const TemplateStorage& m_included_templates; + const FunctionStorage& m_callbacks; + + std::vector m_stack; + + + struct LoopLevel { + enum class Type { Map, Array }; + + Type loop_type; + nonstd::string_view key_name; // variable name for keys + nonstd::string_view value_name; // variable name for values + json data; // data with loop info added + + json values; // values to iterate over + + // loop over list + size_t index; // current list index + size_t size; // length of list + + // loop over map + using KeyValue = std::pair; + using MapValues = std::vector; + MapValues map_values; // values to iterate over + MapValues::iterator map_it; // iterator over values + + }; + + std::vector m_loop_stack; + const json* m_data; + + std::vector m_tmp_args; + json m_tmp_val; + + + public: + Renderer(const TemplateStorage& included_templates, const FunctionStorage& callbacks): m_included_templates(included_templates), m_callbacks(callbacks) { + m_stack.reserve(16); + m_tmp_args.reserve(4); + m_loop_stack.reserve(16); + } + + void render_to(std::ostream& os, const Template& tmpl, const json& data) { + m_data = &data; + + for (size_t i = 0; i < tmpl.bytecodes.size(); ++i) { + const auto& bc = tmpl.bytecodes[i]; + + switch (bc.op) { + case Bytecode::Op::Nop: { + break; + } + case Bytecode::Op::PrintText: { + os << bc.str; + break; + } + case Bytecode::Op::PrintValue: { + const json& val = *get_args(bc)[0]; + if (val.is_string()) + os << val.get_ref(); + else + os << val.dump(); + // val.dump(os); + pop_args(bc); + break; + } + case Bytecode::Op::Push: { + m_stack.emplace_back(*get_imm(bc)); + break; + } + case Bytecode::Op::Upper: { + auto result = get_args(bc)[0]->get(); + std::transform(result.begin(), result.end(), result.begin(), ::toupper); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Lower: { + auto result = get_args(bc)[0]->get(); + std::transform(result.begin(), result.end(), result.begin(), ::tolower); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Range: { + int number = get_args(bc)[0]->get(); + std::vector result(number); + std::iota(std::begin(result), std::end(result), 0); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Length: { + auto result = get_args(bc)[0]->size(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Sort: { + auto result = get_args(bc)[0]->get>(); + std::sort(result.begin(), result.end()); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::First: { + auto result = get_args(bc)[0]->front(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Last: { + auto result = get_args(bc)[0]->back(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Round: { + auto args = get_args(bc); + double number = args[0]->get(); + int precision = args[1]->get(); + pop_args(bc); + m_stack.emplace_back(std::round(number * std::pow(10.0, precision)) / std::pow(10.0, precision)); + break; + } + case Bytecode::Op::DivisibleBy: { + auto args = get_args(bc); + int number = args[0]->get(); + int divisor = args[1]->get(); + pop_args(bc); + m_stack.emplace_back((divisor != 0) && (number % divisor == 0)); + break; + } + case Bytecode::Op::Odd: { + int number = get_args(bc)[0]->get(); + pop_args(bc); + m_stack.emplace_back(number % 2 != 0); + break; + } + case Bytecode::Op::Even: { + int number = get_args(bc)[0]->get(); + pop_args(bc); + m_stack.emplace_back(number % 2 == 0); + break; + } + case Bytecode::Op::Max: { + auto args = get_args(bc); + auto result = *std::max_element(args[0]->begin(), args[0]->end()); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Min: { + auto args = get_args(bc); + auto result = *std::min_element(args[0]->begin(), args[0]->end()); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Not: { + bool result = !truthy(*get_args(bc)[0]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::And: { + auto args = get_args(bc); + bool result = truthy(*args[0]) && truthy(*args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Or: { + auto args = get_args(bc); + bool result = truthy(*args[0]) || truthy(*args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::In: { + auto args = get_args(bc); + bool result = std::find(args[1]->begin(), args[1]->end(), *args[0]) != + args[1]->end(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Equal: { + auto args = get_args(bc); + bool result = (*args[0] == *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Greater: { + auto args = get_args(bc); + bool result = (*args[0] > *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Less: { + auto args = get_args(bc); + bool result = (*args[0] < *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::GreaterEqual: { + auto args = get_args(bc); + bool result = (*args[0] >= *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::LessEqual: { + auto args = get_args(bc); + bool result = (*args[0] <= *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Different: { + auto args = get_args(bc); + bool result = (*args[0] != *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Float: { + double result = + std::stod(get_args(bc)[0]->get_ref()); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Int: { + int result = std::stoi(get_args(bc)[0]->get_ref()); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Exists: { + auto&& name = get_args(bc)[0]->get_ref(); + bool result = (data.find(name) != data.end()); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::ExistsInObject: { + auto args = get_args(bc); + auto&& name = args[1]->get_ref(); + bool result = (args[0]->find(name) != args[0]->end()); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsBoolean: { + bool result = get_args(bc)[0]->is_boolean(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsNumber: { + bool result = get_args(bc)[0]->is_number(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsInteger: { + bool result = get_args(bc)[0]->is_number_integer(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsFloat: { + bool result = get_args(bc)[0]->is_number_float(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsObject: { + bool result = get_args(bc)[0]->is_object(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsArray: { + bool result = get_args(bc)[0]->is_array(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsString: { + bool result = get_args(bc)[0]->is_string(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Default: { + // default needs to be a bit "magic"; we can't evaluate the first + // argument during the push operation, so we swap the arguments during + // the parse phase so the second argument is pushed on the stack and + // the first argument is in the immediate + try { + const json* imm = get_imm(bc); + // if no exception was raised, replace the stack value with it + m_stack.back() = *imm; + } catch (std::exception&) { + // couldn't read immediate, just leave the stack as is + } + break; + } + case Bytecode::Op::Include: + Renderer(m_included_templates, m_callbacks).render_to(os, m_included_templates.find(get_imm(bc)->get_ref())->second, data); + break; + case Bytecode::Op::Callback: { + auto callback = m_callbacks.find_callback(bc.str, bc.args); + if (!callback) { + inja_throw("render_error", "function '" + static_cast(bc.str) + "' (" + std::to_string(static_cast(bc.args)) + ") not found"); + } + json result = callback(get_args(bc)); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Jump: { + i = bc.args - 1; // -1 due to ++i in loop + break; + } + case Bytecode::Op::ConditionalJump: { + if (!truthy(m_stack.back())) { + i = bc.args - 1; // -1 due to ++i in loop + } + m_stack.pop_back(); + break; + } + case Bytecode::Op::StartLoop: { + // jump past loop body if empty + if (m_stack.back().empty()) { + m_stack.pop_back(); + i = bc.args; // ++i in loop will take it past EndLoop + break; + } + + m_loop_stack.emplace_back(); + LoopLevel& level = m_loop_stack.back(); + level.value_name = bc.str; + level.values = std::move(m_stack.back()); + level.data = (*m_data); + m_stack.pop_back(); + + if (bc.value.is_string()) { + // map iterator + if (!level.values.is_object()) { + m_loop_stack.pop_back(); + inja_throw("render_error", "for key, value requires object"); + } + level.loop_type = LoopLevel::Type::Map; + level.key_name = bc.value.get_ref(); + + // sort by key + for (auto it = level.values.begin(), end = level.values.end(); it != end; ++it) { + level.map_values.emplace_back(it.key(), &it.value()); + } + std::sort(level.map_values.begin(), level.map_values.end(), [](const LoopLevel::KeyValue& a, const LoopLevel::KeyValue& b) { return a.first < b.first; }); + level.map_it = level.map_values.begin(); + } else { + if (!level.values.is_array()) { + m_loop_stack.pop_back(); + inja_throw("render_error", "type must be array"); + } + + // list iterator + level.loop_type = LoopLevel::Type::Array; + level.index = 0; + level.size = level.values.size(); + } + + // provide parent access in nested loop + auto parent_loop_it = level.data.find("loop"); + if (parent_loop_it != level.data.end()) { + json loop_copy = *parent_loop_it; + (*parent_loop_it)["parent"] = std::move(loop_copy); + } + + // set "current" data to loop data + m_data = &level.data; + update_loop_data(); + break; + } + case Bytecode::Op::EndLoop: { + if (m_loop_stack.empty()) { + inja_throw("render_error", "unexpected state in renderer"); + } + LoopLevel& level = m_loop_stack.back(); + + bool done; + if (level.loop_type == LoopLevel::Type::Array) { + level.index += 1; + done = (level.index == level.values.size()); + } else { + level.map_it += 1; + done = (level.map_it == level.map_values.end()); + } + + if (done) { + m_loop_stack.pop_back(); + // set "current" data to outer loop data or main data as appropriate + if (!m_loop_stack.empty()) { + m_data = &m_loop_stack.back().data; + } else { + m_data = &data; + } + break; + } + + update_loop_data(); + + // jump back to start of loop + i = bc.args - 1; // -1 due to ++i in loop + break; + } + default: { + inja_throw("render_error", "unknown op in renderer: " + std::to_string(static_cast(bc.op))); + } + } + } + } +}; + +} // namespace inja + +#endif // PANTOR_INJA_RENDERER_HPP + +// #include "string_view.hpp" + +// #include "template.hpp" + + + +namespace inja { + +using namespace nlohmann; + +class Environment { + class Impl { + public: + std::string input_path; + std::string output_path; + + LexerConfig lexer_config; + ParserConfig parser_config; + + FunctionStorage callbacks; + TemplateStorage included_templates; + }; + + std::unique_ptr m_impl; + + public: + Environment(): Environment("./") { } + + explicit Environment(const std::string& global_path): m_impl(stdinja::make_unique()) { + m_impl->input_path = global_path; + m_impl->output_path = global_path; + } + + explicit Environment(const std::string& input_path, const std::string& output_path): m_impl(stdinja::make_unique()) { + m_impl->input_path = input_path; + m_impl->output_path = output_path; + } + + /// Sets the opener and closer for template statements + void set_statement(const std::string& open, const std::string& close) { + m_impl->lexer_config.statement_open = open; + m_impl->lexer_config.statement_close = close; + m_impl->lexer_config.update_open_chars(); + } + + /// Sets the opener for template line statements + void set_line_statement(const std::string& open) { + m_impl->lexer_config.line_statement = open; + m_impl->lexer_config.update_open_chars(); + } + + /// Sets the opener and closer for template expressions + void set_expression(const std::string& open, const std::string& close) { + m_impl->lexer_config.expression_open = open; + m_impl->lexer_config.expression_close = close; + m_impl->lexer_config.update_open_chars(); + } + + /// Sets the opener and closer for template comments + void set_comment(const std::string& open, const std::string& close) { + m_impl->lexer_config.comment_open = open; + m_impl->lexer_config.comment_close = close; + m_impl->lexer_config.update_open_chars(); + } + + /// Sets the element notation syntax + void set_element_notation(ElementNotation notation) { + m_impl->parser_config.notation = notation; + } + + + Template parse(nonstd::string_view input) { + Parser parser(m_impl->parser_config, m_impl->lexer_config, m_impl->included_templates); + return parser.parse(input); + } + + Template parse_template(const std::string& filename) { + Parser parser(m_impl->parser_config, m_impl->lexer_config, m_impl->included_templates); + return parser.parse_template(m_impl->input_path + static_cast(filename)); + } + + std::string render(nonstd::string_view input, const json& data) { + return render(parse(input), data); + } + + std::string render(const Template& tmpl, const json& data) { + std::stringstream os; + render_to(os, tmpl, data); + return os.str(); + } + + std::string render_file(const std::string& filename, const json& data) { + return render(parse_template(filename), data); + } + + std::string render_file_with_json_file(const std::string& filename, const std::string& filename_data) { + const json data = load_json(filename_data); + return render_file(filename, data); + } + + void write(const std::string& filename, const json& data, const std::string& filename_out) { + std::ofstream file(m_impl->output_path + filename_out); + file << render_file(filename, data); + file.close(); + } + + void write(const Template& temp, const json& data, const std::string& filename_out) { + std::ofstream file(m_impl->output_path + filename_out); + file << render(temp, data); + file.close(); + } + + void write_with_json_file(const std::string& filename, const std::string& filename_data, const std::string& filename_out) { + const json data = load_json(filename_data); + write(filename, data, filename_out); + } + + void write_with_json_file(const Template& temp, const std::string& filename_data, const std::string& filename_out) { + const json data = load_json(filename_data); + write(temp, data, filename_out); + } + + std::ostream& render_to(std::ostream& os, const Template& tmpl, const json& data) { + Renderer(m_impl->included_templates, m_impl->callbacks).render_to(os, tmpl, data); + return os; + } + + std::string load_file(const std::string& filename) { + Parser parser(m_impl->parser_config, m_impl->lexer_config, m_impl->included_templates); + return parser.load_file(m_impl->input_path + filename); + } + + json load_json(const std::string& filename) { + std::ifstream file(m_impl->input_path + filename); + json j; + file >> j; + return j; + } + + void add_callback(const std::string& name, unsigned int numArgs, const CallbackFunction& callback) { + m_impl->callbacks.add_callback(name, numArgs, callback); + } + + /** Includes a template with a given name into the environment. + * Then, a template can be rendered in another template using the + * include "" syntax. + */ + void include_template(const std::string& name, const Template& tmpl) { + m_impl->included_templates[name] = tmpl; + } +}; + +/*! +@brief render with default settings to a string +*/ +inline std::string render(nonstd::string_view input, const json& data) { + return Environment().render(input, data); +} + +/*! +@brief render with default settings to the given output stream +*/ +inline void render_to(std::ostream& os, nonstd::string_view input, const json& data) { + Environment env; + env.render_to(os, env.parse(input), data); +} + +} + +#endif // PANTOR_INJA_ENVIRONMENT_HPP + +// #include "string_view.hpp" + +// #include "template.hpp" + +// #include "parser.hpp" + +// #include "renderer.hpp" + + + +#endif // PANTOR_INJA_HPP diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp new file mode 100644 index 000000000..efe48f39f --- /dev/null +++ b/tools/jsonproc/jsonproc.cpp @@ -0,0 +1,91 @@ +// jsonproc.cpp + +#include "jsonproc.h" + +#include + +#include +using std::string; + +#include +using namespace inja; +using json = nlohmann::json; + +std::map customVars; + +void set_custom_var(string key, string value) +{ + customVars[key] = value; +} + +string get_custom_var(string key) +{ + return customVars[key]; +} + +int main(int argc, char *argv[]) +{ + if (argc != 4) + FATAL_ERROR("USAGE: jsonproc \n"); + + string jsonfilepath = argv[1]; + string templateFilepath = argv[2]; + string outputFilepath = argv[3]; + + Environment env; + + // Add custom command callbacks. + env.add_callback("doNotModifyHeader", 0, [jsonfilepath, templateFilepath](Arguments& args) { + return "//\n// DO NOT MODIFY THIS FILE! IT IS AUTO-GENERATED FROM " + jsonfilepath +" and Inja template " + templateFilepath + "\n//\n"; + }); + + env.add_callback("setVar", 2, [=](Arguments& args) { + string key = args.at(0)->get(); + string value = args.at(1)->get(); + set_custom_var(key, value); + return ""; + }); + + env.add_callback("getVar", 1, [=](Arguments& args) { + string key = args.at(0)->get(); + return get_custom_var(key); + }); + + env.add_callback("concat", 2, [](Arguments& args) { + string first = args.at(0)->get(); + string second = args.at(1)->get(); + return first + second; + }); + + env.add_callback("removePrefix", 2, [](Arguments& args) { + string rawValue = args.at(0)->get(); + string prefix = args.at(1)->get(); + string::size_type i = rawValue.find(prefix); + if (i != 0) + return rawValue; + + return rawValue.erase(0, prefix.length()); + }); + + // Add custom command callbacks. + env.add_callback("removeSuffix", 2, [](Arguments& args) { + string rawValue = args.at(0)->get(); + string suffix = args.at(1)->get(); + string::size_type i = rawValue.rfind(suffix); + if (i == string::npos) + return rawValue; + + return rawValue.substr(0, i); + }); + + try + { + env.write_with_json_file(templateFilepath, jsonfilepath, outputFilepath); + } + catch (const std::exception& e) + { + FATAL_ERROR("JSONPROC_ERROR: %s\n", e.what()); + } + + return 0; +} diff --git a/tools/jsonproc/jsonproc.h b/tools/jsonproc/jsonproc.h new file mode 100644 index 000000000..575fb3756 --- /dev/null +++ b/tools/jsonproc/jsonproc.h @@ -0,0 +1,32 @@ +// jsonproc.h + +#ifndef JSONPROC_H +#define JSONPROC_H + +#include +#include +using std::fprintf; using std::exit; + +#include + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#else + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#endif // _MSC_VER + +#endif // JSONPROC_H diff --git a/tools/jsonproc/nlohmann/json.hpp b/tools/jsonproc/nlohmann/json.hpp new file mode 100644 index 000000000..5003a4fa2 --- /dev/null +++ b/tools/jsonproc/nlohmann/json.hpp @@ -0,0 +1,20842 @@ +/* + __ _____ _____ _____ + __| | __| | | | JSON for Modern C++ +| | |__ | | | | | | version 3.6.1 +|_____|_____|_____|_|___| https://github.com/nlohmann/json + +Licensed under the MIT License . +SPDX-License-Identifier: MIT +Copyright (c) 2013-2019 Niels Lohmann . + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#ifndef INCLUDE_NLOHMANN_JSON_HPP_ +#define INCLUDE_NLOHMANN_JSON_HPP_ + +#define NLOHMANN_JSON_VERSION_MAJOR 3 +#define NLOHMANN_JSON_VERSION_MINOR 6 +#define NLOHMANN_JSON_VERSION_PATCH 1 + +#include // all_of, find, for_each +#include // assert +#include // and, not, or +#include // nullptr_t, ptrdiff_t, size_t +#include // hash, less +#include // initializer_list +#include // istream, ostream +#include // random_access_iterator_tag +#include // unique_ptr +#include // accumulate +#include // string, stoi, to_string +#include // declval, forward, move, pair, swap +#include // vector + +// #include + + +#include + +// #include + + +#include // transform +#include // array +#include // and, not +#include // forward_list +#include // inserter, front_inserter, end +#include // map +#include // string +#include // tuple, make_tuple +#include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +#include // unordered_map +#include // pair, declval +#include // valarray + +// #include + + +#include // exception +#include // runtime_error +#include // to_string + +// #include + + +#include // size_t + +namespace nlohmann +{ +namespace detail +{ +/// struct to capture the start position of the current token +struct position_t +{ + /// the total number of characters read + std::size_t chars_read_total = 0; + /// the number of characters read in the current line + std::size_t chars_read_current_line = 0; + /// the number of lines read + std::size_t lines_read = 0; + + /// conversion to size_t to preserve SAX interface + constexpr operator size_t() const + { + return chars_read_total; + } +}; + +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +//////////////// +// exceptions // +//////////////// + +/*! +@brief general exception of the @ref basic_json class + +This class is an extension of `std::exception` objects with a member @a id for +exception ids. It is used as the base class for all exceptions thrown by the +@ref basic_json class. This class can hence be used as "wildcard" to catch +exceptions. + +Subclasses: +- @ref parse_error for exceptions indicating a parse error +- @ref invalid_iterator for exceptions indicating errors with iterators +- @ref type_error for exceptions indicating executing a member function with + a wrong type +- @ref out_of_range for exceptions indicating access out of the defined range +- @ref other_error for exceptions indicating other library errors + +@internal +@note To have nothrow-copy-constructible exceptions, we internally use + `std::runtime_error` which can cope with arbitrary-length error messages. + Intermediate strings are built with static functions and then passed to + the actual constructor. +@endinternal + +@liveexample{The following code shows how arbitrary library exceptions can be +caught.,exception} + +@since version 3.0.0 +*/ +class exception : public std::exception +{ + public: + /// returns the explanatory string + const char* what() const noexcept override + { + return m.what(); + } + + /// the id of the exception + const int id; + + protected: + exception(int id_, const char* what_arg) : id(id_), m(what_arg) {} + + static std::string name(const std::string& ename, int id_) + { + return "[json.exception." + ename + "." + std::to_string(id_) + "] "; + } + + private: + /// an exception object as storage for error messages + std::runtime_error m; +}; + +/*! +@brief exception indicating a parse error + +This exception is thrown by the library when a parse error occurs. Parse errors +can occur during the deserialization of JSON text, CBOR, MessagePack, as well +as when using JSON Patch. + +Member @a byte holds the byte index of the last read character in the input +file. + +Exceptions have ids 1xx. + +name / id | example message | description +------------------------------ | --------------- | ------------------------- +json.exception.parse_error.101 | parse error at 2: unexpected end of input; expected string literal | This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member @a byte indicates the error position. +json.exception.parse_error.102 | parse error at 14: missing or wrong low surrogate | JSON uses the `\uxxxx` format to describe Unicode characters. Code points above above 0xFFFF are split into two `\uxxxx` entries ("surrogate pairs"). This error indicates that the surrogate pair is incomplete or contains an invalid code point. +json.exception.parse_error.103 | parse error: code points above 0x10FFFF are invalid | Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid. +json.exception.parse_error.104 | parse error: JSON patch must be an array of objects | [RFC 6902](https://tools.ietf.org/html/rfc6902) requires a JSON Patch document to be a JSON document that represents an array of objects. +json.exception.parse_error.105 | parse error: operation must have string member 'op' | An operation of a JSON Patch document must contain exactly one "op" member, whose value indicates the operation to perform. Its value must be one of "add", "remove", "replace", "move", "copy", or "test"; other values are errors. +json.exception.parse_error.106 | parse error: array index '01' must not begin with '0' | An array index in a JSON Pointer ([RFC 6901](https://tools.ietf.org/html/rfc6901)) may be `0` or any number without a leading `0`. +json.exception.parse_error.107 | parse error: JSON pointer must be empty or begin with '/' - was: 'foo' | A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a `/` character. +json.exception.parse_error.108 | parse error: escape character '~' must be followed with '0' or '1' | In a JSON Pointer, only `~0` and `~1` are valid escape sequences. +json.exception.parse_error.109 | parse error: array index 'one' is not a number | A JSON Pointer array index must be a number. +json.exception.parse_error.110 | parse error at 1: cannot read 2 bytes from vector | When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read. +json.exception.parse_error.112 | parse error at 1: error reading CBOR; last byte: 0xF8 | Not all types of CBOR or MessagePack are supported. This exception occurs if an unsupported byte was read. +json.exception.parse_error.113 | parse error at 2: expected a CBOR string; last byte: 0x98 | While parsing a map key, a value that is not a string has been read. +json.exception.parse_error.114 | parse error: Unsupported BSON record type 0x0F | The parsing of the corresponding BSON record type is not implemented (yet). + +@note For an input with n bytes, 1 is the index of the first character and n+1 + is the index of the terminating null byte or the end of file. This also + holds true when reading a byte vector (CBOR or MessagePack). + +@liveexample{The following code shows how a `parse_error` exception can be +caught.,parse_error} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class parse_error : public exception +{ + public: + /*! + @brief create a parse error exception + @param[in] id_ the id of the exception + @param[in] pos the position where the error occurred (or with + chars_read_total=0 if the position cannot be + determined) + @param[in] what_arg the explanatory string + @return parse_error object + */ + static parse_error create(int id_, const position_t& pos, const std::string& what_arg) + { + std::string w = exception::name("parse_error", id_) + "parse error" + + position_string(pos) + ": " + what_arg; + return parse_error(id_, pos.chars_read_total, w.c_str()); + } + + static parse_error create(int id_, std::size_t byte_, const std::string& what_arg) + { + std::string w = exception::name("parse_error", id_) + "parse error" + + (byte_ != 0 ? (" at byte " + std::to_string(byte_)) : "") + + ": " + what_arg; + return parse_error(id_, byte_, w.c_str()); + } + + /*! + @brief byte index of the parse error + + The byte index of the last read character in the input file. + + @note For an input with n bytes, 1 is the index of the first character and + n+1 is the index of the terminating null byte or the end of file. + This also holds true when reading a byte vector (CBOR or MessagePack). + */ + const std::size_t byte; + + private: + parse_error(int id_, std::size_t byte_, const char* what_arg) + : exception(id_, what_arg), byte(byte_) {} + + static std::string position_string(const position_t& pos) + { + return " at line " + std::to_string(pos.lines_read + 1) + + ", column " + std::to_string(pos.chars_read_current_line); + } +}; + +/*! +@brief exception indicating errors with iterators + +This exception is thrown if iterators passed to a library function do not match +the expected semantics. + +Exceptions have ids 2xx. + +name / id | example message | description +----------------------------------- | --------------- | ------------------------- +json.exception.invalid_iterator.201 | iterators are not compatible | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. +json.exception.invalid_iterator.202 | iterator does not fit current value | In an erase or insert function, the passed iterator @a pos does not belong to the JSON value for which the function was called. It hence does not define a valid position for the deletion/insertion. +json.exception.invalid_iterator.203 | iterators do not fit current value | Either iterator passed to function @ref erase(IteratorType first, IteratorType last) does not belong to the JSON value from which values shall be erased. It hence does not define a valid range to delete values from. +json.exception.invalid_iterator.204 | iterators out of range | When an iterator range for a primitive type (number, boolean, or string) is passed to a constructor or an erase function, this range has to be exactly (@ref begin(), @ref end()), because this is the only way the single stored value is expressed. All other ranges are invalid. +json.exception.invalid_iterator.205 | iterator out of range | When an iterator for a primitive type (number, boolean, or string) is passed to an erase function, the iterator has to be the @ref begin() iterator, because it is the only way to address the stored value. All other iterators are invalid. +json.exception.invalid_iterator.206 | cannot construct with iterators from null | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) belong to a JSON null value and hence to not define a valid range. +json.exception.invalid_iterator.207 | cannot use key() for non-object iterators | The key() member function can only be used on iterators belonging to a JSON object, because other types do not have a concept of a key. +json.exception.invalid_iterator.208 | cannot use operator[] for object iterators | The operator[] to specify a concrete offset cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. +json.exception.invalid_iterator.209 | cannot use offsets with object iterators | The offset operators (+, -, +=, -=) cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. +json.exception.invalid_iterator.210 | iterators do not fit | The iterator range passed to the insert function are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. +json.exception.invalid_iterator.211 | passed iterators may not belong to container | The iterator range passed to the insert function must not be a subrange of the container to insert to. +json.exception.invalid_iterator.212 | cannot compare iterators of different containers | When two iterators are compared, they must belong to the same container. +json.exception.invalid_iterator.213 | cannot compare order of object iterators | The order of object iterators cannot be compared, because JSON objects are unordered. +json.exception.invalid_iterator.214 | cannot get value | Cannot get value for iterator: Either the iterator belongs to a null value or it is an iterator to a primitive type (number, boolean, or string), but the iterator is different to @ref begin(). + +@liveexample{The following code shows how an `invalid_iterator` exception can be +caught.,invalid_iterator} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class invalid_iterator : public exception +{ + public: + static invalid_iterator create(int id_, const std::string& what_arg) + { + std::string w = exception::name("invalid_iterator", id_) + what_arg; + return invalid_iterator(id_, w.c_str()); + } + + private: + invalid_iterator(int id_, const char* what_arg) + : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating executing a member function with a wrong type + +This exception is thrown in case of a type error; that is, a library function is +executed on a JSON value whose type does not match the expected semantics. + +Exceptions have ids 3xx. + +name / id | example message | description +----------------------------- | --------------- | ------------------------- +json.exception.type_error.301 | cannot create object from initializer list | To create an object from an initializer list, the initializer list must consist only of a list of pairs whose first element is a string. When this constraint is violated, an array is created instead. +json.exception.type_error.302 | type must be object, but is array | During implicit or explicit value conversion, the JSON type must be compatible to the target type. For instance, a JSON string can only be converted into string types, but not into numbers or boolean types. +json.exception.type_error.303 | incompatible ReferenceType for get_ref, actual type is object | To retrieve a reference to a value stored in a @ref basic_json object with @ref get_ref, the type of the reference must match the value type. For instance, for a JSON array, the @a ReferenceType must be @ref array_t &. +json.exception.type_error.304 | cannot use at() with string | The @ref at() member functions can only be executed for certain JSON types. +json.exception.type_error.305 | cannot use operator[] with string | The @ref operator[] member functions can only be executed for certain JSON types. +json.exception.type_error.306 | cannot use value() with string | The @ref value() member functions can only be executed for certain JSON types. +json.exception.type_error.307 | cannot use erase() with string | The @ref erase() member functions can only be executed for certain JSON types. +json.exception.type_error.308 | cannot use push_back() with string | The @ref push_back() and @ref operator+= member functions can only be executed for certain JSON types. +json.exception.type_error.309 | cannot use insert() with | The @ref insert() member functions can only be executed for certain JSON types. +json.exception.type_error.310 | cannot use swap() with number | The @ref swap() member functions can only be executed for certain JSON types. +json.exception.type_error.311 | cannot use emplace_back() with string | The @ref emplace_back() member function can only be executed for certain JSON types. +json.exception.type_error.312 | cannot use update() with string | The @ref update() member functions can only be executed for certain JSON types. +json.exception.type_error.313 | invalid value to unflatten | The @ref unflatten function converts an object whose keys are JSON Pointers back into an arbitrary nested JSON value. The JSON Pointers must not overlap, because then the resulting value would not be well defined. +json.exception.type_error.314 | only objects can be unflattened | The @ref unflatten function only works for an object whose keys are JSON Pointers. +json.exception.type_error.315 | values in object must be primitive | The @ref unflatten function only works for an object whose keys are JSON Pointers and whose values are primitive. +json.exception.type_error.316 | invalid UTF-8 byte at index 10: 0x7E | The @ref dump function only works with UTF-8 encoded strings; that is, if you assign a `std::string` to a JSON value, make sure it is UTF-8 encoded. | +json.exception.type_error.317 | JSON value cannot be serialized to requested format | The dynamic type of the object cannot be represented in the requested serialization format (e.g. a raw `true` or `null` JSON object cannot be serialized to BSON) | + +@liveexample{The following code shows how a `type_error` exception can be +caught.,type_error} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class type_error : public exception +{ + public: + static type_error create(int id_, const std::string& what_arg) + { + std::string w = exception::name("type_error", id_) + what_arg; + return type_error(id_, w.c_str()); + } + + private: + type_error(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating access out of the defined range + +This exception is thrown in case a library function is called on an input +parameter that exceeds the expected range, for instance in case of array +indices or nonexisting object keys. + +Exceptions have ids 4xx. + +name / id | example message | description +------------------------------- | --------------- | ------------------------- +json.exception.out_of_range.401 | array index 3 is out of range | The provided array index @a i is larger than @a size-1. +json.exception.out_of_range.402 | array index '-' (3) is out of range | The special array index `-` in a JSON Pointer never describes a valid element of the array, but the index past the end. That is, it can only be used to add elements at this position, but not to read it. +json.exception.out_of_range.403 | key 'foo' not found | The provided key was not found in the JSON object. +json.exception.out_of_range.404 | unresolved reference token 'foo' | A reference token in a JSON Pointer could not be resolved. +json.exception.out_of_range.405 | JSON pointer has no parent | The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value. +json.exception.out_of_range.406 | number overflow parsing '10E1000' | A parsed number could not be stored as without changing it to NaN or INF. +json.exception.out_of_range.407 | number overflow serializing '9223372036854775808' | UBJSON and BSON only support integer numbers up to 9223372036854775807. | +json.exception.out_of_range.408 | excessive array size: 8658170730974374167 | The size (following `#`) of an UBJSON array or object exceeds the maximal capacity. | +json.exception.out_of_range.409 | BSON key cannot contain code point U+0000 (at byte 2) | Key identifiers to be serialized to BSON cannot contain code point U+0000, since the key is stored as zero-terminated c-string | + +@liveexample{The following code shows how an `out_of_range` exception can be +caught.,out_of_range} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class out_of_range : public exception +{ + public: + static out_of_range create(int id_, const std::string& what_arg) + { + std::string w = exception::name("out_of_range", id_) + what_arg; + return out_of_range(id_, w.c_str()); + } + + private: + out_of_range(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating other library errors + +This exception is thrown in case of errors that cannot be classified with the +other exception types. + +Exceptions have ids 5xx. + +name / id | example message | description +------------------------------ | --------------- | ------------------------- +json.exception.other_error.501 | unsuccessful: {"op":"test","path":"/baz", "value":"bar"} | A JSON Patch operation 'test' failed. The unsuccessful operation is also printed. + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range + +@liveexample{The following code shows how an `other_error` exception can be +caught.,other_error} + +@since version 3.0.0 +*/ +class other_error : public exception +{ + public: + static other_error create(int id_, const std::string& what_arg) + { + std::string w = exception::name("other_error", id_) + what_arg; + return other_error(id_, w.c_str()); + } + + private: + other_error(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // pair + +// This file contains all internal macro definitions +// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them + +// exclude unsupported compilers +#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) + #if defined(__clang__) + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #endif +#endif + +// disable float-equal warnings on GCC/clang +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wfloat-equal" +#endif + +// disable documentation warnings on clang +#if defined(__clang__) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wdocumentation" +#endif + +// allow for portable deprecation warnings +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #define JSON_DEPRECATED __attribute__((deprecated)) +#elif defined(_MSC_VER) + #define JSON_DEPRECATED __declspec(deprecated) +#else + #define JSON_DEPRECATED +#endif + +// allow for portable nodiscard warnings +#if defined(__has_cpp_attribute) + #if __has_cpp_attribute(nodiscard) + #define JSON_NODISCARD [[nodiscard]] + #elif __has_cpp_attribute(gnu::warn_unused_result) + #define JSON_NODISCARD [[gnu::warn_unused_result]] + #else + #define JSON_NODISCARD + #endif +#else + #define JSON_NODISCARD +#endif + +// allow to disable exceptions +#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) + #define JSON_INTERNAL_CATCH(exception) catch(exception) +#else + #include + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) + #define JSON_INTERNAL_CATCH(exception) if(false) +#endif + +// override exception macros +#if defined(JSON_THROW_USER) + #undef JSON_THROW + #define JSON_THROW JSON_THROW_USER +#endif +#if defined(JSON_TRY_USER) + #undef JSON_TRY + #define JSON_TRY JSON_TRY_USER +#endif +#if defined(JSON_CATCH_USER) + #undef JSON_CATCH + #define JSON_CATCH JSON_CATCH_USER + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_CATCH_USER +#endif +#if defined(JSON_INTERNAL_CATCH_USER) + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER +#endif + +// manual branch prediction +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #define JSON_LIKELY(x) __builtin_expect(x, 1) + #define JSON_UNLIKELY(x) __builtin_expect(x, 0) +#else + #define JSON_LIKELY(x) x + #define JSON_UNLIKELY(x) x +#endif + +// C++ language standard detection +#if (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 +#elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 +#endif + +/*! +@brief macro to briefly define a mapping between an enum and JSON +@def NLOHMANN_JSON_SERIALIZE_ENUM +@since version 3.4.0 +*/ +#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...) \ + template \ + inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [e](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.first == e; \ + }); \ + j = ((it != std::end(m)) ? it : std::begin(m))->second; \ + } \ + template \ + inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [j](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.second == j; \ + }); \ + e = ((it != std::end(m)) ? it : std::begin(m))->first; \ + } + +// Ugly macros to avoid uglier copy-paste when specializing basic_json. They +// may be removed in the future once the class is split. + +#define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ + template class ObjectType, \ + template class ArrayType, \ + class StringType, class BooleanType, class NumberIntegerType, \ + class NumberUnsignedType, class NumberFloatType, \ + template class AllocatorType, \ + template class JSONSerializer> + +#define NLOHMANN_BASIC_JSON_TPL \ + basic_json + +// #include + + +#include // not +#include // size_t +#include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type + +namespace nlohmann +{ +namespace detail +{ +// alias templates to reduce boilerplate +template +using enable_if_t = typename std::enable_if::type; + +template +using uncvref_t = typename std::remove_cv::type>::type; + +// implementation of C++14 index_sequence and affiliates +// source: https://stackoverflow.com/a/32223343 +template +struct index_sequence +{ + using type = index_sequence; + using value_type = std::size_t; + static constexpr std::size_t size() noexcept + { + return sizeof...(Ints); + } +}; + +template +struct merge_and_renumber; + +template +struct merge_and_renumber, index_sequence> + : index_sequence < I1..., (sizeof...(I1) + I2)... > {}; + +template +struct make_index_sequence + : merge_and_renumber < typename make_index_sequence < N / 2 >::type, + typename make_index_sequence < N - N / 2 >::type > {}; + +template<> struct make_index_sequence<0> : index_sequence<> {}; +template<> struct make_index_sequence<1> : index_sequence<0> {}; + +template +using index_sequence_for = make_index_sequence; + +// dispatch utility (taken from ranges-v3) +template struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; + +// taken from ranges-v3 +template +struct static_const +{ + static constexpr T value{}; +}; + +template +constexpr T static_const::value; +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // not +#include // numeric_limits +#include // false_type, is_constructible, is_integral, is_same, true_type +#include // declval + +// #include + + +#include // random_access_iterator_tag + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template struct make_void +{ + using type = void; +}; +template using void_t = typename make_void::type; +} // namespace detail +} // namespace nlohmann + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template +struct iterator_types {}; + +template +struct iterator_types < + It, + void_t> +{ + using difference_type = typename It::difference_type; + using value_type = typename It::value_type; + using pointer = typename It::pointer; + using reference = typename It::reference; + using iterator_category = typename It::iterator_category; +}; + +// This is required as some compilers implement std::iterator_traits in a way that +// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341. +template +struct iterator_traits +{ +}; + +template +struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> + : iterator_types +{ +}; + +template +struct iterator_traits::value>> +{ + using iterator_category = std::random_access_iterator_tag; + using value_type = T; + using difference_type = ptrdiff_t; + using pointer = T*; + using reference = T&; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + + +#include + +// #include + + +// http://en.cppreference.com/w/cpp/experimental/is_detected +namespace nlohmann +{ +namespace detail +{ +struct nonesuch +{ + nonesuch() = delete; + ~nonesuch() = delete; + nonesuch(nonesuch const&) = delete; + nonesuch(nonesuch const&&) = delete; + void operator=(nonesuch const&) = delete; + void operator=(nonesuch&&) = delete; +}; + +template class Op, + class... Args> +struct detector +{ + using value_t = std::false_type; + using type = Default; +}; + +template class Op, class... Args> +struct detector>, Op, Args...> +{ + using value_t = std::true_type; + using type = Op; +}; + +template